[DebianGIS-dev] r2489 - in packages/jts/branches/upstream/current: . bin doc doc/javadoc doc/javadoc/com doc/javadoc/com/vividsolutions doc/javadoc/com/vividsolutions/jts doc/javadoc/com/vividsolutions/jts/algorithm doc/javadoc/com/vividsolutions/jts/geom doc/javadoc/com/vividsolutions/jts/geom/impl doc/javadoc/com/vividsolutions/jts/geom/util doc/javadoc/com/vividsolutions/jts/geomgraph doc/javadoc/com/vividsolutions/jts/geomgraph/index doc/javadoc/com/vividsolutions/jts/index doc/javadoc/com/vividsolutions/jts/index/bintree doc/javadoc/com/vividsolutions/jts/index/chain doc/javadoc/com/vividsolutions/jts/index/quadtree doc/javadoc/com/vividsolutions/jts/index/strtree doc/javadoc/com/vividsolutions/jts/index/sweepline doc/javadoc/com/vividsolutions/jts/io doc/javadoc/com/vividsolutions/jts/linearref doc/javadoc/com/vividsolutions/jts/noding doc/javadoc/com/vividsolutions/jts/noding/snapround doc/javadoc/com/vividsolutions/jts/operation doc/javadoc/com/vividsolutions/jts/operation/buffer doc/javadoc/com/vividsolutions/jts/operation/distance doc/javadoc/com/vividsolutions/jts/operation/linemerge doc/javadoc/com/vividsolutions/jts/operation/overlay doc/javadoc/com/vividsolutions/jts/operation/overlay/snap doc/javadoc/com/vividsolutions/jts/operation/overlay/validate doc/javadoc/com/vividsolutions/jts/operation/polygonize doc/javadoc/com/vividsolutions/jts/operation/predicate doc/javadoc/com/vividsolutions/jts/operation/relate doc/javadoc/com/vividsolutions/jts/operation/valid doc/javadoc/com/vividsolutions/jts/planargraph doc/javadoc/com/vividsolutions/jts/planargraph/algorithm doc/javadoc/com/vividsolutions/jts/precision doc/javadoc/com/vividsolutions/jts/simplify doc/javadoc/com/vividsolutions/jts/util doc/javadoc/resources jtsio jtsio/doc jtsio/doc/javadoc jtsio/doc/javadoc/com jtsio/doc/javadoc/com/vividsolutions jtsio/doc/javadoc/com/vividsolutions/jts jtsio/doc/javadoc/com/vividsolutions/jts/io jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2 jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle jtsio/doc/javadoc/resources jtsio/src jtsio/src/com jtsio/src/com/vividsolutions jtsio/src/com/vividsolutions/jts jtsio/src/com/vividsolutions/jts/io jtsio/src/com/vividsolutions/jts/io/gml2 jtsio/src/com/vividsolutions/jts/io/oracle jtsio/test jtsio/test/com jtsio/test/com/vividsolutions jtsio/test/com/vividsolutions/jts jtsio/test/com/vividsolutions/jts/generator jtsio/test/com/vividsolutions/jts/io jtsio/test/com/vividsolutions/jts/io/gml2 jtsio/test/com/vividsolutions/jts/io/oracle jtsio/test/data src src/com/vividsolutions/jts src/com/vividsolutions/jts/algorithm src/com/vividsolutions/jts/geom src/com/vividsolutions/jts/geom/impl src/com/vividsolutions/jts/geom/util src/com/vividsolutions/jts/geomgraph src/com/vividsolutions/jts/index/bintree src/com/vividsolutions/jts/index/quadtree src/com/vividsolutions/jts/index/strtree src/com/vividsolutions/jts/io src/com/vividsolutions/jts/noding src/com/vividsolutions/jts/operation src/com/vividsolutions/jts/operation/buffer src/com/vividsolutions/jts/operation/distance src/com/vividsolutions/jts/operation/linemerge src/com/vividsolutions/jts/operation/overlay src/com/vividsolutions/jts/operation/overlay/snap src/com/vividsolutions/jts/operation/overlay/validate src/com/vividsolutions/jts/operation/polygonize src/com/vividsolutions/jts/operation/relate src/com/vividsolutions/jts/operation/valid src/com/vividsolutions/jts/planargraph src/com/vividsolutions/jts/precision src/com/vividsolutions/jts/simplify src/com/vividsolutions/jts/util testxml testxml/general testxml/robust testxml/stmlf testxml/validate
frankie at alioth.debian.org
frankie at alioth.debian.org
Tue Sep 22 12:40:03 UTC 2009
Author: frankie
Date: 2009-09-22 12:40:02 +0000 (Tue, 22 Sep 2009)
New Revision: 2489
Added:
packages/jts/branches/upstream/current/bin/test_stmlf.bat
packages/jts/branches/upstream/current/doc/
packages/jts/branches/upstream/current/doc/JTS Developer Guide.pdf
packages/jts/branches/upstream/current/doc/JTS Technical Specs.pdf
packages/jts/branches/upstream/current/doc/JTS TestBuilder & TestRunner User Guide.pdf
packages/jts/branches/upstream/current/doc/JTS Version History.html
packages/jts/branches/upstream/current/doc/javadoc/
packages/jts/branches/upstream/current/doc/javadoc/allclasses-frame.html
packages/jts/branches/upstream/current/doc/javadoc/allclasses-noframe.html
packages/jts/branches/upstream/current/doc/javadoc/com/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/JTSVersion.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/Angle.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CGAlgorithms.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentroidArea.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentroidLine.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentroidPoint.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/ConvexHull.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/HCoordinate.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/InteriorPointArea.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/InteriorPointLine.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/InteriorPointPoint.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/LineIntersector.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/MCPointInRing.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/MinimumDiameter.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/NotRepresentableException.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/PointInRing.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/PointLocator.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/RobustDeterminant.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/RobustLineIntersector.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/SIRtreePointInRing.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/SimplePointInRing.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Coordinate.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateArrays.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateFilter.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateList.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequence.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequenceComparator.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequenceFactory.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequenceFilter.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequences.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Dimension.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Envelope.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Geometry.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryCollection.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryCollectionIterator.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryComponentFilter.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryFactory.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryFilter.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/IntersectionMatrix.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/LineSegment.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/LineString.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/LinearRing.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Location.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/MultiLineString.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/MultiPoint.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/MultiPolygon.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Point.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Polygon.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/PrecisionModel.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/TopologyException.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Triangle.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/AffineTransformation.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryEditor.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryTransformer.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/LinearComponentExtracter.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/Matrix.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/PointExtracter.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/PolygonExtracter.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Depth.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/DirectedEdge.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Edge.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeEnd.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeEndStar.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeIntersection.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeList.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeRing.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/GeometryGraph.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/GraphComponent.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Label.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Node.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/NodeFactory.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/NodeMap.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/PlanarGraph.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Position.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Quadrant.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/TopologyLocation.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/MonotoneChain.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/ArrayListVisitor.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/ItemVisitor.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/SpatialIndex.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Bintree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Interval.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Key.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Node.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/NodeBase.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Root.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChain.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/DoubleBits.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/IntervalSize.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Key.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Node.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/NodeBase.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Quadtree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Root.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/AbstractNode.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/AbstractSTRtree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/Boundable.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/Interval.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/ItemBoundable.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/SIRtree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/STRtree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineEvent.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineIndex.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineInterval.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ByteArrayInStream.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ByteOrderDataInStream.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ByteOrderValues.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/InStream.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/InputStreamInStream.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/OutStream.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/OutputStreamOutStream.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ParseException.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKBConstants.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKBReader.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKBWriter.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKTReader.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKTWriter.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LengthIndexedLine.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LengthLocationMap.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LinearGeometryBuilder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LinearIterator.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LinearLocation.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LocationIndexedLine.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/FastNodingValidator.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/InteriorIntersectionFinder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/IntersectionAdder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/IntersectionFinderAdder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/IteratedNoder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/MCIndexNoder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/Noder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/NodingValidator.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/Octant.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/OrientedCoordinateArray.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/ScaledNoder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentIntersector.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentNode.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentNodeList.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentPointComparator.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentString.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentStringDissolver.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SimpleNoder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SinglePassNoder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/HotPixel.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/BoundaryOp.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/GeometryGraphOperation.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/IsSimpleOp.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/BufferBuilder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/BufferOp.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/BufferSubgraph.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/DistanceOp.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/GeometryLocation.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/EdgeString.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMerger.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineSequencer.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/LineBuilder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/OverlayOp.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/PointBuilder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/PolygonBuilder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/EdgeRing.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/Polygonizer.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/RectangleContains.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/RectangleIntersects.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/EdgeEndBundle.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateComputer.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateNode.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateNodeFactory.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateNodeGraph.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateOp.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/IsValidOp.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/RepeatedPointTester.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/TopologyValidationError.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/DirectedEdge.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/DirectedEdgeStar.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/Edge.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/GraphComponent.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/Node.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/NodeMap.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/PlanarGraph.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/Subgraph.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/CommonBits.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/CommonBitsOp.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/CommonBitsRemover.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/EnhancedPrecisionOp.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/LineSegmentIndex.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLineSegment.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLineString.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/Assert.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/AssertionFailedException.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CollectionUtil.Function.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CollectionUtil.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CoordinateArrayFilter.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CoordinateCountFilter.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/Debug.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/GeometricShapeFactory.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/Stopwatch.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/package-frame.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/package-summary.html
packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/package-tree.html
packages/jts/branches/upstream/current/doc/javadoc/constant-values.html
packages/jts/branches/upstream/current/doc/javadoc/deprecated-list.html
packages/jts/branches/upstream/current/doc/javadoc/help-doc.html
packages/jts/branches/upstream/current/doc/javadoc/index-all.html
packages/jts/branches/upstream/current/doc/javadoc/index.html
packages/jts/branches/upstream/current/doc/javadoc/overview-frame.html
packages/jts/branches/upstream/current/doc/javadoc/overview-summary.html
packages/jts/branches/upstream/current/doc/javadoc/overview-tree.html
packages/jts/branches/upstream/current/doc/javadoc/package-list
packages/jts/branches/upstream/current/doc/javadoc/packages.html
packages/jts/branches/upstream/current/doc/javadoc/resources/
packages/jts/branches/upstream/current/doc/javadoc/resources/inherit.gif
packages/jts/branches/upstream/current/doc/javadoc/serialized-form.html
packages/jts/branches/upstream/current/doc/javadoc/stylesheet.css
packages/jts/branches/upstream/current/jtsio/
packages/jts/branches/upstream/current/jtsio/doc/
packages/jts/branches/upstream/current/jtsio/doc/javadoc/
packages/jts/branches/upstream/current/jtsio/doc/javadoc/allclasses-frame.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/allclasses-noframe.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GMLHandler.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GMLReader.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GMLWriter.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GeometryStrategies.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/package-frame.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/package-summary.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/package-tree.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/OraReader.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/OraWriter.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/package-frame.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/package-summary.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/package-tree.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/constant-values.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/deprecated-list.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/help-doc.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/index-all.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/index.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/overview-frame.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/overview-summary.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/overview-tree.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/package-list
packages/jts/branches/upstream/current/jtsio/doc/javadoc/packages.html
packages/jts/branches/upstream/current/jtsio/doc/javadoc/resources/
packages/jts/branches/upstream/current/jtsio/doc/javadoc/resources/inherit.gif
packages/jts/branches/upstream/current/jtsio/doc/javadoc/stylesheet.css
packages/jts/branches/upstream/current/jtsio/src/
packages/jts/branches/upstream/current/jtsio/src/com/
packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/
packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/
packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/
packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/
packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLConstants.java
packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLHandler.java
packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLReader.java
packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLWriter.java
packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GeometryStrategies.java
packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/package.html
packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/
packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/Constants.java
packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/OraReader.java
packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/OraWriter.java
packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/package.html
packages/jts/branches/upstream/current/jtsio/test/
packages/jts/branches/upstream/current/jtsio/test/com/
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/GeometryGenerator.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/GridGenerator.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/LineStringGenerator.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/MultiGenerator.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/PointGenerator.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/PolygonGenerator.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/GMLReaderTestCase.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticLineStringTest.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticMultiLineStringTest.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticMultiPointTest.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticMultiPolygonTest.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticPointTest.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticPolygonTest.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/WritingTestCase.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/geometry.xsd
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/ConnectedTestCase.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticLineStringTest.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticMultiLineStringTest.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticMultiPointTest.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticMultiPolygonTest.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticPointTest.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticPolygonTest.java
packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/connection.properties
packages/jts/branches/upstream/current/jtsio/test/data/
packages/jts/branches/upstream/current/jtsio/test/data/linestrings.xml
packages/jts/branches/upstream/current/jtsio/test/data/multilinestrings.xml
packages/jts/branches/upstream/current/jtsio/test/data/multipoints.xml
packages/jts/branches/upstream/current/jtsio/test/data/multipolygons.xml
packages/jts/branches/upstream/current/jtsio/test/data/points.xml
packages/jts/branches/upstream/current/jtsio/test/data/polygons.xml
packages/jts/branches/upstream/current/jtsio/test/readme
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/Angle.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/BoundaryNodeRule.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/CentralEndpointIntersector.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/CoordinateSequenceFilter.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/AffineTransformation.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/AffineTransformationBuilder.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/Matrix.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/FastNodingValidator.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/InteriorIntersectionFinder.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/BoundaryOp.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/validate/
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.java
packages/jts/branches/upstream/current/testxml/
packages/jts/branches/upstream/current/testxml/general/
packages/jts/branches/upstream/current/testxml/general/TestBoundary.xml
packages/jts/branches/upstream/current/testxml/general/TestCentroid.xml
packages/jts/branches/upstream/current/testxml/general/TestConvexHull-big.xml
packages/jts/branches/upstream/current/testxml/general/TestConvexHull.xml
packages/jts/branches/upstream/current/testxml/general/TestFunctionAA.xml
packages/jts/branches/upstream/current/testxml/general/TestFunctionAAPrec.xml
packages/jts/branches/upstream/current/testxml/general/TestFunctionLA.xml
packages/jts/branches/upstream/current/testxml/general/TestFunctionLAPrec.xml
packages/jts/branches/upstream/current/testxml/general/TestFunctionLL.xml
packages/jts/branches/upstream/current/testxml/general/TestFunctionLLPrec.xml
packages/jts/branches/upstream/current/testxml/general/TestFunctionPA.xml
packages/jts/branches/upstream/current/testxml/general/TestFunctionPL.xml
packages/jts/branches/upstream/current/testxml/general/TestFunctionPLPrec.xml
packages/jts/branches/upstream/current/testxml/general/TestFunctionPP.xml
packages/jts/branches/upstream/current/testxml/general/TestInteriorPoint.xml
packages/jts/branches/upstream/current/testxml/general/TestRectanglePredicate.xml
packages/jts/branches/upstream/current/testxml/general/TestRelateAA.xml
packages/jts/branches/upstream/current/testxml/general/TestRelateAC.xml
packages/jts/branches/upstream/current/testxml/general/TestRelateLA.xml
packages/jts/branches/upstream/current/testxml/general/TestRelateLC.xml
packages/jts/branches/upstream/current/testxml/general/TestRelateLL.xml
packages/jts/branches/upstream/current/testxml/general/TestRelatePA.xml
packages/jts/branches/upstream/current/testxml/general/TestRelatePL.xml
packages/jts/branches/upstream/current/testxml/general/TestRelatePP.xml
packages/jts/branches/upstream/current/testxml/general/TestSimple.xml
packages/jts/branches/upstream/current/testxml/general/TestValid.xml
packages/jts/branches/upstream/current/testxml/general/TestValid2-big.xml
packages/jts/branches/upstream/current/testxml/general/TestValid2.xml
packages/jts/branches/upstream/current/testxml/general/TestWithinDistance.xml
packages/jts/branches/upstream/current/testxml/robust/
packages/jts/branches/upstream/current/testxml/robust/ExternalRobustness.xml
packages/jts/branches/upstream/current/testxml/robust/TestRobustOverlayFixed.xml
packages/jts/branches/upstream/current/testxml/robust/TestRobustOverlayFloat.xml
packages/jts/branches/upstream/current/testxml/robust/TestRobustRelate.xml
packages/jts/branches/upstream/current/testxml/stmlf/
packages/jts/branches/upstream/current/testxml/stmlf/stmlf-cases-20061018_int.xml
packages/jts/branches/upstream/current/testxml/stmlf/stmlf-cases-20061020_int.xml
packages/jts/branches/upstream/current/testxml/validate/
packages/jts/branches/upstream/current/testxml/validate/TestRelateAA-big.xml
packages/jts/branches/upstream/current/testxml/validate/TestRelateAA.xml
packages/jts/branches/upstream/current/testxml/validate/TestRelateAC.xml
packages/jts/branches/upstream/current/testxml/validate/TestRelateLA.xml
packages/jts/branches/upstream/current/testxml/validate/TestRelateLC.xml
packages/jts/branches/upstream/current/testxml/validate/TestRelateLL.xml
packages/jts/branches/upstream/current/testxml/validate/TestRelatePA.xml
packages/jts/branches/upstream/current/testxml/validate/TestRelatePL.xml
packages/jts/branches/upstream/current/testxml/validate/TestRelatePP.xml
packages/jts/branches/upstream/current/testxml/vivid/
Removed:
packages/jts/branches/upstream/current/bin/jts.css
packages/jts/branches/upstream/current/bin/test_vivid.bat
packages/jts/branches/upstream/current/src/Doxyfile
packages/jts/branches/upstream/current/src/jtsio/
packages/jts/branches/upstream/current/src/jump-workbench-properties.xml
packages/jts/branches/upstream/current/test/
Modified:
packages/jts/branches/upstream/current/bin/test.bat
packages/jts/branches/upstream/current/bin/test_robust.bat
packages/jts/branches/upstream/current/bin/testrunner.properties
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/JTSVersion.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/CGAlgorithms.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/PointLocator.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/RobustLineIntersector.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/CoordinateArrays.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Geometry.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/GeometryCollection.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/GeometryFactory.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/IntersectionMatrix.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/LineSegment.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/LineString.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/LinearRing.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/MultiLineString.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/MultiPoint.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/MultiPolygon.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Point.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Polygon.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/PrecisionModel.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Triangle.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/GeometryTransformer.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeEnd.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeEndStar.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeIntersection.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeNodingValidator.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeRing.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/GeometryGraph.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/Node.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/PlanarGraph.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/Bintree.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/Interval.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/Node.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/NodeBase.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/quadtree/Root.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/strtree/AbstractSTRtree.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKBReader.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKBWriter.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKTReader.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKTWriter.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/IntersectionAdder.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/IntersectionFinderAdder.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/NodingValidator.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/ScaledNoder.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/GeometryGraphOperation.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/IsSimpleOp.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/buffer/BufferOp.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/buffer/BufferSubgraph.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/distance/DistanceOp.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/linemerge/LineSequencer.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/OverlayOp.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/PolygonBuilder.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/polygonize/EdgeRing.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/polygonize/Polygonizer.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/relate/EdgeEndBundle.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/relate/RelateOp.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/valid/ConsistentAreaTester.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/valid/TopologyValidationError.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/DirectedEdge.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/Edge.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/PlanarGraph.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/Subgraph.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/precision/CommonBits.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/precision/EnhancedPrecisionOp.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/LineSegmentIndex.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLineSegment.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLineString.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLinesSimplifier.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.java
packages/jts/branches/upstream/current/src/com/vividsolutions/jts/util/CollectionUtil.java
Log:
[svn-upgrade] Integrating new upstream version, jts (1.8.0)
Deleted: packages/jts/branches/upstream/current/bin/jts.css
===================================================================
--- packages/jts/branches/upstream/current/bin/jts.css 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/bin/jts.css 2009-09-22 12:40:02 UTC (rev 2489)
@@ -1,139 +0,0 @@
-BODY
-{
- BACKGROUND-COLOR: lightblue;
- FONT-FAMILY: Verdana, Arial;
- FONT-SIZE: 10pt;
- FONT-WEIGHT: normal
-}
-H2
-{
- BACKGROUND-COLOR: darkblue;
- COLOR: white;
- FONT-FAMILY: Verdana, Arial;
- FONT-SIZE: 12pt;
- FONT-WEIGHT: bolder;
- MARGIN-BOTTOM: 2pt;
- PADDING-LEFT: 5px
-}
-H3
-{
- BACKGROUND-COLOR: lightskyblue;
- FONT-WEIGHT: normal;
- MARGIN-BOTTOM: 2pt
-}
-H4
-{
- BACKGROUND-COLOR: limegreen;
- FONT-WEIGHT: normal
-}
-H5
-{
- BACKGROUND-COLOR: burlywood;
- FONT-WEIGHT: normal
-}
-H6
-{
- FONT-SIZE: 12pt
-}
-TH
-{
- BACKGROUND-COLOR: burlywood
-}
-.initialLetter
-{
- COLOR: lightblue
-}
-.foo
-{
- COLOR: goldenrod
-}
-.wktA
-{
- COLOR: blue;
- FONT-SIZE: 8pt
-}
-.wktB
-{
- COLOR: red;
- FONT-SIZE: 8pt
-}
-.methodTitle
-{
- BACKGROUND-COLOR: steelblue;
- COLOR: yellow
-}
-.wktR
-{
- FONT-SIZE: 8pt
-}
-.precisionModel
-{
- FONT-SIZE: 8pt
-}
-.resultTrue
-{
- COLOR: green
-}
-.resultFalse
-{
- COLOR: red
-}
-.MenuBody
-{
- BACKGROUND-COLOR: midnightblue
-}
-.MenuItem
-{
- COLOR: white
-}
-.MenuTitle
-{
- COLOR: #3366ff;
- FONT-SIZE: 14pt;
- TEXT-ALIGN: center
-}
-TD
-{
- FONT-SIZE: 10pt
-}
-.orgName
-{
- FONT-SIZE: 8pt;
- FONT-STYLE: italic;
- FONT-WEIGHT: lighter
-}
-.creditName
-{
- FONT-WEIGHT: bolder;
- PADDING-LEFT: 10px
-}
-.creditTitle
-{
- BACKGROUND-COLOR: steelblue;
- COLOR: yellow;
- FONT-WEIGHT: bolder;
- PADDING-LEFT: 10px;
- PADDING-RIGHT: 10px
-}
-H1
-{
- BORDER-BOTTOM: darkblue thin solid;
- BORDER-TOP: medium none;
- FONT-STYLE: italic;
- MARGIN-BOTTOM: 2px;
- PADDING-BOTTOM: 4px
-}
-.testTitle
-{
- FONT-SIZE: 16pt;
- FONT-WEIGHT: bolder
-}
-.caption
-{
- FONT-SIZE: 8pt;
- FONT-STYLE: italic
-}
-.bigCaption
-{
- FONT-WEIGHT: bolder
-}
Modified: packages/jts/branches/upstream/current/bin/test.bat
===================================================================
--- packages/jts/branches/upstream/current/bin/test.bat 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/bin/test.bat 2009-09-22 12:40:02 UTC (rev 2489)
@@ -13,7 +13,7 @@
call :setclass
)
-java com.vividsolutions.jtstest.testrunner.TopologyTestApp -Files ..\test\validate
+java com.vividsolutions.jtstest.testrunner.TopologyTestApp -Files ..\testxml\validate ..\testxml\general
pause
goto :eof
Modified: packages/jts/branches/upstream/current/bin/test_robust.bat
===================================================================
--- packages/jts/branches/upstream/current/bin/test_robust.bat 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/bin/test_robust.bat 2009-09-22 12:40:02 UTC (rev 2489)
@@ -1,5 +1,5 @@
@echo off
-rem A batch file to run the XML test files written by Geographic Data BC.
+rem A batch file to run a XML test files
set CLASSPATH=
for %%i in (..\lib\*.*) do (
@@ -13,7 +13,7 @@
call :setclass
)
-java com.vividsolutions.jtstest.testrunner.TopologyTestApp -Files ..\test\robust
+java com.vividsolutions.jtstest.testrunner.TopologyTestApp -Files ..\testxml\robust
pause
goto :eof
Added: packages/jts/branches/upstream/current/bin/test_stmlf.bat
===================================================================
--- packages/jts/branches/upstream/current/bin/test_stmlf.bat (rev 0)
+++ packages/jts/branches/upstream/current/bin/test_stmlf.bat 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,25 @@
+ at echo off
+rem A batch file to run a XML test files
+
+set CLASSPATH=
+for %%i in (..\lib\*.*) do (
+ set jarfile=%%i
+
+ rem If we append to a variable inside the for, only the last entry will
+ rem be kept. So append to the variable outside the for.
+ rem See http://www.experts-exchange.com/Operating_Systems/MSDOS/Q_20561701.html.
+ rem [Jon Aquino]
+
+ call :setclass
+)
+
+java com.vividsolutions.jtstest.testrunner.TopologyTestApp -Files ..\testxml\stmlf -geomop com.vividsolutions.jtstest.testrunner.geomop.OverlayValidatedGeometryOperation
+pause
+
+goto :eof
+
+:setclass
+set CLASSPATH=%jarfile%;%CLASSPATH%
+set jarfile=
+
+:eof
\ No newline at end of file
Deleted: packages/jts/branches/upstream/current/bin/test_vivid.bat
===================================================================
--- packages/jts/branches/upstream/current/bin/test_vivid.bat 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/bin/test_vivid.bat 2009-09-22 12:40:02 UTC (rev 2489)
@@ -1,25 +0,0 @@
- at echo off
-rem A batch file to run the XML test files written by Geographic Data BC.
-
-set CLASSPATH=
-for %%i in (..\lib\*.*) do (
- set jarfile=%%i
-
- rem If we append to a variable inside the for, only the last entry will
- rem be kept. So append to the variable outside the for.
- rem See http://www.experts-exchange.com/Operating_Systems/MSDOS/Q_20561701.html.
- rem [Jon Aquino]
-
- call :setclass
-)
-
-java com.vividsolutions.jtstest.testrunner.TopologyTestApp -Files ..\test\vivid
-pause
-
-goto :eof
-
-:setclass
-set CLASSPATH=%jarfile%;%CLASSPATH%
-set jarfile=
-
-:eof
\ No newline at end of file
Modified: packages/jts/branches/upstream/current/bin/testrunner.properties
===================================================================
--- packages/jts/branches/upstream/current/bin/testrunner.properties 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/bin/testrunner.properties 2009-09-22 12:40:02 UTC (rev 2489)
@@ -1,3 +1,3 @@
#Properties file for class com.vividsolutions.jtstest.testrunner.TopologyTestApp
-#Fri May 24 10:18:11 PDT 2002
-TestFiles=
+#Wed Dec 06 16:08:49 PST 2006
+TestFiles=\ Z\:\\proj\\jts\\robust\\tests\\unit\\cmp-5966094-2025063.xml
Added: packages/jts/branches/upstream/current/doc/JTS Developer Guide.pdf
===================================================================
(Binary files differ)
Property changes on: packages/jts/branches/upstream/current/doc/JTS Developer Guide.pdf
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: packages/jts/branches/upstream/current/doc/JTS Technical Specs.pdf
===================================================================
(Binary files differ)
Property changes on: packages/jts/branches/upstream/current/doc/JTS Technical Specs.pdf
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: packages/jts/branches/upstream/current/doc/JTS TestBuilder & TestRunner User Guide.pdf
===================================================================
(Binary files differ)
Property changes on: packages/jts/branches/upstream/current/doc/JTS TestBuilder & TestRunner User Guide.pdf
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: packages/jts/branches/upstream/current/doc/JTS Version History.html
===================================================================
--- packages/jts/branches/upstream/current/doc/JTS Version History.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/JTS Version History.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,511 @@
+<html>
+
+<head>
+<title>JTS Version History</title>
+</head>
+
+<body bgcolor='lightblue'>
+<h1 style='text-align:center;'>
+JTS TOPOLOGY SUITE
+<br>
+<i>Version History</i>
+</h1>
+
+
+This document lists the change history of release versions of the JTS Topology Suite
+<p>
+
+
+<!----------------------------------------------------------------------->
+<hr size='4' color='darkblue'>
+<h2>Version 1.8</h2>
+
+<i>Release Date: December 19, 2006</i>
+
+<h3>Functionality Improvements</h3>
+<ul>
+<li>Improved robustness for overlay operations, via using geometry snapping
+<li>Added <code>Angle</code> class
+<li>Added methods to <code>Triangle</code> class
+<li>Added <code>LineSegment.midPoint</code> method
+<li>Added ability to specify output of Z values to <code>WKTWriter</code>
+<li>Added <code>setFormatted</code>, <code>setTab</code>, <code>setMaxCoordinatesPerLine</code> methods to <code>WKTWriter</code>
+<li>Added <code>BoundaryNodeRule</code> classes, and ability to specify a Boundary Node Rule
+in <code>RelateOp</code>, <code>IsSimpleOp</code>, <code>BoundaryOp</code>
+<li>Added ability to get the failure location to <code>IsSimpleOp</code>
+<li>Added <code>BoundaryOp</code> with improved algorithm for lineal geometries. Changed lineal Geometry classes to use it.
+<li>Enhanced <code>Geometry</code> overlay methods to accept empty <code>GeometryCollections.</code>
+<li>Enhanced Error Handling for <tt>WKTReader</tt>
+<li>Added <code>CoordinateSequenceFilter</code>
+<li>Added <code>AffineTransformation</code> and <code>AffineTransformationBuilder</code>
+</ul>
+
+<h3>API Changes</h3>
+<ul>
+<li>Changed API for <code>IsSimpleOp</code> (required to support returning failure location)
+</ul>
+
+<h3>Bug Fixes</h3>
+<ul>
+<li>Fixed bug in <code>GeometryFactory.buildGeometry</code>
+causing failure if input contained all GeometryCollections of the same subclass
+<li>Changed AssertFailure to TopologyException in <code>PolygonBuilder</code>
+<li>Improved correctness of <tt>RobustLineIntersector</tt> in certain cases where segment endpoints intersect
+<li>Eliminated duplicate method execution in <code>TestRunner</code>
+</ul>
+
+<hr size='0' color='darkblue'>
+<h3 style='font-family:sans-serif; color:darkblue'>JTS TestBuilder</h3>
+
+<h3>New Features</h3>
+<ul>
+<li>Zoom tool can now draw zoom box as well as click
+<li>Cut, Copy and Paste buttons for Input WKT
+<li>added ability to specify custom Geometry Operations
+</ul>
+
+<hr size='0' color='darkblue'>
+<h3 style='font-family:sans-serif; color:darkblue'>JTS TestRunner</h3>
+
+<h3>New Features</h3>
+<ul>
+<li>added ability to specify custom Geometry Operations
+</ul>
+
+<h3>Bug Fixes</h3>
+<ul>
+<li>Eliminated duplicate method execution
+</ul>
+
+
+
+<!----------------------------------------------------------------------->
+<hr size='4' color='darkblue'>
+<h2>Version 1.7.2</h2>
+
+<i>Release Date: June 22, 2006</i>
+
+<h3>Functionality Improvements</h3>
+<ul>
+<li>Added support for EWKB (SRIDs only) to <code>WKBReader</code>
+</ul>
+
+<h3>Bug Fixes</h3>
+<ul>
+<li>Fixed bug in <code>CoordinateArrays.ptNotInList</code>.
+Changed <code>polygonize.EdgeRing</code> to used corrected code.
+<li>Fixed bug causing duplicate points in <code>ScaledNoder</code>
+<li>Fixed bug causing Null Pointer for empty geometries in <code>OraWriter</code>
+<li>Changed AssertFailure to TopologyException in <code>EdgeNode</code>
+</ul>
+
+<!----------------------------------------------------------------------->
+<hr size='4' color='darkblue'>
+<h2>Version 1.7.1</h2>
+
+<i>Release Date: March 20, 2006</i>
+
+<h3>Functionality Improvements</h3>
+<ul>
+<li>Added Hex string conversion to <code>WKBReader</code> and <code>WKBWriter</code>
+</ul>
+
+<h3>Bug Fixes</h3>
+<ul>
+<li>Fixed null point cloning bug in <code>TopologyValidationError</code> (<i>thanks to Markus Gebhard</i>)
+<li>Fixed bug in <code>PointLocator</code> fix for LinearRings
+<li>Fixed bug in <code>Geometry.isValid</code> and <code>IsValidOp</code> causing some valid polygons
+to be reported as having a Disconnected Interior (specifically, polygons containing
+holes touching at a single point, where the point is the highest point in the hole rings, and where the holes
+have a specific orientation)
+<li>Fixed bug in <code>Polygon.isRectangle</code>, which reported some valid rectangles as false
+</ul>
+
+<h3>Performance Improvements</h3>
+<ul>
+<li>Improved performance for <code>Geometry#withinDistance</code> (via short-circuiting)
+</ul>
+
+<h3>Contributors</h3>
+<ul>
+<li>Dave Blasby
+<li>Koen van Dijken
+</ul>
+
+
+<!----------------------------------------------------------------------->
+<hr size='4' color='darkblue'>
+<h2>Version 1.7</h2>
+
+<i>Release Date: December 7, 2005</i>
+
+<h3>Functionality Improvements</h3>
+<ul>
+<li>Added <code>JTSVersion</code> class to provide access to the API version information
+<li>Added <code>covers</code> and <code>coveredBy</code> predicates to <code>Geometry</code>
+<li>Added <code>Geometry#buffer(distance, quadSegs, endCapStyle)</code> method to expose buffer end cap styles
+<li>Added <code>LineString#reverse</code> and <code>MultiLineString#reverse</code> methods
+<li>Added <code>centre</code>, <code>intersection</code>, <code>translate</code>,
+<code>expandBy(distance)</code>, <code>expandBy(dx, dy)</code>
+methods to <code>Envelope</code>
+<li>Added <code>CollectionUtil</code> class for performing operations over collections
+<li>Added <code>CoordinateArrays</code> comparators
+<li>Added <code>CoordinateSequence#getDimension</code>
+<li>Added convenience methods <code>toPoint</code> and <code>toLineString</code> to <code>WKTWriter</code>
+<li>Added WKB API (<code>WKBReader</code> and <code>WKBWriter</code> classes in <code>com.vividsolutions.jts.io</code>
+<li><code>WKTReader</code> has better handling of numeric parsing, including support for scientific notation
+<li>Added <code>IsValidOp#setSelfTouchingRingFormingHoleValid</code> to allow validating SDE-style polygons
+<li>Added check for non-closed rings in <code>IsValidOp</code>
+<li>Added Linear Referencing API (<code>com.vividsolutions.jts.linearref</code>
+<li>Added <code>LineSequencer</code> class to <code>com.vividsolutions.jts.operation.linemerge</code>
+<li>Added <code>Subgraph</code> class to <code>com.vividsolutions.jts.planargraph</code>
+<li>Added <code>isRemoved</code> method to <code>GraphComponent</code>
+<li>Added <code>ConnectedSubgraphFinder</code> class to <code>com.vividsolutions.jts.planargraph.algorithm</code>
+<li>Added <code>setVisited</code>, <code>getComponentWithVisitedState</code>,
+<code>setVisited</code>, <code>getComponentWithVisitedState</code>
+methods to <code>com.vividsolutions.jts.planargraph.GraphComponent</code>
+<li>Added classes to perform Snap Rounding (in <code>com.vividsolutions.jts.noding.snapround</code>>
+<li>Improved buffering speed and robustness by using Snap Rounding
+<li>Added buffer optimization for results with large numbers of polygons and/or holes
+<li>Added <code>STRtree#query(Envelope, ItemVisitor)</code> method
+<li>Added <code>Debug#toLine</code> methods
+<li>Added <code>ConvexHull(Coordinate[])</code> constructor
+</ul>
+
+<h3>Bug Fixes</h3>
+<ul>
+<li>Fixed decimal formatting in <code>WKTWriter</code> to force a leading 0 in decimal numbers
+<li>Fixed bug in <code>CoordinateArraySequence#setOrdinate</code>
+<li>Fixed bug when checking validity of polygon with hole (<code>IsValidOp#checkHolesInShell</code>)
+<li>Improved correctness of computated intersections in <code>RobustLineIntersector</code>
+<li>Fixed bugs in <code>CoordinateList.clone</code> (thanks to Matthias Bobzien)
+<li>Fixed bug in <code>Envelope.equals</code> (thanks to John Cartwright)
+<li>Fixed <code>PointLocator</code> for LinearRings
+</ul>
+
+<h3>Performance Improvements</h3>
+<ul>
+<li>Improved performance for overlay operations (point inclusion, identical edge detection)
+<li>Improved Convex Hull performance
+</ul>
+
+<h3>API Changes</h3>
+<ul>
+<li>Added <code>SpatiaIndex#query(Envelope, ItemVisitor)</code> method signature
+<li>Added <code>CoordinateSequence#getDimension()</code> method signature
+<li>Marked <code>GeometryEditor.CoordinateOperation#edit(Geometry, GeometryFactory)</code> method
+as <code>final</code>, to prevent incorrect use
+</ul>
+
+<h3>Semantics Changes</h3>
+<ul>
+<li>CoordinateArraySequence#setOrdinate now checks that the ordinate index is in range
+</ul>
+
+
+
+<!----------------------------------------------------------------------->
+<hr size='4' color='darkblue'>
+<h2>Version 1.6</h2>
+
+Release Date: February 3, 2005
+
+<h3>API Changes</h3>
+<ul>
+<li>Changed to using <code>CoordinateArraySequence</code> instead of <code>DefaultCoordinateSequence</code>
+(to provide a more descriptive name).
+</ul>
+
+<h3>Semantics Changes</h3>
+<ul>
+<li>PrecisionModel#makePrecise changed to use Symmetric Arithmetic Rounding rather than Banker's Rounding
+</ul>
+
+<h3>Functionality Improvements</h3>
+<ul>
+<li>Added ability to enable <code>Debug</code> methods by setting a system property
+<li>Added <code>getNumGeometries</code> and <code>getGeometryN</code> methods to Geometry class, to make API more uniform
+<li>Improved API for <code>CoordinateSequence</code> allows more options for improving memory usage and handling custom coordinate storage methods
+<li>Added <code>PackedCoordinateSequence</code> to provide reduced memory footprint for geometry objects if desired
+<li>Added optimized spatial predicates for rectangles
+<li>Added Debug#isDebugging method
+</ul>
+
+<h3>Bug Fixes</h3>
+<ul>
+<li>Fixed bug in <code>Geometry#within()</code> short circuiting
+<li>Fixed bug causing <code>Geometry#isValid</code> to throw IllegalArgumentException for certain kinds of holes with invalid rings
+<li>Fixed bug causing redundant linestrings to be returned in the result of overlaying polygons containing holes touching their shell.
+<li><code>Polygon#getBoundary</code> now returns a <code>LinearRing</code> if the polygon does not have holes
+</ul>
+
+<h3>Architecture Changes</h3>
+<ul>
+<li>Removed a proliferation of references to the default <code>CoordinateSequenceFactory</code>
+</ul>
+
+<h3>Contributors</h3>
+<ul>
+<li>Andrea Aime
+</ul>
+
+<!----------------------------------------------------------------------->
+<hr size='4' color='darkblue'>
+<h2>Version 1.5</h2>
+Release Date: September 22, 2004
+<p>
+This version is upwards compatible with Version 1.4
+
+<h3>API Changes</h3>
+<ul>
+<li>None
+</ul>
+
+<h3>Semantics Changes</h3>
+<ul>
+<li>None
+</ul>
+
+<h3>Functionality Improvements</h3>
+<ul>
+<li><code>CGAlgorithms#isCCW</code> now handles coordinate lists with repeated points. Also throws an IllegalArgumentException if the input ring does not have 3 distinct points
+<li><code>isValid</code> now checks for invalid coordinates (e.g. ones with Nan or infinite numbers)
+<li>added copyDeep() method to <code>CoordinateArrays</code>
+<li>added geometry simplification operations <code>DouglasPeuckerSimplifier</code> and <code>TopologyPreservingSimplifier</code>
+<li>added methods to <code>Quadtree</code> and <code>STRtree</code> to remove items and query using the Visitor pattern
+</ul>
+
+<h3>Performance Improvements</h3>
+<ul>
+<li>Added short-circuit tests in geometry named predicates based on envelope tests
+</ul>
+<h3>Bug Fixes</h3>
+<ul>
+<li>Fixed bugs in <code>Geometry</code> serialization
+<li>Fixed bug in <code>ValidOp</code> which reported some MultiPolygons with shells nested inside a hole as invalid
+<li>Fixed bug in buffer which caused buffers of some polygons with small & large holes to not contain any holes
+<li>Fixed bug in <code>Polygonizer</code> which caused exception if no lines were supplied
+</ul>
+<h3>Architecture Changes</h3>
+<ul>
+<li>Basic CG algorithm methods made static in the <code>CGAlgorithms</code> class
+<li>Various utility methods made public in <code>CoordinateArrays</code> class
+</ul>
+<h3>Documentation</h3>
+<ul>
+<li>More examples provided in <code>com.vividsolutions.jtsexamples package</code>
+</ul>
+
+<!----------------------------------------------------------------------->
+<hr size='4' color='darkblue'>
+<h2>Version 1.4</h2>
+
+Release Date: November 4, 2003
+<h3>Semantics Changes</h3>
+<ul>
+<li>none
+</ul>
+<h3>Functionality Improvements</h3>
+<ul>
+<li>Added "LINEARRING" tag to WKT syntax
+<li>Added GeometryEditor class to allow easy copy/modify of Geometrys
+<li>Added GeometricShapeFactory class to easily create standard geometric shapes
+<li>Geometries can now carry arbitrary user-defined data objects (via Geometry#get/setUserData(Object) method)
+<li>Added CoordinateSequence and CoordinateSequenceFactory interfaces, and default implementations (BasicCoordinateSequence, BasicCoordinateSequenceFactory)
+<li>Added Geometry#getFactory
+<li>Added new PrecisionModel type of FLOATING_SINGLE, for rounding to single precision floating point
+<li>Added DistanceOp#getClosestPoints method, which returns the closest points between two Geometries
+<li>Added com.vividsolutions.jts.noding package containing classes to perform fast indexed noding of linestrings
+<li>Added com.vividsolutions.jts.operation.polygonize package containing classes to perform polygonization
+<li>Added com.vividsolutions.jts.operation.linemerge package containing classes to perform line merging
+<li>Added SimpleGeometryPrecisionReducer to allow reducing precision of coordinates of a Geometry
+<li>Added LineSegment#closestPoints method to compute the closest points between two line segments
+<li>Added MinimumDiameter class to compute minimum diameters of Geometries
+<li>Added geom.Triangle class to contain algorithms for Triangles
+<li>BufferOp now allows end cap styles to be specified. Three types are supported: round, butt and square.
+</ul>
+<h3>Performance Improvements</h3>
+<ul>
+<li>EdgeList now provides a findEqualEdge method which is substantially faster than findEdgeIndex, for large lists
+<li>Buffering is now faster and much more robust
+<li>Overlap operations are now more robust
+</ul>
+<h3>Bug Fixes</h3>
+<ul>
+<li>Envelope#init(Envelope) now handles null Envelopes correctly
+<li>CoordinateList#add() now correctly ignores the z-value of Coordinates in determining equality
+<li>Geometry#isValid now correctly handles checking validity of LinearRings
+<li>Fixed infinite loop bug causing Out Of Memory errors during polygon intersection
+<li>Geometry#clone now correctly clones the Geometry's Envelope
+<li>LineIntersector#computeEdgeDistance now correctly computes a non-zero edge distance in certain situations when a fixed precision model was being used and the line segment was a single unit in length
+<li>Fixed incorrect calculation of depths in DirectedEdgeStar#computeDepths
+<li>Fixed BufferSubgraph#addReachable to use explicit stack to avoid stack overflow problems
+<li>Fixed various bugs causing some kinds of buffers to be computed incorrectly
+</ul>
+<h3>API Changes</h3>
+<ul>
+<li>WKTReader/Writer: changed protected members to private
+<li>PrecisionModel type is now an object rather than an int
+<li>ConvexHull API changed to remove requirement to pass in CGAlgorithms object
+</ul>
+<h3>Code Architecture Changes</h3>
+<ul>
+<li>geom.util package added for utility classes which parse and modify geometries
+</ul>
+<h3>Documentation</h3>
+<ul>
+<li>More examples provided in com.vividsolutions.jtsexamples package
+<li>Added JTS Developers Guide
+</ul>
+
+<!----------------------------------------------------------------------->
+<hr size='4' color='darkblue'>
+<h2>Version 1.3</h2>
+Release Date: April 4, 2003
+<h3>Semantics Changes</h3>
+<ul>
+<li>all Geometry methods are now reentrant (thread-safe)
+<li>Fixed-precision coordinates are now stored in a rounded but non-scaled form. This makes them compatible with non-precise (Floating) coordinates, and simplifies working with precise coordinates directly. Mixed precision models are now supported in Geometry methods; method results are in the more precise of the input precision models.
+<li>Offsets are no longer supported in the Fixed precision model. This is necessary to allow storing fixed precision coordinates in a non-scaled form. This does not reduce the total precision available, since coordinates are stored in a floating-point format.
+<li>SRID and Precision Model are no longer checked for equality during Geometry operations. This removes a limitation which provided little semantic benefit.
+</ul>
+
+<h3>Functionality Improvements</h3>
+<ul>
+<li>added Geometry.isWithinDistance(Geometry g, double distance) method, to provide optimized proximity queries
+<li>added Geometry.buffer(double distance, int quadrantSegments) method, allowing control over accuracy of buffer approximation
+<li>added Geometry.getCentroid() method
+<li>added Geometry.getInteriorPoint() method, which uses heuristic methods to return a point in the interior of a Geometry
+<li>GeometryFactory.toGeometryArray now returns null if the argument is null
+</ul>
+<h3>Performance Improvements</h3>
+<ul>
+<li>Removed unnecessary string construction in EdgeEndStar.propagateSideLabels()
+<li>Eliminated unnecessary computation of self-intersections in rings during relate and spatial functions. This provides a large increase in speed when working with large rings and polygons. (Note that IsValid still checks for these self-intersections, which are illegal in LinearRings)
+<li>Add short-circuit code to RobustLineIntersector to detect non-intersections more efficiently
+</ul>
+<h3>Bug Fixes</h3>
+<ul>
+<li>Fixed ClassCastException occurring in GeometryCollection.getLength()
+<li>Fixed bug in Edge Intersection insertion (replaced Coordinate#equals with equals2D to ensure that intersection creation is not sensitive to Z-value).
+<li>Fixed handling LineStrings with too few points in GeometryGraph.addLineString
+<li>Fixed: was not checking that MultiPolygons don't contain components with too few points.
+<li>Fixed Envelope.distance() to return correct distance for all envelopes.
+<li>Fixed a few Geometry methods to make them re-entrant.
+<li>Fixed CoordinateList.closeRing() to ensure endpoints are not duplicated
+<li>Fixed CGAlgorithms.signedArea() to use a simpler algorithm which is more robust and faster.
+<li>Fixed bug preventing validating Rings containing an initial repeated point.
+</ul>
+<h3>API Changes</h3>
+<ul>
+<li>Added default constructor to WKTReader. It uses the default GeometryFactory
+<li>Add two static intersects() methods to Envelope, to allow computing intersections with envelopes defined by points only.
+<li>Dropped BinaryPower; its functionality is provided by DoubleBits in a more robust fashion.
+<li>Removed a couple of redundant private static methods from Geometry; they have been replaced by methods in CoordinateArrays
+<li>The Geometry class is now marked as Serializable
+</ul>
+
+<!----------------------------------------------------------------------->
+<hr size='4' color='darkblue'>
+<h2>Version 1.2</h2>
+
+Release Date: 7 October 2002
+<h3>Semantics Changes</h3>
+<ul>
+<li>JTS now allows Geometrys to have repeated points. All operations will continue to perform as before. This removes a significant incompatibility with the OGC spatial data model.
+<li>TopologyExceptions may now be thrown by spatial overlay methods. This helps to distinguish between code bugs and known robustness problems. It also provides a machine-readable coordinate for the error location.
+</ul>
+<h3>Functionality Improvements</h3>
+<ul>
+<li>RobustLineIntersector now uses "normalized" coordinates to maximize the accuracy of intersection computation.
+<li>Upgraded Quadtree with more robust implementation
+<li>Replaced IntervalTree with a more robust implementation of BinTree
+<li>Added STRTree 2-D spatial index, which exhibits better performance than QuadTrees in many situations.
+<li>Added EnhancePrecisionOp, which uses precisioning enhancing techniques to reduce the number of failure cases due to robustness problems.
+</ul>
+<h3>Bug Fixes</h3>
+<ul>
+<li>fixed ConvexHull to use TreeSet instead of HashSet for coordinates
+<li>Fixed isValid for GeometryCollections containing Polygons, which were sometimes erroneously returning a validity failure for correct Geometrys.
+<li>Fixed bug in LineSegment.distancePointLine() which would return the incorrect distance for a LineSegment with two identical points
+<li>Improved error handling in CGAlgorithms.isCCW()
+<li>IsValid now checks for too few points in a geometry component (e.g. due to repeated points in a ring)
+</ul>
+<h3>API Changes</h3>
+<ul>
+<li>added Stopwatch class
+<li>added Geometry.getArea() and Geometry.getLength() methods
+<li>added CGAlgorithms.signedArea() method
+<li>added methods to LineSegment - closestPoint(), getLength()
+<li>added CoordinateArrrays and CoordinateLists utility classes
+<li>Added TopologyValidationError.getErrorType() method
+<li>Added Envelope#intersects; deprecated Envelope#overlaps.
+<li>Added Geometry#geometryChanged() method to allow signaling when Geometry coordinates have been mutated by a client class
+<li>Added STRTree class implementing a Sort-Tile-Recursive spatial index (a variant of a packed R-tree)
+<li>Deleted IntervalTree 1-D spatial index (replaced by BinTree)
+<li>Add BinTree 1-D spatial index
+</ul>
+
+<!----------------------------------------------------------------------->
+<hr size='4' color='darkblue'>
+<h2>Version 1.1.1</h2>
+
+Release Date: 9 April 2002
+<h3>Bug Fixes</h3>
+<ul>
+<li>fixed decimal-point symbol localization bug in WKTWriter
+<li>fixed bug in Envelope.int(Envelope env)
+<li>fixed filename case of SFSMultiLineString.java and IntervalTree.java
+</ul>
+<h3>API Changes</h3>
+<ul>
+<li>deleted TopologyException class
+<li>renamed CGAlgorithms.isPointInPolygon to isPointInRing (a more accurate description of what the method computes)
+</ul>
+<h3>API Additions</h3>
+<ul>
+<li>added Geometry.getCoordinate() method
+<li>added Geometry.distance() method
+<li>added GeometryComponentFilter interface and Geometry.apply(GeometryComponentFilter) method
+</ul>
+
+<!----------------------------------------------------------------------->
+<hr size='4' color='darkblue'>
+<h2>Version 1.1</h2>
+
+Release Date: 28 March 2002
+<h3>New Features</h3>
+<ul>
+<li>added Geometry.isSimple() and Geometry.isValid() methods
+<li>improved design of topological data structures
+<li>added Geometry.setSRID() method
+<li>improved functionality of the Envelope class
+<li>added ability to write to an arbitrary java.io.Writer object to WKTWriter
+<li>added Validate and Mark Location functionality to TestBuilder
+</ul>
+
+<!----------------------------------------------------------------------->
+<hr size='4' color='darkblue'>
+<h2>Version 1.0</h2>
+Release Date: 1 February 2002
+<ul>
+<li>Removed some non-compatibilities with Java 1.1
+<li>Fixed bug in constructing buffer outline around inside of angles
+<li>In TestBuilder vertices are now displayed with fixed size in view units
+<li>Improved code for WKTWriter.writeFormatted()
+<li>Fixed bug in constructor for LinearRing
+<li>Improved implementation of sweepline intersection algorithm to avoid use of dynamic set.
+<li>Fixed bug in ConvexHull.cleanRing()
+<li>Refactored RobustLineIntersector and NonRobustLineIntersector
+</ul>
+
+<!----------------------------------------------------------------------->
+<hr size='4' color='darkblue'>
+<h2>Version 0.0</h2>
+Release Date: 30 May 2001
+
+<p>
+<i>Baseline version</i>
+
+</body>
+</html>
Added: packages/jts/branches/upstream/current/doc/javadoc/allclasses-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/allclasses-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/allclasses-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,586 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree" target="classFrame">AbstractNode</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree" target="classFrame">AbstractSTRtree</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree" target="classFrame"><I>AbstractSTRtree.IntersectsOp</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">AffineTransformation</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">AffineTransformationBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">Angle</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/ArrayListVisitor.html" title="class in com.vividsolutions.jts.index" target="classFrame">ArrayListVisitor</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util" target="classFrame">Assert</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util" target="classFrame">AssertionFailedException</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree" target="classFrame">Bintree</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree" target="classFrame"><I>Boundable</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm" target="classFrame"><I>BoundaryNodeRule</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">BoundaryNodeRule.EndPointBoundaryNodeRule</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">BoundaryNodeRule.Mod2BoundaryNodeRule</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/BoundaryOp.html" title="class in com.vividsolutions.jts.operation" target="classFrame">BoundaryOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer" target="classFrame">BufferBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer" target="classFrame">BufferOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer" target="classFrame">BufferSubgraph</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/ByteArrayInStream.html" title="class in com.vividsolutions.jts.io" target="classFrame">ByteArrayInStream</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io" target="classFrame">ByteOrderDataInStream</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io" target="classFrame">ByteOrderValues</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">CGAlgorithms</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">CentralEndpointIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/CentroidArea.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">CentroidArea</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/CentroidLine.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">CentroidLine</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">CentroidPoint</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util" target="classFrame">CollectionUtil</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util" target="classFrame"><I>CollectionUtil.Function</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision" target="classFrame">CommonBits</A>
+<BR>
+<A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision" target="classFrame">CommonBitsOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision" target="classFrame">CommonBitsRemover</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html" title="class in com.vividsolutions.jts.operation.distance" target="classFrame">ConnectedElementLocationFilter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html" title="class in com.vividsolutions.jts.operation.distance" target="classFrame">ConnectedElementPointFilter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">ConnectedInteriorTester</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html" title="class in com.vividsolutions.jts.planargraph.algorithm" target="classFrame">ConnectedSubgraphFinder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">ConsistentAreaTester</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">ConsistentPolygonRingChecker</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">ConvexHull</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Coordinate</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Coordinate.DimensionalComparator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util" target="classFrame">CoordinateArrayFilter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl" target="classFrame">CoordinateArraySequence</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl" target="classFrame">CoordinateArraySequenceFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom" target="classFrame">CoordinateArrays</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom" target="classFrame">CoordinateArrays.BidirectionalComparator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom" target="classFrame">CoordinateArrays.ForwardComparator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util" target="classFrame">CoordinateCountFilter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom" target="classFrame"><I>CoordinateFilter</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom" target="classFrame">CoordinateList</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom" target="classFrame"><I>CoordinateSequence</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom" target="classFrame">CoordinateSequenceComparator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom" target="classFrame"><I>CoordinateSequenceFactory</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom" target="classFrame"><I>CoordinateSequenceFilter</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateSequences.html" title="class in com.vividsolutions.jts.geom" target="classFrame">CoordinateSequences</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util" target="classFrame">Debug</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom" target="classFrame">DefaultCoordinateSequenceFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">Depth</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Dimension</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">DirectedEdge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">DirectedEdge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">DirectedEdgeStar</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">DirectedEdgeStar</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance" target="classFrame">DistanceOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree" target="classFrame">DoubleBits</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">DouglasPeuckerLineSimplifier</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">DouglasPeuckerSimplifier</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">Edge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">Edge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">EdgeEnd</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">EdgeEndBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">EdgeEndBundle</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">EdgeEndBundleStar</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">EdgeEndStar</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">EdgeIntersection</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">EdgeIntersectionList</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">EdgeList</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">EdgeNodingValidator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">EdgeRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize" target="classFrame">EdgeRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">EdgeSetIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">EdgeSetNoder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/linemerge/EdgeString.html" title="class in com.vividsolutions.jts.operation.linemerge" target="classFrame">EdgeString</A>
+<BR>
+<A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision" target="classFrame">EnhancedPrecisionOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Envelope</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/FastNodingValidator.html" title="class in com.vividsolutions.jts.noding" target="classFrame">FastNodingValidator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html" title="class in com.vividsolutions.jts.operation.overlay.validate" target="classFrame">FuzzyPointLocator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util" target="classFrame">GeometricShapeFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Geometry</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom" target="classFrame">GeometryCollection</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom" target="classFrame">GeometryCollectionIterator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom" target="classFrame"><I>GeometryComponentFilter</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">GeometryEditor</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">GeometryEditor.CoordinateOperation</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util" target="classFrame"><I>GeometryEditor.GeometryEditorOperation</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom" target="classFrame">GeometryFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom" target="classFrame"><I>GeometryFilter</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">GeometryGraph</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation" target="classFrame">GeometryGraphOperation</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance" target="classFrame">GeometryLocation</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap" target="classFrame">GeometrySnapper</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">GeometryTransformer</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">GraphComponent</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">GraphComponent</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">HCoordinate</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround" target="classFrame">HotPixel</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io" target="classFrame"><I>InStream</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/InputStreamInStream.html" title="class in com.vividsolutions.jts.io" target="classFrame">InputStreamInStream</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">InteriorIntersectionFinder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">InteriorPointArea</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/InteriorPointLine.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">InteriorPointLine</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/InteriorPointPoint.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">InteriorPointPoint</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">IntersectionAdder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">IntersectionFinderAdder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom" target="classFrame">IntersectionMatrix</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree" target="classFrame">Interval</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree" target="classFrame">Interval</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/quadtree/IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree" target="classFrame">IntervalSize</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation" target="classFrame">IsSimpleOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">IsValidOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/strtree/ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree" target="classFrame">ItemBoundable</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index" target="classFrame"><I>ItemVisitor</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">IteratedNoder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts" target="classFrame">JTSVersion</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree" target="classFrame">Key</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree" target="classFrame">Key</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">Label</A>
+<BR>
+<A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref" target="classFrame">LengthIndexedLine</A>
+<BR>
+<A HREF="com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref" target="classFrame">LengthLocationMap</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/LineBuilder.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">LineBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">LineIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge" target="classFrame">LineMergeDirectedEdge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html" title="class in com.vividsolutions.jts.operation.linemerge" target="classFrame">LineMergeEdge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge" target="classFrame">LineMergeGraph</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/linemerge/LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge" target="classFrame">LineMerger</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom" target="classFrame">LineSegment</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">LineSegmentIndex</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge" target="classFrame">LineSequencer</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom" target="classFrame">LineString</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap" target="classFrame">LineStringSnapper</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">LinearComponentExtracter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref" target="classFrame">LinearGeometryBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref" target="classFrame">LinearIterator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref" target="classFrame">LinearLocation</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom" target="classFrame">LinearRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Location</A>
+<BR>
+<A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref" target="classFrame">LocationIndexedLine</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">MCIndexNoder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround" target="classFrame">MCIndexPointSnapper</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround" target="classFrame">MCIndexSnapRounder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/MCPointInRing.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">MCPointInRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/Matrix.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">Matrix</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">MaximalEdgeRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">MinimalEdgeRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">MinimumDiameter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">MonotoneChain</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain" target="classFrame">MonotoneChain</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain" target="classFrame">MonotoneChainBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">MonotoneChainEdge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">MonotoneChainIndexer</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain" target="classFrame">MonotoneChainOverlapAction</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain" target="classFrame">MonotoneChainSelectAction</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom" target="classFrame">MultiLineString</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom" target="classFrame">MultiPoint</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom" target="classFrame">MultiPolygon</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">Node</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree" target="classFrame">Node</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree" target="classFrame">Node</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">Node</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree" target="classFrame">NodeBase</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree" target="classFrame">NodeBase</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">NodeFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">NodeMap</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">NodeMap</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding" target="classFrame"><I>Noder</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/NodingValidator.html" title="class in com.vividsolutions.jts.noding" target="classFrame">NodingValidator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">NonRobustCGAlgorithms</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">NonRobustLineIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">NoninvertibleTransformationException</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">NotRepresentableException</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding" target="classFrame">Octant</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer" target="classFrame">OffsetCurveBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html" title="class in com.vividsolutions.jts.operation.buffer" target="classFrame">OffsetCurveSetBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html" title="class in com.vividsolutions.jts.operation.overlay.validate" target="classFrame">OffsetPointGenerator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding" target="classFrame">OrientedCoordinateArray</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io" target="classFrame"><I>OutStream</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/OutputStreamOutStream.html" title="class in com.vividsolutions.jts.io" target="classFrame">OutputStreamOutStream</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">OverlayNodeFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">OverlayOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html" title="class in com.vividsolutions.jts.operation.overlay.validate" target="classFrame">OverlayResultValidator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl" target="classFrame">PackedCoordinateSequence</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl" target="classFrame">PackedCoordinateSequence.Double</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl" target="classFrame">PackedCoordinateSequence.Float</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl" target="classFrame">PackedCoordinateSequenceFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io" target="classFrame">ParseException</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">PlanarGraph</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">PlanarGraph</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Point</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/PointBuilder.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">PointBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/PointExtracter.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">PointExtracter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm" target="classFrame"><I>PointInRing</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">PointLocator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Polygon</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/PolygonBuilder.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">PolygonBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">PolygonExtracter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize" target="classFrame">PolygonizeDirectedEdge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize" target="classFrame">Polygonizer</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">Position</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom" target="classFrame">PrecisionModel</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">Quadrant</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree" target="classFrame">Quadtree</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">QuadtreeNestedRingTester</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/predicate/RectangleContains.html" title="class in com.vividsolutions.jts.operation.predicate" target="classFrame">RectangleContains</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate" target="classFrame">RectangleIntersects</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/RelateComputer.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">RelateComputer</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">RelateNode</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeFactory.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">RelateNodeFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">RelateNodeGraph</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/RelateOp.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">RelateOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">RepeatedPointTester</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer" target="classFrame">RightmostEdgeFinder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">RobustCGAlgorithms</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/RobustDeterminant.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">RobustDeterminant</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">RobustLineIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/bintree/Root.html" title="class in com.vividsolutions.jts.index.bintree" target="classFrame">Root</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/quadtree/Root.html" title="class in com.vividsolutions.jts.index.quadtree" target="classFrame">Root</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree" target="classFrame">SIRtree</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/SIRtreePointInRing.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">SIRtreePointInRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree" target="classFrame">STRtree</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">ScaledNoder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html" title="class in com.vividsolutions.jts.operation.predicate" target="classFrame">SegmentIntersectionTester</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">SegmentIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding" target="classFrame"><I>SegmentIntersector</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding" target="classFrame">SegmentNode</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding" target="classFrame">SegmentNodeList</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SegmentPointComparator.html" title="class in com.vividsolutions.jts.noding" target="classFrame">SegmentPointComparator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding" target="classFrame">SegmentString</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding" target="classFrame">SegmentStringDissolver</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html" title="interface in com.vividsolutions.jts.noding" target="classFrame"><I>SegmentStringDissolver.SegmentStringMerger</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">ShortCircuitedGeometryVisitor</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">SimpleEdgeSetIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html" title="class in com.vividsolutions.jts.precision" target="classFrame">SimpleGeometryPrecisionReducer</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">SimpleMCSweepLineIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">SimpleNestedRingTester</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SimpleNoder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">SimpleNoder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">SimplePointInAreaLocator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/SimplePointInRing.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">SimplePointInRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround" target="classFrame">SimpleSnapRounder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">SimpleSweepLineIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">SinglePassNoder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap" target="classFrame">SnapIfNeededOverlayOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap" target="classFrame">SnapOverlayOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index" target="classFrame"><I>SpatialIndex</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util" target="classFrame">Stopwatch</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">Subgraph</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html" title="class in com.vividsolutions.jts.operation.buffer" target="classFrame">SubgraphDepthLocater</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">SweepLineEvent</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline" target="classFrame">SweepLineEvent</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline" target="classFrame">SweepLineIndex</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline" target="classFrame">SweepLineInterval</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html" title="interface in com.vividsolutions.jts.index.sweepline" target="classFrame"><I>SweepLineOverlapAction</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">SweepLineSegment</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">SweeplineNestedRingTester</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">TaggedLineSegment</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">TaggedLineString</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">TaggedLineStringSimplifier</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">TaggedLinesSimplifier</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom" target="classFrame">TopologyException</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">TopologyLocation</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">TopologyPreservingSimplifier</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">TopologyValidationError</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Triangle</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util" target="classFrame">UniqueCoordinateArrayFilter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io" target="classFrame"><I>WKBConstants</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io" target="classFrame">WKBReader</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io" target="classFrame">WKBWriter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io" target="classFrame">WKTReader</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io" target="classFrame">WKTWriter</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/allclasses-noframe.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/allclasses-noframe.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/allclasses-noframe.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,586 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree"><I>AbstractSTRtree.IntersectsOp</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformationBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/ArrayListVisitor.html" title="class in com.vividsolutions.jts.index">ArrayListVisitor</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util">Assert</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util">AssertionFailedException</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree">Bintree</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree"><I>Boundable</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><I>BoundaryNodeRule</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.EndPointBoundaryNodeRule</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.Mod2BoundaryNodeRule</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/BoundaryOp.html" title="class in com.vividsolutions.jts.operation">BoundaryOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">BufferBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer">BufferOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer">BufferSubgraph</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/ByteArrayInStream.html" title="class in com.vividsolutions.jts.io">ByteArrayInStream</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io">ByteOrderDataInStream</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io">ByteOrderValues</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html" title="class in com.vividsolutions.jts.algorithm">CentralEndpointIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/CentroidArea.html" title="class in com.vividsolutions.jts.algorithm">CentroidArea</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/CentroidLine.html" title="class in com.vividsolutions.jts.algorithm">CentroidLine</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm">CentroidPoint</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util">CollectionUtil</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util"><I>CollectionUtil.Function</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision">CommonBits</A>
+<BR>
+<A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision">CommonBitsOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision">CommonBitsRemover</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html" title="class in com.vividsolutions.jts.operation.distance">ConnectedElementLocationFilter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html" title="class in com.vividsolutions.jts.operation.distance">ConnectedElementPointFilter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html" title="class in com.vividsolutions.jts.operation.valid">ConnectedInteriorTester</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html" title="class in com.vividsolutions.jts.planargraph.algorithm">ConnectedSubgraphFinder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid">ConsistentAreaTester</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html" title="class in com.vividsolutions.jts.operation.overlay">ConsistentPolygonRingChecker</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm">ConvexHull</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom">Coordinate.DimensionalComparator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util">CoordinateArrayFilter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequenceFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays.BidirectionalComparator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays.ForwardComparator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util">CoordinateCountFilter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom"><I>CoordinateFilter</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">CoordinateList</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><I>CoordinateSequence</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom"><I>CoordinateSequenceFactory</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom"><I>CoordinateSequenceFilter</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/CoordinateSequences.html" title="class in com.vividsolutions.jts.geom">CoordinateSequences</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom">DefaultCoordinateSequenceFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom">Dimension</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance">DistanceOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html" title="class in com.vividsolutions.jts.simplify">DouglasPeuckerLineSimplifier</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify">DouglasPeuckerSimplifier</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundle</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundleStar</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersectionList</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeList</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html" title="class in com.vividsolutions.jts.geomgraph">EdgeNodingValidator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html" title="class in com.vividsolutions.jts.operation.overlay">EdgeSetNoder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/linemerge/EdgeString.html" title="class in com.vividsolutions.jts.operation.linemerge">EdgeString</A>
+<BR>
+<A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision">EnhancedPrecisionOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/FastNodingValidator.html" title="class in com.vividsolutions.jts.noding">FastNodingValidator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">FuzzyPointLocator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util">GeometricShapeFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom">GeometryCollectionIterator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom"><I>GeometryComponentFilter</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor.CoordinateOperation</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util"><I>GeometryEditor.GeometryEditorOperation</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom"><I>GeometryFilter</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance">GeometryLocation</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">GeometrySnapper</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><I>InStream</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/InputStreamInStream.html" title="class in com.vividsolutions.jts.io">InputStreamInStream</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding">InteriorIntersectionFinder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointArea</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/InteriorPointLine.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointLine</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/InteriorPointPoint.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointPoint</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionFinderAdder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/quadtree/IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree">IntervalSize</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation">IsSimpleOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid">IsValidOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/strtree/ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree">ItemBoundable</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index"><I>ItemVisitor</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding">IteratedNoder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts">JTSVersion</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree">Key</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree">Key</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<BR>
+<A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LengthIndexedLine</A>
+<BR>
+<A HREF="com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref">LengthLocationMap</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/LineBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">LineBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeDirectedEdge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeEdge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeGraph</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/linemerge/LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMerger</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify">LineSegmentIndex</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge">LineSequencer</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">LineStringSnapper</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util">LinearComponentExtracter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref">LinearGeometryBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref">LinearIterator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom">Location</A>
+<BR>
+<A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LocationIndexedLine</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding">MCIndexNoder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexPointSnapper</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexSnapRounder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/MCPointInRing.html" title="class in com.vividsolutions.jts.algorithm">MCPointInRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/Matrix.html" title="class in com.vividsolutions.jts.geom.util">Matrix</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MaximalEdgeRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MinimalEdgeRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm">MinimumDiameter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChain</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainIndexer</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainOverlapAction</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainSelectAction</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">NodeFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph">NodeMap</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph">NodeMap</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><I>Noder</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/NodingValidator.html" title="class in com.vividsolutions.jts.noding">NodingValidator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">NonRobustCGAlgorithms</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm">NonRobustLineIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html" title="class in com.vividsolutions.jts.geom.util">NoninvertibleTransformationException</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm">NotRepresentableException</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding">Octant</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveSetBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">OffsetPointGenerator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding">OrientedCoordinateArray</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io"><I>OutStream</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/OutputStreamOutStream.html" title="class in com.vividsolutions.jts.io">OutputStreamOutStream</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayNodeFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">OverlayResultValidator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io">ParseException</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/PointBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">PointBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/PointExtracter.html" title="class in com.vividsolutions.jts.geom.util">PointExtracter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm"><I>PointInRing</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm">PointLocator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/PolygonBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">PolygonBuilder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util">PolygonExtracter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize">PolygonizeDirectedEdge</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph">Position</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph">Quadrant</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree">Quadtree</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">QuadtreeNestedRingTester</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/predicate/RectangleContains.html" title="class in com.vividsolutions.jts.operation.predicate">RectangleContains</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate">RectangleIntersects</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/RelateComputer.html" title="class in com.vividsolutions.jts.operation.relate">RelateComputer</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate">RelateNode</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeFactory.html" title="class in com.vividsolutions.jts.operation.relate">RelateNodeFactory</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate">RelateNodeGraph</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/relate/RelateOp.html" title="class in com.vividsolutions.jts.operation.relate">RelateOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid">RepeatedPointTester</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer">RightmostEdgeFinder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">RobustCGAlgorithms</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/RobustDeterminant.html" title="class in com.vividsolutions.jts.algorithm">RobustDeterminant</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm">RobustLineIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/bintree/Root.html" title="class in com.vividsolutions.jts.index.bintree">Root</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/quadtree/Root.html" title="class in com.vividsolutions.jts.index.quadtree">Root</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree">SIRtree</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/SIRtreePointInRing.html" title="class in com.vividsolutions.jts.algorithm">SIRtreePointInRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding">ScaledNoder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html" title="class in com.vividsolutions.jts.operation.predicate">SegmentIntersectionTester</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><I>SegmentIntersector</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding">SegmentNode</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding">SegmentNodeList</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SegmentPointComparator.html" title="class in com.vividsolutions.jts.noding">SegmentPointComparator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding">SegmentStringDissolver</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html" title="interface in com.vividsolutions.jts.noding"><I>SegmentStringDissolver.SegmentStringMerger</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html" title="class in com.vividsolutions.jts.geom.util">ShortCircuitedGeometryVisitor</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleEdgeSetIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html" title="class in com.vividsolutions.jts.precision">SimpleGeometryPrecisionReducer</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleMCSweepLineIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">SimpleNestedRingTester</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SimpleNoder.html" title="class in com.vividsolutions.jts.noding">SimpleNoder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html" title="class in com.vividsolutions.jts.algorithm">SimplePointInAreaLocator</A>
+<BR>
+<A HREF="com/vividsolutions/jts/algorithm/SimplePointInRing.html" title="class in com.vividsolutions.jts.algorithm">SimplePointInRing</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">SimpleSnapRounder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleSweepLineIntersector</A>
+<BR>
+<A HREF="com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapIfNeededOverlayOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapOverlayOp</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index"><I>SpatialIndex</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util">Stopwatch</A>
+<BR>
+<A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph">Subgraph</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html" title="class in com.vividsolutions.jts.operation.buffer">SubgraphDepthLocater</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineIndex</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A>
+<BR>
+<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html" title="interface in com.vividsolutions.jts.index.sweepline"><I>SweepLineOverlapAction</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineSegment</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">SweeplineNestedRingTester</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify">TaggedLineSegment</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify">TaggedLineStringSimplifier</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html" title="class in com.vividsolutions.jts.simplify">TaggedLinesSimplifier</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<BR>
+<A HREF="com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html" title="class in com.vividsolutions.jts.simplify">TopologyPreservingSimplifier</A>
+<BR>
+<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<BR>
+<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A>
+<BR>
+<A HREF="com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util">UniqueCoordinateArrayFilter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io"><I>WKBConstants</I></A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io">WKBReader</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io">WKBWriter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io">WKTReader</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/JTSVersion.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/JTSVersion.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/JTSVersion.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,418 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+JTSVersion
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.JTSVersion class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="JTSVersion";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="JTSVersion.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts</FONT>
+<BR>
+Class JTSVersion</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.JTSVersion</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>JTSVersion</B><DT>extends java.lang.Object</DL>
+
+<P>
+JTS API version information.
+ <p>
+ Versions consist of a 3-part version number: <code>major.minor.patch</code>
+ An optional release status string may be present in the string version of
+ the version.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts">JTSVersion</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/vividsolutions/jts/JTSVersion.html#CURRENT_VERSION">CURRENT_VERSION</A></B></CODE>
+
+<BR>
+ The current version number of the JTS API.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/vividsolutions/jts/JTSVersion.html#MAJOR">MAJOR</A></B></CODE>
+
+<BR>
+ The major version number.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/vividsolutions/jts/JTSVersion.html#MINOR">MINOR</A></B></CODE>
+
+<BR>
+ The minor version number.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/vividsolutions/jts/JTSVersion.html#PATCH">PATCH</A></B></CODE>
+
+<BR>
+ The patch version number.</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/vividsolutions/jts/JTSVersion.html#getMajor()">getMajor</A></B>()</CODE>
+
+<BR>
+ Gets the major number of the release version.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/vividsolutions/jts/JTSVersion.html#getMinor()">getMinor</A></B>()</CODE>
+
+<BR>
+ Gets the minor number of the release version.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/vividsolutions/jts/JTSVersion.html#getPatch()">getPatch</A></B>()</CODE>
+
+<BR>
+ Gets the patch number of the release version.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/vividsolutions/jts/JTSVersion.html#main(java.lang.String[])">main</A></B>(java.lang.String[] args)</CODE>
+
+<BR>
+ Prints the current JTS version to stdout.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/vividsolutions/jts/JTSVersion.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ Gets the full version number, suitable for display.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CURRENT_VERSION"><!-- --></A><H3>
+CURRENT_VERSION</H3>
+<PRE>
+public static final <A HREF="../../../com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts">JTSVersion</A> <B>CURRENT_VERSION</B></PRE>
+<DL>
+<DD>The current version number of the JTS API.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="MAJOR"><!-- --></A><H3>
+MAJOR</H3>
+<PRE>
+public static final int <B>MAJOR</B></PRE>
+<DL>
+<DD>The major version number.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.vividsolutions.jts.JTSVersion.MAJOR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MINOR"><!-- --></A><H3>
+MINOR</H3>
+<PRE>
+public static final int <B>MINOR</B></PRE>
+<DL>
+<DD>The minor version number.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.vividsolutions.jts.JTSVersion.MINOR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="PATCH"><!-- --></A><H3>
+PATCH</H3>
+<PRE>
+public static final int <B>PATCH</B></PRE>
+<DL>
+<DD>The patch version number.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.vividsolutions.jts.JTSVersion.PATCH">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="main(java.lang.String[])"><!-- --></A><H3>
+main</H3>
+<PRE>
+public static void <B>main</B>(java.lang.String[] args)</PRE>
+<DL>
+<DD>Prints the current JTS version to stdout.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>args</CODE> - the command-line arguments (none are required).</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMajor()"><!-- --></A><H3>
+getMajor</H3>
+<PRE>
+public int <B>getMajor</B>()</PRE>
+<DL>
+<DD>Gets the major number of the release version.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the major number of the release version.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMinor()"><!-- --></A><H3>
+getMinor</H3>
+<PRE>
+public int <B>getMinor</B>()</PRE>
+<DL>
+<DD>Gets the minor number of the release version.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the minor number of the release version.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPatch()"><!-- --></A><H3>
+getPatch</H3>
+<PRE>
+public int <B>getPatch</B>()</PRE>
+<DL>
+<DD>Gets the patch number of the release version.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the patch number of the release version.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD>Gets the full version number, suitable for display.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the full version number, suitable for display.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="JTSVersion.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/Angle.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/Angle.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/Angle.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,665 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+Angle
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.Angle class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Angle";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Angle.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class Angle</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.Angle</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Angle</B><DT>extends java.lang.Object</DL>
+
+<P>
+Utility functions for working with angles.
+ Unless otherwise noted, methods in this class express angles in radians.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#CLOCKWISE">CLOCKWISE</A></B></CODE>
+
+<BR>
+ Constant representing clockwise orientation</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#COUNTERCLOCKWISE">COUNTERCLOCKWISE</A></B></CODE>
+
+<BR>
+ Constant representing counterclockwise orientation</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#NONE">NONE</A></B></CODE>
+
+<BR>
+ Constant representing no orientation</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#PI_OVER_2">PI_OVER_2</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#PI_OVER_4">PI_OVER_4</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#PI_TIMES_2">PI_TIMES_2</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#Angle()">Angle</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#angle(com.vividsolutions.jts.geom.Coordinate)">angle</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ Returns the angle that the vector from (0,0) to p,
+ relative to the positive X-axis.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#angle(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">angle</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ Returns the angle of the vector from p0 to p1,
+ relative to the positive X-axis.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#angleBetween(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">angleBetween</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> tip1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> tail,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> tip2)</CODE>
+
+<BR>
+ Returns the smallest angle between two vectors.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#diff(double, double)">diff</A></B>(double ang1,
+ double ang2)</CODE>
+
+<BR>
+ Computes the unoriented (smallest) difference between two angles.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#getTurn(double, double)">getTurn</A></B>(double ang1,
+ double ang2)</CODE>
+
+<BR>
+ Returns whether an angle must turn clockwise or counterclockwise
+ to overlap another angle.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#interiorAngle(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">interiorAngle</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</CODE>
+
+<BR>
+ Computes the interior angle between two segments of a ring.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#isAcute(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">isAcute</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</CODE>
+
+<BR>
+ Tests whether the angle between p0-p1-p2 is acute.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#isObtuse(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">isObtuse</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</CODE>
+
+<BR>
+ Tests whether the angle between p0-p1-p2 is obtuse.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#normalize(double)">normalize</A></B>(double angle)</CODE>
+
+<BR>
+ Computes the normalized value of an angle, which is the
+ equivalent angle in the range [ -Pi, Pi ].</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#normalizePositive(double)">normalizePositive</A></B>(double angle)</CODE>
+
+<BR>
+ Computes the normalized positive value of an angle, which is the
+ equivalent angle in the range [ 0, 2*Pi ].</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#toDegrees(double)">toDegrees</A></B>(double radians)</CODE>
+
+<BR>
+ Converts from radians to degrees.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html#toRadians(double)">toRadians</A></B>(double angleDegrees)</CODE>
+
+<BR>
+ Converts from degrees to radians.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="PI_TIMES_2"><!-- --></A><H3>
+PI_TIMES_2</H3>
+<PRE>
+public static final double <B>PI_TIMES_2</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.algorithm.Angle.PI_TIMES_2">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="PI_OVER_2"><!-- --></A><H3>
+PI_OVER_2</H3>
+<PRE>
+public static final double <B>PI_OVER_2</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.algorithm.Angle.PI_OVER_2">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="PI_OVER_4"><!-- --></A><H3>
+PI_OVER_4</H3>
+<PRE>
+public static final double <B>PI_OVER_4</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.algorithm.Angle.PI_OVER_4">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="COUNTERCLOCKWISE"><!-- --></A><H3>
+COUNTERCLOCKWISE</H3>
+<PRE>
+public static final int <B>COUNTERCLOCKWISE</B></PRE>
+<DL>
+<DD>Constant representing counterclockwise orientation
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.algorithm.Angle.COUNTERCLOCKWISE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="CLOCKWISE"><!-- --></A><H3>
+CLOCKWISE</H3>
+<PRE>
+public static final int <B>CLOCKWISE</B></PRE>
+<DL>
+<DD>Constant representing clockwise orientation
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.algorithm.Angle.CLOCKWISE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="NONE"><!-- --></A><H3>
+NONE</H3>
+<PRE>
+public static final int <B>NONE</B></PRE>
+<DL>
+<DD>Constant representing no orientation
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.algorithm.Angle.NONE">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Angle()"><!-- --></A><H3>
+Angle</H3>
+<PRE>
+public <B>Angle</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="toDegrees(double)"><!-- --></A><H3>
+toDegrees</H3>
+<PRE>
+public static double <B>toDegrees</B>(double radians)</PRE>
+<DL>
+<DD>Converts from radians to degrees.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>radians</CODE> - an angle in radians
+<DT><B>Returns:</B><DD>the angle in degrees</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toRadians(double)"><!-- --></A><H3>
+toRadians</H3>
+<PRE>
+public static double <B>toRadians</B>(double angleDegrees)</PRE>
+<DL>
+<DD>Converts from degrees to radians.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>angleDegrees</CODE> - an angle in degrees
+<DT><B>Returns:</B><DD>the angle in radians</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="angle(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+angle</H3>
+<PRE>
+public static double <B>angle</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+<DD>Returns the angle of the vector from p0 to p1,
+ relative to the positive X-axis.
+ The angle will be in the range [ -Pi, Pi ].
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the angle (in radians) that p0-p1 makes with the positive x-axis.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="angle(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+angle</H3>
+<PRE>
+public static double <B>angle</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD>Returns the angle that the vector from (0,0) to p,
+ relative to the positive X-axis.
+ The angle will be in the range [ -Pi, Pi ].
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the angle (in radians) that p makes with the positive x-axis.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isAcute(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+isAcute</H3>
+<PRE>
+public static boolean <B>isAcute</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</PRE>
+<DL>
+<DD>Tests whether the angle between p0-p1-p2 is acute.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p0</CODE> - an endpoint of the angle<DD><CODE>p1</CODE> - the base of the angle<DD><CODE>p2</CODE> - the other endpoint of the angle</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isObtuse(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+isObtuse</H3>
+<PRE>
+public static boolean <B>isObtuse</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</PRE>
+<DL>
+<DD>Tests whether the angle between p0-p1-p2 is obtuse.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p0</CODE> - an endpoint of the angle<DD><CODE>p1</CODE> - the base of the angle<DD><CODE>p2</CODE> - the other endpoint of the angle</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="angleBetween(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+angleBetween</H3>
+<PRE>
+public static double <B>angleBetween</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> tip1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> tail,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> tip2)</PRE>
+<DL>
+<DD>Returns the smallest angle between two vectors.
+ The computed angle will be in the range [0, Pi].
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tip1</CODE> - the tip of one vector<DD><CODE>tail</CODE> - the tail of each vector<DD><CODE>tip2</CODE> - the tip of the other vector
+<DT><B>Returns:</B><DD>the angle between tail-tip1 and tail-tip2</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="interiorAngle(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+interiorAngle</H3>
+<PRE>
+public static double <B>interiorAngle</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</PRE>
+<DL>
+<DD>Computes the interior angle between two segments of a ring.
+ The ring is assumed to be oriented in a clockwise direction.
+ The computed angle will be in the range [0, 2Pi]
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p0</CODE> - a point of the ring<DD><CODE>p1</CODE> - the next point of the ring<DD><CODE>p2</CODE> - the next point of the ring
+<DT><B>Returns:</B><DD>the interior angle based at <code>p1</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTurn(double, double)"><!-- --></A><H3>
+getTurn</H3>
+<PRE>
+public static int <B>getTurn</B>(double ang1,
+ double ang2)</PRE>
+<DL>
+<DD>Returns whether an angle must turn clockwise or counterclockwise
+ to overlap another angle.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ang1</CODE> - an angle (in radians)<DD><CODE>ang2</CODE> - an angle (in radians)
+<DT><B>Returns:</B><DD>whether a1 must turn CLOCKWISE, COUNTERCLOCKWISE or NONE to
+ overlap a2.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="normalize(double)"><!-- --></A><H3>
+normalize</H3>
+<PRE>
+public static double <B>normalize</B>(double angle)</PRE>
+<DL>
+<DD>Computes the normalized value of an angle, which is the
+ equivalent angle in the range [ -Pi, Pi ].
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>angle</CODE> - the angle to normalize
+<DT><B>Returns:</B><DD>an equivalent angle in the range [-Pi, Pi]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="normalizePositive(double)"><!-- --></A><H3>
+normalizePositive</H3>
+<PRE>
+public static double <B>normalizePositive</B>(double angle)</PRE>
+<DL>
+<DD>Computes the normalized positive value of an angle, which is the
+ equivalent angle in the range [ 0, 2*Pi ].
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>angle</CODE> - the angle to normalize, in radians
+<DT><B>Returns:</B><DD>an equivalent positive angle</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="diff(double, double)"><!-- --></A><H3>
+diff</H3>
+<PRE>
+public static double <B>diff</B>(double ang1,
+ double ang2)</PRE>
+<DL>
+<DD>Computes the unoriented (smallest) difference between two angles.
+ The angles are assumed to be normalized to the range [-Pi, Pi].
+ The result will be in the range [0, Pi].
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ang1</CODE> - the angle of one vector (in [-Pi, Pi] )<DD><CODE>ang2</CODE> - the angle of the other vector (in range [-Pi, Pi] )
+<DT><B>Returns:</B><DD>the angle (in radians) between the two vectors (in range [0, Pi] )</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Angle.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,317 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+BoundaryNodeRule.EndPointBoundaryNodeRule
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.BoundaryNodeRule.EndPointBoundaryNodeRule class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="BoundaryNodeRule.EndPointBoundaryNodeRule";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BoundaryNodeRule.EndPointBoundaryNodeRule.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class BoundaryNodeRule.EndPointBoundaryNodeRule</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.BoundaryNodeRule.EndPointBoundaryNodeRule</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></DD>
+</DL>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public static class <B>BoundaryNodeRule.EndPointBoundaryNodeRule</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></DL>
+
+<P>
+A <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> which specifies that any points which are endpoints
+ of lineal components are in the boundary of the
+ parent geometry.
+ This corresponds to the "intuitive" topological definition
+ of boundary.
+ Under this rule <CODE>LinearRing</CODE>s have a non-empty boundary
+ (the common endpoint of the underlying LineString).
+ <p>
+ This rule is useful when dealing with linear networks.
+ For example, it can be used to check
+ whether linear networks are correctly noded.
+ The usual network topology constraint is that linear segments may touch only at endpoints.
+ In the case of a segment touching a closed segment (ring) at one point,
+ the Mod2 rule cannot distinguish between the permitted case of touching at the
+ node point and the invalid case of touching at some other interior (non-node) point.
+ The EndPoint rule does distinguish between these cases,
+ so is more appropriate for use.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="nested_classes_inherited_from_class_com.vividsolutions.jts.algorithm.BoundaryNodeRule"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Nested classes inherited from class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.EndPointBoundaryNodeRule</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.Mod2BoundaryNodeRule</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.algorithm.BoundaryNodeRule"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from interface com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#ENDPOINT_BOUNDARY_RULE">ENDPOINT_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MOD2_BOUNDARY_RULE">MOD2_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MONOVALENT_ENDPOINT_BOUNDARY_RULE">MONOVALENT_ENDPOINT_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MULTIVALENT_ENDPOINT_BOUNDARY_RULE">MULTIVALENT_ENDPOINT_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#OGC_SFS_BOUNDARY_RULE">OGC_SFS_BOUNDARY_RULE</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html#BoundaryNodeRule.EndPointBoundaryNodeRule()">BoundaryNodeRule.EndPointBoundaryNodeRule</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html#isInBoundary(int)">isInBoundary</A></B>(int boundaryCount)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="BoundaryNodeRule.EndPointBoundaryNodeRule()"><!-- --></A><H3>
+BoundaryNodeRule.EndPointBoundaryNodeRule</H3>
+<PRE>
+public <B>BoundaryNodeRule.EndPointBoundaryNodeRule</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isInBoundary(int)"><!-- --></A><H3>
+isInBoundary</H3>
+<PRE>
+public boolean <B>isInBoundary</B>(int boundaryCount)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#isInBoundary(int)">isInBoundary</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BoundaryNodeRule.EndPointBoundaryNodeRule.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,309 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+BoundaryNodeRule.Mod2BoundaryNodeRule
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.BoundaryNodeRule.Mod2BoundaryNodeRule class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="BoundaryNodeRule.Mod2BoundaryNodeRule";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BoundaryNodeRule.Mod2BoundaryNodeRule.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class BoundaryNodeRule.Mod2BoundaryNodeRule</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.BoundaryNodeRule.Mod2BoundaryNodeRule</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></DD>
+</DL>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public static class <B>BoundaryNodeRule.Mod2BoundaryNodeRule</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></DL>
+
+<P>
+A <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> specifies that points are in the
+ boundary of a lineal geometry iff
+ the point lies on the boundary of an odd number
+ of components.
+ Under this rule <CODE>LinearRing</CODE>s and closed
+ <CODE>LineString</CODE>s have an empty boundary.
+ <p>
+ This is the rule specified by the <i>OGC SFS</i>,
+ and is the default rule used in JTS.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="nested_classes_inherited_from_class_com.vividsolutions.jts.algorithm.BoundaryNodeRule"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Nested classes inherited from class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.EndPointBoundaryNodeRule</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.Mod2BoundaryNodeRule</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.algorithm.BoundaryNodeRule"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from interface com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#ENDPOINT_BOUNDARY_RULE">ENDPOINT_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MOD2_BOUNDARY_RULE">MOD2_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MONOVALENT_ENDPOINT_BOUNDARY_RULE">MONOVALENT_ENDPOINT_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MULTIVALENT_ENDPOINT_BOUNDARY_RULE">MULTIVALENT_ENDPOINT_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#OGC_SFS_BOUNDARY_RULE">OGC_SFS_BOUNDARY_RULE</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html#BoundaryNodeRule.Mod2BoundaryNodeRule()">BoundaryNodeRule.Mod2BoundaryNodeRule</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html#isInBoundary(int)">isInBoundary</A></B>(int boundaryCount)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="BoundaryNodeRule.Mod2BoundaryNodeRule()"><!-- --></A><H3>
+BoundaryNodeRule.Mod2BoundaryNodeRule</H3>
+<PRE>
+public <B>BoundaryNodeRule.Mod2BoundaryNodeRule</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isInBoundary(int)"><!-- --></A><H3>
+isInBoundary</H3>
+<PRE>
+public boolean <B>isInBoundary</B>(int boundaryCount)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#isInBoundary(int)">isInBoundary</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BoundaryNodeRule.Mod2BoundaryNodeRule.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></DD>
+</DL>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public static class <B>BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></DL>
+
+<P>
+A <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> which determines that only
+ endpoints with valency of exactly 1 are on the boundary.
+ This corresponds to the boundary of a <CODE>MultiLineString</CODE>
+ being all the "unattached" endpoints.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="nested_classes_inherited_from_class_com.vividsolutions.jts.algorithm.BoundaryNodeRule"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Nested classes inherited from class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.EndPointBoundaryNodeRule</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.Mod2BoundaryNodeRule</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.algorithm.BoundaryNodeRule"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from interface com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#ENDPOINT_BOUNDARY_RULE">ENDPOINT_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MOD2_BOUNDARY_RULE">MOD2_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MONOVALENT_ENDPOINT_BOUNDARY_RULE">MONOVALENT_ENDPOINT_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MULTIVALENT_ENDPOINT_BOUNDARY_RULE">MULTIVALENT_ENDPOINT_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#OGC_SFS_BOUNDARY_RULE">OGC_SFS_BOUNDARY_RULE</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html#BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule()">BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html#isInBoundary(int)">isInBoundary</A></B>(int boundaryCount)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule()"><!-- --></A><H3>
+BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</H3>
+<PRE>
+public <B>BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isInBoundary(int)"><!-- --></A><H3>
+isInBoundary</H3>
+<PRE>
+public boolean <B>isInBoundary</B>(int boundaryCount)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#isInBoundary(int)">isInBoundary</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,305 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></DD>
+</DL>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public static class <B>BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></DL>
+
+<P>
+A <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> which determines that only
+ endpoints with valency greater than 1 are on the boundary.
+ This corresponds to the boundary of a <CODE>MultiLineString</CODE>
+ being all the "attached" endpoints, but not
+ the "unattached" ones.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="nested_classes_inherited_from_class_com.vividsolutions.jts.algorithm.BoundaryNodeRule"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Nested classes inherited from class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.EndPointBoundaryNodeRule</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.Mod2BoundaryNodeRule</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.algorithm.BoundaryNodeRule"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from interface com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#ENDPOINT_BOUNDARY_RULE">ENDPOINT_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MOD2_BOUNDARY_RULE">MOD2_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MONOVALENT_ENDPOINT_BOUNDARY_RULE">MONOVALENT_ENDPOINT_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MULTIVALENT_ENDPOINT_BOUNDARY_RULE">MULTIVALENT_ENDPOINT_BOUNDARY_RULE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#OGC_SFS_BOUNDARY_RULE">OGC_SFS_BOUNDARY_RULE</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html#BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule()">BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html#isInBoundary(int)">isInBoundary</A></B>(int boundaryCount)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule()"><!-- --></A><H3>
+BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</H3>
+<PRE>
+public <B>BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isInBoundary(int)"><!-- --></A><H3>
+isInBoundary</H3>
+<PRE>
+public boolean <B>isInBoundary</B>(int boundaryCount)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#isInBoundary(int)">isInBoundary</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/BoundaryNodeRule.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,394 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+BoundaryNodeRule
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.BoundaryNodeRule interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="BoundaryNodeRule";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BoundaryNodeRule.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#field_summary">FIELD</A> | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Interface BoundaryNodeRule</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.EndPointBoundaryNodeRule</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.Mod2BoundaryNodeRule</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public interface <B>BoundaryNodeRule</B></DL>
+
+<P>
+An interface for rules which determine whether node points
+ which are in boundaries of lineal geometry components
+ are in the boundary of the parent geometry collection.
+ The SFS specifies a single kind of boundary node rule,
+ the <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule.Mod2BoundaryNodeRule</CODE></A> rule.
+ However, other kinds of Boundary Node Rules are appropriate
+ in specific situations (for instance, linear network topology
+ usually follows the <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule.EndPointBoundaryNodeRule</CODE></A>.)
+ Some JTS operations allow the BoundaryNodeRule to be specified,
+ and respect this rule when computing the results of the operation.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+<DT><B>See Also:</B><DD><CODE>RelateOp</CODE>,
+<CODE>IsSimpleOp</CODE></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.EndPointBoundaryNodeRule</A></B></CODE>
+
+<BR>
+ A <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> which specifies that any points which are endpoints
+ of lineal components are in the boundary of the
+ parent geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.Mod2BoundaryNodeRule</A></B></CODE>
+
+<BR>
+ A <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> specifies that points are in the
+ boundary of a lineal geometry iff
+ the point lies on the boundary of an odd number
+ of components.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</A></B></CODE>
+
+<BR>
+ A <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> which determines that only
+ endpoints with valency of exactly 1 are on the boundary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</A></B></CODE>
+
+<BR>
+ A <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> which determines that only
+ endpoints with valency greater than 1 are on the boundary.</TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#ENDPOINT_BOUNDARY_RULE">ENDPOINT_BOUNDARY_RULE</A></B></CODE>
+
+<BR>
+ The Endpoint Boundary Node Rule.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MOD2_BOUNDARY_RULE">MOD2_BOUNDARY_RULE</A></B></CODE>
+
+<BR>
+ The Mod-2 Boundary Node Rule (as used in the OGC SFS).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MONOVALENT_ENDPOINT_BOUNDARY_RULE">MONOVALENT_ENDPOINT_BOUNDARY_RULE</A></B></CODE>
+
+<BR>
+ The Monovalent Endpoint Boundary Node Rule.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MULTIVALENT_ENDPOINT_BOUNDARY_RULE">MULTIVALENT_ENDPOINT_BOUNDARY_RULE</A></B></CODE>
+
+<BR>
+ The MultiValent Endpoint Boundary Node Rule.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#OGC_SFS_BOUNDARY_RULE">OGC_SFS_BOUNDARY_RULE</A></B></CODE>
+
+<BR>
+ The Boundary Node Rule specified by the OGC Simple Features Specification,
+ equal to the Mod-2 rule.</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#isInBoundary(int)">isInBoundary</A></B>(int boundaryCount)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MOD2_BOUNDARY_RULE"><!-- --></A><H3>
+MOD2_BOUNDARY_RULE</H3>
+<PRE>
+public static final <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> <B>MOD2_BOUNDARY_RULE</B></PRE>
+<DL>
+<DD>The Mod-2 Boundary Node Rule (as used in the OGC SFS).
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="ENDPOINT_BOUNDARY_RULE"><!-- --></A><H3>
+ENDPOINT_BOUNDARY_RULE</H3>
+<PRE>
+public static final <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> <B>ENDPOINT_BOUNDARY_RULE</B></PRE>
+<DL>
+<DD>The Endpoint Boundary Node Rule.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="MULTIVALENT_ENDPOINT_BOUNDARY_RULE"><!-- --></A><H3>
+MULTIVALENT_ENDPOINT_BOUNDARY_RULE</H3>
+<PRE>
+public static final <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> <B>MULTIVALENT_ENDPOINT_BOUNDARY_RULE</B></PRE>
+<DL>
+<DD>The MultiValent Endpoint Boundary Node Rule.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="MONOVALENT_ENDPOINT_BOUNDARY_RULE"><!-- --></A><H3>
+MONOVALENT_ENDPOINT_BOUNDARY_RULE</H3>
+<PRE>
+public static final <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> <B>MONOVALENT_ENDPOINT_BOUNDARY_RULE</B></PRE>
+<DL>
+<DD>The Monovalent Endpoint Boundary Node Rule.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="OGC_SFS_BOUNDARY_RULE"><!-- --></A><H3>
+OGC_SFS_BOUNDARY_RULE</H3>
+<PRE>
+public static final <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> <B>OGC_SFS_BOUNDARY_RULE</B></PRE>
+<DL>
+<DD>The Boundary Node Rule specified by the OGC Simple Features Specification,
+ equal to the Mod-2 rule.
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isInBoundary(int)"><!-- --></A><H3>
+isInBoundary</H3>
+<PRE>
+public boolean <B>isInBoundary</B>(int boundaryCount)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BoundaryNodeRule.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#field_summary">FIELD</A> | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CGAlgorithms.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CGAlgorithms.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CGAlgorithms.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,649 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+CGAlgorithms
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.CGAlgorithms class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CGAlgorithms";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CGAlgorithms.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class CGAlgorithms</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.CGAlgorithms</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">NonRobustCGAlgorithms</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">RobustCGAlgorithms</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>CGAlgorithms</B><DT>extends java.lang.Object</DL>
+
+<P>
+Specifies and implements various fundamental Computational Geometric algorithms.
+ The algorithms supplied in this class are robust for double-precision floating point.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#CLOCKWISE">CLOCKWISE</A></B></CODE>
+
+<BR>
+ A value that indicates an orientation of clockwise, or a right turn.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#COLLINEAR">COLLINEAR</A></B></CODE>
+
+<BR>
+ A value that indicates an orientation of collinear, or no turn (straight).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#COUNTERCLOCKWISE">COUNTERCLOCKWISE</A></B></CODE>
+
+<BR>
+ A value that indicates an orientation of counterclockwise, or a left turn.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#LEFT">LEFT</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#RIGHT">RIGHT</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#STRAIGHT">STRAIGHT</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#CGAlgorithms()">CGAlgorithms</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#computeOrientation(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeOrientation</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q)</CODE>
+
+<BR>
+ Computes the orientation of a point q to the directed line segment p1-p2.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#distanceLineLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">distanceLineLine</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> A,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> B,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> C,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> D)</CODE>
+
+<BR>
+ Computes the distance from a line segment AB to a line segment CD
+
+ Note: NON-ROBUST!</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#distancePointLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">distancePointLine</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> A,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> B)</CODE>
+
+<BR>
+ Computes the distance from a point p to a line segment AB
+
+ Note: NON-ROBUST!</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#distancePointLinePerpendicular(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">distancePointLinePerpendicular</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> A,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> B)</CODE>
+
+<BR>
+ Computes the perpendicular distance from a point p
+ to the (infinite) line containing the points AB</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#isCCW(com.vividsolutions.jts.geom.Coordinate[])">isCCW</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] ring)</CODE>
+
+<BR>
+ Computes whether a ring defined by an array of <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> is
+ oriented counter-clockwise.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#isOnLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])">isOnLine</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pt)</CODE>
+
+<BR>
+ Test whether a point lies on the line segments defined by a
+ list of coordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#isPointInRing(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])">isPointInRing</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] ring)</CODE>
+
+<BR>
+ Test whether a point lies inside a ring.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#length(com.vividsolutions.jts.geom.CoordinateSequence)">length</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> pts)</CODE>
+
+<BR>
+ Computes the length of a linestring specified by a sequence of points.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#orientationIndex(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">orientationIndex</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q)</CODE>
+
+<BR>
+ Returns the index of the direction of the point <code>q</code>
+ relative to a
+ vector specified by <code>p1-p2</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#signedArea(com.vividsolutions.jts.geom.Coordinate[])">signedArea</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] ring)</CODE>
+
+<BR>
+ Returns the signed area for a ring.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CLOCKWISE"><!-- --></A><H3>
+CLOCKWISE</H3>
+<PRE>
+public static final int <B>CLOCKWISE</B></PRE>
+<DL>
+<DD>A value that indicates an orientation of clockwise, or a right turn.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.algorithm.CGAlgorithms.CLOCKWISE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="RIGHT"><!-- --></A><H3>
+RIGHT</H3>
+<PRE>
+public static final int <B>RIGHT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.algorithm.CGAlgorithms.RIGHT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="COUNTERCLOCKWISE"><!-- --></A><H3>
+COUNTERCLOCKWISE</H3>
+<PRE>
+public static final int <B>COUNTERCLOCKWISE</B></PRE>
+<DL>
+<DD>A value that indicates an orientation of counterclockwise, or a left turn.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.algorithm.CGAlgorithms.COUNTERCLOCKWISE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="LEFT"><!-- --></A><H3>
+LEFT</H3>
+<PRE>
+public static final int <B>LEFT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.algorithm.CGAlgorithms.LEFT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="COLLINEAR"><!-- --></A><H3>
+COLLINEAR</H3>
+<PRE>
+public static final int <B>COLLINEAR</B></PRE>
+<DL>
+<DD>A value that indicates an orientation of collinear, or no turn (straight).
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.algorithm.CGAlgorithms.COLLINEAR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STRAIGHT"><!-- --></A><H3>
+STRAIGHT</H3>
+<PRE>
+public static final int <B>STRAIGHT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.algorithm.CGAlgorithms.STRAIGHT">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CGAlgorithms()"><!-- --></A><H3>
+CGAlgorithms</H3>
+<PRE>
+public <B>CGAlgorithms</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="orientationIndex(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+orientationIndex</H3>
+<PRE>
+public static int <B>orientationIndex</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q)</PRE>
+<DL>
+<DD>Returns the index of the direction of the point <code>q</code>
+ relative to a
+ vector specified by <code>p1-p2</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p1</CODE> - the origin point of the vector<DD><CODE>p2</CODE> - the final point of the vector<DD><CODE>q</CODE> - the point to compute the direction to
+<DT><B>Returns:</B><DD>1 if q is counter-clockwise (left) from p1-p2</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isPointInRing(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+isPointInRing</H3>
+<PRE>
+public static boolean <B>isPointInRing</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] ring)</PRE>
+<DL>
+<DD>Test whether a point lies inside a ring.
+ The ring may be oriented in either direction.
+ If the point lies on the ring boundary the result of this method is unspecified.
+ <p>
+ This algorithm does not attempt to first check the point against the envelope
+ of the ring.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p</CODE> - point to check for ring inclusion<DD><CODE>ring</CODE> - assumed to have first point identical to last point
+<DT><B>Returns:</B><DD><code>true</code> if p is inside ring</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isOnLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+isOnLine</H3>
+<PRE>
+public static boolean <B>isOnLine</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pt)</PRE>
+<DL>
+<DD>Test whether a point lies on the line segments defined by a
+ list of coordinates.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true true if
+ the point is a vertex of the line or lies in the interior of a line
+ segment in the linestring</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCCW(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+isCCW</H3>
+<PRE>
+public static boolean <B>isCCW</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] ring)</PRE>
+<DL>
+<DD>Computes whether a ring defined by an array of <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> is
+ oriented counter-clockwise.
+ <ul>
+ <li>The list of points is assumed to have the first and last points equal.
+ <li>This will handle coordinate lists which contain repeated points.
+ </ul>
+ This algorithm is <b>only</b> guaranteed to work with valid rings.
+ If the ring is invalid (e.g. self-crosses or touches),
+ the computed result <b>may</b> not be correct.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ring</CODE> - an array of coordinates forming a ring
+<DT><B>Returns:</B><DD><code>true</code> if the ring is oriented counter-clockwise.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeOrientation(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+computeOrientation</H3>
+<PRE>
+public static int <B>computeOrientation</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q)</PRE>
+<DL>
+<DD>Computes the orientation of a point q to the directed line segment p1-p2.
+ The orientation of a point relative to a directed line segment indicates
+ which way you turn to get to q after travelling from p1 to p2.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>1 if q is counter-clockwise from p1-p2</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="distancePointLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+distancePointLine</H3>
+<PRE>
+public static double <B>distancePointLine</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> A,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> B)</PRE>
+<DL>
+<DD>Computes the distance from a point p to a line segment AB
+
+ Note: NON-ROBUST!
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p</CODE> - the point to compute the distance for<DD><CODE>A</CODE> - one point of the line<DD><CODE>B</CODE> - another point of the line (must be different to A)
+<DT><B>Returns:</B><DD>the distance from p to line segment AB</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="distancePointLinePerpendicular(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+distancePointLinePerpendicular</H3>
+<PRE>
+public static double <B>distancePointLinePerpendicular</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> A,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> B)</PRE>
+<DL>
+<DD>Computes the perpendicular distance from a point p
+ to the (infinite) line containing the points AB
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p</CODE> - the point to compute the distance for<DD><CODE>A</CODE> - one point of the line<DD><CODE>B</CODE> - another point of the line (must be different to A)
+<DT><B>Returns:</B><DD>the distance from p to line AB</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="distanceLineLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+distanceLineLine</H3>
+<PRE>
+public static double <B>distanceLineLine</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> A,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> B,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> C,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> D)</PRE>
+<DL>
+<DD>Computes the distance from a line segment AB to a line segment CD
+
+ Note: NON-ROBUST!
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>A</CODE> - a point of one line<DD><CODE>B</CODE> - the second point of (must be different to A)<DD><CODE>C</CODE> - one point of the line<DD><CODE>D</CODE> - another point of the line (must be different to A)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="signedArea(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+signedArea</H3>
+<PRE>
+public static double <B>signedArea</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] ring)</PRE>
+<DL>
+<DD>Returns the signed area for a ring. The area is positive if
+ the ring is oriented CW.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="length(com.vividsolutions.jts.geom.CoordinateSequence)"><!-- --></A><H3>
+length</H3>
+<PRE>
+public static double <B>length</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> pts)</PRE>
+<DL>
+<DD>Computes the length of a linestring specified by a sequence of points.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pts</CODE> - the points specifying the linestring
+<DT><B>Returns:</B><DD>the length of the linestring</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CGAlgorithms.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+CentralEndpointIntersector
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.CentralEndpointIntersector class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CentralEndpointIntersector";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidArea.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CentralEndpointIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class CentralEndpointIntersector</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.CentralEndpointIntersector</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>CentralEndpointIntersector</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes an approximate intersection of two line segments
+ by taking the most central of the endpoints of the segments.
+ This is effective in cases where the segments are nearly parallel
+ and should intersect at an endpoint.
+ It is also a reasonable strategy for cases where the
+ endpoint of one segment lies on or almost on the interior of another one.
+ Taking the most central endpoint ensures that the computed intersection
+ point lies in the envelope of the segments.
+ Also, by always returning one of the input points, this should result
+ in reducing segment fragmentation.
+ Intended to be used as a last resort for
+ computing ill-conditioned intersection situations which
+ cause other methods to fail.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.8</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html#CentralEndpointIntersector(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">CentralEndpointIntersector</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p00,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p01,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p10,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p11)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html#getIntersection()">getIntersection</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html#getIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">getIntersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p00,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p01,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p10,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p11)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CentralEndpointIntersector(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+CentralEndpointIntersector</H3>
+<PRE>
+public <B>CentralEndpointIntersector</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p00,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p01,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p10,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p11)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+getIntersection</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getIntersection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p00,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p01,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p10,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p11)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIntersection()"><!-- --></A><H3>
+getIntersection</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getIntersection</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidArea.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CentralEndpointIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentroidArea.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentroidArea.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentroidArea.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,311 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+CentroidArea
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.CentroidArea class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CentroidArea";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidLine.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CentroidArea.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class CentroidArea</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.CentroidArea</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>CentroidArea</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes the centroid of an area geometry.
+ <h2>Algorithm</h2>
+ Based on the usual algorithm for calculating
+ the centroid as a weighted sum of the centroids
+ of a decomposition of the area into (possibly overlapping) triangles.
+ The algorithm has been extended to handle holes and multi-polygons.
+ See <code>http://www.faqs.org/faqs/graphics/algorithms-faq/</code>
+ for further details of the basic approach.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidArea.html#CentroidArea()">CentroidArea</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidArea.html#add(com.vividsolutions.jts.geom.Coordinate[])">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] ring)</CODE>
+
+<BR>
+ Adds the area defined by an array of
+ coordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidArea.html#add(com.vividsolutions.jts.geom.Geometry)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Adds the area defined by a Geometry to the centroid total.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidArea.html#getCentroid()">getCentroid</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CentroidArea()"><!-- --></A><H3>
+CentroidArea</H3>
+<PRE>
+public <B>CentroidArea</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Adds the area defined by a Geometry to the centroid total.
+ If the geometry has no area it does not contribute to the centroid.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - the geometry to add</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] ring)</PRE>
+<DL>
+<DD>Adds the area defined by an array of
+ coordinates. The array must be a ring;
+ i.e. end with the same coordinate as it starts with.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ring</CODE> - an array of <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCentroid()"><!-- --></A><H3>
+getCentroid</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCentroid</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidLine.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CentroidArea.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentroidLine.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentroidLine.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentroidLine.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+CentroidLine
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.CentroidLine class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CentroidLine";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidArea.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CentroidLine.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class CentroidLine</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.CentroidLine</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>CentroidLine</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes the centroid of a linear geometry.
+ <h2>Algorithm</h2>
+ Compute the average of the midpoints
+ of all line segments weighted by the segment length.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidLine.html#CentroidLine()">CentroidLine</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidLine.html#add(com.vividsolutions.jts.geom.Coordinate[])">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</CODE>
+
+<BR>
+ Adds the length defined by an array of coordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidLine.html#add(com.vividsolutions.jts.geom.Geometry)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Adds the linestring(s) defined by a Geometry to the centroid total.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidLine.html#getCentroid()">getCentroid</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CentroidLine()"><!-- --></A><H3>
+CentroidLine</H3>
+<PRE>
+public <B>CentroidLine</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Adds the linestring(s) defined by a Geometry to the centroid total.
+ If the geometry is not linear it does not contribute to the centroid
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - the geometry to add</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCentroid()"><!-- --></A><H3>
+getCentroid</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCentroid</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</PRE>
+<DL>
+<DD>Adds the length defined by an array of coordinates.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pts</CODE> - an array of <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidArea.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CentroidLine.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentroidPoint.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentroidPoint.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/CentroidPoint.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+CentroidPoint
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.CentroidPoint class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CentroidPoint";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidLine.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CentroidPoint.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class CentroidPoint</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.CentroidPoint</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>CentroidPoint</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes the centroid of a point geometry.
+ <h2>Algorithm</h2>
+ Compute the average of all points.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidPoint.html#CentroidPoint()">CentroidPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidPoint.html#add(com.vividsolutions.jts.geom.Coordinate)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Adds the length defined by an array of coordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidPoint.html#add(com.vividsolutions.jts.geom.Geometry)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Adds the point(s) defined by a Geometry to the centroid total.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidPoint.html#getCentroid()">getCentroid</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CentroidPoint()"><!-- --></A><H3>
+CentroidPoint</H3>
+<PRE>
+public <B>CentroidPoint</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Adds the point(s) defined by a Geometry to the centroid total.
+ If the geometry is not of dimension 0 it does not contribute to the centroid.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - the geometry to add</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Adds the length defined by an array of coordinates.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCentroid()"><!-- --></A><H3>
+getCentroid</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCentroid</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidLine.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CentroidPoint.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/ConvexHull.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/ConvexHull.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/ConvexHull.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,316 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+ConvexHull
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.ConvexHull class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ConvexHull";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ConvexHull.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class ConvexHull</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.ConvexHull</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>ConvexHull</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes the convex hull of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+ The convex hull is the smallest convex Geometry that contains all the
+ points in the input Geometry.
+ <p>
+ Uses the Graham Scan algorithm.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/ConvexHull.html#ConvexHull(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.GeometryFactory)">ConvexHull</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geomFactory)</CODE>
+
+<BR>
+ Create a new convex hull construction for the input <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/ConvexHull.html#ConvexHull(com.vividsolutions.jts.geom.Geometry)">ConvexHull</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</CODE>
+
+<BR>
+ Create a new convex hull construction for the input <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/ConvexHull.html#getConvexHull()">getConvexHull</A></B>()</CODE>
+
+<BR>
+ Returns a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> that represents the convex hull of the input
+ geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/ConvexHull.html#toCoordinateArray(java.util.Stack)">toCoordinateArray</A></B>(java.util.Stack stack)</CODE>
+
+<BR>
+ An alternative to Stack.toArray, which is not present in earlier versions
+ of Java.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ConvexHull(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+ConvexHull</H3>
+<PRE>
+public <B>ConvexHull</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</PRE>
+<DL>
+<DD>Create a new convex hull construction for the input <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<P>
+</DL>
+<HR>
+
+<A NAME="ConvexHull(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+ConvexHull</H3>
+<PRE>
+public <B>ConvexHull</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geomFactory)</PRE>
+<DL>
+<DD>Create a new convex hull construction for the input <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> array.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getConvexHull()"><!-- --></A><H3>
+getConvexHull</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getConvexHull</B>()</PRE>
+<DL>
+<DD>Returns a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> that represents the convex hull of the input
+ geometry.
+ The returned geometry contains the minimal number of points needed to
+ represent the convex hull. In particular, no more than two consecutive
+ points will be collinear.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>if the convex hull contains 3 or more points, a <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A>;
+ 2 points, a <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>;
+ 1 point, a <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><CODE>Point</CODE></A>;
+ 0 points, an empty <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A>.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toCoordinateArray(java.util.Stack)"><!-- --></A><H3>
+toCoordinateArray</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>toCoordinateArray</B>(java.util.Stack stack)</PRE>
+<DL>
+<DD>An alternative to Stack.toArray, which is not present in earlier versions
+ of Java.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ConvexHull.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/HCoordinate.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/HCoordinate.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/HCoordinate.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,478 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+HCoordinate
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.HCoordinate class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="HCoordinate";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="HCoordinate.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class HCoordinate</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.HCoordinate</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>HCoordinate</B><DT>extends java.lang.Object</DL>
+
+<P>
+Represents a homogeneous coordinate in a 2-D coordinate space.
+ In JTS <A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm"><CODE>HCoordinate</CODE></A>s are used as a clean way
+ of computing intersections between line segments.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>David Skea</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html#w">w</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html#x">x</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html#y">y</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html#HCoordinate()">HCoordinate</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html#HCoordinate(com.vividsolutions.jts.geom.Coordinate)">HCoordinate</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html#HCoordinate(double, double)">HCoordinate</A></B>(double _x,
+ double _y)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html#HCoordinate(double, double, double)">HCoordinate</A></B>(double _x,
+ double _y,
+ double _w)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html#HCoordinate(com.vividsolutions.jts.algorithm.HCoordinate, com.vividsolutions.jts.algorithm.HCoordinate)">HCoordinate</A></B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A> p2)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html#getX()">getX</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html#getY()">getY</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html#intersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">intersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q2)</CODE>
+
+<BR>
+ Computes the (approximate) intersection point between two line segments
+ using homogeneous coordinates.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="x"><!-- --></A><H3>
+x</H3>
+<PRE>
+public double <B>x</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="y"><!-- --></A><H3>
+y</H3>
+<PRE>
+public double <B>y</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="w"><!-- --></A><H3>
+w</H3>
+<PRE>
+public double <B>w</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="HCoordinate()"><!-- --></A><H3>
+HCoordinate</H3>
+<PRE>
+public <B>HCoordinate</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="HCoordinate(double, double, double)"><!-- --></A><H3>
+HCoordinate</H3>
+<PRE>
+public <B>HCoordinate</B>(double _x,
+ double _y,
+ double _w)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="HCoordinate(double, double)"><!-- --></A><H3>
+HCoordinate</H3>
+<PRE>
+public <B>HCoordinate</B>(double _x,
+ double _y)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="HCoordinate(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+HCoordinate</H3>
+<PRE>
+public <B>HCoordinate</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="HCoordinate(com.vividsolutions.jts.algorithm.HCoordinate, com.vividsolutions.jts.algorithm.HCoordinate)"><!-- --></A><H3>
+HCoordinate</H3>
+<PRE>
+public <B>HCoordinate</B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A> p2)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="intersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+intersection</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>intersection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q2)
+ throws <A HREF="../../../../com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm">NotRepresentableException</A></PRE>
+<DL>
+<DD>Computes the (approximate) intersection point between two line segments
+ using homogeneous coordinates.
+ <p>
+ Note that this algorithm is
+ not numerically stable; i.e. it can produce intersection points which
+ lie outside the envelope of the line segments themselves. In order
+ to increase the precision of the calculation input points should be normalized
+ before passing them to this routine.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm">NotRepresentableException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getX()"><!-- --></A><H3>
+getX</H3>
+<PRE>
+public double <B>getX</B>()
+ throws <A HREF="../../../../com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm">NotRepresentableException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm">NotRepresentableException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getY()"><!-- --></A><H3>
+getY</H3>
+<PRE>
+public double <B>getY</B>()
+ throws <A HREF="../../../../com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm">NotRepresentableException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm">NotRepresentableException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()
+ throws <A HREF="../../../../com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm">NotRepresentableException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm">NotRepresentableException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="HCoordinate.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/InteriorPointArea.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/InteriorPointArea.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/InteriorPointArea.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,355 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+InteriorPointArea
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.InteriorPointArea class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="InteriorPointArea";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointLine.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="InteriorPointArea.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class InteriorPointArea</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.InteriorPointArea</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>InteriorPointArea</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes a point in the interior of an area geometry.
+
+ <h2>Algorithm</h2>
+ <ul>
+ <li>Find the intersections between the geometry
+ and the horizontal bisector of the area's envelope
+ <li>Pick the midpoint of the largest intersection (the intersections
+ will be lines and points)
+ </ul>
+
+ <b>
+ Note: If a fixed precision model is used,
+ in some cases this method may return a point
+ which does not lie in the interior.
+ </b>
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointArea.html#InteriorPointArea(com.vividsolutions.jts.geom.Geometry)">InteriorPointArea</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointArea.html#addPolygon(com.vividsolutions.jts.geom.Geometry)">addPolygon</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</CODE>
+
+<BR>
+ Finds a reasonable point at which to label a Geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointArea.html#centre(com.vividsolutions.jts.geom.Envelope)">centre</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> envelope)</CODE>
+
+<BR>
+ Returns the centre point of the envelope.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointArea.html#getInteriorPoint()">getInteriorPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointArea.html#horizontalBisector(com.vividsolutions.jts.geom.Geometry)">horizontalBisector</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointArea.html#widestGeometry(com.vividsolutions.jts.geom.Geometry)">widestGeometry</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="InteriorPointArea(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+InteriorPointArea</H3>
+<PRE>
+public <B>InteriorPointArea</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getInteriorPoint()"><!-- --></A><H3>
+getInteriorPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getInteriorPoint</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addPolygon(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+addPolygon</H3>
+<PRE>
+public void <B>addPolygon</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</PRE>
+<DL>
+<DD>Finds a reasonable point at which to label a Geometry.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geometry</CODE> - the geometry to analyze
+<DT><B>Returns:</B><DD>the midpoint of the largest intersection between the geometry and
+ a line halfway down its envelope</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="widestGeometry(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+widestGeometry</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>widestGeometry</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="horizontalBisector(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+horizontalBisector</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>horizontalBisector</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="centre(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+centre</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>centre</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> envelope)</PRE>
+<DL>
+<DD>Returns the centre point of the envelope.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>envelope</CODE> - the envelope to analyze
+<DT><B>Returns:</B><DD>the centre of the envelope</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointLine.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="InteriorPointArea.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/InteriorPointLine.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/InteriorPointLine.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/InteriorPointLine.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,265 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+InteriorPointLine
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.InteriorPointLine class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="InteriorPointLine";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointPoint.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="InteriorPointLine.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class InteriorPointLine</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.InteriorPointLine</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>InteriorPointLine</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes a point in the interior of an linear geometry.
+ <h2>Algorithm</h2>
+ <ul>
+ <li>Find an interior vertex which is closest to
+ the centroid of the linestring.
+ <li>If there is no interior vertex, find the endpoint which is
+ closest to the centroid.
+ </ul>
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointLine.html#InteriorPointLine(com.vividsolutions.jts.geom.Geometry)">InteriorPointLine</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointLine.html#getInteriorPoint()">getInteriorPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="InteriorPointLine(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+InteriorPointLine</H3>
+<PRE>
+public <B>InteriorPointLine</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getInteriorPoint()"><!-- --></A><H3>
+getInteriorPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getInteriorPoint</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointPoint.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="InteriorPointLine.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/InteriorPointPoint.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/InteriorPointPoint.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/InteriorPointPoint.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,260 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+InteriorPointPoint
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.InteriorPointPoint class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="InteriorPointPoint";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointLine.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="InteriorPointPoint.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class InteriorPointPoint</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.InteriorPointPoint</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>InteriorPointPoint</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes a point in the interior of an point geometry.
+ <h2>Algorithm</h2>
+ Find a point which is closest to the centroid of the geometry.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointPoint.html#InteriorPointPoint(com.vividsolutions.jts.geom.Geometry)">InteriorPointPoint</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointPoint.html#getInteriorPoint()">getInteriorPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="InteriorPointPoint(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+InteriorPointPoint</H3>
+<PRE>
+public <B>InteriorPointPoint</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getInteriorPoint()"><!-- --></A><H3>
+getInteriorPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getInteriorPoint</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointLine.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="InteriorPointPoint.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/LineIntersector.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/LineIntersector.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/LineIntersector.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,996 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+LineIntersector
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.LineIntersector class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LineIntersector";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointPoint.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/MCPointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class LineIntersector</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.LineIntersector</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm">NonRobustLineIntersector</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm">RobustLineIntersector</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public abstract class <B>LineIntersector</B><DT>extends java.lang.Object</DL>
+
+<P>
+A LineIntersector is an algorithm that can both test whether
+ two line segments intersect and compute the intersection point
+ if they do.
+ The intersection point may be computed in a precise or non-precise manner.
+ Computing it precisely involves rounding it to an integer. (This assumes
+ that the input coordinates have been made precise by scaling them to
+ an integer grid.)
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#COLLINEAR">COLLINEAR</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#DO_INTERSECT">DO_INTERSECT</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#DONT_INTERSECT">DONT_INTERSECT</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[][]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#inputLines">inputLines</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int[][]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#intLineIndex">intLineIndex</A></B></CODE>
+
+<BR>
+ The indexes of the endpoints of the intersection lines, in order along
+ the corresponding line</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#intPt">intPt</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isProper">isProper</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#pa">pa</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#pb">pb</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#precisionModel">precisionModel</A></B></CODE>
+
+<BR>
+ If makePrecise is true, computed intersection coordinates will be made precise
+ using Coordinate#makePrecise</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#result">result</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#LineIntersector()">LineIntersector</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeEdgeDistance(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeEdgeDistance</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ Computes the "edge distance" of an intersection point p along a segment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected abstract int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntersect(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeIntersect</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q2)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeIntersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</CODE>
+
+<BR>
+ Compute the intersection of a point p and the line p1-p2.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeIntersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p3,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p4)</CODE>
+
+<BR>
+ Computes the intersection of the lines p1-p2 and p3-p4.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntLineIndex()">computeIntLineIndex</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntLineIndex(int)">computeIntLineIndex</A></B>(int segmentIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#getEdgeDistance(int, int)">getEdgeDistance</A></B>(int segmentIndex,
+ int intIndex)</CODE>
+
+<BR>
+ Computes the "edge distance" of an intersection point along the specified input line segment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#getIndexAlongSegment(int, int)">getIndexAlongSegment</A></B>(int segmentIndex,
+ int intIndex)</CODE>
+
+<BR>
+ Computes the index of the intIndex'th intersection point in the direction of
+ a specified input line segment</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#getIntersection(int)">getIntersection</A></B>(int intIndex)</CODE>
+
+<BR>
+ Returns the intIndex'th intersection point</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#getIntersectionAlongSegment(int, int)">getIntersectionAlongSegment</A></B>(int segmentIndex,
+ int intIndex)</CODE>
+
+<BR>
+ Computes the intIndex'th intersection point in the direction of
+ a specified input line segment</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#getIntersectionNum()">getIntersectionNum</A></B>()</CODE>
+
+<BR>
+ Returns the number of intersection points found.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#hasIntersection()">hasIntersection</A></B>()</CODE>
+
+<BR>
+ Tests whether the input geometries intersect.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isCollinear()">isCollinear</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isEndPoint()">isEndPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isInteriorIntersection()">isInteriorIntersection</A></B>()</CODE>
+
+<BR>
+ Tests whether either intersection point is an interior point of one of the input segments.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isInteriorIntersection(int)">isInteriorIntersection</A></B>(int inputLineIndex)</CODE>
+
+<BR>
+ Tests whether either intersection point is an interior point of the specified input segment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isIntersection(com.vividsolutions.jts.geom.Coordinate)">isIntersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Test whether a point is a intersection point of two line segments.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isProper()">isProper</A></B>()</CODE>
+
+<BR>
+ Tests whether an intersection is proper.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#nonRobustComputeEdgeDistance(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">nonRobustComputeEdgeDistance</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</CODE>
+
+<BR>
+ This function is non-robust, since it may compute the square of large numbers.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#setMakePrecise(com.vividsolutions.jts.geom.PrecisionModel)">setMakePrecise</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>use <code>setPrecisionModel</code> instead</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#setPrecisionModel(com.vividsolutions.jts.geom.PrecisionModel)">setPrecisionModel</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel)</CODE>
+
+<BR>
+ Force computed intersection to be rounded to a given precision model.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="DONT_INTERSECT"><!-- --></A><H3>
+DONT_INTERSECT</H3>
+<PRE>
+public static final int <B>DONT_INTERSECT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.algorithm.LineIntersector.DONT_INTERSECT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DO_INTERSECT"><!-- --></A><H3>
+DO_INTERSECT</H3>
+<PRE>
+public static final int <B>DO_INTERSECT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.algorithm.LineIntersector.DO_INTERSECT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="COLLINEAR"><!-- --></A><H3>
+COLLINEAR</H3>
+<PRE>
+public static final int <B>COLLINEAR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.algorithm.LineIntersector.COLLINEAR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="result"><!-- --></A><H3>
+result</H3>
+<PRE>
+protected int <B>result</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="inputLines"><!-- --></A><H3>
+inputLines</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[][] <B>inputLines</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="intPt"><!-- --></A><H3>
+intPt</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>intPt</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="intLineIndex"><!-- --></A><H3>
+intLineIndex</H3>
+<PRE>
+protected int[][] <B>intLineIndex</B></PRE>
+<DL>
+<DD>The indexes of the endpoints of the intersection lines, in order along
+ the corresponding line
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="isProper"><!-- --></A><H3>
+isProper</H3>
+<PRE>
+protected boolean <B>isProper</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="pa"><!-- --></A><H3>
+pa</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>pa</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="pb"><!-- --></A><H3>
+pb</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>pb</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="precisionModel"><!-- --></A><H3>
+precisionModel</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> <B>precisionModel</B></PRE>
+<DL>
+<DD>If makePrecise is true, computed intersection coordinates will be made precise
+ using Coordinate#makePrecise
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LineIntersector()"><!-- --></A><H3>
+LineIntersector</H3>
+<PRE>
+public <B>LineIntersector</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="computeEdgeDistance(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+computeEdgeDistance</H3>
+<PRE>
+public static double <B>computeEdgeDistance</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+<DD>Computes the "edge distance" of an intersection point p along a segment.
+ The edge distance is a metric of the point along the edge.
+ The metric used is a robust and easy to compute metric function.
+ It is <b>not</b> equivalent to the usual Euclidean metric.
+ It relies on the fact that either the x or the y ordinates of the
+ points in the edge are unique, depending on whether the edge is longer in
+ the horizontal or vertical direction.
+ <p>
+ NOTE: This function may produce incorrect distances
+ for inputs where p is not precisely on p1-p2
+ (E.g. p = (139,9) p1 = (139,10), p2 = (280,1) produces distanct 0.0, which is incorrect.
+ <p>
+ My hypothesis is that the function is safe to use for points which are the
+ result of <b>rounding</b> points which lie on the line,
+ but not safe to use for <b>truncated</b> points.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="nonRobustComputeEdgeDistance(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+nonRobustComputeEdgeDistance</H3>
+<PRE>
+public static double <B>nonRobustComputeEdgeDistance</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</PRE>
+<DL>
+<DD>This function is non-robust, since it may compute the square of large numbers.
+ Currently not sure how to improve this.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setMakePrecise(com.vividsolutions.jts.geom.PrecisionModel)"><!-- --></A><H3>
+setMakePrecise</H3>
+<PRE>
+public void <B>setMakePrecise</B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>use <code>setPrecisionModel</code> instead</I>
+<P>
+<DD>Force computed intersection to be rounded to a given precision model
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>precisionModel</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setPrecisionModel(com.vividsolutions.jts.geom.PrecisionModel)"><!-- --></A><H3>
+setPrecisionModel</H3>
+<PRE>
+public void <B>setPrecisionModel</B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel)</PRE>
+<DL>
+<DD>Force computed intersection to be rounded to a given precision model.
+ No getter is provided, because the precision model is not required to be specified.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>precisionModel</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+computeIntersection</H3>
+<PRE>
+public abstract void <B>computeIntersection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</PRE>
+<DL>
+<DD>Compute the intersection of a point p and the line p1-p2.
+ This function computes the boolean value of the hasIntersection test.
+ The actual value of the intersection (if there is one)
+ is equal to the value of <code>p</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCollinear()"><!-- --></A><H3>
+isCollinear</H3>
+<PRE>
+protected boolean <B>isCollinear</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+computeIntersection</H3>
+<PRE>
+public void <B>computeIntersection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p3,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p4)</PRE>
+<DL>
+<DD>Computes the intersection of the lines p1-p2 and p3-p4.
+ This function computes both the boolean value of the hasIntersection test
+ and the (approximate) value of the intersection point itself (if there is one).
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntersect(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+computeIntersect</H3>
+<PRE>
+protected abstract int <B>computeIntersect</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q2)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEndPoint()"><!-- --></A><H3>
+isEndPoint</H3>
+<PRE>
+protected boolean <B>isEndPoint</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasIntersection()"><!-- --></A><H3>
+hasIntersection</H3>
+<PRE>
+public boolean <B>hasIntersection</B>()</PRE>
+<DL>
+<DD>Tests whether the input geometries intersect.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the input geometries intersect</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIntersectionNum()"><!-- --></A><H3>
+getIntersectionNum</H3>
+<PRE>
+public int <B>getIntersectionNum</B>()</PRE>
+<DL>
+<DD>Returns the number of intersection points found. This will be either 0, 1 or 2.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIntersection(int)"><!-- --></A><H3>
+getIntersection</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getIntersection</B>(int intIndex)</PRE>
+<DL>
+<DD>Returns the intIndex'th intersection point
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>intIndex</CODE> - is 0 or 1
+<DT><B>Returns:</B><DD>the intIndex'th intersection point</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntLineIndex()"><!-- --></A><H3>
+computeIntLineIndex</H3>
+<PRE>
+protected void <B>computeIntLineIndex</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isIntersection(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+isIntersection</H3>
+<PRE>
+public boolean <B>isIntersection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Test whether a point is a intersection point of two line segments.
+ Note that if the intersection is a line segment, this method only tests for
+ equality with the endpoints of the intersection segment.
+ It does <b>not</b> return true if
+ the input point is internal to the intersection segment.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the input point is one of the intersection points.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isInteriorIntersection()"><!-- --></A><H3>
+isInteriorIntersection</H3>
+<PRE>
+public boolean <B>isInteriorIntersection</B>()</PRE>
+<DL>
+<DD>Tests whether either intersection point is an interior point of one of the input segments.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if either intersection point is in the interior of one of the input segments</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isInteriorIntersection(int)"><!-- --></A><H3>
+isInteriorIntersection</H3>
+<PRE>
+public boolean <B>isInteriorIntersection</B>(int inputLineIndex)</PRE>
+<DL>
+<DD>Tests whether either intersection point is an interior point of the specified input segment.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if either intersection point is in the interior of the input segment</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isProper()"><!-- --></A><H3>
+isProper</H3>
+<PRE>
+public boolean <B>isProper</B>()</PRE>
+<DL>
+<DD>Tests whether an intersection is proper.
+ <br>
+ The intersection between two line segments is considered proper if
+ they intersect in a single point in the interior of both segments
+ (e.g. the intersection is a single point and is not equal to any of the
+ endpoints).
+ <p>
+ The intersection between a point and a line segment is considered proper
+ if the point lies in the interior of the segment (e.g. is not equal to
+ either of the endpoints).
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the intersection is proper</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIntersectionAlongSegment(int, int)"><!-- --></A><H3>
+getIntersectionAlongSegment</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getIntersectionAlongSegment</B>(int segmentIndex,
+ int intIndex)</PRE>
+<DL>
+<DD>Computes the intIndex'th intersection point in the direction of
+ a specified input line segment
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>segmentIndex</CODE> - is 0 or 1<DD><CODE>intIndex</CODE> - is 0 or 1
+<DT><B>Returns:</B><DD>the intIndex'th intersection point in the direction of the specified input line segment</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIndexAlongSegment(int, int)"><!-- --></A><H3>
+getIndexAlongSegment</H3>
+<PRE>
+public int <B>getIndexAlongSegment</B>(int segmentIndex,
+ int intIndex)</PRE>
+<DL>
+<DD>Computes the index of the intIndex'th intersection point in the direction of
+ a specified input line segment
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>segmentIndex</CODE> - is 0 or 1<DD><CODE>intIndex</CODE> - is 0 or 1
+<DT><B>Returns:</B><DD>the index of the intersection point along the segment (0 or 1)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntLineIndex(int)"><!-- --></A><H3>
+computeIntLineIndex</H3>
+<PRE>
+protected void <B>computeIntLineIndex</B>(int segmentIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdgeDistance(int, int)"><!-- --></A><H3>
+getEdgeDistance</H3>
+<PRE>
+public double <B>getEdgeDistance</B>(int segmentIndex,
+ int intIndex)</PRE>
+<DL>
+<DD>Computes the "edge distance" of an intersection point along the specified input line segment.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>segmentIndex</CODE> - is 0 or 1<DD><CODE>intIndex</CODE> - is 0 or 1
+<DT><B>Returns:</B><DD>the edge distance of the intersection point</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointPoint.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/MCPointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/MCPointInRing.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/MCPointInRing.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/MCPointInRing.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,266 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+MCPointInRing
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.MCPointInRing class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MCPointInRing";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MCPointInRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class MCPointInRing</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.MCPointInRing</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>MCPointInRing</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A></DL>
+
+<P>
+Implements <A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>PointInRing</CODE></A>
+ using <A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><CODE>MonotoneChain</CODE></A>s and a <CODE>BinTree</CODE> index to
+ increase performance.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/MCPointInRing.html#MCPointInRing(com.vividsolutions.jts.geom.LinearRing)">MCPointInRing</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> ring)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/MCPointInRing.html#isInside(com.vividsolutions.jts.geom.Coordinate)">isInside</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MCPointInRing(com.vividsolutions.jts.geom.LinearRing)"><!-- --></A><H3>
+MCPointInRing</H3>
+<PRE>
+public <B>MCPointInRing</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> ring)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isInside(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+isInside</H3>
+<PRE>
+public boolean <B>isInside</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html#isInside(com.vividsolutions.jts.geom.Coordinate)">isInside</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MCPointInRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/MinimumDiameter.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/MinimumDiameter.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/MinimumDiameter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,365 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+MinimumDiameter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.MinimumDiameter class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MinimumDiameter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/MCPointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MinimumDiameter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class MinimumDiameter</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.MinimumDiameter</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>MinimumDiameter</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes the minimum diameter of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+ The minimum diameter is defined to be the
+ width of the smallest band that
+ contains the geometry,
+ where a band is a strip of the plane defined
+ by two parallel lines.
+ This can be thought of as the smallest hole that the geometry can be
+ moved through, with a single rotation.
+ <p>
+ The first step in the algorithm is computing the convex hull of the Geometry.
+ If the input Geometry is known to be convex, a hint can be supplied to
+ avoid this computation.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm"><CODE>ConvexHull</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/MinimumDiameter.html#MinimumDiameter(com.vividsolutions.jts.geom.Geometry)">MinimumDiameter</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> inputGeom)</CODE>
+
+<BR>
+ Compute a minimum diameter for a giver <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/MinimumDiameter.html#MinimumDiameter(com.vividsolutions.jts.geom.Geometry, boolean)">MinimumDiameter</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> inputGeom,
+ boolean isConvex)</CODE>
+
+<BR>
+ Compute a minimum diameter for a giver <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>,
+ with a hint if
+ the Geometry is convex
+ (e.g.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/MinimumDiameter.html#getDiameter()">getDiameter</A></B>()</CODE>
+
+<BR>
+ Gets a <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> which is a minimum diameter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/MinimumDiameter.html#getLength()">getLength</A></B>()</CODE>
+
+<BR>
+ Gets the length of the minimum diameter of the input Geometry</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/MinimumDiameter.html#getSupportingSegment()">getSupportingSegment</A></B>()</CODE>
+
+<BR>
+ Gets the segment forming the base of the minimum diameter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/MinimumDiameter.html#getWidthCoordinate()">getWidthCoordinate</A></B>()</CODE>
+
+<BR>
+ Gets the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> forming one end of the minimum diameter</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MinimumDiameter(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+MinimumDiameter</H3>
+<PRE>
+public <B>MinimumDiameter</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> inputGeom)</PRE>
+<DL>
+<DD>Compute a minimum diameter for a giver <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<P>
+</DL>
+<HR>
+
+<A NAME="MinimumDiameter(com.vividsolutions.jts.geom.Geometry, boolean)"><!-- --></A><H3>
+MinimumDiameter</H3>
+<PRE>
+public <B>MinimumDiameter</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> inputGeom,
+ boolean isConvex)</PRE>
+<DL>
+<DD>Compute a minimum diameter for a giver <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>,
+ with a hint if
+ the Geometry is convex
+ (e.g. a convex Polygon or LinearRing,
+ or a two-point LineString, or a Point).
+<P>
+<DT><B>Parameters:</B><DD><CODE>isConvex</CODE> - <code>true</code> if the input geometry is convex</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getLength()"><!-- --></A><H3>
+getLength</H3>
+<PRE>
+public double <B>getLength</B>()</PRE>
+<DL>
+<DD>Gets the length of the minimum diameter of the input Geometry
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the length of the minimum diameter</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getWidthCoordinate()"><!-- --></A><H3>
+getWidthCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getWidthCoordinate</B>()</PRE>
+<DL>
+<DD>Gets the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> forming one end of the minimum diameter
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a coordinate forming one end of the minimum diameter</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSupportingSegment()"><!-- --></A><H3>
+getSupportingSegment</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>getSupportingSegment</B>()</PRE>
+<DL>
+<DD>Gets the segment forming the base of the minimum diameter
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the segment forming the base of the minimum diameter</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDiameter()"><!-- --></A><H3>
+getDiameter</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>getDiameter</B>()</PRE>
+<DL>
+<DD>Gets a <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> which is a minimum diameter
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> which is a minimum diameter</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/MCPointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MinimumDiameter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,353 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+NonRobustCGAlgorithms
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.NonRobustCGAlgorithms class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="NonRobustCGAlgorithms";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NonRobustCGAlgorithms.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.algorithm.CGAlgorithms">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class NonRobustCGAlgorithms</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">com.vividsolutions.jts.algorithm.CGAlgorithms</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.NonRobustCGAlgorithms</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>NonRobustCGAlgorithms</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A></DL>
+
+<P>
+Non-robust versions of various fundamental Computational Geometric algorithms,
+ <b>FOR TESTING PURPOSES ONLY!</b>.
+ The non-robustness is due to rounding error in floating point computation.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.algorithm.CGAlgorithms"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#CLOCKWISE">CLOCKWISE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#COLLINEAR">COLLINEAR</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#COUNTERCLOCKWISE">COUNTERCLOCKWISE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#LEFT">LEFT</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#RIGHT">RIGHT</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#STRAIGHT">STRAIGHT</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html#NonRobustCGAlgorithms()">NonRobustCGAlgorithms</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html#computeOrientation(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeOrientation</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q)</CODE>
+
+<BR>
+ Computes the orientation of a point q to the directed line segment p1-p2.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html#isCCW(com.vividsolutions.jts.geom.Coordinate[])">isCCW</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] ring)</CODE>
+
+<BR>
+ Computes whether a ring defined by an array of <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> is
+ oriented counter-clockwise.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html#isPointInRing(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])">isPointInRing</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] ring)</CODE>
+
+<BR>
+ Computes whether a ring defined by an array of <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> is
+ oriented counter-clockwise.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.algorithm.CGAlgorithms"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#distanceLineLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">distanceLineLine</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#distancePointLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">distancePointLine</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#distancePointLinePerpendicular(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">distancePointLinePerpendicular</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#isOnLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])">isOnLine</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#length(com.vividsolutions.jts.geom.CoordinateSequence)">length</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#orientationIndex(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">orientationIndex</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#signedArea(com.vividsolutions.jts.geom.Coordinate[])">signedArea</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="NonRobustCGAlgorithms()"><!-- --></A><H3>
+NonRobustCGAlgorithms</H3>
+<PRE>
+public <B>NonRobustCGAlgorithms</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isPointInRing(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+isPointInRing</H3>
+<PRE>
+public static boolean <B>isPointInRing</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] ring)</PRE>
+<DL>
+<DD>Computes whether a ring defined by an array of <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> is
+ oriented counter-clockwise.
+ <p>
+ This will handle coordinate lists which contain repeated points.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ring</CODE> - an array of coordinates forming a ring
+<DT><B>Returns:</B><DD><code>true</code> if the ring is oriented counter-clockwise.
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if the ring is degenerate (does not contain 3 different points)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCCW(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+isCCW</H3>
+<PRE>
+public static boolean <B>isCCW</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] ring)</PRE>
+<DL>
+<DD>Computes whether a ring defined by an array of <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> is
+ oriented counter-clockwise.
+ <p>
+ This will handle coordinate lists which contain repeated points.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ring</CODE> - an array of coordinates forming a ring
+<DT><B>Returns:</B><DD><code>true</code> if the ring is oriented counter-clockwise.
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if the ring is degenerate (does not contain 3 different points)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeOrientation(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+computeOrientation</H3>
+<PRE>
+public static int <B>computeOrientation</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A></CODE></B></DD>
+<DD>Computes the orientation of a point q to the directed line segment p1-p2.
+ The orientation of a point relative to a directed line segment indicates
+ which way you turn to get to q after travelling from p1 to p2.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NonRobustCGAlgorithms.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.algorithm.CGAlgorithms">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,348 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+NonRobustLineIntersector
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.NonRobustLineIntersector class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="NonRobustLineIntersector";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NonRobustLineIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.algorithm.LineIntersector">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class NonRobustLineIntersector</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">com.vividsolutions.jts.algorithm.LineIntersector</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.NonRobustLineIntersector</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>NonRobustLineIntersector</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></DL>
+
+<P>
+A non-robust version of .
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.algorithm.LineIntersector"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#COLLINEAR">COLLINEAR</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#DO_INTERSECT">DO_INTERSECT</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#DONT_INTERSECT">DONT_INTERSECT</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#inputLines">inputLines</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#intLineIndex">intLineIndex</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#intPt">intPt</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isProper">isProper</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#pa">pa</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#pb">pb</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#precisionModel">precisionModel</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#result">result</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html#NonRobustLineIntersector()">NonRobustLineIntersector</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html#computeIntersect(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeIntersect</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p3,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p4)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html#computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeIntersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</CODE>
+
+<BR>
+ Compute the intersection of a point p and the line p1-p2.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html#isSameSignAndNonZero(double, double)">isSameSignAndNonZero</A></B>(double a,
+ double b)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.algorithm.LineIntersector"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeEdgeDistance(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeEdgeDistance</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeIntersection</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntLineIndex()">computeIntLineIndex</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntLineIndex(int)">computeIntLineIndex</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#getEdgeDistance(int, int)">getEdgeDistance</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#getIndexAlongSegment(int, int)">getIndexAlongSegment</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#getIntersection(int)">getIntersection</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#getIntersectionAlongSegment(int, int)">getIntersectionAlongSegment</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#getIntersectionNum()">getIntersectionNum</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#hasIntersection()">hasIntersection</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isCollinear()">isCollinear</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isEndPoint()">isEndPoint</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isInteriorIntersection()">isInteriorIntersection</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isInteriorIntersection(int)">isInteriorIntersection</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isIntersection(com.vividsolutions.jts.geom.Coordinate)">isIntersection</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isProper()">isProper</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#nonRobustComputeEdgeDistance(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">nonRobustComputeEdgeDistance</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#setMakePrecise(com.vividsolutions.jts.geom.PrecisionModel)">setMakePrecise</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#setPrecisionModel(com.vividsolutions.jts.geom.PrecisionModel)">setPrecisionModel</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#toString()">toString</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="NonRobustLineIntersector()"><!-- --></A><H3>
+NonRobustLineIntersector</H3>
+<PRE>
+public <B>NonRobustLineIntersector</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isSameSignAndNonZero(double, double)"><!-- --></A><H3>
+isSameSignAndNonZero</H3>
+<PRE>
+public static boolean <B>isSameSignAndNonZero</B>(double a,
+ double b)</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if both numbers are positive or if both numbers are negative.
+ Returns false if both numbers are zero.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+computeIntersection</H3>
+<PRE>
+public void <B>computeIntersection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></CODE></B></DD>
+<DD>Compute the intersection of a point p and the line p1-p2.
+ This function computes the boolean value of the hasIntersection test.
+ The actual value of the intersection (if there is one)
+ is equal to the value of <code>p</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeIntersection</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntersect(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+computeIntersect</H3>
+<PRE>
+protected int <B>computeIntersect</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p3,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p4)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntersect(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeIntersect</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NonRobustLineIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.algorithm.LineIntersector">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/NotRepresentableException.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/NotRepresentableException.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/NotRepresentableException.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+NotRepresentableException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.NotRepresentableException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="NotRepresentableException";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NotRepresentableException.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class NotRepresentableException</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.lang.Throwable
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.lang.Exception
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.NotRepresentableException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>NotRepresentableException</B><DT>extends java.lang.Exception</DL>
+
+<P>
+Indicates that a <A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm"><CODE>HCoordinate</CODE></A> has been computed which is
+ not representable on the Cartesian plane.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm"><CODE>HCoordinate</CODE></A>,
+<A HREF="../../../../serialized-form.html#com.vividsolutions.jts.algorithm.NotRepresentableException">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/NotRepresentableException.html#NotRepresentableException()">NotRepresentableException</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Throwable</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="NotRepresentableException()"><!-- --></A><H3>
+NotRepresentableException</H3>
+<PRE>
+public <B>NotRepresentableException</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NotRepresentableException.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/PointInRing.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/PointInRing.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/PointInRing.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+PointInRing
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.PointInRing interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="PointInRing";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PointInRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Interface PointInRing</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/vividsolutions/jts/algorithm/MCPointInRing.html" title="class in com.vividsolutions.jts.algorithm">MCPointInRing</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInRing.html" title="class in com.vividsolutions.jts.algorithm">SimplePointInRing</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/SIRtreePointInRing.html" title="class in com.vividsolutions.jts.algorithm">SIRtreePointInRing</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public interface <B>PointInRing</B></DL>
+
+<P>
+An interface for classes which test whether a <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> lies inside
+ a ring.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html#isInside(com.vividsolutions.jts.geom.Coordinate)">isInside</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isInside(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+isInside</H3>
+<PRE>
+public boolean <B>isInside</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PointInRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/PointLocator.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/PointLocator.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/PointLocator.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+PointLocator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.PointLocator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="PointLocator";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PointLocator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class PointLocator</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.PointLocator</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>PointLocator</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes the topological relationship (<A HREF="../../../../com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><CODE>Location</CODE></A>)
+ of a single point to a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+ The algorithm obeys the <i>SFS Boundary Determination Rule</i>
+ to determine whether the point lies on the boundary or not.
+ <p>
+ Notes:
+ <ul>
+ <li><A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A>s do not enclose any area - points inside the ring are still in the EXTERIOR of the ring.
+ </ul>
+ Instances of this class are not reentrant.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/PointLocator.html#PointLocator()">PointLocator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/PointLocator.html#PointLocator(com.vividsolutions.jts.algorithm.BoundaryNodeRule)">PointLocator</A></B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryRule)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/PointLocator.html#intersects(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Geometry)">intersects</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Convenience method to test a point for intersection with
+ a Geometry</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/PointLocator.html#locate(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Geometry)">locate</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Computes the topological relationship (<A HREF="../../../../com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><CODE>Location</CODE></A>) of a single point
+ to a Geometry.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="PointLocator()"><!-- --></A><H3>
+PointLocator</H3>
+<PRE>
+public <B>PointLocator</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="PointLocator(com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><!-- --></A><H3>
+PointLocator</H3>
+<PRE>
+public <B>PointLocator</B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryRule)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="intersects(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+intersects</H3>
+<PRE>
+public boolean <B>intersects</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Convenience method to test a point for intersection with
+ a Geometry
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p</CODE> - the coordinate to test<DD><CODE>geom</CODE> - the Geometry to test
+<DT><B>Returns:</B><DD><code>true</code> if the point is in the interior or boundary of the Geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="locate(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+locate</H3>
+<PRE>
+public int <B>locate</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Computes the topological relationship (<A HREF="../../../../com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><CODE>Location</CODE></A>) of a single point
+ to a Geometry.
+ It handles both single-element
+ and multi-element Geometries.
+ The algorithm for multi-part Geometries
+ takes into account the SFS Boundary Determination Rule.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the <A HREF="../../../../com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><CODE>Location</CODE></A> of the point relative to the input Geometry</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PointLocator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,253 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+RobustCGAlgorithms
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.RobustCGAlgorithms class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="RobustCGAlgorithms";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/RobustDeterminant.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RobustCGAlgorithms.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.algorithm.CGAlgorithms">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_com.vividsolutions.jts.algorithm.CGAlgorithms">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class RobustCGAlgorithms</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">com.vividsolutions.jts.algorithm.CGAlgorithms</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.RobustCGAlgorithms</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>RobustCGAlgorithms</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A></DL>
+
+<P>
+Stub version of RobustCGAlgorithms for backwards compatibility.
+ Will be deprecated in next release - use CGAlgorithms instead.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.algorithm.CGAlgorithms"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#CLOCKWISE">CLOCKWISE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#COLLINEAR">COLLINEAR</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#COUNTERCLOCKWISE">COUNTERCLOCKWISE</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#LEFT">LEFT</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#RIGHT">RIGHT</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#STRAIGHT">STRAIGHT</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html#RobustCGAlgorithms()">RobustCGAlgorithms</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="methods_inherited_from_class_com.vividsolutions.jts.algorithm.CGAlgorithms"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#computeOrientation(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeOrientation</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#distanceLineLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">distanceLineLine</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#distancePointLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">distancePointLine</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#distancePointLinePerpendicular(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">distancePointLinePerpendicular</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#isCCW(com.vividsolutions.jts.geom.Coordinate[])">isCCW</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#isOnLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])">isOnLine</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#isPointInRing(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])">isPointInRing</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#length(com.vividsolutions.jts.geom.CoordinateSequence)">length</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#orientationIndex(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">orientationIndex</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#signedArea(com.vividsolutions.jts.geom.Coordinate[])">signedArea</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="RobustCGAlgorithms()"><!-- --></A><H3>
+RobustCGAlgorithms</H3>
+<PRE>
+public <B>RobustCGAlgorithms</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/RobustDeterminant.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RobustCGAlgorithms.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.algorithm.CGAlgorithms">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_com.vividsolutions.jts.algorithm.CGAlgorithms">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/RobustDeterminant.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/RobustDeterminant.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/RobustDeterminant.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+RobustDeterminant
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.RobustDeterminant class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="RobustDeterminant";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RobustDeterminant.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class RobustDeterminant</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.RobustDeterminant</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>RobustDeterminant</B><DT>extends java.lang.Object</DL>
+
+<P>
+Implements an algorithm to compute the
+ sign of a 2x2 determinant for double precision values robustly.
+ It is a direct translation of code developed by Olivier Devillers.
+ <p>
+ The original code carries the following copyright notice:
+
+ <pre>
+
+ Author : Olivier Devillers
+ Olivier.Devillers at sophia.inria.fr
+ http:/www.inria.fr:/prisme/personnel/devillers/anglais/determinant.html
+
+
+
+ Copyright (c) 1995 by INRIA Prisme Project
+ BP 93 06902 Sophia Antipolis Cedex, France.
+ All rights reserved
+
+ </pre>
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/RobustDeterminant.html#RobustDeterminant()">RobustDeterminant</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/RobustDeterminant.html#signOfDet2x2(double, double, double, double)">signOfDet2x2</A></B>(double x1,
+ double y1,
+ double x2,
+ double y2)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="RobustDeterminant()"><!-- --></A><H3>
+RobustDeterminant</H3>
+<PRE>
+public <B>RobustDeterminant</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="signOfDet2x2(double, double, double, double)"><!-- --></A><H3>
+signOfDet2x2</H3>
+<PRE>
+public static int <B>signOfDet2x2</B>(double x1,
+ double y1,
+ double x2,
+ double y2)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RobustDeterminant.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/RobustLineIntersector.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/RobustLineIntersector.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/RobustLineIntersector.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,325 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+RobustLineIntersector
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.RobustLineIntersector class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="RobustLineIntersector";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/RobustDeterminant.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RobustLineIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.algorithm.LineIntersector">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class RobustLineIntersector</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">com.vividsolutions.jts.algorithm.LineIntersector</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.RobustLineIntersector</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>RobustLineIntersector</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></DL>
+
+<P>
+A robust version of .
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/algorithm/RobustDeterminant.html" title="class in com.vividsolutions.jts.algorithm"><CODE>RobustDeterminant</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.algorithm.LineIntersector"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#COLLINEAR">COLLINEAR</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#DO_INTERSECT">DO_INTERSECT</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#DONT_INTERSECT">DONT_INTERSECT</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#inputLines">inputLines</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#intLineIndex">intLineIndex</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#intPt">intPt</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isProper">isProper</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#pa">pa</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#pb">pb</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#precisionModel">precisionModel</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#result">result</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/RobustLineIntersector.html#RobustLineIntersector()">RobustLineIntersector</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/RobustLineIntersector.html#computeIntersect(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeIntersect</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q2)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/RobustLineIntersector.html#computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeIntersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</CODE>
+
+<BR>
+ Compute the intersection of a point p and the line p1-p2.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.algorithm.LineIntersector"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeEdgeDistance(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeEdgeDistance</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeIntersection</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntLineIndex()">computeIntLineIndex</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntLineIndex(int)">computeIntLineIndex</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#getEdgeDistance(int, int)">getEdgeDistance</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#getIndexAlongSegment(int, int)">getIndexAlongSegment</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#getIntersection(int)">getIntersection</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#getIntersectionAlongSegment(int, int)">getIntersectionAlongSegment</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#getIntersectionNum()">getIntersectionNum</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#hasIntersection()">hasIntersection</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isCollinear()">isCollinear</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isEndPoint()">isEndPoint</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isInteriorIntersection()">isInteriorIntersection</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isInteriorIntersection(int)">isInteriorIntersection</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isIntersection(com.vividsolutions.jts.geom.Coordinate)">isIntersection</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#isProper()">isProper</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#nonRobustComputeEdgeDistance(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">nonRobustComputeEdgeDistance</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#setMakePrecise(com.vividsolutions.jts.geom.PrecisionModel)">setMakePrecise</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#setPrecisionModel(com.vividsolutions.jts.geom.PrecisionModel)">setPrecisionModel</A>, <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#toString()">toString</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="RobustLineIntersector()"><!-- --></A><H3>
+RobustLineIntersector</H3>
+<PRE>
+public <B>RobustLineIntersector</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+computeIntersection</H3>
+<PRE>
+public void <B>computeIntersection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></CODE></B></DD>
+<DD>Compute the intersection of a point p and the line p1-p2.
+ This function computes the boolean value of the hasIntersection test.
+ The actual value of the intersection (if there is one)
+ is equal to the value of <code>p</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeIntersection</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntersect(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+computeIntersect</H3>
+<PRE>
+protected int <B>computeIntersect</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q2)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntersect(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">computeIntersect</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/RobustDeterminant.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RobustLineIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.algorithm.LineIntersector">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/SIRtreePointInRing.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/SIRtreePointInRing.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/SIRtreePointInRing.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,266 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+SIRtreePointInRing
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.SIRtreePointInRing class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SIRtreePointInRing";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SIRtreePointInRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class SIRtreePointInRing</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.SIRtreePointInRing</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>SIRtreePointInRing</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A></DL>
+
+<P>
+Implements <A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>PointInRing</CODE></A>
+ using a <A HREF="../../../../com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree"><CODE>SIRtree</CODE></A> index to
+ increase performance.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/SIRtreePointInRing.html#SIRtreePointInRing(com.vividsolutions.jts.geom.LinearRing)">SIRtreePointInRing</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> ring)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/SIRtreePointInRing.html#isInside(com.vividsolutions.jts.geom.Coordinate)">isInside</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SIRtreePointInRing(com.vividsolutions.jts.geom.LinearRing)"><!-- --></A><H3>
+SIRtreePointInRing</H3>
+<PRE>
+public <B>SIRtreePointInRing</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> ring)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isInside(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+isInside</H3>
+<PRE>
+public boolean <B>isInside</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html#isInside(com.vividsolutions.jts.geom.Coordinate)">isInside</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SIRtreePointInRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,288 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+SimplePointInAreaLocator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.SimplePointInAreaLocator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SimplePointInAreaLocator";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimplePointInAreaLocator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class SimplePointInAreaLocator</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.SimplePointInAreaLocator</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SimplePointInAreaLocator</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes whether a point
+ lies in the interior of an area <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+ The algorithm used is only guaranteed to return correct results
+ for points which are <b>not</b> on the boundary of the Geometry.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html#SimplePointInAreaLocator()">SimplePointInAreaLocator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html#containsPointInPolygon(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Polygon)">containsPointInPolygon</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> poly)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html#locate(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Geometry)">locate</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ locate is the main location function.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SimplePointInAreaLocator()"><!-- --></A><H3>
+SimplePointInAreaLocator</H3>
+<PRE>
+public <B>SimplePointInAreaLocator</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="locate(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+locate</H3>
+<PRE>
+public static int <B>locate</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>locate is the main location function. It handles both single-element
+ and multi-element Geometries. The algorithm for multi-element Geometries
+ is more complex, since it has to take into account the boundaryDetermination rule
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="containsPointInPolygon(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Polygon)"><!-- --></A><H3>
+containsPointInPolygon</H3>
+<PRE>
+public static boolean <B>containsPointInPolygon</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> poly)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimplePointInAreaLocator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/SimplePointInRing.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/SimplePointInRing.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/SimplePointInRing.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,265 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+SimplePointInRing
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm.SimplePointInRing class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SimplePointInRing";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/SIRtreePointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimplePointInRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.algorithm</FONT>
+<BR>
+Class SimplePointInRing</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.algorithm.SimplePointInRing</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>SimplePointInRing</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A></DL>
+
+<P>
+Tests whether a <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> lies inside
+ a ring, using a linear-time algorithm.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInRing.html#SimplePointInRing(com.vividsolutions.jts.geom.LinearRing)">SimplePointInRing</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> ring)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInRing.html#isInside(com.vividsolutions.jts.geom.Coordinate)">isInside</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SimplePointInRing(com.vividsolutions.jts.geom.LinearRing)"><!-- --></A><H3>
+SimplePointInRing</H3>
+<PRE>
+public <B>SimplePointInRing</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> ring)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isInside(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+isInside</H3>
+<PRE>
+public boolean <B>isInside</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html#isInside(com.vividsolutions.jts.geom.Coordinate)">isInside</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html" title="class in com.vividsolutions.jts.algorithm"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/SIRtreePointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimplePointInRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.algorithm
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/vividsolutions/jts/algorithm/package-summary.html" target="classFrame">com.vividsolutions.jts.algorithm</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm" target="classFrame"><I>BoundaryNodeRule</I></A>
+<BR>
+<A HREF="PointInRing.html" title="interface in com.vividsolutions.jts.algorithm" target="classFrame"><I>PointInRing</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Angle.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">Angle</A>
+<BR>
+<A HREF="BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">BoundaryNodeRule.EndPointBoundaryNodeRule</A>
+<BR>
+<A HREF="BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">BoundaryNodeRule.Mod2BoundaryNodeRule</A>
+<BR>
+<A HREF="BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</A>
+<BR>
+<A HREF="BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</A>
+<BR>
+<A HREF="CentralEndpointIntersector.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">CentralEndpointIntersector</A>
+<BR>
+<A HREF="CentroidArea.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">CentroidArea</A>
+<BR>
+<A HREF="CentroidLine.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">CentroidLine</A>
+<BR>
+<A HREF="CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">CentroidPoint</A>
+<BR>
+<A HREF="CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">CGAlgorithms</A>
+<BR>
+<A HREF="ConvexHull.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">ConvexHull</A>
+<BR>
+<A HREF="HCoordinate.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">HCoordinate</A>
+<BR>
+<A HREF="InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">InteriorPointArea</A>
+<BR>
+<A HREF="InteriorPointLine.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">InteriorPointLine</A>
+<BR>
+<A HREF="InteriorPointPoint.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">InteriorPointPoint</A>
+<BR>
+<A HREF="LineIntersector.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">LineIntersector</A>
+<BR>
+<A HREF="MCPointInRing.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">MCPointInRing</A>
+<BR>
+<A HREF="MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">MinimumDiameter</A>
+<BR>
+<A HREF="NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">NonRobustCGAlgorithms</A>
+<BR>
+<A HREF="NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">NonRobustLineIntersector</A>
+<BR>
+<A HREF="PointLocator.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">PointLocator</A>
+<BR>
+<A HREF="RobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">RobustCGAlgorithms</A>
+<BR>
+<A HREF="RobustDeterminant.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">RobustDeterminant</A>
+<BR>
+<A HREF="RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">RobustLineIntersector</A>
+<BR>
+<A HREF="SimplePointInAreaLocator.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">SimplePointInAreaLocator</A>
+<BR>
+<A HREF="SimplePointInRing.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">SimplePointInRing</A>
+<BR>
+<A HREF="SIRtreePointInRing.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">SIRtreePointInRing</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Exceptions</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm" target="classFrame">NotRepresentableException</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,357 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.algorithm
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.algorithm package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.algorithm";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.algorithm
+</H2>
+Contains classes and interfaces implementing fundamental computational geometry algorithms.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></B></TD>
+<TD>An interface for rules which determine whether node points
+ which are in boundaries of lineal geometry components
+ are in the boundary of the parent geometry collection.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A></B></TD>
+<TD>An interface for classes which test whether a <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> lies inside
+ a ring.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A></B></TD>
+<TD>Utility functions for working with angles.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.EndPointBoundaryNodeRule</A></B></TD>
+<TD>A <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> which specifies that any points which are endpoints
+ of lineal components are in the boundary of the
+ parent geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.Mod2BoundaryNodeRule</A></B></TD>
+<TD>A <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> specifies that points are in the
+ boundary of a lineal geometry iff
+ the point lies on the boundary of an odd number
+ of components.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</A></B></TD>
+<TD>A <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> which determines that only
+ endpoints with valency of exactly 1 are on the boundary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</A></B></TD>
+<TD>A <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> which determines that only
+ endpoints with valency greater than 1 are on the boundary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html" title="class in com.vividsolutions.jts.algorithm">CentralEndpointIntersector</A></B></TD>
+<TD>Computes an approximate intersection of two line segments
+ by taking the most central of the endpoints of the segments.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidArea.html" title="class in com.vividsolutions.jts.algorithm">CentroidArea</A></B></TD>
+<TD>Computes the centroid of an area geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidLine.html" title="class in com.vividsolutions.jts.algorithm">CentroidLine</A></B></TD>
+<TD>Computes the centroid of a linear geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm">CentroidPoint</A></B></TD>
+<TD>Computes the centroid of a point geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A></B></TD>
+<TD>Specifies and implements various fundamental Computational Geometric algorithms.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm">ConvexHull</A></B></TD>
+<TD>Computes the convex hull of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A></B></TD>
+<TD>Represents a homogeneous coordinate in a 2-D coordinate space.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointArea</A></B></TD>
+<TD>Computes a point in the interior of an area geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointLine.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointLine</A></B></TD>
+<TD>Computes a point in the interior of an linear geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointPoint.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointPoint</A></B></TD>
+<TD>Computes a point in the interior of an point geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></B></TD>
+<TD>A LineIntersector is an algorithm that can both test whether
+ two line segments intersect and compute the intersection point
+ if they do.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/MCPointInRing.html" title="class in com.vividsolutions.jts.algorithm">MCPointInRing</A></B></TD>
+<TD>Implements <A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>PointInRing</CODE></A>
+ using <A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><CODE>MonotoneChain</CODE></A>s and a <CODE>BinTree</CODE> index to
+ increase performance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm">MinimumDiameter</A></B></TD>
+<TD>Computes the minimum diameter of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">NonRobustCGAlgorithms</A></B></TD>
+<TD>Non-robust versions of various fundamental Computational Geometric algorithms,
+ <b>FOR TESTING PURPOSES ONLY!</b>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm">NonRobustLineIntersector</A></B></TD>
+<TD>A non-robust version of .</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm">PointLocator</A></B></TD>
+<TD>Computes the topological relationship (<A HREF="../../../../com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><CODE>Location</CODE></A>)
+ of a single point to a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">RobustCGAlgorithms</A></B></TD>
+<TD>Stub version of RobustCGAlgorithms for backwards compatibility.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/RobustDeterminant.html" title="class in com.vividsolutions.jts.algorithm">RobustDeterminant</A></B></TD>
+<TD>Implements an algorithm to compute the
+ sign of a 2x2 determinant for double precision values robustly.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm">RobustLineIntersector</A></B></TD>
+<TD>A robust version of .</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html" title="class in com.vividsolutions.jts.algorithm">SimplePointInAreaLocator</A></B></TD>
+<TD>Computes whether a point
+ lies in the interior of an area <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInRing.html" title="class in com.vividsolutions.jts.algorithm">SimplePointInRing</A></B></TD>
+<TD>Tests whether a <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> lies inside
+ a ring, using a linear-time algorithm.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/SIRtreePointInRing.html" title="class in com.vividsolutions.jts.algorithm">SIRtreePointInRing</A></B></TD>
+<TD>Implements <A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>PointInRing</CODE></A>
+ using a <A HREF="../../../../com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree"><CODE>SIRtree</CODE></A> index to
+ increase performance.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Exception Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm">NotRepresentableException</A></B></TD>
+<TD>Indicates that a <A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm"><CODE>HCoordinate</CODE></A> has been computed which is
+ not representable on the Cartesian plane.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.algorithm Description
+</H2>
+
+<P>
+Contains classes and interfaces implementing fundamental computational geometry algorithms.
+
+<H3>Robustness</H3>
+
+Geometrical algorithms involve a combination of combinatorial and numerical computation. As with
+all numerical computation using finite-precision numbers, the algorithms chosen are susceptible to
+problems of robustness. A robustness problem occurs when a numerical calculation produces an
+incorrect answer for some inputs due to round-off errors. Robustness problems are especially
+serious in geometric computation, since they can result in errors during topology building.
+<P>
+There are many approaches to dealing with the problem of robustness in geometrical computation.
+Not surprisingly, most robust algorithms are substantially more complex and less performant than
+the non-robust versions. Fortunately, JTS is sensitive to robustness problems in only a few key
+functions (such as line intersection and the point-in-polygon test). There are efficient robust
+algorithms available for these functions, and these algorithms are implemented in JTS.
+
+<H3>Computational Performance</H3>
+
+Runtime performance is an important consideration for a production-quality implementation of
+geometric algorithms. The most computationally intensive algorithm used in JTS is intersection
+detection. JTS methods need to determine both all intersection between the line segments in a
+single Geometry (self-intersection) and all intersections between the line segments of two different
+Geometries.
+<P>
+The obvious naive algorithm for intersection detection (comparing every segment with every other)
+has unacceptably slow performance. There is a large literature of faster algorithms for intersection
+detection. Unfortunately, many of them involve substantial code complexity. JTS tries to balance code
+simplicity with performance gains. It uses some simple techniques to produce substantial performance
+gains for common types of input data.
+
+
+<h2>Package Specification</h2>
+
+<ul>
+ <li>Java Topology Suite Technical Specifications
+ <li><A HREF="http://www.opengis.org/techno/specs.htm">
+ OpenGIS Simple Features Specification for SQL</A>
+</ul>
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/algorithm/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,164 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.algorithm Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.algorithm Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.algorithm
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm"><B>Angle</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>BoundaryNodeRule.EndPointBoundaryNodeRule</B></A> (implements com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>BoundaryNodeRule.Mod2BoundaryNodeRule</B></A> (implements com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</B></A> (implements com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</B></A> (implements com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>CentralEndpointIntersector</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidArea.html" title="class in com.vividsolutions.jts.algorithm"><B>CentroidArea</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidLine.html" title="class in com.vividsolutions.jts.algorithm"><B>CentroidLine</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm"><B>CentroidPoint</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>CGAlgorithms</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>NonRobustCGAlgorithms</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>RobustCGAlgorithms</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm"><B>ConvexHull</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm"><B>HCoordinate</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm"><B>InteriorPointArea</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointLine.html" title="class in com.vividsolutions.jts.algorithm"><B>InteriorPointLine</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/InteriorPointPoint.html" title="class in com.vividsolutions.jts.algorithm"><B>InteriorPointPoint</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>LineIntersector</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>NonRobustLineIntersector</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>RobustLineIntersector</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/MCPointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>MCPointInRing</B></A> (implements com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm"><B>MinimumDiameter</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm"><B>PointLocator</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/RobustDeterminant.html" title="class in com.vividsolutions.jts.algorithm"><B>RobustDeterminant</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html" title="class in com.vividsolutions.jts.algorithm"><B>SimplePointInAreaLocator</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/SimplePointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>SimplePointInRing</B></A> (implements com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/SIRtreePointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>SIRtreePointInRing</B></A> (implements com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A>)
+<LI TYPE="circle">class java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">class java.lang.Exception<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm"><B>NotRepresentableException</B></A></UL>
+</UL>
+</UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">interface com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><B>BoundaryNodeRule</B></A><LI TYPE="circle">interface com.vividsolutions.jts.algorithm.<A HREF="../../../../com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm"><B>PointInRing</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,329 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+Coordinate.DimensionalComparator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.Coordinate.DimensionalComparator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Coordinate.DimensionalComparator";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Coordinate.DimensionalComparator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class Coordinate.DimensionalComparator</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.Coordinate.DimensionalComparator</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.util.Comparator</DD>
+</DL>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public static class <B>Coordinate.DimensionalComparator</B><DT>extends java.lang.Object<DT>implements java.util.Comparator</DL>
+
+<P>
+Compares two <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s, allowing for either a 2-dimensional
+ or 3-dimensional comparison, and handling NaN values correctly.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html#Coordinate.DimensionalComparator()">Coordinate.DimensionalComparator</A></B>()</CODE>
+
+<BR>
+ Creates a comparator for 2 dimensional coordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html#Coordinate.DimensionalComparator(int)">Coordinate.DimensionalComparator</A></B>(int dimensionsToTest)</CODE>
+
+<BR>
+ Creates a comparator for 2 or 3 dimensional coordinates, depending
+ on the value provided.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html#compare(double, double)">compare</A></B>(double a,
+ double b)</CODE>
+
+<BR>
+ Compare two <code>double</code>s, allowing for NaN values.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html#compare(java.lang.Object, java.lang.Object)">compare</A></B>(java.lang.Object o1,
+ java.lang.Object o2)</CODE>
+
+<BR>
+ Compares two <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s along to the number of
+ dimensions specified.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.util.Comparator"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from interface java.util.Comparator</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Coordinate.DimensionalComparator()"><!-- --></A><H3>
+Coordinate.DimensionalComparator</H3>
+<PRE>
+public <B>Coordinate.DimensionalComparator</B>()</PRE>
+<DL>
+<DD>Creates a comparator for 2 dimensional coordinates.
+<P>
+</DL>
+<HR>
+
+<A NAME="Coordinate.DimensionalComparator(int)"><!-- --></A><H3>
+Coordinate.DimensionalComparator</H3>
+<PRE>
+public <B>Coordinate.DimensionalComparator</B>(int dimensionsToTest)</PRE>
+<DL>
+<DD>Creates a comparator for 2 or 3 dimensional coordinates, depending
+ on the value provided.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="compare(double, double)"><!-- --></A><H3>
+compare</H3>
+<PRE>
+public static int <B>compare</B>(double a,
+ double b)</PRE>
+<DL>
+<DD>Compare two <code>double</code>s, allowing for NaN values.
+ NaN is treated as being less than any valid number.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>a</CODE> - a <code>double</code><DD><CODE>b</CODE> - a <code>double</code>
+<DT><B>Returns:</B><DD>-1, 0, or 1 depending on whether a is less than, equal to or greater than b</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compare(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
+compare</H3>
+<PRE>
+public int <B>compare</B>(java.lang.Object o1,
+ java.lang.Object o2)</PRE>
+<DL>
+<DD>Compares two <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s along to the number of
+ dimensions specified.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compare</CODE> in interface <CODE>java.util.Comparator</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o1</CODE> - a <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A><DD><CODE>o2</CODE> - a {link Coordinate}
+<DT><B>Returns:</B><DD>-1, 0, or 1 depending on whether o1 is less than,
+ equal to, or greater than 02</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Coordinate.DimensionalComparator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Coordinate.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Coordinate.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Coordinate.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,667 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+Coordinate
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.Coordinate class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Coordinate";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Coordinate.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class Coordinate</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.Coordinate</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, java.lang.Comparable, java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>Coordinate</B><DT>extends java.lang.Object<DT>implements java.lang.Comparable, java.lang.Cloneable, java.io.Serializable</DL>
+
+<P>
+A lightweight class used to store coordinates
+ on the 2-dimensional Cartesian plane.
+ It is distinct from <code>Point</code>, which is a subclass of <code>Geometry</code>
+ . Unlike objects of type <code>Point</code> (which contain additional
+ information such as an envelope, a precision model, and spatial reference
+ system information), a <code>Coordinate</code> only contains ordinate values
+ and accessor methods. <P>
+
+ <code>Coordinate</code>s are two-dimensional points, with an additional
+ z-ordinate. JTS does not support any operations on the z-ordinate except
+ the basic accessor functions. Constructed coordinates will have a
+ z-ordinate of <code>NaN</code>. The standard comparison functions will ignore
+ the z-ordinate.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.Coordinate">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom">Coordinate.DimensionalComparator</A></B></CODE>
+
+<BR>
+ Compares two <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s, allowing for either a 2-dimensional
+ or 3-dimensional comparison, and handling NaN values correctly.</TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#x">x</A></B></CODE>
+
+<BR>
+ The x-coordinate.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#y">y</A></B></CODE>
+
+<BR>
+ The y-coordinate.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#z">z</A></B></CODE>
+
+<BR>
+ The z-coordinate.</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#Coordinate()">Coordinate</A></B>()</CODE>
+
+<BR>
+ Constructs a <code>Coordinate</code> at (0,0,NaN).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#Coordinate(com.vividsolutions.jts.geom.Coordinate)">Coordinate</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</CODE>
+
+<BR>
+ Constructs a <code>Coordinate</code> having the same (x,y,z) values as
+ <code>other</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#Coordinate(double, double)">Coordinate</A></B>(double x,
+ double y)</CODE>
+
+<BR>
+ Constructs a <code>Coordinate</code> at (x,y,NaN).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#Coordinate(double, double, double)">Coordinate</A></B>(double x,
+ double y,
+ double z)</CODE>
+
+<BR>
+ Constructs a <code>Coordinate</code> at (x,y,z).</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#clone()">clone</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#compareTo(java.lang.Object)">compareTo</A></B>(java.lang.Object o)</CODE>
+
+<BR>
+ Compares this <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> with the specified <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> for order.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#distance(com.vividsolutions.jts.geom.Coordinate)">distance</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object other)</CODE>
+
+<BR>
+ Returns <code>true</code> if <code>other</code> has the same values for
+ the x and y ordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#equals2D(com.vividsolutions.jts.geom.Coordinate)">equals2D</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> other)</CODE>
+
+<BR>
+ Returns whether the planar projections of the two <code>Coordinate</code>s
+ are equal.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#equals3D(com.vividsolutions.jts.geom.Coordinate)">equals3D</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> other)</CODE>
+
+<BR>
+ Returns <code>true</code> if <code>other</code> has the same values for x,
+ y and z.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#hashCode()">hashCode</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#hashCode(double)">hashCode</A></B>(double x)</CODE>
+
+<BR>
+ Returns a hash code for a double value, using the algorithm from
+ Joshua Bloch's book <i>Effective Java"</i></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#setCoordinate(com.vividsolutions.jts.geom.Coordinate)">setCoordinate</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> other)</CODE>
+
+<BR>
+ Sets this <code>Coordinate</code>s (x,y,z) values to that of <code>other</code>
+ .</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ Returns a <code>String</code> of the form <I>(x,y,z)</I> .</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>finalize, getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="x"><!-- --></A><H3>
+x</H3>
+<PRE>
+public double <B>x</B></PRE>
+<DL>
+<DD>The x-coordinate.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="y"><!-- --></A><H3>
+y</H3>
+<PRE>
+public double <B>y</B></PRE>
+<DL>
+<DD>The y-coordinate.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="z"><!-- --></A><H3>
+z</H3>
+<PRE>
+public double <B>z</B></PRE>
+<DL>
+<DD>The z-coordinate.
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Coordinate(double, double, double)"><!-- --></A><H3>
+Coordinate</H3>
+<PRE>
+public <B>Coordinate</B>(double x,
+ double y,
+ double z)</PRE>
+<DL>
+<DD>Constructs a <code>Coordinate</code> at (x,y,z).
+<P>
+<DT><B>Parameters:</B><DD><CODE>x</CODE> - the x-value<DD><CODE>y</CODE> - the y-value<DD><CODE>z</CODE> - the z-value</DL>
+<HR>
+
+<A NAME="Coordinate()"><!-- --></A><H3>
+Coordinate</H3>
+<PRE>
+public <B>Coordinate</B>()</PRE>
+<DL>
+<DD>Constructs a <code>Coordinate</code> at (0,0,NaN).
+<P>
+</DL>
+<HR>
+
+<A NAME="Coordinate(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+Coordinate</H3>
+<PRE>
+public <B>Coordinate</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</PRE>
+<DL>
+<DD>Constructs a <code>Coordinate</code> having the same (x,y,z) values as
+ <code>other</code>.
+<P>
+<DT><B>Parameters:</B><DD><CODE>c</CODE> - the <code>Coordinate</code> to copy.</DL>
+<HR>
+
+<A NAME="Coordinate(double, double)"><!-- --></A><H3>
+Coordinate</H3>
+<PRE>
+public <B>Coordinate</B>(double x,
+ double y)</PRE>
+<DL>
+<DD>Constructs a <code>Coordinate</code> at (x,y,NaN).
+<P>
+<DT><B>Parameters:</B><DD><CODE>x</CODE> - the x-value<DD><CODE>y</CODE> - the y-value</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setCoordinate(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+setCoordinate</H3>
+<PRE>
+public void <B>setCoordinate</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> other)</PRE>
+<DL>
+<DD>Sets this <code>Coordinate</code>s (x,y,z) values to that of <code>other</code>
+ .
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Coordinate</code> to copy</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals2D(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+equals2D</H3>
+<PRE>
+public boolean <B>equals2D</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> other)</PRE>
+<DL>
+<DD>Returns whether the planar projections of the two <code>Coordinate</code>s
+ are equal.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - a <code>Coordinate</code> with which to do the 2D comparison.
+<DT><B>Returns:</B><DD><code>true</code> if the x- and y-coordinates are equal; the
+ z-coordinates do not have to be equal.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</B>(java.lang.Object other)</PRE>
+<DL>
+<DD>Returns <code>true</code> if <code>other</code> has the same values for
+ the x and y ordinates.
+ Since Coordinates are 2.5D, this routine ignores the z value when making the comparison.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - a <code>Coordinate</code> with which to do the comparison.
+<DT><B>Returns:</B><DD><code>true</code> if <code>other</code> is a <code>Coordinate</code>
+ with the same values for the x and y ordinates.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(java.lang.Object o)</PRE>
+<DL>
+<DD>Compares this <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> with the specified <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> for order.
+ This method ignores the z value when making the comparison.
+ Returns:
+ <UL>
+ <LI> -1 : this.x < other.x || ((this.x == other.x) && (this.y <
+ other.y))
+ <LI> 0 : this.x == other.x && this.y = other.y
+ <LI> 1 : this.x > other.x || ((this.x == other.x) && (this.y > other.y))
+
+ </UL>
+ Note: This method assumes that ordinate values
+ are valid numbers. NaN values are not handled correctly.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE>java.lang.Comparable</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o</CODE> - the <code>Coordinate</code> with which this <code>Coordinate</code>
+ is being compared
+<DT><B>Returns:</B><DD>-1, zero, or 1 as this <code>Coordinate</code>
+ is less than, equal to, or greater than the specified <code>Coordinate</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals3D(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+equals3D</H3>
+<PRE>
+public boolean <B>equals3D</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> other)</PRE>
+<DL>
+<DD>Returns <code>true</code> if <code>other</code> has the same values for x,
+ y and z.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - a <code>Coordinate</code> with which to do the 3D comparison.
+<DT><B>Returns:</B><DD><code>true</code> if <code>other</code> is a <code>Coordinate</code>
+ with the same values for x, y and z.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD>Returns a <code>String</code> of the form <I>(x,y,z)</I> .
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <code>String</code> of the form <I>(x,y,z)</I></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clone()"><!-- --></A><H3>
+clone</H3>
+<PRE>
+public java.lang.Object <B>clone</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="distance(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+distance</H3>
+<PRE>
+public double <B>distance</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hashCode()"><!-- --></A><H3>
+hashCode</H3>
+<PRE>
+public int <B>hashCode</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hashCode(double)"><!-- --></A><H3>
+hashCode</H3>
+<PRE>
+public static int <B>hashCode</B>(double x)</PRE>
+<DL>
+<DD>Returns a hash code for a double value, using the algorithm from
+ Joshua Bloch's book <i>Effective Java"</i>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Coordinate.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+CoordinateArrays.BidirectionalComparator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.CoordinateArrays.BidirectionalComparator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CoordinateArrays.BidirectionalComparator";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateArrays.BidirectionalComparator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class CoordinateArrays.BidirectionalComparator</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.CoordinateArrays.BidirectionalComparator</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.util.Comparator</DD>
+</DL>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public static class <B>CoordinateArrays.BidirectionalComparator</B><DT>extends java.lang.Object<DT>implements java.util.Comparator</DL>
+
+<P>
+A <CODE>Comparator</CODE> for <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> arrays
+ modulo their directionality.
+ E.g. if two coordinate arrays are identical but reversed
+ they will compare as equal under this ordering.
+ If the arrays are not equal, the ordering returned
+ is the ordering in the forward direction.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html#CoordinateArrays.BidirectionalComparator()">CoordinateArrays.BidirectionalComparator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html#compare(java.lang.Object, java.lang.Object)">compare</A></B>(java.lang.Object o1,
+ java.lang.Object o2)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html#OLDcompare(java.lang.Object, java.lang.Object)">OLDcompare</A></B>(java.lang.Object o1,
+ java.lang.Object o2)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.util.Comparator"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from interface java.util.Comparator</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CoordinateArrays.BidirectionalComparator()"><!-- --></A><H3>
+CoordinateArrays.BidirectionalComparator</H3>
+<PRE>
+public <B>CoordinateArrays.BidirectionalComparator</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="compare(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
+compare</H3>
+<PRE>
+public int <B>compare</B>(java.lang.Object o1,
+ java.lang.Object o2)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compare</CODE> in interface <CODE>java.util.Comparator</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="OLDcompare(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
+OLDcompare</H3>
+<PRE>
+public int <B>OLDcompare</B>(java.lang.Object o1,
+ java.lang.Object o2)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateArrays.BidirectionalComparator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,276 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+CoordinateArrays.ForwardComparator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.CoordinateArrays.ForwardComparator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CoordinateArrays.ForwardComparator";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateArrays.ForwardComparator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class CoordinateArrays.ForwardComparator</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.CoordinateArrays.ForwardComparator</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.util.Comparator</DD>
+</DL>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public static class <B>CoordinateArrays.ForwardComparator</B><DT>extends java.lang.Object<DT>implements java.util.Comparator</DL>
+
+<P>
+A <CODE>Comparator</CODE> for <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> arrays
+ in the forward direction of their coordinates,
+ using lexicographic ordering.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html#CoordinateArrays.ForwardComparator()">CoordinateArrays.ForwardComparator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html#compare(java.lang.Object, java.lang.Object)">compare</A></B>(java.lang.Object o1,
+ java.lang.Object o2)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.util.Comparator"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from interface java.util.Comparator</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CoordinateArrays.ForwardComparator()"><!-- --></A><H3>
+CoordinateArrays.ForwardComparator</H3>
+<PRE>
+public <B>CoordinateArrays.ForwardComparator</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="compare(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
+compare</H3>
+<PRE>
+public int <B>compare</B>(java.lang.Object o1,
+ java.lang.Object o2)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compare</CODE> in interface <CODE>java.util.Comparator</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateArrays.ForwardComparator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateArrays.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateArrays.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateArrays.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,640 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+CoordinateArrays
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.CoordinateArrays class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CoordinateArrays";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateArrays.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class CoordinateArrays</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.CoordinateArrays</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>CoordinateArrays</B><DT>extends java.lang.Object</DL>
+
+<P>
+Useful utility functions for handling Coordinate arrays
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays.BidirectionalComparator</A></B></CODE>
+
+<BR>
+ A <CODE>Comparator</CODE> for <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> arrays
+ modulo their directionality.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays.ForwardComparator</A></B></CODE>
+
+<BR>
+ A <CODE>Comparator</CODE> for <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> arrays
+ in the forward direction of their coordinates,
+ using lexicographic ordering.</TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#CoordinateArrays()">CoordinateArrays</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#atLeastNCoordinatesOrNothing(int, com.vividsolutions.jts.geom.Coordinate[])">atLeastNCoordinatesOrNothing</A></B>(int n,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] c)</CODE>
+
+<BR>
+ Returns either the given coordinate array if its length is greater than the
+ given amount, or an empty coordinate array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#compare(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate[])">compare</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts2)</CODE>
+
+<BR>
+ Compares two <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> arrays
+ in the forward direction of their coordinates,
+ using lexicographic ordering.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#copyDeep(com.vividsolutions.jts.geom.Coordinate[])">copyDeep</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</CODE>
+
+<BR>
+ Creates a deep copy of the argument {@link Coordinate) array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#equals(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate[])">equals</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord2)</CODE>
+
+<BR>
+ Returns true if the two arrays are identical, both null, or pointwise
+ equal (as compared using Coordinate#equals)</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#equals(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate[], java.util.Comparator)">equals</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord2,
+ java.util.Comparator coordinateComparator)</CODE>
+
+<BR>
+ Returns true if the two arrays are identical, both null, or pointwise
+ equal, using a user-defined <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom"><CODE>CoordinateArrays.ForwardComparator</CODE></A> for <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> s</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#extract(com.vividsolutions.jts.geom.Coordinate[], int, int)">extract</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts,
+ int start,
+ int end)</CODE>
+
+<BR>
+ Extracts a subsequence of the input <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> array
+ from indices <code>start</code> to
+ <code>end</code> (inclusive).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#hasRepeatedPoints(com.vividsolutions.jts.geom.Coordinate[])">hasRepeatedPoints</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord)</CODE>
+
+<BR>
+ Returns whether #equals returns true for any two consecutive Coordinates
+ in the given array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#increasingDirection(com.vividsolutions.jts.geom.Coordinate[])">increasingDirection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</CODE>
+
+<BR>
+ Determines which orientation of the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> array
+ is (overall) increasing.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#indexOf(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])">indexOf</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coordinate,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</CODE>
+
+<BR>
+ Returns the index of <code>coordinate</code> in <code>coordinates</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#minCoordinate(com.vividsolutions.jts.geom.Coordinate[])">minCoordinate</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</CODE>
+
+<BR>
+ Returns the minimum coordinate, using the usual lexicographic comparison.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#ptNotInList(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate[])">ptNotInList</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] testPts,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</CODE>
+
+<BR>
+ Finds a point in a list of points which is not contained in another list of points</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#removeRepeatedPoints(com.vividsolutions.jts.geom.Coordinate[])">removeRepeatedPoints</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord)</CODE>
+
+<BR>
+ If the coordinate array argument has repeated points,
+ constructs a new array containing no repeated points.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#reverse(com.vividsolutions.jts.geom.Coordinate[])">reverse</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord)</CODE>
+
+<BR>
+ Reverses the coordinates in an array in-place.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#scroll(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate)">scroll</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> firstCoordinate)</CODE>
+
+<BR>
+ Shifts the positions of the coordinates until <code>firstCoordinate</code>
+ is first.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#toCoordinateArray(java.util.Collection)">toCoordinateArray</A></B>(java.util.Collection coordList)</CODE>
+
+<BR>
+ Converts the given Collection of Coordinates into a Coordinate array.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CoordinateArrays()"><!-- --></A><H3>
+CoordinateArrays</H3>
+<PRE>
+public <B>CoordinateArrays</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ptNotInList(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+ptNotInList</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>ptNotInList</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] testPts,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</PRE>
+<DL>
+<DD>Finds a point in a list of points which is not contained in another list of points
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>testPts</CODE> - the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s to test<DD><CODE>pts</CODE> - an array of <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s to test the input points against
+<DT><B>Returns:</B><DD>a <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> from <code>testPts</code> which is not in <code>pts</code>, '
+ or <code>null</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compare(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+compare</H3>
+<PRE>
+public static int <B>compare</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts2)</PRE>
+<DL>
+<DD>Compares two <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> arrays
+ in the forward direction of their coordinates,
+ using lexicographic ordering.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pts1</CODE> - <DD><CODE>pts2</CODE> -
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="increasingDirection(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+increasingDirection</H3>
+<PRE>
+public static int <B>increasingDirection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</PRE>
+<DL>
+<DD>Determines which orientation of the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> array
+ is (overall) increasing.
+ In other words, determines which end of the array is "smaller"
+ (using the standard ordering on <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>).
+ Returns an integer indicating the increasing direction.
+ If the sequence is a palindrome, it is defined to be
+ oriented in a positive direction.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pts</CODE> - the array of Coordinates to test
+<DT><B>Returns:</B><DD><code>1</code> if the array is smaller at the start
+ or is a palindrome,
+ <code>-1</code> if smaller at the end</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="copyDeep(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+copyDeep</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>copyDeep</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</PRE>
+<DL>
+<DD>Creates a deep copy of the argument {@link Coordinate) array.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - an array of Coordinates
+<DT><B>Returns:</B><DD>a deep copy of the input</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toCoordinateArray(java.util.Collection)"><!-- --></A><H3>
+toCoordinateArray</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>toCoordinateArray</B>(java.util.Collection coordList)</PRE>
+<DL>
+<DD>Converts the given Collection of Coordinates into a Coordinate array.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasRepeatedPoints(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+hasRepeatedPoints</H3>
+<PRE>
+public static boolean <B>hasRepeatedPoints</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord)</PRE>
+<DL>
+<DD>Returns whether #equals returns true for any two consecutive Coordinates
+ in the given array.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="atLeastNCoordinatesOrNothing(int, com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+atLeastNCoordinatesOrNothing</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>atLeastNCoordinatesOrNothing</B>(int n,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] c)</PRE>
+<DL>
+<DD>Returns either the given coordinate array if its length is greater than the
+ given amount, or an empty coordinate array.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeRepeatedPoints(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+removeRepeatedPoints</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>removeRepeatedPoints</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord)</PRE>
+<DL>
+<DD>If the coordinate array argument has repeated points,
+ constructs a new array containing no repeated points.
+ Otherwise, returns the argument.
+<P>
+<DD><DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html#hasRepeatedPoints(com.vividsolutions.jts.geom.Coordinate[])"><CODE>hasRepeatedPoints(Coordinate[])</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reverse(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+reverse</H3>
+<PRE>
+public static void <B>reverse</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord)</PRE>
+<DL>
+<DD>Reverses the coordinates in an array in-place.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public static boolean <B>equals</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord2)</PRE>
+<DL>
+<DD>Returns true if the two arrays are identical, both null, or pointwise
+ equal (as compared using Coordinate#equals)
+<P>
+<DD><DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#equals(java.lang.Object)"><CODE>Coordinate.equals(Object)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate[], java.util.Comparator)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public static boolean <B>equals</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord2,
+ java.util.Comparator coordinateComparator)</PRE>
+<DL>
+<DD>Returns true if the two arrays are identical, both null, or pointwise
+ equal, using a user-defined <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom"><CODE>CoordinateArrays.ForwardComparator</CODE></A> for <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> s
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coord1</CODE> - an array of Coordinates<DD><CODE>coord2</CODE> - an array of Coordinates<DD><CODE>coordinateComparator</CODE> - a Comparator for Coordinates</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="minCoordinate(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+minCoordinate</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>minCoordinate</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</PRE>
+<DL>
+<DD>Returns the minimum coordinate, using the usual lexicographic comparison.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - the array to search
+<DT><B>Returns:</B><DD>the minimum coordinate in the array, found using <code>compareTo</code><DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html#compareTo(java.lang.Object)"><CODE>Coordinate.compareTo(Object)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="scroll(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+scroll</H3>
+<PRE>
+public static void <B>scroll</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> firstCoordinate)</PRE>
+<DL>
+<DD>Shifts the positions of the coordinates until <code>firstCoordinate</code>
+ is first.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - the array to rearrange<DD><CODE>firstCoordinate</CODE> - the coordinate to make first</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="indexOf(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+indexOf</H3>
+<PRE>
+public static int <B>indexOf</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coordinate,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</PRE>
+<DL>
+<DD>Returns the index of <code>coordinate</code> in <code>coordinates</code>.
+ The first position is 0; the second, 1; etc.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinate</CODE> - the <code>Coordinate</code> to search for<DD><CODE>coordinates</CODE> - the array to search
+<DT><B>Returns:</B><DD>the position of <code>coordinate</code>, or -1 if it is
+ not found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="extract(com.vividsolutions.jts.geom.Coordinate[], int, int)"><!-- --></A><H3>
+extract</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>extract</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts,
+ int start,
+ int end)</PRE>
+<DL>
+<DD>Extracts a subsequence of the input <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> array
+ from indices <code>start</code> to
+ <code>end</code> (inclusive).
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pts</CODE> - the input array<DD><CODE>start</CODE> - the index of the start of the subsequence to extract<DD><CODE>end</CODE> - the index of the end of the subsequence to extract
+<DT><B>Returns:</B><DD>a subsequence of the input array</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateArrays.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateFilter.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateFilter.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateFilter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,230 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+CoordinateFilter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.CoordinateFilter interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CoordinateFilter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Interface CoordinateFilter</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/vividsolutions/jts/util/CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util">CoordinateArrayFilter</A>, <A HREF="../../../../com/vividsolutions/jts/util/CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util">CoordinateCountFilter</A>, <A HREF="../../../../com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util">UniqueCoordinateArrayFilter</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public interface <B>CoordinateFilter</B></DL>
+
+<P>
+<code>Geometry</code> classes support the concept of applying a
+ coordinate filter to every coordinate in the <code>Geometry</code>. A
+ coordinate filter can either record information about each coordinate or
+ change the coordinate in some way. Coordinate filters implement the
+ interface <code>CoordinateFilter</code>. (<code>CoordinateFilter</code> is
+ an example of the Gang-of-Four Visitor pattern). Coordinate filters can be
+ used to implement such things as coordinate transformations, centroid and
+ envelope computation, and many other functions.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html#filter(com.vividsolutions.jts.geom.Coordinate)">filter</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ Performs an operation with or on <code>coord</code>.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="filter(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+filter</H3>
+<PRE>
+public void <B>filter</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD>Performs an operation with or on <code>coord</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coord</CODE> - a <code>Coordinate</code> to which the filter is applied.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateList.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateList.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateList.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,543 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+CoordinateList
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.CoordinateList class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CoordinateList";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateList.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_java.util.AbstractList">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class CoordinateList</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.util.AbstractCollection
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.util.AbstractList
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.util.ArrayList
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.CoordinateList</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, java.util.Collection, java.util.List, java.util.RandomAccess, java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>CoordinateList</B><DT>extends java.util.ArrayList</DL>
+
+<P>
+A list of <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s, which may
+ be set to prevent repeated coordinates from occuring in the list.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.CoordinateList">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_java.util.AbstractList"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class java.util.AbstractList</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>modCount</CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html#CoordinateList()">CoordinateList</A></B>()</CODE>
+
+<BR>
+ Constructs a new list without any coordinates</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html#CoordinateList(com.vividsolutions.jts.geom.Coordinate[])">CoordinateList</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord)</CODE>
+
+<BR>
+ The basic constructor for a CoordinateArray allows repeated points
+ (i.e produces a CoordinateList with exactly the same set of points)</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html#CoordinateList(com.vividsolutions.jts.geom.Coordinate[], boolean)">CoordinateList</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord,
+ boolean allowRepeated)</CODE>
+
+<BR>
+ Constructs a new list from an array of Coordinates,
+ allowing caller to specify if repeated points are to be removed.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html#add(com.vividsolutions.jts.geom.Coordinate[], boolean)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord,
+ boolean allowRepeated)</CODE>
+
+<BR>
+ Add an array of coordinates</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html#add(com.vividsolutions.jts.geom.Coordinate[], boolean, boolean)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord,
+ boolean allowRepeated,
+ boolean direction)</CODE>
+
+<BR>
+ Add an array of coordinates</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html#add(com.vividsolutions.jts.geom.Coordinate, boolean)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord,
+ boolean allowRepeated)</CODE>
+
+<BR>
+ Add a coordinate</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html#add(java.lang.Object, boolean)">add</A></B>(java.lang.Object obj,
+ boolean allowRepeated)</CODE>
+
+<BR>
+ Add a coordinate</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html#addAll(java.util.Collection, boolean)">addAll</A></B>(java.util.Collection coll,
+ boolean allowRepeated)</CODE>
+
+<BR>
+ Add an array of coordinates</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html#clone()">clone</A></B>()</CODE>
+
+<BR>
+ Returns a deep copy of this <tt>CoordinateList</tt> instance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html#closeRing()">closeRing</A></B>()</CODE>
+
+<BR>
+ Ensure this coordList is a ring, by adding the start point if necessary</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html#getCoordinate(int)">getCoordinate</A></B>(int i)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html#toCoordinateArray()">toCoordinateArray</A></B>()</CODE>
+
+<BR>
+ Returns the Coordinates in this collection.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.util.ArrayList"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.util.ArrayList</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>add, add, addAll, addAll, clear, contains, ensureCapacity, get, indexOf, isEmpty, lastIndexOf, remove, removeRange, set, size, toArray, toArray, trimToSize</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.util.AbstractList"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.util.AbstractList</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, hashCode, iterator, listIterator, listIterator, subList</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.util.AbstractCollection"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.util.AbstractCollection</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>containsAll, remove, removeAll, retainAll, toString</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>finalize, getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.util.List"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from interface java.util.List</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>containsAll, equals, hashCode, iterator, listIterator, listIterator, remove, removeAll, retainAll, subList</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CoordinateList()"><!-- --></A><H3>
+CoordinateList</H3>
+<PRE>
+public <B>CoordinateList</B>()</PRE>
+<DL>
+<DD>Constructs a new list without any coordinates
+<P>
+</DL>
+<HR>
+
+<A NAME="CoordinateList(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+CoordinateList</H3>
+<PRE>
+public <B>CoordinateList</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord)</PRE>
+<DL>
+<DD>The basic constructor for a CoordinateArray allows repeated points
+ (i.e produces a CoordinateList with exactly the same set of points)
+<P>
+<DT><B>Parameters:</B><DD><CODE>coord</CODE> - the initial coordinates</DL>
+<HR>
+
+<A NAME="CoordinateList(com.vividsolutions.jts.geom.Coordinate[], boolean)"><!-- --></A><H3>
+CoordinateList</H3>
+<PRE>
+public <B>CoordinateList</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord,
+ boolean allowRepeated)</PRE>
+<DL>
+<DD>Constructs a new list from an array of Coordinates,
+ allowing caller to specify if repeated points are to be removed.
+<P>
+<DT><B>Parameters:</B><DD><CODE>coord</CODE> - the array of coordinates to load into the list<DD><CODE>allowRepeated</CODE> - if <code>false</code>, repeated points are removed</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinate(int)"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>(int i)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geom.Coordinate[], boolean, boolean)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public boolean <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord,
+ boolean allowRepeated,
+ boolean direction)</PRE>
+<DL>
+<DD>Add an array of coordinates
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coord</CODE> - The coordinates<DD><CODE>allowRepeated</CODE> - if set to false, repeated coordinates are collapsed<DD><CODE>direction</CODE> - if false, the array is added in reverse order
+<DT><B>Returns:</B><DD>true (as by general collection contract)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geom.Coordinate[], boolean)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public boolean <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord,
+ boolean allowRepeated)</PRE>
+<DL>
+<DD>Add an array of coordinates
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coord</CODE> - The coordinates<DD><CODE>allowRepeated</CODE> - if set to false, repeated coordinates are collapsed
+<DT><B>Returns:</B><DD>true (as by general collection contract)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(java.lang.Object, boolean)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public boolean <B>add</B>(java.lang.Object obj,
+ boolean allowRepeated)</PRE>
+<DL>
+<DD>Add a coordinate
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>obj</CODE> - The coordinate to add<DD><CODE>allowRepeated</CODE> - if set to false, repeated coordinates are collapsed
+<DT><B>Returns:</B><DD>true (as by general collection contract)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geom.Coordinate, boolean)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord,
+ boolean allowRepeated)</PRE>
+<DL>
+<DD>Add a coordinate
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coord</CODE> - The coordinates<DD><CODE>allowRepeated</CODE> - if set to false, repeated coordinates are collapsed</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addAll(java.util.Collection, boolean)"><!-- --></A><H3>
+addAll</H3>
+<PRE>
+public boolean <B>addAll</B>(java.util.Collection coll,
+ boolean allowRepeated)</PRE>
+<DL>
+<DD>Add an array of coordinates
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coll</CODE> - The coordinates<DD><CODE>allowRepeated</CODE> - if set to false, repeated coordinates are collapsed
+<DT><B>Returns:</B><DD>true (as by general collection contract)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="closeRing()"><!-- --></A><H3>
+closeRing</H3>
+<PRE>
+public void <B>closeRing</B>()</PRE>
+<DL>
+<DD>Ensure this coordList is a ring, by adding the start point if necessary
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toCoordinateArray()"><!-- --></A><H3>
+toCoordinateArray</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>toCoordinateArray</B>()</PRE>
+<DL>
+<DD>Returns the Coordinates in this collection.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the coordinates</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clone()"><!-- --></A><H3>
+clone</H3>
+<PRE>
+public java.lang.Object <B>clone</B>()</PRE>
+<DL>
+<DD>Returns a deep copy of this <tt>CoordinateList</tt> instance.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a clone of this <tt>CoordinateList</tt> instance</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateList.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_java.util.AbstractList">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequence.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequence.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequence.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,637 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+CoordinateSequence
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.CoordinateSequence interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CoordinateSequence";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateSequence.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Interface CoordinateSequence</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD>java.lang.Cloneable</DD>
+</DL>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>, <A HREF="../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public interface <B>CoordinateSequence</B><DT>extends java.lang.Cloneable</DL>
+
+<P>
+The internal representation of a list of coordinates inside a Geometry.
+ <p>
+ There are some cases in which you might want Geometries to store their
+ points using something other than the JTS Coordinate class. For example, you
+ may want to experiment with another implementation, such as an array of x's
+ and an array of y's. Or you might want to use your own coordinate class, one
+ that supports extra attributes like M-values.
+ <p>
+ You can do this by implementing the CoordinateSequence and
+ CoordinateSequenceFactory interfaces. You would then create a
+ GeometryFactory parameterized by your CoordinateSequenceFactory, and use
+ this GeometryFactory to create new Geometries. All of these new Geometries
+ will use your CoordinateSequence implementation.
+ <p>
+ For an example, see the code for
+ <CODE>com.vividsolutions.jtsexample.geom.TwoArrayCoordinateSequenceExample</CODE>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>DefaultCoordinateSequenceFactory</CODE></A>,
+<CODE>TwoArrayCoordinateSequenceFactory</CODE></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#M">M</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#X">X</A></B></CODE>
+
+<BR>
+ Standard ordinate index values</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#Y">Y</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#Z">Z</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#clone()">clone</A></B>()</CODE>
+
+<BR>
+ Returns a deep copy of this collection.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#expandEnvelope(com.vividsolutions.jts.geom.Envelope)">expandEnvelope</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</CODE>
+
+<BR>
+ Expands the given <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A> to include the coordinates in the sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinate(int)">getCoordinate</A></B>(int i)</CODE>
+
+<BR>
+ Returns (possibly a copy of) the i'th coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinate(int, com.vividsolutions.jts.geom.Coordinate)">getCoordinate</A></B>(int index,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ Copies the i'th coordinate in the sequence to the supplied
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinateCopy(int)">getCoordinateCopy</A></B>(int i)</CODE>
+
+<BR>
+ Returns a copy of the i'th coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getDimension()">getDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension (number of ordinates in each coordinate)
+ for this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getOrdinate(int, int)">getOrdinate</A></B>(int index,
+ int ordinateIndex)</CODE>
+
+<BR>
+ Returns the ordinate of a coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getX(int)">getX</A></B>(int index)</CODE>
+
+<BR>
+ Returns ordinate X (0) of the specified coordinate.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getY(int)">getY</A></B>(int index)</CODE>
+
+<BR>
+ Returns ordinate Y (1) of the specified coordinate.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#setOrdinate(int, int, double)">setOrdinate</A></B>(int index,
+ int ordinateIndex,
+ double value)</CODE>
+
+<BR>
+ Sets the value for a given ordinate of a coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#size()">size</A></B>()</CODE>
+
+<BR>
+ Returns the number of coordinates in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#toCoordinateArray()">toCoordinateArray</A></B>()</CODE>
+
+<BR>
+ Returns (possibly copies of) the Coordinates in this collection.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="X"><!-- --></A><H3>
+X</H3>
+<PRE>
+public static final int <B>X</B></PRE>
+<DL>
+<DD>Standard ordinate index values
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geom.CoordinateSequence.X">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="Y"><!-- --></A><H3>
+Y</H3>
+<PRE>
+public static final int <B>Y</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geom.CoordinateSequence.Y">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="Z"><!-- --></A><H3>
+Z</H3>
+<PRE>
+public static final int <B>Z</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geom.CoordinateSequence.Z">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="M"><!-- --></A><H3>
+M</H3>
+<PRE>
+public static final int <B>M</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geom.CoordinateSequence.M">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getDimension()"><!-- --></A><H3>
+getDimension</H3>
+<PRE>
+public int <B>getDimension</B>()</PRE>
+<DL>
+<DD>Returns the dimension (number of ordinates in each coordinate)
+ for this sequence.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the dimension of the sequence.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate(int)"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>(int i)</PRE>
+<DL>
+<DD>Returns (possibly a copy of) the i'th coordinate in this sequence.
+ Whether or not the Coordinate returned is the actual underlying
+ Coordinate or merely a copy depends on the implementation.
+ <p>
+ Note that in the future the semantics of this method may change
+ to guarantee that the Coordinate returned is always a copy.
+ Callers should not to assume that they can modify a CoordinateSequence by
+ modifying the object returned by this method.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>i</CODE> - the index of the coordinate to retrieve
+<DT><B>Returns:</B><DD>the i'th coordinate in the sequence</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinateCopy(int)"><!-- --></A><H3>
+getCoordinateCopy</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinateCopy</B>(int i)</PRE>
+<DL>
+<DD>Returns a copy of the i'th coordinate in this sequence.
+ This method optimizes the situation where the caller is
+ going to make a copy anyway - if the implementation
+ has already created a new Coordinate object, no further copy is needed.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>i</CODE> - the index of the coordinate to retrieve
+<DT><B>Returns:</B><DD>a copy of the i'th coordinate in the sequence</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate(int, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public void <B>getCoordinate</B>(int index,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD>Copies the i'th coordinate in the sequence to the supplied
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>. Only the first two dimensions are copied.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> - the index of the coordinate to copy<DD><CODE>coord</CODE> - a <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> to receive the value</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getX(int)"><!-- --></A><H3>
+getX</H3>
+<PRE>
+public double <B>getX</B>(int index)</PRE>
+<DL>
+<DD>Returns ordinate X (0) of the specified coordinate.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> -
+<DT><B>Returns:</B><DD>the value of the X ordinate in the index'th coordinate</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getY(int)"><!-- --></A><H3>
+getY</H3>
+<PRE>
+public double <B>getY</B>(int index)</PRE>
+<DL>
+<DD>Returns ordinate Y (1) of the specified coordinate.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> -
+<DT><B>Returns:</B><DD>the value of the Y ordinate in the index'th coordinate</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOrdinate(int, int)"><!-- --></A><H3>
+getOrdinate</H3>
+<PRE>
+public double <B>getOrdinate</B>(int index,
+ int ordinateIndex)</PRE>
+<DL>
+<DD>Returns the ordinate of a coordinate in this sequence.
+ Ordinate indices 0 and 1 are assumed to be X and Y.
+ Ordinates indices greater than 1 have user-defined semantics
+ (for instance, they may contain other dimensions or measure values).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> - the coordinate index in the sequence<DD><CODE>ordinateIndex</CODE> - the ordinate index in the coordinate (in range [0, dimension-1])</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="size()"><!-- --></A><H3>
+size</H3>
+<PRE>
+public int <B>size</B>()</PRE>
+<DL>
+<DD>Returns the number of coordinates in this sequence.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the size of the sequence</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setOrdinate(int, int, double)"><!-- --></A><H3>
+setOrdinate</H3>
+<PRE>
+public void <B>setOrdinate</B>(int index,
+ int ordinateIndex,
+ double value)</PRE>
+<DL>
+<DD>Sets the value for a given ordinate of a coordinate in this sequence.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> - the coordinate index in the sequence<DD><CODE>ordinateIndex</CODE> - the ordinate index in the coordinate (in range [0, dimension-1])<DD><CODE>value</CODE> - the new ordinate value</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toCoordinateArray()"><!-- --></A><H3>
+toCoordinateArray</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>toCoordinateArray</B>()</PRE>
+<DL>
+<DD>Returns (possibly copies of) the Coordinates in this collection.
+ Whether or not the Coordinates returned are the actual underlying
+ Coordinates or merely copies depends on the implementation. Note that
+ if this implementation does not store its data as an array of Coordinates,
+ this method will incur a performance penalty because the array needs to
+ be built from scratch.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a array of coordinates containing the point values in this sequence</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="expandEnvelope(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+expandEnvelope</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>expandEnvelope</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</PRE>
+<DL>
+<DD>Expands the given <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A> to include the coordinates in the sequence.
+ Allows implementing classes to optimize access to coordinate values.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>env</CODE> - the envelope to expand
+<DT><B>Returns:</B><DD>a ref to the expanded envelope</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clone()"><!-- --></A><H3>
+clone</H3>
+<PRE>
+public java.lang.Object <B>clone</B>()</PRE>
+<DL>
+<DD>Returns a deep copy of this collection.
+ Called by Geometry#clone.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a copy of the coordinate sequence containing copies of all points</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateSequence.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequenceComparator.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequenceComparator.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequenceComparator.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,393 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+CoordinateSequenceComparator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.CoordinateSequenceComparator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CoordinateSequenceComparator";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequences.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateSequenceComparator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class CoordinateSequenceComparator</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.CoordinateSequenceComparator</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.util.Comparator</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>CoordinateSequenceComparator</B><DT>extends java.lang.Object<DT>implements java.util.Comparator</DL>
+
+<P>
+Compares two <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.
+ For sequences of the same dimension, the ordering is lexicographic.
+ Otherwise, lower dimensions are sorted before higher.
+ The dimensions compared can be limited; if this is done
+ ordinate dimensions above the limit will not be compared.
+ <p>
+ If different behaviour is required for comparing size, dimension, or
+ coordinate values, any or all methods can be overridden.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html#dimensionLimit">dimensionLimit</A></B></CODE>
+
+<BR>
+ The number of dimensions to test</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html#CoordinateSequenceComparator()">CoordinateSequenceComparator</A></B>()</CODE>
+
+<BR>
+ Creates a comparator which will test all dimensions.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html#CoordinateSequenceComparator(int)">CoordinateSequenceComparator</A></B>(int dimensionLimit)</CODE>
+
+<BR>
+ Creates a comparator which will test only the specified number of dimensions.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html#compare(double, double)">compare</A></B>(double a,
+ double b)</CODE>
+
+<BR>
+ Compare two <code>double</code>s, allowing for NaN values.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html#compare(java.lang.Object, java.lang.Object)">compare</A></B>(java.lang.Object o1,
+ java.lang.Object o2)</CODE>
+
+<BR>
+ Compares two <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s for relative order.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html#compareCoordinate(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.CoordinateSequence, int, int)">compareCoordinate</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> s1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> s2,
+ int i,
+ int dimension)</CODE>
+
+<BR>
+ Compares the same coordinate of two <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s
+ along the given number of dimensions.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.util.Comparator"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from interface java.util.Comparator</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="dimensionLimit"><!-- --></A><H3>
+dimensionLimit</H3>
+<PRE>
+protected int <B>dimensionLimit</B></PRE>
+<DL>
+<DD>The number of dimensions to test
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CoordinateSequenceComparator()"><!-- --></A><H3>
+CoordinateSequenceComparator</H3>
+<PRE>
+public <B>CoordinateSequenceComparator</B>()</PRE>
+<DL>
+<DD>Creates a comparator which will test all dimensions.
+<P>
+</DL>
+<HR>
+
+<A NAME="CoordinateSequenceComparator(int)"><!-- --></A><H3>
+CoordinateSequenceComparator</H3>
+<PRE>
+public <B>CoordinateSequenceComparator</B>(int dimensionLimit)</PRE>
+<DL>
+<DD>Creates a comparator which will test only the specified number of dimensions.
+<P>
+<DT><B>Parameters:</B><DD><CODE>dimensionLimit</CODE> - the number of dimensions to test</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="compare(double, double)"><!-- --></A><H3>
+compare</H3>
+<PRE>
+public static int <B>compare</B>(double a,
+ double b)</PRE>
+<DL>
+<DD>Compare two <code>double</code>s, allowing for NaN values.
+ NaN is treated as being less than any valid number.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>a</CODE> - a <code>double</code><DD><CODE>b</CODE> - a <code>double</code>
+<DT><B>Returns:</B><DD>-1, 0, or 1 depending on whether a is less than, equal to or greater than b</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compare(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
+compare</H3>
+<PRE>
+public int <B>compare</B>(java.lang.Object o1,
+ java.lang.Object o2)</PRE>
+<DL>
+<DD>Compares two <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s for relative order.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compare</CODE> in interface <CODE>java.util.Comparator</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o1</CODE> - a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A><DD><CODE>o2</CODE> - a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>
+<DT><B>Returns:</B><DD>-1, 0, or 1 depending on whether o1 is less than, equal to, or greater than o2</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareCoordinate(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.CoordinateSequence, int, int)"><!-- --></A><H3>
+compareCoordinate</H3>
+<PRE>
+protected int <B>compareCoordinate</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> s1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> s2,
+ int i,
+ int dimension)</PRE>
+<DL>
+<DD>Compares the same coordinate of two <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s
+ along the given number of dimensions.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>s1</CODE> - a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A><DD><CODE>s2</CODE> - a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A><DD><CODE>i</CODE> - the index of the coordinate to test<DD><CODE>dimension</CODE> - the number of dimensiosn to test
+<DT><B>Returns:</B><DD>-1, 0, or 1 depending on whether s1[i] is less than, equal to, or greater than s2[i]</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequences.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateSequenceComparator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequenceFactory.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequenceFactory.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequenceFactory.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,278 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+CoordinateSequenceFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.CoordinateSequenceFactory interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CoordinateSequenceFactory";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateSequenceFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Interface CoordinateSequenceFactory</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequenceFactory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom">DefaultCoordinateSequenceFactory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public interface <B>CoordinateSequenceFactory</B></DL>
+
+<P>
+A factory to create concrete instances of <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.
+ Used to configure <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>s
+ to provide specific kinds of CoordinateSequences.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.Coordinate[])">create</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</CODE>
+
+<BR>
+ Returns a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> based on the given array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.CoordinateSequence)">create</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordSeq)</CODE>
+
+<BR>
+ Creates a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> which is a copy
+ of the given <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(int, int)">create</A></B>(int size,
+ int dimension)</CODE>
+
+<BR>
+ Creates a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> of the specified size and dimension.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="create(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+create</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>create</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</PRE>
+<DL>
+<DD>Returns a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> based on the given array.
+ Whether the array is copied or simply referenced
+ is implementation-dependent.
+ This method must handle null arguments by creating an empty sequence.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - the coordinates</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(com.vividsolutions.jts.geom.CoordinateSequence)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>create</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordSeq)</PRE>
+<DL>
+<DD>Creates a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> which is a copy
+ of the given <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.
+ This method must handle null arguments by creating an empty sequence.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordSeq</CODE> - the coordinate sequence to copy</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(int, int)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>create</B>(int size,
+ int dimension)</PRE>
+<DL>
+<DD>Creates a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> of the specified size and dimension.
+ For this to be useful, the <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> implementation must
+ be mutable.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>size</CODE> - the number of coordinates in the sequence<DD><CODE>dimension</CODE> - the dimension of the coordinates in the sequence (if user-specifiable,
+ otherwise ignored)</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateSequenceFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequenceFilter.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequenceFilter.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequenceFilter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,291 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+CoordinateSequenceFilter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.CoordinateSequenceFilter interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CoordinateSequenceFilter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateSequenceFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Interface CoordinateSequenceFilter</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public interface <B>CoordinateSequenceFilter</B></DL>
+
+<P>
+Interface for classeswhich provide operations that
+ can be applied to the coordinates in a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.
+ A CoordinateSequence filter can either record information about each coordinate or
+ change the coordinate in some way. CoordinateSequence filters can be
+ used to implement such things as coordinate transformations, centroid and
+ envelope computation, and many other functions.
+ For maximum efficiency, the execution of filters can be short-circuited.
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> classes support the concept of applying a
+ <code>CoordinateSequenceFilter</code> to each
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s they contain.
+ <p>
+ <code>CoordinateSequenceFilter</code> is
+ an example of the Gang-of-Four Visitor pattern.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)"><CODE>Geometry.apply(CoordinateSequenceFilter)</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html#filter(com.vividsolutions.jts.geom.CoordinateSequence, int)">filter</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq,
+ int i)</CODE>
+
+<BR>
+ Performs an operation on a coordinate in a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html#isDone()">isDone</A></B>()</CODE>
+
+<BR>
+ Reports whether the application of this filter can be terminated.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html#isGeometryChanged()">isGeometryChanged</A></B>()</CODE>
+
+<BR>
+ Reports whether the execution of this filter
+ has modified the coordinates of the geometry.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="filter(com.vividsolutions.jts.geom.CoordinateSequence, int)"><!-- --></A><H3>
+filter</H3>
+<PRE>
+public void <B>filter</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq,
+ int i)</PRE>
+<DL>
+<DD>Performs an operation on a coordinate in a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>seq</CODE> - the <code>CoordinateSequence</code> to which the filter is applied<DD><CODE>i</CODE> - the index of the coordinate to apply the filter to</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isDone()"><!-- --></A><H3>
+isDone</H3>
+<PRE>
+public boolean <B>isDone</B>()</PRE>
+<DL>
+<DD>Reports whether the application of this filter can be terminated.
+ Once this method returns <tt>false</tt>, it should
+ continue to return <tt>false</tt> on every subsequent call.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the application of this filter can be terminated.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isGeometryChanged()"><!-- --></A><H3>
+isGeometryChanged</H3>
+<PRE>
+public boolean <B>isGeometryChanged</B>()</PRE>
+<DL>
+<DD>Reports whether the execution of this filter
+ has modified the coordinates of the geometry.
+ If so, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChanged()"><CODE>Geometry.geometryChanged()</CODE></A> will be executed.
+ <p>
+ Most filters can simply return a constant value reflecting
+ whether they are able to change the coordinates.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if this filter has changed the coordinates of the geometry</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateSequenceFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequences.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequences.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/CoordinateSequences.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+CoordinateSequences
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.CoordinateSequences class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CoordinateSequences";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateSequences.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class CoordinateSequences</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.CoordinateSequences</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>CoordinateSequences</B><DT>extends java.lang.Object</DL>
+
+<P>
+Utility functions for manipulating <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequences.html#CoordinateSequences()">CoordinateSequences</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequences.html#reverse(com.vividsolutions.jts.geom.CoordinateSequence)">reverse</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq)</CODE>
+
+<BR>
+ Reverses the coordinates in a sequence in-place.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequences.html#swap(com.vividsolutions.jts.geom.CoordinateSequence, int, int)">swap</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq,
+ int i,
+ int j)</CODE>
+
+<BR>
+ Swaps two coordinates in a sequence.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CoordinateSequences()"><!-- --></A><H3>
+CoordinateSequences</H3>
+<PRE>
+public <B>CoordinateSequences</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="reverse(com.vividsolutions.jts.geom.CoordinateSequence)"><!-- --></A><H3>
+reverse</H3>
+<PRE>
+public static void <B>reverse</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq)</PRE>
+<DL>
+<DD>Reverses the coordinates in a sequence in-place.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="swap(com.vividsolutions.jts.geom.CoordinateSequence, int, int)"><!-- --></A><H3>
+swap</H3>
+<PRE>
+public static void <B>swap</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq,
+ int i,
+ int j)</PRE>
+<DL>
+<DD>Swaps two coordinates in a sequence.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>seq</CODE> - <DD><CODE>i</CODE> - <DD><CODE>j</CODE> - </DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateSequences.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,353 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+DefaultCoordinateSequenceFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.DefaultCoordinateSequenceFactory class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="DefaultCoordinateSequenceFactory";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequences.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DefaultCoordinateSequenceFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class DefaultCoordinateSequenceFactory</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.DefaultCoordinateSequenceFactory</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A>, java.io.Serializable</DD>
+</DL>
+<HR>
+<B>Deprecated.</B> <I>no longer used</I>
+<P>
+<DL>
+<DT>public class <B>DefaultCoordinateSequenceFactory</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A>, java.io.Serializable</DL>
+
+<P>
+Creates CoordinateSequences represented as an array of <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.DefaultCoordinateSequenceFactory">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html#DefaultCoordinateSequenceFactory()">DefaultCoordinateSequenceFactory</A></B>()</CODE>
+
+<BR>
+ <B>Deprecated.</B> </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.Coordinate[])">create</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</CODE>
+
+<BR>
+ <B>Deprecated.</B> Returns a DefaultCoordinateSequence based on the given array (the array is
+ not copied).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.CoordinateSequence)">create</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordSeq)</CODE>
+
+<BR>
+ <B>Deprecated.</B> Creates a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> which is a copy
+ of the given <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html#create(int, int)">create</A></B>(int size,
+ int dimension)</CODE>
+
+<BR>
+ <B>Deprecated.</B> Creates a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> of the specified size and dimension.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom">DefaultCoordinateSequenceFactory</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html#instance()">instance</A></B>()</CODE>
+
+<BR>
+ <B>Deprecated.</B> Returns the singleton instance of DefaultCoordinateSequenceFactory</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="DefaultCoordinateSequenceFactory()"><!-- --></A><H3>
+DefaultCoordinateSequenceFactory</H3>
+<PRE>
+public <B>DefaultCoordinateSequenceFactory</B>()</PRE>
+<DL>
+<DD><B>Deprecated.</B> </DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="instance()"><!-- --></A><H3>
+instance</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom">DefaultCoordinateSequenceFactory</A> <B>instance</B>()</PRE>
+<DL>
+<DD><B>Deprecated.</B> <DD>Returns the singleton instance of DefaultCoordinateSequenceFactory
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+create</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>create</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <DD>Returns a DefaultCoordinateSequence based on the given array (the array is
+ not copied).
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.Coordinate[])">create</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - the coordinates, which may not be null nor contain null
+ elements</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(com.vividsolutions.jts.geom.CoordinateSequence)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>create</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordSeq)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <DD><B>Description copied from interface: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></B></DD>
+<DD>Creates a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> which is a copy
+ of the given <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.
+ This method must handle null arguments by creating an empty sequence.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.CoordinateSequence)">create</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordSeq</CODE> - the coordinate sequence to copy<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.CoordinateSequence)"><CODE>CoordinateSequenceFactory.create(com.vividsolutions.jts.geom.CoordinateSequence)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(int, int)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>create</B>(int size,
+ int dimension)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <DD><B>Description copied from interface: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></B></DD>
+<DD>Creates a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> of the specified size and dimension.
+ For this to be useful, the <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> implementation must
+ be mutable.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(int, int)">create</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>size</CODE> - the number of coordinates in the sequence<DD><CODE>dimension</CODE> - the dimension of the coordinates in the sequence (if user-specifiable,
+ otherwise ignored)<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(int, int)"><CODE>CoordinateSequenceFactory.create(int, int)</CODE></A></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequences.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DefaultCoordinateSequenceFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Dimension.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Dimension.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Dimension.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,428 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+Dimension
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.Dimension class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Dimension";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Dimension.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class Dimension</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.Dimension</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Dimension</B><DT>extends java.lang.Object</DL>
+
+<P>
+Constants representing the dimensions of a point, a curve and a surface.
+ Also, constants representing the dimensions of the empty geometry and
+ non-empty geometries, and a wildcard dimension meaning "any dimension".
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Dimension.html#A">A</A></B></CODE>
+
+<BR>
+ Dimension value of a surface (2).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Dimension.html#DONTCARE">DONTCARE</A></B></CODE>
+
+<BR>
+ Dimension value for any dimension (= {FALSE, TRUE}).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Dimension.html#FALSE">FALSE</A></B></CODE>
+
+<BR>
+ Dimension value of the empty geometry (-1).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Dimension.html#L">L</A></B></CODE>
+
+<BR>
+ Dimension value of a curve (1).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Dimension.html#P">P</A></B></CODE>
+
+<BR>
+ Dimension value of a point (0).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Dimension.html#TRUE">TRUE</A></B></CODE>
+
+<BR>
+ Dimension value of non-empty geometries (= {P, L, A}).</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Dimension.html#Dimension()">Dimension</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static char</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Dimension.html#toDimensionSymbol(int)">toDimensionSymbol</A></B>(int dimensionValue)</CODE>
+
+<BR>
+ Converts the dimension value to a dimension symbol, for example, <code>TRUE => 'T'</code>
+ .</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Dimension.html#toDimensionValue(char)">toDimensionValue</A></B>(char dimensionSymbol)</CODE>
+
+<BR>
+ Converts the dimension symbol to a dimension value, for example, <code>'*' => DONTCARE</code>
+ .</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="P"><!-- --></A><H3>
+P</H3>
+<PRE>
+public static final int <B>P</B></PRE>
+<DL>
+<DD>Dimension value of a point (0).
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geom.Dimension.P">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="L"><!-- --></A><H3>
+L</H3>
+<PRE>
+public static final int <B>L</B></PRE>
+<DL>
+<DD>Dimension value of a curve (1).
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geom.Dimension.L">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="A"><!-- --></A><H3>
+A</H3>
+<PRE>
+public static final int <B>A</B></PRE>
+<DL>
+<DD>Dimension value of a surface (2).
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geom.Dimension.A">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="FALSE"><!-- --></A><H3>
+FALSE</H3>
+<PRE>
+public static final int <B>FALSE</B></PRE>
+<DL>
+<DD>Dimension value of the empty geometry (-1).
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geom.Dimension.FALSE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TRUE"><!-- --></A><H3>
+TRUE</H3>
+<PRE>
+public static final int <B>TRUE</B></PRE>
+<DL>
+<DD>Dimension value of non-empty geometries (= {P, L, A}).
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geom.Dimension.TRUE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DONTCARE"><!-- --></A><H3>
+DONTCARE</H3>
+<PRE>
+public static final int <B>DONTCARE</B></PRE>
+<DL>
+<DD>Dimension value for any dimension (= {FALSE, TRUE}).
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geom.Dimension.DONTCARE">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Dimension()"><!-- --></A><H3>
+Dimension</H3>
+<PRE>
+public <B>Dimension</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="toDimensionSymbol(int)"><!-- --></A><H3>
+toDimensionSymbol</H3>
+<PRE>
+public static char <B>toDimensionSymbol</B>(int dimensionValue)</PRE>
+<DL>
+<DD>Converts the dimension value to a dimension symbol, for example, <code>TRUE => 'T'</code>
+ .
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>dimensionValue</CODE> - a number that can be stored in the <code>IntersectionMatrix</code>
+ . Possible values are <code>{TRUE, FALSE, DONTCARE, 0, 1, 2}</code>.
+<DT><B>Returns:</B><DD>a character for use in the string representation of
+ an <code>IntersectionMatrix</code>. Possible values are <code>{T, F, * , 0, 1, 2}</code>
+ .</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toDimensionValue(char)"><!-- --></A><H3>
+toDimensionValue</H3>
+<PRE>
+public static int <B>toDimensionValue</B>(char dimensionSymbol)</PRE>
+<DL>
+<DD>Converts the dimension symbol to a dimension value, for example, <code>'*' => DONTCARE</code>
+ .
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>dimensionSymbol</CODE> - a character for use in the string representation of
+ an <code>IntersectionMatrix</code>. Possible values are <code>{T, F, * , 0, 1, 2}</code>
+ .
+<DT><B>Returns:</B><DD>a number that can be stored in the <code>IntersectionMatrix</code>
+ . Possible values are <code>{TRUE, FALSE, DONTCARE, 0, 1, 2}</code>.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Dimension.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Envelope.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Envelope.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Envelope.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,1276 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+Envelope
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.Envelope class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Envelope";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Envelope.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class Envelope</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.Envelope</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>Envelope</B><DT>extends java.lang.Object<DT>implements java.io.Serializable</DL>
+
+<P>
+Defines a rectangular region of the 2D coordinate plane.
+ It is often used to represent the bounding box of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>,
+ e.g. the minimum and maximum x and y values of the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.
+ <p>
+ Note that Envelopes support infinite or half-infinite regions, by using the values of
+ <code>Double.POSITIVE_INFINITY</code> and <code>Double.NEGATIVE_INFINITY</code>.
+ <p>
+ When Envelope objects are created or initialized,
+ the supplies extent values are automatically sorted into the correct order.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.Envelope">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#Envelope()">Envelope</A></B>()</CODE>
+
+<BR>
+ Creates a null <code>Envelope</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#Envelope(com.vividsolutions.jts.geom.Coordinate)">Envelope</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ Creates an <code>Envelope</code> for a region defined by a single Coordinate.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#Envelope(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">Envelope</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</CODE>
+
+<BR>
+ Creates an <code>Envelope</code> for a region defined by two Coordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#Envelope(double, double, double, double)">Envelope</A></B>(double x1,
+ double x2,
+ double y1,
+ double y2)</CODE>
+
+<BR>
+ Creates an <code>Envelope</code> for a region defined by maximum and minimum values.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#Envelope(com.vividsolutions.jts.geom.Envelope)">Envelope</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</CODE>
+
+<BR>
+ Create an <code>Envelope</code> from an existing Envelope.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#centre()">centre</A></B>()</CODE>
+
+<BR>
+ Computes the coordinate of the centre of this envelope (as long as it is non-null</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#contains(com.vividsolutions.jts.geom.Coordinate)">contains</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ Returns <code>true</code> if the given point lies in or on the envelope.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#contains(double, double)">contains</A></B>(double x,
+ double y)</CODE>
+
+<BR>
+ Returns <code>true</code> if the given point lies in or on the envelope.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#contains(com.vividsolutions.jts.geom.Envelope)">contains</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> other)</CODE>
+
+<BR>
+ Returns <code>true</code> if the <code>Envelope other</code>
+ lies wholely inside this <code>Envelope</code> (inclusive of the boundary).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#distance(com.vividsolutions.jts.geom.Envelope)">distance</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</CODE>
+
+<BR>
+ Computes the distance between this and another
+ <code>Envelope</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object other)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#expandBy(double)">expandBy</A></B>(double distance)</CODE>
+
+<BR>
+ Expands this envelope by a given distance in all directions.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#expandBy(double, double)">expandBy</A></B>(double deltaX,
+ double deltaY)</CODE>
+
+<BR>
+ Expands this envelope by a given distance in all directions.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#expandToInclude(com.vividsolutions.jts.geom.Coordinate)">expandToInclude</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ Enlarges the boundary of the <code>Envelope</code> so that it contains
+ (x,y).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#expandToInclude(double, double)">expandToInclude</A></B>(double x,
+ double y)</CODE>
+
+<BR>
+ Enlarges the boundary of the <code>Envelope</code> so that it contains
+ (x,y).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#expandToInclude(com.vividsolutions.jts.geom.Envelope)">expandToInclude</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> other)</CODE>
+
+<BR>
+ Enlarges the boundary of the <code>Envelope</code> so that it contains
+ <code>other</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#getHeight()">getHeight</A></B>()</CODE>
+
+<BR>
+ Returns the difference between the maximum and minimum y values.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#getMaxX()">getMaxX</A></B>()</CODE>
+
+<BR>
+ Returns the <code>Envelope</code>s maximum x-value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#getMaxY()">getMaxY</A></B>()</CODE>
+
+<BR>
+ Returns the <code>Envelope</code>s maximum y-value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#getMinX()">getMinX</A></B>()</CODE>
+
+<BR>
+ Returns the <code>Envelope</code>s minimum x-value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#getMinY()">getMinY</A></B>()</CODE>
+
+<BR>
+ Returns the <code>Envelope</code>s minimum y-value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#getWidth()">getWidth</A></B>()</CODE>
+
+<BR>
+ Returns the difference between the maximum and minimum x values.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#hashCode()">hashCode</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#init()">init</A></B>()</CODE>
+
+<BR>
+ Initialize to a null <code>Envelope</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#init(com.vividsolutions.jts.geom.Coordinate)">init</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ Initialize an <code>Envelope</code> to a region defined by a single Coordinate.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#init(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">init</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</CODE>
+
+<BR>
+ Initialize an <code>Envelope</code> to a region defined by two Coordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#init(double, double, double, double)">init</A></B>(double x1,
+ double x2,
+ double y1,
+ double y2)</CODE>
+
+<BR>
+ Initialize an <code>Envelope</code> for a region defined by maximum and minimum values.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#init(com.vividsolutions.jts.geom.Envelope)">init</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</CODE>
+
+<BR>
+ Initialize an <code>Envelope</code> from an existing Envelope.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#intersection(com.vividsolutions.jts.geom.Envelope)">intersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</CODE>
+
+<BR>
+ Computes the intersection of two <CODE>Envelopes</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#intersects(com.vividsolutions.jts.geom.Coordinate)">intersects</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ Check if the point <code>p</code>
+ overlaps (lies inside) the region of this <code>Envelope</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#intersects(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">intersects</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q)</CODE>
+
+<BR>
+ Test the point q to see whether it intersects the Envelope defined by p1-p2</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#intersects(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">intersects</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q2)</CODE>
+
+<BR>
+ Test the envelope defined by p1-p2 for intersection
+ with the envelope defined by q1-q2</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#intersects(double, double)">intersects</A></B>(double x,
+ double y)</CODE>
+
+<BR>
+ Check if the point <code>(x, y)</code>
+ overlaps (lies inside) the region of this <code>Envelope</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#intersects(com.vividsolutions.jts.geom.Envelope)">intersects</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> other)</CODE>
+
+<BR>
+ Check if the region defined by <code>other</code>
+ overlaps (intersects) the region of this <code>Envelope</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#isNull()">isNull</A></B>()</CODE>
+
+<BR>
+ Returns <code>true</code> if this <code>Envelope</code> is a "null"
+ envelope.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#overlaps(com.vividsolutions.jts.geom.Coordinate)">overlaps</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>Use #intersects instead.</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#overlaps(double, double)">overlaps</A></B>(double x,
+ double y)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>Use #intersects instead.</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#overlaps(com.vividsolutions.jts.geom.Envelope)">overlaps</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> other)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>Use #intersects instead. In the future, #overlaps may be
+ changed to be a true overlap check; that is, whether the intersection is
+ two-dimensional.</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#setToNull()">setToNull</A></B>()</CODE>
+
+<BR>
+ Makes this <code>Envelope</code> a "null" envelope, that is, the envelope
+ of the empty geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html#translate(double, double)">translate</A></B>(double transX,
+ double transY)</CODE>
+
+<BR>
+ Translates this envelope by given amounts in the X and Y direction.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Envelope()"><!-- --></A><H3>
+Envelope</H3>
+<PRE>
+public <B>Envelope</B>()</PRE>
+<DL>
+<DD>Creates a null <code>Envelope</code>.
+<P>
+</DL>
+<HR>
+
+<A NAME="Envelope(double, double, double, double)"><!-- --></A><H3>
+Envelope</H3>
+<PRE>
+public <B>Envelope</B>(double x1,
+ double x2,
+ double y1,
+ double y2)</PRE>
+<DL>
+<DD>Creates an <code>Envelope</code> for a region defined by maximum and minimum values.
+<P>
+<DT><B>Parameters:</B><DD><CODE>x1</CODE> - the first x-value<DD><CODE>x2</CODE> - the second x-value<DD><CODE>y1</CODE> - the first y-value<DD><CODE>y2</CODE> - the second y-value</DL>
+<HR>
+
+<A NAME="Envelope(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+Envelope</H3>
+<PRE>
+public <B>Envelope</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</PRE>
+<DL>
+<DD>Creates an <code>Envelope</code> for a region defined by two Coordinates.
+<P>
+<DT><B>Parameters:</B><DD><CODE>p1</CODE> - the first Coordinate<DD><CODE>p2</CODE> - the second Coordinate</DL>
+<HR>
+
+<A NAME="Envelope(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+Envelope</H3>
+<PRE>
+public <B>Envelope</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD>Creates an <code>Envelope</code> for a region defined by a single Coordinate.
+<P>
+</DL>
+<HR>
+
+<A NAME="Envelope(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+Envelope</H3>
+<PRE>
+public <B>Envelope</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</PRE>
+<DL>
+<DD>Create an <code>Envelope</code> from an existing Envelope.
+<P>
+<DT><B>Parameters:</B><DD><CODE>env</CODE> - the Envelope to initialize from</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="hashCode()"><!-- --></A><H3>
+hashCode</H3>
+<PRE>
+public int <B>hashCode</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="intersects(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+intersects</H3>
+<PRE>
+public static boolean <B>intersects</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q)</PRE>
+<DL>
+<DD>Test the point q to see whether it intersects the Envelope defined by p1-p2
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p1</CODE> - one extremal point of the envelope<DD><CODE>p2</CODE> - another extremal point of the envelope<DD><CODE>q</CODE> - the point to test for intersection
+<DT><B>Returns:</B><DD><code>true</code> if q intersects the envelope p1-p2</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="intersects(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+intersects</H3>
+<PRE>
+public static boolean <B>intersects</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> q2)</PRE>
+<DL>
+<DD>Test the envelope defined by p1-p2 for intersection
+ with the envelope defined by q1-q2
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p1</CODE> - one extremal point of the envelope P<DD><CODE>p2</CODE> - another extremal point of the envelope P<DD><CODE>q1</CODE> - one extremal point of the envelope Q<DD><CODE>q2</CODE> - another extremal point of the envelope Q
+<DT><B>Returns:</B><DD><code>true</code> if Q intersects P</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="init()"><!-- --></A><H3>
+init</H3>
+<PRE>
+public void <B>init</B>()</PRE>
+<DL>
+<DD>Initialize to a null <code>Envelope</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="init(double, double, double, double)"><!-- --></A><H3>
+init</H3>
+<PRE>
+public void <B>init</B>(double x1,
+ double x2,
+ double y1,
+ double y2)</PRE>
+<DL>
+<DD>Initialize an <code>Envelope</code> for a region defined by maximum and minimum values.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>x1</CODE> - the first x-value<DD><CODE>x2</CODE> - the second x-value<DD><CODE>y1</CODE> - the first y-value<DD><CODE>y2</CODE> - the second y-value</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="init(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+init</H3>
+<PRE>
+public void <B>init</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</PRE>
+<DL>
+<DD>Initialize an <code>Envelope</code> to a region defined by two Coordinates.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p1</CODE> - the first Coordinate<DD><CODE>p2</CODE> - the second Coordinate</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="init(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+init</H3>
+<PRE>
+public void <B>init</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD>Initialize an <code>Envelope</code> to a region defined by a single Coordinate.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="init(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+init</H3>
+<PRE>
+public void <B>init</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</PRE>
+<DL>
+<DD>Initialize an <code>Envelope</code> from an existing Envelope.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>env</CODE> - the Envelope to initialize from</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setToNull()"><!-- --></A><H3>
+setToNull</H3>
+<PRE>
+public void <B>setToNull</B>()</PRE>
+<DL>
+<DD>Makes this <code>Envelope</code> a "null" envelope, that is, the envelope
+ of the empty geometry.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isNull()"><!-- --></A><H3>
+isNull</H3>
+<PRE>
+public boolean <B>isNull</B>()</PRE>
+<DL>
+<DD>Returns <code>true</code> if this <code>Envelope</code> is a "null"
+ envelope.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Envelope</code> is uninitialized
+ or is the envelope of the empty geometry.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getWidth()"><!-- --></A><H3>
+getWidth</H3>
+<PRE>
+public double <B>getWidth</B>()</PRE>
+<DL>
+<DD>Returns the difference between the maximum and minimum x values.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>max x - min x, or 0 if this is a null <code>Envelope</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getHeight()"><!-- --></A><H3>
+getHeight</H3>
+<PRE>
+public double <B>getHeight</B>()</PRE>
+<DL>
+<DD>Returns the difference between the maximum and minimum y values.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>max y - min y, or 0 if this is a null <code>Envelope</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMinX()"><!-- --></A><H3>
+getMinX</H3>
+<PRE>
+public double <B>getMinX</B>()</PRE>
+<DL>
+<DD>Returns the <code>Envelope</code>s minimum x-value. min x > max x
+ indicates that this is a null <code>Envelope</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the minimum x-coordinate</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMaxX()"><!-- --></A><H3>
+getMaxX</H3>
+<PRE>
+public double <B>getMaxX</B>()</PRE>
+<DL>
+<DD>Returns the <code>Envelope</code>s maximum x-value. min x > max x
+ indicates that this is a null <code>Envelope</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the maximum x-coordinate</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMinY()"><!-- --></A><H3>
+getMinY</H3>
+<PRE>
+public double <B>getMinY</B>()</PRE>
+<DL>
+<DD>Returns the <code>Envelope</code>s minimum y-value. min y > max y
+ indicates that this is a null <code>Envelope</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the minimum y-coordinate</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMaxY()"><!-- --></A><H3>
+getMaxY</H3>
+<PRE>
+public double <B>getMaxY</B>()</PRE>
+<DL>
+<DD>Returns the <code>Envelope</code>s maximum y-value. min y > max y
+ indicates that this is a null <code>Envelope</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the maximum y-coordinate</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="expandToInclude(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+expandToInclude</H3>
+<PRE>
+public void <B>expandToInclude</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD>Enlarges the boundary of the <code>Envelope</code> so that it contains
+ (x,y). Does nothing if (x,y) is already on or within the boundaries.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="expandBy(double)"><!-- --></A><H3>
+expandBy</H3>
+<PRE>
+public void <B>expandBy</B>(double distance)</PRE>
+<DL>
+<DD>Expands this envelope by a given distance in all directions.
+ Both positive and negative distances are supported.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>distance</CODE> - the distance to expand the envelope
+<DT><B>Returns:</B><DD>this envelope</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="expandBy(double, double)"><!-- --></A><H3>
+expandBy</H3>
+<PRE>
+public void <B>expandBy</B>(double deltaX,
+ double deltaY)</PRE>
+<DL>
+<DD>Expands this envelope by a given distance in all directions.
+ Both positive and negative distances are supported.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>deltaX</CODE> - the distance to expand the envelope along the the X axis<DD><CODE>deltaY</CODE> - the distance to expand the envelope along the the Y axis</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="expandToInclude(double, double)"><!-- --></A><H3>
+expandToInclude</H3>
+<PRE>
+public void <B>expandToInclude</B>(double x,
+ double y)</PRE>
+<DL>
+<DD>Enlarges the boundary of the <code>Envelope</code> so that it contains
+ (x,y). Does nothing if (x,y) is already on or within the boundaries.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>x</CODE> - the value to lower the minimum x to or to raise the maximum x to<DD><CODE>y</CODE> - the value to lower the minimum y to or to raise the maximum y to</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="expandToInclude(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+expandToInclude</H3>
+<PRE>
+public void <B>expandToInclude</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> other)</PRE>
+<DL>
+<DD>Enlarges the boundary of the <code>Envelope</code> so that it contains
+ <code>other</code>. Does nothing if <code>other</code> is wholly on or
+ within the boundaries.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Envelope</code> to merge with</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="translate(double, double)"><!-- --></A><H3>
+translate</H3>
+<PRE>
+public void <B>translate</B>(double transX,
+ double transY)</PRE>
+<DL>
+<DD>Translates this envelope by given amounts in the X and Y direction.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>transX</CODE> - the amount to translate along the X axis<DD><CODE>transY</CODE> - the amount to translate along the Y axis</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="centre()"><!-- --></A><H3>
+centre</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>centre</B>()</PRE>
+<DL>
+<DD>Computes the coordinate of the centre of this envelope (as long as it is non-null
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the centre coordinate of this envelope
+ <code>null</code> if the envelope is null</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="intersection(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+intersection</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>intersection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</PRE>
+<DL>
+<DD>Computes the intersection of two <CODE>Envelopes</CODE>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>env</CODE> - the envelope to intersect with
+<DT><B>Returns:</B><DD>a new Envelope representing the intersection of the envelopes (this will be
+ the null envelope if either argument is null, or they do not intersect</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contains(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+contains</H3>
+<PRE>
+public boolean <B>contains</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD>Returns <code>true</code> if the given point lies in or on the envelope.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p</CODE> - the point which this <code>Envelope</code> is
+ being checked for containing
+<DT><B>Returns:</B><DD><code>true</code> if the point lies in the interior or
+ on the boundary of this <code>Envelope</code>.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contains(double, double)"><!-- --></A><H3>
+contains</H3>
+<PRE>
+public boolean <B>contains</B>(double x,
+ double y)</PRE>
+<DL>
+<DD>Returns <code>true</code> if the given point lies in or on the envelope.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>x</CODE> - the x-coordinate of the point which this <code>Envelope</code> is
+ being checked for containing<DD><CODE>y</CODE> - the y-coordinate of the point which this <code>Envelope</code> is
+ being checked for containing
+<DT><B>Returns:</B><DD><code>true</code> if <code>(x, y)</code> lies in the interior or
+ on the boundary of this <code>Envelope</code>.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="intersects(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+intersects</H3>
+<PRE>
+public boolean <B>intersects</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> other)</PRE>
+<DL>
+<DD>Check if the region defined by <code>other</code>
+ overlaps (intersects) the region of this <code>Envelope</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Envelope</code> which this <code>Envelope</code> is
+ being checked for overlapping
+<DT><B>Returns:</B><DD><code>true</code> if the <code>Envelope</code>s overlap</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="overlaps(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+overlaps</H3>
+<PRE>
+public boolean <B>overlaps</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> other)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>Use #intersects instead. In the future, #overlaps may be
+ changed to be a true overlap check; that is, whether the intersection is
+ two-dimensional.</I>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="intersects(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+intersects</H3>
+<PRE>
+public boolean <B>intersects</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD>Check if the point <code>p</code>
+ overlaps (lies inside) the region of this <code>Envelope</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the point overlaps this <code>Envelope</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="overlaps(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+overlaps</H3>
+<PRE>
+public boolean <B>overlaps</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>Use #intersects instead.</I>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="intersects(double, double)"><!-- --></A><H3>
+intersects</H3>
+<PRE>
+public boolean <B>intersects</B>(double x,
+ double y)</PRE>
+<DL>
+<DD>Check if the point <code>(x, y)</code>
+ overlaps (lies inside) the region of this <code>Envelope</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>x</CODE> - the x-ordinate of the point<DD><CODE>y</CODE> - the y-ordinate of the point
+<DT><B>Returns:</B><DD><code>true</code> if the point overlaps this <code>Envelope</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="overlaps(double, double)"><!-- --></A><H3>
+overlaps</H3>
+<PRE>
+public boolean <B>overlaps</B>(double x,
+ double y)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>Use #intersects instead.</I>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contains(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+contains</H3>
+<PRE>
+public boolean <B>contains</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> other)</PRE>
+<DL>
+<DD>Returns <code>true</code> if the <code>Envelope other</code>
+ lies wholely inside this <code>Envelope</code> (inclusive of the boundary).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Envelope</code> which this <code>Envelope</code> is
+ being checked for containing
+<DT><B>Returns:</B><DD><code>true</code> if <code>other</code>
+ is contained in this <code>Envelope</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="distance(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+distance</H3>
+<PRE>
+public double <B>distance</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</PRE>
+<DL>
+<DD>Computes the distance between this and another
+ <code>Envelope</code>.
+ The distance between overlapping Envelopes is 0. Otherwise, the
+ distance is the Euclidean distance between the closest points.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</B>(java.lang.Object other)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Envelope.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Geometry.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Geometry.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Geometry.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,2636 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+Geometry
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.Geometry class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Geometry";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Geometry.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class Geometry</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.Geometry</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, java.lang.Comparable, java.io.Serializable</DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public abstract class <B>Geometry</B><DT>extends java.lang.Object<DT>implements java.lang.Cloneable, java.lang.Comparable, java.io.Serializable</DL>
+
+<P>
+The base class for all geometric objects.
+ <P>
+
+ <H3>Binary Predicates</H3>
+ Because it is not clear at this time
+ what semantics for spatial
+ analysis methods involving <code>GeometryCollection</code>s would be useful,
+ <code>GeometryCollection</code>s are not supported as arguments to binary
+ predicates (other than <code>convexHull</code>) or the <code>relate</code>
+ method.
+
+ <H3>Set-Theoretic Methods</H3>
+
+ The spatial analysis methods will
+ return the most specific class possible to represent the result. If the
+ result is homogeneous, a <code>Point</code>, <code>LineString</code>, or
+ <code>Polygon</code> will be returned if the result contains a single
+ element; otherwise, a <code>MultiPoint</code>, <code>MultiLineString</code>,
+ or <code>MultiPolygon</code> will be returned. If the result is
+ heterogeneous a <code>GeometryCollection</code> will be returned. <P>
+
+ Because it is not clear at this time what semantics for set-theoretic
+ methods involving <code>GeometryCollection</code>s would be useful,
+ <code>GeometryCollections</code>
+ are not supported as arguments to the set-theoretic methods.
+
+ <H4>Representation of Computed Geometries </H4>
+
+ The SFS states that the result
+ of a set-theoretic method is the "point-set" result of the usual
+ set-theoretic definition of the operation (SFS 3.2.21.1). However, there are
+ sometimes many ways of representing a point set as a <code>Geometry</code>.
+ <P>
+
+ The SFS does not specify an unambiguous representation of a given point set
+ returned from a spatial analysis method. One goal of JTS is to make this
+ specification precise and unambiguous. JTS will use a canonical form for
+ <code>Geometry</code>s returned from spatial analysis methods. The canonical
+ form is a <code>Geometry</code> which is simple and noded:
+ <UL>
+ <LI> Simple means that the Geometry returned will be simple according to
+ the JTS definition of <code>isSimple</code>.
+ <LI> Noded applies only to overlays involving <code>LineString</code>s. It
+ means that all intersection points on <code>LineString</code>s will be
+ present as endpoints of <code>LineString</code>s in the result.
+ </UL>
+ This definition implies that non-simple geometries which are arguments to
+ spatial analysis methods must be subjected to a line-dissolve process to
+ ensure that the results are simple.
+
+ <H4> Constructed Points And The Precision Model </H4>
+
+ The results computed by the set-theoretic methods may
+ contain constructed points which are not present in the input <code>Geometry</code>
+ s. These new points arise from intersections between line segments in the
+ edges of the input <code>Geometry</code>s. In the general case it is not
+ possible to represent constructed points exactly. This is due to the fact
+ that the coordinates of an intersection point may contain twice as many bits
+ of precision as the coordinates of the input line segments. In order to
+ represent these constructed points explicitly, JTS must truncate them to fit
+ the <code>PrecisionModel</code>. <P>
+
+ Unfortunately, truncating coordinates moves them slightly. Line segments
+ which would not be coincident in the exact result may become coincident in
+ the truncated representation. This in turn leads to "topology collapses" --
+ situations where a computed element has a lower dimension than it would in
+ the exact result. <P>
+
+ When JTS detects topology collapses during the computation of spatial
+ analysis methods, it will throw an exception. If possible the exception will
+ report the location of the collapse. <P>
+
+ #equals(Object) and #hashCode are not overridden, so that when two
+ topologically equal Geometries are added to HashMaps and HashSets, they
+ remain distinct. This behaviour is desired in many cases.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.Geometry">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#envelope">envelope</A></B></CODE>
+
+<BR>
+ The bounding box of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#factory">factory</A></B></CODE>
+
+<BR>
+ The <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A> used to create this Geometry</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#SRID">SRID</A></B></CODE>
+
+<BR>
+ The ID of the Spatial Reference System used by this <code>Geometry</code></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#Geometry(com.vividsolutions.jts.geom.GeometryFactory)">Geometry</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</CODE>
+
+<BR>
+ Creates a new <tt>Geometry</tt> via the specified GeometryFactory.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation with or on this <code>Geometry</code>'s
+ coordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation on the coordinates in this <code>Geometry</code>'s
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation with or on this Geometry and its
+ component Geometry's.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.GeometryFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation with or on this <code>Geometry</code> and its
+ subelement <code>Geometry</code>s (if any).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double)">buffer</A></B>(double distance)</CODE>
+
+<BR>
+ Computes a buffer area around this geometry having the given
+ width.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int)">buffer</A></B>(double distance,
+ int quadrantSegments)</CODE>
+
+<BR>
+ Computes a buffer area around this geometry having the given
+ width and with a specified accuracy of approximation for circular arcs.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int, int)">buffer</A></B>(double distance,
+ int quadrantSegments,
+ int endCapStyle)</CODE>
+
+<BR>
+ Computes a buffer area around this geometry having the given
+ width and with a specified accuracy of approximation for circular arcs,
+ and using a specified end cap style.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#checkNotGeometryCollection(com.vividsolutions.jts.geom.Geometry)">checkNotGeometryCollection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Throws an exception if <code>g</code>'s class is <code>GeometryCollection</code>
+ .</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#clone()">clone</A></B>()</CODE>
+
+<BR>
+ Creates and returns a full copy of this <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> object
+ (including all coordinates contained by it).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compare(java.util.Collection, java.util.Collection)">compare</A></B>(java.util.Collection a,
+ java.util.Collection b)</CODE>
+
+<BR>
+ Returns the first non-zero result of <code>compareTo</code> encountered as
+ the two <code>Collection</code>s are iterated over.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object)">compareTo</A></B>(java.lang.Object o)</CODE>
+
+<BR>
+ Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareTo</A></B>(java.lang.Object o,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A> comp)</CODE>
+
+<BR>
+ Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code>,
+ using the given <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom"><CODE>CoordinateSequenceComparator</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected abstract int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareToSameClass(java.lang.Object)">compareToSameClass</A></B>(java.lang.Object o)</CODE>
+
+<BR>
+ Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> having the same class.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected abstract int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareToSameClass</A></B>(java.lang.Object o,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A> comp)</CODE>
+
+<BR>
+ Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> of the same class.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected abstract <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#computeEnvelopeInternal()">computeEnvelopeInternal</A></B>()</CODE>
+
+<BR>
+ Returns the minimum and maximum x and y values in this <code>Geometry</code>
+ , or a null <code>Envelope</code> if this <code>Geometry</code> is empty.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#contains(com.vividsolutions.jts.geom.Geometry)">contains</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Returns <code>true</code> if this geometry contains the
+ specified geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#convexHull()">convexHull</A></B>()</CODE>
+
+<BR>
+ Computes the smallest convex <code>Polygon</code> that contains all the
+ points in the <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#coveredBy(com.vividsolutions.jts.geom.Geometry)">coveredBy</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Returns <code>true</code> if this geometry is covered by the
+ specified geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#covers(com.vividsolutions.jts.geom.Geometry)">covers</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Returns <code>true</code> if this geometry covers the
+ specified geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#crosses(com.vividsolutions.jts.geom.Geometry)">crosses</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Returns <code>true</code> if this geometry crosses the
+ specified geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#difference(com.vividsolutions.jts.geom.Geometry)">difference</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other)</CODE>
+
+<BR>
+ Computes a <code>Geometry</code> representing the points making up this
+ <code>Geometry</code> that do not make up <code>other</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#disjoint(com.vividsolutions.jts.geom.Geometry)">disjoint</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Returns <code>true</code> if this geometry is disjoint to the specified geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#distance(com.vividsolutions.jts.geom.Geometry)">distance</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Returns the minimum distance between this <code>Geometry</code>
+ and the <code>Geometry</code> g</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, double)">equal</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ double tolerance)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equals(com.vividsolutions.jts.geom.Geometry)">equals</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Returns <code>true</code> if this geometry is equal to the
+ specified geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry)">equalsExact</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other)</CODE>
+
+<BR>
+ Returns true if the two <code>Geometry</code>s are exactly equal.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</CODE>
+
+<BR>
+ Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChanged()">geometryChanged</A></B>()</CODE>
+
+<BR>
+ Notifies this Geometry that its Coordinates have been changed by an external
+ party (using a CoordinateFilter, for example).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChangedAction()">geometryChangedAction</A></B>()</CODE>
+
+<BR>
+ Notifies this Geometry that its Coordinates have been changed by an external
+ party.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getArea()">getArea</A></B>()</CODE>
+
+<BR>
+ Returns the area of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundary()">getBoundary</A></B>()</CODE>
+
+<BR>
+ Returns the boundary, or an empty geometry of appropriate dimension
+ if this <code>Geometry</code> is empty.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundaryDimension()">getBoundaryDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>s inherent boundary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCentroid()">getCentroid</A></B>()</CODE>
+
+<BR>
+ Computes the centroid of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ Returns a vertex of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCoordinates()">getCoordinates</A></B>()</CODE>
+
+<BR>
+ Returns this <code>Geometry</code> s vertices.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getDimension()">getDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelope()">getEnvelope</A></B>()</CODE>
+
+<BR>
+ Returns this <code>Geometry</code>s bounding box.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelopeInternal()">getEnvelopeInternal</A></B>()</CODE>
+
+<BR>
+ Returns the minimum and maximum x and y values in this <code>Geometry</code>
+ , or a null <code>Envelope</code> if this <code>Geometry</code> is empty.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getFactory()">getFactory</A></B>()</CODE>
+
+<BR>
+ Gets the factory which contains the context in which this geometry was created.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getGeometryN(int)">getGeometryN</A></B>(int n)</CODE>
+
+<BR>
+ Returns an element <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> from a <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A>
+ (or <code>this</code>, if the geometry is not a collection).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getGeometryType()">getGeometryType</A></B>()</CODE>
+
+<BR>
+ Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getInteriorPoint()">getInteriorPoint</A></B>()</CODE>
+
+<BR>
+ Computes an interior point of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getLength()">getLength</A></B>()</CODE>
+
+<BR>
+ Returns the length of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getNumGeometries()">getNumGeometries</A></B>()</CODE>
+
+<BR>
+ Returns the number of <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s in a <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A>
+ (or 1, if the geometry is not a collection).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getNumPoints()">getNumPoints</A></B>()</CODE>
+
+<BR>
+ Returns the count of this <code>Geometry</code>s vertices.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getPrecisionModel()">getPrecisionModel</A></B>()</CODE>
+
+<BR>
+ Returns the <code>PrecisionModel</code> used by the <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getSRID()">getSRID</A></B>()</CODE>
+
+<BR>
+ Returns the ID of the Spatial Reference System used by the <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getUserData()">getUserData</A></B>()</CODE>
+
+<BR>
+ Gets the user data object for this geometry, if any.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNonEmptyElements(com.vividsolutions.jts.geom.Geometry[])">hasNonEmptyElements</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>[] geometries)</CODE>
+
+<BR>
+ Returns true if the array contains any non-empty <code>Geometry</code>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNullElements(java.lang.Object[])">hasNullElements</A></B>(java.lang.Object[] array)</CODE>
+
+<BR>
+ Returns true if the array contains any <code>null</code> elements.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersection(com.vividsolutions.jts.geom.Geometry)">intersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other)</CODE>
+
+<BR>
+ Computes a <code>Geometry</code> representing the points shared by this
+ <code>Geometry</code> and <code>other</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersects(com.vividsolutions.jts.geom.Geometry)">intersects</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Returns <code>true</code> if this geometry intersects the specified geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isEmpty()">isEmpty</A></B>()</CODE>
+
+<BR>
+ Returns whether or not the set of points in this <code>Geometry</code> is
+ empty.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isEquivalentClass(com.vividsolutions.jts.geom.Geometry)">isEquivalentClass</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other)</CODE>
+
+<BR>
+ Returns whether the two <code>Geometry</code>s are equal, from the point
+ of view of the <code>equalsExact</code> method.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isRectangle()">isRectangle</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isSimple()">isSimple</A></B>()</CODE>
+
+<BR>
+ Tests whether this <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is simple.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isValid()">isValid</A></B>()</CODE>
+
+<BR>
+ Tests the validity of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isWithinDistance(com.vividsolutions.jts.geom.Geometry, double)">isWithinDistance</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom,
+ double distance)</CODE>
+
+<BR>
+ Tests whether the distance from this <code>Geometry</code>
+ to another is less than or equal to a specified value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#normalize()">normalize</A></B>()</CODE>
+
+<BR>
+ Converts this <code>Geometry</code> to <b>normal form</b> (or <b>
+ canonical form</b> ).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#overlaps(com.vividsolutions.jts.geom.Geometry)">overlaps</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Returns <code>true</code> if this geometry overlaps the
+ specified geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry)">relate</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Returns the DE-9IM <A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><CODE>IntersectionMatrix</CODE></A> for the two <code>Geometry</code>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry, java.lang.String)">relate</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ java.lang.String intersectionPattern)</CODE>
+
+<BR>
+ Returns <code>true</code> if the elements in the DE-9IM
+ <A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><CODE>IntersectionMatrix</CODE></A> for the two <code>Geometry</code>s match the elements in <code>intersectionPattern</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setSRID(int)">setSRID</A></B>(int SRID)</CODE>
+
+<BR>
+ Sets the ID of the Spatial Reference System used by the <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setUserData(java.lang.Object)">setUserData</A></B>(java.lang.Object userData)</CODE>
+
+<BR>
+ A simple scheme for applications to add their own custom data to a Geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#symDifference(com.vividsolutions.jts.geom.Geometry)">symDifference</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other)</CODE>
+
+<BR>
+ Returns a set combining the points in this <code>Geometry</code> not in
+ <code>other</code>, and the points in <code>other</code> not in this
+ <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toText()">toText</A></B>()</CODE>
+
+<BR>
+ Returns the Well-known Text representation of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#touches(com.vividsolutions.jts.geom.Geometry)">touches</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Returns <code>true</code> if this geometry touches the
+ specified geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#union(com.vividsolutions.jts.geom.Geometry)">union</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other)</CODE>
+
+<BR>
+ Computes a <code>Geometry</code> representing all the points in this <code>Geometry</code>
+ and <code>other</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#within(com.vividsolutions.jts.geom.Geometry)">within</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Returns <code>true</code> if this geometry is within the
+ specified geometry.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="envelope"><!-- --></A><H3>
+envelope</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>envelope</B></PRE>
+<DL>
+<DD>The bounding box of this <code>Geometry</code>.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="factory"><!-- --></A><H3>
+factory</H3>
+<PRE>
+protected final <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> <B>factory</B></PRE>
+<DL>
+<DD>The <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A> used to create this Geometry
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="SRID"><!-- --></A><H3>
+SRID</H3>
+<PRE>
+protected int <B>SRID</B></PRE>
+<DL>
+<DD>The ID of the Spatial Reference System used by this <code>Geometry</code>
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Geometry(com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+Geometry</H3>
+<PRE>
+public <B>Geometry</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</PRE>
+<DL>
+<DD>Creates a new <tt>Geometry</tt> via the specified GeometryFactory.
+<P>
+<DT><B>Parameters:</B><DD><CODE>factory</CODE> - </DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getGeometryType()"><!-- --></A><H3>
+getGeometryType</H3>
+<PRE>
+public abstract java.lang.String <B>getGeometryType</B>()</PRE>
+<DL>
+<DD>Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the name of this <code>Geometry</code>s most specific <code>com.vividsolutions.jts.geom</code>
+ interface</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasNonEmptyElements(com.vividsolutions.jts.geom.Geometry[])"><!-- --></A><H3>
+hasNonEmptyElements</H3>
+<PRE>
+protected static boolean <B>hasNonEmptyElements</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>[] geometries)</PRE>
+<DL>
+<DD>Returns true if the array contains any non-empty <code>Geometry</code>s.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geometries</CODE> - an array of <code>Geometry</code>s; no elements may be
+ <code>null</code>
+<DT><B>Returns:</B><DD><code>true</code> if any of the <code>Geometry</code>s
+ <code>isEmpty</code> methods return <code>false</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasNullElements(java.lang.Object[])"><!-- --></A><H3>
+hasNullElements</H3>
+<PRE>
+protected static boolean <B>hasNullElements</B>(java.lang.Object[] array)</PRE>
+<DL>
+<DD>Returns true if the array contains any <code>null</code> elements.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>array</CODE> - an array to validate
+<DT><B>Returns:</B><DD><code>true</code> if any of <code>array</code>s elements are
+ <code>null</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSRID()"><!-- --></A><H3>
+getSRID</H3>
+<PRE>
+public int <B>getSRID</B>()</PRE>
+<DL>
+<DD>Returns the ID of the Spatial Reference System used by the <code>Geometry</code>.
+ <P>
+
+ JTS supports Spatial Reference System information in the simple way
+ defined in the SFS. A Spatial Reference System ID (SRID) is present in
+ each <code>Geometry</code> object. <code>Geometry</code> provides basic
+ accessor operations for this field, but no others. The SRID is represented
+ as an integer.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the ID of the coordinate space in which the <code>Geometry</code>
+ is defined.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setSRID(int)"><!-- --></A><H3>
+setSRID</H3>
+<PRE>
+public void <B>setSRID</B>(int SRID)</PRE>
+<DL>
+<DD>Sets the ID of the Spatial Reference System used by the <code>Geometry</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFactory()"><!-- --></A><H3>
+getFactory</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> <B>getFactory</B>()</PRE>
+<DL>
+<DD>Gets the factory which contains the context in which this geometry was created.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the factory for this geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getUserData()"><!-- --></A><H3>
+getUserData</H3>
+<PRE>
+public java.lang.Object <B>getUserData</B>()</PRE>
+<DL>
+<DD>Gets the user data object for this geometry, if any.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the user data object, or <code>null</code> if none set</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNumGeometries()"><!-- --></A><H3>
+getNumGeometries</H3>
+<PRE>
+public int <B>getNumGeometries</B>()</PRE>
+<DL>
+<DD>Returns the number of <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s in a <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A>
+ (or 1, if the geometry is not a collection).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of geometries contained in this geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGeometryN(int)"><!-- --></A><H3>
+getGeometryN</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getGeometryN</B>(int n)</PRE>
+<DL>
+<DD>Returns an element <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> from a <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A>
+ (or <code>this</code>, if the geometry is not a collection).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>n</CODE> - the index of the geometry element
+<DT><B>Returns:</B><DD>the n'th geometry contained in this geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setUserData(java.lang.Object)"><!-- --></A><H3>
+setUserData</H3>
+<PRE>
+public void <B>setUserData</B>(java.lang.Object userData)</PRE>
+<DL>
+<DD>A simple scheme for applications to add their own custom data to a Geometry.
+ An example use might be to add an object representing a Coordinate Reference System.
+ <p>
+ Note that user data objects are not present in geometries created by
+ construction methods.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>userData</CODE> - an object, the semantics for which are defined by the
+ application using this Geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPrecisionModel()"><!-- --></A><H3>
+getPrecisionModel</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> <B>getPrecisionModel</B>()</PRE>
+<DL>
+<DD>Returns the <code>PrecisionModel</code> used by the <code>Geometry</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the specification of the grid of allowable points, for this
+ <code>Geometry</code> and all other <code>Geometry</code>s</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public abstract <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD>Returns a vertex of this <code>Geometry</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> which is a vertex of this <code>Geometry</code>.
+ Returns <code>null</code> if this Geometry is empty</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinates()"><!-- --></A><H3>
+getCoordinates</H3>
+<PRE>
+public abstract <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>getCoordinates</B>()</PRE>
+<DL>
+<DD>Returns this <code>Geometry</code> s vertices. If you modify the coordinates
+ in this array, be sure to call #geometryChanged afterwards.
+ The <code>Geometry</code>s contained by composite <code>Geometry</code>s
+ must be Geometry's; that is, they must implement <code>getCoordinates</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the vertices of this <code>Geometry</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNumPoints()"><!-- --></A><H3>
+getNumPoints</H3>
+<PRE>
+public abstract int <B>getNumPoints</B>()</PRE>
+<DL>
+<DD>Returns the count of this <code>Geometry</code>s vertices. The <code>Geometry</code>
+ s contained by composite <code>Geometry</code>s must be
+ Geometry's; that is, they must implement <code>getNumPoints</code>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of vertices in this <code>Geometry</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSimple()"><!-- --></A><H3>
+isSimple</H3>
+<PRE>
+public boolean <B>isSimple</B>()</PRE>
+<DL>
+<DD>Tests whether this <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is simple.
+ In general, the SFS specification of simplicity
+ follows the rule:
+ <UL>
+ <LI> A Geometry is simple iff the only self-intersections are at
+ boundary points.
+ </UL>
+ Simplicity is defined for each <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> subclass as follows:
+ <ul>
+ <li>Valid polygonal geometries are simple by definition, so
+ <code>isSimple</code> trivially returns true.
+ <li>Linear geometries are simple iff they do not self-intersect at points
+ other than boundary points.
+ <li>Zero-dimensional geometries (points) are simple iff they have no
+ repeated points.
+ <li>Empty <code>Geometry</code>s are always simple
+ <ul>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Geometry</code> has any points of
+ self-tangency, self-intersection or other anomalous points<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isValid()"><CODE>isValid()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isValid()"><!-- --></A><H3>
+isValid</H3>
+<PRE>
+public boolean <B>isValid</B>()</PRE>
+<DL>
+<DD>Tests the validity of this <code>Geometry</code>.
+ Subclasses provide their own definition of "valid".
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Geometry</code> is valid<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid"><CODE>IsValidOp</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEmpty()"><!-- --></A><H3>
+isEmpty</H3>
+<PRE>
+public abstract boolean <B>isEmpty</B>()</PRE>
+<DL>
+<DD>Returns whether or not the set of points in this <code>Geometry</code> is
+ empty.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Geometry</code> equals the empty
+ geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="distance(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+distance</H3>
+<PRE>
+public double <B>distance</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Returns the minimum distance between this <code>Geometry</code>
+ and the <code>Geometry</code> g
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - the <code>Geometry</code> from which to compute the distance</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isWithinDistance(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+isWithinDistance</H3>
+<PRE>
+public boolean <B>isWithinDistance</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom,
+ double distance)</PRE>
+<DL>
+<DD>Tests whether the distance from this <code>Geometry</code>
+ to another is less than or equal to a specified value.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - the Geometry to check the distance to<DD><CODE>distance</CODE> - the distance value to compare
+<DT><B>Returns:</B><DD><code>true</code> if the geometries are less than <code>distance</code> apart.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isRectangle()"><!-- --></A><H3>
+isRectangle</H3>
+<PRE>
+public boolean <B>isRectangle</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getArea()"><!-- --></A><H3>
+getArea</H3>
+<PRE>
+public double <B>getArea</B>()</PRE>
+<DL>
+<DD>Returns the area of this <code>Geometry</code>.
+ Areal Geometries have a non-zero area.
+ They override this function to compute the area.
+ Others return 0.0
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the area of the Geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLength()"><!-- --></A><H3>
+getLength</H3>
+<PRE>
+public double <B>getLength</B>()</PRE>
+<DL>
+<DD>Returns the length of this <code>Geometry</code>.
+ Linear geometries return their length.
+ Areal geometries return their perimeter.
+ They override this function to compute the area.
+ Others return 0.0
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the length of the Geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCentroid()"><!-- --></A><H3>
+getCentroid</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A> <B>getCentroid</B>()</PRE>
+<DL>
+<DD>Computes the centroid of this <code>Geometry</code>.
+ The centroid
+ is equal to the centroid of the set of component Geometries of highest
+ dimension (since the lower-dimension geometries contribute zero
+ "weight" to the centroid)
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><CODE>Point</CODE></A> which is the centroid of this Geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInteriorPoint()"><!-- --></A><H3>
+getInteriorPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A> <B>getInteriorPoint</B>()</PRE>
+<DL>
+<DD>Computes an interior point of this <code>Geometry</code>.
+ An interior point is guaranteed to lie in the interior of the Geometry,
+ if it possible to calculate such a point exactly. Otherwise,
+ the point may lie on the boundary of the geometry.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><CODE>Point</CODE></A> which is in the interior of this Geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDimension()"><!-- --></A><H3>
+getDimension</H3>
+<PRE>
+public abstract int <B>getDimension</B>()</PRE>
+<DL>
+<DD>Returns the dimension of this <code>Geometry</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the dimension of the class implementing this interface, whether
+ or not this object is the empty geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundary()"><!-- --></A><H3>
+getBoundary</H3>
+<PRE>
+public abstract <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getBoundary</B>()</PRE>
+<DL>
+<DD>Returns the boundary, or an empty geometry of appropriate dimension
+ if this <code>Geometry</code> is empty.
+ (In the case of zero-dimensional geometries, '
+ an empty GeometryCollection is returned.)
+ For a discussion of this function, see the OpenGIS Simple
+ Features Specification. As stated in SFS Section 2.1.13.1, "the boundary
+ of a Geometry is a set of Geometries of the next lower dimension."
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the closure of the combinatorial boundary of this <code>Geometry</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundaryDimension()"><!-- --></A><H3>
+getBoundaryDimension</H3>
+<PRE>
+public abstract int <B>getBoundaryDimension</B>()</PRE>
+<DL>
+<DD>Returns the dimension of this <code>Geometry</code>s inherent boundary.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the dimension of the boundary of the class implementing this
+ interface, whether or not this object is the empty geometry. Returns
+ <code>Dimension.FALSE</code> if the boundary is the empty geometry.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEnvelope()"><!-- --></A><H3>
+getEnvelope</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getEnvelope</B>()</PRE>
+<DL>
+<DD>Returns this <code>Geometry</code>s bounding box. If this <code>Geometry</code>
+ is the empty geometry, returns an empty <code>Point</code>. If the <code>Geometry</code>
+ is a point, returns a non-empty <code>Point</code>. Otherwise, returns a
+ <code>Polygon</code> whose points are (minx, miny), (maxx, miny), (maxx,
+ maxy), (minx, maxy), (minx, miny).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an empty <code>Point</code> (for empty <code>Geometry</code>s), a
+ <code>Point</code> (for <code>Point</code>s) or a <code>Polygon</code>
+ (in all other cases)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEnvelopeInternal()"><!-- --></A><H3>
+getEnvelopeInternal</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>getEnvelopeInternal</B>()</PRE>
+<DL>
+<DD>Returns the minimum and maximum x and y values in this <code>Geometry</code>
+ , or a null <code>Envelope</code> if this <code>Geometry</code> is empty.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>this <code>Geometry</code>s bounding box; if the <code>Geometry</code>
+ is empty, <code>Envelope#isNull</code> will return <code>true</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="geometryChanged()"><!-- --></A><H3>
+geometryChanged</H3>
+<PRE>
+public void <B>geometryChanged</B>()</PRE>
+<DL>
+<DD>Notifies this Geometry that its Coordinates have been changed by an external
+ party (using a CoordinateFilter, for example). The Geometry will flush
+ and/or update any information it has cached (such as its <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A> ).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="geometryChangedAction()"><!-- --></A><H3>
+geometryChangedAction</H3>
+<PRE>
+protected void <B>geometryChangedAction</B>()</PRE>
+<DL>
+<DD>Notifies this Geometry that its Coordinates have been changed by an external
+ party. When #geometryChanged is called, this method will be called for
+ this Geometry and its component Geometries.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)"><CODE>apply(GeometryComponentFilter)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="disjoint(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+disjoint</H3>
+<PRE>
+public boolean <B>disjoint</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Returns <code>true</code> if this geometry is disjoint to the specified geometry.
+ <p>
+ The <code>disjoint</code> predicate has the following equivalent definitions:
+ <ul>
+ <li>The two geometries have no point in common
+ <li>The DE-9IM Intersection Matrix for the two geometries is FF*FF****
+ <li>! <code>g.intersects(this)</code>
+ (<code>disjoint</code> is the inverse of <code>intersects</code>)
+ </ul>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if the two <code>Geometry</code>s are
+ disjoint<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersects(com.vividsolutions.jts.geom.Geometry)"><CODE>intersects(com.vividsolutions.jts.geom.Geometry)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="touches(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+touches</H3>
+<PRE>
+public boolean <B>touches</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Returns <code>true</code> if this geometry touches the
+ specified geometry.
+ <p>
+ The <code>touches</code> predicate has the following equivalent definitions:
+ <ul>
+ <li>The geometries have at least one point in common, but their interiors do not intersect.
+ <li>The DE-9IM Intersection Matrix for the two geometries is
+ FT*******, F**T***** or F***T****
+ </ul>
+ If both geometries have dimension 0, this predicate returns <code>false</code>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if the two <code>Geometry</code>s touch;
+ Returns <code>false</code> if both <code>Geometry</code>s are points</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="intersects(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+intersects</H3>
+<PRE>
+public boolean <B>intersects</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Returns <code>true</code> if this geometry intersects the specified geometry.
+ <p>
+ The <code>intersects</code> predicate has the following equivalent definitions:
+ <ul>
+ <li>The two geometries have at least one point in common
+ <li>! <code>g.disjoint(this)</code>
+ (<code>intersects</code> is the inverse of <code>disjoint</code>)
+ </ul>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if the two <code>Geometry</code>s intersect<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#disjoint(com.vividsolutions.jts.geom.Geometry)"><CODE>disjoint(com.vividsolutions.jts.geom.Geometry)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="crosses(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+crosses</H3>
+<PRE>
+public boolean <B>crosses</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Returns <code>true</code> if this geometry crosses the
+ specified geometry.
+ <p>
+ The <code>crosses</code> predicate has the following equivalent definitions:
+ <ul>
+ <li>The geometries have some but not all interior points in common.
+ <li>The DE-9IM Intersection Matrix for the two geometries is
+ <ul>
+ <li>T*T****** (for P/L, P/A, and L/A situations)
+ <li>T*****T** (for L/P, L/A, and A/L situations)
+ <li>0******** (for L/L situations)
+ </ul>
+ </ul>
+ For any other combination of dimensions this predicate returns <code>false</code>.
+ <p>
+ The SFS defined this predicate only for P/L, P/A, L/L, and L/A situations.
+ JTS extends the definition to apply to L/P, A/P and A/L situations as well.
+ This makes the relation symmetric.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if the two <code>Geometry</code>s cross.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="within(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+within</H3>
+<PRE>
+public boolean <B>within</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Returns <code>true</code> if this geometry is within the
+ specified geometry.
+ <p>
+ The <code>within</code> predicate has the following equivalent definitions:
+ <ul>
+ <li>Every point of this geometry is a point of the other geometry,
+ and the interiors of the two geometries have at least one point in common.
+ <li>The DE-9IM Intersection Matrix for the two geometries is T*F**F***
+ <li><code>g.contains(this)</code>
+ (<code>within</code> is the inverse of <code>contains</code>)
+ </ul>
+ An implication of the definition is that
+ "The boundary of a Polygon is not within the Polygon".
+ In other words, if a geometry G is a subset of
+ the points in the boundary of a polygon P, <code>G.within(P) = false</code>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Geometry</code> is within
+ <code>other</code><DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#contains(com.vividsolutions.jts.geom.Geometry)"><CODE>contains(com.vividsolutions.jts.geom.Geometry)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contains(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+contains</H3>
+<PRE>
+public boolean <B>contains</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Returns <code>true</code> if this geometry contains the
+ specified geometry.
+ <p>
+ The <code>contains</code> predicate has the following equivalent definitions:
+ <ul>
+ <li>Every point of the other geometry is a point of this geometry,
+ and the interiors of the two geometries have at least one point in common.
+ <li>The DE-9IM Intersection Matrix for the two geometries is <code>T*****FF*</code>
+ <li><code>g.within(this)</code>
+ (<code>contains</code> is the inverse of <code>within</code>)
+ </ul>
+ An implication of the definition is that "Polygons do not
+ contain their boundary". In other words, if a geometry G is a subset of
+ the points in the boundary of a polygon P, <code>P.contains(G) = false</code>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Geometry</code> contains <code>g</code><DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#within(com.vividsolutions.jts.geom.Geometry)"><CODE>within(com.vividsolutions.jts.geom.Geometry)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="overlaps(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+overlaps</H3>
+<PRE>
+public boolean <B>overlaps</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Returns <code>true</code> if this geometry overlaps the
+ specified geometry.
+ <p>
+ The <code>overlaps</code> predicate has the following equivalent definitions:
+ <ul>
+ <li>The geometries have some but not all points in common,
+ they have the same dimension,
+ and the intersection of the interiors of the two geometries has
+ the same dimension as the geometries themselves.
+ <li>The DE-9IM Intersection Matrix for the two geometries is
+ <code>T*T***T**</code> (for two points or two surfaces)
+ or <code>1*T***T**</code> (for two curves)
+ </ul>
+ If the geometries are of different dimension this predicate returns <code>false</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if the two <code>Geometry</code>s overlap.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="covers(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+covers</H3>
+<PRE>
+public boolean <B>covers</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Returns <code>true</code> if this geometry covers the
+ specified geometry.
+ <p>
+ The <code>covers</code> predicate has the following equivalent definitions:
+ <ul>
+ <li>Every point of the other geometry is a point of this geometry.
+ <li>The DE-9IM Intersection Matrix for the two geometries is
+ <code>T*****FF*</code>
+ or <code>*T****FF*</code>
+ or <code>***T**FF*</code>
+ or <code>****T*FF*</code>
+ <li><code>g.coveredBy(this)</code>
+ (<code>covers</code> is the inverse of <code>coverdBy</code>)
+ </ul>
+ Note the difference between <code>covers</code> and <code>contains</code>
+ - <code>covers</code> is a more inclusive relation.
+ In particular, unlike <code>contains</code> it does not distinguish between
+ points in the boundary and in the interior of geometries.
+ For most situations, <code>covers</code> should be used in preference to <code>contains</code>.
+ As an added benefit, <code>covers</code> is more amenable to optimization,
+ and hence should be more performant.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Geometry</code> covers <code>g</code><DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#contains(com.vividsolutions.jts.geom.Geometry)"><CODE>contains(com.vividsolutions.jts.geom.Geometry)</CODE></A>,
+<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#coveredBy(com.vividsolutions.jts.geom.Geometry)"><CODE>coveredBy(com.vividsolutions.jts.geom.Geometry)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="coveredBy(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+coveredBy</H3>
+<PRE>
+public boolean <B>coveredBy</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Returns <code>true</code> if this geometry is covered by the
+ specified geometry.
+ <p>
+ The <code>coveredBy</code> predicate has the following equivalent definitions:
+ <ul>
+ <li>Every point of this geometry is a point of the other geometry.
+ <li>The DE-9IM Intersection Matrix for the two geometries is
+ <code>T*F**F***</code>
+ or <code>*TF**F***</code>
+ or <code>**FT*F***</code>
+ or <code>**F*TF***</code>
+ <li><code>g.covers(this)</code>
+ (<code>coveredBy</code> is the inverse of <code>covers</code>)
+ </ul>
+ Note the difference between <code>coveredBy</code> and <code>within</code>
+ - <code>coveredBy</code> is a more inclusive relation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Geometry</code> is covered by <code>g</code><DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#within(com.vividsolutions.jts.geom.Geometry)"><CODE>within(com.vividsolutions.jts.geom.Geometry)</CODE></A>,
+<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#covers(com.vividsolutions.jts.geom.Geometry)"><CODE>covers(com.vividsolutions.jts.geom.Geometry)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="relate(com.vividsolutions.jts.geom.Geometry, java.lang.String)"><!-- --></A><H3>
+relate</H3>
+<PRE>
+public boolean <B>relate</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ java.lang.String intersectionPattern)</PRE>
+<DL>
+<DD>Returns <code>true</code> if the elements in the DE-9IM
+ <A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><CODE>IntersectionMatrix</CODE></A> for the two <code>Geometry</code>s match the elements in <code>intersectionPattern</code>.
+ The pattern is a 9-character string, with symbols drawn from the following set:
+ <UL>
+ <LI> 0 (dimension 0)
+ <LI> 1 (dimension 1)
+ <LI> 2 (dimension 2)
+ <LI> T ( matches 0, 1 or 2)
+ <LI> F ( matches FALSE)
+ <LI> * ( matches any value)
+ </UL>
+ For more information on the DE-9IM, see the <i>OpenGIS Simple Features
+ Specification</i>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>intersectionPattern</CODE> - the pattern against which to check the
+ intersection matrix for the two <code>Geometry</code>s
+<DT><B>Returns:</B><DD><code>true</code> if the DE-9IM intersection
+ matrix for the two <code>Geometry</code>s match <code>intersectionPattern</code><DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><CODE>IntersectionMatrix</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="relate(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+relate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> <B>relate</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Returns the DE-9IM <A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><CODE>IntersectionMatrix</CODE></A> for the two <code>Geometry</code>s.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an <A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><CODE>IntersectionMatrix</CODE></A> describing the intersections of the interiors,
+ boundaries and exteriors of the two <code>Geometry</code>s</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Returns <code>true</code> if this geometry is equal to the
+ specified geometry.
+ <p>
+ The <code>equals</code> predicate has the following equivalent definitions:
+ <ul>
+ <li>The two geometries have at least one point in common,
+ and no point of either geometry lies in the exterior of the other geometry.
+ <li>The DE-9IM Intersection Matrix for the two geometries is T*F**FFF*
+ </ul>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the two <code>Geometry</code>s are equal</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toText()"><!-- --></A><H3>
+toText</H3>
+<PRE>
+public java.lang.String <B>toText</B>()</PRE>
+<DL>
+<DD>Returns the Well-known Text representation of this <code>Geometry</code>.
+ For a definition of the Well-known Text format, see the OpenGIS Simple
+ Features Specification.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the Well-known Text representation of this <code>Geometry</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="buffer(double)"><!-- --></A><H3>
+buffer</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>buffer</B>(double distance)</PRE>
+<DL>
+<DD>Computes a buffer area around this geometry having the given
+ width.
+ The buffer of a Geometry is the Minkowski sum or difference
+ of the geometry with a disc of radius <code>abs(distance)</code>.
+ The buffer is constructed using 8 segments per quadrant to represent curves.
+ The end cap style is <tt>CAP_ROUND</tt>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>distance</CODE> - the width of the buffer (may be positive, negative or 0)
+<DT><B>Returns:</B><DD>an area geometry representing the buffer region
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A></CODE> - if a robustness error occurs<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int)"><CODE>buffer(double, int)</CODE></A>,
+<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int, int)"><CODE>buffer(double, int, int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="buffer(double, int)"><!-- --></A><H3>
+buffer</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>buffer</B>(double distance,
+ int quadrantSegments)</PRE>
+<DL>
+<DD>Computes a buffer area around this geometry having the given
+ width and with a specified accuracy of approximation for circular arcs.
+ <p>
+ Buffer area boundaries can contain circular arcs.
+ To represent these arcs using linear geometry they must be approximated with line segments.
+ The <code>quadrantSegments</code> argument allows controlling the
+ accuracy of the approximation
+ by specifying the number of line segments used to represent a quadrant of a circle
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>distance</CODE> - the width of the buffer (may be positive, negative or 0)<DD><CODE>quadrantSegments</CODE> - the number of line segments used to represent a quadrant of a circle
+<DT><B>Returns:</B><DD>an area geometry representing the buffer region
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A></CODE> - if a robustness error occurs<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double)"><CODE>buffer(double)</CODE></A>,
+<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int, int)"><CODE>buffer(double, int, int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="buffer(double, int, int)"><!-- --></A><H3>
+buffer</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>buffer</B>(double distance,
+ int quadrantSegments,
+ int endCapStyle)</PRE>
+<DL>
+<DD>Computes a buffer area around this geometry having the given
+ width and with a specified accuracy of approximation for circular arcs,
+ and using a specified end cap style.
+ <p>
+ Buffer area boundaries can contain circular arcs.
+ To represent these arcs using linear geometry they must be approximated with line segments.
+ The <code>quadrantSegments</code> argument allows controlling the
+ accuracy of the approximation
+ by specifying the number of line segments used to represent a quadrant of a circle
+ <p>
+ The end cap style specifies the buffer geometry that will be
+ created at the ends of linestrings. The styles provided are:
+ <ul>
+ <li><tt>BufferOp.CAP_ROUND</tt> - (default) a semi-circle
+ <li><tt>BufferOp.CAP_BUTT</tt> - a straight line perpendicular to the end segment
+ <li><tt>BufferOp.CAP_SQUARE</tt> - a half-square
+ </ul>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>distance</CODE> - the width of the buffer (may be positive, negative or 0)<DD><CODE>quadrantSegments</CODE> - the number of line segments used to represent a quadrant of a circle<DD><CODE>endCapStyle</CODE> - the end cap style to use
+<DT><B>Returns:</B><DD>an area geometry representing the buffer region
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A></CODE> - if a robustness error occurs<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double)"><CODE>buffer(double)</CODE></A>,
+<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int)"><CODE>buffer(double, int)</CODE></A>,
+<A HREF="../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer"><CODE>BufferOp</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="convexHull()"><!-- --></A><H3>
+convexHull</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>convexHull</B>()</PRE>
+<DL>
+<DD>Computes the smallest convex <code>Polygon</code> that contains all the
+ points in the <code>Geometry</code>. This obviously applies only to <code>Geometry</code>
+ s which contain 3 or more points; the results for degenerate cases are
+ specified as follows:
+ <TABLE>
+ <TR>
+ <TH> Number of <code>Point</code>s in argument <code>Geometry</code> </TH>
+ <TH> <code>Geometry</code> class of result </TH>
+ </TR>
+ <TR>
+ <TD> 0 </TD>
+ <TD> empty <code>GeometryCollection</code> </TD>
+ </TR>
+ <TR> <TD> 1 </TD>
+ <TD> <code>Point</code> </TD>
+ </TR>
+ <TR>
+ <TD> 2 </TD>
+ <TD> <code>LineString</code> </TD>
+ </TR>
+ <TR>
+ <TD> 3 or more </TD>
+ <TD> <code>Polygon</code> </TD>
+ </TR>
+ </TABLE>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the minimum-area convex polygon containing this <code>Geometry</code>'
+ s points</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="intersection(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+intersection</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>intersection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other)</PRE>
+<DL>
+<DD>Computes a <code>Geometry</code> representing the points shared by this
+ <code>Geometry</code> and <code>other</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Geometry</code> with which to compute the
+ intersection
+<DT><B>Returns:</B><DD>the points common to the two <code>Geometry</code>s
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A></CODE> - if a robustness error occurs
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if either input is a non-empty GeometryCollection</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="union(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+union</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>union</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other)</PRE>
+<DL>
+<DD>Computes a <code>Geometry</code> representing all the points in this <code>Geometry</code>
+ and <code>other</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Geometry</code> with which to compute the union
+<DT><B>Returns:</B><DD>a set combining the points of this <code>Geometry</code> and
+ the points of <code>other</code>
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A></CODE> - if a robustness error occurs
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if either input is a non-empty GeometryCollection</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="difference(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+difference</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>difference</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other)</PRE>
+<DL>
+<DD>Computes a <code>Geometry</code> representing the points making up this
+ <code>Geometry</code> that do not make up <code>other</code>. This method
+ returns the closure of the resultant <code>Geometry</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Geometry</code> with which to compute the
+ difference
+<DT><B>Returns:</B><DD>the point set difference of this <code>Geometry</code> with
+ <code>other</code>
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A></CODE> - if a robustness error occurs
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if either input is a non-empty GeometryCollection</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="symDifference(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+symDifference</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>symDifference</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other)</PRE>
+<DL>
+<DD>Returns a set combining the points in this <code>Geometry</code> not in
+ <code>other</code>, and the points in <code>other</code> not in this
+ <code>Geometry</code>. This method returns the closure of the resultant
+ <code>Geometry</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Geometry</code> with which to compute the symmetric
+ difference
+<DT><B>Returns:</B><DD>the point set symmetric difference of this <code>Geometry</code>
+ with <code>other</code>
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A></CODE> - if a robustness error occurs
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if either input is a non-empty GeometryCollection</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+equalsExact</H3>
+<PRE>
+public abstract boolean <B>equalsExact</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</PRE>
+<DL>
+<DD>Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.
+ Two Geometries are exactly equal within a distance tolerance
+ if and only if:
+ <ul>
+ <li>they have the same class
+ <li>they have the same values for their vertices,
+ within the given tolerance distance, in exactly the same order.
+ </ul>
+ If this and the other <code>Geometry</code>s are
+ composites and any children are not <code>Geometry</code>s, returns
+ <code>false</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if this and the other <code>Geometry</code>
+ are of the same class and have equal internal data.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equalsExact(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+equalsExact</H3>
+<PRE>
+public boolean <B>equalsExact</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other)</PRE>
+<DL>
+<DD>Returns true if the two <code>Geometry</code>s are exactly equal.
+ Two Geometries are exactly equal iff:
+ <ul>
+ <li>they have the same class
+ <li>they have the same values of Coordinates in their internal
+ Coordinate lists, in exactly the same order.
+ </ul>
+ If this and the other <code>Geometry</code>s are
+ composites and any children are not <code>Geometry</code>s, returns
+ false.
+ <p>
+ This provides a stricter test of equality than
+ <code>equals</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if this and the other <code>Geometry</code>
+ are of the same class and have equal internal data.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.CoordinateFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public abstract void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A> filter)</PRE>
+<DL>
+<DD>Performs an operation with or on this <code>Geometry</code>'s
+ coordinates.
+ If this method modifies any coordinate values,
+ #geometryChanged() must be called to update the geometry state.
+ Note that you cannot use this
+ method to
+ modify this Geometry if its underlying CoordinateSequence's #get method
+ returns a copy of the Coordinate, rather than the actual Coordinate stored
+ (if it even stores Coordinates at all).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply to this <code>Geometry</code>'s
+ coordinates</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public abstract void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A> filter)</PRE>
+<DL>
+<DD>Performs an operation on the coordinates in this <code>Geometry</code>'s
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.
+ If this method modifies any coordinate values,
+ #geometryChanged() must be called to update the geometry state.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.GeometryFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public abstract void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A> filter)</PRE>
+<DL>
+<DD>Performs an operation with or on this <code>Geometry</code> and its
+ subelement <code>Geometry</code>s (if any).
+ Only GeometryCollections and subclasses
+ have subelement Geometry's.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply to this <code>Geometry</code> (and
+ its children, if it is a <code>GeometryCollection</code>).</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.GeometryComponentFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public abstract void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A> filter)</PRE>
+<DL>
+<DD>Performs an operation with or on this Geometry and its
+ component Geometry's. Only GeometryCollections and
+ Polygons have component Geometry's; for Polygons they are the LinearRings
+ of the shell and holes.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply to this <code>Geometry</code>.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clone()"><!-- --></A><H3>
+clone</H3>
+<PRE>
+public java.lang.Object <B>clone</B>()</PRE>
+<DL>
+<DD>Creates and returns a full copy of this <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> object
+ (including all coordinates contained by it).
+ Subclasses are responsible for overriding this method and copying
+ their internal data. Overrides should call this method first.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a clone of this instance</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="normalize()"><!-- --></A><H3>
+normalize</H3>
+<PRE>
+public abstract void <B>normalize</B>()</PRE>
+<DL>
+<DD>Converts this <code>Geometry</code> to <b>normal form</b> (or <b>
+ canonical form</b> ). Normal form is a unique representation for <code>Geometry</code>
+ s. It can be used to test whether two <code>Geometry</code>s are equal
+ in a way that is independent of the ordering of the coordinates within
+ them. Normal form equality is a stronger condition than topological
+ equality, but weaker than pointwise equality. The definitions for normal
+ form use the standard lexicographical ordering for coordinates. "Sorted in
+ order of coordinates" means the obvious extension of this ordering to
+ sequences of coordinates.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(java.lang.Object o)</PRE>
+<DL>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code>. <P>
+
+ If their classes are different, they are compared using the following
+ ordering:
+ <UL>
+ <LI> Point (lowest)
+ <LI> MultiPoint
+ <LI> LineString
+ <LI> LinearRing
+ <LI> MultiLineString
+ <LI> Polygon
+ <LI> MultiPolygon
+ <LI> GeometryCollection (highest)
+ </UL>
+ If the two <code>Geometry</code>s have the same class, their first
+ elements are compared. If those are the same, the second elements are
+ compared, etc.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE>java.lang.Comparable</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o</CODE> - a <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD>a positive number, 0, or a negative number, depending on whether
+ this object is greater than, equal to, or less than <code>o</code>, as
+ defined in "Normal Form For Geometry" in the JTS Technical
+ Specifications</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(java.lang.Object o,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A> comp)</PRE>
+<DL>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code>,
+ using the given <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom"><CODE>CoordinateSequenceComparator</CODE></A>.
+ <P>
+
+ If their classes are different, they are compared using the following
+ ordering:
+ <UL>
+ <LI> Point (lowest)
+ <LI> MultiPoint
+ <LI> LineString
+ <LI> LinearRing
+ <LI> MultiLineString
+ <LI> Polygon
+ <LI> MultiPolygon
+ <LI> GeometryCollection (highest)
+ </UL>
+ If the two <code>Geometry</code>s have the same class, their first
+ elements are compared. If those are the same, the second elements are
+ compared, etc.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o</CODE> - a <code>Geometry</code> with which to compare this <code>Geometry</code><DD><CODE>comp</CODE> - a <code>CoordinateSequenceComparator</code>
+<DT><B>Returns:</B><DD>a positive number, 0, or a negative number, depending on whether
+ this object is greater than, equal to, or less than <code>o</code>, as
+ defined in "Normal Form For Geometry" in the JTS Technical
+ Specifications</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEquivalentClass(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+isEquivalentClass</H3>
+<PRE>
+protected boolean <B>isEquivalentClass</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other)</PRE>
+<DL>
+<DD>Returns whether the two <code>Geometry</code>s are equal, from the point
+ of view of the <code>equalsExact</code> method. Called by <code>equalsExact</code>
+ . In general, two <code>Geometry</code> classes are considered to be
+ "equivalent" only if they are the same class. An exception is <code>LineString</code>
+ , which is considered to be equivalent to its subclasses.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+ for equality
+<DT><B>Returns:</B><DD><code>true</code> if the classes of the two <code>Geometry</code>
+ s are considered to be equal by the <code>equalsExact</code> method.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="checkNotGeometryCollection(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+checkNotGeometryCollection</H3>
+<PRE>
+protected void <B>checkNotGeometryCollection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Throws an exception if <code>g</code>'s class is <code>GeometryCollection</code>
+ . (Its subclasses do not trigger an exception).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - the <code>Geometry</code> to check
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if <code>g</code> is a <code>GeometryCollection</code>
+ but not one of its subclasses</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeEnvelopeInternal()"><!-- --></A><H3>
+computeEnvelopeInternal</H3>
+<PRE>
+protected abstract <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>computeEnvelopeInternal</B>()</PRE>
+<DL>
+<DD>Returns the minimum and maximum x and y values in this <code>Geometry</code>
+ , or a null <code>Envelope</code> if this <code>Geometry</code> is empty.
+ Unlike <code>getEnvelopeInternal</code>, this method calculates the <code>Envelope</code>
+ each time it is called; <code>getEnvelopeInternal</code> caches the result
+ of this method.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>this <code>Geometry</code>s bounding box; if the <code>Geometry</code>
+ is empty, <code>Envelope#isNull</code> will return <code>true</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareToSameClass(java.lang.Object)"><!-- --></A><H3>
+compareToSameClass</H3>
+<PRE>
+protected abstract int <B>compareToSameClass</B>(java.lang.Object o)</PRE>
+<DL>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> having the same class.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o</CODE> - a <code>Geometry</code> having the same class as this <code>Geometry</code>
+<DT><B>Returns:</B><DD>a positive number, 0, or a negative number, depending on whether
+ this object is greater than, equal to, or less than <code>o</code>, as
+ defined in "Normal Form For Geometry" in the JTS Technical
+ Specifications</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)"><!-- --></A><H3>
+compareToSameClass</H3>
+<PRE>
+protected abstract int <B>compareToSameClass</B>(java.lang.Object o,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A> comp)</PRE>
+<DL>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> of the same class.
+ using the given <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom"><CODE>CoordinateSequenceComparator</CODE></A>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o</CODE> - a <code>Geometry</code> having the same class as this <code>Geometry</code><DD><CODE>comp</CODE> - a <code>CoordinateSequenceComparator</code>
+<DT><B>Returns:</B><DD>a positive number, 0, or a negative number, depending on whether
+ this object is greater than, equal to, or less than <code>o</code>, as
+ defined in "Normal Form For Geometry" in the JTS Technical
+ Specifications</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compare(java.util.Collection, java.util.Collection)"><!-- --></A><H3>
+compare</H3>
+<PRE>
+protected int <B>compare</B>(java.util.Collection a,
+ java.util.Collection b)</PRE>
+<DL>
+<DD>Returns the first non-zero result of <code>compareTo</code> encountered as
+ the two <code>Collection</code>s are iterated over. If, by the time one of
+ the iterations is complete, no non-zero result has been encountered,
+ returns 0 if the other iteration is also complete. If <code>b</code>
+ completes before <code>a</code>, a positive number is returned; if a
+ before b, a negative number.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>a</CODE> - a <code>Collection</code> of <code>Comparable</code>s<DD><CODE>b</CODE> - a <code>Collection</code> of <code>Comparable</code>s
+<DT><B>Returns:</B><DD>the first non-zero <code>compareTo</code> result, if any;
+ otherwise, zero</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, double)"><!-- --></A><H3>
+equal</H3>
+<PRE>
+protected boolean <B>equal</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ double tolerance)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Geometry.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryCollection.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryCollection.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryCollection.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,984 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+GeometryCollection
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.GeometryCollection class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GeometryCollection";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryCollection.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class GeometryCollection</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.Geometry</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.GeometryCollection</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, java.lang.Comparable, java.io.Serializable</DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A>, <A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>GeometryCollection</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></DL>
+
+<P>
+Basic implementation of <code>GeometryCollection</code>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.GeometryCollection">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#geometries">geometries</A></B></CODE>
+
+<BR>
+ Internal representation of this <code>GeometryCollection</code>.</TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#envelope">envelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#factory">factory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#SRID">SRID</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#GeometryCollection(com.vividsolutions.jts.geom.Geometry[], com.vividsolutions.jts.geom.GeometryFactory)">GeometryCollection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>[] geometries,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#GeometryCollection(com.vividsolutions.jts.geom.Geometry[], com.vividsolutions.jts.geom.PrecisionModel, int)">GeometryCollection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>[] geometries,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>Use GeometryFactory instead</I></TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation with or on this <code>Geometry</code>'s
+ coordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation on the coordinates in this <code>Geometry</code>'s
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation with or on this Geometry and its
+ component Geometry's.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.GeometryFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation with or on this <code>Geometry</code> and its
+ subelement <code>Geometry</code>s (if any).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#clone()">clone</A></B>()</CODE>
+
+<BR>
+ Creates and returns a full copy of this <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A> object.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#compareToSameClass(java.lang.Object)">compareToSameClass</A></B>(java.lang.Object o)</CODE>
+
+<BR>
+ Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> having the same class.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareToSameClass</A></B>(java.lang.Object o,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A> comp)</CODE>
+
+<BR>
+ Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> of the same class.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#computeEnvelopeInternal()">computeEnvelopeInternal</A></B>()</CODE>
+
+<BR>
+ Returns the minimum and maximum x and y values in this <code>Geometry</code>
+ , or a null <code>Envelope</code> if this <code>Geometry</code> is empty.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</CODE>
+
+<BR>
+ Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getArea()">getArea</A></B>()</CODE>
+
+<BR>
+ Returns the area of this <code>GeometryCollection</code></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getBoundary()">getBoundary</A></B>()</CODE>
+
+<BR>
+ Returns the boundary, or an empty geometry of appropriate dimension
+ if this <code>Geometry</code> is empty.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getBoundaryDimension()">getBoundaryDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>s inherent boundary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ Returns a vertex of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getCoordinates()">getCoordinates</A></B>()</CODE>
+
+<BR>
+ Collects all coordinates of all subgeometries into an Array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getDimension()">getDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getGeometryN(int)">getGeometryN</A></B>(int n)</CODE>
+
+<BR>
+ Returns an element <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> from a <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A>
+ (or <code>this</code>, if the geometry is not a collection).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getGeometryType()">getGeometryType</A></B>()</CODE>
+
+<BR>
+ Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getLength()">getLength</A></B>()</CODE>
+
+<BR>
+ Returns the length of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getNumGeometries()">getNumGeometries</A></B>()</CODE>
+
+<BR>
+ Returns the number of <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s in a <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A>
+ (or 1, if the geometry is not a collection).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getNumPoints()">getNumPoints</A></B>()</CODE>
+
+<BR>
+ Returns the count of this <code>Geometry</code>s vertices.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#isEmpty()">isEmpty</A></B>()</CODE>
+
+<BR>
+ Returns whether or not the set of points in this <code>Geometry</code> is
+ empty.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#normalize()">normalize</A></B>()</CODE>
+
+<BR>
+ Converts this <code>Geometry</code> to <b>normal form</b> (or <b>
+ canonical form</b> ).</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#checkNotGeometryCollection(com.vividsolutions.jts.geom.Geometry)">checkNotGeometryCollection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compare(java.util.Collection, java.util.Collection)">compare</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#contains(com.vividsolutions.jts.geom.Geometry)">contains</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#convexHull()">convexHull</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#coveredBy(com.vividsolutions.jts.geom.Geometry)">coveredBy</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#covers(com.vividsolutions.jts.geom.Geometry)">covers</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#crosses(com.vividsolutions.jts.geom.Geometry)">crosses</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#difference(com.vividsolutions.jts.geom.Geometry)">difference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#disjoint(com.vividsolutions.jts.geom.Geometry)">disjoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#distance(com.vividsolutions.jts.geom.Geometry)">distance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, double)">equal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equals(com.vividsolutions.jts.geom.Geometry)">equals</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry)">equalsExact</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChanged()">geometryChanged</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChangedAction()">geometryChangedAction</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCentroid()">getCentroid</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelope()">getEnvelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelopeInternal()">getEnvelopeInternal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getFactory()">getFactory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getInteriorPoint()">getInteriorPoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getPrecisionModel()">getPrecisionModel</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getSRID()">getSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getUserData()">getUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNonEmptyElements(com.vividsolutions.jts.geom.Geometry[])">hasNonEmptyElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNullElements(java.lang.Object[])">hasNullElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersection(com.vividsolutions.jts.geom.Geometry)">intersection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersects(com.vividsolutions.jts.geom.Geometry)">intersects</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isEquivalentClass(com.vividsolutions.jts.geom.Geometry)">isEquivalentClass</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isRectangle()">isRectangle</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isSimple()">isSimple</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isValid()">isValid</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isWithinDistance(com.vividsolutions.jts.geom.Geometry, double)">isWithinDistance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#overlaps(com.vividsolutions.jts.geom.Geometry)">overlaps</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry, java.lang.String)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setSRID(int)">setSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setUserData(java.lang.Object)">setUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#symDifference(com.vividsolutions.jts.geom.Geometry)">symDifference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toString()">toString</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toText()">toText</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#touches(com.vividsolutions.jts.geom.Geometry)">touches</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#union(com.vividsolutions.jts.geom.Geometry)">union</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#within(com.vividsolutions.jts.geom.Geometry)">within</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="geometries"><!-- --></A><H3>
+geometries</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>[] <B>geometries</B></PRE>
+<DL>
+<DD>Internal representation of this <code>GeometryCollection</code>.
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GeometryCollection(com.vividsolutions.jts.geom.Geometry[], com.vividsolutions.jts.geom.PrecisionModel, int)"><!-- --></A><H3>
+GeometryCollection</H3>
+<PRE>
+public <B>GeometryCollection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>[] geometries,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<P>
+</DL>
+<HR>
+
+<A NAME="GeometryCollection(com.vividsolutions.jts.geom.Geometry[], com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+GeometryCollection</H3>
+<PRE>
+public <B>GeometryCollection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>[] geometries,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</PRE>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>geometries</CODE> - the <code>Geometry</code>s for this <code>GeometryCollection</code>,
+ or <code>null</code> or an empty array to create the empty
+ geometry. Elements may be empty <code>Geometry</code>s,
+ but not <code>null</code>s.</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns a vertex of this <code>Geometry</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCoordinate()">getCoordinate</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> which is a vertex of this <code>Geometry</code>.
+ Returns <code>null</code> if this Geometry is empty</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinates()"><!-- --></A><H3>
+getCoordinates</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>getCoordinates</B>()</PRE>
+<DL>
+<DD>Collects all coordinates of all subgeometries into an Array.
+
+ Note that while changes to the coordinate objects themselves
+ may modify the Geometries in place, the returned Array as such
+ is only a temporary container which is not synchronized back.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCoordinates()">getCoordinates</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the collected coordinates</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEmpty()"><!-- --></A><H3>
+isEmpty</H3>
+<PRE>
+public boolean <B>isEmpty</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns whether or not the set of points in this <code>Geometry</code> is
+ empty.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isEmpty()">isEmpty</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Geometry</code> equals the empty
+ geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDimension()"><!-- --></A><H3>
+getDimension</H3>
+<PRE>
+public int <B>getDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the dimension of this <code>Geometry</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getDimension()">getDimension</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the dimension of the class implementing this interface, whether
+ or not this object is the empty geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundaryDimension()"><!-- --></A><H3>
+getBoundaryDimension</H3>
+<PRE>
+public int <B>getBoundaryDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the dimension of this <code>Geometry</code>s inherent boundary.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundaryDimension()">getBoundaryDimension</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the dimension of the boundary of the class implementing this
+ interface, whether or not this object is the empty geometry. Returns
+ <code>Dimension.FALSE</code> if the boundary is the empty geometry.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNumGeometries()"><!-- --></A><H3>
+getNumGeometries</H3>
+<PRE>
+public int <B>getNumGeometries</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the number of <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s in a <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A>
+ (or 1, if the geometry is not a collection).
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getNumGeometries()">getNumGeometries</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of geometries contained in this geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGeometryN(int)"><!-- --></A><H3>
+getGeometryN</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getGeometryN</B>(int n)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns an element <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> from a <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A>
+ (or <code>this</code>, if the geometry is not a collection).
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getGeometryN(int)">getGeometryN</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>n</CODE> - the index of the geometry element
+<DT><B>Returns:</B><DD>the n'th geometry contained in this geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNumPoints()"><!-- --></A><H3>
+getNumPoints</H3>
+<PRE>
+public int <B>getNumPoints</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the count of this <code>Geometry</code>s vertices. The <code>Geometry</code>
+ s contained by composite <code>Geometry</code>s must be
+ Geometry's; that is, they must implement <code>getNumPoints</code>
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getNumPoints()">getNumPoints</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of vertices in this <code>Geometry</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGeometryType()"><!-- --></A><H3>
+getGeometryType</H3>
+<PRE>
+public java.lang.String <B>getGeometryType</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getGeometryType()">getGeometryType</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the name of this <code>Geometry</code>s most specific <code>com.vividsolutions.jts.geom</code>
+ interface</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundary()"><!-- --></A><H3>
+getBoundary</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getBoundary</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the boundary, or an empty geometry of appropriate dimension
+ if this <code>Geometry</code> is empty.
+ (In the case of zero-dimensional geometries, '
+ an empty GeometryCollection is returned.)
+ For a discussion of this function, see the OpenGIS Simple
+ Features Specification. As stated in SFS Section 2.1.13.1, "the boundary
+ of a Geometry is a set of Geometries of the next lower dimension."
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundary()">getBoundary</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the closure of the combinatorial boundary of this <code>Geometry</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getArea()"><!-- --></A><H3>
+getArea</H3>
+<PRE>
+public double <B>getArea</B>()</PRE>
+<DL>
+<DD>Returns the area of this <code>GeometryCollection</code>
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getArea()">getArea</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the area of the polygon</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLength()"><!-- --></A><H3>
+getLength</H3>
+<PRE>
+public double <B>getLength</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the length of this <code>Geometry</code>.
+ Linear geometries return their length.
+ Areal geometries return their perimeter.
+ They override this function to compute the area.
+ Others return 0.0
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getLength()">getLength</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the length of the Geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+equalsExact</H3>
+<PRE>
+public boolean <B>equalsExact</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.
+ Two Geometries are exactly equal within a distance tolerance
+ if and only if:
+ <ul>
+ <li>they have the same class
+ <li>they have the same values for their vertices,
+ within the given tolerance distance, in exactly the same order.
+ </ul>
+ If this and the other <code>Geometry</code>s are
+ composites and any children are not <code>Geometry</code>s, returns
+ <code>false</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if this and the other <code>Geometry</code>
+ are of the same class and have equal internal data.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.CoordinateFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation with or on this <code>Geometry</code>'s
+ coordinates.
+ If this method modifies any coordinate values,
+ #geometryChanged() must be called to update the geometry state.
+ Note that you cannot use this
+ method to
+ modify this Geometry if its underlying CoordinateSequence's #get method
+ returns a copy of the Coordinate, rather than the actual Coordinate stored
+ (if it even stores Coordinates at all).
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply to this <code>Geometry</code>'s
+ coordinates</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation on the coordinates in this <code>Geometry</code>'s
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.
+ If this method modifies any coordinate values,
+ #geometryChanged() must be called to update the geometry state.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.GeometryFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation with or on this <code>Geometry</code> and its
+ subelement <code>Geometry</code>s (if any).
+ Only GeometryCollections and subclasses
+ have subelement Geometry's.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.GeometryFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply to this <code>Geometry</code> (and
+ its children, if it is a <code>GeometryCollection</code>).</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.GeometryComponentFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation with or on this Geometry and its
+ component Geometry's. Only GeometryCollections and
+ Polygons have component Geometry's; for Polygons they are the LinearRings
+ of the shell and holes.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply to this <code>Geometry</code>.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clone()"><!-- --></A><H3>
+clone</H3>
+<PRE>
+public java.lang.Object <B>clone</B>()</PRE>
+<DL>
+<DD>Creates and returns a full copy of this <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A> object.
+ (including all coordinates contained by it).
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#clone()">clone</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a clone of this instance</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="normalize()"><!-- --></A><H3>
+normalize</H3>
+<PRE>
+public void <B>normalize</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Converts this <code>Geometry</code> to <b>normal form</b> (or <b>
+ canonical form</b> ). Normal form is a unique representation for <code>Geometry</code>
+ s. It can be used to test whether two <code>Geometry</code>s are equal
+ in a way that is independent of the ordering of the coordinates within
+ them. Normal form equality is a stronger condition than topological
+ equality, but weaker than pointwise equality. The definitions for normal
+ form use the standard lexicographical ordering for coordinates. "Sorted in
+ order of coordinates" means the obvious extension of this ordering to
+ sequences of coordinates.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#normalize()">normalize</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeEnvelopeInternal()"><!-- --></A><H3>
+computeEnvelopeInternal</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>computeEnvelopeInternal</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the minimum and maximum x and y values in this <code>Geometry</code>
+ , or a null <code>Envelope</code> if this <code>Geometry</code> is empty.
+ Unlike <code>getEnvelopeInternal</code>, this method calculates the <code>Envelope</code>
+ each time it is called; <code>getEnvelopeInternal</code> caches the result
+ of this method.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#computeEnvelopeInternal()">computeEnvelopeInternal</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>this <code>Geometry</code>s bounding box; if the <code>Geometry</code>
+ is empty, <code>Envelope#isNull</code> will return <code>true</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareToSameClass(java.lang.Object)"><!-- --></A><H3>
+compareToSameClass</H3>
+<PRE>
+protected int <B>compareToSameClass</B>(java.lang.Object o)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> having the same class.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareToSameClass(java.lang.Object)">compareToSameClass</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o</CODE> - a <code>Geometry</code> having the same class as this <code>Geometry</code>
+<DT><B>Returns:</B><DD>a positive number, 0, or a negative number, depending on whether
+ this object is greater than, equal to, or less than <code>o</code>, as
+ defined in "Normal Form For Geometry" in the JTS Technical
+ Specifications</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)"><!-- --></A><H3>
+compareToSameClass</H3>
+<PRE>
+protected int <B>compareToSameClass</B>(java.lang.Object o,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A> comp)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> of the same class.
+ using the given <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom"><CODE>CoordinateSequenceComparator</CODE></A>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareToSameClass</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o</CODE> - a <code>Geometry</code> having the same class as this <code>Geometry</code><DD><CODE>comp</CODE> - a <code>CoordinateSequenceComparator</code>
+<DT><B>Returns:</B><DD>a positive number, 0, or a negative number, depending on whether
+ this object is greater than, equal to, or less than <code>o</code>, as
+ defined in "Normal Form For Geometry" in the JTS Technical
+ Specifications</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryCollection.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryCollectionIterator.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryCollectionIterator.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryCollectionIterator.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,320 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+GeometryCollectionIterator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.GeometryCollectionIterator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GeometryCollectionIterator";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryCollectionIterator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class GeometryCollectionIterator</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.GeometryCollectionIterator</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.util.Iterator</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>GeometryCollectionIterator</B><DT>extends java.lang.Object<DT>implements java.util.Iterator</DL>
+
+<P>
+Iterates over all <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s in a <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A>.
+ . Implements a pre-order depth-first traversal of the <code>GeometryCollection</code>
+ (which may be nested). The original <code>GeometryCollection</code> is
+ returned as well (as the first object), as are all sub-collections. It is
+ simple to ignore the <code>GeometryCollection</code> objects if they are not
+ needed.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollectionIterator.html#GeometryCollectionIterator(com.vividsolutions.jts.geom.Geometry)">GeometryCollectionIterator</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</CODE>
+
+<BR>
+ Constructs an iterator over the given <code>GeometryCollection</code>.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollectionIterator.html#hasNext()">hasNext</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollectionIterator.html#next()">next</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollectionIterator.html#remove()">remove</A></B>()</CODE>
+
+<BR>
+ Not implemented.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GeometryCollectionIterator(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+GeometryCollectionIterator</H3>
+<PRE>
+public <B>GeometryCollectionIterator</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</PRE>
+<DL>
+<DD>Constructs an iterator over the given <code>GeometryCollection</code>.
+<P>
+<DT><B>Parameters:</B><DD><CODE>parent</CODE> - the collection over which to iterate; also, the first
+ element returned by the iterator.</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="hasNext()"><!-- --></A><H3>
+hasNext</H3>
+<PRE>
+public boolean <B>hasNext</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>hasNext</CODE> in interface <CODE>java.util.Iterator</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="next()"><!-- --></A><H3>
+next</H3>
+<PRE>
+public java.lang.Object <B>next</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>next</CODE> in interface <CODE>java.util.Iterator</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove()"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>()</PRE>
+<DL>
+<DD>Not implemented.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>remove</CODE> in interface <CODE>java.util.Iterator</CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.UnsupportedOperationException</CODE> - This method is not implemented.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryCollectionIterator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryComponentFilter.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryComponentFilter.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryComponentFilter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,234 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+GeometryComponentFilter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.GeometryComponentFilter interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GeometryComponentFilter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryComponentFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Interface GeometryComponentFilter</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/vividsolutions/jts/geom/util/LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util">LinearComponentExtracter</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public interface <B>GeometryComponentFilter</B></DL>
+
+<P>
+<code>Geometry</code> classes support the concept of applying
+ a <code>GeometryComponentFilter</code>
+ filter to the <code>Geometry</code>.
+ The filter is applied to every component of the <code>Geometry</code>
+ which is itself a <code>Geometry</code>.
+ (For instance, all the LinearRings in Polygons are visited.)
+ <p>
+ A <code>GeometryComponentFilter</code> filter can either
+ record information about the <code>Geometry</code>
+ or change the <code>Geometry</code> in some way.
+ <code>GeometryComponentFilter</code>
+ is an example of the Gang-of-Four Visitor pattern.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html#filter(com.vividsolutions.jts.geom.Geometry)">filter</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Performs an operation with or on <code>geom</code>.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="filter(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+filter</H3>
+<PRE>
+public void <B>filter</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Performs an operation with or on <code>geom</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - a <code>Geometry</code> to which the filter is applied.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryComponentFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryFactory.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryFactory.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryFactory.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,1086 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+GeometryFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.GeometryFactory class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GeometryFactory";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class GeometryFactory</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.GeometryFactory</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>GeometryFactory</B><DT>extends java.lang.Object<DT>implements java.io.Serializable</DL>
+
+<P>
+Supplies a set of utility methods for building Geometry objects from lists
+ of Coordinates.
+ <p>
+ Note that the factory constructor methods do <b>not</b> change the input coordinates in any way.
+ In particular, they are not rounded to the supplied <tt>PrecisionModel</tt>.
+ It is assumed that input Coordinates meet the given precision.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.GeometryFactory">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#GeometryFactory()">GeometryFactory</A></B>()</CODE>
+
+<BR>
+ Constructs a GeometryFactory that generates Geometries having a floating
+ PrecisionModel and a spatial-reference ID of 0.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#GeometryFactory(com.vividsolutions.jts.geom.CoordinateSequenceFactory)">GeometryFactory</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A> coordinateSequenceFactory)</CODE>
+
+<BR>
+ Constructs a GeometryFactory that generates Geometries having the given
+ CoordinateSequence implementation, a double-precision floating PrecisionModel and a
+ spatial-reference ID of 0.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#GeometryFactory(com.vividsolutions.jts.geom.PrecisionModel)">GeometryFactory</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel)</CODE>
+
+<BR>
+ Constructs a GeometryFactory that generates Geometries having the given
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A> and the default CoordinateSequence
+ implementation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#GeometryFactory(com.vividsolutions.jts.geom.PrecisionModel, int)">GeometryFactory</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</CODE>
+
+<BR>
+ Constructs a GeometryFactory that generates Geometries having the given
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A> and spatial-reference ID, and the default CoordinateSequence
+ implementation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#GeometryFactory(com.vividsolutions.jts.geom.PrecisionModel, int, com.vividsolutions.jts.geom.CoordinateSequenceFactory)">GeometryFactory</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A> coordinateSequenceFactory)</CODE>
+
+<BR>
+ Constructs a GeometryFactory that generates Geometries having the given
+ PrecisionModel, spatial-reference ID, and CoordinateSequence implementation.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#buildGeometry(java.util.Collection)">buildGeometry</A></B>(java.util.Collection geomList)</CODE>
+
+<BR>
+ Build an appropriate <code>Geometry</code>, <code>MultiGeometry</code>, or
+ <code>GeometryCollection</code> to contain the <code>Geometry</code>s in
+ it.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#createGeometry(com.vividsolutions.jts.geom.Geometry)">createGeometry</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#createGeometryCollection(com.vividsolutions.jts.geom.Geometry[])">createGeometryCollection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>[] geometries)</CODE>
+
+<BR>
+ Creates a GeometryCollection using the given Geometries; a null or empty
+ array will create an empty GeometryCollection.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#createLinearRing(com.vividsolutions.jts.geom.Coordinate[])">createLinearRing</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</CODE>
+
+<BR>
+ Creates a LinearRing using the given Coordinates; a null or empty array will
+ create an empty LinearRing.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#createLinearRing(com.vividsolutions.jts.geom.CoordinateSequence)">createLinearRing</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordinates)</CODE>
+
+<BR>
+ Creates a LinearRing using the given CoordinateSequence; a null or empty CoordinateSequence will
+ create an empty LinearRing.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#createLineString(com.vividsolutions.jts.geom.Coordinate[])">createLineString</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</CODE>
+
+<BR>
+ Creates a LineString using the given Coordinates; a null or empty array will
+ create an empty LineString.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#createLineString(com.vividsolutions.jts.geom.CoordinateSequence)">createLineString</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordinates)</CODE>
+
+<BR>
+ Creates a LineString using the given CoordinateSequence; a null or empty CoordinateSequence will
+ create an empty LineString.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#createMultiLineString(com.vividsolutions.jts.geom.LineString[])">createMultiLineString</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>[] lineStrings)</CODE>
+
+<BR>
+ Creates a MultiLineString using the given LineStrings; a null or empty
+ array will create an empty MultiLineString.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#createMultiPoint(com.vividsolutions.jts.geom.Coordinate[])">createMultiPoint</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</CODE>
+
+<BR>
+ Creates a <A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiPoint</CODE></A> using the given <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#createMultiPoint(com.vividsolutions.jts.geom.CoordinateSequence)">createMultiPoint</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordinates)</CODE>
+
+<BR>
+ Creates a MultiPoint using the given CoordinateSequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#createMultiPoint(com.vividsolutions.jts.geom.Point[])">createMultiPoint</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>[] point)</CODE>
+
+<BR>
+ Creates a MultiPoint using the given Points.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#createMultiPolygon(com.vividsolutions.jts.geom.Polygon[])">createMultiPolygon</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>[] polygons)</CODE>
+
+<BR>
+ Creates a MultiPolygon using the given Polygons; a null or empty array
+ will create an empty Polygon.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#createPoint(com.vividsolutions.jts.geom.Coordinate)">createPoint</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coordinate)</CODE>
+
+<BR>
+ Creates a Point using the given Coordinate; a null Coordinate will create
+ an empty Geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#createPoint(com.vividsolutions.jts.geom.CoordinateSequence)">createPoint</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordinates)</CODE>
+
+<BR>
+ Creates a Point using the given CoordinateSequence; a null or empty
+ CoordinateSequence will create an empty Point.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#createPointFromInternalCoord(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Geometry)">createPointFromInternalCoord</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> exemplar)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#createPolygon(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.LinearRing[])">createPolygon</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> shell,
+ <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>[] holes)</CODE>
+
+<BR>
+ Constructs a <code>Polygon</code> with the given exterior boundary and
+ interior boundaries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#getCoordinateSequenceFactory()">getCoordinateSequenceFactory</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#getPrecisionModel()">getPrecisionModel</A></B>()</CODE>
+
+<BR>
+ Returns the PrecisionModel that Geometries created by this factory
+ will be associated with.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#getSRID()">getSRID</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#toGeometry(com.vividsolutions.jts.geom.Envelope)">toGeometry</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> envelope)</CODE>
+
+<BR>
+ If the <code>Envelope</code> is a null <code>Envelope</code>, returns an
+ empty <code>Point</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#toGeometryArray(java.util.Collection)">toGeometryArray</A></B>(java.util.Collection geometries)</CODE>
+
+<BR>
+ Converts the <code>List</code> to an array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#toLinearRingArray(java.util.Collection)">toLinearRingArray</A></B>(java.util.Collection linearRings)</CODE>
+
+<BR>
+ Converts the <code>List</code> to an array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#toLineStringArray(java.util.Collection)">toLineStringArray</A></B>(java.util.Collection lineStrings)</CODE>
+
+<BR>
+ Converts the <code>List</code> to an array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#toMultiLineStringArray(java.util.Collection)">toMultiLineStringArray</A></B>(java.util.Collection multiLineStrings)</CODE>
+
+<BR>
+ Converts the <code>List</code> to an array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#toMultiPointArray(java.util.Collection)">toMultiPointArray</A></B>(java.util.Collection multiPoints)</CODE>
+
+<BR>
+ Converts the <code>List</code> to an array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#toMultiPolygonArray(java.util.Collection)">toMultiPolygonArray</A></B>(java.util.Collection multiPolygons)</CODE>
+
+<BR>
+ Converts the <code>List</code> to an array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#toPointArray(java.util.Collection)">toPointArray</A></B>(java.util.Collection points)</CODE>
+
+<BR>
+ Converts the <code>List</code> to an array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html#toPolygonArray(java.util.Collection)">toPolygonArray</A></B>(java.util.Collection polygons)</CODE>
+
+<BR>
+ Converts the <code>List</code> to an array.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GeometryFactory(com.vividsolutions.jts.geom.PrecisionModel, int, com.vividsolutions.jts.geom.CoordinateSequenceFactory)"><!-- --></A><H3>
+GeometryFactory</H3>
+<PRE>
+public <B>GeometryFactory</B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A> coordinateSequenceFactory)</PRE>
+<DL>
+<DD>Constructs a GeometryFactory that generates Geometries having the given
+ PrecisionModel, spatial-reference ID, and CoordinateSequence implementation.
+<P>
+</DL>
+<HR>
+
+<A NAME="GeometryFactory(com.vividsolutions.jts.geom.CoordinateSequenceFactory)"><!-- --></A><H3>
+GeometryFactory</H3>
+<PRE>
+public <B>GeometryFactory</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A> coordinateSequenceFactory)</PRE>
+<DL>
+<DD>Constructs a GeometryFactory that generates Geometries having the given
+ CoordinateSequence implementation, a double-precision floating PrecisionModel and a
+ spatial-reference ID of 0.
+<P>
+</DL>
+<HR>
+
+<A NAME="GeometryFactory(com.vividsolutions.jts.geom.PrecisionModel)"><!-- --></A><H3>
+GeometryFactory</H3>
+<PRE>
+public <B>GeometryFactory</B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel)</PRE>
+<DL>
+<DD>Constructs a GeometryFactory that generates Geometries having the given
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A> and the default CoordinateSequence
+ implementation.
+<P>
+<DT><B>Parameters:</B><DD><CODE>precisionModel</CODE> - the PrecisionModel to use</DL>
+<HR>
+
+<A NAME="GeometryFactory(com.vividsolutions.jts.geom.PrecisionModel, int)"><!-- --></A><H3>
+GeometryFactory</H3>
+<PRE>
+public <B>GeometryFactory</B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</PRE>
+<DL>
+<DD>Constructs a GeometryFactory that generates Geometries having the given
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A> and spatial-reference ID, and the default CoordinateSequence
+ implementation.
+<P>
+<DT><B>Parameters:</B><DD><CODE>precisionModel</CODE> - the PrecisionModel to use<DD><CODE>SRID</CODE> - the SRID to use</DL>
+<HR>
+
+<A NAME="GeometryFactory()"><!-- --></A><H3>
+GeometryFactory</H3>
+<PRE>
+public <B>GeometryFactory</B>()</PRE>
+<DL>
+<DD>Constructs a GeometryFactory that generates Geometries having a floating
+ PrecisionModel and a spatial-reference ID of 0.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="createPointFromInternalCoord(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+createPointFromInternalCoord</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A> <B>createPointFromInternalCoord</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> exemplar)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toPointArray(java.util.Collection)"><!-- --></A><H3>
+toPointArray</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>[] <B>toPointArray</B>(java.util.Collection points)</PRE>
+<DL>
+<DD>Converts the <code>List</code> to an array.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>points</CODE> - the <code>List</code> of Points to convert
+<DT><B>Returns:</B><DD>the <code>List</code> in array format</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toGeometryArray(java.util.Collection)"><!-- --></A><H3>
+toGeometryArray</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>[] <B>toGeometryArray</B>(java.util.Collection geometries)</PRE>
+<DL>
+<DD>Converts the <code>List</code> to an array.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geometries</CODE> - the list of <code>Geometry's</code> to convert
+<DT><B>Returns:</B><DD>the <code>List</code> in array format</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toLinearRingArray(java.util.Collection)"><!-- --></A><H3>
+toLinearRingArray</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>[] <B>toLinearRingArray</B>(java.util.Collection linearRings)</PRE>
+<DL>
+<DD>Converts the <code>List</code> to an array.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>linearRings</CODE> - the <code>List</code> of LinearRings to convert
+<DT><B>Returns:</B><DD>the <code>List</code> in array format</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toLineStringArray(java.util.Collection)"><!-- --></A><H3>
+toLineStringArray</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>[] <B>toLineStringArray</B>(java.util.Collection lineStrings)</PRE>
+<DL>
+<DD>Converts the <code>List</code> to an array.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>lineStrings</CODE> - the <code>List</code> of LineStrings to convert
+<DT><B>Returns:</B><DD>the <code>List</code> in array format</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toPolygonArray(java.util.Collection)"><!-- --></A><H3>
+toPolygonArray</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>[] <B>toPolygonArray</B>(java.util.Collection polygons)</PRE>
+<DL>
+<DD>Converts the <code>List</code> to an array.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>polygons</CODE> - the <code>List</code> of Polygons to convert
+<DT><B>Returns:</B><DD>the <code>List</code> in array format</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toMultiPolygonArray(java.util.Collection)"><!-- --></A><H3>
+toMultiPolygonArray</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A>[] <B>toMultiPolygonArray</B>(java.util.Collection multiPolygons)</PRE>
+<DL>
+<DD>Converts the <code>List</code> to an array.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>multiPolygons</CODE> - the <code>List</code> of MultiPolygons to convert
+<DT><B>Returns:</B><DD>the <code>List</code> in array format</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toMultiLineStringArray(java.util.Collection)"><!-- --></A><H3>
+toMultiLineStringArray</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A>[] <B>toMultiLineStringArray</B>(java.util.Collection multiLineStrings)</PRE>
+<DL>
+<DD>Converts the <code>List</code> to an array.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>multiLineStrings</CODE> - the <code>List</code> of MultiLineStrings to convert
+<DT><B>Returns:</B><DD>the <code>List</code> in array format</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toMultiPointArray(java.util.Collection)"><!-- --></A><H3>
+toMultiPointArray</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A>[] <B>toMultiPointArray</B>(java.util.Collection multiPoints)</PRE>
+<DL>
+<DD>Converts the <code>List</code> to an array.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>multiPoints</CODE> - the <code>List</code> of MultiPoints to convert
+<DT><B>Returns:</B><DD>the <code>List</code> in array format</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toGeometry(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+toGeometry</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>toGeometry</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> envelope)</PRE>
+<DL>
+<DD>If the <code>Envelope</code> is a null <code>Envelope</code>, returns an
+ empty <code>Point</code>. If the <code>Envelope</code> is a point, returns
+ a non-empty <code>Point</code>. If the <code>Envelope</code> is a
+ rectangle, returns a <code>Polygon</code> whose points are (minx, miny),
+ (maxx, miny), (maxx, maxy), (minx, maxy), (minx, miny).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>envelope</CODE> - the <code>Envelope</code> to convert to a <code>Geometry</code>
+<DT><B>Returns:</B><DD>an empty <code>Point</code> (for null <code>Envelope</code>
+ s), a <code>Point</code> (when min x = max x and min y = max y) or a
+ <code>Polygon</code> (in all other cases)
+<DT><B>Throws:</B>
+<DD><CODE><code></CODE> - TopologyException</code> if <code>coordinates</code>
+ is not a closed linestring, that is, if the first and last coordinates
+ are not equal</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPrecisionModel()"><!-- --></A><H3>
+getPrecisionModel</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> <B>getPrecisionModel</B>()</PRE>
+<DL>
+<DD>Returns the PrecisionModel that Geometries created by this factory
+ will be associated with.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createPoint(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+createPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A> <B>createPoint</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coordinate)</PRE>
+<DL>
+<DD>Creates a Point using the given Coordinate; a null Coordinate will create
+ an empty Geometry.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createPoint(com.vividsolutions.jts.geom.CoordinateSequence)"><!-- --></A><H3>
+createPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A> <B>createPoint</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordinates)</PRE>
+<DL>
+<DD>Creates a Point using the given CoordinateSequence; a null or empty
+ CoordinateSequence will create an empty Point.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createMultiLineString(com.vividsolutions.jts.geom.LineString[])"><!-- --></A><H3>
+createMultiLineString</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A> <B>createMultiLineString</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>[] lineStrings)</PRE>
+<DL>
+<DD>Creates a MultiLineString using the given LineStrings; a null or empty
+ array will create an empty MultiLineString.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>lineStrings</CODE> - LineStrings, each of which may be empty but not null</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createGeometryCollection(com.vividsolutions.jts.geom.Geometry[])"><!-- --></A><H3>
+createGeometryCollection</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A> <B>createGeometryCollection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>[] geometries)</PRE>
+<DL>
+<DD>Creates a GeometryCollection using the given Geometries; a null or empty
+ array will create an empty GeometryCollection.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geometries</CODE> - Geometries, each of which may be empty but not null</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createMultiPolygon(com.vividsolutions.jts.geom.Polygon[])"><!-- --></A><H3>
+createMultiPolygon</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A> <B>createMultiPolygon</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>[] polygons)</PRE>
+<DL>
+<DD>Creates a MultiPolygon using the given Polygons; a null or empty array
+ will create an empty Polygon. The polygons must conform to the
+ assertions specified in the <A
+ HREF="http://www.opengis.org/techno/specs.htm">OpenGIS Simple Features
+ Specification for SQL</A>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>polygons</CODE> - Polygons, each of which may be empty but not null</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createLinearRing(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+createLinearRing</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> <B>createLinearRing</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</PRE>
+<DL>
+<DD>Creates a LinearRing using the given Coordinates; a null or empty array will
+ create an empty LinearRing. The points must form a closed and simple
+ linestring. Consecutive points must not be equal.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - an array without null elements, or an empty array, or null</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createLinearRing(com.vividsolutions.jts.geom.CoordinateSequence)"><!-- --></A><H3>
+createLinearRing</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> <B>createLinearRing</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordinates)</PRE>
+<DL>
+<DD>Creates a LinearRing using the given CoordinateSequence; a null or empty CoordinateSequence will
+ create an empty LinearRing. The points must form a closed and simple
+ linestring. Consecutive points must not be equal.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - a CoordinateSequence possibly empty, or null</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createMultiPoint(com.vividsolutions.jts.geom.Point[])"><!-- --></A><H3>
+createMultiPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A> <B>createMultiPoint</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>[] point)</PRE>
+<DL>
+<DD>Creates a MultiPoint using the given Points.
+ A null or empty array will create an empty MultiPoint.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a MultiPoint object</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createMultiPoint(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+createMultiPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A> <B>createMultiPoint</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</PRE>
+<DL>
+<DD>Creates a <A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiPoint</CODE></A> using the given <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.
+ A null or empty array will create an empty MultiPoint.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - an array (without null elements), or an empty array, or <code>null</code>
+<DT><B>Returns:</B><DD>a MultiPoint object</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createMultiPoint(com.vividsolutions.jts.geom.CoordinateSequence)"><!-- --></A><H3>
+createMultiPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A> <B>createMultiPoint</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordinates)</PRE>
+<DL>
+<DD>Creates a MultiPoint using the given CoordinateSequence.
+ A a null or empty CoordinateSequence will create an empty MultiPoint.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - a CoordinateSequence (possibly empty), or <code>null</code>
+<DT><B>Returns:</B><DD>a MultiPoint object</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createPolygon(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.LinearRing[])"><!-- --></A><H3>
+createPolygon</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> <B>createPolygon</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> shell,
+ <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>[] holes)</PRE>
+<DL>
+<DD>Constructs a <code>Polygon</code> with the given exterior boundary and
+ interior boundaries.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>shell</CODE> - the outer boundary of the new <code>Polygon</code>, or
+ <code>null</code> or an empty <code>LinearRing</code> if
+ the empty geometry is to be created.<DD><CODE>holes</CODE> - the inner boundaries of the new <code>Polygon</code>, or
+ <code>null</code> or empty <code>LinearRing</code> s if
+ the empty geometry is to be created.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="buildGeometry(java.util.Collection)"><!-- --></A><H3>
+buildGeometry</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>buildGeometry</B>(java.util.Collection geomList)</PRE>
+<DL>
+<DD>Build an appropriate <code>Geometry</code>, <code>MultiGeometry</code>, or
+ <code>GeometryCollection</code> to contain the <code>Geometry</code>s in
+ it.
+ For example:<br>
+
+ <ul>
+ <li> If <code>geomList</code> contains a single <code>Polygon</code>,
+ the <code>Polygon</code> is returned.
+ <li> If <code>geomList</code> contains several <code>Polygon</code>s, a
+ <code>MultiPolygon</code> is returned.
+ <li> If <code>geomList</code> contains some <code>Polygon</code>s and
+ some <code>LineString</code>s, a <code>GeometryCollection</code> is
+ returned.
+ <li> If <code>geomList</code> is empty, an empty <code>GeometryCollection</code>
+ is returned
+ </ul>
+
+ Note that this method does not "flatten" Geometries in the input, and hence if
+ any MultiGeometries are contained in the input a GeometryCollection containing
+ them will be returned.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geomList</CODE> - the <code>Geometry</code>s to combine
+<DT><B>Returns:</B><DD>a <code>Geometry</code> of the "smallest", "most
+ type-specific" class that can contain the elements of <code>geomList</code>
+ .</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createLineString(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+createLineString</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>createLineString</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</PRE>
+<DL>
+<DD>Creates a LineString using the given Coordinates; a null or empty array will
+ create an empty LineString. Consecutive points must not be equal.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - an array without null elements, or an empty array, or null</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createLineString(com.vividsolutions.jts.geom.CoordinateSequence)"><!-- --></A><H3>
+createLineString</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>createLineString</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordinates)</PRE>
+<DL>
+<DD>Creates a LineString using the given CoordinateSequence; a null or empty CoordinateSequence will
+ create an empty LineString. Consecutive points must not be equal.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - a CoordinateSequence possibly empty, or null</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createGeometry(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+createGeometry</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>createGeometry</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a clone of g based on a CoordinateSequence created by this
+ GeometryFactory's CoordinateSequenceFactory</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSRID()"><!-- --></A><H3>
+getSRID</H3>
+<PRE>
+public int <B>getSRID</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinateSequenceFactory()"><!-- --></A><H3>
+getCoordinateSequenceFactory</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A> <B>getCoordinateSequenceFactory</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryFilter.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryFilter.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/GeometryFilter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,229 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+GeometryFilter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.GeometryFilter interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GeometryFilter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Interface GeometryFilter</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html" title="class in com.vividsolutions.jts.operation.distance">ConnectedElementLocationFilter</A>, <A HREF="../../../../com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html" title="class in com.vividsolutions.jts.operation.distance">ConnectedElementPointFilter</A>, <A HREF="../../../../com/vividsolutions/jts/geom/util/PointExtracter.html" title="class in com.vividsolutions.jts.geom.util">PointExtracter</A>, <A HREF="../../../../com/vividsolutions/jts/geom/util/PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util">PolygonExtracter</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public interface <B>GeometryFilter</B></DL>
+
+<P>
+<code>GeometryCollection</code> classes support the concept of
+ applying a <code>GeometryFilter</code> to the <code>Geometry</code>.
+ The filter is applied to every element <code>Geometry</code>.
+ A <code>GeometryFilter</code> can either record information about the <code>Geometry</code>
+ or change the <code>Geometry</code> in some way.
+ <code>GeometryFilter</code>
+ is an example of the Gang-of-Four Visitor pattern.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFilter.html#filter(com.vividsolutions.jts.geom.Geometry)">filter</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Performs an operation with or on <code>geom</code>.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="filter(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+filter</H3>
+<PRE>
+public void <B>filter</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Performs an operation with or on <code>geom</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - a <code>Geometry</code> to which the filter is applied.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/IntersectionMatrix.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/IntersectionMatrix.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/IntersectionMatrix.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,1013 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+IntersectionMatrix
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.IntersectionMatrix class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="IntersectionMatrix";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="IntersectionMatrix.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class IntersectionMatrix</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.IntersectionMatrix</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>IntersectionMatrix</B><DT>extends java.lang.Object<DT>implements java.lang.Cloneable</DL>
+
+<P>
+A Dimensionally Extended Nine-Intersection Model (DE-9IM) matrix. This class
+ can used to represent both computed DE-9IM's (like 212FF1FF2) as well as
+ patterns for matching them (like T*T******). <P>
+
+ Methods are provided to:
+ <UL>
+ <LI> set and query the elements of the matrix in a convenient fashion
+ <LI> convert to and from the standard string representation (specified in
+ SFS Section 2.1.13.2).
+ <LI> test to see if a matrix matches a given pattern string.
+ </UL>
+ <P>
+
+ For a description of the DE-9IM, see the <A
+ HREF="http://www.opengis.org/techno/specs.htm">OpenGIS Simple Features
+ Specification for SQL</A> .
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#IntersectionMatrix()">IntersectionMatrix</A></B>()</CODE>
+
+<BR>
+ Creates an <code>IntersectionMatrix</code> with <code>FALSE</code>
+ dimension values.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#IntersectionMatrix(com.vividsolutions.jts.geom.IntersectionMatrix)">IntersectionMatrix</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> other)</CODE>
+
+<BR>
+ Creates an <code>IntersectionMatrix</code> with the same elements as
+ <code>other</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#IntersectionMatrix(java.lang.String)">IntersectionMatrix</A></B>(java.lang.String elements)</CODE>
+
+<BR>
+ Creates an <code>IntersectionMatrix</code> with the given dimension
+ symbols.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#add(com.vividsolutions.jts.geom.IntersectionMatrix)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> im)</CODE>
+
+<BR>
+ Adds one matrix to another.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#get(int, int)">get</A></B>(int row,
+ int column)</CODE>
+
+<BR>
+ Returns the value of one of this <code>IntersectionMatrix</code>s
+ elements.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#isContains()">isContains</A></B>()</CODE>
+
+<BR>
+ Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ T*****FF*.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#isCoveredBy()">isCoveredBy</A></B>()</CODE>
+
+<BR>
+ Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ <code>T*F**F***</code>
+ or <code>*TF**F***</code>
+ or <code>**FT*F***</code>
+ or <code>**F*TF***</code></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#isCovers()">isCovers</A></B>()</CODE>
+
+<BR>
+ Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ <code>T*****FF*</code>
+ or <code>*T****FF*</code>
+ or <code>***T**FF*</code>
+ or <code>****T*FF*</code></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#isCrosses(int, int)">isCrosses</A></B>(int dimensionOfGeometryA,
+ int dimensionOfGeometryB)</CODE>
+
+<BR>
+ Returns <code>true</code> if this geometry crosses the
+ specified geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#isDisjoint()">isDisjoint</A></B>()</CODE>
+
+<BR>
+ Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ FF*FF****.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#isEquals(int, int)">isEquals</A></B>(int dimensionOfGeometryA,
+ int dimensionOfGeometryB)</CODE>
+
+<BR>
+ Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ T*F**FFF*.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#isIntersects()">isIntersects</A></B>()</CODE>
+
+<BR>
+ Returns <code>true</code> if <code>isDisjoint</code> returns false.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#isOverlaps(int, int)">isOverlaps</A></B>(int dimensionOfGeometryA,
+ int dimensionOfGeometryB)</CODE>
+
+<BR>
+ Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+
+ T*T***T** (for two points or two surfaces)
+ 1*T***T** (for two curves)
+
+ .</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#isTouches(int, int)">isTouches</A></B>(int dimensionOfGeometryA,
+ int dimensionOfGeometryB)</CODE>
+
+<BR>
+ Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ FT*******, F**T***** or F***T****.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#isWithin()">isWithin</A></B>()</CODE>
+
+<BR>
+ Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ T*F**F***.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#matches(int, char)">matches</A></B>(int actualDimensionValue,
+ char requiredDimensionSymbol)</CODE>
+
+<BR>
+ Returns true if the dimension value satisfies the dimension symbol.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#matches(java.lang.String)">matches</A></B>(java.lang.String requiredDimensionSymbols)</CODE>
+
+<BR>
+ Returns whether the elements of this <code>IntersectionMatrix</code>
+ satisfies the required dimension symbols.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#matches(java.lang.String, java.lang.String)">matches</A></B>(java.lang.String actualDimensionSymbols,
+ java.lang.String requiredDimensionSymbols)</CODE>
+
+<BR>
+ Returns true if each of the actual dimension symbols satisfies the
+ corresponding required dimension symbol.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#set(int, int, int)">set</A></B>(int row,
+ int column,
+ int dimensionValue)</CODE>
+
+<BR>
+ Changes the value of one of this <code>IntersectionMatrix</code>s
+ elements.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#set(java.lang.String)">set</A></B>(java.lang.String dimensionSymbols)</CODE>
+
+<BR>
+ Changes the elements of this <code>IntersectionMatrix</code> to the
+ dimension symbols in <code>dimensionSymbols</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#setAll(int)">setAll</A></B>(int dimensionValue)</CODE>
+
+<BR>
+ Changes the elements of this <code>IntersectionMatrix</code> to <code>dimensionValue</code>
+ .</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#setAtLeast(int, int, int)">setAtLeast</A></B>(int row,
+ int column,
+ int minimumDimensionValue)</CODE>
+
+<BR>
+ Changes the specified element to <code>minimumDimensionValue</code> if the
+ element is less.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#setAtLeast(java.lang.String)">setAtLeast</A></B>(java.lang.String minimumDimensionSymbols)</CODE>
+
+<BR>
+ For each element in this <code>IntersectionMatrix</code>, changes the
+ element to the corresponding minimum dimension symbol if the element is
+ less.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#setAtLeastIfValid(int, int, int)">setAtLeastIfValid</A></B>(int row,
+ int column,
+ int minimumDimensionValue)</CODE>
+
+<BR>
+ If row >= 0 and column >= 0, changes the specified element to <code>minimumDimensionValue</code>
+ if the element is less.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ Returns a nine-character <code>String</code> representation of this <code>IntersectionMatrix</code>
+ .</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html#transpose()">transpose</A></B>()</CODE>
+
+<BR>
+ Transposes this IntersectionMatrix.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="IntersectionMatrix()"><!-- --></A><H3>
+IntersectionMatrix</H3>
+<PRE>
+public <B>IntersectionMatrix</B>()</PRE>
+<DL>
+<DD>Creates an <code>IntersectionMatrix</code> with <code>FALSE</code>
+ dimension values.
+<P>
+</DL>
+<HR>
+
+<A NAME="IntersectionMatrix(java.lang.String)"><!-- --></A><H3>
+IntersectionMatrix</H3>
+<PRE>
+public <B>IntersectionMatrix</B>(java.lang.String elements)</PRE>
+<DL>
+<DD>Creates an <code>IntersectionMatrix</code> with the given dimension
+ symbols.
+<P>
+<DT><B>Parameters:</B><DD><CODE>elements</CODE> - a String of nine dimension symbols in row major order</DL>
+<HR>
+
+<A NAME="IntersectionMatrix(com.vividsolutions.jts.geom.IntersectionMatrix)"><!-- --></A><H3>
+IntersectionMatrix</H3>
+<PRE>
+public <B>IntersectionMatrix</B>(<A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> other)</PRE>
+<DL>
+<DD>Creates an <code>IntersectionMatrix</code> with the same elements as
+ <code>other</code>.
+<P>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - an <code>IntersectionMatrix</code> to copy</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(com.vividsolutions.jts.geom.IntersectionMatrix)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> im)</PRE>
+<DL>
+<DD>Adds one matrix to another.
+ Addition is defined by taking the maximum dimension value of each position
+ in the summand matrices.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>im</CODE> - the matrix to add</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="matches(int, char)"><!-- --></A><H3>
+matches</H3>
+<PRE>
+public static boolean <B>matches</B>(int actualDimensionValue,
+ char requiredDimensionSymbol)</PRE>
+<DL>
+<DD>Returns true if the dimension value satisfies the dimension symbol.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>actualDimensionValue</CODE> - a number that can be stored in the <code>IntersectionMatrix</code>
+ . Possible values are <code>{TRUE, FALSE, DONTCARE, 0, 1, 2}</code>.<DD><CODE>requiredDimensionSymbol</CODE> - a character used in the string
+ representation of an <code>IntersectionMatrix</code>. Possible values
+ are <code>{T, F, * , 0, 1, 2}</code>.
+<DT><B>Returns:</B><DD>true if the dimension symbol encompasses
+ the dimension value</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="matches(java.lang.String, java.lang.String)"><!-- --></A><H3>
+matches</H3>
+<PRE>
+public static boolean <B>matches</B>(java.lang.String actualDimensionSymbols,
+ java.lang.String requiredDimensionSymbols)</PRE>
+<DL>
+<DD>Returns true if each of the actual dimension symbols satisfies the
+ corresponding required dimension symbol.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>actualDimensionSymbols</CODE> - nine dimension symbols to validate.
+ Possible values are <code>{T, F, * , 0, 1, 2}</code>.<DD><CODE>requiredDimensionSymbols</CODE> - nine dimension symbols to validate
+ against. Possible values are <code>{T, F, * , 0, 1, 2}</code>.
+<DT><B>Returns:</B><DD>true if each of the required dimension
+ symbols encompass the corresponding actual dimension symbol</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="set(int, int, int)"><!-- --></A><H3>
+set</H3>
+<PRE>
+public void <B>set</B>(int row,
+ int column,
+ int dimensionValue)</PRE>
+<DL>
+<DD>Changes the value of one of this <code>IntersectionMatrix</code>s
+ elements.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>row</CODE> - the row of this <code>IntersectionMatrix</code>,
+ indicating the interior, boundary or exterior of the first <code>Geometry</code><DD><CODE>column</CODE> - the column of this <code>IntersectionMatrix</code>,
+ indicating the interior, boundary or exterior of the second <code>Geometry</code><DD><CODE>dimensionValue</CODE> - the new value of the element</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="set(java.lang.String)"><!-- --></A><H3>
+set</H3>
+<PRE>
+public void <B>set</B>(java.lang.String dimensionSymbols)</PRE>
+<DL>
+<DD>Changes the elements of this <code>IntersectionMatrix</code> to the
+ dimension symbols in <code>dimensionSymbols</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>dimensionSymbols</CODE> - nine dimension symbols to which to set this <code>IntersectionMatrix</code>
+ s elements. Possible values are <code>{T, F, * , 0, 1, 2}</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAtLeast(int, int, int)"><!-- --></A><H3>
+setAtLeast</H3>
+<PRE>
+public void <B>setAtLeast</B>(int row,
+ int column,
+ int minimumDimensionValue)</PRE>
+<DL>
+<DD>Changes the specified element to <code>minimumDimensionValue</code> if the
+ element is less.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>row</CODE> - the row of this <code>IntersectionMatrix</code>
+ , indicating the interior, boundary or exterior of the first <code>Geometry</code><DD><CODE>column</CODE> - the column of this <code>IntersectionMatrix</code>
+ , indicating the interior, boundary or exterior of the second <code>Geometry</code><DD><CODE>minimumDimensionValue</CODE> - the dimension value with which to compare the
+ element. The order of dimension values from least to greatest is
+ <code>{DONTCARE, TRUE, FALSE, 0, 1, 2}</code>.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAtLeastIfValid(int, int, int)"><!-- --></A><H3>
+setAtLeastIfValid</H3>
+<PRE>
+public void <B>setAtLeastIfValid</B>(int row,
+ int column,
+ int minimumDimensionValue)</PRE>
+<DL>
+<DD>If row >= 0 and column >= 0, changes the specified element to <code>minimumDimensionValue</code>
+ if the element is less. Does nothing if row <0 or column < 0.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>row</CODE> - the row of this <code>IntersectionMatrix</code>
+ , indicating the interior, boundary or exterior of the first <code>Geometry</code><DD><CODE>column</CODE> - the column of this <code>IntersectionMatrix</code>
+ , indicating the interior, boundary or exterior of the second <code>Geometry</code><DD><CODE>minimumDimensionValue</CODE> - the dimension value with which to compare the
+ element. The order of dimension values from least to greatest is
+ <code>{DONTCARE, TRUE, FALSE, 0, 1, 2}</code>.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAtLeast(java.lang.String)"><!-- --></A><H3>
+setAtLeast</H3>
+<PRE>
+public void <B>setAtLeast</B>(java.lang.String minimumDimensionSymbols)</PRE>
+<DL>
+<DD>For each element in this <code>IntersectionMatrix</code>, changes the
+ element to the corresponding minimum dimension symbol if the element is
+ less.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>minimumDimensionSymbols</CODE> - nine dimension symbols with which to
+ compare the elements of this <code>IntersectionMatrix</code>. The
+ order of dimension values from least to greatest is <code>{DONTCARE, TRUE, FALSE, 0, 1, 2}</code>
+ .</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAll(int)"><!-- --></A><H3>
+setAll</H3>
+<PRE>
+public void <B>setAll</B>(int dimensionValue)</PRE>
+<DL>
+<DD>Changes the elements of this <code>IntersectionMatrix</code> to <code>dimensionValue</code>
+ .
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>dimensionValue</CODE> - the dimension value to which to set this <code>IntersectionMatrix</code>
+ s elements. Possible values <code>{TRUE, FALSE, DONTCARE, 0, 1, 2}</code>
+ .</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="get(int, int)"><!-- --></A><H3>
+get</H3>
+<PRE>
+public int <B>get</B>(int row,
+ int column)</PRE>
+<DL>
+<DD>Returns the value of one of this <code>IntersectionMatrix</code>s
+ elements.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>row</CODE> - the row of this <code>IntersectionMatrix</code>, indicating
+ the interior, boundary or exterior of the first <code>Geometry</code><DD><CODE>column</CODE> - the column of this <code>IntersectionMatrix</code>,
+ indicating the interior, boundary or exterior of the second <code>Geometry</code>
+<DT><B>Returns:</B><DD>the dimension value at the given matrix position.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isDisjoint()"><!-- --></A><H3>
+isDisjoint</H3>
+<PRE>
+public boolean <B>isDisjoint</B>()</PRE>
+<DL>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ FF*FF****.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the two <code>Geometry</code>s related by
+ this <code>IntersectionMatrix</code> are disjoint</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isIntersects()"><!-- --></A><H3>
+isIntersects</H3>
+<PRE>
+public boolean <B>isIntersects</B>()</PRE>
+<DL>
+<DD>Returns <code>true</code> if <code>isDisjoint</code> returns false.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the two <code>Geometry</code>s related by
+ this <code>IntersectionMatrix</code> intersect</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isTouches(int, int)"><!-- --></A><H3>
+isTouches</H3>
+<PRE>
+public boolean <B>isTouches</B>(int dimensionOfGeometryA,
+ int dimensionOfGeometryB)</PRE>
+<DL>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ FT*******, F**T***** or F***T****.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>dimensionOfGeometryA</CODE> - the dimension of the first <code>Geometry</code><DD><CODE>dimensionOfGeometryB</CODE> - the dimension of the second <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if the two <code>Geometry</code>
+ s related by this <code>IntersectionMatrix</code> touch; Returns false
+ if both <code>Geometry</code>s are points.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCrosses(int, int)"><!-- --></A><H3>
+isCrosses</H3>
+<PRE>
+public boolean <B>isCrosses</B>(int dimensionOfGeometryA,
+ int dimensionOfGeometryB)</PRE>
+<DL>
+<DD>Returns <code>true</code> if this geometry crosses the
+ specified geometry.
+ <p>
+ The <code>crosses</code> predicate has the following equivalent definitions:
+ <ul>
+ <li>The geometries have some but not all interior points in common.
+ <li>The DE-9IM Intersection Matrix for the two geometries is
+ <ul>
+ <li>T*T****** (for P/L, P/A, and L/A situations)
+ <li>T*****T** (for L/P, L/A, and A/L situations)
+ <li>0******** (for L/L situations)
+ </ul>
+ </ul>
+ For any other combination of dimensions this predicate returns <code>false</code>.
+ <p>
+ The SFS defined this predicate only for P/L, P/A, L/L, and L/A situations.
+ JTS extends the definition to apply to L/P, A/P and A/L situations as well.
+ This makes the relation symmetric.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>dimensionOfGeometryA</CODE> - the dimension of the first <code>Geometry</code><DD><CODE>dimensionOfGeometryB</CODE> - the dimension of the second <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if the two <code>Geometry</code>s
+ related by this <code>IntersectionMatrix</code> cross.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isWithin()"><!-- --></A><H3>
+isWithin</H3>
+<PRE>
+public boolean <B>isWithin</B>()</PRE>
+<DL>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ T*F**F***.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the first <code>Geometry</code> is within
+ the second</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isContains()"><!-- --></A><H3>
+isContains</H3>
+<PRE>
+public boolean <B>isContains</B>()</PRE>
+<DL>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ T*****FF*.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the first <code>Geometry</code> contains the
+ second</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCovers()"><!-- --></A><H3>
+isCovers</H3>
+<PRE>
+public boolean <B>isCovers</B>()</PRE>
+<DL>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ <code>T*****FF*</code>
+ or <code>*T****FF*</code>
+ or <code>***T**FF*</code>
+ or <code>****T*FF*</code>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the first <code>Geometry</code> covers the
+ second</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCoveredBy()"><!-- --></A><H3>
+isCoveredBy</H3>
+<PRE>
+public boolean <B>isCoveredBy</B>()</PRE>
+<DL>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ <code>T*F**F***</code>
+ or <code>*TF**F***</code>
+ or <code>**FT*F***</code>
+ or <code>**F*TF***</code>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the first <code>Geometry</code>
+ is covered by the second</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEquals(int, int)"><!-- --></A><H3>
+isEquals</H3>
+<PRE>
+public boolean <B>isEquals</B>(int dimensionOfGeometryA,
+ int dimensionOfGeometryB)</PRE>
+<DL>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ T*F**FFF*.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>dimensionOfGeometryA</CODE> - the dimension of the first <code>Geometry</code><DD><CODE>dimensionOfGeometryB</CODE> - the dimension of the second <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if the two <code>Geometry</code>
+ s related by this <code>IntersectionMatrix</code> are equal; the
+ <code>Geometry</code>s must have the same dimension for this function
+ to return <code>true</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isOverlaps(int, int)"><!-- --></A><H3>
+isOverlaps</H3>
+<PRE>
+public boolean <B>isOverlaps</B>(int dimensionOfGeometryA,
+ int dimensionOfGeometryB)</PRE>
+<DL>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ <UL>
+ <LI> T*T***T** (for two points or two surfaces)
+ <LI> 1*T***T** (for two curves)
+ </UL>
+ .
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>dimensionOfGeometryA</CODE> - the dimension of the first <code>Geometry</code><DD><CODE>dimensionOfGeometryB</CODE> - the dimension of the second <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if the two <code>Geometry</code>
+ s related by this <code>IntersectionMatrix</code> overlap. For this
+ function to return <code>true</code>, the <code>Geometry</code>s must
+ be two points, two curves or two surfaces.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="matches(java.lang.String)"><!-- --></A><H3>
+matches</H3>
+<PRE>
+public boolean <B>matches</B>(java.lang.String requiredDimensionSymbols)</PRE>
+<DL>
+<DD>Returns whether the elements of this <code>IntersectionMatrix</code>
+ satisfies the required dimension symbols.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>requiredDimensionSymbols</CODE> - nine dimension symbols with which to
+ compare the elements of this <code>IntersectionMatrix</code>. Possible
+ values are <code>{T, F, * , 0, 1, 2}</code>.
+<DT><B>Returns:</B><DD><code>true</code> if this <code>IntersectionMatrix</code>
+ matches the required dimension symbols</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transpose()"><!-- --></A><H3>
+transpose</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> <B>transpose</B>()</PRE>
+<DL>
+<DD>Transposes this IntersectionMatrix.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>this <code>IntersectionMatrix</code> as a convenience</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD>Returns a nine-character <code>String</code> representation of this <code>IntersectionMatrix</code>
+ .
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the nine dimension symbols of this <code>IntersectionMatrix</code>
+ in row-major order.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="IntersectionMatrix.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/LineSegment.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/LineSegment.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/LineSegment.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,999 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+LineSegment
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.LineSegment class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LineSegment";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineSegment.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class LineSegment</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.LineSegment</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable, java.io.Serializable</DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify">TaggedLineSegment</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>LineSegment</B><DT>extends java.lang.Object<DT>implements java.lang.Comparable, java.io.Serializable</DL>
+
+<P>
+Represents a line segment defined by two <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.
+ Provides methods to compute various geometric properties
+ and relationships of line segments.
+ <p>
+ This class is designed to be easily mutable (to the extent of
+ having its contained points public).
+ This supports a common pattern of reusing a single LineSegment
+ object as a way of computing segment properties on the
+ segments defined by arrays or lists of <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.LineSegment">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#p0">p0</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#p1">p1</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#LineSegment()">LineSegment</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#LineSegment(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">LineSegment</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#LineSegment(com.vividsolutions.jts.geom.LineSegment)">LineSegment</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> ls)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#angle()">angle</A></B>()</CODE>
+
+<BR>
+ Computes the angle that the vector defined by this segment
+ makes with the X-axis.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#closestPoint(com.vividsolutions.jts.geom.Coordinate)">closestPoint</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ Computes the closest point on this line segment to another point.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#closestPoints(com.vividsolutions.jts.geom.LineSegment)">closestPoints</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> line)</CODE>
+
+<BR>
+ Computes the closest points on two line segments.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#compareTo(java.lang.Object)">compareTo</A></B>(java.lang.Object o)</CODE>
+
+<BR>
+ Compares this object with the specified object for order.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#distance(com.vividsolutions.jts.geom.Coordinate)">distance</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ Computes the distance between this line segment and a given point.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#distance(com.vividsolutions.jts.geom.LineSegment)">distance</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> ls)</CODE>
+
+<BR>
+ Computes the distance between this line segment and another segment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#distancePerpendicular(com.vividsolutions.jts.geom.Coordinate)">distancePerpendicular</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ Computes the perpendicular distance between the (infinite) line defined
+ by this line segment and a point.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object o)</CODE>
+
+<BR>
+ Returns <code>true</code> if <code>other</code> has the same values for
+ its points.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#equalsTopo(com.vividsolutions.jts.geom.LineSegment)">equalsTopo</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> other)</CODE>
+
+<BR>
+ Returns <code>true</code> if <code>other</code> is
+ topologically equal to this LineSegment (e.g.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#getCoordinate(int)">getCoordinate</A></B>(int i)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#getLength()">getLength</A></B>()</CODE>
+
+<BR>
+ Computes the length of the line segment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#intersection(com.vividsolutions.jts.geom.LineSegment)">intersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> line)</CODE>
+
+<BR>
+ Computes an intersection point between two segments, if there is one.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#isHorizontal()">isHorizontal</A></B>()</CODE>
+
+<BR>
+ Tests whether the segment is horizontal.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#isVertical()">isVertical</A></B>()</CODE>
+
+<BR>
+ Tests whether the segment is vertical.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#midPoint()">midPoint</A></B>()</CODE>
+
+<BR>
+ Computes the midpoint of the segment</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#normalize()">normalize</A></B>()</CODE>
+
+<BR>
+ Puts the line segment into a normalized form.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#orientationIndex(com.vividsolutions.jts.geom.LineSegment)">orientationIndex</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg)</CODE>
+
+<BR>
+ Determines the orientation of a LineSegment relative to this segment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#pointAlong(double)">pointAlong</A></B>(double segmentLengthFraction)</CODE>
+
+<BR>
+ Computes the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> that lies a given
+ fraction along the line defined by this segment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#project(com.vividsolutions.jts.geom.Coordinate)">project</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ Compute the projection of a point onto the line determined
+ by this line segment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#project(com.vividsolutions.jts.geom.LineSegment)">project</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg)</CODE>
+
+<BR>
+ Project a line segment onto this line segment and return the resulting
+ line segment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#projectionFactor(com.vividsolutions.jts.geom.Coordinate)">projectionFactor</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ Computes the Projection Factor for the projection of the point p
+ onto this LineSegment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#reverse()">reverse</A></B>()</CODE>
+
+<BR>
+ Reverses the direction of the line segment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#setCoordinates(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">setCoordinates</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#setCoordinates(com.vividsolutions.jts.geom.LineSegment)">setCoordinates</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> ls)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="p0"><!-- --></A><H3>
+p0</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>p0</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="p1"><!-- --></A><H3>
+p1</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>p1</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LineSegment(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+LineSegment</H3>
+<PRE>
+public <B>LineSegment</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="LineSegment(com.vividsolutions.jts.geom.LineSegment)"><!-- --></A><H3>
+LineSegment</H3>
+<PRE>
+public <B>LineSegment</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> ls)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="LineSegment()"><!-- --></A><H3>
+LineSegment</H3>
+<PRE>
+public <B>LineSegment</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinate(int)"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>(int i)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setCoordinates(com.vividsolutions.jts.geom.LineSegment)"><!-- --></A><H3>
+setCoordinates</H3>
+<PRE>
+public void <B>setCoordinates</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> ls)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setCoordinates(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+setCoordinates</H3>
+<PRE>
+public void <B>setCoordinates</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLength()"><!-- --></A><H3>
+getLength</H3>
+<PRE>
+public double <B>getLength</B>()</PRE>
+<DL>
+<DD>Computes the length of the line segment.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the length of the line segment</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isHorizontal()"><!-- --></A><H3>
+isHorizontal</H3>
+<PRE>
+public boolean <B>isHorizontal</B>()</PRE>
+<DL>
+<DD>Tests whether the segment is horizontal.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the segment is horizontal</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isVertical()"><!-- --></A><H3>
+isVertical</H3>
+<PRE>
+public boolean <B>isVertical</B>()</PRE>
+<DL>
+<DD>Tests whether the segment is vertical.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the segment is vertical</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="orientationIndex(com.vividsolutions.jts.geom.LineSegment)"><!-- --></A><H3>
+orientationIndex</H3>
+<PRE>
+public int <B>orientationIndex</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg)</PRE>
+<DL>
+<DD>Determines the orientation of a LineSegment relative to this segment.
+ The concept of orientation is specified as follows:
+ Given two line segments A and L,
+ <ul
+ <li>A is to the left of a segment L if A lies wholly in the
+ closed half-plane lying to the left of L
+ <li>A is to the right of a segment L if A lies wholly in the
+ closed half-plane lying to the right of L
+ <li>otherwise, A has indeterminate orientation relative to L. This
+ happens if A is collinear with L or if A crosses the line determined by L.
+ </ul>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>seg</CODE> - the LineSegment to compare
+<DT><B>Returns:</B><DD>1 if <code>seg</code> is to the left of this segment</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reverse()"><!-- --></A><H3>
+reverse</H3>
+<PRE>
+public void <B>reverse</B>()</PRE>
+<DL>
+<DD>Reverses the direction of the line segment.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="normalize()"><!-- --></A><H3>
+normalize</H3>
+<PRE>
+public void <B>normalize</B>()</PRE>
+<DL>
+<DD>Puts the line segment into a normalized form.
+ This is useful for using line segments in maps and indexes when
+ topological equality rather than exact equality is desired.
+ A segment in normalized form has the first point smaller
+ than the second (according to the standard ordering on <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="angle()"><!-- --></A><H3>
+angle</H3>
+<PRE>
+public double <B>angle</B>()</PRE>
+<DL>
+<DD>Computes the angle that the vector defined by this segment
+ makes with the X-axis.
+ The angle will be in the range [ -PI, PI ] radians.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the angle this segment makes with the X-axis (in radians)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="midPoint()"><!-- --></A><H3>
+midPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>midPoint</B>()</PRE>
+<DL>
+<DD>Computes the midpoint of the segment
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the midpoint of the segment</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="distance(com.vividsolutions.jts.geom.LineSegment)"><!-- --></A><H3>
+distance</H3>
+<PRE>
+public double <B>distance</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> ls)</PRE>
+<DL>
+<DD>Computes the distance between this line segment and another segment.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the distance to the other segment</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="distance(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+distance</H3>
+<PRE>
+public double <B>distance</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD>Computes the distance between this line segment and a given point.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the distance from this segment to the given point</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="distancePerpendicular(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+distancePerpendicular</H3>
+<PRE>
+public double <B>distancePerpendicular</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD>Computes the perpendicular distance between the (infinite) line defined
+ by this line segment and a point.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the perpendicular distance between the defined line and the given point</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="pointAlong(double)"><!-- --></A><H3>
+pointAlong</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>pointAlong</B>(double segmentLengthFraction)</PRE>
+<DL>
+<DD>Computes the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> that lies a given
+ fraction along the line defined by this segment.
+ A fraction of <code>0.0</code> returns the start point of the segment;
+ a fraction of <code>1.0</code> returns the end point of the segment.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>segmentLengthFraction</CODE> - the fraction of the segment length along the line
+<DT><B>Returns:</B><DD>the point at that distance</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="projectionFactor(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+projectionFactor</H3>
+<PRE>
+public double <B>projectionFactor</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD>Computes the Projection Factor for the projection of the point p
+ onto this LineSegment. The Projection Factor is the constant r
+ by which the vector for this segment must be multiplied to
+ equal the vector for the projection of p on the line
+ defined by this segment.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="project(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+project</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>project</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD>Compute the projection of a point onto the line determined
+ by this line segment.
+ <p>
+ Note that the projected point
+ may lie outside the line segment. If this is the case,
+ the projection factor will lie outside the range [0.0, 1.0].
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="project(com.vividsolutions.jts.geom.LineSegment)"><!-- --></A><H3>
+project</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> <B>project</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg)</PRE>
+<DL>
+<DD>Project a line segment onto this line segment and return the resulting
+ line segment. The returned line segment will be a subset of
+ the target line line segment. This subset may be null, if
+ the segments are oriented in such a way that there is no projection.
+ <p>
+ Note that the returned line may have zero length (i.e. the same endpoints).
+ This can happen for instance if the lines are perpendicular to one another.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>seg</CODE> - the line segment to project
+<DT><B>Returns:</B><DD>the projected line segment, or <code>null</code> if there is no overlap</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="closestPoint(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+closestPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>closestPoint</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD>Computes the closest point on this line segment to another point.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p</CODE> - the point to find the closest point to
+<DT><B>Returns:</B><DD>a Coordinate which is the closest point on the line segment to the point p</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="closestPoints(com.vividsolutions.jts.geom.LineSegment)"><!-- --></A><H3>
+closestPoints</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>closestPoints</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> line)</PRE>
+<DL>
+<DD>Computes the closest points on two line segments.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a pair of Coordinates which are the closest points on the line segments</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="intersection(com.vividsolutions.jts.geom.LineSegment)"><!-- --></A><H3>
+intersection</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>intersection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> line)</PRE>
+<DL>
+<DD>Computes an intersection point between two segments, if there is one.
+ There may be 0, 1 or many intersection points between two segments.
+ If there are 0, null is returned. If there is 1 or more, a single one
+ is returned (chosen at the discretion of the algorithm). If
+ more information is required about the details of the intersection,
+ the <A HREF="../../../../com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><CODE>RobustLineIntersector</CODE></A> class should be used.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>line</CODE> -
+<DT><B>Returns:</B><DD>an intersection point, or <code>null</code> if there is none</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</B>(java.lang.Object o)</PRE>
+<DL>
+<DD>Returns <code>true</code> if <code>other</code> has the same values for
+ its points.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if <code>other</code> is a <code>LineSegment</code>
+ with the same values for the x and y ordinates.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(java.lang.Object o)</PRE>
+<DL>
+<DD>Compares this object with the specified object for order.
+ Uses the standard lexicographic ordering for the points in the LineSegment.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE>java.lang.Comparable</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o</CODE> - the <code>LineSegment</code> with which this <code>LineSegment</code>
+ is being compared
+<DT><B>Returns:</B><DD>a negative integer, zero, or a positive integer as this <code>LineSegment</code>
+ is less than, equal to, or greater than the specified <code>LineSegment</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equalsTopo(com.vividsolutions.jts.geom.LineSegment)"><!-- --></A><H3>
+equalsTopo</H3>
+<PRE>
+public boolean <B>equalsTopo</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> other)</PRE>
+<DL>
+<DD>Returns <code>true</code> if <code>other</code> is
+ topologically equal to this LineSegment (e.g. irrespective
+ of orientation).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - a <code>LineSegment</code> with which to do the comparison.
+<DT><B>Returns:</B><DD><code>true</code> if <code>other</code> is a <code>LineSegment</code>
+ with the same values for the x and y ordinates.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineSegment.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/LineString.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/LineString.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/LineString.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,1068 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+LineString
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.LineString class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LineString";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineString.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.Geometry">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class LineString</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.Geometry</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.LineString</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, java.lang.Comparable, java.io.Serializable</DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>LineString</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></DL>
+
+<P>
+Basic implementation of <code>LineString</code>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.LineString">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#envelope">envelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#factory">factory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#SRID">SRID</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#LineString(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.PrecisionModel, int)">LineString</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] points,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>Use GeometryFactory instead</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#LineString(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.GeometryFactory)">LineString</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> points,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation with or on this <code>Geometry</code>'s
+ coordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation on the coordinates in this <code>Geometry</code>'s
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation with or on this Geometry and its
+ component Geometry's.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#apply(com.vividsolutions.jts.geom.GeometryFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation with or on this <code>Geometry</code> and its
+ subelement <code>Geometry</code>s (if any).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#clone()">clone</A></B>()</CODE>
+
+<BR>
+ Creates and returns a full copy of this <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> object.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#compareToSameClass(java.lang.Object)">compareToSameClass</A></B>(java.lang.Object o)</CODE>
+
+<BR>
+ Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> having the same class.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareToSameClass</A></B>(java.lang.Object o,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A> comp)</CODE>
+
+<BR>
+ Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> of the same class.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#computeEnvelopeInternal()">computeEnvelopeInternal</A></B>()</CODE>
+
+<BR>
+ Returns the minimum and maximum x and y values in this <code>Geometry</code>
+ , or a null <code>Envelope</code> if this <code>Geometry</code> is empty.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</CODE>
+
+<BR>
+ Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getBoundary()">getBoundary</A></B>()</CODE>
+
+<BR>
+ Gets the boundary of this geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getBoundaryDimension()">getBoundaryDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>s inherent boundary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ Returns a vertex of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getCoordinateN(int)">getCoordinateN</A></B>(int n)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getCoordinates()">getCoordinates</A></B>()</CODE>
+
+<BR>
+ Returns this <code>Geometry</code> s vertices.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getCoordinateSequence()">getCoordinateSequence</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getDimension()">getDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getEndPoint()">getEndPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getGeometryType()">getGeometryType</A></B>()</CODE>
+
+<BR>
+ Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getLength()">getLength</A></B>()</CODE>
+
+<BR>
+ Returns the length of this <code>LineString</code></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getNumPoints()">getNumPoints</A></B>()</CODE>
+
+<BR>
+ Returns the count of this <code>Geometry</code>s vertices.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getPointN(int)">getPointN</A></B>(int n)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getStartPoint()">getStartPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#isClosed()">isClosed</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#isCoordinate(com.vividsolutions.jts.geom.Coordinate)">isCoordinate</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Returns true if the given point is a vertex of this <code>LineString</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#isEmpty()">isEmpty</A></B>()</CODE>
+
+<BR>
+ Returns whether or not the set of points in this <code>Geometry</code> is
+ empty.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#isEquivalentClass(com.vividsolutions.jts.geom.Geometry)">isEquivalentClass</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other)</CODE>
+
+<BR>
+ Returns whether the two <code>Geometry</code>s are equal, from the point
+ of view of the <code>equalsExact</code> method.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#isRing()">isRing</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#normalize()">normalize</A></B>()</CODE>
+
+<BR>
+ Normalizes a LineString.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#reverse()">reverse</A></B>()</CODE>
+
+<BR>
+ Creates a <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> whose coordinates are in the reverse
+ order of this objects</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#checkNotGeometryCollection(com.vividsolutions.jts.geom.Geometry)">checkNotGeometryCollection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compare(java.util.Collection, java.util.Collection)">compare</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#contains(com.vividsolutions.jts.geom.Geometry)">contains</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#convexHull()">convexHull</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#coveredBy(com.vividsolutions.jts.geom.Geometry)">coveredBy</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#covers(com.vividsolutions.jts.geom.Geometry)">covers</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#crosses(com.vividsolutions.jts.geom.Geometry)">crosses</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#difference(com.vividsolutions.jts.geom.Geometry)">difference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#disjoint(com.vividsolutions.jts.geom.Geometry)">disjoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#distance(com.vividsolutions.jts.geom.Geometry)">distance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, double)">equal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equals(com.vividsolutions.jts.geom.Geometry)">equals</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry)">equalsExact</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChanged()">geometryChanged</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChangedAction()">geometryChangedAction</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getArea()">getArea</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCentroid()">getCentroid</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelope()">getEnvelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelopeInternal()">getEnvelopeInternal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getFactory()">getFactory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getGeometryN(int)">getGeometryN</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getInteriorPoint()">getInteriorPoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getNumGeometries()">getNumGeometries</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getPrecisionModel()">getPrecisionModel</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getSRID()">getSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getUserData()">getUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNonEmptyElements(com.vividsolutions.jts.geom.Geometry[])">hasNonEmptyElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNullElements(java.lang.Object[])">hasNullElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersection(com.vividsolutions.jts.geom.Geometry)">intersection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersects(com.vividsolutions.jts.geom.Geometry)">intersects</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isRectangle()">isRectangle</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isSimple()">isSimple</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isValid()">isValid</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isWithinDistance(com.vividsolutions.jts.geom.Geometry, double)">isWithinDistance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#overlaps(com.vividsolutions.jts.geom.Geometry)">overlaps</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry, java.lang.String)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setSRID(int)">setSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setUserData(java.lang.Object)">setUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#symDifference(com.vividsolutions.jts.geom.Geometry)">symDifference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toString()">toString</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toText()">toText</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#touches(com.vividsolutions.jts.geom.Geometry)">touches</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#union(com.vividsolutions.jts.geom.Geometry)">union</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#within(com.vividsolutions.jts.geom.Geometry)">within</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LineString(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.PrecisionModel, int)"><!-- --></A><H3>
+LineString</H3>
+<PRE>
+public <B>LineString</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] points,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<P>
+</DL>
+<HR>
+
+<A NAME="LineString(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+LineString</H3>
+<PRE>
+public <B>LineString</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> points,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</PRE>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>points</CODE> - the points of the linestring, or <code>null</code>
+ to create the empty geometry. Consecutive points may not be equal.</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinates()"><!-- --></A><H3>
+getCoordinates</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>getCoordinates</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns this <code>Geometry</code> s vertices. If you modify the coordinates
+ in this array, be sure to call #geometryChanged afterwards.
+ The <code>Geometry</code>s contained by composite <code>Geometry</code>s
+ must be Geometry's; that is, they must implement <code>getCoordinates</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCoordinates()">getCoordinates</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the vertices of this <code>Geometry</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinateSequence()"><!-- --></A><H3>
+getCoordinateSequence</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>getCoordinateSequence</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinateN(int)"><!-- --></A><H3>
+getCoordinateN</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinateN</B>(int n)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns a vertex of this <code>Geometry</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCoordinate()">getCoordinate</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> which is a vertex of this <code>Geometry</code>.
+ Returns <code>null</code> if this Geometry is empty</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDimension()"><!-- --></A><H3>
+getDimension</H3>
+<PRE>
+public int <B>getDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the dimension of this <code>Geometry</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getDimension()">getDimension</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the dimension of the class implementing this interface, whether
+ or not this object is the empty geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundaryDimension()"><!-- --></A><H3>
+getBoundaryDimension</H3>
+<PRE>
+public int <B>getBoundaryDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the dimension of this <code>Geometry</code>s inherent boundary.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundaryDimension()">getBoundaryDimension</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the dimension of the boundary of the class implementing this
+ interface, whether or not this object is the empty geometry. Returns
+ <code>Dimension.FALSE</code> if the boundary is the empty geometry.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEmpty()"><!-- --></A><H3>
+isEmpty</H3>
+<PRE>
+public boolean <B>isEmpty</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns whether or not the set of points in this <code>Geometry</code> is
+ empty.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isEmpty()">isEmpty</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Geometry</code> equals the empty
+ geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNumPoints()"><!-- --></A><H3>
+getNumPoints</H3>
+<PRE>
+public int <B>getNumPoints</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the count of this <code>Geometry</code>s vertices. The <code>Geometry</code>
+ s contained by composite <code>Geometry</code>s must be
+ Geometry's; that is, they must implement <code>getNumPoints</code>
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getNumPoints()">getNumPoints</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of vertices in this <code>Geometry</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPointN(int)"><!-- --></A><H3>
+getPointN</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A> <B>getPointN</B>(int n)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStartPoint()"><!-- --></A><H3>
+getStartPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A> <B>getStartPoint</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEndPoint()"><!-- --></A><H3>
+getEndPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A> <B>getEndPoint</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isClosed()"><!-- --></A><H3>
+isClosed</H3>
+<PRE>
+public boolean <B>isClosed</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isRing()"><!-- --></A><H3>
+isRing</H3>
+<PRE>
+public boolean <B>isRing</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGeometryType()"><!-- --></A><H3>
+getGeometryType</H3>
+<PRE>
+public java.lang.String <B>getGeometryType</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getGeometryType()">getGeometryType</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the name of this <code>Geometry</code>s most specific <code>com.vividsolutions.jts.geom</code>
+ interface</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLength()"><!-- --></A><H3>
+getLength</H3>
+<PRE>
+public double <B>getLength</B>()</PRE>
+<DL>
+<DD>Returns the length of this <code>LineString</code>
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getLength()">getLength</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the area of the polygon</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundary()"><!-- --></A><H3>
+getBoundary</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getBoundary</B>()</PRE>
+<DL>
+<DD>Gets the boundary of this geometry.
+ The boundary of a lineal geometry is always a zero-dimensional geometry (which may be empty).
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundary()">getBoundary</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the boundary geometry<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundary()"><CODE>Geometry.getBoundary()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reverse()"><!-- --></A><H3>
+reverse</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>reverse</B>()</PRE>
+<DL>
+<DD>Creates a <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> whose coordinates are in the reverse
+ order of this objects
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> with coordinates in the reverse order</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCoordinate(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+isCoordinate</H3>
+<PRE>
+public boolean <B>isCoordinate</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Returns true if the given point is a vertex of this <code>LineString</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pt</CODE> - the <code>Coordinate</code> to check
+<DT><B>Returns:</B><DD><code>true</code> if <code>pt</code> is one of this <code>LineString</code>
+ 's vertices</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeEnvelopeInternal()"><!-- --></A><H3>
+computeEnvelopeInternal</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>computeEnvelopeInternal</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the minimum and maximum x and y values in this <code>Geometry</code>
+ , or a null <code>Envelope</code> if this <code>Geometry</code> is empty.
+ Unlike <code>getEnvelopeInternal</code>, this method calculates the <code>Envelope</code>
+ each time it is called; <code>getEnvelopeInternal</code> caches the result
+ of this method.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#computeEnvelopeInternal()">computeEnvelopeInternal</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>this <code>Geometry</code>s bounding box; if the <code>Geometry</code>
+ is empty, <code>Envelope#isNull</code> will return <code>true</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+equalsExact</H3>
+<PRE>
+public boolean <B>equalsExact</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.
+ Two Geometries are exactly equal within a distance tolerance
+ if and only if:
+ <ul>
+ <li>they have the same class
+ <li>they have the same values for their vertices,
+ within the given tolerance distance, in exactly the same order.
+ </ul>
+ If this and the other <code>Geometry</code>s are
+ composites and any children are not <code>Geometry</code>s, returns
+ <code>false</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if this and the other <code>Geometry</code>
+ are of the same class and have equal internal data.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.CoordinateFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation with or on this <code>Geometry</code>'s
+ coordinates.
+ If this method modifies any coordinate values,
+ #geometryChanged() must be called to update the geometry state.
+ Note that you cannot use this
+ method to
+ modify this Geometry if its underlying CoordinateSequence's #get method
+ returns a copy of the Coordinate, rather than the actual Coordinate stored
+ (if it even stores Coordinates at all).
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply to this <code>Geometry</code>'s
+ coordinates</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation on the coordinates in this <code>Geometry</code>'s
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.
+ If this method modifies any coordinate values,
+ #geometryChanged() must be called to update the geometry state.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.GeometryFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation with or on this <code>Geometry</code> and its
+ subelement <code>Geometry</code>s (if any).
+ Only GeometryCollections and subclasses
+ have subelement Geometry's.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.GeometryFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply to this <code>Geometry</code> (and
+ its children, if it is a <code>GeometryCollection</code>).</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.GeometryComponentFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation with or on this Geometry and its
+ component Geometry's. Only GeometryCollections and
+ Polygons have component Geometry's; for Polygons they are the LinearRings
+ of the shell and holes.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply to this <code>Geometry</code>.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clone()"><!-- --></A><H3>
+clone</H3>
+<PRE>
+public java.lang.Object <B>clone</B>()</PRE>
+<DL>
+<DD>Creates and returns a full copy of this <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> object.
+ (including all coordinates contained by it).
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#clone()">clone</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a clone of this instance</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="normalize()"><!-- --></A><H3>
+normalize</H3>
+<PRE>
+public void <B>normalize</B>()</PRE>
+<DL>
+<DD>Normalizes a LineString. A normalized linestring
+ has the first point which is not equal to it's reflected point
+ less than the reflected point.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#normalize()">normalize</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEquivalentClass(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+isEquivalentClass</H3>
+<PRE>
+protected boolean <B>isEquivalentClass</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns whether the two <code>Geometry</code>s are equal, from the point
+ of view of the <code>equalsExact</code> method. Called by <code>equalsExact</code>
+ . In general, two <code>Geometry</code> classes are considered to be
+ "equivalent" only if they are the same class. An exception is <code>LineString</code>
+ , which is considered to be equivalent to its subclasses.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isEquivalentClass(com.vividsolutions.jts.geom.Geometry)">isEquivalentClass</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+ for equality
+<DT><B>Returns:</B><DD><code>true</code> if the classes of the two <code>Geometry</code>
+ s are considered to be equal by the <code>equalsExact</code> method.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareToSameClass(java.lang.Object)"><!-- --></A><H3>
+compareToSameClass</H3>
+<PRE>
+protected int <B>compareToSameClass</B>(java.lang.Object o)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> having the same class.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareToSameClass(java.lang.Object)">compareToSameClass</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o</CODE> - a <code>Geometry</code> having the same class as this <code>Geometry</code>
+<DT><B>Returns:</B><DD>a positive number, 0, or a negative number, depending on whether
+ this object is greater than, equal to, or less than <code>o</code>, as
+ defined in "Normal Form For Geometry" in the JTS Technical
+ Specifications</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)"><!-- --></A><H3>
+compareToSameClass</H3>
+<PRE>
+protected int <B>compareToSameClass</B>(java.lang.Object o,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A> comp)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> of the same class.
+ using the given <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom"><CODE>CoordinateSequenceComparator</CODE></A>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareToSameClass</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o</CODE> - a <code>Geometry</code> having the same class as this <code>Geometry</code><DD><CODE>comp</CODE> - a <code>CoordinateSequenceComparator</code>
+<DT><B>Returns:</B><DD>a positive number, 0, or a negative number, depending on whether
+ this object is greater than, equal to, or less than <code>o</code>, as
+ defined in "Normal Form For Geometry" in the JTS Technical
+ Specifications</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineString.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.Geometry">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/LinearRing.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/LinearRing.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/LinearRing.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+LinearRing
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.LinearRing class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LinearRing";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LinearRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.Geometry">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class LinearRing</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.Geometry</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.LineString</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.LinearRing</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, java.lang.Comparable, java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>LinearRing</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></DL>
+
+<P>
+Models an OGC SFS <code>LinearRing</code>.
+ A LinearRing is a LineString which is both closed and simple.
+ In other words,
+ the first and last coordinate in the ring must be equal,
+ and the interior of the ring must not self-intersect.
+ Either orientation of the ring is allowed.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.LinearRing">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#envelope">envelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#factory">factory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#SRID">SRID</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html#LinearRing(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.PrecisionModel, int)">LinearRing</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] points,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>Use GeometryFactory instead</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html#LinearRing(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.GeometryFactory)">LinearRing</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> points,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</CODE>
+
+<BR>
+ Constructs a <code>LinearRing</code> with the vertices
+ specifed by the given <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html#getBoundaryDimension()">getBoundaryDimension</A></B>()</CODE>
+
+<BR>
+ Returns <code>Dimension.FALSE</code>, since by definition LinearRings do
+ not have a boundary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html#getGeometryType()">getGeometryType</A></B>()</CODE>
+
+<BR>
+ Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html#isSimple()">isSimple</A></B>()</CODE>
+
+<BR>
+ Returns <code>true</code>, since by definition LinearRings are always simple.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.LineString"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#apply(com.vividsolutions.jts.geom.GeometryFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#clone()">clone</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#compareToSameClass(java.lang.Object)">compareToSameClass</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareToSameClass</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#computeEnvelopeInternal()">computeEnvelopeInternal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getBoundary()">getBoundary</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getCoordinate()">getCoordinate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getCoordinateN(int)">getCoordinateN</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getCoordinates()">getCoordinates</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getCoordinateSequence()">getCoordinateSequence</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getDimension()">getDimension</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getEndPoint()">getEndPoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getLength()">getLength</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getNumPoints()">getNumPoints</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getPointN(int)">getPointN</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getStartPoint()">getStartPoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#isClosed()">isClosed</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#isCoordinate(com.vividsolutions.jts.geom.Coordinate)">isCoordinate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#isEmpty()">isEmpty</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#isEquivalentClass(com.vividsolutions.jts.geom.Geometry)">isEquivalentClass</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#isRing()">isRing</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#normalize()">normalize</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#reverse()">reverse</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#checkNotGeometryCollection(com.vividsolutions.jts.geom.Geometry)">checkNotGeometryCollection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compare(java.util.Collection, java.util.Collection)">compare</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#contains(com.vividsolutions.jts.geom.Geometry)">contains</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#convexHull()">convexHull</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#coveredBy(com.vividsolutions.jts.geom.Geometry)">coveredBy</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#covers(com.vividsolutions.jts.geom.Geometry)">covers</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#crosses(com.vividsolutions.jts.geom.Geometry)">crosses</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#difference(com.vividsolutions.jts.geom.Geometry)">difference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#disjoint(com.vividsolutions.jts.geom.Geometry)">disjoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#distance(com.vividsolutions.jts.geom.Geometry)">distance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, double)">equal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equals(com.vividsolutions.jts.geom.Geometry)">equals</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry)">equalsExact</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChanged()">geometryChanged</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChangedAction()">geometryChangedAction</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getArea()">getArea</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCentroid()">getCentroid</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelope()">getEnvelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelopeInternal()">getEnvelopeInternal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getFactory()">getFactory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getGeometryN(int)">getGeometryN</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getInteriorPoint()">getInteriorPoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getNumGeometries()">getNumGeometries</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getPrecisionModel()">getPrecisionModel</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getSRID()">getSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getUserData()">getUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNonEmptyElements(com.vividsolutions.jts.geom.Geometry[])">hasNonEmptyElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNullElements(java.lang.Object[])">hasNullElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersection(com.vividsolutions.jts.geom.Geometry)">intersection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersects(com.vividsolutions.jts.geom.Geometry)">intersects</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isRectangle()">isRectangle</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isValid()">isValid</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isWithinDistance(com.vividsolutions.jts.geom.Geometry, double)">isWithinDistance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#overlaps(com.vividsolutions.jts.geom.Geometry)">overlaps</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry, java.lang.String)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setSRID(int)">setSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setUserData(java.lang.Object)">setUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#symDifference(com.vividsolutions.jts.geom.Geometry)">symDifference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toString()">toString</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toText()">toText</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#touches(com.vividsolutions.jts.geom.Geometry)">touches</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#union(com.vividsolutions.jts.geom.Geometry)">union</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#within(com.vividsolutions.jts.geom.Geometry)">within</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LinearRing(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.PrecisionModel, int)"><!-- --></A><H3>
+LinearRing</H3>
+<PRE>
+public <B>LinearRing</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] points,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<P>
+<DD>Constructs a <code>LinearRing</code> with the given points.
+<P>
+<DT><B>Parameters:</B><DD><CODE>points</CODE> - points forming a closed and simple linestring, or
+ <code>null</code> or an empty array to create the empty geometry.
+ This array must not contain <code>null</code> elements.<DD><CODE>precisionModel</CODE> - the specification of the grid of allowable points
+ for this <code>LinearRing</code><DD><CODE>SRID</CODE> - the ID of the Spatial Reference System used by this
+ <code>LinearRing</code></DL>
+<HR>
+
+<A NAME="LinearRing(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+LinearRing</H3>
+<PRE>
+public <B>LinearRing</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> points,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</PRE>
+<DL>
+<DD>Constructs a <code>LinearRing</code> with the vertices
+ specifed by the given <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.
+<P>
+<DT><B>Parameters:</B><DD><CODE>points</CODE> - a sequence points forming a closed and simple linestring, or
+ <code>null</code> to create the empty geometry.</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getBoundaryDimension()"><!-- --></A><H3>
+getBoundaryDimension</H3>
+<PRE>
+public int <B>getBoundaryDimension</B>()</PRE>
+<DL>
+<DD>Returns <code>Dimension.FALSE</code>, since by definition LinearRings do
+ not have a boundary.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getBoundaryDimension()">getBoundaryDimension</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Dimension.FALSE</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSimple()"><!-- --></A><H3>
+isSimple</H3>
+<PRE>
+public boolean <B>isSimple</B>()</PRE>
+<DL>
+<DD>Returns <code>true</code>, since by definition LinearRings are always simple.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isSimple()">isSimple</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code><DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isSimple()"><CODE>Geometry.isSimple()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGeometryType()"><!-- --></A><H3>
+getGeometryType</H3>
+<PRE>
+public java.lang.String <B>getGeometryType</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html#getGeometryType()">getGeometryType</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LinearRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.Geometry">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Location.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Location.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Location.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,369 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+Location
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.Location class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Location";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Location.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class Location</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.Location</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Location</B><DT>extends java.lang.Object</DL>
+
+<P>
+Constants representing the location of a point relative to a geometry. They
+ can also be thought of as the row or column index of a DE-9IM matrix. For a
+ description of the DE-9IM, see the <A
+ HREF="http://www.opengis.org/techno/specs.htm">OpenGIS Simple Features
+ Specification for SQL</A> .
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Location.html#BOUNDARY">BOUNDARY</A></B></CODE>
+
+<BR>
+ DE-9IM row index of the boundary of the first geometry and column index of
+ the boundary of the second geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Location.html#EXTERIOR">EXTERIOR</A></B></CODE>
+
+<BR>
+ DE-9IM row index of the exterior of the first geometry and column index of
+ the exterior of the second geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Location.html#INTERIOR">INTERIOR</A></B></CODE>
+
+<BR>
+ DE-9IM row index of the interior of the first geometry and column index of
+ the interior of the second geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Location.html#NONE">NONE</A></B></CODE>
+
+<BR>
+ Used for uninitialized location values.</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Location.html#Location()">Location</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static char</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Location.html#toLocationSymbol(int)">toLocationSymbol</A></B>(int locationValue)</CODE>
+
+<BR>
+ Converts the location value to a location symbol, for example, <code>EXTERIOR => 'e'</code>
+ .</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="INTERIOR"><!-- --></A><H3>
+INTERIOR</H3>
+<PRE>
+public static final int <B>INTERIOR</B></PRE>
+<DL>
+<DD>DE-9IM row index of the interior of the first geometry and column index of
+ the interior of the second geometry. Location value for the interior of a
+ geometry.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geom.Location.INTERIOR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="BOUNDARY"><!-- --></A><H3>
+BOUNDARY</H3>
+<PRE>
+public static final int <B>BOUNDARY</B></PRE>
+<DL>
+<DD>DE-9IM row index of the boundary of the first geometry and column index of
+ the boundary of the second geometry. Location value for the boundary of a
+ geometry.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geom.Location.BOUNDARY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="EXTERIOR"><!-- --></A><H3>
+EXTERIOR</H3>
+<PRE>
+public static final int <B>EXTERIOR</B></PRE>
+<DL>
+<DD>DE-9IM row index of the exterior of the first geometry and column index of
+ the exterior of the second geometry. Location value for the exterior of a
+ geometry.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geom.Location.EXTERIOR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="NONE"><!-- --></A><H3>
+NONE</H3>
+<PRE>
+public static final int <B>NONE</B></PRE>
+<DL>
+<DD>Used for uninitialized location values.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geom.Location.NONE">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Location()"><!-- --></A><H3>
+Location</H3>
+<PRE>
+public <B>Location</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="toLocationSymbol(int)"><!-- --></A><H3>
+toLocationSymbol</H3>
+<PRE>
+public static char <B>toLocationSymbol</B>(int locationValue)</PRE>
+<DL>
+<DD>Converts the location value to a location symbol, for example, <code>EXTERIOR => 'e'</code>
+ .
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locationValue</CODE> - either EXTERIOR, BOUNDARY, INTERIOR or NONE
+<DT><B>Returns:</B><DD>either 'e', 'b', 'i' or '-'</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Location.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/MultiLineString.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/MultiLineString.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/MultiLineString.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,507 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+MultiLineString
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.MultiLineString class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MultiLineString";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MultiLineString.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.GeometryCollection">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class MultiLineString</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.Geometry</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.GeometryCollection</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.MultiLineString</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, java.lang.Comparable, java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>MultiLineString</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></DL>
+
+<P>
+Basic implementation of <code>MultiLineString</code>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.MultiLineString">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.GeometryCollection"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#geometries">geometries</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#envelope">envelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#factory">factory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#SRID">SRID</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html#MultiLineString(com.vividsolutions.jts.geom.LineString[], com.vividsolutions.jts.geom.GeometryFactory)">MultiLineString</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>[] lineStrings,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html#MultiLineString(com.vividsolutions.jts.geom.LineString[], com.vividsolutions.jts.geom.PrecisionModel, int)">MultiLineString</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>[] lineStrings,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>Use GeometryFactory instead</I></TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</CODE>
+
+<BR>
+ Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html#getBoundary()">getBoundary</A></B>()</CODE>
+
+<BR>
+ Gets the boundary of this geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html#getBoundaryDimension()">getBoundaryDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>s inherent boundary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html#getDimension()">getDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html#getGeometryType()">getGeometryType</A></B>()</CODE>
+
+<BR>
+ Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html#isClosed()">isClosed</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html#reverse()">reverse</A></B>()</CODE>
+
+<BR>
+ Creates a <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A> in the reverse
+ order to this object.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.GeometryCollection"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.GeometryFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#clone()">clone</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#compareToSameClass(java.lang.Object)">compareToSameClass</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareToSameClass</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#computeEnvelopeInternal()">computeEnvelopeInternal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getArea()">getArea</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getCoordinate()">getCoordinate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getCoordinates()">getCoordinates</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getGeometryN(int)">getGeometryN</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getLength()">getLength</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getNumGeometries()">getNumGeometries</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getNumPoints()">getNumPoints</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#isEmpty()">isEmpty</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#normalize()">normalize</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#checkNotGeometryCollection(com.vividsolutions.jts.geom.Geometry)">checkNotGeometryCollection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compare(java.util.Collection, java.util.Collection)">compare</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#contains(com.vividsolutions.jts.geom.Geometry)">contains</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#convexHull()">convexHull</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#coveredBy(com.vividsolutions.jts.geom.Geometry)">coveredBy</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#covers(com.vividsolutions.jts.geom.Geometry)">covers</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#crosses(com.vividsolutions.jts.geom.Geometry)">crosses</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#difference(com.vividsolutions.jts.geom.Geometry)">difference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#disjoint(com.vividsolutions.jts.geom.Geometry)">disjoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#distance(com.vividsolutions.jts.geom.Geometry)">distance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, double)">equal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equals(com.vividsolutions.jts.geom.Geometry)">equals</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry)">equalsExact</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChanged()">geometryChanged</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChangedAction()">geometryChangedAction</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCentroid()">getCentroid</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelope()">getEnvelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelopeInternal()">getEnvelopeInternal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getFactory()">getFactory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getInteriorPoint()">getInteriorPoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getPrecisionModel()">getPrecisionModel</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getSRID()">getSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getUserData()">getUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNonEmptyElements(com.vividsolutions.jts.geom.Geometry[])">hasNonEmptyElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNullElements(java.lang.Object[])">hasNullElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersection(com.vividsolutions.jts.geom.Geometry)">intersection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersects(com.vividsolutions.jts.geom.Geometry)">intersects</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isEquivalentClass(com.vividsolutions.jts.geom.Geometry)">isEquivalentClass</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isRectangle()">isRectangle</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isSimple()">isSimple</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isValid()">isValid</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isWithinDistance(com.vividsolutions.jts.geom.Geometry, double)">isWithinDistance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#overlaps(com.vividsolutions.jts.geom.Geometry)">overlaps</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry, java.lang.String)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setSRID(int)">setSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setUserData(java.lang.Object)">setUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#symDifference(com.vividsolutions.jts.geom.Geometry)">symDifference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toString()">toString</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toText()">toText</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#touches(com.vividsolutions.jts.geom.Geometry)">touches</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#union(com.vividsolutions.jts.geom.Geometry)">union</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#within(com.vividsolutions.jts.geom.Geometry)">within</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MultiLineString(com.vividsolutions.jts.geom.LineString[], com.vividsolutions.jts.geom.PrecisionModel, int)"><!-- --></A><H3>
+MultiLineString</H3>
+<PRE>
+public <B>MultiLineString</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>[] lineStrings,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<P>
+<DD>Constructs a <code>MultiLineString</code>.
+<P>
+<DT><B>Parameters:</B><DD><CODE>lineStrings</CODE> - the <code>LineString</code>s for this <code>MultiLineString</code>
+ , or <code>null</code> or an empty array to create the empty geometry.
+ Elements may be empty <code>LineString</code>s, but not <code>null</code>
+ s.<DD><CODE>precisionModel</CODE> - the specification of the grid of allowable points
+ for this <code>MultiLineString</code><DD><CODE>SRID</CODE> - the ID of the Spatial Reference System used by this
+ <code>MultiLineString</code></DL>
+<HR>
+
+<A NAME="MultiLineString(com.vividsolutions.jts.geom.LineString[], com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+MultiLineString</H3>
+<PRE>
+public <B>MultiLineString</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>[] lineStrings,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</PRE>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>lineStrings</CODE> - the <code>LineString</code>s for this <code>MultiLineString</code>,
+ or <code>null</code> or an empty array to create the empty
+ geometry. Elements may be empty <code>LineString</code>s,
+ but not <code>null</code>s.</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getDimension()"><!-- --></A><H3>
+getDimension</H3>
+<PRE>
+public int <B>getDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the dimension of this <code>Geometry</code>.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getDimension()">getDimension</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundaryDimension()"><!-- --></A><H3>
+getBoundaryDimension</H3>
+<PRE>
+public int <B>getBoundaryDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the dimension of this <code>Geometry</code>s inherent boundary.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getBoundaryDimension()">getBoundaryDimension</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGeometryType()"><!-- --></A><H3>
+getGeometryType</H3>
+<PRE>
+public java.lang.String <B>getGeometryType</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getGeometryType()">getGeometryType</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isClosed()"><!-- --></A><H3>
+isClosed</H3>
+<PRE>
+public boolean <B>isClosed</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundary()"><!-- --></A><H3>
+getBoundary</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getBoundary</B>()</PRE>
+<DL>
+<DD>Gets the boundary of this geometry.
+ The boundary of a lineal geometry is always a zero-dimensional geometry (which may be empty).
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getBoundary()">getBoundary</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the boundary geometry<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundary()"><CODE>Geometry.getBoundary()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reverse()"><!-- --></A><H3>
+reverse</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A> <B>reverse</B>()</PRE>
+<DL>
+<DD>Creates a <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A> in the reverse
+ order to this object.
+ Both the order of the component LineStrings
+ and the order of their coordinate sequences
+ are reversed.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A> in the reverse order</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+equalsExact</H3>
+<PRE>
+public boolean <B>equalsExact</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.
+ Two Geometries are exactly equal within a distance tolerance
+ if and only if:
+ <ul>
+ <li>they have the same class
+ <li>they have the same values for their vertices,
+ within the given tolerance distance, in exactly the same order.
+ </ul>
+ If this and the other <code>Geometry</code>s are
+ composites and any children are not <code>Geometry</code>s, returns
+ <code>false</code>.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MultiLineString.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.GeometryCollection">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/MultiPoint.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/MultiPoint.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/MultiPoint.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,510 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+MultiPoint
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.MultiPoint class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MultiPoint";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MultiPoint.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.GeometryCollection">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class MultiPoint</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.Geometry</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.GeometryCollection</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.MultiPoint</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, java.lang.Comparable, java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>MultiPoint</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></DL>
+
+<P>
+Models a collection of <code>Point</code>s.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.MultiPoint">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.GeometryCollection"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#geometries">geometries</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#envelope">envelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#factory">factory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#SRID">SRID</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html#MultiPoint(com.vividsolutions.jts.geom.Point[], com.vividsolutions.jts.geom.GeometryFactory)">MultiPoint</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>[] points,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html#MultiPoint(com.vividsolutions.jts.geom.Point[], com.vividsolutions.jts.geom.PrecisionModel, int)">MultiPoint</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>[] points,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>Use GeometryFactory instead</I></TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</CODE>
+
+<BR>
+ Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html#getBoundary()">getBoundary</A></B>()</CODE>
+
+<BR>
+ Gets the boundary of this geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html#getBoundaryDimension()">getBoundaryDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>s inherent boundary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html#getCoordinate(int)">getCoordinate</A></B>(int n)</CODE>
+
+<BR>
+ Returns the <code>Coordinate</code> at the given position.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html#getDimension()">getDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html#getGeometryType()">getGeometryType</A></B>()</CODE>
+
+<BR>
+ Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html#isValid()">isValid</A></B>()</CODE>
+
+<BR>
+ Tests the validity of this <code>Geometry</code>.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.GeometryCollection"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.GeometryFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#clone()">clone</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#compareToSameClass(java.lang.Object)">compareToSameClass</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareToSameClass</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#computeEnvelopeInternal()">computeEnvelopeInternal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getArea()">getArea</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getCoordinate()">getCoordinate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getCoordinates()">getCoordinates</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getGeometryN(int)">getGeometryN</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getLength()">getLength</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getNumGeometries()">getNumGeometries</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getNumPoints()">getNumPoints</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#isEmpty()">isEmpty</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#normalize()">normalize</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#checkNotGeometryCollection(com.vividsolutions.jts.geom.Geometry)">checkNotGeometryCollection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compare(java.util.Collection, java.util.Collection)">compare</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#contains(com.vividsolutions.jts.geom.Geometry)">contains</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#convexHull()">convexHull</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#coveredBy(com.vividsolutions.jts.geom.Geometry)">coveredBy</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#covers(com.vividsolutions.jts.geom.Geometry)">covers</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#crosses(com.vividsolutions.jts.geom.Geometry)">crosses</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#difference(com.vividsolutions.jts.geom.Geometry)">difference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#disjoint(com.vividsolutions.jts.geom.Geometry)">disjoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#distance(com.vividsolutions.jts.geom.Geometry)">distance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, double)">equal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equals(com.vividsolutions.jts.geom.Geometry)">equals</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry)">equalsExact</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChanged()">geometryChanged</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChangedAction()">geometryChangedAction</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCentroid()">getCentroid</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelope()">getEnvelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelopeInternal()">getEnvelopeInternal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getFactory()">getFactory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getInteriorPoint()">getInteriorPoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getPrecisionModel()">getPrecisionModel</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getSRID()">getSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getUserData()">getUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNonEmptyElements(com.vividsolutions.jts.geom.Geometry[])">hasNonEmptyElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNullElements(java.lang.Object[])">hasNullElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersection(com.vividsolutions.jts.geom.Geometry)">intersection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersects(com.vividsolutions.jts.geom.Geometry)">intersects</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isEquivalentClass(com.vividsolutions.jts.geom.Geometry)">isEquivalentClass</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isRectangle()">isRectangle</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isSimple()">isSimple</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isWithinDistance(com.vividsolutions.jts.geom.Geometry, double)">isWithinDistance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#overlaps(com.vividsolutions.jts.geom.Geometry)">overlaps</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry, java.lang.String)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setSRID(int)">setSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setUserData(java.lang.Object)">setUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#symDifference(com.vividsolutions.jts.geom.Geometry)">symDifference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toString()">toString</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toText()">toText</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#touches(com.vividsolutions.jts.geom.Geometry)">touches</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#union(com.vividsolutions.jts.geom.Geometry)">union</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#within(com.vividsolutions.jts.geom.Geometry)">within</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MultiPoint(com.vividsolutions.jts.geom.Point[], com.vividsolutions.jts.geom.PrecisionModel, int)"><!-- --></A><H3>
+MultiPoint</H3>
+<PRE>
+public <B>MultiPoint</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>[] points,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<P>
+<DD>Constructs a <code>MultiPoint</code>.
+<P>
+<DT><B>Parameters:</B><DD><CODE>points</CODE> - the <code>Point</code>s for this <code>MultiPoint</code>
+ , or <code>null</code> or an empty array to create the empty geometry.
+ Elements may be empty <code>Point</code>s, but not <code>null</code>s.<DD><CODE>precisionModel</CODE> - the specification of the grid of allowable points
+ for this <code>MultiPoint</code><DD><CODE>SRID</CODE> - the ID of the Spatial Reference System used by this
+ <code>MultiPoint</code></DL>
+<HR>
+
+<A NAME="MultiPoint(com.vividsolutions.jts.geom.Point[], com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+MultiPoint</H3>
+<PRE>
+public <B>MultiPoint</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>[] points,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</PRE>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>points</CODE> - the <code>Point</code>s for this <code>MultiPoint</code>
+ , or <code>null</code> or an empty array to create the empty geometry.
+ Elements may be empty <code>Point</code>s, but not <code>null</code>s.</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getDimension()"><!-- --></A><H3>
+getDimension</H3>
+<PRE>
+public int <B>getDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the dimension of this <code>Geometry</code>.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getDimension()">getDimension</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundaryDimension()"><!-- --></A><H3>
+getBoundaryDimension</H3>
+<PRE>
+public int <B>getBoundaryDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the dimension of this <code>Geometry</code>s inherent boundary.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getBoundaryDimension()">getBoundaryDimension</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGeometryType()"><!-- --></A><H3>
+getGeometryType</H3>
+<PRE>
+public java.lang.String <B>getGeometryType</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getGeometryType()">getGeometryType</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundary()"><!-- --></A><H3>
+getBoundary</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getBoundary</B>()</PRE>
+<DL>
+<DD>Gets the boundary of this geometry.
+ Zero-dimensional geometries have no boundary by definition,
+ so an empty GeometryCollection is returned.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getBoundary()">getBoundary</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an empty GeometryCollection<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundary()"><CODE>Geometry.getBoundary()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isValid()"><!-- --></A><H3>
+isValid</H3>
+<PRE>
+public boolean <B>isValid</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Tests the validity of this <code>Geometry</code>.
+ Subclasses provide their own definition of "valid".
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isValid()">isValid</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Geometry</code> is valid<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid"><CODE>IsValidOp</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+equalsExact</H3>
+<PRE>
+public boolean <B>equalsExact</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.
+ Two Geometries are exactly equal within a distance tolerance
+ if and only if:
+ <ul>
+ <li>they have the same class
+ <li>they have the same values for their vertices,
+ within the given tolerance distance, in exactly the same order.
+ </ul>
+ If this and the other <code>Geometry</code>s are
+ composites and any children are not <code>Geometry</code>s, returns
+ <code>false</code>.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate(int)"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>(int n)</PRE>
+<DL>
+<DD>Returns the <code>Coordinate</code> at the given position.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>n</CODE> - the index of the <code>Coordinate</code> to retrieve, beginning
+ at 0
+<DT><B>Returns:</B><DD>the <code>n</code>th <code>Coordinate</code></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MultiPoint.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.GeometryCollection">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/MultiPolygon.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/MultiPolygon.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/MultiPolygon.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,508 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+MultiPolygon
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.MultiPolygon class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MultiPolygon";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MultiPolygon.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.GeometryCollection">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class MultiPolygon</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.Geometry</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.GeometryCollection</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.MultiPolygon</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, java.lang.Comparable, java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>MultiPolygon</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></DL>
+
+<P>
+Basic implementation of <code>MultiPolygon</code>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.MultiPolygon">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.GeometryCollection"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#geometries">geometries</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#envelope">envelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#factory">factory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#SRID">SRID</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html#MultiPolygon(com.vividsolutions.jts.geom.Polygon[], com.vividsolutions.jts.geom.GeometryFactory)">MultiPolygon</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>[] polygons,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html#MultiPolygon(com.vividsolutions.jts.geom.Polygon[], com.vividsolutions.jts.geom.PrecisionModel, int)">MultiPolygon</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>[] polygons,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>Use GeometryFactory instead</I></TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</CODE>
+
+<BR>
+ Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html#getBoundary()">getBoundary</A></B>()</CODE>
+
+<BR>
+ Computes the boundary of this geometry</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html#getBoundaryDimension()">getBoundaryDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>s inherent boundary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html#getDimension()">getDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html#getGeometryType()">getGeometryType</A></B>()</CODE>
+
+<BR>
+ Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html#isSimple()">isSimple</A></B>()</CODE>
+
+<BR>
+ Tests whether this <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is simple.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.GeometryCollection"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.GeometryFilter)">apply</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#clone()">clone</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#compareToSameClass(java.lang.Object)">compareToSameClass</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareToSameClass</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#computeEnvelopeInternal()">computeEnvelopeInternal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getArea()">getArea</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getCoordinate()">getCoordinate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getCoordinates()">getCoordinates</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getGeometryN(int)">getGeometryN</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getLength()">getLength</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getNumGeometries()">getNumGeometries</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getNumPoints()">getNumPoints</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#isEmpty()">isEmpty</A>, <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#normalize()">normalize</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#checkNotGeometryCollection(com.vividsolutions.jts.geom.Geometry)">checkNotGeometryCollection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compare(java.util.Collection, java.util.Collection)">compare</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#contains(com.vividsolutions.jts.geom.Geometry)">contains</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#convexHull()">convexHull</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#coveredBy(com.vividsolutions.jts.geom.Geometry)">coveredBy</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#covers(com.vividsolutions.jts.geom.Geometry)">covers</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#crosses(com.vividsolutions.jts.geom.Geometry)">crosses</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#difference(com.vividsolutions.jts.geom.Geometry)">difference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#disjoint(com.vividsolutions.jts.geom.Geometry)">disjoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#distance(com.vividsolutions.jts.geom.Geometry)">distance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, double)">equal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equals(com.vividsolutions.jts.geom.Geometry)">equals</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry)">equalsExact</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChanged()">geometryChanged</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChangedAction()">geometryChangedAction</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCentroid()">getCentroid</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelope()">getEnvelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelopeInternal()">getEnvelopeInternal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getFactory()">getFactory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getInteriorPoint()">getInteriorPoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getPrecisionModel()">getPrecisionModel</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getSRID()">getSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getUserData()">getUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNonEmptyElements(com.vividsolutions.jts.geom.Geometry[])">hasNonEmptyElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNullElements(java.lang.Object[])">hasNullElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersection(com.vividsolutions.jts.geom.Geometry)">intersection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersects(com.vividsolutions.jts.geom.Geometry)">intersects</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isEquivalentClass(com.vividsolutions.jts.geom.Geometry)">isEquivalentClass</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isRectangle()">isRectangle</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isValid()">isValid</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isWithinDistance(com.vividsolutions.jts.geom.Geometry, double)">isWithinDistance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#overlaps(com.vividsolutions.jts.geom.Geometry)">overlaps</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry, java.lang.String)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setSRID(int)">setSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setUserData(java.lang.Object)">setUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#symDifference(com.vividsolutions.jts.geom.Geometry)">symDifference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toString()">toString</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toText()">toText</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#touches(com.vividsolutions.jts.geom.Geometry)">touches</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#union(com.vividsolutions.jts.geom.Geometry)">union</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#within(com.vividsolutions.jts.geom.Geometry)">within</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MultiPolygon(com.vividsolutions.jts.geom.Polygon[], com.vividsolutions.jts.geom.PrecisionModel, int)"><!-- --></A><H3>
+MultiPolygon</H3>
+<PRE>
+public <B>MultiPolygon</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>[] polygons,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<P>
+<DD>Constructs a <code>MultiPolygon</code>.
+<P>
+<DT><B>Parameters:</B><DD><CODE>polygons</CODE> - the <code>Polygon</code>s for this <code>MultiPolygon</code>
+ , or <code>null</code> or an empty array to create the empty geometry.
+ Elements may be empty <code>Polygon</code>s, but not <code>null</code>
+ s. The polygons must conform to the assertions specified in the <A
+ HREF="http://www.opengis.org/techno/specs.htm">OpenGIS Simple Features
+ Specification for SQL</A> .<DD><CODE>precisionModel</CODE> - the specification of the grid of allowable points
+ for this <code>MultiPolygon</code><DD><CODE>SRID</CODE> - the ID of the Spatial Reference System used by this
+ <code>MultiPolygon</code></DL>
+<HR>
+
+<A NAME="MultiPolygon(com.vividsolutions.jts.geom.Polygon[], com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+MultiPolygon</H3>
+<PRE>
+public <B>MultiPolygon</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>[] polygons,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</PRE>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>polygons</CODE> - the <code>Polygon</code>s for this <code>MultiPolygon</code>,
+ or <code>null</code> or an empty array to create the empty
+ geometry. Elements may be empty <code>Polygon</code>s, but
+ not <code>null</code>s. The polygons must conform to the
+ assertions specified in the <A
+ HREF="http://www.opengis.org/techno/specs.htm">OpenGIS Simple
+ Features Specification for SQL</A>.</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getDimension()"><!-- --></A><H3>
+getDimension</H3>
+<PRE>
+public int <B>getDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the dimension of this <code>Geometry</code>.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getDimension()">getDimension</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundaryDimension()"><!-- --></A><H3>
+getBoundaryDimension</H3>
+<PRE>
+public int <B>getBoundaryDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the dimension of this <code>Geometry</code>s inherent boundary.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getBoundaryDimension()">getBoundaryDimension</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGeometryType()"><!-- --></A><H3>
+getGeometryType</H3>
+<PRE>
+public java.lang.String <B>getGeometryType</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getGeometryType()">getGeometryType</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSimple()"><!-- --></A><H3>
+isSimple</H3>
+<PRE>
+public boolean <B>isSimple</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Tests whether this <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is simple.
+ In general, the SFS specification of simplicity
+ follows the rule:
+ <UL>
+ <LI> A Geometry is simple iff the only self-intersections are at
+ boundary points.
+ </UL>
+ Simplicity is defined for each <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> subclass as follows:
+ <ul>
+ <li>Valid polygonal geometries are simple by definition, so
+ <code>isSimple</code> trivially returns true.
+ <li>Linear geometries are simple iff they do not self-intersect at points
+ other than boundary points.
+ <li>Zero-dimensional geometries (points) are simple iff they have no
+ repeated points.
+ <li>Empty <code>Geometry</code>s are always simple
+ <ul>
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isSimple()">isSimple</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Geometry</code> has any points of
+ self-tangency, self-intersection or other anomalous points<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isValid()"><CODE>Geometry.isValid()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundary()"><!-- --></A><H3>
+getBoundary</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getBoundary</B>()</PRE>
+<DL>
+<DD>Computes the boundary of this geometry
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#getBoundary()">getBoundary</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a lineal geometry (which may be empty)<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundary()"><CODE>Geometry.getBoundary()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+equalsExact</H3>
+<PRE>
+public boolean <B>equalsExact</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.
+ Two Geometries are exactly equal within a distance tolerance
+ if and only if:
+ <ul>
+ <li>they have the same class
+ <li>they have the same values for their vertices,
+ within the given tolerance distance, in exactly the same order.
+ </ul>
+ If this and the other <code>Geometry</code>s are
+ composites and any children are not <code>Geometry</code>s, returns
+ <code>false</code>.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MultiPolygon.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.GeometryCollection">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Point.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Point.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Point.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,968 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+Point
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.Point class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Point";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Point.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.Geometry">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class Point</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.Geometry</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.Point</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, java.lang.Comparable, java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>Point</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></DL>
+
+<P>
+Basic implementation of <code>Point</code>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.Point">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#envelope">envelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#factory">factory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#SRID">SRID</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#Point(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.PrecisionModel, int)">Point</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coordinate,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>Use GeometryFactory instead</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#Point(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.GeometryFactory)">Point</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordinates,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation with or on this <code>Geometry</code>'s
+ coordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation on the coordinates in this <code>Geometry</code>'s
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation with or on this Geometry and its
+ component Geometry's.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#apply(com.vividsolutions.jts.geom.GeometryFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation with or on this <code>Geometry</code> and its
+ subelement <code>Geometry</code>s (if any).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#clone()">clone</A></B>()</CODE>
+
+<BR>
+ Creates and returns a full copy of this <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><CODE>Point</CODE></A> object.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#compareToSameClass(java.lang.Object)">compareToSameClass</A></B>(java.lang.Object other)</CODE>
+
+<BR>
+ Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> having the same class.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareToSameClass</A></B>(java.lang.Object other,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A> comp)</CODE>
+
+<BR>
+ Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> of the same class.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#computeEnvelopeInternal()">computeEnvelopeInternal</A></B>()</CODE>
+
+<BR>
+ Returns the minimum and maximum x and y values in this <code>Geometry</code>
+ , or a null <code>Envelope</code> if this <code>Geometry</code> is empty.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</CODE>
+
+<BR>
+ Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#getBoundary()">getBoundary</A></B>()</CODE>
+
+<BR>
+ Gets the boundary of this geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#getBoundaryDimension()">getBoundaryDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>s inherent boundary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ Returns a vertex of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#getCoordinates()">getCoordinates</A></B>()</CODE>
+
+<BR>
+ Returns this <code>Geometry</code> s vertices.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#getCoordinateSequence()">getCoordinateSequence</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#getDimension()">getDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#getGeometryType()">getGeometryType</A></B>()</CODE>
+
+<BR>
+ Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#getNumPoints()">getNumPoints</A></B>()</CODE>
+
+<BR>
+ Returns the count of this <code>Geometry</code>s vertices.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#getX()">getX</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#getY()">getY</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#isEmpty()">isEmpty</A></B>()</CODE>
+
+<BR>
+ Returns whether or not the set of points in this <code>Geometry</code> is
+ empty.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#isSimple()">isSimple</A></B>()</CODE>
+
+<BR>
+ Tests whether this <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is simple.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#isValid()">isValid</A></B>()</CODE>
+
+<BR>
+ Tests the validity of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html#normalize()">normalize</A></B>()</CODE>
+
+<BR>
+ Converts this <code>Geometry</code> to <b>normal form</b> (or <b>
+ canonical form</b> ).</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#checkNotGeometryCollection(com.vividsolutions.jts.geom.Geometry)">checkNotGeometryCollection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compare(java.util.Collection, java.util.Collection)">compare</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#contains(com.vividsolutions.jts.geom.Geometry)">contains</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#convexHull()">convexHull</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#coveredBy(com.vividsolutions.jts.geom.Geometry)">coveredBy</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#covers(com.vividsolutions.jts.geom.Geometry)">covers</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#crosses(com.vividsolutions.jts.geom.Geometry)">crosses</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#difference(com.vividsolutions.jts.geom.Geometry)">difference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#disjoint(com.vividsolutions.jts.geom.Geometry)">disjoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#distance(com.vividsolutions.jts.geom.Geometry)">distance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, double)">equal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equals(com.vividsolutions.jts.geom.Geometry)">equals</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry)">equalsExact</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChanged()">geometryChanged</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChangedAction()">geometryChangedAction</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getArea()">getArea</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCentroid()">getCentroid</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelope()">getEnvelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelopeInternal()">getEnvelopeInternal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getFactory()">getFactory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getGeometryN(int)">getGeometryN</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getInteriorPoint()">getInteriorPoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getLength()">getLength</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getNumGeometries()">getNumGeometries</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getPrecisionModel()">getPrecisionModel</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getSRID()">getSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getUserData()">getUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNonEmptyElements(com.vividsolutions.jts.geom.Geometry[])">hasNonEmptyElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNullElements(java.lang.Object[])">hasNullElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersection(com.vividsolutions.jts.geom.Geometry)">intersection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersects(com.vividsolutions.jts.geom.Geometry)">intersects</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isEquivalentClass(com.vividsolutions.jts.geom.Geometry)">isEquivalentClass</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isRectangle()">isRectangle</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isWithinDistance(com.vividsolutions.jts.geom.Geometry, double)">isWithinDistance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#overlaps(com.vividsolutions.jts.geom.Geometry)">overlaps</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry, java.lang.String)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setSRID(int)">setSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setUserData(java.lang.Object)">setUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#symDifference(com.vividsolutions.jts.geom.Geometry)">symDifference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toString()">toString</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toText()">toText</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#touches(com.vividsolutions.jts.geom.Geometry)">touches</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#union(com.vividsolutions.jts.geom.Geometry)">union</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#within(com.vividsolutions.jts.geom.Geometry)">within</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Point(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.PrecisionModel, int)"><!-- --></A><H3>
+Point</H3>
+<PRE>
+public <B>Point</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coordinate,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<P>
+<DD>Constructs a <code>Point</code> with the given coordinate.
+<P>
+<DT><B>Parameters:</B><DD><CODE>coordinate</CODE> - the coordinate on which to base this <code>Point</code>
+ , or <code>null</code> to create the empty geometry.<DD><CODE>precisionModel</CODE> - the specification of the grid of allowable points
+ for this <code>Point</code><DD><CODE>SRID</CODE> - the ID of the Spatial Reference System used by this
+ <code>Point</code></DL>
+<HR>
+
+<A NAME="Point(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+Point</H3>
+<PRE>
+public <B>Point</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordinates,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</PRE>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - contains the single coordinate on which to base this <code>Point</code>
+ , or <code>null</code> to create the empty geometry.</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinates()"><!-- --></A><H3>
+getCoordinates</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>getCoordinates</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns this <code>Geometry</code> s vertices. If you modify the coordinates
+ in this array, be sure to call #geometryChanged afterwards.
+ The <code>Geometry</code>s contained by composite <code>Geometry</code>s
+ must be Geometry's; that is, they must implement <code>getCoordinates</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCoordinates()">getCoordinates</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the vertices of this <code>Geometry</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNumPoints()"><!-- --></A><H3>
+getNumPoints</H3>
+<PRE>
+public int <B>getNumPoints</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the count of this <code>Geometry</code>s vertices. The <code>Geometry</code>
+ s contained by composite <code>Geometry</code>s must be
+ Geometry's; that is, they must implement <code>getNumPoints</code>
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getNumPoints()">getNumPoints</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of vertices in this <code>Geometry</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEmpty()"><!-- --></A><H3>
+isEmpty</H3>
+<PRE>
+public boolean <B>isEmpty</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns whether or not the set of points in this <code>Geometry</code> is
+ empty.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isEmpty()">isEmpty</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Geometry</code> equals the empty
+ geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSimple()"><!-- --></A><H3>
+isSimple</H3>
+<PRE>
+public boolean <B>isSimple</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Tests whether this <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is simple.
+ In general, the SFS specification of simplicity
+ follows the rule:
+ <UL>
+ <LI> A Geometry is simple iff the only self-intersections are at
+ boundary points.
+ </UL>
+ Simplicity is defined for each <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> subclass as follows:
+ <ul>
+ <li>Valid polygonal geometries are simple by definition, so
+ <code>isSimple</code> trivially returns true.
+ <li>Linear geometries are simple iff they do not self-intersect at points
+ other than boundary points.
+ <li>Zero-dimensional geometries (points) are simple iff they have no
+ repeated points.
+ <li>Empty <code>Geometry</code>s are always simple
+ <ul>
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isSimple()">isSimple</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Geometry</code> has any points of
+ self-tangency, self-intersection or other anomalous points<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isValid()"><CODE>Geometry.isValid()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isValid()"><!-- --></A><H3>
+isValid</H3>
+<PRE>
+public boolean <B>isValid</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Tests the validity of this <code>Geometry</code>.
+ Subclasses provide their own definition of "valid".
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isValid()">isValid</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Geometry</code> is valid<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid"><CODE>IsValidOp</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDimension()"><!-- --></A><H3>
+getDimension</H3>
+<PRE>
+public int <B>getDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the dimension of this <code>Geometry</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getDimension()">getDimension</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the dimension of the class implementing this interface, whether
+ or not this object is the empty geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundaryDimension()"><!-- --></A><H3>
+getBoundaryDimension</H3>
+<PRE>
+public int <B>getBoundaryDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the dimension of this <code>Geometry</code>s inherent boundary.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundaryDimension()">getBoundaryDimension</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the dimension of the boundary of the class implementing this
+ interface, whether or not this object is the empty geometry. Returns
+ <code>Dimension.FALSE</code> if the boundary is the empty geometry.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getX()"><!-- --></A><H3>
+getX</H3>
+<PRE>
+public double <B>getX</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getY()"><!-- --></A><H3>
+getY</H3>
+<PRE>
+public double <B>getY</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns a vertex of this <code>Geometry</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCoordinate()">getCoordinate</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> which is a vertex of this <code>Geometry</code>.
+ Returns <code>null</code> if this Geometry is empty</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGeometryType()"><!-- --></A><H3>
+getGeometryType</H3>
+<PRE>
+public java.lang.String <B>getGeometryType</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getGeometryType()">getGeometryType</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the name of this <code>Geometry</code>s most specific <code>com.vividsolutions.jts.geom</code>
+ interface</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundary()"><!-- --></A><H3>
+getBoundary</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getBoundary</B>()</PRE>
+<DL>
+<DD>Gets the boundary of this geometry.
+ Zero-dimensional geometries have no boundary by definition,
+ so an empty GeometryCollection is returned.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundary()">getBoundary</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an empty GeometryCollection<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundary()"><CODE>Geometry.getBoundary()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeEnvelopeInternal()"><!-- --></A><H3>
+computeEnvelopeInternal</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>computeEnvelopeInternal</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the minimum and maximum x and y values in this <code>Geometry</code>
+ , or a null <code>Envelope</code> if this <code>Geometry</code> is empty.
+ Unlike <code>getEnvelopeInternal</code>, this method calculates the <code>Envelope</code>
+ each time it is called; <code>getEnvelopeInternal</code> caches the result
+ of this method.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#computeEnvelopeInternal()">computeEnvelopeInternal</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>this <code>Geometry</code>s bounding box; if the <code>Geometry</code>
+ is empty, <code>Envelope#isNull</code> will return <code>true</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+equalsExact</H3>
+<PRE>
+public boolean <B>equalsExact</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.
+ Two Geometries are exactly equal within a distance tolerance
+ if and only if:
+ <ul>
+ <li>they have the same class
+ <li>they have the same values for their vertices,
+ within the given tolerance distance, in exactly the same order.
+ </ul>
+ If this and the other <code>Geometry</code>s are
+ composites and any children are not <code>Geometry</code>s, returns
+ <code>false</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if this and the other <code>Geometry</code>
+ are of the same class and have equal internal data.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.CoordinateFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation with or on this <code>Geometry</code>'s
+ coordinates.
+ If this method modifies any coordinate values,
+ #geometryChanged() must be called to update the geometry state.
+ Note that you cannot use this
+ method to
+ modify this Geometry if its underlying CoordinateSequence's #get method
+ returns a copy of the Coordinate, rather than the actual Coordinate stored
+ (if it even stores Coordinates at all).
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply to this <code>Geometry</code>'s
+ coordinates</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation on the coordinates in this <code>Geometry</code>'s
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.
+ If this method modifies any coordinate values,
+ #geometryChanged() must be called to update the geometry state.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.GeometryFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation with or on this <code>Geometry</code> and its
+ subelement <code>Geometry</code>s (if any).
+ Only GeometryCollections and subclasses
+ have subelement Geometry's.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.GeometryFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply to this <code>Geometry</code> (and
+ its children, if it is a <code>GeometryCollection</code>).</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.GeometryComponentFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation with or on this Geometry and its
+ component Geometry's. Only GeometryCollections and
+ Polygons have component Geometry's; for Polygons they are the LinearRings
+ of the shell and holes.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply to this <code>Geometry</code>.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clone()"><!-- --></A><H3>
+clone</H3>
+<PRE>
+public java.lang.Object <B>clone</B>()</PRE>
+<DL>
+<DD>Creates and returns a full copy of this <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><CODE>Point</CODE></A> object.
+ (including all coordinates contained by it).
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#clone()">clone</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a clone of this instance</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="normalize()"><!-- --></A><H3>
+normalize</H3>
+<PRE>
+public void <B>normalize</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Converts this <code>Geometry</code> to <b>normal form</b> (or <b>
+ canonical form</b> ). Normal form is a unique representation for <code>Geometry</code>
+ s. It can be used to test whether two <code>Geometry</code>s are equal
+ in a way that is independent of the ordering of the coordinates within
+ them. Normal form equality is a stronger condition than topological
+ equality, but weaker than pointwise equality. The definitions for normal
+ form use the standard lexicographical ordering for coordinates. "Sorted in
+ order of coordinates" means the obvious extension of this ordering to
+ sequences of coordinates.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#normalize()">normalize</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareToSameClass(java.lang.Object)"><!-- --></A><H3>
+compareToSameClass</H3>
+<PRE>
+protected int <B>compareToSameClass</B>(java.lang.Object other)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> having the same class.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareToSameClass(java.lang.Object)">compareToSameClass</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - a <code>Geometry</code> having the same class as this <code>Geometry</code>
+<DT><B>Returns:</B><DD>a positive number, 0, or a negative number, depending on whether
+ this object is greater than, equal to, or less than <code>o</code>, as
+ defined in "Normal Form For Geometry" in the JTS Technical
+ Specifications</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)"><!-- --></A><H3>
+compareToSameClass</H3>
+<PRE>
+protected int <B>compareToSameClass</B>(java.lang.Object other,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A> comp)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> of the same class.
+ using the given <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom"><CODE>CoordinateSequenceComparator</CODE></A>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareToSameClass</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - a <code>Geometry</code> having the same class as this <code>Geometry</code><DD><CODE>comp</CODE> - a <code>CoordinateSequenceComparator</code>
+<DT><B>Returns:</B><DD>a positive number, 0, or a negative number, depending on whether
+ this object is greater than, equal to, or less than <code>o</code>, as
+ defined in "Normal Form For Geometry" in the JTS Technical
+ Specifications</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinateSequence()"><!-- --></A><H3>
+getCoordinateSequence</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>getCoordinateSequence</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Point.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.Geometry">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Polygon.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Polygon.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Polygon.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,1147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+Polygon
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.Polygon class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Polygon";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Polygon.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class Polygon</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.Geometry</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.Polygon</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, java.lang.Comparable, java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>Polygon</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></DL>
+
+<P>
+Represents a linear polygon, which may include holes.
+ The shell and holes of the polygon are represented by <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A>s.
+ In a valid polygon, holes may touch the shell or other holes at a single point.
+ However, no sequence of touching holes may split the polygon into two pieces.
+ The orientation of the rings in the polygon does not matter.
+ <p>
+ The shell and holes must conform to the assertions specified in the <A
+ HREF="http://www.opengis.org/techno/specs.htm">OpenGIS Simple Features
+ Specification for SQL</A> .
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.Polygon">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#holes">holes</A></B></CODE>
+
+<BR>
+ The interior boundaries, if any.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#shell">shell</A></B></CODE>
+
+<BR>
+ The exterior boundary,
+ or <code>null</code> if this <code>Polygon</code>
+ is empty.</TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#envelope">envelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#factory">factory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#SRID">SRID</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#Polygon(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.LinearRing[], com.vividsolutions.jts.geom.GeometryFactory)">Polygon</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> shell,
+ <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>[] holes,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</CODE>
+
+<BR>
+ Constructs a <code>Polygon</code> with the given exterior boundary and
+ interior boundaries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#Polygon(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.LinearRing[], com.vividsolutions.jts.geom.PrecisionModel, int)">Polygon</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> shell,
+ <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>[] holes,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>Use GeometryFactory instead</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#Polygon(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.PrecisionModel, int)">Polygon</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> shell,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>Use GeometryFactory instead</I></TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation with or on this <code>Geometry</code>'s
+ coordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation on the coordinates in this <code>Geometry</code>'s
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation with or on this Geometry and its
+ component Geometry's.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#apply(com.vividsolutions.jts.geom.GeometryFilter)">apply</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A> filter)</CODE>
+
+<BR>
+ Performs an operation with or on this <code>Geometry</code> and its
+ subelement <code>Geometry</code>s (if any).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#clone()">clone</A></B>()</CODE>
+
+<BR>
+ Creates and returns a full copy of this <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A> object.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#compareToSameClass(java.lang.Object)">compareToSameClass</A></B>(java.lang.Object o)</CODE>
+
+<BR>
+ Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> having the same class.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareToSameClass</A></B>(java.lang.Object o,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A> comp)</CODE>
+
+<BR>
+ Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> of the same class.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#computeEnvelopeInternal()">computeEnvelopeInternal</A></B>()</CODE>
+
+<BR>
+ Returns the minimum and maximum x and y values in this <code>Geometry</code>
+ , or a null <code>Envelope</code> if this <code>Geometry</code> is empty.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#convexHull()">convexHull</A></B>()</CODE>
+
+<BR>
+ Computes the smallest convex <code>Polygon</code> that contains all the
+ points in the <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</CODE>
+
+<BR>
+ Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#getArea()">getArea</A></B>()</CODE>
+
+<BR>
+ Returns the area of this <code>Polygon</code></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#getBoundary()">getBoundary</A></B>()</CODE>
+
+<BR>
+ Computes the boundary of this geometry</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#getBoundaryDimension()">getBoundaryDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>s inherent boundary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ Returns a vertex of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#getCoordinates()">getCoordinates</A></B>()</CODE>
+
+<BR>
+ Returns this <code>Geometry</code> s vertices.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#getDimension()">getDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension of this <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#getExteriorRing()">getExteriorRing</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#getGeometryType()">getGeometryType</A></B>()</CODE>
+
+<BR>
+ Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#getInteriorRingN(int)">getInteriorRingN</A></B>(int n)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#getLength()">getLength</A></B>()</CODE>
+
+<BR>
+ Returns the perimeter of this <code>Polygon</code></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#getNumInteriorRing()">getNumInteriorRing</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#getNumPoints()">getNumPoints</A></B>()</CODE>
+
+<BR>
+ Returns the count of this <code>Geometry</code>s vertices.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#isEmpty()">isEmpty</A></B>()</CODE>
+
+<BR>
+ Returns whether or not the set of points in this <code>Geometry</code> is
+ empty.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#isRectangle()">isRectangle</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#isSimple()">isSimple</A></B>()</CODE>
+
+<BR>
+ Tests if a valid polygon is simple.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html#normalize()">normalize</A></B>()</CODE>
+
+<BR>
+ Converts this <code>Geometry</code> to <b>normal form</b> (or <b>
+ canonical form</b> ).</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#buffer(double, int, int)">buffer</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#checkNotGeometryCollection(com.vividsolutions.jts.geom.Geometry)">checkNotGeometryCollection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compare(java.util.Collection, java.util.Collection)">compare</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#contains(com.vividsolutions.jts.geom.Geometry)">contains</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#coveredBy(com.vividsolutions.jts.geom.Geometry)">coveredBy</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#covers(com.vividsolutions.jts.geom.Geometry)">covers</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#crosses(com.vividsolutions.jts.geom.Geometry)">crosses</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#difference(com.vividsolutions.jts.geom.Geometry)">difference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#disjoint(com.vividsolutions.jts.geom.Geometry)">disjoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#distance(com.vividsolutions.jts.geom.Geometry)">distance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, double)">equal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equals(com.vividsolutions.jts.geom.Geometry)">equals</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry)">equalsExact</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChanged()">geometryChanged</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChangedAction()">geometryChangedAction</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCentroid()">getCentroid</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelope()">getEnvelope</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getEnvelopeInternal()">getEnvelopeInternal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getFactory()">getFactory</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getGeometryN(int)">getGeometryN</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getInteriorPoint()">getInteriorPoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getNumGeometries()">getNumGeometries</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getPrecisionModel()">getPrecisionModel</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getSRID()">getSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getUserData()">getUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNonEmptyElements(com.vividsolutions.jts.geom.Geometry[])">hasNonEmptyElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#hasNullElements(java.lang.Object[])">hasNullElements</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersection(com.vividsolutions.jts.geom.Geometry)">intersection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#intersects(com.vividsolutions.jts.geom.Geometry)">intersects</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isEquivalentClass(com.vividsolutions.jts.geom.Geometry)">isEquivalentClass</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isValid()">isValid</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isWithinDistance(com.vividsolutions.jts.geom.Geometry, double)">isWithinDistance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#overlaps(com.vividsolutions.jts.geom.Geometry)">overlaps</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry, java.lang.String)">relate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setSRID(int)">setSRID</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#setUserData(java.lang.Object)">setUserData</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#symDifference(com.vividsolutions.jts.geom.Geometry)">symDifference</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toString()">toString</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#toText()">toText</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#touches(com.vividsolutions.jts.geom.Geometry)">touches</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#union(com.vividsolutions.jts.geom.Geometry)">union</A>, <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#within(com.vividsolutions.jts.geom.Geometry)">within</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="shell"><!-- --></A><H3>
+shell</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> <B>shell</B></PRE>
+<DL>
+<DD>The exterior boundary,
+ or <code>null</code> if this <code>Polygon</code>
+ is empty.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="holes"><!-- --></A><H3>
+holes</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>[] <B>holes</B></PRE>
+<DL>
+<DD>The interior boundaries, if any.
+ This instance var is never null.
+ If there are no holes, the array is of zero length.
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Polygon(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.PrecisionModel, int)"><!-- --></A><H3>
+Polygon</H3>
+<PRE>
+public <B>Polygon</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> shell,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<P>
+<DD>Constructs a <code>Polygon</code> with the given exterior boundary.
+<P>
+<DT><B>Parameters:</B><DD><CODE>shell</CODE> - the outer boundary of the new <code>Polygon</code>,
+ or <code>null</code> or an empty <code>LinearRing</code> if the empty
+ geometry is to be created.<DD><CODE>precisionModel</CODE> - the specification of the grid of allowable points
+ for this <code>Polygon</code><DD><CODE>SRID</CODE> - the ID of the Spatial Reference System used by this
+ <code>Polygon</code></DL>
+<HR>
+
+<A NAME="Polygon(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.LinearRing[], com.vividsolutions.jts.geom.PrecisionModel, int)"><!-- --></A><H3>
+Polygon</H3>
+<PRE>
+public <B>Polygon</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> shell,
+ <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>[] holes,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int SRID)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<P>
+<DD>Constructs a <code>Polygon</code> with the given exterior boundary and
+ interior boundaries.
+<P>
+<DT><B>Parameters:</B><DD><CODE>shell</CODE> - the outer boundary of the new <code>Polygon</code>,
+ or <code>null</code> or an empty <code>LinearRing</code> if the empty
+ geometry is to be created.<DD><CODE>holes</CODE> - the inner boundaries of the new <code>Polygon</code>
+ , or <code>null</code> or empty <code>LinearRing</code>s if the empty
+ geometry is to be created.<DD><CODE>precisionModel</CODE> - the specification of the grid of allowable points
+ for this <code>Polygon</code><DD><CODE>SRID</CODE> - the ID of the Spatial Reference System used by this
+ <code>Polygon</code></DL>
+<HR>
+
+<A NAME="Polygon(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.LinearRing[], com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+Polygon</H3>
+<PRE>
+public <B>Polygon</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> shell,
+ <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>[] holes,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</PRE>
+<DL>
+<DD>Constructs a <code>Polygon</code> with the given exterior boundary and
+ interior boundaries.
+<P>
+<DT><B>Parameters:</B><DD><CODE>shell</CODE> - the outer boundary of the new <code>Polygon</code>,
+ or <code>null</code> or an empty <code>LinearRing</code> if the empty
+ geometry is to be created.<DD><CODE>holes</CODE> - the inner boundaries of the new <code>Polygon</code>
+ , or <code>null</code> or empty <code>LinearRing</code>s if the empty
+ geometry is to be created.</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns a vertex of this <code>Geometry</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCoordinate()">getCoordinate</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> which is a vertex of this <code>Geometry</code>.
+ Returns <code>null</code> if this Geometry is empty</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinates()"><!-- --></A><H3>
+getCoordinates</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>getCoordinates</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns this <code>Geometry</code> s vertices. If you modify the coordinates
+ in this array, be sure to call #geometryChanged afterwards.
+ The <code>Geometry</code>s contained by composite <code>Geometry</code>s
+ must be Geometry's; that is, they must implement <code>getCoordinates</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getCoordinates()">getCoordinates</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the vertices of this <code>Geometry</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNumPoints()"><!-- --></A><H3>
+getNumPoints</H3>
+<PRE>
+public int <B>getNumPoints</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the count of this <code>Geometry</code>s vertices. The <code>Geometry</code>
+ s contained by composite <code>Geometry</code>s must be
+ Geometry's; that is, they must implement <code>getNumPoints</code>
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getNumPoints()">getNumPoints</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of vertices in this <code>Geometry</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDimension()"><!-- --></A><H3>
+getDimension</H3>
+<PRE>
+public int <B>getDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the dimension of this <code>Geometry</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getDimension()">getDimension</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the dimension of the class implementing this interface, whether
+ or not this object is the empty geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundaryDimension()"><!-- --></A><H3>
+getBoundaryDimension</H3>
+<PRE>
+public int <B>getBoundaryDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the dimension of this <code>Geometry</code>s inherent boundary.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundaryDimension()">getBoundaryDimension</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the dimension of the boundary of the class implementing this
+ interface, whether or not this object is the empty geometry. Returns
+ <code>Dimension.FALSE</code> if the boundary is the empty geometry.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEmpty()"><!-- --></A><H3>
+isEmpty</H3>
+<PRE>
+public boolean <B>isEmpty</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns whether or not the set of points in this <code>Geometry</code> is
+ empty.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isEmpty()">isEmpty</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this <code>Geometry</code> equals the empty
+ geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSimple()"><!-- --></A><H3>
+isSimple</H3>
+<PRE>
+public boolean <B>isSimple</B>()</PRE>
+<DL>
+<DD>Tests if a valid polygon is simple.
+ This method always returns true, since a valid polygon is always simple
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isSimple()">isSimple</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code><DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isValid()"><CODE>Geometry.isValid()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isRectangle()"><!-- --></A><H3>
+isRectangle</H3>
+<PRE>
+public boolean <B>isRectangle</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isRectangle()">isRectangle</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getExteriorRing()"><!-- --></A><H3>
+getExteriorRing</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>getExteriorRing</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNumInteriorRing()"><!-- --></A><H3>
+getNumInteriorRing</H3>
+<PRE>
+public int <B>getNumInteriorRing</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInteriorRingN(int)"><!-- --></A><H3>
+getInteriorRingN</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>getInteriorRingN</B>(int n)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGeometryType()"><!-- --></A><H3>
+getGeometryType</H3>
+<PRE>
+public java.lang.String <B>getGeometryType</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getGeometryType()">getGeometryType</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the name of this <code>Geometry</code>s most specific <code>com.vividsolutions.jts.geom</code>
+ interface</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getArea()"><!-- --></A><H3>
+getArea</H3>
+<PRE>
+public double <B>getArea</B>()</PRE>
+<DL>
+<DD>Returns the area of this <code>Polygon</code>
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getArea()">getArea</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the area of the polygon</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLength()"><!-- --></A><H3>
+getLength</H3>
+<PRE>
+public double <B>getLength</B>()</PRE>
+<DL>
+<DD>Returns the perimeter of this <code>Polygon</code>
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getLength()">getLength</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the perimeter of the polygon</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundary()"><!-- --></A><H3>
+getBoundary</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getBoundary</B>()</PRE>
+<DL>
+<DD>Computes the boundary of this geometry
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundary()">getBoundary</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a lineal geometry (which may be empty)<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundary()"><CODE>Geometry.getBoundary()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeEnvelopeInternal()"><!-- --></A><H3>
+computeEnvelopeInternal</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>computeEnvelopeInternal</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns the minimum and maximum x and y values in this <code>Geometry</code>
+ , or a null <code>Envelope</code> if this <code>Geometry</code> is empty.
+ Unlike <code>getEnvelopeInternal</code>, this method calculates the <code>Envelope</code>
+ each time it is called; <code>getEnvelopeInternal</code> caches the result
+ of this method.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#computeEnvelopeInternal()">computeEnvelopeInternal</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>this <code>Geometry</code>s bounding box; if the <code>Geometry</code>
+ is empty, <code>Envelope#isNull</code> will return <code>true</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+equalsExact</H3>
+<PRE>
+public boolean <B>equalsExact</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> other,
+ double tolerance)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.
+ Two Geometries are exactly equal within a distance tolerance
+ if and only if:
+ <ul>
+ <li>they have the same class
+ <li>they have the same values for their vertices,
+ within the given tolerance distance, in exactly the same order.
+ </ul>
+ If this and the other <code>Geometry</code>s are
+ composites and any children are not <code>Geometry</code>s, returns
+ <code>false</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)">equalsExact</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>other</CODE> - the <code>Geometry</code> with which to compare this <code>Geometry</code>
+<DT><B>Returns:</B><DD><code>true</code> if this and the other <code>Geometry</code>
+ are of the same class and have equal internal data.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.CoordinateFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation with or on this <code>Geometry</code>'s
+ coordinates.
+ If this method modifies any coordinate values,
+ #geometryChanged() must be called to update the geometry state.
+ Note that you cannot use this
+ method to
+ modify this Geometry if its underlying CoordinateSequence's #get method
+ returns a copy of the Coordinate, rather than the actual Coordinate stored
+ (if it even stores Coordinates at all).
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply to this <code>Geometry</code>'s
+ coordinates</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation on the coordinates in this <code>Geometry</code>'s
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.
+ If this method modifies any coordinate values,
+ #geometryChanged() must be called to update the geometry state.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.GeometryFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation with or on this <code>Geometry</code> and its
+ subelement <code>Geometry</code>s (if any).
+ Only GeometryCollections and subclasses
+ have subelement Geometry's.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.GeometryFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply to this <code>Geometry</code> (and
+ its children, if it is a <code>GeometryCollection</code>).</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(com.vividsolutions.jts.geom.GeometryComponentFilter)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public void <B>apply</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A> filter)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Performs an operation with or on this Geometry and its
+ component Geometry's. Only GeometryCollections and
+ Polygons have component Geometry's; for Polygons they are the LinearRings
+ of the shell and holes.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)">apply</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - the filter to apply to this <code>Geometry</code>.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clone()"><!-- --></A><H3>
+clone</H3>
+<PRE>
+public java.lang.Object <B>clone</B>()</PRE>
+<DL>
+<DD>Creates and returns a full copy of this <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A> object.
+ (including all coordinates contained by it).
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#clone()">clone</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a clone of this instance</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="convexHull()"><!-- --></A><H3>
+convexHull</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>convexHull</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Computes the smallest convex <code>Polygon</code> that contains all the
+ points in the <code>Geometry</code>. This obviously applies only to <code>Geometry</code>
+ s which contain 3 or more points; the results for degenerate cases are
+ specified as follows:
+ <TABLE>
+ <TR>
+ <TH> Number of <code>Point</code>s in argument <code>Geometry</code> </TH>
+ <TH> <code>Geometry</code> class of result </TH>
+ </TR>
+ <TR>
+ <TD> 0 </TD>
+ <TD> empty <code>GeometryCollection</code> </TD>
+ </TR>
+ <TR> <TD> 1 </TD>
+ <TD> <code>Point</code> </TD>
+ </TR>
+ <TR>
+ <TD> 2 </TD>
+ <TD> <code>LineString</code> </TD>
+ </TR>
+ <TR>
+ <TD> 3 or more </TD>
+ <TD> <code>Polygon</code> </TD>
+ </TR>
+ </TABLE>
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#convexHull()">convexHull</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the minimum-area convex polygon containing this <code>Geometry</code>'
+ s points</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="normalize()"><!-- --></A><H3>
+normalize</H3>
+<PRE>
+public void <B>normalize</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Converts this <code>Geometry</code> to <b>normal form</b> (or <b>
+ canonical form</b> ). Normal form is a unique representation for <code>Geometry</code>
+ s. It can be used to test whether two <code>Geometry</code>s are equal
+ in a way that is independent of the ordering of the coordinates within
+ them. Normal form equality is a stronger condition than topological
+ equality, but weaker than pointwise equality. The definitions for normal
+ form use the standard lexicographical ordering for coordinates. "Sorted in
+ order of coordinates" means the obvious extension of this ordering to
+ sequences of coordinates.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#normalize()">normalize</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareToSameClass(java.lang.Object)"><!-- --></A><H3>
+compareToSameClass</H3>
+<PRE>
+protected int <B>compareToSameClass</B>(java.lang.Object o)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> having the same class.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareToSameClass(java.lang.Object)">compareToSameClass</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o</CODE> - a <code>Geometry</code> having the same class as this <code>Geometry</code>
+<DT><B>Returns:</B><DD>a positive number, 0, or a negative number, depending on whether
+ this object is greater than, equal to, or less than <code>o</code>, as
+ defined in "Normal Form For Geometry" in the JTS Technical
+ Specifications</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)"><!-- --></A><H3>
+compareToSameClass</H3>
+<PRE>
+protected int <B>compareToSameClass</B>(java.lang.Object o,
+ <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A> comp)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></B></DD>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> of the same class.
+ using the given <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom"><CODE>CoordinateSequenceComparator</CODE></A>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)">compareToSameClass</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o</CODE> - a <code>Geometry</code> having the same class as this <code>Geometry</code><DD><CODE>comp</CODE> - a <code>CoordinateSequenceComparator</code>
+<DT><B>Returns:</B><DD>a positive number, 0, or a negative number, depending on whether
+ this object is greater than, equal to, or less than <code>o</code>, as
+ defined in "Normal Form For Geometry" in the JTS Technical
+ Specifications</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Polygon.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/PrecisionModel.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/PrecisionModel.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/PrecisionModel.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,905 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+PrecisionModel
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.PrecisionModel class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="PrecisionModel";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PrecisionModel.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class PrecisionModel</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.PrecisionModel</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable, java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>PrecisionModel</B><DT>extends java.lang.Object<DT>implements java.io.Serializable, java.lang.Comparable</DL>
+
+<P>
+Specifies the precision model of the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s in a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+ In other words, specifies the grid of allowable
+ points for all <code>Geometry</code>s.
+ <p>
+ The <CODE>makePrecise</CODE> method allows rounding a coordinate to
+ a "precise" value; that is, one whose
+ precision is known exactly.
+<p>
+ Coordinates are assumed to be precise in geometries.
+ That is, the coordinates are assumed to be rounded to the
+ precision model given for the geometry.
+ JTS input routines automatically round coordinates to the precision model
+ before creating Geometries.
+ All internal operations
+ assume that coordinates are rounded to the precision model.
+ Constructive methods (such as boolean operations) always round computed
+ coordinates to the appropriate precision model.
+ <p>
+ Currently three types of precision model are supported:
+ <ul>
+ <li>FLOATING - represents full double precision floating point.
+ This is the default precision model used in JTS
+ <li>FLOATING_SINGLE - represents single precision floating point.
+ <li>FIXED - represents a model with a fixed number of decimal places.
+ A Fixed Precision Model is specified by a scale factor.
+ The scale factor specifies the grid which numbers are rounded to.
+ Input coordinates are mapped to fixed coordinates according to the following
+ equations:
+ <UL>
+ <LI> jtsPt.x = round( (inputPt.x * scale ) / scale
+ <LI> jtsPt.y = round( (inputPt.y * scale ) / scale
+ </UL>
+ </ul>
+ Coordinates are represented internally as Java double-precision values.
+ Since Java uses the IEEE-394 floating point standard, this
+ provides 53 bits of precision. (Thus the maximum precisely representable
+ integer is 9,007,199,254,740,992).
+<p>
+ JTS methods currently do not handle inputs with different precision models.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.PrecisionModel">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static com.vividsolutions.jts.geom.PrecisionModel.Type</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#FIXED">FIXED</A></B></CODE>
+
+<BR>
+ Fixed Precision indicates that coordinates have a fixed number of decimal places.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static com.vividsolutions.jts.geom.PrecisionModel.Type</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#FLOATING">FLOATING</A></B></CODE>
+
+<BR>
+ Floating precision corresponds to the standard Java
+ double-precision floating-point representation, which is
+ based on the IEEE-754 standard</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static com.vividsolutions.jts.geom.PrecisionModel.Type</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#FLOATING_SINGLE">FLOATING_SINGLE</A></B></CODE>
+
+<BR>
+ Floating single precision corresponds to the standard Java
+ single-precision floating-point representation, which is
+ based on the IEEE-754 standard</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#maximumPreciseValue">maximumPreciseValue</A></B></CODE>
+
+<BR>
+ The maximum precise value representable in a double.</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#PrecisionModel()">PrecisionModel</A></B>()</CODE>
+
+<BR>
+ Creates a <code>PrecisionModel</code> with a default precision
+ of FLOATING.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#PrecisionModel(double)">PrecisionModel</A></B>(double scale)</CODE>
+
+<BR>
+ Creates a <code>PrecisionModel</code> that specifies Fixed precision.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#PrecisionModel(double, double, double)">PrecisionModel</A></B>(double scale,
+ double offsetX,
+ double offsetY)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>offsets are no longer supported, since internal representation is rounded floating point</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#PrecisionModel(com.vividsolutions.jts.geom.PrecisionModel.Type)">PrecisionModel</A></B>(com.vividsolutions.jts.geom.PrecisionModel.Type modelType)</CODE>
+
+<BR>
+ Creates a <code>PrecisionModel</code> that specifies
+ an explicit precision model type.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#PrecisionModel(com.vividsolutions.jts.geom.PrecisionModel)">PrecisionModel</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm)</CODE>
+
+<BR>
+ Copy constructor to create a new <code>PrecisionModel</code>
+ from an existing one.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#compareTo(java.lang.Object)">compareTo</A></B>(java.lang.Object o)</CODE>
+
+<BR>
+ Compares this <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A> object with the specified object for order.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object other)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#getMaximumSignificantDigits()">getMaximumSignificantDigits</A></B>()</CODE>
+
+<BR>
+ Returns the maximum number of significant digits provided by this
+ precision model.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#getOffsetX()">getOffsetX</A></B>()</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>Offsets are no longer used</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#getOffsetY()">getOffsetY</A></B>()</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>Offsets are no longer used</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#getScale()">getScale</A></B>()</CODE>
+
+<BR>
+ Returns the multiplying factor used to obtain a precise coordinate.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> com.vividsolutions.jts.geom.PrecisionModel.Type</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#getType()">getType</A></B>()</CODE>
+
+<BR>
+ Gets the type of this PrecisionModel</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#isFloating()">isFloating</A></B>()</CODE>
+
+<BR>
+ Tests whether the precision model supports floating point</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#makePrecise(com.vividsolutions.jts.geom.Coordinate)">makePrecise</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ Rounds a Coordinate to the PrecisionModel grid.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#makePrecise(double)">makePrecise</A></B>(double val)</CODE>
+
+<BR>
+ Rounds a numeric value to the PrecisionModel grid.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#mostPrecise(com.vividsolutions.jts.geom.PrecisionModel, com.vividsolutions.jts.geom.PrecisionModel)">mostPrecise</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm2)</CODE>
+
+<BR>
+ Determines which of two <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A>s is the most precise
+ (allows the greatest number of significant digits).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#toExternal(com.vividsolutions.jts.geom.Coordinate)">toExternal</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> internal)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>no longer needed, since internal representation is same as external representation</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#toExternal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">toExternal</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> internal,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> external)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>no longer needed, since internal representation is same as external representation</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#toInternal(com.vividsolutions.jts.geom.Coordinate)">toInternal</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> external)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>use makePrecise instead</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#toInternal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">toInternal</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> external,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> internal)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>use makePrecise instead</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="FIXED"><!-- --></A><H3>
+FIXED</H3>
+<PRE>
+public static final com.vividsolutions.jts.geom.PrecisionModel.Type <B>FIXED</B></PRE>
+<DL>
+<DD>Fixed Precision indicates that coordinates have a fixed number of decimal places.
+ The number of decimal places is determined by the log10 of the scale factor.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="FLOATING"><!-- --></A><H3>
+FLOATING</H3>
+<PRE>
+public static final com.vividsolutions.jts.geom.PrecisionModel.Type <B>FLOATING</B></PRE>
+<DL>
+<DD>Floating precision corresponds to the standard Java
+ double-precision floating-point representation, which is
+ based on the IEEE-754 standard
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="FLOATING_SINGLE"><!-- --></A><H3>
+FLOATING_SINGLE</H3>
+<PRE>
+public static final com.vividsolutions.jts.geom.PrecisionModel.Type <B>FLOATING_SINGLE</B></PRE>
+<DL>
+<DD>Floating single precision corresponds to the standard Java
+ single-precision floating-point representation, which is
+ based on the IEEE-754 standard
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="maximumPreciseValue"><!-- --></A><H3>
+maximumPreciseValue</H3>
+<PRE>
+public static final double <B>maximumPreciseValue</B></PRE>
+<DL>
+<DD>The maximum precise value representable in a double. Since IEE754
+ double-precision numbers allow 53 bits of mantissa, the value is equal to
+ 2^53 - 1. This provides <i>almost</i> 16 decimal digits of precision.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geom.PrecisionModel.maximumPreciseValue">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="PrecisionModel()"><!-- --></A><H3>
+PrecisionModel</H3>
+<PRE>
+public <B>PrecisionModel</B>()</PRE>
+<DL>
+<DD>Creates a <code>PrecisionModel</code> with a default precision
+ of FLOATING.
+<P>
+</DL>
+<HR>
+
+<A NAME="PrecisionModel(com.vividsolutions.jts.geom.PrecisionModel.Type)"><!-- --></A><H3>
+PrecisionModel</H3>
+<PRE>
+public <B>PrecisionModel</B>(com.vividsolutions.jts.geom.PrecisionModel.Type modelType)</PRE>
+<DL>
+<DD>Creates a <code>PrecisionModel</code> that specifies
+ an explicit precision model type.
+ If the model type is FIXED the scale factor will default to 1.
+<P>
+<DT><B>Parameters:</B><DD><CODE>modelType</CODE> - the type of the precision model</DL>
+<HR>
+
+<A NAME="PrecisionModel(double, double, double)"><!-- --></A><H3>
+PrecisionModel</H3>
+<PRE>
+public <B>PrecisionModel</B>(double scale,
+ double offsetX,
+ double offsetY)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>offsets are no longer supported, since internal representation is rounded floating point</I>
+<P>
+<DD>Creates a <code>PrecisionModel</code> that specifies Fixed precision.
+ Fixed-precision coordinates are represented as precise internal coordinates,
+ which are rounded to the grid defined by the scale factor.
+<P>
+<DT><B>Parameters:</B><DD><CODE>scale</CODE> - amount by which to multiply a coordinate after subtracting
+ the offset, to obtain a precise coordinate<DD><CODE>offsetX</CODE> - not used.<DD><CODE>offsetY</CODE> - not used.</DL>
+<HR>
+
+<A NAME="PrecisionModel(double)"><!-- --></A><H3>
+PrecisionModel</H3>
+<PRE>
+public <B>PrecisionModel</B>(double scale)</PRE>
+<DL>
+<DD>Creates a <code>PrecisionModel</code> that specifies Fixed precision.
+ Fixed-precision coordinates are represented as precise internal coordinates,
+ which are rounded to the grid defined by the scale factor.
+<P>
+<DT><B>Parameters:</B><DD><CODE>scale</CODE> - amount by which to multiply a coordinate after subtracting
+ the offset, to obtain a precise coordinate</DL>
+<HR>
+
+<A NAME="PrecisionModel(com.vividsolutions.jts.geom.PrecisionModel)"><!-- --></A><H3>
+PrecisionModel</H3>
+<PRE>
+public <B>PrecisionModel</B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm)</PRE>
+<DL>
+<DD>Copy constructor to create a new <code>PrecisionModel</code>
+ from an existing one.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="mostPrecise(com.vividsolutions.jts.geom.PrecisionModel, com.vividsolutions.jts.geom.PrecisionModel)"><!-- --></A><H3>
+mostPrecise</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> <B>mostPrecise</B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm2)</PRE>
+<DL>
+<DD>Determines which of two <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A>s is the most precise
+ (allows the greatest number of significant digits).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pm1</CODE> - a PrecisionModel<DD><CODE>pm2</CODE> - a PrecisionModel
+<DT><B>Returns:</B><DD>the PrecisionModel which is most precise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isFloating()"><!-- --></A><H3>
+isFloating</H3>
+<PRE>
+public boolean <B>isFloating</B>()</PRE>
+<DL>
+<DD>Tests whether the precision model supports floating point
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the precision model supports floating point</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMaximumSignificantDigits()"><!-- --></A><H3>
+getMaximumSignificantDigits</H3>
+<PRE>
+public int <B>getMaximumSignificantDigits</B>()</PRE>
+<DL>
+<DD>Returns the maximum number of significant digits provided by this
+ precision model.
+ Intended for use by routines which need to print out precise values.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the maximum number of decimal places provided by this precision model</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getScale()"><!-- --></A><H3>
+getScale</H3>
+<PRE>
+public double <B>getScale</B>()</PRE>
+<DL>
+<DD>Returns the multiplying factor used to obtain a precise coordinate.
+ This method is private because PrecisionModel is intended to
+ be an immutable (value) type.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the amount by which to multiply a coordinate after subtracting
+ the offset</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getType()"><!-- --></A><H3>
+getType</H3>
+<PRE>
+public com.vividsolutions.jts.geom.PrecisionModel.Type <B>getType</B>()</PRE>
+<DL>
+<DD>Gets the type of this PrecisionModel
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the type of this PrecisionModel</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOffsetX()"><!-- --></A><H3>
+getOffsetX</H3>
+<PRE>
+public double <B>getOffsetX</B>()</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>Offsets are no longer used</I>
+<P>
+<DD>Returns the x-offset used to obtain a precise coordinate.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the amount by which to subtract the x-coordinate before
+ multiplying by the scale</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOffsetY()"><!-- --></A><H3>
+getOffsetY</H3>
+<PRE>
+public double <B>getOffsetY</B>()</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>Offsets are no longer used</I>
+<P>
+<DD>Returns the y-offset used to obtain a precise coordinate.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the amount by which to subtract the y-coordinate before
+ multiplying by the scale</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toInternal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+toInternal</H3>
+<PRE>
+public void <B>toInternal</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> external,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> internal)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>use makePrecise instead</I>
+<P>
+<DD>Sets <code>internal</code> to the precise representation of <code>external</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>external</CODE> - the original coordinate<DD><CODE>internal</CODE> - the coordinate whose values will be changed to the
+ precise representation of <code>external</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toInternal(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+toInternal</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>toInternal</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> external)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>use makePrecise instead</I>
+<P>
+<DD>Returns the precise representation of <code>external</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>external</CODE> - the original coordinate
+<DT><B>Returns:</B><DD>the coordinate whose values will be changed to the precise
+ representation of <code>external</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toExternal(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+toExternal</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>toExternal</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> internal)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>no longer needed, since internal representation is same as external representation</I>
+<P>
+<DD>Returns the external representation of <code>internal</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>internal</CODE> - the original coordinate
+<DT><B>Returns:</B><DD>the coordinate whose values will be changed to the
+ external representation of <code>internal</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toExternal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+toExternal</H3>
+<PRE>
+public void <B>toExternal</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> internal,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> external)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>no longer needed, since internal representation is same as external representation</I>
+<P>
+<DD>Sets <code>external</code> to the external representation of <code>internal</code>
+ .
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>internal</CODE> - the original coordinate<DD><CODE>external</CODE> - the coordinate whose values will be changed to the
+ external representation of <code>internal</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="makePrecise(double)"><!-- --></A><H3>
+makePrecise</H3>
+<PRE>
+public double <B>makePrecise</B>(double val)</PRE>
+<DL>
+<DD>Rounds a numeric value to the PrecisionModel grid.
+ Asymmetric Arithmetic Rounding is used, to provide
+ uniform rounding behaviour no matter where the number is
+ on the number line.
+ <p>
+ <b>Note:</b> Java's <code>Math#rint</code> uses the "Banker's Rounding" algorithm,
+ which is not suitable for precision operations elsewhere in JTS.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="makePrecise(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+makePrecise</H3>
+<PRE>
+public void <B>makePrecise</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD>Rounds a Coordinate to the PrecisionModel grid.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</B>(java.lang.Object other)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(java.lang.Object o)</PRE>
+<DL>
+<DD>Compares this <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A> object with the specified object for order.
+ A PrecisionModel is greater than another if it provides greater precision.
+ The comparison is based on the value returned by the
+ {@link getMaximumSignificantDigits) method.
+ This comparison is not strictly accurate when comparing floating precision models
+ to fixed models; however, it is correct when both models are either floating or fixed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE>java.lang.Comparable</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o</CODE> - the <code>PrecisionModel</code> with which this <code>PrecisionModel</code>
+ is being compared
+<DT><B>Returns:</B><DD>a negative integer, zero, or a positive integer as this <code>PrecisionModel</code>
+ is less than, equal to, or greater than the specified <code>PrecisionModel</code></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PrecisionModel.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/TopologyException.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/TopologyException.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/TopologyException.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,289 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+TopologyException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.TopologyException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="TopologyException";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TopologyException.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class TopologyException</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.lang.Throwable
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.lang.Exception
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.lang.RuntimeException
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.TopologyException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>TopologyException</B><DT>extends java.lang.RuntimeException</DL>
+
+<P>
+Indicates an invalid or inconsistent topological situation encountered during processing
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.geom.TopologyException">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html#TopologyException(java.lang.String)">TopologyException</A></B>(java.lang.String msg)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html#TopologyException(java.lang.String, com.vividsolutions.jts.geom.Coordinate)">TopologyException</A></B>(java.lang.String msg,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Throwable</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="TopologyException(java.lang.String)"><!-- --></A><H3>
+TopologyException</H3>
+<PRE>
+public <B>TopologyException</B>(java.lang.String msg)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="TopologyException(java.lang.String, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+TopologyException</H3>
+<PRE>
+public <B>TopologyException</B>(java.lang.String msg,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TopologyException.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Triangle.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Triangle.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/Triangle.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,562 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+Triangle
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.Triangle class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Triangle";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Triangle.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom</FONT>
+<BR>
+Class Triangle</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.Triangle</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Triangle</B><DT>extends java.lang.Object</DL>
+
+<P>
+Represents a planar triangle, and provides methods for calculating various
+ properties of triangles.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html#p0">p0</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html#p1">p1</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html#p2">p2</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html#Triangle(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">Triangle</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html#angleBisector(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">angleBisector</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</CODE>
+
+<BR>
+ Computes the point at which the bisector of the angle ABC
+ cuts the segment AC.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html#area(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">area</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</CODE>
+
+<BR>
+ Computes the area of a triangle.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html#centroid(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">centroid</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</CODE>
+
+<BR>
+ Computes the centroid (centre of mass) of a triangle.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html#circumcentre(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">circumcentre</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</CODE>
+
+<BR>
+ Computes the circumcentre of a triangle.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html#inCentre()">inCentre</A></B>()</CODE>
+
+<BR>
+ Computes the incentre of a triangle.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html#inCentre(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">inCentre</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</CODE>
+
+<BR>
+ Computes the incentre of a triangle.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html#isAcute(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">isAcute</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</CODE>
+
+<BR>
+ Tests whether the triangle is acute.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html#longestSideLength(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">longestSideLength</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</CODE>
+
+<BR>
+ Computes the length of the longest side of a triangle</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html#perpendicularBisector(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">perpendicularBisector</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b)</CODE>
+
+<BR>
+ Computes the line which is the perpendicular bisector of the
+ line segment a-b.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="p0"><!-- --></A><H3>
+p0</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>p0</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="p1"><!-- --></A><H3>
+p1</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>p1</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="p2"><!-- --></A><H3>
+p2</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>p2</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Triangle(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+Triangle</H3>
+<PRE>
+public <B>Triangle</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isAcute(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+isAcute</H3>
+<PRE>
+public static boolean <B>isAcute</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</PRE>
+<DL>
+<DD>Tests whether the triangle is acute.
+ A triangle is acute iff all interior angles are acute.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>a</CODE> - a vertex of the triangle<DD><CODE>b</CODE> - a vertex of the triangle<DD><CODE>c</CODE> - a vertex of the triangle
+<DT><B>Returns:</B><DD>true if the triangle is acute</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="perpendicularBisector(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+perpendicularBisector</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A> <B>perpendicularBisector</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b)</PRE>
+<DL>
+<DD>Computes the line which is the perpendicular bisector of the
+ line segment a-b.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>a</CODE> - a point<DD><CODE>b</CODE> - another point
+<DT><B>Returns:</B><DD>the perpendicular bisector, as an HCoordinate</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="circumcentre(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+circumcentre</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>circumcentre</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</PRE>
+<DL>
+<DD>Computes the circumcentre of a triangle.
+ The circumcentre is the centre of the circumcircle,
+ the smallest circle which encloses the triangle.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>a</CODE> - a vertx of the triangle<DD><CODE>b</CODE> - a vertx of the triangle<DD><CODE>c</CODE> - a vertx of the triangle
+<DT><B>Returns:</B><DD>the circumcentre of the triangle</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="inCentre(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+inCentre</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>inCentre</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</PRE>
+<DL>
+<DD>Computes the incentre of a triangle.
+ The inCentre of a triangle is the point which is equidistant
+ from the sides of the triangle.
+ It is also the point at which the bisectors
+ of the triangle's angles meet.
+ It is the centre of the incircle, which
+ is the unique circle that is tangent to each of the triangle's three sides.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>a</CODE> - a vertx of the triangle<DD><CODE>b</CODE> - a vertx of the triangle<DD><CODE>c</CODE> - a vertx of the triangle
+<DT><B>Returns:</B><DD>the point which is the incentre of the triangle</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="centroid(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+centroid</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>centroid</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</PRE>
+<DL>
+<DD>Computes the centroid (centre of mass) of a triangle.
+ This is also the point at which the triangle's three
+ medians intersect (a triangle median is the segment from a vertex of the triangle to the
+ midpoint of the opposite side).
+ The centroid divides each median in a ratio of 2:1.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>a</CODE> - a vertex of the triangle<DD><CODE>b</CODE> - a vertex of the triangle<DD><CODE>c</CODE> - a vertex of the triangle
+<DT><B>Returns:</B><DD>the centroid of the triangle</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="longestSideLength(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+longestSideLength</H3>
+<PRE>
+public static double <B>longestSideLength</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</PRE>
+<DL>
+<DD>Computes the length of the longest side of a triangle
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>a</CODE> - a vertex of the triangle<DD><CODE>b</CODE> - a vertex of the triangle<DD><CODE>c</CODE> - a vertex of the triangle
+<DT><B>Returns:</B><DD>the length of the longest side of the triangle</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="angleBisector(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+angleBisector</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>angleBisector</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</PRE>
+<DL>
+<DD>Computes the point at which the bisector of the angle ABC
+ cuts the segment AC.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>a</CODE> - a vertex of the triangle<DD><CODE>b</CODE> - a vertex of the triangle<DD><CODE>c</CODE> - a vertex of the triangle
+<DT><B>Returns:</B><DD>the angle bisector cut point</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="area(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+area</H3>
+<PRE>
+public static double <B>area</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> a,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> b,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> c)</PRE>
+<DL>
+<DD>Computes the area of a triangle.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>a</CODE> - a vertex of the triangle<DD><CODE>b</CODE> - a vertex of the triangle<DD><CODE>c</CODE> - a vertex of the triangle
+<DT><B>Returns:</B><DD>the area of the triangle</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="inCentre()"><!-- --></A><H3>
+inCentre</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>inCentre</B>()</PRE>
+<DL>
+<DD>Computes the incentre of a triangle.
+ The inCentre of a triangle is the point which is equidistant
+ from the sides of the triangle.
+ It is also the point at which the bisectors
+ of the triangle's angles meet.
+ It is the centre of the incircle, which
+ is the unique circle that is tangent to each of the triangle's three sides.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the point which is the inCentre of the triangle</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Triangle.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,646 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+CoordinateArraySequence
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.impl.CoordinateArraySequence class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CoordinateArraySequence";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateArraySequence.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.impl</FONT>
+<BR>
+Class CoordinateArraySequence</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.impl.CoordinateArraySequence</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>, java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>CoordinateArraySequence</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>, java.io.Serializable</DL>
+
+<P>
+The <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> implementation that <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s use by default.
+ In this implementation, Coordinates returned by #toArray and #getCoordinate are live --
+ modifications to them are actually changing the
+ CoordinateSequence's underlying data.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#com.vividsolutions.jts.geom.impl.CoordinateArraySequence">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.CoordinateSequence"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from interface com.vividsolutions.jts.geom.<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#M">M</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#X">X</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#Y">Y</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#Z">Z</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#CoordinateArraySequence(com.vividsolutions.jts.geom.Coordinate[])">CoordinateArraySequence</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</CODE>
+
+<BR>
+ Constructs a sequence based on the given array (the
+ array is not copied).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#CoordinateArraySequence(com.vividsolutions.jts.geom.CoordinateSequence)">CoordinateArraySequence</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordSeq)</CODE>
+
+<BR>
+ Constructs a sequence based on the given array (the
+ array is not copied).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#CoordinateArraySequence(int)">CoordinateArraySequence</A></B>(int size)</CODE>
+
+<BR>
+ Constructs a sequence of a given size, populated
+ with new <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#clone()">clone</A></B>()</CODE>
+
+<BR>
+ Creates a deep copy of the Object</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#expandEnvelope(com.vividsolutions.jts.geom.Envelope)">expandEnvelope</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</CODE>
+
+<BR>
+ Expands the given <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A> to include the coordinates in the sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#getCoordinate(int)">getCoordinate</A></B>(int i)</CODE>
+
+<BR>
+ Get the Coordinate with index i.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#getCoordinate(int, com.vividsolutions.jts.geom.Coordinate)">getCoordinate</A></B>(int index,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ Copies the i'th coordinate in the sequence to the supplied
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#getCoordinateCopy(int)">getCoordinateCopy</A></B>(int i)</CODE>
+
+<BR>
+ Get a copy of the Coordinate with index i.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#getDimension()">getDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension (number of ordinates in each coordinate)
+ for this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#getOrdinate(int, int)">getOrdinate</A></B>(int index,
+ int ordinateIndex)</CODE>
+
+<BR>
+ Returns the ordinate of a coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#getX(int)">getX</A></B>(int index)</CODE>
+
+<BR>
+ Returns ordinate X (0) of the specified coordinate.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#getY(int)">getY</A></B>(int index)</CODE>
+
+<BR>
+ Returns ordinate Y (1) of the specified coordinate.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#setOrdinate(int, int, double)">setOrdinate</A></B>(int index,
+ int ordinateIndex,
+ double value)</CODE>
+
+<BR>
+ Sets the value for a given ordinate of a coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#size()">size</A></B>()</CODE>
+
+<BR>
+ Returns the size of the coordinate sequence</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#toCoordinateArray()">toCoordinateArray</A></B>()</CODE>
+
+<BR>
+ This method exposes the internal Array of Coordinate Objects</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ Returns the string Representation of the coordinate array</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CoordinateArraySequence(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+CoordinateArraySequence</H3>
+<PRE>
+public <B>CoordinateArraySequence</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</PRE>
+<DL>
+<DD>Constructs a sequence based on the given array (the
+ array is not copied).
+<P>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - the coordinate array that will be referenced.</DL>
+<HR>
+
+<A NAME="CoordinateArraySequence(int)"><!-- --></A><H3>
+CoordinateArraySequence</H3>
+<PRE>
+public <B>CoordinateArraySequence</B>(int size)</PRE>
+<DL>
+<DD>Constructs a sequence of a given size, populated
+ with new <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.
+<P>
+<DT><B>Parameters:</B><DD><CODE>size</CODE> - the size of the sequence to create</DL>
+<HR>
+
+<A NAME="CoordinateArraySequence(com.vividsolutions.jts.geom.CoordinateSequence)"><!-- --></A><H3>
+CoordinateArraySequence</H3>
+<PRE>
+public <B>CoordinateArraySequence</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordSeq)</PRE>
+<DL>
+<DD>Constructs a sequence based on the given array (the
+ array is not copied).
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getDimension()"><!-- --></A><H3>
+getDimension</H3>
+<PRE>
+public int <B>getDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns the dimension (number of ordinates in each coordinate)
+ for this sequence.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getDimension()">getDimension</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the dimension of the sequence.<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getDimension()"><CODE>CoordinateSequence.getDimension()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate(int)"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>(int i)</PRE>
+<DL>
+<DD>Get the Coordinate with index i.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinate(int)">getCoordinate</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>i</CODE> - the index of the coordinate
+<DT><B>Returns:</B><DD>the requested Coordinate instance</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinateCopy(int)"><!-- --></A><H3>
+getCoordinateCopy</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinateCopy</B>(int i)</PRE>
+<DL>
+<DD>Get a copy of the Coordinate with index i.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinateCopy(int)">getCoordinateCopy</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>i</CODE> - the index of the coordinate
+<DT><B>Returns:</B><DD>a copy of the requested Coordinate</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate(int, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public void <B>getCoordinate</B>(int index,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Copies the i'th coordinate in the sequence to the supplied
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>. Only the first two dimensions are copied.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinate(int, com.vividsolutions.jts.geom.Coordinate)">getCoordinate</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> - the index of the coordinate to copy<DD><CODE>coord</CODE> - a <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> to receive the value<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getX(int)"><CODE>CoordinateSequence.getX(int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getX(int)"><!-- --></A><H3>
+getX</H3>
+<PRE>
+public double <B>getX</B>(int index)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns ordinate X (0) of the specified coordinate.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getX(int)">getX</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> -
+<DT><B>Returns:</B><DD>the value of the X ordinate in the index'th coordinate<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getX(int)"><CODE>CoordinateSequence.getX(int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getY(int)"><!-- --></A><H3>
+getY</H3>
+<PRE>
+public double <B>getY</B>(int index)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns ordinate Y (1) of the specified coordinate.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getY(int)">getY</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> -
+<DT><B>Returns:</B><DD>the value of the Y ordinate in the index'th coordinate<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getY(int)"><CODE>CoordinateSequence.getY(int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOrdinate(int, int)"><!-- --></A><H3>
+getOrdinate</H3>
+<PRE>
+public double <B>getOrdinate</B>(int index,
+ int ordinateIndex)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns the ordinate of a coordinate in this sequence.
+ Ordinate indices 0 and 1 are assumed to be X and Y.
+ Ordinates indices greater than 1 have user-defined semantics
+ (for instance, they may contain other dimensions or measure values).
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getOrdinate(int, int)">getOrdinate</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> - the coordinate index in the sequence<DD><CODE>ordinateIndex</CODE> - the ordinate index in the coordinate (in range [0, dimension-1])<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getOrdinate(int, int)"><CODE>CoordinateSequence.getOrdinate(int, int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clone()"><!-- --></A><H3>
+clone</H3>
+<PRE>
+public java.lang.Object <B>clone</B>()</PRE>
+<DL>
+<DD>Creates a deep copy of the Object
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#clone()">clone</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The deep copy</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="size()"><!-- --></A><H3>
+size</H3>
+<PRE>
+public int <B>size</B>()</PRE>
+<DL>
+<DD>Returns the size of the coordinate sequence
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#size()">size</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of coordinates</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setOrdinate(int, int, double)"><!-- --></A><H3>
+setOrdinate</H3>
+<PRE>
+public void <B>setOrdinate</B>(int index,
+ int ordinateIndex,
+ double value)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Sets the value for a given ordinate of a coordinate in this sequence.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#setOrdinate(int, int, double)">setOrdinate</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> - the coordinate index in the sequence<DD><CODE>ordinateIndex</CODE> - the ordinate index in the coordinate (in range [0, dimension-1])<DD><CODE>value</CODE> - the new ordinate value<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#setOrdinate(int, int, double)"><CODE>CoordinateSequence.setOrdinate(int, int, double)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toCoordinateArray()"><!-- --></A><H3>
+toCoordinateArray</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>toCoordinateArray</B>()</PRE>
+<DL>
+<DD>This method exposes the internal Array of Coordinate Objects
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#toCoordinateArray()">toCoordinateArray</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the Coordinate[] array.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="expandEnvelope(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+expandEnvelope</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>expandEnvelope</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Expands the given <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A> to include the coordinates in the sequence.
+ Allows implementing classes to optimize access to coordinate values.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#expandEnvelope(com.vividsolutions.jts.geom.Envelope)">expandEnvelope</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>env</CODE> - the envelope to expand
+<DT><B>Returns:</B><DD>a ref to the expanded envelope</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD>Returns the string Representation of the coordinate array
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The string</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateArraySequence.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,326 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+CoordinateArraySequenceFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.impl.CoordinateArraySequenceFactory class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CoordinateArraySequenceFactory";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateArraySequenceFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.impl</FONT>
+<BR>
+Class CoordinateArraySequenceFactory</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.impl.CoordinateArraySequenceFactory</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A>, java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public final class <B>CoordinateArraySequenceFactory</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A>, java.io.Serializable</DL>
+
+<P>
+Creates <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s represented as an array of <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#com.vividsolutions.jts.geom.impl.CoordinateArraySequenceFactory">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html#create(com.vividsolutions.jts.geom.Coordinate[])">create</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</CODE>
+
+<BR>
+ Returns a <A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl"><CODE>CoordinateArraySequence</CODE></A> based on the given array (the array is
+ not copied).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html#create(com.vividsolutions.jts.geom.CoordinateSequence)">create</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordSeq)</CODE>
+
+<BR>
+ Creates a <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> which is a copy
+ of the given <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html#create(int, int)">create</A></B>(int size,
+ int dimension)</CODE>
+
+<BR>
+ Creates a <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> of the specified size and dimension.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequenceFactory</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html#instance()">instance</A></B>()</CODE>
+
+<BR>
+ Returns the singleton instance of <A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl"><CODE>CoordinateArraySequenceFactory</CODE></A></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="instance()"><!-- --></A><H3>
+instance</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequenceFactory</A> <B>instance</B>()</PRE>
+<DL>
+<DD>Returns the singleton instance of <A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl"><CODE>CoordinateArraySequenceFactory</CODE></A>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+create</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>create</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</PRE>
+<DL>
+<DD>Returns a <A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl"><CODE>CoordinateArraySequence</CODE></A> based on the given array (the array is
+ not copied).
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.Coordinate[])">create</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - the coordinates, which may not be null nor contain null
+ elements</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(com.vividsolutions.jts.geom.CoordinateSequence)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>create</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordSeq)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></B></DD>
+<DD>Creates a <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> which is a copy
+ of the given <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.
+ This method must handle null arguments by creating an empty sequence.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.CoordinateSequence)">create</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordSeq</CODE> - the coordinate sequence to copy<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.CoordinateSequence)"><CODE>CoordinateSequenceFactory.create(com.vividsolutions.jts.geom.CoordinateSequence)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(int, int)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>create</B>(int size,
+ int dimension)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></B></DD>
+<DD>Creates a <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> of the specified size and dimension.
+ For this to be useful, the <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> implementation must
+ be mutable.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(int, int)">create</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>size</CODE> - the number of coordinates in the sequence<DD><CODE>dimension</CODE> - the dimension of the coordinates in the sequence (if user-specifiable,
+ otherwise ignored)
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if the dimension is > 3<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(int, int)"><CODE>CoordinateSequenceFactory.create(int, int)</CODE></A></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateArraySequenceFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,533 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+PackedCoordinateSequence.Double
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.impl.PackedCoordinateSequence.Double class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="PackedCoordinateSequence.Double";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PackedCoordinateSequence.Double.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_classes_inherited_from_class_com.vividsolutions.jts.geom.impl.PackedCoordinateSequence">NESTED</A> | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.impl.PackedCoordinateSequence">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.impl</FONT>
+<BR>
+Class PackedCoordinateSequence.Double</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">com.vividsolutions.jts.geom.impl.PackedCoordinateSequence</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.impl.PackedCoordinateSequence.Double</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></DD>
+</DL>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public static class <B>PackedCoordinateSequence.Double</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></DL>
+
+<P>
+Packed coordinate sequence implementation based on doubles
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="nested_classes_inherited_from_class_com.vividsolutions.jts.geom.impl.PackedCoordinateSequence"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Nested classes inherited from class com.vividsolutions.jts.geom.impl.<A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.impl.PackedCoordinateSequence"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geom.impl.<A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#coordRef">coordRef</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#dimension">dimension</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.CoordinateSequence"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from interface com.vividsolutions.jts.geom.<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#M">M</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#X">X</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#Y">Y</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#Z">Z</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#PackedCoordinateSequence.Double(com.vividsolutions.jts.geom.Coordinate[])">PackedCoordinateSequence.Double</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</CODE>
+
+<BR>
+ Builds a new packed coordinate sequence out of a coordinate array</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#PackedCoordinateSequence.Double(com.vividsolutions.jts.geom.Coordinate[], int)">PackedCoordinateSequence.Double</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates,
+ int dimension)</CODE>
+
+<BR>
+ Builds a new packed coordinate sequence out of a coordinate array</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#PackedCoordinateSequence.Double(double[], int)">PackedCoordinateSequence.Double</A></B>(double[] coords,
+ int dimensions)</CODE>
+
+<BR>
+ Builds a new packed coordinate sequence</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#PackedCoordinateSequence.Double(float[], int)">PackedCoordinateSequence.Double</A></B>(float[] coordinates,
+ int dimensions)</CODE>
+
+<BR>
+ Builds a new packed coordinate sequence out of a float coordinate array</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#PackedCoordinateSequence.Double(int, int)">PackedCoordinateSequence.Double</A></B>(int size,
+ int dimension)</CODE>
+
+<BR>
+ Builds a new empty packed coordinate sequence of a given size and dimension</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#clone()">clone</A></B>()</CODE>
+
+<BR>
+ Returns a deep copy of this collection.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#expandEnvelope(com.vividsolutions.jts.geom.Envelope)">expandEnvelope</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</CODE>
+
+<BR>
+ Expands the given <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A> to include the coordinates in the sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#getCoordinateInternal(int)">getCoordinateInternal</A></B>(int i)</CODE>
+
+<BR>
+ Returns a Coordinate representation of the specified coordinate, by always
+ building a new Coordinate object</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#getOrdinate(int, int)">getOrdinate</A></B>(int index,
+ int ordinate)</CODE>
+
+<BR>
+ Returns the ordinate of a coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#setOrdinate(int, int, double)">setOrdinate</A></B>(int index,
+ int ordinate,
+ double value)</CODE>
+
+<BR>
+ Sets the ordinate of a coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#size()">size</A></B>()</CODE>
+
+<BR>
+ Returns the number of coordinates in this sequence.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.impl.PackedCoordinateSequence"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geom.impl.<A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinate(int)">getCoordinate</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinate(int, com.vividsolutions.jts.geom.Coordinate)">getCoordinate</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinateCopy(int)">getCoordinateCopy</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getDimension()">getDimension</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getX(int)">getX</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getY(int)">getY</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#setX(int, double)">setX</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#setY(int, double)">setY</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#toCoordinateArray()">toCoordinateArray</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="PackedCoordinateSequence.Double(double[], int)"><!-- --></A><H3>
+PackedCoordinateSequence.Double</H3>
+<PRE>
+public <B>PackedCoordinateSequence.Double</B>(double[] coords,
+ int dimensions)</PRE>
+<DL>
+<DD>Builds a new packed coordinate sequence
+<P>
+<DT><B>Parameters:</B><DD><CODE>coords</CODE> - <DD><CODE>dimensions</CODE> - </DL>
+<HR>
+
+<A NAME="PackedCoordinateSequence.Double(float[], int)"><!-- --></A><H3>
+PackedCoordinateSequence.Double</H3>
+<PRE>
+public <B>PackedCoordinateSequence.Double</B>(float[] coordinates,
+ int dimensions)</PRE>
+<DL>
+<DD>Builds a new packed coordinate sequence out of a float coordinate array
+<P>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - </DL>
+<HR>
+
+<A NAME="PackedCoordinateSequence.Double(com.vividsolutions.jts.geom.Coordinate[], int)"><!-- --></A><H3>
+PackedCoordinateSequence.Double</H3>
+<PRE>
+public <B>PackedCoordinateSequence.Double</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates,
+ int dimension)</PRE>
+<DL>
+<DD>Builds a new packed coordinate sequence out of a coordinate array
+<P>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - </DL>
+<HR>
+
+<A NAME="PackedCoordinateSequence.Double(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+PackedCoordinateSequence.Double</H3>
+<PRE>
+public <B>PackedCoordinateSequence.Double</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</PRE>
+<DL>
+<DD>Builds a new packed coordinate sequence out of a coordinate array
+<P>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - </DL>
+<HR>
+
+<A NAME="PackedCoordinateSequence.Double(int, int)"><!-- --></A><H3>
+PackedCoordinateSequence.Double</H3>
+<PRE>
+public <B>PackedCoordinateSequence.Double</B>(int size,
+ int dimension)</PRE>
+<DL>
+<DD>Builds a new empty packed coordinate sequence of a given size and dimension
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinateInternal(int)"><!-- --></A><H3>
+getCoordinateInternal</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinateInternal</B>(int i)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></CODE></B></DD>
+<DD>Returns a Coordinate representation of the specified coordinate, by always
+ building a new Coordinate object
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinateInternal(int)">getCoordinateInternal</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>i</CODE> -
+<DT><B>Returns:</B><DD><DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinate(int)"><CODE>CoordinateSequence.getCoordinate(int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="size()"><!-- --></A><H3>
+size</H3>
+<PRE>
+public int <B>size</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns the number of coordinates in this sequence.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the size of the sequence<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#size()"><CODE>CoordinateSequence.size()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clone()"><!-- --></A><H3>
+clone</H3>
+<PRE>
+public java.lang.Object <B>clone</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns a deep copy of this collection.
+ Called by Geometry#clone.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#clone()">clone</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#clone()">clone</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>See Also:</B><DD><CODE>Object.clone()</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOrdinate(int, int)"><!-- --></A><H3>
+getOrdinate</H3>
+<PRE>
+public double <B>getOrdinate</B>(int index,
+ int ordinate)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns the ordinate of a coordinate in this sequence.
+ Ordinate indices 0 and 1 are assumed to be X and Y.
+ Ordinates indices greater than 1 have user-defined semantics
+ (for instance, they may contain other dimensions or measure values).
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getOrdinate(int, int)">getOrdinate</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getOrdinate(int, int)">getOrdinate</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getOrdinate(int, int)"><CODE>Beware, for performace reasons the ordinate index is not checked, if
+ it's over dimensions you may not get an exception but a meaningless
+ value.</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setOrdinate(int, int, double)"><!-- --></A><H3>
+setOrdinate</H3>
+<PRE>
+public void <B>setOrdinate</B>(int index,
+ int ordinate,
+ double value)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></CODE></B></DD>
+<DD>Sets the ordinate of a coordinate in this sequence.
+ <br>
+ Warning: for performance reasons the ordinate index is not checked
+ - if it is over dimensions you may not get an exception but a meaningless value.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#setOrdinate(int, int, double)">setOrdinate</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#setOrdinate(int, int, double)">setOrdinate</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> - the coordinate index<DD><CODE>ordinate</CODE> - the ordinate index in the coordinate, 0 based, smaller than the
+ number of dimensions<DD><CODE>value</CODE> - the new ordinate value<DT><B>See Also:</B><DD><CODE>com.vividsolutions.jts.geom.PackedCoordinateSequence#setOrdinate(int,
+ int, double)</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="expandEnvelope(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+expandEnvelope</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>expandEnvelope</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Expands the given <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A> to include the coordinates in the sequence.
+ Allows implementing classes to optimize access to coordinate values.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>env</CODE> - the envelope to expand
+<DT><B>Returns:</B><DD>a ref to the expanded envelope</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PackedCoordinateSequence.Double.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_classes_inherited_from_class_com.vividsolutions.jts.geom.impl.PackedCoordinateSequence">NESTED</A> | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.impl.PackedCoordinateSequence">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,517 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+PackedCoordinateSequence.Float
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.impl.PackedCoordinateSequence.Float class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="PackedCoordinateSequence.Float";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PackedCoordinateSequence.Float.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_classes_inherited_from_class_com.vividsolutions.jts.geom.impl.PackedCoordinateSequence">NESTED</A> | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.impl.PackedCoordinateSequence">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.impl</FONT>
+<BR>
+Class PackedCoordinateSequence.Float</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">com.vividsolutions.jts.geom.impl.PackedCoordinateSequence</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.impl.PackedCoordinateSequence.Float</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></DD>
+</DL>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public static class <B>PackedCoordinateSequence.Float</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></DL>
+
+<P>
+Packed coordinate sequence implementation based on floats
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="nested_classes_inherited_from_class_com.vividsolutions.jts.geom.impl.PackedCoordinateSequence"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Nested classes inherited from class com.vividsolutions.jts.geom.impl.<A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.impl.PackedCoordinateSequence"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geom.impl.<A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#coordRef">coordRef</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#dimension">dimension</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.CoordinateSequence"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from interface com.vividsolutions.jts.geom.<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#M">M</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#X">X</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#Y">Y</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#Z">Z</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#PackedCoordinateSequence.Float(com.vividsolutions.jts.geom.Coordinate[], int)">PackedCoordinateSequence.Float</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates,
+ int dimension)</CODE>
+
+<BR>
+ Constructs a packed coordinate sequence out of a coordinate array</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#PackedCoordinateSequence.Float(double[], int)">PackedCoordinateSequence.Float</A></B>(double[] coordinates,
+ int dimensions)</CODE>
+
+<BR>
+ Constructs a packed coordinate sequence from an array of <code>double<code>s</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#PackedCoordinateSequence.Float(float[], int)">PackedCoordinateSequence.Float</A></B>(float[] coords,
+ int dimensions)</CODE>
+
+<BR>
+ Constructs a packed coordinate sequence from an array of <code>float<code>s</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#PackedCoordinateSequence.Float(int, int)">PackedCoordinateSequence.Float</A></B>(int size,
+ int dimension)</CODE>
+
+<BR>
+ Constructs an empty packed coordinate sequence of a given size and dimension</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#clone()">clone</A></B>()</CODE>
+
+<BR>
+ Returns a deep copy of this collection.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#expandEnvelope(com.vividsolutions.jts.geom.Envelope)">expandEnvelope</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</CODE>
+
+<BR>
+ Expands the given <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A> to include the coordinates in the sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#getCoordinateInternal(int)">getCoordinateInternal</A></B>(int i)</CODE>
+
+<BR>
+ Returns a Coordinate representation of the specified coordinate, by always
+ building a new Coordinate object</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#getOrdinate(int, int)">getOrdinate</A></B>(int index,
+ int ordinate)</CODE>
+
+<BR>
+ Returns the ordinate of a coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#setOrdinate(int, int, double)">setOrdinate</A></B>(int index,
+ int ordinate,
+ double value)</CODE>
+
+<BR>
+ Sets the ordinate of a coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#size()">size</A></B>()</CODE>
+
+<BR>
+ Returns the number of coordinates in this sequence.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.impl.PackedCoordinateSequence"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geom.impl.<A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinate(int)">getCoordinate</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinate(int, com.vividsolutions.jts.geom.Coordinate)">getCoordinate</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinateCopy(int)">getCoordinateCopy</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getDimension()">getDimension</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getX(int)">getX</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getY(int)">getY</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#setX(int, double)">setX</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#setY(int, double)">setY</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#toCoordinateArray()">toCoordinateArray</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="PackedCoordinateSequence.Float(float[], int)"><!-- --></A><H3>
+PackedCoordinateSequence.Float</H3>
+<PRE>
+public <B>PackedCoordinateSequence.Float</B>(float[] coords,
+ int dimensions)</PRE>
+<DL>
+<DD>Constructs a packed coordinate sequence from an array of <code>float<code>s
+<P>
+<DT><B>Parameters:</B><DD><CODE>coords</CODE> - <DD><CODE>dimensions</CODE> - </DL>
+<HR>
+
+<A NAME="PackedCoordinateSequence.Float(double[], int)"><!-- --></A><H3>
+PackedCoordinateSequence.Float</H3>
+<PRE>
+public <B>PackedCoordinateSequence.Float</B>(double[] coordinates,
+ int dimensions)</PRE>
+<DL>
+<DD>Constructs a packed coordinate sequence from an array of <code>double<code>s
+<P>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - </DL>
+<HR>
+
+<A NAME="PackedCoordinateSequence.Float(com.vividsolutions.jts.geom.Coordinate[], int)"><!-- --></A><H3>
+PackedCoordinateSequence.Float</H3>
+<PRE>
+public <B>PackedCoordinateSequence.Float</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates,
+ int dimension)</PRE>
+<DL>
+<DD>Constructs a packed coordinate sequence out of a coordinate array
+<P>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - </DL>
+<HR>
+
+<A NAME="PackedCoordinateSequence.Float(int, int)"><!-- --></A><H3>
+PackedCoordinateSequence.Float</H3>
+<PRE>
+public <B>PackedCoordinateSequence.Float</B>(int size,
+ int dimension)</PRE>
+<DL>
+<DD>Constructs an empty packed coordinate sequence of a given size and dimension
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinateInternal(int)"><!-- --></A><H3>
+getCoordinateInternal</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinateInternal</B>(int i)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></CODE></B></DD>
+<DD>Returns a Coordinate representation of the specified coordinate, by always
+ building a new Coordinate object
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinateInternal(int)">getCoordinateInternal</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>i</CODE> -
+<DT><B>Returns:</B><DD><DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinate(int)"><CODE>CoordinateSequence.getCoordinate(int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="size()"><!-- --></A><H3>
+size</H3>
+<PRE>
+public int <B>size</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns the number of coordinates in this sequence.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the size of the sequence<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#size()"><CODE>CoordinateSequence.size()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clone()"><!-- --></A><H3>
+clone</H3>
+<PRE>
+public java.lang.Object <B>clone</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns a deep copy of this collection.
+ Called by Geometry#clone.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#clone()">clone</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#clone()">clone</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>See Also:</B><DD><CODE>Object.clone()</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOrdinate(int, int)"><!-- --></A><H3>
+getOrdinate</H3>
+<PRE>
+public double <B>getOrdinate</B>(int index,
+ int ordinate)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns the ordinate of a coordinate in this sequence.
+ Ordinate indices 0 and 1 are assumed to be X and Y.
+ Ordinates indices greater than 1 have user-defined semantics
+ (for instance, they may contain other dimensions or measure values).
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getOrdinate(int, int)">getOrdinate</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getOrdinate(int, int)">getOrdinate</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getOrdinate(int, int)"><CODE>Beware, for performace reasons the ordinate index is not checked, if
+ it's over dimensions you may not get an exception but a meaningless
+ value.</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setOrdinate(int, int, double)"><!-- --></A><H3>
+setOrdinate</H3>
+<PRE>
+public void <B>setOrdinate</B>(int index,
+ int ordinate,
+ double value)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></CODE></B></DD>
+<DD>Sets the ordinate of a coordinate in this sequence.
+ <br>
+ Warning: for performance reasons the ordinate index is not checked
+ - if it is over dimensions you may not get an exception but a meaningless value.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#setOrdinate(int, int, double)">setOrdinate</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#setOrdinate(int, int, double)">setOrdinate</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> - the coordinate index<DD><CODE>ordinate</CODE> - the ordinate index in the coordinate, 0 based, smaller than the
+ number of dimensions<DD><CODE>value</CODE> - the new ordinate value<DT><B>See Also:</B><DD><CODE>com.vividsolutions.jts.geom.PackedCoordinateSequence#setOrdinate(int,
+ int, double)</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="expandEnvelope(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+expandEnvelope</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>expandEnvelope</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Expands the given <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A> to include the coordinates in the sequence.
+ Allows implementing classes to optimize access to coordinate values.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>env</CODE> - the envelope to expand
+<DT><B>Returns:</B><DD>a ref to the expanded envelope</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PackedCoordinateSequence.Float.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_classes_inherited_from_class_com.vividsolutions.jts.geom.impl.PackedCoordinateSequence">NESTED</A> | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.impl.PackedCoordinateSequence">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,717 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:50 PST 2006 -->
+<TITLE>
+PackedCoordinateSequence
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.impl.PackedCoordinateSequence class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="PackedCoordinateSequence";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PackedCoordinateSequence.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.impl</FONT>
+<BR>
+Class PackedCoordinateSequence</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.impl.PackedCoordinateSequence</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public abstract class <B>PackedCoordinateSequence</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></DL>
+
+<P>
+A <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> implementation based on a packed arrays.
+ In this implementation, <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s returned by #toArray and #get are copies
+ of the internal values.
+ To change the actual values, use the provided setters.
+ <p>
+ For efficiency, created Coordinate arrays
+ are cached using a soft reference.
+ The cache is cleared each time the coordinate sequence contents are
+ modified through a setter method.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A></B></CODE>
+
+<BR>
+ Packed coordinate sequence implementation based on doubles</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A></B></CODE>
+
+<BR>
+ Packed coordinate sequence implementation based on floats</TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.lang.ref.SoftReference</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#coordRef">coordRef</A></B></CODE>
+
+<BR>
+ A soft reference to the Coordinate[] representation of this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#dimension">dimension</A></B></CODE>
+
+<BR>
+ The dimensions of the coordinates hold in the packed array</TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.CoordinateSequence"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from interface com.vividsolutions.jts.geom.<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#M">M</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#X">X</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#Y">Y</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#Z">Z</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#PackedCoordinateSequence()">PackedCoordinateSequence</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#clone()">clone</A></B>()</CODE>
+
+<BR>
+ Returns a deep copy of this collection.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinate(int)">getCoordinate</A></B>(int i)</CODE>
+
+<BR>
+ Returns (possibly a copy of) the i'th coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinate(int, com.vividsolutions.jts.geom.Coordinate)">getCoordinate</A></B>(int i,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ Copies the i'th coordinate in the sequence to the supplied
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinateCopy(int)">getCoordinateCopy</A></B>(int i)</CODE>
+
+<BR>
+ Returns a copy of the i'th coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected abstract <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinateInternal(int)">getCoordinateInternal</A></B>(int index)</CODE>
+
+<BR>
+ Returns a Coordinate representation of the specified coordinate, by always
+ building a new Coordinate object</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getDimension()">getDimension</A></B>()</CODE>
+
+<BR>
+ Returns the dimension (number of ordinates in each coordinate)
+ for this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getOrdinate(int, int)">getOrdinate</A></B>(int index,
+ int ordinateIndex)</CODE>
+
+<BR>
+ Returns the ordinate of a coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getX(int)">getX</A></B>(int index)</CODE>
+
+<BR>
+ Returns ordinate X (0) of the specified coordinate.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getY(int)">getY</A></B>(int index)</CODE>
+
+<BR>
+ Returns ordinate Y (1) of the specified coordinate.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#setOrdinate(int, int, double)">setOrdinate</A></B>(int index,
+ int ordinate,
+ double value)</CODE>
+
+<BR>
+ Sets the ordinate of a coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#setX(int, double)">setX</A></B>(int index,
+ double value)</CODE>
+
+<BR>
+ Sets the first ordinate of a coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#setY(int, double)">setY</A></B>(int index,
+ double value)</CODE>
+
+<BR>
+ Sets the second ordinate of a coordinate in this sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#toCoordinateArray()">toCoordinateArray</A></B>()</CODE>
+
+<BR>
+ Returns (possibly copies of) the Coordinates in this collection.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.CoordinateSequence"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from interface com.vividsolutions.jts.geom.<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#expandEnvelope(com.vividsolutions.jts.geom.Envelope)">expandEnvelope</A>, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#size()">size</A></CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="dimension"><!-- --></A><H3>
+dimension</H3>
+<PRE>
+protected int <B>dimension</B></PRE>
+<DL>
+<DD>The dimensions of the coordinates hold in the packed array
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="coordRef"><!-- --></A><H3>
+coordRef</H3>
+<PRE>
+protected java.lang.ref.SoftReference <B>coordRef</B></PRE>
+<DL>
+<DD>A soft reference to the Coordinate[] representation of this sequence.
+ Makes repeated coordinate array accesses more efficient.
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="PackedCoordinateSequence()"><!-- --></A><H3>
+PackedCoordinateSequence</H3>
+<PRE>
+public <B>PackedCoordinateSequence</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getDimension()"><!-- --></A><H3>
+getDimension</H3>
+<PRE>
+public int <B>getDimension</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns the dimension (number of ordinates in each coordinate)
+ for this sequence.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getDimension()">getDimension</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the dimension of the sequence.<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getDimension()"><CODE>CoordinateSequence.getDimension()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate(int)"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>(int i)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns (possibly a copy of) the i'th coordinate in this sequence.
+ Whether or not the Coordinate returned is the actual underlying
+ Coordinate or merely a copy depends on the implementation.
+ <p>
+ Note that in the future the semantics of this method may change
+ to guarantee that the Coordinate returned is always a copy.
+ Callers should not to assume that they can modify a CoordinateSequence by
+ modifying the object returned by this method.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinate(int)">getCoordinate</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>i</CODE> - the index of the coordinate to retrieve
+<DT><B>Returns:</B><DD>the i'th coordinate in the sequence<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinate(int)"><CODE>CoordinateSequence.getCoordinate(int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinateCopy(int)"><!-- --></A><H3>
+getCoordinateCopy</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinateCopy</B>(int i)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns a copy of the i'th coordinate in this sequence.
+ This method optimizes the situation where the caller is
+ going to make a copy anyway - if the implementation
+ has already created a new Coordinate object, no further copy is needed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinateCopy(int)">getCoordinateCopy</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>i</CODE> - the index of the coordinate to retrieve
+<DT><B>Returns:</B><DD>a copy of the i'th coordinate in the sequence<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinate(int)"><CODE>CoordinateSequence.getCoordinate(int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate(int, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public void <B>getCoordinate</B>(int i,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Copies the i'th coordinate in the sequence to the supplied
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>. Only the first two dimensions are copied.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinate(int, com.vividsolutions.jts.geom.Coordinate)">getCoordinate</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>i</CODE> - the index of the coordinate to copy<DD><CODE>coord</CODE> - a <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> to receive the value<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinate(int)"><CODE>CoordinateSequence.getCoordinate(int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toCoordinateArray()"><!-- --></A><H3>
+toCoordinateArray</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>toCoordinateArray</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns (possibly copies of) the Coordinates in this collection.
+ Whether or not the Coordinates returned are the actual underlying
+ Coordinates or merely copies depends on the implementation. Note that
+ if this implementation does not store its data as an array of Coordinates,
+ this method will incur a performance penalty because the array needs to
+ be built from scratch.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#toCoordinateArray()">toCoordinateArray</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a array of coordinates containing the point values in this sequence<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#toCoordinateArray()"><CODE>CoordinateSequence.toCoordinateArray()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getX(int)"><!-- --></A><H3>
+getX</H3>
+<PRE>
+public double <B>getX</B>(int index)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns ordinate X (0) of the specified coordinate.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getX(int)">getX</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> -
+<DT><B>Returns:</B><DD>the value of the X ordinate in the index'th coordinate<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getX(int)"><CODE>CoordinateSequence.getX(int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getY(int)"><!-- --></A><H3>
+getY</H3>
+<PRE>
+public double <B>getY</B>(int index)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns ordinate Y (1) of the specified coordinate.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getY(int)">getY</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> -
+<DT><B>Returns:</B><DD>the value of the Y ordinate in the index'th coordinate<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getY(int)"><CODE>CoordinateSequence.getY(int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOrdinate(int, int)"><!-- --></A><H3>
+getOrdinate</H3>
+<PRE>
+public abstract double <B>getOrdinate</B>(int index,
+ int ordinateIndex)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns the ordinate of a coordinate in this sequence.
+ Ordinate indices 0 and 1 are assumed to be X and Y.
+ Ordinates indices greater than 1 have user-defined semantics
+ (for instance, they may contain other dimensions or measure values).
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getOrdinate(int, int)">getOrdinate</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> - the coordinate index in the sequence<DD><CODE>ordinateIndex</CODE> - the ordinate index in the coordinate (in range [0, dimension-1])<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#getOrdinate(int, int)"><CODE>CoordinateSequence.getOrdinate(int, int)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setX(int, double)"><!-- --></A><H3>
+setX</H3>
+<PRE>
+public void <B>setX</B>(int index,
+ double value)</PRE>
+<DL>
+<DD>Sets the first ordinate of a coordinate in this sequence.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> - the coordinate index<DD><CODE>value</CODE> - the new ordinate value</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setY(int, double)"><!-- --></A><H3>
+setY</H3>
+<PRE>
+public void <B>setY</B>(int index,
+ double value)</PRE>
+<DL>
+<DD>Sets the second ordinate of a coordinate in this sequence.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> - the coordinate index<DD><CODE>value</CODE> - the new ordinate value</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinateInternal(int)"><!-- --></A><H3>
+getCoordinateInternal</H3>
+<PRE>
+protected abstract <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinateInternal</B>(int index)</PRE>
+<DL>
+<DD>Returns a Coordinate representation of the specified coordinate, by always
+ building a new Coordinate object
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> -
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clone()"><!-- --></A><H3>
+clone</H3>
+<PRE>
+public abstract java.lang.Object <B>clone</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></B></DD>
+<DD>Returns a deep copy of this collection.
+ Called by Geometry#clone.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#clone()">clone</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>See Also:</B><DD><CODE>Object.clone()</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setOrdinate(int, int, double)"><!-- --></A><H3>
+setOrdinate</H3>
+<PRE>
+public abstract void <B>setOrdinate</B>(int index,
+ int ordinate,
+ double value)</PRE>
+<DL>
+<DD>Sets the ordinate of a coordinate in this sequence.
+ <br>
+ Warning: for performance reasons the ordinate index is not checked
+ - if it is over dimensions you may not get an exception but a meaningless value.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html#setOrdinate(int, int, double)">setOrdinate</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> - the coordinate index<DD><CODE>ordinate</CODE> - the ordinate index in the coordinate, 0 based, smaller than the
+ number of dimensions<DD><CODE>value</CODE> - the new ordinate value</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PackedCoordinateSequence.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,608 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+PackedCoordinateSequenceFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.impl.PackedCoordinateSequenceFactory class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="PackedCoordinateSequenceFactory";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PackedCoordinateSequenceFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.impl</FONT>
+<BR>
+Class PackedCoordinateSequenceFactory</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.impl.PackedCoordinateSequenceFactory</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>PackedCoordinateSequenceFactory</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></DL>
+
+<P>
+Builds packed array coordinate sequences. The array data type can be either
+ double or float, and defaults to float.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#DOUBLE">DOUBLE</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#DOUBLE_FACTORY">DOUBLE_FACTORY</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#FLOAT">FLOAT</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#FLOAT_FACTORY">FLOAT_FACTORY</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#PackedCoordinateSequenceFactory()">PackedCoordinateSequenceFactory</A></B>()</CODE>
+
+<BR>
+ Creates a new PackedCoordinateSequenceFactory
+ of type DOUBLE.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#PackedCoordinateSequenceFactory(int)">PackedCoordinateSequenceFactory</A></B>(int type)</CODE>
+
+<BR>
+ Creates a new PackedCoordinateSequenceFactory
+ of the given type.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#PackedCoordinateSequenceFactory(int, int)">PackedCoordinateSequenceFactory</A></B>(int type,
+ int dimension)</CODE>
+
+<BR>
+ Creates a new PackedCoordinateSequenceFactory
+ of the given type.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.Coordinate[])">create</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</CODE>
+
+<BR>
+ Returns a <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> based on the given array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.CoordinateSequence)">create</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordSeq)</CODE>
+
+<BR>
+ Creates a <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> which is a copy
+ of the given <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#create(double[], int)">create</A></B>(double[] packedCoordinates,
+ int dimension)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#create(float[], int)">create</A></B>(float[] packedCoordinates,
+ int dimension)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#create(int, int)">create</A></B>(int size,
+ int dimension)</CODE>
+
+<BR>
+ Creates a <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> of the specified size and dimension.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#getDimension()">getDimension</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#getType()">getType</A></B>()</CODE>
+
+<BR>
+ Returns the type of packed coordinate sequences this factory builds, either
+ PackedCoordinateSequenceFactory#Float or
+ PackedCoordinateSequenceFactory#Double</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#setDimension(int)">setDimension</A></B>(int dimension)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#setType(int)">setType</A></B>(int type)</CODE>
+
+<BR>
+ Sets the type of packed coordinate sequences this factory builds,
+ acceptable values are PackedCoordinateSequenceFactory#Floator
+ PackedCoordinateSequenceFactory#Double</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="DOUBLE"><!-- --></A><H3>
+DOUBLE</H3>
+<PRE>
+public static final int <B>DOUBLE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.geom.impl.PackedCoordinateSequenceFactory.DOUBLE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="FLOAT"><!-- --></A><H3>
+FLOAT</H3>
+<PRE>
+public static final int <B>FLOAT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.geom.impl.PackedCoordinateSequenceFactory.FLOAT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DOUBLE_FACTORY"><!-- --></A><H3>
+DOUBLE_FACTORY</H3>
+<PRE>
+public static final <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A> <B>DOUBLE_FACTORY</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="FLOAT_FACTORY"><!-- --></A><H3>
+FLOAT_FACTORY</H3>
+<PRE>
+public static final <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A> <B>FLOAT_FACTORY</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="PackedCoordinateSequenceFactory()"><!-- --></A><H3>
+PackedCoordinateSequenceFactory</H3>
+<PRE>
+public <B>PackedCoordinateSequenceFactory</B>()</PRE>
+<DL>
+<DD>Creates a new PackedCoordinateSequenceFactory
+ of type DOUBLE.
+<P>
+</DL>
+<HR>
+
+<A NAME="PackedCoordinateSequenceFactory(int)"><!-- --></A><H3>
+PackedCoordinateSequenceFactory</H3>
+<PRE>
+public <B>PackedCoordinateSequenceFactory</B>(int type)</PRE>
+<DL>
+<DD>Creates a new PackedCoordinateSequenceFactory
+ of the given type.
+ Acceptable type values are
+ PackedCoordinateSequenceFactory#Floator
+ PackedCoordinateSequenceFactory#Double
+<P>
+</DL>
+<HR>
+
+<A NAME="PackedCoordinateSequenceFactory(int, int)"><!-- --></A><H3>
+PackedCoordinateSequenceFactory</H3>
+<PRE>
+public <B>PackedCoordinateSequenceFactory</B>(int type,
+ int dimension)</PRE>
+<DL>
+<DD>Creates a new PackedCoordinateSequenceFactory
+ of the given type.
+ Acceptable type values are
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#FLOAT">FLOAT</A>or
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#DOUBLE">DOUBLE</A>
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getType()"><!-- --></A><H3>
+getType</H3>
+<PRE>
+public int <B>getType</B>()</PRE>
+<DL>
+<DD>Returns the type of packed coordinate sequences this factory builds, either
+ PackedCoordinateSequenceFactory#Float or
+ PackedCoordinateSequenceFactory#Double
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setType(int)"><!-- --></A><H3>
+setType</H3>
+<PRE>
+public void <B>setType</B>(int type)</PRE>
+<DL>
+<DD>Sets the type of packed coordinate sequences this factory builds,
+ acceptable values are PackedCoordinateSequenceFactory#Floator
+ PackedCoordinateSequenceFactory#Double
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDimension()"><!-- --></A><H3>
+getDimension</H3>
+<PRE>
+public int <B>getDimension</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDimension(int)"><!-- --></A><H3>
+setDimension</H3>
+<PRE>
+public void <B>setDimension</B>(int dimension)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+create</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>create</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></B></DD>
+<DD>Returns a <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> based on the given array.
+ Whether the array is copied or simply referenced
+ is implementation-dependent.
+ This method must handle null arguments by creating an empty sequence.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.Coordinate[])">create</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - the coordinates<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.Coordinate[])"><CODE>CoordinateSequenceFactory.create(com.vividsolutions.jts.geom.Coordinate[])</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(com.vividsolutions.jts.geom.CoordinateSequence)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>create</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coordSeq)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></B></DD>
+<DD>Creates a <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> which is a copy
+ of the given <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.
+ This method must handle null arguments by creating an empty sequence.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.CoordinateSequence)">create</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordSeq</CODE> - the coordinate sequence to copy<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.CoordinateSequence)"><CODE>CoordinateSequenceFactory.create(com.vividsolutions.jts.geom.CoordinateSequence)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(double[], int)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>create</B>(double[] packedCoordinates,
+ int dimension)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>See Also:</B><DD><CODE>com.vividsolutions.jts.geom.CoordinateSequenceFactory#create(double[],
+ int)</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(float[], int)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>create</B>(float[] packedCoordinates,
+ int dimension)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>See Also:</B><DD><CODE>com.vividsolutions.jts.geom.CoordinateSequenceFactory#create(float[],
+ int)</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(int, int)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>create</B>(int size,
+ int dimension)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></B></DD>
+<DD>Creates a <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> of the specified size and dimension.
+ For this to be useful, the <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> implementation must
+ be mutable.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(int, int)">create</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>size</CODE> - the number of coordinates in the sequence<DD><CODE>dimension</CODE> - the dimension of the coordinates in the sequence (if user-specifiable,
+ otherwise ignored)<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(int, int)"><CODE>CoordinateSequenceFactory.create(int, int)</CODE></A></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PackedCoordinateSequenceFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.geom.impl
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.impl package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/geom/impl/package-summary.html" target="classFrame">com.vividsolutions.jts.geom.impl</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl" target="classFrame">CoordinateArraySequence</A>
+<BR>
+<A HREF="CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl" target="classFrame">CoordinateArraySequenceFactory</A>
+<BR>
+<A HREF="PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl" target="classFrame">PackedCoordinateSequence</A>
+<BR>
+<A HREF="PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl" target="classFrame">PackedCoordinateSequence.Double</A>
+<BR>
+<A HREF="PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl" target="classFrame">PackedCoordinateSequence.Float</A>
+<BR>
+<A HREF="PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl" target="classFrame">PackedCoordinateSequenceFactory</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.geom.impl
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.impl package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.geom.impl";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.geom.impl
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A></B></TD>
+<TD>The <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> implementation that <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s use by default.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequenceFactory</A></B></TD>
+<TD>Creates <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s represented as an array of <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A></B></TD>
+<TD>A <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> implementation based on a packed arrays.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A></B></TD>
+<TD>Packed coordinate sequence implementation based on doubles</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A></B></TD>
+<TD>Packed coordinate sequence implementation based on floats</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A></B></TD>
+<TD>Builds packed array coordinate sequences.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/impl/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.geom.impl Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.geom.impl Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.geom.impl
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.impl.<A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl"><B>CoordinateArraySequence</B></A> (implements com.vividsolutions.jts.geom.<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>, java.io.Serializable)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.impl.<A HREF="../../../../../com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl"><B>CoordinateArraySequenceFactory</B></A> (implements com.vividsolutions.jts.geom.<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A>, java.io.Serializable)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.impl.<A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl"><B>PackedCoordinateSequence</B></A> (implements com.vividsolutions.jts.geom.<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.impl.<A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl"><B>PackedCoordinateSequence.Double</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.impl.<A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl"><B>PackedCoordinateSequence.Float</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.impl.<A HREF="../../../../../com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl"><B>PackedCoordinateSequenceFactory</B></A> (implements com.vividsolutions.jts.geom.<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A>)
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,116 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.geom
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/vividsolutions/jts/geom/package-summary.html" target="classFrame">com.vividsolutions.jts.geom</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom" target="classFrame"><I>CoordinateFilter</I></A>
+<BR>
+<A HREF="CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom" target="classFrame"><I>CoordinateSequence</I></A>
+<BR>
+<A HREF="CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom" target="classFrame"><I>CoordinateSequenceFactory</I></A>
+<BR>
+<A HREF="CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom" target="classFrame"><I>CoordinateSequenceFilter</I></A>
+<BR>
+<A HREF="GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom" target="classFrame"><I>GeometryComponentFilter</I></A>
+<BR>
+<A HREF="GeometryFilter.html" title="interface in com.vividsolutions.jts.geom" target="classFrame"><I>GeometryFilter</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Coordinate.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Coordinate</A>
+<BR>
+<A HREF="Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Coordinate.DimensionalComparator</A>
+<BR>
+<A HREF="CoordinateArrays.html" title="class in com.vividsolutions.jts.geom" target="classFrame">CoordinateArrays</A>
+<BR>
+<A HREF="CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom" target="classFrame">CoordinateArrays.BidirectionalComparator</A>
+<BR>
+<A HREF="CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom" target="classFrame">CoordinateArrays.ForwardComparator</A>
+<BR>
+<A HREF="CoordinateList.html" title="class in com.vividsolutions.jts.geom" target="classFrame">CoordinateList</A>
+<BR>
+<A HREF="CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom" target="classFrame">CoordinateSequenceComparator</A>
+<BR>
+<A HREF="CoordinateSequences.html" title="class in com.vividsolutions.jts.geom" target="classFrame">CoordinateSequences</A>
+<BR>
+<A HREF="DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom" target="classFrame">DefaultCoordinateSequenceFactory</A>
+<BR>
+<A HREF="Dimension.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Dimension</A>
+<BR>
+<A HREF="Envelope.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Envelope</A>
+<BR>
+<A HREF="Geometry.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Geometry</A>
+<BR>
+<A HREF="GeometryCollection.html" title="class in com.vividsolutions.jts.geom" target="classFrame">GeometryCollection</A>
+<BR>
+<A HREF="GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom" target="classFrame">GeometryCollectionIterator</A>
+<BR>
+<A HREF="GeometryFactory.html" title="class in com.vividsolutions.jts.geom" target="classFrame">GeometryFactory</A>
+<BR>
+<A HREF="IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom" target="classFrame">IntersectionMatrix</A>
+<BR>
+<A HREF="LinearRing.html" title="class in com.vividsolutions.jts.geom" target="classFrame">LinearRing</A>
+<BR>
+<A HREF="LineSegment.html" title="class in com.vividsolutions.jts.geom" target="classFrame">LineSegment</A>
+<BR>
+<A HREF="LineString.html" title="class in com.vividsolutions.jts.geom" target="classFrame">LineString</A>
+<BR>
+<A HREF="Location.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Location</A>
+<BR>
+<A HREF="MultiLineString.html" title="class in com.vividsolutions.jts.geom" target="classFrame">MultiLineString</A>
+<BR>
+<A HREF="MultiPoint.html" title="class in com.vividsolutions.jts.geom" target="classFrame">MultiPoint</A>
+<BR>
+<A HREF="MultiPolygon.html" title="class in com.vividsolutions.jts.geom" target="classFrame">MultiPolygon</A>
+<BR>
+<A HREF="Point.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Point</A>
+<BR>
+<A HREF="Polygon.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Polygon</A>
+<BR>
+<A HREF="PrecisionModel.html" title="class in com.vividsolutions.jts.geom" target="classFrame">PrecisionModel</A>
+<BR>
+<A HREF="Triangle.html" title="class in com.vividsolutions.jts.geom" target="classFrame">Triangle</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Exceptions</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="TopologyException.html" title="class in com.vividsolutions.jts.geom" target="classFrame">TopologyException</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,338 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.geom
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.geom";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/impl/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.geom
+</H2>
+Contains the <CODE>Geometry</CODE> interface hierarchy and supporting classes.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A></B></TD>
+<TD><code>Geometry</code> classes support the concept of applying a
+ coordinate filter to every coordinate in the <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></B></TD>
+<TD>The internal representation of a list of coordinates inside a Geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A></B></TD>
+<TD>A factory to create concrete instances of <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A></B></TD>
+<TD>Interface for classeswhich provide operations that
+ can be applied to the coordinates in a <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A></B></TD>
+<TD><code>Geometry</code> classes support the concept of applying
+ a <code>GeometryComponentFilter</code>
+ filter to the <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></B></TD>
+<TD><code>GeometryCollection</code> classes support the concept of
+ applying a <code>GeometryFilter</code> to the <code>Geometry</code>.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></B></TD>
+<TD>A lightweight class used to store coordinates
+ on the 2-dimensional Cartesian plane.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom">Coordinate.DimensionalComparator</A></B></TD>
+<TD>Compares two <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s, allowing for either a 2-dimensional
+ or 3-dimensional comparison, and handling NaN values correctly.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A></B></TD>
+<TD>Useful utility functions for handling Coordinate arrays</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays.BidirectionalComparator</A></B></TD>
+<TD>A <CODE>Comparator</CODE> for <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> arrays
+ modulo their directionality.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays.ForwardComparator</A></B></TD>
+<TD>A <CODE>Comparator</CODE> for <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> arrays
+ in the forward direction of their coordinates,
+ using lexicographic ordering.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">CoordinateList</A></B></TD>
+<TD>A list of <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s, which may
+ be set to prevent repeated coordinates from occuring in the list.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A></B></TD>
+<TD>Compares two <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequences.html" title="class in com.vividsolutions.jts.geom">CoordinateSequences</A></B></TD>
+<TD>Utility functions for manipulating <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom">DefaultCoordinateSequenceFactory</A></B></TD>
+<TD><B>Deprecated.</B> <I>no longer used</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom">Dimension</A></B></TD>
+<TD>Constants representing the dimensions of a point, a curve and a surface.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></B></TD>
+<TD>Defines a rectangular region of the 2D coordinate plane.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></B></TD>
+<TD>The base class for all geometric objects.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A></B></TD>
+<TD>Basic implementation of <code>GeometryCollection</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom">GeometryCollectionIterator</A></B></TD>
+<TD>Iterates over all <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s in a <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A></B></TD>
+<TD>Supplies a set of utility methods for building Geometry objects from lists
+ of Coordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A></B></TD>
+<TD>A Dimensionally Extended Nine-Intersection Model (DE-9IM) matrix.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A></B></TD>
+<TD>Models an OGC SFS <code>LinearRing</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A></B></TD>
+<TD>Represents a line segment defined by two <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></B></TD>
+<TD>Basic implementation of <code>LineString</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom">Location</A></B></TD>
+<TD>Constants representing the location of a point relative to a geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A></B></TD>
+<TD>Basic implementation of <code>MultiLineString</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A></B></TD>
+<TD>Models a collection of <code>Point</code>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A></B></TD>
+<TD>Basic implementation of <code>MultiPolygon</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A></B></TD>
+<TD>Basic implementation of <code>Point</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A></B></TD>
+<TD>Represents a linear polygon, which may include holes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A></B></TD>
+<TD>Specifies the precision model of the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s in a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A></B></TD>
+<TD>Represents a planar triangle, and provides methods for calculating various
+ properties of triangles.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Exception Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A></B></TD>
+<TD>Indicates an invalid or inconsistent topological situation encountered during processing</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.geom Description
+</H2>
+
+<P>
+Contains the <CODE>Geometry</CODE> interface hierarchy and supporting classes.
+<P>
+The Java Topology Suite (JTS) is a Java API that implements a core set of spatial data operations using an explicit precision model and robust geometric algorithms. JTS is intended to be used in the development of applications that support the validation, cleaning, integration and querying of spatial datasets.
+<P>
+JTS attempts to implement the OpenGIS Simple Features Specification (SFS) as accurately as possible. In some cases the SFS is unclear or omits a specification; in this case JTS attempts to choose a reasonable and consistent alternative. Differences from and elaborations of the SFS are documented in this specification.
+
+<h2>Package Specification</h2>
+
+<ul>
+ <li>Java Topology Suite Technical Specifications
+ <li><A HREF="http://www.opengis.org/techno/specs.htm">
+ OpenGIS Simple Features Specification for SQL</A>
+</ul>
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/impl/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,185 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.geom Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.geom Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/impl/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.geom
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class java.util.AbstractCollection (implements java.util.Collection)
+<UL>
+<LI TYPE="circle">class java.util.AbstractList (implements java.util.List)
+<UL>
+<LI TYPE="circle">class java.util.ArrayList (implements java.lang.Cloneable, java.util.List, java.util.RandomAccess, java.io.Serializable)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateList</B></A></UL>
+</UL>
+</UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><B>Coordinate</B></A> (implements java.lang.Cloneable, java.lang.Comparable, java.io.Serializable)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom"><B>Coordinate.DimensionalComparator</B></A> (implements java.util.Comparator)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateArrays</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateArrays.BidirectionalComparator</B></A> (implements java.util.Comparator)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateArrays.ForwardComparator</B></A> (implements java.util.Comparator)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateSequenceComparator</B></A> (implements java.util.Comparator)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequences.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateSequences</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom"><B>DefaultCoordinateSequenceFactory</B></A> (implements com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A>, java.io.Serializable)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom"><B>Dimension</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><B>Envelope</B></A> (implements java.io.Serializable)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><B>Geometry</B></A> (implements java.lang.Cloneable, java.lang.Comparable, java.io.Serializable)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><B>GeometryCollection</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><B>MultiLineString</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom"><B>MultiPoint</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom"><B>MultiPolygon</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><B>LineString</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><B>LinearRing</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><B>Point</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><B>Polygon</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom"><B>GeometryCollectionIterator</B></A> (implements java.util.Iterator)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><B>GeometryFactory</B></A> (implements java.io.Serializable)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><B>IntersectionMatrix</B></A> (implements java.lang.Cloneable)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom"><B>LineSegment</B></A> (implements java.lang.Comparable, java.io.Serializable)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><B>Location</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><B>PrecisionModel</B></A> (implements java.lang.Comparable, java.io.Serializable)
+<LI TYPE="circle">class java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">class java.lang.Exception<UL>
+<LI TYPE="circle">class java.lang.RuntimeException<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom"><B>TopologyException</B></A></UL>
+</UL>
+</UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom"><B>Triangle</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">interface java.lang.Cloneable<UL>
+<LI TYPE="circle">interface com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><B>CoordinateSequence</B></A></UL>
+<LI TYPE="circle">interface com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom"><B>CoordinateFilter</B></A><LI TYPE="circle">interface com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom"><B>CoordinateSequenceFactory</B></A><LI TYPE="circle">interface com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom"><B>CoordinateSequenceFilter</B></A><LI TYPE="circle">interface com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom"><B>GeometryComponentFilter</B></A><LI TYPE="circle">interface com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom"><B>GeometryFilter</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geom/impl/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/AffineTransformation.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/AffineTransformation.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/AffineTransformation.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,1583 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+AffineTransformation
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.util.AffineTransformation class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="AffineTransformation";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AffineTransformation.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.util</FONT>
+<BR>
+Class AffineTransformation</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.util.AffineTransformation</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>AffineTransformation</B><DT>extends java.lang.Object<DT>implements java.lang.Cloneable, <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A></DL>
+
+<P>
+Represents a affine transformation on the 2D Cartesian plane.
+ It can be used to transform a <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> or <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+ An affine transformation is a mapping of the 2D plane into itself
+ via a series of transformations of the following basic types:
+ <ul>
+ <li>reflection (through a line)
+ <li>rotation (around the origin)
+ <li>scaling (relative to the origin)
+ <li>shearing (in both the X and Y directions)
+ <li>translation
+ </ul>
+ In general, affine transformations preserve straightness and parallel lines,
+ but do not preserve distance or shape.
+ <p>
+ An affine transformation can be represented by a 3x3
+ matrix in the following form:
+ <blockquote><pre>
+ T = | m00 m01 m02 |
+ | m10 m11 m12 |
+ | 0 0 1 |
+ </pre></blockquote>
+ A coordinate P = (x, y) can be transformed to a new coordinate P' = (x', y')
+ by representing it as a 3x1 matrix and using matrix multiplication to compute:
+ <blockquote><pre>
+ | x' | = T x | x |
+ | y' | | y |
+ | 1 | | 1 |
+ </pre></blockquote>
+ Affine transformations can be composed using the <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#compose(com.vividsolutions.jts.geom.util.AffineTransformation)"><CODE>compose(com.vividsolutions.jts.geom.util.AffineTransformation)</CODE></A> method.
+ The composition of transformations is in general not commutative.
+ transformation matrices as follows:
+ <blockquote><pre>
+ A.compose(B) = T<sub>B</sub> x T<sub>A</sub>
+ </pre></blockquote>
+ This produces a transformation whose effect is that of A followed by B.
+ Composition is computed via multiplication of the
+ The methods <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#reflect(double, double, double, double)"><CODE>reflect(double, double, double, double)</CODE></A>, <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#rotate(double)"><CODE>rotate(double)</CODE></A>, <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#scale(double, double)"><CODE>scale(double, double)</CODE></A>, <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#shear(double, double)"><CODE>shear(double, double)</CODE></A>, and <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#translate(double, double)"><CODE>translate(double, double)</CODE></A>
+ have the effect of composing a transformation of that type with
+ the transformation they are invoked on.
+ <p>
+ Affine transformations may be invertible or non-invertible.
+ If a transformation is invertible, then there exists
+ an inverse transformation which when composed produces
+ the identity transformation.
+ The <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#getInverse()"><CODE>getInverse()</CODE></A> method
+ computes the inverse of a transformation, if one exists.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#AffineTransformation()">AffineTransformation</A></B>()</CODE>
+
+<BR>
+ Constructs a new identity transformation</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#AffineTransformation(com.vividsolutions.jts.geom.util.AffineTransformation)">AffineTransformation</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> trans)</CODE>
+
+<BR>
+ Constructs a transformation which is
+ a copy of the given one.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#AffineTransformation(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">AffineTransformation</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> src0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> src1,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> src2,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> dest0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> dest1,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> dest2)</CODE>
+
+<BR>
+ Constructs a transformation
+ which maps the given source
+ points into the given destination points.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#AffineTransformation(double[])">AffineTransformation</A></B>(double[] matrix)</CODE>
+
+<BR>
+ Constructs a new transformation whose
+ matrix has the specified values.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#AffineTransformation(double, double, double, double, double, double)">AffineTransformation</A></B>(double m00,
+ double m01,
+ double m02,
+ double m10,
+ double m11,
+ double m12)</CODE>
+
+<BR>
+ Constructs a new transformation whose
+ matrix has the specified values.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#clone()">clone</A></B>()</CODE>
+
+<BR>
+ Clones this transformation</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#compose(com.vividsolutions.jts.geom.util.AffineTransformation)">compose</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> trans)</CODE>
+
+<BR>
+ Composes the given <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>AffineTransformation</CODE></A>
+ with this transformation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#composeBefore(com.vividsolutions.jts.geom.util.AffineTransformation)">composeBefore</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> trans)</CODE>
+
+<BR>
+ Composes this transformation
+ with the given <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>AffineTransformation</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object obj)</CODE>
+
+<BR>
+ Tests if an object is an
+ <tt>AffineTransformation</tt>
+ and has the same matrix as
+ this transformation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#filter(com.vividsolutions.jts.geom.CoordinateSequence, int)">filter</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq,
+ int i)</CODE>
+
+<BR>
+ Transforms the i'th coordinate in the input sequence</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#getDeterminant()">getDeterminant</A></B>()</CODE>
+
+<BR>
+ Computes the determinant of the transformation matrix.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#getInverse()">getInverse</A></B>()</CODE>
+
+<BR>
+ Computes the inverse of this transformation, if one
+ exists.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#getMatrixEntries()">getMatrixEntries</A></B>()</CODE>
+
+<BR>
+ Gets an array containing the entries
+ of the transformation matrix.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#isDone()">isDone</A></B>()</CODE>
+
+<BR>
+ Reports that this filter should continue to be executed until
+ all coordinates have been transformed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#isGeometryChanged()">isGeometryChanged</A></B>()</CODE>
+
+<BR>
+ Reports whether the execution of this filter
+ has modified the coordinates of the geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#isIdentity()">isIdentity</A></B>()</CODE>
+
+<BR>
+ Tests if this transformation is the identity transformation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#reflect(double, double)">reflect</A></B>(double x,
+ double y)</CODE>
+
+<BR>
+ Updates the value of this transformation
+ to that of a reflection transformation composed
+ with the current value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#reflect(double, double, double, double)">reflect</A></B>(double x0,
+ double y0,
+ double x1,
+ double y1)</CODE>
+
+<BR>
+ Updates the value of this transformation
+ to that of a reflection transformation composed
+ with the current value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#reflectionInstance(double, double)">reflectionInstance</A></B>(double x,
+ double y)</CODE>
+
+<BR>
+ Creates a transformation for a reflection about the
+ line (0,0) - (x,y).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#reflectionInstance(double, double, double, double)">reflectionInstance</A></B>(double x0,
+ double y0,
+ double x1,
+ double y1)</CODE>
+
+<BR>
+ Creates a transformation for a reflection about the
+ line (x0,y0) - (x1,y1).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#rotate(double)">rotate</A></B>(double theta)</CODE>
+
+<BR>
+ Updates the value of this transformation
+ to that of a rotation transformation composed
+ with the current value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#rotate(double, double)">rotate</A></B>(double sinTheta,
+ double cosTheta)</CODE>
+
+<BR>
+ Updates the value of this transformation
+ to that of a rotation transformation composed
+ with the current value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#rotationInstance(double)">rotationInstance</A></B>(double theta)</CODE>
+
+<BR>
+ Creates a transformation for a rotation
+ about the origin
+ by an angle <i>theta</i>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#rotationInstance(double, double)">rotationInstance</A></B>(double sinTheta,
+ double cosTheta)</CODE>
+
+<BR>
+ Creates a transformation for a rotation
+ by an angle <i>theta</i>,
+ specified by the sine and cosine of the angle.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#scale(double, double)">scale</A></B>(double xScale,
+ double yScale)</CODE>
+
+<BR>
+ Updates the value of this transformation
+ to that of a scale transformation composed
+ with the current value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#scaleInstance(double, double)">scaleInstance</A></B>(double xScale,
+ double yScale)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#setToIdentity()">setToIdentity</A></B>()</CODE>
+
+<BR>
+ Sets this transformation to be the identity transformation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#setToReflection(double, double)">setToReflection</A></B>(double x,
+ double y)</CODE>
+
+<BR>
+ Sets this transformation to be a reflection
+ about the line defined by vector (x,y).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#setToReflection(double, double, double, double)">setToReflection</A></B>(double x0,
+ double y0,
+ double x1,
+ double y1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#setToReflectionBasic(double, double, double, double)">setToReflectionBasic</A></B>(double x0,
+ double y0,
+ double x1,
+ double y1)</CODE>
+
+<BR>
+ Explicitly computes the math for a reflection.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#setToRotation(double, double)">setToRotation</A></B>(double sinTheta,
+ double cosTheta)</CODE>
+
+<BR>
+ Sets this transformation to be a rotation
+ by specifying the sin and cos of the rotation angle directly.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#setToScale(double, double)">setToScale</A></B>(double xScale,
+ double yScale)</CODE>
+
+<BR>
+ Sets this transformation to be a scaling.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#setToShear(double, double)">setToShear</A></B>(double xShear,
+ double yShear)</CODE>
+
+<BR>
+ Sets this transformation to be a shear.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#setToTranslation(double, double)">setToTranslation</A></B>(double dx,
+ double dy)</CODE>
+
+<BR>
+ Sets this transformation to be a translation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#setTransformation(com.vividsolutions.jts.geom.util.AffineTransformation)">setTransformation</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> trans)</CODE>
+
+<BR>
+ Sets this transformation to be a copy of the given one</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#setTransformation(double, double, double, double, double, double)">setTransformation</A></B>(double m00,
+ double m01,
+ double m02,
+ double m10,
+ double m11,
+ double m12)</CODE>
+
+<BR>
+ Sets this transformation's matrix to have the given values.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#shear(double, double)">shear</A></B>(double xShear,
+ double yShear)</CODE>
+
+<BR>
+ Updates the value of this transformation
+ to that of a shear transformation composed
+ with the current value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#shearInstance(double, double)">shearInstance</A></B>(double xShear,
+ double yShear)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ Gets a text representation of this transformation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#transform(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">transform</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> src,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> dest)</CODE>
+
+<BR>
+ Applies this transformation to the <tt>src</tt> coordinate
+ and places the results in the <tt>dest</tt> coordinate
+ (which may be the same as the source).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#transform(com.vividsolutions.jts.geom.CoordinateSequence, int)">transform</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq,
+ int i)</CODE>
+
+<BR>
+ Applies this transformation to the i'th coordinate
+ in the given CoordinateSequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#translate(double, double)">translate</A></B>(double x,
+ double y)</CODE>
+
+<BR>
+ Updates the value of this transformation
+ to that of a translation transformation composed
+ with the current value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#translationInstance(double, double)">translationInstance</A></B>(double x,
+ double y)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="AffineTransformation()"><!-- --></A><H3>
+AffineTransformation</H3>
+<PRE>
+public <B>AffineTransformation</B>()</PRE>
+<DL>
+<DD>Constructs a new identity transformation
+<P>
+</DL>
+<HR>
+
+<A NAME="AffineTransformation(double[])"><!-- --></A><H3>
+AffineTransformation</H3>
+<PRE>
+public <B>AffineTransformation</B>(double[] matrix)</PRE>
+<DL>
+<DD>Constructs a new transformation whose
+ matrix has the specified values.
+<P>
+<DT><B>Parameters:</B><DD><CODE>matrix</CODE> - an array containing the 6 values { m00, m01, m02, m10, m11, m12 }
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.NullPointerException</CODE> - if matrix is null
+<DD><CODE>java.lang.ArrayIndexOutOfBoundsException</CODE> - if matrix is too small</DL>
+<HR>
+
+<A NAME="AffineTransformation(double, double, double, double, double, double)"><!-- --></A><H3>
+AffineTransformation</H3>
+<PRE>
+public <B>AffineTransformation</B>(double m00,
+ double m01,
+ double m02,
+ double m10,
+ double m11,
+ double m12)</PRE>
+<DL>
+<DD>Constructs a new transformation whose
+ matrix has the specified values.
+<P>
+<DT><B>Parameters:</B><DD><CODE>m00</CODE> - the entry for the [0, 0] element in the transformation matrix<DD><CODE>m01</CODE> - the entry for the [0, 1] element in the transformation matrix<DD><CODE>m02</CODE> - the entry for the [0, 2] element in the transformation matrix<DD><CODE>m10</CODE> - the entry for the [1, 0] element in the transformation matrix<DD><CODE>m11</CODE> - the entry for the [1, 1] element in the transformation matrix<DD><CODE>m12</CODE> - the entry for the [1, 2] element in the transformation matrix</DL>
+<HR>
+
+<A NAME="AffineTransformation(com.vividsolutions.jts.geom.util.AffineTransformation)"><!-- --></A><H3>
+AffineTransformation</H3>
+<PRE>
+public <B>AffineTransformation</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> trans)</PRE>
+<DL>
+<DD>Constructs a transformation which is
+ a copy of the given one.
+<P>
+<DT><B>Parameters:</B><DD><CODE>trans</CODE> - the transformation to copy</DL>
+<HR>
+
+<A NAME="AffineTransformation(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+AffineTransformation</H3>
+<PRE>
+public <B>AffineTransformation</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> src0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> src1,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> src2,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> dest0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> dest1,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> dest2)</PRE>
+<DL>
+<DD>Constructs a transformation
+ which maps the given source
+ points into the given destination points.
+<P>
+<DT><B>Parameters:</B><DD><CODE>src0</CODE> - source point 0<DD><CODE>src1</CODE> - source point 1<DD><CODE>src2</CODE> - source point 2<DD><CODE>dest0</CODE> - the mapped point for source point 0<DD><CODE>dest1</CODE> - the mapped point for source point 1<DD><CODE>dest2</CODE> - the mapped point for source point 2</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="reflectionInstance(double, double, double, double)"><!-- --></A><H3>
+reflectionInstance</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>reflectionInstance</B>(double x0,
+ double y0,
+ double x1,
+ double y1)</PRE>
+<DL>
+<DD>Creates a transformation for a reflection about the
+ line (x0,y0) - (x1,y1).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>x0</CODE> - the x-ordinate of a point on the reflection line<DD><CODE>y0</CODE> - the y-ordinate of a point on the reflection line<DD><CODE>x1</CODE> - the x-ordinate of a another point on the reflection line<DD><CODE>y1</CODE> - the y-ordinate of a another point on the reflection line
+<DT><B>Returns:</B><DD>a transformation for the reflection</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reflectionInstance(double, double)"><!-- --></A><H3>
+reflectionInstance</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>reflectionInstance</B>(double x,
+ double y)</PRE>
+<DL>
+<DD>Creates a transformation for a reflection about the
+ line (0,0) - (x,y).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>x</CODE> - the x-ordinate of a point on the reflection line<DD><CODE>y</CODE> - the y-ordinate of a point on the reflection line
+<DT><B>Returns:</B><DD>a transformation for the reflection</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rotationInstance(double)"><!-- --></A><H3>
+rotationInstance</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>rotationInstance</B>(double theta)</PRE>
+<DL>
+<DD>Creates a transformation for a rotation
+ about the origin
+ by an angle <i>theta</i>.
+ Positive angles correspond to a rotation
+ in the counter-clockwise direction.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theta</CODE> - the rotation angle, in radians
+<DT><B>Returns:</B><DD>a transformation for the rotation</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rotationInstance(double, double)"><!-- --></A><H3>
+rotationInstance</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>rotationInstance</B>(double sinTheta,
+ double cosTheta)</PRE>
+<DL>
+<DD>Creates a transformation for a rotation
+ by an angle <i>theta</i>,
+ specified by the sine and cosine of the angle.
+ This allows providing exact values for sin(theta) and cos(theta)
+ for the common case of rotations of multiples of quarter-circles.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>sinTheta</CODE> - the sine of the rotation angle<DD><CODE>cosTheta</CODE> - the cosine of the rotation angle
+<DT><B>Returns:</B><DD>a transformation for the rotation</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="scaleInstance(double, double)"><!-- --></A><H3>
+scaleInstance</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>scaleInstance</B>(double xScale,
+ double yScale)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="shearInstance(double, double)"><!-- --></A><H3>
+shearInstance</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>shearInstance</B>(double xShear,
+ double yShear)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="translationInstance(double, double)"><!-- --></A><H3>
+translationInstance</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>translationInstance</B>(double x,
+ double y)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setToIdentity()"><!-- --></A><H3>
+setToIdentity</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>setToIdentity</B>()</PRE>
+<DL>
+<DD>Sets this transformation to be the identity transformation.
+ The identity transformation has the matrix:
+ <blockquote><pre>
+ | 1 0 0 |
+ | 0 1 0 |
+ | 0 0 1 |
+ </pre></blockquote>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setTransformation(double, double, double, double, double, double)"><!-- --></A><H3>
+setTransformation</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>setTransformation</B>(double m00,
+ double m01,
+ double m02,
+ double m10,
+ double m11,
+ double m12)</PRE>
+<DL>
+<DD>Sets this transformation's matrix to have the given values.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>m00</CODE> - the entry for the [0, 0] element in the transformation matrix<DD><CODE>m01</CODE> - the entry for the [0, 1] element in the transformation matrix<DD><CODE>m02</CODE> - the entry for the [0, 2] element in the transformation matrix<DD><CODE>m10</CODE> - the entry for the [1, 0] element in the transformation matrix<DD><CODE>m11</CODE> - the entry for the [1, 1] element in the transformation matrix<DD><CODE>m12</CODE> - the entry for the [1, 2] element in the transformation matrix
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setTransformation(com.vividsolutions.jts.geom.util.AffineTransformation)"><!-- --></A><H3>
+setTransformation</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>setTransformation</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> trans)</PRE>
+<DL>
+<DD>Sets this transformation to be a copy of the given one
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>trans</CODE> - a transformation to copy
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMatrixEntries()"><!-- --></A><H3>
+getMatrixEntries</H3>
+<PRE>
+public double[] <B>getMatrixEntries</B>()</PRE>
+<DL>
+<DD>Gets an array containing the entries
+ of the transformation matrix.
+ Only the 6 non-trivial entries are returned,
+ in the sequence:
+ <pre>
+ m00, m01, m02, m10, m11, m12
+ </pre>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an array of length 6</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDeterminant()"><!-- --></A><H3>
+getDeterminant</H3>
+<PRE>
+public double <B>getDeterminant</B>()</PRE>
+<DL>
+<DD>Computes the determinant of the transformation matrix.
+ The determinant is computed as:
+ <blockquote><pre>
+ | m00 m01 m02 |
+ | m10 m11 m12 | = m00 * m11 - m01 * m10
+ | 0 0 1 |
+ </pre></blockquote>
+ If the determinant is zero,
+ the transform is singular (not invertible),
+ and operations which attempt to compute
+ an inverse will throw a <tt>NoninvertibleTransformException</tt>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the determinant of the transformation<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#getInverse()"><CODE>getInverse()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInverse()"><!-- --></A><H3>
+getInverse</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>getInverse</B>()
+ throws <A HREF="../../../../../com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html" title="class in com.vividsolutions.jts.geom.util">NoninvertibleTransformationException</A></PRE>
+<DL>
+<DD>Computes the inverse of this transformation, if one
+ exists.
+ The inverse is the transformation which when
+ composed with this one produces the identity
+ transformation.
+ A transformation has an inverse if and only if it
+ is not singular (i.e. its
+ determinant is non-zero).
+ Geometrically, an transformation is non-invertible
+ if it maps the plane to a line or a point.
+ If no inverse exists this method
+ will throw a <tt>NoninvertibleTransformationException</tt>.
+ <p>
+ The matrix of the inverse is equal to the
+ inverse of the matrix for the transformation.
+ It is computed as follows:
+ <blockquote><pre>
+ 1
+ inverse(A) = --- x adjoint(A)
+ det
+
+
+ = 1 | m11 -m01 m01*m12-m02*m11 |
+ --- x | -m10 m00 -m00*m12+m10*m02 |
+ det | 0 0 m00*m11-m10*m01 |
+
+
+
+ = | m11/det -m01/det m01*m12-m02*m11/det |
+ | -m10/det m00/det -m00*m12+m10*m02/det |
+ | 0 0 1 |
+
+ </pre></blockquote>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a new inverse transformation
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html" title="class in com.vividsolutions.jts.geom.util">NoninvertibleTransformationException</A></CODE><DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html#getDeterminant()"><CODE>getDeterminant()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setToReflectionBasic(double, double, double, double)"><!-- --></A><H3>
+setToReflectionBasic</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>setToReflectionBasic</B>(double x0,
+ double y0,
+ double x1,
+ double y1)</PRE>
+<DL>
+<DD>Explicitly computes the math for a reflection. May not work.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>x0</CODE> - <DD><CODE>y0</CODE> - <DD><CODE>x1</CODE> - <DD><CODE>y1</CODE> -
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setToReflection(double, double, double, double)"><!-- --></A><H3>
+setToReflection</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>setToReflection</B>(double x0,
+ double y0,
+ double x1,
+ double y1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setToReflection(double, double)"><!-- --></A><H3>
+setToReflection</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>setToReflection</B>(double x,
+ double y)</PRE>
+<DL>
+<DD>Sets this transformation to be a reflection
+ about the line defined by vector (x,y).
+ The transformation for a reflection
+ is computed by:
+ <blockquote><pre>
+ d = sqrt(x<sup>2</sup> + y<sup>2</sup>)
+ sin = x / d;
+ cos = x / d;
+
+ T<sub>ref</sub> = T<sub>rot(sin, cos)</sub> x T<sub>scale(1, -1)</sub> x T<sub>rot(-sin, cos)</sub
+ </pre></blockquote>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>x</CODE> - the x-component of the reflection line vector<DD><CODE>y</CODE> - the y-component of the reflection line vector
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setToRotation(double, double)"><!-- --></A><H3>
+setToRotation</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>setToRotation</B>(double sinTheta,
+ double cosTheta)</PRE>
+<DL>
+<DD>Sets this transformation to be a rotation
+ by specifying the sin and cos of the rotation angle directly.
+ The transformation matrix for the rotation
+ has the value:
+ <blockquote><pre>
+ | cosTheta -sinTheta 0 |
+ | sinTheta cosTheta 0 |
+ | 0 0 1 |
+ </pre></blockquote>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>sinTheta</CODE> - the sine of the rotation angle<DD><CODE>cosTheta</CODE> - the cosine of the rotation angle
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setToScale(double, double)"><!-- --></A><H3>
+setToScale</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>setToScale</B>(double xScale,
+ double yScale)</PRE>
+<DL>
+<DD>Sets this transformation to be a scaling.
+ The transformation matrix for a scale
+ has the value:
+ <blockquote><pre>
+ | xScale 0 dx |
+ | 1 yScale dy |
+ | 0 0 1 |
+ </pre></blockquote>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>xScale</CODE> - the amount to scale x-ordinates by<DD><CODE>yScale</CODE> - the amount to scale y-ordinates by
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setToShear(double, double)"><!-- --></A><H3>
+setToShear</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>setToShear</B>(double xShear,
+ double yShear)</PRE>
+<DL>
+<DD>Sets this transformation to be a shear.
+ The transformation matrix for a shear
+ has the value:
+ <blockquote><pre>
+ | 1 xShear 0 |
+ | yShear 1 0 |
+ | 0 0 1 |
+ </pre></blockquote>
+ Note that a shear of (1, 1) is <i>not</i>
+ equal to shear(1, 0) composed with shear(0, 1).
+ Instead, shear(1, 1) corresponds to a mapping onto the
+ line x = y.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>xShear</CODE> - the x component to shear by<DD><CODE>yShear</CODE> - the y component to shear by
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setToTranslation(double, double)"><!-- --></A><H3>
+setToTranslation</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>setToTranslation</B>(double dx,
+ double dy)</PRE>
+<DL>
+<DD>Sets this transformation to be a translation.
+ For a translation by the vector (x, y)
+ the transformation matrix has the value:
+ <blockquote><pre>
+ | 1 0 dx |
+ | 1 0 dy |
+ | 0 0 1 |
+ </pre></blockquote>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>dx</CODE> - the x component to translate by<DD><CODE>dy</CODE> - the y component to translate by
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reflect(double, double, double, double)"><!-- --></A><H3>
+reflect</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>reflect</B>(double x0,
+ double y0,
+ double x1,
+ double y1)</PRE>
+<DL>
+<DD>Updates the value of this transformation
+ to that of a reflection transformation composed
+ with the current value.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>x0</CODE> - the x-ordinate of a point on the line to reflect around<DD><CODE>y0</CODE> - the y-ordinate of a point on the line to reflect around<DD><CODE>x1</CODE> - the x-ordinate of a point on the line to reflect around<DD><CODE>y1</CODE> - the y-ordinate of a point on the line to reflect around
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reflect(double, double)"><!-- --></A><H3>
+reflect</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>reflect</B>(double x,
+ double y)</PRE>
+<DL>
+<DD>Updates the value of this transformation
+ to that of a reflection transformation composed
+ with the current value.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>x</CODE> - the x-ordinate of the line to reflect around<DD><CODE>y</CODE> - the y-ordinate of the line to reflect around
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rotate(double)"><!-- --></A><H3>
+rotate</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>rotate</B>(double theta)</PRE>
+<DL>
+<DD>Updates the value of this transformation
+ to that of a rotation transformation composed
+ with the current value.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theta</CODE> - the angle to rotate by
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rotate(double, double)"><!-- --></A><H3>
+rotate</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>rotate</B>(double sinTheta,
+ double cosTheta)</PRE>
+<DL>
+<DD>Updates the value of this transformation
+ to that of a rotation transformation composed
+ with the current value.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>sinTheta</CODE> - the sine of the angle to rotate by<DD><CODE>cosTheta</CODE> - the cosine of the angle to rotate by
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="scale(double, double)"><!-- --></A><H3>
+scale</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>scale</B>(double xScale,
+ double yScale)</PRE>
+<DL>
+<DD>Updates the value of this transformation
+ to that of a scale transformation composed
+ with the current value.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>xScale</CODE> - the value to scale by in the x direction<DD><CODE>yScale</CODE> - the value to scale by in the y direction
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="shear(double, double)"><!-- --></A><H3>
+shear</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>shear</B>(double xShear,
+ double yShear)</PRE>
+<DL>
+<DD>Updates the value of this transformation
+ to that of a shear transformation composed
+ with the current value.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>xShear</CODE> - the value to shear by in the x direction<DD><CODE>yShear</CODE> - the value to shear by in the y direction
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="translate(double, double)"><!-- --></A><H3>
+translate</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>translate</B>(double x,
+ double y)</PRE>
+<DL>
+<DD>Updates the value of this transformation
+ to that of a translation transformation composed
+ with the current value.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>x</CODE> - the value to translate by in the x direction<DD><CODE>y</CODE> - the value to translate by in the y direction
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compose(com.vividsolutions.jts.geom.util.AffineTransformation)"><!-- --></A><H3>
+compose</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>compose</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> trans)</PRE>
+<DL>
+<DD>Composes the given <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>AffineTransformation</CODE></A>
+ with this transformation.
+ This produces a transformation whose effect
+ is equal to applying this transformation
+ followed by the argument transformation.
+ Mathematically,
+ <blockquote><pre>
+ A.compose(B) = T<sub>B</sub> x T<sub>A</sub>
+ </pre></blockquote>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>trans</CODE> - an affine transformation
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="composeBefore(com.vividsolutions.jts.geom.util.AffineTransformation)"><!-- --></A><H3>
+composeBefore</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>composeBefore</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> trans)</PRE>
+<DL>
+<DD>Composes this transformation
+ with the given <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>AffineTransformation</CODE></A>.
+ This produces a transformation whose effect
+ is equal to applying the argument transformation
+ followed by this transformation.
+ Mathematically,
+ <blockquote><pre>
+ A.composeBefore(B) = T<sub>A</sub> x T<sub>B</sub>
+ </pre></blockquote>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>trans</CODE> - an affine transformation
+<DT><B>Returns:</B><DD>this transformation, with an updated matrix</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transform(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+transform</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>transform</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> src,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> dest)</PRE>
+<DL>
+<DD>Applies this transformation to the <tt>src</tt> coordinate
+ and places the results in the <tt>dest</tt> coordinate
+ (which may be the same as the source).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>src</CODE> - the coordinate to transform<DD><CODE>dest</CODE> - the coordinate to accept the results
+<DT><B>Returns:</B><DD>the <tt>dest</tt> coordinate</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transform(com.vividsolutions.jts.geom.CoordinateSequence, int)"><!-- --></A><H3>
+transform</H3>
+<PRE>
+public void <B>transform</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq,
+ int i)</PRE>
+<DL>
+<DD>Applies this transformation to the i'th coordinate
+ in the given CoordinateSequence.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>seq</CODE> - a <code>CoordinateSequence</code><DD><CODE>i</CODE> - the index of the coordinate to transform</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="filter(com.vividsolutions.jts.geom.CoordinateSequence, int)"><!-- --></A><H3>
+filter</H3>
+<PRE>
+public void <B>filter</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq,
+ int i)</PRE>
+<DL>
+<DD>Transforms the i'th coordinate in the input sequence
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html#filter(com.vividsolutions.jts.geom.CoordinateSequence, int)">filter</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>seq</CODE> - a <code>CoordinateSequence</code><DD><CODE>i</CODE> - the index of the coordinate to transform</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isGeometryChanged()"><!-- --></A><H3>
+isGeometryChanged</H3>
+<PRE>
+public boolean <B>isGeometryChanged</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A></CODE></B></DD>
+<DD>Reports whether the execution of this filter
+ has modified the coordinates of the geometry.
+ If so, <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html#geometryChanged()"><CODE>Geometry.geometryChanged()</CODE></A> will be executed.
+ <p>
+ Most filters can simply return a constant value reflecting
+ whether they are able to change the coordinates.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html#isGeometryChanged()">isGeometryChanged</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if this filter has changed the coordinates of the geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isDone()"><!-- --></A><H3>
+isDone</H3>
+<PRE>
+public boolean <B>isDone</B>()</PRE>
+<DL>
+<DD>Reports that this filter should continue to be executed until
+ all coordinates have been transformed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html#isDone()">isDone</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>false</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isIdentity()"><!-- --></A><H3>
+isIdentity</H3>
+<PRE>
+public boolean <B>isIdentity</B>()</PRE>
+<DL>
+<DD>Tests if this transformation is the identity transformation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if this is the identity transformation</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</B>(java.lang.Object obj)</PRE>
+<DL>
+<DD>Tests if an object is an
+ <tt>AffineTransformation</tt>
+ and has the same matrix as
+ this transformation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>obj</CODE> - an object to test
+<DT><B>Returns:</B><DD>true if the given object is equal to this object</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD>Gets a text representation of this transformation.
+ The string is of the form:
+ <pre>
+ AffineTransformation[[m00, m01, m02], [m10, m11, m12]]
+ </pre>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a string representing this transformation</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clone()"><!-- --></A><H3>
+clone</H3>
+<PRE>
+public java.lang.Object <B>clone</B>()</PRE>
+<DL>
+<DD>Clones this transformation
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a copy of this transformation</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AffineTransformation.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,296 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+AffineTransformationBuilder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.util.AffineTransformationBuilder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="AffineTransformationBuilder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AffineTransformationBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.util</FONT>
+<BR>
+Class AffineTransformationBuilder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.util.AffineTransformationBuilder</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>AffineTransformationBuilder</B><DT>extends java.lang.Object</DL>
+
+<P>
+Builds an <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>AffineTransformation</CODE></A> defined by three control points
+ and their images under the transformation.
+ <p>
+ A transformation is well-defined by a set of three control points
+ as long as the points are not collinear
+ (this includes the degenerate situation
+ where two or more points are identical).
+ If the control points are not well-defined, the system of equations
+ defining the transformation matrix entries is not solvable,
+ and no transformation can be determined.
+ If the control point images are collinear or non-unique,
+ a non-invertible transformations will be generated.
+ <p>
+ This technique of recovering a transformation
+ from its effect on known points is used in the Bilinear Interpolated Triangulation
+ algorithm for warping planar surfaces.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html#AffineTransformationBuilder(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">AffineTransformationBuilder</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> src0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> src1,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> src2,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> dest0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> dest1,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> dest2)</CODE>
+
+<BR>
+ Constructs a new builder for
+ the transformation defined by the given
+ set of control point mappings.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html#getTransformation()">getTransformation</A></B>()</CODE>
+
+<BR>
+ Computes the <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>AffineTransformation</CODE></A>
+ determined by the control point mappings,
+ or <code>null</code> if the control points do not determine a unique transformation.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="AffineTransformationBuilder(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+AffineTransformationBuilder</H3>
+<PRE>
+public <B>AffineTransformationBuilder</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> src0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> src1,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> src2,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> dest0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> dest1,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> dest2)</PRE>
+<DL>
+<DD>Constructs a new builder for
+ the transformation defined by the given
+ set of control point mappings.
+<P>
+<DT><B>Parameters:</B><DD><CODE>src0</CODE> - a control point<DD><CODE>src1</CODE> - a control point<DD><CODE>src2</CODE> - a control point<DD><CODE>dest0</CODE> - the image of control point 0 under the required transformation<DD><CODE>dest1</CODE> - the image of control point 1 under the required transformation<DD><CODE>dest2</CODE> - the image of control point 2 under the required transformation</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getTransformation()"><!-- --></A><H3>
+getTransformation</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A> <B>getTransformation</B>()</PRE>
+<DL>
+<DD>Computes the <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>AffineTransformation</CODE></A>
+ determined by the control point mappings,
+ or <code>null</code> if the control points do not determine a unique transformation.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an affine transformation</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AffineTransformationBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,299 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+GeometryEditor.CoordinateOperation
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.util.GeometryEditor.CoordinateOperation class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GeometryEditor.CoordinateOperation";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryEditor.CoordinateOperation.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.util</FONT>
+<BR>
+Class GeometryEditor.CoordinateOperation</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.util.GeometryEditor.CoordinateOperation</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util">GeometryEditor.GeometryEditorOperation</A></DD>
+</DL>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public abstract static class <B>GeometryEditor.CoordinateOperation</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util">GeometryEditor.GeometryEditorOperation</A></DL>
+
+<P>
+A <CODE>GeometryEditorOperation</CODE> which modifies the coordinate list of a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+ Operates on Geometry subclasses which contains a single coordinate list.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html#GeometryEditor.CoordinateOperation()">GeometryEditor.CoordinateOperation</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html#edit(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Geometry)">edit</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</CODE>
+
+<BR>
+ Edits the array of <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s from a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html#edit(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.GeometryFactory)">edit</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</CODE>
+
+<BR>
+ Edits a Geometry by returning a new Geometry with a modification.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GeometryEditor.CoordinateOperation()"><!-- --></A><H3>
+GeometryEditor.CoordinateOperation</H3>
+<PRE>
+public <B>GeometryEditor.CoordinateOperation</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="edit(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+edit</H3>
+<PRE>
+public final <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>edit</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util">GeometryEditor.GeometryEditorOperation</A></CODE></B></DD>
+<DD>Edits a Geometry by returning a new Geometry with a modification.
+ The returned Geometry might be the same as the Geometry passed in.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html#edit(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.GeometryFactory)">edit</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util">GeometryEditor.GeometryEditorOperation</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geometry</CODE> - the Geometry to modify<DD><CODE>factory</CODE> - the factory with which to construct the modified Geometry
+ (may be different to the factory of the input geometry)
+<DT><B>Returns:</B><DD>a new Geometry which is a modification of the input Geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="edit(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+edit</H3>
+<PRE>
+public abstract <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>edit</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coordinates,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</PRE>
+<DL>
+<DD>Edits the array of <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s from a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordinates</CODE> - the coordinate array to operate on<DD><CODE>geometry</CODE> - the geometry containing the coordinate list
+<DT><B>Returns:</B><DD>an edited coordinate array (which may be the same as the input)</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryEditor.CoordinateOperation.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+GeometryEditor.GeometryEditorOperation
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.util.GeometryEditor.GeometryEditorOperation interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GeometryEditor.GeometryEditorOperation";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryEditor.GeometryEditorOperation.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.util</FONT>
+<BR>
+Interface GeometryEditor.GeometryEditorOperation</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor.CoordinateOperation</A></DD>
+</DL>
+<DL>
+<DT><B>Enclosing interface:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public static interface <B>GeometryEditor.GeometryEditorOperation</B></DL>
+
+<P>
+A interface which specifies an edit operation for Geometries.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html#edit(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.GeometryFactory)">edit</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</CODE>
+
+<BR>
+ Edits a Geometry by returning a new Geometry with a modification.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="edit(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+edit</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>edit</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</PRE>
+<DL>
+<DD>Edits a Geometry by returning a new Geometry with a modification.
+ The returned Geometry might be the same as the Geometry passed in.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geometry</CODE> - the Geometry to modify<DD><CODE>factory</CODE> - the factory with which to construct the modified Geometry
+ (may be different to the factory of the input geometry)
+<DT><B>Returns:</B><DD>a new Geometry which is a modification of the input Geometry</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryEditor.GeometryEditorOperation.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryEditor.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryEditor.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryEditor.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,333 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+GeometryEditor
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.util.GeometryEditor class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GeometryEditor";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryEditor.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.util</FONT>
+<BR>
+Class GeometryEditor</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.util.GeometryEditor</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>GeometryEditor</B><DT>extends java.lang.Object</DL>
+
+<P>
+Supports creating a new <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> which is a modification of an existing one.
+ Geometry objects are intended to be treated as immutable.
+ This class allows you to "modify" a Geometry
+ by traversing it and creating a new Geometry with the same overall structure but
+ possibly modified components.
+ The following kinds of modifications can be made:
+ <ul>
+ <li>the values of the coordinates may be changed.
+ Changing coordinate values may make the result Geometry invalid;
+ this is not checked by the GeometryEditor
+ <li>the coordinate lists may be changed
+ (e.g. by adding or deleting coordinates).
+ The modifed coordinate lists must be consistent with their original parent component
+ (e.g. a LinearRing must always have at least 4 coordinates, and the first and last
+ coordinate must be equal)
+ <li>components of the original geometry may be deleted
+ (e.g. holes may be removed from a Polygon, or LineStrings removed from a MultiLineString).
+ Deletions will be propagated up the component tree appropriately.
+ </ul>
+ Note that all changes must be consistent with the original Geometry's structure
+ (e.g. a Polygon cannot be collapsed into a LineString).
+ <p>
+ The resulting Geometry is not checked for validity.
+ If validity needs to be enforced, the new Geometry's #isValid should be checked.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html#isValid()"><CODE>Geometry.isValid()</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor.CoordinateOperation</A></B></CODE>
+
+<BR>
+ A <CODE>GeometryEditorOperation</CODE> which modifies the coordinate list of a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static interface</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util">GeometryEditor.GeometryEditorOperation</A></B></CODE>
+
+<BR>
+ A interface which specifies an edit operation for Geometries.</TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.html#GeometryEditor()">GeometryEditor</A></B>()</CODE>
+
+<BR>
+ Creates a new GeometryEditor object which will create
+ an edited <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> with the same <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A> as the input Geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.html#GeometryEditor(com.vividsolutions.jts.geom.GeometryFactory)">GeometryEditor</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</CODE>
+
+<BR>
+ Creates a new GeometryEditor object which will create
+ the edited Geometry with the given <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A></TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.html#edit(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.util.GeometryEditor.GeometryEditorOperation)">edit</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util">GeometryEditor.GeometryEditorOperation</A> operation)</CODE>
+
+<BR>
+ Edit the input <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> with the given edit operation.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GeometryEditor()"><!-- --></A><H3>
+GeometryEditor</H3>
+<PRE>
+public <B>GeometryEditor</B>()</PRE>
+<DL>
+<DD>Creates a new GeometryEditor object which will create
+ an edited <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> with the same <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A> as the input Geometry.
+<P>
+</DL>
+<HR>
+
+<A NAME="GeometryEditor(com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+GeometryEditor</H3>
+<PRE>
+public <B>GeometryEditor</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</PRE>
+<DL>
+<DD>Creates a new GeometryEditor object which will create
+ the edited Geometry with the given <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>
+<P>
+<DT><B>Parameters:</B><DD><CODE>factory</CODE> - the GeometryFactory to create the edited Geometry with</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="edit(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.util.GeometryEditor.GeometryEditorOperation)"><!-- --></A><H3>
+edit</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>edit</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util">GeometryEditor.GeometryEditorOperation</A> operation)</PRE>
+<DL>
+<DD>Edit the input <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> with the given edit operation.
+ Clients will create subclasses of <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util"><CODE>GeometryEditor.GeometryEditorOperation</CODE></A> or
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>GeometryEditor.CoordinateOperation</CODE></A> to perform required modifications.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geometry</CODE> - the Geometry to edit<DD><CODE>operation</CODE> - the edit operation to carry out
+<DT><B>Returns:</B><DD>a new <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> which is the result of the editing</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryEditor.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryTransformer.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryTransformer.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/GeometryTransformer.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,585 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+GeometryTransformer
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.util.GeometryTransformer class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GeometryTransformer";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryTransformer.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.util</FONT>
+<BR>
+Class GeometryTransformer</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.util.GeometryTransformer</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>GeometryTransformer</B><DT>extends java.lang.Object</DL>
+
+<P>
+A framework for processes which transform an input <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> into
+ an output <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>, possibly changing its structure and type(s).
+ This class is a framework for implementing subclasses
+ which perform transformations on
+ various different Geometry subclasses.
+ It provides an easy way of applying specific transformations
+ to given geometry types, while allowing unhandled types to be simply copied.
+ Also, the framework ensures that if subcomponents change type
+ the parent geometries types change appropriately to maintain valid structure.
+ Subclasses will override whichever <code>transformX</code> methods
+ they need to to handle particular Geometry types.
+ <p>
+ A typically usage would be a transformation that may transform Polygons into
+ Polygons, LineStrings
+ or Points. This class would likely need to override the <CODE>transformMultiPolygon</CODE>
+ method to ensure that if input Polygons change type the result is a GeometryCollection,
+ not a MultiPolygon
+ <p>
+ The default behaviour of this class is to simply recursively transform
+ each Geometry component into an identical object by copying.
+ <p>
+ All <code>transformX</code> methods may return <code>null</code>,
+ to avoid creating empty or invalid geometry objects. This will be handled correctly
+ by the transformer. <code>transformX</code> methods should always return valid
+ geometry - if they cannot do this they should return <code>null</code>
+ (for instance, it may not be possible for a transformLineString implementation
+ to return at least two points - in this case, it should return <code>null</code>).
+ The <CODE>transform</CODE> method itself will always
+ return a non-null Geometry object (but this may be empty).
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util"><CODE>GeometryEditor</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html#factory">factory</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html#GeometryTransformer()">GeometryTransformer</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html#copy(com.vividsolutions.jts.geom.CoordinateSequence)">copy</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq)</CODE>
+
+<BR>
+ Convenience method which provides statndard way of copying <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html#createCoordinateSequence(com.vividsolutions.jts.geom.Coordinate[])">createCoordinateSequence</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coords)</CODE>
+
+<BR>
+ Convenience method which provides standard way of
+ creating a <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html#getInputGeometry()">getInputGeometry</A></B>()</CODE>
+
+<BR>
+ Utility function to make input geometry available</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html#transform(com.vividsolutions.jts.geom.Geometry)">transform</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> inputGeom)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformCoordinates(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.Geometry)">transformCoordinates</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coords,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</CODE>
+
+<BR>
+ Transforms a <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformGeometryCollection(com.vividsolutions.jts.geom.GeometryCollection, com.vividsolutions.jts.geom.Geometry)">transformGeometryCollection</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformLinearRing(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.Geometry)">transformLinearRing</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformLineString(com.vividsolutions.jts.geom.LineString, com.vividsolutions.jts.geom.Geometry)">transformLineString</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</CODE>
+
+<BR>
+ Transforms a <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformMultiLineString(com.vividsolutions.jts.geom.MultiLineString, com.vividsolutions.jts.geom.Geometry)">transformMultiLineString</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformMultiPoint(com.vividsolutions.jts.geom.MultiPoint, com.vividsolutions.jts.geom.Geometry)">transformMultiPoint</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformMultiPolygon(com.vividsolutions.jts.geom.MultiPolygon, com.vividsolutions.jts.geom.Geometry)">transformMultiPolygon</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformPoint(com.vividsolutions.jts.geom.Point, com.vividsolutions.jts.geom.Geometry)">transformPoint</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformPolygon(com.vividsolutions.jts.geom.Polygon, com.vividsolutions.jts.geom.Geometry)">transformPolygon</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="factory"><!-- --></A><H3>
+factory</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> <B>factory</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GeometryTransformer()"><!-- --></A><H3>
+GeometryTransformer</H3>
+<PRE>
+public <B>GeometryTransformer</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getInputGeometry()"><!-- --></A><H3>
+getInputGeometry</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getInputGeometry</B>()</PRE>
+<DL>
+<DD>Utility function to make input geometry available
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the input geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transform(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+transform</H3>
+<PRE>
+public final <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>transform</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> inputGeom)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createCoordinateSequence(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+createCoordinateSequence</H3>
+<PRE>
+protected final <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>createCoordinateSequence</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coords)</PRE>
+<DL>
+<DD>Convenience method which provides standard way of
+ creating a <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coords</CODE> - the coordinate array to copy
+<DT><B>Returns:</B><DD>a coordinate sequence for the array</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="copy(com.vividsolutions.jts.geom.CoordinateSequence)"><!-- --></A><H3>
+copy</H3>
+<PRE>
+protected final <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>copy</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq)</PRE>
+<DL>
+<DD>Convenience method which provides statndard way of copying <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>seq</CODE> - the sequence to copy
+<DT><B>Returns:</B><DD>a deep copy of the sequence</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transformCoordinates(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+transformCoordinates</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>transformCoordinates</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> coords,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</PRE>
+<DL>
+<DD>Transforms a <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.
+ This method should always return a valid coordinate list for
+ the desired result type. (E.g. a coordinate list for a LineString
+ must have 0 or at least 2 points).
+ If this is not possible, return an empty sequence -
+ this will be pruned out.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coords</CODE> - the coordinates to transform<DD><CODE>parent</CODE> - the parent geometry
+<DT><B>Returns:</B><DD>the transformed coordinates</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transformPoint(com.vividsolutions.jts.geom.Point, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+transformPoint</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>transformPoint</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transformMultiPoint(com.vividsolutions.jts.geom.MultiPoint, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+transformMultiPoint</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>transformMultiPoint</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transformLinearRing(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+transformLinearRing</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>transformLinearRing</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transformLineString(com.vividsolutions.jts.geom.LineString, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+transformLineString</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>transformLineString</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</PRE>
+<DL>
+<DD>Transforms a <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> geometry.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - <DD><CODE>parent</CODE> -
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transformMultiLineString(com.vividsolutions.jts.geom.MultiLineString, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+transformMultiLineString</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>transformMultiLineString</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transformPolygon(com.vividsolutions.jts.geom.Polygon, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+transformPolygon</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>transformPolygon</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transformMultiPolygon(com.vividsolutions.jts.geom.MultiPolygon, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+transformMultiPolygon</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>transformMultiPolygon</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transformGeometryCollection(com.vividsolutions.jts.geom.GeometryCollection, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+transformGeometryCollection</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>transformGeometryCollection</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A> geom,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryTransformer.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/LinearComponentExtracter.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/LinearComponentExtracter.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/LinearComponentExtracter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,297 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+LinearComponentExtracter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.util.LinearComponentExtracter class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LinearComponentExtracter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/Matrix.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LinearComponentExtracter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.util</FONT>
+<BR>
+Class LinearComponentExtracter</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.util.LinearComponentExtracter</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>LinearComponentExtracter</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A></DL>
+
+<P>
+Extracts all the 1-dimensional (<A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>) components from a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/LinearComponentExtracter.html#LinearComponentExtracter(java.util.List)">LinearComponentExtracter</A></B>(java.util.List lines)</CODE>
+
+<BR>
+ Constructs a LineExtracterFilter with a list in which to store LineStrings found.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/LinearComponentExtracter.html#filter(com.vividsolutions.jts.geom.Geometry)">filter</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Performs an operation with or on <code>geom</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/LinearComponentExtracter.html#getLines(com.vividsolutions.jts.geom.Geometry)">getLines</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Extracts the linear components from a single geometry.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LinearComponentExtracter(java.util.List)"><!-- --></A><H3>
+LinearComponentExtracter</H3>
+<PRE>
+public <B>LinearComponentExtracter</B>(java.util.List lines)</PRE>
+<DL>
+<DD>Constructs a LineExtracterFilter with a list in which to store LineStrings found.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getLines(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+getLines</H3>
+<PRE>
+public static java.util.List <B>getLines</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Extracts the linear components from a single geometry.
+ If more than one geometry is to be processed, it is more
+ efficient to create a single <CODE>LineExtracterFilter</CODE> instance
+ and pass it to multiple geometries.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - the geometry from which to extract linear components
+<DT><B>Returns:</B><DD>the list of linear components</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="filter(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+filter</H3>
+<PRE>
+public void <B>filter</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A></CODE></B></DD>
+<DD>Performs an operation with or on <code>geom</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html#filter(com.vividsolutions.jts.geom.Geometry)">filter</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - a <code>Geometry</code> to which the filter is applied.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/Matrix.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LinearComponentExtracter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/Matrix.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/Matrix.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/Matrix.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,268 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Matrix
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.util.Matrix class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Matrix";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/PointExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Matrix.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.util</FONT>
+<BR>
+Class Matrix</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.util.Matrix</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Matrix</B><DT>extends java.lang.Object</DL>
+
+<P>
+Implements some 2D matrix operations
+ (in particular, solving systems of linear equations).
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/Matrix.html#Matrix()">Matrix</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/Matrix.html#solve(double[][], double[])">solve</A></B>(double[][] a,
+ double[] b)</CODE>
+
+<BR>
+ Solves a system of equations using Gaussian Elimination.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Matrix()"><!-- --></A><H3>
+Matrix</H3>
+<PRE>
+public <B>Matrix</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="solve(double[][], double[])"><!-- --></A><H3>
+solve</H3>
+<PRE>
+public static double[] <B>solve</B>(double[][] a,
+ double[] b)</PRE>
+<DL>
+<DD>Solves a system of equations using Gaussian Elimination.
+ In order to avoid overhead the algorithm runs in-place
+ on A - if A should not be modified the client must supply a copy.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>b</CODE> - a vector of length n
+<DT><B>Returns:</B><DD>a vector containing the solution (if any)
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if the matrix is the wrong size</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/PointExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Matrix.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,255 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+NoninvertibleTransformationException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.util.NoninvertibleTransformationException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="NoninvertibleTransformationException";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NoninvertibleTransformationException.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.util</FONT>
+<BR>
+Class NoninvertibleTransformationException</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by">java.lang.Throwable
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by">java.lang.Exception
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.util.NoninvertibleTransformationException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>NoninvertibleTransformationException</B><DT>extends java.lang.Exception</DL>
+
+<P>
+Indicates that an <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>AffineTransformation</CODE></A>
+ is non-invertible.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#com.vividsolutions.jts.geom.util.NoninvertibleTransformationException">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html#NoninvertibleTransformationException()">NoninvertibleTransformationException</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html#NoninvertibleTransformationException(java.lang.String)">NoninvertibleTransformationException</A></B>(java.lang.String msg)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Throwable</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="NoninvertibleTransformationException()"><!-- --></A><H3>
+NoninvertibleTransformationException</H3>
+<PRE>
+public <B>NoninvertibleTransformationException</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="NoninvertibleTransformationException(java.lang.String)"><!-- --></A><H3>
+NoninvertibleTransformationException</H3>
+<PRE>
+public <B>NoninvertibleTransformationException</B>(java.lang.String msg)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NoninvertibleTransformationException.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/PointExtracter.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/PointExtracter.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/PointExtracter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,296 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+PointExtracter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.util.PointExtracter class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="PointExtracter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/Matrix.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PointExtracter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.util</FONT>
+<BR>
+Class PointExtracter</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.util.PointExtracter</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>PointExtracter</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></DL>
+
+<P>
+Extracts all the 0-dimensional (<A HREF="../../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><CODE>Point</CODE></A>) components from a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/PointExtracter.html#PointExtracter(java.util.List)">PointExtracter</A></B>(java.util.List pts)</CODE>
+
+<BR>
+ Constructs a PointExtracterFilter with a list in which to store Points found.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/PointExtracter.html#filter(com.vividsolutions.jts.geom.Geometry)">filter</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Performs an operation with or on <code>geom</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/PointExtracter.html#getPoints(com.vividsolutions.jts.geom.Geometry)">getPoints</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Returns the Point components from a single geometry.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="PointExtracter(java.util.List)"><!-- --></A><H3>
+PointExtracter</H3>
+<PRE>
+public <B>PointExtracter</B>(java.util.List pts)</PRE>
+<DL>
+<DD>Constructs a PointExtracterFilter with a list in which to store Points found.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getPoints(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+getPoints</H3>
+<PRE>
+public static java.util.List <B>getPoints</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Returns the Point components from a single geometry.
+ If more than one geometry is to be processed, it is more
+ efficient to create a single <CODE>PointExtracterFilter</CODE> instance
+ and pass it to multiple geometries.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="filter(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+filter</H3>
+<PRE>
+public void <B>filter</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></CODE></B></DD>
+<DD>Performs an operation with or on <code>geom</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html#filter(com.vividsolutions.jts.geom.Geometry)">filter</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - a <code>Geometry</code> to which the filter is applied.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/Matrix.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PointExtracter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/PolygonExtracter.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/PolygonExtracter.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/PolygonExtracter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,296 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+PolygonExtracter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.util.PolygonExtracter class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="PolygonExtracter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/PointExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PolygonExtracter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.util</FONT>
+<BR>
+Class PolygonExtracter</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.util.PolygonExtracter</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>PolygonExtracter</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></DL>
+
+<P>
+Extracts all the 2-dimensional (<A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A>) components from a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/PolygonExtracter.html#PolygonExtracter(java.util.List)">PolygonExtracter</A></B>(java.util.List comps)</CODE>
+
+<BR>
+ Constructs a PolygonExtracterFilter with a list in which to store Polygons found.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/PolygonExtracter.html#filter(com.vividsolutions.jts.geom.Geometry)">filter</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Performs an operation with or on <code>geom</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/PolygonExtracter.html#getPolygons(com.vividsolutions.jts.geom.Geometry)">getPolygons</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Returns the Polygon components from a single geometry.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="PolygonExtracter(java.util.List)"><!-- --></A><H3>
+PolygonExtracter</H3>
+<PRE>
+public <B>PolygonExtracter</B>(java.util.List comps)</PRE>
+<DL>
+<DD>Constructs a PolygonExtracterFilter with a list in which to store Polygons found.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getPolygons(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+getPolygons</H3>
+<PRE>
+public static java.util.List <B>getPolygons</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Returns the Polygon components from a single geometry.
+ If more than one geometry is to be processed, it is more
+ efficient to create a single <CODE>PolygonExtracterFilter</CODE> instance
+ and pass it to multiple geometries.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="filter(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+filter</H3>
+<PRE>
+public void <B>filter</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></CODE></B></DD>
+<DD>Performs an operation with or on <code>geom</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html#filter(com.vividsolutions.jts.geom.Geometry)">filter</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - a <code>Geometry</code> to which the filter is applied.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/PointExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html" title="class in com.vividsolutions.jts.geom.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PolygonExtracter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,297 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+ShortCircuitedGeometryVisitor
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.util.ShortCircuitedGeometryVisitor class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ShortCircuitedGeometryVisitor";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ShortCircuitedGeometryVisitor.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geom.util</FONT>
+<BR>
+Class ShortCircuitedGeometryVisitor</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geom.util.ShortCircuitedGeometryVisitor</B>
+</PRE>
+<HR>
+<DL>
+<DT>public abstract class <B>ShortCircuitedGeometryVisitor</B><DT>extends java.lang.Object</DL>
+
+<P>
+A visitor to <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> elements which can
+ be short-circuited by a given condition
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html#ShortCircuitedGeometryVisitor()">ShortCircuitedGeometryVisitor</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html#applyTo(com.vividsolutions.jts.geom.Geometry)">applyTo</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected abstract boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html#isDone()">isDone</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected abstract void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html#visit(com.vividsolutions.jts.geom.Geometry)">visit</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> element)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ShortCircuitedGeometryVisitor()"><!-- --></A><H3>
+ShortCircuitedGeometryVisitor</H3>
+<PRE>
+public <B>ShortCircuitedGeometryVisitor</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="applyTo(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+applyTo</H3>
+<PRE>
+public void <B>applyTo</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="visit(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+visit</H3>
+<PRE>
+protected abstract void <B>visit</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> element)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isDone()"><!-- --></A><H3>
+isDone</H3>
+<PRE>
+protected abstract boolean <B>isDone</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/util/PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ShortCircuitedGeometryVisitor.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.geom.util
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.util package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/geom/util/package-summary.html" target="classFrame">com.vividsolutions.jts.geom.util</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util" target="classFrame"><I>GeometryEditor.GeometryEditorOperation</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">AffineTransformation</A>
+<BR>
+<A HREF="AffineTransformationBuilder.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">AffineTransformationBuilder</A>
+<BR>
+<A HREF="GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">GeometryEditor</A>
+<BR>
+<A HREF="GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">GeometryEditor.CoordinateOperation</A>
+<BR>
+<A HREF="GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">GeometryTransformer</A>
+<BR>
+<A HREF="LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">LinearComponentExtracter</A>
+<BR>
+<A HREF="Matrix.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">Matrix</A>
+<BR>
+<A HREF="PointExtracter.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">PointExtracter</A>
+<BR>
+<A HREF="PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">PolygonExtracter</A>
+<BR>
+<A HREF="ShortCircuitedGeometryVisitor.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">ShortCircuitedGeometryVisitor</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Exceptions</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="NoninvertibleTransformationException.html" title="class in com.vividsolutions.jts.geom.util" target="classFrame">NoninvertibleTransformationException</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,230 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.geom.util
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geom.util package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.geom.util";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.geom.util
+</H2>
+Provides classes that parse and modify Geometry objects.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util">GeometryEditor.GeometryEditorOperation</A></B></TD>
+<TD>A interface which specifies an edit operation for Geometries.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A></B></TD>
+<TD>Represents a affine transformation on the 2D Cartesian plane.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformationBuilder</A></B></TD>
+<TD>Builds an <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>AffineTransformation</CODE></A> defined by three control points
+ and their images under the transformation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor</A></B></TD>
+<TD>Supports creating a new <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> which is a modification of an existing one.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor.CoordinateOperation</A></B></TD>
+<TD>A <CODE>GeometryEditorOperation</CODE> which modifies the coordinate list of a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A></B></TD>
+<TD>A framework for processes which transform an input <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> into
+ an output <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>, possibly changing its structure and type(s).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util">LinearComponentExtracter</A></B></TD>
+<TD>Extracts all the 1-dimensional (<A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>) components from a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/Matrix.html" title="class in com.vividsolutions.jts.geom.util">Matrix</A></B></TD>
+<TD>Implements some 2D matrix operations
+ (in particular, solving systems of linear equations).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/PointExtracter.html" title="class in com.vividsolutions.jts.geom.util">PointExtracter</A></B></TD>
+<TD>Extracts all the 0-dimensional (<A HREF="../../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><CODE>Point</CODE></A>) components from a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util">PolygonExtracter</A></B></TD>
+<TD>Extracts all the 2-dimensional (<A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A>) components from a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html" title="class in com.vividsolutions.jts.geom.util">ShortCircuitedGeometryVisitor</A></B></TD>
+<TD>A visitor to <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> elements which can
+ be short-circuited by a given condition</TD>
+</TR>
+</TABLE>
+
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Exception Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html" title="class in com.vividsolutions.jts.geom.util">NoninvertibleTransformationException</A></B></TD>
+<TD>Indicates that an <A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>AffineTransformation</CODE></A>
+ is non-invertible.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.geom.util Description
+</H2>
+
+<P>
+Provides classes that parse and modify Geometry objects.
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geom/util/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.geom.util Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.geom.util Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.geom.util
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><B>AffineTransformation</B></A> (implements java.lang.Cloneable, com.vividsolutions.jts.geom.<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="../../../../../com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html" title="class in com.vividsolutions.jts.geom.util"><B>AffineTransformationBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util"><B>GeometryEditor</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util"><B>GeometryEditor.CoordinateOperation</B></A> (implements com.vividsolutions.jts.geom.util.<A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util">GeometryEditor.GeometryEditorOperation</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util"><B>GeometryTransformer</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="../../../../../com/vividsolutions/jts/geom/util/LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>LinearComponentExtracter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="../../../../../com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="../../../../../com/vividsolutions/jts/geom/util/Matrix.html" title="class in com.vividsolutions.jts.geom.util"><B>Matrix</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="../../../../../com/vividsolutions/jts/geom/util/PointExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>PointExtracter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="../../../../../com/vividsolutions/jts/geom/util/PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>PolygonExtracter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="../../../../../com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html" title="class in com.vividsolutions.jts.geom.util"><B>ShortCircuitedGeometryVisitor</B></A><LI TYPE="circle">class java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">class java.lang.Exception<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="../../../../../com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html" title="class in com.vividsolutions.jts.geom.util"><B>NoninvertibleTransformationException</B></A></UL>
+</UL>
+</UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">interface com.vividsolutions.jts.geom.util.<A HREF="../../../../../com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util"><B>GeometryEditor.GeometryEditorOperation</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geom/impl/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Depth.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Depth.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Depth.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,491 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Depth
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.Depth class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Depth";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Depth.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class Depth</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.Depth</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Depth</B><DT>extends java.lang.Object</DL>
+
+<P>
+A Depth object records the topological depth of the sides
+ of an Edge for up to two Geometries.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html#Depth()">Depth</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html#add(int, int, int)">add</A></B>(int geomIndex,
+ int posIndex,
+ int location)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html#add(com.vividsolutions.jts.geomgraph.Label)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> lbl)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html#depthAtLocation(int)">depthAtLocation</A></B>(int location)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html#getDelta(int)">getDelta</A></B>(int geomIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html#getDepth(int, int)">getDepth</A></B>(int geomIndex,
+ int posIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html#getLocation(int, int)">getLocation</A></B>(int geomIndex,
+ int posIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html#isNull()">isNull</A></B>()</CODE>
+
+<BR>
+ A Depth object is null (has never been initialized) if all depths are null.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html#isNull(int)">isNull</A></B>(int geomIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html#isNull(int, int)">isNull</A></B>(int geomIndex,
+ int posIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html#normalize()">normalize</A></B>()</CODE>
+
+<BR>
+ Normalize the depths for each geometry, if they are non-null.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html#setDepth(int, int, int)">setDepth</A></B>(int geomIndex,
+ int posIndex,
+ int depthValue)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Depth()"><!-- --></A><H3>
+Depth</H3>
+<PRE>
+public <B>Depth</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="depthAtLocation(int)"><!-- --></A><H3>
+depthAtLocation</H3>
+<PRE>
+public static int <B>depthAtLocation</B>(int location)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDepth(int, int)"><!-- --></A><H3>
+getDepth</H3>
+<PRE>
+public int <B>getDepth</B>(int geomIndex,
+ int posIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDepth(int, int, int)"><!-- --></A><H3>
+setDepth</H3>
+<PRE>
+public void <B>setDepth</B>(int geomIndex,
+ int posIndex,
+ int depthValue)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLocation(int, int)"><!-- --></A><H3>
+getLocation</H3>
+<PRE>
+public int <B>getLocation</B>(int geomIndex,
+ int posIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(int, int, int)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(int geomIndex,
+ int posIndex,
+ int location)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isNull()"><!-- --></A><H3>
+isNull</H3>
+<PRE>
+public boolean <B>isNull</B>()</PRE>
+<DL>
+<DD>A Depth object is null (has never been initialized) if all depths are null.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isNull(int)"><!-- --></A><H3>
+isNull</H3>
+<PRE>
+public boolean <B>isNull</B>(int geomIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isNull(int, int)"><!-- --></A><H3>
+isNull</H3>
+<PRE>
+public boolean <B>isNull</B>(int geomIndex,
+ int posIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geomgraph.Label)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> lbl)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDelta(int)"><!-- --></A><H3>
+getDelta</H3>
+<PRE>
+public int <B>getDelta</B>(int geomIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="normalize()"><!-- --></A><H3>
+normalize</H3>
+<PRE>
+public void <B>normalize</B>()</PRE>
+<DL>
+<DD>Normalize the depths for each geometry, if they are non-null.
+ A normalized depth
+ has depth values in the set { 0, 1 }.
+ Normalizing the depths
+ involves reducing the depths by the same amount so that at least
+ one of them is 0. If the remaining value is > 0, it is set to 1.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Depth.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/DirectedEdge.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/DirectedEdge.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/DirectedEdge.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,831 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+DirectedEdge
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.DirectedEdge class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="DirectedEdge";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DirectedEdge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class DirectedEdge</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">com.vividsolutions.jts.geomgraph.EdgeEnd</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.DirectedEdge</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>DirectedEdge</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A></DL>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#isForward">isForward</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeEnd"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#edge">edge</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#label">label</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#DirectedEdge(com.vividsolutions.jts.geomgraph.Edge, boolean)">DirectedEdge</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge,
+ boolean isForward)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#depthFactor(int, int)">depthFactor</A></B>(int currLocation,
+ int nextLocation)</CODE>
+
+<BR>
+ Computes the factor for the change in depth when moving from one location to another.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#getDepth(int)">getDepth</A></B>(int position)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#getDepthDelta()">getDepthDelta</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#getEdge()">getEdge</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#getEdgeRing()">getEdgeRing</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#getMinEdgeRing()">getMinEdgeRing</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#getNext()">getNext</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#getNextMin()">getNextMin</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#getSym()">getSym</A></B>()</CODE>
+
+<BR>
+ Each Edge gives rise to a pair of symmetric DirectedEdges, in opposite
+ directions.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#isForward()">isForward</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#isInResult()">isInResult</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#isInteriorAreaEdge()">isInteriorAreaEdge</A></B>()</CODE>
+
+<BR>
+ This is an interior Area edge if
+
+ its label is an Area label for both Geometries
+ and for each Geometry both sides are in the interior.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#isLineEdge()">isLineEdge</A></B>()</CODE>
+
+<BR>
+ This edge is a line edge if
+
+ at least one of the labels is a line label
+ any labels which are not line labels have all Locations = EXTERIOR
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#isVisited()">isVisited</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#print(java.io.PrintStream)">print</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#printEdge(java.io.PrintStream)">printEdge</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#setDepth(int, int)">setDepth</A></B>(int position,
+ int depthVal)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#setEdgeDepths(int, int)">setEdgeDepths</A></B>(int position,
+ int depth)</CODE>
+
+<BR>
+ Set both edge depths.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#setEdgeRing(com.vividsolutions.jts.geomgraph.EdgeRing)">setEdgeRing</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> edgeRing)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#setInResult(boolean)">setInResult</A></B>(boolean isInResult)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#setMinEdgeRing(com.vividsolutions.jts.geomgraph.EdgeRing)">setMinEdgeRing</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> minEdgeRing)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#setNext(com.vividsolutions.jts.geomgraph.DirectedEdge)">setNext</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> next)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#setNextMin(com.vividsolutions.jts.geomgraph.DirectedEdge)">setNextMin</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> nextMin)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#setSym(com.vividsolutions.jts.geomgraph.DirectedEdge)">setSym</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#setVisited(boolean)">setVisited</A></B>(boolean isVisited)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html#setVisitedEdge(boolean)">setVisitedEdge</A></B>(boolean isVisited)</CODE>
+
+<BR>
+ setVisitedEdge marks both DirectedEdges attached to a given Edge.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeEnd"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#compareDirection(com.vividsolutions.jts.geomgraph.EdgeEnd)">compareDirection</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#compareTo(java.lang.Object)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#computeLabel(com.vividsolutions.jts.algorithm.BoundaryNodeRule)">computeLabel</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getCoordinate()">getCoordinate</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getDirectedCoordinate()">getDirectedCoordinate</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getDx()">getDx</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getDy()">getDy</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getLabel()">getLabel</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getNode()">getNode</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getQuadrant()">getQuadrant</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#init(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">init</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#setNode(com.vividsolutions.jts.geomgraph.Node)">setNode</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isForward"><!-- --></A><H3>
+isForward</H3>
+<PRE>
+protected boolean <B>isForward</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="DirectedEdge(com.vividsolutions.jts.geomgraph.Edge, boolean)"><!-- --></A><H3>
+DirectedEdge</H3>
+<PRE>
+public <B>DirectedEdge</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge,
+ boolean isForward)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="depthFactor(int, int)"><!-- --></A><H3>
+depthFactor</H3>
+<PRE>
+public static int <B>depthFactor</B>(int currLocation,
+ int nextLocation)</PRE>
+<DL>
+<DD>Computes the factor for the change in depth when moving from one location to another.
+ E.g. if crossing from the INTERIOR to the EXTERIOR the depth decreases, so the factor is -1
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdge()"><!-- --></A><H3>
+getEdge</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> <B>getEdge</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getEdge()">getEdge</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setInResult(boolean)"><!-- --></A><H3>
+setInResult</H3>
+<PRE>
+public void <B>setInResult</B>(boolean isInResult)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isInResult()"><!-- --></A><H3>
+isInResult</H3>
+<PRE>
+public boolean <B>isInResult</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isVisited()"><!-- --></A><H3>
+isVisited</H3>
+<PRE>
+public boolean <B>isVisited</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setVisited(boolean)"><!-- --></A><H3>
+setVisited</H3>
+<PRE>
+public void <B>setVisited</B>(boolean isVisited)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setEdgeRing(com.vividsolutions.jts.geomgraph.EdgeRing)"><!-- --></A><H3>
+setEdgeRing</H3>
+<PRE>
+public void <B>setEdgeRing</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> edgeRing)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdgeRing()"><!-- --></A><H3>
+getEdgeRing</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> <B>getEdgeRing</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setMinEdgeRing(com.vividsolutions.jts.geomgraph.EdgeRing)"><!-- --></A><H3>
+setMinEdgeRing</H3>
+<PRE>
+public void <B>setMinEdgeRing</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> minEdgeRing)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMinEdgeRing()"><!-- --></A><H3>
+getMinEdgeRing</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> <B>getMinEdgeRing</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDepth(int)"><!-- --></A><H3>
+getDepth</H3>
+<PRE>
+public int <B>getDepth</B>(int position)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDepth(int, int)"><!-- --></A><H3>
+setDepth</H3>
+<PRE>
+public void <B>setDepth</B>(int position,
+ int depthVal)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDepthDelta()"><!-- --></A><H3>
+getDepthDelta</H3>
+<PRE>
+public int <B>getDepthDelta</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setVisitedEdge(boolean)"><!-- --></A><H3>
+setVisitedEdge</H3>
+<PRE>
+public void <B>setVisitedEdge</B>(boolean isVisited)</PRE>
+<DL>
+<DD>setVisitedEdge marks both DirectedEdges attached to a given Edge.
+ This is used for edges corresponding to lines, which will only
+ appear oriented in a single direction in the result.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSym()"><!-- --></A><H3>
+getSym</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> <B>getSym</B>()</PRE>
+<DL>
+<DD>Each Edge gives rise to a pair of symmetric DirectedEdges, in opposite
+ directions.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the DirectedEdge for the same Edge but in the opposite direction</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isForward()"><!-- --></A><H3>
+isForward</H3>
+<PRE>
+public boolean <B>isForward</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setSym(com.vividsolutions.jts.geomgraph.DirectedEdge)"><!-- --></A><H3>
+setSym</H3>
+<PRE>
+public void <B>setSym</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNext()"><!-- --></A><H3>
+getNext</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> <B>getNext</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setNext(com.vividsolutions.jts.geomgraph.DirectedEdge)"><!-- --></A><H3>
+setNext</H3>
+<PRE>
+public void <B>setNext</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> next)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNextMin()"><!-- --></A><H3>
+getNextMin</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> <B>getNextMin</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setNextMin(com.vividsolutions.jts.geomgraph.DirectedEdge)"><!-- --></A><H3>
+setNextMin</H3>
+<PRE>
+public void <B>setNextMin</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> nextMin)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isLineEdge()"><!-- --></A><H3>
+isLineEdge</H3>
+<PRE>
+public boolean <B>isLineEdge</B>()</PRE>
+<DL>
+<DD>This edge is a line edge if
+ <ul>
+ <li> at least one of the labels is a line label
+ <li> any labels which are not line labels have all Locations = EXTERIOR
+ </ul>
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isInteriorAreaEdge()"><!-- --></A><H3>
+isInteriorAreaEdge</H3>
+<PRE>
+public boolean <B>isInteriorAreaEdge</B>()</PRE>
+<DL>
+<DD>This is an interior Area edge if
+ <ul>
+ <li> its label is an Area label for both Geometries
+ <li> and for each Geometry both sides are in the interior.
+ </ul>
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if this is an interior Area edge</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setEdgeDepths(int, int)"><!-- --></A><H3>
+setEdgeDepths</H3>
+<PRE>
+public void <B>setEdgeDepths</B>(int position,
+ int depth)</PRE>
+<DL>
+<DD>Set both edge depths. One depth for a given side is provided. The other is
+ computed depending on the Location transition and the depthDelta of the edge.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.io.PrintStream)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public void <B>print</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#print(java.io.PrintStream)">print</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="printEdge(java.io.PrintStream)"><!-- --></A><H3>
+printEdge</H3>
+<PRE>
+public void <B>printEdge</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DirectedEdge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,576 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+DirectedEdgeStar
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.DirectedEdgeStar class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="DirectedEdgeStar";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DirectedEdgeStar.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeEndStar">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class DirectedEdgeStar</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">com.vividsolutions.jts.geomgraph.EdgeEndStar</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.DirectedEdgeStar</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>DirectedEdgeStar</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A></DL>
+
+<P>
+A DirectedEdgeStar is an ordered list of <b>outgoing</b> DirectedEdges around a node.
+ It supports labelling the edges as well as linking the edges to form both
+ MaximalEdgeRings and MinimalEdgeRings.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeEndStar"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#edgeList">edgeList</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#edgeMap">edgeMap</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#DirectedEdgeStar()">DirectedEdgeStar</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#computeDepths(com.vividsolutions.jts.geomgraph.DirectedEdge)">computeDepths</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#computeLabelling(com.vividsolutions.jts.geomgraph.GeometryGraph[])">computeLabelling</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>[] geom)</CODE>
+
+<BR>
+ Compute the labelling for all dirEdges in this star, as well
+ as the overall labelling</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#findCoveredLineEdges()">findCoveredLineEdges</A></B>()</CODE>
+
+<BR>
+ Traverse the star of edges, maintaing the current location in the result
+ area at this node (if any).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#getLabel()">getLabel</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#getOutgoingDegree()">getOutgoingDegree</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#getOutgoingDegree(com.vividsolutions.jts.geomgraph.EdgeRing)">getOutgoingDegree</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> er)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#getRightmostEdge()">getRightmostEdge</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#insert(com.vividsolutions.jts.geomgraph.EdgeEnd)">insert</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> ee)</CODE>
+
+<BR>
+ Insert a directed edge in the list</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#linkAllDirectedEdges()">linkAllDirectedEdges</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#linkMinimalDirectedEdges(com.vividsolutions.jts.geomgraph.EdgeRing)">linkMinimalDirectedEdges</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> er)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#linkResultDirectedEdges()">linkResultDirectedEdges</A></B>()</CODE>
+
+<BR>
+ Traverse the star of DirectedEdges, linking the included edges together.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#mergeSymLabels()">mergeSymLabels</A></B>()</CODE>
+
+<BR>
+ For each dirEdge in the star,
+ merge the label from the sym dirEdge into the label</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#print(java.io.PrintStream)">print</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#updateLabelling(com.vividsolutions.jts.geomgraph.Label)">updateLabelling</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> nodeLabel)</CODE>
+
+<BR>
+ Update incomplete dirEdge labels from the labelling for the node</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeEndStar"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#findIndex(com.vividsolutions.jts.geomgraph.EdgeEnd)">findIndex</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getCoordinate()">getCoordinate</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getDegree()">getDegree</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getEdges()">getEdges</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getNextCW(com.vividsolutions.jts.geomgraph.EdgeEnd)">getNextCW</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#insertEdgeEnd(com.vividsolutions.jts.geomgraph.EdgeEnd, java.lang.Object)">insertEdgeEnd</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#isAreaLabelsConsistent(com.vividsolutions.jts.geomgraph.GeometryGraph)">isAreaLabelsConsistent</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#iterator()">iterator</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="DirectedEdgeStar()"><!-- --></A><H3>
+DirectedEdgeStar</H3>
+<PRE>
+public <B>DirectedEdgeStar</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="insert(com.vividsolutions.jts.geomgraph.EdgeEnd)"><!-- --></A><H3>
+insert</H3>
+<PRE>
+public void <B>insert</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> ee)</PRE>
+<DL>
+<DD>Insert a directed edge in the list
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#insert(com.vividsolutions.jts.geomgraph.EdgeEnd)">insert</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLabel()"><!-- --></A><H3>
+getLabel</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> <B>getLabel</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOutgoingDegree()"><!-- --></A><H3>
+getOutgoingDegree</H3>
+<PRE>
+public int <B>getOutgoingDegree</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOutgoingDegree(com.vividsolutions.jts.geomgraph.EdgeRing)"><!-- --></A><H3>
+getOutgoingDegree</H3>
+<PRE>
+public int <B>getOutgoingDegree</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> er)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getRightmostEdge()"><!-- --></A><H3>
+getRightmostEdge</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> <B>getRightmostEdge</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeLabelling(com.vividsolutions.jts.geomgraph.GeometryGraph[])"><!-- --></A><H3>
+computeLabelling</H3>
+<PRE>
+public void <B>computeLabelling</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>[] geom)</PRE>
+<DL>
+<DD>Compute the labelling for all dirEdges in this star, as well
+ as the overall labelling
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#computeLabelling(com.vividsolutions.jts.geomgraph.GeometryGraph[])">computeLabelling</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="mergeSymLabels()"><!-- --></A><H3>
+mergeSymLabels</H3>
+<PRE>
+public void <B>mergeSymLabels</B>()</PRE>
+<DL>
+<DD>For each dirEdge in the star,
+ merge the label from the sym dirEdge into the label
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="updateLabelling(com.vividsolutions.jts.geomgraph.Label)"><!-- --></A><H3>
+updateLabelling</H3>
+<PRE>
+public void <B>updateLabelling</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> nodeLabel)</PRE>
+<DL>
+<DD>Update incomplete dirEdge labels from the labelling for the node
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="linkResultDirectedEdges()"><!-- --></A><H3>
+linkResultDirectedEdges</H3>
+<PRE>
+public void <B>linkResultDirectedEdges</B>()</PRE>
+<DL>
+<DD>Traverse the star of DirectedEdges, linking the included edges together.
+ To link two dirEdges, the <next> pointer for an incoming dirEdge
+ is set to the next outgoing edge.
+ <p>
+ DirEdges are only linked if:
+ <ul>
+ <li>they belong to an area (i.e. they have sides)
+ <li>they are marked as being in the result
+ </ul>
+ <p>
+ Edges are linked in CCW order (the order they are stored).
+ This means that rings have their face on the Right
+ (in other words,
+ the topological location of the face is given by the RHS label of the DirectedEdge)
+ <p>
+ PRECONDITION: No pair of dirEdges are both marked as being in the result
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="linkMinimalDirectedEdges(com.vividsolutions.jts.geomgraph.EdgeRing)"><!-- --></A><H3>
+linkMinimalDirectedEdges</H3>
+<PRE>
+public void <B>linkMinimalDirectedEdges</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> er)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="linkAllDirectedEdges()"><!-- --></A><H3>
+linkAllDirectedEdges</H3>
+<PRE>
+public void <B>linkAllDirectedEdges</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findCoveredLineEdges()"><!-- --></A><H3>
+findCoveredLineEdges</H3>
+<PRE>
+public void <B>findCoveredLineEdges</B>()</PRE>
+<DL>
+<DD>Traverse the star of edges, maintaing the current location in the result
+ area at this node (if any).
+ If any L edges are found in the interior of the result, mark them as covered.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeDepths(com.vividsolutions.jts.geomgraph.DirectedEdge)"><!-- --></A><H3>
+computeDepths</H3>
+<PRE>
+public void <B>computeDepths</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.io.PrintStream)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public void <B>print</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#print(java.io.PrintStream)">print</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DirectedEdgeStar.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeEndStar">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Edge.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Edge.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Edge.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,810 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Edge
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.Edge class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Edge";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Edge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.GraphComponent">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class Edge</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">com.vividsolutions.jts.geomgraph.GraphComponent</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.Edge</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Edge</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></DL>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geomgraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#label">label</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#Edge(com.vividsolutions.jts.geom.Coordinate[])">Edge</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#Edge(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geomgraph.Label)">Edge</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts,
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#addIntersection(com.vividsolutions.jts.algorithm.LineIntersector, int, int, int)">addIntersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li,
+ int segmentIndex,
+ int geomIndex,
+ int intIndex)</CODE>
+
+<BR>
+ Add an EdgeIntersection for intersection intIndex.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#addIntersections(com.vividsolutions.jts.algorithm.LineIntersector, int, int)">addIntersections</A></B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li,
+ int segmentIndex,
+ int geomIndex)</CODE>
+
+<BR>
+ Adds EdgeIntersections for one or both
+ intersections found for a segment of an edge to the edge intersection list.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#computeIM(com.vividsolutions.jts.geom.IntersectionMatrix)">computeIM</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> im)</CODE>
+
+<BR>
+ Update the IM with the contribution for this component.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object o)</CODE>
+
+<BR>
+ equals is defined to be:
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#getCollapsedEdge()">getCollapsedEdge</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#getCoordinate(int)">getCoordinate</A></B>(int i)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#getCoordinates()">getCoordinates</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#getDepth()">getDepth</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#getDepthDelta()">getDepthDelta</A></B>()</CODE>
+
+<BR>
+ The depthDelta is the change in depth as an edge is crossed from R to L</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersectionList</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#getEdgeIntersectionList()">getEdgeIntersectionList</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#getEnvelope()">getEnvelope</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#getMaximumSegmentIndex()">getMaximumSegmentIndex</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#getMonotoneChainEdge()">getMonotoneChainEdge</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#getNumPoints()">getNumPoints</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#isClosed()">isClosed</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#isCollapsed()">isCollapsed</A></B>()</CODE>
+
+<BR>
+ An Edge is collapsed if it is an Area edge and it consists of
+ two segments which are equal and opposite (eg a zero-width V).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#isIsolated()">isIsolated</A></B>()</CODE>
+
+<BR>
+ An isolated component is one that does not intersect or touch any other
+ component.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#isPointwiseEqual(com.vividsolutions.jts.geomgraph.Edge)">isPointwiseEqual</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#print(java.io.PrintStream)">print</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#printReverse(java.io.PrintStream)">printReverse</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#setDepthDelta(int)">setDepthDelta</A></B>(int depthDelta)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#setIsolated(boolean)">setIsolated</A></B>(boolean isIsolated)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#setName(java.lang.String)">setName</A></B>(java.lang.String name)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html#updateIM(com.vividsolutions.jts.geomgraph.Label, com.vividsolutions.jts.geom.IntersectionMatrix)">updateIM</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label,
+ <A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> im)</CODE>
+
+<BR>
+ Updates an IM from the label for an edge.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geomgraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#getLabel()">getLabel</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isCovered()">isCovered</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isCoveredSet()">isCoveredSet</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isInResult()">isInResult</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isVisited()">isVisited</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setCovered(boolean)">setCovered</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setInResult(boolean)">setInResult</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setLabel(com.vividsolutions.jts.geomgraph.Label)">setLabel</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setVisited(boolean)">setVisited</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#updateIM(com.vividsolutions.jts.geom.IntersectionMatrix)">updateIM</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Edge(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geomgraph.Label)"><!-- --></A><H3>
+Edge</H3>
+<PRE>
+public <B>Edge</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts,
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="Edge(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+Edge</H3>
+<PRE>
+public <B>Edge</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="updateIM(com.vividsolutions.jts.geomgraph.Label, com.vividsolutions.jts.geom.IntersectionMatrix)"><!-- --></A><H3>
+updateIM</H3>
+<PRE>
+public static void <B>updateIM</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label,
+ <A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> im)</PRE>
+<DL>
+<DD>Updates an IM from the label for an edge.
+ Handles edges from both L and A geometries.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNumPoints()"><!-- --></A><H3>
+getNumPoints</H3>
+<PRE>
+public int <B>getNumPoints</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setName(java.lang.String)"><!-- --></A><H3>
+setName</H3>
+<PRE>
+public void <B>setName</B>(java.lang.String name)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinates()"><!-- --></A><H3>
+getCoordinates</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>getCoordinates</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate(int)"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>(int i)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#getCoordinate()">getCoordinate</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a coordinate in this component (or null, if there are none)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEnvelope()"><!-- --></A><H3>
+getEnvelope</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>getEnvelope</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDepth()"><!-- --></A><H3>
+getDepth</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A> <B>getDepth</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDepthDelta()"><!-- --></A><H3>
+getDepthDelta</H3>
+<PRE>
+public int <B>getDepthDelta</B>()</PRE>
+<DL>
+<DD>The depthDelta is the change in depth as an edge is crossed from R to L
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the change in depth as the edge is crossed from R to L</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDepthDelta(int)"><!-- --></A><H3>
+setDepthDelta</H3>
+<PRE>
+public void <B>setDepthDelta</B>(int depthDelta)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMaximumSegmentIndex()"><!-- --></A><H3>
+getMaximumSegmentIndex</H3>
+<PRE>
+public int <B>getMaximumSegmentIndex</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdgeIntersectionList()"><!-- --></A><H3>
+getEdgeIntersectionList</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersectionList</A> <B>getEdgeIntersectionList</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMonotoneChainEdge()"><!-- --></A><H3>
+getMonotoneChainEdge</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A> <B>getMonotoneChainEdge</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isClosed()"><!-- --></A><H3>
+isClosed</H3>
+<PRE>
+public boolean <B>isClosed</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCollapsed()"><!-- --></A><H3>
+isCollapsed</H3>
+<PRE>
+public boolean <B>isCollapsed</B>()</PRE>
+<DL>
+<DD>An Edge is collapsed if it is an Area edge and it consists of
+ two segments which are equal and opposite (eg a zero-width V).
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCollapsedEdge()"><!-- --></A><H3>
+getCollapsedEdge</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> <B>getCollapsedEdge</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setIsolated(boolean)"><!-- --></A><H3>
+setIsolated</H3>
+<PRE>
+public void <B>setIsolated</B>(boolean isIsolated)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isIsolated()"><!-- --></A><H3>
+isIsolated</H3>
+<PRE>
+public boolean <B>isIsolated</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></CODE></B></DD>
+<DD>An isolated component is one that does not intersect or touch any other
+ component. This is the case if the label has valid locations for
+ only a single Geometry.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isIsolated()">isIsolated</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if this component is isolated</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addIntersections(com.vividsolutions.jts.algorithm.LineIntersector, int, int)"><!-- --></A><H3>
+addIntersections</H3>
+<PRE>
+public void <B>addIntersections</B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li,
+ int segmentIndex,
+ int geomIndex)</PRE>
+<DL>
+<DD>Adds EdgeIntersections for one or both
+ intersections found for a segment of an edge to the edge intersection list.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addIntersection(com.vividsolutions.jts.algorithm.LineIntersector, int, int, int)"><!-- --></A><H3>
+addIntersection</H3>
+<PRE>
+public void <B>addIntersection</B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li,
+ int segmentIndex,
+ int geomIndex,
+ int intIndex)</PRE>
+<DL>
+<DD>Add an EdgeIntersection for intersection intIndex.
+ An intersection that falls exactly on a vertex of the edge is normalized
+ to use the higher of the two possible segmentIndexes
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIM(com.vividsolutions.jts.geom.IntersectionMatrix)"><!-- --></A><H3>
+computeIM</H3>
+<PRE>
+public void <B>computeIM</B>(<A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> im)</PRE>
+<DL>
+<DD>Update the IM with the contribution for this component.
+ A component only contributes if it has a labelling for both parent geometries
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#computeIM(com.vividsolutions.jts.geom.IntersectionMatrix)">computeIM</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</B>(java.lang.Object o)</PRE>
+<DL>
+<DD>equals is defined to be:
+ <p>
+ e1 equals e2
+ <b>iff</b>
+ the coordinates of e1 are the same or the reverse of the coordinates in e2
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isPointwiseEqual(com.vividsolutions.jts.geomgraph.Edge)"><!-- --></A><H3>
+isPointwiseEqual</H3>
+<PRE>
+public boolean <B>isPointwiseEqual</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the coordinate sequences of the Edges are identical</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.io.PrintStream)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public void <B>print</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="printReverse(java.io.PrintStream)"><!-- --></A><H3>
+printReverse</H3>
+<PRE>
+public void <B>printReverse</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Edge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.GraphComponent">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeEnd.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeEnd.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeEnd.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,667 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+EdgeEnd
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.EdgeEnd class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="EdgeEnd";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeEnd.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class EdgeEnd</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.EdgeEnd</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable</DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>, <A HREF="../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundle</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>EdgeEnd</B><DT>extends java.lang.Object<DT>implements java.lang.Comparable</DL>
+
+<P>
+Models the end of an edge incident on a node.
+ EdgeEnds have a direction
+ determined by the direction of the ray from the initial
+ point to the next point.
+ EdgeEnds are comparable under the ordering
+ "a has a greater angle with the x-axis than b".
+ This ordering is used to sort EdgeEnds around a node.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#edge">edge</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#label">label</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected </CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#EdgeEnd(com.vividsolutions.jts.geomgraph.Edge)">EdgeEnd</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> </CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#EdgeEnd(com.vividsolutions.jts.geomgraph.Edge, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">EdgeEnd</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> </CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#EdgeEnd(com.vividsolutions.jts.geomgraph.Edge, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geomgraph.Label)">EdgeEnd</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#compareDirection(com.vividsolutions.jts.geomgraph.EdgeEnd)">compareDirection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</CODE>
+
+<BR>
+ Implements the total order relation:
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#compareTo(java.lang.Object)">compareTo</A></B>(java.lang.Object obj)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#computeLabel(com.vividsolutions.jts.algorithm.BoundaryNodeRule)">computeLabel</A></B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getDirectedCoordinate()">getDirectedCoordinate</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getDx()">getDx</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getDy()">getDy</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getEdge()">getEdge</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getLabel()">getLabel</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getNode()">getNode</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getQuadrant()">getQuadrant</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#init(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">init</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#print(java.io.PrintStream)">print</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#setNode(com.vividsolutions.jts.geomgraph.Node)">setNode</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> node)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="edge"><!-- --></A><H3>
+edge</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> <B>edge</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="label"><!-- --></A><H3>
+label</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> <B>label</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EdgeEnd(com.vividsolutions.jts.geomgraph.Edge)"><!-- --></A><H3>
+EdgeEnd</H3>
+<PRE>
+protected <B>EdgeEnd</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="EdgeEnd(com.vividsolutions.jts.geomgraph.Edge, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+EdgeEnd</H3>
+<PRE>
+public <B>EdgeEnd</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="EdgeEnd(com.vividsolutions.jts.geomgraph.Edge, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geomgraph.Label)"><!-- --></A><H3>
+EdgeEnd</H3>
+<PRE>
+public <B>EdgeEnd</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="init(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+init</H3>
+<PRE>
+protected void <B>init</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdge()"><!-- --></A><H3>
+getEdge</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> <B>getEdge</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLabel()"><!-- --></A><H3>
+getLabel</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> <B>getLabel</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDirectedCoordinate()"><!-- --></A><H3>
+getDirectedCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getDirectedCoordinate</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getQuadrant()"><!-- --></A><H3>
+getQuadrant</H3>
+<PRE>
+public int <B>getQuadrant</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDx()"><!-- --></A><H3>
+getDx</H3>
+<PRE>
+public double <B>getDx</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDy()"><!-- --></A><H3>
+getDy</H3>
+<PRE>
+public double <B>getDy</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setNode(com.vividsolutions.jts.geomgraph.Node)"><!-- --></A><H3>
+setNode</H3>
+<PRE>
+public void <B>setNode</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> node)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNode()"><!-- --></A><H3>
+getNode</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> <B>getNode</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(java.lang.Object obj)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE>java.lang.Comparable</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareDirection(com.vividsolutions.jts.geomgraph.EdgeEnd)"><!-- --></A><H3>
+compareDirection</H3>
+<PRE>
+public int <B>compareDirection</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</PRE>
+<DL>
+<DD>Implements the total order relation:
+ <p>
+ a has a greater angle with the positive x-axis than b
+ <p>
+ Using the obvious algorithm of simply computing the angle is not robust,
+ since the angle calculation is obviously susceptible to roundoff.
+ A robust algorithm is:
+ - first compare the quadrant. If the quadrants
+ are different, it it trivial to determine which vector is "greater".
+ - if the vectors lie in the same quadrant, the computeOrientation function
+ can be used to decide the relative orientation of the vectors.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeLabel(com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><!-- --></A><H3>
+computeLabel</H3>
+<PRE>
+public void <B>computeLabel</B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.io.PrintStream)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public void <B>print</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeEnd.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeEndStar.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeEndStar.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeEndStar.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,521 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+EdgeEndStar
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.EdgeEndStar class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="EdgeEndStar";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeEndStar.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class EdgeEndStar</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.EdgeEndStar</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>, <A HREF="../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundleStar</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public abstract class <B>EdgeEndStar</B><DT>extends java.lang.Object</DL>
+
+<P>
+A EdgeEndStar is an ordered list of EdgeEnds around a node.
+ They are maintained in CCW order (starting with the positive x-axis) around the node
+ for efficient lookup and topology building.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#edgeList">edgeList</A></B></CODE>
+
+<BR>
+ A list of all outgoing edges in the result, in CCW order</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.Map</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#edgeMap">edgeMap</A></B></CODE>
+
+<BR>
+ A map which maintains the edges in sorted order around the node</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#EdgeEndStar()">EdgeEndStar</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#computeLabelling(com.vividsolutions.jts.geomgraph.GeometryGraph[])">computeLabelling</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>[] geomGraph)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#findIndex(com.vividsolutions.jts.geomgraph.EdgeEnd)">findIndex</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> eSearch)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getDegree()">getDegree</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getEdges()">getEdges</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getNextCW(com.vividsolutions.jts.geomgraph.EdgeEnd)">getNextCW</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> ee)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#insert(com.vividsolutions.jts.geomgraph.EdgeEnd)">insert</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</CODE>
+
+<BR>
+ Insert a EdgeEnd into this EdgeEndStar</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#insertEdgeEnd(com.vividsolutions.jts.geomgraph.EdgeEnd, java.lang.Object)">insertEdgeEnd</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e,
+ java.lang.Object obj)</CODE>
+
+<BR>
+ Insert an EdgeEnd into the map, and clear the edgeList cache,
+ since the list of edges has now changed</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#isAreaLabelsConsistent(com.vividsolutions.jts.geomgraph.GeometryGraph)">isAreaLabelsConsistent</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> geomGraph)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#iterator()">iterator</A></B>()</CODE>
+
+<BR>
+ Iterator access to the ordered list of edges is optimized by
+ copying the map collection to a list.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#print(java.io.PrintStream)">print</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="edgeMap"><!-- --></A><H3>
+edgeMap</H3>
+<PRE>
+protected java.util.Map <B>edgeMap</B></PRE>
+<DL>
+<DD>A map which maintains the edges in sorted order around the node
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="edgeList"><!-- --></A><H3>
+edgeList</H3>
+<PRE>
+protected java.util.List <B>edgeList</B></PRE>
+<DL>
+<DD>A list of all outgoing edges in the result, in CCW order
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EdgeEndStar()"><!-- --></A><H3>
+EdgeEndStar</H3>
+<PRE>
+public <B>EdgeEndStar</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="insert(com.vividsolutions.jts.geomgraph.EdgeEnd)"><!-- --></A><H3>
+insert</H3>
+<PRE>
+public abstract void <B>insert</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</PRE>
+<DL>
+<DD>Insert a EdgeEnd into this EdgeEndStar
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="insertEdgeEnd(com.vividsolutions.jts.geomgraph.EdgeEnd, java.lang.Object)"><!-- --></A><H3>
+insertEdgeEnd</H3>
+<PRE>
+protected void <B>insertEdgeEnd</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e,
+ java.lang.Object obj)</PRE>
+<DL>
+<DD>Insert an EdgeEnd into the map, and clear the edgeList cache,
+ since the list of edges has now changed
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the coordinate for the node this star is based at</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDegree()"><!-- --></A><H3>
+getDegree</H3>
+<PRE>
+public int <B>getDegree</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="iterator()"><!-- --></A><H3>
+iterator</H3>
+<PRE>
+public java.util.Iterator <B>iterator</B>()</PRE>
+<DL>
+<DD>Iterator access to the ordered list of edges is optimized by
+ copying the map collection to a list. (This assumes that
+ once an iterator is requested, it is likely that insertion into
+ the map is complete).
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdges()"><!-- --></A><H3>
+getEdges</H3>
+<PRE>
+public java.util.List <B>getEdges</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNextCW(com.vividsolutions.jts.geomgraph.EdgeEnd)"><!-- --></A><H3>
+getNextCW</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> <B>getNextCW</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> ee)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeLabelling(com.vividsolutions.jts.geomgraph.GeometryGraph[])"><!-- --></A><H3>
+computeLabelling</H3>
+<PRE>
+public void <B>computeLabelling</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>[] geomGraph)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isAreaLabelsConsistent(com.vividsolutions.jts.geomgraph.GeometryGraph)"><!-- --></A><H3>
+isAreaLabelsConsistent</H3>
+<PRE>
+public boolean <B>isAreaLabelsConsistent</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> geomGraph)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findIndex(com.vividsolutions.jts.geomgraph.EdgeEnd)"><!-- --></A><H3>
+findIndex</H3>
+<PRE>
+public int <B>findIndex</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> eSearch)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.io.PrintStream)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public void <B>print</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeEndStar.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeIntersection.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeIntersection.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeIntersection.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,475 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+EdgeIntersection
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.EdgeIntersection class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="EdgeIntersection";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeIntersection.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class EdgeIntersection</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.EdgeIntersection</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>EdgeIntersection</B><DT>extends java.lang.Object<DT>implements java.lang.Comparable</DL>
+
+<P>
+Represents a point on an
+ edge which intersects with another edge.
+ <p>
+ The intersection may either be a single point, or a line segment
+ (in which case this point is the start of the line segment)
+ The intersection point must be precise.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html#coord">coord</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html#dist">dist</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html#segmentIndex">segmentIndex</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html#EdgeIntersection(com.vividsolutions.jts.geom.Coordinate, int, double)">EdgeIntersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord,
+ int segmentIndex,
+ double dist)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html#compare(int, double)">compare</A></B>(int segmentIndex,
+ double dist)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html#compareTo(java.lang.Object)">compareTo</A></B>(java.lang.Object obj)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html#getDistance()">getDistance</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html#getSegmentIndex()">getSegmentIndex</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html#isEndPoint(int)">isEndPoint</A></B>(int maxSegmentIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html#print(java.io.PrintStream)">print</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="coord"><!-- --></A><H3>
+coord</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>coord</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="segmentIndex"><!-- --></A><H3>
+segmentIndex</H3>
+<PRE>
+public int <B>segmentIndex</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="dist"><!-- --></A><H3>
+dist</H3>
+<PRE>
+public double <B>dist</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EdgeIntersection(com.vividsolutions.jts.geom.Coordinate, int, double)"><!-- --></A><H3>
+EdgeIntersection</H3>
+<PRE>
+public <B>EdgeIntersection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord,
+ int segmentIndex,
+ double dist)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSegmentIndex()"><!-- --></A><H3>
+getSegmentIndex</H3>
+<PRE>
+public int <B>getSegmentIndex</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDistance()"><!-- --></A><H3>
+getDistance</H3>
+<PRE>
+public double <B>getDistance</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(java.lang.Object obj)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE>java.lang.Comparable</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compare(int, double)"><!-- --></A><H3>
+compare</H3>
+<PRE>
+public int <B>compare</B>(int segmentIndex,
+ double dist)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>-1 this EdgeIntersection is located before the argument location</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEndPoint(int)"><!-- --></A><H3>
+isEndPoint</H3>
+<PRE>
+public boolean <B>isEndPoint</B>(int maxSegmentIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.io.PrintStream)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public void <B>print</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeIntersection.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,377 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+EdgeIntersectionList
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.EdgeIntersectionList class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="EdgeIntersectionList";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeIntersectionList.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class EdgeIntersectionList</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.EdgeIntersectionList</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>EdgeIntersectionList</B><DT>extends java.lang.Object</DL>
+
+<P>
+A list of edge intersections along an <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Edge</CODE></A>.
+ Implements splitting an edge with intersections
+ into multiple resultant edges.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html#EdgeIntersectionList(com.vividsolutions.jts.geomgraph.Edge)">EdgeIntersectionList</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html#add(com.vividsolutions.jts.geom.Coordinate, int, double)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> intPt,
+ int segmentIndex,
+ double dist)</CODE>
+
+<BR>
+ Adds an intersection into the list, if it isn't already there.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html#addEndpoints()">addEndpoints</A></B>()</CODE>
+
+<BR>
+ Adds entries for the first and last points of the edge to the list</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html#addSplitEdges(java.util.List)">addSplitEdges</A></B>(java.util.List edgeList)</CODE>
+
+<BR>
+ Creates new edges for all the edges that the intersections in this
+ list split the parent edge into.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html#isIntersection(com.vividsolutions.jts.geom.Coordinate)">isIntersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Tests if the given point is an edge intersection</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html#iterator()">iterator</A></B>()</CODE>
+
+<BR>
+ Returns an iterator of <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>EdgeIntersection</CODE></A>s</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html#print(java.io.PrintStream)">print</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EdgeIntersectionList(com.vividsolutions.jts.geomgraph.Edge)"><!-- --></A><H3>
+EdgeIntersectionList</H3>
+<PRE>
+public <B>EdgeIntersectionList</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(com.vividsolutions.jts.geom.Coordinate, int, double)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A> <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> intPt,
+ int segmentIndex,
+ double dist)</PRE>
+<DL>
+<DD>Adds an intersection into the list, if it isn't already there.
+ The input segmentIndex and dist are expected to be normalized.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the EdgeIntersection found or added</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="iterator()"><!-- --></A><H3>
+iterator</H3>
+<PRE>
+public java.util.Iterator <B>iterator</B>()</PRE>
+<DL>
+<DD>Returns an iterator of <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>EdgeIntersection</CODE></A>s
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an Iterator of EdgeIntersections</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isIntersection(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+isIntersection</H3>
+<PRE>
+public boolean <B>isIntersection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Tests if the given point is an edge intersection
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pt</CODE> - the point to test
+<DT><B>Returns:</B><DD>true if the point is an intersection</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addEndpoints()"><!-- --></A><H3>
+addEndpoints</H3>
+<PRE>
+public void <B>addEndpoints</B>()</PRE>
+<DL>
+<DD>Adds entries for the first and last points of the edge to the list
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addSplitEdges(java.util.List)"><!-- --></A><H3>
+addSplitEdges</H3>
+<PRE>
+public void <B>addSplitEdges</B>(java.util.List edgeList)</PRE>
+<DL>
+<DD>Creates new edges for all the edges that the intersections in this
+ list split the parent edge into.
+ Adds the edges to the input list (this is so a single list
+ can be used to accumulate all split edges for a Geometry).
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>edgeList</CODE> - a list of EdgeIntersections</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.io.PrintStream)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public void <B>print</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeIntersectionList.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeList.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeList.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeList.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,403 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+EdgeList
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.EdgeList class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="EdgeList";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeList.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class EdgeList</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.EdgeList</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>EdgeList</B><DT>extends java.lang.Object</DL>
+
+<P>
+A EdgeList is a list of Edges. It supports locating edges
+ that are pointwise equals to a target edge.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeList.html#EdgeList()">EdgeList</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeList.html#add(com.vividsolutions.jts.geomgraph.Edge)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</CODE>
+
+<BR>
+ Insert an edge unless it is already in the list</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeList.html#addAll(java.util.Collection)">addAll</A></B>(java.util.Collection edgeColl)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeList.html#findEdgeIndex(com.vividsolutions.jts.geomgraph.Edge)">findEdgeIndex</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</CODE>
+
+<BR>
+ If the edge e is already in the list, return its index.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeList.html#findEqualEdge(com.vividsolutions.jts.geomgraph.Edge)">findEqualEdge</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</CODE>
+
+<BR>
+ If there is an edge equal to e already in the list, return it.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeList.html#get(int)">get</A></B>(int i)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeList.html#getEdges()">getEdges</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeList.html#iterator()">iterator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeList.html#print(java.io.PrintStream)">print</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EdgeList()"><!-- --></A><H3>
+EdgeList</H3>
+<PRE>
+public <B>EdgeList</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(com.vividsolutions.jts.geomgraph.Edge)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</PRE>
+<DL>
+<DD>Insert an edge unless it is already in the list
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addAll(java.util.Collection)"><!-- --></A><H3>
+addAll</H3>
+<PRE>
+public void <B>addAll</B>(java.util.Collection edgeColl)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdges()"><!-- --></A><H3>
+getEdges</H3>
+<PRE>
+public java.util.List <B>getEdges</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findEqualEdge(com.vividsolutions.jts.geomgraph.Edge)"><!-- --></A><H3>
+findEqualEdge</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> <B>findEqualEdge</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</PRE>
+<DL>
+<DD>If there is an edge equal to e already in the list, return it.
+ Otherwise return null.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>equal edge, if there is one already in the list
+ null otherwise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="iterator()"><!-- --></A><H3>
+iterator</H3>
+<PRE>
+public java.util.Iterator <B>iterator</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="get(int)"><!-- --></A><H3>
+get</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> <B>get</B>(int i)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findEdgeIndex(com.vividsolutions.jts.geomgraph.Edge)"><!-- --></A><H3>
+findEdgeIndex</H3>
+<PRE>
+public int <B>findEdgeIndex</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</PRE>
+<DL>
+<DD>If the edge e is already in the list, return its index.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>index, if e is already in the list
+ -1 otherwise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.io.PrintStream)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public void <B>print</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeList.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+EdgeNodingValidator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.EdgeNodingValidator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="EdgeNodingValidator";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeNodingValidator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class EdgeNodingValidator</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.EdgeNodingValidator</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>EdgeNodingValidator</B><DT>extends java.lang.Object</DL>
+
+<P>
+Validates that a collection of <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Edge</CODE></A>s is correctly noded.
+ Throws an appropriate exception if an noding error is found.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html#EdgeNodingValidator(java.util.Collection)">EdgeNodingValidator</A></B>(java.util.Collection edges)</CODE>
+
+<BR>
+ Creates a new validator for the given collection of <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Edge</CODE></A>s.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html#checkValid()">checkValid</A></B>()</CODE>
+
+<BR>
+ Checks whether the supplied edges
+ are correctly noded.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EdgeNodingValidator(java.util.Collection)"><!-- --></A><H3>
+EdgeNodingValidator</H3>
+<PRE>
+public <B>EdgeNodingValidator</B>(java.util.Collection edges)</PRE>
+<DL>
+<DD>Creates a new validator for the given collection of <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Edge</CODE></A>s.
+<P>
+<DT><B>Parameters:</B><DD><CODE>edges</CODE> - a collection of Edges.</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="checkValid()"><!-- --></A><H3>
+checkValid</H3>
+<PRE>
+public void <B>checkValid</B>()</PRE>
+<DL>
+<DD>Checks whether the supplied edges
+ are correctly noded. Throws an exception if they are not.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.RuntimeException</CODE> - if the SegmentStrings are not correctly noded</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeNodingValidator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeRing.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeRing.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/EdgeRing.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,733 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+EdgeRing
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.EdgeRing class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="EdgeRing";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class EdgeRing</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.EdgeRing</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MaximalEdgeRing</A>, <A HREF="../../../../com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MinimalEdgeRing</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public abstract class <B>EdgeRing</B><DT>extends java.lang.Object</DL>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#cga">cga</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#geometryFactory">geometryFactory</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#startDe">startDe</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#EdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.CGAlgorithms)">EdgeRing</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> start,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory,
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> cga)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#addHole(com.vividsolutions.jts.geomgraph.EdgeRing)">addHole</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> ring)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#addPoints(com.vividsolutions.jts.geomgraph.Edge, boolean, boolean)">addPoints</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge,
+ boolean isForward,
+ boolean isFirstEdge)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#computePoints(com.vividsolutions.jts.geomgraph.DirectedEdge)">computePoints</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> start)</CODE>
+
+<BR>
+ Collect all the points from the DirectedEdges of this ring into a contiguous list</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#computeRing()">computeRing</A></B>()</CODE>
+
+<BR>
+ Compute a LinearRing from the point list previously collected.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#containsPoint(com.vividsolutions.jts.geom.Coordinate)">containsPoint</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ This method will cause the ring to be computed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getCoordinate(int)">getCoordinate</A></B>(int i)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getEdges()">getEdges</A></B>()</CODE>
+
+<BR>
+ Returns the list of DirectedEdges that make up this EdgeRing</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getLabel()">getLabel</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getLinearRing()">getLinearRing</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getMaxNodeDegree()">getMaxNodeDegree</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getNext(com.vividsolutions.jts.geomgraph.DirectedEdge)">getNext</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getShell()">getShell</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#isHole()">isHole</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#isIsolated()">isIsolated</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#isShell()">isShell</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#mergeLabel(com.vividsolutions.jts.geomgraph.Label)">mergeLabel</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> deLabel)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#mergeLabel(com.vividsolutions.jts.geomgraph.Label, int)">mergeLabel</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> deLabel,
+ int geomIndex)</CODE>
+
+<BR>
+ Merge the RHS label from a DirectedEdge into the label for this EdgeRing.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#setEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geomgraph.EdgeRing)">setEdgeRing</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de,
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> er)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#setInResult()">setInResult</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#setShell(com.vividsolutions.jts.geomgraph.EdgeRing)">setShell</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> shell)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#toPolygon(com.vividsolutions.jts.geom.GeometryFactory)">toPolygon</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="startDe"><!-- --></A><H3>
+startDe</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> <B>startDe</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="geometryFactory"><!-- --></A><H3>
+geometryFactory</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> <B>geometryFactory</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="cga"><!-- --></A><H3>
+cga</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> <B>cga</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.CGAlgorithms)"><!-- --></A><H3>
+EdgeRing</H3>
+<PRE>
+public <B>EdgeRing</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> start,
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory,
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> cga)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isIsolated()"><!-- --></A><H3>
+isIsolated</H3>
+<PRE>
+public boolean <B>isIsolated</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isHole()"><!-- --></A><H3>
+isHole</H3>
+<PRE>
+public boolean <B>isHole</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate(int)"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>(int i)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLinearRing()"><!-- --></A><H3>
+getLinearRing</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> <B>getLinearRing</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLabel()"><!-- --></A><H3>
+getLabel</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> <B>getLabel</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isShell()"><!-- --></A><H3>
+isShell</H3>
+<PRE>
+public boolean <B>isShell</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getShell()"><!-- --></A><H3>
+getShell</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> <B>getShell</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setShell(com.vividsolutions.jts.geomgraph.EdgeRing)"><!-- --></A><H3>
+setShell</H3>
+<PRE>
+public void <B>setShell</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> shell)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addHole(com.vividsolutions.jts.geomgraph.EdgeRing)"><!-- --></A><H3>
+addHole</H3>
+<PRE>
+public void <B>addHole</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> ring)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toPolygon(com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+toPolygon</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> <B>toPolygon</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeRing()"><!-- --></A><H3>
+computeRing</H3>
+<PRE>
+public void <B>computeRing</B>()</PRE>
+<DL>
+<DD>Compute a LinearRing from the point list previously collected.
+ Test if the ring is a hole (i.e. if it is CCW) and set the hole flag
+ accordingly.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNext(com.vividsolutions.jts.geomgraph.DirectedEdge)"><!-- --></A><H3>
+getNext</H3>
+<PRE>
+public abstract <A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> <B>getNext</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geomgraph.EdgeRing)"><!-- --></A><H3>
+setEdgeRing</H3>
+<PRE>
+public abstract void <B>setEdgeRing</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de,
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> er)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdges()"><!-- --></A><H3>
+getEdges</H3>
+<PRE>
+public java.util.List <B>getEdges</B>()</PRE>
+<DL>
+<DD>Returns the list of DirectedEdges that make up this EdgeRing
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computePoints(com.vividsolutions.jts.geomgraph.DirectedEdge)"><!-- --></A><H3>
+computePoints</H3>
+<PRE>
+protected void <B>computePoints</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> start)</PRE>
+<DL>
+<DD>Collect all the points from the DirectedEdges of this ring into a contiguous list
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMaxNodeDegree()"><!-- --></A><H3>
+getMaxNodeDegree</H3>
+<PRE>
+public int <B>getMaxNodeDegree</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setInResult()"><!-- --></A><H3>
+setInResult</H3>
+<PRE>
+public void <B>setInResult</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="mergeLabel(com.vividsolutions.jts.geomgraph.Label)"><!-- --></A><H3>
+mergeLabel</H3>
+<PRE>
+protected void <B>mergeLabel</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> deLabel)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="mergeLabel(com.vividsolutions.jts.geomgraph.Label, int)"><!-- --></A><H3>
+mergeLabel</H3>
+<PRE>
+protected void <B>mergeLabel</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> deLabel,
+ int geomIndex)</PRE>
+<DL>
+<DD>Merge the RHS label from a DirectedEdge into the label for this EdgeRing.
+ The DirectedEdge label may be null. This is acceptable - it results
+ from a node which is NOT an intersection node between the Geometries
+ (e.g. the end node of a LinearRing). In this case the DirectedEdge label
+ does not contribute any information to the overall labelling, and is simply skipped.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addPoints(com.vividsolutions.jts.geomgraph.Edge, boolean, boolean)"><!-- --></A><H3>
+addPoints</H3>
+<PRE>
+protected void <B>addPoints</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge,
+ boolean isForward,
+ boolean isFirstEdge)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="containsPoint(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+containsPoint</H3>
+<PRE>
+public boolean <B>containsPoint</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD>This method will cause the ring to be computed.
+ It will also check any holes, if they have been assigned.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/GeometryGraph.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/GeometryGraph.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/GeometryGraph.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,576 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+GeometryGraph
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.GeometryGraph class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GeometryGraph";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryGraph.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.PlanarGraph">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class GeometryGraph</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">com.vividsolutions.jts.geomgraph.PlanarGraph</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.GeometryGraph</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>GeometryGraph</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A></DL>
+
+<P>
+A GeometryGraph is a graph that models a given Geometry
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geomgraph.PlanarGraph"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#cga">cga</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#edgeEndList">edgeEndList</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#edges">edges</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#nodes">nodes</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html#GeometryGraph(int, com.vividsolutions.jts.geom.Geometry)">GeometryGraph</A></B>(int argIndex,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parentGeom)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html#GeometryGraph(int, com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)">GeometryGraph</A></B>(int argIndex,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parentGeom,
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html#addEdge(com.vividsolutions.jts.geomgraph.Edge)">addEdge</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</CODE>
+
+<BR>
+ Add an Edge computed externally.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html#addPoint(com.vividsolutions.jts.geom.Coordinate)">addPoint</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Add a point computed externally.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html#computeEdgeIntersections(com.vividsolutions.jts.geomgraph.GeometryGraph, com.vividsolutions.jts.algorithm.LineIntersector, boolean)">computeEdgeIntersections</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> g,
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li,
+ boolean includeProper)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html#computeSelfNodes(com.vividsolutions.jts.algorithm.LineIntersector, boolean)">computeSelfNodes</A></B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li,
+ boolean computeRingSelfNodes)</CODE>
+
+<BR>
+ Compute self-nodes, taking advantage of the Geometry type to
+ minimize the number of intersection tests.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html#computeSplitEdges(java.util.List)">computeSplitEdges</A></B>(java.util.List edgelist)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html#determineBoundary(com.vividsolutions.jts.algorithm.BoundaryNodeRule, int)">determineBoundary</A></B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule,
+ int boundaryCount)</CODE>
+
+<BR>
+ This method implements the Boundary Determination Rule
+ for determining whether
+ a component (node or edge) that appears multiple times in elements
+ of a MultiGeometry is in the boundary or the interior of the Geometry
+ <br>
+ The SFS uses the "Mod-2 Rule", which this function implements
+ <br>
+ An alternative (and possibly more intuitive) rule would be
+ the "At Most One Rule":
+ isInBoundary = (componentCount == 1)</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html#findEdge(com.vividsolutions.jts.geom.LineString)">findEdge</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> line)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html#getBoundaryNodeRule()">getBoundaryNodeRule</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html#getBoundaryNodes()">getBoundaryNodes</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html#getBoundaryPoints()">getBoundaryPoints</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html#getGeometry()">getGeometry</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html#getInvalidPoint()">getInvalidPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html#hasTooFewPoints()">hasTooFewPoints</A></B>()</CODE>
+
+<BR>
+ This constructor is used by clients that wish to add Edges explicitly,
+ rather than adding a Geometry.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geomgraph.PlanarGraph"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#add(com.vividsolutions.jts.geomgraph.EdgeEnd)">add</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#addEdges(java.util.List)">addEdges</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#addNode(com.vividsolutions.jts.geom.Coordinate)">addNode</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#addNode(com.vividsolutions.jts.geomgraph.Node)">addNode</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#find(com.vividsolutions.jts.geom.Coordinate)">find</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#findEdge(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">findEdge</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#findEdgeEnd(com.vividsolutions.jts.geomgraph.Edge)">findEdgeEnd</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#findEdgeInSameDirection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">findEdgeInSameDirection</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#getEdgeEnds()">getEdgeEnds</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#getEdgeIterator()">getEdgeIterator</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#getNodeIterator()">getNodeIterator</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#getNodes()">getNodes</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#insertEdge(com.vividsolutions.jts.geomgraph.Edge)">insertEdge</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#isBoundaryNode(int, com.vividsolutions.jts.geom.Coordinate)">isBoundaryNode</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#linkAllDirectedEdges()">linkAllDirectedEdges</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#linkResultDirectedEdges()">linkResultDirectedEdges</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#linkResultDirectedEdges(java.util.Collection)">linkResultDirectedEdges</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#printEdges(java.io.PrintStream)">printEdges</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GeometryGraph(int, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+GeometryGraph</H3>
+<PRE>
+public <B>GeometryGraph</B>(int argIndex,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parentGeom)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="GeometryGraph(int, com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><!-- --></A><H3>
+GeometryGraph</H3>
+<PRE>
+public <B>GeometryGraph</B>(int argIndex,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parentGeom,
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="determineBoundary(com.vividsolutions.jts.algorithm.BoundaryNodeRule, int)"><!-- --></A><H3>
+determineBoundary</H3>
+<PRE>
+public static int <B>determineBoundary</B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule,
+ int boundaryCount)</PRE>
+<DL>
+<DD>This method implements the Boundary Determination Rule
+ for determining whether
+ a component (node or edge) that appears multiple times in elements
+ of a MultiGeometry is in the boundary or the interior of the Geometry
+ <br>
+ The SFS uses the "Mod-2 Rule", which this function implements
+ <br>
+ An alternative (and possibly more intuitive) rule would be
+ the "At Most One Rule":
+ isInBoundary = (componentCount == 1)
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasTooFewPoints()"><!-- --></A><H3>
+hasTooFewPoints</H3>
+<PRE>
+public boolean <B>hasTooFewPoints</B>()</PRE>
+<DL>
+<DD>This constructor is used by clients that wish to add Edges explicitly,
+ rather than adding a Geometry. (An example is BufferOp).
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInvalidPoint()"><!-- --></A><H3>
+getInvalidPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getInvalidPoint</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGeometry()"><!-- --></A><H3>
+getGeometry</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getGeometry</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundaryNodeRule()"><!-- --></A><H3>
+getBoundaryNodeRule</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> <B>getBoundaryNodeRule</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundaryNodes()"><!-- --></A><H3>
+getBoundaryNodes</H3>
+<PRE>
+public java.util.Collection <B>getBoundaryNodes</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundaryPoints()"><!-- --></A><H3>
+getBoundaryPoints</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>getBoundaryPoints</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findEdge(com.vividsolutions.jts.geom.LineString)"><!-- --></A><H3>
+findEdge</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> <B>findEdge</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> line)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeSplitEdges(java.util.List)"><!-- --></A><H3>
+computeSplitEdges</H3>
+<PRE>
+public void <B>computeSplitEdges</B>(java.util.List edgelist)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addEdge(com.vividsolutions.jts.geomgraph.Edge)"><!-- --></A><H3>
+addEdge</H3>
+<PRE>
+public void <B>addEdge</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</PRE>
+<DL>
+<DD>Add an Edge computed externally. The label on the Edge is assumed
+ to be correct.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addPoint(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+addPoint</H3>
+<PRE>
+public void <B>addPoint</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Add a point computed externally. The point is assumed to be a
+ Point Geometry part, which has a location of INTERIOR.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeSelfNodes(com.vividsolutions.jts.algorithm.LineIntersector, boolean)"><!-- --></A><H3>
+computeSelfNodes</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> <B>computeSelfNodes</B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li,
+ boolean computeRingSelfNodes)</PRE>
+<DL>
+<DD>Compute self-nodes, taking advantage of the Geometry type to
+ minimize the number of intersection tests. (E.g. rings are
+ not tested for self-intersection, since they are assumed to be valid).
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>li</CODE> - the LineIntersector to use<DD><CODE>computeRingSelfNodes</CODE> - if <false>, intersection checks are optimized to not test rings for self-intersection
+<DT><B>Returns:</B><DD>the SegmentIntersector used, containing information about the intersections found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeEdgeIntersections(com.vividsolutions.jts.geomgraph.GeometryGraph, com.vividsolutions.jts.algorithm.LineIntersector, boolean)"><!-- --></A><H3>
+computeEdgeIntersections</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> <B>computeEdgeIntersections</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> g,
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li,
+ boolean includeProper)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryGraph.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.PlanarGraph">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/GraphComponent.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/GraphComponent.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/GraphComponent.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,548 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+GraphComponent
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.GraphComponent class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GraphComponent";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GraphComponent.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class GraphComponent</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.GraphComponent</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public abstract class <B>GraphComponent</B><DT>extends java.lang.Object</DL>
+
+<P>
+A GraphComponent is the parent class for the objects'
+ that form a graph. Each GraphComponent can carry a
+ Label.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#label">label</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#GraphComponent()">GraphComponent</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#GraphComponent(com.vividsolutions.jts.geomgraph.Label)">GraphComponent</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected abstract void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#computeIM(com.vividsolutions.jts.geom.IntersectionMatrix)">computeIM</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> im)</CODE>
+
+<BR>
+ compute the contribution to an IM for this component</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#getLabel()">getLabel</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isCovered()">isCovered</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isCoveredSet()">isCoveredSet</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isInResult()">isInResult</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isIsolated()">isIsolated</A></B>()</CODE>
+
+<BR>
+ An isolated component is one that does not intersect or touch any other
+ component.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isVisited()">isVisited</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setCovered(boolean)">setCovered</A></B>(boolean isCovered)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setInResult(boolean)">setInResult</A></B>(boolean isInResult)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setLabel(com.vividsolutions.jts.geomgraph.Label)">setLabel</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setVisited(boolean)">setVisited</A></B>(boolean isVisited)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#updateIM(com.vividsolutions.jts.geom.IntersectionMatrix)">updateIM</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> im)</CODE>
+
+<BR>
+ Update the IM with the contribution for this component.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="label"><!-- --></A><H3>
+label</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> <B>label</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GraphComponent()"><!-- --></A><H3>
+GraphComponent</H3>
+<PRE>
+public <B>GraphComponent</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="GraphComponent(com.vividsolutions.jts.geomgraph.Label)"><!-- --></A><H3>
+GraphComponent</H3>
+<PRE>
+public <B>GraphComponent</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getLabel()"><!-- --></A><H3>
+getLabel</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> <B>getLabel</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLabel(com.vividsolutions.jts.geomgraph.Label)"><!-- --></A><H3>
+setLabel</H3>
+<PRE>
+public void <B>setLabel</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setInResult(boolean)"><!-- --></A><H3>
+setInResult</H3>
+<PRE>
+public void <B>setInResult</B>(boolean isInResult)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isInResult()"><!-- --></A><H3>
+isInResult</H3>
+<PRE>
+public boolean <B>isInResult</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setCovered(boolean)"><!-- --></A><H3>
+setCovered</H3>
+<PRE>
+public void <B>setCovered</B>(boolean isCovered)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCovered()"><!-- --></A><H3>
+isCovered</H3>
+<PRE>
+public boolean <B>isCovered</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCoveredSet()"><!-- --></A><H3>
+isCoveredSet</H3>
+<PRE>
+public boolean <B>isCoveredSet</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isVisited()"><!-- --></A><H3>
+isVisited</H3>
+<PRE>
+public boolean <B>isVisited</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setVisited(boolean)"><!-- --></A><H3>
+setVisited</H3>
+<PRE>
+public void <B>setVisited</B>(boolean isVisited)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public abstract <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a coordinate in this component (or null, if there are none)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIM(com.vividsolutions.jts.geom.IntersectionMatrix)"><!-- --></A><H3>
+computeIM</H3>
+<PRE>
+protected abstract void <B>computeIM</B>(<A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> im)</PRE>
+<DL>
+<DD>compute the contribution to an IM for this component
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isIsolated()"><!-- --></A><H3>
+isIsolated</H3>
+<PRE>
+public abstract boolean <B>isIsolated</B>()</PRE>
+<DL>
+<DD>An isolated component is one that does not intersect or touch any other
+ component. This is the case if the label has valid locations for
+ only a single Geometry.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if this component is isolated</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="updateIM(com.vividsolutions.jts.geom.IntersectionMatrix)"><!-- --></A><H3>
+updateIM</H3>
+<PRE>
+public void <B>updateIM</B>(<A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> im)</PRE>
+<DL>
+<DD>Update the IM with the contribution for this component.
+ A component only contributes if it has a labelling for both parent geometries
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GraphComponent.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Label.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Label.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Label.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,741 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Label
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.Label class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Label";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Label.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class Label</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.Label</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Label</B><DT>extends java.lang.Object</DL>
+
+<P>
+A <code>Label</code> indicates the topological relationship of a component
+ of a topology graph to a given <code>Geometry</code>.
+ This class supports labels for relationships to two <code>Geometry</code>s,
+ which is sufficient for algorithms for binary operations.
+ <P>
+ Topology graphs support the concept of labeling nodes and edges in the graph.
+ The label of a node or edge specifies its topological relationship to one or
+ more geometries. (In fact, since JTS operations have only two arguments labels
+ are required for only two geometries). A label for a node or edge has one or
+ two elements, depending on whether the node or edge occurs in one or both of the
+ input <code>Geometry</code>s. Elements contain attributes which categorize the
+ topological location of the node or edge relative to the parent
+ <code>Geometry</code>; that is, whether the node or edge is in the interior,
+ boundary or exterior of the <code>Geometry</code>. Attributes have a value
+ from the set <code>{Interior, Boundary, Exterior}</code>. In a node each
+ element has a single attribute <code><On></code>. For an edge each element has a
+ triplet of attributes <code><Left, On, Right></code>.
+ <P>
+ It is up to the client code to associate the 0 and 1 <code>TopologyLocation</code>s
+ with specific geometries.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#Label(int)">Label</A></B>(int onLoc)</CODE>
+
+<BR>
+ Construct a Label with a single location for both Geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#Label(int, int)">Label</A></B>(int geomIndex,
+ int onLoc)</CODE>
+
+<BR>
+ Construct a Label with a single location for both Geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#Label(int, int, int)">Label</A></B>(int onLoc,
+ int leftLoc,
+ int rightLoc)</CODE>
+
+<BR>
+ Construct a Label with On, Left and Right locations for both Geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#Label(int, int, int, int)">Label</A></B>(int geomIndex,
+ int onLoc,
+ int leftLoc,
+ int rightLoc)</CODE>
+
+<BR>
+ Construct a Label with On, Left and Right locations for both Geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#Label(com.vividsolutions.jts.geomgraph.Label)">Label</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> lbl)</CODE>
+
+<BR>
+ Construct a Label with the same values as the argument Label.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#allPositionsEqual(int, int)">allPositionsEqual</A></B>(int geomIndex,
+ int loc)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#flip()">flip</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#getGeometryCount()">getGeometryCount</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#getLocation(int)">getLocation</A></B>(int geomIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#getLocation(int, int)">getLocation</A></B>(int geomIndex,
+ int posIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#isAnyNull(int)">isAnyNull</A></B>(int geomIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#isArea()">isArea</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#isArea(int)">isArea</A></B>(int geomIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#isEqualOnSide(com.vividsolutions.jts.geomgraph.Label, int)">isEqualOnSide</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> lbl,
+ int side)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#isLine(int)">isLine</A></B>(int geomIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#isNull(int)">isNull</A></B>(int geomIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#merge(com.vividsolutions.jts.geomgraph.Label)">merge</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> lbl)</CODE>
+
+<BR>
+ Merge this label with another one.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#setAllLocations(int, int)">setAllLocations</A></B>(int geomIndex,
+ int location)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#setAllLocationsIfNull(int)">setAllLocationsIfNull</A></B>(int location)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#setAllLocationsIfNull(int, int)">setAllLocationsIfNull</A></B>(int geomIndex,
+ int location)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#setLocation(int, int)">setLocation</A></B>(int geomIndex,
+ int location)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#setLocation(int, int, int)">setLocation</A></B>(int geomIndex,
+ int posIndex,
+ int location)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#toLine(int)">toLine</A></B>(int geomIndex)</CODE>
+
+<BR>
+ Converts one GeometryLocation to a Line location</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#toLineLabel(com.vividsolutions.jts.geomgraph.Label)">toLineLabel</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Label(int)"><!-- --></A><H3>
+Label</H3>
+<PRE>
+public <B>Label</B>(int onLoc)</PRE>
+<DL>
+<DD>Construct a Label with a single location for both Geometries.
+ Initialize the locations to Null
+<P>
+</DL>
+<HR>
+
+<A NAME="Label(int, int)"><!-- --></A><H3>
+Label</H3>
+<PRE>
+public <B>Label</B>(int geomIndex,
+ int onLoc)</PRE>
+<DL>
+<DD>Construct a Label with a single location for both Geometries.
+ Initialize the location for the Geometry index.
+<P>
+</DL>
+<HR>
+
+<A NAME="Label(int, int, int)"><!-- --></A><H3>
+Label</H3>
+<PRE>
+public <B>Label</B>(int onLoc,
+ int leftLoc,
+ int rightLoc)</PRE>
+<DL>
+<DD>Construct a Label with On, Left and Right locations for both Geometries.
+ Initialize the locations for both Geometries to the given values.
+<P>
+</DL>
+<HR>
+
+<A NAME="Label(int, int, int, int)"><!-- --></A><H3>
+Label</H3>
+<PRE>
+public <B>Label</B>(int geomIndex,
+ int onLoc,
+ int leftLoc,
+ int rightLoc)</PRE>
+<DL>
+<DD>Construct a Label with On, Left and Right locations for both Geometries.
+ Initialize the locations for the given Geometry index.
+<P>
+</DL>
+<HR>
+
+<A NAME="Label(com.vividsolutions.jts.geomgraph.Label)"><!-- --></A><H3>
+Label</H3>
+<PRE>
+public <B>Label</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> lbl)</PRE>
+<DL>
+<DD>Construct a Label with the same values as the argument Label.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="toLineLabel(com.vividsolutions.jts.geomgraph.Label)"><!-- --></A><H3>
+toLineLabel</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> <B>toLineLabel</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="flip()"><!-- --></A><H3>
+flip</H3>
+<PRE>
+public void <B>flip</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLocation(int, int)"><!-- --></A><H3>
+getLocation</H3>
+<PRE>
+public int <B>getLocation</B>(int geomIndex,
+ int posIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLocation(int)"><!-- --></A><H3>
+getLocation</H3>
+<PRE>
+public int <B>getLocation</B>(int geomIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLocation(int, int, int)"><!-- --></A><H3>
+setLocation</H3>
+<PRE>
+public void <B>setLocation</B>(int geomIndex,
+ int posIndex,
+ int location)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLocation(int, int)"><!-- --></A><H3>
+setLocation</H3>
+<PRE>
+public void <B>setLocation</B>(int geomIndex,
+ int location)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAllLocations(int, int)"><!-- --></A><H3>
+setAllLocations</H3>
+<PRE>
+public void <B>setAllLocations</B>(int geomIndex,
+ int location)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAllLocationsIfNull(int, int)"><!-- --></A><H3>
+setAllLocationsIfNull</H3>
+<PRE>
+public void <B>setAllLocationsIfNull</B>(int geomIndex,
+ int location)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAllLocationsIfNull(int)"><!-- --></A><H3>
+setAllLocationsIfNull</H3>
+<PRE>
+public void <B>setAllLocationsIfNull</B>(int location)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="merge(com.vividsolutions.jts.geomgraph.Label)"><!-- --></A><H3>
+merge</H3>
+<PRE>
+public void <B>merge</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> lbl)</PRE>
+<DL>
+<DD>Merge this label with another one.
+ Merging updates any null attributes of this label with the attributes from lbl
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGeometryCount()"><!-- --></A><H3>
+getGeometryCount</H3>
+<PRE>
+public int <B>getGeometryCount</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isNull(int)"><!-- --></A><H3>
+isNull</H3>
+<PRE>
+public boolean <B>isNull</B>(int geomIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isAnyNull(int)"><!-- --></A><H3>
+isAnyNull</H3>
+<PRE>
+public boolean <B>isAnyNull</B>(int geomIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isArea()"><!-- --></A><H3>
+isArea</H3>
+<PRE>
+public boolean <B>isArea</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isArea(int)"><!-- --></A><H3>
+isArea</H3>
+<PRE>
+public boolean <B>isArea</B>(int geomIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isLine(int)"><!-- --></A><H3>
+isLine</H3>
+<PRE>
+public boolean <B>isLine</B>(int geomIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEqualOnSide(com.vividsolutions.jts.geomgraph.Label, int)"><!-- --></A><H3>
+isEqualOnSide</H3>
+<PRE>
+public boolean <B>isEqualOnSide</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> lbl,
+ int side)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="allPositionsEqual(int, int)"><!-- --></A><H3>
+allPositionsEqual</H3>
+<PRE>
+public boolean <B>allPositionsEqual</B>(int geomIndex,
+ int loc)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toLine(int)"><!-- --></A><H3>
+toLine</H3>
+<PRE>
+public void <B>toLine</B>(int geomIndex)</PRE>
+<DL>
+<DD>Converts one GeometryLocation to a Line location
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Label.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Node.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Node.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Node.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,557 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Node
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.Node class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Node";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Node.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class Node</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">com.vividsolutions.jts.geomgraph.GraphComponent</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.Node</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate">RelateNode</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>Node</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></DL>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html#coord">coord</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html#edges">edges</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geomgraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#label">label</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html#Node(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geomgraph.EdgeEndStar)">Node</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord,
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A> edges)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html#add(com.vividsolutions.jts.geomgraph.EdgeEnd)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</CODE>
+
+<BR>
+ Add the edge to the list of edges at this node</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html#computeIM(com.vividsolutions.jts.geom.IntersectionMatrix)">computeIM</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> im)</CODE>
+
+<BR>
+ Basic nodes do not compute IMs</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html#getEdges()">getEdges</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html#isIncidentEdgeInResult()">isIncidentEdgeInResult</A></B>()</CODE>
+
+<BR>
+ Tests whether any incident edge is flagged as
+ being in the result.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html#isIsolated()">isIsolated</A></B>()</CODE>
+
+<BR>
+ An isolated component is one that does not intersect or touch any other
+ component.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html#mergeLabel(com.vividsolutions.jts.geomgraph.Label)">mergeLabel</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label2)</CODE>
+
+<BR>
+ To merge labels for two nodes,
+ the merged location for each LabelElement is computed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html#mergeLabel(com.vividsolutions.jts.geomgraph.Node)">mergeLabel</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> n)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html#print(java.io.PrintStream)">print</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html#setLabel(int, int)">setLabel</A></B>(int argIndex,
+ int onLocation)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html#setLabelBoundary(int)">setLabelBoundary</A></B>(int argIndex)</CODE>
+
+<BR>
+ Updates the label of a node to BOUNDARY,
+ obeying the mod-2 boundaryDetermination rule.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geomgraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#getLabel()">getLabel</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isCovered()">isCovered</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isCoveredSet()">isCoveredSet</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isInResult()">isInResult</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isVisited()">isVisited</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setCovered(boolean)">setCovered</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setInResult(boolean)">setInResult</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setLabel(com.vividsolutions.jts.geomgraph.Label)">setLabel</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setVisited(boolean)">setVisited</A>, <A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#updateIM(com.vividsolutions.jts.geom.IntersectionMatrix)">updateIM</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="coord"><!-- --></A><H3>
+coord</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>coord</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="edges"><!-- --></A><H3>
+edges</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A> <B>edges</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Node(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geomgraph.EdgeEndStar)"><!-- --></A><H3>
+Node</H3>
+<PRE>
+public <B>Node</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord,
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A> edges)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#getCoordinate()">getCoordinate</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a coordinate in this component (or null, if there are none)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdges()"><!-- --></A><H3>
+getEdges</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A> <B>getEdges</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isIncidentEdgeInResult()"><!-- --></A><H3>
+isIncidentEdgeInResult</H3>
+<PRE>
+public boolean <B>isIncidentEdgeInResult</B>()</PRE>
+<DL>
+<DD>Tests whether any incident edge is flagged as
+ being in the result.
+ This test can be used to determine if the node is in the result,
+ since if any incident edge is in the result, the node must be in the result as well.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if any indicident edge in the in the result</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isIsolated()"><!-- --></A><H3>
+isIsolated</H3>
+<PRE>
+public boolean <B>isIsolated</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></CODE></B></DD>
+<DD>An isolated component is one that does not intersect or touch any other
+ component. This is the case if the label has valid locations for
+ only a single Geometry.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isIsolated()">isIsolated</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if this component is isolated</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIM(com.vividsolutions.jts.geom.IntersectionMatrix)"><!-- --></A><H3>
+computeIM</H3>
+<PRE>
+protected void <B>computeIM</B>(<A HREF="../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> im)</PRE>
+<DL>
+<DD>Basic nodes do not compute IMs
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#computeIM(com.vividsolutions.jts.geom.IntersectionMatrix)">computeIM</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geomgraph.EdgeEnd)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</PRE>
+<DL>
+<DD>Add the edge to the list of edges at this node
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="mergeLabel(com.vividsolutions.jts.geomgraph.Node)"><!-- --></A><H3>
+mergeLabel</H3>
+<PRE>
+public void <B>mergeLabel</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> n)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="mergeLabel(com.vividsolutions.jts.geomgraph.Label)"><!-- --></A><H3>
+mergeLabel</H3>
+<PRE>
+public void <B>mergeLabel</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label2)</PRE>
+<DL>
+<DD>To merge labels for two nodes,
+ the merged location for each LabelElement is computed.
+ The location for the corresponding node LabelElement is set to the result,
+ as long as the location is non-null.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLabel(int, int)"><!-- --></A><H3>
+setLabel</H3>
+<PRE>
+public void <B>setLabel</B>(int argIndex,
+ int onLocation)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLabelBoundary(int)"><!-- --></A><H3>
+setLabelBoundary</H3>
+<PRE>
+public void <B>setLabelBoundary</B>(int argIndex)</PRE>
+<DL>
+<DD>Updates the label of a node to BOUNDARY,
+ obeying the mod-2 boundaryDetermination rule.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.io.PrintStream)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public void <B>print</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Node.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/NodeFactory.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/NodeFactory.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/NodeFactory.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+NodeFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.NodeFactory class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="NodeFactory";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NodeFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class NodeFactory</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.NodeFactory</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayNodeFactory</A>, <A HREF="../../../../com/vividsolutions/jts/operation/relate/RelateNodeFactory.html" title="class in com.vividsolutions.jts.operation.relate">RelateNodeFactory</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>NodeFactory</B><DT>extends java.lang.Object</DL>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html#NodeFactory()">NodeFactory</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html#createNode(com.vividsolutions.jts.geom.Coordinate)">createNode</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ The basic node constructor does not allow for incident edges</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="NodeFactory()"><!-- --></A><H3>
+NodeFactory</H3>
+<PRE>
+public <B>NodeFactory</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="createNode(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+createNode</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> <B>createNode</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD>The basic node constructor does not allow for incident edges
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NodeFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/NodeMap.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/NodeMap.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/NodeMap.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,399 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+NodeMap
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.NodeMap class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="NodeMap";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NodeMap.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class NodeMap</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.NodeMap</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>NodeMap</B><DT>extends java.lang.Object</DL>
+
+<P>
+A map of nodes, indexed by the coordinate of the node
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html#NodeMap(com.vividsolutions.jts.geomgraph.NodeFactory)">NodeMap</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">NodeFactory</A> nodeFact)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html#add(com.vividsolutions.jts.geomgraph.EdgeEnd)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</CODE>
+
+<BR>
+ Adds a node for the start point of this EdgeEnd
+ (if one does not already exist in this map).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html#addNode(com.vividsolutions.jts.geom.Coordinate)">addNode</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ This method expects that a node has a coordinate value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html#addNode(com.vividsolutions.jts.geomgraph.Node)">addNode</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> n)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html#find(com.vividsolutions.jts.geom.Coordinate)">find</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html#getBoundaryNodes(int)">getBoundaryNodes</A></B>(int geomIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html#iterator()">iterator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html#print(java.io.PrintStream)">print</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html#values()">values</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="NodeMap(com.vividsolutions.jts.geomgraph.NodeFactory)"><!-- --></A><H3>
+NodeMap</H3>
+<PRE>
+public <B>NodeMap</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">NodeFactory</A> nodeFact)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="addNode(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+addNode</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> <B>addNode</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD>This method expects that a node has a coordinate value.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addNode(com.vividsolutions.jts.geomgraph.Node)"><!-- --></A><H3>
+addNode</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> <B>addNode</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> n)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geomgraph.EdgeEnd)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</PRE>
+<DL>
+<DD>Adds a node for the start point of this EdgeEnd
+ (if one does not already exist in this map).
+ Adds the EdgeEnd to the (possibly new) node.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="find(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+find</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> <B>find</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the node if found; null otherwise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="iterator()"><!-- --></A><H3>
+iterator</H3>
+<PRE>
+public java.util.Iterator <B>iterator</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="values()"><!-- --></A><H3>
+values</H3>
+<PRE>
+public java.util.Collection <B>values</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBoundaryNodes(int)"><!-- --></A><H3>
+getBoundaryNodes</H3>
+<PRE>
+public java.util.Collection <B>getBoundaryNodes</B>(int geomIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.io.PrintStream)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public void <B>print</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NodeMap.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/PlanarGraph.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/PlanarGraph.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/PlanarGraph.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,735 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+PlanarGraph
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.PlanarGraph class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="PlanarGraph";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PlanarGraph.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class PlanarGraph</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.PlanarGraph</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>PlanarGraph</B><DT>extends java.lang.Object</DL>
+
+<P>
+The computation of the <code>IntersectionMatrix</code> relies on the use of a structure
+ called a "topology graph". The topology graph contains nodes and edges
+ corresponding to the nodes and line segments of a <code>Geometry</code>. Each
+ node and edge in the graph is labeled with its topological location relative to
+ the source geometry.
+ <P>
+ Note that there is no requirement that points of self-intersection be a vertex.
+ Thus to obtain a correct topology graph, <code>Geometry</code>s must be
+ self-noded before constructing their graphs.
+ <P>
+ Two fundamental operations are supported by topology graphs:
+ <UL>
+ <LI>Computing the intersections between all the edges and nodes of a single graph
+ <LI>Computing the intersections between the edges and nodes of two different graphs
+ </UL>
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#cga">cga</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#edgeEndList">edgeEndList</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#edges">edges</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph">NodeMap</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#nodes">nodes</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#PlanarGraph()">PlanarGraph</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#PlanarGraph(com.vividsolutions.jts.geomgraph.NodeFactory)">PlanarGraph</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">NodeFactory</A> nodeFact)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#add(com.vividsolutions.jts.geomgraph.EdgeEnd)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#addEdges(java.util.List)">addEdges</A></B>(java.util.List edgesToAdd)</CODE>
+
+<BR>
+ Add a set of edges to the graph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#addNode(com.vividsolutions.jts.geom.Coordinate)">addNode</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#addNode(com.vividsolutions.jts.geomgraph.Node)">addNode</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> node)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#find(com.vividsolutions.jts.geom.Coordinate)">find</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#findEdge(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">findEdge</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ Returns the edge whose first two coordinates are p0 and p1</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#findEdgeEnd(com.vividsolutions.jts.geomgraph.Edge)">findEdgeEnd</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</CODE>
+
+<BR>
+ Returns the EdgeEnd which has edge e as its base edge
+ (MD 18 Feb 2002 - this should return a pair of edges)</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#findEdgeInSameDirection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">findEdgeInSameDirection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ Returns the edge which starts at p0 and whose first segment is
+ parallel to p1</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#getEdgeEnds()">getEdgeEnds</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#getEdgeIterator()">getEdgeIterator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#getNodeIterator()">getNodeIterator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#getNodes()">getNodes</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#insertEdge(com.vividsolutions.jts.geomgraph.Edge)">insertEdge</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#isBoundaryNode(int, com.vividsolutions.jts.geom.Coordinate)">isBoundaryNode</A></B>(int geomIndex,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#linkAllDirectedEdges()">linkAllDirectedEdges</A></B>()</CODE>
+
+<BR>
+ Link the DirectedEdges at the nodes of the graph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#linkResultDirectedEdges()">linkResultDirectedEdges</A></B>()</CODE>
+
+<BR>
+ Link the DirectedEdges at the nodes of the graph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#linkResultDirectedEdges(java.util.Collection)">linkResultDirectedEdges</A></B>(java.util.Collection nodes)</CODE>
+
+<BR>
+ For nodes in the Collection, link the DirectedEdges at the node that are in the result.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html#printEdges(java.io.PrintStream)">printEdges</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="cga"><!-- --></A><H3>
+cga</H3>
+<PRE>
+public static final <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> <B>cga</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="edges"><!-- --></A><H3>
+edges</H3>
+<PRE>
+protected java.util.List <B>edges</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="nodes"><!-- --></A><H3>
+nodes</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph">NodeMap</A> <B>nodes</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="edgeEndList"><!-- --></A><H3>
+edgeEndList</H3>
+<PRE>
+protected java.util.List <B>edgeEndList</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="PlanarGraph(com.vividsolutions.jts.geomgraph.NodeFactory)"><!-- --></A><H3>
+PlanarGraph</H3>
+<PRE>
+public <B>PlanarGraph</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">NodeFactory</A> nodeFact)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="PlanarGraph()"><!-- --></A><H3>
+PlanarGraph</H3>
+<PRE>
+public <B>PlanarGraph</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="linkResultDirectedEdges(java.util.Collection)"><!-- --></A><H3>
+linkResultDirectedEdges</H3>
+<PRE>
+public static void <B>linkResultDirectedEdges</B>(java.util.Collection nodes)</PRE>
+<DL>
+<DD>For nodes in the Collection, link the DirectedEdges at the node that are in the result.
+ This allows clients to link only a subset of nodes in the graph, for
+ efficiency (because they know that only a subset is of interest).
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdgeIterator()"><!-- --></A><H3>
+getEdgeIterator</H3>
+<PRE>
+public java.util.Iterator <B>getEdgeIterator</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdgeEnds()"><!-- --></A><H3>
+getEdgeEnds</H3>
+<PRE>
+public java.util.Collection <B>getEdgeEnds</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isBoundaryNode(int, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+isBoundaryNode</H3>
+<PRE>
+public boolean <B>isBoundaryNode</B>(int geomIndex,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="insertEdge(com.vividsolutions.jts.geomgraph.Edge)"><!-- --></A><H3>
+insertEdge</H3>
+<PRE>
+protected void <B>insertEdge</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geomgraph.EdgeEnd)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNodeIterator()"><!-- --></A><H3>
+getNodeIterator</H3>
+<PRE>
+public java.util.Iterator <B>getNodeIterator</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNodes()"><!-- --></A><H3>
+getNodes</H3>
+<PRE>
+public java.util.Collection <B>getNodes</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addNode(com.vividsolutions.jts.geomgraph.Node)"><!-- --></A><H3>
+addNode</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> <B>addNode</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> node)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addNode(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+addNode</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> <B>addNode</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="find(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+find</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> <B>find</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the node if found; null otherwise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addEdges(java.util.List)"><!-- --></A><H3>
+addEdges</H3>
+<PRE>
+public void <B>addEdges</B>(java.util.List edgesToAdd)</PRE>
+<DL>
+<DD>Add a set of edges to the graph. For each edge two DirectedEdges
+ will be created. DirectedEdges are NOT linked by this method.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="linkResultDirectedEdges()"><!-- --></A><H3>
+linkResultDirectedEdges</H3>
+<PRE>
+public void <B>linkResultDirectedEdges</B>()</PRE>
+<DL>
+<DD>Link the DirectedEdges at the nodes of the graph.
+ This allows clients to link only a subset of nodes in the graph, for
+ efficiency (because they know that only a subset is of interest).
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="linkAllDirectedEdges()"><!-- --></A><H3>
+linkAllDirectedEdges</H3>
+<PRE>
+public void <B>linkAllDirectedEdges</B>()</PRE>
+<DL>
+<DD>Link the DirectedEdges at the nodes of the graph.
+ This allows clients to link only a subset of nodes in the graph, for
+ efficiency (because they know that only a subset is of interest).
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findEdgeEnd(com.vividsolutions.jts.geomgraph.Edge)"><!-- --></A><H3>
+findEdgeEnd</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> <B>findEdgeEnd</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</PRE>
+<DL>
+<DD>Returns the EdgeEnd which has edge e as its base edge
+ (MD 18 Feb 2002 - this should return a pair of edges)
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the edge, if found
+ <code>null</code> if the edge was not found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findEdge(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+findEdge</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> <B>findEdge</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+<DD>Returns the edge whose first two coordinates are p0 and p1
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the edge, if found
+ <code>null</code> if the edge was not found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findEdgeInSameDirection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+findEdgeInSameDirection</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> <B>findEdgeInSameDirection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+<DD>Returns the edge which starts at p0 and whose first segment is
+ parallel to p1
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the edge, if found
+ <code>null</code> if the edge was not found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="printEdges(java.io.PrintStream)"><!-- --></A><H3>
+printEdges</H3>
+<PRE>
+public void <B>printEdges</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PlanarGraph.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Position.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Position.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Position.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,336 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Position
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.Position class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Position";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Position.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class Position</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.Position</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Position</B><DT>extends java.lang.Object</DL>
+
+<P>
+A Position indicates the position of a Location relative to a graph component
+ (Node, Edge, or Area).
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Position.html#LEFT">LEFT</A></B></CODE>
+
+<BR>
+ An indicator that a Location is to the <i>left</i> of a GraphComponent</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Position.html#ON">ON</A></B></CODE>
+
+<BR>
+ An indicator that a Location is <i>on</i> a GraphComponent</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Position.html#RIGHT">RIGHT</A></B></CODE>
+
+<BR>
+ An indicator that a Location is to the <i>right</i> of a GraphComponent</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Position.html#Position()">Position</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Position.html#opposite(int)">opposite</A></B>(int position)</CODE>
+
+<BR>
+ Returns LEFT if the position is RIGHT, RIGHT if the position is LEFT, or the position
+ otherwise.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ON"><!-- --></A><H3>
+ON</H3>
+<PRE>
+public static final int <B>ON</B></PRE>
+<DL>
+<DD>An indicator that a Location is <i>on</i> a GraphComponent
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geomgraph.Position.ON">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="LEFT"><!-- --></A><H3>
+LEFT</H3>
+<PRE>
+public static final int <B>LEFT</B></PRE>
+<DL>
+<DD>An indicator that a Location is to the <i>left</i> of a GraphComponent
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geomgraph.Position.LEFT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="RIGHT"><!-- --></A><H3>
+RIGHT</H3>
+<PRE>
+public static final int <B>RIGHT</B></PRE>
+<DL>
+<DD>An indicator that a Location is to the <i>right</i> of a GraphComponent
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.geomgraph.Position.RIGHT">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Position()"><!-- --></A><H3>
+Position</H3>
+<PRE>
+public <B>Position</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="opposite(int)"><!-- --></A><H3>
+opposite</H3>
+<PRE>
+public static final int <B>opposite</B>(int position)</PRE>
+<DL>
+<DD>Returns LEFT if the position is RIGHT, RIGHT if the position is LEFT, or the position
+ otherwise.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Position.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Quadrant.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Quadrant.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/Quadrant.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,386 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Quadrant
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.Quadrant class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Quadrant";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Quadrant.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class Quadrant</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.Quadrant</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Quadrant</B><DT>extends java.lang.Object</DL>
+
+<P>
+Utility functions for working with quadrants, which are numbered as follows:
+ <pre>
+ 1 | 0
+ --+--
+ 2 | 3
+ <pre>
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Quadrant.html#Quadrant()">Quadrant</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Quadrant.html#commonHalfPlane(int, int)">commonHalfPlane</A></B>(int quad1,
+ int quad2)</CODE>
+
+<BR>
+ Returns the right-hand quadrant of the halfplane defined by the two quadrants,
+ or -1 if the quadrants are opposite, or the quadrant if they are identical.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Quadrant.html#isInHalfPlane(int, int)">isInHalfPlane</A></B>(int quad,
+ int halfPlane)</CODE>
+
+<BR>
+ Returns whether the given quadrant lies within the given halfplane (specified
+ by its right-hand quadrant).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Quadrant.html#isNorthern(int)">isNorthern</A></B>(int quad)</CODE>
+
+<BR>
+ Returns true if the given quadrant is 0 or 1.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Quadrant.html#isOpposite(int, int)">isOpposite</A></B>(int quad1,
+ int quad2)</CODE>
+
+<BR>
+ Returns true if the quadrants are 1 and 3, or 2 and 4</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Quadrant.html#quadrant(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">quadrant</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ Returns the quadrant of a directed line segment from p0 to p1.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Quadrant.html#quadrant(double, double)">quadrant</A></B>(double dx,
+ double dy)</CODE>
+
+<BR>
+ Returns the quadrant of a directed line segment (specified as x and y
+ displacements, which cannot both be 0).</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Quadrant()"><!-- --></A><H3>
+Quadrant</H3>
+<PRE>
+public <B>Quadrant</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="quadrant(double, double)"><!-- --></A><H3>
+quadrant</H3>
+<PRE>
+public static int <B>quadrant</B>(double dx,
+ double dy)</PRE>
+<DL>
+<DD>Returns the quadrant of a directed line segment (specified as x and y
+ displacements, which cannot both be 0).
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="quadrant(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+quadrant</H3>
+<PRE>
+public static int <B>quadrant</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+<DD>Returns the quadrant of a directed line segment from p0 to p1.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isOpposite(int, int)"><!-- --></A><H3>
+isOpposite</H3>
+<PRE>
+public static boolean <B>isOpposite</B>(int quad1,
+ int quad2)</PRE>
+<DL>
+<DD>Returns true if the quadrants are 1 and 3, or 2 and 4
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="commonHalfPlane(int, int)"><!-- --></A><H3>
+commonHalfPlane</H3>
+<PRE>
+public static int <B>commonHalfPlane</B>(int quad1,
+ int quad2)</PRE>
+<DL>
+<DD>Returns the right-hand quadrant of the halfplane defined by the two quadrants,
+ or -1 if the quadrants are opposite, or the quadrant if they are identical.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isInHalfPlane(int, int)"><!-- --></A><H3>
+isInHalfPlane</H3>
+<PRE>
+public static boolean <B>isInHalfPlane</B>(int quad,
+ int halfPlane)</PRE>
+<DL>
+<DD>Returns whether the given quadrant lies within the given halfplane (specified
+ by its right-hand quadrant).
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isNorthern(int)"><!-- --></A><H3>
+isNorthern</H3>
+<PRE>
+public static boolean <B>isNorthern</B>(int quad)</PRE>
+<DL>
+<DD>Returns true if the given quadrant is 0 or 1.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Quadrant.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/TopologyLocation.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/TopologyLocation.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/TopologyLocation.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,626 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+TopologyLocation
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.TopologyLocation class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="TopologyLocation";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TopologyLocation.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph</FONT>
+<BR>
+Class TopologyLocation</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.TopologyLocation</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>TopologyLocation</B><DT>extends java.lang.Object</DL>
+
+<P>
+A TopologyLocation is the labelling of a
+ GraphComponent's topological relationship to a single Geometry.
+ <p>
+ If the parent component is an area edge, each side and the edge itself
+ have a topological location. These locations are named
+ <ul>
+ <li> ON: on the edge
+ <li> LEFT: left-hand side of the edge
+ <li> RIGHT: right-hand side
+ </ul>
+ If the parent component is a line edge or node, there is a single
+ topological relationship attribute, ON.
+ <p>
+ The possible values of a topological location are
+ {Location.NONE, Location.EXTERIOR, Location.BOUNDARY, Location.INTERIOR}
+ <p>
+ The labelling is stored in an array location[j] where
+ where j has the values ON, LEFT, RIGHT
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#TopologyLocation(int)">TopologyLocation</A></B>(int on)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#TopologyLocation(int[])">TopologyLocation</A></B>(int[] location)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#TopologyLocation(int, int, int)">TopologyLocation</A></B>(int on,
+ int left,
+ int right)</CODE>
+
+<BR>
+ Constructs a TopologyLocation specifying how points on, to the left of, and to the
+ right of some GraphComponent relate to some Geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#TopologyLocation(com.vividsolutions.jts.geomgraph.TopologyLocation)">TopologyLocation</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A> gl)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#allPositionsEqual(int)">allPositionsEqual</A></B>(int loc)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#flip()">flip</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#get(int)">get</A></B>(int posIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#getLocations()">getLocations</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#isAnyNull()">isAnyNull</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#isArea()">isArea</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#isEqualOnSide(com.vividsolutions.jts.geomgraph.TopologyLocation, int)">isEqualOnSide</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A> le,
+ int locIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#isLine()">isLine</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#isNull()">isNull</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#merge(com.vividsolutions.jts.geomgraph.TopologyLocation)">merge</A></B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A> gl)</CODE>
+
+<BR>
+ merge updates only the NULL attributes of this object
+ with the attributes of another.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#setAllLocations(int)">setAllLocations</A></B>(int locValue)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#setAllLocationsIfNull(int)">setAllLocationsIfNull</A></B>(int locValue)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#setLocation(int)">setLocation</A></B>(int locValue)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#setLocation(int, int)">setLocation</A></B>(int locIndex,
+ int locValue)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#setLocations(int, int, int)">setLocations</A></B>(int on,
+ int left,
+ int right)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="TopologyLocation(int[])"><!-- --></A><H3>
+TopologyLocation</H3>
+<PRE>
+public <B>TopologyLocation</B>(int[] location)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="TopologyLocation(int, int, int)"><!-- --></A><H3>
+TopologyLocation</H3>
+<PRE>
+public <B>TopologyLocation</B>(int on,
+ int left,
+ int right)</PRE>
+<DL>
+<DD>Constructs a TopologyLocation specifying how points on, to the left of, and to the
+ right of some GraphComponent relate to some Geometry. Possible values for the
+ parameters are Location.NULL, Location.EXTERIOR, Location.BOUNDARY,
+ and Location.INTERIOR.
+<P>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><CODE>Location</CODE></A></DL>
+<HR>
+
+<A NAME="TopologyLocation(int)"><!-- --></A><H3>
+TopologyLocation</H3>
+<PRE>
+public <B>TopologyLocation</B>(int on)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="TopologyLocation(com.vividsolutions.jts.geomgraph.TopologyLocation)"><!-- --></A><H3>
+TopologyLocation</H3>
+<PRE>
+public <B>TopologyLocation</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A> gl)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="get(int)"><!-- --></A><H3>
+get</H3>
+<PRE>
+public int <B>get</B>(int posIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isNull()"><!-- --></A><H3>
+isNull</H3>
+<PRE>
+public boolean <B>isNull</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if all locations are NULL</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isAnyNull()"><!-- --></A><H3>
+isAnyNull</H3>
+<PRE>
+public boolean <B>isAnyNull</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if any locations are NULL</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEqualOnSide(com.vividsolutions.jts.geomgraph.TopologyLocation, int)"><!-- --></A><H3>
+isEqualOnSide</H3>
+<PRE>
+public boolean <B>isEqualOnSide</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A> le,
+ int locIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isArea()"><!-- --></A><H3>
+isArea</H3>
+<PRE>
+public boolean <B>isArea</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isLine()"><!-- --></A><H3>
+isLine</H3>
+<PRE>
+public boolean <B>isLine</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="flip()"><!-- --></A><H3>
+flip</H3>
+<PRE>
+public void <B>flip</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAllLocations(int)"><!-- --></A><H3>
+setAllLocations</H3>
+<PRE>
+public void <B>setAllLocations</B>(int locValue)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAllLocationsIfNull(int)"><!-- --></A><H3>
+setAllLocationsIfNull</H3>
+<PRE>
+public void <B>setAllLocationsIfNull</B>(int locValue)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLocation(int, int)"><!-- --></A><H3>
+setLocation</H3>
+<PRE>
+public void <B>setLocation</B>(int locIndex,
+ int locValue)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLocation(int)"><!-- --></A><H3>
+setLocation</H3>
+<PRE>
+public void <B>setLocation</B>(int locValue)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLocations()"><!-- --></A><H3>
+getLocations</H3>
+<PRE>
+public int[] <B>getLocations</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLocations(int, int, int)"><!-- --></A><H3>
+setLocations</H3>
+<PRE>
+public void <B>setLocations</B>(int on,
+ int left,
+ int right)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="allPositionsEqual(int)"><!-- --></A><H3>
+allPositionsEqual</H3>
+<PRE>
+public boolean <B>allPositionsEqual</B>(int loc)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="merge(com.vividsolutions.jts.geomgraph.TopologyLocation)"><!-- --></A><H3>
+merge</H3>
+<PRE>
+public void <B>merge</B>(<A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A> gl)</PRE>
+<DL>
+<DD>merge updates only the NULL attributes of this object
+ with the attributes of another.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TopologyLocation.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,302 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+EdgeSetIntersector
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.index.EdgeSetIntersector class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="EdgeSetIntersector";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeSetIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph.index</FONT>
+<BR>
+Class EdgeSetIntersector</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.index.EdgeSetIntersector</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleEdgeSetIntersector</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleMCSweepLineIntersector</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleSweepLineIntersector</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public abstract class <B>EdgeSetIntersector</B><DT>extends java.lang.Object</DL>
+
+<P>
+An EdgeSetIntersector computes all the intersections between the
+ edges in the set. It adds the computed intersections to each edge
+ they are found on. It may be used in two scenarios:
+ <ul>
+ <li>determining the internal intersections between a single set of edges
+ <li>determining the mutual intersections between two different sets of edges
+ </ul>
+ It uses a <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><CODE>SegmentIntersector</CODE></A> to compute the intersections between
+ segments and to record statistics about what kinds of intersections were found.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html#EdgeSetIntersector()">EdgeSetIntersector</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html#computeIntersections(java.util.List, java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)">computeIntersections</A></B>(java.util.List edges0,
+ java.util.List edges1,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</CODE>
+
+<BR>
+ Computes all mutual intersections between two sets of edges.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html#computeIntersections(java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector, boolean)">computeIntersections</A></B>(java.util.List edges,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si,
+ boolean testAllSegments)</CODE>
+
+<BR>
+ Computes all self-intersections between edges in a set of edges,
+ allowing client to choose whether self-intersections are computed.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EdgeSetIntersector()"><!-- --></A><H3>
+EdgeSetIntersector</H3>
+<PRE>
+public <B>EdgeSetIntersector</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="computeIntersections(java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector, boolean)"><!-- --></A><H3>
+computeIntersections</H3>
+<PRE>
+public abstract void <B>computeIntersections</B>(java.util.List edges,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si,
+ boolean testAllSegments)</PRE>
+<DL>
+<DD>Computes all self-intersections between edges in a set of edges,
+ allowing client to choose whether self-intersections are computed.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>edges</CODE> - a list of edges to test for intersections<DD><CODE>si</CODE> - the SegmentIntersector to use<DD><CODE>testAllSegments</CODE> - true if self-intersections are to be tested as well</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntersections(java.util.List, java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><!-- --></A><H3>
+computeIntersections</H3>
+<PRE>
+public abstract void <B>computeIntersections</B>(java.util.List edges0,
+ java.util.List edges1,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</PRE>
+<DL>
+<DD>Computes all mutual intersections between two sets of edges.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeSetIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/MonotoneChain.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/MonotoneChain.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/MonotoneChain.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+MonotoneChain
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.index.MonotoneChain class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MonotoneChain";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MonotoneChain.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph.index</FONT>
+<BR>
+Class MonotoneChain</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.index.MonotoneChain</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>MonotoneChain</B><DT>extends java.lang.Object</DL>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChain.html#MonotoneChain(com.vividsolutions.jts.geomgraph.index.MonotoneChainEdge, int)">MonotoneChain</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A> mce,
+ int chainIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChain.html#computeIntersections(com.vividsolutions.jts.geomgraph.index.MonotoneChain, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)">computeIntersections</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChain</A> mc,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MonotoneChain(com.vividsolutions.jts.geomgraph.index.MonotoneChainEdge, int)"><!-- --></A><H3>
+MonotoneChain</H3>
+<PRE>
+public <B>MonotoneChain</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A> mce,
+ int chainIndex)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="computeIntersections(com.vividsolutions.jts.geomgraph.index.MonotoneChain, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><!-- --></A><H3>
+computeIntersections</H3>
+<PRE>
+public void <B>computeIntersections</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChain</A> mc,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MonotoneChain.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+MonotoneChainEdge
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.index.MonotoneChainEdge class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MonotoneChainEdge";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MonotoneChainEdge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph.index</FONT>
+<BR>
+Class MonotoneChainEdge</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.index.MonotoneChainEdge</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>MonotoneChainEdge</B><DT>extends java.lang.Object</DL>
+
+<P>
+MonotoneChains are a way of partitioning the segments of an edge to
+ allow for fast searching of intersections.
+ They have the following properties:
+ <ol>
+ <li>the segments within a monotone chain will never intersect each other
+ <li>the envelope of any contiguous subset of the segments in a monotone chain
+ is simply the envelope of the endpoints of the subset.
+ </ol>
+ Property 1 means that there is no need to test pairs of segments from within
+ the same monotone chain for intersection.
+ Property 2 allows
+ binary search to be used to find the intersection points of two monotone chains.
+ For many types of real-world data, these properties eliminate a large number of
+ segment comparisons, producing substantial speed gains.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html#MonotoneChainEdge(com.vividsolutions.jts.geomgraph.Edge)">MonotoneChainEdge</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html#computeIntersects(com.vividsolutions.jts.geomgraph.index.MonotoneChainEdge, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)">computeIntersects</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A> mce,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html#computeIntersectsForChain(int, com.vividsolutions.jts.geomgraph.index.MonotoneChainEdge, int, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)">computeIntersectsForChain</A></B>(int chainIndex0,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A> mce,
+ int chainIndex1,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html#getCoordinates()">getCoordinates</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html#getMaxX(int)">getMaxX</A></B>(int chainIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html#getMinX(int)">getMinX</A></B>(int chainIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html#getStartIndexes()">getStartIndexes</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MonotoneChainEdge(com.vividsolutions.jts.geomgraph.Edge)"><!-- --></A><H3>
+MonotoneChainEdge</H3>
+<PRE>
+public <B>MonotoneChainEdge</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinates()"><!-- --></A><H3>
+getCoordinates</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>getCoordinates</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStartIndexes()"><!-- --></A><H3>
+getStartIndexes</H3>
+<PRE>
+public int[] <B>getStartIndexes</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMinX(int)"><!-- --></A><H3>
+getMinX</H3>
+<PRE>
+public double <B>getMinX</B>(int chainIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMaxX(int)"><!-- --></A><H3>
+getMaxX</H3>
+<PRE>
+public double <B>getMaxX</B>(int chainIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntersects(com.vividsolutions.jts.geomgraph.index.MonotoneChainEdge, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><!-- --></A><H3>
+computeIntersects</H3>
+<PRE>
+public void <B>computeIntersects</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A> mce,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntersectsForChain(int, com.vividsolutions.jts.geomgraph.index.MonotoneChainEdge, int, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><!-- --></A><H3>
+computeIntersectsForChain</H3>
+<PRE>
+public void <B>computeIntersectsForChain</B>(int chainIndex0,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A> mce,
+ int chainIndex1,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MonotoneChainEdge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,290 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+MonotoneChainIndexer
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.index.MonotoneChainIndexer class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MonotoneChainIndexer";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MonotoneChainIndexer.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph.index</FONT>
+<BR>
+Class MonotoneChainIndexer</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.index.MonotoneChainIndexer</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>MonotoneChainIndexer</B><DT>extends java.lang.Object</DL>
+
+<P>
+MonotoneChains are a way of partitioning the segments of an edge to
+ allow for fast searching of intersections.
+ They have the following properties:
+ <ol>
+ <li>the segments within a monotone chain will never intersect each other
+ <li>the envelope of any contiguous subset of the segments in a monotone chain
+ is simply the envelope of the endpoints of the subset.
+ </ol>
+ Property 1 means that there is no need to test pairs of segments from within
+ the same monotone chain for intersection.
+ Property 2 allows
+ binary search to be used to find the intersection points of two monotone chains.
+ For many types of real-world data, these properties eliminate a large number of
+ segment comparisons, producing substantial speed gains.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html#MonotoneChainIndexer()">MonotoneChainIndexer</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html#getChainStartIndices(com.vividsolutions.jts.geom.Coordinate[])">getChainStartIndices</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html#toIntArray(java.util.List)">toIntArray</A></B>(java.util.List list)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MonotoneChainIndexer()"><!-- --></A><H3>
+MonotoneChainIndexer</H3>
+<PRE>
+public <B>MonotoneChainIndexer</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="toIntArray(java.util.List)"><!-- --></A><H3>
+toIntArray</H3>
+<PRE>
+public static int[] <B>toIntArray</B>(java.util.List list)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getChainStartIndices(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+getChainStartIndices</H3>
+<PRE>
+public int[] <B>getChainStartIndices</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MonotoneChainIndexer.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,431 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+SegmentIntersector
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.index.SegmentIntersector class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SegmentIntersector";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph.index</FONT>
+<BR>
+Class SegmentIntersector</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.index.SegmentIntersector</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SegmentIntersector</B><DT>extends java.lang.Object</DL>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#numTests">numTests</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#SegmentIntersector(com.vividsolutions.jts.algorithm.LineIntersector, boolean, boolean)">SegmentIntersector</A></B>(<A HREF="../../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li,
+ boolean includeProper,
+ boolean recordIsolated)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#addIntersections(com.vividsolutions.jts.geomgraph.Edge, int, com.vividsolutions.jts.geomgraph.Edge, int)">addIntersections</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e0,
+ int segIndex0,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e1,
+ int segIndex1)</CODE>
+
+<BR>
+ This method is called by clients of the EdgeIntersector class to test for and add
+ intersections for two segments of the edges being intersected.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#getProperIntersectionPoint()">getProperIntersectionPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#hasIntersection()">hasIntersection</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#hasProperInteriorIntersection()">hasProperInteriorIntersection</A></B>()</CODE>
+
+<BR>
+ A proper interior intersection is a proper intersection which is <b>not</b>
+ contained in the set of boundary nodes set for this SegmentIntersector.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#hasProperIntersection()">hasProperIntersection</A></B>()</CODE>
+
+<BR>
+ A proper intersection is an intersection which is interior to at least two
+ line segments.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#isAdjacentSegments(int, int)">isAdjacentSegments</A></B>(int i1,
+ int i2)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#setBoundaryNodes(java.util.Collection, java.util.Collection)">setBoundaryNodes</A></B>(java.util.Collection bdyNodes0,
+ java.util.Collection bdyNodes1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="numTests"><!-- --></A><H3>
+numTests</H3>
+<PRE>
+public int <B>numTests</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SegmentIntersector(com.vividsolutions.jts.algorithm.LineIntersector, boolean, boolean)"><!-- --></A><H3>
+SegmentIntersector</H3>
+<PRE>
+public <B>SegmentIntersector</B>(<A HREF="../../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li,
+ boolean includeProper,
+ boolean recordIsolated)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isAdjacentSegments(int, int)"><!-- --></A><H3>
+isAdjacentSegments</H3>
+<PRE>
+public static boolean <B>isAdjacentSegments</B>(int i1,
+ int i2)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setBoundaryNodes(java.util.Collection, java.util.Collection)"><!-- --></A><H3>
+setBoundaryNodes</H3>
+<PRE>
+public void <B>setBoundaryNodes</B>(java.util.Collection bdyNodes0,
+ java.util.Collection bdyNodes1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getProperIntersectionPoint()"><!-- --></A><H3>
+getProperIntersectionPoint</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getProperIntersectionPoint</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the proper intersection point, or <code>null</code> if none was found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasIntersection()"><!-- --></A><H3>
+hasIntersection</H3>
+<PRE>
+public boolean <B>hasIntersection</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasProperIntersection()"><!-- --></A><H3>
+hasProperIntersection</H3>
+<PRE>
+public boolean <B>hasProperIntersection</B>()</PRE>
+<DL>
+<DD>A proper intersection is an intersection which is interior to at least two
+ line segments. Note that a proper intersection is not necessarily
+ in the interior of the entire Geometry, since another edge may have
+ an endpoint equal to the intersection, which according to SFS semantics
+ can result in the point being on the Boundary of the Geometry.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasProperInteriorIntersection()"><!-- --></A><H3>
+hasProperInteriorIntersection</H3>
+<PRE>
+public boolean <B>hasProperInteriorIntersection</B>()</PRE>
+<DL>
+<DD>A proper interior intersection is a proper intersection which is <b>not</b>
+ contained in the set of boundary nodes set for this SegmentIntersector.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addIntersections(com.vividsolutions.jts.geomgraph.Edge, int, com.vividsolutions.jts.geomgraph.Edge, int)"><!-- --></A><H3>
+addIntersections</H3>
+<PRE>
+public void <B>addIntersections</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e0,
+ int segIndex0,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e1,
+ int segIndex1)</PRE>
+<DL>
+<DD>This method is called by clients of the EdgeIntersector class to test for and add
+ intersections for two segments of the edges being intersected.
+ Note that clients (such as MonotoneChainEdges) may choose not to intersect
+ certain pairs of segments for efficiency reasons.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+SimpleEdgeSetIntersector
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.index.SimpleEdgeSetIntersector class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SimpleEdgeSetIntersector";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimpleEdgeSetIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph.index</FONT>
+<BR>
+Class SimpleEdgeSetIntersector</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">com.vividsolutions.jts.geomgraph.index.EdgeSetIntersector</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.index.SimpleEdgeSetIntersector</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SimpleEdgeSetIntersector</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></DL>
+
+<P>
+Finds all intersections in one or two sets of edges,
+ using the straightforward method of
+ comparing all segments.
+ This algorithm is too slow for production use, but is useful for testing purposes.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html#SimpleEdgeSetIntersector()">SimpleEdgeSetIntersector</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html#computeIntersections(java.util.List, java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)">computeIntersections</A></B>(java.util.List edges0,
+ java.util.List edges1,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</CODE>
+
+<BR>
+ Computes all mutual intersections between two sets of edges.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html#computeIntersections(java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector, boolean)">computeIntersections</A></B>(java.util.List edges,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si,
+ boolean testAllSegments)</CODE>
+
+<BR>
+ Computes all self-intersections between edges in a set of edges,
+ allowing client to choose whether self-intersections are computed.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SimpleEdgeSetIntersector()"><!-- --></A><H3>
+SimpleEdgeSetIntersector</H3>
+<PRE>
+public <B>SimpleEdgeSetIntersector</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="computeIntersections(java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector, boolean)"><!-- --></A><H3>
+computeIntersections</H3>
+<PRE>
+public void <B>computeIntersections</B>(java.util.List edges,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si,
+ boolean testAllSegments)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></CODE></B></DD>
+<DD>Computes all self-intersections between edges in a set of edges,
+ allowing client to choose whether self-intersections are computed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html#computeIntersections(java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector, boolean)">computeIntersections</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>edges</CODE> - a list of edges to test for intersections<DD><CODE>si</CODE> - the SegmentIntersector to use<DD><CODE>testAllSegments</CODE> - true if self-intersections are to be tested as well</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntersections(java.util.List, java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><!-- --></A><H3>
+computeIntersections</H3>
+<PRE>
+public void <B>computeIntersections</B>(java.util.List edges0,
+ java.util.List edges1,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></CODE></B></DD>
+<DD>Computes all mutual intersections between two sets of edges.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html#computeIntersections(java.util.List, java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)">computeIntersections</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimpleEdgeSetIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,309 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+SimpleMCSweepLineIntersector
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.index.SimpleMCSweepLineIntersector class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SimpleMCSweepLineIntersector";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimpleMCSweepLineIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph.index</FONT>
+<BR>
+Class SimpleMCSweepLineIntersector</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">com.vividsolutions.jts.geomgraph.index.EdgeSetIntersector</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.index.SimpleMCSweepLineIntersector</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SimpleMCSweepLineIntersector</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></DL>
+
+<P>
+Finds all intersections in one or two sets of edges,
+ using an x-axis sweepline algorithm in conjunction with Monotone Chains.
+ While still O(n^2) in the worst case, this algorithm
+ drastically improves the average-case time.
+ The use of MonotoneChains as the items in the index
+ seems to offer an improvement in performance over a sweep-line alone.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html#SimpleMCSweepLineIntersector()">SimpleMCSweepLineIntersector</A></B>()</CODE>
+
+<BR>
+ A SimpleMCSweepLineIntersector creates monotone chains from the edges
+ and compares them using a simple sweep-line along the x-axis.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html#computeIntersections(java.util.List, java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)">computeIntersections</A></B>(java.util.List edges0,
+ java.util.List edges1,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</CODE>
+
+<BR>
+ Computes all mutual intersections between two sets of edges.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html#computeIntersections(java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector, boolean)">computeIntersections</A></B>(java.util.List edges,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si,
+ boolean testAllSegments)</CODE>
+
+<BR>
+ Computes all self-intersections between edges in a set of edges,
+ allowing client to choose whether self-intersections are computed.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SimpleMCSweepLineIntersector()"><!-- --></A><H3>
+SimpleMCSweepLineIntersector</H3>
+<PRE>
+public <B>SimpleMCSweepLineIntersector</B>()</PRE>
+<DL>
+<DD>A SimpleMCSweepLineIntersector creates monotone chains from the edges
+ and compares them using a simple sweep-line along the x-axis.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="computeIntersections(java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector, boolean)"><!-- --></A><H3>
+computeIntersections</H3>
+<PRE>
+public void <B>computeIntersections</B>(java.util.List edges,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si,
+ boolean testAllSegments)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></CODE></B></DD>
+<DD>Computes all self-intersections between edges in a set of edges,
+ allowing client to choose whether self-intersections are computed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html#computeIntersections(java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector, boolean)">computeIntersections</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>edges</CODE> - a list of edges to test for intersections<DD><CODE>si</CODE> - the SegmentIntersector to use<DD><CODE>testAllSegments</CODE> - true if self-intersections are to be tested as well</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntersections(java.util.List, java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><!-- --></A><H3>
+computeIntersections</H3>
+<PRE>
+public void <B>computeIntersections</B>(java.util.List edges0,
+ java.util.List edges1,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></CODE></B></DD>
+<DD>Computes all mutual intersections between two sets of edges.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html#computeIntersections(java.util.List, java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)">computeIntersections</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimpleMCSweepLineIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+SimpleSweepLineIntersector
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.index.SimpleSweepLineIntersector class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SimpleSweepLineIntersector";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimpleSweepLineIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph.index</FONT>
+<BR>
+Class SimpleSweepLineIntersector</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">com.vividsolutions.jts.geomgraph.index.EdgeSetIntersector</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.index.SimpleSweepLineIntersector</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SimpleSweepLineIntersector</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></DL>
+
+<P>
+Finds all intersections in one or two sets of edges,
+ using a simple x-axis sweepline algorithm.
+ While still O(n^2) in the worst case, this algorithm
+ drastically improves the average-case time.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html#SimpleSweepLineIntersector()">SimpleSweepLineIntersector</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html#computeIntersections(java.util.List, java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)">computeIntersections</A></B>(java.util.List edges0,
+ java.util.List edges1,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</CODE>
+
+<BR>
+ Computes all mutual intersections between two sets of edges.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html#computeIntersections(java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector, boolean)">computeIntersections</A></B>(java.util.List edges,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si,
+ boolean testAllSegments)</CODE>
+
+<BR>
+ Computes all self-intersections between edges in a set of edges,
+ allowing client to choose whether self-intersections are computed.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SimpleSweepLineIntersector()"><!-- --></A><H3>
+SimpleSweepLineIntersector</H3>
+<PRE>
+public <B>SimpleSweepLineIntersector</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="computeIntersections(java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector, boolean)"><!-- --></A><H3>
+computeIntersections</H3>
+<PRE>
+public void <B>computeIntersections</B>(java.util.List edges,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si,
+ boolean testAllSegments)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></CODE></B></DD>
+<DD>Computes all self-intersections between edges in a set of edges,
+ allowing client to choose whether self-intersections are computed.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html#computeIntersections(java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector, boolean)">computeIntersections</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>edges</CODE> - a list of edges to test for intersections<DD><CODE>si</CODE> - the SegmentIntersector to use<DD><CODE>testAllSegments</CODE> - true if self-intersections are to be tested as well</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntersections(java.util.List, java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><!-- --></A><H3>
+computeIntersections</H3>
+<PRE>
+public void <B>computeIntersections</B>(java.util.List edges0,
+ java.util.List edges1,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></CODE></B></DD>
+<DD>Computes all mutual intersections between two sets of edges.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html#computeIntersections(java.util.List, java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)">computeIntersections</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimpleSweepLineIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,452 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+SweepLineEvent
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.index.SweepLineEvent class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SweepLineEvent";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SweepLineEvent.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph.index</FONT>
+<BR>
+Class SweepLineEvent</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.index.SweepLineEvent</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>SweepLineEvent</B><DT>extends java.lang.Object<DT>implements java.lang.Comparable</DL>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#DELETE">DELETE</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#INSERT">INSERT</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#SweepLineEvent(java.lang.Object, double, com.vividsolutions.jts.geomgraph.index.SweepLineEvent, java.lang.Object)">SweepLineEvent</A></B>(java.lang.Object edgeSet,
+ double x,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A> insertEvent,
+ java.lang.Object obj)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#compareTo(java.lang.Object)">compareTo</A></B>(java.lang.Object o)</CODE>
+
+<BR>
+ ProjectionEvents are ordered first by their x-value, and then by their eventType.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#getDeleteEventIndex()">getDeleteEventIndex</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#getInsertEvent()">getInsertEvent</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#getObject()">getObject</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#isDelete()">isDelete</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#isInsert()">isInsert</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#setDeleteEventIndex(int)">setDeleteEventIndex</A></B>(int deleteEventIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="INSERT"><!-- --></A><H3>
+INSERT</H3>
+<PRE>
+public static final int <B>INSERT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.geomgraph.index.SweepLineEvent.INSERT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DELETE"><!-- --></A><H3>
+DELETE</H3>
+<PRE>
+public static final int <B>DELETE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.geomgraph.index.SweepLineEvent.DELETE">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SweepLineEvent(java.lang.Object, double, com.vividsolutions.jts.geomgraph.index.SweepLineEvent, java.lang.Object)"><!-- --></A><H3>
+SweepLineEvent</H3>
+<PRE>
+public <B>SweepLineEvent</B>(java.lang.Object edgeSet,
+ double x,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A> insertEvent,
+ java.lang.Object obj)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isInsert()"><!-- --></A><H3>
+isInsert</H3>
+<PRE>
+public boolean <B>isInsert</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isDelete()"><!-- --></A><H3>
+isDelete</H3>
+<PRE>
+public boolean <B>isDelete</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInsertEvent()"><!-- --></A><H3>
+getInsertEvent</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A> <B>getInsertEvent</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDeleteEventIndex()"><!-- --></A><H3>
+getDeleteEventIndex</H3>
+<PRE>
+public int <B>getDeleteEventIndex</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDeleteEventIndex(int)"><!-- --></A><H3>
+setDeleteEventIndex</H3>
+<PRE>
+public void <B>setDeleteEventIndex</B>(int deleteEventIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getObject()"><!-- --></A><H3>
+getObject</H3>
+<PRE>
+public java.lang.Object <B>getObject</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(java.lang.Object o)</PRE>
+<DL>
+<DD>ProjectionEvents are ordered first by their x-value, and then by their eventType.
+ It is important that Insert events are sorted before Delete events, so that
+ items whose Insert and Delete events occur at the same x-value will be
+ correctly handled.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE>java.lang.Comparable</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SweepLineEvent.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,296 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+SweepLineSegment
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.index.SweepLineSegment class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SweepLineSegment";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SweepLineSegment.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.geomgraph.index</FONT>
+<BR>
+Class SweepLineSegment</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.geomgraph.index.SweepLineSegment</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SweepLineSegment</B><DT>extends java.lang.Object</DL>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html#SweepLineSegment(com.vividsolutions.jts.geomgraph.Edge, int)">SweepLineSegment</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge,
+ int ptIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html#computeIntersections(com.vividsolutions.jts.geomgraph.index.SweepLineSegment, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)">computeIntersections</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineSegment</A> ss,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html#getMaxX()">getMaxX</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html#getMinX()">getMinX</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SweepLineSegment(com.vividsolutions.jts.geomgraph.Edge, int)"><!-- --></A><H3>
+SweepLineSegment</H3>
+<PRE>
+public <B>SweepLineSegment</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge,
+ int ptIndex)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getMinX()"><!-- --></A><H3>
+getMinX</H3>
+<PRE>
+public double <B>getMinX</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMaxX()"><!-- --></A><H3>
+getMaxX</H3>
+<PRE>
+public double <B>getMaxX</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntersections(com.vividsolutions.jts.geomgraph.index.SweepLineSegment, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><!-- --></A><H3>
+computeIntersections</H3>
+<PRE>
+public void <B>computeIntersections</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineSegment</A> ss,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A> si)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SweepLineSegment.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.geomgraph.index
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.index package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/package-summary.html" target="classFrame">com.vividsolutions.jts.geomgraph.index</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">EdgeSetIntersector</A>
+<BR>
+<A HREF="MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">MonotoneChain</A>
+<BR>
+<A HREF="MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">MonotoneChainEdge</A>
+<BR>
+<A HREF="MonotoneChainIndexer.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">MonotoneChainIndexer</A>
+<BR>
+<A HREF="SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">SegmentIntersector</A>
+<BR>
+<A HREF="SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">SimpleEdgeSetIntersector</A>
+<BR>
+<A HREF="SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">SimpleMCSweepLineIntersector</A>
+<BR>
+<A HREF="SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">SimpleSweepLineIntersector</A>
+<BR>
+<A HREF="SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">SweepLineEvent</A>
+<BR>
+<A HREF="SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index" target="classFrame">SweepLineSegment</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,204 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.geomgraph.index
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph.index package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.geomgraph.index";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.geomgraph.index
+</H2>
+Contains classes that implement indexes for performing noding on geometry graph edges.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A></B></TD>
+<TD>An EdgeSetIntersector computes all the intersections between the
+ edges in the set.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChain</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A></B></TD>
+<TD>MonotoneChains are a way of partitioning the segments of an edge to
+ allow for fast searching of intersections.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainIndexer</A></B></TD>
+<TD>MonotoneChains are a way of partitioning the segments of an edge to
+ allow for fast searching of intersections.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleEdgeSetIntersector</A></B></TD>
+<TD>Finds all intersections in one or two sets of edges,
+ using the straightforward method of
+ comparing all segments.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleMCSweepLineIntersector</A></B></TD>
+<TD>Finds all intersections in one or two sets of edges,
+ using an x-axis sweepline algorithm in conjunction with Monotone Chains.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleSweepLineIntersector</A></B></TD>
+<TD>Finds all intersections in one or two sets of edges,
+ using a simple x-axis sweepline algorithm.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineSegment</A></B></TD>
+<TD> </TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.geomgraph.index Description
+</H2>
+
+<P>
+Contains classes that implement indexes for performing noding on geometry graph edges.
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/index/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.geomgraph.index Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.geomgraph.index Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.geomgraph.index
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>EdgeSetIntersector</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SimpleEdgeSetIntersector</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SimpleMCSweepLineIntersector</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SimpleSweepLineIntersector</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>MonotoneChain</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>MonotoneChainEdge</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>MonotoneChainIndexer</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SegmentIntersector</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SweepLineEvent</B></A> (implements java.lang.Comparable)
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SweepLineSegment</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.geomgraph
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/vividsolutions/jts/geomgraph/package-summary.html" target="classFrame">com.vividsolutions.jts.geomgraph</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Depth.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">Depth</A>
+<BR>
+<A HREF="DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">DirectedEdge</A>
+<BR>
+<A HREF="DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">DirectedEdgeStar</A>
+<BR>
+<A HREF="Edge.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">Edge</A>
+<BR>
+<A HREF="EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">EdgeEnd</A>
+<BR>
+<A HREF="EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">EdgeEndStar</A>
+<BR>
+<A HREF="EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">EdgeIntersection</A>
+<BR>
+<A HREF="EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">EdgeIntersectionList</A>
+<BR>
+<A HREF="EdgeList.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">EdgeList</A>
+<BR>
+<A HREF="EdgeNodingValidator.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">EdgeNodingValidator</A>
+<BR>
+<A HREF="EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">EdgeRing</A>
+<BR>
+<A HREF="GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">GeometryGraph</A>
+<BR>
+<A HREF="GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">GraphComponent</A>
+<BR>
+<A HREF="Label.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">Label</A>
+<BR>
+<A HREF="Node.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">Node</A>
+<BR>
+<A HREF="NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">NodeFactory</A>
+<BR>
+<A HREF="NodeMap.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">NodeMap</A>
+<BR>
+<A HREF="PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">PlanarGraph</A>
+<BR>
+<A HREF="Position.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">Position</A>
+<BR>
+<A HREF="Quadrant.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">Quadrant</A>
+<BR>
+<A HREF="TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph" target="classFrame">TopologyLocation</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,261 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.geomgraph
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.geomgraph package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.geomgraph";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/util/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/index/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.geomgraph
+</H2>
+Contains classes that implement topology graphs.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A></B></TD>
+<TD>A Depth object records the topological depth of the sides
+ of an Edge for up to two Geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A></B></TD>
+<TD>A DirectedEdgeStar is an ordered list of <b>outgoing</b> DirectedEdges around a node.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A></B></TD>
+<TD>Models the end of an edge incident on a node.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A></B></TD>
+<TD>A EdgeEndStar is an ordered list of EdgeEnds around a node.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A></B></TD>
+<TD>Represents a point on an
+ edge which intersects with another edge.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersectionList</A></B></TD>
+<TD>A list of edge intersections along an <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Edge</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeList</A></B></TD>
+<TD>A EdgeList is a list of Edges.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html" title="class in com.vividsolutions.jts.geomgraph">EdgeNodingValidator</A></B></TD>
+<TD>Validates that a collection of <A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Edge</CODE></A>s is correctly noded.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A></B></TD>
+<TD>A GeometryGraph is a graph that models a given Geometry</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></B></TD>
+<TD>A GraphComponent is the parent class for the objects'
+ that form a graph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A></B></TD>
+<TD>A <code>Label</code> indicates the topological relationship of a component
+ of a topology graph to a given <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">NodeFactory</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph">NodeMap</A></B></TD>
+<TD>A map of nodes, indexed by the coordinate of the node</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A></B></TD>
+<TD>The computation of the <code>IntersectionMatrix</code> relies on the use of a structure
+ called a "topology graph".</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph">Position</A></B></TD>
+<TD>A Position indicates the position of a Location relative to a graph component
+ (Node, Edge, or Area).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph">Quadrant</A></B></TD>
+<TD>Utility functions for working with quadrants, which are numbered as follows:
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A></B></TD>
+<TD>A TopologyLocation is the labelling of a
+ GraphComponent's topological relationship to a single Geometry.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.geomgraph Description
+</H2>
+
+<P>
+Contains classes that implement topology graphs.
+<P>
+The Java Topology Suite (JTS) is a Java API that implements a core set of spatial data operations using an explicit precision model and robust geometric algorithms. JTS is intended to be used in the development of applications that support the validation, cleaning, integration and querying of spatial datasets.
+<P>
+JTS attempts to implement the OpenGIS Simple Features Specification (SFS) as accurately as possible. In some cases the SFS is unclear or omits a specification; in this case JTS attempts to choose a reasonable and consistent alternative. Differences from and elaborations of the SFS are documented in this specification.
+
+<h2>Package Specification</h2>
+
+<ul>
+ <li>Java Topology Suite Technical Specifications
+ <li><A HREF="http://www.opengis.org/techno/specs.htm">
+ OpenGIS Simple Features Specification for SQL</A>
+</ul>
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/util/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/index/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/geomgraph/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.geomgraph Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.geomgraph Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/util/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/index/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.geomgraph
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph"><B>Depth</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeEnd</B></A> (implements java.lang.Comparable)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><B>DirectedEdge</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeEndStar</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph"><B>DirectedEdgeStar</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeIntersection</B></A> (implements java.lang.Comparable)
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeIntersectionList</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeList</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeNodingValidator</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeRing</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph"><B>GraphComponent</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><B>Edge</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph"><B>Node</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph"><B>Label</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph"><B>NodeFactory</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph"><B>NodeMap</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph"><B>PlanarGraph</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><B>GeometryGraph</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph"><B>Position</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph"><B>Quadrant</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph"><B>TopologyLocation</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geom/util/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/index/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/ArrayListVisitor.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/ArrayListVisitor.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/ArrayListVisitor.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+ArrayListVisitor
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.ArrayListVisitor class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ArrayListVisitor";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ArrayListVisitor.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index</FONT>
+<BR>
+Class ArrayListVisitor</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.ArrayListVisitor</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>ArrayListVisitor</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A></DL>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/index/ArrayListVisitor.html#ArrayListVisitor()">ArrayListVisitor</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.ArrayList</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/index/ArrayListVisitor.html#getItems()">getItems</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/index/ArrayListVisitor.html#visitItem(java.lang.Object)">visitItem</A></B>(java.lang.Object item)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ArrayListVisitor()"><!-- --></A><H3>
+ArrayListVisitor</H3>
+<PRE>
+public <B>ArrayListVisitor</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="visitItem(java.lang.Object)"><!-- --></A><H3>
+visitItem</H3>
+<PRE>
+public void <B>visitItem</B>(java.lang.Object item)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/index/ItemVisitor.html#visitItem(java.lang.Object)">visitItem</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getItems()"><!-- --></A><H3>
+getItems</H3>
+<PRE>
+public java.util.ArrayList <B>getItems</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ArrayListVisitor.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/ItemVisitor.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/ItemVisitor.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/ItemVisitor.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,221 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+ItemVisitor
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.ItemVisitor interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ItemVisitor";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ItemVisitor.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index</FONT>
+<BR>
+Interface ItemVisitor</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/vividsolutions/jts/index/ArrayListVisitor.html" title="class in com.vividsolutions.jts.index">ArrayListVisitor</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public interface <B>ItemVisitor</B></DL>
+
+<P>
+A visitor for items in an index.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/index/ItemVisitor.html#visitItem(java.lang.Object)">visitItem</A></B>(java.lang.Object item)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="visitItem(java.lang.Object)"><!-- --></A><H3>
+visitItem</H3>
+<PRE>
+public void <B>visitItem</B>(java.lang.Object item)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ItemVisitor.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/SpatialIndex.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/SpatialIndex.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/SpatialIndex.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,308 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+SpatialIndex
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.SpatialIndex interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SpatialIndex";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SpatialIndex.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index</FONT>
+<BR>
+Interface SpatialIndex</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree">Quadtree</A>, <A HREF="../../../../com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public interface <B>SpatialIndex</B></DL>
+
+<P>
+The basic operations supported by classes
+ implementing spatial index algorithms.
+ <p>
+ A spatial index typically provides a primary filter for range rectangle queries.
+ A secondary filter is required to test for exact intersection.
+ The secondary filter may consist of other kinds of tests,
+ such as testing other spatial relationships.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/index/SpatialIndex.html#insert(com.vividsolutions.jts.geom.Envelope, java.lang.Object)">insert</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</CODE>
+
+<BR>
+ Adds a spatial item with an extent specified by the given <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A> to the index</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/index/SpatialIndex.html#query(com.vividsolutions.jts.geom.Envelope)">query</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</CODE>
+
+<BR>
+ Queries the index for all items whose extents intersect the given search <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A>
+ Note that some kinds of indexes may also return objects which do not in fact
+ intersect the query envelope.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/index/SpatialIndex.html#query(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)">query</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv,
+ <A HREF="../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A> visitor)</CODE>
+
+<BR>
+ Queries the index for all items whose extents intersect the given search <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A>,
+ and applies an <A HREF="../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index"><CODE>ItemVisitor</CODE></A> to them.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/index/SpatialIndex.html#remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)">remove</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</CODE>
+
+<BR>
+ Removes a single item from the tree.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="insert(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><!-- --></A><H3>
+insert</H3>
+<PRE>
+public void <B>insert</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</PRE>
+<DL>
+<DD>Adds a spatial item with an extent specified by the given <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A> to the index
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="query(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+query</H3>
+<PRE>
+public java.util.List <B>query</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</PRE>
+<DL>
+<DD>Queries the index for all items whose extents intersect the given search <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A>
+ Note that some kinds of indexes may also return objects which do not in fact
+ intersect the query envelope.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>searchEnv</CODE> - the envelope to query for
+<DT><B>Returns:</B><DD>a list of the items found by the query</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="query(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)"><!-- --></A><H3>
+query</H3>
+<PRE>
+public void <B>query</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv,
+ <A HREF="../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A> visitor)</PRE>
+<DL>
+<DD>Queries the index for all items whose extents intersect the given search <A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A>,
+ and applies an <A HREF="../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index"><CODE>ItemVisitor</CODE></A> to them.
+ Note that some kinds of indexes may also return objects which do not in fact
+ intersect the query envelope.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>searchEnv</CODE> - the envelope to query for<DD><CODE>visitor</CODE> - a visitor object to apply to the items found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public boolean <B>remove</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</PRE>
+<DL>
+<DD>Removes a single item from the tree.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>itemEnv</CODE> - the Envelope of the item to remove<DD><CODE>item</CODE> - the item to remove
+<DT><B>Returns:</B><DD><code>true</code> if the item was found</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SpatialIndex.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Bintree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Bintree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Bintree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,444 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Bintree
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.bintree.Bintree class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Bintree";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Bintree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.bintree</FONT>
+<BR>
+Class Bintree</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.bintree.Bintree</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Bintree</B><DT>extends java.lang.Object</DL>
+
+<P>
+An <code>BinTree</code> (or "Binary Interval Tree")
+ is a 1-dimensional version of a quadtree.
+ It indexes 1-dimensional intervals (which of course may
+ be the projection of 2-D objects on an axis).
+ It supports range searching
+ (where the range may be a single point).
+ <p>
+ This implementation does not require specifying the extent of the inserted
+ items beforehand. It will automatically expand to accomodate any extent
+ of dataset.
+ <p>
+ The bintree structure is used to provide a primary filter
+ for interval queries. The query() method returns a list of
+ all objects which <i>may</i> intersect the query interval.
+ Note that it may return objects which do not in fact intersect.
+ A secondary filter is required to test for exact intersection.
+ Of course, this secondary filter may consist of other tests besides
+ intersection, such as testing other kinds of spatial relationships.
+ <p>
+ This index is different to the Interval Tree of Edelsbrunner
+ or the Segment Tree of Bentley.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html#Bintree()">Bintree</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html#depth()">depth</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html#ensureExtent(com.vividsolutions.jts.index.bintree.Interval, double)">ensureExtent</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> itemInterval,
+ double minExtent)</CODE>
+
+<BR>
+ Ensure that the Interval for the inserted item has non-zero extents.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html#insert(com.vividsolutions.jts.index.bintree.Interval, java.lang.Object)">insert</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> itemInterval,
+ java.lang.Object item)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html#iterator()">iterator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html#nodeSize()">nodeSize</A></B>()</CODE>
+
+<BR>
+ Compute the total number of nodes in the tree</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html#query(double)">query</A></B>(double x)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html#query(com.vividsolutions.jts.index.bintree.Interval)">query</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</CODE>
+
+<BR>
+ min and max may be the same value</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html#query(com.vividsolutions.jts.index.bintree.Interval, java.util.Collection)">query</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval,
+ java.util.Collection foundItems)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html#size()">size</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Bintree()"><!-- --></A><H3>
+Bintree</H3>
+<PRE>
+public <B>Bintree</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ensureExtent(com.vividsolutions.jts.index.bintree.Interval, double)"><!-- --></A><H3>
+ensureExtent</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> <B>ensureExtent</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> itemInterval,
+ double minExtent)</PRE>
+<DL>
+<DD>Ensure that the Interval for the inserted item has non-zero extents.
+ Use the current minExtent to pad it, if necessary
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="depth()"><!-- --></A><H3>
+depth</H3>
+<PRE>
+public int <B>depth</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="size()"><!-- --></A><H3>
+size</H3>
+<PRE>
+public int <B>size</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="nodeSize()"><!-- --></A><H3>
+nodeSize</H3>
+<PRE>
+public int <B>nodeSize</B>()</PRE>
+<DL>
+<DD>Compute the total number of nodes in the tree
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of nodes in the tree</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="insert(com.vividsolutions.jts.index.bintree.Interval, java.lang.Object)"><!-- --></A><H3>
+insert</H3>
+<PRE>
+public void <B>insert</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> itemInterval,
+ java.lang.Object item)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="iterator()"><!-- --></A><H3>
+iterator</H3>
+<PRE>
+public java.util.Iterator <B>iterator</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="query(double)"><!-- --></A><H3>
+query</H3>
+<PRE>
+public java.util.List <B>query</B>(double x)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="query(com.vividsolutions.jts.index.bintree.Interval)"><!-- --></A><H3>
+query</H3>
+<PRE>
+public java.util.List <B>query</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</PRE>
+<DL>
+<DD>min and max may be the same value
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="query(com.vividsolutions.jts.index.bintree.Interval, java.util.Collection)"><!-- --></A><H3>
+query</H3>
+<PRE>
+public void <B>query</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval,
+ java.util.Collection foundItems)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Bintree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Interval.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Interval.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Interval.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,533 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Interval
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.bintree.Interval class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Interval";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Interval.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.bintree</FONT>
+<BR>
+Class Interval</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.bintree.Interval</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Interval</B><DT>extends java.lang.Object</DL>
+
+<P>
+Represents an (1-dimensional) closed interval on the Real number line.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#max">max</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#min">min</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#Interval()">Interval</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#Interval(double, double)">Interval</A></B>(double min,
+ double max)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#Interval(com.vividsolutions.jts.index.bintree.Interval)">Interval</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#contains(double)">contains</A></B>(double p)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#contains(double, double)">contains</A></B>(double min,
+ double max)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#contains(com.vividsolutions.jts.index.bintree.Interval)">contains</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#expandToInclude(com.vividsolutions.jts.index.bintree.Interval)">expandToInclude</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#getMax()">getMax</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#getMin()">getMin</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#getWidth()">getWidth</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#init(double, double)">init</A></B>(double min,
+ double max)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#overlaps(double, double)">overlaps</A></B>(double min,
+ double max)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#overlaps(com.vividsolutions.jts.index.bintree.Interval)">overlaps</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="min"><!-- --></A><H3>
+min</H3>
+<PRE>
+public double <B>min</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="max"><!-- --></A><H3>
+max</H3>
+<PRE>
+public double <B>max</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Interval()"><!-- --></A><H3>
+Interval</H3>
+<PRE>
+public <B>Interval</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="Interval(double, double)"><!-- --></A><H3>
+Interval</H3>
+<PRE>
+public <B>Interval</B>(double min,
+ double max)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="Interval(com.vividsolutions.jts.index.bintree.Interval)"><!-- --></A><H3>
+Interval</H3>
+<PRE>
+public <B>Interval</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="init(double, double)"><!-- --></A><H3>
+init</H3>
+<PRE>
+public void <B>init</B>(double min,
+ double max)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMin()"><!-- --></A><H3>
+getMin</H3>
+<PRE>
+public double <B>getMin</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMax()"><!-- --></A><H3>
+getMax</H3>
+<PRE>
+public double <B>getMax</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getWidth()"><!-- --></A><H3>
+getWidth</H3>
+<PRE>
+public double <B>getWidth</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="expandToInclude(com.vividsolutions.jts.index.bintree.Interval)"><!-- --></A><H3>
+expandToInclude</H3>
+<PRE>
+public void <B>expandToInclude</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="overlaps(com.vividsolutions.jts.index.bintree.Interval)"><!-- --></A><H3>
+overlaps</H3>
+<PRE>
+public boolean <B>overlaps</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="overlaps(double, double)"><!-- --></A><H3>
+overlaps</H3>
+<PRE>
+public boolean <B>overlaps</B>(double min,
+ double max)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contains(com.vividsolutions.jts.index.bintree.Interval)"><!-- --></A><H3>
+contains</H3>
+<PRE>
+public boolean <B>contains</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contains(double, double)"><!-- --></A><H3>
+contains</H3>
+<PRE>
+public boolean <B>contains</B>(double min,
+ double max)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contains(double)"><!-- --></A><H3>
+contains</H3>
+<PRE>
+public boolean <B>contains</B>(double p)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Interval.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Key.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Key.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Key.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,340 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Key
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.bintree.Key class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Key";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Key.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.bintree</FONT>
+<BR>
+Class Key</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.bintree.Key</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Key</B><DT>extends java.lang.Object</DL>
+
+<P>
+A Key is a unique identifier for a node in a tree.
+ It contains a lower-left point and a level number. The level number
+ is the power of two for the size of the node envelope
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Key.html#Key(com.vividsolutions.jts.index.bintree.Interval)">Key</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Key.html#computeKey(com.vividsolutions.jts.index.bintree.Interval)">computeKey</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> itemInterval)</CODE>
+
+<BR>
+ return a square envelope containing the argument envelope,
+ whose extent is a power of two and which is based at a power of 2</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Key.html#computeLevel(com.vividsolutions.jts.index.bintree.Interval)">computeLevel</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Key.html#getInterval()">getInterval</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Key.html#getLevel()">getLevel</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Key.html#getPoint()">getPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Key(com.vividsolutions.jts.index.bintree.Interval)"><!-- --></A><H3>
+Key</H3>
+<PRE>
+public <B>Key</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="computeLevel(com.vividsolutions.jts.index.bintree.Interval)"><!-- --></A><H3>
+computeLevel</H3>
+<PRE>
+public static int <B>computeLevel</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPoint()"><!-- --></A><H3>
+getPoint</H3>
+<PRE>
+public double <B>getPoint</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLevel()"><!-- --></A><H3>
+getLevel</H3>
+<PRE>
+public int <B>getLevel</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInterval()"><!-- --></A><H3>
+getInterval</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> <B>getInterval</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeKey(com.vividsolutions.jts.index.bintree.Interval)"><!-- --></A><H3>
+computeKey</H3>
+<PRE>
+public void <B>computeKey</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> itemInterval)</PRE>
+<DL>
+<DD>return a square envelope containing the argument envelope,
+ whose extent is a power of two and which is based at a power of 2
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Key.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Node.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Node.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Node.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,394 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Node
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.bintree.Node class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Node";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Node.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.index.bintree.NodeBase">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.bintree</FONT>
+<BR>
+Class Node</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">com.vividsolutions.jts.index.bintree.NodeBase</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.bintree.Node</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Node</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A></DL>
+
+<P>
+A node of a <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree"><CODE>Bintree</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.index.bintree.NodeBase"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.index.bintree.<A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#items">items</A>, <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#subnode">subnode</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html#Node(com.vividsolutions.jts.index.bintree.Interval, int)">Node</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval,
+ int level)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html#createExpanded(com.vividsolutions.jts.index.bintree.Node, com.vividsolutions.jts.index.bintree.Interval)">createExpanded</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A> node,
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> addInterval)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html#createNode(com.vividsolutions.jts.index.bintree.Interval)">createNode</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> itemInterval)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html#find(com.vividsolutions.jts.index.bintree.Interval)">find</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> searchInterval)</CODE>
+
+<BR>
+ Returns the smallest <i>existing</i>
+ node containing the envelope.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html#getInterval()">getInterval</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html#getNode(com.vividsolutions.jts.index.bintree.Interval)">getNode</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> searchInterval)</CODE>
+
+<BR>
+ Returns the subnode containing the envelope.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html#isSearchMatch(com.vividsolutions.jts.index.bintree.Interval)">isSearchMatch</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> itemInterval)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.index.bintree.NodeBase"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.index.bintree.<A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#add(java.lang.Object)">add</A>, <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#addAllItems(java.util.List)">addAllItems</A>, <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#addAllItemsFromOverlapping(com.vividsolutions.jts.index.bintree.Interval, java.util.Collection)">addAllItemsFromOverlapping</A>, <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#getItems()">getItems</A>, <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#getSubnodeIndex(com.vividsolutions.jts.index.bintree.Interval, double)">getSubnodeIndex</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Node(com.vividsolutions.jts.index.bintree.Interval, int)"><!-- --></A><H3>
+Node</H3>
+<PRE>
+public <B>Node</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval,
+ int level)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="createNode(com.vividsolutions.jts.index.bintree.Interval)"><!-- --></A><H3>
+createNode</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A> <B>createNode</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> itemInterval)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createExpanded(com.vividsolutions.jts.index.bintree.Node, com.vividsolutions.jts.index.bintree.Interval)"><!-- --></A><H3>
+createExpanded</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A> <B>createExpanded</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A> node,
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> addInterval)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInterval()"><!-- --></A><H3>
+getInterval</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> <B>getInterval</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSearchMatch(com.vividsolutions.jts.index.bintree.Interval)"><!-- --></A><H3>
+isSearchMatch</H3>
+<PRE>
+protected boolean <B>isSearchMatch</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> itemInterval)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#isSearchMatch(com.vividsolutions.jts.index.bintree.Interval)">isSearchMatch</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNode(com.vividsolutions.jts.index.bintree.Interval)"><!-- --></A><H3>
+getNode</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A> <B>getNode</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> searchInterval)</PRE>
+<DL>
+<DD>Returns the subnode containing the envelope.
+ Creates the node if
+ it does not already exist.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="find(com.vividsolutions.jts.index.bintree.Interval)"><!-- --></A><H3>
+find</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A> <B>find</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> searchInterval)</PRE>
+<DL>
+<DD>Returns the smallest <i>existing</i>
+ node containing the envelope.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Node.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.index.bintree.NodeBase">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/NodeBase.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/NodeBase.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/NodeBase.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,418 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+NodeBase
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.bintree.NodeBase class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="NodeBase";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Root.html" title="class in com.vividsolutions.jts.index.bintree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NodeBase.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.bintree</FONT>
+<BR>
+Class NodeBase</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.bintree.NodeBase</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A>, <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Root.html" title="class in com.vividsolutions.jts.index.bintree">Root</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public abstract class <B>NodeBase</B><DT>extends java.lang.Object</DL>
+
+<P>
+The base class for nodes in a <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree"><CODE>Bintree</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#items">items</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#subnode">subnode</A></B></CODE>
+
+<BR>
+ subnodes are numbered as follows:
+
+ 0 | 1</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#NodeBase()">NodeBase</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#add(java.lang.Object)">add</A></B>(java.lang.Object item)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#addAllItems(java.util.List)">addAllItems</A></B>(java.util.List items)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#addAllItemsFromOverlapping(com.vividsolutions.jts.index.bintree.Interval, java.util.Collection)">addAllItemsFromOverlapping</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval,
+ java.util.Collection resultItems)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#getItems()">getItems</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#getSubnodeIndex(com.vividsolutions.jts.index.bintree.Interval, double)">getSubnodeIndex</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval,
+ double centre)</CODE>
+
+<BR>
+ Returns the index of the subnode that wholely contains the given interval.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected abstract boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#isSearchMatch(com.vividsolutions.jts.index.bintree.Interval)">isSearchMatch</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="items"><!-- --></A><H3>
+items</H3>
+<PRE>
+protected java.util.List <B>items</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="subnode"><!-- --></A><H3>
+subnode</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A>[] <B>subnode</B></PRE>
+<DL>
+<DD>subnodes are numbered as follows:
+
+ 0 | 1
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="NodeBase()"><!-- --></A><H3>
+NodeBase</H3>
+<PRE>
+public <B>NodeBase</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getSubnodeIndex(com.vividsolutions.jts.index.bintree.Interval, double)"><!-- --></A><H3>
+getSubnodeIndex</H3>
+<PRE>
+public static int <B>getSubnodeIndex</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval,
+ double centre)</PRE>
+<DL>
+<DD>Returns the index of the subnode that wholely contains the given interval.
+ If none does, returns -1.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getItems()"><!-- --></A><H3>
+getItems</H3>
+<PRE>
+public java.util.List <B>getItems</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(java.lang.Object)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(java.lang.Object item)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addAllItems(java.util.List)"><!-- --></A><H3>
+addAllItems</H3>
+<PRE>
+public java.util.List <B>addAllItems</B>(java.util.List items)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSearchMatch(com.vividsolutions.jts.index.bintree.Interval)"><!-- --></A><H3>
+isSearchMatch</H3>
+<PRE>
+protected abstract boolean <B>isSearchMatch</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addAllItemsFromOverlapping(com.vividsolutions.jts.index.bintree.Interval, java.util.Collection)"><!-- --></A><H3>
+addAllItemsFromOverlapping</H3>
+<PRE>
+public java.util.List <B>addAllItemsFromOverlapping</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval,
+ java.util.Collection resultItems)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Root.html" title="class in com.vividsolutions.jts.index.bintree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NodeBase.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Root.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Root.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/Root.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Root
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.bintree.Root class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Root";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Root.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.index.bintree.NodeBase">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.bintree</FONT>
+<BR>
+Class Root</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">com.vividsolutions.jts.index.bintree.NodeBase</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.bintree.Root</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Root</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A></DL>
+
+<P>
+The root node of a single <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree"><CODE>Bintree</CODE></A>.
+ It is centred at the origin,
+ and does not have a defined extent.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.index.bintree.NodeBase"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.index.bintree.<A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#items">items</A>, <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#subnode">subnode</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Root.html#Root()">Root</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Root.html#insert(com.vividsolutions.jts.index.bintree.Interval, java.lang.Object)">insert</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> itemInterval,
+ java.lang.Object item)</CODE>
+
+<BR>
+ Insert an item into the tree this is the root of.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Root.html#isSearchMatch(com.vividsolutions.jts.index.bintree.Interval)">isSearchMatch</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</CODE>
+
+<BR>
+ The root node matches all searches</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.index.bintree.NodeBase"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.index.bintree.<A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#add(java.lang.Object)">add</A>, <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#addAllItems(java.util.List)">addAllItems</A>, <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#addAllItemsFromOverlapping(com.vividsolutions.jts.index.bintree.Interval, java.util.Collection)">addAllItemsFromOverlapping</A>, <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#getItems()">getItems</A>, <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#getSubnodeIndex(com.vividsolutions.jts.index.bintree.Interval, double)">getSubnodeIndex</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Root()"><!-- --></A><H3>
+Root</H3>
+<PRE>
+public <B>Root</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="insert(com.vividsolutions.jts.index.bintree.Interval, java.lang.Object)"><!-- --></A><H3>
+insert</H3>
+<PRE>
+public void <B>insert</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> itemInterval,
+ java.lang.Object item)</PRE>
+<DL>
+<DD>Insert an item into the tree this is the root of.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSearchMatch(com.vividsolutions.jts.index.bintree.Interval)"><!-- --></A><H3>
+isSearchMatch</H3>
+<PRE>
+protected boolean <B>isSearchMatch</B>(<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A> interval)</PRE>
+<DL>
+<DD>The root node matches all searches
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html#isSearchMatch(com.vividsolutions.jts.index.bintree.Interval)">isSearchMatch</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Root.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.index.bintree.NodeBase">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index.bintree
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.bintree package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/index/bintree/package-summary.html" target="classFrame">com.vividsolutions.jts.index.bintree</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Bintree.html" title="class in com.vividsolutions.jts.index.bintree" target="classFrame">Bintree</A>
+<BR>
+<A HREF="Interval.html" title="class in com.vividsolutions.jts.index.bintree" target="classFrame">Interval</A>
+<BR>
+<A HREF="Key.html" title="class in com.vividsolutions.jts.index.bintree" target="classFrame">Key</A>
+<BR>
+<A HREF="Node.html" title="class in com.vividsolutions.jts.index.bintree" target="classFrame">Node</A>
+<BR>
+<A HREF="NodeBase.html" title="class in com.vividsolutions.jts.index.bintree" target="classFrame">NodeBase</A>
+<BR>
+<A HREF="Root.html" title="class in com.vividsolutions.jts.index.bintree" target="classFrame">Root</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index.bintree
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.bintree package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.index.bintree";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.index.bintree
+</H2>
+Contains classes that implement a Binary Interval Tree index
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree">Bintree</A></B></TD>
+<TD>An <code>BinTree</code> (or "Binary Interval Tree")
+ is a 1-dimensional version of a quadtree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A></B></TD>
+<TD>Represents an (1-dimensional) closed interval on the Real number line.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree">Key</A></B></TD>
+<TD>A Key is a unique identifier for a node in a tree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A></B></TD>
+<TD>A node of a <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree"><CODE>Bintree</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A></B></TD>
+<TD>The base class for nodes in a <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree"><CODE>Bintree</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/bintree/Root.html" title="class in com.vividsolutions.jts.index.bintree">Root</A></B></TD>
+<TD>The root node of a single <A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree"><CODE>Bintree</CODE></A>.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.index.bintree Description
+</H2>
+
+<P>
+Contains classes that implement a Binary Interval Tree index
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/bintree/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index.bintree Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.index.bintree Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.index.bintree
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.bintree.<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree"><B>Bintree</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.bintree.<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree"><B>Interval</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.bintree.<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree"><B>Key</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.bintree.<A HREF="../../../../../com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree"><B>NodeBase</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.bintree.<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree"><B>Node</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.bintree.<A HREF="../../../../../com/vividsolutions/jts/index/bintree/Root.html" title="class in com.vividsolutions.jts.index.bintree"><B>Root</B></A></UL>
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChain.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChain.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChain.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,483 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+MonotoneChain
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.chain.MonotoneChain class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MonotoneChain";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MonotoneChain.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.chain</FONT>
+<BR>
+Class MonotoneChain</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.chain.MonotoneChain</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>MonotoneChain</B><DT>extends java.lang.Object</DL>
+
+<P>
+MonotoneChains are a way of partitioning the segments of a linestring to
+ allow for fast searching of intersections.
+ They have the following properties:
+ <ol>
+ <li>the segments within a monotone chain will never intersect each other
+ <li>the envelope of any contiguous subset of the segments in a monotone chain
+ is equal to the envelope of the endpoints of the subset.
+ </ol>
+ Property 1 means that there is no need to test pairs of segments from within
+ the same monotone chain for intersection.
+ Property 2 allows
+ binary search to be used to find the intersection points of two monotone chains.
+ For many types of real-world data, these properties eliminate a large number of
+ segment comparisons, producing substantial speed gains.
+ <p>
+ One of the goals of this implementation of MonotoneChains is to be
+ as space and time efficient as possible. One design choice that aids this
+ is that a MonotoneChain is based on a subarray of a list of points.
+ This means that new arrays of points (potentially very large) do not
+ have to be allocated.
+ <p>
+
+ MonotoneChains support the following kinds of queries:
+ <ul>
+ <li>Envelope select: determine all the segments in the chain which
+ intersect a given envelope
+ <li>Overlap: determine all the pairs of segments in two chains whose
+ envelopes overlap
+ </ul>
+
+ This implementation of MonotoneChains uses the concept of internal iterators
+ to return the resultsets for the above queries.
+ This has time and space advantages, since it
+ is not necessary to build lists of instantiated objects to represent the segments
+ returned by the query.
+ However, it does mean that the queries are not thread-safe.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html#MonotoneChain(com.vividsolutions.jts.geom.Coordinate[], int, int, java.lang.Object)">MonotoneChain</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts,
+ int start,
+ int end,
+ java.lang.Object context)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html#computeOverlaps(com.vividsolutions.jts.index.chain.MonotoneChain, com.vividsolutions.jts.index.chain.MonotoneChainOverlapAction)">computeOverlaps</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A> mc,
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainOverlapAction</A> mco)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html#getContext()">getContext</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html#getCoordinates()">getCoordinates</A></B>()</CODE>
+
+<BR>
+ Return the subsequence of coordinates forming this chain.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html#getEndIndex()">getEndIndex</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html#getEnvelope()">getEnvelope</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html#getId()">getId</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html#getLineSegment(int, com.vividsolutions.jts.geom.LineSegment)">getLineSegment</A></B>(int index,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> ls)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html#getStartIndex()">getStartIndex</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html#select(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.chain.MonotoneChainSelectAction)">select</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv,
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainSelectAction</A> mcs)</CODE>
+
+<BR>
+ Determine all the line segments in the chain whose envelopes overlap
+ the searchEnvelope, and process them</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html#setId(int)">setId</A></B>(int id)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MonotoneChain(com.vividsolutions.jts.geom.Coordinate[], int, int, java.lang.Object)"><!-- --></A><H3>
+MonotoneChain</H3>
+<PRE>
+public <B>MonotoneChain</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts,
+ int start,
+ int end,
+ java.lang.Object context)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setId(int)"><!-- --></A><H3>
+setId</H3>
+<PRE>
+public void <B>setId</B>(int id)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getId()"><!-- --></A><H3>
+getId</H3>
+<PRE>
+public int <B>getId</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getContext()"><!-- --></A><H3>
+getContext</H3>
+<PRE>
+public java.lang.Object <B>getContext</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEnvelope()"><!-- --></A><H3>
+getEnvelope</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>getEnvelope</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStartIndex()"><!-- --></A><H3>
+getStartIndex</H3>
+<PRE>
+public int <B>getStartIndex</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEndIndex()"><!-- --></A><H3>
+getEndIndex</H3>
+<PRE>
+public int <B>getEndIndex</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLineSegment(int, com.vividsolutions.jts.geom.LineSegment)"><!-- --></A><H3>
+getLineSegment</H3>
+<PRE>
+public void <B>getLineSegment</B>(int index,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> ls)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinates()"><!-- --></A><H3>
+getCoordinates</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>getCoordinates</B>()</PRE>
+<DL>
+<DD>Return the subsequence of coordinates forming this chain.
+ Allocates a new array to hold the Coordinates
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="select(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.chain.MonotoneChainSelectAction)"><!-- --></A><H3>
+select</H3>
+<PRE>
+public void <B>select</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv,
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainSelectAction</A> mcs)</PRE>
+<DL>
+<DD>Determine all the line segments in the chain whose envelopes overlap
+ the searchEnvelope, and process them
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeOverlaps(com.vividsolutions.jts.index.chain.MonotoneChain, com.vividsolutions.jts.index.chain.MonotoneChainOverlapAction)"><!-- --></A><H3>
+computeOverlaps</H3>
+<PRE>
+public void <B>computeOverlaps</B>(<A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A> mc,
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainOverlapAction</A> mco)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MonotoneChain.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,328 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+MonotoneChainBuilder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.chain.MonotoneChainBuilder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MonotoneChainBuilder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MonotoneChainBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.chain</FONT>
+<BR>
+Class MonotoneChainBuilder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.chain.MonotoneChainBuilder</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>MonotoneChainBuilder</B><DT>extends java.lang.Object</DL>
+
+<P>
+A MonotoneChainBuilder implements functions to determine the monotone chains
+ in a sequence of points.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html#MonotoneChainBuilder()">MonotoneChainBuilder</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html#getChains(com.vividsolutions.jts.geom.Coordinate[])">getChains</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html#getChains(com.vividsolutions.jts.geom.Coordinate[], java.lang.Object)">getChains</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts,
+ java.lang.Object context)</CODE>
+
+<BR>
+ Return a list of the <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><CODE>MonotoneChain</CODE></A>s
+ for the given list of coordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html#getChainStartIndices(com.vividsolutions.jts.geom.Coordinate[])">getChainStartIndices</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</CODE>
+
+<BR>
+ Return an array containing lists of start/end indexes of the monotone chains
+ for the given list of coordinates.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html#toIntArray(java.util.List)">toIntArray</A></B>(java.util.List list)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MonotoneChainBuilder()"><!-- --></A><H3>
+MonotoneChainBuilder</H3>
+<PRE>
+public <B>MonotoneChainBuilder</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="toIntArray(java.util.List)"><!-- --></A><H3>
+toIntArray</H3>
+<PRE>
+public static int[] <B>toIntArray</B>(java.util.List list)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getChains(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+getChains</H3>
+<PRE>
+public static java.util.List <B>getChains</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getChains(com.vividsolutions.jts.geom.Coordinate[], java.lang.Object)"><!-- --></A><H3>
+getChains</H3>
+<PRE>
+public static java.util.List <B>getChains</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts,
+ java.lang.Object context)</PRE>
+<DL>
+<DD>Return a list of the <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><CODE>MonotoneChain</CODE></A>s
+ for the given list of coordinates.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getChainStartIndices(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+getChainStartIndices</H3>
+<PRE>
+public static int[] <B>getChainStartIndices</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</PRE>
+<DL>
+<DD>Return an array containing lists of start/end indexes of the monotone chains
+ for the given list of coordinates.
+ The last entry in the array points to the end point of the point array,
+ for use as a sentinel.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MonotoneChainBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,344 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+MonotoneChainOverlapAction
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.chain.MonotoneChainOverlapAction class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MonotoneChainOverlapAction";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MonotoneChainOverlapAction.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.chain</FONT>
+<BR>
+Class MonotoneChainOverlapAction</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.chain.MonotoneChainOverlapAction</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html" title="class in com.vividsolutions.jts.noding">MCIndexNoder.SegmentOverlapAction</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>MonotoneChainOverlapAction</B><DT>extends java.lang.Object</DL>
+
+<P>
+The action for the internal iterator for performing
+ overlap queries on a MonotoneChain
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html#overlapSeg1">overlapSeg1</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html#overlapSeg2">overlapSeg2</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html#MonotoneChainOverlapAction()">MonotoneChainOverlapAction</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html#overlap(com.vividsolutions.jts.geom.LineSegment, com.vividsolutions.jts.geom.LineSegment)">overlap</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg1,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg2)</CODE>
+
+<BR>
+ This is a convenience function which can be overridden to obtain the actual
+ line segments which overlap</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html#overlap(com.vividsolutions.jts.index.chain.MonotoneChain, int, com.vividsolutions.jts.index.chain.MonotoneChain, int)">overlap</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A> mc1,
+ int start1,
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A> mc2,
+ int start2)</CODE>
+
+<BR>
+ This function can be overridden if the original chains are needed</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="overlapSeg1"><!-- --></A><H3>
+overlapSeg1</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> <B>overlapSeg1</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="overlapSeg2"><!-- --></A><H3>
+overlapSeg2</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> <B>overlapSeg2</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MonotoneChainOverlapAction()"><!-- --></A><H3>
+MonotoneChainOverlapAction</H3>
+<PRE>
+public <B>MonotoneChainOverlapAction</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="overlap(com.vividsolutions.jts.index.chain.MonotoneChain, int, com.vividsolutions.jts.index.chain.MonotoneChain, int)"><!-- --></A><H3>
+overlap</H3>
+<PRE>
+public void <B>overlap</B>(<A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A> mc1,
+ int start1,
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A> mc2,
+ int start2)</PRE>
+<DL>
+<DD>This function can be overridden if the original chains are needed
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>start1</CODE> - the index of the start of the overlapping segment from mc1<DD><CODE>start2</CODE> - the index of the start of the overlapping segment from mc2</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="overlap(com.vividsolutions.jts.geom.LineSegment, com.vividsolutions.jts.geom.LineSegment)"><!-- --></A><H3>
+overlap</H3>
+<PRE>
+public void <B>overlap</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg1,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg2)</PRE>
+<DL>
+<DD>This is a convenience function which can be overridden to obtain the actual
+ line segments which overlap
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>seg1</CODE> - <DD><CODE>seg2</CODE> - </DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MonotoneChainOverlapAction.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,289 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+MonotoneChainSelectAction
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.chain.MonotoneChainSelectAction class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MonotoneChainSelectAction";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MonotoneChainSelectAction.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.chain</FONT>
+<BR>
+Class MonotoneChainSelectAction</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.chain.MonotoneChainSelectAction</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexPointSnapper.HotPixelSnapAction</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>MonotoneChainSelectAction</B><DT>extends java.lang.Object</DL>
+
+<P>
+The action for the internal iterator for performing
+ envelope select queries on a MonotoneChain
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html#MonotoneChainSelectAction()">MonotoneChainSelectAction</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html#select(com.vividsolutions.jts.geom.LineSegment)">select</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg)</CODE>
+
+<BR>
+ This is a convenience function which can be overridden to obtain the actual
+ line segment which is selected</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html#select(com.vividsolutions.jts.index.chain.MonotoneChain, int)">select</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A> mc,
+ int start)</CODE>
+
+<BR>
+ This function can be overridden if the original chain is needed</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MonotoneChainSelectAction()"><!-- --></A><H3>
+MonotoneChainSelectAction</H3>
+<PRE>
+public <B>MonotoneChainSelectAction</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="select(com.vividsolutions.jts.index.chain.MonotoneChain, int)"><!-- --></A><H3>
+select</H3>
+<PRE>
+public void <B>select</B>(<A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A> mc,
+ int start)</PRE>
+<DL>
+<DD>This function can be overridden if the original chain is needed
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="select(com.vividsolutions.jts.geom.LineSegment)"><!-- --></A><H3>
+select</H3>
+<PRE>
+public void <B>select</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg)</PRE>
+<DL>
+<DD>This is a convenience function which can be overridden to obtain the actual
+ line segment which is selected
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>seg</CODE> - </DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MonotoneChainSelectAction.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index.chain
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.chain package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/index/chain/package-summary.html" target="classFrame">com.vividsolutions.jts.index.chain</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain" target="classFrame">MonotoneChain</A>
+<BR>
+<A HREF="MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain" target="classFrame">MonotoneChainBuilder</A>
+<BR>
+<A HREF="MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain" target="classFrame">MonotoneChainOverlapAction</A>
+<BR>
+<A HREF="MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain" target="classFrame">MonotoneChainSelectAction</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index.chain
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.chain package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.index.chain";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.index.chain
+</H2>
+Contains classes that implement Monotone Chains
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A></B></TD>
+<TD>MonotoneChains are a way of partitioning the segments of a linestring to
+ allow for fast searching of intersections.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainBuilder</A></B></TD>
+<TD>A MonotoneChainBuilder implements functions to determine the monotone chains
+ in a sequence of points.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainOverlapAction</A></B></TD>
+<TD>The action for the internal iterator for performing
+ overlap queries on a MonotoneChain</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainSelectAction</A></B></TD>
+<TD>The action for the internal iterator for performing
+ envelope select queries on a MonotoneChain</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.index.chain Description
+</H2>
+
+<P>
+Contains classes that implement Monotone Chains
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/chain/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index.chain Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.index.chain Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.index.chain
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.chain.<A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><B>MonotoneChain</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.chain.<A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain"><B>MonotoneChainBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.chain.<A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain"><B>MonotoneChainOverlapAction</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.chain.<A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain"><B>MonotoneChainSelectAction</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/bintree/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/vividsolutions/jts/index/package-summary.html" target="classFrame">com.vividsolutions.jts.index</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="ItemVisitor.html" title="interface in com.vividsolutions.jts.index" target="classFrame"><I>ItemVisitor</I></A>
+<BR>
+<A HREF="SpatialIndex.html" title="interface in com.vividsolutions.jts.index" target="classFrame"><I>SpatialIndex</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="ArrayListVisitor.html" title="class in com.vividsolutions.jts.index" target="classFrame">ArrayListVisitor</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.index";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/index/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/index/bintree/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.index
+</H2>
+Provides classes for various kinds of spatial indexes.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A></B></TD>
+<TD>A visitor for items in an index.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></B></TD>
+<TD>The basic operations supported by classes
+ implementing spatial index algorithms.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/index/ArrayListVisitor.html" title="class in com.vividsolutions.jts.index">ArrayListVisitor</A></B></TD>
+<TD> </TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.index Description
+</H2>
+
+<P>
+Provides classes for various kinds of spatial indexes.
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/index/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/index/bintree/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.index Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/index/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/index/bintree/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.index
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.<A HREF="../../../../com/vividsolutions/jts/index/ArrayListVisitor.html" title="class in com.vividsolutions.jts.index"><B>ArrayListVisitor</B></A> (implements com.vividsolutions.jts.index.<A HREF="../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A>)
+</UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">interface com.vividsolutions.jts.index.<A HREF="../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index"><B>ItemVisitor</B></A><LI TYPE="circle">interface com.vividsolutions.jts.index.<A HREF="../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index"><B>SpatialIndex</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/geomgraph/index/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/index/bintree/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/DoubleBits.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/DoubleBits.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/DoubleBits.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,519 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+DoubleBits
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.quadtree.DoubleBits class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="DoubleBits";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DoubleBits.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.quadtree</FONT>
+<BR>
+Class DoubleBits</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.quadtree.DoubleBits</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>DoubleBits</B><DT>extends java.lang.Object</DL>
+
+<P>
+DoubleBits manipulates Double numbers
+ by using bit manipulation and bit-field extraction.
+ For some operations (such as determining the exponent)
+ this is more accurate than using mathematical operations
+ (which suffer from round-off error).
+ <p>
+ The algorithms and constants in this class
+ apply only to IEEE-754 double-precision floating point format.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html#EXPONENT_BIAS">EXPONENT_BIAS</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html#DoubleBits(double)">DoubleBits</A></B>(double x)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html#biasedExponent()">biasedExponent</A></B>()</CODE>
+
+<BR>
+ Determines the exponent for the number</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html#exponent(double)">exponent</A></B>(double d)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html#getBit(int)">getBit</A></B>(int i)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html#getDouble()">getDouble</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html#getExponent()">getExponent</A></B>()</CODE>
+
+<BR>
+ Determines the exponent for the number</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html#maximumCommonMantissa(double, double)">maximumCommonMantissa</A></B>(double d1,
+ double d2)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html#numCommonMantissaBits(com.vividsolutions.jts.index.quadtree.DoubleBits)">numCommonMantissaBits</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A> db)</CODE>
+
+<BR>
+ This computes the number of common most-significant bits in the mantissa.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html#powerOf2(int)">powerOf2</A></B>(int exp)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html#toBinaryString(double)">toBinaryString</A></B>(double d)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ A representation of the Double bits formatted for easy readability</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html#truncateToPowerOfTwo(double)">truncateToPowerOfTwo</A></B>(double d)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html#zeroLowerBits(int)">zeroLowerBits</A></B>(int nBits)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EXPONENT_BIAS"><!-- --></A><H3>
+EXPONENT_BIAS</H3>
+<PRE>
+public static final int <B>EXPONENT_BIAS</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.index.quadtree.DoubleBits.EXPONENT_BIAS">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="DoubleBits(double)"><!-- --></A><H3>
+DoubleBits</H3>
+<PRE>
+public <B>DoubleBits</B>(double x)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="powerOf2(int)"><!-- --></A><H3>
+powerOf2</H3>
+<PRE>
+public static double <B>powerOf2</B>(int exp)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="exponent(double)"><!-- --></A><H3>
+exponent</H3>
+<PRE>
+public static int <B>exponent</B>(double d)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="truncateToPowerOfTwo(double)"><!-- --></A><H3>
+truncateToPowerOfTwo</H3>
+<PRE>
+public static double <B>truncateToPowerOfTwo</B>(double d)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toBinaryString(double)"><!-- --></A><H3>
+toBinaryString</H3>
+<PRE>
+public static java.lang.String <B>toBinaryString</B>(double d)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="maximumCommonMantissa(double, double)"><!-- --></A><H3>
+maximumCommonMantissa</H3>
+<PRE>
+public static double <B>maximumCommonMantissa</B>(double d1,
+ double d2)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDouble()"><!-- --></A><H3>
+getDouble</H3>
+<PRE>
+public double <B>getDouble</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="biasedExponent()"><!-- --></A><H3>
+biasedExponent</H3>
+<PRE>
+public int <B>biasedExponent</B>()</PRE>
+<DL>
+<DD>Determines the exponent for the number
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getExponent()"><!-- --></A><H3>
+getExponent</H3>
+<PRE>
+public int <B>getExponent</B>()</PRE>
+<DL>
+<DD>Determines the exponent for the number
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="zeroLowerBits(int)"><!-- --></A><H3>
+zeroLowerBits</H3>
+<PRE>
+public void <B>zeroLowerBits</B>(int nBits)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBit(int)"><!-- --></A><H3>
+getBit</H3>
+<PRE>
+public int <B>getBit</B>(int i)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="numCommonMantissaBits(com.vividsolutions.jts.index.quadtree.DoubleBits)"><!-- --></A><H3>
+numCommonMantissaBits</H3>
+<PRE>
+public int <B>numCommonMantissaBits</B>(<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A> db)</PRE>
+<DL>
+<DD>This computes the number of common most-significant bits in the mantissa.
+ It does not count the hidden bit, which is always 1.
+ It does not determine whether the numbers have the same exponent - if they do
+ not, the value computed by this function is meaningless.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>db</CODE> -
+<DT><B>Returns:</B><DD>the number of common most-significant mantissa bits</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD>A representation of the Double bits formatted for easy readability
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DoubleBits.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/IntervalSize.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/IntervalSize.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/IntervalSize.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,308 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+IntervalSize
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.quadtree.IntervalSize class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="IntervalSize";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="IntervalSize.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.quadtree</FONT>
+<BR>
+Class IntervalSize</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.quadtree.IntervalSize</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>IntervalSize</B><DT>extends java.lang.Object</DL>
+
+<P>
+Provides a test for whether an interval is
+ so small it should be considered as zero for the purposes of
+ inserting it into a binary tree.
+ The reason this check is necessary is that round-off error can
+ cause the algorithm used to subdivide an interval to fail, by
+ computing a midpoint value which does not lie strictly between the
+ endpoints.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/IntervalSize.html#MIN_BINARY_EXPONENT">MIN_BINARY_EXPONENT</A></B></CODE>
+
+<BR>
+ This value is chosen to be a few powers of 2 less than the
+ number of bits available in the double representation (i.e.</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/IntervalSize.html#IntervalSize()">IntervalSize</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/IntervalSize.html#isZeroWidth(double, double)">isZeroWidth</A></B>(double min,
+ double max)</CODE>
+
+<BR>
+ Computes whether the interval [min, max] is effectively zero width.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MIN_BINARY_EXPONENT"><!-- --></A><H3>
+MIN_BINARY_EXPONENT</H3>
+<PRE>
+public static final int <B>MIN_BINARY_EXPONENT</B></PRE>
+<DL>
+<DD>This value is chosen to be a few powers of 2 less than the
+ number of bits available in the double representation (i.e. 53).
+ This should allow enough extra precision for simple computations to be correct,
+ at least for comparison purposes.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.index.quadtree.IntervalSize.MIN_BINARY_EXPONENT">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="IntervalSize()"><!-- --></A><H3>
+IntervalSize</H3>
+<PRE>
+public <B>IntervalSize</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isZeroWidth(double, double)"><!-- --></A><H3>
+isZeroWidth</H3>
+<PRE>
+public static boolean <B>isZeroWidth</B>(double min,
+ double max)</PRE>
+<DL>
+<DD>Computes whether the interval [min, max] is effectively zero width.
+ I.e. the width of the interval is so much less than the
+ location of the interval that the midpoint of the interval cannot be
+ represented precisely.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="IntervalSize.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Key.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Key.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Key.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,359 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Key
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.quadtree.Key class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Key";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Key.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.quadtree</FONT>
+<BR>
+Class Key</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.quadtree.Key</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Key</B><DT>extends java.lang.Object</DL>
+
+<P>
+A Key is a unique identifier for a node in a quadtree.
+ It contains a lower-left point and a level number. The level number
+ is the power of two for the size of the node envelope
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Key.html#Key(com.vividsolutions.jts.geom.Envelope)">Key</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Key.html#computeKey(com.vividsolutions.jts.geom.Envelope)">computeKey</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv)</CODE>
+
+<BR>
+ return a square envelope containing the argument envelope,
+ whose extent is a power of two and which is based at a power of 2</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Key.html#computeQuadLevel(com.vividsolutions.jts.geom.Envelope)">computeQuadLevel</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Key.html#getCentre()">getCentre</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Key.html#getEnvelope()">getEnvelope</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Key.html#getLevel()">getLevel</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Key.html#getPoint()">getPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Key(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+Key</H3>
+<PRE>
+public <B>Key</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="computeQuadLevel(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+computeQuadLevel</H3>
+<PRE>
+public static int <B>computeQuadLevel</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPoint()"><!-- --></A><H3>
+getPoint</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getPoint</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLevel()"><!-- --></A><H3>
+getLevel</H3>
+<PRE>
+public int <B>getLevel</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEnvelope()"><!-- --></A><H3>
+getEnvelope</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>getEnvelope</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCentre()"><!-- --></A><H3>
+getCentre</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCentre</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeKey(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+computeKey</H3>
+<PRE>
+public void <B>computeKey</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv)</PRE>
+<DL>
+<DD>return a square envelope containing the argument envelope,
+ whose extent is a power of two and which is based at a power of 2
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Key.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Node.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Node.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Node.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,396 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Node
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.quadtree.Node class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Node";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Node.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.index.quadtree.NodeBase">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.quadtree</FONT>
+<BR>
+Class Node</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">com.vividsolutions.jts.index.quadtree.NodeBase</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.quadtree.Node</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Node</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A></DL>
+
+<P>
+Represents a node of a <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><CODE>Quadtree</CODE></A>. Nodes contain
+ items which have a spatial extent corresponding to the node's position
+ in the quadtree.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.index.quadtree.NodeBase"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.index.quadtree.<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#items">items</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#subnode">subnode</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html#Node(com.vividsolutions.jts.geom.Envelope, int)">Node</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env,
+ int level)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html#createExpanded(com.vividsolutions.jts.index.quadtree.Node, com.vividsolutions.jts.geom.Envelope)">createExpanded</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A> node,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> addEnv)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html#createNode(com.vividsolutions.jts.geom.Envelope)">createNode</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html#find(com.vividsolutions.jts.geom.Envelope)">find</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</CODE>
+
+<BR>
+ Returns the smallest <i>existing</i>
+ node containing the envelope.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html#getEnvelope()">getEnvelope</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html#getNode(com.vividsolutions.jts.geom.Envelope)">getNode</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</CODE>
+
+<BR>
+ Returns the subquad containing the envelope.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html#isSearchMatch(com.vividsolutions.jts.geom.Envelope)">isSearchMatch</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.index.quadtree.NodeBase"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.index.quadtree.<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#add(java.lang.Object)">add</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#addAllItems(java.util.List)">addAllItems</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#addAllItemsFromOverlapping(com.vividsolutions.jts.geom.Envelope, java.util.List)">addAllItemsFromOverlapping</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#getItems()">getItems</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#getSubnodeIndex(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.geom.Coordinate)">getSubnodeIndex</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#hasChildren()">hasChildren</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#hasItems()">hasItems</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#isEmpty()">isEmpty</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#isPrunable()">isPrunable</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)">remove</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#visit(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)">visit</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Node(com.vividsolutions.jts.geom.Envelope, int)"><!-- --></A><H3>
+Node</H3>
+<PRE>
+public <B>Node</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env,
+ int level)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="createNode(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+createNode</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A> <B>createNode</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createExpanded(com.vividsolutions.jts.index.quadtree.Node, com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+createExpanded</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A> <B>createExpanded</B>(<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A> node,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> addEnv)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEnvelope()"><!-- --></A><H3>
+getEnvelope</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>getEnvelope</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSearchMatch(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+isSearchMatch</H3>
+<PRE>
+protected boolean <B>isSearchMatch</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#isSearchMatch(com.vividsolutions.jts.geom.Envelope)">isSearchMatch</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNode(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+getNode</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A> <B>getNode</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</PRE>
+<DL>
+<DD>Returns the subquad containing the envelope.
+ Creates the subquad if
+ it does not already exist.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="find(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+find</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A> <B>find</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</PRE>
+<DL>
+<DD>Returns the smallest <i>existing</i>
+ node containing the envelope.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Node.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.index.quadtree.NodeBase">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/NodeBase.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/NodeBase.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/NodeBase.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,541 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+NodeBase
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.quadtree.NodeBase class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="NodeBase";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NodeBase.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.quadtree</FONT>
+<BR>
+Class NodeBase</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.quadtree.NodeBase</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Root.html" title="class in com.vividsolutions.jts.index.quadtree">Root</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public abstract class <B>NodeBase</B><DT>extends java.lang.Object</DL>
+
+<P>
+The base class for nodes in a <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><CODE>Quadtree</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#items">items</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#subnode">subnode</A></B></CODE>
+
+<BR>
+ subquads are numbered as follows:
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#NodeBase()">NodeBase</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#add(java.lang.Object)">add</A></B>(java.lang.Object item)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#addAllItems(java.util.List)">addAllItems</A></B>(java.util.List resultItems)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#addAllItemsFromOverlapping(com.vividsolutions.jts.geom.Envelope, java.util.List)">addAllItemsFromOverlapping</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv,
+ java.util.List resultItems)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#getItems()">getItems</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#getSubnodeIndex(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.geom.Coordinate)">getSubnodeIndex</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> centre)</CODE>
+
+<BR>
+ Returns the index of the subquad that wholly contains the given envelope.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#hasChildren()">hasChildren</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#hasItems()">hasItems</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#isEmpty()">isEmpty</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#isPrunable()">isPrunable</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected abstract boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#isSearchMatch(com.vividsolutions.jts.geom.Envelope)">isSearchMatch</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)">remove</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</CODE>
+
+<BR>
+ Removes a single item from this subtree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#visit(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)">visit</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv,
+ <A HREF="../../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A> visitor)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="items"><!-- --></A><H3>
+items</H3>
+<PRE>
+protected java.util.List <B>items</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="subnode"><!-- --></A><H3>
+subnode</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A>[] <B>subnode</B></PRE>
+<DL>
+<DD>subquads are numbered as follows:
+ <pre>
+ 2 | 3
+ --+--
+ 0 | 1
+ </pre>
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="NodeBase()"><!-- --></A><H3>
+NodeBase</H3>
+<PRE>
+public <B>NodeBase</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getSubnodeIndex(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+getSubnodeIndex</H3>
+<PRE>
+public static int <B>getSubnodeIndex</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> env,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> centre)</PRE>
+<DL>
+<DD>Returns the index of the subquad that wholly contains the given envelope.
+ If none does, returns -1.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getItems()"><!-- --></A><H3>
+getItems</H3>
+<PRE>
+public java.util.List <B>getItems</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasItems()"><!-- --></A><H3>
+hasItems</H3>
+<PRE>
+public boolean <B>hasItems</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(java.lang.Object)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(java.lang.Object item)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public boolean <B>remove</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</PRE>
+<DL>
+<DD>Removes a single item from this subtree.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>item</CODE> - the item to remove
+<DT><B>Returns:</B><DD><code>true</code> if the item was found and removed</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isPrunable()"><!-- --></A><H3>
+isPrunable</H3>
+<PRE>
+public boolean <B>isPrunable</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasChildren()"><!-- --></A><H3>
+hasChildren</H3>
+<PRE>
+public boolean <B>hasChildren</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEmpty()"><!-- --></A><H3>
+isEmpty</H3>
+<PRE>
+public boolean <B>isEmpty</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addAllItems(java.util.List)"><!-- --></A><H3>
+addAllItems</H3>
+<PRE>
+public java.util.List <B>addAllItems</B>(java.util.List resultItems)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSearchMatch(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+isSearchMatch</H3>
+<PRE>
+protected abstract boolean <B>isSearchMatch</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addAllItemsFromOverlapping(com.vividsolutions.jts.geom.Envelope, java.util.List)"><!-- --></A><H3>
+addAllItemsFromOverlapping</H3>
+<PRE>
+public void <B>addAllItemsFromOverlapping</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv,
+ java.util.List resultItems)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="visit(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)"><!-- --></A><H3>
+visit</H3>
+<PRE>
+public void <B>visit</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv,
+ <A HREF="../../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A> visitor)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NodeBase.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Quadtree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Quadtree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Quadtree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,478 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Quadtree
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.quadtree.Quadtree class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Quadtree";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Root.html" title="class in com.vividsolutions.jts.index.quadtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Quadtree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.quadtree</FONT>
+<BR>
+Class Quadtree</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.quadtree.Quadtree</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>Quadtree</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></DL>
+
+<P>
+A Quadtree is a spatial index structure for efficient querying
+ of 2D rectangles. If other kinds of spatial objects
+ need to be indexed they can be represented by their
+ envelopes
+ <p>
+ The quadtree structure is used to provide a primary filter
+ for range rectangle queries. The query() method returns a list of
+ all objects which <i>may</i> intersect the query rectangle. Note that
+ it may return objects which do not in fact intersect.
+ A secondary filter is required to test for exact intersection.
+ Of course, this secondary filter may consist of other tests besides
+ intersection, such as testing other kinds of spatial relationships.
+
+ <p>
+ This implementation does not require specifying the extent of the inserted
+ items beforehand. It will automatically expand to accomodate any extent
+ of dataset.
+ <p>
+ This data structure is also known as an <i>MX-CIF quadtree</i>
+ following the usage of Samet and others.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html#Quadtree()">Quadtree</A></B>()</CODE>
+
+<BR>
+ Constructs a Quadtree with zero items.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html#depth()">depth</A></B>()</CODE>
+
+<BR>
+ Returns the number of levels in the tree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html#ensureExtent(com.vividsolutions.jts.geom.Envelope, double)">ensureExtent</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ double minExtent)</CODE>
+
+<BR>
+ Ensure that the envelope for the inserted item has non-zero extents.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html#insert(com.vividsolutions.jts.geom.Envelope, java.lang.Object)">insert</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</CODE>
+
+<BR>
+ Adds a spatial item with an extent specified by the given <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A> to the index</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html#query(com.vividsolutions.jts.geom.Envelope)">query</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</CODE>
+
+<BR>
+ Queries the index for all items whose extents intersect the given search <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A>
+ Note that some kinds of indexes may also return objects which do not in fact
+ intersect the query envelope.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html#query(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)">query</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv,
+ <A HREF="../../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A> visitor)</CODE>
+
+<BR>
+ Queries the index for all items whose extents intersect the given search <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A>,
+ and applies an <A HREF="../../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index"><CODE>ItemVisitor</CODE></A> to them.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html#queryAll()">queryAll</A></B>()</CODE>
+
+<BR>
+ Return a list of all items in the Quadtree</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html#remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)">remove</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</CODE>
+
+<BR>
+ Removes a single item from the tree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html#size()">size</A></B>()</CODE>
+
+<BR>
+ Returns the number of items in the tree.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Quadtree()"><!-- --></A><H3>
+Quadtree</H3>
+<PRE>
+public <B>Quadtree</B>()</PRE>
+<DL>
+<DD>Constructs a Quadtree with zero items.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ensureExtent(com.vividsolutions.jts.geom.Envelope, double)"><!-- --></A><H3>
+ensureExtent</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>ensureExtent</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ double minExtent)</PRE>
+<DL>
+<DD>Ensure that the envelope for the inserted item has non-zero extents.
+ Use the current minExtent to pad the envelope, if necessary
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="depth()"><!-- --></A><H3>
+depth</H3>
+<PRE>
+public int <B>depth</B>()</PRE>
+<DL>
+<DD>Returns the number of levels in the tree.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="size()"><!-- --></A><H3>
+size</H3>
+<PRE>
+public int <B>size</B>()</PRE>
+<DL>
+<DD>Returns the number of items in the tree.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of items in the tree</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="insert(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><!-- --></A><H3>
+insert</H3>
+<PRE>
+public void <B>insert</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></CODE></B></DD>
+<DD>Adds a spatial item with an extent specified by the given <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A> to the index
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html#insert(com.vividsolutions.jts.geom.Envelope, java.lang.Object)">insert</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public boolean <B>remove</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</PRE>
+<DL>
+<DD>Removes a single item from the tree.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html#remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)">remove</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>itemEnv</CODE> - the Envelope of the item to remove<DD><CODE>item</CODE> - the item to remove
+<DT><B>Returns:</B><DD><code>true</code> if the item was found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="query(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+query</H3>
+<PRE>
+public java.util.List <B>query</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></CODE></B></DD>
+<DD>Queries the index for all items whose extents intersect the given search <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A>
+ Note that some kinds of indexes may also return objects which do not in fact
+ intersect the query envelope.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html#query(com.vividsolutions.jts.geom.Envelope)">query</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>searchEnv</CODE> - the envelope to query for
+<DT><B>Returns:</B><DD>a list of the items found by the query</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="query(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)"><!-- --></A><H3>
+query</H3>
+<PRE>
+public void <B>query</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv,
+ <A HREF="../../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A> visitor)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></CODE></B></DD>
+<DD>Queries the index for all items whose extents intersect the given search <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A>,
+ and applies an <A HREF="../../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index"><CODE>ItemVisitor</CODE></A> to them.
+ Note that some kinds of indexes may also return objects which do not in fact
+ intersect the query envelope.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html#query(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)">query</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>searchEnv</CODE> - the envelope to query for<DD><CODE>visitor</CODE> - a visitor object to apply to the items found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="queryAll()"><!-- --></A><H3>
+queryAll</H3>
+<PRE>
+public java.util.List <B>queryAll</B>()</PRE>
+<DL>
+<DD>Return a list of all items in the Quadtree
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Root.html" title="class in com.vividsolutions.jts.index.quadtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Quadtree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Root.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Root.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/Root.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,311 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Root
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.quadtree.Root class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Root";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Root.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.index.quadtree.NodeBase">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.quadtree</FONT>
+<BR>
+Class Root</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">com.vividsolutions.jts.index.quadtree.NodeBase</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.quadtree.Root</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Root</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A></DL>
+
+<P>
+QuadRoot is the root of a single Quadtree. It is centred at the origin,
+ and does not have a defined extent.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.index.quadtree.NodeBase"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.index.quadtree.<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#items">items</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#subnode">subnode</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Root.html#Root()">Root</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Root.html#insert(com.vividsolutions.jts.geom.Envelope, java.lang.Object)">insert</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</CODE>
+
+<BR>
+ Insert an item into the quadtree this is the root of.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Root.html#isSearchMatch(com.vividsolutions.jts.geom.Envelope)">isSearchMatch</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.index.quadtree.NodeBase"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.index.quadtree.<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#add(java.lang.Object)">add</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#addAllItems(java.util.List)">addAllItems</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#addAllItemsFromOverlapping(com.vividsolutions.jts.geom.Envelope, java.util.List)">addAllItemsFromOverlapping</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#getItems()">getItems</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#getSubnodeIndex(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.geom.Coordinate)">getSubnodeIndex</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#hasChildren()">hasChildren</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#hasItems()">hasItems</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#isEmpty()">isEmpty</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#isPrunable()">isPrunable</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)">remove</A>, <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#visit(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)">visit</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Root()"><!-- --></A><H3>
+Root</H3>
+<PRE>
+public <B>Root</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="insert(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><!-- --></A><H3>
+insert</H3>
+<PRE>
+public void <B>insert</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</PRE>
+<DL>
+<DD>Insert an item into the quadtree this is the root of.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSearchMatch(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+isSearchMatch</H3>
+<PRE>
+protected boolean <B>isSearchMatch</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html#isSearchMatch(com.vividsolutions.jts.geom.Envelope)">isSearchMatch</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Root.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.index.quadtree.NodeBase">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index.quadtree
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.quadtree package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/package-summary.html" target="classFrame">com.vividsolutions.jts.index.quadtree</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree" target="classFrame">DoubleBits</A>
+<BR>
+<A HREF="IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree" target="classFrame">IntervalSize</A>
+<BR>
+<A HREF="Key.html" title="class in com.vividsolutions.jts.index.quadtree" target="classFrame">Key</A>
+<BR>
+<A HREF="Node.html" title="class in com.vividsolutions.jts.index.quadtree" target="classFrame">Node</A>
+<BR>
+<A HREF="NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree" target="classFrame">NodeBase</A>
+<BR>
+<A HREF="Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree" target="classFrame">Quadtree</A>
+<BR>
+<A HREF="Root.html" title="class in com.vividsolutions.jts.index.quadtree" target="classFrame">Root</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,189 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index.quadtree
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.quadtree package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.index.quadtree";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.index.quadtree
+</H2>
+Contains classes that implement a Quadtree spatial index
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A></B></TD>
+<TD>DoubleBits manipulates Double numbers
+ by using bit manipulation and bit-field extraction.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree">IntervalSize</A></B></TD>
+<TD>Provides a test for whether an interval is
+ so small it should be considered as zero for the purposes of
+ inserting it into a binary tree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree">Key</A></B></TD>
+<TD>A Key is a unique identifier for a node in a quadtree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A></B></TD>
+<TD>Represents a node of a <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><CODE>Quadtree</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A></B></TD>
+<TD>The base class for nodes in a <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><CODE>Quadtree</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree">Quadtree</A></B></TD>
+<TD>A Quadtree is a spatial index structure for efficient querying
+ of 2D rectangles.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Root.html" title="class in com.vividsolutions.jts.index.quadtree">Root</A></B></TD>
+<TD>QuadRoot is the root of a single Quadtree.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.index.quadtree Description
+</H2>
+
+<P>
+Contains classes that implement a Quadtree spatial index
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/quadtree/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index.quadtree Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.index.quadtree Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.index.quadtree
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.quadtree.<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree"><B>DoubleBits</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.quadtree.<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree"><B>IntervalSize</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.quadtree.<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree"><B>Key</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.quadtree.<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree"><B>NodeBase</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.quadtree.<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree"><B>Node</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.quadtree.<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Root.html" title="class in com.vividsolutions.jts.index.quadtree"><B>Root</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.quadtree.<A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><B>Quadtree</B></A> (implements com.vividsolutions.jts.index.<A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A>)
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/AbstractNode.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/AbstractNode.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/AbstractNode.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,388 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+AbstractNode
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.strtree.AbstractNode class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="AbstractNode";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AbstractNode.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.strtree</FONT>
+<BR>
+Class AbstractNode</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.strtree.AbstractNode</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public abstract class <B>AbstractNode</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A></DL>
+
+<P>
+A node of the STR tree. The children of this node are either more nodes
+ (AbstractNodes) or real data (ItemBoundables). If this node contains real data
+ (rather than nodes), then we say that this node is a "leaf node".
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html#AbstractNode(int)">AbstractNode</A></B>(int level)</CODE>
+
+<BR>
+ Constructs an AbstractNode at the given level in the tree</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html#addChildBoundable(com.vividsolutions.jts.index.strtree.Boundable)">addChildBoundable</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A> childBoundable)</CODE>
+
+<BR>
+ Adds either an AbstractNode, or if this is a leaf node, a data object
+ (wrapped in an ItemBoundable)</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected abstract java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html#computeBounds()">computeBounds</A></B>()</CODE>
+
+<BR>
+ Returns a representation of space that encloses this Boundable,
+ preferably not much bigger than this Boundable's boundary yet fast to
+ test for intersection with the bounds of other Boundables.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html#getBounds()">getBounds</A></B>()</CODE>
+
+<BR>
+ Returns a representation of space that encloses this Boundable, preferably
+ not much bigger than this Boundable's boundary yet fast to test for intersection
+ with the bounds of other Boundables.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html#getChildBoundables()">getChildBoundables</A></B>()</CODE>
+
+<BR>
+ Returns either child AbstractNodes, or if this is a leaf node, real data (wrapped
+ in ItemBoundables).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html#getLevel()">getLevel</A></B>()</CODE>
+
+<BR>
+ Returns 0 if this node is a leaf, 1 if a parent of a leaf, and so on; the
+ root node will have the highest level</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="AbstractNode(int)"><!-- --></A><H3>
+AbstractNode</H3>
+<PRE>
+public <B>AbstractNode</B>(int level)</PRE>
+<DL>
+<DD>Constructs an AbstractNode at the given level in the tree
+<P>
+<DT><B>Parameters:</B><DD><CODE>level</CODE> - 0 if this node is a leaf, 1 if a parent of a leaf, and so on; the
+ root node will have the highest level</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getChildBoundables()"><!-- --></A><H3>
+getChildBoundables</H3>
+<PRE>
+public java.util.List <B>getChildBoundables</B>()</PRE>
+<DL>
+<DD>Returns either child AbstractNodes, or if this is a leaf node, real data (wrapped
+ in ItemBoundables).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeBounds()"><!-- --></A><H3>
+computeBounds</H3>
+<PRE>
+protected abstract java.lang.Object <B>computeBounds</B>()</PRE>
+<DL>
+<DD>Returns a representation of space that encloses this Boundable,
+ preferably not much bigger than this Boundable's boundary yet fast to
+ test for intersection with the bounds of other Boundables. The class of
+ object returned depends on the subclass of AbstractSTRtree.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an Envelope (for STRtrees), an Interval (for SIRtrees), or other
+ object (for other subclasses of AbstractSTRtree)<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree"><CODE>AbstractSTRtree.IntersectsOp</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBounds()"><!-- --></A><H3>
+getBounds</H3>
+<PRE>
+public java.lang.Object <B>getBounds</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A></CODE></B></DD>
+<DD>Returns a representation of space that encloses this Boundable, preferably
+ not much bigger than this Boundable's boundary yet fast to test for intersection
+ with the bounds of other Boundables. The class of object returned depends
+ on the subclass of AbstractSTRtree.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html#getBounds()">getBounds</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an Envelope (for STRtrees), an Interval (for SIRtrees), or other object
+ (for other subclasses of AbstractSTRtree)<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree"><CODE>AbstractSTRtree.IntersectsOp</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLevel()"><!-- --></A><H3>
+getLevel</H3>
+<PRE>
+public int <B>getLevel</B>()</PRE>
+<DL>
+<DD>Returns 0 if this node is a leaf, 1 if a parent of a leaf, and so on; the
+ root node will have the highest level
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addChildBoundable(com.vividsolutions.jts.index.strtree.Boundable)"><!-- --></A><H3>
+addChildBoundable</H3>
+<PRE>
+public void <B>addChildBoundable</B>(<A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A> childBoundable)</PRE>
+<DL>
+<DD>Adds either an AbstractNode, or if this is a leaf node, a data object
+ (wrapped in an ItemBoundable)
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AbstractNode.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,225 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+AbstractSTRtree.IntersectsOp
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.strtree.AbstractSTRtree.IntersectsOp interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="AbstractSTRtree.IntersectsOp";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AbstractSTRtree.IntersectsOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.strtree</FONT>
+<BR>
+Interface AbstractSTRtree.IntersectsOp</H2>
+<DL>
+<DT><B>Enclosing interface:</B><DD><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>protected static interface <B>AbstractSTRtree.IntersectsOp</B></DL>
+
+<P>
+A test for intersection between two bounds, necessary because subclasses
+ of AbstractSTRtree have different implementations of bounds.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html#intersects(java.lang.Object, java.lang.Object)">intersects</A></B>(java.lang.Object aBounds,
+ java.lang.Object bBounds)</CODE>
+
+<BR>
+ For STRtrees, the bounds will be Envelopes; for SIRtrees, Intervals;
+ for other subclasses of AbstractSTRtree, some other class.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="intersects(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
+intersects</H3>
+<PRE>
+public boolean <B>intersects</B>(java.lang.Object aBounds,
+ java.lang.Object bBounds)</PRE>
+<DL>
+<DD>For STRtrees, the bounds will be Envelopes; for SIRtrees, Intervals;
+ for other subclasses of AbstractSTRtree, some other class.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>aBounds</CODE> - the bounds of one spatial object<DD><CODE>bBounds</CODE> - the bounds of another spatial object
+<DT><B>Returns:</B><DD>whether the two bounds intersect</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AbstractSTRtree.IntersectsOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/AbstractSTRtree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/AbstractSTRtree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/AbstractSTRtree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,673 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+AbstractSTRtree
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.strtree.AbstractSTRtree class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="AbstractSTRtree";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AbstractSTRtree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.strtree</FONT>
+<BR>
+Class AbstractSTRtree</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.strtree.AbstractSTRtree</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree">SIRtree</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public abstract class <B>AbstractSTRtree</B><DT>extends java.lang.Object</DL>
+
+<P>
+Base class for STRtree and SIRtree. STR-packed R-trees are described in:
+ P. Rigaux, Michel Scholl and Agnes Voisard. Spatial Databases With
+ Application To GIS. Morgan Kaufmann, San Francisco, 2002.
+ <p>
+ This implementation is based on Boundables rather than just AbstractNodes,
+ because the STR algorithm operates on both nodes and
+ data, both of which are treated here as Boundables.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree"><CODE>STRtree</CODE></A>,
+<A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree"><CODE>SIRtree</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static interface</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree">AbstractSTRtree.IntersectsOp</A></B></CODE>
+
+<BR>
+ A test for intersection between two bounds, necessary because subclasses
+ of AbstractSTRtree have different implementations of bounds.</TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#root">root</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#AbstractSTRtree(int)">AbstractSTRtree</A></B>(int nodeCapacity)</CODE>
+
+<BR>
+ Constructs an AbstractSTRtree with the specified maximum number of child
+ nodes that a node may have</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#boundablesAtLevel(int)">boundablesAtLevel</A></B>(int level)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#build()">build</A></B>()</CODE>
+
+<BR>
+ Creates parent nodes, grandparent nodes, and so forth up to the root
+ node, for the data that has been inserted into the tree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#compareDoubles(double, double)">compareDoubles</A></B>(double a,
+ double b)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected abstract <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#createNode(int)">createNode</A></B>(int level)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#createParentBoundables(java.util.List, int)">createParentBoundables</A></B>(java.util.List childBoundables,
+ int newLevel)</CODE>
+
+<BR>
+ Sorts the childBoundables then divides them into groups of size M, where
+ M is the node capacity.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#depth()">depth</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#depth(com.vividsolutions.jts.index.strtree.AbstractNode)">depth</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A> node)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected abstract java.util.Comparator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getComparator()">getComparator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected abstract <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree">AbstractSTRtree.IntersectsOp</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getIntersectsOp()">getIntersectsOp</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getNodeCapacity()">getNodeCapacity</A></B>()</CODE>
+
+<BR>
+ Returns the maximum number of child nodes that a node may have</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getRoot()">getRoot</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#insert(java.lang.Object, java.lang.Object)">insert</A></B>(java.lang.Object bounds,
+ java.lang.Object item)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#lastNode(java.util.List)">lastNode</A></B>(java.util.List nodes)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#query(java.lang.Object)">query</A></B>(java.lang.Object searchBounds)</CODE>
+
+<BR>
+ Also builds the tree, if necessary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#query(java.lang.Object, com.vividsolutions.jts.index.ItemVisitor)">query</A></B>(java.lang.Object searchBounds,
+ <A HREF="../../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A> visitor)</CODE>
+
+<BR>
+ Also builds the tree, if necessary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#remove(java.lang.Object, java.lang.Object)">remove</A></B>(java.lang.Object searchBounds,
+ java.lang.Object item)</CODE>
+
+<BR>
+ Removes an item from the tree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#size()">size</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#size(com.vividsolutions.jts.index.strtree.AbstractNode)">size</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A> node)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="root"><!-- --></A><H3>
+root</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A> <B>root</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="AbstractSTRtree(int)"><!-- --></A><H3>
+AbstractSTRtree</H3>
+<PRE>
+public <B>AbstractSTRtree</B>(int nodeCapacity)</PRE>
+<DL>
+<DD>Constructs an AbstractSTRtree with the specified maximum number of child
+ nodes that a node may have
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="build()"><!-- --></A><H3>
+build</H3>
+<PRE>
+public void <B>build</B>()</PRE>
+<DL>
+<DD>Creates parent nodes, grandparent nodes, and so forth up to the root
+ node, for the data that has been inserted into the tree. Can only be
+ called once, and thus can be called only after all of the data has been
+ inserted into the tree.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createNode(int)"><!-- --></A><H3>
+createNode</H3>
+<PRE>
+protected abstract <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A> <B>createNode</B>(int level)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createParentBoundables(java.util.List, int)"><!-- --></A><H3>
+createParentBoundables</H3>
+<PRE>
+protected java.util.List <B>createParentBoundables</B>(java.util.List childBoundables,
+ int newLevel)</PRE>
+<DL>
+<DD>Sorts the childBoundables then divides them into groups of size M, where
+ M is the node capacity.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="lastNode(java.util.List)"><!-- --></A><H3>
+lastNode</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A> <B>lastNode</B>(java.util.List nodes)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareDoubles(double, double)"><!-- --></A><H3>
+compareDoubles</H3>
+<PRE>
+protected int <B>compareDoubles</B>(double a,
+ double b)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getRoot()"><!-- --></A><H3>
+getRoot</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A> <B>getRoot</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNodeCapacity()"><!-- --></A><H3>
+getNodeCapacity</H3>
+<PRE>
+public int <B>getNodeCapacity</B>()</PRE>
+<DL>
+<DD>Returns the maximum number of child nodes that a node may have
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="size()"><!-- --></A><H3>
+size</H3>
+<PRE>
+protected int <B>size</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="size(com.vividsolutions.jts.index.strtree.AbstractNode)"><!-- --></A><H3>
+size</H3>
+<PRE>
+protected int <B>size</B>(<A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A> node)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="depth()"><!-- --></A><H3>
+depth</H3>
+<PRE>
+protected int <B>depth</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="depth(com.vividsolutions.jts.index.strtree.AbstractNode)"><!-- --></A><H3>
+depth</H3>
+<PRE>
+protected int <B>depth</B>(<A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A> node)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="insert(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
+insert</H3>
+<PRE>
+protected void <B>insert</B>(java.lang.Object bounds,
+ java.lang.Object item)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="query(java.lang.Object)"><!-- --></A><H3>
+query</H3>
+<PRE>
+protected java.util.List <B>query</B>(java.lang.Object searchBounds)</PRE>
+<DL>
+<DD>Also builds the tree, if necessary.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="query(java.lang.Object, com.vividsolutions.jts.index.ItemVisitor)"><!-- --></A><H3>
+query</H3>
+<PRE>
+protected void <B>query</B>(java.lang.Object searchBounds,
+ <A HREF="../../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A> visitor)</PRE>
+<DL>
+<DD>Also builds the tree, if necessary.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIntersectsOp()"><!-- --></A><H3>
+getIntersectsOp</H3>
+<PRE>
+protected abstract <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree">AbstractSTRtree.IntersectsOp</A> <B>getIntersectsOp</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a test for intersection between two bounds, necessary because subclasses
+ of AbstractSTRtree have different implementations of bounds.<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree"><CODE>AbstractSTRtree.IntersectsOp</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+protected boolean <B>remove</B>(java.lang.Object searchBounds,
+ java.lang.Object item)</PRE>
+<DL>
+<DD>Removes an item from the tree.
+ (Builds the tree, if necessary.)
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="boundablesAtLevel(int)"><!-- --></A><H3>
+boundablesAtLevel</H3>
+<PRE>
+protected java.util.List <B>boundablesAtLevel</B>(int level)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getComparator()"><!-- --></A><H3>
+getComparator</H3>
+<PRE>
+protected abstract java.util.Comparator <B>getComparator</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AbstractSTRtree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/Boundable.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/Boundable.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/Boundable.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,230 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Boundable
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.strtree.Boundable interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Boundable";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Boundable.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.strtree</FONT>
+<BR>
+Interface Boundable</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree">ItemBoundable</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public interface <B>Boundable</B></DL>
+
+<P>
+A spatial object in an AbstractSTRtree.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html#getBounds()">getBounds</A></B>()</CODE>
+
+<BR>
+ Returns a representation of space that encloses this Boundable, preferably
+ not much bigger than this Boundable's boundary yet fast to test for intersection
+ with the bounds of other Boundables.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getBounds()"><!-- --></A><H3>
+getBounds</H3>
+<PRE>
+public java.lang.Object <B>getBounds</B>()</PRE>
+<DL>
+<DD>Returns a representation of space that encloses this Boundable, preferably
+ not much bigger than this Boundable's boundary yet fast to test for intersection
+ with the bounds of other Boundables. The class of object returned depends
+ on the subclass of AbstractSTRtree.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an Envelope (for STRtrees), an Interval (for SIRtrees), or other object
+ (for other subclasses of AbstractSTRtree)<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree"><CODE>AbstractSTRtree.IntersectsOp</CODE></A></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Boundable.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/Interval.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/Interval.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/Interval.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,332 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+Interval
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.strtree.Interval class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Interval";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Interval.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.strtree</FONT>
+<BR>
+Class Interval</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.strtree.Interval</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Interval</B><DT>extends java.lang.Object</DL>
+
+<P>
+A contiguous portion of 1D-space. Used internally by SIRtree.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree"><CODE>SIRtree</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html#Interval(double, double)">Interval</A></B>(double min,
+ double max)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html#Interval(com.vividsolutions.jts.index.strtree.Interval)">Interval</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A> other)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object o)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html#expandToInclude(com.vividsolutions.jts.index.strtree.Interval)">expandToInclude</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A> other)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html#getCentre()">getCentre</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html#intersects(com.vividsolutions.jts.index.strtree.Interval)">intersects</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A> other)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Interval(com.vividsolutions.jts.index.strtree.Interval)"><!-- --></A><H3>
+Interval</H3>
+<PRE>
+public <B>Interval</B>(<A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A> other)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="Interval(double, double)"><!-- --></A><H3>
+Interval</H3>
+<PRE>
+public <B>Interval</B>(double min,
+ double max)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCentre()"><!-- --></A><H3>
+getCentre</H3>
+<PRE>
+public double <B>getCentre</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="expandToInclude(com.vividsolutions.jts.index.strtree.Interval)"><!-- --></A><H3>
+expandToInclude</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A> <B>expandToInclude</B>(<A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A> other)</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>this</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="intersects(com.vividsolutions.jts.index.strtree.Interval)"><!-- --></A><H3>
+intersects</H3>
+<PRE>
+public boolean <B>intersects</B>(<A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A> other)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</B>(java.lang.Object o)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Interval.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/ItemBoundable.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/ItemBoundable.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/ItemBoundable.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,299 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+ItemBoundable
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.strtree.ItemBoundable class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ItemBoundable";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ItemBoundable.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.strtree</FONT>
+<BR>
+Class ItemBoundable</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.strtree.ItemBoundable</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>ItemBoundable</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A></DL>
+
+<P>
+Boundable wrapper for a non-Boundable spatial object. Used internally by
+ AbstractSTRtree.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/ItemBoundable.html#ItemBoundable(java.lang.Object, java.lang.Object)">ItemBoundable</A></B>(java.lang.Object bounds,
+ java.lang.Object item)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/ItemBoundable.html#getBounds()">getBounds</A></B>()</CODE>
+
+<BR>
+ Returns a representation of space that encloses this Boundable, preferably
+ not much bigger than this Boundable's boundary yet fast to test for intersection
+ with the bounds of other Boundables.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/ItemBoundable.html#getItem()">getItem</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ItemBoundable(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
+ItemBoundable</H3>
+<PRE>
+public <B>ItemBoundable</B>(java.lang.Object bounds,
+ java.lang.Object item)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getBounds()"><!-- --></A><H3>
+getBounds</H3>
+<PRE>
+public java.lang.Object <B>getBounds</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A></CODE></B></DD>
+<DD>Returns a representation of space that encloses this Boundable, preferably
+ not much bigger than this Boundable's boundary yet fast to test for intersection
+ with the bounds of other Boundables. The class of object returned depends
+ on the subclass of AbstractSTRtree.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html#getBounds()">getBounds</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an Envelope (for STRtrees), an Interval (for SIRtrees), or other object
+ (for other subclasses of AbstractSTRtree)<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree"><CODE>AbstractSTRtree.IntersectsOp</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getItem()"><!-- --></A><H3>
+getItem</H3>
+<PRE>
+public java.lang.Object <B>getItem</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ItemBoundable.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/SIRtree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/SIRtree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/SIRtree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,441 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:51 PST 2006 -->
+<TITLE>
+SIRtree
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.strtree.SIRtree class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SIRtree";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SIRtree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_classes_inherited_from_class_com.vividsolutions.jts.index.strtree.AbstractSTRtree">NESTED</A> | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.index.strtree.AbstractSTRtree">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.strtree</FONT>
+<BR>
+Class SIRtree</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">com.vividsolutions.jts.index.strtree.AbstractSTRtree</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.strtree.SIRtree</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SIRtree</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></DL>
+
+<P>
+One-dimensional version of an STR-packed R-tree. SIR stands for
+ "Sort-Interval-Recursive". STR-packed R-trees are described in:
+ P. Rigaux, Michel Scholl and Agnes Voisard. Spatial Databases With
+ Application To GIS. Morgan Kaufmann, San Francisco, 2002.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree"><CODE>STRtree</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="nested_classes_inherited_from_class_com.vividsolutions.jts.index.strtree.AbstractSTRtree"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Nested classes inherited from class com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree">AbstractSTRtree.IntersectsOp</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.index.strtree.AbstractSTRtree"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#root">root</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html#SIRtree()">SIRtree</A></B>()</CODE>
+
+<BR>
+ Constructs an SIRtree with the default node capacity.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html#SIRtree(int)">SIRtree</A></B>(int nodeCapacity)</CODE>
+
+<BR>
+ Constructs an SIRtree with the given maximum number of child nodes that
+ a node may have</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html#createNode(int)">createNode</A></B>(int level)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.Comparator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html#getComparator()">getComparator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree">AbstractSTRtree.IntersectsOp</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html#getIntersectsOp()">getIntersectsOp</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html#insert(double, double, java.lang.Object)">insert</A></B>(double x1,
+ double x2,
+ java.lang.Object item)</CODE>
+
+<BR>
+ Inserts an item having the given bounds into the tree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html#query(double)">query</A></B>(double x)</CODE>
+
+<BR>
+ Returns items whose bounds intersect the given value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html#query(double, double)">query</A></B>(double x1,
+ double x2)</CODE>
+
+<BR>
+ Returns items whose bounds intersect the given bounds.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.index.strtree.AbstractSTRtree"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#boundablesAtLevel(int)">boundablesAtLevel</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#build()">build</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#compareDoubles(double, double)">compareDoubles</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#createParentBoundables(java.util.List, int)">createParentBoundables</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#depth()">depth</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#depth(com.vividsolutions.jts.index.strtree.AbstractNode)">depth</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getNodeCapacity()">getNodeCapacity</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getRoot()">getRoot</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#insert(java.lang.Object, java.lang.Object)">insert</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#lastNode(java.util.List)">lastNode</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#query(java.lang.Object)">query</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#query(java.lang.Object, com.vividsolutions.jts.index.ItemVisitor)">query</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#remove(java.lang.Object, java.lang.Object)">remove</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#size()">size</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#size(com.vividsolutions.jts.index.strtree.AbstractNode)">size</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SIRtree()"><!-- --></A><H3>
+SIRtree</H3>
+<PRE>
+public <B>SIRtree</B>()</PRE>
+<DL>
+<DD>Constructs an SIRtree with the default node capacity.
+<P>
+</DL>
+<HR>
+
+<A NAME="SIRtree(int)"><!-- --></A><H3>
+SIRtree</H3>
+<PRE>
+public <B>SIRtree</B>(int nodeCapacity)</PRE>
+<DL>
+<DD>Constructs an SIRtree with the given maximum number of child nodes that
+ a node may have
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="createNode(int)"><!-- --></A><H3>
+createNode</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A> <B>createNode</B>(int level)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#createNode(int)">createNode</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="insert(double, double, java.lang.Object)"><!-- --></A><H3>
+insert</H3>
+<PRE>
+public void <B>insert</B>(double x1,
+ double x2,
+ java.lang.Object item)</PRE>
+<DL>
+<DD>Inserts an item having the given bounds into the tree.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="query(double)"><!-- --></A><H3>
+query</H3>
+<PRE>
+public java.util.List <B>query</B>(double x)</PRE>
+<DL>
+<DD>Returns items whose bounds intersect the given value.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="query(double, double)"><!-- --></A><H3>
+query</H3>
+<PRE>
+public java.util.List <B>query</B>(double x1,
+ double x2)</PRE>
+<DL>
+<DD>Returns items whose bounds intersect the given bounds.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>x1</CODE> - possibly equal to x2</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIntersectsOp()"><!-- --></A><H3>
+getIntersectsOp</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree">AbstractSTRtree.IntersectsOp</A> <B>getIntersectsOp</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getIntersectsOp()">getIntersectsOp</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a test for intersection between two bounds, necessary because subclasses
+ of AbstractSTRtree have different implementations of bounds.<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree"><CODE>AbstractSTRtree.IntersectsOp</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getComparator()"><!-- --></A><H3>
+getComparator</H3>
+<PRE>
+protected java.util.Comparator <B>getComparator</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getComparator()">getComparator</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SIRtree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_classes_inherited_from_class_com.vividsolutions.jts.index.strtree.AbstractSTRtree">NESTED</A> | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.index.strtree.AbstractSTRtree">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/STRtree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/STRtree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/STRtree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,615 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+STRtree
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.strtree.STRtree class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="STRtree";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="STRtree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_classes_inherited_from_class_com.vividsolutions.jts.index.strtree.AbstractSTRtree">NESTED</A> | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.index.strtree.AbstractSTRtree">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.strtree</FONT>
+<BR>
+Class STRtree</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">com.vividsolutions.jts.index.strtree.AbstractSTRtree</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.strtree.STRtree</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>STRtree</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A><DT>implements <A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></DL>
+
+<P>
+A query-only R-tree created using the Sort-Tile-Recursive (STR) algorithm.
+ For two-dimensional spatial data.
+ <P>
+ The STR packed R-tree is simple to implement and maximizes space
+ utilization; that is, as many leaves as possible are filled to capacity.
+ Overlap between nodes is far less than in a basic R-tree. However, once the
+ tree has been built (explicitly or on the first call to #query), items may
+ not be added or removed.
+ <P>
+ Described in: P. Rigaux, Michel Scholl and Agnes Voisard.
+ <i>Spatial Databases With Application To GIS</i>.
+ Morgan Kaufmann, San Francisco, 2002.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="nested_classes_inherited_from_class_com.vividsolutions.jts.index.strtree.AbstractSTRtree"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Nested classes inherited from class com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree">AbstractSTRtree.IntersectsOp</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.index.strtree.AbstractSTRtree"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#root">root</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html#STRtree()">STRtree</A></B>()</CODE>
+
+<BR>
+ Constructs an STRtree with the default node capacity.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html#STRtree(int)">STRtree</A></B>(int nodeCapacity)</CODE>
+
+<BR>
+ Constructs an STRtree with the given maximum number of child nodes that
+ a node may have</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html#createNode(int)">createNode</A></B>(int level)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html#createParentBoundables(java.util.List, int)">createParentBoundables</A></B>(java.util.List childBoundables,
+ int newLevel)</CODE>
+
+<BR>
+ Creates the parent level for the given child level.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html#createParentBoundablesFromVerticalSlice(java.util.List, int)">createParentBoundablesFromVerticalSlice</A></B>(java.util.List childBoundables,
+ int newLevel)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html#depth()">depth</A></B>()</CODE>
+
+<BR>
+ Returns the number of items in the tree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.Comparator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html#getComparator()">getComparator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree">AbstractSTRtree.IntersectsOp</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html#getIntersectsOp()">getIntersectsOp</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html#insert(com.vividsolutions.jts.geom.Envelope, java.lang.Object)">insert</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</CODE>
+
+<BR>
+ Inserts an item having the given bounds into the tree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html#query(com.vividsolutions.jts.geom.Envelope)">query</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</CODE>
+
+<BR>
+ Returns items whose bounds intersect the given envelope.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html#query(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)">query</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv,
+ <A HREF="../../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A> visitor)</CODE>
+
+<BR>
+ Returns items whose bounds intersect the given envelope.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html#remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)">remove</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</CODE>
+
+<BR>
+ Removes a single item from the tree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html#size()">size</A></B>()</CODE>
+
+<BR>
+ Returns the number of items in the tree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html#verticalSlices(java.util.List, int)">verticalSlices</A></B>(java.util.List childBoundables,
+ int sliceCount)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.index.strtree.AbstractSTRtree"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#boundablesAtLevel(int)">boundablesAtLevel</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#build()">build</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#compareDoubles(double, double)">compareDoubles</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#depth(com.vividsolutions.jts.index.strtree.AbstractNode)">depth</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getNodeCapacity()">getNodeCapacity</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getRoot()">getRoot</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#insert(java.lang.Object, java.lang.Object)">insert</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#lastNode(java.util.List)">lastNode</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#query(java.lang.Object)">query</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#query(java.lang.Object, com.vividsolutions.jts.index.ItemVisitor)">query</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#remove(java.lang.Object, java.lang.Object)">remove</A>, <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#size(com.vividsolutions.jts.index.strtree.AbstractNode)">size</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="STRtree()"><!-- --></A><H3>
+STRtree</H3>
+<PRE>
+public <B>STRtree</B>()</PRE>
+<DL>
+<DD>Constructs an STRtree with the default node capacity.
+<P>
+</DL>
+<HR>
+
+<A NAME="STRtree(int)"><!-- --></A><H3>
+STRtree</H3>
+<PRE>
+public <B>STRtree</B>(int nodeCapacity)</PRE>
+<DL>
+<DD>Constructs an STRtree with the given maximum number of child nodes that
+ a node may have
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="createParentBoundables(java.util.List, int)"><!-- --></A><H3>
+createParentBoundables</H3>
+<PRE>
+protected java.util.List <B>createParentBoundables</B>(java.util.List childBoundables,
+ int newLevel)</PRE>
+<DL>
+<DD>Creates the parent level for the given child level. First, orders the items
+ by the x-values of the midpoints, and groups them into vertical slices.
+ For each slice, orders the items by the y-values of the midpoints, and
+ group them into runs of size M (the node capacity). For each run, creates
+ a new (parent) node.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#createParentBoundables(java.util.List, int)">createParentBoundables</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createParentBoundablesFromVerticalSlice(java.util.List, int)"><!-- --></A><H3>
+createParentBoundablesFromVerticalSlice</H3>
+<PRE>
+protected java.util.List <B>createParentBoundablesFromVerticalSlice</B>(java.util.List childBoundables,
+ int newLevel)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="verticalSlices(java.util.List, int)"><!-- --></A><H3>
+verticalSlices</H3>
+<PRE>
+protected java.util.List[] <B>verticalSlices</B>(java.util.List childBoundables,
+ int sliceCount)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>childBoundables</CODE> - Must be sorted by the x-value of the envelope midpoints</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createNode(int)"><!-- --></A><H3>
+createNode</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A> <B>createNode</B>(int level)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#createNode(int)">createNode</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIntersectsOp()"><!-- --></A><H3>
+getIntersectsOp</H3>
+<PRE>
+protected <A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree">AbstractSTRtree.IntersectsOp</A> <B>getIntersectsOp</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getIntersectsOp()">getIntersectsOp</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a test for intersection between two bounds, necessary because subclasses
+ of AbstractSTRtree have different implementations of bounds.<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree"><CODE>AbstractSTRtree.IntersectsOp</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="insert(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><!-- --></A><H3>
+insert</H3>
+<PRE>
+public void <B>insert</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</PRE>
+<DL>
+<DD>Inserts an item having the given bounds into the tree.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html#insert(com.vividsolutions.jts.geom.Envelope, java.lang.Object)">insert</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="query(com.vividsolutions.jts.geom.Envelope)"><!-- --></A><H3>
+query</H3>
+<PRE>
+public java.util.List <B>query</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv)</PRE>
+<DL>
+<DD>Returns items whose bounds intersect the given envelope.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html#query(com.vividsolutions.jts.geom.Envelope)">query</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>searchEnv</CODE> - the envelope to query for
+<DT><B>Returns:</B><DD>a list of the items found by the query</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="query(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)"><!-- --></A><H3>
+query</H3>
+<PRE>
+public void <B>query</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> searchEnv,
+ <A HREF="../../../../../com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A> visitor)</PRE>
+<DL>
+<DD>Returns items whose bounds intersect the given envelope.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html#query(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)">query</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>searchEnv</CODE> - the envelope to query for<DD><CODE>visitor</CODE> - a visitor object to apply to the items found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public boolean <B>remove</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> itemEnv,
+ java.lang.Object item)</PRE>
+<DL>
+<DD>Removes a single item from the tree.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html#remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)">remove</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>itemEnv</CODE> - the Envelope of the item to remove<DD><CODE>item</CODE> - the item to remove
+<DT><B>Returns:</B><DD><code>true</code> if the item was found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="size()"><!-- --></A><H3>
+size</H3>
+<PRE>
+public int <B>size</B>()</PRE>
+<DL>
+<DD>Returns the number of items in the tree.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#size()">size</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of items in the tree</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="depth()"><!-- --></A><H3>
+depth</H3>
+<PRE>
+public int <B>depth</B>()</PRE>
+<DL>
+<DD>Returns the number of items in the tree.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#depth()">depth</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of items in the tree</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getComparator()"><!-- --></A><H3>
+getComparator</H3>
+<PRE>
+protected java.util.Comparator <B>getComparator</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getComparator()">getComparator</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="STRtree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_classes_inherited_from_class_com.vividsolutions.jts.index.strtree.AbstractSTRtree">NESTED</A> | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.index.strtree.AbstractSTRtree">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index.strtree
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.strtree package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/index/strtree/package-summary.html" target="classFrame">com.vividsolutions.jts.index.strtree</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree" target="classFrame"><I>AbstractSTRtree.IntersectsOp</I></A>
+<BR>
+<A HREF="Boundable.html" title="interface in com.vividsolutions.jts.index.strtree" target="classFrame"><I>Boundable</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree" target="classFrame">AbstractNode</A>
+<BR>
+<A HREF="AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree" target="classFrame">AbstractSTRtree</A>
+<BR>
+<A HREF="Interval.html" title="class in com.vividsolutions.jts.index.strtree" target="classFrame">Interval</A>
+<BR>
+<A HREF="ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree" target="classFrame">ItemBoundable</A>
+<BR>
+<A HREF="SIRtree.html" title="class in com.vividsolutions.jts.index.strtree" target="classFrame">SIRtree</A>
+<BR>
+<A HREF="STRtree.html" title="class in com.vividsolutions.jts.index.strtree" target="classFrame">STRtree</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index.strtree
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.strtree package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.index.strtree";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.index.strtree
+</H2>
+Contains 2-D and 1-D versions of the Sort-Tile-Recursive (STR) tree, a query-only R-tree.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree">AbstractSTRtree.IntersectsOp</A></B></TD>
+<TD>A test for intersection between two bounds, necessary because subclasses
+ of AbstractSTRtree have different implementations of bounds.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A></B></TD>
+<TD>A spatial object in an AbstractSTRtree.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A></B></TD>
+<TD>A node of the STR tree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A></B></TD>
+<TD>Base class for STRtree and SIRtree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A></B></TD>
+<TD>A contiguous portion of 1D-space.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree">ItemBoundable</A></B></TD>
+<TD>Boundable wrapper for a non-Boundable spatial object.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree">SIRtree</A></B></TD>
+<TD>One-dimensional version of an STR-packed R-tree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A></B></TD>
+<TD>A query-only R-tree created using the Sort-Tile-Recursive (STR) algorithm.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.index.strtree Description
+</H2>
+
+<P>
+Contains 2-D and 1-D versions of the Sort-Tile-Recursive (STR) tree, a query-only R-tree.
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/strtree/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index.strtree Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.index.strtree Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.index.strtree
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree"><B>AbstractNode</B></A> (implements com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>AbstractSTRtree</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>SIRtree</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>STRtree</B></A> (implements com.vividsolutions.jts.index.<A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A>)
+</UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree"><B>Interval</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree"><B>ItemBoundable</B></A> (implements com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A>)
+</UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">interface com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree"><B>AbstractSTRtree.IntersectsOp</B></A><LI TYPE="circle">interface com.vividsolutions.jts.index.strtree.<A HREF="../../../../../com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree"><B>Boundable</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineEvent.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineEvent.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineEvent.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,428 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+SweepLineEvent
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.sweepline.SweepLineEvent class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SweepLineEvent";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SweepLineEvent.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.sweepline</FONT>
+<BR>
+Class SweepLineEvent</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.sweepline.SweepLineEvent</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>SweepLineEvent</B><DT>extends java.lang.Object<DT>implements java.lang.Comparable</DL>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#DELETE">DELETE</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#INSERT">INSERT</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#SweepLineEvent(double, com.vividsolutions.jts.index.sweepline.SweepLineEvent, com.vividsolutions.jts.index.sweepline.SweepLineInterval)">SweepLineEvent</A></B>(double x,
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A> insertEvent,
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A> sweepInt)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#compareTo(java.lang.Object)">compareTo</A></B>(java.lang.Object o)</CODE>
+
+<BR>
+ ProjectionEvents are ordered first by their x-value, and then by their eventType.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#getDeleteEventIndex()">getDeleteEventIndex</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#getInsertEvent()">getInsertEvent</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#isDelete()">isDelete</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#isInsert()">isInsert</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#setDeleteEventIndex(int)">setDeleteEventIndex</A></B>(int deleteEventIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="INSERT"><!-- --></A><H3>
+INSERT</H3>
+<PRE>
+public static final int <B>INSERT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.index.sweepline.SweepLineEvent.INSERT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DELETE"><!-- --></A><H3>
+DELETE</H3>
+<PRE>
+public static final int <B>DELETE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.index.sweepline.SweepLineEvent.DELETE">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SweepLineEvent(double, com.vividsolutions.jts.index.sweepline.SweepLineEvent, com.vividsolutions.jts.index.sweepline.SweepLineInterval)"><!-- --></A><H3>
+SweepLineEvent</H3>
+<PRE>
+public <B>SweepLineEvent</B>(double x,
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A> insertEvent,
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A> sweepInt)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isInsert()"><!-- --></A><H3>
+isInsert</H3>
+<PRE>
+public boolean <B>isInsert</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isDelete()"><!-- --></A><H3>
+isDelete</H3>
+<PRE>
+public boolean <B>isDelete</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInsertEvent()"><!-- --></A><H3>
+getInsertEvent</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A> <B>getInsertEvent</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDeleteEventIndex()"><!-- --></A><H3>
+getDeleteEventIndex</H3>
+<PRE>
+public int <B>getDeleteEventIndex</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDeleteEventIndex(int)"><!-- --></A><H3>
+setDeleteEventIndex</H3>
+<PRE>
+public void <B>setDeleteEventIndex</B>(int deleteEventIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(java.lang.Object o)</PRE>
+<DL>
+<DD>ProjectionEvents are ordered first by their x-value, and then by their eventType.
+ It is important that Insert events are sorted before Delete events, so that
+ items whose Insert and Delete events occur at the same x-value will be
+ correctly handled.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE>java.lang.Comparable</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SweepLineEvent.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineIndex.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineIndex.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineIndex.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,278 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+SweepLineIndex
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.sweepline.SweepLineIndex class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SweepLineIndex";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SweepLineIndex.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.sweepline</FONT>
+<BR>
+Class SweepLineIndex</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.sweepline.SweepLineIndex</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SweepLineIndex</B><DT>extends java.lang.Object</DL>
+
+<P>
+A sweepline implements a sorted index on a set of intervals.
+ It is used to compute all overlaps between the interval in the index.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineIndex.html#SweepLineIndex()">SweepLineIndex</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineIndex.html#add(com.vividsolutions.jts.index.sweepline.SweepLineInterval)">add</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A> sweepInt)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineIndex.html#computeOverlaps(com.vividsolutions.jts.index.sweepline.SweepLineOverlapAction)">computeOverlaps</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html" title="interface in com.vividsolutions.jts.index.sweepline">SweepLineOverlapAction</A> action)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SweepLineIndex()"><!-- --></A><H3>
+SweepLineIndex</H3>
+<PRE>
+public <B>SweepLineIndex</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(com.vividsolutions.jts.index.sweepline.SweepLineInterval)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A> sweepInt)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeOverlaps(com.vividsolutions.jts.index.sweepline.SweepLineOverlapAction)"><!-- --></A><H3>
+computeOverlaps</H3>
+<PRE>
+public void <B>computeOverlaps</B>(<A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html" title="interface in com.vividsolutions.jts.index.sweepline">SweepLineOverlapAction</A> action)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SweepLineIndex.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineInterval.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineInterval.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineInterval.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,312 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+SweepLineInterval
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.sweepline.SweepLineInterval class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SweepLineInterval";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SweepLineInterval.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.sweepline</FONT>
+<BR>
+Class SweepLineInterval</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.index.sweepline.SweepLineInterval</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SweepLineInterval</B><DT>extends java.lang.Object</DL>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html#SweepLineInterval(double, double)">SweepLineInterval</A></B>(double min,
+ double max)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html#SweepLineInterval(double, double, java.lang.Object)">SweepLineInterval</A></B>(double min,
+ double max,
+ java.lang.Object item)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html#getItem()">getItem</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html#getMax()">getMax</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html#getMin()">getMin</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SweepLineInterval(double, double)"><!-- --></A><H3>
+SweepLineInterval</H3>
+<PRE>
+public <B>SweepLineInterval</B>(double min,
+ double max)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="SweepLineInterval(double, double, java.lang.Object)"><!-- --></A><H3>
+SweepLineInterval</H3>
+<PRE>
+public <B>SweepLineInterval</B>(double min,
+ double max,
+ java.lang.Object item)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getMin()"><!-- --></A><H3>
+getMin</H3>
+<PRE>
+public double <B>getMin</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMax()"><!-- --></A><H3>
+getMax</H3>
+<PRE>
+public double <B>getMax</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getItem()"><!-- --></A><H3>
+getItem</H3>
+<PRE>
+public java.lang.Object <B>getItem</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SweepLineInterval.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,221 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+SweepLineOverlapAction
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.sweepline.SweepLineOverlapAction interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SweepLineOverlapAction";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SweepLineOverlapAction.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.index.sweepline</FONT>
+<BR>
+Interface SweepLineOverlapAction</H2>
+<HR>
+<DL>
+<DT>public interface <B>SweepLineOverlapAction</B></DL>
+
+<P>
+An action taken when a <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline"><CODE>SweepLineIndex</CODE></A> detects that two
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline"><CODE>SweepLineInterval</CODE></A>s overlap
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html#overlap(com.vividsolutions.jts.index.sweepline.SweepLineInterval, com.vividsolutions.jts.index.sweepline.SweepLineInterval)">overlap</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A> s0,
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A> s1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="overlap(com.vividsolutions.jts.index.sweepline.SweepLineInterval, com.vividsolutions.jts.index.sweepline.SweepLineInterval)"><!-- --></A><H3>
+overlap</H3>
+<PRE>
+public void <B>overlap</B>(<A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A> s0,
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A> s1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SweepLineOverlapAction.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index.sweepline
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.sweepline package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/index/sweepline/package-summary.html" target="classFrame">com.vividsolutions.jts.index.sweepline</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="SweepLineOverlapAction.html" title="interface in com.vividsolutions.jts.index.sweepline" target="classFrame"><I>SweepLineOverlapAction</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline" target="classFrame">SweepLineEvent</A>
+<BR>
+<A HREF="SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline" target="classFrame">SweepLineIndex</A>
+<BR>
+<A HREF="SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline" target="classFrame">SweepLineInterval</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index.sweepline
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.index.sweepline package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.index.sweepline";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/io/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.index.sweepline
+</H2>
+Contains classes which implement a sweepline algorithm for scanning geometric data structures.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html" title="interface in com.vividsolutions.jts.index.sweepline">SweepLineOverlapAction</A></B></TD>
+<TD>An action taken when a <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline"><CODE>SweepLineIndex</CODE></A> detects that two
+ <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline"><CODE>SweepLineInterval</CODE></A>s overlap</TD>
+</TR>
+</TABLE>
+
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineIndex</A></B></TD>
+<TD>A sweepline implements a sorted index on a set of intervals.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A></B></TD>
+<TD> </TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.index.sweepline Description
+</H2>
+
+<P>
+Contains classes which implement a sweepline algorithm for scanning geometric data structures.
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/io/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/index/sweepline/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.index.sweepline Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.index.sweepline Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/io/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.index.sweepline
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.sweepline.<A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline"><B>SweepLineEvent</B></A> (implements java.lang.Comparable)
+<LI TYPE="circle">class com.vividsolutions.jts.index.sweepline.<A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline"><B>SweepLineIndex</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.sweepline.<A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline"><B>SweepLineInterval</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">interface com.vividsolutions.jts.index.sweepline.<A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html" title="interface in com.vividsolutions.jts.index.sweepline"><B>SweepLineOverlapAction</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/index/strtree/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/io/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ByteArrayInStream.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ByteArrayInStream.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ByteArrayInStream.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,292 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+ByteArrayInStream
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.ByteArrayInStream class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ByteArrayInStream";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ByteArrayInStream.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io</FONT>
+<BR>
+Class ByteArrayInStream</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.ByteArrayInStream</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>ByteArrayInStream</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A></DL>
+
+<P>
+Allows an array of bytes to be used as an <A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><CODE>InStream</CODE></A>.
+ To optimize memory usage, instances can be reused
+ with different byte arrays.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteArrayInStream.html#ByteArrayInStream(byte[])">ByteArrayInStream</A></B>(byte[] byteBuffer)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteArrayInStream.html#read(byte[])">read</A></B>(byte[] buf)</CODE>
+
+<BR>
+ Reads <code>buf.length</code> bytes from the input stream
+ and stores them in the supplied buffer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteArrayInStream.html#setBuffer(byte[])">setBuffer</A></B>(byte[] byteBuffer)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ByteArrayInStream(byte[])"><!-- --></A><H3>
+ByteArrayInStream</H3>
+<PRE>
+public <B>ByteArrayInStream</B>(byte[] byteBuffer)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setBuffer(byte[])"><!-- --></A><H3>
+setBuffer</H3>
+<PRE>
+public void <B>setBuffer</B>(byte[] byteBuffer)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="read(byte[])"><!-- --></A><H3>
+read</H3>
+<PRE>
+public void <B>read</B>(byte[] buf)
+ throws java.io.IOException</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A></CODE></B></DD>
+<DD>Reads <code>buf.length</code> bytes from the input stream
+ and stores them in the supplied buffer.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/io/InStream.html#read(byte[])">read</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>buf</CODE> - the buffer to receive the bytes
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE> - if an I/O error occurs</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ByteArrayInStream.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ByteOrderDataInStream.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ByteOrderDataInStream.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ByteOrderDataInStream.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,382 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+ByteOrderDataInStream
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.ByteOrderDataInStream class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ByteOrderDataInStream";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/ByteArrayInStream.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ByteOrderDataInStream.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io</FONT>
+<BR>
+Class ByteOrderDataInStream</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.ByteOrderDataInStream</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>ByteOrderDataInStream</B><DT>extends java.lang.Object</DL>
+
+<P>
+Allows reading a stream of Java primitive datatypes from an underlying
+ <A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><CODE>InStream</CODE></A>,
+ with the representation being in either common byte ordering.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderDataInStream.html#ByteOrderDataInStream()">ByteOrderDataInStream</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderDataInStream.html#ByteOrderDataInStream(com.vividsolutions.jts.io.InStream)">ByteOrderDataInStream</A></B>(<A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A> stream)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderDataInStream.html#readByte()">readByte</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderDataInStream.html#readDouble()">readDouble</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderDataInStream.html#readInt()">readInt</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderDataInStream.html#readLong()">readLong</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderDataInStream.html#setInStream(com.vividsolutions.jts.io.InStream)">setInStream</A></B>(<A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A> stream)</CODE>
+
+<BR>
+ Allows a single ByteOrderDataInStream to be reused
+ on multiple InStreams.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderDataInStream.html#setOrder(int)">setOrder</A></B>(int byteOrder)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ByteOrderDataInStream()"><!-- --></A><H3>
+ByteOrderDataInStream</H3>
+<PRE>
+public <B>ByteOrderDataInStream</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="ByteOrderDataInStream(com.vividsolutions.jts.io.InStream)"><!-- --></A><H3>
+ByteOrderDataInStream</H3>
+<PRE>
+public <B>ByteOrderDataInStream</B>(<A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A> stream)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setInStream(com.vividsolutions.jts.io.InStream)"><!-- --></A><H3>
+setInStream</H3>
+<PRE>
+public void <B>setInStream</B>(<A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A> stream)</PRE>
+<DL>
+<DD>Allows a single ByteOrderDataInStream to be reused
+ on multiple InStreams.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>stream</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setOrder(int)"><!-- --></A><H3>
+setOrder</H3>
+<PRE>
+public void <B>setOrder</B>(int byteOrder)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readByte()"><!-- --></A><H3>
+readByte</H3>
+<PRE>
+public byte <B>readByte</B>()
+ throws java.io.IOException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readInt()"><!-- --></A><H3>
+readInt</H3>
+<PRE>
+public int <B>readInt</B>()
+ throws java.io.IOException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readLong()"><!-- --></A><H3>
+readLong</H3>
+<PRE>
+public long <B>readLong</B>()
+ throws java.io.IOException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readDouble()"><!-- --></A><H3>
+readDouble</H3>
+<PRE>
+public double <B>readDouble</B>()
+ throws java.io.IOException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/ByteArrayInStream.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ByteOrderDataInStream.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ByteOrderValues.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ByteOrderValues.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ByteOrderValues.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,419 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+ByteOrderValues
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.ByteOrderValues class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ByteOrderValues";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/InputStreamInStream.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ByteOrderValues.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io</FONT>
+<BR>
+Class ByteOrderValues</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.ByteOrderValues</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>ByteOrderValues</B><DT>extends java.lang.Object</DL>
+
+<P>
+Methods to read and write primitive Java datatypes from/to byte
+ sequences, allowing the byte order to be specified
+ <p>
+ Similar to the standard Java <code>ByteBuffer</code> class.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderValues.html#BIG_ENDIAN">BIG_ENDIAN</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderValues.html#LITTLE_ENDIAN">LITTLE_ENDIAN</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderValues.html#ByteOrderValues()">ByteOrderValues</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderValues.html#getDouble(byte[], int)">getDouble</A></B>(byte[] buf,
+ int byteOrder)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderValues.html#getInt(byte[], int)">getInt</A></B>(byte[] buf,
+ int byteOrder)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderValues.html#getLong(byte[], int)">getLong</A></B>(byte[] buf,
+ int byteOrder)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderValues.html#putDouble(double, byte[], int)">putDouble</A></B>(double doubleValue,
+ byte[] buf,
+ int byteOrder)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderValues.html#putInt(int, byte[], int)">putInt</A></B>(int intValue,
+ byte[] buf,
+ int byteOrder)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderValues.html#putLong(long, byte[], int)">putLong</A></B>(long longValue,
+ byte[] buf,
+ int byteOrder)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="BIG_ENDIAN"><!-- --></A><H3>
+BIG_ENDIAN</H3>
+<PRE>
+public static final int <B>BIG_ENDIAN</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.io.ByteOrderValues.BIG_ENDIAN">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="LITTLE_ENDIAN"><!-- --></A><H3>
+LITTLE_ENDIAN</H3>
+<PRE>
+public static final int <B>LITTLE_ENDIAN</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.io.ByteOrderValues.LITTLE_ENDIAN">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ByteOrderValues()"><!-- --></A><H3>
+ByteOrderValues</H3>
+<PRE>
+public <B>ByteOrderValues</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getInt(byte[], int)"><!-- --></A><H3>
+getInt</H3>
+<PRE>
+public static int <B>getInt</B>(byte[] buf,
+ int byteOrder)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="putInt(int, byte[], int)"><!-- --></A><H3>
+putInt</H3>
+<PRE>
+public static void <B>putInt</B>(int intValue,
+ byte[] buf,
+ int byteOrder)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLong(byte[], int)"><!-- --></A><H3>
+getLong</H3>
+<PRE>
+public static long <B>getLong</B>(byte[] buf,
+ int byteOrder)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="putLong(long, byte[], int)"><!-- --></A><H3>
+putLong</H3>
+<PRE>
+public static void <B>putLong</B>(long longValue,
+ byte[] buf,
+ int byteOrder)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDouble(byte[], int)"><!-- --></A><H3>
+getDouble</H3>
+<PRE>
+public static double <B>getDouble</B>(byte[] buf,
+ int byteOrder)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="putDouble(double, byte[], int)"><!-- --></A><H3>
+putDouble</H3>
+<PRE>
+public static void <B>putDouble</B>(double doubleValue,
+ byte[] buf,
+ int byteOrder)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/InputStreamInStream.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ByteOrderValues.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/InStream.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/InStream.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/InStream.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+InStream
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.InStream interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="InStream";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="InStream.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io</FONT>
+<BR>
+Interface InStream</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/vividsolutions/jts/io/ByteArrayInStream.html" title="class in com.vividsolutions.jts.io">ByteArrayInStream</A>, <A HREF="../../../../com/vividsolutions/jts/io/InputStreamInStream.html" title="class in com.vividsolutions.jts.io">InputStreamInStream</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public interface <B>InStream</B></DL>
+
+<P>
+A interface for classes providing an input stream of bytes.
+ This interface is similar to the Java <CODE>InputStream</CODE>,
+ but with a narrower interface to make it easier to implement.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/InStream.html#read(byte[])">read</A></B>(byte[] buf)</CODE>
+
+<BR>
+ Reads <code>buf.length</code> bytes from the input stream
+ and stores them in the supplied buffer.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="read(byte[])"><!-- --></A><H3>
+read</H3>
+<PRE>
+public void <B>read</B>(byte[] buf)
+ throws java.io.IOException</PRE>
+<DL>
+<DD>Reads <code>buf.length</code> bytes from the input stream
+ and stores them in the supplied buffer.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>buf</CODE> - the buffer to receive the bytes
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE> - if an I/O error occurs</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="InStream.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/InputStreamInStream.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/InputStreamInStream.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/InputStreamInStream.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,268 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+InputStreamInStream
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.InputStreamInStream class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="InputStreamInStream";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/OutputStreamOutStream.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="InputStreamInStream.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io</FONT>
+<BR>
+Class InputStreamInStream</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.InputStreamInStream</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>InputStreamInStream</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A></DL>
+
+<P>
+An adapter to allow an <CODE>InputStream</CODE> to be used as an <A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><CODE>InStream</CODE></A>
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/InputStreamInStream.html#InputStreamInStream(java.io.InputStream)">InputStreamInStream</A></B>(java.io.InputStream is)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/InputStreamInStream.html#read(byte[])">read</A></B>(byte[] buf)</CODE>
+
+<BR>
+ Reads <code>buf.length</code> bytes from the input stream
+ and stores them in the supplied buffer.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="InputStreamInStream(java.io.InputStream)"><!-- --></A><H3>
+InputStreamInStream</H3>
+<PRE>
+public <B>InputStreamInStream</B>(java.io.InputStream is)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="read(byte[])"><!-- --></A><H3>
+read</H3>
+<PRE>
+public void <B>read</B>(byte[] buf)
+ throws java.io.IOException</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A></CODE></B></DD>
+<DD>Reads <code>buf.length</code> bytes from the input stream
+ and stores them in the supplied buffer.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/io/InStream.html#read(byte[])">read</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>buf</CODE> - the buffer to receive the bytes
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE> - if an I/O error occurs</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/OutputStreamOutStream.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="InputStreamInStream.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/OutStream.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/OutStream.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/OutStream.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,224 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+OutStream
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.OutStream interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="OutStream";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OutStream.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io</FONT>
+<BR>
+Interface OutStream</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/vividsolutions/jts/io/OutputStreamOutStream.html" title="class in com.vividsolutions.jts.io">OutputStreamOutStream</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public interface <B>OutStream</B></DL>
+
+<P>
+A interface for classes providing an output stream of bytes.
+ This interface is similar to the Java <CODE>OutputStream</CODE>,
+ but with a narrower interface to make it easier to implement.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/OutStream.html#write(byte[], int)">write</A></B>(byte[] buf,
+ int len)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="write(byte[], int)"><!-- --></A><H3>
+write</H3>
+<PRE>
+public void <B>write</B>(byte[] buf,
+ int len)
+ throws java.io.IOException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OutStream.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/OutputStreamOutStream.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/OutputStreamOutStream.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/OutputStreamOutStream.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,265 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+OutputStreamOutStream
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.OutputStreamOutStream class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="OutputStreamOutStream";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/InputStreamInStream.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OutputStreamOutStream.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io</FONT>
+<BR>
+Class OutputStreamOutStream</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.OutputStreamOutStream</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io">OutStream</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>OutputStreamOutStream</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io">OutStream</A></DL>
+
+<P>
+An adapter to allow an <CODE>OutputStream</CODE> to be used as an <A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io"><CODE>OutStream</CODE></A>
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/OutputStreamOutStream.html#OutputStreamOutStream(java.io.OutputStream)">OutputStreamOutStream</A></B>(java.io.OutputStream os)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/OutputStreamOutStream.html#write(byte[], int)">write</A></B>(byte[] buf,
+ int len)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="OutputStreamOutStream(java.io.OutputStream)"><!-- --></A><H3>
+OutputStreamOutStream</H3>
+<PRE>
+public <B>OutputStreamOutStream</B>(java.io.OutputStream os)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="write(byte[], int)"><!-- --></A><H3>
+write</H3>
+<PRE>
+public void <B>write</B>(byte[] buf,
+ int len)
+ throws java.io.IOException</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/io/OutStream.html#write(byte[], int)">write</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io">OutStream</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/InputStreamInStream.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OutputStreamOutStream.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ParseException.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ParseException.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/ParseException.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+ParseException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.ParseException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ParseException";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ParseException.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io</FONT>
+<BR>
+Class ParseException</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.lang.Throwable
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.lang.Exception
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.ParseException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>ParseException</B><DT>extends java.lang.Exception</DL>
+
+<P>
+Thrown by a <code>WKTReader</code> when a parsing problem occurs.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.io.ParseException">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ParseException.html#ParseException(java.lang.Exception)">ParseException</A></B>(java.lang.Exception e)</CODE>
+
+<BR>
+ Creates a <code>ParseException</code> with <code>e</code>s detail message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/ParseException.html#ParseException(java.lang.String)">ParseException</A></B>(java.lang.String message)</CODE>
+
+<BR>
+ Creates a <code>ParseException</code> with the given detail message.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Throwable</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ParseException(java.lang.String)"><!-- --></A><H3>
+ParseException</H3>
+<PRE>
+public <B>ParseException</B>(java.lang.String message)</PRE>
+<DL>
+<DD>Creates a <code>ParseException</code> with the given detail message.
+<P>
+<DT><B>Parameters:</B><DD><CODE>message</CODE> - a description of this <code>ParseException</code></DL>
+<HR>
+
+<A NAME="ParseException(java.lang.Exception)"><!-- --></A><H3>
+ParseException</H3>
+<PRE>
+public <B>ParseException</B>(java.lang.Exception e)</PRE>
+<DL>
+<DD>Creates a <code>ParseException</code> with <code>e</code>s detail message.
+<P>
+<DT><B>Parameters:</B><DD><CODE>e</CODE> - an exception that occurred while a <code>WKTReader</code> was
+ parsing a Well-known Text string</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ParseException.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKBConstants.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKBConstants.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKBConstants.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,357 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+WKBConstants
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.WKBConstants interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="WKBConstants";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="WKBConstants.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | CONSTR | METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | CONSTR | METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io</FONT>
+<BR>
+Interface WKBConstants</H2>
+<HR>
+<DL>
+<DT>public interface <B>WKBConstants</B></DL>
+
+<P>
+Constant values used by the WKB format
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBConstants.html#wkbGeometryCollection">wkbGeometryCollection</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBConstants.html#wkbLineString">wkbLineString</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBConstants.html#wkbMultiLineString">wkbMultiLineString</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBConstants.html#wkbMultiPoint">wkbMultiPoint</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBConstants.html#wkbMultiPolygon">wkbMultiPolygon</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBConstants.html#wkbNDR">wkbNDR</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBConstants.html#wkbPoint">wkbPoint</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBConstants.html#wkbPolygon">wkbPolygon</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBConstants.html#wkbXDR">wkbXDR</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="wkbXDR"><!-- --></A><H3>
+wkbXDR</H3>
+<PRE>
+public static final int <B>wkbXDR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.io.WKBConstants.wkbXDR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="wkbNDR"><!-- --></A><H3>
+wkbNDR</H3>
+<PRE>
+public static final int <B>wkbNDR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.io.WKBConstants.wkbNDR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="wkbPoint"><!-- --></A><H3>
+wkbPoint</H3>
+<PRE>
+public static final int <B>wkbPoint</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.io.WKBConstants.wkbPoint">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="wkbLineString"><!-- --></A><H3>
+wkbLineString</H3>
+<PRE>
+public static final int <B>wkbLineString</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.io.WKBConstants.wkbLineString">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="wkbPolygon"><!-- --></A><H3>
+wkbPolygon</H3>
+<PRE>
+public static final int <B>wkbPolygon</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.io.WKBConstants.wkbPolygon">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="wkbMultiPoint"><!-- --></A><H3>
+wkbMultiPoint</H3>
+<PRE>
+public static final int <B>wkbMultiPoint</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.io.WKBConstants.wkbMultiPoint">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="wkbMultiLineString"><!-- --></A><H3>
+wkbMultiLineString</H3>
+<PRE>
+public static final int <B>wkbMultiLineString</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.io.WKBConstants.wkbMultiLineString">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="wkbMultiPolygon"><!-- --></A><H3>
+wkbMultiPolygon</H3>
+<PRE>
+public static final int <B>wkbMultiPolygon</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.io.WKBConstants.wkbMultiPolygon">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="wkbGeometryCollection"><!-- --></A><H3>
+wkbGeometryCollection</H3>
+<PRE>
+public static final int <B>wkbGeometryCollection</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.io.WKBConstants.wkbGeometryCollection">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="WKBConstants.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | CONSTR | METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | CONSTR | METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKBReader.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKBReader.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKBReader.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,333 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+WKBReader
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.WKBReader class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="WKBReader";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/OutputStreamOutStream.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="WKBReader.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io</FONT>
+<BR>
+Class WKBReader</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.WKBReader</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>WKBReader</B><DT>extends java.lang.Object</DL>
+
+<P>
+Reads a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>from a byte stream in Well-Known Binary format.
+ Supports use of an <A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><CODE>InStream</CODE></A>, which allows easy use
+ with arbitary byte stream sources.
+ <p>
+ This class reads the format describe in <A HREF="../../../../com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io"><CODE>WKBWriter</CODE></A>. It also partiually handles
+ the Extended WKB format used by PostGIS (by reading SRID values)
+ <p>
+ This class is designed to support reuse of a single instance to read multiple
+ geometries. This class is not thread-safe; each thread should create its own
+ instance.
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io"><CODE>WKBWriter</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBReader.html#WKBReader()">WKBReader</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBReader.html#WKBReader(com.vividsolutions.jts.geom.GeometryFactory)">WKBReader</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBReader.html#hexToBytes(java.lang.String)">hexToBytes</A></B>(java.lang.String hex)</CODE>
+
+<BR>
+ Converts a hexadecimal string to a byte array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBReader.html#read(byte[])">read</A></B>(byte[] bytes)</CODE>
+
+<BR>
+ Reads a single <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> from a byte array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBReader.html#read(com.vividsolutions.jts.io.InStream)">read</A></B>(<A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A> is)</CODE>
+
+<BR>
+ Reads a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> from an {@link InStream).</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="WKBReader()"><!-- --></A><H3>
+WKBReader</H3>
+<PRE>
+public <B>WKBReader</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="WKBReader(com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+WKBReader</H3>
+<PRE>
+public <B>WKBReader</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="hexToBytes(java.lang.String)"><!-- --></A><H3>
+hexToBytes</H3>
+<PRE>
+public static byte[] <B>hexToBytes</B>(java.lang.String hex)</PRE>
+<DL>
+<DD>Converts a hexadecimal string to a byte array.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>hex</CODE> - a string containing hex digits</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="read(byte[])"><!-- --></A><H3>
+read</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>read</B>(byte[] bytes)
+ throws <A HREF="../../../../com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io">ParseException</A></PRE>
+<DL>
+<DD>Reads a single <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> from a byte array.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>bytes</CODE> - the byte array to read from
+<DT><B>Returns:</B><DD>the geometry read
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io">ParseException</A></CODE> - if a parse exception occurs</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="read(com.vividsolutions.jts.io.InStream)"><!-- --></A><H3>
+read</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>read</B>(<A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A> is)
+ throws java.io.IOException,
+ <A HREF="../../../../com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io">ParseException</A></PRE>
+<DL>
+<DD>Reads a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> from an {@link InStream).
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>is</CODE> - the stream to read from
+<DT><B>Returns:</B><DD>the Geometry read
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io">ParseException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/OutputStreamOutStream.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="WKBReader.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKBWriter.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKBWriter.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKBWriter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+WKBWriter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.WKBWriter class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="WKBWriter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="WKBWriter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io</FONT>
+<BR>
+Class WKBWriter</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.WKBWriter</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>WKBWriter</B><DT>extends java.lang.Object</DL>
+
+<P>
+Writes a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> into Well-Known Binary format.
+ Supports use of an <A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io"><CODE>OutStream</CODE></A>, which allows easy use
+ with arbitary byte stream sinks.
+ <p>
+ The WKB format is specified in the OGC Simple Features for SQL specification.
+ This implementation supports the extended WKB standard for representing
+ 3-dimensional coordinates. The presence of 3D coordinates is signified
+ by setting the high bit of the wkbType word.
+ <p>
+ Empty Points cannot be represented in WKB; an
+ <CODE>IllegalArgumentException</CODE> will be thrown if one is
+ written. The WKB specification does not support representing <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A>s;
+ they will be written as <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>s.
+ <p>
+ This class is designed to support reuse of a single instance to read multiple
+ geometries. This class is not thread-safe; each thread should create its own
+ instance.
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io"><CODE>WKBReader</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBWriter.html#WKBWriter()">WKBWriter</A></B>()</CODE>
+
+<BR>
+ Creates a writer that writes <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s with
+ output dimension = 2 and BIG_ENDIAN byte order</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBWriter.html#WKBWriter(int)">WKBWriter</A></B>(int outputDimension)</CODE>
+
+<BR>
+ Creates a writer that writes <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s with
+ the given output dimension (2 or 3) and BIG_ENDIAN byte order</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBWriter.html#WKBWriter(int, int)">WKBWriter</A></B>(int outputDimension,
+ int byteOrder)</CODE>
+
+<BR>
+ Creates a writer that writes <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s with
+ the given output dimension (2 or 3) and byte order</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBWriter.html#bytesToHex(byte[])">bytesToHex</A></B>(byte[] bytes)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBWriter.html#write(com.vividsolutions.jts.geom.Geometry)">write</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Writes a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> into a byte array.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKBWriter.html#write(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.io.OutStream)">write</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom,
+ <A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io">OutStream</A> os)</CODE>
+
+<BR>
+ Writes a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> to an <A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io"><CODE>OutStream</CODE></A>.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="WKBWriter()"><!-- --></A><H3>
+WKBWriter</H3>
+<PRE>
+public <B>WKBWriter</B>()</PRE>
+<DL>
+<DD>Creates a writer that writes <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s with
+ output dimension = 2 and BIG_ENDIAN byte order
+<P>
+</DL>
+<HR>
+
+<A NAME="WKBWriter(int)"><!-- --></A><H3>
+WKBWriter</H3>
+<PRE>
+public <B>WKBWriter</B>(int outputDimension)</PRE>
+<DL>
+<DD>Creates a writer that writes <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s with
+ the given output dimension (2 or 3) and BIG_ENDIAN byte order
+<P>
+<DT><B>Parameters:</B><DD><CODE>outputDimension</CODE> - the dimension to output (2 or 3)</DL>
+<HR>
+
+<A NAME="WKBWriter(int, int)"><!-- --></A><H3>
+WKBWriter</H3>
+<PRE>
+public <B>WKBWriter</B>(int outputDimension,
+ int byteOrder)</PRE>
+<DL>
+<DD>Creates a writer that writes <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s with
+ the given output dimension (2 or 3) and byte order
+<P>
+<DT><B>Parameters:</B><DD><CODE>outputDimension</CODE> - the dimension to output (2 or 3)<DD><CODE>byteOrder</CODE> - the byte ordering to use</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="bytesToHex(byte[])"><!-- --></A><H3>
+bytesToHex</H3>
+<PRE>
+public static java.lang.String <B>bytesToHex</B>(byte[] bytes)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="write(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+write</H3>
+<PRE>
+public byte[] <B>write</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Writes a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> into a byte array.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - the geometry to write
+<DT><B>Returns:</B><DD>the byte array containing the WKB</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="write(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.io.OutStream)"><!-- --></A><H3>
+write</H3>
+<PRE>
+public void <B>write</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom,
+ <A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io">OutStream</A> os)
+ throws java.io.IOException</PRE>
+<DL>
+<DD>Writes a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> to an <A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io"><CODE>OutStream</CODE></A>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - the geometry to write<DD><CODE>os</CODE> - the out stream to write to
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE> - if an I/O error occurs</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="WKBWriter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKTReader.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKTReader.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKTReader.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,382 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+WKTReader
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.WKTReader class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="WKTReader";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="WKTReader.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io</FONT>
+<BR>
+Class WKTReader</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.WKTReader</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>WKTReader</B><DT>extends java.lang.Object</DL>
+
+<P>
+Converts a geometry in Well-Known Text format to a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+ <p>
+ <code>WKTReader</code> supports
+ extracting <code>Geometry</code> objects from either <CODE>Reader</CODE>s or
+ <CODE>String</CODE>s. This allows it to function as a parser to read <code>Geometry</code>
+ objects from text blocks embedded in other data formats (e.g. XML). <P>
+ <p>
+ A <code>WKTReader</code> is parameterized by a <code>GeometryFactory</code>,
+ to allow it to create <code>Geometry</code> objects of the appropriate
+ implementation. In particular, the <code>GeometryFactory</code>
+ determines the <code>PrecisionModel</code> and <code>SRID</code> that is
+ used. <P>
+
+ The <code>WKTReader</code> converts all input numbers to the precise
+ internal representation.
+
+ <h3>Notes:</h3>
+ <ul>
+ <li>The reader supports non-standard "LINEARRING" tags.
+ <li>The reader uses Double.parseDouble to perform the conversion of ASCII
+ numbers to floating point. This means it supports the Java
+ syntax for floating point literals (including scientific notation).
+ </ul>
+
+ <h3>Syntax</h3>
+ The following syntax specification describes the version of Well-Known Text
+ supported by JTS.
+ (The specification uses a syntax language similar to that used in
+ the C and Java language specifications.)
+ <p>
+
+ <blockquote><pre>
+ <i>WKTGeometry:</i> one of<i>
+
+ WKTPoint WKTLineString WKTLinearRing WKTPolygon
+ WKTMultiPoint WKTMultiLineString WKTMultiPolygon
+ WKTGeometryCollection</i>
+
+ <i>WKTPoint:</i> <b>POINT ( </b><i>Coordinate</i> <b>)</b>
+
+ <i>WKTLineString:</i> <b>LINESTRING</b> <i>CoordinateSequence</i>
+
+ <i>WKTLinearRing:</i> <b>LINEARRING</b> <i>CoordinateSequence</i>
+
+ <i>WKTPolygon:</i> <b>POLYGON</b> <i>CoordinateSequenceList</i>
+
+ <i>WKTMultiPoint:</i> <b>MULTIPOINT</b> <i>CoordinateSequence</i>
+
+ <i>WKTMultiLineString:</i> <b>MULTILINESTRING</b> <i>CoordinateSequenceList</i>
+
+ <i>WKTMultiPolygon:</i>
+ <b>MULTIPOLYGON (</b> <i>CoordinateSequenceList {</i> , <i>CoordinateSequenceList }</i> <b>)</b>
+
+ <i>WKTGeometryCollection: </i>
+ <b>GEOMETRYCOLLECTION (</b> <i>WKTGeometry {</i> , <i>WKTGeometry }</i> <b>)</b>
+
+ <i>CoordinateSequenceList:</i>
+ <b>(</b> <i>CoordinateSequence {</i> <b>,</b> <i>CoordinateSequence }</i> <b>)</b>
+
+ <i>CoordinateSequence:</i>
+ <b>(</b> <i>Coordinate {</i> , <i>Coordinate }</i> <b>)</b>
+
+ <i>Coordinate:
+ Number Number Number<sub>opt</sub></i>
+
+ <i>Number:</i> A Java-style floating-point number
+
+ </pre></blockquote>
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io"><CODE>WKTWriter</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTReader.html#WKTReader()">WKTReader</A></B>()</CODE>
+
+<BR>
+ Creates a reader that creates objects using the default <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTReader.html#WKTReader(com.vividsolutions.jts.geom.GeometryFactory)">WKTReader</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory)</CODE>
+
+<BR>
+ Creates a reader that creates objects using the given
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTReader.html#read(java.io.Reader)">read</A></B>(java.io.Reader reader)</CODE>
+
+<BR>
+ Reads a Well-Known Text representation of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ from a <CODE>Reader</CODE>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTReader.html#read(java.lang.String)">read</A></B>(java.lang.String wellKnownText)</CODE>
+
+<BR>
+ Reads a Well-Known Text representation of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ from a <CODE>String</CODE>.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="WKTReader()"><!-- --></A><H3>
+WKTReader</H3>
+<PRE>
+public <B>WKTReader</B>()</PRE>
+<DL>
+<DD>Creates a reader that creates objects using the default <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>.
+<P>
+</DL>
+<HR>
+
+<A NAME="WKTReader(com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+WKTReader</H3>
+<PRE>
+public <B>WKTReader</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory)</PRE>
+<DL>
+<DD>Creates a reader that creates objects using the given
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>.
+<P>
+<DT><B>Parameters:</B><DD><CODE>geometryFactory</CODE> - the factory used to create <code>Geometry</code>s.</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="read(java.lang.String)"><!-- --></A><H3>
+read</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>read</B>(java.lang.String wellKnownText)
+ throws <A HREF="../../../../com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io">ParseException</A></PRE>
+<DL>
+<DD>Reads a Well-Known Text representation of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ from a <CODE>String</CODE>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>wellKnownText</CODE> - one or more <Geometry Tagged Text>strings (see the OpenGIS
+ Simple Features Specification) separated by whitespace
+<DT><B>Returns:</B><DD>a <code>Geometry</code> specified by <code>wellKnownText</code>
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io">ParseException</A></CODE> - if a parsing problem occurs</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="read(java.io.Reader)"><!-- --></A><H3>
+read</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>read</B>(java.io.Reader reader)
+ throws <A HREF="../../../../com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io">ParseException</A></PRE>
+<DL>
+<DD>Reads a Well-Known Text representation of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ from a <CODE>Reader</CODE>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>reader</CODE> - a Reader which will return a <Geometry Tagged Text>
+ string (see the OpenGIS Simple Features Specification)
+<DT><B>Returns:</B><DD>a <code>Geometry</code> read from <code>reader</code>
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io">ParseException</A></CODE> - if a parsing problem occurs</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="WKTReader.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKTWriter.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKTWriter.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/WKTWriter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,540 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+WKTWriter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.WKTWriter class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="WKTWriter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="WKTWriter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io</FONT>
+<BR>
+Class WKTWriter</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.WKTWriter</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>WKTWriter</B><DT>extends java.lang.Object</DL>
+
+<P>
+Outputs the Well-Known Text representation of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+ The Well-known Text format is defined in the
+ <A HREF="http://www.opengis.org/techno/specs.htm">
+ OGC Simple Features Specification for SQL</A>.
+ <p>
+ The <code>WKTWriter</code> outputs coordinates rounded to the precision
+ model. No more than the maximum number of necessary decimal places will be
+ output.
+ <p>
+ A non-standard <code>LINEARRING</code> tag is used for LinearRings.
+ The SFS WKT spec does not define a special tag for <code>LinearRing</code>s.
+ Under it, rings are output using <code>LINESTRING</code>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io"><CODE>WKTReader</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html#WKTWriter()">WKTWriter</A></B>()</CODE>
+
+<BR>
+ Creates a new WKTWriter with default settings</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html#WKTWriter(int)">WKTWriter</A></B>(int outputDimension)</CODE>
+
+<BR>
+ Creates a writer that writes <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s with
+ the given output dimension (2 or 3).</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html#setFormatted(boolean)">setFormatted</A></B>(boolean isFormatted)</CODE>
+
+<BR>
+ Sets whether the output will be formatted.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html#setMaxCoordinatesPerLine(int)">setMaxCoordinatesPerLine</A></B>(int coordsPerLine)</CODE>
+
+<BR>
+ Sets the maximum number of coordinates per line
+ written in formatted output.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html#setTab(int)">setTab</A></B>(int size)</CODE>
+
+<BR>
+ Sets the tab size to use for indenting.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html#stringOfChar(char, int)">stringOfChar</A></B>(char ch,
+ int count)</CODE>
+
+<BR>
+ Returns a <code>String</code> of repeated characters.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html#toLineString(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">toLineString</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ Generates the WKT for a 2-point <code>LineString</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html#toLineString(com.vividsolutions.jts.geom.CoordinateSequence)">toLineString</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq)</CODE>
+
+<BR>
+ Generates the WKT for a N-point <code>LineString</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html#toPoint(com.vividsolutions.jts.geom.Coordinate)">toPoint</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0)</CODE>
+
+<BR>
+ Generates the WKT for a <code>Point</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html#write(com.vividsolutions.jts.geom.Geometry)">write</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</CODE>
+
+<BR>
+ Converts a <code>Geometry</code> to its Well-known Text representation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html#write(com.vividsolutions.jts.geom.Geometry, java.io.Writer)">write</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry,
+ java.io.Writer writer)</CODE>
+
+<BR>
+ Converts a <code>Geometry</code> to its Well-known Text representation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html#writeFormatted(com.vividsolutions.jts.geom.Geometry)">writeFormatted</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</CODE>
+
+<BR>
+ Same as <code>write</code>, but with newlines and spaces to make the
+ well-known text more readable.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html#writeFormatted(com.vividsolutions.jts.geom.Geometry, java.io.Writer)">writeFormatted</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry,
+ java.io.Writer writer)</CODE>
+
+<BR>
+ Same as <code>write</code>, but with newlines and spaces to make the
+ well-known text more readable.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="WKTWriter()"><!-- --></A><H3>
+WKTWriter</H3>
+<PRE>
+public <B>WKTWriter</B>()</PRE>
+<DL>
+<DD>Creates a new WKTWriter with default settings
+<P>
+</DL>
+<HR>
+
+<A NAME="WKTWriter(int)"><!-- --></A><H3>
+WKTWriter</H3>
+<PRE>
+public <B>WKTWriter</B>(int outputDimension)</PRE>
+<DL>
+<DD>Creates a writer that writes <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s with
+ the given output dimension (2 or 3).
+ If the specified output dimension is 3, the Z value
+ of coordinates will be written if it is present
+ (i.e. if it is not <code>Double.NaN</code>).
+<P>
+<DT><B>Parameters:</B><DD><CODE>outputDimension</CODE> - the coordinate dimension to output (2 or 3)</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="toPoint(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+toPoint</H3>
+<PRE>
+public static java.lang.String <B>toPoint</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0)</PRE>
+<DL>
+<DD>Generates the WKT for a <code>Point</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p0</CODE> - the point coordinate
+<DT><B>Returns:</B><DD>the WKT</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toLineString(com.vividsolutions.jts.geom.CoordinateSequence)"><!-- --></A><H3>
+toLineString</H3>
+<PRE>
+public static java.lang.String <B>toLineString</B>(<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq)</PRE>
+<DL>
+<DD>Generates the WKT for a N-point <code>LineString</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>seq</CODE> - the sequence to outpout
+<DT><B>Returns:</B><DD>the WKT</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toLineString(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+toLineString</H3>
+<PRE>
+public static java.lang.String <B>toLineString</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+<DD>Generates the WKT for a 2-point <code>LineString</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p0</CODE> - the first coordinate<DD><CODE>p1</CODE> - the second coordinate
+<DT><B>Returns:</B><DD>the WKT</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="stringOfChar(char, int)"><!-- --></A><H3>
+stringOfChar</H3>
+<PRE>
+public static java.lang.String <B>stringOfChar</B>(char ch,
+ int count)</PRE>
+<DL>
+<DD>Returns a <code>String</code> of repeated characters.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ch</CODE> - the character to repeat<DD><CODE>count</CODE> - the number of times to repeat the character
+<DT><B>Returns:</B><DD>a <code>String</code> of characters</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setFormatted(boolean)"><!-- --></A><H3>
+setFormatted</H3>
+<PRE>
+public void <B>setFormatted</B>(boolean isFormatted)</PRE>
+<DL>
+<DD>Sets whether the output will be formatted.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>isFormatted</CODE> - true if the output is to be formatted</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setMaxCoordinatesPerLine(int)"><!-- --></A><H3>
+setMaxCoordinatesPerLine</H3>
+<PRE>
+public void <B>setMaxCoordinatesPerLine</B>(int coordsPerLine)</PRE>
+<DL>
+<DD>Sets the maximum number of coordinates per line
+ written in formatted output.
+ If the provided coordinate number is <= 0,
+ coordinates will be written all on one line.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coordsPerLine</CODE> - the number of coordinates per line to output.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setTab(int)"><!-- --></A><H3>
+setTab</H3>
+<PRE>
+public void <B>setTab</B>(int size)</PRE>
+<DL>
+<DD>Sets the tab size to use for indenting.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>size</CODE> - the number of spaces to use as the tab string
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if the size is non-positive</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="write(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+write</H3>
+<PRE>
+public java.lang.String <B>write</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</PRE>
+<DL>
+<DD>Converts a <code>Geometry</code> to its Well-known Text representation.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geometry</CODE> - a <code>Geometry</code> to process
+<DT><B>Returns:</B><DD>a <Geometry Tagged Text> string (see the OpenGIS Simple
+ Features Specification)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="write(com.vividsolutions.jts.geom.Geometry, java.io.Writer)"><!-- --></A><H3>
+write</H3>
+<PRE>
+public void <B>write</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry,
+ java.io.Writer writer)
+ throws java.io.IOException</PRE>
+<DL>
+<DD>Converts a <code>Geometry</code> to its Well-known Text representation.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geometry</CODE> - a <code>Geometry</code> to process
+<DT><B>Returns:</B><DD>a <Geometry Tagged Text> string (see the OpenGIS Simple
+ Features Specification)
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="writeFormatted(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+writeFormatted</H3>
+<PRE>
+public java.lang.String <B>writeFormatted</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</PRE>
+<DL>
+<DD>Same as <code>write</code>, but with newlines and spaces to make the
+ well-known text more readable.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geometry</CODE> - a <code>Geometry</code> to process
+<DT><B>Returns:</B><DD>a <Geometry Tagged Text> string (see the OpenGIS Simple
+ Features Specification), with newlines and spaces</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="writeFormatted(com.vividsolutions.jts.geom.Geometry, java.io.Writer)"><!-- --></A><H3>
+writeFormatted</H3>
+<PRE>
+public void <B>writeFormatted</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry,
+ java.io.Writer writer)
+ throws java.io.IOException</PRE>
+<DL>
+<DD>Same as <code>write</code>, but with newlines and spaces to make the
+ well-known text more readable.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geometry</CODE> - a <code>Geometry</code> to process
+<DT><B>Returns:</B><DD>a <Geometry Tagged Text> string (see the OpenGIS Simple
+ Features Specification), with newlines and spaces
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="WKTWriter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.io
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/vividsolutions/jts/io/package-summary.html" target="classFrame">com.vividsolutions.jts.io</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="InStream.html" title="interface in com.vividsolutions.jts.io" target="classFrame"><I>InStream</I></A>
+<BR>
+<A HREF="OutStream.html" title="interface in com.vividsolutions.jts.io" target="classFrame"><I>OutStream</I></A>
+<BR>
+<A HREF="WKBConstants.html" title="interface in com.vividsolutions.jts.io" target="classFrame"><I>WKBConstants</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="ByteArrayInStream.html" title="class in com.vividsolutions.jts.io" target="classFrame">ByteArrayInStream</A>
+<BR>
+<A HREF="ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io" target="classFrame">ByteOrderDataInStream</A>
+<BR>
+<A HREF="ByteOrderValues.html" title="class in com.vividsolutions.jts.io" target="classFrame">ByteOrderValues</A>
+<BR>
+<A HREF="InputStreamInStream.html" title="class in com.vividsolutions.jts.io" target="classFrame">InputStreamInStream</A>
+<BR>
+<A HREF="OutputStreamOutStream.html" title="class in com.vividsolutions.jts.io" target="classFrame">OutputStreamOutStream</A>
+<BR>
+<A HREF="WKBReader.html" title="class in com.vividsolutions.jts.io" target="classFrame">WKBReader</A>
+<BR>
+<A HREF="WKBWriter.html" title="class in com.vividsolutions.jts.io" target="classFrame">WKBWriter</A>
+<BR>
+<A HREF="WKTReader.html" title="class in com.vividsolutions.jts.io" target="classFrame">WKTReader</A>
+<BR>
+<A HREF="WKTWriter.html" title="class in com.vividsolutions.jts.io" target="classFrame">WKTWriter</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Exceptions</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="ParseException.html" title="class in com.vividsolutions.jts.io" target="classFrame">ParseException</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,245 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.io
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.io";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/index/sweepline/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/linearref/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.io
+</H2>
+Contains the interfaces for converting JTS objects to and from other formats.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A></B></TD>
+<TD>A interface for classes providing an input stream of bytes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io">OutStream</A></B></TD>
+<TD>A interface for classes providing an output stream of bytes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io">WKBConstants</A></B></TD>
+<TD>Constant values used by the WKB format</TD>
+</TR>
+</TABLE>
+
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/io/ByteArrayInStream.html" title="class in com.vividsolutions.jts.io">ByteArrayInStream</A></B></TD>
+<TD>Allows an array of bytes to be used as an <A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><CODE>InStream</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io">ByteOrderDataInStream</A></B></TD>
+<TD>Allows reading a stream of Java primitive datatypes from an underlying
+ <A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><CODE>InStream</CODE></A>,
+ with the representation being in either common byte ordering.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io">ByteOrderValues</A></B></TD>
+<TD>Methods to read and write primitive Java datatypes from/to byte
+ sequences, allowing the byte order to be specified
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/io/InputStreamInStream.html" title="class in com.vividsolutions.jts.io">InputStreamInStream</A></B></TD>
+<TD>An adapter to allow an <CODE>InputStream</CODE> to be used as an <A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><CODE>InStream</CODE></A></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/io/OutputStreamOutStream.html" title="class in com.vividsolutions.jts.io">OutputStreamOutStream</A></B></TD>
+<TD>An adapter to allow an <CODE>OutputStream</CODE> to be used as an <A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io"><CODE>OutStream</CODE></A></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io">WKBReader</A></B></TD>
+<TD>Reads a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>from a byte stream in Well-Known Binary format.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io">WKBWriter</A></B></TD>
+<TD>Writes a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> into Well-Known Binary format.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io">WKTReader</A></B></TD>
+<TD>Converts a geometry in Well-Known Text format to a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A></B></TD>
+<TD>Outputs the Well-Known Text representation of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Exception Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io">ParseException</A></B></TD>
+<TD>Thrown by a <code>WKTReader</code> when a parsing problem occurs.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.io Description
+</H2>
+
+<P>
+Contains the interfaces for converting JTS objects to and from other formats.
+<P>
+The Java Topology Suite (JTS) is a Java API that implements a core set of spatial data operations using an explicit precision model and robust geometric algorithms. JTS is intended to be used in the development of applications that support the validation, cleaning, integration and querying of spatial datasets.
+<P>
+JTS attempts to implement the OpenGIS Simple Features Specification (SFS) as accurately as possible. In some cases the SFS is unclear or omits a specification; in this case JTS attempts to choose a reasonable and consistent alternative. Differences from and elaborations of the SFS are documented in this specification.
+
+<h2>Package Specification</h2>
+
+<ul>
+ <li>Java Topology Suite Technical Specifications
+ <li><A HREF="http://www.opengis.org/techno/specs.htm">
+ OpenGIS Simple Features Specification for SQL</A>
+</ul>
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/index/sweepline/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/linearref/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/io/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.io Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.io Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/index/sweepline/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/linearref/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.io
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/ByteArrayInStream.html" title="class in com.vividsolutions.jts.io"><B>ByteArrayInStream</B></A> (implements com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io"><B>ByteOrderDataInStream</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io"><B>ByteOrderValues</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/InputStreamInStream.html" title="class in com.vividsolutions.jts.io"><B>InputStreamInStream</B></A> (implements com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/OutputStreamOutStream.html" title="class in com.vividsolutions.jts.io"><B>OutputStreamOutStream</B></A> (implements com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io">OutStream</A>)
+<LI TYPE="circle">class java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">class java.lang.Exception<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io"><B>ParseException</B></A></UL>
+</UL>
+<LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io"><B>WKBReader</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io"><B>WKBWriter</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io"><B>WKTReader</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io"><B>WKTWriter</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">interface com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><B>InStream</B></A><LI TYPE="circle">interface com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io"><B>OutStream</B></A><LI TYPE="circle">interface com.vividsolutions.jts.io.<A HREF="../../../../com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io"><B>WKBConstants</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/index/sweepline/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/linearref/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LengthIndexedLine.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LengthIndexedLine.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LengthIndexedLine.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,509 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+LengthIndexedLine
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.linearref.LengthIndexedLine class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LengthIndexedLine";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LengthIndexedLine.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.linearref</FONT>
+<BR>
+Class LengthIndexedLine</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.linearref.LengthIndexedLine</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>LengthIndexedLine</B><DT>extends java.lang.Object</DL>
+
+<P>
+Supports linear referencing along a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ using the length along the line as the index.
+ Negative length values are taken as measured in the reverse direction
+ from the end of the geometry.
+ Out-of-range index values are handled by clamping
+ them to the valid range of values.
+ Non-simple lines (i.e. which loop back to cross or touch
+ themselves) are supported.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html#LengthIndexedLine(com.vividsolutions.jts.geom.Geometry)">LengthIndexedLine</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom)</CODE>
+
+<BR>
+ Constructs an object which allows a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ to be linearly referenced using length as an index.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html#clampIndex(double)">clampIndex</A></B>(double index)</CODE>
+
+<BR>
+ Computes a valid index for this line
+ by clamping the given index to the valid range of index values</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html#extractLine(double, double)">extractLine</A></B>(double startIndex,
+ double endIndex)</CODE>
+
+<BR>
+ Computes the <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> for the interval
+ on the line between the given indices.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html#extractPoint(double)">extractPoint</A></B>(double index)</CODE>
+
+<BR>
+ Computes the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> for the point
+ on the line at the given index.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html#getEndIndex()">getEndIndex</A></B>()</CODE>
+
+<BR>
+ Returns the index of the end of the line</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html#getStartIndex()">getStartIndex</A></B>()</CODE>
+
+<BR>
+ Returns the index of the start of the line</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html#indexOf(com.vividsolutions.jts.geom.Coordinate)">indexOf</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Computes the minimum index for a point on the line.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html#indexOfAfter(com.vividsolutions.jts.geom.Coordinate, double)">indexOfAfter</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt,
+ double minIndex)</CODE>
+
+<BR>
+ Finds the index for a point on the line
+ which is greater than the given index.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html#indicesOf(com.vividsolutions.jts.geom.Geometry)">indicesOf</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> subLine)</CODE>
+
+<BR>
+ Computes the indices for a subline of the line.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html#isValidIndex(double)">isValidIndex</A></B>(double index)</CODE>
+
+<BR>
+ Tests whether an index is in the valid index range for the line.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html#project(com.vividsolutions.jts.geom.Coordinate)">project</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Computes the index for the closest point on the line to the given point.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LengthIndexedLine(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+LengthIndexedLine</H3>
+<PRE>
+public <B>LengthIndexedLine</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom)</PRE>
+<DL>
+<DD>Constructs an object which allows a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ to be linearly referenced using length as an index.
+<P>
+<DT><B>Parameters:</B><DD><CODE>linearGeom</CODE> - the linear geometry to reference along</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="extractPoint(double)"><!-- --></A><H3>
+extractPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>extractPoint</B>(double index)</PRE>
+<DL>
+<DD>Computes the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> for the point
+ on the line at the given index.
+ If the index is out of range the first or last point on the
+ line will be returned.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> - the index of the desired point
+<DT><B>Returns:</B><DD>the Coordinate at the given index</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="extractLine(double, double)"><!-- --></A><H3>
+extractLine</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>extractLine</B>(double startIndex,
+ double endIndex)</PRE>
+<DL>
+<DD>Computes the <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> for the interval
+ on the line between the given indices.
+ If the endIndex lies before the startIndex,
+ the computed geometry is reversed.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>startIndex</CODE> - the index of the start of the interval<DD><CODE>endIndex</CODE> - the index of the end of the interval
+<DT><B>Returns:</B><DD>the linear interval between the indices</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="indexOf(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+indexOf</H3>
+<PRE>
+public double <B>indexOf</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Computes the minimum index for a point on the line.
+ If the line is not simple (i.e. loops back on itself)
+ a single point may have more than one possible index.
+ In this case, the smallest index is returned.
+
+ The supplied point does not <i>necessarily</i> have to lie precisely
+ on the line, but if it is far from the line the accuracy and
+ performance of this function is not guaranteed.
+ Use <A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html#project(com.vividsolutions.jts.geom.Coordinate)"><CODE>project(com.vividsolutions.jts.geom.Coordinate)</CODE></A> to compute a guaranteed result for points
+ which may be far from the line.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pt</CODE> - a point on the line
+<DT><B>Returns:</B><DD>the minimum index of the point<DT><B>See Also:</B><DD><CODE>project</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="indexOfAfter(com.vividsolutions.jts.geom.Coordinate, double)"><!-- --></A><H3>
+indexOfAfter</H3>
+<PRE>
+public double <B>indexOfAfter</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt,
+ double minIndex)</PRE>
+<DL>
+<DD>Finds the index for a point on the line
+ which is greater than the given index.
+ If no such index exists, returns <tt>minIndex</tt>.
+ This method can be used to determine all indexes for
+ a point which occurs more than once on a non-simple line.
+ It can also be used to disambiguate cases where the given point lies
+ slightly off the line and is equidistant from two different
+ points on the line.
+
+ The supplied point does not <i>necessarily</i> have to lie precisely
+ on the line, but if it is far from the line the accuracy and
+ performance of this function is not guaranteed.
+ Use <A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html#project(com.vividsolutions.jts.geom.Coordinate)"><CODE>project(com.vividsolutions.jts.geom.Coordinate)</CODE></A> to compute a guaranteed result for points
+ which may be far from the line.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pt</CODE> - a point on the line<DD><CODE>minIndex</CODE> - the value the returned index must be greater than
+<DT><B>Returns:</B><DD>the index of the point greater than the given minimum index<DT><B>See Also:</B><DD><CODE>project</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="indicesOf(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+indicesOf</H3>
+<PRE>
+public double[] <B>indicesOf</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> subLine)</PRE>
+<DL>
+<DD>Computes the indices for a subline of the line.
+ (The subline must <b>conform</b> to the line; that is,
+ all vertices in the subline (except possibly the first and last)
+ must be vertices of the line and occcur in the same order).
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>subLine</CODE> - a subLine of the line
+<DT><B>Returns:</B><DD>a pair of indices for the start and end of the subline.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="project(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+project</H3>
+<PRE>
+public double <B>project</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Computes the index for the closest point on the line to the given point.
+ If more than one point has the closest distance the first one along the line
+ is returned.
+ (The point does not necessarily have to lie precisely on the line.)
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pt</CODE> - a point on the line
+<DT><B>Returns:</B><DD>the index of the point</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStartIndex()"><!-- --></A><H3>
+getStartIndex</H3>
+<PRE>
+public double <B>getStartIndex</B>()</PRE>
+<DL>
+<DD>Returns the index of the start of the line
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the start index</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEndIndex()"><!-- --></A><H3>
+getEndIndex</H3>
+<PRE>
+public double <B>getEndIndex</B>()</PRE>
+<DL>
+<DD>Returns the index of the end of the line
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the end index</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isValidIndex(double)"><!-- --></A><H3>
+isValidIndex</H3>
+<PRE>
+public boolean <B>isValidIndex</B>(double index)</PRE>
+<DL>
+<DD>Tests whether an index is in the valid index range for the line.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the index is in the valid range</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clampIndex(double)"><!-- --></A><H3>
+clampIndex</H3>
+<PRE>
+public double <B>clampIndex</B>(double index)</PRE>
+<DL>
+<DD>Computes a valid index for this line
+ by clamping the given index to the valid range of index values
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a valid index value</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LengthIndexedLine.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LengthLocationMap.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LengthLocationMap.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LengthLocationMap.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,333 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+LengthLocationMap
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.linearref.LengthLocationMap class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LengthLocationMap";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LengthLocationMap.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.linearref</FONT>
+<BR>
+Class LengthLocationMap</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.linearref.LengthLocationMap</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>LengthLocationMap</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes the <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A> for a given length
+ along a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+ Negative lengths are measured in reverse from end of the linear geometry.
+ Out-of-range values are clamped.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthLocationMap.html#LengthLocationMap(com.vividsolutions.jts.geom.Geometry)">LengthLocationMap</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthLocationMap.html#getLength(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.linearref.LinearLocation)">getLength</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom,
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> loc)</CODE>
+
+<BR>
+ Computes the length for a given <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A>
+ on a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthLocationMap.html#getLength(com.vividsolutions.jts.linearref.LinearLocation)">getLength</A></B>(<A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> loc)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthLocationMap.html#getLocation(double)">getLocation</A></B>(double length)</CODE>
+
+<BR>
+ Compute the <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A> corresponding to a length.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthLocationMap.html#getLocation(com.vividsolutions.jts.geom.Geometry, double)">getLocation</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom,
+ double length)</CODE>
+
+<BR>
+ Computes the <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A> for a
+ given length along a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LengthLocationMap(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+LengthLocationMap</H3>
+<PRE>
+public <B>LengthLocationMap</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getLocation(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+getLocation</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> <B>getLocation</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom,
+ double length)</PRE>
+<DL>
+<DD>Computes the <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A> for a
+ given length along a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>length</CODE> - the length index of the location
+<DT><B>Returns:</B><DD>the <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A> for the length</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLength(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.linearref.LinearLocation)"><!-- --></A><H3>
+getLength</H3>
+<PRE>
+public static double <B>getLength</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom,
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> loc)</PRE>
+<DL>
+<DD>Computes the length for a given <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A>
+ on a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>loc</CODE> - the <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A> index of the location
+<DT><B>Returns:</B><DD>the length for the <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLocation(double)"><!-- --></A><H3>
+getLocation</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> <B>getLocation</B>(double length)</PRE>
+<DL>
+<DD>Compute the <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A> corresponding to a length.
+ Negative lengths are measured in reverse from end of the linear geometry.
+ Out-of-range values are clamped.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>length</CODE> - the length index
+<DT><B>Returns:</B><DD>the corresponding LinearLocation</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLength(com.vividsolutions.jts.linearref.LinearLocation)"><!-- --></A><H3>
+getLength</H3>
+<PRE>
+public double <B>getLength</B>(<A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> loc)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LengthLocationMap.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LinearGeometryBuilder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LinearGeometryBuilder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LinearGeometryBuilder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,387 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+LinearGeometryBuilder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.linearref.LinearGeometryBuilder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LinearGeometryBuilder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LinearGeometryBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.linearref</FONT>
+<BR>
+Class LinearGeometryBuilder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.linearref.LinearGeometryBuilder</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>LinearGeometryBuilder</B><DT>extends java.lang.Object</DL>
+
+<P>
+Builds a linear geometry (<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> or <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A>)
+ incrementally (point-by-point).
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#LinearGeometryBuilder(com.vividsolutions.jts.geom.GeometryFactory)">LinearGeometryBuilder</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geomFact)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#add(com.vividsolutions.jts.geom.Coordinate)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Adds a point to the current line.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#add(com.vividsolutions.jts.geom.Coordinate, boolean)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt,
+ boolean allowRepeatedPoints)</CODE>
+
+<BR>
+ Adds a point to the current line.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#endLine()">endLine</A></B>()</CODE>
+
+<BR>
+ Terminate the current LineString.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#getGeometry()">getGeometry</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#getLastCoordinate()">getLastCoordinate</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#setFixInvalidLines(boolean)">setFixInvalidLines</A></B>(boolean fixInvalidLines)</CODE>
+
+<BR>
+ Allows invalid lines to be ignored rather than causing Exceptions.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#setIgnoreInvalidLines(boolean)">setIgnoreInvalidLines</A></B>(boolean ignoreInvalidLines)</CODE>
+
+<BR>
+ Allows invalid lines to be ignored rather than causing Exceptions.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LinearGeometryBuilder(com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+LinearGeometryBuilder</H3>
+<PRE>
+public <B>LinearGeometryBuilder</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geomFact)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setIgnoreInvalidLines(boolean)"><!-- --></A><H3>
+setIgnoreInvalidLines</H3>
+<PRE>
+public void <B>setIgnoreInvalidLines</B>(boolean ignoreInvalidLines)</PRE>
+<DL>
+<DD>Allows invalid lines to be ignored rather than causing Exceptions.
+ An invalid line is one which has only one unique point.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setFixInvalidLines(boolean)"><!-- --></A><H3>
+setFixInvalidLines</H3>
+<PRE>
+public void <B>setFixInvalidLines</B>(boolean fixInvalidLines)</PRE>
+<DL>
+<DD>Allows invalid lines to be ignored rather than causing Exceptions.
+ An invalid line is one which has only one unique point.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Adds a point to the current line.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pt</CODE> - the Coordinate to add</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geom.Coordinate, boolean)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt,
+ boolean allowRepeatedPoints)</PRE>
+<DL>
+<DD>Adds a point to the current line.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pt</CODE> - the Coordinate to add</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLastCoordinate()"><!-- --></A><H3>
+getLastCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getLastCoordinate</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="endLine()"><!-- --></A><H3>
+endLine</H3>
+<PRE>
+public void <B>endLine</B>()</PRE>
+<DL>
+<DD>Terminate the current LineString.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGeometry()"><!-- --></A><H3>
+getGeometry</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getGeometry</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LinearGeometryBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LinearIterator.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LinearIterator.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LinearIterator.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,475 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+LinearIterator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.linearref.LinearIterator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LinearIterator";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LinearIterator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.linearref</FONT>
+<BR>
+Class LinearIterator</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.linearref.LinearIterator</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>LinearIterator</B><DT>extends java.lang.Object</DL>
+
+<P>
+An iterator over the components and coordinates of a linear geometry
+ (<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>s and <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A>s.
+
+ The standard usage pattern for a <A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearIterator</CODE></A> is:
+
+ <pre>
+ for (LinearIterator it = new LinearIterator(...); it.hasNext(); it.next()) {
+ ...
+ int ci = it.getComponentIndex(); // for example
+ int vi = it.getVertexIndex(); // for example
+ ...
+ }
+ </pre>
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html#LinearIterator(com.vividsolutions.jts.geom.Geometry)">LinearIterator</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linear)</CODE>
+
+<BR>
+ Creates an iterator initialized to the start of a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html#LinearIterator(com.vividsolutions.jts.geom.Geometry, int, int)">LinearIterator</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linear,
+ int componentIndex,
+ int vertexIndex)</CODE>
+
+<BR>
+ Creates an iterator starting at
+ a component and vertex in a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html#LinearIterator(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.linearref.LinearLocation)">LinearIterator</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linear,
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> start)</CODE>
+
+<BR>
+ Creates an iterator starting at
+ a <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A> on a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A></TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html#getComponentIndex()">getComponentIndex</A></B>()</CODE>
+
+<BR>
+ The component index of the vertex the iterator is currently at.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html#getLine()">getLine</A></B>()</CODE>
+
+<BR>
+ Gets the <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> component the iterator is current at.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html#getSegmentEnd()">getSegmentEnd</A></B>()</CODE>
+
+<BR>
+ Gets the second <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> of the current segment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html#getSegmentStart()">getSegmentStart</A></B>()</CODE>
+
+<BR>
+ Gets the first <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> of the current segment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html#getVertexIndex()">getVertexIndex</A></B>()</CODE>
+
+<BR>
+ The vertex index of the vertex the iterator is currently at.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html#hasNext()">hasNext</A></B>()</CODE>
+
+<BR>
+ Tests whether there are any vertices left to iterator over.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html#isEndOfLine()">isEndOfLine</A></B>()</CODE>
+
+<BR>
+ Checks whether the iterator cursor is pointing to the
+ endpoint of a linestring.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html#next()">next</A></B>()</CODE>
+
+<BR>
+ Moves the iterator ahead to the next vertex and (possibly) linear component.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LinearIterator(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+LinearIterator</H3>
+<PRE>
+public <B>LinearIterator</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linear)</PRE>
+<DL>
+<DD>Creates an iterator initialized to the start of a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+<P>
+<DT><B>Parameters:</B><DD><CODE>linear</CODE> - the linear geometry to iterate over</DL>
+<HR>
+
+<A NAME="LinearIterator(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.linearref.LinearLocation)"><!-- --></A><H3>
+LinearIterator</H3>
+<PRE>
+public <B>LinearIterator</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linear,
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> start)</PRE>
+<DL>
+<DD>Creates an iterator starting at
+ a <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A> on a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+<P>
+<DT><B>Parameters:</B><DD><CODE>linear</CODE> - the linear geometry to iterate over<DD><CODE>start</CODE> - the location to start at</DL>
+<HR>
+
+<A NAME="LinearIterator(com.vividsolutions.jts.geom.Geometry, int, int)"><!-- --></A><H3>
+LinearIterator</H3>
+<PRE>
+public <B>LinearIterator</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linear,
+ int componentIndex,
+ int vertexIndex)</PRE>
+<DL>
+<DD>Creates an iterator starting at
+ a component and vertex in a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+<P>
+<DT><B>Parameters:</B><DD><CODE>linear</CODE> - the linear geometry to iterate over<DD><CODE>componentIndex</CODE> - the component to start at<DD><CODE>vertexIndex</CODE> - the vertex to start at</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="hasNext()"><!-- --></A><H3>
+hasNext</H3>
+<PRE>
+public boolean <B>hasNext</B>()</PRE>
+<DL>
+<DD>Tests whether there are any vertices left to iterator over.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if there are more vertices to scan</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="next()"><!-- --></A><H3>
+next</H3>
+<PRE>
+public void <B>next</B>()</PRE>
+<DL>
+<DD>Moves the iterator ahead to the next vertex and (possibly) linear component.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEndOfLine()"><!-- --></A><H3>
+isEndOfLine</H3>
+<PRE>
+public boolean <B>isEndOfLine</B>()</PRE>
+<DL>
+<DD>Checks whether the iterator cursor is pointing to the
+ endpoint of a linestring.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</true> if the iterator is at an endpoint</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getComponentIndex()"><!-- --></A><H3>
+getComponentIndex</H3>
+<PRE>
+public int <B>getComponentIndex</B>()</PRE>
+<DL>
+<DD>The component index of the vertex the iterator is currently at.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the current component index</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getVertexIndex()"><!-- --></A><H3>
+getVertexIndex</H3>
+<PRE>
+public int <B>getVertexIndex</B>()</PRE>
+<DL>
+<DD>The vertex index of the vertex the iterator is currently at.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the current vertex index</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLine()"><!-- --></A><H3>
+getLine</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>getLine</B>()</PRE>
+<DL>
+<DD>Gets the <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> component the iterator is current at.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a linestring</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSegmentStart()"><!-- --></A><H3>
+getSegmentStart</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getSegmentStart</B>()</PRE>
+<DL>
+<DD>Gets the first <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> of the current segment.
+ (the coordinate of the current vertex).
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSegmentEnd()"><!-- --></A><H3>
+getSegmentEnd</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getSegmentEnd</B>()</PRE>
+<DL>
+<DD>Gets the second <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> of the current segment.
+ (the coordinate of the next vertex).
+ If the iterator is at the end of a line, <code>null</code> is returned.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> or <code>null</code></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LinearIterator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LinearLocation.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LinearLocation.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LinearLocation.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,720 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+LinearLocation
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.linearref.LinearLocation class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LinearLocation";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LinearLocation.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.linearref</FONT>
+<BR>
+Class LinearLocation</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.linearref.LinearLocation</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>LinearLocation</B><DT>extends java.lang.Object<DT>implements java.lang.Comparable</DL>
+
+<P>
+Represents a location along a <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> or <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A>.
+ The referenced geometry is not maintained within
+ this location, but must be provided for operations which require it.
+ Various methods are provided to manipulate the location value
+ and query the geometry it references.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#LinearLocation()">LinearLocation</A></B>()</CODE>
+
+<BR>
+ Creates a location referring to the start of a linear geometry</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#LinearLocation(int, double)">LinearLocation</A></B>(int segmentIndex,
+ double segmentFraction)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#LinearLocation(int, int, double)">LinearLocation</A></B>(int componentIndex,
+ int segmentIndex,
+ double segmentFraction)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#clamp(com.vividsolutions.jts.geom.Geometry)">clamp</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linear)</CODE>
+
+<BR>
+ Ensures the indexes are valid for a given linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#clone()">clone</A></B>()</CODE>
+
+<BR>
+ Copies this location</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#compareLocationValues(int, int, double)">compareLocationValues</A></B>(int componentIndex1,
+ int segmentIndex1,
+ double segmentFraction1)</CODE>
+
+<BR>
+ Compares this object with the specified index values for order.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#compareLocationValues(int, int, double, int, int, double)">compareLocationValues</A></B>(int componentIndex0,
+ int segmentIndex0,
+ double segmentFraction0,
+ int componentIndex1,
+ int segmentIndex1,
+ double segmentFraction1)</CODE>
+
+<BR>
+ Compares two sets of location values for order.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#compareTo(java.lang.Object)">compareTo</A></B>(java.lang.Object o)</CODE>
+
+<BR>
+ Compares this object with the specified object for order.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#getComponentIndex()">getComponentIndex</A></B>()</CODE>
+
+<BR>
+ Gets the component index for this location.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#getCoordinate(com.vividsolutions.jts.geom.Geometry)">getCoordinate</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom)</CODE>
+
+<BR>
+ Gets the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> along the
+ given linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> which is
+ referenced by this location.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#getEndLocation(com.vividsolutions.jts.geom.Geometry)">getEndLocation</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linear)</CODE>
+
+<BR>
+ Gets a location which refers to the end of a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#getSegmentFraction()">getSegmentFraction</A></B>()</CODE>
+
+<BR>
+ Gets the segment fraction for this location</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#getSegmentIndex()">getSegmentIndex</A></B>()</CODE>
+
+<BR>
+ Gets the segment index for this location</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#getSegmentLength(com.vividsolutions.jts.geom.Geometry)">getSegmentLength</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom)</CODE>
+
+<BR>
+ Gets the length of the segment in the given
+ Geometry containing this location.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#isValid(com.vividsolutions.jts.geom.Geometry)">isValid</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom)</CODE>
+
+<BR>
+ Tests whether this location refers to a valid
+ location on the given linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#isVertex()">isVertex</A></B>()</CODE>
+
+<BR>
+ Tests whether this location refers to a vertex</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#pointAlongSegmentByFraction(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, double)">pointAlongSegmentByFraction</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ double frac)</CODE>
+
+<BR>
+ Computes the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> of a point a given fraction
+ along the line segment <tt>(p0, p1)</tt>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#setToEnd(com.vividsolutions.jts.geom.Geometry)">setToEnd</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linear)</CODE>
+
+<BR>
+ Sets the value of this location to
+ refer the end of a linear geometry</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html#snapToVertex(com.vividsolutions.jts.geom.Geometry, double)">snapToVertex</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom,
+ double minDistance)</CODE>
+
+<BR>
+ Snaps the value of this location to
+ the nearest vertex on the given linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>,
+ if the vertex is closer than <tt>maxDistance</tt>.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LinearLocation()"><!-- --></A><H3>
+LinearLocation</H3>
+<PRE>
+public <B>LinearLocation</B>()</PRE>
+<DL>
+<DD>Creates a location referring to the start of a linear geometry
+<P>
+</DL>
+<HR>
+
+<A NAME="LinearLocation(int, double)"><!-- --></A><H3>
+LinearLocation</H3>
+<PRE>
+public <B>LinearLocation</B>(int segmentIndex,
+ double segmentFraction)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="LinearLocation(int, int, double)"><!-- --></A><H3>
+LinearLocation</H3>
+<PRE>
+public <B>LinearLocation</B>(int componentIndex,
+ int segmentIndex,
+ double segmentFraction)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getEndLocation(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+getEndLocation</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> <B>getEndLocation</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linear)</PRE>
+<DL>
+<DD>Gets a location which refers to the end of a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>linear</CODE> - the linear geometry
+<DT><B>Returns:</B><DD>a new <tt>LinearLocation</tt></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="pointAlongSegmentByFraction(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, double)"><!-- --></A><H3>
+pointAlongSegmentByFraction</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>pointAlongSegmentByFraction</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ double frac)</PRE>
+<DL>
+<DD>Computes the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> of a point a given fraction
+ along the line segment <tt>(p0, p1)</tt>.
+ If the fraction is greater than 1.0 the last
+ point of the segment is returned.
+ If the fraction is less than or equal to 0.0 the first point
+ of the segment is returned.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>p0</CODE> - the first point of the line segment<DD><CODE>p1</CODE> - the last point of the line segment<DD><CODE>frac</CODE> - the length to the desired point
+<DT><B>Returns:</B><DD>the <tt>Coordinate</tt> of the desired point</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clamp(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+clamp</H3>
+<PRE>
+public void <B>clamp</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linear)</PRE>
+<DL>
+<DD>Ensures the indexes are valid for a given linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>linear</CODE> - a linear geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="snapToVertex(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+snapToVertex</H3>
+<PRE>
+public void <B>snapToVertex</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom,
+ double minDistance)</PRE>
+<DL>
+<DD>Snaps the value of this location to
+ the nearest vertex on the given linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>,
+ if the vertex is closer than <tt>maxDistance</tt>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>linearGeom</CODE> - a linear geometry<DD><CODE>minDistance</CODE> - the minimum allowable distance to a vertex</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSegmentLength(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+getSegmentLength</H3>
+<PRE>
+public double <B>getSegmentLength</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom)</PRE>
+<DL>
+<DD>Gets the length of the segment in the given
+ Geometry containing this location.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>linearGeom</CODE> - a linear geometry
+<DT><B>Returns:</B><DD>the length of the segment</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setToEnd(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+setToEnd</H3>
+<PRE>
+public void <B>setToEnd</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linear)</PRE>
+<DL>
+<DD>Sets the value of this location to
+ refer the end of a linear geometry
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>linear</CODE> - the linear geometry to set</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getComponentIndex()"><!-- --></A><H3>
+getComponentIndex</H3>
+<PRE>
+public int <B>getComponentIndex</B>()</PRE>
+<DL>
+<DD>Gets the component index for this location.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the component index</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSegmentIndex()"><!-- --></A><H3>
+getSegmentIndex</H3>
+<PRE>
+public int <B>getSegmentIndex</B>()</PRE>
+<DL>
+<DD>Gets the segment index for this location
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the segment index</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSegmentFraction()"><!-- --></A><H3>
+getSegmentFraction</H3>
+<PRE>
+public double <B>getSegmentFraction</B>()</PRE>
+<DL>
+<DD>Gets the segment fraction for this location
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the segment fraction</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isVertex()"><!-- --></A><H3>
+isVertex</H3>
+<PRE>
+public boolean <B>isVertex</B>()</PRE>
+<DL>
+<DD>Tests whether this location refers to a vertex
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the location is a vertex</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom)</PRE>
+<DL>
+<DD>Gets the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> along the
+ given linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> which is
+ referenced by this location.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>linearGeom</CODE> - a linear geometry
+<DT><B>Returns:</B><DD>the <tt>Coordinate</tt> at the location</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isValid(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+isValid</H3>
+<PRE>
+public boolean <B>isValid</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom)</PRE>
+<DL>
+<DD>Tests whether this location refers to a valid
+ location on the given linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>linearGeom</CODE> - a linear geometry
+<DT><B>Returns:</B><DD>true if this location is valid</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(java.lang.Object o)</PRE>
+<DL>
+<DD>Compares this object with the specified object for order.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE>java.lang.Comparable</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>o</CODE> - the <code>LineStringLocation</code> with which this <code>Coordinate</code>
+ is being compared
+<DT><B>Returns:</B><DD>a negative integer, zero, or a positive integer as this <code>LineStringLocation</code>
+ is less than, equal to, or greater than the specified <code>LineStringLocation</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareLocationValues(int, int, double)"><!-- --></A><H3>
+compareLocationValues</H3>
+<PRE>
+public int <B>compareLocationValues</B>(int componentIndex1,
+ int segmentIndex1,
+ double segmentFraction1)</PRE>
+<DL>
+<DD>Compares this object with the specified index values for order.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>componentIndex1</CODE> - a component index<DD><CODE>segmentIndex1</CODE> - a segment index<DD><CODE>segmentFraction1</CODE> - a segment fraction
+<DT><B>Returns:</B><DD>a negative integer, zero, or a positive integer as this <code>LineStringLocation</code>
+ is less than, equal to, or greater than the specified locationValues</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareLocationValues(int, int, double, int, int, double)"><!-- --></A><H3>
+compareLocationValues</H3>
+<PRE>
+public static int <B>compareLocationValues</B>(int componentIndex0,
+ int segmentIndex0,
+ double segmentFraction0,
+ int componentIndex1,
+ int segmentIndex1,
+ double segmentFraction1)</PRE>
+<DL>
+<DD>Compares two sets of location values for order.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>componentIndex0</CODE> - a component index<DD><CODE>segmentIndex0</CODE> - a segment index<DD><CODE>segmentFraction0</CODE> - a segment fraction<DD><CODE>componentIndex1</CODE> - another component index<DD><CODE>segmentIndex1</CODE> - another segment index<DD><CODE>segmentFraction1</CODE> - another segment fraction
+<DT><B>Returns:</B><DD>a negative integer, zero, or a positive integer
+ as the first set of location values
+ is less than, equal to, or greater than the second set of locationValues</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clone()"><!-- --></A><H3>
+clone</H3>
+<PRE>
+public java.lang.Object <B>clone</B>()</PRE>
+<DL>
+<DD>Copies this location
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a copy of this location</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LinearLocation.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LocationIndexedLine.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LocationIndexedLine.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/LocationIndexedLine.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+LocationIndexedLine
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.linearref.LocationIndexedLine class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LocationIndexedLine";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LocationIndexedLine.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.linearref</FONT>
+<BR>
+Class LocationIndexedLine</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.linearref.LocationIndexedLine</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>LocationIndexedLine</B><DT>extends java.lang.Object</DL>
+
+<P>
+Supports linear referencing
+ along a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ using <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A>s as the index.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LocationIndexedLine.html#LocationIndexedLine(com.vividsolutions.jts.geom.Geometry)">LocationIndexedLine</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom)</CODE>
+
+<BR>
+ Constructs an object which allows linear referencing along
+ a given linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LocationIndexedLine.html#clampIndex(com.vividsolutions.jts.linearref.LinearLocation)">clampIndex</A></B>(<A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> index)</CODE>
+
+<BR>
+ Computes a valid index for this line
+ by clamping the given index to the valid range of index values</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LocationIndexedLine.html#extractLine(com.vividsolutions.jts.linearref.LinearLocation, com.vividsolutions.jts.linearref.LinearLocation)">extractLine</A></B>(<A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> startIndex,
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> endIndex)</CODE>
+
+<BR>
+ Computes the <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> for the interval
+ on the line between the given indices.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LocationIndexedLine.html#extractPoint(com.vividsolutions.jts.linearref.LinearLocation)">extractPoint</A></B>(<A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> index)</CODE>
+
+<BR>
+ Computes the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> for the point
+ on the line at the given index.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LocationIndexedLine.html#getEndIndex()">getEndIndex</A></B>()</CODE>
+
+<BR>
+ Returns the index of the end of the line</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LocationIndexedLine.html#getStartIndex()">getStartIndex</A></B>()</CODE>
+
+<BR>
+ Returns the index of the start of the line</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LocationIndexedLine.html#indexOf(com.vividsolutions.jts.geom.Coordinate)">indexOf</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Computes the index for a given point on the line.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LocationIndexedLine.html#indicesOf(com.vividsolutions.jts.geom.Geometry)">indicesOf</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> subLine)</CODE>
+
+<BR>
+ Computes the indices for a subline of the line.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LocationIndexedLine.html#isValidIndex(com.vividsolutions.jts.linearref.LinearLocation)">isValidIndex</A></B>(<A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> index)</CODE>
+
+<BR>
+ Tests whether an index is in the valid index range for the line.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/linearref/LocationIndexedLine.html#project(com.vividsolutions.jts.geom.Coordinate)">project</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Computes the index for the closest point on the line to the given point.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LocationIndexedLine(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+LocationIndexedLine</H3>
+<PRE>
+public <B>LocationIndexedLine</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> linearGeom)</PRE>
+<DL>
+<DD>Constructs an object which allows linear referencing along
+ a given linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<P>
+<DT><B>Parameters:</B><DD><CODE>linearGeom</CODE> - the linear geometry to reference along</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="extractPoint(com.vividsolutions.jts.linearref.LinearLocation)"><!-- --></A><H3>
+extractPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>extractPoint</B>(<A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> index)</PRE>
+<DL>
+<DD>Computes the <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> for the point
+ on the line at the given index.
+ If the index is out of range the first or last point on the
+ line will be returned.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the Coordinate at the given index</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="extractLine(com.vividsolutions.jts.linearref.LinearLocation, com.vividsolutions.jts.linearref.LinearLocation)"><!-- --></A><H3>
+extractLine</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>extractLine</B>(<A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> startIndex,
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> endIndex)</PRE>
+<DL>
+<DD>Computes the <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> for the interval
+ on the line between the given indices.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>startIndex</CODE> - the index of the start of the interval<DD><CODE>endIndex</CODE> - the index of the end of the interval
+<DT><B>Returns:</B><DD>the linear interval between the indices</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="indexOf(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+indexOf</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> <B>indexOf</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Computes the index for a given point on the line.
+ <p>
+ The supplied point does not <i>necessarily</i> have to lie precisely
+ on the line, but if it is far from the line the accuracy and
+ performance of this function is not guaranteed.
+ Use <A HREF="../../../../com/vividsolutions/jts/linearref/LocationIndexedLine.html#project(com.vividsolutions.jts.geom.Coordinate)"><CODE>project(com.vividsolutions.jts.geom.Coordinate)</CODE></A> to compute a guaranteed result for points
+ which may be far from the line.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pt</CODE> - a point on the line
+<DT><B>Returns:</B><DD>the index of the point<DT><B>See Also:</B><DD><CODE>project</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="indicesOf(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+indicesOf</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>[] <B>indicesOf</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> subLine)</PRE>
+<DL>
+<DD>Computes the indices for a subline of the line.
+ (The subline must <i>conform</i> to the line; that is,
+ all vertices in the subline (except possibly the first and last)
+ must be vertices of the line and occcur in the same order).
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>subLine</CODE> - a subLine of the line
+<DT><B>Returns:</B><DD>a pair of indices for the start and end of the subline.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="project(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+project</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> <B>project</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Computes the index for the closest point on the line to the given point.
+ If more than one point has the closest distance the first one along the line
+ is returned.
+ (The point does not necessarily have to lie precisely on the line.)
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pt</CODE> - a point on the line
+<DT><B>Returns:</B><DD>the index of the point</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStartIndex()"><!-- --></A><H3>
+getStartIndex</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> <B>getStartIndex</B>()</PRE>
+<DL>
+<DD>Returns the index of the start of the line
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEndIndex()"><!-- --></A><H3>
+getEndIndex</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> <B>getEndIndex</B>()</PRE>
+<DL>
+<DD>Returns the index of the end of the line
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isValidIndex(com.vividsolutions.jts.linearref.LinearLocation)"><!-- --></A><H3>
+isValidIndex</H3>
+<PRE>
+public boolean <B>isValidIndex</B>(<A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> index)</PRE>
+<DL>
+<DD>Tests whether an index is in the valid index range for the line.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the index is in the valid range</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clampIndex(com.vividsolutions.jts.linearref.LinearLocation)"><!-- --></A><H3>
+clampIndex</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> <B>clampIndex</B>(<A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A> index)</PRE>
+<DL>
+<DD>Computes a valid index for this line
+ by clamping the given index to the valid range of index values
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a valid index value</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LocationIndexedLine.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.linearref
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.linearref package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/vividsolutions/jts/linearref/package-summary.html" target="classFrame">com.vividsolutions.jts.linearref</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref" target="classFrame">LengthIndexedLine</A>
+<BR>
+<A HREF="LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref" target="classFrame">LengthLocationMap</A>
+<BR>
+<A HREF="LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref" target="classFrame">LinearGeometryBuilder</A>
+<BR>
+<A HREF="LinearIterator.html" title="class in com.vividsolutions.jts.linearref" target="classFrame">LinearIterator</A>
+<BR>
+<A HREF="LinearLocation.html" title="class in com.vividsolutions.jts.linearref" target="classFrame">LinearLocation</A>
+<BR>
+<A HREF="LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref" target="classFrame">LocationIndexedLine</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.linearref
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.linearref package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.linearref";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.linearref
+</H2>
+Contains classes and interfaces implementing linear referencing on linear geometries
+
+
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LengthIndexedLine</A></B></TD>
+<TD>Supports linear referencing along a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ using the length along the line as the index.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref">LengthLocationMap</A></B></TD>
+<TD>Computes the <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A> for a given length
+ along a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref">LinearGeometryBuilder</A></B></TD>
+<TD>Builds a linear geometry (<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> or <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A>)
+ incrementally (point-by-point).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref">LinearIterator</A></B></TD>
+<TD>An iterator over the components and coordinates of a linear geometry
+ (<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>s and <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A></B></TD>
+<TD>Represents a location along a <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> or <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LocationIndexedLine</A></B></TD>
+<TD>Supports linear referencing
+ along a linear <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ using <A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A>s as the index.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.linearref Description
+</H2>
+
+<P>
+Contains classes and interfaces implementing linear referencing on linear geometries
+
+<H3>Linear Referencing</H3>
+
+Linear Referencing is a way of defining positions along linear geometries
+(<code>LineStrings</code> and <code>MultiLineStrings</code>).
+It is used extensively in linear network systems.
+There are numerous possible <b>Linear Referencing Methods</b> which
+can be used to define positions along linear geometry.
+This package supports two:
+<ul>
+<li><b>Linear Location</b> - a linear location is a triple
+<code>(component index, segment index, segment fraction)</code>
+which precisely specifies a point on a linear geometry.
+It allows for efficient mapping of the index value to actual coordinate values.
+<li><b>Length</b> - the natural concept of using the length along
+the geometry to specify a position.
+
+<h2>Package Specification</h2>
+
+<ul>
+ <li>Java Topology Suite Technical Specifications
+ <li><A HREF="http://www.opengis.org/techno/specs.htm">
+ OpenGIS Simple Features Specification for SQL</A>
+</ul>
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/linearref/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.linearref Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.linearref Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.linearref
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.linearref.<A HREF="../../../../com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref"><B>LengthIndexedLine</B></A><LI TYPE="circle">class com.vividsolutions.jts.linearref.<A HREF="../../../../com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref"><B>LengthLocationMap</B></A><LI TYPE="circle">class com.vividsolutions.jts.linearref.<A HREF="../../../../com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref"><B>LinearGeometryBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.linearref.<A HREF="../../../../com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref"><B>LinearIterator</B></A><LI TYPE="circle">class com.vividsolutions.jts.linearref.<A HREF="../../../../com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><B>LinearLocation</B></A> (implements java.lang.Comparable)
+<LI TYPE="circle">class com.vividsolutions.jts.linearref.<A HREF="../../../../com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref"><B>LocationIndexedLine</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/io/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/FastNodingValidator.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/FastNodingValidator.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/FastNodingValidator.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,322 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+FastNodingValidator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.FastNodingValidator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="FastNodingValidator";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="FastNodingValidator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class FastNodingValidator</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.FastNodingValidator</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>FastNodingValidator</B><DT>extends java.lang.Object</DL>
+
+<P>
+Validates that a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s is correctly noded.
+ Indexing is used to improve performance.
+ This class assumes that at least one round of noding has already been performed
+ (which may still leave intersections, due to rounding issues).
+ Does NOT check a-b-a collapse situations.
+ Also does not check for endpt-interior vertex intersections.
+ This should not be a problem, since the noders should be
+ able to compute intersections between vertices correctly.
+ User may either test the valid condition, or request that a
+ <A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom"><CODE>TopologyException</CODE></A>
+ be thrown.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/FastNodingValidator.html#FastNodingValidator(java.util.Collection)">FastNodingValidator</A></B>(java.util.Collection segStrings)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/FastNodingValidator.html#checkValid()">checkValid</A></B>()</CODE>
+
+<BR>
+ Checks for an intersection and throws
+ a TopologyException if one is found.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/FastNodingValidator.html#getErrorMessage()">getErrorMessage</A></B>()</CODE>
+
+<BR>
+ Returns an error message indicating the segments containing
+ the intersection.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/FastNodingValidator.html#isValid()">isValid</A></B>()</CODE>
+
+<BR>
+ Checks for an intersection and
+ reports if one is found.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="FastNodingValidator(java.util.Collection)"><!-- --></A><H3>
+FastNodingValidator</H3>
+<PRE>
+public <B>FastNodingValidator</B>(java.util.Collection segStrings)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isValid()"><!-- --></A><H3>
+isValid</H3>
+<PRE>
+public boolean <B>isValid</B>()</PRE>
+<DL>
+<DD>Checks for an intersection and
+ reports if one is found.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the arrangement contains an interior intersection</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getErrorMessage()"><!-- --></A><H3>
+getErrorMessage</H3>
+<PRE>
+public java.lang.String <B>getErrorMessage</B>()</PRE>
+<DL>
+<DD>Returns an error message indicating the segments containing
+ the intersection.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an error message documenting the intersection location</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="checkValid()"><!-- --></A><H3>
+checkValid</H3>
+<PRE>
+public void <B>checkValid</B>()</PRE>
+<DL>
+<DD>Checks for an intersection and throws
+ a TopologyException if one is found.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A></CODE> - if an intersection is found</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="FastNodingValidator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/InteriorIntersectionFinder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/InteriorIntersectionFinder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/InteriorIntersectionFinder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,410 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+InteriorIntersectionFinder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.InteriorIntersectionFinder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="InteriorIntersectionFinder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/FastNodingValidator.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="InteriorIntersectionFinder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class InteriorIntersectionFinder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.InteriorIntersectionFinder</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>InteriorIntersectionFinder</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A></DL>
+
+<P>
+Finds an interior intersection in a set of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s,
+ if one exists. Only the first intersection found is reported.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/InteriorIntersectionFinder.html#InteriorIntersectionFinder(com.vividsolutions.jts.algorithm.LineIntersector)">InteriorIntersectionFinder</A></B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li)</CODE>
+
+<BR>
+ Creates an intersection finder which finds an interior intersection
+ if one exists</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/InteriorIntersectionFinder.html#getInteriorIntersection()">getInteriorIntersection</A></B>()</CODE>
+
+<BR>
+ Gets the computed location of the intersection.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/InteriorIntersectionFinder.html#getIntersectionSegments()">getIntersectionSegments</A></B>()</CODE>
+
+<BR>
+ Gets the endpoints of the intersecting segments.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/InteriorIntersectionFinder.html#hasIntersection()">hasIntersection</A></B>()</CODE>
+
+<BR>
+ Tests whether an intersection was found.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/InteriorIntersectionFinder.html#isDone()">isDone</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/InteriorIntersectionFinder.html#processIntersections(com.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.SegmentString, int)">processIntersections</A></B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e0,
+ int segIndex0,
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e1,
+ int segIndex1)</CODE>
+
+<BR>
+ This method is called by clients
+ of the <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentIntersector</CODE></A> class to process
+ intersections for two segments of the <CODE>SegmentStrings</CODE> being intersected.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/InteriorIntersectionFinder.html#setCheckEndSegmentsOnly(boolean)">setCheckEndSegmentsOnly</A></B>(boolean isCheckEndSegmentsOnly)</CODE>
+
+<BR>
+ Sets whether only end segments should be tested for interior intersection.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="InteriorIntersectionFinder(com.vividsolutions.jts.algorithm.LineIntersector)"><!-- --></A><H3>
+InteriorIntersectionFinder</H3>
+<PRE>
+public <B>InteriorIntersectionFinder</B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li)</PRE>
+<DL>
+<DD>Creates an intersection finder which finds an interior intersection
+ if one exists
+<P>
+<DT><B>Parameters:</B><DD><CODE>li</CODE> - the LineIntersector to use</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setCheckEndSegmentsOnly(boolean)"><!-- --></A><H3>
+setCheckEndSegmentsOnly</H3>
+<PRE>
+public void <B>setCheckEndSegmentsOnly</B>(boolean isCheckEndSegmentsOnly)</PRE>
+<DL>
+<DD>Sets whether only end segments should be tested for interior intersection.
+ This is a performance optimization that may be used if
+ the segments have been previously noded by an appropriate algorithm.
+ It may be known that any potential noding failures will occur only in
+ end segments.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>isCheckEndSegmentsOnly</CODE> - whether to test only end segments</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasIntersection()"><!-- --></A><H3>
+hasIntersection</H3>
+<PRE>
+public boolean <B>hasIntersection</B>()</PRE>
+<DL>
+<DD>Tests whether an intersection was found.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if an intersection was found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInteriorIntersection()"><!-- --></A><H3>
+getInteriorIntersection</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getInteriorIntersection</B>()</PRE>
+<DL>
+<DD>Gets the computed location of the intersection.
+ Due to round-off, the location may not be exact.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the coordinate for the intersection location</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIntersectionSegments()"><!-- --></A><H3>
+getIntersectionSegments</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>getIntersectionSegments</B>()</PRE>
+<DL>
+<DD>Gets the endpoints of the intersecting segments.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an array of the segment endpoints (p00, p01, p10, p11)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="processIntersections(com.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.SegmentString, int)"><!-- --></A><H3>
+processIntersections</H3>
+<PRE>
+public void <B>processIntersections</B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e0,
+ int segIndex0,
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e1,
+ int segIndex1)</PRE>
+<DL>
+<DD>This method is called by clients
+ of the <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentIntersector</CODE></A> class to process
+ intersections for two segments of the <CODE>SegmentStrings</CODE> being intersected.
+ Note that some clients (such as <CODE>MonotoneChain</CODE>s) may optimize away
+ this call for segment pairs which they have determined do not intersect
+ (e.g. by an disjoint envelope test).
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html#processIntersections(com.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.SegmentString, int)">processIntersections</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isDone()"><!-- --></A><H3>
+isDone</H3>
+<PRE>
+public boolean <B>isDone</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/FastNodingValidator.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="InteriorIntersectionFinder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/IntersectionAdder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/IntersectionAdder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/IntersectionAdder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,566 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+IntersectionAdder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.IntersectionAdder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="IntersectionAdder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="IntersectionAdder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class IntersectionAdder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.IntersectionAdder</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>IntersectionAdder</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A></DL>
+
+<P>
+Computes the intersections between two line segments in <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s
+ and adds them to each string.
+ The <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentIntersector</CODE></A> is passed to a <A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><CODE>Noder</CODE></A>.
+ The <CODE>addIntersections</CODE> method is called whenever the <A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><CODE>Noder</CODE></A>
+ detects that two SegmentStrings <i>might</i> intersect.
+ This class is an example of the <i>Strategy</i> pattern.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html#numInteriorIntersections">numInteriorIntersections</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html#numIntersections">numIntersections</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html#numProperIntersections">numProperIntersections</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html#numTests">numTests</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html#IntersectionAdder(com.vividsolutions.jts.algorithm.LineIntersector)">IntersectionAdder</A></B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html#getLineIntersector()">getLineIntersector</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html#getProperIntersectionPoint()">getProperIntersectionPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html#hasInteriorIntersection()">hasInteriorIntersection</A></B>()</CODE>
+
+<BR>
+ An interior intersection is an intersection which is
+ in the interior of some segment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html#hasIntersection()">hasIntersection</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html#hasProperInteriorIntersection()">hasProperInteriorIntersection</A></B>()</CODE>
+
+<BR>
+ A proper interior intersection is a proper intersection which is <b>not</b>
+ contained in the set of boundary nodes set for this SegmentIntersector.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html#hasProperIntersection()">hasProperIntersection</A></B>()</CODE>
+
+<BR>
+ A proper intersection is an intersection which is interior to at least two
+ line segments.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html#isAdjacentSegments(int, int)">isAdjacentSegments</A></B>(int i1,
+ int i2)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html#isDone()">isDone</A></B>()</CODE>
+
+<BR>
+ Always process all intersections</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html#processIntersections(com.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.SegmentString, int)">processIntersections</A></B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e0,
+ int segIndex0,
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e1,
+ int segIndex1)</CODE>
+
+<BR>
+ This method is called by clients
+ of the <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentIntersector</CODE></A> class to process
+ intersections for two segments of the <CODE>SegmentStrings</CODE> being intersected.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="numIntersections"><!-- --></A><H3>
+numIntersections</H3>
+<PRE>
+public int <B>numIntersections</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="numInteriorIntersections"><!-- --></A><H3>
+numInteriorIntersections</H3>
+<PRE>
+public int <B>numInteriorIntersections</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="numProperIntersections"><!-- --></A><H3>
+numProperIntersections</H3>
+<PRE>
+public int <B>numProperIntersections</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="numTests"><!-- --></A><H3>
+numTests</H3>
+<PRE>
+public int <B>numTests</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="IntersectionAdder(com.vividsolutions.jts.algorithm.LineIntersector)"><!-- --></A><H3>
+IntersectionAdder</H3>
+<PRE>
+public <B>IntersectionAdder</B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isAdjacentSegments(int, int)"><!-- --></A><H3>
+isAdjacentSegments</H3>
+<PRE>
+public static boolean <B>isAdjacentSegments</B>(int i1,
+ int i2)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLineIntersector()"><!-- --></A><H3>
+getLineIntersector</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> <B>getLineIntersector</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getProperIntersectionPoint()"><!-- --></A><H3>
+getProperIntersectionPoint</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getProperIntersectionPoint</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the proper intersection point, or <code>null</code> if none was found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasIntersection()"><!-- --></A><H3>
+hasIntersection</H3>
+<PRE>
+public boolean <B>hasIntersection</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasProperIntersection()"><!-- --></A><H3>
+hasProperIntersection</H3>
+<PRE>
+public boolean <B>hasProperIntersection</B>()</PRE>
+<DL>
+<DD>A proper intersection is an intersection which is interior to at least two
+ line segments. Note that a proper intersection is not necessarily
+ in the interior of the entire Geometry, since another edge may have
+ an endpoint equal to the intersection, which according to SFS semantics
+ can result in the point being on the Boundary of the Geometry.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasProperInteriorIntersection()"><!-- --></A><H3>
+hasProperInteriorIntersection</H3>
+<PRE>
+public boolean <B>hasProperInteriorIntersection</B>()</PRE>
+<DL>
+<DD>A proper interior intersection is a proper intersection which is <b>not</b>
+ contained in the set of boundary nodes set for this SegmentIntersector.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasInteriorIntersection()"><!-- --></A><H3>
+hasInteriorIntersection</H3>
+<PRE>
+public boolean <B>hasInteriorIntersection</B>()</PRE>
+<DL>
+<DD>An interior intersection is an intersection which is
+ in the interior of some segment.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="processIntersections(com.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.SegmentString, int)"><!-- --></A><H3>
+processIntersections</H3>
+<PRE>
+public void <B>processIntersections</B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e0,
+ int segIndex0,
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e1,
+ int segIndex1)</PRE>
+<DL>
+<DD>This method is called by clients
+ of the <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentIntersector</CODE></A> class to process
+ intersections for two segments of the <CODE>SegmentStrings</CODE> being intersected.
+ Note that some clients (such as <CODE>MonotoneChain</CODE>s) may optimize away
+ this call for segment pairs which they have determined do not intersect
+ (e.g. by an disjoint envelope test).
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html#processIntersections(com.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.SegmentString, int)">processIntersections</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isDone()"><!-- --></A><H3>
+isDone</H3>
+<PRE>
+public boolean <B>isDone</B>()</PRE>
+<DL>
+<DD>Always process all intersections
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>false always</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="IntersectionAdder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/IntersectionFinderAdder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/IntersectionFinderAdder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/IntersectionFinderAdder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,329 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+IntersectionFinderAdder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.IntersectionFinderAdder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="IntersectionFinderAdder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="IntersectionFinderAdder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class IntersectionFinderAdder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.IntersectionFinderAdder</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>IntersectionFinderAdder</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A></DL>
+
+<P>
+Finds proper and interior intersections in a set of SegmentStrings,
+ and adds them as nodes.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionFinderAdder.html#IntersectionFinderAdder(com.vividsolutions.jts.algorithm.LineIntersector)">IntersectionFinderAdder</A></B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li)</CODE>
+
+<BR>
+ Creates an intersection finder which finds all proper intersections</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionFinderAdder.html#getInteriorIntersections()">getInteriorIntersections</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionFinderAdder.html#isDone()">isDone</A></B>()</CODE>
+
+<BR>
+ Always process all intersections</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionFinderAdder.html#processIntersections(com.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.SegmentString, int)">processIntersections</A></B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e0,
+ int segIndex0,
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e1,
+ int segIndex1)</CODE>
+
+<BR>
+ This method is called by clients
+ of the <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentIntersector</CODE></A> class to process
+ intersections for two segments of the <CODE>SegmentStrings</CODE> being intersected.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="IntersectionFinderAdder(com.vividsolutions.jts.algorithm.LineIntersector)"><!-- --></A><H3>
+IntersectionFinderAdder</H3>
+<PRE>
+public <B>IntersectionFinderAdder</B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li)</PRE>
+<DL>
+<DD>Creates an intersection finder which finds all proper intersections
+<P>
+<DT><B>Parameters:</B><DD><CODE>li</CODE> - the LineIntersector to use</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getInteriorIntersections()"><!-- --></A><H3>
+getInteriorIntersections</H3>
+<PRE>
+public java.util.List <B>getInteriorIntersections</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="processIntersections(com.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.SegmentString, int)"><!-- --></A><H3>
+processIntersections</H3>
+<PRE>
+public void <B>processIntersections</B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e0,
+ int segIndex0,
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e1,
+ int segIndex1)</PRE>
+<DL>
+<DD>This method is called by clients
+ of the <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentIntersector</CODE></A> class to process
+ intersections for two segments of the <CODE>SegmentStrings</CODE> being intersected.
+ Note that some clients (such as <CODE>MonotoneChain</CODE>s) may optimize away
+ this call for segment pairs which they have determined do not intersect
+ (e.g. by an disjoint envelope test).
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html#processIntersections(com.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.SegmentString, int)">processIntersections</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isDone()"><!-- --></A><H3>
+isDone</H3>
+<PRE>
+public boolean <B>isDone</B>()</PRE>
+<DL>
+<DD>Always process all intersections
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>false always</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="IntersectionFinderAdder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/IteratedNoder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/IteratedNoder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/IteratedNoder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,367 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+IteratedNoder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.IteratedNoder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="IteratedNoder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="IteratedNoder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class IteratedNoder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.IteratedNoder</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>IteratedNoder</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></DL>
+
+<P>
+Nodes a set of SegmentStrings completely.
+ The set of segmentStrings is fully noded;
+ i.e. noding is repeated until no further
+ intersections are detected.
+ <p>
+ Iterated noding using a FLOATING precision model is not guaranteed to converge,
+ due to roundoff error. This problem is detected and an exception is thrown.
+ Clients can choose to rerun the noding using a lower precision model.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IteratedNoder.html#MAX_ITER">MAX_ITER</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IteratedNoder.html#IteratedNoder(com.vividsolutions.jts.geom.PrecisionModel)">IteratedNoder</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IteratedNoder.html#computeNodes(java.util.Collection)">computeNodes</A></B>(java.util.Collection segStrings)</CODE>
+
+<BR>
+ Fully nodes a list of <CODE>SegmentStrings</CODE>, i.e.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IteratedNoder.html#getNodedSubstrings()">getNodedSubstrings</A></B>()</CODE>
+
+<BR>
+ Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/IteratedNoder.html#setMaximumIterations(int)">setMaximumIterations</A></B>(int maxIter)</CODE>
+
+<BR>
+ Sets the maximum number of noding iterations performed before
+ the noding is aborted.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MAX_ITER"><!-- --></A><H3>
+MAX_ITER</H3>
+<PRE>
+public static final int <B>MAX_ITER</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.vividsolutions.jts.noding.IteratedNoder.MAX_ITER">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="IteratedNoder(com.vividsolutions.jts.geom.PrecisionModel)"><!-- --></A><H3>
+IteratedNoder</H3>
+<PRE>
+public <B>IteratedNoder</B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setMaximumIterations(int)"><!-- --></A><H3>
+setMaximumIterations</H3>
+<PRE>
+public void <B>setMaximumIterations</B>(int maxIter)</PRE>
+<DL>
+<DD>Sets the maximum number of noding iterations performed before
+ the noding is aborted.
+ Experience suggests that this should rarely need to be changed
+ from the default.
+ The default is MAX_ITER.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>maxIter</CODE> - the maximum number of iterations to perform</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNodedSubstrings()"><!-- --></A><H3>
+getNodedSubstrings</H3>
+<PRE>
+public java.util.Collection <B>getNodedSubstrings</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></B></DD>
+<DD>Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.
+ The SegmentStrings have the same context as their parent.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html#getNodedSubstrings()">getNodedSubstrings</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a Collection of SegmentStrings</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeNodes(java.util.Collection)"><!-- --></A><H3>
+computeNodes</H3>
+<PRE>
+public void <B>computeNodes</B>(java.util.Collection segStrings)
+ throws <A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A></PRE>
+<DL>
+<DD>Fully nodes a list of <CODE>SegmentStrings</CODE>, i.e. peforms noding iteratively
+ until no intersections are found between segments.
+ Maintains labelling of edges correctly through
+ the noding.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html#computeNodes(java.util.Collection)">computeNodes</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>segStrings</CODE> - a collection of SegmentStrings to be noded
+<DT><B>Returns:</B><DD>a collection of the noded SegmentStrings
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A></CODE> - if the iterated noding fails to converge.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="IteratedNoder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,291 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+MCIndexNoder.SegmentOverlapAction
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.MCIndexNoder.SegmentOverlapAction class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MCIndexNoder.SegmentOverlapAction";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/NodingValidator.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MCIndexNoder.SegmentOverlapAction.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.index.chain.MonotoneChainOverlapAction">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class MCIndexNoder.SegmentOverlapAction</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">com.vividsolutions.jts.index.chain.MonotoneChainOverlapAction</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.MCIndexNoder.SegmentOverlapAction</B>
+</PRE>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding">MCIndexNoder</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>MCIndexNoder.SegmentOverlapAction</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainOverlapAction</A></DL>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.index.chain.MonotoneChainOverlapAction"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.index.chain.<A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainOverlapAction</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html#overlapSeg1">overlapSeg1</A>, <A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html#overlapSeg2">overlapSeg2</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html#MCIndexNoder.SegmentOverlapAction(com.vividsolutions.jts.noding.SegmentIntersector)">MCIndexNoder.SegmentOverlapAction</A></B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A> si)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html#overlap(com.vividsolutions.jts.index.chain.MonotoneChain, int, com.vividsolutions.jts.index.chain.MonotoneChain, int)">overlap</A></B>(<A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A> mc1,
+ int start1,
+ <A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A> mc2,
+ int start2)</CODE>
+
+<BR>
+ This function can be overridden if the original chains are needed</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.index.chain.MonotoneChainOverlapAction"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.index.chain.<A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainOverlapAction</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html#overlap(com.vividsolutions.jts.geom.LineSegment, com.vividsolutions.jts.geom.LineSegment)">overlap</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MCIndexNoder.SegmentOverlapAction(com.vividsolutions.jts.noding.SegmentIntersector)"><!-- --></A><H3>
+MCIndexNoder.SegmentOverlapAction</H3>
+<PRE>
+public <B>MCIndexNoder.SegmentOverlapAction</B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A> si)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="overlap(com.vividsolutions.jts.index.chain.MonotoneChain, int, com.vividsolutions.jts.index.chain.MonotoneChain, int)"><!-- --></A><H3>
+overlap</H3>
+<PRE>
+public void <B>overlap</B>(<A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A> mc1,
+ int start1,
+ <A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A> mc2,
+ int start2)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainOverlapAction</A></CODE></B></DD>
+<DD>This function can be overridden if the original chains are needed
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html#overlap(com.vividsolutions.jts.index.chain.MonotoneChain, int, com.vividsolutions.jts.index.chain.MonotoneChain, int)">overlap</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainOverlapAction</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>start1</CODE> - the index of the start of the overlapping segment from mc1<DD><CODE>start2</CODE> - the index of the start of the overlapping segment from mc2</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/NodingValidator.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MCIndexNoder.SegmentOverlapAction.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.index.chain.MonotoneChainOverlapAction">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/MCIndexNoder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/MCIndexNoder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/MCIndexNoder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+MCIndexNoder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.MCIndexNoder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MCIndexNoder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MCIndexNoder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.noding.SinglePassNoder">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class MCIndexNoder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">com.vividsolutions.jts.noding.SinglePassNoder</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.MCIndexNoder</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>MCIndexNoder</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></DL>
+
+<P>
+Nodes a set of <CODE>SegmentStrings</CODE> using a index based
+ on <A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><CODE>MonotoneChain</CODE></A>s and a <A HREF="../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index"><CODE>SpatialIndex</CODE></A>.
+ The <A HREF="../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index"><CODE>SpatialIndex</CODE></A> used should be something that supports
+ envelope (range) queries efficiently (such as a <CODE>Quadtree</CODE>
+ or <A HREF="../../../../com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree"><CODE>STRtree</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html" title="class in com.vividsolutions.jts.noding">MCIndexNoder.SegmentOverlapAction</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.noding.SinglePassNoder"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html#segInt">segInt</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.html#MCIndexNoder()">MCIndexNoder</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.html#computeNodes(java.util.Collection)">computeNodes</A></B>(java.util.Collection inputSegStrings)</CODE>
+
+<BR>
+ Computes the noding for a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.html#getIndex()">getIndex</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.html#getMonotoneChains()">getMonotoneChains</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.html#getNodedSubstrings()">getNodedSubstrings</A></B>()</CODE>
+
+<BR>
+ Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.noding.SinglePassNoder"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html#setSegmentIntersector(com.vividsolutions.jts.noding.SegmentIntersector)">setSegmentIntersector</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MCIndexNoder()"><!-- --></A><H3>
+MCIndexNoder</H3>
+<PRE>
+public <B>MCIndexNoder</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getMonotoneChains()"><!-- --></A><H3>
+getMonotoneChains</H3>
+<PRE>
+public java.util.List <B>getMonotoneChains</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIndex()"><!-- --></A><H3>
+getIndex</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A> <B>getIndex</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNodedSubstrings()"><!-- --></A><H3>
+getNodedSubstrings</H3>
+<PRE>
+public java.util.Collection <B>getNodedSubstrings</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></CODE></B></DD>
+<DD>Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.
+ The SegmentStrings have the same context as their parent.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html#getNodedSubstrings()">getNodedSubstrings</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html#getNodedSubstrings()">getNodedSubstrings</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a Collection of SegmentStrings</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeNodes(java.util.Collection)"><!-- --></A><H3>
+computeNodes</H3>
+<PRE>
+public void <B>computeNodes</B>(java.util.Collection inputSegStrings)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></CODE></B></DD>
+<DD>Computes the noding for a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.
+ Some Noders may add all these nodes to the input SegmentStrings;
+ others may only add some or none at all.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html#computeNodes(java.util.Collection)">computeNodes</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html#computeNodes(java.util.Collection)">computeNodes</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>inputSegStrings</CODE> - a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s to node</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MCIndexNoder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.noding.SinglePassNoder">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/Noder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/Noder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/Noder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,252 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+Noder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.Noder interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Noder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Noder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Interface Noder</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding">IteratedNoder</A>, <A HREF="../../../../com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexSnapRounder</A>, <A HREF="../../../../com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding">ScaledNoder</A>, <A HREF="../../../../com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">SimpleSnapRounder</A>, <A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public interface <B>Noder</B></DL>
+
+<P>
+Computes all intersections between segments in a set of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.
+ Intersections found are represented as <A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentNode</CODE></A>s and added to the
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s in which they occur.
+ As a final step in the noding a new set of segment strings split
+ at the nodes may be returned.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html#computeNodes(java.util.Collection)">computeNodes</A></B>(java.util.Collection segStrings)</CODE>
+
+<BR>
+ Computes the noding for a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html#getNodedSubstrings()">getNodedSubstrings</A></B>()</CODE>
+
+<BR>
+ Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="computeNodes(java.util.Collection)"><!-- --></A><H3>
+computeNodes</H3>
+<PRE>
+public void <B>computeNodes</B>(java.util.Collection segStrings)</PRE>
+<DL>
+<DD>Computes the noding for a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.
+ Some Noders may add all these nodes to the input SegmentStrings;
+ others may only add some or none at all.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>segStrings</CODE> - a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s to node</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNodedSubstrings()"><!-- --></A><H3>
+getNodedSubstrings</H3>
+<PRE>
+public java.util.Collection <B>getNodedSubstrings</B>()</PRE>
+<DL>
+<DD>Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.
+ The SegmentStrings have the same context as their parent.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a Collection of SegmentStrings</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Noder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/NodingValidator.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/NodingValidator.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/NodingValidator.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,269 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+NodingValidator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.NodingValidator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="NodingValidator";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NodingValidator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class NodingValidator</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.NodingValidator</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>NodingValidator</B><DT>extends java.lang.Object</DL>
+
+<P>
+Validates that a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s is correctly noded.
+ Throws an appropriate exception if an noding error is found.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/NodingValidator.html#NodingValidator(java.util.Collection)">NodingValidator</A></B>(java.util.Collection segStrings)</CODE>
+
+<BR>
+ Creates a new validator for the given collection
+ of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/NodingValidator.html#checkValid()">checkValid</A></B>()</CODE>
+
+<BR>
+ Checks whether the supplied segment strings
+ are correctly noded.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="NodingValidator(java.util.Collection)"><!-- --></A><H3>
+NodingValidator</H3>
+<PRE>
+public <B>NodingValidator</B>(java.util.Collection segStrings)</PRE>
+<DL>
+<DD>Creates a new validator for the given collection
+ of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.
+<P>
+<DT><B>Parameters:</B><DD><CODE>segStrings</CODE> - a collection of SegmentStrings</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="checkValid()"><!-- --></A><H3>
+checkValid</H3>
+<PRE>
+public void <B>checkValid</B>()</PRE>
+<DL>
+<DD>Checks whether the supplied segment strings
+ are correctly noded. Throws an exception if they are not.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.RuntimeException</CODE> - if the SegmentStrings are not correctly noded</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NodingValidator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/Octant.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/Octant.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/Octant.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+Octant
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.Octant class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Octant";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/NodingValidator.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Octant.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class Octant</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.Octant</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Octant</B><DT>extends java.lang.Object</DL>
+
+<P>
+Methods for computing and working with octants of the Cartesian plane
+ Octants are numbered as follows:
+ <pre>
+ \2|1/
+ 3 \|/ 0
+ ---+--
+ 4 /|\ 7
+ /5|6\
+ <pre>
+ If line segments lie along a coordinate axis, the octant is the lower of the two
+ possible values.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/Octant.html#octant(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">octant</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ Returns the octant of a directed line segment from p0 to p1.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/Octant.html#octant(double, double)">octant</A></B>(double dx,
+ double dy)</CODE>
+
+<BR>
+ Returns the octant of a directed line segment (specified as x and y
+ displacements, which cannot both be 0).</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="octant(double, double)"><!-- --></A><H3>
+octant</H3>
+<PRE>
+public static int <B>octant</B>(double dx,
+ double dy)</PRE>
+<DL>
+<DD>Returns the octant of a directed line segment (specified as x and y
+ displacements, which cannot both be 0).
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="octant(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+octant</H3>
+<PRE>
+public static int <B>octant</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+<DD>Returns the octant of a directed line segment from p0 to p1.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/NodingValidator.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Octant.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/OrientedCoordinateArray.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/OrientedCoordinateArray.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/OrientedCoordinateArray.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,274 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+OrientedCoordinateArray
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.OrientedCoordinateArray class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="OrientedCoordinateArray";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OrientedCoordinateArray.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class OrientedCoordinateArray</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.OrientedCoordinateArray</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>OrientedCoordinateArray</B><DT>extends java.lang.Object<DT>implements java.lang.Comparable</DL>
+
+<P>
+Allows comparing <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> arrays
+ in an orientation-independent way.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/OrientedCoordinateArray.html#OrientedCoordinateArray(com.vividsolutions.jts.geom.Coordinate[])">OrientedCoordinateArray</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</CODE>
+
+<BR>
+ Creates a new <A HREF="../../../../com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding"><CODE>OrientedCoordinateArray</CODE></A>
+ for the given <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> array.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/OrientedCoordinateArray.html#compareTo(java.lang.Object)">compareTo</A></B>(java.lang.Object o1)</CODE>
+
+<BR>
+ Compares two <A HREF="../../../../com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding"><CODE>OrientedCoordinateArray</CODE></A>s for their relative order</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="OrientedCoordinateArray(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+OrientedCoordinateArray</H3>
+<PRE>
+public <B>OrientedCoordinateArray</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</PRE>
+<DL>
+<DD>Creates a new <A HREF="../../../../com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding"><CODE>OrientedCoordinateArray</CODE></A>
+ for the given <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> array.
+<P>
+<DT><B>Parameters:</B><DD><CODE>pts</CODE> - the coordinates to orient</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(java.lang.Object o1)</PRE>
+<DL>
+<DD>Compares two <A HREF="../../../../com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding"><CODE>OrientedCoordinateArray</CODE></A>s for their relative order
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE>java.lang.Comparable</CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>-1 this one is smaller</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OrientedCoordinateArray.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/ScaledNoder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/ScaledNoder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/ScaledNoder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,344 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+ScaledNoder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.ScaledNoder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ScaledNoder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ScaledNoder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class ScaledNoder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.ScaledNoder</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>ScaledNoder</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></DL>
+
+<P>
+Wraps a <A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><CODE>Noder</CODE></A> and transforms its input
+ into the integer domain.
+ This is intended for use with Snap-Rounding noders,
+ which typically are only intended to work in the integer domain.
+ Offsets can be provided to increase the number of digits of available precision.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/ScaledNoder.html#ScaledNoder(com.vividsolutions.jts.noding.Noder, double)">ScaledNoder</A></B>(<A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A> noder,
+ double scaleFactor)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/ScaledNoder.html#ScaledNoder(com.vividsolutions.jts.noding.Noder, double, double, double)">ScaledNoder</A></B>(<A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A> noder,
+ double scaleFactor,
+ double offsetX,
+ double offsetY)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/ScaledNoder.html#computeNodes(java.util.Collection)">computeNodes</A></B>(java.util.Collection inputSegStrings)</CODE>
+
+<BR>
+ Computes the noding for a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/ScaledNoder.html#getNodedSubstrings()">getNodedSubstrings</A></B>()</CODE>
+
+<BR>
+ Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/ScaledNoder.html#isIntegerPrecision()">isIntegerPrecision</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ScaledNoder(com.vividsolutions.jts.noding.Noder, double)"><!-- --></A><H3>
+ScaledNoder</H3>
+<PRE>
+public <B>ScaledNoder</B>(<A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A> noder,
+ double scaleFactor)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="ScaledNoder(com.vividsolutions.jts.noding.Noder, double, double, double)"><!-- --></A><H3>
+ScaledNoder</H3>
+<PRE>
+public <B>ScaledNoder</B>(<A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A> noder,
+ double scaleFactor,
+ double offsetX,
+ double offsetY)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isIntegerPrecision()"><!-- --></A><H3>
+isIntegerPrecision</H3>
+<PRE>
+public boolean <B>isIntegerPrecision</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNodedSubstrings()"><!-- --></A><H3>
+getNodedSubstrings</H3>
+<PRE>
+public java.util.Collection <B>getNodedSubstrings</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></B></DD>
+<DD>Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.
+ The SegmentStrings have the same context as their parent.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html#getNodedSubstrings()">getNodedSubstrings</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a Collection of SegmentStrings</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeNodes(java.util.Collection)"><!-- --></A><H3>
+computeNodes</H3>
+<PRE>
+public void <B>computeNodes</B>(java.util.Collection inputSegStrings)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></B></DD>
+<DD>Computes the noding for a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.
+ Some Noders may add all these nodes to the input SegmentStrings;
+ others may only add some or none at all.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html#computeNodes(java.util.Collection)">computeNodes</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>inputSegStrings</CODE> - a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s to node</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ScaledNoder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentIntersector.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentIntersector.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentIntersector.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,238 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+SegmentIntersector
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.SegmentIntersector interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SegmentIntersector";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html" title="interface in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Interface SegmentIntersector</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding">InteriorIntersectionFinder</A>, <A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>, <A HREF="../../../../com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionFinderAdder</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public interface <B>SegmentIntersector</B></DL>
+
+<P>
+Computes the intersections between two line segments in <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s
+ and adds them to each string.
+ The <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentIntersector</CODE></A> is passed to a <A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><CODE>Noder</CODE></A>.
+ The <CODE>addIntersections</CODE> method is called whenever the <A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><CODE>Noder</CODE></A>
+ detects that two SegmentStrings <i>might</i> intersect.
+ This class is an example of the <i>Strategy</i> pattern.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html#processIntersections(com.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.SegmentString, int)">processIntersections</A></B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e0,
+ int segIndex0,
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e1,
+ int segIndex1)</CODE>
+
+<BR>
+ This method is called by clients
+ of the <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentIntersector</CODE></A> interface to process
+ intersections for two segments of the <CODE>SegmentStrings</CODE> being intersected.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="processIntersections(com.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.SegmentString, int)"><!-- --></A><H3>
+processIntersections</H3>
+<PRE>
+public void <B>processIntersections</B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e0,
+ int segIndex0,
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> e1,
+ int segIndex1)</PRE>
+<DL>
+<DD>This method is called by clients
+ of the <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentIntersector</CODE></A> interface to process
+ intersections for two segments of the <CODE>SegmentStrings</CODE> being intersected.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html" title="interface in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentIntersector.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentNode.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentNode.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentNode.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,386 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+SegmentNode
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.SegmentNode class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SegmentNode";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentNode.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class SegmentNode</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.SegmentNode</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>SegmentNode</B><DT>extends java.lang.Object<DT>implements java.lang.Comparable</DL>
+
+<P>
+Represents an intersection point between two <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html#coord">coord</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html#segmentIndex">segmentIndex</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html#SegmentNode(com.vividsolutions.jts.noding.SegmentString, com.vividsolutions.jts.geom.Coordinate, int, int)">SegmentNode</A></B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> segString,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord,
+ int segmentIndex,
+ int segmentOctant)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html#compareTo(java.lang.Object)">compareTo</A></B>(java.lang.Object obj)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html#isEndPoint(int)">isEndPoint</A></B>(int maxSegmentIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html#isInterior()">isInterior</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html#print(java.io.PrintStream)">print</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="coord"><!-- --></A><H3>
+coord</H3>
+<PRE>
+public final <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>coord</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="segmentIndex"><!-- --></A><H3>
+segmentIndex</H3>
+<PRE>
+public final int <B>segmentIndex</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SegmentNode(com.vividsolutions.jts.noding.SegmentString, com.vividsolutions.jts.geom.Coordinate, int, int)"><!-- --></A><H3>
+SegmentNode</H3>
+<PRE>
+public <B>SegmentNode</B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> segString,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord,
+ int segmentIndex,
+ int segmentOctant)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isInterior()"><!-- --></A><H3>
+isInterior</H3>
+<PRE>
+public boolean <B>isInterior</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isEndPoint(int)"><!-- --></A><H3>
+isEndPoint</H3>
+<PRE>
+public boolean <B>isEndPoint</B>(int maxSegmentIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(java.lang.Object obj)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE>java.lang.Comparable</CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>-1 this SegmentNode is located before the argument location</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.io.PrintStream)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public void <B>print</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentNode.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentNodeList.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentNodeList.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentNodeList.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,349 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+SegmentNodeList
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.SegmentNodeList class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SegmentNodeList";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentPointComparator.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentNodeList.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class SegmentNodeList</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.SegmentNodeList</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SegmentNodeList</B><DT>extends java.lang.Object</DL>
+
+<P>
+A list of the <A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentNode</CODE></A>s present along a noded <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentNodeList.html#SegmentNodeList(com.vividsolutions.jts.noding.SegmentString)">SegmentNodeList</A></B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> edge)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding">SegmentNode</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentNodeList.html#add(com.vividsolutions.jts.geom.Coordinate, int)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> intPt,
+ int segmentIndex)</CODE>
+
+<BR>
+ Adds an intersection into the list, if it isn't already there.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentNodeList.html#addSplitEdges(java.util.Collection)">addSplitEdges</A></B>(java.util.Collection edgeList)</CODE>
+
+<BR>
+ Creates new edges for all the edges that the intersections in this
+ list split the parent edge into.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentNodeList.html#getEdge()">getEdge</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentNodeList.html#iterator()">iterator</A></B>()</CODE>
+
+<BR>
+ returns an iterator of SegmentNodes</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentNodeList.html#print(java.io.PrintStream)">print</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SegmentNodeList(com.vividsolutions.jts.noding.SegmentString)"><!-- --></A><H3>
+SegmentNodeList</H3>
+<PRE>
+public <B>SegmentNodeList</B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> edge)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getEdge()"><!-- --></A><H3>
+getEdge</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> <B>getEdge</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geom.Coordinate, int)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding">SegmentNode</A> <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> intPt,
+ int segmentIndex)</PRE>
+<DL>
+<DD>Adds an intersection into the list, if it isn't already there.
+ The input segmentIndex and dist are expected to be normalized.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the SegmentIntersection found or added</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="iterator()"><!-- --></A><H3>
+iterator</H3>
+<PRE>
+public java.util.Iterator <B>iterator</B>()</PRE>
+<DL>
+<DD>returns an iterator of SegmentNodes
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addSplitEdges(java.util.Collection)"><!-- --></A><H3>
+addSplitEdges</H3>
+<PRE>
+public void <B>addSplitEdges</B>(java.util.Collection edgeList)</PRE>
+<DL>
+<DD>Creates new edges for all the edges that the intersections in this
+ list split the parent edge into.
+ Adds the edges to the provided argument list
+ (this is so a single list can be used to accumulate all split edges
+ for a set of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s).
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.io.PrintStream)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public void <B>print</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentPointComparator.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentNodeList.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentPointComparator.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentPointComparator.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentPointComparator.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,294 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+SegmentPointComparator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.SegmentPointComparator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SegmentPointComparator";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentPointComparator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class SegmentPointComparator</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.SegmentPointComparator</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SegmentPointComparator</B><DT>extends java.lang.Object</DL>
+
+<P>
+Implements a robust method of comparing the relative position of two
+ points along the same segment.
+ The coordinates are assumed to lie "near" the segment.
+ This means that this algorithm will only return correct results
+ if the input coordinates
+ have the same precision and correspond to rounded values
+ of exact coordinates lying on the segment.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentPointComparator.html#SegmentPointComparator()">SegmentPointComparator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentPointComparator.html#compare(int, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">compare</A></B>(int octant,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ Compares two <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s for their relative position along a segment
+ lying in the specified <A HREF="../../../../com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding"><CODE>Octant</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentPointComparator.html#relativeSign(double, double)">relativeSign</A></B>(double x0,
+ double x1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SegmentPointComparator()"><!-- --></A><H3>
+SegmentPointComparator</H3>
+<PRE>
+public <B>SegmentPointComparator</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="compare(int, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+compare</H3>
+<PRE>
+public static int <B>compare</B>(int octant,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+<DD>Compares two <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s for their relative position along a segment
+ lying in the specified <A HREF="../../../../com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding"><CODE>Octant</CODE></A>.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>-1 node0 occurs first</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="relativeSign(double, double)"><!-- --></A><H3>
+relativeSign</H3>
+<PRE>
+public static int <B>relativeSign</B>(double x0,
+ double x1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentPointComparator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentString.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentString.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentString.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,529 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+SegmentString
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.SegmentString class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SegmentString";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentPointComparator.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentString.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class SegmentString</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.SegmentString</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SegmentString</B><DT>extends java.lang.Object</DL>
+
+<P>
+Represents a list of contiguous line segments,
+ and supports noding the segments.
+ The line segments are represented by an array of <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.
+ Intended to optimize the noding of contiguous segments by
+ reducing the number of allocated objects.
+ SegmentStrings can carry a context object, which is useful
+ for preserving topological or parentage information.
+ All noded substrings are initialized with the same context object.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html#SegmentString(com.vividsolutions.jts.geom.Coordinate[], java.lang.Object)">SegmentString</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts,
+ java.lang.Object data)</CODE>
+
+<BR>
+ Creates a new segment string from a list of vertices.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html#addIntersection(com.vividsolutions.jts.geom.Coordinate, int)">addIntersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> intPt,
+ int segmentIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html#addIntersection(com.vividsolutions.jts.algorithm.LineIntersector, int, int, int)">addIntersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li,
+ int segmentIndex,
+ int geomIndex,
+ int intIndex)</CODE>
+
+<BR>
+ Add an SegmentNode for intersection intIndex.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html#addIntersections(com.vividsolutions.jts.algorithm.LineIntersector, int, int)">addIntersections</A></B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li,
+ int segmentIndex,
+ int geomIndex)</CODE>
+
+<BR>
+ Adds EdgeIntersections for one or both
+ intersections found for a segment of an edge to the edge intersection list.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html#getCoordinate(int)">getCoordinate</A></B>(int i)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html#getCoordinates()">getCoordinates</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html#getData()">getData</A></B>()</CODE>
+
+<BR>
+ Gets the user-defined data for this segment string.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html#getNodedSubstrings(java.util.Collection)">getNodedSubstrings</A></B>(java.util.Collection segStrings)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html#getNodedSubstrings(java.util.Collection, java.util.Collection)">getNodedSubstrings</A></B>(java.util.Collection segStrings,
+ java.util.Collection resultEdgelist)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding">SegmentNodeList</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html#getNodeList()">getNodeList</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html#getSegmentOctant(int)">getSegmentOctant</A></B>(int index)</CODE>
+
+<BR>
+ Gets the octant of the segment starting at vertex <code>index</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html#isClosed()">isClosed</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html#setData(java.lang.Object)">setData</A></B>(java.lang.Object data)</CODE>
+
+<BR>
+ Sets the user-defined data for this segment string.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html#size()">size</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SegmentString(com.vividsolutions.jts.geom.Coordinate[], java.lang.Object)"><!-- --></A><H3>
+SegmentString</H3>
+<PRE>
+public <B>SegmentString</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts,
+ java.lang.Object data)</PRE>
+<DL>
+<DD>Creates a new segment string from a list of vertices.
+<P>
+<DT><B>Parameters:</B><DD><CODE>pts</CODE> - the vertices of the segment string<DD><CODE>data</CODE> - the user-defined data of this segment string (may be null)</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getNodedSubstrings(java.util.Collection)"><!-- --></A><H3>
+getNodedSubstrings</H3>
+<PRE>
+public static java.util.List <B>getNodedSubstrings</B>(java.util.Collection segStrings)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNodedSubstrings(java.util.Collection, java.util.Collection)"><!-- --></A><H3>
+getNodedSubstrings</H3>
+<PRE>
+public static void <B>getNodedSubstrings</B>(java.util.Collection segStrings,
+ java.util.Collection resultEdgelist)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getData()"><!-- --></A><H3>
+getData</H3>
+<PRE>
+public java.lang.Object <B>getData</B>()</PRE>
+<DL>
+<DD>Gets the user-defined data for this segment string.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the user-defined data</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setData(java.lang.Object)"><!-- --></A><H3>
+setData</H3>
+<PRE>
+public void <B>setData</B>(java.lang.Object data)</PRE>
+<DL>
+<DD>Sets the user-defined data for this segment string.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>data</CODE> - an Object containing user-defined data</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNodeList()"><!-- --></A><H3>
+getNodeList</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding">SegmentNodeList</A> <B>getNodeList</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="size()"><!-- --></A><H3>
+size</H3>
+<PRE>
+public int <B>size</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate(int)"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>(int i)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinates()"><!-- --></A><H3>
+getCoordinates</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>getCoordinates</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isClosed()"><!-- --></A><H3>
+isClosed</H3>
+<PRE>
+public boolean <B>isClosed</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSegmentOctant(int)"><!-- --></A><H3>
+getSegmentOctant</H3>
+<PRE>
+public int <B>getSegmentOctant</B>(int index)</PRE>
+<DL>
+<DD>Gets the octant of the segment starting at vertex <code>index</code>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>index</CODE> - the index of the vertex starting the segment. Must not be
+ the last index in the vertex list
+<DT><B>Returns:</B><DD>the octant of the segment at the vertex</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addIntersections(com.vividsolutions.jts.algorithm.LineIntersector, int, int)"><!-- --></A><H3>
+addIntersections</H3>
+<PRE>
+public void <B>addIntersections</B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li,
+ int segmentIndex,
+ int geomIndex)</PRE>
+<DL>
+<DD>Adds EdgeIntersections for one or both
+ intersections found for a segment of an edge to the edge intersection list.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addIntersection(com.vividsolutions.jts.algorithm.LineIntersector, int, int, int)"><!-- --></A><H3>
+addIntersection</H3>
+<PRE>
+public void <B>addIntersection</B>(<A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li,
+ int segmentIndex,
+ int geomIndex,
+ int intIndex)</PRE>
+<DL>
+<DD>Add an SegmentNode for intersection intIndex.
+ An intersection that falls exactly on a vertex
+ of the SegmentString is normalized
+ to use the higher of the two possible segmentIndexes
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addIntersection(com.vividsolutions.jts.geom.Coordinate, int)"><!-- --></A><H3>
+addIntersection</H3>
+<PRE>
+public void <B>addIntersection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> intPt,
+ int segmentIndex)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentPointComparator.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentString.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+SegmentStringDissolver.SegmentStringMerger
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.SegmentStringDissolver.SegmentStringMerger interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SegmentStringDissolver.SegmentStringMerger";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentStringDissolver.SegmentStringMerger.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Interface SegmentStringDissolver.SegmentStringMerger</H2>
+<DL>
+<DT><B>Enclosing interface:</B><DD><A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding">SegmentStringDissolver</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public static interface <B>SegmentStringDissolver.SegmentStringMerger</B></DL>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html#merge(com.vividsolutions.jts.noding.SegmentString, com.vividsolutions.jts.noding.SegmentString, boolean)">merge</A></B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> mergeTarget,
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> ssToMerge,
+ boolean isSameOrientation)</CODE>
+
+<BR>
+ Updates the context data of a SegmentString
+ when an identical (up to orientation) one is found during dissolving.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="merge(com.vividsolutions.jts.noding.SegmentString, com.vividsolutions.jts.noding.SegmentString, boolean)"><!-- --></A><H3>
+merge</H3>
+<PRE>
+public void <B>merge</B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> mergeTarget,
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> ssToMerge,
+ boolean isSameOrientation)</PRE>
+<DL>
+<DD>Updates the context data of a SegmentString
+ when an identical (up to orientation) one is found during dissolving.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>mergeTarget</CODE> - the segment string to update<DD><CODE>ssToMerge</CODE> - the segment string being dissolved<DD><CODE>isSameOrientation</CODE> - <code>true</code> if the strings are in the same direction,
+ <code>false</code> if they are opposite</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentStringDissolver.SegmentStringMerger.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentStringDissolver.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentStringDissolver.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SegmentStringDissolver.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,343 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+SegmentStringDissolver
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.SegmentStringDissolver class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SegmentStringDissolver";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SimpleNoder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentStringDissolver.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class SegmentStringDissolver</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.SegmentStringDissolver</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SegmentStringDissolver</B><DT>extends java.lang.Object</DL>
+
+<P>
+Dissolves a noded collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s to produce
+ a set of merged linework with unique segments.
+ A custom merging strategy can be applied when two identical (up to orientation)
+ strings are dissolved together.
+ The default merging strategy is simply to discard the merged string.
+ <p>
+ A common use for this class is to merge noded edges
+ while preserving topological labelling.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentStringDissolver.SegmentStringMerger</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static interface</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html" title="interface in com.vividsolutions.jts.noding">SegmentStringDissolver.SegmentStringMerger</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.html#SegmentStringDissolver()">SegmentStringDissolver</A></B>()</CODE>
+
+<BR>
+ Creates a dissolver with the default merging strategy.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.html#SegmentStringDissolver(com.vividsolutions.jts.noding.SegmentStringDissolver.SegmentStringMerger)">SegmentStringDissolver</A></B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html" title="interface in com.vividsolutions.jts.noding">SegmentStringDissolver.SegmentStringMerger</A> merger)</CODE>
+
+<BR>
+ Creates a dissolver with a user-defined merge strategy.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.html#dissolve(java.util.Collection)">dissolve</A></B>(java.util.Collection segStrings)</CODE>
+
+<BR>
+ Dissolve all <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s in the input <CODE>Collection</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.html#dissolve(com.vividsolutions.jts.noding.SegmentString)">dissolve</A></B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> segString)</CODE>
+
+<BR>
+ Dissolve the given <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.html#getDissolved()">getDissolved</A></B>()</CODE>
+
+<BR>
+ Gets the collection of dissolved (i.e.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SegmentStringDissolver(com.vividsolutions.jts.noding.SegmentStringDissolver.SegmentStringMerger)"><!-- --></A><H3>
+SegmentStringDissolver</H3>
+<PRE>
+public <B>SegmentStringDissolver</B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html" title="interface in com.vividsolutions.jts.noding">SegmentStringDissolver.SegmentStringMerger</A> merger)</PRE>
+<DL>
+<DD>Creates a dissolver with a user-defined merge strategy.
+<P>
+<DT><B>Parameters:</B><DD><CODE>merger</CODE> - the merging strategy to use</DL>
+<HR>
+
+<A NAME="SegmentStringDissolver()"><!-- --></A><H3>
+SegmentStringDissolver</H3>
+<PRE>
+public <B>SegmentStringDissolver</B>()</PRE>
+<DL>
+<DD>Creates a dissolver with the default merging strategy.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="dissolve(java.util.Collection)"><!-- --></A><H3>
+dissolve</H3>
+<PRE>
+public void <B>dissolve</B>(java.util.Collection segStrings)</PRE>
+<DL>
+<DD>Dissolve all <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s in the input <CODE>Collection</CODE>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>segStrings</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="dissolve(com.vividsolutions.jts.noding.SegmentString)"><!-- --></A><H3>
+dissolve</H3>
+<PRE>
+public void <B>dissolve</B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> segString)</PRE>
+<DL>
+<DD>Dissolve the given <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>segString</CODE> - the string to dissolve</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDissolved()"><!-- --></A><H3>
+getDissolved</H3>
+<PRE>
+public java.util.Collection <B>getDissolved</B>()</PRE>
+<DL>
+<DD>Gets the collection of dissolved (i.e. unique) <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the unique <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SimpleNoder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentStringDissolver.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SimpleNoder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SimpleNoder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SimpleNoder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,325 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+SimpleNoder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.SimpleNoder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SimpleNoder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimpleNoder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.noding.SinglePassNoder">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class SimpleNoder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">com.vividsolutions.jts.noding.SinglePassNoder</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.SimpleNoder</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>SimpleNoder</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></DL>
+
+<P>
+Nodes a set of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s by
+ performing a brute-force comparison of every segment to every other one.
+ This has n^2 performance, so is too slow for use on large numbers
+ of segments.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.noding.SinglePassNoder"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html#segInt">segInt</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SimpleNoder.html#SimpleNoder()">SimpleNoder</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SimpleNoder.html#computeNodes(java.util.Collection)">computeNodes</A></B>(java.util.Collection inputSegStrings)</CODE>
+
+<BR>
+ Computes the noding for a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SimpleNoder.html#getNodedSubstrings()">getNodedSubstrings</A></B>()</CODE>
+
+<BR>
+ Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.noding.SinglePassNoder"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html#setSegmentIntersector(com.vividsolutions.jts.noding.SegmentIntersector)">setSegmentIntersector</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SimpleNoder()"><!-- --></A><H3>
+SimpleNoder</H3>
+<PRE>
+public <B>SimpleNoder</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getNodedSubstrings()"><!-- --></A><H3>
+getNodedSubstrings</H3>
+<PRE>
+public java.util.Collection <B>getNodedSubstrings</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></CODE></B></DD>
+<DD>Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.
+ The SegmentStrings have the same context as their parent.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html#getNodedSubstrings()">getNodedSubstrings</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html#getNodedSubstrings()">getNodedSubstrings</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a Collection of SegmentStrings</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeNodes(java.util.Collection)"><!-- --></A><H3>
+computeNodes</H3>
+<PRE>
+public void <B>computeNodes</B>(java.util.Collection inputSegStrings)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></CODE></B></DD>
+<DD>Computes the noding for a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.
+ Some Noders may add all these nodes to the input SegmentStrings;
+ others may only add some or none at all.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html#computeNodes(java.util.Collection)">computeNodes</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html#computeNodes(java.util.Collection)">computeNodes</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>inputSegStrings</CODE> - a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s to node</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimpleNoder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.noding.SinglePassNoder">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SinglePassNoder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SinglePassNoder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/SinglePassNoder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,360 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+SinglePassNoder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.SinglePassNoder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SinglePassNoder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/SimpleNoder.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SinglePassNoder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding</FONT>
+<BR>
+Class SinglePassNoder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.SinglePassNoder</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding">MCIndexNoder</A>, <A HREF="../../../../com/vividsolutions/jts/noding/SimpleNoder.html" title="class in com.vividsolutions.jts.noding">SimpleNoder</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public abstract class <B>SinglePassNoder</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></DL>
+
+<P>
+Base class for <A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><CODE>Noder</CODE></A>s which make a single
+ pass to find intersections.
+ This allows using a custom <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentIntersector</CODE></A>
+ (which for instance may simply identify intersections, rather than
+ insert them).
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html#segInt">segInt</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html#SinglePassNoder()">SinglePassNoder</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html#computeNodes(java.util.Collection)">computeNodes</A></B>(java.util.Collection segStrings)</CODE>
+
+<BR>
+ Computes the noding for a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html#getNodedSubstrings()">getNodedSubstrings</A></B>()</CODE>
+
+<BR>
+ Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html#setSegmentIntersector(com.vividsolutions.jts.noding.SegmentIntersector)">setSegmentIntersector</A></B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A> segInt)</CODE>
+
+<BR>
+ Sets the SegmentIntersector to use with this noder.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="segInt"><!-- --></A><H3>
+segInt</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A> <B>segInt</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SinglePassNoder()"><!-- --></A><H3>
+SinglePassNoder</H3>
+<PRE>
+public <B>SinglePassNoder</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setSegmentIntersector(com.vividsolutions.jts.noding.SegmentIntersector)"><!-- --></A><H3>
+setSegmentIntersector</H3>
+<PRE>
+public void <B>setSegmentIntersector</B>(<A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A> segInt)</PRE>
+<DL>
+<DD>Sets the SegmentIntersector to use with this noder.
+ A SegmentIntersector will normally add intersection nodes
+ to the input segment strings, but it may not - it may
+ simply record the presence of intersections.
+ However, some Noders may require that intersections be added.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>segInt</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeNodes(java.util.Collection)"><!-- --></A><H3>
+computeNodes</H3>
+<PRE>
+public abstract void <B>computeNodes</B>(java.util.Collection segStrings)</PRE>
+<DL>
+<DD>Computes the noding for a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.
+ Some Noders may add all these nodes to the input SegmentStrings;
+ others may only add some or none at all.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html#computeNodes(java.util.Collection)">computeNodes</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>segStrings</CODE> - a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s to node</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNodedSubstrings()"><!-- --></A><H3>
+getNodedSubstrings</H3>
+<PRE>
+public abstract java.util.Collection <B>getNodedSubstrings</B>()</PRE>
+<DL>
+<DD>Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.
+ The SegmentStrings have the same context as their parent.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html#getNodedSubstrings()">getNodedSubstrings</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a Collection of SegmentStrings</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/SimpleNoder.html" title="class in com.vividsolutions.jts.noding"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SinglePassNoder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.noding
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/vividsolutions/jts/noding/package-summary.html" target="classFrame">com.vividsolutions.jts.noding</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Noder.html" title="interface in com.vividsolutions.jts.noding" target="classFrame"><I>Noder</I></A>
+<BR>
+<A HREF="SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding" target="classFrame"><I>SegmentIntersector</I></A>
+<BR>
+<A HREF="SegmentStringDissolver.SegmentStringMerger.html" title="interface in com.vividsolutions.jts.noding" target="classFrame"><I>SegmentStringDissolver.SegmentStringMerger</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="FastNodingValidator.html" title="class in com.vividsolutions.jts.noding" target="classFrame">FastNodingValidator</A>
+<BR>
+<A HREF="InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">InteriorIntersectionFinder</A>
+<BR>
+<A HREF="IntersectionAdder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">IntersectionAdder</A>
+<BR>
+<A HREF="IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">IntersectionFinderAdder</A>
+<BR>
+<A HREF="IteratedNoder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">IteratedNoder</A>
+<BR>
+<A HREF="MCIndexNoder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">MCIndexNoder</A>
+<BR>
+<A HREF="NodingValidator.html" title="class in com.vividsolutions.jts.noding" target="classFrame">NodingValidator</A>
+<BR>
+<A HREF="Octant.html" title="class in com.vividsolutions.jts.noding" target="classFrame">Octant</A>
+<BR>
+<A HREF="OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding" target="classFrame">OrientedCoordinateArray</A>
+<BR>
+<A HREF="ScaledNoder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">ScaledNoder</A>
+<BR>
+<A HREF="SegmentNode.html" title="class in com.vividsolutions.jts.noding" target="classFrame">SegmentNode</A>
+<BR>
+<A HREF="SegmentNodeList.html" title="class in com.vividsolutions.jts.noding" target="classFrame">SegmentNodeList</A>
+<BR>
+<A HREF="SegmentPointComparator.html" title="class in com.vividsolutions.jts.noding" target="classFrame">SegmentPointComparator</A>
+<BR>
+<A HREF="SegmentString.html" title="class in com.vividsolutions.jts.noding" target="classFrame">SegmentString</A>
+<BR>
+<A HREF="SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding" target="classFrame">SegmentStringDissolver</A>
+<BR>
+<A HREF="SimpleNoder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">SimpleNoder</A>
+<BR>
+<A HREF="SinglePassNoder.html" title="class in com.vividsolutions.jts.noding" target="classFrame">SinglePassNoder</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,261 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.noding
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.noding";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/linearref/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/snapround/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.noding
+</H2>
+Classes to compute nodings for arrangements of line segments and line segment sequences.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></B></TD>
+<TD>Computes all intersections between segments in a set of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A></B></TD>
+<TD>Computes the intersections between two line segments in <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s
+ and adds them to each string.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html" title="interface in com.vividsolutions.jts.noding">SegmentStringDissolver.SegmentStringMerger</A></B></TD>
+<TD> </TD>
+</TR>
+</TABLE>
+
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/FastNodingValidator.html" title="class in com.vividsolutions.jts.noding">FastNodingValidator</A></B></TD>
+<TD>Validates that a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s is correctly noded.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding">InteriorIntersectionFinder</A></B></TD>
+<TD>Finds an interior intersection in a set of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s,
+ if one exists.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A></B></TD>
+<TD>Computes the intersections between two line segments in <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s
+ and adds them to each string.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionFinderAdder</A></B></TD>
+<TD>Finds proper and interior intersections in a set of SegmentStrings,
+ and adds them as nodes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding">IteratedNoder</A></B></TD>
+<TD>Nodes a set of SegmentStrings completely.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding">MCIndexNoder</A></B></TD>
+<TD>Nodes a set of <CODE>SegmentStrings</CODE> using a index based
+ on <A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><CODE>MonotoneChain</CODE></A>s and a <A HREF="../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index"><CODE>SpatialIndex</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/NodingValidator.html" title="class in com.vividsolutions.jts.noding">NodingValidator</A></B></TD>
+<TD>Validates that a collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s is correctly noded.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding">Octant</A></B></TD>
+<TD>Methods for computing and working with octants of the Cartesian plane
+ Octants are numbered as follows:
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding">OrientedCoordinateArray</A></B></TD>
+<TD>Allows comparing <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> arrays
+ in an orientation-independent way.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding">ScaledNoder</A></B></TD>
+<TD>Wraps a <A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><CODE>Noder</CODE></A> and transforms its input
+ into the integer domain.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding">SegmentNode</A></B></TD>
+<TD>Represents an intersection point between two <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding">SegmentNodeList</A></B></TD>
+<TD>A list of the <A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentNode</CODE></A>s present along a noded <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentPointComparator.html" title="class in com.vividsolutions.jts.noding">SegmentPointComparator</A></B></TD>
+<TD>Implements a robust method of comparing the relative position of two
+ points along the same segment.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A></B></TD>
+<TD>Represents a list of contiguous line segments,
+ and supports noding the segments.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding">SegmentStringDissolver</A></B></TD>
+<TD>Dissolves a noded collection of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s to produce
+ a set of merged linework with unique segments.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/SimpleNoder.html" title="class in com.vividsolutions.jts.noding">SimpleNoder</A></B></TD>
+<TD>Nodes a set of <A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s by
+ performing a brute-force comparison of every segment to every other one.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A></B></TD>
+<TD>Base class for <A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><CODE>Noder</CODE></A>s which make a single
+ pass to find intersections.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.noding Description
+</H2>
+
+<P>
+Classes to compute nodings for arrangements of line segments and line segment sequences.
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/linearref/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/snapround/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,160 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.noding Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.noding Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/linearref/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/snapround/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.noding
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/FastNodingValidator.html" title="class in com.vividsolutions.jts.noding"><B>FastNodingValidator</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding"><B>InteriorIntersectionFinder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding"><B>IntersectionAdder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding"><B>IntersectionFinderAdder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding"><B>IteratedNoder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.index.chain.<A HREF="../../../../com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain"><B>MonotoneChainOverlapAction</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html" title="class in com.vividsolutions.jts.noding"><B>MCIndexNoder.SegmentOverlapAction</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/NodingValidator.html" title="class in com.vividsolutions.jts.noding"><B>NodingValidator</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding"><B>Octant</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding"><B>OrientedCoordinateArray</B></A> (implements java.lang.Comparable)
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding"><B>ScaledNoder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding"><B>SegmentNode</B></A> (implements java.lang.Comparable)
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding"><B>SegmentNodeList</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SegmentPointComparator.html" title="class in com.vividsolutions.jts.noding"><B>SegmentPointComparator</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><B>SegmentString</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding"><B>SegmentStringDissolver</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding"><B>SinglePassNoder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A>)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding"><B>MCIndexNoder</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SimpleNoder.html" title="class in com.vividsolutions.jts.noding"><B>SimpleNoder</B></A></UL>
+</UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">interface com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><B>Noder</B></A><LI TYPE="circle">interface com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><B>SegmentIntersector</B></A><LI TYPE="circle">interface com.vividsolutions.jts.noding.<A HREF="../../../../com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html" title="interface in com.vividsolutions.jts.noding"><B>SegmentStringDissolver.SegmentStringMerger</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/linearref/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/noding/snapround/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/HotPixel.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/HotPixel.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/HotPixel.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,332 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+HotPixel
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.snapround.HotPixel class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="HotPixel";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="HotPixel.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding.snapround</FONT>
+<BR>
+Class HotPixel</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.snapround.HotPixel</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>HotPixel</B><DT>extends java.lang.Object</DL>
+
+<P>
+Implements a "hot pixel" as used in the Snap Rounding algorithm.
+ A hot pixel contains the interior of the tolerance square and
+ the boundary
+ <b>minus</b> the top and right segments.
+ <p>
+ The hot pixel operations are all computed in the integer domain
+ to avoid rounding problems.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html#HotPixel(com.vividsolutions.jts.geom.Coordinate, double, com.vividsolutions.jts.algorithm.LineIntersector)">HotPixel</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt,
+ double scaleFactor,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html#getSafeEnvelope()">getSafeEnvelope</A></B>()</CODE>
+
+<BR>
+ Returns a "safe" envelope that is guaranteed to contain the hot pixel</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html#intersects(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">intersects</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html#intersectsScaled(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">intersectsScaled</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="HotPixel(com.vividsolutions.jts.geom.Coordinate, double, com.vividsolutions.jts.algorithm.LineIntersector)"><!-- --></A><H3>
+HotPixel</H3>
+<PRE>
+public <B>HotPixel</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt,
+ double scaleFactor,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSafeEnvelope()"><!-- --></A><H3>
+getSafeEnvelope</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>getSafeEnvelope</B>()</PRE>
+<DL>
+<DD>Returns a "safe" envelope that is guaranteed to contain the hot pixel
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="intersects(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+intersects</H3>
+<PRE>
+public boolean <B>intersects</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="intersectsScaled(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+intersectsScaled</H3>
+<PRE>
+public boolean <B>intersectsScaled</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="HotPixel.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,294 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+MCIndexPointSnapper.HotPixelSnapAction
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.snapround.MCIndexPointSnapper.HotPixelSnapAction class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MCIndexPointSnapper.HotPixelSnapAction";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MCIndexPointSnapper.HotPixelSnapAction.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding.snapround</FONT>
+<BR>
+Class MCIndexPointSnapper.HotPixelSnapAction</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain">com.vividsolutions.jts.index.chain.MonotoneChainSelectAction</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.snapround.MCIndexPointSnapper.HotPixelSnapAction</B>
+</PRE>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexPointSnapper</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>MCIndexPointSnapper.HotPixelSnapAction</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainSelectAction</A></DL>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html#MCIndexPointSnapper.HotPixelSnapAction(com.vividsolutions.jts.noding.snapround.HotPixel, com.vividsolutions.jts.noding.SegmentString, int)">MCIndexPointSnapper.HotPixelSnapAction</A></B>(<A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A> hotPixel,
+ <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> parentEdge,
+ int vertexIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html#isNodeAdded()">isNodeAdded</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html#select(com.vividsolutions.jts.index.chain.MonotoneChain, int)">select</A></B>(<A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A> mc,
+ int startIndex)</CODE>
+
+<BR>
+ This function can be overridden if the original chain is needed</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.index.chain.MonotoneChainSelectAction"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.index.chain.<A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainSelectAction</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html#select(com.vividsolutions.jts.geom.LineSegment)">select</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MCIndexPointSnapper.HotPixelSnapAction(com.vividsolutions.jts.noding.snapround.HotPixel, com.vividsolutions.jts.noding.SegmentString, int)"><!-- --></A><H3>
+MCIndexPointSnapper.HotPixelSnapAction</H3>
+<PRE>
+public <B>MCIndexPointSnapper.HotPixelSnapAction</B>(<A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A> hotPixel,
+ <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> parentEdge,
+ int vertexIndex)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isNodeAdded()"><!-- --></A><H3>
+isNodeAdded</H3>
+<PRE>
+public boolean <B>isNodeAdded</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="select(com.vividsolutions.jts.index.chain.MonotoneChain, int)"><!-- --></A><H3>
+select</H3>
+<PRE>
+public void <B>select</B>(<A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A> mc,
+ int startIndex)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainSelectAction</A></CODE></B></DD>
+<DD>This function can be overridden if the original chain is needed
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html#select(com.vividsolutions.jts.index.chain.MonotoneChain, int)">select</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainSelectAction</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MCIndexPointSnapper.HotPixelSnapAction.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,336 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+MCIndexPointSnapper
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.snapround.MCIndexPointSnapper class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MCIndexPointSnapper";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html" title="class in com.vividsolutions.jts.noding.snapround"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MCIndexPointSnapper.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding.snapround</FONT>
+<BR>
+Class MCIndexPointSnapper</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.snapround.MCIndexPointSnapper</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>MCIndexPointSnapper</B><DT>extends java.lang.Object</DL>
+
+<P>
+"Snaps" all <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s in a <A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index"><CODE>SpatialIndex</CODE></A> containing
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><CODE>MonotoneChain</CODE></A>s to a given <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround"><CODE>HotPixel</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexPointSnapper.HotPixelSnapAction</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html#nSnaps">nSnaps</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html#MCIndexPointSnapper(java.util.Collection, com.vividsolutions.jts.index.SpatialIndex)">MCIndexPointSnapper</A></B>(java.util.Collection monoChains,
+ <A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A> index)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html#snap(com.vividsolutions.jts.noding.snapround.HotPixel)">snap</A></B>(<A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A> hotPixel)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html#snap(com.vividsolutions.jts.noding.snapround.HotPixel, com.vividsolutions.jts.noding.SegmentString, int)">snap</A></B>(<A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A> hotPixel,
+ <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> parentEdge,
+ int vertexIndex)</CODE>
+
+<BR>
+ Snaps (nodes) all interacting segments to this hot pixel.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="nSnaps"><!-- --></A><H3>
+nSnaps</H3>
+<PRE>
+public static int <B>nSnaps</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MCIndexPointSnapper(java.util.Collection, com.vividsolutions.jts.index.SpatialIndex)"><!-- --></A><H3>
+MCIndexPointSnapper</H3>
+<PRE>
+public <B>MCIndexPointSnapper</B>(java.util.Collection monoChains,
+ <A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A> index)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="snap(com.vividsolutions.jts.noding.snapround.HotPixel, com.vividsolutions.jts.noding.SegmentString, int)"><!-- --></A><H3>
+snap</H3>
+<PRE>
+public boolean <B>snap</B>(<A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A> hotPixel,
+ <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> parentEdge,
+ int vertexIndex)</PRE>
+<DL>
+<DD>Snaps (nodes) all interacting segments to this hot pixel.
+ The hot pixel may represent a vertex of an edge,
+ in which case this routine uses the optimization
+ of not noding the vertex itself
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>hotPixel</CODE> - the hot pixel to snap to<DD><CODE>parentEdge</CODE> - the edge containing the vertex, if applicable, or <code>null</code><DD><CODE>vertexIndex</CODE> - the index of the vertex, if applicable, or -1
+<DT><B>Returns:</B><DD><code>true</code> if a node was added for this pixel</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="snap(com.vividsolutions.jts.noding.snapround.HotPixel)"><!-- --></A><H3>
+snap</H3>
+<PRE>
+public boolean <B>snap</B>(<A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A> hotPixel)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html" title="class in com.vividsolutions.jts.noding.snapround"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MCIndexPointSnapper.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,335 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+MCIndexSnapRounder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.snapround.MCIndexSnapRounder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MCIndexSnapRounder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html" title="class in com.vividsolutions.jts.noding.snapround"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MCIndexSnapRounder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding.snapround</FONT>
+<BR>
+Class MCIndexSnapRounder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.snapround.MCIndexSnapRounder</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>MCIndexSnapRounder</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></DL>
+
+<P>
+Uses Snap Rounding to compute a rounded,
+ fully noded arrangement from a set of <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.
+ Implements the Snap Rounding technique described in Hobby, Guibas & Marimont,
+ and Goodrich et al.
+ Snap Rounding assumes that all vertices lie on a uniform grid
+ (hence the precision model of the input must be fixed precision,
+ and all the input vertices must be rounded to that precision).
+ <p>
+ This implementation uses a monotone chains and a spatial index to
+ speed up the intersection tests.
+ <p>
+ This implementation appears to be fully robust using an integer precision model.
+ It will function with non-integer precision models, but the
+ results are not 100% guaranteed to be correctly noded.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html#MCIndexSnapRounder(com.vividsolutions.jts.geom.PrecisionModel)">MCIndexSnapRounder</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html#computeNodes(java.util.Collection)">computeNodes</A></B>(java.util.Collection inputSegmentStrings)</CODE>
+
+<BR>
+ Computes the noding for a collection of <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html#computeVertexSnaps(java.util.Collection)">computeVertexSnaps</A></B>(java.util.Collection edges)</CODE>
+
+<BR>
+ Computes nodes introduced as a result of
+ snapping segments to vertices of other segments</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html#getNodedSubstrings()">getNodedSubstrings</A></B>()</CODE>
+
+<BR>
+ Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MCIndexSnapRounder(com.vividsolutions.jts.geom.PrecisionModel)"><!-- --></A><H3>
+MCIndexSnapRounder</H3>
+<PRE>
+public <B>MCIndexSnapRounder</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getNodedSubstrings()"><!-- --></A><H3>
+getNodedSubstrings</H3>
+<PRE>
+public java.util.Collection <B>getNodedSubstrings</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></B></DD>
+<DD>Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.
+ The SegmentStrings have the same context as their parent.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html#getNodedSubstrings()">getNodedSubstrings</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a Collection of SegmentStrings</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeNodes(java.util.Collection)"><!-- --></A><H3>
+computeNodes</H3>
+<PRE>
+public void <B>computeNodes</B>(java.util.Collection inputSegmentStrings)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></B></DD>
+<DD>Computes the noding for a collection of <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.
+ Some Noders may add all these nodes to the input SegmentStrings;
+ others may only add some or none at all.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html#computeNodes(java.util.Collection)">computeNodes</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>inputSegmentStrings</CODE> - a collection of <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s to node</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeVertexSnaps(java.util.Collection)"><!-- --></A><H3>
+computeVertexSnaps</H3>
+<PRE>
+public void <B>computeVertexSnaps</B>(java.util.Collection edges)</PRE>
+<DL>
+<DD>Computes nodes introduced as a result of
+ snapping segments to vertices of other segments
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html" title="class in com.vividsolutions.jts.noding.snapround"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MCIndexSnapRounder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,365 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+SimpleSnapRounder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.snapround.SimpleSnapRounder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SimpleSnapRounder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimpleSnapRounder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.noding.snapround</FONT>
+<BR>
+Class SimpleSnapRounder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.noding.snapround.SimpleSnapRounder</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>SimpleSnapRounder</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></DL>
+
+<P>
+Uses Snap Rounding to compute a rounded,
+ fully noded arrangement from a set of <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.
+ Implements the Snap Rounding technique described in Hobby, Guibas & Marimont,
+ and Goodrich et al.
+ Snap Rounding assumes that all vertices lie on a uniform grid
+ (hence the precision model of the input must be fixed precision,
+ and all the input vertices must be rounded to that precision).
+ <p>
+ This implementation uses simple iteration over the line segments.
+ <p>
+ This implementation appears to be fully robust using an integer precision model.
+ It will function with non-integer precision models, but the
+ results are not 100% guaranteed to be correctly noded.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html#SimpleSnapRounder(com.vividsolutions.jts.geom.PrecisionModel)">SimpleSnapRounder</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html#addSnappedNode(com.vividsolutions.jts.noding.snapround.HotPixel, com.vividsolutions.jts.noding.SegmentString, int)">addSnappedNode</A></B>(<A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A> hotPix,
+ <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> segStr,
+ int segIndex)</CODE>
+
+<BR>
+ Adds a new node (equal to the snap pt) to the segment
+ if the segment passes through the hot pixel</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html#computeNodes(java.util.Collection)">computeNodes</A></B>(java.util.Collection inputSegmentStrings)</CODE>
+
+<BR>
+ Computes the noding for a collection of <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html#computeVertexSnaps(java.util.Collection)">computeVertexSnaps</A></B>(java.util.Collection edges)</CODE>
+
+<BR>
+ Computes nodes introduced as a result of
+ snapping segments to vertices of other segments</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html#getNodedSubstrings()">getNodedSubstrings</A></B>()</CODE>
+
+<BR>
+ Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SimpleSnapRounder(com.vividsolutions.jts.geom.PrecisionModel)"><!-- --></A><H3>
+SimpleSnapRounder</H3>
+<PRE>
+public <B>SimpleSnapRounder</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getNodedSubstrings()"><!-- --></A><H3>
+getNodedSubstrings</H3>
+<PRE>
+public java.util.Collection <B>getNodedSubstrings</B>()</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></B></DD>
+<DD>Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.
+ The SegmentStrings have the same context as their parent.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html#getNodedSubstrings()">getNodedSubstrings</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a Collection of SegmentStrings</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeNodes(java.util.Collection)"><!-- --></A><H3>
+computeNodes</H3>
+<PRE>
+public void <B>computeNodes</B>(java.util.Collection inputSegmentStrings)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></B></DD>
+<DD>Computes the noding for a collection of <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.
+ Some Noders may add all these nodes to the input SegmentStrings;
+ others may only add some or none at all.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html#computeNodes(java.util.Collection)">computeNodes</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>inputSegmentStrings</CODE> - a collection of <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s to node</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeVertexSnaps(java.util.Collection)"><!-- --></A><H3>
+computeVertexSnaps</H3>
+<PRE>
+public void <B>computeVertexSnaps</B>(java.util.Collection edges)</PRE>
+<DL>
+<DD>Computes nodes introduced as a result of
+ snapping segments to vertices of other segments
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addSnappedNode(com.vividsolutions.jts.noding.snapround.HotPixel, com.vividsolutions.jts.noding.SegmentString, int)"><!-- --></A><H3>
+addSnappedNode</H3>
+<PRE>
+public static boolean <B>addSnappedNode</B>(<A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A> hotPix,
+ <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A> segStr,
+ int segIndex)</PRE>
+<DL>
+<DD>Adds a new node (equal to the snap pt) to the segment
+ if the segment passes through the hot pixel
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>hotPix</CODE> - <DD><CODE>segStr</CODE> - <DD><CODE>segIndex</CODE> -
+<DT><B>Returns:</B><DD><code>true</code> if a node was added</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimpleSnapRounder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.noding.snapround
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.snapround package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/noding/snapround/package-summary.html" target="classFrame">com.vividsolutions.jts.noding.snapround</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround" target="classFrame">HotPixel</A>
+<BR>
+<A HREF="MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround" target="classFrame">MCIndexPointSnapper</A>
+<BR>
+<A HREF="MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround" target="classFrame">MCIndexSnapRounder</A>
+<BR>
+<A HREF="SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround" target="classFrame">SimpleSnapRounder</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.noding.snapround
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.noding.snapround package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.noding.snapround";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/noding/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.noding.snapround
+</H2>
+Contains classes to implement the Snap Rounding algorithm for noding linestrings.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A></B></TD>
+<TD>Implements a "hot pixel" as used in the Snap Rounding algorithm.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexPointSnapper</A></B></TD>
+<TD>"Snaps" all <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s in a <A HREF="../../../../../com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index"><CODE>SpatialIndex</CODE></A> containing
+ <A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><CODE>MonotoneChain</CODE></A>s to a given <A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround"><CODE>HotPixel</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexSnapRounder</A></B></TD>
+<TD>Uses Snap Rounding to compute a rounded,
+ fully noded arrangement from a set of <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">SimpleSnapRounder</A></B></TD>
+<TD>Uses Snap Rounding to compute a rounded,
+ fully noded arrangement from a set of <A HREF="../../../../../com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.noding.snapround Description
+</H2>
+
+<P>
+Contains classes to implement the Snap Rounding algorithm for noding linestrings.
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/noding/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/noding/snapround/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.noding.snapround Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.noding.snapround Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/noding/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.noding.snapround
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.noding.snapround.<A HREF="../../../../../com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround"><B>HotPixel</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.snapround.<A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround"><B>MCIndexPointSnapper</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.snapround.<A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround"><B>MCIndexSnapRounder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.index.chain.<A HREF="../../../../../com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain"><B>MonotoneChainSelectAction</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.noding.snapround.<A HREF="../../../../../com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html" title="class in com.vividsolutions.jts.noding.snapround"><B>MCIndexPointSnapper.HotPixelSnapAction</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.noding.snapround.<A HREF="../../../../../com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround"><B>SimpleSnapRounder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A>)
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/noding/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/BoundaryOp.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/BoundaryOp.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/BoundaryOp.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,281 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+BoundaryOp
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.BoundaryOp class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="BoundaryOp";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BoundaryOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation</FONT>
+<BR>
+Class BoundaryOp</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.BoundaryOp</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>BoundaryOp</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes the boundary of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+ Allows specifying the <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> to be used.
+ This operation will always return a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> of the appropriate
+ dimension for the boundary (even if the input geometry is empty).
+ The boundary of zero-dimensional geometries (Points) is
+ always the empty <A HREF="../../../../com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/BoundaryOp.html#BoundaryOp(com.vividsolutions.jts.geom.Geometry)">BoundaryOp</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/BoundaryOp.html#BoundaryOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)">BoundaryOp</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom,
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> bnRule)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/BoundaryOp.html#getBoundary()">getBoundary</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="BoundaryOp(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+BoundaryOp</H3>
+<PRE>
+public <B>BoundaryOp</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="BoundaryOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><!-- --></A><H3>
+BoundaryOp</H3>
+<PRE>
+public <B>BoundaryOp</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom,
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> bnRule)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getBoundary()"><!-- --></A><H3>
+getBoundary</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getBoundary</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BoundaryOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/GeometryGraphOperation.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/GeometryGraphOperation.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/GeometryGraphOperation.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+GeometryGraphOperation
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.GeometryGraphOperation class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GeometryGraphOperation";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/operation/BoundaryOp.html" title="class in com.vividsolutions.jts.operation"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryGraphOperation.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation</FONT>
+<BR>
+Class GeometryGraphOperation</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.GeometryGraphOperation</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>, <A HREF="../../../../com/vividsolutions/jts/operation/relate/RelateOp.html" title="class in com.vividsolutions.jts.operation.relate">RelateOp</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>GeometryGraphOperation</B><DT>extends java.lang.Object</DL>
+
+<P>
+The base class for operations that require <A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>GeometryGraph</CODE></A>s.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#arg">arg</A></B></CODE>
+
+<BR>
+ The operation args into an array so they can be accessed by index</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#cga">cga</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#li">li</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#resultPrecisionModel">resultPrecisionModel</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#GeometryGraphOperation(com.vividsolutions.jts.geom.Geometry)">GeometryGraphOperation</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#GeometryGraphOperation(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">GeometryGraphOperation</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#GeometryGraphOperation(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)">GeometryGraphOperation</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#getArgGeometry(int)">getArgGeometry</A></B>(int i)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#setComputationPrecision(com.vividsolutions.jts.geom.PrecisionModel)">setComputationPrecision</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="cga"><!-- --></A><H3>
+cga</H3>
+<PRE>
+protected final <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> <B>cga</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="li"><!-- --></A><H3>
+li</H3>
+<PRE>
+protected final <A HREF="../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> <B>li</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="resultPrecisionModel"><!-- --></A><H3>
+resultPrecisionModel</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> <B>resultPrecisionModel</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="arg"><!-- --></A><H3>
+arg</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>[] <B>arg</B></PRE>
+<DL>
+<DD>The operation args into an array so they can be accessed by index
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GeometryGraphOperation(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+GeometryGraphOperation</H3>
+<PRE>
+public <B>GeometryGraphOperation</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="GeometryGraphOperation(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><!-- --></A><H3>
+GeometryGraphOperation</H3>
+<PRE>
+public <B>GeometryGraphOperation</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="GeometryGraphOperation(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+GeometryGraphOperation</H3>
+<PRE>
+public <B>GeometryGraphOperation</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getArgGeometry(int)"><!-- --></A><H3>
+getArgGeometry</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getArgGeometry</B>(int i)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setComputationPrecision(com.vividsolutions.jts.geom.PrecisionModel)"><!-- --></A><H3>
+setComputationPrecision</H3>
+<PRE>
+protected void <B>setComputationPrecision</B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/operation/BoundaryOp.html" title="class in com.vividsolutions.jts.operation"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryGraphOperation.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/IsSimpleOp.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/IsSimpleOp.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/IsSimpleOp.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,422 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+IsSimpleOp
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.IsSimpleOp class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="IsSimpleOp";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="IsSimpleOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation</FONT>
+<BR>
+Class IsSimpleOp</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.IsSimpleOp</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>IsSimpleOp</B><DT>extends java.lang.Object</DL>
+
+<P>
+Tests whether a <code>Geometry</code> is simple.
+ In general, the SFS specification of simplicity
+ follows the rule:
+ <ul>
+ <li> A Geometry is simple if and only if the only self-intersections are at
+ boundary points.
+ </ul>
+ This definition relies on the definition of boundary points.
+ The SFS uses the Mod-2 rule to determine which points are on the boundary of
+ lineal geometries, but this class supports
+ using other <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A>s as well.
+ <p>
+ Simplicity is defined for each <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> subclass as follows:
+ <ul>
+ <li>Valid polygonal geometries are simple by definition, so
+ <code>isSimple</code> trivially returns true.
+ (Hint: in order to check if a polygonal geometry has self-intersections,
+ use <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html#isValid()"><CODE>Geometry.isValid()</CODE></A>).
+ <li>Linear geometries are simple iff they do not self-intersect at points
+ other than boundary points.
+ (Using the Mod-2 rule, this means that closed linestrings
+ cannot be touched at their endpoints, since these are
+ interior points, not boundary points).
+ <li>Zero-dimensional geometries (points) are simple iff they have no
+ repeated points.
+ <li>Empty <code>Geometry</code>s are always simple
+ </ul>
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/IsSimpleOp.html#IsSimpleOp()">IsSimpleOp</A></B>()</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>use IsSimpleOp(Geometry)</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/IsSimpleOp.html#IsSimpleOp(com.vividsolutions.jts.geom.Geometry)">IsSimpleOp</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Creates a simplicity checker using the default SFS Mod-2 Boundary Node Rule</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/IsSimpleOp.html#IsSimpleOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)">IsSimpleOp</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom,
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule)</CODE>
+
+<BR>
+ Creates a simplicity checker using a given <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A></TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/IsSimpleOp.html#getNonSimpleLocation()">getNonSimpleLocation</A></B>()</CODE>
+
+<BR>
+ Gets a coordinate for the location where the geometry
+ fails to be simple.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/IsSimpleOp.html#isSimple()">isSimple</A></B>()</CODE>
+
+<BR>
+ Tests whether the geometry is simple.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/IsSimpleOp.html#isSimple(com.vividsolutions.jts.geom.LineString)">isSimple</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> geom)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>use isSimple()</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/IsSimpleOp.html#isSimple(com.vividsolutions.jts.geom.MultiLineString)">isSimple</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A> geom)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>use isSimple()</I></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/operation/IsSimpleOp.html#isSimple(com.vividsolutions.jts.geom.MultiPoint)">isSimple</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A> mp)</CODE>
+
+<BR>
+ <B>Deprecated.</B> <I>use isSimple()</I></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="IsSimpleOp()"><!-- --></A><H3>
+IsSimpleOp</H3>
+<PRE>
+public <B>IsSimpleOp</B>()</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>use IsSimpleOp(Geometry)</I>
+<P>
+<DD>Creates a simplicity checker using the default SFS Mod-2 Boundary Node Rule
+<P>
+</DL>
+<HR>
+
+<A NAME="IsSimpleOp(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+IsSimpleOp</H3>
+<PRE>
+public <B>IsSimpleOp</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Creates a simplicity checker using the default SFS Mod-2 Boundary Node Rule
+<P>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - the geometry to test</DL>
+<HR>
+
+<A NAME="IsSimpleOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><!-- --></A><H3>
+IsSimpleOp</H3>
+<PRE>
+public <B>IsSimpleOp</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom,
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule)</PRE>
+<DL>
+<DD>Creates a simplicity checker using a given <A HREF="../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A>
+<P>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - the geometry to test<DD><CODE>boundaryNodeRule</CODE> - the rule to use.</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isSimple()"><!-- --></A><H3>
+isSimple</H3>
+<PRE>
+public boolean <B>isSimple</B>()</PRE>
+<DL>
+<DD>Tests whether the geometry is simple.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the geometry is simple</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNonSimpleLocation()"><!-- --></A><H3>
+getNonSimpleLocation</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getNonSimpleLocation</B>()</PRE>
+<DL>
+<DD>Gets a coordinate for the location where the geometry
+ fails to be simple.
+ (i.e. where it has a non-boundary self-intersection).
+ <A HREF="../../../../com/vividsolutions/jts/operation/IsSimpleOp.html#isSimple()"><CODE>isSimple()</CODE></A> must be called before this method is called.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a coordinate for the location of the non-boundary self-intersection</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSimple(com.vividsolutions.jts.geom.LineString)"><!-- --></A><H3>
+isSimple</H3>
+<PRE>
+public boolean <B>isSimple</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> geom)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>use isSimple()</I>
+<P>
+<DD>Reports whether a <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> is simple.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - the lineal geometry to test
+<DT><B>Returns:</B><DD>true if the geometry is simple</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSimple(com.vividsolutions.jts.geom.MultiLineString)"><!-- --></A><H3>
+isSimple</H3>
+<PRE>
+public boolean <B>isSimple</B>(<A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A> geom)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>use isSimple()</I>
+<P>
+<DD>Reports whether a <A HREF="../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A> geometry is simple.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - the lineal geometry to test
+<DT><B>Returns:</B><DD>true if the geometry is simple</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSimple(com.vividsolutions.jts.geom.MultiPoint)"><!-- --></A><H3>
+isSimple</H3>
+<PRE>
+public boolean <B>isSimple</B>(<A HREF="../../../../com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A> mp)</PRE>
+<DL>
+<DD><B>Deprecated.</B> <I>use isSimple()</I>
+<P>
+<DD>A MultiPoint is simple iff it has no repeated points
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="IsSimpleOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/BufferBuilder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/BufferBuilder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/BufferBuilder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+BufferBuilder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.buffer.BufferBuilder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="BufferBuilder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BufferBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.buffer</FONT>
+<BR>
+Class BufferBuilder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.buffer.BufferBuilder</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>BufferBuilder</B><DT>extends java.lang.Object</DL>
+
+<P>
+Builds the buffer geometry for a given input geometry and precision model.
+ Allows setting the level of approximation for circular arcs,
+ and the precision model in which to carry out the computation.
+ <p>
+ When computing buffers in floating point double-precision
+ it can happen that the process of iterated noding can fail to converge (terminate).
+ In this case a TopologyException will be thrown.
+ Retrying the computation in a fixed precision
+ can produce more robust results.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferBuilder.html#BufferBuilder()">BufferBuilder</A></B>()</CODE>
+
+<BR>
+ Creates a new BufferBuilder</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferBuilder.html#buffer(com.vividsolutions.jts.geom.Geometry, double)">buffer</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ double distance)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferBuilder.html#insertEdge(com.vividsolutions.jts.geomgraph.Edge)">insertEdge</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</CODE>
+
+<BR>
+ Inserted edges are checked to see if an identical edge already exists.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferBuilder.html#setEndCapStyle(int)">setEndCapStyle</A></B>(int endCapStyle)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferBuilder.html#setNoder(com.vividsolutions.jts.noding.Noder)">setNoder</A></B>(<A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A> noder)</CODE>
+
+<BR>
+ Sets the <A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><CODE>Noder</CODE></A> to use during noding.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferBuilder.html#setQuadrantSegments(int)">setQuadrantSegments</A></B>(int quadrantSegments)</CODE>
+
+<BR>
+ Sets the number of segments used to approximate a angle fillet</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferBuilder.html#setWorkingPrecisionModel(com.vividsolutions.jts.geom.PrecisionModel)">setWorkingPrecisionModel</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm)</CODE>
+
+<BR>
+ Sets the precision model to use during the curve computation and noding,
+ if it is different to the precision model of the Geometry.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="BufferBuilder()"><!-- --></A><H3>
+BufferBuilder</H3>
+<PRE>
+public <B>BufferBuilder</B>()</PRE>
+<DL>
+<DD>Creates a new BufferBuilder
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setQuadrantSegments(int)"><!-- --></A><H3>
+setQuadrantSegments</H3>
+<PRE>
+public void <B>setQuadrantSegments</B>(int quadrantSegments)</PRE>
+<DL>
+<DD>Sets the number of segments used to approximate a angle fillet
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>quadrantSegments</CODE> - the number of segments in a fillet for a quadrant</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setWorkingPrecisionModel(com.vividsolutions.jts.geom.PrecisionModel)"><!-- --></A><H3>
+setWorkingPrecisionModel</H3>
+<PRE>
+public void <B>setWorkingPrecisionModel</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm)</PRE>
+<DL>
+<DD>Sets the precision model to use during the curve computation and noding,
+ if it is different to the precision model of the Geometry.
+ If the precision model is less than the precision of the Geometry precision model,
+ the Geometry must have previously been rounded to that precision.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pm</CODE> - the precision model to use</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setNoder(com.vividsolutions.jts.noding.Noder)"><!-- --></A><H3>
+setNoder</H3>
+<PRE>
+public void <B>setNoder</B>(<A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A> noder)</PRE>
+<DL>
+<DD>Sets the <A HREF="../../../../../com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><CODE>Noder</CODE></A> to use during noding.
+ This allows choosing fast but non-robust noding, or slower
+ but robust noding.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>noder</CODE> - the noder to use</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setEndCapStyle(int)"><!-- --></A><H3>
+setEndCapStyle</H3>
+<PRE>
+public void <B>setEndCapStyle</B>(int endCapStyle)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="buffer(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+buffer</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>buffer</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ double distance)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="insertEdge(com.vividsolutions.jts.geomgraph.Edge)"><!-- --></A><H3>
+insertEdge</H3>
+<PRE>
+protected void <B>insertEdge</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</PRE>
+<DL>
+<DD>Inserted edges are checked to see if an identical edge already exists.
+ If so, the edge is not inserted, but its label is merged
+ with the existing edge.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BufferBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/BufferOp.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/BufferOp.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/BufferOp.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,484 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+BufferOp
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.buffer.BufferOp class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="BufferOp";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BufferOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.buffer</FONT>
+<BR>
+Class BufferOp</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.buffer.BufferOp</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>BufferOp</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes the buffer of a geometry, for both positive and negative buffer distances.
+ <p>
+ In GIS, the positive buffer of a geometry is defined as
+ the Minkowski sum or difference of the geometry
+ with a circle of radius equal to the absolute value of the buffer distance.
+ In the CAD/CAM world buffers are known as </i>offset curves</i>.
+ In morphological analysis they are known as <i>erosion</i> and <i>dilation</i>
+ <p>
+ The negative buffer of lines and points is always empty geometry.
+ <p>
+ Since true buffer curves may contain circular arcs,
+ computed buffer polygons can only be approximations to the true geometry.
+ The user can control the accuracy of the curve approximation by specifying
+ the number of linear segments used to approximate curves.
+ <p>
+ The <b>end cap style</b> of a linear buffer may be specified. The
+ following end cap styles are supported:
+ <ul
+ <li><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#CAP_ROUND"><CODE>CAP_ROUND</CODE></A> - the usual round end caps
+ <li><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#CAP_BUTT"><CODE>CAP_BUTT</CODE></A> - end caps are truncated flat at the line ends
+ <li><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#CAP_SQUARE"><CODE>CAP_SQUARE</CODE></A> - end caps are squared off at the buffer distance beyond the line ends
+ </ul>
+ <p>
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#CAP_BUTT">CAP_BUTT</A></B></CODE>
+
+<BR>
+ Specifies a butt (or flat) line buffer end cap style.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#CAP_ROUND">CAP_ROUND</A></B></CODE>
+
+<BR>
+ Specifies a round line buffer end cap style.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#CAP_SQUARE">CAP_SQUARE</A></B></CODE>
+
+<BR>
+ Specifies a square line buffer end cap style.</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#BufferOp(com.vividsolutions.jts.geom.Geometry)">BufferOp</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Initializes a buffer computation for the given geometry</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#bufferOp(com.vividsolutions.jts.geom.Geometry, double)">bufferOp</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ double distance)</CODE>
+
+<BR>
+ Computes the buffer of a geometry for a given buffer distance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#bufferOp(com.vividsolutions.jts.geom.Geometry, double, int)">bufferOp</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ double distance,
+ int quadrantSegments)</CODE>
+
+<BR>
+ Comutes the buffer for a geometry for a given buffer distance
+ and accuracy of approximation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#bufferOp(com.vividsolutions.jts.geom.Geometry, double, int, int)">bufferOp</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ double distance,
+ int quadrantSegments,
+ int endCapStyle)</CODE>
+
+<BR>
+ Comutes the buffer for a geometry for a given buffer distance
+ and accuracy of approximation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#getResultGeometry(double)">getResultGeometry</A></B>(double distance)</CODE>
+
+<BR>
+ Returns the buffer computed for a geometry for a given buffer distance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#setEndCapStyle(int)">setEndCapStyle</A></B>(int endCapStyle)</CODE>
+
+<BR>
+ Specifies the end cap style of the generated buffer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#setQuadrantSegments(int)">setQuadrantSegments</A></B>(int quadrantSegments)</CODE>
+
+<BR>
+ Sets the number of segments used to approximate a angle fillet</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CAP_ROUND"><!-- --></A><H3>
+CAP_ROUND</H3>
+<PRE>
+public static final int <B>CAP_ROUND</B></PRE>
+<DL>
+<DD>Specifies a round line buffer end cap style.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.buffer.BufferOp.CAP_ROUND">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="CAP_BUTT"><!-- --></A><H3>
+CAP_BUTT</H3>
+<PRE>
+public static final int <B>CAP_BUTT</B></PRE>
+<DL>
+<DD>Specifies a butt (or flat) line buffer end cap style.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.buffer.BufferOp.CAP_BUTT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="CAP_SQUARE"><!-- --></A><H3>
+CAP_SQUARE</H3>
+<PRE>
+public static final int <B>CAP_SQUARE</B></PRE>
+<DL>
+<DD>Specifies a square line buffer end cap style.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.buffer.BufferOp.CAP_SQUARE">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="BufferOp(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+BufferOp</H3>
+<PRE>
+public <B>BufferOp</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Initializes a buffer computation for the given geometry
+<P>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - the geometry to buffer</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="bufferOp(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+bufferOp</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>bufferOp</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ double distance)</PRE>
+<DL>
+<DD>Computes the buffer of a geometry for a given buffer distance.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - the geometry to buffer<DD><CODE>distance</CODE> - the buffer distance
+<DT><B>Returns:</B><DD>the buffer of the input geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="bufferOp(com.vividsolutions.jts.geom.Geometry, double, int)"><!-- --></A><H3>
+bufferOp</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>bufferOp</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ double distance,
+ int quadrantSegments)</PRE>
+<DL>
+<DD>Comutes the buffer for a geometry for a given buffer distance
+ and accuracy of approximation.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - the geometry to buffer<DD><CODE>distance</CODE> - the buffer distance<DD><CODE>quadrantSegments</CODE> - the number of segments used to approximate a quarter circle
+<DT><B>Returns:</B><DD>the buffer of the input geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="bufferOp(com.vividsolutions.jts.geom.Geometry, double, int, int)"><!-- --></A><H3>
+bufferOp</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>bufferOp</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ double distance,
+ int quadrantSegments,
+ int endCapStyle)</PRE>
+<DL>
+<DD>Comutes the buffer for a geometry for a given buffer distance
+ and accuracy of approximation.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - the geometry to buffer<DD><CODE>distance</CODE> - the buffer distance<DD><CODE>quadrantSegments</CODE> - the number of segments used to approximate a quarter circle<DD><CODE>endCapStyle</CODE> - the end cap style to use
+<DT><B>Returns:</B><DD>the buffer of the input geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setEndCapStyle(int)"><!-- --></A><H3>
+setEndCapStyle</H3>
+<PRE>
+public void <B>setEndCapStyle</B>(int endCapStyle)</PRE>
+<DL>
+<DD>Specifies the end cap style of the generated buffer.
+ The styles supported are <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#CAP_ROUND"><CODE>CAP_ROUND</CODE></A>, <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#CAP_BUTT"><CODE>CAP_BUTT</CODE></A>, and <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html#CAP_SQUARE"><CODE>CAP_SQUARE</CODE></A>.
+ The default is CAP_ROUND.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>endCapStyle</CODE> - the end cap style to specify</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setQuadrantSegments(int)"><!-- --></A><H3>
+setQuadrantSegments</H3>
+<PRE>
+public void <B>setQuadrantSegments</B>(int quadrantSegments)</PRE>
+<DL>
+<DD>Sets the number of segments used to approximate a angle fillet
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>quadrantSegments</CODE> - the number of segments in a fillet for a quadrant</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getResultGeometry(double)"><!-- --></A><H3>
+getResultGeometry</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getResultGeometry</B>(double distance)</PRE>
+<DL>
+<DD>Returns the buffer computed for a geometry for a given buffer distance.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>distance</CODE> - the buffer distance
+<DT><B>Returns:</B><DD>the buffer of the input geometry</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BufferOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/BufferSubgraph.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/BufferSubgraph.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/BufferSubgraph.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,450 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+BufferSubgraph
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.buffer.BufferSubgraph class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="BufferSubgraph";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BufferSubgraph.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.buffer</FONT>
+<BR>
+Class BufferSubgraph</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.buffer.BufferSubgraph</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>BufferSubgraph</B><DT>extends java.lang.Object<DT>implements java.lang.Comparable</DL>
+
+<P>
+A connected subset of the graph of
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>DirectedEdge</CODE></A>s and <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Node</CODE></A>s.
+ Its edges will generate either
+ <ul>
+ <li> a single polygon in the complete buffer, with zero or more holes, or
+ <li> one or more connected holes
+ </ul>
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#BufferSubgraph(com.vividsolutions.jts.algorithm.CGAlgorithms)">BufferSubgraph</A></B>(<A HREF="../../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> cga)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#compareTo(java.lang.Object)">compareTo</A></B>(java.lang.Object o)</CODE>
+
+<BR>
+ BufferSubgraphs are compared on the x-value of their rightmost Coordinate.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#computeDepth(int)">computeDepth</A></B>(int outsideDepth)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#create(com.vividsolutions.jts.geomgraph.Node)">create</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> node)</CODE>
+
+<BR>
+ Creates the subgraph consisting of all edges reachable from this node.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#findResultEdges()">findResultEdges</A></B>()</CODE>
+
+<BR>
+ Find all edges whose depths indicates that they are in the result area(s).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#getDirectedEdges()">getDirectedEdges</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#getEnvelope()">getEnvelope</A></B>()</CODE>
+
+<BR>
+ Computes the envelope of the edges in the subgraph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#getNodes()">getNodes</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#getRightmostCoordinate()">getRightmostCoordinate</A></B>()</CODE>
+
+<BR>
+ Gets the rightmost coordinate in the edges of the subgraph</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="BufferSubgraph(com.vividsolutions.jts.algorithm.CGAlgorithms)"><!-- --></A><H3>
+BufferSubgraph</H3>
+<PRE>
+public <B>BufferSubgraph</B>(<A HREF="../../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> cga)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getDirectedEdges()"><!-- --></A><H3>
+getDirectedEdges</H3>
+<PRE>
+public java.util.List <B>getDirectedEdges</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNodes()"><!-- --></A><H3>
+getNodes</H3>
+<PRE>
+public java.util.List <B>getNodes</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEnvelope()"><!-- --></A><H3>
+getEnvelope</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>getEnvelope</B>()</PRE>
+<DL>
+<DD>Computes the envelope of the edges in the subgraph.
+ The envelope is cached after being computed.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the envelope of the graph.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getRightmostCoordinate()"><!-- --></A><H3>
+getRightmostCoordinate</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getRightmostCoordinate</B>()</PRE>
+<DL>
+<DD>Gets the rightmost coordinate in the edges of the subgraph
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(com.vividsolutions.jts.geomgraph.Node)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public void <B>create</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> node)</PRE>
+<DL>
+<DD>Creates the subgraph consisting of all edges reachable from this node.
+ Finds the edges in the graph and the rightmost coordinate.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>node</CODE> - a node to start the graph traversal from</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeDepth(int)"><!-- --></A><H3>
+computeDepth</H3>
+<PRE>
+public void <B>computeDepth</B>(int outsideDepth)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findResultEdges()"><!-- --></A><H3>
+findResultEdges</H3>
+<PRE>
+public void <B>findResultEdges</B>()</PRE>
+<DL>
+<DD>Find all edges whose depths indicates that they are in the result area(s).
+ Since we want polygon shells to be
+ oriented CW, choose dirEdges with the interior of the result on the RHS.
+ Mark them as being in the result.
+ Interior Area edges are the result of dimensional collapses.
+ They do not form part of the result area boundary.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(java.lang.Object o)</PRE>
+<DL>
+<DD>BufferSubgraphs are compared on the x-value of their rightmost Coordinate.
+ This defines a partial ordering on the graphs such that:
+ <p>
+ g1 >= g2 <==> Ring(g2) does not contain Ring(g1)
+ <p>
+ where Polygon(g) is the buffer polygon that is built from g.
+ <p>
+ This relationship is used to sort the BufferSubgraphs so that shells are guaranteed to
+ be built before holes.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE>java.lang.Comparable</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BufferSubgraph.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,369 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+OffsetCurveBuilder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.buffer.OffsetCurveBuilder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="OffsetCurveBuilder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OffsetCurveBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.buffer</FONT>
+<BR>
+Class OffsetCurveBuilder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.buffer.OffsetCurveBuilder</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>OffsetCurveBuilder</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes the raw offset curve for a
+ single <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> component (ring, line or point).
+ A raw offset curve line is not noded -
+ it may contain self-intersections (and usually will).
+ The final buffer polygon is computed by forming a topological graph
+ of all the noded raw curves and tracing outside contours.
+ The points in the raw curve are rounded to the required precision model.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html#DEFAULT_QUADRANT_SEGMENTS">DEFAULT_QUADRANT_SEGMENTS</A></B></CODE>
+
+<BR>
+ The default number of facets into which to divide a fillet of 90 degrees.</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html#OffsetCurveBuilder(com.vividsolutions.jts.geom.PrecisionModel)">OffsetCurveBuilder</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html#OffsetCurveBuilder(com.vividsolutions.jts.geom.PrecisionModel, int)">OffsetCurveBuilder</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int quadrantSegments)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html#getLineCurve(com.vividsolutions.jts.geom.Coordinate[], double)">getLineCurve</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] inputPts,
+ double distance)</CODE>
+
+<BR>
+ This method handles single points as well as lines.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html#getRingCurve(com.vividsolutions.jts.geom.Coordinate[], int, double)">getRingCurve</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] inputPts,
+ int side,
+ double distance)</CODE>
+
+<BR>
+ This method handles the degenerate cases of single points and lines,
+ as well as rings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html#setEndCapStyle(int)">setEndCapStyle</A></B>(int endCapStyle)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="DEFAULT_QUADRANT_SEGMENTS"><!-- --></A><H3>
+DEFAULT_QUADRANT_SEGMENTS</H3>
+<PRE>
+public static final int <B>DEFAULT_QUADRANT_SEGMENTS</B></PRE>
+<DL>
+<DD>The default number of facets into which to divide a fillet of 90 degrees.
+ A value of 8 gives less than 2% max error in the buffer distance.
+ For a max error of < 1%, use QS = 12
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.buffer.OffsetCurveBuilder.DEFAULT_QUADRANT_SEGMENTS">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="OffsetCurveBuilder(com.vividsolutions.jts.geom.PrecisionModel)"><!-- --></A><H3>
+OffsetCurveBuilder</H3>
+<PRE>
+public <B>OffsetCurveBuilder</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="OffsetCurveBuilder(com.vividsolutions.jts.geom.PrecisionModel, int)"><!-- --></A><H3>
+OffsetCurveBuilder</H3>
+<PRE>
+public <B>OffsetCurveBuilder</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> precisionModel,
+ int quadrantSegments)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setEndCapStyle(int)"><!-- --></A><H3>
+setEndCapStyle</H3>
+<PRE>
+public void <B>setEndCapStyle</B>(int endCapStyle)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLineCurve(com.vividsolutions.jts.geom.Coordinate[], double)"><!-- --></A><H3>
+getLineCurve</H3>
+<PRE>
+public java.util.List <B>getLineCurve</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] inputPts,
+ double distance)</PRE>
+<DL>
+<DD>This method handles single points as well as lines.
+ Lines are assumed to <b>not</b> be closed (the function will not
+ fail for closed lines, but will generate superfluous line caps).
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a List of Coordinate[]</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getRingCurve(com.vividsolutions.jts.geom.Coordinate[], int, double)"><!-- --></A><H3>
+getRingCurve</H3>
+<PRE>
+public java.util.List <B>getRingCurve</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] inputPts,
+ int side,
+ double distance)</PRE>
+<DL>
+<DD>This method handles the degenerate cases of single points and lines,
+ as well as rings.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a List of Coordinate[]</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OffsetCurveBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,268 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+OffsetCurveSetBuilder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.buffer.OffsetCurveSetBuilder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="OffsetCurveSetBuilder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OffsetCurveSetBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.buffer</FONT>
+<BR>
+Class OffsetCurveSetBuilder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.buffer.OffsetCurveSetBuilder</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>OffsetCurveSetBuilder</B><DT>extends java.lang.Object</DL>
+
+<P>
+Creates all the raw offset curves for a buffer of a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+ Raw curves need to be noded together and polygonized to form the final buffer area.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html#OffsetCurveSetBuilder(com.vividsolutions.jts.geom.Geometry, double, com.vividsolutions.jts.operation.buffer.OffsetCurveBuilder)">OffsetCurveSetBuilder</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> inputGeom,
+ double distance,
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveBuilder</A> curveBuilder)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html#getCurves()">getCurves</A></B>()</CODE>
+
+<BR>
+ Computes the set of raw offset curves for the buffer.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="OffsetCurveSetBuilder(com.vividsolutions.jts.geom.Geometry, double, com.vividsolutions.jts.operation.buffer.OffsetCurveBuilder)"><!-- --></A><H3>
+OffsetCurveSetBuilder</H3>
+<PRE>
+public <B>OffsetCurveSetBuilder</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> inputGeom,
+ double distance,
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveBuilder</A> curveBuilder)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCurves()"><!-- --></A><H3>
+getCurves</H3>
+<PRE>
+public java.util.List <B>getCurves</B>()</PRE>
+<DL>
+<DD>Computes the set of raw offset curves for the buffer.
+ Each offset curve has an attached <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Label</CODE></A> indicating
+ its left and right location.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a Collection of SegmentStrings representing the raw buffer curves</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OffsetCurveSetBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,300 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+RightmostEdgeFinder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.buffer.RightmostEdgeFinder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="RightmostEdgeFinder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html" title="class in com.vividsolutions.jts.operation.buffer"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RightmostEdgeFinder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.buffer</FONT>
+<BR>
+Class RightmostEdgeFinder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.buffer.RightmostEdgeFinder</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>RightmostEdgeFinder</B><DT>extends java.lang.Object</DL>
+
+<P>
+A RightmostEdgeFinder find the DirectedEdge in a list which has the highest coordinate,
+ and which is oriented L to R at that point. (I.e. the right side is on the RHS of the edge.)
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html#RightmostEdgeFinder(com.vividsolutions.jts.algorithm.CGAlgorithms)">RightmostEdgeFinder</A></B>(<A HREF="../../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> cga)</CODE>
+
+<BR>
+ A RightmostEdgeFinder finds the DirectedEdge with the rightmost coordinate.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html#findEdge(java.util.List)">findEdge</A></B>(java.util.List dirEdgeList)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html#getEdge()">getEdge</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="RightmostEdgeFinder(com.vividsolutions.jts.algorithm.CGAlgorithms)"><!-- --></A><H3>
+RightmostEdgeFinder</H3>
+<PRE>
+public <B>RightmostEdgeFinder</B>(<A HREF="../../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> cga)</PRE>
+<DL>
+<DD>A RightmostEdgeFinder finds the DirectedEdge with the rightmost coordinate.
+ The DirectedEdge returned is guaranteed to have the R of the world on its RHS.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getEdge()"><!-- --></A><H3>
+getEdge</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> <B>getEdge</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findEdge(java.util.List)"><!-- --></A><H3>
+findEdge</H3>
+<PRE>
+public void <B>findEdge</B>(java.util.List dirEdgeList)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html" title="class in com.vividsolutions.jts.operation.buffer"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RightmostEdgeFinder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,261 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+SubgraphDepthLocater
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.buffer.SubgraphDepthLocater class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SubgraphDepthLocater";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SubgraphDepthLocater.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.buffer</FONT>
+<BR>
+Class SubgraphDepthLocater</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.buffer.SubgraphDepthLocater</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SubgraphDepthLocater</B><DT>extends java.lang.Object</DL>
+
+<P>
+Locates a subgraph inside a set of subgraphs,
+ in order to determine the outside depth of the subgraph.
+ The input subgraphs are assumed to have had depths
+ already calculated for their edges.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html#SubgraphDepthLocater(java.util.List)">SubgraphDepthLocater</A></B>(java.util.List subgraphs)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html#getDepth(com.vividsolutions.jts.geom.Coordinate)">getDepth</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SubgraphDepthLocater(java.util.List)"><!-- --></A><H3>
+SubgraphDepthLocater</H3>
+<PRE>
+public <B>SubgraphDepthLocater</B>(java.util.List subgraphs)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getDepth(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+getDepth</H3>
+<PRE>
+public int <B>getDepth</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SubgraphDepthLocater.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.buffer
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.buffer package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/operation/buffer/package-summary.html" target="classFrame">com.vividsolutions.jts.operation.buffer</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer" target="classFrame">BufferBuilder</A>
+<BR>
+<A HREF="BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer" target="classFrame">BufferOp</A>
+<BR>
+<A HREF="BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer" target="classFrame">BufferSubgraph</A>
+<BR>
+<A HREF="OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer" target="classFrame">OffsetCurveBuilder</A>
+<BR>
+<A HREF="OffsetCurveSetBuilder.html" title="class in com.vividsolutions.jts.operation.buffer" target="classFrame">OffsetCurveSetBuilder</A>
+<BR>
+<A HREF="RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer" target="classFrame">RightmostEdgeFinder</A>
+<BR>
+<A HREF="SubgraphDepthLocater.html" title="class in com.vividsolutions.jts.operation.buffer" target="classFrame">SubgraphDepthLocater</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,189 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.buffer
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.buffer package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.buffer";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.operation.buffer
+</H2>
+Provides classes for computing buffers of geometries
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">BufferBuilder</A></B></TD>
+<TD>Builds the buffer geometry for a given input geometry and precision model.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer">BufferOp</A></B></TD>
+<TD>Computes the buffer of a geometry, for both positive and negative buffer distances.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer">BufferSubgraph</A></B></TD>
+<TD>A connected subset of the graph of
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>DirectedEdge</CODE></A>s and <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Node</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveBuilder</A></B></TD>
+<TD>Computes the raw offset curve for a
+ single <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> component (ring, line or point).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveSetBuilder</A></B></TD>
+<TD>Creates all the raw offset curves for a buffer of a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer">RightmostEdgeFinder</A></B></TD>
+<TD>A RightmostEdgeFinder find the DirectedEdge in a list which has the highest coordinate,
+ and which is oriented L to R at that point.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html" title="class in com.vividsolutions.jts.operation.buffer">SubgraphDepthLocater</A></B></TD>
+<TD>Locates a subgraph inside a set of subgraphs,
+ in order to determine the outside depth of the subgraph.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.operation.buffer Description
+</H2>
+
+<P>
+Provides classes for computing buffers of geometries
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/buffer/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.buffer Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.buffer Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.operation.buffer
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.buffer.<A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>BufferBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.buffer.<A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer"><B>BufferOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.buffer.<A HREF="../../../../../com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer"><B>BufferSubgraph</B></A> (implements java.lang.Comparable)
+<LI TYPE="circle">class com.vividsolutions.jts.operation.buffer.<A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>OffsetCurveBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.buffer.<A HREF="../../../../../com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>OffsetCurveSetBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.buffer.<A HREF="../../../../../com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>RightmostEdgeFinder</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.buffer.<A HREF="../../../../../com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html" title="class in com.vividsolutions.jts.operation.buffer"><B>SubgraphDepthLocater</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+ConnectedElementLocationFilter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.distance.ConnectedElementLocationFilter class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ConnectedElementLocationFilter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html" title="class in com.vividsolutions.jts.operation.distance"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ConnectedElementLocationFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.distance</FONT>
+<BR>
+Class ConnectedElementLocationFilter</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.distance.ConnectedElementLocationFilter</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>ConnectedElementLocationFilter</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></DL>
+
+<P>
+A ConnectedElementPointFilter extracts a single point
+ from each connected element in a Geometry
+ (e.g. a polygon, linestring or point)
+ and returns them in a list. The elements of the list are
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance"><CODE>GeometryLocation</CODE></A>s.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html#filter(com.vividsolutions.jts.geom.Geometry)">filter</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Performs an operation with or on <code>geom</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html#getLocations(com.vividsolutions.jts.geom.Geometry)">getLocations</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Returns a list containing a point from each Polygon, LineString, and Point
+ found inside the specified geometry.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getLocations(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+getLocations</H3>
+<PRE>
+public static java.util.List <B>getLocations</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Returns a list containing a point from each Polygon, LineString, and Point
+ found inside the specified geometry. Thus, if the specified geometry is
+ not a GeometryCollection, an empty list will be returned. The elements of the list
+ are <A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance"><CODE>GeometryLocation</CODE></A>s.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="filter(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+filter</H3>
+<PRE>
+public void <B>filter</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></CODE></B></DD>
+<DD>Performs an operation with or on <code>geom</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html#filter(com.vividsolutions.jts.geom.Geometry)">filter</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - a <code>Geometry</code> to which the filter is applied.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html" title="class in com.vividsolutions.jts.operation.distance"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ConnectedElementLocationFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+ConnectedElementPointFilter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.distance.ConnectedElementPointFilter class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ConnectedElementPointFilter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html" title="class in com.vividsolutions.jts.operation.distance"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ConnectedElementPointFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.distance</FONT>
+<BR>
+Class ConnectedElementPointFilter</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.distance.ConnectedElementPointFilter</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>ConnectedElementPointFilter</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></DL>
+
+<P>
+Extracts a single point
+ from each connected element in a Geometry
+ (e.g. a polygon, linestring or point)
+ and returns them in a list
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html#filter(com.vividsolutions.jts.geom.Geometry)">filter</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Performs an operation with or on <code>geom</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html#getCoordinates(com.vividsolutions.jts.geom.Geometry)">getCoordinates</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Returns a list containing a Coordinate from each Polygon, LineString, and Point
+ found inside the specified geometry.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinates(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+getCoordinates</H3>
+<PRE>
+public static java.util.List <B>getCoordinates</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Returns a list containing a Coordinate from each Polygon, LineString, and Point
+ found inside the specified geometry. Thus, if the specified geometry is
+ not a GeometryCollection, an empty list will be returned.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="filter(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+filter</H3>
+<PRE>
+public void <B>filter</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></CODE></B></DD>
+<DD>Performs an operation with or on <code>geom</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html#filter(com.vividsolutions.jts.geom.Geometry)">filter</A></CODE> in interface <CODE><A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - a <code>Geometry</code> to which the filter is applied.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html" title="class in com.vividsolutions.jts.operation.distance"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ConnectedElementPointFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/DistanceOp.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/DistanceOp.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/DistanceOp.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,423 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+DistanceOp
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.distance.DistanceOp class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="DistanceOp";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html" title="class in com.vividsolutions.jts.operation.distance"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DistanceOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.distance</FONT>
+<BR>
+Class DistanceOp</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.distance.DistanceOp</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>DistanceOp</B><DT>extends java.lang.Object</DL>
+
+<P>
+Find two points on two <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s which lie
+ within a given distance, or else are the closest points
+ on the geometries (in which case this also
+ provides the distance between the geometries).
+ <p>
+ The distance computation also finds a pair of points in the input geometries
+ which have the minimum distance between them.
+ If a point lies in the interior of a line segment,
+ the coordinate computed is a close
+ approximation to the exact point.
+ <p>
+ The algorithms used are straightforward O(n^2)
+ comparisons. This worst-case performance could be improved on
+ by using Voronoi techniques or spatial indexes.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/DistanceOp.html#DistanceOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">DistanceOp</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</CODE>
+
+<BR>
+ Constructs a DistanceOp that computes the distance and closest points between
+ the two specified geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/DistanceOp.html#DistanceOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, double)">DistanceOp</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ double terminateDistance)</CODE>
+
+<BR>
+ Constructs a DistanceOp that computes the distance and closest points between
+ the two specified geometries.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance">GeometryLocation</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/DistanceOp.html#closestLocations()">closestLocations</A></B>()</CODE>
+
+<BR>
+ Report the locations of the closest points in the input geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/DistanceOp.html#closestPoints()">closestPoints</A></B>()</CODE>
+
+<BR>
+ Report the coordinates of the closest points in the input geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/DistanceOp.html#closestPoints(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">closestPoints</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</CODE>
+
+<BR>
+ Compute the the closest points of two geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/DistanceOp.html#distance()">distance</A></B>()</CODE>
+
+<BR>
+ Report the distance between the closest points on the input geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/DistanceOp.html#distance(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">distance</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</CODE>
+
+<BR>
+ Compute the distance between the closest points of two geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/DistanceOp.html#isWithinDistance(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, double)">isWithinDistance</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ double distance)</CODE>
+
+<BR>
+ Test whether two geometries lie within a given distance of each other.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="DistanceOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+DistanceOp</H3>
+<PRE>
+public <B>DistanceOp</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</PRE>
+<DL>
+<DD>Constructs a DistanceOp that computes the distance and closest points between
+ the two specified geometries.
+<P>
+<DT><B>Parameters:</B><DD><CODE>g0</CODE> - a Geometry<DD><CODE>g1</CODE> - a Geometry</DL>
+<HR>
+
+<A NAME="DistanceOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+DistanceOp</H3>
+<PRE>
+public <B>DistanceOp</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ double terminateDistance)</PRE>
+<DL>
+<DD>Constructs a DistanceOp that computes the distance and closest points between
+ the two specified geometries.
+<P>
+<DT><B>Parameters:</B><DD><CODE>g0</CODE> - a Geometry<DD><CODE>g1</CODE> - a Geometry<DD><CODE>terminateDistance</CODE> - the distance on which to terminate the search</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="distance(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+distance</H3>
+<PRE>
+public static double <B>distance</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</PRE>
+<DL>
+<DD>Compute the distance between the closest points of two geometries.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g0</CODE> - a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A><DD><CODE>g1</CODE> - another <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+<DT><B>Returns:</B><DD>the distance between the geometries</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isWithinDistance(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+isWithinDistance</H3>
+<PRE>
+public static boolean <B>isWithinDistance</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ double distance)</PRE>
+<DL>
+<DD>Test whether two geometries lie within a given distance of each other.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g0</CODE> - a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A><DD><CODE>g1</CODE> - another <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A><DD><CODE>distance</CODE> - the distance to test
+<DT><B>Returns:</B><DD>true if g0.distance(g1) <= distance</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="closestPoints(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+closestPoints</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>closestPoints</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</PRE>
+<DL>
+<DD>Compute the the closest points of two geometries.
+ The points are presented in the same order as the input Geometries.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g0</CODE> - a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A><DD><CODE>g1</CODE> - another <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+<DT><B>Returns:</B><DD>the closest points in the geometries</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="distance()"><!-- --></A><H3>
+distance</H3>
+<PRE>
+public double <B>distance</B>()</PRE>
+<DL>
+<DD>Report the distance between the closest points on the input geometries.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the distance between the geometries</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="closestPoints()"><!-- --></A><H3>
+closestPoints</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>closestPoints</B>()</PRE>
+<DL>
+<DD>Report the coordinates of the closest points in the input geometries.
+ The points are presented in the same order as the input Geometries.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a pair of <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s of the closest points</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="closestLocations()"><!-- --></A><H3>
+closestLocations</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance">GeometryLocation</A>[] <B>closestLocations</B>()</PRE>
+<DL>
+<DD>Report the locations of the closest points in the input geometries.
+ The locations are presented in the same order as the input Geometries.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a pair of <A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance"><CODE>GeometryLocation</CODE></A>s for the closest points</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html" title="class in com.vividsolutions.jts.operation.distance"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DistanceOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/GeometryLocation.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/GeometryLocation.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/GeometryLocation.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,390 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+GeometryLocation
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.distance.GeometryLocation class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GeometryLocation";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryLocation.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.distance</FONT>
+<BR>
+Class GeometryLocation</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.distance.GeometryLocation</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>GeometryLocation</B><DT>extends java.lang.Object</DL>
+
+<P>
+Represents the location of a point on a Geometry.
+ Maintains both the actual point location (which of course
+ may not be exact) as well as information about the component
+ and segment index where the point occurs.
+ Locations inside area Geometrys will not have an associated segment index,
+ so in this case the segment index will have the sentinel value of INSIDE_AREA.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html#INSIDE_AREA">INSIDE_AREA</A></B></CODE>
+
+<BR>
+ Special value of segment-index for locations inside area geometries.</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html#GeometryLocation(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Coordinate)">GeometryLocation</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> component,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Constructs a GeometryLocation specifying a point inside an area geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html#GeometryLocation(com.vividsolutions.jts.geom.Geometry, int, com.vividsolutions.jts.geom.Coordinate)">GeometryLocation</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> component,
+ int segIndex,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Constructs a GeometryLocation specifying a point on a geometry, as well as the
+ segment that the point is on (or INSIDE_AREA if the point is not on a segment).</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ Returns the location.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html#getGeometryComponent()">getGeometryComponent</A></B>()</CODE>
+
+<BR>
+ Returns the geometry associated with this location.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html#getSegmentIndex()">getSegmentIndex</A></B>()</CODE>
+
+<BR>
+ Returns the segment index for this location.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html#isInsideArea()">isInsideArea</A></B>()</CODE>
+
+<BR>
+ Returns whether this GeometryLocation represents a point inside an area geometry.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="INSIDE_AREA"><!-- --></A><H3>
+INSIDE_AREA</H3>
+<PRE>
+public static final int <B>INSIDE_AREA</B></PRE>
+<DL>
+<DD>Special value of segment-index for locations inside area geometries. These
+ locations do not have an associated segment index.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.distance.GeometryLocation.INSIDE_AREA">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GeometryLocation(com.vividsolutions.jts.geom.Geometry, int, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+GeometryLocation</H3>
+<PRE>
+public <B>GeometryLocation</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> component,
+ int segIndex,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Constructs a GeometryLocation specifying a point on a geometry, as well as the
+ segment that the point is on (or INSIDE_AREA if the point is not on a segment).
+<P>
+</DL>
+<HR>
+
+<A NAME="GeometryLocation(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+GeometryLocation</H3>
+<PRE>
+public <B>GeometryLocation</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> component,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Constructs a GeometryLocation specifying a point inside an area geometry.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getGeometryComponent()"><!-- --></A><H3>
+getGeometryComponent</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getGeometryComponent</B>()</PRE>
+<DL>
+<DD>Returns the geometry associated with this location.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSegmentIndex()"><!-- --></A><H3>
+getSegmentIndex</H3>
+<PRE>
+public int <B>getSegmentIndex</B>()</PRE>
+<DL>
+<DD>Returns the segment index for this location. If the location is inside an
+ area, the index will have the value INSIDE_AREA;
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the segment index for the location, or INSIDE_AREA</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD>Returns the location.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isInsideArea()"><!-- --></A><H3>
+isInsideArea</H3>
+<PRE>
+public boolean <B>isInsideArea</B>()</PRE>
+<DL>
+<DD>Returns whether this GeometryLocation represents a point inside an area geometry.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryLocation.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.distance
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.distance package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/operation/distance/package-summary.html" target="classFrame">com.vividsolutions.jts.operation.distance</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="ConnectedElementLocationFilter.html" title="class in com.vividsolutions.jts.operation.distance" target="classFrame">ConnectedElementLocationFilter</A>
+<BR>
+<A HREF="ConnectedElementPointFilter.html" title="class in com.vividsolutions.jts.operation.distance" target="classFrame">ConnectedElementPointFilter</A>
+<BR>
+<A HREF="DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance" target="classFrame">DistanceOp</A>
+<BR>
+<A HREF="GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance" target="classFrame">GeometryLocation</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.distance
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.distance package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.distance";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.operation.distance
+</H2>
+Provides classes for computing the distance between geometries
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html" title="class in com.vividsolutions.jts.operation.distance">ConnectedElementLocationFilter</A></B></TD>
+<TD>A ConnectedElementPointFilter extracts a single point
+ from each connected element in a Geometry
+ (e.g.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html" title="class in com.vividsolutions.jts.operation.distance">ConnectedElementPointFilter</A></B></TD>
+<TD>Extracts a single point
+ from each connected element in a Geometry
+ (e.g.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance">DistanceOp</A></B></TD>
+<TD>Find two points on two <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s which lie
+ within a given distance, or else are the closest points
+ on the geometries (in which case this also
+ provides the distance between the geometries).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance">GeometryLocation</A></B></TD>
+<TD>Represents the location of a point on a Geometry.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.operation.distance Description
+</H2>
+
+<P>
+Provides classes for computing the distance between geometries
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/distance/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.distance Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.distance Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.operation.distance
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.distance.<A HREF="../../../../../com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html" title="class in com.vividsolutions.jts.operation.distance"><B>ConnectedElementLocationFilter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.operation.distance.<A HREF="../../../../../com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html" title="class in com.vividsolutions.jts.operation.distance"><B>ConnectedElementPointFilter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.operation.distance.<A HREF="../../../../../com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance"><B>DistanceOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.distance.<A HREF="../../../../../com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance"><B>GeometryLocation</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/buffer/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/EdgeString.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/EdgeString.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/EdgeString.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,286 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+EdgeString
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.linemerge.EdgeString class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="EdgeString";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeString.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.linemerge</FONT>
+<BR>
+Class EdgeString</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.linemerge.EdgeString</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>EdgeString</B><DT>extends java.lang.Object</DL>
+
+<P>
+A sequence of <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><CODE>LineMergeDirectedEdge</CODE></A>s forming one of the lines that will
+ be output by the line-merging process.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/EdgeString.html#EdgeString(com.vividsolutions.jts.geom.GeometryFactory)">EdgeString</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</CODE>
+
+<BR>
+ Constructs an EdgeString with the given factory used to convert this EdgeString
+ to a LineString</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/EdgeString.html#add(com.vividsolutions.jts.operation.linemerge.LineMergeDirectedEdge)">add</A></B>(<A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeDirectedEdge</A> directedEdge)</CODE>
+
+<BR>
+ Adds a directed edge which is known to form part of this line.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/EdgeString.html#toLineString()">toLineString</A></B>()</CODE>
+
+<BR>
+ Converts this EdgeString into a LineString.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EdgeString(com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+EdgeString</H3>
+<PRE>
+public <B>EdgeString</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</PRE>
+<DL>
+<DD>Constructs an EdgeString with the given factory used to convert this EdgeString
+ to a LineString
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(com.vividsolutions.jts.operation.linemerge.LineMergeDirectedEdge)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeDirectedEdge</A> directedEdge)</PRE>
+<DL>
+<DD>Adds a directed edge which is known to form part of this line.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toLineString()"><!-- --></A><H3>
+toLineString</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>toLineString</B>()</PRE>
+<DL>
+<DD>Converts this EdgeString into a LineString.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeString.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,324 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+LineMergeDirectedEdge
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.linemerge.LineMergeDirectedEdge class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LineMergeDirectedEdge";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/EdgeString.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineMergeDirectedEdge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.planargraph.DirectedEdge">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.linemerge</FONT>
+<BR>
+Class LineMergeDirectedEdge</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">com.vividsolutions.jts.planargraph.GraphComponent</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">com.vividsolutions.jts.planargraph.DirectedEdge</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.linemerge.LineMergeDirectedEdge</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>LineMergeDirectedEdge</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A></DL>
+
+<P>
+A <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A> of a
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge"><CODE>LineMergeGraph</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.planargraph.DirectedEdge"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#angle">angle</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#cga">cga</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#edgeDirection">edgeDirection</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#from">from</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#p0">p0</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#p1">p1</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#parentEdge">parentEdge</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#quadrant">quadrant</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#sym">sym</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#to">to</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.planargraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked">isMarked</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited">isVisited</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html#LineMergeDirectedEdge(com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.geom.Coordinate, boolean)">LineMergeDirectedEdge</A></B>(<A HREF="../../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> from,
+ <A HREF="../../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> to,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> directionPt,
+ boolean edgeDirection)</CODE>
+
+<BR>
+ Constructs a LineMergeDirectedEdge connecting the <code>from</code> node to the
+ <code>to</code> node.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeDirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html#getNext()">getNext</A></B>()</CODE>
+
+<BR>
+ Returns the directed edge that starts at this directed edge's end point, or null
+ if there are zero or multiple directed edges starting there.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.planargraph.DirectedEdge"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#compareDirection(com.vividsolutions.jts.planargraph.DirectedEdge)">compareDirection</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#compareTo(java.lang.Object)">compareTo</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getAngle()">getAngle</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getCoordinate()">getCoordinate</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getDirectionPt()">getDirectionPt</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getEdge()">getEdge</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getEdgeDirection()">getEdgeDirection</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getFromNode()">getFromNode</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getQuadrant()">getQuadrant</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getSym()">getSym</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getToNode()">getToNode</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#isRemoved()">isRemoved</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#print(java.io.PrintStream)">print</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#setEdge(com.vividsolutions.jts.planargraph.Edge)">setEdge</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#setSym(com.vividsolutions.jts.planargraph.DirectedEdge)">setSym</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#toEdges(java.util.Collection)">toEdges</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.planargraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getComponentWithVisitedState(java.util.Iterator, boolean)">getComponentWithVisitedState</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getContext()">getContext</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getData()">getData</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked()">isMarked</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited()">isVisited</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setContext(java.lang.Object)">setContext</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setData(java.lang.Object)">setData</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(boolean)">setMarked</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(java.util.Iterator, boolean)">setMarked</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(boolean)">setVisited</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(java.util.Iterator, boolean)">setVisited</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LineMergeDirectedEdge(com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.geom.Coordinate, boolean)"><!-- --></A><H3>
+LineMergeDirectedEdge</H3>
+<PRE>
+public <B>LineMergeDirectedEdge</B>(<A HREF="../../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> from,
+ <A HREF="../../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> to,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> directionPt,
+ boolean edgeDirection)</PRE>
+<DL>
+<DD>Constructs a LineMergeDirectedEdge connecting the <code>from</code> node to the
+ <code>to</code> node.
+<P>
+<DT><B>Parameters:</B><DD><CODE>directionPt</CODE> - specifies this DirectedEdge's direction (given by an imaginary
+ line from the <code>from</code> node to <code>directionPt</code>)<DD><CODE>edgeDirection</CODE> - whether this DirectedEdge's direction is the same as or
+ opposite to that of the parent Edge (if any)</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getNext()"><!-- --></A><H3>
+getNext</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeDirectedEdge</A> <B>getNext</B>()</PRE>
+<DL>
+<DD>Returns the directed edge that starts at this directed edge's end point, or null
+ if there are zero or multiple directed edges starting there.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/EdgeString.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineMergeDirectedEdge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.planargraph.DirectedEdge">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,308 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+LineMergeEdge
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.linemerge.LineMergeEdge class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LineMergeEdge";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineMergeEdge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.planargraph.Edge">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.linemerge</FONT>
+<BR>
+Class LineMergeEdge</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">com.vividsolutions.jts.planargraph.GraphComponent</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">com.vividsolutions.jts.planargraph.Edge</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.linemerge.LineMergeEdge</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>LineMergeEdge</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A></DL>
+
+<P>
+An edge of a <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge"><CODE>LineMergeGraph</CODE></A>. The <code>marked</code> field indicates
+ whether this Edge has been logically deleted from the graph.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.planargraph.Edge"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/planargraph/Edge.html#dirEdge">dirEdge</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.planargraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked">isMarked</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited">isVisited</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html#LineMergeEdge(com.vividsolutions.jts.geom.LineString)">LineMergeEdge</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> line)</CODE>
+
+<BR>
+ Constructs a LineMergeEdge with vertices given by the specified LineString.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html#getLine()">getLine</A></B>()</CODE>
+
+<BR>
+ Returns the LineString specifying the vertices of this edge.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.planargraph.Edge"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/planargraph/Edge.html#getDirEdge(int)">getDirEdge</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/Edge.html#getDirEdge(com.vividsolutions.jts.planargraph.Node)">getDirEdge</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/Edge.html#getOppositeNode(com.vividsolutions.jts.planargraph.Node)">getOppositeNode</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/Edge.html#isRemoved()">isRemoved</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/Edge.html#setDirectedEdges(com.vividsolutions.jts.planargraph.DirectedEdge, com.vividsolutions.jts.planargraph.DirectedEdge)">setDirectedEdges</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.planargraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getComponentWithVisitedState(java.util.Iterator, boolean)">getComponentWithVisitedState</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getContext()">getContext</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getData()">getData</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked()">isMarked</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited()">isVisited</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setContext(java.lang.Object)">setContext</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setData(java.lang.Object)">setData</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(boolean)">setMarked</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(java.util.Iterator, boolean)">setMarked</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(boolean)">setVisited</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(java.util.Iterator, boolean)">setVisited</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LineMergeEdge(com.vividsolutions.jts.geom.LineString)"><!-- --></A><H3>
+LineMergeEdge</H3>
+<PRE>
+public <B>LineMergeEdge</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> line)</PRE>
+<DL>
+<DD>Constructs a LineMergeEdge with vertices given by the specified LineString.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getLine()"><!-- --></A><H3>
+getLine</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>getLine</B>()</PRE>
+<DL>
+<DD>Returns the LineString specifying the vertices of this edge.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineMergeEdge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.planargraph.Edge">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,291 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+LineMergeGraph
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.linemerge.LineMergeGraph class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LineMergeGraph";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineMergeGraph.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.planargraph.PlanarGraph">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.linemerge</FONT>
+<BR>
+Class LineMergeGraph</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">com.vividsolutions.jts.planargraph.PlanarGraph</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.linemerge.LineMergeGraph</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>LineMergeGraph</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A></DL>
+
+<P>
+A planar graph of edges that is analyzed to sew the edges together. The
+ <code>marked</code> flag on @{link com.vividsolutions.planargraph.Edge}s
+ and @{link com.vividsolutions.planargraph.Node}s indicates whether they have been
+ logically deleted from the graph.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.planargraph.PlanarGraph"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#dirEdges">dirEdges</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#edges">edges</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#nodeMap">nodeMap</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html#LineMergeGraph()">LineMergeGraph</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html#addEdge(com.vividsolutions.jts.geom.LineString)">addEdge</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> lineString)</CODE>
+
+<BR>
+ Adds an Edge, DirectedEdges, and Nodes for the given LineString representation
+ of an edge.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.planargraph.PlanarGraph"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#add(com.vividsolutions.jts.planargraph.DirectedEdge)">add</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#add(com.vividsolutions.jts.planargraph.Edge)">add</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#add(com.vividsolutions.jts.planargraph.Node)">add</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#contains(com.vividsolutions.jts.planargraph.DirectedEdge)">contains</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#contains(com.vividsolutions.jts.planargraph.Edge)">contains</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#dirEdgeIterator()">dirEdgeIterator</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#edgeIterator()">edgeIterator</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#findNode(com.vividsolutions.jts.geom.Coordinate)">findNode</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#findNodesOfDegree(int)">findNodesOfDegree</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#getEdges()">getEdges</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#getNodes()">getNodes</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#nodeIterator()">nodeIterator</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#remove(com.vividsolutions.jts.planargraph.DirectedEdge)">remove</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#remove(com.vividsolutions.jts.planargraph.Edge)">remove</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#remove(com.vividsolutions.jts.planargraph.Node)">remove</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LineMergeGraph()"><!-- --></A><H3>
+LineMergeGraph</H3>
+<PRE>
+public <B>LineMergeGraph</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="addEdge(com.vividsolutions.jts.geom.LineString)"><!-- --></A><H3>
+addEdge</H3>
+<PRE>
+public void <B>addEdge</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> lineString)</PRE>
+<DL>
+<DD>Adds an Edge, DirectedEdges, and Nodes for the given LineString representation
+ of an edge.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineMergeGraph.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.planargraph.PlanarGraph">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMerger.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMerger.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineMerger.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,315 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+LineMerger
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.linemerge.LineMerger class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LineMerger";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineMerger.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.linemerge</FONT>
+<BR>
+Class LineMerger</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.linemerge.LineMerger</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>LineMerger</B><DT>extends java.lang.Object</DL>
+
+<P>
+Sews together a set of fully noded LineStrings. Sewing stops at nodes of degree 1
+ or 3 or more -- the exception is an isolated loop, which only has degree-2 nodes,
+ in which case a node is simply chosen as a starting point. The direction of each
+ merged LineString will be that of the majority of the LineStrings from which it
+ was derived.
+ <p>
+ Any dimension of Geometry is handled -- the constituent linework is extracted to
+ form the edges. The edges must be correctly noded; that is, they must only meet
+ at their endpoints. The LineMerger will still run on incorrectly noded input
+ but will not form polygons from incorrected noded edges.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMerger.html#LineMerger()">LineMerger</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMerger.html#add(java.util.Collection)">add</A></B>(java.util.Collection geometries)</CODE>
+
+<BR>
+ Adds a collection of Geometries to be processed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMerger.html#add(com.vividsolutions.jts.geom.Geometry)">add</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</CODE>
+
+<BR>
+ Adds a Geometry to be processed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMerger.html#getMergedLineStrings()">getMergedLineStrings</A></B>()</CODE>
+
+<BR>
+ Returns the LineStrings built by the merging process.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LineMerger()"><!-- --></A><H3>
+LineMerger</H3>
+<PRE>
+public <B>LineMerger</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(java.util.Collection)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(java.util.Collection geometries)</PRE>
+<DL>
+<DD>Adds a collection of Geometries to be processed. May be called multiple times.
+ Any dimension of Geometry may be added; the constituent linework will be
+ extracted.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</PRE>
+<DL>
+<DD>Adds a Geometry to be processed. May be called multiple times.
+ Any dimension of Geometry may be added; the constituent linework will be
+ extracted.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMergedLineStrings()"><!-- --></A><H3>
+getMergedLineStrings</H3>
+<PRE>
+public java.util.Collection <B>getMergedLineStrings</B>()</PRE>
+<DL>
+<DD>Returns the LineStrings built by the merging process.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineMerger.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineSequencer.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineSequencer.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/LineSequencer.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,394 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+LineSequencer
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.linemerge.LineSequencer class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LineSequencer";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineSequencer.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.linemerge</FONT>
+<BR>
+Class LineSequencer</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.linemerge.LineSequencer</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>LineSequencer</B><DT>extends java.lang.Object</DL>
+
+<P>
+Builds a sequence from a set of LineStrings so that
+ they are ordered end to end.
+ A sequence is a complete non-repeating list of the linear
+ components of the input. Each linestring is oriented
+ so that identical endpoints are adjacent in the list.
+
+ The input linestrings may form one or more connected sets.
+ The input linestrings should be correctly noded, or the results may
+ not be what is expected.
+ The output of this method is a single MultiLineString containing the ordered
+ linestrings in the sequence.
+ <p>
+ The sequencing employs the classic <b>Eulerian path</b> graph algorithm.
+ Since Eulerian paths are not uniquely determined,
+ further rules are used to
+ make the computed sequence preserve as much as possible of the input
+ ordering.
+ Within a connected subset of lines, the ordering rules are:
+ <ul>
+ <li>If there is degree-1 node which is the start
+ node of an linestring, use that node as the start of the sequence
+ <li>If there is a degree-1 node which is the end
+ node of an linestring, use that node as the end of the sequence
+ <li>If the sequence has no degree-1 nodes, use any node as the start
+ </ul>
+
+ <p>
+ Not all arrangements of lines can be sequenced.
+ For a connected set of edges in a graph,
+ Euler's Theorem states that there is a sequence containing each edge once
+ if and only if there are no more than 2 nodes of odd degree.
+ If it is not possible to find a sequence, the <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineSequencer.html#isSequenceable()"><CODE>isSequenceable()</CODE></A> method
+ will return <code>false</code>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineSequencer.html#LineSequencer()">LineSequencer</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineSequencer.html#add(java.util.Collection)">add</A></B>(java.util.Collection geometries)</CODE>
+
+<BR>
+ Adds a <CODE>Collection</CODE> of <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s to be sequenced.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineSequencer.html#add(com.vividsolutions.jts.geom.Geometry)">add</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</CODE>
+
+<BR>
+ Adds a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> to be sequenced.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineSequencer.html#getSequencedLineStrings()">getSequencedLineStrings</A></B>()</CODE>
+
+<BR>
+ Returns the <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> or <A HREF="../../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A>
+ built by the sequencing process, if one exists.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineSequencer.html#isSequenceable()">isSequenceable</A></B>()</CODE>
+
+<BR>
+ Tests whether the arrangement of linestrings has a valid
+ sequence.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineSequencer.html#isSequenced(com.vividsolutions.jts.geom.Geometry)">isSequenced</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Tests whether a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is sequenced correctly.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LineSequencer()"><!-- --></A><H3>
+LineSequencer</H3>
+<PRE>
+public <B>LineSequencer</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isSequenced(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+isSequenced</H3>
+<PRE>
+public static boolean <B>isSequenced</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Tests whether a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is sequenced correctly.
+ <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>s are trivially sequenced.
+ <A HREF="../../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A>s are checked for correct sequencing.
+ Otherwise, <code>isSequenced</code> is defined
+ to be <code>true</code> for geometries that are not lineal.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - the geometry to test
+<DT><B>Returns:</B><DD><code>true</code> if the geometry is sequenced or is not lineal</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(java.util.Collection)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(java.util.Collection geometries)</PRE>
+<DL>
+<DD>Adds a <CODE>Collection</CODE> of <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s to be sequenced.
+ May be called multiple times.
+ Any dimension of Geometry may be added; the constituent linework will be
+ extracted.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geometries</CODE> - a Collection of geometries to add</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geometry)</PRE>
+<DL>
+<DD>Adds a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> to be sequenced.
+ May be called multiple times.
+ Any dimension of Geometry may be added; the constituent linework will be
+ extracted.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geometry</CODE> - the geometry to add</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSequenceable()"><!-- --></A><H3>
+isSequenceable</H3>
+<PRE>
+public boolean <B>isSequenceable</B>()</PRE>
+<DL>
+<DD>Tests whether the arrangement of linestrings has a valid
+ sequence.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if a valid sequence exists.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSequencedLineStrings()"><!-- --></A><H3>
+getSequencedLineStrings</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getSequencedLineStrings</B>()</PRE>
+<DL>
+<DD>Returns the <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> or <A HREF="../../../../../com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A>
+ built by the sequencing process, if one exists.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the sequenced linestrings,
+ or <code>null</code> if a valid sequence does not exist</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineSequencer.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.linemerge
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.linemerge package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/package-summary.html" target="classFrame">com.vividsolutions.jts.operation.linemerge</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="EdgeString.html" title="class in com.vividsolutions.jts.operation.linemerge" target="classFrame">EdgeString</A>
+<BR>
+<A HREF="LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge" target="classFrame">LineMergeDirectedEdge</A>
+<BR>
+<A HREF="LineMergeEdge.html" title="class in com.vividsolutions.jts.operation.linemerge" target="classFrame">LineMergeEdge</A>
+<BR>
+<A HREF="LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge" target="classFrame">LineMergeGraph</A>
+<BR>
+<A HREF="LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge" target="classFrame">LineMerger</A>
+<BR>
+<A HREF="LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge" target="classFrame">LineSequencer</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.linemerge
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.linemerge package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.linemerge";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.operation.linemerge
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/EdgeString.html" title="class in com.vividsolutions.jts.operation.linemerge">EdgeString</A></B></TD>
+<TD>A sequence of <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><CODE>LineMergeDirectedEdge</CODE></A>s forming one of the lines that will
+ be output by the line-merging process.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeDirectedEdge</A></B></TD>
+<TD>A <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A> of a
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge"><CODE>LineMergeGraph</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeEdge</A></B></TD>
+<TD>An edge of a <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge"><CODE>LineMergeGraph</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeGraph</A></B></TD>
+<TD>A planar graph of edges that is analyzed to sew the edges together.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMerger</A></B></TD>
+<TD>Sews together a set of fully noded LineStrings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge">LineSequencer</A></B></TD>
+<TD>Builds a sequence from a set of LineStrings so that
+ they are ordered end to end.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/linemerge/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.linemerge Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.linemerge Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.operation.linemerge
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.linemerge.<A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/EdgeString.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>EdgeString</B></A><LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><B>GraphComponent</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><B>DirectedEdge</B></A> (implements java.lang.Comparable)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.linemerge.<A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>LineMergeDirectedEdge</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><B>Edge</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.linemerge.<A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>LineMergeEdge</B></A></UL>
+</UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.linemerge.<A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>LineMerger</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.linemerge.<A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>LineSequencer</B></A><LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><B>PlanarGraph</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.linemerge.<A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>LineMergeGraph</B></A></UL>
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/distance/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+ConsistentPolygonRingChecker
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.ConsistentPolygonRingChecker class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ConsistentPolygonRingChecker";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ConsistentPolygonRingChecker.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay</FONT>
+<BR>
+Class ConsistentPolygonRingChecker</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.ConsistentPolygonRingChecker</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>ConsistentPolygonRingChecker</B><DT>extends java.lang.Object</DL>
+
+<P>
+Tests whether the polygon rings in a <A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>GeometryGraph</CODE></A>
+ are consistent.
+ Used for checking if Topology errors are present after noding.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html#ConsistentPolygonRingChecker(com.vividsolutions.jts.geomgraph.PlanarGraph)">ConsistentPolygonRingChecker</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A> graph)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html#check(int)">check</A></B>(int opCode)</CODE>
+
+<BR>
+ Tests whether the result geometry is consistent</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html#checkAll()">checkAll</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ConsistentPolygonRingChecker(com.vividsolutions.jts.geomgraph.PlanarGraph)"><!-- --></A><H3>
+ConsistentPolygonRingChecker</H3>
+<PRE>
+public <B>ConsistentPolygonRingChecker</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A> graph)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="checkAll()"><!-- --></A><H3>
+checkAll</H3>
+<PRE>
+public void <B>checkAll</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="check(int)"><!-- --></A><H3>
+check</H3>
+<PRE>
+public void <B>check</B>(int opCode)</PRE>
+<DL>
+<DD>Tests whether the result geometry is consistent
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A></CODE> - if inconsistent topology is found</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ConsistentPolygonRingChecker.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,280 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+EdgeSetNoder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.EdgeSetNoder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="EdgeSetNoder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/LineBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeSetNoder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay</FONT>
+<BR>
+Class EdgeSetNoder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.EdgeSetNoder</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>EdgeSetNoder</B><DT>extends java.lang.Object</DL>
+
+<P>
+Nodes a set of edges.
+ Takes one or more sets of edges and constructs a
+ new set of edges consisting of all the split edges created by
+ noding the input edges together
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html#EdgeSetNoder(com.vividsolutions.jts.algorithm.LineIntersector)">EdgeSetNoder</A></B>(<A HREF="../../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html#addEdges(java.util.List)">addEdges</A></B>(java.util.List edges)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html#getNodedEdges()">getNodedEdges</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EdgeSetNoder(com.vividsolutions.jts.algorithm.LineIntersector)"><!-- --></A><H3>
+EdgeSetNoder</H3>
+<PRE>
+public <B>EdgeSetNoder</B>(<A HREF="../../../../../com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A> li)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="addEdges(java.util.List)"><!-- --></A><H3>
+addEdges</H3>
+<PRE>
+public void <B>addEdges</B>(java.util.List edges)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNodedEdges()"><!-- --></A><H3>
+getNodedEdges</H3>
+<PRE>
+public java.util.List <B>getNodedEdges</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/LineBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeSetNoder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/LineBuilder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/LineBuilder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/LineBuilder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,264 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+LineBuilder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.LineBuilder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LineBuilder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay</FONT>
+<BR>
+Class LineBuilder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.LineBuilder</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>LineBuilder</B><DT>extends java.lang.Object</DL>
+
+<P>
+Forms JTS LineStrings out of a the graph of <A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>DirectedEdge</CODE></A>s
+ created by an <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay"><CODE>OverlayOp</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/LineBuilder.html#LineBuilder(com.vividsolutions.jts.operation.overlay.OverlayOp, com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.PointLocator)">LineBuilder</A></B>(<A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A> op,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm">PointLocator</A> ptLocator)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/LineBuilder.html#build(int)">build</A></B>(int opCode)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LineBuilder(com.vividsolutions.jts.operation.overlay.OverlayOp, com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.PointLocator)"><!-- --></A><H3>
+LineBuilder</H3>
+<PRE>
+public <B>LineBuilder</B>(<A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A> op,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm">PointLocator</A> ptLocator)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="build(int)"><!-- --></A><H3>
+build</H3>
+<PRE>
+public java.util.List <B>build</B>(int opCode)</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a list of the LineStrings in the result of the specified overlay operation</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,369 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+MaximalEdgeRing
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.MaximalEdgeRing class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MaximalEdgeRing";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/LineBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MaximalEdgeRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeRing">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay</FONT>
+<BR>
+Class MaximalEdgeRing</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">com.vividsolutions.jts.geomgraph.EdgeRing</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.MaximalEdgeRing</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>MaximalEdgeRing</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A></DL>
+
+<P>
+A ring of <A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>DirectedEdge</CODE></A>s which may contain nodes of degree > 2.
+ A <tt>MaximalEdgeRing</tt> may represent two different spatial entities:
+ <ul>
+ <li>a single polygon possibly containing inversions (if the ring is oriented CW)
+ <li>a single hole possibly containing exversions (if the ring is oriented CCW)
+ </ul>
+ If the MaximalEdgeRing represents a polygon,
+ the interior of the polygon is strongly connected.
+ <p>
+ These are the form of rings used to define polygons under some spatial data models.
+ However, under the OGC SFS model, <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><CODE>MinimalEdgeRing</CODE></A>s are required.
+ A MaximalEdgeRing can be converted to a list of MinimalEdgeRings using the
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html#buildMinimalRings()"><CODE>buildMinimalRings()</CODE></A> method.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><CODE>MinimalEdgeRing</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeRing"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#cga">cga</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#geometryFactory">geometryFactory</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#startDe">startDe</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html#MaximalEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.CGAlgorithms)">MaximalEdgeRing</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> start,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> cga)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html#buildMinimalRings()">buildMinimalRings</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html#getNext(com.vividsolutions.jts.geomgraph.DirectedEdge)">getNext</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html#linkDirectedEdgesForMinimalEdgeRings()">linkDirectedEdgesForMinimalEdgeRings</A></B>()</CODE>
+
+<BR>
+ For all nodes in this EdgeRing,
+ link the DirectedEdges at the node to form minimalEdgeRings</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html#setEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geomgraph.EdgeRing)">setEdgeRing</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> er)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeRing"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#addHole(com.vividsolutions.jts.geomgraph.EdgeRing)">addHole</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#addPoints(com.vividsolutions.jts.geomgraph.Edge, boolean, boolean)">addPoints</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#computePoints(com.vividsolutions.jts.geomgraph.DirectedEdge)">computePoints</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#computeRing()">computeRing</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#containsPoint(com.vividsolutions.jts.geom.Coordinate)">containsPoint</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getCoordinate(int)">getCoordinate</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getEdges()">getEdges</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getLabel()">getLabel</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getLinearRing()">getLinearRing</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getMaxNodeDegree()">getMaxNodeDegree</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getShell()">getShell</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#isHole()">isHole</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#isIsolated()">isIsolated</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#isShell()">isShell</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#mergeLabel(com.vividsolutions.jts.geomgraph.Label)">mergeLabel</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#mergeLabel(com.vividsolutions.jts.geomgraph.Label, int)">mergeLabel</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#setInResult()">setInResult</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#setShell(com.vividsolutions.jts.geomgraph.EdgeRing)">setShell</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#toPolygon(com.vividsolutions.jts.geom.GeometryFactory)">toPolygon</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MaximalEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.CGAlgorithms)"><!-- --></A><H3>
+MaximalEdgeRing</H3>
+<PRE>
+public <B>MaximalEdgeRing</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> start,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> cga)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getNext(com.vividsolutions.jts.geomgraph.DirectedEdge)"><!-- --></A><H3>
+getNext</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> <B>getNext</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getNext(com.vividsolutions.jts.geomgraph.DirectedEdge)">getNext</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geomgraph.EdgeRing)"><!-- --></A><H3>
+setEdgeRing</H3>
+<PRE>
+public void <B>setEdgeRing</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> er)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#setEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geomgraph.EdgeRing)">setEdgeRing</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="linkDirectedEdgesForMinimalEdgeRings()"><!-- --></A><H3>
+linkDirectedEdgesForMinimalEdgeRings</H3>
+<PRE>
+public void <B>linkDirectedEdgesForMinimalEdgeRings</B>()</PRE>
+<DL>
+<DD>For all nodes in this EdgeRing,
+ link the DirectedEdges at the node to form minimalEdgeRings
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="buildMinimalRings()"><!-- --></A><H3>
+buildMinimalRings</H3>
+<PRE>
+public java.util.List <B>buildMinimalRings</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/LineBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MaximalEdgeRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeRing">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,317 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+MinimalEdgeRing
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.MinimalEdgeRing class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="MinimalEdgeRing";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MinimalEdgeRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeRing">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay</FONT>
+<BR>
+Class MinimalEdgeRing</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">com.vividsolutions.jts.geomgraph.EdgeRing</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.MinimalEdgeRing</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>MinimalEdgeRing</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A></DL>
+
+<P>
+A ring of <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Edge</CODE></A>s with the property that no node
+ has degree greater than 2. These are the form of rings required
+ to represent polygons under the OGC SFS spatial data model.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><CODE>MaximalEdgeRing</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeRing"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#cga">cga</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#geometryFactory">geometryFactory</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#startDe">startDe</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html#MinimalEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.CGAlgorithms)">MinimalEdgeRing</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> start,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> cga)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html#getNext(com.vividsolutions.jts.geomgraph.DirectedEdge)">getNext</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html#setEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geomgraph.EdgeRing)">setEdgeRing</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> er)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeRing"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#addHole(com.vividsolutions.jts.geomgraph.EdgeRing)">addHole</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#addPoints(com.vividsolutions.jts.geomgraph.Edge, boolean, boolean)">addPoints</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#computePoints(com.vividsolutions.jts.geomgraph.DirectedEdge)">computePoints</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#computeRing()">computeRing</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#containsPoint(com.vividsolutions.jts.geom.Coordinate)">containsPoint</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getCoordinate(int)">getCoordinate</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getEdges()">getEdges</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getLabel()">getLabel</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getLinearRing()">getLinearRing</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getMaxNodeDegree()">getMaxNodeDegree</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getShell()">getShell</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#isHole()">isHole</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#isIsolated()">isIsolated</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#isShell()">isShell</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#mergeLabel(com.vividsolutions.jts.geomgraph.Label)">mergeLabel</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#mergeLabel(com.vividsolutions.jts.geomgraph.Label, int)">mergeLabel</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#setInResult()">setInResult</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#setShell(com.vividsolutions.jts.geomgraph.EdgeRing)">setShell</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#toPolygon(com.vividsolutions.jts.geom.GeometryFactory)">toPolygon</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MinimalEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.CGAlgorithms)"><!-- --></A><H3>
+MinimalEdgeRing</H3>
+<PRE>
+public <B>MinimalEdgeRing</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> start,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> cga)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getNext(com.vividsolutions.jts.geomgraph.DirectedEdge)"><!-- --></A><H3>
+getNext</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> <B>getNext</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#getNext(com.vividsolutions.jts.geomgraph.DirectedEdge)">getNext</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geomgraph.EdgeRing)"><!-- --></A><H3>
+setEdgeRing</H3>
+<PRE>
+public void <B>setEdgeRing</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> de,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A> er)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html#setEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geomgraph.EdgeRing)">setEdgeRing</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="MinimalEdgeRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeRing">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,266 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+OverlayNodeFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.OverlayNodeFactory class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="OverlayNodeFactory";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OverlayNodeFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay</FONT>
+<BR>
+Class OverlayNodeFactory</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">com.vividsolutions.jts.geomgraph.NodeFactory</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.OverlayNodeFactory</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>OverlayNodeFactory</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">NodeFactory</A></DL>
+
+<P>
+Creates nodes for use in the <A HREF="../../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>PlanarGraph</CODE></A>s constructed during
+ overlay operations.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html#OverlayNodeFactory()">OverlayNodeFactory</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html#createNode(com.vividsolutions.jts.geom.Coordinate)">createNode</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ The basic node constructor does not allow for incident edges</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="OverlayNodeFactory()"><!-- --></A><H3>
+OverlayNodeFactory</H3>
+<PRE>
+public <B>OverlayNodeFactory</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="createNode(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+createNode</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> <B>createNode</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">NodeFactory</A></CODE></B></DD>
+<DD>The basic node constructor does not allow for incident edges
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html#createNode(com.vividsolutions.jts.geom.Coordinate)">createNode</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">NodeFactory</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OverlayNodeFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/OverlayOp.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/OverlayOp.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/OverlayOp.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,526 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+OverlayOp
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.OverlayOp class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="OverlayOp";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PointBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OverlayOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay</FONT>
+<BR>
+Class OverlayOp</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">com.vividsolutions.jts.operation.GeometryGraphOperation</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.OverlayOp</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>OverlayOp</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A></DL>
+
+<P>
+Computes the overlay of two <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s. The overlay
+ can be used to determine any boolean combination of the geometries.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html#DIFFERENCE">DIFFERENCE</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html#INTERSECTION">INTERSECTION</A></B></CODE>
+
+<BR>
+ The spatial functions supported by this class.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html#SYMDIFFERENCE">SYMDIFFERENCE</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html#UNION">UNION</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.operation.GeometryGraphOperation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.operation.<A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#arg">arg</A>, <A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#cga">cga</A>, <A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#li">li</A>, <A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#resultPrecisionModel">resultPrecisionModel</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html#OverlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">OverlayOp</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html#getGraph()">getGraph</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html#getResultGeometry(int)">getResultGeometry</A></B>(int funcCode)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html#insertUniqueEdge(com.vividsolutions.jts.geomgraph.Edge)">insertUniqueEdge</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</CODE>
+
+<BR>
+ Insert an edge from one of the noded input graphs.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html#isCoveredByA(com.vividsolutions.jts.geom.Coordinate)">isCoveredByA</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ This method is used to decide if an L edge should be included in the result or not.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html#isCoveredByLA(com.vividsolutions.jts.geom.Coordinate)">isCoveredByLA</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ This method is used to decide if a point node should be included in the result or not.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html#isResultOfOp(int, int, int)">isResultOfOp</A></B>(int loc0,
+ int loc1,
+ int opCode)</CODE>
+
+<BR>
+ This method will handle arguments of Location.NONE correctly</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html#isResultOfOp(com.vividsolutions.jts.geomgraph.Label, int)">isResultOfOp</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label,
+ int opCode)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html#overlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, int)">overlayOp</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1,
+ int opCode)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.operation.GeometryGraphOperation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.operation.<A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#getArgGeometry(int)">getArgGeometry</A>, <A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#setComputationPrecision(com.vividsolutions.jts.geom.PrecisionModel)">setComputationPrecision</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="INTERSECTION"><!-- --></A><H3>
+INTERSECTION</H3>
+<PRE>
+public static final int <B>INTERSECTION</B></PRE>
+<DL>
+<DD>The spatial functions supported by this class.
+ These operations implement various boolean combinations of the resultants of the overlay.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.overlay.OverlayOp.INTERSECTION">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="UNION"><!-- --></A><H3>
+UNION</H3>
+<PRE>
+public static final int <B>UNION</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.overlay.OverlayOp.UNION">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DIFFERENCE"><!-- --></A><H3>
+DIFFERENCE</H3>
+<PRE>
+public static final int <B>DIFFERENCE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.overlay.OverlayOp.DIFFERENCE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="SYMDIFFERENCE"><!-- --></A><H3>
+SYMDIFFERENCE</H3>
+<PRE>
+public static final int <B>SYMDIFFERENCE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.overlay.OverlayOp.SYMDIFFERENCE">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="OverlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+OverlayOp</H3>
+<PRE>
+public <B>OverlayOp</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="overlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, int)"><!-- --></A><H3>
+overlayOp</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>overlayOp</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1,
+ int opCode)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isResultOfOp(com.vividsolutions.jts.geomgraph.Label, int)"><!-- --></A><H3>
+isResultOfOp</H3>
+<PRE>
+public static boolean <B>isResultOfOp</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> label,
+ int opCode)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isResultOfOp(int, int, int)"><!-- --></A><H3>
+isResultOfOp</H3>
+<PRE>
+public static boolean <B>isResultOfOp</B>(int loc0,
+ int loc1,
+ int opCode)</PRE>
+<DL>
+<DD>This method will handle arguments of Location.NONE correctly
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the locations correspond to the opCode</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getResultGeometry(int)"><!-- --></A><H3>
+getResultGeometry</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getResultGeometry</B>(int funcCode)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGraph()"><!-- --></A><H3>
+getGraph</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A> <B>getGraph</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="insertUniqueEdge(com.vividsolutions.jts.geomgraph.Edge)"><!-- --></A><H3>
+insertUniqueEdge</H3>
+<PRE>
+protected void <B>insertUniqueEdge</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> e)</PRE>
+<DL>
+<DD>Insert an edge from one of the noded input graphs.
+ Checks edges that are inserted to see if an
+ identical edge already exists.
+ If so, the edge is not inserted, but its label is merged
+ with the existing edge.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCoveredByLA(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+isCoveredByLA</H3>
+<PRE>
+public boolean <B>isCoveredByLA</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD>This method is used to decide if a point node should be included in the result or not.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the coord point is covered by a result Line or Area geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isCoveredByA(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+isCoveredByA</H3>
+<PRE>
+public boolean <B>isCoveredByA</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD>This method is used to decide if an L edge should be included in the result or not.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if the coord point is covered by a result Area geometry</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PointBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OverlayOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/PointBuilder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/PointBuilder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/PointBuilder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+PointBuilder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.PointBuilder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="PointBuilder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PolygonBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PointBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay</FONT>
+<BR>
+Class PointBuilder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.PointBuilder</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>PointBuilder</B><DT>extends java.lang.Object</DL>
+
+<P>
+Constructs <A HREF="../../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><CODE>Point</CODE></A>s from the nodes of an overlay graph.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PointBuilder.html#PointBuilder(com.vividsolutions.jts.operation.overlay.OverlayOp, com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.PointLocator)">PointBuilder</A></B>(<A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A> op,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm">PointLocator</A> ptLocator)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PointBuilder.html#build(int)">build</A></B>(int opCode)</CODE>
+
+<BR>
+ Computes the Point geometries which will appear in the result,
+ given the specified overlay operation.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="PointBuilder(com.vividsolutions.jts.operation.overlay.OverlayOp, com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.PointLocator)"><!-- --></A><H3>
+PointBuilder</H3>
+<PRE>
+public <B>PointBuilder</B>(<A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A> op,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm">PointLocator</A> ptLocator)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="build(int)"><!-- --></A><H3>
+build</H3>
+<PRE>
+public java.util.List <B>build</B>(int opCode)</PRE>
+<DL>
+<DD>Computes the Point geometries which will appear in the result,
+ given the specified overlay operation.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a list of the Points objects in the result</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PolygonBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PointBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/PolygonBuilder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/PolygonBuilder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/PolygonBuilder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,333 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+PolygonBuilder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.PolygonBuilder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="PolygonBuilder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PointBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PolygonBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay</FONT>
+<BR>
+Class PolygonBuilder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.PolygonBuilder</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>PolygonBuilder</B><DT>extends java.lang.Object</DL>
+
+<P>
+Forms <A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A>s out of a graph of <A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>DirectedEdge</CODE></A>s.
+ The edges to use are marked as being in the result Area.
+ <p>
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PolygonBuilder.html#PolygonBuilder(com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.CGAlgorithms)">PolygonBuilder</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> cga)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PolygonBuilder.html#add(java.util.Collection, java.util.Collection)">add</A></B>(java.util.Collection dirEdges,
+ java.util.Collection nodes)</CODE>
+
+<BR>
+ Add a set of edges and nodes, which form a graph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PolygonBuilder.html#add(com.vividsolutions.jts.geomgraph.PlanarGraph)">add</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A> graph)</CODE>
+
+<BR>
+ Add a complete graph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PolygonBuilder.html#containsPoint(com.vividsolutions.jts.geom.Coordinate)">containsPoint</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</CODE>
+
+<BR>
+ Checks the current set of shells (with their associated holes) to
+ see if any of them contain the point.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PolygonBuilder.html#getPolygons()">getPolygons</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="PolygonBuilder(com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.CGAlgorithms)"><!-- --></A><H3>
+PolygonBuilder</H3>
+<PRE>
+public <B>PolygonBuilder</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geometryFactory,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> cga)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(com.vividsolutions.jts.geomgraph.PlanarGraph)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A> graph)</PRE>
+<DL>
+<DD>Add a complete graph.
+ The graph is assumed to contain one or more polygons,
+ possibly with holes.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(java.util.Collection, java.util.Collection)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(java.util.Collection dirEdges,
+ java.util.Collection nodes)</PRE>
+<DL>
+<DD>Add a set of edges and nodes, which form a graph.
+ The graph is assumed to contain one or more polygons,
+ possibly with holes.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPolygons()"><!-- --></A><H3>
+getPolygons</H3>
+<PRE>
+public java.util.List <B>getPolygons</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="containsPoint(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+containsPoint</H3>
+<PRE>
+public boolean <B>containsPoint</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p)</PRE>
+<DL>
+<DD>Checks the current set of shells (with their associated holes) to
+ see if any of them contain the point.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PointBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PolygonBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.overlay
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/operation/overlay/package-summary.html" target="classFrame">com.vividsolutions.jts.operation.overlay</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="ConsistentPolygonRingChecker.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">ConsistentPolygonRingChecker</A>
+<BR>
+<A HREF="EdgeSetNoder.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">EdgeSetNoder</A>
+<BR>
+<A HREF="LineBuilder.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">LineBuilder</A>
+<BR>
+<A HREF="MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">MaximalEdgeRing</A>
+<BR>
+<A HREF="MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">MinimalEdgeRing</A>
+<BR>
+<A HREF="OverlayNodeFactory.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">OverlayNodeFactory</A>
+<BR>
+<A HREF="OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">OverlayOp</A>
+<BR>
+<A HREF="PointBuilder.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">PointBuilder</A>
+<BR>
+<A HREF="PolygonBuilder.html" title="class in com.vividsolutions.jts.operation.overlay" target="classFrame">PolygonBuilder</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,225 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.overlay
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.overlay";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/snap/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.operation.overlay
+</H2>
+Contains classes that perform a topological overlay to compute boolean spatial functions.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html" title="class in com.vividsolutions.jts.operation.overlay">ConsistentPolygonRingChecker</A></B></TD>
+<TD>Tests whether the polygon rings in a <A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>GeometryGraph</CODE></A>
+ are consistent.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html" title="class in com.vividsolutions.jts.operation.overlay">EdgeSetNoder</A></B></TD>
+<TD>Nodes a set of edges.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/LineBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">LineBuilder</A></B></TD>
+<TD>Forms JTS LineStrings out of a the graph of <A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>DirectedEdge</CODE></A>s
+ created by an <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay"><CODE>OverlayOp</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MaximalEdgeRing</A></B></TD>
+<TD>A ring of <A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>DirectedEdge</CODE></A>s which may contain nodes of degree > 2.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MinimalEdgeRing</A></B></TD>
+<TD>A ring of <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Edge</CODE></A>s with the property that no node
+ has degree greater than 2.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayNodeFactory</A></B></TD>
+<TD>Creates nodes for use in the <A HREF="../../../../../com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>PlanarGraph</CODE></A>s constructed during
+ overlay operations.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A></B></TD>
+<TD>Computes the overlay of two <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PointBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">PointBuilder</A></B></TD>
+<TD>Constructs <A HREF="../../../../../com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><CODE>Point</CODE></A>s from the nodes of an overlay graph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PolygonBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">PolygonBuilder</A></B></TD>
+<TD>Forms <A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A>s out of a graph of <A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>DirectedEdge</CODE></A>s.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.operation.overlay Description
+</H2>
+
+<P>
+Contains classes that perform a topological overlay to compute boolean spatial functions.
+<P>
+The Overlay Algorithm is used in spatial analysis methods for computing set-theoretic
+operations (boolean combinations) of input <CODE>Geometry</CODE>s. The algorithm for
+computing the overlay uses the intersection operations supported by topology graphs.
+To compute an overlay it is necessary to explicitly compute the resultant graph formed
+by the computed intersections.
+<P>
+The algorithm to compute a set-theoretic spatial analysis method has the following steps:
+<UL>
+ <LI>Build topology graphs of the two input geometries. For each geometry all
+ self-intersection nodes are computed and added to the graph.
+ <LI>Compute nodes for all intersections between edges and nodes of the graphs.
+ <LI>Compute the labeling for the computed nodes by merging the labels from the input graphs.
+ <LI>Compute new edges between the compute intersection nodes. Label the edges appropriately.
+ <LI>Build the resultant graph from the new nodes and edges.
+ <LI>Compute the labeling for isolated components of the graph. Add the
+ isolated components to the resultant graph.
+ <LI>Compute the result of the boolean combination by selecting the node and edges
+ with the appropriate labels. Polygonize areas and sew linear geometries together.
+</UL>
+
+<h2>Package Specification</h2>
+
+<ul>
+ <li>Java Topology Suite Technical Specifications
+ <li><A HREF="http://www.opengis.org/techno/specs.htm">
+ OpenGIS Simple Features Specification for SQL</A>
+</ul>
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/snap/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.overlay Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.overlay Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/snap/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.operation.overlay
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="../../../../../com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html" title="class in com.vividsolutions.jts.operation.overlay"><B>ConsistentPolygonRingChecker</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeRing</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><B>MaximalEdgeRing</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="../../../../../com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><B>MinimalEdgeRing</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="../../../../../com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>EdgeSetNoder</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.<A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation"><B>GeometryGraphOperation</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay"><B>OverlayOp</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="../../../../../com/vividsolutions/jts/operation/overlay/LineBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>LineBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph"><B>NodeFactory</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="../../../../../com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html" title="class in com.vividsolutions.jts.operation.overlay"><B>OverlayNodeFactory</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PointBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PointBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="../../../../../com/vividsolutions/jts/operation/overlay/PolygonBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PolygonBuilder</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/linemerge/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/snap/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,378 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+GeometrySnapper
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.snap.GeometrySnapper class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GeometrySnapper";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometrySnapper.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay.snap</FONT>
+<BR>
+Class GeometrySnapper</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.snap.GeometrySnapper</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>GeometrySnapper</B><DT>extends java.lang.Object</DL>
+
+<P>
+Snaps the vertices and segments of a <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> to another Geometry's vertices.
+ Improves robustness for overlay operations, by eliminating
+ nearly parallel edges (which cause problems during noding and intersection calculation).
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html#GeometrySnapper(com.vividsolutions.jts.geom.Geometry)">GeometrySnapper</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html#computeOverlaySnapTolerance(com.vividsolutions.jts.geom.Geometry)">computeOverlaySnapTolerance</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Estimates the snap tolerance for a Geometry, taking into account its precision model.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html#computeOverlaySnapTolerance(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">computeOverlaySnapTolerance</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html#computeSizeBasedSnapTolerance(com.vividsolutions.jts.geom.Geometry)">computeSizeBasedSnapTolerance</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html#extractTargetCoordinates(com.vividsolutions.jts.geom.Geometry)">extractTargetCoordinates</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html#snap(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, double)">snap</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ double snapTolerance)</CODE>
+
+<BR>
+ Snaps two geometries together with a given tolerance.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html#snapTo(com.vividsolutions.jts.geom.Geometry, double)">snapTo</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ double snapTolerance)</CODE>
+
+<BR>
+ Snaps the vertices in the component <A HREF="../../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>s
+ of the source geometry
+ to the vertices of the given geometry.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GeometrySnapper(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+GeometrySnapper</H3>
+<PRE>
+public <B>GeometrySnapper</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="computeOverlaySnapTolerance(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+computeOverlaySnapTolerance</H3>
+<PRE>
+public static double <B>computeOverlaySnapTolerance</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Estimates the snap tolerance for a Geometry, taking into account its precision model.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - a Geometry
+<DT><B>Returns:</B><DD>the estimated snap tolerance</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeSizeBasedSnapTolerance(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+computeSizeBasedSnapTolerance</H3>
+<PRE>
+public static double <B>computeSizeBasedSnapTolerance</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeOverlaySnapTolerance(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+computeOverlaySnapTolerance</H3>
+<PRE>
+public static double <B>computeOverlaySnapTolerance</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="snap(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+snap</H3>
+<PRE>
+public static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>[] <B>snap</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ double snapTolerance)</PRE>
+<DL>
+<DD>Snaps two geometries together with a given tolerance.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g0</CODE> - a geometry to snap<DD><CODE>g1</CODE> - a geometry to snap<DD><CODE>snapTolerance</CODE> - the tolerance to use
+<DT><B>Returns:</B><DD>the snapped geometries</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="snapTo(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+snapTo</H3>
+<PRE>
+public <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>snapTo</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ double snapTolerance)</PRE>
+<DL>
+<DD>Snaps the vertices in the component <A HREF="../../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>s
+ of the source geometry
+ to the vertices of the given geometry.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> -
+<DT><B>Returns:</B><DD>a new snapped Geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="extractTargetCoordinates(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+extractTargetCoordinates</H3>
+<PRE>
+public <A HREF="../../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>extractTargetCoordinates</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometrySnapper.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,292 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:52 PST 2006 -->
+<TITLE>
+LineStringSnapper
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.snap.LineStringSnapper class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LineStringSnapper";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineStringSnapper.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay.snap</FONT>
+<BR>
+Class LineStringSnapper</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.snap.LineStringSnapper</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>LineStringSnapper</B><DT>extends java.lang.Object</DL>
+
+<P>
+Snaps the vertices and segments of a LineString to a set of target snap vertices.
+ A snapping distance tolerance is used to control where snapping is performed.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html#LineStringSnapper(com.vividsolutions.jts.geom.Coordinate[], double)">LineStringSnapper</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] srcPts,
+ double snapTolerance)</CODE>
+
+<BR>
+ Creates a new snapper using the given points
+ as target snap points.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html#LineStringSnapper(com.vividsolutions.jts.geom.LineString, double)">LineStringSnapper</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> line,
+ double snapTolerance)</CODE>
+
+<BR>
+ Creates a new snapper using the points in the given <A HREF="../../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>
+ as target snap points.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html#snapTo(com.vividsolutions.jts.geom.Coordinate[])">snapTo</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] snapPts)</CODE>
+
+<BR>
+ Snaps the vertices and segments of the source LineString
+ to the given set of target snap points.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LineStringSnapper(com.vividsolutions.jts.geom.LineString, double)"><!-- --></A><H3>
+LineStringSnapper</H3>
+<PRE>
+public <B>LineStringSnapper</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> line,
+ double snapTolerance)</PRE>
+<DL>
+<DD>Creates a new snapper using the points in the given <A HREF="../../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>
+ as target snap points.
+<P>
+<DT><B>Parameters:</B><DD><CODE>line</CODE> - a LineString<DD><CODE>snapTolerance</CODE> - the snap tolerance to use</DL>
+<HR>
+
+<A NAME="LineStringSnapper(com.vividsolutions.jts.geom.Coordinate[], double)"><!-- --></A><H3>
+LineStringSnapper</H3>
+<PRE>
+public <B>LineStringSnapper</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] srcPts,
+ double snapTolerance)</PRE>
+<DL>
+<DD>Creates a new snapper using the given points
+ as target snap points.
+<P>
+<DT><B>Parameters:</B><DD><CODE>srcPts</CODE> - the points to snap to<DD><CODE>snapTolerance</CODE> - the snap tolerance to use</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="snapTo(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+snapTo</H3>
+<PRE>
+public <A HREF="../../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>snapTo</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] snapPts)</PRE>
+<DL>
+<DD>Snaps the vertices and segments of the source LineString
+ to the given set of target snap points.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>snapPts</CODE> - the vertices to snap to
+<DT><B>Returns:</B><DD>a new snapped LineString</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineStringSnapper.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,375 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+SnapIfNeededOverlayOp
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.snap.SnapIfNeededOverlayOp class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SnapIfNeededOverlayOp";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SnapIfNeededOverlayOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay.snap</FONT>
+<BR>
+Class SnapIfNeededOverlayOp</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.snap.SnapIfNeededOverlayOp</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SnapIfNeededOverlayOp</B><DT>extends java.lang.Object</DL>
+
+<P>
+Performs an overlay operation using snapping and enhanced precision
+ to improve the robustness of the result.
+ This class only uses snapping
+ if an error is detected when running the standard JTS overlay code.
+ Errors detected include thrown exceptions
+ (in particular, <A HREF="../../../../../../com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom"><CODE>TopologyException</CODE></A>)
+ and invalid overlay computations.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html#SnapIfNeededOverlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">SnapIfNeededOverlayOp</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g2)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html#difference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">difference</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html#getResultGeometry(int)">getResultGeometry</A></B>(int opCode)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html#intersection(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">intersection</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html#overlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, int)">overlayOp</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ int opCode)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html#symDifference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">symDifference</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html#union(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">union</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SnapIfNeededOverlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+SnapIfNeededOverlayOp</H3>
+<PRE>
+public <B>SnapIfNeededOverlayOp</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g2)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="overlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, int)"><!-- --></A><H3>
+overlayOp</H3>
+<PRE>
+public static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>overlayOp</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ int opCode)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="intersection(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+intersection</H3>
+<PRE>
+public static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>intersection</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="union(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+union</H3>
+<PRE>
+public static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>union</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="difference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+difference</H3>
+<PRE>
+public static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>difference</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="symDifference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+symDifference</H3>
+<PRE>
+public static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>symDifference</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getResultGeometry(int)"><!-- --></A><H3>
+getResultGeometry</H3>
+<PRE>
+public <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getResultGeometry</B>(int opCode)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SnapIfNeededOverlayOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,375 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+SnapOverlayOp
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.snap.SnapOverlayOp class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SnapOverlayOp";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SnapOverlayOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay.snap</FONT>
+<BR>
+Class SnapOverlayOp</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.snap.SnapOverlayOp</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SnapOverlayOp</B><DT>extends java.lang.Object</DL>
+
+<P>
+Performs an overlay operation using snapping and enhanced precision
+ to improve the robustness of the result.
+ This class <i>always</i> uses snapping.
+ This is less performant than the standard JTS overlay code,
+ and may even introduce errors which were not present in the original data.
+ For this reason, this class should only be used
+ if the standard overlay code fails to produce a correct result.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html#SnapOverlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">SnapOverlayOp</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g2)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html#difference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">difference</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html#getResultGeometry(int)">getResultGeometry</A></B>(int opCode)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html#intersection(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">intersection</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html#overlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, int)">overlayOp</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ int opCode)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html#symDifference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">symDifference</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html#union(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">union</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SnapOverlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+SnapOverlayOp</H3>
+<PRE>
+public <B>SnapOverlayOp</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g2)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="overlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, int)"><!-- --></A><H3>
+overlayOp</H3>
+<PRE>
+public static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>overlayOp</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ int opCode)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="intersection(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+intersection</H3>
+<PRE>
+public static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>intersection</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="union(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+union</H3>
+<PRE>
+public static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>union</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="difference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+difference</H3>
+<PRE>
+public static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>difference</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="symDifference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+symDifference</H3>
+<PRE>
+public static <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>symDifference</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getResultGeometry(int)"><!-- --></A><H3>
+getResultGeometry</H3>
+<PRE>
+public <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getResultGeometry</B>(int opCode)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SnapOverlayOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.overlay.snap
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.snap package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/package-summary.html" target="classFrame">com.vividsolutions.jts.operation.overlay.snap</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap" target="classFrame">GeometrySnapper</A>
+<BR>
+<A HREF="LineStringSnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap" target="classFrame">LineStringSnapper</A>
+<BR>
+<A HREF="SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap" target="classFrame">SnapIfNeededOverlayOp</A>
+<BR>
+<A HREF="SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap" target="classFrame">SnapOverlayOp</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,160 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.overlay.snap
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.snap package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.overlay.snap";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.operation.overlay.snap
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">GeometrySnapper</A></B></TD>
+<TD>Snaps the vertices and segments of a <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> to another Geometry's vertices.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">LineStringSnapper</A></B></TD>
+<TD>Snaps the vertices and segments of a LineString to a set of target snap vertices.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapIfNeededOverlayOp</A></B></TD>
+<TD>Performs an overlay operation using snapping and enhanced precision
+ to improve the robustness of the result.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapOverlayOp</A></B></TD>
+<TD>Performs an overlay operation using snapping and enhanced precision
+ to improve the robustness of the result.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/snap/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.overlay.snap Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.overlay.snap Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.operation.overlay.snap
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.snap.<A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>GeometrySnapper</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.snap.<A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>LineStringSnapper</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.snap.<A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>SnapIfNeededOverlayOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.snap.<A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>SnapOverlayOp</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,268 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+FuzzyPointLocator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.validate.FuzzyPointLocator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="FuzzyPointLocator";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="FuzzyPointLocator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay.validate</FONT>
+<BR>
+Class FuzzyPointLocator</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.validate.FuzzyPointLocator</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>FuzzyPointLocator</B><DT>extends java.lang.Object</DL>
+
+<P>
+Finds the most likely <A HREF="../../../../../../com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><CODE>Location</CODE></A> of a point relative to
+ the polygonal components of a geometry, using a tolerance value.
+ If a point is not clearly in the Interior or Exterior,
+ it is considered to be on the Boundary.
+ In other words, if the point is within the tolerance of the Boundary,
+ it is considered to be on the Boundary; otherwise,
+ whether it is Interior or Exterior is determined directly.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html#FuzzyPointLocator(com.vividsolutions.jts.geom.Geometry, double)">FuzzyPointLocator</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ double boundaryDistanceTolerance)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html#getLocation(com.vividsolutions.jts.geom.Coordinate)">getLocation</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="FuzzyPointLocator(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+FuzzyPointLocator</H3>
+<PRE>
+public <B>FuzzyPointLocator</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ double boundaryDistanceTolerance)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getLocation(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+getLocation</H3>
+<PRE>
+public int <B>getLocation</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="FuzzyPointLocator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+OffsetPointGenerator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.validate.OffsetPointGenerator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="OffsetPointGenerator";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OffsetPointGenerator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay.validate</FONT>
+<BR>
+Class OffsetPointGenerator</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.validate.OffsetPointGenerator</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>OffsetPointGenerator</B><DT>extends java.lang.Object</DL>
+
+<P>
+Generates points offset by a given distance
+ from both sides of the midpoint of
+ all segments in a <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+ Can be used to generate probe points for
+ determining whether a polygonal overlay result
+ is incorrect.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html#OffsetPointGenerator(com.vividsolutions.jts.geom.Geometry, double)">OffsetPointGenerator</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ double offsetDistance)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html#getPoints()">getPoints</A></B>()</CODE>
+
+<BR>
+ Gets the computed offset points.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="OffsetPointGenerator(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+OffsetPointGenerator</H3>
+<PRE>
+public <B>OffsetPointGenerator</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g,
+ double offsetDistance)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getPoints()"><!-- --></A><H3>
+getPoints</H3>
+<PRE>
+public java.util.List <B>getPoints</B>()</PRE>
+<DL>
+<DD>Gets the computed offset points.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>List<Coordinate></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OffsetPointGenerator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,316 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+OverlayResultValidator
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.validate.OverlayResultValidator class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="OverlayResultValidator";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OverlayResultValidator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.overlay.validate</FONT>
+<BR>
+Class OverlayResultValidator</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.overlay.validate.OverlayResultValidator</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>OverlayResultValidator</B><DT>extends java.lang.Object</DL>
+
+<P>
+Validates that the result of an overlay operation is
+ geometrically correct within a given tolerance.
+ Uses fuzzy point location to find points which are .
+ <p>
+ This algorithm is only useful where the inputs are polygonal.
+ This is a heuristic test, and may return false positive results
+ (I.e. it may fail to detect an invalid result.)
+ It should never return a false negative result, however
+ (I.e. it should never report a valid result as invalid.)
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay"><CODE>OverlayOp</CODE></A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html#OverlayResultValidator(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">OverlayResultValidator</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> a,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> b,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> result)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html#getInvalidLocation()">getInvalidLocation</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html#isValid(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, int, com.vividsolutions.jts.geom.Geometry)">isValid</A></B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> a,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> b,
+ int overlayOp,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> result)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html#isValid(int)">isValid</A></B>(int overlayOp)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="OverlayResultValidator(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+OverlayResultValidator</H3>
+<PRE>
+public <B>OverlayResultValidator</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> a,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> b,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> result)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isValid(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, int, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+isValid</H3>
+<PRE>
+public static boolean <B>isValid</B>(<A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> a,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> b,
+ int overlayOp,
+ <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> result)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isValid(int)"><!-- --></A><H3>
+isValid</H3>
+<PRE>
+public boolean <B>isValid</B>(int overlayOp)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInvalidLocation()"><!-- --></A><H3>
+getInvalidLocation</H3>
+<PRE>
+public <A HREF="../../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getInvalidLocation</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OverlayResultValidator.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.overlay.validate
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.validate package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/package-summary.html" target="classFrame">com.vividsolutions.jts.operation.overlay.validate</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="FuzzyPointLocator.html" title="class in com.vividsolutions.jts.operation.overlay.validate" target="classFrame">FuzzyPointLocator</A>
+<BR>
+<A HREF="OffsetPointGenerator.html" title="class in com.vividsolutions.jts.operation.overlay.validate" target="classFrame">OffsetPointGenerator</A>
+<BR>
+<A HREF="OverlayResultValidator.html" title="class in com.vividsolutions.jts.operation.overlay.validate" target="classFrame">OverlayResultValidator</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.overlay.validate
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.overlay.validate package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.overlay.validate";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/polygonize/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.operation.overlay.validate
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">FuzzyPointLocator</A></B></TD>
+<TD>Finds the most likely <A HREF="../../../../../../com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><CODE>Location</CODE></A> of a point relative to
+ the polygonal components of a geometry, using a tolerance value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">OffsetPointGenerator</A></B></TD>
+<TD>Generates points offset by a given distance
+ from both sides of the midpoint of
+ all segments in a <A HREF="../../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">OverlayResultValidator</A></B></TD>
+<TD>Validates that the result of an overlay operation is
+ geometrically correct within a given tolerance.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/polygonize/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/overlay/validate/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.overlay.validate Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.overlay.validate Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/polygonize/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.operation.overlay.validate
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.validate.<A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>FuzzyPointLocator</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.validate.<A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>OffsetPointGenerator</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.validate.<A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>OverlayResultValidator</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/overlay/snap/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../../com/vividsolutions/jts/operation/polygonize/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/vividsolutions/jts/operation/package-summary.html" target="classFrame">com.vividsolutions.jts.operation</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="BoundaryOp.html" title="class in com.vividsolutions.jts.operation" target="classFrame">BoundaryOp</A>
+<BR>
+<A HREF="GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation" target="classFrame">GeometryGraphOperation</A>
+<BR>
+<A HREF="IsSimpleOp.html" title="class in com.vividsolutions.jts.operation" target="classFrame">IsSimpleOp</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/snapround/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/operation/buffer/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.operation
+</H2>
+Provides classes for implementing operations on geometries
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/operation/BoundaryOp.html" title="class in com.vividsolutions.jts.operation">BoundaryOp</A></B></TD>
+<TD>Computes the boundary of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A></B></TD>
+<TD>The base class for operations that require <A HREF="../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>GeometryGraph</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation">IsSimpleOp</A></B></TD>
+<TD>Tests whether a <code>Geometry</code> is simple.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.operation Description
+</H2>
+
+<P>
+Provides classes for implementing operations on geometries
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/snapround/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/operation/buffer/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/snapround/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/operation/buffer/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.operation
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.<A HREF="../../../../com/vividsolutions/jts/operation/BoundaryOp.html" title="class in com.vividsolutions.jts.operation"><B>BoundaryOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.<A HREF="../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation"><B>GeometryGraphOperation</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.<A HREF="../../../../com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation"><B>IsSimpleOp</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/noding/snapround/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/operation/buffer/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/EdgeRing.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/EdgeRing.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/EdgeRing.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,480 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+EdgeRing
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.polygonize.EdgeRing class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="EdgeRing";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.polygonize</FONT>
+<BR>
+Class EdgeRing</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.polygonize.EdgeRing</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>EdgeRing</B><DT>extends java.lang.Object</DL>
+
+<P>
+Represents a ring of <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize"><CODE>PolygonizeDirectedEdge</CODE></A>s which form
+ a ring of a polygon. The ring may be either an outer shell or a hole.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html#EdgeRing(com.vividsolutions.jts.geom.GeometryFactory)">EdgeRing</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html#add(com.vividsolutions.jts.planargraph.DirectedEdge)">add</A></B>(<A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de)</CODE>
+
+<BR>
+ Adds a <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A> which is known to form part of this ring.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html#addHole(com.vividsolutions.jts.geom.LinearRing)">addHole</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> hole)</CODE>
+
+<BR>
+ Adds a hole to the polygon formed by this ring.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html#findEdgeRingContaining(com.vividsolutions.jts.operation.polygonize.EdgeRing, java.util.List)">findEdgeRingContaining</A></B>(<A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A> testEr,
+ java.util.List shellList)</CODE>
+
+<BR>
+ Find the innermost enclosing shell EdgeRing containing the argument EdgeRing, if any.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html#getLineString()">getLineString</A></B>()</CODE>
+
+<BR>
+ Gets the coordinates for this ring as a <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html#getPolygon()">getPolygon</A></B>()</CODE>
+
+<BR>
+ Computes the <A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A> formed by this ring and any contained holes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html#getRing()">getRing</A></B>()</CODE>
+
+<BR>
+ Returns this ring as a <A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A>, or null if an Exception occurs while
+ creating it (such as a topology problem).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html#isHole()">isHole</A></B>()</CODE>
+
+<BR>
+ Tests whether this ring is a hole.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html#isInList(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])">isInList</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</CODE>
+
+<BR>
+ Tests whether a given point is in an array of points.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html#isValid()">isValid</A></B>()</CODE>
+
+<BR>
+ Tests if the <A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A> ring formed by this edge ring is topologically valid.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html#ptNotInList(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate[])">ptNotInList</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] testPts,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</CODE>
+
+<BR>
+ Finds a point in a list of points which is not contained in another list of points</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EdgeRing(com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+EdgeRing</H3>
+<PRE>
+public <B>EdgeRing</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> factory)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="findEdgeRingContaining(com.vividsolutions.jts.operation.polygonize.EdgeRing, java.util.List)"><!-- --></A><H3>
+findEdgeRingContaining</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A> <B>findEdgeRingContaining</B>(<A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A> testEr,
+ java.util.List shellList)</PRE>
+<DL>
+<DD>Find the innermost enclosing shell EdgeRing containing the argument EdgeRing, if any.
+ The innermost enclosing ring is the <i>smallest</i> enclosing ring.
+ The algorithm used depends on the fact that:
+ <br>
+ ring A contains ring B iff envelope(ring A) contains envelope(ring B)
+ <br>
+ This routine is only safe to use if the chosen point of the hole
+ is known to be properly contained in a shell
+ (which is guaranteed to be the case if the hole does not touch its shell)
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>containing EdgeRing, if there is one</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="ptNotInList(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+ptNotInList</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>ptNotInList</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] testPts,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</PRE>
+<DL>
+<DD>Finds a point in a list of points which is not contained in another list of points
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>testPts</CODE> - the <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s to test<DD><CODE>pts</CODE> - an array of <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s to test the input points against
+<DT><B>Returns:</B><DD>a <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> from <code>testPts</code> which is not in <code>pts</code>,</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isInList(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+isInList</H3>
+<PRE>
+public static boolean <B>isInList</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</PRE>
+<DL>
+<DD>Tests whether a given point is in an array of points.
+ Uses a value-based test.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pt</CODE> - a <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> for the test point<DD><CODE>pts</CODE> - an array of <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s to test
+<DT><B>Returns:</B><DD><code>true</code> if the point is in the array</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.planargraph.DirectedEdge)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de)</PRE>
+<DL>
+<DD>Adds a <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A> which is known to form part of this ring.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>de</CODE> - the <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A> to add.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isHole()"><!-- --></A><H3>
+isHole</H3>
+<PRE>
+public boolean <B>isHole</B>()</PRE>
+<DL>
+<DD>Tests whether this ring is a hole.
+ Due to the way the edges in the polyongization graph are linked,
+ a ring is a hole if it is oriented counter-clockwise.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this ring is a hole</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addHole(com.vividsolutions.jts.geom.LinearRing)"><!-- --></A><H3>
+addHole</H3>
+<PRE>
+public void <B>addHole</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> hole)</PRE>
+<DL>
+<DD>Adds a hole to the polygon formed by this ring.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>hole</CODE> - the <A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A> forming the hole.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPolygon()"><!-- --></A><H3>
+getPolygon</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> <B>getPolygon</B>()</PRE>
+<DL>
+<DD>Computes the <A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A> formed by this ring and any contained holes.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the <A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A> formed by this ring and its holes.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isValid()"><!-- --></A><H3>
+isValid</H3>
+<PRE>
+public boolean <B>isValid</B>()</PRE>
+<DL>
+<DD>Tests if the <A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A> ring formed by this edge ring is topologically valid.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLineString()"><!-- --></A><H3>
+getLineString</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>getLineString</B>()</PRE>
+<DL>
+<DD>Gets the coordinates for this ring as a <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>.
+ Used to return the coordinates in this ring
+ as a valid geometry, when it has been detected that the ring is topologically
+ invalid.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> containing the coordinates in this ring</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getRing()"><!-- --></A><H3>
+getRing</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> <B>getRing</B>()</PRE>
+<DL>
+<DD>Returns this ring as a <A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A>, or null if an Exception occurs while
+ creating it (such as a topology problem). Details of problems are written to
+ standard output.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeRing.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,435 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+PolygonizeDirectedEdge
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.polygonize.PolygonizeDirectedEdge class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="PolygonizeDirectedEdge";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PolygonizeDirectedEdge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.planargraph.DirectedEdge">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.polygonize</FONT>
+<BR>
+Class PolygonizeDirectedEdge</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">com.vividsolutions.jts.planargraph.GraphComponent</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">com.vividsolutions.jts.planargraph.DirectedEdge</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.polygonize.PolygonizeDirectedEdge</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>PolygonizeDirectedEdge</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A></DL>
+
+<P>
+A <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A> of a <CODE>PolygonizeGraph</CODE>, which represents
+ an edge of a polygon formed by the graph.
+ May be logically deleted from the graph by setting the <code>marked</code> flag.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.planargraph.DirectedEdge"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#angle">angle</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#cga">cga</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#edgeDirection">edgeDirection</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#from">from</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#p0">p0</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#p1">p1</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#parentEdge">parentEdge</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#quadrant">quadrant</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#sym">sym</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#to">to</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.planargraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked">isMarked</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited">isVisited</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html#PolygonizeDirectedEdge(com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.geom.Coordinate, boolean)">PolygonizeDirectedEdge</A></B>(<A HREF="../../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> from,
+ <A HREF="../../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> to,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> directionPt,
+ boolean edgeDirection)</CODE>
+
+<BR>
+ Constructs a directed edge connecting the <code>from</code> node to the
+ <code>to</code> node.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html#getLabel()">getLabel</A></B>()</CODE>
+
+<BR>
+ Returns the identifier attached to this directed edge.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize">PolygonizeDirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html#getNext()">getNext</A></B>()</CODE>
+
+<BR>
+ Returns the next directed edge in the EdgeRing that this directed edge is a member
+ of.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html#isInRing()">isInRing</A></B>()</CODE>
+
+<BR>
+ Returns the ring of directed edges that this directed edge is
+ a member of, or null if the ring has not been set.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html#setLabel(long)">setLabel</A></B>(long label)</CODE>
+
+<BR>
+ Attaches an identifier to this directed edge.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html#setNext(com.vividsolutions.jts.operation.polygonize.PolygonizeDirectedEdge)">setNext</A></B>(<A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize">PolygonizeDirectedEdge</A> next)</CODE>
+
+<BR>
+ Sets the next directed edge in the EdgeRing that this directed edge is a member
+ of.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html#setRing(com.vividsolutions.jts.operation.polygonize.EdgeRing)">setRing</A></B>(<A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A> edgeRing)</CODE>
+
+<BR>
+ Sets the ring of directed edges that this directed edge is
+ a member of.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.planargraph.DirectedEdge"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#compareDirection(com.vividsolutions.jts.planargraph.DirectedEdge)">compareDirection</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#compareTo(java.lang.Object)">compareTo</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getAngle()">getAngle</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getCoordinate()">getCoordinate</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getDirectionPt()">getDirectionPt</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getEdge()">getEdge</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getEdgeDirection()">getEdgeDirection</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getFromNode()">getFromNode</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getQuadrant()">getQuadrant</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getSym()">getSym</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getToNode()">getToNode</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#isRemoved()">isRemoved</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#print(java.io.PrintStream)">print</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#setEdge(com.vividsolutions.jts.planargraph.Edge)">setEdge</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#setSym(com.vividsolutions.jts.planargraph.DirectedEdge)">setSym</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#toEdges(java.util.Collection)">toEdges</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.planargraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getComponentWithVisitedState(java.util.Iterator, boolean)">getComponentWithVisitedState</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getContext()">getContext</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getData()">getData</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked()">isMarked</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited()">isVisited</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setContext(java.lang.Object)">setContext</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setData(java.lang.Object)">setData</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(boolean)">setMarked</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(java.util.Iterator, boolean)">setMarked</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(boolean)">setVisited</A>, <A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(java.util.Iterator, boolean)">setVisited</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="PolygonizeDirectedEdge(com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.geom.Coordinate, boolean)"><!-- --></A><H3>
+PolygonizeDirectedEdge</H3>
+<PRE>
+public <B>PolygonizeDirectedEdge</B>(<A HREF="../../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> from,
+ <A HREF="../../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> to,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> directionPt,
+ boolean edgeDirection)</PRE>
+<DL>
+<DD>Constructs a directed edge connecting the <code>from</code> node to the
+ <code>to</code> node.
+<P>
+<DT><B>Parameters:</B><DD><CODE>directionPt</CODE> - specifies this DirectedEdge's direction (given by an imaginary
+ line from the <code>from</code> node to <code>directionPt</code>)<DD><CODE>edgeDirection</CODE> - whether this DirectedEdge's direction is the same as or
+ opposite to that of the parent Edge (if any)</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getLabel()"><!-- --></A><H3>
+getLabel</H3>
+<PRE>
+public long <B>getLabel</B>()</PRE>
+<DL>
+<DD>Returns the identifier attached to this directed edge.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLabel(long)"><!-- --></A><H3>
+setLabel</H3>
+<PRE>
+public void <B>setLabel</B>(long label)</PRE>
+<DL>
+<DD>Attaches an identifier to this directed edge.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNext()"><!-- --></A><H3>
+getNext</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize">PolygonizeDirectedEdge</A> <B>getNext</B>()</PRE>
+<DL>
+<DD>Returns the next directed edge in the EdgeRing that this directed edge is a member
+ of.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setNext(com.vividsolutions.jts.operation.polygonize.PolygonizeDirectedEdge)"><!-- --></A><H3>
+setNext</H3>
+<PRE>
+public void <B>setNext</B>(<A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize">PolygonizeDirectedEdge</A> next)</PRE>
+<DL>
+<DD>Sets the next directed edge in the EdgeRing that this directed edge is a member
+ of.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isInRing()"><!-- --></A><H3>
+isInRing</H3>
+<PRE>
+public boolean <B>isInRing</B>()</PRE>
+<DL>
+<DD>Returns the ring of directed edges that this directed edge is
+ a member of, or null if the ring has not been set.
+<P>
+<DD><DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html#setRing(com.vividsolutions.jts.operation.polygonize.EdgeRing)"><CODE>setRing(EdgeRing)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setRing(com.vividsolutions.jts.operation.polygonize.EdgeRing)"><!-- --></A><H3>
+setRing</H3>
+<PRE>
+public void <B>setRing</B>(<A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A> edgeRing)</PRE>
+<DL>
+<DD>Sets the ring of directed edges that this directed edge is
+ a member of.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PolygonizeDirectedEdge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.planargraph.DirectedEdge">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/Polygonizer.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/Polygonizer.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/Polygonizer.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,532 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+Polygonizer
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.polygonize.Polygonizer class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Polygonizer";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Polygonizer.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.polygonize</FONT>
+<BR>
+Class Polygonizer</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.polygonize.Polygonizer</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Polygonizer</B><DT>extends java.lang.Object</DL>
+
+<P>
+Polygonizes a set of Geometrys which contain linework that
+ represents the edges of a planar graph.
+ Any dimension of Geometry is handled - the constituent linework is extracted
+ to form the edges.
+ The edges must be correctly noded; that is, they must only meet
+ at their endpoints. The Polygonizer will still run on incorrectly noded input
+ but will not form polygons from incorrected noded edges.
+ <p>
+ The Polygonizer reports the follow kinds of errors:
+ <ul>
+ <li><b>Dangles</b> - edges which have one or both ends which are not incident on another edge endpoint
+ <li><b>Cut Edges</b> - edges which are connected at both ends but which do not form part of polygon
+ <li><b>Invalid Ring Lines</b> - edges which form rings which are invalid
+ (e.g. the component lines contain a self-intersection)
+ </ul>
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html#cutEdges">cutEdges</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html#dangles">dangles</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected com.vividsolutions.jts.operation.polygonize.PolygonizeGraph</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html#graph">graph</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html#holeList">holeList</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html#invalidRingLines">invalidRingLines</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html#polyList">polyList</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html#shellList">shellList</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html#Polygonizer()">Polygonizer</A></B>()</CODE>
+
+<BR>
+ Create a polygonizer with the same <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>
+ as the input <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html#add(java.util.Collection)">add</A></B>(java.util.Collection geomList)</CODE>
+
+<BR>
+ Add a collection of geometries to be polygonized.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html#add(com.vividsolutions.jts.geom.Geometry)">add</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ Add a geometry to the linework to be polygonized.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html#getCutEdges()">getCutEdges</A></B>()</CODE>
+
+<BR>
+ Get the list of cut edges found during polygonization.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html#getDangles()">getDangles</A></B>()</CODE>
+
+<BR>
+ Get the list of dangling lines found during polygonization.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html#getInvalidRingLines()">getInvalidRingLines</A></B>()</CODE>
+
+<BR>
+ Get the list of lines forming invalid rings found during polygonization.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html#getPolygons()">getPolygons</A></B>()</CODE>
+
+<BR>
+ Gets the list of polygons formed by the polygonization.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="graph"><!-- --></A><H3>
+graph</H3>
+<PRE>
+protected com.vividsolutions.jts.operation.polygonize.PolygonizeGraph <B>graph</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="dangles"><!-- --></A><H3>
+dangles</H3>
+<PRE>
+protected java.util.Collection <B>dangles</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="cutEdges"><!-- --></A><H3>
+cutEdges</H3>
+<PRE>
+protected java.util.List <B>cutEdges</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="invalidRingLines"><!-- --></A><H3>
+invalidRingLines</H3>
+<PRE>
+protected java.util.List <B>invalidRingLines</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="holeList"><!-- --></A><H3>
+holeList</H3>
+<PRE>
+protected java.util.List <B>holeList</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="shellList"><!-- --></A><H3>
+shellList</H3>
+<PRE>
+protected java.util.List <B>shellList</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="polyList"><!-- --></A><H3>
+polyList</H3>
+<PRE>
+protected java.util.List <B>polyList</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Polygonizer()"><!-- --></A><H3>
+Polygonizer</H3>
+<PRE>
+public <B>Polygonizer</B>()</PRE>
+<DL>
+<DD>Create a polygonizer with the same <A HREF="../../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>
+ as the input <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(java.util.Collection)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(java.util.Collection geomList)</PRE>
+<DL>
+<DD>Add a collection of geometries to be polygonized.
+ May be called multiple times.
+ Any dimension of Geometry may be added;
+ the constituent linework will be extracted and used
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geomList</CODE> - a list of <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s with linework to be polygonized</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD>Add a geometry to the linework to be polygonized.
+ May be called multiple times.
+ Any dimension of Geometry may be added;
+ the constituent linework will be extracted and used
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>g</CODE> - a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> with linework to be polygonized</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPolygons()"><!-- --></A><H3>
+getPolygons</H3>
+<PRE>
+public java.util.Collection <B>getPolygons</B>()</PRE>
+<DL>
+<DD>Gets the list of polygons formed by the polygonization.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a collection of <A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A>s</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDangles()"><!-- --></A><H3>
+getDangles</H3>
+<PRE>
+public java.util.Collection <B>getDangles</B>()</PRE>
+<DL>
+<DD>Get the list of dangling lines found during polygonization.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a collection of the input <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>s which are dangles</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCutEdges()"><!-- --></A><H3>
+getCutEdges</H3>
+<PRE>
+public java.util.Collection <B>getCutEdges</B>()</PRE>
+<DL>
+<DD>Get the list of cut edges found during polygonization.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a collection of the input <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>s which are cut edges</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInvalidRingLines()"><!-- --></A><H3>
+getInvalidRingLines</H3>
+<PRE>
+public java.util.Collection <B>getInvalidRingLines</B>()</PRE>
+<DL>
+<DD>Get the list of lines forming invalid rings found during polygonization.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a collection of the input <A HREF="../../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>s which form invalid rings</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Polygonizer.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.polygonize
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.polygonize package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/package-summary.html" target="classFrame">com.vividsolutions.jts.operation.polygonize</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize" target="classFrame">EdgeRing</A>
+<BR>
+<A HREF="PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize" target="classFrame">PolygonizeDirectedEdge</A>
+<BR>
+<A HREF="Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize" target="classFrame">Polygonizer</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.polygonize
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.polygonize package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.polygonize";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/validate/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.operation.polygonize
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A></B></TD>
+<TD>Represents a ring of <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize"><CODE>PolygonizeDirectedEdge</CODE></A>s which form
+ a ring of a polygon.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize">PolygonizeDirectedEdge</A></B></TD>
+<TD>A <A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A> of a <CODE>PolygonizeGraph</CODE>, which represents
+ an edge of a polygon formed by the graph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A></B></TD>
+<TD>Polygonizes a set of Geometrys which contain linework that
+ represents the edges of a planar graph.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/validate/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/polygonize/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,148 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.polygonize Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.polygonize Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/validate/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.operation.polygonize
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.polygonize.<A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>EdgeRing</B></A><LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><B>GraphComponent</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="../../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><B>DirectedEdge</B></A> (implements java.lang.Comparable)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.polygonize.<A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>PolygonizeDirectedEdge</B></A></UL>
+</UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.polygonize.<A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>Polygonizer</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/overlay/validate/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/RectangleContains.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/RectangleContains.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/RectangleContains.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,286 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+RectangleContains
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.predicate.RectangleContains class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="RectangleContains";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RectangleContains.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.predicate</FONT>
+<BR>
+Class RectangleContains</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.predicate.RectangleContains</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>RectangleContains</B><DT>extends java.lang.Object</DL>
+
+<P>
+Optimized implementation of spatial predicate "contains"
+ for cases where the first <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is a rectangle.
+ <p>
+ As a further optimization,
+ this class can be used directly to test many geometries against a single
+ rectangle.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleContains.html#RectangleContains(com.vividsolutions.jts.geom.Polygon)">RectangleContains</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> rectangle)</CODE>
+
+<BR>
+ Create a new contains computer for two geometries.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleContains.html#contains(com.vividsolutions.jts.geom.Geometry)">contains</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleContains.html#contains(com.vividsolutions.jts.geom.Polygon, com.vividsolutions.jts.geom.Geometry)">contains</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> rectangle,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> b)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="RectangleContains(com.vividsolutions.jts.geom.Polygon)"><!-- --></A><H3>
+RectangleContains</H3>
+<PRE>
+public <B>RectangleContains</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> rectangle)</PRE>
+<DL>
+<DD>Create a new contains computer for two geometries.
+<P>
+<DT><B>Parameters:</B><DD><CODE>rectangle</CODE> - a rectangular geometry</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="contains(com.vividsolutions.jts.geom.Polygon, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+contains</H3>
+<PRE>
+public static boolean <B>contains</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> rectangle,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> b)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contains(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+contains</H3>
+<PRE>
+public boolean <B>contains</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RectangleContains.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/RectangleIntersects.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/RectangleIntersects.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/RectangleIntersects.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,323 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+RectangleIntersects
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.predicate.RectangleIntersects class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="RectangleIntersects";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleContains.html" title="class in com.vividsolutions.jts.operation.predicate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html" title="class in com.vividsolutions.jts.operation.predicate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RectangleIntersects.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.predicate</FONT>
+<BR>
+Class RectangleIntersects</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.predicate.RectangleIntersects</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>RectangleIntersects</B><DT>extends java.lang.Object</DL>
+
+<P>
+Optimized implementation of spatial predicate "intersects"
+ for cases where the first <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is a rectangle.
+ <p>
+ As a further optimization,
+ this class can be used directly to test many geometries against a single
+ rectangle.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleIntersects.html#MAXIMUM_SCAN_SEGMENT_COUNT">MAXIMUM_SCAN_SEGMENT_COUNT</A></B></CODE>
+
+<BR>
+ Crossover size at which brute-force intersection scanning
+ is slower than indexed intersection detection.</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleIntersects.html#RectangleIntersects(com.vividsolutions.jts.geom.Polygon)">RectangleIntersects</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> rectangle)</CODE>
+
+<BR>
+ Create a new intersects computer for a rectangle.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleIntersects.html#intersects(com.vividsolutions.jts.geom.Geometry)">intersects</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleIntersects.html#intersects(com.vividsolutions.jts.geom.Polygon, com.vividsolutions.jts.geom.Geometry)">intersects</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> rectangle,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> b)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="MAXIMUM_SCAN_SEGMENT_COUNT"><!-- --></A><H3>
+MAXIMUM_SCAN_SEGMENT_COUNT</H3>
+<PRE>
+public static final int <B>MAXIMUM_SCAN_SEGMENT_COUNT</B></PRE>
+<DL>
+<DD>Crossover size at which brute-force intersection scanning
+ is slower than indexed intersection detection.
+ Must be determined empirically. Should err on the
+ safe side by making value smaller rather than larger.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.predicate.RectangleIntersects.MAXIMUM_SCAN_SEGMENT_COUNT">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="RectangleIntersects(com.vividsolutions.jts.geom.Polygon)"><!-- --></A><H3>
+RectangleIntersects</H3>
+<PRE>
+public <B>RectangleIntersects</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> rectangle)</PRE>
+<DL>
+<DD>Create a new intersects computer for a rectangle.
+<P>
+<DT><B>Parameters:</B><DD><CODE>rectangle</CODE> - a rectangular geometry</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="intersects(com.vividsolutions.jts.geom.Polygon, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+intersects</H3>
+<PRE>
+public static boolean <B>intersects</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> rectangle,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> b)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="intersects(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+intersects</H3>
+<PRE>
+public boolean <B>intersects</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleContains.html" title="class in com.vividsolutions.jts.operation.predicate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html" title="class in com.vividsolutions.jts.operation.predicate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RectangleIntersects.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,283 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+SegmentIntersectionTester
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.predicate.SegmentIntersectionTester class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SegmentIntersectionTester";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentIntersectionTester.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.predicate</FONT>
+<BR>
+Class SegmentIntersectionTester</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.predicate.SegmentIntersectionTester</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SegmentIntersectionTester</B><DT>extends java.lang.Object</DL>
+
+<P>
+Tests if any line segments in two sets of CoordinateSequences intersect.
+ Optimized for small geometry size.
+ Short-circuited to return as soon an intersection is found.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html#SegmentIntersectionTester()">SegmentIntersectionTester</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html#hasIntersection(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.CoordinateSequence)">hasIntersection</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html#hasIntersectionWithLineStrings(com.vividsolutions.jts.geom.CoordinateSequence, java.util.List)">hasIntersectionWithLineStrings</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq,
+ java.util.List lines)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SegmentIntersectionTester()"><!-- --></A><H3>
+SegmentIntersectionTester</H3>
+<PRE>
+public <B>SegmentIntersectionTester</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="hasIntersectionWithLineStrings(com.vividsolutions.jts.geom.CoordinateSequence, java.util.List)"><!-- --></A><H3>
+hasIntersectionWithLineStrings</H3>
+<PRE>
+public boolean <B>hasIntersectionWithLineStrings</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq,
+ java.util.List lines)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasIntersection(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.CoordinateSequence)"><!-- --></A><H3>
+hasIntersection</H3>
+<PRE>
+public boolean <B>hasIntersection</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> seq1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SegmentIntersectionTester.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.predicate
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.predicate package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/operation/predicate/package-summary.html" target="classFrame">com.vividsolutions.jts.operation.predicate</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="RectangleContains.html" title="class in com.vividsolutions.jts.operation.predicate" target="classFrame">RectangleContains</A>
+<BR>
+<A HREF="RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate" target="classFrame">RectangleIntersects</A>
+<BR>
+<A HREF="SegmentIntersectionTester.html" title="class in com.vividsolutions.jts.operation.predicate" target="classFrame">SegmentIntersectionTester</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.predicate
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.predicate package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.predicate";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.operation.predicate
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleContains.html" title="class in com.vividsolutions.jts.operation.predicate">RectangleContains</A></B></TD>
+<TD>Optimized implementation of spatial predicate "contains"
+ for cases where the first <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is a rectangle.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate">RectangleIntersects</A></B></TD>
+<TD>Optimized implementation of spatial predicate "intersects"
+ for cases where the first <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is a rectangle.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html" title="class in com.vividsolutions.jts.operation.predicate">SegmentIntersectionTester</A></B></TD>
+<TD>Tests if any line segments in two sets of CoordinateSequences intersect.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/predicate/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.predicate Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.predicate Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.operation.predicate
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.predicate.<A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleContains.html" title="class in com.vividsolutions.jts.operation.predicate"><B>RectangleContains</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.predicate.<A HREF="../../../../../com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate"><B>RectangleIntersects</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.predicate.<A HREF="../../../../../com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html" title="class in com.vividsolutions.jts.operation.predicate"><B>SegmentIntersectionTester</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/polygonize/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,283 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+EdgeEndBuilder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.relate.EdgeEndBuilder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="EdgeEndBuilder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeEndBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.relate</FONT>
+<BR>
+Class EdgeEndBuilder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.relate.EdgeEndBuilder</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>EdgeEndBuilder</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes the <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>EdgeEnd</CODE></A>s which arise from a noded <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Edge</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html#EdgeEndBuilder()">EdgeEndBuilder</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html#computeEdgeEnds(com.vividsolutions.jts.geomgraph.Edge, java.util.List)">computeEdgeEnds</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge,
+ java.util.List l)</CODE>
+
+<BR>
+ Creates stub edges for all the intersections in this
+ Edge (if any) and inserts them into the graph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html#computeEdgeEnds(java.util.Iterator)">computeEdgeEnds</A></B>(java.util.Iterator edges)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EdgeEndBuilder()"><!-- --></A><H3>
+EdgeEndBuilder</H3>
+<PRE>
+public <B>EdgeEndBuilder</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="computeEdgeEnds(java.util.Iterator)"><!-- --></A><H3>
+computeEdgeEnds</H3>
+<PRE>
+public java.util.List <B>computeEdgeEnds</B>(java.util.Iterator edges)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeEdgeEnds(com.vividsolutions.jts.geomgraph.Edge, java.util.List)"><!-- --></A><H3>
+computeEdgeEnds</H3>
+<PRE>
+public void <B>computeEdgeEnds</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A> edge,
+ java.util.List l)</PRE>
+<DL>
+<DD>Creates stub edges for all the intersections in this
+ Edge (if any) and inserts them into the graph.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeEndBuilder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/EdgeEndBundle.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/EdgeEndBundle.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/EdgeEndBundle.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,413 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+EdgeEndBundle
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.relate.EdgeEndBundle class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="EdgeEndBundle";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html" title="class in com.vividsolutions.jts.operation.relate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html" title="class in com.vividsolutions.jts.operation.relate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeEndBundle.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeEnd">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.relate</FONT>
+<BR>
+Class EdgeEndBundle</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">com.vividsolutions.jts.geomgraph.EdgeEnd</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.relate.EdgeEndBundle</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>EdgeEndBundle</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A></DL>
+
+<P>
+A collection of <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>EdgeEnd</CODE></A>s which obey the following invariant:
+ They originate at the same node and have the same direction.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeEnd"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#edge">edge</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#label">label</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#EdgeEndBundle(com.vividsolutions.jts.algorithm.BoundaryNodeRule, com.vividsolutions.jts.geomgraph.EdgeEnd)">EdgeEndBundle</A></B>(<A HREF="../../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#EdgeEndBundle(com.vividsolutions.jts.geomgraph.EdgeEnd)">EdgeEndBundle</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#computeLabel(com.vividsolutions.jts.algorithm.BoundaryNodeRule)">computeLabel</A></B>(<A HREF="../../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule)</CODE>
+
+<BR>
+ This computes the overall edge label for the set of
+ edges in this EdgeStubBundle.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#getEdgeEnds()">getEdgeEnds</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#getLabel()">getLabel</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#insert(com.vividsolutions.jts.geomgraph.EdgeEnd)">insert</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#iterator()">iterator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#print(java.io.PrintStream)">print</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeEnd"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#compareDirection(com.vividsolutions.jts.geomgraph.EdgeEnd)">compareDirection</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#compareTo(java.lang.Object)">compareTo</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getCoordinate()">getCoordinate</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getDirectedCoordinate()">getDirectedCoordinate</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getDx()">getDx</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getDy()">getDy</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getEdge()">getEdge</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getNode()">getNode</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getQuadrant()">getQuadrant</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#init(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">init</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#setNode(com.vividsolutions.jts.geomgraph.Node)">setNode</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EdgeEndBundle(com.vividsolutions.jts.algorithm.BoundaryNodeRule, com.vividsolutions.jts.geomgraph.EdgeEnd)"><!-- --></A><H3>
+EdgeEndBundle</H3>
+<PRE>
+public <B>EdgeEndBundle</B>(<A HREF="../../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="EdgeEndBundle(com.vividsolutions.jts.geomgraph.EdgeEnd)"><!-- --></A><H3>
+EdgeEndBundle</H3>
+<PRE>
+public <B>EdgeEndBundle</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getLabel()"><!-- --></A><H3>
+getLabel</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A> <B>getLabel</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#getLabel()">getLabel</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="iterator()"><!-- --></A><H3>
+iterator</H3>
+<PRE>
+public java.util.Iterator <B>iterator</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdgeEnds()"><!-- --></A><H3>
+getEdgeEnds</H3>
+<PRE>
+public java.util.List <B>getEdgeEnds</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="insert(com.vividsolutions.jts.geomgraph.EdgeEnd)"><!-- --></A><H3>
+insert</H3>
+<PRE>
+public void <B>insert</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeLabel(com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><!-- --></A><H3>
+computeLabel</H3>
+<PRE>
+public void <B>computeLabel</B>(<A HREF="../../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule)</PRE>
+<DL>
+<DD>This computes the overall edge label for the set of
+ edges in this EdgeStubBundle. It essentially merges
+ the ON and side labels for each edge. These labels must be compatible
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#computeLabel(com.vividsolutions.jts.algorithm.BoundaryNodeRule)">computeLabel</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.io.PrintStream)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public void <B>print</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html#print(java.io.PrintStream)">print</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html" title="class in com.vividsolutions.jts.operation.relate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html" title="class in com.vividsolutions.jts.operation.relate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeEndBundle.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeEnd">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,297 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+EdgeEndBundleStar
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.relate.EdgeEndBundleStar class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="EdgeEndBundleStar";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateComputer.html" title="class in com.vividsolutions.jts.operation.relate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeEndBundleStar.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeEndStar">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.relate</FONT>
+<BR>
+Class EdgeEndBundleStar</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">com.vividsolutions.jts.geomgraph.EdgeEndStar</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.relate.EdgeEndBundleStar</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>EdgeEndBundleStar</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A></DL>
+
+<P>
+An ordered list of <A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate"><CODE>EdgeEndBundle</CODE></A>s around a <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate"><CODE>RelateNode</CODE></A>.
+ They are maintained in CCW order (starting with the positive x-axis) around the node
+ for efficient lookup and topology building.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeEndStar"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#edgeList">edgeList</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#edgeMap">edgeMap</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html#EdgeEndBundleStar()">EdgeEndBundleStar</A></B>()</CODE>
+
+<BR>
+ Creates a new empty EdgeEndBundleStar</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html#insert(com.vividsolutions.jts.geomgraph.EdgeEnd)">insert</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</CODE>
+
+<BR>
+ Insert a EdgeEnd in order in the list.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeEndStar"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#computeLabelling(com.vividsolutions.jts.geomgraph.GeometryGraph[])">computeLabelling</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#findIndex(com.vividsolutions.jts.geomgraph.EdgeEnd)">findIndex</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getCoordinate()">getCoordinate</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getDegree()">getDegree</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getEdges()">getEdges</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getNextCW(com.vividsolutions.jts.geomgraph.EdgeEnd)">getNextCW</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#insertEdgeEnd(com.vividsolutions.jts.geomgraph.EdgeEnd, java.lang.Object)">insertEdgeEnd</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#isAreaLabelsConsistent(com.vividsolutions.jts.geomgraph.GeometryGraph)">isAreaLabelsConsistent</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#iterator()">iterator</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#print(java.io.PrintStream)">print</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EdgeEndBundleStar()"><!-- --></A><H3>
+EdgeEndBundleStar</H3>
+<PRE>
+public <B>EdgeEndBundleStar</B>()</PRE>
+<DL>
+<DD>Creates a new empty EdgeEndBundleStar
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="insert(com.vividsolutions.jts.geomgraph.EdgeEnd)"><!-- --></A><H3>
+insert</H3>
+<PRE>
+public void <B>insert</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A> e)</PRE>
+<DL>
+<DD>Insert a EdgeEnd in order in the list.
+ If there is an existing EdgeStubBundle which is parallel, the EdgeEnd is
+ added to the bundle. Otherwise, a new EdgeEndBundle is created
+ to contain the EdgeEnd.
+ <br>
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html#insert(com.vividsolutions.jts.geomgraph.EdgeEnd)">insert</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateComputer.html" title="class in com.vividsolutions.jts.operation.relate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EdgeEndBundleStar.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.EdgeEndStar">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateComputer.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateComputer.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateComputer.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,268 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+RelateComputer
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.relate.RelateComputer class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="RelateComputer";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html" title="class in com.vividsolutions.jts.operation.relate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RelateComputer.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.relate</FONT>
+<BR>
+Class RelateComputer</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.relate.RelateComputer</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>RelateComputer</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes the topological relationship between two Geometries.
+ <p>
+ RelateComputer does not need to build a complete graph structure to compute
+ the IntersectionMatrix. The relationship between the geometries can
+ be computed by simply examining the labelling of edges incident on each node.
+ <p>
+ RelateComputer does not currently support arbitrary GeometryCollections.
+ This is because GeometryCollections can contain overlapping Polygons.
+ In order to correct compute relate on overlapping Polygons, they
+ would first need to be noded and merged (if not explicitly, at least
+ implicitly).
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateComputer.html#RelateComputer(com.vividsolutions.jts.geomgraph.GeometryGraph[])">RelateComputer</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>[] arg)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateComputer.html#computeIM()">computeIM</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="RelateComputer(com.vividsolutions.jts.geomgraph.GeometryGraph[])"><!-- --></A><H3>
+RelateComputer</H3>
+<PRE>
+public <B>RelateComputer</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>[] arg)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="computeIM()"><!-- --></A><H3>
+computeIM</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> <B>computeIM</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html" title="class in com.vividsolutions.jts.operation.relate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RelateComputer.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateNode.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateNode.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateNode.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,311 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+RelateNode
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.relate.RelateNode class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="RelateNode";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateComputer.html" title="class in com.vividsolutions.jts.operation.relate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeFactory.html" title="class in com.vividsolutions.jts.operation.relate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RelateNode.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.Node">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.relate</FONT>
+<BR>
+Class RelateNode</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">com.vividsolutions.jts.geomgraph.GraphComponent</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">com.vividsolutions.jts.geomgraph.Node</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.relate.RelateNode</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>RelateNode</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></DL>
+
+<P>
+Represents a node in the topological graph used to compute spatial relationships.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geomgraph.Node"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html#coord">coord</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html#edges">edges</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geomgraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#label">label</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNode.html#RelateNode(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geomgraph.EdgeEndStar)">RelateNode</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A> edges)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNode.html#computeIM(com.vividsolutions.jts.geom.IntersectionMatrix)">computeIM</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> im)</CODE>
+
+<BR>
+ Update the IM with the contribution for this component.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geomgraph.Node"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html#add(com.vividsolutions.jts.geomgraph.EdgeEnd)">add</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html#getCoordinate()">getCoordinate</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html#getEdges()">getEdges</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html#isIncidentEdgeInResult()">isIncidentEdgeInResult</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html#isIsolated()">isIsolated</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html#mergeLabel(com.vividsolutions.jts.geomgraph.Label)">mergeLabel</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html#mergeLabel(com.vividsolutions.jts.geomgraph.Node)">mergeLabel</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html#print(java.io.PrintStream)">print</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html#setLabel(int, int)">setLabel</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html#setLabelBoundary(int)">setLabelBoundary</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geomgraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#getLabel()">getLabel</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isCovered()">isCovered</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isCoveredSet()">isCoveredSet</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isInResult()">isInResult</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#isVisited()">isVisited</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setCovered(boolean)">setCovered</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setInResult(boolean)">setInResult</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setLabel(com.vividsolutions.jts.geomgraph.Label)">setLabel</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#setVisited(boolean)">setVisited</A>, <A HREF="../../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html#updateIM(com.vividsolutions.jts.geom.IntersectionMatrix)">updateIM</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="RelateNode(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geomgraph.EdgeEndStar)"><!-- --></A><H3>
+RelateNode</H3>
+<PRE>
+public <B>RelateNode</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A> edges)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="computeIM(com.vividsolutions.jts.geom.IntersectionMatrix)"><!-- --></A><H3>
+computeIM</H3>
+<PRE>
+protected void <B>computeIM</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> im)</PRE>
+<DL>
+<DD>Update the IM with the contribution for this component.
+ A component only contributes if it has a labelling for both parent geometries
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html#computeIM(com.vividsolutions.jts.geom.IntersectionMatrix)">computeIM</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateComputer.html" title="class in com.vividsolutions.jts.operation.relate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeFactory.html" title="class in com.vividsolutions.jts.operation.relate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RelateNode.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geomgraph.Node">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateNodeFactory.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateNodeFactory.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateNodeFactory.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,265 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+RelateNodeFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.relate.RelateNodeFactory class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="RelateNodeFactory";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RelateNodeFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.relate</FONT>
+<BR>
+Class RelateNodeFactory</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">com.vividsolutions.jts.geomgraph.NodeFactory</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.relate.RelateNodeFactory</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>RelateNodeFactory</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">NodeFactory</A></DL>
+
+<P>
+Used by the <A HREF="../../../../../com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>NodeMap</CODE></A> in a <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate"><CODE>RelateNodeGraph</CODE></A> to create <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate"><CODE>RelateNode</CODE></A>s.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeFactory.html#RelateNodeFactory()">RelateNodeFactory</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeFactory.html#createNode(com.vividsolutions.jts.geom.Coordinate)">createNode</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ The basic node constructor does not allow for incident edges</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="RelateNodeFactory()"><!-- --></A><H3>
+RelateNodeFactory</H3>
+<PRE>
+public <B>RelateNodeFactory</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="createNode(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+createNode</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A> <B>createNode</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">NodeFactory</A></CODE></B></DD>
+<DD>The basic node constructor does not allow for incident edges
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html#createNode(com.vividsolutions.jts.geom.Coordinate)">createNode</A></CODE> in class <CODE><A HREF="../../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">NodeFactory</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RelateNodeFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateNodeGraph.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateNodeGraph.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateNodeGraph.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,369 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+RelateNodeGraph
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.relate.RelateNodeGraph class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="RelateNodeGraph";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeFactory.html" title="class in com.vividsolutions.jts.operation.relate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateOp.html" title="class in com.vividsolutions.jts.operation.relate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RelateNodeGraph.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.relate</FONT>
+<BR>
+Class RelateNodeGraph</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.relate.RelateNodeGraph</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>RelateNodeGraph</B><DT>extends java.lang.Object</DL>
+
+<P>
+Implements the simple graph of Nodes and EdgeEnd which is all that is
+ required to determine topological relationships between Geometries.
+ Also supports building a topological graph of a single Geometry, to
+ allow verification of valid topology.
+ <p>
+ It is <b>not</b> necessary to create a fully linked
+ PlanarGraph to determine relationships, since it is sufficient
+ to know how the Geometries interact locally around the nodes.
+ In fact, this is not even feasible, since it is not possible to compute
+ exact intersection points, and hence the topology around those nodes
+ cannot be computed robustly.
+ The only Nodes that are created are for improper intersections;
+ that is, nodes which occur at existing vertices of the Geometries.
+ Proper intersections (e.g. ones which occur between the interior of line segments)
+ have their topology determined implicitly, without creating a Node object
+ to represent them.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeGraph.html#RelateNodeGraph()">RelateNodeGraph</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeGraph.html#build(com.vividsolutions.jts.geomgraph.GeometryGraph)">build</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> geomGraph)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeGraph.html#computeIntersectionNodes(com.vividsolutions.jts.geomgraph.GeometryGraph, int)">computeIntersectionNodes</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> geomGraph,
+ int argIndex)</CODE>
+
+<BR>
+ Insert nodes for all intersections on the edges of a Geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeGraph.html#copyNodesAndLabels(com.vividsolutions.jts.geomgraph.GeometryGraph, int)">copyNodesAndLabels</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> geomGraph,
+ int argIndex)</CODE>
+
+<BR>
+ Copy all nodes from an arg geometry into this graph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeGraph.html#getNodeIterator()">getNodeIterator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeGraph.html#insertEdgeEnds(java.util.List)">insertEdgeEnds</A></B>(java.util.List ee)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="RelateNodeGraph()"><!-- --></A><H3>
+RelateNodeGraph</H3>
+<PRE>
+public <B>RelateNodeGraph</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getNodeIterator()"><!-- --></A><H3>
+getNodeIterator</H3>
+<PRE>
+public java.util.Iterator <B>getNodeIterator</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="build(com.vividsolutions.jts.geomgraph.GeometryGraph)"><!-- --></A><H3>
+build</H3>
+<PRE>
+public void <B>build</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> geomGraph)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="computeIntersectionNodes(com.vividsolutions.jts.geomgraph.GeometryGraph, int)"><!-- --></A><H3>
+computeIntersectionNodes</H3>
+<PRE>
+public void <B>computeIntersectionNodes</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> geomGraph,
+ int argIndex)</PRE>
+<DL>
+<DD>Insert nodes for all intersections on the edges of a Geometry.
+ Label the created nodes the same as the edge label if they do not already have a label.
+ This allows nodes created by either self-intersections or
+ mutual intersections to be labelled.
+ Endpoint nodes will already be labelled from when they were inserted.
+ <p>
+ Precondition: edge intersections have been computed.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="copyNodesAndLabels(com.vividsolutions.jts.geomgraph.GeometryGraph, int)"><!-- --></A><H3>
+copyNodesAndLabels</H3>
+<PRE>
+public void <B>copyNodesAndLabels</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> geomGraph,
+ int argIndex)</PRE>
+<DL>
+<DD>Copy all nodes from an arg geometry into this graph.
+ The node label in the arg geometry overrides any previously computed
+ label for that argIndex.
+ (E.g. a node may be an intersection node with
+ a computed label of BOUNDARY,
+ but in the original arg Geometry it is actually
+ in the interior due to the Boundary Determination Rule)
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="insertEdgeEnds(java.util.List)"><!-- --></A><H3>
+insertEdgeEnds</H3>
+<PRE>
+public void <B>insertEdgeEnds</B>(java.util.List ee)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeFactory.html" title="class in com.vividsolutions.jts.operation.relate"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateOp.html" title="class in com.vividsolutions.jts.operation.relate"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RelateNodeGraph.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateOp.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateOp.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/RelateOp.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,375 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+RelateOp
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.relate.RelateOp class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="RelateOp";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RelateOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.operation.GeometryGraphOperation">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.relate</FONT>
+<BR>
+Class RelateOp</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">com.vividsolutions.jts.operation.GeometryGraphOperation</A>
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.relate.RelateOp</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>RelateOp</B><DT>extends <A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A></DL>
+
+<P>
+Implements the SFS <tt>relate()</tt> operation on two <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s.
+ This class supports specifying a custom <A HREF="../../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A>
+ to be used during the relate computation.
+ <p>
+ <b>Note:</b> custom Boundary Node Rules do not (currently)
+ affect the results of other Geometry methods (such
+ as <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html#getBoundary()"><CODE>Geometry.getBoundary()</CODE></A>. The results of
+ these methods may not be consistent with the relationship computed by
+ a custom Boundary Node Rule.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.operation.GeometryGraphOperation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.operation.<A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#arg">arg</A>, <A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#cga">cga</A>, <A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#li">li</A>, <A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#resultPrecisionModel">resultPrecisionModel</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateOp.html#RelateOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">RelateOp</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</CODE>
+
+<BR>
+ Creates a new Relate operation, using the default (OGC SFS) Boundary Node Rule.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateOp.html#RelateOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)">RelateOp</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule)</CODE>
+
+<BR>
+ Creates a new Relate operation with a specified Boundary Node Rule.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateOp.html#getIntersectionMatrix()">getIntersectionMatrix</A></B>()</CODE>
+
+<BR>
+ Gets the IntersectionMatrix for the spatial relationship
+ between the input geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateOp.html#relate(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">relate</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> a,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> b)</CODE>
+
+<BR>
+ Computes the <A HREF="../../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><CODE>IntersectionMatrix</CODE></A> for the spatial relationship
+ between two <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using the default (OGC SFS) Boundary Node Rule</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateOp.html#relate(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)">relate</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> a,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> b,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule)</CODE>
+
+<BR>
+ Computes the <A HREF="../../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><CODE>IntersectionMatrix</CODE></A> for the spatial relationship
+ between two <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s using a specified Boundary Node Rule.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.operation.GeometryGraphOperation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.operation.<A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#getArgGeometry(int)">getArgGeometry</A>, <A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html#setComputationPrecision(com.vividsolutions.jts.geom.PrecisionModel)">setComputationPrecision</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="RelateOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+RelateOp</H3>
+<PRE>
+public <B>RelateOp</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1)</PRE>
+<DL>
+<DD>Creates a new Relate operation, using the default (OGC SFS) Boundary Node Rule.
+<P>
+<DT><B>Parameters:</B><DD><CODE>g0</CODE> - a Geometry to relate<DD><CODE>g1</CODE> - another Geometry to relate</DL>
+<HR>
+
+<A NAME="RelateOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><!-- --></A><H3>
+RelateOp</H3>
+<PRE>
+public <B>RelateOp</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g0,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g1,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule)</PRE>
+<DL>
+<DD>Creates a new Relate operation with a specified Boundary Node Rule.
+<P>
+<DT><B>Parameters:</B><DD><CODE>g0</CODE> - a Geometry to relate<DD><CODE>g1</CODE> - another Geometry to relate<DD><CODE>boundaryNodeRule</CODE> - the Boundary Node Rule to use</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="relate(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+relate</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> <B>relate</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> a,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> b)</PRE>
+<DL>
+<DD>Computes the <A HREF="../../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><CODE>IntersectionMatrix</CODE></A> for the spatial relationship
+ between two <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using the default (OGC SFS) Boundary Node Rule
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>a</CODE> - a Geometry to test<DD><CODE>b</CODE> - a Geometry to test
+<DT><B>Returns:</B><DD>the IntersectonMatrix for the spatial relationship between the geometries</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="relate(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><!-- --></A><H3>
+relate</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> <B>relate</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> a,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> b,
+ <A HREF="../../../../../com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A> boundaryNodeRule)</PRE>
+<DL>
+<DD>Computes the <A HREF="../../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><CODE>IntersectionMatrix</CODE></A> for the spatial relationship
+ between two <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s using a specified Boundary Node Rule.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>a</CODE> - a Geometry to test<DD><CODE>b</CODE> - a Geometry to test<DD><CODE>boundaryNodeRule</CODE> - the Boundary Node Rule to use
+<DT><B>Returns:</B><DD>the IntersectonMatrix for the spatial relationship between the input geometries</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIntersectionMatrix()"><!-- --></A><H3>
+getIntersectionMatrix</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A> <B>getIntersectionMatrix</B>()</PRE>
+<DL>
+<DD>Gets the IntersectionMatrix for the spatial relationship
+ between the input geometries.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the IntersectonMatrix for the spatial relationship between the input geometries</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RelateOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.operation.GeometryGraphOperation">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.relate
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.relate package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/operation/relate/package-summary.html" target="classFrame">com.vividsolutions.jts.operation.relate</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="EdgeEndBuilder.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">EdgeEndBuilder</A>
+<BR>
+<A HREF="EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">EdgeEndBundle</A>
+<BR>
+<A HREF="EdgeEndBundleStar.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">EdgeEndBundleStar</A>
+<BR>
+<A HREF="RelateComputer.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">RelateComputer</A>
+<BR>
+<A HREF="RelateNode.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">RelateNode</A>
+<BR>
+<A HREF="RelateNodeFactory.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">RelateNodeFactory</A>
+<BR>
+<A HREF="RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">RelateNodeGraph</A>
+<BR>
+<A HREF="RelateOp.html" title="class in com.vividsolutions.jts.operation.relate" target="classFrame">RelateOp</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,230 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.relate
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.relate package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.relate";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.operation.relate
+</H2>
+Contains classes to implement the computation of the spatial relationships of <CODE>Geometry</CODE>s.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBuilder</A></B></TD>
+<TD>Computes the <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>EdgeEnd</CODE></A>s which arise from a noded <A HREF="../../../../../com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Edge</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundle</A></B></TD>
+<TD>A collection of <A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>EdgeEnd</CODE></A>s which obey the following invariant:
+ They originate at the same node and have the same direction.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundleStar</A></B></TD>
+<TD>An ordered list of <A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate"><CODE>EdgeEndBundle</CODE></A>s around a <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate"><CODE>RelateNode</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateComputer.html" title="class in com.vividsolutions.jts.operation.relate">RelateComputer</A></B></TD>
+<TD>Computes the topological relationship between two Geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate">RelateNode</A></B></TD>
+<TD>Represents a node in the topological graph used to compute spatial relationships.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeFactory.html" title="class in com.vividsolutions.jts.operation.relate">RelateNodeFactory</A></B></TD>
+<TD>Used by the <A HREF="../../../../../com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>NodeMap</CODE></A> in a <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate"><CODE>RelateNodeGraph</CODE></A> to create <A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate"><CODE>RelateNode</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate">RelateNodeGraph</A></B></TD>
+<TD>Implements the simple graph of Nodes and EdgeEnd which is all that is
+ required to determine topological relationships between Geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateOp.html" title="class in com.vividsolutions.jts.operation.relate">RelateOp</A></B></TD>
+<TD>Implements the SFS <tt>relate()</tt> operation on two <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.operation.relate Description
+</H2>
+
+<P>
+Contains classes to implement the computation of the spatial relationships of <CODE>Geometry</CODE>s.
+<P>
+The <code>relate</code> algorithm computes the <code>IntersectionMatrix</code> describing the
+relationship of two <code>Geometry</code>s. The algorithm for computing <code>relate</code>
+uses the intersection operations supported by topology graphs. Although the <code>relate</code>
+result depends on the resultant graph formed by the computed intersections, there is
+no need to explicitly compute the entire graph.
+It is sufficient to compute the local structure of the graph
+at each intersection node.
+<P>
+The algorithm to compute <code>relate</code> has the following steps:
+<UL>
+ <LI>Build topology graphs of the two input geometries. For each geometry
+ all self-intersection nodes are computed and added to the graph.
+ <LI>Compute nodes for all intersections between edges and nodes of the graphs.
+ <LI>Compute the labeling for the computed nodes by merging the labels from the input graphs.
+ <LI>Compute the labeling for isolated components of the graph (see below)
+ <LI>Compute the <code>IntersectionMatrix</code> from the labels on the nodes and edges.
+</UL>
+
+<H3>Labeling isolated components</H3>
+
+Isolated components are components (edges or nodes) of an input <code>Geometry</code> which
+do not contain any intersections with the other input <code>Geometry</code>. The
+topological relationship of these components to the other input <code>Geometry</code>
+must be computed in order to determine the complete labeling of the component. This can
+be done by testing whether the component lies in the interior or exterior of the other
+<code>Geometry</code>. If the other <code>Geometry</code> is 1-dimensional, the isolated
+component must lie in the exterior (since otherwise it would have an intersection with an
+edge of the <code>Geometry</code>). If the other <code>Geometry</code> is 2-dimensional,
+a Point-In-Polygon test can be used to determine whether the isolated component is in the
+interior or exterior.
+
+<h2>Package Specification</h2>
+
+<ul>
+ <li>Java Topology Suite Technical Specifications
+ <li><A HREF="http://www.opengis.org/techno/specs.htm">
+ OpenGIS Simple Features Specification for SQL</A>
+</ul>
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/relate/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.relate Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.relate Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.operation.relate
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeEnd</B></A> (implements java.lang.Comparable)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate"><B>EdgeEndBundle</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html" title="class in com.vividsolutions.jts.operation.relate"><B>EdgeEndBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeEndStar</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="../../../../../com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html" title="class in com.vividsolutions.jts.operation.relate"><B>EdgeEndBundleStar</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.<A HREF="../../../../../com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation"><B>GeometryGraphOperation</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateOp.html" title="class in com.vividsolutions.jts.operation.relate"><B>RelateOp</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph"><B>GraphComponent</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph"><B>Node</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate"><B>RelateNode</B></A></UL>
+</UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="../../../../../com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph"><B>NodeFactory</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeFactory.html" title="class in com.vividsolutions.jts.operation.relate"><B>RelateNodeFactory</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateComputer.html" title="class in com.vividsolutions.jts.operation.relate"><B>RelateComputer</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="../../../../../com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate"><B>RelateNodeGraph</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/predicate/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,326 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+ConnectedInteriorTester
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.valid.ConnectedInteriorTester class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ConnectedInteriorTester";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ConnectedInteriorTester.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.valid</FONT>
+<BR>
+Class ConnectedInteriorTester</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.valid.ConnectedInteriorTester</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>ConnectedInteriorTester</B><DT>extends java.lang.Object</DL>
+
+<P>
+This class tests that the interior of an area <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ ( <A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A> or <A HREF="../../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiPolygon</CODE></A> )
+ is connected.
+ This can happen if:
+ <ul>
+ <li>a shell self-intersects
+ <li>one or more holes form a connected chain touching a shell at two different points
+ <li>one or more holes form a ring around a subset of the interior
+ </ul>
+ If a disconnected situation is found the location of the problem is recorded.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html#ConnectedInteriorTester(com.vividsolutions.jts.geomgraph.GeometryGraph)">ConnectedInteriorTester</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> geomGraph)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html#findDifferentPoint(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate)">findDifferentPoint</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html#isInteriorsConnected()">isInteriorsConnected</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html#visitLinkedDirectedEdges(com.vividsolutions.jts.geomgraph.DirectedEdge)">visitLinkedDirectedEdges</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> start)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ConnectedInteriorTester(com.vividsolutions.jts.geomgraph.GeometryGraph)"><!-- --></A><H3>
+ConnectedInteriorTester</H3>
+<PRE>
+public <B>ConnectedInteriorTester</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> geomGraph)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="findDifferentPoint(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+findDifferentPoint</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>findDifferentPoint</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isInteriorsConnected()"><!-- --></A><H3>
+isInteriorsConnected</H3>
+<PRE>
+public boolean <B>isInteriorsConnected</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="visitLinkedDirectedEdges(com.vividsolutions.jts.geomgraph.DirectedEdge)"><!-- --></A><H3>
+visitLinkedDirectedEdges</H3>
+<PRE>
+protected void <B>visitLinkedDirectedEdges</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A> start)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ConnectedInteriorTester.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,331 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+ConsistentAreaTester
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.valid.ConsistentAreaTester class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ConsistentAreaTester";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ConsistentAreaTester.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.valid</FONT>
+<BR>
+Class ConsistentAreaTester</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.valid.ConsistentAreaTester</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>ConsistentAreaTester</B><DT>extends java.lang.Object</DL>
+
+<P>
+Checks that a <A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>GeometryGraph</CODE></A> representing an area
+ (a <A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A> or <A HREF="../../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiPolygon</CODE></A> )
+ has consistent semantics for area geometries.
+ This check is required for any reasonable polygonal model
+ (including the OGC-SFS model, as well as models which allow ring self-intersection at single points)
+ <p>
+ Checks include:
+ <ul>
+ <li>test for rings which properly intersect
+ (but not for ring self-intersection, or intersections at vertices)
+ <li>test for consistent labelling at all node points
+ (this detects vertex intersections with invalid topology,
+ i.e. where the exterior side of an edge lies in the interior of the area)
+ <li>test for duplicate rings
+ </ul>
+ If an inconsistency is found the location of the problem
+ is recorded and is available to the caller.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html#ConsistentAreaTester(com.vividsolutions.jts.geomgraph.GeometryGraph)">ConsistentAreaTester</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> geomGraph)</CODE>
+
+<BR>
+ Creates a new tester for consistent areas.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html#getInvalidPoint()">getInvalidPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html#hasDuplicateRings()">hasDuplicateRings</A></B>()</CODE>
+
+<BR>
+ Checks for two duplicate rings in an area.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html#isNodeConsistentArea()">isNodeConsistentArea</A></B>()</CODE>
+
+<BR>
+ Check all nodes to see if their labels are consistent with area topology.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ConsistentAreaTester(com.vividsolutions.jts.geomgraph.GeometryGraph)"><!-- --></A><H3>
+ConsistentAreaTester</H3>
+<PRE>
+public <B>ConsistentAreaTester</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> geomGraph)</PRE>
+<DL>
+<DD>Creates a new tester for consistent areas.
+<P>
+<DT><B>Parameters:</B><DD><CODE>geomGraph</CODE> - the topology graph of the area geometry</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getInvalidPoint()"><!-- --></A><H3>
+getInvalidPoint</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getInvalidPoint</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the intersection point, or <code>null</code> if none was found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isNodeConsistentArea()"><!-- --></A><H3>
+isNodeConsistentArea</H3>
+<PRE>
+public boolean <B>isNodeConsistentArea</B>()</PRE>
+<DL>
+<DD>Check all nodes to see if their labels are consistent with area topology.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this area has a consistent node labelling</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasDuplicateRings()"><!-- --></A><H3>
+hasDuplicateRings</H3>
+<PRE>
+public boolean <B>hasDuplicateRings</B>()</PRE>
+<DL>
+<DD>Checks for two duplicate rings in an area.
+ Duplicate rings are rings that are topologically equal
+ (that is, which have the same sequence of points up to point order).
+ If the area is topologically consistent (determined by calling the
+ <code>isNodeConsistentArea</code>,
+ duplicate rings can be found by checking for EdgeBundles which contain
+ more than one EdgeEnd.
+ (This is because topologically consistent areas cannot have two rings sharing
+ the same line segment, unless the rings are equal).
+ The start point of one of the equal rings will be placed in
+ invalidPoint.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if this area Geometry is topologically consistent but has two duplicate rings</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ConsistentAreaTester.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/IsValidOp.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/IsValidOp.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/IsValidOp.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,372 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+IsValidOp
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.valid.IsValidOp class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="IsValidOp";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="IsValidOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.valid</FONT>
+<BR>
+Class IsValidOp</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.valid.IsValidOp</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>IsValidOp</B><DT>extends java.lang.Object</DL>
+
+<P>
+Implements the algorithsm required to compute the <code>isValid()</code> method
+ for <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s.
+ See the documentation for the various geometry types for a specification of validity.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/IsValidOp.html#IsValidOp(com.vividsolutions.jts.geom.Geometry)">IsValidOp</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parentGeometry)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/IsValidOp.html#findPtNotNode(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geomgraph.GeometryGraph)">findPtNotNode</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] testCoords,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> searchRing,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> graph)</CODE>
+
+<BR>
+ Find a point from the list of testCoords
+ that is NOT a node in the edge for the list of searchCoords</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/IsValidOp.html#getValidationError()">getValidationError</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/IsValidOp.html#isValid()">isValid</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/IsValidOp.html#isValid(com.vividsolutions.jts.geom.Coordinate)">isValid</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ Checks whether a coordinate is valid for processing.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/IsValidOp.html#setSelfTouchingRingFormingHoleValid(boolean)">setSelfTouchingRingFormingHoleValid</A></B>(boolean isValid)</CODE>
+
+<BR>
+ Sets whether polygons using <b>Self-Touching Rings</b> to form
+ holes are reported as valid.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="IsValidOp(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+IsValidOp</H3>
+<PRE>
+public <B>IsValidOp</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parentGeometry)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isValid(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+isValid</H3>
+<PRE>
+public static boolean <B>isValid</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD>Checks whether a coordinate is valid for processing.
+ Coordinates are valid iff their x and y ordinates are in the
+ range of the floating point representation.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coord</CODE> - the coordinate to validate
+<DT><B>Returns:</B><DD><code>true</code> if the coordinate is valid</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findPtNotNode(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geomgraph.GeometryGraph)"><!-- --></A><H3>
+findPtNotNode</H3>
+<PRE>
+public static <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>findPtNotNode</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] testCoords,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> searchRing,
+ <A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> graph)</PRE>
+<DL>
+<DD>Find a point from the list of testCoords
+ that is NOT a node in the edge for the list of searchCoords
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the point found, or <code>null</code> if none found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setSelfTouchingRingFormingHoleValid(boolean)"><!-- --></A><H3>
+setSelfTouchingRingFormingHoleValid</H3>
+<PRE>
+public void <B>setSelfTouchingRingFormingHoleValid</B>(boolean isValid)</PRE>
+<DL>
+<DD>Sets whether polygons using <b>Self-Touching Rings</b> to form
+ holes are reported as valid.
+ If this flag is set, the following Self-Touching conditions
+ are treated as being valid:
+ <ul>
+ <li>the shell ring self-touches to create a hole touching the shell
+ <li>a hole ring self-touches to create two holes touching at a point
+ </ul>
+ <p>
+ The default (following the OGC SFS standard)
+ is that this condition is <b>not</b> valid (<code>false</code>).
+ <p>
+ This does not affect whether Self-Touching Rings
+ disconnecting the polygon interior are considered valid
+ (these are considered to be <b>invalid</b> under the SFS, and many other
+ spatial models as well).
+ This includes "bow-tie" shells,
+ which self-touch at a single point causing the interior to
+ be disconnected,
+ and "C-shaped" holes which self-touch at a single point causing an island to be formed.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>isValid</CODE> - states whether geometry with this condition is valid</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isValid()"><!-- --></A><H3>
+isValid</H3>
+<PRE>
+public boolean <B>isValid</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValidationError()"><!-- --></A><H3>
+getValidationError</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A> <B>getValidationError</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="IsValidOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+QuadtreeNestedRingTester
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.valid.QuadtreeNestedRingTester class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="QuadtreeNestedRingTester";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="QuadtreeNestedRingTester.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.valid</FONT>
+<BR>
+Class QuadtreeNestedRingTester</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.valid.QuadtreeNestedRingTester</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>QuadtreeNestedRingTester</B><DT>extends java.lang.Object</DL>
+
+<P>
+Tests whether any of a set of <A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A>s are
+ nested inside another ring in the set, using a <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><CODE>Quadtree</CODE></A>
+ index to speed up the comparisons.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html#QuadtreeNestedRingTester(com.vividsolutions.jts.geomgraph.GeometryGraph)">QuadtreeNestedRingTester</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> graph)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html#add(com.vividsolutions.jts.geom.LinearRing)">add</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> ring)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html#getNestedPoint()">getNestedPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html#isNonNested()">isNonNested</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="QuadtreeNestedRingTester(com.vividsolutions.jts.geomgraph.GeometryGraph)"><!-- --></A><H3>
+QuadtreeNestedRingTester</H3>
+<PRE>
+public <B>QuadtreeNestedRingTester</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> graph)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getNestedPoint()"><!-- --></A><H3>
+getNestedPoint</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getNestedPoint</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geom.LinearRing)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> ring)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isNonNested()"><!-- --></A><H3>
+isNonNested</H3>
+<PRE>
+public boolean <B>isNonNested</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="QuadtreeNestedRingTester.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/RepeatedPointTester.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/RepeatedPointTester.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/RepeatedPointTester.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+RepeatedPointTester
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.valid.RepeatedPointTester class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="RepeatedPointTester";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RepeatedPointTester.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.valid</FONT>
+<BR>
+Class RepeatedPointTester</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.valid.RepeatedPointTester</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>RepeatedPointTester</B><DT>extends java.lang.Object</DL>
+
+<P>
+Implements the appropriate checks for repeated points
+ (consecutive identical coordinates) as defined in the
+ JTS spec.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/RepeatedPointTester.html#RepeatedPointTester()">RepeatedPointTester</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/RepeatedPointTester.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/RepeatedPointTester.html#hasRepeatedPoint(com.vividsolutions.jts.geom.Coordinate[])">hasRepeatedPoint</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/RepeatedPointTester.html#hasRepeatedPoint(com.vividsolutions.jts.geom.Geometry)">hasRepeatedPoint</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="RepeatedPointTester()"><!-- --></A><H3>
+RepeatedPointTester</H3>
+<PRE>
+public <B>RepeatedPointTester</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasRepeatedPoint(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+hasRepeatedPoint</H3>
+<PRE>
+public boolean <B>hasRepeatedPoint</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> g)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hasRepeatedPoint(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+hasRepeatedPoint</H3>
+<PRE>
+public boolean <B>hasRepeatedPoint</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] coord)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="RepeatedPointTester.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+SimpleNestedRingTester
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.valid.SimpleNestedRingTester class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SimpleNestedRingTester";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimpleNestedRingTester.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.valid</FONT>
+<BR>
+Class SimpleNestedRingTester</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.valid.SimpleNestedRingTester</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SimpleNestedRingTester</B><DT>extends java.lang.Object</DL>
+
+<P>
+Tests whether any of a set of <A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A>s are
+ nested inside another ring in the set, using a simple O(n^2)
+ comparison.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html#SimpleNestedRingTester(com.vividsolutions.jts.geomgraph.GeometryGraph)">SimpleNestedRingTester</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> graph)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html#add(com.vividsolutions.jts.geom.LinearRing)">add</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> ring)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html#getNestedPoint()">getNestedPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html#isNonNested()">isNonNested</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SimpleNestedRingTester(com.vividsolutions.jts.geomgraph.GeometryGraph)"><!-- --></A><H3>
+SimpleNestedRingTester</H3>
+<PRE>
+public <B>SimpleNestedRingTester</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> graph)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(com.vividsolutions.jts.geom.LinearRing)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> ring)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNestedPoint()"><!-- --></A><H3>
+getNestedPoint</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getNestedPoint</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isNonNested()"><!-- --></A><H3>
+isNonNested</H3>
+<PRE>
+public boolean <B>isNonNested</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimpleNestedRingTester.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+SweeplineNestedRingTester
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.valid.SweeplineNestedRingTester class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SweeplineNestedRingTester";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SweeplineNestedRingTester.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.valid</FONT>
+<BR>
+Class SweeplineNestedRingTester</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.valid.SweeplineNestedRingTester</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SweeplineNestedRingTester</B><DT>extends java.lang.Object</DL>
+
+<P>
+Tests whether any of a set of <A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A>s are
+ nested inside another ring in the set, using a <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline"><CODE>SweepLineIndex</CODE></A>
+ index to speed up the comparisons.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html#SweeplineNestedRingTester(com.vividsolutions.jts.geomgraph.GeometryGraph)">SweeplineNestedRingTester</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> graph)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html#add(com.vividsolutions.jts.geom.LinearRing)">add</A></B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> ring)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html#getNestedPoint()">getNestedPoint</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html#isNonNested()">isNonNested</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SweeplineNestedRingTester(com.vividsolutions.jts.geomgraph.GeometryGraph)"><!-- --></A><H3>
+SweeplineNestedRingTester</H3>
+<PRE>
+public <B>SweeplineNestedRingTester</B>(<A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A> graph)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getNestedPoint()"><!-- --></A><H3>
+getNestedPoint</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getNestedPoint</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geom.LinearRing)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> ring)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isNonNested()"><!-- --></A><H3>
+isNonNested</H3>
+<PRE>
+public boolean <B>isNonNested</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SweeplineNestedRingTester.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/TopologyValidationError.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/TopologyValidationError.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/TopologyValidationError.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,620 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+TopologyValidationError
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.valid.TopologyValidationError class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="TopologyValidationError";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TopologyValidationError.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.operation.valid</FONT>
+<BR>
+Class TopologyValidationError</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.operation.valid.TopologyValidationError</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>TopologyValidationError</B><DT>extends java.lang.Object</DL>
+
+<P>
+Contains information about the nature and location of a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ validation error
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#DISCONNECTED_INTERIOR">DISCONNECTED_INTERIOR</A></B></CODE>
+
+<BR>
+ Indicates that the interior of a polygon is disjoint
+ (often caused by set of contiguous holes splitting the polygon into two parts)</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#DUPLICATE_RINGS">DUPLICATE_RINGS</A></B></CODE>
+
+<BR>
+ Indicates that a polygonal geometry contains two rings which are identical</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#ERROR">ERROR</A></B></CODE>
+
+<BR>
+ <B>Deprecated.</B> <I></I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#HOLE_OUTSIDE_SHELL">HOLE_OUTSIDE_SHELL</A></B></CODE>
+
+<BR>
+ Indicates that a hole of a polygon lies partially or completely in the exterior of the shell</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#INVALID_COORDINATE">INVALID_COORDINATE</A></B></CODE>
+
+<BR>
+ Indicates that the <code>X</code> or <code>Y</code> ordinate of
+ a Coordinate is not a valid numeric value (e.g.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#NESTED_HOLES">NESTED_HOLES</A></B></CODE>
+
+<BR>
+ Indicates that a hole lies in the interior of another hole in the same polygon</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#NESTED_SHELLS">NESTED_SHELLS</A></B></CODE>
+
+<BR>
+ Indicates that a polygon component of a MultiPolygon lies inside another polygonal component</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#REPEATED_POINT">REPEATED_POINT</A></B></CODE>
+
+<BR>
+ <B>Deprecated.</B> <I></I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#RING_NOT_CLOSED">RING_NOT_CLOSED</A></B></CODE>
+
+<BR>
+ Indicates that a ring is not correctly closed
+ (the first and the last coordinate are different)</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#RING_SELF_INTERSECTION">RING_SELF_INTERSECTION</A></B></CODE>
+
+<BR>
+ Indicates that a ring self-intersects</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#SELF_INTERSECTION">SELF_INTERSECTION</A></B></CODE>
+
+<BR>
+ Indicates that two rings of a polygonal geometry intersect</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#TOO_FEW_POINTS">TOO_FEW_POINTS</A></B></CODE>
+
+<BR>
+ Indicates that either
+
+ a LineString contains a single point
+ a LinearRing contains 2 or 3 points
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#TopologyValidationError(int)">TopologyValidationError</A></B>(int errorType)</CODE>
+
+<BR>
+ Creates a validation error of the given type with a null location</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#TopologyValidationError(int, com.vividsolutions.jts.geom.Coordinate)">TopologyValidationError</A></B>(int errorType,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Creates a validation error with the given type and location</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ Returns the location of this error (on the <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> containing the error).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#getErrorType()">getErrorType</A></B>()</CODE>
+
+<BR>
+ Gets the type of this error.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#getMessage()">getMessage</A></B>()</CODE>
+
+<BR>
+ Gets an error message describing this error.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ Gets a message describing the type and location of this error.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ERROR"><!-- --></A><H3>
+ERROR</H3>
+<PRE>
+public static final int <B>ERROR</B></PRE>
+<DL>
+<DD><B>Deprecated.</B> <I></I>
+<P>
+<DD>Not used
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.valid.TopologyValidationError.ERROR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="REPEATED_POINT"><!-- --></A><H3>
+REPEATED_POINT</H3>
+<PRE>
+public static final int <B>REPEATED_POINT</B></PRE>
+<DL>
+<DD><B>Deprecated.</B> <I></I>
+<P>
+<DD>No longer used - repeated points are considered valid as per the SFS
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.valid.TopologyValidationError.REPEATED_POINT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="HOLE_OUTSIDE_SHELL"><!-- --></A><H3>
+HOLE_OUTSIDE_SHELL</H3>
+<PRE>
+public static final int <B>HOLE_OUTSIDE_SHELL</B></PRE>
+<DL>
+<DD>Indicates that a hole of a polygon lies partially or completely in the exterior of the shell
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.valid.TopologyValidationError.HOLE_OUTSIDE_SHELL">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="NESTED_HOLES"><!-- --></A><H3>
+NESTED_HOLES</H3>
+<PRE>
+public static final int <B>NESTED_HOLES</B></PRE>
+<DL>
+<DD>Indicates that a hole lies in the interior of another hole in the same polygon
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.valid.TopologyValidationError.NESTED_HOLES">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DISCONNECTED_INTERIOR"><!-- --></A><H3>
+DISCONNECTED_INTERIOR</H3>
+<PRE>
+public static final int <B>DISCONNECTED_INTERIOR</B></PRE>
+<DL>
+<DD>Indicates that the interior of a polygon is disjoint
+ (often caused by set of contiguous holes splitting the polygon into two parts)
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.valid.TopologyValidationError.DISCONNECTED_INTERIOR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="SELF_INTERSECTION"><!-- --></A><H3>
+SELF_INTERSECTION</H3>
+<PRE>
+public static final int <B>SELF_INTERSECTION</B></PRE>
+<DL>
+<DD>Indicates that two rings of a polygonal geometry intersect
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.valid.TopologyValidationError.SELF_INTERSECTION">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="RING_SELF_INTERSECTION"><!-- --></A><H3>
+RING_SELF_INTERSECTION</H3>
+<PRE>
+public static final int <B>RING_SELF_INTERSECTION</B></PRE>
+<DL>
+<DD>Indicates that a ring self-intersects
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.valid.TopologyValidationError.RING_SELF_INTERSECTION">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="NESTED_SHELLS"><!-- --></A><H3>
+NESTED_SHELLS</H3>
+<PRE>
+public static final int <B>NESTED_SHELLS</B></PRE>
+<DL>
+<DD>Indicates that a polygon component of a MultiPolygon lies inside another polygonal component
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.valid.TopologyValidationError.NESTED_SHELLS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DUPLICATE_RINGS"><!-- --></A><H3>
+DUPLICATE_RINGS</H3>
+<PRE>
+public static final int <B>DUPLICATE_RINGS</B></PRE>
+<DL>
+<DD>Indicates that a polygonal geometry contains two rings which are identical
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.valid.TopologyValidationError.DUPLICATE_RINGS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TOO_FEW_POINTS"><!-- --></A><H3>
+TOO_FEW_POINTS</H3>
+<PRE>
+public static final int <B>TOO_FEW_POINTS</B></PRE>
+<DL>
+<DD>Indicates that either
+ <ul>
+ <li>a LineString contains a single point
+ <li>a LinearRing contains 2 or 3 points
+ </ul>
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.valid.TopologyValidationError.TOO_FEW_POINTS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="INVALID_COORDINATE"><!-- --></A><H3>
+INVALID_COORDINATE</H3>
+<PRE>
+public static final int <B>INVALID_COORDINATE</B></PRE>
+<DL>
+<DD>Indicates that the <code>X</code> or <code>Y</code> ordinate of
+ a Coordinate is not a valid numeric value (e.g. <CODE>Double.NaN</CODE> )
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.valid.TopologyValidationError.INVALID_COORDINATE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="RING_NOT_CLOSED"><!-- --></A><H3>
+RING_NOT_CLOSED</H3>
+<PRE>
+public static final int <B>RING_NOT_CLOSED</B></PRE>
+<DL>
+<DD>Indicates that a ring is not correctly closed
+ (the first and the last coordinate are different)
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.operation.valid.TopologyValidationError.RING_NOT_CLOSED">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="TopologyValidationError(int, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+TopologyValidationError</H3>
+<PRE>
+public <B>TopologyValidationError</B>(int errorType,
+ <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Creates a validation error with the given type and location
+<P>
+<DT><B>Parameters:</B><DD><CODE>errorType</CODE> - the type of the error<DD><CODE>pt</CODE> - the location of the error</DL>
+<HR>
+
+<A NAME="TopologyValidationError(int)"><!-- --></A><H3>
+TopologyValidationError</H3>
+<PRE>
+public <B>TopologyValidationError</B>(int errorType)</PRE>
+<DL>
+<DD>Creates a validation error of the given type with a null location
+<P>
+<DT><B>Parameters:</B><DD><CODE>errorType</CODE> - the type of the error</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD>Returns the location of this error (on the <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> containing the error).
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <A HREF="../../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> on the input geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getErrorType()"><!-- --></A><H3>
+getErrorType</H3>
+<PRE>
+public int <B>getErrorType</B>()</PRE>
+<DL>
+<DD>Gets the type of this error.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the error type</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMessage()"><!-- --></A><H3>
+getMessage</H3>
+<PRE>
+public java.lang.String <B>getMessage</B>()</PRE>
+<DL>
+<DD>Gets an error message describing this error.
+ The error message does not describe the location of the error.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>()</PRE>
+<DL>
+<DD>Gets a message describing the type and location of this error.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TopologyValidationError.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.valid
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.valid package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/operation/valid/package-summary.html" target="classFrame">com.vividsolutions.jts.operation.valid</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="ConnectedInteriorTester.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">ConnectedInteriorTester</A>
+<BR>
+<A HREF="ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">ConsistentAreaTester</A>
+<BR>
+<A HREF="IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">IsValidOp</A>
+<BR>
+<A HREF="QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">QuadtreeNestedRingTester</A>
+<BR>
+<A HREF="RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">RepeatedPointTester</A>
+<BR>
+<A HREF="SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">SimpleNestedRingTester</A>
+<BR>
+<A HREF="SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">SweeplineNestedRingTester</A>
+<BR>
+<A HREF="TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid" target="classFrame">TopologyValidationError</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.valid
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.operation.valid package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.valid";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/planargraph/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.operation.valid
+</H2>
+Provides classes for testing the validity of geometries.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html" title="class in com.vividsolutions.jts.operation.valid">ConnectedInteriorTester</A></B></TD>
+<TD>This class tests that the interior of an area <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ ( <A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A> or <A HREF="../../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiPolygon</CODE></A> )
+ is connected.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid">ConsistentAreaTester</A></B></TD>
+<TD>Checks that a <A HREF="../../../../../com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>GeometryGraph</CODE></A> representing an area
+ (a <A HREF="../../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A> or <A HREF="../../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiPolygon</CODE></A> )
+ has consistent semantics for area geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid">IsValidOp</A></B></TD>
+<TD>Implements the algorithsm required to compute the <code>isValid()</code> method
+ for <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">QuadtreeNestedRingTester</A></B></TD>
+<TD>Tests whether any of a set of <A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A>s are
+ nested inside another ring in the set, using a <A HREF="../../../../../com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><CODE>Quadtree</CODE></A>
+ index to speed up the comparisons.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid">RepeatedPointTester</A></B></TD>
+<TD>Implements the appropriate checks for repeated points
+ (consecutive identical coordinates) as defined in the
+ JTS spec.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">SimpleNestedRingTester</A></B></TD>
+<TD>Tests whether any of a set of <A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A>s are
+ nested inside another ring in the set, using a simple O(n^2)
+ comparison.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">SweeplineNestedRingTester</A></B></TD>
+<TD>Tests whether any of a set of <A HREF="../../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A>s are
+ nested inside another ring in the set, using a <A HREF="../../../../../com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline"><CODE>SweepLineIndex</CODE></A>
+ index to speed up the comparisons.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A></B></TD>
+<TD>Contains information about the nature and location of a <A HREF="../../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ validation error</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.operation.valid Description
+</H2>
+
+<P>
+Provides classes for testing the validity of geometries.
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/planargraph/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/operation/valid/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.operation.valid Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.operation.valid Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/planargraph/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.operation.valid
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>ConnectedInteriorTester</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="../../../../../com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>ConsistentAreaTester</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="../../../../../com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid"><B>IsValidOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="../../../../../com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>QuadtreeNestedRingTester</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="../../../../../com/vividsolutions/jts/operation/valid/RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>RepeatedPointTester</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="../../../../../com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>SimpleNestedRingTester</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="../../../../../com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>SweeplineNestedRingTester</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="../../../../../com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid"><B>TopologyValidationError</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/operation/relate/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/planargraph/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../com/vividsolutions/jts/package-summary.html" target="classFrame">com.vividsolutions.jts</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="JTSVersion.html" title="class in com.vividsolutions.jts" target="classFrame">JTSVersion</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV PACKAGE
+ <A HREF="../../../com/vividsolutions/jts/algorithm/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts">JTSVersion</A></B></TD>
+<TD>JTS API version information.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV PACKAGE
+ <A HREF="../../../com/vividsolutions/jts/algorithm/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ <A HREF="../../../com/vividsolutions/jts/algorithm/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.<A HREF="../../../com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts"><B>JTSVersion</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ <A HREF="../../../com/vividsolutions/jts/algorithm/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/DirectedEdge.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/DirectedEdge.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/DirectedEdge.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,901 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+DirectedEdge
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.planargraph.DirectedEdge class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="DirectedEdge";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DirectedEdge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.planargraph</FONT>
+<BR>
+Class DirectedEdge</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">com.vividsolutions.jts.planargraph.GraphComponent</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.planargraph.DirectedEdge</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable</DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeDirectedEdge</A>, <A HREF="../../../../com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize">PolygonizeDirectedEdge</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>DirectedEdge</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A><DT>implements java.lang.Comparable</DL>
+
+<P>
+Represents a directed edge in a <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>. A DirectedEdge may or
+ may not have a reference to a parent <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A> (some applications of
+ planar graphs may not require explicit Edge objects to be created). Usually
+ a client using a <code>PlanarGraph</code> will subclass <code>DirectedEdge</code>
+ to add its own application-specific data and methods.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#angle">angle</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#cga">cga</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#edgeDirection">edgeDirection</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#from">from</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#p0">p0</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#p1">p1</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#parentEdge">parentEdge</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#quadrant">quadrant</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#sym">sym</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#to">to</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.planargraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked">isMarked</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited">isVisited</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#DirectedEdge(com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.geom.Coordinate, boolean)">DirectedEdge</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> from,
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> to,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> directionPt,
+ boolean edgeDirection)</CODE>
+
+<BR>
+ Constructs a DirectedEdge connecting the <code>from</code> node to the
+ <code>to</code> node.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#compareDirection(com.vividsolutions.jts.planargraph.DirectedEdge)">compareDirection</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> e)</CODE>
+
+<BR>
+ Returns 1 if this DirectedEdge has a greater angle with the
+ positive x-axis than b", 0 if the DirectedEdges are collinear, and -1 otherwise.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#compareTo(java.lang.Object)">compareTo</A></B>(java.lang.Object obj)</CODE>
+
+<BR>
+ Returns 1 if this DirectedEdge has a greater angle with the
+ positive x-axis than b", 0 if the DirectedEdges are collinear, and -1 otherwise.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getAngle()">getAngle</A></B>()</CODE>
+
+<BR>
+ Returns the angle that the start of this DirectedEdge makes with the
+ positive x-axis, in radians.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ Returns the coordinate of the from-node.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getDirectionPt()">getDirectionPt</A></B>()</CODE>
+
+<BR>
+ Returns a point to which an imaginary line is drawn from the from-node to
+ specify this DirectedEdge's orientation.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getEdge()">getEdge</A></B>()</CODE>
+
+<BR>
+ Returns this DirectedEdge's parent Edge, or null if it has none.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getEdgeDirection()">getEdgeDirection</A></B>()</CODE>
+
+<BR>
+ Returns whether the direction of the parent Edge (if any) is the same as that
+ of this Directed Edge.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getFromNode()">getFromNode</A></B>()</CODE>
+
+<BR>
+ Returns the node from which this DirectedEdge leaves.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getQuadrant()">getQuadrant</A></B>()</CODE>
+
+<BR>
+ Returns 0, 1, 2, or 3, indicating the quadrant in which this DirectedEdge's
+ orientation lies.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getSym()">getSym</A></B>()</CODE>
+
+<BR>
+ Returns the symmetric DirectedEdge -- the other DirectedEdge associated with
+ this DirectedEdge's parent Edge.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#getToNode()">getToNode</A></B>()</CODE>
+
+<BR>
+ Returns the node to which this DirectedEdge goes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#isRemoved()">isRemoved</A></B>()</CODE>
+
+<BR>
+ Tests whether this directed edge has been removed from its containing graph</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#print(java.io.PrintStream)">print</A></B>(java.io.PrintStream out)</CODE>
+
+<BR>
+ Prints a detailed string representation of this DirectedEdge to the given PrintStream.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#setEdge(com.vividsolutions.jts.planargraph.Edge)">setEdge</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> parentEdge)</CODE>
+
+<BR>
+ Associates this DirectedEdge with an Edge (possibly null, indicating no associated
+ Edge).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#setSym(com.vividsolutions.jts.planargraph.DirectedEdge)">setSym</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> sym)</CODE>
+
+<BR>
+ Sets this DirectedEdge's symmetric DirectedEdge, which runs in the opposite
+ direction.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html#toEdges(java.util.Collection)">toEdges</A></B>(java.util.Collection dirEdges)</CODE>
+
+<BR>
+ Returns a List containing the parent Edge (possibly null) for each of the given
+ DirectedEdges.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.planargraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getComponentWithVisitedState(java.util.Iterator, boolean)">getComponentWithVisitedState</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getContext()">getContext</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getData()">getData</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked()">isMarked</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited()">isVisited</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setContext(java.lang.Object)">setContext</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setData(java.lang.Object)">setData</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(boolean)">setMarked</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(java.util.Iterator, boolean)">setMarked</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(boolean)">setVisited</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(java.util.Iterator, boolean)">setVisited</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="cga"><!-- --></A><H3>
+cga</H3>
+<PRE>
+protected static final <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A> <B>cga</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="parentEdge"><!-- --></A><H3>
+parentEdge</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> <B>parentEdge</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="from"><!-- --></A><H3>
+from</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> <B>from</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="to"><!-- --></A><H3>
+to</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> <B>to</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="p0"><!-- --></A><H3>
+p0</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>p0</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="p1"><!-- --></A><H3>
+p1</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>p1</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="sym"><!-- --></A><H3>
+sym</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> <B>sym</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="edgeDirection"><!-- --></A><H3>
+edgeDirection</H3>
+<PRE>
+protected boolean <B>edgeDirection</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="quadrant"><!-- --></A><H3>
+quadrant</H3>
+<PRE>
+protected int <B>quadrant</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="angle"><!-- --></A><H3>
+angle</H3>
+<PRE>
+protected double <B>angle</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="DirectedEdge(com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.geom.Coordinate, boolean)"><!-- --></A><H3>
+DirectedEdge</H3>
+<PRE>
+public <B>DirectedEdge</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> from,
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> to,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> directionPt,
+ boolean edgeDirection)</PRE>
+<DL>
+<DD>Constructs a DirectedEdge connecting the <code>from</code> node to the
+ <code>to</code> node.
+<P>
+<DT><B>Parameters:</B><DD><CODE>directionPt</CODE> - specifies this DirectedEdge's direction vector
+ (determined by the vector from the <code>from</code> node
+ to <code>directionPt</code>)<DD><CODE>edgeDirection</CODE> - whether this DirectedEdge's direction is the same as or
+ opposite to that of the parent Edge (if any)</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="toEdges(java.util.Collection)"><!-- --></A><H3>
+toEdges</H3>
+<PRE>
+public static java.util.List <B>toEdges</B>(java.util.Collection dirEdges)</PRE>
+<DL>
+<DD>Returns a List containing the parent Edge (possibly null) for each of the given
+ DirectedEdges.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdge()"><!-- --></A><H3>
+getEdge</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> <B>getEdge</B>()</PRE>
+<DL>
+<DD>Returns this DirectedEdge's parent Edge, or null if it has none.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setEdge(com.vividsolutions.jts.planargraph.Edge)"><!-- --></A><H3>
+setEdge</H3>
+<PRE>
+public void <B>setEdge</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> parentEdge)</PRE>
+<DL>
+<DD>Associates this DirectedEdge with an Edge (possibly null, indicating no associated
+ Edge).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getQuadrant()"><!-- --></A><H3>
+getQuadrant</H3>
+<PRE>
+public int <B>getQuadrant</B>()</PRE>
+<DL>
+<DD>Returns 0, 1, 2, or 3, indicating the quadrant in which this DirectedEdge's
+ orientation lies.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDirectionPt()"><!-- --></A><H3>
+getDirectionPt</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getDirectionPt</B>()</PRE>
+<DL>
+<DD>Returns a point to which an imaginary line is drawn from the from-node to
+ specify this DirectedEdge's orientation.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdgeDirection()"><!-- --></A><H3>
+getEdgeDirection</H3>
+<PRE>
+public boolean <B>getEdgeDirection</B>()</PRE>
+<DL>
+<DD>Returns whether the direction of the parent Edge (if any) is the same as that
+ of this Directed Edge.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFromNode()"><!-- --></A><H3>
+getFromNode</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> <B>getFromNode</B>()</PRE>
+<DL>
+<DD>Returns the node from which this DirectedEdge leaves.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getToNode()"><!-- --></A><H3>
+getToNode</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> <B>getToNode</B>()</PRE>
+<DL>
+<DD>Returns the node to which this DirectedEdge goes.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD>Returns the coordinate of the from-node.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAngle()"><!-- --></A><H3>
+getAngle</H3>
+<PRE>
+public double <B>getAngle</B>()</PRE>
+<DL>
+<DD>Returns the angle that the start of this DirectedEdge makes with the
+ positive x-axis, in radians.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSym()"><!-- --></A><H3>
+getSym</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> <B>getSym</B>()</PRE>
+<DL>
+<DD>Returns the symmetric DirectedEdge -- the other DirectedEdge associated with
+ this DirectedEdge's parent Edge.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setSym(com.vividsolutions.jts.planargraph.DirectedEdge)"><!-- --></A><H3>
+setSym</H3>
+<PRE>
+public void <B>setSym</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> sym)</PRE>
+<DL>
+<DD>Sets this DirectedEdge's symmetric DirectedEdge, which runs in the opposite
+ direction.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isRemoved()"><!-- --></A><H3>
+isRemoved</H3>
+<PRE>
+public boolean <B>isRemoved</B>()</PRE>
+<DL>
+<DD>Tests whether this directed edge has been removed from its containing graph
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isRemoved()">isRemoved</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this directed edge is removed</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(java.lang.Object obj)</PRE>
+<DL>
+<DD>Returns 1 if this DirectedEdge has a greater angle with the
+ positive x-axis than b", 0 if the DirectedEdges are collinear, and -1 otherwise.
+ <p>
+ Using the obvious algorithm of simply computing the angle is not robust,
+ since the angle calculation is susceptible to roundoff. A robust algorithm
+ is:
+ <ul>
+ <li>first compare the quadrants. If the quadrants are different, it it
+ trivial to determine which vector is "greater".
+ <li>if the vectors lie in the same quadrant, the robust
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#computeOrientation(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><CODE>CGAlgorithms.computeOrientation(Coordinate, Coordinate, Coordinate)</CODE></A>
+ function can be used to decide the relative orientation of the vectors.
+ </ul>
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE>java.lang.Comparable</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareDirection(com.vividsolutions.jts.planargraph.DirectedEdge)"><!-- --></A><H3>
+compareDirection</H3>
+<PRE>
+public int <B>compareDirection</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> e)</PRE>
+<DL>
+<DD>Returns 1 if this DirectedEdge has a greater angle with the
+ positive x-axis than b", 0 if the DirectedEdges are collinear, and -1 otherwise.
+ <p>
+ Using the obvious algorithm of simply computing the angle is not robust,
+ since the angle calculation is susceptible to roundoff. A robust algorithm
+ is:
+ <ul>
+ <li>first compare the quadrants. If the quadrants are different, it it
+ trivial to determine which vector is "greater".
+ <li>if the vectors lie in the same quadrant, the robust
+ <A HREF="../../../../com/vividsolutions/jts/algorithm/CGAlgorithms.html#computeOrientation(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><CODE>CGAlgorithms.computeOrientation(Coordinate, Coordinate, Coordinate)</CODE></A>
+ function can be used to decide the relative orientation of the vectors.
+ </ul>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.io.PrintStream)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public void <B>print</B>(java.io.PrintStream out)</PRE>
+<DL>
+<DD>Prints a detailed string representation of this DirectedEdge to the given PrintStream.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DirectedEdge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/DirectedEdgeStar.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/DirectedEdgeStar.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/DirectedEdgeStar.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,493 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+DirectedEdgeStar
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.planargraph.DirectedEdgeStar class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="DirectedEdgeStar";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DirectedEdgeStar.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.planargraph</FONT>
+<BR>
+Class DirectedEdgeStar</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.planargraph.DirectedEdgeStar</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>DirectedEdgeStar</B><DT>extends java.lang.Object</DL>
+
+<P>
+A sorted collection of <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A>s which leave a <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A>
+ in a <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#outEdges">outEdges</A></B></CODE>
+
+<BR>
+ The underlying list of outgoing DirectedEdges</TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#DirectedEdgeStar()">DirectedEdgeStar</A></B>()</CODE>
+
+<BR>
+ Constructs a DirectedEdgeStar with no edges.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#add(com.vividsolutions.jts.planargraph.DirectedEdge)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de)</CODE>
+
+<BR>
+ Adds a new member to this DirectedEdgeStar.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ Returns the coordinate for the node at wich this star is based</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#getDegree()">getDegree</A></B>()</CODE>
+
+<BR>
+ Returns the number of edges around the Node associated with this DirectedEdgeStar.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#getEdges()">getEdges</A></B>()</CODE>
+
+<BR>
+ Returns the DirectedEdges, in ascending order by angle with the positive x-axis.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#getIndex(com.vividsolutions.jts.planargraph.DirectedEdge)">getIndex</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> dirEdge)</CODE>
+
+<BR>
+ Returns the zero-based index of the given DirectedEdge, after sorting in ascending order
+ by angle with the positive x-axis.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#getIndex(com.vividsolutions.jts.planargraph.Edge)">getIndex</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> edge)</CODE>
+
+<BR>
+ Returns the zero-based index of the given Edge, after sorting in ascending order
+ by angle with the positive x-axis.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#getIndex(int)">getIndex</A></B>(int i)</CODE>
+
+<BR>
+ Returns the remainder when i is divided by the number of edges in this
+ DirectedEdgeStar.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#getNextEdge(com.vividsolutions.jts.planargraph.DirectedEdge)">getNextEdge</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> dirEdge)</CODE>
+
+<BR>
+ Returns the DirectedEdge on the left-hand side of the given DirectedEdge (which
+ must be a member of this DirectedEdgeStar).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#iterator()">iterator</A></B>()</CODE>
+
+<BR>
+ Returns an Iterator over the DirectedEdges, in ascending order by angle with the positive x-axis.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#remove(com.vividsolutions.jts.planargraph.DirectedEdge)">remove</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de)</CODE>
+
+<BR>
+ Drops a member of this DirectedEdgeStar.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="outEdges"><!-- --></A><H3>
+outEdges</H3>
+<PRE>
+protected java.util.List <B>outEdges</B></PRE>
+<DL>
+<DD>The underlying list of outgoing DirectedEdges
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="DirectedEdgeStar()"><!-- --></A><H3>
+DirectedEdgeStar</H3>
+<PRE>
+public <B>DirectedEdgeStar</B>()</PRE>
+<DL>
+<DD>Constructs a DirectedEdgeStar with no edges.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(com.vividsolutions.jts.planargraph.DirectedEdge)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de)</PRE>
+<DL>
+<DD>Adds a new member to this DirectedEdgeStar.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(com.vividsolutions.jts.planargraph.DirectedEdge)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de)</PRE>
+<DL>
+<DD>Drops a member of this DirectedEdgeStar.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="iterator()"><!-- --></A><H3>
+iterator</H3>
+<PRE>
+public java.util.Iterator <B>iterator</B>()</PRE>
+<DL>
+<DD>Returns an Iterator over the DirectedEdges, in ascending order by angle with the positive x-axis.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDegree()"><!-- --></A><H3>
+getDegree</H3>
+<PRE>
+public int <B>getDegree</B>()</PRE>
+<DL>
+<DD>Returns the number of edges around the Node associated with this DirectedEdgeStar.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD>Returns the coordinate for the node at wich this star is based
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdges()"><!-- --></A><H3>
+getEdges</H3>
+<PRE>
+public java.util.List <B>getEdges</B>()</PRE>
+<DL>
+<DD>Returns the DirectedEdges, in ascending order by angle with the positive x-axis.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIndex(com.vividsolutions.jts.planargraph.Edge)"><!-- --></A><H3>
+getIndex</H3>
+<PRE>
+public int <B>getIndex</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> edge)</PRE>
+<DL>
+<DD>Returns the zero-based index of the given Edge, after sorting in ascending order
+ by angle with the positive x-axis.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIndex(com.vividsolutions.jts.planargraph.DirectedEdge)"><!-- --></A><H3>
+getIndex</H3>
+<PRE>
+public int <B>getIndex</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> dirEdge)</PRE>
+<DL>
+<DD>Returns the zero-based index of the given DirectedEdge, after sorting in ascending order
+ by angle with the positive x-axis.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIndex(int)"><!-- --></A><H3>
+getIndex</H3>
+<PRE>
+public int <B>getIndex</B>(int i)</PRE>
+<DL>
+<DD>Returns the remainder when i is divided by the number of edges in this
+ DirectedEdgeStar.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNextEdge(com.vividsolutions.jts.planargraph.DirectedEdge)"><!-- --></A><H3>
+getNextEdge</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> <B>getNextEdge</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> dirEdge)</PRE>
+<DL>
+<DD>Returns the DirectedEdge on the left-hand side of the given DirectedEdge (which
+ must be a member of this DirectedEdgeStar).
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DirectedEdgeStar.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/Edge.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/Edge.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/Edge.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,442 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+Edge
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.planargraph.Edge class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Edge";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Edge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.planargraph</FONT>
+<BR>
+Class Edge</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">com.vividsolutions.jts.planargraph.GraphComponent</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.planargraph.Edge</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeEdge</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>Edge</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></DL>
+
+<P>
+Represents an undirected edge of a <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>. An undirected edge
+ in fact simply acts as a central point of reference for two opposite
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A>s.
+ <p>
+ Usually a client using a <code>PlanarGraph</code> will subclass <code>Edge</code>
+ to add its own application-specific data and methods.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html#dirEdge">dirEdge</A></B></CODE>
+
+<BR>
+ The two DirectedEdges associated with this Edge.</TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.planargraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked">isMarked</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited">isVisited</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html#Edge()">Edge</A></B>()</CODE>
+
+<BR>
+ Constructs an Edge whose DirectedEdges are not yet set.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html#Edge(com.vividsolutions.jts.planargraph.DirectedEdge, com.vividsolutions.jts.planargraph.DirectedEdge)">Edge</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de0,
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de1)</CODE>
+
+<BR>
+ Constructs an Edge initialized with the given DirectedEdges, and for each
+ DirectedEdge: sets the Edge, sets the symmetric DirectedEdge, and adds
+ this Edge to its from-Node.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html#getDirEdge(int)">getDirEdge</A></B>(int i)</CODE>
+
+<BR>
+ Returns one of the DirectedEdges associated with this Edge.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html#getDirEdge(com.vividsolutions.jts.planargraph.Node)">getDirEdge</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> fromNode)</CODE>
+
+<BR>
+ Returns the <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A> that starts from the given node, or null if the
+ node is not one of the two nodes associated with this Edge.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html#getOppositeNode(com.vividsolutions.jts.planargraph.Node)">getOppositeNode</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> node)</CODE>
+
+<BR>
+ If <code>node</code> is one of the two nodes associated with this Edge,
+ returns the other node; otherwise returns null.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html#isRemoved()">isRemoved</A></B>()</CODE>
+
+<BR>
+ Tests whether this edge has been removed from its containing graph</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html#setDirectedEdges(com.vividsolutions.jts.planargraph.DirectedEdge, com.vividsolutions.jts.planargraph.DirectedEdge)">setDirectedEdges</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de0,
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de1)</CODE>
+
+<BR>
+ Initializes this Edge's two DirectedEdges, and for each DirectedEdge: sets the
+ Edge, sets the symmetric DirectedEdge, and adds this Edge to its from-Node.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.planargraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getComponentWithVisitedState(java.util.Iterator, boolean)">getComponentWithVisitedState</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getContext()">getContext</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getData()">getData</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked()">isMarked</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited()">isVisited</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setContext(java.lang.Object)">setContext</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setData(java.lang.Object)">setData</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(boolean)">setMarked</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(java.util.Iterator, boolean)">setMarked</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(boolean)">setVisited</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(java.util.Iterator, boolean)">setVisited</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="dirEdge"><!-- --></A><H3>
+dirEdge</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>[] <B>dirEdge</B></PRE>
+<DL>
+<DD>The two DirectedEdges associated with this Edge.
+ Index 0 is forward, 1 is reverse.
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Edge()"><!-- --></A><H3>
+Edge</H3>
+<PRE>
+public <B>Edge</B>()</PRE>
+<DL>
+<DD>Constructs an Edge whose DirectedEdges are not yet set. Be sure to call
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html#setDirectedEdges(com.vividsolutions.jts.planargraph.DirectedEdge, com.vividsolutions.jts.planargraph.DirectedEdge)"><CODE>setDirectedEdges(DirectedEdge, DirectedEdge)</CODE></A>
+<P>
+</DL>
+<HR>
+
+<A NAME="Edge(com.vividsolutions.jts.planargraph.DirectedEdge, com.vividsolutions.jts.planargraph.DirectedEdge)"><!-- --></A><H3>
+Edge</H3>
+<PRE>
+public <B>Edge</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de0,
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de1)</PRE>
+<DL>
+<DD>Constructs an Edge initialized with the given DirectedEdges, and for each
+ DirectedEdge: sets the Edge, sets the symmetric DirectedEdge, and adds
+ this Edge to its from-Node.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setDirectedEdges(com.vividsolutions.jts.planargraph.DirectedEdge, com.vividsolutions.jts.planargraph.DirectedEdge)"><!-- --></A><H3>
+setDirectedEdges</H3>
+<PRE>
+public void <B>setDirectedEdges</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de0,
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de1)</PRE>
+<DL>
+<DD>Initializes this Edge's two DirectedEdges, and for each DirectedEdge: sets the
+ Edge, sets the symmetric DirectedEdge, and adds this Edge to its from-Node.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDirEdge(int)"><!-- --></A><H3>
+getDirEdge</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> <B>getDirEdge</B>(int i)</PRE>
+<DL>
+<DD>Returns one of the DirectedEdges associated with this Edge.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>i</CODE> - 0 or 1. 0 returns the forward directed edge, 1 returns the reverse</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDirEdge(com.vividsolutions.jts.planargraph.Node)"><!-- --></A><H3>
+getDirEdge</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> <B>getDirEdge</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> fromNode)</PRE>
+<DL>
+<DD>Returns the <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A> that starts from the given node, or null if the
+ node is not one of the two nodes associated with this Edge.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOppositeNode(com.vividsolutions.jts.planargraph.Node)"><!-- --></A><H3>
+getOppositeNode</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> <B>getOppositeNode</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> node)</PRE>
+<DL>
+<DD>If <code>node</code> is one of the two nodes associated with this Edge,
+ returns the other node; otherwise returns null.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isRemoved()"><!-- --></A><H3>
+isRemoved</H3>
+<PRE>
+public boolean <B>isRemoved</B>()</PRE>
+<DL>
+<DD>Tests whether this edge has been removed from its containing graph
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isRemoved()">isRemoved</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this edge is removed</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Edge.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/GraphComponent.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/GraphComponent.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/GraphComponent.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,573 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+GraphComponent
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.planargraph.GraphComponent class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GraphComponent";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GraphComponent.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.planargraph</FONT>
+<BR>
+Class GraphComponent</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.planargraph.GraphComponent</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public abstract class <B>GraphComponent</B><DT>extends java.lang.Object</DL>
+
+<P>
+The base class for all graph component classes.
+ Maintains flags of use in generic graph algorithms.
+ Provides two flags:
+ <ul>
+ <li><b>marked</b> - typically this is used to indicate a state that persists
+ for the course of the graph's lifetime. For instance, it can be
+ used to indicate that a component has been logically deleted from the graph.
+ <li><b>visited</b> - this is used to indicate that a component has been processed
+ or visited by an single graph algorithm. For instance, a breadth-first traversal of the
+ graph might use this to indicate that a node has already been traversed.
+ The visited flag may be set and cleared many times during the lifetime of a graph.
+
+ <p>
+ Graph components support storing user context data. This will typically be
+ used by client algorithms which use planar graphs.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked">isMarked</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited">isVisited</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#GraphComponent()">GraphComponent</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getComponentWithVisitedState(java.util.Iterator, boolean)">getComponentWithVisitedState</A></B>(java.util.Iterator i,
+ boolean visitedState)</CODE>
+
+<BR>
+ Finds the first <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><CODE>GraphComponent</CODE></A> in a <CODE>Iterator</CODE> set
+ which has the specified visited state.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getContext()">getContext</A></B>()</CODE>
+
+<BR>
+ Gets the user-defined data for this component.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getData()">getData</A></B>()</CODE>
+
+<BR>
+ Gets the user-defined data for this component.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked()">isMarked</A></B>()</CODE>
+
+<BR>
+ Tests if a component has been marked at some point during the processing
+ involving this graph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isRemoved()">isRemoved</A></B>()</CODE>
+
+<BR>
+ Tests whether this component has been removed from its containing graph</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited()">isVisited</A></B>()</CODE>
+
+<BR>
+ Tests if a component has been visited during the course of a graph algorithm</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setContext(java.lang.Object)">setContext</A></B>(java.lang.Object data)</CODE>
+
+<BR>
+ Sets the user-defined data for this component.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setData(java.lang.Object)">setData</A></B>(java.lang.Object data)</CODE>
+
+<BR>
+ Sets the user-defined data for this component.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(boolean)">setMarked</A></B>(boolean isMarked)</CODE>
+
+<BR>
+ Sets the marked flag for this component.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(java.util.Iterator, boolean)">setMarked</A></B>(java.util.Iterator i,
+ boolean marked)</CODE>
+
+<BR>
+ Sets the Marked state for all <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><CODE>GraphComponent</CODE></A>s in an <CODE>Iterator</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(boolean)">setVisited</A></B>(boolean isVisited)</CODE>
+
+<BR>
+ Sets the visited flag for this component.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(java.util.Iterator, boolean)">setVisited</A></B>(java.util.Iterator i,
+ boolean visited)</CODE>
+
+<BR>
+ Sets the Visited state for all <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><CODE>GraphComponent</CODE></A>s in an <CODE>Iterator</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isMarked"><!-- --></A><H3>
+isMarked</H3>
+<PRE>
+protected boolean <B>isMarked</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="isVisited"><!-- --></A><H3>
+isVisited</H3>
+<PRE>
+protected boolean <B>isVisited</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GraphComponent()"><!-- --></A><H3>
+GraphComponent</H3>
+<PRE>
+public <B>GraphComponent</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setVisited(java.util.Iterator, boolean)"><!-- --></A><H3>
+setVisited</H3>
+<PRE>
+public static void <B>setVisited</B>(java.util.Iterator i,
+ boolean visited)</PRE>
+<DL>
+<DD>Sets the Visited state for all <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><CODE>GraphComponent</CODE></A>s in an <CODE>Iterator</CODE>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>i</CODE> - the Iterator to scan<DD><CODE>visited</CODE> - the state to set the visited flag to</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setMarked(java.util.Iterator, boolean)"><!-- --></A><H3>
+setMarked</H3>
+<PRE>
+public static void <B>setMarked</B>(java.util.Iterator i,
+ boolean marked)</PRE>
+<DL>
+<DD>Sets the Marked state for all <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><CODE>GraphComponent</CODE></A>s in an <CODE>Iterator</CODE>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>i</CODE> - the Iterator to scan<DD><CODE>marked</CODE> - the state to set the Marked flag to</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getComponentWithVisitedState(java.util.Iterator, boolean)"><!-- --></A><H3>
+getComponentWithVisitedState</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A> <B>getComponentWithVisitedState</B>(java.util.Iterator i,
+ boolean visitedState)</PRE>
+<DL>
+<DD>Finds the first <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><CODE>GraphComponent</CODE></A> in a <CODE>Iterator</CODE> set
+ which has the specified visited state.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>i</CODE> - an Iterator of GraphComponents<DD><CODE>visitedState</CODE> - the visited state to test
+<DT><B>Returns:</B><DD>the first component found, or <code>null</code> if none found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isVisited()"><!-- --></A><H3>
+isVisited</H3>
+<PRE>
+public boolean <B>isVisited</B>()</PRE>
+<DL>
+<DD>Tests if a component has been visited during the course of a graph algorithm
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the component has been visited</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setVisited(boolean)"><!-- --></A><H3>
+setVisited</H3>
+<PRE>
+public void <B>setVisited</B>(boolean isVisited)</PRE>
+<DL>
+<DD>Sets the visited flag for this component.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>isVisited</CODE> - the desired value of the visited flag</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isMarked()"><!-- --></A><H3>
+isMarked</H3>
+<PRE>
+public boolean <B>isMarked</B>()</PRE>
+<DL>
+<DD>Tests if a component has been marked at some point during the processing
+ involving this graph.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the component has been marked</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setMarked(boolean)"><!-- --></A><H3>
+setMarked</H3>
+<PRE>
+public void <B>setMarked</B>(boolean isMarked)</PRE>
+<DL>
+<DD>Sets the marked flag for this component.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>isMarked</CODE> - the desired value of the marked flag</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setContext(java.lang.Object)"><!-- --></A><H3>
+setContext</H3>
+<PRE>
+public void <B>setContext</B>(java.lang.Object data)</PRE>
+<DL>
+<DD>Sets the user-defined data for this component.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>data</CODE> - an Object containing user-defined data</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getContext()"><!-- --></A><H3>
+getContext</H3>
+<PRE>
+public java.lang.Object <B>getContext</B>()</PRE>
+<DL>
+<DD>Gets the user-defined data for this component.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the user-defined data</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setData(java.lang.Object)"><!-- --></A><H3>
+setData</H3>
+<PRE>
+public void <B>setData</B>(java.lang.Object data)</PRE>
+<DL>
+<DD>Sets the user-defined data for this component.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>data</CODE> - an Object containing user-defined data</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getData()"><!-- --></A><H3>
+getData</H3>
+<PRE>
+public java.lang.Object <B>getData</B>()</PRE>
+<DL>
+<DD>Gets the user-defined data for this component.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the user-defined data</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isRemoved()"><!-- --></A><H3>
+isRemoved</H3>
+<PRE>
+public abstract boolean <B>isRemoved</B>()</PRE>
+<DL>
+<DD>Tests whether this component has been removed from its containing graph
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this component is removed</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GraphComponent.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/Node.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/Node.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/Node.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,490 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+Node
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.planargraph.Node class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Node";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Node.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.planargraph</FONT>
+<BR>
+Class Node</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">com.vividsolutions.jts.planargraph.GraphComponent</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.planargraph.Node</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Node</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></DL>
+
+<P>
+A node in a <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>is a location where 0 or more <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A>s
+ meet. A node is connected to each of its incident Edges via an outgoing
+ DirectedEdge. Some clients using a <code>PlanarGraph</code> may want to
+ subclass <code>Node</code> to add their own application-specific
+ data and methods.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html#deStar">deStar</A></B></CODE>
+
+<BR>
+ The collection of DirectedEdges that leave this Node</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html#pt">pt</A></B></CODE>
+
+<BR>
+ The location of this Node</TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.planargraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked">isMarked</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited">isVisited</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html#Node(com.vividsolutions.jts.geom.Coordinate)">Node</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Constructs a Node with the given location.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html#Node(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.planargraph.DirectedEdgeStar)">Node</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt,
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A> deStar)</CODE>
+
+<BR>
+ Constructs a Node with the given location and collection of outgoing DirectedEdges.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html#addOutEdge(com.vividsolutions.jts.planargraph.DirectedEdge)">addOutEdge</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de)</CODE>
+
+<BR>
+ Adds an outgoing DirectedEdge to this Node.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html#getCoordinate()">getCoordinate</A></B>()</CODE>
+
+<BR>
+ Returns the location of this Node.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html#getDegree()">getDegree</A></B>()</CODE>
+
+<BR>
+ Returns the number of edges around this Node.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html#getEdgesBetween(com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.planargraph.Node)">getEdgesBetween</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> node0,
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> node1)</CODE>
+
+<BR>
+ Returns all Edges that connect the two nodes (which are assumed to be different).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html#getIndex(com.vividsolutions.jts.planargraph.Edge)">getIndex</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> edge)</CODE>
+
+<BR>
+ Returns the zero-based index of the given Edge, after sorting in ascending order
+ by angle with the positive x-axis.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html#getOutEdges()">getOutEdges</A></B>()</CODE>
+
+<BR>
+ Returns the collection of DirectedEdges that leave this Node.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html#isRemoved()">isRemoved</A></B>()</CODE>
+
+<BR>
+ Tests whether this node has been removed from its containing graph</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.planargraph.GraphComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.planargraph.<A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getComponentWithVisitedState(java.util.Iterator, boolean)">getComponentWithVisitedState</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getContext()">getContext</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#getData()">getData</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked()">isMarked</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited()">isVisited</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setContext(java.lang.Object)">setContext</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setData(java.lang.Object)">setData</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(boolean)">setMarked</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(java.util.Iterator, boolean)">setMarked</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(boolean)">setVisited</A>, <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(java.util.Iterator, boolean)">setVisited</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="pt"><!-- --></A><H3>
+pt</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>pt</B></PRE>
+<DL>
+<DD>The location of this Node
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="deStar"><!-- --></A><H3>
+deStar</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A> <B>deStar</B></PRE>
+<DL>
+<DD>The collection of DirectedEdges that leave this Node
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Node(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+Node</H3>
+<PRE>
+public <B>Node</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Constructs a Node with the given location.
+<P>
+</DL>
+<HR>
+
+<A NAME="Node(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.planargraph.DirectedEdgeStar)"><!-- --></A><H3>
+Node</H3>
+<PRE>
+public <B>Node</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt,
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A> deStar)</PRE>
+<DL>
+<DD>Constructs a Node with the given location and collection of outgoing DirectedEdges.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getEdgesBetween(com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.planargraph.Node)"><!-- --></A><H3>
+getEdgesBetween</H3>
+<PRE>
+public static java.util.Collection <B>getEdgesBetween</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> node0,
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> node1)</PRE>
+<DL>
+<DD>Returns all Edges that connect the two nodes (which are assumed to be different).
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCoordinate()"><!-- --></A><H3>
+getCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCoordinate</B>()</PRE>
+<DL>
+<DD>Returns the location of this Node.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addOutEdge(com.vividsolutions.jts.planargraph.DirectedEdge)"><!-- --></A><H3>
+addOutEdge</H3>
+<PRE>
+public void <B>addOutEdge</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de)</PRE>
+<DL>
+<DD>Adds an outgoing DirectedEdge to this Node.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOutEdges()"><!-- --></A><H3>
+getOutEdges</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A> <B>getOutEdges</B>()</PRE>
+<DL>
+<DD>Returns the collection of DirectedEdges that leave this Node.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDegree()"><!-- --></A><H3>
+getDegree</H3>
+<PRE>
+public int <B>getDegree</B>()</PRE>
+<DL>
+<DD>Returns the number of edges around this Node.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIndex(com.vividsolutions.jts.planargraph.Edge)"><!-- --></A><H3>
+getIndex</H3>
+<PRE>
+public int <B>getIndex</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> edge)</PRE>
+<DL>
+<DD>Returns the zero-based index of the given Edge, after sorting in ascending order
+ by angle with the positive x-axis.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isRemoved()"><!-- --></A><H3>
+isRemoved</H3>
+<PRE>
+public boolean <B>isRemoved</B>()</PRE>
+<DL>
+<DD>Tests whether this node has been removed from its containing graph
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html#isRemoved()">isRemoved</A></CODE> in class <CODE><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if this node is removed</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Node.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/NodeMap.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/NodeMap.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/NodeMap.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,351 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+NodeMap
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.planargraph.NodeMap class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="NodeMap";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NodeMap.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.planargraph</FONT>
+<BR>
+Class NodeMap</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.planargraph.NodeMap</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>NodeMap</B><DT>extends java.lang.Object</DL>
+
+<P>
+A map of <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A>s, indexed by the coordinate of the node.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html#NodeMap()">NodeMap</A></B>()</CODE>
+
+<BR>
+ Constructs a NodeMap without any Nodes.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html#add(com.vividsolutions.jts.planargraph.Node)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> n)</CODE>
+
+<BR>
+ Adds a node to the map, replacing any that is already at that location.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html#find(com.vividsolutions.jts.geom.Coordinate)">find</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ Returns the Node at the given location, or null if no Node was there.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html#iterator()">iterator</A></B>()</CODE>
+
+<BR>
+ Returns an Iterator over the Nodes in this NodeMap, sorted in ascending order
+ by angle with the positive x-axis.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html#remove(com.vividsolutions.jts.geom.Coordinate)">remove</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Removes the Node at the given location, and returns it (or null if no Node was there).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html#values()">values</A></B>()</CODE>
+
+<BR>
+ Returns the Nodes in this NodeMap, sorted in ascending order
+ by angle with the positive x-axis.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="NodeMap()"><!-- --></A><H3>
+NodeMap</H3>
+<PRE>
+public <B>NodeMap</B>()</PRE>
+<DL>
+<DD>Constructs a NodeMap without any Nodes.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(com.vividsolutions.jts.planargraph.Node)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> n)</PRE>
+<DL>
+<DD>Adds a node to the map, replacing any that is already at that location.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the added node</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> <B>remove</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Removes the Node at the given location, and returns it (or null if no Node was there).
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="find(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+find</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> <B>find</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD>Returns the Node at the given location, or null if no Node was there.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="iterator()"><!-- --></A><H3>
+iterator</H3>
+<PRE>
+public java.util.Iterator <B>iterator</B>()</PRE>
+<DL>
+<DD>Returns an Iterator over the Nodes in this NodeMap, sorted in ascending order
+ by angle with the positive x-axis.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="values()"><!-- --></A><H3>
+values</H3>
+<PRE>
+public java.util.Collection <B>values</B>()</PRE>
+<DL>
+<DD>Returns the Nodes in this NodeMap, sorted in ascending order
+ by angle with the positive x-axis.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="NodeMap.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/PlanarGraph.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/PlanarGraph.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/PlanarGraph.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,659 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+PlanarGraph
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.planargraph.PlanarGraph class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="PlanarGraph";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PlanarGraph.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.planargraph</FONT>
+<BR>
+Class PlanarGraph</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.planargraph.PlanarGraph</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeGraph</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public abstract class <B>PlanarGraph</B><DT>extends java.lang.Object</DL>
+
+<P>
+Represents a directed graph which is embeddable in a planar surface.
+ <p>
+ This class and the other classes in this package serve as a framework for
+ building planar graphs for specific algorithms. This class must be
+ subclassed to expose appropriate methods to construct the graph. This allows
+ controlling the types of graph components (<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A>s,
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A>s and <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A>s) which can be added to the graph. An
+ application which uses the graph framework will almost always provide
+ subclasses for one or more graph components, which hold application-specific
+ data and graph algorithms.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.Set</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#dirEdges">dirEdges</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.Set</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#edges">edges</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph">NodeMap</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#nodeMap">nodeMap</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#PlanarGraph()">PlanarGraph</A></B>()</CODE>
+
+<BR>
+ Constructs a empty graph.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#add(com.vividsolutions.jts.planargraph.DirectedEdge)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> dirEdge)</CODE>
+
+<BR>
+ Adds the Edge to this PlanarGraph; only subclasses can add DirectedEdges,
+ to ensure the edges added are of the right class.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#add(com.vividsolutions.jts.planargraph.Edge)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> edge)</CODE>
+
+<BR>
+ Adds the Edge and its DirectedEdges with this PlanarGraph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#add(com.vividsolutions.jts.planargraph.Node)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> node)</CODE>
+
+<BR>
+ Adds a node to the map, replacing any that is already at that location.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#contains(com.vividsolutions.jts.planargraph.DirectedEdge)">contains</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de)</CODE>
+
+<BR>
+ Tests whether this graph contains the given <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#contains(com.vividsolutions.jts.planargraph.Edge)">contains</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> e)</CODE>
+
+<BR>
+ Tests whether this graph contains the given <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#dirEdgeIterator()">dirEdgeIterator</A></B>()</CODE>
+
+<BR>
+ Returns an Iterator over the DirectedEdges in this PlanarGraph, in the order in which they
+ were added.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#edgeIterator()">edgeIterator</A></B>()</CODE>
+
+<BR>
+ Returns an Iterator over the Edges in this PlanarGraph, in the order in which they
+ were added.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#findNode(com.vividsolutions.jts.geom.Coordinate)">findNode</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</CODE>
+
+<BR>
+ Returns the <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A> at the given location,
+ or null if no <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A> was there.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#findNodesOfDegree(int)">findNodesOfDegree</A></B>(int degree)</CODE>
+
+<BR>
+ Returns all Nodes with the given number of Edges around it.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#getEdges()">getEdges</A></B>()</CODE>
+
+<BR>
+ Returns the Edges that have been added to this PlanarGraph</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Collection</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#getNodes()">getNodes</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#nodeIterator()">nodeIterator</A></B>()</CODE>
+
+<BR>
+ Returns an Iterator over the Nodes in this PlanarGraph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#remove(com.vividsolutions.jts.planargraph.DirectedEdge)">remove</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de)</CODE>
+
+<BR>
+ Removes DirectedEdge from its from-Node and from this PlanarGraph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#remove(com.vividsolutions.jts.planargraph.Edge)">remove</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> edge)</CODE>
+
+<BR>
+ Removes an <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A> and its associated <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A>s
+ from their from-Nodes and from the graph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#remove(com.vividsolutions.jts.planargraph.Node)">remove</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> node)</CODE>
+
+<BR>
+ Removes a node from the graph, along with any associated DirectedEdges and
+ Edges.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="edges"><!-- --></A><H3>
+edges</H3>
+<PRE>
+protected java.util.Set <B>edges</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="dirEdges"><!-- --></A><H3>
+dirEdges</H3>
+<PRE>
+protected java.util.Set <B>dirEdges</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="nodeMap"><!-- --></A><H3>
+nodeMap</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph">NodeMap</A> <B>nodeMap</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="PlanarGraph()"><!-- --></A><H3>
+PlanarGraph</H3>
+<PRE>
+public <B>PlanarGraph</B>()</PRE>
+<DL>
+<DD>Constructs a empty graph.
+<P>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="findNode(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+findNode</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> <B>findNode</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> pt)</PRE>
+<DL>
+<DD>Returns the <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A> at the given location,
+ or null if no <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A> was there.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pt</CODE> - the location to query
+<DT><B>Returns:</B><DD>the node found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.planargraph.Node)"><!-- --></A><H3>
+add</H3>
+<PRE>
+protected void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> node)</PRE>
+<DL>
+<DD>Adds a node to the map, replacing any that is already at that location.
+ Only subclasses can add Nodes, to ensure Nodes are of the right type.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the added node</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.planargraph.Edge)"><!-- --></A><H3>
+add</H3>
+<PRE>
+protected void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> edge)</PRE>
+<DL>
+<DD>Adds the Edge and its DirectedEdges with this PlanarGraph.
+ Assumes that the Edge has already been created with its associated DirectEdges.
+ Only subclasses can add Edges, to ensure the edges added are of the right class.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.planargraph.DirectedEdge)"><!-- --></A><H3>
+add</H3>
+<PRE>
+protected void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> dirEdge)</PRE>
+<DL>
+<DD>Adds the Edge to this PlanarGraph; only subclasses can add DirectedEdges,
+ to ensure the edges added are of the right class.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="nodeIterator()"><!-- --></A><H3>
+nodeIterator</H3>
+<PRE>
+public java.util.Iterator <B>nodeIterator</B>()</PRE>
+<DL>
+<DD>Returns an Iterator over the Nodes in this PlanarGraph.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contains(com.vividsolutions.jts.planargraph.Edge)"><!-- --></A><H3>
+contains</H3>
+<PRE>
+public boolean <B>contains</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> e)</PRE>
+<DL>
+<DD>Tests whether this graph contains the given <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>e</CODE> - the edge to query
+<DT><B>Returns:</B><DD><code>true</code> if the graph contains the edge</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contains(com.vividsolutions.jts.planargraph.DirectedEdge)"><!-- --></A><H3>
+contains</H3>
+<PRE>
+public boolean <B>contains</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de)</PRE>
+<DL>
+<DD>Tests whether this graph contains the given <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>de</CODE> - the directed edge to query
+<DT><B>Returns:</B><DD><code>true</code> if the graph contains the directed edge</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNodes()"><!-- --></A><H3>
+getNodes</H3>
+<PRE>
+public java.util.Collection <B>getNodes</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="dirEdgeIterator()"><!-- --></A><H3>
+dirEdgeIterator</H3>
+<PRE>
+public java.util.Iterator <B>dirEdgeIterator</B>()</PRE>
+<DL>
+<DD>Returns an Iterator over the DirectedEdges in this PlanarGraph, in the order in which they
+ were added.
+<P>
+<DD><DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#add(com.vividsolutions.jts.planargraph.Edge)"><CODE>add(Edge)</CODE></A>,
+<A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#add(com.vividsolutions.jts.planargraph.DirectedEdge)"><CODE>add(DirectedEdge)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="edgeIterator()"><!-- --></A><H3>
+edgeIterator</H3>
+<PRE>
+public java.util.Iterator <B>edgeIterator</B>()</PRE>
+<DL>
+<DD>Returns an Iterator over the Edges in this PlanarGraph, in the order in which they
+ were added.
+<P>
+<DD><DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#add(com.vividsolutions.jts.planargraph.Edge)"><CODE>add(Edge)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEdges()"><!-- --></A><H3>
+getEdges</H3>
+<PRE>
+public java.util.Collection <B>getEdges</B>()</PRE>
+<DL>
+<DD>Returns the Edges that have been added to this PlanarGraph
+<P>
+<DD><DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html#add(com.vividsolutions.jts.planargraph.Edge)"><CODE>add(Edge)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(com.vividsolutions.jts.planargraph.Edge)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> edge)</PRE>
+<DL>
+<DD>Removes an <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A> and its associated <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A>s
+ from their from-Nodes and from the graph.
+ Note: This method does not remove the <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A>s associated
+ with the <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A>, even if the removal of the <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A>
+ reduces the degree of a <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A> to zero.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(com.vividsolutions.jts.planargraph.DirectedEdge)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A> de)</PRE>
+<DL>
+<DD>Removes DirectedEdge from its from-Node and from this PlanarGraph.
+ This method does not remove the Nodes associated with the DirectedEdge,
+ even if the removal of the DirectedEdge reduces the degree of a Node to
+ zero.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(com.vividsolutions.jts.planargraph.Node)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A> node)</PRE>
+<DL>
+<DD>Removes a node from the graph, along with any associated DirectedEdges and
+ Edges.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findNodesOfDegree(int)"><!-- --></A><H3>
+findNodesOfDegree</H3>
+<PRE>
+public java.util.List <B>findNodesOfDegree</B>(int degree)</PRE>
+<DL>
+<DD>Returns all Nodes with the given number of Edges around it.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="PlanarGraph.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/Subgraph.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/Subgraph.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/Subgraph.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,467 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+Subgraph
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.planargraph.Subgraph class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Subgraph";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Subgraph.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.planargraph</FONT>
+<BR>
+Class Subgraph</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.planargraph.Subgraph</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Subgraph</B><DT>extends java.lang.Object</DL>
+
+<P>
+A subgraph of a <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>.
+ A subgraph may contain any subset of <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A>s
+ from the parent graph.
+ It will also automatically contain all <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A>s
+ and <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A>s associated with those edges.
+ No new objects are created when edges are added -
+ all associated components must already exist in the parent graph.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html#dirEdges">dirEdges</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.Set</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html#edges">edges</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph">NodeMap</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html#nodeMap">nodeMap</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html#parentGraph">parentGraph</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html#Subgraph(com.vividsolutions.jts.planargraph.PlanarGraph)">Subgraph</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A> parentGraph)</CODE>
+
+<BR>
+ Creates a new subgraph of the given <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A></TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html#add(com.vividsolutions.jts.planargraph.Edge)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> e)</CODE>
+
+<BR>
+ Adds an <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A> to the subgraph.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html#contains(com.vividsolutions.jts.planargraph.Edge)">contains</A></B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> e)</CODE>
+
+<BR>
+ Tests whether an <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A> is contained in this subgraph</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html#dirEdgeIterator()">dirEdgeIterator</A></B>()</CODE>
+
+<BR>
+ Returns an <CODE>Iterator</CODE> over the <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A>s in this graph,
+ in the order in which they were added.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html#edgeIterator()">edgeIterator</A></B>()</CODE>
+
+<BR>
+ Returns an <CODE>Iterator</CODE> over the <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A>s in this graph,
+ in the order in which they were added.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html#getParent()">getParent</A></B>()</CODE>
+
+<BR>
+ Gets the <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A> which this subgraph
+ is part of.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.Iterator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html#nodeIterator()">nodeIterator</A></B>()</CODE>
+
+<BR>
+ Returns an <CODE>Iterator</CODE> over the <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A>s in this graph.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="parentGraph"><!-- --></A><H3>
+parentGraph</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A> <B>parentGraph</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="edges"><!-- --></A><H3>
+edges</H3>
+<PRE>
+protected java.util.Set <B>edges</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="dirEdges"><!-- --></A><H3>
+dirEdges</H3>
+<PRE>
+protected java.util.List <B>dirEdges</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="nodeMap"><!-- --></A><H3>
+nodeMap</H3>
+<PRE>
+protected <A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph">NodeMap</A> <B>nodeMap</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Subgraph(com.vividsolutions.jts.planargraph.PlanarGraph)"><!-- --></A><H3>
+Subgraph</H3>
+<PRE>
+public <B>Subgraph</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A> parentGraph)</PRE>
+<DL>
+<DD>Creates a new subgraph of the given <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>
+<P>
+<DT><B>Parameters:</B><DD><CODE>parentGraph</CODE> - the parent graph</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getParent()"><!-- --></A><H3>
+getParent</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A> <B>getParent</B>()</PRE>
+<DL>
+<DD>Gets the <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A> which this subgraph
+ is part of.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the parent PlanarGraph</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.planargraph.Edge)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> e)</PRE>
+<DL>
+<DD>Adds an <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A> to the subgraph.
+ The associated <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A>s and <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A>s
+ are also added.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>e</CODE> - the edge to add</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="dirEdgeIterator()"><!-- --></A><H3>
+dirEdgeIterator</H3>
+<PRE>
+public java.util.Iterator <B>dirEdgeIterator</B>()</PRE>
+<DL>
+<DD>Returns an <CODE>Iterator</CODE> over the <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A>s in this graph,
+ in the order in which they were added.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an iterator over the directed edges<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html#add(com.vividsolutions.jts.planargraph.Edge)"><CODE>add(Edge)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="edgeIterator()"><!-- --></A><H3>
+edgeIterator</H3>
+<PRE>
+public java.util.Iterator <B>edgeIterator</B>()</PRE>
+<DL>
+<DD>Returns an <CODE>Iterator</CODE> over the <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A>s in this graph,
+ in the order in which they were added.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an iterator over the edges<DT><B>See Also:</B><DD><A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html#add(com.vividsolutions.jts.planargraph.Edge)"><CODE>add(Edge)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="nodeIterator()"><!-- --></A><H3>
+nodeIterator</H3>
+<PRE>
+public java.util.Iterator <B>nodeIterator</B>()</PRE>
+<DL>
+<DD>Returns an <CODE>Iterator</CODE> over the <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A>s in this graph.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an iterator over the nodes</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="contains(com.vividsolutions.jts.planargraph.Edge)"><!-- --></A><H3>
+contains</H3>
+<PRE>
+public boolean <B>contains</B>(<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A> e)</PRE>
+<DL>
+<DD>Tests whether an <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A> is contained in this subgraph
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>e</CODE> - the edge to test
+<DT><B>Returns:</B><DD><code>true</code> if the edge is contained in this subgraph</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Subgraph.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,256 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+ConnectedSubgraphFinder
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.planargraph.algorithm.ConnectedSubgraphFinder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="ConnectedSubgraphFinder";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ConnectedSubgraphFinder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.planargraph.algorithm</FONT>
+<BR>
+Class ConnectedSubgraphFinder</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.planargraph.algorithm.ConnectedSubgraphFinder</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>ConnectedSubgraphFinder</B><DT>extends java.lang.Object</DL>
+
+<P>
+Finds all connected <A HREF="../../../../../com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Subgraph</CODE></A>s of a <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>.
+ <p>
+ <b>Note:</b> uses the <code>isVisited</code> flag on the nodes.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html#ConnectedSubgraphFinder(com.vividsolutions.jts.planargraph.PlanarGraph)">ConnectedSubgraphFinder</A></B>(<A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A> graph)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html#getConnectedSubgraphs()">getConnectedSubgraphs</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="ConnectedSubgraphFinder(com.vividsolutions.jts.planargraph.PlanarGraph)"><!-- --></A><H3>
+ConnectedSubgraphFinder</H3>
+<PRE>
+public <B>ConnectedSubgraphFinder</B>(<A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A> graph)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getConnectedSubgraphs()"><!-- --></A><H3>
+getConnectedSubgraphs</H3>
+<PRE>
+public java.util.List <B>getConnectedSubgraphs</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ConnectedSubgraphFinder.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.planargraph.algorithm
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.planargraph.algorithm package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/planargraph/algorithm/package-summary.html" target="classFrame">com.vividsolutions.jts.planargraph.algorithm</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="ConnectedSubgraphFinder.html" title="class in com.vividsolutions.jts.planargraph.algorithm" target="classFrame">ConnectedSubgraphFinder</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.planargraph.algorithm
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.planargraph.algorithm package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.planargraph.algorithm";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/planargraph/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/precision/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.planargraph.algorithm
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html" title="class in com.vividsolutions.jts.planargraph.algorithm">ConnectedSubgraphFinder</A></B></TD>
+<TD>Finds all connected <A HREF="../../../../../com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Subgraph</CODE></A>s of a <A HREF="../../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/planargraph/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/precision/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/algorithm/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.planargraph.algorithm Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.planargraph.algorithm Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/planargraph/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/precision/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.planargraph.algorithm
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.planargraph.algorithm.<A HREF="../../../../../com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html" title="class in com.vividsolutions.jts.planargraph.algorithm"><B>ConnectedSubgraphFinder</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/planargraph/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/precision/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.planargraph
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.planargraph package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/vividsolutions/jts/planargraph/package-summary.html" target="classFrame">com.vividsolutions.jts.planargraph</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">DirectedEdge</A>
+<BR>
+<A HREF="DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">DirectedEdgeStar</A>
+<BR>
+<A HREF="Edge.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">Edge</A>
+<BR>
+<A HREF="GraphComponent.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">GraphComponent</A>
+<BR>
+<A HREF="Node.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">Node</A>
+<BR>
+<A HREF="NodeMap.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">NodeMap</A>
+<BR>
+<A HREF="PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">PlanarGraph</A>
+<BR>
+<A HREF="Subgraph.html" title="class in com.vividsolutions.jts.planargraph" target="classFrame">Subgraph</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.planargraph
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.planargraph package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.planargraph";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/operation/valid/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/algorithm/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.planargraph
+</H2>
+Contains classes to implement a planar graph data structure.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A></B></TD>
+<TD>Represents a directed edge in a <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A></B></TD>
+<TD>A sorted collection of <A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A>s which leave a <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A>
+ in a <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A></B></TD>
+<TD>Represents an undirected edge of a <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A></B></TD>
+<TD>The base class for all graph component classes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A></B></TD>
+<TD>A node in a <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>is a location where 0 or more <A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A>s
+ meet.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph">NodeMap</A></B></TD>
+<TD>A map of <A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A>s, indexed by the coordinate of the node.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A></B></TD>
+<TD>Represents a directed graph which is embeddable in a planar surface.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph">Subgraph</A></B></TD>
+<TD>A subgraph of a <A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.planargraph Description
+</H2>
+
+<P>
+Contains classes to implement a planar graph data structure.
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/operation/valid/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/algorithm/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/planargraph/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.planargraph Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.planargraph Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/operation/valid/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/algorithm/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.planargraph
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph"><B>DirectedEdgeStar</B></A><LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="../../../../com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><B>GraphComponent</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="../../../../com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><B>DirectedEdge</B></A> (implements java.lang.Comparable)
+<LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="../../../../com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><B>Edge</B></A><LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="../../../../com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><B>Node</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="../../../../com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph"><B>NodeMap</B></A><LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="../../../../com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><B>PlanarGraph</B></A><LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="../../../../com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph"><B>Subgraph</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/operation/valid/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/algorithm/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/CommonBits.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/CommonBits.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/CommonBits.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,403 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+CommonBits
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.precision.CommonBits class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CommonBits";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CommonBits.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.precision</FONT>
+<BR>
+Class CommonBits</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.precision.CommonBits</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>CommonBits</B><DT>extends java.lang.Object</DL>
+
+<P>
+Determines the maximum number of common most-significant
+ bits in the mantissa of one or numbers.
+ Can be used to compute the double-precision number which
+ is represented by the common bits.
+ If there are no common bits, the number computed is 0.0.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBits.html#CommonBits()">CommonBits</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBits.html#add(double)">add</A></B>(double num)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBits.html#getBit(long, int)">getBit</A></B>(long bits,
+ int i)</CODE>
+
+<BR>
+ Extracts the i'th bit of a bitstring.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> double</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBits.html#getCommon()">getCommon</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBits.html#numCommonMostSigMantissaBits(long, long)">numCommonMostSigMantissaBits</A></B>(long num1,
+ long num2)</CODE>
+
+<BR>
+ This computes the number of common most-significant bits in the mantissas
+ of two double-precision numbers.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBits.html#signExpBits(long)">signExpBits</A></B>(long num)</CODE>
+
+<BR>
+ Computes the bit pattern for the sign and exponent of a
+ double-precision number.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBits.html#toString(long)">toString</A></B>(long bits)</CODE>
+
+<BR>
+ A representation of the Double bits formatted for easy readability</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBits.html#zeroLowerBits(long, int)">zeroLowerBits</A></B>(long bits,
+ int nBits)</CODE>
+
+<BR>
+ Zeroes the lower n bits of a bitstring.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CommonBits()"><!-- --></A><H3>
+CommonBits</H3>
+<PRE>
+public <B>CommonBits</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="signExpBits(long)"><!-- --></A><H3>
+signExpBits</H3>
+<PRE>
+public static long <B>signExpBits</B>(long num)</PRE>
+<DL>
+<DD>Computes the bit pattern for the sign and exponent of a
+ double-precision number.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>num</CODE> -
+<DT><B>Returns:</B><DD>the bit pattern for the sign and exponent</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="numCommonMostSigMantissaBits(long, long)"><!-- --></A><H3>
+numCommonMostSigMantissaBits</H3>
+<PRE>
+public static int <B>numCommonMostSigMantissaBits</B>(long num1,
+ long num2)</PRE>
+<DL>
+<DD>This computes the number of common most-significant bits in the mantissas
+ of two double-precision numbers.
+ It does not count the hidden bit, which is always 1.
+ It does not determine whether the numbers have the same exponent - if they do
+ not, the value computed by this function is meaningless.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>num1</CODE> - the first number<DD><CODE>num2</CODE> - the second number
+<DT><B>Returns:</B><DD>the number of common most-significant mantissa bits</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="zeroLowerBits(long, int)"><!-- --></A><H3>
+zeroLowerBits</H3>
+<PRE>
+public static long <B>zeroLowerBits</B>(long bits,
+ int nBits)</PRE>
+<DL>
+<DD>Zeroes the lower n bits of a bitstring.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>bits</CODE> - the bitstring to alter
+<DT><B>Returns:</B><DD>the zeroed bitstring</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBit(long, int)"><!-- --></A><H3>
+getBit</H3>
+<PRE>
+public static int <B>getBit</B>(long bits,
+ int i)</PRE>
+<DL>
+<DD>Extracts the i'th bit of a bitstring.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>bits</CODE> - the bitstring to extract from<DD><CODE>i</CODE> - the bit to extract
+<DT><B>Returns:</B><DD>the value of the extracted bit</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(double)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(double num)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCommon()"><!-- --></A><H3>
+getCommon</H3>
+<PRE>
+public double <B>getCommon</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString(long)"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public java.lang.String <B>toString</B>(long bits)</PRE>
+<DL>
+<DD>A representation of the Double bits formatted for easy readability
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CommonBits.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/CommonBitsOp.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/CommonBitsOp.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/CommonBitsOp.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+CommonBitsOp
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.precision.CommonBitsOp class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CommonBitsOp";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CommonBitsOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.precision</FONT>
+<BR>
+Class CommonBitsOp</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.precision.CommonBitsOp</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>CommonBitsOp</B><DT>extends java.lang.Object</DL>
+
+<P>
+Provides versions of Geometry spatial functions which use
+ common bit removal to reduce the likelihood of robustness problems.
+ <p>
+ In the current implementation no rounding is performed on the
+ reshifted result geometry, which means that it is possible
+ that the returned Geometry is invalid.
+ Client classes should check the validity of the returned result themselves.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsOp.html#CommonBitsOp()">CommonBitsOp</A></B>()</CODE>
+
+<BR>
+ Creates a new instance of class, which reshifts result <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsOp.html#CommonBitsOp(boolean)">CommonBitsOp</A></B>(boolean returnToOriginalPrecision)</CODE>
+
+<BR>
+ Creates a new instance of class, specifying whether
+ the result <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s should be reshifted.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsOp.html#buffer(com.vividsolutions.jts.geom.Geometry, double)">buffer</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ double distance)</CODE>
+
+<BR>
+ Computes the buffer a geometry,
+ using enhanced precision.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsOp.html#difference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">difference</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</CODE>
+
+<BR>
+ Computes the set-theoretic difference of two <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsOp.html#intersection(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">intersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</CODE>
+
+<BR>
+ Computes the set-theoretic intersection of two <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsOp.html#symDifference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">symDifference</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</CODE>
+
+<BR>
+ Computes the set-theoretic symmetric difference of two geometries,
+ using enhanced precision.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsOp.html#union(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">union</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</CODE>
+
+<BR>
+ Computes the set-theoretic union of two <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CommonBitsOp()"><!-- --></A><H3>
+CommonBitsOp</H3>
+<PRE>
+public <B>CommonBitsOp</B>()</PRE>
+<DL>
+<DD>Creates a new instance of class, which reshifts result <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s.
+<P>
+</DL>
+<HR>
+
+<A NAME="CommonBitsOp(boolean)"><!-- --></A><H3>
+CommonBitsOp</H3>
+<PRE>
+public <B>CommonBitsOp</B>(boolean returnToOriginalPrecision)</PRE>
+<DL>
+<DD>Creates a new instance of class, specifying whether
+ the result <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s should be reshifted.
+<P>
+<DT><B>Parameters:</B><DD><CODE>returnToOriginalPrecision</CODE> - </DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="intersection(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+intersection</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>intersection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</PRE>
+<DL>
+<DD>Computes the set-theoretic intersection of two <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom0</CODE> - the first Geometry<DD><CODE>geom1</CODE> - the second Geometry
+<DT><B>Returns:</B><DD>the Geometry representing the set-theoretic intersection of the input Geometries.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="union(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+union</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>union</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</PRE>
+<DL>
+<DD>Computes the set-theoretic union of two <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom0</CODE> - the first Geometry<DD><CODE>geom1</CODE> - the second Geometry
+<DT><B>Returns:</B><DD>the Geometry representing the set-theoretic union of the input Geometries.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="difference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+difference</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>difference</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</PRE>
+<DL>
+<DD>Computes the set-theoretic difference of two <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom0</CODE> - the first Geometry<DD><CODE>geom1</CODE> - the second Geometry, to be subtracted from the first
+<DT><B>Returns:</B><DD>the Geometry representing the set-theoretic difference of the input Geometries.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="symDifference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+symDifference</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>symDifference</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</PRE>
+<DL>
+<DD>Computes the set-theoretic symmetric difference of two geometries,
+ using enhanced precision.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom0</CODE> - the first Geometry<DD><CODE>geom1</CODE> - the second Geometry
+<DT><B>Returns:</B><DD>the Geometry representing the set-theoretic symmetric difference of the input Geometries.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="buffer(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+buffer</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>buffer</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ double distance)</PRE>
+<DL>
+<DD>Computes the buffer a geometry,
+ using enhanced precision.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom0</CODE> - the Geometry to buffer<DD><CODE>distance</CODE> - the buffer distance
+<DT><B>Returns:</B><DD>the Geometry representing the buffer of the input Geometry.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CommonBitsOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/CommonBitsRemover.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/CommonBitsRemover.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/CommonBitsRemover.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,331 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+CommonBitsRemover
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.precision.CommonBitsRemover class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CommonBitsRemover";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CommonBitsRemover.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.precision</FONT>
+<BR>
+Class CommonBitsRemover</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.precision.CommonBitsRemover</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>CommonBitsRemover</B><DT>extends java.lang.Object</DL>
+
+<P>
+Allow computing and removing common mantissa bits from one or more Geometries.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsRemover.html#CommonBitsRemover()">CommonBitsRemover</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsRemover.html#add(com.vividsolutions.jts.geom.Geometry)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Add a geometry to the set of geometries whose common bits are
+ being computed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsRemover.html#addCommonBits(com.vividsolutions.jts.geom.Geometry)">addCommonBits</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Adds the common coordinate bits back into a Geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsRemover.html#getCommonCoordinate()">getCommonCoordinate</A></B>()</CODE>
+
+<BR>
+ The common bits of the Coordinates in the supplied Geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsRemover.html#removeCommonBits(com.vividsolutions.jts.geom.Geometry)">removeCommonBits</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ Removes the common coordinate bits from a Geometry.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CommonBitsRemover()"><!-- --></A><H3>
+CommonBitsRemover</H3>
+<PRE>
+public <B>CommonBitsRemover</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Add a geometry to the set of geometries whose common bits are
+ being computed. After this method has executed the
+ common coordinate reflects the common bits of all added
+ geometries.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - a Geometry to test for common bits</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCommonCoordinate()"><!-- --></A><H3>
+getCommonCoordinate</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>getCommonCoordinate</B>()</PRE>
+<DL>
+<DD>The common bits of the Coordinates in the supplied Geometries.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeCommonBits(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+removeCommonBits</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>removeCommonBits</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Removes the common coordinate bits from a Geometry.
+ The coordinates of the Geometry are changed.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - the Geometry from which to remove the common coordinate bits
+<DT><B>Returns:</B><DD>the shifted Geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addCommonBits(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+addCommonBits</H3>
+<PRE>
+public void <B>addCommonBits</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD>Adds the common coordinate bits back into a Geometry.
+ The coordinates of the Geometry are changed.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - the Geometry to which to add the common coordinate bits
+<DT><B>Returns:</B><DD>the shifted Geometry</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CommonBitsRemover.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/EnhancedPrecisionOp.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/EnhancedPrecisionOp.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/EnhancedPrecisionOp.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+EnhancedPrecisionOp
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.precision.EnhancedPrecisionOp class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="EnhancedPrecisionOp";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html" title="class in com.vividsolutions.jts.precision"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EnhancedPrecisionOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.precision</FONT>
+<BR>
+Class EnhancedPrecisionOp</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.precision.EnhancedPrecisionOp</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>EnhancedPrecisionOp</B><DT>extends java.lang.Object</DL>
+
+<P>
+Provides versions of Geometry spatial functions which use
+ enhanced precision techniques to reduce the likelihood of robustness problems.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/EnhancedPrecisionOp.html#EnhancedPrecisionOp()">EnhancedPrecisionOp</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/EnhancedPrecisionOp.html#buffer(com.vividsolutions.jts.geom.Geometry, double)">buffer</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom,
+ double distance)</CODE>
+
+<BR>
+ Computes the buffer of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>, using enhanced precision.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/EnhancedPrecisionOp.html#difference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">difference</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</CODE>
+
+<BR>
+ Computes the set-theoretic difference of two <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/EnhancedPrecisionOp.html#intersection(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">intersection</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</CODE>
+
+<BR>
+ Computes the set-theoretic intersection of two <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/EnhancedPrecisionOp.html#symDifference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">symDifference</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</CODE>
+
+<BR>
+ Computes the set-theoretic symmetric difference of two <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/EnhancedPrecisionOp.html#union(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)">union</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</CODE>
+
+<BR>
+ Computes the set-theoretic union of two <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="EnhancedPrecisionOp()"><!-- --></A><H3>
+EnhancedPrecisionOp</H3>
+<PRE>
+public <B>EnhancedPrecisionOp</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="intersection(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+intersection</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>intersection</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</PRE>
+<DL>
+<DD>Computes the set-theoretic intersection of two <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom0</CODE> - the first Geometry<DD><CODE>geom1</CODE> - the second Geometry
+<DT><B>Returns:</B><DD>the Geometry representing the set-theoretic intersection of the input Geometries.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="union(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+union</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>union</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</PRE>
+<DL>
+<DD>Computes the set-theoretic union of two <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom0</CODE> - the first Geometry<DD><CODE>geom1</CODE> - the second Geometry
+<DT><B>Returns:</B><DD>the Geometry representing the set-theoretic union of the input Geometries.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="difference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+difference</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>difference</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</PRE>
+<DL>
+<DD>Computes the set-theoretic difference of two <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom0</CODE> - the first Geometry<DD><CODE>geom1</CODE> - the second Geometry
+<DT><B>Returns:</B><DD>the Geometry representing the set-theoretic difference of the input Geometries.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="symDifference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+symDifference</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>symDifference</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom1)</PRE>
+<DL>
+<DD>Computes the set-theoretic symmetric difference of two <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom0</CODE> - the first Geometry<DD><CODE>geom1</CODE> - the second Geometry
+<DT><B>Returns:</B><DD>the Geometry representing the set-theoretic symmetric difference of the input Geometries.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="buffer(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+buffer</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>buffer</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom,
+ double distance)</PRE>
+<DL>
+<DD>Computes the buffer of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>, using enhanced precision.
+ This method should no longer be necessary, since the buffer algorithm
+ now is highly robust.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - the first Geometry<DD><CODE>distance</CODE> - the buffer distance
+<DT><B>Returns:</B><DD>the Geometry representing the buffer of the input Geometry.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html" title="class in com.vividsolutions.jts.precision"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="EnhancedPrecisionOp.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,319 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+SimpleGeometryPrecisionReducer
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.precision.SimpleGeometryPrecisionReducer class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="SimpleGeometryPrecisionReducer";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimpleGeometryPrecisionReducer.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.precision</FONT>
+<BR>
+Class SimpleGeometryPrecisionReducer</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.precision.SimpleGeometryPrecisionReducer</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>SimpleGeometryPrecisionReducer</B><DT>extends java.lang.Object</DL>
+
+<P>
+Reduces the precision of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ according to the supplied <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A>, without
+ attempting to preserve valid topology.
+ <p>
+ The topology of the resulting geometry may be invalid if
+ topological collapse occurs due to coordinates being shifted.
+ It is up to the client to check this and handle it if necessary.
+ Collapses may not matter for some uses. An example
+ is simplifying the input to the buffer algorithm.
+ The buffer algorithm does not depend on the validity of the input geometry.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html#SimpleGeometryPrecisionReducer(com.vividsolutions.jts.geom.PrecisionModel)">SimpleGeometryPrecisionReducer</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html#reduce(com.vividsolutions.jts.geom.Geometry)">reduce</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html#setChangePrecisionModel(boolean)">setChangePrecisionModel</A></B>(boolean changePrecisionModel)</CODE>
+
+<BR>
+ Sets whether the <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A> of the new reduced Geometry
+ will be changed to be the <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A> supplied to
+ specify the reduction.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html#setRemoveCollapsedComponents(boolean)">setRemoveCollapsedComponents</A></B>(boolean removeCollapsed)</CODE>
+
+<BR>
+ Sets whether the reduction will result in collapsed components
+ being removed completely, or simply being collapsed to an (invalid)
+ Geometry of the same type.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="SimpleGeometryPrecisionReducer(com.vividsolutions.jts.geom.PrecisionModel)"><!-- --></A><H3>
+SimpleGeometryPrecisionReducer</H3>
+<PRE>
+public <B>SimpleGeometryPrecisionReducer</B>(<A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> pm)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setRemoveCollapsedComponents(boolean)"><!-- --></A><H3>
+setRemoveCollapsedComponents</H3>
+<PRE>
+public void <B>setRemoveCollapsedComponents</B>(boolean removeCollapsed)</PRE>
+<DL>
+<DD>Sets whether the reduction will result in collapsed components
+ being removed completely, or simply being collapsed to an (invalid)
+ Geometry of the same type.
+ The default is to remove collapsed components.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>removeCollapsed</CODE> - if <code>true</code> collapsed components will be removed</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setChangePrecisionModel(boolean)"><!-- --></A><H3>
+setChangePrecisionModel</H3>
+<PRE>
+public void <B>setChangePrecisionModel</B>(boolean changePrecisionModel)</PRE>
+<DL>
+<DD>Sets whether the <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A> of the new reduced Geometry
+ will be changed to be the <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A> supplied to
+ specify the reduction. The default is to not change the precision model
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>changePrecisionModel</CODE> - if <code>true</code> the precision model of the created Geometry will be the
+ the precisionModel supplied in the constructor.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reduce(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+reduce</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>reduce</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="SimpleGeometryPrecisionReducer.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.precision
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.precision package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/vividsolutions/jts/precision/package-summary.html" target="classFrame">com.vividsolutions.jts.precision</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="CommonBits.html" title="class in com.vividsolutions.jts.precision" target="classFrame">CommonBits</A>
+<BR>
+<A HREF="CommonBitsOp.html" title="class in com.vividsolutions.jts.precision" target="classFrame">CommonBitsOp</A>
+<BR>
+<A HREF="CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision" target="classFrame">CommonBitsRemover</A>
+<BR>
+<A HREF="EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision" target="classFrame">EnhancedPrecisionOp</A>
+<BR>
+<A HREF="SimpleGeometryPrecisionReducer.html" title="class in com.vividsolutions.jts.precision" target="classFrame">SimpleGeometryPrecisionReducer</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.precision
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.precision package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.precision";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/algorithm/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.precision
+</H2>
+Provides classes for manipulating the precision model of Geometries
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision">CommonBits</A></B></TD>
+<TD>Determines the maximum number of common most-significant
+ bits in the mantissa of one or numbers.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision">CommonBitsOp</A></B></TD>
+<TD>Provides versions of Geometry spatial functions which use
+ common bit removal to reduce the likelihood of robustness problems.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision">CommonBitsRemover</A></B></TD>
+<TD>Allow computing and removing common mantissa bits from one or more Geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision">EnhancedPrecisionOp</A></B></TD>
+<TD>Provides versions of Geometry spatial functions which use
+ enhanced precision techniques to reduce the likelihood of robustness problems.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html" title="class in com.vividsolutions.jts.precision">SimpleGeometryPrecisionReducer</A></B></TD>
+<TD>Reduces the precision of a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ according to the supplied <A HREF="../../../../com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A>, without
+ attempting to preserve valid topology.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.precision Description
+</H2>
+
+<P>
+Provides classes for manipulating the precision model of Geometries
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/algorithm/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/precision/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.precision Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.precision Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/algorithm/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.precision
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.precision.<A HREF="../../../../com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision"><B>CommonBits</B></A><LI TYPE="circle">class com.vividsolutions.jts.precision.<A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision"><B>CommonBitsOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.precision.<A HREF="../../../../com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision"><B>CommonBitsRemover</B></A><LI TYPE="circle">class com.vividsolutions.jts.precision.<A HREF="../../../../com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision"><B>EnhancedPrecisionOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.precision.<A HREF="../../../../com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html" title="class in com.vividsolutions.jts.precision"><B>SimpleGeometryPrecisionReducer</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/planargraph/algorithm/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+DouglasPeuckerLineSimplifier
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.simplify.DouglasPeuckerLineSimplifier class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="DouglasPeuckerLineSimplifier";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DouglasPeuckerLineSimplifier.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.simplify</FONT>
+<BR>
+Class DouglasPeuckerLineSimplifier</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.simplify.DouglasPeuckerLineSimplifier</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>DouglasPeuckerLineSimplifier</B><DT>extends java.lang.Object</DL>
+
+<P>
+Simplifies a linestring (sequence of points) using
+ the standard Douglas-Peucker algorithm.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html#DouglasPeuckerLineSimplifier(com.vividsolutions.jts.geom.Coordinate[])">DouglasPeuckerLineSimplifier</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html#setDistanceTolerance(double)">setDistanceTolerance</A></B>(double distanceTolerance)</CODE>
+
+<BR>
+ Sets the distance tolerance for the simplification.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html#simplify()">simplify</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html#simplify(com.vividsolutions.jts.geom.Coordinate[], double)">simplify</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts,
+ double distanceTolerance)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="DouglasPeuckerLineSimplifier(com.vividsolutions.jts.geom.Coordinate[])"><!-- --></A><H3>
+DouglasPeuckerLineSimplifier</H3>
+<PRE>
+public <B>DouglasPeuckerLineSimplifier</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="simplify(com.vividsolutions.jts.geom.Coordinate[], double)"><!-- --></A><H3>
+simplify</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>simplify</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] pts,
+ double distanceTolerance)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDistanceTolerance(double)"><!-- --></A><H3>
+setDistanceTolerance</H3>
+<PRE>
+public void <B>setDistanceTolerance</B>(double distanceTolerance)</PRE>
+<DL>
+<DD>Sets the distance tolerance for the simplification.
+ All vertices in the simplified linestring will be within this
+ distance of the original linestring.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>distanceTolerance</CODE> - the approximation tolerance to use</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="simplify()"><!-- --></A><H3>
+simplify</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>simplify</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DouglasPeuckerLineSimplifier.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,313 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+DouglasPeuckerSimplifier
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.simplify.DouglasPeuckerSimplifier class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="DouglasPeuckerSimplifier";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DouglasPeuckerSimplifier.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.simplify</FONT>
+<BR>
+Class DouglasPeuckerSimplifier</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.simplify.DouglasPeuckerSimplifier</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>DouglasPeuckerSimplifier</B><DT>extends java.lang.Object</DL>
+
+<P>
+Simplifies a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> using the standard Douglas-Peucker algorithm.
+ Ensures that any polygonal geometries returned are valid.
+ Simple lines are not guaranteed to remain simple after simplification.
+ <p>
+ Note that in general D-P does not preserve topology -
+ e.g. polygons can be split, collapse to lines or disappear
+ holes can be created or disappear,
+ and lines can cross.
+ To simplify geometry while preserving topology use <A HREF="../../../../com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html" title="class in com.vividsolutions.jts.simplify"><CODE>TopologyPreservingSimplifier</CODE></A>.
+ (However, using D-P is significantly faster).
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html#DouglasPeuckerSimplifier(com.vividsolutions.jts.geom.Geometry)">DouglasPeuckerSimplifier</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> inputGeom)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html#getResultGeometry()">getResultGeometry</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html#setDistanceTolerance(double)">setDistanceTolerance</A></B>(double distanceTolerance)</CODE>
+
+<BR>
+ Sets the distance tolerance for the simplification.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html#simplify(com.vividsolutions.jts.geom.Geometry, double)">simplify</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom,
+ double distanceTolerance)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="DouglasPeuckerSimplifier(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+DouglasPeuckerSimplifier</H3>
+<PRE>
+public <B>DouglasPeuckerSimplifier</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> inputGeom)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="simplify(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+simplify</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>simplify</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom,
+ double distanceTolerance)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDistanceTolerance(double)"><!-- --></A><H3>
+setDistanceTolerance</H3>
+<PRE>
+public void <B>setDistanceTolerance</B>(double distanceTolerance)</PRE>
+<DL>
+<DD>Sets the distance tolerance for the simplification.
+ All vertices in the simplified geometry will be within this
+ distance of the original geometry.
+ The tolerance value must be non-negative. A tolerance value
+ of zero is effectively a no-op.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>distanceTolerance</CODE> - the approximation tolerance to use</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getResultGeometry()"><!-- --></A><H3>
+getResultGeometry</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getResultGeometry</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="DouglasPeuckerSimplifier.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/LineSegmentIndex.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/LineSegmentIndex.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/LineSegmentIndex.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,316 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+LineSegmentIndex
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.simplify.LineSegmentIndex class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="LineSegmentIndex";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineSegmentIndex.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.simplify</FONT>
+<BR>
+Class LineSegmentIndex</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.simplify.LineSegmentIndex</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>LineSegmentIndex</B><DT>extends java.lang.Object</DL>
+
+<P>
+An spatial index on a set of <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom"><CODE>LineSegment</CODE></A>s.
+ Supports adding and removing items.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/LineSegmentIndex.html#LineSegmentIndex()">LineSegmentIndex</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/LineSegmentIndex.html#add(com.vividsolutions.jts.geom.LineSegment)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/LineSegmentIndex.html#add(com.vividsolutions.jts.simplify.TaggedLineString)">add</A></B>(<A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A> line)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/LineSegmentIndex.html#query(com.vividsolutions.jts.geom.LineSegment)">query</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> querySeg)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/LineSegmentIndex.html#remove(com.vividsolutions.jts.geom.LineSegment)">remove</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="LineSegmentIndex()"><!-- --></A><H3>
+LineSegmentIndex</H3>
+<PRE>
+public <B>LineSegmentIndex</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="add(com.vividsolutions.jts.simplify.TaggedLineString)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A> line)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(com.vividsolutions.jts.geom.LineSegment)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public void <B>add</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(com.vividsolutions.jts.geom.LineSegment)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="query(com.vividsolutions.jts.geom.LineSegment)"><!-- --></A><H3>
+query</H3>
+<PRE>
+public java.util.List <B>query</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> querySeg)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="LineSegmentIndex.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLineSegment.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLineSegment.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLineSegment.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,328 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+TaggedLineSegment
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.simplify.TaggedLineSegment class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="TaggedLineSegment";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TaggedLineSegment.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.LineSegment">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.simplify</FONT>
+<BR>
+Class TaggedLineSegment</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.LineSegment</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.simplify.TaggedLineSegment</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Comparable, java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>TaggedLineSegment</B><DT>extends <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A></DL>
+
+<P>
+A <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom"><CODE>LineSegment</CODE></A> which is tagged with its location in a parent <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+ Used to index the segments in a geometry and recover the segment locations
+ from the index.
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.simplify.TaggedLineSegment">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_com.vividsolutions.jts.geom.LineSegment"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#p0">p0</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#p1">p1</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineSegment.html#TaggedLineSegment(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">TaggedLineSegment</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineSegment.html#TaggedLineSegment(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Geometry, int)">TaggedLineSegment</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent,
+ int index)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineSegment.html#getIndex()">getIndex</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineSegment.html#getParent()">getParent</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_com.vividsolutions.jts.geom.LineSegment"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#angle()">angle</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#closestPoint(com.vividsolutions.jts.geom.Coordinate)">closestPoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#closestPoints(com.vividsolutions.jts.geom.LineSegment)">closestPoints</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#compareTo(java.lang.Object)">compareTo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#distance(com.vividsolutions.jts.geom.Coordinate)">distance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#distance(com.vividsolutions.jts.geom.LineSegment)">distance</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#distancePerpendicular(com.vividsolutions.jts.geom.Coordinate)">distancePerpendicular</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#equalsTopo(com.vividsolutions.jts.geom.LineSegment)">equalsTopo</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#getCoordinate(int)">getCoordinate</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#getLength()">getLength</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#intersection(com.vividsolutions.jts.geom.LineSegment)">intersection</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#isHorizontal()">isHorizontal</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#isVertical()">isVertical</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#midPoint()">midPoint</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#normalize()">normalize</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#orientationIndex(com.vividsolutions.jts.geom.LineSegment)">orientationIndex</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#pointAlong(double)">pointAlong</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#project(com.vividsolutions.jts.geom.Coordinate)">project</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#project(com.vividsolutions.jts.geom.LineSegment)">project</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#projectionFactor(com.vividsolutions.jts.geom.Coordinate)">projectionFactor</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#reverse()">reverse</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#setCoordinates(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">setCoordinates</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#setCoordinates(com.vividsolutions.jts.geom.LineSegment)">setCoordinates</A>, <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html#toString()">toString</A></CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="TaggedLineSegment(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Geometry, int)"><!-- --></A><H3>
+TaggedLineSegment</H3>
+<PRE>
+public <B>TaggedLineSegment</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> parent,
+ int index)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="TaggedLineSegment(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+TaggedLineSegment</H3>
+<PRE>
+public <B>TaggedLineSegment</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getParent()"><!-- --></A><H3>
+getParent</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getParent</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getIndex()"><!-- --></A><H3>
+getIndex</H3>
+<PRE>
+public int <B>getIndex</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TaggedLineSegment.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#fields_inherited_from_class_com.vividsolutions.jts.geom.LineSegment">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLineString.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLineString.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLineString.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,441 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+TaggedLineString
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.simplify.TaggedLineString class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="TaggedLineString";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TaggedLineString.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.simplify</FONT>
+<BR>
+Class TaggedLineString</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.simplify.TaggedLineString</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>TaggedLineString</B><DT>extends java.lang.Object</DL>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html#TaggedLineString(com.vividsolutions.jts.geom.LineString)">TaggedLineString</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> parentLine)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html#TaggedLineString(com.vividsolutions.jts.geom.LineString, int)">TaggedLineString</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> parentLine,
+ int minimumSize)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html#addToResult(com.vividsolutions.jts.geom.LineSegment)">addToResult</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html#asLinearRing()">asLinearRing</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html#asLineString()">asLineString</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html#getMinimumSize()">getMinimumSize</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html#getParent()">getParent</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html#getParentCoordinates()">getParentCoordinates</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html#getResultCoordinates()">getResultCoordinates</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html#getResultSize()">getResultSize</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify">TaggedLineSegment</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html#getSegment(int)">getSegment</A></B>(int i)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify">TaggedLineSegment</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html#getSegments()">getSegments</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="TaggedLineString(com.vividsolutions.jts.geom.LineString)"><!-- --></A><H3>
+TaggedLineString</H3>
+<PRE>
+public <B>TaggedLineString</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> parentLine)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="TaggedLineString(com.vividsolutions.jts.geom.LineString, int)"><!-- --></A><H3>
+TaggedLineString</H3>
+<PRE>
+public <B>TaggedLineString</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> parentLine,
+ int minimumSize)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getMinimumSize()"><!-- --></A><H3>
+getMinimumSize</H3>
+<PRE>
+public int <B>getMinimumSize</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getParent()"><!-- --></A><H3>
+getParent</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>getParent</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getParentCoordinates()"><!-- --></A><H3>
+getParentCoordinates</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>getParentCoordinates</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getResultCoordinates()"><!-- --></A><H3>
+getResultCoordinates</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>getResultCoordinates</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getResultSize()"><!-- --></A><H3>
+getResultSize</H3>
+<PRE>
+public int <B>getResultSize</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSegment(int)"><!-- --></A><H3>
+getSegment</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify">TaggedLineSegment</A> <B>getSegment</B>(int i)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSegments()"><!-- --></A><H3>
+getSegments</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify">TaggedLineSegment</A>[] <B>getSegments</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addToResult(com.vividsolutions.jts.geom.LineSegment)"><!-- --></A><H3>
+addToResult</H3>
+<PRE>
+public void <B>addToResult</B>(<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> seg)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="asLineString()"><!-- --></A><H3>
+asLineString</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>asLineString</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="asLinearRing()"><!-- --></A><H3>
+asLinearRing</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> <B>asLinearRing</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TaggedLineString.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,287 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+TaggedLineStringSimplifier
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.simplify.TaggedLineStringSimplifier class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="TaggedLineStringSimplifier";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TaggedLineStringSimplifier.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.simplify</FONT>
+<BR>
+Class TaggedLineStringSimplifier</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.simplify.TaggedLineStringSimplifier</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>TaggedLineStringSimplifier</B><DT>extends java.lang.Object</DL>
+
+<P>
+Simplifies a TaggedLineString, preserving topology
+ (in the sense that no new intersections are introduced).
+ Uses the recursive Douglas-Peucker algorithm.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html#TaggedLineStringSimplifier(com.vividsolutions.jts.simplify.LineSegmentIndex, com.vividsolutions.jts.simplify.LineSegmentIndex)">TaggedLineStringSimplifier</A></B>(<A HREF="../../../../com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify">LineSegmentIndex</A> inputIndex,
+ <A HREF="../../../../com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify">LineSegmentIndex</A> outputIndex)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html#setDistanceTolerance(double)">setDistanceTolerance</A></B>(double distanceTolerance)</CODE>
+
+<BR>
+ Sets the distance tolerance for the simplification.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html#simplify(com.vividsolutions.jts.simplify.TaggedLineString)">simplify</A></B>(<A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A> line)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="TaggedLineStringSimplifier(com.vividsolutions.jts.simplify.LineSegmentIndex, com.vividsolutions.jts.simplify.LineSegmentIndex)"><!-- --></A><H3>
+TaggedLineStringSimplifier</H3>
+<PRE>
+public <B>TaggedLineStringSimplifier</B>(<A HREF="../../../../com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify">LineSegmentIndex</A> inputIndex,
+ <A HREF="../../../../com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify">LineSegmentIndex</A> outputIndex)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setDistanceTolerance(double)"><!-- --></A><H3>
+setDistanceTolerance</H3>
+<PRE>
+public void <B>setDistanceTolerance</B>(double distanceTolerance)</PRE>
+<DL>
+<DD>Sets the distance tolerance for the simplification.
+ All vertices in the simplified geometry will be within this
+ distance of the original geometry.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>distanceTolerance</CODE> - the approximation tolerance to use</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="simplify(com.vividsolutions.jts.simplify.TaggedLineString)"><!-- --></A><H3>
+simplify</H3>
+<PRE>
+public void <B>simplify</B>(<A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A> line)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TaggedLineStringSimplifier.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+TaggedLinesSimplifier
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.simplify.TaggedLinesSimplifier class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="TaggedLinesSimplifier";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TaggedLinesSimplifier.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.simplify</FONT>
+<BR>
+Class TaggedLinesSimplifier</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.simplify.TaggedLinesSimplifier</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>TaggedLinesSimplifier</B><DT>extends java.lang.Object</DL>
+
+<P>
+Simplifies a collection of <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify"><CODE>TaggedLineString</CODE></A>s, preserving topology
+ (in the sense that no new intersections are introduced).
+ This class is essentially just a container for the common
+ indexes used by <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify"><CODE>TaggedLineStringSimplifier</CODE></A>.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html#TaggedLinesSimplifier()">TaggedLinesSimplifier</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html#setDistanceTolerance(double)">setDistanceTolerance</A></B>(double distanceTolerance)</CODE>
+
+<BR>
+ Sets the distance tolerance for the simplification.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html#simplify(java.util.Collection)">simplify</A></B>(java.util.Collection taggedLines)</CODE>
+
+<BR>
+ Simplify a collection of <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify"><CODE>TaggedLineString</CODE></A>s</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="TaggedLinesSimplifier()"><!-- --></A><H3>
+TaggedLinesSimplifier</H3>
+<PRE>
+public <B>TaggedLinesSimplifier</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setDistanceTolerance(double)"><!-- --></A><H3>
+setDistanceTolerance</H3>
+<PRE>
+public void <B>setDistanceTolerance</B>(double distanceTolerance)</PRE>
+<DL>
+<DD>Sets the distance tolerance for the simplification.
+ All vertices in the simplified geometry will be within this
+ distance of the original geometry.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>distanceTolerance</CODE> - the approximation tolerance to use</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="simplify(java.util.Collection)"><!-- --></A><H3>
+simplify</H3>
+<PRE>
+public void <B>simplify</B>(java.util.Collection taggedLines)</PRE>
+<DL>
+<DD>Simplify a collection of <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify"><CODE>TaggedLineString</CODE></A>s
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>taggedLines</CODE> - the collection of lines to simplify</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TaggedLinesSimplifier.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,317 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+TopologyPreservingSimplifier
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.simplify.TopologyPreservingSimplifier class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="TopologyPreservingSimplifier";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TopologyPreservingSimplifier.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.simplify</FONT>
+<BR>
+Class TopologyPreservingSimplifier</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.simplify.TopologyPreservingSimplifier</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>TopologyPreservingSimplifier</B><DT>extends java.lang.Object</DL>
+
+<P>
+Simplifies a geometry, ensuring that
+ the result is a valid geometry having the
+ same dimension and number of components as the input.
+ The simplification uses a maximum distance difference algorithm
+ similar to the one used in the Douglas-Peucker algorithm.
+ <p>
+ In particular, if the input is an areal geometry
+ ( <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A> or <A HREF="../../../../com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiPolygon</CODE></A> )
+ <ul>
+ <li>The result has the same number of shells and holes (rings) as the input,
+ in the same order
+ <li>The result rings touch at <b>no more</b> than the number of touching point in the input
+ (although they may touch at fewer points)
+ </ul>
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>Martin Davis</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html#TopologyPreservingSimplifier(com.vividsolutions.jts.geom.Geometry)">TopologyPreservingSimplifier</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> inputGeom)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html#getResultGeometry()">getResultGeometry</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html#setDistanceTolerance(double)">setDistanceTolerance</A></B>(double distanceTolerance)</CODE>
+
+<BR>
+ Sets the distance tolerance for the simplification.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html#simplify(com.vividsolutions.jts.geom.Geometry, double)">simplify</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom,
+ double distanceTolerance)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="TopologyPreservingSimplifier(com.vividsolutions.jts.geom.Geometry)"><!-- --></A><H3>
+TopologyPreservingSimplifier</H3>
+<PRE>
+public <B>TopologyPreservingSimplifier</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> inputGeom)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="simplify(com.vividsolutions.jts.geom.Geometry, double)"><!-- --></A><H3>
+simplify</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>simplify</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> geom,
+ double distanceTolerance)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDistanceTolerance(double)"><!-- --></A><H3>
+setDistanceTolerance</H3>
+<PRE>
+public void <B>setDistanceTolerance</B>(double distanceTolerance)</PRE>
+<DL>
+<DD>Sets the distance tolerance for the simplification.
+ All vertices in the simplified geometry will be within this
+ distance of the original geometry.
+ The tolerance value must be non-negative. A tolerance value
+ of zero is effectively a no-op.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>distanceTolerance</CODE> - the approximation tolerance to use</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getResultGeometry()"><!-- --></A><H3>
+getResultGeometry</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>getResultGeometry</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="TopologyPreservingSimplifier.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.simplify
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.simplify package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/vividsolutions/jts/simplify/package-summary.html" target="classFrame">com.vividsolutions.jts.simplify</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="DouglasPeuckerLineSimplifier.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">DouglasPeuckerLineSimplifier</A>
+<BR>
+<A HREF="DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">DouglasPeuckerSimplifier</A>
+<BR>
+<A HREF="LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">LineSegmentIndex</A>
+<BR>
+<A HREF="TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">TaggedLineSegment</A>
+<BR>
+<A HREF="TaggedLinesSimplifier.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">TaggedLinesSimplifier</A>
+<BR>
+<A HREF="TaggedLineString.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">TaggedLineString</A>
+<BR>
+<A HREF="TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">TaggedLineStringSimplifier</A>
+<BR>
+<A HREF="TopologyPreservingSimplifier.html" title="class in com.vividsolutions.jts.simplify" target="classFrame">TopologyPreservingSimplifier</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,179 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.simplify
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.simplify package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.simplify";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/precision/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.simplify
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html" title="class in com.vividsolutions.jts.simplify">DouglasPeuckerLineSimplifier</A></B></TD>
+<TD>Simplifies a linestring (sequence of points) using
+ the standard Douglas-Peucker algorithm.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify">DouglasPeuckerSimplifier</A></B></TD>
+<TD>Simplifies a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> using the standard Douglas-Peucker algorithm.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify">LineSegmentIndex</A></B></TD>
+<TD>An spatial index on a set of <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom"><CODE>LineSegment</CODE></A>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify">TaggedLineSegment</A></B></TD>
+<TD>A <A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom"><CODE>LineSegment</CODE></A> which is tagged with its location in a parent <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html" title="class in com.vividsolutions.jts.simplify">TaggedLinesSimplifier</A></B></TD>
+<TD>Simplifies a collection of <A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify"><CODE>TaggedLineString</CODE></A>s, preserving topology
+ (in the sense that no new intersections are introduced).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify">TaggedLineStringSimplifier</A></B></TD>
+<TD>Simplifies a TaggedLineString, preserving topology
+ (in the sense that no new intersections are introduced).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html" title="class in com.vividsolutions.jts.simplify">TopologyPreservingSimplifier</A></B></TD>
+<TD>Simplifies a geometry, ensuring that
+ the result is a valid geometry having the
+ same dimension and number of components as the input.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/precision/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/simplify/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.simplify Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.simplify Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/precision/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.simplify
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>DouglasPeuckerLineSimplifier</B></A><LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="../../../../com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>DouglasPeuckerSimplifier</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom"><B>LineSegment</B></A> (implements java.lang.Comparable, java.io.Serializable)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify"><B>TaggedLineSegment</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="../../../../com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify"><B>LineSegmentIndex</B></A><LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>TaggedLinesSimplifier</B></A><LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify"><B>TaggedLineString</B></A><LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="../../../../com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>TaggedLineStringSimplifier</B></A><LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="../../../../com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>TopologyPreservingSimplifier</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/precision/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/Assert.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/Assert.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/Assert.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,397 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+Assert
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.util.Assert class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Assert";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Assert.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.util</FONT>
+<BR>
+Class Assert</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.util.Assert</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Assert</B><DT>extends java.lang.Object</DL>
+
+<P>
+A utility for making programming assertions.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Assert.html#Assert()">Assert</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Assert.html#equals(java.lang.Object, java.lang.Object)">equals</A></B>(java.lang.Object expectedValue,
+ java.lang.Object actualValue)</CODE>
+
+<BR>
+ Throws an <code>AssertionFailedException</code> if the given objects are
+ not equal, according to the <code>equals</code> method.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Assert.html#equals(java.lang.Object, java.lang.Object, java.lang.String)">equals</A></B>(java.lang.Object expectedValue,
+ java.lang.Object actualValue,
+ java.lang.String message)</CODE>
+
+<BR>
+ Throws an <code>AssertionFailedException</code> with the given message if
+ the given objects are not equal, according to the <code>equals</code>
+ method.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Assert.html#isTrue(boolean)">isTrue</A></B>(boolean assertion)</CODE>
+
+<BR>
+ Throws an <code>AssertionFailedException</code> if the given assertion is
+ not true.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Assert.html#isTrue(boolean, java.lang.String)">isTrue</A></B>(boolean assertion,
+ java.lang.String message)</CODE>
+
+<BR>
+ Throws an <code>AssertionFailedException</code> with the given message if
+ the given assertion is not true.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Assert.html#shouldNeverReachHere()">shouldNeverReachHere</A></B>()</CODE>
+
+<BR>
+ Always throws an <code>AssertionFailedException</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Assert.html#shouldNeverReachHere(java.lang.String)">shouldNeverReachHere</A></B>(java.lang.String message)</CODE>
+
+<BR>
+ Always throws an <code>AssertionFailedException</code> with the given
+ message.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Assert()"><!-- --></A><H3>
+Assert</H3>
+<PRE>
+public <B>Assert</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="isTrue(boolean)"><!-- --></A><H3>
+isTrue</H3>
+<PRE>
+public static void <B>isTrue</B>(boolean assertion)</PRE>
+<DL>
+<DD>Throws an <code>AssertionFailedException</code> if the given assertion is
+ not true.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>assertion</CODE> - a condition that is supposed to be true
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util">AssertionFailedException</A></CODE> - if the condition is false</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isTrue(boolean, java.lang.String)"><!-- --></A><H3>
+isTrue</H3>
+<PRE>
+public static void <B>isTrue</B>(boolean assertion,
+ java.lang.String message)</PRE>
+<DL>
+<DD>Throws an <code>AssertionFailedException</code> with the given message if
+ the given assertion is not true.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>assertion</CODE> - a condition that is supposed to be true<DD><CODE>message</CODE> - a description of the assertion
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util">AssertionFailedException</A></CODE> - if the condition is false</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public static void <B>equals</B>(java.lang.Object expectedValue,
+ java.lang.Object actualValue)</PRE>
+<DL>
+<DD>Throws an <code>AssertionFailedException</code> if the given objects are
+ not equal, according to the <code>equals</code> method.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>expectedValue</CODE> - the correct value<DD><CODE>actualValue</CODE> - the value being checked
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util">AssertionFailedException</A></CODE> - if the two objects are not equal</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(java.lang.Object, java.lang.Object, java.lang.String)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public static void <B>equals</B>(java.lang.Object expectedValue,
+ java.lang.Object actualValue,
+ java.lang.String message)</PRE>
+<DL>
+<DD>Throws an <code>AssertionFailedException</code> with the given message if
+ the given objects are not equal, according to the <code>equals</code>
+ method.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>expectedValue</CODE> - the correct value<DD><CODE>actualValue</CODE> - the value being checked<DD><CODE>message</CODE> - a description of the assertion
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util">AssertionFailedException</A></CODE> - if the two objects are not equal</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="shouldNeverReachHere()"><!-- --></A><H3>
+shouldNeverReachHere</H3>
+<PRE>
+public static void <B>shouldNeverReachHere</B>()</PRE>
+<DL>
+<DD>Always throws an <code>AssertionFailedException</code>.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util">AssertionFailedException</A></CODE> - thrown always</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="shouldNeverReachHere(java.lang.String)"><!-- --></A><H3>
+shouldNeverReachHere</H3>
+<PRE>
+public static void <B>shouldNeverReachHere</B>(java.lang.String message)</PRE>
+<DL>
+<DD>Always throws an <code>AssertionFailedException</code> with the given
+ message.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>message</CODE> - a description of the assertion
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../../com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util">AssertionFailedException</A></CODE> - thrown always</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Assert.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/AssertionFailedException.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/AssertionFailedException.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/AssertionFailedException.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+AssertionFailedException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.util.AssertionFailedException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="AssertionFailedException";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AssertionFailedException.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.util</FONT>
+<BR>
+Class AssertionFailedException</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.lang.Throwable
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.lang.Exception
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by">java.lang.RuntimeException
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.util.AssertionFailedException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>AssertionFailedException</B><DT>extends java.lang.RuntimeException</DL>
+
+<P>
+Thrown when the application is in an inconsistent state. Indicates a problem
+ with the code.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.vividsolutions.jts.util.AssertionFailedException">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/AssertionFailedException.html#AssertionFailedException()">AssertionFailedException</A></B>()</CODE>
+
+<BR>
+ Creates an <code>AssertionFailedException</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/AssertionFailedException.html#AssertionFailedException(java.lang.String)">AssertionFailedException</A></B>(java.lang.String message)</CODE>
+
+<BR>
+ Creates a <code>AssertionFailedException</code> with the given detail
+ message.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Throwable</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="AssertionFailedException()"><!-- --></A><H3>
+AssertionFailedException</H3>
+<PRE>
+public <B>AssertionFailedException</B>()</PRE>
+<DL>
+<DD>Creates an <code>AssertionFailedException</code>.
+<P>
+</DL>
+<HR>
+
+<A NAME="AssertionFailedException(java.lang.String)"><!-- --></A><H3>
+AssertionFailedException</H3>
+<PRE>
+public <B>AssertionFailedException</B>(java.lang.String message)</PRE>
+<DL>
+<DD>Creates a <code>AssertionFailedException</code> with the given detail
+ message.
+<P>
+<DT><B>Parameters:</B><DD><CODE>message</CODE> - a description of the assertion</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AssertionFailedException.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CollectionUtil.Function.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CollectionUtil.Function.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CollectionUtil.Function.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+CollectionUtil.Function
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.util.CollectionUtil.Function interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CollectionUtil.Function";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CollectionUtil.Function.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.util</FONT>
+<BR>
+Interface CollectionUtil.Function</H2>
+<DL>
+<DT><B>Enclosing interface:</B><DD><A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util">CollectionUtil</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public static interface <B>CollectionUtil.Function</B></DL>
+
+<P>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.Function.html#execute(java.lang.Object)">execute</A></B>(java.lang.Object obj)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
+execute</H3>
+<PRE>
+public java.lang.Object <B>execute</B>(java.lang.Object obj)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CollectionUtil.Function.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CollectionUtil.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CollectionUtil.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CollectionUtil.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,332 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+CollectionUtil
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.util.CollectionUtil class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CollectionUtil";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CollectionUtil.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.util</FONT>
+<BR>
+Class CollectionUtil</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.util.CollectionUtil</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>CollectionUtil</B><DT>extends java.lang.Object</DL>
+
+<P>
+Executes a transformation function on each element of a collection
+ and returns the results in a new List.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static interface</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util">CollectionUtil.Function</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.html#CollectionUtil()">CollectionUtil</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.html#apply(java.util.Collection, com.vividsolutions.jts.util.CollectionUtil.Function)">apply</A></B>(java.util.Collection coll,
+ <A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util">CollectionUtil.Function</A> func)</CODE>
+
+<BR>
+ Executes a function on each item in a Collection but does
+ not accumulate the result</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.html#select(java.util.Collection, com.vividsolutions.jts.util.CollectionUtil.Function)">select</A></B>(java.util.Collection collection,
+ <A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util">CollectionUtil.Function</A> func)</CODE>
+
+<BR>
+ Executes a function on each item in a Collection
+ and collects all the entries for which the result
+ of the function is equal to <CODE>Boolean</CODE>.TRUE.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.util.List</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.html#transform(java.util.Collection, com.vividsolutions.jts.util.CollectionUtil.Function)">transform</A></B>(java.util.Collection coll,
+ <A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util">CollectionUtil.Function</A> func)</CODE>
+
+<BR>
+ Executes a function on each item in a <CODE>Collection</CODE>
+ and returns the results in a new <CODE>List</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CollectionUtil()"><!-- --></A><H3>
+CollectionUtil</H3>
+<PRE>
+public <B>CollectionUtil</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="transform(java.util.Collection, com.vividsolutions.jts.util.CollectionUtil.Function)"><!-- --></A><H3>
+transform</H3>
+<PRE>
+public static java.util.List <B>transform</B>(java.util.Collection coll,
+ <A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util">CollectionUtil.Function</A> func)</PRE>
+<DL>
+<DD>Executes a function on each item in a <CODE>Collection</CODE>
+ and returns the results in a new <CODE>List</CODE>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coll</CODE> - the collection to process<DD><CODE>func</CODE> - the Function to execute</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="apply(java.util.Collection, com.vividsolutions.jts.util.CollectionUtil.Function)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+public static void <B>apply</B>(java.util.Collection coll,
+ <A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util">CollectionUtil.Function</A> func)</PRE>
+<DL>
+<DD>Executes a function on each item in a Collection but does
+ not accumulate the result
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coll</CODE> - the collection to process<DD><CODE>func</CODE> - the Function to execute</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="select(java.util.Collection, com.vividsolutions.jts.util.CollectionUtil.Function)"><!-- --></A><H3>
+select</H3>
+<PRE>
+public static java.util.List <B>select</B>(java.util.Collection collection,
+ <A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util">CollectionUtil.Function</A> func)</PRE>
+<DL>
+<DD>Executes a function on each item in a Collection
+ and collects all the entries for which the result
+ of the function is equal to <CODE>Boolean</CODE>.TRUE.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>collection</CODE> - the collection to process<DD><CODE>func</CODE> - the Function to execute</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CollectionUtil.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CoordinateArrayFilter.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CoordinateArrayFilter.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CoordinateArrayFilter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,296 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+CoordinateArrayFilter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.util.CoordinateArrayFilter class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CoordinateArrayFilter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateArrayFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.util</FONT>
+<BR>
+Class CoordinateArrayFilter</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.util.CoordinateArrayFilter</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>CoordinateArrayFilter</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A></DL>
+
+<P>
+A <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateFilter</CODE></A> that creates an array containing every
+ coordinate in a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/CoordinateArrayFilter.html#CoordinateArrayFilter(int)">CoordinateArrayFilter</A></B>(int size)</CODE>
+
+<BR>
+ Constructs a <code>CoordinateArrayFilter</code>.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/CoordinateArrayFilter.html#filter(com.vividsolutions.jts.geom.Coordinate)">filter</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ Performs an operation with or on <code>coord</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/CoordinateArrayFilter.html#getCoordinates()">getCoordinates</A></B>()</CODE>
+
+<BR>
+ Returns the gathered <code>Coordinate</code>s.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CoordinateArrayFilter(int)"><!-- --></A><H3>
+CoordinateArrayFilter</H3>
+<PRE>
+public <B>CoordinateArrayFilter</B>(int size)</PRE>
+<DL>
+<DD>Constructs a <code>CoordinateArrayFilter</code>.
+<P>
+<DT><B>Parameters:</B><DD><CODE>size</CODE> - the number of points that the <code>CoordinateArrayFilter</code>
+ will collect</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinates()"><!-- --></A><H3>
+getCoordinates</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>getCoordinates</B>()</PRE>
+<DL>
+<DD>Returns the gathered <code>Coordinate</code>s.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the <code>Coordinate</code>s collected by this <code>CoordinateArrayFilter</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="filter(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+filter</H3>
+<PRE>
+public void <B>filter</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A></CODE></B></DD>
+<DD>Performs an operation with or on <code>coord</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html#filter(com.vividsolutions.jts.geom.Coordinate)">filter</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coord</CODE> - a <code>Coordinate</code> to which the filter is applied.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateArrayFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CoordinateCountFilter.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CoordinateCountFilter.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/CoordinateCountFilter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,293 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+CoordinateCountFilter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.util.CoordinateCountFilter class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="CoordinateCountFilter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/util/CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateCountFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.util</FONT>
+<BR>
+Class CoordinateCountFilter</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.util.CoordinateCountFilter</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>CoordinateCountFilter</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A></DL>
+
+<P>
+A <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateFilter</CODE></A> that counts the total number of coordinates
+ in a <code>Geometry</code>.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/CoordinateCountFilter.html#CoordinateCountFilter()">CoordinateCountFilter</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/CoordinateCountFilter.html#filter(com.vividsolutions.jts.geom.Coordinate)">filter</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ Performs an operation with or on <code>coord</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/CoordinateCountFilter.html#getCount()">getCount</A></B>()</CODE>
+
+<BR>
+ Returns the result of the filtering.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="CoordinateCountFilter()"><!-- --></A><H3>
+CoordinateCountFilter</H3>
+<PRE>
+public <B>CoordinateCountFilter</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCount()"><!-- --></A><H3>
+getCount</H3>
+<PRE>
+public int <B>getCount</B>()</PRE>
+<DL>
+<DD>Returns the result of the filtering.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of points found by this <code>CoordinateCountFilter</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="filter(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+filter</H3>
+<PRE>
+public void <B>filter</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A></CODE></B></DD>
+<DD>Performs an operation with or on <code>coord</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html#filter(com.vividsolutions.jts.geom.Coordinate)">filter</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coord</CODE> - a <code>Coordinate</code> to which the filter is applied.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/util/CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="CoordinateCountFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/Debug.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/Debug.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/Debug.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,644 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+Debug
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.util.Debug class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Debug";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/util/CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Debug.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.util</FONT>
+<BR>
+Class Debug</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.util.Debug</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Debug</B><DT>extends java.lang.Object</DL>
+
+<P>
+Provides routines to simplify and localize debugging output.
+ Debugging is controlled via a Java system property value.
+ If the system property with the name given in
+ DEBUG_PROPERTY_NAME (currently "jts.debug") has the value
+ "on" or "true" debugging is enabled.
+ Otherwise, debugging is disabled.
+ The system property can be set by adding an option '-Djts_debug=on'
+ to the Java VM commandline.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#DEBUG_PROPERTY_NAME">DEBUG_PROPERTY_NAME</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#DEBUG_PROPERTY_VALUE_ON">DEBUG_PROPERTY_VALUE_ON</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#DEBUG_PROPERTY_VALUE_TRUE">DEBUG_PROPERTY_VALUE_TRUE</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#addWatch(java.lang.Object)">addWatch</A></B>(java.lang.Object obj)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#instancePrint(java.util.Iterator)">instancePrint</A></B>(java.util.Iterator it)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#instancePrint(java.lang.Object)">instancePrint</A></B>(java.lang.Object obj)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#instancePrintIfWatch(java.lang.Object)">instancePrintIfWatch</A></B>(java.lang.Object obj)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#instancePrintObject(java.lang.Object)">instancePrintObject</A></B>(java.lang.Object obj)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#instancePrintWatch()">instancePrintWatch</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#isDebugging()">isDebugging</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#main(java.lang.String[])">main</A></B>(java.lang.String[] args)</CODE>
+
+<BR>
+ Prints the status of debugging to <tt>System.out</tt></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#print(boolean, java.lang.Object)">print</A></B>(boolean isTrue,
+ java.lang.Object obj)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#print(java.lang.Object)">print</A></B>(java.lang.Object obj)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#print(java.lang.String)">print</A></B>(java.lang.String str)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#printIfWatch(java.lang.Object)">printIfWatch</A></B>(java.lang.Object obj)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#println()">println</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#println(java.lang.Object)">println</A></B>(java.lang.Object obj)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#printWatch()">printWatch</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#toLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">toLine</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#toLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">toLine</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html#toLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">toLine</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p3)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="DEBUG_PROPERTY_NAME"><!-- --></A><H3>
+DEBUG_PROPERTY_NAME</H3>
+<PRE>
+public static java.lang.String <B>DEBUG_PROPERTY_NAME</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="DEBUG_PROPERTY_VALUE_ON"><!-- --></A><H3>
+DEBUG_PROPERTY_VALUE_ON</H3>
+<PRE>
+public static java.lang.String <B>DEBUG_PROPERTY_VALUE_ON</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="DEBUG_PROPERTY_VALUE_TRUE"><!-- --></A><H3>
+DEBUG_PROPERTY_VALUE_TRUE</H3>
+<PRE>
+public static java.lang.String <B>DEBUG_PROPERTY_VALUE_TRUE</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="main(java.lang.String[])"><!-- --></A><H3>
+main</H3>
+<PRE>
+public static void <B>main</B>(java.lang.String[] args)</PRE>
+<DL>
+<DD>Prints the status of debugging to <tt>System.out</tt>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>args</CODE> - the cmd-line arguments (no arguments are required)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isDebugging()"><!-- --></A><H3>
+isDebugging</H3>
+<PRE>
+public static boolean <B>isDebugging</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+toLine</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>toLine</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+toLine</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>toLine</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+toLine</H3>
+<PRE>
+public static <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>toLine</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p0,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p1,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p2,
+ <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> p3)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.lang.String)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public static void <B>print</B>(java.lang.String str)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(java.lang.Object)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public static void <B>print</B>(java.lang.Object obj)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="print(boolean, java.lang.Object)"><!-- --></A><H3>
+print</H3>
+<PRE>
+public static void <B>print</B>(boolean isTrue,
+ java.lang.Object obj)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="println(java.lang.Object)"><!-- --></A><H3>
+println</H3>
+<PRE>
+public static void <B>println</B>(java.lang.Object obj)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addWatch(java.lang.Object)"><!-- --></A><H3>
+addWatch</H3>
+<PRE>
+public static void <B>addWatch</B>(java.lang.Object obj)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="printWatch()"><!-- --></A><H3>
+printWatch</H3>
+<PRE>
+public static void <B>printWatch</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="printIfWatch(java.lang.Object)"><!-- --></A><H3>
+printIfWatch</H3>
+<PRE>
+public static void <B>printIfWatch</B>(java.lang.Object obj)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="instancePrintWatch()"><!-- --></A><H3>
+instancePrintWatch</H3>
+<PRE>
+public void <B>instancePrintWatch</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="instancePrintIfWatch(java.lang.Object)"><!-- --></A><H3>
+instancePrintIfWatch</H3>
+<PRE>
+public void <B>instancePrintIfWatch</B>(java.lang.Object obj)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="instancePrint(java.lang.Object)"><!-- --></A><H3>
+instancePrint</H3>
+<PRE>
+public void <B>instancePrint</B>(java.lang.Object obj)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="instancePrint(java.util.Iterator)"><!-- --></A><H3>
+instancePrint</H3>
+<PRE>
+public void <B>instancePrint</B>(java.util.Iterator it)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="instancePrintObject(java.lang.Object)"><!-- --></A><H3>
+instancePrintObject</H3>
+<PRE>
+public void <B>instancePrintObject</B>(java.lang.Object obj)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="println()"><!-- --></A><H3>
+println</H3>
+<PRE>
+public void <B>println</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/util/CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Debug.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/GeometricShapeFactory.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/GeometricShapeFactory.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/GeometricShapeFactory.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,474 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+GeometricShapeFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.util.GeometricShapeFactory class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GeometricShapeFactory";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometricShapeFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.util</FONT>
+<BR>
+Class GeometricShapeFactory</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.util.GeometricShapeFactory</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>GeometricShapeFactory</B><DT>extends java.lang.Object</DL>
+
+<P>
+Computes various kinds of common geometric shapes.
+ Allows various ways of specifying the location and extent of the shapes,
+ as well as number of line segments used to form them.
+ <p>
+ Example:
+ <pre>
+ GeometricShapeFactory gsf = new GeometricShapeFactory();
+ gsf.setSize(100);
+ gsf.setNumPoints(100);
+ gsf.setBase(new Coordinate(0, 0));
+ Polygon rect = gsf.createRectangle();
+ </pre>
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html#GeometricShapeFactory()">GeometricShapeFactory</A></B>()</CODE>
+
+<BR>
+ Create a shape factory which will create shapes using the default
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html#GeometricShapeFactory(com.vividsolutions.jts.geom.GeometryFactory)">GeometricShapeFactory</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geomFact)</CODE>
+
+<BR>
+ Create a shape factory which will create shapes using the given
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html#createArc(double, double)">createArc</A></B>(double startAng,
+ double endAng)</CODE>
+
+<BR>
+ Creates a elliptical arc, as a LineString.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html#createCircle()">createCircle</A></B>()</CODE>
+
+<BR>
+ Creates a circular <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html#createRectangle()">createRectangle</A></B>()</CODE>
+
+<BR>
+ Creates a rectangular <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html#setBase(com.vividsolutions.jts.geom.Coordinate)">setBase</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> base)</CODE>
+
+<BR>
+ Sets the location of the shape by specifying the base coordinate
+ (which in most cases is the
+ lower left point of the envelope containing the shape).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html#setCentre(com.vividsolutions.jts.geom.Coordinate)">setCentre</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> centre)</CODE>
+
+<BR>
+ Sets the location of the shape by specifying the centre of
+ the shape's bounding box</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html#setHeight(double)">setHeight</A></B>(double height)</CODE>
+
+<BR>
+ Sets the height of the shape.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html#setNumPoints(int)">setNumPoints</A></B>(int nPts)</CODE>
+
+<BR>
+ Sets the total number of points in the created <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html#setSize(double)">setSize</A></B>(double size)</CODE>
+
+<BR>
+ Sets the size of the extent of the shape in both x and y directions.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html#setWidth(double)">setWidth</A></B>(double width)</CODE>
+
+<BR>
+ Sets the width of the shape.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GeometricShapeFactory()"><!-- --></A><H3>
+GeometricShapeFactory</H3>
+<PRE>
+public <B>GeometricShapeFactory</B>()</PRE>
+<DL>
+<DD>Create a shape factory which will create shapes using the default
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>.
+<P>
+</DL>
+<HR>
+
+<A NAME="GeometricShapeFactory(com.vividsolutions.jts.geom.GeometryFactory)"><!-- --></A><H3>
+GeometricShapeFactory</H3>
+<PRE>
+public <B>GeometricShapeFactory</B>(<A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> geomFact)</PRE>
+<DL>
+<DD>Create a shape factory which will create shapes using the given
+ <A HREF="../../../../com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>.
+<P>
+<DT><B>Parameters:</B><DD><CODE>geomFact</CODE> - the factory to use</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setBase(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+setBase</H3>
+<PRE>
+public void <B>setBase</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> base)</PRE>
+<DL>
+<DD>Sets the location of the shape by specifying the base coordinate
+ (which in most cases is the
+ lower left point of the envelope containing the shape).
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>base</CODE> - the base coordinate of the shape</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setCentre(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+setCentre</H3>
+<PRE>
+public void <B>setCentre</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> centre)</PRE>
+<DL>
+<DD>Sets the location of the shape by specifying the centre of
+ the shape's bounding box
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>centre</CODE> - the centre coordinate of the shape</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setNumPoints(int)"><!-- --></A><H3>
+setNumPoints</H3>
+<PRE>
+public void <B>setNumPoints</B>(int nPts)</PRE>
+<DL>
+<DD>Sets the total number of points in the created <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+ The created geometry will have no more than this number of points,
+ unless more are needed to create a valid geometry.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setSize(double)"><!-- --></A><H3>
+setSize</H3>
+<PRE>
+public void <B>setSize</B>(double size)</PRE>
+<DL>
+<DD>Sets the size of the extent of the shape in both x and y directions.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>size</CODE> - the size of the shape's extent</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setWidth(double)"><!-- --></A><H3>
+setWidth</H3>
+<PRE>
+public void <B>setWidth</B>(double width)</PRE>
+<DL>
+<DD>Sets the width of the shape.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>width</CODE> - the width of the shape</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setHeight(double)"><!-- --></A><H3>
+setHeight</H3>
+<PRE>
+public void <B>setHeight</B>(double height)</PRE>
+<DL>
+<DD>Sets the height of the shape.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>height</CODE> - the height of the shape</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createRectangle()"><!-- --></A><H3>
+createRectangle</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> <B>createRectangle</B>()</PRE>
+<DL>
+<DD>Creates a rectangular <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A>.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a rectangular Polygon</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createCircle()"><!-- --></A><H3>
+createCircle</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A> <B>createCircle</B>()</PRE>
+<DL>
+<DD>Creates a circular <A HREF="../../../../com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A>.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a circle</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="createArc(double, double)"><!-- --></A><H3>
+createArc</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> <B>createArc</B>(double startAng,
+ double endAng)</PRE>
+<DL>
+<DD>Creates a elliptical arc, as a LineString.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an elliptical arc</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometricShapeFactory.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/Stopwatch.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/Stopwatch.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/Stopwatch.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+Stopwatch
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.util.Stopwatch class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Stopwatch";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Stopwatch.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.util</FONT>
+<BR>
+Class Stopwatch</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.util.Stopwatch</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>Stopwatch</B><DT>extends java.lang.Object</DL>
+
+<P>
+Implements a timer function which can compute
+ elapsed time as well as split times.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Stopwatch.html#Stopwatch()">Stopwatch</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Stopwatch.html#getTime()">getTime</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Stopwatch.html#getTimeString()">getTimeString</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Stopwatch.html#reset()">reset</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Stopwatch.html#split()">split</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Stopwatch.html#start()">start</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/Stopwatch.html#stop()">stop</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Stopwatch()"><!-- --></A><H3>
+Stopwatch</H3>
+<PRE>
+public <B>Stopwatch</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="start()"><!-- --></A><H3>
+start</H3>
+<PRE>
+public void <B>start</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="stop()"><!-- --></A><H3>
+stop</H3>
+<PRE>
+public long <B>stop</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reset()"><!-- --></A><H3>
+reset</H3>
+<PRE>
+public void <B>reset</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="split()"><!-- --></A><H3>
+split</H3>
+<PRE>
+public long <B>split</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTime()"><!-- --></A><H3>
+getTime</H3>
+<PRE>
+public long <B>getTime</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTimeString()"><!-- --></A><H3>
+getTimeString</H3>
+<PRE>
+public java.lang.String <B>getTimeString</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util"><B>PREV CLASS</B></A>
+ <A HREF="../../../../com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Stopwatch.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,293 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+UniqueCoordinateArrayFilter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.util.UniqueCoordinateArrayFilter class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="UniqueCoordinateArrayFilter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="UniqueCoordinateArrayFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.util</FONT>
+<BR>
+Class UniqueCoordinateArrayFilter</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.util.UniqueCoordinateArrayFilter</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>UniqueCoordinateArrayFilter</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A></DL>
+
+<P>
+A <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateFilter</CODE></A> that builds a set of <code>Coordinate</code>s.
+ The set of coordinates contains no duplicate points.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>1.7</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html#UniqueCoordinateArrayFilter()">UniqueCoordinateArrayFilter</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html#filter(com.vividsolutions.jts.geom.Coordinate)">filter</A></B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</CODE>
+
+<BR>
+ Performs an operation with or on <code>coord</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html#getCoordinates()">getCoordinates</A></B>()</CODE>
+
+<BR>
+ Returns the gathered <code>Coordinate</code>s.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="UniqueCoordinateArrayFilter()"><!-- --></A><H3>
+UniqueCoordinateArrayFilter</H3>
+<PRE>
+public <B>UniqueCoordinateArrayFilter</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getCoordinates()"><!-- --></A><H3>
+getCoordinates</H3>
+<PRE>
+public <A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>getCoordinates</B>()</PRE>
+<DL>
+<DD>Returns the gathered <code>Coordinate</code>s.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the <code>Coordinate</code>s collected by this <code>CoordinateArrayFilter</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="filter(com.vividsolutions.jts.geom.Coordinate)"><!-- --></A><H3>
+filter</H3>
+<PRE>
+public void <B>filter</B>(<A HREF="../../../../com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> coord)</PRE>
+<DL>
+<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A></CODE></B></DD>
+<DD>Performs an operation with or on <code>coord</code>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html#filter(com.vividsolutions.jts.geom.Coordinate)">filter</A></CODE> in interface <CODE><A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>coord</CODE> - a <code>Coordinate</code> to which the filter is applied.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="UniqueCoordinateArrayFilter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.util
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.util package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/vividsolutions/jts/util/package-summary.html" target="classFrame">com.vividsolutions.jts.util</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util" target="classFrame"><I>CollectionUtil.Function</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Assert.html" title="class in com.vividsolutions.jts.util" target="classFrame">Assert</A>
+<BR>
+<A HREF="CollectionUtil.html" title="class in com.vividsolutions.jts.util" target="classFrame">CollectionUtil</A>
+<BR>
+<A HREF="CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util" target="classFrame">CoordinateArrayFilter</A>
+<BR>
+<A HREF="CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util" target="classFrame">CoordinateCountFilter</A>
+<BR>
+<A HREF="Debug.html" title="class in com.vividsolutions.jts.util" target="classFrame">Debug</A>
+<BR>
+<A HREF="GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util" target="classFrame">GeometricShapeFactory</A>
+<BR>
+<A HREF="Stopwatch.html" title="class in com.vividsolutions.jts.util" target="classFrame">Stopwatch</A>
+<BR>
+<A HREF="UniqueCoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util" target="classFrame">UniqueCoordinateArrayFilter</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Exceptions</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="AssertionFailedException.html" title="class in com.vividsolutions.jts.util" target="classFrame">AssertionFailedException</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,221 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.util
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.util package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.util";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/package-summary.html"><B>PREV PACKAGE</B></A>
+ NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.util
+</H2>
+Contains support classes for the Java Topology Suite.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util">CollectionUtil.Function</A></B></TD>
+<TD> </TD>
+</TR>
+</TABLE>
+
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util">Assert</A></B></TD>
+<TD>A utility for making programming assertions.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util">CollectionUtil</A></B></TD>
+<TD>Executes a transformation function on each element of a collection
+ and returns the results in a new List.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/util/CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util">CoordinateArrayFilter</A></B></TD>
+<TD>A <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateFilter</CODE></A> that creates an array containing every
+ coordinate in a <A HREF="../../../../com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/util/CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util">CoordinateCountFilter</A></B></TD>
+<TD>A <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateFilter</CODE></A> that counts the total number of coordinates
+ in a <code>Geometry</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A></B></TD>
+<TD>Provides routines to simplify and localize debugging output.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util">GeometricShapeFactory</A></B></TD>
+<TD>Computes various kinds of common geometric shapes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util">Stopwatch</A></B></TD>
+<TD>Implements a timer function which can compute
+ elapsed time as well as split times.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util">UniqueCoordinateArrayFilter</A></B></TD>
+<TD>A <A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateFilter</CODE></A> that builds a set of <code>Coordinate</code>s.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Exception Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util">AssertionFailedException</A></B></TD>
+<TD>Thrown when the application is in an inconsistent state.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.util Description
+</H2>
+
+<P>
+Contains support classes for the Java Topology Suite.
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/package-summary.html"><B>PREV PACKAGE</B></A>
+ NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/com/vividsolutions/jts/util/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:49 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.util Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.util Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/package-tree.html"><B>PREV</B></A>
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.util
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="../../../../com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util"><B>Assert</B></A><LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util"><B>CollectionUtil</B></A><LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="../../../../com/vividsolutions/jts/util/CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util"><B>CoordinateArrayFilter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="../../../../com/vividsolutions/jts/util/CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util"><B>CoordinateCountFilter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="../../../../com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util"><B>Debug</B></A><LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="../../../../com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util"><B>GeometricShapeFactory</B></A><LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="../../../../com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util"><B>Stopwatch</B></A><LI TYPE="circle">class java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">class java.lang.Exception<UL>
+<LI TYPE="circle">class java.lang.RuntimeException<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="../../../../com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util"><B>AssertionFailedException</B></A></UL>
+</UL>
+</UL>
+<LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="../../../../com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util"><B>UniqueCoordinateArrayFilter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="../../../../com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A>)
+</UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">interface com.vividsolutions.jts.util.<A HREF="../../../../com/vividsolutions/jts/util/CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util"><B>CollectionUtil.Function</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../com/vividsolutions/jts/simplify/package-tree.html"><B>PREV</B></A>
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/constant-values.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/constant-values.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/constant-values.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,890 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:46 PST 2006 -->
+<TITLE>
+Constant Field Values
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Constant Field Values";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Constant Field Values</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+<LI><A HREF="#com.vividsolutions">com.vividsolutions.*</A>
+</UL>
+
+<A NAME="com.vividsolutions"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD ALIGN="left"><FONT SIZE="+2">
+<B>com.vividsolutions.*</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.<A HREF="com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts">JTSVersion</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.JTSVersion.MAJOR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/JTSVersion.html#MAJOR">MAJOR</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.JTSVersion.MINOR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/JTSVersion.html#MINOR">MINOR</A></CODE></TD>
+<TD ALIGN="right"><CODE>8</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.JTSVersion.PATCH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/JTSVersion.html#PATCH">PATCH</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.algorithm.Angle.CLOCKWISE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/algorithm/Angle.html#CLOCKWISE">CLOCKWISE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.algorithm.Angle.COUNTERCLOCKWISE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/algorithm/Angle.html#COUNTERCLOCKWISE">COUNTERCLOCKWISE</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.algorithm.Angle.NONE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/algorithm/Angle.html#NONE">NONE</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.algorithm.Angle.PI_OVER_2"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final double</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/algorithm/Angle.html#PI_OVER_2">PI_OVER_2</A></CODE></TD>
+<TD ALIGN="right"><CODE>1.5707963267948966d</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.algorithm.Angle.PI_OVER_4"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final double</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/algorithm/Angle.html#PI_OVER_4">PI_OVER_4</A></CODE></TD>
+<TD ALIGN="right"><CODE>0.7853981633974483d</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.algorithm.Angle.PI_TIMES_2"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final double</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/algorithm/Angle.html#PI_TIMES_2">PI_TIMES_2</A></CODE></TD>
+<TD ALIGN="right"><CODE>6.283185307179586d</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.algorithm.CGAlgorithms.CLOCKWISE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#CLOCKWISE">CLOCKWISE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.algorithm.CGAlgorithms.COLLINEAR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#COLLINEAR">COLLINEAR</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.algorithm.CGAlgorithms.COUNTERCLOCKWISE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#COUNTERCLOCKWISE">COUNTERCLOCKWISE</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.algorithm.CGAlgorithms.LEFT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#LEFT">LEFT</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.algorithm.CGAlgorithms.RIGHT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#RIGHT">RIGHT</A></CODE></TD>
+<TD ALIGN="right"><CODE>-1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.algorithm.CGAlgorithms.STRAIGHT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#STRAIGHT">STRAIGHT</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.algorithm.LineIntersector.COLLINEAR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#COLLINEAR">COLLINEAR</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.algorithm.LineIntersector.DO_INTERSECT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#DO_INTERSECT">DO_INTERSECT</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.algorithm.LineIntersector.DONT_INTERSECT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#DONT_INTERSECT">DONT_INTERSECT</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.CoordinateSequence.M"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#M">M</A></CODE></TD>
+<TD ALIGN="right"><CODE>3</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.CoordinateSequence.X"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#X">X</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.CoordinateSequence.Y"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#Y">Y</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.CoordinateSequence.Z"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#Z">Z</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom">Dimension</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.Dimension.A"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/Dimension.html#A">A</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.Dimension.DONTCARE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/Dimension.html#DONTCARE">DONTCARE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-3</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.Dimension.FALSE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/Dimension.html#FALSE">FALSE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.Dimension.L"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/Dimension.html#L">L</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.Dimension.P"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/Dimension.html#P">P</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.Dimension.TRUE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/Dimension.html#TRUE">TRUE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-2</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom">Location</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.Location.BOUNDARY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/Location.html#BOUNDARY">BOUNDARY</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.Location.EXTERIOR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/Location.html#EXTERIOR">EXTERIOR</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.Location.INTERIOR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/Location.html#INTERIOR">INTERIOR</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.Location.NONE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/Location.html#NONE">NONE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-1</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.PrecisionModel.maximumPreciseValue"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final double</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#maximumPreciseValue">maximumPreciseValue</A></CODE></TD>
+<TD ALIGN="right"><CODE>9.007199254740992E15d</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.impl.PackedCoordinateSequenceFactory.DOUBLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#DOUBLE">DOUBLE</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geom.impl.PackedCoordinateSequenceFactory.FLOAT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#FLOAT">FLOAT</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph">Position</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geomgraph.Position.LEFT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geomgraph/Position.html#LEFT">LEFT</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geomgraph.Position.ON"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geomgraph/Position.html#ON">ON</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geomgraph.Position.RIGHT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geomgraph/Position.html#RIGHT">RIGHT</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geomgraph.index.SweepLineEvent.DELETE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#DELETE">DELETE</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.geomgraph.index.SweepLineEvent.INSERT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#INSERT">INSERT</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.index.quadtree.DoubleBits.EXPONENT_BIAS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html#EXPONENT_BIAS">EXPONENT_BIAS</A></CODE></TD>
+<TD ALIGN="right"><CODE>1023</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree">IntervalSize</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.index.quadtree.IntervalSize.MIN_BINARY_EXPONENT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/index/quadtree/IntervalSize.html#MIN_BINARY_EXPONENT">MIN_BINARY_EXPONENT</A></CODE></TD>
+<TD ALIGN="right"><CODE>-50</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.index.sweepline.SweepLineEvent.DELETE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#DELETE">DELETE</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.index.sweepline.SweepLineEvent.INSERT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#INSERT">INSERT</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io">ByteOrderValues</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.io.ByteOrderValues.BIG_ENDIAN"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/io/ByteOrderValues.html#BIG_ENDIAN">BIG_ENDIAN</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.io.ByteOrderValues.LITTLE_ENDIAN"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/io/ByteOrderValues.html#LITTLE_ENDIAN">LITTLE_ENDIAN</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io">WKBConstants</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.io.WKBConstants.wkbGeometryCollection"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbGeometryCollection">wkbGeometryCollection</A></CODE></TD>
+<TD ALIGN="right"><CODE>7</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.io.WKBConstants.wkbLineString"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbLineString">wkbLineString</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.io.WKBConstants.wkbMultiLineString"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbMultiLineString">wkbMultiLineString</A></CODE></TD>
+<TD ALIGN="right"><CODE>5</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.io.WKBConstants.wkbMultiPoint"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbMultiPoint">wkbMultiPoint</A></CODE></TD>
+<TD ALIGN="right"><CODE>4</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.io.WKBConstants.wkbMultiPolygon"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbMultiPolygon">wkbMultiPolygon</A></CODE></TD>
+<TD ALIGN="right"><CODE>6</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.io.WKBConstants.wkbNDR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbNDR">wkbNDR</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.io.WKBConstants.wkbPoint"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbPoint">wkbPoint</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.io.WKBConstants.wkbPolygon"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbPolygon">wkbPolygon</A></CODE></TD>
+<TD ALIGN="right"><CODE>3</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.io.WKBConstants.wkbXDR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbXDR">wkbXDR</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding">IteratedNoder</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.noding.IteratedNoder.MAX_ITER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/noding/IteratedNoder.html#MAX_ITER">MAX_ITER</A></CODE></TD>
+<TD ALIGN="right"><CODE>5</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer">BufferOp</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.buffer.BufferOp.CAP_BUTT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html#CAP_BUTT">CAP_BUTT</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.buffer.BufferOp.CAP_ROUND"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html#CAP_ROUND">CAP_ROUND</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.buffer.BufferOp.CAP_SQUARE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html#CAP_SQUARE">CAP_SQUARE</A></CODE></TD>
+<TD ALIGN="right"><CODE>3</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveBuilder</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.buffer.OffsetCurveBuilder.DEFAULT_QUADRANT_SEGMENTS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html#DEFAULT_QUADRANT_SEGMENTS">DEFAULT_QUADRANT_SEGMENTS</A></CODE></TD>
+<TD ALIGN="right"><CODE>8</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance">GeometryLocation</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.distance.GeometryLocation.INSIDE_AREA"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html#INSIDE_AREA">INSIDE_AREA</A></CODE></TD>
+<TD ALIGN="right"><CODE>-1</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.overlay.OverlayOp.DIFFERENCE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#DIFFERENCE">DIFFERENCE</A></CODE></TD>
+<TD ALIGN="right"><CODE>3</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.overlay.OverlayOp.INTERSECTION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#INTERSECTION">INTERSECTION</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.overlay.OverlayOp.SYMDIFFERENCE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#SYMDIFFERENCE">SYMDIFFERENCE</A></CODE></TD>
+<TD ALIGN="right"><CODE>4</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.overlay.OverlayOp.UNION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#UNION">UNION</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate">RectangleIntersects</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.predicate.RectangleIntersects.MAXIMUM_SCAN_SEGMENT_COUNT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/predicate/RectangleIntersects.html#MAXIMUM_SCAN_SEGMENT_COUNT">MAXIMUM_SCAN_SEGMENT_COUNT</A></CODE></TD>
+<TD ALIGN="right"><CODE>200</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.valid.TopologyValidationError.DISCONNECTED_INTERIOR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#DISCONNECTED_INTERIOR">DISCONNECTED_INTERIOR</A></CODE></TD>
+<TD ALIGN="right"><CODE>4</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.valid.TopologyValidationError.DUPLICATE_RINGS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#DUPLICATE_RINGS">DUPLICATE_RINGS</A></CODE></TD>
+<TD ALIGN="right"><CODE>8</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.valid.TopologyValidationError.ERROR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#ERROR">ERROR</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.valid.TopologyValidationError.HOLE_OUTSIDE_SHELL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#HOLE_OUTSIDE_SHELL">HOLE_OUTSIDE_SHELL</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.valid.TopologyValidationError.INVALID_COORDINATE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#INVALID_COORDINATE">INVALID_COORDINATE</A></CODE></TD>
+<TD ALIGN="right"><CODE>10</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.valid.TopologyValidationError.NESTED_HOLES"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#NESTED_HOLES">NESTED_HOLES</A></CODE></TD>
+<TD ALIGN="right"><CODE>3</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.valid.TopologyValidationError.NESTED_SHELLS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#NESTED_SHELLS">NESTED_SHELLS</A></CODE></TD>
+<TD ALIGN="right"><CODE>7</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.valid.TopologyValidationError.REPEATED_POINT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#REPEATED_POINT">REPEATED_POINT</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.valid.TopologyValidationError.RING_NOT_CLOSED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#RING_NOT_CLOSED">RING_NOT_CLOSED</A></CODE></TD>
+<TD ALIGN="right"><CODE>11</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.valid.TopologyValidationError.RING_SELF_INTERSECTION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#RING_SELF_INTERSECTION">RING_SELF_INTERSECTION</A></CODE></TD>
+<TD ALIGN="right"><CODE>6</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.valid.TopologyValidationError.SELF_INTERSECTION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#SELF_INTERSECTION">SELF_INTERSECTION</A></CODE></TD>
+<TD ALIGN="right"><CODE>5</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.operation.valid.TopologyValidationError.TOO_FEW_POINTS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#TOO_FEW_POINTS">TOO_FEW_POINTS</A></CODE></TD>
+<TD ALIGN="right"><CODE>9</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/deprecated-list.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/deprecated-list.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/deprecated-list.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,305 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+Deprecated List
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Deprecated List";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Deprecated API</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Deprecated Classes</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.DefaultCoordinateSequenceFactory</A>
+<BR>
+ <I>no longer used</I> </TD>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Deprecated Fields</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#ERROR">com.vividsolutions.jts.operation.valid.TopologyValidationError.ERROR</A>
+<BR>
+ <I></I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#REPEATED_POINT">com.vividsolutions.jts.operation.valid.TopologyValidationError.REPEATED_POINT</A>
+<BR>
+ <I></I> </TD>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Deprecated Methods</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#getOffsetX()">com.vividsolutions.jts.geom.PrecisionModel.getOffsetX()</A>
+<BR>
+ <I>Offsets are no longer used</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#getOffsetY()">com.vividsolutions.jts.geom.PrecisionModel.getOffsetY()</A>
+<BR>
+ <I>Offsets are no longer used</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html#isSimple(com.vividsolutions.jts.geom.LineString)">com.vividsolutions.jts.operation.IsSimpleOp.isSimple(LineString)</A>
+<BR>
+ <I>use isSimple()</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html#isSimple(com.vividsolutions.jts.geom.MultiLineString)">com.vividsolutions.jts.operation.IsSimpleOp.isSimple(MultiLineString)</A>
+<BR>
+ <I>use isSimple()</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html#isSimple(com.vividsolutions.jts.geom.MultiPoint)">com.vividsolutions.jts.operation.IsSimpleOp.isSimple(MultiPoint)</A>
+<BR>
+ <I>use isSimple()</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/Envelope.html#overlaps(com.vividsolutions.jts.geom.Coordinate)">com.vividsolutions.jts.geom.Envelope.overlaps(Coordinate)</A>
+<BR>
+ <I>Use #intersects instead.</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/Envelope.html#overlaps(double, double)">com.vividsolutions.jts.geom.Envelope.overlaps(double, double)</A>
+<BR>
+ <I>Use #intersects instead.</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/Envelope.html#overlaps(com.vividsolutions.jts.geom.Envelope)">com.vividsolutions.jts.geom.Envelope.overlaps(Envelope)</A>
+<BR>
+ <I>Use #intersects instead. In the future, #overlaps may be
+ changed to be a true overlap check; that is, whether the intersection is
+ two-dimensional.</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#setMakePrecise(com.vividsolutions.jts.geom.PrecisionModel)">com.vividsolutions.jts.algorithm.LineIntersector.setMakePrecise(PrecisionModel)</A>
+<BR>
+ <I>use <code>setPrecisionModel</code> instead</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#toExternal(com.vividsolutions.jts.geom.Coordinate)">com.vividsolutions.jts.geom.PrecisionModel.toExternal(Coordinate)</A>
+<BR>
+ <I>no longer needed, since internal representation is same as external representation</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#toExternal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">com.vividsolutions.jts.geom.PrecisionModel.toExternal(Coordinate, Coordinate)</A>
+<BR>
+ <I>no longer needed, since internal representation is same as external representation</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#toInternal(com.vividsolutions.jts.geom.Coordinate)">com.vividsolutions.jts.geom.PrecisionModel.toInternal(Coordinate)</A>
+<BR>
+ <I>use makePrecise instead</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#toInternal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)">com.vividsolutions.jts.geom.PrecisionModel.toInternal(Coordinate, Coordinate)</A>
+<BR>
+ <I>use makePrecise instead</I> </TD>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Deprecated Constructors</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#GeometryCollection(com.vividsolutions.jts.geom.Geometry[], com.vividsolutions.jts.geom.PrecisionModel, int)">com.vividsolutions.jts.geom.GeometryCollection(Geometry[], PrecisionModel, int)</A>
+<BR>
+ <I>Use GeometryFactory instead</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html#IsSimpleOp()">com.vividsolutions.jts.operation.IsSimpleOp()</A>
+<BR>
+ <I>use IsSimpleOp(Geometry)</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/LinearRing.html#LinearRing(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.PrecisionModel, int)">com.vividsolutions.jts.geom.LinearRing(Coordinate[], PrecisionModel, int)</A>
+<BR>
+ <I>Use GeometryFactory instead</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/LineString.html#LineString(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.PrecisionModel, int)">com.vividsolutions.jts.geom.LineString(Coordinate[], PrecisionModel, int)</A>
+<BR>
+ <I>Use GeometryFactory instead</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/MultiLineString.html#MultiLineString(com.vividsolutions.jts.geom.LineString[], com.vividsolutions.jts.geom.PrecisionModel, int)">com.vividsolutions.jts.geom.MultiLineString(LineString[], PrecisionModel, int)</A>
+<BR>
+ <I>Use GeometryFactory instead</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/MultiPoint.html#MultiPoint(com.vividsolutions.jts.geom.Point[], com.vividsolutions.jts.geom.PrecisionModel, int)">com.vividsolutions.jts.geom.MultiPoint(Point[], PrecisionModel, int)</A>
+<BR>
+ <I>Use GeometryFactory instead</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/MultiPolygon.html#MultiPolygon(com.vividsolutions.jts.geom.Polygon[], com.vividsolutions.jts.geom.PrecisionModel, int)">com.vividsolutions.jts.geom.MultiPolygon(Polygon[], PrecisionModel, int)</A>
+<BR>
+ <I>Use GeometryFactory instead</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/Point.html#Point(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.PrecisionModel, int)">com.vividsolutions.jts.geom.Point(Coordinate, PrecisionModel, int)</A>
+<BR>
+ <I>Use GeometryFactory instead</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/Polygon.html#Polygon(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.LinearRing[], com.vividsolutions.jts.geom.PrecisionModel, int)">com.vividsolutions.jts.geom.Polygon(LinearRing, LinearRing[], PrecisionModel, int)</A>
+<BR>
+ <I>Use GeometryFactory instead</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/Polygon.html#Polygon(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.PrecisionModel, int)">com.vividsolutions.jts.geom.Polygon(LinearRing, PrecisionModel, int)</A>
+<BR>
+ <I>Use GeometryFactory instead</I> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#PrecisionModel(double, double, double)">com.vividsolutions.jts.geom.PrecisionModel(double, double, double)</A>
+<BR>
+ <I>offsets are no longer supported, since internal representation is rounded floating point</I> </TD>
+</TR>
+</TABLE>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/help-doc.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/help-doc.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/help-doc.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+API Help
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="API Help";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+How This API Document Is Organized</H1>
+</CENTER>
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
+Overview</H3>
+<BLOCKQUOTE>
+
+<P>
+The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.</BLOCKQUOTE>
+<H3>
+Package</H3>
+<BLOCKQUOTE>
+
+<P>
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
+<LI>Interfaces (italic)<LI>Classes<LI>Exceptions<LI>Errors</UL>
+</BLOCKQUOTE>
+<H3>
+Class/Interface</H3>
+<BLOCKQUOTE>
+
+<P>
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
+<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
+<P>
+<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
+<P>
+<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
+<H3>
+Tree (Class Hierarchy)</H3>
+<BLOCKQUOTE>
+There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
+<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
+</BLOCKQUOTE>
+<H3>
+Deprecated API</H3>
+<BLOCKQUOTE>
+The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
+<H3>
+Index</H3>
+<BLOCKQUOTE>
+The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
+<H3>
+Prev/Next</H3>
+These links take you to the next or previous class, interface, package, or related page.<H3>
+Frames/No Frames</H3>
+These links show and hide the HTML frames. All pages are available with or without frames.
+<P>
+<H3>
+Serialized Form</H3>
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+<P>
+<FONT SIZE="-1">
+<EM>
+This help file applies to API documentation generated using the standard doclet.</EM>
+</FONT>
+<BR>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/index-all.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/index-all.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/index-all.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,7452 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:47 PST 2006 -->
+<TITLE>
+Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Index";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <A HREF="#_Y_">Y</A> <A HREF="#_Z_">Z</A> <HR>
+<A NAME="_A_"><!-- --></A><H2>
+<B>A</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/geom/Dimension.html#A"><B>A</B></A> -
+Static variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom">Dimension</A>
+<DD>Dimension value of a surface (2).
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree"><B>AbstractNode</B></A> - class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A>.<DD>A node of the STR tree.<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html#AbstractNode(int)"><B>AbstractNode(int)</B></A> -
+Constructor for class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A>
+<DD>Constructs an AbstractNode at the given level in the tree
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>AbstractSTRtree</B></A> - class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>.<DD>Base class for STRtree and SIRtree.<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#AbstractSTRtree(int)"><B>AbstractSTRtree(int)</B></A> -
+Constructor for class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>Constructs an AbstractSTRtree with the specified maximum number of child
+ nodes that a node may have
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree"><B>AbstractSTRtree.IntersectsOp</B></A> - interface com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree">AbstractSTRtree.IntersectsOp</A>.<DD>A test for intersection between two bounds, necessary because subclasses
+ of AbstractSTRtree have different implementations of bounds.<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><B>AffineTransformation</B></A> - class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>.<DD>Represents a affine transformation on the 2D Cartesian plane.<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#AffineTransformation()"><B>AffineTransformation()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Constructs a new identity transformation
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#AffineTransformation(double[])"><B>AffineTransformation(double[])</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Constructs a new transformation whose
+ matrix has the specified values.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#AffineTransformation(double, double, double, double, double, double)"><B>AffineTransformation(double, double, double, double, double, double)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Constructs a new transformation whose
+ matrix has the specified values.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#AffineTransformation(com.vividsolutions.jts.geom.util.AffineTransformation)"><B>AffineTransformation(AffineTransformation)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Constructs a transformation which is
+ a copy of the given one.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#AffineTransformation(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>AffineTransformation(Coordinate, Coordinate, Coordinate, Coordinate, Coordinate, Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Constructs a transformation
+ which maps the given source
+ points into the given destination points.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html" title="class in com.vividsolutions.jts.geom.util"><B>AffineTransformationBuilder</B></A> - class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformationBuilder</A>.<DD>Builds an <A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>AffineTransformation</CODE></A> defined by three control points
+ and their images under the transformation.<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html#AffineTransformationBuilder(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>AffineTransformationBuilder(Coordinate, Coordinate, Coordinate, Coordinate, Coordinate, Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformationBuilder</A>
+<DD>Constructs a new builder for
+ the transformation defined by the given
+ set of control point mappings.
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm"><B>Angle</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>.<DD>Utility functions for working with angles.<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#Angle()"><B>Angle()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/ArrayListVisitor.html" title="class in com.vividsolutions.jts.index"><B>ArrayListVisitor</B></A> - class com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/ArrayListVisitor.html" title="class in com.vividsolutions.jts.index">ArrayListVisitor</A>.<DD> <DT><A HREF="com/vividsolutions/jts/index/ArrayListVisitor.html#ArrayListVisitor()"><B>ArrayListVisitor()</B></A> -
+Constructor for class com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/ArrayListVisitor.html" title="class in com.vividsolutions.jts.index">ArrayListVisitor</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util"><B>Assert</B></A> - class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util">Assert</A>.<DD>A utility for making programming assertions.<DT><A HREF="com/vividsolutions/jts/util/Assert.html#Assert()"><B>Assert()</B></A> -
+Constructor for class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util">Assert</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util"><B>AssertionFailedException</B></A> - exception com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util">AssertionFailedException</A>.<DD>Thrown when the application is in an inconsistent state.<DT><A HREF="com/vividsolutions/jts/util/AssertionFailedException.html#AssertionFailedException()"><B>AssertionFailedException()</B></A> -
+Constructor for class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util">AssertionFailedException</A>
+<DD>Creates an <code>AssertionFailedException</code>.
+<DT><A HREF="com/vividsolutions/jts/util/AssertionFailedException.html#AssertionFailedException(java.lang.String)"><B>AssertionFailedException(String)</B></A> -
+Constructor for class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util">AssertionFailedException</A>
+<DD>Creates a <code>AssertionFailedException</code> with the given detail
+ message.
+<DT><A HREF="com/vividsolutions/jts/algorithm/CentroidArea.html#add(com.vividsolutions.jts.geom.Geometry)"><B>add(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidArea.html" title="class in com.vividsolutions.jts.algorithm">CentroidArea</A>
+<DD>Adds the area defined by a Geometry to the centroid total.
+<DT><A HREF="com/vividsolutions/jts/algorithm/CentroidArea.html#add(com.vividsolutions.jts.geom.Coordinate[])"><B>add(Coordinate[])</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidArea.html" title="class in com.vividsolutions.jts.algorithm">CentroidArea</A>
+<DD>Adds the area defined by an array of
+ coordinates.
+<DT><A HREF="com/vividsolutions/jts/algorithm/CentroidLine.html#add(com.vividsolutions.jts.geom.Geometry)"><B>add(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidLine.html" title="class in com.vividsolutions.jts.algorithm">CentroidLine</A>
+<DD>Adds the linestring(s) defined by a Geometry to the centroid total.
+<DT><A HREF="com/vividsolutions/jts/algorithm/CentroidLine.html#add(com.vividsolutions.jts.geom.Coordinate[])"><B>add(Coordinate[])</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidLine.html" title="class in com.vividsolutions.jts.algorithm">CentroidLine</A>
+<DD>Adds the length defined by an array of coordinates.
+<DT><A HREF="com/vividsolutions/jts/algorithm/CentroidPoint.html#add(com.vividsolutions.jts.geom.Geometry)"><B>add(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm">CentroidPoint</A>
+<DD>Adds the point(s) defined by a Geometry to the centroid total.
+<DT><A HREF="com/vividsolutions/jts/algorithm/CentroidPoint.html#add(com.vividsolutions.jts.geom.Coordinate)"><B>add(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm">CentroidPoint</A>
+<DD>Adds the length defined by an array of coordinates.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateList.html#add(com.vividsolutions.jts.geom.Coordinate[], boolean, boolean)"><B>add(Coordinate[], boolean, boolean)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">CoordinateList</A>
+<DD>Add an array of coordinates
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateList.html#add(com.vividsolutions.jts.geom.Coordinate[], boolean)"><B>add(Coordinate[], boolean)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">CoordinateList</A>
+<DD>Add an array of coordinates
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateList.html#add(java.lang.Object, boolean)"><B>add(Object, boolean)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">CoordinateList</A>
+<DD>Add a coordinate
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateList.html#add(com.vividsolutions.jts.geom.Coordinate, boolean)"><B>add(Coordinate, boolean)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">CoordinateList</A>
+<DD>Add a coordinate
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#add(com.vividsolutions.jts.geom.IntersectionMatrix)"><B>add(IntersectionMatrix)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Adds one matrix to another.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Depth.html#add(int, int, int)"><B>add(int, int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Depth.html#add(com.vividsolutions.jts.geomgraph.Label)"><B>add(Label)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html#add(com.vividsolutions.jts.geom.Coordinate, int, double)"><B>add(Coordinate, int, double)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersectionList</A>
+<DD>Adds an intersection into the list, if it isn't already there.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html#add(com.vividsolutions.jts.geomgraph.Edge)"><B>add(Edge)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeList</A>
+<DD>Insert an edge unless it is already in the list
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Node.html#add(com.vividsolutions.jts.geomgraph.EdgeEnd)"><B>add(EdgeEnd)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>
+<DD>Add the edge to the list of edges at this node
+<DT><A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html#add(com.vividsolutions.jts.geomgraph.EdgeEnd)"><B>add(EdgeEnd)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph">NodeMap</A>
+<DD>Adds a node for the start point of this EdgeEnd
+ (if one does not already exist in this map).
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#add(com.vividsolutions.jts.geomgraph.EdgeEnd)"><B>add(EdgeEnd)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html#add(java.lang.Object)"><B>add(Object)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html#add(java.lang.Object)"><B>add(Object)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineIndex.html#add(com.vividsolutions.jts.index.sweepline.SweepLineInterval)"><B>add(SweepLineInterval)</B></A> -
+Method in class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineIndex</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#add(com.vividsolutions.jts.geom.Coordinate)"><B>add(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref">LinearGeometryBuilder</A>
+<DD>Adds a point to the current line.
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#add(com.vividsolutions.jts.geom.Coordinate, boolean)"><B>add(Coordinate, boolean)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref">LinearGeometryBuilder</A>
+<DD>Adds a point to the current line.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html#add(com.vividsolutions.jts.geom.Coordinate, int)"><B>add(Coordinate, int)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding">SegmentNodeList</A>
+<DD>Adds an intersection into the list, if it isn't already there.
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/EdgeString.html#add(com.vividsolutions.jts.operation.linemerge.LineMergeDirectedEdge)"><B>add(LineMergeDirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/EdgeString.html" title="class in com.vividsolutions.jts.operation.linemerge">EdgeString</A>
+<DD>Adds a directed edge which is known to form part of this line.
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineMerger.html#add(java.util.Collection)"><B>add(Collection)</B></A> -
+Method in class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMerger</A>
+<DD>Adds a collection of Geometries to be processed.
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineMerger.html#add(com.vividsolutions.jts.geom.Geometry)"><B>add(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMerger</A>
+<DD>Adds a Geometry to be processed.
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html#add(java.util.Collection)"><B>add(Collection)</B></A> -
+Method in class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge">LineSequencer</A>
+<DD>Adds a <CODE>Collection</CODE> of <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s to be sequenced.
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html#add(com.vividsolutions.jts.geom.Geometry)"><B>add(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge">LineSequencer</A>
+<DD>Adds a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> to be sequenced.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/PolygonBuilder.html#add(com.vividsolutions.jts.geomgraph.PlanarGraph)"><B>add(PlanarGraph)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/PolygonBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">PolygonBuilder</A>
+<DD>Add a complete graph.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/PolygonBuilder.html#add(java.util.Collection, java.util.Collection)"><B>add(Collection, Collection)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/PolygonBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">PolygonBuilder</A>
+<DD>Add a set of edges and nodes, which form a graph.
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html#add(com.vividsolutions.jts.planargraph.DirectedEdge)"><B>add(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A>
+<DD>Adds a <A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A> which is known to form part of this ring.
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html#add(java.util.Collection)"><B>add(Collection)</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>
+<DD>Add a collection of geometries to be polygonized.
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html#add(com.vividsolutions.jts.geom.Geometry)"><B>add(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>
+<DD>Add a geometry to the linework to be polygonized.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html#add(com.vividsolutions.jts.geom.LinearRing)"><B>add(LinearRing)</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">QuadtreeNestedRingTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html#add(com.vividsolutions.jts.geom.LinearRing)"><B>add(LinearRing)</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">SimpleNestedRingTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html#add(com.vividsolutions.jts.geom.LinearRing)"><B>add(LinearRing)</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">SweeplineNestedRingTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#add(com.vividsolutions.jts.planargraph.DirectedEdge)"><B>add(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A>
+<DD>Adds a new member to this DirectedEdgeStar.
+<DT><A HREF="com/vividsolutions/jts/planargraph/NodeMap.html#add(com.vividsolutions.jts.planargraph.Node)"><B>add(Node)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph">NodeMap</A>
+<DD>Adds a node to the map, replacing any that is already at that location.
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#add(com.vividsolutions.jts.planargraph.Node)"><B>add(Node)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>Adds a node to the map, replacing any that is already at that location.
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#add(com.vividsolutions.jts.planargraph.Edge)"><B>add(Edge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>Adds the Edge and its DirectedEdges with this PlanarGraph.
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#add(com.vividsolutions.jts.planargraph.DirectedEdge)"><B>add(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>Adds the Edge to this PlanarGraph; only subclasses can add DirectedEdges,
+ to ensure the edges added are of the right class.
+<DT><A HREF="com/vividsolutions/jts/planargraph/Subgraph.html#add(com.vividsolutions.jts.planargraph.Edge)"><B>add(Edge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph">Subgraph</A>
+<DD>Adds an <A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A> to the subgraph.
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBits.html#add(double)"><B>add(double)</B></A> -
+Method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision">CommonBits</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBitsRemover.html#add(com.vividsolutions.jts.geom.Geometry)"><B>add(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision">CommonBitsRemover</A>
+<DD>Add a geometry to the set of geometries whose common bits are
+ being computed.
+<DT><A HREF="com/vividsolutions/jts/simplify/LineSegmentIndex.html#add(com.vividsolutions.jts.simplify.TaggedLineString)"><B>add(TaggedLineString)</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify">LineSegmentIndex</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/LineSegmentIndex.html#add(com.vividsolutions.jts.geom.LineSegment)"><B>add(LineSegment)</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify">LineSegmentIndex</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateList.html#addAll(java.util.Collection, boolean)"><B>addAll(Collection, boolean)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">CoordinateList</A>
+<DD>Add an array of coordinates
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html#addAll(java.util.Collection)"><B>addAll(Collection)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeList</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html#addAllItems(java.util.List)"><B>addAllItems(List)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html#addAllItems(java.util.List)"><B>addAllItems(List)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html#addAllItemsFromOverlapping(com.vividsolutions.jts.index.bintree.Interval, java.util.Collection)"><B>addAllItemsFromOverlapping(Interval, Collection)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html#addAllItemsFromOverlapping(com.vividsolutions.jts.geom.Envelope, java.util.List)"><B>addAllItemsFromOverlapping(Envelope, List)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html#addChildBoundable(com.vividsolutions.jts.index.strtree.Boundable)"><B>addChildBoundable(Boundable)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A>
+<DD>Adds either an AbstractNode, or if this is a leaf node, a data object
+ (wrapped in an ItemBoundable)
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBitsRemover.html#addCommonBits(com.vividsolutions.jts.geom.Geometry)"><B>addCommonBits(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision">CommonBitsRemover</A>
+<DD>Adds the common coordinate bits back into a Geometry.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html#addEdge(com.vividsolutions.jts.geomgraph.Edge)"><B>addEdge(Edge)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<DD>Add an Edge computed externally.
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html#addEdge(com.vividsolutions.jts.geom.LineString)"><B>addEdge(LineString)</B></A> -
+Method in class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeGraph</A>
+<DD>Adds an Edge, DirectedEdges, and Nodes for the given LineString representation
+ of an edge.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#addEdges(java.util.List)"><B>addEdges(List)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>Add a set of edges to the graph.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html#addEdges(java.util.List)"><B>addEdges(List)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html" title="class in com.vividsolutions.jts.operation.overlay">EdgeSetNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html#addEndpoints()"><B>addEndpoints()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersectionList</A>
+<DD>Adds entries for the first and last points of the edge to the list
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#addHole(com.vividsolutions.jts.geomgraph.EdgeRing)"><B>addHole(EdgeRing)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html#addHole(com.vividsolutions.jts.geom.LinearRing)"><B>addHole(LinearRing)</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A>
+<DD>Adds a hole to the polygon formed by this ring.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#addIntersection(com.vividsolutions.jts.algorithm.LineIntersector, int, int, int)"><B>addIntersection(LineIntersector, int, int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>Add an EdgeIntersection for intersection intIndex.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentString.html#addIntersection(com.vividsolutions.jts.algorithm.LineIntersector, int, int, int)"><B>addIntersection(LineIntersector, int, int, int)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>
+<DD>Add an SegmentNode for intersection intIndex.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentString.html#addIntersection(com.vividsolutions.jts.geom.Coordinate, int)"><B>addIntersection(Coordinate, int)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#addIntersections(com.vividsolutions.jts.algorithm.LineIntersector, int, int)"><B>addIntersections(LineIntersector, int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>Adds EdgeIntersections for one or both
+ intersections found for a segment of an edge to the edge intersection list.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#addIntersections(com.vividsolutions.jts.geomgraph.Edge, int, com.vividsolutions.jts.geomgraph.Edge, int)"><B>addIntersections(Edge, int, Edge, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A>
+<DD>This method is called by clients of the EdgeIntersector class to test for and add
+ intersections for two segments of the edges being intersected.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentString.html#addIntersections(com.vividsolutions.jts.algorithm.LineIntersector, int, int)"><B>addIntersections(LineIntersector, int, int)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>
+<DD>Adds EdgeIntersections for one or both
+ intersections found for a segment of an edge to the edge intersection list.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html#addNode(com.vividsolutions.jts.geom.Coordinate)"><B>addNode(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph">NodeMap</A>
+<DD>This method expects that a node has a coordinate value.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html#addNode(com.vividsolutions.jts.geomgraph.Node)"><B>addNode(Node)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph">NodeMap</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#addNode(com.vividsolutions.jts.geomgraph.Node)"><B>addNode(Node)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#addNode(com.vividsolutions.jts.geom.Coordinate)"><B>addNode(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/Node.html#addOutEdge(com.vividsolutions.jts.planargraph.DirectedEdge)"><B>addOutEdge(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A>
+<DD>Adds an outgoing DirectedEdge to this Node.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html#addPoint(com.vividsolutions.jts.geom.Coordinate)"><B>addPoint(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<DD>Add a point computed externally.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#addPoints(com.vividsolutions.jts.geomgraph.Edge, boolean, boolean)"><B>addPoints(Edge, boolean, boolean)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html#addPolygon(com.vividsolutions.jts.geom.Geometry)"><B>addPolygon(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointArea</A>
+<DD>Finds a reasonable point at which to label a Geometry.
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html#addSnappedNode(com.vividsolutions.jts.noding.snapround.HotPixel, com.vividsolutions.jts.noding.SegmentString, int)"><B>addSnappedNode(HotPixel, SegmentString, int)</B></A> -
+Static method in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">SimpleSnapRounder</A>
+<DD>Adds a new node (equal to the snap pt) to the segment
+ if the segment passes through the hot pixel
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html#addSplitEdges(java.util.List)"><B>addSplitEdges(List)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersectionList</A>
+<DD>Creates new edges for all the edges that the intersections in this
+ list split the parent edge into.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html#addSplitEdges(java.util.Collection)"><B>addSplitEdges(Collection)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding">SegmentNodeList</A>
+<DD>Creates new edges for all the edges that the intersections in this
+ list split the parent edge into.
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html#addToResult(com.vividsolutions.jts.geom.LineSegment)"><B>addToResult(LineSegment)</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#addWatch(java.lang.Object)"><B>addWatch(Object)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#allPositionsEqual(int, int)"><B>allPositionsEqual(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#allPositionsEqual(int)"><B>allPositionsEqual(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#angle(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>angle(Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>Returns the angle of the vector from p0 to p1,
+ relative to the positive X-axis.
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#angle(com.vividsolutions.jts.geom.Coordinate)"><B>angle(Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>Returns the angle that the vector from (0,0) to p,
+ relative to the positive X-axis.
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#angle()"><B>angle()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Computes the angle that the vector defined by this segment
+ makes with the X-axis.
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#angle"><B>angle</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#angleBetween(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>angleBetween(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>Returns the smallest angle between two vectors.
+<DT><A HREF="com/vividsolutions/jts/geom/Triangle.html#angleBisector(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>angleBisector(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A>
+<DD>Computes the point at which the bisector of the angle ABC
+ cuts the segment AC.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)"><B>apply(CoordinateFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Performs an operation with or on this <code>Geometry</code>'s
+ coordinates.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)"><B>apply(CoordinateSequenceFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Performs an operation on the coordinates in this <code>Geometry</code>'s
+ <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.GeometryFilter)"><B>apply(GeometryFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Performs an operation with or on this <code>Geometry</code> and its
+ subelement <code>Geometry</code>s (if any).
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)"><B>apply(GeometryComponentFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Performs an operation with or on this Geometry and its
+ component Geometry's.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)"><B>apply(CoordinateFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)"><B>apply(CoordinateSequenceFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.GeometryFilter)"><B>apply(GeometryFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)"><B>apply(GeometryComponentFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)"><B>apply(CoordinateFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)"><B>apply(CoordinateSequenceFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#apply(com.vividsolutions.jts.geom.GeometryFilter)"><B>apply(GeometryFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)"><B>apply(GeometryComponentFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)"><B>apply(CoordinateFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)"><B>apply(CoordinateSequenceFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#apply(com.vividsolutions.jts.geom.GeometryFilter)"><B>apply(GeometryFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)"><B>apply(GeometryComponentFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#apply(com.vividsolutions.jts.geom.CoordinateFilter)"><B>apply(CoordinateFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#apply(com.vividsolutions.jts.geom.CoordinateSequenceFilter)"><B>apply(CoordinateSequenceFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#apply(com.vividsolutions.jts.geom.GeometryFilter)"><B>apply(GeometryFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#apply(com.vividsolutions.jts.geom.GeometryComponentFilter)"><B>apply(GeometryComponentFilter)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/CollectionUtil.html#apply(java.util.Collection, com.vividsolutions.jts.util.CollectionUtil.Function)"><B>apply(Collection, CollectionUtil.Function)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util">CollectionUtil</A>
+<DD>Executes a function on each item in a Collection but does
+ not accumulate the result
+<DT><A HREF="com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html#applyTo(com.vividsolutions.jts.geom.Geometry)"><B>applyTo(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html" title="class in com.vividsolutions.jts.geom.util">ShortCircuitedGeometryVisitor</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Triangle.html#area(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>area(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A>
+<DD>Computes the area of a triangle.
+<DT><A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html#arg"><B>arg</B></A> -
+Variable in class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A>
+<DD>The operation args into an array so they can be accessed by index
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html#asLineString()"><B>asLineString()</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html#asLinearRing()"><B>asLinearRing()</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#atLeastNCoordinatesOrNothing(int, com.vividsolutions.jts.geom.Coordinate[])"><B>atLeastNCoordinatesOrNothing(int, Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>Returns either the given coordinate array if its length is greater than the
+ given amount, or an empty coordinate array.
+</DL>
+<HR>
+<A NAME="_B_"><!-- --></A><H2>
+<B>B</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderValues.html#BIG_ENDIAN"><B>BIG_ENDIAN</B></A> -
+Static variable in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io">ByteOrderValues</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Location.html#BOUNDARY"><B>BOUNDARY</B></A> -
+Static variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom">Location</A>
+<DD>DE-9IM row index of the boundary of the first geometry and column index of
+ the boundary of the second geometry.
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree"><B>Bintree</B></A> - class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree">Bintree</A>.<DD>An <code>BinTree</code> (or "Binary Interval Tree")
+ is a 1-dimensional version of a quadtree.<DT><A HREF="com/vividsolutions/jts/index/bintree/Bintree.html#Bintree()"><B>Bintree()</B></A> -
+Constructor for class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree">Bintree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree"><B>Boundable</B></A> - interface com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A>.<DD>A spatial object in an AbstractSTRtree.<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><B>BoundaryNodeRule</B></A> - interface com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A>.<DD>An interface for rules which determine whether node points
+ which are in boundaries of lineal geometry components
+ are in the boundary of the parent geometry collection.<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>BoundaryNodeRule.EndPointBoundaryNodeRule</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.EndPointBoundaryNodeRule</A>.<DD>A <A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> which specifies that any points which are endpoints
+ of lineal components are in the boundary of the
+ parent geometry.<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html#BoundaryNodeRule.EndPointBoundaryNodeRule()"><B>BoundaryNodeRule.EndPointBoundaryNodeRule()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.EndPointBoundaryNodeRule</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>BoundaryNodeRule.Mod2BoundaryNodeRule</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.Mod2BoundaryNodeRule</A>.<DD>A <A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> specifies that points are in the
+ boundary of a lineal geometry iff
+ the point lies on the boundary of an odd number
+ of components.<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html#BoundaryNodeRule.Mod2BoundaryNodeRule()"><B>BoundaryNodeRule.Mod2BoundaryNodeRule()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.Mod2BoundaryNodeRule</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</A>.<DD>A <A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> which determines that only
+ endpoints with valency of exactly 1 are on the boundary.<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html#BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule()"><B>BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</A>.<DD>A <A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A> which determines that only
+ endpoints with valency greater than 1 are on the boundary.<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html#BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule()"><B>BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/BoundaryOp.html" title="class in com.vividsolutions.jts.operation"><B>BoundaryOp</B></A> - class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/BoundaryOp.html" title="class in com.vividsolutions.jts.operation">BoundaryOp</A>.<DD>Computes the boundary of a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/operation/BoundaryOp.html#BoundaryOp(com.vividsolutions.jts.geom.Geometry)"><B>BoundaryOp(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/BoundaryOp.html" title="class in com.vividsolutions.jts.operation">BoundaryOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/BoundaryOp.html#BoundaryOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><B>BoundaryOp(Geometry, BoundaryNodeRule)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/BoundaryOp.html" title="class in com.vividsolutions.jts.operation">BoundaryOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>BufferBuilder</B></A> - class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">BufferBuilder</A>.<DD>Builds the buffer geometry for a given input geometry and precision model.<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html#BufferBuilder()"><B>BufferBuilder()</B></A> -
+Constructor for class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">BufferBuilder</A>
+<DD>Creates a new BufferBuilder
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer"><B>BufferOp</B></A> - class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer">BufferOp</A>.<DD>Computes the buffer of a geometry, for both positive and negative buffer distances.<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html#BufferOp(com.vividsolutions.jts.geom.Geometry)"><B>BufferOp(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer">BufferOp</A>
+<DD>Initializes a buffer computation for the given geometry
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer"><B>BufferSubgraph</B></A> - class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer">BufferSubgraph</A>.<DD>A connected subset of the graph of
+ <A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>DirectedEdge</CODE></A>s and <A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Node</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#BufferSubgraph(com.vividsolutions.jts.algorithm.CGAlgorithms)"><B>BufferSubgraph(CGAlgorithms)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer">BufferSubgraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/ByteArrayInStream.html" title="class in com.vividsolutions.jts.io"><B>ByteArrayInStream</B></A> - class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteArrayInStream.html" title="class in com.vividsolutions.jts.io">ByteArrayInStream</A>.<DD>Allows an array of bytes to be used as an <A HREF="com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><CODE>InStream</CODE></A>.<DT><A HREF="com/vividsolutions/jts/io/ByteArrayInStream.html#ByteArrayInStream(byte[])"><B>ByteArrayInStream(byte[])</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteArrayInStream.html" title="class in com.vividsolutions.jts.io">ByteArrayInStream</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io"><B>ByteOrderDataInStream</B></A> - class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io">ByteOrderDataInStream</A>.<DD>Allows reading a stream of Java primitive datatypes from an underlying
+ <A HREF="com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><CODE>InStream</CODE></A>,
+ with the representation being in either common byte ordering.<DT><A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html#ByteOrderDataInStream()"><B>ByteOrderDataInStream()</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io">ByteOrderDataInStream</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html#ByteOrderDataInStream(com.vividsolutions.jts.io.InStream)"><B>ByteOrderDataInStream(InStream)</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io">ByteOrderDataInStream</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io"><B>ByteOrderValues</B></A> - class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io">ByteOrderValues</A>.<DD>Methods to read and write primitive Java datatypes from/to byte
+ sequences, allowing the byte order to be specified
+ <DT><A HREF="com/vividsolutions/jts/io/ByteOrderValues.html#ByteOrderValues()"><B>ByteOrderValues()</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io">ByteOrderValues</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html#biasedExponent()"><B>biasedExponent()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>
+<DD>Determines the exponent for the number
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#boundablesAtLevel(int)"><B>boundablesAtLevel(int)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#buffer(double)"><B>buffer(double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Computes a buffer area around this geometry having the given
+ width.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#buffer(double, int)"><B>buffer(double, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Computes a buffer area around this geometry having the given
+ width and with a specified accuracy of approximation for circular arcs.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#buffer(double, int, int)"><B>buffer(double, int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Computes a buffer area around this geometry having the given
+ width and with a specified accuracy of approximation for circular arcs,
+ and using a specified end cap style.
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html#buffer(com.vividsolutions.jts.geom.Geometry, double)"><B>buffer(Geometry, double)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">BufferBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html#buffer(com.vividsolutions.jts.geom.Geometry, double)"><B>buffer(Geometry, double)</B></A> -
+Method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision">CommonBitsOp</A>
+<DD>Computes the buffer a geometry,
+ using enhanced precision.
+<DT><A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html#buffer(com.vividsolutions.jts.geom.Geometry, double)"><B>buffer(Geometry, double)</B></A> -
+Static method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision">EnhancedPrecisionOp</A>
+<DD>Computes the buffer of a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>, using enhanced precision.
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html#bufferOp(com.vividsolutions.jts.geom.Geometry, double)"><B>bufferOp(Geometry, double)</B></A> -
+Static method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer">BufferOp</A>
+<DD>Computes the buffer of a geometry for a given buffer distance.
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html#bufferOp(com.vividsolutions.jts.geom.Geometry, double, int)"><B>bufferOp(Geometry, double, int)</B></A> -
+Static method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer">BufferOp</A>
+<DD>Comutes the buffer for a geometry for a given buffer distance
+ and accuracy of approximation.
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html#bufferOp(com.vividsolutions.jts.geom.Geometry, double, int, int)"><B>bufferOp(Geometry, double, int, int)</B></A> -
+Static method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer">BufferOp</A>
+<DD>Comutes the buffer for a geometry for a given buffer distance
+ and accuracy of approximation.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#build()"><B>build()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>Creates parent nodes, grandparent nodes, and so forth up to the root
+ node, for the data that has been inserted into the tree.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/LineBuilder.html#build(int)"><B>build(int)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/LineBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">LineBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/PointBuilder.html#build(int)"><B>build(int)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/PointBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">PointBuilder</A>
+<DD>Computes the Point geometries which will appear in the result,
+ given the specified overlay operation.
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html#build(com.vividsolutions.jts.geomgraph.GeometryGraph)"><B>build(GeometryGraph)</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate">RelateNodeGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#buildGeometry(java.util.Collection)"><B>buildGeometry(Collection)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Build an appropriate <code>Geometry</code>, <code>MultiGeometry</code>, or
+ <code>GeometryCollection</code> to contain the <code>Geometry</code>s in
+ it.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html#buildMinimalRings()"><B>buildMinimalRings()</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MaximalEdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKBWriter.html#bytesToHex(byte[])"><B>bytesToHex(byte[])</B></A> -
+Static method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io">WKBWriter</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_C_"><!-- --></A><H2>
+<B>C</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html#CAP_BUTT"><B>CAP_BUTT</B></A> -
+Static variable in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer">BufferOp</A>
+<DD>Specifies a butt (or flat) line buffer end cap style.
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html#CAP_ROUND"><B>CAP_ROUND</B></A> -
+Static variable in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer">BufferOp</A>
+<DD>Specifies a round line buffer end cap style.
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html#CAP_SQUARE"><B>CAP_SQUARE</B></A> -
+Static variable in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer">BufferOp</A>
+<DD>Specifies a square line buffer end cap style.
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>CGAlgorithms</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>.<DD>Specifies and implements various fundamental Computational Geometric algorithms.<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#CGAlgorithms()"><B>CGAlgorithms()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#CLOCKWISE"><B>CLOCKWISE</B></A> -
+Static variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>Constant representing clockwise orientation
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#CLOCKWISE"><B>CLOCKWISE</B></A> -
+Static variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>A value that indicates an orientation of clockwise, or a right turn.
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#COLLINEAR"><B>COLLINEAR</B></A> -
+Static variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>A value that indicates an orientation of collinear, or no turn (straight).
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#COLLINEAR"><B>COLLINEAR</B></A> -
+Static variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#COUNTERCLOCKWISE"><B>COUNTERCLOCKWISE</B></A> -
+Static variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>Constant representing counterclockwise orientation
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#COUNTERCLOCKWISE"><B>COUNTERCLOCKWISE</B></A> -
+Static variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>A value that indicates an orientation of counterclockwise, or a left turn.
+<DT><A HREF="com/vividsolutions/jts/JTSVersion.html#CURRENT_VERSION"><B>CURRENT_VERSION</B></A> -
+Static variable in class com.vividsolutions.jts.<A HREF="com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts">JTSVersion</A>
+<DD>The current version number of the JTS API.
+<DT><A HREF="com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>CentralEndpointIntersector</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html" title="class in com.vividsolutions.jts.algorithm">CentralEndpointIntersector</A>.<DD>Computes an approximate intersection of two line segments
+ by taking the most central of the endpoints of the segments.<DT><A HREF="com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html#CentralEndpointIntersector(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>CentralEndpointIntersector(Coordinate, Coordinate, Coordinate, Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html" title="class in com.vividsolutions.jts.algorithm">CentralEndpointIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/CentroidArea.html" title="class in com.vividsolutions.jts.algorithm"><B>CentroidArea</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidArea.html" title="class in com.vividsolutions.jts.algorithm">CentroidArea</A>.<DD>Computes the centroid of an area geometry.<DT><A HREF="com/vividsolutions/jts/algorithm/CentroidArea.html#CentroidArea()"><B>CentroidArea()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidArea.html" title="class in com.vividsolutions.jts.algorithm">CentroidArea</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/CentroidLine.html" title="class in com.vividsolutions.jts.algorithm"><B>CentroidLine</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidLine.html" title="class in com.vividsolutions.jts.algorithm">CentroidLine</A>.<DD>Computes the centroid of a linear geometry.<DT><A HREF="com/vividsolutions/jts/algorithm/CentroidLine.html#CentroidLine()"><B>CentroidLine()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidLine.html" title="class in com.vividsolutions.jts.algorithm">CentroidLine</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm"><B>CentroidPoint</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm">CentroidPoint</A>.<DD>Computes the centroid of a point geometry.<DT><A HREF="com/vividsolutions/jts/algorithm/CentroidPoint.html#CentroidPoint()"><B>CentroidPoint()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm">CentroidPoint</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util"><B>CollectionUtil</B></A> - class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util">CollectionUtil</A>.<DD>Executes a transformation function on each element of a collection
+ and returns the results in a new List.<DT><A HREF="com/vividsolutions/jts/util/CollectionUtil.html#CollectionUtil()"><B>CollectionUtil()</B></A> -
+Constructor for class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util">CollectionUtil</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util"><B>CollectionUtil.Function</B></A> - interface com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util">CollectionUtil.Function</A>.<DD> <DT><A HREF="com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision"><B>CommonBits</B></A> - class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision">CommonBits</A>.<DD>Determines the maximum number of common most-significant
+ bits in the mantissa of one or numbers.<DT><A HREF="com/vividsolutions/jts/precision/CommonBits.html#CommonBits()"><B>CommonBits()</B></A> -
+Constructor for class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision">CommonBits</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision"><B>CommonBitsOp</B></A> - class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision">CommonBitsOp</A>.<DD>Provides versions of Geometry spatial functions which use
+ common bit removal to reduce the likelihood of robustness problems.<DT><A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html#CommonBitsOp()"><B>CommonBitsOp()</B></A> -
+Constructor for class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision">CommonBitsOp</A>
+<DD>Creates a new instance of class, which reshifts result <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s.
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html#CommonBitsOp(boolean)"><B>CommonBitsOp(boolean)</B></A> -
+Constructor for class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision">CommonBitsOp</A>
+<DD>Creates a new instance of class, specifying whether
+ the result <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s should be reshifted.
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision"><B>CommonBitsRemover</B></A> - class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision">CommonBitsRemover</A>.<DD>Allow computing and removing common mantissa bits from one or more Geometries.<DT><A HREF="com/vividsolutions/jts/precision/CommonBitsRemover.html#CommonBitsRemover()"><B>CommonBitsRemover()</B></A> -
+Constructor for class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision">CommonBitsRemover</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html" title="class in com.vividsolutions.jts.operation.distance"><B>ConnectedElementLocationFilter</B></A> - class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html" title="class in com.vividsolutions.jts.operation.distance">ConnectedElementLocationFilter</A>.<DD>A ConnectedElementPointFilter extracts a single point
+ from each connected element in a Geometry
+ (e.g.<DT><A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html" title="class in com.vividsolutions.jts.operation.distance"><B>ConnectedElementPointFilter</B></A> - class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html" title="class in com.vividsolutions.jts.operation.distance">ConnectedElementPointFilter</A>.<DD>Extracts a single point
+ from each connected element in a Geometry
+ (e.g.<DT><A HREF="com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>ConnectedInteriorTester</B></A> - class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html" title="class in com.vividsolutions.jts.operation.valid">ConnectedInteriorTester</A>.<DD>This class tests that the interior of an area <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ ( <A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A> or <A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiPolygon</CODE></A> )
+ is connected.<DT><A HREF="com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html#ConnectedInteriorTester(com.vividsolutions.jts.geomgraph.GeometryGraph)"><B>ConnectedInteriorTester(GeometryGraph)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html" title="class in com.vividsolutions.jts.operation.valid">ConnectedInteriorTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html" title="class in com.vividsolutions.jts.planargraph.algorithm"><B>ConnectedSubgraphFinder</B></A> - class com.vividsolutions.jts.planargraph.algorithm.<A HREF="com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html" title="class in com.vividsolutions.jts.planargraph.algorithm">ConnectedSubgraphFinder</A>.<DD>Finds all connected <A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Subgraph</CODE></A>s of a <A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>.<DT><A HREF="com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html#ConnectedSubgraphFinder(com.vividsolutions.jts.planargraph.PlanarGraph)"><B>ConnectedSubgraphFinder(PlanarGraph)</B></A> -
+Constructor for class com.vividsolutions.jts.planargraph.algorithm.<A HREF="com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html" title="class in com.vividsolutions.jts.planargraph.algorithm">ConnectedSubgraphFinder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>ConsistentAreaTester</B></A> - class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid">ConsistentAreaTester</A>.<DD>Checks that a <A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>GeometryGraph</CODE></A> representing an area
+ (a <A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A> or <A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiPolygon</CODE></A> )
+ has consistent semantics for area geometries.<DT><A HREF="com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html#ConsistentAreaTester(com.vividsolutions.jts.geomgraph.GeometryGraph)"><B>ConsistentAreaTester(GeometryGraph)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid">ConsistentAreaTester</A>
+<DD>Creates a new tester for consistent areas.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html" title="class in com.vividsolutions.jts.operation.overlay"><B>ConsistentPolygonRingChecker</B></A> - class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html" title="class in com.vividsolutions.jts.operation.overlay">ConsistentPolygonRingChecker</A>.<DD>Tests whether the polygon rings in a <A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>GeometryGraph</CODE></A>
+ are consistent.<DT><A HREF="com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html#ConsistentPolygonRingChecker(com.vividsolutions.jts.geomgraph.PlanarGraph)"><B>ConsistentPolygonRingChecker(PlanarGraph)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html" title="class in com.vividsolutions.jts.operation.overlay">ConsistentPolygonRingChecker</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm"><B>ConvexHull</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm">ConvexHull</A>.<DD>Computes the convex hull of a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/algorithm/ConvexHull.html#ConvexHull(com.vividsolutions.jts.geom.Geometry)"><B>ConvexHull(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm">ConvexHull</A>
+<DD>Create a new convex hull construction for the input <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/algorithm/ConvexHull.html#ConvexHull(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.GeometryFactory)"><B>ConvexHull(Coordinate[], GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm">ConvexHull</A>
+<DD>Create a new convex hull construction for the input <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> array.
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><B>Coordinate</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>.<DD>A lightweight class used to store coordinates
+ on the 2-dimensional Cartesian plane.<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#Coordinate(double, double, double)"><B>Coordinate(double, double, double)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>Constructs a <code>Coordinate</code> at (x,y,z).
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#Coordinate()"><B>Coordinate()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>Constructs a <code>Coordinate</code> at (0,0,NaN).
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#Coordinate(com.vividsolutions.jts.geom.Coordinate)"><B>Coordinate(Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>Constructs a <code>Coordinate</code> having the same (x,y,z) values as
+ <code>other</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#Coordinate(double, double)"><B>Coordinate(double, double)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>Constructs a <code>Coordinate</code> at (x,y,NaN).
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom"><B>Coordinate.DimensionalComparator</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom">Coordinate.DimensionalComparator</A>.<DD>Compares two <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s, allowing for either a 2-dimensional
+ or 3-dimensional comparison, and handling NaN values correctly.<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html#Coordinate.DimensionalComparator()"><B>Coordinate.DimensionalComparator()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom">Coordinate.DimensionalComparator</A>
+<DD>Creates a comparator for 2 dimensional coordinates.
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html#Coordinate.DimensionalComparator(int)"><B>Coordinate.DimensionalComparator(int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom">Coordinate.DimensionalComparator</A>
+<DD>Creates a comparator for 2 or 3 dimensional coordinates, depending
+ on the value provided.
+<DT><A HREF="com/vividsolutions/jts/util/CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util"><B>CoordinateArrayFilter</B></A> - class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util">CoordinateArrayFilter</A>.<DD>A <A HREF="com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateFilter</CODE></A> that creates an array containing every
+ coordinate in a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/util/CoordinateArrayFilter.html#CoordinateArrayFilter(int)"><B>CoordinateArrayFilter(int)</B></A> -
+Constructor for class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util">CoordinateArrayFilter</A>
+<DD>Constructs a <code>CoordinateArrayFilter</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl"><B>CoordinateArraySequence</B></A> - class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>.<DD>The <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> implementation that <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s use by default.<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#CoordinateArraySequence(com.vividsolutions.jts.geom.Coordinate[])"><B>CoordinateArraySequence(Coordinate[])</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>Constructs a sequence based on the given array (the
+ array is not copied).
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#CoordinateArraySequence(int)"><B>CoordinateArraySequence(int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>Constructs a sequence of a given size, populated
+ with new <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#CoordinateArraySequence(com.vividsolutions.jts.geom.CoordinateSequence)"><B>CoordinateArraySequence(CoordinateSequence)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>Constructs a sequence based on the given array (the
+ array is not copied).
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl"><B>CoordinateArraySequenceFactory</B></A> - class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequenceFactory</A>.<DD>Creates <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s represented as an array of <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateArrays</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>.<DD>Useful utility functions for handling Coordinate arrays<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#CoordinateArrays()"><B>CoordinateArrays()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateArrays.BidirectionalComparator</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays.BidirectionalComparator</A>.<DD>A <CODE>Comparator</CODE> for <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> arrays
+ modulo their directionality.<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html#CoordinateArrays.BidirectionalComparator()"><B>CoordinateArrays.BidirectionalComparator()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays.BidirectionalComparator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateArrays.ForwardComparator</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays.ForwardComparator</A>.<DD>A <CODE>Comparator</CODE> for <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> arrays
+ in the forward direction of their coordinates,
+ using lexicographic ordering.<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html#CoordinateArrays.ForwardComparator()"><B>CoordinateArrays.ForwardComparator()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays.ForwardComparator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util"><B>CoordinateCountFilter</B></A> - class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util">CoordinateCountFilter</A>.<DD>A <A HREF="com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateFilter</CODE></A> that counts the total number of coordinates
+ in a <code>Geometry</code>.<DT><A HREF="com/vividsolutions/jts/util/CoordinateCountFilter.html#CoordinateCountFilter()"><B>CoordinateCountFilter()</B></A> -
+Constructor for class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util">CoordinateCountFilter</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom"><B>CoordinateFilter</B></A> - interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A>.<DD><code>Geometry</code> classes support the concept of applying a
+ coordinate filter to every coordinate in the <code>Geometry</code>.<DT><A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateList</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">CoordinateList</A>.<DD>A list of <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s, which may
+ be set to prevent repeated coordinates from occuring in the list.<DT><A HREF="com/vividsolutions/jts/geom/CoordinateList.html#CoordinateList()"><B>CoordinateList()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">CoordinateList</A>
+<DD>Constructs a new list without any coordinates
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateList.html#CoordinateList(com.vividsolutions.jts.geom.Coordinate[])"><B>CoordinateList(Coordinate[])</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">CoordinateList</A>
+<DD>The basic constructor for a CoordinateArray allows repeated points
+ (i.e produces a CoordinateList with exactly the same set of points)
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateList.html#CoordinateList(com.vividsolutions.jts.geom.Coordinate[], boolean)"><B>CoordinateList(Coordinate[], boolean)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">CoordinateList</A>
+<DD>Constructs a new list from an array of Coordinates,
+ allowing caller to specify if repeated points are to be removed.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><B>CoordinateSequence</B></A> - interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>.<DD>The internal representation of a list of coordinates inside a Geometry.<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateSequenceComparator</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A>.<DD>Compares two <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html#CoordinateSequenceComparator()"><B>CoordinateSequenceComparator()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A>
+<DD>Creates a comparator which will test all dimensions.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html#CoordinateSequenceComparator(int)"><B>CoordinateSequenceComparator(int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A>
+<DD>Creates a comparator which will test only the specified number of dimensions.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom"><B>CoordinateSequenceFactory</B></A> - interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A>.<DD>A factory to create concrete instances of <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom"><B>CoordinateSequenceFilter</B></A> - interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A>.<DD>Interface for classeswhich provide operations that
+ can be applied to the coordinates in a <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequences.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateSequences</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequences.html" title="class in com.vividsolutions.jts.geom">CoordinateSequences</A>.<DD>Utility functions for manipulating <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequences.html#CoordinateSequences()"><B>CoordinateSequences()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequences.html" title="class in com.vividsolutions.jts.geom">CoordinateSequences</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html#centre(com.vividsolutions.jts.geom.Envelope)"><B>centre(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointArea</A>
+<DD>Returns the centre point of the envelope.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#centre()"><B>centre()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Computes the coordinate of the centre of this envelope (as long as it is non-null
+<DT><A HREF="com/vividsolutions/jts/geom/Triangle.html#centroid(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>centroid(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A>
+<DD>Computes the centroid (centre of mass) of a triangle.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#cga"><B>cga</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#cga"><B>cga</B></A> -
+Static variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html#cga"><B>cga</B></A> -
+Variable in class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#cga"><B>cga</B></A> -
+Static variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html#check(int)"><B>check(int)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html" title="class in com.vividsolutions.jts.operation.overlay">ConsistentPolygonRingChecker</A>
+<DD>Tests whether the result geometry is consistent
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html#checkAll()"><B>checkAll()</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html" title="class in com.vividsolutions.jts.operation.overlay">ConsistentPolygonRingChecker</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#checkNotGeometryCollection(com.vividsolutions.jts.geom.Geometry)"><B>checkNotGeometryCollection(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Throws an exception if <code>g</code>'s class is <code>GeometryCollection</code>
+ .
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html#checkValid()"><B>checkValid()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html" title="class in com.vividsolutions.jts.geomgraph">EdgeNodingValidator</A>
+<DD>Checks whether the supplied edges
+ are correctly noded.
+<DT><A HREF="com/vividsolutions/jts/noding/FastNodingValidator.html#checkValid()"><B>checkValid()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/FastNodingValidator.html" title="class in com.vividsolutions.jts.noding">FastNodingValidator</A>
+<DD>Checks for an intersection and throws
+ a TopologyException if one is found.
+<DT><A HREF="com/vividsolutions/jts/noding/NodingValidator.html#checkValid()"><B>checkValid()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/NodingValidator.html" title="class in com.vividsolutions.jts.noding">NodingValidator</A>
+<DD>Checks whether the supplied segment strings
+ are correctly noded.
+<DT><A HREF="com/vividsolutions/jts/geom/Triangle.html#circumcentre(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>circumcentre(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A>
+<DD>Computes the circumcentre of a triangle.
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#clamp(com.vividsolutions.jts.geom.Geometry)"><B>clamp(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Ensures the indexes are valid for a given linear <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html#clampIndex(double)"><B>clampIndex(double)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LengthIndexedLine</A>
+<DD>Computes a valid index for this line
+ by clamping the given index to the valid range of index values
+<DT><A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html#clampIndex(com.vividsolutions.jts.linearref.LinearLocation)"><B>clampIndex(LinearLocation)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LocationIndexedLine</A>
+<DD>Computes a valid index for this line
+ by clamping the given index to the valid range of index values
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#clone()"><B>clone()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateList.html#clone()"><B>clone()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">CoordinateList</A>
+<DD>Returns a deep copy of this <tt>CoordinateList</tt> instance.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#clone()"><B>clone()</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>Returns a deep copy of this collection.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#clone()"><B>clone()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Creates and returns a full copy of this <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> object
+ (including all coordinates contained by it).
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#clone()"><B>clone()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>Creates and returns a full copy of this <A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A> object.
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#clone()"><B>clone()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>Creates and returns a full copy of this <A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> object.
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#clone()"><B>clone()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>Creates and returns a full copy of this <A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><CODE>Point</CODE></A> object.
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#clone()"><B>clone()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>Creates and returns a full copy of this <A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A> object.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#clone()"><B>clone()</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>Creates a deep copy of the Object
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#clone()"><B>clone()</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#clone()"><B>clone()</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#clone()"><B>clone()</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#clone()"><B>clone()</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Clones this transformation
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#clone()"><B>clone()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Copies this location
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateList.html#closeRing()"><B>closeRing()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">CoordinateList</A>
+<DD>Ensure this coordList is a ring, by adding the start point if necessary
+<DT><A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html#closestLocations()"><B>closestLocations()</B></A> -
+Method in class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance">DistanceOp</A>
+<DD>Report the locations of the closest points in the input geometries.
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#closestPoint(com.vividsolutions.jts.geom.Coordinate)"><B>closestPoint(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Computes the closest point on this line segment to another point.
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#closestPoints(com.vividsolutions.jts.geom.LineSegment)"><B>closestPoints(LineSegment)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Computes the closest points on two line segments.
+<DT><A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html#closestPoints(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>closestPoints(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance">DistanceOp</A>
+<DD>Compute the the closest points of two geometries.
+<DT><A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html#closestPoints()"><B>closestPoints()</B></A> -
+Method in class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance">DistanceOp</A>
+<DD>Report the coordinates of the closest points in the input geometries.
+<DT><A HREF="com/vividsolutions/jts/package-summary.html"><B>com.vividsolutions.jts</B></A> - package com.vividsolutions.jts<DD> <DT><A HREF="com/vividsolutions/jts/algorithm/package-summary.html"><B>com.vividsolutions.jts.algorithm</B></A> - package com.vividsolutions.jts.algorithm<DD>Contains classes and interfaces implementing fundamental computational geometry algorithms.<DT><A HREF="com/vividsolutions/jts/geom/package-summary.html"><B>com.vividsolutions.jts.geom</B></A> - package com.vividsolutions.jts.geom<DD>Contains the <CODE>Geometry</CODE> interface hierarchy and supporting classes.<DT><A HREF="com/vividsolutions/jts/geom/impl/package-summary.html"><B>com.vividsolutions.jts.geom.impl</B></A> - package com.vividsolutions.jts.geom.impl<DD> <DT><A HREF="com/vividsolutions/jts/geom/util/package-summary.html"><B>com.vividsolutions.jts.geom.util</B></A> - package com.vividsolutions.jts.geom.util<DD>Provides classes that parse and modify Geometry objects.<DT><A HREF="com/vividsolutions/jts/geomgraph/package-summary.html"><B>com.vividsolutions.jts.geomgraph</B></A> - package com.vividsolutions.jts.geomgraph<DD>Contains classes that implement topology graphs.<DT><A HREF="com/vividsolutions/jts/geomgraph/index/package-summary.html"><B>com.vividsolutions.jts.geomgraph.index</B></A> - package com.vividsolutions.jts.geomgraph.index<DD>Contains classes that implement indexes for performing noding on geometry graph edges.<DT><A HREF="com/vividsolutions/jts/index/package-summary.html"><B>com.vividsolutions.jts.index</B></A> - package com.vividsolutions.jts.index<DD>Provides classes for various kinds of spatial indexes.<DT><A HREF="com/vividsolutions/jts/index/bintree/package-summary.html"><B>com.vividsolutions.jts.index.bintree</B></A> - package com.vividsolutions.jts.index.bintree<DD>Contains classes that implement a Binary Interval Tree index<DT><A HREF="com/vividsolutions/jts/index/chain/package-summary.html"><B>com.vividsolutions.jts.index.chain</B></A> - package com.vividsolutions.jts.index.chain<DD>Contains classes that implement Monotone Chains<DT><A HREF="com/vividsolutions/jts/index/quadtree/package-summary.html"><B>com.vividsolutions.jts.index.quadtree</B></A> - package com.vividsolutions.jts.index.quadtree<DD>Contains classes that implement a Quadtree spatial index<DT><A HREF="com/vividsolutions/jts/index/strtree/package-summary.html"><B>com.vividsolutions.jts.index.strtree</B></A> - package com.vividsolutions.jts.index.strtree<DD>Contains 2-D and 1-D versions of the Sort-Tile-Recursive (STR) tree, a query-only R-tree.<DT><A HREF="com/vividsolutions/jts/index/sweepline/package-summary.html"><B>com.vividsolutions.jts.index.sweepline</B></A> - package com.vividsolutions.jts.index.sweepline<DD>Contains classes which implement a sweepline algorithm for scanning geometric data structures.<DT><A HREF="com/vividsolutions/jts/io/package-summary.html"><B>com.vividsolutions.jts.io</B></A> - package com.vividsolutions.jts.io<DD>Contains the interfaces for converting JTS objects to and from other formats.<DT><A HREF="com/vividsolutions/jts/linearref/package-summary.html"><B>com.vividsolutions.jts.linearref</B></A> - package com.vividsolutions.jts.linearref<DD>Contains classes and interfaces implementing linear referencing on linear geometries
+
+<DT><A HREF="com/vividsolutions/jts/noding/package-summary.html"><B>com.vividsolutions.jts.noding</B></A> - package com.vividsolutions.jts.noding<DD>Classes to compute nodings for arrangements of line segments and line segment sequences.<DT><A HREF="com/vividsolutions/jts/noding/snapround/package-summary.html"><B>com.vividsolutions.jts.noding.snapround</B></A> - package com.vividsolutions.jts.noding.snapround<DD>Contains classes to implement the Snap Rounding algorithm for noding linestrings.<DT><A HREF="com/vividsolutions/jts/operation/package-summary.html"><B>com.vividsolutions.jts.operation</B></A> - package com.vividsolutions.jts.operation<DD>Provides classes for implementing operations on geometries<DT><A HREF="com/vividsolutions/jts/operation/buffer/package-summary.html"><B>com.vividsolutions.jts.operation.buffer</B></A> - package com.vividsolutions.jts.operation.buffer<DD>Provides classes for computing buffers of geometries<DT><A HREF="com/vividsolutions/jts/operation/distance/package-summary.html"><B>com.vividsolutions.jts.operation.distance</B></A> - package com.vividsolutions.jts.operation.distance<DD>Provides classes for computing the distance between geometries<DT><A HREF="com/vividsolutions/jts/operation/linemerge/package-summary.html"><B>com.vividsolutions.jts.operation.linemerge</B></A> - package com.vividsolutions.jts.operation.linemerge<DD> <DT><A HREF="com/vividsolutions/jts/operation/overlay/package-summary.html"><B>com.vividsolutions.jts.operation.overlay</B></A> - package com.vividsolutions.jts.operation.overlay<DD>Contains classes that perform a topological overlay to compute boolean spatial functions.<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/package-summary.html"><B>com.vividsolutions.jts.operation.overlay.snap</B></A> - package com.vividsolutions.jts.operation.overlay.snap<DD> <DT><A HREF="com/vividsolutions/jts/operation/overlay/validate/package-summary.html"><B>com.vividsolutions.jts.operation.overlay.validate</B></A> - package com.vividsolutions.jts.operation.overlay.validate<DD> <DT><A HREF="com/vividsolutions/jts/operation/polygonize/package-summary.html"><B>com.vividsolutions.jts.operation.polygonize</B></A> - package com.vividsolutions.jts.operation.polygonize<DD> <DT><A HREF="com/vividsolutions/jts/operation/predicate/package-summary.html"><B>com.vividsolutions.jts.operation.predicate</B></A> - package com.vividsolutions.jts.operation.predicate<DD> <DT><A HREF="com/vividsolutions/jts/operation/relate/package-summary.html"><B>com.vividsolutions.jts.operation.relate</B></A> - package com.vividsolutions.jts.operation.relate<DD>Contains classes to implement the computation of the spatial relationships of <CODE>Geometry</CODE>s.<DT><A HREF="com/vividsolutions/jts/operation/valid/package-summary.html"><B>com.vividsolutions.jts.operation.valid</B></A> - package com.vividsolutions.jts.operation.valid<DD>Provides classes for testing the validity of geometries.<DT><A HREF="com/vividsolutions/jts/planargraph/package-summary.html"><B>com.vividsolutions.jts.planargraph</B></A> - package com.vividsolutions.jts.planargraph<DD>Contains classes to implement a planar graph data structure.<DT><A HREF="com/vividsolutions/jts/planargraph/algorithm/package-summary.html"><B>com.vividsolutions.jts.planargraph.algorithm</B></A> - package com.vividsolutions.jts.planargraph.algorithm<DD> <DT><A HREF="com/vividsolutions/jts/precision/package-summary.html"><B>com.vividsolutions.jts.precision</B></A> - package com.vividsolutions.jts.precision<DD>Provides classes for manipulating the precision model of Geometries<DT><A HREF="com/vividsolutions/jts/simplify/package-summary.html"><B>com.vividsolutions.jts.simplify</B></A> - package com.vividsolutions.jts.simplify<DD> <DT><A HREF="com/vividsolutions/jts/util/package-summary.html"><B>com.vividsolutions.jts.util</B></A> - package com.vividsolutions.jts.util<DD>Contains support classes for the Java Topology Suite.<DT><A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html#commonHalfPlane(int, int)"><B>commonHalfPlane(int, int)</B></A> -
+Static method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph">Quadrant</A>
+<DD>Returns the right-hand quadrant of the halfplane defined by the two quadrants,
+ or -1 if the quadrants are opposite, or the quadrant if they are identical.
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html#compare(double, double)"><B>compare(double, double)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom">Coordinate.DimensionalComparator</A>
+<DD>Compare two <code>double</code>s, allowing for NaN values.
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html#compare(java.lang.Object, java.lang.Object)"><B>compare(Object, Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom">Coordinate.DimensionalComparator</A>
+<DD>Compares two <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s along to the number of
+ dimensions specified.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html#compare(java.lang.Object, java.lang.Object)"><B>compare(Object, Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays.BidirectionalComparator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html#compare(java.lang.Object, java.lang.Object)"><B>compare(Object, Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays.ForwardComparator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#compare(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate[])"><B>compare(Coordinate[], Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>Compares two <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> arrays
+ in the forward direction of their coordinates,
+ using lexicographic ordering.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html#compare(double, double)"><B>compare(double, double)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A>
+<DD>Compare two <code>double</code>s, allowing for NaN values.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html#compare(java.lang.Object, java.lang.Object)"><B>compare(Object, Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A>
+<DD>Compares two <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s for relative order.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#compare(java.util.Collection, java.util.Collection)"><B>compare(Collection, Collection)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the first non-zero result of <code>compareTo</code> encountered as
+ the two <code>Collection</code>s are iterated over.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html#compare(int, double)"><B>compare(int, double)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentPointComparator.html#compare(int, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>compare(int, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentPointComparator.html" title="class in com.vividsolutions.jts.noding">SegmentPointComparator</A>
+<DD>Compares two <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s for their relative position along a segment
+ lying in the specified <A HREF="com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding"><CODE>Octant</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html#compareCoordinate(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.CoordinateSequence, int, int)"><B>compareCoordinate(CoordinateSequence, CoordinateSequence, int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A>
+<DD>Compares the same coordinate of two <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s
+ along the given number of dimensions.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#compareDirection(com.vividsolutions.jts.geomgraph.EdgeEnd)"><B>compareDirection(EdgeEnd)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>Implements the total order relation:
+
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#compareDirection(com.vividsolutions.jts.planargraph.DirectedEdge)"><B>compareDirection(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Returns 1 if this DirectedEdge has a greater angle with the
+ positive x-axis than b", 0 if the DirectedEdges are collinear, and -1 otherwise.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#compareDoubles(double, double)"><B>compareDoubles(double, double)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#compareLocationValues(int, int, double)"><B>compareLocationValues(int, int, double)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Compares this object with the specified index values for order.
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#compareLocationValues(int, int, double, int, int, double)"><B>compareLocationValues(int, int, double, int, int, double)</B></A> -
+Static method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Compares two sets of location values for order.
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>Compares this <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> with the specified <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> for order.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#compareTo(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)"><B>compareTo(Object, CoordinateSequenceComparator)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code>,
+ using the given <A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom"><CODE>CoordinateSequenceComparator</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Compares this object with the specified object for order.
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>Compares this <A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A> object with the specified object for order.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A>
+<DD>ProjectionEvents are ordered first by their x-value, and then by their eventType.
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> -
+Method in class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A>
+<DD>ProjectionEvents are ordered first by their x-value, and then by their eventType.
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Compares this object with the specified object for order.
+<DT><A HREF="com/vividsolutions/jts/noding/OrientedCoordinateArray.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding">OrientedCoordinateArray</A>
+<DD>Compares two <A HREF="com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding"><CODE>OrientedCoordinateArray</CODE></A>s for their relative order
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentNode.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding">SegmentNode</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer">BufferSubgraph</A>
+<DD>BufferSubgraphs are compared on the x-value of their rightmost Coordinate.
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Returns 1 if this DirectedEdge has a greater angle with the
+ positive x-axis than b", 0 if the DirectedEdges are collinear, and -1 otherwise.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#compareToSameClass(java.lang.Object)"><B>compareToSameClass(Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> having the same class.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)"><B>compareToSameClass(Object, CoordinateSequenceComparator)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns whether this <code>Geometry</code> is greater than, equal to,
+ or less than another <code>Geometry</code> of the same class.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#compareToSameClass(java.lang.Object)"><B>compareToSameClass(Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)"><B>compareToSameClass(Object, CoordinateSequenceComparator)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#compareToSameClass(java.lang.Object)"><B>compareToSameClass(Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)"><B>compareToSameClass(Object, CoordinateSequenceComparator)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#compareToSameClass(java.lang.Object)"><B>compareToSameClass(Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)"><B>compareToSameClass(Object, CoordinateSequenceComparator)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#compareToSameClass(java.lang.Object)"><B>compareToSameClass(Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#compareToSameClass(java.lang.Object, com.vividsolutions.jts.geom.CoordinateSequenceComparator)"><B>compareToSameClass(Object, CoordinateSequenceComparator)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#compose(com.vividsolutions.jts.geom.util.AffineTransformation)"><B>compose(AffineTransformation)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Composes the given <A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>AffineTransformation</CODE></A>
+ with this transformation.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#composeBefore(com.vividsolutions.jts.geom.util.AffineTransformation)"><B>composeBefore(AffineTransformation)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Composes this transformation
+ with the given <A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>AffineTransformation</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html#computeBounds()"><B>computeBounds()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A>
+<DD>Returns a representation of space that encloses this Boundable,
+ preferably not much bigger than this Boundable's boundary yet fast to
+ test for intersection with the bounds of other Boundables.
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#computeDepth(int)"><B>computeDepth(int)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer">BufferSubgraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#computeDepths(com.vividsolutions.jts.geomgraph.DirectedEdge)"><B>computeDepths(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#computeEdgeDistance(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>computeEdgeDistance(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>Computes the "edge distance" of an intersection point p along a segment.
+<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html#computeEdgeEnds(java.util.Iterator)"><B>computeEdgeEnds(Iterator)</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html#computeEdgeEnds(com.vividsolutions.jts.geomgraph.Edge, java.util.List)"><B>computeEdgeEnds(Edge, List)</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBuilder</A>
+<DD>Creates stub edges for all the intersections in this
+ Edge (if any) and inserts them into the graph.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html#computeEdgeIntersections(com.vividsolutions.jts.geomgraph.GeometryGraph, com.vividsolutions.jts.algorithm.LineIntersector, boolean)"><B>computeEdgeIntersections(GeometryGraph, LineIntersector, boolean)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#computeEnvelopeInternal()"><B>computeEnvelopeInternal()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the minimum and maximum x and y values in this <code>Geometry</code>
+ , or a null <code>Envelope</code> if this <code>Geometry</code> is empty.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#computeEnvelopeInternal()"><B>computeEnvelopeInternal()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#computeEnvelopeInternal()"><B>computeEnvelopeInternal()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#computeEnvelopeInternal()"><B>computeEnvelopeInternal()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#computeEnvelopeInternal()"><B>computeEnvelopeInternal()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#computeIM(com.vividsolutions.jts.geom.IntersectionMatrix)"><B>computeIM(IntersectionMatrix)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>Update the IM with the contribution for this component.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#computeIM(com.vividsolutions.jts.geom.IntersectionMatrix)"><B>computeIM(IntersectionMatrix)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>compute the contribution to an IM for this component
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Node.html#computeIM(com.vividsolutions.jts.geom.IntersectionMatrix)"><B>computeIM(IntersectionMatrix)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>
+<DD>Basic nodes do not compute IMs
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateComputer.html#computeIM()"><B>computeIM()</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateComputer.html" title="class in com.vividsolutions.jts.operation.relate">RelateComputer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateNode.html#computeIM(com.vividsolutions.jts.geom.IntersectionMatrix)"><B>computeIM(IntersectionMatrix)</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate">RelateNode</A>
+<DD>Update the IM with the contribution for this component.
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntLineIndex()"><B>computeIntLineIndex()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntLineIndex(int)"><B>computeIntLineIndex(int)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntersect(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>computeIntersect(Coordinate, Coordinate, Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html#computeIntersect(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>computeIntersect(Coordinate, Coordinate, Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm">NonRobustLineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/RobustLineIntersector.html#computeIntersect(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>computeIntersect(Coordinate, Coordinate, Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm">RobustLineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>computeIntersection(Coordinate, Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>Compute the intersection of a point p and the line p1-p2.
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>computeIntersection(Coordinate, Coordinate, Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>Computes the intersection of the lines p1-p2 and p3-p4.
+<DT><A HREF="com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html#computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>computeIntersection(Coordinate, Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm">NonRobustLineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/RobustLineIntersector.html#computeIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>computeIntersection(Coordinate, Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm">RobustLineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html#computeIntersectionNodes(com.vividsolutions.jts.geomgraph.GeometryGraph, int)"><B>computeIntersectionNodes(GeometryGraph, int)</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate">RelateNodeGraph</A>
+<DD>Insert nodes for all intersections on the edges of a Geometry.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html#computeIntersections(java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector, boolean)"><B>computeIntersections(List, SegmentIntersector, boolean)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A>
+<DD>Computes all self-intersections between edges in a set of edges,
+ allowing client to choose whether self-intersections are computed.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html#computeIntersections(java.util.List, java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><B>computeIntersections(List, List, SegmentIntersector)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A>
+<DD>Computes all mutual intersections between two sets of edges.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChain.html#computeIntersections(com.vividsolutions.jts.geomgraph.index.MonotoneChain, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><B>computeIntersections(MonotoneChain, SegmentIntersector)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChain</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html#computeIntersections(java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector, boolean)"><B>computeIntersections(List, SegmentIntersector, boolean)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleEdgeSetIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html#computeIntersections(java.util.List, java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><B>computeIntersections(List, List, SegmentIntersector)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleEdgeSetIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html#computeIntersections(java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector, boolean)"><B>computeIntersections(List, SegmentIntersector, boolean)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleMCSweepLineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html#computeIntersections(java.util.List, java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><B>computeIntersections(List, List, SegmentIntersector)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleMCSweepLineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html#computeIntersections(java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector, boolean)"><B>computeIntersections(List, SegmentIntersector, boolean)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleSweepLineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html#computeIntersections(java.util.List, java.util.List, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><B>computeIntersections(List, List, SegmentIntersector)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleSweepLineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html#computeIntersections(com.vividsolutions.jts.geomgraph.index.SweepLineSegment, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><B>computeIntersections(SweepLineSegment, SegmentIntersector)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html#computeIntersects(com.vividsolutions.jts.geomgraph.index.MonotoneChainEdge, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><B>computeIntersects(MonotoneChainEdge, SegmentIntersector)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html#computeIntersectsForChain(int, com.vividsolutions.jts.geomgraph.index.MonotoneChainEdge, int, com.vividsolutions.jts.geomgraph.index.SegmentIntersector)"><B>computeIntersectsForChain(int, MonotoneChainEdge, int, SegmentIntersector)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Key.html#computeKey(com.vividsolutions.jts.index.bintree.Interval)"><B>computeKey(Interval)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree">Key</A>
+<DD>return a square envelope containing the argument envelope,
+ whose extent is a power of two and which is based at a power of 2
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Key.html#computeKey(com.vividsolutions.jts.geom.Envelope)"><B>computeKey(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree">Key</A>
+<DD>return a square envelope containing the argument envelope,
+ whose extent is a power of two and which is based at a power of 2
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#computeLabel(com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><B>computeLabel(BoundaryNodeRule)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#computeLabel(com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><B>computeLabel(BoundaryNodeRule)</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundle</A>
+<DD>This computes the overall edge label for the set of
+ edges in this EdgeStubBundle.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#computeLabelling(com.vividsolutions.jts.geomgraph.GeometryGraph[])"><B>computeLabelling(GeometryGraph[])</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<DD>Compute the labelling for all dirEdges in this star, as well
+ as the overall labelling
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html#computeLabelling(com.vividsolutions.jts.geomgraph.GeometryGraph[])"><B>computeLabelling(GeometryGraph[])</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Key.html#computeLevel(com.vividsolutions.jts.index.bintree.Interval)"><B>computeLevel(Interval)</B></A> -
+Static method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree">Key</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/IteratedNoder.html#computeNodes(java.util.Collection)"><B>computeNodes(Collection)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding">IteratedNoder</A>
+<DD>Fully nodes a list of <CODE>SegmentStrings</CODE>, i.e.
+<DT><A HREF="com/vividsolutions/jts/noding/MCIndexNoder.html#computeNodes(java.util.Collection)"><B>computeNodes(Collection)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding">MCIndexNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/Noder.html#computeNodes(java.util.Collection)"><B>computeNodes(Collection)</B></A> -
+Method in interface com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A>
+<DD>Computes the noding for a collection of <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.
+<DT><A HREF="com/vividsolutions/jts/noding/ScaledNoder.html#computeNodes(java.util.Collection)"><B>computeNodes(Collection)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding">ScaledNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SimpleNoder.html#computeNodes(java.util.Collection)"><B>computeNodes(Collection)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SimpleNoder.html" title="class in com.vividsolutions.jts.noding">SimpleNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SinglePassNoder.html#computeNodes(java.util.Collection)"><B>computeNodes(Collection)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A>
+<DD>Computes the noding for a collection of <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html#computeNodes(java.util.Collection)"><B>computeNodes(Collection)</B></A> -
+Method in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexSnapRounder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html#computeNodes(java.util.Collection)"><B>computeNodes(Collection)</B></A> -
+Method in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">SimpleSnapRounder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#computeOrientation(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>computeOrientation(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>Computes the orientation of a point q to the directed line segment p1-p2.
+<DT><A HREF="com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html#computeOrientation(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>computeOrientation(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">NonRobustCGAlgorithms</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html#computeOverlaps(com.vividsolutions.jts.index.chain.MonotoneChain, com.vividsolutions.jts.index.chain.MonotoneChainOverlapAction)"><B>computeOverlaps(MonotoneChain, MonotoneChainOverlapAction)</B></A> -
+Method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineIndex.html#computeOverlaps(com.vividsolutions.jts.index.sweepline.SweepLineOverlapAction)"><B>computeOverlaps(SweepLineOverlapAction)</B></A> -
+Method in class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineIndex</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html#computeOverlaySnapTolerance(com.vividsolutions.jts.geom.Geometry)"><B>computeOverlaySnapTolerance(Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">GeometrySnapper</A>
+<DD>Estimates the snap tolerance for a Geometry, taking into account its precision model.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html#computeOverlaySnapTolerance(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>computeOverlaySnapTolerance(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">GeometrySnapper</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#computePoints(com.vividsolutions.jts.geomgraph.DirectedEdge)"><B>computePoints(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>Collect all the points from the DirectedEdges of this ring into a contiguous list
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Key.html#computeQuadLevel(com.vividsolutions.jts.geom.Envelope)"><B>computeQuadLevel(Envelope)</B></A> -
+Static method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree">Key</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#computeRing()"><B>computeRing()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>Compute a LinearRing from the point list previously collected.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html#computeSelfNodes(com.vividsolutions.jts.algorithm.LineIntersector, boolean)"><B>computeSelfNodes(LineIntersector, boolean)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<DD>Compute self-nodes, taking advantage of the Geometry type to
+ minimize the number of intersection tests.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html#computeSizeBasedSnapTolerance(com.vividsolutions.jts.geom.Geometry)"><B>computeSizeBasedSnapTolerance(Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">GeometrySnapper</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html#computeSplitEdges(java.util.List)"><B>computeSplitEdges(List)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html#computeVertexSnaps(java.util.Collection)"><B>computeVertexSnaps(Collection)</B></A> -
+Method in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexSnapRounder</A>
+<DD>Computes nodes introduced as a result of
+ snapping segments to vertices of other segments
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html#computeVertexSnaps(java.util.Collection)"><B>computeVertexSnaps(Collection)</B></A> -
+Method in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">SimpleSnapRounder</A>
+<DD>Computes nodes introduced as a result of
+ snapping segments to vertices of other segments
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#contains(com.vividsolutions.jts.geom.Coordinate)"><B>contains(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Returns <code>true</code> if the given point lies in or on the envelope.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#contains(double, double)"><B>contains(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Returns <code>true</code> if the given point lies in or on the envelope.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#contains(com.vividsolutions.jts.geom.Envelope)"><B>contains(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Returns <code>true</code> if the <code>Envelope other</code>
+ lies wholely inside this <code>Envelope</code> (inclusive of the boundary).
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#contains(com.vividsolutions.jts.geom.Geometry)"><B>contains(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns <code>true</code> if this geometry contains the
+ specified geometry.
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#contains(com.vividsolutions.jts.index.bintree.Interval)"><B>contains(Interval)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#contains(double, double)"><B>contains(double, double)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#contains(double)"><B>contains(double)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/predicate/RectangleContains.html#contains(com.vividsolutions.jts.geom.Polygon, com.vividsolutions.jts.geom.Geometry)"><B>contains(Polygon, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/RectangleContains.html" title="class in com.vividsolutions.jts.operation.predicate">RectangleContains</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/predicate/RectangleContains.html#contains(com.vividsolutions.jts.geom.Geometry)"><B>contains(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/RectangleContains.html" title="class in com.vividsolutions.jts.operation.predicate">RectangleContains</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#contains(com.vividsolutions.jts.planargraph.Edge)"><B>contains(Edge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>Tests whether this graph contains the given <A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A>
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#contains(com.vividsolutions.jts.planargraph.DirectedEdge)"><B>contains(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>Tests whether this graph contains the given <A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A>
+<DT><A HREF="com/vividsolutions/jts/planargraph/Subgraph.html#contains(com.vividsolutions.jts.planargraph.Edge)"><B>contains(Edge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph">Subgraph</A>
+<DD>Tests whether an <A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A> is contained in this subgraph
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#containsPoint(com.vividsolutions.jts.geom.Coordinate)"><B>containsPoint(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>This method will cause the ring to be computed.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/PolygonBuilder.html#containsPoint(com.vividsolutions.jts.geom.Coordinate)"><B>containsPoint(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/PolygonBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">PolygonBuilder</A>
+<DD>Checks the current set of shells (with their associated holes) to
+ see if any of them contain the point.
+<DT><A HREF="com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html#containsPointInPolygon(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Polygon)"><B>containsPointInPolygon(Coordinate, Polygon)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html" title="class in com.vividsolutions.jts.algorithm">SimplePointInAreaLocator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#convexHull()"><B>convexHull()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Computes the smallest convex <code>Polygon</code> that contains all the
+ points in the <code>Geometry</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#convexHull()"><B>convexHull()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html#coord"><B>coord</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Node.html#coord"><B>coord</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentNode.html#coord"><B>coord</B></A> -
+Variable in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding">SegmentNode</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#coordRef"><B>coordRef</B></A> -
+Variable in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>A soft reference to the Coordinate[] representation of this sequence.
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html#copy(com.vividsolutions.jts.geom.CoordinateSequence)"><B>copy(CoordinateSequence)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<DD>Convenience method which provides statndard way of copying <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>s
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#copyDeep(com.vividsolutions.jts.geom.Coordinate[])"><B>copyDeep(Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>Creates a deep copy of the argument {@link Coordinate) array.
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html#copyNodesAndLabels(com.vividsolutions.jts.geomgraph.GeometryGraph, int)"><B>copyNodesAndLabels(GeometryGraph, int)</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate">RelateNodeGraph</A>
+<DD>Copy all nodes from an arg geometry into this graph.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#coveredBy(com.vividsolutions.jts.geom.Geometry)"><B>coveredBy(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns <code>true</code> if this geometry is covered by the
+ specified geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#covers(com.vividsolutions.jts.geom.Geometry)"><B>covers(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns <code>true</code> if this geometry covers the
+ specified geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.Coordinate[])"><B>create(Coordinate[])</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A>
+<DD>Returns a <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> based on the given array.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.CoordinateSequence)"><B>create(CoordinateSequence)</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A>
+<DD>Creates a <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> which is a copy
+ of the given <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFactory.html#create(int, int)"><B>create(int, int)</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A>
+<DD>Creates a <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> of the specified size and dimension.
+<DT><A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.Coordinate[])"><B>create(Coordinate[])</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom">DefaultCoordinateSequenceFactory</A>
+<DD><B>Deprecated.</B> Returns a DefaultCoordinateSequence based on the given array (the array is
+ not copied).
+<DT><A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.CoordinateSequence)"><B>create(CoordinateSequence)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom">DefaultCoordinateSequenceFactory</A>
+<DD><B>Deprecated.</B>
+<DT><A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html#create(int, int)"><B>create(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom">DefaultCoordinateSequenceFactory</A>
+<DD><B>Deprecated.</B>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html#create(com.vividsolutions.jts.geom.Coordinate[])"><B>create(Coordinate[])</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequenceFactory</A>
+<DD>Returns a <A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl"><CODE>CoordinateArraySequence</CODE></A> based on the given array (the array is
+ not copied).
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html#create(com.vividsolutions.jts.geom.CoordinateSequence)"><B>create(CoordinateSequence)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequenceFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html#create(int, int)"><B>create(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequenceFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.Coordinate[])"><B>create(Coordinate[])</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#create(com.vividsolutions.jts.geom.CoordinateSequence)"><B>create(CoordinateSequence)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#create(double[], int)"><B>create(double[], int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#create(float[], int)"><B>create(float[], int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#create(int, int)"><B>create(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#create(com.vividsolutions.jts.geomgraph.Node)"><B>create(Node)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer">BufferSubgraph</A>
+<DD>Creates the subgraph consisting of all edges reachable from this node.
+<DT><A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html#createArc(double, double)"><B>createArc(double, double)</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util">GeometricShapeFactory</A>
+<DD>Creates a elliptical arc, as a LineString.
+<DT><A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html#createCircle()"><B>createCircle()</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util">GeometricShapeFactory</A>
+<DD>Creates a circular <A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html#createCoordinateSequence(com.vividsolutions.jts.geom.Coordinate[])"><B>createCoordinateSequence(Coordinate[])</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<DD>Convenience method which provides standard way of
+ creating a <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Node.html#createExpanded(com.vividsolutions.jts.index.bintree.Node, com.vividsolutions.jts.index.bintree.Interval)"><B>createExpanded(Node, Interval)</B></A> -
+Static method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Node.html#createExpanded(com.vividsolutions.jts.index.quadtree.Node, com.vividsolutions.jts.geom.Envelope)"><B>createExpanded(Node, Envelope)</B></A> -
+Static method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#createGeometry(com.vividsolutions.jts.geom.Geometry)"><B>createGeometry(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#createGeometryCollection(com.vividsolutions.jts.geom.Geometry[])"><B>createGeometryCollection(Geometry[])</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Creates a GeometryCollection using the given Geometries; a null or empty
+ array will create an empty GeometryCollection.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#createLineString(com.vividsolutions.jts.geom.Coordinate[])"><B>createLineString(Coordinate[])</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Creates a LineString using the given Coordinates; a null or empty array will
+ create an empty LineString.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#createLineString(com.vividsolutions.jts.geom.CoordinateSequence)"><B>createLineString(CoordinateSequence)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Creates a LineString using the given CoordinateSequence; a null or empty CoordinateSequence will
+ create an empty LineString.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#createLinearRing(com.vividsolutions.jts.geom.Coordinate[])"><B>createLinearRing(Coordinate[])</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Creates a LinearRing using the given Coordinates; a null or empty array will
+ create an empty LinearRing.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#createLinearRing(com.vividsolutions.jts.geom.CoordinateSequence)"><B>createLinearRing(CoordinateSequence)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Creates a LinearRing using the given CoordinateSequence; a null or empty CoordinateSequence will
+ create an empty LinearRing.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#createMultiLineString(com.vividsolutions.jts.geom.LineString[])"><B>createMultiLineString(LineString[])</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Creates a MultiLineString using the given LineStrings; a null or empty
+ array will create an empty MultiLineString.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#createMultiPoint(com.vividsolutions.jts.geom.Point[])"><B>createMultiPoint(Point[])</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Creates a MultiPoint using the given Points.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#createMultiPoint(com.vividsolutions.jts.geom.Coordinate[])"><B>createMultiPoint(Coordinate[])</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Creates a <A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiPoint</CODE></A> using the given <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#createMultiPoint(com.vividsolutions.jts.geom.CoordinateSequence)"><B>createMultiPoint(CoordinateSequence)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Creates a MultiPoint using the given CoordinateSequence.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#createMultiPolygon(com.vividsolutions.jts.geom.Polygon[])"><B>createMultiPolygon(Polygon[])</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Creates a MultiPolygon using the given Polygons; a null or empty array
+ will create an empty Polygon.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/NodeFactory.html#createNode(com.vividsolutions.jts.geom.Coordinate)"><B>createNode(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">NodeFactory</A>
+<DD>The basic node constructor does not allow for incident edges
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Node.html#createNode(com.vividsolutions.jts.index.bintree.Interval)"><B>createNode(Interval)</B></A> -
+Static method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Node.html#createNode(com.vividsolutions.jts.geom.Envelope)"><B>createNode(Envelope)</B></A> -
+Static method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#createNode(int)"><B>createNode(int)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html#createNode(int)"><B>createNode(int)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree">SIRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/STRtree.html#createNode(int)"><B>createNode(int)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html#createNode(com.vividsolutions.jts.geom.Coordinate)"><B>createNode(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayNodeFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateNodeFactory.html#createNode(com.vividsolutions.jts.geom.Coordinate)"><B>createNode(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeFactory.html" title="class in com.vividsolutions.jts.operation.relate">RelateNodeFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#createParentBoundables(java.util.List, int)"><B>createParentBoundables(List, int)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>Sorts the childBoundables then divides them into groups of size M, where
+ M is the node capacity.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/STRtree.html#createParentBoundables(java.util.List, int)"><B>createParentBoundables(List, int)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>
+<DD>Creates the parent level for the given child level.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/STRtree.html#createParentBoundablesFromVerticalSlice(java.util.List, int)"><B>createParentBoundablesFromVerticalSlice(List, int)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#createPoint(com.vividsolutions.jts.geom.Coordinate)"><B>createPoint(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Creates a Point using the given Coordinate; a null Coordinate will create
+ an empty Geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#createPoint(com.vividsolutions.jts.geom.CoordinateSequence)"><B>createPoint(CoordinateSequence)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Creates a Point using the given CoordinateSequence; a null or empty
+ CoordinateSequence will create an empty Point.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#createPointFromInternalCoord(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Geometry)"><B>createPointFromInternalCoord(Coordinate, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#createPolygon(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.LinearRing[])"><B>createPolygon(LinearRing, LinearRing[])</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Constructs a <code>Polygon</code> with the given exterior boundary and
+ interior boundaries.
+<DT><A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html#createRectangle()"><B>createRectangle()</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util">GeometricShapeFactory</A>
+<DD>Creates a rectangular <A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#crosses(com.vividsolutions.jts.geom.Geometry)"><B>crosses(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns <code>true</code> if this geometry crosses the
+ specified geometry.
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html#cutEdges"><B>cutEdges</B></A> -
+Variable in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_D_"><!-- --></A><H2>
+<B>D</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#DEBUG_PROPERTY_NAME"><B>DEBUG_PROPERTY_NAME</B></A> -
+Static variable in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#DEBUG_PROPERTY_VALUE_ON"><B>DEBUG_PROPERTY_VALUE_ON</B></A> -
+Static variable in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#DEBUG_PROPERTY_VALUE_TRUE"><B>DEBUG_PROPERTY_VALUE_TRUE</B></A> -
+Static variable in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html#DEFAULT_QUADRANT_SEGMENTS"><B>DEFAULT_QUADRANT_SEGMENTS</B></A> -
+Static variable in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveBuilder</A>
+<DD>The default number of facets into which to divide a fillet of 90 degrees.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#DELETE"><B>DELETE</B></A> -
+Static variable in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#DELETE"><B>DELETE</B></A> -
+Static variable in class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#DIFFERENCE"><B>DIFFERENCE</B></A> -
+Static variable in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#DISCONNECTED_INTERIOR"><B>DISCONNECTED_INTERIOR</B></A> -
+Static variable in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Indicates that the interior of a polygon is disjoint
+ (often caused by set of contiguous holes splitting the polygon into two parts)
+<DT><A HREF="com/vividsolutions/jts/geom/Dimension.html#DONTCARE"><B>DONTCARE</B></A> -
+Static variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom">Dimension</A>
+<DD>Dimension value for any dimension (= {FALSE, TRUE}).
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#DONT_INTERSECT"><B>DONT_INTERSECT</B></A> -
+Static variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#DOUBLE"><B>DOUBLE</B></A> -
+Static variable in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#DOUBLE_FACTORY"><B>DOUBLE_FACTORY</B></A> -
+Static variable in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#DO_INTERSECT"><B>DO_INTERSECT</B></A> -
+Static variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#DUPLICATE_RINGS"><B>DUPLICATE_RINGS</B></A> -
+Static variable in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Indicates that a polygonal geometry contains two rings which are identical
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util"><B>Debug</B></A> - class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>.<DD>Provides routines to simplify and localize debugging output.<DT><A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom"><B>DefaultCoordinateSequenceFactory</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom">DefaultCoordinateSequenceFactory</A>.<DD><B>Deprecated.</B> <I>no longer used</I><DT><A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html#DefaultCoordinateSequenceFactory()"><B>DefaultCoordinateSequenceFactory()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom">DefaultCoordinateSequenceFactory</A>
+<DD><B>Deprecated.</B>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph"><B>Depth</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A>.<DD>A Depth object records the topological depth of the sides
+ of an Edge for up to two Geometries.<DT><A HREF="com/vividsolutions/jts/geomgraph/Depth.html#Depth()"><B>Depth()</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom"><B>Dimension</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom">Dimension</A>.<DD>Constants representing the dimensions of a point, a curve and a surface.<DT><A HREF="com/vividsolutions/jts/geom/Dimension.html#Dimension()"><B>Dimension()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom">Dimension</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><B>DirectedEdge</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>.<DD> <DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#DirectedEdge(com.vividsolutions.jts.geomgraph.Edge, boolean)"><B>DirectedEdge(Edge, boolean)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><B>DirectedEdge</B></A> - class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>.<DD>Represents a directed edge in a <A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>.<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#DirectedEdge(com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.geom.Coordinate, boolean)"><B>DirectedEdge(Node, Node, Coordinate, boolean)</B></A> -
+Constructor for class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Constructs a DirectedEdge connecting the <code>from</code> node to the
+ <code>to</code> node.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph"><B>DirectedEdgeStar</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>.<DD>A DirectedEdgeStar is an ordered list of <b>outgoing</b> DirectedEdges around a node.<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#DirectedEdgeStar()"><B>DirectedEdgeStar()</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph"><B>DirectedEdgeStar</B></A> - class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A>.<DD>A sorted collection of <A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A>s which leave a <A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A>
+ in a <A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>.<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#DirectedEdgeStar()"><B>DirectedEdgeStar()</B></A> -
+Constructor for class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A>
+<DD>Constructs a DirectedEdgeStar with no edges.
+<DT><A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance"><B>DistanceOp</B></A> - class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance">DistanceOp</A>.<DD>Find two points on two <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s which lie
+ within a given distance, or else are the closest points
+ on the geometries (in which case this also
+ provides the distance between the geometries).<DT><A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html#DistanceOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>DistanceOp(Geometry, Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance">DistanceOp</A>
+<DD>Constructs a DistanceOp that computes the distance and closest points between
+ the two specified geometries.
+<DT><A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html#DistanceOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, double)"><B>DistanceOp(Geometry, Geometry, double)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance">DistanceOp</A>
+<DD>Constructs a DistanceOp that computes the distance and closest points between
+ the two specified geometries.
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree"><B>DoubleBits</B></A> - class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>.<DD>DoubleBits manipulates Double numbers
+ by using bit manipulation and bit-field extraction.<DT><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html#DoubleBits(double)"><B>DoubleBits(double)</B></A> -
+Constructor for class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>DouglasPeuckerLineSimplifier</B></A> - class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html" title="class in com.vividsolutions.jts.simplify">DouglasPeuckerLineSimplifier</A>.<DD>Simplifies a linestring (sequence of points) using
+ the standard Douglas-Peucker algorithm.<DT><A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html#DouglasPeuckerLineSimplifier(com.vividsolutions.jts.geom.Coordinate[])"><B>DouglasPeuckerLineSimplifier(Coordinate[])</B></A> -
+Constructor for class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html" title="class in com.vividsolutions.jts.simplify">DouglasPeuckerLineSimplifier</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>DouglasPeuckerSimplifier</B></A> - class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify">DouglasPeuckerSimplifier</A>.<DD>Simplifies a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> using the standard Douglas-Peucker algorithm.<DT><A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html#DouglasPeuckerSimplifier(com.vividsolutions.jts.geom.Geometry)"><B>DouglasPeuckerSimplifier(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify">DouglasPeuckerSimplifier</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html#dangles"><B>dangles</B></A> -
+Variable in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/Node.html#deStar"><B>deStar</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A>
+<DD>The collection of DirectedEdges that leave this Node
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Bintree.html#depth()"><B>depth()</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree">Bintree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html#depth()"><B>depth()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree">Quadtree</A>
+<DD>Returns the number of levels in the tree.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#depth()"><B>depth()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#depth(com.vividsolutions.jts.index.strtree.AbstractNode)"><B>depth(AbstractNode)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/STRtree.html#depth()"><B>depth()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>
+<DD>Returns the number of items in the tree.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Depth.html#depthAtLocation(int)"><B>depthAtLocation(int)</B></A> -
+Static method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#depthFactor(int, int)"><B>depthFactor(int, int)</B></A> -
+Static method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>Computes the factor for the change in depth when moving from one location to another.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html#determineBoundary(com.vividsolutions.jts.algorithm.BoundaryNodeRule, int)"><B>determineBoundary(BoundaryNodeRule, int)</B></A> -
+Static method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<DD>This method implements the Boundary Determination Rule
+ for determining whether
+ a component (node or edge) that appears multiple times in elements
+ of a MultiGeometry is in the boundary or the interior of the Geometry
+ <br>
+ The SFS uses the "Mod-2 Rule", which this function implements
+ <br>
+ An alternative (and possibly more intuitive) rule would be
+ the "At Most One Rule":
+ isInBoundary = (componentCount == 1)
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#diff(double, double)"><B>diff(double, double)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>Computes the unoriented (smallest) difference between two angles.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#difference(com.vividsolutions.jts.geom.Geometry)"><B>difference(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Computes a <code>Geometry</code> representing the points making up this
+ <code>Geometry</code> that do not make up <code>other</code>.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html#difference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>difference(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapIfNeededOverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html#difference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>difference(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapOverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html#difference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>difference(Geometry, Geometry)</B></A> -
+Method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision">CommonBitsOp</A>
+<DD>Computes the set-theoretic difference of two <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.
+<DT><A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html#difference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>difference(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision">EnhancedPrecisionOp</A>
+<DD>Computes the set-theoretic difference of two <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#dimension"><B>dimension</B></A> -
+Variable in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>The dimensions of the coordinates hold in the packed array
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html#dimensionLimit"><B>dimensionLimit</B></A> -
+Variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateSequenceComparator</A>
+<DD>The number of dimensions to test
+<DT><A HREF="com/vividsolutions/jts/planargraph/Edge.html#dirEdge"><B>dirEdge</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A>
+<DD>The two DirectedEdges associated with this Edge.
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#dirEdgeIterator()"><B>dirEdgeIterator()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>Returns an Iterator over the DirectedEdges in this PlanarGraph, in the order in which they
+ were added.
+<DT><A HREF="com/vividsolutions/jts/planargraph/Subgraph.html#dirEdgeIterator()"><B>dirEdgeIterator()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph">Subgraph</A>
+<DD>Returns an <CODE>Iterator</CODE> over the <A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A>s in this graph,
+ in the order in which they were added.
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#dirEdges"><B>dirEdges</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/Subgraph.html#dirEdges"><B>dirEdges</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph">Subgraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#disjoint(com.vividsolutions.jts.geom.Geometry)"><B>disjoint(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns <code>true</code> if this geometry is disjoint to the specified geometry.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.html#dissolve(java.util.Collection)"><B>dissolve(Collection)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding">SegmentStringDissolver</A>
+<DD>Dissolve all <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s in the input <CODE>Collection</CODE>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.html#dissolve(com.vividsolutions.jts.noding.SegmentString)"><B>dissolve(SegmentString)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding">SegmentStringDissolver</A>
+<DD>Dissolve the given <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html#dist"><B>dist</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#distance(com.vividsolutions.jts.geom.Coordinate)"><B>distance(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#distance(com.vividsolutions.jts.geom.Envelope)"><B>distance(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Computes the distance between this and another
+ <code>Envelope</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#distance(com.vividsolutions.jts.geom.Geometry)"><B>distance(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the minimum distance between this <code>Geometry</code>
+ and the <code>Geometry</code> g
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#distance(com.vividsolutions.jts.geom.LineSegment)"><B>distance(LineSegment)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Computes the distance between this line segment and another segment.
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#distance(com.vividsolutions.jts.geom.Coordinate)"><B>distance(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Computes the distance between this line segment and a given point.
+<DT><A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html#distance(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>distance(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance">DistanceOp</A>
+<DD>Compute the distance between the closest points of two geometries.
+<DT><A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html#distance()"><B>distance()</B></A> -
+Method in class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance">DistanceOp</A>
+<DD>Report the distance between the closest points on the input geometries.
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#distanceLineLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>distanceLineLine(Coordinate, Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>Computes the distance from a line segment AB to a line segment CD
+
+ Note: NON-ROBUST!
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#distancePerpendicular(com.vividsolutions.jts.geom.Coordinate)"><B>distancePerpendicular(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Computes the perpendicular distance between the (infinite) line defined
+ by this line segment and a point.
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#distancePointLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>distancePointLine(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>Computes the distance from a point p to a line segment AB
+
+ Note: NON-ROBUST!
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#distancePointLinePerpendicular(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>distancePointLinePerpendicular(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>Computes the perpendicular distance from a point p
+ to the (infinite) line containing the points AB
+</DL>
+<HR>
+<A NAME="_E_"><!-- --></A><H2>
+<B>E</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#ENDPOINT_BOUNDARY_RULE"><B>ENDPOINT_BOUNDARY_RULE</B></A> -
+Static variable in interface com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A>
+<DD>The Endpoint Boundary Node Rule.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#ERROR"><B>ERROR</B></A> -
+Static variable in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD><B>Deprecated.</B> <I></I>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html#EXPONENT_BIAS"><B>EXPONENT_BIAS</B></A> -
+Static variable in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Location.html#EXTERIOR"><B>EXTERIOR</B></A> -
+Static variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom">Location</A>
+<DD>DE-9IM row index of the exterior of the first geometry and column index of
+ the exterior of the second geometry.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><B>Edge</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>.<DD> <DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#Edge(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geomgraph.Label)"><B>Edge(Coordinate[], Label)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#Edge(com.vividsolutions.jts.geom.Coordinate[])"><B>Edge(Coordinate[])</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><B>Edge</B></A> - class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A>.<DD>Represents an undirected edge of a <A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>.<DT><A HREF="com/vividsolutions/jts/planargraph/Edge.html#Edge()"><B>Edge()</B></A> -
+Constructor for class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A>
+<DD>Constructs an Edge whose DirectedEdges are not yet set.
+<DT><A HREF="com/vividsolutions/jts/planargraph/Edge.html#Edge(com.vividsolutions.jts.planargraph.DirectedEdge, com.vividsolutions.jts.planargraph.DirectedEdge)"><B>Edge(DirectedEdge, DirectedEdge)</B></A> -
+Constructor for class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A>
+<DD>Constructs an Edge initialized with the given DirectedEdges, and for each
+ DirectedEdge: sets the Edge, sets the symmetric DirectedEdge, and adds
+ this Edge to its from-Node.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeEnd</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>.<DD>Models the end of an edge incident on a node.<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#EdgeEnd(com.vividsolutions.jts.geomgraph.Edge)"><B>EdgeEnd(Edge)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#EdgeEnd(com.vividsolutions.jts.geomgraph.Edge, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>EdgeEnd(Edge, Coordinate, Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#EdgeEnd(com.vividsolutions.jts.geomgraph.Edge, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geomgraph.Label)"><B>EdgeEnd(Edge, Coordinate, Coordinate, Label)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html" title="class in com.vividsolutions.jts.operation.relate"><B>EdgeEndBuilder</B></A> - class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBuilder</A>.<DD>Computes the <A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>EdgeEnd</CODE></A>s which arise from a noded <A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Edge</CODE></A>.<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html#EdgeEndBuilder()"><B>EdgeEndBuilder()</B></A> -
+Constructor for class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate"><B>EdgeEndBundle</B></A> - class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundle</A>.<DD>A collection of <A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>EdgeEnd</CODE></A>s which obey the following invariant:
+ They originate at the same node and have the same direction.<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#EdgeEndBundle(com.vividsolutions.jts.algorithm.BoundaryNodeRule, com.vividsolutions.jts.geomgraph.EdgeEnd)"><B>EdgeEndBundle(BoundaryNodeRule, EdgeEnd)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundle</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#EdgeEndBundle(com.vividsolutions.jts.geomgraph.EdgeEnd)"><B>EdgeEndBundle(EdgeEnd)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundle</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html" title="class in com.vividsolutions.jts.operation.relate"><B>EdgeEndBundleStar</B></A> - class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundleStar</A>.<DD>An ordered list of <A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate"><CODE>EdgeEndBundle</CODE></A>s around a <A HREF="com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate"><CODE>RelateNode</CODE></A>.<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html#EdgeEndBundleStar()"><B>EdgeEndBundleStar()</B></A> -
+Constructor for class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundleStar</A>
+<DD>Creates a new empty EdgeEndBundleStar
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeEndStar</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>.<DD>A EdgeEndStar is an ordered list of EdgeEnds around a node.<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html#EdgeEndStar()"><B>EdgeEndStar()</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeIntersection</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A>.<DD>Represents a point on an
+ edge which intersects with another edge.<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html#EdgeIntersection(com.vividsolutions.jts.geom.Coordinate, int, double)"><B>EdgeIntersection(Coordinate, int, double)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeIntersectionList</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersectionList</A>.<DD>A list of edge intersections along an <A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Edge</CODE></A>.<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html#EdgeIntersectionList(com.vividsolutions.jts.geomgraph.Edge)"><B>EdgeIntersectionList(Edge)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersectionList</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeList</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeList</A>.<DD>A EdgeList is a list of Edges.<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html#EdgeList()"><B>EdgeList()</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeList</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeNodingValidator</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html" title="class in com.vividsolutions.jts.geomgraph">EdgeNodingValidator</A>.<DD>Validates that a collection of <A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Edge</CODE></A>s is correctly noded.<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html#EdgeNodingValidator(java.util.Collection)"><B>EdgeNodingValidator(Collection)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html" title="class in com.vividsolutions.jts.geomgraph">EdgeNodingValidator</A>
+<DD>Creates a new validator for the given collection of <A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Edge</CODE></A>s.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeRing</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>.<DD> <DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#EdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.CGAlgorithms)"><B>EdgeRing(DirectedEdge, GeometryFactory, CGAlgorithms)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>EdgeRing</B></A> - class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A>.<DD>Represents a ring of <A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize"><CODE>PolygonizeDirectedEdge</CODE></A>s which form
+ a ring of a polygon.<DT><A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html#EdgeRing(com.vividsolutions.jts.geom.GeometryFactory)"><B>EdgeRing(GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>EdgeSetIntersector</B></A> - class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A>.<DD>An EdgeSetIntersector computes all the intersections between the
+ edges in the set.<DT><A HREF="com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html#EdgeSetIntersector()"><B>EdgeSetIntersector()</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">EdgeSetIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>EdgeSetNoder</B></A> - class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html" title="class in com.vividsolutions.jts.operation.overlay">EdgeSetNoder</A>.<DD>Nodes a set of edges.<DT><A HREF="com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html#EdgeSetNoder(com.vividsolutions.jts.algorithm.LineIntersector)"><B>EdgeSetNoder(LineIntersector)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html" title="class in com.vividsolutions.jts.operation.overlay">EdgeSetNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/EdgeString.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>EdgeString</B></A> - class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/EdgeString.html" title="class in com.vividsolutions.jts.operation.linemerge">EdgeString</A>.<DD>A sequence of <A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><CODE>LineMergeDirectedEdge</CODE></A>s forming one of the lines that will
+ be output by the line-merging process.<DT><A HREF="com/vividsolutions/jts/operation/linemerge/EdgeString.html#EdgeString(com.vividsolutions.jts.geom.GeometryFactory)"><B>EdgeString(GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/EdgeString.html" title="class in com.vividsolutions.jts.operation.linemerge">EdgeString</A>
+<DD>Constructs an EdgeString with the given factory used to convert this EdgeString
+ to a LineString
+<DT><A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision"><B>EnhancedPrecisionOp</B></A> - class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision">EnhancedPrecisionOp</A>.<DD>Provides versions of Geometry spatial functions which use
+ enhanced precision techniques to reduce the likelihood of robustness problems.<DT><A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html#EnhancedPrecisionOp()"><B>EnhancedPrecisionOp()</B></A> -
+Constructor for class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision">EnhancedPrecisionOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><B>Envelope</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>.<DD>Defines a rectangular region of the 2D coordinate plane.<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#Envelope()"><B>Envelope()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Creates a null <code>Envelope</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#Envelope(double, double, double, double)"><B>Envelope(double, double, double, double)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Creates an <code>Envelope</code> for a region defined by maximum and minimum values.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#Envelope(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>Envelope(Coordinate, Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Creates an <code>Envelope</code> for a region defined by two Coordinates.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#Envelope(com.vividsolutions.jts.geom.Coordinate)"><B>Envelope(Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Creates an <code>Envelope</code> for a region defined by a single Coordinate.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#Envelope(com.vividsolutions.jts.geom.Envelope)"><B>Envelope(Envelope)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Create an <code>Envelope</code> from an existing Envelope.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#edge"><B>edge</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#edgeDirection"><B>edgeDirection</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#edgeEndList"><B>edgeEndList</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#edgeIterator()"><B>edgeIterator()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>Returns an Iterator over the Edges in this PlanarGraph, in the order in which they
+ were added.
+<DT><A HREF="com/vividsolutions/jts/planargraph/Subgraph.html#edgeIterator()"><B>edgeIterator()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph">Subgraph</A>
+<DD>Returns an <CODE>Iterator</CODE> over the <A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A>s in this graph,
+ in the order in which they were added.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html#edgeList"><B>edgeList</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>
+<DD>A list of all outgoing edges in the result, in CCW order
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html#edgeMap"><B>edgeMap</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>
+<DD>A map which maintains the edges in sorted order around the node
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Node.html#edges"><B>edges</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#edges"><B>edges</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#edges"><B>edges</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/Subgraph.html#edges"><B>edges</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph">Subgraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html#edit(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.GeometryFactory)"><B>edit(Geometry, GeometryFactory)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor.CoordinateOperation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html#edit(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Geometry)"><B>edit(Coordinate[], Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor.CoordinateOperation</A>
+<DD>Edits the array of <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s from a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html#edit(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.GeometryFactory)"><B>edit(Geometry, GeometryFactory)</B></A> -
+Method in interface com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util">GeometryEditor.GeometryEditorOperation</A>
+<DD>Edits a Geometry by returning a new Geometry with a modification.
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.html#edit(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.util.GeometryEditor.GeometryEditorOperation)"><B>edit(Geometry, GeometryEditor.GeometryEditorOperation)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor</A>
+<DD>Edit the input <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> with the given edit operation.
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#endLine()"><B>endLine()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref">LinearGeometryBuilder</A>
+<DD>Terminate the current LineString.
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Bintree.html#ensureExtent(com.vividsolutions.jts.index.bintree.Interval, double)"><B>ensureExtent(Interval, double)</B></A> -
+Static method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree">Bintree</A>
+<DD>Ensure that the Interval for the inserted item has non-zero extents.
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html#ensureExtent(com.vividsolutions.jts.geom.Envelope, double)"><B>ensureExtent(Envelope, double)</B></A> -
+Static method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree">Quadtree</A>
+<DD>Ensure that the envelope for the inserted item has non-zero extents.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#envelope"><B>envelope</B></A> -
+Variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>The bounding box of this <code>Geometry</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#equal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, double)"><B>equal(Coordinate, Coordinate, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#equals(java.lang.Object)"><B>equals(Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>Returns <code>true</code> if <code>other</code> has the same values for
+ the x and y ordinates.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#equals(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate[])"><B>equals(Coordinate[], Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>Returns true if the two arrays are identical, both null, or pointwise
+ equal (as compared using Coordinate#equals)
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#equals(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate[], java.util.Comparator)"><B>equals(Coordinate[], Coordinate[], Comparator)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>Returns true if the two arrays are identical, both null, or pointwise
+ equal, using a user-defined <A HREF="com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom"><CODE>CoordinateArrays.ForwardComparator</CODE></A> for <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> s
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#equals(java.lang.Object)"><B>equals(Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#equals(com.vividsolutions.jts.geom.Geometry)"><B>equals(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns <code>true</code> if this geometry is equal to the
+ specified geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#equals(java.lang.Object)"><B>equals(Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Returns <code>true</code> if <code>other</code> has the same values for
+ its points.
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#equals(java.lang.Object)"><B>equals(Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#equals(java.lang.Object)"><B>equals(Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Tests if an object is an
+ <tt>AffineTransformation</tt>
+ and has the same matrix as
+ this transformation.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#equals(java.lang.Object)"><B>equals(Object)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>equals is defined to be:
+
+<DT><A HREF="com/vividsolutions/jts/index/strtree/Interval.html#equals(java.lang.Object)"><B>equals(Object)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Assert.html#equals(java.lang.Object, java.lang.Object)"><B>equals(Object, Object)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util">Assert</A>
+<DD>Throws an <code>AssertionFailedException</code> if the given objects are
+ not equal, according to the <code>equals</code> method.
+<DT><A HREF="com/vividsolutions/jts/util/Assert.html#equals(java.lang.Object, java.lang.Object, java.lang.String)"><B>equals(Object, Object, String)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util">Assert</A>
+<DD>Throws an <code>AssertionFailedException</code> with the given message if
+ the given objects are not equal, according to the <code>equals</code>
+ method.
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#equals2D(com.vividsolutions.jts.geom.Coordinate)"><B>equals2D(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>Returns whether the planar projections of the two <code>Coordinate</code>s
+ are equal.
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#equals3D(com.vividsolutions.jts.geom.Coordinate)"><B>equals3D(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>Returns <code>true</code> if <code>other</code> has the same values for x,
+ y and z.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><B>equalsExact(Geometry, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns true if the two <code>Geometry</code>s are exactly equal,
+ up to a specified distance tolerance.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#equalsExact(com.vividsolutions.jts.geom.Geometry)"><B>equalsExact(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns true if the two <code>Geometry</code>s are exactly equal.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><B>equalsExact(Geometry, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><B>equalsExact(Geometry, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiLineString.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><B>equalsExact(Geometry, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPoint.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><B>equalsExact(Geometry, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPolygon.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><B>equalsExact(Geometry, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><B>equalsExact(Geometry, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#equalsExact(com.vividsolutions.jts.geom.Geometry, double)"><B>equalsExact(Geometry, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#equalsTopo(com.vividsolutions.jts.geom.LineSegment)"><B>equalsTopo(LineSegment)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Returns <code>true</code> if <code>other</code> is
+ topologically equal to this LineSegment (e.g.
+<DT><A HREF="com/vividsolutions/jts/util/CollectionUtil.Function.html#execute(java.lang.Object)"><B>execute(Object)</B></A> -
+Method in interface com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util">CollectionUtil.Function</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#expandBy(double)"><B>expandBy(double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Expands this envelope by a given distance in all directions.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#expandBy(double, double)"><B>expandBy(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Expands this envelope by a given distance in all directions.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#expandEnvelope(com.vividsolutions.jts.geom.Envelope)"><B>expandEnvelope(Envelope)</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>Expands the given <A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A> to include the coordinates in the sequence.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#expandEnvelope(com.vividsolutions.jts.geom.Envelope)"><B>expandEnvelope(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#expandEnvelope(com.vividsolutions.jts.geom.Envelope)"><B>expandEnvelope(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#expandEnvelope(com.vividsolutions.jts.geom.Envelope)"><B>expandEnvelope(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#expandToInclude(com.vividsolutions.jts.geom.Coordinate)"><B>expandToInclude(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Enlarges the boundary of the <code>Envelope</code> so that it contains
+ (x,y).
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#expandToInclude(double, double)"><B>expandToInclude(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Enlarges the boundary of the <code>Envelope</code> so that it contains
+ (x,y).
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#expandToInclude(com.vividsolutions.jts.geom.Envelope)"><B>expandToInclude(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Enlarges the boundary of the <code>Envelope</code> so that it contains
+ <code>other</code>.
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#expandToInclude(com.vividsolutions.jts.index.bintree.Interval)"><B>expandToInclude(Interval)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/Interval.html#expandToInclude(com.vividsolutions.jts.index.strtree.Interval)"><B>expandToInclude(Interval)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html#exponent(double)"><B>exponent(double)</B></A> -
+Static method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#extract(com.vividsolutions.jts.geom.Coordinate[], int, int)"><B>extract(Coordinate[], int, int)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>Extracts a subsequence of the input <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> array
+ from indices <code>start</code> to
+ <code>end</code> (inclusive).
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html#extractLine(double, double)"><B>extractLine(double, double)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LengthIndexedLine</A>
+<DD>Computes the <A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> for the interval
+ on the line between the given indices.
+<DT><A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html#extractLine(com.vividsolutions.jts.linearref.LinearLocation, com.vividsolutions.jts.linearref.LinearLocation)"><B>extractLine(LinearLocation, LinearLocation)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LocationIndexedLine</A>
+<DD>Computes the <A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> for the interval
+ on the line between the given indices.
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html#extractPoint(double)"><B>extractPoint(double)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LengthIndexedLine</A>
+<DD>Computes the <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> for the point
+ on the line at the given index.
+<DT><A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html#extractPoint(com.vividsolutions.jts.linearref.LinearLocation)"><B>extractPoint(LinearLocation)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LocationIndexedLine</A>
+<DD>Computes the <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> for the point
+ on the line at the given index.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html#extractTargetCoordinates(com.vividsolutions.jts.geom.Geometry)"><B>extractTargetCoordinates(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">GeometrySnapper</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_F_"><!-- --></A><H2>
+<B>F</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/geom/Dimension.html#FALSE"><B>FALSE</B></A> -
+Static variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom">Dimension</A>
+<DD>Dimension value of the empty geometry (-1).
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#FIXED"><B>FIXED</B></A> -
+Static variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>Fixed Precision indicates that coordinates have a fixed number of decimal places.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#FLOAT"><B>FLOAT</B></A> -
+Static variable in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#FLOATING"><B>FLOATING</B></A> -
+Static variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>Floating precision corresponds to the standard Java
+ double-precision floating-point representation, which is
+ based on the IEEE-754 standard
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#FLOATING_SINGLE"><B>FLOATING_SINGLE</B></A> -
+Static variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>Floating single precision corresponds to the standard Java
+ single-precision floating-point representation, which is
+ based on the IEEE-754 standard
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#FLOAT_FACTORY"><B>FLOAT_FACTORY</B></A> -
+Static variable in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/FastNodingValidator.html" title="class in com.vividsolutions.jts.noding"><B>FastNodingValidator</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/FastNodingValidator.html" title="class in com.vividsolutions.jts.noding">FastNodingValidator</A>.<DD>Validates that a collection of <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s is correctly noded.<DT><A HREF="com/vividsolutions/jts/noding/FastNodingValidator.html#FastNodingValidator(java.util.Collection)"><B>FastNodingValidator(Collection)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/FastNodingValidator.html" title="class in com.vividsolutions.jts.noding">FastNodingValidator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>FuzzyPointLocator</B></A> - class com.vividsolutions.jts.operation.overlay.validate.<A HREF="com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">FuzzyPointLocator</A>.<DD>Finds the most likely <A HREF="com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><CODE>Location</CODE></A> of a point relative to
+ the polygonal components of a geometry, using a tolerance value.<DT><A HREF="com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html#FuzzyPointLocator(com.vividsolutions.jts.geom.Geometry, double)"><B>FuzzyPointLocator(Geometry, double)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.validate.<A HREF="com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">FuzzyPointLocator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#factory"><B>factory</B></A> -
+Variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>The <A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A> used to create this Geometry
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html#factory"><B>factory</B></A> -
+Variable in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateFilter.html#filter(com.vividsolutions.jts.geom.Coordinate)"><B>filter(Coordinate)</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A>
+<DD>Performs an operation with or on <code>coord</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFilter.html#filter(com.vividsolutions.jts.geom.CoordinateSequence, int)"><B>filter(CoordinateSequence, int)</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A>
+<DD>Performs an operation on a coordinate in a <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryComponentFilter.html#filter(com.vividsolutions.jts.geom.Geometry)"><B>filter(Geometry)</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A>
+<DD>Performs an operation with or on <code>geom</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFilter.html#filter(com.vividsolutions.jts.geom.Geometry)"><B>filter(Geometry)</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A>
+<DD>Performs an operation with or on <code>geom</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#filter(com.vividsolutions.jts.geom.CoordinateSequence, int)"><B>filter(CoordinateSequence, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Transforms the i'th coordinate in the input sequence
+<DT><A HREF="com/vividsolutions/jts/geom/util/LinearComponentExtracter.html#filter(com.vividsolutions.jts.geom.Geometry)"><B>filter(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util">LinearComponentExtracter</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/PointExtracter.html#filter(com.vividsolutions.jts.geom.Geometry)"><B>filter(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/PointExtracter.html" title="class in com.vividsolutions.jts.geom.util">PointExtracter</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/PolygonExtracter.html#filter(com.vividsolutions.jts.geom.Geometry)"><B>filter(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util">PolygonExtracter</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html#filter(com.vividsolutions.jts.geom.Geometry)"><B>filter(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html" title="class in com.vividsolutions.jts.operation.distance">ConnectedElementLocationFilter</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html#filter(com.vividsolutions.jts.geom.Geometry)"><B>filter(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html" title="class in com.vividsolutions.jts.operation.distance">ConnectedElementPointFilter</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/CoordinateArrayFilter.html#filter(com.vividsolutions.jts.geom.Coordinate)"><B>filter(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util">CoordinateArrayFilter</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/CoordinateCountFilter.html#filter(com.vividsolutions.jts.geom.Coordinate)"><B>filter(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util">CoordinateCountFilter</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html#filter(com.vividsolutions.jts.geom.Coordinate)"><B>filter(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util">UniqueCoordinateArrayFilter</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html#find(com.vividsolutions.jts.geom.Coordinate)"><B>find(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph">NodeMap</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#find(com.vividsolutions.jts.geom.Coordinate)"><B>find(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Node.html#find(com.vividsolutions.jts.index.bintree.Interval)"><B>find(Interval)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A>
+<DD>Returns the smallest <i>existing</i>
+ node containing the envelope.
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Node.html#find(com.vividsolutions.jts.geom.Envelope)"><B>find(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A>
+<DD>Returns the smallest <i>existing</i>
+ node containing the envelope.
+<DT><A HREF="com/vividsolutions/jts/planargraph/NodeMap.html#find(com.vividsolutions.jts.geom.Coordinate)"><B>find(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph">NodeMap</A>
+<DD>Returns the Node at the given location, or null if no Node was there.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#findCoveredLineEdges()"><B>findCoveredLineEdges()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<DD>Traverse the star of edges, maintaing the current location in the result
+ area at this node (if any).
+<DT><A HREF="com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html#findDifferentPoint(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate)"><B>findDifferentPoint(Coordinate[], Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html" title="class in com.vividsolutions.jts.operation.valid">ConnectedInteriorTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html#findEdge(com.vividsolutions.jts.geom.LineString)"><B>findEdge(LineString)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#findEdge(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>findEdge(Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>Returns the edge whose first two coordinates are p0 and p1
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html#findEdge(java.util.List)"><B>findEdge(List)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer">RightmostEdgeFinder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#findEdgeEnd(com.vividsolutions.jts.geomgraph.Edge)"><B>findEdgeEnd(Edge)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>Returns the EdgeEnd which has edge e as its base edge
+ (MD 18 Feb 2002 - this should return a pair of edges)
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#findEdgeInSameDirection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>findEdgeInSameDirection(Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>Returns the edge which starts at p0 and whose first segment is
+ parallel to p1
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html#findEdgeIndex(com.vividsolutions.jts.geomgraph.Edge)"><B>findEdgeIndex(Edge)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeList</A>
+<DD>If the edge e is already in the list, return its index.
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html#findEdgeRingContaining(com.vividsolutions.jts.operation.polygonize.EdgeRing, java.util.List)"><B>findEdgeRingContaining(EdgeRing, List)</B></A> -
+Static method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A>
+<DD>Find the innermost enclosing shell EdgeRing containing the argument EdgeRing, if any.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html#findEqualEdge(com.vividsolutions.jts.geomgraph.Edge)"><B>findEqualEdge(Edge)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeList</A>
+<DD>If there is an edge equal to e already in the list, return it.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html#findIndex(com.vividsolutions.jts.geomgraph.EdgeEnd)"><B>findIndex(EdgeEnd)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#findNode(com.vividsolutions.jts.geom.Coordinate)"><B>findNode(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>Returns the <A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A> at the given location,
+ or null if no <A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A> was there.
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#findNodesOfDegree(int)"><B>findNodesOfDegree(int)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>Returns all Nodes with the given number of Edges around it.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html#findPtNotNode(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geomgraph.GeometryGraph)"><B>findPtNotNode(Coordinate[], LinearRing, GeometryGraph)</B></A> -
+Static method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid">IsValidOp</A>
+<DD>Find a point from the list of testCoords
+ that is NOT a node in the edge for the list of searchCoords
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#findResultEdges()"><B>findResultEdges()</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer">BufferSubgraph</A>
+<DD>Find all edges whose depths indicates that they are in the result area(s).
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#flip()"><B>flip()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#flip()"><B>flip()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#from"><B>from</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_G_"><!-- --></A><H2>
+<B>G</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util"><B>GeometricShapeFactory</B></A> - class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util">GeometricShapeFactory</A>.<DD>Computes various kinds of common geometric shapes.<DT><A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html#GeometricShapeFactory()"><B>GeometricShapeFactory()</B></A> -
+Constructor for class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util">GeometricShapeFactory</A>
+<DD>Create a shape factory which will create shapes using the default
+ <A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html#GeometricShapeFactory(com.vividsolutions.jts.geom.GeometryFactory)"><B>GeometricShapeFactory(GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util">GeometricShapeFactory</A>
+<DD>Create a shape factory which will create shapes using the given
+ <A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><B>Geometry</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>.<DD>The base class for all geometric objects.<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#Geometry(com.vividsolutions.jts.geom.GeometryFactory)"><B>Geometry(GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Creates a new <tt>Geometry</tt> via the specified GeometryFactory.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><B>GeometryCollection</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>.<DD>Basic implementation of <code>GeometryCollection</code>.<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#GeometryCollection(com.vividsolutions.jts.geom.Geometry[], com.vividsolutions.jts.geom.PrecisionModel, int)"><B>GeometryCollection(Geometry[], PrecisionModel, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#GeometryCollection(com.vividsolutions.jts.geom.Geometry[], com.vividsolutions.jts.geom.GeometryFactory)"><B>GeometryCollection(Geometry[], GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom"><B>GeometryCollectionIterator</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom">GeometryCollectionIterator</A>.<DD>Iterates over all <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s in a <A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A>.<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollectionIterator.html#GeometryCollectionIterator(com.vividsolutions.jts.geom.Geometry)"><B>GeometryCollectionIterator(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom">GeometryCollectionIterator</A>
+<DD>Constructs an iterator over the given <code>GeometryCollection</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom"><B>GeometryComponentFilter</B></A> - interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A>.<DD><code>Geometry</code> classes support the concept of applying
+ a <code>GeometryComponentFilter</code>
+ filter to the <code>Geometry</code>.<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util"><B>GeometryEditor</B></A> - class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor</A>.<DD>Supports creating a new <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> which is a modification of an existing one.<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.html#GeometryEditor()"><B>GeometryEditor()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor</A>
+<DD>Creates a new GeometryEditor object which will create
+ an edited <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> with the same <A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A> as the input Geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.html#GeometryEditor(com.vividsolutions.jts.geom.GeometryFactory)"><B>GeometryEditor(GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor</A>
+<DD>Creates a new GeometryEditor object which will create
+ the edited Geometry with the given <A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util"><B>GeometryEditor.CoordinateOperation</B></A> - class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor.CoordinateOperation</A>.<DD>A <CODE>GeometryEditorOperation</CODE> which modifies the coordinate list of a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html#GeometryEditor.CoordinateOperation()"><B>GeometryEditor.CoordinateOperation()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util">GeometryEditor.CoordinateOperation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util"><B>GeometryEditor.GeometryEditorOperation</B></A> - interface com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util">GeometryEditor.GeometryEditorOperation</A>.<DD>A interface which specifies an edit operation for Geometries.<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><B>GeometryFactory</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>.<DD>Supplies a set of utility methods for building Geometry objects from lists
+ of Coordinates.<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#GeometryFactory(com.vividsolutions.jts.geom.PrecisionModel, int, com.vividsolutions.jts.geom.CoordinateSequenceFactory)"><B>GeometryFactory(PrecisionModel, int, CoordinateSequenceFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Constructs a GeometryFactory that generates Geometries having the given
+ PrecisionModel, spatial-reference ID, and CoordinateSequence implementation.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#GeometryFactory(com.vividsolutions.jts.geom.CoordinateSequenceFactory)"><B>GeometryFactory(CoordinateSequenceFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Constructs a GeometryFactory that generates Geometries having the given
+ CoordinateSequence implementation, a double-precision floating PrecisionModel and a
+ spatial-reference ID of 0.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#GeometryFactory(com.vividsolutions.jts.geom.PrecisionModel)"><B>GeometryFactory(PrecisionModel)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Constructs a GeometryFactory that generates Geometries having the given
+ <A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A> and the default CoordinateSequence
+ implementation.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#GeometryFactory(com.vividsolutions.jts.geom.PrecisionModel, int)"><B>GeometryFactory(PrecisionModel, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Constructs a GeometryFactory that generates Geometries having the given
+ <A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A> and spatial-reference ID, and the default CoordinateSequence
+ implementation.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#GeometryFactory()"><B>GeometryFactory()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Constructs a GeometryFactory that generates Geometries having a floating
+ PrecisionModel and a spatial-reference ID of 0.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom"><B>GeometryFilter</B></A> - interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A>.<DD><code>GeometryCollection</code> classes support the concept of
+ applying a <code>GeometryFilter</code> to the <code>Geometry</code>.<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><B>GeometryGraph</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>.<DD>A GeometryGraph is a graph that models a given Geometry<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html#GeometryGraph(int, com.vividsolutions.jts.geom.Geometry)"><B>GeometryGraph(int, Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html#GeometryGraph(int, com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><B>GeometryGraph(int, Geometry, BoundaryNodeRule)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation"><B>GeometryGraphOperation</B></A> - class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A>.<DD>The base class for operations that require <A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>GeometryGraph</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html#GeometryGraphOperation(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>GeometryGraphOperation(Geometry, Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html#GeometryGraphOperation(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><B>GeometryGraphOperation(Geometry, Geometry, BoundaryNodeRule)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html#GeometryGraphOperation(com.vividsolutions.jts.geom.Geometry)"><B>GeometryGraphOperation(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance"><B>GeometryLocation</B></A> - class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance">GeometryLocation</A>.<DD>Represents the location of a point on a Geometry.<DT><A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html#GeometryLocation(com.vividsolutions.jts.geom.Geometry, int, com.vividsolutions.jts.geom.Coordinate)"><B>GeometryLocation(Geometry, int, Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance">GeometryLocation</A>
+<DD>Constructs a GeometryLocation specifying a point on a geometry, as well as the
+ segment that the point is on (or INSIDE_AREA if the point is not on a segment).
+<DT><A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html#GeometryLocation(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Coordinate)"><B>GeometryLocation(Geometry, Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance">GeometryLocation</A>
+<DD>Constructs a GeometryLocation specifying a point inside an area geometry.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>GeometrySnapper</B></A> - class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">GeometrySnapper</A>.<DD>Snaps the vertices and segments of a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> to another Geometry's vertices.<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html#GeometrySnapper(com.vividsolutions.jts.geom.Geometry)"><B>GeometrySnapper(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">GeometrySnapper</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util"><B>GeometryTransformer</B></A> - class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>.<DD>A framework for processes which transform an input <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> into
+ an output <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>, possibly changing its structure and type(s).<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html#GeometryTransformer()"><B>GeometryTransformer()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph"><B>GraphComponent</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>.<DD>A GraphComponent is the parent class for the objects'
+ that form a graph.<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#GraphComponent()"><B>GraphComponent()</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#GraphComponent(com.vividsolutions.jts.geomgraph.Label)"><B>GraphComponent(Label)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><B>GraphComponent</B></A> - class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>.<DD>The base class for all graph component classes.<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html#GraphComponent()"><B>GraphComponent()</B></A> -
+Constructor for class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#geometries"><B>geometries</B></A> -
+Variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>Internal representation of this <code>GeometryCollection</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#geometryChanged()"><B>geometryChanged()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Notifies this Geometry that its Coordinates have been changed by an external
+ party (using a CoordinateFilter, for example).
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#geometryChangedAction()"><B>geometryChangedAction()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Notifies this Geometry that its Coordinates have been changed by an external
+ party.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#geometryFactory"><B>geometryFactory</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#get(int, int)"><B>get(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Returns the value of one of this <code>IntersectionMatrix</code>s
+ elements.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html#get(int)"><B>get(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeList</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#get(int)"><B>get(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#getAngle()"><B>getAngle()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Returns the angle that the start of this DirectedEdge makes with the
+ positive x-axis, in radians.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getArea()"><B>getArea()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the area of this <code>Geometry</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#getArea()"><B>getArea()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>Returns the area of this <code>GeometryCollection</code>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#getArea()"><B>getArea()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>Returns the area of this <code>Polygon</code>
+<DT><A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html#getArgGeometry(int)"><B>getArgGeometry(int)</B></A> -
+Method in class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html#getBit(int)"><B>getBit(int)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBits.html#getBit(long, int)"><B>getBit(long, int)</B></A> -
+Static method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision">CommonBits</A>
+<DD>Extracts the i'th bit of a bitstring.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getBoundary()"><B>getBoundary()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the boundary, or an empty geometry of appropriate dimension
+ if this <code>Geometry</code> is empty.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#getBoundary()"><B>getBoundary()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#getBoundary()"><B>getBoundary()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>Gets the boundary of this geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/MultiLineString.html#getBoundary()"><B>getBoundary()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A>
+<DD>Gets the boundary of this geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPoint.html#getBoundary()"><B>getBoundary()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A>
+<DD>Gets the boundary of this geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPolygon.html#getBoundary()"><B>getBoundary()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A>
+<DD>Computes the boundary of this geometry
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#getBoundary()"><B>getBoundary()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>Gets the boundary of this geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#getBoundary()"><B>getBoundary()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>Computes the boundary of this geometry
+<DT><A HREF="com/vividsolutions/jts/operation/BoundaryOp.html#getBoundary()"><B>getBoundary()</B></A> -
+Method in class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/BoundaryOp.html" title="class in com.vividsolutions.jts.operation">BoundaryOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getBoundaryDimension()"><B>getBoundaryDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the dimension of this <code>Geometry</code>s inherent boundary.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#getBoundaryDimension()"><B>getBoundaryDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#getBoundaryDimension()"><B>getBoundaryDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LinearRing.html#getBoundaryDimension()"><B>getBoundaryDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>
+<DD>Returns <code>Dimension.FALSE</code>, since by definition LinearRings do
+ not have a boundary.
+<DT><A HREF="com/vividsolutions/jts/geom/MultiLineString.html#getBoundaryDimension()"><B>getBoundaryDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPoint.html#getBoundaryDimension()"><B>getBoundaryDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPolygon.html#getBoundaryDimension()"><B>getBoundaryDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#getBoundaryDimension()"><B>getBoundaryDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#getBoundaryDimension()"><B>getBoundaryDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html#getBoundaryNodeRule()"><B>getBoundaryNodeRule()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html#getBoundaryNodes()"><B>getBoundaryNodes()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html#getBoundaryNodes(int)"><B>getBoundaryNodes(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph">NodeMap</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html#getBoundaryPoints()"><B>getBoundaryPoints()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html#getBounds()"><B>getBounds()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/Boundable.html#getBounds()"><B>getBounds()</B></A> -
+Method in interface com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A>
+<DD>Returns a representation of space that encloses this Boundable, preferably
+ not much bigger than this Boundable's boundary yet fast to test for intersection
+ with the bounds of other Boundables.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/ItemBoundable.html#getBounds()"><B>getBounds()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree">ItemBoundable</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Key.html#getCentre()"><B>getCentre()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree">Key</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/Interval.html#getCentre()"><B>getCentre()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/CentroidArea.html#getCentroid()"><B>getCentroid()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidArea.html" title="class in com.vividsolutions.jts.algorithm">CentroidArea</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/CentroidLine.html#getCentroid()"><B>getCentroid()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidLine.html" title="class in com.vividsolutions.jts.algorithm">CentroidLine</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/CentroidPoint.html#getCentroid()"><B>getCentroid()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm">CentroidPoint</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getCentroid()"><B>getCentroid()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Computes the centroid of this <code>Geometry</code>.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html#getChainStartIndices(com.vividsolutions.jts.geom.Coordinate[])"><B>getChainStartIndices(Coordinate[])</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainIndexer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html#getChainStartIndices(com.vividsolutions.jts.geom.Coordinate[])"><B>getChainStartIndices(Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainBuilder</A>
+<DD>Return an array containing lists of start/end indexes of the monotone chains
+ for the given list of coordinates.
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html#getChains(com.vividsolutions.jts.geom.Coordinate[])"><B>getChains(Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html#getChains(com.vividsolutions.jts.geom.Coordinate[], java.lang.Object)"><B>getChains(Coordinate[], Object)</B></A> -
+Static method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainBuilder</A>
+<DD>Return a list of the <A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><CODE>MonotoneChain</CODE></A>s
+ for the given list of coordinates.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html#getChildBoundables()"><B>getChildBoundables()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A>
+<DD>Returns either child AbstractNodes, or if this is a leaf node, real data (wrapped
+ in ItemBoundables).
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#getCollapsedEdge()"><B>getCollapsedEdge()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBits.html#getCommon()"><B>getCommon()</B></A> -
+Method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision">CommonBits</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBitsRemover.html#getCommonCoordinate()"><B>getCommonCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision">CommonBitsRemover</A>
+<DD>The common bits of the Coordinates in the supplied Geometries.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getComparator()"><B>getComparator()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html#getComparator()"><B>getComparator()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree">SIRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/STRtree.html#getComparator()"><B>getComparator()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearIterator.html#getComponentIndex()"><B>getComponentIndex()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref">LinearIterator</A>
+<DD>The component index of the vertex the iterator is currently at.
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#getComponentIndex()"><B>getComponentIndex()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Gets the component index for this location.
+<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html#getComponentWithVisitedState(java.util.Iterator, boolean)"><B>getComponentWithVisitedState(Iterator, boolean)</B></A> -
+Static method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<DD>Finds the first <A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><CODE>GraphComponent</CODE></A> in a <CODE>Iterator</CODE> set
+ which has the specified visited state.
+<DT><A HREF="com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html#getConnectedSubgraphs()"><B>getConnectedSubgraphs()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.algorithm.<A HREF="com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html" title="class in com.vividsolutions.jts.planargraph.algorithm">ConnectedSubgraphFinder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html#getContext()"><B>getContext()</B></A> -
+Method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html#getContext()"><B>getContext()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<DD>Gets the user-defined data for this component.
+<DT><A HREF="com/vividsolutions/jts/algorithm/ConvexHull.html#getConvexHull()"><B>getConvexHull()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm">ConvexHull</A>
+<DD>Returns a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> that represents the convex hull of the input
+ geometry.
+<DT><A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateList.html#getCoordinate(int)"><B>getCoordinate(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">CoordinateList</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinate(int)"><B>getCoordinate(int)</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>Returns (possibly a copy of) the i'th coordinate in this sequence.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinate(int, com.vividsolutions.jts.geom.Coordinate)"><B>getCoordinate(int, Coordinate)</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>Copies the i'th coordinate in the sequence to the supplied
+ <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns a vertex of this <code>Geometry</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#getCoordinate(int)"><B>getCoordinate(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPoint.html#getCoordinate(int)"><B>getCoordinate(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A>
+<DD>Returns the <code>Coordinate</code> at the given position.
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/TopologyException.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#getCoordinate(int)"><B>getCoordinate(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>Get the Coordinate with index i.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#getCoordinate(int, com.vividsolutions.jts.geom.Coordinate)"><B>getCoordinate(int, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinate(int)"><B>getCoordinate(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinate(int, com.vividsolutions.jts.geom.Coordinate)"><B>getCoordinate(int, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#getCoordinate(int)"><B>getCoordinate(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#getCoordinate(int)"><B>getCoordinate(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Node.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#getCoordinate(com.vividsolutions.jts.geom.Geometry)"><B>getCoordinate(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Gets the <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> along the
+ given linear <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> which is
+ referenced by this location.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentString.html#getCoordinate(int)"><B>getCoordinate(int)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer">RightmostEdgeFinder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance">GeometryLocation</A>
+<DD>Returns the location.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html" title="class in com.vividsolutions.jts.operation.valid">ConnectedInteriorTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/RepeatedPointTester.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid">RepeatedPointTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Returns the location of this error (on the <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> containing the error).
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Returns the coordinate of the from-node.
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A>
+<DD>Returns the coordinate for the node at wich this star is based
+<DT><A HREF="com/vividsolutions/jts/planargraph/Node.html#getCoordinate()"><B>getCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A>
+<DD>Returns the location of this Node.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#getCoordinateCopy(int)"><B>getCoordinateCopy(int)</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>Returns a copy of the i'th coordinate in this sequence.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#getCoordinateCopy(int)"><B>getCoordinateCopy(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>Get a copy of the Coordinate with index i.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinateCopy(int)"><B>getCoordinateCopy(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#getCoordinateInternal(int)"><B>getCoordinateInternal(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#getCoordinateInternal(int)"><B>getCoordinateInternal(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getCoordinateInternal(int)"><B>getCoordinateInternal(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>Returns a Coordinate representation of the specified coordinate, by always
+ building a new Coordinate object
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#getCoordinateN(int)"><B>getCoordinateN(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#getCoordinateSequence()"><B>getCoordinateSequence()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#getCoordinateSequence()"><B>getCoordinateSequence()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#getCoordinateSequenceFactory()"><B>getCoordinateSequenceFactory()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getCoordinates()"><B>getCoordinates()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns this <code>Geometry</code> s vertices.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#getCoordinates()"><B>getCoordinates()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>Collects all coordinates of all subgeometries into an Array.
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#getCoordinates()"><B>getCoordinates()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#getCoordinates()"><B>getCoordinates()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#getCoordinates()"><B>getCoordinates()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#getCoordinates()"><B>getCoordinates()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html#getCoordinates()"><B>getCoordinates()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html#getCoordinates()"><B>getCoordinates()</B></A> -
+Method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A>
+<DD>Return the subsequence of coordinates forming this chain.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentString.html#getCoordinates()"><B>getCoordinates()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html#getCoordinates(com.vividsolutions.jts.geom.Geometry)"><B>getCoordinates(Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html" title="class in com.vividsolutions.jts.operation.distance">ConnectedElementPointFilter</A>
+<DD>Returns a list containing a Coordinate from each Polygon, LineString, and Point
+ found inside the specified geometry.
+<DT><A HREF="com/vividsolutions/jts/util/CoordinateArrayFilter.html#getCoordinates()"><B>getCoordinates()</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util">CoordinateArrayFilter</A>
+<DD>Returns the gathered <code>Coordinate</code>s.
+<DT><A HREF="com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html#getCoordinates()"><B>getCoordinates()</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util">UniqueCoordinateArrayFilter</A>
+<DD>Returns the gathered <code>Coordinate</code>s.
+<DT><A HREF="com/vividsolutions/jts/util/CoordinateCountFilter.html#getCount()"><B>getCount()</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util">CoordinateCountFilter</A>
+<DD>Returns the result of the filtering.
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html#getCurves()"><B>getCurves()</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveSetBuilder</A>
+<DD>Computes the set of raw offset curves for the buffer.
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html#getCutEdges()"><B>getCutEdges()</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>
+<DD>Get the list of cut edges found during polygonization.
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html#getDangles()"><B>getDangles()</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>
+<DD>Get the list of dangling lines found during polygonization.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentString.html#getData()"><B>getData()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>
+<DD>Gets the user-defined data for this segment string.
+<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html#getData()"><B>getData()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<DD>Gets the user-defined data for this component.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getDegree()"><B>getDegree()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#getDegree()"><B>getDegree()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A>
+<DD>Returns the number of edges around the Node associated with this DirectedEdgeStar.
+<DT><A HREF="com/vividsolutions/jts/planargraph/Node.html#getDegree()"><B>getDegree()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A>
+<DD>Returns the number of edges around this Node.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#getDeleteEventIndex()"><B>getDeleteEventIndex()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#getDeleteEventIndex()"><B>getDeleteEventIndex()</B></A> -
+Method in class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Depth.html#getDelta(int)"><B>getDelta(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Depth.html#getDepth(int, int)"><B>getDepth(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#getDepth(int)"><B>getDepth(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#getDepth()"><B>getDepth()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html#getDepth(com.vividsolutions.jts.geom.Coordinate)"><B>getDepth(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html" title="class in com.vividsolutions.jts.operation.buffer">SubgraphDepthLocater</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#getDepthDelta()"><B>getDepthDelta()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#getDepthDelta()"><B>getDepthDelta()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>The depthDelta is the change in depth as an edge is crossed from R to L
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#getDeterminant()"><B>getDeterminant()</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Computes the determinant of the transformation matrix.
+<DT><A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html#getDiameter()"><B>getDiameter()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm">MinimumDiameter</A>
+<DD>Gets a <A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> which is a minimum diameter
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#getDimension()"><B>getDimension()</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>Returns the dimension (number of ordinates in each coordinate)
+ for this sequence.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getDimension()"><B>getDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the dimension of this <code>Geometry</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#getDimension()"><B>getDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#getDimension()"><B>getDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiLineString.html#getDimension()"><B>getDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPoint.html#getDimension()"><B>getDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPolygon.html#getDimension()"><B>getDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#getDimension()"><B>getDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#getDimension()"><B>getDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#getDimension()"><B>getDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getDimension()"><B>getDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#getDimension()"><B>getDimension()</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/Edge.html#getDirEdge(int)"><B>getDirEdge(int)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A>
+<DD>Returns one of the DirectedEdges associated with this Edge.
+<DT><A HREF="com/vividsolutions/jts/planargraph/Edge.html#getDirEdge(com.vividsolutions.jts.planargraph.Node)"><B>getDirEdge(Node)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A>
+<DD>Returns the <A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A> that starts from the given node, or null if the
+ node is not one of the two nodes associated with this Edge.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#getDirectedCoordinate()"><B>getDirectedCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#getDirectedEdges()"><B>getDirectedEdges()</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer">BufferSubgraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#getDirectionPt()"><B>getDirectionPt()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Returns a point to which an imaginary line is drawn from the from-node to
+ specify this DirectedEdge's orientation.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.html#getDissolved()"><B>getDissolved()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding">SegmentStringDissolver</A>
+<DD>Gets the collection of dissolved (i.e.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html#getDistance()"><B>getDistance()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html#getDouble()"><B>getDouble()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderValues.html#getDouble(byte[], int)"><B>getDouble(byte[], int)</B></A> -
+Static method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io">ByteOrderValues</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#getDx()"><B>getDx()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#getDy()"><B>getDy()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#getEdge()"><B>getEdge()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#getEdge()"><B>getEdge()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html#getEdge()"><B>getEdge()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding">SegmentNodeList</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html#getEdge()"><B>getEdge()</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer">RightmostEdgeFinder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#getEdge()"><B>getEdge()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Returns this DirectedEdge's parent Edge, or null if it has none.
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#getEdgeDirection()"><B>getEdgeDirection()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Returns whether the direction of the parent Edge (if any) is the same as that
+ of this Directed Edge.
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#getEdgeDistance(int, int)"><B>getEdgeDistance(int, int)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>Computes the "edge distance" of an intersection point along the specified input line segment.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#getEdgeEnds()"><B>getEdgeEnds()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#getEdgeEnds()"><B>getEdgeEnds()</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundle</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#getEdgeIntersectionList()"><B>getEdgeIntersectionList()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#getEdgeIterator()"><B>getEdgeIterator()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#getEdgeRing()"><B>getEdgeRing()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getEdges()"><B>getEdges()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html#getEdges()"><B>getEdges()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeList</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#getEdges()"><B>getEdges()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>Returns the list of DirectedEdges that make up this EdgeRing
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Node.html#getEdges()"><B>getEdges()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#getEdges()"><B>getEdges()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A>
+<DD>Returns the DirectedEdges, in ascending order by angle with the positive x-axis.
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#getEdges()"><B>getEdges()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>Returns the Edges that have been added to this PlanarGraph
+<DT><A HREF="com/vividsolutions/jts/planargraph/Node.html#getEdgesBetween(com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.planargraph.Node)"><B>getEdgesBetween(Node, Node)</B></A> -
+Static method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A>
+<DD>Returns all Edges that connect the two nodes (which are assumed to be different).
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html#getEndIndex()"><B>getEndIndex()</B></A> -
+Method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html#getEndIndex()"><B>getEndIndex()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LengthIndexedLine</A>
+<DD>Returns the index of the end of the line
+<DT><A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html#getEndIndex()"><B>getEndIndex()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LocationIndexedLine</A>
+<DD>Returns the index of the end of the line
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#getEndLocation(com.vividsolutions.jts.geom.Geometry)"><B>getEndLocation(Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Gets a location which refers to the end of a linear <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#getEndPoint()"><B>getEndPoint()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getEnvelope()"><B>getEnvelope()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns this <code>Geometry</code>s bounding box.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#getEnvelope()"><B>getEnvelope()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html#getEnvelope()"><B>getEnvelope()</B></A> -
+Method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Key.html#getEnvelope()"><B>getEnvelope()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree">Key</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Node.html#getEnvelope()"><B>getEnvelope()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#getEnvelope()"><B>getEnvelope()</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer">BufferSubgraph</A>
+<DD>Computes the envelope of the edges in the subgraph.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getEnvelopeInternal()"><B>getEnvelopeInternal()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the minimum and maximum x and y values in this <code>Geometry</code>
+ , or a null <code>Envelope</code> if this <code>Geometry</code> is empty.
+<DT><A HREF="com/vividsolutions/jts/noding/FastNodingValidator.html#getErrorMessage()"><B>getErrorMessage()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/FastNodingValidator.html" title="class in com.vividsolutions.jts.noding">FastNodingValidator</A>
+<DD>Returns an error message indicating the segments containing
+ the intersection.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#getErrorType()"><B>getErrorType()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Gets the type of this error.
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html#getExponent()"><B>getExponent()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>
+<DD>Determines the exponent for the number
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#getExteriorRing()"><B>getExteriorRing()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getFactory()"><B>getFactory()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Gets the factory which contains the context in which this geometry was created.
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#getFromNode()"><B>getFromNode()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Returns the node from which this DirectedEdge leaves.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html#getGeometry()"><B>getGeometry()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#getGeometry()"><B>getGeometry()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref">LinearGeometryBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html#getGeometryComponent()"><B>getGeometryComponent()</B></A> -
+Method in class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance">GeometryLocation</A>
+<DD>Returns the geometry associated with this location.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#getGeometryCount()"><B>getGeometryCount()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getGeometryN(int)"><B>getGeometryN(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns an element <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> from a <A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A>
+ (or <code>this</code>, if the geometry is not a collection).
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#getGeometryN(int)"><B>getGeometryN(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getGeometryType()"><B>getGeometryType()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the name of this object's <code>com.vivid.jts.geom</code>
+ interface.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#getGeometryType()"><B>getGeometryType()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#getGeometryType()"><B>getGeometryType()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LinearRing.html#getGeometryType()"><B>getGeometryType()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiLineString.html#getGeometryType()"><B>getGeometryType()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPoint.html#getGeometryType()"><B>getGeometryType()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPolygon.html#getGeometryType()"><B>getGeometryType()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#getGeometryType()"><B>getGeometryType()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#getGeometryType()"><B>getGeometryType()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#getGraph()"><B>getGraph()</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#getHeight()"><B>getHeight()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Returns the difference between the maximum and minimum y values.
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html#getId()"><B>getId()</B></A> -
+Method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/MCIndexNoder.html#getIndex()"><B>getIndex()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding">MCIndexNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#getIndex(com.vividsolutions.jts.planargraph.Edge)"><B>getIndex(Edge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A>
+<DD>Returns the zero-based index of the given Edge, after sorting in ascending order
+ by angle with the positive x-axis.
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#getIndex(com.vividsolutions.jts.planargraph.DirectedEdge)"><B>getIndex(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A>
+<DD>Returns the zero-based index of the given DirectedEdge, after sorting in ascending order
+ by angle with the positive x-axis.
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#getIndex(int)"><B>getIndex(int)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A>
+<DD>Returns the remainder when i is divided by the number of edges in this
+ DirectedEdgeStar.
+<DT><A HREF="com/vividsolutions/jts/planargraph/Node.html#getIndex(com.vividsolutions.jts.planargraph.Edge)"><B>getIndex(Edge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A>
+<DD>Returns the zero-based index of the given Edge, after sorting in ascending order
+ by angle with the positive x-axis.
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineSegment.html#getIndex()"><B>getIndex()</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify">TaggedLineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#getIndexAlongSegment(int, int)"><B>getIndexAlongSegment(int, int)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>Computes the index of the intIndex'th intersection point in the direction of
+ a specified input line segment
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html#getInputGeometry()"><B>getInputGeometry()</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<DD>Utility function to make input geometry available
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#getInsertEvent()"><B>getInsertEvent()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#getInsertEvent()"><B>getInsertEvent()</B></A> -
+Method in class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderValues.html#getInt(byte[], int)"><B>getInt(byte[], int)</B></A> -
+Static method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io">ByteOrderValues</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html#getInteriorIntersection()"><B>getInteriorIntersection()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding">InteriorIntersectionFinder</A>
+<DD>Gets the computed location of the intersection.
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionFinderAdder.html#getInteriorIntersections()"><B>getInteriorIntersections()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionFinderAdder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html#getInteriorPoint()"><B>getInteriorPoint()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointArea</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/InteriorPointLine.html#getInteriorPoint()"><B>getInteriorPoint()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointLine.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointLine</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/InteriorPointPoint.html#getInteriorPoint()"><B>getInteriorPoint()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointPoint.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointPoint</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getInteriorPoint()"><B>getInteriorPoint()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Computes an interior point of this <code>Geometry</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#getInteriorRingN(int)"><B>getInteriorRingN(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html#getIntersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>getIntersection(Coordinate, Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html" title="class in com.vividsolutions.jts.algorithm">CentralEndpointIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html#getIntersection()"><B>getIntersection()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html" title="class in com.vividsolutions.jts.algorithm">CentralEndpointIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#getIntersection(int)"><B>getIntersection(int)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>Returns the intIndex'th intersection point
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#getIntersectionAlongSegment(int, int)"><B>getIntersectionAlongSegment(int, int)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>Computes the intIndex'th intersection point in the direction of
+ a specified input line segment
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateOp.html#getIntersectionMatrix()"><B>getIntersectionMatrix()</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateOp.html" title="class in com.vividsolutions.jts.operation.relate">RelateOp</A>
+<DD>Gets the IntersectionMatrix for the spatial relationship
+ between the input geometries.
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#getIntersectionNum()"><B>getIntersectionNum()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>Returns the number of intersection points found.
+<DT><A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html#getIntersectionSegments()"><B>getIntersectionSegments()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding">InteriorIntersectionFinder</A>
+<DD>Gets the endpoints of the intersecting segments.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getIntersectsOp()"><B>getIntersectsOp()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html#getIntersectsOp()"><B>getIntersectsOp()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree">SIRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/STRtree.html#getIntersectsOp()"><B>getIntersectsOp()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Key.html#getInterval()"><B>getInterval()</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree">Key</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Node.html#getInterval()"><B>getInterval()</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html#getInvalidLocation()"><B>getInvalidLocation()</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.validate.<A HREF="com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">OverlayResultValidator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html#getInvalidPoint()"><B>getInvalidPoint()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html#getInvalidPoint()"><B>getInvalidPoint()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid">ConsistentAreaTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html#getInvalidRingLines()"><B>getInvalidRingLines()</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>
+<DD>Get the list of lines forming invalid rings found during polygonization.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#getInverse()"><B>getInverse()</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Computes the inverse of this transformation, if one
+ exists.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/ItemBoundable.html#getItem()"><B>getItem()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree">ItemBoundable</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html#getItem()"><B>getItem()</B></A> -
+Method in class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/ArrayListVisitor.html#getItems()"><B>getItems()</B></A> -
+Method in class com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/ArrayListVisitor.html" title="class in com.vividsolutions.jts.index">ArrayListVisitor</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html#getItems()"><B>getItems()</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html#getItems()"><B>getItems()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#getLabel()"><B>getLabel()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#getLabel()"><B>getLabel()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#getLabel()"><B>getLabel()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#getLabel()"><B>getLabel()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html#getLabel()"><B>getLabel()</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize">PolygonizeDirectedEdge</A>
+<DD>Returns the identifier attached to this directed edge.
+<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#getLabel()"><B>getLabel()</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundle</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#getLastCoordinate()"><B>getLastCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref">LinearGeometryBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html#getLength()"><B>getLength()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm">MinimumDiameter</A>
+<DD>Gets the length of the minimum diameter of the input Geometry
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getLength()"><B>getLength()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the length of this <code>Geometry</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#getLength()"><B>getLength()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#getLength()"><B>getLength()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Computes the length of the line segment.
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#getLength()"><B>getLength()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>Returns the length of this <code>LineString</code>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#getLength()"><B>getLength()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>Returns the perimeter of this <code>Polygon</code>
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthLocationMap.html#getLength(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.linearref.LinearLocation)"><B>getLength(Geometry, LinearLocation)</B></A> -
+Static method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref">LengthLocationMap</A>
+<DD>Computes the length for a given <A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A>
+ on a linear <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthLocationMap.html#getLength(com.vividsolutions.jts.linearref.LinearLocation)"><B>getLength(LinearLocation)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref">LengthLocationMap</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Key.html#getLevel()"><B>getLevel()</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree">Key</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Key.html#getLevel()"><B>getLevel()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree">Key</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html#getLevel()"><B>getLevel()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree">AbstractNode</A>
+<DD>Returns 0 if this node is a leaf, 1 if a parent of a leaf, and so on; the
+ root node will have the highest level
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearIterator.html#getLine()"><B>getLine()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref">LinearIterator</A>
+<DD>Gets the <A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> component the iterator is current at.
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html#getLine()"><B>getLine()</B></A> -
+Method in class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeEdge</A>
+<DD>Returns the LineString specifying the vertices of this edge.
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html#getLineCurve(com.vividsolutions.jts.geom.Coordinate[], double)"><B>getLineCurve(Coordinate[], double)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveBuilder</A>
+<DD>This method handles single points as well as lines.
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html#getLineIntersector()"><B>getLineIntersector()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html#getLineSegment(int, com.vividsolutions.jts.geom.LineSegment)"><B>getLineSegment(int, LineSegment)</B></A> -
+Method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html#getLineString()"><B>getLineString()</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A>
+<DD>Gets the coordinates for this ring as a <A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#getLinearRing()"><B>getLinearRing()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/LinearComponentExtracter.html#getLines(com.vividsolutions.jts.geom.Geometry)"><B>getLines(Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util">LinearComponentExtracter</A>
+<DD>Extracts the linear components from a single geometry.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Depth.html#getLocation(int, int)"><B>getLocation(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#getLocation(int, int)"><B>getLocation(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#getLocation(int)"><B>getLocation(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthLocationMap.html#getLocation(com.vividsolutions.jts.geom.Geometry, double)"><B>getLocation(Geometry, double)</B></A> -
+Static method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref">LengthLocationMap</A>
+<DD>Computes the <A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A> for a
+ given length along a linear <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthLocationMap.html#getLocation(double)"><B>getLocation(double)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref">LengthLocationMap</A>
+<DD>Compute the <A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A> corresponding to a length.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html#getLocation(com.vividsolutions.jts.geom.Coordinate)"><B>getLocation(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.validate.<A HREF="com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">FuzzyPointLocator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#getLocations()"><B>getLocations()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html#getLocations(com.vividsolutions.jts.geom.Geometry)"><B>getLocations(Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html" title="class in com.vividsolutions.jts.operation.distance">ConnectedElementLocationFilter</A>
+<DD>Returns a list containing a point from each Polygon, LineString, and Point
+ found inside the specified geometry.
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderValues.html#getLong(byte[], int)"><B>getLong(byte[], int)</B></A> -
+Static method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io">ByteOrderValues</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/JTSVersion.html#getMajor()"><B>getMajor()</B></A> -
+Method in class com.vividsolutions.jts.<A HREF="com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts">JTSVersion</A>
+<DD>Gets the major number of the release version.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#getMatrixEntries()"><B>getMatrixEntries()</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Gets an array containing the entries
+ of the transformation matrix.
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#getMax()"><B>getMax()</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html#getMax()"><B>getMax()</B></A> -
+Method in class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#getMaxNodeDegree()"><B>getMaxNodeDegree()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#getMaxX()"><B>getMaxX()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Returns the <code>Envelope</code>s maximum x-value.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html#getMaxX(int)"><B>getMaxX(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html#getMaxX()"><B>getMaxX()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#getMaxY()"><B>getMaxY()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Returns the <code>Envelope</code>s maximum y-value.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#getMaximumSegmentIndex()"><B>getMaximumSegmentIndex()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#getMaximumSignificantDigits()"><B>getMaximumSignificantDigits()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>Returns the maximum number of significant digits provided by this
+ precision model.
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineMerger.html#getMergedLineStrings()"><B>getMergedLineStrings()</B></A> -
+Method in class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMerger</A>
+<DD>Returns the LineStrings built by the merging process.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#getMessage()"><B>getMessage()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Gets an error message describing this error.
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#getMin()"><B>getMin()</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html#getMin()"><B>getMin()</B></A> -
+Method in class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#getMinEdgeRing()"><B>getMinEdgeRing()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#getMinX()"><B>getMinX()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Returns the <code>Envelope</code>s minimum x-value.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html#getMinX(int)"><B>getMinX(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html#getMinX()"><B>getMinX()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#getMinY()"><B>getMinY()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Returns the <code>Envelope</code>s minimum y-value.
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html#getMinimumSize()"><B>getMinimumSize()</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/JTSVersion.html#getMinor()"><B>getMinor()</B></A> -
+Method in class com.vividsolutions.jts.<A HREF="com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts">JTSVersion</A>
+<DD>Gets the minor number of the release version.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#getMonotoneChainEdge()"><B>getMonotoneChainEdge()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/MCIndexNoder.html#getMonotoneChains()"><B>getMonotoneChains()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding">MCIndexNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html#getNestedPoint()"><B>getNestedPoint()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">QuadtreeNestedRingTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html#getNestedPoint()"><B>getNestedPoint()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">SimpleNestedRingTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html#getNestedPoint()"><B>getNestedPoint()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">SweeplineNestedRingTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#getNext()"><B>getNext()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#getNext(com.vividsolutions.jts.geomgraph.DirectedEdge)"><B>getNext(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html#getNext()"><B>getNext()</B></A> -
+Method in class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeDirectedEdge</A>
+<DD>Returns the directed edge that starts at this directed edge's end point, or null
+ if there are zero or multiple directed edges starting there.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html#getNext(com.vividsolutions.jts.geomgraph.DirectedEdge)"><B>getNext(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MaximalEdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html#getNext(com.vividsolutions.jts.geomgraph.DirectedEdge)"><B>getNext(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MinimalEdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html#getNext()"><B>getNext()</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize">PolygonizeDirectedEdge</A>
+<DD>Returns the next directed edge in the EdgeRing that this directed edge is a member
+ of.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html#getNextCW(com.vividsolutions.jts.geomgraph.EdgeEnd)"><B>getNextCW(EdgeEnd)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#getNextEdge(com.vividsolutions.jts.planargraph.DirectedEdge)"><B>getNextEdge(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A>
+<DD>Returns the DirectedEdge on the left-hand side of the given DirectedEdge (which
+ must be a member of this DirectedEdgeStar).
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#getNextMin()"><B>getNextMin()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#getNode()"><B>getNode()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Node.html#getNode(com.vividsolutions.jts.index.bintree.Interval)"><B>getNode(Interval)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A>
+<DD>Returns the subnode containing the envelope.
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Node.html#getNode(com.vividsolutions.jts.geom.Envelope)"><B>getNode(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A>
+<DD>Returns the subquad containing the envelope.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getNodeCapacity()"><B>getNodeCapacity()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>Returns the maximum number of child nodes that a node may have
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#getNodeIterator()"><B>getNodeIterator()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html#getNodeIterator()"><B>getNodeIterator()</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate">RelateNodeGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentString.html#getNodeList()"><B>getNodeList()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html#getNodedEdges()"><B>getNodedEdges()</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html" title="class in com.vividsolutions.jts.operation.overlay">EdgeSetNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/IteratedNoder.html#getNodedSubstrings()"><B>getNodedSubstrings()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding">IteratedNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/MCIndexNoder.html#getNodedSubstrings()"><B>getNodedSubstrings()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding">MCIndexNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/Noder.html#getNodedSubstrings()"><B>getNodedSubstrings()</B></A> -
+Method in interface com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A>
+<DD>Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.
+<DT><A HREF="com/vividsolutions/jts/noding/ScaledNoder.html#getNodedSubstrings()"><B>getNodedSubstrings()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding">ScaledNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentString.html#getNodedSubstrings(java.util.Collection)"><B>getNodedSubstrings(Collection)</B></A> -
+Static method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentString.html#getNodedSubstrings(java.util.Collection, java.util.Collection)"><B>getNodedSubstrings(Collection, Collection)</B></A> -
+Static method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SimpleNoder.html#getNodedSubstrings()"><B>getNodedSubstrings()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SimpleNoder.html" title="class in com.vividsolutions.jts.noding">SimpleNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SinglePassNoder.html#getNodedSubstrings()"><B>getNodedSubstrings()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A>
+<DD>Returns a <CODE>Collection</CODE> of fully noded <CODE>SegmentStrings</CODE>.
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html#getNodedSubstrings()"><B>getNodedSubstrings()</B></A> -
+Method in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexSnapRounder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html#getNodedSubstrings()"><B>getNodedSubstrings()</B></A> -
+Method in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">SimpleSnapRounder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#getNodes()"><B>getNodes()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#getNodes()"><B>getNodes()</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer">BufferSubgraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#getNodes()"><B>getNodes()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html#getNonSimpleLocation()"><B>getNonSimpleLocation()</B></A> -
+Method in class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation">IsSimpleOp</A>
+<DD>Gets a coordinate for the location where the geometry
+ fails to be simple.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getNumGeometries()"><B>getNumGeometries()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the number of <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s in a <A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryCollection</CODE></A>
+ (or 1, if the geometry is not a collection).
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#getNumGeometries()"><B>getNumGeometries()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#getNumInteriorRing()"><B>getNumInteriorRing()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getNumPoints()"><B>getNumPoints()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the count of this <code>Geometry</code>s vertices.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#getNumPoints()"><B>getNumPoints()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#getNumPoints()"><B>getNumPoints()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#getNumPoints()"><B>getNumPoints()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#getNumPoints()"><B>getNumPoints()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#getNumPoints()"><B>getNumPoints()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#getObject()"><B>getObject()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#getOffsetX()"><B>getOffsetX()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD><B>Deprecated.</B> <I>Offsets are no longer used</I>
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#getOffsetY()"><B>getOffsetY()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD><B>Deprecated.</B> <I>Offsets are no longer used</I>
+<DT><A HREF="com/vividsolutions/jts/planargraph/Edge.html#getOppositeNode(com.vividsolutions.jts.planargraph.Node)"><B>getOppositeNode(Node)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A>
+<DD>If <code>node</code> is one of the two nodes associated with this Edge,
+ returns the other node; otherwise returns null.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#getOrdinate(int, int)"><B>getOrdinate(int, int)</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>Returns the ordinate of a coordinate in this sequence.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#getOrdinate(int, int)"><B>getOrdinate(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#getOrdinate(int, int)"><B>getOrdinate(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#getOrdinate(int, int)"><B>getOrdinate(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getOrdinate(int, int)"><B>getOrdinate(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/Node.html#getOutEdges()"><B>getOutEdges()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A>
+<DD>Returns the collection of DirectedEdges that leave this Node.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#getOutgoingDegree()"><B>getOutgoingDegree()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#getOutgoingDegree(com.vividsolutions.jts.geomgraph.EdgeRing)"><B>getOutgoingDegree(EdgeRing)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/Subgraph.html#getParent()"><B>getParent()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph">Subgraph</A>
+<DD>Gets the <A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A> which this subgraph
+ is part of.
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineSegment.html#getParent()"><B>getParent()</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify">TaggedLineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html#getParent()"><B>getParent()</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html#getParentCoordinates()"><B>getParentCoordinates()</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/JTSVersion.html#getPatch()"><B>getPatch()</B></A> -
+Method in class com.vividsolutions.jts.<A HREF="com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts">JTSVersion</A>
+<DD>Gets the patch number of the release version.
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Key.html#getPoint()"><B>getPoint()</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree">Key</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Key.html#getPoint()"><B>getPoint()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree">Key</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#getPointN(int)"><B>getPointN(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/PointExtracter.html#getPoints(com.vividsolutions.jts.geom.Geometry)"><B>getPoints(Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/PointExtracter.html" title="class in com.vividsolutions.jts.geom.util">PointExtracter</A>
+<DD>Returns the Point components from a single geometry.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html#getPoints()"><B>getPoints()</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.validate.<A HREF="com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">OffsetPointGenerator</A>
+<DD>Gets the computed offset points.
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html#getPolygon()"><B>getPolygon()</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A>
+<DD>Computes the <A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A> formed by this ring and any contained holes.
+<DT><A HREF="com/vividsolutions/jts/geom/util/PolygonExtracter.html#getPolygons(com.vividsolutions.jts.geom.Geometry)"><B>getPolygons(Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util">PolygonExtracter</A>
+<DD>Returns the Polygon components from a single geometry.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/PolygonBuilder.html#getPolygons()"><B>getPolygons()</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/PolygonBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">PolygonBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html#getPolygons()"><B>getPolygons()</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>
+<DD>Gets the list of polygons formed by the polygonization.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getPrecisionModel()"><B>getPrecisionModel()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the <code>PrecisionModel</code> used by the <code>Geometry</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#getPrecisionModel()"><B>getPrecisionModel()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Returns the PrecisionModel that Geometries created by this factory
+ will be associated with.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#getProperIntersectionPoint()"><B>getProperIntersectionPoint()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html#getProperIntersectionPoint()"><B>getProperIntersectionPoint()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#getQuadrant()"><B>getQuadrant()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#getQuadrant()"><B>getQuadrant()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Returns 0, 1, 2, or 3, indicating the quadrant in which this DirectedEdge's
+ orientation lies.
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html#getResultCoordinates()"><B>getResultCoordinates()</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html#getResultGeometry(double)"><B>getResultGeometry(double)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer">BufferOp</A>
+<DD>Returns the buffer computed for a geometry for a given buffer distance.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#getResultGeometry(int)"><B>getResultGeometry(int)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html#getResultGeometry(int)"><B>getResultGeometry(int)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapIfNeededOverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html#getResultGeometry(int)"><B>getResultGeometry(int)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapOverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html#getResultGeometry()"><B>getResultGeometry()</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify">DouglasPeuckerSimplifier</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html#getResultGeometry()"><B>getResultGeometry()</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html" title="class in com.vividsolutions.jts.simplify">TopologyPreservingSimplifier</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html#getResultSize()"><B>getResultSize()</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html#getRightmostCoordinate()"><B>getRightmostCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer">BufferSubgraph</A>
+<DD>Gets the rightmost coordinate in the edges of the subgraph
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#getRightmostEdge()"><B>getRightmostEdge()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html#getRing()"><B>getRing()</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A>
+<DD>Returns this ring as a <A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A>, or null if an Exception occurs while
+ creating it (such as a topology problem).
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html#getRingCurve(com.vividsolutions.jts.geom.Coordinate[], int, double)"><B>getRingCurve(Coordinate[], int, double)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveBuilder</A>
+<DD>This method handles the degenerate cases of single points and lines,
+ as well as rings.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#getRoot()"><B>getRoot()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getSRID()"><B>getSRID()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the ID of the Spatial Reference System used by the <code>Geometry</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#getSRID()"><B>getSRID()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html#getSafeEnvelope()"><B>getSafeEnvelope()</B></A> -
+Method in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A>
+<DD>Returns a "safe" envelope that is guaranteed to contain the hot pixel
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#getScale()"><B>getScale()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>Returns the multiplying factor used to obtain a precise coordinate.
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html#getSegment(int)"><B>getSegment(int)</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearIterator.html#getSegmentEnd()"><B>getSegmentEnd()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref">LinearIterator</A>
+<DD>Gets the second <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> of the current segment.
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#getSegmentFraction()"><B>getSegmentFraction()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Gets the segment fraction for this location
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html#getSegmentIndex()"><B>getSegmentIndex()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#getSegmentIndex()"><B>getSegmentIndex()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Gets the segment index for this location
+<DT><A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html#getSegmentIndex()"><B>getSegmentIndex()</B></A> -
+Method in class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance">GeometryLocation</A>
+<DD>Returns the segment index for this location.
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#getSegmentLength(com.vividsolutions.jts.geom.Geometry)"><B>getSegmentLength(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Gets the length of the segment in the given
+ Geometry containing this location.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentString.html#getSegmentOctant(int)"><B>getSegmentOctant(int)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>
+<DD>Gets the octant of the segment starting at vertex <code>index</code>.
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearIterator.html#getSegmentStart()"><B>getSegmentStart()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref">LinearIterator</A>
+<DD>Gets the first <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> of the current segment.
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html#getSegments()"><B>getSegments()</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html#getSequencedLineStrings()"><B>getSequencedLineStrings()</B></A> -
+Method in class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge">LineSequencer</A>
+<DD>Returns the <A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> or <A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A>
+ built by the sequencing process, if one exists.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#getShell()"><B>getShell()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html#getStartIndex()"><B>getStartIndex()</B></A> -
+Method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html#getStartIndex()"><B>getStartIndex()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LengthIndexedLine</A>
+<DD>Returns the index of the start of the line
+<DT><A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html#getStartIndex()"><B>getStartIndex()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LocationIndexedLine</A>
+<DD>Returns the index of the start of the line
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html#getStartIndexes()"><B>getStartIndexes()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#getStartPoint()"><B>getStartPoint()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html#getSubnodeIndex(com.vividsolutions.jts.index.bintree.Interval, double)"><B>getSubnodeIndex(Interval, double)</B></A> -
+Static method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A>
+<DD>Returns the index of the subnode that wholely contains the given interval.
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html#getSubnodeIndex(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.geom.Coordinate)"><B>getSubnodeIndex(Envelope, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<DD>Returns the index of the subquad that wholly contains the given envelope.
+<DT><A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html#getSupportingSegment()"><B>getSupportingSegment()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm">MinimumDiameter</A>
+<DD>Gets the segment forming the base of the minimum diameter
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#getSym()"><B>getSym()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>Each Edge gives rise to a pair of symmetric DirectedEdges, in opposite
+ directions.
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#getSym()"><B>getSym()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Returns the symmetric DirectedEdge -- the other DirectedEdge associated with
+ this DirectedEdge's parent Edge.
+<DT><A HREF="com/vividsolutions/jts/util/Stopwatch.html#getTime()"><B>getTime()</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util">Stopwatch</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Stopwatch.html#getTimeString()"><B>getTimeString()</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util">Stopwatch</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#getToNode()"><B>getToNode()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Returns the node to which this DirectedEdge goes.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html#getTransformation()"><B>getTransformation()</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformationBuilder</A>
+<DD>Computes the <A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>AffineTransformation</CODE></A>
+ determined by the control point mappings,
+ or <code>null</code> if the control points do not determine a unique transformation.
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#getTurn(double, double)"><B>getTurn(double, double)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>Returns whether an angle must turn clockwise or counterclockwise
+ to overlap another angle.
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#getType()"><B>getType()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>Gets the type of this PrecisionModel
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#getType()"><B>getType()</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>Returns the type of packed coordinate sequences this factory builds, either
+ PackedCoordinateSequenceFactory#Float or
+ PackedCoordinateSequenceFactory#Double
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#getUserData()"><B>getUserData()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Gets the user data object for this geometry, if any.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html#getValidationError()"><B>getValidationError()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid">IsValidOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearIterator.html#getVertexIndex()"><B>getVertexIndex()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref">LinearIterator</A>
+<DD>The vertex index of the vertex the iterator is currently at.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#getWidth()"><B>getWidth()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Returns the difference between the maximum and minimum x values.
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#getWidth()"><B>getWidth()</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html#getWidthCoordinate()"><B>getWidthCoordinate()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm">MinimumDiameter</A>
+<DD>Gets the <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> forming one end of the minimum diameter
+<DT><A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html#getX()"><B>getX()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#getX(int)"><B>getX(int)</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>Returns ordinate X (0) of the specified coordinate.
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#getX()"><B>getX()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#getX(int)"><B>getX(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getX(int)"><B>getX(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html#getY()"><B>getY()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#getY(int)"><B>getY(int)</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>Returns ordinate Y (1) of the specified coordinate.
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#getY()"><B>getY()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#getY(int)"><B>getY(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#getY(int)"><B>getY(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html#graph"><B>graph</B></A> -
+Variable in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_H_"><!-- --></A><H2>
+<B>H</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm"><B>HCoordinate</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A>.<DD>Represents a homogeneous coordinate in a 2-D coordinate space.<DT><A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html#HCoordinate()"><B>HCoordinate()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html#HCoordinate(double, double, double)"><B>HCoordinate(double, double, double)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html#HCoordinate(double, double)"><B>HCoordinate(double, double)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html#HCoordinate(com.vividsolutions.jts.geom.Coordinate)"><B>HCoordinate(Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html#HCoordinate(com.vividsolutions.jts.algorithm.HCoordinate, com.vividsolutions.jts.algorithm.HCoordinate)"><B>HCoordinate(HCoordinate, HCoordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#HOLE_OUTSIDE_SHELL"><B>HOLE_OUTSIDE_SHELL</B></A> -
+Static variable in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Indicates that a hole of a polygon lies partially or completely in the exterior of the shell
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround"><B>HotPixel</B></A> - class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A>.<DD>Implements a "hot pixel" as used in the Snap Rounding algorithm.<DT><A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html#HotPixel(com.vividsolutions.jts.geom.Coordinate, double, com.vividsolutions.jts.algorithm.LineIntersector)"><B>HotPixel(Coordinate, double, LineIntersector)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html#hasChildren()"><B>hasChildren()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html#hasDuplicateRings()"><B>hasDuplicateRings()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid">ConsistentAreaTester</A>
+<DD>Checks for two duplicate rings in an area.
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html#hasInteriorIntersection()"><B>hasInteriorIntersection()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>
+<DD>An interior intersection is an intersection which is
+ in the interior of some segment.
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#hasIntersection()"><B>hasIntersection()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>Tests whether the input geometries intersect.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#hasIntersection()"><B>hasIntersection()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html#hasIntersection()"><B>hasIntersection()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding">InteriorIntersectionFinder</A>
+<DD>Tests whether an intersection was found.
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html#hasIntersection()"><B>hasIntersection()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html#hasIntersection(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.CoordinateSequence)"><B>hasIntersection(CoordinateSequence, CoordinateSequence)</B></A> -
+Method in class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html" title="class in com.vividsolutions.jts.operation.predicate">SegmentIntersectionTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html#hasIntersectionWithLineStrings(com.vividsolutions.jts.geom.CoordinateSequence, java.util.List)"><B>hasIntersectionWithLineStrings(CoordinateSequence, List)</B></A> -
+Method in class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html" title="class in com.vividsolutions.jts.operation.predicate">SegmentIntersectionTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html#hasItems()"><B>hasItems()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollectionIterator.html#hasNext()"><B>hasNext()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom">GeometryCollectionIterator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearIterator.html#hasNext()"><B>hasNext()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref">LinearIterator</A>
+<DD>Tests whether there are any vertices left to iterator over.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#hasNonEmptyElements(com.vividsolutions.jts.geom.Geometry[])"><B>hasNonEmptyElements(Geometry[])</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns true if the array contains any non-empty <code>Geometry</code>s.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#hasNullElements(java.lang.Object[])"><B>hasNullElements(Object[])</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns true if the array contains any <code>null</code> elements.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#hasProperInteriorIntersection()"><B>hasProperInteriorIntersection()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A>
+<DD>A proper interior intersection is a proper intersection which is <b>not</b>
+ contained in the set of boundary nodes set for this SegmentIntersector.
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html#hasProperInteriorIntersection()"><B>hasProperInteriorIntersection()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>
+<DD>A proper interior intersection is a proper intersection which is <b>not</b>
+ contained in the set of boundary nodes set for this SegmentIntersector.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#hasProperIntersection()"><B>hasProperIntersection()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A>
+<DD>A proper intersection is an intersection which is interior to at least two
+ line segments.
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html#hasProperIntersection()"><B>hasProperIntersection()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>
+<DD>A proper intersection is an intersection which is interior to at least two
+ line segments.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/RepeatedPointTester.html#hasRepeatedPoint(com.vividsolutions.jts.geom.Geometry)"><B>hasRepeatedPoint(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid">RepeatedPointTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/RepeatedPointTester.html#hasRepeatedPoint(com.vividsolutions.jts.geom.Coordinate[])"><B>hasRepeatedPoint(Coordinate[])</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid">RepeatedPointTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#hasRepeatedPoints(com.vividsolutions.jts.geom.Coordinate[])"><B>hasRepeatedPoints(Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>Returns whether #equals returns true for any two consecutive Coordinates
+ in the given array.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html#hasTooFewPoints()"><B>hasTooFewPoints()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph">GeometryGraph</A>
+<DD>This constructor is used by clients that wish to add Edges explicitly,
+ rather than adding a Geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#hashCode()"><B>hashCode()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#hashCode(double)"><B>hashCode(double)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>Returns a hash code for a double value, using the algorithm from
+ Joshua Bloch's book <i>Effective Java"</i>
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#hashCode()"><B>hashCode()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKBReader.html#hexToBytes(java.lang.String)"><B>hexToBytes(String)</B></A> -
+Static method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io">WKBReader</A>
+<DD>Converts a hexadecimal string to a byte array.
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html#holeList"><B>holeList</B></A> -
+Variable in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#holes"><B>holes</B></A> -
+Variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>The interior boundaries, if any.
+<DT><A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html#horizontalBisector(com.vividsolutions.jts.geom.Geometry)"><B>horizontalBisector(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointArea</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_I_"><!-- --></A><H2>
+<B>I</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#INSERT"><B>INSERT</B></A> -
+Static variable in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#INSERT"><B>INSERT</B></A> -
+Static variable in class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html#INSIDE_AREA"><B>INSIDE_AREA</B></A> -
+Static variable in class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance">GeometryLocation</A>
+<DD>Special value of segment-index for locations inside area geometries.
+<DT><A HREF="com/vividsolutions/jts/geom/Location.html#INTERIOR"><B>INTERIOR</B></A> -
+Static variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom">Location</A>
+<DD>DE-9IM row index of the interior of the first geometry and column index of
+ the interior of the second geometry.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#INTERSECTION"><B>INTERSECTION</B></A> -
+Static variable in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>
+<DD>The spatial functions supported by this class.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#INVALID_COORDINATE"><B>INVALID_COORDINATE</B></A> -
+Static variable in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Indicates that the <code>X</code> or <code>Y</code> ordinate of
+ a Coordinate is not a valid numeric value (e.g.
+<DT><A HREF="com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><B>InStream</B></A> - interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A>.<DD>A interface for classes providing an input stream of bytes.<DT><A HREF="com/vividsolutions/jts/io/InputStreamInStream.html" title="class in com.vividsolutions.jts.io"><B>InputStreamInStream</B></A> - class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/InputStreamInStream.html" title="class in com.vividsolutions.jts.io">InputStreamInStream</A>.<DD>An adapter to allow an <CODE>InputStream</CODE> to be used as an <A HREF="com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><CODE>InStream</CODE></A><DT><A HREF="com/vividsolutions/jts/io/InputStreamInStream.html#InputStreamInStream(java.io.InputStream)"><B>InputStreamInStream(InputStream)</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/InputStreamInStream.html" title="class in com.vividsolutions.jts.io">InputStreamInStream</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding"><B>InteriorIntersectionFinder</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding">InteriorIntersectionFinder</A>.<DD>Finds an interior intersection in a set of <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s,
+ if one exists.<DT><A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html#InteriorIntersectionFinder(com.vividsolutions.jts.algorithm.LineIntersector)"><B>InteriorIntersectionFinder(LineIntersector)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding">InteriorIntersectionFinder</A>
+<DD>Creates an intersection finder which finds an interior intersection
+ if one exists
+<DT><A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm"><B>InteriorPointArea</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointArea</A>.<DD>Computes a point in the interior of an area geometry.<DT><A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html#InteriorPointArea(com.vividsolutions.jts.geom.Geometry)"><B>InteriorPointArea(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointArea</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/InteriorPointLine.html" title="class in com.vividsolutions.jts.algorithm"><B>InteriorPointLine</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointLine.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointLine</A>.<DD>Computes a point in the interior of an linear geometry.<DT><A HREF="com/vividsolutions/jts/algorithm/InteriorPointLine.html#InteriorPointLine(com.vividsolutions.jts.geom.Geometry)"><B>InteriorPointLine(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointLine.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointLine</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/InteriorPointPoint.html" title="class in com.vividsolutions.jts.algorithm"><B>InteriorPointPoint</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointPoint.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointPoint</A>.<DD>Computes a point in the interior of an point geometry.<DT><A HREF="com/vividsolutions/jts/algorithm/InteriorPointPoint.html#InteriorPointPoint(com.vividsolutions.jts.geom.Geometry)"><B>InteriorPointPoint(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointPoint.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointPoint</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding"><B>IntersectionAdder</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>.<DD>Computes the intersections between two line segments in <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s
+ and adds them to each string.<DT><A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html#IntersectionAdder(com.vividsolutions.jts.algorithm.LineIntersector)"><B>IntersectionAdder(LineIntersector)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding"><B>IntersectionFinderAdder</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionFinderAdder</A>.<DD>Finds proper and interior intersections in a set of SegmentStrings,
+ and adds them as nodes.<DT><A HREF="com/vividsolutions/jts/noding/IntersectionFinderAdder.html#IntersectionFinderAdder(com.vividsolutions.jts.algorithm.LineIntersector)"><B>IntersectionFinderAdder(LineIntersector)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionFinderAdder</A>
+<DD>Creates an intersection finder which finds all proper intersections
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><B>IntersectionMatrix</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>.<DD>A Dimensionally Extended Nine-Intersection Model (DE-9IM) matrix.<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#IntersectionMatrix()"><B>IntersectionMatrix()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Creates an <code>IntersectionMatrix</code> with <code>FALSE</code>
+ dimension values.
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#IntersectionMatrix(java.lang.String)"><B>IntersectionMatrix(String)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Creates an <code>IntersectionMatrix</code> with the given dimension
+ symbols.
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#IntersectionMatrix(com.vividsolutions.jts.geom.IntersectionMatrix)"><B>IntersectionMatrix(IntersectionMatrix)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Creates an <code>IntersectionMatrix</code> with the same elements as
+ <code>other</code>.
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree"><B>Interval</B></A> - class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>.<DD>Represents an (1-dimensional) closed interval on the Real number line.<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#Interval()"><B>Interval()</B></A> -
+Constructor for class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#Interval(double, double)"><B>Interval(double, double)</B></A> -
+Constructor for class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#Interval(com.vividsolutions.jts.index.bintree.Interval)"><B>Interval(Interval)</B></A> -
+Constructor for class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree"><B>Interval</B></A> - class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A>.<DD>A contiguous portion of 1D-space.<DT><A HREF="com/vividsolutions/jts/index/strtree/Interval.html#Interval(com.vividsolutions.jts.index.strtree.Interval)"><B>Interval(Interval)</B></A> -
+Constructor for class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/Interval.html#Interval(double, double)"><B>Interval(double, double)</B></A> -
+Constructor for class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree"><B>IntervalSize</B></A> - class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree">IntervalSize</A>.<DD>Provides a test for whether an interval is
+ so small it should be considered as zero for the purposes of
+ inserting it into a binary tree.<DT><A HREF="com/vividsolutions/jts/index/quadtree/IntervalSize.html#IntervalSize()"><B>IntervalSize()</B></A> -
+Constructor for class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree">IntervalSize</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation"><B>IsSimpleOp</B></A> - class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation">IsSimpleOp</A>.<DD>Tests whether a <code>Geometry</code> is simple.<DT><A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html#IsSimpleOp()"><B>IsSimpleOp()</B></A> -
+Constructor for class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation">IsSimpleOp</A>
+<DD><B>Deprecated.</B> <I>use IsSimpleOp(Geometry)</I>
+<DT><A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html#IsSimpleOp(com.vividsolutions.jts.geom.Geometry)"><B>IsSimpleOp(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation">IsSimpleOp</A>
+<DD>Creates a simplicity checker using the default SFS Mod-2 Boundary Node Rule
+<DT><A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html#IsSimpleOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><B>IsSimpleOp(Geometry, BoundaryNodeRule)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation">IsSimpleOp</A>
+<DD>Creates a simplicity checker using a given <A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>BoundaryNodeRule</CODE></A>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid"><B>IsValidOp</B></A> - class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid">IsValidOp</A>.<DD>Implements the algorithsm required to compute the <code>isValid()</code> method
+ for <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html#IsValidOp(com.vividsolutions.jts.geom.Geometry)"><B>IsValidOp(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid">IsValidOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree"><B>ItemBoundable</B></A> - class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree">ItemBoundable</A>.<DD>Boundable wrapper for a non-Boundable spatial object.<DT><A HREF="com/vividsolutions/jts/index/strtree/ItemBoundable.html#ItemBoundable(java.lang.Object, java.lang.Object)"><B>ItemBoundable(Object, Object)</B></A> -
+Constructor for class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree">ItemBoundable</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index"><B>ItemVisitor</B></A> - interface com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A>.<DD>A visitor for items in an index.<DT><A HREF="com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding"><B>IteratedNoder</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding">IteratedNoder</A>.<DD>Nodes a set of SegmentStrings completely.<DT><A HREF="com/vividsolutions/jts/noding/IteratedNoder.html#IteratedNoder(com.vividsolutions.jts.geom.PrecisionModel)"><B>IteratedNoder(PrecisionModel)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding">IteratedNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Triangle.html#inCentre(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>inCentre(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A>
+<DD>Computes the incentre of a triangle.
+<DT><A HREF="com/vividsolutions/jts/geom/Triangle.html#inCentre()"><B>inCentre()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A>
+<DD>Computes the incentre of a triangle.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#increasingDirection(com.vividsolutions.jts.geom.Coordinate[])"><B>increasingDirection(Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>Determines which orientation of the <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> array
+ is (overall) increasing.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#indexOf(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])"><B>indexOf(Coordinate, Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>Returns the index of <code>coordinate</code> in <code>coordinates</code>.
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html#indexOf(com.vividsolutions.jts.geom.Coordinate)"><B>indexOf(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LengthIndexedLine</A>
+<DD>Computes the minimum index for a point on the line.
+<DT><A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html#indexOf(com.vividsolutions.jts.geom.Coordinate)"><B>indexOf(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LocationIndexedLine</A>
+<DD>Computes the index for a given point on the line.
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html#indexOfAfter(com.vividsolutions.jts.geom.Coordinate, double)"><B>indexOfAfter(Coordinate, double)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LengthIndexedLine</A>
+<DD>Finds the index for a point on the line
+ which is greater than the given index.
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html#indicesOf(com.vividsolutions.jts.geom.Geometry)"><B>indicesOf(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LengthIndexedLine</A>
+<DD>Computes the indices for a subline of the line.
+<DT><A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html#indicesOf(com.vividsolutions.jts.geom.Geometry)"><B>indicesOf(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LocationIndexedLine</A>
+<DD>Computes the indices for a subline of the line.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#init()"><B>init()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Initialize to a null <code>Envelope</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#init(double, double, double, double)"><B>init(double, double, double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Initialize an <code>Envelope</code> for a region defined by maximum and minimum values.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#init(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>init(Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Initialize an <code>Envelope</code> to a region defined by two Coordinates.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#init(com.vividsolutions.jts.geom.Coordinate)"><B>init(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Initialize an <code>Envelope</code> to a region defined by a single Coordinate.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#init(com.vividsolutions.jts.geom.Envelope)"><B>init(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Initialize an <code>Envelope</code> from an existing Envelope.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#init(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>init(Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#init(double, double)"><B>init(double, double)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#inputLines"><B>inputLines</B></A> -
+Variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#insert(com.vividsolutions.jts.geomgraph.EdgeEnd)"><B>insert(EdgeEnd)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<DD>Insert a directed edge in the list
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html#insert(com.vividsolutions.jts.geomgraph.EdgeEnd)"><B>insert(EdgeEnd)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>
+<DD>Insert a EdgeEnd into this EdgeEndStar
+<DT><A HREF="com/vividsolutions/jts/index/SpatialIndex.html#insert(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><B>insert(Envelope, Object)</B></A> -
+Method in interface com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A>
+<DD>Adds a spatial item with an extent specified by the given <A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A> to the index
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Bintree.html#insert(com.vividsolutions.jts.index.bintree.Interval, java.lang.Object)"><B>insert(Interval, Object)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree">Bintree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Root.html#insert(com.vividsolutions.jts.index.bintree.Interval, java.lang.Object)"><B>insert(Interval, Object)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Root.html" title="class in com.vividsolutions.jts.index.bintree">Root</A>
+<DD>Insert an item into the tree this is the root of.
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html#insert(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><B>insert(Envelope, Object)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree">Quadtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Root.html#insert(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><B>insert(Envelope, Object)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Root.html" title="class in com.vividsolutions.jts.index.quadtree">Root</A>
+<DD>Insert an item into the quadtree this is the root of.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#insert(java.lang.Object, java.lang.Object)"><B>insert(Object, Object)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html#insert(double, double, java.lang.Object)"><B>insert(double, double, Object)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree">SIRtree</A>
+<DD>Inserts an item having the given bounds into the tree.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/STRtree.html#insert(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><B>insert(Envelope, Object)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>
+<DD>Inserts an item having the given bounds into the tree.
+<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#insert(com.vividsolutions.jts.geomgraph.EdgeEnd)"><B>insert(EdgeEnd)</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundle</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html#insert(com.vividsolutions.jts.geomgraph.EdgeEnd)"><B>insert(EdgeEnd)</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundleStar</A>
+<DD>Insert a EdgeEnd in order in the list.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#insertEdge(com.vividsolutions.jts.geomgraph.Edge)"><B>insertEdge(Edge)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html#insertEdge(com.vividsolutions.jts.geomgraph.Edge)"><B>insertEdge(Edge)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">BufferBuilder</A>
+<DD>Inserted edges are checked to see if an identical edge already exists.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html#insertEdgeEnd(com.vividsolutions.jts.geomgraph.EdgeEnd, java.lang.Object)"><B>insertEdgeEnd(EdgeEnd, Object)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>
+<DD>Insert an EdgeEnd into the map, and clear the edgeList cache,
+ since the list of edges has now changed
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html#insertEdgeEnds(java.util.List)"><B>insertEdgeEnds(List)</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate">RelateNodeGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#insertUniqueEdge(com.vividsolutions.jts.geomgraph.Edge)"><B>insertUniqueEdge(Edge)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>
+<DD>Insert an edge from one of the noded input graphs.
+<DT><A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html#instance()"><B>instance()</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom">DefaultCoordinateSequenceFactory</A>
+<DD><B>Deprecated.</B> Returns the singleton instance of DefaultCoordinateSequenceFactory
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html#instance()"><B>instance()</B></A> -
+Static method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequenceFactory</A>
+<DD>Returns the singleton instance of <A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl"><CODE>CoordinateArraySequenceFactory</CODE></A>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#instancePrint(java.lang.Object)"><B>instancePrint(Object)</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#instancePrint(java.util.Iterator)"><B>instancePrint(Iterator)</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#instancePrintIfWatch(java.lang.Object)"><B>instancePrintIfWatch(Object)</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#instancePrintObject(java.lang.Object)"><B>instancePrintObject(Object)</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#instancePrintWatch()"><B>instancePrintWatch()</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#intLineIndex"><B>intLineIndex</B></A> -
+Variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>The indexes of the endpoints of the intersection lines, in order along
+ the corresponding line
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#intPt"><B>intPt</B></A> -
+Variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#interiorAngle(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>interiorAngle(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>Computes the interior angle between two segments of a ring.
+<DT><A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html#intersection(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>intersection(Coordinate, Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A>
+<DD>Computes the (approximate) intersection point between two line segments
+ using homogeneous coordinates.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#intersection(com.vividsolutions.jts.geom.Envelope)"><B>intersection(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Computes the intersection of two <CODE>Envelopes</CODE>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#intersection(com.vividsolutions.jts.geom.Geometry)"><B>intersection(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Computes a <code>Geometry</code> representing the points shared by this
+ <code>Geometry</code> and <code>other</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#intersection(com.vividsolutions.jts.geom.LineSegment)"><B>intersection(LineSegment)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Computes an intersection point between two segments, if there is one.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html#intersection(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>intersection(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapIfNeededOverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html#intersection(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>intersection(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapOverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html#intersection(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>intersection(Geometry, Geometry)</B></A> -
+Method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision">CommonBitsOp</A>
+<DD>Computes the set-theoretic intersection of two <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.
+<DT><A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html#intersection(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>intersection(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision">EnhancedPrecisionOp</A>
+<DD>Computes the set-theoretic intersection of two <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.
+<DT><A HREF="com/vividsolutions/jts/algorithm/PointLocator.html#intersects(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Geometry)"><B>intersects(Coordinate, Geometry)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm">PointLocator</A>
+<DD>Convenience method to test a point for intersection with
+ a Geometry
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#intersects(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>intersects(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Test the point q to see whether it intersects the Envelope defined by p1-p2
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#intersects(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>intersects(Coordinate, Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Test the envelope defined by p1-p2 for intersection
+ with the envelope defined by q1-q2
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#intersects(com.vividsolutions.jts.geom.Envelope)"><B>intersects(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Check if the region defined by <code>other</code>
+ overlaps (intersects) the region of this <code>Envelope</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#intersects(com.vividsolutions.jts.geom.Coordinate)"><B>intersects(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Check if the point <code>p</code>
+ overlaps (lies inside) the region of this <code>Envelope</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#intersects(double, double)"><B>intersects(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Check if the point <code>(x, y)</code>
+ overlaps (lies inside) the region of this <code>Envelope</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#intersects(com.vividsolutions.jts.geom.Geometry)"><B>intersects(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns <code>true</code> if this geometry intersects the specified geometry.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html#intersects(java.lang.Object, java.lang.Object)"><B>intersects(Object, Object)</B></A> -
+Method in interface com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree">AbstractSTRtree.IntersectsOp</A>
+<DD>For STRtrees, the bounds will be Envelopes; for SIRtrees, Intervals;
+ for other subclasses of AbstractSTRtree, some other class.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/Interval.html#intersects(com.vividsolutions.jts.index.strtree.Interval)"><B>intersects(Interval)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html#intersects(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>intersects(Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/predicate/RectangleIntersects.html#intersects(com.vividsolutions.jts.geom.Polygon, com.vividsolutions.jts.geom.Geometry)"><B>intersects(Polygon, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate">RectangleIntersects</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/predicate/RectangleIntersects.html#intersects(com.vividsolutions.jts.geom.Geometry)"><B>intersects(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate">RectangleIntersects</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html#intersectsScaled(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>intersectsScaled(Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround">HotPixel</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html#invalidRingLines"><B>invalidRingLines</B></A> -
+Variable in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#isAcute(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>isAcute(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>Tests whether the angle between p0-p1-p2 is acute.
+<DT><A HREF="com/vividsolutions/jts/geom/Triangle.html#isAcute(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>isAcute(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A>
+<DD>Tests whether the triangle is acute.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#isAdjacentSegments(int, int)"><B>isAdjacentSegments(int, int)</B></A> -
+Static method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html#isAdjacentSegments(int, int)"><B>isAdjacentSegments(int, int)</B></A> -
+Static method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#isAnyNull(int)"><B>isAnyNull(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#isAnyNull()"><B>isAnyNull()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#isArea()"><B>isArea()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#isArea(int)"><B>isArea(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#isArea()"><B>isArea()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html#isAreaLabelsConsistent(com.vividsolutions.jts.geomgraph.GeometryGraph)"><B>isAreaLabelsConsistent(GeometryGraph)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#isBoundaryNode(int, com.vividsolutions.jts.geom.Coordinate)"><B>isBoundaryNode(int, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#isCCW(com.vividsolutions.jts.geom.Coordinate[])"><B>isCCW(Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>Computes whether a ring defined by an array of <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> is
+ oriented counter-clockwise.
+<DT><A HREF="com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html#isCCW(com.vividsolutions.jts.geom.Coordinate[])"><B>isCCW(Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">NonRobustCGAlgorithms</A>
+<DD>Computes whether a ring defined by an array of <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> is
+ oriented counter-clockwise.
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#isClosed()"><B>isClosed()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiLineString.html#isClosed()"><B>isClosed()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#isClosed()"><B>isClosed()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentString.html#isClosed()"><B>isClosed()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#isCollapsed()"><B>isCollapsed()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>An Edge is collapsed if it is an Area edge and it consists of
+ two segments which are equal and opposite (eg a zero-width V).
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#isCollinear()"><B>isCollinear()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#isContains()"><B>isContains()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ T*****FF*.
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#isCoordinate(com.vividsolutions.jts.geom.Coordinate)"><B>isCoordinate(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>Returns true if the given point is a vertex of this <code>LineString</code>.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#isCovered()"><B>isCovered()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#isCoveredBy()"><B>isCoveredBy()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ <code>T*F**F***</code>
+ or <code>*TF**F***</code>
+ or <code>**FT*F***</code>
+ or <code>**F*TF***</code>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#isCoveredByA(com.vividsolutions.jts.geom.Coordinate)"><B>isCoveredByA(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>
+<DD>This method is used to decide if an L edge should be included in the result or not.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#isCoveredByLA(com.vividsolutions.jts.geom.Coordinate)"><B>isCoveredByLA(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>
+<DD>This method is used to decide if a point node should be included in the result or not.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#isCoveredSet()"><B>isCoveredSet()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#isCovers()"><B>isCovers()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ <code>T*****FF*</code>
+ or <code>*T****FF*</code>
+ or <code>***T**FF*</code>
+ or <code>****T*FF*</code>
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#isCrosses(int, int)"><B>isCrosses(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Returns <code>true</code> if this geometry crosses the
+ specified geometry.
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#isDebugging()"><B>isDebugging()</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#isDelete()"><B>isDelete()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#isDelete()"><B>isDelete()</B></A> -
+Method in class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#isDisjoint()"><B>isDisjoint()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ FF*FF****.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFilter.html#isDone()"><B>isDone()</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A>
+<DD>Reports whether the application of this filter can be terminated.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#isDone()"><B>isDone()</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Reports that this filter should continue to be executed until
+ all coordinates have been transformed.
+<DT><A HREF="com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html#isDone()"><B>isDone()</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html" title="class in com.vividsolutions.jts.geom.util">ShortCircuitedGeometryVisitor</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html#isDone()"><B>isDone()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding">InteriorIntersectionFinder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html#isDone()"><B>isDone()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>
+<DD>Always process all intersections
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionFinderAdder.html#isDone()"><B>isDone()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionFinderAdder</A>
+<DD>Always process all intersections
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#isEmpty()"><B>isEmpty()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns whether or not the set of points in this <code>Geometry</code> is
+ empty.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#isEmpty()"><B>isEmpty()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#isEmpty()"><B>isEmpty()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#isEmpty()"><B>isEmpty()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#isEmpty()"><B>isEmpty()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html#isEmpty()"><B>isEmpty()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearIterator.html#isEndOfLine()"><B>isEndOfLine()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref">LinearIterator</A>
+<DD>Checks whether the iterator cursor is pointing to the
+ endpoint of a linestring.
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#isEndPoint()"><B>isEndPoint()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html#isEndPoint(int)"><B>isEndPoint(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentNode.html#isEndPoint(int)"><B>isEndPoint(int)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding">SegmentNode</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#isEqualOnSide(com.vividsolutions.jts.geomgraph.Label, int)"><B>isEqualOnSide(Label, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#isEqualOnSide(com.vividsolutions.jts.geomgraph.TopologyLocation, int)"><B>isEqualOnSide(TopologyLocation, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#isEquals(int, int)"><B>isEquals(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ T*F**FFF*.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#isEquivalentClass(com.vividsolutions.jts.geom.Geometry)"><B>isEquivalentClass(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns whether the two <code>Geometry</code>s are equal, from the point
+ of view of the <code>equalsExact</code> method.
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#isEquivalentClass(com.vividsolutions.jts.geom.Geometry)"><B>isEquivalentClass(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#isFloating()"><B>isFloating()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>Tests whether the precision model supports floating point
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#isForward"><B>isForward</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#isForward()"><B>isForward()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFilter.html#isGeometryChanged()"><B>isGeometryChanged()</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A>
+<DD>Reports whether the execution of this filter
+ has modified the coordinates of the geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#isGeometryChanged()"><B>isGeometryChanged()</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#isHole()"><B>isHole()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html#isHole()"><B>isHole()</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A>
+<DD>Tests whether this ring is a hole.
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#isHorizontal()"><B>isHorizontal()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Tests whether the segment is horizontal.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#isIdentity()"><B>isIdentity()</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Tests if this transformation is the identity transformation.
+<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html#isInBoundary(int)"><B>isInBoundary(int)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.EndPointBoundaryNodeRule</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html#isInBoundary(int)"><B>isInBoundary(int)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.Mod2BoundaryNodeRule</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html#isInBoundary(int)"><B>isInBoundary(int)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html#isInBoundary(int)"><B>isInBoundary(int)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm">BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#isInBoundary(int)"><B>isInBoundary(int)</B></A> -
+Method in interface com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html#isInHalfPlane(int, int)"><B>isInHalfPlane(int, int)</B></A> -
+Static method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph">Quadrant</A>
+<DD>Returns whether the given quadrant lies within the given halfplane (specified
+ by its right-hand quadrant).
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html#isInList(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])"><B>isInList(Coordinate, Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A>
+<DD>Tests whether a given point is in an array of points.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#isInResult()"><B>isInResult()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#isInResult()"><B>isInResult()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html#isInRing()"><B>isInRing()</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize">PolygonizeDirectedEdge</A>
+<DD>Returns the ring of directed edges that this directed edge is
+ a member of, or null if the ring has not been set.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Node.html#isIncidentEdgeInResult()"><B>isIncidentEdgeInResult()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>
+<DD>Tests whether any incident edge is flagged as
+ being in the result.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#isInsert()"><B>isInsert()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#isInsert()"><B>isInsert()</B></A> -
+Method in class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/MCPointInRing.html#isInside(com.vividsolutions.jts.geom.Coordinate)"><B>isInside(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/MCPointInRing.html" title="class in com.vividsolutions.jts.algorithm">MCPointInRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/PointInRing.html#isInside(com.vividsolutions.jts.geom.Coordinate)"><B>isInside(Coordinate)</B></A> -
+Method in interface com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/SIRtreePointInRing.html#isInside(com.vividsolutions.jts.geom.Coordinate)"><B>isInside(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/SIRtreePointInRing.html" title="class in com.vividsolutions.jts.algorithm">SIRtreePointInRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/SimplePointInRing.html#isInside(com.vividsolutions.jts.geom.Coordinate)"><B>isInside(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/SimplePointInRing.html" title="class in com.vividsolutions.jts.algorithm">SimplePointInRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html#isInsideArea()"><B>isInsideArea()</B></A> -
+Method in class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance">GeometryLocation</A>
+<DD>Returns whether this GeometryLocation represents a point inside an area geometry.
+<DT><A HREF="com/vividsolutions/jts/noding/ScaledNoder.html#isIntegerPrecision()"><B>isIntegerPrecision()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding">ScaledNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentNode.html#isInterior()"><B>isInterior()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding">SegmentNode</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#isInteriorAreaEdge()"><B>isInteriorAreaEdge()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>This is an interior Area edge if
+
+ its label is an Area label for both Geometries
+ and for each Geometry both sides are in the interior.
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#isInteriorIntersection()"><B>isInteriorIntersection()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>Tests whether either intersection point is an interior point of one of the input segments.
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#isInteriorIntersection(int)"><B>isInteriorIntersection(int)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>Tests whether either intersection point is an interior point of the specified input segment.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html#isInteriorsConnected()"><B>isInteriorsConnected()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html" title="class in com.vividsolutions.jts.operation.valid">ConnectedInteriorTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#isIntersection(com.vividsolutions.jts.geom.Coordinate)"><B>isIntersection(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>Test whether a point is a intersection point of two line segments.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html#isIntersection(com.vividsolutions.jts.geom.Coordinate)"><B>isIntersection(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersectionList</A>
+<DD>Tests if the given point is an edge intersection
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#isIntersects()"><B>isIntersects()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Returns <code>true</code> if <code>isDisjoint</code> returns false.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#isIsolated()"><B>isIsolated()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#isIsolated()"><B>isIsolated()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#isIsolated()"><B>isIsolated()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>An isolated component is one that does not intersect or touch any other
+ component.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Node.html#isIsolated()"><B>isIsolated()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#isLine(int)"><B>isLine(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#isLine()"><B>isLine()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#isLineEdge()"><B>isLineEdge()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>This edge is a line edge if
+
+ at least one of the labels is a line label
+ any labels which are not line labels have all Locations = EXTERIOR
+
+<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked"><B>isMarked</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html#isMarked()"><B>isMarked()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<DD>Tests if a component has been marked at some point during the processing
+ involving this graph.
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html#isNodeAdded()"><B>isNodeAdded()</B></A> -
+Method in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexPointSnapper.HotPixelSnapAction</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html#isNodeConsistentArea()"><B>isNodeConsistentArea()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid">ConsistentAreaTester</A>
+<DD>Check all nodes to see if their labels are consistent with area topology.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html#isNonNested()"><B>isNonNested()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">QuadtreeNestedRingTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html#isNonNested()"><B>isNonNested()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">SimpleNestedRingTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html#isNonNested()"><B>isNonNested()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">SweeplineNestedRingTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html#isNorthern(int)"><B>isNorthern(int)</B></A> -
+Static method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph">Quadrant</A>
+<DD>Returns true if the given quadrant is 0 or 1.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#isNull()"><B>isNull()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Returns <code>true</code> if this <code>Envelope</code> is a "null"
+ envelope.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Depth.html#isNull()"><B>isNull()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A>
+<DD>A Depth object is null (has never been initialized) if all depths are null.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Depth.html#isNull(int)"><B>isNull(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Depth.html#isNull(int, int)"><B>isNull(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#isNull(int)"><B>isNull(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#isNull()"><B>isNull()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#isObtuse(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>isObtuse(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>Tests whether the angle between p0-p1-p2 is obtuse.
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#isOnLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])"><B>isOnLine(Coordinate, Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>Test whether a point lies on the line segments defined by a
+ list of coordinates.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html#isOpposite(int, int)"><B>isOpposite(int, int)</B></A> -
+Static method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph">Quadrant</A>
+<DD>Returns true if the quadrants are 1 and 3, or 2 and 4
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#isOverlaps(int, int)"><B>isOverlaps(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+
+ T*T***T** (for two points or two surfaces)
+ 1*T***T** (for two curves)
+
+ .
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#isPointInRing(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])"><B>isPointInRing(Coordinate, Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>Test whether a point lies inside a ring.
+<DT><A HREF="com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html#isPointInRing(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate[])"><B>isPointInRing(Coordinate, Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">NonRobustCGAlgorithms</A>
+<DD>Computes whether a ring defined by an array of <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> is
+ oriented counter-clockwise.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#isPointwiseEqual(com.vividsolutions.jts.geomgraph.Edge)"><B>isPointwiseEqual(Edge)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#isProper"><B>isProper</B></A> -
+Variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#isProper()"><B>isProper()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>Tests whether an intersection is proper.
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html#isPrunable()"><B>isPrunable()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#isRectangle()"><B>isRectangle()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#isRectangle()"><B>isRectangle()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#isRemoved()"><B>isRemoved()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Tests whether this directed edge has been removed from its containing graph
+<DT><A HREF="com/vividsolutions/jts/planargraph/Edge.html#isRemoved()"><B>isRemoved()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A>
+<DD>Tests whether this edge has been removed from its containing graph
+<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html#isRemoved()"><B>isRemoved()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<DD>Tests whether this component has been removed from its containing graph
+<DT><A HREF="com/vividsolutions/jts/planargraph/Node.html#isRemoved()"><B>isRemoved()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A>
+<DD>Tests whether this node has been removed from its containing graph
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#isResultOfOp(com.vividsolutions.jts.geomgraph.Label, int)"><B>isResultOfOp(Label, int)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#isResultOfOp(int, int, int)"><B>isResultOfOp(int, int, int)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>
+<DD>This method will handle arguments of Location.NONE correctly
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#isRing()"><B>isRing()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html#isSameSignAndNonZero(double, double)"><B>isSameSignAndNonZero(double, double)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm">NonRobustLineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Node.html#isSearchMatch(com.vividsolutions.jts.index.bintree.Interval)"><B>isSearchMatch(Interval)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html#isSearchMatch(com.vividsolutions.jts.index.bintree.Interval)"><B>isSearchMatch(Interval)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Root.html#isSearchMatch(com.vividsolutions.jts.index.bintree.Interval)"><B>isSearchMatch(Interval)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Root.html" title="class in com.vividsolutions.jts.index.bintree">Root</A>
+<DD>The root node matches all searches
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Node.html#isSearchMatch(com.vividsolutions.jts.geom.Envelope)"><B>isSearchMatch(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html#isSearchMatch(com.vividsolutions.jts.geom.Envelope)"><B>isSearchMatch(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Root.html#isSearchMatch(com.vividsolutions.jts.geom.Envelope)"><B>isSearchMatch(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Root.html" title="class in com.vividsolutions.jts.index.quadtree">Root</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html#isSequenceable()"><B>isSequenceable()</B></A> -
+Method in class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge">LineSequencer</A>
+<DD>Tests whether the arrangement of linestrings has a valid
+ sequence.
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html#isSequenced(com.vividsolutions.jts.geom.Geometry)"><B>isSequenced(Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge">LineSequencer</A>
+<DD>Tests whether a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is sequenced correctly.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#isShell()"><B>isShell()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#isSimple()"><B>isSimple()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Tests whether this <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is simple.
+<DT><A HREF="com/vividsolutions/jts/geom/LinearRing.html#isSimple()"><B>isSimple()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>
+<DD>Returns <code>true</code>, since by definition LinearRings are always simple.
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPolygon.html#isSimple()"><B>isSimple()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#isSimple()"><B>isSimple()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#isSimple()"><B>isSimple()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>Tests if a valid polygon is simple.
+<DT><A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html#isSimple()"><B>isSimple()</B></A> -
+Method in class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation">IsSimpleOp</A>
+<DD>Tests whether the geometry is simple.
+<DT><A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html#isSimple(com.vividsolutions.jts.geom.LineString)"><B>isSimple(LineString)</B></A> -
+Method in class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation">IsSimpleOp</A>
+<DD><B>Deprecated.</B> <I>use isSimple()</I>
+<DT><A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html#isSimple(com.vividsolutions.jts.geom.MultiLineString)"><B>isSimple(MultiLineString)</B></A> -
+Method in class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation">IsSimpleOp</A>
+<DD><B>Deprecated.</B> <I>use isSimple()</I>
+<DT><A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html#isSimple(com.vividsolutions.jts.geom.MultiPoint)"><B>isSimple(MultiPoint)</B></A> -
+Method in class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation">IsSimpleOp</A>
+<DD><B>Deprecated.</B> <I>use isSimple()</I>
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#isTouches(int, int)"><B>isTouches(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ FT*******, F**T***** or F***T****.
+<DT><A HREF="com/vividsolutions/jts/util/Assert.html#isTrue(boolean)"><B>isTrue(boolean)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util">Assert</A>
+<DD>Throws an <code>AssertionFailedException</code> if the given assertion is
+ not true.
+<DT><A HREF="com/vividsolutions/jts/util/Assert.html#isTrue(boolean, java.lang.String)"><B>isTrue(boolean, String)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util">Assert</A>
+<DD>Throws an <code>AssertionFailedException</code> with the given message if
+ the given assertion is not true.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#isValid()"><B>isValid()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Tests the validity of this <code>Geometry</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPoint.html#isValid()"><B>isValid()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#isValid()"><B>isValid()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#isValid(com.vividsolutions.jts.geom.Geometry)"><B>isValid(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Tests whether this location refers to a valid
+ location on the given linear <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/noding/FastNodingValidator.html#isValid()"><B>isValid()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/FastNodingValidator.html" title="class in com.vividsolutions.jts.noding">FastNodingValidator</A>
+<DD>Checks for an intersection and
+ reports if one is found.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html#isValid(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, int, com.vividsolutions.jts.geom.Geometry)"><B>isValid(Geometry, Geometry, int, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.validate.<A HREF="com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">OverlayResultValidator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html#isValid(int)"><B>isValid(int)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.validate.<A HREF="com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">OverlayResultValidator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html#isValid()"><B>isValid()</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A>
+<DD>Tests if the <A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A> ring formed by this edge ring is topologically valid.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html#isValid(com.vividsolutions.jts.geom.Coordinate)"><B>isValid(Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid">IsValidOp</A>
+<DD>Checks whether a coordinate is valid for processing.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html#isValid()"><B>isValid()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid">IsValidOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html#isValidIndex(double)"><B>isValidIndex(double)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LengthIndexedLine</A>
+<DD>Tests whether an index is in the valid index range for the line.
+<DT><A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html#isValidIndex(com.vividsolutions.jts.linearref.LinearLocation)"><B>isValidIndex(LinearLocation)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LocationIndexedLine</A>
+<DD>Tests whether an index is in the valid index range for the line.
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#isVertex()"><B>isVertex()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Tests whether this location refers to a vertex
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#isVertical()"><B>isVertical()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Tests whether the segment is vertical.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#isVisited()"><B>isVisited()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#isVisited()"><B>isVisited()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited"><B>isVisited</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html#isVisited()"><B>isVisited()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<DD>Tests if a component has been visited during the course of a graph algorithm
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#isWithin()"><B>isWithin()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Returns <code>true</code> if this <code>IntersectionMatrix</code> is
+ T*F**F***.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#isWithinDistance(com.vividsolutions.jts.geom.Geometry, double)"><B>isWithinDistance(Geometry, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Tests whether the distance from this <code>Geometry</code>
+ to another is less than or equal to a specified value.
+<DT><A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html#isWithinDistance(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, double)"><B>isWithinDistance(Geometry, Geometry, double)</B></A> -
+Static method in class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance">DistanceOp</A>
+<DD>Test whether two geometries lie within a given distance of each other.
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/IntervalSize.html#isZeroWidth(double, double)"><B>isZeroWidth(double, double)</B></A> -
+Static method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree">IntervalSize</A>
+<DD>Computes whether the interval [min, max] is effectively zero width.
+<DT><A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html#items"><B>items</B></A> -
+Variable in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html#items"><B>items</B></A> -
+Variable in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html#iterator()"><B>iterator()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>
+<DD>Iterator access to the ordered list of edges is optimized by
+ copying the map collection to a list.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html#iterator()"><B>iterator()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersectionList</A>
+<DD>Returns an iterator of <A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>EdgeIntersection</CODE></A>s
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html#iterator()"><B>iterator()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeList</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html#iterator()"><B>iterator()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph">NodeMap</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Bintree.html#iterator()"><B>iterator()</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree">Bintree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html#iterator()"><B>iterator()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding">SegmentNodeList</A>
+<DD>returns an iterator of SegmentNodes
+<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#iterator()"><B>iterator()</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundle</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#iterator()"><B>iterator()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A>
+<DD>Returns an Iterator over the DirectedEdges, in ascending order by angle with the positive x-axis.
+<DT><A HREF="com/vividsolutions/jts/planargraph/NodeMap.html#iterator()"><B>iterator()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph">NodeMap</A>
+<DD>Returns an Iterator over the Nodes in this NodeMap, sorted in ascending order
+ by angle with the positive x-axis.
+</DL>
+<HR>
+<A NAME="_J_"><!-- --></A><H2>
+<B>J</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts"><B>JTSVersion</B></A> - class com.vividsolutions.jts.<A HREF="com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts">JTSVersion</A>.<DD>JTS API version information.</DL>
+<HR>
+<A NAME="_K_"><!-- --></A><H2>
+<B>K</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree"><B>Key</B></A> - class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree">Key</A>.<DD>A Key is a unique identifier for a node in a tree.<DT><A HREF="com/vividsolutions/jts/index/bintree/Key.html#Key(com.vividsolutions.jts.index.bintree.Interval)"><B>Key(Interval)</B></A> -
+Constructor for class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree">Key</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree"><B>Key</B></A> - class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree">Key</A>.<DD>A Key is a unique identifier for a node in a quadtree.<DT><A HREF="com/vividsolutions/jts/index/quadtree/Key.html#Key(com.vividsolutions.jts.geom.Envelope)"><B>Key(Envelope)</B></A> -
+Constructor for class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree">Key</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_L_"><!-- --></A><H2>
+<B>L</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/geom/Dimension.html#L"><B>L</B></A> -
+Static variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom">Dimension</A>
+<DD>Dimension value of a curve (1).
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#LEFT"><B>LEFT</B></A> -
+Static variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Position.html#LEFT"><B>LEFT</B></A> -
+Static variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph">Position</A>
+<DD>An indicator that a Location is to the <i>left</i> of a GraphComponent
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderValues.html#LITTLE_ENDIAN"><B>LITTLE_ENDIAN</B></A> -
+Static variable in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io">ByteOrderValues</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph"><B>Label</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>.<DD>A <code>Label</code> indicates the topological relationship of a component
+ of a topology graph to a given <code>Geometry</code>.<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#Label(int)"><B>Label(int)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>Construct a Label with a single location for both Geometries.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#Label(int, int)"><B>Label(int, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>Construct a Label with a single location for both Geometries.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#Label(int, int, int)"><B>Label(int, int, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>Construct a Label with On, Left and Right locations for both Geometries.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#Label(int, int, int, int)"><B>Label(int, int, int, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>Construct a Label with On, Left and Right locations for both Geometries.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#Label(com.vividsolutions.jts.geomgraph.Label)"><B>Label(Label)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>Construct a Label with the same values as the argument Label.
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref"><B>LengthIndexedLine</B></A> - class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LengthIndexedLine</A>.<DD>Supports linear referencing along a linear <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ using the length along the line as the index.<DT><A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html#LengthIndexedLine(com.vividsolutions.jts.geom.Geometry)"><B>LengthIndexedLine(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LengthIndexedLine</A>
+<DD>Constructs an object which allows a linear <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ to be linearly referenced using length as an index.
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref"><B>LengthLocationMap</B></A> - class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref">LengthLocationMap</A>.<DD>Computes the <A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A> for a given length
+ along a linear <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/linearref/LengthLocationMap.html#LengthLocationMap(com.vividsolutions.jts.geom.Geometry)"><B>LengthLocationMap(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref">LengthLocationMap</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/LineBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>LineBuilder</B></A> - class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/LineBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">LineBuilder</A>.<DD>Forms JTS LineStrings out of a the graph of <A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>DirectedEdge</CODE></A>s
+ created by an <A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay"><CODE>OverlayOp</CODE></A>.<DT><A HREF="com/vividsolutions/jts/operation/overlay/LineBuilder.html#LineBuilder(com.vividsolutions.jts.operation.overlay.OverlayOp, com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.PointLocator)"><B>LineBuilder(OverlayOp, GeometryFactory, PointLocator)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/LineBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">LineBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>LineIntersector</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>.<DD>A LineIntersector is an algorithm that can both test whether
+ two line segments intersect and compute the intersection point
+ if they do.<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#LineIntersector()"><B>LineIntersector()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>LineMergeDirectedEdge</B></A> - class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeDirectedEdge</A>.<DD>A <A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A> of a
+ <A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge"><CODE>LineMergeGraph</CODE></A>.<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html#LineMergeDirectedEdge(com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.geom.Coordinate, boolean)"><B>LineMergeDirectedEdge(Node, Node, Coordinate, boolean)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeDirectedEdge</A>
+<DD>Constructs a LineMergeDirectedEdge connecting the <code>from</code> node to the
+ <code>to</code> node.
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>LineMergeEdge</B></A> - class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeEdge</A>.<DD>An edge of a <A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge"><CODE>LineMergeGraph</CODE></A>.<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html#LineMergeEdge(com.vividsolutions.jts.geom.LineString)"><B>LineMergeEdge(LineString)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeEdge</A>
+<DD>Constructs a LineMergeEdge with vertices given by the specified LineString.
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>LineMergeGraph</B></A> - class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeGraph</A>.<DD>A planar graph of edges that is analyzed to sew the edges together.<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html#LineMergeGraph()"><B>LineMergeGraph()</B></A> -
+Constructor for class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMergeGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>LineMerger</B></A> - class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMerger</A>.<DD>Sews together a set of fully noded LineStrings.<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineMerger.html#LineMerger()"><B>LineMerger()</B></A> -
+Constructor for class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge">LineMerger</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom"><B>LineSegment</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>.<DD>Represents a line segment defined by two <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#LineSegment(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>LineSegment(Coordinate, Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#LineSegment(com.vividsolutions.jts.geom.LineSegment)"><B>LineSegment(LineSegment)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#LineSegment()"><B>LineSegment()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify"><B>LineSegmentIndex</B></A> - class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify">LineSegmentIndex</A>.<DD>An spatial index on a set of <A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom"><CODE>LineSegment</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/simplify/LineSegmentIndex.html#LineSegmentIndex()"><B>LineSegmentIndex()</B></A> -
+Constructor for class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify">LineSegmentIndex</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>LineSequencer</B></A> - class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge">LineSequencer</A>.<DD>Builds a sequence from a set of LineStrings so that
+ they are ordered end to end.<DT><A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html#LineSequencer()"><B>LineSequencer()</B></A> -
+Constructor for class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge">LineSequencer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><B>LineString</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>.<DD>Basic implementation of <code>LineString</code>.<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#LineString(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.PrecisionModel, int)"><B>LineString(Coordinate[], PrecisionModel, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#LineString(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.GeometryFactory)"><B>LineString(CoordinateSequence, GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>LineStringSnapper</B></A> - class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">LineStringSnapper</A>.<DD>Snaps the vertices and segments of a LineString to a set of target snap vertices.<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html#LineStringSnapper(com.vividsolutions.jts.geom.LineString, double)"><B>LineStringSnapper(LineString, double)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">LineStringSnapper</A>
+<DD>Creates a new snapper using the points in the given <A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>
+ as target snap points.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html#LineStringSnapper(com.vividsolutions.jts.geom.Coordinate[], double)"><B>LineStringSnapper(Coordinate[], double)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">LineStringSnapper</A>
+<DD>Creates a new snapper using the given points
+ as target snap points.
+<DT><A HREF="com/vividsolutions/jts/geom/util/LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>LinearComponentExtracter</B></A> - class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util">LinearComponentExtracter</A>.<DD>Extracts all the 1-dimensional (<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>) components from a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/geom/util/LinearComponentExtracter.html#LinearComponentExtracter(java.util.List)"><B>LinearComponentExtracter(List)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util">LinearComponentExtracter</A>
+<DD>Constructs a LineExtracterFilter with a list in which to store LineStrings found.
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref"><B>LinearGeometryBuilder</B></A> - class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref">LinearGeometryBuilder</A>.<DD>Builds a linear geometry (<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> or <A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A>)
+ incrementally (point-by-point).<DT><A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#LinearGeometryBuilder(com.vividsolutions.jts.geom.GeometryFactory)"><B>LinearGeometryBuilder(GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref">LinearGeometryBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref"><B>LinearIterator</B></A> - class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref">LinearIterator</A>.<DD>An iterator over the components and coordinates of a linear geometry
+ (<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>s and <A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/linearref/LinearIterator.html#LinearIterator(com.vividsolutions.jts.geom.Geometry)"><B>LinearIterator(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref">LinearIterator</A>
+<DD>Creates an iterator initialized to the start of a linear <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearIterator.html#LinearIterator(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.linearref.LinearLocation)"><B>LinearIterator(Geometry, LinearLocation)</B></A> -
+Constructor for class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref">LinearIterator</A>
+<DD>Creates an iterator starting at
+ a <A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A> on a linear <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearIterator.html#LinearIterator(com.vividsolutions.jts.geom.Geometry, int, int)"><B>LinearIterator(Geometry, int, int)</B></A> -
+Constructor for class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref">LinearIterator</A>
+<DD>Creates an iterator starting at
+ a component and vertex in a linear <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><B>LinearLocation</B></A> - class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>.<DD>Represents a location along a <A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> or <A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A>.<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#LinearLocation()"><B>LinearLocation()</B></A> -
+Constructor for class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Creates a location referring to the start of a linear geometry
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#LinearLocation(int, double)"><B>LinearLocation(int, double)</B></A> -
+Constructor for class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#LinearLocation(int, int, double)"><B>LinearLocation(int, int, double)</B></A> -
+Constructor for class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><B>LinearRing</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>.<DD>Models an OGC SFS <code>LinearRing</code>.<DT><A HREF="com/vividsolutions/jts/geom/LinearRing.html#LinearRing(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.PrecisionModel, int)"><B>LinearRing(Coordinate[], PrecisionModel, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<DT><A HREF="com/vividsolutions/jts/geom/LinearRing.html#LinearRing(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.GeometryFactory)"><B>LinearRing(CoordinateSequence, GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>
+<DD>Constructs a <code>LinearRing</code> with the vertices
+ specifed by the given <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><B>Location</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom">Location</A>.<DD>Constants representing the location of a point relative to a geometry.<DT><A HREF="com/vividsolutions/jts/geom/Location.html#Location()"><B>Location()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom">Location</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref"><B>LocationIndexedLine</B></A> - class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LocationIndexedLine</A>.<DD>Supports linear referencing
+ along a linear <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ using <A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><CODE>LinearLocation</CODE></A>s as the index.<DT><A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html#LocationIndexedLine(com.vividsolutions.jts.geom.Geometry)"><B>LocationIndexedLine(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LocationIndexedLine</A>
+<DD>Constructs an object which allows linear referencing along
+ a given linear <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#label"><B>label</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#label"><B>label</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#lastNode(java.util.List)"><B>lastNode(List)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#length(com.vividsolutions.jts.geom.CoordinateSequence)"><B>length(CoordinateSequence)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>Computes the length of a linestring specified by a sequence of points.
+<DT><A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html#li"><B>li</B></A> -
+Variable in class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#linkAllDirectedEdges()"><B>linkAllDirectedEdges()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#linkAllDirectedEdges()"><B>linkAllDirectedEdges()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>Link the DirectedEdges at the nodes of the graph.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html#linkDirectedEdgesForMinimalEdgeRings()"><B>linkDirectedEdgesForMinimalEdgeRings()</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MaximalEdgeRing</A>
+<DD>For all nodes in this EdgeRing,
+ link the DirectedEdges at the node to form minimalEdgeRings
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#linkMinimalDirectedEdges(com.vividsolutions.jts.geomgraph.EdgeRing)"><B>linkMinimalDirectedEdges(EdgeRing)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#linkResultDirectedEdges()"><B>linkResultDirectedEdges()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<DD>Traverse the star of DirectedEdges, linking the included edges together.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#linkResultDirectedEdges(java.util.Collection)"><B>linkResultDirectedEdges(Collection)</B></A> -
+Static method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>For nodes in the Collection, link the DirectedEdges at the node that are in the result.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#linkResultDirectedEdges()"><B>linkResultDirectedEdges()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>Link the DirectedEdges at the nodes of the graph.
+<DT><A HREF="com/vividsolutions/jts/algorithm/PointLocator.html#locate(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Geometry)"><B>locate(Coordinate, Geometry)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm">PointLocator</A>
+<DD>Computes the topological relationship (<A HREF="com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><CODE>Location</CODE></A>) of a single point
+ to a Geometry.
+<DT><A HREF="com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html#locate(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Geometry)"><B>locate(Coordinate, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html" title="class in com.vividsolutions.jts.algorithm">SimplePointInAreaLocator</A>
+<DD>locate is the main location function.
+<DT><A HREF="com/vividsolutions/jts/geom/Triangle.html#longestSideLength(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>longestSideLength(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A>
+<DD>Computes the length of the longest side of a triangle
+</DL>
+<HR>
+<A NAME="_M_"><!-- --></A><H2>
+<B>M</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#M"><B>M</B></A> -
+Static variable in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/JTSVersion.html#MAJOR"><B>MAJOR</B></A> -
+Static variable in class com.vividsolutions.jts.<A HREF="com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts">JTSVersion</A>
+<DD>The major version number.
+<DT><A HREF="com/vividsolutions/jts/operation/predicate/RectangleIntersects.html#MAXIMUM_SCAN_SEGMENT_COUNT"><B>MAXIMUM_SCAN_SEGMENT_COUNT</B></A> -
+Static variable in class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate">RectangleIntersects</A>
+<DD>Crossover size at which brute-force intersection scanning
+ is slower than indexed intersection detection.
+<DT><A HREF="com/vividsolutions/jts/noding/IteratedNoder.html#MAX_ITER"><B>MAX_ITER</B></A> -
+Static variable in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding">IteratedNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding"><B>MCIndexNoder</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding">MCIndexNoder</A>.<DD>Nodes a set of <CODE>SegmentStrings</CODE> using a index based
+ on <A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><CODE>MonotoneChain</CODE></A>s and a <A HREF="com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index"><CODE>SpatialIndex</CODE></A>.<DT><A HREF="com/vividsolutions/jts/noding/MCIndexNoder.html#MCIndexNoder()"><B>MCIndexNoder()</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding">MCIndexNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html" title="class in com.vividsolutions.jts.noding"><B>MCIndexNoder.SegmentOverlapAction</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html" title="class in com.vividsolutions.jts.noding">MCIndexNoder.SegmentOverlapAction</A>.<DD> <DT><A HREF="com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html#MCIndexNoder.SegmentOverlapAction(com.vividsolutions.jts.noding.SegmentIntersector)"><B>MCIndexNoder.SegmentOverlapAction(SegmentIntersector)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html" title="class in com.vividsolutions.jts.noding">MCIndexNoder.SegmentOverlapAction</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround"><B>MCIndexPointSnapper</B></A> - class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexPointSnapper</A>.<DD>"Snaps" all <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s in a <A HREF="com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index"><CODE>SpatialIndex</CODE></A> containing
+ <A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><CODE>MonotoneChain</CODE></A>s to a given <A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround"><CODE>HotPixel</CODE></A>.<DT><A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html#MCIndexPointSnapper(java.util.Collection, com.vividsolutions.jts.index.SpatialIndex)"><B>MCIndexPointSnapper(Collection, SpatialIndex)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexPointSnapper</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html" title="class in com.vividsolutions.jts.noding.snapround"><B>MCIndexPointSnapper.HotPixelSnapAction</B></A> - class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexPointSnapper.HotPixelSnapAction</A>.<DD> <DT><A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html#MCIndexPointSnapper.HotPixelSnapAction(com.vividsolutions.jts.noding.snapround.HotPixel, com.vividsolutions.jts.noding.SegmentString, int)"><B>MCIndexPointSnapper.HotPixelSnapAction(HotPixel, SegmentString, int)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexPointSnapper.HotPixelSnapAction</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround"><B>MCIndexSnapRounder</B></A> - class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexSnapRounder</A>.<DD>Uses Snap Rounding to compute a rounded,
+ fully noded arrangement from a set of <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html#MCIndexSnapRounder(com.vividsolutions.jts.geom.PrecisionModel)"><B>MCIndexSnapRounder(PrecisionModel)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexSnapRounder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/MCPointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>MCPointInRing</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/MCPointInRing.html" title="class in com.vividsolutions.jts.algorithm">MCPointInRing</A>.<DD>Implements <A HREF="com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>PointInRing</CODE></A>
+ using <A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><CODE>MonotoneChain</CODE></A>s and a <CODE>BinTree</CODE> index to
+ increase performance.<DT><A HREF="com/vividsolutions/jts/algorithm/MCPointInRing.html#MCPointInRing(com.vividsolutions.jts.geom.LinearRing)"><B>MCPointInRing(LinearRing)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/MCPointInRing.html" title="class in com.vividsolutions.jts.algorithm">MCPointInRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/JTSVersion.html#MINOR"><B>MINOR</B></A> -
+Static variable in class com.vividsolutions.jts.<A HREF="com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts">JTSVersion</A>
+<DD>The minor version number.
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/IntervalSize.html#MIN_BINARY_EXPONENT"><B>MIN_BINARY_EXPONENT</B></A> -
+Static variable in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree">IntervalSize</A>
+<DD>This value is chosen to be a few powers of 2 less than the
+ number of bits available in the double representation (i.e.
+<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MOD2_BOUNDARY_RULE"><B>MOD2_BOUNDARY_RULE</B></A> -
+Static variable in interface com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A>
+<DD>The Mod-2 Boundary Node Rule (as used in the OGC SFS).
+<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MONOVALENT_ENDPOINT_BOUNDARY_RULE"><B>MONOVALENT_ENDPOINT_BOUNDARY_RULE</B></A> -
+Static variable in interface com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A>
+<DD>The Monovalent Endpoint Boundary Node Rule.
+<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#MULTIVALENT_ENDPOINT_BOUNDARY_RULE"><B>MULTIVALENT_ENDPOINT_BOUNDARY_RULE</B></A> -
+Static variable in interface com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A>
+<DD>The MultiValent Endpoint Boundary Node Rule.
+<DT><A HREF="com/vividsolutions/jts/geom/util/Matrix.html" title="class in com.vividsolutions.jts.geom.util"><B>Matrix</B></A> - class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/Matrix.html" title="class in com.vividsolutions.jts.geom.util">Matrix</A>.<DD>Implements some 2D matrix operations
+ (in particular, solving systems of linear equations).<DT><A HREF="com/vividsolutions/jts/geom/util/Matrix.html#Matrix()"><B>Matrix()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/Matrix.html" title="class in com.vividsolutions.jts.geom.util">Matrix</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><B>MaximalEdgeRing</B></A> - class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MaximalEdgeRing</A>.<DD>A ring of <A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>DirectedEdge</CODE></A>s which may contain nodes of degree > 2.<DT><A HREF="com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html#MaximalEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.CGAlgorithms)"><B>MaximalEdgeRing(DirectedEdge, GeometryFactory, CGAlgorithms)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MaximalEdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><B>MinimalEdgeRing</B></A> - class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MinimalEdgeRing</A>.<DD>A ring of <A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>Edge</CODE></A>s with the property that no node
+ has degree greater than 2.<DT><A HREF="com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html#MinimalEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.CGAlgorithms)"><B>MinimalEdgeRing(DirectedEdge, GeometryFactory, CGAlgorithms)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MinimalEdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm"><B>MinimumDiameter</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm">MinimumDiameter</A>.<DD>Computes the minimum diameter of a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html#MinimumDiameter(com.vividsolutions.jts.geom.Geometry)"><B>MinimumDiameter(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm">MinimumDiameter</A>
+<DD>Compute a minimum diameter for a giver <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html#MinimumDiameter(com.vividsolutions.jts.geom.Geometry, boolean)"><B>MinimumDiameter(Geometry, boolean)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm">MinimumDiameter</A>
+<DD>Compute a minimum diameter for a giver <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>,
+ with a hint if
+ the Geometry is convex
+ (e.g.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>MonotoneChain</B></A> - class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChain</A>.<DD> <DT><A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChain.html#MonotoneChain(com.vividsolutions.jts.geomgraph.index.MonotoneChainEdge, int)"><B>MonotoneChain(MonotoneChainEdge, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChain</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><B>MonotoneChain</B></A> - class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A>.<DD>MonotoneChains are a way of partitioning the segments of a linestring to
+ allow for fast searching of intersections.<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html#MonotoneChain(com.vividsolutions.jts.geom.Coordinate[], int, int, java.lang.Object)"><B>MonotoneChain(Coordinate[], int, int, Object)</B></A> -
+Constructor for class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain"><B>MonotoneChainBuilder</B></A> - class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainBuilder</A>.<DD>A MonotoneChainBuilder implements functions to determine the monotone chains
+ in a sequence of points.<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html#MonotoneChainBuilder()"><B>MonotoneChainBuilder()</B></A> -
+Constructor for class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>MonotoneChainEdge</B></A> - class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A>.<DD>MonotoneChains are a way of partitioning the segments of an edge to
+ allow for fast searching of intersections.<DT><A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html#MonotoneChainEdge(com.vividsolutions.jts.geomgraph.Edge)"><B>MonotoneChainEdge(Edge)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>MonotoneChainIndexer</B></A> - class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainIndexer</A>.<DD>MonotoneChains are a way of partitioning the segments of an edge to
+ allow for fast searching of intersections.<DT><A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html#MonotoneChainIndexer()"><B>MonotoneChainIndexer()</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainIndexer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain"><B>MonotoneChainOverlapAction</B></A> - class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainOverlapAction</A>.<DD>The action for the internal iterator for performing
+ overlap queries on a MonotoneChain<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html#MonotoneChainOverlapAction()"><B>MonotoneChainOverlapAction()</B></A> -
+Constructor for class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainOverlapAction</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain"><B>MonotoneChainSelectAction</B></A> - class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainSelectAction</A>.<DD>The action for the internal iterator for performing
+ envelope select queries on a MonotoneChain<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html#MonotoneChainSelectAction()"><B>MonotoneChainSelectAction()</B></A> -
+Constructor for class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainSelectAction</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><B>MultiLineString</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A>.<DD>Basic implementation of <code>MultiLineString</code>.<DT><A HREF="com/vividsolutions/jts/geom/MultiLineString.html#MultiLineString(com.vividsolutions.jts.geom.LineString[], com.vividsolutions.jts.geom.PrecisionModel, int)"><B>MultiLineString(LineString[], PrecisionModel, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiLineString.html#MultiLineString(com.vividsolutions.jts.geom.LineString[], com.vividsolutions.jts.geom.GeometryFactory)"><B>MultiLineString(LineString[], GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom"><B>MultiPoint</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A>.<DD>Models a collection of <code>Point</code>s.<DT><A HREF="com/vividsolutions/jts/geom/MultiPoint.html#MultiPoint(com.vividsolutions.jts.geom.Point[], com.vividsolutions.jts.geom.PrecisionModel, int)"><B>MultiPoint(Point[], PrecisionModel, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPoint.html#MultiPoint(com.vividsolutions.jts.geom.Point[], com.vividsolutions.jts.geom.GeometryFactory)"><B>MultiPoint(Point[], GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">MultiPoint</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom"><B>MultiPolygon</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A>.<DD>Basic implementation of <code>MultiPolygon</code>.<DT><A HREF="com/vividsolutions/jts/geom/MultiPolygon.html#MultiPolygon(com.vividsolutions.jts.geom.Polygon[], com.vividsolutions.jts.geom.PrecisionModel, int)"><B>MultiPolygon(Polygon[], PrecisionModel, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<DT><A HREF="com/vividsolutions/jts/geom/MultiPolygon.html#MultiPolygon(com.vividsolutions.jts.geom.Polygon[], com.vividsolutions.jts.geom.GeometryFactory)"><B>MultiPolygon(Polygon[], GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">MultiPolygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/JTSVersion.html#main(java.lang.String[])"><B>main(String[])</B></A> -
+Static method in class com.vividsolutions.jts.<A HREF="com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts">JTSVersion</A>
+<DD>Prints the current JTS version to stdout.
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#main(java.lang.String[])"><B>main(String[])</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>Prints the status of debugging to <tt>System.out</tt>
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#makePrecise(double)"><B>makePrecise(double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>Rounds a numeric value to the PrecisionModel grid.
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#makePrecise(com.vividsolutions.jts.geom.Coordinate)"><B>makePrecise(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>Rounds a Coordinate to the PrecisionModel grid.
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#matches(int, char)"><B>matches(int, char)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Returns true if the dimension value satisfies the dimension symbol.
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#matches(java.lang.String, java.lang.String)"><B>matches(String, String)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Returns true if each of the actual dimension symbols satisfies the
+ corresponding required dimension symbol.
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#matches(java.lang.String)"><B>matches(String)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Returns whether the elements of this <code>IntersectionMatrix</code>
+ satisfies the required dimension symbols.
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#max"><B>max</B></A> -
+Variable in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html#maximumCommonMantissa(double, double)"><B>maximumCommonMantissa(double, double)</B></A> -
+Static method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#maximumPreciseValue"><B>maximumPreciseValue</B></A> -
+Static variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>The maximum precise value representable in a double.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#merge(com.vividsolutions.jts.geomgraph.Label)"><B>merge(Label)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>Merge this label with another one.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#merge(com.vividsolutions.jts.geomgraph.TopologyLocation)"><B>merge(TopologyLocation)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>merge updates only the NULL attributes of this object
+ with the attributes of another.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html#merge(com.vividsolutions.jts.noding.SegmentString, com.vividsolutions.jts.noding.SegmentString, boolean)"><B>merge(SegmentString, SegmentString, boolean)</B></A> -
+Method in interface com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html" title="interface in com.vividsolutions.jts.noding">SegmentStringDissolver.SegmentStringMerger</A>
+<DD>Updates the context data of a SegmentString
+ when an identical (up to orientation) one is found during dissolving.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#mergeLabel(com.vividsolutions.jts.geomgraph.Label)"><B>mergeLabel(Label)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#mergeLabel(com.vividsolutions.jts.geomgraph.Label, int)"><B>mergeLabel(Label, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>Merge the RHS label from a DirectedEdge into the label for this EdgeRing.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Node.html#mergeLabel(com.vividsolutions.jts.geomgraph.Node)"><B>mergeLabel(Node)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Node.html#mergeLabel(com.vividsolutions.jts.geomgraph.Label)"><B>mergeLabel(Label)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>
+<DD>To merge labels for two nodes,
+ the merged location for each LabelElement is computed.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#mergeSymLabels()"><B>mergeSymLabels()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<DD>For each dirEdge in the star,
+ merge the label from the sym dirEdge into the label
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#midPoint()"><B>midPoint()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Computes the midpoint of the segment
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#min"><B>min</B></A> -
+Variable in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#minCoordinate(com.vividsolutions.jts.geom.Coordinate[])"><B>minCoordinate(Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>Returns the minimum coordinate, using the usual lexicographic comparison.
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#mostPrecise(com.vividsolutions.jts.geom.PrecisionModel, com.vividsolutions.jts.geom.PrecisionModel)"><B>mostPrecise(PrecisionModel, PrecisionModel)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>Determines which of two <A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A>s is the most precise
+ (allows the greatest number of significant digits).
+</DL>
+<HR>
+<A NAME="_N_"><!-- --></A><H2>
+<B>N</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#NESTED_HOLES"><B>NESTED_HOLES</B></A> -
+Static variable in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Indicates that a hole lies in the interior of another hole in the same polygon
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#NESTED_SHELLS"><B>NESTED_SHELLS</B></A> -
+Static variable in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Indicates that a polygon component of a MultiPolygon lies inside another polygonal component
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#NONE"><B>NONE</B></A> -
+Static variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>Constant representing no orientation
+<DT><A HREF="com/vividsolutions/jts/geom/Location.html#NONE"><B>NONE</B></A> -
+Static variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom">Location</A>
+<DD>Used for uninitialized location values.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph"><B>Node</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>.<DD> <DT><A HREF="com/vividsolutions/jts/geomgraph/Node.html#Node(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geomgraph.EdgeEndStar)"><B>Node(Coordinate, EdgeEndStar)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree"><B>Node</B></A> - class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A>.<DD>A node of a <A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree"><CODE>Bintree</CODE></A>.<DT><A HREF="com/vividsolutions/jts/index/bintree/Node.html#Node(com.vividsolutions.jts.index.bintree.Interval, int)"><B>Node(Interval, int)</B></A> -
+Constructor for class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree"><B>Node</B></A> - class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A>.<DD>Represents a node of a <A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><CODE>Quadtree</CODE></A>.<DT><A HREF="com/vividsolutions/jts/index/quadtree/Node.html#Node(com.vividsolutions.jts.geom.Envelope, int)"><B>Node(Envelope, int)</B></A> -
+Constructor for class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><B>Node</B></A> - class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A>.<DD>A node in a <A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>is a location where 0 or more <A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A>s
+ meet.<DT><A HREF="com/vividsolutions/jts/planargraph/Node.html#Node(com.vividsolutions.jts.geom.Coordinate)"><B>Node(Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A>
+<DD>Constructs a Node with the given location.
+<DT><A HREF="com/vividsolutions/jts/planargraph/Node.html#Node(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.planargraph.DirectedEdgeStar)"><B>Node(Coordinate, DirectedEdgeStar)</B></A> -
+Constructor for class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A>
+<DD>Constructs a Node with the given location and collection of outgoing DirectedEdges.
+<DT><A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree"><B>NodeBase</B></A> - class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A>.<DD>The base class for nodes in a <A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree"><CODE>Bintree</CODE></A>.<DT><A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html#NodeBase()"><B>NodeBase()</B></A> -
+Constructor for class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree"><B>NodeBase</B></A> - class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>.<DD>The base class for nodes in a <A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><CODE>Quadtree</CODE></A>.<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html#NodeBase()"><B>NodeBase()</B></A> -
+Constructor for class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph"><B>NodeFactory</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">NodeFactory</A>.<DD> <DT><A HREF="com/vividsolutions/jts/geomgraph/NodeFactory.html#NodeFactory()"><B>NodeFactory()</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph">NodeFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph"><B>NodeMap</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph">NodeMap</A>.<DD>A map of nodes, indexed by the coordinate of the node<DT><A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html#NodeMap(com.vividsolutions.jts.geomgraph.NodeFactory)"><B>NodeMap(NodeFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph">NodeMap</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph"><B>NodeMap</B></A> - class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph">NodeMap</A>.<DD>A map of <A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A>s, indexed by the coordinate of the node.<DT><A HREF="com/vividsolutions/jts/planargraph/NodeMap.html#NodeMap()"><B>NodeMap()</B></A> -
+Constructor for class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph">NodeMap</A>
+<DD>Constructs a NodeMap without any Nodes.
+<DT><A HREF="com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><B>Noder</B></A> - interface com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A>.<DD>Computes all intersections between segments in a set of <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/noding/NodingValidator.html" title="class in com.vividsolutions.jts.noding"><B>NodingValidator</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/NodingValidator.html" title="class in com.vividsolutions.jts.noding">NodingValidator</A>.<DD>Validates that a collection of <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s is correctly noded.<DT><A HREF="com/vividsolutions/jts/noding/NodingValidator.html#NodingValidator(java.util.Collection)"><B>NodingValidator(Collection)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/NodingValidator.html" title="class in com.vividsolutions.jts.noding">NodingValidator</A>
+<DD>Creates a new validator for the given collection
+ of <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.
+<DT><A HREF="com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>NonRobustCGAlgorithms</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">NonRobustCGAlgorithms</A>.<DD>Non-robust versions of various fundamental Computational Geometric algorithms,
+ <b>FOR TESTING PURPOSES ONLY!</b>.<DT><A HREF="com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html#NonRobustCGAlgorithms()"><B>NonRobustCGAlgorithms()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">NonRobustCGAlgorithms</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>NonRobustLineIntersector</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm">NonRobustLineIntersector</A>.<DD>A non-robust version of .<DT><A HREF="com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html#NonRobustLineIntersector()"><B>NonRobustLineIntersector()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm">NonRobustLineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html" title="class in com.vividsolutions.jts.geom.util"><B>NoninvertibleTransformationException</B></A> - exception com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html" title="class in com.vividsolutions.jts.geom.util">NoninvertibleTransformationException</A>.<DD>Indicates that an <A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><CODE>AffineTransformation</CODE></A>
+ is non-invertible.<DT><A HREF="com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html#NoninvertibleTransformationException()"><B>NoninvertibleTransformationException()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html" title="class in com.vividsolutions.jts.geom.util">NoninvertibleTransformationException</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html#NoninvertibleTransformationException(java.lang.String)"><B>NoninvertibleTransformationException(String)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html" title="class in com.vividsolutions.jts.geom.util">NoninvertibleTransformationException</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm"><B>NotRepresentableException</B></A> - exception com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm">NotRepresentableException</A>.<DD>Indicates that a <A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm"><CODE>HCoordinate</CODE></A> has been computed which is
+ not representable on the Cartesian plane.<DT><A HREF="com/vividsolutions/jts/algorithm/NotRepresentableException.html#NotRepresentableException()"><B>NotRepresentableException()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm">NotRepresentableException</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html#nSnaps"><B>nSnaps</B></A> -
+Static variable in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexPointSnapper</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollectionIterator.html#next()"><B>next()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom">GeometryCollectionIterator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearIterator.html#next()"><B>next()</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref">LinearIterator</A>
+<DD>Moves the iterator ahead to the next vertex and (possibly) linear component.
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#nodeIterator()"><B>nodeIterator()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>Returns an Iterator over the Nodes in this PlanarGraph.
+<DT><A HREF="com/vividsolutions/jts/planargraph/Subgraph.html#nodeIterator()"><B>nodeIterator()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph">Subgraph</A>
+<DD>Returns an <CODE>Iterator</CODE> over the <A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Node</CODE></A>s in this graph.
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#nodeMap"><B>nodeMap</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/Subgraph.html#nodeMap"><B>nodeMap</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph">Subgraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Bintree.html#nodeSize()"><B>nodeSize()</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree">Bintree</A>
+<DD>Compute the total number of nodes in the tree
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#nodes"><B>nodes</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#nonRobustComputeEdgeDistance(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>nonRobustComputeEdgeDistance(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>This function is non-robust, since it may compute the square of large numbers.
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#normalize(double)"><B>normalize(double)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>Computes the normalized value of an angle, which is the
+ equivalent angle in the range [ -Pi, Pi ].
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#normalize()"><B>normalize()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Converts this <code>Geometry</code> to <b>normal form</b> (or <b>
+ canonical form</b> ).
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollection.html#normalize()"><B>normalize()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#normalize()"><B>normalize()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Puts the line segment into a normalized form.
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#normalize()"><B>normalize()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>Normalizes a LineString.
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#normalize()"><B>normalize()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#normalize()"><B>normalize()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Depth.html#normalize()"><B>normalize()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A>
+<DD>Normalize the depths for each geometry, if they are non-null.
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#normalizePositive(double)"><B>normalizePositive(double)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>Computes the normalized positive value of an angle, which is the
+ equivalent angle in the range [ 0, 2*Pi ].
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html#numCommonMantissaBits(com.vividsolutions.jts.index.quadtree.DoubleBits)"><B>numCommonMantissaBits(DoubleBits)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>
+<DD>This computes the number of common most-significant bits in the mantissa.
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBits.html#numCommonMostSigMantissaBits(long, long)"><B>numCommonMostSigMantissaBits(long, long)</B></A> -
+Static method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision">CommonBits</A>
+<DD>This computes the number of common most-significant bits in the mantissas
+ of two double-precision numbers.
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html#numInteriorIntersections"><B>numInteriorIntersections</B></A> -
+Variable in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html#numIntersections"><B>numIntersections</B></A> -
+Variable in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html#numProperIntersections"><B>numProperIntersections</B></A> -
+Variable in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#numTests"><B>numTests</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html#numTests"><B>numTests</B></A> -
+Variable in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_O_"><!-- --></A><H2>
+<B>O</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html#OGC_SFS_BOUNDARY_RULE"><B>OGC_SFS_BOUNDARY_RULE</B></A> -
+Static variable in interface com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A>
+<DD>The Boundary Node Rule specified by the OGC Simple Features Specification,
+ equal to the Mod-2 rule.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html#OLDcompare(java.lang.Object, java.lang.Object)"><B>OLDcompare(Object, Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays.BidirectionalComparator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Position.html#ON"><B>ON</B></A> -
+Static variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph">Position</A>
+<DD>An indicator that a Location is <i>on</i> a GraphComponent
+<DT><A HREF="com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding"><B>Octant</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding">Octant</A>.<DD>Methods for computing and working with octants of the Cartesian plane
+ Octants are numbered as follows:
+ <DT><A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>OffsetCurveBuilder</B></A> - class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveBuilder</A>.<DD>Computes the raw offset curve for a
+ single <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> component (ring, line or point).<DT><A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html#OffsetCurveBuilder(com.vividsolutions.jts.geom.PrecisionModel)"><B>OffsetCurveBuilder(PrecisionModel)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html#OffsetCurveBuilder(com.vividsolutions.jts.geom.PrecisionModel, int)"><B>OffsetCurveBuilder(PrecisionModel, int)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>OffsetCurveSetBuilder</B></A> - class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveSetBuilder</A>.<DD>Creates all the raw offset curves for a buffer of a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html#OffsetCurveSetBuilder(com.vividsolutions.jts.geom.Geometry, double, com.vividsolutions.jts.operation.buffer.OffsetCurveBuilder)"><B>OffsetCurveSetBuilder(Geometry, double, OffsetCurveBuilder)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveSetBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>OffsetPointGenerator</B></A> - class com.vividsolutions.jts.operation.overlay.validate.<A HREF="com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">OffsetPointGenerator</A>.<DD>Generates points offset by a given distance
+ from both sides of the midpoint of
+ all segments in a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html#OffsetPointGenerator(com.vividsolutions.jts.geom.Geometry, double)"><B>OffsetPointGenerator(Geometry, double)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.validate.<A HREF="com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">OffsetPointGenerator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding"><B>OrientedCoordinateArray</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding">OrientedCoordinateArray</A>.<DD>Allows comparing <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> arrays
+ in an orientation-independent way.<DT><A HREF="com/vividsolutions/jts/noding/OrientedCoordinateArray.html#OrientedCoordinateArray(com.vividsolutions.jts.geom.Coordinate[])"><B>OrientedCoordinateArray(Coordinate[])</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding">OrientedCoordinateArray</A>
+<DD>Creates a new <A HREF="com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding"><CODE>OrientedCoordinateArray</CODE></A>
+ for the given <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> array.
+<DT><A HREF="com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io"><B>OutStream</B></A> - interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io">OutStream</A>.<DD>A interface for classes providing an output stream of bytes.<DT><A HREF="com/vividsolutions/jts/io/OutputStreamOutStream.html" title="class in com.vividsolutions.jts.io"><B>OutputStreamOutStream</B></A> - class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/OutputStreamOutStream.html" title="class in com.vividsolutions.jts.io">OutputStreamOutStream</A>.<DD>An adapter to allow an <CODE>OutputStream</CODE> to be used as an <A HREF="com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io"><CODE>OutStream</CODE></A><DT><A HREF="com/vividsolutions/jts/io/OutputStreamOutStream.html#OutputStreamOutStream(java.io.OutputStream)"><B>OutputStreamOutStream(OutputStream)</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/OutputStreamOutStream.html" title="class in com.vividsolutions.jts.io">OutputStreamOutStream</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html" title="class in com.vividsolutions.jts.operation.overlay"><B>OverlayNodeFactory</B></A> - class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayNodeFactory</A>.<DD>Creates nodes for use in the <A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>PlanarGraph</CODE></A>s constructed during
+ overlay operations.<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html#OverlayNodeFactory()"><B>OverlayNodeFactory()</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayNodeFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay"><B>OverlayOp</B></A> - class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>.<DD>Computes the overlay of two <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#OverlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>OverlayOp(Geometry, Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>OverlayResultValidator</B></A> - class com.vividsolutions.jts.operation.overlay.validate.<A HREF="com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">OverlayResultValidator</A>.<DD>Validates that the result of an overlay operation is
+ geometrically correct within a given tolerance.<DT><A HREF="com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html#OverlayResultValidator(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>OverlayResultValidator(Geometry, Geometry, Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.validate.<A HREF="com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html" title="class in com.vividsolutions.jts.operation.overlay.validate">OverlayResultValidator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/Octant.html#octant(double, double)"><B>octant(double, double)</B></A> -
+Static method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding">Octant</A>
+<DD>Returns the octant of a directed line segment (specified as x and y
+ displacements, which cannot both be 0).
+<DT><A HREF="com/vividsolutions/jts/noding/Octant.html#octant(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>octant(Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding">Octant</A>
+<DD>Returns the octant of a directed line segment from p0 to p1.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Position.html#opposite(int)"><B>opposite(int)</B></A> -
+Static method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph">Position</A>
+<DD>Returns LEFT if the position is RIGHT, RIGHT if the position is LEFT, or the position
+ otherwise.
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#orientationIndex(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>orientationIndex(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>Returns the index of the direction of the point <code>q</code>
+ relative to a
+ vector specified by <code>p1-p2</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#orientationIndex(com.vividsolutions.jts.geom.LineSegment)"><B>orientationIndex(LineSegment)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Determines the orientation of a LineSegment relative to this segment.
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#outEdges"><B>outEdges</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A>
+<DD>The underlying list of outgoing DirectedEdges
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html#overlap(com.vividsolutions.jts.index.chain.MonotoneChain, int, com.vividsolutions.jts.index.chain.MonotoneChain, int)"><B>overlap(MonotoneChain, int, MonotoneChain, int)</B></A> -
+Method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainOverlapAction</A>
+<DD>This function can be overridden if the original chains are needed
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html#overlap(com.vividsolutions.jts.geom.LineSegment, com.vividsolutions.jts.geom.LineSegment)"><B>overlap(LineSegment, LineSegment)</B></A> -
+Method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainOverlapAction</A>
+<DD>This is a convenience function which can be overridden to obtain the actual
+ line segments which overlap
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html#overlap(com.vividsolutions.jts.index.sweepline.SweepLineInterval, com.vividsolutions.jts.index.sweepline.SweepLineInterval)"><B>overlap(SweepLineInterval, SweepLineInterval)</B></A> -
+Method in interface com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html" title="interface in com.vividsolutions.jts.index.sweepline">SweepLineOverlapAction</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html#overlap(com.vividsolutions.jts.index.chain.MonotoneChain, int, com.vividsolutions.jts.index.chain.MonotoneChain, int)"><B>overlap(MonotoneChain, int, MonotoneChain, int)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html" title="class in com.vividsolutions.jts.noding">MCIndexNoder.SegmentOverlapAction</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html#overlapSeg1"><B>overlapSeg1</B></A> -
+Variable in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainOverlapAction</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html#overlapSeg2"><B>overlapSeg2</B></A> -
+Variable in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainOverlapAction</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#overlaps(com.vividsolutions.jts.geom.Envelope)"><B>overlaps(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD><B>Deprecated.</B> <I>Use #intersects instead. In the future, #overlaps may be
+ changed to be a true overlap check; that is, whether the intersection is
+ two-dimensional.</I>
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#overlaps(com.vividsolutions.jts.geom.Coordinate)"><B>overlaps(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD><B>Deprecated.</B> <I>Use #intersects instead.</I>
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#overlaps(double, double)"><B>overlaps(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD><B>Deprecated.</B> <I>Use #intersects instead.</I>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#overlaps(com.vividsolutions.jts.geom.Geometry)"><B>overlaps(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns <code>true</code> if this geometry overlaps the
+ specified geometry.
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#overlaps(com.vividsolutions.jts.index.bintree.Interval)"><B>overlaps(Interval)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#overlaps(double, double)"><B>overlaps(double, double)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#overlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, int)"><B>overlayOp(Geometry, Geometry, int)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html#overlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, int)"><B>overlayOp(Geometry, Geometry, int)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapIfNeededOverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html#overlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, int)"><B>overlayOp(Geometry, Geometry, int)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapOverlayOp</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_P_"><!-- --></A><H2>
+<B>P</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/geom/Dimension.html#P"><B>P</B></A> -
+Static variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom">Dimension</A>
+<DD>Dimension value of a point (0).
+<DT><A HREF="com/vividsolutions/jts/JTSVersion.html#PATCH"><B>PATCH</B></A> -
+Static variable in class com.vividsolutions.jts.<A HREF="com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts">JTSVersion</A>
+<DD>The patch version number.
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#PI_OVER_2"><B>PI_OVER_2</B></A> -
+Static variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#PI_OVER_4"><B>PI_OVER_4</B></A> -
+Static variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#PI_TIMES_2"><B>PI_TIMES_2</B></A> -
+Static variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl"><B>PackedCoordinateSequence</B></A> - class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>.<DD>A <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A> implementation based on a packed arrays.<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#PackedCoordinateSequence()"><B>PackedCoordinateSequence()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl"><B>PackedCoordinateSequence.Double</B></A> - class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>.<DD>Packed coordinate sequence implementation based on doubles<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#PackedCoordinateSequence.Double(double[], int)"><B>PackedCoordinateSequence.Double(double[], int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>
+<DD>Builds a new packed coordinate sequence
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#PackedCoordinateSequence.Double(float[], int)"><B>PackedCoordinateSequence.Double(float[], int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>
+<DD>Builds a new packed coordinate sequence out of a float coordinate array
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#PackedCoordinateSequence.Double(com.vividsolutions.jts.geom.Coordinate[], int)"><B>PackedCoordinateSequence.Double(Coordinate[], int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>
+<DD>Builds a new packed coordinate sequence out of a coordinate array
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#PackedCoordinateSequence.Double(com.vividsolutions.jts.geom.Coordinate[])"><B>PackedCoordinateSequence.Double(Coordinate[])</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>
+<DD>Builds a new packed coordinate sequence out of a coordinate array
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#PackedCoordinateSequence.Double(int, int)"><B>PackedCoordinateSequence.Double(int, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>
+<DD>Builds a new empty packed coordinate sequence of a given size and dimension
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl"><B>PackedCoordinateSequence.Float</B></A> - class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A>.<DD>Packed coordinate sequence implementation based on floats<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#PackedCoordinateSequence.Float(float[], int)"><B>PackedCoordinateSequence.Float(float[], int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A>
+<DD>Constructs a packed coordinate sequence from an array of <code>float<code>s
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#PackedCoordinateSequence.Float(double[], int)"><B>PackedCoordinateSequence.Float(double[], int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A>
+<DD>Constructs a packed coordinate sequence from an array of <code>double<code>s
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#PackedCoordinateSequence.Float(com.vividsolutions.jts.geom.Coordinate[], int)"><B>PackedCoordinateSequence.Float(Coordinate[], int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A>
+<DD>Constructs a packed coordinate sequence out of a coordinate array
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#PackedCoordinateSequence.Float(int, int)"><B>PackedCoordinateSequence.Float(int, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A>
+<DD>Constructs an empty packed coordinate sequence of a given size and dimension
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl"><B>PackedCoordinateSequenceFactory</B></A> - class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>.<DD>Builds packed array coordinate sequences.<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#PackedCoordinateSequenceFactory()"><B>PackedCoordinateSequenceFactory()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>Creates a new PackedCoordinateSequenceFactory
+ of type DOUBLE.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#PackedCoordinateSequenceFactory(int)"><B>PackedCoordinateSequenceFactory(int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>Creates a new PackedCoordinateSequenceFactory
+ of the given type.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#PackedCoordinateSequenceFactory(int, int)"><B>PackedCoordinateSequenceFactory(int, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>Creates a new PackedCoordinateSequenceFactory
+ of the given type.
+<DT><A HREF="com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io"><B>ParseException</B></A> - exception com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io">ParseException</A>.<DD>Thrown by a <code>WKTReader</code> when a parsing problem occurs.<DT><A HREF="com/vividsolutions/jts/io/ParseException.html#ParseException(java.lang.String)"><B>ParseException(String)</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io">ParseException</A>
+<DD>Creates a <code>ParseException</code> with the given detail message.
+<DT><A HREF="com/vividsolutions/jts/io/ParseException.html#ParseException(java.lang.Exception)"><B>ParseException(Exception)</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io">ParseException</A>
+<DD>Creates a <code>ParseException</code> with <code>e</code>s detail message.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph"><B>PlanarGraph</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>.<DD>The computation of the <code>IntersectionMatrix</code> relies on the use of a structure
+ called a "topology graph".<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#PlanarGraph(com.vividsolutions.jts.geomgraph.NodeFactory)"><B>PlanarGraph(NodeFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#PlanarGraph()"><B>PlanarGraph()</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><B>PlanarGraph</B></A> - class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>.<DD>Represents a directed graph which is embeddable in a planar surface.<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#PlanarGraph()"><B>PlanarGraph()</B></A> -
+Constructor for class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>Constructs a empty graph.
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><B>Point</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>.<DD>Basic implementation of <code>Point</code>.<DT><A HREF="com/vividsolutions/jts/geom/Point.html#Point(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.PrecisionModel, int)"><B>Point(Coordinate, PrecisionModel, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<DT><A HREF="com/vividsolutions/jts/geom/Point.html#Point(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.GeometryFactory)"><B>Point(CoordinateSequence, GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">Point</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/PointBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PointBuilder</B></A> - class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/PointBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">PointBuilder</A>.<DD>Constructs <A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><CODE>Point</CODE></A>s from the nodes of an overlay graph.<DT><A HREF="com/vividsolutions/jts/operation/overlay/PointBuilder.html#PointBuilder(com.vividsolutions.jts.operation.overlay.OverlayOp, com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.PointLocator)"><B>PointBuilder(OverlayOp, GeometryFactory, PointLocator)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/PointBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">PointBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/PointExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>PointExtracter</B></A> - class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/PointExtracter.html" title="class in com.vividsolutions.jts.geom.util">PointExtracter</A>.<DD>Extracts all the 0-dimensional (<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><CODE>Point</CODE></A>) components from a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/geom/util/PointExtracter.html#PointExtracter(java.util.List)"><B>PointExtracter(List)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/PointExtracter.html" title="class in com.vividsolutions.jts.geom.util">PointExtracter</A>
+<DD>Constructs a PointExtracterFilter with a list in which to store Points found.
+<DT><A HREF="com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm"><B>PointInRing</B></A> - interface com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A>.<DD>An interface for classes which test whether a <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> lies inside
+ a ring.<DT><A HREF="com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm"><B>PointLocator</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm">PointLocator</A>.<DD>Computes the topological relationship (<A HREF="com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><CODE>Location</CODE></A>)
+ of a single point to a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/algorithm/PointLocator.html#PointLocator()"><B>PointLocator()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm">PointLocator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/PointLocator.html#PointLocator(com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><B>PointLocator(BoundaryNodeRule)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm">PointLocator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><B>Polygon</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>.<DD>Represents a linear polygon, which may include holes.<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#Polygon(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.PrecisionModel, int)"><B>Polygon(LinearRing, PrecisionModel, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#Polygon(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.LinearRing[], com.vividsolutions.jts.geom.PrecisionModel, int)"><B>Polygon(LinearRing, LinearRing[], PrecisionModel, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD><B>Deprecated.</B> <I>Use GeometryFactory instead</I>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#Polygon(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.LinearRing[], com.vividsolutions.jts.geom.GeometryFactory)"><B>Polygon(LinearRing, LinearRing[], GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>Constructs a <code>Polygon</code> with the given exterior boundary and
+ interior boundaries.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/PolygonBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PolygonBuilder</B></A> - class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/PolygonBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">PolygonBuilder</A>.<DD>Forms <A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A>s out of a graph of <A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>DirectedEdge</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/operation/overlay/PolygonBuilder.html#PolygonBuilder(com.vividsolutions.jts.geom.GeometryFactory, com.vividsolutions.jts.algorithm.CGAlgorithms)"><B>PolygonBuilder(GeometryFactory, CGAlgorithms)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/PolygonBuilder.html" title="class in com.vividsolutions.jts.operation.overlay">PolygonBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>PolygonExtracter</B></A> - class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util">PolygonExtracter</A>.<DD>Extracts all the 2-dimensional (<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><CODE>Polygon</CODE></A>) components from a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/geom/util/PolygonExtracter.html#PolygonExtracter(java.util.List)"><B>PolygonExtracter(List)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util">PolygonExtracter</A>
+<DD>Constructs a PolygonExtracterFilter with a list in which to store Polygons found.
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>PolygonizeDirectedEdge</B></A> - class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize">PolygonizeDirectedEdge</A>.<DD>A <A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A> of a <CODE>PolygonizeGraph</CODE>, which represents
+ an edge of a polygon formed by the graph.<DT><A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html#PolygonizeDirectedEdge(com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.planargraph.Node, com.vividsolutions.jts.geom.Coordinate, boolean)"><B>PolygonizeDirectedEdge(Node, Node, Coordinate, boolean)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize">PolygonizeDirectedEdge</A>
+<DD>Constructs a directed edge connecting the <code>from</code> node to the
+ <code>to</code> node.
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>Polygonizer</B></A> - class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>.<DD>Polygonizes a set of Geometrys which contain linework that
+ represents the edges of a planar graph.<DT><A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html#Polygonizer()"><B>Polygonizer()</B></A> -
+Constructor for class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>
+<DD>Create a polygonizer with the same <A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>
+ as the input <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph"><B>Position</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph">Position</A>.<DD>A Position indicates the position of a Location relative to a graph component
+ (Node, Edge, or Area).<DT><A HREF="com/vividsolutions/jts/geomgraph/Position.html#Position()"><B>Position()</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph">Position</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><B>PrecisionModel</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>.<DD>Specifies the precision model of the <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A>s in a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#PrecisionModel()"><B>PrecisionModel()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>Creates a <code>PrecisionModel</code> with a default precision
+ of FLOATING.
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#PrecisionModel(com.vividsolutions.jts.geom.PrecisionModel.Type)"><B>PrecisionModel(PrecisionModel.Type)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>Creates a <code>PrecisionModel</code> that specifies
+ an explicit precision model type.
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#PrecisionModel(double, double, double)"><B>PrecisionModel(double, double, double)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD><B>Deprecated.</B> <I>offsets are no longer supported, since internal representation is rounded floating point</I>
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#PrecisionModel(double)"><B>PrecisionModel(double)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>Creates a <code>PrecisionModel</code> that specifies Fixed precision.
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#PrecisionModel(com.vividsolutions.jts.geom.PrecisionModel)"><B>PrecisionModel(PrecisionModel)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>Copy constructor to create a new <code>PrecisionModel</code>
+ from an existing one.
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#p0"><B>p0</B></A> -
+Variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Triangle.html#p0"><B>p0</B></A> -
+Variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#p0"><B>p0</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#p1"><B>p1</B></A> -
+Variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Triangle.html#p1"><B>p1</B></A> -
+Variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#p1"><B>p1</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Triangle.html#p2"><B>p2</B></A> -
+Variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#pa"><B>pa</B></A> -
+Variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#parentEdge"><B>parentEdge</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/Subgraph.html#parentGraph"><B>parentGraph</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph">Subgraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#pb"><B>pb</B></A> -
+Variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Triangle.html#perpendicularBisector(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>perpendicularBisector(Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A>
+<DD>Computes the line which is the perpendicular bisector of the
+ line segment a-b.
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#pointAlong(double)"><B>pointAlong(double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Computes the <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> that lies a given
+ fraction along the line defined by this segment.
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#pointAlongSegmentByFraction(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, double)"><B>pointAlongSegmentByFraction(Coordinate, Coordinate, double)</B></A> -
+Static method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Computes the <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> of a point a given fraction
+ along the line segment <tt>(p0, p1)</tt>.
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html#polyList"><B>polyList</B></A> -
+Variable in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html#powerOf2(int)"><B>powerOf2(int)</B></A> -
+Static method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#precisionModel"><B>precisionModel</B></A> -
+Variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>If makePrecise is true, computed intersection coordinates will be made precise
+ using Coordinate#makePrecise
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#print(java.io.PrintStream)"><B>print(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#print(java.io.PrintStream)"><B>print(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#print(java.io.PrintStream)"><B>print(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#print(java.io.PrintStream)"><B>print(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html#print(java.io.PrintStream)"><B>print(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEndStar</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html#print(java.io.PrintStream)"><B>print(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html#print(java.io.PrintStream)"><B>print(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersectionList</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html#print(java.io.PrintStream)"><B>print(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph">EdgeList</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Node.html#print(java.io.PrintStream)"><B>print(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html#print(java.io.PrintStream)"><B>print(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph">NodeMap</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentNode.html#print(java.io.PrintStream)"><B>print(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding">SegmentNode</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html#print(java.io.PrintStream)"><B>print(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding">SegmentNodeList</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html#print(java.io.PrintStream)"><B>print(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate">EdgeEndBundle</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#print(java.io.PrintStream)"><B>print(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Prints a detailed string representation of this DirectedEdge to the given PrintStream.
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#print(java.lang.String)"><B>print(String)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#print(java.lang.Object)"><B>print(Object)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#print(boolean, java.lang.Object)"><B>print(boolean, Object)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#printEdge(java.io.PrintStream)"><B>printEdge(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html#printEdges(java.io.PrintStream)"><B>printEdges(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph">PlanarGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#printIfWatch(java.lang.Object)"><B>printIfWatch(Object)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#printReverse(java.io.PrintStream)"><B>printReverse(PrintStream)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#printWatch()"><B>printWatch()</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#println(java.lang.Object)"><B>println(Object)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#println()"><B>println()</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html#processIntersections(com.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.SegmentString, int)"><B>processIntersections(SegmentString, int, SegmentString, int)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding">InteriorIntersectionFinder</A>
+<DD>This method is called by clients
+ of the <A HREF="com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentIntersector</CODE></A> class to process
+ intersections for two segments of the <CODE>SegmentStrings</CODE> being intersected.
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html#processIntersections(com.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.SegmentString, int)"><B>processIntersections(SegmentString, int, SegmentString, int)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionAdder</A>
+<DD>This method is called by clients
+ of the <A HREF="com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentIntersector</CODE></A> class to process
+ intersections for two segments of the <CODE>SegmentStrings</CODE> being intersected.
+<DT><A HREF="com/vividsolutions/jts/noding/IntersectionFinderAdder.html#processIntersections(com.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.SegmentString, int)"><B>processIntersections(SegmentString, int, SegmentString, int)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding">IntersectionFinderAdder</A>
+<DD>This method is called by clients
+ of the <A HREF="com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentIntersector</CODE></A> class to process
+ intersections for two segments of the <CODE>SegmentStrings</CODE> being intersected.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentIntersector.html#processIntersections(com.vividsolutions.jts.noding.SegmentString, int, com.vividsolutions.jts.noding.SegmentString, int)"><B>processIntersections(SegmentString, int, SegmentString, int)</B></A> -
+Method in interface com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A>
+<DD>This method is called by clients
+ of the <A HREF="com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><CODE>SegmentIntersector</CODE></A> interface to process
+ intersections for two segments of the <CODE>SegmentStrings</CODE> being intersected.
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#project(com.vividsolutions.jts.geom.Coordinate)"><B>project(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Compute the projection of a point onto the line determined
+ by this line segment.
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#project(com.vividsolutions.jts.geom.LineSegment)"><B>project(LineSegment)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Project a line segment onto this line segment and return the resulting
+ line segment.
+<DT><A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html#project(com.vividsolutions.jts.geom.Coordinate)"><B>project(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LengthIndexedLine</A>
+<DD>Computes the index for the closest point on the line to the given point.
+<DT><A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html#project(com.vividsolutions.jts.geom.Coordinate)"><B>project(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref">LocationIndexedLine</A>
+<DD>Computes the index for the closest point on the line to the given point.
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#projectionFactor(com.vividsolutions.jts.geom.Coordinate)"><B>projectionFactor(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Computes the Projection Factor for the projection of the point p
+ onto this LineSegment.
+<DT><A HREF="com/vividsolutions/jts/planargraph/Node.html#pt"><B>pt</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph">Node</A>
+<DD>The location of this Node
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#ptNotInList(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate[])"><B>ptNotInList(Coordinate[], Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>Finds a point in a list of points which is not contained in another list of points
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html#ptNotInList(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate[])"><B>ptNotInList(Coordinate[], Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize">EdgeRing</A>
+<DD>Finds a point in a list of points which is not contained in another list of points
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderValues.html#putDouble(double, byte[], int)"><B>putDouble(double, byte[], int)</B></A> -
+Static method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io">ByteOrderValues</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderValues.html#putInt(int, byte[], int)"><B>putInt(int, byte[], int)</B></A> -
+Static method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io">ByteOrderValues</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderValues.html#putLong(long, byte[], int)"><B>putLong(long, byte[], int)</B></A> -
+Static method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io">ByteOrderValues</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_Q_"><!-- --></A><H2>
+<B>Q</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph"><B>Quadrant</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph">Quadrant</A>.<DD>Utility functions for working with quadrants, which are numbered as follows:
+ <DT><A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html#Quadrant()"><B>Quadrant()</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph">Quadrant</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><B>Quadtree</B></A> - class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree">Quadtree</A>.<DD>A Quadtree is a spatial index structure for efficient querying
+ of 2D rectangles.<DT><A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html#Quadtree()"><B>Quadtree()</B></A> -
+Constructor for class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree">Quadtree</A>
+<DD>Constructs a Quadtree with zero items.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>QuadtreeNestedRingTester</B></A> - class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">QuadtreeNestedRingTester</A>.<DD>Tests whether any of a set of <A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A>s are
+ nested inside another ring in the set, using a <A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><CODE>Quadtree</CODE></A>
+ index to speed up the comparisons.<DT><A HREF="com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html#QuadtreeNestedRingTester(com.vividsolutions.jts.geomgraph.GeometryGraph)"><B>QuadtreeNestedRingTester(GeometryGraph)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">QuadtreeNestedRingTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html#quadrant(double, double)"><B>quadrant(double, double)</B></A> -
+Static method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph">Quadrant</A>
+<DD>Returns the quadrant of a directed line segment (specified as x and y
+ displacements, which cannot both be 0).
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html#quadrant(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>quadrant(Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph">Quadrant</A>
+<DD>Returns the quadrant of a directed line segment from p0 to p1.
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#quadrant"><B>quadrant</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/SpatialIndex.html#query(com.vividsolutions.jts.geom.Envelope)"><B>query(Envelope)</B></A> -
+Method in interface com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A>
+<DD>Queries the index for all items whose extents intersect the given search <A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A>
+ Note that some kinds of indexes may also return objects which do not in fact
+ intersect the query envelope.
+<DT><A HREF="com/vividsolutions/jts/index/SpatialIndex.html#query(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)"><B>query(Envelope, ItemVisitor)</B></A> -
+Method in interface com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A>
+<DD>Queries the index for all items whose extents intersect the given search <A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><CODE>Envelope</CODE></A>,
+ and applies an <A HREF="com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index"><CODE>ItemVisitor</CODE></A> to them.
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Bintree.html#query(double)"><B>query(double)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree">Bintree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Bintree.html#query(com.vividsolutions.jts.index.bintree.Interval)"><B>query(Interval)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree">Bintree</A>
+<DD>min and max may be the same value
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Bintree.html#query(com.vividsolutions.jts.index.bintree.Interval, java.util.Collection)"><B>query(Interval, Collection)</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree">Bintree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html#query(com.vividsolutions.jts.geom.Envelope)"><B>query(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree">Quadtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html#query(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)"><B>query(Envelope, ItemVisitor)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree">Quadtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#query(java.lang.Object)"><B>query(Object)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>Also builds the tree, if necessary.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#query(java.lang.Object, com.vividsolutions.jts.index.ItemVisitor)"><B>query(Object, ItemVisitor)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>Also builds the tree, if necessary.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html#query(double)"><B>query(double)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree">SIRtree</A>
+<DD>Returns items whose bounds intersect the given value.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html#query(double, double)"><B>query(double, double)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree">SIRtree</A>
+<DD>Returns items whose bounds intersect the given bounds.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/STRtree.html#query(com.vividsolutions.jts.geom.Envelope)"><B>query(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>
+<DD>Returns items whose bounds intersect the given envelope.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/STRtree.html#query(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)"><B>query(Envelope, ItemVisitor)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>
+<DD>Returns items whose bounds intersect the given envelope.
+<DT><A HREF="com/vividsolutions/jts/simplify/LineSegmentIndex.html#query(com.vividsolutions.jts.geom.LineSegment)"><B>query(LineSegment)</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify">LineSegmentIndex</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html#queryAll()"><B>queryAll()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree">Quadtree</A>
+<DD>Return a list of all items in the Quadtree
+</DL>
+<HR>
+<A NAME="_R_"><!-- --></A><H2>
+<B>R</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#REPEATED_POINT"><B>REPEATED_POINT</B></A> -
+Static variable in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD><B>Deprecated.</B> <I></I>
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#RIGHT"><B>RIGHT</B></A> -
+Static variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Position.html#RIGHT"><B>RIGHT</B></A> -
+Static variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph">Position</A>
+<DD>An indicator that a Location is to the <i>right</i> of a GraphComponent
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#RING_NOT_CLOSED"><B>RING_NOT_CLOSED</B></A> -
+Static variable in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Indicates that a ring is not correctly closed
+ (the first and the last coordinate are different)
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#RING_SELF_INTERSECTION"><B>RING_SELF_INTERSECTION</B></A> -
+Static variable in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Indicates that a ring self-intersects
+<DT><A HREF="com/vividsolutions/jts/operation/predicate/RectangleContains.html" title="class in com.vividsolutions.jts.operation.predicate"><B>RectangleContains</B></A> - class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/RectangleContains.html" title="class in com.vividsolutions.jts.operation.predicate">RectangleContains</A>.<DD>Optimized implementation of spatial predicate "contains"
+ for cases where the first <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is a rectangle.<DT><A HREF="com/vividsolutions/jts/operation/predicate/RectangleContains.html#RectangleContains(com.vividsolutions.jts.geom.Polygon)"><B>RectangleContains(Polygon)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/RectangleContains.html" title="class in com.vividsolutions.jts.operation.predicate">RectangleContains</A>
+<DD>Create a new contains computer for two geometries.
+<DT><A HREF="com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate"><B>RectangleIntersects</B></A> - class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate">RectangleIntersects</A>.<DD>Optimized implementation of spatial predicate "intersects"
+ for cases where the first <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> is a rectangle.<DT><A HREF="com/vividsolutions/jts/operation/predicate/RectangleIntersects.html#RectangleIntersects(com.vividsolutions.jts.geom.Polygon)"><B>RectangleIntersects(Polygon)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate">RectangleIntersects</A>
+<DD>Create a new intersects computer for a rectangle.
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateComputer.html" title="class in com.vividsolutions.jts.operation.relate"><B>RelateComputer</B></A> - class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateComputer.html" title="class in com.vividsolutions.jts.operation.relate">RelateComputer</A>.<DD>Computes the topological relationship between two Geometries.<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateComputer.html#RelateComputer(com.vividsolutions.jts.geomgraph.GeometryGraph[])"><B>RelateComputer(GeometryGraph[])</B></A> -
+Constructor for class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateComputer.html" title="class in com.vividsolutions.jts.operation.relate">RelateComputer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate"><B>RelateNode</B></A> - class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate">RelateNode</A>.<DD>Represents a node in the topological graph used to compute spatial relationships.<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateNode.html#RelateNode(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geomgraph.EdgeEndStar)"><B>RelateNode(Coordinate, EdgeEndStar)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate">RelateNode</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateNodeFactory.html" title="class in com.vividsolutions.jts.operation.relate"><B>RelateNodeFactory</B></A> - class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeFactory.html" title="class in com.vividsolutions.jts.operation.relate">RelateNodeFactory</A>.<DD>Used by the <A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph"><CODE>NodeMap</CODE></A> in a <A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate"><CODE>RelateNodeGraph</CODE></A> to create <A HREF="com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate"><CODE>RelateNode</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateNodeFactory.html#RelateNodeFactory()"><B>RelateNodeFactory()</B></A> -
+Constructor for class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeFactory.html" title="class in com.vividsolutions.jts.operation.relate">RelateNodeFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate"><B>RelateNodeGraph</B></A> - class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate">RelateNodeGraph</A>.<DD>Implements the simple graph of Nodes and EdgeEnd which is all that is
+ required to determine topological relationships between Geometries.<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html#RelateNodeGraph()"><B>RelateNodeGraph()</B></A> -
+Constructor for class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate">RelateNodeGraph</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateOp.html" title="class in com.vividsolutions.jts.operation.relate"><B>RelateOp</B></A> - class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateOp.html" title="class in com.vividsolutions.jts.operation.relate">RelateOp</A>.<DD>Implements the SFS <tt>relate()</tt> operation on two <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateOp.html#RelateOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>RelateOp(Geometry, Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateOp.html" title="class in com.vividsolutions.jts.operation.relate">RelateOp</A>
+<DD>Creates a new Relate operation, using the default (OGC SFS) Boundary Node Rule.
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateOp.html#RelateOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><B>RelateOp(Geometry, Geometry, BoundaryNodeRule)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateOp.html" title="class in com.vividsolutions.jts.operation.relate">RelateOp</A>
+<DD>Creates a new Relate operation with a specified Boundary Node Rule.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>RepeatedPointTester</B></A> - class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid">RepeatedPointTester</A>.<DD>Implements the appropriate checks for repeated points
+ (consecutive identical coordinates) as defined in the
+ JTS spec.<DT><A HREF="com/vividsolutions/jts/operation/valid/RepeatedPointTester.html#RepeatedPointTester()"><B>RepeatedPointTester()</B></A> -
+Constructor for class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid">RepeatedPointTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>RightmostEdgeFinder</B></A> - class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer">RightmostEdgeFinder</A>.<DD>A RightmostEdgeFinder find the DirectedEdge in a list which has the highest coordinate,
+ and which is oriented L to R at that point.<DT><A HREF="com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html#RightmostEdgeFinder(com.vividsolutions.jts.algorithm.CGAlgorithms)"><B>RightmostEdgeFinder(CGAlgorithms)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer">RightmostEdgeFinder</A>
+<DD>A RightmostEdgeFinder finds the DirectedEdge with the rightmost coordinate.
+<DT><A HREF="com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>RobustCGAlgorithms</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">RobustCGAlgorithms</A>.<DD>Stub version of RobustCGAlgorithms for backwards compatibility.<DT><A HREF="com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html#RobustCGAlgorithms()"><B>RobustCGAlgorithms()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">RobustCGAlgorithms</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/RobustDeterminant.html" title="class in com.vividsolutions.jts.algorithm"><B>RobustDeterminant</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/RobustDeterminant.html" title="class in com.vividsolutions.jts.algorithm">RobustDeterminant</A>.<DD>Implements an algorithm to compute the
+ sign of a 2x2 determinant for double precision values robustly.<DT><A HREF="com/vividsolutions/jts/algorithm/RobustDeterminant.html#RobustDeterminant()"><B>RobustDeterminant()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/RobustDeterminant.html" title="class in com.vividsolutions.jts.algorithm">RobustDeterminant</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>RobustLineIntersector</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm">RobustLineIntersector</A>.<DD>A robust version of .<DT><A HREF="com/vividsolutions/jts/algorithm/RobustLineIntersector.html#RobustLineIntersector()"><B>RobustLineIntersector()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm">RobustLineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Root.html" title="class in com.vividsolutions.jts.index.bintree"><B>Root</B></A> - class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Root.html" title="class in com.vividsolutions.jts.index.bintree">Root</A>.<DD>The root node of a single <A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree"><CODE>Bintree</CODE></A>.<DT><A HREF="com/vividsolutions/jts/index/bintree/Root.html#Root()"><B>Root()</B></A> -
+Constructor for class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Root.html" title="class in com.vividsolutions.jts.index.bintree">Root</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Root.html" title="class in com.vividsolutions.jts.index.quadtree"><B>Root</B></A> - class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Root.html" title="class in com.vividsolutions.jts.index.quadtree">Root</A>.<DD>QuadRoot is the root of a single Quadtree.<DT><A HREF="com/vividsolutions/jts/index/quadtree/Root.html#Root()"><B>Root()</B></A> -
+Constructor for class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Root.html" title="class in com.vividsolutions.jts.index.quadtree">Root</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/ByteArrayInStream.html#read(byte[])"><B>read(byte[])</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteArrayInStream.html" title="class in com.vividsolutions.jts.io">ByteArrayInStream</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/InStream.html#read(byte[])"><B>read(byte[])</B></A> -
+Method in interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A>
+<DD>Reads <code>buf.length</code> bytes from the input stream
+ and stores them in the supplied buffer.
+<DT><A HREF="com/vividsolutions/jts/io/InputStreamInStream.html#read(byte[])"><B>read(byte[])</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/InputStreamInStream.html" title="class in com.vividsolutions.jts.io">InputStreamInStream</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKBReader.html#read(byte[])"><B>read(byte[])</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io">WKBReader</A>
+<DD>Reads a single <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> from a byte array.
+<DT><A HREF="com/vividsolutions/jts/io/WKBReader.html#read(com.vividsolutions.jts.io.InStream)"><B>read(InStream)</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io">WKBReader</A>
+<DD>Reads a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> from an {@link InStream).
+<DT><A HREF="com/vividsolutions/jts/io/WKTReader.html#read(java.lang.String)"><B>read(String)</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io">WKTReader</A>
+<DD>Reads a Well-Known Text representation of a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ from a <CODE>String</CODE>.
+<DT><A HREF="com/vividsolutions/jts/io/WKTReader.html#read(java.io.Reader)"><B>read(Reader)</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io">WKTReader</A>
+<DD>Reads a Well-Known Text representation of a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ from a <CODE>Reader</CODE>.
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html#readByte()"><B>readByte()</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io">ByteOrderDataInStream</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html#readDouble()"><B>readDouble()</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io">ByteOrderDataInStream</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html#readInt()"><B>readInt()</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io">ByteOrderDataInStream</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html#readLong()"><B>readLong()</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io">ByteOrderDataInStream</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html#reduce(com.vividsolutions.jts.geom.Geometry)"><B>reduce(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html" title="class in com.vividsolutions.jts.precision">SimpleGeometryPrecisionReducer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#reflect(double, double, double, double)"><B>reflect(double, double, double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Updates the value of this transformation
+ to that of a reflection transformation composed
+ with the current value.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#reflect(double, double)"><B>reflect(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Updates the value of this transformation
+ to that of a reflection transformation composed
+ with the current value.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#reflectionInstance(double, double, double, double)"><B>reflectionInstance(double, double, double, double)</B></A> -
+Static method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Creates a transformation for a reflection about the
+ line (x0,y0) - (x1,y1).
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#reflectionInstance(double, double)"><B>reflectionInstance(double, double)</B></A> -
+Static method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Creates a transformation for a reflection about the
+ line (0,0) - (x,y).
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry, java.lang.String)"><B>relate(Geometry, String)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns <code>true</code> if the elements in the DE-9IM
+ <A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><CODE>IntersectionMatrix</CODE></A> for the two <code>Geometry</code>s match the elements in <code>intersectionPattern</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#relate(com.vividsolutions.jts.geom.Geometry)"><B>relate(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the DE-9IM <A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><CODE>IntersectionMatrix</CODE></A> for the two <code>Geometry</code>s.
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateOp.html#relate(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>relate(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateOp.html" title="class in com.vividsolutions.jts.operation.relate">RelateOp</A>
+<DD>Computes the <A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><CODE>IntersectionMatrix</CODE></A> for the spatial relationship
+ between two <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using the default (OGC SFS) Boundary Node Rule
+<DT><A HREF="com/vividsolutions/jts/operation/relate/RelateOp.html#relate(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.algorithm.BoundaryNodeRule)"><B>relate(Geometry, Geometry, BoundaryNodeRule)</B></A> -
+Static method in class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateOp.html" title="class in com.vividsolutions.jts.operation.relate">RelateOp</A>
+<DD>Computes the <A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><CODE>IntersectionMatrix</CODE></A> for the spatial relationship
+ between two <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s using a specified Boundary Node Rule.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentPointComparator.html#relativeSign(double, double)"><B>relativeSign(double, double)</B></A> -
+Static method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentPointComparator.html" title="class in com.vividsolutions.jts.noding">SegmentPointComparator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryCollectionIterator.html#remove()"><B>remove()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom">GeometryCollectionIterator</A>
+<DD>Not implemented.
+<DT><A HREF="com/vividsolutions/jts/index/SpatialIndex.html#remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><B>remove(Envelope, Object)</B></A> -
+Method in interface com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A>
+<DD>Removes a single item from the tree.
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html#remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><B>remove(Envelope, Object)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<DD>Removes a single item from this subtree.
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html#remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><B>remove(Envelope, Object)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree">Quadtree</A>
+<DD>Removes a single item from the tree.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#remove(java.lang.Object, java.lang.Object)"><B>remove(Object, Object)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>Removes an item from the tree.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/STRtree.html#remove(com.vividsolutions.jts.geom.Envelope, java.lang.Object)"><B>remove(Envelope, Object)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>
+<DD>Removes a single item from the tree.
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html#remove(com.vividsolutions.jts.planargraph.DirectedEdge)"><B>remove(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdgeStar</A>
+<DD>Drops a member of this DirectedEdgeStar.
+<DT><A HREF="com/vividsolutions/jts/planargraph/NodeMap.html#remove(com.vividsolutions.jts.geom.Coordinate)"><B>remove(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph">NodeMap</A>
+<DD>Removes the Node at the given location, and returns it (or null if no Node was there).
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#remove(com.vividsolutions.jts.planargraph.Edge)"><B>remove(Edge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>Removes an <A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>Edge</CODE></A> and its associated <A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><CODE>DirectedEdge</CODE></A>s
+ from their from-Nodes and from the graph.
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#remove(com.vividsolutions.jts.planargraph.DirectedEdge)"><B>remove(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>Removes DirectedEdge from its from-Node and from this PlanarGraph.
+<DT><A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html#remove(com.vividsolutions.jts.planargraph.Node)"><B>remove(Node)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph">PlanarGraph</A>
+<DD>Removes a node from the graph, along with any associated DirectedEdges and
+ Edges.
+<DT><A HREF="com/vividsolutions/jts/simplify/LineSegmentIndex.html#remove(com.vividsolutions.jts.geom.LineSegment)"><B>remove(LineSegment)</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify">LineSegmentIndex</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBitsRemover.html#removeCommonBits(com.vividsolutions.jts.geom.Geometry)"><B>removeCommonBits(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision">CommonBitsRemover</A>
+<DD>Removes the common coordinate bits from a Geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#removeRepeatedPoints(com.vividsolutions.jts.geom.Coordinate[])"><B>removeRepeatedPoints(Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>If the coordinate array argument has repeated points,
+ constructs a new array containing no repeated points.
+<DT><A HREF="com/vividsolutions/jts/util/Stopwatch.html#reset()"><B>reset()</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util">Stopwatch</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#result"><B>result</B></A> -
+Variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html#resultPrecisionModel"><B>resultPrecisionModel</B></A> -
+Variable in class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#reverse(com.vividsolutions.jts.geom.Coordinate[])"><B>reverse(Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>Reverses the coordinates in an array in-place.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequences.html#reverse(com.vividsolutions.jts.geom.CoordinateSequence)"><B>reverse(CoordinateSequence)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequences.html" title="class in com.vividsolutions.jts.geom">CoordinateSequences</A>
+<DD>Reverses the coordinates in a sequence in-place.
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#reverse()"><B>reverse()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>Reverses the direction of the line segment.
+<DT><A HREF="com/vividsolutions/jts/geom/LineString.html#reverse()"><B>reverse()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A>
+<DD>Creates a <A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> whose coordinates are in the reverse
+ order of this objects
+<DT><A HREF="com/vividsolutions/jts/geom/MultiLineString.html#reverse()"><B>reverse()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">MultiLineString</A>
+<DD>Creates a <A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><CODE>MultiLineString</CODE></A> in the reverse
+ order to this object.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#root"><B>root</B></A> -
+Variable in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#rotate(double)"><B>rotate(double)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Updates the value of this transformation
+ to that of a rotation transformation composed
+ with the current value.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#rotate(double, double)"><B>rotate(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Updates the value of this transformation
+ to that of a rotation transformation composed
+ with the current value.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#rotationInstance(double)"><B>rotationInstance(double)</B></A> -
+Static method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Creates a transformation for a rotation
+ about the origin
+ by an angle <i>theta</i>.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#rotationInstance(double, double)"><B>rotationInstance(double, double)</B></A> -
+Static method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Creates a transformation for a rotation
+ by an angle <i>theta</i>,
+ specified by the sine and cosine of the angle.
+</DL>
+<HR>
+<A NAME="_S_"><!-- --></A><H2>
+<B>S</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#SELF_INTERSECTION"><B>SELF_INTERSECTION</B></A> -
+Static variable in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Indicates that two rings of a polygonal geometry intersect
+<DT><A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>SIRtree</B></A> - class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree">SIRtree</A>.<DD>One-dimensional version of an STR-packed R-tree.<DT><A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html#SIRtree()"><B>SIRtree()</B></A> -
+Constructor for class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree">SIRtree</A>
+<DD>Constructs an SIRtree with the default node capacity.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html#SIRtree(int)"><B>SIRtree(int)</B></A> -
+Constructor for class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree">SIRtree</A>
+<DD>Constructs an SIRtree with the given maximum number of child nodes that
+ a node may have
+<DT><A HREF="com/vividsolutions/jts/algorithm/SIRtreePointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>SIRtreePointInRing</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/SIRtreePointInRing.html" title="class in com.vividsolutions.jts.algorithm">SIRtreePointInRing</A>.<DD>Implements <A HREF="com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm"><CODE>PointInRing</CODE></A>
+ using a <A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree"><CODE>SIRtree</CODE></A> index to
+ increase performance.<DT><A HREF="com/vividsolutions/jts/algorithm/SIRtreePointInRing.html#SIRtreePointInRing(com.vividsolutions.jts.geom.LinearRing)"><B>SIRtreePointInRing(LinearRing)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/SIRtreePointInRing.html" title="class in com.vividsolutions.jts.algorithm">SIRtreePointInRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#SRID"><B>SRID</B></A> -
+Variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>The ID of the Spatial Reference System used by this <code>Geometry</code>
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#STRAIGHT"><B>STRAIGHT</B></A> -
+Static variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>STRtree</B></A> - class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>.<DD>A query-only R-tree created using the Sort-Tile-Recursive (STR) algorithm.<DT><A HREF="com/vividsolutions/jts/index/strtree/STRtree.html#STRtree()"><B>STRtree()</B></A> -
+Constructor for class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>
+<DD>Constructs an STRtree with the default node capacity.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/STRtree.html#STRtree(int)"><B>STRtree(int)</B></A> -
+Constructor for class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>
+<DD>Constructs an STRtree with the given maximum number of child nodes that
+ a node may have
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#SYMDIFFERENCE"><B>SYMDIFFERENCE</B></A> -
+Static variable in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding"><B>ScaledNoder</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding">ScaledNoder</A>.<DD>Wraps a <A HREF="com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><CODE>Noder</CODE></A> and transforms its input
+ into the integer domain.<DT><A HREF="com/vividsolutions/jts/noding/ScaledNoder.html#ScaledNoder(com.vividsolutions.jts.noding.Noder, double)"><B>ScaledNoder(Noder, double)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding">ScaledNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/ScaledNoder.html#ScaledNoder(com.vividsolutions.jts.noding.Noder, double, double, double)"><B>ScaledNoder(Noder, double, double, double)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding">ScaledNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html" title="class in com.vividsolutions.jts.operation.predicate"><B>SegmentIntersectionTester</B></A> - class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html" title="class in com.vividsolutions.jts.operation.predicate">SegmentIntersectionTester</A>.<DD>Tests if any line segments in two sets of CoordinateSequences intersect.<DT><A HREF="com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html#SegmentIntersectionTester()"><B>SegmentIntersectionTester()</B></A> -
+Constructor for class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html" title="class in com.vividsolutions.jts.operation.predicate">SegmentIntersectionTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SegmentIntersector</B></A> - class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A>.<DD> <DT><A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#SegmentIntersector(com.vividsolutions.jts.algorithm.LineIntersector, boolean, boolean)"><B>SegmentIntersector(LineIntersector, boolean, boolean)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><B>SegmentIntersector</B></A> - interface com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A>.<DD>Computes the intersections between two line segments in <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s
+ and adds them to each string.<DT><A HREF="com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding"><B>SegmentNode</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding">SegmentNode</A>.<DD>Represents an intersection point between two <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/noding/SegmentNode.html#SegmentNode(com.vividsolutions.jts.noding.SegmentString, com.vividsolutions.jts.geom.Coordinate, int, int)"><B>SegmentNode(SegmentString, Coordinate, int, int)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding">SegmentNode</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding"><B>SegmentNodeList</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding">SegmentNodeList</A>.<DD>A list of the <A HREF="com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentNode</CODE></A>s present along a noded <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>.<DT><A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html#SegmentNodeList(com.vividsolutions.jts.noding.SegmentString)"><B>SegmentNodeList(SegmentString)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding">SegmentNodeList</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentPointComparator.html" title="class in com.vividsolutions.jts.noding"><B>SegmentPointComparator</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentPointComparator.html" title="class in com.vividsolutions.jts.noding">SegmentPointComparator</A>.<DD>Implements a robust method of comparing the relative position of two
+ points along the same segment.<DT><A HREF="com/vividsolutions/jts/noding/SegmentPointComparator.html#SegmentPointComparator()"><B>SegmentPointComparator()</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentPointComparator.html" title="class in com.vividsolutions.jts.noding">SegmentPointComparator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><B>SegmentString</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>.<DD>Represents a list of contiguous line segments,
+ and supports noding the segments.<DT><A HREF="com/vividsolutions/jts/noding/SegmentString.html#SegmentString(com.vividsolutions.jts.geom.Coordinate[], java.lang.Object)"><B>SegmentString(Coordinate[], Object)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>
+<DD>Creates a new segment string from a list of vertices.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding"><B>SegmentStringDissolver</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding">SegmentStringDissolver</A>.<DD>Dissolves a noded collection of <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s to produce
+ a set of merged linework with unique segments.<DT><A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.html#SegmentStringDissolver(com.vividsolutions.jts.noding.SegmentStringDissolver.SegmentStringMerger)"><B>SegmentStringDissolver(SegmentStringDissolver.SegmentStringMerger)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding">SegmentStringDissolver</A>
+<DD>Creates a dissolver with a user-defined merge strategy.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.html#SegmentStringDissolver()"><B>SegmentStringDissolver()</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding">SegmentStringDissolver</A>
+<DD>Creates a dissolver with the default merging strategy.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html" title="interface in com.vividsolutions.jts.noding"><B>SegmentStringDissolver.SegmentStringMerger</B></A> - interface com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html" title="interface in com.vividsolutions.jts.noding">SegmentStringDissolver.SegmentStringMerger</A>.<DD> <DT><A HREF="com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html" title="class in com.vividsolutions.jts.geom.util"><B>ShortCircuitedGeometryVisitor</B></A> - class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html" title="class in com.vividsolutions.jts.geom.util">ShortCircuitedGeometryVisitor</A>.<DD>A visitor to <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> elements which can
+ be short-circuited by a given condition<DT><A HREF="com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html#ShortCircuitedGeometryVisitor()"><B>ShortCircuitedGeometryVisitor()</B></A> -
+Constructor for class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html" title="class in com.vividsolutions.jts.geom.util">ShortCircuitedGeometryVisitor</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SimpleEdgeSetIntersector</B></A> - class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleEdgeSetIntersector</A>.<DD>Finds all intersections in one or two sets of edges,
+ using the straightforward method of
+ comparing all segments.<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html#SimpleEdgeSetIntersector()"><B>SimpleEdgeSetIntersector()</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleEdgeSetIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html" title="class in com.vividsolutions.jts.precision"><B>SimpleGeometryPrecisionReducer</B></A> - class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html" title="class in com.vividsolutions.jts.precision">SimpleGeometryPrecisionReducer</A>.<DD>Reduces the precision of a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ according to the supplied <A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A>, without
+ attempting to preserve valid topology.<DT><A HREF="com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html#SimpleGeometryPrecisionReducer(com.vividsolutions.jts.geom.PrecisionModel)"><B>SimpleGeometryPrecisionReducer(PrecisionModel)</B></A> -
+Constructor for class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html" title="class in com.vividsolutions.jts.precision">SimpleGeometryPrecisionReducer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SimpleMCSweepLineIntersector</B></A> - class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleMCSweepLineIntersector</A>.<DD>Finds all intersections in one or two sets of edges,
+ using an x-axis sweepline algorithm in conjunction with Monotone Chains.<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html#SimpleMCSweepLineIntersector()"><B>SimpleMCSweepLineIntersector()</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleMCSweepLineIntersector</A>
+<DD>A SimpleMCSweepLineIntersector creates monotone chains from the edges
+ and compares them using a simple sweep-line along the x-axis.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>SimpleNestedRingTester</B></A> - class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">SimpleNestedRingTester</A>.<DD>Tests whether any of a set of <A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A>s are
+ nested inside another ring in the set, using a simple O(n^2)
+ comparison.<DT><A HREF="com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html#SimpleNestedRingTester(com.vividsolutions.jts.geomgraph.GeometryGraph)"><B>SimpleNestedRingTester(GeometryGraph)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">SimpleNestedRingTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SimpleNoder.html" title="class in com.vividsolutions.jts.noding"><B>SimpleNoder</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SimpleNoder.html" title="class in com.vividsolutions.jts.noding">SimpleNoder</A>.<DD>Nodes a set of <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s by
+ performing a brute-force comparison of every segment to every other one.<DT><A HREF="com/vividsolutions/jts/noding/SimpleNoder.html#SimpleNoder()"><B>SimpleNoder()</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SimpleNoder.html" title="class in com.vividsolutions.jts.noding">SimpleNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html" title="class in com.vividsolutions.jts.algorithm"><B>SimplePointInAreaLocator</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html" title="class in com.vividsolutions.jts.algorithm">SimplePointInAreaLocator</A>.<DD>Computes whether a point
+ lies in the interior of an area <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html#SimplePointInAreaLocator()"><B>SimplePointInAreaLocator()</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html" title="class in com.vividsolutions.jts.algorithm">SimplePointInAreaLocator</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/SimplePointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>SimplePointInRing</B></A> - class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/SimplePointInRing.html" title="class in com.vividsolutions.jts.algorithm">SimplePointInRing</A>.<DD>Tests whether a <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><CODE>Coordinate</CODE></A> lies inside
+ a ring, using a linear-time algorithm.<DT><A HREF="com/vividsolutions/jts/algorithm/SimplePointInRing.html#SimplePointInRing(com.vividsolutions.jts.geom.LinearRing)"><B>SimplePointInRing(LinearRing)</B></A> -
+Constructor for class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/SimplePointInRing.html" title="class in com.vividsolutions.jts.algorithm">SimplePointInRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround"><B>SimpleSnapRounder</B></A> - class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">SimpleSnapRounder</A>.<DD>Uses Snap Rounding to compute a rounded,
+ fully noded arrangement from a set of <A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><CODE>SegmentString</CODE></A>s.<DT><A HREF="com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html#SimpleSnapRounder(com.vividsolutions.jts.geom.PrecisionModel)"><B>SimpleSnapRounder(PrecisionModel)</B></A> -
+Constructor for class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround">SimpleSnapRounder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SimpleSweepLineIntersector</B></A> - class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleSweepLineIntersector</A>.<DD>Finds all intersections in one or two sets of edges,
+ using a simple x-axis sweepline algorithm.<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html#SimpleSweepLineIntersector()"><B>SimpleSweepLineIntersector()</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SimpleSweepLineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding"><B>SinglePassNoder</B></A> - class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A>.<DD>Base class for <A HREF="com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><CODE>Noder</CODE></A>s which make a single
+ pass to find intersections.<DT><A HREF="com/vividsolutions/jts/noding/SinglePassNoder.html#SinglePassNoder()"><B>SinglePassNoder()</B></A> -
+Constructor for class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>SnapIfNeededOverlayOp</B></A> - class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapIfNeededOverlayOp</A>.<DD>Performs an overlay operation using snapping and enhanced precision
+ to improve the robustness of the result.<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html#SnapIfNeededOverlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>SnapIfNeededOverlayOp(Geometry, Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapIfNeededOverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>SnapOverlayOp</B></A> - class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapOverlayOp</A>.<DD>Performs an overlay operation using snapping and enhanced precision
+ to improve the robustness of the result.<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html#SnapOverlayOp(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>SnapOverlayOp(Geometry, Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapOverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index"><B>SpatialIndex</B></A> - interface com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A>.<DD>The basic operations supported by classes
+ implementing spatial index algorithms.<DT><A HREF="com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util"><B>Stopwatch</B></A> - class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util">Stopwatch</A>.<DD>Implements a timer function which can compute
+ elapsed time as well as split times.<DT><A HREF="com/vividsolutions/jts/util/Stopwatch.html#Stopwatch()"><B>Stopwatch()</B></A> -
+Constructor for class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util">Stopwatch</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph"><B>Subgraph</B></A> - class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph">Subgraph</A>.<DD>A subgraph of a <A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>.<DT><A HREF="com/vividsolutions/jts/planargraph/Subgraph.html#Subgraph(com.vividsolutions.jts.planargraph.PlanarGraph)"><B>Subgraph(PlanarGraph)</B></A> -
+Constructor for class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph">Subgraph</A>
+<DD>Creates a new subgraph of the given <A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><CODE>PlanarGraph</CODE></A>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html" title="class in com.vividsolutions.jts.operation.buffer"><B>SubgraphDepthLocater</B></A> - class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html" title="class in com.vividsolutions.jts.operation.buffer">SubgraphDepthLocater</A>.<DD>Locates a subgraph inside a set of subgraphs,
+ in order to determine the outside depth of the subgraph.<DT><A HREF="com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html#SubgraphDepthLocater(java.util.List)"><B>SubgraphDepthLocater(List)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html" title="class in com.vividsolutions.jts.operation.buffer">SubgraphDepthLocater</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SweepLineEvent</B></A> - class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A>.<DD> <DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#SweepLineEvent(java.lang.Object, double, com.vividsolutions.jts.geomgraph.index.SweepLineEvent, java.lang.Object)"><B>SweepLineEvent(Object, double, SweepLineEvent, Object)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline"><B>SweepLineEvent</B></A> - class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A>.<DD> <DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#SweepLineEvent(double, com.vividsolutions.jts.index.sweepline.SweepLineEvent, com.vividsolutions.jts.index.sweepline.SweepLineInterval)"><B>SweepLineEvent(double, SweepLineEvent, SweepLineInterval)</B></A> -
+Constructor for class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline"><B>SweepLineIndex</B></A> - class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineIndex</A>.<DD>A sweepline implements a sorted index on a set of intervals.<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineIndex.html#SweepLineIndex()"><B>SweepLineIndex()</B></A> -
+Constructor for class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineIndex</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline"><B>SweepLineInterval</B></A> - class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A>.<DD> <DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html#SweepLineInterval(double, double)"><B>SweepLineInterval(double, double)</B></A> -
+Constructor for class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html#SweepLineInterval(double, double, java.lang.Object)"><B>SweepLineInterval(double, double, Object)</B></A> -
+Constructor for class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineInterval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html" title="interface in com.vividsolutions.jts.index.sweepline"><B>SweepLineOverlapAction</B></A> - interface com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html" title="interface in com.vividsolutions.jts.index.sweepline">SweepLineOverlapAction</A>.<DD>An action taken when a <A HREF="com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline"><CODE>SweepLineIndex</CODE></A> detects that two
+ <A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline"><CODE>SweepLineInterval</CODE></A>s overlap<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SweepLineSegment</B></A> - class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineSegment</A>.<DD> <DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html#SweepLineSegment(com.vividsolutions.jts.geomgraph.Edge, int)"><B>SweepLineSegment(Edge, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>SweeplineNestedRingTester</B></A> - class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">SweeplineNestedRingTester</A>.<DD>Tests whether any of a set of <A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><CODE>LinearRing</CODE></A>s are
+ nested inside another ring in the set, using a <A HREF="com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline"><CODE>SweepLineIndex</CODE></A>
+ index to speed up the comparisons.<DT><A HREF="com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html#SweeplineNestedRingTester(com.vividsolutions.jts.geomgraph.GeometryGraph)"><B>SweeplineNestedRingTester(GeometryGraph)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid">SweeplineNestedRingTester</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#scale(double, double)"><B>scale(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Updates the value of this transformation
+ to that of a scale transformation composed
+ with the current value.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#scaleInstance(double, double)"><B>scaleInstance(double, double)</B></A> -
+Static method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#scroll(com.vividsolutions.jts.geom.Coordinate[], com.vividsolutions.jts.geom.Coordinate)"><B>scroll(Coordinate[], Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>Shifts the positions of the coordinates until <code>firstCoordinate</code>
+ is first.
+<DT><A HREF="com/vividsolutions/jts/noding/SinglePassNoder.html#segInt"><B>segInt</B></A> -
+Variable in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html#segmentIndex"><B>segmentIndex</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph">EdgeIntersection</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentNode.html#segmentIndex"><B>segmentIndex</B></A> -
+Variable in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding">SegmentNode</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html#select(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.chain.MonotoneChainSelectAction)"><B>select(Envelope, MonotoneChainSelectAction)</B></A> -
+Method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A>
+<DD>Determine all the line segments in the chain whose envelopes overlap
+ the searchEnvelope, and process them
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html#select(com.vividsolutions.jts.index.chain.MonotoneChain, int)"><B>select(MonotoneChain, int)</B></A> -
+Method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainSelectAction</A>
+<DD>This function can be overridden if the original chain is needed
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html#select(com.vividsolutions.jts.geom.LineSegment)"><B>select(LineSegment)</B></A> -
+Method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainSelectAction</A>
+<DD>This is a convenience function which can be overridden to obtain the actual
+ line segment which is selected
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html#select(com.vividsolutions.jts.index.chain.MonotoneChain, int)"><B>select(MonotoneChain, int)</B></A> -
+Method in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexPointSnapper.HotPixelSnapAction</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/CollectionUtil.html#select(java.util.Collection, com.vividsolutions.jts.util.CollectionUtil.Function)"><B>select(Collection, CollectionUtil.Function)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util">CollectionUtil</A>
+<DD>Executes a function on each item in a Collection
+ and collects all the entries for which the result
+ of the function is equal to <CODE>Boolean</CODE>.TRUE.
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#set(int, int, int)"><B>set(int, int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Changes the value of one of this <code>IntersectionMatrix</code>s
+ elements.
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#set(java.lang.String)"><B>set(String)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Changes the elements of this <code>IntersectionMatrix</code> to the
+ dimension symbols in <code>dimensionSymbols</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#setAll(int)"><B>setAll(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Changes the elements of this <code>IntersectionMatrix</code> to <code>dimensionValue</code>
+ .
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#setAllLocations(int, int)"><B>setAllLocations(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#setAllLocations(int)"><B>setAllLocations(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#setAllLocationsIfNull(int, int)"><B>setAllLocationsIfNull(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#setAllLocationsIfNull(int)"><B>setAllLocationsIfNull(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#setAllLocationsIfNull(int)"><B>setAllLocationsIfNull(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#setAtLeast(int, int, int)"><B>setAtLeast(int, int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Changes the specified element to <code>minimumDimensionValue</code> if the
+ element is less.
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#setAtLeast(java.lang.String)"><B>setAtLeast(String)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>For each element in this <code>IntersectionMatrix</code>, changes the
+ element to the corresponding minimum dimension symbol if the element is
+ less.
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#setAtLeastIfValid(int, int, int)"><B>setAtLeastIfValid(int, int, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>If row >= 0 and column >= 0, changes the specified element to <code>minimumDimensionValue</code>
+ if the element is less.
+<DT><A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html#setBase(com.vividsolutions.jts.geom.Coordinate)"><B>setBase(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util">GeometricShapeFactory</A>
+<DD>Sets the location of the shape by specifying the base coordinate
+ (which in most cases is the
+ lower left point of the envelope containing the shape).
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html#setBoundaryNodes(java.util.Collection, java.util.Collection)"><B>setBoundaryNodes(Collection, Collection)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index">SegmentIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/ByteArrayInStream.html#setBuffer(byte[])"><B>setBuffer(byte[])</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteArrayInStream.html" title="class in com.vividsolutions.jts.io">ByteArrayInStream</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html#setCentre(com.vividsolutions.jts.geom.Coordinate)"><B>setCentre(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util">GeometricShapeFactory</A>
+<DD>Sets the location of the shape by specifying the centre of
+ the shape's bounding box
+<DT><A HREF="com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html#setChangePrecisionModel(boolean)"><B>setChangePrecisionModel(boolean)</B></A> -
+Method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html" title="class in com.vividsolutions.jts.precision">SimpleGeometryPrecisionReducer</A>
+<DD>Sets whether the <A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A> of the new reduced Geometry
+ will be changed to be the <A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><CODE>PrecisionModel</CODE></A> supplied to
+ specify the reduction.
+<DT><A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html#setCheckEndSegmentsOnly(boolean)"><B>setCheckEndSegmentsOnly(boolean)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding">InteriorIntersectionFinder</A>
+<DD>Sets whether only end segments should be tested for interior intersection.
+<DT><A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html#setComputationPrecision(com.vividsolutions.jts.geom.PrecisionModel)"><B>setComputationPrecision(PrecisionModel)</B></A> -
+Method in class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation">GeometryGraphOperation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html#setContext(java.lang.Object)"><B>setContext(Object)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<DD>Sets the user-defined data for this component.
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#setCoordinate(com.vividsolutions.jts.geom.Coordinate)"><B>setCoordinate(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>Sets this <code>Coordinate</code>s (x,y,z) values to that of <code>other</code>
+ .
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#setCoordinates(com.vividsolutions.jts.geom.LineSegment)"><B>setCoordinates(LineSegment)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#setCoordinates(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>setCoordinates(Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#setCovered(boolean)"><B>setCovered(boolean)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentString.html#setData(java.lang.Object)"><B>setData(Object)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>
+<DD>Sets the user-defined data for this segment string.
+<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html#setData(java.lang.Object)"><B>setData(Object)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<DD>Sets the user-defined data for this component.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html#setDeleteEventIndex(int)"><B>setDeleteEventIndex(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html#setDeleteEventIndex(int)"><B>setDeleteEventIndex(int)</B></A> -
+Method in class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline">SweepLineEvent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Depth.html#setDepth(int, int, int)"><B>setDepth(int, int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#setDepth(int, int)"><B>setDepth(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#setDepthDelta(int)"><B>setDepthDelta(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#setDimension(int)"><B>setDimension(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/Edge.html#setDirectedEdges(com.vividsolutions.jts.planargraph.DirectedEdge, com.vividsolutions.jts.planargraph.DirectedEdge)"><B>setDirectedEdges(DirectedEdge, DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph">Edge</A>
+<DD>Initializes this Edge's two DirectedEdges, and for each DirectedEdge: sets the
+ Edge, sets the symmetric DirectedEdge, and adds this Edge to its from-Node.
+<DT><A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html#setDistanceTolerance(double)"><B>setDistanceTolerance(double)</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html" title="class in com.vividsolutions.jts.simplify">DouglasPeuckerLineSimplifier</A>
+<DD>Sets the distance tolerance for the simplification.
+<DT><A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html#setDistanceTolerance(double)"><B>setDistanceTolerance(double)</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify">DouglasPeuckerSimplifier</A>
+<DD>Sets the distance tolerance for the simplification.
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html#setDistanceTolerance(double)"><B>setDistanceTolerance(double)</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify">TaggedLineStringSimplifier</A>
+<DD>Sets the distance tolerance for the simplification.
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html#setDistanceTolerance(double)"><B>setDistanceTolerance(double)</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html" title="class in com.vividsolutions.jts.simplify">TaggedLinesSimplifier</A>
+<DD>Sets the distance tolerance for the simplification.
+<DT><A HREF="com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html#setDistanceTolerance(double)"><B>setDistanceTolerance(double)</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html" title="class in com.vividsolutions.jts.simplify">TopologyPreservingSimplifier</A>
+<DD>Sets the distance tolerance for the simplification.
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#setEdge(com.vividsolutions.jts.planargraph.Edge)"><B>setEdge(Edge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Associates this DirectedEdge with an Edge (possibly null, indicating no associated
+ Edge).
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#setEdgeDepths(int, int)"><B>setEdgeDepths(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>Set both edge depths.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#setEdgeRing(com.vividsolutions.jts.geomgraph.EdgeRing)"><B>setEdgeRing(EdgeRing)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#setEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geomgraph.EdgeRing)"><B>setEdgeRing(DirectedEdge, EdgeRing)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html#setEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geomgraph.EdgeRing)"><B>setEdgeRing(DirectedEdge, EdgeRing)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MaximalEdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html#setEdgeRing(com.vividsolutions.jts.geomgraph.DirectedEdge, com.vividsolutions.jts.geomgraph.EdgeRing)"><B>setEdgeRing(DirectedEdge, EdgeRing)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay">MinimalEdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html#setEndCapStyle(int)"><B>setEndCapStyle(int)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">BufferBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html#setEndCapStyle(int)"><B>setEndCapStyle(int)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer">BufferOp</A>
+<DD>Specifies the end cap style of the generated buffer.
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html#setEndCapStyle(int)"><B>setEndCapStyle(int)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">OffsetCurveBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#setFixInvalidLines(boolean)"><B>setFixInvalidLines(boolean)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref">LinearGeometryBuilder</A>
+<DD>Allows invalid lines to be ignored rather than causing Exceptions.
+<DT><A HREF="com/vividsolutions/jts/io/WKTWriter.html#setFormatted(boolean)"><B>setFormatted(boolean)</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A>
+<DD>Sets whether the output will be formatted.
+<DT><A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html#setHeight(double)"><B>setHeight(double)</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util">GeometricShapeFactory</A>
+<DD>Sets the height of the shape.
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html#setId(int)"><B>setId(int)</B></A> -
+Method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChain</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html#setIgnoreInvalidLines(boolean)"><B>setIgnoreInvalidLines(boolean)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref">LinearGeometryBuilder</A>
+<DD>Allows invalid lines to be ignored rather than causing Exceptions.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#setInResult(boolean)"><B>setInResult(boolean)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#setInResult()"><B>setInResult()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#setInResult(boolean)"><B>setInResult(boolean)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html#setInStream(com.vividsolutions.jts.io.InStream)"><B>setInStream(InStream)</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io">ByteOrderDataInStream</A>
+<DD>Allows a single ByteOrderDataInStream to be reused
+ on multiple InStreams.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#setIsolated(boolean)"><B>setIsolated(boolean)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#setLabel(com.vividsolutions.jts.geomgraph.Label)"><B>setLabel(Label)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Node.html#setLabel(int, int)"><B>setLabel(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html#setLabel(long)"><B>setLabel(long)</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize">PolygonizeDirectedEdge</A>
+<DD>Attaches an identifier to this directed edge.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Node.html#setLabelBoundary(int)"><B>setLabelBoundary(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph">Node</A>
+<DD>Updates the label of a node to BOUNDARY,
+ obeying the mod-2 boundaryDetermination rule.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#setLocation(int, int, int)"><B>setLocation(int, int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#setLocation(int, int)"><B>setLocation(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#setLocation(int, int)"><B>setLocation(int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#setLocation(int)"><B>setLocation(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#setLocations(int, int, int)"><B>setLocations(int, int, int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#setMakePrecise(com.vividsolutions.jts.geom.PrecisionModel)"><B>setMakePrecise(PrecisionModel)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD><B>Deprecated.</B> <I>use <code>setPrecisionModel</code> instead</I>
+<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(java.util.Iterator, boolean)"><B>setMarked(Iterator, boolean)</B></A> -
+Static method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<DD>Sets the Marked state for all <A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><CODE>GraphComponent</CODE></A>s in an <CODE>Iterator</CODE>
+<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html#setMarked(boolean)"><B>setMarked(boolean)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<DD>Sets the marked flag for this component.
+<DT><A HREF="com/vividsolutions/jts/io/WKTWriter.html#setMaxCoordinatesPerLine(int)"><B>setMaxCoordinatesPerLine(int)</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A>
+<DD>Sets the maximum number of coordinates per line
+ written in formatted output.
+<DT><A HREF="com/vividsolutions/jts/noding/IteratedNoder.html#setMaximumIterations(int)"><B>setMaximumIterations(int)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding">IteratedNoder</A>
+<DD>Sets the maximum number of noding iterations performed before
+ the noding is aborted.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#setMinEdgeRing(com.vividsolutions.jts.geomgraph.EdgeRing)"><B>setMinEdgeRing(EdgeRing)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#setName(java.lang.String)"><B>setName(String)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#setNext(com.vividsolutions.jts.geomgraph.DirectedEdge)"><B>setNext(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html#setNext(com.vividsolutions.jts.operation.polygonize.PolygonizeDirectedEdge)"><B>setNext(PolygonizeDirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize">PolygonizeDirectedEdge</A>
+<DD>Sets the next directed edge in the EdgeRing that this directed edge is a member
+ of.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#setNextMin(com.vividsolutions.jts.geomgraph.DirectedEdge)"><B>setNextMin(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html#setNode(com.vividsolutions.jts.geomgraph.Node)"><B>setNode(Node)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph">EdgeEnd</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html#setNoder(com.vividsolutions.jts.noding.Noder)"><B>setNoder(Noder)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">BufferBuilder</A>
+<DD>Sets the <A HREF="com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><CODE>Noder</CODE></A> to use during noding.
+<DT><A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html#setNumPoints(int)"><B>setNumPoints(int)</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util">GeometricShapeFactory</A>
+<DD>Sets the total number of points in the created <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html#setOrder(int)"><B>setOrder(int)</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io">ByteOrderDataInStream</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#setOrdinate(int, int, double)"><B>setOrdinate(int, int, double)</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>Sets the value for a given ordinate of a coordinate in this sequence.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#setOrdinate(int, int, double)"><B>setOrdinate(int, int, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#setOrdinate(int, int, double)"><B>setOrdinate(int, int, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#setOrdinate(int, int, double)"><B>setOrdinate(int, int, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#setOrdinate(int, int, double)"><B>setOrdinate(int, int, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>Sets the ordinate of a coordinate in this sequence.
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#setPrecisionModel(com.vividsolutions.jts.geom.PrecisionModel)"><B>setPrecisionModel(PrecisionModel)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>Force computed intersection to be rounded to a given precision model.
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html#setQuadrantSegments(int)"><B>setQuadrantSegments(int)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">BufferBuilder</A>
+<DD>Sets the number of segments used to approximate a angle fillet
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html#setQuadrantSegments(int)"><B>setQuadrantSegments(int)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer">BufferOp</A>
+<DD>Sets the number of segments used to approximate a angle fillet
+<DT><A HREF="com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html#setRemoveCollapsedComponents(boolean)"><B>setRemoveCollapsedComponents(boolean)</B></A> -
+Method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html" title="class in com.vividsolutions.jts.precision">SimpleGeometryPrecisionReducer</A>
+<DD>Sets whether the reduction will result in collapsed components
+ being removed completely, or simply being collapsed to an (invalid)
+ Geometry of the same type.
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html#setRing(com.vividsolutions.jts.operation.polygonize.EdgeRing)"><B>setRing(EdgeRing)</B></A> -
+Method in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize">PolygonizeDirectedEdge</A>
+<DD>Sets the ring of directed edges that this directed edge is
+ a member of.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#setSRID(int)"><B>setSRID(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Sets the ID of the Spatial Reference System used by the <code>Geometry</code>.
+<DT><A HREF="com/vividsolutions/jts/noding/SinglePassNoder.html#setSegmentIntersector(com.vividsolutions.jts.noding.SegmentIntersector)"><B>setSegmentIntersector(SegmentIntersector)</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding">SinglePassNoder</A>
+<DD>Sets the SegmentIntersector to use with this noder.
+<DT><A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html#setSelfTouchingRingFormingHoleValid(boolean)"><B>setSelfTouchingRingFormingHoleValid(boolean)</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid">IsValidOp</A>
+<DD>Sets whether polygons using <b>Self-Touching Rings</b> to form
+ holes are reported as valid.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#setShell(com.vividsolutions.jts.geomgraph.EdgeRing)"><B>setShell(EdgeRing)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html#setSize(double)"><B>setSize(double)</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util">GeometricShapeFactory</A>
+<DD>Sets the size of the extent of the shape in both x and y directions.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#setSym(com.vividsolutions.jts.geomgraph.DirectedEdge)"><B>setSym(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#setSym(com.vividsolutions.jts.planargraph.DirectedEdge)"><B>setSym(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Sets this DirectedEdge's symmetric DirectedEdge, which runs in the opposite
+ direction.
+<DT><A HREF="com/vividsolutions/jts/io/WKTWriter.html#setTab(int)"><B>setTab(int)</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A>
+<DD>Sets the tab size to use for indenting.
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#setToEnd(com.vividsolutions.jts.geom.Geometry)"><B>setToEnd(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Sets the value of this location to
+ refer the end of a linear geometry
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#setToIdentity()"><B>setToIdentity()</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Sets this transformation to be the identity transformation.
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#setToNull()"><B>setToNull()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Makes this <code>Envelope</code> a "null" envelope, that is, the envelope
+ of the empty geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#setToReflection(double, double, double, double)"><B>setToReflection(double, double, double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#setToReflection(double, double)"><B>setToReflection(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Sets this transformation to be a reflection
+ about the line defined by vector (x,y).
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#setToReflectionBasic(double, double, double, double)"><B>setToReflectionBasic(double, double, double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Explicitly computes the math for a reflection.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#setToRotation(double, double)"><B>setToRotation(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Sets this transformation to be a rotation
+ by specifying the sin and cos of the rotation angle directly.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#setToScale(double, double)"><B>setToScale(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Sets this transformation to be a scaling.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#setToShear(double, double)"><B>setToShear(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Sets this transformation to be a shear.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#setToTranslation(double, double)"><B>setToTranslation(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Sets this transformation to be a translation.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#setTransformation(double, double, double, double, double, double)"><B>setTransformation(double, double, double, double, double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Sets this transformation's matrix to have the given values.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#setTransformation(com.vividsolutions.jts.geom.util.AffineTransformation)"><B>setTransformation(AffineTransformation)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Sets this transformation to be a copy of the given one
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html#setType(int)"><B>setType(int)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequenceFactory</A>
+<DD>Sets the type of packed coordinate sequences this factory builds,
+ acceptable values are PackedCoordinateSequenceFactory#Floator
+ PackedCoordinateSequenceFactory#Double
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#setUserData(java.lang.Object)"><B>setUserData(Object)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>A simple scheme for applications to add their own custom data to a Geometry.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#setVisited(boolean)"><B>setVisited(boolean)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#setVisited(boolean)"><B>setVisited(boolean)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(java.util.Iterator, boolean)"><B>setVisited(Iterator, boolean)</B></A> -
+Static method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<DD>Sets the Visited state for all <A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><CODE>GraphComponent</CODE></A>s in an <CODE>Iterator</CODE>
+<DT><A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html#setVisited(boolean)"><B>setVisited(boolean)</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph">GraphComponent</A>
+<DD>Sets the visited flag for this component.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html#setVisitedEdge(boolean)"><B>setVisitedEdge(boolean)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdge</A>
+<DD>setVisitedEdge marks both DirectedEdges attached to a given Edge.
+<DT><A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html#setWidth(double)"><B>setWidth(double)</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util">GeometricShapeFactory</A>
+<DD>Sets the width of the shape.
+<DT><A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html#setWorkingPrecisionModel(com.vividsolutions.jts.geom.PrecisionModel)"><B>setWorkingPrecisionModel(PrecisionModel)</B></A> -
+Method in class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer">BufferBuilder</A>
+<DD>Sets the precision model to use during the curve computation and noding,
+ if it is different to the precision model of the Geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#setX(int, double)"><B>setX(int, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>Sets the first ordinate of a coordinate in this sequence.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#setY(int, double)"><B>setY(int, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>Sets the second ordinate of a coordinate in this sequence.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#shear(double, double)"><B>shear(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Updates the value of this transformation
+ to that of a shear transformation composed
+ with the current value.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#shearInstance(double, double)"><B>shearInstance(double, double)</B></A> -
+Static method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Polygon.html#shell"><B>shell</B></A> -
+Variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">Polygon</A>
+<DD>The exterior boundary,
+ or <code>null</code> if this <code>Polygon</code>
+ is empty.
+<DT><A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html#shellList"><B>shellList</B></A> -
+Variable in class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize">Polygonizer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Assert.html#shouldNeverReachHere()"><B>shouldNeverReachHere()</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util">Assert</A>
+<DD>Always throws an <code>AssertionFailedException</code>.
+<DT><A HREF="com/vividsolutions/jts/util/Assert.html#shouldNeverReachHere(java.lang.String)"><B>shouldNeverReachHere(String)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util">Assert</A>
+<DD>Always throws an <code>AssertionFailedException</code> with the given
+ message.
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBits.html#signExpBits(long)"><B>signExpBits(long)</B></A> -
+Static method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision">CommonBits</A>
+<DD>Computes the bit pattern for the sign and exponent of a
+ double-precision number.
+<DT><A HREF="com/vividsolutions/jts/algorithm/RobustDeterminant.html#signOfDet2x2(double, double, double, double)"><B>signOfDet2x2(double, double, double, double)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/RobustDeterminant.html" title="class in com.vividsolutions.jts.algorithm">RobustDeterminant</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html#signedArea(com.vividsolutions.jts.geom.Coordinate[])"><B>signedArea(Coordinate[])</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm">CGAlgorithms</A>
+<DD>Returns the signed area for a ring.
+<DT><A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html#simplify(com.vividsolutions.jts.geom.Coordinate[], double)"><B>simplify(Coordinate[], double)</B></A> -
+Static method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html" title="class in com.vividsolutions.jts.simplify">DouglasPeuckerLineSimplifier</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html#simplify()"><B>simplify()</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html" title="class in com.vividsolutions.jts.simplify">DouglasPeuckerLineSimplifier</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html#simplify(com.vividsolutions.jts.geom.Geometry, double)"><B>simplify(Geometry, double)</B></A> -
+Static method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify">DouglasPeuckerSimplifier</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html#simplify(com.vividsolutions.jts.simplify.TaggedLineString)"><B>simplify(TaggedLineString)</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify">TaggedLineStringSimplifier</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html#simplify(java.util.Collection)"><B>simplify(Collection)</B></A> -
+Method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html" title="class in com.vividsolutions.jts.simplify">TaggedLinesSimplifier</A>
+<DD>Simplify a collection of <A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify"><CODE>TaggedLineString</CODE></A>s
+<DT><A HREF="com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html#simplify(com.vividsolutions.jts.geom.Geometry, double)"><B>simplify(Geometry, double)</B></A> -
+Static method in class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html" title="class in com.vividsolutions.jts.simplify">TopologyPreservingSimplifier</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#size()"><B>size()</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>Returns the number of coordinates in this sequence.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#size()"><B>size()</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>Returns the size of the coordinate sequence
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html#size()"><B>size()</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Double</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html#size()"><B>size()</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence.Float</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Bintree.html#size()"><B>size()</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree">Bintree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html#size()"><B>size()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree">Quadtree</A>
+<DD>Returns the number of items in the tree.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#size()"><B>size()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html#size(com.vividsolutions.jts.index.strtree.AbstractNode)"><B>size(AbstractNode)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree">AbstractSTRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/strtree/STRtree.html#size()"><B>size()</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>
+<DD>Returns the number of items in the tree.
+<DT><A HREF="com/vividsolutions/jts/noding/SegmentString.html#size()"><B>size()</B></A> -
+Method in class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding">SegmentString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html#snap(com.vividsolutions.jts.noding.snapround.HotPixel, com.vividsolutions.jts.noding.SegmentString, int)"><B>snap(HotPixel, SegmentString, int)</B></A> -
+Method in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexPointSnapper</A>
+<DD>Snaps (nodes) all interacting segments to this hot pixel.
+<DT><A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html#snap(com.vividsolutions.jts.noding.snapround.HotPixel)"><B>snap(HotPixel)</B></A> -
+Method in class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround">MCIndexPointSnapper</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html#snap(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry, double)"><B>snap(Geometry, Geometry, double)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">GeometrySnapper</A>
+<DD>Snaps two geometries together with a given tolerance.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html#snapTo(com.vividsolutions.jts.geom.Geometry, double)"><B>snapTo(Geometry, double)</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">GeometrySnapper</A>
+<DD>Snaps the vertices in the component <A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A>s
+ of the source geometry
+ to the vertices of the given geometry.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html#snapTo(com.vividsolutions.jts.geom.Coordinate[])"><B>snapTo(Coordinate[])</B></A> -
+Method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap">LineStringSnapper</A>
+<DD>Snaps the vertices and segments of the source LineString
+ to the given set of target snap points.
+<DT><A HREF="com/vividsolutions/jts/linearref/LinearLocation.html#snapToVertex(com.vividsolutions.jts.geom.Geometry, double)"><B>snapToVertex(Geometry, double)</B></A> -
+Method in class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref">LinearLocation</A>
+<DD>Snaps the value of this location to
+ the nearest vertex on the given linear <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>,
+ if the vertex is closer than <tt>maxDistance</tt>.
+<DT><A HREF="com/vividsolutions/jts/geom/util/Matrix.html#solve(double[][], double[])"><B>solve(double[][], double[])</B></A> -
+Static method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/Matrix.html" title="class in com.vividsolutions.jts.geom.util">Matrix</A>
+<DD>Solves a system of equations using Gaussian Elimination.
+<DT><A HREF="com/vividsolutions/jts/util/Stopwatch.html#split()"><B>split()</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util">Stopwatch</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Stopwatch.html#start()"><B>start()</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util">Stopwatch</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#startDe"><B>startDe</B></A> -
+Variable in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Stopwatch.html#stop()"><B>stop()</B></A> -
+Method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util">Stopwatch</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKTWriter.html#stringOfChar(char, int)"><B>stringOfChar(char, int)</B></A> -
+Static method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A>
+<DD>Returns a <code>String</code> of repeated characters.
+<DT><A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html#subnode"><B>subnode</B></A> -
+Variable in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree">NodeBase</A>
+<DD>subnodes are numbered as follows:
+
+ 0 | 1
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html#subnode"><B>subnode</B></A> -
+Variable in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<DD>subquads are numbered as follows:
+
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequences.html#swap(com.vividsolutions.jts.geom.CoordinateSequence, int, int)"><B>swap(CoordinateSequence, int, int)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequences.html" title="class in com.vividsolutions.jts.geom">CoordinateSequences</A>
+<DD>Swaps two coordinates in a sequence.
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#sym"><B>sym</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#symDifference(com.vividsolutions.jts.geom.Geometry)"><B>symDifference(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns a set combining the points in this <code>Geometry</code> not in
+ <code>other</code>, and the points in <code>other</code> not in this
+ <code>Geometry</code>.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html#symDifference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>symDifference(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapIfNeededOverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html#symDifference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>symDifference(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapOverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html#symDifference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>symDifference(Geometry, Geometry)</B></A> -
+Method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision">CommonBitsOp</A>
+<DD>Computes the set-theoretic symmetric difference of two geometries,
+ using enhanced precision.
+<DT><A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html#symDifference(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>symDifference(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision">EnhancedPrecisionOp</A>
+<DD>Computes the set-theoretic symmetric difference of two <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.
+</DL>
+<HR>
+<A NAME="_T_"><!-- --></A><H2>
+<B>T</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#TOO_FEW_POINTS"><B>TOO_FEW_POINTS</B></A> -
+Static variable in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Indicates that either
+
+ a LineString contains a single point
+ a LinearRing contains 2 or 3 points
+
+<DT><A HREF="com/vividsolutions/jts/geom/Dimension.html#TRUE"><B>TRUE</B></A> -
+Static variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom">Dimension</A>
+<DD>Dimension value of non-empty geometries (= {P, L, A}).
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify"><B>TaggedLineSegment</B></A> - class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify">TaggedLineSegment</A>.<DD>A <A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom"><CODE>LineSegment</CODE></A> which is tagged with its location in a parent <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineSegment.html#TaggedLineSegment(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Geometry, int)"><B>TaggedLineSegment(Coordinate, Coordinate, Geometry, int)</B></A> -
+Constructor for class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify">TaggedLineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineSegment.html#TaggedLineSegment(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>TaggedLineSegment(Coordinate, Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify">TaggedLineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify"><B>TaggedLineString</B></A> - class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A>.<DD> <DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html#TaggedLineString(com.vividsolutions.jts.geom.LineString)"><B>TaggedLineString(LineString)</B></A> -
+Constructor for class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html#TaggedLineString(com.vividsolutions.jts.geom.LineString, int)"><B>TaggedLineString(LineString, int)</B></A> -
+Constructor for class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify">TaggedLineString</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>TaggedLineStringSimplifier</B></A> - class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify">TaggedLineStringSimplifier</A>.<DD>Simplifies a TaggedLineString, preserving topology
+ (in the sense that no new intersections are introduced).<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html#TaggedLineStringSimplifier(com.vividsolutions.jts.simplify.LineSegmentIndex, com.vividsolutions.jts.simplify.LineSegmentIndex)"><B>TaggedLineStringSimplifier(LineSegmentIndex, LineSegmentIndex)</B></A> -
+Constructor for class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify">TaggedLineStringSimplifier</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>TaggedLinesSimplifier</B></A> - class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html" title="class in com.vividsolutions.jts.simplify">TaggedLinesSimplifier</A>.<DD>Simplifies a collection of <A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify"><CODE>TaggedLineString</CODE></A>s, preserving topology
+ (in the sense that no new intersections are introduced).<DT><A HREF="com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html#TaggedLinesSimplifier()"><B>TaggedLinesSimplifier()</B></A> -
+Constructor for class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html" title="class in com.vividsolutions.jts.simplify">TaggedLinesSimplifier</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom"><B>TopologyException</B></A> - exception com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A>.<DD>Indicates an invalid or inconsistent topological situation encountered during processing<DT><A HREF="com/vividsolutions/jts/geom/TopologyException.html#TopologyException(java.lang.String)"><B>TopologyException(String)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/TopologyException.html#TopologyException(java.lang.String, com.vividsolutions.jts.geom.Coordinate)"><B>TopologyException(String, Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">TopologyException</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph"><B>TopologyLocation</B></A> - class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>.<DD>A TopologyLocation is the labelling of a
+ GraphComponent's topological relationship to a single Geometry.<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#TopologyLocation(int[])"><B>TopologyLocation(int[])</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#TopologyLocation(int, int, int)"><B>TopologyLocation(int, int, int)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>Constructs a TopologyLocation specifying how points on, to the left of, and to the
+ right of some GraphComponent relate to some Geometry.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#TopologyLocation(int)"><B>TopologyLocation(int)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#TopologyLocation(com.vividsolutions.jts.geomgraph.TopologyLocation)"><B>TopologyLocation(TopologyLocation)</B></A> -
+Constructor for class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>TopologyPreservingSimplifier</B></A> - class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html" title="class in com.vividsolutions.jts.simplify">TopologyPreservingSimplifier</A>.<DD>Simplifies a geometry, ensuring that
+ the result is a valid geometry having the
+ same dimension and number of components as the input.<DT><A HREF="com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html#TopologyPreservingSimplifier(com.vividsolutions.jts.geom.Geometry)"><B>TopologyPreservingSimplifier(Geometry)</B></A> -
+Constructor for class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html" title="class in com.vividsolutions.jts.simplify">TopologyPreservingSimplifier</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid"><B>TopologyValidationError</B></A> - class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>.<DD>Contains information about the nature and location of a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>
+ validation error<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#TopologyValidationError(int, com.vividsolutions.jts.geom.Coordinate)"><B>TopologyValidationError(int, Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Creates a validation error with the given type and location
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#TopologyValidationError(int)"><B>TopologyValidationError(int)</B></A> -
+Constructor for class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Creates a validation error of the given type with a null location
+<DT><A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom"><B>Triangle</B></A> - class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A>.<DD>Represents a planar triangle, and provides methods for calculating various
+ properties of triangles.<DT><A HREF="com/vividsolutions/jts/geom/Triangle.html#Triangle(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>Triangle(Coordinate, Coordinate, Coordinate)</B></A> -
+Constructor for class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom">Triangle</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#to"><B>to</B></A> -
+Variable in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html#toBinaryString(double)"><B>toBinaryString(double)</B></A> -
+Static method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/ConvexHull.html#toCoordinateArray(java.util.Stack)"><B>toCoordinateArray(Stack)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm">ConvexHull</A>
+<DD>An alternative to Stack.toArray, which is not present in earlier versions
+ of Java.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html#toCoordinateArray(java.util.Collection)"><B>toCoordinateArray(Collection)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom">CoordinateArrays</A>
+<DD>Converts the given Collection of Coordinates into a Coordinate array.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateList.html#toCoordinateArray()"><B>toCoordinateArray()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">CoordinateList</A>
+<DD>Returns the Coordinates in this collection.
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#toCoordinateArray()"><B>toCoordinateArray()</B></A> -
+Method in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>Returns (possibly copies of) the Coordinates in this collection.
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#toCoordinateArray()"><B>toCoordinateArray()</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>This method exposes the internal Array of Coordinate Objects
+<DT><A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html#toCoordinateArray()"><B>toCoordinateArray()</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl">PackedCoordinateSequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#toDegrees(double)"><B>toDegrees(double)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>Converts from radians to degrees.
+<DT><A HREF="com/vividsolutions/jts/geom/Dimension.html#toDimensionSymbol(int)"><B>toDimensionSymbol(int)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom">Dimension</A>
+<DD>Converts the dimension value to a dimension symbol, for example, <code>TRUE => 'T'</code>
+ .
+<DT><A HREF="com/vividsolutions/jts/geom/Dimension.html#toDimensionValue(char)"><B>toDimensionValue(char)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom">Dimension</A>
+<DD>Converts the dimension symbol to a dimension value, for example, <code>'*' => DONTCARE</code>
+ .
+<DT><A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html#toEdges(java.util.Collection)"><B>toEdges(Collection)</B></A> -
+Static method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph">DirectedEdge</A>
+<DD>Returns a List containing the parent Edge (possibly null) for each of the given
+ DirectedEdges.
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#toExternal(com.vividsolutions.jts.geom.Coordinate)"><B>toExternal(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD><B>Deprecated.</B> <I>no longer needed, since internal representation is same as external representation</I>
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#toExternal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>toExternal(Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD><B>Deprecated.</B> <I>no longer needed, since internal representation is same as external representation</I>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#toGeometry(com.vividsolutions.jts.geom.Envelope)"><B>toGeometry(Envelope)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>If the <code>Envelope</code> is a null <code>Envelope</code>, returns an
+ empty <code>Point</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#toGeometryArray(java.util.Collection)"><B>toGeometryArray(Collection)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Converts the <code>List</code> to an array.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html#toIntArray(java.util.List)"><B>toIntArray(List)</B></A> -
+Static method in class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html" title="class in com.vividsolutions.jts.geomgraph.index">MonotoneChainIndexer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html#toIntArray(java.util.List)"><B>toIntArray(List)</B></A> -
+Static method in class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain">MonotoneChainBuilder</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#toInternal(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>toInternal(Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD><B>Deprecated.</B> <I>use makePrecise instead</I>
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#toInternal(com.vividsolutions.jts.geom.Coordinate)"><B>toInternal(Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD><B>Deprecated.</B> <I>use makePrecise instead</I>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#toLine(int)"><B>toLine(int)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>Converts one GeometryLocation to a Line location
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#toLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>toLine(Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#toLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>toLine(Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/Debug.html#toLine(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>toLine(Coordinate, Coordinate, Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util">Debug</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#toLineLabel(com.vividsolutions.jts.geomgraph.Label)"><B>toLineLabel(Label)</B></A> -
+Static method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKTWriter.html#toLineString(com.vividsolutions.jts.geom.CoordinateSequence)"><B>toLineString(CoordinateSequence)</B></A> -
+Static method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A>
+<DD>Generates the WKT for a N-point <code>LineString</code>.
+<DT><A HREF="com/vividsolutions/jts/io/WKTWriter.html#toLineString(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>toLineString(Coordinate, Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A>
+<DD>Generates the WKT for a 2-point <code>LineString</code>.
+<DT><A HREF="com/vividsolutions/jts/operation/linemerge/EdgeString.html#toLineString()"><B>toLineString()</B></A> -
+Method in class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/EdgeString.html" title="class in com.vividsolutions.jts.operation.linemerge">EdgeString</A>
+<DD>Converts this EdgeString into a LineString.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#toLineStringArray(java.util.Collection)"><B>toLineStringArray(Collection)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Converts the <code>List</code> to an array.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#toLinearRingArray(java.util.Collection)"><B>toLinearRingArray(Collection)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Converts the <code>List</code> to an array.
+<DT><A HREF="com/vividsolutions/jts/geom/Location.html#toLocationSymbol(int)"><B>toLocationSymbol(int)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom">Location</A>
+<DD>Converts the location value to a location symbol, for example, <code>EXTERIOR => 'e'</code>
+ .
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#toMultiLineStringArray(java.util.Collection)"><B>toMultiLineStringArray(Collection)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Converts the <code>List</code> to an array.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#toMultiPointArray(java.util.Collection)"><B>toMultiPointArray(Collection)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Converts the <code>List</code> to an array.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#toMultiPolygonArray(java.util.Collection)"><B>toMultiPolygonArray(Collection)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Converts the <code>List</code> to an array.
+<DT><A HREF="com/vividsolutions/jts/io/WKTWriter.html#toPoint(com.vividsolutions.jts.geom.Coordinate)"><B>toPoint(Coordinate)</B></A> -
+Static method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A>
+<DD>Generates the WKT for a <code>Point</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#toPointArray(java.util.Collection)"><B>toPointArray(Collection)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Converts the <code>List</code> to an array.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html#toPolygon(com.vividsolutions.jts.geom.GeometryFactory)"><B>toPolygon(GeometryFactory)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph">EdgeRing</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/GeometryFactory.html#toPolygonArray(java.util.Collection)"><B>toPolygonArray(Collection)</B></A> -
+Static method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A>
+<DD>Converts the <code>List</code> to an array.
+<DT><A HREF="com/vividsolutions/jts/algorithm/Angle.html#toRadians(double)"><B>toRadians(double)</B></A> -
+Static method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm">Angle</A>
+<DD>Converts from degrees to radians.
+<DT><A HREF="com/vividsolutions/jts/JTSVersion.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.<A HREF="com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts">JTSVersion</A>
+<DD>Gets the full version number, suitable for display.
+<DT><A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm">LineIntersector</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>Returns a <code>String</code> of the form <I>(x,y,z)</I> .
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Returns a nine-character <code>String</code> representation of this <code>IntersectionMatrix</code>
+ .
+<DT><A HREF="com/vividsolutions/jts/geom/LineSegment.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/PrecisionModel.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">CoordinateArraySequence</A>
+<DD>Returns the string Representation of the coordinate array
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Gets a text representation of this transformation.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Depth.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph">Depth</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Label.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph">Label</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph">TopologyLocation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/bintree/Interval.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree">Interval</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>
+<DD>A representation of the Double bits formatted for easy readability
+<DT><A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html#toString()"><B>toString()</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid">TopologyValidationError</A>
+<DD>Gets a message describing the type and location of this error.
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBits.html#toString(long)"><B>toString(long)</B></A> -
+Method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision">CommonBits</A>
+<DD>A representation of the Double bits formatted for easy readability
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#toText()"><B>toText()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns the Well-known Text representation of this <code>Geometry</code>.
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#touches(com.vividsolutions.jts.geom.Geometry)"><B>touches(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns <code>true</code> if this geometry touches the
+ specified geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#transform(com.vividsolutions.jts.geom.Coordinate, com.vividsolutions.jts.geom.Coordinate)"><B>transform(Coordinate, Coordinate)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Applies this transformation to the <tt>src</tt> coordinate
+ and places the results in the <tt>dest</tt> coordinate
+ (which may be the same as the source).
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#transform(com.vividsolutions.jts.geom.CoordinateSequence, int)"><B>transform(CoordinateSequence, int)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Applies this transformation to the i'th coordinate
+ in the given CoordinateSequence.
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html#transform(com.vividsolutions.jts.geom.Geometry)"><B>transform(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/CollectionUtil.html#transform(java.util.Collection, com.vividsolutions.jts.util.CollectionUtil.Function)"><B>transform(Collection, CollectionUtil.Function)</B></A> -
+Static method in class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util">CollectionUtil</A>
+<DD>Executes a function on each item in a <CODE>Collection</CODE>
+ and returns the results in a new <CODE>List</CODE>
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformCoordinates(com.vividsolutions.jts.geom.CoordinateSequence, com.vividsolutions.jts.geom.Geometry)"><B>transformCoordinates(CoordinateSequence, Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<DD>Transforms a <A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateSequence</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformGeometryCollection(com.vividsolutions.jts.geom.GeometryCollection, com.vividsolutions.jts.geom.Geometry)"><B>transformGeometryCollection(GeometryCollection, Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformLineString(com.vividsolutions.jts.geom.LineString, com.vividsolutions.jts.geom.Geometry)"><B>transformLineString(LineString, Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<DD>Transforms a <A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><CODE>LineString</CODE></A> geometry.
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformLinearRing(com.vividsolutions.jts.geom.LinearRing, com.vividsolutions.jts.geom.Geometry)"><B>transformLinearRing(LinearRing, Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformMultiLineString(com.vividsolutions.jts.geom.MultiLineString, com.vividsolutions.jts.geom.Geometry)"><B>transformMultiLineString(MultiLineString, Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformMultiPoint(com.vividsolutions.jts.geom.MultiPoint, com.vividsolutions.jts.geom.Geometry)"><B>transformMultiPoint(MultiPoint, Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformMultiPolygon(com.vividsolutions.jts.geom.MultiPolygon, com.vividsolutions.jts.geom.Geometry)"><B>transformMultiPolygon(MultiPolygon, Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformPoint(com.vividsolutions.jts.geom.Point, com.vividsolutions.jts.geom.Geometry)"><B>transformPoint(Point, Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html#transformPolygon(com.vividsolutions.jts.geom.Polygon, com.vividsolutions.jts.geom.Geometry)"><B>transformPolygon(Polygon, Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util">GeometryTransformer</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Envelope.html#translate(double, double)"><B>translate(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A>
+<DD>Translates this envelope by given amounts in the X and Y direction.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#translate(double, double)"><B>translate(double, double)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>Updates the value of this transformation
+ to that of a translation transformation composed
+ with the current value.
+<DT><A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html#translationInstance(double, double)"><B>translationInstance(double, double)</B></A> -
+Static method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util">AffineTransformation</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html#transpose()"><B>transpose()</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom">IntersectionMatrix</A>
+<DD>Transposes this IntersectionMatrix.
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html#truncateToPowerOfTwo(double)"><B>truncateToPowerOfTwo(double)</B></A> -
+Static method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_U_"><!-- --></A><H2>
+<B>U</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html#UNION"><B>UNION</B></A> -
+Static variable in class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay">OverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util"><B>UniqueCoordinateArrayFilter</B></A> - class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util">UniqueCoordinateArrayFilter</A>.<DD>A <A HREF="com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom"><CODE>CoordinateFilter</CODE></A> that builds a set of <code>Coordinate</code>s.<DT><A HREF="com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html#UniqueCoordinateArrayFilter()"><B>UniqueCoordinateArrayFilter()</B></A> -
+Constructor for class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util">UniqueCoordinateArrayFilter</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#union(com.vividsolutions.jts.geom.Geometry)"><B>union(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Computes a <code>Geometry</code> representing all the points in this <code>Geometry</code>
+ and <code>other</code>.
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html#union(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>union(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapIfNeededOverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html#union(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>union(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap">SnapOverlayOp</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html#union(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>union(Geometry, Geometry)</B></A> -
+Method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision">CommonBitsOp</A>
+<DD>Computes the set-theoretic union of two <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.
+<DT><A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html#union(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.geom.Geometry)"><B>union(Geometry, Geometry)</B></A> -
+Static method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision">EnhancedPrecisionOp</A>
+<DD>Computes the set-theoretic union of two <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s, using enhanced precision.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/Edge.html#updateIM(com.vividsolutions.jts.geomgraph.Label, com.vividsolutions.jts.geom.IntersectionMatrix)"><B>updateIM(Label, IntersectionMatrix)</B></A> -
+Static method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph">Edge</A>
+<DD>Updates an IM from the label for an edge.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html#updateIM(com.vividsolutions.jts.geom.IntersectionMatrix)"><B>updateIM(IntersectionMatrix)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph">GraphComponent</A>
+<DD>Update the IM with the contribution for this component.
+<DT><A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html#updateLabelling(com.vividsolutions.jts.geomgraph.Label)"><B>updateLabelling(Label)</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph">DirectedEdgeStar</A>
+<DD>Update incomplete dirEdge labels from the labelling for the node
+</DL>
+<HR>
+<A NAME="_V_"><!-- --></A><H2>
+<B>V</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html#values()"><B>values()</B></A> -
+Method in class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph">NodeMap</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/planargraph/NodeMap.html#values()"><B>values()</B></A> -
+Method in class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph">NodeMap</A>
+<DD>Returns the Nodes in this NodeMap, sorted in ascending order
+ by angle with the positive x-axis.
+<DT><A HREF="com/vividsolutions/jts/index/strtree/STRtree.html#verticalSlices(java.util.List, int)"><B>verticalSlices(List, int)</B></A> -
+Method in class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree">STRtree</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html#visit(com.vividsolutions.jts.geom.Geometry)"><B>visit(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html" title="class in com.vividsolutions.jts.geom.util">ShortCircuitedGeometryVisitor</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html#visit(com.vividsolutions.jts.geom.Envelope, com.vividsolutions.jts.index.ItemVisitor)"><B>visit(Envelope, ItemVisitor)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree">NodeBase</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/ArrayListVisitor.html#visitItem(java.lang.Object)"><B>visitItem(Object)</B></A> -
+Method in class com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/ArrayListVisitor.html" title="class in com.vividsolutions.jts.index">ArrayListVisitor</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/index/ItemVisitor.html#visitItem(java.lang.Object)"><B>visitItem(Object)</B></A> -
+Method in interface com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html#visitLinkedDirectedEdges(com.vividsolutions.jts.geomgraph.DirectedEdge)"><B>visitLinkedDirectedEdges(DirectedEdge)</B></A> -
+Method in class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html" title="class in com.vividsolutions.jts.operation.valid">ConnectedInteriorTester</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_W_"><!-- --></A><H2>
+<B>W</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io"><B>WKBConstants</B></A> - interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io">WKBConstants</A>.<DD>Constant values used by the WKB format<DT><A HREF="com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io"><B>WKBReader</B></A> - class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io">WKBReader</A>.<DD>Reads a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>from a byte stream in Well-Known Binary format.<DT><A HREF="com/vividsolutions/jts/io/WKBReader.html#WKBReader()"><B>WKBReader()</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io">WKBReader</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKBReader.html#WKBReader(com.vividsolutions.jts.geom.GeometryFactory)"><B>WKBReader(GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io">WKBReader</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io"><B>WKBWriter</B></A> - class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io">WKBWriter</A>.<DD>Writes a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> into Well-Known Binary format.<DT><A HREF="com/vividsolutions/jts/io/WKBWriter.html#WKBWriter()"><B>WKBWriter()</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io">WKBWriter</A>
+<DD>Creates a writer that writes <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s with
+ output dimension = 2 and BIG_ENDIAN byte order
+<DT><A HREF="com/vividsolutions/jts/io/WKBWriter.html#WKBWriter(int)"><B>WKBWriter(int)</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io">WKBWriter</A>
+<DD>Creates a writer that writes <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s with
+ the given output dimension (2 or 3) and BIG_ENDIAN byte order
+<DT><A HREF="com/vividsolutions/jts/io/WKBWriter.html#WKBWriter(int, int)"><B>WKBWriter(int, int)</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io">WKBWriter</A>
+<DD>Creates a writer that writes <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s with
+ the given output dimension (2 or 3) and byte order
+<DT><A HREF="com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io"><B>WKTReader</B></A> - class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io">WKTReader</A>.<DD>Converts a geometry in Well-Known Text format to a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/io/WKTReader.html#WKTReader()"><B>WKTReader()</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io">WKTReader</A>
+<DD>Creates a reader that creates objects using the default <A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/io/WKTReader.html#WKTReader(com.vividsolutions.jts.geom.GeometryFactory)"><B>WKTReader(GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io">WKTReader</A>
+<DD>Creates a reader that creates objects using the given
+ <A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io"><B>WKTWriter</B></A> - class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A>.<DD>Outputs the Well-Known Text representation of a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>.<DT><A HREF="com/vividsolutions/jts/io/WKTWriter.html#WKTWriter()"><B>WKTWriter()</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A>
+<DD>Creates a new WKTWriter with default settings
+<DT><A HREF="com/vividsolutions/jts/io/WKTWriter.html#WKTWriter(int)"><B>WKTWriter(int)</B></A> -
+Constructor for class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A>
+<DD>Creates a writer that writes <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A>s with
+ the given output dimension (2 or 3).
+<DT><A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html#w"><B>w</B></A> -
+Variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html#widestGeometry(com.vividsolutions.jts.geom.Geometry)"><B>widestGeometry(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm">InteriorPointArea</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Geometry.html#within(com.vividsolutions.jts.geom.Geometry)"><B>within(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>
+<DD>Returns <code>true</code> if this geometry is within the
+ specified geometry.
+<DT><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbGeometryCollection"><B>wkbGeometryCollection</B></A> -
+Static variable in interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io">WKBConstants</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbLineString"><B>wkbLineString</B></A> -
+Static variable in interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io">WKBConstants</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbMultiLineString"><B>wkbMultiLineString</B></A> -
+Static variable in interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io">WKBConstants</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbMultiPoint"><B>wkbMultiPoint</B></A> -
+Static variable in interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io">WKBConstants</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbMultiPolygon"><B>wkbMultiPolygon</B></A> -
+Static variable in interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io">WKBConstants</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbNDR"><B>wkbNDR</B></A> -
+Static variable in interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io">WKBConstants</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbPoint"><B>wkbPoint</B></A> -
+Static variable in interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io">WKBConstants</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbPolygon"><B>wkbPolygon</B></A> -
+Static variable in interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io">WKBConstants</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKBConstants.html#wkbXDR"><B>wkbXDR</B></A> -
+Static variable in interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io">WKBConstants</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/OutStream.html#write(byte[], int)"><B>write(byte[], int)</B></A> -
+Method in interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io">OutStream</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/OutputStreamOutStream.html#write(byte[], int)"><B>write(byte[], int)</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/OutputStreamOutStream.html" title="class in com.vividsolutions.jts.io">OutputStreamOutStream</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/WKBWriter.html#write(com.vividsolutions.jts.geom.Geometry)"><B>write(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io">WKBWriter</A>
+<DD>Writes a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> into a byte array.
+<DT><A HREF="com/vividsolutions/jts/io/WKBWriter.html#write(com.vividsolutions.jts.geom.Geometry, com.vividsolutions.jts.io.OutStream)"><B>write(Geometry, OutStream)</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io">WKBWriter</A>
+<DD>Writes a <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><CODE>Geometry</CODE></A> to an <A HREF="com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io"><CODE>OutStream</CODE></A>.
+<DT><A HREF="com/vividsolutions/jts/io/WKTWriter.html#write(com.vividsolutions.jts.geom.Geometry)"><B>write(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A>
+<DD>Converts a <code>Geometry</code> to its Well-known Text representation.
+<DT><A HREF="com/vividsolutions/jts/io/WKTWriter.html#write(com.vividsolutions.jts.geom.Geometry, java.io.Writer)"><B>write(Geometry, Writer)</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A>
+<DD>Converts a <code>Geometry</code> to its Well-known Text representation.
+<DT><A HREF="com/vividsolutions/jts/io/WKTWriter.html#writeFormatted(com.vividsolutions.jts.geom.Geometry)"><B>writeFormatted(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A>
+<DD>Same as <code>write</code>, but with newlines and spaces to make the
+ well-known text more readable.
+<DT><A HREF="com/vividsolutions/jts/io/WKTWriter.html#writeFormatted(com.vividsolutions.jts.geom.Geometry, java.io.Writer)"><B>writeFormatted(Geometry, Writer)</B></A> -
+Method in class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io">WKTWriter</A>
+<DD>Same as <code>write</code>, but with newlines and spaces to make the
+ well-known text more readable.
+</DL>
+<HR>
+<A NAME="_X_"><!-- --></A><H2>
+<B>X</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#X"><B>X</B></A> -
+Static variable in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>Standard ordinate index values
+<DT><A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html#x"><B>x</B></A> -
+Variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#x"><B>x</B></A> -
+Variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>The x-coordinate.
+</DL>
+<HR>
+<A NAME="_Y_"><!-- --></A><H2>
+<B>Y</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#Y"><B>Y</B></A> -
+Static variable in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html#y"><B>y</B></A> -
+Variable in class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm">HCoordinate</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#y"><B>y</B></A> -
+Variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>The y-coordinate.
+</DL>
+<HR>
+<A NAME="_Z_"><!-- --></A><H2>
+<B>Z</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html#Z"><B>Z</B></A> -
+Static variable in interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/geom/Coordinate.html#z"><B>z</B></A> -
+Variable in class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>
+<DD>The z-coordinate.
+<DT><A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html#zeroLowerBits(int)"><B>zeroLowerBits(int)</B></A> -
+Method in class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree">DoubleBits</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/precision/CommonBits.html#zeroLowerBits(long, int)"><B>zeroLowerBits(long, int)</B></A> -
+Static method in class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision">CommonBits</A>
+<DD>Zeroes the lower n bits of a bitstring.
+</DL>
+<HR>
+<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <A HREF="#_Y_">Y</A> <A HREF="#_Z_">Z</A>
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/index.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/index.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/index.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc on Mon Dec 18 10:45:48 PST 2006-->
+<TITLE>
+Generated Documentation (Untitled)
+</TITLE>
+</HEAD>
+<FRAMESET cols="20%,80%">
+<FRAMESET rows="30%,70%">
+<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">
+<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</FRAMESET>
+<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions">
+<NOFRAMES>
+<H2>
+Frame Alert</H2>
+
+<P>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+<BR>
+Link to<A HREF="overview-summary.html">Non-frame version.</A>
+</NOFRAMES>
+</FRAMESET>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/overview-frame.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/overview-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/overview-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,106 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+Overview
+</TITLE>
+
+<META NAME="keywords" CONTENT="Overview">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameTitleFont">
+<B></B></FONT></TD>
+</TR>
+</TABLE>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" target="packageFrame">All Classes</A></FONT>
+<P>
+<FONT size="+1" CLASS="FrameHeadingFont">
+Packages</FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/package-frame.html" target="packageFrame">com.vividsolutions.jts</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/algorithm/package-frame.html" target="packageFrame">com.vividsolutions.jts.algorithm</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/geom/package-frame.html" target="packageFrame">com.vividsolutions.jts.geom</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/geom/impl/package-frame.html" target="packageFrame">com.vividsolutions.jts.geom.impl</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/geom/util/package-frame.html" target="packageFrame">com.vividsolutions.jts.geom.util</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/geomgraph/package-frame.html" target="packageFrame">com.vividsolutions.jts.geomgraph</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/geomgraph/index/package-frame.html" target="packageFrame">com.vividsolutions.jts.geomgraph.index</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/index/package-frame.html" target="packageFrame">com.vividsolutions.jts.index</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/index/bintree/package-frame.html" target="packageFrame">com.vividsolutions.jts.index.bintree</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/index/chain/package-frame.html" target="packageFrame">com.vividsolutions.jts.index.chain</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/index/quadtree/package-frame.html" target="packageFrame">com.vividsolutions.jts.index.quadtree</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/index/strtree/package-frame.html" target="packageFrame">com.vividsolutions.jts.index.strtree</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/index/sweepline/package-frame.html" target="packageFrame">com.vividsolutions.jts.index.sweepline</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/io/package-frame.html" target="packageFrame">com.vividsolutions.jts.io</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/linearref/package-frame.html" target="packageFrame">com.vividsolutions.jts.linearref</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/noding/package-frame.html" target="packageFrame">com.vividsolutions.jts.noding</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/noding/snapround/package-frame.html" target="packageFrame">com.vividsolutions.jts.noding.snapround</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/operation/package-frame.html" target="packageFrame">com.vividsolutions.jts.operation</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/operation/buffer/package-frame.html" target="packageFrame">com.vividsolutions.jts.operation.buffer</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/operation/distance/package-frame.html" target="packageFrame">com.vividsolutions.jts.operation.distance</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/operation/linemerge/package-frame.html" target="packageFrame">com.vividsolutions.jts.operation.linemerge</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/operation/overlay/package-frame.html" target="packageFrame">com.vividsolutions.jts.operation.overlay</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/operation/overlay/snap/package-frame.html" target="packageFrame">com.vividsolutions.jts.operation.overlay.snap</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/operation/overlay/validate/package-frame.html" target="packageFrame">com.vividsolutions.jts.operation.overlay.validate</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/operation/polygonize/package-frame.html" target="packageFrame">com.vividsolutions.jts.operation.polygonize</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/operation/predicate/package-frame.html" target="packageFrame">com.vividsolutions.jts.operation.predicate</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/operation/relate/package-frame.html" target="packageFrame">com.vividsolutions.jts.operation.relate</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/operation/valid/package-frame.html" target="packageFrame">com.vividsolutions.jts.operation.valid</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/planargraph/package-frame.html" target="packageFrame">com.vividsolutions.jts.planargraph</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/planargraph/algorithm/package-frame.html" target="packageFrame">com.vividsolutions.jts.planargraph.algorithm</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/precision/package-frame.html" target="packageFrame">com.vividsolutions.jts.precision</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/simplify/package-frame.html" target="packageFrame">com.vividsolutions.jts.simplify</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/util/package-frame.html" target="packageFrame">com.vividsolutions.jts.util</A></FONT>
+<BR>
+</TD>
+</TR>
+</TABLE>
+
+<P>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/overview-summary.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/overview-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/overview-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+Overview
+</TITLE>
+
+<META NAME="keywords" CONTENT="Overview">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Overview";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Packages</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/package-summary.html">com.vividsolutions.jts</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/algorithm/package-summary.html">com.vividsolutions.jts.algorithm</A></B></TD>
+<TD>Contains classes and interfaces implementing fundamental computational geometry algorithms.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/geom/package-summary.html">com.vividsolutions.jts.geom</A></B></TD>
+<TD>Contains the <CODE>Geometry</CODE> interface hierarchy and supporting classes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/geom/impl/package-summary.html">com.vividsolutions.jts.geom.impl</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/geom/util/package-summary.html">com.vividsolutions.jts.geom.util</A></B></TD>
+<TD>Provides classes that parse and modify Geometry objects.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/geomgraph/package-summary.html">com.vividsolutions.jts.geomgraph</A></B></TD>
+<TD>Contains classes that implement topology graphs.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/geomgraph/index/package-summary.html">com.vividsolutions.jts.geomgraph.index</A></B></TD>
+<TD>Contains classes that implement indexes for performing noding on geometry graph edges.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/index/package-summary.html">com.vividsolutions.jts.index</A></B></TD>
+<TD>Provides classes for various kinds of spatial indexes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/index/bintree/package-summary.html">com.vividsolutions.jts.index.bintree</A></B></TD>
+<TD>Contains classes that implement a Binary Interval Tree index</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/index/chain/package-summary.html">com.vividsolutions.jts.index.chain</A></B></TD>
+<TD>Contains classes that implement Monotone Chains</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/index/quadtree/package-summary.html">com.vividsolutions.jts.index.quadtree</A></B></TD>
+<TD>Contains classes that implement a Quadtree spatial index</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/index/strtree/package-summary.html">com.vividsolutions.jts.index.strtree</A></B></TD>
+<TD>Contains 2-D and 1-D versions of the Sort-Tile-Recursive (STR) tree, a query-only R-tree.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/index/sweepline/package-summary.html">com.vividsolutions.jts.index.sweepline</A></B></TD>
+<TD>Contains classes which implement a sweepline algorithm for scanning geometric data structures.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/io/package-summary.html">com.vividsolutions.jts.io</A></B></TD>
+<TD>Contains the interfaces for converting JTS objects to and from other formats.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/linearref/package-summary.html">com.vividsolutions.jts.linearref</A></B></TD>
+<TD>Contains classes and interfaces implementing linear referencing on linear geometries
+
+</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/noding/package-summary.html">com.vividsolutions.jts.noding</A></B></TD>
+<TD>Classes to compute nodings for arrangements of line segments and line segment sequences.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/noding/snapround/package-summary.html">com.vividsolutions.jts.noding.snapround</A></B></TD>
+<TD>Contains classes to implement the Snap Rounding algorithm for noding linestrings.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/operation/package-summary.html">com.vividsolutions.jts.operation</A></B></TD>
+<TD>Provides classes for implementing operations on geometries</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/operation/buffer/package-summary.html">com.vividsolutions.jts.operation.buffer</A></B></TD>
+<TD>Provides classes for computing buffers of geometries</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/operation/distance/package-summary.html">com.vividsolutions.jts.operation.distance</A></B></TD>
+<TD>Provides classes for computing the distance between geometries</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/operation/linemerge/package-summary.html">com.vividsolutions.jts.operation.linemerge</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/operation/overlay/package-summary.html">com.vividsolutions.jts.operation.overlay</A></B></TD>
+<TD>Contains classes that perform a topological overlay to compute boolean spatial functions.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/operation/overlay/snap/package-summary.html">com.vividsolutions.jts.operation.overlay.snap</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/operation/overlay/validate/package-summary.html">com.vividsolutions.jts.operation.overlay.validate</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/operation/polygonize/package-summary.html">com.vividsolutions.jts.operation.polygonize</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/operation/predicate/package-summary.html">com.vividsolutions.jts.operation.predicate</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/operation/relate/package-summary.html">com.vividsolutions.jts.operation.relate</A></B></TD>
+<TD>Contains classes to implement the computation of the spatial relationships of <CODE>Geometry</CODE>s.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/operation/valid/package-summary.html">com.vividsolutions.jts.operation.valid</A></B></TD>
+<TD>Provides classes for testing the validity of geometries.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/planargraph/package-summary.html">com.vividsolutions.jts.planargraph</A></B></TD>
+<TD>Contains classes to implement a planar graph data structure.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/planargraph/algorithm/package-summary.html">com.vividsolutions.jts.planargraph.algorithm</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/precision/package-summary.html">com.vividsolutions.jts.precision</A></B></TD>
+<TD>Provides classes for manipulating the precision model of Geometries</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/simplify/package-summary.html">com.vividsolutions.jts.simplify</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/util/package-summary.html">com.vividsolutions.jts.util</A></B></TD>
+<TD>Contains support classes for the Java Topology Suite.</TD>
+</TR>
+</TABLE>
+
+<P>
+ <HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/overview-tree.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/overview-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/overview-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,276 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:47 PST 2006 -->
+<TITLE>
+Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For All Packages</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="com/vividsolutions/jts/package-tree.html">com.vividsolutions.jts</A>, <A HREF="com/vividsolutions/jts/algorithm/package-tree.html">com.vividsolutions.jts.algorithm</A>, <A HREF="com/vividsolutions/jts/geom/package-tree.html">com.vividsolutions.jts.geom</A>, <A HREF="com/vividsolutions/jts/geom/impl/package-tree.html">com.vividsolutions.jts.geom.impl</A>, <A HREF="com/vividsolutions/jts/geom/util/package-tree.html">com.vividsolutions.jts.geom.util</A>, <A HREF="com/vividsolutions/jts/geomgraph/package-tree.html">com.vividsolutions.jts.geomgraph</A>, <A HREF="com/vividsolutions/jts/geomgraph/index/package-tree.html">com.vividsolutions.jts.geomgraph.index</A>, <A HREF="com/vividsolutions/jts/index/package-tree.html">com.vividsolutions.jts.index</A>, <A HREF="com/vividsolutions/jts/index/bintree/package-tree.html">com.vividsolutions.jts.index.bintree</A>, <A HREF="com/vividsolutions/jts/index/chain/package-tree.html">com.vividsolutions.jts.index.chain</A>, <A HREF="com/vividsolutions/jts/index/quadtree/package-tree.html">com.vividsolutions.jts.index.quadtree</A>, <A HREF="com/vividsolutions/jts/index/strtree/package-tree.html">com.vividsolutions.jts.index.strtree</A>, <A HREF="com/vividsolutions/jts/index/sweepline/package-tree.html">com.vividsolutions.jts.index.sweepline</A>, <A HREF="com/vividsolutions/jts/io/package-tree.html">com.vividsolutions.jts.io</A>, <A HREF="com/vividsolutions/jts/linearref/package-tree.html">com.vividsolutions.jts.linearref</A>, <A HREF="com/vividsolutions/jts/noding/package-tree.html">com.vividsolutions.jts.noding</A>, <A HREF="com/vividsolutions/jts/noding/snapround/package-tree.html">com.vividsolutions.jts.noding.snapround</A>, <A HREF="com/vividsolutions/jts/operation/package-tree.html">com.vividsolutions.jts.operation</A>, <A HREF="com/vividsolutions/jts/operation/buffer/package-tree.html">com.vividsolutions.jts.operation.buffer</A>, <A HREF="com/vividsolutions/jts/operation/distance/package-tree.html">com.vividsolutions.jts.operation.distance</A>, <A HREF="com/vividsolutions/jts/operation/linemerge/package-tree.html">com.vividsolutions.jts.operation.linemerge</A>, <A HREF="com/vividsolutions/jts/operation/overlay/package-tree.html">com.vividsolutions.jts.operation.overlay</A>, <A HREF="com/vividsolutions/jts/operation/overlay/snap/package-tree.html">com.vividsolutions.jts.operation.overlay.snap</A>, <A HREF="com/vividsolutions/jts/operation/overlay/validate/package-tree.html">com.vividsolutions.jts.operation.overlay.validate</A>, <A HREF="com/vividsolutions/jts/operation/polygonize/package-tree.html">com.vividsolutions.jts.operation.polygonize</A>, <A HREF="com/vividsolutions/jts/operation/predicate/package-tree.html">com.vividsolutions.jts.operation.predicate</A>, <A HREF="com/vividsolutions/jts/operation/relate/package-tree.html">com.vividsolutions.jts.operation.relate</A>, <A HREF="com/vividsolutions/jts/operation/valid/package-tree.html">com.vividsolutions.jts.operation.valid</A>, <A HREF="com/vividsolutions/jts/planargraph/package-tree.html">com.vividsolutions.jts.planargraph</A>, <A HREF="com/vividsolutions/jts/planargraph/algorithm/package-tree.html">com.vividsolutions.jts.planargraph.algorithm</A>, <A HREF="com/vividsolutions/jts/precision/package-tree.html">com.vividsolutions.jts.precision</A>, <A HREF="com/vividsolutions/jts/simplify/package-tree.html">com.vividsolutions.jts.simplify</A>, <A HREF="com/vividsolutions/jts/util/package-tree.html">com.vividsolutions.jts.util</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class java.util.AbstractCollection (implements java.util.Collection)
+<UL>
+<LI TYPE="circle">class java.util.AbstractList (implements java.util.List)
+<UL>
+<LI TYPE="circle">class java.util.ArrayList (implements java.lang.Cloneable, java.util.List, java.util.RandomAccess, java.io.Serializable)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateList</B></A></UL>
+</UL>
+</UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractNode.html" title="class in com.vividsolutions.jts.index.strtree"><B>AbstractNode</B></A> (implements com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>AbstractSTRtree</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/SIRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>SIRtree</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/STRtree.html" title="class in com.vividsolutions.jts.index.strtree"><B>STRtree</B></A> (implements com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A>)
+</UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformation.html" title="class in com.vividsolutions.jts.geom.util"><B>AffineTransformation</B></A> (implements java.lang.Cloneable, com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/AffineTransformationBuilder.html" title="class in com.vividsolutions.jts.geom.util"><B>AffineTransformationBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/Angle.html" title="class in com.vividsolutions.jts.algorithm"><B>Angle</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/ArrayListVisitor.html" title="class in com.vividsolutions.jts.index"><B>ArrayListVisitor</B></A> (implements com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index">ItemVisitor</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Assert.html" title="class in com.vividsolutions.jts.util"><B>Assert</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Bintree.html" title="class in com.vividsolutions.jts.index.bintree"><B>Bintree</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.EndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>BoundaryNodeRule.EndPointBoundaryNodeRule</B></A> (implements com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.Mod2BoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>BoundaryNodeRule.Mod2BoundaryNodeRule</B></A> (implements com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule</B></A> (implements com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule.html" title="class in com.vividsolutions.jts.algorithm"><B>BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule</B></A> (implements com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm">BoundaryNodeRule</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/BoundaryOp.html" title="class in com.vividsolutions.jts.operation"><B>BoundaryOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>BufferBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferOp.html" title="class in com.vividsolutions.jts.operation.buffer"><B>BufferOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/BufferSubgraph.html" title="class in com.vividsolutions.jts.operation.buffer"><B>BufferSubgraph</B></A> (implements java.lang.Comparable)
+<LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteArrayInStream.html" title="class in com.vividsolutions.jts.io"><B>ByteArrayInStream</B></A> (implements com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderDataInStream.html" title="class in com.vividsolutions.jts.io"><B>ByteOrderDataInStream</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ByteOrderValues.html" title="class in com.vividsolutions.jts.io"><B>ByteOrderValues</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentralEndpointIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>CentralEndpointIntersector</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidArea.html" title="class in com.vividsolutions.jts.algorithm"><B>CentroidArea</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidLine.html" title="class in com.vividsolutions.jts.algorithm"><B>CentroidLine</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CentroidPoint.html" title="class in com.vividsolutions.jts.algorithm"><B>CentroidPoint</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/CGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>CGAlgorithms</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/NonRobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>NonRobustCGAlgorithms</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/RobustCGAlgorithms.html" title="class in com.vividsolutions.jts.algorithm"><B>RobustCGAlgorithms</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CollectionUtil.html" title="class in com.vividsolutions.jts.util"><B>CollectionUtil</B></A><LI TYPE="circle">class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBits.html" title="class in com.vividsolutions.jts.precision"><B>CommonBits</B></A><LI TYPE="circle">class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsOp.html" title="class in com.vividsolutions.jts.precision"><B>CommonBitsOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/CommonBitsRemover.html" title="class in com.vividsolutions.jts.precision"><B>CommonBitsRemover</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementLocationFilter.html" title="class in com.vividsolutions.jts.operation.distance"><B>ConnectedElementLocationFilter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/ConnectedElementPointFilter.html" title="class in com.vividsolutions.jts.operation.distance"><B>ConnectedElementPointFilter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>ConnectedInteriorTester</B></A><LI TYPE="circle">class com.vividsolutions.jts.planargraph.algorithm.<A HREF="com/vividsolutions/jts/planargraph/algorithm/ConnectedSubgraphFinder.html" title="class in com.vividsolutions.jts.planargraph.algorithm"><B>ConnectedSubgraphFinder</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/ConsistentAreaTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>ConsistentAreaTester</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.html" title="class in com.vividsolutions.jts.operation.overlay"><B>ConsistentPolygonRingChecker</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/ConvexHull.html" title="class in com.vividsolutions.jts.algorithm"><B>ConvexHull</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom"><B>Coordinate</B></A> (implements java.lang.Cloneable, java.lang.Comparable, java.io.Serializable)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Coordinate.DimensionalComparator.html" title="class in com.vividsolutions.jts.geom"><B>Coordinate.DimensionalComparator</B></A> (implements java.util.Comparator)
+<LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util"><B>CoordinateArrayFilter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateArrays</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.BidirectionalComparator.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateArrays.BidirectionalComparator</B></A> (implements java.util.Comparator)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateArrays.ForwardComparator.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateArrays.ForwardComparator</B></A> (implements java.util.Comparator)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl"><B>CoordinateArraySequence</B></A> (implements com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>, java.io.Serializable)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl"><B>CoordinateArraySequenceFactory</B></A> (implements com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A>, java.io.Serializable)
+<LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CoordinateCountFilter.html" title="class in com.vividsolutions.jts.util"><B>CoordinateCountFilter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceComparator.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateSequenceComparator</B></A> (implements java.util.Comparator)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequences.html" title="class in com.vividsolutions.jts.geom"><B>CoordinateSequences</B></A><LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Debug.html" title="class in com.vividsolutions.jts.util"><B>Debug</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom"><B>DefaultCoordinateSequenceFactory</B></A> (implements com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A>, java.io.Serializable)
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Depth.html" title="class in com.vividsolutions.jts.geomgraph"><B>Depth</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Dimension.html" title="class in com.vividsolutions.jts.geom"><B>Dimension</B></A><LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.planargraph"><B>DirectedEdgeStar</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/DistanceOp.html" title="class in com.vividsolutions.jts.operation.distance"><B>DistanceOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/DoubleBits.html" title="class in com.vividsolutions.jts.index.quadtree"><B>DoubleBits</B></A><LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerLineSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>DouglasPeuckerLineSimplifier</B></A><LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/DouglasPeuckerSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>DouglasPeuckerSimplifier</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEnd.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeEnd</B></A> (implements java.lang.Comparable)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdge.html" title="class in com.vividsolutions.jts.geomgraph"><B>DirectedEdge</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundle.html" title="class in com.vividsolutions.jts.operation.relate"><B>EdgeEndBundle</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBuilder.html" title="class in com.vividsolutions.jts.operation.relate"><B>EdgeEndBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeEndStar.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeEndStar</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/DirectedEdgeStar.html" title="class in com.vividsolutions.jts.geomgraph"><B>DirectedEdgeStar</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.html" title="class in com.vividsolutions.jts.operation.relate"><B>EdgeEndBundleStar</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersection.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeIntersection</B></A> (implements java.lang.Comparable)
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeIntersectionList.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeIntersectionList</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeList.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeList</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeNodingValidator.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeNodingValidator</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/EdgeRing.html" title="class in com.vividsolutions.jts.geomgraph"><B>EdgeRing</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><B>MaximalEdgeRing</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/MinimalEdgeRing.html" title="class in com.vividsolutions.jts.operation.overlay"><B>MinimalEdgeRing</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/EdgeRing.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>EdgeRing</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/EdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>EdgeSetIntersector</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleEdgeSetIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SimpleEdgeSetIntersector</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleMCSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SimpleMCSweepLineIntersector</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SimpleSweepLineIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SimpleSweepLineIntersector</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/EdgeSetNoder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>EdgeSetNoder</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/EdgeString.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>EdgeString</B></A><LI TYPE="circle">class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/EnhancedPrecisionOp.html" title="class in com.vividsolutions.jts.precision"><B>EnhancedPrecisionOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom"><B>Envelope</B></A> (implements java.io.Serializable)
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/FastNodingValidator.html" title="class in com.vividsolutions.jts.noding"><B>FastNodingValidator</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.validate.<A HREF="com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>FuzzyPointLocator</B></A><LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/GeometricShapeFactory.html" title="class in com.vividsolutions.jts.util"><B>GeometricShapeFactory</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom"><B>Geometry</B></A> (implements java.lang.Cloneable, java.lang.Comparable, java.io.Serializable)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom"><B>GeometryCollection</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom"><B>MultiLineString</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom"><B>MultiPoint</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom"><B>MultiPolygon</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom"><B>LineString</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom"><B>LinearRing</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom"><B>Point</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom"><B>Polygon</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryCollectionIterator.html" title="class in com.vividsolutions.jts.geom"><B>GeometryCollectionIterator</B></A> (implements java.util.Iterator)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.html" title="class in com.vividsolutions.jts.geom.util"><B>GeometryEditor</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.CoordinateOperation.html" title="class in com.vividsolutions.jts.geom.util"><B>GeometryEditor.CoordinateOperation</B></A> (implements com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util">GeometryEditor.GeometryEditorOperation</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><B>GeometryFactory</B></A> (implements java.io.Serializable)
+<LI TYPE="circle">class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/GeometryGraphOperation.html" title="class in com.vividsolutions.jts.operation"><B>GeometryGraphOperation</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay"><B>OverlayOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateOp.html" title="class in com.vividsolutions.jts.operation.relate"><B>RelateOp</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.distance.<A HREF="com/vividsolutions/jts/operation/distance/GeometryLocation.html" title="class in com.vividsolutions.jts.operation.distance"><B>GeometryLocation</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>GeometrySnapper</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryTransformer.html" title="class in com.vividsolutions.jts.geom.util"><B>GeometryTransformer</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GraphComponent.html" title="class in com.vividsolutions.jts.geomgraph"><B>GraphComponent</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Edge.html" title="class in com.vividsolutions.jts.geomgraph"><B>Edge</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Node.html" title="class in com.vividsolutions.jts.geomgraph"><B>Node</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNode.html" title="class in com.vividsolutions.jts.operation.relate"><B>RelateNode</B></A></UL>
+</UL>
+<LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/GraphComponent.html" title="class in com.vividsolutions.jts.planargraph"><B>GraphComponent</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/DirectedEdge.html" title="class in com.vividsolutions.jts.planargraph"><B>DirectedEdge</B></A> (implements java.lang.Comparable)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>LineMergeDirectedEdge</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/PolygonizeDirectedEdge.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>PolygonizeDirectedEdge</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Edge.html" title="class in com.vividsolutions.jts.planargraph"><B>Edge</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeEdge.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>LineMergeEdge</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Node.html" title="class in com.vividsolutions.jts.planargraph"><B>Node</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/HCoordinate.html" title="class in com.vividsolutions.jts.algorithm"><B>HCoordinate</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/HotPixel.html" title="class in com.vividsolutions.jts.noding.snapround"><B>HotPixel</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/InputStreamInStream.html" title="class in com.vividsolutions.jts.io"><B>InputStreamInStream</B></A> (implements com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io">InStream</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/InteriorIntersectionFinder.html" title="class in com.vividsolutions.jts.noding"><B>InteriorIntersectionFinder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointArea.html" title="class in com.vividsolutions.jts.algorithm"><B>InteriorPointArea</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointLine.html" title="class in com.vividsolutions.jts.algorithm"><B>InteriorPointLine</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/InteriorPointPoint.html" title="class in com.vividsolutions.jts.algorithm"><B>InteriorPointPoint</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionAdder.html" title="class in com.vividsolutions.jts.noding"><B>IntersectionAdder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IntersectionFinderAdder.html" title="class in com.vividsolutions.jts.noding"><B>IntersectionFinderAdder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding">SegmentIntersector</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/IntersectionMatrix.html" title="class in com.vividsolutions.jts.geom"><B>IntersectionMatrix</B></A> (implements java.lang.Cloneable)
+<LI TYPE="circle">class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Interval.html" title="class in com.vividsolutions.jts.index.bintree"><B>Interval</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/Interval.html" title="class in com.vividsolutions.jts.index.strtree"><B>Interval</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/IntervalSize.html" title="class in com.vividsolutions.jts.index.quadtree"><B>IntervalSize</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.<A HREF="com/vividsolutions/jts/operation/IsSimpleOp.html" title="class in com.vividsolutions.jts.operation"><B>IsSimpleOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/IsValidOp.html" title="class in com.vividsolutions.jts.operation.valid"><B>IsValidOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/ItemBoundable.html" title="class in com.vividsolutions.jts.index.strtree"><B>ItemBoundable</B></A> (implements com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree">Boundable</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/IteratedNoder.html" title="class in com.vividsolutions.jts.noding"><B>IteratedNoder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.<A HREF="com/vividsolutions/jts/JTSVersion.html" title="class in com.vividsolutions.jts"><B>JTSVersion</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Key.html" title="class in com.vividsolutions.jts.index.bintree"><B>Key</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Key.html" title="class in com.vividsolutions.jts.index.quadtree"><B>Key</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Label.html" title="class in com.vividsolutions.jts.geomgraph"><B>Label</B></A><LI TYPE="circle">class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthIndexedLine.html" title="class in com.vividsolutions.jts.linearref"><B>LengthIndexedLine</B></A><LI TYPE="circle">class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LengthLocationMap.html" title="class in com.vividsolutions.jts.linearref"><B>LengthLocationMap</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/LinearComponentExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>LinearComponentExtracter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryComponentFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearGeometryBuilder.html" title="class in com.vividsolutions.jts.linearref"><B>LinearGeometryBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearIterator.html" title="class in com.vividsolutions.jts.linearref"><B>LinearIterator</B></A><LI TYPE="circle">class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LinearLocation.html" title="class in com.vividsolutions.jts.linearref"><B>LinearLocation</B></A> (implements java.lang.Comparable)
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/LineBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>LineBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/LineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>LineIntersector</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/NonRobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>NonRobustLineIntersector</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/RobustLineIntersector.html" title="class in com.vividsolutions.jts.algorithm"><B>RobustLineIntersector</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMerger.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>LineMerger</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom"><B>LineSegment</B></A> (implements java.lang.Comparable, java.io.Serializable)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify"><B>TaggedLineSegment</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/LineSegmentIndex.html" title="class in com.vividsolutions.jts.simplify"><B>LineSegmentIndex</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineSequencer.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>LineSequencer</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>LineStringSnapper</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Location.html" title="class in com.vividsolutions.jts.geom"><B>Location</B></A><LI TYPE="circle">class com.vividsolutions.jts.linearref.<A HREF="com/vividsolutions/jts/linearref/LocationIndexedLine.html" title="class in com.vividsolutions.jts.linearref"><B>LocationIndexedLine</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/Matrix.html" title="class in com.vividsolutions.jts.geom.util"><B>Matrix</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.html" title="class in com.vividsolutions.jts.noding.snapround"><B>MCIndexPointSnapper</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround"><B>MCIndexSnapRounder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/MCPointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>MCPointInRing</B></A> (implements com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/MinimumDiameter.html" title="class in com.vividsolutions.jts.algorithm"><B>MinimumDiameter</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChain.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>MonotoneChain</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChain.html" title="class in com.vividsolutions.jts.index.chain"><B>MonotoneChain</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainBuilder.html" title="class in com.vividsolutions.jts.index.chain"><B>MonotoneChainBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainEdge.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>MonotoneChainEdge</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/MonotoneChainIndexer.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>MonotoneChainIndexer</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainOverlapAction.html" title="class in com.vividsolutions.jts.index.chain"><B>MonotoneChainOverlapAction</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/MCIndexNoder.SegmentOverlapAction.html" title="class in com.vividsolutions.jts.noding"><B>MCIndexNoder.SegmentOverlapAction</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.chain.<A HREF="com/vividsolutions/jts/index/chain/MonotoneChainSelectAction.html" title="class in com.vividsolutions.jts.index.chain"><B>MonotoneChainSelectAction</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/MCIndexPointSnapper.HotPixelSnapAction.html" title="class in com.vividsolutions.jts.noding.snapround"><B>MCIndexPointSnapper.HotPixelSnapAction</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/NodeBase.html" title="class in com.vividsolutions.jts.index.bintree"><B>NodeBase</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Node.html" title="class in com.vividsolutions.jts.index.bintree"><B>Node</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.bintree.<A HREF="com/vividsolutions/jts/index/bintree/Root.html" title="class in com.vividsolutions.jts.index.bintree"><B>Root</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/NodeBase.html" title="class in com.vividsolutions.jts.index.quadtree"><B>NodeBase</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Node.html" title="class in com.vividsolutions.jts.index.quadtree"><B>Node</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Root.html" title="class in com.vividsolutions.jts.index.quadtree"><B>Root</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/NodeFactory.html" title="class in com.vividsolutions.jts.geomgraph"><B>NodeFactory</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/OverlayNodeFactory.html" title="class in com.vividsolutions.jts.operation.overlay"><B>OverlayNodeFactory</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeFactory.html" title="class in com.vividsolutions.jts.operation.relate"><B>RelateNodeFactory</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/NodeMap.html" title="class in com.vividsolutions.jts.geomgraph"><B>NodeMap</B></A><LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/NodeMap.html" title="class in com.vividsolutions.jts.planargraph"><B>NodeMap</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/NodingValidator.html" title="class in com.vividsolutions.jts.noding"><B>NodingValidator</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/Octant.html" title="class in com.vividsolutions.jts.noding"><B>Octant</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>OffsetCurveBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/OffsetCurveSetBuilder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>OffsetCurveSetBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.validate.<A HREF="com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>OffsetPointGenerator</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/OrientedCoordinateArray.html" title="class in com.vividsolutions.jts.noding"><B>OrientedCoordinateArray</B></A> (implements java.lang.Comparable)
+<LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/OutputStreamOutStream.html" title="class in com.vividsolutions.jts.io"><B>OutputStreamOutStream</B></A> (implements com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io">OutStream</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.validate.<A HREF="com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.html" title="class in com.vividsolutions.jts.operation.overlay.validate"><B>OverlayResultValidator</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.html" title="class in com.vividsolutions.jts.geom.impl"><B>PackedCoordinateSequence</B></A> (implements com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A>)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Double.html" title="class in com.vividsolutions.jts.geom.impl"><B>PackedCoordinateSequence.Double</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequence.Float.html" title="class in com.vividsolutions.jts.geom.impl"><B>PackedCoordinateSequence.Float</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.impl.<A HREF="com/vividsolutions/jts/geom/impl/PackedCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl"><B>PackedCoordinateSequenceFactory</B></A> (implements com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/PlanarGraph.html" title="class in com.vividsolutions.jts.geomgraph"><B>PlanarGraph</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/GeometryGraph.html" title="class in com.vividsolutions.jts.geomgraph"><B>GeometryGraph</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/PlanarGraph.html" title="class in com.vividsolutions.jts.planargraph"><B>PlanarGraph</B></A><UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.linemerge.<A HREF="com/vividsolutions/jts/operation/linemerge/LineMergeGraph.html" title="class in com.vividsolutions.jts.operation.linemerge"><B>LineMergeGraph</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/PointBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PointBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/PointExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>PointExtracter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/PointLocator.html" title="class in com.vividsolutions.jts.algorithm"><B>PointLocator</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.<A HREF="com/vividsolutions/jts/operation/overlay/PolygonBuilder.html" title="class in com.vividsolutions.jts.operation.overlay"><B>PolygonBuilder</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/PolygonExtracter.html" title="class in com.vividsolutions.jts.geom.util"><B>PolygonExtracter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom">GeometryFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.operation.polygonize.<A HREF="com/vividsolutions/jts/operation/polygonize/Polygonizer.html" title="class in com.vividsolutions.jts.operation.polygonize"><B>Polygonizer</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Position.html" title="class in com.vividsolutions.jts.geomgraph"><B>Position</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom"><B>PrecisionModel</B></A> (implements java.lang.Comparable, java.io.Serializable)
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/Quadrant.html" title="class in com.vividsolutions.jts.geomgraph"><B>Quadrant</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.quadtree.<A HREF="com/vividsolutions/jts/index/quadtree/Quadtree.html" title="class in com.vividsolutions.jts.index.quadtree"><B>Quadtree</B></A> (implements com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index">SpatialIndex</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/QuadtreeNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>QuadtreeNestedRingTester</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/RectangleContains.html" title="class in com.vividsolutions.jts.operation.predicate"><B>RectangleContains</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/RectangleIntersects.html" title="class in com.vividsolutions.jts.operation.predicate"><B>RectangleIntersects</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateComputer.html" title="class in com.vividsolutions.jts.operation.relate"><B>RelateComputer</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.relate.<A HREF="com/vividsolutions/jts/operation/relate/RelateNodeGraph.html" title="class in com.vividsolutions.jts.operation.relate"><B>RelateNodeGraph</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/RepeatedPointTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>RepeatedPointTester</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/RightmostEdgeFinder.html" title="class in com.vividsolutions.jts.operation.buffer"><B>RightmostEdgeFinder</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/RobustDeterminant.html" title="class in com.vividsolutions.jts.algorithm"><B>RobustDeterminant</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/ScaledNoder.html" title="class in com.vividsolutions.jts.noding"><B>ScaledNoder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.operation.predicate.<A HREF="com/vividsolutions/jts/operation/predicate/SegmentIntersectionTester.html" title="class in com.vividsolutions.jts.operation.predicate"><B>SegmentIntersectionTester</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SegmentIntersector.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SegmentIntersector</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNode.html" title="class in com.vividsolutions.jts.noding"><B>SegmentNode</B></A> (implements java.lang.Comparable)
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentNodeList.html" title="class in com.vividsolutions.jts.noding"><B>SegmentNodeList</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentPointComparator.html" title="class in com.vividsolutions.jts.noding"><B>SegmentPointComparator</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentString.html" title="class in com.vividsolutions.jts.noding"><B>SegmentString</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.html" title="class in com.vividsolutions.jts.noding"><B>SegmentStringDissolver</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/ShortCircuitedGeometryVisitor.html" title="class in com.vividsolutions.jts.geom.util"><B>ShortCircuitedGeometryVisitor</B></A><LI TYPE="circle">class com.vividsolutions.jts.precision.<A HREF="com/vividsolutions/jts/precision/SimpleGeometryPrecisionReducer.html" title="class in com.vividsolutions.jts.precision"><B>SimpleGeometryPrecisionReducer</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/SimpleNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>SimpleNestedRingTester</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/SimplePointInAreaLocator.html" title="class in com.vividsolutions.jts.algorithm"><B>SimplePointInAreaLocator</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/SimplePointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>SimplePointInRing</B></A> (implements com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.noding.snapround.<A HREF="com/vividsolutions/jts/noding/snapround/SimpleSnapRounder.html" title="class in com.vividsolutions.jts.noding.snapround"><B>SimpleSnapRounder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SinglePassNoder.html" title="class in com.vividsolutions.jts.noding"><B>SinglePassNoder</B></A> (implements com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding">Noder</A>)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/MCIndexNoder.html" title="class in com.vividsolutions.jts.noding"><B>MCIndexNoder</B></A><LI TYPE="circle">class com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SimpleNoder.html" title="class in com.vividsolutions.jts.noding"><B>SimpleNoder</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/SIRtreePointInRing.html" title="class in com.vividsolutions.jts.algorithm"><B>SIRtreePointInRing</B></A> (implements com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm">PointInRing</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>SnapIfNeededOverlayOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.overlay.snap.<A HREF="com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.html" title="class in com.vividsolutions.jts.operation.overlay.snap"><B>SnapOverlayOp</B></A><LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/Stopwatch.html" title="class in com.vividsolutions.jts.util"><B>Stopwatch</B></A><LI TYPE="circle">class com.vividsolutions.jts.planargraph.<A HREF="com/vividsolutions/jts/planargraph/Subgraph.html" title="class in com.vividsolutions.jts.planargraph"><B>Subgraph</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.buffer.<A HREF="com/vividsolutions/jts/operation/buffer/SubgraphDepthLocater.html" title="class in com.vividsolutions.jts.operation.buffer"><B>SubgraphDepthLocater</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineEvent.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SweepLineEvent</B></A> (implements java.lang.Comparable)
+<LI TYPE="circle">class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineEvent.html" title="class in com.vividsolutions.jts.index.sweepline"><B>SweepLineEvent</B></A> (implements java.lang.Comparable)
+<LI TYPE="circle">class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineIndex.html" title="class in com.vividsolutions.jts.index.sweepline"><B>SweepLineIndex</B></A><LI TYPE="circle">class com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineInterval.html" title="class in com.vividsolutions.jts.index.sweepline"><B>SweepLineInterval</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/SweeplineNestedRingTester.html" title="class in com.vividsolutions.jts.operation.valid"><B>SweeplineNestedRingTester</B></A><LI TYPE="circle">class com.vividsolutions.jts.geomgraph.index.<A HREF="com/vividsolutions/jts/geomgraph/index/SweepLineSegment.html" title="class in com.vividsolutions.jts.geomgraph.index"><B>SweepLineSegment</B></A><LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLinesSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>TaggedLinesSimplifier</B></A><LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineString.html" title="class in com.vividsolutions.jts.simplify"><B>TaggedLineString</B></A><LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>TaggedLineStringSimplifier</B></A><LI TYPE="circle">class java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">class java.lang.Exception<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html" title="class in com.vividsolutions.jts.geom.util"><B>NoninvertibleTransformationException</B></A><LI TYPE="circle">class com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm"><B>NotRepresentableException</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io"><B>ParseException</B></A><LI TYPE="circle">class java.lang.RuntimeException<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util"><B>AssertionFailedException</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom"><B>TopologyException</B></A></UL>
+</UL>
+</UL>
+<LI TYPE="circle">class com.vividsolutions.jts.geomgraph.<A HREF="com/vividsolutions/jts/geomgraph/TopologyLocation.html" title="class in com.vividsolutions.jts.geomgraph"><B>TopologyLocation</B></A><LI TYPE="circle">class com.vividsolutions.jts.simplify.<A HREF="com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.html" title="class in com.vividsolutions.jts.simplify"><B>TopologyPreservingSimplifier</B></A><LI TYPE="circle">class com.vividsolutions.jts.operation.valid.<A HREF="com/vividsolutions/jts/operation/valid/TopologyValidationError.html" title="class in com.vividsolutions.jts.operation.valid"><B>TopologyValidationError</B></A><LI TYPE="circle">class com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/Triangle.html" title="class in com.vividsolutions.jts.geom"><B>Triangle</B></A><LI TYPE="circle">class com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/UniqueCoordinateArrayFilter.html" title="class in com.vividsolutions.jts.util"><B>UniqueCoordinateArrayFilter</B></A> (implements com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom">CoordinateFilter</A>)
+<LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBReader.html" title="class in com.vividsolutions.jts.io"><B>WKBReader</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBWriter.html" title="class in com.vividsolutions.jts.io"><B>WKBWriter</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTReader.html" title="class in com.vividsolutions.jts.io"><B>WKTReader</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKTWriter.html" title="class in com.vividsolutions.jts.io"><B>WKTWriter</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">interface com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/AbstractSTRtree.IntersectsOp.html" title="interface in com.vividsolutions.jts.index.strtree"><B>AbstractSTRtree.IntersectsOp</B></A><LI TYPE="circle">interface com.vividsolutions.jts.index.strtree.<A HREF="com/vividsolutions/jts/index/strtree/Boundable.html" title="interface in com.vividsolutions.jts.index.strtree"><B>Boundable</B></A><LI TYPE="circle">interface com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/BoundaryNodeRule.html" title="interface in com.vividsolutions.jts.algorithm"><B>BoundaryNodeRule</B></A><LI TYPE="circle">interface java.lang.Cloneable<UL>
+<LI TYPE="circle">interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom"><B>CoordinateSequence</B></A></UL>
+<LI TYPE="circle">interface com.vividsolutions.jts.util.<A HREF="com/vividsolutions/jts/util/CollectionUtil.Function.html" title="interface in com.vividsolutions.jts.util"><B>CollectionUtil.Function</B></A><LI TYPE="circle">interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateFilter.html" title="interface in com.vividsolutions.jts.geom"><B>CoordinateFilter</B></A><LI TYPE="circle">interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom"><B>CoordinateSequenceFactory</B></A><LI TYPE="circle">interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFilter.html" title="interface in com.vividsolutions.jts.geom"><B>CoordinateSequenceFilter</B></A><LI TYPE="circle">interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryComponentFilter.html" title="interface in com.vividsolutions.jts.geom"><B>GeometryComponentFilter</B></A><LI TYPE="circle">interface com.vividsolutions.jts.geom.util.<A HREF="com/vividsolutions/jts/geom/util/GeometryEditor.GeometryEditorOperation.html" title="interface in com.vividsolutions.jts.geom.util"><B>GeometryEditor.GeometryEditorOperation</B></A><LI TYPE="circle">interface com.vividsolutions.jts.geom.<A HREF="com/vividsolutions/jts/geom/GeometryFilter.html" title="interface in com.vividsolutions.jts.geom"><B>GeometryFilter</B></A><LI TYPE="circle">interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/InStream.html" title="interface in com.vividsolutions.jts.io"><B>InStream</B></A><LI TYPE="circle">interface com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/ItemVisitor.html" title="interface in com.vividsolutions.jts.index"><B>ItemVisitor</B></A><LI TYPE="circle">interface com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/Noder.html" title="interface in com.vividsolutions.jts.noding"><B>Noder</B></A><LI TYPE="circle">interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/OutStream.html" title="interface in com.vividsolutions.jts.io"><B>OutStream</B></A><LI TYPE="circle">interface com.vividsolutions.jts.algorithm.<A HREF="com/vividsolutions/jts/algorithm/PointInRing.html" title="interface in com.vividsolutions.jts.algorithm"><B>PointInRing</B></A><LI TYPE="circle">interface com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentIntersector.html" title="interface in com.vividsolutions.jts.noding"><B>SegmentIntersector</B></A><LI TYPE="circle">interface com.vividsolutions.jts.noding.<A HREF="com/vividsolutions/jts/noding/SegmentStringDissolver.SegmentStringMerger.html" title="interface in com.vividsolutions.jts.noding"><B>SegmentStringDissolver.SegmentStringMerger</B></A><LI TYPE="circle">interface com.vividsolutions.jts.index.<A HREF="com/vividsolutions/jts/index/SpatialIndex.html" title="interface in com.vividsolutions.jts.index"><B>SpatialIndex</B></A><LI TYPE="circle">interface com.vividsolutions.jts.index.sweepline.<A HREF="com/vividsolutions/jts/index/sweepline/SweepLineOverlapAction.html" title="interface in com.vividsolutions.jts.index.sweepline"><B>SweepLineOverlapAction</B></A><LI TYPE="circle">interface com.vividsolutions.jts.io.<A HREF="com/vividsolutions/jts/io/WKBConstants.html" title="interface in com.vividsolutions.jts.io"><B>WKBConstants</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/package-list
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/package-list (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/package-list 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,33 @@
+com.vividsolutions.jts
+com.vividsolutions.jts.algorithm
+com.vividsolutions.jts.geom
+com.vividsolutions.jts.geom.impl
+com.vividsolutions.jts.geom.util
+com.vividsolutions.jts.geomgraph
+com.vividsolutions.jts.geomgraph.index
+com.vividsolutions.jts.index
+com.vividsolutions.jts.index.bintree
+com.vividsolutions.jts.index.chain
+com.vividsolutions.jts.index.quadtree
+com.vividsolutions.jts.index.strtree
+com.vividsolutions.jts.index.sweepline
+com.vividsolutions.jts.io
+com.vividsolutions.jts.linearref
+com.vividsolutions.jts.noding
+com.vividsolutions.jts.noding.snapround
+com.vividsolutions.jts.operation
+com.vividsolutions.jts.operation.buffer
+com.vividsolutions.jts.operation.distance
+com.vividsolutions.jts.operation.linemerge
+com.vividsolutions.jts.operation.overlay
+com.vividsolutions.jts.operation.overlay.snap
+com.vividsolutions.jts.operation.overlay.validate
+com.vividsolutions.jts.operation.polygonize
+com.vividsolutions.jts.operation.predicate
+com.vividsolutions.jts.operation.relate
+com.vividsolutions.jts.operation.valid
+com.vividsolutions.jts.planargraph
+com.vividsolutions.jts.planargraph.algorithm
+com.vividsolutions.jts.precision
+com.vividsolutions.jts.simplify
+com.vividsolutions.jts.util
Added: packages/jts/branches/upstream/current/doc/javadoc/packages.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/packages.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/packages.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:48 PST 2006 -->
+<TITLE>
+
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+
+<BR>
+
+<BR>
+
+<BR>
+<CENTER>
+The front page has been relocated.Please see:
+<BR>
+ <A HREF="index.html">Frame version</A>
+<BR>
+ <A HREF="overview-summary.html">Non-frame version.</A></CENTER>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/resources/inherit.gif
===================================================================
(Binary files differ)
Property changes on: packages/jts/branches/upstream/current/doc/javadoc/resources/inherit.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: packages/jts/branches/upstream/current/doc/javadoc/serialized-form.html
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/serialized-form.html (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/serialized-form.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,935 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:53 PST 2006 -->
+<TITLE>
+Serialized Form
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Serialized Form";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Serialized Form</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>com.vividsolutions.jts.algorithm</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="com.vividsolutions.jts.algorithm.NotRepresentableException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/algorithm/NotRepresentableException.html" title="class in com.vividsolutions.jts.algorithm">com.vividsolutions.jts.algorithm.NotRepresentableException</A> extends java.lang.Exception implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>com.vividsolutions.jts.geom</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.Coordinate"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.Coordinate</A> extends java.lang.Object implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>6683108902428366910l
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TD>
+</TR>
+</TABLE>
+
+<H3>
+x</H3>
+<PRE>
+double <B>x</B></PRE>
+<DL>
+<DD>The x-coordinate.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<H3>
+y</H3>
+<PRE>
+double <B>y</B></PRE>
+<DL>
+<DD>The y-coordinate.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<H3>
+z</H3>
+<PRE>
+double <B>z</B></PRE>
+<DL>
+<DD>The z-coordinate.
+<P>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.CoordinateList"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/CoordinateList.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.CoordinateList</A> extends java.util.ArrayList implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.DefaultCoordinateSequenceFactory"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.DefaultCoordinateSequenceFactory</A> extends java.lang.Object implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>-4099577099607551657l
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<A NAME="readResolve()"><!-- --></A><H3>
+readResolve</H3>
+<PRE>
+private java.lang.Object <B>readResolve</B>()</PRE>
+<DL>
+<DD><B>Deprecated.</B> </DL>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.Envelope"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.Envelope</A> extends java.lang.Object implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>5873921885273102420l
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TD>
+</TR>
+</TABLE>
+
+<H3>
+minx</H3>
+<PRE>
+double <B>minx</B></PRE>
+<DL>
+<DD>the minimum x-coordinate
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<H3>
+maxx</H3>
+<PRE>
+double <B>maxx</B></PRE>
+<DL>
+<DD>the maximum x-coordinate
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<H3>
+miny</H3>
+<PRE>
+double <B>miny</B></PRE>
+<DL>
+<DD>the minimum y-coordinate
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<H3>
+maxy</H3>
+<PRE>
+double <B>maxy</B></PRE>
+<DL>
+<DD>the maximum y-coordinate
+<P>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.Geometry"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.Geometry</A> extends java.lang.Object implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>8763622679187376702l
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TD>
+</TR>
+</TABLE>
+
+<H3>
+envelope</H3>
+<PRE>
+<A HREF="com/vividsolutions/jts/geom/Envelope.html" title="class in com.vividsolutions.jts.geom">Envelope</A> <B>envelope</B></PRE>
+<DL>
+<DD>The bounding box of this <code>Geometry</code>.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<H3>
+factory</H3>
+<PRE>
+<A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">GeometryFactory</A> <B>factory</B></PRE>
+<DL>
+<DD>The <A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom"><CODE>GeometryFactory</CODE></A> used to create this Geometry
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<H3>
+SRID</H3>
+<PRE>
+int <B>SRID</B></PRE>
+<DL>
+<DD>The ID of the Spatial Reference System used by this <code>Geometry</code>
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<H3>
+userData</H3>
+<PRE>
+java.lang.Object <B>userData</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.GeometryCollection"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.GeometryCollection</A> extends <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>-5694727726395021467l
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TD>
+</TR>
+</TABLE>
+
+<H3>
+geometries</H3>
+<PRE>
+<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A>[] <B>geometries</B></PRE>
+<DL>
+<DD>Internal representation of this <code>GeometryCollection</code>.
+<P>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.GeometryFactory"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/GeometryFactory.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.GeometryFactory</A> extends java.lang.Object implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>-6820524753094095635l
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TD>
+</TR>
+</TABLE>
+
+<H3>
+precisionModel</H3>
+<PRE>
+<A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">PrecisionModel</A> <B>precisionModel</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<H3>
+coordinateSequenceFactory</H3>
+<PRE>
+<A HREF="com/vividsolutions/jts/geom/CoordinateSequenceFactory.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequenceFactory</A> <B>coordinateSequenceFactory</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<H3>
+SRID</H3>
+<PRE>
+int <B>SRID</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.LinearRing"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.LinearRing</A> extends <A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">LineString</A> implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>-4261142084085851829l
+
+<P>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.LineSegment"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.LineSegment</A> extends java.lang.Object implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>3252005833466256227l
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TD>
+</TR>
+</TABLE>
+
+<H3>
+p0</H3>
+<PRE>
+<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>p0</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<H3>
+p1</H3>
+<PRE>
+<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>p1</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.LineString"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/LineString.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.LineString</A> extends <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>3110669828065365560l
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TD>
+</TR>
+</TABLE>
+
+<H3>
+points</H3>
+<PRE>
+<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>points</B></PRE>
+<DL>
+<DD>The points of this <code>LineString</code>.
+<P>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.MultiLineString"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/MultiLineString.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.MultiLineString</A> extends <A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A> implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>8166665132445433741l
+
+<P>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.MultiPoint"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/MultiPoint.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.MultiPoint</A> extends <A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A> implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>-8048474874175355449l
+
+<P>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.MultiPolygon"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/MultiPolygon.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.MultiPolygon</A> extends <A HREF="com/vividsolutions/jts/geom/GeometryCollection.html" title="class in com.vividsolutions.jts.geom">GeometryCollection</A> implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>-551033529766975875l
+
+<P>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.Point"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/Point.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.Point</A> extends <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>4902022702746614570l
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TD>
+</TR>
+</TABLE>
+
+<H3>
+coordinates</H3>
+<PRE>
+<A HREF="com/vividsolutions/jts/geom/CoordinateSequence.html" title="interface in com.vividsolutions.jts.geom">CoordinateSequence</A> <B>coordinates</B></PRE>
+<DL>
+<DD>The <code>Coordinate</code> wrapped by this <code>Point</code>.
+<P>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.Polygon"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/Polygon.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.Polygon</A> extends <A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>-3494792200821764533l
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TD>
+</TR>
+</TABLE>
+
+<H3>
+shell</H3>
+<PRE>
+<A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A> <B>shell</B></PRE>
+<DL>
+<DD>The exterior boundary,
+ or <code>null</code> if this <code>Polygon</code>
+ is empty.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<H3>
+holes</H3>
+<PRE>
+<A HREF="com/vividsolutions/jts/geom/LinearRing.html" title="class in com.vividsolutions.jts.geom">LinearRing</A>[] <B>holes</B></PRE>
+<DL>
+<DD>The interior boundaries, if any.
+ This instance var is never null.
+ If there are no holes, the array is of zero length.
+<P>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.PrecisionModel"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/PrecisionModel.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.PrecisionModel</A> extends java.lang.Object implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>7777263578777803835l
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TD>
+</TR>
+</TABLE>
+
+<H3>
+modelType</H3>
+<PRE>
+PrecisionModel.Type <B>modelType</B></PRE>
+<DL>
+<DD>The type of PrecisionModel this represents.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<H3>
+scale</H3>
+<PRE>
+double <B>scale</B></PRE>
+<DL>
+<DD>The scale factor which determines the number of decimal places in fixed precision.
+<P>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.TopologyException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/TopologyException.html" title="class in com.vividsolutions.jts.geom">com.vividsolutions.jts.geom.TopologyException</A> extends java.lang.RuntimeException implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TD>
+</TR>
+</TABLE>
+
+<H3>
+pt</H3>
+<PRE>
+<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A> <B>pt</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>com.vividsolutions.jts.geom.impl</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.impl.CoordinateArraySequence"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequence.html" title="class in com.vividsolutions.jts.geom.impl">com.vividsolutions.jts.geom.impl.CoordinateArraySequence</A> extends java.lang.Object implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>-915438501601840650l
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TD>
+</TR>
+</TABLE>
+
+<H3>
+coordinates</H3>
+<PRE>
+<A HREF="com/vividsolutions/jts/geom/Coordinate.html" title="class in com.vividsolutions.jts.geom">Coordinate</A>[] <B>coordinates</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.impl.CoordinateArraySequenceFactory"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.html" title="class in com.vividsolutions.jts.geom.impl">com.vividsolutions.jts.geom.impl.CoordinateArraySequenceFactory</A> extends java.lang.Object implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID: </B>-4099577099607551657l
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<A NAME="readResolve()"><!-- --></A><H3>
+readResolve</H3>
+<PRE>
+private java.lang.Object <B>readResolve</B>()</PRE>
+<DL>
+</DL>
+
+<P>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>com.vividsolutions.jts.geom.util</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="com.vividsolutions.jts.geom.util.NoninvertibleTransformationException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.html" title="class in com.vividsolutions.jts.geom.util">com.vividsolutions.jts.geom.util.NoninvertibleTransformationException</A> extends java.lang.Exception implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>com.vividsolutions.jts.io</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="com.vividsolutions.jts.io.ParseException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/io/ParseException.html" title="class in com.vividsolutions.jts.io">com.vividsolutions.jts.io.ParseException</A> extends java.lang.Exception implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>com.vividsolutions.jts.simplify</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="com.vividsolutions.jts.simplify.TaggedLineSegment"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/simplify/TaggedLineSegment.html" title="class in com.vividsolutions.jts.simplify">com.vividsolutions.jts.simplify.TaggedLineSegment</A> extends <A HREF="com/vividsolutions/jts/geom/LineSegment.html" title="class in com.vividsolutions.jts.geom">LineSegment</A> implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TD>
+</TR>
+</TABLE>
+
+<H3>
+parent</H3>
+<PRE>
+<A HREF="com/vividsolutions/jts/geom/Geometry.html" title="class in com.vividsolutions.jts.geom">Geometry</A> <B>parent</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<H3>
+index</H3>
+<PRE>
+int <B>index</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>com.vividsolutions.jts.util</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="com.vividsolutions.jts.util.AssertionFailedException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class <A HREF="com/vividsolutions/jts/util/AssertionFailedException.html" title="class in com.vividsolutions.jts.util">com.vividsolutions.jts.util.AssertionFailedException</A> extends java.lang.RuntimeException implements Serializable</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/doc/javadoc/stylesheet.css
===================================================================
--- packages/jts/branches/upstream/current/doc/javadoc/stylesheet.css (rev 0)
+++ packages/jts/branches/upstream/current/doc/javadoc/stylesheet.css 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,29 @@
+/* Javadoc style sheet */
+
+/* Define colors, fonts and other style attributes here to override the defaults */
+
+/* Page background color */
+body { background-color: #FFFFFF }
+
+/* Headings */
+h1 { font-size: 145% }
+
+/* Table colors */
+.TableHeadingColor { background: #CCCCFF } /* Dark mauve */
+.TableSubHeadingColor { background: #EEEEFF } /* Light mauve */
+.TableRowColor { background: #FFFFFF } /* White */
+
+/* Font used in left-hand frame lists */
+.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif }
+.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif }
+.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif }
+
+/* Navigation bar fonts and colors */
+.NavBarCell1 { background-color:#EEEEFF;} /* Light mauve */
+.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */
+.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;}
+.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}
+
+.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/allclasses-frame.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/allclasses-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/allclasses-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2" target="classFrame">GMLHandler</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/gml2/GMLReader.html" title="class in com.vividsolutions.jts.io.gml2" target="classFrame">GMLReader</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2" target="classFrame">GMLWriter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/gml2/GeometryStrategies.html" title="class in com.vividsolutions.jts.io.gml2" target="classFrame">GeometryStrategies</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle" target="classFrame">OraReader</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/oracle/OraWriter.html" title="class in com.vividsolutions.jts.io.oracle" target="classFrame">OraWriter</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/allclasses-noframe.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/allclasses-noframe.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/allclasses-noframe.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2">GMLHandler</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/gml2/GMLReader.html" title="class in com.vividsolutions.jts.io.gml2">GMLReader</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2">GMLWriter</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/gml2/GeometryStrategies.html" title="class in com.vividsolutions.jts.io.gml2">GeometryStrategies</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle">OraReader</A>
+<BR>
+<A HREF="com/vividsolutions/jts/io/oracle/OraWriter.html" title="class in com.vividsolutions.jts.io.oracle">OraWriter</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GMLHandler.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GMLHandler.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GMLHandler.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,499 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+GMLHandler
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.gml2.GMLHandler class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GMLHandler";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/GeometryStrategies.html" title="class in com.vividsolutions.jts.io.gml2"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLReader.html" title="class in com.vividsolutions.jts.io.gml2"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GMLHandler.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io.gml2</FONT>
+<BR>
+Class GMLHandler</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by">org.xml.sax.helpers.DefaultHandler
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.gml2.GMLHandler</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler</DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>GMLHandler</B><DT>extends org.xml.sax.helpers.DefaultHandler</DL>
+
+<P>
+When you encounter some GML Geometry elements, you may either delegate the events to this handler.
+
+ This handler ignores both namespaces and prefixes. These mappings may be included at a later date, but for the moment are left as an exercise for the reader.
+
+ Hints:
+ If your parent handler is a DefaultHandler register the parent handler to receive the errors and locator calls.
+ Use the @see com.vividsolutions.jts.io.gml2.GeometryStrategies#findStrategy(String, String) to help check for applicability
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>David Zwiers, Vivid Solutions.</DD>
+<DT><B>See Also:</B><DD><CODE>DefaultHandler</CODE></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html#GMLHandler(GeometryFactory, org.xml.sax.ErrorHandler)">GMLHandler</A></B>(GeometryFactory gf,
+ org.xml.sax.ErrorHandler delegate)</CODE>
+
+<BR>
+ Allows the user to specify a delegate object for error / warning messages.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html#characters(char[], int, int)">characters</A></B>(char[] ch,
+ int start,
+ int length)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html#endElement(java.lang.String, java.lang.String, java.lang.String)">endElement</A></B>(java.lang.String uri,
+ java.lang.String localName,
+ java.lang.String qName)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html#error(org.xml.sax.SAXParseException)">error</A></B>(org.xml.sax.SAXParseException e)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html#fatalError(org.xml.sax.SAXParseException)">fatalError</A></B>(org.xml.sax.SAXParseException e)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected org.xml.sax.Locator</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html#getDocumentLocator()">getDocumentLocator</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> Geometry</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html#getGeometry()">getGeometry</A></B>()</CODE>
+
+<BR>
+ This method should only be called AFTER the parser has completed execution</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html#ignorableWhitespace(char[], int, int)">ignorableWhitespace</A></B>(char[] ch,
+ int start,
+ int length)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html#setDocumentLocator(org.xml.sax.Locator)">setDocumentLocator</A></B>(org.xml.sax.Locator locator)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)">startElement</A></B>(java.lang.String uri,
+ java.lang.String localName,
+ java.lang.String qName,
+ org.xml.sax.Attributes attributes)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html#warning(org.xml.sax.SAXParseException)">warning</A></B>(org.xml.sax.SAXParseException e)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_org.xml.sax.helpers.DefaultHandler"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class org.xml.sax.helpers.DefaultHandler</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>endDocument, endPrefixMapping, notationDecl, processingInstruction, resolveEntity, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl</CODE></TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GMLHandler(GeometryFactory, org.xml.sax.ErrorHandler)"><!-- --></A><H3>
+GMLHandler</H3>
+<PRE>
+public <B>GMLHandler</B>(GeometryFactory gf,
+ org.xml.sax.ErrorHandler delegate)</PRE>
+<DL>
+<DD>Allows the user to specify a delegate object for error / warning messages.
+
+ If the delegate also implements ContentHandler then the document Locator will be passed on.
+<P>
+<DT><B>Parameters:</B><DD><CODE>gf</CODE> - Geometry Factory<DD><CODE>delegate</CODE> - Nullable<DT><B>See Also:</B><DD><CODE>ErrorHandler</CODE>,
+<CODE>ContentHandler</CODE>,
+<CODE>ContentHandler.setDocumentLocator(org.xml.sax.Locator)</CODE>,
+<CODE>Locator</CODE></DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="getGeometry()"><!-- --></A><H3>
+getGeometry</H3>
+<PRE>
+public Geometry <B>getGeometry</B>()</PRE>
+<DL>
+<DD>This method should only be called AFTER the parser has completed execution
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Last Geometry Parsed, or a collection when there is morethan one geometry</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="characters(char[], int, int)"><!-- --></A><H3>
+characters</H3>
+<PRE>
+public void <B>characters</B>(char[] ch,
+ int start,
+ int length)
+ throws org.xml.sax.SAXException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>org.xml.sax.SAXException</CODE><DT><B>See Also:</B><DD><CODE>DefaultHandler.characters(char[], int, int)</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="ignorableWhitespace(char[], int, int)"><!-- --></A><H3>
+ignorableWhitespace</H3>
+<PRE>
+public void <B>ignorableWhitespace</B>(char[] ch,
+ int start,
+ int length)
+ throws org.xml.sax.SAXException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>org.xml.sax.SAXException</CODE><DT><B>See Also:</B><DD><CODE>DefaultHandler.ignorableWhitespace(char[], int, int)</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="endElement(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
+endElement</H3>
+<PRE>
+public void <B>endElement</B>(java.lang.String uri,
+ java.lang.String localName,
+ java.lang.String qName)
+ throws org.xml.sax.SAXException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>org.xml.sax.SAXException</CODE><DT><B>See Also:</B><DD><CODE>DefaultHandler.endElement(java.lang.String, java.lang.String, java.lang.String)</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)"><!-- --></A><H3>
+startElement</H3>
+<PRE>
+public void <B>startElement</B>(java.lang.String uri,
+ java.lang.String localName,
+ java.lang.String qName,
+ org.xml.sax.Attributes attributes)
+ throws org.xml.sax.SAXException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>org.xml.sax.SAXException</CODE><DT><B>See Also:</B><DD><CODE>DefaultHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDocumentLocator(org.xml.sax.Locator)"><!-- --></A><H3>
+setDocumentLocator</H3>
+<PRE>
+public void <B>setDocumentLocator</B>(org.xml.sax.Locator locator)</PRE>
+<DL>
+<DD><DL>
+<DT><B>See Also:</B><DD><CODE>DefaultHandler.setDocumentLocator(org.xml.sax.Locator)</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDocumentLocator()"><!-- --></A><H3>
+getDocumentLocator</H3>
+<PRE>
+protected org.xml.sax.Locator <B>getDocumentLocator</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="fatalError(org.xml.sax.SAXParseException)"><!-- --></A><H3>
+fatalError</H3>
+<PRE>
+public void <B>fatalError</B>(org.xml.sax.SAXParseException e)
+ throws org.xml.sax.SAXException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>org.xml.sax.SAXException</CODE><DT><B>See Also:</B><DD><CODE>DefaultHandler.fatalError(org.xml.sax.SAXParseException)</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="error(org.xml.sax.SAXParseException)"><!-- --></A><H3>
+error</H3>
+<PRE>
+public void <B>error</B>(org.xml.sax.SAXParseException e)
+ throws org.xml.sax.SAXException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>org.xml.sax.SAXException</CODE><DT><B>See Also:</B><DD><CODE>DefaultHandler.error(org.xml.sax.SAXParseException)</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="warning(org.xml.sax.SAXParseException)"><!-- --></A><H3>
+warning</H3>
+<PRE>
+public void <B>warning</B>(org.xml.sax.SAXParseException e)
+ throws org.xml.sax.SAXException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>org.xml.sax.SAXException</CODE><DT><B>See Also:</B><DD><CODE>DefaultHandler.warning(org.xml.sax.SAXParseException)</CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/GeometryStrategies.html" title="class in com.vividsolutions.jts.io.gml2"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLReader.html" title="class in com.vividsolutions.jts.io.gml2"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GMLHandler.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GMLReader.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GMLReader.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GMLReader.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,334 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+GMLReader
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.gml2.GMLReader class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GMLReader";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GMLReader.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io.gml2</FONT>
+<BR>
+Class GMLReader</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.gml2.GMLReader</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>GMLReader</B><DT>extends java.lang.Object</DL>
+
+<P>
+Reads the gml geometry(s) from the user specified xml fragment into a JTS geometry.
+
+ <code>
+ <LineString>
+ <coordinates>24824.045318333192,38536.15071012041
+ 26157.378651666528,37567.42733944659 26666.666,36000.0
+ 26157.378651666528,34432.57266055341
+ 24824.045318333192,33463.84928987959
+ 23175.954681666804,33463.84928987959
+ 21842.621348333472,34432.57266055341 21333.333,36000.0
+ 21842.621348333472,37567.42733944659
+ 23175.954681666808,38536.15071012041 </coordinates>
+ </LineString>
+ </code>
+
+ This reader ignores namespace prefixes, and disables both the validation and namespace options on the SAXParser.
+ <p>
+ For a full description of GML geometries, visit the OGC web site <a href='http://www.opengeospatial.org/'>http://www.opengeospatial.org/</a>.
+ <p>
+ In most use cases, portions of a document will be delegated to this package.
+ <p>
+ It is the caller's responsibility to ensure that the supplied <CODE>PrecisionModel</CODE>
+ matches the precision of the incoming data.
+ If a lower precision for the data is required, a subsequent
+ process must be run on the data to reduce its precision.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>David Zwiers, Vivid Solutions.</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLReader.html#GMLReader()">GMLReader</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> Geometry</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLReader.html#read(java.io.Reader, GeometryFactory)">read</A></B>(java.io.Reader reader,
+ GeometryFactory geometryFactory)</CODE>
+
+<BR>
+ Reads the Character Stream into a single JTS Geometry
+
+ Where a collection of Geometries are found, a JTS GeometryCollection is returned.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> Geometry</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLReader.html#read(java.lang.String, GeometryFactory)">read</A></B>(java.lang.String gml,
+ GeometryFactory geometryFactory)</CODE>
+
+<BR>
+ Reads the GML2 String into a single JTS Geometry
+
+ Where a collection of Geometries are found, a JTS GeometryCollection is returned.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GMLReader()"><!-- --></A><H3>
+GMLReader</H3>
+<PRE>
+public <B>GMLReader</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="read(java.lang.String, GeometryFactory)"><!-- --></A><H3>
+read</H3>
+<PRE>
+public Geometry <B>read</B>(java.lang.String gml,
+ GeometryFactory geometryFactory)
+ throws org.xml.sax.SAXException,
+ java.io.IOException,
+ javax.xml.parsers.ParserConfigurationException</PRE>
+<DL>
+<DD>Reads the GML2 String into a single JTS Geometry
+
+ Where a collection of Geometries are found, a JTS GeometryCollection is returned.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>gml</CODE> - The GML String to parse<DD><CODE>geometryFactory</CODE> - When null, a default will be used.
+<DT><B>Returns:</B><DD>Geometry The resulting JTS Geometry
+<DT><B>Throws:</B>
+<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE>
+<DD><CODE>java.io.IOException</CODE>
+<DD><CODE>org.xml.sax.SAXException</CODE>
+<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE><DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLReader.html#read(java.io.Reader, GeometryFactory)"><CODE>read(Reader, GeometryFactory)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="read(java.io.Reader, GeometryFactory)"><!-- --></A><H3>
+read</H3>
+<PRE>
+public Geometry <B>read</B>(java.io.Reader reader,
+ GeometryFactory geometryFactory)
+ throws org.xml.sax.SAXException,
+ java.io.IOException,
+ javax.xml.parsers.ParserConfigurationException</PRE>
+<DL>
+<DD>Reads the Character Stream into a single JTS Geometry
+
+ Where a collection of Geometries are found, a JTS GeometryCollection is returned.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>reader</CODE> - The input source<DD><CODE>geometryFactory</CODE> - When null, a default will be used.
+<DT><B>Returns:</B><DD>Geometry The resulting JTS Geometry
+<DT><B>Throws:</B>
+<DD><CODE>org.xml.sax.SAXException</CODE>
+<DD><CODE>java.io.IOException</CODE>
+<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE> - Note: The parser will be both namespace aware and validating.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GMLReader.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GMLWriter.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GMLWriter.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GMLWriter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,355 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+GMLWriter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.gml2.GMLWriter class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GMLWriter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLReader.html" title="class in com.vividsolutions.jts.io.gml2"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GMLWriter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io.gml2</FONT>
+<BR>
+Class GMLWriter</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.gml2.GMLWriter</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>GMLWriter</B><DT>extends java.lang.Object</DL>
+
+<P>
+Writes JTS Geometries as GML2 into the writer provided, or as a string.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>David Zwiers, Vivid Solutions.</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLWriter.html#GMLWriter()">GMLWriter</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLWriter.html#setMaxCoordinatesPerLine(int)">setMaxCoordinatesPerLine</A></B>(int arg)</CODE>
+
+<BR>
+ Sets the number of coordinates printed per line.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLWriter.html#setPrefix(java.lang.String)">setPrefix</A></B>(java.lang.String prefix)</CODE>
+
+<BR>
+ Allows the user to force a prefix for the GML namespace.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLWriter.html#setStartingIndentIndex(int)">setStartingIndentIndex</A></B>(int arg)</CODE>
+
+<BR>
+ Sets the starting index for preaty printing</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLWriter.html#write(Geometry)">write</A></B>(Geometry geom)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLWriter.html#write(Geometry, java.io.Writer)">write</A></B>(Geometry geom,
+ java.io.Writer writer)</CODE>
+
+<BR>
+ Writes the JTS Geometry provided as GML2 into the writer provided.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GMLWriter()"><!-- --></A><H3>
+GMLWriter</H3>
+<PRE>
+public <B>GMLWriter</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setPrefix(java.lang.String)"><!-- --></A><H3>
+setPrefix</H3>
+<PRE>
+public void <B>setPrefix</B>(java.lang.String prefix)</PRE>
+<DL>
+<DD>Allows the user to force a prefix for the GML namespace.
+
+ In XML blobs, the user may wish to leave the polygons un-qualified, thus setting the prefix to the empty string
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>prefix</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setStartingIndentIndex(int)"><!-- --></A><H3>
+setStartingIndentIndex</H3>
+<PRE>
+public void <B>setStartingIndentIndex</B>(int arg)</PRE>
+<DL>
+<DD>Sets the starting index for preaty printing
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>arg</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setMaxCoordinatesPerLine(int)"><!-- --></A><H3>
+setMaxCoordinatesPerLine</H3>
+<PRE>
+public void <B>setMaxCoordinatesPerLine</B>(int arg)</PRE>
+<DL>
+<DD>Sets the number of coordinates printed per line.
+
+ Use full when configuring preaty printing.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>arg</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="write(Geometry)"><!-- --></A><H3>
+write</H3>
+<PRE>
+public java.lang.String <B>write</B>(Geometry geom)
+ throws java.io.IOException</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> -
+<DT><B>Returns:</B><DD>String GML2 Encoded Geometry
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="write(Geometry, java.io.Writer)"><!-- --></A><H3>
+write</H3>
+<PRE>
+public void <B>write</B>(Geometry geom,
+ java.io.Writer writer)
+ throws java.io.IOException</PRE>
+<DL>
+<DD>Writes the JTS Geometry provided as GML2 into the writer provided.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - Geometry to encode<DD><CODE>writer</CODE> - Stream to encode to.
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLReader.html" title="class in com.vividsolutions.jts.io.gml2"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GMLWriter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GeometryStrategies.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GeometryStrategies.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/GeometryStrategies.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,261 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+GeometryStrategies
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.gml2.GeometryStrategies class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="GeometryStrategies";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryStrategies.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io.gml2</FONT>
+<BR>
+Class GeometryStrategies</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.gml2.GeometryStrategies</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>GeometryStrategies</B><DT>extends java.lang.Object</DL>
+
+<P>
+Container for GML2 Geometry parsing strategies which can be represented in JTS.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+ <DD>David Zwiers, Vivid Solutions.</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GeometryStrategies.html#GeometryStrategies()">GeometryStrategies</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static com.vividsolutions.jts.io.gml2.GeometryStrategies.ParseStrategy</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GeometryStrategies.html#findStrategy(java.lang.String, java.lang.String)">findStrategy</A></B>(java.lang.String uri,
+ java.lang.String localName)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="GeometryStrategies()"><!-- --></A><H3>
+GeometryStrategies</H3>
+<PRE>
+public <B>GeometryStrategies</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="findStrategy(java.lang.String, java.lang.String)"><!-- --></A><H3>
+findStrategy</H3>
+<PRE>
+public static com.vividsolutions.jts.io.gml2.GeometryStrategies.ParseStrategy <B>findStrategy</B>(java.lang.String uri,
+ java.lang.String localName)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>uri</CODE> - Not currently used, included for future work<DD><CODE>localName</CODE> - Used to look up an appropriate parse strategy
+<DT><B>Returns:</B><DD>The ParseStrategy which should be employed<DT><B>See Also:</B><DD><CODE>ParseStrategy</CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="GeometryStrategies.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.io.gml2
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.gml2 package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/io/gml2/package-summary.html" target="classFrame">com.vividsolutions.jts.io.gml2</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="GeometryStrategies.html" title="class in com.vividsolutions.jts.io.gml2" target="classFrame">GeometryStrategies</A>
+<BR>
+<A HREF="GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2" target="classFrame">GMLHandler</A>
+<BR>
+<A HREF="GMLReader.html" title="class in com.vividsolutions.jts.io.gml2" target="classFrame">GMLReader</A>
+<BR>
+<A HREF="GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2" target="classFrame">GMLWriter</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.io.gml2
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.gml2 package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.io.gml2";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV PACKAGE
+ <A HREF="../../../../../com/vividsolutions/jts/io/oracle/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.io.gml2
+</H2>
+Classes to read and write the GML2 geometry format.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GeometryStrategies.html" title="class in com.vividsolutions.jts.io.gml2">GeometryStrategies</A></B></TD>
+<TD>Container for GML2 Geometry parsing strategies which can be represented in JTS.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2">GMLHandler</A></B></TD>
+<TD>When you encounter some GML Geometry elements, you may either delegate the events to this handler.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLReader.html" title="class in com.vividsolutions.jts.io.gml2">GMLReader</A></B></TD>
+<TD>Reads the gml geometry(s) from the user specified xml fragment into a JTS geometry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2">GMLWriter</A></B></TD>
+<TD>Writes JTS Geometries as GML2 into the writer provided, or as a string.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.io.gml2 Description
+</H2>
+
+<P>
+Classes to read and write the GML2 geometry format.
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV PACKAGE
+ <A HREF="../../../../../com/vividsolutions/jts/io/oracle/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/gml2/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.io.gml2 Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.io.gml2 Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ <A HREF="../../../../../com/vividsolutions/jts/io/oracle/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.io.gml2
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class org.xml.sax.helpers.DefaultHandler (implements org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.io.gml2.<A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2"><B>GMLHandler</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.io.gml2.<A HREF="../../../../../com/vividsolutions/jts/io/gml2/GeometryStrategies.html" title="class in com.vividsolutions.jts.io.gml2"><B>GeometryStrategies</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.gml2.<A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLReader.html" title="class in com.vividsolutions.jts.io.gml2"><B>GMLReader</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.gml2.<A HREF="../../../../../com/vividsolutions/jts/io/gml2/GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2"><B>GMLWriter</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ <A HREF="../../../../../com/vividsolutions/jts/io/oracle/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/OraReader.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/OraReader.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/OraReader.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,369 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+OraReader
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.oracle.OraReader class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="OraReader";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraWriter.html" title="class in com.vividsolutions.jts.io.oracle"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OraReader.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io.oracle</FONT>
+<BR>
+Class OraReader</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.oracle.OraReader</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>OraReader</B><DT>extends java.lang.Object</DL>
+
+<P>
+Creates a <CODE>Geometry</CODE> from an Oracle MDSYS.GEOMETRY object.
+
+ A <CODE>GeometryFactory</CODE> may be provided, otherwise
+ a default one will be used.
+ The provided GeometryFactory will be used, with the exception of the SRID field.
+ This will be extracted from the Geometry.
+ <p>
+ If a PrecisionModel is supplied it is the callers's responsibility
+ to ensure that it matches the precision of the incoming data.
+ If a lower precision for the data is required, a subsequent
+ process must be run on the data to reduce its precision.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>9i</DD>
+<DT><B>Author:</B></DT>
+ <DD>David Zwiers, Vivid Solutions.</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraReader.html#NULL_DIMENSION">NULL_DIMENSION</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraReader.html#OraReader()">OraReader</A></B>()</CODE>
+
+<BR>
+ Creates a new reader, with a default GeometryFactory.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraReader.html#OraReader(GeometryFactory)">OraReader</A></B>(GeometryFactory gf)</CODE>
+
+<BR>
+ Creates a new reader, with the supplied <CODE>GeometryFactory</CODE>.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraReader.html#getDimension()">getDimension</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> Geometry</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraReader.html#read(STRUCT)">read</A></B>(STRUCT struct)</CODE>
+
+<BR>
+ This method will attempt to create a JTS Geometry for the MDSYS.GEOMETRY
+ provided.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraReader.html#setDimension(int)">setDimension</A></B>(int dimension)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="NULL_DIMENSION"><!-- --></A><H3>
+NULL_DIMENSION</H3>
+<PRE>
+public static final int <B>NULL_DIMENSION</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.vividsolutions.jts.io.oracle.OraReader.NULL_DIMENSION">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="OraReader()"><!-- --></A><H3>
+OraReader</H3>
+<PRE>
+public <B>OraReader</B>()</PRE>
+<DL>
+<DD>Creates a new reader, with a default GeometryFactory.
+<P>
+<DT><B>See Also:</B><DD><A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraReader.html#OraReader(GeometryFactory)"><CODE>OraReader(GeometryFactory)</CODE></A></DL>
+<HR>
+
+<A NAME="OraReader(GeometryFactory)"><!-- --></A><H3>
+OraReader</H3>
+<PRE>
+public <B>OraReader</B>(GeometryFactory gf)</PRE>
+<DL>
+<DD>Creates a new reader, with the supplied <CODE>GeometryFactory</CODE>.
+ It is assumed that the supplied <CODE>PrecisionModel</CODE>
+ matches the precision of the incoming data -
+ coordinates are <b>not</b> made precise.
+<P>
+<DT><B>Parameters:</B><DD><CODE>gf</CODE> - A non-null geometry factory for later use.</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="read(STRUCT)"><!-- --></A><H3>
+read</H3>
+<PRE>
+public Geometry <B>read</B>(STRUCT struct)
+ throws java.sql.SQLException</PRE>
+<DL>
+<DD>This method will attempt to create a JTS Geometry for the MDSYS.GEOMETRY
+ provided. The Type of gemetry returned will depend on the input datum,
+ where the Geometry type is specified within the STRUCT.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>struct</CODE> - The MDSYS.GEOMETRY Object to decode
+<DT><B>Returns:</B><DD>A JTS Geometry if one could be created, null otherwise
+<DT><B>Throws:</B>
+<DD><CODE>java.sql.SQLException</CODE> - When a read error occured within the struct</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDimension()"><!-- --></A><H3>
+getDimension</H3>
+<PRE>
+public int <B>getDimension</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDimension(int)"><!-- --></A><H3>
+setDimension</H3>
+<PRE>
+public void <B>setDimension</B>(int dimension)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraWriter.html" title="class in com.vividsolutions.jts.io.oracle"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OraReader.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/OraWriter.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/OraWriter.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/OraWriter.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,353 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+OraWriter
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.oracle.OraWriter class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="OraWriter";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OraWriter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.vividsolutions.jts.io.oracle</FONT>
+<BR>
+Class OraWriter</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>com.vividsolutions.jts.io.oracle.OraWriter</B>
+</PRE>
+<HR>
+<DL>
+<DT>public class <B>OraWriter</B><DT>extends java.lang.Object</DL>
+
+<P>
+Translates a JTS Geometry into an Oracle STRUCT representing an MDSYS.GEOMETRY object.
+
+ A connection to an oracle instance with access to the definition of the MDSYS.GEOMETRY
+ object is required by the oracle driver.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>9i</DD>
+<DT><B>Author:</B></DT>
+ <DD>David Zwiers, Vivid Solutions.</DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraWriter.html#OraWriter(OracleConnection)">OraWriter</A></B>(OracleConnection con)</CODE>
+
+<BR>
+ Initialize the Oracle MDSYS.GEOMETRY Encoder with a valid oracle connection.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraWriter.html#OraWriter(OracleConnection, int)">OraWriter</A></B>(OracleConnection con,
+ int dimension)</CODE>
+
+<BR>
+ Initialize the Oracle MDSYS.GEOMETRY Encoder with a valid oracle connection.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraWriter.html#setDimension(int)">setDimension</A></B>(int dimension)</CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraWriter.html#setSRID(int)">setSRID</A></B>(int srid)</CODE>
+
+<BR>
+ Provides the oppotunity to force all geometries written using this writter to be written using the
+ specified srid.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> STRUCT</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraWriter.html#write(Geometry)">write</A></B>(Geometry geom)</CODE>
+
+<BR>
+ This routine will translate the JTS Geometry into an Oracle MDSYS.GEOMETRY STRUCT.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.Object</B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="OraWriter(OracleConnection)"><!-- --></A><H3>
+OraWriter</H3>
+<PRE>
+public <B>OraWriter</B>(OracleConnection con)</PRE>
+<DL>
+<DD>Initialize the Oracle MDSYS.GEOMETRY Encoder with a valid oracle connection.
+
+ The connection should have sufficient priveledges to view the description of the MDSYS.GEOMETRY type.
+
+ The dimension is set to 2
+<P>
+<DT><B>Parameters:</B><DD><CODE>con</CODE> - </DL>
+<HR>
+
+<A NAME="OraWriter(OracleConnection, int)"><!-- --></A><H3>
+OraWriter</H3>
+<PRE>
+public <B>OraWriter</B>(OracleConnection con,
+ int dimension)</PRE>
+<DL>
+<DD>Initialize the Oracle MDSYS.GEOMETRY Encoder with a valid oracle connection.
+
+ The connection should have sufficient priveledges to view the description of the MDSYS.GEOMETRY type.
+<P>
+<DT><B>Parameters:</B><DD><CODE>con</CODE> - <DD><CODE>dimension</CODE> - </DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="setSRID(int)"><!-- --></A><H3>
+setSRID</H3>
+<PRE>
+public void <B>setSRID</B>(int srid)</PRE>
+<DL>
+<DD>Provides the oppotunity to force all geometries written using this writter to be written using the
+ specified srid. This is useful in two cases: 1) when you do not want the geometry's srid to be
+ over-written or 2) when you want to ensure an entire layer is always written using a constant srid.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>srid</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="write(Geometry)"><!-- --></A><H3>
+write</H3>
+<PRE>
+public STRUCT <B>write</B>(Geometry geom)
+ throws java.sql.SQLException</PRE>
+<DL>
+<DD>This routine will translate the JTS Geometry into an Oracle MDSYS.GEOMETRY STRUCT.
+
+ Although invalid geometries may be encoded, and inserted into an Oracle DB, this is
+ not recomended. It is the responsibility of the user to ensure the geometry is valid
+ prior to calling this method. The user should also ensure the the geometry's SRID
+ field contains the correct value, if an SRID is desired. An incorrect SRID value may
+ cause index exceptions during an insert or update.
+
+ When a null Geometry is passed in, a non-null, empty STRUCT is returned. Therefore,
+ inserting the the result of calling this method directly into a table will never result
+ in null insertions.
+ (March 2006)
+
+ To pass a NULL Geometry into an oracle geometry parameter using jdbc, use
+ java.sql.CallableStatement.setNull(index,java.sql.Types.STRUCT,"MDSYS.SDO_GEOMETRY")
+ (April 2006)
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>geom</CODE> - JTS Geometry to encode
+<DT><B>Returns:</B><DD>Oracle MDSYS.GEOMETRY STRUCT
+<DT><B>Throws:</B>
+<DD><CODE>java.sql.SQLException</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDimension(int)"><!-- --></A><H3>
+setDimension</H3>
+<PRE>
+public void <B>setDimension</B>(int dimension)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>dimension</CODE> - The dimension to set.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="OraWriter.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/package-frame.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/package-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/package-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.io.oracle
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.oracle package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../com/vividsolutions/jts/io/oracle/package-summary.html" target="classFrame">com.vividsolutions.jts.io.oracle</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="OraReader.html" title="class in com.vividsolutions.jts.io.oracle" target="classFrame">OraReader</A>
+<BR>
+<A HREF="OraWriter.html" title="class in com.vividsolutions.jts.io.oracle" target="classFrame">OraWriter</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/package-summary.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/package-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/package-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.io.oracle
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.vividsolutions.jts.io.oracle package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.io.oracle";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/package-summary.html"><B>PREV PACKAGE</B></A>
+ NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.vividsolutions.jts.io.oracle
+</H2>
+Classes to read and write Oracle SDO_GEOMETRY object structures.
+<P>
+<B>See:</B>
+<BR>
+ <A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle">OraReader</A></B></TD>
+<TD>Creates a <CODE>Geometry</CODE> from an Oracle MDSYS.GEOMETRY object.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraWriter.html" title="class in com.vividsolutions.jts.io.oracle">OraWriter</A></B></TD>
+<TD>Translates a JTS Geometry into an Oracle STRUCT representing an MDSYS.GEOMETRY object.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.vividsolutions.jts.io.oracle Description
+</H2>
+
+<P>
+Classes to read and write Oracle SDO_GEOMETRY object structures.
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/package-summary.html"><B>PREV PACKAGE</B></A>
+ NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/package-tree.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/package-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/com/vividsolutions/jts/io/oracle/package-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+com.vividsolutions.jts.io.oracle Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="com.vividsolutions.jts.io.oracle Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/package-tree.html"><B>PREV</B></A>
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.vividsolutions.jts.io.oracle
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.io.oracle.<A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle"><B>OraReader</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.oracle.<A HREF="../../../../../com/vividsolutions/jts/io/oracle/OraWriter.html" title="class in com.vividsolutions.jts.io.oracle"><B>OraWriter</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../com/vividsolutions/jts/io/gml2/package-tree.html"><B>PREV</B></A>
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/constant-values.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/constant-values.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/constant-values.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,164 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+Constant Field Values
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Constant Field Values";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Constant Field Values</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+<LI><A HREF="#com.vividsolutions">com.vividsolutions.*</A>
+</UL>
+
+<A NAME="com.vividsolutions"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD ALIGN="left"><FONT SIZE="+2">
+<B>com.vividsolutions.*</B></FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD COLSPAN=3><B>com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle">OraReader</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.vividsolutions.jts.io.oracle.OraReader.NULL_DIMENSION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/vividsolutions/jts/io/oracle/OraReader.html#NULL_DIMENSION">NULL_DIMENSION</A></CODE></TD>
+<TD ALIGN="right"><CODE>-1</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/deprecated-list.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/deprecated-list.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/deprecated-list.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,132 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+Deprecated List
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Deprecated List";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Deprecated API</B></H2>
+</CENTER>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/help-doc.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/help-doc.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/help-doc.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+API Help
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="API Help";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+How This API Document Is Organized</H1>
+</CENTER>
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
+Overview</H3>
+<BLOCKQUOTE>
+
+<P>
+The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.</BLOCKQUOTE>
+<H3>
+Package</H3>
+<BLOCKQUOTE>
+
+<P>
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
+<LI>Interfaces (italic)<LI>Classes<LI>Exceptions<LI>Errors</UL>
+</BLOCKQUOTE>
+<H3>
+Class/Interface</H3>
+<BLOCKQUOTE>
+
+<P>
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
+<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
+<P>
+<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
+<P>
+<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
+<H3>
+Tree (Class Hierarchy)</H3>
+<BLOCKQUOTE>
+There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
+<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
+</BLOCKQUOTE>
+<H3>
+Deprecated API</H3>
+<BLOCKQUOTE>
+The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
+<H3>
+Index</H3>
+<BLOCKQUOTE>
+The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
+<H3>
+Prev/Next</H3>
+These links take you to the next or previous class, interface, package, or related page.<H3>
+Frames/No Frames</H3>
+These links show and hide the HTML frames. All pages are available with or without frames.
+<P>
+<H3>
+Serialized Form</H3>
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+<P>
+<FONT SIZE="-1">
+<EM>
+This help file applies to API documentation generated using the standard doclet.</EM>
+</FONT>
+<BR>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/index-all.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/index-all.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/index-all.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Index";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="#_C_">C</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_I_">I</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_W_">W</A> <HR>
+<A NAME="_C_"><!-- --></A><H2>
+<B>C</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html#characters(char[], int, int)"><B>characters(char[], int, int)</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2">GMLHandler</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/package-summary.html"><B>com.vividsolutions.jts.io.gml2</B></A> - package com.vividsolutions.jts.io.gml2<DD>Classes to read and write the GML2 geometry format.<DT><A HREF="com/vividsolutions/jts/io/oracle/package-summary.html"><B>com.vividsolutions.jts.io.oracle</B></A> - package com.vividsolutions.jts.io.oracle<DD>Classes to read and write Oracle SDO_GEOMETRY object structures.</DL>
+<HR>
+<A NAME="_E_"><!-- --></A><H2>
+<B>E</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html#endElement(java.lang.String, java.lang.String, java.lang.String)"><B>endElement(String, String, String)</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2">GMLHandler</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html#error(org.xml.sax.SAXParseException)"><B>error(SAXParseException)</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2">GMLHandler</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_F_"><!-- --></A><H2>
+<B>F</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html#fatalError(org.xml.sax.SAXParseException)"><B>fatalError(SAXParseException)</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2">GMLHandler</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GeometryStrategies.html#findStrategy(java.lang.String, java.lang.String)"><B>findStrategy(String, String)</B></A> -
+Static method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GeometryStrategies.html" title="class in com.vividsolutions.jts.io.gml2">GeometryStrategies</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_G_"><!-- --></A><H2>
+<B>G</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2"><B>GMLHandler</B></A> - class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2">GMLHandler</A>.<DD>When you encounter some GML Geometry elements, you may either delegate the events to this handler.<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html#GMLHandler(GeometryFactory, org.xml.sax.ErrorHandler)"><B>GMLHandler(GeometryFactory, ErrorHandler)</B></A> -
+Constructor for class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2">GMLHandler</A>
+<DD>Allows the user to specify a delegate object for error / warning messages.
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLReader.html" title="class in com.vividsolutions.jts.io.gml2"><B>GMLReader</B></A> - class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLReader.html" title="class in com.vividsolutions.jts.io.gml2">GMLReader</A>.<DD>Reads the gml geometry(s) from the user specified xml fragment into a JTS geometry.<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLReader.html#GMLReader()"><B>GMLReader()</B></A> -
+Constructor for class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLReader.html" title="class in com.vividsolutions.jts.io.gml2">GMLReader</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2"><B>GMLWriter</B></A> - class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2">GMLWriter</A>.<DD>Writes JTS Geometries as GML2 into the writer provided, or as a string.<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html#GMLWriter()"><B>GMLWriter()</B></A> -
+Constructor for class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2">GMLWriter</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GeometryStrategies.html" title="class in com.vividsolutions.jts.io.gml2"><B>GeometryStrategies</B></A> - class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GeometryStrategies.html" title="class in com.vividsolutions.jts.io.gml2">GeometryStrategies</A>.<DD>Container for GML2 Geometry parsing strategies which can be represented in JTS.<DT><A HREF="com/vividsolutions/jts/io/gml2/GeometryStrategies.html#GeometryStrategies()"><B>GeometryStrategies()</B></A> -
+Constructor for class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GeometryStrategies.html" title="class in com.vividsolutions.jts.io.gml2">GeometryStrategies</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/oracle/OraReader.html#getDimension()"><B>getDimension()</B></A> -
+Method in class com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle">OraReader</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html#getDocumentLocator()"><B>getDocumentLocator()</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2">GMLHandler</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html#getGeometry()"><B>getGeometry()</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2">GMLHandler</A>
+<DD>This method should only be called AFTER the parser has completed execution
+</DL>
+<HR>
+<A NAME="_I_"><!-- --></A><H2>
+<B>I</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html#ignorableWhitespace(char[], int, int)"><B>ignorableWhitespace(char[], int, int)</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2">GMLHandler</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_N_"><!-- --></A><H2>
+<B>N</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/io/oracle/OraReader.html#NULL_DIMENSION"><B>NULL_DIMENSION</B></A> -
+Static variable in class com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle">OraReader</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_O_"><!-- --></A><H2>
+<B>O</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle"><B>OraReader</B></A> - class com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle">OraReader</A>.<DD>Creates a <CODE>Geometry</CODE> from an Oracle MDSYS.GEOMETRY object.<DT><A HREF="com/vividsolutions/jts/io/oracle/OraReader.html#OraReader()"><B>OraReader()</B></A> -
+Constructor for class com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle">OraReader</A>
+<DD>Creates a new reader, with a default GeometryFactory.
+<DT><A HREF="com/vividsolutions/jts/io/oracle/OraReader.html#OraReader(GeometryFactory)"><B>OraReader(GeometryFactory)</B></A> -
+Constructor for class com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle">OraReader</A>
+<DD>Creates a new reader, with the supplied <CODE>GeometryFactory</CODE>.
+<DT><A HREF="com/vividsolutions/jts/io/oracle/OraWriter.html" title="class in com.vividsolutions.jts.io.oracle"><B>OraWriter</B></A> - class com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraWriter.html" title="class in com.vividsolutions.jts.io.oracle">OraWriter</A>.<DD>Translates a JTS Geometry into an Oracle STRUCT representing an MDSYS.GEOMETRY object.<DT><A HREF="com/vividsolutions/jts/io/oracle/OraWriter.html#OraWriter(OracleConnection)"><B>OraWriter(OracleConnection)</B></A> -
+Constructor for class com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraWriter.html" title="class in com.vividsolutions.jts.io.oracle">OraWriter</A>
+<DD>Initialize the Oracle MDSYS.GEOMETRY Encoder with a valid oracle connection.
+<DT><A HREF="com/vividsolutions/jts/io/oracle/OraWriter.html#OraWriter(OracleConnection, int)"><B>OraWriter(OracleConnection, int)</B></A> -
+Constructor for class com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraWriter.html" title="class in com.vividsolutions.jts.io.oracle">OraWriter</A>
+<DD>Initialize the Oracle MDSYS.GEOMETRY Encoder with a valid oracle connection.
+</DL>
+<HR>
+<A NAME="_R_"><!-- --></A><H2>
+<B>R</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLReader.html#read(java.lang.String, GeometryFactory)"><B>read(String, GeometryFactory)</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLReader.html" title="class in com.vividsolutions.jts.io.gml2">GMLReader</A>
+<DD>Reads the GML2 String into a single JTS Geometry
+
+ Where a collection of Geometries are found, a JTS GeometryCollection is returned.
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLReader.html#read(java.io.Reader, GeometryFactory)"><B>read(Reader, GeometryFactory)</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLReader.html" title="class in com.vividsolutions.jts.io.gml2">GMLReader</A>
+<DD>Reads the Character Stream into a single JTS Geometry
+
+ Where a collection of Geometries are found, a JTS GeometryCollection is returned.
+<DT><A HREF="com/vividsolutions/jts/io/oracle/OraReader.html#read(STRUCT)"><B>read(STRUCT)</B></A> -
+Method in class com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle">OraReader</A>
+<DD>This method will attempt to create a JTS Geometry for the MDSYS.GEOMETRY
+ provided.
+</DL>
+<HR>
+<A NAME="_S_"><!-- --></A><H2>
+<B>S</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/io/oracle/OraReader.html#setDimension(int)"><B>setDimension(int)</B></A> -
+Method in class com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle">OraReader</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/oracle/OraWriter.html#setDimension(int)"><B>setDimension(int)</B></A> -
+Method in class com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraWriter.html" title="class in com.vividsolutions.jts.io.oracle">OraWriter</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html#setDocumentLocator(org.xml.sax.Locator)"><B>setDocumentLocator(Locator)</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2">GMLHandler</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html#setMaxCoordinatesPerLine(int)"><B>setMaxCoordinatesPerLine(int)</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2">GMLWriter</A>
+<DD>Sets the number of coordinates printed per line.
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html#setPrefix(java.lang.String)"><B>setPrefix(String)</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2">GMLWriter</A>
+<DD>Allows the user to force a prefix for the GML namespace.
+<DT><A HREF="com/vividsolutions/jts/io/oracle/OraWriter.html#setSRID(int)"><B>setSRID(int)</B></A> -
+Method in class com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraWriter.html" title="class in com.vividsolutions.jts.io.oracle">OraWriter</A>
+<DD>Provides the oppotunity to force all geometries written using this writter to be written using the
+ specified srid.
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html#setStartingIndentIndex(int)"><B>setStartingIndentIndex(int)</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2">GMLWriter</A>
+<DD>Sets the starting index for preaty printing
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)"><B>startElement(String, String, String, Attributes)</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2">GMLHandler</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_W_"><!-- --></A><H2>
+<B>W</B></H2>
+<DL>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html#warning(org.xml.sax.SAXParseException)"><B>warning(SAXParseException)</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2">GMLHandler</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html#write(Geometry)"><B>write(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2">GMLWriter</A>
+<DD>
+<DT><A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html#write(Geometry, java.io.Writer)"><B>write(Geometry, Writer)</B></A> -
+Method in class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2">GMLWriter</A>
+<DD>Writes the JTS Geometry provided as GML2 into the writer provided.
+<DT><A HREF="com/vividsolutions/jts/io/oracle/OraWriter.html#write(Geometry)"><B>write(Geometry)</B></A> -
+Method in class com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraWriter.html" title="class in com.vividsolutions.jts.io.oracle">OraWriter</A>
+<DD>This routine will translate the JTS Geometry into an Oracle MDSYS.GEOMETRY STRUCT.
+</DL>
+<HR>
+<A HREF="#_C_">C</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_I_">I</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_W_">W</A>
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/index.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/index.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/index.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc on Mon Dec 18 10:45:55 PST 2006-->
+<TITLE>
+Generated Documentation (Untitled)
+</TITLE>
+</HEAD>
+<FRAMESET cols="20%,80%">
+<FRAMESET rows="30%,70%">
+<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">
+<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</FRAMESET>
+<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions">
+<NOFRAMES>
+<H2>
+Frame Alert</H2>
+
+<P>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+<BR>
+Link to<A HREF="overview-summary.html">Non-frame version.</A>
+</NOFRAMES>
+</FRAMESET>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/overview-frame.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/overview-frame.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/overview-frame.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+Overview
+</TITLE>
+
+<META NAME="keywords" CONTENT="Overview">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameTitleFont">
+<B></B></FONT></TD>
+</TR>
+</TABLE>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" target="packageFrame">All Classes</A></FONT>
+<P>
+<FONT size="+1" CLASS="FrameHeadingFont">
+Packages</FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/io/gml2/package-frame.html" target="packageFrame">com.vividsolutions.jts.io.gml2</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="com/vividsolutions/jts/io/oracle/package-frame.html" target="packageFrame">com.vividsolutions.jts.io.oracle</A></FONT>
+<BR>
+</TD>
+</TR>
+</TABLE>
+
+<P>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/overview-summary.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/overview-summary.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/overview-summary.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+Overview
+</TITLE>
+
+<META NAME="keywords" CONTENT="Overview">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Overview";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Packages</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/io/gml2/package-summary.html">com.vividsolutions.jts.io.gml2</A></B></TD>
+<TD>Classes to read and write the GML2 geometry format.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="com/vividsolutions/jts/io/oracle/package-summary.html">com.vividsolutions.jts.io.oracle</A></B></TD>
+<TD>Classes to read and write Oracle SDO_GEOMETRY object structures.</TD>
+</TR>
+</TABLE>
+
+<P>
+ <HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/overview-tree.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/overview-tree.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/overview-tree.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Class Hierarchy";
+}
+</SCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For All Packages</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="com/vividsolutions/jts/io/gml2/package-tree.html">com.vividsolutions.jts.io.gml2</A>, <A HREF="com/vividsolutions/jts/io/oracle/package-tree.html">com.vividsolutions.jts.io.oracle</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">class java.lang.Object<UL>
+<LI TYPE="circle">class org.xml.sax.helpers.DefaultHandler (implements org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler)
+<UL>
+<LI TYPE="circle">class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLHandler.html" title="class in com.vividsolutions.jts.io.gml2"><B>GMLHandler</B></A></UL>
+<LI TYPE="circle">class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GeometryStrategies.html" title="class in com.vividsolutions.jts.io.gml2"><B>GeometryStrategies</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLReader.html" title="class in com.vividsolutions.jts.io.gml2"><B>GMLReader</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.gml2.<A HREF="com/vividsolutions/jts/io/gml2/GMLWriter.html" title="class in com.vividsolutions.jts.io.gml2"><B>GMLWriter</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraReader.html" title="class in com.vividsolutions.jts.io.oracle"><B>OraReader</B></A><LI TYPE="circle">class com.vividsolutions.jts.io.oracle.<A HREF="com/vividsolutions/jts/io/oracle/OraWriter.html" title="class in com.vividsolutions.jts.io.oracle"><B>OraWriter</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/package-list
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/package-list (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/package-list 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,2 @@
+com.vividsolutions.jts.io.gml2
+com.vividsolutions.jts.io.oracle
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/packages.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/packages.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/packages.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.4.2_12) on Mon Dec 18 10:45:55 PST 2006 -->
+<TITLE>
+
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+
+<BR>
+
+<BR>
+
+<BR>
+<CENTER>
+The front page has been relocated.Please see:
+<BR>
+ <A HREF="index.html">Frame version</A>
+<BR>
+ <A HREF="overview-summary.html">Non-frame version.</A></CENTER>
+
+</BODY>
+</HTML>
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/resources/inherit.gif
===================================================================
(Binary files differ)
Property changes on: packages/jts/branches/upstream/current/jtsio/doc/javadoc/resources/inherit.gif
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: packages/jts/branches/upstream/current/jtsio/doc/javadoc/stylesheet.css
===================================================================
--- packages/jts/branches/upstream/current/jtsio/doc/javadoc/stylesheet.css (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/doc/javadoc/stylesheet.css 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,29 @@
+/* Javadoc style sheet */
+
+/* Define colors, fonts and other style attributes here to override the defaults */
+
+/* Page background color */
+body { background-color: #FFFFFF }
+
+/* Headings */
+h1 { font-size: 145% }
+
+/* Table colors */
+.TableHeadingColor { background: #CCCCFF } /* Dark mauve */
+.TableSubHeadingColor { background: #EEEEFF } /* Light mauve */
+.TableRowColor { background: #FFFFFF } /* White */
+
+/* Font used in left-hand frame lists */
+.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif }
+.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif }
+.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif }
+
+/* Navigation bar fonts and colors */
+.NavBarCell1 { background-color:#EEEEFF;} /* Light mauve */
+.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */
+.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;}
+.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}
+
+.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+
Added: packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLConstants.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLConstants.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLConstants.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,76 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.gml2;
+
+/**
+ * This class encapsualtes a collection of parsable GML tag names. For the purpose
+ * of performing a Geometry Spatial Validation we'll restrict ourselves to parsing
+ * only XML/GML tags defined in the geometry.xsd schema file
+ */
+final class GMLConstants{
+
+ // Namespace constants
+ public static final String GML_NAMESPACE = "http://www.opengis.net/gml";
+ public static final String GML_PREFIX = "gml";
+
+ // Source Coordinate System
+ public static final String GML_ATTR_SRSNAME = "srsName";
+
+ // GML associative types
+ public static final String GML_GEOMETRY_MEMBER = "geometryMember";
+ public static final String GML_POINT_MEMBER = "pointMember";
+ public static final String GML_POLYGON_MEMBER = "polygonMember";
+ public static final String GML_LINESTRING_MEMBER = "lineStringMember";
+ public static final String GML_OUTER_BOUNDARY_IS = "outerBoundaryIs";
+ public static final String GML_INNER_BOUNDARY_IS = "innerBoundaryIs";
+
+ // Primitive Geometries
+ public static final String GML_POINT = "Point";
+ public static final String GML_LINESTRING = "LineString";
+ public static final String GML_LINEARRING = "LinearRing";
+ public static final String GML_POLYGON = "Polygon";
+ public static final String GML_BOX = "Box";
+
+ // Aggregate Ggeometries
+ public static final String GML_MULTI_GEOMETRY = "MultiGeometry";
+ public static final String GML_MULTI_POINT = "MultiPoint";
+ public static final String GML_MULTI_LINESTRING = "MultiLineString";
+ public static final String GML_MULTI_POLYGON = "MultiPolygon";
+
+ // Coordinates
+ public static final String GML_COORDINATES = "coordinates";
+ public static final String GML_COORD = "coord";
+ public static final String GML_COORD_X = "X";
+ public static final String GML_COORD_Y = "Y";
+ public static final String GML_COORD_Z = "Z";
+}
\ No newline at end of file
Added: packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLHandler.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLHandler.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLHandler.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,249 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.gml2;
+
+import java.util.*;
+
+import org.xml.sax.*;
+import org.xml.sax.helpers.AttributesImpl;
+import org.xml.sax.helpers.DefaultHandler;
+
+import com.vividsolutions.jts.geom.Geometry;
+import com.vividsolutions.jts.geom.GeometryFactory;
+import com.vividsolutions.jts.io.gml2.GeometryStrategies.ParseStrategy;
+
+/**
+ * When you encounter some GML Geometry elements, you may either delegate the events to this handler.
+ *
+ * This handler ignores both namespaces and prefixes. These mappings may be included at a later date, but for the moment are left as an exercise for the reader.
+ *
+ * Hints:
+ * If your parent handler is a DefaultHandler register the parent handler to receive the errors and locator calls.
+ * Use the @see com.vividsolutions.jts.io.gml2.GeometryStrategies#findStrategy(String, String) to help check for applicability
+ *
+ * @see DefaultHandler
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class GMLHandler extends DefaultHandler {
+
+ /**
+ * This class is intended to log the SAX acitivity within a given element until it's termination.
+ *
+ * At this time, a new object of value is created and passed to the parent. An object of value is typically either java.lang.* or a JTS Geometry
+ *
+ * This class is not intended for use outside this distribution, and may change in subsequent versions.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+ static class Handler{
+ protected Attributes attrs = null;
+ protected ParseStrategy strategy;
+
+ /**
+ * @param strategy
+ * @param attributes Nullable
+ */
+ public Handler(ParseStrategy strategy, Attributes attributes){
+ if(attributes!=null)
+ this.attrs = new AttributesImpl(attributes);
+ this.strategy = strategy;
+ }
+
+ protected StringBuffer text = null;
+ /**
+ * Caches text for the future
+ * @param str
+ */
+ public void addText(String str){
+ if(text == null)
+ text = new StringBuffer();
+ text.append(str);
+ }
+
+ protected List children = null;
+ /**
+ * Store param for the future
+ *
+ * @param obj
+ */
+ public void keep(Object obj){
+ if(children == null)
+ children = new LinkedList();
+ children.add(obj);
+
+ }
+
+ /**
+ * @param gf GeometryFactory
+ * @return Parsed Object
+ * @throws SAXException
+ */
+ public Object create(GeometryFactory gf) throws SAXException{
+ return strategy.parse(this,gf);
+ }
+ }
+
+ private Stack stack = new Stack();
+ private ErrorHandler delegate = null;
+ private GeometryFactory gf = null;
+
+ /**
+ * Allows the user to specify a delegate object for error / warning messages.
+ *
+ * If the delegate also implements ContentHandler then the document Locator will be passed on.
+ * @param gf Geometry Factory
+ *
+ * @see ErrorHandler
+ * @see ContentHandler
+ * @see ContentHandler#setDocumentLocator(org.xml.sax.Locator)
+ * @see org.xml.sax.Locator
+ *
+ * @param delegate Nullable
+ */
+ public GMLHandler(GeometryFactory gf, ErrorHandler delegate){
+ this.delegate = delegate;
+ this.gf = gf;
+ stack.push(new Handler(null,null));
+ }
+
+ /**
+ * This method should only be called AFTER the parser has completed execution
+ *
+ * @return Last Geometry Parsed, or a collection when there is morethan one geometry
+ */
+ public Geometry getGeometry(){
+ if(stack.size() == 1){
+ Handler h = (Handler)stack.peek();
+ if(h.children.size() == 1)
+ return (Geometry) h.children.get(0);
+ return gf.createGeometryCollection((Geometry[]) h.children.toArray(new Geometry[stack.size()]));
+ }
+ throw new IllegalStateException("Parse did not complete as expected, there are "+stack.size()+" elements on the Stack");
+ }
+
+ //////////////////////////////////////////////
+ // Parsing Methods
+
+ /**
+ * @see org.xml.sax.helpers.DefaultHandler#characters(char[], int, int)
+ */
+ public void characters(char[] ch, int start, int length) throws SAXException {
+ if(!stack.isEmpty())
+ ((Handler)stack.peek()).addText(new String(ch,start,length));
+ }
+
+ /**
+ * @see org.xml.sax.helpers.DefaultHandler#ignorableWhitespace(char[], int, int)
+ */
+ public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException {
+ if(!stack.isEmpty())
+ ((Handler)stack.peek()).addText(" ");
+ }
+
+ /**
+ * @see org.xml.sax.helpers.DefaultHandler#endElement(java.lang.String, java.lang.String, java.lang.String)
+ */
+ public void endElement(String uri, String localName, String qName) throws SAXException {
+ Handler thisAction = (Handler) stack.pop();
+ ((Handler) stack.peek()).keep(thisAction.create(gf));
+ }
+
+ /**
+ * @see org.xml.sax.helpers.DefaultHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
+ */
+ public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
+ // create a handler
+ ParseStrategy ps = GeometryStrategies.findStrategy(uri,localName);
+ if(ps == null){
+ String qn = qName.substring(qName.indexOf(':')+1,qName.length());
+ ps = GeometryStrategies.findStrategy(null,qn);
+ }
+ Handler h = new Handler(ps,attributes);
+ // and add it to the stack
+ stack.push(h);
+ }
+
+ //////////////////////////////////////////////
+ // Logging Methods
+
+ /**
+ * @see org.xml.sax.helpers.DefaultHandler#setDocumentLocator(org.xml.sax.Locator)
+ */
+ public void setDocumentLocator(Locator locator) {
+ this.locator = locator;
+ if(delegate!=null && delegate instanceof ContentHandler)
+ ((ContentHandler) delegate).setDocumentLocator(locator);
+
+ }
+
+ private Locator locator = null;
+
+ protected Locator getDocumentLocator(){
+ return locator;
+ }
+
+ //////////////////////////////////////////////
+ // ERROR Methods
+
+ /**
+ * @see org.xml.sax.helpers.DefaultHandler#fatalError(org.xml.sax.SAXParseException)
+ */
+ public void fatalError(SAXParseException e) throws SAXException {
+ if(delegate!=null)
+ delegate.fatalError(e);
+ else
+ super.fatalError(e);
+ }
+
+ /**
+ * @see org.xml.sax.helpers.DefaultHandler#error(org.xml.sax.SAXParseException)
+ */
+ public void error(SAXParseException e) throws SAXException {
+ if(delegate!=null)
+ delegate.error(e);
+ else
+ super.error(e);
+ }
+
+ /**
+ * @see org.xml.sax.helpers.DefaultHandler#warning(org.xml.sax.SAXParseException)
+ */
+ public void warning(SAXParseException e) throws SAXException {
+ if(delegate!=null)
+ delegate.warning(e);
+ else
+ super.warning(e);
+ }
+
+}
Added: packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLReader.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLReader.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLReader.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,126 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.gml2;
+
+import java.io.*;
+
+import javax.xml.parsers.*;
+
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+import com.vividsolutions.jts.geom.Geometry;
+import com.vividsolutions.jts.geom.GeometryFactory;
+
+/**
+ * Reads the gml geometry(s) from the user specified xml fragment into a JTS geometry.
+ *
+ * <code>
+ * <LineString>
+ * <coordinates>24824.045318333192,38536.15071012041
+ * 26157.378651666528,37567.42733944659 26666.666,36000.0
+ * 26157.378651666528,34432.57266055341
+ * 24824.045318333192,33463.84928987959
+ * 23175.954681666804,33463.84928987959
+ * 21842.621348333472,34432.57266055341 21333.333,36000.0
+ * 21842.621348333472,37567.42733944659
+ * 23175.954681666808,38536.15071012041 </coordinates>
+ * </LineString>
+ * </code>
+ *
+ * This reader ignores namespace prefixes, and disables both the validation and namespace options on the SAXParser.
+ * <p>
+ * For a full description of GML geometries, visit the OGC web site <a href='http://www.opengeospatial.org/'>http://www.opengeospatial.org/</a>.
+ * <p>
+ * In most use cases, portions of a document will be delegated to this package.
+ * <p>
+ * It is the caller's responsibility to ensure that the supplied {@link PrecisionModel}
+ * matches the precision of the incoming data.
+ * If a lower precision for the data is required, a subsequent
+ * process must be run on the data to reduce its precision.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class GMLReader {
+
+ /**
+ * Reads the GML2 String into a single JTS Geometry
+ *
+ * Where a collection of Geometries are found, a JTS GeometryCollection is returned.
+ *
+ * @param gml The GML String to parse
+ * @param geometryFactory When null, a default will be used.
+ * @return Geometry The resulting JTS Geometry
+ * @throws ParserConfigurationException
+ * @throws IOException
+ * @throws SAXException
+ * @throws ParserConfigurationException
+ *
+ * @see #read(Reader, GeometryFactory)
+ */
+ public Geometry read(String gml, GeometryFactory geometryFactory) throws SAXException, IOException, ParserConfigurationException{
+ return read(new StringReader(gml),geometryFactory);
+ }
+
+ /**
+ * Reads the Character Stream into a single JTS Geometry
+ *
+ * Where a collection of Geometries are found, a JTS GeometryCollection is returned.
+ *
+ * @param reader The input source
+ * @param geometryFactory When null, a default will be used.
+ * @return Geometry The resulting JTS Geometry
+ * @throws SAXException
+ * @throws IOException
+ * @throws ParserConfigurationException
+ *
+ * Note: The parser will be both namespace aware and validating.
+ */
+ public Geometry read(Reader reader, GeometryFactory geometryFactory) throws SAXException, IOException, ParserConfigurationException{
+ SAXParserFactory fact = SAXParserFactory.newInstance();
+
+ fact.setNamespaceAware(false);
+ fact.setValidating(false);
+
+ SAXParser parser = fact.newSAXParser();
+
+ if(geometryFactory == null)
+ geometryFactory = new GeometryFactory();
+
+ GMLHandler gh = new GMLHandler(geometryFactory,null);
+ parser.parse(new InputSource(reader),gh);
+
+ return gh.getGeometry();
+ }
+
+}
Added: packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLWriter.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLWriter.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GMLWriter.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,350 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.gml2;
+
+import java.io.*;
+
+import com.vividsolutions.jts.geom.*;
+
+/**
+ * Writes JTS Geometries as GML2 into the writer provided, or as a string.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class GMLWriter {
+ private final String INDENT = " ";
+
+ private int startingIndentIndex = 0;
+ private int maxCoordinatesPerLine = 2;
+
+ private String prefix = GMLConstants.GML_PREFIX;
+
+ /**
+ * Allows the user to force a prefix for the GML namespace.
+ *
+ * In XML blobs, the user may wish to leave the polygons un-qualified, thus setting the prefix to the empty string
+ *
+ * @param prefix
+ */
+ public void setPrefix(String prefix){
+ this.prefix =prefix;
+ }
+
+ /**
+ * Sets the starting index for preaty printing
+ *
+ * @param arg
+ */
+ public void setStartingIndentIndex(int arg){
+ if(arg<0)
+ throw new IndexOutOfBoundsException("In-valid index, must be > or = 0");
+ startingIndentIndex = arg;
+ }
+
+ /**
+ * Sets the number of coordinates printed per line.
+ *
+ * Use full when configuring preaty printing.
+ *
+ * @param arg
+ */
+ public void setMaxCoordinatesPerLine(int arg){
+ if(arg<1)
+ throw new IndexOutOfBoundsException("In-valid coordinate count per line, must be > 0");
+ maxCoordinatesPerLine = arg;
+ }
+
+ /**
+ * @param geom
+ * @return String GML2 Encoded Geometry
+ * @throws IOException
+ */
+ public String write(Geometry geom) throws IOException{
+ StringWriter writer = new StringWriter();
+ write(geom,writer);
+ return writer.getBuffer().toString();
+ }
+
+ /**
+ * Writes the JTS Geometry provided as GML2 into the writer provided.
+ *
+ * @param geom Geometry to encode
+ * @param writer Stream to encode to.
+ * @throws IOException
+ */
+ public void write(Geometry geom, Writer writer) throws IOException{
+ write(geom,writer,startingIndentIndex);
+ }
+
+ private void write(Geometry geom, Writer writer, int level) throws IOException{
+ if(writer == null)
+ throw new NullPointerException("Writer is null");
+ if (geom == null) {
+ throw new NullPointerException("Geometry is null");
+ } else if (geom instanceof Point) {
+ writePoint((Point)geom,writer,level);
+ } else if (geom instanceof LineString) {
+ writeLineString((LineString)geom,writer,level);
+ } else if (geom instanceof Polygon) {
+ writePolygon((Polygon)geom,writer,level);
+ } else if (geom instanceof MultiPoint) {
+ writeMultiPoint((MultiPoint)geom,writer,level);
+ } else if (geom instanceof MultiLineString) {
+ writeMultiLineString((MultiLineString)geom,writer,level);
+ } else if (geom instanceof MultiPolygon) {
+ writeMultiPolygon((MultiPolygon)geom,writer,level);
+ } else if (geom instanceof GeometryCollection) {
+ writeGeometryCollection((GeometryCollection)geom,writer,startingIndentIndex);
+ }else{
+ throw new IllegalArgumentException("Cannot encode JTS "
+ + geom.getGeometryType() + " as SDO_GTEMPLATE "
+ + "(Limitied to Point, Line, Polygon, GeometryCollection, MultiPoint,"
+ + " MultiLineString and MultiPolygon)");
+ }
+ writer.flush();
+ }
+
+ //<gml:Point><gml:coordinates>1195156.78946687,382069.533723461</gml:coordinates></gml:Point>
+ private void writePoint(Point p, Writer writer, int level) throws IOException {
+ startLine(level,writer);
+ startGeomTag(GMLConstants.GML_POINT,p,writer);
+
+ write(new Coordinate[] { p.getCoordinate() },writer, level + 1);
+
+ startLine(level,writer);
+ endGeomTag(GMLConstants.GML_POINT,writer);
+ }
+
+ //<gml:LineString><gml:coordinates>1195123.37289257,381985.763974674 1195120.22369473,381964.660533343 1195118.14929823,381942.597718511</gml:coordinates></gml:LineString>
+ private void writeLineString(LineString ls, Writer writer, int level) throws IOException {
+ startLine(level,writer);
+ startGeomTag(GMLConstants.GML_LINESTRING,ls,writer);
+
+ write(ls.getCoordinates(),writer, level + 1);
+
+ startLine(level,writer);
+ endGeomTag(GMLConstants.GML_LINESTRING,writer);
+ }
+
+ //<gml:LinearRing><gml:coordinates>1226890.26761027,1466433.47430292 1226880.59239079,1466427.03208053...></coordinates></gml:LinearRing>
+ private void writeLinearRing(LinearRing lr, Writer writer, int level) throws IOException {
+ startLine(level,writer);
+ startGeomTag(GMLConstants.GML_LINEARRING,lr,writer);
+
+ write(lr.getCoordinates(),writer, level + 1);
+
+ startLine(level,writer);
+ endGeomTag(GMLConstants.GML_LINEARRING,writer);
+ }
+
+ private void writePolygon(Polygon p, Writer writer, int level) throws IOException {
+ startLine(level,writer);
+ startGeomTag(GMLConstants.GML_POLYGON,p,writer);
+
+
+ startLine(level+1,writer);
+ startGeomTag(GMLConstants.GML_OUTER_BOUNDARY_IS,null,writer);
+
+ writeLinearRing((LinearRing) p.getExteriorRing(), writer, level + 2);
+
+ startLine(level+1,writer);
+ endGeomTag(GMLConstants.GML_OUTER_BOUNDARY_IS,writer);
+
+
+ for (int t = 0; t < p.getNumInteriorRing(); t++) {
+ startLine(level+1,writer);
+ startGeomTag(GMLConstants.GML_INNER_BOUNDARY_IS,null,writer);
+
+ writeLinearRing((LinearRing) p.getInteriorRingN(t), writer, level + 2);
+
+ startLine(level+1,writer);
+ endGeomTag(GMLConstants.GML_INNER_BOUNDARY_IS,writer);
+ }
+
+
+ startLine(level,writer);
+ endGeomTag(GMLConstants.GML_POLYGON,writer);
+ }
+
+ private void writeMultiPoint(MultiPoint mp, Writer writer, int level) throws IOException {
+ startLine(level,writer);
+ startGeomTag(GMLConstants.GML_MULTI_POINT,mp,writer);
+
+ for (int t = 0; t < mp.getNumGeometries(); t++) {
+ startLine(level+1,writer);
+ startGeomTag(GMLConstants.GML_POINT_MEMBER,null,writer);
+
+ writePoint((Point) mp.getGeometryN(t), writer, level + 2);
+
+ startLine(level+1,writer);
+ endGeomTag(GMLConstants.GML_POINT_MEMBER,writer);
+ }
+ startLine(level,writer);
+ endGeomTag(GMLConstants.GML_MULTI_POINT,writer);
+ }
+
+ private void writeMultiLineString(MultiLineString mls, Writer writer, int level) throws IOException {
+ startLine(level,writer);
+ startGeomTag(GMLConstants.GML_MULTI_LINESTRING,mls,writer);
+
+ for (int t = 0; t < mls.getNumGeometries(); t++) {
+ startLine(level+1,writer);
+ startGeomTag(GMLConstants.GML_LINESTRING_MEMBER,null,writer);
+
+ writeLineString((LineString) mls.getGeometryN(t), writer, level + 2);
+
+ startLine(level+1,writer);
+ endGeomTag(GMLConstants.GML_LINESTRING_MEMBER,writer);
+ }
+ startLine(level,writer);
+ endGeomTag(GMLConstants.GML_MULTI_LINESTRING,writer);
+ }
+
+ private void writeMultiPolygon(MultiPolygon mp, Writer writer, int level) throws IOException {
+ startLine(level,writer);
+ startGeomTag(GMLConstants.GML_MULTI_POLYGON,mp,writer);
+
+ for (int t = 0; t < mp.getNumGeometries(); t++) {
+ startLine(level+1,writer);
+ startGeomTag(GMLConstants.GML_POLYGON_MEMBER,null,writer);
+
+ writePolygon((Polygon) mp.getGeometryN(t), writer, level + 2);
+
+ startLine(level+1,writer);
+ endGeomTag(GMLConstants.GML_POLYGON_MEMBER,writer);
+ }
+ startLine(level,writer);
+ endGeomTag(GMLConstants.GML_MULTI_POLYGON,writer);
+ }
+
+ private void writeGeometryCollection(GeometryCollection gc, Writer writer, int level) throws IOException {
+ startLine(level,writer);
+ startGeomTag(GMLConstants.GML_MULTI_GEOMETRY,gc,writer);
+
+ for (int t = 0; t < gc.getNumGeometries(); t++) {
+ startLine(level+1,writer);
+ startGeomTag(GMLConstants.GML_GEOMETRY_MEMBER,null,writer);
+
+ write(gc.getGeometryN(t), writer, level + 2);
+
+ startLine(level+1,writer);
+ endGeomTag(GMLConstants.GML_GEOMETRY_MEMBER,writer);
+ }
+ startLine(level,writer);
+ endGeomTag(GMLConstants.GML_MULTI_GEOMETRY,writer);
+ }
+
+ private static final String coordinateSeparator = ",";
+ private static final String tupleSeparator = " ";
+
+ /**
+ * Takes a list of coordinates and converts it to GML.<br>
+ * 2d and 3d aware.
+ *
+ * @param coords array of coordinates
+ * @throws IOException
+ */
+ private void write(Coordinate[] coords,Writer writer, int level) throws IOException {
+ startLine(level,writer);
+ startGeomTag(GMLConstants.GML_COORDINATES,null,writer);
+
+ int dim = 2;
+
+ if (coords.length > 0) {
+ if (!(Double.isNaN(coords[0].z)))
+ dim = 3;
+ }
+
+ boolean isNewLine = false;
+ for (int i = 0; i < coords.length; i++) {
+ if (isNewLine) {
+ startLine(level+1,writer);
+ isNewLine = false;
+ }
+ if (dim == 2) {
+ writer.write(""+coords[i].x);
+ writer.write(coordinateSeparator);
+ writer.write(""+coords[i].y);
+ } else if (dim == 3) {
+ writer.write(""+coords[i].x);
+ writer.write(coordinateSeparator);
+ writer.write(""+coords[i].y);
+ writer.write(coordinateSeparator);
+ writer.write(""+coords[i].z);
+ }
+ writer.write(tupleSeparator);
+
+ // break output lines to prevent them from getting too long
+ if ((i + 1) % maxCoordinatesPerLine == 0 && i < coords.length - 1) {
+ writer.write("\n");
+ isNewLine = true;
+ }
+ }
+ if(!isNewLine)
+ writer.write("\n");
+
+ startLine(level,writer);
+ endGeomTag(GMLConstants.GML_COORDINATES,writer);
+ }
+
+
+ private void startLine(int level, Writer writer) throws IOException
+ {
+ for(int i=0;i<level;i++)
+ writer.write(INDENT);
+ }
+
+ private void startGeomTag(String geometryName, Geometry g, Writer writer) throws IOException
+ {
+ writer.write("<"+((prefix == null || "".equals(prefix))?"":prefix+":"));
+ writer.write(geometryName);
+ printAttr(g,writer);
+ writer.write(">\n");
+ }
+
+ private void printAttr(Geometry geom, Writer writer) throws IOException
+ {
+ if(geom == null)
+ return;
+ writer.write(" "+GMLConstants.GML_ATTR_SRSNAME+"='");
+ writer.write(geom.getSRID()+"");
+ writer.write("'");
+ }
+
+ private void endGeomTag(String geometryName, Writer writer) throws IOException
+ {
+ writer.write("</"+((prefix == null || "".equals(prefix))?"":prefix+":"));
+ writer.write(geometryName);
+ writer.write(">\n");
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GeometryStrategies.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GeometryStrategies.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/GeometryStrategies.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,533 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.gml2;
+
+import java.util.*;
+import java.util.regex.Pattern;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+
+import com.vividsolutions.jts.geom.*;
+import com.vividsolutions.jts.io.gml2.GMLHandler.Handler;
+
+/**
+ * Container for GML2 Geometry parsing strategies which can be represented in JTS.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class GeometryStrategies{
+
+ /**
+ * This set of strategies is not expected to be used directly outside of this distribution.
+ *
+ * The implementation of this class are intended to be used as static function points in C. These strategies should be associated with an element when the element begins. The strategy is utilized at the end of the element to create an object of value to the user.
+ *
+ * In this case all the objects are either java.lang.* or JTS Geometry objects
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+ static interface ParseStrategy{
+ /**
+ * @param arg Value to interpret
+ * @param gf GeometryFactory
+ * @return The interpreted value
+ * @throws SAXException
+ */
+ Object parse(Handler arg, GeometryFactory gf) throws SAXException;
+ }
+
+ private static HashMap strategies = loadStrategies();
+ private static HashMap loadStrategies(){
+ HashMap strats = new HashMap();
+
+ // point
+ strats.put(GMLConstants.GML_POINT.toLowerCase(),new ParseStrategy(){
+
+ public Object parse(Handler arg, GeometryFactory gf) throws SAXException {
+ // one child, either a coord
+ // or a coordinate sequence
+
+ if(arg.children.size()!=1)
+ throw new SAXException("Cannot create a point without exactly one coordinate");
+
+ int srid = getSrid(arg.attrs,gf.getSRID());
+
+ Object c = arg.children.get(0);
+ Point p = null;
+ if(c instanceof Coordinate){
+ p = gf.createPoint((Coordinate)c);
+ }else{
+ p = gf.createPoint((CoordinateSequence)c);
+ }
+ if(p.getSRID()!=srid)
+ p.setSRID(srid);
+
+ return p;
+ }
+ });
+
+ // linestring
+ strats.put(GMLConstants.GML_LINESTRING.toLowerCase(),new ParseStrategy(){
+
+ public Object parse(Handler arg, GeometryFactory gf) throws SAXException {
+ // one child, either a coord
+ // or a coordinate sequence
+
+ if(arg.children.size()<1)
+ throw new SAXException("Cannot create a linestring without atleast two coordinates or one coordinate sequence");
+
+ int srid = getSrid(arg.attrs,gf.getSRID());
+
+ LineString ls = null;
+ if(arg.children.size() == 1){
+ // coord set
+ try{
+ CoordinateSequence cs = (CoordinateSequence) arg.children.get(0);
+ ls = gf.createLineString(cs);
+ }catch(ClassCastException e){
+ throw new SAXException("Cannot create a linestring without atleast two coordinates or one coordinate sequence",e);
+ }
+ }else{
+ try{
+ Coordinate[] coords = (Coordinate[]) arg.children.toArray(new Coordinate[arg.children.size()]);
+ ls = gf.createLineString(coords);
+ }catch(ClassCastException e){
+ throw new SAXException("Cannot create a linestring without atleast two coordinates or one coordinate sequence",e);
+ }
+ }
+
+ if(ls.getSRID()!=srid)
+ ls.setSRID(srid);
+
+ return ls;
+ }
+ });
+
+ // linearring
+ strats.put(GMLConstants.GML_LINEARRING.toLowerCase(),new ParseStrategy(){
+
+ public Object parse(Handler arg, GeometryFactory gf) throws SAXException {
+ // one child, either a coord
+ // or a coordinate sequence
+
+ if(arg.children.size()!=1 && arg.children.size()<4)
+ throw new SAXException("Cannot create a linear ring without atleast four coordinates or one coordinate sequence");
+
+ int srid = getSrid(arg.attrs,gf.getSRID());
+
+ LinearRing ls = null;
+ if(arg.children.size() == 1){
+ // coord set
+ try{
+ CoordinateSequence cs = (CoordinateSequence) arg.children.get(0);
+ ls = gf.createLinearRing(cs);
+ }catch(ClassCastException e){
+ throw new SAXException("Cannot create a linear ring without atleast four coordinates or one coordinate sequence",e);
+ }
+ }else{
+ try{
+ Coordinate[] coords = (Coordinate[]) arg.children.toArray(new Coordinate[arg.children.size()]);
+ ls = gf.createLinearRing(coords);
+ }catch(ClassCastException e){
+ throw new SAXException("Cannot create a linear ring without atleast four coordinates or one coordinate sequence",e);
+ }
+ }
+
+ if(ls.getSRID()!=srid)
+ ls.setSRID(srid);
+
+ return ls;
+ }
+ });
+
+ // polygon
+ strats.put(GMLConstants.GML_POLYGON.toLowerCase(),new ParseStrategy(){
+
+ public Object parse(Handler arg, GeometryFactory gf) throws SAXException {
+ // one child, either a coord
+ // or a coordinate sequence
+
+ if(arg.children.size()<1)
+ throw new SAXException("Cannot create a polygon without atleast one linear ring");
+
+ int srid = getSrid(arg.attrs,gf.getSRID());
+
+ LinearRing outer = (LinearRing) arg.children.get(0); // will be the first
+ List t = arg.children.size()>1?arg.children.subList(1,arg.children.size()):null;
+ LinearRing[] inner = t==null?null:(LinearRing[]) t.toArray(new LinearRing[t.size()]);
+
+ Polygon p = gf.createPolygon(outer,inner);
+
+ if(p.getSRID()!=srid)
+ p.setSRID(srid);
+
+ return p;
+ }
+ });
+
+ // box
+ strats.put(GMLConstants.GML_BOX.toLowerCase(),new ParseStrategy(){
+
+ public Object parse(Handler arg, GeometryFactory gf) throws SAXException {
+ // one child, either a coord
+ // or a coordinate sequence
+
+ if(arg.children.size()<1 || arg.children.size()>2)
+ throw new SAXException("Cannot create a box without either two coords or one coordinate sequence");
+
+// int srid = getSrid(arg.attrs,gf.getSRID());
+
+ Envelope box = null;
+ if(arg.children.size() == 1){
+ CoordinateSequence cs = (CoordinateSequence) arg.children.get(0);
+ box = cs.expandEnvelope(new Envelope());
+ }else{
+ box = new Envelope((Coordinate)arg.children.get(0),(Coordinate)arg.children.get(1));
+ }
+
+ return box;
+ }
+ });
+
+ // multi-point
+ strats.put(GMLConstants.GML_MULTI_POINT.toLowerCase(),new ParseStrategy(){
+
+ public Object parse(Handler arg, GeometryFactory gf) throws SAXException {
+ // one child, either a coord
+ // or a coordinate sequence
+
+ if(arg.children.size()<1)
+ throw new SAXException("Cannot create a multi-point without atleast one point");
+
+ int srid = getSrid(arg.attrs,gf.getSRID());
+
+ Point[] pts = (Point[]) arg.children.toArray(new Point[arg.children.size()]);
+
+ MultiPoint mp = gf.createMultiPoint(pts);
+
+ if(mp.getSRID()!=srid)
+ mp.setSRID(srid);
+
+ return mp;
+ }
+ });
+
+ // multi-linestring
+ strats.put(GMLConstants.GML_MULTI_LINESTRING.toLowerCase(),new ParseStrategy(){
+
+ public Object parse(Handler arg, GeometryFactory gf) throws SAXException {
+ // one child, either a coord
+ // or a coordinate sequence
+
+ if(arg.children.size()<1)
+ throw new SAXException("Cannot create a multi-linestring without atleast one linestring");
+
+ int srid = getSrid(arg.attrs,gf.getSRID());
+
+ LineString[] lns = (LineString[]) arg.children.toArray(new LineString[arg.children.size()]);
+
+ MultiLineString mp = gf.createMultiLineString(lns);
+
+ if(mp.getSRID()!=srid)
+ mp.setSRID(srid);
+
+ return mp;
+ }
+ });
+
+ // multi-poly
+ strats.put(GMLConstants.GML_MULTI_POLYGON.toLowerCase(),new ParseStrategy(){
+
+ public Object parse(Handler arg, GeometryFactory gf) throws SAXException {
+ // one child, either a coord
+ // or a coordinate sequence
+
+ if(arg.children.size()<1)
+ throw new SAXException("Cannot create a multi-polygon without atleast one polygon");
+
+ int srid = getSrid(arg.attrs,gf.getSRID());
+
+ Polygon[] plys = (Polygon[]) arg.children.toArray(new Polygon[arg.children.size()]);
+
+ MultiPolygon mp = gf.createMultiPolygon(plys);
+
+ if(mp.getSRID()!=srid)
+ mp.setSRID(srid);
+
+ return mp;
+ }
+ });
+
+ // multi-geom
+ strats.put(GMLConstants.GML_MULTI_GEOMETRY.toLowerCase(),new ParseStrategy(){
+
+ public Object parse(Handler arg, GeometryFactory gf) throws SAXException {
+ // one child, either a coord
+ // or a coordinate sequence
+
+ if(arg.children.size()<1)
+ throw new SAXException("Cannot create a multi-polygon without atleast one geometry");
+
+ Geometry[] geoms = (Geometry[]) arg.children.toArray(new Geometry[arg.children.size()]);
+
+ GeometryCollection gc = gf.createGeometryCollection(geoms);
+
+ return gc;
+ }
+ });
+
+ // coordinates
+ strats.put(GMLConstants.GML_COORDINATES.toLowerCase(),new ParseStrategy(){
+
+ private WeakHashMap patterns = new WeakHashMap();
+
+ public Object parse(Handler arg, GeometryFactory gf) throws SAXException {
+ // one child, either a coord
+ // or a coordinate sequence
+
+ if(arg.text == null || "".equals(arg.text))
+ throw new SAXException("Cannot create a coordinate sequence without text to parse");
+
+ String decimal = ".";
+ String coordSeperator = ",";
+ String toupleSeperator = " ";
+
+ // get overides from coordinates
+ if(arg.attrs.getIndex("decimal")>=0)
+ decimal = arg.attrs.getValue("decimal");
+ else if(arg.attrs.getIndex(GMLConstants.GML_NAMESPACE,"decimal")>=0)
+ decimal = arg.attrs.getValue(GMLConstants.GML_NAMESPACE,"decimal");
+
+ if(arg.attrs.getIndex("cs")>=0)
+ coordSeperator = arg.attrs.getValue("cs");
+ else if(arg.attrs.getIndex(GMLConstants.GML_NAMESPACE,"cs")>=0)
+ coordSeperator = arg.attrs.getValue(GMLConstants.GML_NAMESPACE,"cs");
+
+ if(arg.attrs.getIndex("ts")>=0)
+ toupleSeperator = arg.attrs.getValue("ts");
+ else if(arg.attrs.getIndex(GMLConstants.GML_NAMESPACE,"ts")>=0)
+ toupleSeperator = arg.attrs.getValue(GMLConstants.GML_NAMESPACE,"ts");
+
+ // now to start parse
+ String t = arg.text.toString();
+ t = t.replaceAll("\\s"," ");
+
+ Pattern ptn = (Pattern) patterns.get(toupleSeperator);
+ if(ptn == null){
+ String ts = new String(toupleSeperator);
+ if(ts.indexOf('\\')>-1){
+ // need to escape it
+ ts = ts.replaceAll("\\","\\\\");
+ }
+ if(ts.indexOf('.')>-1){
+ // need to escape it
+ ts = ts.replaceAll("\\.","\\\\.");
+ }
+ ptn = Pattern.compile(ts);
+ patterns.put(toupleSeperator,ptn);
+ }
+ String[] touples = ptn.split(t.trim());// t.trim().split(toupleSeperator);
+
+ if(touples.length == 0)
+ throw new SAXException("Cannot create a coordinate sequence without a touple to parse");
+
+ // we may have null touples, so calculate the num first
+ int numNonNullTouples = 0;
+ for(int i=0;i<touples.length;i++){
+ if(touples[i] !=null && !"".equals(touples[i].trim())){
+ if(i!=numNonNullTouples){
+ touples[numNonNullTouples] = touples[i]; // always shift left
+ }
+ numNonNullTouples++;
+ }
+ }
+ for(int i=numNonNullTouples;i<touples.length;i++)
+ touples[i] = null;
+
+ // null touples now at end of array
+ if(numNonNullTouples == 0)
+ throw new SAXException("Cannot create a coordinate sequence without a non-null touple to parse");
+
+ int dim = touples[0].split(coordSeperator).length;
+ CoordinateSequence cs = gf.getCoordinateSequenceFactory().create(numNonNullTouples,dim);
+ dim = cs.getDimension(); // max dim
+
+ boolean replaceDec = !".".equals(decimal);
+
+ for(int i=0;i<numNonNullTouples;i++){
+ // for each touple, split, parse, add
+
+ ptn = (Pattern) patterns.get(coordSeperator);
+ if(ptn == null){
+ String ts = new String(coordSeperator);
+ if(ts.indexOf('\\')>-1){
+ // need to escape it
+ ts = ts.replaceAll("\\","\\\\");
+ }
+ if(ts.indexOf('.')>-1){
+ // need to escape it
+ ts = ts.replaceAll("\\.","\\\\.");
+ }
+ ptn = Pattern.compile(ts);
+ patterns.put(coordSeperator,ptn);
+ }
+ String[] coords = ptn.split(touples[i]);// touples[i].split(coordSeperator);
+
+ int dimIndex = 0;
+ for(int j=0;j<coords.length && j<dim;j++){
+ if(coords[j] != null && !"".equals(coords[j].trim())){
+ double ordinate = Double.parseDouble(replaceDec?coords[j].replaceAll(decimal,"."):coords[j]);
+ cs.setOrdinate(i,dimIndex++,ordinate);
+ }
+ }
+ // fill remaining dim
+ for(;dimIndex<dim;)cs.setOrdinate(i,dimIndex++,Double.NaN);
+ }
+
+ return cs;
+ }
+ });
+
+ // coord
+ strats.put(GMLConstants.GML_COORD.toLowerCase(),new ParseStrategy(){
+
+ public Object parse(Handler arg, GeometryFactory gf) throws SAXException {
+ // one child, either a coord
+ // or a coordinate sequence
+
+ if(arg.children.size()<1)
+ throw new SAXException("Cannot create a coordinate without atleast one axis");
+ if(arg.children.size()>3)
+ throw new SAXException("Cannot create a coordinate with more than 3 axis");
+
+ Double[] axis = (Double[]) arg.children.toArray(new Double[arg.children.size()]);
+ Coordinate c = new Coordinate();
+ c.x = axis[0].doubleValue();
+ if(axis.length>1)
+ c.y = axis[1].doubleValue();
+ if(axis.length>2)
+ c.z = axis[2].doubleValue();
+
+ return c;
+ }
+ });
+
+ ParseStrategy coord_child = new ParseStrategy(){
+
+ public Object parse(Handler arg, GeometryFactory gf) throws SAXException {
+ if(arg.text == null)
+ return null;
+ return new Double((arg.text.toString()));
+ }
+ };
+
+ // coord-x
+ strats.put(GMLConstants.GML_COORD_X.toLowerCase(),coord_child);
+
+ // coord-y
+ strats.put(GMLConstants.GML_COORD_Y.toLowerCase(),coord_child);
+
+ // coord-z
+ strats.put(GMLConstants.GML_COORD_Z.toLowerCase(),coord_child);
+
+ ParseStrategy member = new ParseStrategy(){
+
+ public Object parse(Handler arg, GeometryFactory gf) throws SAXException {
+ if(arg.children.size()!=1)
+ throw new SAXException("Geometry Members may only contain one geometry.");
+
+ // type checking will occur in the parent geom collection.
+ // may wish to add this in the future
+
+ return arg.children.get(0);
+ }
+ };
+ // outerBoundary - linear ring member
+ strats.put(GMLConstants.GML_OUTER_BOUNDARY_IS.toLowerCase(),member);
+
+ // innerBoundary - linear ring member
+ strats.put(GMLConstants.GML_INNER_BOUNDARY_IS.toLowerCase(),member);
+
+ // point member
+ strats.put(GMLConstants.GML_POINT_MEMBER.toLowerCase(),member);
+
+ // line string member
+ strats.put(GMLConstants.GML_LINESTRING_MEMBER.toLowerCase(),member);
+
+ // polygon member
+ strats.put(GMLConstants.GML_POLYGON_MEMBER.toLowerCase(),member);
+
+ return strats;
+ }
+
+ static int getSrid(Attributes attrs, int defaultValue){
+ String srs = null;
+ if(attrs.getIndex(GMLConstants.GML_ATTR_SRSNAME)>=0)
+ srs = attrs.getValue(GMLConstants.GML_ATTR_SRSNAME);
+ else if(attrs.getIndex(GMLConstants.GML_NAMESPACE,GMLConstants.GML_ATTR_SRSNAME)>=0)
+ srs = attrs.getValue(GMLConstants.GML_NAMESPACE,GMLConstants.GML_ATTR_SRSNAME);
+
+ if(srs != null){
+ srs = srs.trim();
+ if(srs != null && !"".equals(srs)){
+ try{
+ return Integer.parseInt(srs);
+ }catch(NumberFormatException e){
+ // rip out the end, uri's are used here sometimes
+ int index = srs.lastIndexOf('#');
+ if(index > -1)
+ srs = srs.substring(index);
+ try{
+ return Integer.parseInt(srs);
+ }catch(NumberFormatException e2){
+ // ignore
+ }
+ }
+ }
+ }
+
+ return defaultValue;
+ }
+
+ /**
+ * @param uri Not currently used, included for future work
+ * @param localName Used to look up an appropriate parse strategy
+ * @return The ParseStrategy which should be employed
+ *
+ * @see ParseStrategy
+ */
+ public static ParseStrategy findStrategy(String uri,String localName){
+ return localName == null?null:(ParseStrategy) strategies.get(localName.toLowerCase());
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/package.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/package.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/gml2/package.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,6 @@
+<html>
+ <head><title>JTS IO: Java Topology Suite IO Library</title></head>
+ <body>
+ Classes to read and write the GML2 geometry format.
+ </body>
+</html>
\ No newline at end of file
Added: packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/Constants.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/Constants.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/Constants.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,123 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+/*
+ * Geotools2 - OpenSource mapping toolkit
+ * http://geotools.org
+ * (C) 2003, Geotools Project Managment Committee (PMC)
+ *
+ * This library 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;
+ * version 2.1 of the License.
+ *
+ * This library 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.
+ *
+ */
+package com.vividsolutions.jts.io.oracle;
+
+/**
+ * Set of constants used to interact with MDSYS.GEOMETRY and JTS Geometries.
+ *
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+class Constants {
+
+ /**
+ * Null SRID
+ */
+ public static final int SRID_NULL = -1;
+
+ /**
+ *
+ * Extracted from the Oracle Documentation for SDO_ETYPE
+ *
+ * This list may need to be expanded in the future to handle additional Geometry Types.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ * @author Jody Garnett, Refractions Research, Inc.
+ */
+ static final class SDO_ETYPE{
+
+ /** <code>ETYPE</code> code representing Point */
+ public static final int POINT = 1;
+
+ /** <code>ETYPE</code> code representing Line */
+ public static final int LINE = 2;
+
+ /** <code>ETYPE</code> code representing Polygon */
+ public static final int POLYGON = 3;
+
+ /** <code>ETYPE</code> code representing exterior counterclockwise polygon ring */
+ public static final int POLYGON_EXTERIOR = 1003;
+
+ /** <code>ETYPE</code> code representing interior clockwise polygon ring */
+ public static final int POLYGON_INTERIOR = 2003;
+ }
+
+ /**
+ * Extracted from the Oracle Documentation for SDO_GTYPE.
+ * This represents the last two digits in a GTYPE, where the first id dimension and the second if LRS
+ *
+ * This list may need to be expanded in the future to handle additional Geometry Types.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ * @author Brent Owens, The Open Planning Project.
+ */
+ static final class SDO_GTEMPLATE{
+
+ /** <code>TT</code> code representing Point */
+ public static final int POINT = 01;
+
+ /** <code>TT</code> code representing Line (or Curve) */
+ public static final int LINE = 02;
+
+ /** <code>TT</code> code representing Polygon */
+ public static final int POLYGON = 03;
+
+ /** <code>TT</code> code representing Collection */
+ public static final int COLLECTION = 04;
+
+ /** <code>TT</code> code representing Multpoint */
+ public static final int MULTIPOINT = 05;
+
+ /** <code>TT</code> code representing Multiline (or Multicurve) */
+ public static final int MULTILINE = 06;
+
+ /** <code>TT</code> code representing MULTIPOLYGON */
+ public static final int MULTIPOLYGON = 07;
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/OraReader.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/OraReader.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/OraReader.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,844 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+/*
+ * Geotools2 - OpenSource mapping toolkit
+ * http://geotools.org
+ * (C) 2003, Geotools Project Managment Committee (PMC)
+ *
+ * This library 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;
+ * version 2.1 of the License.
+ *
+ * This library 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.
+ *
+ */
+package com.vividsolutions.jts.io.oracle;
+
+import java.sql.SQLException;
+import java.util.*;
+
+import oracle.sql.*;
+
+import com.vividsolutions.jts.algorithm.CGAlgorithms;
+import com.vividsolutions.jts.geom.*;
+
+/**
+ * Creates a {@link Geometry} from an Oracle MDSYS.GEOMETRY object.
+ *
+ * A {@link GeometryFactory} may be provided, otherwise
+ * a default one will be used.
+ * The provided GeometryFactory will be used, with the exception of the SRID field.
+ * This will be extracted from the Geometry.
+ * <p>
+ * If a PrecisionModel is supplied it is the callers's responsibility
+ * to ensure that it matches the precision of the incoming data.
+ * If a lower precision for the data is required, a subsequent
+ * process must be run on the data to reduce its precision.
+ *
+ * @version 9i
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class OraReader {
+ private GeometryFactory geometryFactory;
+
+ public static final int NULL_DIMENSION = -1;
+ private int dimension = -1;
+
+ /**
+ * Creates a new reader, with a default GeometryFactory.
+ *
+ * @see #OraReader(GeometryFactory)
+ */
+ public OraReader() {
+ this(new GeometryFactory());
+ }
+
+ /**
+ * Creates a new reader, with the supplied {@link GeometryFactory}.
+ * It is assumed that the supplied {@link PrecisionModel}
+ * matches the precision of the incoming data -
+ * coordinates are <b>not</b> made precise.
+ *
+ * @param gf
+ * A non-null geometry factory for later use.
+ * @throw NullPointerException when the geometry factory is null.
+ */
+ public OraReader(GeometryFactory gf) {
+ if (gf == null)
+ throw new NullPointerException("Geometry Factory may not be Null");
+ this.geometryFactory = gf;
+ }
+
+ /**
+ * This method will attempt to create a JTS Geometry for the MDSYS.GEOMETRY
+ * provided. The Type of gemetry returned will depend on the input datum,
+ * where the Geometry type is specified within the STRUCT.
+ *
+ * @param struct The MDSYS.GEOMETRY Object to decode
+ * @return A JTS Geometry if one could be created, null otherwise
+ * @throws SQLException When a read error occured within the struct
+ */
+ public Geometry read(STRUCT struct) throws SQLException {
+
+ // Note Returning null for null Datum
+ if (struct == null)
+ return null;
+
+ Datum data[] = struct.getOracleAttributes();
+ int gType = asInteger(data[0], 0);
+ int SRID = asInteger(data[1], Constants.SRID_NULL);
+ double point[] = asDoubleArray((STRUCT) data[2], Double.NaN);
+ int elemInfo[] = asIntArray((ARRAY) data[3], 0);
+ double ordinates[] = asDoubleArray((ARRAY) data[4], Double.NaN);
+ GeometryFactory gf = geometryFactory;
+ if(geometryFactory.getSRID() != SRID){
+ // clone it and use the geom's srid
+ gf = new GeometryFactory(geometryFactory.getPrecisionModel(),SRID,geometryFactory.getCoordinateSequenceFactory());
+ }
+
+ return create(gf, gType, point, elemInfo, ordinates);
+ }
+
+ /**
+ * Decode geometry from provided SDO encoded information.
+ *
+ * <p></p>
+ *
+ * @param gf Used to construct returned Geometry
+ * @param gType SDO_GTEMPLATE represents dimension, LRS, and geometry type
+ * @param point
+ * @param elemInfo
+ * @param ordinates
+ *
+ * @return Geometry as encoded
+ */
+ private Geometry create(GeometryFactory gf, int gType,
+ double[] point, int[] elemInfo, double[] ordinates) {
+
+ int lrs = (gType%1000)/100;
+
+ // find the dimension: represented by the smaller of the two dimensions
+ int dim = 0;
+ if(dimension != NULL_DIMENSION){
+ dim = dimension;
+ }else{
+ dim = Math.min(gType/1000,gf.getCoordinateSequenceFactory().create(0,0).getDimension()) ;
+ }
+
+ if(dim<2){
+ throw new IllegalArgumentException("Dimension D:" + dim + " is not valid for JTS. " +
+ "Either specify a dimension or use Oracle Locator Version 9i or later");
+ }
+
+ // extract the geometry template type
+ // this is represented as the rightmost two digits
+ int geomTemplate = gType - (dim * 1000) - (lrs * 100);
+
+ CoordinateSequence coords = null;
+
+ if (lrs == 0 && geomTemplate == 1 && point != null && elemInfo == null) {
+ // Single Point Type Optimization
+ coords = coordinates(gf.getCoordinateSequenceFactory(), dim, lrs, geomTemplate, point);
+ elemInfo = new int[] { 1, Constants.SDO_ETYPE.POINT, 1 };
+ } else {
+ coords = coordinates(gf.getCoordinateSequenceFactory(), dim, lrs, geomTemplate, ordinates);
+ }
+
+ switch (geomTemplate) {
+ case Constants.SDO_GTEMPLATE.POINT:
+ return createPoint(gf, dim, lrs, elemInfo, 0, coords);
+
+ case Constants.SDO_GTEMPLATE.LINE:
+ return createLine(gf, dim, lrs, elemInfo, 0, coords);
+
+ case Constants.SDO_GTEMPLATE.POLYGON:
+ return createPolygon(gf, dim, lrs, elemInfo, 0, coords);
+
+ case Constants.SDO_GTEMPLATE.MULTIPOINT:
+ return createMultiPoint(gf, dim, lrs, elemInfo, 0, coords);
+
+ case Constants.SDO_GTEMPLATE.MULTILINE:
+ return createMultiLine(gf, dim, lrs, elemInfo, 0, coords, -1);
+
+ case Constants.SDO_GTEMPLATE.MULTIPOLYGON:
+ return createMultiPolygon(gf, dim, lrs, elemInfo, 0, coords, -1);
+
+ case Constants.SDO_GTEMPLATE.COLLECTION:
+ return createCollection(gf, dim, lrs, elemInfo, 0, coords,-1);
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Construct CoordinateList as described by GTYPE.
+ *
+ * The number of ordinates per coordinate are taken to be lrs+dim, and the
+ * number of ordinates should be a multiple of this value.
+
+ * In the Special case of GTYPE 2001 and a three ordinates are interpreted
+ * as a single Coordinate rather than an error.
+ *
+ * @param f CoordinateSequenceFactory used to encode ordiantes for JTS
+ * @param ordinates
+ *
+ * @return protected
+ *
+ * @throws IllegalArgumentException
+ */
+ private CoordinateSequence coordinates(CoordinateSequenceFactory f,
+ int dim, int lrs, int gtemplate, double[] ordinates) {
+ if ((ordinates == null) || (ordinates.length == 0)) {
+ return f.create(new Coordinate[0]);
+ }
+
+ // POINT_TYPE Special Case
+ //
+ if ((dim == 2) && (lrs == 0) && (gtemplate == 01) && (ordinates.length == 3)) {
+ return f.create(new Coordinate[] {
+ new Coordinate(ordinates[0], ordinates[1], ordinates[2]),
+ });
+ }
+
+ int len = dim + lrs;
+
+ if ((len == 0 && ordinates.length!=0 ) || (len != 0 && ((ordinates.length % len) != 0))){
+ throw new IllegalArgumentException("Dimension D:" + dim + " and L:"
+ + lrs + " denote Coordinates " + "of " + len
+ + " ordinates. This cannot be resolved with"
+ + "an ordinate array of length " + ordinates.length);
+ }
+
+ int length = (len == 0?0:ordinates.length / len);
+
+ // we would have to ask for a dimension which represents all the requested
+ // dimension and measures from a mask array in the future
+ CoordinateSequence cs = f.create(length,dim);
+
+ int actualDim = cs.getDimension();
+ for(int i=0;i<length;i++){
+ int j=0;
+ // in the future change this condition to include ignored dimensions from mask array
+ for(;j<actualDim && j<dim;j++){
+ cs.setOrdinate(i,j,ordinates[i*len+j]);
+ // may not always want to inc. j when we have a mask array
+ }
+ // in the future change this condition to include ignored dimensions from mask array
+ for(int d = j;j<actualDim && (j-d)<lrs;j++){
+ cs.setOrdinate(i,j,ordinates[i*len+j]);
+ // may not always want to inc. j when we have a mask array
+ }
+ }
+ return cs;
+ }
+
+ /**
+ * Create MultiGeometry as encoded by elemInfo.
+ *
+ * @param gf Used to construct MultiLineString
+ * @param elemInfo Interpretation of coords
+ * @param elemIndex Triplet in elemInfo to process as a Polygon
+ * @param coords Coordinates to interpret using elemInfo
+ * @param numGeom Number of triplets (or -1 for rest)
+ *
+ * @return GeometryCollection
+ *
+ * @throws IllegalArgumentException DWhen faced with an encoding error
+ */
+ private GeometryCollection createCollection(GeometryFactory gf, int dim, int lrs, int[] elemInfo, int elemIndex, CoordinateSequence coords, int numGeom) {
+
+ int sOffset = StartingOffset(elemInfo, elemIndex);
+
+ int length = coords.size()*dim;
+
+ if (!(sOffset <= length))
+ throw new IllegalArgumentException("ELEM_INFO STARTING_OFFSET "+sOffset+" inconsistent with ORDINATES length "+coords.size());
+
+ int endTriplet = (numGeom != -1) ? elemIndex + numGeom : elemInfo.length / 3 + 1;
+
+ List list = new LinkedList();
+ int etype;
+ int interpretation;
+ Geometry geom;
+
+ boolean cont = true;
+ for (int i = elemIndex; cont && i < endTriplet; i++) {
+ etype = eType(elemInfo, i);
+ interpretation = interpretation(elemInfo, i);
+
+ switch (etype) {
+ case -1:
+ cont = false; // We are the of the list - get out of here
+
+ case Constants.SDO_ETYPE.POINT:
+
+ if (interpretation == 1) {
+ geom = createPoint(gf, dim, lrs, elemInfo, i, coords);
+ } else if (interpretation > 1) {
+ geom = createMultiPoint(gf, dim, lrs, elemInfo, i, coords);
+ } else {
+ throw new IllegalArgumentException(
+ "ETYPE.POINT requires INTERPRETATION >= 1");
+ }
+
+ break;
+
+ case Constants.SDO_ETYPE.LINE:
+ geom = createLine(gf, dim, lrs, elemInfo, i, coords);
+
+ break;
+
+ case Constants.SDO_ETYPE.POLYGON:
+ case Constants.SDO_ETYPE.POLYGON_EXTERIOR:
+ geom = createPolygon(gf, dim, lrs, elemInfo, i, coords);
+ i += ((Polygon) geom).getNumInteriorRing();
+
+ break;
+
+ case Constants.SDO_ETYPE.POLYGON_INTERIOR:
+ throw new IllegalArgumentException(
+ "ETYPE 2003 (Polygon Interior) no expected in a GeometryCollection"
+ + "(2003 is used to represent polygon holes, in a 1003 polygon exterior)");
+
+ default:
+ throw new IllegalArgumentException("ETYPE " + etype
+ + " not representable as a JTS Geometry."
+ + "(Custom and Compound Straight and Curved Geometries not supported)");
+ }
+
+ list.add(geom);
+ }
+
+ GeometryCollection geoms = gf.createGeometryCollection((Geometry[]) list.toArray(new Geometry[list.size()]));
+
+ return geoms;
+ }
+
+ /**
+ * Create MultiPolygon as encoded by elemInfo.
+ *
+ *
+ * @param gf Used to construct MultiLineString
+ * @param elemInfo Interpretation of coords
+ * @param elemIndex Triplet in elemInfo to process as a Polygon
+ * @param coords Coordinates to interpret using elemInfo
+ * @param numGeom Number of triplets (or -1 for rest)
+ *
+ * @return MultiPolygon
+ */
+ private MultiPolygon createMultiPolygon(GeometryFactory gf, int dim, int lrs, int[] elemInfo, int elemIndex, CoordinateSequence coords, int numGeom){
+
+ int sOffset = StartingOffset(elemInfo, elemIndex);
+ int etype = eType(elemInfo, elemIndex);
+ int interpretation = interpretation(elemInfo, elemIndex);
+
+ int length = coords.size()*dim;
+
+ if (!(sOffset >= 1) || !(sOffset <= length))
+ throw new IllegalArgumentException("ELEM_INFO STARTING_OFFSET "+sOffset+" inconsistent with ORDINATES length "+coords.size());
+ if(!(etype == Constants.SDO_ETYPE.POLYGON) && !(etype == Constants.SDO_ETYPE.POLYGON_EXTERIOR))
+ throw new IllegalArgumentException("ETYPE "+etype+" inconsistent with expected POLYGON or POLYGON_EXTERIOR");
+ if (interpretation != 1 && interpretation != 3){
+ return null;
+ }
+
+ int endTriplet = (numGeom != -1) ? elemIndex + numGeom : (elemInfo.length / 3) + 1;
+
+ List list = new LinkedList();
+ boolean cont = true;
+
+ for (int i = elemIndex; cont && i < endTriplet && (etype = eType(elemInfo, i)) != -1; i++) {
+ if ((etype == Constants.SDO_ETYPE.POLYGON) || (etype == Constants.SDO_ETYPE.POLYGON_EXTERIOR)) {
+ Polygon poly = createPolygon(gf, dim, lrs, elemInfo, i, coords);
+ i += poly.getNumInteriorRing(); // skip interior rings
+ list.add(poly);
+ } else { // not a Polygon - get out here
+ cont = false;
+ }
+ }
+
+ MultiPolygon polys = gf.createMultiPolygon((Polygon[]) list.toArray(new Polygon[list.size()]));
+
+ return polys;
+ }
+
+ /**
+ * Create MultiLineString as encoded by elemInfo.
+ *
+ *
+ * @param gf Used to construct MultiLineString
+ * @param elemInfo Interpretation of coords
+ * @param elemIndex Triplet in elemInfo to process as a Polygon
+ * @param coords Coordinates to interpret using elemInfo
+ * @param numGeom Number of triplets (or -1 for rest)
+ *
+ * @return MultiLineString
+ */
+ private MultiLineString createMultiLine(GeometryFactory gf, int dim, int lrs, int[] elemInfo, int elemIndex, CoordinateSequence coords, int numGeom) {
+
+ int sOffset = StartingOffset(elemInfo, elemIndex);
+ int etype = eType(elemInfo, elemIndex);
+ int interpretation = interpretation(elemInfo, elemIndex);
+
+ int length = coords.size()*dim;
+
+ if (!(sOffset >= 1) || !(sOffset <= length))
+ throw new IllegalArgumentException("ELEM_INFO STARTING_OFFSET "+sOffset+" inconsistent with ORDINATES length "+coords.size());
+ if(!(etype == Constants.SDO_ETYPE.LINE))
+ throw new IllegalArgumentException("ETYPE "+etype+" inconsistent with expected LINE");
+ if (!(interpretation == 1)){
+ // we cannot represent INTERPRETATION > 1
+ return null;
+ }
+
+ int endTriplet = (numGeom != -1) ? (elemIndex + numGeom) : (elemInfo.length / 3);
+
+ List list = new LinkedList();
+
+ boolean cont = true;
+ for (int i = elemIndex; cont && i < endTriplet && (etype = eType(elemInfo, i)) != -1 ;i++) {
+ if (etype == Constants.SDO_ETYPE.LINE) {
+ list.add(createLine(gf, dim, lrs, elemInfo, i, coords));
+ } else { // not a LineString - get out of here
+ cont = false;
+ }
+ }
+
+ MultiLineString lines = gf.createMultiLineString((LineString[]) list.toArray(new LineString[list.size()]));
+
+ return lines;
+ }
+
+ /**
+ * Create MultiPoint as encoded by elemInfo.
+ *
+ *
+ * @param gf Used to construct polygon
+ * @param elemInfo Interpretation of coords
+ * @param elemIndex Triplet in elemInfo to process as a Polygon
+ * @param coords Coordinates to interpret using elemInfo
+ *
+ * @return MultiPoint
+ */
+ private MultiPoint createMultiPoint(GeometryFactory gf, int dim, int lrs, int[] elemInfo, int elemIndex, CoordinateSequence coords) {
+
+ int sOffset = StartingOffset(elemInfo, elemIndex);
+ int etype = eType(elemInfo, elemIndex);
+ int interpretation = interpretation(elemInfo, elemIndex);
+
+ if (!(sOffset >= 1) || !(sOffset <= coords.size()))
+ throw new IllegalArgumentException("ELEM_INFO STARTING_OFFSET "+sOffset+" inconsistent with ORDINATES length "+coords.size());
+ if(!(etype == Constants.SDO_ETYPE.POINT))
+ throw new IllegalArgumentException("ETYPE "+etype+" inconsistent with expected POINT");
+ if (!(interpretation > 1)){
+ return null;
+ }
+
+ int len = dim + lrs;
+
+ int start = (sOffset - 1) / len;
+ int end = start + interpretation;
+
+ MultiPoint points = gf.createMultiPoint(subList(gf.getCoordinateSequenceFactory(), coords, start, end));
+
+ return points;
+ }
+
+ /**
+ * Create Polygon as encoded.
+ *
+ * @see #interpretation(int[], int)
+ *
+ * @param gf Used to construct polygon
+ * @param elemInfo Interpretation of coords
+ * @param elemIndex Triplet in elemInfo to process as a Polygon
+ * @param coords Coordinates to interpret using elemInfo
+ *
+ * @return Polygon as encoded by elemInfo, or null when faced with and
+ * encoding that can not be captured by JTS
+ * @throws IllegalArgumentException When faced with an invalid SDO encoding
+ */
+ private Polygon createPolygon(GeometryFactory gf, int dim, int lrs, int[] elemInfo, int elemIndex, CoordinateSequence coords) {
+
+ int sOffset = StartingOffset(elemInfo, elemIndex);
+ int etype = eType(elemInfo, elemIndex);
+ int interpretation = interpretation(elemInfo, elemIndex);
+
+ if( !(1 <= sOffset && sOffset <= (coords.size() * dim))){
+ throw new IllegalArgumentException(
+ "ELEM_INFO STARTING_OFFSET "+sOffset+
+ "inconsistent with COORDINATES length "+(coords.size() * dim) );
+ }
+
+ if(!(etype == Constants.SDO_ETYPE.POLYGON) && !(etype == Constants.SDO_ETYPE.POLYGON_EXTERIOR)){
+ throw new IllegalArgumentException("ETYPE "+etype+" inconsistent with expected POLYGON or POLYGON_EXTERIOR");
+ }
+ if (!(interpretation == 1) && !(interpretation == 3)){
+ return null;
+ }
+
+ LinearRing exteriorRing = createLinearRing(gf, dim, lrs, elemInfo, elemIndex, coords);
+
+ List rings = new LinkedList();
+
+ boolean cont = true;
+ for (int i = elemIndex + 1; cont && (etype = eType(elemInfo, i)) != -1; i++) {
+ if (etype == Constants.SDO_ETYPE.POLYGON_INTERIOR) {
+ rings.add(createLinearRing(gf, dim, lrs, elemInfo, i, coords));
+ } else if (etype == Constants.SDO_ETYPE.POLYGON) { // need to test Clockwiseness of Ring to see if it is
+ // interior or not - (use POLYGON_INTERIOR to avoid pain)
+
+ LinearRing ring = createLinearRing(gf, dim, lrs, elemInfo, i, coords);
+
+ if (CGAlgorithms.isCCW(ring.getCoordinates())) { // it is an Interior Hole
+ rings.add(ring);
+ } else { // it is the next Polygon! - get out of here
+ cont = false;
+ }
+ } else { // not a LinearRing - get out of here
+ cont = false;
+ }
+ }
+
+ Polygon poly = gf.createPolygon(exteriorRing, (LinearRing[]) rings.toArray(new LinearRing[rings.size()]));
+
+ return poly;
+ }
+
+ /**
+ * Create Linear Ring for exterior/interior polygon ELEM_INFO triplets.
+ *
+ * @param gf
+ * @param elemInfo
+ * @param elemIndex
+ * @param coords
+ *
+ * @return LinearRing
+ *
+ * @throws IllegalArgumentException If circle, or curve is requested
+ */
+ private LinearRing createLinearRing(GeometryFactory gf, int dim, int lrs, int[] elemInfo, int elemIndex, CoordinateSequence coords) {
+
+ int sOffset = StartingOffset(elemInfo, elemIndex);
+ int etype = eType(elemInfo, elemIndex);
+ int interpretation = interpretation(elemInfo, elemIndex);
+ int length = coords.size()*dim;
+
+ if (!(sOffset <= length))
+ throw new IllegalArgumentException("ELEM_INFO STARTING_OFFSET "+sOffset+" inconsistent with ORDINATES length "+coords.size());
+ if(!(etype == Constants.SDO_ETYPE.POLYGON) && !(etype == Constants.SDO_ETYPE.POLYGON_EXTERIOR) && !(etype == Constants.SDO_ETYPE.POLYGON_INTERIOR)){
+ throw new IllegalArgumentException("ETYPE "+etype+" inconsistent with expected POLYGON, POLYGON_EXTERIOR or POLYGON_INTERIOR");
+ }
+ if (!(interpretation == 1) && !(interpretation == 3)){
+ return null;
+ }
+ LinearRing ring;
+
+
+ int len = (dim+lrs);
+ int start = (sOffset - 1) / len;
+ int eOffset = StartingOffset(elemInfo, elemIndex+1); // -1 for end
+ int end = (eOffset != -1) ? ((eOffset - 1) / len) : coords.size();
+
+ if (interpretation == 1) {
+ ring = gf.createLinearRing(subList(gf.getCoordinateSequenceFactory(),coords, start,end));
+ } else { // interpretation == 3
+ // rectangle does not maintain measures
+ //
+ CoordinateSequence ext = subList(gf.getCoordinateSequenceFactory(),coords, start,end);
+ Coordinate min = ext.getCoordinate(0);
+ Coordinate max = ext.getCoordinate(1);
+ ring = gf.createLinearRing(new Coordinate[] {
+ min, new Coordinate(max.x, min.y), max,
+ new Coordinate(min.x, max.y), min
+ });
+ }
+
+ return ring;
+ }
+
+ /**
+ * Create LineString as encoded.
+ *
+ * @param gf
+ * @param elemInfo
+ * @param coords
+ *
+ * @return LineString
+ *
+ * @throws IllegalArgumentException If asked to create a curve
+ */
+ private LineString createLine(GeometryFactory gf, int dim, int lrs, int[] elemInfo, int elemIndex, CoordinateSequence coords) {
+
+ int sOffset = StartingOffset(elemInfo, elemIndex);
+ int etype = eType(elemInfo, elemIndex);
+ int interpretation = interpretation(elemInfo, elemIndex);
+
+ if (etype != Constants.SDO_ETYPE.LINE)
+ return null;
+
+ if (interpretation != 1) {
+ throw new IllegalArgumentException("ELEM_INFO INTERPRETAION "
+ + interpretation + " not supported"
+ + "by JTS LineString. Straight edges"
+ + "( ELEM_INFO INTERPRETAION 1) is supported");
+ }
+
+ int len = (dim+lrs);
+ int start = (sOffset - 1) / len;
+ int eOffset = StartingOffset(elemInfo, elemIndex+1); // -1 for end
+ int end = (eOffset != -1) ? ((eOffset - 1) / len) : coords.size();
+
+
+ LineString line = gf.createLineString(subList(gf.getCoordinateSequenceFactory(),coords, start,end));
+
+ return line;
+ }
+
+ /**
+ * Create Point as encoded.
+ *
+ * @param gf
+ * @param dim The number of Dimensions
+ * @param elemInfo
+ * @param elemIndex
+ * @param coords
+ *
+ * @return Point
+ */
+ private Point createPoint(GeometryFactory gf, int dim, int lrs, int[] elemInfo, int elemIndex, CoordinateSequence coords) {
+ int sOffset = StartingOffset(elemInfo, elemIndex);
+ int etype = eType(elemInfo, elemIndex);
+ int interpretation = interpretation(elemInfo, elemIndex);
+
+ if (!(sOffset >= 1) || !(sOffset <= coords.size()))
+ throw new IllegalArgumentException("ELEM_INFO STARTING_OFFSET "+sOffset+" inconsistent with ORDINATES length "+coords.size());
+ if (etype != Constants.SDO_ETYPE.POINT)
+ throw new IllegalArgumentException("ETYPE "+etype+" inconsistent with expected POINT");
+ if (interpretation != 1){
+ return null;
+ }
+
+ int len = (dim+lrs);
+ int start = (sOffset - 1) / len;
+ int eOffset = StartingOffset(elemInfo, elemIndex+1); // -1 for end
+
+ Point point = null;
+ if ((sOffset == 1) && (eOffset == -1)) {
+ // Use all Coordinates
+ point = gf.createPoint( coords);
+ }else{
+ int end = (eOffset != -1) ? ((eOffset - 1) / len) : coords.size();
+ point = gf.createPoint(subList(gf.getCoordinateSequenceFactory(),coords,start,end));
+ }
+
+ return point;
+ }
+
+
+ /**
+ * Version of List.subList() that returns a CoordinateSequence.
+ *
+ * <p>
+ * Returns from start (inclusive) to end (exlusive):
+ * </p>
+ *
+ * @param factory Manages CoordinateSequences for JTS
+ * @param coords coords to sublist
+ * @param start starting offset
+ * @param end upper bound of sublist
+ *
+ * @return CoordianteSequence
+ */
+ private CoordinateSequence subList(CoordinateSequenceFactory factory, CoordinateSequence coords, int start, int end) {
+ if ((start == 0) && (end == coords.size())) {
+ return coords;
+ }
+
+ if (coords instanceof List) {
+ List sublist = ((List) coords).subList(start, end);
+
+ if (sublist instanceof CoordinateSequence) {
+ return (CoordinateSequence) sublist;
+ }
+ }
+
+ CoordinateList list = new CoordinateList(coords.toCoordinateArray());
+
+ Coordinate[] array = new Coordinate[end - start];
+ int index = 0;
+
+ for (Iterator i = list.subList(start, end).iterator(); i.hasNext(); index++) {
+ array[index] = (Coordinate) i.next();
+ }
+
+ return factory.create(array);
+ }
+
+ /**
+ * ETYPE access for the elemInfo triplet indicated.
+ * <p>
+ * @see Constants.SDO_ETYPE for an indication of possible values
+ *
+ * @param elemInfo
+ * @param tripletIndex
+ * @return ETYPE for indicated triplet
+ */
+ private int eType(int[] elemInfo, int tripletIndex) {
+ if (((tripletIndex * 3) + 1) >= elemInfo.length) {
+ return -1;
+ }
+
+ return elemInfo[(tripletIndex * 3) + 1];
+ }
+
+
+ /**
+ * Accesses the interpretation value for the current geometry
+ *
+ * JTS valid interpretation is: 1 for strait edges, 3 for rectangle
+ *
+ * Other interpretations include: 2 for arcs, 4 for circles
+ *
+ * mostly useful for polygons
+ *
+ * @param elemInfo
+ * @param tripletIndex
+ * @return Starting Offset for the ordinates of the geometry
+ */
+ private int interpretation(int[] elemInfo, int tripletIndex) {
+ if (((tripletIndex * 3) + 2) >= elemInfo.length) {
+ return -1;
+ }
+
+ return elemInfo[(tripletIndex * 3) + 2];
+ }
+
+ /**
+ * Accesses the starting index in the ordinate array for the current geometry
+ *
+ * mostly useful for polygons
+ *
+ * @param elemInfo
+ * @param tripletIndex
+ * @return Starting Offset for the ordinates of the geometry
+ */
+ private int StartingOffset(int[] elemInfo, int tripletIndex) {
+ if (((tripletIndex * 3) + 0) >= elemInfo.length) {
+ return -1;
+ }
+
+ return elemInfo[(tripletIndex * 3) + 0];
+ }
+
+ /** Presents datum as an int */
+ private int asInteger(Datum datum, final int DEFAULT)
+ throws SQLException {
+ if (datum == null)
+ return DEFAULT;
+ return ((NUMBER) datum).intValue();
+ }
+
+ /** Presents datum as a double */
+ private double asDouble(Datum datum, final double DEFAULT) {
+ if (datum == null)
+ return DEFAULT;
+ return ((NUMBER) datum).doubleValue();
+ }
+
+ /** Presents struct as a double[] */
+ private double[] asDoubleArray(STRUCT struct, final double DEFAULT)
+ throws SQLException {
+ if (struct == null)
+ return null;
+ return asDoubleArray(struct.getOracleAttributes(), DEFAULT);
+ }
+
+ /** Presents array as a double[] */
+ private double[] asDoubleArray(ARRAY array, final double DEFAULT)
+ throws SQLException {
+ if (array == null)
+ return null;
+ if (DEFAULT == 0)
+ return array.getDoubleArray();
+
+ return asDoubleArray(array.getOracleArray(), DEFAULT);
+ }
+
+ /** Presents Datum[] as a double[] */
+ private double[] asDoubleArray(Datum data[], final double DEFAULT) {
+ if (data == null)
+ return null;
+ double array[] = new double[data.length];
+ for (int i = 0; i < data.length; i++) {
+ array[i] = asDouble(data[i], DEFAULT);
+ }
+ return array;
+ }
+
+ private int[] asIntArray(ARRAY array, int DEFAULT)
+ throws SQLException {
+ if (array == null)
+ return null;
+ if (DEFAULT == 0)
+ return array.getIntArray();
+
+ return asIntArray(array.getOracleArray(), DEFAULT);
+ }
+
+ /** Presents Datum[] as a int[] */
+ private int[] asIntArray(Datum data[], final int DEFAULT)
+ throws SQLException {
+ if (data == null)
+ return null;
+ int array[] = new int[data.length];
+ for (int i = 0; i < data.length; i++) {
+ array[i] = asInteger(data[i], DEFAULT);
+ }
+ return array;
+ }
+
+ public int getDimension() {
+ return dimension;
+ }
+
+ public void setDimension(int dimension) {
+ this.dimension = dimension;
+ }
+
+}
Added: packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/OraWriter.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/OraWriter.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/OraWriter.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,818 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+/*
+ * Geotools2 - OpenSource mapping toolkit
+ * http://geotools.org
+ * (C) 2003, Geotools Project Managment Committee (PMC)
+ *
+ * This library 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;
+ * version 2.1 of the License.
+ *
+ * This library 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.
+ *
+ */
+package com.vividsolutions.jts.io.oracle;
+
+import java.sql.SQLException;
+import java.util.*;
+
+import com.vividsolutions.jts.algorithm.CGAlgorithms;
+import com.vividsolutions.jts.geom.*;
+
+import oracle.jdbc.OracleConnection;
+import oracle.sql.*;
+
+/**
+ *
+ * Translates a JTS Geometry into an Oracle STRUCT representing an MDSYS.GEOMETRY object.
+ *
+ * A connection to an oracle instance with access to the definition of the MDSYS.GEOMETRY
+ * object is required by the oracle driver.
+ *
+ * @version 9i
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class OraWriter {
+ private OracleConnection connection;
+ private int dimension = 2;
+ private int srid = Constants.SRID_NULL;
+
+ private String DATATYPE = "MDSYS.SDO_GEOMETRY";
+
+ /**
+ * Initialize the Oracle MDSYS.GEOMETRY Encoder with a valid oracle connection.
+ *
+ * The connection should have sufficient priveledges to view the description of the MDSYS.GEOMETRY type.
+ *
+ * The dimension is set to 2
+ *
+ * @param con
+ */
+ public OraWriter(OracleConnection con){
+ this.connection = con;
+ }
+
+ /**
+ * Initialize the Oracle MDSYS.GEOMETRY Encoder with a valid oracle connection.
+ *
+ * The connection should have sufficient priveledges to view the description of the MDSYS.GEOMETRY type.
+ *
+ * @param con
+ * @param dimension
+ */
+ public OraWriter(OracleConnection con, int dimension){
+ this.connection = con;
+ this.dimension = dimension;
+ }
+
+ /**
+ * Provides the oppotunity to force all geometries written using this writter to be written using the
+ * specified srid. This is useful in two cases: 1) when you do not want the geometry's srid to be
+ * over-written or 2) when you want to ensure an entire layer is always written using a constant srid.
+ *
+ * @param srid
+ */
+ public void setSRID(int srid){
+ this.srid = srid;
+ }
+
+ /**
+ * This routine will translate the JTS Geometry into an Oracle MDSYS.GEOMETRY STRUCT.
+ *
+ * Although invalid geometries may be encoded, and inserted into an Oracle DB, this is
+ * not recomended. It is the responsibility of the user to ensure the geometry is valid
+ * prior to calling this method. The user should also ensure the the geometry's SRID
+ * field contains the correct value, if an SRID is desired. An incorrect SRID value may
+ * cause index exceptions during an insert or update.
+ *
+ * When a null Geometry is passed in, a non-null, empty STRUCT is returned. Therefore,
+ * inserting the the result of calling this method directly into a table will never result
+ * in null insertions.
+ * (March 2006)
+ *
+ * To pass a NULL Geometry into an oracle geometry parameter using jdbc, use
+ * java.sql.CallableStatement.setNull(index,java.sql.Types.STRUCT,"MDSYS.SDO_GEOMETRY")
+ * (April 2006)
+ *
+ * @param geom JTS Geometry to encode
+ * @return Oracle MDSYS.GEOMETRY STRUCT
+ * @throws SQLException
+ */
+ public STRUCT write(Geometry geom) throws SQLException{
+
+ // this line may be problematic ... for v9i and later
+ // need to revisit.
+
+ // was this ... does not work for 9i
+// if( geom == null) return toSTRUCT( null, DATATYPE );
+
+ //works fro 9i
+ if( geom == null) return toSTRUCT( new Datum[5], DATATYPE );
+
+ // does not work for 9i
+// if( geom == null) return null;
+
+ //empty geom
+ if( geom.isEmpty() || geom.getCoordinate() == null)
+ return toSTRUCT( new Datum[5], DATATYPE );
+
+ int gtype = gType( geom);
+ NUMBER SDO_GTYPE = new NUMBER( gtype );
+
+ //int srid = geom.getFactory().getSRID();
+ int srid = this.srid == Constants.SRID_NULL? geom.getSRID() : this.srid;
+ NUMBER SDO_SRID = srid == Constants.SRID_NULL ? null : new NUMBER( srid );
+
+ double[] point = point( geom );
+
+ STRUCT SDO_POINT;
+
+ ARRAY SDO_ELEM_INFO;
+ ARRAY SDO_ORDINATES;
+
+ if( point == null ){
+ int elemInfo[] = elemInfo( geom , gtype);
+
+ List list = new ArrayList();
+ coordinates(list, geom);
+
+ int dim = gtype / 1000;
+ int lrs = (gtype - dim*1000)/100;
+ int len = dim+lrs; // size per coordinate
+ double[] ordinates = new double[list.size()*len];
+
+ int k=0;
+ for(int i=0;i<list.size() && k<ordinates.length;i++){
+ int j=0;
+ double[] ords = (double[]) list.get(i);
+ for(;j<len && j<ords.length;j++){
+ ordinates[k++] = ords[j];
+ }
+ for(;j<len;j++){ // mostly safety
+ ordinates[k++] = Double.NaN;
+ }
+ }
+
+ list = null;
+
+ SDO_POINT = null;
+ SDO_ELEM_INFO = toARRAY( elemInfo, "MDSYS.SDO_ELEM_INFO_ARRAY" );
+ SDO_ORDINATES = toARRAY( ordinates, "MDSYS.SDO_ORDINATE_ARRAY" );
+ }
+ else { // Point Optimization
+ Datum data[] = new Datum[]{
+ toNUMBER( point[0] ),
+ toNUMBER( point[1] ),
+ toNUMBER( point[2] ),
+ };
+ SDO_POINT = toSTRUCT( data, "MDSYS.SDO_POINT_TYPE" );
+ SDO_ELEM_INFO = null;
+ SDO_ORDINATES = null;
+ }
+ Datum attributes[] = new Datum[]{
+ SDO_GTYPE,
+ SDO_SRID,
+ SDO_POINT,
+ SDO_ELEM_INFO,
+ SDO_ORDINATES
+ };
+ return toSTRUCT( attributes, DATATYPE );
+ }
+
+ /**
+ * Encode Geometry as described by GTYPE and ELEM_INFO
+ *
+ * @param list Flat list of Double
+ * @param geom Geometry
+ *
+ * @throws IllegalArgumentException If geometry cannot be encoded
+ */
+ private void coordinates(List list, Geometry geom) {
+ switch (template(geom)) {
+
+ case Constants.SDO_GTEMPLATE.POINT:
+ addCoordinates(list, ((Point)geom).getCoordinateSequence());
+ return;
+ case Constants.SDO_GTEMPLATE.LINE:
+ addCoordinates(list, ((LineString)geom).getCoordinateSequence());
+ return;
+ case Constants.SDO_GTEMPLATE.POLYGON:
+ switch (elemInfoInterpretation(geom,Constants.SDO_ETYPE.POLYGON_EXTERIOR)) {
+ case 3:
+ Envelope e = geom.getEnvelopeInternal();
+ list.add(new double[] { e.getMinX(), e.getMinY() });
+ list.add(new double[] { e.getMaxX(), e.getMaxY() });
+ return;
+ case 1:
+ Polygon polygon = (Polygon) geom;
+ int holes = polygon.getNumInteriorRing();
+
+ // check outer ring's direction
+ CoordinateSequence ring = polygon.getExteriorRing().getCoordinateSequence();
+ if (!CGAlgorithms.isCCW(ring.toCoordinateArray())) {
+ ring = reverse(polygon.getFactory().getCoordinateSequenceFactory(), ring);
+ }
+ addCoordinates(list,ring);
+
+ for (int i = 0; i < holes; i++) {
+ // check inner ring's direction
+ ring = polygon.getInteriorRingN(i).getCoordinateSequence();
+ if (CGAlgorithms.isCCW(ring.toCoordinateArray())) {
+ ring = reverse(polygon.getFactory().getCoordinateSequenceFactory(), ring);
+ }
+
+ addCoordinates(list,ring);
+ }
+ return;
+ }
+ break; // interpretations 2,4 not supported
+ case Constants.SDO_GTEMPLATE.MULTIPOINT:
+ case Constants.SDO_GTEMPLATE.MULTILINE:
+ case Constants.SDO_GTEMPLATE.MULTIPOLYGON:
+ case Constants.SDO_GTEMPLATE.COLLECTION:
+ for (int i = 0; i < geom.getNumGeometries(); i++) {
+ coordinates(list,geom.getGeometryN(i));
+ }
+ return;
+ }
+
+ throw new IllegalArgumentException("Cannot encode JTS "
+ + geom.getGeometryType() + " as "
+ + "SDO_ORDINATRES (Limitied to Point, Line, Polygon, "
+ + "GeometryCollection, MultiPoint, MultiLineString and MultiPolygon)");
+ }
+
+ /**
+ * Adds a double array to list.
+ *
+ * <p>
+ * The double array will contain all the ordinates in the Coordiante
+ * sequence.
+ * </p>
+ *
+ * @param list
+ * @param sequence
+ */
+ private static void addCoordinates(List list, CoordinateSequence sequence) {
+ Coordinate coord = null;
+ for (int i = 0; i < sequence.size(); i++) {
+ coord = sequence.getCoordinate(i);
+ if(coord.z == Double.NaN)
+ list.add( new double[] { coord.x, coord.y});
+ else
+ list.add( new double[] { coord.x, coord.y, coord.z });
+ }
+ }
+
+ /**
+ * Return SDO_ELEM_INFO array for geometry
+ *
+ * <pre><code><b>
+ * # Name Meaning</b>
+ * 0 SDO_STARTING_OFFSET Offsets start at one
+ * 1 SDO_ETYPE Describes how ordinates are ordered
+ * 2 SDO_INTERPRETATION SDO_ETYPE: 4, 1005, or 2005
+ * Number of triplets involved in compound geometry
+ *
+ * SDO_ETYPE: 1, 2, 1003, or 2003
+ * Describes ordering of ordinates in geometry
+ * </code></pre>
+ *
+ * <p>
+ * For compound elements (SDO_ETYPE values 4 and 5) the last element of one
+ * is the first element of the next.
+ * </p>
+ *
+ * @param geom Geometry being represented
+ *
+ * @return Descriptionof Ordinates representation
+ */
+ private int[] elemInfo(Geometry geom, int gtype) {
+ List list = new LinkedList();
+
+ elemInfo(list, geom, 1, gtype);
+
+ int[] array = new int[list.size()];
+ int offset = 0;
+
+ for (Iterator i = list.iterator(); i.hasNext(); offset++) {
+ array[offset] = ((Number) i.next()).intValue();
+ }
+
+ return array;
+ }
+
+ /**
+ * Add to SDO_ELEM_INFO list for geometry and GTYPE.
+ *
+ * @param elemInfoList List used to gather SDO_ELEM_INFO
+ * @param geom Geometry to encode
+ * @param sOffSet Starting offset in SDO_ORDINATES
+ *
+ * @throws IllegalArgumentException If geom cannot be encoded by ElemInfo
+ */
+ private void elemInfo(List elemInfoList, Geometry geom, int sOffSet, int gtype) {
+
+ switch (gtype - (gtype/100) * 100) { // removes right two digits
+ case Constants.SDO_GTEMPLATE.POINT:
+ addInt(elemInfoList, sOffSet);
+ addInt(elemInfoList, Constants.SDO_ETYPE.POINT);
+ addInt(elemInfoList, 1); // INTERPRETATION single point
+
+ return;
+
+ case Constants.SDO_GTEMPLATE.MULTIPOINT:
+ MultiPoint points = (MultiPoint) geom;
+
+ addInt(elemInfoList, sOffSet);
+ addInt(elemInfoList, Constants.SDO_ETYPE.POINT);
+ addInt(elemInfoList, elemInfoInterpretation(points, Constants.SDO_ETYPE.POINT));
+
+ return;
+
+ case Constants.SDO_GTEMPLATE.LINE:
+ addInt(elemInfoList, sOffSet);
+ addInt(elemInfoList, Constants.SDO_ETYPE.LINE);
+ addInt(elemInfoList, 1); // INTERPRETATION straight edges
+
+ return;
+
+ case Constants.SDO_GTEMPLATE.MULTILINE:
+ MultiLineString lines = (MultiLineString) geom;
+ LineString line;
+ int offset = sOffSet;
+ int dim = gtype/1000;
+ int len = dim + (gtype-dim*1000)/100;
+
+ for (int i = 0; i < lines.getNumGeometries(); i++) {
+ line = (LineString) lines.getGeometryN(i);
+ addInt(elemInfoList, offset);
+ addInt(elemInfoList, Constants.SDO_ETYPE.LINE);
+ addInt(elemInfoList, 1); // INTERPRETATION straight edges
+ offset += (line.getNumPoints() * len);
+ }
+
+ return;
+
+ case Constants.SDO_GTEMPLATE.POLYGON:
+ Polygon polygon = (Polygon)geom;
+ int holes = polygon.getNumInteriorRing();
+
+ if (holes == 0) {
+ addInt(elemInfoList, sOffSet);
+ addInt(elemInfoList, elemInfoEType(polygon));
+ addInt(elemInfoList, elemInfoInterpretation(polygon, Constants.SDO_ETYPE.POLYGON_EXTERIOR));
+ return;
+ }
+
+ dim = gtype/1000;
+ len = dim + (gtype-dim*1000)/100;
+ offset = sOffSet;
+ LineString ring;
+
+ ring = polygon.getExteriorRing();
+ addInt(elemInfoList, offset);
+ addInt(elemInfoList, elemInfoEType(polygon));
+ addInt(elemInfoList, elemInfoInterpretation(polygon, Constants.SDO_ETYPE.POLYGON_EXTERIOR));
+ offset += (ring.getNumPoints() * len);
+
+ for (int i = 1; i <= holes; i++) {
+ ring = polygon.getInteriorRingN(i - 1);
+ addInt(elemInfoList, offset);
+ addInt(elemInfoList, Constants.SDO_ETYPE.POLYGON_INTERIOR);
+ addInt(elemInfoList, elemInfoInterpretation(ring, Constants.SDO_ETYPE.POLYGON_INTERIOR));
+ offset += (ring.getNumPoints() * len);
+ }
+
+ return;
+
+ case Constants.SDO_GTEMPLATE.MULTIPOLYGON:
+ MultiPolygon polys = (MultiPolygon) geom;
+ Polygon poly;
+ offset = sOffSet;
+
+ dim = gtype/1000;
+ len = dim + (gtype-dim*1000)/100;
+
+ for (int i = 0; i < polys.getNumGeometries(); i++) {
+ poly = (Polygon) polys.getGeometryN(i);
+ elemInfo(elemInfoList, poly, offset, gType(poly));
+ if( isRectangle( poly )){
+ offset += (2 * len);
+ }
+ else {
+ offset += (poly.getNumPoints() * len);
+ }
+ }
+
+ return;
+
+ case Constants.SDO_GTEMPLATE.COLLECTION:
+ GeometryCollection geoms = (GeometryCollection) geom;
+ offset = sOffSet;
+ dim = gtype/1000;
+ len = dim + (gtype-dim*1000)/100;
+
+ for (int i = 0; i < geoms.getNumGeometries(); i++) {
+ geom = geoms.getGeometryN(i);
+ elemInfo(elemInfoList, geom, offset, gtype);
+ if( geom instanceof Polygon && isRectangle( (Polygon) geom )){
+ offset += (2 * len);
+ }
+ else {
+ offset += (geom.getNumPoints() * len);
+ }
+ }
+
+ return;
+ }
+
+ throw new IllegalArgumentException("Cannot encode JTS "
+ + geom.getGeometryType() + " as SDO_ELEM_INFO "
+ + "(Limitied to Point, Line, Polygon, GeometryCollection, MultiPoint,"
+ + " MultiLineString and MultiPolygon)");
+ }
+
+ private void addInt(List list, int i) {
+ list.add(new Integer(i));
+ }
+
+ /**
+ * We need to check if a <code>polygon</code> a rectangle so we can produce
+ * the correct encoding.
+ *
+ * Rectangles are only supported without a SRID!
+ *
+ * @param polygon
+ *
+ * @return <code>true</code> if polygon is SRID==0 and a rectangle
+ */
+ private boolean isRectangle(Polygon polygon) {
+ if (polygon.getFactory().getSRID() != Constants.SRID_NULL) {
+ // Rectangles only valid in CAD applications
+ // that do not have an SRID system
+ //
+ return false;
+ }
+
+ if (lrs(polygon) != 0) {
+ // cannot support LRS on a rectangle
+ return false;
+ }
+
+ Coordinate[] coords = polygon.getCoordinates();
+
+ if (coords.length != 5) {
+ return false;
+ }
+
+ if ((coords[0] == null) || (coords[1] == null) || (coords[2] == null)
+ || (coords[3] == null)) {
+ return false;
+ }
+
+ if (!coords[0].equals2D(coords[4])) {
+ return false;
+ }
+
+ double x1 = coords[0].x;
+ double y1 = coords[0].y;
+ double x2 = coords[1].x;
+ double y2 = coords[1].y;
+ double x3 = coords[2].x;
+ double y3 = coords[2].y;
+ double x4 = coords[3].x;
+ double y4 = coords[3].y;
+
+ if ((x1 == x4) && (y1 == y2) && (x3 == x2) && (y3 == y4)) {
+ // 1+-----+2
+ // | |
+ // 4+-----+3
+ return true;
+ }
+
+ if ((x1 == x2) && (y1 == y4) && (x3 == x4) && (y3 == y2)) {
+ // 2+-----+3
+ // | |
+ // 1+-----+4
+ return true;
+ }
+
+ return false;
+ }
+ /**
+ * Produce <code>SDO_ETYPE</code> for geometry description as stored in the
+ * <code>SDO_ELEM_INFO</code>.
+ *
+ * <p>
+ * Describes how Ordinates are ordered:
+ * </p>
+ * <pre><code><b>
+ * Value Elements Meaning</b>
+ * 0 Custom Geometry (like spline)
+ * 1 simple Point (or Points)
+ * 2 simple Line (or Lines)
+ * 3 polygon ring of unknown order (discouraged update to 1003 or 2003)
+ * 1003 simple polygon ring (1 exterior counterclockwise order)
+ * 2003 simple polygon ring (2 interior clockwise order)
+ * 4 compound series defines a linestring
+ * 5 compound series defines a polygon ring of unknown order (discouraged)
+ * 1005 compound series defines exterior polygon ring (counterclockwise order)
+ * 2005 compound series defines interior polygon ring (clockwise order)
+ * </code></pre>
+ *
+ * @param geom Geometry being represented
+ *
+ * @return Descriptionof Ordinates representation
+ *
+ * @throws IllegalArgumentException
+ */
+ private int elemInfoEType(Geometry geom) {
+ switch (template(geom)) {
+
+ case Constants.SDO_GTEMPLATE.POINT:
+ return Constants.SDO_ETYPE.POINT;
+
+ case Constants.SDO_GTEMPLATE.LINE:
+ return Constants.SDO_ETYPE.LINE;
+
+ case Constants.SDO_GTEMPLATE.POLYGON:
+ // jts convention
+ return Constants.SDO_ETYPE.POLYGON_EXTERIOR; // cc order
+
+ default:
+
+ // should never happen!
+ throw new IllegalArgumentException("Unknown encoding of SDO_GTEMPLATE");
+ }
+ }
+
+ /**
+ * Allows specification of <code>INTERPRETATION</code> used to interpret
+ * <code>geom</code>.
+ *
+ * @param geom Geometry to encode
+ * @param etype ETYPE value requiring an INTERPREATION
+ *
+ * @return INTERPRETATION ELEM_INFO entry for geom given etype
+ *
+ * @throws IllegalArgumentException If asked to encode a curve
+ */
+ private int elemInfoInterpretation(Geometry geom, int etype) {
+ switch (etype) {
+
+ case Constants.SDO_ETYPE.POINT:
+
+ if (geom instanceof Point) {
+ return 1;
+ }
+
+ if (geom instanceof MultiPoint) {
+ return ((MultiPoint) geom).getNumGeometries();
+ }
+
+ break;
+
+ case Constants.SDO_ETYPE.LINE:
+ // always straight for jts
+ return 1;
+
+ case Constants.SDO_ETYPE.POLYGON:
+ case Constants.SDO_ETYPE.POLYGON_EXTERIOR:
+ case Constants.SDO_ETYPE.POLYGON_INTERIOR:
+
+ if (geom instanceof Polygon) {
+ Polygon polygon = (Polygon) geom;
+ // always straight for jts
+ if (isRectangle(polygon)) {
+ return 3;
+ }
+ }
+
+ return 1;
+ }
+
+ throw new IllegalArgumentException("Cannot encode JTS "
+ + geom.getGeometryType() + " as "
+ + "SDO_INTERPRETATION (Limitied to Point, Line, Polygon, "
+ + "GeometryCollection, MultiPoint, MultiLineString and MultiPolygon)");
+ }
+
+ /**
+ * Return SDO_POINT_TYPE for geometry
+ *
+ * Will return non null for Point objects. <code>null</code> is returned
+ * for all non point objects.
+
+ * You cannot use this with LRS Coordiantes
+ * Subclasses may wish to repress this method and force Points to be
+ * represented using SDO_ORDINATES.
+ *
+ * @param geom
+ *
+ * @return double[]
+ */
+ private double[] point(Geometry geom) {
+ if (geom instanceof Point && (lrs(geom) == 0)) {
+ Point point = (Point) geom;
+ Coordinate coord = point.getCoordinate();
+
+ return new double[] { coord.x, coord.y, coord.z };
+ }
+
+ // SDO_POINT_TYPE only used for non LRS Points
+ return null;
+ }
+
+ /**
+ * Produce SDO_GTEMPLATE representing provided Geometry.
+ *
+ * <p>
+ * Encoding of Geometry type and dimension.
+ * </p>
+ *
+ * <p>
+ * SDO_GTEMPLATE defined as for digits <code>[d][l][tt]</code>:
+ * </p>
+ *
+ * @param geom
+ *
+ * @return SDO_GTEMPLATE
+ */
+ private int gType(Geometry geom) {
+ int d = dimension(geom) * 1000;
+ int l = lrs(geom) * 100;
+ int tt = template(geom);
+
+ return d + l + tt;
+ }
+
+ /**
+ * Return dimensions as defined by SDO_GTEMPLATE (either 2,3 or 4).
+ *
+ *
+ * @param geom
+ *
+ * @return num dimensions
+ */
+ private int dimension(Geometry geom) {
+ int d = Double.isNaN(geom.getCoordinate().z)?2:3;
+ return d<dimension?d:dimension;
+ }
+
+ /**
+ * Return LRS as defined by SDO_GTEMPLATE (either 3,4 or 0).
+ *
+ * @param geom
+ *
+ * @return <code>0</code>
+ */
+ private int lrs(Geometry geom) {
+ // when measures are supported this may change
+ // until then ...
+ return 0;
+ }
+
+ /**
+ * Return TT as defined by SDO_GTEMPLATE (represents geometry type).
+ *
+ * @see Constants.SDO_GTEMPLATE
+ *
+ * @param geom
+ *
+ * @return template code
+ */
+ private int template(Geometry geom) {
+ if (geom == null) {
+ return -1; // UNKNOWN
+ } else if (geom instanceof Point) {
+ return Constants.SDO_GTEMPLATE.POINT;
+ } else if (geom instanceof LineString) {
+ return Constants.SDO_GTEMPLATE.LINE;
+ } else if (geom instanceof Polygon) {
+ return Constants.SDO_GTEMPLATE.POLYGON;
+ } else if (geom instanceof MultiPoint) {
+ return Constants.SDO_GTEMPLATE.MULTIPOINT;
+ } else if (geom instanceof MultiLineString) {
+ return Constants.SDO_GTEMPLATE.MULTILINE;
+ } else if (geom instanceof MultiPolygon) {
+ return Constants.SDO_GTEMPLATE.MULTIPOLYGON;
+ } else if (geom instanceof GeometryCollection) {
+ return Constants.SDO_GTEMPLATE.COLLECTION;
+ }
+
+ throw new IllegalArgumentException("Cannot encode JTS "
+ + geom.getGeometryType() + " as SDO_GTEMPLATE "
+ + "(Limitied to Point, Line, Polygon, GeometryCollection, MultiPoint,"
+ + " MultiLineString and MultiPolygon)");
+ }
+
+ /** Convience method for STRUCT construction. */
+ private STRUCT toSTRUCT( Datum attributes[], String dataType )
+ throws SQLException
+ {
+ if( dataType.startsWith("*.")){
+ dataType = "DRA."+dataType.substring(2);//TODO here
+ }
+ StructDescriptor descriptor =
+ StructDescriptor.createDescriptor( dataType, connection );
+
+ return new STRUCT( descriptor, connection, attributes );
+ }
+
+ /**
+ * Convience method for ARRAY construction.
+ * <p>
+ * Compare and contrast with toORDINATE - which treats <code>Double.NaN</code>
+ * as<code>NULL</code></p>
+ */
+ private ARRAY toARRAY( double doubles[], String dataType )
+ throws SQLException
+ {
+ ArrayDescriptor descriptor =
+ ArrayDescriptor.createDescriptor( dataType, connection );
+
+ return new ARRAY( descriptor, connection, doubles );
+ }
+
+ /**
+ * Convience method for ARRAY construction.
+ */
+ private ARRAY toARRAY( int ints[], String dataType )
+ throws SQLException
+ {
+ ArrayDescriptor descriptor =
+ ArrayDescriptor.createDescriptor( dataType, connection );
+
+ return new ARRAY( descriptor, connection, ints );
+ }
+
+ /**
+ * Convience method for NUMBER construction.
+ * <p>
+ * Double.NaN is represented as <code>NULL</code> to agree
+ * with JTS use.</p>
+ */
+ private NUMBER toNUMBER( double number ) throws SQLException{
+ if( Double.isNaN( number )){
+ return null;
+ }
+ return new NUMBER( number );
+ }
+
+ /**
+ * reverses the coordinate order
+ *
+ * @param factory
+ * @param sequence
+ *
+ * @return CoordinateSequence reversed sequence
+ */
+ private CoordinateSequence reverse(CoordinateSequenceFactory factory, CoordinateSequence sequence) {
+ CoordinateList list = new CoordinateList(sequence.toCoordinateArray());
+ Collections.reverse(list);
+ return factory.create(list.toCoordinateArray());
+ }
+
+ /**
+ * @param dimension The dimension to set.
+ */
+ public void setDimension(int dimension) {
+ this.dimension = dimension;
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/package.html
===================================================================
--- packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/package.html (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/src/com/vividsolutions/jts/io/oracle/package.html 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,6 @@
+<html>
+ <head><title>JTS IO: Java Topology Suite IO Library</title></head>
+ <body>
+ Classes to read and write Oracle SDO_GEOMETRY object structures.
+ </body>
+</html>
\ No newline at end of file
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/GeometryGenerator.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/GeometryGenerator.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/GeometryGenerator.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,169 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.generator;
+
+import com.vividsolutions.jts.geom.*;
+
+/**
+ * This class illustrates the basic functionality and configuration options for generating spatial data.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public abstract class GeometryGenerator {
+ protected int dimensions = 2;
+ protected GeometryFactory geometryFactory; // includes srid
+ protected Envelope boundingBox;
+
+ /**
+ * @return A Geometry which uses some or all of the Bounding Box specified.
+ */
+ public abstract Geometry create();
+
+
+ /**
+ * @see GridGenerator
+ * @return A new GridGenerator
+ */
+ public static GridGenerator createGridGenerator(){
+ return new GridGenerator();
+ }
+
+ /**
+ * @see PointGenerator
+ * @return A new PointGenerator
+ */
+ public static PointGenerator createPointGenerator(){
+ return new PointGenerator();
+ }
+
+ /**
+ * @see LineStringGenerator
+ * @return A new LineStringGenerator
+ */
+ public static LineStringGenerator createLineStringGenerator(){
+ LineStringGenerator lsg = new LineStringGenerator();
+ lsg.setGenerationAlgorithm(LineStringGenerator.ARC);
+ lsg.setNumberPoints(10);
+ return lsg;
+ }
+
+ /**
+ * @see PolygonGenerator
+ * @return A new PolygonGenerator
+ */
+ public static PolygonGenerator createPolygonGenerator(){
+ PolygonGenerator pg = new PolygonGenerator();
+ pg.setGenerationAlgorithm(PolygonGenerator.ARC);
+ pg.setNumberPoints(10);
+ pg.setNumberHoles(8);
+ return pg;
+ }
+
+ /**
+ * @see PointGenerator
+ * @see MultiGenerator
+ * @return A new MultiGenerator
+ */
+ public static MultiGenerator createMultiPointGenerator(){
+ MultiGenerator mg = new MultiGenerator(createPointGenerator());
+ mg.setNumberGeometries(4);
+ return mg;
+ }
+
+ /**
+ * @see LineStringGenerator
+ * @see MultiGenerator
+ * @return A new PointGenerator
+ */
+ public static MultiGenerator createMultiLineStringGenerator(){
+ MultiGenerator mg = new MultiGenerator(createLineStringGenerator());
+ mg.setNumberGeometries(4);
+ return mg;
+ }
+
+ /**
+ * @see PolygonGenerator
+ * @see MultiGenerator
+ * @return A new PointGenerator
+ */
+ public static MultiGenerator createMultiPolygonGenerator(){
+ MultiGenerator mg = new MultiGenerator(createPolygonGenerator());
+ mg.setNumberGeometries(4);
+ return mg;
+ }
+
+ /**
+ * @return Returns the boundingBox.
+ */
+ public Envelope getBoundingBox() {
+ return boundingBox;
+ }
+
+ /**
+ * @param boundingBox The boundingBox to set.
+ */
+ public void setBoundingBox(Envelope boundingBox) {
+ this.boundingBox = boundingBox;
+ }
+
+ /**
+ * @return Returns the dimensions.
+ */
+ public int getDimensions() {
+ return dimensions;
+ }
+
+ /**
+ * @param dimensions The dimensions to set.
+ */
+ public void setDimensions(int dimensions) {
+ this.dimensions = dimensions;
+ throw new RuntimeException("Dimensions other than 2 are not yet supported");
+ }
+
+ /**
+ * @return Returns the geometryFactory.
+ */
+ public GeometryFactory getGeometryFactory() {
+ return geometryFactory;
+ }
+
+ /**
+ * @param geometryFactory The geometryFactory to set.
+ */
+ public void setGeometryFactory(GeometryFactory geometryFactory) {
+ this.geometryFactory = geometryFactory;
+ }
+
+
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/GridGenerator.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/GridGenerator.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/GridGenerator.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,175 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.generator;
+
+import java.util.NoSuchElementException;
+
+import com.vividsolutions.jts.geom.Envelope;
+import com.vividsolutions.jts.geom.Geometry;
+
+/**
+ * This class should be used to generate a grid of bounding boxes,
+ * most useful when creating multiple geometries.
+ *
+ * Successive calls to create() will walk the user though the grid.
+ * Use canCreate() and reset() to control the walk through the grid.
+ *
+ * @see #canCreate()
+ * @see #reset()
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class GridGenerator extends GeometryGenerator {
+
+ protected int numberColumns = 1;
+ protected int numberRows = 1;
+ protected int index = 0;
+
+ /**
+ * Sets some default values.
+ */
+ public GridGenerator(){
+ dimensions = 2;
+ }
+
+ /**
+ *
+ * @see com.vividsolutions.jts.generator.GeometryGenerator#create()
+ *
+ * @throws NoSuchElementException when all the grids have been created (@see #create())
+ * @throws NullPointerException when either the Geometry Factory, or the Bounding Box are undefined.
+ */
+ public Geometry create() {
+ return geometryFactory.toGeometry(createEnv());
+ }
+ /**
+ *
+ * @return Envelope
+ *
+ * @see com.vividsolutions.jts.generator.GeometryGenerator#create()
+ *
+ * @throws NoSuchElementException when all the grids have been created (@see #create())
+ * @throws NullPointerException when either the Geometry Factory, or the Bounding Box are undefined.
+ */
+ public Envelope createEnv() {
+ if(!canCreate()){
+ throw new NoSuchElementException("There are not any grids left to create.");
+ }
+ if(geometryFactory == null){
+ throw new NullPointerException("GeometryFactory is not declared");
+ }
+ if(boundingBox == null || boundingBox.isNull()){
+ throw new NullPointerException("Bounding Box is not declared");
+ }
+
+ double x = boundingBox.getMinX(); // base x
+ double dx = boundingBox.getMaxX()-x;
+
+ double y = boundingBox.getMinY(); // base y
+ double dy = boundingBox.getMaxY()-y;
+
+ int row = numberRows==1?0:index / numberRows;
+ int col = numberColumns==1?0:index % numberColumns;
+
+ double sx,sy; // size of a step
+ sx = dx/numberColumns;
+ sy = dy/numberRows;
+
+ double minx, miny;
+ minx = x+col*sx;
+ miny = y+row*sy;
+
+ Envelope box = new Envelope(geometryFactory.getPrecisionModel().makePrecise(minx),
+ geometryFactory.getPrecisionModel().makePrecise(minx+sx),
+ geometryFactory.getPrecisionModel().makePrecise(miny),
+ geometryFactory.getPrecisionModel().makePrecise(miny+sy));
+
+ index++;
+ return box;
+ }
+
+ /**
+ * @return true when more grids exist
+ */
+ public boolean canCreate(){
+ return (numberColumns*numberRows)>index;
+ }
+
+ /**
+ * Resets the grid counter
+ */
+ public void reset(){
+ index = 0;
+ }
+
+ /**
+ * @see com.vividsolutions.jts.generator.GeometryGenerator#setDimensions(int)
+ */
+ public void setDimensions(int dimensions) {
+ if(dimensions!=2)
+ throw new IllegalStateException("MAY NOT CHANGE GridGenerator's Dimensions");
+ }
+
+ /**
+ * @return Returns the numberColumns.
+ */
+ public int getNumberColumns() {
+ return numberColumns;
+ }
+
+ /**
+ * @param numberColumns The numberColumns to set.
+ */
+ public void setNumberColumns(int numberColumns) {
+ if(numberColumns<=0)
+ throw new IndexOutOfBoundsException("Index sizes must be positive, non zero");
+ this.numberColumns = numberColumns;
+ }
+
+ /**
+ * @return Returns the numberRows.
+ */
+ public int getNumberRows() {
+ return numberRows;
+ }
+
+ /**
+ * @param numberRows The numberRows to set.
+ */
+ public void setNumberRows(int numberRows) {
+ if(numberRows<=0)
+ throw new IndexOutOfBoundsException("Index sizes must be positive, non zero");
+ this.numberRows = numberRows;
+ }
+
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/LineStringGenerator.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/LineStringGenerator.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/LineStringGenerator.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,219 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.generator;
+
+import com.vividsolutions.jts.geom.*;
+import com.vividsolutions.jts.operation.valid.IsValidOp;
+
+/**
+ *
+ * This class is used to create a line string within the specified bounding box.
+ *
+ * Sucessive calls to create may or may not return the same geometry topology.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class LineStringGenerator extends GeometryGenerator {
+ protected int numberPoints = 2;
+ protected int generationAlgorithm = 0;
+
+ /**
+ * Create the points in a vertical line
+ */
+ public static final int VERT = 1;
+
+ /**
+ * Create the points in a horizontal line
+ */
+ public static final int HORZ = 2;
+
+ /**
+ * Create the points in an approximation of an open circle (one edge will not be included).
+ *
+ * Note: this requires the number of points to be greater than 2.
+ *
+ * @see #getNumberPoints()
+ * @see #setNumberPoints(int)
+ */
+ public static final int ARC = 0;
+
+ /**
+ * Number of interations attempting to create a valid line string
+ */
+ private static final int RUNS = 5;
+
+ /**
+ * As the user increases the number of points, the probability of creating a random valid linestring decreases.
+ * Please take not of this when selecting the generation style, and the number of points.
+ *
+ * May return null if a geometry could not be created.
+ *
+ * @see #getNumberPoints()
+ * @see #setNumberPoints(int)
+ * @see #getGenerationAlgorithm()
+ * @see #setGenerationAlgorithm(int)
+ *
+ * @see #VERT
+ * @see #HORZ
+ * @see #ARC
+ *
+ * @see com.vividsolutions.jts.generator.GeometryGenerator#create()
+ *
+ * @throws IllegalStateException When the alg is not valid or the number of points is invalid
+ * @throws NullPointerException when either the Geometry Factory, or the Bounding Box are undefined.
+ */
+ public Geometry create() {
+
+ if(geometryFactory == null){
+ throw new NullPointerException("GeometryFactory is not declared");
+ }
+ if(boundingBox == null || boundingBox.isNull()){
+ throw new NullPointerException("Bounding Box is not declared");
+ }
+ if(numberPoints<2){
+ throw new IllegalStateException("Too few points");
+ }
+
+ Coordinate[] coords = new Coordinate[numberPoints];
+
+ double x = boundingBox.getMinX(); // base x
+ double dx = boundingBox.getMaxX()-x;
+
+ double y = boundingBox.getMinY(); // base y
+ double dy = boundingBox.getMaxY()-y;
+
+
+ for(int i=0;i<RUNS;i++){
+ switch(getGenerationAlgorithm()){
+ case VERT:
+ fillVert(x,dx,y,dy,coords,geometryFactory);
+ break;
+ case HORZ:
+ fillHorz(x,dx,y,dy,coords,geometryFactory);
+ break;
+ case ARC:
+ fillArc(x,dx,y,dy,coords,geometryFactory);
+ break;
+ default:
+ throw new IllegalStateException("Invalid Alg. Specified");
+ }
+
+ LineString ls = geometryFactory.createLineString(coords);
+ IsValidOp valid = new IsValidOp(ls);
+ if(valid.isValid()){
+ return ls;
+ }
+ }
+ return null;
+ }
+
+ private static void fillVert(double x, double dx, double y, double dy, Coordinate[] coords, GeometryFactory gf){
+ double fx = x+Math.random()*dx;
+ double ry = dy; // remainder of y distance
+ coords[0] = new Coordinate(fx,y);
+ gf.getPrecisionModel().makePrecise(coords[0]);
+ for(int i=1;i<coords.length-1;i++){
+ ry -= Math.random()*ry;
+ coords[i] = new Coordinate(fx,y+dy-ry);
+ gf.getPrecisionModel().makePrecise(coords[i]);
+ }
+ coords[coords.length-1] = new Coordinate(fx,y+dy);
+ gf.getPrecisionModel().makePrecise(coords[coords.length-1]);
+ }
+
+ private static void fillHorz(double x, double dx, double y, double dy, Coordinate[] coords, GeometryFactory gf){
+ double fy = y+Math.random()*dy;
+ double rx = dx; // remainder of x distance
+ coords[0] = new Coordinate(x,fy);
+ gf.getPrecisionModel().makePrecise(coords[0]);
+ for(int i=1;i<coords.length-1;i++){
+ rx -= Math.random()*rx;
+ coords[i] = new Coordinate(x+dx-rx,fy);
+ gf.getPrecisionModel().makePrecise(coords[i]);
+ }
+ coords[coords.length-1] = new Coordinate(x+dx,fy);
+ gf.getPrecisionModel().makePrecise(coords[coords.length-1]);
+ }
+
+ private static void fillArc(double x, double dx, double y, double dy, Coordinate[] coords, GeometryFactory gf){
+ if(coords.length == 2)
+ throw new IllegalStateException("Too few points for Arc");
+
+ double theta = 360/coords.length;
+ double start = theta/2;
+
+ double radius = dx<dy?dx/3:dy/3;
+
+ double cx = x+(dx/2); // center
+ double cy = y+(dy/2); // center
+
+ for(int i=0;i<coords.length;i++){
+ double angle = Math.toRadians(start+theta*i);
+
+ double fx = Math.sin(angle)*radius; // may be neg.
+ double fy = Math.cos(angle)*radius; // may be neg.
+
+ coords[i] = new Coordinate(cx+fx,cy+fy);
+ gf.getPrecisionModel().makePrecise(coords[i]);
+ }
+ }
+
+ /**
+ * @return Returns the numberPoints.
+ */
+ public int getNumberPoints() {
+ return numberPoints;
+ }
+
+ /**
+ * @param numberPoints The numberPoints to set.
+ */
+ public void setNumberPoints(int numberPoints) {
+ this.numberPoints = numberPoints;
+ }
+
+ /**
+ * @return Returns the generationAlgorithm.
+ */
+ public int getGenerationAlgorithm() {
+ return generationAlgorithm;
+ }
+
+ /**
+ * @param generationAlgorithm The generationAlgorithm to set.
+ */
+ public void setGenerationAlgorithm(int generationAlgorithm) {
+ this.generationAlgorithm = generationAlgorithm;
+ }
+
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/MultiGenerator.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/MultiGenerator.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/MultiGenerator.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,190 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.generator;
+
+import java.util.ArrayList;
+
+import com.vividsolutions.jts.geom.*;
+
+/**
+ *
+ * Cascades the effort of creating a set of topologically valid geometries.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class MultiGenerator extends GeometryGenerator {
+
+ private GeometryGenerator generator = null;
+ private int numberGeometries = 2;
+ private int generationAlgorithm = 0;
+
+ /**
+ * Grid style blocks
+ */
+ public static final int BOX = 0;
+ /**
+ * vertical strips
+ */
+ public static final int VERT = 1;
+ /**
+ * Horizontal strips
+ */
+ public static final int HORZ = 2;
+
+ /**
+ * @param generator
+ */
+ public MultiGenerator(GeometryGenerator generator) {
+ this.generator = generator;
+ }
+
+ /**
+ * Creates a geometry collection representing the set of child geometries created.
+ *
+ * @see #setNumberGeometries(int)
+ * @see com.vividsolutions.jts.generator.GeometryGenerator#create()
+ *
+ * @see #BOX
+ * @see #VERT
+ * @see #HORZ
+ *
+ * @throws NullPointerException when the generator is missing
+ * @throws IllegalStateException when the number of child geoms is too small
+ * @throws IllegalStateException when the selected alg. is invalid
+ */
+ public Geometry create() {
+ if(generator == null)
+ throw new NullPointerException("Missing child generator");
+
+ if(numberGeometries < 1)
+ throw new IllegalStateException("Too few child geoms to create");
+
+ ArrayList geoms = new ArrayList(numberGeometries);
+
+ GridGenerator grid = GeometryGenerator.createGridGenerator();
+ grid.setBoundingBox(boundingBox);
+ grid.setGeometryFactory(geometryFactory);
+
+ switch(generationAlgorithm){
+ case BOX:
+
+ int nrow = (int)Math.sqrt(numberGeometries);
+ int ncol = numberGeometries/nrow;
+ grid.setNumberRows(nrow);
+ grid.setNumberColumns(ncol);
+
+ break;
+ case VERT:
+
+ grid.setNumberRows(1);
+ grid.setNumberColumns(numberGeometries);
+
+ break;
+ case HORZ:
+
+ grid.setNumberRows(numberGeometries);
+ grid.setNumberColumns(1);
+
+ break;
+ default:
+ throw new IllegalStateException("Invalid Alg. Specified");
+ }
+
+ while(grid.canCreate()){
+ generator.setBoundingBox(grid.createEnv());
+ geoms.add(generator.create());
+ }
+
+ // yes ... there are better ways
+ if(generator instanceof PointGenerator){
+ return geometryFactory.createMultiPoint((Point[]) geoms.toArray(new Point[numberGeometries]));
+ }else{
+ if(generator instanceof LineStringGenerator){
+ return geometryFactory.createMultiLineString((LineString[]) geoms.toArray(new LineString[numberGeometries]));
+ }else{
+ if(generator instanceof PolygonGenerator){
+ return geometryFactory.createMultiPolygon((Polygon[]) geoms.toArray(new Polygon[numberGeometries]));
+ }else{
+ // same as multi
+ return geometryFactory.createGeometryCollection((Geometry[]) geoms.toArray(new Geometry[numberGeometries]));
+ }}}
+ }
+
+ /**
+ * @return Returns the numberGeometries.
+ */
+ public int getNumberGeometries() {
+ return numberGeometries;
+ }
+
+ /**
+ * @param numberGeometries The numberGeometries to set.
+ */
+ public void setNumberGeometries(int numberGeometries) {
+ this.numberGeometries = numberGeometries;
+ }
+
+ /**
+ * @return Returns the generator.
+ */
+ public GeometryGenerator getGenerator() {
+ return generator;
+ }
+
+ /**
+ * @see com.vividsolutions.jts.generator.GeometryGenerator#setBoundingBox(com.vividsolutions.jts.geom.Envelope)
+ */
+ public void setBoundingBox(Envelope boundingBox) {
+ super.setBoundingBox(boundingBox);
+ if(generator!=null)
+ generator.setBoundingBox(boundingBox);
+ }
+
+ /**
+ * @see com.vividsolutions.jts.generator.GeometryGenerator#setDimensions(int)
+ */
+ public void setDimensions(int dimensions) {
+ super.setDimensions(dimensions);
+ if(generator!=null)
+ generator.setDimensions(dimensions);
+ }
+
+ /**
+ * @see com.vividsolutions.jts.generator.GeometryGenerator#setGeometryFactory(com.vividsolutions.jts.geom.GeometryFactory)
+ */
+ public void setGeometryFactory(GeometryFactory geometryFactory) {
+ super.setGeometryFactory(geometryFactory);
+ if(generator!=null)
+ generator.setGeometryFactory(geometryFactory);
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/PointGenerator.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/PointGenerator.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/PointGenerator.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,65 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.generator;
+
+import com.vividsolutions.jts.geom.Geometry;
+import com.vividsolutions.jts.geom.Point;
+
+/**
+ *
+ * Creates a point based on the bounding box.
+ *
+ * This implementation returns the centroid.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class PointGenerator extends GeometryGenerator {
+
+ /**
+ * @see com.vividsolutions.jts.generator.GeometryGenerator#create()
+ * @throws NullPointerException when either the Geometry Factory, or the Bounding Box are undefined.
+ */
+ public Geometry create() {
+ if(geometryFactory == null){
+ throw new NullPointerException("GeometryFactory is not declared");
+ }
+ if(boundingBox == null || boundingBox.isNull()){
+ throw new NullPointerException("Bounding Box is not declared");
+ }
+
+ Point p = geometryFactory.toGeometry(boundingBox).getCentroid();
+ geometryFactory.getPrecisionModel().makePrecise(p.getCoordinate());
+ return p;
+ }
+
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/PolygonGenerator.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/PolygonGenerator.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/generator/PolygonGenerator.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,328 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.generator;
+
+import com.vividsolutions.jts.geom.*;
+import com.vividsolutions.jts.geom.Geometry;
+import com.vividsolutions.jts.operation.valid.IsValidOp;
+
+/**
+ *
+ * This class is used to create a polygon within the specified bounding box.
+ *
+ * Sucessive calls to create may or may not return the same geometry topology.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class PolygonGenerator extends GeometryGenerator {
+ protected int numberPoints = 4;
+ protected int numberHoles = 0;
+ protected int generationAlgorithm = 0;
+
+ /**
+ * Creates rectangular polygons
+ */
+ public static final int BOX = 0;
+
+ /**
+ * Creates polygons whose points will not be rectangular when there are more than 4 points
+ */
+ public static final int ARC = 1;
+
+ private static final int RUNS = 5;
+
+ /**
+ * As the user increases the number of points, the probability of creating a random valid polygon decreases.
+ * Please take not of this when selecting the generation style, and the number of points.
+ *
+ * May return null if a geometry could not be created.
+ *
+ * @see #getNumberPoints()
+ * @see #setNumberPoints(int)
+ * @see #getGenerationAlgorithm()
+ * @see #setGenerationAlgorithm(int)
+ *
+ * @see #BOX
+ * @see #ARC
+ *
+ * @see com.vividsolutions.jts.generator.GeometryGenerator#create()
+ *
+ * @throws IllegalStateException When the alg is not valid or the number of points is invalid
+ * @throws NullPointerException when either the Geometry Factory, or the Bounding Box are undefined.
+ */
+ public Geometry create() {
+
+ if(geometryFactory == null){
+ throw new NullPointerException("GeometryFactory is not declared");
+ }
+ if(boundingBox == null || boundingBox.isNull()){
+ throw new NullPointerException("Bounding Box is not declared");
+ }
+ if(numberPoints<4){
+ throw new IllegalStateException("Too few points");
+ }
+
+ double x = boundingBox.getMinX(); // base x
+ double dx = boundingBox.getMaxX()-x;
+
+ double y = boundingBox.getMinY(); // base y
+ double dy = boundingBox.getMaxY()-y;
+
+ Polygon p = null;
+
+ for(int i=0;i<RUNS;i++){
+ switch(getGenerationAlgorithm()){
+ case BOX:
+ p = createBox(x,dx,y,dy,numberHoles,numberPoints,geometryFactory);
+ break;
+ case ARC:
+ p = createArc(x,dx,y,dy,numberHoles,numberPoints,geometryFactory);
+ break;
+ default:
+ throw new IllegalStateException("Invalid Alg. Specified");
+ }
+
+ IsValidOp valid = new IsValidOp(p);
+ if(valid.isValid()){
+ return p;
+ }
+ }
+ return null;
+ }
+
+ private static Polygon createArc(double x, double dx, double y, double dy, int nholes, int npoints, GeometryFactory gf){
+ // make outer ring first
+ double radius = dx<dy?dx/3:dy/3;
+
+ double cx = x+(dx/2); // center
+ double cy = y+(dy/2); // center
+
+ LinearRing outer = createArc(cx,cy,radius,npoints,gf);
+
+ if(nholes == 0){
+ return gf.createPolygon(outer,null);
+ }
+
+ LinearRing[] inner = new LinearRing[nholes];
+
+ radius *= .75;
+ int degreesPerHole = 360/(nholes+1);
+ int degreesPerGap = degreesPerHole/nholes;
+ degreesPerGap = degreesPerGap<2?2:degreesPerGap;
+ degreesPerHole = (360-(degreesPerGap*nholes))/nholes;
+
+ if(degreesPerHole < 2)
+ throw new RuntimeException("Slices too small for poly. Use Box alg.");
+
+ int start = degreesPerGap/2;
+ for(int i=0;i<nholes;i++){
+ int st = start+(i*(degreesPerHole+degreesPerGap)); // start angle
+ inner[i] = createTri(cx,cy,st,st+degreesPerHole,radius,gf);
+ }
+
+
+ return gf.createPolygon(outer,inner);
+ }
+
+ private static LinearRing createTri(double cx, double cy ,int startAngle, int endAngle, double radius, GeometryFactory gf){
+
+ Coordinate[] coords = new Coordinate[4];
+
+ double fx1,fx2,fy1,fy2;
+
+ double angle = Math.toRadians(startAngle);
+ fx1 = Math.sin(angle)*radius; // may be neg.
+ fy1 = Math.cos(angle)*radius; // may be neg.
+
+ angle = Math.toRadians(endAngle);
+ fx2 = Math.sin(angle)*radius; // may be neg.
+ fy2 = Math.cos(angle)*radius; // may be neg.
+
+ coords[0] = new Coordinate(cx,cy);
+ gf.getPrecisionModel().makePrecise(coords[0]);
+ coords[1] = new Coordinate(cx+fx1,cy+fy1);
+ gf.getPrecisionModel().makePrecise(coords[1]);
+ coords[2] = new Coordinate(cx+fx2,cy+fy2);
+ gf.getPrecisionModel().makePrecise(coords[2]);
+ coords[3] = new Coordinate(cx,cy);
+ gf.getPrecisionModel().makePrecise(coords[3]);
+
+ return gf.createLinearRing(coords);
+ }
+
+ private static LinearRing createArc(double cx, double cy ,double radius, int npoints, GeometryFactory gf){
+
+ Coordinate[] coords = new Coordinate[npoints+1];
+
+ double theta = 360/npoints;
+
+ for(int i=0;i<npoints;i++){
+ double angle = Math.toRadians(theta*i);
+
+ double fx = Math.sin(angle)*radius; // may be neg.
+ double fy = Math.cos(angle)*radius; // may be neg.
+
+ coords[i] = new Coordinate(cx+fx,cy+fy);
+ gf.getPrecisionModel().makePrecise(coords[i]);
+ }
+
+ coords[npoints] = new Coordinate(coords[0]);
+ gf.getPrecisionModel().makePrecise(coords[npoints]);
+
+ return gf.createLinearRing(coords);
+ }
+
+ private static Polygon createBox(double x, double dx, double y, double dy, int nholes, int npoints, GeometryFactory gf){
+ // make outer ring first
+ LinearRing outer = createBox(x,dx,y,dy,npoints,gf);
+
+ if(nholes == 0){
+ return gf.createPolygon(outer,null);
+ }
+
+ LinearRing[] inner = new LinearRing[nholes];
+
+ int nrow = (int)Math.sqrt(nholes);
+ int ncol = nholes/nrow;
+
+ double ddx = dx/(ncol+1);
+ double ddy = dy/(nrow+1);
+
+ // spacers
+ double spx = ddx/(ncol+1);
+ double spy = ddy/(nrow+1);
+
+ // should have more grids than required
+ int cindex = 0;
+ for(int i=0;i<nrow;i++){
+ for(int j=0;j<ncol;j++){
+ if(cindex<nholes){
+ // make another box
+ int pts = npoints/2;
+ pts = pts<4?4:pts;
+
+ inner[cindex++] = createBox(spx+x+j*(ddx+spx),ddx,spy+y+i*(ddy+spy),ddy,pts,gf);
+ }
+ }
+ }
+
+ return gf.createPolygon(outer,inner);
+ }
+
+ private static LinearRing createBox(double x, double dx, double y, double dy, int npoints, GeometryFactory gf){
+
+ //figure out the number of points per side
+ int ptsPerSide = npoints/4;
+ int rPtsPerSide = npoints%4;
+ Coordinate[] coords = new Coordinate[npoints+1];
+ coords[0] = new Coordinate(x,y); // start
+ gf.getPrecisionModel().makePrecise(coords[0]);
+
+ int cindex = 1;
+ for(int i=0;i<4;i++){ // sides
+ int npts = ptsPerSide+(rPtsPerSide-->0?1:0);
+ // npts atleast 1
+
+ if(i%2 == 1){ // odd vert
+ double cy = dy/npts;
+ if(i > 1) // down
+ cy *=-1;
+ double tx = coords[cindex-1].x;
+ double sy = coords[cindex-1].y;
+
+ for(int j=0;j<npts;j++){
+ coords[cindex] = new Coordinate(tx,sy+(j+1)*cy);
+ gf.getPrecisionModel().makePrecise(coords[cindex++]);
+ }
+ }else{ // even horz
+ double cx = dx/npts;
+ if(i > 1) // down
+ cx *=-1;
+ double ty = coords[cindex-1].y;
+ double sx = coords[cindex-1].x;
+
+ for(int j=0;j<npts;j++){
+ coords[cindex] = new Coordinate(sx+(j+1)*cx,ty);
+ gf.getPrecisionModel().makePrecise(coords[cindex++]);
+ }
+ }
+ }
+ coords[npoints] = new Coordinate(x,y); // end
+ gf.getPrecisionModel().makePrecise(coords[npoints]);
+
+ return gf.createLinearRing(coords);
+ }
+
+ /**
+ * @return Returns the generationAlgorithm.
+ */
+ public int getGenerationAlgorithm() {
+ return generationAlgorithm;
+ }
+
+ /**
+ * @param generationAlgorithm The generationAlgorithm to set.
+ */
+ public void setGenerationAlgorithm(int generationAlgorithm) {
+ this.generationAlgorithm = generationAlgorithm;
+ }
+
+ /**
+ * @return Returns the numberHoles.
+ */
+ public int getNumberHoles() {
+ return numberHoles;
+ }
+
+ /**
+ * @param numberHoles The numberHoles to set.
+ */
+ public void setNumberHoles(int numberHoles) {
+ this.numberHoles = numberHoles;
+ }
+
+ /**
+ * @return Returns the numberPoints.
+ */
+ public int getNumberPoints() {
+ return numberPoints;
+ }
+
+ /**
+ * @param numberPoints The numberPoints to set.
+ */
+ public void setNumberPoints(int numberPoints) {
+ this.numberPoints = numberPoints;
+ }
+
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/GMLReaderTestCase.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/GMLReaderTestCase.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/GMLReaderTestCase.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,146 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.gml2;
+
+import java.io.FileReader;
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.xml.sax.SAXException;
+
+import com.vividsolutions.jts.geom.*;
+
+import junit.framework.TestCase;
+
+public class GMLReaderTestCase extends TestCase {
+
+ public GMLReaderTestCase(String arg0) {
+ super(arg0);
+ // TODO Auto-generated constructor stub
+ }
+
+ protected static PrecisionModel precisionModel = new PrecisionModel(1000);
+ protected static GeometryFactory geometryFactory = new GeometryFactory(precisionModel);
+
+ public void testPointRead() throws SAXException, IOException, ParserConfigurationException{
+ FileReader fr = new FileReader("./jtsio/test/data/points.xml");
+
+ GMLReader gr = new GMLReader();
+ Geometry g = gr.read(fr,geometryFactory);
+
+ GeometryCollection gc = (GeometryCollection)g;
+ assertTrue(gc.getNumGeometries() == 25);
+
+ for(int i=0;i<25;i++){
+ Point p = (Point) gc.getGeometryN(i);
+ assertNotNull(p);
+ }
+ }
+
+ public void testLineStringRead() throws SAXException, IOException, ParserConfigurationException{
+ FileReader fr = new FileReader("./jtsio/test/data/linestrings.xml");
+
+ GMLReader gr = new GMLReader();
+ Geometry g = gr.read(fr,geometryFactory);
+
+ GeometryCollection gc = (GeometryCollection)g;
+ assertTrue(gc.getNumGeometries() == 25);
+
+ for(int i=0;i<25;i++){
+ LineString ls = (LineString) gc.getGeometryN(i);
+ assertNotNull(ls);
+ }
+ }
+
+ public void testPolygonRead() throws SAXException, IOException, ParserConfigurationException{
+ FileReader fr = new FileReader("./jtsio/test/data/polygons.xml");
+
+ GMLReader gr = new GMLReader();
+ Geometry g = gr.read(fr,geometryFactory);
+
+ GeometryCollection gc = (GeometryCollection)g;
+ assertTrue(gc.getNumGeometries() == 25);
+
+ for(int i=0;i<25;i++){
+ Polygon p = (Polygon) gc.getGeometryN(i);
+ assertNotNull(p);
+ }
+ }
+
+ public void testMultiPointRead() throws SAXException, IOException, ParserConfigurationException{
+ FileReader fr = new FileReader("./jtsio/test/data/multipoints.xml");
+
+ GMLReader gr = new GMLReader();
+ Geometry g = gr.read(fr,geometryFactory);
+
+ GeometryCollection gc = (GeometryCollection)g;
+ assertTrue(gc.getNumGeometries() == 25);
+
+ for(int i=0;i<25;i++){
+ MultiPoint p = (MultiPoint) gc.getGeometryN(i);
+ assertNotNull(p);
+ }
+ }
+
+ public void testMultiLineStringRead() throws SAXException, IOException, ParserConfigurationException{
+ FileReader fr = new FileReader("./jtsio/test/data/multilinestrings.xml");
+
+ GMLReader gr = new GMLReader();
+ Geometry g = gr.read(fr,geometryFactory);
+
+ GeometryCollection gc = (GeometryCollection)g;
+ assertTrue(gc.getNumGeometries() == 25);
+
+ for(int i=0;i<25;i++){
+ MultiLineString ls = (MultiLineString) gc.getGeometryN(i);
+ assertNotNull(ls);
+ }
+ }
+
+ public void testMultiPolygonRead() throws SAXException, IOException, ParserConfigurationException{
+ FileReader fr = new FileReader("./jtsio/test/data/multipolygons.xml");
+
+ GMLReader gr = new GMLReader();
+ Geometry g = gr.read(fr,geometryFactory);
+
+ GeometryCollection gc = (GeometryCollection)g;
+ assertTrue(gc.getNumGeometries() == 25);
+
+ for(int i=0;i<25;i++){
+ MultiPolygon p = (MultiPolygon) gc.getGeometryN(i);
+ assertNotNull(p);
+ }
+ }
+
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticLineStringTest.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticLineStringTest.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticLineStringTest.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,118 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.gml2;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.sql.SQLException;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.xml.sax.SAXException;
+
+import com.vividsolutions.jts.generator.*;
+import com.vividsolutions.jts.geom.*;
+
+/**
+ *
+ * Does round trip testing by creating the oracle object, then decoding it.
+ *
+ * These tests do not include insert / delete / select operations.
+ *
+ * NOTE: This test does require a precision to be used during the comparison,
+ * as points are rounded somewhat when creating the oracle struct.
+ * (One less decimal than a java double).
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class StaticLineStringTest extends WritingTestCase {
+
+ /**
+ * @param arg
+ */
+ public StaticLineStringTest(String arg) {
+ super(arg);
+ }
+
+ /**
+ * Round Trip test for a single line string
+ * @throws ParserConfigurationException
+ * @throws IOException
+ * @throws SAXException
+ */
+ public void testSingleLineStringRoundTrip() throws SAXException, IOException, ParserConfigurationException{
+ LineStringGenerator pg = new LineStringGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberPoints(10);
+
+ LineString pt = (LineString) pg.create();
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix("");
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ LineString pt2 = (LineString) in.read(getReader(),geometryFactory);
+
+// System.out.println(pt);
+// System.out.println(pt2);
+ assertTrue("The input LineString is not the same as the output LineString",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a single line string with lotsa points
+ * @throws ParserConfigurationException
+ * @throws IOException
+ * @throws SAXException
+ */
+ public void testSingleLineStringManyPointRoundTrip() throws SAXException, IOException, ParserConfigurationException{
+ LineStringGenerator pg = new LineStringGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setGenerationAlgorithm(LineStringGenerator.HORZ);
+ pg.setNumberPoints(1000);
+
+ LineString pt = (LineString) pg.create();
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix("");
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ LineString pt2 = (LineString) in.read(getReader(),geometryFactory);
+
+ assertTrue("The input LineString is not the same as the output LineString",pt.equals(pt2));
+ }
+}
+
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticMultiLineStringTest.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticMultiLineStringTest.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticMultiLineStringTest.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,128 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.gml2;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.xml.sax.SAXException;
+
+import com.vividsolutions.jts.generator.LineStringGenerator;
+import com.vividsolutions.jts.generator.MultiGenerator;
+import com.vividsolutions.jts.geom.Envelope;
+import com.vividsolutions.jts.geom.MultiLineString;
+
+/**
+ *
+ * Does round trip testing by creating the oracle object, then decoding it.
+ *
+ * These tests do not include insert / delete / select operations.
+ *
+ * NOTE: This test does require a precision to be used during the comparison,
+ * as points are rounded somewhat when creating the oracle struct.
+ * (One less decimal than a java double).
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class StaticMultiLineStringTest extends WritingTestCase {
+
+ /**
+ * @param arg
+ */
+ public StaticMultiLineStringTest(String arg) {
+ super(arg);
+ }
+
+ /**
+ * Round Trip test for a single line string
+ * @throws ParserConfigurationException
+ * @throws IOException
+ * @throws SAXException
+ */
+ public void testSingleMultiLineStringRoundTrip() throws SAXException, IOException, ParserConfigurationException{
+ LineStringGenerator pgc = new LineStringGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setNumberPoints(10);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiLineString pt = (MultiLineString) pg.create();
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix(null);
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ MultiLineString pt2 = (MultiLineString) in.read(getReader(),geometryFactory);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiLineString is not the same as the output MultiLineString",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a single line string with lotsa points
+ * @throws IOException
+ * @throws ParserConfigurationException
+ * @throws SAXException
+ */
+ public void testSingleMultiLineStringManyPointRoundTrip() throws IOException, SAXException, ParserConfigurationException{
+
+ LineStringGenerator pgc = new LineStringGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setNumberPoints(1000);
+ pgc.setGenerationAlgorithm(LineStringGenerator.HORZ);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiLineString pt = (MultiLineString) pg.create();
+// System.out.println((pt==null?"NULL":pt.toString()));
+
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix(null);
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ MultiLineString pt2 = (MultiLineString) in.read(getReader(),geometryFactory);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiLineString is not the same as the output MultiLineString",pt.equals(pt2));
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticMultiPointTest.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticMultiPointTest.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticMultiPointTest.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,90 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.gml2;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.xml.sax.SAXException;
+
+import com.vividsolutions.jts.generator.MultiGenerator;
+import com.vividsolutions.jts.generator.PointGenerator;
+import com.vividsolutions.jts.geom.Envelope;
+import com.vividsolutions.jts.geom.MultiPoint;
+
+/**
+ *
+ * Does round trip testing by creating the oracle object, then decoding it.
+ *
+ * These tests do not include insert / delete / select operations.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class StaticMultiPointTest extends WritingTestCase {
+
+ /**
+ * @param arg
+ */
+ public StaticMultiPointTest(String arg) {
+ super(arg);
+ }
+
+ /**
+ * Round Trip test for a single MultiPoint
+ * @throws ParserConfigurationException
+ * @throws IOException
+ * @throws SAXException
+ */
+ public void testSingleMultiPointRoundTrip() throws SAXException, IOException, ParserConfigurationException{
+ PointGenerator pgc = new PointGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiPoint pt = (MultiPoint) pg.create();
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix(null);
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ MultiPoint pt2 = (MultiPoint) in.read(getReader(),geometryFactory);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPoint is not the same as the output MultiPoint",pt.equals(pt2));
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticMultiPolygonTest.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticMultiPolygonTest.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticMultiPolygonTest.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,226 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.gml2;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.xml.sax.SAXException;
+
+import com.vividsolutions.jts.generator.MultiGenerator;
+import com.vividsolutions.jts.generator.PolygonGenerator;
+import com.vividsolutions.jts.geom.Envelope;
+import com.vividsolutions.jts.geom.MultiPolygon;
+
+/**
+ *
+ * Does round trip testing by creating the oracle object, then decoding it.
+ *
+ * These tests do not include insert / delete / select operations.
+ *
+ * NOTE: This test does require a precision to be used during the comparison,
+ * as points are rounded somewhat when creating the oracle struct.
+ * (One less decimal than a java double).
+ *
+ * NOTE: The points may be re-ordered during these tests.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class StaticMultiPolygonTest extends WritingTestCase {
+
+ /**
+ * @param arg
+ */
+ public StaticMultiPolygonTest(String arg) {
+ super(arg);
+ }
+
+ /**
+ * Round Trip test for a single MultiPolygon
+ * @throws ParserConfigurationException
+ * @throws IOException
+ * @throws SAXException
+ */
+ public void testSingleMultiPolygonNoHoleRoundTrip() throws SAXException, IOException, ParserConfigurationException{
+ PolygonGenerator pgc = new PolygonGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setNumberPoints(10);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiPolygon pt = (MultiPolygon) pg.create();
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix(null);
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ MultiPolygon pt2 = (MultiPolygon) in.read(getReader(),geometryFactory);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPolygon is not the same as the output MultiPolygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a single MultiPolygon with lotsa points
+ * @throws ParserConfigurationException
+ * @throws IOException
+ * @throws SAXException
+ */
+ public void testSingleMultiPolygonManyPointsNoHoleRoundTrip() throws SAXException, IOException, ParserConfigurationException{
+
+ PolygonGenerator pgc = new PolygonGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pgc.setNumberPoints(1000);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiPolygon pt = (MultiPolygon) pg.create();
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix(null);
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ MultiPolygon pt2 = (MultiPolygon) in.read(getReader(),geometryFactory);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPolygon is not the same as the output MultiPolygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a single MultiPolygon
+ * @throws ParserConfigurationException
+ * @throws IOException
+ * @throws SAXException
+ */
+ public void testSingleMultiPolygonHolesRoundTrip() throws SAXException, IOException, ParserConfigurationException{
+
+ PolygonGenerator pgc = new PolygonGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pgc.setNumberPoints(10);
+ pgc.setNumberHoles(4);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiPolygon pt = (MultiPolygon) pg.create();
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix(null);
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ MultiPolygon pt2 = (MultiPolygon) in.read(getReader(),geometryFactory);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPolygon is not the same as the output MultiPolygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a single MultiPolygon with lotsa points
+ * @throws ParserConfigurationException
+ * @throws IOException
+ * @throws SAXException
+ */
+ public void testSingleMultiPolygonManyPointsHolesRoundTrip() throws SAXException, IOException, ParserConfigurationException{
+
+ PolygonGenerator pgc = new PolygonGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pgc.setNumberPoints(1000);
+ pgc.setNumberHoles(4);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiPolygon pt = (MultiPolygon) pg.create();
+// System.out.println((pt==null?"NULL":pt.toString()));
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix(null);
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ MultiPolygon pt2 = (MultiPolygon) in.read(getReader(),geometryFactory);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPolygon is not the same as the output MultiPolygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a single MultiPolygon with lotsa points
+ * @throws ParserConfigurationException
+ * @throws IOException
+ * @throws SAXException
+ */
+ public void testSingleMultiPolygonManyPointsManyHolesRoundTrip() throws SAXException, IOException, ParserConfigurationException{
+
+ PolygonGenerator pgc = new PolygonGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pgc.setNumberPoints(100);
+ pgc.setNumberHoles(100);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiPolygon pt = (MultiPolygon) pg.create();
+// System.out.println((pt==null?"NULL":pt.toString()));
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix(null);
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ MultiPolygon pt2 = (MultiPolygon) in.read(getReader(),geometryFactory);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPolygon is not the same as the output MultiPolygon",pt.equals(pt2));
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticPointTest.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticPointTest.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticPointTest.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,86 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.gml2;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.xml.sax.SAXException;
+
+import com.vividsolutions.jts.generator.PointGenerator;
+import com.vividsolutions.jts.geom.Envelope;
+import com.vividsolutions.jts.geom.Point;
+
+/**
+ *
+ * Does round trip testing by creating the oracle object, then decoding it.
+ *
+ * These tests do not include insert / delete / select operations.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class StaticPointTest extends WritingTestCase {
+
+ /**
+ * @param arg
+ */
+ public StaticPointTest(String arg) {
+ super(arg);
+ }
+
+ /**
+ * Round Trip test for a single point
+ * @throws ParserConfigurationException
+ * @throws IOException
+ * @throws SAXException
+ */
+ public void testSinglePointRoundTrip() throws SAXException, IOException, ParserConfigurationException{
+ PointGenerator pg = new PointGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+
+ Point pt = (Point) pg.create();
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix(null);
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ Point pt2 = (Point) in.read(getReader(),geometryFactory);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input Point is not the same as the output Point",pt.equals(pt2));
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticPolygonTest.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticPolygonTest.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/StaticPolygonTest.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,195 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.gml2;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.xml.sax.SAXException;
+
+import com.vividsolutions.jts.generator.PolygonGenerator;
+import com.vividsolutions.jts.geom.Envelope;
+import com.vividsolutions.jts.geom.Polygon;
+
+/**
+ *
+ * Does round trip testing by creating the oracle object, then decoding it.
+ *
+ * These tests do not include insert / delete / select operations.
+ *
+ * NOTE: This test does require a precision to be used during the comparison,
+ * as points are rounded somewhat when creating the oracle struct.
+ * (One less decimal than a java double).
+ *
+ * NOTE: The points may be re-ordered during these tests.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class StaticPolygonTest extends WritingTestCase {
+
+ /**
+ * @param arg
+ */
+ public StaticPolygonTest(String arg) {
+ super(arg);
+ }
+
+ /**
+ * Round Trip test for a single polygon
+ * @throws IOException
+ * @throws ParserConfigurationException
+ * @throws SAXException
+ */
+ public void testSinglePolygonNoHoleRoundTrip() throws IOException, SAXException, ParserConfigurationException{
+ PolygonGenerator pg = new PolygonGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberPoints(10);
+
+ Polygon pt = (Polygon) pg.create();
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix("");
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ Polygon pt2 = (Polygon) in.read(getReader(),geometryFactory);
+
+ assertTrue("The input polygon is not the same as the output polygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a single polygon with lotsa points
+ * @throws IOException
+ * @throws ParserConfigurationException
+ * @throws SAXException
+ */
+ public void testSinglePolygonManyPointsNoHoleRoundTrip() throws IOException, SAXException, ParserConfigurationException{
+ PolygonGenerator pg = new PolygonGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pg.setNumberPoints(1000);
+
+ Polygon pt = (Polygon) pg.create();
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix("");
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ Polygon pt2 = (Polygon) in.read(getReader(),geometryFactory);
+
+ assertTrue("The input polygon is not the same as the output polygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a single polygon
+ * @throws ParserConfigurationException
+ * @throws IOException
+ * @throws SAXException
+ */
+ public void testSinglePolygonHolesRoundTrip() throws SAXException, IOException, ParserConfigurationException{
+ PolygonGenerator pg = new PolygonGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberPoints(10);
+ pg.setNumberHoles(4);
+
+ Polygon pt = (Polygon) pg.create();
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix("");
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ Polygon pt2 = (Polygon) in.read(getReader(),geometryFactory);
+
+// System.out.println(pt);
+// System.out.println(pt2);
+ assertTrue("The input polygon is not the same as the output polygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a single polygon with lotsa points
+ * @throws ParserConfigurationException
+ * @throws IOException
+ * @throws SAXException
+ */
+ public void testSinglePolygonManyPointsHolesRoundTrip() throws SAXException, IOException, ParserConfigurationException{
+ PolygonGenerator pg = new PolygonGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pg.setNumberPoints(1000);
+ pg.setNumberHoles(4);
+
+ Polygon pt = (Polygon) pg.create();
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix("");
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ Polygon pt2 = (Polygon) in.read(getReader(),geometryFactory);
+
+ assertTrue("The input polygon is not the same as the output polygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a single polygon with lotsa points
+ * @throws ParserConfigurationException
+ * @throws IOException
+ * @throws SAXException
+ */
+ public void testSinglePolygonManyPointsManyHolesRoundTrip() throws SAXException, IOException, ParserConfigurationException{
+ PolygonGenerator pg = new PolygonGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pg.setNumberPoints(100);
+ pg.setNumberHoles(100);
+
+ Polygon pt = (Polygon) pg.create();
+
+ GMLWriter out = new GMLWriter();
+ out.setPrefix("");
+ out.write(pt,getWriter());
+
+ GMLReader in = new GMLReader();
+ Polygon pt2 = (Polygon) in.read(getReader(),geometryFactory);
+
+ assertTrue("The input polygon is not the same as the output polygon",pt.equals(pt2));
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/WritingTestCase.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/WritingTestCase.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/WritingTestCase.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,77 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.gml2;
+
+import java.io.*;
+
+import com.vividsolutions.jts.geom.GeometryFactory;
+import com.vividsolutions.jts.geom.PrecisionModel;
+
+import junit.framework.TestCase;
+
+/**
+ *
+ * Abstract Test Case. Intended to provide some IO operations for the middle of a test.
+ *
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class WritingTestCase extends TestCase {
+
+ /**
+ * @param arg
+ */
+ public WritingTestCase(String arg){
+ super(arg);
+ }
+
+ protected StringWriter sw = null;
+ protected Writer getWriter(){
+ sw = new StringWriter();
+ sw.write("<?xml version='1.0' encoding='UTF-8'?>\n");
+ return sw;
+ }
+ protected Reader getReader() throws IOException{
+ sw.flush();
+ sw.close();
+ String s = sw.toString();
+
+// System.out.println(s);
+
+ return new StringReader(s);
+ }
+
+ protected static PrecisionModel precisionModel = new PrecisionModel(1000);
+ protected static GeometryFactory geometryFactory = new GeometryFactory(precisionModel);
+
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/geometry.xsd
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/geometry.xsd (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/gml2/geometry.xsd 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,349 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema targetNamespace="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="2.1.2">
+ <annotation>
+ <appinfo>geometry.xsd v2.1.2 2002-07</appinfo>
+ <documentation xml:lang="en">
+ GML Geometry schema. Copyright (c) 2001,2002 OGC, All Rights Reserved.
+ </documentation>
+ </annotation>
+ <!-- bring in the XLink attributes -->
+ <import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlinks.xsd"/>
+ <!-- ==============================================================
+ global declarations
+ =================================================================== -->
+ <element name="_Geometry" type="gml:AbstractGeometryType" abstract="true"/>
+ <element name="_GeometryCollection" type="gml:GeometryCollectionType" abstract="true" substitutionGroup="gml:_Geometry"/>
+ <element name="geometryMember" type="gml:GeometryAssociationType"/>
+ <element name="pointMember" type="gml:PointMemberType" substitutionGroup="gml:geometryMember"/>
+ <element name="lineStringMember" type="gml:LineStringMemberType" substitutionGroup="gml:geometryMember"/>
+ <element name="polygonMember" type="gml:PolygonMemberType" substitutionGroup="gml:geometryMember"/>
+ <element name="outerBoundaryIs" type="gml:LinearRingMemberType"/>
+ <element name="innerBoundaryIs" type="gml:LinearRingMemberType"/>
+ <!-- primitive geometry elements -->
+ <element name="Point" type="gml:PointType" substitutionGroup="gml:_Geometry"/>
+ <element name="LineString" type="gml:LineStringType" substitutionGroup="gml:_Geometry"/>
+ <element name="LinearRing" type="gml:LinearRingType" substitutionGroup="gml:_Geometry"/>
+ <element name="Polygon" type="gml:PolygonType" substitutionGroup="gml:_Geometry"/>
+ <element name="Box" type="gml:BoxType"/>
+ <!-- aggregate geometry elements -->
+ <element name="MultiGeometry" type="gml:GeometryCollectionType" substitutionGroup="gml:_Geometry"/>
+ <element name="MultiPoint" type="gml:MultiPointType" substitutionGroup="gml:_Geometry"/>
+ <element name="MultiLineString" type="gml:MultiLineStringType" substitutionGroup="gml:_Geometry"/>
+ <element name="MultiPolygon" type="gml:MultiPolygonType" substitutionGroup="gml:_Geometry"/>
+ <!-- coordinate elements -->
+ <element name="coord" type="gml:CoordType"/>
+ <element name="coordinates" type="gml:CoordinatesType"/>
+ <!-- this attribute gives the location where an element is defined -->
+ <attribute name="remoteSchema" type="anyURI"/>
+ <!-- ==============================================================
+ abstract supertypes
+ =================================================================== -->
+ <complexType name="AbstractGeometryType" abstract="true">
+ <annotation>
+ <documentation>
+ All geometry elements are derived from this abstract supertype;
+ a geometry element may have an identifying attribute (gid).
+ It may be associated with a spatial reference system.
+ </documentation>
+ </annotation>
+ <complexContent>
+ <restriction base="anyType">
+ <attribute name="gid" type="ID" use="optional"/>
+ <attribute name="srsName" type="anyURI" use="optional"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="AbstractGeometryCollectionBaseType" abstract="true">
+ <annotation>
+ <documentation>
+ This abstract base type for geometry collections just makes the
+ srsName attribute mandatory.
+ </documentation>
+ </annotation>
+ <complexContent>
+ <restriction base="gml:AbstractGeometryType">
+ <attribute name="gid" type="ID" use="optional"/>
+ <attribute name="srsName" type="anyURI" use="required"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <attributeGroup name="AssociationAttributeGroup">
+ <annotation>
+ <documentation>
+ These attributes can be attached to any element, thus allowing it
+ to act as a pointer. The 'remoteSchema' attribute allows an element
+ that carries link attributes to indicate that the element is declared
+ in a remote schema rather than by the schema that constrains the
+ current document instance.
+ </documentation>
+ </annotation>
+ <attributeGroup ref="xlink:simpleLink"/>
+ <attribute ref="gml:remoteSchema" use="optional"/>
+ </attributeGroup>
+ <complexType name="GeometryAssociationType">
+ <annotation>
+ <documentation>
+ An instance of this type (e.g. a geometryMember) can either
+ enclose or point to a primitive geometry element. When serving
+ as a simple link that references a remote geometry instance,
+ the value of the gml:remoteSchema attribute can be used to
+ locate a schema fragment that constrains the target instance.
+ </documentation>
+ </annotation>
+ <sequence minOccurs="0">
+ <element ref="gml:_Geometry"/>
+ </sequence>
+ <!-- <attributeGroup ref="gml:AssociationAttributeGroup"/> -->
+ <attributeGroup ref="xlink:simpleLink"/>
+ <attribute ref="gml:remoteSchema" use="optional"/>
+ </complexType>
+ <complexType name="PointMemberType">
+ <annotation>
+ <documentation>Restricts the geometry member to being a Point instance.</documentation>
+ </annotation>
+ <complexContent>
+ <restriction base="gml:GeometryAssociationType">
+ <sequence minOccurs="0">
+ <element ref="gml:Point"/>
+ </sequence>
+ <attributeGroup ref="gml:AssociationAttributeGroup"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="LineStringMemberType">
+ <annotation>
+ <documentation>Restricts the geometry member to being a LineString instance.</documentation>
+ </annotation>
+ <complexContent>
+ <restriction base="gml:GeometryAssociationType">
+ <sequence minOccurs="0">
+ <element ref="gml:LineString"/>
+ </sequence>
+ <attributeGroup ref="gml:AssociationAttributeGroup"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="PolygonMemberType">
+ <annotation>
+ <documentation>Restricts the geometry member to being a Polygon instance.</documentation>
+ </annotation>
+ <complexContent>
+ <restriction base="gml:GeometryAssociationType">
+ <sequence minOccurs="0">
+ <element ref="gml:Polygon"/>
+ </sequence>
+ <attributeGroup ref="gml:AssociationAttributeGroup"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="LinearRingMemberType">
+ <annotation>
+ <documentation>Restricts the outer or inner boundary of a polygon instance
+ to being a LinearRing.</documentation>
+ </annotation>
+ <complexContent>
+ <restriction base="gml:GeometryAssociationType">
+ <sequence minOccurs="0">
+ <element ref="gml:LinearRing"/>
+ </sequence>
+ <attributeGroup ref="gml:AssociationAttributeGroup"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <!-- ==============================================================
+ primitive geometry types
+ =================================================================== -->
+ <complexType name="PointType">
+ <annotation>
+ <documentation>
+ A Point is defined by a single coordinate tuple.
+ </documentation>
+ </annotation>
+ <complexContent>
+ <extension base="gml:AbstractGeometryType">
+ <sequence>
+ <choice>
+ <element ref="gml:coord"/>
+ <element ref="gml:coordinates"/>
+ </choice>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ <complexType name="LineStringType">
+ <annotation>
+ <documentation>
+ A LineString is defined by two or more coordinate tuples, with
+ linear interpolation between them.
+ </documentation>
+ </annotation>
+ <complexContent>
+ <extension base="gml:AbstractGeometryType">
+ <sequence>
+ <choice>
+ <element ref="gml:coord" minOccurs="2" maxOccurs="unbounded"/>
+ <element ref="gml:coordinates"/>
+ </choice>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ <complexType name="LinearRingType">
+ <annotation>
+ <documentation>
+ A LinearRing is defined by four or more coordinate tuples, with
+ linear interpolation between them; the first and last coordinates
+ must be coincident.
+ </documentation>
+ </annotation>
+ <complexContent>
+ <extension base="gml:AbstractGeometryType">
+ <sequence>
+ <choice>
+ <element ref="gml:coord" minOccurs="4" maxOccurs="unbounded"/>
+ <element ref="gml:coordinates"/>
+ </choice>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ <complexType name="BoxType">
+ <annotation>
+ <documentation>
+ The Box structure defines an extent using a pair of coordinate tuples.
+ </documentation>
+ </annotation>
+ <complexContent>
+ <extension base="gml:AbstractGeometryType">
+ <sequence>
+ <choice>
+ <element ref="gml:coord" minOccurs="2" maxOccurs="2"/>
+ <element ref="gml:coordinates"/>
+ </choice>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ <complexType name="PolygonType">
+ <annotation>
+ <documentation>
+ A Polygon is defined by an outer boundary and zero or more inner
+ boundaries which are in turn defined by LinearRings.
+ </documentation>
+ </annotation>
+ <complexContent>
+ <extension base="gml:AbstractGeometryType">
+ <sequence>
+ <element ref="gml:outerBoundaryIs"/>
+ <element ref="gml:innerBoundaryIs" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ <!-- ==============================================================
+ aggregate geometry types
+ =================================================================== -->
+ <complexType name="GeometryCollectionType">
+ <annotation>
+ <documentation>
+ A geometry collection must include one or more geometries, referenced
+ through geometryMember elements. User-defined geometry collections
+ that accept GML geometry classes as members must instantiate--or
+ derive from--this type.
+ </documentation>
+ </annotation>
+ <complexContent>
+ <extension base="gml:AbstractGeometryCollectionBaseType">
+ <sequence>
+ <element ref="gml:geometryMember" maxOccurs="unbounded"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ <complexType name="MultiPointType">
+ <annotation>
+ <documentation>
+ A MultiPoint is defined by one or more Points, referenced through
+ pointMember elements.
+ </documentation>
+ </annotation>
+ <complexContent>
+ <restriction base="gml:GeometryCollectionType">
+ <sequence>
+ <element ref="gml:pointMember" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="gid" type="ID" use="optional"/>
+ <attribute name="srsName" type="anyURI" use="required"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="MultiLineStringType">
+ <annotation>
+ <documentation>
+ A MultiLineString is defined by one or more LineStrings, referenced
+ through lineStringMember elements.
+ </documentation>
+ </annotation>
+ <complexContent>
+ <restriction base="gml:GeometryCollectionType">
+ <sequence>
+ <element ref="gml:lineStringMember" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="gid" type="ID" use="optional"/>
+ <attribute name="srsName" type="anyURI" use="required"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="MultiPolygonType">
+ <annotation>
+ <documentation>
+ A MultiPolygon is defined by one or more Polygons, referenced through
+ polygonMember elements.
+ </documentation>
+ </annotation>
+ <complexContent>
+ <restriction base="gml:GeometryCollectionType">
+ <sequence>
+ <element ref="gml:polygonMember" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="gid" type="ID" use="optional"/>
+ <attribute name="srsName" type="anyURI" use="required"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <!-- ==============================================================
+ There are two ways to represent coordinates: (1) as a sequence
+ of <coord> elements that encapsulate tuples, or (2) using a
+ single <coordinates> string.
+ =================================================================== -->
+ <complexType name="CoordType">
+ <annotation>
+ <documentation>
+ Represents a coordinate tuple in one, two, or three dimensions.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="X" type="decimal"/>
+ <element name="Y" type="decimal" minOccurs="0"/>
+ <element name="Z" type="decimal" minOccurs="0"/>
+ </sequence>
+ </complexType>
+ <complexType name="CoordinatesType">
+ <annotation>
+ <documentation>
+ Coordinates can be included in a single string, but there is no
+ facility for validating string content. The value of the 'cs' attribute
+ is the separator for coordinate values, and the value of the 'ts'
+ attribute gives the tuple separator (a single space by default); the
+ default values may be changed to reflect local usage.
+ </documentation>
+ </annotation>
+ <simpleContent>
+ <extension base="string">
+ <attribute name="decimal" type="string" use="optional" default="."/>
+ <attribute name="cs" type="string" use="optional" default=","/>
+ <attribute name="ts" type="string" use="optional" default=" "/>
+ </extension>
+ </simpleContent>
+ </complexType>
+</schema>
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/ConnectedTestCase.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/ConnectedTestCase.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/ConnectedTestCase.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,120 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.oracle;
+
+import java.net.URL;
+import java.sql.*;
+import java.util.Properties;
+
+import com.vividsolutions.jts.geom.GeometryFactory;
+import com.vividsolutions.jts.geom.PrecisionModel;
+
+import oracle.jdbc.OracleConnection;
+import junit.framework.TestCase;
+
+/**
+ *
+ * Abstract Test Case. Intended to provide a connection with which test may be performed.
+ *
+ * Sub-classes should not assume that either the connection will always exist, or
+ * the connection has the required permissions.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class ConnectedTestCase extends TestCase {
+
+ /**
+ * @param arg
+ */
+ public ConnectedTestCase(String arg){
+ super(arg);
+ }
+
+ private OracleConnection connection = null;
+
+ /**
+ * Sub-classes should not assume that either the connection will always exist, or
+ * the connection has the required permissions.
+ *
+ * @return OracleConnection
+ */
+ protected OracleConnection getConnection(){
+ return connection;
+ }
+
+ /**
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ Properties props = new Properties();
+ URL path = ClassLoader.getSystemResource("com/vividsolutions/jts/io/oracle/connection.properties");
+ props.load(path.openStream());
+
+ connection = getOracleConnection(props.getProperty("test.server"),props.getProperty("test.port"),
+ props.getProperty("test.sid"),props.getProperty("test.user"),props.getProperty("test.pwd"));
+ }
+
+ private static OracleConnection getOracleConnection(String server, String port, String sid, String userid, String pwd) throws SQLException {
+ String url = "jdbc:oracle:thin:@"+server+":"+port+":"+sid;
+ return (OracleConnection)openConnection( "oracle.jdbc.driver.OracleDriver", url, userid, pwd );
+ }
+
+
+
+ private static Connection openConnection( String driver, String url, String uid, String pwd ) throws SQLException {
+
+ Connection conn = null;
+ try {
+ Class.forName( driver );
+ } catch ( java.lang.ClassNotFoundException e ) {
+ fail( e.getMessage() );
+ }
+ conn = DriverManager.getConnection( url, uid, pwd );
+ return conn;
+ }
+
+ /**
+ * @see junit.framework.TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ if(connection != null && !connection.isClosed())
+ connection.close();
+ }
+
+ protected static PrecisionModel precisionModel = new PrecisionModel(1000);
+ protected static GeometryFactory geometryFactory = new GeometryFactory(precisionModel);
+
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticLineStringTest.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticLineStringTest.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticLineStringTest.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,190 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.oracle;
+
+import java.sql.SQLException;
+
+import oracle.sql.STRUCT;
+
+import com.vividsolutions.jts.generator.*;
+import com.vividsolutions.jts.geom.*;
+
+/**
+ *
+ * Does round trip testing by creating the oracle object, then decoding it.
+ *
+ * These tests do not include insert / delete / select operations.
+ *
+ * NOTE: This test does require a precision to be used during the comparison,
+ * as points are rounded somewhat when creating the oracle struct.
+ * (One less decimal than a java double).
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class StaticLineStringTest extends ConnectedTestCase {
+
+ /**
+ * @param arg
+ */
+ public StaticLineStringTest(String arg) {
+ super(arg);
+ }
+
+ /**
+ * Round Trip test for a single line string
+ * @throws SQLException
+ */
+ public void testSingleLineStringRoundTrip() throws SQLException{
+ LineStringGenerator pg = new LineStringGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberPoints(10);
+
+ LineString pt = (LineString) pg.create();
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ LineString pt2 = (LineString) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input LineString is not the same as the output LineString",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a 100 non overlapping line strings
+ * @throws SQLException
+ */
+ public void testGridLineStringsRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(10);
+ grid.setNumberRows(10);
+
+ LineString[] pt = new LineString[100];
+ STRUCT[] st = new STRUCT[100];
+
+ LineStringGenerator pg = new LineStringGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setNumberPoints(10);
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<100){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (LineString) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<100 && pt[i] != null){
+ LineString pt2 = (LineString) or.read(st[i]);
+// System.out.println((pt[i]==null?"NULL":pt[i].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input LineString is not the same as the output LineString",pt[i].equals(pt2));
+ i++;
+ }
+ }
+
+ /**
+ * Round Trip test for a 8 overlapping line strings (4 distinct line strings)
+ * @throws SQLException
+ */
+ public void testOverlappingLineStringsRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(2);
+ grid.setNumberRows(2);
+
+ LineString[] pt = new LineString[4];
+ STRUCT[] st = new STRUCT[8];
+
+ LineStringGenerator pg = new LineStringGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setNumberPoints(10);
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<8){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (LineString) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+ for(int j=0;j<4;j++){
+ if(pt[j]!=null)
+ st[i++] = ow.write(pt[j]);
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<8 && pt[i%4] != null){
+ LineString pt2 = (LineString) or.read(st[i]);
+// System.out.println((pt==null?"NULL":pt[i%4].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input LineString is not the same as the output LineString",pt[i%4].equals(pt2));
+ i++;
+ }
+ }
+
+ /**
+ * Round Trip test for a single line string with lotsa points
+ * @throws SQLException
+ */
+ public void testSingleLineStringManyPointRoundTrip() throws SQLException{
+ LineStringGenerator pg = new LineStringGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setGenerationAlgorithm(LineStringGenerator.HORZ);
+ pg.setNumberPoints(1000);
+
+ LineString pt = (LineString) pg.create();
+// System.out.println((pt==null?"NULL":pt.toString()));
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ LineString pt2 = (LineString) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input LineString is not the same as the output LineString",pt.equals(pt2));
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticMultiLineStringTest.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticMultiLineStringTest.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticMultiLineStringTest.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,207 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.oracle;
+
+import java.sql.SQLException;
+
+import oracle.sql.STRUCT;
+
+import com.vividsolutions.jts.generator.*;
+import com.vividsolutions.jts.geom.*;
+
+/**
+ *
+ * Does round trip testing by creating the oracle object, then decoding it.
+ *
+ * These tests do not include insert / delete / select operations.
+ *
+ * NOTE: This test does require a precision to be used during the comparison,
+ * as points are rounded somewhat when creating the oracle struct.
+ * (One less decimal than a java double).
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class StaticMultiLineStringTest extends ConnectedTestCase {
+
+ /**
+ * @param arg
+ */
+ public StaticMultiLineStringTest(String arg) {
+ super(arg);
+ }
+
+ /**
+ * Round Trip test for a single line string
+ * @throws SQLException
+ */
+ public void testSingleMultiLineStringRoundTrip() throws SQLException{
+ LineStringGenerator pgc = new LineStringGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setNumberPoints(10);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiLineString pt = (MultiLineString) pg.create();
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ MultiLineString pt2 = (MultiLineString) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiLineString is not the same as the output MultiLineString",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a 100 non overlapping line strings
+ * @throws SQLException
+ */
+ public void testGridMultiLineStringsRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(10);
+ grid.setNumberRows(10);
+
+ MultiLineString[] pt = new MultiLineString[100];
+ STRUCT[] st = new STRUCT[100];
+
+ LineStringGenerator pgc = new LineStringGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setNumberPoints(10);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<100){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (MultiLineString) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<100 && pt[i] != null){
+ MultiLineString pt2 = (MultiLineString) or.read(st[i]);
+// System.out.println((pt[i]==null?"NULL":pt[i].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiLineString is not the same as the output MultiLineString",pt[i].equals(pt2));
+ i++;
+ }
+ }
+
+ /**
+ * Round Trip test for a 8 overlapping line strings (4 distinct line strings)
+ * @throws SQLException
+ */
+ public void testOverlappingMultiLineStringsRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(2);
+ grid.setNumberRows(2);
+
+ MultiLineString[] pt = new MultiLineString[4];
+ STRUCT[] st = new STRUCT[8];
+
+ LineStringGenerator pgc = new LineStringGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setNumberPoints(10);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<8){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (MultiLineString) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+ for(int j=0;j<4;j++){
+ if(pt[j]!=null)
+ st[i++] = ow.write(pt[j]);
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<8 && pt[i%4] != null){
+ MultiLineString pt2 = (MultiLineString) or.read(st[i]);
+// System.out.println((pt==null?"NULL":pt[i%4].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiLineString is not the same as the output MultiLineString",pt[i%4].equals(pt2));
+ i++;
+ }
+ }
+
+ /**
+ * Round Trip test for a single line string with lotsa points
+ * @throws SQLException
+ */
+ public void testSingleMultiLineStringManyPointRoundTrip() throws SQLException{
+
+ LineStringGenerator pgc = new LineStringGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setNumberPoints(1000);
+ pgc.setGenerationAlgorithm(LineStringGenerator.HORZ);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiLineString pt = (MultiLineString) pg.create();
+// System.out.println((pt==null?"NULL":pt.toString()));
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ MultiLineString pt2 = (MultiLineString) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiLineString is not the same as the output MultiLineString",pt.equals(pt2));
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticMultiPointTest.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticMultiPointTest.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticMultiPointTest.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,171 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.oracle;
+
+import java.sql.SQLException;
+
+import oracle.sql.STRUCT;
+
+import com.vividsolutions.jts.generator.*;
+import com.vividsolutions.jts.geom.*;
+
+/**
+ *
+ * Does round trip testing by creating the oracle object, then decoding it.
+ *
+ * These tests do not include insert / delete / select operations.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class StaticMultiPointTest extends ConnectedTestCase {
+
+ /**
+ * @param arg
+ */
+ public StaticMultiPointTest(String arg) {
+ super(arg);
+ }
+
+ /**
+ * Round Trip test for a single MultiPoint
+ * @throws SQLException
+ */
+ public void testSingleMultiPointRoundTrip() throws SQLException{
+ PointGenerator pgc = new PointGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiPoint pt = (MultiPoint) pg.create();
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ MultiPoint pt2 = (MultiPoint) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPoint is not the same as the output MultiPoint",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a 100 non overlapping MultiPoints
+ * @throws SQLException
+ */
+ public void testGridMultiPointsRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(10);
+ grid.setNumberRows(10);
+
+ MultiPoint[] pt = new MultiPoint[100];
+ STRUCT[] st = new STRUCT[100];
+
+ PointGenerator pgc = new PointGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<100){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (MultiPoint) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<100 && pt[i] != null){
+ MultiPoint pt2 = (MultiPoint) or.read(st[i]);
+// System.out.println((pt[i]==null?"NULL":pt[i].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPoint is not the same as the output MultiPoint",pt[i].equals(pt2));
+ i++;
+ }
+ }
+
+ /**
+ * Round Trip test for a 8 overlapping MultiPoints (4 distinct MultiPoints)
+ * @throws SQLException
+ */
+ public void testOverlappingMultiPointsRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(2);
+ grid.setNumberRows(2);
+
+ MultiPoint[] pt = new MultiPoint[4];
+ STRUCT[] st = new STRUCT[8];
+
+ PointGenerator pgc = new PointGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<8){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (MultiPoint) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+ for(int j=0;j<4;j++){
+ if(pt[j]!=null)
+ st[i++] = ow.write(pt[j]);
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<8 && pt[i%4] != null){
+ MultiPoint pt2 = (MultiPoint) or.read(st[i]);
+// System.out.println((pt[i]==null?"NULL":pt[i].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPoint is not the same as the output MultiPoint",pt[i%4].equals(pt2));
+ i++;
+ }
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticMultiPolygonTest.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticMultiPolygonTest.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticMultiPolygonTest.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,394 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.oracle;
+
+import java.sql.SQLException;
+
+import oracle.sql.STRUCT;
+
+import com.vividsolutions.jts.generator.*;
+import com.vividsolutions.jts.geom.*;
+
+/**
+ *
+ * Does round trip testing by creating the oracle object, then decoding it.
+ *
+ * These tests do not include insert / delete / select operations.
+ *
+ * NOTE: This test does require a precision to be used during the comparison,
+ * as points are rounded somewhat when creating the oracle struct.
+ * (One less decimal than a java double).
+ *
+ * NOTE: The points may be re-ordered during these tests.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class StaticMultiPolygonTest extends ConnectedTestCase {
+
+ /**
+ * @param arg
+ */
+ public StaticMultiPolygonTest(String arg) {
+ super(arg);
+ }
+
+ /**
+ * Round Trip test for a single MultiPolygon
+ * @throws SQLException
+ */
+ public void testSingleMultiPolygonNoHoleRoundTrip() throws SQLException{
+ PolygonGenerator pgc = new PolygonGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setNumberPoints(10);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiPolygon pt = (MultiPolygon) pg.create();
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ MultiPolygon pt2 = (MultiPolygon) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPolygon is not the same as the output MultiPolygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a 100 non overlapping MultiPolygon
+ * @throws SQLException
+ */
+ public void testGridMultiPolygonsNoHoleRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(10);
+ grid.setNumberRows(10);
+
+ MultiPolygon[] pt = new MultiPolygon[100];
+ STRUCT[] st = new STRUCT[100];
+
+ PolygonGenerator pgc = new PolygonGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setNumberPoints(10);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<100){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (MultiPolygon) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<100 && pt[i] != null){
+ MultiPolygon pt2 = (MultiPolygon) or.read(st[i]);
+// System.out.println((pt[i]==null?"NULL":pt[i].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPolygon is not the same as the output MultiPolygon",pt[i].equals(pt2));
+ i++;
+ }
+ }
+
+ /**
+ * Round Trip test for a 8 overlapping line MultiPolygons (4 distinct MultiPolygons)
+ * @throws SQLException
+ */
+ public void testOverlappingMultiPolygonsNoHoleRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(2);
+ grid.setNumberRows(2);
+
+ MultiPolygon[] pt = new MultiPolygon[4];
+ STRUCT[] st = new STRUCT[8];
+
+ PolygonGenerator pgc = new PolygonGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setNumberPoints(10);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<8){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (MultiPolygon) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+ for(int j=0;j<4;j++){
+ if(pt[j]!=null)
+ st[i++] = ow.write(pt[j]);
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<8 && pt[i%4] != null){
+ MultiPolygon pt2 = (MultiPolygon) or.read(st[i]);
+// System.out.println((pt==null?"NULL":pt[i%4].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPolygon is not the same as the output MultiPolygon",pt[i%4].equals(pt2));
+ i++;
+ }
+ }
+
+ /**
+ * Round Trip test for a single MultiPolygon with lotsa points
+ * @throws SQLException
+ */
+ public void testSingleMultiPolygonManyPointsNoHoleRoundTrip() throws SQLException{
+
+ PolygonGenerator pgc = new PolygonGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pgc.setNumberPoints(1000);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiPolygon pt = (MultiPolygon) pg.create();
+// System.out.println((pt==null?"NULL":pt.toString()));
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ MultiPolygon pt2 = (MultiPolygon) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPolygon is not the same as the output MultiPolygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a single MultiPolygon
+ * @throws SQLException
+ */
+ public void testSingleMultiPolygonHolesRoundTrip() throws SQLException{
+
+ PolygonGenerator pgc = new PolygonGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pgc.setNumberPoints(10);
+ pgc.setNumberHoles(4);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiPolygon pt = (MultiPolygon) pg.create();
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ MultiPolygon pt2 = (MultiPolygon) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPolygon is not the same as the output MultiPolygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a 100 non overlapping MultiPolygon
+ * @throws SQLException
+ */
+ public void testGridMultiPolygonsHolesRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(10);
+ grid.setNumberRows(10);
+
+ MultiPolygon[] pt = new MultiPolygon[100];
+ STRUCT[] st = new STRUCT[100];
+
+
+ PolygonGenerator pgc = new PolygonGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pgc.setNumberPoints(10);
+ pgc.setNumberHoles(4);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<100){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (MultiPolygon) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<100 && pt[i] != null){
+ MultiPolygon pt2 = (MultiPolygon) or.read(st[i]);
+// System.out.println((pt[i]==null?"NULL":pt[i].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPolygon is not the same as the output MultiPolygon",pt[i].equals(pt2));
+ i++;
+ }
+ }
+
+ /**
+ * Round Trip test for a 8 overlapping line MultiPolygons (4 distinct MultiPolygons)
+ * @throws SQLException
+ */
+ public void testOverlappingMultiPolygonsHolesRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(2);
+ grid.setNumberRows(2);
+
+ MultiPolygon[] pt = new MultiPolygon[4];
+ STRUCT[] st = new STRUCT[8];
+
+
+ PolygonGenerator pgc = new PolygonGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pgc.setNumberPoints(10);
+ pgc.setNumberHoles(4);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<8){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (MultiPolygon) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+ for(int j=0;j<4;j++){
+ if(pt[j]!=null)
+ st[i++] = ow.write(pt[j]);
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<8 && pt[i%4] != null){
+ MultiPolygon pt2 = (MultiPolygon) or.read(st[i]);
+// System.out.println((pt==null?"NULL":pt[i%4].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPolygon is not the same as the output MultiPolygon",pt[i%4].equals(pt2));
+ i++;
+ }
+ }
+
+ /**
+ * Round Trip test for a single MultiPolygon with lotsa points
+ * @throws SQLException
+ */
+ public void testSingleMultiPolygonManyPointsHolesRoundTrip() throws SQLException{
+
+ PolygonGenerator pgc = new PolygonGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pgc.setNumberPoints(1000);
+ pgc.setNumberHoles(4);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiPolygon pt = (MultiPolygon) pg.create();
+// System.out.println((pt==null?"NULL":pt.toString()));
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ MultiPolygon pt2 = (MultiPolygon) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPolygon is not the same as the output MultiPolygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a single MultiPolygon with lotsa points
+ * @throws SQLException
+ */
+ public void testSingleMultiPolygonManyPointsManyHolesRoundTrip() throws SQLException{
+
+ PolygonGenerator pgc = new PolygonGenerator();
+ pgc.setGeometryFactory(geometryFactory);
+ pgc.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pgc.setNumberPoints(100);
+ pgc.setNumberHoles(100);
+ MultiGenerator pg = new MultiGenerator(pgc);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberGeometries(3);
+ pg.setGeometryFactory(geometryFactory);
+
+ MultiPolygon pt = (MultiPolygon) pg.create();
+// System.out.println((pt==null?"NULL":pt.toString()));
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ MultiPolygon pt2 = (MultiPolygon) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input MultiPolygon is not the same as the output MultiPolygon",pt.equals(pt2));
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticPointTest.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticPointTest.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticPointTest.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,159 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.oracle;
+
+import java.sql.SQLException;
+
+import oracle.sql.STRUCT;
+
+import com.vividsolutions.jts.generator.GridGenerator;
+import com.vividsolutions.jts.generator.PointGenerator;
+import com.vividsolutions.jts.geom.*;
+
+/**
+ *
+ * Does round trip testing by creating the oracle object, then decoding it.
+ *
+ * These tests do not include insert / delete / select operations.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class StaticPointTest extends ConnectedTestCase {
+
+ /**
+ * @param arg
+ */
+ public StaticPointTest(String arg) {
+ super(arg);
+ }
+
+ /**
+ * Round Trip test for a single point
+ * @throws SQLException
+ */
+ public void testSinglePointRoundTrip() throws SQLException{
+ PointGenerator pg = new PointGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+
+ Point pt = (Point) pg.create();
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ Point pt2 = (Point) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input Point is not the same as the output Point",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a 100 non overlapping points
+ * @throws SQLException
+ */
+ public void testGridPointsRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(10);
+ grid.setNumberRows(10);
+
+ Point[] pt = new Point[100];
+ STRUCT[] st = new STRUCT[100];
+
+ PointGenerator pg = new PointGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<100){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (Point) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<100 && pt[i] != null){
+ Point pt2 = (Point) or.read(st[i]);
+// System.out.println((pt[i]==null?"NULL":pt[i].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input Point is not the same as the output Point",pt[i].equals(pt2));
+ i++;
+ }
+ }
+
+ /**
+ * Round Trip test for a 8 overlapping points (4 distinct points)
+ * @throws SQLException
+ */
+ public void testOverlappingPointsRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(2);
+ grid.setNumberRows(2);
+
+ Point[] pt = new Point[4];
+ STRUCT[] st = new STRUCT[8];
+
+ PointGenerator pg = new PointGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<8){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (Point) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+ for(int j=0;j<4;j++){
+ if(pt[j]!=null)
+ st[i++] = ow.write(pt[j]);
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<8 && pt[i%4] != null){
+ Point pt2 = (Point) or.read(st[i]);
+// System.out.println((pt[i]==null?"NULL":pt[i].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input Point is not the same as the output Point",pt[i%4].equals(pt2));
+ i++;
+ }
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticPolygonTest.java
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticPolygonTest.java (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/StaticPolygonTest.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,350 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.io.oracle;
+
+import java.sql.SQLException;
+
+import oracle.sql.STRUCT;
+
+import com.vividsolutions.jts.generator.*;
+import com.vividsolutions.jts.geom.*;
+
+/**
+ *
+ * Does round trip testing by creating the oracle object, then decoding it.
+ *
+ * These tests do not include insert / delete / select operations.
+ *
+ * NOTE: This test does require a precision to be used during the comparison,
+ * as points are rounded somewhat when creating the oracle struct.
+ * (One less decimal than a java double).
+ *
+ * NOTE: The points may be re-ordered during these tests.
+ *
+ * @author David Zwiers, Vivid Solutions.
+ */
+public class StaticPolygonTest extends ConnectedTestCase {
+
+ /**
+ * @param arg
+ */
+ public StaticPolygonTest(String arg) {
+ super(arg);
+ }
+
+ /**
+ * Round Trip test for a single polygon
+ * @throws SQLException
+ */
+ public void testSinglePolygonNoHoleRoundTrip() throws SQLException{
+ PolygonGenerator pg = new PolygonGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberPoints(10);
+
+ Polygon pt = (Polygon) pg.create();
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ Polygon pt2 = (Polygon) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input polygon is not the same as the output polygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a 100 non overlapping polygon
+ * @throws SQLException
+ */
+ public void testGridPolygonsNoHoleRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(10);
+ grid.setNumberRows(10);
+
+ Polygon[] pt = new Polygon[100];
+ STRUCT[] st = new STRUCT[100];
+
+ PolygonGenerator pg = new PolygonGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setNumberPoints(10);
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<100){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (Polygon) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<100 && pt[i] != null){
+ Polygon pt2 = (Polygon) or.read(st[i]);
+// System.out.println((pt[i]==null?"NULL":pt[i].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input polygon is not the same as the output polygon",pt[i].equals(pt2));
+ i++;
+ }
+ }
+
+ /**
+ * Round Trip test for a 8 overlapping line polygons (4 distinct polygons)
+ * @throws SQLException
+ */
+ public void testOverlappingPolygonsNoHoleRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(2);
+ grid.setNumberRows(2);
+
+ Polygon[] pt = new Polygon[4];
+ STRUCT[] st = new STRUCT[8];
+
+ PolygonGenerator pg = new PolygonGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setNumberPoints(10);
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<8){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (Polygon) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+ for(int j=0;j<4;j++){
+ if(pt[j]!=null)
+ st[i++] = ow.write(pt[j]);
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<8 && pt[i%4] != null){
+ Polygon pt2 = (Polygon) or.read(st[i]);
+// System.out.println((pt==null?"NULL":pt[i%4].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input polygon is not the same as the output polygon",pt[i%4].equals(pt2));
+ i++;
+ }
+ }
+
+ /**
+ * Round Trip test for a single polygon with lotsa points
+ * @throws SQLException
+ */
+ public void testSinglePolygonManyPointsNoHoleRoundTrip() throws SQLException{
+ PolygonGenerator pg = new PolygonGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pg.setNumberPoints(1000);
+
+ Polygon pt = (Polygon) pg.create();
+// System.out.println((pt==null?"NULL":pt.toString()));
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ Polygon pt2 = (Polygon) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input polygon is not the same as the output polygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a single polygon
+ * @throws SQLException
+ */
+ public void testSinglePolygonHolesRoundTrip() throws SQLException{
+ PolygonGenerator pg = new PolygonGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setNumberPoints(10);
+ pg.setNumberHoles(4);
+
+ Polygon pt = (Polygon) pg.create();
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ Polygon pt2 = (Polygon) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input polygon is not the same as the output polygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a 100 non overlapping polygon
+ * @throws SQLException
+ */
+ public void testGridPolygonsHolesRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(10);
+ grid.setNumberRows(10);
+
+ Polygon[] pt = new Polygon[100];
+ STRUCT[] st = new STRUCT[100];
+
+ PolygonGenerator pg = new PolygonGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setNumberPoints(10);
+ pg.setNumberHoles(4);
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<100){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (Polygon) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<100 && pt[i] != null){
+ Polygon pt2 = (Polygon) or.read(st[i]);
+// System.out.println((pt[i]==null?"NULL":pt[i].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input polygon is not the same as the output polygon",pt[i].equals(pt2));
+ i++;
+ }
+ }
+
+ /**
+ * Round Trip test for a 8 overlapping line polygons (4 distinct polygons)
+ * @throws SQLException
+ */
+ public void testOverlappingPolygonsHolesRoundTrip() throws SQLException{
+ GridGenerator grid = new GridGenerator();
+ grid.setGeometryFactory(geometryFactory);
+ grid.setBoundingBox(new Envelope(0,10,0,10));
+ grid.setNumberColumns(2);
+ grid.setNumberRows(2);
+
+ Polygon[] pt = new Polygon[4];
+ STRUCT[] st = new STRUCT[8];
+
+ PolygonGenerator pg = new PolygonGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setNumberPoints(10);
+ pg.setNumberHoles(4);
+ OraWriter ow = new OraWriter(getConnection());
+
+ int i=0;
+ while(grid.canCreate() && i<8){
+ pg.setBoundingBox(grid.createEnv());
+ pt[i] = (Polygon) pg.create();
+ st[i] = ow.write(pt[i]);
+ i++;
+ }
+ for(int j=0;j<4;j++){
+ if(pt[j]!=null)
+ st[i++] = ow.write(pt[j]);
+ }
+
+ OraReader or = new OraReader();
+ i=0;
+ while(i<8 && pt[i%4] != null){
+ Polygon pt2 = (Polygon) or.read(st[i]);
+// System.out.println((pt==null?"NULL":pt[i%4].toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input polygon is not the same as the output polygon",pt[i%4].equals(pt2));
+ i++;
+ }
+ }
+
+ /**
+ * Round Trip test for a single polygon with lotsa points
+ * @throws SQLException
+ */
+ public void testSinglePolygonManyPointsHolesRoundTrip() throws SQLException{
+ PolygonGenerator pg = new PolygonGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pg.setNumberPoints(1000);
+ pg.setNumberHoles(4);
+
+ Polygon pt = (Polygon) pg.create();
+// System.out.println((pt==null?"NULL":pt.toString()));
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ Polygon pt2 = (Polygon) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input polygon is not the same as the output polygon",pt.equals(pt2));
+ }
+
+ /**
+ * Round Trip test for a single polygon with lotsa points
+ * @throws SQLException
+ */
+ public void testSinglePolygonManyPointsManyHolesRoundTrip() throws SQLException{
+ PolygonGenerator pg = new PolygonGenerator();
+ pg.setGeometryFactory(geometryFactory);
+ pg.setBoundingBox(new Envelope(0,10,0,10));
+ pg.setGenerationAlgorithm(PolygonGenerator.BOX);
+ pg.setNumberPoints(100);
+ pg.setNumberHoles(100);
+
+ Polygon pt = (Polygon) pg.create();
+// System.out.println((pt==null?"NULL":pt.toString()));
+
+ OraWriter ow = new OraWriter(getConnection());
+ STRUCT st = ow.write(pt);
+
+ OraReader or = new OraReader();
+ Polygon pt2 = (Polygon) or.read(st);
+
+// System.out.println((pt==null?"NULL":pt.toString()));
+// System.out.println((pt2==null?"NULL":pt2.toString()));
+ assertTrue("The input polygon is not the same as the output polygon",pt.equals(pt2));
+ }
+}
Added: packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/connection.properties
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/connection.properties (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/com/vividsolutions/jts/io/oracle/connection.properties 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,5 @@
+test.server=Neptune
+test.port=1521
+test.sid=LRDW
+test.user=inventory
+test.pwd=password
\ No newline at end of file
Added: packages/jts/branches/upstream/current/jtsio/test/data/linestrings.xml
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/data/linestrings.xml (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/data/linestrings.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,312 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<MultiGeometry>
+ <LineString>
+ <coordinates>24824.045318333192,38536.15071012041
+ 26157.378651666528,37567.42733944659 26666.666666666668,36000.0
+ 26157.378651666528,34432.57266055341
+ 24824.045318333192,33463.84928987959
+ 23175.954681666804,33463.84928987959
+ 21842.621348333472,34432.57266055341 21333.333333333332,36000.0
+ 21842.621348333472,37567.42733944659
+ 23175.954681666808,38536.15071012041 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>32824.04531833319,38536.15071012041
+ 34157.37865166653,37567.42733944659 34666.666666666664,36000.0
+ 34157.37865166653,34432.57266055341
+ 32824.04531833319,33463.84928987959
+ 31175.954681666804,33463.84928987959
+ 29842.621348333472,34432.57266055341 29333.333333333332,36000.0
+ 29842.621348333472,37567.42733944659
+ 31175.954681666808,38536.15071012041 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>40824.04531833319,38536.15071012041
+ 42157.37865166653,37567.42733944659 42666.666666666664,36000.0
+ 42157.37865166653,34432.57266055341
+ 40824.04531833319,33463.84928987959
+ 39175.95468166681,33463.84928987959
+ 37842.62134833347,34432.57266055341 37333.333333333336,36000.0
+ 37842.62134833347,37567.42733944659
+ 39175.95468166681,38536.15071012041 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>48824.04531833319,38536.15071012041
+ 50157.37865166653,37567.42733944659 50666.666666666664,36000.0
+ 50157.37865166653,34432.57266055341
+ 48824.04531833319,33463.84928987959
+ 47175.95468166681,33463.84928987959
+ 45842.62134833347,34432.57266055341 45333.333333333336,36000.0
+ 45842.62134833347,37567.42733944659
+ 47175.95468166681,38536.15071012041 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>56824.04531833319,38536.15071012041
+ 58157.37865166653,37567.42733944659 58666.666666666664,36000.0
+ 58157.37865166653,34432.57266055341
+ 56824.04531833319,33463.84928987959
+ 55175.95468166681,33463.84928987959
+ 53842.62134833347,34432.57266055341 53333.333333333336,36000.0
+ 53842.62134833347,37567.42733944659
+ 55175.95468166681,38536.15071012041 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>24824.045318333192,50536.15071012041
+ 26157.378651666528,49567.42733944659 26666.666666666668,48000.0
+ 26157.378651666528,46432.57266055341
+ 24824.045318333192,45463.84928987959
+ 23175.954681666804,45463.84928987959
+ 21842.621348333472,46432.57266055341 21333.333333333332,48000.0
+ 21842.621348333472,49567.42733944659
+ 23175.954681666808,50536.15071012041 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>32824.04531833319,50536.15071012041
+ 34157.37865166653,49567.42733944659 34666.666666666664,48000.0
+ 34157.37865166653,46432.57266055341
+ 32824.04531833319,45463.84928987959
+ 31175.954681666804,45463.84928987959
+ 29842.621348333472,46432.57266055341 29333.333333333332,48000.0
+ 29842.621348333472,49567.42733944659
+ 31175.954681666808,50536.15071012041 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>40824.04531833319,50536.15071012041
+ 42157.37865166653,49567.42733944659 42666.666666666664,48000.0
+ 42157.37865166653,46432.57266055341
+ 40824.04531833319,45463.84928987959
+ 39175.95468166681,45463.84928987959
+ 37842.62134833347,46432.57266055341 37333.333333333336,48000.0
+ 37842.62134833347,49567.42733944659
+ 39175.95468166681,50536.15071012041 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>48824.04531833319,50536.15071012041
+ 50157.37865166653,49567.42733944659 50666.666666666664,48000.0
+ 50157.37865166653,46432.57266055341
+ 48824.04531833319,45463.84928987959
+ 47175.95468166681,45463.84928987959
+ 45842.62134833347,46432.57266055341 45333.333333333336,48000.0
+ 45842.62134833347,49567.42733944659
+ 47175.95468166681,50536.15071012041 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>56824.04531833319,50536.15071012041
+ 58157.37865166653,49567.42733944659 58666.666666666664,48000.0
+ 58157.37865166653,46432.57266055341
+ 56824.04531833319,45463.84928987959
+ 55175.95468166681,45463.84928987959
+ 53842.62134833347,46432.57266055341 53333.333333333336,48000.0
+ 53842.62134833347,49567.42733944659
+ 55175.95468166681,50536.15071012041 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>24824.045318333192,62536.15071012041
+ 26157.378651666528,61567.42733944659 26666.666666666668,60000.0
+ 26157.378651666528,58432.57266055341
+ 24824.045318333192,57463.84928987959
+ 23175.954681666804,57463.84928987959
+ 21842.621348333472,58432.57266055341 21333.333333333332,60000.0
+ 21842.621348333472,61567.42733944659
+ 23175.954681666808,62536.15071012041 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>32824.04531833319,62536.15071012041
+ 34157.37865166653,61567.42733944659 34666.666666666664,60000.0
+ 34157.37865166653,58432.57266055341
+ 32824.04531833319,57463.84928987959
+ 31175.954681666804,57463.84928987959
+ 29842.621348333472,58432.57266055341 29333.333333333332,60000.0
+ 29842.621348333472,61567.42733944659
+ 31175.954681666808,62536.15071012041 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>40824.04531833319,62536.15071012041
+ 42157.37865166653,61567.42733944659 42666.666666666664,60000.0
+ 42157.37865166653,58432.57266055341
+ 40824.04531833319,57463.84928987959
+ 39175.95468166681,57463.84928987959
+ 37842.62134833347,58432.57266055341 37333.333333333336,60000.0
+ 37842.62134833347,61567.42733944659
+ 39175.95468166681,62536.15071012041 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>48824.04531833319,62536.15071012041
+ 50157.37865166653,61567.42733944659 50666.666666666664,60000.0
+ 50157.37865166653,58432.57266055341
+ 48824.04531833319,57463.84928987959
+ 47175.95468166681,57463.84928987959
+ 45842.62134833347,58432.57266055341 45333.333333333336,60000.0
+ 45842.62134833347,61567.42733944659
+ 47175.95468166681,62536.15071012041 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>56824.04531833319,62536.15071012041
+ 58157.37865166653,61567.42733944659 58666.666666666664,60000.0
+ 58157.37865166653,58432.57266055341
+ 56824.04531833319,57463.84928987959
+ 55175.95468166681,57463.84928987959
+ 53842.62134833347,58432.57266055341 53333.333333333336,60000.0
+ 53842.62134833347,61567.42733944659
+ 55175.95468166681,62536.15071012041 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>24824.045318333192,74536.1507101204
+ 26157.378651666528,73567.4273394466 26666.666666666668,72000.0
+ 26157.378651666528,70432.5726605534
+ 24824.045318333192,69463.8492898796
+ 23175.954681666804,69463.8492898796
+ 21842.621348333472,70432.5726605534 21333.333333333332,72000.0
+ 21842.621348333472,73567.4273394466
+ 23175.954681666808,74536.1507101204 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>32824.04531833319,74536.1507101204
+ 34157.37865166653,73567.4273394466 34666.666666666664,72000.0
+ 34157.37865166653,70432.5726605534 32824.04531833319,69463.8492898796
+ 31175.954681666804,69463.8492898796
+ 29842.621348333472,70432.5726605534 29333.333333333332,72000.0
+ 29842.621348333472,73567.4273394466
+ 31175.954681666808,74536.1507101204 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>40824.04531833319,74536.1507101204
+ 42157.37865166653,73567.4273394466 42666.666666666664,72000.0
+ 42157.37865166653,70432.5726605534 40824.04531833319,69463.8492898796
+ 39175.95468166681,69463.8492898796 37842.62134833347,70432.5726605534
+ 37333.333333333336,72000.0 37842.62134833347,73567.4273394466
+ 39175.95468166681,74536.1507101204 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>48824.04531833319,74536.1507101204
+ 50157.37865166653,73567.4273394466 50666.666666666664,72000.0
+ 50157.37865166653,70432.5726605534 48824.04531833319,69463.8492898796
+ 47175.95468166681,69463.8492898796 45842.62134833347,70432.5726605534
+ 45333.333333333336,72000.0 45842.62134833347,73567.4273394466
+ 47175.95468166681,74536.1507101204 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>56824.04531833319,74536.1507101204
+ 58157.37865166653,73567.4273394466 58666.666666666664,72000.0
+ 58157.37865166653,70432.5726605534 56824.04531833319,69463.8492898796
+ 55175.95468166681,69463.8492898796 53842.62134833347,70432.5726605534
+ 53333.333333333336,72000.0 53842.62134833347,73567.4273394466
+ 55175.95468166681,74536.1507101204 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>24824.045318333192,86536.1507101204
+ 26157.378651666528,85567.4273394466 26666.666666666668,84000.0
+ 26157.378651666528,82432.5726605534
+ 24824.045318333192,81463.8492898796
+ 23175.954681666804,81463.8492898796
+ 21842.621348333472,82432.5726605534 21333.333333333332,84000.0
+ 21842.621348333472,85567.4273394466
+ 23175.954681666808,86536.1507101204 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>32824.04531833319,86536.1507101204
+ 34157.37865166653,85567.4273394466 34666.666666666664,84000.0
+ 34157.37865166653,82432.5726605534 32824.04531833319,81463.8492898796
+ 31175.954681666804,81463.8492898796
+ 29842.621348333472,82432.5726605534 29333.333333333332,84000.0
+ 29842.621348333472,85567.4273394466
+ 31175.954681666808,86536.1507101204 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>40824.04531833319,86536.1507101204
+ 42157.37865166653,85567.4273394466 42666.666666666664,84000.0
+ 42157.37865166653,82432.5726605534 40824.04531833319,81463.8492898796
+ 39175.95468166681,81463.8492898796 37842.62134833347,82432.5726605534
+ 37333.333333333336,84000.0 37842.62134833347,85567.4273394466
+ 39175.95468166681,86536.1507101204 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>48824.04531833319,86536.1507101204
+ 50157.37865166653,85567.4273394466 50666.666666666664,84000.0
+ 50157.37865166653,82432.5726605534 48824.04531833319,81463.8492898796
+ 47175.95468166681,81463.8492898796 45842.62134833347,82432.5726605534
+ 45333.333333333336,84000.0 45842.62134833347,85567.4273394466
+ 47175.95468166681,86536.1507101204 </coordinates>
+ </LineString>
+
+
+
+ <LineString>
+ <coordinates>56824.04531833319,86536.1507101204
+ 58157.37865166653,85567.4273394466 58666.666666666664,84000.0
+ 58157.37865166653,82432.5726605534 56824.04531833319,81463.8492898796
+ 55175.95468166681,81463.8492898796 53842.62134833347,82432.5726605534
+ 53333.333333333336,84000.0 53842.62134833347,85567.4273394466
+ 55175.95468166681,86536.1507101204 </coordinates>
+ </LineString>
+</MultiGeometry>
Added: packages/jts/branches/upstream/current/jtsio/test/data/multilinestrings.xml
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/data/multilinestrings.xml (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/data/multilinestrings.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,1479 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<MultiGeometry>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>22412.022659166596,34268.0753550602
+ 23078.689325833264,33783.7136697233
+ 23333.333333333332,33000.0
+ 23078.689325833264,32216.286330276704
+ 22412.022659166596,31731.924644939794
+ 21587.977340833404,31731.924644939794
+ 20921.310674166736,32216.286330276704
+ 20666.666666666668,33000.0
+ 20921.310674166736,33783.7136697233
+ 21587.977340833404,34268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>26412.022659166596,34268.0753550602
+ 27078.689325833264,33783.7136697233
+ 27333.333333333332,33000.0
+ 27078.689325833264,32216.286330276704
+ 26412.022659166596,31731.924644939794
+ 25587.977340833404,31731.924644939794
+ 24921.310674166736,32216.286330276704
+ 24666.666666666668,33000.0
+ 24921.310674166736,33783.7136697233
+ 25587.977340833404,34268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>22412.022659166596,40268.0753550602
+ 23078.689325833264,39783.7136697233
+ 23333.333333333332,39000.0
+ 23078.689325833264,38216.2863302767
+ 22412.022659166596,37731.9246449398
+ 21587.977340833404,37731.9246449398
+ 20921.310674166736,38216.2863302767
+ 20666.666666666668,39000.0
+ 20921.310674166736,39783.7136697233
+ 21587.977340833404,40268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>26412.022659166596,40268.0753550602
+ 27078.689325833264,39783.7136697233
+ 27333.333333333332,39000.0
+ 27078.689325833264,38216.2863302767
+ 26412.022659166596,37731.9246449398
+ 25587.977340833404,37731.9246449398
+ 24921.310674166736,38216.2863302767
+ 24666.666666666668,39000.0
+ 24921.310674166736,39783.7136697233
+ 25587.977340833404,40268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>30412.022659166596,34268.0753550602
+ 31078.689325833264,33783.7136697233
+ 31333.333333333332,33000.0
+ 31078.689325833264,32216.286330276704
+ 30412.022659166596,31731.924644939794
+ 29587.977340833404,31731.924644939794
+ 28921.310674166736,32216.286330276704
+ 28666.666666666668,33000.0
+ 28921.310674166736,33783.7136697233
+ 29587.977340833404,34268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>34412.0226591666,34268.0753550602
+ 35078.689325833264,33783.7136697233
+ 35333.333333333336,33000.0
+ 35078.689325833264,32216.286330276704
+ 34412.0226591666,31731.924644939794
+ 33587.9773408334,31731.924644939794
+ 32921.310674166736,32216.286330276704
+ 32666.666666666668,33000.0
+ 32921.310674166736,33783.7136697233
+ 33587.9773408334,34268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>30412.022659166596,40268.0753550602
+ 31078.689325833264,39783.7136697233
+ 31333.333333333332,39000.0
+ 31078.689325833264,38216.2863302767
+ 30412.022659166596,37731.9246449398
+ 29587.977340833404,37731.9246449398
+ 28921.310674166736,38216.2863302767
+ 28666.666666666668,39000.0
+ 28921.310674166736,39783.7136697233
+ 29587.977340833404,40268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>34412.0226591666,40268.0753550602
+ 35078.689325833264,39783.7136697233
+ 35333.333333333336,39000.0
+ 35078.689325833264,38216.2863302767
+ 34412.0226591666,37731.9246449398
+ 33587.9773408334,37731.9246449398
+ 32921.310674166736,38216.2863302767
+ 32666.666666666668,39000.0
+ 32921.310674166736,39783.7136697233
+ 33587.9773408334,40268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>38412.0226591666,34268.0753550602
+ 39078.689325833264,33783.7136697233
+ 39333.333333333336,33000.0
+ 39078.689325833264,32216.286330276704
+ 38412.0226591666,31731.924644939794
+ 37587.9773408334,31731.924644939794
+ 36921.310674166736,32216.286330276704
+ 36666.666666666664,33000.0
+ 36921.310674166736,33783.7136697233
+ 37587.9773408334,34268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>42412.0226591666,34268.0753550602
+ 43078.689325833264,33783.7136697233
+ 43333.333333333336,33000.0
+ 43078.689325833264,32216.286330276704
+ 42412.0226591666,31731.924644939794
+ 41587.9773408334,31731.924644939794
+ 40921.310674166736,32216.286330276704
+ 40666.666666666664,33000.0
+ 40921.310674166736,33783.7136697233
+ 41587.9773408334,34268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>38412.0226591666,40268.0753550602
+ 39078.689325833264,39783.7136697233
+ 39333.333333333336,39000.0
+ 39078.689325833264,38216.2863302767
+ 38412.0226591666,37731.9246449398
+ 37587.9773408334,37731.9246449398
+ 36921.310674166736,38216.2863302767
+ 36666.666666666664,39000.0
+ 36921.310674166736,39783.7136697233
+ 37587.9773408334,40268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>42412.0226591666,40268.0753550602
+ 43078.689325833264,39783.7136697233
+ 43333.333333333336,39000.0
+ 43078.689325833264,38216.2863302767
+ 42412.0226591666,37731.9246449398
+ 41587.9773408334,37731.9246449398
+ 40921.310674166736,38216.2863302767
+ 40666.666666666664,39000.0
+ 40921.310674166736,39783.7136697233
+ 41587.9773408334,40268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>46412.0226591666,34268.0753550602
+ 47078.689325833264,33783.7136697233
+ 47333.333333333336,33000.0
+ 47078.689325833264,32216.286330276704
+ 46412.0226591666,31731.924644939794
+ 45587.9773408334,31731.924644939794
+ 44921.310674166736,32216.286330276704
+ 44666.666666666664,33000.0
+ 44921.310674166736,33783.7136697233
+ 45587.9773408334,34268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>50412.0226591666,34268.0753550602
+ 51078.689325833264,33783.7136697233
+ 51333.333333333336,33000.0
+ 51078.689325833264,32216.286330276704
+ 50412.0226591666,31731.924644939794
+ 49587.9773408334,31731.924644939794
+ 48921.310674166736,32216.286330276704
+ 48666.666666666664,33000.0
+ 48921.310674166736,33783.7136697233
+ 49587.9773408334,34268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>46412.0226591666,40268.0753550602
+ 47078.689325833264,39783.7136697233
+ 47333.333333333336,39000.0
+ 47078.689325833264,38216.2863302767
+ 46412.0226591666,37731.9246449398
+ 45587.9773408334,37731.9246449398
+ 44921.310674166736,38216.2863302767
+ 44666.666666666664,39000.0
+ 44921.310674166736,39783.7136697233
+ 45587.9773408334,40268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>50412.0226591666,40268.0753550602
+ 51078.689325833264,39783.7136697233
+ 51333.333333333336,39000.0
+ 51078.689325833264,38216.2863302767
+ 50412.0226591666,37731.9246449398
+ 49587.9773408334,37731.9246449398
+ 48921.310674166736,38216.2863302767
+ 48666.666666666664,39000.0
+ 48921.310674166736,39783.7136697233
+ 49587.9773408334,40268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>54412.0226591666,34268.0753550602
+ 55078.689325833264,33783.7136697233
+ 55333.333333333336,33000.0
+ 55078.689325833264,32216.286330276704
+ 54412.0226591666,31731.924644939794
+ 53587.9773408334,31731.924644939794
+ 52921.310674166736,32216.286330276704
+ 52666.666666666664,33000.0
+ 52921.310674166736,33783.7136697233
+ 53587.9773408334,34268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>58412.0226591666,34268.0753550602
+ 59078.689325833264,33783.7136697233
+ 59333.333333333336,33000.0
+ 59078.689325833264,32216.286330276704
+ 58412.0226591666,31731.924644939794
+ 57587.9773408334,31731.924644939794
+ 56921.310674166736,32216.286330276704
+ 56666.666666666664,33000.0
+ 56921.310674166736,33783.7136697233
+ 57587.9773408334,34268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>54412.0226591666,40268.0753550602
+ 55078.689325833264,39783.7136697233
+ 55333.333333333336,39000.0
+ 55078.689325833264,38216.2863302767
+ 54412.0226591666,37731.9246449398
+ 53587.9773408334,37731.9246449398
+ 52921.310674166736,38216.2863302767
+ 52666.666666666664,39000.0
+ 52921.310674166736,39783.7136697233
+ 53587.9773408334,40268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>58412.0226591666,40268.0753550602
+ 59078.689325833264,39783.7136697233
+ 59333.333333333336,39000.0
+ 59078.689325833264,38216.2863302767
+ 58412.0226591666,37731.9246449398
+ 57587.9773408334,37731.9246449398
+ 56921.310674166736,38216.2863302767
+ 56666.666666666664,39000.0
+ 56921.310674166736,39783.7136697233
+ 57587.9773408334,40268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>22412.022659166596,46268.0753550602
+ 23078.689325833264,45783.7136697233
+ 23333.333333333332,45000.0
+ 23078.689325833264,44216.2863302767
+ 22412.022659166596,43731.9246449398
+ 21587.977340833404,43731.9246449398
+ 20921.310674166736,44216.2863302767
+ 20666.666666666668,45000.0
+ 20921.310674166736,45783.7136697233
+ 21587.977340833404,46268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>26412.022659166596,46268.0753550602
+ 27078.689325833264,45783.7136697233
+ 27333.333333333332,45000.0
+ 27078.689325833264,44216.2863302767
+ 26412.022659166596,43731.9246449398
+ 25587.977340833404,43731.9246449398
+ 24921.310674166736,44216.2863302767
+ 24666.666666666668,45000.0
+ 24921.310674166736,45783.7136697233
+ 25587.977340833404,46268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>22412.022659166596,52268.0753550602
+ 23078.689325833264,51783.7136697233
+ 23333.333333333332,51000.0
+ 23078.689325833264,50216.2863302767
+ 22412.022659166596,49731.9246449398
+ 21587.977340833404,49731.9246449398
+ 20921.310674166736,50216.2863302767
+ 20666.666666666668,51000.0
+ 20921.310674166736,51783.7136697233
+ 21587.977340833404,52268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>26412.022659166596,52268.0753550602
+ 27078.689325833264,51783.7136697233
+ 27333.333333333332,51000.0
+ 27078.689325833264,50216.2863302767
+ 26412.022659166596,49731.9246449398
+ 25587.977340833404,49731.9246449398
+ 24921.310674166736,50216.2863302767
+ 24666.666666666668,51000.0
+ 24921.310674166736,51783.7136697233
+ 25587.977340833404,52268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>30412.022659166596,46268.0753550602
+ 31078.689325833264,45783.7136697233
+ 31333.333333333332,45000.0
+ 31078.689325833264,44216.2863302767
+ 30412.022659166596,43731.9246449398
+ 29587.977340833404,43731.9246449398
+ 28921.310674166736,44216.2863302767
+ 28666.666666666668,45000.0
+ 28921.310674166736,45783.7136697233
+ 29587.977340833404,46268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>34412.0226591666,46268.0753550602
+ 35078.689325833264,45783.7136697233
+ 35333.333333333336,45000.0
+ 35078.689325833264,44216.2863302767
+ 34412.0226591666,43731.9246449398
+ 33587.9773408334,43731.9246449398
+ 32921.310674166736,44216.2863302767
+ 32666.666666666668,45000.0
+ 32921.310674166736,45783.7136697233
+ 33587.9773408334,46268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>30412.022659166596,52268.0753550602
+ 31078.689325833264,51783.7136697233
+ 31333.333333333332,51000.0
+ 31078.689325833264,50216.2863302767
+ 30412.022659166596,49731.9246449398
+ 29587.977340833404,49731.9246449398
+ 28921.310674166736,50216.2863302767
+ 28666.666666666668,51000.0
+ 28921.310674166736,51783.7136697233
+ 29587.977340833404,52268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>34412.0226591666,52268.0753550602
+ 35078.689325833264,51783.7136697233
+ 35333.333333333336,51000.0
+ 35078.689325833264,50216.2863302767
+ 34412.0226591666,49731.9246449398
+ 33587.9773408334,49731.9246449398
+ 32921.310674166736,50216.2863302767
+ 32666.666666666668,51000.0
+ 32921.310674166736,51783.7136697233
+ 33587.9773408334,52268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>38412.0226591666,46268.0753550602
+ 39078.689325833264,45783.7136697233
+ 39333.333333333336,45000.0
+ 39078.689325833264,44216.2863302767
+ 38412.0226591666,43731.9246449398
+ 37587.9773408334,43731.9246449398
+ 36921.310674166736,44216.2863302767
+ 36666.666666666664,45000.0
+ 36921.310674166736,45783.7136697233
+ 37587.9773408334,46268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>42412.0226591666,46268.0753550602
+ 43078.689325833264,45783.7136697233
+ 43333.333333333336,45000.0
+ 43078.689325833264,44216.2863302767
+ 42412.0226591666,43731.9246449398
+ 41587.9773408334,43731.9246449398
+ 40921.310674166736,44216.2863302767
+ 40666.666666666664,45000.0
+ 40921.310674166736,45783.7136697233
+ 41587.9773408334,46268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>38412.0226591666,52268.0753550602
+ 39078.689325833264,51783.7136697233
+ 39333.333333333336,51000.0
+ 39078.689325833264,50216.2863302767
+ 38412.0226591666,49731.9246449398
+ 37587.9773408334,49731.9246449398
+ 36921.310674166736,50216.2863302767
+ 36666.666666666664,51000.0
+ 36921.310674166736,51783.7136697233
+ 37587.9773408334,52268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>42412.0226591666,52268.0753550602
+ 43078.689325833264,51783.7136697233
+ 43333.333333333336,51000.0
+ 43078.689325833264,50216.2863302767
+ 42412.0226591666,49731.9246449398
+ 41587.9773408334,49731.9246449398
+ 40921.310674166736,50216.2863302767
+ 40666.666666666664,51000.0
+ 40921.310674166736,51783.7136697233
+ 41587.9773408334,52268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>46412.0226591666,46268.0753550602
+ 47078.689325833264,45783.7136697233
+ 47333.333333333336,45000.0
+ 47078.689325833264,44216.2863302767
+ 46412.0226591666,43731.9246449398
+ 45587.9773408334,43731.9246449398
+ 44921.310674166736,44216.2863302767
+ 44666.666666666664,45000.0
+ 44921.310674166736,45783.7136697233
+ 45587.9773408334,46268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>50412.0226591666,46268.0753550602
+ 51078.689325833264,45783.7136697233
+ 51333.333333333336,45000.0
+ 51078.689325833264,44216.2863302767
+ 50412.0226591666,43731.9246449398
+ 49587.9773408334,43731.9246449398
+ 48921.310674166736,44216.2863302767
+ 48666.666666666664,45000.0
+ 48921.310674166736,45783.7136697233
+ 49587.9773408334,46268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>46412.0226591666,52268.0753550602
+ 47078.689325833264,51783.7136697233
+ 47333.333333333336,51000.0
+ 47078.689325833264,50216.2863302767
+ 46412.0226591666,49731.9246449398
+ 45587.9773408334,49731.9246449398
+ 44921.310674166736,50216.2863302767
+ 44666.666666666664,51000.0
+ 44921.310674166736,51783.7136697233
+ 45587.9773408334,52268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>50412.0226591666,52268.0753550602
+ 51078.689325833264,51783.7136697233
+ 51333.333333333336,51000.0
+ 51078.689325833264,50216.2863302767
+ 50412.0226591666,49731.9246449398
+ 49587.9773408334,49731.9246449398
+ 48921.310674166736,50216.2863302767
+ 48666.666666666664,51000.0
+ 48921.310674166736,51783.7136697233
+ 49587.9773408334,52268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>54412.0226591666,46268.0753550602
+ 55078.689325833264,45783.7136697233
+ 55333.333333333336,45000.0
+ 55078.689325833264,44216.2863302767
+ 54412.0226591666,43731.9246449398
+ 53587.9773408334,43731.9246449398
+ 52921.310674166736,44216.2863302767
+ 52666.666666666664,45000.0
+ 52921.310674166736,45783.7136697233
+ 53587.9773408334,46268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>58412.0226591666,46268.0753550602
+ 59078.689325833264,45783.7136697233
+ 59333.333333333336,45000.0
+ 59078.689325833264,44216.2863302767
+ 58412.0226591666,43731.9246449398
+ 57587.9773408334,43731.9246449398
+ 56921.310674166736,44216.2863302767
+ 56666.666666666664,45000.0
+ 56921.310674166736,45783.7136697233
+ 57587.9773408334,46268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>54412.0226591666,52268.0753550602
+ 55078.689325833264,51783.7136697233
+ 55333.333333333336,51000.0
+ 55078.689325833264,50216.2863302767
+ 54412.0226591666,49731.9246449398
+ 53587.9773408334,49731.9246449398
+ 52921.310674166736,50216.2863302767
+ 52666.666666666664,51000.0
+ 52921.310674166736,51783.7136697233
+ 53587.9773408334,52268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>58412.0226591666,52268.0753550602
+ 59078.689325833264,51783.7136697233
+ 59333.333333333336,51000.0
+ 59078.689325833264,50216.2863302767
+ 58412.0226591666,49731.9246449398
+ 57587.9773408334,49731.9246449398
+ 56921.310674166736,50216.2863302767
+ 56666.666666666664,51000.0
+ 56921.310674166736,51783.7136697233
+ 57587.9773408334,52268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>22412.022659166596,58268.0753550602
+ 23078.689325833264,57783.7136697233
+ 23333.333333333332,57000.0
+ 23078.689325833264,56216.2863302767
+ 22412.022659166596,55731.9246449398
+ 21587.977340833404,55731.9246449398
+ 20921.310674166736,56216.2863302767
+ 20666.666666666668,57000.0
+ 20921.310674166736,57783.7136697233
+ 21587.977340833404,58268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>26412.022659166596,58268.0753550602
+ 27078.689325833264,57783.7136697233
+ 27333.333333333332,57000.0
+ 27078.689325833264,56216.2863302767
+ 26412.022659166596,55731.9246449398
+ 25587.977340833404,55731.9246449398
+ 24921.310674166736,56216.2863302767
+ 24666.666666666668,57000.0
+ 24921.310674166736,57783.7136697233
+ 25587.977340833404,58268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>22412.022659166596,64268.0753550602
+ 23078.689325833264,63783.7136697233
+ 23333.333333333332,63000.0
+ 23078.689325833264,62216.2863302767
+ 22412.022659166596,61731.9246449398
+ 21587.977340833404,61731.9246449398
+ 20921.310674166736,62216.2863302767
+ 20666.666666666668,63000.0
+ 20921.310674166736,63783.7136697233
+ 21587.977340833404,64268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>26412.022659166596,64268.0753550602
+ 27078.689325833264,63783.7136697233
+ 27333.333333333332,63000.0
+ 27078.689325833264,62216.2863302767
+ 26412.022659166596,61731.9246449398
+ 25587.977340833404,61731.9246449398
+ 24921.310674166736,62216.2863302767
+ 24666.666666666668,63000.0
+ 24921.310674166736,63783.7136697233
+ 25587.977340833404,64268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>30412.022659166596,58268.0753550602
+ 31078.689325833264,57783.7136697233
+ 31333.333333333332,57000.0
+ 31078.689325833264,56216.2863302767
+ 30412.022659166596,55731.9246449398
+ 29587.977340833404,55731.9246449398
+ 28921.310674166736,56216.2863302767
+ 28666.666666666668,57000.0
+ 28921.310674166736,57783.7136697233
+ 29587.977340833404,58268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>34412.0226591666,58268.0753550602
+ 35078.689325833264,57783.7136697233
+ 35333.333333333336,57000.0
+ 35078.689325833264,56216.2863302767
+ 34412.0226591666,55731.9246449398
+ 33587.9773408334,55731.9246449398
+ 32921.310674166736,56216.2863302767
+ 32666.666666666668,57000.0
+ 32921.310674166736,57783.7136697233
+ 33587.9773408334,58268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>30412.022659166596,64268.0753550602
+ 31078.689325833264,63783.7136697233
+ 31333.333333333332,63000.0
+ 31078.689325833264,62216.2863302767
+ 30412.022659166596,61731.9246449398
+ 29587.977340833404,61731.9246449398
+ 28921.310674166736,62216.2863302767
+ 28666.666666666668,63000.0
+ 28921.310674166736,63783.7136697233
+ 29587.977340833404,64268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>34412.0226591666,64268.0753550602
+ 35078.689325833264,63783.7136697233
+ 35333.333333333336,63000.0
+ 35078.689325833264,62216.2863302767
+ 34412.0226591666,61731.9246449398
+ 33587.9773408334,61731.9246449398
+ 32921.310674166736,62216.2863302767
+ 32666.666666666668,63000.0
+ 32921.310674166736,63783.7136697233
+ 33587.9773408334,64268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>38412.0226591666,58268.0753550602
+ 39078.689325833264,57783.7136697233
+ 39333.333333333336,57000.0
+ 39078.689325833264,56216.2863302767
+ 38412.0226591666,55731.9246449398
+ 37587.9773408334,55731.9246449398
+ 36921.310674166736,56216.2863302767
+ 36666.666666666664,57000.0
+ 36921.310674166736,57783.7136697233
+ 37587.9773408334,58268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>42412.0226591666,58268.0753550602
+ 43078.689325833264,57783.7136697233
+ 43333.333333333336,57000.0
+ 43078.689325833264,56216.2863302767
+ 42412.0226591666,55731.9246449398
+ 41587.9773408334,55731.9246449398
+ 40921.310674166736,56216.2863302767
+ 40666.666666666664,57000.0
+ 40921.310674166736,57783.7136697233
+ 41587.9773408334,58268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>38412.0226591666,64268.0753550602
+ 39078.689325833264,63783.7136697233
+ 39333.333333333336,63000.0
+ 39078.689325833264,62216.2863302767
+ 38412.0226591666,61731.9246449398
+ 37587.9773408334,61731.9246449398
+ 36921.310674166736,62216.2863302767
+ 36666.666666666664,63000.0
+ 36921.310674166736,63783.7136697233
+ 37587.9773408334,64268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>42412.0226591666,64268.0753550602
+ 43078.689325833264,63783.7136697233
+ 43333.333333333336,63000.0
+ 43078.689325833264,62216.2863302767
+ 42412.0226591666,61731.9246449398
+ 41587.9773408334,61731.9246449398
+ 40921.310674166736,62216.2863302767
+ 40666.666666666664,63000.0
+ 40921.310674166736,63783.7136697233
+ 41587.9773408334,64268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>46412.0226591666,58268.0753550602
+ 47078.689325833264,57783.7136697233
+ 47333.333333333336,57000.0
+ 47078.689325833264,56216.2863302767
+ 46412.0226591666,55731.9246449398
+ 45587.9773408334,55731.9246449398
+ 44921.310674166736,56216.2863302767
+ 44666.666666666664,57000.0
+ 44921.310674166736,57783.7136697233
+ 45587.9773408334,58268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>50412.0226591666,58268.0753550602
+ 51078.689325833264,57783.7136697233
+ 51333.333333333336,57000.0
+ 51078.689325833264,56216.2863302767
+ 50412.0226591666,55731.9246449398
+ 49587.9773408334,55731.9246449398
+ 48921.310674166736,56216.2863302767
+ 48666.666666666664,57000.0
+ 48921.310674166736,57783.7136697233
+ 49587.9773408334,58268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>46412.0226591666,64268.0753550602
+ 47078.689325833264,63783.7136697233
+ 47333.333333333336,63000.0
+ 47078.689325833264,62216.2863302767
+ 46412.0226591666,61731.9246449398
+ 45587.9773408334,61731.9246449398
+ 44921.310674166736,62216.2863302767
+ 44666.666666666664,63000.0
+ 44921.310674166736,63783.7136697233
+ 45587.9773408334,64268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>50412.0226591666,64268.0753550602
+ 51078.689325833264,63783.7136697233
+ 51333.333333333336,63000.0
+ 51078.689325833264,62216.2863302767
+ 50412.0226591666,61731.9246449398
+ 49587.9773408334,61731.9246449398
+ 48921.310674166736,62216.2863302767
+ 48666.666666666664,63000.0
+ 48921.310674166736,63783.7136697233
+ 49587.9773408334,64268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>54412.0226591666,58268.0753550602
+ 55078.689325833264,57783.7136697233
+ 55333.333333333336,57000.0
+ 55078.689325833264,56216.2863302767
+ 54412.0226591666,55731.9246449398
+ 53587.9773408334,55731.9246449398
+ 52921.310674166736,56216.2863302767
+ 52666.666666666664,57000.0
+ 52921.310674166736,57783.7136697233
+ 53587.9773408334,58268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>58412.0226591666,58268.0753550602
+ 59078.689325833264,57783.7136697233
+ 59333.333333333336,57000.0
+ 59078.689325833264,56216.2863302767
+ 58412.0226591666,55731.9246449398
+ 57587.9773408334,55731.9246449398
+ 56921.310674166736,56216.2863302767
+ 56666.666666666664,57000.0
+ 56921.310674166736,57783.7136697233
+ 57587.9773408334,58268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>54412.0226591666,64268.0753550602
+ 55078.689325833264,63783.7136697233
+ 55333.333333333336,63000.0
+ 55078.689325833264,62216.2863302767
+ 54412.0226591666,61731.9246449398
+ 53587.9773408334,61731.9246449398
+ 52921.310674166736,62216.2863302767
+ 52666.666666666664,63000.0
+ 52921.310674166736,63783.7136697233
+ 53587.9773408334,64268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>58412.0226591666,64268.0753550602
+ 59078.689325833264,63783.7136697233
+ 59333.333333333336,63000.0
+ 59078.689325833264,62216.2863302767
+ 58412.0226591666,61731.9246449398
+ 57587.9773408334,61731.9246449398
+ 56921.310674166736,62216.2863302767
+ 56666.666666666664,63000.0
+ 56921.310674166736,63783.7136697233
+ 57587.9773408334,64268.0753550602 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>22412.022659166596,70268.07535506021
+ 23078.689325833264,69783.71366972329
+ 23333.333333333332,69000.0
+ 23078.689325833264,68216.28633027671
+ 22412.022659166596,67731.92464493979
+ 21587.977340833404,67731.92464493979
+ 20921.310674166736,68216.28633027671
+ 20666.666666666668,69000.0
+ 20921.310674166736,69783.71366972329
+ 21587.977340833404,70268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>26412.022659166596,70268.07535506021
+ 27078.689325833264,69783.71366972329
+ 27333.333333333332,69000.0
+ 27078.689325833264,68216.28633027671
+ 26412.022659166596,67731.92464493979
+ 25587.977340833404,67731.92464493979
+ 24921.310674166736,68216.28633027671
+ 24666.666666666668,69000.0
+ 24921.310674166736,69783.71366972329
+ 25587.977340833404,70268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>22412.022659166596,76268.07535506021
+ 23078.689325833264,75783.71366972329
+ 23333.333333333332,75000.0
+ 23078.689325833264,74216.28633027671
+ 22412.022659166596,73731.92464493979
+ 21587.977340833404,73731.92464493979
+ 20921.310674166736,74216.28633027671
+ 20666.666666666668,75000.0
+ 20921.310674166736,75783.71366972329
+ 21587.977340833404,76268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>26412.022659166596,76268.07535506021
+ 27078.689325833264,75783.71366972329
+ 27333.333333333332,75000.0
+ 27078.689325833264,74216.28633027671
+ 26412.022659166596,73731.92464493979
+ 25587.977340833404,73731.92464493979
+ 24921.310674166736,74216.28633027671
+ 24666.666666666668,75000.0
+ 24921.310674166736,75783.71366972329
+ 25587.977340833404,76268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>30412.022659166596,70268.07535506021
+ 31078.689325833264,69783.71366972329
+ 31333.333333333332,69000.0
+ 31078.689325833264,68216.28633027671
+ 30412.022659166596,67731.92464493979
+ 29587.977340833404,67731.92464493979
+ 28921.310674166736,68216.28633027671
+ 28666.666666666668,69000.0
+ 28921.310674166736,69783.71366972329
+ 29587.977340833404,70268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>34412.0226591666,70268.07535506021
+ 35078.689325833264,69783.71366972329
+ 35333.333333333336,69000.0
+ 35078.689325833264,68216.28633027671
+ 34412.0226591666,67731.92464493979
+ 33587.9773408334,67731.92464493979
+ 32921.310674166736,68216.28633027671
+ 32666.666666666668,69000.0
+ 32921.310674166736,69783.71366972329
+ 33587.9773408334,70268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>30412.022659166596,76268.07535506021
+ 31078.689325833264,75783.71366972329
+ 31333.333333333332,75000.0
+ 31078.689325833264,74216.28633027671
+ 30412.022659166596,73731.92464493979
+ 29587.977340833404,73731.92464493979
+ 28921.310674166736,74216.28633027671
+ 28666.666666666668,75000.0
+ 28921.310674166736,75783.71366972329
+ 29587.977340833404,76268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>34412.0226591666,76268.07535506021
+ 35078.689325833264,75783.71366972329
+ 35333.333333333336,75000.0
+ 35078.689325833264,74216.28633027671
+ 34412.0226591666,73731.92464493979
+ 33587.9773408334,73731.92464493979
+ 32921.310674166736,74216.28633027671
+ 32666.666666666668,75000.0
+ 32921.310674166736,75783.71366972329
+ 33587.9773408334,76268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>38412.0226591666,70268.07535506021
+ 39078.689325833264,69783.71366972329
+ 39333.333333333336,69000.0
+ 39078.689325833264,68216.28633027671
+ 38412.0226591666,67731.92464493979
+ 37587.9773408334,67731.92464493979
+ 36921.310674166736,68216.28633027671
+ 36666.666666666664,69000.0
+ 36921.310674166736,69783.71366972329
+ 37587.9773408334,70268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>42412.0226591666,70268.07535506021
+ 43078.689325833264,69783.71366972329
+ 43333.333333333336,69000.0
+ 43078.689325833264,68216.28633027671
+ 42412.0226591666,67731.92464493979
+ 41587.9773408334,67731.92464493979
+ 40921.310674166736,68216.28633027671
+ 40666.666666666664,69000.0
+ 40921.310674166736,69783.71366972329
+ 41587.9773408334,70268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>38412.0226591666,76268.07535506021
+ 39078.689325833264,75783.71366972329
+ 39333.333333333336,75000.0
+ 39078.689325833264,74216.28633027671
+ 38412.0226591666,73731.92464493979
+ 37587.9773408334,73731.92464493979
+ 36921.310674166736,74216.28633027671
+ 36666.666666666664,75000.0
+ 36921.310674166736,75783.71366972329
+ 37587.9773408334,76268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>42412.0226591666,76268.07535506021
+ 43078.689325833264,75783.71366972329
+ 43333.333333333336,75000.0
+ 43078.689325833264,74216.28633027671
+ 42412.0226591666,73731.92464493979
+ 41587.9773408334,73731.92464493979
+ 40921.310674166736,74216.28633027671
+ 40666.666666666664,75000.0
+ 40921.310674166736,75783.71366972329
+ 41587.9773408334,76268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>46412.0226591666,70268.07535506021
+ 47078.689325833264,69783.71366972329
+ 47333.333333333336,69000.0
+ 47078.689325833264,68216.28633027671
+ 46412.0226591666,67731.92464493979
+ 45587.9773408334,67731.92464493979
+ 44921.310674166736,68216.28633027671
+ 44666.666666666664,69000.0
+ 44921.310674166736,69783.71366972329
+ 45587.9773408334,70268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>50412.0226591666,70268.07535506021
+ 51078.689325833264,69783.71366972329
+ 51333.333333333336,69000.0
+ 51078.689325833264,68216.28633027671
+ 50412.0226591666,67731.92464493979
+ 49587.9773408334,67731.92464493979
+ 48921.310674166736,68216.28633027671
+ 48666.666666666664,69000.0
+ 48921.310674166736,69783.71366972329
+ 49587.9773408334,70268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>46412.0226591666,76268.07535506021
+ 47078.689325833264,75783.71366972329
+ 47333.333333333336,75000.0
+ 47078.689325833264,74216.28633027671
+ 46412.0226591666,73731.92464493979
+ 45587.9773408334,73731.92464493979
+ 44921.310674166736,74216.28633027671
+ 44666.666666666664,75000.0
+ 44921.310674166736,75783.71366972329
+ 45587.9773408334,76268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>50412.0226591666,76268.07535506021
+ 51078.689325833264,75783.71366972329
+ 51333.333333333336,75000.0
+ 51078.689325833264,74216.28633027671
+ 50412.0226591666,73731.92464493979
+ 49587.9773408334,73731.92464493979
+ 48921.310674166736,74216.28633027671
+ 48666.666666666664,75000.0
+ 48921.310674166736,75783.71366972329
+ 49587.9773408334,76268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>54412.0226591666,70268.07535506021
+ 55078.689325833264,69783.71366972329
+ 55333.333333333336,69000.0
+ 55078.689325833264,68216.28633027671
+ 54412.0226591666,67731.92464493979
+ 53587.9773408334,67731.92464493979
+ 52921.310674166736,68216.28633027671
+ 52666.666666666664,69000.0
+ 52921.310674166736,69783.71366972329
+ 53587.9773408334,70268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>58412.0226591666,70268.07535506021
+ 59078.689325833264,69783.71366972329
+ 59333.333333333336,69000.0
+ 59078.689325833264,68216.28633027671
+ 58412.0226591666,67731.92464493979
+ 57587.9773408334,67731.92464493979
+ 56921.310674166736,68216.28633027671
+ 56666.666666666664,69000.0
+ 56921.310674166736,69783.71366972329
+ 57587.9773408334,70268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>54412.0226591666,76268.07535506021
+ 55078.689325833264,75783.71366972329
+ 55333.333333333336,75000.0
+ 55078.689325833264,74216.28633027671
+ 54412.0226591666,73731.92464493979
+ 53587.9773408334,73731.92464493979
+ 52921.310674166736,74216.28633027671
+ 52666.666666666664,75000.0
+ 52921.310674166736,75783.71366972329
+ 53587.9773408334,76268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>58412.0226591666,76268.07535506021
+ 59078.689325833264,75783.71366972329
+ 59333.333333333336,75000.0
+ 59078.689325833264,74216.28633027671
+ 58412.0226591666,73731.92464493979
+ 57587.9773408334,73731.92464493979
+ 56921.310674166736,74216.28633027671
+ 56666.666666666664,75000.0
+ 56921.310674166736,75783.71366972329
+ 57587.9773408334,76268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>22412.022659166596,82268.07535506021
+ 23078.689325833264,81783.71366972329
+ 23333.333333333332,81000.0
+ 23078.689325833264,80216.28633027671
+ 22412.022659166596,79731.92464493979
+ 21587.977340833404,79731.92464493979
+ 20921.310674166736,80216.28633027671
+ 20666.666666666668,81000.0
+ 20921.310674166736,81783.71366972329
+ 21587.977340833404,82268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>26412.022659166596,82268.07535506021
+ 27078.689325833264,81783.71366972329
+ 27333.333333333332,81000.0
+ 27078.689325833264,80216.28633027671
+ 26412.022659166596,79731.92464493979
+ 25587.977340833404,79731.92464493979
+ 24921.310674166736,80216.28633027671
+ 24666.666666666668,81000.0
+ 24921.310674166736,81783.71366972329
+ 25587.977340833404,82268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>22412.022659166596,88268.07535506021
+ 23078.689325833264,87783.71366972329
+ 23333.333333333332,87000.0
+ 23078.689325833264,86216.28633027671
+ 22412.022659166596,85731.92464493979
+ 21587.977340833404,85731.92464493979
+ 20921.310674166736,86216.28633027671
+ 20666.666666666668,87000.0
+ 20921.310674166736,87783.71366972329
+ 21587.977340833404,88268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>26412.022659166596,88268.07535506021
+ 27078.689325833264,87783.71366972329
+ 27333.333333333332,87000.0
+ 27078.689325833264,86216.28633027671
+ 26412.022659166596,85731.92464493979
+ 25587.977340833404,85731.92464493979
+ 24921.310674166736,86216.28633027671
+ 24666.666666666668,87000.0
+ 24921.310674166736,87783.71366972329
+ 25587.977340833404,88268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>30412.022659166596,82268.07535506021
+ 31078.689325833264,81783.71366972329
+ 31333.333333333332,81000.0
+ 31078.689325833264,80216.28633027671
+ 30412.022659166596,79731.92464493979
+ 29587.977340833404,79731.92464493979
+ 28921.310674166736,80216.28633027671
+ 28666.666666666668,81000.0
+ 28921.310674166736,81783.71366972329
+ 29587.977340833404,82268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>34412.0226591666,82268.07535506021
+ 35078.689325833264,81783.71366972329
+ 35333.333333333336,81000.0
+ 35078.689325833264,80216.28633027671
+ 34412.0226591666,79731.92464493979
+ 33587.9773408334,79731.92464493979
+ 32921.310674166736,80216.28633027671
+ 32666.666666666668,81000.0
+ 32921.310674166736,81783.71366972329
+ 33587.9773408334,82268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>30412.022659166596,88268.07535506021
+ 31078.689325833264,87783.71366972329
+ 31333.333333333332,87000.0
+ 31078.689325833264,86216.28633027671
+ 30412.022659166596,85731.92464493979
+ 29587.977340833404,85731.92464493979
+ 28921.310674166736,86216.28633027671
+ 28666.666666666668,87000.0
+ 28921.310674166736,87783.71366972329
+ 29587.977340833404,88268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>34412.0226591666,88268.07535506021
+ 35078.689325833264,87783.71366972329
+ 35333.333333333336,87000.0
+ 35078.689325833264,86216.28633027671
+ 34412.0226591666,85731.92464493979
+ 33587.9773408334,85731.92464493979
+ 32921.310674166736,86216.28633027671
+ 32666.666666666668,87000.0
+ 32921.310674166736,87783.71366972329
+ 33587.9773408334,88268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>38412.0226591666,82268.07535506021
+ 39078.689325833264,81783.71366972329
+ 39333.333333333336,81000.0
+ 39078.689325833264,80216.28633027671
+ 38412.0226591666,79731.92464493979
+ 37587.9773408334,79731.92464493979
+ 36921.310674166736,80216.28633027671
+ 36666.666666666664,81000.0
+ 36921.310674166736,81783.71366972329
+ 37587.9773408334,82268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>42412.0226591666,82268.07535506021
+ 43078.689325833264,81783.71366972329
+ 43333.333333333336,81000.0
+ 43078.689325833264,80216.28633027671
+ 42412.0226591666,79731.92464493979
+ 41587.9773408334,79731.92464493979
+ 40921.310674166736,80216.28633027671
+ 40666.666666666664,81000.0
+ 40921.310674166736,81783.71366972329
+ 41587.9773408334,82268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>38412.0226591666,88268.07535506021
+ 39078.689325833264,87783.71366972329
+ 39333.333333333336,87000.0
+ 39078.689325833264,86216.28633027671
+ 38412.0226591666,85731.92464493979
+ 37587.9773408334,85731.92464493979
+ 36921.310674166736,86216.28633027671
+ 36666.666666666664,87000.0
+ 36921.310674166736,87783.71366972329
+ 37587.9773408334,88268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>42412.0226591666,88268.07535506021
+ 43078.689325833264,87783.71366972329
+ 43333.333333333336,87000.0
+ 43078.689325833264,86216.28633027671
+ 42412.0226591666,85731.92464493979
+ 41587.9773408334,85731.92464493979
+ 40921.310674166736,86216.28633027671
+ 40666.666666666664,87000.0
+ 40921.310674166736,87783.71366972329
+ 41587.9773408334,88268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>46412.0226591666,82268.07535506021
+ 47078.689325833264,81783.71366972329
+ 47333.333333333336,81000.0
+ 47078.689325833264,80216.28633027671
+ 46412.0226591666,79731.92464493979
+ 45587.9773408334,79731.92464493979
+ 44921.310674166736,80216.28633027671
+ 44666.666666666664,81000.0
+ 44921.310674166736,81783.71366972329
+ 45587.9773408334,82268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>50412.0226591666,82268.07535506021
+ 51078.689325833264,81783.71366972329
+ 51333.333333333336,81000.0
+ 51078.689325833264,80216.28633027671
+ 50412.0226591666,79731.92464493979
+ 49587.9773408334,79731.92464493979
+ 48921.310674166736,80216.28633027671
+ 48666.666666666664,81000.0
+ 48921.310674166736,81783.71366972329
+ 49587.9773408334,82268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>46412.0226591666,88268.07535506021
+ 47078.689325833264,87783.71366972329
+ 47333.333333333336,87000.0
+ 47078.689325833264,86216.28633027671
+ 46412.0226591666,85731.92464493979
+ 45587.9773408334,85731.92464493979
+ 44921.310674166736,86216.28633027671
+ 44666.666666666664,87000.0
+ 44921.310674166736,87783.71366972329
+ 45587.9773408334,88268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>50412.0226591666,88268.07535506021
+ 51078.689325833264,87783.71366972329
+ 51333.333333333336,87000.0
+ 51078.689325833264,86216.28633027671
+ 50412.0226591666,85731.92464493979
+ 49587.9773408334,85731.92464493979
+ 48921.310674166736,86216.28633027671
+ 48666.666666666664,87000.0
+ 48921.310674166736,87783.71366972329
+ 49587.9773408334,88268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+
+ <MultiLineString>
+ <lineStringMember>
+ <LineString>
+ <coordinates>54412.0226591666,82268.07535506021
+ 55078.689325833264,81783.71366972329
+ 55333.333333333336,81000.0
+ 55078.689325833264,80216.28633027671
+ 54412.0226591666,79731.92464493979
+ 53587.9773408334,79731.92464493979
+ 52921.310674166736,80216.28633027671
+ 52666.666666666664,81000.0
+ 52921.310674166736,81783.71366972329
+ 53587.9773408334,82268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>58412.0226591666,82268.07535506021
+ 59078.689325833264,81783.71366972329
+ 59333.333333333336,81000.0
+ 59078.689325833264,80216.28633027671
+ 58412.0226591666,79731.92464493979
+ 57587.9773408334,79731.92464493979
+ 56921.310674166736,80216.28633027671
+ 56666.666666666664,81000.0
+ 56921.310674166736,81783.71366972329
+ 57587.9773408334,82268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>54412.0226591666,88268.07535506021
+ 55078.689325833264,87783.71366972329
+ 55333.333333333336,87000.0
+ 55078.689325833264,86216.28633027671
+ 54412.0226591666,85731.92464493979
+ 53587.9773408334,85731.92464493979
+ 52921.310674166736,86216.28633027671
+ 52666.666666666664,87000.0
+ 52921.310674166736,87783.71366972329
+ 53587.9773408334,88268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ <lineStringMember>
+ <LineString>
+ <coordinates>58412.0226591666,88268.07535506021
+ 59078.689325833264,87783.71366972329
+ 59333.333333333336,87000.0
+ 59078.689325833264,86216.28633027671
+ 58412.0226591666,85731.92464493979
+ 57587.9773408334,85731.92464493979
+ 56921.310674166736,86216.28633027671
+ 56666.666666666664,87000.0
+ 56921.310674166736,87783.71366972329
+ 57587.9773408334,88268.07535506021 </coordinates>
+ </LineString>
+ </lineStringMember>
+ </MultiLineString>
+</MultiGeometry>
Added: packages/jts/branches/upstream/current/jtsio/test/data/multipoints.xml
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/data/multipoints.xml (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/data/multipoints.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,580 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<MultiGeometry>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>22000.0,33000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>26000.0,33000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>22000.0,39000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>26000.0,39000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>30000.0,33000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>34000.0,33000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>30000.0,39000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>34000.0,39000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>38000.0,33000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>42000.0,33000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>38000.0,39000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>42000.0,39000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>46000.0,33000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>50000.0,33000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>46000.0,39000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>50000.0,39000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>54000.0,33000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>58000.0,33000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>54000.0,39000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>58000.0,39000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>22000.0,45000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>26000.0,45000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>22000.0,51000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>26000.0,51000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>30000.0,45000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>34000.0,45000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>30000.0,51000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>34000.0,51000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>38000.0,45000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>42000.0,45000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>38000.0,51000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>42000.0,51000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>46000.0,45000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>50000.0,45000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>46000.0,51000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>50000.0,51000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>54000.0,45000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>58000.0,45000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>54000.0,51000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>58000.0,51000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>22000.0,57000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>26000.0,57000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>22000.0,63000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>26000.0,63000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>30000.0,57000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>34000.0,57000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>30000.0,63000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>34000.0,63000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>38000.0,57000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>42000.0,57000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>38000.0,63000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>42000.0,63000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>46000.0,57000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>50000.0,57000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>46000.0,63000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>50000.0,63000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>54000.0,57000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>58000.0,57000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>54000.0,63000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>58000.0,63000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>22000.0,69000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>26000.0,69000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>22000.0,75000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>26000.0,75000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>30000.0,69000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>34000.0,69000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>30000.0,75000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>34000.0,75000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>38000.0,69000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>42000.0,69000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>38000.0,75000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>42000.0,75000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>46000.0,69000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>50000.0,69000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>46000.0,75000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>50000.0,75000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>54000.0,69000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>58000.0,69000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>54000.0,75000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>58000.0,75000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>22000.0,81000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>26000.0,81000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>22000.0,87000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>26000.0,87000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>30000.0,81000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>34000.0,81000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>30000.0,87000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>34000.0,87000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>38000.0,81000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>42000.0,81000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>38000.0,87000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>42000.0,87000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>46000.0,81000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>50000.0,81000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>46000.0,87000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>50000.0,87000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+ <MultiPoint>
+ <pointMember>
+ <Point>
+ <coordinates>54000.0,81000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>58000.0,81000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>54000.0,87000.0 </coordinates>
+ </Point>
+ </pointMember>
+ <pointMember>
+ <Point>
+ <coordinates>58000.0,87000.0 </coordinates>
+ </Point>
+ </pointMember>
+ </MultiPoint>
+
+</MultiGeometry>
Added: packages/jts/branches/upstream/current/jtsio/test/data/multipolygons.xml
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/data/multipolygons.xml (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/data/multipolygons.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,8380 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<MultiGeometry>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,34333.333333333336
+ 22783.713669723296,34078.689325833264
+ 23268.075355060206,33412.0226591666
+ 23268.075355060206,32587.977340833404
+ 22783.713669723296,31921.310674166736
+ 22000.0,31666.666666666668
+ 21216.286330276704,31921.310674166736
+ 20731.924644939794,32587.977340833404
+ 20731.924644939794,33412.0226591666
+ 21216.286330276704,34078.689325833264
+ 22000.0,34333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,33000.0
+ 22669.13060635886,33743.14482547739
+ 22034.8994967025,33999.390827019095 22000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,33000.0
+ 22998.629534754575,33052.33595624295
+ 22731.35370161917,33681.9983600625 22000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,33000.0
+ 22743.144825477393,32330.869393641144
+ 22999.390827019095,32965.1005032975 22000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,33000.0
+ 22052.335956242943,32001.370465245425
+ 22681.9983600625,32268.64629838083 22000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,33000.0
+ 21330.86939364114,32256.855174522607
+ 21965.1005032975,32000.609172980905 22000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,33000.0
+ 21001.370465245425,32947.66404375705
+ 21268.64629838083,32318.0016399375 22000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,33000.0
+ 21256.855174522607,33669.130606358856
+ 21000.609172980905,33034.8994967025 22000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,33000.0
+ 21947.664043757057,33998.629534754575
+ 21318.0016399375,33731.35370161917 22000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,34333.333333333336
+ 26783.713669723296,34078.689325833264
+ 27268.075355060206,33412.0226591666
+ 27268.075355060206,32587.977340833404
+ 26783.713669723296,31921.310674166736
+ 26000.0,31666.666666666668
+ 25216.286330276704,31921.310674166736
+ 24731.924644939794,32587.977340833404
+ 24731.924644939794,33412.0226591666
+ 25216.286330276704,34078.689325833264
+ 26000.0,34333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,33000.0
+ 26669.13060635886,33743.14482547739
+ 26034.8994967025,33999.390827019095 26000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,33000.0
+ 26998.629534754575,33052.33595624295
+ 26731.35370161917,33681.9983600625 26000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,33000.0
+ 26743.144825477393,32330.869393641144
+ 26999.390827019095,32965.1005032975 26000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,33000.0
+ 26052.335956242943,32001.370465245425
+ 26681.9983600625,32268.64629838083 26000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,33000.0
+ 25330.86939364114,32256.855174522607
+ 25965.1005032975,32000.609172980905 26000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,33000.0
+ 25001.370465245425,32947.66404375705
+ 25268.64629838083,32318.0016399375 26000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,33000.0
+ 25256.855174522607,33669.130606358856
+ 25000.609172980905,33034.8994967025 26000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,33000.0
+ 25947.664043757057,33998.629534754575
+ 25318.0016399375,33731.35370161917 26000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,40333.333333333336
+ 22783.713669723296,40078.689325833264
+ 23268.075355060206,39412.0226591666
+ 23268.075355060206,38587.9773408334
+ 22783.713669723296,37921.310674166736
+ 22000.0,37666.666666666664
+ 21216.286330276704,37921.310674166736
+ 20731.924644939794,38587.9773408334
+ 20731.924644939794,39412.0226591666
+ 21216.286330276704,40078.689325833264
+ 22000.0,40333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,39000.0
+ 22669.13060635886,39743.14482547739
+ 22034.8994967025,39999.390827019095 22000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,39000.0
+ 22998.629534754575,39052.33595624295
+ 22731.35370161917,39681.9983600625 22000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,39000.0
+ 22743.144825477393,38330.869393641144
+ 22999.390827019095,38965.1005032975 22000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,39000.0
+ 22052.335956242943,38001.370465245425
+ 22681.9983600625,38268.64629838083 22000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,39000.0
+ 21330.86939364114,38256.85517452261
+ 21965.1005032975,38000.609172980905 22000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,39000.0
+ 21001.370465245425,38947.66404375705
+ 21268.64629838083,38318.0016399375 22000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,39000.0
+ 21256.855174522607,39669.130606358856
+ 21000.609172980905,39034.8994967025 22000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,39000.0
+ 21947.664043757057,39998.629534754575
+ 21318.0016399375,39731.35370161917 22000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,40333.333333333336
+ 26783.713669723296,40078.689325833264
+ 27268.075355060206,39412.0226591666
+ 27268.075355060206,38587.9773408334
+ 26783.713669723296,37921.310674166736
+ 26000.0,37666.666666666664
+ 25216.286330276704,37921.310674166736
+ 24731.924644939794,38587.9773408334
+ 24731.924644939794,39412.0226591666
+ 25216.286330276704,40078.689325833264
+ 26000.0,40333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,39000.0
+ 26669.13060635886,39743.14482547739
+ 26034.8994967025,39999.390827019095 26000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,39000.0
+ 26998.629534754575,39052.33595624295
+ 26731.35370161917,39681.9983600625 26000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,39000.0
+ 26743.144825477393,38330.869393641144
+ 26999.390827019095,38965.1005032975 26000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,39000.0
+ 26052.335956242943,38001.370465245425
+ 26681.9983600625,38268.64629838083 26000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,39000.0
+ 25330.86939364114,38256.85517452261
+ 25965.1005032975,38000.609172980905 26000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,39000.0
+ 25001.370465245425,38947.66404375705
+ 25268.64629838083,38318.0016399375 26000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,39000.0
+ 25256.855174522607,39669.130606358856
+ 25000.609172980905,39034.8994967025 26000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,39000.0
+ 25947.664043757057,39998.629534754575
+ 25318.0016399375,39731.35370161917 26000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,34333.333333333336
+ 30783.713669723296,34078.689325833264
+ 31268.075355060206,33412.0226591666
+ 31268.075355060206,32587.977340833404
+ 30783.713669723296,31921.310674166736
+ 30000.0,31666.666666666668
+ 29216.286330276704,31921.310674166736
+ 28731.924644939794,32587.977340833404
+ 28731.924644939794,33412.0226591666
+ 29216.286330276704,34078.689325833264
+ 30000.0,34333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,33000.0
+ 30669.13060635886,33743.14482547739
+ 30034.8994967025,33999.390827019095 30000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,33000.0
+ 30998.629534754575,33052.33595624295
+ 30731.35370161917,33681.9983600625 30000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,33000.0
+ 30743.144825477393,32330.869393641144
+ 30999.390827019095,32965.1005032975 30000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,33000.0
+ 30052.335956242943,32001.370465245425
+ 30681.9983600625,32268.64629838083 30000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,33000.0
+ 29330.86939364114,32256.855174522607
+ 29965.1005032975,32000.609172980905 30000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,33000.0
+ 29001.370465245425,32947.66404375705
+ 29268.64629838083,32318.0016399375 30000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,33000.0
+ 29256.855174522607,33669.130606358856
+ 29000.609172980905,33034.8994967025 30000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,33000.0
+ 29947.664043757057,33998.629534754575
+ 29318.0016399375,33731.35370161917 30000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,34333.333333333336
+ 34783.7136697233,34078.689325833264
+ 35268.0753550602,33412.0226591666
+ 35268.0753550602,32587.977340833404
+ 34783.7136697233,31921.310674166736
+ 34000.0,31666.666666666668
+ 33216.2863302767,31921.310674166736
+ 32731.924644939794,32587.977340833404
+ 32731.924644939794,33412.0226591666
+ 33216.2863302767,34078.689325833264
+ 34000.0,34333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,33000.0
+ 34669.130606358856,33743.14482547739
+ 34034.8994967025,33999.390827019095 34000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,33000.0
+ 34998.629534754575,33052.33595624295
+ 34731.35370161917,33681.9983600625 34000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,33000.0
+ 34743.14482547739,32330.869393641144
+ 34999.390827019095,32965.1005032975 34000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,33000.0
+ 34052.33595624295,32001.370465245425
+ 34681.9983600625,32268.64629838083 34000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,33000.0
+ 33330.869393641144,32256.855174522607
+ 33965.1005032975,32000.609172980905 34000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,33000.0
+ 33001.370465245425,32947.66404375705
+ 33268.64629838083,32318.0016399375 34000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,33000.0
+ 33256.85517452261,33669.130606358856
+ 33000.609172980905,33034.8994967025 34000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,33000.0
+ 33947.66404375705,33998.629534754575
+ 33318.0016399375,33731.35370161917 34000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,40333.333333333336
+ 30783.713669723296,40078.689325833264
+ 31268.075355060206,39412.0226591666
+ 31268.075355060206,38587.9773408334
+ 30783.713669723296,37921.310674166736
+ 30000.0,37666.666666666664
+ 29216.286330276704,37921.310674166736
+ 28731.924644939794,38587.9773408334
+ 28731.924644939794,39412.0226591666
+ 29216.286330276704,40078.689325833264
+ 30000.0,40333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,39000.0
+ 30669.13060635886,39743.14482547739
+ 30034.8994967025,39999.390827019095 30000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,39000.0
+ 30998.629534754575,39052.33595624295
+ 30731.35370161917,39681.9983600625 30000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,39000.0
+ 30743.144825477393,38330.869393641144
+ 30999.390827019095,38965.1005032975 30000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,39000.0
+ 30052.335956242943,38001.370465245425
+ 30681.9983600625,38268.64629838083 30000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,39000.0
+ 29330.86939364114,38256.85517452261
+ 29965.1005032975,38000.609172980905 30000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,39000.0
+ 29001.370465245425,38947.66404375705
+ 29268.64629838083,38318.0016399375 30000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,39000.0
+ 29256.855174522607,39669.130606358856
+ 29000.609172980905,39034.8994967025 30000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,39000.0
+ 29947.664043757057,39998.629534754575
+ 29318.0016399375,39731.35370161917 30000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,40333.333333333336
+ 34783.7136697233,40078.689325833264
+ 35268.0753550602,39412.0226591666
+ 35268.0753550602,38587.9773408334
+ 34783.7136697233,37921.310674166736
+ 34000.0,37666.666666666664
+ 33216.2863302767,37921.310674166736
+ 32731.924644939794,38587.9773408334
+ 32731.924644939794,39412.0226591666
+ 33216.2863302767,40078.689325833264
+ 34000.0,40333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,39000.0
+ 34669.130606358856,39743.14482547739
+ 34034.8994967025,39999.390827019095 34000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,39000.0
+ 34998.629534754575,39052.33595624295
+ 34731.35370161917,39681.9983600625 34000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,39000.0
+ 34743.14482547739,38330.869393641144
+ 34999.390827019095,38965.1005032975 34000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,39000.0
+ 34052.33595624295,38001.370465245425
+ 34681.9983600625,38268.64629838083 34000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,39000.0
+ 33330.869393641144,38256.85517452261
+ 33965.1005032975,38000.609172980905 34000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,39000.0
+ 33001.370465245425,38947.66404375705
+ 33268.64629838083,38318.0016399375 34000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,39000.0
+ 33256.85517452261,39669.130606358856
+ 33000.609172980905,39034.8994967025 34000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,39000.0
+ 33947.66404375705,39998.629534754575
+ 33318.0016399375,39731.35370161917 34000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,34333.333333333336
+ 38783.7136697233,34078.689325833264
+ 39268.0753550602,33412.0226591666
+ 39268.0753550602,32587.977340833404
+ 38783.7136697233,31921.310674166736
+ 38000.0,31666.666666666668
+ 37216.2863302767,31921.310674166736
+ 36731.9246449398,32587.977340833404
+ 36731.9246449398,33412.0226591666
+ 37216.2863302767,34078.689325833264
+ 38000.0,34333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,33000.0
+ 38669.130606358856,33743.14482547739
+ 38034.8994967025,33999.390827019095 38000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,33000.0
+ 38998.629534754575,33052.33595624295
+ 38731.35370161917,33681.9983600625 38000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,33000.0
+ 38743.14482547739,32330.869393641144
+ 38999.390827019095,32965.1005032975 38000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,33000.0
+ 38052.33595624295,32001.370465245425
+ 38681.9983600625,32268.64629838083 38000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,33000.0
+ 37330.869393641144,32256.855174522607
+ 37965.1005032975,32000.609172980905 38000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,33000.0
+ 37001.370465245425,32947.66404375705
+ 37268.64629838083,32318.0016399375 38000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,33000.0
+ 37256.85517452261,33669.130606358856
+ 37000.609172980905,33034.8994967025 38000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,33000.0
+ 37947.66404375705,33998.629534754575
+ 37318.0016399375,33731.35370161917 38000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,34333.333333333336
+ 42783.7136697233,34078.689325833264
+ 43268.0753550602,33412.0226591666
+ 43268.0753550602,32587.977340833404
+ 42783.7136697233,31921.310674166736
+ 42000.0,31666.666666666668
+ 41216.2863302767,31921.310674166736
+ 40731.9246449398,32587.977340833404
+ 40731.9246449398,33412.0226591666
+ 41216.2863302767,34078.689325833264
+ 42000.0,34333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,33000.0
+ 42669.130606358856,33743.14482547739
+ 42034.8994967025,33999.390827019095 42000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,33000.0
+ 42998.629534754575,33052.33595624295
+ 42731.35370161917,33681.9983600625 42000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,33000.0
+ 42743.14482547739,32330.869393641144
+ 42999.390827019095,32965.1005032975 42000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,33000.0
+ 42052.33595624295,32001.370465245425
+ 42681.9983600625,32268.64629838083 42000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,33000.0
+ 41330.869393641144,32256.855174522607
+ 41965.1005032975,32000.609172980905 42000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,33000.0
+ 41001.370465245425,32947.66404375705
+ 41268.64629838083,32318.0016399375 42000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,33000.0
+ 41256.85517452261,33669.130606358856
+ 41000.609172980905,33034.8994967025 42000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,33000.0
+ 41947.66404375705,33998.629534754575
+ 41318.0016399375,33731.35370161917 42000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,40333.333333333336
+ 38783.7136697233,40078.689325833264
+ 39268.0753550602,39412.0226591666
+ 39268.0753550602,38587.9773408334
+ 38783.7136697233,37921.310674166736
+ 38000.0,37666.666666666664
+ 37216.2863302767,37921.310674166736
+ 36731.9246449398,38587.9773408334
+ 36731.9246449398,39412.0226591666
+ 37216.2863302767,40078.689325833264
+ 38000.0,40333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,39000.0
+ 38669.130606358856,39743.14482547739
+ 38034.8994967025,39999.390827019095 38000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,39000.0
+ 38998.629534754575,39052.33595624295
+ 38731.35370161917,39681.9983600625 38000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,39000.0
+ 38743.14482547739,38330.869393641144
+ 38999.390827019095,38965.1005032975 38000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,39000.0
+ 38052.33595624295,38001.370465245425
+ 38681.9983600625,38268.64629838083 38000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,39000.0
+ 37330.869393641144,38256.85517452261
+ 37965.1005032975,38000.609172980905 38000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,39000.0
+ 37001.370465245425,38947.66404375705
+ 37268.64629838083,38318.0016399375 38000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,39000.0
+ 37256.85517452261,39669.130606358856
+ 37000.609172980905,39034.8994967025 38000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,39000.0
+ 37947.66404375705,39998.629534754575
+ 37318.0016399375,39731.35370161917 38000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,40333.333333333336
+ 42783.7136697233,40078.689325833264
+ 43268.0753550602,39412.0226591666
+ 43268.0753550602,38587.9773408334
+ 42783.7136697233,37921.310674166736
+ 42000.0,37666.666666666664
+ 41216.2863302767,37921.310674166736
+ 40731.9246449398,38587.9773408334
+ 40731.9246449398,39412.0226591666
+ 41216.2863302767,40078.689325833264
+ 42000.0,40333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,39000.0
+ 42669.130606358856,39743.14482547739
+ 42034.8994967025,39999.390827019095 42000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,39000.0
+ 42998.629534754575,39052.33595624295
+ 42731.35370161917,39681.9983600625 42000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,39000.0
+ 42743.14482547739,38330.869393641144
+ 42999.390827019095,38965.1005032975 42000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,39000.0
+ 42052.33595624295,38001.370465245425
+ 42681.9983600625,38268.64629838083 42000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,39000.0
+ 41330.869393641144,38256.85517452261
+ 41965.1005032975,38000.609172980905 42000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,39000.0
+ 41001.370465245425,38947.66404375705
+ 41268.64629838083,38318.0016399375 42000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,39000.0
+ 41256.85517452261,39669.130606358856
+ 41000.609172980905,39034.8994967025 42000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,39000.0
+ 41947.66404375705,39998.629534754575
+ 41318.0016399375,39731.35370161917 42000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,34333.333333333336
+ 46783.7136697233,34078.689325833264
+ 47268.0753550602,33412.0226591666
+ 47268.0753550602,32587.977340833404
+ 46783.7136697233,31921.310674166736
+ 46000.0,31666.666666666668
+ 45216.2863302767,31921.310674166736
+ 44731.9246449398,32587.977340833404
+ 44731.9246449398,33412.0226591666
+ 45216.2863302767,34078.689325833264
+ 46000.0,34333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,33000.0
+ 46669.130606358856,33743.14482547739
+ 46034.8994967025,33999.390827019095 46000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,33000.0
+ 46998.629534754575,33052.33595624295
+ 46731.35370161917,33681.9983600625 46000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,33000.0
+ 46743.14482547739,32330.869393641144
+ 46999.390827019095,32965.1005032975 46000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,33000.0
+ 46052.33595624295,32001.370465245425
+ 46681.9983600625,32268.64629838083 46000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,33000.0
+ 45330.869393641144,32256.855174522607
+ 45965.1005032975,32000.609172980905 46000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,33000.0
+ 45001.370465245425,32947.66404375705
+ 45268.64629838083,32318.0016399375 46000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,33000.0
+ 45256.85517452261,33669.130606358856
+ 45000.609172980905,33034.8994967025 46000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,33000.0
+ 45947.66404375705,33998.629534754575
+ 45318.0016399375,33731.35370161917 46000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,34333.333333333336
+ 50783.7136697233,34078.689325833264
+ 51268.0753550602,33412.0226591666
+ 51268.0753550602,32587.977340833404
+ 50783.7136697233,31921.310674166736
+ 50000.0,31666.666666666668
+ 49216.2863302767,31921.310674166736
+ 48731.9246449398,32587.977340833404
+ 48731.9246449398,33412.0226591666
+ 49216.2863302767,34078.689325833264
+ 50000.0,34333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,33000.0
+ 50669.130606358856,33743.14482547739
+ 50034.8994967025,33999.390827019095 50000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,33000.0
+ 50998.629534754575,33052.33595624295
+ 50731.35370161917,33681.9983600625 50000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,33000.0
+ 50743.14482547739,32330.869393641144
+ 50999.390827019095,32965.1005032975 50000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,33000.0
+ 50052.33595624295,32001.370465245425
+ 50681.9983600625,32268.64629838083 50000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,33000.0
+ 49330.869393641144,32256.855174522607
+ 49965.1005032975,32000.609172980905 50000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,33000.0
+ 49001.370465245425,32947.66404375705
+ 49268.64629838083,32318.0016399375 50000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,33000.0
+ 49256.85517452261,33669.130606358856
+ 49000.609172980905,33034.8994967025 50000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,33000.0
+ 49947.66404375705,33998.629534754575
+ 49318.0016399375,33731.35370161917 50000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,40333.333333333336
+ 46783.7136697233,40078.689325833264
+ 47268.0753550602,39412.0226591666
+ 47268.0753550602,38587.9773408334
+ 46783.7136697233,37921.310674166736
+ 46000.0,37666.666666666664
+ 45216.2863302767,37921.310674166736
+ 44731.9246449398,38587.9773408334
+ 44731.9246449398,39412.0226591666
+ 45216.2863302767,40078.689325833264
+ 46000.0,40333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,39000.0
+ 46669.130606358856,39743.14482547739
+ 46034.8994967025,39999.390827019095 46000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,39000.0
+ 46998.629534754575,39052.33595624295
+ 46731.35370161917,39681.9983600625 46000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,39000.0
+ 46743.14482547739,38330.869393641144
+ 46999.390827019095,38965.1005032975 46000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,39000.0
+ 46052.33595624295,38001.370465245425
+ 46681.9983600625,38268.64629838083 46000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,39000.0
+ 45330.869393641144,38256.85517452261
+ 45965.1005032975,38000.609172980905 46000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,39000.0
+ 45001.370465245425,38947.66404375705
+ 45268.64629838083,38318.0016399375 46000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,39000.0
+ 45256.85517452261,39669.130606358856
+ 45000.609172980905,39034.8994967025 46000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,39000.0
+ 45947.66404375705,39998.629534754575
+ 45318.0016399375,39731.35370161917 46000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,40333.333333333336
+ 50783.7136697233,40078.689325833264
+ 51268.0753550602,39412.0226591666
+ 51268.0753550602,38587.9773408334
+ 50783.7136697233,37921.310674166736
+ 50000.0,37666.666666666664
+ 49216.2863302767,37921.310674166736
+ 48731.9246449398,38587.9773408334
+ 48731.9246449398,39412.0226591666
+ 49216.2863302767,40078.689325833264
+ 50000.0,40333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,39000.0
+ 50669.130606358856,39743.14482547739
+ 50034.8994967025,39999.390827019095 50000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,39000.0
+ 50998.629534754575,39052.33595624295
+ 50731.35370161917,39681.9983600625 50000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,39000.0
+ 50743.14482547739,38330.869393641144
+ 50999.390827019095,38965.1005032975 50000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,39000.0
+ 50052.33595624295,38001.370465245425
+ 50681.9983600625,38268.64629838083 50000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,39000.0
+ 49330.869393641144,38256.85517452261
+ 49965.1005032975,38000.609172980905 50000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,39000.0
+ 49001.370465245425,38947.66404375705
+ 49268.64629838083,38318.0016399375 50000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,39000.0
+ 49256.85517452261,39669.130606358856
+ 49000.609172980905,39034.8994967025 50000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,39000.0
+ 49947.66404375705,39998.629534754575
+ 49318.0016399375,39731.35370161917 50000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,34333.333333333336
+ 54783.7136697233,34078.689325833264
+ 55268.0753550602,33412.0226591666
+ 55268.0753550602,32587.977340833404
+ 54783.7136697233,31921.310674166736
+ 54000.0,31666.666666666668
+ 53216.2863302767,31921.310674166736
+ 52731.9246449398,32587.977340833404
+ 52731.9246449398,33412.0226591666
+ 53216.2863302767,34078.689325833264
+ 54000.0,34333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,33000.0
+ 54669.130606358856,33743.14482547739
+ 54034.8994967025,33999.390827019095 54000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,33000.0
+ 54998.629534754575,33052.33595624295
+ 54731.35370161917,33681.9983600625 54000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,33000.0
+ 54743.14482547739,32330.869393641144
+ 54999.390827019095,32965.1005032975 54000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,33000.0
+ 54052.33595624295,32001.370465245425
+ 54681.9983600625,32268.64629838083 54000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,33000.0
+ 53330.869393641144,32256.855174522607
+ 53965.1005032975,32000.609172980905 54000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,33000.0
+ 53001.370465245425,32947.66404375705
+ 53268.64629838083,32318.0016399375 54000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,33000.0
+ 53256.85517452261,33669.130606358856
+ 53000.609172980905,33034.8994967025 54000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,33000.0
+ 53947.66404375705,33998.629534754575
+ 53318.0016399375,33731.35370161917 54000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,34333.333333333336
+ 58783.7136697233,34078.689325833264
+ 59268.0753550602,33412.0226591666
+ 59268.0753550602,32587.977340833404
+ 58783.7136697233,31921.310674166736
+ 58000.0,31666.666666666668
+ 57216.2863302767,31921.310674166736
+ 56731.9246449398,32587.977340833404
+ 56731.9246449398,33412.0226591666
+ 57216.2863302767,34078.689325833264
+ 58000.0,34333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,33000.0
+ 58669.130606358856,33743.14482547739
+ 58034.8994967025,33999.390827019095 58000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,33000.0
+ 58998.629534754575,33052.33595624295
+ 58731.35370161917,33681.9983600625 58000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,33000.0
+ 58743.14482547739,32330.869393641144
+ 58999.390827019095,32965.1005032975 58000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,33000.0
+ 58052.33595624295,32001.370465245425
+ 58681.9983600625,32268.64629838083 58000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,33000.0
+ 57330.869393641144,32256.855174522607
+ 57965.1005032975,32000.609172980905 58000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,33000.0
+ 57001.370465245425,32947.66404375705
+ 57268.64629838083,32318.0016399375 58000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,33000.0
+ 57256.85517452261,33669.130606358856
+ 57000.609172980905,33034.8994967025 58000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,33000.0
+ 57947.66404375705,33998.629534754575
+ 57318.0016399375,33731.35370161917 58000.0,33000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,40333.333333333336
+ 54783.7136697233,40078.689325833264
+ 55268.0753550602,39412.0226591666
+ 55268.0753550602,38587.9773408334
+ 54783.7136697233,37921.310674166736
+ 54000.0,37666.666666666664
+ 53216.2863302767,37921.310674166736
+ 52731.9246449398,38587.9773408334
+ 52731.9246449398,39412.0226591666
+ 53216.2863302767,40078.689325833264
+ 54000.0,40333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,39000.0
+ 54669.130606358856,39743.14482547739
+ 54034.8994967025,39999.390827019095 54000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,39000.0
+ 54998.629534754575,39052.33595624295
+ 54731.35370161917,39681.9983600625 54000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,39000.0
+ 54743.14482547739,38330.869393641144
+ 54999.390827019095,38965.1005032975 54000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,39000.0
+ 54052.33595624295,38001.370465245425
+ 54681.9983600625,38268.64629838083 54000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,39000.0
+ 53330.869393641144,38256.85517452261
+ 53965.1005032975,38000.609172980905 54000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,39000.0
+ 53001.370465245425,38947.66404375705
+ 53268.64629838083,38318.0016399375 54000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,39000.0
+ 53256.85517452261,39669.130606358856
+ 53000.609172980905,39034.8994967025 54000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,39000.0
+ 53947.66404375705,39998.629534754575
+ 53318.0016399375,39731.35370161917 54000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,40333.333333333336
+ 58783.7136697233,40078.689325833264
+ 59268.0753550602,39412.0226591666
+ 59268.0753550602,38587.9773408334
+ 58783.7136697233,37921.310674166736
+ 58000.0,37666.666666666664
+ 57216.2863302767,37921.310674166736
+ 56731.9246449398,38587.9773408334
+ 56731.9246449398,39412.0226591666
+ 57216.2863302767,40078.689325833264
+ 58000.0,40333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,39000.0
+ 58669.130606358856,39743.14482547739
+ 58034.8994967025,39999.390827019095 58000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,39000.0
+ 58998.629534754575,39052.33595624295
+ 58731.35370161917,39681.9983600625 58000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,39000.0
+ 58743.14482547739,38330.869393641144
+ 58999.390827019095,38965.1005032975 58000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,39000.0
+ 58052.33595624295,38001.370465245425
+ 58681.9983600625,38268.64629838083 58000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,39000.0
+ 57330.869393641144,38256.85517452261
+ 57965.1005032975,38000.609172980905 58000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,39000.0
+ 57001.370465245425,38947.66404375705
+ 57268.64629838083,38318.0016399375 58000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,39000.0
+ 57256.85517452261,39669.130606358856
+ 57000.609172980905,39034.8994967025 58000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,39000.0
+ 57947.66404375705,39998.629534754575
+ 57318.0016399375,39731.35370161917 58000.0,39000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,46333.333333333336
+ 22783.713669723296,46078.689325833264
+ 23268.075355060206,45412.0226591666
+ 23268.075355060206,44587.9773408334
+ 22783.713669723296,43921.310674166736
+ 22000.0,43666.666666666664
+ 21216.286330276704,43921.310674166736
+ 20731.924644939794,44587.9773408334
+ 20731.924644939794,45412.0226591666
+ 21216.286330276704,46078.689325833264
+ 22000.0,46333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,45000.0
+ 22669.13060635886,45743.14482547739
+ 22034.8994967025,45999.390827019095 22000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,45000.0
+ 22998.629534754575,45052.33595624295
+ 22731.35370161917,45681.9983600625 22000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,45000.0
+ 22743.144825477393,44330.869393641144
+ 22999.390827019095,44965.1005032975 22000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,45000.0
+ 22052.335956242943,44001.370465245425
+ 22681.9983600625,44268.64629838083 22000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,45000.0
+ 21330.86939364114,44256.85517452261
+ 21965.1005032975,44000.609172980905 22000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,45000.0
+ 21001.370465245425,44947.66404375705
+ 21268.64629838083,44318.0016399375 22000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,45000.0
+ 21256.855174522607,45669.130606358856
+ 21000.609172980905,45034.8994967025 22000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,45000.0
+ 21947.664043757057,45998.629534754575
+ 21318.0016399375,45731.35370161917 22000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,46333.333333333336
+ 26783.713669723296,46078.689325833264
+ 27268.075355060206,45412.0226591666
+ 27268.075355060206,44587.9773408334
+ 26783.713669723296,43921.310674166736
+ 26000.0,43666.666666666664
+ 25216.286330276704,43921.310674166736
+ 24731.924644939794,44587.9773408334
+ 24731.924644939794,45412.0226591666
+ 25216.286330276704,46078.689325833264
+ 26000.0,46333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,45000.0
+ 26669.13060635886,45743.14482547739
+ 26034.8994967025,45999.390827019095 26000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,45000.0
+ 26998.629534754575,45052.33595624295
+ 26731.35370161917,45681.9983600625 26000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,45000.0
+ 26743.144825477393,44330.869393641144
+ 26999.390827019095,44965.1005032975 26000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,45000.0
+ 26052.335956242943,44001.370465245425
+ 26681.9983600625,44268.64629838083 26000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,45000.0
+ 25330.86939364114,44256.85517452261
+ 25965.1005032975,44000.609172980905 26000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,45000.0
+ 25001.370465245425,44947.66404375705
+ 25268.64629838083,44318.0016399375 26000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,45000.0
+ 25256.855174522607,45669.130606358856
+ 25000.609172980905,45034.8994967025 26000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,45000.0
+ 25947.664043757057,45998.629534754575
+ 25318.0016399375,45731.35370161917 26000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,52333.333333333336
+ 22783.713669723296,52078.689325833264
+ 23268.075355060206,51412.0226591666
+ 23268.075355060206,50587.9773408334
+ 22783.713669723296,49921.310674166736
+ 22000.0,49666.666666666664
+ 21216.286330276704,49921.310674166736
+ 20731.924644939794,50587.9773408334
+ 20731.924644939794,51412.0226591666
+ 21216.286330276704,52078.689325833264
+ 22000.0,52333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,51000.0
+ 22669.13060635886,51743.14482547739
+ 22034.8994967025,51999.390827019095 22000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,51000.0
+ 22998.629534754575,51052.33595624295
+ 22731.35370161917,51681.9983600625 22000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,51000.0
+ 22743.144825477393,50330.869393641144
+ 22999.390827019095,50965.1005032975 22000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,51000.0
+ 22052.335956242943,50001.370465245425
+ 22681.9983600625,50268.64629838083 22000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,51000.0
+ 21330.86939364114,50256.85517452261
+ 21965.1005032975,50000.609172980905 22000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,51000.0
+ 21001.370465245425,50947.66404375705
+ 21268.64629838083,50318.0016399375 22000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,51000.0
+ 21256.855174522607,51669.130606358856
+ 21000.609172980905,51034.8994967025 22000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,51000.0
+ 21947.664043757057,51998.629534754575
+ 21318.0016399375,51731.35370161917 22000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,52333.333333333336
+ 26783.713669723296,52078.689325833264
+ 27268.075355060206,51412.0226591666
+ 27268.075355060206,50587.9773408334
+ 26783.713669723296,49921.310674166736
+ 26000.0,49666.666666666664
+ 25216.286330276704,49921.310674166736
+ 24731.924644939794,50587.9773408334
+ 24731.924644939794,51412.0226591666
+ 25216.286330276704,52078.689325833264
+ 26000.0,52333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,51000.0
+ 26669.13060635886,51743.14482547739
+ 26034.8994967025,51999.390827019095 26000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,51000.0
+ 26998.629534754575,51052.33595624295
+ 26731.35370161917,51681.9983600625 26000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,51000.0
+ 26743.144825477393,50330.869393641144
+ 26999.390827019095,50965.1005032975 26000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,51000.0
+ 26052.335956242943,50001.370465245425
+ 26681.9983600625,50268.64629838083 26000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,51000.0
+ 25330.86939364114,50256.85517452261
+ 25965.1005032975,50000.609172980905 26000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,51000.0
+ 25001.370465245425,50947.66404375705
+ 25268.64629838083,50318.0016399375 26000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,51000.0
+ 25256.855174522607,51669.130606358856
+ 25000.609172980905,51034.8994967025 26000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,51000.0
+ 25947.664043757057,51998.629534754575
+ 25318.0016399375,51731.35370161917 26000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,46333.333333333336
+ 30783.713669723296,46078.689325833264
+ 31268.075355060206,45412.0226591666
+ 31268.075355060206,44587.9773408334
+ 30783.713669723296,43921.310674166736
+ 30000.0,43666.666666666664
+ 29216.286330276704,43921.310674166736
+ 28731.924644939794,44587.9773408334
+ 28731.924644939794,45412.0226591666
+ 29216.286330276704,46078.689325833264
+ 30000.0,46333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,45000.0
+ 30669.13060635886,45743.14482547739
+ 30034.8994967025,45999.390827019095 30000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,45000.0
+ 30998.629534754575,45052.33595624295
+ 30731.35370161917,45681.9983600625 30000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,45000.0
+ 30743.144825477393,44330.869393641144
+ 30999.390827019095,44965.1005032975 30000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,45000.0
+ 30052.335956242943,44001.370465245425
+ 30681.9983600625,44268.64629838083 30000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,45000.0
+ 29330.86939364114,44256.85517452261
+ 29965.1005032975,44000.609172980905 30000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,45000.0
+ 29001.370465245425,44947.66404375705
+ 29268.64629838083,44318.0016399375 30000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,45000.0
+ 29256.855174522607,45669.130606358856
+ 29000.609172980905,45034.8994967025 30000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,45000.0
+ 29947.664043757057,45998.629534754575
+ 29318.0016399375,45731.35370161917 30000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,46333.333333333336
+ 34783.7136697233,46078.689325833264
+ 35268.0753550602,45412.0226591666
+ 35268.0753550602,44587.9773408334
+ 34783.7136697233,43921.310674166736
+ 34000.0,43666.666666666664
+ 33216.2863302767,43921.310674166736
+ 32731.924644939794,44587.9773408334
+ 32731.924644939794,45412.0226591666
+ 33216.2863302767,46078.689325833264
+ 34000.0,46333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,45000.0
+ 34669.130606358856,45743.14482547739
+ 34034.8994967025,45999.390827019095 34000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,45000.0
+ 34998.629534754575,45052.33595624295
+ 34731.35370161917,45681.9983600625 34000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,45000.0
+ 34743.14482547739,44330.869393641144
+ 34999.390827019095,44965.1005032975 34000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,45000.0
+ 34052.33595624295,44001.370465245425
+ 34681.9983600625,44268.64629838083 34000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,45000.0
+ 33330.869393641144,44256.85517452261
+ 33965.1005032975,44000.609172980905 34000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,45000.0
+ 33001.370465245425,44947.66404375705
+ 33268.64629838083,44318.0016399375 34000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,45000.0
+ 33256.85517452261,45669.130606358856
+ 33000.609172980905,45034.8994967025 34000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,45000.0
+ 33947.66404375705,45998.629534754575
+ 33318.0016399375,45731.35370161917 34000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,52333.333333333336
+ 30783.713669723296,52078.689325833264
+ 31268.075355060206,51412.0226591666
+ 31268.075355060206,50587.9773408334
+ 30783.713669723296,49921.310674166736
+ 30000.0,49666.666666666664
+ 29216.286330276704,49921.310674166736
+ 28731.924644939794,50587.9773408334
+ 28731.924644939794,51412.0226591666
+ 29216.286330276704,52078.689325833264
+ 30000.0,52333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,51000.0
+ 30669.13060635886,51743.14482547739
+ 30034.8994967025,51999.390827019095 30000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,51000.0
+ 30998.629534754575,51052.33595624295
+ 30731.35370161917,51681.9983600625 30000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,51000.0
+ 30743.144825477393,50330.869393641144
+ 30999.390827019095,50965.1005032975 30000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,51000.0
+ 30052.335956242943,50001.370465245425
+ 30681.9983600625,50268.64629838083 30000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,51000.0
+ 29330.86939364114,50256.85517452261
+ 29965.1005032975,50000.609172980905 30000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,51000.0
+ 29001.370465245425,50947.66404375705
+ 29268.64629838083,50318.0016399375 30000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,51000.0
+ 29256.855174522607,51669.130606358856
+ 29000.609172980905,51034.8994967025 30000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,51000.0
+ 29947.664043757057,51998.629534754575
+ 29318.0016399375,51731.35370161917 30000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,52333.333333333336
+ 34783.7136697233,52078.689325833264
+ 35268.0753550602,51412.0226591666
+ 35268.0753550602,50587.9773408334
+ 34783.7136697233,49921.310674166736
+ 34000.0,49666.666666666664
+ 33216.2863302767,49921.310674166736
+ 32731.924644939794,50587.9773408334
+ 32731.924644939794,51412.0226591666
+ 33216.2863302767,52078.689325833264
+ 34000.0,52333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,51000.0
+ 34669.130606358856,51743.14482547739
+ 34034.8994967025,51999.390827019095 34000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,51000.0
+ 34998.629534754575,51052.33595624295
+ 34731.35370161917,51681.9983600625 34000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,51000.0
+ 34743.14482547739,50330.869393641144
+ 34999.390827019095,50965.1005032975 34000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,51000.0
+ 34052.33595624295,50001.370465245425
+ 34681.9983600625,50268.64629838083 34000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,51000.0
+ 33330.869393641144,50256.85517452261
+ 33965.1005032975,50000.609172980905 34000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,51000.0
+ 33001.370465245425,50947.66404375705
+ 33268.64629838083,50318.0016399375 34000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,51000.0
+ 33256.85517452261,51669.130606358856
+ 33000.609172980905,51034.8994967025 34000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,51000.0
+ 33947.66404375705,51998.629534754575
+ 33318.0016399375,51731.35370161917 34000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,46333.333333333336
+ 38783.7136697233,46078.689325833264
+ 39268.0753550602,45412.0226591666
+ 39268.0753550602,44587.9773408334
+ 38783.7136697233,43921.310674166736
+ 38000.0,43666.666666666664
+ 37216.2863302767,43921.310674166736
+ 36731.9246449398,44587.9773408334
+ 36731.9246449398,45412.0226591666
+ 37216.2863302767,46078.689325833264
+ 38000.0,46333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,45000.0
+ 38669.130606358856,45743.14482547739
+ 38034.8994967025,45999.390827019095 38000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,45000.0
+ 38998.629534754575,45052.33595624295
+ 38731.35370161917,45681.9983600625 38000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,45000.0
+ 38743.14482547739,44330.869393641144
+ 38999.390827019095,44965.1005032975 38000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,45000.0
+ 38052.33595624295,44001.370465245425
+ 38681.9983600625,44268.64629838083 38000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,45000.0
+ 37330.869393641144,44256.85517452261
+ 37965.1005032975,44000.609172980905 38000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,45000.0
+ 37001.370465245425,44947.66404375705
+ 37268.64629838083,44318.0016399375 38000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,45000.0
+ 37256.85517452261,45669.130606358856
+ 37000.609172980905,45034.8994967025 38000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,45000.0
+ 37947.66404375705,45998.629534754575
+ 37318.0016399375,45731.35370161917 38000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,46333.333333333336
+ 42783.7136697233,46078.689325833264
+ 43268.0753550602,45412.0226591666
+ 43268.0753550602,44587.9773408334
+ 42783.7136697233,43921.310674166736
+ 42000.0,43666.666666666664
+ 41216.2863302767,43921.310674166736
+ 40731.9246449398,44587.9773408334
+ 40731.9246449398,45412.0226591666
+ 41216.2863302767,46078.689325833264
+ 42000.0,46333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,45000.0
+ 42669.130606358856,45743.14482547739
+ 42034.8994967025,45999.390827019095 42000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,45000.0
+ 42998.629534754575,45052.33595624295
+ 42731.35370161917,45681.9983600625 42000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,45000.0
+ 42743.14482547739,44330.869393641144
+ 42999.390827019095,44965.1005032975 42000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,45000.0
+ 42052.33595624295,44001.370465245425
+ 42681.9983600625,44268.64629838083 42000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,45000.0
+ 41330.869393641144,44256.85517452261
+ 41965.1005032975,44000.609172980905 42000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,45000.0
+ 41001.370465245425,44947.66404375705
+ 41268.64629838083,44318.0016399375 42000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,45000.0
+ 41256.85517452261,45669.130606358856
+ 41000.609172980905,45034.8994967025 42000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,45000.0
+ 41947.66404375705,45998.629534754575
+ 41318.0016399375,45731.35370161917 42000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,52333.333333333336
+ 38783.7136697233,52078.689325833264
+ 39268.0753550602,51412.0226591666
+ 39268.0753550602,50587.9773408334
+ 38783.7136697233,49921.310674166736
+ 38000.0,49666.666666666664
+ 37216.2863302767,49921.310674166736
+ 36731.9246449398,50587.9773408334
+ 36731.9246449398,51412.0226591666
+ 37216.2863302767,52078.689325833264
+ 38000.0,52333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,51000.0
+ 38669.130606358856,51743.14482547739
+ 38034.8994967025,51999.390827019095 38000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,51000.0
+ 38998.629534754575,51052.33595624295
+ 38731.35370161917,51681.9983600625 38000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,51000.0
+ 38743.14482547739,50330.869393641144
+ 38999.390827019095,50965.1005032975 38000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,51000.0
+ 38052.33595624295,50001.370465245425
+ 38681.9983600625,50268.64629838083 38000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,51000.0
+ 37330.869393641144,50256.85517452261
+ 37965.1005032975,50000.609172980905 38000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,51000.0
+ 37001.370465245425,50947.66404375705
+ 37268.64629838083,50318.0016399375 38000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,51000.0
+ 37256.85517452261,51669.130606358856
+ 37000.609172980905,51034.8994967025 38000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,51000.0
+ 37947.66404375705,51998.629534754575
+ 37318.0016399375,51731.35370161917 38000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,52333.333333333336
+ 42783.7136697233,52078.689325833264
+ 43268.0753550602,51412.0226591666
+ 43268.0753550602,50587.9773408334
+ 42783.7136697233,49921.310674166736
+ 42000.0,49666.666666666664
+ 41216.2863302767,49921.310674166736
+ 40731.9246449398,50587.9773408334
+ 40731.9246449398,51412.0226591666
+ 41216.2863302767,52078.689325833264
+ 42000.0,52333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,51000.0
+ 42669.130606358856,51743.14482547739
+ 42034.8994967025,51999.390827019095 42000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,51000.0
+ 42998.629534754575,51052.33595624295
+ 42731.35370161917,51681.9983600625 42000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,51000.0
+ 42743.14482547739,50330.869393641144
+ 42999.390827019095,50965.1005032975 42000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,51000.0
+ 42052.33595624295,50001.370465245425
+ 42681.9983600625,50268.64629838083 42000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,51000.0
+ 41330.869393641144,50256.85517452261
+ 41965.1005032975,50000.609172980905 42000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,51000.0
+ 41001.370465245425,50947.66404375705
+ 41268.64629838083,50318.0016399375 42000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,51000.0
+ 41256.85517452261,51669.130606358856
+ 41000.609172980905,51034.8994967025 42000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,51000.0
+ 41947.66404375705,51998.629534754575
+ 41318.0016399375,51731.35370161917 42000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,46333.333333333336
+ 46783.7136697233,46078.689325833264
+ 47268.0753550602,45412.0226591666
+ 47268.0753550602,44587.9773408334
+ 46783.7136697233,43921.310674166736
+ 46000.0,43666.666666666664
+ 45216.2863302767,43921.310674166736
+ 44731.9246449398,44587.9773408334
+ 44731.9246449398,45412.0226591666
+ 45216.2863302767,46078.689325833264
+ 46000.0,46333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,45000.0
+ 46669.130606358856,45743.14482547739
+ 46034.8994967025,45999.390827019095 46000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,45000.0
+ 46998.629534754575,45052.33595624295
+ 46731.35370161917,45681.9983600625 46000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,45000.0
+ 46743.14482547739,44330.869393641144
+ 46999.390827019095,44965.1005032975 46000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,45000.0
+ 46052.33595624295,44001.370465245425
+ 46681.9983600625,44268.64629838083 46000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,45000.0
+ 45330.869393641144,44256.85517452261
+ 45965.1005032975,44000.609172980905 46000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,45000.0
+ 45001.370465245425,44947.66404375705
+ 45268.64629838083,44318.0016399375 46000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,45000.0
+ 45256.85517452261,45669.130606358856
+ 45000.609172980905,45034.8994967025 46000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,45000.0
+ 45947.66404375705,45998.629534754575
+ 45318.0016399375,45731.35370161917 46000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,46333.333333333336
+ 50783.7136697233,46078.689325833264
+ 51268.0753550602,45412.0226591666
+ 51268.0753550602,44587.9773408334
+ 50783.7136697233,43921.310674166736
+ 50000.0,43666.666666666664
+ 49216.2863302767,43921.310674166736
+ 48731.9246449398,44587.9773408334
+ 48731.9246449398,45412.0226591666
+ 49216.2863302767,46078.689325833264
+ 50000.0,46333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,45000.0
+ 50669.130606358856,45743.14482547739
+ 50034.8994967025,45999.390827019095 50000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,45000.0
+ 50998.629534754575,45052.33595624295
+ 50731.35370161917,45681.9983600625 50000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,45000.0
+ 50743.14482547739,44330.869393641144
+ 50999.390827019095,44965.1005032975 50000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,45000.0
+ 50052.33595624295,44001.370465245425
+ 50681.9983600625,44268.64629838083 50000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,45000.0
+ 49330.869393641144,44256.85517452261
+ 49965.1005032975,44000.609172980905 50000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,45000.0
+ 49001.370465245425,44947.66404375705
+ 49268.64629838083,44318.0016399375 50000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,45000.0
+ 49256.85517452261,45669.130606358856
+ 49000.609172980905,45034.8994967025 50000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,45000.0
+ 49947.66404375705,45998.629534754575
+ 49318.0016399375,45731.35370161917 50000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,52333.333333333336
+ 46783.7136697233,52078.689325833264
+ 47268.0753550602,51412.0226591666
+ 47268.0753550602,50587.9773408334
+ 46783.7136697233,49921.310674166736
+ 46000.0,49666.666666666664
+ 45216.2863302767,49921.310674166736
+ 44731.9246449398,50587.9773408334
+ 44731.9246449398,51412.0226591666
+ 45216.2863302767,52078.689325833264
+ 46000.0,52333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,51000.0
+ 46669.130606358856,51743.14482547739
+ 46034.8994967025,51999.390827019095 46000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,51000.0
+ 46998.629534754575,51052.33595624295
+ 46731.35370161917,51681.9983600625 46000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,51000.0
+ 46743.14482547739,50330.869393641144
+ 46999.390827019095,50965.1005032975 46000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,51000.0
+ 46052.33595624295,50001.370465245425
+ 46681.9983600625,50268.64629838083 46000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,51000.0
+ 45330.869393641144,50256.85517452261
+ 45965.1005032975,50000.609172980905 46000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,51000.0
+ 45001.370465245425,50947.66404375705
+ 45268.64629838083,50318.0016399375 46000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,51000.0
+ 45256.85517452261,51669.130606358856
+ 45000.609172980905,51034.8994967025 46000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,51000.0
+ 45947.66404375705,51998.629534754575
+ 45318.0016399375,51731.35370161917 46000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,52333.333333333336
+ 50783.7136697233,52078.689325833264
+ 51268.0753550602,51412.0226591666
+ 51268.0753550602,50587.9773408334
+ 50783.7136697233,49921.310674166736
+ 50000.0,49666.666666666664
+ 49216.2863302767,49921.310674166736
+ 48731.9246449398,50587.9773408334
+ 48731.9246449398,51412.0226591666
+ 49216.2863302767,52078.689325833264
+ 50000.0,52333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,51000.0
+ 50669.130606358856,51743.14482547739
+ 50034.8994967025,51999.390827019095 50000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,51000.0
+ 50998.629534754575,51052.33595624295
+ 50731.35370161917,51681.9983600625 50000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,51000.0
+ 50743.14482547739,50330.869393641144
+ 50999.390827019095,50965.1005032975 50000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,51000.0
+ 50052.33595624295,50001.370465245425
+ 50681.9983600625,50268.64629838083 50000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,51000.0
+ 49330.869393641144,50256.85517452261
+ 49965.1005032975,50000.609172980905 50000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,51000.0
+ 49001.370465245425,50947.66404375705
+ 49268.64629838083,50318.0016399375 50000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,51000.0
+ 49256.85517452261,51669.130606358856
+ 49000.609172980905,51034.8994967025 50000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,51000.0
+ 49947.66404375705,51998.629534754575
+ 49318.0016399375,51731.35370161917 50000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,46333.333333333336
+ 54783.7136697233,46078.689325833264
+ 55268.0753550602,45412.0226591666
+ 55268.0753550602,44587.9773408334
+ 54783.7136697233,43921.310674166736
+ 54000.0,43666.666666666664
+ 53216.2863302767,43921.310674166736
+ 52731.9246449398,44587.9773408334
+ 52731.9246449398,45412.0226591666
+ 53216.2863302767,46078.689325833264
+ 54000.0,46333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,45000.0
+ 54669.130606358856,45743.14482547739
+ 54034.8994967025,45999.390827019095 54000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,45000.0
+ 54998.629534754575,45052.33595624295
+ 54731.35370161917,45681.9983600625 54000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,45000.0
+ 54743.14482547739,44330.869393641144
+ 54999.390827019095,44965.1005032975 54000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,45000.0
+ 54052.33595624295,44001.370465245425
+ 54681.9983600625,44268.64629838083 54000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,45000.0
+ 53330.869393641144,44256.85517452261
+ 53965.1005032975,44000.609172980905 54000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,45000.0
+ 53001.370465245425,44947.66404375705
+ 53268.64629838083,44318.0016399375 54000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,45000.0
+ 53256.85517452261,45669.130606358856
+ 53000.609172980905,45034.8994967025 54000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,45000.0
+ 53947.66404375705,45998.629534754575
+ 53318.0016399375,45731.35370161917 54000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,46333.333333333336
+ 58783.7136697233,46078.689325833264
+ 59268.0753550602,45412.0226591666
+ 59268.0753550602,44587.9773408334
+ 58783.7136697233,43921.310674166736
+ 58000.0,43666.666666666664
+ 57216.2863302767,43921.310674166736
+ 56731.9246449398,44587.9773408334
+ 56731.9246449398,45412.0226591666
+ 57216.2863302767,46078.689325833264
+ 58000.0,46333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,45000.0
+ 58669.130606358856,45743.14482547739
+ 58034.8994967025,45999.390827019095 58000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,45000.0
+ 58998.629534754575,45052.33595624295
+ 58731.35370161917,45681.9983600625 58000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,45000.0
+ 58743.14482547739,44330.869393641144
+ 58999.390827019095,44965.1005032975 58000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,45000.0
+ 58052.33595624295,44001.370465245425
+ 58681.9983600625,44268.64629838083 58000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,45000.0
+ 57330.869393641144,44256.85517452261
+ 57965.1005032975,44000.609172980905 58000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,45000.0
+ 57001.370465245425,44947.66404375705
+ 57268.64629838083,44318.0016399375 58000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,45000.0
+ 57256.85517452261,45669.130606358856
+ 57000.609172980905,45034.8994967025 58000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,45000.0
+ 57947.66404375705,45998.629534754575
+ 57318.0016399375,45731.35370161917 58000.0,45000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,52333.333333333336
+ 54783.7136697233,52078.689325833264
+ 55268.0753550602,51412.0226591666
+ 55268.0753550602,50587.9773408334
+ 54783.7136697233,49921.310674166736
+ 54000.0,49666.666666666664
+ 53216.2863302767,49921.310674166736
+ 52731.9246449398,50587.9773408334
+ 52731.9246449398,51412.0226591666
+ 53216.2863302767,52078.689325833264
+ 54000.0,52333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,51000.0
+ 54669.130606358856,51743.14482547739
+ 54034.8994967025,51999.390827019095 54000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,51000.0
+ 54998.629534754575,51052.33595624295
+ 54731.35370161917,51681.9983600625 54000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,51000.0
+ 54743.14482547739,50330.869393641144
+ 54999.390827019095,50965.1005032975 54000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,51000.0
+ 54052.33595624295,50001.370465245425
+ 54681.9983600625,50268.64629838083 54000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,51000.0
+ 53330.869393641144,50256.85517452261
+ 53965.1005032975,50000.609172980905 54000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,51000.0
+ 53001.370465245425,50947.66404375705
+ 53268.64629838083,50318.0016399375 54000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,51000.0
+ 53256.85517452261,51669.130606358856
+ 53000.609172980905,51034.8994967025 54000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,51000.0
+ 53947.66404375705,51998.629534754575
+ 53318.0016399375,51731.35370161917 54000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,52333.333333333336
+ 58783.7136697233,52078.689325833264
+ 59268.0753550602,51412.0226591666
+ 59268.0753550602,50587.9773408334
+ 58783.7136697233,49921.310674166736
+ 58000.0,49666.666666666664
+ 57216.2863302767,49921.310674166736
+ 56731.9246449398,50587.9773408334
+ 56731.9246449398,51412.0226591666
+ 57216.2863302767,52078.689325833264
+ 58000.0,52333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,51000.0
+ 58669.130606358856,51743.14482547739
+ 58034.8994967025,51999.390827019095 58000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,51000.0
+ 58998.629534754575,51052.33595624295
+ 58731.35370161917,51681.9983600625 58000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,51000.0
+ 58743.14482547739,50330.869393641144
+ 58999.390827019095,50965.1005032975 58000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,51000.0
+ 58052.33595624295,50001.370465245425
+ 58681.9983600625,50268.64629838083 58000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,51000.0
+ 57330.869393641144,50256.85517452261
+ 57965.1005032975,50000.609172980905 58000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,51000.0
+ 57001.370465245425,50947.66404375705
+ 57268.64629838083,50318.0016399375 58000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,51000.0
+ 57256.85517452261,51669.130606358856
+ 57000.609172980905,51034.8994967025 58000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,51000.0
+ 57947.66404375705,51998.629534754575
+ 57318.0016399375,51731.35370161917 58000.0,51000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,58333.333333333336
+ 22783.713669723296,58078.689325833264
+ 23268.075355060206,57412.0226591666
+ 23268.075355060206,56587.9773408334
+ 22783.713669723296,55921.310674166736
+ 22000.0,55666.666666666664
+ 21216.286330276704,55921.310674166736
+ 20731.924644939794,56587.9773408334
+ 20731.924644939794,57412.0226591666
+ 21216.286330276704,58078.689325833264
+ 22000.0,58333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,57000.0
+ 22669.13060635886,57743.14482547739
+ 22034.8994967025,57999.390827019095 22000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,57000.0
+ 22998.629534754575,57052.33595624295
+ 22731.35370161917,57681.9983600625 22000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,57000.0
+ 22743.144825477393,56330.869393641144
+ 22999.390827019095,56965.1005032975 22000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,57000.0
+ 22052.335956242943,56001.370465245425
+ 22681.9983600625,56268.64629838083 22000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,57000.0
+ 21330.86939364114,56256.85517452261
+ 21965.1005032975,56000.609172980905 22000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,57000.0
+ 21001.370465245425,56947.66404375705
+ 21268.64629838083,56318.0016399375 22000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,57000.0
+ 21256.855174522607,57669.130606358856
+ 21000.609172980905,57034.8994967025 22000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,57000.0
+ 21947.664043757057,57998.629534754575
+ 21318.0016399375,57731.35370161917 22000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,58333.333333333336
+ 26783.713669723296,58078.689325833264
+ 27268.075355060206,57412.0226591666
+ 27268.075355060206,56587.9773408334
+ 26783.713669723296,55921.310674166736
+ 26000.0,55666.666666666664
+ 25216.286330276704,55921.310674166736
+ 24731.924644939794,56587.9773408334
+ 24731.924644939794,57412.0226591666
+ 25216.286330276704,58078.689325833264
+ 26000.0,58333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,57000.0
+ 26669.13060635886,57743.14482547739
+ 26034.8994967025,57999.390827019095 26000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,57000.0
+ 26998.629534754575,57052.33595624295
+ 26731.35370161917,57681.9983600625 26000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,57000.0
+ 26743.144825477393,56330.869393641144
+ 26999.390827019095,56965.1005032975 26000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,57000.0
+ 26052.335956242943,56001.370465245425
+ 26681.9983600625,56268.64629838083 26000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,57000.0
+ 25330.86939364114,56256.85517452261
+ 25965.1005032975,56000.609172980905 26000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,57000.0
+ 25001.370465245425,56947.66404375705
+ 25268.64629838083,56318.0016399375 26000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,57000.0
+ 25256.855174522607,57669.130606358856
+ 25000.609172980905,57034.8994967025 26000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,57000.0
+ 25947.664043757057,57998.629534754575
+ 25318.0016399375,57731.35370161917 26000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,64333.333333333336
+ 22783.713669723296,64078.689325833264
+ 23268.075355060206,63412.0226591666
+ 23268.075355060206,62587.9773408334
+ 22783.713669723296,61921.310674166736
+ 22000.0,61666.666666666664
+ 21216.286330276704,61921.310674166736
+ 20731.924644939794,62587.9773408334
+ 20731.924644939794,63412.0226591666
+ 21216.286330276704,64078.689325833264
+ 22000.0,64333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,63000.0
+ 22669.13060635886,63743.14482547739
+ 22034.8994967025,63999.390827019095 22000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,63000.0
+ 22998.629534754575,63052.33595624295
+ 22731.35370161917,63681.9983600625 22000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,63000.0
+ 22743.144825477393,62330.869393641144
+ 22999.390827019095,62965.1005032975 22000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,63000.0
+ 22052.335956242943,62001.370465245425
+ 22681.9983600625,62268.64629838083 22000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,63000.0
+ 21330.86939364114,62256.85517452261
+ 21965.1005032975,62000.609172980905 22000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,63000.0
+ 21001.370465245425,62947.66404375705
+ 21268.64629838083,62318.0016399375 22000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,63000.0
+ 21256.855174522607,63669.130606358856
+ 21000.609172980905,63034.8994967025 22000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,63000.0
+ 21947.664043757057,63998.629534754575
+ 21318.0016399375,63731.35370161917 22000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,64333.333333333336
+ 26783.713669723296,64078.689325833264
+ 27268.075355060206,63412.0226591666
+ 27268.075355060206,62587.9773408334
+ 26783.713669723296,61921.310674166736
+ 26000.0,61666.666666666664
+ 25216.286330276704,61921.310674166736
+ 24731.924644939794,62587.9773408334
+ 24731.924644939794,63412.0226591666
+ 25216.286330276704,64078.689325833264
+ 26000.0,64333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,63000.0
+ 26669.13060635886,63743.14482547739
+ 26034.8994967025,63999.390827019095 26000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,63000.0
+ 26998.629534754575,63052.33595624295
+ 26731.35370161917,63681.9983600625 26000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,63000.0
+ 26743.144825477393,62330.869393641144
+ 26999.390827019095,62965.1005032975 26000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,63000.0
+ 26052.335956242943,62001.370465245425
+ 26681.9983600625,62268.64629838083 26000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,63000.0
+ 25330.86939364114,62256.85517452261
+ 25965.1005032975,62000.609172980905 26000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,63000.0
+ 25001.370465245425,62947.66404375705
+ 25268.64629838083,62318.0016399375 26000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,63000.0
+ 25256.855174522607,63669.130606358856
+ 25000.609172980905,63034.8994967025 26000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,63000.0
+ 25947.664043757057,63998.629534754575
+ 25318.0016399375,63731.35370161917 26000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,58333.333333333336
+ 30783.713669723296,58078.689325833264
+ 31268.075355060206,57412.0226591666
+ 31268.075355060206,56587.9773408334
+ 30783.713669723296,55921.310674166736
+ 30000.0,55666.666666666664
+ 29216.286330276704,55921.310674166736
+ 28731.924644939794,56587.9773408334
+ 28731.924644939794,57412.0226591666
+ 29216.286330276704,58078.689325833264
+ 30000.0,58333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,57000.0
+ 30669.13060635886,57743.14482547739
+ 30034.8994967025,57999.390827019095 30000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,57000.0
+ 30998.629534754575,57052.33595624295
+ 30731.35370161917,57681.9983600625 30000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,57000.0
+ 30743.144825477393,56330.869393641144
+ 30999.390827019095,56965.1005032975 30000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,57000.0
+ 30052.335956242943,56001.370465245425
+ 30681.9983600625,56268.64629838083 30000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,57000.0
+ 29330.86939364114,56256.85517452261
+ 29965.1005032975,56000.609172980905 30000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,57000.0
+ 29001.370465245425,56947.66404375705
+ 29268.64629838083,56318.0016399375 30000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,57000.0
+ 29256.855174522607,57669.130606358856
+ 29000.609172980905,57034.8994967025 30000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,57000.0
+ 29947.664043757057,57998.629534754575
+ 29318.0016399375,57731.35370161917 30000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,58333.333333333336
+ 34783.7136697233,58078.689325833264
+ 35268.0753550602,57412.0226591666
+ 35268.0753550602,56587.9773408334
+ 34783.7136697233,55921.310674166736
+ 34000.0,55666.666666666664
+ 33216.2863302767,55921.310674166736
+ 32731.924644939794,56587.9773408334
+ 32731.924644939794,57412.0226591666
+ 33216.2863302767,58078.689325833264
+ 34000.0,58333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,57000.0
+ 34669.130606358856,57743.14482547739
+ 34034.8994967025,57999.390827019095 34000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,57000.0
+ 34998.629534754575,57052.33595624295
+ 34731.35370161917,57681.9983600625 34000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,57000.0
+ 34743.14482547739,56330.869393641144
+ 34999.390827019095,56965.1005032975 34000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,57000.0
+ 34052.33595624295,56001.370465245425
+ 34681.9983600625,56268.64629838083 34000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,57000.0
+ 33330.869393641144,56256.85517452261
+ 33965.1005032975,56000.609172980905 34000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,57000.0
+ 33001.370465245425,56947.66404375705
+ 33268.64629838083,56318.0016399375 34000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,57000.0
+ 33256.85517452261,57669.130606358856
+ 33000.609172980905,57034.8994967025 34000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,57000.0
+ 33947.66404375705,57998.629534754575
+ 33318.0016399375,57731.35370161917 34000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,64333.333333333336
+ 30783.713669723296,64078.689325833264
+ 31268.075355060206,63412.0226591666
+ 31268.075355060206,62587.9773408334
+ 30783.713669723296,61921.310674166736
+ 30000.0,61666.666666666664
+ 29216.286330276704,61921.310674166736
+ 28731.924644939794,62587.9773408334
+ 28731.924644939794,63412.0226591666
+ 29216.286330276704,64078.689325833264
+ 30000.0,64333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,63000.0
+ 30669.13060635886,63743.14482547739
+ 30034.8994967025,63999.390827019095 30000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,63000.0
+ 30998.629534754575,63052.33595624295
+ 30731.35370161917,63681.9983600625 30000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,63000.0
+ 30743.144825477393,62330.869393641144
+ 30999.390827019095,62965.1005032975 30000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,63000.0
+ 30052.335956242943,62001.370465245425
+ 30681.9983600625,62268.64629838083 30000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,63000.0
+ 29330.86939364114,62256.85517452261
+ 29965.1005032975,62000.609172980905 30000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,63000.0
+ 29001.370465245425,62947.66404375705
+ 29268.64629838083,62318.0016399375 30000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,63000.0
+ 29256.855174522607,63669.130606358856
+ 29000.609172980905,63034.8994967025 30000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,63000.0
+ 29947.664043757057,63998.629534754575
+ 29318.0016399375,63731.35370161917 30000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,64333.333333333336
+ 34783.7136697233,64078.689325833264
+ 35268.0753550602,63412.0226591666
+ 35268.0753550602,62587.9773408334
+ 34783.7136697233,61921.310674166736
+ 34000.0,61666.666666666664
+ 33216.2863302767,61921.310674166736
+ 32731.924644939794,62587.9773408334
+ 32731.924644939794,63412.0226591666
+ 33216.2863302767,64078.689325833264
+ 34000.0,64333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,63000.0
+ 34669.130606358856,63743.14482547739
+ 34034.8994967025,63999.390827019095 34000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,63000.0
+ 34998.629534754575,63052.33595624295
+ 34731.35370161917,63681.9983600625 34000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,63000.0
+ 34743.14482547739,62330.869393641144
+ 34999.390827019095,62965.1005032975 34000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,63000.0
+ 34052.33595624295,62001.370465245425
+ 34681.9983600625,62268.64629838083 34000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,63000.0
+ 33330.869393641144,62256.85517452261
+ 33965.1005032975,62000.609172980905 34000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,63000.0
+ 33001.370465245425,62947.66404375705
+ 33268.64629838083,62318.0016399375 34000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,63000.0
+ 33256.85517452261,63669.130606358856
+ 33000.609172980905,63034.8994967025 34000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,63000.0
+ 33947.66404375705,63998.629534754575
+ 33318.0016399375,63731.35370161917 34000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,58333.333333333336
+ 38783.7136697233,58078.689325833264
+ 39268.0753550602,57412.0226591666
+ 39268.0753550602,56587.9773408334
+ 38783.7136697233,55921.310674166736
+ 38000.0,55666.666666666664
+ 37216.2863302767,55921.310674166736
+ 36731.9246449398,56587.9773408334
+ 36731.9246449398,57412.0226591666
+ 37216.2863302767,58078.689325833264
+ 38000.0,58333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,57000.0
+ 38669.130606358856,57743.14482547739
+ 38034.8994967025,57999.390827019095 38000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,57000.0
+ 38998.629534754575,57052.33595624295
+ 38731.35370161917,57681.9983600625 38000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,57000.0
+ 38743.14482547739,56330.869393641144
+ 38999.390827019095,56965.1005032975 38000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,57000.0
+ 38052.33595624295,56001.370465245425
+ 38681.9983600625,56268.64629838083 38000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,57000.0
+ 37330.869393641144,56256.85517452261
+ 37965.1005032975,56000.609172980905 38000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,57000.0
+ 37001.370465245425,56947.66404375705
+ 37268.64629838083,56318.0016399375 38000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,57000.0
+ 37256.85517452261,57669.130606358856
+ 37000.609172980905,57034.8994967025 38000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,57000.0
+ 37947.66404375705,57998.629534754575
+ 37318.0016399375,57731.35370161917 38000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,58333.333333333336
+ 42783.7136697233,58078.689325833264
+ 43268.0753550602,57412.0226591666
+ 43268.0753550602,56587.9773408334
+ 42783.7136697233,55921.310674166736
+ 42000.0,55666.666666666664
+ 41216.2863302767,55921.310674166736
+ 40731.9246449398,56587.9773408334
+ 40731.9246449398,57412.0226591666
+ 41216.2863302767,58078.689325833264
+ 42000.0,58333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,57000.0
+ 42669.130606358856,57743.14482547739
+ 42034.8994967025,57999.390827019095 42000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,57000.0
+ 42998.629534754575,57052.33595624295
+ 42731.35370161917,57681.9983600625 42000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,57000.0
+ 42743.14482547739,56330.869393641144
+ 42999.390827019095,56965.1005032975 42000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,57000.0
+ 42052.33595624295,56001.370465245425
+ 42681.9983600625,56268.64629838083 42000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,57000.0
+ 41330.869393641144,56256.85517452261
+ 41965.1005032975,56000.609172980905 42000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,57000.0
+ 41001.370465245425,56947.66404375705
+ 41268.64629838083,56318.0016399375 42000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,57000.0
+ 41256.85517452261,57669.130606358856
+ 41000.609172980905,57034.8994967025 42000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,57000.0
+ 41947.66404375705,57998.629534754575
+ 41318.0016399375,57731.35370161917 42000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,64333.333333333336
+ 38783.7136697233,64078.689325833264
+ 39268.0753550602,63412.0226591666
+ 39268.0753550602,62587.9773408334
+ 38783.7136697233,61921.310674166736
+ 38000.0,61666.666666666664
+ 37216.2863302767,61921.310674166736
+ 36731.9246449398,62587.9773408334
+ 36731.9246449398,63412.0226591666
+ 37216.2863302767,64078.689325833264
+ 38000.0,64333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,63000.0
+ 38669.130606358856,63743.14482547739
+ 38034.8994967025,63999.390827019095 38000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,63000.0
+ 38998.629534754575,63052.33595624295
+ 38731.35370161917,63681.9983600625 38000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,63000.0
+ 38743.14482547739,62330.869393641144
+ 38999.390827019095,62965.1005032975 38000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,63000.0
+ 38052.33595624295,62001.370465245425
+ 38681.9983600625,62268.64629838083 38000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,63000.0
+ 37330.869393641144,62256.85517452261
+ 37965.1005032975,62000.609172980905 38000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,63000.0
+ 37001.370465245425,62947.66404375705
+ 37268.64629838083,62318.0016399375 38000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,63000.0
+ 37256.85517452261,63669.130606358856
+ 37000.609172980905,63034.8994967025 38000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,63000.0
+ 37947.66404375705,63998.629534754575
+ 37318.0016399375,63731.35370161917 38000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,64333.333333333336
+ 42783.7136697233,64078.689325833264
+ 43268.0753550602,63412.0226591666
+ 43268.0753550602,62587.9773408334
+ 42783.7136697233,61921.310674166736
+ 42000.0,61666.666666666664
+ 41216.2863302767,61921.310674166736
+ 40731.9246449398,62587.9773408334
+ 40731.9246449398,63412.0226591666
+ 41216.2863302767,64078.689325833264
+ 42000.0,64333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,63000.0
+ 42669.130606358856,63743.14482547739
+ 42034.8994967025,63999.390827019095 42000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,63000.0
+ 42998.629534754575,63052.33595624295
+ 42731.35370161917,63681.9983600625 42000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,63000.0
+ 42743.14482547739,62330.869393641144
+ 42999.390827019095,62965.1005032975 42000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,63000.0
+ 42052.33595624295,62001.370465245425
+ 42681.9983600625,62268.64629838083 42000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,63000.0
+ 41330.869393641144,62256.85517452261
+ 41965.1005032975,62000.609172980905 42000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,63000.0
+ 41001.370465245425,62947.66404375705
+ 41268.64629838083,62318.0016399375 42000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,63000.0
+ 41256.85517452261,63669.130606358856
+ 41000.609172980905,63034.8994967025 42000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,63000.0
+ 41947.66404375705,63998.629534754575
+ 41318.0016399375,63731.35370161917 42000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,58333.333333333336
+ 46783.7136697233,58078.689325833264
+ 47268.0753550602,57412.0226591666
+ 47268.0753550602,56587.9773408334
+ 46783.7136697233,55921.310674166736
+ 46000.0,55666.666666666664
+ 45216.2863302767,55921.310674166736
+ 44731.9246449398,56587.9773408334
+ 44731.9246449398,57412.0226591666
+ 45216.2863302767,58078.689325833264
+ 46000.0,58333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,57000.0
+ 46669.130606358856,57743.14482547739
+ 46034.8994967025,57999.390827019095 46000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,57000.0
+ 46998.629534754575,57052.33595624295
+ 46731.35370161917,57681.9983600625 46000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,57000.0
+ 46743.14482547739,56330.869393641144
+ 46999.390827019095,56965.1005032975 46000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,57000.0
+ 46052.33595624295,56001.370465245425
+ 46681.9983600625,56268.64629838083 46000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,57000.0
+ 45330.869393641144,56256.85517452261
+ 45965.1005032975,56000.609172980905 46000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,57000.0
+ 45001.370465245425,56947.66404375705
+ 45268.64629838083,56318.0016399375 46000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,57000.0
+ 45256.85517452261,57669.130606358856
+ 45000.609172980905,57034.8994967025 46000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,57000.0
+ 45947.66404375705,57998.629534754575
+ 45318.0016399375,57731.35370161917 46000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,58333.333333333336
+ 50783.7136697233,58078.689325833264
+ 51268.0753550602,57412.0226591666
+ 51268.0753550602,56587.9773408334
+ 50783.7136697233,55921.310674166736
+ 50000.0,55666.666666666664
+ 49216.2863302767,55921.310674166736
+ 48731.9246449398,56587.9773408334
+ 48731.9246449398,57412.0226591666
+ 49216.2863302767,58078.689325833264
+ 50000.0,58333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,57000.0
+ 50669.130606358856,57743.14482547739
+ 50034.8994967025,57999.390827019095 50000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,57000.0
+ 50998.629534754575,57052.33595624295
+ 50731.35370161917,57681.9983600625 50000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,57000.0
+ 50743.14482547739,56330.869393641144
+ 50999.390827019095,56965.1005032975 50000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,57000.0
+ 50052.33595624295,56001.370465245425
+ 50681.9983600625,56268.64629838083 50000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,57000.0
+ 49330.869393641144,56256.85517452261
+ 49965.1005032975,56000.609172980905 50000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,57000.0
+ 49001.370465245425,56947.66404375705
+ 49268.64629838083,56318.0016399375 50000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,57000.0
+ 49256.85517452261,57669.130606358856
+ 49000.609172980905,57034.8994967025 50000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,57000.0
+ 49947.66404375705,57998.629534754575
+ 49318.0016399375,57731.35370161917 50000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,64333.333333333336
+ 46783.7136697233,64078.689325833264
+ 47268.0753550602,63412.0226591666
+ 47268.0753550602,62587.9773408334
+ 46783.7136697233,61921.310674166736
+ 46000.0,61666.666666666664
+ 45216.2863302767,61921.310674166736
+ 44731.9246449398,62587.9773408334
+ 44731.9246449398,63412.0226591666
+ 45216.2863302767,64078.689325833264
+ 46000.0,64333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,63000.0
+ 46669.130606358856,63743.14482547739
+ 46034.8994967025,63999.390827019095 46000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,63000.0
+ 46998.629534754575,63052.33595624295
+ 46731.35370161917,63681.9983600625 46000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,63000.0
+ 46743.14482547739,62330.869393641144
+ 46999.390827019095,62965.1005032975 46000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,63000.0
+ 46052.33595624295,62001.370465245425
+ 46681.9983600625,62268.64629838083 46000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,63000.0
+ 45330.869393641144,62256.85517452261
+ 45965.1005032975,62000.609172980905 46000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,63000.0
+ 45001.370465245425,62947.66404375705
+ 45268.64629838083,62318.0016399375 46000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,63000.0
+ 45256.85517452261,63669.130606358856
+ 45000.609172980905,63034.8994967025 46000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,63000.0
+ 45947.66404375705,63998.629534754575
+ 45318.0016399375,63731.35370161917 46000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,64333.333333333336
+ 50783.7136697233,64078.689325833264
+ 51268.0753550602,63412.0226591666
+ 51268.0753550602,62587.9773408334
+ 50783.7136697233,61921.310674166736
+ 50000.0,61666.666666666664
+ 49216.2863302767,61921.310674166736
+ 48731.9246449398,62587.9773408334
+ 48731.9246449398,63412.0226591666
+ 49216.2863302767,64078.689325833264
+ 50000.0,64333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,63000.0
+ 50669.130606358856,63743.14482547739
+ 50034.8994967025,63999.390827019095 50000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,63000.0
+ 50998.629534754575,63052.33595624295
+ 50731.35370161917,63681.9983600625 50000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,63000.0
+ 50743.14482547739,62330.869393641144
+ 50999.390827019095,62965.1005032975 50000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,63000.0
+ 50052.33595624295,62001.370465245425
+ 50681.9983600625,62268.64629838083 50000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,63000.0
+ 49330.869393641144,62256.85517452261
+ 49965.1005032975,62000.609172980905 50000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,63000.0
+ 49001.370465245425,62947.66404375705
+ 49268.64629838083,62318.0016399375 50000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,63000.0
+ 49256.85517452261,63669.130606358856
+ 49000.609172980905,63034.8994967025 50000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,63000.0
+ 49947.66404375705,63998.629534754575
+ 49318.0016399375,63731.35370161917 50000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,58333.333333333336
+ 54783.7136697233,58078.689325833264
+ 55268.0753550602,57412.0226591666
+ 55268.0753550602,56587.9773408334
+ 54783.7136697233,55921.310674166736
+ 54000.0,55666.666666666664
+ 53216.2863302767,55921.310674166736
+ 52731.9246449398,56587.9773408334
+ 52731.9246449398,57412.0226591666
+ 53216.2863302767,58078.689325833264
+ 54000.0,58333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,57000.0
+ 54669.130606358856,57743.14482547739
+ 54034.8994967025,57999.390827019095 54000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,57000.0
+ 54998.629534754575,57052.33595624295
+ 54731.35370161917,57681.9983600625 54000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,57000.0
+ 54743.14482547739,56330.869393641144
+ 54999.390827019095,56965.1005032975 54000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,57000.0
+ 54052.33595624295,56001.370465245425
+ 54681.9983600625,56268.64629838083 54000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,57000.0
+ 53330.869393641144,56256.85517452261
+ 53965.1005032975,56000.609172980905 54000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,57000.0
+ 53001.370465245425,56947.66404375705
+ 53268.64629838083,56318.0016399375 54000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,57000.0
+ 53256.85517452261,57669.130606358856
+ 53000.609172980905,57034.8994967025 54000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,57000.0
+ 53947.66404375705,57998.629534754575
+ 53318.0016399375,57731.35370161917 54000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,58333.333333333336
+ 58783.7136697233,58078.689325833264
+ 59268.0753550602,57412.0226591666
+ 59268.0753550602,56587.9773408334
+ 58783.7136697233,55921.310674166736
+ 58000.0,55666.666666666664
+ 57216.2863302767,55921.310674166736
+ 56731.9246449398,56587.9773408334
+ 56731.9246449398,57412.0226591666
+ 57216.2863302767,58078.689325833264
+ 58000.0,58333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,57000.0
+ 58669.130606358856,57743.14482547739
+ 58034.8994967025,57999.390827019095 58000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,57000.0
+ 58998.629534754575,57052.33595624295
+ 58731.35370161917,57681.9983600625 58000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,57000.0
+ 58743.14482547739,56330.869393641144
+ 58999.390827019095,56965.1005032975 58000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,57000.0
+ 58052.33595624295,56001.370465245425
+ 58681.9983600625,56268.64629838083 58000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,57000.0
+ 57330.869393641144,56256.85517452261
+ 57965.1005032975,56000.609172980905 58000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,57000.0
+ 57001.370465245425,56947.66404375705
+ 57268.64629838083,56318.0016399375 58000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,57000.0
+ 57256.85517452261,57669.130606358856
+ 57000.609172980905,57034.8994967025 58000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,57000.0
+ 57947.66404375705,57998.629534754575
+ 57318.0016399375,57731.35370161917 58000.0,57000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,64333.333333333336
+ 54783.7136697233,64078.689325833264
+ 55268.0753550602,63412.0226591666
+ 55268.0753550602,62587.9773408334
+ 54783.7136697233,61921.310674166736
+ 54000.0,61666.666666666664
+ 53216.2863302767,61921.310674166736
+ 52731.9246449398,62587.9773408334
+ 52731.9246449398,63412.0226591666
+ 53216.2863302767,64078.689325833264
+ 54000.0,64333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,63000.0
+ 54669.130606358856,63743.14482547739
+ 54034.8994967025,63999.390827019095 54000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,63000.0
+ 54998.629534754575,63052.33595624295
+ 54731.35370161917,63681.9983600625 54000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,63000.0
+ 54743.14482547739,62330.869393641144
+ 54999.390827019095,62965.1005032975 54000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,63000.0
+ 54052.33595624295,62001.370465245425
+ 54681.9983600625,62268.64629838083 54000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,63000.0
+ 53330.869393641144,62256.85517452261
+ 53965.1005032975,62000.609172980905 54000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,63000.0
+ 53001.370465245425,62947.66404375705
+ 53268.64629838083,62318.0016399375 54000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,63000.0
+ 53256.85517452261,63669.130606358856
+ 53000.609172980905,63034.8994967025 54000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,63000.0
+ 53947.66404375705,63998.629534754575
+ 53318.0016399375,63731.35370161917 54000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,64333.333333333336
+ 58783.7136697233,64078.689325833264
+ 59268.0753550602,63412.0226591666
+ 59268.0753550602,62587.9773408334
+ 58783.7136697233,61921.310674166736
+ 58000.0,61666.666666666664
+ 57216.2863302767,61921.310674166736
+ 56731.9246449398,62587.9773408334
+ 56731.9246449398,63412.0226591666
+ 57216.2863302767,64078.689325833264
+ 58000.0,64333.333333333336 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,63000.0
+ 58669.130606358856,63743.14482547739
+ 58034.8994967025,63999.390827019095 58000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,63000.0
+ 58998.629534754575,63052.33595624295
+ 58731.35370161917,63681.9983600625 58000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,63000.0
+ 58743.14482547739,62330.869393641144
+ 58999.390827019095,62965.1005032975 58000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,63000.0
+ 58052.33595624295,62001.370465245425
+ 58681.9983600625,62268.64629838083 58000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,63000.0
+ 57330.869393641144,62256.85517452261
+ 57965.1005032975,62000.609172980905 58000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,63000.0
+ 57001.370465245425,62947.66404375705
+ 57268.64629838083,62318.0016399375 58000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,63000.0
+ 57256.85517452261,63669.130606358856
+ 57000.609172980905,63034.8994967025 58000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,63000.0
+ 57947.66404375705,63998.629534754575
+ 57318.0016399375,63731.35370161917 58000.0,63000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,70333.33333333333
+ 22783.713669723296,70078.68932583326
+ 23268.075355060206,69412.0226591666
+ 23268.075355060206,68587.9773408334
+ 22783.713669723296,67921.31067416674
+ 22000.0,67666.66666666667
+ 21216.286330276704,67921.31067416674
+ 20731.924644939794,68587.9773408334
+ 20731.924644939794,69412.0226591666
+ 21216.286330276704,70078.68932583326
+ 22000.0,70333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,69000.0
+ 22669.13060635886,69743.1448254774
+ 22034.8994967025,69999.3908270191 22000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,69000.0
+ 22998.629534754575,69052.33595624294
+ 22731.35370161917,69681.9983600625 22000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,69000.0
+ 22743.144825477393,68330.86939364114
+ 22999.390827019095,68965.1005032975 22000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,69000.0
+ 22052.335956242943,68001.37046524543
+ 22681.9983600625,68268.64629838083 22000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,69000.0
+ 21330.86939364114,68256.8551745226
+ 21965.1005032975,68000.6091729809 22000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,69000.0
+ 21001.370465245425,68947.66404375706
+ 21268.64629838083,68318.0016399375 22000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,69000.0
+ 21256.855174522607,69669.13060635886
+ 21000.609172980905,69034.8994967025 22000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,69000.0
+ 21947.664043757057,69998.62953475457
+ 21318.0016399375,69731.35370161917 22000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,70333.33333333333
+ 26783.713669723296,70078.68932583326
+ 27268.075355060206,69412.0226591666
+ 27268.075355060206,68587.9773408334
+ 26783.713669723296,67921.31067416674
+ 26000.0,67666.66666666667
+ 25216.286330276704,67921.31067416674
+ 24731.924644939794,68587.9773408334
+ 24731.924644939794,69412.0226591666
+ 25216.286330276704,70078.68932583326
+ 26000.0,70333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,69000.0
+ 26669.13060635886,69743.1448254774
+ 26034.8994967025,69999.3908270191 26000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,69000.0
+ 26998.629534754575,69052.33595624294
+ 26731.35370161917,69681.9983600625 26000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,69000.0
+ 26743.144825477393,68330.86939364114
+ 26999.390827019095,68965.1005032975 26000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,69000.0
+ 26052.335956242943,68001.37046524543
+ 26681.9983600625,68268.64629838083 26000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,69000.0
+ 25330.86939364114,68256.8551745226
+ 25965.1005032975,68000.6091729809 26000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,69000.0
+ 25001.370465245425,68947.66404375706
+ 25268.64629838083,68318.0016399375 26000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,69000.0
+ 25256.855174522607,69669.13060635886
+ 25000.609172980905,69034.8994967025 26000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,69000.0
+ 25947.664043757057,69998.62953475457
+ 25318.0016399375,69731.35370161917 26000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,76333.33333333333
+ 22783.713669723296,76078.68932583326
+ 23268.075355060206,75412.0226591666
+ 23268.075355060206,74587.9773408334
+ 22783.713669723296,73921.31067416674
+ 22000.0,73666.66666666667
+ 21216.286330276704,73921.31067416674
+ 20731.924644939794,74587.9773408334
+ 20731.924644939794,75412.0226591666
+ 21216.286330276704,76078.68932583326
+ 22000.0,76333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,75000.0
+ 22669.13060635886,75743.1448254774
+ 22034.8994967025,75999.3908270191 22000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,75000.0
+ 22998.629534754575,75052.33595624294
+ 22731.35370161917,75681.9983600625 22000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,75000.0
+ 22743.144825477393,74330.86939364114
+ 22999.390827019095,74965.1005032975 22000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,75000.0
+ 22052.335956242943,74001.37046524543
+ 22681.9983600625,74268.64629838083 22000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,75000.0
+ 21330.86939364114,74256.8551745226
+ 21965.1005032975,74000.6091729809 22000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,75000.0
+ 21001.370465245425,74947.66404375706
+ 21268.64629838083,74318.0016399375 22000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,75000.0
+ 21256.855174522607,75669.13060635886
+ 21000.609172980905,75034.8994967025 22000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,75000.0
+ 21947.664043757057,75998.62953475457
+ 21318.0016399375,75731.35370161917 22000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,76333.33333333333
+ 26783.713669723296,76078.68932583326
+ 27268.075355060206,75412.0226591666
+ 27268.075355060206,74587.9773408334
+ 26783.713669723296,73921.31067416674
+ 26000.0,73666.66666666667
+ 25216.286330276704,73921.31067416674
+ 24731.924644939794,74587.9773408334
+ 24731.924644939794,75412.0226591666
+ 25216.286330276704,76078.68932583326
+ 26000.0,76333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,75000.0
+ 26669.13060635886,75743.1448254774
+ 26034.8994967025,75999.3908270191 26000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,75000.0
+ 26998.629534754575,75052.33595624294
+ 26731.35370161917,75681.9983600625 26000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,75000.0
+ 26743.144825477393,74330.86939364114
+ 26999.390827019095,74965.1005032975 26000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,75000.0
+ 26052.335956242943,74001.37046524543
+ 26681.9983600625,74268.64629838083 26000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,75000.0
+ 25330.86939364114,74256.8551745226
+ 25965.1005032975,74000.6091729809 26000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,75000.0
+ 25001.370465245425,74947.66404375706
+ 25268.64629838083,74318.0016399375 26000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,75000.0
+ 25256.855174522607,75669.13060635886
+ 25000.609172980905,75034.8994967025 26000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,75000.0
+ 25947.664043757057,75998.62953475457
+ 25318.0016399375,75731.35370161917 26000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,70333.33333333333
+ 30783.713669723296,70078.68932583326
+ 31268.075355060206,69412.0226591666
+ 31268.075355060206,68587.9773408334
+ 30783.713669723296,67921.31067416674
+ 30000.0,67666.66666666667
+ 29216.286330276704,67921.31067416674
+ 28731.924644939794,68587.9773408334
+ 28731.924644939794,69412.0226591666
+ 29216.286330276704,70078.68932583326
+ 30000.0,70333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,69000.0
+ 30669.13060635886,69743.1448254774
+ 30034.8994967025,69999.3908270191 30000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,69000.0
+ 30998.629534754575,69052.33595624294
+ 30731.35370161917,69681.9983600625 30000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,69000.0
+ 30743.144825477393,68330.86939364114
+ 30999.390827019095,68965.1005032975 30000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,69000.0
+ 30052.335956242943,68001.37046524543
+ 30681.9983600625,68268.64629838083 30000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,69000.0
+ 29330.86939364114,68256.8551745226
+ 29965.1005032975,68000.6091729809 30000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,69000.0
+ 29001.370465245425,68947.66404375706
+ 29268.64629838083,68318.0016399375 30000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,69000.0
+ 29256.855174522607,69669.13060635886
+ 29000.609172980905,69034.8994967025 30000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,69000.0
+ 29947.664043757057,69998.62953475457
+ 29318.0016399375,69731.35370161917 30000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,70333.33333333333
+ 34783.7136697233,70078.68932583326
+ 35268.0753550602,69412.0226591666
+ 35268.0753550602,68587.9773408334
+ 34783.7136697233,67921.31067416674
+ 34000.0,67666.66666666667
+ 33216.2863302767,67921.31067416674
+ 32731.924644939794,68587.9773408334
+ 32731.924644939794,69412.0226591666
+ 33216.2863302767,70078.68932583326
+ 34000.0,70333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,69000.0
+ 34669.130606358856,69743.1448254774
+ 34034.8994967025,69999.3908270191 34000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,69000.0
+ 34998.629534754575,69052.33595624294
+ 34731.35370161917,69681.9983600625 34000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,69000.0
+ 34743.14482547739,68330.86939364114
+ 34999.390827019095,68965.1005032975 34000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,69000.0
+ 34052.33595624295,68001.37046524543
+ 34681.9983600625,68268.64629838083 34000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,69000.0
+ 33330.869393641144,68256.8551745226
+ 33965.1005032975,68000.6091729809 34000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,69000.0
+ 33001.370465245425,68947.66404375706
+ 33268.64629838083,68318.0016399375 34000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,69000.0
+ 33256.85517452261,69669.13060635886
+ 33000.609172980905,69034.8994967025 34000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,69000.0
+ 33947.66404375705,69998.62953475457
+ 33318.0016399375,69731.35370161917 34000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,76333.33333333333
+ 30783.713669723296,76078.68932583326
+ 31268.075355060206,75412.0226591666
+ 31268.075355060206,74587.9773408334
+ 30783.713669723296,73921.31067416674
+ 30000.0,73666.66666666667
+ 29216.286330276704,73921.31067416674
+ 28731.924644939794,74587.9773408334
+ 28731.924644939794,75412.0226591666
+ 29216.286330276704,76078.68932583326
+ 30000.0,76333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,75000.0
+ 30669.13060635886,75743.1448254774
+ 30034.8994967025,75999.3908270191 30000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,75000.0
+ 30998.629534754575,75052.33595624294
+ 30731.35370161917,75681.9983600625 30000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,75000.0
+ 30743.144825477393,74330.86939364114
+ 30999.390827019095,74965.1005032975 30000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,75000.0
+ 30052.335956242943,74001.37046524543
+ 30681.9983600625,74268.64629838083 30000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,75000.0
+ 29330.86939364114,74256.8551745226
+ 29965.1005032975,74000.6091729809 30000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,75000.0
+ 29001.370465245425,74947.66404375706
+ 29268.64629838083,74318.0016399375 30000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,75000.0
+ 29256.855174522607,75669.13060635886
+ 29000.609172980905,75034.8994967025 30000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,75000.0
+ 29947.664043757057,75998.62953475457
+ 29318.0016399375,75731.35370161917 30000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,76333.33333333333
+ 34783.7136697233,76078.68932583326
+ 35268.0753550602,75412.0226591666
+ 35268.0753550602,74587.9773408334
+ 34783.7136697233,73921.31067416674
+ 34000.0,73666.66666666667
+ 33216.2863302767,73921.31067416674
+ 32731.924644939794,74587.9773408334
+ 32731.924644939794,75412.0226591666
+ 33216.2863302767,76078.68932583326
+ 34000.0,76333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,75000.0
+ 34669.130606358856,75743.1448254774
+ 34034.8994967025,75999.3908270191 34000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,75000.0
+ 34998.629534754575,75052.33595624294
+ 34731.35370161917,75681.9983600625 34000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,75000.0
+ 34743.14482547739,74330.86939364114
+ 34999.390827019095,74965.1005032975 34000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,75000.0
+ 34052.33595624295,74001.37046524543
+ 34681.9983600625,74268.64629838083 34000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,75000.0
+ 33330.869393641144,74256.8551745226
+ 33965.1005032975,74000.6091729809 34000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,75000.0
+ 33001.370465245425,74947.66404375706
+ 33268.64629838083,74318.0016399375 34000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,75000.0
+ 33256.85517452261,75669.13060635886
+ 33000.609172980905,75034.8994967025 34000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,75000.0
+ 33947.66404375705,75998.62953475457
+ 33318.0016399375,75731.35370161917 34000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,70333.33333333333
+ 38783.7136697233,70078.68932583326
+ 39268.0753550602,69412.0226591666
+ 39268.0753550602,68587.9773408334
+ 38783.7136697233,67921.31067416674
+ 38000.0,67666.66666666667
+ 37216.2863302767,67921.31067416674
+ 36731.9246449398,68587.9773408334
+ 36731.9246449398,69412.0226591666
+ 37216.2863302767,70078.68932583326
+ 38000.0,70333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,69000.0
+ 38669.130606358856,69743.1448254774
+ 38034.8994967025,69999.3908270191 38000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,69000.0
+ 38998.629534754575,69052.33595624294
+ 38731.35370161917,69681.9983600625 38000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,69000.0
+ 38743.14482547739,68330.86939364114
+ 38999.390827019095,68965.1005032975 38000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,69000.0
+ 38052.33595624295,68001.37046524543
+ 38681.9983600625,68268.64629838083 38000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,69000.0
+ 37330.869393641144,68256.8551745226
+ 37965.1005032975,68000.6091729809 38000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,69000.0
+ 37001.370465245425,68947.66404375706
+ 37268.64629838083,68318.0016399375 38000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,69000.0
+ 37256.85517452261,69669.13060635886
+ 37000.609172980905,69034.8994967025 38000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,69000.0
+ 37947.66404375705,69998.62953475457
+ 37318.0016399375,69731.35370161917 38000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,70333.33333333333
+ 42783.7136697233,70078.68932583326
+ 43268.0753550602,69412.0226591666
+ 43268.0753550602,68587.9773408334
+ 42783.7136697233,67921.31067416674
+ 42000.0,67666.66666666667
+ 41216.2863302767,67921.31067416674
+ 40731.9246449398,68587.9773408334
+ 40731.9246449398,69412.0226591666
+ 41216.2863302767,70078.68932583326
+ 42000.0,70333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,69000.0
+ 42669.130606358856,69743.1448254774
+ 42034.8994967025,69999.3908270191 42000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,69000.0
+ 42998.629534754575,69052.33595624294
+ 42731.35370161917,69681.9983600625 42000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,69000.0
+ 42743.14482547739,68330.86939364114
+ 42999.390827019095,68965.1005032975 42000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,69000.0
+ 42052.33595624295,68001.37046524543
+ 42681.9983600625,68268.64629838083 42000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,69000.0
+ 41330.869393641144,68256.8551745226
+ 41965.1005032975,68000.6091729809 42000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,69000.0
+ 41001.370465245425,68947.66404375706
+ 41268.64629838083,68318.0016399375 42000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,69000.0
+ 41256.85517452261,69669.13060635886
+ 41000.609172980905,69034.8994967025 42000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,69000.0
+ 41947.66404375705,69998.62953475457
+ 41318.0016399375,69731.35370161917 42000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,76333.33333333333
+ 38783.7136697233,76078.68932583326
+ 39268.0753550602,75412.0226591666
+ 39268.0753550602,74587.9773408334
+ 38783.7136697233,73921.31067416674
+ 38000.0,73666.66666666667
+ 37216.2863302767,73921.31067416674
+ 36731.9246449398,74587.9773408334
+ 36731.9246449398,75412.0226591666
+ 37216.2863302767,76078.68932583326
+ 38000.0,76333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,75000.0
+ 38669.130606358856,75743.1448254774
+ 38034.8994967025,75999.3908270191 38000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,75000.0
+ 38998.629534754575,75052.33595624294
+ 38731.35370161917,75681.9983600625 38000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,75000.0
+ 38743.14482547739,74330.86939364114
+ 38999.390827019095,74965.1005032975 38000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,75000.0
+ 38052.33595624295,74001.37046524543
+ 38681.9983600625,74268.64629838083 38000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,75000.0
+ 37330.869393641144,74256.8551745226
+ 37965.1005032975,74000.6091729809 38000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,75000.0
+ 37001.370465245425,74947.66404375706
+ 37268.64629838083,74318.0016399375 38000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,75000.0
+ 37256.85517452261,75669.13060635886
+ 37000.609172980905,75034.8994967025 38000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,75000.0
+ 37947.66404375705,75998.62953475457
+ 37318.0016399375,75731.35370161917 38000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,76333.33333333333
+ 42783.7136697233,76078.68932583326
+ 43268.0753550602,75412.0226591666
+ 43268.0753550602,74587.9773408334
+ 42783.7136697233,73921.31067416674
+ 42000.0,73666.66666666667
+ 41216.2863302767,73921.31067416674
+ 40731.9246449398,74587.9773408334
+ 40731.9246449398,75412.0226591666
+ 41216.2863302767,76078.68932583326
+ 42000.0,76333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,75000.0
+ 42669.130606358856,75743.1448254774
+ 42034.8994967025,75999.3908270191 42000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,75000.0
+ 42998.629534754575,75052.33595624294
+ 42731.35370161917,75681.9983600625 42000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,75000.0
+ 42743.14482547739,74330.86939364114
+ 42999.390827019095,74965.1005032975 42000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,75000.0
+ 42052.33595624295,74001.37046524543
+ 42681.9983600625,74268.64629838083 42000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,75000.0
+ 41330.869393641144,74256.8551745226
+ 41965.1005032975,74000.6091729809 42000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,75000.0
+ 41001.370465245425,74947.66404375706
+ 41268.64629838083,74318.0016399375 42000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,75000.0
+ 41256.85517452261,75669.13060635886
+ 41000.609172980905,75034.8994967025 42000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,75000.0
+ 41947.66404375705,75998.62953475457
+ 41318.0016399375,75731.35370161917 42000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,70333.33333333333
+ 46783.7136697233,70078.68932583326
+ 47268.0753550602,69412.0226591666
+ 47268.0753550602,68587.9773408334
+ 46783.7136697233,67921.31067416674
+ 46000.0,67666.66666666667
+ 45216.2863302767,67921.31067416674
+ 44731.9246449398,68587.9773408334
+ 44731.9246449398,69412.0226591666
+ 45216.2863302767,70078.68932583326
+ 46000.0,70333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,69000.0
+ 46669.130606358856,69743.1448254774
+ 46034.8994967025,69999.3908270191 46000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,69000.0
+ 46998.629534754575,69052.33595624294
+ 46731.35370161917,69681.9983600625 46000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,69000.0
+ 46743.14482547739,68330.86939364114
+ 46999.390827019095,68965.1005032975 46000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,69000.0
+ 46052.33595624295,68001.37046524543
+ 46681.9983600625,68268.64629838083 46000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,69000.0
+ 45330.869393641144,68256.8551745226
+ 45965.1005032975,68000.6091729809 46000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,69000.0
+ 45001.370465245425,68947.66404375706
+ 45268.64629838083,68318.0016399375 46000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,69000.0
+ 45256.85517452261,69669.13060635886
+ 45000.609172980905,69034.8994967025 46000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,69000.0
+ 45947.66404375705,69998.62953475457
+ 45318.0016399375,69731.35370161917 46000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,70333.33333333333
+ 50783.7136697233,70078.68932583326
+ 51268.0753550602,69412.0226591666
+ 51268.0753550602,68587.9773408334
+ 50783.7136697233,67921.31067416674
+ 50000.0,67666.66666666667
+ 49216.2863302767,67921.31067416674
+ 48731.9246449398,68587.9773408334
+ 48731.9246449398,69412.0226591666
+ 49216.2863302767,70078.68932583326
+ 50000.0,70333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,69000.0
+ 50669.130606358856,69743.1448254774
+ 50034.8994967025,69999.3908270191 50000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,69000.0
+ 50998.629534754575,69052.33595624294
+ 50731.35370161917,69681.9983600625 50000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,69000.0
+ 50743.14482547739,68330.86939364114
+ 50999.390827019095,68965.1005032975 50000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,69000.0
+ 50052.33595624295,68001.37046524543
+ 50681.9983600625,68268.64629838083 50000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,69000.0
+ 49330.869393641144,68256.8551745226
+ 49965.1005032975,68000.6091729809 50000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,69000.0
+ 49001.370465245425,68947.66404375706
+ 49268.64629838083,68318.0016399375 50000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,69000.0
+ 49256.85517452261,69669.13060635886
+ 49000.609172980905,69034.8994967025 50000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,69000.0
+ 49947.66404375705,69998.62953475457
+ 49318.0016399375,69731.35370161917 50000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,76333.33333333333
+ 46783.7136697233,76078.68932583326
+ 47268.0753550602,75412.0226591666
+ 47268.0753550602,74587.9773408334
+ 46783.7136697233,73921.31067416674
+ 46000.0,73666.66666666667
+ 45216.2863302767,73921.31067416674
+ 44731.9246449398,74587.9773408334
+ 44731.9246449398,75412.0226591666
+ 45216.2863302767,76078.68932583326
+ 46000.0,76333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,75000.0
+ 46669.130606358856,75743.1448254774
+ 46034.8994967025,75999.3908270191 46000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,75000.0
+ 46998.629534754575,75052.33595624294
+ 46731.35370161917,75681.9983600625 46000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,75000.0
+ 46743.14482547739,74330.86939364114
+ 46999.390827019095,74965.1005032975 46000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,75000.0
+ 46052.33595624295,74001.37046524543
+ 46681.9983600625,74268.64629838083 46000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,75000.0
+ 45330.869393641144,74256.8551745226
+ 45965.1005032975,74000.6091729809 46000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,75000.0
+ 45001.370465245425,74947.66404375706
+ 45268.64629838083,74318.0016399375 46000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,75000.0
+ 45256.85517452261,75669.13060635886
+ 45000.609172980905,75034.8994967025 46000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,75000.0
+ 45947.66404375705,75998.62953475457
+ 45318.0016399375,75731.35370161917 46000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,76333.33333333333
+ 50783.7136697233,76078.68932583326
+ 51268.0753550602,75412.0226591666
+ 51268.0753550602,74587.9773408334
+ 50783.7136697233,73921.31067416674
+ 50000.0,73666.66666666667
+ 49216.2863302767,73921.31067416674
+ 48731.9246449398,74587.9773408334
+ 48731.9246449398,75412.0226591666
+ 49216.2863302767,76078.68932583326
+ 50000.0,76333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,75000.0
+ 50669.130606358856,75743.1448254774
+ 50034.8994967025,75999.3908270191 50000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,75000.0
+ 50998.629534754575,75052.33595624294
+ 50731.35370161917,75681.9983600625 50000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,75000.0
+ 50743.14482547739,74330.86939364114
+ 50999.390827019095,74965.1005032975 50000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,75000.0
+ 50052.33595624295,74001.37046524543
+ 50681.9983600625,74268.64629838083 50000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,75000.0
+ 49330.869393641144,74256.8551745226
+ 49965.1005032975,74000.6091729809 50000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,75000.0
+ 49001.370465245425,74947.66404375706
+ 49268.64629838083,74318.0016399375 50000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,75000.0
+ 49256.85517452261,75669.13060635886
+ 49000.609172980905,75034.8994967025 50000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,75000.0
+ 49947.66404375705,75998.62953475457
+ 49318.0016399375,75731.35370161917 50000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,70333.33333333333
+ 54783.7136697233,70078.68932583326
+ 55268.0753550602,69412.0226591666
+ 55268.0753550602,68587.9773408334
+ 54783.7136697233,67921.31067416674
+ 54000.0,67666.66666666667
+ 53216.2863302767,67921.31067416674
+ 52731.9246449398,68587.9773408334
+ 52731.9246449398,69412.0226591666
+ 53216.2863302767,70078.68932583326
+ 54000.0,70333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,69000.0
+ 54669.130606358856,69743.1448254774
+ 54034.8994967025,69999.3908270191 54000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,69000.0
+ 54998.629534754575,69052.33595624294
+ 54731.35370161917,69681.9983600625 54000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,69000.0
+ 54743.14482547739,68330.86939364114
+ 54999.390827019095,68965.1005032975 54000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,69000.0
+ 54052.33595624295,68001.37046524543
+ 54681.9983600625,68268.64629838083 54000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,69000.0
+ 53330.869393641144,68256.8551745226
+ 53965.1005032975,68000.6091729809 54000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,69000.0
+ 53001.370465245425,68947.66404375706
+ 53268.64629838083,68318.0016399375 54000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,69000.0
+ 53256.85517452261,69669.13060635886
+ 53000.609172980905,69034.8994967025 54000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,69000.0
+ 53947.66404375705,69998.62953475457
+ 53318.0016399375,69731.35370161917 54000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,70333.33333333333
+ 58783.7136697233,70078.68932583326
+ 59268.0753550602,69412.0226591666
+ 59268.0753550602,68587.9773408334
+ 58783.7136697233,67921.31067416674
+ 58000.0,67666.66666666667
+ 57216.2863302767,67921.31067416674
+ 56731.9246449398,68587.9773408334
+ 56731.9246449398,69412.0226591666
+ 57216.2863302767,70078.68932583326
+ 58000.0,70333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,69000.0
+ 58669.130606358856,69743.1448254774
+ 58034.8994967025,69999.3908270191 58000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,69000.0
+ 58998.629534754575,69052.33595624294
+ 58731.35370161917,69681.9983600625 58000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,69000.0
+ 58743.14482547739,68330.86939364114
+ 58999.390827019095,68965.1005032975 58000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,69000.0
+ 58052.33595624295,68001.37046524543
+ 58681.9983600625,68268.64629838083 58000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,69000.0
+ 57330.869393641144,68256.8551745226
+ 57965.1005032975,68000.6091729809 58000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,69000.0
+ 57001.370465245425,68947.66404375706
+ 57268.64629838083,68318.0016399375 58000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,69000.0
+ 57256.85517452261,69669.13060635886
+ 57000.609172980905,69034.8994967025 58000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,69000.0
+ 57947.66404375705,69998.62953475457
+ 57318.0016399375,69731.35370161917 58000.0,69000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,76333.33333333333
+ 54783.7136697233,76078.68932583326
+ 55268.0753550602,75412.0226591666
+ 55268.0753550602,74587.9773408334
+ 54783.7136697233,73921.31067416674
+ 54000.0,73666.66666666667
+ 53216.2863302767,73921.31067416674
+ 52731.9246449398,74587.9773408334
+ 52731.9246449398,75412.0226591666
+ 53216.2863302767,76078.68932583326
+ 54000.0,76333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,75000.0
+ 54669.130606358856,75743.1448254774
+ 54034.8994967025,75999.3908270191 54000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,75000.0
+ 54998.629534754575,75052.33595624294
+ 54731.35370161917,75681.9983600625 54000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,75000.0
+ 54743.14482547739,74330.86939364114
+ 54999.390827019095,74965.1005032975 54000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,75000.0
+ 54052.33595624295,74001.37046524543
+ 54681.9983600625,74268.64629838083 54000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,75000.0
+ 53330.869393641144,74256.8551745226
+ 53965.1005032975,74000.6091729809 54000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,75000.0
+ 53001.370465245425,74947.66404375706
+ 53268.64629838083,74318.0016399375 54000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,75000.0
+ 53256.85517452261,75669.13060635886
+ 53000.609172980905,75034.8994967025 54000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,75000.0
+ 53947.66404375705,75998.62953475457
+ 53318.0016399375,75731.35370161917 54000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,76333.33333333333
+ 58783.7136697233,76078.68932583326
+ 59268.0753550602,75412.0226591666
+ 59268.0753550602,74587.9773408334
+ 58783.7136697233,73921.31067416674
+ 58000.0,73666.66666666667
+ 57216.2863302767,73921.31067416674
+ 56731.9246449398,74587.9773408334
+ 56731.9246449398,75412.0226591666
+ 57216.2863302767,76078.68932583326
+ 58000.0,76333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,75000.0
+ 58669.130606358856,75743.1448254774
+ 58034.8994967025,75999.3908270191 58000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,75000.0
+ 58998.629534754575,75052.33595624294
+ 58731.35370161917,75681.9983600625 58000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,75000.0
+ 58743.14482547739,74330.86939364114
+ 58999.390827019095,74965.1005032975 58000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,75000.0
+ 58052.33595624295,74001.37046524543
+ 58681.9983600625,74268.64629838083 58000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,75000.0
+ 57330.869393641144,74256.8551745226
+ 57965.1005032975,74000.6091729809 58000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,75000.0
+ 57001.370465245425,74947.66404375706
+ 57268.64629838083,74318.0016399375 58000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,75000.0
+ 57256.85517452261,75669.13060635886
+ 57000.609172980905,75034.8994967025 58000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,75000.0
+ 57947.66404375705,75998.62953475457
+ 57318.0016399375,75731.35370161917 58000.0,75000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,82333.33333333333
+ 22783.713669723296,82078.68932583326
+ 23268.075355060206,81412.0226591666
+ 23268.075355060206,80587.9773408334
+ 22783.713669723296,79921.31067416674
+ 22000.0,79666.66666666667
+ 21216.286330276704,79921.31067416674
+ 20731.924644939794,80587.9773408334
+ 20731.924644939794,81412.0226591666
+ 21216.286330276704,82078.68932583326
+ 22000.0,82333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,81000.0
+ 22669.13060635886,81743.1448254774
+ 22034.8994967025,81999.3908270191 22000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,81000.0
+ 22998.629534754575,81052.33595624294
+ 22731.35370161917,81681.9983600625 22000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,81000.0
+ 22743.144825477393,80330.86939364114
+ 22999.390827019095,80965.1005032975 22000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,81000.0
+ 22052.335956242943,80001.37046524543
+ 22681.9983600625,80268.64629838083 22000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,81000.0
+ 21330.86939364114,80256.8551745226
+ 21965.1005032975,80000.6091729809 22000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,81000.0
+ 21001.370465245425,80947.66404375706
+ 21268.64629838083,80318.0016399375 22000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,81000.0
+ 21256.855174522607,81669.13060635886
+ 21000.609172980905,81034.8994967025 22000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,81000.0
+ 21947.664043757057,81998.62953475457
+ 21318.0016399375,81731.35370161917 22000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,82333.33333333333
+ 26783.713669723296,82078.68932583326
+ 27268.075355060206,81412.0226591666
+ 27268.075355060206,80587.9773408334
+ 26783.713669723296,79921.31067416674
+ 26000.0,79666.66666666667
+ 25216.286330276704,79921.31067416674
+ 24731.924644939794,80587.9773408334
+ 24731.924644939794,81412.0226591666
+ 25216.286330276704,82078.68932583326
+ 26000.0,82333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,81000.0
+ 26669.13060635886,81743.1448254774
+ 26034.8994967025,81999.3908270191 26000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,81000.0
+ 26998.629534754575,81052.33595624294
+ 26731.35370161917,81681.9983600625 26000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,81000.0
+ 26743.144825477393,80330.86939364114
+ 26999.390827019095,80965.1005032975 26000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,81000.0
+ 26052.335956242943,80001.37046524543
+ 26681.9983600625,80268.64629838083 26000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,81000.0
+ 25330.86939364114,80256.8551745226
+ 25965.1005032975,80000.6091729809 26000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,81000.0
+ 25001.370465245425,80947.66404375706
+ 25268.64629838083,80318.0016399375 26000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,81000.0
+ 25256.855174522607,81669.13060635886
+ 25000.609172980905,81034.8994967025 26000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,81000.0
+ 25947.664043757057,81998.62953475457
+ 25318.0016399375,81731.35370161917 26000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,88333.33333333333
+ 22783.713669723296,88078.68932583326
+ 23268.075355060206,87412.0226591666
+ 23268.075355060206,86587.9773408334
+ 22783.713669723296,85921.31067416674
+ 22000.0,85666.66666666667
+ 21216.286330276704,85921.31067416674
+ 20731.924644939794,86587.9773408334
+ 20731.924644939794,87412.0226591666
+ 21216.286330276704,88078.68932583326
+ 22000.0,88333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,87000.0
+ 22669.13060635886,87743.1448254774
+ 22034.8994967025,87999.3908270191 22000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,87000.0
+ 22998.629534754575,87052.33595624294
+ 22731.35370161917,87681.9983600625 22000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,87000.0
+ 22743.144825477393,86330.86939364114
+ 22999.390827019095,86965.1005032975 22000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,87000.0
+ 22052.335956242943,86001.37046524543
+ 22681.9983600625,86268.64629838083 22000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,87000.0
+ 21330.86939364114,86256.8551745226
+ 21965.1005032975,86000.6091729809 22000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,87000.0
+ 21001.370465245425,86947.66404375706
+ 21268.64629838083,86318.0016399375 22000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,87000.0
+ 21256.855174522607,87669.13060635886
+ 21000.609172980905,87034.8994967025 22000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>22000.0,87000.0
+ 21947.664043757057,87998.62953475457
+ 21318.0016399375,87731.35370161917 22000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,88333.33333333333
+ 26783.713669723296,88078.68932583326
+ 27268.075355060206,87412.0226591666
+ 27268.075355060206,86587.9773408334
+ 26783.713669723296,85921.31067416674
+ 26000.0,85666.66666666667
+ 25216.286330276704,85921.31067416674
+ 24731.924644939794,86587.9773408334
+ 24731.924644939794,87412.0226591666
+ 25216.286330276704,88078.68932583326
+ 26000.0,88333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,87000.0
+ 26669.13060635886,87743.1448254774
+ 26034.8994967025,87999.3908270191 26000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,87000.0
+ 26998.629534754575,87052.33595624294
+ 26731.35370161917,87681.9983600625 26000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,87000.0
+ 26743.144825477393,86330.86939364114
+ 26999.390827019095,86965.1005032975 26000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,87000.0
+ 26052.335956242943,86001.37046524543
+ 26681.9983600625,86268.64629838083 26000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,87000.0
+ 25330.86939364114,86256.8551745226
+ 25965.1005032975,86000.6091729809 26000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,87000.0
+ 25001.370465245425,86947.66404375706
+ 25268.64629838083,86318.0016399375 26000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,87000.0
+ 25256.855174522607,87669.13060635886
+ 25000.609172980905,87034.8994967025 26000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>26000.0,87000.0
+ 25947.664043757057,87998.62953475457
+ 25318.0016399375,87731.35370161917 26000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,82333.33333333333
+ 30783.713669723296,82078.68932583326
+ 31268.075355060206,81412.0226591666
+ 31268.075355060206,80587.9773408334
+ 30783.713669723296,79921.31067416674
+ 30000.0,79666.66666666667
+ 29216.286330276704,79921.31067416674
+ 28731.924644939794,80587.9773408334
+ 28731.924644939794,81412.0226591666
+ 29216.286330276704,82078.68932583326
+ 30000.0,82333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,81000.0
+ 30669.13060635886,81743.1448254774
+ 30034.8994967025,81999.3908270191 30000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,81000.0
+ 30998.629534754575,81052.33595624294
+ 30731.35370161917,81681.9983600625 30000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,81000.0
+ 30743.144825477393,80330.86939364114
+ 30999.390827019095,80965.1005032975 30000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,81000.0
+ 30052.335956242943,80001.37046524543
+ 30681.9983600625,80268.64629838083 30000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,81000.0
+ 29330.86939364114,80256.8551745226
+ 29965.1005032975,80000.6091729809 30000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,81000.0
+ 29001.370465245425,80947.66404375706
+ 29268.64629838083,80318.0016399375 30000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,81000.0
+ 29256.855174522607,81669.13060635886
+ 29000.609172980905,81034.8994967025 30000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,81000.0
+ 29947.664043757057,81998.62953475457
+ 29318.0016399375,81731.35370161917 30000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,82333.33333333333
+ 34783.7136697233,82078.68932583326
+ 35268.0753550602,81412.0226591666
+ 35268.0753550602,80587.9773408334
+ 34783.7136697233,79921.31067416674
+ 34000.0,79666.66666666667
+ 33216.2863302767,79921.31067416674
+ 32731.924644939794,80587.9773408334
+ 32731.924644939794,81412.0226591666
+ 33216.2863302767,82078.68932583326
+ 34000.0,82333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,81000.0
+ 34669.130606358856,81743.1448254774
+ 34034.8994967025,81999.3908270191 34000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,81000.0
+ 34998.629534754575,81052.33595624294
+ 34731.35370161917,81681.9983600625 34000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,81000.0
+ 34743.14482547739,80330.86939364114
+ 34999.390827019095,80965.1005032975 34000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,81000.0
+ 34052.33595624295,80001.37046524543
+ 34681.9983600625,80268.64629838083 34000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,81000.0
+ 33330.869393641144,80256.8551745226
+ 33965.1005032975,80000.6091729809 34000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,81000.0
+ 33001.370465245425,80947.66404375706
+ 33268.64629838083,80318.0016399375 34000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,81000.0
+ 33256.85517452261,81669.13060635886
+ 33000.609172980905,81034.8994967025 34000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,81000.0
+ 33947.66404375705,81998.62953475457
+ 33318.0016399375,81731.35370161917 34000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,88333.33333333333
+ 30783.713669723296,88078.68932583326
+ 31268.075355060206,87412.0226591666
+ 31268.075355060206,86587.9773408334
+ 30783.713669723296,85921.31067416674
+ 30000.0,85666.66666666667
+ 29216.286330276704,85921.31067416674
+ 28731.924644939794,86587.9773408334
+ 28731.924644939794,87412.0226591666
+ 29216.286330276704,88078.68932583326
+ 30000.0,88333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,87000.0
+ 30669.13060635886,87743.1448254774
+ 30034.8994967025,87999.3908270191 30000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,87000.0
+ 30998.629534754575,87052.33595624294
+ 30731.35370161917,87681.9983600625 30000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,87000.0
+ 30743.144825477393,86330.86939364114
+ 30999.390827019095,86965.1005032975 30000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,87000.0
+ 30052.335956242943,86001.37046524543
+ 30681.9983600625,86268.64629838083 30000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,87000.0
+ 29330.86939364114,86256.8551745226
+ 29965.1005032975,86000.6091729809 30000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,87000.0
+ 29001.370465245425,86947.66404375706
+ 29268.64629838083,86318.0016399375 30000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,87000.0
+ 29256.855174522607,87669.13060635886
+ 29000.609172980905,87034.8994967025 30000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>30000.0,87000.0
+ 29947.664043757057,87998.62953475457
+ 29318.0016399375,87731.35370161917 30000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,88333.33333333333
+ 34783.7136697233,88078.68932583326
+ 35268.0753550602,87412.0226591666
+ 35268.0753550602,86587.9773408334
+ 34783.7136697233,85921.31067416674
+ 34000.0,85666.66666666667
+ 33216.2863302767,85921.31067416674
+ 32731.924644939794,86587.9773408334
+ 32731.924644939794,87412.0226591666
+ 33216.2863302767,88078.68932583326
+ 34000.0,88333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,87000.0
+ 34669.130606358856,87743.1448254774
+ 34034.8994967025,87999.3908270191 34000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,87000.0
+ 34998.629534754575,87052.33595624294
+ 34731.35370161917,87681.9983600625 34000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,87000.0
+ 34743.14482547739,86330.86939364114
+ 34999.390827019095,86965.1005032975 34000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,87000.0
+ 34052.33595624295,86001.37046524543
+ 34681.9983600625,86268.64629838083 34000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,87000.0
+ 33330.869393641144,86256.8551745226
+ 33965.1005032975,86000.6091729809 34000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,87000.0
+ 33001.370465245425,86947.66404375706
+ 33268.64629838083,86318.0016399375 34000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,87000.0
+ 33256.85517452261,87669.13060635886
+ 33000.609172980905,87034.8994967025 34000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>34000.0,87000.0
+ 33947.66404375705,87998.62953475457
+ 33318.0016399375,87731.35370161917 34000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,82333.33333333333
+ 38783.7136697233,82078.68932583326
+ 39268.0753550602,81412.0226591666
+ 39268.0753550602,80587.9773408334
+ 38783.7136697233,79921.31067416674
+ 38000.0,79666.66666666667
+ 37216.2863302767,79921.31067416674
+ 36731.9246449398,80587.9773408334
+ 36731.9246449398,81412.0226591666
+ 37216.2863302767,82078.68932583326
+ 38000.0,82333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,81000.0
+ 38669.130606358856,81743.1448254774
+ 38034.8994967025,81999.3908270191 38000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,81000.0
+ 38998.629534754575,81052.33595624294
+ 38731.35370161917,81681.9983600625 38000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,81000.0
+ 38743.14482547739,80330.86939364114
+ 38999.390827019095,80965.1005032975 38000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,81000.0
+ 38052.33595624295,80001.37046524543
+ 38681.9983600625,80268.64629838083 38000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,81000.0
+ 37330.869393641144,80256.8551745226
+ 37965.1005032975,80000.6091729809 38000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,81000.0
+ 37001.370465245425,80947.66404375706
+ 37268.64629838083,80318.0016399375 38000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,81000.0
+ 37256.85517452261,81669.13060635886
+ 37000.609172980905,81034.8994967025 38000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,81000.0
+ 37947.66404375705,81998.62953475457
+ 37318.0016399375,81731.35370161917 38000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,82333.33333333333
+ 42783.7136697233,82078.68932583326
+ 43268.0753550602,81412.0226591666
+ 43268.0753550602,80587.9773408334
+ 42783.7136697233,79921.31067416674
+ 42000.0,79666.66666666667
+ 41216.2863302767,79921.31067416674
+ 40731.9246449398,80587.9773408334
+ 40731.9246449398,81412.0226591666
+ 41216.2863302767,82078.68932583326
+ 42000.0,82333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,81000.0
+ 42669.130606358856,81743.1448254774
+ 42034.8994967025,81999.3908270191 42000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,81000.0
+ 42998.629534754575,81052.33595624294
+ 42731.35370161917,81681.9983600625 42000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,81000.0
+ 42743.14482547739,80330.86939364114
+ 42999.390827019095,80965.1005032975 42000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,81000.0
+ 42052.33595624295,80001.37046524543
+ 42681.9983600625,80268.64629838083 42000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,81000.0
+ 41330.869393641144,80256.8551745226
+ 41965.1005032975,80000.6091729809 42000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,81000.0
+ 41001.370465245425,80947.66404375706
+ 41268.64629838083,80318.0016399375 42000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,81000.0
+ 41256.85517452261,81669.13060635886
+ 41000.609172980905,81034.8994967025 42000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,81000.0
+ 41947.66404375705,81998.62953475457
+ 41318.0016399375,81731.35370161917 42000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,88333.33333333333
+ 38783.7136697233,88078.68932583326
+ 39268.0753550602,87412.0226591666
+ 39268.0753550602,86587.9773408334
+ 38783.7136697233,85921.31067416674
+ 38000.0,85666.66666666667
+ 37216.2863302767,85921.31067416674
+ 36731.9246449398,86587.9773408334
+ 36731.9246449398,87412.0226591666
+ 37216.2863302767,88078.68932583326
+ 38000.0,88333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,87000.0
+ 38669.130606358856,87743.1448254774
+ 38034.8994967025,87999.3908270191 38000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,87000.0
+ 38998.629534754575,87052.33595624294
+ 38731.35370161917,87681.9983600625 38000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,87000.0
+ 38743.14482547739,86330.86939364114
+ 38999.390827019095,86965.1005032975 38000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,87000.0
+ 38052.33595624295,86001.37046524543
+ 38681.9983600625,86268.64629838083 38000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,87000.0
+ 37330.869393641144,86256.8551745226
+ 37965.1005032975,86000.6091729809 38000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,87000.0
+ 37001.370465245425,86947.66404375706
+ 37268.64629838083,86318.0016399375 38000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,87000.0
+ 37256.85517452261,87669.13060635886
+ 37000.609172980905,87034.8994967025 38000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>38000.0,87000.0
+ 37947.66404375705,87998.62953475457
+ 37318.0016399375,87731.35370161917 38000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,88333.33333333333
+ 42783.7136697233,88078.68932583326
+ 43268.0753550602,87412.0226591666
+ 43268.0753550602,86587.9773408334
+ 42783.7136697233,85921.31067416674
+ 42000.0,85666.66666666667
+ 41216.2863302767,85921.31067416674
+ 40731.9246449398,86587.9773408334
+ 40731.9246449398,87412.0226591666
+ 41216.2863302767,88078.68932583326
+ 42000.0,88333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,87000.0
+ 42669.130606358856,87743.1448254774
+ 42034.8994967025,87999.3908270191 42000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,87000.0
+ 42998.629534754575,87052.33595624294
+ 42731.35370161917,87681.9983600625 42000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,87000.0
+ 42743.14482547739,86330.86939364114
+ 42999.390827019095,86965.1005032975 42000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,87000.0
+ 42052.33595624295,86001.37046524543
+ 42681.9983600625,86268.64629838083 42000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,87000.0
+ 41330.869393641144,86256.8551745226
+ 41965.1005032975,86000.6091729809 42000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,87000.0
+ 41001.370465245425,86947.66404375706
+ 41268.64629838083,86318.0016399375 42000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,87000.0
+ 41256.85517452261,87669.13060635886
+ 41000.609172980905,87034.8994967025 42000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>42000.0,87000.0
+ 41947.66404375705,87998.62953475457
+ 41318.0016399375,87731.35370161917 42000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,82333.33333333333
+ 46783.7136697233,82078.68932583326
+ 47268.0753550602,81412.0226591666
+ 47268.0753550602,80587.9773408334
+ 46783.7136697233,79921.31067416674
+ 46000.0,79666.66666666667
+ 45216.2863302767,79921.31067416674
+ 44731.9246449398,80587.9773408334
+ 44731.9246449398,81412.0226591666
+ 45216.2863302767,82078.68932583326
+ 46000.0,82333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,81000.0
+ 46669.130606358856,81743.1448254774
+ 46034.8994967025,81999.3908270191 46000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,81000.0
+ 46998.629534754575,81052.33595624294
+ 46731.35370161917,81681.9983600625 46000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,81000.0
+ 46743.14482547739,80330.86939364114
+ 46999.390827019095,80965.1005032975 46000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,81000.0
+ 46052.33595624295,80001.37046524543
+ 46681.9983600625,80268.64629838083 46000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,81000.0
+ 45330.869393641144,80256.8551745226
+ 45965.1005032975,80000.6091729809 46000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,81000.0
+ 45001.370465245425,80947.66404375706
+ 45268.64629838083,80318.0016399375 46000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,81000.0
+ 45256.85517452261,81669.13060635886
+ 45000.609172980905,81034.8994967025 46000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,81000.0
+ 45947.66404375705,81998.62953475457
+ 45318.0016399375,81731.35370161917 46000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,82333.33333333333
+ 50783.7136697233,82078.68932583326
+ 51268.0753550602,81412.0226591666
+ 51268.0753550602,80587.9773408334
+ 50783.7136697233,79921.31067416674
+ 50000.0,79666.66666666667
+ 49216.2863302767,79921.31067416674
+ 48731.9246449398,80587.9773408334
+ 48731.9246449398,81412.0226591666
+ 49216.2863302767,82078.68932583326
+ 50000.0,82333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,81000.0
+ 50669.130606358856,81743.1448254774
+ 50034.8994967025,81999.3908270191 50000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,81000.0
+ 50998.629534754575,81052.33595624294
+ 50731.35370161917,81681.9983600625 50000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,81000.0
+ 50743.14482547739,80330.86939364114
+ 50999.390827019095,80965.1005032975 50000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,81000.0
+ 50052.33595624295,80001.37046524543
+ 50681.9983600625,80268.64629838083 50000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,81000.0
+ 49330.869393641144,80256.8551745226
+ 49965.1005032975,80000.6091729809 50000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,81000.0
+ 49001.370465245425,80947.66404375706
+ 49268.64629838083,80318.0016399375 50000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,81000.0
+ 49256.85517452261,81669.13060635886
+ 49000.609172980905,81034.8994967025 50000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,81000.0
+ 49947.66404375705,81998.62953475457
+ 49318.0016399375,81731.35370161917 50000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,88333.33333333333
+ 46783.7136697233,88078.68932583326
+ 47268.0753550602,87412.0226591666
+ 47268.0753550602,86587.9773408334
+ 46783.7136697233,85921.31067416674
+ 46000.0,85666.66666666667
+ 45216.2863302767,85921.31067416674
+ 44731.9246449398,86587.9773408334
+ 44731.9246449398,87412.0226591666
+ 45216.2863302767,88078.68932583326
+ 46000.0,88333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,87000.0
+ 46669.130606358856,87743.1448254774
+ 46034.8994967025,87999.3908270191 46000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,87000.0
+ 46998.629534754575,87052.33595624294
+ 46731.35370161917,87681.9983600625 46000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,87000.0
+ 46743.14482547739,86330.86939364114
+ 46999.390827019095,86965.1005032975 46000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,87000.0
+ 46052.33595624295,86001.37046524543
+ 46681.9983600625,86268.64629838083 46000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,87000.0
+ 45330.869393641144,86256.8551745226
+ 45965.1005032975,86000.6091729809 46000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,87000.0
+ 45001.370465245425,86947.66404375706
+ 45268.64629838083,86318.0016399375 46000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,87000.0
+ 45256.85517452261,87669.13060635886
+ 45000.609172980905,87034.8994967025 46000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>46000.0,87000.0
+ 45947.66404375705,87998.62953475457
+ 45318.0016399375,87731.35370161917 46000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,88333.33333333333
+ 50783.7136697233,88078.68932583326
+ 51268.0753550602,87412.0226591666
+ 51268.0753550602,86587.9773408334
+ 50783.7136697233,85921.31067416674
+ 50000.0,85666.66666666667
+ 49216.2863302767,85921.31067416674
+ 48731.9246449398,86587.9773408334
+ 48731.9246449398,87412.0226591666
+ 49216.2863302767,88078.68932583326
+ 50000.0,88333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,87000.0
+ 50669.130606358856,87743.1448254774
+ 50034.8994967025,87999.3908270191 50000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,87000.0
+ 50998.629534754575,87052.33595624294
+ 50731.35370161917,87681.9983600625 50000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,87000.0
+ 50743.14482547739,86330.86939364114
+ 50999.390827019095,86965.1005032975 50000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,87000.0
+ 50052.33595624295,86001.37046524543
+ 50681.9983600625,86268.64629838083 50000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,87000.0
+ 49330.869393641144,86256.8551745226
+ 49965.1005032975,86000.6091729809 50000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,87000.0
+ 49001.370465245425,86947.66404375706
+ 49268.64629838083,86318.0016399375 50000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,87000.0
+ 49256.85517452261,87669.13060635886
+ 49000.609172980905,87034.8994967025 50000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>50000.0,87000.0
+ 49947.66404375705,87998.62953475457
+ 49318.0016399375,87731.35370161917 50000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+ <MultiPolygon>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,82333.33333333333
+ 54783.7136697233,82078.68932583326
+ 55268.0753550602,81412.0226591666
+ 55268.0753550602,80587.9773408334
+ 54783.7136697233,79921.31067416674
+ 54000.0,79666.66666666667
+ 53216.2863302767,79921.31067416674
+ 52731.9246449398,80587.9773408334
+ 52731.9246449398,81412.0226591666
+ 53216.2863302767,82078.68932583326
+ 54000.0,82333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,81000.0
+ 54669.130606358856,81743.1448254774
+ 54034.8994967025,81999.3908270191 54000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,81000.0
+ 54998.629534754575,81052.33595624294
+ 54731.35370161917,81681.9983600625 54000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,81000.0
+ 54743.14482547739,80330.86939364114
+ 54999.390827019095,80965.1005032975 54000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,81000.0
+ 54052.33595624295,80001.37046524543
+ 54681.9983600625,80268.64629838083 54000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,81000.0
+ 53330.869393641144,80256.8551745226
+ 53965.1005032975,80000.6091729809 54000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,81000.0
+ 53001.370465245425,80947.66404375706
+ 53268.64629838083,80318.0016399375 54000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,81000.0
+ 53256.85517452261,81669.13060635886
+ 53000.609172980905,81034.8994967025 54000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,81000.0
+ 53947.66404375705,81998.62953475457
+ 53318.0016399375,81731.35370161917 54000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,82333.33333333333
+ 58783.7136697233,82078.68932583326
+ 59268.0753550602,81412.0226591666
+ 59268.0753550602,80587.9773408334
+ 58783.7136697233,79921.31067416674
+ 58000.0,79666.66666666667
+ 57216.2863302767,79921.31067416674
+ 56731.9246449398,80587.9773408334
+ 56731.9246449398,81412.0226591666
+ 57216.2863302767,82078.68932583326
+ 58000.0,82333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,81000.0
+ 58669.130606358856,81743.1448254774
+ 58034.8994967025,81999.3908270191 58000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,81000.0
+ 58998.629534754575,81052.33595624294
+ 58731.35370161917,81681.9983600625 58000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,81000.0
+ 58743.14482547739,80330.86939364114
+ 58999.390827019095,80965.1005032975 58000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,81000.0
+ 58052.33595624295,80001.37046524543
+ 58681.9983600625,80268.64629838083 58000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,81000.0
+ 57330.869393641144,80256.8551745226
+ 57965.1005032975,80000.6091729809 58000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,81000.0
+ 57001.370465245425,80947.66404375706
+ 57268.64629838083,80318.0016399375 58000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,81000.0
+ 57256.85517452261,81669.13060635886
+ 57000.609172980905,81034.8994967025 58000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,81000.0
+ 57947.66404375705,81998.62953475457
+ 57318.0016399375,81731.35370161917 58000.0,81000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,88333.33333333333
+ 54783.7136697233,88078.68932583326
+ 55268.0753550602,87412.0226591666
+ 55268.0753550602,86587.9773408334
+ 54783.7136697233,85921.31067416674
+ 54000.0,85666.66666666667
+ 53216.2863302767,85921.31067416674
+ 52731.9246449398,86587.9773408334
+ 52731.9246449398,87412.0226591666
+ 53216.2863302767,88078.68932583326
+ 54000.0,88333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,87000.0
+ 54669.130606358856,87743.1448254774
+ 54034.8994967025,87999.3908270191 54000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,87000.0
+ 54998.629534754575,87052.33595624294
+ 54731.35370161917,87681.9983600625 54000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,87000.0
+ 54743.14482547739,86330.86939364114
+ 54999.390827019095,86965.1005032975 54000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,87000.0
+ 54052.33595624295,86001.37046524543
+ 54681.9983600625,86268.64629838083 54000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,87000.0
+ 53330.869393641144,86256.8551745226
+ 53965.1005032975,86000.6091729809 54000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,87000.0
+ 53001.370465245425,86947.66404375706
+ 53268.64629838083,86318.0016399375 54000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,87000.0
+ 53256.85517452261,87669.13060635886
+ 53000.609172980905,87034.8994967025 54000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>54000.0,87000.0
+ 53947.66404375705,87998.62953475457
+ 53318.0016399375,87731.35370161917 54000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ <polygonMember>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,88333.33333333333
+ 58783.7136697233,88078.68932583326
+ 59268.0753550602,87412.0226591666
+ 59268.0753550602,86587.9773408334
+ 58783.7136697233,85921.31067416674
+ 58000.0,85666.66666666667
+ 57216.2863302767,85921.31067416674
+ 56731.9246449398,86587.9773408334
+ 56731.9246449398,87412.0226591666
+ 57216.2863302767,88078.68932583326
+ 58000.0,88333.33333333333 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,87000.0
+ 58669.130606358856,87743.1448254774
+ 58034.8994967025,87999.3908270191 58000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,87000.0
+ 58998.629534754575,87052.33595624294
+ 58731.35370161917,87681.9983600625 58000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,87000.0
+ 58743.14482547739,86330.86939364114
+ 58999.390827019095,86965.1005032975 58000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,87000.0
+ 58052.33595624295,86001.37046524543
+ 58681.9983600625,86268.64629838083 58000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,87000.0
+ 57330.869393641144,86256.8551745226
+ 57965.1005032975,86000.6091729809 58000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,87000.0
+ 57001.370465245425,86947.66404375706
+ 57268.64629838083,86318.0016399375 58000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,87000.0
+ 57256.85517452261,87669.13060635886
+ 57000.609172980905,87034.8994967025 58000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>58000.0,87000.0
+ 57947.66404375705,87998.62953475457
+ 57318.0016399375,87731.35370161917 58000.0,87000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+ </polygonMember>
+ </MultiPolygon>
+
+</MultiGeometry>
Added: packages/jts/branches/upstream/current/jtsio/test/data/points.xml
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/data/points.xml (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/data/points.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,105 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<MultiGeometry>
+
+ <Point>
+ <coordinates>24000.0,36000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>32000.0,36000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>40000.0,36000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>48000.0,36000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>56000.0,36000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>24000.0,48000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>32000.0,48000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>40000.0,48000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>48000.0,48000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>56000.0,48000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>24000.0,60000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>32000.0,60000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>40000.0,60000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>48000.0,60000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>56000.0,60000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>24000.0,72000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>32000.0,72000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>40000.0,72000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>48000.0,72000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>56000.0,72000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>24000.0,84000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>32000.0,84000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>40000.0,84000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>48000.0,84000.0 </coordinates>
+ </Point>
+
+ <Point>
+ <coordinates>56000.0,84000.0 </coordinates>
+ </Point>
+
+</MultiGeometry>
Added: packages/jts/branches/upstream/current/jtsio/test/data/polygons.xml
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/data/polygons.xml (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/data/polygons.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,2047 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<MultiGeometry>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,38666.666666666664
+ 25567.427339446596,38157.37865166653
+ 26536.150710120408,36824.04531833319
+ 26536.15071012041,35175.95468166681
+ 25567.427339446596,33842.62134833347
+ 24000.0,33333.333333333336
+ 22432.572660553404,33842.62134833347
+ 21463.849289879592,35175.95468166681
+ 21463.84928987959,36824.04531833319
+ 22432.572660553404,38157.37865166653
+ 24000.0,38666.666666666664 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,36000.0
+ 25338.261212717716,37486.289650954786
+ 24069.798993405002,37998.78165403819 24000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,36000.0
+ 25997.25906950915,36104.67191248589
+ 25462.707403238343,37363.996720125 24000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,36000.0
+ 25486.28965095479,34661.73878728229
+ 25998.78165403819,35930.201006595 24000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,36000.0
+ 24104.67191248589,34002.74093049085
+ 25363.996720124997,34537.29259676166 24000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,36000.0
+ 22661.738787282284,34513.710349045214
+ 23930.201006594998,34001.21834596181 24000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,36000.0
+ 22002.74093049085,35895.32808751411
+ 22537.292596761657,34636.003279875 24000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,36000.0
+ 22513.710349045214,37338.26121271772
+ 22001.21834596181,36069.798993405 24000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,36000.0
+ 23895.328087514114,37997.25906950915
+ 22636.003279875003,37462.70740323834 24000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,38666.666666666664
+ 33567.42733944659,38157.37865166653
+ 34536.15071012041,36824.04531833319
+ 34536.15071012041,35175.95468166681
+ 33567.42733944659,33842.62134833347
+ 32000.0,33333.333333333336
+ 30432.572660553404,33842.62134833347
+ 29463.849289879592,35175.95468166681
+ 29463.84928987959,36824.04531833319
+ 30432.572660553404,38157.37865166653
+ 32000.0,38666.666666666664 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,36000.0
+ 33338.26121271772,37486.289650954786
+ 32069.798993405002,37998.78165403819 32000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,36000.0
+ 33997.25906950915,36104.67191248589
+ 33462.70740323834,37363.996720125 32000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,36000.0
+ 33486.289650954786,34661.73878728229
+ 33998.78165403819,35930.201006595 32000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,36000.0
+ 32104.67191248589,34002.74093049085
+ 33363.996720125,34537.29259676166 32000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,36000.0
+ 30661.738787282284,34513.710349045214
+ 31930.201006594998,34001.21834596181 32000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,36000.0
+ 30002.74093049085,35895.32808751411
+ 30537.292596761657,34636.003279875 32000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,36000.0
+ 30513.710349045214,37338.26121271772
+ 30001.21834596181,36069.798993405 32000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,36000.0
+ 31895.328087514114,37997.25906950915
+ 30636.003279875003,37462.70740323834 32000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,38666.666666666664
+ 41567.42733944659,38157.37865166653
+ 42536.15071012041,36824.04531833319
+ 42536.15071012041,35175.95468166681
+ 41567.42733944659,33842.62134833347
+ 40000.0,33333.333333333336
+ 38432.57266055341,33842.62134833347
+ 37463.84928987959,35175.95468166681
+ 37463.84928987959,36824.04531833319
+ 38432.57266055341,38157.37865166653
+ 40000.0,38666.666666666664 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,36000.0
+ 41338.26121271772,37486.289650954786
+ 40069.798993405,37998.78165403819 40000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,36000.0
+ 41997.25906950915,36104.67191248589
+ 41462.70740323834,37363.996720125 40000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,36000.0
+ 41486.289650954786,34661.73878728229
+ 41998.78165403819,35930.201006595 40000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,36000.0
+ 40104.67191248589,34002.74093049085
+ 41363.996720125,34537.29259676166 40000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,36000.0
+ 38661.73878728228,34513.710349045214
+ 39930.201006595,34001.21834596181 40000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,36000.0
+ 38002.74093049085,35895.32808751411
+ 38537.29259676166,34636.003279875 40000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,36000.0
+ 38513.710349045214,37338.26121271772
+ 38001.21834596181,36069.798993405 40000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,36000.0
+ 39895.32808751411,37997.25906950915
+ 38636.003279875,37462.70740323834 40000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,38666.666666666664
+ 49567.42733944659,38157.37865166653
+ 50536.15071012041,36824.04531833319
+ 50536.15071012041,35175.95468166681
+ 49567.42733944659,33842.62134833347
+ 48000.0,33333.333333333336
+ 46432.57266055341,33842.62134833347
+ 45463.84928987959,35175.95468166681
+ 45463.84928987959,36824.04531833319
+ 46432.57266055341,38157.37865166653
+ 48000.0,38666.666666666664 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,36000.0
+ 49338.26121271772,37486.289650954786
+ 48069.798993405,37998.78165403819 48000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,36000.0
+ 49997.25906950915,36104.67191248589
+ 49462.70740323834,37363.996720125 48000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,36000.0
+ 49486.289650954786,34661.73878728229
+ 49998.78165403819,35930.201006595 48000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,36000.0
+ 48104.67191248589,34002.74093049085
+ 49363.996720125,34537.29259676166 48000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,36000.0
+ 46661.73878728228,34513.710349045214
+ 47930.201006595,34001.21834596181 48000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,36000.0
+ 46002.74093049085,35895.32808751411
+ 46537.29259676166,34636.003279875 48000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,36000.0
+ 46513.710349045214,37338.26121271772
+ 46001.21834596181,36069.798993405 48000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,36000.0
+ 47895.32808751411,37997.25906950915
+ 46636.003279875,37462.70740323834 48000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,38666.666666666664
+ 57567.42733944659,38157.37865166653
+ 58536.15071012041,36824.04531833319
+ 58536.15071012041,35175.95468166681
+ 57567.42733944659,33842.62134833347
+ 56000.0,33333.333333333336
+ 54432.57266055341,33842.62134833347
+ 53463.84928987959,35175.95468166681
+ 53463.84928987959,36824.04531833319
+ 54432.57266055341,38157.37865166653
+ 56000.0,38666.666666666664 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,36000.0
+ 57338.26121271772,37486.289650954786
+ 56069.798993405,37998.78165403819 56000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,36000.0
+ 57997.25906950915,36104.67191248589
+ 57462.70740323834,37363.996720125 56000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,36000.0
+ 57486.289650954786,34661.73878728229
+ 57998.78165403819,35930.201006595 56000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,36000.0
+ 56104.67191248589,34002.74093049085
+ 57363.996720125,34537.29259676166 56000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,36000.0
+ 54661.73878728228,34513.710349045214
+ 55930.201006595,34001.21834596181 56000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,36000.0
+ 54002.74093049085,35895.32808751411
+ 54537.29259676166,34636.003279875 56000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,36000.0
+ 54513.710349045214,37338.26121271772
+ 54001.21834596181,36069.798993405 56000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,36000.0
+ 55895.32808751411,37997.25906950915
+ 54636.003279875,37462.70740323834 56000.0,36000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,50666.666666666664
+ 25567.427339446596,50157.37865166653
+ 26536.150710120408,48824.04531833319
+ 26536.15071012041,47175.95468166681
+ 25567.427339446596,45842.62134833347
+ 24000.0,45333.333333333336
+ 22432.572660553404,45842.62134833347
+ 21463.849289879592,47175.95468166681
+ 21463.84928987959,48824.04531833319
+ 22432.572660553404,50157.37865166653
+ 24000.0,50666.666666666664 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,48000.0
+ 25338.261212717716,49486.289650954786
+ 24069.798993405002,49998.78165403819 24000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,48000.0
+ 25997.25906950915,48104.67191248589
+ 25462.707403238343,49363.996720125 24000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,48000.0
+ 25486.28965095479,46661.73878728229
+ 25998.78165403819,47930.201006595 24000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,48000.0
+ 24104.67191248589,46002.74093049085
+ 25363.996720124997,46537.29259676166 24000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,48000.0
+ 22661.738787282284,46513.710349045214
+ 23930.201006594998,46001.21834596181 24000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,48000.0
+ 22002.74093049085,47895.32808751411
+ 22537.292596761657,46636.003279875 24000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,48000.0
+ 22513.710349045214,49338.26121271772
+ 22001.21834596181,48069.798993405 24000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,48000.0
+ 23895.328087514114,49997.25906950915
+ 22636.003279875003,49462.70740323834 24000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,50666.666666666664
+ 33567.42733944659,50157.37865166653
+ 34536.15071012041,48824.04531833319
+ 34536.15071012041,47175.95468166681
+ 33567.42733944659,45842.62134833347
+ 32000.0,45333.333333333336
+ 30432.572660553404,45842.62134833347
+ 29463.849289879592,47175.95468166681
+ 29463.84928987959,48824.04531833319
+ 30432.572660553404,50157.37865166653
+ 32000.0,50666.666666666664 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,48000.0
+ 33338.26121271772,49486.289650954786
+ 32069.798993405002,49998.78165403819 32000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,48000.0
+ 33997.25906950915,48104.67191248589
+ 33462.70740323834,49363.996720125 32000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,48000.0
+ 33486.289650954786,46661.73878728229
+ 33998.78165403819,47930.201006595 32000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,48000.0
+ 32104.67191248589,46002.74093049085
+ 33363.996720125,46537.29259676166 32000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,48000.0
+ 30661.738787282284,46513.710349045214
+ 31930.201006594998,46001.21834596181 32000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,48000.0
+ 30002.74093049085,47895.32808751411
+ 30537.292596761657,46636.003279875 32000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,48000.0
+ 30513.710349045214,49338.26121271772
+ 30001.21834596181,48069.798993405 32000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,48000.0
+ 31895.328087514114,49997.25906950915
+ 30636.003279875003,49462.70740323834 32000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,50666.666666666664
+ 41567.42733944659,50157.37865166653
+ 42536.15071012041,48824.04531833319
+ 42536.15071012041,47175.95468166681
+ 41567.42733944659,45842.62134833347
+ 40000.0,45333.333333333336
+ 38432.57266055341,45842.62134833347
+ 37463.84928987959,47175.95468166681
+ 37463.84928987959,48824.04531833319
+ 38432.57266055341,50157.37865166653
+ 40000.0,50666.666666666664 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,48000.0
+ 41338.26121271772,49486.289650954786
+ 40069.798993405,49998.78165403819 40000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,48000.0
+ 41997.25906950915,48104.67191248589
+ 41462.70740323834,49363.996720125 40000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,48000.0
+ 41486.289650954786,46661.73878728229
+ 41998.78165403819,47930.201006595 40000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,48000.0
+ 40104.67191248589,46002.74093049085
+ 41363.996720125,46537.29259676166 40000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,48000.0
+ 38661.73878728228,46513.710349045214
+ 39930.201006595,46001.21834596181 40000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,48000.0
+ 38002.74093049085,47895.32808751411
+ 38537.29259676166,46636.003279875 40000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,48000.0
+ 38513.710349045214,49338.26121271772
+ 38001.21834596181,48069.798993405 40000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,48000.0
+ 39895.32808751411,49997.25906950915
+ 38636.003279875,49462.70740323834 40000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,50666.666666666664
+ 49567.42733944659,50157.37865166653
+ 50536.15071012041,48824.04531833319
+ 50536.15071012041,47175.95468166681
+ 49567.42733944659,45842.62134833347
+ 48000.0,45333.333333333336
+ 46432.57266055341,45842.62134833347
+ 45463.84928987959,47175.95468166681
+ 45463.84928987959,48824.04531833319
+ 46432.57266055341,50157.37865166653
+ 48000.0,50666.666666666664 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,48000.0
+ 49338.26121271772,49486.289650954786
+ 48069.798993405,49998.78165403819 48000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,48000.0
+ 49997.25906950915,48104.67191248589
+ 49462.70740323834,49363.996720125 48000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,48000.0
+ 49486.289650954786,46661.73878728229
+ 49998.78165403819,47930.201006595 48000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,48000.0
+ 48104.67191248589,46002.74093049085
+ 49363.996720125,46537.29259676166 48000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,48000.0
+ 46661.73878728228,46513.710349045214
+ 47930.201006595,46001.21834596181 48000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,48000.0
+ 46002.74093049085,47895.32808751411
+ 46537.29259676166,46636.003279875 48000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,48000.0
+ 46513.710349045214,49338.26121271772
+ 46001.21834596181,48069.798993405 48000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,48000.0
+ 47895.32808751411,49997.25906950915
+ 46636.003279875,49462.70740323834 48000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,50666.666666666664
+ 57567.42733944659,50157.37865166653
+ 58536.15071012041,48824.04531833319
+ 58536.15071012041,47175.95468166681
+ 57567.42733944659,45842.62134833347
+ 56000.0,45333.333333333336
+ 54432.57266055341,45842.62134833347
+ 53463.84928987959,47175.95468166681
+ 53463.84928987959,48824.04531833319
+ 54432.57266055341,50157.37865166653
+ 56000.0,50666.666666666664 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,48000.0
+ 57338.26121271772,49486.289650954786
+ 56069.798993405,49998.78165403819 56000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,48000.0
+ 57997.25906950915,48104.67191248589
+ 57462.70740323834,49363.996720125 56000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,48000.0
+ 57486.289650954786,46661.73878728229
+ 57998.78165403819,47930.201006595 56000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,48000.0
+ 56104.67191248589,46002.74093049085
+ 57363.996720125,46537.29259676166 56000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,48000.0
+ 54661.73878728228,46513.710349045214
+ 55930.201006595,46001.21834596181 56000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,48000.0
+ 54002.74093049085,47895.32808751411
+ 54537.29259676166,46636.003279875 56000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,48000.0
+ 54513.710349045214,49338.26121271772
+ 54001.21834596181,48069.798993405 56000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,48000.0
+ 55895.32808751411,49997.25906950915
+ 54636.003279875,49462.70740323834 56000.0,48000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,62666.666666666664
+ 25567.427339446596,62157.37865166653
+ 26536.150710120408,60824.04531833319
+ 26536.15071012041,59175.95468166681
+ 25567.427339446596,57842.62134833347
+ 24000.0,57333.333333333336
+ 22432.572660553404,57842.62134833347
+ 21463.849289879592,59175.95468166681
+ 21463.84928987959,60824.04531833319
+ 22432.572660553404,62157.37865166653
+ 24000.0,62666.666666666664 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,60000.0
+ 25338.261212717716,61486.289650954786
+ 24069.798993405002,61998.78165403819 24000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,60000.0
+ 25997.25906950915,60104.67191248589
+ 25462.707403238343,61363.996720125 24000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,60000.0
+ 25486.28965095479,58661.73878728229
+ 25998.78165403819,59930.201006595 24000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,60000.0
+ 24104.67191248589,58002.74093049085
+ 25363.996720124997,58537.29259676166 24000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,60000.0
+ 22661.738787282284,58513.710349045214
+ 23930.201006594998,58001.21834596181 24000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,60000.0
+ 22002.74093049085,59895.32808751411
+ 22537.292596761657,58636.003279875 24000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,60000.0
+ 22513.710349045214,61338.26121271772
+ 22001.21834596181,60069.798993405 24000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,60000.0
+ 23895.328087514114,61997.25906950915
+ 22636.003279875003,61462.70740323834 24000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,62666.666666666664
+ 33567.42733944659,62157.37865166653
+ 34536.15071012041,60824.04531833319
+ 34536.15071012041,59175.95468166681
+ 33567.42733944659,57842.62134833347
+ 32000.0,57333.333333333336
+ 30432.572660553404,57842.62134833347
+ 29463.849289879592,59175.95468166681
+ 29463.84928987959,60824.04531833319
+ 30432.572660553404,62157.37865166653
+ 32000.0,62666.666666666664 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,60000.0
+ 33338.26121271772,61486.289650954786
+ 32069.798993405002,61998.78165403819 32000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,60000.0
+ 33997.25906950915,60104.67191248589
+ 33462.70740323834,61363.996720125 32000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,60000.0
+ 33486.289650954786,58661.73878728229
+ 33998.78165403819,59930.201006595 32000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,60000.0
+ 32104.67191248589,58002.74093049085
+ 33363.996720125,58537.29259676166 32000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,60000.0
+ 30661.738787282284,58513.710349045214
+ 31930.201006594998,58001.21834596181 32000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,60000.0
+ 30002.74093049085,59895.32808751411
+ 30537.292596761657,58636.003279875 32000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,60000.0
+ 30513.710349045214,61338.26121271772
+ 30001.21834596181,60069.798993405 32000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,60000.0
+ 31895.328087514114,61997.25906950915
+ 30636.003279875003,61462.70740323834 32000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,62666.666666666664
+ 41567.42733944659,62157.37865166653
+ 42536.15071012041,60824.04531833319
+ 42536.15071012041,59175.95468166681
+ 41567.42733944659,57842.62134833347
+ 40000.0,57333.333333333336
+ 38432.57266055341,57842.62134833347
+ 37463.84928987959,59175.95468166681
+ 37463.84928987959,60824.04531833319
+ 38432.57266055341,62157.37865166653
+ 40000.0,62666.666666666664 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,60000.0
+ 41338.26121271772,61486.289650954786
+ 40069.798993405,61998.78165403819 40000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,60000.0
+ 41997.25906950915,60104.67191248589
+ 41462.70740323834,61363.996720125 40000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,60000.0
+ 41486.289650954786,58661.73878728229
+ 41998.78165403819,59930.201006595 40000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,60000.0
+ 40104.67191248589,58002.74093049085
+ 41363.996720125,58537.29259676166 40000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,60000.0
+ 38661.73878728228,58513.710349045214
+ 39930.201006595,58001.21834596181 40000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,60000.0
+ 38002.74093049085,59895.32808751411
+ 38537.29259676166,58636.003279875 40000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,60000.0
+ 38513.710349045214,61338.26121271772
+ 38001.21834596181,60069.798993405 40000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,60000.0
+ 39895.32808751411,61997.25906950915
+ 38636.003279875,61462.70740323834 40000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,62666.666666666664
+ 49567.42733944659,62157.37865166653
+ 50536.15071012041,60824.04531833319
+ 50536.15071012041,59175.95468166681
+ 49567.42733944659,57842.62134833347
+ 48000.0,57333.333333333336
+ 46432.57266055341,57842.62134833347
+ 45463.84928987959,59175.95468166681
+ 45463.84928987959,60824.04531833319
+ 46432.57266055341,62157.37865166653
+ 48000.0,62666.666666666664 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,60000.0
+ 49338.26121271772,61486.289650954786
+ 48069.798993405,61998.78165403819 48000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,60000.0
+ 49997.25906950915,60104.67191248589
+ 49462.70740323834,61363.996720125 48000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,60000.0
+ 49486.289650954786,58661.73878728229
+ 49998.78165403819,59930.201006595 48000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,60000.0
+ 48104.67191248589,58002.74093049085
+ 49363.996720125,58537.29259676166 48000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,60000.0
+ 46661.73878728228,58513.710349045214
+ 47930.201006595,58001.21834596181 48000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,60000.0
+ 46002.74093049085,59895.32808751411
+ 46537.29259676166,58636.003279875 48000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,60000.0
+ 46513.710349045214,61338.26121271772
+ 46001.21834596181,60069.798993405 48000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,60000.0
+ 47895.32808751411,61997.25906950915
+ 46636.003279875,61462.70740323834 48000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,62666.666666666664
+ 57567.42733944659,62157.37865166653
+ 58536.15071012041,60824.04531833319
+ 58536.15071012041,59175.95468166681
+ 57567.42733944659,57842.62134833347
+ 56000.0,57333.333333333336
+ 54432.57266055341,57842.62134833347
+ 53463.84928987959,59175.95468166681
+ 53463.84928987959,60824.04531833319
+ 54432.57266055341,62157.37865166653
+ 56000.0,62666.666666666664 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,60000.0
+ 57338.26121271772,61486.289650954786
+ 56069.798993405,61998.78165403819 56000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,60000.0
+ 57997.25906950915,60104.67191248589
+ 57462.70740323834,61363.996720125 56000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,60000.0
+ 57486.289650954786,58661.73878728229
+ 57998.78165403819,59930.201006595 56000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,60000.0
+ 56104.67191248589,58002.74093049085
+ 57363.996720125,58537.29259676166 56000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,60000.0
+ 54661.73878728228,58513.710349045214
+ 55930.201006595,58001.21834596181 56000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,60000.0
+ 54002.74093049085,59895.32808751411
+ 54537.29259676166,58636.003279875 56000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,60000.0
+ 54513.710349045214,61338.26121271772
+ 54001.21834596181,60069.798993405 56000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,60000.0
+ 55895.32808751411,61997.25906950915
+ 54636.003279875,61462.70740323834 56000.0,60000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,74666.66666666667
+ 25567.427339446596,74157.37865166653
+ 26536.150710120408,72824.0453183332
+ 26536.15071012041,71175.9546816668
+ 25567.427339446596,69842.62134833347
+ 24000.0,69333.33333333333
+ 22432.572660553404,69842.62134833347
+ 21463.849289879592,71175.9546816668
+ 21463.84928987959,72824.0453183332
+ 22432.572660553404,74157.37865166653
+ 24000.0,74666.66666666667 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,72000.0
+ 25338.261212717716,73486.28965095479
+ 24069.798993405002,73998.78165403819 24000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,72000.0
+ 25997.25906950915,72104.6719124859
+ 25462.707403238343,73363.996720125 24000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,72000.0
+ 25486.28965095479,70661.73878728229
+ 25998.78165403819,71930.201006595 24000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,72000.0
+ 24104.67191248589,70002.74093049085
+ 25363.996720124997,70537.29259676166 24000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,72000.0
+ 22661.738787282284,70513.71034904521
+ 23930.201006594998,70001.21834596181 24000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,72000.0
+ 22002.74093049085,71895.3280875141
+ 22537.292596761657,70636.003279875 24000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,72000.0
+ 22513.710349045214,73338.26121271771
+ 22001.21834596181,72069.798993405 24000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,72000.0
+ 23895.328087514114,73997.25906950915
+ 22636.003279875003,73462.70740323834 24000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,74666.66666666667
+ 33567.42733944659,74157.37865166653
+ 34536.15071012041,72824.0453183332
+ 34536.15071012041,71175.9546816668
+ 33567.42733944659,69842.62134833347 32000.0,69333.33333333333
+ 30432.572660553404,69842.62134833347
+ 29463.849289879592,71175.9546816668
+ 29463.84928987959,72824.0453183332
+ 30432.572660553404,74157.37865166653
+ 32000.0,74666.66666666667 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,72000.0
+ 33338.26121271772,73486.28965095479
+ 32069.798993405002,73998.78165403819 32000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,72000.0
+ 33997.25906950915,72104.6719124859
+ 33462.70740323834,73363.996720125 32000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,72000.0
+ 33486.289650954786,70661.73878728229
+ 33998.78165403819,71930.201006595 32000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,72000.0
+ 32104.67191248589,70002.74093049085
+ 33363.996720125,70537.29259676166 32000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,72000.0
+ 30661.738787282284,70513.71034904521
+ 31930.201006594998,70001.21834596181 32000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,72000.0
+ 30002.74093049085,71895.3280875141
+ 30537.292596761657,70636.003279875 32000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,72000.0
+ 30513.710349045214,73338.26121271771
+ 30001.21834596181,72069.798993405 32000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,72000.0
+ 31895.328087514114,73997.25906950915
+ 30636.003279875003,73462.70740323834 32000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,74666.66666666667
+ 41567.42733944659,74157.37865166653
+ 42536.15071012041,72824.0453183332
+ 42536.15071012041,71175.9546816668
+ 41567.42733944659,69842.62134833347 40000.0,69333.33333333333
+ 38432.57266055341,69842.62134833347
+ 37463.84928987959,71175.9546816668
+ 37463.84928987959,72824.0453183332
+ 38432.57266055341,74157.37865166653 40000.0,74666.66666666667
+ </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,72000.0
+ 41338.26121271772,73486.28965095479
+ 40069.798993405,73998.78165403819 40000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,72000.0
+ 41997.25906950915,72104.6719124859
+ 41462.70740323834,73363.996720125 40000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,72000.0
+ 41486.289650954786,70661.73878728229
+ 41998.78165403819,71930.201006595 40000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,72000.0
+ 40104.67191248589,70002.74093049085
+ 41363.996720125,70537.29259676166 40000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,72000.0
+ 38661.73878728228,70513.71034904521
+ 39930.201006595,70001.21834596181 40000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,72000.0
+ 38002.74093049085,71895.3280875141
+ 38537.29259676166,70636.003279875 40000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,72000.0
+ 38513.710349045214,73338.26121271771
+ 38001.21834596181,72069.798993405 40000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,72000.0
+ 39895.32808751411,73997.25906950915
+ 38636.003279875,73462.70740323834 40000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,74666.66666666667
+ 49567.42733944659,74157.37865166653
+ 50536.15071012041,72824.0453183332
+ 50536.15071012041,71175.9546816668
+ 49567.42733944659,69842.62134833347 48000.0,69333.33333333333
+ 46432.57266055341,69842.62134833347
+ 45463.84928987959,71175.9546816668
+ 45463.84928987959,72824.0453183332
+ 46432.57266055341,74157.37865166653 48000.0,74666.66666666667
+ </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,72000.0
+ 49338.26121271772,73486.28965095479
+ 48069.798993405,73998.78165403819 48000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,72000.0
+ 49997.25906950915,72104.6719124859
+ 49462.70740323834,73363.996720125 48000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,72000.0
+ 49486.289650954786,70661.73878728229
+ 49998.78165403819,71930.201006595 48000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,72000.0
+ 48104.67191248589,70002.74093049085
+ 49363.996720125,70537.29259676166 48000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,72000.0
+ 46661.73878728228,70513.71034904521
+ 47930.201006595,70001.21834596181 48000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,72000.0
+ 46002.74093049085,71895.3280875141
+ 46537.29259676166,70636.003279875 48000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,72000.0
+ 46513.710349045214,73338.26121271771
+ 46001.21834596181,72069.798993405 48000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,72000.0
+ 47895.32808751411,73997.25906950915
+ 46636.003279875,73462.70740323834 48000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,74666.66666666667
+ 57567.42733944659,74157.37865166653
+ 58536.15071012041,72824.0453183332
+ 58536.15071012041,71175.9546816668
+ 57567.42733944659,69842.62134833347 56000.0,69333.33333333333
+ 54432.57266055341,69842.62134833347
+ 53463.84928987959,71175.9546816668
+ 53463.84928987959,72824.0453183332
+ 54432.57266055341,74157.37865166653 56000.0,74666.66666666667
+ </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,72000.0
+ 57338.26121271772,73486.28965095479
+ 56069.798993405,73998.78165403819 56000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,72000.0
+ 57997.25906950915,72104.6719124859
+ 57462.70740323834,73363.996720125 56000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,72000.0
+ 57486.289650954786,70661.73878728229
+ 57998.78165403819,71930.201006595 56000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,72000.0
+ 56104.67191248589,70002.74093049085
+ 57363.996720125,70537.29259676166 56000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,72000.0
+ 54661.73878728228,70513.71034904521
+ 55930.201006595,70001.21834596181 56000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,72000.0
+ 54002.74093049085,71895.3280875141
+ 54537.29259676166,70636.003279875 56000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,72000.0
+ 54513.710349045214,73338.26121271771
+ 54001.21834596181,72069.798993405 56000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,72000.0
+ 55895.32808751411,73997.25906950915
+ 54636.003279875,73462.70740323834 56000.0,72000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,86666.66666666667
+ 25567.427339446596,86157.37865166653
+ 26536.150710120408,84824.0453183332
+ 26536.15071012041,83175.9546816668
+ 25567.427339446596,81842.62134833347
+ 24000.0,81333.33333333333
+ 22432.572660553404,81842.62134833347
+ 21463.849289879592,83175.9546816668
+ 21463.84928987959,84824.0453183332
+ 22432.572660553404,86157.37865166653
+ 24000.0,86666.66666666667 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,84000.0
+ 25338.261212717716,85486.28965095479
+ 24069.798993405002,85998.78165403819 24000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,84000.0
+ 25997.25906950915,84104.6719124859
+ 25462.707403238343,85363.996720125 24000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,84000.0
+ 25486.28965095479,82661.73878728229
+ 25998.78165403819,83930.201006595 24000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,84000.0
+ 24104.67191248589,82002.74093049085
+ 25363.996720124997,82537.29259676166 24000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,84000.0
+ 22661.738787282284,82513.71034904521
+ 23930.201006594998,82001.21834596181 24000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,84000.0
+ 22002.74093049085,83895.3280875141
+ 22537.292596761657,82636.003279875 24000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,84000.0
+ 22513.710349045214,85338.26121271771
+ 22001.21834596181,84069.798993405 24000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>24000.0,84000.0
+ 23895.328087514114,85997.25906950915
+ 22636.003279875003,85462.70740323834 24000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,86666.66666666667
+ 33567.42733944659,86157.37865166653
+ 34536.15071012041,84824.0453183332
+ 34536.15071012041,83175.9546816668
+ 33567.42733944659,81842.62134833347 32000.0,81333.33333333333
+ 30432.572660553404,81842.62134833347
+ 29463.849289879592,83175.9546816668
+ 29463.84928987959,84824.0453183332
+ 30432.572660553404,86157.37865166653
+ 32000.0,86666.66666666667 </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,84000.0
+ 33338.26121271772,85486.28965095479
+ 32069.798993405002,85998.78165403819 32000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,84000.0
+ 33997.25906950915,84104.6719124859
+ 33462.70740323834,85363.996720125 32000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,84000.0
+ 33486.289650954786,82661.73878728229
+ 33998.78165403819,83930.201006595 32000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,84000.0
+ 32104.67191248589,82002.74093049085
+ 33363.996720125,82537.29259676166 32000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,84000.0
+ 30661.738787282284,82513.71034904521
+ 31930.201006594998,82001.21834596181 32000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,84000.0
+ 30002.74093049085,83895.3280875141
+ 30537.292596761657,82636.003279875 32000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,84000.0
+ 30513.710349045214,85338.26121271771
+ 30001.21834596181,84069.798993405 32000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>32000.0,84000.0
+ 31895.328087514114,85997.25906950915
+ 30636.003279875003,85462.70740323834 32000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,86666.66666666667
+ 41567.42733944659,86157.37865166653
+ 42536.15071012041,84824.0453183332
+ 42536.15071012041,83175.9546816668
+ 41567.42733944659,81842.62134833347 40000.0,81333.33333333333
+ 38432.57266055341,81842.62134833347
+ 37463.84928987959,83175.9546816668
+ 37463.84928987959,84824.0453183332
+ 38432.57266055341,86157.37865166653 40000.0,86666.66666666667
+ </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,84000.0
+ 41338.26121271772,85486.28965095479
+ 40069.798993405,85998.78165403819 40000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,84000.0
+ 41997.25906950915,84104.6719124859
+ 41462.70740323834,85363.996720125 40000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,84000.0
+ 41486.289650954786,82661.73878728229
+ 41998.78165403819,83930.201006595 40000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,84000.0
+ 40104.67191248589,82002.74093049085
+ 41363.996720125,82537.29259676166 40000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,84000.0
+ 38661.73878728228,82513.71034904521
+ 39930.201006595,82001.21834596181 40000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,84000.0
+ 38002.74093049085,83895.3280875141
+ 38537.29259676166,82636.003279875 40000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,84000.0
+ 38513.710349045214,85338.26121271771
+ 38001.21834596181,84069.798993405 40000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>40000.0,84000.0
+ 39895.32808751411,85997.25906950915
+ 38636.003279875,85462.70740323834 40000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,86666.66666666667
+ 49567.42733944659,86157.37865166653
+ 50536.15071012041,84824.0453183332
+ 50536.15071012041,83175.9546816668
+ 49567.42733944659,81842.62134833347 48000.0,81333.33333333333
+ 46432.57266055341,81842.62134833347
+ 45463.84928987959,83175.9546816668
+ 45463.84928987959,84824.0453183332
+ 46432.57266055341,86157.37865166653 48000.0,86666.66666666667
+ </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,84000.0
+ 49338.26121271772,85486.28965095479
+ 48069.798993405,85998.78165403819 48000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,84000.0
+ 49997.25906950915,84104.6719124859
+ 49462.70740323834,85363.996720125 48000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,84000.0
+ 49486.289650954786,82661.73878728229
+ 49998.78165403819,83930.201006595 48000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,84000.0
+ 48104.67191248589,82002.74093049085
+ 49363.996720125,82537.29259676166 48000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,84000.0
+ 46661.73878728228,82513.71034904521
+ 47930.201006595,82001.21834596181 48000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,84000.0
+ 46002.74093049085,83895.3280875141
+ 46537.29259676166,82636.003279875 48000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,84000.0
+ 46513.710349045214,85338.26121271771
+ 46001.21834596181,84069.798993405 48000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>48000.0,84000.0
+ 47895.32808751411,85997.25906950915
+ 46636.003279875,85462.70740323834 48000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,86666.66666666667
+ 57567.42733944659,86157.37865166653
+ 58536.15071012041,84824.0453183332
+ 58536.15071012041,83175.9546816668
+ 57567.42733944659,81842.62134833347 56000.0,81333.33333333333
+ 54432.57266055341,81842.62134833347
+ 53463.84928987959,83175.9546816668
+ 53463.84928987959,84824.0453183332
+ 54432.57266055341,86157.37865166653 56000.0,86666.66666666667
+ </coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,84000.0
+ 57338.26121271772,85486.28965095479
+ 56069.798993405,85998.78165403819 56000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,84000.0
+ 57997.25906950915,84104.6719124859
+ 57462.70740323834,85363.996720125 56000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,84000.0
+ 57486.289650954786,82661.73878728229
+ 57998.78165403819,83930.201006595 56000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,84000.0
+ 56104.67191248589,82002.74093049085
+ 57363.996720125,82537.29259676166 56000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,84000.0
+ 54661.73878728228,82513.71034904521
+ 55930.201006595,82001.21834596181 56000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,84000.0
+ 54002.74093049085,83895.3280875141
+ 54537.29259676166,82636.003279875 56000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,84000.0
+ 54513.710349045214,85338.26121271771
+ 54001.21834596181,84069.798993405 56000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ <innerBoundaryIs>
+ <LinearRing>
+ <coordinates>56000.0,84000.0
+ 55895.32808751411,85997.25906950915
+ 54636.003279875,85462.70740323834 56000.0,84000.0
+ </coordinates>
+ </LinearRing>
+ </innerBoundaryIs>
+ </Polygon>
+
+</MultiGeometry>
\ No newline at end of file
Added: packages/jts/branches/upstream/current/jtsio/test/readme
===================================================================
--- packages/jts/branches/upstream/current/jtsio/test/readme (rev 0)
+++ packages/jts/branches/upstream/current/jtsio/test/readme 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1 @@
+Set of tests and testing utilities which require the same jar set as the src directory, with the exception of the junit jar.
\ No newline at end of file
Deleted: packages/jts/branches/upstream/current/src/Doxyfile
===================================================================
--- packages/jts/branches/upstream/current/src/Doxyfile 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/Doxyfile 2009-09-22 12:40:02 UTC (rev 2489)
@@ -1,200 +0,0 @@
-# Doxyfile 1.3-rc1
-
-#---------------------------------------------------------------------------
-# General configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME = JTS
-PROJECT_NUMBER =
-OUTPUT_DIRECTORY = c:\public\doxygen\jts
-OUTPUT_LANGUAGE = English
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-EXTRACT_LOCAL_CLASSES = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-HIDE_FRIEND_COMPOUNDS = NO
-HIDE_IN_BODY_DOCS = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-INLINE_INHERITED_MEMB = NO
-FULL_PATH_NAMES = YES
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CASE_SENSE_NAMES = YES
-SHORT_NAMES = NO
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-DISTRIBUTE_GROUP_DOC = NO
-TAB_SIZE = 8
-GENERATE_TODOLIST = YES
-GENERATE_TESTLIST = YES
-GENERATE_BUGLIST = YES
-GENERATE_DEPRECATEDLIST= YES
-ALIASES =
-ENABLED_SECTIONS =
-MAX_INITIALIZER_LINES = 30
-OPTIMIZE_OUTPUT_FOR_C = NO
-OPTIMIZE_OUTPUT_JAVA = YES
-SHOW_USED_FILES = YES
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET = NO
-WARNINGS = YES
-WARN_IF_UNDOCUMENTED = YES
-WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE =
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = U:/jaquino/CVS/jts/src/
-FILE_PATTERNS =
-RECURSIVE = YES
-EXCLUDE =
-EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-EXAMPLE_RECURSIVE = NO
-IMAGE_PATH =
-INPUT_FILTER =
-FILTER_SOURCE_FILES = NO
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = YES
-REFERENCED_BY_RELATION = YES
-REFERENCES_RELATION = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 5
-IGNORE_PREFIX =
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML = YES
-HTML_OUTPUT = html
-HTML_FILE_EXTENSION = .html
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = NO
-BINARY_TOC = NO
-TOC_EXPAND = NO
-DISABLE_INDEX = NO
-ENUM_VALUES_PER_LINE = 4
-GENERATE_TREEVIEW = NO
-TREEVIEW_WIDTH = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-LATEX_CMD_NAME = latex
-MAKEINDEX_CMD_NAME = makeindex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-USE_PDFLATEX = NO
-LATEX_BATCHMODE = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-RTF_EXTENSIONS_FILE =
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-MAN_LINKS = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML = NO
-XML_SCHEMA =
-XML_DTD =
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD = NO
-PERLMOD_LATEX = NO
-PERLMOD_PRETTY = YES
-PERLMOD_MAKEVAR_PREFIX =
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = NO
-EXPAND_ONLY_PREDEF = NO
-SEARCH_INCLUDES = YES
-INCLUDE_PATH =
-INCLUDE_FILE_PATTERNS =
-PREDEFINED =
-EXPAND_AS_DEFINED =
-SKIP_FUNCTION_MACROS = YES
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-TAGFILES =
-GENERATE_TAGFILE =
-ALLEXTERNALS = NO
-EXTERNAL_GROUPS = YES
-PERL_PATH = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS = YES
-HIDE_UNDOC_RELATIONS = YES
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-TEMPLATE_RELATIONS = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-DOT_IMAGE_FORMAT = png
-DOT_PATH = h:/utilities
-DOTFILE_DIRS =
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-GENERATE_LEGEND = YES
-DOT_CLEANUP = YES
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-SEARCHENGINE = NO
-CGI_NAME = search.cgi
-CGI_URL =
-DOC_URL =
-DOC_ABSPATH =
-BIN_ABSPATH = /usr/local/bin/
-EXT_DOC_PATHS =
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/JTSVersion.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/JTSVersion.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/JTSVersion.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -24,7 +24,7 @@
/**
* The minor version number.
*/
- public static final int MINOR = 7;
+ public static final int MINOR = 8;
/**
* The patch version number.
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/Angle.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/Angle.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/Angle.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,250 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.algorithm;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.algorithm.CGAlgorithms;
+
+/**
+ * Utility functions for working with angles.
+ * Unless otherwise noted, methods in this class express angles in radians.
+ */
+public class Angle
+{
+ public static final double PI_TIMES_2 = 2.0 * Math.PI;
+ public static final double PI_OVER_2 = Math.PI / 2.0;
+ public static final double PI_OVER_4 = Math.PI / 4.0;
+
+ /** Constant representing counterclockwise orientation */
+ public static final int COUNTERCLOCKWISE = CGAlgorithms.COUNTERCLOCKWISE;
+
+ /** Constant representing clockwise orientation */
+ public static final int CLOCKWISE = CGAlgorithms.CLOCKWISE;
+
+ /** Constant representing no orientation */
+ public static final int NONE = CGAlgorithms.COLLINEAR;
+
+ /**
+ * Converts from radians to degrees.
+ * @param radians an angle in radians
+ * @return the angle in degrees
+ */
+ public static double toDegrees(double radians) {
+ return (radians * 180) / (Math.PI);
+ }
+
+ /**
+ * Converts from degrees to radians.
+ *
+ * @param angleDegrees an angle in degrees
+ * @return the angle in radians
+ */
+ public static double toRadians(double angleDegrees) {
+ return (angleDegrees * Math.PI) / 180.0;
+ }
+
+
+ /**
+ * Returns the angle of the vector from p0 to p1,
+ * relative to the positive X-axis.
+ * The angle will be in the range [ -Pi, Pi ].
+ *
+ * @return the angle (in radians) that p0-p1 makes with the positive x-axis.
+ */
+ public static double angle(Coordinate p0, Coordinate p1) {
+ double dx = p1.x - p0.x;
+ double dy = p1.y - p0.y;
+ return Math.atan2(dy, dx);
+ }
+
+ /**
+ * Returns the angle that the vector from (0,0) to p,
+ * relative to the positive X-axis.
+ * The angle will be in the range [ -Pi, Pi ].
+ *
+ * @return the angle (in radians) that p makes with the positive x-axis.
+ */
+ public static double angle(Coordinate p) {
+ return Math.atan2(p.y, p.x);
+ }
+
+
+ /**
+ * Tests whether the angle between p0-p1-p2 is acute.
+ *
+ * @param p0 an endpoint of the angle
+ * @param p1 the base of the angle
+ * @param p2 the other endpoint of the angle
+ */
+ public static boolean isAcute(Coordinate p0, Coordinate p1, Coordinate p2)
+ {
+ // relies on fact that A dot B is positive iff A ang B is acute
+ double dx0 = p0.x - p1.x;
+ double dy0 = p0.y - p1.y;
+ double dx1 = p2.x - p1.x;
+ double dy1 = p2.y - p1.y;
+ double dotprod = dx0 * dx1 + dy0 * dy1;
+ return dotprod > 0;
+ }
+
+ /**
+ * Tests whether the angle between p0-p1-p2 is obtuse.
+ *
+ * @param p0 an endpoint of the angle
+ * @param p1 the base of the angle
+ * @param p2 the other endpoint of the angle
+ */
+ public static boolean isObtuse(Coordinate p0, Coordinate p1, Coordinate p2)
+ {
+ // relies on fact that A dot B is negative iff A ang B is obtuse
+ double dx0 = p0.x - p1.x;
+ double dy0 = p0.y - p1.y;
+ double dx1 = p2.x - p1.x;
+ double dy1 = p2.y - p1.y;
+ double dotprod = dx0 * dx1 + dy0 * dy1;
+ return dotprod < 0;
+ }
+
+ /**
+ * Returns the smallest angle between two vectors.
+ * The computed angle will be in the range [0, Pi].
+ *
+ * @param tip1 the tip of one vector
+ * @param tail the tail of each vector
+ * @param tip2 the tip of the other vector
+ * @return the angle between tail-tip1 and tail-tip2
+ */
+ public static double angleBetween(Coordinate tip1,
+ Coordinate tail,
+ Coordinate tip2) {
+ double a1 = angle(tail, tip1);
+ double a2 = angle(tail, tip2);
+
+ return diff(a1, a2);
+ }
+
+ /**
+ * Computes the interior angle between two segments of a ring.
+ * The ring is assumed to be oriented in a clockwise direction.
+ * The computed angle will be in the range [0, 2Pi]
+ *
+ * @param p0 a point of the ring
+ * @param p1 the next point of the ring
+ * @param p2 the next point of the ring
+ * @return the interior angle based at <code>p1</code>
+ */
+ public static double interiorAngle(Coordinate p0, Coordinate p1, Coordinate p2)
+ {
+ double anglePrev = Angle.angle(p1, p0);
+ double angleNext = Angle.angle(p1, p2);
+ return Math.abs(angleNext - anglePrev);
+ }
+
+ /**
+ * Returns whether an angle must turn clockwise or counterclockwise
+ * to overlap another angle.
+ *
+ * @param ang1 an angle (in radians)
+ * @param ang2 an angle (in radians)
+ * @return whether a1 must turn CLOCKWISE, COUNTERCLOCKWISE or NONE to
+ * overlap a2.
+ */
+ public static int getTurn(double ang1, double ang2) {
+ double crossproduct = Math.sin(ang2 - ang1);
+
+ if (crossproduct > 0) {
+ return COUNTERCLOCKWISE;
+ }
+
+ if (crossproduct < 0) {
+ return CLOCKWISE;
+ }
+
+ return NONE;
+ }
+
+ /**
+ * Computes the normalized value of an angle, which is the
+ * equivalent angle in the range [ -Pi, Pi ].
+ *
+ * @param angle the angle to normalize
+ * @return an equivalent angle in the range [-Pi, Pi]
+ */
+ public static double normalize(double angle)
+ {
+ while (angle > Math.PI)
+ angle -= PI_TIMES_2;
+ while (angle < -Math.PI)
+ angle += PI_TIMES_2;
+ return angle;
+ }
+
+ /**
+ * Computes the normalized positive value of an angle, which is the
+ * equivalent angle in the range [ 0, 2*Pi ].
+ *
+ * @param angle the angle to normalize, in radians
+ * @return an equivalent positive angle
+ */
+ public static double normalizePositive(double angle)
+ {
+ while (angle < 0.0)
+ angle += PI_TIMES_2;
+ return angle;
+ }
+
+ /**
+ * Computes the unoriented (smallest) difference between two angles.
+ * The angles are assumed to be normalized to the range [-Pi, Pi].
+ * The result will be in the range [0, Pi].
+ *
+ * @param ang1 the angle of one vector (in [-Pi, Pi] )
+ * @param ang2 the angle of the other vector (in range [-Pi, Pi] )
+ * @return the angle (in radians) between the two vectors (in range [0, Pi] )
+ */
+ public static double diff(double ang1, double ang2) {
+ double delAngle;
+
+ if (ang1 < ang2) {
+ delAngle = ang2 - ang1;
+ } else {
+ delAngle = ang1 - ang2;
+ }
+
+ if (delAngle > Math.PI) {
+ delAngle = (2 * Math.PI) - delAngle;
+ }
+
+ return delAngle;
+ }
+}
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/BoundaryNodeRule.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/BoundaryNodeRule.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/BoundaryNodeRule.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,178 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.algorithm;
+
+/**
+ * An interface for rules which determine whether node points
+ * which are in boundaries of lineal geometry components
+ * are in the boundary of the parent geometry collection.
+ * The SFS specifies a single kind of boundary node rule,
+ * the {@link Mod2BoundaryNodeRule} rule.
+ * However, other kinds of Boundary Node Rules are appropriate
+ * in specific situations (for instance, linear network topology
+ * usually follows the {@link EndPointBoundaryNodeRule}.)
+ * Some JTS operations allow the BoundaryNodeRule to be specified,
+ * and respect this rule when computing the results of the operation.
+ *
+ * @author Martin Davis
+ * @version 1.7
+ *
+ * @see RelateOp
+ * @see IsSimpleOp
+ */
+public interface BoundaryNodeRule
+{
+
+ boolean isInBoundary(int boundaryCount);
+
+ /**
+ * The Mod-2 Boundary Node Rule (as used in the OGC SFS).
+ */
+ public static final BoundaryNodeRule MOD2_BOUNDARY_RULE = new Mod2BoundaryNodeRule();
+
+
+ /**
+ * The Endpoint Boundary Node Rule.
+ */
+ public static final BoundaryNodeRule ENDPOINT_BOUNDARY_RULE = new EndPointBoundaryNodeRule();
+
+ /**
+ * The MultiValent Endpoint Boundary Node Rule.
+ */
+ public static final BoundaryNodeRule MULTIVALENT_ENDPOINT_BOUNDARY_RULE = new MultiValentEndPointBoundaryNodeRule();
+
+ /**
+ * The Monovalent Endpoint Boundary Node Rule.
+ */
+ public static final BoundaryNodeRule MONOVALENT_ENDPOINT_BOUNDARY_RULE = new MonoValentEndPointBoundaryNodeRule();
+
+ /**
+ * The Boundary Node Rule specified by the OGC Simple Features Specification,
+ * equal to the Mod-2 rule.
+ */
+ public static final BoundaryNodeRule OGC_SFS_BOUNDARY_RULE = MOD2_BOUNDARY_RULE;
+
+ /**
+ * A {@link BoundaryNodeRule} specifies that points are in the
+ * boundary of a lineal geometry iff
+ * the point lies on the boundary of an odd number
+ * of components.
+ * Under this rule {@link LinearRing}s and closed
+ * {@link LineString}s have an empty boundary.
+ * <p>
+ * This is the rule specified by the <i>OGC SFS</i>,
+ * and is the default rule used in JTS.
+ *
+ * @author Martin Davis
+ * @version 1.7
+ */
+ public static class Mod2BoundaryNodeRule
+ implements BoundaryNodeRule
+ {
+ public boolean isInBoundary(int boundaryCount)
+ {
+ // the "Mod-2 Rule"
+ return boundaryCount % 2 == 1;
+ }
+ }
+
+ /**
+ * A {@link BoundaryNodeRule} which specifies that any points which are endpoints
+ * of lineal components are in the boundary of the
+ * parent geometry.
+ * This corresponds to the "intuitive" topological definition
+ * of boundary.
+ * Under this rule {@link LinearRing}s have a non-empty boundary
+ * (the common endpoint of the underlying LineString).
+ * <p>
+ * This rule is useful when dealing with linear networks.
+ * For example, it can be used to check
+ * whether linear networks are correctly noded.
+ * The usual network topology constraint is that linear segments may touch only at endpoints.
+ * In the case of a segment touching a closed segment (ring) at one point,
+ * the Mod2 rule cannot distinguish between the permitted case of touching at the
+ * node point and the invalid case of touching at some other interior (non-node) point.
+ * The EndPoint rule does distinguish between these cases,
+ * so is more appropriate for use.
+ *
+ * @author Martin Davis
+ * @version 1.7
+ */
+ public static class EndPointBoundaryNodeRule
+ implements BoundaryNodeRule
+ {
+ public boolean isInBoundary(int boundaryCount)
+ {
+ return boundaryCount > 0;
+ }
+ }
+
+ /**
+ * A {@link BoundaryNodeRule} which determines that only
+ * endpoints with valency greater than 1 are on the boundary.
+ * This corresponds to the boundary of a {@link MultiLineString}
+ * being all the "attached" endpoints, but not
+ * the "unattached" ones.
+ *
+ * @author Martin Davis
+ * @version 1.7
+ */
+ public static class MultiValentEndPointBoundaryNodeRule
+ implements BoundaryNodeRule
+ {
+ public boolean isInBoundary(int boundaryCount)
+ {
+ return boundaryCount > 1;
+ }
+ }
+
+ /**
+ * A {@link BoundaryNodeRule} which determines that only
+ * endpoints with valency of exactly 1 are on the boundary.
+ * This corresponds to the boundary of a {@link MultiLineString}
+ * being all the "unattached" endpoints.
+ *
+ * @author Martin Davis
+ * @version 1.7
+ */
+ public static class MonoValentEndPointBoundaryNodeRule
+ implements BoundaryNodeRule
+ {
+ public boolean isInBoundary(int boundaryCount)
+ {
+ return boundaryCount == 1;
+ }
+ }
+
+
+}
\ No newline at end of file
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/CGAlgorithms.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/CGAlgorithms.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/CGAlgorithms.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -166,8 +166,10 @@
* <ul>
* <li>The list of points is assumed to have the first and last points equal.
* <li>This will handle coordinate lists which contain repeated points.
- * <li>If the ring is invalid, the answer returned may not be correct.
* </ul>
+ * This algorithm is <b>only</b> guaranteed to work with valid rings.
+ * If the ring is invalid (e.g. self-crosses or touches),
+ * the computed result <b>may</b> not be correct.
*
* @param ring an array of coordinates forming a ring
* @return <code>true</code> if the ring is oriented counter-clockwise.
@@ -177,28 +179,28 @@
int nPts = ring.length - 1;
// find highest point
- Coordinate hip = ring[0];
- int hii = 0;
+ Coordinate hiPt = ring[0];
+ int hiIndex = 0;
for (int i = 1; i <= nPts; i++) {
Coordinate p = ring[i];
- if (p.y > hip.y) {
- hip = p;
- hii = i;
+ if (p.y > hiPt.y) {
+ hiPt = p;
+ hiIndex = i;
}
}
// find distinct point before highest point
- int iPrev = hii;
+ int iPrev = hiIndex;
do {
iPrev = iPrev - 1;
if (iPrev < 0) iPrev = nPts;
- } while (ring[iPrev].equals(hip) && iPrev != hii);
+ } while (ring[iPrev].equals2D(hiPt) && iPrev != hiIndex);
// find distinct point after highest point
- int iNext = hii;
+ int iNext = hiIndex;
do {
iNext = (iNext + 1) % nPts;
- } while (ring[iNext].equals(hip) && iNext != hii);
+ } while (ring[iNext].equals2D(hiPt) && iNext != hiIndex);
Coordinate prev = ring[iPrev];
Coordinate next = ring[iNext];
@@ -209,12 +211,10 @@
* (including the case where the input array has fewer than 4 elements),
* or it contains coincident line segments.
*/
- if (prev.equals(hip) || next.equals(hip) || prev.equals(next))
+ if (prev.equals2D(hiPt) || next.equals2D(hiPt) || prev.equals2D(next))
return false;
- // MD - don't bother throwing exception, since this isn't a complete check for ring validity
-// throw new IllegalArgumentException("Invalid ring (contains repeated line segments)");
- int disc = computeOrientation(prev, hip, next);
+ int disc = computeOrientation(prev, hiPt, next);
/**
* If disc is exactly 0, lines are collinear. There are two possible cases:
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/CentralEndpointIntersector.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/CentralEndpointIntersector.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/CentralEndpointIntersector.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,125 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.algorithm;
+
+import com.vividsolutions.jts.geom.Coordinate;
+
+
+/**
+ * Computes an approximate intersection of two line segments
+ * by taking the most central of the endpoints of the segments.
+ * This is effective in cases where the segments are nearly parallel
+ * and should intersect at an endpoint.
+ * It is also a reasonable strategy for cases where the
+ * endpoint of one segment lies on or almost on the interior of another one.
+ * Taking the most central endpoint ensures that the computed intersection
+ * point lies in the envelope of the segments.
+ * Also, by always returning one of the input points, this should result
+ * in reducing segment fragmentation.
+ * Intended to be used as a last resort for
+ * computing ill-conditioned intersection situations which
+ * cause other methods to fail.
+ *
+ * @author Martin Davis
+ * @version 1.8
+ */
+public class CentralEndpointIntersector
+{
+ public static Coordinate getIntersection(Coordinate p00, Coordinate p01,
+ Coordinate p10, Coordinate p11)
+ {
+ CentralEndpointIntersector intor = new CentralEndpointIntersector(p00, p01, p10, p11);
+ return intor.getIntersection();
+ }
+
+ private Coordinate[] pts;
+ private Coordinate intPt = null;
+
+ public CentralEndpointIntersector(Coordinate p00, Coordinate p01,
+ Coordinate p10, Coordinate p11)
+ {
+ pts = new Coordinate[] { p00, p01, p10, p11 };
+ compute();
+ }
+
+ private void compute()
+ {
+ Coordinate centroid = average(pts);
+ intPt = findNearestPoint(centroid, pts);
+ }
+
+ public Coordinate getIntersection() {
+ return intPt;
+ }
+
+ private static Coordinate average(Coordinate[] pts)
+ {
+ Coordinate avg = new Coordinate();
+ int n = pts.length;
+ for (int i = 0; i < pts.length; i++) {
+ avg.x += pts[i].x;
+ avg.y += pts[i].y;
+ }
+ if (n > 0) {
+ avg.x /= n;
+ avg.y /= n;
+ }
+ return avg;
+ }
+
+ /**
+ * Determines a point closest to the given point.
+ *
+ * @param p the point to compare against
+ * @param p1 a potential result point
+ * @param p2 a potential result point
+ * @param q1 a potential result point
+ * @param q2 a potential result point
+ * @return the point closest to the input point p
+ */
+ private Coordinate findNearestPoint(Coordinate p, Coordinate[] pts)
+ {
+ double minDist = Double.MAX_VALUE;
+ Coordinate result = null;
+ for (int i = 0; i < pts.length; i++) {
+ double dist = p.distance(pts[i]);
+ if (dist < minDist) {
+ minDist = dist;
+ result = pts[i];
+ }
+ }
+ return result;
+ }
+
+
+}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/PointLocator.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/PointLocator.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/PointLocator.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -42,21 +42,35 @@
/**
* Computes the topological relationship ({@link Location})
* of a single point to a {@link Geometry}.
- * The algorithm obeys the SFS Boundary Determination Rule to determine
- * whether the point lies on the boundary or not.
+ * The algorithm obeys the <i>SFS Boundary Determination Rule</i>
+ * to determine whether the point lies on the boundary or not.
* <p>
+ * Notes:
+ * <ul>
+ * <li>{@link LinearRing}s do not enclose any area - points inside the ring are still in the EXTERIOR of the ring.
+ * </ul>
* Instances of this class are not reentrant.
*
* @version 1.7
*/
public class PointLocator
{
+ // default is to use OGC SFS rule
+ private BoundaryNodeRule boundaryRule = BoundaryNodeRule.ENDPOINT_BOUNDARY_RULE; //OGC_SFS_BOUNDARY_RULE;
+
private boolean isIn; // true if the point lies in or on any Geometry element
private int numBoundaries; // the number of sub-elements whose boundaries the point lies in
public PointLocator() {
}
+ public PointLocator(BoundaryNodeRule boundaryRule)
+ {
+ if (boundaryRule == null)
+ throw new IllegalArgumentException("Rule must be non-null");
+ this.boundaryRule = boundaryRule;
+ }
+
/**
* Convenience method to test a point for intersection with
* a Geometry
@@ -83,9 +97,6 @@
{
if (geom.isEmpty()) return Location.EXTERIOR;
- if (geom instanceof LinearRing) {
- return locate(p, (LinearRing) geom);
- }
if (geom instanceof LineString) {
return locate(p, (LineString) geom);
}
@@ -96,16 +107,16 @@
isIn = false;
numBoundaries = 0;
computeLocation(p, geom);
- if (GeometryGraph.isInBoundary(numBoundaries)) return Location.BOUNDARY;
- if (numBoundaries > 0 || isIn) return Location.INTERIOR;
+ if (boundaryRule.isInBoundary(numBoundaries))
+ return Location.BOUNDARY;
+ if (numBoundaries > 0 || isIn)
+ return Location.INTERIOR;
+
return Location.EXTERIOR;
}
private void computeLocation(Coordinate p, Geometry geom)
{
- if (geom instanceof LinearRing) {
- updateLocationInfo(locate(p, (LinearRing) geom));
- }
if (geom instanceof LineString) {
updateLocationInfo(locate(p, (LineString) geom));
}
@@ -156,7 +167,7 @@
return Location.EXTERIOR;
}
- private int locate(Coordinate p, LinearRing ring)
+ private int locateInPolygonRing(Coordinate p, LinearRing ring)
{
// can this test be folded into isPointInRing ?
if (CGAlgorithms.isOnLine(p, ring.getCoordinates())) {
@@ -172,16 +183,19 @@
if (poly.isEmpty()) return Location.EXTERIOR;
LinearRing shell = (LinearRing) poly.getExteriorRing();
- int shellLoc = locate(p, shell);
+ int shellLoc = locateInPolygonRing(p, shell);
if (shellLoc == Location.EXTERIOR) return Location.EXTERIOR;
if (shellLoc == Location.BOUNDARY) return Location.BOUNDARY;
// now test if the point lies in or on the holes
for (int i = 0; i < poly.getNumInteriorRing(); i++) {
LinearRing hole = (LinearRing) poly.getInteriorRingN(i);
- int holeLoc = locate(p, hole);
+ int holeLoc = locateInPolygonRing(p, hole);
if (holeLoc == Location.INTERIOR) return Location.EXTERIOR;
if (holeLoc == Location.BOUNDARY) return Location.BOUNDARY;
}
return Location.INTERIOR;
}
+
+
+
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/RobustLineIntersector.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/RobustLineIntersector.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/algorithm/RobustLineIntersector.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -71,7 +71,7 @@
result = DONT_INTERSECT;
}
- public int computeIntersect(
+ protected int computeIntersect(
Coordinate p1, Coordinate p2,
Coordinate q1, Coordinate q2 ) {
isProper = false;
@@ -104,7 +104,13 @@
if (collinear) {
return computeCollinearIntersection(p1, p2, q1, q2);
}
+
/**
+ * At this point we know that there is a single intersection point
+ * (since the lines are not collinear).
+ */
+
+ /**
* Check if the intersection is an endpoint. If it is, copy the endpoint as
* the intersection point. Copying the point rather than computing it
* ensures the point has the exact value, which is important for
@@ -114,16 +120,45 @@
*/
if (Pq1 == 0 || Pq2 == 0 || Qp1 == 0 || Qp2 == 0) {
isProper = false;
- if (Pq1 == 0) {
+
+ /**
+ * Check for two equal endpoints.
+ * This is done explicitly rather than by the orientation tests
+ * below in order to improve robustness.
+ *
+ * [An example where the orientation tests fail to be consistent is
+ * the following (where the true intersection is at the shared endpoint
+ * POINT (19.850257749638203 46.29709338043669)
+ *
+ * LINESTRING ( 19.850257749638203 46.29709338043669, 20.31970698357233 46.76654261437082 )
+ * and
+ * LINESTRING ( -48.51001596420236 -22.063180333403878, 19.850257749638203 46.29709338043669 )
+ *
+ * which used to produce the INCORRECT result: (20.31970698357233, 46.76654261437082, NaN)
+ *
+ */
+ if (p1.equals2D(q1)
+ || p1.equals2D(q2)) {
+ intPt[0] = p1;
+ }
+ else if (p2.equals2D(q1)
+ || p2.equals2D(q2)) {
+ intPt[0] = p2;
+ }
+
+ /**
+ * Now check to see if any endpoint lies on the interior of the other segment.
+ */
+ else if (Pq1 == 0) {
intPt[0] = new Coordinate(q1);
}
- if (Pq2 == 0) {
+ else if (Pq2 == 0) {
intPt[0] = new Coordinate(q2);
}
- if (Qp1 == 0) {
+ else if (Qp1 == 0) {
intPt[0] = new Coordinate(p1);
}
- if (Qp2 == 0) {
+ else if (Qp2 == 0) {
intPt[0] = new Coordinate(p2);
}
}
@@ -134,16 +169,6 @@
return DO_INTERSECT;
}
-/*
- private boolean intersectsEnvelope(Coordinate p1, Coordinate p2, Coordinate q) {
- if (((q.x >= Math.min(p1.x, p2.x)) && (q.x <= Math.max(p1.x, p2.x))) &&
- ((q.y >= Math.min(p1.y, p2.y)) && (q.y <= Math.max(p1.y, p2.y)))) {
- return true;
- }
- return false;
- }
-*/
-
private int computeCollinearIntersection(Coordinate p1, Coordinate p2,
Coordinate q1, Coordinate q2) {
boolean p1q1p2 = Envelope.intersects(p1, p2, q1);
@@ -195,51 +220,32 @@
private Coordinate intersection(
Coordinate p1, Coordinate p2, Coordinate q1, Coordinate q2)
{
- Coordinate n1 = new Coordinate(p1);
- Coordinate n2 = new Coordinate(p2);
- Coordinate n3 = new Coordinate(q1);
- Coordinate n4 = new Coordinate(q2);
- Coordinate normPt = new Coordinate();
- normalizeToEnvCentre(n1, n2, n3, n4, normPt);
+ Coordinate intPt = intersectionWithNormalization(p1, p2, q1, q2);
+ // testing only
+// Coordinate intPt = safeHCoordinateIntersection(p1, p2, q1, q2);
- Coordinate intPt = null;
- try {
- intPt = HCoordinate.intersection(n1, n2, n3, n4);
- }
- catch (NotRepresentableException e) {
- Assert.shouldNeverReachHere("Coordinate for intersection is not calculable");
- }
-
- intPt.x += normPt.x;
- intPt.y += normPt.y;
-
/**
- *
+ * Due to rounding it can happen that the computed intersection is
+ * outside the envelopes of the input segments. Clearly this
+ * is inconsistent.
+ * This code checks this condition and forces a more reasonable answer
+ *
* MD - May 4 2005 - This is still a problem. Here is a failure case:
*
* LINESTRING (2089426.5233462777 1180182.3877339689, 2085646.6891757075 1195618.7333999649)
* LINESTRING (1889281.8148903656 1997547.0560044837, 2259977.3672235999 483675.17050843034)
* int point = (2097408.2633752143,1144595.8008114607)
+ *
+ * MD - Dec 14 2006 - This does not seem to be a failure case any longer
*/
if (! isInSegmentEnvelopes(intPt)) {
- System.out.println("Intersection outside segment envelopes: " + intPt);
+// System.out.println("Intersection outside segment envelopes: " + intPt);
+// System.out.println("Segments: " + this);
+ // compute a safer result
+ intPt = CentralEndpointIntersector.getIntersection(p1, p2, q1, q2);
+// System.out.println("Snapped to " + intPt);
}
- /*
- // disabled until a better solution is found
- if (! isInSegmentEnvelopes(intPt)) {
- System.out.println("first value outside segment envelopes: " + intPt);
- IteratedBisectionIntersector ibi = new IteratedBisectionIntersector(p1, p2, q1, q2);
- intPt = ibi.getIntersection();
- }
- if (! isInSegmentEnvelopes(intPt)) {
- System.out.println("ERROR - outside segment envelopes: " + intPt);
-
- IteratedBisectionIntersector ibi = new IteratedBisectionIntersector(p1, p2, q1, q2);
- Coordinate testPt = ibi.getIntersection();
- }
- */
-
if (precisionModel != null) {
precisionModel.makePrecise(intPt);
}
@@ -247,7 +253,52 @@
return intPt;
}
+ private Coordinate intersectionWithNormalization(
+ Coordinate p1, Coordinate p2, Coordinate q1, Coordinate q2)
+ {
+ Coordinate n1 = new Coordinate(p1);
+ Coordinate n2 = new Coordinate(p2);
+ Coordinate n3 = new Coordinate(q1);
+ Coordinate n4 = new Coordinate(q2);
+ Coordinate normPt = new Coordinate();
+ normalizeToEnvCentre(n1, n2, n3, n4, normPt);
+
+ Coordinate intPt = safeHCoordinateIntersection(n1, n2, n3, n4);
+
+ intPt.x += normPt.x;
+ intPt.y += normPt.y;
+
+ return intPt;
+ }
+
/**
+ * Computes a segment intersection using homogeneous coordinates.
+ * Round-off error can cause the raw computation to fail,
+ * (usually due to the segments being approximately parallel).
+ * If this happens, a reasonable approximation is computed instead.
+ *
+ * @param p1 a segment endpoint
+ * @param p2 a segment endpoint
+ * @param q1 a segment endpoint
+ * @param q2 a segment endpoint
+ * @return the computed intersection point
+ */
+ private Coordinate safeHCoordinateIntersection(Coordinate p1, Coordinate p2, Coordinate q1, Coordinate q2)
+ {
+ Coordinate intPt = null;
+ try {
+ intPt = HCoordinate.intersection(p1, p2, q1, q2);
+ }
+ catch (NotRepresentableException e) {
+// System.out.println("Not calculable: " + this);
+ // compute an approximate result
+ intPt = CentralEndpointIntersector.getIntersection(p1, p2, q1, q2);
+ // System.out.println("Snapped to " + intPt);
+ }
+ return intPt;
+ }
+
+ /**
* Normalize the supplied coordinates so that
* their minimum ordinate values lie at the origin.
* NOTE: this normalization technique appears to cause
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/CoordinateArrays.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/CoordinateArrays.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/CoordinateArrays.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -56,7 +56,7 @@
{
for (int i = 0; i < testPts.length; i++) {
Coordinate testPt = testPts[i];
- if (CoordinateArrays.indexOf(testPt, pts) >= 0)
+ if (CoordinateArrays.indexOf(testPt, pts) < 0)
return testPt;
}
return null;
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/CoordinateSequenceFilter.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/CoordinateSequenceFilter.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/CoordinateSequenceFilter.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,88 @@
+
+
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.geom;
+
+
+/**
+ * Interface for classeswhich provide operations that
+ * can be applied to the coordinates in a {@link CoordinateSequence}.
+ * A CoordinateSequence filter can either record information about each coordinate or
+ * change the coordinate in some way. CoordinateSequence filters can be
+ * used to implement such things as coordinate transformations, centroid and
+ * envelope computation, and many other functions.
+ * For maximum efficiency, the execution of filters can be short-circuited.
+ * {@link Geometry} classes support the concept of applying a
+ * <code>CoordinateSequenceFilter</code> to each
+ * {@link CoordinateSequence}s they contain.
+ * <p>
+ * <code>CoordinateSequenceFilter</code> is
+ * an example of the Gang-of-Four Visitor pattern.
+ *
+ *@see Geometry#apply(CoordinateSequenceFilter)
+ *@author Martin Davis
+ *@version 1.7
+ */
+public interface CoordinateSequenceFilter
+{
+ /**
+ * Performs an operation on a coordinate in a {@link CoordinateSequence}.
+ *
+ *@param seq the <code>CoordinateSequence</code> to which the filter is applied
+ *@param i the index of the coordinate to apply the filter to
+ */
+ void filter(CoordinateSequence seq, int i);
+
+ /**
+ * Reports whether the application of this filter can be terminated.
+ * Once this method returns <tt>false</tt>, it should
+ * continue to return <tt>false</tt> on every subsequent call.
+ *
+ * @return true if the application of this filter can be terminated.
+ */
+ boolean isDone();
+
+ /**
+ * Reports whether the execution of this filter
+ * has modified the coordinates of the geometry.
+ * If so, {@link Geometry#geometryChanged} will be executed.
+ * <p>
+ * Most filters can simply return a constant value reflecting
+ * whether they are able to change the coordinates.
+ *
+ * @return true if this filter has changed the coordinates of the geometry
+ */
+ boolean isGeometryChanged();
+}
+
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/DefaultCoordinateSequenceFactory.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -51,10 +51,8 @@
public DefaultCoordinateSequenceFactory() {
}
- /**
- * @see http://www.javaworld.com/javaworld/javatips/jw-javatip122.html
- */
private Object readResolve() {
+ // see http://www.javaworld.com/javaworld/javatips/jw-javatip122.html
return DefaultCoordinateSequenceFactory.instance();
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Geometry.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Geometry.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Geometry.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -38,9 +38,11 @@
import com.vividsolutions.jts.algorithm.*;
import com.vividsolutions.jts.io.WKTWriter;
+import com.vividsolutions.jts.operation.*;
import com.vividsolutions.jts.operation.buffer.BufferOp;
import com.vividsolutions.jts.operation.distance.DistanceOp;
import com.vividsolutions.jts.operation.overlay.OverlayOp;
+import com.vividsolutions.jts.operation.overlay.snap.SnapIfNeededOverlayOp;
import com.vividsolutions.jts.operation.predicate.RectangleIntersects;
import com.vividsolutions.jts.operation.predicate.RectangleContains;
import com.vividsolutions.jts.operation.relate.RelateOp;
@@ -130,11 +132,6 @@
{
private static final long serialVersionUID = 8763622679187376702L;
- /**
- * The bounding box of this <code>Geometry</code>.
- */
- protected Envelope envelope;
-
private final static Class[] sortedClasses = new Class[] {
Point.class,
MultiPoint.class,
@@ -152,31 +149,38 @@
}
};
- public Geometry(GeometryFactory factory) {
- this.factory = factory;
- this.SRID = factory.getSRID();
- }
+ /**
+ * The bounding box of this <code>Geometry</code>.
+ */
+ protected Envelope envelope;
- private GeometryFactory factory;
+ /**
+ * The {@link GeometryFactory} used to create this Geometry
+ */
+ protected final GeometryFactory factory;
- // MD - no longer used. Remove in next version
- //private static final GeometryFactory INTERNAL_GEOMETRY_FACTORY = new GeometryFactory();
-
/**
* The ID of the Spatial Reference System used by this <code>Geometry</code>
*/
protected int SRID;
/**
+ * Creates a new <tt>Geometry</tt> via the specified GeometryFactory.
+ *
+ * @param factory
+ */
+ public Geometry(GeometryFactory factory) {
+ this.factory = factory;
+ this.SRID = factory.getSRID();
+ }
+
+ /**
* Returns the name of this object's <code>com.vivid.jts.geom</code>
* interface.
*
*@return the name of this <code>Geometry</code>s most specific <code>com.vividsolutions.jts.geom</code>
* interface
*/
- //I wonder if we need this method, now that we have renamed the classes to
- //what their old interfaces were named. Now we can perhaps simply use
- //getClass().getName(). Who calls this method anyway? [Jon Aquino]
public abstract String getGeometryType();
/**
@@ -354,7 +358,12 @@
* self-tangency, self-intersection or other anomalous points
* @see #isValid
*/
- public abstract boolean isSimple();
+ public boolean isSimple()
+ {
+ checkNotGeometryCollection(this);
+ IsSimpleOp op = new IsSimpleOp(this);
+ return op.isSimple();
+ }
/**
* Tests the validity of this <code>Geometry</code>.
@@ -403,11 +412,13 @@
double envDist = getEnvelopeInternal().distance(geom.getEnvelopeInternal());
if (envDist > distance)
return false;
- // NOTE: this could be implemented more efficiently
+ return DistanceOp.isWithinDistance(this, geom, distance);
+ /*
double geomDist = this.distance(geom);
if (geomDist > distance)
return false;
return true;
+ */
}
public boolean isRectangle()
@@ -510,11 +521,15 @@
* or not this object is the empty geometry
*/
public abstract int getDimension();
+
/**
- * Returns the boundary, or the empty geometry if this <code>Geometry</code>
- * is empty. For a discussion of this function, see the OpenGIS Simple
- * Features Specification. As stated in SFS Section 2.1.13.1, "the boundary
- * of a Geometry is a set of Geometries of the next lower dimension."
+ * Returns the boundary, or an empty geometry of appropriate dimension
+ * if this <code>Geometry</code> is empty.
+ * (In the case of zero-dimensional geometries, '
+ * an empty GeometryCollection is returned.)
+ * For a discussion of this function, see the OpenGIS Simple
+ * Features Specification. As stated in SFS Section 2.1.13.1, "the boundary
+ * of a Geometry is a set of Geometries of the next lower dimension."
*
*@return the closure of the combinatorial boundary of this <code>Geometry</code>
*/
@@ -841,7 +856,7 @@
* (<code>coveredBy</code> is the inverse of <code>covers</code>)
* </ul>
* Note the difference between <code>coveredBy</code> and <code>within</code>
- * - <code>coveredBy</code> is a more inclusive relation
+ * - <code>coveredBy</code> is a more inclusive relation.
*
*@param g the <code>Geometry</code> with which to compare this <code>Geometry</code>
*@return <code>true</code> if this <code>Geometry</code> is covered by <code>g</code>
@@ -943,6 +958,8 @@
*@param distance the width of the buffer (may be positive, negative or 0)
*@return an area geometry representing the buffer region
*
+ * @throws TopologyException if a robustness error occurs
+ *
* @see #buffer(double, int)
* @see #buffer(double, int, int)
*/
@@ -964,6 +981,8 @@
*@param quadrantSegments the number of line segments used to represent a quadrant of a circle
*@return an area geometry representing the buffer region
*
+ * @throws TopologyException if a robustness error occurs
+ *
* @see #buffer(double)
* @see #buffer(double, int, int)
*/
@@ -995,6 +1014,8 @@
*@param endCapStyle the end cap style to use
*@return an area geometry representing the buffer region
*
+ * @throws TopologyException if a robustness error occurs
+ *
* @see #buffer(double)
* @see #buffer(double, int)
* @see BufferOp
@@ -1045,11 +1066,20 @@
* intersection
* @return the points common to the two <code>Geometry</code>s
* @throws TopologyException if a robustness error occurs
+ * @throws IllegalArgumentException if either input is a non-empty GeometryCollection
*/
- public Geometry intersection(Geometry other) {
+ public Geometry intersection(Geometry other)
+ {
+ /**
+ * TODO: MD - add optimization for P-A case using Point-In-Polygon
+ */
+ // special case: if one input is empty ==> empty
+ if (this.isEmpty()) return this.getFactory().createGeometryCollection(null);
+ if (other.isEmpty()) return this.getFactory().createGeometryCollection(null);
+
checkNotGeometryCollection(this);
checkNotGeometryCollection(other);
- return OverlayOp.overlayOp(this, other, OverlayOp.INTERSECTION);
+ return SnapIfNeededOverlayOp.overlayOp(this, other, OverlayOp.INTERSECTION);
}
/**
@@ -1060,11 +1090,17 @@
*@return a set combining the points of this <code>Geometry</code> and
* the points of <code>other</code>
* @throws TopologyException if a robustness error occurs
+ * @throws IllegalArgumentException if either input is a non-empty GeometryCollection
*/
- public Geometry union(Geometry other) {
+ public Geometry union(Geometry other)
+ {
+ // special case: if either input is empty ==> other input
+ if (this.isEmpty()) return (Geometry) other.clone();
+ if (other.isEmpty()) return (Geometry) clone();
+
checkNotGeometryCollection(this);
checkNotGeometryCollection(other);
- return OverlayOp.overlayOp(this, other, OverlayOp.UNION);
+ return SnapIfNeededOverlayOp.overlayOp(this, other, OverlayOp.UNION);
}
/**
@@ -1077,11 +1113,17 @@
*@return the point set difference of this <code>Geometry</code> with
* <code>other</code>
* @throws TopologyException if a robustness error occurs
+ * @throws IllegalArgumentException if either input is a non-empty GeometryCollection
*/
- public Geometry difference(Geometry other) {
+ public Geometry difference(Geometry other)
+ {
+ // special case: if A.isEmpty ==> empty; if B.isEmpty ==> A
+ if (this.isEmpty()) return this.getFactory().createGeometryCollection(null);
+ if (other.isEmpty()) return (Geometry) clone();
+
checkNotGeometryCollection(this);
checkNotGeometryCollection(other);
- return OverlayOp.overlayOp(this, other, OverlayOp.DIFFERENCE);
+ return SnapIfNeededOverlayOp.overlayOp(this, other, OverlayOp.DIFFERENCE);
}
/**
@@ -1095,11 +1137,17 @@
*@return the point set symmetric difference of this <code>Geometry</code>
* with <code>other</code>
* @throws TopologyException if a robustness error occurs
+ * @throws IllegalArgumentException if either input is a non-empty GeometryCollection
*/
- public Geometry symDifference(Geometry other) {
+ public Geometry symDifference(Geometry other)
+ {
+ // special case: if either input is empty ==> other input
+ if (this.isEmpty()) return (Geometry) other.clone();
+ if (other.isEmpty()) return (Geometry) clone();
+
checkNotGeometryCollection(this);
checkNotGeometryCollection(other);
- return OverlayOp.overlayOp(this, other, OverlayOp.SYMDIFFERENCE);
+ return SnapIfNeededOverlayOp.overlayOp(this, other, OverlayOp.SYMDIFFERENCE);
}
/**
@@ -1147,8 +1195,10 @@
/**
* Performs an operation with or on this <code>Geometry</code>'s
- * coordinates. If you are using this method to modify the geometry, be sure
- * to call #geometryChanged() afterwards. Note that you cannot use this
+ * coordinates.
+ * If this method modifies any coordinate values,
+ * #geometryChanged() must be called to update the geometry state.
+ * Note that you cannot use this
* method to
* modify this Geometry if its underlying CoordinateSequence's #get method
* returns a copy of the Coordinate, rather than the actual Coordinate stored
@@ -1160,6 +1210,16 @@
public abstract void apply(CoordinateFilter filter);
/**
+ * Performs an operation on the coordinates in this <code>Geometry</code>'s
+ * {@link CoordinateSequence}s.
+ * If this method modifies any coordinate values,
+ * #geometryChanged() must be called to update the geometry state.
+ *
+ *@param filter the filter to apply
+ */
+ public abstract void apply(CoordinateSequenceFilter filter);
+
+ /**
* Performs an operation with or on this <code>Geometry</code> and its
* subelement <code>Geometry</code>s (if any).
* Only GeometryCollections and subclasses
@@ -1180,6 +1240,14 @@
*/
public abstract void apply(GeometryComponentFilter filter);
+ /**
+ * Creates and returns a full copy of this {@link Geometry} object
+ * (including all coordinates contained by it).
+ * Subclasses are responsible for overriding this method and copying
+ * their internal data. Overrides should call this method first.
+ *
+ * @return a clone of this instance
+ */
public Object clone() {
try {
Geometry clone = (Geometry) super.clone();
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/GeometryCollection.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/GeometryCollection.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/GeometryCollection.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -148,12 +148,6 @@
return "GeometryCollection";
}
- public boolean isSimple() {
- checkNotGeometryCollection(this);
- Assert.shouldNeverReachHere();
- return false;
- }
-
public Geometry getBoundary() {
checkNotGeometryCollection(this);
Assert.shouldNeverReachHere();
@@ -163,7 +157,7 @@
/**
* Returns the area of this <code>GeometryCollection</code>
*
- *@return the area of the polygon
+ * @return the area of the polygon
*/
public double getArea()
{
@@ -200,9 +194,22 @@
}
public void apply(CoordinateFilter filter) {
+ for (int i = 0; i < geometries.length; i++) {
+ geometries[i].apply(filter);
+ }
+ }
+
+ public void apply(CoordinateSequenceFilter filter) {
+ if (geometries.length == 0)
+ return;
for (int i = 0; i < geometries.length; i++) {
geometries[i].apply(filter);
+ if (filter.isDone()) {
+ break;
+ }
}
+ if (filter.isGeometryChanged())
+ geometryChanged();
}
public void apply(GeometryFilter filter) {
@@ -219,6 +226,12 @@
}
}
+ /**
+ * Creates and returns a full copy of this {@link GeometryCollection} object.
+ * (including all coordinates contained by it).
+ *
+ * @return a clone of this instance
+ */
public Object clone() {
GeometryCollection gc = (GeometryCollection) super.clone();
gc.geometries = new Geometry[geometries.length];
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/GeometryFactory.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/GeometryFactory.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/GeometryFactory.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -43,7 +43,12 @@
/**
* Supplies a set of utility methods for building Geometry objects from lists
* of Coordinates.
+ * <p>
+ * Note that the factory constructor methods do <b>not</b> change the input coordinates in any way.
+ * In particular, they are not rounded to the supplied <tt>PrecisionModel</tt>.
+ * It is assumed that input Coordinates meet the given precision.
*
+ *
* @version 1.7
*/
public class GeometryFactory
@@ -320,22 +325,23 @@
}
/**
- * Creates a MultiPoint using the given Points; a null or empty array will
- * create an empty MultiPoint.
- * @param coordinates an array without null elements, or an empty array, or null
+ * Creates a MultiPoint using the given Points.
+ * A null or empty array will create an empty MultiPoint.
+ *
+ * @param coordinates an array (without null elements), or an empty array, or <code>null</code>
+ * @return a MultiPoint object
*/
public MultiPoint createMultiPoint(Point[] point) {
return new MultiPoint(point, this);
}
/**
- * Creates a MultiPoint using the given Coordinates; a null or empty array
- * will create an empty MultiPoint.
+ * Creates a {@link MultiPoint} using the given {@link Coordinate}s.
+ * A null or empty array will create an empty MultiPoint.
*
- * @param coordinates
- * an array without null elements, or an empty array, or null
+ * @param coordinates an array (without null elements), or an empty array, or <code>null</code>
+ * @return a MultiPoint object
*/
-
public MultiPoint createMultiPoint(Coordinate[] coordinates) {
return createMultiPoint(coordinates != null
? getCoordinateSequenceFactory().create(coordinates)
@@ -343,9 +349,11 @@
}
/**
- * Creates a MultiPoint using the given CoordinateSequence; a null or empty CoordinateSequence will
- * create an empty MultiPoint.
- * @param coordinates a CoordinateSequence possibly empty, or null
+ * Creates a MultiPoint using the given CoordinateSequence.
+ * A a null or empty CoordinateSequence will create an empty MultiPoint.
+ *
+ * @param coordinates a CoordinateSequence (possibly empty), or <code>null</code>
+ * @return a MultiPoint object
*/
public MultiPoint createMultiPoint(CoordinateSequence coordinates) {
if (coordinates == null) {
@@ -358,8 +366,6 @@
return createMultiPoint(points);
}
-
-
/**
* Constructs a <code>Polygon</code> with the given exterior boundary and
* interior boundaries.
@@ -407,6 +413,7 @@
public Geometry buildGeometry(Collection geomList) {
Class geomClass = null;
boolean isHeterogeneous = false;
+ boolean hasGeometryCollection = false;
for (Iterator i = geomList.iterator(); i.hasNext(); ) {
Geometry geom = (Geometry) i.next();
Class partClass = geom.getClass();
@@ -416,12 +423,14 @@
if (partClass != geomClass) {
isHeterogeneous = true;
}
+ if (geom instanceof GeometryCollection)
+ hasGeometryCollection = true;
}
// for the empty geometry, return an empty GeometryCollection
if (geomClass == null) {
return createGeometryCollection(null);
}
- if (isHeterogeneous) {
+ if (isHeterogeneous || hasGeometryCollection) {
return createGeometryCollection(toGeometryArray(geomList));
}
// at this point we know the collection is hetereogenous.
@@ -439,7 +448,7 @@
else if (geom0 instanceof Point) {
return createMultiPoint(toPointArray(geomList));
}
- Assert.shouldNeverReachHere();
+ Assert.shouldNeverReachHere("Unhandled class: " + geom0.getClass().getName());
}
return geom0;
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/IntersectionMatrix.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/IntersectionMatrix.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/IntersectionMatrix.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -430,8 +430,8 @@
* or <code>**FT*F***</code>
* or <code>**F*TF***</code>
*
- *@return <code>true</code> if the first <code>Geometry</code> covers the
- * second
+ *@return <code>true</code> if the first <code>Geometry</code>
+ * is covered by the second
*/
public boolean isCoveredBy() {
boolean hasPointInCommon =
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/LineSegment.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/LineSegment.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/LineSegment.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -180,6 +180,17 @@
}
/**
+ * Computes the midpoint of the segment
+ *
+ * @return the midpoint of the segment
+ */
+ public Coordinate midPoint()
+ {
+ return new Coordinate( (p0.x + p1.x) / 2,
+ (p0.y + p1.y) / 2);
+ }
+
+ /**
* Computes the distance between this line segment and another segment.
*
* @return the distance to the other segment
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/LineString.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/LineString.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/LineString.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -33,7 +33,7 @@
package com.vividsolutions.jts.geom;
import com.vividsolutions.jts.algorithm.CGAlgorithms;
-import com.vividsolutions.jts.operation.IsSimpleOp;
+import com.vividsolutions.jts.operation.BoundaryOp;
/**
* Basic implementation of <code>LineString</code>.
@@ -164,21 +164,15 @@
return CGAlgorithms.length(points);
}
- public boolean isSimple()
- {
- return (new IsSimpleOp()).isSimple(this);
- }
-
+ /**
+ * Gets the boundary of this geometry.
+ * The boundary of a lineal geometry is always a zero-dimensional geometry (which may be empty).
+ *
+ * @return the boundary geometry
+ * @see Geometry#getBoundary
+ */
public Geometry getBoundary() {
- if (isEmpty()) {
- return getFactory().createGeometryCollection(null);
- }
- if (isClosed()) {
- return getFactory().createMultiPoint((Coordinate[])null);
- }
- return getFactory().createMultiPoint(new Point[]{
- getStartPoint(), getEndPoint()
- });
+ return (new BoundaryOp(this)).getBoundary();
}
/**
@@ -240,6 +234,19 @@
}
}
+ public void apply(CoordinateSequenceFilter filter)
+ {
+ if (points.size() == 0)
+ return;
+ for (int i = 0; i < points.size(); i++) {
+ filter.filter(points, i);
+ if (filter.isDone())
+ break;
+ }
+ if (filter.isGeometryChanged())
+ geometryChanged();
+ }
+
public void apply(GeometryFilter filter) {
filter.filter(this);
}
@@ -248,6 +255,12 @@
filter.filter(this);
}
+ /**
+ * Creates and returns a full copy of this {@link LineString} object.
+ * (including all coordinates contained by it).
+ *
+ * @return a clone of this instance
+ */
public Object clone() {
LineString ls = (LineString) super.clone();
ls.points = (CoordinateSequence) points.clone();
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/LinearRing.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/LinearRing.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/LinearRing.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -100,6 +100,16 @@
}
/**
+ * Returns <code>Dimension.FALSE</code>, since by definition LinearRings do
+ * not have a boundary.
+ *
+ * @return Dimension.FALSE
+ */
+ public int getBoundaryDimension() {
+ return Dimension.FALSE;
+ }
+
+ /**
* Returns <code>true</code>, since by definition LinearRings are always simple.
* @return <code>true</code>
*
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/MultiLineString.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/MultiLineString.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/MultiLineString.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -35,9 +35,8 @@
package com.vividsolutions.jts.geom;
import com.vividsolutions.jts.geomgraph.GeometryGraph;
-import com.vividsolutions.jts.operation.IsSimpleOp;
+import com.vividsolutions.jts.operation.BoundaryOp;
-
/**
* Basic implementation of <code>MultiLineString</code>.
*
@@ -102,20 +101,18 @@
return true;
}
- public boolean isSimple()
+ /**
+ * Gets the boundary of this geometry.
+ * The boundary of a lineal geometry is always a zero-dimensional geometry (which may be empty).
+ *
+ * @return the boundary geometry
+ * @see Geometry#getBoundary
+ */
+ public Geometry getBoundary()
{
- return (new IsSimpleOp()).isSimple(this);
+ return (new BoundaryOp(this)).getBoundary();
}
- public Geometry getBoundary() {
- if (isEmpty()) {
- return getFactory().createGeometryCollection(null);
- }
- GeometryGraph g = new GeometryGraph(0, this);
- Coordinate[] pts = g.getBoundaryPoints();
- return getFactory().createMultiPoint(pts);
- }
-
/**
* Creates a {@link MultiLineString} in the reverse
* order to this object.
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/MultiPoint.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/MultiPoint.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/MultiPoint.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -34,8 +34,6 @@
*/
package com.vividsolutions.jts.geom;
-import com.vividsolutions.jts.operation.IsSimpleOp;
-
/**
* Models a collection of <code>Point</code>s.
*
@@ -84,14 +82,18 @@
return "MultiPoint";
}
+ /**
+ * Gets the boundary of this geometry.
+ * Zero-dimensional geometries have no boundary by definition,
+ * so an empty GeometryCollection is returned.
+ *
+ * @return an empty GeometryCollection
+ * @see Geometry#getBoundary
+ */
public Geometry getBoundary() {
return getFactory().createGeometryCollection(null);
}
- public boolean isSimple() {
- return (new IsSimpleOp()).isSimple(this);
- }
-
public boolean isValid() {
return true;
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/MultiPolygon.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/MultiPolygon.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/MultiPolygon.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -93,9 +93,15 @@
return true;
}
+ /**
+ * Computes the boundary of this geometry
+ *
+ * @return a lineal geometry (which may be empty)
+ * @see Geometry#getBoundary
+ */
public Geometry getBoundary() {
if (isEmpty()) {
- return getFactory().createGeometryCollection(null);
+ return getFactory().createMultiLineString(null);
}
ArrayList allRings = new ArrayList();
for (int i = 0; i < geometries.length; i++) {
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Point.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Point.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Point.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -135,6 +135,14 @@
return "Point";
}
+ /**
+ * Gets the boundary of this geometry.
+ * Zero-dimensional geometries have no boundary by definition,
+ * so an empty GeometryCollection is returned.
+ *
+ * @return an empty GeometryCollection
+ * @see Geometry#getBoundary
+ */
public Geometry getBoundary() {
return getFactory().createGeometryCollection(null);
}
@@ -159,10 +167,19 @@
}
public void apply(CoordinateFilter filter) {
- if (isEmpty()) { return; }
- filter.filter(getCoordinate());
- }
+ if (isEmpty()) { return; }
+ filter.filter(getCoordinate());
+ }
+ public void apply(CoordinateSequenceFilter filter)
+ {
+ if (isEmpty())
+ return;
+ filter.filter(coordinates, 0);
+ if (filter.isGeometryChanged())
+ geometryChanged();
+ }
+
public void apply(GeometryFilter filter) {
filter.filter(this);
}
@@ -171,6 +188,12 @@
filter.filter(this);
}
+ /**
+ * Creates and returns a full copy of this {@link Point} object.
+ * (including all coordinates contained by it).
+ *
+ * @return a clone of this instance
+ */
public Object clone() {
Point p = (Point) super.clone();
p.coordinates = (CoordinateSequence) coordinates.clone();
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Polygon.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Polygon.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Polygon.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -178,6 +178,12 @@
return shell.isEmpty();
}
+ /**
+ * Tests if a valid polygon is simple.
+ * This method always returns true, since a valid polygon is always simple
+ *
+ * @return <code>true</code>
+ */
public boolean isSimple() {
return true;
}
@@ -195,7 +201,7 @@
for (int i = 0; i < 5; i++) {
double x = seq.getX(i);
if (! (x == env.getMinX() || x == env.getMaxX())) return false;
- double y = seq.getX(i);
+ double y = seq.getY(i);
if (! (y == env.getMinY() || y == env.getMaxY())) return false;
}
@@ -261,15 +267,22 @@
return len;
}
+ /**
+ * Computes the boundary of this geometry
+ *
+ * @return a lineal geometry (which may be empty)
+ * @see Geometry#getBoundary
+ */
public Geometry getBoundary() {
if (isEmpty()) {
- return getFactory().createGeometryCollection(null);
+ return getFactory().createMultiLineString(null);
}
LinearRing[] rings = new LinearRing[holes.length + 1];
rings[0] = shell;
for (int i = 0; i < holes.length; i++) {
rings[i + 1] = holes[i];
}
+ // create LineString or MultiLineString as appropriate
if (rings.length <= 1)
return getFactory().createLinearRing(rings[0].getCoordinateSequence());
return getFactory().createMultiLineString(rings);
@@ -304,12 +317,26 @@
}
public void apply(CoordinateFilter filter) {
- shell.apply(filter);
- for (int i = 0; i < holes.length; i++) {
- holes[i].apply(filter);
- }
- }
+ shell.apply(filter);
+ for (int i = 0; i < holes.length; i++) {
+ holes[i].apply(filter);
+ }
+ }
+ public void apply(CoordinateSequenceFilter filter)
+ {
+ shell.apply(filter);
+ if (! filter.isDone()) {
+ for (int i = 0; i < holes.length; i++) {
+ holes[i].apply(filter);
+ if (filter.isDone())
+ break;
+ }
+ }
+ if (filter.isGeometryChanged())
+ geometryChanged();
+ }
+
public void apply(GeometryFilter filter) {
filter.filter(this);
}
@@ -322,6 +349,12 @@
}
}
+ /**
+ * Creates and returns a full copy of this {@link Polygon} object.
+ * (including all coordinates contained by it).
+ *
+ * @return a clone of this instance
+ */
public Object clone() {
Polygon poly = (Polygon) super.clone();
poly.shell = (LinearRing) shell.clone();
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/PrecisionModel.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/PrecisionModel.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/PrecisionModel.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -83,6 +83,21 @@
*/
public class PrecisionModel implements Serializable, Comparable
{
+ /**
+ * Determines which of two {@link PrecisionModel}s is the most precise
+ * (allows the greatest number of significant digits).
+ *
+ * @param pm1 a PrecisionModel
+ * @param pm2 a PrecisionModel
+ * @return the PrecisionModel which is most precise
+ */
+ public static PrecisionModel mostPrecise(PrecisionModel pm1, PrecisionModel pm2)
+ {
+ if (pm1.compareTo(pm2) >= 0)
+ return pm1;
+ return pm2;
+ }
+
private static final long serialVersionUID = 7777263578777803835L;
/**
@@ -228,17 +243,17 @@
*
* @return the maximum number of decimal places provided by this precision model
*/
- public int getMaximumSignificantDigits() {
- int maxSigDigits = 16;
- if (modelType == FLOATING) {
- maxSigDigits = 16;
- } else if (modelType == FLOATING_SINGLE) {
- maxSigDigits = 6;
- } else if (modelType == FIXED) {
- maxSigDigits = 1 + (int) Math.ceil(Math.log(getScale()) / Math.log(10));
- }
- return maxSigDigits;
- }
+ public int getMaximumSignificantDigits() {
+ int maxSigDigits = 16;
+ if (modelType == FLOATING) {
+ maxSigDigits = 16;
+ } else if (modelType == FLOATING_SINGLE) {
+ maxSigDigits = 6;
+ } else if (modelType == FIXED) {
+ maxSigDigits = 1 + (int) Math.ceil(Math.log(getScale()) / Math.log(10));
+ }
+ return maxSigDigits;
+ }
/**
* Returns the multiplying factor used to obtain a precise coordinate.
@@ -359,11 +374,11 @@
/**
* Rounds a numeric value to the PrecisionModel grid.
- * Symmetric Arithmetic Rounding is used, to provide
+ * Asymmetric Arithmetic Rounding is used, to provide
* uniform rounding behaviour no matter where the number is
* on the number line.
* <p>
- * <b>Note:</b> Java's <code>Math#rint</code> uses the "banker's rounding" algorithm,
+ * <b>Note:</b> Java's <code>Math#rint</code> uses the "Banker's Rounding" algorithm,
* which is not suitable for precision operations elsewhere in JTS.
*/
public double makePrecise(double val) {
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Triangle.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Triangle.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/Triangle.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -33,6 +33,8 @@
*/
package com.vividsolutions.jts.geom;
+import com.vividsolutions.jts.algorithm.*;
+
/**
* Represents a planar triangle, and provides methods for calculating various
* properties of triangles.
@@ -50,23 +52,199 @@
this.p2 = p2;
}
+
/**
+ * Tests whether the triangle is acute.
+ * A triangle is acute iff all interior angles are acute.
+ *
+ * @param a a vertex of the triangle
+ * @param b a vertex of the triangle
+ * @param c a vertex of the triangle
+ * @return true if the triangle is acute
+ */
+ public static boolean isAcute(Coordinate a, Coordinate b, Coordinate c)
+ {
+ if (! Angle.isAcute(a, b, c)) return false;
+ if (! Angle.isAcute(b, c, a)) return false;
+ if (! Angle.isAcute(c, a, b)) return false;
+ return true;
+ }
+
+ /**
+ * Computes the line which is the perpendicular bisector of the
+ * line segment a-b.
+ *
+ * @param a a point
+ * @param b another point
+ * @return the perpendicular bisector, as an HCoordinate
+ */
+ public static HCoordinate perpendicularBisector(Coordinate a, Coordinate b) {
+ // returns the perpendicular bisector of the line segment ab
+ double dx = b.x - a.x;
+ double dy = b.y - a.y;
+ HCoordinate l1 = new HCoordinate(a.x + dx / 2.0, a.y + dy / 2.0, 1.0);
+ HCoordinate l2 = new HCoordinate(a.x - dy + dx / 2.0, a.y + dx + dy / 2.0, 1.0);
+ return new HCoordinate(l1,l2);
+ }
+
+ /**
+ * Computes the circumcentre of a triangle.
+ * The circumcentre is the centre of the circumcircle,
+ * the smallest circle which encloses the triangle.
+ *
+ * @param a a vertx of the triangle
+ * @param b a vertx of the triangle
+ * @param c a vertx of the triangle
+ * @return the circumcentre of the triangle
+ */
+ public static Coordinate circumcentre(Coordinate a, Coordinate b, Coordinate c)
+ {
+ // compute the perpendicular bisector of chord ab
+ HCoordinate cab = perpendicularBisector(a, b);
+ // compute the perpendicular bisector of chord bc
+ HCoordinate cbc = perpendicularBisector(b, c);
+ // compute the intersection of the bisectors (circle radii)
+ HCoordinate hcc = new HCoordinate(cab, cbc);
+ Coordinate cc = null;
+ try {
+ cc = new Coordinate(hcc.getX(), hcc.getY());
+ }
+ catch (NotRepresentableException ex) {
+ // MD - not sure what we can do to prevent this (robustness problem)
+ // Idea - can we condition which edges we choose?
+ throw new IllegalStateException(ex.getMessage());
+ }
+ return cc;
+ }
+
+ /**
+ * Computes the incentre of a triangle.
* The inCentre of a triangle is the point which is equidistant
- * from the sides of the triangle. This is also the point at which the bisectors
- * of the angles meet.
+ * from the sides of the triangle.
+ * It is also the point at which the bisectors
+ * of the triangle's angles meet.
+ * It is the centre of the incircle, which
+ * is the unique circle that is tangent to each of the triangle's three sides.
*
- * @return the point which is the inCentre of the triangle
+ * @param a a vertx of the triangle
+ * @param b a vertx of the triangle
+ * @param c a vertx of the triangle
+ * @return the point which is the incentre of the triangle
*/
- public Coordinate inCentre()
+ public static Coordinate inCentre(Coordinate a, Coordinate b, Coordinate c)
{
// the lengths of the sides, labelled by their opposite vertex
- double len0 = p1.distance(p2);
- double len1 = p0.distance(p2);
- double len2 = p0.distance(p1);
+ double len0 = b.distance(c);
+ double len1 = a.distance(c);
+ double len2 = a.distance(b);
double circum = len0 + len1 + len2;
- double inCentreX = (len0 * p0.x + len1 * p1.x +len2 * p2.x) / circum;
- double inCentreY = (len0 * p0.y + len1 * p1.y +len2 * p2.y) / circum;
+ double inCentreX = (len0 * a.x + len1 * b.x +len2 * c.x) / circum;
+ double inCentreY = (len0 * a.y + len1 * b.y +len2 * c.y) / circum;
return new Coordinate(inCentreX, inCentreY);
}
+
+ /**
+ * Computes the centroid (centre of mass) of a triangle.
+ * This is also the point at which the triangle's three
+ * medians intersect (a triangle median is the segment from a vertex of the triangle to the
+ * midpoint of the opposite side).
+ * The centroid divides each median in a ratio of 2:1.
+ *
+ *
+ * @param a a vertex of the triangle
+ * @param b a vertex of the triangle
+ * @param c a vertex of the triangle
+ * @return the centroid of the triangle
+ */
+ public static Coordinate centroid(Coordinate a, Coordinate b, Coordinate c)
+ {
+ double x = (a.x + b.x + c.x) / 3;
+ double y = (a.y + b.y + c.y) / 3;
+ return new Coordinate(x, y);
+ }
+
+ /**
+ * Computes the length of the longest side of a triangle
+ *
+ * @param a a vertex of the triangle
+ * @param b a vertex of the triangle
+ * @param c a vertex of the triangle
+ * @return the length of the longest side of the triangle
+ */
+ public static double longestSideLength(Coordinate a, Coordinate b, Coordinate c)
+ {
+ double lenAB = a.distance(b);
+ double lenBC = b.distance(c);
+ double lenCA = c.distance(a);
+ double maxLen = lenAB;
+ if (lenBC > maxLen)
+ maxLen = lenBC;
+ if (lenCA > maxLen)
+ maxLen = lenCA;
+ return maxLen;
+ }
+
+ /**
+ * Computes the point at which the bisector of the angle ABC
+ * cuts the segment AC.
+ *
+ * @param a a vertex of the triangle
+ * @param b a vertex of the triangle
+ * @param c a vertex of the triangle
+ * @return the angle bisector cut point
+ */
+ public static Coordinate angleBisector(Coordinate a, Coordinate b, Coordinate c)
+ {
+ /**
+ * Uses the fact that the lengths of the parts of the split segment
+ * are proportional to the lengths of the adjacent triangle sides
+ */
+ double len0 = b.distance(a);
+ double len2 = b.distance(c);
+ double lenSeg = a.distance(c);
+ double frac = len0 / (len0 + len2);
+ double dx = c.x - a.x;
+ double dy = c.y - a.y;
+
+ Coordinate splitPt = new Coordinate(a.x + frac * dx,
+ a.y + frac * dy);
+ return splitPt;
+ }
+
+ /**
+ * Computes the area of a triangle.
+ *
+ * @param a a vertex of the triangle
+ * @param b a vertex of the triangle
+ * @param c a vertex of the triangle
+ * @return the area of the triangle
+ */
+ public static double area(Coordinate a, Coordinate b, Coordinate c)
+ {
+ return Math.abs(
+ a.x * (c.y - b.y)
+ + b.x * (a.y - c.y)
+ + c.x * (b.y - a.y))
+ / 2.0;
+ }
+
+ /**
+ * Computes the incentre of a triangle.
+ * The inCentre of a triangle is the point which is equidistant
+ * from the sides of the triangle.
+ * It is also the point at which the bisectors
+ * of the triangle's angles meet.
+ * It is the centre of the incircle, which
+ * is the unique circle that is tangent to each of the triangle's three sides.
+ *
+ * @return the point which is the inCentre of the triangle
+ */
+ public Coordinate inCentre()
+ {
+ return inCentre(p0, p1, p2);
+ }
+
+
}
+
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/impl/CoordinateArraySequenceFactory.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -50,10 +50,8 @@
private CoordinateArraySequenceFactory() {
}
- /**
- * @see http://www.javaworld.com/javaworld/javatips/jw-javatip122.html
- */
private Object readResolve() {
+ // http://www.javaworld.com/javaworld/javatips/jw-javatip122.html
return CoordinateArraySequenceFactory.instance();
}
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/AffineTransformation.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/AffineTransformation.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/AffineTransformation.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,867 @@
+package com.vividsolutions.jts.geom.util;
+
+import com.vividsolutions.jts.geom.*;
+
+/**
+ * Represents a affine transformation on the 2D Cartesian plane.
+ * It can be used to transform a {@link Coordinate} or {@link Geometry}.
+ * An affine transformation is a mapping of the 2D plane into itself
+ * via a series of transformations of the following basic types:
+ * <ul>
+ * <li>reflection (through a line)
+ * <li>rotation (around the origin)
+ * <li>scaling (relative to the origin)
+ * <li>shearing (in both the X and Y directions)
+ * <li>translation
+ * </ul>
+ * In general, affine transformations preserve straightness and parallel lines,
+ * but do not preserve distance or shape.
+ * <p>
+ * An affine transformation can be represented by a 3x3
+ * matrix in the following form:
+ * <blockquote><pre>
+ * T = | m00 m01 m02 |
+ * | m10 m11 m12 |
+ * | 0 0 1 |
+ * </pre></blockquote>
+ * A coordinate P = (x, y) can be transformed to a new coordinate P' = (x', y')
+ * by representing it as a 3x1 matrix and using matrix multiplication to compute:
+ * <blockquote><pre>
+ * | x' | = T x | x |
+ * | y' | | y |
+ * | 1 | | 1 |
+ * </pre></blockquote>
+ * Affine transformations can be composed using the {@link #compose} method.
+ * The composition of transformations is in general not commutative.
+ * transformation matrices as follows:
+ * <blockquote><pre>
+ * A.compose(B) = T<sub>B</sub> x T<sub>A</sub>
+ * </pre></blockquote>
+ * This produces a transformation whose effect is that of A followed by B.
+ * Composition is computed via multiplication of the
+ * The methods {@link #reflect}, {@link #rotate}, {@link #scale}, {@link #shear}, and {@link #translate}
+ * have the effect of composing a transformation of that type with
+ * the transformation they are invoked on.
+ * <p>
+ * Affine transformations may be invertible or non-invertible.
+ * If a transformation is invertible, then there exists
+ * an inverse transformation which when composed produces
+ * the identity transformation.
+ * The {@link #getInverse} method
+ * computes the inverse of a transformation, if one exists.
+ *
+ * @author Martin Davis
+ *
+ */
+public class AffineTransformation
+ implements Cloneable, CoordinateSequenceFilter
+{
+
+ /**
+ * Creates a transformation for a reflection about the
+ * line (x0,y0) - (x1,y1).
+ *
+ * @param x0 the x-ordinate of a point on the reflection line
+ * @param y0 the y-ordinate of a point on the reflection line
+ * @param x1 the x-ordinate of a another point on the reflection line
+ * @param y1 the y-ordinate of a another point on the reflection line
+ * @return a transformation for the reflection
+ */
+ public static AffineTransformation reflectionInstance(double x0, double y0, double x1, double y1)
+ {
+ AffineTransformation trans = new AffineTransformation();
+ trans.setToReflection(x0, y0, x1, y1);
+ return trans;
+ }
+
+ /**
+ * Creates a transformation for a reflection about the
+ * line (0,0) - (x,y).
+ *
+ * @param x the x-ordinate of a point on the reflection line
+ * @param y the y-ordinate of a point on the reflection line
+ * @return a transformation for the reflection
+ */
+ public static AffineTransformation reflectionInstance(double x, double y)
+ {
+ AffineTransformation trans = new AffineTransformation();
+ trans.setToReflection(x, y);
+ return trans;
+ }
+
+ /**
+ * Creates a transformation for a rotation
+ * about the origin
+ * by an angle <i>theta</i>.
+ * Positive angles correspond to a rotation
+ * in the counter-clockwise direction.
+ *
+ * @param theta the rotation angle, in radians
+ * @return a transformation for the rotation
+ */
+ public static AffineTransformation rotationInstance(double theta)
+ {
+ return rotationInstance(Math.sin(theta), Math.cos(theta));
+ }
+
+ /**
+ * Creates a transformation for a rotation
+ * by an angle <i>theta</i>,
+ * specified by the sine and cosine of the angle.
+ * This allows providing exact values for sin(theta) and cos(theta)
+ * for the common case of rotations of multiples of quarter-circles.
+ *
+ * @param sinTheta the sine of the rotation angle
+ * @param cosTheta the cosine of the rotation angle
+ * @return a transformation for the rotation
+ */
+ public static AffineTransformation rotationInstance(double sinTheta, double cosTheta)
+ {
+ AffineTransformation trans = new AffineTransformation();
+ trans.setToRotation(sinTheta, cosTheta);
+ return trans;
+ }
+
+ public static AffineTransformation scaleInstance(double xScale, double yScale)
+ {
+ AffineTransformation trans = new AffineTransformation();
+ trans.setToScale(xScale, yScale);
+ return trans;
+ }
+
+ public static AffineTransformation shearInstance(double xShear, double yShear)
+ {
+ AffineTransformation trans = new AffineTransformation();
+ trans.setToShear(xShear, yShear);
+ return trans;
+ }
+
+ public static AffineTransformation translationInstance(double x, double y)
+ {
+ AffineTransformation trans = new AffineTransformation();
+ trans.setToTranslation(x, y);
+ return trans;
+ }
+
+ // affine matrix entries
+ // (bottom row is always [ 0 0 1 ])
+ private double m00;
+ private double m01;
+ private double m02;
+ private double m10;
+ private double m11;
+ private double m12;
+
+ /**
+ * Constructs a new identity transformation
+ *
+ */
+ public AffineTransformation()
+ {
+ setToIdentity();
+ }
+
+ /**
+ * Constructs a new transformation whose
+ * matrix has the specified values.
+ *
+ * @param matrix an array containing the 6 values { m00, m01, m02, m10, m11, m12 }
+ * @throws NullPointerException if matrix is null
+ * @throws ArrayIndexOutOfBoundsException if matrix is too small
+ */
+ public AffineTransformation(double[] matrix)
+ {
+ m00 = matrix[0];
+ m01 = matrix[1];
+ m02 = matrix[2];
+ m10 = matrix[3];
+ m11 = matrix[4];
+ m12 = matrix[5];
+ }
+
+ /**
+ * Constructs a new transformation whose
+ * matrix has the specified values.
+ *
+ * @param m00 the entry for the [0, 0] element in the transformation matrix
+ * @param m01 the entry for the [0, 1] element in the transformation matrix
+ * @param m02 the entry for the [0, 2] element in the transformation matrix
+ * @param m10 the entry for the [1, 0] element in the transformation matrix
+ * @param m11 the entry for the [1, 1] element in the transformation matrix
+ * @param m12 the entry for the [1, 2] element in the transformation matrix
+ */
+ public AffineTransformation(double m00,
+ double m01,
+ double m02,
+ double m10,
+ double m11,
+ double m12)
+ {
+ setTransformation(m00, m01, m02, m10, m11, m12);
+ }
+
+ /**
+ * Constructs a transformation which is
+ * a copy of the given one.
+ *
+ * @param trans the transformation to copy
+ */
+ public AffineTransformation(AffineTransformation trans)
+ {
+ setTransformation(trans);
+ }
+
+ /**
+ * Constructs a transformation
+ * which maps the given source
+ * points into the given destination points.
+ *
+ * @param src0 source point 0
+ * @param src1 source point 1
+ * @param src2 source point 2
+ * @param dest0 the mapped point for source point 0
+ * @param dest1 the mapped point for source point 1
+ * @param dest2 the mapped point for source point 2
+ *
+ */
+ public AffineTransformation(Coordinate src0,
+ Coordinate src1,
+ Coordinate src2,
+ Coordinate dest0,
+ Coordinate dest1,
+ Coordinate dest2)
+ {
+ }
+
+ /**
+ * Sets this transformation to be the identity transformation.
+ * The identity transformation has the matrix:
+ * <blockquote><pre>
+ * | 1 0 0 |
+ * | 0 1 0 |
+ * | 0 0 1 |
+ * </pre></blockquote>
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation setToIdentity()
+ {
+ m00 = 1.0; m01 = 0.0; m02 = 0.0;
+ m10 = 0.0; m11 = 1.0; m12 = 0.0;
+ return this;
+ }
+
+ /**
+ * Sets this transformation's matrix to have the given values.
+ *
+ * @param m00 the entry for the [0, 0] element in the transformation matrix
+ * @param m01 the entry for the [0, 1] element in the transformation matrix
+ * @param m02 the entry for the [0, 2] element in the transformation matrix
+ * @param m10 the entry for the [1, 0] element in the transformation matrix
+ * @param m11 the entry for the [1, 1] element in the transformation matrix
+ * @param m12 the entry for the [1, 2] element in the transformation matrix
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation setTransformation(double m00,
+ double m01,
+ double m02,
+ double m10,
+ double m11,
+ double m12)
+ {
+ this.m00 = m00;
+ this.m01 = m01;
+ this.m02 = m02;
+ this.m10 = m10;
+ this.m11 = m11;
+ this.m12 = m12;
+ return this;
+ }
+
+ /**
+ * Sets this transformation to be a copy of the given one
+ *
+ * @param trans a transformation to copy
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation setTransformation(AffineTransformation trans)
+ {
+ m00 = trans.m00; m01 = trans.m01; m02 = trans.m02;
+ m10 = trans.m10; m11 = trans.m11; m12 = trans.m12;
+ return this;
+ }
+
+ /**
+ * Gets an array containing the entries
+ * of the transformation matrix.
+ * Only the 6 non-trivial entries are returned,
+ * in the sequence:
+ * <pre>
+ * m00, m01, m02, m10, m11, m12
+ * </pre>
+ *
+ * @return an array of length 6
+ */
+ public double[] getMatrixEntries()
+ {
+ return new double[] { m00, m01, m02, m10, m11, m12 };
+ }
+
+ /**
+ * Computes the determinant of the transformation matrix.
+ * The determinant is computed as:
+ * <blockquote><pre>
+ * | m00 m01 m02 |
+ * | m10 m11 m12 | = m00 * m11 - m01 * m10
+ * | 0 0 1 |
+ * </pre></blockquote>
+ * If the determinant is zero,
+ * the transform is singular (not invertible),
+ * and operations which attempt to compute
+ * an inverse will throw a <tt>NoninvertibleTransformException</tt>.
+
+ * @return the determinant of the transformation
+ * @see #getInverse()
+ */
+ public double getDeterminant()
+ {
+ return m00 * m11 - m01 * m10;
+ }
+
+ /**
+ * Computes the inverse of this transformation, if one
+ * exists.
+ * The inverse is the transformation which when
+ * composed with this one produces the identity
+ * transformation.
+ * A transformation has an inverse if and only if it
+ * is not singular (i.e. its
+ * determinant is non-zero).
+ * Geometrically, an transformation is non-invertible
+ * if it maps the plane to a line or a point.
+ * If no inverse exists this method
+ * will throw a <tt>NoninvertibleTransformationException</tt>.
+ * <p>
+ * The matrix of the inverse is equal to the
+ * inverse of the matrix for the transformation.
+ * It is computed as follows:
+ * <blockquote><pre>
+ * 1
+ * inverse(A) = --- x adjoint(A)
+ * det
+ *
+ *
+ * = 1 | m11 -m01 m01*m12-m02*m11 |
+ * --- x | -m10 m00 -m00*m12+m10*m02 |
+ * det | 0 0 m00*m11-m10*m01 |
+ *
+ *
+ *
+ * = | m11/det -m01/det m01*m12-m02*m11/det |
+ * | -m10/det m00/det -m00*m12+m10*m02/det |
+ * | 0 0 1 |
+ *
+ * </pre></blockquote>
+ *
+ * @return a new inverse transformation
+ * @throws NoninvertibleTransformationException
+ * @see #getDeterminant()
+ */
+ public AffineTransformation getInverse()
+ throws NoninvertibleTransformationException
+ {
+ double det = getDeterminant();
+ if (det == 0)
+ throw new NoninvertibleTransformationException("Transformation is non-invertible");
+
+ double im00 = m11 / det;
+ double im10 = -m10 / det;
+ double im01 = -m01 / det;
+ double im11 = m00 / det;
+ double im02 = (m01 * m12 - m02 * m11) / det;
+ double im12 = (-m00 * m12 + m10 * m02) / det;
+
+ return new AffineTransformation(im00, im01, im02, im10, im11, im12);
+ }
+
+ /**
+ * Explicitly computes the math for a reflection. May not work.
+ * @param x0
+ * @param y0
+ * @param x1
+ * @param y1
+ * @return
+ */
+ public AffineTransformation setToReflectionBasic(double x0, double y0, double x1, double y1)
+ {
+ if (x0 == x1 && y0 == y1) {
+ throw new IllegalArgumentException("Reflection line points must be distinct");
+ }
+ double dx = x1 - x0;
+ double dy = y1 - y0;
+ double d = Math.sqrt(dx * dx + dy * dy);
+ double sin = dy / d;
+ double cos = dx / d;
+ double cs2 = 2 * sin * cos;
+ double c2s2 = cos * cos - sin * sin;
+ m00 = c2s2; m01 = cs2; m02 = 0.0;
+ m10 = cs2; m11 = -c2s2; m12 = 0.0;
+ return this;
+ }
+
+ public AffineTransformation setToReflection(double x0, double y0, double x1, double y1)
+ {
+ if (x0 == x1 && y0 == y1) {
+ throw new IllegalArgumentException("Reflection line points must be distinct");
+ }
+ // translate line vector to origin
+ setToTranslation(-x0, -y0);
+
+ // rotate vector to positive x axis direction
+ double dx = x1 - x0;
+ double dy = y1 - y0;
+ double d = Math.sqrt(dx * dx + dy * dy);
+ double sin = dy / d;
+ double cos = dx / d;
+ rotate(-sin, cos);
+ // reflect about the x axis
+ scale(1, -1);
+ // rotate back
+ rotate(sin, cos);
+ // translate back
+ translate(x0, y0);
+ return this;
+ }
+
+ /**
+ * Sets this transformation to be a reflection
+ * about the line defined by vector (x,y).
+ * The transformation for a reflection
+ * is computed by:
+ * <blockquote><pre>
+ * d = sqrt(x<sup>2</sup> + y<sup>2</sup>)
+ * sin = x / d;
+ * cos = x / d;
+ *
+ * T<sub>ref</sub> = T<sub>rot(sin, cos)</sub> x T<sub>scale(1, -1)</sub> x T<sub>rot(-sin, cos)</sub
+ * </pre></blockquote>
+ *
+ * @param x the x-component of the reflection line vector
+ * @param y the y-component of the reflection line vector
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation setToReflection(double x, double y)
+ {
+ if (x == 0.0 && y == 0.0) {
+ throw new IllegalArgumentException("Reflection vector must be non-zero");
+ }
+ // rotate vector to positive x axis direction
+ double d = Math.sqrt(x * x + y * y);
+ double sin = y / d;
+ double cos = x / d;
+ rotate(-sin, cos);
+ // reflect about the x-axis
+ scale(1, -1);
+ // rotate back
+ rotate(sin, cos);
+ return this;
+ }
+
+ /**
+ * Sets this transformation to be a rotation.
+ * A positive rotation angle corresponds
+ * to a counter-clockwise rotation.
+ * The transformation matrix for a rotation
+ * by an angle <tt>theta</tt>
+ * has the value:
+ * <blockquote><pre>
+ * | cos(theta) -sin(theta) 0 |
+ * | sin(theta) cos(theta) 0 |
+ * | 0 0 1 |
+ * </pre></blockquote>
+ *
+ * @param theta the rotation angle, in radians
+ * @return this transformation, with an updated matrix
+ */
+ private AffineTransformation setToRotation(double theta)
+ {
+ setToRotation(Math.sin(theta), Math.cos(theta));
+ return this;
+ }
+
+ /**
+ * Sets this transformation to be a rotation
+ * by specifying the sin and cos of the rotation angle directly.
+ * The transformation matrix for the rotation
+ * has the value:
+ * <blockquote><pre>
+ * | cosTheta -sinTheta 0 |
+ * | sinTheta cosTheta 0 |
+ * | 0 0 1 |
+ * </pre></blockquote>
+ *
+ * @param sinTheta the sine of the rotation angle
+ * @param cosTheta the cosine of the rotation angle
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation setToRotation(double sinTheta, double cosTheta)
+ {
+ m00 = cosTheta; m01 = -sinTheta; m02 = 0.0;
+ m10 = sinTheta; m11 = cosTheta; m12 = 0.0;
+ return this;
+ }
+
+ /**
+ * Sets this transformation to be a scaling.
+ * The transformation matrix for a scale
+ * has the value:
+ * <blockquote><pre>
+ * | xScale 0 dx |
+ * | 1 yScale dy |
+ * | 0 0 1 |
+ * </pre></blockquote>
+ *
+ * @param xScale the amount to scale x-ordinates by
+ * @param yScale the amount to scale y-ordinates by
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation setToScale(double xScale, double yScale)
+ {
+ m00 = xScale; m01 = 0.0; m02 = 0.0;
+ m10 = 0.0; m11 = yScale; m12 = 0.0;
+ return this;
+ }
+
+ /**
+ * Sets this transformation to be a shear.
+ * The transformation matrix for a shear
+ * has the value:
+ * <blockquote><pre>
+ * | 1 xShear 0 |
+ * | yShear 1 0 |
+ * | 0 0 1 |
+ * </pre></blockquote>
+ * Note that a shear of (1, 1) is <i>not</i>
+ * equal to shear(1, 0) composed with shear(0, 1).
+ * Instead, shear(1, 1) corresponds to a mapping onto the
+ * line x = y.
+ *
+ * @param xShear the x component to shear by
+ * @param yShear the y component to shear by
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation setToShear(double xShear, double yShear)
+ {
+ m00 = 1.0; m01 = xShear; m02 = 0.0;
+ m10 = yShear; m11 = 1.0; m12 = 0.0;
+ return this;
+ }
+
+ /**
+ * Sets this transformation to be a translation.
+ * For a translation by the vector (x, y)
+ * the transformation matrix has the value:
+ * <blockquote><pre>
+ * | 1 0 dx |
+ * | 1 0 dy |
+ * | 0 0 1 |
+ * </pre></blockquote>
+ * @param dx the x component to translate by
+ * @param dy the y component to translate by
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation setToTranslation(double dx, double dy)
+ {
+ m00 = 1.0; m01 = 0.0; m02 = dx;
+ m10 = 0.0; m11 = 1.0; m12 = dy;
+ return this;
+ }
+
+ /**
+ * Updates the value of this transformation
+ * to that of a reflection transformation composed
+ * with the current value.
+ *
+ * @param x0 the x-ordinate of a point on the line to reflect around
+ * @param y0 the y-ordinate of a point on the line to reflect around
+ * @param x1 the x-ordinate of a point on the line to reflect around
+ * @param y1 the y-ordinate of a point on the line to reflect around
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation reflect(double x0, double y0, double x1, double y1)
+ {
+ compose(reflectionInstance(x0, y0, x1, y1));
+ return this;
+ }
+
+ /**
+ * Updates the value of this transformation
+ * to that of a reflection transformation composed
+ * with the current value.
+ *
+ * @param x the x-ordinate of the line to reflect around
+ * @param y the y-ordinate of the line to reflect around
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation reflect(double x, double y)
+ {
+ compose(reflectionInstance(x, y));
+ return this;
+ }
+
+ /**
+ * Updates the value of this transformation
+ * to that of a rotation transformation composed
+ * with the current value.
+ *
+ * @param theta the angle to rotate by
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation rotate(double theta)
+ {
+ compose(rotationInstance(theta));
+ return this;
+ }
+
+ /**
+ * Updates the value of this transformation
+ * to that of a rotation transformation composed
+ * with the current value.
+ *
+ * @param sinTheta the sine of the angle to rotate by
+ * @param cosTheta the cosine of the angle to rotate by
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation rotate(double sinTheta, double cosTheta)
+ {
+ compose(rotationInstance(sinTheta, cosTheta));
+ return this;
+ }
+
+ /**
+ * Updates the value of this transformation
+ * to that of a scale transformation composed
+ * with the current value.
+ *
+ * @param xScale the value to scale by in the x direction
+ * @param yScale the value to scale by in the y direction
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation scale(double xScale, double yScale)
+ {
+ compose(scaleInstance(xScale, yScale));
+ return this;
+ }
+
+ /**
+ * Updates the value of this transformation
+ * to that of a shear transformation composed
+ * with the current value.
+ *
+ * @param xShear the value to shear by in the x direction
+ * @param yShear the value to shear by in the y direction
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation shear(double xShear, double yShear)
+ {
+ compose(shearInstance(xShear, yShear));
+ return this;
+ }
+
+ /**
+ * Updates the value of this transformation
+ * to that of a translation transformation composed
+ * with the current value.
+ *
+ * @param x the value to translate by in the x direction
+ * @param y the value to translate by in the y direction
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation translate(double x, double y)
+ {
+ compose(translationInstance(x, y));
+ return this;
+ }
+
+
+ /**
+ * Composes the given {@link AffineTransformation}
+ * with this transformation.
+ * This produces a transformation whose effect
+ * is equal to applying this transformation
+ * followed by the argument transformation.
+ * Mathematically,
+ * <blockquote><pre>
+ * A.compose(B) = T<sub>B</sub> x T<sub>A</sub>
+ * </pre></blockquote>
+ *
+ * @param trans an affine transformation
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation compose(AffineTransformation trans)
+ {
+ double mp00 = trans.m00 * m00 + trans.m01 * m10;
+ double mp01 = trans.m00 * m01 + trans.m01 * m11;
+ double mp02 = trans.m00 * m02 + trans.m01 * m12 + trans.m02;
+ double mp10 = trans.m10 * m00 + trans.m11 * m10;
+ double mp11 = trans.m10 * m01 + trans.m11 * m11;
+ double mp12 = trans.m10 * m02 + trans.m11 * m12 + trans.m12;
+ m00 = mp00;
+ m01 = mp01;
+ m02 = mp02;
+ m10 = mp10;
+ m11 = mp11;
+ m12 = mp12;
+ return this;
+ }
+
+ /**
+ * Composes this transformation
+ * with the given {@link AffineTransformation}.
+ * This produces a transformation whose effect
+ * is equal to applying the argument transformation
+ * followed by this transformation.
+ * Mathematically,
+ * <blockquote><pre>
+ * A.composeBefore(B) = T<sub>A</sub> x T<sub>B</sub>
+ * </pre></blockquote>
+ *
+ * @param trans an affine transformation
+ * @return this transformation, with an updated matrix
+ */
+ public AffineTransformation composeBefore(AffineTransformation trans)
+ {
+ double mp00 = m00 * trans.m00 + m01 * trans.m10;
+ double mp01 = m00 * trans.m01 + m01 * trans.m11;
+ double mp02 = m00 * trans.m02 + m01 * trans.m12 + m02;
+ double mp10 = m10 * trans.m00 + m11 * trans.m10;
+ double mp11 = m10 * trans.m01 + m11 * trans.m11;
+ double mp12 = m10 * trans.m02 + m11 * trans.m12 + m12;
+ m00 = mp00;
+ m01 = mp01;
+ m02 = mp02;
+ m10 = mp10;
+ m11 = mp11;
+ m12 = mp12;
+ return this;
+ }
+
+ /**
+ * Applies this transformation to the <tt>src</tt> coordinate
+ * and places the results in the <tt>dest</tt> coordinate
+ * (which may be the same as the source).
+ *
+ * @param src the coordinate to transform
+ * @param dest the coordinate to accept the results
+ * @return the <tt>dest</tt> coordinate
+ */
+ public Coordinate transform(Coordinate src, Coordinate dest)
+ {
+ double xp = m00 * src.x + m01 * src.y + m02;
+ double yp = m10 * src.x + m11 * src.y + m12;
+ dest.x = xp;
+ dest.y = yp;
+ return dest;
+ }
+
+ /**
+ * Applies this transformation to the i'th coordinate
+ * in the given CoordinateSequence.
+ *
+ *@param seq a <code>CoordinateSequence</code>
+ *@param i the index of the coordinate to transform
+ */
+ public void transform(CoordinateSequence seq, int i)
+ {
+ double xp = m00 * seq.getOrdinate(i, 0) + m01 * seq.getOrdinate(i, 1) + m02;
+ double yp = m10 * seq.getOrdinate(i, 0) + m11 * seq.getOrdinate(i, 1) + m12;
+ seq.setOrdinate(i, 0, xp);
+ seq.setOrdinate(i, 1, yp);
+ }
+
+ /**
+ * Transforms the i'th coordinate in the input sequence
+ *
+ *@param seq a <code>CoordinateSequence</code>
+ *@param i the index of the coordinate to transform
+ */
+ public void filter(CoordinateSequence seq, int i)
+ {
+ transform(seq, i);
+ }
+
+ public boolean isGeometryChanged()
+ {
+ return true;
+ }
+
+ /**
+ * Reports that this filter should continue to be executed until
+ * all coordinates have been transformed.
+ *
+ * @return false
+ */
+ public boolean isDone()
+ {
+ return false;
+ }
+
+ /**
+ * Tests if this transformation is the identity transformation.
+ *
+ * @return true if this is the identity transformation
+ */
+ public boolean isIdentity()
+ {
+ return (m00 == 1 && m01 == 0 && m02 == 0
+ && m10 == 0 && m11 == 1 && m12 == 0);
+ }
+
+ /**
+ * Tests if an object is an
+ * <tt>AffineTransformation</tt>
+ * and has the same matrix as
+ * this transformation.
+ *
+ * @param obj an object to test
+ * @return true if the given object is equal to this object
+ */
+ public boolean equals(Object obj)
+ {
+ if (obj instanceof AffineTransformation)
+ return false;
+ AffineTransformation trans = (AffineTransformation) obj;
+ return m00 == trans.m00
+ && m01 == trans.m01
+ && m02 == trans.m02
+ && m10 == trans.m10
+ && m11 == trans.m11
+ && m12 == trans.m12;
+ }
+
+ /**
+ * Gets a text representation of this transformation.
+ * The string is of the form:
+ * <pre>
+ * AffineTransformation[[m00, m01, m02], [m10, m11, m12]]
+ * </pre>
+ *
+ * @return a string representing this transformation
+ *
+ */
+ public String toString()
+ {
+ return "AffineTransformation[[" + m00 + ", " + m01 + ", " + m02
+ + "], ["
+ + m10 + ", " + m11 + ", " + m12 + "]]";
+ }
+
+ /**
+ * Clones this transformation
+ *
+ * @return a copy of this transformation
+ */
+ public Object clone()
+ {
+ return new AffineTransformation(this);
+ }
+}
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/AffineTransformationBuilder.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/AffineTransformationBuilder.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/AffineTransformationBuilder.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,124 @@
+package com.vividsolutions.jts.geom.util;
+
+import com.vividsolutions.jts.algorithm.*;
+import com.vividsolutions.jts.geom.*;
+
+/**
+ * Builds an {@link AffineTransformation} defined by three control points
+ * and their images under the transformation.
+ * <p>
+ * A transformation is well-defined by a set of three control points
+ * as long as the points are not collinear
+ * (this includes the degenerate situation
+ * where two or more points are identical).
+ * If the control points are not well-defined, the system of equations
+ * defining the transformation matrix entries is not solvable,
+ * and no transformation can be determined.
+ * If the control point images are collinear or non-unique,
+ * a non-invertible transformations will be generated.
+ * <p>
+ * This technique of recovering a transformation
+ * from its effect on known points is used in the Bilinear Interpolated Triangulation
+ * algorithm for warping planar surfaces.
+ *
+ * @author Martin Davis
+ */
+public class AffineTransformationBuilder
+{
+ private Coordinate src0;
+ private Coordinate src1;
+ private Coordinate src2;
+ private Coordinate dest0;
+ private Coordinate dest1;
+ private Coordinate dest2;
+
+ // the matrix entries for the transformation
+ private double m00, m01, m02, m10, m11, m12;
+
+ /**
+ * Constructs a new builder for
+ * the transformation defined by the given
+ * set of control point mappings.
+ *
+ * @param src0 a control point
+ * @param src1 a control point
+ * @param src2 a control point
+ * @param dest0 the image of control point 0 under the required transformation
+ * @param dest1 the image of control point 1 under the required transformation
+ * @param dest2 the image of control point 2 under the required transformation
+ */
+ public AffineTransformationBuilder(Coordinate src0,
+ Coordinate src1,
+ Coordinate src2,
+ Coordinate dest0,
+ Coordinate dest1,
+ Coordinate dest2)
+ {
+ this.src0 = src0;
+ this.src1 = src1;
+ this.src2 = src2;
+ this.dest0 = dest0;
+ this.dest1 = dest1;
+ this.dest2 = dest2;
+ }
+
+ /**
+ * Computes the {@link AffineTransformation}
+ * determined by the control point mappings,
+ * or <code>null</code> if the control points do not determine a unique transformation.
+ *
+ * @return an affine transformation
+ * @return null if the control points do not determine a unique transformation
+ */
+ public AffineTransformation getTransformation()
+ {
+ boolean isSolvable = compute();
+ if (isSolvable)
+ return new AffineTransformation(m00, m01, m02, m10, m11, m12);
+ return null;
+ }
+
+ /**
+ * Computes the transformation matrix by
+ * solving the two systems of linear equations
+ * defined by the control point mappings,
+ * if this is possible.
+ *
+ * @return true if the transformation matrix is solvable
+ */
+ private boolean compute()
+ {
+ double[] bx = new double[] { dest0.x, dest1.x, dest2.x };
+ double[] row0 = solve(bx);
+ if (row0 == null) return false;
+ m00 = row0[0];
+ m01 = row0[1];
+ m02 = row0[2];
+
+ double[] by = new double[] { dest0.y, dest1.y, dest2.y };
+ double[] row1 = solve(by);
+ if (row1 == null) return false;
+ m10 = row1[0];
+ m11 = row1[1];
+ m12 = row1[2];
+ return true;
+ }
+
+ /**
+ * Solves the transformation matrix system of linear equations
+ * for the given right-hand side vector.
+ *
+ * @param b the vector for the right-hand side of the system
+ * @return the solution vector
+ * @return null if no solution could be determined
+ */
+ private double[] solve(double[] b)
+ {
+ double[][] a = new double[][] {
+ { src0.x, src0.y, 1 },
+ { src1.x, src1.y, 1},
+ { src2.x, src2.y, 1}
+ };
+ return Matrix.solve(a, b);
+ }
+}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/GeometryTransformer.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/GeometryTransformer.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/GeometryTransformer.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -25,11 +25,14 @@
* The default behaviour of this class is to simply recursively transform
* each Geometry component into an identical object by copying.
* <p>
- * Note that all <code>transformX</code> methods may return <code>null</code>,
- * to avoid creating empty geometry objects. This will be handled correctly
- * by the transformer.
- * The @link transform} method itself will always
- * return a geometry object.
+ * All <code>transformX</code> methods may return <code>null</code>,
+ * to avoid creating empty or invalid geometry objects. This will be handled correctly
+ * by the transformer. <code>transformX</code> methods should always return valid
+ * geometry - if they cannot do this they should return <code>null</code>
+ * (for instance, it may not be possible for a transformLineString implementation
+ * to return at least two points - in this case, it should return <code>null</code>).
+ * The {@link transform} method itself will always
+ * return a non-null Geometry object (but this may be empty).
*
* @version 1.7
*
@@ -73,6 +76,11 @@
public GeometryTransformer() {
}
+ /**
+ * Utility function to make input geometry available
+ *
+ * @return the input geometry
+ */
public Geometry getInputGeometry() { return inputGeom; }
public final Geometry transform(Geometry inputGeom)
@@ -122,6 +130,18 @@
return (CoordinateSequence) seq.clone();
}
+ /**
+ * Transforms a {@link CoordinateSequence}.
+ * This method should always return a valid coordinate list for
+ * the desired result type. (E.g. a coordinate list for a LineString
+ * must have 0 or at least 2 points).
+ * If this is not possible, return an empty sequence -
+ * this will be pruned out.
+ *
+ * @param coords the coordinates to transform
+ * @param parent the parent geometry
+ * @return the transformed coordinates
+ */
protected CoordinateSequence transformCoordinates(CoordinateSequence coords, Geometry parent)
{
return copy(coords);
@@ -153,6 +173,13 @@
}
+ /**
+ * Transforms a {@link LineString} geometry.
+ *
+ * @param geom
+ * @param parent
+ * @return
+ */
protected Geometry transformLineString(LineString geom, Geometry parent) {
// should check for 1-point sequences and downgrade them to points
return factory.createLineString(
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/Matrix.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/Matrix.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/Matrix.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,88 @@
+package com.vividsolutions.jts.geom.util;
+
+/**
+ * Implements some 2D matrix operations
+ * (in particular, solving systems of linear equations).
+ *
+ * @author Martin Davis
+ *
+ */
+public class Matrix
+{
+ private static void swapRows(double[][] m, int i, int j)
+ {
+ if (i == j) return;
+ for (int col = 0; col < m[0].length; col++) {
+ double temp = m[i][col];
+ m[i][col] = m[j][col];
+ m[j][col] = temp;
+ }
+ }
+
+ private static void swapRows(double[] m, int i, int j)
+ {
+ if (i == j) return;
+ double temp = m[i];
+ m[i] = m[j];
+ m[j] = temp;
+ }
+
+ /**
+ * Solves a system of equations using Gaussian Elimination.
+ * In order to avoid overhead the algorithm runs in-place
+ * on A - if A should not be modified the client must supply a copy.
+ *
+ * @param A an nxn matrix in row/column order )modified by this method)
+ * @param b a vector of length n
+ *
+ * @return a vector containing the solution (if any)
+ * @return null if the system has no or no unique solution
+ *
+ * @throws IllegalArgumentException if the matrix is the wrong size
+ */
+ public static double[] solve( double[][] a, double[] b )
+ {
+ int n = b.length;
+ if ( a.length != n || a[0].length != n )
+ throw new IllegalArgumentException("Matrix A is incorrectly sized");
+
+ // Use Gaussian Elimination with partial pivoting.
+ // Iterate over each row
+ for (int i = 0; i < n; i++ ) {
+ // Find the largest pivot in the rows below the current one.
+ int maxElementRow = i;
+ for (int j = i + 1; j < n; j++ )
+ if ( Math.abs( a[j][i] ) > Math.abs( a[maxElementRow][i] ) )
+ maxElementRow = j;
+
+ if ( a[maxElementRow][i] == 0.0 )
+ return null;
+
+ // Exchange current row and maxElementRow in A and b.
+ swapRows(a, i, maxElementRow );
+ swapRows(b, i, maxElementRow );
+
+ // Eliminate using row i
+ for (int j = i + 1; j < n; j++ ) {
+ double rowFactor = a[j][i] / a[i][i];
+ for (int k = n - 1; k >= i; k-- )
+ a[j][k] -= a[i][k] * rowFactor;
+ b[j] -= b[i] * rowFactor;
+ }
+ }
+
+ /**
+ * A is now (virtually) in upper-triangular form.
+ * The solution vector is determined by back-substitution.
+ */
+ double[] solution = new double[n];
+ for (int j = n - 1; j >= 0; j-- ) {
+ double t = 0.0;
+ for (int k = j + 1; k < n; k++ )
+ t += a[j][k] * solution[k];
+ solution[j] = ( b[j] - t ) / a[j][j];
+ }
+ return solution;
+ }
+
+}
\ No newline at end of file
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geom/util/NoninvertibleTransformationException.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,20 @@
+package com.vividsolutions.jts.geom.util;
+
+/**
+ * Indicates that an {@link AffineTransformation}
+ * is non-invertible.
+ *
+ * @author Martin Davis
+ */
+public class NoninvertibleTransformationException
+ extends Exception
+{
+ public NoninvertibleTransformationException()
+ {
+ super();
+ }
+ public NoninvertibleTransformationException(String msg)
+ {
+ super(msg);
+ }
+}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeEnd.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeEnd.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeEnd.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -127,7 +127,7 @@
return CGAlgorithms.computeOrientation(e.p0, e.p1, p1);
}
- public void computeLabel()
+ public void computeLabel(BoundaryNodeRule boundaryNodeRule)
{
// subclasses should override this if they are using labels
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeEndStar.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeEndStar.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeEndStar.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -38,7 +38,7 @@
import java.io.PrintStream;
import java.util.*;
import com.vividsolutions.jts.geom.*;
-import com.vividsolutions.jts.algorithm.SimplePointInAreaLocator;
+import com.vividsolutions.jts.algorithm.*;
import com.vividsolutions.jts.util.*;
/**
@@ -126,9 +126,9 @@
return (EdgeEnd) edgeList.get(iNextCW);
}
- public void computeLabelling(GeometryGraph[] geom)
+ public void computeLabelling(GeometryGraph[] geomGraph)
{
- computeEdgeEndLabels();
+ computeEdgeEndLabels(geomGraph[0].getBoundaryNodeRule());
// Propagate side labels around the edges in the star
// for each parent Geometry
//Debug.print(this);
@@ -190,7 +190,7 @@
}
else {
Coordinate p = e.getCoordinate();
- loc = getLocation(geomi, p, geom);
+ loc = getLocation(geomi, p, geomGraph);
}
label.setAllLocationsIfNull(geomi, loc);
}
@@ -201,12 +201,12 @@
//Debug.printIfWatch(this);
}
- private void computeEdgeEndLabels()
+ private void computeEdgeEndLabels(BoundaryNodeRule boundaryNodeRule)
{
// Compute edge label for each EdgeEnd
for (Iterator it = iterator(); it.hasNext(); ) {
EdgeEnd ee = (EdgeEnd) it.next();
- ee.computeLabel();
+ ee.computeLabel(boundaryNodeRule);
}
}
int getLocation(int geomIndex, Coordinate p, GeometryGraph[] geom)
@@ -218,9 +218,9 @@
return ptInAreaLocation[geomIndex];
}
- public boolean isAreaLabelsConsistent()
+ public boolean isAreaLabelsConsistent(GeometryGraph geomGraph)
{
- computeEdgeEndLabels();
+ computeEdgeEndLabels(geomGraph.getBoundaryNodeRule());
return checkAreaLabelsConsistent(0);
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeIntersection.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeIntersection.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeIntersection.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -62,6 +62,12 @@
this.dist = dist;
}
+ public Coordinate getCoordinate() { return coord; }
+
+ public int getSegmentIndex() { return segmentIndex; }
+
+ public double getDistance() { return dist; }
+
public int compareTo(Object obj)
{
EdgeIntersection other = (EdgeIntersection) obj;
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeNodingValidator.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeNodingValidator.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeNodingValidator.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -39,12 +39,13 @@
import com.vividsolutions.jts.noding.*;
/**
- * Validates that a collection of SegmentStrings is correctly noded.
+ * Validates that a collection of {@link Edge}s is correctly noded.
* Throws an appropriate exception if an noding error is found.
*
* @version 1.7
*/
-public class EdgeNodingValidator {
+public class EdgeNodingValidator
+{
private static Collection toSegmentStrings(Collection edges)
{
@@ -59,11 +60,22 @@
private NodingValidator nv;
+ /**
+ * Creates a new validator for the given collection of {@link Edge}s.
+ *
+ * @param edges a collection of Edges.
+ */
public EdgeNodingValidator(Collection edges)
{
nv = new NodingValidator(toSegmentStrings(edges));
}
+ /**
+ * Checks whether the supplied edges
+ * are correctly noded. Throws an exception if they are not.
+ *
+ * @throws RuntimeException if the SegmentStrings are not correctly noded
+ */
public void checkValid()
{
nv.checkValid();
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeRing.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeRing.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/EdgeRing.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -41,7 +41,9 @@
import com.vividsolutions.jts.algorithm.CGAlgorithms;
import com.vividsolutions.jts.geom.*;
-import com.vividsolutions.jts.util.Assert;
+import com.vividsolutions.jts.geom.impl.*;
+import com.vividsolutions.jts.io.*;
+import com.vividsolutions.jts.util.*;
/**
@@ -114,6 +116,7 @@
}
ring = geometryFactory.createLinearRing(coord);
isHole = cga.isCCW(ring.getCoordinates());
+//Debug.println( (isHole ? "hole - " : "shell - ") + WKTWriter.toLineString(new CoordinateArraySequence(ring.getCoordinates())));
}
abstract public DirectedEdge getNext(DirectedEdge de);
abstract public void setEdgeRing(DirectedEdge de, EdgeRing er);
@@ -133,7 +136,9 @@
DirectedEdge de = start;
boolean isFirstEdge = true;
do {
- Assert.isTrue(de != null, "found null Directed Edge");
+// Assert.isTrue(de != null, "found null Directed Edge");
+ if (de == null)
+ throw new TopologyException("Found null DirectedEdge");
if (de.getEdgeRing() == this)
throw new TopologyException("Directed Edge visited twice during ring-building at " + de.getCoordinate());
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/GeometryGraph.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/GeometryGraph.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/GeometryGraph.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -36,7 +36,7 @@
package com.vividsolutions.jts.geomgraph;
import java.util.*;
-import com.vividsolutions.jts.algorithm.LineIntersector;
+import com.vividsolutions.jts.algorithm.*;
import com.vividsolutions.jts.geom.*;
import com.vividsolutions.jts.geomgraph.index.*;
import com.vividsolutions.jts.util.*;
@@ -60,6 +60,7 @@
* the "At Most One Rule":
* isInBoundary = (componentCount == 1)
*/
+/*
public static boolean isInBoundary(int boundaryCount)
{
// the "Mod-2 Rule"
@@ -69,11 +70,16 @@
{
return isInBoundary(boundaryCount) ? Location.BOUNDARY : Location.INTERIOR;
}
+*/
+ public static int determineBoundary(BoundaryNodeRule boundaryNodeRule, int boundaryCount)
+ {
+ return boundaryNodeRule.isInBoundary(boundaryCount)
+ ? Location.BOUNDARY : Location.INTERIOR;
+ }
+
private Geometry parentGeom;
- // the precision model of the Geometry represented by this graph
- //private PrecisionModel precisionModel = null;
- //private int SRID;
+
/**
* The lineEdgeMap is a map of the linestring components of the
* parentGeometry to the edges which are derived from them.
@@ -81,12 +87,13 @@
*/
private Map lineEdgeMap = new HashMap();
- //private PrecisionModel newPM = null;
+ private BoundaryNodeRule boundaryNodeRule = null;
+
/**
* If this flag is true, the Boundary Determination Rule will used when deciding
* whether nodes are in the boundary or not
*/
- private boolean useBoundaryDeterminationRule = false;
+ private boolean useBoundaryDeterminationRule = true;
private int argIndex; // the index of this geometry as an argument to a spatial function (used for labelling)
private Collection boundaryNodes;
private boolean hasTooFewPoints = false;
@@ -106,9 +113,17 @@
return new SimpleMCSweepLineIntersector();
}
- public GeometryGraph(int argIndex, Geometry parentGeom) {
+ public GeometryGraph(int argIndex, Geometry parentGeom)
+ {
+ this(argIndex, parentGeom,
+ BoundaryNodeRule.OGC_SFS_BOUNDARY_RULE
+ );
+ }
+
+ public GeometryGraph(int argIndex, Geometry parentGeom, BoundaryNodeRule boundaryNodeRule) {
this.argIndex = argIndex;
this.parentGeom = parentGeom;
+ this.boundaryNodeRule = boundaryNodeRule;
if (parentGeom != null) {
// precisionModel = parentGeom.getPrecisionModel();
// SRID = parentGeom.getSRID();
@@ -133,10 +148,13 @@
// public int getSRID() { return SRID; }
public boolean hasTooFewPoints() { return hasTooFewPoints; }
+
public Coordinate getInvalidPoint() { return invalidPoint; }
public Geometry getGeometry() { return parentGeom; }
+ public BoundaryNodeRule getBoundaryNodeRule() { return boundaryNodeRule; }
+
public Collection getBoundaryNodes()
{
if (boundaryNodes == null)
@@ -174,9 +192,8 @@
// check if this Geometry should obey the Boundary Determination Rule
// all collections except MultiPolygons obey the rule
- if (g instanceof GeometryCollection
- && ! (g instanceof MultiPolygon))
- useBoundaryDeterminationRule = true;
+ if (g instanceof MultiPolygon)
+ useBoundaryDeterminationRule = false;
if (g instanceof Polygon) addPolygon((Polygon) g);
// LineString also handles LinearRings
@@ -364,10 +381,9 @@
}
/**
- * Adds points using the mod-2 rule of SFS. This is used to add the boundary
- * points of dim-1 geometries (Curves/MultiCurves). According to the SFS,
- * an endpoint of a Curve is on the boundary
- * iff if it is in the boundaries of an odd number of Geometries
+ * Adds candidate boundary points using the current {@link BoundaryNodeRule}.
+ * This is used to add the boundary
+ * points of dim-1 geometries (Curves/MultiCurves).
*/
private void insertBoundaryPoint(int argIndex, Coordinate coord)
{
@@ -381,7 +397,7 @@
if (loc == Location.BOUNDARY) boundaryCount++;
// determine the boundary status of the point according to the Boundary Determination Rule
- int newLoc = determineBoundary(boundaryCount);
+ int newLoc = determineBoundary(boundaryNodeRule, boundaryCount);
lbl.setLocation(argIndex, newLoc);
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/Node.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/Node.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/Node.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -129,6 +129,7 @@
else
label.setLocation(argIndex, onLocation);
}
+
/**
* Updates the label of a node to BOUNDARY,
* obeying the mod-2 boundaryDetermination rule.
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/PlanarGraph.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/PlanarGraph.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/geomgraph/PlanarGraph.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -1,6 +1,3 @@
-
-
-
/*
* The JTS Topology Suite is a collection of Java classes that
* implement the fundamental operations required to validate a given
@@ -63,10 +60,10 @@
*
* @version 1.7
*/
-public class PlanarGraph {
+public class PlanarGraph
+{
public static final CGAlgorithms cga = new CGAlgorithms();
- //public static final LineIntersector li = new RobustLineIntersector();
/**
* For nodes in the Collection, link the DirectedEdges at the node that are in the result.
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/Bintree.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/Bintree.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/Bintree.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -37,6 +37,7 @@
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
+
/**
* An <code>BinTree</code> (or "Binary Interval Tree")
* is a 1-dimensional version of a quadtree.
@@ -49,6 +50,14 @@
* items beforehand. It will automatically expand to accomodate any extent
* of dataset.
* <p>
+ * The bintree structure is used to provide a primary filter
+ * for interval queries. The query() method returns a list of
+ * all objects which <i>may</i> intersect the query interval.
+ * Note that it may return objects which do not in fact intersect.
+ * A secondary filter is required to test for exact intersection.
+ * Of course, this secondary filter may consist of other tests besides
+ * intersection, such as testing other kinds of spatial relationships.
+ * <p>
* This index is different to the Interval Tree of Edelsbrunner
* or the Segment Tree of Bentley.
*
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/Interval.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/Interval.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/Interval.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -97,4 +97,9 @@
{
return (p >= this.min && p <= this.max);
}
+
+ public String toString()
+ {
+ return "[" + min + ", " + max + "]";
+ }
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/Node.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/Node.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/Node.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -77,6 +77,8 @@
protected boolean isSearchMatch(Interval itemInterval)
{
+// System.out.println(itemInterval + " overlaps " + interval + " : "
+// + itemInterval.overlaps(interval));
return itemInterval.overlaps(interval);
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/NodeBase.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/NodeBase.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/bintree/NodeBase.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -92,6 +92,7 @@
if (! isSearchMatch(interval))
return items;
+ // some of these may not actually overlap - this is allowed by the bintree contract
resultItems.addAll(items);
for (int i = 0; i < 2; i++) {
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/quadtree/Root.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/quadtree/Root.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/quadtree/Root.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -102,7 +102,7 @@
* the smallest existing quad containing the query
*/
boolean isZeroX = IntervalSize.isZeroWidth(itemEnv.getMinX(), itemEnv.getMaxX());
- boolean isZeroY = IntervalSize.isZeroWidth(itemEnv.getMinX(), itemEnv.getMaxX());
+ boolean isZeroY = IntervalSize.isZeroWidth(itemEnv.getMinY(), itemEnv.getMaxY());
NodeBase node;
if (isZeroX || isZeroY)
node = tree.find(itemEnv);
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/strtree/AbstractSTRtree.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/strtree/AbstractSTRtree.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/index/strtree/AbstractSTRtree.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -280,7 +280,8 @@
}
/**
- * Also builds the tree, if necessary.
+ * Removes an item from the tree.
+ * (Builds the tree, if necessary.)
*/
protected boolean remove(Object searchBounds, Object item) {
if (!built) { build(); }
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKBReader.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKBReader.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKBReader.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -40,6 +40,9 @@
* Supports use of an {@link InStream}, which allows easy use
* with arbitary byte stream sources.
* <p>
+ * This class reads the format describe in {@link WKBWriter}. It also partiually handles
+ * the Extended WKB format used by PostGIS (by reading SRID values)
+ * <p>
* This class is designed to support reuse of a single instance to read multiple
* geometries. This class is not thread-safe; each thread should create its own
* instance.
@@ -48,6 +51,37 @@
*/
public class WKBReader
{
+ /**
+ * Converts a hexadecimal string to a byte array.
+ *
+ * @param hex a string containing hex digits
+ */
+ public static byte[] hexToBytes(String hex)
+ {
+ int byteLen = hex.length() / 2;
+ byte[] bytes = new byte[byteLen];
+
+ for (int i = 0; i < hex.length() / 2; i++) {
+ int i2 = 2 * i;
+ if (i2 + 1 > hex.length())
+ throw new IllegalArgumentException("Hex string has odd length");
+
+ int nib1 = hexToInt(hex.charAt(i2));
+ int nib0 = hexToInt(hex.charAt(i2 + 1));
+ byte b = (byte) ((nib1 << 4) + (byte) nib0);
+ bytes[i] = b;
+ }
+ return bytes;
+ }
+
+ private static int hexToInt(char hex)
+ {
+ int nib = Character.digit(hex, 16);
+ if (nib < 0)
+ throw new IllegalArgumentException("Invalid hex digit");
+ return nib;
+ }
+
private static final String INVALID_GEOM_TYPE_MSG
= "Invalid geometry type encountered in ";
@@ -55,6 +89,8 @@
private PrecisionModel precisionModel;
// default dimension - will be set on read
private int inputDimension = 2;
+ private boolean hasSRID = false;
+ private int SRID = 0;
private ByteOrderDataInStream dis = new ByteOrderDataInStream();
private double[] ordValues;
@@ -72,13 +108,18 @@
*
* @param bytes the byte array to read from
* @return the geometry read
- * @throws IOException if an input exception occurs
* @throws ParseException if a parse exception occurs
*/
- public Geometry read(byte[] bytes) throws IOException, ParseException
+ public Geometry read(byte[] bytes) throws ParseException
{
// possibly reuse the ByteArrayInStream?
- return read(new ByteArrayInStream(bytes));
+ // don't throw IOExceptions, since we are not doing any I/O
+ try {
+ return read(new ByteArrayInStream(bytes));
+ }
+ catch (IOException ex) {
+ throw new RuntimeException("Unexpected IOException caught: " + ex.getMessage());
+ }
}
/**
@@ -93,9 +134,9 @@
throws IOException, ParseException
{
dis.setInStream(is);
-
-
- return readGeometry();
+ Geometry g = readGeometry();
+ setSRID(g);
+ return g;
}
private Geometry readGeometry()
@@ -109,9 +150,16 @@
int typeInt = dis.readInt();
int geometryType = typeInt & 0xff;
+ // determine if Z values are present
boolean hasZ = (typeInt & 0x80000000) != 0;
inputDimension = hasZ ? 3 : 2;
+ // determine if SRIDs are present
+ hasSRID = (typeInt & 0x20000000) != 0;
+ if (hasSRID) {
+ SRID = dis.readInt();
+ }
+
// only allocate ordValues buffer if necessary
if (ordValues == null || ordValues.length < inputDimension)
ordValues = new double[inputDimension];
@@ -136,6 +184,19 @@
//return null;
}
+ /**
+ * Sets the SRID, if it was specified in the WKB
+ *
+ * @param g the geometry to update
+ * @return the geometry with an updated SRID value, if required
+ */
+ private Geometry setSRID(Geometry g)
+ {
+ if (SRID != 0)
+ g.setSRID(SRID);
+ return g;
+ }
+
private Point readPoint() throws IOException
{
CoordinateSequence pts = readCoordinateSequence(1);
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKBWriter.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKBWriter.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKBWriter.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -59,7 +59,27 @@
*/
public class WKBWriter
{
- private int outputDimension;
+ public static String bytesToHex(byte[] bytes)
+ {
+ StringBuffer buf = new StringBuffer();
+ for (int i = 0; i < bytes.length; i++) {
+ byte b = bytes[i];
+ buf.append(toHexDigit((b >> 4) & 0x0F));
+ buf.append(toHexDigit(b & 0x0F));
+ }
+ return buf.toString();
+ }
+
+ private static char toHexDigit(int n)
+ {
+ if (n < 0 || n > 15)
+ throw new IllegalArgumentException("Nibble value out of range: " + n);
+ if (n <= 9)
+ return (char) ('0' + n);
+ return (char) ('A' + (n - 10));
+ }
+
+ private int outputDimension = 2;
private int byteOrder;
private ByteArrayOutputStream byteArrayOS = new ByteArrayOutputStream();
private OutStream byteArrayOutStream = new OutputStreamOutStream(byteArrayOS);
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKTReader.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKTReader.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKTReader.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -406,7 +406,16 @@
*@throws IOException if an I/O error occurs
*/
private Geometry readGeometryTaggedText() throws IOException, ParseException {
- String type = getNextWord();
+ String type = null;
+
+ try{
+ type = getNextWord();
+ }catch(IOException e){
+ return null;
+ }catch(ParseException e){
+ return null;
+ }
+
if (type.equals("POINT")) {
return readPointText();
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKTWriter.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKTWriter.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/io/WKTWriter.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -145,15 +145,74 @@
return buf.toString();
}
+ private int outputDimension = 2;
private DecimalFormat formatter;
private boolean isFormatted = false;
+ private boolean useFormatting = false;
private int level = 0;
+ private int coordsPerLine = -1;
+ private String indentTabStr = " ";
+ /**
+ * Creates a new WKTWriter with default settings
+ */
public WKTWriter()
{
}
/**
+ * Creates a writer that writes {@link Geometry}s with
+ * the given output dimension (2 or 3).
+ * If the specified output dimension is 3, the Z value
+ * of coordinates will be written if it is present
+ * (i.e. if it is not <code>Double.NaN</code>).
+ *
+ * @param outputDimension the coordinate dimension to output (2 or 3)
+ */
+ public WKTWriter(int outputDimension) {
+ this.outputDimension = outputDimension;
+
+ if (outputDimension < 2 || outputDimension > 3)
+ throw new IllegalArgumentException("Invalid output dimension (must be 2 or 3)");
+ }
+
+ /**
+ * Sets whether the output will be formatted.
+ *
+ * @param isFormatted true if the output is to be formatted
+ */
+ public void setFormatted(boolean isFormatted)
+ {
+ this.isFormatted = isFormatted;
+ }
+
+ /**
+ * Sets the maximum number of coordinates per line
+ * written in formatted output.
+ * If the provided coordinate number is <= 0,
+ * coordinates will be written all on one line.
+ *
+ * @param coordsPerLine the number of coordinates per line to output.
+ */
+ public void setMaxCoordinatesPerLine(int coordsPerLine)
+ {
+ this.coordsPerLine = coordsPerLine;
+ }
+
+ /**
+ * Sets the tab size to use for indenting.
+ *
+ * @param size the number of spaces to use as the tab string
+ * @throws IllegalArgumentException if the size is non-positive
+ */
+ public void setTab(int size)
+ {
+ if(size <= 0)
+ throw new IllegalArgumentException("Tab count must be positive");
+ this.indentTabStr = stringOfChar(' ', size);
+ }
+
+ /**
* Converts a <code>Geometry</code> to its Well-known Text representation.
*
*@param geometry a <code>Geometry</code> to process
@@ -164,7 +223,7 @@
{
Writer sw = new StringWriter();
try {
- writeFormatted(geometry, false, sw);
+ writeFormatted(geometry, isFormatted, sw);
}
catch (IOException ex) {
Assert.shouldNeverReachHere();
@@ -224,10 +283,10 @@
*@return a <Geometry Tagged Text> string (see the OpenGIS Simple
* Features Specification)
*/
- private void writeFormatted(Geometry geometry, boolean isFormatted, Writer writer)
+ private void writeFormatted(Geometry geometry, boolean useFormatting, Writer writer)
throws IOException
{
- this.isFormatted = isFormatted;
+ this.useFormatting = useFormatting;
formatter = createFormatter(geometry.getPrecisionModel());
appendGeometryTaggedText(geometry, 0, writer);
}
@@ -417,21 +476,28 @@
}
/**
- * Appends the i'th coordinate from the sequence to the writer
+ * Appends the i'th coordinate from the sequence to the writer
*
- *@param seq the <code>CoordinateSequence</code> to process
- * @param i the index of the coordinate to write
- *@param writer the output writer to append to
+ * @param seq the <code>CoordinateSequence</code> to process
+ * @param i the index of the coordinate to write
+ * @param writer the output writer to append to
*/
private void appendCoordinate(CoordinateSequence seq, int i, Writer writer)
- throws IOException
+ throws IOException
{
writer.write(writeNumber(seq.getX(i)) + " " + writeNumber(seq.getY(i)));
+ if (outputDimension >= 3 && seq.getDimension() >= 3) {
+ double z = seq.getOrdinate(i, 3);
+ if (! Double.isNaN(z)) {
+ writer.write(" ");
+ writer.write(writeNumber(z));
+ }
+ }
}
/**
- * Converts a <code>Coordinate</code> to <Point> format, then appends
- * it to the writer.
+ * Converts a <code>Coordinate</code> to <code><Point></code> format,
+ * then appends it to the writer.
*
*@param coordinate the <code>Coordinate</code> to process
*@param writer the output writer to append to
@@ -440,6 +506,10 @@
throws IOException
{
writer.write(writeNumber(coordinate.x) + " " + writeNumber(coordinate.y));
+ if (outputDimension >= 3 && ! Double.isNaN(coordinate.z)) {
+ writer.write(" ");
+ writer.write(writeNumber(coordinate.z));
+ }
}
/**
@@ -473,7 +543,10 @@
for (int i = 0; i < seq.size(); i++) {
if (i > 0) {
writer.write(", ");
- if (i % 10 == 0) indent(level + 2, writer);
+ if (coordsPerLine > 0
+ && i % coordsPerLine == 0) {
+ indent(level + 1, writer);
+ }
}
appendCoordinate(seq, i, writer);
}
@@ -500,7 +573,10 @@
for (int i = 0; i < lineString.getNumPoints(); i++) {
if (i > 0) {
writer.write(", ");
- if (i % 10 == 0) indent(level + 2, writer);
+ if (coordsPerLine > 0
+ && i % coordsPerLine == 0) {
+ indent(level + 1, writer);
+ }
}
appendCoordinate(lineString.getCoordinateN(i), writer);
}
@@ -551,9 +627,10 @@
for (int i = 0; i < multiPoint.getNumGeometries(); i++) {
if (i > 0) {
writer.write(", ");
+ indentCoords(i, level + 1, writer);
}
appendCoordinate(((Point) multiPoint.getGeometryN(i)).getCoordinate(), writer);
- }
+ }
writer.write(")");
}
}
@@ -645,12 +722,24 @@
}
}
+ private void indentCoords(int coordIndex, int level, Writer writer)
+ throws IOException
+ {
+ if (coordsPerLine <= 0
+ || coordIndex % coordsPerLine != 0)
+ return;
+ indent(level, writer);
+ }
+
private void indent(int level, Writer writer)
throws IOException
{
- if (! isFormatted || level <= 0) return;
+ if (! useFormatting || level <= 0)
+ return;
writer.write("\n");
- writer.write(stringOfChar(' ', INDENT * level));
+ for (int i = 0; i < level; i++) {
+ writer.write(indentTabStr);
+ }
}
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/FastNodingValidator.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/FastNodingValidator.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/FastNodingValidator.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,137 @@
+
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.noding;
+
+import java.util.*;
+import com.vividsolutions.jts.algorithm.*;
+import com.vividsolutions.jts.geom.*;
+import com.vividsolutions.jts.util.*;
+import com.vividsolutions.jts.io.*;
+
+/**
+ * Validates that a collection of {@link SegmentString}s is correctly noded.
+ * Indexing is used to improve performance.
+ * This class assumes that at least one round of noding has already been performed
+ * (which may still leave intersections, due to rounding issues).
+ * Does NOT check a-b-a collapse situations.
+ * Also does not check for endpt-interior vertex intersections.
+ * This should not be a problem, since the noders should be
+ * able to compute intersections between vertices correctly.
+ * User may either test the valid condition, or request that a
+ * {@link TopologyException}
+ * be thrown.
+ *
+ * @version 1.7
+ */
+public class FastNodingValidator
+{
+ private LineIntersector li = new RobustLineIntersector();
+
+ private Collection segStrings;
+ private InteriorIntersectionFinder segInt = null;
+ private boolean isValid = true;
+
+ public FastNodingValidator(Collection segStrings)
+ {
+ this.segStrings = segStrings;
+ }
+
+ /**
+ * Checks for an intersection and
+ * reports if one is found.
+ *
+ * @return true if the arrangement contains an interior intersection
+ */
+ public boolean isValid()
+ {
+ execute();
+ return isValid;
+ }
+
+ /**
+ * Returns an error message indicating the segments containing
+ * the intersection.
+ *
+ * @return an error message documenting the intersection location
+ */
+ public String getErrorMessage()
+ {
+ if (isValid) return "no intersections found";
+
+ Coordinate[] intSegs = segInt.getIntersectionSegments();
+ return "found non-noded intersection between "
+ + WKTWriter.toLineString(intSegs[0], intSegs[1])
+ + " and "
+ + WKTWriter.toLineString(intSegs[2], intSegs[3]);
+ }
+
+ /**
+ * Checks for an intersection and throws
+ * a TopologyException if one is found.
+ *
+ * @throws TopologyException if an intersection is found
+ */
+ public void checkValid()
+ {
+ execute();
+ if (! isValid)
+ throw new TopologyException(getErrorMessage(), segInt.getInteriorIntersection());
+ }
+
+ private void execute()
+ {
+ if (segInt != null)
+ return;
+ checkInteriorIntersections();
+ }
+
+ private void checkInteriorIntersections()
+ {
+ /**
+ * MD - It may even be reliable to simply check whether
+ * end segments (of SegmentStrings) have an interior intersection,
+ * since noding should have split any true interior intersections already.
+ */
+ isValid = true;
+ segInt = new InteriorIntersectionFinder(li);
+ MCIndexNoder noder = new MCIndexNoder();
+ noder.setSegmentIntersector(segInt);
+ noder.computeNodes(segStrings);
+ if (segInt.hasIntersection()) {
+ isValid = false;
+ return;
+ }
+ }
+
+}
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/InteriorIntersectionFinder.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/InteriorIntersectionFinder.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/InteriorIntersectionFinder.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,148 @@
+package com.vividsolutions.jts.noding;
+
+import com.vividsolutions.jts.geom.*;
+import com.vividsolutions.jts.algorithm.LineIntersector;
+//import com.vividsolutions.jts.util.Debug;
+
+/**
+ * Finds an interior intersection in a set of {@link SegmentString}s,
+ * if one exists. Only the first intersection found is reported.
+ *
+ * @version 1.7
+ */
+public class InteriorIntersectionFinder
+ implements SegmentIntersector
+{
+ private boolean isCheckEndSegmentsOnly = false;
+ private LineIntersector li;
+ private Coordinate interiorIntersection = null;
+ private Coordinate[] intSegments = null;
+
+ /**
+ * Creates an intersection finder which finds an interior intersection
+ * if one exists
+ *
+ * @param li the LineIntersector to use
+ */
+ public InteriorIntersectionFinder(LineIntersector li)
+ {
+ this.li = li;
+ interiorIntersection = null;
+ }
+
+ /**
+ * Sets whether only end segments should be tested for interior intersection.
+ * This is a performance optimization that may be used if
+ * the segments have been previously noded by an appropriate algorithm.
+ * It may be known that any potential noding failures will occur only in
+ * end segments.
+ *
+ * @param isCheckEndSegmentsOnly whether to test only end segments
+ */
+ public void setCheckEndSegmentsOnly(boolean isCheckEndSegmentsOnly)
+ {
+ this.isCheckEndSegmentsOnly = isCheckEndSegmentsOnly;
+ }
+
+ /**
+ * Tests whether an intersection was found.
+ *
+ * @return true if an intersection was found
+ */
+ public boolean hasIntersection()
+ {
+ return interiorIntersection != null;
+ }
+
+ /**
+ * Gets the computed location of the intersection.
+ * Due to round-off, the location may not be exact.
+ *
+ * @return the coordinate for the intersection location
+ */
+ public Coordinate getInteriorIntersection()
+ {
+ return interiorIntersection;
+ }
+
+ /**
+ * Gets the endpoints of the intersecting segments.
+ *
+ * @return an array of the segment endpoints (p00, p01, p10, p11)
+ */
+ public Coordinate[] getIntersectionSegments()
+ {
+ return intSegments;
+ }
+
+ /**
+ * This method is called by clients
+ * of the {@link SegmentIntersector} class to process
+ * intersections for two segments of the {@link SegmentStrings} being intersected.
+ * Note that some clients (such as {@link MonotoneChain}s) may optimize away
+ * this call for segment pairs which they have determined do not intersect
+ * (e.g. by an disjoint envelope test).
+ */
+ public void processIntersections(
+ SegmentString e0, int segIndex0,
+ SegmentString e1, int segIndex1
+ )
+ {
+ // short-circuit if intersection already found
+ if (hasIntersection())
+ return;
+
+ // don't bother intersecting a segment with itself
+ if (e0 == e1 && segIndex0 == segIndex1) return;
+
+ /**
+ * If enabled, only test end segments (on either segString).
+ *
+ */
+ if (isCheckEndSegmentsOnly) {
+ boolean isEndSegPresent = isEndSegment(e0, segIndex0) || isEndSegment(e1, segIndex1);
+ if (! isEndSegPresent)
+ return;
+ }
+
+ Coordinate p00 = e0.getCoordinates()[segIndex0];
+ Coordinate p01 = e0.getCoordinates()[segIndex0 + 1];
+ Coordinate p10 = e1.getCoordinates()[segIndex1];
+ Coordinate p11 = e1.getCoordinates()[segIndex1 + 1];
+
+ li.computeIntersection(p00, p01, p10, p11);
+//if (li.hasIntersection() && li.isProper()) Debug.println(li);
+
+ if (li.hasIntersection()) {
+ if (li.isInteriorIntersection()) {
+ intSegments = new Coordinate[4];
+ intSegments[0] = p00;
+ intSegments[1] = p01;
+ intSegments[2] = p10;
+ intSegments[3] = p11;
+
+ interiorIntersection = li.getIntersection(0);
+ }
+ }
+ }
+
+ /**
+ * Tests whether a segment in a {@link SegmentString} is an end segment.
+ * (either the first or last).
+ *
+ * @param segStr a segment string
+ * @param index the index of a segment in the segment string
+ * @return true if the segment is an end segment
+ */
+ private boolean isEndSegment(SegmentString segStr, int index)
+ {
+ if (index == 0) return true;
+ if (index >= segStr.size() - 2) return true;
+ return false;
+ }
+
+ public boolean isDone()
+ {
+ return interiorIntersection != null;
+ }
+}
\ No newline at end of file
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/IntersectionAdder.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/IntersectionAdder.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/IntersectionAdder.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -180,4 +180,11 @@
}
}
}
+
+ /**
+ * Always process all intersections
+ *
+ * @return false always
+ */
+ public boolean isDone() { return false; }
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/IntersectionFinderAdder.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/IntersectionFinderAdder.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/IntersectionFinderAdder.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -65,4 +65,12 @@
}
}
}
+
+ /**
+ * Always process all intersections
+ *
+ * @return false always
+ */
+ public boolean isDone() { return false; }
+
}
\ No newline at end of file
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/NodingValidator.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/NodingValidator.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/NodingValidator.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -50,11 +50,24 @@
private Collection segStrings;
+ /**
+ * Creates a new validator for the given collection
+ * of {@link SegmentString}s.
+ *
+ * @param segStrings a collection of SegmentStrings
+ */
public NodingValidator(Collection segStrings)
{
this.segStrings = segStrings;
}
+ /**
+ * Checks whether the supplied segment strings
+ * are correctly noded. Throws an exception if they are not.
+ *
+ * @throws RuntimeException if the SegmentStrings are not correctly noded
+ *
+ */
public void checkValid()
{
checkEndPtVertexIntersections();
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/ScaledNoder.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/ScaledNoder.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/noding/ScaledNoder.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -68,11 +68,12 @@
Coordinate[] roundPts = new Coordinate[pts.length];
for (int i = 0; i < pts.length; i++) {
roundPts[i] = new Coordinate(
- Math.round((pts[i].x - offsetX) * scaleFactor),
- Math.round((pts[i].y - offsetY) * scaleFactor)
+ Math.round((pts[i].x - offsetX) * scaleFactor),
+ Math.round((pts[i].y - offsetY) * scaleFactor)
);
}
- return roundPts;
+ Coordinate[] roundPtsNoDup = CoordinateArrays.removeRepeatedPoints(roundPts);
+ return roundPtsNoDup;
}
//private double scale(double val) { return (double) Math.round(val * scaleFactor); }
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/BoundaryOp.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/BoundaryOp.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/BoundaryOp.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,179 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.operation;
+
+import java.util.*;
+import com.vividsolutions.jts.algorithm.BoundaryNodeRule;
+import com.vividsolutions.jts.geom.*;
+import com.vividsolutions.jts.geomgraph.GeometryGraph;
+
+/**
+ * Computes the boundary of a {@link Geometry}.
+ * Allows specifying the {@link BoundaryNodeRule} to be used.
+ * This operation will always return a {@link Geometry} of the appropriate
+ * dimension for the boundary (even if the input geometry is empty).
+ * The boundary of zero-dimensional geometries (Points) is
+ * always the empty {@link GeometryCollection}.
+ *
+ * @author Martin Davis
+ * @version 1.7
+ */
+
+public class BoundaryOp
+{
+ private Geometry geom;
+ private GeometryFactory geomFact;
+ private BoundaryNodeRule bnRule;
+
+ public BoundaryOp(Geometry geom)
+ {
+ this(geom, BoundaryNodeRule.MOD2_BOUNDARY_RULE);
+ }
+
+ public BoundaryOp(Geometry geom, BoundaryNodeRule bnRule)
+ {
+ this.geom = geom;
+ geomFact = geom.getFactory();
+ this.bnRule = bnRule;
+ }
+
+ public Geometry getBoundary()
+ {
+ if (geom instanceof LineString) return boundaryLineString((LineString) geom);
+ if (geom instanceof MultiLineString) return boundaryMultiLineString((MultiLineString) geom);
+ return geom.getBoundary();
+ }
+
+ private MultiPoint getEmptyMultiPoint()
+ {
+ return geomFact.createMultiPoint((CoordinateSequence) null);
+ }
+
+ private Geometry boundaryMultiLineString(MultiLineString mLine)
+ {
+ if (geom.isEmpty()) {
+ return getEmptyMultiPoint();
+ }
+
+ Coordinate[] bdyPts = computeBoundaryCoordinates(mLine);
+
+ // return Point or MultiPoint
+ if (bdyPts.length == 1) {
+ return geomFact.createPoint(bdyPts[0]);
+ }
+ // this handles 0 points case as well
+ return geomFact.createMultiPoint(bdyPts);
+ }
+
+/*
+// MD - superseded
+ private Coordinate[] computeBoundaryFromGeometryGraph(MultiLineString mLine)
+ {
+ GeometryGraph g = new GeometryGraph(0, mLine, bnRule);
+ Coordinate[] bdyPts = g.getBoundaryPoints();
+ return bdyPts;
+ }
+*/
+
+ private Map endpointMap;
+
+ private Coordinate[] computeBoundaryCoordinates(MultiLineString mLine)
+ {
+ List bdyPts = new ArrayList();
+ endpointMap = new TreeMap();
+ for (int i = 0; i < mLine.getNumGeometries(); i++) {
+ LineString line = (LineString) mLine.getGeometryN(i);
+ if (line.getNumPoints() == 0)
+ continue;
+ addEndpoint(line.getCoordinateN(0));
+ addEndpoint(line.getCoordinateN(line.getNumPoints() - 1));
+ }
+
+ for (Iterator it = endpointMap.entrySet().iterator(); it.hasNext(); ) {
+ Map.Entry entry = (Map.Entry) it.next();
+ Counter counter = (Counter) entry.getValue();
+ int valence = counter.count;
+ if (bnRule.isInBoundary(valence)) {
+ bdyPts.add(entry.getKey());
+ }
+ }
+
+ return CoordinateArrays.toCoordinateArray(bdyPts);
+ }
+
+ private void addEndpoint(Coordinate pt)
+ {
+ Counter counter = (Counter) endpointMap.get(pt);
+ if (counter == null) {
+ counter = new Counter();
+ endpointMap.put(pt, counter);
+ }
+ counter.count++;
+ }
+
+ private Geometry boundaryLineString(LineString line)
+ {
+ if (geom.isEmpty()) {
+ return getEmptyMultiPoint();
+ }
+
+ if (line.isClosed()) {
+ // check whether endpoints of valence 2 are on the boundary or not
+ boolean closedEndpointOnBoundary = bnRule.isInBoundary(2);
+ if (closedEndpointOnBoundary) {
+ return line.getStartPoint();
+ }
+ else {
+ return geomFact.createMultiPoint((Coordinate[]) null);
+ }
+ }
+ return geomFact.createMultiPoint(new Point[]{
+ line.getStartPoint(),
+ line.getEndPoint()
+ });
+ }
+}
+
+/**
+ * Stores an integer count, for use as a Map entry.
+ *
+ * @author Martin Davis
+ * @version 1.7
+ */
+class Counter
+{
+ /**
+ * The value of the count
+ */
+ int count;
+}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/GeometryGraphOperation.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/GeometryGraphOperation.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/GeometryGraphOperation.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -42,7 +42,7 @@
import com.vividsolutions.jts.geomgraph.GeometryGraph;
/**
- * The base class for operations that require {@link GeometryGraph)s.
+ * The base class for operations that require {@link GeometryGraph}s.
*
* @version 1.7
*/
@@ -51,6 +51,7 @@
protected final CGAlgorithms cga = new CGAlgorithms();
protected final LineIntersector li = new RobustLineIntersector();
protected PrecisionModel resultPrecisionModel;
+
/**
* The operation args into an array so they can be accessed by index
*/
@@ -58,6 +59,14 @@
public GeometryGraphOperation(Geometry g0, Geometry g1)
{
+ this(g0, g1,
+ BoundaryNodeRule.OGC_SFS_BOUNDARY_RULE
+// BoundaryNodeRule.ENDPOINT_BOUNDARY_RULE
+ );
+ }
+
+ public GeometryGraphOperation(Geometry g0, Geometry g1, BoundaryNodeRule boundaryNodeRule)
+ {
// use the most precise model for the result
if (g0.getPrecisionModel().compareTo(g1.getPrecisionModel()) >= 0)
setComputationPrecision(g0.getPrecisionModel());
@@ -65,9 +74,10 @@
setComputationPrecision(g1.getPrecisionModel());
arg = new GeometryGraph[2];
- arg[0] = new GeometryGraph(0, g0);
- arg[1] = new GeometryGraph(1, g1);
+ arg[0] = new GeometryGraph(0, g0, boundaryNodeRule);
+ arg[1] = new GeometryGraph(1, g1, boundaryNodeRule);
}
+
public GeometryGraphOperation(Geometry g0) {
setComputationPrecision(g0.getPrecisionModel());
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/IsSimpleOp.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/IsSimpleOp.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/IsSimpleOp.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -44,33 +44,118 @@
* Tests whether a <code>Geometry</code> is simple.
* In general, the SFS specification of simplicity
* follows the rule:
- * <UL>
- * <LI> A Geometry is simple iff the only self-intersections are at
+ * <ul>
+ * <li> A Geometry is simple if and only if the only self-intersections are at
* boundary points.
- * </UL>
+ * </ul>
+ * This definition relies on the definition of boundary points.
+ * The SFS uses the Mod-2 rule to determine which points are on the boundary of
+ * lineal geometries, but this class supports
+ * using other {@link BoundaryNodeRule}s as well.
+ * <p>
* Simplicity is defined for each {@link Geometry} subclass as follows:
* <ul>
* <li>Valid polygonal geometries are simple by definition, so
* <code>isSimple</code> trivially returns true.
+ * (Hint: in order to check if a polygonal geometry has self-intersections,
+ * use {@link Geometry#isValid}).
* <li>Linear geometries are simple iff they do not self-intersect at points
- * other than boundary points.
+ * other than boundary points.
+ * (Using the Mod-2 rule, this means that closed linestrings
+ * cannot be touched at their endpoints, since these are
+ * interior points, not boundary points).
* <li>Zero-dimensional geometries (points) are simple iff they have no
* repeated points.
* <li>Empty <code>Geometry</code>s are always simple
- * <ul>
+ * </ul>
*
+ * @see BoundaryNodeRule
+ *
* @version 1.7
*/
-public class IsSimpleOp {
+public class IsSimpleOp
+{
+ private Geometry geom;
+ private boolean isClosedEndpointsInInterior = true;
+ private Coordinate nonSimpleLocation = null;
+ /**
+ * Creates a simplicity checker using the default SFS Mod-2 Boundary Node Rule
+ *
+ * @deprecated use IsSimpleOp(Geometry)
+ */
public IsSimpleOp() {
}
+ /**
+ * Creates a simplicity checker using the default SFS Mod-2 Boundary Node Rule
+ *
+ * @param geom the geometry to test
+ */
+ public IsSimpleOp(Geometry geom) {
+ this.geom = geom;
+ }
+
+ /**
+ * Creates a simplicity checker using a given {@link BoundaryNodeRule}
+ *
+ * @param geom the geometry to test
+ * @param boundaryNodeRule the rule to use.
+ */
+ public IsSimpleOp(Geometry geom, BoundaryNodeRule boundaryNodeRule)
+ {
+ this.geom = geom;
+ isClosedEndpointsInInterior = ! boundaryNodeRule.isInBoundary(2);
+ }
+
+ /**
+ * Tests whether the geometry is simple.
+ *
+ * @return true if the geometry is simple
+ */
+ public boolean isSimple()
+ {
+ nonSimpleLocation = null;
+ if (geom instanceof LineString) return isSimpleLinearGeometry(geom);
+ if (geom instanceof MultiLineString) return isSimpleLinearGeometry(geom);
+ if (geom instanceof MultiPoint) return isSimpleMultiPoint((MultiPoint) geom);
+ // all other geometry types are simple by definition
+ return true;
+ }
+
+ /**
+ * Gets a coordinate for the location where the geometry
+ * fails to be simple.
+ * (i.e. where it has a non-boundary self-intersection).
+ * {@link #isSimple} must be called before this method is called.
+ *
+ * @return a coordinate for the location of the non-boundary self-intersection
+ * @return null if the geometry is simple
+ */
+ public Coordinate getNonSimpleLocation()
+ {
+ return nonSimpleLocation;
+ }
+
+ /**
+ * Reports whether a {@link LineString} is simple.
+ *
+ * @param geom the lineal geometry to test
+ * @return true if the geometry is simple
+ * @deprecated use isSimple()
+ */
public boolean isSimple(LineString geom)
{
return isSimpleLinearGeometry(geom);
}
+ /**
+ * Reports whether a {@link MultiLineString} geometry is simple.
+ *
+ * @param geom the lineal geometry to test
+ * @return true if the geometry is simple
+ * @deprecated use isSimple()
+ */
public boolean isSimple(MultiLineString geom)
{
return isSimpleLinearGeometry(geom);
@@ -78,16 +163,24 @@
/**
* A MultiPoint is simple iff it has no repeated points
+ * @deprecated use isSimple()
*/
public boolean isSimple(MultiPoint mp)
{
+ return isSimpleMultiPoint(mp);
+ }
+
+ private boolean isSimpleMultiPoint(MultiPoint mp)
+ {
if (mp.isEmpty()) return true;
Set points = new TreeSet();
for (int i = 0; i < mp.getNumGeometries(); i++) {
Point pt = (Point) mp.getGeometryN(i);
Coordinate p = pt.getCoordinate();
- if (points.contains(p))
+ if (points.contains(p)) {
+ nonSimpleLocation = p;
return false;
+ }
points.add(p);
}
return true;
@@ -101,9 +194,14 @@
SegmentIntersector si = graph.computeSelfNodes(li, true);
// if no self-intersection, must be simple
if (! si.hasIntersection()) return true;
- if (si.hasProperIntersection()) return false;
+ if (si.hasProperIntersection()) {
+ nonSimpleLocation = si.getProperIntersectionPoint();
+ return false;
+ }
if (hasNonEndpointIntersection(graph)) return false;
- if (hasClosedEndpointIntersection(graph)) return false;
+ if (isClosedEndpointsInInterior) {
+ if (hasClosedEndpointIntersection(graph)) return false;
+ }
return true;
}
@@ -118,26 +216,30 @@
int maxSegmentIndex = e.getMaximumSegmentIndex();
for (Iterator eiIt = e.getEdgeIntersectionList().iterator(); eiIt.hasNext(); ) {
EdgeIntersection ei = (EdgeIntersection) eiIt.next();
- if (! ei.isEndPoint(maxSegmentIndex))
+ if (! ei.isEndPoint(maxSegmentIndex)) {
+ nonSimpleLocation = ei.getCoordinate();
return true;
+ }
}
}
return false;
}
- class EndpointInfo {
+ private static class EndpointInfo {
Coordinate pt;
boolean isClosed;
int degree;
- EndpointInfo(Coordinate pt)
+ public EndpointInfo(Coordinate pt)
{
this.pt = pt;
isClosed = false;
degree = 0;
}
- void addEndpoint(boolean isClosed)
+ public Coordinate getCoordinate() { return pt; }
+
+ public void addEndpoint(boolean isClosed)
{
degree++;
this.isClosed |= isClosed;
@@ -145,9 +247,11 @@
}
/**
- * Test that no edge intersection is the
- * endpoint of a closed line. To check this we compute the
- * degree of each endpoint. The degree of endpoints of closed lines
+ * Tests that no edge intersection is the endpoint of a closed line.
+ * This ensures that closed lines are not touched at their endpoint,
+ * which is an interior point according to the Mod-2 rule
+ * To check this we compute the degree of each endpoint.
+ * The degree of endpoints of closed lines
* must be exactly 2.
*/
private boolean hasClosedEndpointIntersection(GeometryGraph graph)
@@ -165,8 +269,10 @@
for (Iterator i = endPoints.values().iterator(); i.hasNext(); ) {
EndpointInfo eiInfo = (EndpointInfo) i.next();
- if (eiInfo.isClosed && eiInfo.degree != 2)
+ if (eiInfo.isClosed && eiInfo.degree != 2) {
+ nonSimpleLocation = eiInfo.getCoordinate();
return true;
+ }
}
return false;
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/buffer/BufferOp.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/buffer/BufferOp.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/buffer/BufferOp.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -61,9 +61,9 @@
* The <b>end cap style</b> of a linear buffer may be specified. The
* following end cap styles are supported:
* <ul
- * <li>{@link CAP_ROUND} - the usual round end caps
- * <li>{@link CAP_BUTT} - end caps are truncated flat at the line ends
- * <li>{@link CAP_SQUARE} - end caps are squared off at the buffer distance beyond the line ends
+ * <li>{@link #CAP_ROUND} - the usual round end caps
+ * <li>{@link #CAP_BUTT} - end caps are truncated flat at the line ends
+ * <li>{@link #CAP_SQUARE} - end caps are squared off at the buffer distance beyond the line ends
* </ul>
* <p>
*
@@ -193,7 +193,7 @@
/**
* Specifies the end cap style of the generated buffer.
- * The styles supported are {@link CAP_ROUND}, {@link CAP_BUTT}, and {@link CAP_SQUARE}.
+ * The styles supported are {@link #CAP_ROUND}, {@link #CAP_BUTT}, and {@link #CAP_SQUARE}.
* The default is CAP_ROUND.
*
* @param endCapStyle the end cap style to specify
@@ -204,11 +204,9 @@
}
/**
- * Specifies the end cap style of the generated buffer.
- * The styles supported are {@link CAP_ROUND}, {@link CAP_BUTT}, and {@link CAP_SQUARE}.
- * The default is CAP_ROUND.
+ * Sets the number of segments used to approximate a angle fillet
*
- * @param endCapStyle the end cap style to specify
+ * @param quadrantSegments the number of segments in a fillet for a quadrant
*/
public void setQuadrantSegments(int quadrantSegments)
{
@@ -218,7 +216,6 @@
/**
* Returns the buffer computed for a geometry for a given buffer distance.
*
- * @param g the geometry to buffer
* @param distance the buffer distance
* @return the buffer of the input geometry
*/
@@ -229,25 +226,6 @@
return resultGeometry;
}
- /**
- * Comutes the buffer for a geometry for a given buffer distance
- * and accuracy of approximation.
- *
- * @param g the geometry to buffer
- * @param distance the buffer distance
- * @param quadrantSegments the number of segments used to approximate a quarter circle
- * @return the buffer of the input geometry
- *
- * @deprecated use setQuadrantSegments instead
- */
- public Geometry getResultGeometry(double distance, int quadrantSegments)
- {
- this.distance = distance;
- setQuadrantSegments(quadrantSegments);
- computeGeometry();
- return resultGeometry;
- }
-
private void computeGeometry()
{
bufferOriginalPrecision();
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/buffer/BufferSubgraph.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/buffer/BufferSubgraph.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/buffer/BufferSubgraph.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -47,7 +47,7 @@
/**
* A connected subset of the graph of
- * {@link DirectedEdges} and {@link Node}s.
+ * {@link DirectedEdge}s and {@link Node}s.
* Its edges will generate either
* <ul>
* <li> a single polygon in the complete buffer, with zero or more holes, or
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/buffer/OffsetCurveBuilder.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -175,10 +175,9 @@
// check that points are a ring - add the startpoint again if they are not
if (ptList.size() > 1) {
Coordinate start = (Coordinate) ptList.get(0);
- Coordinate end = (Coordinate) ptList.get(1);
+ Coordinate end = (Coordinate) ptList.get(ptList.size() - 1);
if (! start.equals(end) ) addPt(start);
}
-
Coordinate[] coord = (Coordinate[]) ptList.toArray(arrayTypeCoordinate);
return coord;
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/distance/DistanceOp.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/distance/DistanceOp.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/distance/DistanceOp.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -38,23 +38,25 @@
import com.vividsolutions.jts.algorithm.*;
/**
- * Computes the distance and
- * closest points between two {@link Geometry}s.
+ * Find two points on two {@link Geometry}s which lie
+ * within a given distance, or else are the closest points
+ * on the geometries (in which case this also
+ * provides the distance between the geometries).
* <p>
- * The distance computation finds a pair of points in the input geometries
- * which have minimum distance between them. These points may
- * not be vertices of the geometries, but may lie in the interior of
- * a line segment. In this case the coordinate computed is a close
+ * The distance computation also finds a pair of points in the input geometries
+ * which have the minimum distance between them.
+ * If a point lies in the interior of a line segment,
+ * the coordinate computed is a close
* approximation to the exact point.
* <p>
* The algorithms used are straightforward O(n^2)
* comparisons. This worst-case performance could be improved on
- * by using Voronoi techniques.
+ * by using Voronoi techniques or spatial indexes.
*
* @version 1.7
*/
-public class DistanceOp {
-
+public class DistanceOp
+{
/**
* Compute the distance between the closest points of two geometries.
* @param g0 a {@link Geometry}
@@ -68,6 +70,19 @@
}
/**
+ * Test whether two geometries lie within a given distance of each other.
+ * @param g0 a {@link Geometry}
+ * @param g1 another {@link Geometry}
+ * @param distance the distance to test
+ * @return true if g0.distance(g1) <= distance
+ */
+ public static boolean isWithinDistance(Geometry g0, Geometry g1, double distance)
+ {
+ DistanceOp distOp = new DistanceOp(g0, g1, distance);
+ return distOp.distance() <= distance;
+ }
+
+ /**
* Compute the the closest points of two geometries.
* The points are presented in the same order as the input Geometries.
*
@@ -81,20 +96,38 @@
return distOp.closestPoints();
}
+ // input
+ private Geometry[] geom;
+ private double terminateDistance = 0.0;
+ // working
private PointLocator ptLocator = new PointLocator();
- private Geometry[] geom;
private GeometryLocation[] minDistanceLocation;
private double minDistance = Double.MAX_VALUE;
/**
* Constructs a DistanceOp that computes the distance and closest points between
* the two specified geometries.
+ * @param g0 a Geometry
+ * @param g1 a Geometry
*/
public DistanceOp(Geometry g0, Geometry g1)
{
+ this(g0, g1, 0.0);
+ }
+
+ /**
+ * Constructs a DistanceOp that computes the distance and closest points between
+ * the two specified geometries.
+ * @param g0 a Geometry
+ * @param g1 a Geometry
+ * @param terminateDistance the distance on which to terminate the search
+ */
+ public DistanceOp(Geometry g0, Geometry g1, double terminateDistance)
+ {
this.geom = new Geometry[2];
geom[0] = g0;
geom[1] = g1;
+ this.terminateDistance = terminateDistance;
}
/**
@@ -163,7 +196,7 @@
minDistanceLocation = new GeometryLocation[2];
computeContainmentDistance();
- if (minDistance <= 0.0) return;
+ if (minDistance <= terminateDistance) return;
computeLineDistance();
}
@@ -177,7 +210,7 @@
if (polys1.size() > 0) {
List insideLocs0 = ConnectedElementLocationFilter.getLocations(geom[0]);
computeInside(insideLocs0, polys1, locPtPoly);
- if (minDistance <= 0.0) {
+ if (minDistance <= terminateDistance) {
minDistanceLocation[0] = locPtPoly[0];
minDistanceLocation[1] = locPtPoly[1];
return;
@@ -186,7 +219,7 @@
if (polys0.size() > 0) {
List insideLocs1 = ConnectedElementLocationFilter.getLocations(geom[1]);
computeInside(insideLocs1, polys0, locPtPoly);
- if (minDistance <= 0.0) {
+ if (minDistance <= terminateDistance) {
// flip locations, since we are testing geom 1 VS geom 0
minDistanceLocation[0] = locPtPoly[1];
minDistanceLocation[1] = locPtPoly[0];
@@ -201,7 +234,7 @@
for (int j = 0; j < polys.size(); j++) {
Polygon poly = (Polygon) polys.get(j);
computeInside(loc, poly, locPtPoly);
- if (minDistance <= 0.0) {
+ if (minDistance <= terminateDistance) {
return;
}
}
@@ -239,19 +272,19 @@
// bail whenever minDistance goes to zero, since it can't get any less
computeMinDistanceLines(lines0, lines1, locGeom);
updateMinDistance(locGeom, false);
- if (minDistance <= 0.0) return;
+ if (minDistance <= terminateDistance) return;
locGeom[0] = null;
locGeom[1] = null;
computeMinDistanceLinesPoints(lines0, pts1, locGeom);
updateMinDistance(locGeom, false);
- if (minDistance <= 0.0) return;
+ if (minDistance <= terminateDistance) return;
locGeom[0] = null;
locGeom[1] = null;
computeMinDistanceLinesPoints(lines1, pts0, locGeom);
updateMinDistance(locGeom, true);
- if (minDistance <= 0.0) return;
+ if (minDistance <= terminateDistance) return;
locGeom[0] = null;
locGeom[1] = null;
@@ -266,7 +299,7 @@
for (int j = 0; j < lines1.size(); j++) {
LineString line1 = (LineString) lines1.get(j);
computeMinDistance(line0, line1, locGeom);
- if (minDistance <= 0.0) return;
+ if (minDistance <= terminateDistance) return;
}
}
}
@@ -284,7 +317,7 @@
locGeom[0] = new GeometryLocation(pt0, 0, pt0.getCoordinate());
locGeom[1] = new GeometryLocation(pt1, 0, pt1.getCoordinate());
}
- if (minDistance <= 0.0) return;
+ if (minDistance <= terminateDistance) return;
}
}
}
@@ -297,7 +330,7 @@
for (int j = 0; j < points.size(); j++) {
Point pt = (Point) points.get(j);
computeMinDistance(line, pt, locGeom);
- if (minDistance <= 0.0) return;
+ if (minDistance <= terminateDistance) return;
}
}
}
@@ -324,7 +357,7 @@
locGeom[0] = new GeometryLocation(line0, i, closestPt[0]);
locGeom[1] = new GeometryLocation(line1, j, closestPt[1]);
}
- if (minDistance <= 0.0) return;
+ if (minDistance <= terminateDistance) return;
}
}
}
@@ -348,7 +381,7 @@
locGeom[0] = new GeometryLocation(line, i, segClosestPoint);
locGeom[1] = new GeometryLocation(pt, 0, coord);
}
- if (minDistance <= 0.0) return;
+ if (minDistance <= terminateDistance) return;
}
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/linemerge/LineSequencer.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/linemerge/LineSequencer.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/linemerge/LineSequencer.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -80,7 +80,7 @@
{
/**
* Tests whether a {@link Geometry} is sequenced correctly.
- * {@llink LineString}s are trivially sequenced.
+ * {@link LineString}s are trivially sequenced.
* {@link MultiLineString}s are checked for correct sequencing.
* Otherwise, <code>isSequenced</code> is defined
* to be <code>true</code> for geometries that are not lineal.
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/ConsistentPolygonRingChecker.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,127 @@
+package com.vividsolutions.jts.operation.overlay;
+
+import java.util.*;
+import com.vividsolutions.jts.geom.*;
+import com.vividsolutions.jts.util.*;
+import com.vividsolutions.jts.algorithm.*;
+import com.vividsolutions.jts.geomgraph.*;
+import com.vividsolutions.jts.geomgraph.index.SegmentIntersector;
+import com.vividsolutions.jts.operation.GeometryGraphOperation;
+
+/**
+ * Tests whether the polygon rings in a {@link GeometryGraph}
+ * are consistent.
+ * Used for checking if Topology errors are present after noding.
+ *
+ * @author Martin Davis
+ * @version 1.7
+ */
+public class ConsistentPolygonRingChecker
+{
+ private PlanarGraph graph;
+
+ public ConsistentPolygonRingChecker(PlanarGraph graph) {
+ this.graph = graph;
+ }
+
+ public void checkAll()
+ {
+ check(OverlayOp.INTERSECTION);
+ check(OverlayOp.DIFFERENCE);
+ check(OverlayOp.UNION);
+ check(OverlayOp.SYMDIFFERENCE);
+ }
+
+ /**
+ * Tests whether the result geometry is consistent
+ *
+ * @throws TopologyException if inconsistent topology is found
+ */
+ public void check(int opCode)
+ {
+ for (Iterator nodeit = graph.getNodeIterator(); nodeit.hasNext(); ) {
+ Node node = (Node) nodeit.next();
+ testLinkResultDirectedEdges((DirectedEdgeStar) node.getEdges(), opCode);
+ }
+ }
+
+ private List getPotentialResultAreaEdges(DirectedEdgeStar deStar, int opCode)
+ {
+//print(System.out);
+ List resultAreaEdgeList = new ArrayList();
+ for (Iterator it = deStar.iterator(); it.hasNext(); ) {
+ DirectedEdge de = (DirectedEdge) it.next();
+ if (isPotentialResultAreaEdge(de, opCode) || isPotentialResultAreaEdge(de.getSym(), opCode) )
+ resultAreaEdgeList.add(de);
+ }
+ return resultAreaEdgeList;
+ }
+
+ private boolean isPotentialResultAreaEdge(DirectedEdge de, int opCode)
+ {
+ // mark all dirEdges with the appropriate label
+ Label label = de.getLabel();
+ if (label.isArea()
+ && ! de.isInteriorAreaEdge()
+ && OverlayOp.isResultOfOp(
+ label.getLocation(0, Position.RIGHT),
+ label.getLocation(1, Position.RIGHT),
+ opCode)
+ ) {
+ return true;
+//Debug.print("in result "); Debug.println(de);
+ }
+ return false;
+ }
+
+ private final int SCANNING_FOR_INCOMING = 1;
+ private final int LINKING_TO_OUTGOING = 2;
+
+ private void testLinkResultDirectedEdges(DirectedEdgeStar deStar, int opCode)
+ {
+ // make sure edges are copied to resultAreaEdges list
+ List ringEdges = getPotentialResultAreaEdges(deStar, opCode);
+ // find first area edge (if any) to start linking at
+ DirectedEdge firstOut = null;
+ DirectedEdge incoming = null;
+ int state = SCANNING_FOR_INCOMING;
+ // link edges in CCW order
+ for (int i = 0; i < ringEdges.size(); i++) {
+ DirectedEdge nextOut = (DirectedEdge) ringEdges.get(i);
+ DirectedEdge nextIn = nextOut.getSym();
+
+ // skip de's that we're not interested in
+ if (! nextOut.getLabel().isArea()) continue;
+
+ // record first outgoing edge, in order to link the last incoming edge
+ if (firstOut == null
+ && isPotentialResultAreaEdge(nextOut, opCode))
+ firstOut = nextOut;
+ // assert: sym.isInResult() == false, since pairs of dirEdges should have been removed already
+
+ switch (state) {
+ case SCANNING_FOR_INCOMING:
+ if (! isPotentialResultAreaEdge(nextIn, opCode)) continue;
+ incoming = nextIn;
+ state = LINKING_TO_OUTGOING;
+ break;
+ case LINKING_TO_OUTGOING:
+ if (! isPotentialResultAreaEdge(nextOut, opCode)) continue;
+ //incoming.setNext(nextOut);
+ state = SCANNING_FOR_INCOMING;
+ break;
+ }
+ }
+//Debug.print(this);
+ if (state == LINKING_TO_OUTGOING) {
+//Debug.print(firstOut == null, this);
+ if (firstOut == null)
+ throw new TopologyException("no outgoing dirEdge found", deStar.getCoordinate());
+ }
+
+ }
+
+
+
+
+}
\ No newline at end of file
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/MaximalEdgeRing.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -40,8 +40,8 @@
import com.vividsolutions.jts.geomgraph.*;
/**
- * A ring of {@link edges} which may contain nodes of degree > 2.
- * A MaximalEdgeRing may represent two different spatial entities:
+ * A ring of {@link DirectedEdge}s which may contain nodes of degree > 2.
+ * A <tt>MaximalEdgeRing</tt> may represent two different spatial entities:
* <ul>
* <li>a single polygon possibly containing inversions (if the ring is oriented CW)
* <li>a single hole possibly containing exversions (if the ring is oriented CCW)
@@ -50,7 +50,7 @@
* the interior of the polygon is strongly connected.
* <p>
* These are the form of rings used to define polygons under some spatial data models.
- * However, under the OGC SFS model, {@link MinimalEdgeRings} are required.
+ * However, under the OGC SFS model, {@link MinimalEdgeRing}s are required.
* A MaximalEdgeRing can be converted to a list of MinimalEdgeRings using the
* {@link #buildMinimalRings() } method.
*
@@ -78,7 +78,7 @@
* For all nodes in this EdgeRing,
* link the DirectedEdges at the node to form minimalEdgeRings
*/
- void linkDirectedEdgesForMinimalEdgeRings()
+ public void linkDirectedEdgesForMinimalEdgeRings()
{
DirectedEdge de = startDe;
do {
@@ -88,7 +88,7 @@
} while (de != startDe);
}
- List buildMinimalRings()
+ public List buildMinimalRings()
{
List minEdgeRings = new ArrayList();
DirectedEdge de = startDe;
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/OverlayOp.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/OverlayOp.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/OverlayOp.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -39,8 +39,8 @@
import com.vividsolutions.jts.util.*;
import com.vividsolutions.jts.algorithm.*;
import com.vividsolutions.jts.geomgraph.*;
-import com.vividsolutions.jts.geomgraph.index.SegmentIntersector;
import com.vividsolutions.jts.operation.GeometryGraphOperation;
+import com.vividsolutions.jts.noding.*;
/**
* Computes the overlay of two {@link Geometry}s. The overlay
@@ -158,8 +158,8 @@
//Debug.println(edgeList);
// debugging only
- //NodingValidator nv = new NodingValidator(edgeList.getEdges());
- //nv.checkValid();
+ EdgeNodingValidator nv = new EdgeNodingValidator(edgeList.getEdges());
+ nv.checkValid();
graph.addEdges(edgeList.getEdges());
computeLabelling();
@@ -176,6 +176,7 @@
*/
findResultAreaEdges(opCode);
cancelDuplicateResultEdges();
+
PolygonBuilder polyBuilder = new PolygonBuilder(geomFact, cga);
polyBuilder.add(graph);
resultPolyList = polyBuilder.getPolygons();
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/PolygonBuilder.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/PolygonBuilder.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/PolygonBuilder.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -212,6 +212,8 @@
* properly contained (i.e. are connected to their
* parent shell) would have formed part of a MaximalEdgeRing
* and been handled in a previous step).
+ *
+ * @throws TopologyException if a hole cannot be assigned to a shell
*/
private void placeFreeHoles(List shellList, List freeHoleList)
{
@@ -220,11 +222,14 @@
// only place this hole if it doesn't yet have a shell
if (hole.getShell() == null) {
EdgeRing shell = findEdgeRingContaining(hole, shellList);
- Assert.isTrue(shell != null, "unable to assign hole to a shell");
+ if (shell == null)
+ throw new TopologyException("unable to assign hole to a shell", hole.getCoordinate(0));
+// Assert.isTrue(shell != null, "unable to assign hole to a shell");
hole.setShell(shell);
}
}
}
+
/**
* Find the innermost enclosing shell EdgeRing containing the argument EdgeRing, if any.
* The innermost enclosing ring is the <i>smallest</i> enclosing ring.
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/GeometrySnapper.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,172 @@
+package com.vividsolutions.jts.operation.overlay.snap;
+
+import java.util.*;
+import com.vividsolutions.jts.geom.*;
+import com.vividsolutions.jts.geom.util.GeometryTransformer;
+
+/**
+ * Snaps the vertices and segments of a {@link Geometry} to another Geometry's vertices.
+ * Improves robustness for overlay operations, by eliminating
+ * nearly parallel edges (which cause problems during noding and intersection calculation).
+ *
+ * @author Martin Davis
+ * @version 1.7
+ */
+public class GeometrySnapper
+{
+ private static final double SNAP_PRECISION_FACTOR = 10e-10;
+
+ /**
+ * Estimates the snap tolerance for a Geometry, taking into account its precision model.
+ *
+ * @param g a Geometry
+ * @return the estimated snap tolerance
+ */
+ public static double computeOverlaySnapTolerance(Geometry g)
+ {
+ double snapTolerance = computeSizeBasedSnapTolerance(g);
+
+ /**
+ * Overlay is carried out in most precise precision model
+ * of inputs.
+ * If this precision model is fixed, then the snap tolerance
+ * must reflect the grid size.
+ * Precisely, the snap tolerance should be at least
+ * the distance from a corner of a precision grid cell
+ * to the centre point of the cell.
+ */
+ PrecisionModel pm = g.getPrecisionModel();
+ if (pm.getType() == PrecisionModel.FIXED) {
+ double fixedSnapTol = (1 / pm.getScale()) * 2 / 1.415;
+ if (fixedSnapTol > snapTolerance)
+ snapTolerance = fixedSnapTol;
+ }
+ return snapTolerance;
+ }
+
+ public static double computeSizeBasedSnapTolerance(Geometry g)
+ {
+ Envelope env = g.getEnvelopeInternal();
+ double minDimension = Math.min(env.getHeight(), env.getWidth());
+ double snapTol = minDimension * SNAP_PRECISION_FACTOR;
+ return snapTol;
+ }
+
+ public static double computeOverlaySnapTolerance(Geometry g0, Geometry g1)
+ {
+ return Math.min(computeOverlaySnapTolerance(g0), computeOverlaySnapTolerance(g1));
+ }
+
+ /**
+ * Snaps two geometries together with a given tolerance.
+ *
+ * @param g0 a geometry to snap
+ * @param g1 a geometry to snap
+ * @param snapTolerance the tolerance to use
+ * @return the snapped geometries
+ */
+ public static Geometry[] snap(Geometry g0, Geometry g1, double snapTolerance)
+ {
+ Geometry[] snapGeom = new Geometry[2];
+ GeometrySnapper snapper0 = new GeometrySnapper(g0);
+ snapGeom[0] = snapper0.snapTo(g1, snapTolerance);
+
+ GeometrySnapper snapper1 = new GeometrySnapper(g1);
+ /**
+ * Snap the second geometry to the snapped first geometry
+ * (this strategy minimizes the number of possible different points in the result)
+ */
+ snapGeom[1] = snapper1.snapTo(snapGeom[0], snapTolerance);
+
+// System.out.println(snap[0]);
+// System.out.println(snap[1]);
+ return snapGeom;
+ }
+
+ private Geometry srcGeom;
+
+ public GeometrySnapper(Geometry g)
+ {
+ srcGeom = g;
+ }
+
+ /**
+ * Computes the snap tolerance based on the input geometries.
+ *
+ * @param ringPts
+ * @return
+ */
+ private double computeSnapTolerance(Coordinate[] ringPts)
+ {
+ double minSegLen = computeMinimumSegmentLength(ringPts);
+ // use a small percentage of this to be safe
+ double snapTol = minSegLen / 10;
+ return snapTol;
+ }
+
+ private double computeMinimumSegmentLength(Coordinate[] pts)
+ {
+ double minSegLen = Double.MAX_VALUE;
+ for (int i = 0; i < pts.length - 1; i++) {
+ double segLen = pts[i].distance(pts[i + 1]);
+ if (segLen < minSegLen)
+ minSegLen = segLen;
+ }
+ return minSegLen;
+ }
+
+ /**
+ * Snaps the vertices in the component {@link LineString}s
+ * of the source geometry
+ * to the vertices of the given geometry.
+ *
+ * @param g
+ * @return a new snapped Geometry
+ */
+ public Geometry snapTo(Geometry g, double snapTolerance)
+ {
+ Coordinate[] snapPts = extractTargetCoordinates(g);
+
+ SnapTransformer snapTrans = new SnapTransformer(snapTolerance, snapPts);
+ return snapTrans.transform(srcGeom);
+ }
+
+ public Coordinate[] extractTargetCoordinates(Geometry g)
+ {
+ // TODO: should do this more efficiently. Use CoordSeq filter to get points, KDTree for uniqueness & queries
+ Set ptSet = new TreeSet();
+ Coordinate[] pts = g.getCoordinates();
+ for (int i = 0; i < pts.length; i++) {
+ ptSet.add(pts[i]);
+ }
+ return (Coordinate[]) ptSet.toArray(new Coordinate[0]);
+ }
+}
+
+class SnapTransformer
+ extends GeometryTransformer
+{
+ double snapTolerance;
+ Coordinate[] snapPts;
+
+ SnapTransformer(double snapTolerance, Coordinate[] snapPts)
+ {
+ this.snapTolerance = snapTolerance;
+ this.snapPts = snapPts;
+ }
+
+ protected CoordinateSequence transformCoordinates(CoordinateSequence coords, Geometry parent)
+ {
+ Coordinate[] srcPts = coords.toCoordinateArray();
+ Coordinate[] newPts = snapLine(srcPts, snapPts);
+ return factory.getCoordinateSequenceFactory().create(newPts);
+ }
+
+ private Coordinate[] snapLine(Coordinate[] srcPts, Coordinate[] snapPts)
+ {
+ LineStringSnapper snapper = new LineStringSnapper(srcPts, snapTolerance);
+ return snapper.snapTo(snapPts);
+ }
+}
+
+
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/LineStringSnapper.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,171 @@
+package com.vividsolutions.jts.operation.overlay.snap;
+
+import com.vividsolutions.jts.geom.*;
+
+/**
+ * Snaps the vertices and segments of a LineString to a set of target snap vertices.
+ * A snapping distance tolerance is used to control where snapping is performed.
+ *
+ * @author Martin Davis
+ * @version 1.7
+ */
+public class LineStringSnapper
+{
+ private double snapTolerance = 0.0;
+
+ private Coordinate[] srcPts;
+ private LineSegment seg = new LineSegment(); // for reuse during snapping
+ private boolean isClosed = false;
+
+ /**
+ * Creates a new snapper using the points in the given {@link LineString}
+ * as target snap points.
+ *
+ * @param line a LineString
+ * @param snapTolerance the snap tolerance to use
+ */
+ public LineStringSnapper(LineString line, double snapTolerance)
+ {
+ this(line.getCoordinates(), snapTolerance);
+ }
+
+ /**
+ * Creates a new snapper using the given points
+ * as target snap points.
+ *
+ * @param srcPts the points to snap to
+ * @param snapTolerance the snap tolerance to use
+ */
+ public LineStringSnapper(Coordinate[] srcPts, double snapTolerance)
+ {
+ this.srcPts = srcPts;
+ isClosed = srcPts[0].equals2D(srcPts[srcPts.length - 1]);
+ this.snapTolerance = snapTolerance;
+ }
+
+ /**
+ * Snaps the vertices and segments of the source LineString
+ * to the given set of target snap points.
+ *
+ * @param snapPts the vertices to snap to
+ * @return a new snapped LineString
+ */
+ public Coordinate[] snapTo(Coordinate[] snapPts)
+ {
+ CoordinateList coordList = new CoordinateList(srcPts);
+
+ snapVertices(coordList, snapPts);
+ snapSegments(coordList, snapPts);
+
+ Coordinate[] newPts = coordList.toCoordinateArray();
+ return newPts;
+ }
+
+ /**
+ * Snap source vertices to vertices in the target.
+ *
+ * @param srcCoords
+ * @param snapPts
+ */
+ private void snapVertices(CoordinateList srcCoords, Coordinate[] snapPts)
+ {
+ // try snapping vertices
+ // assume src list has a closing point (is a ring)
+ for (int i = 0; i < srcCoords.size() - 1; i++) {
+ Coordinate srcPt = (Coordinate) srcCoords.get(i);
+ Coordinate snapVert = findSnapForVertex(srcPt, snapPts);
+ if (snapVert != null) {
+ // update src with snap pt
+ srcCoords.set(i, new Coordinate(snapVert));
+ // keep final closing point in synch (rings only)
+ if (i == 0 && isClosed)
+ srcCoords.set(srcCoords.size() - 1, new Coordinate(snapVert));
+ }
+ }
+ }
+
+ private Coordinate findSnapForVertex(Coordinate pt, Coordinate[] snapPts)
+ {
+ for (int i = 0; i < snapPts.length; i++) {
+ // if point is already equal to a src pt, don't snap
+ if (pt.equals2D(snapPts[i]))
+ return null;
+ if (pt.distance(snapPts[i]) < snapTolerance)
+ return snapPts[i];
+ }
+ return null;
+ }
+
+ /**
+ * Snap segments of the source to nearby snap vertices.
+ * Source segments are "cracked" at a snap vertex, and further
+ * snapping takes place on the modified list of segments.
+ * For each distinct snap vertex, at most one source segment
+ * is snapped to. This prevents "cracking" multiple segments
+ * at the same point, which would almost certainly cause the result to be invalid.
+ *
+ * @param srcCoords
+ * @param snapPts
+ */
+ private void snapSegments(CoordinateList srcCoords, Coordinate[] snapPts)
+ {
+ int distinctPtCount = snapPts.length;
+
+ // check for duplicate snap pts.
+ // Need to do this better - need to check all points for dups (using a Set?)
+ if (snapPts[0].equals2D(snapPts[snapPts.length - 1]))
+ distinctPtCount = snapPts.length - 1;
+
+ for (int i = 0; i < distinctPtCount; i++) {
+ Coordinate snapPt = snapPts[i];
+ int index = findSegmentIndexToSnap(snapPt, srcCoords);
+ /**
+ * If a segment to snap to was found, "crack" it at the snap pt.
+ * The new pt is inserted immediately into the src segment list,
+ * so that subsequent snapping will take place on the latest segments.
+ * Duplicate points are not added.
+ */
+ if (index >= 0) {
+ srcCoords.add(index + 1, new Coordinate(snapPt), false);
+ }
+ }
+ }
+
+
+ /**
+ * Finds a src segment which snaps to (is close to) the given snap point
+ * Only one segment is determined - this is to prevent
+ * snapping to multiple segments, which would almost certainly cause invalid geometry
+ * to be created.
+ * (The heuristic approach of snapping is really only appropriate when
+ * snap pts snap to a unique spot on the src geometry.)
+ *
+ * @param snapPt the point to snap to
+ * @param srcCoords the source segment coordinates
+ * @return the index of the snapped segment
+ * @return -1 if no segment snaps
+ */
+ private int findSegmentIndexToSnap(Coordinate snapPt, CoordinateList srcCoords)
+ {
+ double minDist = Double.MAX_VALUE;
+ int snapIndex = -1;
+ for (int i = 0; i < srcCoords.size() - 1; i++) {
+ seg.p0 = (Coordinate) srcCoords.get(i);
+ seg.p1 = (Coordinate) srcCoords.get(i + 1);
+
+ /**
+ * If the snap pt is already in the src list, don't snap
+ */
+ if (seg.p0.equals2D(snapPt) || seg.p1.equals2D(snapPt))
+ return -1;
+
+ double dist = seg.distance(snapPt);
+ if (dist < snapTolerance && dist < minDist) {
+ minDist = dist;
+ snapIndex = i;
+ }
+ }
+ return snapIndex;
+ }
+
+}
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/SnapIfNeededOverlayOp.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,80 @@
+package com.vividsolutions.jts.operation.overlay.snap;
+
+import com.vividsolutions.jts.geom.*;
+import com.vividsolutions.jts.operation.overlay.OverlayOp;
+import com.vividsolutions.jts.operation.overlay.validate.OverlayResultValidator;
+
+
+/**
+ * Performs an overlay operation using snapping and enhanced precision
+ * to improve the robustness of the result.
+ * This class only uses snapping
+ * if an error is detected when running the standard JTS overlay code.
+ * Errors detected include thrown exceptions
+ * (in particular, {@link TopologyException})
+ * and invalid overlay computations.
+ *
+ * @author Martin Davis
+ * @version 1.7
+ */
+public class SnapIfNeededOverlayOp
+{
+ public static Geometry overlayOp(Geometry g0, Geometry g1, int opCode)
+ {
+ SnapIfNeededOverlayOp op = new SnapIfNeededOverlayOp(g0, g1);
+ return op.getResultGeometry(opCode);
+ }
+
+ public static Geometry intersection(Geometry g0, Geometry g1)
+ {
+ return overlayOp(g0, g1, OverlayOp.INTERSECTION);
+ }
+
+ public static Geometry union(Geometry g0, Geometry g1)
+ {
+ return overlayOp(g0, g1, OverlayOp.UNION);
+ }
+
+ public static Geometry difference(Geometry g0, Geometry g1)
+ {
+ return overlayOp(g0, g1, OverlayOp.DIFFERENCE);
+ }
+
+ public static Geometry symDifference(Geometry g0, Geometry g1)
+ {
+ return overlayOp(g0, g1, OverlayOp.SYMDIFFERENCE);
+ }
+
+ private Geometry[] geom = new Geometry[2];
+
+ public SnapIfNeededOverlayOp(Geometry g1, Geometry g2)
+ {
+ geom[0] = g1;
+ geom[1] = g2;
+ }
+
+ public Geometry getResultGeometry(int opCode)
+ {
+ Geometry result = null;
+ boolean isSuccess = false;
+ try {
+ result = OverlayOp.overlayOp(geom[0], geom[1], opCode);
+ boolean isValid = true;
+ // not needed if noding validation is used
+// boolean isValid = OverlayResultValidator.isValid(geom[0], geom[1], OverlayOp.INTERSECTION, result);
+ if (isValid)
+ isSuccess = true;
+
+ }
+ catch (Exception ex) {
+ // ignore this exception, since the operation will be rerun
+// System.out.println(ex.getMessage());
+// ex.printStackTrace();
+ }
+ if (! isSuccess) {
+ // this may still throw an exception - just let it go if it does
+ result = SnapOverlayOp.overlayOp(geom[0], geom[1], opCode);
+ }
+ return result;
+ }
+}
\ No newline at end of file
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/snap/SnapOverlayOp.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,117 @@
+package com.vividsolutions.jts.operation.overlay.snap;
+
+import com.vividsolutions.jts.geom.*;
+import com.vividsolutions.jts.io.*;
+import com.vividsolutions.jts.operation.overlay.OverlayOp;
+import com.vividsolutions.jts.precision.CommonBitsRemover;
+
+/**
+ * Performs an overlay operation using snapping and enhanced precision
+ * to improve the robustness of the result.
+ * This class <i>always</i> uses snapping.
+ * This is less performant than the standard JTS overlay code,
+ * and may even introduce errors which were not present in the original data.
+ * For this reason, this class should only be used
+ * if the standard overlay code fails to produce a correct result.
+ *
+ * @author Martin Davis
+ * @version 1.7
+ */
+public class SnapOverlayOp
+{
+ public static Geometry overlayOp(Geometry g0, Geometry g1, int opCode)
+ {
+ SnapOverlayOp op = new SnapOverlayOp(g0, g1);
+ return op.getResultGeometry(opCode);
+ }
+
+ public static Geometry intersection(Geometry g0, Geometry g1)
+ {
+ return overlayOp(g0, g1, OverlayOp.INTERSECTION);
+ }
+
+ public static Geometry union(Geometry g0, Geometry g1)
+ {
+ return overlayOp(g0, g1, OverlayOp.UNION);
+ }
+
+ public static Geometry difference(Geometry g0, Geometry g1)
+ {
+ return overlayOp(g0, g1, OverlayOp.DIFFERENCE);
+ }
+
+ public static Geometry symDifference(Geometry g0, Geometry g1)
+ {
+ return overlayOp(g0, g1, OverlayOp.SYMDIFFERENCE);
+ }
+
+
+ private Geometry[] geom = new Geometry[2];
+ private double snapTolerance;
+
+ public SnapOverlayOp(Geometry g1, Geometry g2)
+ {
+ geom[0] = g1;
+ geom[1] = g2;
+ computeSnapTolerance();
+ }
+ private void computeSnapTolerance()
+ {
+ snapTolerance = GeometrySnapper.computeOverlaySnapTolerance(geom[0], geom[1]);
+
+ // System.out.println("Snap tol = " + snapTolerance);
+ }
+
+ public Geometry getResultGeometry(int opCode)
+ {
+ Geometry[] prepGeom = snap();
+ Geometry result = OverlayOp.overlayOp(prepGeom[0], prepGeom[1], opCode);
+ return prepareResult(result);
+ }
+
+ private Geometry[] snap()
+ {
+ Geometry[] remGeom = removeCommonBits(geom);
+
+ // MD - testing only
+// Geometry[] remGeom = geom;
+
+ Geometry[] snapGeom = GeometrySnapper.snap(remGeom[0], remGeom[1], snapTolerance);
+ // MD - may want to do this at some point, but it adds cycles
+// checkValid(snapGeom[0]);
+// checkValid(snapGeom[1]);
+
+ /*
+ System.out.println("Snapped geoms: ");
+ System.out.println(snapGeom[0]);
+ System.out.println(snapGeom[1]);
+ */
+ return snapGeom;
+ }
+
+ private Geometry prepareResult(Geometry geom)
+ {
+ cbr.addCommonBits(geom);
+ return geom;
+ }
+
+ private CommonBitsRemover cbr;
+
+ private Geometry[] removeCommonBits(Geometry[] geom)
+ {
+ cbr = new CommonBitsRemover();
+ cbr.add(geom[0]);
+ cbr.add(geom[1]);
+ Geometry remGeom[] = new Geometry[2];
+ remGeom[0] = cbr.removeCommonBits((Geometry) geom[0].clone());
+ remGeom[1] = cbr.removeCommonBits((Geometry) geom[1].clone());
+ return remGeom;
+ }
+
+ private void checkValid(Geometry g)
+ {
+ if (! g.isValid()) {
+ System.out.println("Snapped geometry is invalid");
+ }
+ }
+}
\ No newline at end of file
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/validate/FuzzyPointLocator.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,118 @@
+package com.vividsolutions.jts.operation.overlay.validate;
+
+import java.util.*;
+import com.vividsolutions.jts.geom.*;
+import com.vividsolutions.jts.algorithm.*;
+
+/**
+ * Finds the most likely {@link Location} of a point relative to
+ * the polygonal components of a geometry, using a tolerance value.
+ * If a point is not clearly in the Interior or Exterior,
+ * it is considered to be on the Boundary.
+ * In other words, if the point is within the tolerance of the Boundary,
+ * it is considered to be on the Boundary; otherwise,
+ * whether it is Interior or Exterior is determined directly.
+ *
+ * @author Martin Davis
+ * @version 1.7
+ */
+public class FuzzyPointLocator
+{
+ private Geometry g;
+ private double boundaryDistanceTolerance;
+ private MultiLineString linework;
+ private PointLocator ptLocator = new PointLocator();
+ private LineSegment seg = new LineSegment();
+
+ public FuzzyPointLocator(Geometry g, double boundaryDistanceTolerance)
+ {
+ this.g = g;
+ this.boundaryDistanceTolerance = boundaryDistanceTolerance;
+ linework = extractLinework(g);
+ }
+
+ public int getLocation(Coordinate pt)
+ {
+ if (isWithinToleranceOfBoundary(pt))
+ return Location.BOUNDARY;
+ /*
+ double dist = linework.distance(point);
+
+ // if point is close to boundary, it is considered to be on the boundary
+ if (dist < tolerance)
+ return Location.BOUNDARY;
+ */
+
+ // now we know point must be clearly inside or outside geometry, so return actual location value
+ return ptLocator.locate(pt, g);
+ }
+
+ /**
+ * Extracts linework for polygonal components.
+ *
+ * @param g the geometry from which to extract
+ * @return a lineal geometry containing the extracted linework
+ */
+ private MultiLineString extractLinework(Geometry g)
+ {
+ PolygonalLineworkExtracter extracter = new PolygonalLineworkExtracter();
+ g.apply(extracter);
+ List linework = extracter.getLinework();
+ LineString[] lines = GeometryFactory.toLineStringArray(linework);
+ return g.getFactory().createMultiLineString(lines);
+ }
+
+ private boolean isWithinToleranceOfBoundary(Coordinate pt)
+ {
+ for (int i = 0; i < linework.getNumGeometries(); i++) {
+ LineString line = (LineString) linework.getGeometryN(i);
+ CoordinateSequence seq = line.getCoordinateSequence();
+ for (int j = 0; j < seq.size() - 1; j++) {
+ seq.getCoordinate(j, seg.p0);
+ seq.getCoordinate(j + 1, seg.p1);
+ double dist = seg.distance(pt);
+ if (dist <= boundaryDistanceTolerance)
+ return true;
+ }
+ }
+ return false;
+ }
+}
+
+/**
+ * Extracts the LineStrings in the boundaries
+ * of all the polygonal elements in the target {@link Geometry}.
+ *
+ * @author Martin Davis
+ */
+class PolygonalLineworkExtracter
+ implements GeometryFilter
+{
+ private List linework;
+
+ public PolygonalLineworkExtracter()
+ {
+ linework = new ArrayList();
+ }
+
+ /**
+ * Filters out all linework for polygonal elements
+ */
+ public void filter(Geometry g)
+ {
+ if (g instanceof Polygon) {
+ Polygon poly = (Polygon) g;
+ linework.add(poly.getExteriorRing());
+ for (int i = 0; i < poly.getNumInteriorRing(); i++) {
+ linework.add(poly.getInteriorRingN(i));
+ }
+ }
+ }
+
+ /**
+ * Gets the list of polygonal linework.
+ *
+ * @return a List of LineStrings
+ */
+ public List getLinework() { return linework; }
+}
\ No newline at end of file
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/validate/OffsetPointGenerator.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,82 @@
+package com.vividsolutions.jts.operation.overlay.validate;
+
+import java.util.*;
+import com.vividsolutions.jts.geom.*;
+import com.vividsolutions.jts.geom.util.*;
+
+/**
+ * Generates points offset by a given distance
+ * from both sides of the midpoint of
+ * all segments in a {@link Geometry}.
+ * Can be used to generate probe points for
+ * determining whether a polygonal overlay result
+ * is incorrect.
+ *
+ * @author Martin Davis
+ * @version 1.7
+ */
+public class OffsetPointGenerator
+{
+ private double offsetDistance;
+ private Geometry g;
+ private List offsetPts;
+
+ public OffsetPointGenerator(Geometry g, double offsetDistance)
+ {
+ this.g = g;
+ this.offsetDistance = offsetDistance;
+ }
+
+ /**
+ * Gets the computed offset points.
+ *
+ * @return List<Coordinate>
+ */
+ public List getPoints()
+ {
+ offsetPts = new ArrayList();
+ List lines = LinearComponentExtracter.getLines(g);
+ for (Iterator i = lines.iterator(); i.hasNext(); ) {
+ LineString line = (LineString) i.next();
+ extractPoints(line);
+ }
+ //System.out.println(toMultiPoint(offsetPts));
+ return offsetPts;
+ }
+
+ private void extractPoints(LineString line)
+ {
+ Coordinate[] pts = line.getCoordinates();
+ for (int i = 0; i < pts.length - 1; i++) {
+ computeOffsetPoints(pts[i], pts[i + 1]);
+ }
+ }
+
+ /**
+ * Generates the two points which are offset from the
+ * midpoint of the segment <tt>(p0, p1)</tt> by the
+ * <tt>offsetDistance</tt>.
+ *
+ * @param p0 the first point of the segment to offset from
+ * @param p1 the second point of the segment to offset from
+ */
+ private void computeOffsetPoints(Coordinate p0, Coordinate p1)
+ {
+ double dx = p1.x - p0.x;
+ double dy = p1.y - p0.y;
+ double len = Math.sqrt(dx * dx + dy * dy);
+ // u is the vector that is the length of the offset, in the direction of the segment
+ double ux = offsetDistance * dx / len;
+ double uy = offsetDistance * dy / len;
+
+ double midX = (p1.x + p0.x) / 2;
+ double midY = (p1.y + p0.y) / 2;
+
+ Coordinate offsetLeft = new Coordinate(midX - uy, midY + ux);
+ Coordinate offsetRight = new Coordinate(midX + uy, midY - ux);
+
+ offsetPts.add(offsetLeft);
+ offsetPts.add(offsetRight);
+ }
+
+}
\ No newline at end of file
Added: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.java (rev 0)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/overlay/validate/OverlayResultValidator.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,180 @@
+/*
+ * The JTS Topology Suite is a collection of Java classes that
+ * implement the fundamental operations required to validate a given
+ * geo-spatial data set to a known topological specification.
+ *
+ * Copyright (C) 2001 Vivid Solutions
+ *
+ * This library 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 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+package com.vividsolutions.jts.operation.overlay.validate;
+
+import java.util.*;
+import com.vividsolutions.jts.geom.*;
+import com.vividsolutions.jts.operation.overlay.OverlayOp;
+import com.vividsolutions.jts.operation.overlay.snap.GeometrySnapper;
+
+/**
+ * Validates that the result of an overlay operation is
+ * geometrically correct within a given tolerance.
+ * Uses fuzzy point location to find points which are .
+ * <p>
+ * This algorithm is only useful where the inputs are polygonal.
+ * This is a heuristic test, and may return false positive results
+ * (I.e. it may fail to detect an invalid result.)
+ * It should never return a false negative result, however
+ * (I.e. it should never report a valid result as invalid.)
+ *
+ * @author Martin Davis
+ * @version 1.7
+ * @see OverlayOp
+ */
+public class OverlayResultValidator
+{
+ public static boolean isValid(Geometry a, Geometry b, int overlayOp, Geometry result)
+ {
+ OverlayResultValidator validator = new OverlayResultValidator(a, b, result);
+ return validator.isValid(overlayOp);
+ }
+
+ private static double computeBoundaryDistanceTolerance(Geometry g0, Geometry g1)
+ {
+ return Math.min(GeometrySnapper.computeSizeBasedSnapTolerance(g0),
+ GeometrySnapper.computeSizeBasedSnapTolerance(g1));
+ }
+
+ private static final double TOLERANCE = 0.000001;
+
+ private Geometry[] geom;
+ private FuzzyPointLocator[] locFinder;
+ private int[] location = new int[3] ;
+ private Coordinate invalidLocation = null;
+ private double boundaryDistanceTolerance = TOLERANCE;
+
+ private List testCoords = new ArrayList();
+
+ public OverlayResultValidator(Geometry a, Geometry b, Geometry result)
+ {
+ /**
+ * The tolerance to use needs to depend on the size of the geometries.
+ * It should not be more precise than double-precision can support.
+ */
+ boundaryDistanceTolerance = computeBoundaryDistanceTolerance(a, b);
+ geom = new Geometry[] { a, b, result };
+ locFinder = new FuzzyPointLocator[] {
+ new FuzzyPointLocator(geom[0], boundaryDistanceTolerance),
+ new FuzzyPointLocator(geom[1], boundaryDistanceTolerance),
+ new FuzzyPointLocator(geom[2], boundaryDistanceTolerance)
+ };
+ }
+
+ public boolean isValid(int overlayOp)
+ {
+ addTestPts(geom[0]);
+ addTestPts(geom[1]);
+ boolean isValid = checkValid(overlayOp);
+
+ /*
+ System.out.println("OverlayResultValidator: " + isValid);
+ System.out.println("G0");
+ System.out.println(geom[0]);
+ System.out.println("G1");
+ System.out.println(geom[1]);
+ System.out.println("Result");
+ System.out.println(geom[2]);
+ */
+
+ return isValid;
+ }
+
+ public Coordinate getInvalidLocation() { return invalidLocation; }
+
+ private void addTestPts(Geometry g)
+ {
+ OffsetPointGenerator ptGen = new OffsetPointGenerator(g, 5 * boundaryDistanceTolerance);
+ testCoords.addAll(ptGen.getPoints());
+ }
+
+ private boolean checkValid(int overlayOp)
+ {
+ for (int i = 0; i < testCoords.size(); i++) {
+ Coordinate pt = (Coordinate) testCoords.get(i);
+ if (! checkValid(overlayOp, pt)) {
+ invalidLocation = pt;
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private boolean checkValid(int overlayOp, Coordinate pt)
+ {
+ location[0] = locFinder[0].getLocation(pt);
+ location[1] = locFinder[1].getLocation(pt);
+ location[2] = locFinder[2].getLocation(pt);
+
+ /**
+ * If any location is on the Boundary, can't deduce anything, so just return true
+ */
+ if (hasLocation(location, Location.BOUNDARY))
+ return true;
+
+ return isValidResult(overlayOp, location);
+ }
+
+ private static boolean hasLocation(int[] location, int loc)
+ {
+ for (int i = 0; i < 3; i ++) {
+ if (location[i] == loc)
+ return true;
+ }
+ return false;
+ }
+
+ private boolean isValidResult(int overlayOp, int[] location)
+ {
+ boolean expectedInterior = OverlayOp.isResultOfOp(location[0], location[1], overlayOp);
+
+ boolean resultInInterior = (location[2] == Location.INTERIOR);
+ // MD use simpler: boolean isValid = (expectedInterior == resultInInterior);
+ boolean isValid = ! (expectedInterior ^ resultInInterior);
+
+ if (! isValid) reportResult(overlayOp, location, expectedInterior);
+
+ return isValid;
+ }
+
+ private void reportResult(int overlayOp, int[] location, boolean expectedInterior)
+ {
+ System.out.println(
+ "A:" + Location.toLocationSymbol(location[0])
+ + " B:" + Location.toLocationSymbol(location[1])
+ + " expected:" + (expectedInterior ? 'i' : 'e')
+ + " actual:" + Location.toLocationSymbol(location[2])
+ );
+ }
+}
+
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/polygonize/EdgeRing.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/polygonize/EdgeRing.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/polygonize/EdgeRing.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -80,7 +80,8 @@
if (tryEnv.equals(testEnv))
continue;
- testPt = ptNotInList(testRing.getCoordinates(), tryRing.getCoordinates());
+// testPt = ptNotInList(testRing.getCoordinates(), tryRing.getCoordinates());
+ testPt = CoordinateArrays.ptNotInList(testRing.getCoordinates(), tryRing.getCoordinates());
if (tryEnv.contains(testEnv)
&& cga.isPointInRing(testPt, tryRing.getCoordinates()) )
isContained = true;
@@ -99,14 +100,14 @@
* Finds a point in a list of points which is not contained in another list of points
* @param testPts the {@link Coordinate}s to test
* @param pts an array of {@link Coordinate}s to test the input points against
- * @return a {@link Coordinate} from <code>testPts</code> which is not in <code>pts</code>, '
- * or <code>null</code>
+ * @return a {@link Coordinate} from <code>testPts</code> which is not in <code>pts</code>,
+ * @return null if there is no coordinate not in the list
*/
public static Coordinate ptNotInList(Coordinate[] testPts, Coordinate[] pts)
{
for (int i = 0; i < testPts.length; i++) {
Coordinate testPt = testPts[i];
- if (isInList(testPt, pts))
+ if (! isInList(testPt, pts))
return testPt;
}
return null;
@@ -124,9 +125,9 @@
{
for (int i = 0; i < pts.length; i++) {
if (pt.equals(pts[i]))
- return false;
+ return true;
}
- return true;
+ return false;
}
private GeometryFactory factory;
private static CGAlgorithms cga = new CGAlgorithms();
@@ -177,7 +178,7 @@
}
/**
- * Computes the {@link Polygon formed by this ring and any contained holes.
+ * Computes the {@link Polygon} formed by this ring and any contained holes.
*
* @return the {@link Polygon} formed by this ring and its holes.
*/
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/polygonize/Polygonizer.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/polygonize/Polygonizer.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/polygonize/Polygonizer.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -135,7 +135,7 @@
/**
* Gets the list of polygons formed by the polygonization.
- * @return a collection of {@link Polygons}
+ * @return a collection of {@link Polygon}s
*/
public Collection getPolygons()
{
@@ -145,7 +145,7 @@
/**
* Get the list of dangling lines found during polygonization.
- * @return a collection of the input {@LineStrings} which are dangles
+ * @return a collection of the input {@link LineString}s which are dangles
*/
public Collection getDangles()
{
@@ -155,7 +155,7 @@
/**
* Get the list of cut edges found during polygonization.
- * @return a collection of the input {@LineStrings} which are cut edges
+ * @return a collection of the input {@link LineString}s which are cut edges
*/
public Collection getCutEdges()
{
@@ -165,7 +165,7 @@
/**
* Get the list of lines forming invalid rings found during polygonization.
- * @return a collection of the input {@LineStrings} which form invalid rings
+ * @return a collection of the input {@link LineString}s which form invalid rings
*/
public Collection getInvalidRingLines()
{
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/relate/EdgeEndBundle.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/relate/EdgeEndBundle.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/relate/EdgeEndBundle.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -35,34 +35,42 @@
*/
package com.vividsolutions.jts.operation.relate;
-/**
- * A collection of EdgeStubs which obey the following invariant:
- * They originate at the same node and have the same direction.
- * @version 1.7
- */
import java.io.PrintStream;
import java.util.*;
import com.vividsolutions.jts.geom.*;
import com.vividsolutions.jts.geomgraph.*;
import com.vividsolutions.jts.util.Assert;
+import com.vividsolutions.jts.algorithm.BoundaryNodeRule;
-
/**
- * Contains all {@link EdgeEnd}s which start at the same point and are parallel.
+ * A collection of {@link EdgeEnd}s which obey the following invariant:
+ * They originate at the same node and have the same direction.
*
* @version 1.7
*/
public class EdgeEndBundle
extends EdgeEnd
{
+// private BoundaryNodeRule boundaryNodeRule;
private List edgeEnds = new ArrayList();
- public EdgeEndBundle(EdgeEnd e)
+ public EdgeEndBundle(BoundaryNodeRule boundaryNodeRule, EdgeEnd e)
{
super(e.getEdge(), e.getCoordinate(), e.getDirectedCoordinate(), new Label(e.getLabel()));
insert(e);
+ /*
+ if (boundaryNodeRule != null)
+ this.boundaryNodeRule = boundaryNodeRule;
+ else
+ boundaryNodeRule = BoundaryNodeRule.OGC_SFS_BOUNDARY_RULE;
+ */
}
+ public EdgeEndBundle(EdgeEnd e)
+ {
+ this(null, e);
+ }
+
public Label getLabel() { return label; }
public Iterator iterator() { return edgeEnds.iterator(); }
public List getEdgeEnds() { return edgeEnds; }
@@ -78,7 +86,7 @@
* edges in this EdgeStubBundle. It essentially merges
* the ON and side labels for each edge. These labels must be compatible
*/
- public void computeLabel()
+ public void computeLabel(BoundaryNodeRule boundaryNodeRule)
{
// create the label. If any of the edges belong to areas,
// the label must be an area label
@@ -94,23 +102,23 @@
// compute the On label, and the side labels if present
for (int i = 0; i < 2; i++) {
- computeLabelOn(i);
+ computeLabelOn(i, boundaryNodeRule);
if (isArea)
computeLabelSides(i);
}
+ }
- }
/**
* Compute the overall ON location for the list of EdgeStubs.
* (This is essentially equivalent to computing the self-overlay of a single Geometry)
* edgeStubs can be either on the boundary (eg Polygon edge)
* OR in the interior (e.g. segment of a LineString)
* of their parent Geometry.
- * In addition, GeometryCollections use the mod-2 rule to determine
+ * In addition, GeometryCollections use a {@link BoundaryNodeRule} to determine
* whether a segment is on the boundary or not.
- * Finally, in GeometryCollections it can still occur that an edge is both
+ * Finally, in GeometryCollections it can occur that an edge is both
* on the boundary and in the interior (e.g. a LineString segment lying on
- * top of a Polygon edge.) In this case as usual the Boundary is given precendence.
+ * top of a Polygon edge.) In this case the Boundary is given precendence.
* <br>
* These observations result in the following rules for computing the ON location:
* <ul>
@@ -120,7 +128,7 @@
* <li> otherwise, the attribute is NULL.
* </ul>
*/
- private void computeLabelOn(int geomIndex)
+ private void computeLabelOn(int geomIndex, BoundaryNodeRule boundaryNodeRule)
{
// compute the ON location value
int boundaryCount = 0;
@@ -135,7 +143,7 @@
int loc = Location.NONE;
if (foundInterior) loc = Location.INTERIOR;
if (boundaryCount > 0) {
- loc = GeometryGraph.determineBoundary(boundaryCount);
+ loc = GeometryGraph.determineBoundary(boundaryNodeRule, boundaryCount);
}
label.setLocation(geomIndex, loc);
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/relate/EdgeEndBundleStar.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -46,12 +46,15 @@
* An ordered list of {@link EdgeEndBundle}s around a {@link RelateNode}.
* They are maintained in CCW order (starting with the positive x-axis) around the node
* for efficient lookup and topology building.
+ *
* @version 1.7
*/
public class EdgeEndBundleStar
extends EdgeEndStar
{
-
+ /**
+ * Creates a new empty EdgeEndBundleStar
+ */
public EdgeEndBundleStar() {
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/relate/RelateOp.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/relate/RelateOp.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/relate/RelateOp.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -39,33 +39,92 @@
* @version 1.7
*/
+import com.vividsolutions.jts.algorithm.BoundaryNodeRule;
import com.vividsolutions.jts.geomgraph.*;
import com.vividsolutions.jts.geom.*;
import com.vividsolutions.jts.operation.GeometryGraphOperation;
import java.util.*;
/**
- * Implements the relate() operation on {@link Geometry}s.
+ * Implements the SFS <tt>relate()</tt> operation on two {@link Geometry}s.
+ * This class supports specifying a custom {@link BoundaryNodeRule}
+ * to be used during the relate computation.
+ * <p>
+ * <b>Note:</b> custom Boundary Node Rules do not (currently)
+ * affect the results of other Geometry methods (such
+ * as {@link Geometry#getBoundary}. The results of
+ * these methods may not be consistent with the relationship computed by
+ * a custom Boundary Node Rule.
*
* @version 1.7
*/
public class RelateOp
extends GeometryGraphOperation
{
+ /**
+ * Computes the {@link IntersectionMatrix} for the spatial relationship
+ * between two {@link Geometry}s, using the default (OGC SFS) Boundary Node Rule
+ *
+ * @param a a Geometry to test
+ * @param b a Geometry to test
+ * @return the IntersectonMatrix for the spatial relationship between the geometries
+ */
public static IntersectionMatrix relate(Geometry a, Geometry b)
{
- RelateOp relOp = new RelateOp(a, b);
- IntersectionMatrix im = relOp.getIntersectionMatrix();
- return im;
+ RelateOp relOp = new RelateOp(a, b);
+ IntersectionMatrix im = relOp.getIntersectionMatrix();
+ return im;
}
+ /**
+ * Computes the {@link IntersectionMatrix} for the spatial relationship
+ * between two {@link Geometry}s using a specified Boundary Node Rule.
+ *
+ * @param a a Geometry to test
+ * @param b a Geometry to test
+ * @param boundaryNodeRule the Boundary Node Rule to use
+ * @return the IntersectonMatrix for the spatial relationship between the input geometries
+ */
+ public static IntersectionMatrix relate(Geometry a, Geometry b, BoundaryNodeRule boundaryNodeRule)
+ {
+ RelateOp relOp = new RelateOp(a, b, boundaryNodeRule);
+ IntersectionMatrix im = relOp.getIntersectionMatrix();
+ return im;
+ }
+
private RelateComputer relate;
- public RelateOp(Geometry g0, Geometry g1) {
+ /**
+ * Creates a new Relate operation, using the default (OGC SFS) Boundary Node Rule.
+ *
+ * @param g0 a Geometry to relate
+ * @param g1 another Geometry to relate
+ */
+ public RelateOp(Geometry g0, Geometry g1)
+ {
super(g0, g1);
relate = new RelateComputer(arg);
}
+ /**
+ * Creates a new Relate operation with a specified Boundary Node Rule.
+ *
+ * @param g0 a Geometry to relate
+ * @param g1 another Geometry to relate
+ * @param boundaryNodeRule the Boundary Node Rule to use
+ */
+ public RelateOp(Geometry g0, Geometry g1, BoundaryNodeRule boundaryNodeRule)
+ {
+ super(g0, g1, boundaryNodeRule);
+ relate = new RelateComputer(arg);
+ }
+
+ /**
+ * Gets the IntersectionMatrix for the spatial relationship
+ * between the input geometries.
+ *
+ * @return the IntersectonMatrix for the spatial relationship between the input geometries
+ */
public IntersectionMatrix getIntersectionMatrix()
{
return relate.computeIM();
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/valid/ConnectedInteriorTester.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -87,11 +87,11 @@
List splitEdges = new ArrayList();
geomGraph.computeSplitEdges(splitEdges);
- // polygonize the edges
+ // form the edges into rings
PlanarGraph graph = new PlanarGraph(new OverlayNodeFactory());
graph.addEdges(splitEdges);
- setAllEdgesInResult(graph);
- graph.linkAllDirectedEdges();
+ setInteriorEdgesInResult(graph);
+ graph.linkResultDirectedEdges();
List edgeRings = buildEdgeRings(graph.getEdgeEnds());
/**
@@ -110,16 +110,20 @@
return ! hasUnvisitedShellEdge(edgeRings);
}
- private void setAllEdgesInResult(PlanarGraph graph)
+ private void setInteriorEdgesInResult(PlanarGraph graph)
{
for (Iterator it = graph.getEdgeEnds().iterator(); it.hasNext(); ) {
DirectedEdge de = (DirectedEdge) it.next();
- de.setInResult(true);
+ if (de.getLabel().getLocation(0, Position.RIGHT) == Location.INTERIOR) {
+ de.setInResult(true);
+ }
}
}
/**
- * for all DirectedEdges in result, form them into EdgeRings
+ * Form DirectedEdges in graph into Minimal EdgeRings.
+ * (Minimal Edgerings must be used, because only they are guaranteed to provide
+ * a correct isHole computation)
*/
private List buildEdgeRings(Collection dirEdges)
{
@@ -127,9 +131,13 @@
for (Iterator it = dirEdges.iterator(); it.hasNext(); ) {
DirectedEdge de = (DirectedEdge) it.next();
// if this edge has not yet been processed
- if (de.getEdgeRing() == null) {
- EdgeRing er = new MaximalEdgeRing(de, geometryFactory, cga);
- edgeRings.add(er);
+ if (de.isInResult()
+ && de.getEdgeRing() == null) {
+ MaximalEdgeRing er = new MaximalEdgeRing(de, geometryFactory, cga);
+
+ er.linkDirectedEdgesForMinimalEdgeRings();
+ List minEdgeRings = er.buildMinimalRings();
+ edgeRings.addAll(minEdgeRings);
}
}
return edgeRings;
@@ -137,7 +145,9 @@
/**
* Mark all the edges for the edgeRings corresponding to the shells
- * of the input polygons. Note only ONE ring gets marked for each shell.
+ * of the input polygons.
+ * Only ONE ring gets marked for each shell - if there are others which remain unmarked
+ * this indicates a disconnected interior.
*/
private void visitShellInteriors(Geometry g, PlanarGraph graph)
{
@@ -176,16 +186,15 @@
visitLinkedDirectedEdges(intDe);
}
+
protected void visitLinkedDirectedEdges(DirectedEdge start)
{
DirectedEdge startDe = start;
DirectedEdge de = start;
-//Debug.println(de);
do {
Assert.isTrue(de != null, "found null Directed Edge");
de.setVisited(true);
de = de.getNext();
-//Debug.println(de);
} while (de != startDe);
}
@@ -203,14 +212,19 @@
{
for (int i = 0; i < edgeRings.size(); i++) {
EdgeRing er = (EdgeRing) edgeRings.get(i);
- if (er.isHole()) continue;
+ // don't check hole rings
+ if (er.isHole())
+ continue;
List edges = er.getEdges();
DirectedEdge de = (DirectedEdge) edges.get(0);
// don't check CW rings which are holes
+ // (MD - this check may now be irrelevant)
if (de.getLabel().getLocation(0, Position.RIGHT) != Location.INTERIOR) continue;
- // must have a CW ring which surrounds the INT of the area, so check all
- // edges have been visited
+ /**
+ * the edgeRing is CW ring which surrounds the INT of the area, so check all
+ * edges have been visited. If any are unvisited, this is a disconnected part of the interior
+ */
for (int j = 0; j < edges.size(); j++) {
de = (DirectedEdge) edges.get(j);
//Debug.print("visted? "); Debug.println(de);
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/valid/ConsistentAreaTester.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/valid/ConsistentAreaTester.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/valid/ConsistentAreaTester.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -119,7 +119,7 @@
{
for (Iterator nodeIt = nodeGraph.getNodeIterator(); nodeIt.hasNext(); ) {
RelateNode node = (RelateNode) nodeIt.next();
- if (! node.getEdges().isAreaLabelsConsistent()) {
+ if (! node.getEdges().isAreaLabelsConsistent(geomGraph)) {
invalidPoint = (Coordinate) node.getCoordinate().clone();
return false;
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/valid/TopologyValidationError.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/valid/TopologyValidationError.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/operation/valid/TopologyValidationError.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -34,7 +34,7 @@
*/
package com.vividsolutions.jts.operation.valid;
-import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.*;
/**
* Contains information about the nature and location of a {@link Geometry}
@@ -102,7 +102,7 @@
/**
* Indicates that the <code>X</code> or <code>Y</code> ordinate of
- * a Coordinate is not a valid numeric value (e.g. {@link Double.Nan} )
+ * a Coordinate is not a valid numeric value (e.g. {@link Double#NaN} )
*/
public static final int INVALID_COORDINATE = 10;
@@ -140,7 +140,8 @@
public TopologyValidationError(int errorType, Coordinate pt)
{
this.errorType = errorType;
- this.pt = (Coordinate) pt.clone();
+ if (pt != null)
+ this.pt = (Coordinate) pt.clone();
}
/**
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/DirectedEdge.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/DirectedEdge.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/DirectedEdge.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -183,7 +183,7 @@
* <li>first compare the quadrants. If the quadrants are different, it it
* trivial to determine which vector is "greater".
* <li>if the vectors lie in the same quadrant, the robust
- * {@link RobustCGAlgorithms#computeOrientation(Coordinate, Coordinate, Coordinate)}
+ * {@link CGAlgorithms#computeOrientation(Coordinate, Coordinate, Coordinate)}
* function can be used to decide the relative orientation of the vectors.
* </ul>
*/
@@ -204,7 +204,7 @@
* <li>first compare the quadrants. If the quadrants are different, it it
* trivial to determine which vector is "greater".
* <li>if the vectors lie in the same quadrant, the robust
- * {@link RobustCGAlgorithms#computeOrientation(Coordinate, Coordinate, Coordinate)}
+ * {@link CGAlgorithms#computeOrientation(Coordinate, Coordinate, Coordinate)}
* function can be used to decide the relative orientation of the vectors.
* </ul>
*/
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/Edge.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/Edge.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/Edge.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -49,7 +49,7 @@
/**
* The two DirectedEdges associated with this Edge.
- * 0 is forward, 1 is reverse
+ * Index 0 is forward, 1 is reverse.
*/
protected DirectedEdge[] dirEdge;
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/PlanarGraph.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/PlanarGraph.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/PlanarGraph.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -117,7 +117,7 @@
/**
* Tests whether this graph contains the given {@link Edge}
*
- * @param de the edge to query
+ * @param e the edge to query
* @return <code>true</code> if the graph contains the edge
*/
public boolean contains(Edge e)
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/Subgraph.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/Subgraph.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/planargraph/Subgraph.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -4,7 +4,7 @@
/**
* A subgraph of a {@link PlanarGraph}.
- * A subgraph may contain any subset of {@link Edges}
+ * A subgraph may contain any subset of {@link Edge}s
* from the parent graph.
* It will also automatically contain all {@link DirectedEdge}s
* and {@link Node}s associated with those edges.
@@ -76,7 +76,7 @@
public Iterator edgeIterator() { return edges.iterator(); }
/**
- * Returns an {@link Iterator} over the {@link Nodes} in this graph.
+ * Returns an {@link Iterator} over the {@link Node}s in this graph.
* @return an iterator over the nodes
*/
public Iterator nodeIterator() { return nodeMap.iterator(); }
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/precision/CommonBits.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/precision/CommonBits.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/precision/CommonBits.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -47,6 +47,7 @@
/**
* Computes the bit pattern for the sign and exponent of a
* double-precision number.
+ *
* @param num
* @return the bit pattern for the sign and exponent
*/
@@ -61,7 +62,9 @@
* It does not count the hidden bit, which is always 1.
* It does not determine whether the numbers have the same exponent - if they do
* not, the value computed by this function is meaningless.
- * @param db
+ *
+ * @param num1 the first number
+ * @param num2 the second number
* @return the number of common most-significant mantissa bits
*/
public static int numCommonMostSigMantissaBits(long num1, long num2)
@@ -78,8 +81,8 @@
/**
* Zeroes the lower n bits of a bitstring.
+ *
* @param bits the bitstring to alter
- * @param i the number of bits to zero
* @return the zeroed bitstring
*/
public static long zeroLowerBits(long bits, int nBits)
@@ -92,6 +95,7 @@
/**
* Extracts the i'th bit of a bitstring.
+ *
* @param bits the bitstring to extract from
* @param i the bit to extract
* @return the value of the extracted bit
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/precision/EnhancedPrecisionOp.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/precision/EnhancedPrecisionOp.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/precision/EnhancedPrecisionOp.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -189,7 +189,7 @@
* This method should no longer be necessary, since the buffer algorithm
* now is highly robust.
*
- * @param geom0 the first Geometry
+ * @param geom the first Geometry
* @param distance the buffer distance
* @return the Geometry representing the buffer of the input Geometry.
*/
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/LineSegmentIndex.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/LineSegmentIndex.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/LineSegmentIndex.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -6,7 +6,10 @@
import com.vividsolutions.jts.index.quadtree.Quadtree;
/**
- * An index of {@link LineSegments}.
+ * An spatial index on a set of {@link LineSegment}s.
+ * Supports adding and removing items.
+ *
+ * @author Martin Davis
*/
public class LineSegmentIndex
{
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLineSegment.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLineSegment.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLineSegment.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -3,7 +3,7 @@
import com.vividsolutions.jts.geom.*;
/**
- * A {@link LineSegment} which is tagged with its location in a {@link Geometry}.
+ * A {@link LineSegment} which is tagged with its location in a parent {@link Geometry}.
* Used to index the segments in a geometry and recover the segment locations
* from the index.
*/
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLineString.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLineString.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLineString.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -6,7 +6,8 @@
/**
* @version 1.7
*/
-public class TaggedLineString {
+public class TaggedLineString
+{
private LineString parentLine;
private TaggedLineSegment[] segs;
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLineStringSimplifier.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -10,6 +10,7 @@
* (in the sense that no new intersections are introduced).
* Uses the recursive Douglas-Peucker algorithm.
*
+ * @author Martin Davis
* @version 1.7
*/
public class TaggedLineStringSimplifier
@@ -24,7 +25,6 @@
public TaggedLineStringSimplifier(LineSegmentIndex inputIndex,
LineSegmentIndex outputIndex)
{
- this.line = line;
this.inputIndex = inputIndex;
this.outputIndex = outputIndex;
}
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLinesSimplifier.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLinesSimplifier.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TaggedLinesSimplifier.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -4,8 +4,10 @@
import com.vividsolutions.jts.algorithm.*;
/**
- * Simplifies a collection of TaggedLineStrings, preserving topology
+ * Simplifies a collection of {@link TaggedLineString}s, preserving topology
* (in the sense that no new intersections are introduced).
+ * This class is essentially just a container for the common
+ * indexes used by {@link TaggedLineStringSimplifier}.
*/
public class TaggedLinesSimplifier
{
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/simplify/TopologyPreservingSimplifier.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -21,6 +21,8 @@
* (although they may touch at fewer points)
* </ul>
*
+ * @author Martin Davis
+ *
*/
public class TopologyPreservingSimplifier
{
@@ -38,9 +40,7 @@
public TopologyPreservingSimplifier(Geometry inputGeom)
{
this.inputGeom = inputGeom;
- //TESTING: slightly faster, but probably not enough to bother with
- //inputIndex = new LineSegmentIndex(new STRtree());
- }
+ }
/**
* Sets the distance tolerance for the simplification.
Modified: packages/jts/branches/upstream/current/src/com/vividsolutions/jts/util/CollectionUtil.java
===================================================================
--- packages/jts/branches/upstream/current/src/com/vividsolutions/jts/util/CollectionUtil.java 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/com/vividsolutions/jts/util/CollectionUtil.java 2009-09-22 12:40:02 UTC (rev 2489)
@@ -18,7 +18,7 @@
* Executes a function on each item in a {@link Collection}
* and returns the results in a new {@link List}
*
- * @param coll
+ * @param coll the collection to process
* @param func the Function to execute
*/
public static List transform(Collection coll, Function func)
@@ -34,7 +34,7 @@
* Executes a function on each item in a Collection but does
* not accumulate the result
*
- * @param coll
+ * @param coll the collection to process
* @param func the Function to execute
*/
public static void apply(Collection coll, Function func)
@@ -49,7 +49,7 @@
* and collects all the entries for which the result
* of the function is equal to {@link Boolean}.TRUE.
*
- * @param coll
+ * @param collection the collection to process
* @param func the Function to execute
*/
public static List select(Collection collection, Function func) {
Deleted: packages/jts/branches/upstream/current/src/jump-workbench-properties.xml
===================================================================
--- packages/jts/branches/upstream/current/src/jump-workbench-properties.xml 2009-09-22 12:30:04 UTC (rev 2488)
+++ packages/jts/branches/upstream/current/src/jump-workbench-properties.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -1,3 +0,0 @@
-<jump-workbench>
- <extension>com.vividsolutions.jtsplugin.JTSExtension</extension>
-</jump-workbench>
Added: packages/jts/branches/upstream/current/testxml/general/TestBoundary.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestBoundary.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestBoundary.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,165 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>P - point</desc>
+ <a>
+ POINT(10 10)
+ </a>
+<test>
+ <op name="getboundary" arg1="A">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mP - MultiPoint</desc>
+ <a>
+ MULTIPOINT(10 10, 20 20)
+ </a>
+<test>
+ <op name="getboundary" arg1="A">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>L - Line</desc>
+ <a>
+ LINESTRING(10 10, 20 20)
+ </a>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT(10 10, 20 20)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>L - closed</desc>
+ <a>
+ LINESTRING(10 10, 20 20, 20 10, 10 10)
+ </a>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT EMPTY
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>L - self-intersecting with boundary</desc>
+ <a>
+ LINESTRING(40 40, 100 100, 180 100, 180 180, 100 180, 100 100)
+ </a>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT(40 40, 100 100)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mL - 2 lines with common endpoint</desc>
+ <a>
+ MULTILINESTRING(
+ (10 10, 20 20),
+ (20 20, 30 30))
+ </a>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT(10 10, 30 30)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mL - 3 lines with common endpoint</desc>
+ <a>
+ MULTILINESTRING(
+ (10 10, 20 20),
+ (20 20, 30 20),
+ (20 20, 30 30))
+ </a>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT(10 10, 20 20, 30 20, 30 30)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mL - 4 lines with common endpoint</desc>
+ <a>
+ MULTILINESTRING(
+ (10 10, 20 20),
+ (20 20, 30 20),
+ (20 20, 30 30),
+ (20 20, 30 40))
+ </a>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT(10 10, 30 20, 30 30, 30 40)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mL - 2 lines, one closed, with common endpoint</desc>
+ <a>
+ MULTILINESTRING(
+ (10 10, 20 20),
+ (20 20, 20 30, 30 30, 30 20, 20 20))
+ </a>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT(10 10, 20 20)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>L - 1 line, self-intersecting, topologically equal to prev case</desc>
+ <a>
+ MULTILINESTRING(
+ (10 10, 20 20, 20 30, 30 30, 30 20, 20 20))
+ </a>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT(10 10, 20 20)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>A - polygon with no holes</desc>
+ <a>
+ POLYGON(
+ (40 60, 420 60, 420 320, 40 320, 40 60))
+ </a>
+<test>
+ <op name="getboundary" arg1="A">
+ LINESTRING(40 60, 420 60, 420 320, 40 320, 40 60)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>A - polygon with 1 hole</desc>
+ <a>
+ POLYGON(
+ (40 60, 420 60, 420 320, 40 320, 40 60),
+ (200 140, 160 220, 260 200, 200 140))
+ </a>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTILINESTRING(
+ (40 60, 420 60, 420 320, 40 320, 40 60),
+ (200 140, 160 220, 260 200, 200 140))
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestCentroid.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestCentroid.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestCentroid.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,149 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>P - single point</desc>
+ <a> POINT(10 10) </a>
+<test><op name="getCentroid" arg1="A" > POINT(10 10) </op></test>
+</case>
+
+<case>
+ <desc>mP - two points</desc>
+ <a> MULTIPOINT(10 10, 20 20 ) </a>
+<test><op name="getCentroid" arg1="A" > POINT(15 15) </op></test>
+</case>
+
+<case>
+ <desc>mP - 4 points</desc>
+ <a> MULTIPOINT(10 10, 20 20, 10 20, 20 10) </a>
+<test><op name="getCentroid" arg1="A" > POINT(15 15) </op></test>
+</case>
+
+<case>
+ <desc>L - single segment</desc>
+ <a> LINESTRING(10 10, 20 20) </a>
+<test><op name="getCentroid" arg1="A" > POINT(15 15) </op></test>
+</case>
+
+<case>
+ <desc>L - two segments</desc>
+ <a> LINESTRING (60 180, 120 100, 180 180) </a>
+<test><op name="getCentroid" arg1="A" > POINT (120 140) </op></test>
+</case>
+
+<case>
+ <desc>L - elongated horseshoe</desc>
+ <a> LINESTRING (80 0, 80 120, 120 120, 120 0))
+ </a>
+<test><op name="getCentroid" arg1="A" > POINT (100 69) </op></test>
+</case>
+
+
+<case>
+ <desc>mL - two single-segment lines</desc>
+ <a> MULTILINESTRING ((0 0, 0 100), (100 0, 100 100)) </a>
+<test><op name="getCentroid" arg1="A" > POINT (50 50) </op></test>
+</case>
+
+<case>
+ <desc>mL - two concentric rings, offset</desc>
+ <a> MULTILINESTRING ((0 0, 0 200, 200 200, 200 0, 0 0),
+ (60 180, 20 180, 20 140, 60 140, 60 180))
+</a>
+<test><op name="getCentroid" arg1="A" > POINT (90 110) </op></test>
+</case>
+
+<case>
+ <desc>mL - complicated symmetrical collection of lines</desc>
+ <a> MULTILINESTRING ((20 20, 60 60),
+ (20 -20, 60 -60),
+ (-20 -20, -60 -60),
+ (-20 20, -60 60),
+ (-80 0, 0 80, 80 0, 0 -80, -80 0),
+ (-40 20, -40 -20),
+ (-20 40, 20 40),
+ (40 20, 40 -20),
+ (20 -40, -20 -40)) </a>
+<test><op name="getCentroid" arg1="A" > POINT (0 0) </op></test>
+</case>
+
+<case>
+ <desc>A - box</desc>
+ <a> POLYGON ((40 160, 160 160, 160 40, 40 40, 40 160)) </a>
+<test><op name="getCentroid" arg1="A" > POINT (100 100) </op></test>
+</case>
+
+<case>
+ <desc>A - box with hole</desc>
+ <a> POLYGON ((0 200, 200 200, 200 0, 0 0, 0 200), (20 180, 80 180, 80 20, 20 20, 20 180)) </a>
+<test><op name="getCentroid" arg1="A" > POINT (116 100) </op></test>
+</case>
+
+<case>
+ <desc>A - box with offset hole (showing difference between area and line centroid)</desc>
+ <a> POLYGON ((0 0, 0 200, 200 200, 200 0, 0 0),
+ (60 180, 20 180, 20 140, 60 140, 60 180))
+ </a>
+<test><op name="getCentroid" arg1="A" > POINT (103 98) </op></test>
+</case>
+
+<case>
+ <desc>A - box with 2 symmetric holes </desc>
+ <a> POLYGON ((0 0, 0 200, 200 200, 200 0, 0 0),
+ (60 180, 20 180, 20 140, 60 140, 60 180),
+ (180 60, 140 60, 140 20, 180 20, 180 60))
+ </a>
+<test><op name="getCentroid" arg1="A" > POINT (100 100) </op></test>
+</case>
+
+<case>
+ <desc>mA - symmetric angles</desc>
+ <a> MULTIPOLYGON (((0 40, 0 140, 140 140, 140 120, 20 120, 20 40, 0 40)),
+ ((0 0, 0 20, 120 20, 120 100, 140 100, 140 0, 0 0)))
+ </a>
+<test><op name="getCentroid" arg1="A" > POINT (70 70) </op></test>
+</case>
+
+<case>
+ <desc>GC - two adjacent polygons (showing that centroids are additive) </desc>
+ <a> GEOMETRYCOLLECTION (POLYGON ((0 200, 20 180, 20 140, 60 140, 200 0, 0 0, 0 200)),
+ POLYGON ((200 200, 0 200, 20 180, 60 180, 60 140, 200 0, 200 200)))
+ </a>
+<test><op name="getCentroid" arg1="A" > POINT (103 98) </op></test>
+</case>
+
+<case>
+ <desc>GC - heterogeneous collection of lines, points</desc>
+ <a> GEOMETRYCOLLECTION (LINESTRING (80 0, 80 120, 120 120, 120 0),
+ MULTIPOINT (20 60, 40 80, 60 60))
+ </a>
+<test><op name="getCentroid" arg1="A" > POINT (100 69) </op></test>
+</case>
+
+<case>
+ <desc>GC - heterogeneous collection of polygons, line</desc>
+ <a> GEOMETRYCOLLECTION (POLYGON ((0 40, 40 40, 40 0, 0 0, 0 40)),
+ LINESTRING (80 0, 80 80, 120 40))
+ </a>
+<test><op name="getCentroid" arg1="A" > POINT (20 20) </op></test>
+</case>
+
+<case>
+ <desc>GC - heterogeneous collection of polygons, lines, points</desc>
+ <a> GEOMETRYCOLLECTION (POLYGON ((0 40, 40 40, 40 0, 0 0, 0 40)),
+ LINESTRING (80 0, 80 80, 120 40),
+ MULTIPOINT (20 60, 40 80, 60 60))
+ </a>
+<test><op name="getCentroid" arg1="A" > POINT (20 20) </op></test>
+</case>
+
+<case>
+ <desc>GC - overlapping polygons </desc>
+ <a> GEOMETRYCOLLECTION (POLYGON ((20 100, 20 -20, 60 -20, 60 100, 20 100)),
+ POLYGON ((-20 60, 100 60, 100 20, -20 20, -20 60)))
+ </a>
+<test><op name="getCentroid" arg1="A" > POINT (40 40) </op></test>
+</case>
+
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestConvexHull-big.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestConvexHull-big.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestConvexHull-big.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,17 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>Big convex hull</desc>
+ <a>
+ MULTIPOINT(-1000000000000000000000000 -1000000000000000000000000, 1000000000000000000000000 -1000000000000000000000000, 1000000000000000000000000 1000000000000000000000000, -1000000000000000000000000 1000000000000000000000000, 0 0)
+ </a>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (-1000000000000000000000000 -1000000000000000000000000, -1000000000000000000000000 1000000000000000000000000, 1000000000000000000000000 1000000000000000000000000, 1000000000000000000000000 -1000000000000000000000000, -1000000000000000000000000 -1000000000000000000000000))
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestConvexHull.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestConvexHull.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestConvexHull.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,181 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>Several points collinear and overlapping</desc>
+ <a>
+ MULTIPOINT(130 240, 130 240, 130 240, 570 240, 570 240, 570 240, 650 240)
+ </a>
+<test>
+ <op name="convexhull" arg1="A">
+ LINESTRING(130 240, 650 240)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>Convex hull</desc>
+ <a>
+ POLYGON(
+ (40 60, 420 60, 420 320, 40 320, 40 60),
+ (200 140, 160 220, 260 200, 200 140))
+ </a>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (40 60, 40 320, 420 320, 420 60, 40 60))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>Convex hull</desc>
+ <a>
+ POLYGON(
+ (10 10, 100 10, 100 100, 10 100, 10 10))
+ </a>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (10 10, 10 100, 100 100, 100 10, 10 10))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>Point</desc>
+ <a>
+ POINT(20 20)
+ </a>
+<test>
+ <op name="convexhull" arg1="A">
+ POINT(20 20)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>Horizontal Line</desc>
+ <a>
+ LINESTRING(30 220, 240 220, 240 220)
+ </a>
+<test>
+ <op name="convexhull" arg1="A">
+ LINESTRING(30 220, 240 220)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>Vertical Line</desc>
+ <a>
+ LINESTRING(110 290, 110 100, 110 100)
+ </a>
+<test>
+ <op name="convexhull" arg1="A">
+ LINESTRING(110 290, 110 100)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>Spiral</desc>
+ <a>
+ LINESTRING(120 230, 120 200, 150 180, 180 220, 160 260, 90 250, 80 190, 140 110, 230 150,
+ 240 230, 180 320, 60 310, 40 160, 140 50, 280 140)
+ </a>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (140 50, 40 160, 60 310, 180 320, 240 230, 280 140, 140 50))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>Starlike Polygon</desc>
+ <a>
+ POLYGON(
+ (200 360, 230 210, 100 190, 270 150, 360 10, 320 200, 490 230, 280 240, 200 360),
+ (220 300, 250 200, 150 190, 290 150, 330 70, 310 210, 390 230, 280 230, 220 300))
+ </a>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (360 10, 100 190, 200 360, 490 230, 360 10))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>Most of the points in one area</desc>
+ <a>
+ MULTIPOINT(70 340, 70 50, 430 50, 420 340, 340 120, 390 110, 390 70, 350 100, 350 50,
+ 370 90, 320 80, 360 120, 350 80, 390 90, 420 80, 410 60, 410 100, 370 100, 380 60,
+ 370 80, 380 100, 360 80, 370 80, 380 70, 390 80, 390 70, 410 70, 400 60, 410 60,
+ 410 60, 410 60, 370 70, 410 50, 410 50, 410 50, 410 50, 410 50, 410 50, 410 50)
+ </a>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (70 50, 70 340, 420 340, 430 50, 70 50))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>Multipoint</desc>
+ <a>
+ MULTIPOINT(140 350, 510 140, 110 140, 250 290, 250 50, 300 370, 450 310, 440 160, 290 280,
+ 220 160, 100 260, 320 230, 200 280, 360 130, 330 210, 380 80, 220 210, 380 310, 260 150,
+ 260 110, 170 130)
+ </a>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (250 50, 110 140, 100 260, 140 350, 300 370, 450 310, 510 140, 380 80, 250 50))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>GeometryCollection</desc>
+ <a>
+ GEOMETRYCOLLECTION(
+ POINT(110 300),
+ POINT(100 110),
+ POINT(130 210),
+ POINT(150 210),
+ POINT(150 180),
+ POINT(130 170),
+ POINT(140 190),
+ POINT(130 200),
+ LINESTRING(240 50, 210 120, 270 80, 250 140, 330 70, 300 160, 340 130, 340 130),
+ POLYGON(
+ (210 340, 220 260, 150 270, 230 220, 230 140, 270 210, 360 240, 260 250, 260 280,
+ 240 270, 210 340),
+ (230 270, 230 250, 200 250, 240 220, 240 190, 260 220, 290 230, 250 230, 230 270)))
+ </a>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (240 50, 100 110, 110 300, 210 340, 360 240, 330 70, 240 50))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>Collinear L</desc>
+ <a>
+ MULTIPOINT(50 320, 50 280, 50 230, 50 160, 50 120, 100 120, 160 120, 210 120, 210 180,
+ 210 150, 180 180, 140 180, 140 210, 140 260, 160 180, 140 300, 140 320, 110 320, 80 320)
+ </a>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (50 120, 50 320, 140 320, 210 180, 210 120, 50 120))
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestFunctionAA.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestFunctionAA.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestFunctionAA.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,633 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>AA - simple polygons</desc>
+ <a>
+ POLYGON(
+ (10 10, 100 10, 100 100, 10 100, 10 10))
+ </a>
+ <b>
+ POLYGON(
+ (50 50, 200 50, 200 200, 50 200, 50 50))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POLYGON(
+ (50 50, 50 100, 100 100, 100 50, 50 50))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ POLYGON(
+ (10 10, 10 100, 50 100, 50 200, 200 200, 200 50, 100 50, 100 10, 10 10))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POLYGON(
+ (10 10, 10 100, 50 100, 50 50, 100 50, 100 10, 10 10))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (10 10, 10 100, 50 100, 50 50, 100 50, 100 10, 10 10)),
+ (
+ (50 100, 50 200, 200 200, 200 50, 100 50, 100 100, 50 100)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - A with hole intersecting B</desc>
+ <a>
+ POLYGON(
+ (20 20, 20 160, 160 160, 160 20, 20 20),
+ (140 140, 40 140, 40 40, 140 40, 140 140))
+ </a>
+ <b>
+ POLYGON(
+ (80 100, 220 100, 220 240, 80 240, 80 100))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POLYGON(
+ (80 140, 80 160, 160 160, 160 100, 140 100, 140 140, 80 140))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ POLYGON(
+ (20 20, 20 160, 80 160, 80 240, 220 240, 220 100, 160 100, 160 20, 20 20),
+ (80 100, 80 140, 40 140, 40 40, 140 40, 140 100, 80 100))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POLYGON(
+ (20 20, 20 160, 80 160, 80 140, 40 140, 40 40, 140 40, 140 100, 160 100,
+ 160 20, 20 20))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (20 20, 20 160, 80 160, 80 140, 40 140, 40 40, 140 40, 140 100, 160 100,
+ 160 20, 20 20)),
+ (
+ (80 100, 80 140, 140 140, 140 100, 80 100)),
+ (
+ (80 160, 80 240, 220 240, 220 100, 160 100, 160 160, 80 160)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - simple polygons #2</desc>
+ <a>
+ POLYGON(
+ (20 340, 330 380, 50 40, 20 340))
+ </a>
+ <b>
+ POLYGON(
+ (210 320, 140 270, 0 270, 140 220, 210 320))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POLYGON(
+ (27 270, 140 270, 210 320, 140 220, 28 260, 27 270))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ POLYGON(
+ (20 340, 330 380, 50 40, 28 260, 0 270, 27 270, 20 340))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POLYGON(
+ (20 340, 330 380, 50 40, 28 260, 140 220, 210 320, 140 270, 27 270, 20 340))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (20 340, 330 380, 50 40, 28 260, 140 220, 210 320, 140 270, 27 270, 20 340)),
+ (
+ (27 270, 28 260, 0 270, 27 270)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - simple polygons intersecting in P, L and A</desc>
+ <a>
+ POLYGON((0 0, 110 0, 110 60, 40 60, 180 140, 40 220, 110 260, 0 260, 0 0))
+ </a>
+ <b>
+ POLYGON((220 0, 110 0, 110 60, 180 60, 40 140, 180 220, 110 260, 220 260, 220 0))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(110 260),
+ LINESTRING(110 0, 110 60),
+ POLYGON(
+ (110 100, 40 140, 110 180, 180 140, 110 100)))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ POLYGON(
+ (110 0, 0 0, 0 260, 110 260, 220 260, 220 0, 110 0),
+ (110 260, 40 220, 110 180, 180 220, 110 260),
+ (110 100, 40 60, 110 60, 180 60, 110 100))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POLYGON(
+ (110 0, 0 0, 0 260, 110 260, 40 220, 110 180, 40 140, 110 100, 40 60,
+ 110 60, 110 0))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ POLYGON(
+ (110 0, 0 0, 0 260, 110 260, 220 260, 220 0, 110 0),
+ (110 260, 40 220, 110 180, 180 220, 110 260),
+ (110 180, 40 140, 110 100, 180 140, 110 180),
+ (110 100, 40 60, 110 60, 180 60, 110 100))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - simple polygons with two touching holes in their symDifference</desc>
+ <a>
+ POLYGON(
+ (0 0, 120 0, 120 50, 50 50, 120 100, 50 150, 120 150, 120 190, 0 190,
+ 0 0))
+ </a>
+ <b>
+ POLYGON(
+ (230 0, 120 0, 120 50, 190 50, 120 100, 190 150, 120 150, 120 190, 230 190,
+ 230 0))
+ </b>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ POLYGON(
+ (120 0, 0 0, 0 190, 120 190, 230 190, 230 0, 120 0),
+ (120 100, 50 50, 120 50, 190 50, 120 100),
+ (120 100, 190 150, 120 150, 50 150, 120 100))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AmA - A simple, symDiff contains inversion</desc>
+ <a>
+ POLYGON(
+ (0 0, 210 0, 210 230, 0 230, 0 0))
+ </a>
+ <b>
+ MULTIPOLYGON(
+ (
+ (40 20, 0 0, 20 40, 60 60, 40 20)),
+ (
+ (60 90, 60 60, 90 60, 90 90, 60 90)),
+ (
+ (70 120, 90 90, 100 120, 70 120)),
+ (
+ (120 70, 90 90, 120 100, 120 70)))
+ </b>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ POLYGON(
+ (0 0, 0 230, 210 230, 210 0, 0 0),
+ (0 0, 40 20, 60 60, 20 40, 0 0),
+ (60 60, 90 60, 90 90, 60 90, 60 60),
+ (90 90, 120 70, 120 100, 90 90),
+ (90 90, 100 120, 70 120, 90 90))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AmA - A simple, B connected multiPolygon touching A at vertex</desc>
+ <a>
+ POLYGON(
+ (0 0, 340 0, 340 300, 0 300, 0 0))
+ </a>
+ <b>
+ MULTIPOLYGON(
+ (
+ (40 20, 0 0, 20 40, 60 60, 40 20)),
+ (
+ (60 100, 60 60, 100 60, 100 100, 60 100)))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (40 20, 0 0, 20 40, 60 60, 40 20)),
+ (
+ (60 60, 60 100, 100 100, 100 60, 60 60)))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ POLYGON(
+ (0 0, 0 300, 340 300, 340 0, 0 0),
+ (0 0, 40 20, 60 60, 20 40, 0 0),
+ (60 60, 100 60, 100 100, 60 100, 60 60))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AmA - A simple, B connected multiPolygon touching A at interior of edge</desc>
+ <a>
+ POLYGON(
+ (0 0, 120 0, 120 120, 0 120, 0 0))
+ </a>
+ <b>
+ MULTIPOLYGON(
+ (
+ (60 20, 0 20, 60 60, 60 20)),
+ (
+ (60 100, 60 60, 100 60, 100 100, 60 100)))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (60 20, 0 20, 60 60, 60 20)),
+ (
+ (60 60, 60 100, 100 100, 100 60, 60 60)))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ POLYGON(
+ (0 20, 0 120, 120 120, 120 0, 0 0, 0 20))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POLYGON(
+ (0 20, 0 120, 120 120, 120 0, 0 0, 0 20),
+ (0 20, 60 20, 60 60, 0 20),
+ (60 60, 100 60, 100 100, 60 100, 60 60))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ POLYGON(
+ (0 20, 0 120, 120 120, 120 0, 0 0, 0 20),
+ (0 20, 60 20, 60 60, 0 20),
+ (60 60, 100 60, 100 100, 60 100, 60 60))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - simple polygons with holes</desc>
+ <a>
+ POLYGON(
+ (160 330, 60 260, 20 150, 60 40, 190 20, 270 130, 260 250, 160 330),
+ (140 240, 80 190, 90 100, 160 70, 210 130, 210 210, 140 240))
+ </a>
+ <b>
+ POLYGON(
+ (300 330, 190 270, 150 170, 150 110, 250 30, 380 50, 380 250, 300 330),
+ (290 240, 240 200, 240 110, 290 80, 330 170, 290 240))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POLYGON(
+ (251 104, 217 57, 176 89, 210 130, 210 210, 172 226, 190 270, 217 285, 260 250,
+ 263 218, 240 200, 240 110, 251 104))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (217 57, 190 20, 60 40, 20 150, 60 260, 160 330, 217 285, 190 270, 172 226,
+ 140 240, 80 190, 90 100, 160 70, 176 89, 217 57)),
+ (
+ (217 57, 251 104, 290 80, 330 170, 290 240, 263 218, 260 250, 217 285, 300 330,
+ 380 250, 380 50, 250 30, 217 57)),
+ (
+ (263 218, 270 130, 251 104, 240 110, 240 200, 263 218)),
+ (
+ (172 226, 210 210, 210 130, 176 89, 150 110, 150 170, 172 226)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - simple polygons with hole touching shell</desc>
+ <a>
+ POLYGON ((20 0, 20 160, 200 160, 200 0, 20 0))
+ </a>
+ <b>
+ POLYGON ((220 80, 0 80, 0 240, 220 240, 220 80),
+ (100 80, 120 120, 80 120, 100 80))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POLYGON ((20 80, 20 160, 200 160, 200 80, 100 80, 20 80),
+ (100 80, 120 120, 80 120, 100 80))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ POLYGON ((20 0, 20 80, 0 80, 0 240, 220 240, 220 80, 200 80, 200 0, 20 0))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTIPOLYGON (((20 0, 20 80, 100 80, 200 80, 200 0, 20 0)),
+ ((100 80, 80 120, 120 120, 100 80)))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON (((20 0, 20 80, 100 80, 200 80, 200 0, 20 0)),
+ ((200 80, 200 160, 20 160, 20 80, 0 80, 0 240, 220 240, 220 80, 200 80)),
+ ((100 80, 80 120, 120 120, 100 80)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mAmA - complex polygons touching and overlapping</desc>
+ <a>
+ MULTIPOLYGON(
+ (
+ (120 340, 120 200, 140 200, 140 280, 160 280, 160 200, 180 200, 180 280, 200 280,
+ 200 200, 220 200, 220 340, 120 340)),
+ (
+ (360 200, 220 200, 220 180, 300 180, 300 160, 220 160, 220 140, 300 140, 300 120,
+ 220 120, 220 100, 360 100, 360 200)))
+ </a>
+ <b>
+ MULTIPOLYGON(
+ (
+ (100 220, 100 200, 300 200, 300 220, 100 220)),
+ (
+ (280 180, 280 160, 300 160, 300 180, 280 180)),
+ (
+ (220 140, 220 120, 240 120, 240 140, 220 140)),
+ (
+ (180 220, 160 240, 200 240, 180 220)))
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTILINESTRING(
+ (120 340, 120 200, 140 200, 140 280, 160 280, 160 200, 180 200, 180 280, 200 280,
+ 200 200, 220 200, 220 340, 120 340),
+ (360 200, 220 200, 220 180, 300 180, 300 160, 220 160, 220 140, 300 140, 300 120,
+ 220 120, 220 100, 360 100, 360 200))
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (220 100, 120 200, 120 340, 220 340, 360 200, 360 100, 220 100))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(200 240),
+ LINESTRING(300 200, 220 200),
+ LINESTRING(280 180, 300 180),
+ LINESTRING(300 180, 300 160),
+ LINESTRING(300 160, 280 160),
+ LINESTRING(220 140, 240 140),
+ LINESTRING(240 120, 220 120),
+ POLYGON(
+ (120 200, 120 220, 140 220, 140 200, 120 200)),
+ POLYGON(
+ (160 200, 160 220, 180 220, 180 200, 160 200)),
+ POLYGON(
+ (180 240, 180 220, 160 240, 180 240)),
+ POLYGON(
+ (200 200, 200 220, 220 220, 220 200, 200 200)))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ POLYGON(
+ (120 220, 120 340, 220 340, 220 220, 300 220, 300 200, 360 200, 360 100, 220 100,
+ 220 120, 220 140, 220 160, 280 160, 280 180, 220 180, 220 200, 200 200, 180 200, 160 200,
+ 140 200, 120 200, 100 200, 100 220, 120 220),
+ (200 240, 200 280, 180 280, 180 240, 200 240),
+ (200 240, 180 220, 200 220, 200 240),
+ (160 240, 160 280, 140 280, 140 220, 160 220, 160 240),
+ (240 120, 300 120, 300 140, 240 140, 240 120))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (120 220, 120 340, 220 340, 220 220, 200 220, 200 240, 200 280, 180 280, 180 240,
+ 160 240, 160 280, 140 280, 140 220, 120 220)),
+ (
+ (160 220, 160 240, 180 220, 160 220)),
+ (
+ (300 200, 360 200, 360 100, 220 100, 220 120, 240 120, 300 120, 300 140, 240 140,
+ 220 140, 220 160, 280 160, 300 160, 300 180, 280 180, 220 180, 220 200, 300 200)))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (120 220, 120 340, 220 340, 220 220, 200 220, 200 240, 200 280, 180 280, 180 240,
+ 160 240, 160 280, 140 280, 140 220, 120 220)),
+ (
+ (120 220, 120 200, 100 200, 100 220, 120 220)),
+ (
+ (140 200, 140 220, 160 220, 160 200, 140 200)),
+ (
+ (160 220, 160 240, 180 220, 160 220)),
+ (
+ (180 200, 180 220, 200 220, 200 200, 180 200)),
+ (
+ (180 220, 180 240, 200 240, 180 220)),
+ (
+ (220 200, 220 220, 300 220, 300 200, 360 200, 360 100, 220 100, 220 120, 220 140,
+ 220 160, 280 160, 280 180, 220 180, 220 200),
+ (240 120, 300 120, 300 140, 240 140, 240 120)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mAmA - complex polygons touching</desc>
+ <a>
+ MULTIPOLYGON(
+ (
+ (100 200, 100 180, 120 180, 120 200, 100 200)),
+ (
+ (60 240, 60 140, 220 140, 220 160, 160 160, 160 180, 200 180, 200 200, 160 200,
+ 160 220, 220 220, 220 240, 60 240),
+ (80 220, 80 160, 140 160, 140 220, 80 220)),
+ (
+ (280 220, 240 180, 260 160, 300 200, 280 220)))
+ </a>
+ <b>
+ MULTIPOLYGON(
+ (
+ (80 220, 80 160, 140 160, 140 220, 80 220),
+ (100 200, 100 180, 120 180, 120 200, 100 200)),
+ (
+ (220 240, 220 220, 160 220, 160 200, 220 200, 220 180, 160 180, 160 160, 220 160,
+ 220 140, 320 140, 320 240, 220 240),
+ (240 220, 240 160, 300 160, 300 220, 240 220)))
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTILINESTRING(
+ (100 200, 100 180, 120 180, 120 200, 100 200),
+ (60 240, 60 140, 220 140, 220 160, 160 160, 160 180, 200 180, 200 200, 160 200,
+ 160 220, 220 220, 220 240, 60 240),
+ (80 220, 80 160, 140 160, 140 220, 80 220),
+ (280 220, 240 180, 260 160, 300 200, 280 220))
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (60 140, 60 240, 220 240, 280 220, 300 200, 260 160, 220 140, 60 140))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(240 180),
+ POINT(260 160),
+ POINT(280 220),
+ POINT(300 200),
+ LINESTRING(100 200, 100 180),
+ LINESTRING(100 180, 120 180),
+ LINESTRING(120 180, 120 200),
+ LINESTRING(120 200, 100 200),
+ LINESTRING(220 140, 220 160),
+ LINESTRING(220 160, 160 160),
+ LINESTRING(160 160, 160 180),
+ LINESTRING(160 180, 200 180),
+ LINESTRING(200 200, 160 200),
+ LINESTRING(160 200, 160 220),
+ LINESTRING(160 220, 220 220),
+ LINESTRING(220 220, 220 240),
+ LINESTRING(80 220, 80 160),
+ LINESTRING(80 160, 140 160),
+ LINESTRING(140 160, 140 220),
+ LINESTRING(140 220, 80 220))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (220 140, 60 140, 60 240, 220 240, 320 240, 320 140, 220 140),
+ (200 200, 200 180, 220 180, 220 200, 200 200),
+ (240 220, 240 180, 240 160, 260 160, 300 160, 300 200, 300 220, 280 220, 240 220)),
+ (
+ (240 180, 280 220, 300 200, 260 160, 240 180)))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (100 180, 100 200, 120 200, 120 180, 100 180)),
+ (
+ (220 140, 60 140, 60 240, 220 240, 220 220, 160 220, 160 200, 200 200, 200 180,
+ 160 180, 160 160, 220 160, 220 140),
+ (80 220, 80 160, 140 160, 140 220, 80 220)),
+ (
+ (240 180, 280 220, 300 200, 260 160, 240 180)))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (220 140, 60 140, 60 240, 220 240, 320 240, 320 140, 220 140),
+ (200 200, 200 180, 220 180, 220 200, 200 200),
+ (240 220, 240 180, 240 160, 260 160, 300 160, 300 200, 300 220, 280 220, 240 220)),
+ (
+ (240 180, 280 220, 300 200, 260 160, 240 180)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - hole intersecting boundary to produce line</desc>
+ <a>
+ POLYGON(
+ (60 160, 140 160, 140 60, 60 60, 60 160))
+ </a>
+ <b>
+ POLYGON(
+ (160 160, 100 160, 100 100, 160 100, 160 160),
+ (140 140, 120 140, 120 120, 140 120, 140 140))
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ LINESTRING(60 160, 140 160, 140 60, 60 60, 60 160)
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (60 60, 60 160, 140 160, 140 60, 60 60))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(140 140, 140 120),
+ POLYGON(
+ (100 160, 140 160, 140 140, 120 140, 120 120, 140 120, 140 100, 100 100, 100 160)))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ POLYGON(
+ (60 160, 100 160, 140 160, 160 160, 160 100, 140 100, 140 60, 60 60, 60 160))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (60 160, 100 160, 100 100, 140 100, 140 60, 60 60, 60 160)),
+ (
+ (140 140, 140 120, 120 120, 120 140, 140 140)))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (60 160, 100 160, 100 100, 140 100, 140 60, 60 60, 60 160)),
+ (
+ (140 140, 140 160, 160 160, 160 100, 140 100, 140 120, 120 120, 120 140, 140 140)))
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestFunctionAAPrec.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestFunctionAAPrec.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestFunctionAAPrec.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,828 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>AA - sliver triangle, cut by polygon</desc>
+ <a>
+ POLYGON(
+ (10 10, 100 10, 10 11, 10 10))
+ </a>
+ <b>
+ POLYGON(
+ (90 0, 200 0, 200 200, 90 200, 90 0))
+ </b>
+<test>
+ <op name="relate" arg3="212101212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ LINESTRING(90 10, 100 10)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (90 10, 10 10, 10 11, 90 10)),
+ (
+ (90 10, 90 200, 200 200, 200 0, 90 0, 90 10)))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POLYGON(
+ (90 10, 10 10, 10 11, 90 10))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (90 10, 10 10, 10 11, 90 10)),
+ (
+ (90 10, 90 200, 200 200, 200 0, 90 0, 90 10)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - polygon with outward sliver, cut by polygon</desc>
+ <a>
+ POLYGON(
+ (100 10, 10 10, 90 11, 90 20, 100 20, 100 10))
+ </a>
+ <b>
+ POLYGON(
+ (20 20, 0 20, 0 0, 20 0, 20 20))
+ </b>
+<test>
+ <op name="relate" arg3="212101212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ LINESTRING(20 10, 10 10)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - narrow wedge in polygon</desc>
+ <a>
+ POLYGON((10 10, 50 10, 50 50, 10 50, 10 31, 49 30, 10 30, 10 10))
+ </a>
+ <b>
+ POLYGON((60 40, 40 40, 40 20, 60 20, 60 40))
+ </b>
+<test>
+ <op name="relate" arg3="212101212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POLYGON(
+ (50 40, 50 20, 40 20, 40 30, 40 40, 50 40))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ POLYGON(
+ (50 20, 50 10, 10 10, 10 30, 40 30, 10 31, 10 50, 50 50, 50 40,
+ 60 40, 60 20, 50 20))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (50 20, 50 10, 10 10, 10 30, 40 30, 40 20, 50 20)),
+ (
+ (40 30, 10 31, 10 50, 50 50, 50 40, 40 40, 40 30)))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (50 20, 50 10, 10 10, 10 30, 40 30, 40 20, 50 20)),
+ (
+ (50 20, 50 40, 60 40, 60 20, 50 20)),
+ (
+ (40 30, 10 31, 10 50, 50 50, 50 40, 40 40, 40 30)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - hole close to shell</desc>
+ <a>
+ POLYGON(
+ (10 100, 10 10, 100 10, 100 100, 10 100),
+ (90 90, 11 90, 10 10, 90 11, 90 90))
+ </a>
+ <b>
+ POLYGON(
+ (0 30, 0 0, 30 0, 30 30, 0 30))
+ </b>
+<test>
+ <op name="relate" arg3="212101212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (10 30, 10 10),
+ (10 10, 30 10))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)),
+ (
+ (30 10, 30 0, 0 0, 0 30, 10 30, 30 30, 30 10)))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POLYGON(
+ (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)),
+ (
+ (30 10, 30 0, 0 0, 0 30, 10 30, 30 30, 30 10)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mAA - shells close together</desc>
+ <a>
+ MULTIPOLYGON(
+ (
+ (0 0, 100 0, 100 20, 0 20, 0 0)),
+ (
+ (0 40, 0 21, 100 20, 100 40, 0 40)))
+ </a>
+ <b>
+ POLYGON(
+ (110 30, 90 30, 90 10, 110 10, 110 30))
+ </b>
+<test>
+ <op name="relate" arg3="212101212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(100 20, 90 20),
+ POLYGON(
+ (100 20, 100 10, 90 10, 90 20, 90 30, 100 30, 100 20)))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ POLYGON(
+ (100 10, 100 0, 0 0, 0 20, 90 20, 0 21, 0 40, 100 40, 100 30,
+ 110 30, 110 10, 100 10))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (100 10, 100 0, 0 0, 0 20, 90 20, 90 10, 100 10)),
+ (
+ (90 20, 0 21, 0 40, 100 40, 100 30, 90 30, 90 20)))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (100 10, 100 0, 0 0, 0 20, 90 20, 90 10, 100 10)),
+ (
+ (100 10, 100 20, 100 30, 110 30, 110 10, 100 10)),
+ (
+ (90 20, 0 21, 0 40, 100 40, 100 30, 90 30, 90 20)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - A sliver triangle cutting all the way across B</desc>
+ <a>
+ POLYGON(
+ (100 10, 0 10, 100 11, 100 10))
+ </a>
+ <b>
+ POLYGON(
+ (20 20, 0 20, 0 0, 20 0, 20 20))
+ </b>
+<test>
+ <op name="relate" arg3="212101212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ LINESTRING(20 10, 0 10)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (100 10, 20 10, 100 11, 100 10)),
+ (
+ (0 10, 0 20, 20 20, 20 10, 20 0, 0 0, 0 10)))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POLYGON(
+ (100 10, 20 10, 100 11, 100 10))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (100 10, 20 10, 100 11, 100 10)),
+ (
+ (0 10, 0 20, 20 20, 20 10, 20 0, 0 0, 0 10)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - A polygon with sliver cutting all the way across B</desc>
+ <a>
+ POLYGON(
+ (100 10, 0 10, 90 11, 90 20, 100 20, 100 10))
+ </a>
+ <b>
+ POLYGON(
+ (20 20, 0 20, 0 0, 20 0, 20 20))
+ </b>
+<test>
+ <op name="relate" arg3="212101212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ LINESTRING(20 10, 0 10)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (100 10, 20 10, 90 11, 90 20, 100 20, 100 10)),
+ (
+ (0 10, 0 20, 20 20, 20 10, 20 0, 0 0, 0 10)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - hole close to shell, B coincident with A</desc>
+ <a>
+ POLYGON(
+ (10 100, 10 10, 100 10, 100 100, 10 100),
+ (90 90, 11 90, 10 10, 90 11, 90 90))
+ </a>
+ <b>
+ POLYGON(
+ (10 30, 10 0, 30 10, 30 30, 10 30))
+ </b>
+<test>
+ <op name="relate" arg3="212111212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (10 30, 10 10),
+ (10 10, 30 10))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)),
+ (
+ (10 10, 10 30, 30 30, 30 10, 10 0, 10 10)))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POLYGON(
+ (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)),
+ (
+ (10 10, 10 30, 30 30, 30 10, 10 0, 10 10)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - A hole close to shell, B coincident with A</desc>
+ <a>
+ POLYGON(
+ (10 100, 10 10, 100 10, 100 100, 10 100),
+ (90 90, 11 90, 10 10, 90 11, 90 90))
+ </a>
+ <b>
+ POLYGON(
+ (10 30, 10 10, 30 10, 30 30, 10 30))
+ </b>
+<test>
+ <op name="relate" arg3="212111212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (10 30, 10 10),
+ (10 10, 30 10))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)),
+ (
+ (10 10, 10 30, 30 30, 30 10, 10 10)))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POLYGON(
+ (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)),
+ (
+ (10 10, 10 30, 30 30, 30 10, 10 10)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - B hole close to shell, A coincident with B</desc>
+ <a>
+ POLYGON(
+ (10 30, 10 10, 30 10, 30 30, 10 30))
+ </a>
+ <b>
+ POLYGON(
+ (10 100, 10 10, 100 10, 100 100, 10 100),
+ (90 90, 11 90, 10 10, 90 11, 90 90))
+ </b>
+<test>
+ <op name="relate" arg3="212111212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (10 30, 10 10),
+ (10 10, 30 10))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)),
+ (
+ (10 10, 10 30, 30 30, 30 10, 10 10)))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POLYGON(
+ (10 10, 10 30, 30 30, 30 10, 10 10))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (10 30, 10 100, 100 100, 100 10, 30 10, 90 11, 90 90, 11 90, 10 30)),
+ (
+ (10 10, 10 30, 30 30, 30 10, 10 10)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - B sliver crossing A triangle in line segment with length < 1</desc>
+ <a>
+ POLYGON(
+ (0 0, 200 0, 0 198, 0 0))
+ </a>
+ <b>
+ POLYGON(
+ (280 60, 139 60, 280 70, 280 60))
+ </b>
+<test>
+ <op name="relate" arg3="212101212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POINT(139 60)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (139 60, 200 0, 0 0, 0 198, 139 60)),
+ (
+ (280 60, 139 60, 280 70, 280 60)))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POLYGON(
+ (139 60, 200 0, 0 0, 0 198, 139 60))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (139 60, 200 0, 0 0, 0 198, 139 60)),
+ (
+ (280 60, 139 60, 280 70, 280 60)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - sliver triangles, at angle to each other</desc>
+ <a>
+ POLYGON(
+ (0 0, 140 10, 0 20, 0 0))
+ </a>
+ <b>
+ POLYGON(
+ (280 0, 139 10, 280 1, 280 0))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ LINESTRING(140 10, 139 10)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - sliver triangle with multiple intersecting boxes</desc>
+ <a>
+ MULTIPOLYGON(
+ (
+ (1 4, 1 1, 2 1, 2 4, 1 4)),
+ (
+ (3 4, 3 1, 4 1, 4 4, 3 4)),
+ (
+ (5 4, 5 1, 6 1, 6 4, 5 4)),
+ (
+ (7 4, 7 1, 8 1, 8 4, 7 4)),
+ (
+ (9 4, 9 1, 10 1, 10 4, 9 4)))
+ </a>
+ <b>
+ POLYGON(
+ (0 2, 11 3, 11 2, 0 2))
+ </b>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (1 1, 1 4, 10 4, 10 1, 1 1))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(1 2, 2 2),
+ LINESTRING(3 2, 4 2),
+ POLYGON(
+ (6 3, 6 2, 5 2, 6 3)),
+ POLYGON(
+ (7 2, 7 3, 8 3, 8 2, 7 2)),
+ POLYGON(
+ (9 2, 9 3, 10 3, 10 2, 9 2)))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+GEOMETRYCOLLECTION(
+ LINESTRING(0 2, 1 2),
+ LINESTRING(2 2, 3 2),
+ LINESTRING(4 2, 5 2),
+ POLYGON(
+ (1 2, 1 4, 2 4, 2 2, 2 1, 1 1, 1 2)),
+ POLYGON(
+ (3 2, 3 4, 4 4, 4 2, 4 1, 3 1, 3 2)),
+ POLYGON(
+ (5 2, 5 4, 6 4, 6 3, 7 3, 7 4, 8 4, 8 3, 9 3,
+ 9 4, 10 4, 10 3, 11 3, 11 2, 10 2, 10 1, 9 1, 9 2, 8 2,
+ 8 1, 7 1, 7 2, 6 2, 6 1, 5 1, 5 2))) </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (1 2, 1 4, 2 4, 2 2, 2 1, 1 1, 1 2)),
+ (
+ (3 2, 3 4, 4 4, 4 2, 4 1, 3 1, 3 2)),
+ (
+ (5 2, 5 4, 6 4, 6 3, 5 2)),
+ (
+ (6 2, 6 1, 5 1, 5 2, 6 2)),
+ (
+ (7 3, 7 4, 8 4, 8 3, 7 3)),
+ (
+ (8 2, 8 1, 7 1, 7 2, 8 2)),
+ (
+ (9 3, 9 4, 10 4, 10 3, 9 3)),
+ (
+ (10 2, 10 1, 9 1, 9 2, 10 2)))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+GEOMETRYCOLLECTION(
+ LINESTRING(0 2, 1 2),
+ LINESTRING(2 2, 3 2),
+ LINESTRING(4 2, 5 2),
+ POLYGON(
+ (1 2, 1 4, 2 4, 2 2, 2 1, 1 1, 1 2)),
+ POLYGON(
+ (3 2, 3 4, 4 4, 4 2, 4 1, 3 1, 3 2)),
+ POLYGON(
+ (5 2, 5 4, 6 4, 6 3, 5 2)),
+ POLYGON(
+ (6 2, 6 1, 5 1, 5 2, 6 2)),
+ POLYGON(
+ (6 2, 6 3, 7 3, 7 2, 6 2)),
+ POLYGON(
+ (7 3, 7 4, 8 4, 8 3, 7 3)),
+ POLYGON(
+ (8 2, 8 1, 7 1, 7 2, 8 2)),
+ POLYGON(
+ (8 2, 8 3, 9 3, 9 2, 8 2)),
+ POLYGON(
+ (9 3, 9 4, 10 4, 10 3, 9 3)),
+ POLYGON(
+ (10 2, 10 1, 9 1, 9 2, 10 2)),
+ POLYGON(
+ (10 2, 10 3, 11 3, 11 2, 10 2)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - Polygon with hole with outward sliver, cut by polygon</desc>
+ <a>
+ POLYGON(
+ (20 40, 20 200, 180 200, 180 40, 20 40),
+ (180 120, 120 120, 120 160, 60 120, 120 80, 120 119, 180 120))
+ </a>
+ <b>
+ POLYGON(
+ (200 160, 160 160, 160 80, 200 80, 200 160))
+ </b>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (20 40, 20 200, 180 200, 180 40, 20 40))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(180 120, 160 120),
+ POLYGON(
+ (180 160, 180 120, 180 80, 160 80, 160 120, 160 160, 180 160)))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ POLYGON(
+ (20 40, 20 200, 180 200, 180 160, 200 160, 200 80, 180 80, 180 40, 20 40),
+ (160 120, 120 120, 120 160, 60 120, 120 80, 120 119, 160 120))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POLYGON(
+ (20 40, 20 200, 180 200, 180 160, 160 160, 160 120, 160 80, 180 80, 180 40,
+ 20 40),
+ (160 120, 120 120, 120 160, 60 120, 120 80, 120 119, 160 120))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (20 40, 20 200, 180 200, 180 160, 160 160, 160 120, 160 80, 180 80, 180 40,
+ 20 40),
+ (160 120, 120 120, 120 160, 60 120, 120 80, 120 119, 160 120)),
+ (
+ (180 120, 180 160, 200 160, 200 80, 180 80, 180 120)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - Polygon with hole with outward sliver, cut by line</desc>
+ <a>
+ POLYGON(
+ (20 40, 20 200, 180 200, 180 40, 20 40),
+ (180 120, 120 120, 120 160, 60 120, 120 80, 120 119, 180 120))
+ </a>
+ <b>
+ LINESTRING(160 140, 160 100)
+ </b>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (20 40, 20 200, 180 200, 180 40, 20 40))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (160 140, 160 120),
+ (160 120, 160 100))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ POLYGON(
+ (20 40, 20 200, 180 200, 180 120, 180 40, 20 40),
+ (160 120, 120 120, 120 160, 60 120, 120 80, 120 119, 160 120))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POLYGON(
+ (20 40, 20 200, 180 200, 180 120, 180 40, 20 40),
+ (160 120, 120 120, 120 160, 60 120, 120 80, 120 119, 160 120))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ POLYGON(
+ (20 40, 20 200, 180 200, 180 120, 180 40, 20 40),
+ (160 120, 120 120, 120 160, 60 120, 120 80, 120 119, 160 120))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - Polygon with inward sliver touching hole, cut by polygon</desc>
+ <a>
+ POLYGON(
+ (20 40, 20 200, 180 200, 180 120, 140 120, 180 119, 180 40, 20 40),
+ (140 160, 80 120, 140 80, 140 160))
+ </a>
+ <b>
+ POLYGON(
+ (200 160, 150 160, 150 80, 200 80, 200 160))
+ </b>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (20 40, 20 200, 180 200, 180 40, 20 40))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (180 160, 180 120, 150 120, 150 160, 180 160)),
+ (
+ (150 120, 180 119, 180 80, 150 80, 150 120)))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ POLYGON(
+ (20 40, 20 200, 180 200, 180 160, 200 160, 200 80, 180 80, 180 40, 20 40),
+ (140 160, 80 120, 140 80, 140 120, 140 160))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POLYGON(
+ (20 40, 20 200, 180 200, 180 160, 150 160, 150 120, 150 80, 180 80, 180 40,
+ 20 40),
+ (140 160, 80 120, 140 80, 140 120, 140 160))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (20 40, 20 200, 180 200, 180 160, 150 160, 150 120, 150 80, 180 80, 180 40,
+ 20 40),
+ (140 160, 80 120, 140 80, 140 120, 140 160)),
+ (
+ (150 120, 180 120, 180 160, 200 160, 200 80, 180 80, 180 119, 150 120)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - intersecting slivers, dimensional collapse</desc>
+ <a>
+ POLYGON(
+ (83 33, 62 402, 68 402, 83 33))
+ </a>
+ <b>
+ POLYGON(
+ (78 39, 574 76, 576 60, 78 39))
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ LINESTRING(83 33, 62 402, 68 402, 83 33)
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (83 33, 62 402, 68 402, 83 33))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POINT(83 39)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(78 39, 83 39),
+ LINESTRING(83 33, 83 39),
+ POLYGON(
+ (83 39, 62 402, 68 402, 83 39)),
+ POLYGON(
+ (83 39, 574 76, 576 60, 83 39)))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(83 33, 83 39),
+ POLYGON(
+ (83 39, 62 402, 68 402, 83 39)))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(78 39, 83 39),
+ LINESTRING(83 33, 83 39),
+ POLYGON(
+ (83 39, 62 402, 68 402, 83 39)),
+ POLYGON(
+ (83 39, 574 76, 576 60, 83 39)))
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestFunctionLA.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestFunctionLA.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestFunctionLA.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,522 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>LA - A and B simple</desc>
+ <a>
+ LINESTRING(240 190, 120 120)
+ </a>
+ <b>
+ POLYGON(
+ (110 240, 50 80, 240 70, 110 240))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ LINESTRING(177 153, 120 120)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(240 190, 177 153),
+ POLYGON(
+ (177 153, 240 70, 50 80, 110 240, 177 153)))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ LINESTRING(240 190, 177 153)
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(240 190, 177 153),
+ POLYGON(
+ (177 153, 240 70, 50 80, 110 240, 177 153)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LA - A intersects B-hole</desc>
+ <a>
+ LINESTRING(0 100, 100 100, 200 200)
+ </a>
+ <b>
+ POLYGON(
+ (30 240, 260 30, 30 30, 30 240),
+ (80 140, 80 80, 140 80, 80 140))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (30 100, 80 100),
+ (110 110, 140 140))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(0 100, 30 100),
+ LINESTRING(80 100, 100 100, 110 110),
+ LINESTRING(140 140, 200 200),
+ POLYGON(
+ (30 240, 140 140, 260 30, 30 30, 30 100, 30 240),
+ (80 140, 80 100, 80 80, 140 80, 110 110, 80 140)))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (0 100, 30 100),
+ (80 100, 100 100, 110 110),
+ (140 140, 200 200))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(0 100, 30 100),
+ LINESTRING(80 100, 100 100, 110 110),
+ LINESTRING(140 140, 200 200),
+ POLYGON(
+ (30 240, 140 140, 260 30, 30 30, 30 100, 30 240),
+ (80 140, 80 100, 80 80, 140 80, 110 110, 80 140)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LA - A intersects B-hole #2</desc>
+ <a>
+ LINESTRING(40 340, 200 250, 120 180, 160 110, 270 40)
+ </a>
+ <b>
+ POLYGON(
+ (160 330, 60 260, 20 150, 60 40, 190 20, 270 130, 260 250, 160 330),
+ (140 240, 80 190, 90 100, 160 70, 210 130, 210 210, 140 240))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (114 298, 200 250, 173 226),
+ (182 96, 225 68))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(40 340, 114 298),
+ LINESTRING(173 226, 120 180, 160 110, 182 96),
+ LINESTRING(225 68, 270 40),
+ POLYGON(
+ (114 298, 160 330, 260 250, 270 130, 225 68, 190 20, 60 40, 20 150, 60 260,
+ 114 298),
+ (140 240, 80 190, 90 100, 160 70, 182 96, 210 130, 210 210, 173 226, 140 240)))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (40 340, 114 298),
+ (173 226, 120 180, 160 110, 182 96),
+ (225 68, 270 40))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(40 340, 114 298),
+ LINESTRING(173 226, 120 180, 160 110, 182 96),
+ LINESTRING(225 68, 270 40),
+ POLYGON(
+ (114 298, 160 330, 260 250, 270 130, 225 68, 190 20, 60 40, 20 150, 60 260,
+ 114 298),
+ (140 240, 80 190, 90 100, 160 70, 182 96, 210 130, 210 210, 173 226, 140 240)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mLmA - A and B complex, disjoint</desc>
+ <a>
+ MULTIPOLYGON(
+ (
+ (60 320, 60 80, 300 80, 60 320),
+ (80 280, 80 100, 260 100, 80 280)),
+ (
+ (120 160, 140 160, 140 140, 120 160)))
+ </a>
+ <b>
+ MULTILINESTRING(
+ (100 240, 100 180, 160 180, 160 120, 220 120),
+ (40 360, 40 60, 340 60, 40 360, 40 20),
+ (120 120, 120 140, 100 140, 100 120, 140 120))
+ </b>
+<test>
+ <op name="convexhull" pattern="FFFFFFFFF" arg1="A">
+ POLYGON(
+ (60 80, 60 320, 300 80, 60 80))
+ </op>
+</test>
+<test>
+ <op name="getboundary" pattern="FFFFFFFFF" arg1="A">
+ MULTILINESTRING(
+ (60 320, 60 80, 300 80, 60 320),
+ (80 280, 80 100, 260 100, 80 280),
+ (120 160, 140 160, 140 140, 120 160))
+ </op>
+</test>
+<test>
+ <op name="symdifference" pattern="FFFFFFFFF" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(100 240, 100 180, 160 180, 160 120, 220 120),
+ LINESTRING(40 360, 40 60),
+ LINESTRING(40 60, 340 60, 40 360),
+ LINESTRING(40 60, 40 20),
+ LINESTRING(120 120, 120 140, 100 140, 100 120, 120 120),
+ LINESTRING(120 120, 140 120),
+ POLYGON(
+ (60 320, 300 80, 60 80, 60 320),
+ (80 280, 80 100, 260 100, 80 280)),
+ POLYGON(
+ (120 160, 140 160, 140 140, 120 160)))
+ </op>
+</test>
+<test>
+ <op name="difference" pattern="FFFFFFFFF" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (60 320, 300 80, 60 80, 60 320),
+ (80 280, 80 100, 260 100, 80 280)),
+ (
+ (120 160, 140 160, 140 140, 120 160)))
+ </op>
+</test>
+<test>
+ <op name="union" pattern="FFFFFFFFF" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(100 240, 100 180, 160 180, 160 120, 220 120),
+ LINESTRING(40 360, 40 60),
+ LINESTRING(40 60, 340 60, 40 360),
+ LINESTRING(40 60, 40 20),
+ LINESTRING(120 120, 120 140, 100 140, 100 120, 120 120),
+ LINESTRING(120 120, 140 120),
+ POLYGON(
+ (60 320, 300 80, 60 80, 60 320),
+ (80 280, 80 100, 260 100, 80 280)),
+ POLYGON(
+ (120 160, 140 160, 140 140, 120 160)))
+ </op>
+</test>
+<test>
+ <op name="intersection" pattern="FFFFFFFFF" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mLmA - A and B complex, overlapping and touching #1</desc>
+ <a>
+ MULTIPOLYGON(
+ (
+ (60 260, 60 120, 220 120, 220 260, 60 260),
+ (80 240, 80 140, 200 140, 200 240, 80 240)),
+ (
+ (100 220, 100 160, 180 160, 180 220, 100 220),
+ (120 200, 120 180, 160 180, 160 200, 120 200)))
+ </a>
+ <b>
+ MULTILINESTRING(
+ (40 260, 240 260, 240 240, 40 240, 40 220, 240 220),
+ (120 300, 120 80, 140 80, 140 300, 140 80, 120 80, 120 320))
+ </b>
+ <test>
+ <op name="getboundary" arg1="A">
+ MULTILINESTRING(
+ (60 260, 60 120, 220 120, 220 260, 60 260),
+ (80 240, 80 140, 200 140, 200 240, 80 240),
+ (100 220, 100 160, 180 160, 180 220, 100 220),
+ (120 200, 120 180, 160 180, 160 200, 120 200))
+ </op>
+ </test>
+ <test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (60 120, 60 260, 220 260, 220 120, 60 120))
+ </op>
+ </test>
+ <test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (220 260, 140 260),
+ (140 260, 120 260),
+ (120 260, 60 260),
+ (200 240, 140 240),
+ (140 240, 120 240),
+ (120 240, 80 240),
+ (180 220, 140 220),
+ (140 220, 120 220),
+ (120 220, 100 220),
+ (120 200, 120 180),
+ (220 240, 200 240),
+ (80 240, 60 240),
+ (60 220, 80 220),
+ (200 220, 220 220),
+ (120 260, 120 240),
+ (120 220, 120 200),
+ (120 180, 120 160),
+ (120 140, 120 120),
+ (140 120, 140 140),
+ (140 160, 140 180),
+ (140 200, 140 220),
+ (140 240, 140 260))
+ </op>
+ </test>
+ <test>
+ <op name="union" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(40 260, 60 260),
+ LINESTRING(220 260, 240 260, 240 240, 220 240),
+ LINESTRING(60 240, 40 240, 40 220, 60 220),
+ LINESTRING(80 220, 100 220),
+ LINESTRING(180 220, 200 220),
+ LINESTRING(220 220, 240 220),
+ LINESTRING(120 300, 120 260),
+ LINESTRING(120 240, 120 220),
+ LINESTRING(120 160, 120 140),
+ LINESTRING(120 120, 120 80),
+ LINESTRING(120 80, 140 80),
+ LINESTRING(140 80, 140 120),
+ LINESTRING(140 140, 140 160),
+ LINESTRING(140 180, 140 200),
+ LINESTRING(140 220, 140 240),
+ LINESTRING(140 260, 140 300),
+ LINESTRING(120 300, 120 320),
+ POLYGON(
+ (60 240, 60 260, 120 260, 140 260, 220 260, 220 240, 220 220, 220 120, 140 120,
+ 120 120, 60 120, 60 220, 60 240),
+ (80 240, 80 220, 80 140, 120 140, 140 140, 200 140, 200 220, 200 240, 140 240,
+ 120 240, 80 240)),
+ POLYGON(
+ (120 160, 100 160, 100 220, 120 220, 140 220, 180 220, 180 160, 140 160, 120 160),
+ (120 200, 120 180, 140 180, 160 180, 160 200, 140 200, 120 200)))
+ </op>
+ </test>
+ <test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (60 240, 60 260, 120 260, 140 260, 220 260, 220 240, 220 220, 220 120, 140 120,
+ 120 120, 60 120, 60 220, 60 240),
+ (80 240, 80 220, 80 140, 120 140, 140 140, 200 140, 200 220, 200 240, 140 240,
+ 120 240, 80 240)),
+ (
+ (120 160, 100 160, 100 220, 120 220, 140 220, 180 220, 180 160, 140 160, 120 160),
+ (120 200, 120 180, 140 180, 160 180, 160 200, 140 200, 120 200)))
+ </op>
+ </test>
+ <test>
+ <op name="symdifference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(40 260, 60 260),
+ LINESTRING(220 260, 240 260, 240 240, 220 240),
+ LINESTRING(60 240, 40 240, 40 220, 60 220),
+ LINESTRING(80 220, 100 220),
+ LINESTRING(180 220, 200 220),
+ LINESTRING(220 220, 240 220),
+ LINESTRING(120 300, 120 260),
+ LINESTRING(120 240, 120 220),
+ LINESTRING(120 160, 120 140),
+ LINESTRING(120 120, 120 80),
+ LINESTRING(120 80, 140 80),
+ LINESTRING(140 80, 140 120),
+ LINESTRING(140 140, 140 160),
+ LINESTRING(140 180, 140 200),
+ LINESTRING(140 220, 140 240),
+ LINESTRING(140 260, 140 300),
+ LINESTRING(120 300, 120 320),
+ POLYGON(
+ (60 240, 60 260, 120 260, 140 260, 220 260, 220 240, 220 220, 220 120, 140 120,
+ 120 120, 60 120, 60 220, 60 240),
+ (80 240, 80 220, 80 140, 120 140, 140 140, 200 140, 200 220, 200 240, 140 240,
+ 120 240, 80 240)),
+ POLYGON(
+ (120 160, 100 160, 100 220, 120 220, 140 220, 180 220, 180 160, 140 160, 120 160),
+ (120 200, 120 180, 140 180, 160 180, 160 200, 140 200, 120 200)))
+ </op>
+ </test>
+</case><case>
+ <desc>mLmA - A and B complex, overlapping and touching #2</desc>
+ <a>
+ MULTIPOLYGON(
+ (
+ (60 320, 60 120, 280 120, 280 320, 60 320),
+ (120 260, 120 180, 240 180, 240 260, 120 260)),
+ (
+ (280 400, 320 400, 320 360, 280 360, 280 400)),
+ (
+ (300 240, 300 220, 320 220, 320 240, 300 240)))
+ </a>
+ <b>
+ MULTILINESTRING(
+ (80 300, 80 160, 260 160, 260 300, 80 300, 80 140),
+ (220 360, 220 240, 300 240, 300 360))
+ </b>
+<test>
+ <op name="convexhull" pattern="FFFFFFFFF" arg1="A">
+ POLYGON(
+ (60 120, 60 320, 280 400, 320 400, 320 220, 280 120, 60 120))
+ </op>
+</test>
+<test>
+ <op name="getboundary" pattern="FFFFFFFFF" arg1="A">
+ MULTILINESTRING(
+ (60 320, 60 120, 280 120, 280 320, 60 320),
+ (120 260, 120 180, 240 180, 240 260, 120 260),
+ (280 400, 320 400, 320 360, 280 360, 280 400),
+ (300 240, 300 220, 320 220, 320 240, 300 240))
+ </op>
+</test>
+<test>
+ <op name="symdifference" pattern="FFFFFFFFF" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(220 360, 220 320),
+ LINESTRING(220 260, 220 240, 240 240),
+ LINESTRING(280 240, 300 240),
+ LINESTRING(300 240, 300 360),
+ POLYGON(
+ (280 240, 280 120, 60 120, 60 320, 220 320, 280 320, 280 240),
+ (120 260, 120 180, 240 180, 240 240, 240 260, 220 260, 120 260)),
+ POLYGON(
+ (280 400, 320 400, 320 360, 300 360, 280 360, 280 400)),
+ POLYGON(
+ (300 240, 320 240, 320 220, 300 220, 300 240)))
+ </op>
+</test>
+<test>
+ <op name="difference" pattern="FFFFFFFFF" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (280 240, 280 120, 60 120, 60 320, 220 320, 280 320, 280 240),
+ (120 260, 120 180, 240 180, 240 240, 240 260, 220 260, 120 260)),
+ (
+ (280 400, 320 400, 320 360, 300 360, 280 360, 280 400)),
+ (
+ (300 240, 320 240, 320 220, 300 220, 300 240)))
+ </op>
+</test>
+<test>
+ <op name="union" pattern="FFFFFFFFF" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(220 360, 220 320),
+ LINESTRING(220 260, 220 240, 240 240),
+ LINESTRING(280 240, 300 240),
+ LINESTRING(300 240, 300 360),
+ POLYGON(
+ (280 240, 280 120, 60 120, 60 320, 220 320, 280 320, 280 240),
+ (120 260, 120 180, 240 180, 240 240, 240 260, 220 260, 120 260)),
+ POLYGON(
+ (280 400, 320 400, 320 360, 300 360, 280 360, 280 400)),
+ POLYGON(
+ (300 240, 320 240, 320 220, 300 220, 300 240)))
+ </op>
+</test>
+<test>
+ <op name="intersection" pattern="FFFFFFFFF" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(300 240),
+ POINT(300 360),
+ LINESTRING(80 300, 80 160),
+ LINESTRING(80 160, 260 160, 260 240),
+ LINESTRING(260 240, 260 300, 220 300),
+ LINESTRING(220 300, 80 300),
+ LINESTRING(80 160, 80 140),
+ LINESTRING(220 320, 220 300),
+ LINESTRING(220 300, 220 260),
+ LINESTRING(240 240, 260 240),
+ LINESTRING(260 240, 280 240))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mLmA - A and B complex, overlapping and touching #3</desc>
+ <a>
+ MULTIPOLYGON(
+ (
+ (120 180, 60 80, 180 80, 120 180)),
+ (
+ (100 240, 140 240, 120 220, 100 240)))
+ </a>
+ <b>
+ MULTILINESTRING(
+ (180 260, 120 180, 60 260, 180 260),
+ (60 300, 60 40),
+ (100 100, 140 100))
+ </b>
+<test>
+ <op name="convexhull" pattern="FFFFFFFFF" arg1="A">
+ POLYGON(
+ (60 80, 100 240, 140 240, 180 80, 60 80))
+ </op>
+</test>
+<test>
+ <op name="getboundary" pattern="FFFFFFFFF" arg1="A">
+ MULTILINESTRING(
+ (120 180, 60 80, 180 80, 120 180),
+ (100 240, 140 240, 120 220, 100 240))
+ </op>
+</test>
+<test>
+ <op name="symdifference" pattern="FFFFFFFFF" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(180 260, 120 180),
+ LINESTRING(120 180, 60 260),
+ LINESTRING(60 260, 180 260),
+ LINESTRING(60 300, 60 260),
+ LINESTRING(60 260, 60 80),
+ LINESTRING(60 80, 60 40),
+ POLYGON(
+ (60 80, 120 180, 180 80, 60 80)),
+ POLYGON(
+ (100 240, 140 240, 120 220, 100 240)))
+ </op>
+</test>
+<test>
+ <op name="difference" pattern="FFFFFFFFF" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (60 80, 120 180, 180 80, 60 80)),
+ (
+ (100 240, 140 240, 120 220, 100 240)))
+ </op>
+</test>
+<test>
+ <op name="union" pattern="FFFFFFFFF" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(180 260, 120 180),
+ LINESTRING(120 180, 60 260),
+ LINESTRING(60 260, 180 260),
+ LINESTRING(60 300, 60 260),
+ LINESTRING(60 260, 60 80),
+ LINESTRING(60 80, 60 40),
+ POLYGON(
+ (60 80, 120 180, 180 80, 60 80)),
+ POLYGON(
+ (100 240, 140 240, 120 220, 100 240)))
+ </op>
+</test>
+<test>
+ <op name="intersection" pattern="FFFFFFFFF" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(60 80),
+ POINT(120 180),
+ LINESTRING(100 100, 140 100))
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestFunctionLAPrec.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestFunctionLAPrec.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestFunctionLAPrec.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,59 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>LA - line and sliver intersecting, dimensional collapse</desc>
+ <a>
+ POLYGON(
+ (95 9, 81 414, 87 414, 95 9))
+ </a>
+ <b>
+ LINESTRING(93 13, 96 13)
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ LINESTRING(95 9, 81 414, 87 414, 95 9)
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (95 9, 81 414, 87 414, 95 9))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POINT(95 13)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(95 9, 95 13),
+ POLYGON(
+ (95 13, 81 414, 87 414, 95 13)),
+ LINESTRING(93 13, 95 13),
+ LINESTRING(95 13, 96 13))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(95 9, 95 13),
+ POLYGON(
+ (95 13, 81 414, 87 414, 95 13)))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ LINESTRING(95 9, 95 13),
+ POLYGON(
+ (95 13, 81 414, 87 414, 95 13)),
+ LINESTRING(93 13, 95 13),
+ LINESTRING(95 13, 96 13))
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestFunctionLL.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestFunctionLL.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestFunctionLL.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,375 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>LL - A crosses B</desc>
+ <a>
+ LINESTRING(0 0, 100 100)
+ </a>
+ <b>
+ LINESTRING(0 100, 100 0)
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POINT(50 50)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (0 0, 50 50),
+ (0 100, 50 50),
+ (50 50, 100 100),
+ (50 50, 100 0))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (0 0, 50 50),
+ (50 50, 100 100))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (0 0, 50 50),
+ (0 100, 50 50),
+ (50 50, 100 100),
+ (50 50, 100 0))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - A shares one segment with B</desc>
+ <a>
+ LINESTRING(0 0, 100 100, 200 0)
+ </a>
+ <b>
+ LINESTRING(0 0, 100 100, 200 200)
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ LINESTRING(0 0, 100 100)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (0 0, 100 100),
+ (100 100, 200 200),
+ (100 100, 200 0))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ LINESTRING(100 100, 200 0)
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (100 100, 200 200),
+ (100 100, 200 0))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - A and B disjoint</desc>
+ <a>
+ LINESTRING(40 360, 40 220, 120 360)
+ </a>
+ <b>
+ LINESTRING(120 340, 60 220, 140 220, 140 360)
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT(40 360, 120 360)
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (40 220, 40 360, 120 360, 40 220))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (40 360, 40 220, 120 360),
+ (120 340, 60 220, 140 220, 140 360))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ LINESTRING(40 360, 40 220, 120 360)
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (40 360, 40 220, 120 360),
+ (120 340, 60 220, 140 220, 140 360))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - A and B intersect frequently</desc>
+ <a>
+ LINESTRING(220 240, 200 220, 60 320, 40 300, 180 200, 160 180, 20 280)
+ </a>
+ <b>
+ LINESTRING(220 240, 140 160, 120 180, 220 280, 200 300, 100 200)
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT(220 240, 20 280)
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (160 180, 20 280, 60 320, 220 240, 160 180))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(113 213),
+ POINT(133 233),
+ POINT(137 197),
+ POINT(153 253),
+ POINT(157 217),
+ POINT(177 237),
+ LINESTRING(180 200, 160 180),
+ LINESTRING(220 240, 200 220))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (113 213, 20 280),
+ (133 233, 113 213),
+ (113 213, 100 200),
+ (137 197, 113 213),
+ (153 253, 133 233),
+ (153 253, 60 320, 40 300, 133 233),
+ (133 233, 157 217),
+ (137 197, 157 217),
+ (160 180, 140 160, 120 180, 137 197),
+ (160 180, 137 197),
+ (177 237, 220 280, 200 300, 153 253),
+ (177 237, 153 253),
+ (157 217, 177 237),
+ (157 217, 180 200),
+ (180 200, 160 180),
+ (200 220, 177 237),
+ (200 220, 180 200),
+ (220 240, 200 220))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (200 220, 177 237),
+ (177 237, 153 253),
+ (153 253, 60 320, 40 300, 133 233),
+ (133 233, 157 217),
+ (157 217, 180 200),
+ (160 180, 137 197),
+ (137 197, 113 213),
+ (113 213, 20 280))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (200 220, 177 237),
+ (177 237, 153 253),
+ (153 253, 60 320, 40 300, 133 233),
+ (133 233, 157 217),
+ (157 217, 180 200),
+ (160 180, 137 197),
+ (137 197, 113 213),
+ (113 213, 20 280),
+ (200 220, 180 200),
+ (160 180, 140 160, 120 180, 137 197),
+ (137 197, 157 217),
+ (157 217, 177 237),
+ (177 237, 220 280, 200 300, 153 253),
+ (153 253, 133 233),
+ (133 233, 113 213),
+ (113 213, 100 200))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - A and B equal</desc>
+ <a>
+ LINESTRING(80 320, 220 320, 220 160, 80 300)
+ </a>
+ <b>
+ LINESTRING(80 320, 220 320, 220 160, 80 300)
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT(80 320, 80 300)
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (220 160, 80 300, 80 320, 220 320, 220 160))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (220 160, 80 300),
+ (80 320, 220 320),
+ (220 320, 220 160))
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (220 160, 80 300),
+ (80 320, 220 320),
+ (220 320, 220 160))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - A and B touch ends</desc>
+ <a>
+ LINESTRING(60 200, 60 260, 140 200)
+ </a>
+ <b>
+ LINESTRING(60 200, 60 140, 140 200)
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT(60 200, 140 200)
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (60 200, 60 260, 140 200, 60 200))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTIPOINT(60 200, 140 200)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (60 200, 60 260, 140 200),
+ (60 200, 60 140, 140 200))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ LINESTRING(60 200, 60 260, 140 200)
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (60 200, 60 260, 140 200),
+ (60 200, 60 140, 140 200))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - intersecting rings</desc>
+ <a>
+ LINESTRING(180 200, 100 280, 20 200, 100 120, 180 200)
+ </a>
+ <b>
+ LINESTRING(100 200, 220 200, 220 80, 100 80, 100 200)
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT EMPTY
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (100 120, 20 200, 100 280, 180 200, 100 120))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTIPOINT(100 120, 180 200)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (100 120, 180 200),
+ (100 120, 100 200),
+ (180 200, 100 280, 20 200, 100 120),
+ (180 200, 220 200, 220 80, 100 80, 100 120),
+ (100 200, 180 200))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (100 120, 180 200),
+ (180 200, 100 280, 20 200, 100 120))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (100 120, 180 200),
+ (100 120, 100 200),
+ (180 200, 100 280, 20 200, 100 120),
+ (180 200, 220 200, 220 80, 100 80, 100 120),
+ (100 200, 180 200))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LrL - LinearRing bug</desc>
+ <a>
+ LINEARRING(0 0, 0 5, 5 5, 5 0, 0 0)
+ </a>
+ <b>
+ LINESTRING( 2 2, 5 5)
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POINT (5 5)
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestFunctionLLPrec.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestFunctionLLPrec.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestFunctionLLPrec.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,28 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>LL - narrow V</desc>
+ <a>
+ LINESTRING(0 10, 620 10, 0 11)
+ </a>
+ <b>
+ LINESTRING(400 60, 400 10)
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POINT(400 10)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (0 10, 400 10),
+ (400 10, 620 10, 400 10),
+ (400 10, 0 11),
+ (400 60, 400 10))
+ </op>
+</test>
+</case>
+
+</run>
\ No newline at end of file
Added: packages/jts/branches/upstream/current/testxml/general/TestFunctionPA.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestFunctionPA.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestFunctionPA.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,155 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>PA - point contained in simple polygon</desc>
+ <a>
+ POINT(100 100)
+ </a>
+ <b>
+ POLYGON(
+ (50 50, 200 50, 200 200, 50 200, 50 50))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POINT(100 100)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPmA - points on I, B and E of touching triangles</desc>
+ <a>
+ MULTIPOLYGON(
+ (
+ (120 320, 180 200, 240 320, 120 320)),
+ (
+ (180 200, 240 80, 300 200, 180 200)))
+ </a>
+ <b>
+ MULTIPOINT(120 320, 180 260, 180 320, 180 200, 300 200, 200 220)
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTILINESTRING(
+ (120 320, 180 200, 240 320, 120 320),
+ (180 200, 240 80, 300 200, 180 200))
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (240 80, 120 320, 240 320, 300 200, 240 80))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTIPOINT(120 320, 180 200, 180 260, 180 320, 300 200)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(200 220),
+ POLYGON(
+ (180 200, 120 320, 240 320, 180 200)),
+ POLYGON(
+ (180 200, 300 200, 240 80, 180 200)))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (180 200, 120 320, 240 320, 180 200)),
+ (
+ (180 200, 300 200, 240 80, 180 200)))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(200 220),
+ POLYGON(
+ (180 200, 120 320, 240 320, 180 200)),
+ POLYGON(
+ (180 200, 300 200, 240 80, 180 200)))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPmA - points on I, B and E of concentric doughnuts</desc>
+ <a>
+ MULTIPOLYGON(
+ (
+ (120 80, 420 80, 420 340, 120 340, 120 80),
+ (160 300, 160 120, 380 120, 380 300, 160 300)),
+ (
+ (200 260, 200 160, 340 160, 340 260, 200 260),
+ (240 220, 240 200, 300 200, 300 220, 240 220)))
+ </a>
+ <b>
+ MULTIPOINT(200 360, 420 340, 400 100, 340 120, 200 140, 200 160, 220 180, 260 200, 200 360,
+ 420 340, 400 100, 340 120, 200 140, 200 160, 220 180, 260 200)
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTILINESTRING(
+ (120 80, 420 80, 420 340, 120 340, 120 80),
+ (160 300, 160 120, 380 120, 380 300, 160 300),
+ (200 260, 200 160, 340 160, 340 260, 200 260),
+ (240 220, 240 200, 300 200, 300 220, 240 220))
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (120 80, 120 340, 420 340, 420 80, 120 80))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTIPOINT(200 160, 220 180, 260 200, 340 120, 400 100, 420 340)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(200 140),
+ POINT(200 360),
+ POLYGON(
+ (120 80, 120 340, 420 340, 420 80, 120 80),
+ (160 300, 160 120, 380 120, 380 300, 160 300)),
+ POLYGON(
+ (200 260, 340 260, 340 160, 200 160, 200 260),
+ (240 220, 240 200, 300 200, 300 220, 240 220)))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTIPOLYGON(
+ (
+ (120 80, 120 340, 420 340, 420 80, 120 80),
+ (160 300, 160 120, 380 120, 380 300, 160 300)),
+ (
+ (200 260, 340 260, 340 160, 200 160, 200 260),
+ (240 220, 240 200, 300 200, 300 220, 240 220)))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(200 140),
+ POINT(200 360),
+ POLYGON(
+ (120 80, 120 340, 420 340, 420 80, 120 80),
+ (160 300, 160 120, 380 120, 380 300, 160 300)),
+ POLYGON(
+ (200 260, 340 260, 340 160, 200 160, 200 260),
+ (240 220, 240 200, 300 200, 300 220, 240 220)))
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestFunctionPL.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestFunctionPL.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestFunctionPL.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,295 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>mPL - points in I and E of line</desc>
+ <a>
+ MULTIPOINT(40 90, 20 20, 70 70)
+ </a>
+ <b>
+ LINESTRING(20 20, 100 100)
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTIPOINT(20 20, 70 70)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(40 90),
+ LINESTRING(20 20, 100 100))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POINT(40 90)
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(40 90),
+ LINESTRING(20 20, 100 100))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPL - points in I and E of line, line self-intersecting</desc>
+ <a>
+ MULTIPOINT(40 90, 20 20, 70 70)
+ </a>
+ <b>
+ LINESTRING(20 20, 110 110, 170 50, 130 10, 70 70)
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTIPOINT(20 20, 70 70)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(40 90),
+ LINESTRING(20 20, 70 70),
+ LINESTRING(70 70, 110 110, 170 50, 130 10, 70 70))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POINT(40 90)
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(40 90),
+ LINESTRING(20 20, 70 70),
+ LINESTRING(70 70, 110 110, 170 50, 130 10, 70 70))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPmL - points in I, B and E of lines, lines overlap, points overlap</desc>
+ <a>
+ MULTILINESTRING(
+ (100 320, 100 220),
+ (100 180, 200 180),
+ (220 180, 220 320),
+ (220 320, 160 320),
+ (100 320, 100 220),
+ (100 180, 200 180),
+ (220 180, 220 320),
+ (220 320, 160 320),
+ (100 220, 100 320))
+ </a>
+ <b>
+ MULTIPOINT(100 320, 100 260, 100 220, 100 200, 100 180, 120 180, 200 180, 220 180, 220 260,
+ 220 320, 200 320, 160 320, 140 320, 120 320, 100 320, 100 260, 100 220, 100 200, 100 180,
+ 120 180, 200 180, 220 180, 220 260, 220 320, 200 320, 160 320, 140 320, 120 320)
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT(100 220, 100 320)
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (100 180, 100 320, 220 320, 220 180, 100 180))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTIPOINT(100 180, 100 220, 100 260, 100 320, 120 180, 160 320, 200 180, 200 320, 220 180,
+ 220 260, 220 320)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(100 200),
+ POINT(120 320),
+ POINT(140 320),
+ LINESTRING(100 320, 100 220),
+ LINESTRING(100 180, 200 180),
+ LINESTRING(220 180, 220 320),
+ LINESTRING(220 320, 160 320))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (100 320, 100 220),
+ (100 180, 200 180),
+ (220 180, 220 320),
+ (220 320, 160 320))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(100 200),
+ POINT(120 320),
+ POINT(140 320),
+ LINESTRING(100 320, 100 220),
+ LINESTRING(100 180, 200 180),
+ LINESTRING(220 180, 220 320),
+ LINESTRING(220 320, 160 320))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPmL - points in I, B and E of lines, lines overlap, points overlap, x <0, y < 0</desc>
+ <a>
+ MULTILINESTRING(
+ (-500 -140, -500 -280, -320 -280, -320 -140, -500 -140, -500 -340),
+ (-500 -140, -320 -140, -500 -140, -320 -140, -500 -140))
+ </a>
+ <b>
+ MULTIPOINT(-560 -180, -420 -180, -500 -220, -500 -340, -500 -280, -500 -140, -320 -140, -420 -140, -320 -180,
+ -280 -140, -320 -120, -560 -180, -420 -180, -500 -220, -500 -340, -500 -280, -500 -140, -320 -140, -420 -140,
+ -320 -180, -280 -140, -320 -120)
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT(-500 -340, -500 -140)
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (-500 -340, -500 -140, -320 -140, -320 -280, -500 -340))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTIPOINT(-500 -340, -500 -280, -500 -220, -500 -140, -420 -140, -320 -180, -320 -140)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(-560 -180),
+ POINT(-420 -180),
+ POINT(-320 -120),
+ POINT(-280 -140),
+ LINESTRING(-500 -140, -500 -280),
+ LINESTRING(-500 -280, -320 -280, -320 -140),
+ LINESTRING(-320 -140, -500 -140),
+ LINESTRING(-500 -280, -500 -340))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (-500 -140, -500 -280),
+ (-500 -280, -320 -280, -320 -140),
+ (-320 -140, -500 -140),
+ (-500 -280, -500 -340))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(-560 -180),
+ POINT(-420 -180),
+ POINT(-320 -120),
+ POINT(-280 -140),
+ LINESTRING(-500 -140, -500 -280),
+ LINESTRING(-500 -280, -320 -280, -320 -140),
+ LINESTRING(-320 -140, -500 -140),
+ LINESTRING(-500 -280, -500 -340))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mL - lines intersect at 1 point</desc>
+ <a>
+ MULTILINESTRING(
+ (180 100, 140 280, 240 140, 220 120, 140 280),
+ (140 280, 100 400, 80 380, 140 280, 40 380, 20 360, 140 280))
+ </a>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT(180 100, 140 280)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPmL - points in I, B and E of lines, lines overlap, points overlap</desc>
+ <a>
+ MULTILINESTRING(
+ (100 320, 100 220),
+ (100 180, 200 180),
+ (220 180, 220 320),
+ (220 320, 160 320),
+ (100 320, 100 220),
+ (100 180, 200 180),
+ (220 180, 220 320),
+ (220 320, 160 320),
+ (100 220, 100 320))
+ </a>
+ <b>
+ MULTIPOINT(100 320, 100 260, 100 220, 100 200, 100 180, 120 180, 200 180, 220 180, 220 260,
+ 220 320, 200 320, 160 320, 140 320, 120 320, 100 320, 100 260, 100 220, 100 200, 100 180,
+ 120 180, 200 180, 220 180, 220 260, 220 320, 200 320, 160 320, 140 320, 120 320)
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ MULTIPOINT(100 220, 100 320)
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POLYGON(
+ (100 180, 100 320, 220 320, 220 180, 100 180))
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTIPOINT(100 180, 100 220, 100 260, 100 320, 120 180, 160 320, 200 180, 200 320, 220 180,
+ 220 260, 220 320)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(100 200),
+ POINT(120 320),
+ POINT(140 320),
+ LINESTRING(100 320, 100 220),
+ LINESTRING(100 180, 200 180),
+ LINESTRING(220 180, 220 320),
+ LINESTRING(220 320, 160 320))
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTILINESTRING(
+ (100 320, 100 220),
+ (100 180, 200 180),
+ (220 180, 220 320),
+ (220 320, 160 320))
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION(
+ POINT(100 200),
+ POINT(120 320),
+ POINT(140 320),
+ LINESTRING(100 320, 100 220),
+ LINESTRING(100 180, 200 180),
+ LINESTRING(220 180, 220 320),
+ LINESTRING(220 320, 160 320))
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestFunctionPLPrec.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestFunctionPLPrec.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestFunctionPLPrec.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,19 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>PP - Point just off line. Causes non-robust algorithms to fail.</desc>
+ <a>
+ LINESTRING(-123456789 -40, 381039468754763 123456789)
+ </a>
+ <b>
+ POINT(0 0)
+ </b>
+<test>
+ <op name="intersects" arg1="A" arg2="B">
+ false
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestFunctionPP.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestFunctionPP.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestFunctionPP.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,269 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>PP - point contained in both A and B</desc>
+ <a>
+ POINT(100 100)
+ </a>
+ <b>
+ POINT(100 100)
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POINT(100 100)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>PP - A different from B</desc>
+ <a>
+ POINT(100 100)
+ </a>
+ <b>
+ POINT(200 200)
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTIPOINT(100 100, 200 200)
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POINT(100 100)
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOINT(100 100, 200 200)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>PmP - point in A contained in B</desc>
+ <a>
+ POINT(100 100)
+ </a>
+ <b>
+ MULTIPOINT(100 100, 200 200)
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POINT(100 100)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTIPOINT(100 100, 200 200)
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ POINT(200 200)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPmP - points in A only, B only, and in both</desc>
+ <a>
+ MULTIPOINT(100 100, 200 200, 300 300, 500 500)
+ </a>
+ <b>
+ MULTIPOINT(100 100, 200 200, 400 400, 600 600)
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ MULTIPOINT(100 100, 200 200)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTIPOINT(100 100, 200 200, 300 300, 400 400, 500 500, 600 600)
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ MULTIPOINT(300 300, 500 500)
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOINT(300 300, 400 400, 500 500, 600 600)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>PP - point contained in both A and B</desc>
+ <a>
+ POINT(80 200)
+ </a>
+ <b>
+ POINT(80 200)
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POINT(80 200)
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POINT(80 200)
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ POINT(80 200)
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>PP - A different from B</desc>
+ <a>
+ POINT(80 200)
+ </a>
+ <b>
+ POINT(260 80)
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POINT(80 200)
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTIPOINT(80 200, 260 80)
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POINT(80 200)
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOINT(80 200, 260 80)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>PP - A different from B, same y</desc>
+ <a>
+ POINT(60 260)
+ </a>
+ <b>
+ POINT(120 260)
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POINT(60 260)
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTIPOINT(60 260, 120 260)
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POINT(60 260)
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOINT(60 260, 120 260)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>PP - A different from B, same x</desc>
+ <a>
+ POINT(80 80)
+ </a>
+ <b>
+ POINT(80 280)
+ </b>
+<test>
+ <op name="getboundary" arg1="A">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+<test>
+ <op name="convexhull" arg1="A">
+ POINT(80 80)
+ </op>
+</test>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ GEOMETRYCOLLECTION EMPTY
+ </op>
+</test>
+<test>
+ <op name="union" arg1="A" arg2="B">
+ MULTIPOINT(80 80, 80 280)
+ </op>
+</test>
+<test>
+ <op name="difference" arg1="A" arg2="B">
+ POINT(80 80)
+ </op>
+</test>
+<test>
+ <op name="symdifference" arg1="A" arg2="B">
+ MULTIPOINT(80 80, 80 280)
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestInteriorPoint.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestInteriorPoint.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestInteriorPoint.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,57 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>P - single point</desc>
+ <a> POINT(10 10) </a>
+<test><op name="getInteriorPoint" arg1="A" > POINT(10 10) </op></test>
+</case>
+
+<case>
+ <desc>P - single point</desc>
+ <a> MULTIPOINT (60 300, 200 200, 240 240, 200 300, 40 140, 80 240, 140 240, 100 160, 140 200, 60 200)
+ </a>
+<test><op name="getInteriorPoint" arg1="A" > POINT (140 240) </op></test>
+</case>
+
+<case>
+ <desc>L - linestring with single segment</desc>
+ <a> LINESTRING (0 0, 7 14)
+ </a>
+<test><op name="getInteriorPoint" arg1="A" > POINT (7 14) </op></test>
+</case>
+
+<case>
+ <desc>L - linestring with multiple segments </desc>
+ <a> LINESTRING (0 0, 3 15, 6 2, 11 14, 16 5, 16 18, 2 22)
+ </a>
+<test><op name="getInteriorPoint" arg1="A" > POINT (11 14) </op></test>
+</case>
+
+<case>
+ <desc>mL - complex linestrings</desc>
+ <a> MULTILINESTRING ((60 240, 140 300, 180 200, 40 140, 100 100, 120 220),
+ (240 80, 260 160, 200 240, 180 340, 280 340, 240 180, 180 140, 40 200, 140 260))
+ </a>
+<test><op name="getInteriorPoint" arg1="A" > POINT (180 200) </op></test>
+</case>
+
+<case>
+ <desc>A - box</desc>
+ <a> POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))
+ </a>
+<test><op name="getInteriorPoint" arg1="A" > POINT (5 5) </op></test>
+</case>
+
+<case>
+ <desc>mA - polygons with holes</desc>
+ <a> MULTIPOLYGON (((60 320, 240 340, 260 100, 20 60, 120 180, 60 320),
+ (200 280, 140 260, 180 160, 240 140, 200 280)),
+ ((380 280, 300 260, 340 100, 440 80, 380 280),
+ (380 220, 340 200, 400 100, 380 220)))
+ </a>
+<test><op name="getInteriorPoint" arg1="A" > POINT (138 200) </op></test>
+</case>
+
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestRectanglePredicate.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestRectanglePredicate.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestRectanglePredicate.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,121 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>A disjoint</desc>
+ <a>
+ POLYGON(
+ (0 0, 80 0, 80 80, 0 80, 0 0))
+ </a>
+ <b>
+ POLYGON(
+ (100 200, 100 140, 180 140, 180 200, 100 200))
+ </b>
+<test> <op name="intersects" arg1="A" arg2="B"> false </op> </test>
+<test> <op name="contains" arg1="A" arg2="B"> false </op> </test>
+</case>
+
+<case>
+ <desc>A contained in rectangle</desc>
+ <a>
+ POLYGON((0 0, 100 0, 100 100, 0 100, 0 0))
+ </a>
+ <b>
+ POLYGON((10 10, 10 90, 90 90, 90 10, 10 10))
+ </b>
+<test> <op name="intersects" arg1="A" arg2="B"> true </op> </test>
+<test> <op name="contains" arg1="A" arg2="B"> true </op> </test>
+</case>
+
+<case>
+ <desc>A containing rectangle</desc>
+ <a>
+ POLYGON((0 0, 100 0, 100 100, 0 100, 0 0))
+ </a>
+ <b>
+ POLYGON ((60 180, -100 120, -140 60, -40 20, -100 -80, 40 -20, 140 -100, 140 40, 260 160, 80 120, 60 180))
+ </b>
+<test> <op name="intersects" arg1="A" arg2="B"> true </op> </test>
+<test> <op name="contains" arg1="A" arg2="B"> false </op> </test>
+</case>
+
+<case>
+ <desc>mA containing rectangle</desc>
+ <a>
+ POLYGON((0 0, 100 0, 100 100, 0 100, 0 0))
+ </a>
+ <b>
+ MULTIPOLYGON (((-60 180, -60 -60, 40 -20, 140 -100, 180 120, -20 140, -60 180)),
+ ((20 280, 0 180, 180 160, 200 280, 20 280)))
+ </b>
+<test> <op name="intersects" arg1="A" arg2="B"> true </op> </test>
+<test> <op name="contains" arg1="A" arg2="B"> false </op> </test>
+<test> <op name="within" arg1="A" arg2="B"> true </op> </test>
+<test> <op name="covers" arg1="A" arg2="B"> false </op> </test>
+<test> <op name="coveredBy" arg1="A" arg2="B"> true </op> </test>
+</case>
+
+<case>
+ <desc>L overlaps thru Y axis side</desc>
+ <a>
+ POLYGON((0 0, 100 0, 100 100, 0 100, 0 0))
+ </a>
+ <b>
+ LINESTRING(10 10, 200 10)
+ </b>
+<test> <op name="intersects" arg1="A" arg2="B"> true </op> </test>
+</case>
+
+<case>
+ <desc>L overlaps thru X axis side</desc>
+ <a>
+ POLYGON((0 0, 100 0, 100 100, 0 100, 0 0))
+ </a>
+ <b>
+ LINESTRING(10 10, 10 2000)
+ </b>
+<test> <op name="intersects" arg1="A" arg2="B"> true </op> </test>
+<test> <op name="contains" arg1="A" arg2="B"> false </op> </test>
+<test> <op name="covers" arg1="A" arg2="B"> false </op> </test>
+</case>
+
+<case>
+ <desc>L line intersection</desc>
+ <a>
+ POLYGON((0 0, 100 0, 100 100, 0 100, 0 0))
+ </a>
+ <b>
+ LINESTRING( 10 10, -10 -20 )
+ </b>
+<test> <op name="intersects" arg1="A" arg2="B"> true </op> </test>
+<test> <op name="covers" arg1="A" arg2="B"> false </op> </test>
+</case>
+
+<case>
+ <desc>L in polygon boundary</desc>
+ <a>
+ POLYGON((0 0, 100 0, 100 100, 0 100, 0 0))
+ </a>
+ <b>
+ LINESTRING( 10 0, 90 0 )
+ </b>
+<test> <op name="intersects" arg1="A" arg2="B"> true </op> </test>
+<test> <op name="contains" arg1="A" arg2="B"> false </op> </test>
+<test> <op name="covers" arg1="A" arg2="B"> true </op> </test>
+<test> <op name="coveredBy" arg1="B" arg2="A"> true </op> </test>
+</case>
+
+<case>
+ <desc>mL with one component contained</desc>
+ <a>
+ POLYGON((0 0, 100 0, 100 100, 0 100, 0 0))
+ </a>
+ <b>
+ MULTILINESTRING( (10 10, 10 20), (200 10, 200 20) )
+ </b>
+<test> <op name="intersects" arg1="A" arg2="B"> true </op> </test>
+<test> <op name="contains" arg1="A" arg2="B"> false </op> </test>
+</case>
+
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestRelateAA.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestRelateAA.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestRelateAA.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,221 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>AA disjoint</desc>
+ <a>
+ POLYGON(
+ (0 0, 80 0, 80 80, 0 80, 0 0))
+ </a>
+ <b>
+ POLYGON(
+ (100 200, 100 140, 180 140, 180 200, 100 200))
+ </b>
+<test>
+ <op name="relate" arg3="FF2FF1212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA equal but opposite orientation</desc>
+ <a>
+ POLYGON(
+ (0 0, 140 0, 140 140, 0 140, 0 0))
+ </a>
+ <b>
+ POLYGON(
+ (140 0, 0 0, 0 140, 140 140, 140 0))
+ </b>
+<test>
+ <op name="relate" arg3="2FFF1FFF2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA A-shell contains B-shell</desc>
+ <a>
+ POLYGON(
+ (40 60, 360 60, 360 300, 40 300, 40 60))
+ </a>
+ <b>
+ POLYGON(
+ (120 100, 280 100, 280 240, 120 240, 120 100))
+ </b>
+<test>
+ <op name="relate" arg3="212FF1FF2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA A-shell contains B-shell contains A-hole</desc>
+ <a>
+ POLYGON(
+ (40 60, 420 60, 420 320, 40 320, 40 60),
+ (200 140, 160 220, 260 200, 200 140))
+ </a>
+ <b>
+ POLYGON(
+ (80 100, 360 100, 360 280, 80 280, 80 100))
+ </b>
+<test>
+ <op name="relate" arg3="2121F12F2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA A-shell contains B-shell contains A-hole contains B-hole</desc>
+ <a>
+ POLYGON(
+ (0 280, 0 0, 260 0, 260 280, 0 280),
+ (220 240, 40 240, 40 40, 220 40, 220 240))
+ </a>
+ <b>
+ POLYGON(
+ (20 260, 240 260, 240 20, 20 20, 20 260),
+ (160 180, 80 180, 120 120, 160 180))
+ </b>
+<test>
+ <op name="relate" arg3="2121F1212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA A-shell overlapping B-shell</desc>
+ <a>
+ POLYGON(
+ (60 80, 200 80, 200 220, 60 220, 60 80))
+ </a>
+ <b>
+ POLYGON(
+ (120 140, 260 140, 260 260, 120 260, 120 140))
+ </b>
+<test>
+ <op name="relate" arg3="212101212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA A-shell overlapping B-shell at B-vertex</desc>
+ <a>
+ POLYGON(
+ (60 220, 220 220, 140 140, 60 220))
+ </a>
+ <b>
+ POLYGON(
+ (100 180, 180 180, 180 100, 100 100, 100 180))
+ </b>
+<test>
+ <op name="relate" arg3="212101212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA A-shell overlapping B-shell at A & B-vertex</desc>
+ <a>
+ POLYGON(
+ (40 40, 180 40, 180 180, 40 180, 40 40))
+ </a>
+ <b>
+ POLYGON(
+ (180 40, 40 180, 160 280, 300 140, 180 40))
+ </b>
+<test>
+ <op name="relate" arg3="212101212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AmA A-shells overlapping B-shell at A-vertex</desc>
+ <a>
+ POLYGON(
+ (100 60, 140 100, 100 140, 60 100, 100 60))
+ </a>
+ <b>
+ MULTIPOLYGON(
+ (
+ (80 40, 120 40, 120 80, 80 80, 80 40)),
+ (
+ (120 80, 160 80, 160 120, 120 120, 120 80)),
+ (
+ (80 120, 120 120, 120 160, 80 160, 80 120)),
+ (
+ (40 80, 80 80, 80 120, 40 120, 40 80)))
+ </b>
+<test>
+ <op name="relate" arg3="21210F212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA A-shell touches B-shell, which contains A-hole</desc>
+ <a>
+ POLYGON(
+ (40 280, 200 280, 200 100, 40 100, 40 280),
+ (100 220, 120 220, 120 200, 100 180, 100 220))
+ </a>
+ <b>
+ POLYGON(
+ (40 280, 180 260, 180 120, 60 120, 40 280))
+ </b>
+<test>
+ <op name="relate" arg3="2121012F2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - A-hole contains B, boundaries touch in line</desc>
+ <a>
+ POLYGON(
+ (0 200, 0 0, 200 0, 200 200, 0 200),
+ (20 180, 130 180, 130 30, 20 30, 20 180))
+ </a>
+ <b>
+ POLYGON(
+ (60 90, 130 90, 130 30, 60 30, 60 90))
+ </b>
+<test>
+ <op name="relate" arg3="FF2F11212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - A-hole contains B, boundaries touch in points</desc>
+ <a>
+ POLYGON(
+ (150 150, 410 150, 280 20, 20 20, 150 150),
+ (170 120, 330 120, 260 50, 100 50, 170 120))
+ </a>
+ <b>
+ POLYGON(
+ (270 90, 200 50, 150 80, 210 120, 270 90))
+ </b>
+<test>
+ <op name="relate" arg3="FF2F01212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestRelateAC.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestRelateAC.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestRelateAC.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,28 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>AC A-shells overlapping B-shell at A-vertex</desc>
+ <a>
+ POLYGON(
+ (100 60, 140 100, 100 140, 60 100, 100 60))
+ </a>
+ <b>
+ MULTIPOLYGON(
+ (
+ (80 40, 120 40, 120 80, 80 80, 80 40)),
+ (
+ (120 80, 160 80, 160 120, 120 120, 120 80)),
+ (
+ (80 120, 120 120, 120 160, 80 160, 80 120)),
+ (
+ (40 80, 80 80, 80 120, 40 120, 40 80)))
+ </b>
+<test>
+ <op name="relate" arg3="21210F212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestRelateLA.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestRelateLA.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestRelateLA.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,190 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>LA - intersection at NV: {A-Bdy, A-Int} = {B-Bdy, B-Int}</desc>
+ <a>
+ LINESTRING(100 120, 100 240)
+ </a>
+ <b>
+ POLYGON(
+ (40 60, 160 60, 160 180, 40 180, 40 60))
+ </b>
+<test>
+ <op name="relate" arg3="1010F0212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LA - intersection at V: {A-Bdy, A-Int} = {B-Bdy, B-Int}</desc>
+ <a>
+ LINESTRING(80 80, 140 140, 200 200)
+ </a>
+ <b>
+ POLYGON(
+ (40 40, 140 40, 140 140, 40 140, 40 40))
+ </b>
+<test>
+ <op name="relate" arg3="1010F0212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LmA - intersection at NV, L contained in A</desc>
+ <a>
+ LINESTRING(70 50, 70 150)
+ </a>
+ <b>
+ MULTIPOLYGON(
+ (
+ (0 0, 0 100, 140 100, 140 0, 0 0)),
+ (
+ (20 170, 70 100, 130 170, 20 170)))
+ </b>
+<test>
+ <op name="relate" arg3="10F0FF212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LA - A crosses B at {shell-NV, hole-V}</desc>
+ <a>
+ LINESTRING(60 160, 150 70)
+ </a>
+ <b>
+ POLYGON(
+ (190 190, 360 20, 20 20, 190 190),
+ (110 110, 250 100, 140 30, 110 110))
+ </b>
+<test>
+ <op name="relate" arg3="F01FF0212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LA - A intersects B at {shell-NV}, B-Int, {hole-V}</desc>
+ <a>
+ LINESTRING(60 160, 150 70)
+ </a>
+ <b>
+ POLYGON(
+ (190 190, 360 20, 20 20, 190 190),
+ (111 110, 250 100, 140 30, 111 110))
+ </b>
+<test>
+ <op name="relate" arg3="101FF0212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LA - A crosses B hole at {hole1-V, hole2-NV}</desc>
+ <a>
+ LINESTRING(80 110, 170 110)
+ </a>
+ <b>
+ POLYGON(
+ (20 200, 20 20, 240 20, 240 200, 20 200),
+ (130 110, 60 40, 60 180, 130 110),
+ (130 180, 130 40, 200 110, 130 180))
+ </b>
+<test>
+ <op name="relate" arg3="F01FF0212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LA - A crosses B hole at {hole1-V}, B-Int, {hole2-NV}</desc>
+ <a>
+ LINESTRING(80 110, 170 110)
+ </a>
+ <b>
+ POLYGON(
+ (20 200, 20 20, 240 20, 240 200, 20 200),
+ (130 110, 60 40, 60 180, 130 110),
+ (130 180, 131 40, 200 110, 130 180))
+ </b>
+<test>
+ <op name="relate" arg3="101FF0212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+<desc>LA - Line with endpoints in interior but crossing exterior of multipolygon</desc>
+ <a>
+ LINESTRING(160 70, 320 230)
+ </a>
+ <b>
+ MULTIPOLYGON(
+ (
+ (140 110, 260 110, 170 20, 50 20, 140 110)),
+ (
+ (300 270, 420 270, 340 190, 220 190, 300 270)))
+ </b>
+ <test>
+ <op name="relate" arg1="A" arg2="B" arg3="1010FF212">true</op>
+ </test>
+</case>
+
+<case>
+<desc>LA - Line with a very small piece in the exterior between parts of a multipolygon</desc>
+ <a>
+ LINESTRING(100 140, 100 40)
+ </a>
+ <b>
+ MULTIPOLYGON(
+ (
+ (20 80, 180 79, 100 0, 20 80)),
+ (
+ (20 160, 180 160, 100 80, 20 160)))
+ </b>
+ <test>
+ <op name="relate" arg1="A" arg2="B" arg3="1010FF212">true</op>
+ </test>
+</case>
+
+<case>
+<desc>LA - Line contained completely and spanning parts of multipolygon</desc>
+ <a>
+ LINESTRING(100 140, 100 40)
+ </a>
+ <b>
+ MULTIPOLYGON(
+ (
+ (20 80, 180 80, 100 0, 20 80)),
+ (
+ (20 160, 180 160, 100 80, 20 160)))
+ </b>
+ <test>
+ <op name="relate" arg1="A" arg2="B" arg3="10F0FF212">true</op>
+ </test>
+</case>
+
+<case>
+<desc>LA - overlapping ring and triangle</desc>
+ <a>
+ LINESTRING(110 60, 20 150, 200 150, 110 60)
+ </a>
+ <b>
+ POLYGON(
+ (20 20, 200 20, 110 110, 20 20))
+ </b>
+ <test>
+ <op name="relate" arg1="A" arg2="B" arg3="101FFF212">true</op>
+ </test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestRelateLC.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestRelateLC.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestRelateLC.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,79 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>LC - topographically equal with no boundary</desc>
+ <a>
+ LINESTRING(0 0, 0 50, 50 50, 50 0, 0 0)
+ </a>
+ <b>
+ MULTILINESTRING(
+ (0 0, 0 50),
+ (0 50, 50 50),
+ (50 50, 50 0),
+ (50 0, 0 0))
+ </b>
+<test>
+ <op name="relate" arg3="1FFFFFFF2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LC - intersection (containment) along mod-2 A-Int line segment</desc>
+ <a>
+ LINESTRING(40 180, 140 180)
+ </a>
+ <b>
+ MULTIPOLYGON(
+ (
+ (20 320, 180 320, 180 180, 20 180, 20 320)),
+ (
+ (20 180, 20 80, 180 80, 180 180, 20 180)))
+ </b>
+<test>
+ <op name="relate" arg3="1FF0FF212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LC - intersection (overlap) along mod-2 A-Int line segment</desc>
+ <a>
+ LINESTRING(40 180, 140 180)
+ </a>
+ <b>
+ MULTIPOLYGON(
+ (
+ (20 320, 180 320, 180 180, 20 180, 20 320)),
+ (
+ (60 180, 60 80, 180 80, 180 180, 60 180)))
+ </b>
+<test>
+ <op name="relate" arg3="11F00F212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LC - equal with boundary intersection</desc>
+ <a>
+ LINESTRING(0 0, 60 0, 60 60, 60 0, 120 0)
+ </a>
+ <b>
+ MULTILINESTRING(
+ (0 0, 60 0),
+ (60 0, 120 0),
+ (60 0, 60 60))
+ </b>
+<test>
+ <op name="relate" arg3="10FF0FFF2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestRelateLL.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestRelateLL.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestRelateLL.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,311 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>LL - disjoint, non-overlapping envelopes</desc>
+ <a>
+ LINESTRING(60 0, 20 80, 100 80, 80 120, 40 140)
+ </a>
+ <b>
+ LINESTRING(140 300, 220 160, 260 200, 240 260)
+ </b>
+<test>
+ <op name="relate" arg3="FF1FF0102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - disjoint, overlapping envelopes</desc>
+ <a>
+ LINESTRING(60 0, 20 80, 100 80, 80 120, 40 140)
+ </a>
+ <b>
+ LINESTRING(60 40, 140 40, 140 160, 0 160)
+ </b>
+<test>
+ <op name="relate" arg3="FF1FF0102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - disjoint, non-overlapping envelopes, B closed</desc>
+ <a>
+ LINESTRING(60 0, 20 80, 100 80, 80 120, 40 140)
+ </a>
+ <b>
+ LINESTRING(140 280, 240 280, 240 180, 140 180, 140 280)
+ </b>
+<test>
+ <op name="relate" arg3="FF1FF01F2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - disjoint, overlapping envelopes, B closed</desc>
+ <a>
+ LINESTRING(140 0, 0 0, 40 60, 0 120, 60 200, 220 160, 220 40)
+ </a>
+ <b>
+ LINESTRING(80 140, 180 100, 160 40, 100 40, 60 100, 80 140)
+ </b>
+<test>
+ <op name="relate" arg3="FF1FF01F2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>Line vs line - pointwise equal</desc>
+ <a>
+ LINESTRING(20 20, 80 80)
+ </a>
+ <b>
+ LINESTRING(20 20, 80 80)
+ </b>
+<test>
+ <op name="relate" arg3="1FFF0FFF2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>Line vs line - pointwise equal</desc>
+ <a>
+ LINESTRING(40 40, 160 160, 200 60, 60 140)
+ </a>
+ <b>
+ LINESTRING(40 40, 160 160, 200 60, 60 140)
+ </b>
+<test>
+ <op name="relate" arg3="1FFF0FFF2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>Line vs line - topologically equal</desc>
+ <a>
+ LINESTRING(40 40, 200 40)
+ </a>
+ <b>
+ LINESTRING(200 40, 140 40, 40 40)
+ </b>
+<test>
+ <op name="relate" arg3="1FFF0FFF2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - topographically equal with self-intersection</desc>
+ <a>
+ LINESTRING(0 0, 110 0, 60 0)
+ </a>
+ <b>
+ LINESTRING(0 0, 110 0)
+ </b>
+<test>
+ <op name="relate" arg3="10F00FFF2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LmL - topographically equal with no boundary</desc>
+ <a>
+ LINESTRING(0 0, 0 50, 50 50, 50 0, 0 0)
+ </a>
+ <b>
+ MULTILINESTRING(
+ (0 0, 0 50),
+ (0 50, 50 50),
+ (50 50, 50 0),
+ (50 0, 0 0))
+ </b>
+<test>
+ <op name="relate" arg3="1FFFFFFF2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LmL - topographically equal with self intersections</desc>
+ <a>
+ LINESTRING(0 0, 80 0, 80 60, 80 0, 170 0)
+ </a>
+ <b>
+ MULTILINESTRING(
+ (0 0, 170 0),
+ (80 0, 80 60))
+ </b>
+<test>
+ <op name="relate" arg3="10FF0FFF2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - A-IntNV = B-IntNV</desc>
+ <a>
+ LINESTRING(80 100, 180 200)
+ </a>
+ <b>
+ LINESTRING(80 180, 180 120)
+ </b>
+<test>
+ <op name="relate" arg3="0F1FF0102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>intersect in Int NV</desc>
+ <a>
+ LINESTRING(40 40, 100 100, 160 160)
+ </a>
+ <b>
+ LINESTRING(160 60, 100 100, 60 140)
+ </b>
+<test>
+ <op name="relate" arg3="0F1FF0102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - intersection: {A-Bdy, A-IntV} = B-IntNV</desc>
+ <a>
+ LINESTRING(40 40, 100 100, 180 100, 180 180, 100 180, 100 100)
+ </a>
+ <b>
+ LINESTRING(140 60, 60 140)
+ </b>
+<test>
+ <op name="relate" arg3="FF10F0102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - intersection: {A-Bdy, A-IntNV} = B-IntNV</desc>
+ <a>
+ LINESTRING(40 40, 180 180, 100 180, 100 100)
+ </a>
+ <b>
+ LINESTRING(140 60, 60 140)
+ </b>
+<test>
+ <op name="relate" arg3="FF10F0102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - intersection: A-IntNV = {B-Bdy, B-IntNV}</desc>
+ <a>
+ LINESTRING(20 110, 200 110)
+ </a>
+ <b>
+ LINESTRING(200 200, 20 20, 200 20, 110 110, 20 200, 110 200, 110 110)
+ </b>
+<test>
+ <op name="relate" arg3="F01FF0102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - one segment overlapping, one distinct</desc>
+ <a>
+ LINESTRING(80 90, 50 50, 0 0)
+ </a>
+ <b>
+ LINESTRING(0 0, 100 100)
+ </b>
+<test>
+ <op name="relate" arg3="1F1F00102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - A contained in B</desc>
+ <a>
+ LINESTRING(40 140, 240 140)
+ </a>
+ <b>
+ LINESTRING(40 140, 100 140, 80 80, 120 60, 100 140, 160 140, 160 100, 200 100, 160 140,
+ 240 140)
+ </b>
+<test>
+ <op name="relate" arg3="1FFF0F1F2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - simple overlapping lines</desc>
+ <a>
+ LINESTRING(20 20, 100 20, 20 20)
+ </a>
+ <b>
+ LINESTRING(60 20, 200 20)
+ </b>
+<test>
+ <op name="relate" arg3="101FFF102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>LL - A-spiral, B-contained</desc>
+ <a>
+ LINESTRING(40 60, 180 60, 180 140, 100 140, 100 60, 220 60, 220 180, 80 180, 80 60,
+ 280 60)
+ </a>
+ <b>
+ LINESTRING(140 60, 180 60, 220 60, 260 60)
+ </b>
+<test>
+ <op name="relate" arg3="101FF0FF2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+<desc>test for LinearRing point location bug</desc>
+ <a>
+ LINEARRING(0 0, 0 5, 5 5, 5 0, 0 0)
+ </a>
+ <b>
+ LINESTRING( 2 2, 4 4)
+ </b>
+ <test>
+ <op name="relate" arg1="A" arg2="B" arg3="FF1FFF102">true</op>
+ </test>
+</case>
+
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestRelatePA.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestRelatePA.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestRelatePA.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,103 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>PA - disjoint</desc>
+ <a>
+ POINT(20 20)
+ </a>
+ <b>
+ POLYGON(
+ (60 120, 60 40, 160 40, 160 120, 60 120))
+ </b>
+<test>
+ <op name="relate" arg3="FF0FFF212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPA - points in B: E, I</desc>
+ <a>
+ MULTIPOINT(0 20, 40 20)
+ </a>
+ <b>
+ POLYGON(
+ (20 40, 20 0, 60 0, 60 40, 20 40))
+ </b>
+<test>
+ <op name="relate" arg3="0F0FFF212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPA - points in B: E, B</desc>
+ <a>
+ MULTIPOINT(0 20, 20 20)
+ </a>
+ <b>
+ POLYGON(
+ (20 40, 20 0, 60 0, 60 40, 20 40))
+ </b>
+<test>
+ <op name="relate" arg3="F00FFF212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPA - points in B: B, I</desc>
+ <a>
+ MULTIPOINT(20 20, 40 20)
+ </a>
+ <b>
+ POLYGON(
+ (20 40, 20 0, 60 0, 60 40, 20 40))
+ </b>
+<test>
+ <op name="relate" arg3="00FFFF212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPA - points in B: I, B, E</desc>
+ <a>
+ MULTIPOINT(80 260, 140 260, 180 260)
+ </a>
+ <b>
+ POLYGON(
+ (40 320, 140 320, 140 200, 40 200, 40 320))
+ </b>
+<test>
+ <op name="relate" arg3="000FFF212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>PmA - point in B: mod-2 I</desc>
+ <a>
+ POINT(40 40)
+ </a>
+ <b>
+ MULTIPOLYGON(
+ (
+ (0 40, 0 0, 40 0, 40 40, 0 40)),
+ (
+ (40 80, 40 40, 80 40, 80 80, 40 80)))
+ </b>
+<test>
+ <op name="relate" arg3="F0FFFF212" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestRelatePL.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestRelatePL.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestRelatePL.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,124 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>PL - disjoint</desc>
+ <a>
+ POINT(60 120)
+ </a>
+ <b>
+ LINESTRING(40 40, 120 120, 200 120)
+ </b>
+<test>
+ <op name="relate" arg3="FF0FFF102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>PL - touches Bdy</desc>
+ <a>
+ POINT(40 40)
+ </a>
+ <b>
+ LINESTRING(40 40, 100 100, 160 100)
+ </b>
+<test>
+ <op name="relate" arg3="F0FFFF102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>PL - touches non-vertex</desc>
+ <a>
+ POINT(60 60)
+ </a>
+ <b>
+ LINESTRING(40 40, 100 100)
+ </b>
+<test>
+ <op name="relate" arg3="0FFFFF102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPL - touches Bdy and Ext</desc>
+ <a>
+ MULTIPOINT(40 40, 100 40)
+ </a>
+ <b>
+ LINESTRING(40 40, 80 80)
+ </b>
+<test>
+ <op name="relate" arg3="F00FFF102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPL - touches Int and Bdy</desc>
+ <a>
+ MULTIPOINT(40 40, 60 60)
+ </a>
+ <b>
+ LINESTRING(40 40, 80 80)
+ </b>
+<test>
+ <op name="relate" arg3="00FFFF102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPL - touches Int and Ext</desc>
+ <a>
+ MULTIPOINT(60 60, 100 100)
+ </a>
+ <b>
+ LINESTRING(40 40, 80 80)
+ </b>
+<test>
+ <op name="relate" arg3="0F0FFF102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPL - touches IntNV and Ext</desc>
+ <a>
+ MULTIPOINT(60 60, 100 100)
+ </a>
+ <b>
+ LINESTRING(40 40, 80 80)
+ </b>
+<test>
+ <op name="relate" arg3="0F0FFF102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mPL - touches IntV and Ext</desc>
+ <a>
+ MULTIPOINT(60 60, 100 100)
+ </a>
+ <b>
+ LINESTRING(40 40, 60 60, 80 80)
+ </b>
+<test>
+ <op name="relate" arg3="0F0FFF102" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestRelatePP.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestRelatePP.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestRelatePP.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,64 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>same point</desc>
+ <a>
+ POINT(20 20)
+ </a>
+ <b>
+ POINT(20 20)
+ </b>
+<test>
+ <op name="relate" arg3="0FFFFFFF2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>different point</desc>
+ <a>
+ POINT(20 20)
+ </a>
+ <b>
+ POINT(20 30)
+ </b>
+<test>
+ <op name="relate" arg3="FF0FFF0F2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>some same, some different points</desc>
+ <a>
+ MULTIPOINT(40 40, 80 60, 40 100)
+ </a>
+ <b>
+ MULTIPOINT(40 40, 80 60, 120 100)
+ </b>
+<test>
+ <op name="relate" arg3="0F0FFF0F2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>same points</desc>
+ <a>
+ MULTIPOINT(40 40, 80 60, 120 100)
+ </a>
+ <b>
+ MULTIPOINT(40 40, 80 60, 120 100)
+ </b>
+<test>
+ <op name="relate" arg3="0FFFFFFF2" arg1="A" arg2="B">
+ true
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestSimple.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestSimple.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestSimple.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,296 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>P - point</desc>
+ <a>
+ POINT(10 10)
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mP - multipoint with repeated points</desc>
+ <a>
+ MULTIPOINT (80 280, 80 220, 160 220, 80 220)
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ false
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mP - multipoint with no repeated points</desc>
+ <a>
+ MULTIPOINT (80 280, 80 220, 160 220)
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mP - empty</desc>
+ <a>
+ MULTIPOINT EMPTY
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>L - simple line</desc>
+ <a>
+ LINESTRING(10 10, 20 20)
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>L - non-simple, proper interior intersection</desc>
+ <a>
+ LINESTRING (20 60, 160 60, 80 160, 80 20)
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ false
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>L - non-simple, interior intersection at vertices</desc>
+ <a>
+ LINESTRING (20 80, 80 20, 80 80, 140 60, 80 20, 160 20)
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ false
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>L - non-simple, interior intersection at Bdy/non-vertex</desc>
+ <a>
+ LINESTRING (20 60, 100 60, 60 100, 60 60)
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ false
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>L - non-simple, interior intersection at Bdy/vertex</desc>
+ <a>
+ LINESTRING (20 60, 60 60, 100 60, 60 100, 60 60)
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ false
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>L - simple, intersection at Bdy/Bdy (ring)</desc>
+ <a>
+ LINESTRING (20 20, 80 20, 80 80, 20 20)
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>L - simple, intersection at Bdy/Bdy + non-vertex</desc>
+ <a>
+ LINESTRING (80 80, 20 20, 20 80, 140 80, 140 140, 80 80)
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ false
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>L - empty</desc>
+ <a>
+ LINESTRING EMPTY
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ true
+ </op>
+</test>
+</case>
+
+
+<case>
+ <desc>mL - intersection between elements at non-vertex</desc>
+ <a>
+ MULTILINESTRING(
+ (40 140, 160 40),
+ (160 140, 40 40))
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ false
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mL - no intersection between elements</desc>
+ <a>
+ MULTILINESTRING(
+ (20 160, 20 20),
+ (100 160, 100 20))
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mL - mutual intersection at endpoints only</desc>
+ <a>
+ MULTILINESTRING ((60 140, 20 80, 60 40),
+ (60 40, 100 80, 60 140))
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mL - one element is non-simple</desc>
+ <a>
+ MULTILINESTRING ((60 40, 140 40, 100 120, 100 0),
+ (100 200, 200 120))
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ false
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mL - proper intersection between elements at vertex</desc>
+ <a>
+ MULTILINESTRING ((40 120, 100 60),
+ (160 120, 100 60),
+ (40 60, 160 60))
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ false
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mL - intersection between closed lines</desc>
+ <a>
+ MULTILINESTRING ((80 160, 40 220, 40 100, 80 160),
+ (80 160, 120 220, 120 100, 80 160))
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ false
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mL - intersection between closed and open lines</desc>
+ <a>
+ MULTILINESTRING ((80 160, 40 220),
+ (80 160, 120 220, 120 100, 80 160),
+ (40 100, 80 160))
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ false
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>A</desc>
+ <a>
+ POLYGON ((180 260, 80 300, 40 180, 160 120, 180 260))
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>A - empty</desc>
+ <a>
+ POLYGON EMPTY
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mA</desc>
+ <a>
+ MULTIPOLYGON (((240 160, 140 220, 80 60, 220 40, 240 160)),
+ ((160 380, 100 240, 20 380, 160 380),
+ (120 340, 60 360, 80 320, 120 340)))
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ true
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>mA - with touching elements</desc>
+ <a>
+ MULTIPOLYGON (((240 160, 100 240, 80 60, 220 40, 240 160)),
+ ((160 380, 100 240, 20 380, 160 380),
+ (120 340, 60 360, 80 320, 120 340)))
+ </a>
+<test>
+ <op name="isSimple" arg1="A">
+ true
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestValid.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestValid.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestValid.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,670 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+ <case>
+ <desc>L - linear-ring bowtie</desc>
+ <a>LINEARRING(0 0, 100 100, 100 0, 0 100, 0 0)</a>
+ <test>
+ <op name="isValid" arg1="A">false</op>
+ </test>
+ </case>
+
+ <case>
+ <desc>L - linestring bowtie</desc>
+ <a>LINESTRING(0 0, 100 100, 100 0, 0 100, 0 0)</a>
+ <test>
+ <op name="isValid" arg1="A">true</op>
+ </test>
+ </case>
+
+ <case>
+ <desc>P - point</desc>
+ <a>
+ POINT(10 10)
+ </a>
+ <test>
+ <op name="isValid" arg1="A">
+ true
+ </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>mP - no repeated points</desc>
+ <a>
+ MULTIPOINT(10 10, 20 20, 30 30)
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>P - repeated points</desc>
+ <a>
+ MULTIPOINT(10 10, 20 20, 30 30, 10 10)
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>L - no repeated points</desc>
+ <a>
+LINESTRING (40 180, 120 120, 140 200, 200 140, 240 200)
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>L - repeated points</desc>
+ <a>
+LINESTRING (40 180, 120 120, 140 200, 140 200, 200 140, 240 200)
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>L - linestring with two identical points </desc>
+ <a>LINESTRING(0 0, 0 0)</a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - zero-area polygon </desc>
+ <a>POLYGON ((0 0, 0 0, 0 0, 0 0, 0 0))</a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - polygon with too few points </desc>
+ <a>POLYGON ((0 0, 10 0, 20 0, 0 0, 0 0))</a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - polygon with repeated point </desc>
+ <a>POLYGON ((107 246, 107 246, 250 285, 294 137, 151 90, 15 125, 157 174, 107 246))</a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - polygon with degenerate hole ring (A-B-A) </desc>
+ <a>POLYGON ((0 0, 0 240, 260 240, 260 0, 0 0),
+ (220 200, 40 200, 40 20, 40 200, 220 200, 220 200))</a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>mA - multipolygon with component with too few points </desc>
+ <a>MULTIPOLYGON ( ((100 20, 180 20, 180 100, 100 100, 100 20)),
+((20 100, 100 100, 100 180, 20 180, 20 100)),
+((100 180, 180 180, 180 260, 100 260, 100 180)),
+((180 100, 180 180, 180 180, 180 100)))</a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - polygon self-intersects at non-vertex</desc>
+ <a>POLYGON ((0 40, 0 0, 40 40, 40 0, 0 40))</a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+ <case>
+ <desc>A - polygon self-intersects at vertex</desc>
+ <a>MULTIPOLYGON ( ((0 40, 20 20, 40 0, 40 40, 20 20, 0 0, 0 40)) ) </a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+ <case>
+ <desc>A - polygon self-intersects at vertex/non-vertex</desc>
+ <a>POLYGON ((0 40, 20 20, 40 0, 40 40, 0 0, 0 40))</a>
+ <test>
+ <op name="isValid" arg1="A">false</op>
+ </test>
+ </case>
+ <case>
+ <desc>A - hole self-intersects at non-vertex</desc>
+ <a>POLYGON ((-10 50, 50 50, 50 -10, -10 -10, -10 50), (0 40, 0 0, 40 40, 40 0, 0 40))</a>
+ <test>
+ <op name="isValid" arg1="A">false</op>
+ </test>
+ </case>
+ <case>
+ <desc>A - polygon self-intersects at vertex</desc>
+ <a>POLYGON ((-10 50, 50 50, 50 -10, -10 -10, -10 50), (0 40, 20 20, 40 0, 40 40, 20 20, 0 0, 0 40))</a>
+ <test>
+ <op name="isValid" arg1="A">false</op>
+ </test>
+ </case>
+ <case>
+ <desc>A - polygon self-intersects at vertex/non-vertex</desc>
+ <a>POLYGON ((-10 50, 50 50, 50 -10, -10 -10, -10 50), (0 40, 20 20, 40 0, 40 40, 0 0, 0 40))</a>
+ <test>
+ <op name="isValid" arg1="A">false</op>
+ </test>
+ </case>
+ <case>
+ <desc>A - Valid doughnut</desc>
+ <a>POLYGON ((0 60, 0 0, 60 0, 60 60, 0 60), (20 40, 20 20, 40 20, 40 40, 20 40))</a>
+ <test>
+ <op name="isValid" arg1="A">true</op>
+ </test>
+ </case>
+ <case>
+ <desc>A - shell has repeated points</desc>
+ <a>POLYGON ((0 60, 0 0, 0 0, 60 0, 60 60, 0 60), (20 40, 20 20, 40 20, 40 40, 20 40))</a>
+ <test>
+ <op name="isValid" arg1="A">true</op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - shell touches hole without crossing it (valid)</desc>
+ <a>POLYGON ((0 60, 0 0, 60 0, 60 60, 0 60), (20 40, 20 20, 60 20, 20 40))</a>
+ <test>
+ <op name="isValid" arg1="A">true</op>
+ </test>
+ </case>
+ <case>
+ <desc>A - shell touches hole without crossing it, but does so twice (invalid)</desc>
+ <a>POLYGON ((0 60, 0 0, 60 0, 60 60, 0 60), (0 40, 20 20, 60 20, 0 40))</a>
+ <test>
+ <op name="isValid" arg1="A">false</op>
+ </test>
+ </case>
+ <case>
+ <desc>A - hole touches hole without crossing it (valid)</desc>
+ <a>POLYGON ((0 120, 0 0, 140 0, 140 120, 0 120), (100 100, 100 20, 120 20, 120 100, 100 100), (20 100, 20 40, 100 40, 20 100))</a>
+ <test>
+ <op name="isValid" arg1="A">true</op>
+ </test>
+ </case>
+ <case>
+ <desc>A - holel touches hole without crossing it, but does so twice (invalid)</desc>
+ <a>POLYGON ((0 120, 0 0, 140 0, 140 120, 0 120),
+ (100 100, 100 20, 120 20, 120 100, 100 100),
+ (20 100, 20 40, 100 40, 80 60, 100 80, 20 100))</a>
+ <test>
+ <op name="isValid" arg1="A">false</op>
+ </test>
+ </case>
+ <case>
+ <desc>A - hole touches hole without crossing it, but does so at an infinite number of points (invalid)</desc>
+ <a>POLYGON ((0 120, 0 0, 140 0, 140 120, 0 120),
+ (100 100, 100 20, 120 20, 120 100, 100 100),
+ (20 100, 20 40, 100 40, 100 80, 20 100))</a>
+ <test>
+ <op name="isValid" arg1="A">false</op>
+ </test>
+ </case>
+ <case>
+ <desc>A - spike (invalid)</desc>
+ <a>POLYGON ((0 60, 0 0, 60 0, 60 20, 100 20, 60 20, 60 60, 0 60))</a>
+ <test>
+ <op name="isValid" arg1="A">false</op>
+ </test>
+ </case>
+ <case>
+ <desc>A - puncture (invalid)</desc>
+ <a>POLYGON ((0 60, 0 0, 60 0, 60 20, 20 20, 60 20, 60 60, 0 60))</a>
+ <test>
+ <op name="isValid" arg1="A">false</op>
+ </test>
+ </case>
+ <case>
+ <desc>A - hole within a hole (invalid)</desc>
+ <a>POLYGON ((0 140, 0 0, 180 0, 180 140, 0 140), (20 20, 160 20, 160 120, 20 120, 20 20), (40 100, 40 40, 140 40, 140 100, 40 100))</a>
+ <test>
+ <op name="isValid" arg1="A">false</op>
+ </test>
+ </case>
+ <case>
+ <desc>A - empty shell and holes (valid)</desc>
+ <a>POLYGON (EMPTY, EMPTY, EMPTY)</a>
+ <test>
+ <op name="isValid" arg1="A">true</op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - hole overlapping shell at non-vertex</desc>
+ <a>
+POLYGON ((60 280, 260 180, 60 80, 60 280),
+ (140 80, 120 180, 200 180, 140 80))
+ </a>
+ <test>
+ <op name="isValid" arg1="A">
+ false
+ </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - shell self-overlaps </desc>
+ <a>
+POLYGON ((60 340, 60 100, 340 100, 340 280, 340 200, 340 340, 60 340))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - hole with repeated points</desc>
+ <a>
+POLYGON ((40 260, 40 60, 120 60, 180 160, 240 60, 300 60, 300 260, 40 260),
+ (70 230, 80 230, 80 220, 80 220, 70 230)) </a>
+ <test>
+ <op name="isValid" arg1="A">
+ true
+ </op>
+ </test>
+ </case>
+ <case>
+ <desc>A - hole outside but adjacent to shell</desc>
+ <a>
+POLYGON ((40 260, 40 60, 120 60, 180 160, 240 60, 300 60, 300 260, 40 260),
+ (180 160, 240 60, 120 60, 180 160)) </a>
+ <test>
+ <op name="isValid" arg1="A">
+ false
+ </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - hole touches shell at two points</desc>
+ <a>
+POLYGON ((240 260, 40 260, 40 80, 240 80, 240 260),
+ (140 180, 40 180, 140 260, 140 180))
+ </a>
+ <test>
+ <op name="isValid" arg1="A">
+ false
+ </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - hole touches shell at one non-vertex point</desc>
+ <a>
+POLYGON ((240 260, 40 260, 40 80, 240 80, 240 260),
+ (140 180, 40 180, 140 240, 140 180))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - hole touches shell at one vertex point</desc>
+ <a>
+POLYGON ((240 260, 40 260, 40 80, 240 80, 240 260),
+ (140 180, 40 260, 140 240, 140 180))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - hole outside shell</desc>
+ <a>
+POLYGON ((20 180, 20 20, 140 20, 140 180, 20 180),
+ (160 120, 180 100, 160 80, 160 120))
+</a>
+ <test>
+ <op name="isValid" arg1="A">
+ false
+ </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - hole identical to shell</desc>
+ <a>
+POLYGON ((20 180, 20 20, 140 20, 140 180, 20 180),
+ (20 180, 20 20, 140 20, 140 180, 20 180))
+</a>
+ <test>
+ <op name="isValid" arg1="A">
+ false
+ </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - hole identical to shell</desc>
+ <a>
+POLYGON ((20 180, 20 20, 140 20, 140 180, 20 180),
+ (20 180, 20 20, 140 20, 140 180, 20 180))
+</a>
+ <test>
+ <op name="isValid" arg1="A">
+ false
+ </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - hole self-intersects </desc>
+ <a>
+POLYGON ((380 340, 40 340, 40 20, 380 20, 380 340),
+ (120 300, 300 280, 320 200, 160 140, 200 80, 320 120, 320 200, 360 60, 120 40, 120 300))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - holes overlap, first point is identical </desc>
+ <a>
+POLYGON ((20 320, 260 320, 260 20, 20 20, 20 320),
+ (140 280, 80 100, 200 100, 140 280),
+ (140 280, 40 80, 240 80, 140 280))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - holes do not overlap, first point is identical </desc>
+ <a>
+POLYGON ((20 320, 240 320, 240 40, 20 40, 20 320),
+ (140 180, 60 120, 60 240, 140 180),
+ (140 180, 200 120, 200 240, 140 180))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - shell self-touches at vertex </desc>
+ <a>
+POLYGON ((340 320, 340 200, 200 280, 200 80, 340 200, 340 20, 60 20, 60 340, 340 320))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - shell self-touches at non-vertex </desc>
+ <a>
+POLYGON ((300 320, 300 220, 260 260, 180 220, 360 220, 360 140, 120 140, 120 320, 300 320)) </a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - chain of holes surrounds an island inside the polygon </desc>
+ <a>
+POLYGON ((40 300, 40 20, 280 20, 280 300, 40 300),
+ (120 240, 80 180, 160 220, 120 240),
+ (220 240, 160 220, 220 160, 220 240),
+ (160 100, 80 180, 100 80, 160 100),
+ (160 100, 220 160, 240 100, 160 100)) </a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - chain of holes splits polygon in two (touching at vertices) </desc>
+ <a>
+POLYGON ((40 320, 340 320, 340 20, 40 20, 40 320),
+ (100 120, 40 20, 180 100, 100 120),
+ (200 200, 180 100, 240 160, 200 200),
+ (260 260, 240 160, 300 200, 260 260),
+ (300 300, 300 200, 340 320, 300 300))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - chain of holes splits polygon in two (touching at non-vertex) </desc>
+ <a>
+POLYGON ((40 320, 340 320, 340 20, 40 20, 40 320),
+ (100 120, 40 20, 180 100, 100 120),
+ (200 200, 180 100, 240 160, 200 200),
+ (260 260, 240 160, 300 200, 260 260),
+ (300 300, 300 200, 340 260, 300 300))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - holes touch in one point </desc>
+ <a>
+POLYGON ((190 190, 360 20, 20 20, 190 190),
+ (90 50, 150 110, 190 50, 90 50),
+ (190 50, 230 110, 290 50, 190 50))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - holes touch in one point </desc>
+ <a>
+POLYGON ((190 190, 360 20, 20 20, 190 190),
+ (90 50, 150 110, 190 50, 90 50),
+ (190 50, 230 110, 290 50, 190 50))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - hole disconnects interiors </desc>
+ <a>
+POLYGON ((0 0, 10 10, 10 0, 0 0),
+ (5 5, 5 0, 10 5, 5 5))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>A - touching holes do NOT disconnect (isCCW bug) </desc>
+ <a>
+POLYGON ((60 40, 60 240, 460 240, 460 40, 60 40),
+ (260 200, 340 60, 400 120, 260 200),
+ (260 200, 120 100, 200 60, 260 200))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+
+
+ <case>
+ <desc>mA - adjacent shells (shared vertices) </desc>
+ <a>
+MULTIPOLYGON (((40 120, 140 120, 140 40, 40 40, 40 120)),
+ ((140 120, 40 120, 40 200, 140 200, 140 120)))
+ </a>
+ <test>
+ <op name="isValid" arg1="A">
+ false
+ </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>mA - adjacent shells (different vertices) </desc>
+ <a>
+MULTIPOLYGON (((40 120, 140 120, 140 40, 40 40, 40 120)),
+ ((160 120, 60 120, 40 200, 140 200, 160 120)))
+ </a>
+ <test>
+ <op name="isValid" arg1="A">
+ false
+ </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>mA - nested overlapping shells </desc>
+ <a>
+MULTIPOLYGON (((80 260, 240 260, 240 100, 80 100, 80 260)),
+ ((120 240, 220 240, 220 140, 120 140, 120 240)))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>mA - nested non-overlapping shells </desc>
+ <a>
+MULTIPOLYGON (((60 320, 60 80, 300 80, 60 320),
+ (80 280, 80 100, 260 100, 80 280)),
+ ((120 160, 140 160, 140 140, 120 160)))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>mA - nested non-overlapping shells, all vertices touch </desc>
+ <a>
+MULTIPOLYGON (((20 380, 420 380, 420 20, 20 20, 20 380),
+ (220 340, 180 240, 60 200, 180 160, 340 60, 240 220, 220 340)),
+ ((180 240, 180 160, 240 220, 180 240)))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>mA - nested overlapping shells, all vertices touch </desc>
+ <a>
+MULTIPOLYGON (((20 380, 420 380, 420 20, 20 20, 20 380),
+ (220 340, 180 240, 60 200, 140 100, 340 60, 300 240, 220 340)),
+ ((60 200, 340 60, 220 340, 60 200)))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>mA - nested non-overlapping shells, all vertices touch </desc>
+ <a>
+MULTIPOLYGON (((20 380, 420 380, 420 20, 20 20, 20 380),
+ (220 340, 80 320, 60 200, 140 100, 340 60, 300 240, 220 340)),
+ ((60 200, 340 60, 220 340, 60 200)))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>mA - nested overlapping shells, all vertices touch </desc>
+ <a>
+MULTIPOLYGON (((20 380, 420 380, 420 20, 20 20, 20 380),
+ (220 340, 180 240, 60 200, 200 180, 340 60, 240 220, 220 340)),
+ ((60 200, 340 60, 220 340, 60 200)))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>mA - disconnected exterior </desc>
+ <a>
+MULTIPOLYGON (((100 20, 180 20, 180 100, 100 100, 100 20)),
+ ((20 100, 100 100, 100 180, 20 180, 20 100)),
+ ((100 180, 180 180, 180 260, 100 260, 100 180)),
+ ((180 100, 260 100, 260 180, 180 180, 180 100)))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>mA - shells touch in single point </desc>
+ <a>
+MULTIPOLYGON (((110 110, 70 200, 150 200, 110 110)),
+ ((110 110, 150 20, 70 20, 110 110)))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>mA - duplicate shells </desc>
+ <a>
+MULTIPOLYGON (((60 300, 320 220, 260 60, 60 100, 60 300)),
+ ((60 300, 320 220, 260 60, 60 100, 60 300)))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> false </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>mA - shells are not nested but share all vertices </desc>
+ <a>
+MULTIPOLYGON (((180 60, 240 160, 300 60, 180 60)),
+ ((80 80, 180 60, 160 140, 240 160, 360 140, 300 60, 420 100, 320 280, 120 260, 80 80)))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+ <case>
+ <desc>mA - shell is nested inside first hole </desc>
+ <a>
+MULTIPOLYGON (((0 0, 0 8, 8 8, 8 0, 0 0),
+ (3 3, 7 3, 7 7, 3 7, 3 3),
+ (1 1, 2 1, 2 2, 1 2, 1 1)),
+ ((4 4, 4 6, 6 6, 6 4, 4 4)))
+ </a>
+ <test>
+ <op name="isValid" arg1="A"> true </op>
+ </test>
+ </case>
+
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestValid2-big.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestValid2-big.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestValid2-big.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,18 @@
+<run>
+ <precisionModel type="FLOATING"/>
+<case>
+ <desc>Test 92</desc>
+ <a>
+ POLYGON ((100 100, 1000000000000000 110, 1000000000000000 100, 100 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 558</desc>
+ <a>
+ MULTIPOINT (-1000000000000000000000000 -1000000000000000000000000, 1000000000000000000000000 -1000000000000000000000000, 1000000000000000000000000 1000000000000000000000000, -1000000000000000000000000 1000000000000000000000000, 0 0)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestValid2.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestValid2.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestValid2.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,5246 @@
+<run>
+ <precisionModel type="FLOATING"/>
+<case>
+ <desc>Test 1</desc>
+ <a>
+ LINESTRING (-123456789 -40, 381039468754763 123456789)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 2</desc>
+ <a>
+ POINT (0 0)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 3</desc>
+ <a>
+ POLYGON ((20 20, 20 100, 120 100, 140 20, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 4</desc>
+ <a>
+ POLYGON ((20 20, 140 20, 120 100, 20 100, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 5</desc>
+ <a>
+ POLYGON ((120 100, 140 20, 20 20, 20 100, 120 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 6</desc>
+ <a>
+ POLYGON ((20 100, 60 100, 120 100, 140 20, 80 20, 20 20, 20 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 7</desc>
+ <a>
+ POLYGON ((0 0, 80 0, 80 80, 0 80, 0 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 8</desc>
+ <a>
+ POLYGON ((100 200, 100 140, 180 140, 180 200, 100 200))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 9</desc>
+ <a>
+ POLYGON ((140 120, 160 20, 20 20, 20 120, 140 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 10</desc>
+ <a>
+ POLYGON ((140 120, 140 200, 240 200, 240 120, 140 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 11</desc>
+ <a>
+ POLYGON ((80 180, 140 260, 260 200, 200 60, 80 180))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 12</desc>
+ <a>
+ POLYGON ((240 80, 140 120, 180 240, 280 200, 240 80))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 13</desc>
+ <a>
+ POLYGON ((140 160, 20 20, 270 20, 150 160, 230 40, 60 40, 140 160))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 14</desc>
+ <a>
+ POLYGON ((140 40, 180 80, 120 100, 140 40))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 15</desc>
+ <a>
+ POLYGON ((120 100, 180 80, 130 40, 120 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 16</desc>
+ <a>
+ POLYGON ((20 20, 180 20, 140 140, 20 140, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 17</desc>
+ <a>
+ POLYGON ((180 100, 80 200, 180 280, 260 200, 180 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 18</desc>
+ <a>
+ POLYGON ((140 140, 20 120, 0 220, 120 240, 140 140))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 19</desc>
+ <a>
+ POLYGON ((160 200, 210 70, 120 70, 160 200))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 20</desc>
+ <a>
+ POLYGON ((160 200, 260 40, 70 40, 160 200, 20 20, 310 20, 160 200))
+ </a>
+ <test> <op name="isValid" arg1="A"> false </op> </test>
+</case>
+<case>
+ <desc>Test 21</desc>
+ <a>
+ POLYGON ((110 140, 200 70, 200 160, 110 140))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 22</desc>
+ <a>
+ POLYGON ((110 140, 110 50, 60 50, 60 90, 160 190, 20 110, 20 20, 200 20, 110 140))
+ </a>
+ <test> <op name="isValid" arg1="A"> false </op> </test>
+</case>
+<case>
+ <desc>Test 23</desc>
+ <a>
+ POLYGON ((20 120, 20 20, 260 20, 260 120, 200 40, 140 120, 80 40, 20 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 24</desc>
+ <a>
+ POLYGON ((20 120, 20 240, 260 240, 260 120, 200 200, 140 120, 80 200, 20 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 25</desc>
+ <a>
+ POLYGON ((20 120, 20 20, 260 20, 260 120, 180 40, 140 120, 100 40, 20 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 26</desc>
+ <a>
+ POLYGON ((20 120, 300 120, 140 240, 20 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 27</desc>
+ <a>
+ POLYGON ((20 20, 20 300, 280 300, 280 260, 220 260, 60 100, 60 60, 280 60, 280 20, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 28</desc>
+ <a>
+ POLYGON ((100 140, 160 80, 280 180, 200 240, 220 160, 160 200, 180 120, 100 140))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 29</desc>
+ <a>
+ POLYGON ((260 200, 180 80, 120 160, 200 160, 180 220, 260 200))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 30</desc>
+ <a>
+ POLYGON ((20 20, 280 20, 280 140, 220 60, 140 140, 80 60, 20 140, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 31</desc>
+ <a>
+ POLYGON ((0 140, 300 140, 140 240, 0 140))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 32</desc>
+ <a>
+ POLYGON ((20 240, 20 140, 320 140, 180 240, 20 240))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 33</desc>
+ <a>
+ POLYGON ((20 240, 20 140, 80 180, 140 140, 220 180, 280 140, 280 240, 20 240))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 34</desc>
+ <a>
+ POLYGON ((120 120, 180 60, 20 20, 20 120, 120 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 35</desc>
+ <a>
+ POLYGON ((120 120, 220 20, 280 20, 240 160, 120 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 36</desc>
+ <a>
+ POLYGON ((140 120, 160 20, 260 120, 220 200, 140 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 37</desc>
+ <a>
+ POLYGON ((20 140, 120 40, 20 40, 20 140))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 38</desc>
+ <a>
+ POLYGON ((190 140, 190 20, 140 20, 20 140, 190 140))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 39</desc>
+ <a>
+ POLYGON ((300 20, 220 20, 120 120, 260 160, 300 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 40</desc>
+ <a>
+ POLYGON ((140 120, 240 160, 280 60, 160 20, 140 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 41</desc>
+ <a>
+ POLYGON ((280 60, 180 60, 120 120, 260 180, 280 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 42</desc>
+ <a>
+ POLYGON ((120 200, 120 120, 40 120, 40 200, 120 200))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 43</desc>
+ <a>
+ POLYGON ((160 220, 140 120, 60 120, 40 220, 160 220))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 44</desc>
+ <a>
+ POLYGON ((140 120, 20 120, 20 220, 140 220, 140 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 45</desc>
+ <a>
+ POLYGON ((320 20, 220 20, 80 160, 240 140, 320 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 46</desc>
+ <a>
+ POLYGON ((20 20, 20 180, 220 180, 220 20, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 47</desc>
+ <a>
+ POLYGON ((60 40, 60 140, 180 140, 180 40, 60 40))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 48</desc>
+ <a>
+ POLYGON ((20 20, 80 140, 160 60, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 49</desc>
+ <a>
+ POLYGON ((160 60, 20 20, 100 140, 160 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 50</desc>
+ <a>
+ POLYGON ((20 100, 140 160, 160 40, 20 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 51</desc>
+ <a>
+ POLYGON ((160 40, 20 100, 160 160, 160 40))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 52</desc>
+ <a>
+ POLYGON ((20 180, 180 120, 80 40, 20 180))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 53</desc>
+ <a>
+ POLYGON ((180 120, 100 40, 20 180, 180 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 54</desc>
+ <a>
+ POLYGON ((20 20, 140 40, 140 120, 20 160, 80 80, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 55</desc>
+ <a>
+ POLYGON ((20 20, 140 40, 140 140, 20 180, 80 100, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 56</desc>
+ <a>
+ POLYGON ((40 180, 60 100, 180 100, 200 180, 120 120, 40 180))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 57</desc>
+ <a>
+ POLYGON ((20 180, 60 80, 180 80, 220 180, 120 120, 20 180))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 58</desc>
+ <a>
+ POLYGON ((40 60, 20 180, 100 100, 140 180, 160 120, 220 100, 140 40, 40 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 59</desc>
+ <a>
+ POLYGON ((60 100, 180 100, 220 180, 120 140, 20 180, 60 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 60</desc>
+ <a>
+ POLYGON ((20 20, 20 140, 120 120, 120 40, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 61</desc>
+ <a>
+ POLYGON ((20 20, 20 180, 140 140, 140 60, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 62</desc>
+ <a>
+ POLYGON ((20 20, 120 40, 120 120, 20 140, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 63</desc>
+ <a>
+ POLYGON ((120 40, 20 20, 20 140, 120 120, 120 40))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 64</desc>
+ <a>
+ POLYGON ((20 20, 140 60, 140 140, 20 180, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 65</desc>
+ <a>
+ POLYGON ((140 60, 20 20, 20 180, 140 140, 140 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 66</desc>
+ <a>
+ POLYGON ((20 20, 60 120, 140 120, 180 20, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 67</desc>
+ <a>
+ POLYGON ((20 40, 120 40, 120 120, 20 140, 20 40))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 68</desc>
+ <a>
+ POLYGON ((20 20, 20 180, 60 120, 100 180, 140 120, 220 180, 200 120, 140 60, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 69</desc>
+ <a>
+ POLYGON ((150 150, 330 150, 250 70, 70 70, 150 150))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 70</desc>
+ <a>
+ POLYGON ((150 150, 270 150, 140 20, 20 20, 150 150))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 71</desc>
+ <a>
+ POLYGON ((150 150, 270 150, 330 150, 250 70, 190 70, 70 70, 150 150))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 72</desc>
+ <a>
+ POLYGON ((150 150, 270 150, 190 70, 140 20, 20 20, 70 70, 150 150))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 73</desc>
+ <a>
+ POLYGON ((20 20, 60 50, 20 40, 60 70, 20 60, 60 90, 20 90, 70 110, 20 130, 80 130, 20 150, 80 160, 20 170, 80 180, 20 200, 80 200, 30 240, 80 220, 50 260, 100 220, 100 260, 120 220, 130 260, 140 220, 150 280, 150 190, 160 280, 170 190, 180 280, 190 190, 200 280, 210 190, 220 280, 230 190, 240 260, 250 230, 260 260, 260 220, 290 270, 290 220, 330 260, 300 210, 340 240, 290 180, 340 210, 290 170, 350 170, 240 150, 350 150, 240 140, 350 130, 240 120, 350 120, 240 110, 350 110, 240 100, 350 100, 240 90, 350 90, 240 80, 350 80, 300 70, 340 60, 290 60, 340 40, 300 50, 340 20, 270 60, 310 20, 250 60, 270 20, 230 60, 240 20, 210 60, 210 20, 190 70, 190 20, 180 90, 170 20, 160 90, 150 20, 140 90, 130 20, 120 90, 110 20, 100 90, 100 20, 90 60, 80 20, 70 40, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 74</desc>
+ <a>
+ POLYGON ((190 140, 140 130, 200 160, 130 150, 210 170, 130 170, 210 180, 120 190, 220 200, 120 200, 250 210, 120 210, 250 220, 120 220, 250 230, 120 240, 230 240, 120 250, 240 260, 120 260, 240 270, 120 270, 270 290, 120 290, 230 300, 150 310, 250 310, 180 320, 250 320, 200 360, 260 330, 240 360, 280 320, 290 370, 290 320, 320 360, 310 320, 360 360, 310 310, 380 340, 310 290, 390 330, 310 280, 410 310, 310 270, 420 280, 310 260, 430 250, 300 250, 440 240, 300 240, 450 230, 280 220, 440 220, 280 210, 440 210, 300 200, 430 190, 300 190, 440 180, 330 180, 430 150, 320 180, 420 130, 300 180, 410 120, 280 180, 400 110, 280 170, 390 90, 280 160, 400 70, 270 160, 450 30, 260 160, 420 30, 250 160, 390 30, 240 160, 370 30, 230 160, 360 30, 230 150, 330 50, 240 130, 330 30, 230 130, 310 30, 220 130, 280 30, 230 100, 270 40, 220 110, 250 30, 210 130, 240 30, 210 100, 220 40, 200 90, 200 20, 190 100, 180 30, 20 20, 180 40, 20 30, 180 50, 20 50, 180 60, 30 60, 180 70, 20 70, 170 80, 80 80, 170 90, 20 80, 180 100, 40 100, 200 110, 60 110, 200 120, 120 120, 190 140))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 75</desc>
+ <a>
+ POLYGON ((70 150, 20 160, 110 160, 20 180, 100 200, 20 200, 190 210, 20 210, 160 220, 20 220, 150 230, 60 240, 180 250, 20 260, 170 260, 60 270, 160 270, 100 310, 170 280, 200 260, 180 230, 210 260, 130 330, 230 250, 210 290, 240 250, 230 210, 260 300, 250 230, 270 300, 270 240, 300 340, 280 250, 320 330, 290 250, 340 350, 290 240, 350 360, 270 190, 350 340, 290 200, 350 330, 300 190, 360 320, 310 190, 360 300, 320 200, 360 280, 330 200, 360 260, 340 200, 370 260, 340 180, 390 290, 340 170, 400 260, 350 170, 400 250, 350 160, 410 240, 350 150, 400 170, 350 140, 310 170, 340 140, 270 180, 330 140, 260 170, 310 140, 240 170, 290 140, 200 190, 270 140, 180 190, 260 140, 170 190, 260 130, 170 180, 250 130, 170 170, 240 120, 170 160, 210 120, 170 150, 210 110, 340 130, 230 110, 420 140, 220 100, 410 130, 220 90, 400 120, 220 80, 390 110, 220 70, 420 110, 240 70, 420 100, 260 70, 420 90, 280 70, 430 80, 230 60, 430 60, 270 50, 450 40, 210 50, 370 40, 260 40, 460 30, 160 40, 210 60, 200 110, 190 60, 190 120, 170 50, 180 130, 150 30, 170 130, 140 20, 160 120, 130 20, 160 150, 120 20, 160 170, 110 20, 160 190, 100 20, 150 190, 90 20, 140 180, 80 20, 120 140, 70 20, 120 150, 60 20, 110 150, 50 20, 100 140, 50 30, 90 130, 40 30, 80 120, 30 30, 80 130, 30 40, 80 140, 20 40, 70 140, 40 90, 60 130, 20 90, 60 140, 20 130, 70 150))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 76</desc>
+ <a>
+ POLYGON ((60 160, 220 160, 220 20, 60 20, 60 160))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 77</desc>
+ <a>
+ POLYGON ((60 160, 20 200, 260 200, 220 160, 140 80, 60 160))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 78</desc>
+ <a>
+ POLYGON ((60 160, 20 200, 260 200, 140 80, 60 160))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 79</desc>
+ <a>
+ POLYGON ((20 200, 140 80, 260 200, 20 200))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 80</desc>
+ <a>
+ POLYGON ((20 200, 60 160, 140 80, 220 160, 260 200, 20 200))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 81</desc>
+ <a>
+ POLYGON ((20 200, 60 160, 140 80, 260 200, 20 200))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 82</desc>
+ <a>
+ POLYGON ((0 0, 0 200, 200 200, 200 0, 0 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 83</desc>
+ <a>
+ POLYGON ((100 100, 1000000 110, 10000000 100, 100 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 84</desc>
+ <a>
+ POLYGON ((100 0, 100 200, 200 200, 200 0, 100 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 85</desc>
+ <a>
+ POLYGON ((120 0, 120 200, 200 200, 200 0, 120 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 86</desc>
+ <a>
+ POLYGON ((0 0, 0 200, 110 200, 110 0, 0 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 87</desc>
+ <a>
+ POLYGON ((100 100, 100 200, 200 200, 200 100, 100 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 88</desc>
+ <a>
+ POLYGON ((100 100, 2100 110, 2100 100, 100 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 89</desc>
+ <a>
+ POLYGON ((100 100, 2101 110, 2101 100, 100 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 90</desc>
+ <a>
+ POLYGON ((100 100, 200 200, 200 100, 100 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 91</desc>
+ <a>
+ POLYGON ((100 100, 1000000 110, 1000000 100, 100 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 93</desc>
+ <a>
+ POLYGON ((120 100, 120 200, 200 200, 200 100, 120 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 94</desc>
+ <a>
+ POLYGON ((100 100, 500 110, 500 100, 100 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 95</desc>
+ <a>
+ POLYGON ((100 100, 501 110, 501 100, 100 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 96</desc>
+ <a>
+ POLYGON ((120 100, 130 200, 200 200, 200 100, 120 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 97</desc>
+ <a>
+ POLYGON ((120 100, 17 200, 200 200, 200 100, 120 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 98</desc>
+ <a>
+ POLYGON ((101 99, 101 1000000, 102 1000000, 101 99))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 99</desc>
+ <a>
+ POLYGON ((100 100, 200 101, 200 100, 100 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 100</desc>
+ <a>
+ POLYGON ((16 319, 150 39, 25 302, 160 20, 265 20, 127 317, 16 319))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 101</desc>
+ <a>
+ POLYGON ((10 307, 22 307, 153 34, 22 34, 10 307))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 102</desc>
+ <a>
+ POLYGON ((160 200, 310 20, 20 20, 160 200), (160 200, 260 40, 70 40, 160 200))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 103</desc>
+ <a>
+ POLYGON ((170 120, 240 100, 260 50, 190 70, 170 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 104</desc>
+ <a>
+ POLYGON ((150 150, 410 150, 280 20, 20 20, 150 150), (170 120, 330 120, 260 50, 100 50, 170 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 105</desc>
+ <a>
+ POLYGON ((270 90, 200 50, 150 80, 210 120, 270 90))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 106</desc>
+ <a>
+ POLYGON ((170 120, 260 100, 240 60, 150 80, 170 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 107</desc>
+ <a>
+ POLYGON ((220 120, 270 80, 200 60, 160 100, 220 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 108</desc>
+ <a>
+ POLYGON ((260 50, 180 70, 180 110, 260 90, 260 50))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 109</desc>
+ <a>
+ POLYGON ((230 110, 290 80, 190 60, 140 90, 230 110))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 110</desc>
+ <a>
+ POLYGON ((170 120, 330 120, 260 50, 100 50, 170 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 111</desc>
+ <a>
+ POLYGON ((170 120, 330 120, 280 70, 120 70, 170 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 112</desc>
+ <a>
+ POLYGON ((170 120, 300 120, 250 70, 120 70, 170 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 113</desc>
+ <a>
+ POLYGON ((190 100, 310 100, 260 50, 140 50, 190 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 114</desc>
+ <a>
+ POLYGON ((280 130, 360 130, 270 40, 190 40, 280 130))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 115</desc>
+ <a>
+ POLYGON ((150 150, 410 150, 280 20, 20 20, 150 150), (170 120, 250 120, 180 50, 100 50, 170 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 116</desc>
+ <a>
+ POLYGON ((220 80, 180 40, 80 40, 170 130, 270 130, 230 90, 300 90, 250 30, 280 30, 390 140, 150 140, 40 30, 230 30, 280 80, 220 80))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 117</desc>
+ <a>
+ POLYGON ((260 130, 360 130, 280 40, 170 40, 260 130))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 118</desc>
+ <a>
+ POLYGON ((240 110, 340 110, 290 60, 190 60, 240 110))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 119</desc>
+ <a>
+ POLYGON ((250 120, 350 120, 280 50, 180 50, 250 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 120</desc>
+ <a>
+ POLYGON ((230 210, 230 20, 20 20, 20 210, 230 210), (120 180, 50 50, 200 50, 120 180))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 121</desc>
+ <a>
+ POLYGON ((230 210, 230 20, 20 20, 20 210, 230 210), (140 40, 40 40, 40 170, 140 40), (110 190, 210 190, 210 50, 110 190))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 122</desc>
+ <a>
+ POLYGON ((280 190, 330 150, 200 110, 150 150, 280 190))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 123</desc>
+ <a>
+ MULTIPOLYGON (((140 110, 260 110, 170 20, 50 20, 140 110)), ((300 270, 420 270, 340 190, 220 190, 300 270)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 124</desc>
+ <a>
+ POLYGON ((80 190, 220 190, 140 110, 0 110, 80 190))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 125</desc>
+ <a>
+ POLYGON ((330 150, 200 110, 150 150, 280 190, 330 150))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 126</desc>
+ <a>
+ POLYGON ((290 190, 340 150, 220 120, 170 170, 290 190))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 127</desc>
+ <a>
+ POLYGON ((220 190, 340 190, 260 110, 140 110, 220 190))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 128</desc>
+ <a>
+ POLYGON ((140 190, 220 190, 100 70, 20 70, 140 190))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 129</desc>
+ <a>
+ POLYGON ((140 220, 60 140, 140 60, 220 140, 140 220))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 130</desc>
+ <a>
+ MULTIPOLYGON (((100 20, 180 20, 180 100, 100 100, 100 20)), ((20 100, 100 100, 100 180, 20 180, 20 100)), ((100 180, 180 180, 180 260, 100 260, 100 180)), ((180 100, 260 100, 260 180, 180 180, 180 100)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 131</desc>
+ <a>
+ MULTIPOLYGON (((110 110, 70 200, 150 200, 110 110)), ((110 110, 150 20, 70 20, 110 110)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 132</desc>
+ <a>
+ MULTIPOLYGON (((110 110, 160 160, 210 110, 160 60, 110 110)), ((110 110, 60 60, 10 110, 60 160, 110 110)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 133</desc>
+ <a>
+ MULTIPOLYGON (((110 110, 70 200, 150 200, 110 110), (110 110, 100 180, 120 180, 110 110)), ((110 110, 150 20, 70 20, 110 110), (110 110, 120 40, 100 40, 110 110)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 134</desc>
+ <a>
+ MULTIPOLYGON (((110 110, 160 160, 210 110, 160 60, 110 110), (110 110, 160 130, 160 90, 110 110)), ((110 110, 60 60, 10 110, 60 160, 110 110), (110 110, 60 90, 60 130, 110 110)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 135</desc>
+ <a>
+ MULTIPOLYGON (((110 110, 70 200, 200 200, 110 110), (110 110, 100 180, 120 180, 110 110)), ((110 110, 200 20, 70 20, 110 110), (110 110, 120 40, 100 40, 110 110)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 136</desc>
+ <a>
+ MULTIPOLYGON (((110 110, 20 200, 200 200, 110 110), (110 110, 100 180, 120 180, 110 110)), ((110 110, 200 20, 20 20, 110 110), (110 110, 120 40, 100 40, 110 110)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 137</desc>
+ <a>
+ MULTIPOLYGON (((110 110, 70 200, 210 110, 70 20, 110 110), (110 110, 110 140, 150 110, 110 80, 110 110)), ((110 110, 60 60, 10 110, 60 160, 110 110), (110 110, 60 90, 60 130, 110 110)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 138</desc>
+ <a>
+ POLYGON ((100 60, 140 100, 100 140, 60 100, 100 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 139</desc>
+ <a>
+ MULTIPOLYGON (((80 40, 120 40, 120 80, 80 80, 80 40)), ((120 80, 160 80, 160 120, 120 120, 120 80)), ((80 120, 120 120, 120 160, 80 160, 80 120)), ((40 80, 80 80, 80 120, 40 120, 40 80)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 140</desc>
+ <a>
+ LINESTRING (150 150, 40 230)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 141</desc>
+ <a>
+ POLYGON ((150 150, 410 150, 280 20, 20 20, 150 150))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 142</desc>
+ <a>
+ LINESTRING (40 40, 50 130, 130 130)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 143</desc>
+ <a>
+ LINESTRING (40 230, 150 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 144</desc>
+ <a>
+ LINESTRING (210 150, 330 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 145</desc>
+ <a>
+ LINESTRING (200 150, 310 150, 360 220)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 146</desc>
+ <a>
+ LINESTRING (180 150, 250 150, 230 250, 370 250, 410 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 147</desc>
+ <a>
+ LINESTRING (210 210, 220 150, 320 150, 370 210)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 148</desc>
+ <a>
+ LINESTRING (20 60, 150 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 149</desc>
+ <a>
+ LINESTRING (60 90, 310 180)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 150</desc>
+ <a>
+ LINESTRING (90 210, 210 90)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 151</desc>
+ <a>
+ LINESTRING (290 10, 130 170)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 152</desc>
+ <a>
+ LINESTRING (30 100, 100 100, 180 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 153</desc>
+ <a>
+ LINESTRING (20 100, 100 100, 360 100, 410 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 154</desc>
+ <a>
+ LINESTRING (90 210, 150 150, 210 90)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 155</desc>
+ <a>
+ LINESTRING (180 90, 280 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 156</desc>
+ <a>
+ LINESTRING (70 70, 80 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 157</desc>
+ <a>
+ LINESTRING (130 20, 150 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 158</desc>
+ <a>
+ LINESTRING (70 70, 80 20, 140 20, 150 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 159</desc>
+ <a>
+ LINESTRING (170 50, 170 20, 240 20, 260 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 160</desc>
+ <a>
+ LINESTRING (50 100, 140 190, 280 190)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 161</desc>
+ <a>
+ LINESTRING (140 60, 180 100, 290 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 162</desc>
+ <a>
+ LINESTRING (170 120, 210 80, 270 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 163</desc>
+ <a>
+ LINESTRING (170 120, 260 50)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 164</desc>
+ <a>
+ LINESTRING (190 90, 190 270)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 165</desc>
+ <a>
+ POLYGON ((190 190, 360 20, 20 20, 190 190), (190 190, 280 50, 100 50, 190 190))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 166</desc>
+ <a>
+ LINESTRING (60 160, 150 70)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 167</desc>
+ <a>
+ POLYGON ((190 190, 360 20, 20 20, 190 190), (110 110, 250 100, 140 30, 110 110))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 168</desc>
+ <a>
+ POLYGON ((190 190, 20 20, 360 20, 190 190), (250 100, 110 110, 140 30, 250 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 169</desc>
+ <a>
+ LINESTRING (190 90, 190 190, 190 270)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 170</desc>
+ <a>
+ LINESTRING (60 160, 110 110, 150 70)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 171</desc>
+ <a>
+ POLYGON ((190 190, 110 110, 20 20, 360 20, 190 190), (250 100, 110 110, 140 30, 250 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 172</desc>
+ <a>
+ LINESTRING (130 110, 180 110, 190 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 173</desc>
+ <a>
+ POLYGON ((20 200, 240 200, 240 20, 20 20, 20 200), (130 110, 60 180, 60 40, 130 110), (130 110, 200 40, 200 180, 130 110))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 174</desc>
+ <a>
+ LINESTRING (80 110, 180 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 175</desc>
+ <a>
+ POLYGON ((20 200, 20 20, 240 20, 240 200, 20 200), (60 180, 130 110, 60 40, 60 180), (130 110, 200 40, 200 180, 130 110))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 176</desc>
+ <a>
+ LINESTRING (80 110, 170 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 177</desc>
+ <a>
+ POLYGON ((20 200, 20 20, 240 20, 240 200, 20 200), (130 110, 60 40, 60 180, 130 110), (130 180, 130 40, 200 110, 130 180))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 178</desc>
+ <a>
+ LINESTRING (80 110, 130 110, 170 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 179</desc>
+ <a>
+ LINESTRING (80 110, 130 110, 180 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 180</desc>
+ <a>
+ LINESTRING (160 70, 320 230)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 181</desc>
+ <a>
+ LINESTRING (160 70, 200 110, 280 190, 320 230)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 182</desc>
+ <a>
+ LINESTRING (70 50, 70 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 183</desc>
+ <a>
+ MULTIPOLYGON (((0 0, 0 100, 140 100, 140 0, 0 0)), ((20 170, 70 100, 130 170, 20 170)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 184</desc>
+ <a>
+ LINESTRING (110 110, 20 200, 200 200, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 185</desc>
+ <a>
+ POLYGON ((20 20, 200 20, 110 110, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 186</desc>
+ <a>
+ LINESTRING (150 70, 160 110, 200 60, 150 70)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 187</desc>
+ <a>
+ LINESTRING (80 60, 120 40, 120 70, 80 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 188</desc>
+ <a>
+ POLYGON ((110 110, 200 20, 20 20, 110 110), (110 90, 50 30, 170 30, 110 90))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 189</desc>
+ <a>
+ LINESTRING (20 20, 200 20, 110 110, 20 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 190</desc>
+ <a>
+ LINESTRING (110 90, 170 30, 50 30, 110 90)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 191</desc>
+ <a>
+ LINESTRING (110 110, 170 50, 170 110, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 192</desc>
+ <a>
+ LINESTRING (110 90, 70 50, 130 50, 110 90)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 193</desc>
+ <a>
+ LINESTRING (110 60, 20 150, 200 150, 110 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 194</desc>
+ <a>
+ LINESTRING (110 130, 110 70, 200 100, 110 130)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 195</desc>
+ <a>
+ LINESTRING (110 90, 160 40, 60 40, 110 90)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 196</desc>
+ <a>
+ LINESTRING (110 100, 40 30, 180 30, 110 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 197</desc>
+ <a>
+ POLYGON ((110 110, 200 20, 20 20, 110 110), (110 90, 60 40, 160 40, 110 90))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 198</desc>
+ <a>
+ LINESTRING (110 110, 180 30, 40 30, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 199</desc>
+ <a>
+ LINESTRING (110 90, 180 30, 40 30, 110 90)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 200</desc>
+ <a>
+ LINESTRING (110 90, 50 30, 180 30, 110 90)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 201</desc>
+ <a>
+ LINESTRING (110 110, 200 200, 200 110, 110 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 202</desc>
+ <a>
+ POLYGON ((110 110, 200 20, 20 20, 110 110))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 203</desc>
+ <a>
+ LINESTRING (110 110, 200 200, 110 110, 20 200, 20 110, 200 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 204</desc>
+ <a>
+ LINESTRING (110 110, 20 110, 200 110, 50 110, 110 170)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 205</desc>
+ <a>
+ LINESTRING (110 110, 20 200, 110 200, 110 110, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 206</desc>
+ <a>
+ LINESTRING (110 110, 170 50, 20 200, 20 110, 200 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 207</desc>
+ <a>
+ LINESTRING (110 110, 180 40, 110 40, 110 180)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 208</desc>
+ <a>
+ LINESTRING (110 60, 50 30, 170 30, 90 70)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 209</desc>
+ <a>
+ LINESTRING (110 110, 180 40, 110 40, 110 110, 70 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 210</desc>
+ <a>
+ LINESTRING (230 70, 170 120, 190 60, 140 60, 170 120, 270 90)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 211</desc>
+ <a>
+ MULTILINESTRING ((20 110, 200 110), (200 200, 110 110, 20 210, 110 110))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 212</desc>
+ <a>
+ MULTILINESTRING ((20 110, 200 110), (60 180, 60 110, 160 110, 110 110))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 213</desc>
+ <a>
+ MULTILINESTRING ((20 110, 200 110), (200 200, 110 110, 20 200, 110 200, 110 110))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 214</desc>
+ <a>
+ MULTILINESTRING ((20 110, 200 110), (110 50, 110 170, 110 70, 110 150, 200 150))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 215</desc>
+ <a>
+ MULTILINESTRING ((20 110, 200 110), (50 110, 170 110, 110 170, 110 50, 110 170, 110 50))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 216</desc>
+ <a>
+ MULTILINESTRING ((20 110, 200 110), (110 60, 110 160, 200 160))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 217</desc>
+ <a>
+ MULTILINESTRING ((110 100, 40 30, 180 30), (170 30, 110 90, 50 30))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 218</desc>
+ <a>
+ MULTILINESTRING ((110 110, 60 40, 70 20, 150 20, 170 40), (180 30, 40 30, 110 80))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 219</desc>
+ <a>
+ MULTILINESTRING ((20 110, 200 110, 200 160), (110 110, 200 110, 200 70, 20 150))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 220</desc>
+ <a>
+ MULTIPOLYGON (((110 110, 20 20, 200 20, 110 110)), ((110 110, 20 200, 200 200, 110 110)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 221</desc>
+ <a>
+ MULTILINESTRING ((20 160, 70 110, 150 110, 200 160), (110 110, 20 110, 50 80, 70 110, 200 110))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 222</desc>
+ <a>
+ MULTILINESTRING ((20 110, 200 110), (110 110, 20 170, 20 130, 200 90))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 223</desc>
+ <a>
+ LINESTRING (0 0, 0 50, 50 50, 50 0, 0 0)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 224</desc>
+ <a>
+ MULTILINESTRING ((0 0, 0 50), (0 50, 50 50), (50 50, 50 0), (50 0, 0 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 225</desc>
+ <a>
+ LINESTRING (40 180, 140 180)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 226</desc>
+ <a>
+ MULTIPOLYGON (((20 320, 180 320, 180 180, 20 180, 20 320)), ((20 180, 20 80, 180 80, 180 180, 20 180)))
+ </a>
+ <test> <op name="isValid" arg1="A"> false </op> </test>
+</case>
+<case>
+ <desc>Test 227</desc>
+ <a>
+ MULTIPOLYGON (((20 320, 180 320, 180 180, 20 180, 20 320)), ((60 180, 60 80, 180 80, 180 180, 60 180)))
+ </a>
+ <test> <op name="isValid" arg1="A"> false </op> </test>
+</case>
+<case>
+ <desc>Test 228</desc>
+ <a>
+ LINESTRING (0 0, 60 0, 60 60, 60 0, 120 0)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 229</desc>
+ <a>
+ MULTILINESTRING ((0 0, 60 0), (60 0, 120 0), (60 0, 60 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 230</desc>
+ <a>
+ LINESTRING (40 40, 120 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 231</desc>
+ <a>
+ LINESTRING (40 40, 60 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 232</desc>
+ <a>
+ LINESTRING (60 240, 40 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 233</desc>
+ <a>
+ LINESTRING (40 40, 180 180)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 234</desc>
+ <a>
+ LINESTRING (120 120, 20 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 235</desc>
+ <a>
+ LINESTRING (60 240, 120 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 236</desc>
+ <a>
+ LINESTRING (20 180, 140 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 237</desc>
+ <a>
+ LINESTRING (40 120, 120 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 238</desc>
+ <a>
+ LINESTRING (40 40, 100 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 239</desc>
+ <a>
+ LINESTRING (100 100, 40 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 240</desc>
+ <a>
+ LINESTRING (40 120, 120 160)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 241</desc>
+ <a>
+ LINESTRING (20 20, 180 180)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 242</desc>
+ <a>
+ LINESTRING (20 20, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 243</desc>
+ <a>
+ LINESTRING (50 50, 140 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 244</desc>
+ <a>
+ LINESTRING (180 180, 40 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 245</desc>
+ <a>
+ LINESTRING (120 120, 260 260)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 246</desc>
+ <a>
+ LINESTRING (260 260, 120 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 247</desc>
+ <a>
+ LINESTRING (40 40, 100 100, 200 120, 80 240)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 248</desc>
+ <a>
+ LINESTRING (40 40, 20 100, 40 160, 20 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 249</desc>
+ <a>
+ LINESTRING (20 200, 40 160, 20 100, 40 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 250</desc>
+ <a>
+ LINESTRING (80 240, 200 120, 100 100, 40 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 251</desc>
+ <a>
+ LINESTRING (60 60, 60 230, 140 230, 250 160)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 252</desc>
+ <a>
+ LINESTRING (20 20, 60 60, 250 160, 310 230)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 253</desc>
+ <a>
+ LINESTRING (20 20, 110 110, 200 110, 320 230)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 254</desc>
+ <a>
+ LINESTRING (60 110, 60 250, 360 210)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 255</desc>
+ <a>
+ LINESTRING (60 110, 110 160, 250 160, 310 160, 360 210)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 256</desc>
+ <a>
+ LINESTRING (360 210, 310 160, 110 160, 60 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 257</desc>
+ <a>
+ LINESTRING (160 160, 240 240)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 258</desc>
+ <a>
+ LINESTRING (240 240, 160 160)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 259</desc>
+ <a>
+ LINESTRING (60 150, 110 100, 170 100, 110 230)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 260</desc>
+ <a>
+ LINESTRING (200 120, 200 190, 150 240, 200 240)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 261</desc>
+ <a>
+ LINESTRING (200 240, 150 240, 200 200, 200 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 262</desc>
+ <a>
+ LINESTRING (60 230, 80 140, 120 140, 140 230)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 263</desc>
+ <a>
+ LINESTRING (60 110, 200 110, 250 160, 300 210)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 264</desc>
+ <a>
+ LINESTRING (60 110, 200 110, 250 160, 300 210, 360 210)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 265</desc>
+ <a>
+ LINESTRING (60 110, 220 110, 250 160, 280 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 266</desc>
+ <a>
+ LINESTRING (60 110, 150 110, 200 160, 250 110, 360 110, 360 210)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 267</desc>
+ <a>
+ LINESTRING (130 160, 160 110, 220 110, 250 160, 250 210)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 268</desc>
+ <a>
+ LINESTRING (130 160, 160 110, 190 110, 230 210)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 269</desc>
+ <a>
+ LINESTRING (130 160, 160 110, 200 110, 230 160, 260 210, 360 210)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 270</desc>
+ <a>
+ LINESTRING (130 160, 160 110, 200 110, 230 160, 260 210, 360 210, 380 210)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 271</desc>
+ <a>
+ LINESTRING (130 160, 160 110, 200 110, 230 160, 260 210, 380 210)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 272</desc>
+ <a>
+ LINESTRING (110 160, 160 110, 200 110, 250 160, 250 210)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 273</desc>
+ <a>
+ LINESTRING (110 160, 180 110, 250 160, 320 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 274</desc>
+ <a>
+ LINESTRING (140 160, 180 80, 220 160, 250 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 275</desc>
+ <a>
+ LINESTRING (40 40, 100 100, 200 120, 130 190)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 276</desc>
+ <a>
+ LINESTRING (20 130, 70 130, 160 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 277</desc>
+ <a>
+ LINESTRING (40 160, 40 100, 110 40, 170 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 278</desc>
+ <a>
+ LINESTRING (130 110, 180 160, 230 110, 280 160, 330 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 279</desc>
+ <a>
+ LINESTRING (30 140, 80 140, 100 100, 200 30)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 280</desc>
+ <a>
+ LINESTRING (110 110, 110 160, 180 110, 250 160, 250 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 281</desc>
+ <a>
+ LINESTRING (20 20, 80 80, 160 80, 240 80, 300 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 282</desc>
+ <a>
+ LINESTRING (20 60, 60 60, 60 140, 80 80, 100 20, 140 140, 180 20, 200 80, 220 20, 240 80, 300 80, 270 110, 200 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 283</desc>
+ <a>
+ LINESTRING (20 20, 230 20, 20 30, 170 30, 20 40, 230 40, 20 50, 230 60, 60 60, 230 70, 20 70, 180 80, 60 80, 230 90, 20 90, 230 100, 30 100, 210 110, 20 110, 80 120, 20 130, 170 130, 90 120, 230 130, 170 140, 230 140, 80 150, 160 140, 20 140, 70 150, 20 150, 230 160, 80 160, 230 170, 20 160, 180 170, 20 170, 230 180, 20 180, 40 190, 230 190, 20 200, 230 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 284</desc>
+ <a>
+ LINESTRING (30 210, 30 60, 40 210, 40 30, 50 190, 50 20, 60 160, 60 50, 70 220, 70 50, 80 20, 80 210, 90 50, 90 150, 100 30, 100 210, 110 20, 110 190, 120 50, 120 180, 130 210, 120 20, 140 210, 130 50, 150 210, 130 20, 160 210, 140 30, 170 210, 150 20, 180 210, 160 20, 190 210, 180 80, 170 50, 170 20, 180 70, 180 20, 190 190, 190 30, 200 210, 200 30, 210 210, 210 20, 220 150, 220 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 285</desc>
+ <a>
+ LINESTRING (80 240, 120 200, 200 120, 100 100, 80 80, 40 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 286</desc>
+ <a>
+ LINESTRING (260 210, 240 130, 280 120, 260 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 287</desc>
+ <a>
+ LINESTRING (100 20, 20 20, 20 160, 210 160, 210 20, 110 20, 50 120, 120 150, 200 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 288</desc>
+ <a>
+ LINESTRING (140 130, 100 110, 120 60, 170 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 289</desc>
+ <a>
+ LINESTRING (60 110, 110 160, 310 160, 360 210)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 290</desc>
+ <a>
+ LINESTRING (60 110, 110 160, 250 160)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 291</desc>
+ <a>
+ LINESTRING (110 160, 310 160, 340 190)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 292</desc>
+ <a>
+ LINESTRING (140 160, 250 160, 310 160, 340 190)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 293</desc>
+ <a>
+ LINESTRING (110 160, 250 160, 310 160)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 294</desc>
+ <a>
+ LINESTRING (200 120, 100 100, 40 40, 140 80, 200 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 295</desc>
+ <a>
+ LINESTRING (280 240, 240 140, 200 120, 100 100, 40 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 296</desc>
+ <a>
+ LINESTRING (80 190, 140 140, 40 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 297</desc>
+ <a>
+ LINESTRING (240 200, 200 260, 80 240, 140 180)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 298</desc>
+ <a>
+ LINESTRING (140 180, 80 240, 200 260, 240 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 299</desc>
+ <a>
+ LINESTRING (280 240, 240 140, 200 120, 80 240)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 300</desc>
+ <a>
+ LINESTRING (20 80, 120 80, 200 80, 260 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 301</desc>
+ <a>
+ LINESTRING (100 100, 200 120, 240 140, 280 240)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 302</desc>
+ <a>
+ LINESTRING (280 240, 240 140, 200 120, 100 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 303</desc>
+ <a>
+ LINESTRING (80 20, 80 80, 240 80, 300 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 304</desc>
+ <a>
+ LINESTRING (20 80, 80 80, 120 80, 140 140, 160 80, 200 80, 220 20, 240 80, 270 110, 300 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 305</desc>
+ <a>
+ LINESTRING (100 100, 20 180, 180 180)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 306</desc>
+ <a>
+ LINESTRING (100 100, 180 20, 20 20, 100 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 307</desc>
+ <a>
+ LINESTRING (20 100, 180 100, 100 180)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 308</desc>
+ <a>
+ LINESTRING (100 40, 100 160, 180 160)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 309</desc>
+ <a>
+ LINESTRING (20 100, 100 100, 180 100, 100 180)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 310</desc>
+ <a>
+ LINESTRING (100 100, 160 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 311</desc>
+ <a>
+ LINESTRING (100 100, 180 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 312</desc>
+ <a>
+ LINESTRING (60 60, 100 100, 140 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 313</desc>
+ <a>
+ LINESTRING (100 100, 190 10, 190 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 314</desc>
+ <a>
+ LINESTRING (100 100, 160 40, 160 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 315</desc>
+ <a>
+ LINESTRING (60 140, 160 40, 160 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 316</desc>
+ <a>
+ LINESTRING (20 20, 140 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 317</desc>
+ <a>
+ LINESTRING (80 80, 20 80, 140 80, 80 20, 80 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 318</desc>
+ <a>
+ LINESTRING (80 80, 20 80, 140 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 319</desc>
+ <a>
+ LINESTRING (80 80, 140 80, 80 20, 80 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 320</desc>
+ <a>
+ LINESTRING (80 80, 20 80, 140 80, 80 20, 80 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 321</desc>
+ <a>
+ LINESTRING (80 80, 20 80, 140 80, 80 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 322</desc>
+ <a>
+ LINESTRING (80 80, 20 80, 20 140, 140 20, 80 20, 80 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 323</desc>
+ <a>
+ LINESTRING (20 140, 140 20, 100 20, 100 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 324</desc>
+ <a>
+ LINESTRING (140 80, 20 80, 120 80, 80 20, 80 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 325</desc>
+ <a>
+ LINESTRING (140 80, 20 80, 140 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 326</desc>
+ <a>
+ LINESTRING (140 80, 20 80, 80 140, 80 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 327</desc>
+ <a>
+ LINESTRING (140 80, 80 80, 20 80, 50 140, 50 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 328</desc>
+ <a>
+ LINESTRING (140 80, 20 80, 120 80, 80 20, 80 80, 80 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 329</desc>
+ <a>
+ LINESTRING (140 80, 20 80, 80 80, 140 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 330</desc>
+ <a>
+ LINESTRING (140 80, 20 80, 80 140, 80 80, 80 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 331</desc>
+ <a>
+ LINESTRING (130 150, 220 150, 220 240)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 332</desc>
+ <a>
+ LINESTRING (130 240, 130 150, 220 20, 50 20, 130 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 333</desc>
+ <a>
+ LINESTRING (30 150, 130 150, 250 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 334</desc>
+ <a>
+ LINESTRING (30 150, 250 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 335</desc>
+ <a>
+ LINESTRING (130 240, 130 20, 30 20, 130 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 336</desc>
+ <a>
+ LINESTRING (120 240, 120 20, 20 20, 120 170)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 337</desc>
+ <a>
+ LINESTRING (200 200, 20 20, 200 20, 110 110, 20 200, 110 200, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 338</desc>
+ <a>
+ LINESTRING (110 110, 200 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 339</desc>
+ <a>
+ LINESTRING (20 110, 200 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 340</desc>
+ <a>
+ LINESTRING (90 200, 90 130, 110 110, 150 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 341</desc>
+ <a>
+ LINESTRING (200 200, 20 20, 200 20, 20 200, 20 130, 90 130)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 342</desc>
+ <a>
+ LINESTRING (200 110, 110 110, 90 130, 90 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 343</desc>
+ <a>
+ LINESTRING (80 80, 150 80, 210 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 344</desc>
+ <a>
+ MULTILINESTRING ((20 20, 140 140), (20 140, 140 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 345</desc>
+ <a>
+ LINESTRING (40 80, 160 200, 260 20, 40 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 346</desc>
+ <a>
+ LINESTRING (40 80, 260 20, 160 200, 40 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 347</desc>
+ <a>
+ LINESTRING (260 20, 40 80, 160 200, 260 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 348</desc>
+ <a>
+ LINESTRING (100 140, 160 200, 260 20, 40 80, 100 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 349</desc>
+ <a>
+ LINESTRING (100 100, 180 180, 20 180, 100 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 350</desc>
+ <a>
+ LINESTRING (40 150, 40 40, 150 40, 150 150, 40 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 351</desc>
+ <a>
+ LINESTRING (40 150, 150 40, 170 20, 170 190, 40 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 352</desc>
+ <a>
+ LINESTRING (180 100, 20 100, 100 180, 180 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 353</desc>
+ <a>
+ LINESTRING (180 180, 100 100, 20 180, 180 180)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 354</desc>
+ <a>
+ LINESTRING (20 180, 100 100, 20 20, 20 180)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 355</desc>
+ <a>
+ LINESTRING (100 20, 100 180, 180 100, 100 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 356</desc>
+ <a>
+ LINESTRING (170 20, 20 170, 170 170, 170 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 357</desc>
+ <a>
+ LINESTRING (40 150, 150 150, 90 210, 40 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 358</desc>
+ <a>
+ LINESTRING (20 150, 170 150, 90 230, 20 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 359</desc>
+ <a>
+ LINESTRING (40 150, 150 150, 150 40, 20 40, 20 150, 40 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 360</desc>
+ <a>
+ LINESTRING (110 110, 200 20, 20 20, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 361</desc>
+ <a>
+ LINESTRING (200 20, 20 200, 200 200, 110 110, 110 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 362</desc>
+ <a>
+ LINESTRING (200 20, 20 200, 200 200, 20 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 363</desc>
+ <a>
+ LINESTRING (110 110, 20 110, 110 20, 20 20, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 364</desc>
+ <a>
+ LINESTRING (110 110, 200 200, 110 200, 200 110, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 365</desc>
+ <a>
+ LINESTRING (20 120, 120 120, 20 20, 120 20, 20 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 366</desc>
+ <a>
+ LINESTRING (170 100, 70 100, 170 170, 70 170, 170 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 367</desc>
+ <a>
+ LINESTRING (20 110, 110 110, 20 20, 110 20, 20 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 368</desc>
+ <a>
+ LINESTRING (110 160, 70 110, 60 160, 20 130, 110 160)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 369</desc>
+ <a>
+ LINESTRING (20 200, 200 200, 20 20, 200 20, 20 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 370</desc>
+ <a>
+ LINESTRING (20 110, 200 110, 200 160, 20 60, 20 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 371</desc>
+ <a>
+ LINESTRING (200 200, 110 110, 200 110, 110 200, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 372</desc>
+ <a>
+ LINESTRING (220 120, 120 20, 220 20, 120 120, 220 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 373</desc>
+ <a>
+ MULTILINESTRING ((70 20, 20 90, 70 170), (70 170, 120 90, 70 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 374</desc>
+ <a>
+ MULTILINESTRING ((20 20, 90 20, 170 20), (90 20, 90 80, 90 140))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 375</desc>
+ <a>
+ MULTILINESTRING ((90 140, 90 60, 90 20), (170 20, 130 20, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 376</desc>
+ <a>
+ MULTILINESTRING ((90 20, 170 100, 170 140), (170 60, 90 20, 20 60), (130 100, 130 60, 90 20, 50 90))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 377</desc>
+ <a>
+ MULTILINESTRING ((90 20, 170 100, 170 140), (130 140, 130 60, 90 20, 20 90, 90 20, 130 60, 170 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 378</desc>
+ <a>
+ MULTILINESTRING ((90 20, 170 100, 170 140), (170 60, 90 20, 20 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 379</desc>
+ <a>
+ MULTILINESTRING ((90 20, 170 100, 170 140), (170 60, 90 20, 20 60), (130 100, 90 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 380</desc>
+ <a>
+ MULTILINESTRING ((90 20, 170 100, 170 140), (170 60, 90 20, 20 60), (120 100, 170 100, 90 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 381</desc>
+ <a>
+ MULTILINESTRING ((90 20, 170 100, 170 140), (130 140, 130 60, 90 20, 20 90, 90 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 382</desc>
+ <a>
+ MULTILINESTRING ((90 20, 170 100, 170 140), (170 60, 90 20, 20 60, 20 140, 90 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 383</desc>
+ <a>
+ MULTILINESTRING ((20 20, 90 90, 20 160), (90 160, 90 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 384</desc>
+ <a>
+ MULTILINESTRING ((160 160, 90 90, 160 20), (160 120, 120 120, 90 90, 160 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 385</desc>
+ <a>
+ MULTILINESTRING ((160 160, 90 90, 160 20), (160 120, 120 120, 90 90, 120 60, 160 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 386</desc>
+ <a>
+ MULTILINESTRING ((160 160, 90 90, 160 20), (160 120, 90 90, 160 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 387</desc>
+ <a>
+ POINT (20 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 388</desc>
+ <a>
+ POLYGON ((60 120, 60 40, 160 40, 160 120, 60 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 389</desc>
+ <a>
+ POINT (70 170)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 390</desc>
+ <a>
+ POLYGON ((110 230, 80 160, 20 160, 20 20, 200 20, 200 160, 140 160, 110 230))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 391</desc>
+ <a>
+ POINT (110 130)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 392</desc>
+ <a>
+ POLYGON ((20 160, 80 160, 110 100, 140 160, 200 160, 200 20, 20 20, 20 160))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 393</desc>
+ <a>
+ POINT (100 70)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 394</desc>
+ <a>
+ POLYGON ((20 150, 100 150, 40 50, 170 50, 110 150, 190 150, 190 20, 20 20, 20 150))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 395</desc>
+ <a>
+ POLYGON ((20 150, 100 150, 40 50, 160 50, 100 150, 180 150, 180 20, 20 20, 20 150))
+ </a>
+ <test> <op name="isValid" arg1="A"> false </op> </test>
+</case>
+<case>
+ <desc>Test 396</desc>
+ <a>
+ POINT (60 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 397</desc>
+ <a>
+ POINT (110 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 398</desc>
+ <a>
+ POINT (160 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 399</desc>
+ <a>
+ POINT (100 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 400</desc>
+ <a>
+ POINT (100 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 401</desc>
+ <a>
+ POINT (60 160)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 402</desc>
+ <a>
+ POLYGON ((190 190, 360 20, 20 20, 190 190), (280 50, 100 50, 190 140, 280 50))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 403</desc>
+ <a>
+ POINT (190 90)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 404</desc>
+ <a>
+ POINT (190 190)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 405</desc>
+ <a>
+ POINT (360 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 406</desc>
+ <a>
+ POINT (130 130)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 407</desc>
+ <a>
+ POINT (280 50)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 408</desc>
+ <a>
+ POINT (150 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 409</desc>
+ <a>
+ POINT (100 50)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 410</desc>
+ <a>
+ POINT (140 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 411</desc>
+ <a>
+ POINT (190 50)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 412</desc>
+ <a>
+ POLYGON ((190 190, 360 20, 20 20, 190 190), (90 50, 150 110, 190 50, 90 50), (190 50, 230 110, 290 50, 190 50))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 413</desc>
+ <a>
+ POINT (180 90)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 414</desc>
+ <a>
+ POLYGON ((190 190, 360 20, 20 20, 190 190), (180 140, 180 40, 80 40, 180 140), (180 90, 210 140, 310 40, 230 40, 180 90))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 415</desc>
+ <a>
+ MULTIPOINT (20 80, 110 160, 20 160)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 416</desc>
+ <a>
+ MULTIPOINT (20 80, 60 120, 20 160)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 417</desc>
+ <a>
+ MULTIPOINT (10 80, 110 170, 110 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 418</desc>
+ <a>
+ MULTIPOINT (10 80, 110 170, 160 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 419</desc>
+ <a>
+ MULTIPOINT (20 120, 60 120, 110 120, 160 120, 200 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 420</desc>
+ <a>
+ MULTIPOINT (60 120, 110 120, 160 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 421</desc>
+ <a>
+ MULTIPOINT (60 120, 160 120, 160 40, 60 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 422</desc>
+ <a>
+ MULTIPOINT (20 150, 60 120, 110 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 423</desc>
+ <a>
+ MULTIPOINT (110 80, 160 120, 200 160)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 424</desc>
+ <a>
+ MULTIPOINT (110 80, 110 120, 110 160)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 425</desc>
+ <a>
+ MULTIPOINT (110 170, 110 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 426</desc>
+ <a>
+ MULTIPOINT (60 120, 160 120, 110 80, 110 170)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 427</desc>
+ <a>
+ MULTIPOINT (90 80, 130 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 428</desc>
+ <a>
+ MULTIPOINT (60 120, 160 120, 110 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 429</desc>
+ <a>
+ MULTIPOINT (40 170, 40 90, 130 170)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 430</desc>
+ <a>
+ MULTIPOINT (90 170, 280 170, 190 90)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 431</desc>
+ <a>
+ MULTIPOINT (190 110, 150 70, 230 70)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 432</desc>
+ <a>
+ POINT (100 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 433</desc>
+ <a>
+ MULTIPOLYGON (((20 100, 20 20, 100 20, 100 100, 20 100)), ((100 180, 100 100, 180 100, 180 180, 100 180)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 434</desc>
+ <a>
+ POINT (20 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 435</desc>
+ <a>
+ POINT (60 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 436</desc>
+ <a>
+ POINT (110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 437</desc>
+ <a>
+ MULTIPOLYGON (((110 110, 20 200, 200 200, 110 110), (110 110, 80 180, 140 180, 110 110)), ((110 110, 20 20, 200 20, 110 110), (110 110, 80 40, 140 40, 110 110)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 438</desc>
+ <a>
+ POINT (110 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 439</desc>
+ <a>
+ LINESTRING (90 80, 160 150, 300 150, 340 150, 340 240)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 440</desc>
+ <a>
+ POINT (90 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 441</desc>
+ <a>
+ POINT (340 240)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 442</desc>
+ <a>
+ POINT (230 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 443</desc>
+ <a>
+ POINT (160 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 444</desc>
+ <a>
+ POINT (90 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 445</desc>
+ <a>
+ LINESTRING (150 150, 20 20, 280 20, 150 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 446</desc>
+ <a>
+ POINT (150 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 447</desc>
+ <a>
+ POINT (150 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 448</desc>
+ <a>
+ POINT (100 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 449</desc>
+ <a>
+ POINT (220 220)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 450</desc>
+ <a>
+ LINESTRING (110 110, 220 20, 20 20, 110 110, 220 220)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 451</desc>
+ <a>
+ LINESTRING (110 110, 220 20, 20 20, 220 220)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 452</desc>
+ <a>
+ POINT (110 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 453</desc>
+ <a>
+ POINT (220 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 454</desc>
+ <a>
+ LINESTRING (220 220, 20 20, 220 20, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 455</desc>
+ <a>
+ POINT (20 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 456</desc>
+ <a>
+ LINESTRING (20 200, 20 20, 110 20, 20 110, 110 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 457</desc>
+ <a>
+ POINT (20 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 458</desc>
+ <a>
+ LINESTRING (20 200, 200 20, 20 20, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 459</desc>
+ <a>
+ LINESTRING (20 200, 200 20, 140 20, 140 80, 80 140, 20 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 460</desc>
+ <a>
+ POINT (80 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 461</desc>
+ <a>
+ LINESTRING (20 200, 110 110, 200 20, 140 20, 140 80, 110 110, 80 140, 20 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 462</desc>
+ <a>
+ LINESTRING (20 200, 200 20, 140 20, 140 80, 110 110, 80 140, 20 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 463</desc>
+ <a>
+ LINESTRING (20 200, 110 110, 200 20, 20 20, 110 110, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 464</desc>
+ <a>
+ LINESTRING (20 200, 200 20, 20 20, 110 110, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 465</desc>
+ <a>
+ LINESTRING (20 200, 110 110, 20 20, 200 20, 110 110, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 466</desc>
+ <a>
+ LINESTRING (110 110, 110 200, 20 200, 110 110, 200 20, 140 20, 140 80, 110 110, 80 140, 20 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 467</desc>
+ <a>
+ LINESTRING (110 110, 110 200, 20 200, 200 20, 140 20, 140 80, 110 110, 80 140, 20 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 468</desc>
+ <a>
+ LINESTRING (110 110, 110 200, 20 200, 200 20, 140 20, 140 80, 80 140, 20 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 469</desc>
+ <a>
+ LINESTRING (110 110, 110 200, 20 200, 110 110, 200 20, 20 20, 110 110, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 470</desc>
+ <a>
+ LINESTRING (110 110, 110 200, 20 200, 200 20, 20 20, 110 110, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 471</desc>
+ <a>
+ LINESTRING (110 110, 110 200, 20 200, 200 20, 20 20, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 472</desc>
+ <a>
+ LINESTRING (110 110, 110 200, 20 200, 110 110, 20 20, 200 20, 110 110, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 473</desc>
+ <a>
+ LINESTRING (110 110, 110 200, 20 200, 200 20, 200 110, 110 110, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 474</desc>
+ <a>
+ LINESTRING (200 200, 110 110, 20 20, 200 20, 110 110, 20 200, 110 200, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 475</desc>
+ <a>
+ LINESTRING (200 200, 20 20, 200 20, 20 200, 110 200, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 476</desc>
+ <a>
+ LINESTRING (200 200, 110 110, 200 20, 20 20, 110 110, 20 200, 110 200, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 477</desc>
+ <a>
+ LINESTRING (200 200, 20 20, 20 110, 110 110, 20 200, 110 200, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 478</desc>
+ <a>
+ POINT (110 160)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 479</desc>
+ <a>
+ LINESTRING (110 160, 200 250, 110 250, 110 160, 110 110, 110 20, 20 20, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 480</desc>
+ <a>
+ LINESTRING (110 160, 200 250, 110 250, 110 110, 110 20, 20 20, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 481</desc>
+ <a>
+ LINESTRING (110 160, 200 250, 110 250, 110 160, 110 20, 20 20, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 482</desc>
+ <a>
+ LINESTRING (110 110, 200 200, 110 200, 110 110, 110 20, 20 20, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 483</desc>
+ <a>
+ LINESTRING (110 110, 200 200, 110 200, 110 20, 20 20, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 484</desc>
+ <a>
+ POINT (140 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 485</desc>
+ <a>
+ LINESTRING (110 110, 200 200, 110 200, 110 110, 110 20, 200 20, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 486</desc>
+ <a>
+ POINT (90 130)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 487</desc>
+ <a>
+ LINESTRING (90 130, 20 130, 20 200, 90 130, 200 20, 20 20, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 488</desc>
+ <a>
+ LINESTRING (90 130, 20 130, 20 200, 200 20, 20 20, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 489</desc>
+ <a>
+ LINESTRING (200 200, 20 20, 200 20, 90 130, 20 200, 20 130, 90 130)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 490</desc>
+ <a>
+ LINESTRING (110 110, 20 130, 20 200, 110 110, 200 20, 20 20, 110 110, 200 200, 200 130, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 491</desc>
+ <a>
+ LINESTRING (110 110, 20 130, 20 200, 200 20, 20 20, 200 200, 200 130, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 492</desc>
+ <a>
+ LINESTRING (110 110, 80 200, 20 200, 110 110, 200 20, 20 20, 110 110, 200 200, 140 200, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 493</desc>
+ <a>
+ LINESTRING (110 110, 80 200, 20 200, 200 20, 20 20, 200 200, 140 200, 110 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 494</desc>
+ <a>
+ LINESTRING (200 200, 20 20, 200 20, 20 200, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 495</desc>
+ <a>
+ LINESTRING (200 200, 110 110, 20 20, 200 20, 110 110, 20 200, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 496</desc>
+ <a>
+ LINESTRING (200 200, 110 110, 200 20, 20 20, 110 110, 20 200, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 497</desc>
+ <a>
+ LINESTRING (90 130, 20 130, 20 200, 90 130, 110 110, 200 20, 20 20, 110 110, 200 200, 90 130)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 498</desc>
+ <a>
+ LINESTRING (90 130, 20 130, 20 200, 110 110, 200 20, 20 20, 110 110, 200 200, 90 130)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 499</desc>
+ <a>
+ LINESTRING (90 130, 90 200, 20 200, 90 130, 110 110, 200 20, 20 20, 110 110, 200 200, 90 130)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 500</desc>
+ <a>
+ LINESTRING (90 130, 90 200, 20 200, 200 20, 20 20, 200 200, 90 130)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 501</desc>
+ <a>
+ LINESTRING (90 130, 90 200, 20 200, 110 110, 200 20, 20 20, 110 110, 200 200, 90 130)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 502</desc>
+ <a>
+ LINESTRING (110 200, 110 110, 20 20, 200 20, 110 110, 110 200, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 503</desc>
+ <a>
+ POINT (110 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 504</desc>
+ <a>
+ LINESTRING (110 200, 110 110, 20 20, 200 20, 110 110, 110 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 505</desc>
+ <a>
+ LINESTRING (20 200, 110 200, 110 110, 20 20, 200 20, 110 110, 110 200, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 506</desc>
+ <a>
+ MULTIPOINT (50 250, 90 220, 130 190)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 507</desc>
+ <a>
+ MULTIPOINT (180 180, 230 130, 280 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 508</desc>
+ <a>
+ MULTIPOINT (50 120, 90 80, 130 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 509</desc>
+ <a>
+ MULTIPOINT (300 280, 340 240, 380 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 510</desc>
+ <a>
+ MULTIPOINT (230 150, 260 120, 290 90)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 511</desc>
+ <a>
+ MULTIPOINT (200 190, 240 150, 270 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 512</desc>
+ <a>
+ MULTIPOINT (160 150, 190 120, 220 90)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 513</desc>
+ <a>
+ MULTIPOINT (120 190, 160 150, 200 110)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 514</desc>
+ <a>
+ MULTIPOINT (90 80, 160 150, 340 240)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 515</desc>
+ <a>
+ MULTIPOINT (90 80, 160 150, 300 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 516</desc>
+ <a>
+ MULTIPOINT (90 80, 160 150, 240 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 517</desc>
+ <a>
+ MULTIPOINT (90 80, 130 120, 210 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 518</desc>
+ <a>
+ MULTIPOINT (130 120, 210 150, 340 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 519</desc>
+ <a>
+ MULTIPOINT (160 150, 240 150, 340 210)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 520</desc>
+ <a>
+ MULTIPOINT (160 150, 300 150, 340 150)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 521</desc>
+ <a>
+ MULTIPOINT (160 150, 240 150, 340 240)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 522</desc>
+ <a>
+ POINT (40 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 523</desc>
+ <a>
+ POINT (40 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 524</desc>
+ <a>
+ MULTIPOINT (20 20, 80 80, 20 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 525</desc>
+ <a>
+ MULTIPOINT (40 40, 80 60, 120 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 526</desc>
+ <a>
+ MULTIPOINT (40 40, 120 100, 80 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 527</desc>
+ <a>
+ MULTIPOINT (40 40, 60 100, 100 60, 120 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 528</desc>
+ <a>
+ MULTIPOINT (20 120, 60 60, 100 100, 140 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 529</desc>
+ <a>
+ MULTIPOINT (20 20, 80 70, 140 120, 200 170)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 530</desc>
+ <a>
+ MULTIPOINT (20 20, 140 120, 80 70, 200 170)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 531</desc>
+ <a>
+ MULTIPOINT (80 70, 20 20, 200 170, 140 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 532</desc>
+ <a>
+ MULTIPOINT (80 70, 140 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 533</desc>
+ <a>
+ MULTIPOINT (140 120, 80 70)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 534</desc>
+ <a>
+ MULTIPOINT (80 170, 140 120, 200 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 535</desc>
+ <a>
+ MULTIPOINT (80 170, 140 120, 200 80, 80 70)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 536</desc>
+ <a>
+ POINT (10 10)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 537</desc>
+ <a>
+ MULTIPOINT (10 10, 20 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 538</desc>
+ <a>
+ LINESTRING (10 10, 20 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 539</desc>
+ <a>
+ LINESTRING (10 10, 20 20, 20 10, 10 10)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 540</desc>
+ <a>
+ LINESTRING (40 40, 100 100, 180 100, 180 180, 100 180, 100 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 541</desc>
+ <a>
+ MULTILINESTRING ((10 10, 20 20), (20 20, 30 30))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 542</desc>
+ <a>
+ MULTILINESTRING ((10 10, 20 20), (20 20, 30 20), (20 20, 30 30))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 543</desc>
+ <a>
+ MULTILINESTRING ((10 10, 20 20), (20 20, 30 20), (20 20, 30 30), (20 20, 30 40))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 544</desc>
+ <a>
+ MULTILINESTRING ((10 10, 20 20), (20 20, 20 30, 30 30, 30 20, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 545</desc>
+ <a>
+ MULTILINESTRING ((10 10, 20 20, 20 30, 30 30, 30 20, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 546</desc>
+ <a>
+ POLYGON ((40 60, 420 60, 420 320, 40 320, 40 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 547</desc>
+ <a>
+ POLYGON ((40 60, 420 60, 420 320, 40 320, 40 60), (200 140, 160 220, 260 200, 200 140))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 548</desc>
+ <a>
+ MULTIPOINT (130 240, 130 240, 130 240, 570 240, 570 240, 570 240, 650 240)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 549</desc>
+ <a>
+ POLYGON ((10 10, 100 10, 100 100, 10 100, 10 10))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 550</desc>
+ <a>
+ LINESTRING (30 220, 240 220, 240 220)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 551</desc>
+ <a>
+ LINESTRING (110 290, 110 100, 110 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 552</desc>
+ <a>
+ LINESTRING (120 230, 120 200, 150 180, 180 220, 160 260, 90 250, 80 190, 140 110, 230 150, 240 230, 180 320, 60 310, 40 160, 140 50, 280 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 553</desc>
+ <a>
+ POLYGON ((200 360, 230 210, 100 190, 270 150, 360 10, 320 200, 490 230, 280 240, 200 360), (220 300, 250 200, 150 190, 290 150, 330 70, 310 210, 390 230, 280 230, 220 300))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 554</desc>
+ <a>
+ MULTIPOINT (70 340, 70 50, 430 50, 420 340, 340 120, 390 110, 390 70, 350 100, 350 50, 370 90, 320 80, 360 120, 350 80, 390 90, 420 80, 410 60, 410 100, 370 100, 380 60, 370 80, 380 100, 360 80, 370 80, 380 70, 390 80, 390 70, 410 70, 400 60, 410 60, 410 60, 410 60, 370 70, 410 50, 410 50, 410 50, 410 50, 410 50, 410 50, 410 50)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 555</desc>
+ <a>
+ MULTIPOINT (140 350, 510 140, 110 140, 250 290, 250 50, 300 370, 450 310, 440 160, 290 280, 220 160, 100 260, 320 230, 200 280, 360 130, 330 210, 380 80, 220 210, 380 310, 260 150, 260 110, 170 130)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 556</desc>
+ <a>
+ GEOMETRYCOLLECTION (POINT (110 300), POINT (100 110), POINT (130 210), POINT (150 210), POINT (150 180), POINT (130 170), POINT (140 190), POINT (130 200), LINESTRING (240 50, 210 120, 270 80, 250 140, 330 70, 300 160, 340 130, 340 130), POLYGON ((210 340, 220 260, 150 270, 230 220, 230 140, 270 210, 360 240, 260 250, 260 280, 240 270, 210 340), (230 270, 230 250, 200 250, 240 220, 240 190, 260 220, 290 230, 250 230, 230 270)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 557</desc>
+ <a>
+ MULTIPOINT (50 320, 50 280, 50 230, 50 160, 50 120, 100 120, 160 120, 210 120, 210 180, 210 150, 180 180, 140 180, 140 210, 140 260, 160 180, 140 300, 140 320, 110 320, 80 320)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 559</desc>
+ <a>
+ POLYGON ((50 50, 200 50, 200 200, 50 200, 50 50))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 560</desc>
+ <a>
+ POLYGON ((20 20, 20 160, 160 160, 160 20, 20 20), (140 140, 40 140, 40 40, 140 40, 140 140))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 561</desc>
+ <a>
+ POLYGON ((80 100, 220 100, 220 240, 80 240, 80 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 562</desc>
+ <a>
+ POLYGON ((20 340, 330 380, 50 40, 20 340))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 563</desc>
+ <a>
+ POLYGON ((210 320, 140 270, 0 270, 140 220, 210 320))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 564</desc>
+ <a>
+ POLYGON ((0 0, 110 0, 110 60, 40 60, 180 140, 40 220, 110 260, 0 260, 0 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 565</desc>
+ <a>
+ POLYGON ((220 0, 110 0, 110 60, 180 60, 40 140, 180 220, 110 260, 220 260, 220 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 566</desc>
+ <a>
+ POLYGON ((0 0, 120 0, 120 50, 50 50, 120 100, 50 150, 120 150, 120 190, 0 190, 0 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 567</desc>
+ <a>
+ POLYGON ((230 0, 120 0, 120 50, 190 50, 120 100, 190 150, 120 150, 120 190, 230 190, 230 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 568</desc>
+ <a>
+ POLYGON ((0 0, 210 0, 210 230, 0 230, 0 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 569</desc>
+ <a>
+ MULTIPOLYGON (((40 20, 0 0, 20 40, 60 60, 40 20)), ((60 90, 60 60, 90 60, 90 90, 60 90)), ((70 120, 90 90, 100 120, 70 120)), ((120 70, 90 90, 120 100, 120 70)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 570</desc>
+ <a>
+ POLYGON ((0 0, 340 0, 340 300, 0 300, 0 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 571</desc>
+ <a>
+ MULTIPOLYGON (((40 20, 0 0, 20 40, 60 60, 40 20)), ((60 100, 60 60, 100 60, 100 100, 60 100)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 572</desc>
+ <a>
+ POLYGON ((0 0, 120 0, 120 120, 0 120, 0 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 573</desc>
+ <a>
+ MULTIPOLYGON (((60 20, 0 20, 60 60, 60 20)), ((60 100, 60 60, 100 60, 100 100, 60 100)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 574</desc>
+ <a>
+ POLYGON ((160 330, 60 260, 20 150, 60 40, 190 20, 270 130, 260 250, 160 330), (140 240, 80 190, 90 100, 160 70, 210 130, 210 210, 140 240))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 575</desc>
+ <a>
+ POLYGON ((300 330, 190 270, 150 170, 150 110, 250 30, 380 50, 380 250, 300 330), (290 240, 240 200, 240 110, 290 80, 330 170, 290 240))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 576</desc>
+ <a>
+ MULTIPOLYGON (((120 340, 120 200, 140 200, 140 280, 160 280, 160 200, 180 200, 180 280, 200 280, 200 200, 220 200, 220 340, 120 340)), ((360 200, 220 200, 220 180, 300 180, 300 160, 220 160, 220 140, 300 140, 300 120, 220 120, 220 100, 360 100, 360 200)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 577</desc>
+ <a>
+ MULTIPOLYGON (((100 220, 100 200, 300 200, 300 220, 100 220)), ((280 180, 280 160, 300 160, 300 180, 280 180)), ((220 140, 220 120, 240 120, 240 140, 220 140)), ((180 220, 160 240, 200 240, 180 220)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 578</desc>
+ <a>
+ MULTIPOLYGON (((100 200, 100 180, 120 180, 120 200, 100 200)), ((60 240, 60 140, 220 140, 220 160, 160 160, 160 180, 200 180, 200 200, 160 200, 160 220, 220 220, 220 240, 60 240), (80 220, 80 160, 140 160, 140 220, 80 220)), ((280 220, 240 180, 260 160, 300 200, 280 220)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 579</desc>
+ <a>
+ MULTIPOLYGON (((80 220, 80 160, 140 160, 140 220, 80 220), (100 200, 100 180, 120 180, 120 200, 100 200)), ((220 240, 220 220, 160 220, 160 200, 220 200, 220 180, 160 180, 160 160, 220 160, 220 140, 320 140, 320 240, 220 240), (240 220, 240 160, 300 160, 300 220, 240 220)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 580</desc>
+ <a>
+ POLYGON ((60 160, 140 160, 140 60, 60 60, 60 160))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 581</desc>
+ <a>
+ POLYGON ((160 160, 100 160, 100 100, 160 100, 160 160), (140 140, 120 140, 120 120, 140 120, 140 140))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 582</desc>
+ <a>
+ POLYGON ((10 10, 100 10, 10 11, 10 10))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 583</desc>
+ <a>
+ POLYGON ((90 0, 200 0, 200 200, 90 200, 90 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 584</desc>
+ <a>
+ POLYGON ((100 10, 10 10, 90 11, 90 20, 100 20, 100 10))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 585</desc>
+ <a>
+ POLYGON ((20 20, 0 20, 0 0, 20 0, 20 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 586</desc>
+ <a>
+ POLYGON ((10 10, 50 10, 50 50, 10 50, 10 31, 49 30, 10 30, 10 10))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 587</desc>
+ <a>
+ POLYGON ((60 40, 40 40, 40 20, 60 20, 60 40))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 588</desc>
+ <a>
+ POLYGON ((10 100, 10 10, 100 10, 100 100, 10 100), (90 90, 11 90, 10 10, 90 11, 90 90))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 589</desc>
+ <a>
+ POLYGON ((0 30, 0 0, 30 0, 30 30, 0 30))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 590</desc>
+ <a>
+ MULTIPOLYGON (((0 0, 100 0, 100 20, 0 20, 0 0)), ((0 40, 0 21, 100 20, 100 40, 0 40)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 591</desc>
+ <a>
+ POLYGON ((110 30, 90 30, 90 10, 110 10, 110 30))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 592</desc>
+ <a>
+ POLYGON ((100 10, 0 10, 100 11, 100 10))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 593</desc>
+ <a>
+ POLYGON ((100 10, 0 10, 90 11, 90 20, 100 20, 100 10))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 594</desc>
+ <a>
+ POLYGON ((10 30, 10 0, 30 10, 30 30, 10 30))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 595</desc>
+ <a>
+ POLYGON ((10 30, 10 10, 30 10, 30 30, 10 30))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 596</desc>
+ <a>
+ POLYGON ((0 0, 200 0, 0 198, 0 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 597</desc>
+ <a>
+ POLYGON ((280 60, 139 60, 280 70, 280 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 598</desc>
+ <a>
+ POLYGON ((0 0, 140 10, 0 20, 0 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 599</desc>
+ <a>
+ POLYGON ((280 0, 139 10, 280 1, 280 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 600</desc>
+ <a>
+ MULTIPOLYGON (((1 4, 1 1, 2 1, 2 4, 1 4)), ((3 4, 3 1, 4 1, 4 4, 3 4)), ((5 4, 5 1, 6 1, 6 4, 5 4)), ((7 4, 7 1, 8 1, 8 4, 7 4)), ((9 4, 9 1, 10 1, 10 4, 9 4)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 601</desc>
+ <a>
+ POLYGON ((0 2, 11 3, 11 2, 0 2))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 602</desc>
+ <a>
+ POLYGON ((20 40, 20 200, 180 200, 180 40, 20 40), (180 120, 120 120, 120 160, 60 120, 120 80, 120 119, 180 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 603</desc>
+ <a>
+ POLYGON ((200 160, 160 160, 160 80, 200 80, 200 160))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 604</desc>
+ <a>
+ LINESTRING (160 140, 160 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 605</desc>
+ <a>
+ POLYGON ((20 40, 20 200, 180 200, 180 120, 140 120, 180 119, 180 40, 20 40), (140 160, 80 120, 140 80, 140 160))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 606</desc>
+ <a>
+ POLYGON ((200 160, 150 160, 150 80, 200 80, 200 160))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 607</desc>
+ <a>
+ POLYGON ((83 33, 62 402, 68 402, 83 33))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 608</desc>
+ <a>
+ POLYGON ((78 39, 574 76, 576 60, 78 39))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 609</desc>
+ <a>
+ LINESTRING (240 190, 120 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 610</desc>
+ <a>
+ POLYGON ((110 240, 50 80, 240 70, 110 240))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 611</desc>
+ <a>
+ LINESTRING (0 100, 100 100, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 612</desc>
+ <a>
+ POLYGON ((30 240, 260 30, 30 30, 30 240), (80 140, 80 80, 140 80, 80 140))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 613</desc>
+ <a>
+ LINESTRING (40 340, 200 250, 120 180, 160 110, 270 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 614</desc>
+ <a>
+ MULTIPOLYGON (((60 320, 60 80, 300 80, 60 320), (80 280, 80 100, 260 100, 80 280)), ((120 160, 140 160, 140 140, 120 160)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 615</desc>
+ <a>
+ MULTILINESTRING ((100 240, 100 180, 160 180, 160 120, 220 120), (40 360, 40 60, 340 60, 40 360, 40 20), (120 120, 120 140, 100 140, 100 120, 140 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 616</desc>
+ <a>
+ MULTIPOLYGON (((60 260, 60 120, 220 120, 220 260, 60 260), (80 240, 80 140, 200 140, 200 240, 80 240)), ((100 220, 100 160, 180 160, 180 220, 100 220), (120 200, 120 180, 160 180, 160 200, 120 200)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 617</desc>
+ <a>
+ MULTILINESTRING ((40 260, 240 260, 240 240, 40 240, 40 220, 240 220), (120 300, 120 80, 140 80, 140 300, 140 80, 120 80, 120 320))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 618</desc>
+ <a>
+ MULTIPOLYGON (((60 320, 60 120, 280 120, 280 320, 60 320), (120 260, 120 180, 240 180, 240 260, 120 260)), ((280 400, 320 400, 320 360, 280 360, 280 400)), ((300 240, 300 220, 320 220, 320 240, 300 240)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 619</desc>
+ <a>
+ MULTILINESTRING ((80 300, 80 160, 260 160, 260 300, 80 300, 80 140), (220 360, 220 240, 300 240, 300 360))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 620</desc>
+ <a>
+ MULTIPOLYGON (((120 180, 60 80, 180 80, 120 180)), ((100 240, 140 240, 120 220, 100 240)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 621</desc>
+ <a>
+ MULTILINESTRING ((180 260, 120 180, 60 260, 180 260), (60 300, 60 40), (100 100, 140 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 622</desc>
+ <a>
+ POLYGON ((95 9, 81 414, 87 414, 95 9))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 623</desc>
+ <a>
+ LINESTRING (93 13, 96 13)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 624</desc>
+ <a>
+ LINESTRING (0 0, 100 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 625</desc>
+ <a>
+ LINESTRING (0 100, 100 0)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 626</desc>
+ <a>
+ LINESTRING (0 0, 100 100, 200 0)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 627</desc>
+ <a>
+ LINESTRING (0 0, 100 100, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 628</desc>
+ <a>
+ LINESTRING (40 360, 40 220, 120 360)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 629</desc>
+ <a>
+ LINESTRING (120 340, 60 220, 140 220, 140 360)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 630</desc>
+ <a>
+ LINESTRING (220 240, 200 220, 60 320, 40 300, 180 200, 160 180, 20 280)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 631</desc>
+ <a>
+ LINESTRING (220 240, 140 160, 120 180, 220 280, 200 300, 100 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 632</desc>
+ <a>
+ LINESTRING (80 320, 220 320, 220 160, 80 300)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 633</desc>
+ <a>
+ LINESTRING (60 200, 60 260, 140 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 634</desc>
+ <a>
+ LINESTRING (60 200, 60 140, 140 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 635</desc>
+ <a>
+ LINESTRING (180 200, 100 280, 20 200, 100 120, 180 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 636</desc>
+ <a>
+ LINESTRING (100 200, 220 200, 220 80, 100 80, 100 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 637</desc>
+ <a>
+ LINESTRING (0 10, 620 10, 0 11)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 638</desc>
+ <a>
+ LINESTRING (400 60, 400 10)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 639</desc>
+ <a>
+ MULTIPOLYGON (((120 320, 180 200, 240 320, 120 320)), ((180 200, 240 80, 300 200, 180 200)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 640</desc>
+ <a>
+ MULTIPOINT (120 320, 180 260, 180 320, 180 200, 300 200, 200 220)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 641</desc>
+ <a>
+ MULTIPOLYGON (((120 80, 420 80, 420 340, 120 340, 120 80), (160 300, 160 120, 380 120, 380 300, 160 300)), ((200 260, 200 160, 340 160, 340 260, 200 260), (240 220, 240 200, 300 200, 300 220, 240 220)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 642</desc>
+ <a>
+ MULTIPOINT (200 360, 420 340, 400 100, 340 120, 200 140, 200 160, 220 180, 260 200, 200 360, 420 340, 400 100, 340 120, 200 140, 200 160, 220 180, 260 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 643</desc>
+ <a>
+ MULTIPOINT (40 90, 20 20, 70 70)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 644</desc>
+ <a>
+ LINESTRING (20 20, 100 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 645</desc>
+ <a>
+ LINESTRING (20 20, 110 110, 170 50, 130 10, 70 70)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 646</desc>
+ <a>
+ MULTILINESTRING ((100 320, 100 220), (100 180, 200 180), (220 180, 220 320), (220 320, 160 320), (100 320, 100 220), (100 180, 200 180), (220 180, 220 320), (220 320, 160 320), (100 220, 100 320))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 647</desc>
+ <a>
+ MULTIPOINT (100 320, 100 260, 100 220, 100 200, 100 180, 120 180, 200 180, 220 180, 220 260, 220 320, 200 320, 160 320, 140 320, 120 320, 100 320, 100 260, 100 220, 100 200, 100 180, 120 180, 200 180, 220 180, 220 260, 220 320, 200 320, 160 320, 140 320, 120 320)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 648</desc>
+ <a>
+ MULTILINESTRING ((-500 -140, -500 -280, -320 -280, -320 -140, -500 -140, -500 -340), (-500 -140, -320 -140, -500 -140, -320 -140, -500 -140))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 649</desc>
+ <a>
+ MULTIPOINT (-560 -180, -420 -180, -500 -220, -500 -340, -500 -280, -500 -140, -320 -140, -420 -140, -320 -180, -280 -140, -320 -120, -560 -180, -420 -180, -500 -220, -500 -340, -500 -280, -500 -140, -320 -140, -420 -140, -320 -180, -280 -140, -320 -120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 650</desc>
+ <a>
+ MULTILINESTRING ((180 100, 140 280, 240 140, 220 120, 140 280), (140 280, 100 400, 80 380, 140 280, 40 380, 20 360, 140 280))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 651</desc>
+ <a>
+ POINT (200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 652</desc>
+ <a>
+ MULTIPOINT (100 100, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 653</desc>
+ <a>
+ MULTIPOINT (100 100, 200 200, 300 300, 500 500)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 654</desc>
+ <a>
+ MULTIPOINT (100 100, 200 200, 400 400, 600 600)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 655</desc>
+ <a>
+ POINT (80 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 656</desc>
+ <a>
+ POINT (260 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 657</desc>
+ <a>
+ POINT (60 260)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 658</desc>
+ <a>
+ POINT (120 260)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 659</desc>
+ <a>
+ POINT (80 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 660</desc>
+ <a>
+ POINT (80 280)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 661</desc>
+ <a>
+ POLYGON ((0 0, 140 0, 140 140, 0 140, 0 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 662</desc>
+ <a>
+ POLYGON ((140 0, 0 0, 0 140, 140 140, 140 0))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 663</desc>
+ <a>
+ POLYGON ((40 60, 360 60, 360 300, 40 300, 40 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 664</desc>
+ <a>
+ POLYGON ((120 100, 280 100, 280 240, 120 240, 120 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 665</desc>
+ <a>
+ POLYGON ((80 100, 360 100, 360 280, 80 280, 80 100))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 666</desc>
+ <a>
+ POLYGON ((0 280, 0 0, 260 0, 260 280, 0 280), (220 240, 40 240, 40 40, 220 40, 220 240))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 667</desc>
+ <a>
+ POLYGON ((20 260, 240 260, 240 20, 20 20, 20 260), (160 180, 80 180, 120 120, 160 180))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 668</desc>
+ <a>
+ POLYGON ((60 80, 200 80, 200 220, 60 220, 60 80))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 669</desc>
+ <a>
+ POLYGON ((120 140, 260 140, 260 260, 120 260, 120 140))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 670</desc>
+ <a>
+ POLYGON ((60 220, 220 220, 140 140, 60 220))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 671</desc>
+ <a>
+ POLYGON ((100 180, 180 180, 180 100, 100 100, 100 180))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 672</desc>
+ <a>
+ POLYGON ((40 40, 180 40, 180 180, 40 180, 40 40))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 673</desc>
+ <a>
+ POLYGON ((180 40, 40 180, 160 280, 300 140, 180 40))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 674</desc>
+ <a>
+ POLYGON ((40 280, 200 280, 200 100, 40 100, 40 280), (100 220, 120 220, 120 200, 100 180, 100 220))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 675</desc>
+ <a>
+ POLYGON ((40 280, 180 260, 180 120, 60 120, 40 280))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 676</desc>
+ <a>
+ POLYGON ((0 200, 0 0, 200 0, 200 200, 0 200), (20 180, 130 180, 130 30, 20 30, 20 180))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 677</desc>
+ <a>
+ POLYGON ((60 90, 130 90, 130 30, 60 30, 60 90))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 678</desc>
+ <a>
+ LINESTRING (100 120, 100 240)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 679</desc>
+ <a>
+ POLYGON ((40 60, 160 60, 160 180, 40 180, 40 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 680</desc>
+ <a>
+ LINESTRING (80 80, 140 140, 200 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 681</desc>
+ <a>
+ POLYGON ((40 40, 140 40, 140 140, 40 140, 40 40))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 682</desc>
+ <a>
+ POLYGON ((190 190, 360 20, 20 20, 190 190), (111 110, 250 100, 140 30, 111 110))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 683</desc>
+ <a>
+ POLYGON ((20 200, 20 20, 240 20, 240 200, 20 200), (130 110, 60 40, 60 180, 130 110), (130 180, 131 40, 200 110, 130 180))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 684</desc>
+ <a>
+ LINESTRING (100 140, 100 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 685</desc>
+ <a>
+ MULTIPOLYGON (((20 80, 180 79, 100 0, 20 80)), ((20 160, 180 160, 100 80, 20 160)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 686</desc>
+ <a>
+ MULTIPOLYGON (((20 80, 180 80, 100 0, 20 80)), ((20 160, 180 160, 100 80, 20 160)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 687</desc>
+ <a>
+ LINESTRING (60 0, 20 80, 100 80, 80 120, 40 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 688</desc>
+ <a>
+ LINESTRING (140 300, 220 160, 260 200, 240 260)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 689</desc>
+ <a>
+ LINESTRING (60 40, 140 40, 140 160, 0 160)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 690</desc>
+ <a>
+ LINESTRING (140 280, 240 280, 240 180, 140 180, 140 280)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 691</desc>
+ <a>
+ LINESTRING (140 0, 0 0, 40 60, 0 120, 60 200, 220 160, 220 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 692</desc>
+ <a>
+ LINESTRING (80 140, 180 100, 160 40, 100 40, 60 100, 80 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 693</desc>
+ <a>
+ LINESTRING (20 20, 80 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 694</desc>
+ <a>
+ LINESTRING (40 40, 160 160, 200 60, 60 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 695</desc>
+ <a>
+ LINESTRING (40 40, 200 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 696</desc>
+ <a>
+ LINESTRING (200 40, 140 40, 40 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 697</desc>
+ <a>
+ LINESTRING (0 0, 110 0, 60 0)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 698</desc>
+ <a>
+ LINESTRING (0 0, 110 0)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 699</desc>
+ <a>
+ LINESTRING (0 0, 80 0, 80 60, 80 0, 170 0)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 700</desc>
+ <a>
+ MULTILINESTRING ((0 0, 170 0), (80 0, 80 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 701</desc>
+ <a>
+ LINESTRING (80 100, 180 200)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 702</desc>
+ <a>
+ LINESTRING (80 180, 180 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 703</desc>
+ <a>
+ LINESTRING (40 40, 100 100, 160 160)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 704</desc>
+ <a>
+ LINESTRING (160 60, 100 100, 60 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 705</desc>
+ <a>
+ LINESTRING (140 60, 60 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 706</desc>
+ <a>
+ LINESTRING (40 40, 180 180, 100 180, 100 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 707</desc>
+ <a>
+ LINESTRING (80 90, 50 50, 0 0)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 708</desc>
+ <a>
+ LINESTRING (40 140, 240 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 709</desc>
+ <a>
+ LINESTRING (40 140, 100 140, 80 80, 120 60, 100 140, 160 140, 160 100, 200 100, 160 140, 240 140)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 710</desc>
+ <a>
+ LINESTRING (20 20, 100 20, 20 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 711</desc>
+ <a>
+ LINESTRING (60 20, 200 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 712</desc>
+ <a>
+ LINESTRING (40 60, 180 60, 180 140, 100 140, 100 60, 220 60, 220 180, 80 180, 80 60, 280 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 713</desc>
+ <a>
+ LINESTRING (140 60, 180 60, 220 60, 260 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 714</desc>
+ <a>
+ MULTIPOINT (0 20, 40 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 715</desc>
+ <a>
+ POLYGON ((20 40, 20 0, 60 0, 60 40, 20 40))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 716</desc>
+ <a>
+ MULTIPOINT (0 20, 20 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 717</desc>
+ <a>
+ MULTIPOINT (20 20, 40 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 718</desc>
+ <a>
+ MULTIPOINT (80 260, 140 260, 180 260)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 719</desc>
+ <a>
+ POLYGON ((40 320, 140 320, 140 200, 40 200, 40 320))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 720</desc>
+ <a>
+ MULTIPOLYGON (((0 40, 0 0, 40 0, 40 40, 0 40)), ((40 80, 40 40, 80 40, 80 80, 40 80)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 721</desc>
+ <a>
+ LINESTRING (40 40, 120 120, 200 120)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 722</desc>
+ <a>
+ LINESTRING (40 40, 100 100, 160 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 723</desc>
+ <a>
+ POINT (60 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 724</desc>
+ <a>
+ MULTIPOINT (40 40, 100 40)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 725</desc>
+ <a>
+ LINESTRING (40 40, 80 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 726</desc>
+ <a>
+ MULTIPOINT (40 40, 60 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 727</desc>
+ <a>
+ MULTIPOINT (60 60, 100 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 728</desc>
+ <a>
+ LINESTRING (40 40, 60 60, 80 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 729</desc>
+ <a>
+ POINT (20 30)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 730</desc>
+ <a>
+ MULTIPOINT (40 40, 80 60, 40 100)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 731</desc>
+ <a>
+ MULTIPOINT (80 280, 80 220, 160 220, 80 220)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 732</desc>
+ <a>
+ MULTIPOINT (80 280, 80 220, 160 220)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 733</desc>
+ <a>
+ MULTIPOINT EMPTY
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 734</desc>
+ <a>
+ LINESTRING (20 60, 160 60, 80 160, 80 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 735</desc>
+ <a>
+ LINESTRING (20 80, 80 20, 80 80, 140 60, 80 20, 160 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 736</desc>
+ <a>
+ LINESTRING (20 60, 100 60, 60 100, 60 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 737</desc>
+ <a>
+ LINESTRING (20 60, 60 60, 100 60, 60 100, 60 60)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 738</desc>
+ <a>
+ LINESTRING (20 20, 80 20, 80 80, 20 20)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 739</desc>
+ <a>
+ LINESTRING (80 80, 20 20, 20 80, 140 80, 140 140, 80 80)
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 740</desc>
+ <a>
+ LINESTRING EMPTY
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 741</desc>
+ <a>
+ MULTILINESTRING ((40 140, 160 40), (160 140, 40 40))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 742</desc>
+ <a>
+ MULTILINESTRING ((20 160, 20 20), (100 160, 100 20))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 743</desc>
+ <a>
+ MULTILINESTRING ((60 140, 20 80, 60 40), (60 40, 100 80, 60 140))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 744</desc>
+ <a>
+ MULTILINESTRING ((60 40, 140 40, 100 120, 100 0), (100 200, 200 120))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 745</desc>
+ <a>
+ MULTILINESTRING ((40 120, 100 60), (160 120, 100 60), (40 60, 160 60))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 746</desc>
+ <a>
+ MULTILINESTRING ((80 160, 40 220, 40 100, 80 160), (80 160, 120 220, 120 100, 80 160))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 747</desc>
+ <a>
+ MULTILINESTRING ((80 160, 40 220), (80 160, 120 220, 120 100, 80 160), (40 100, 80 160))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 748</desc>
+ <a>
+ POLYGON ((180 260, 80 300, 40 180, 160 120, 180 260))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 749</desc>
+ <a>
+ POLYGON EMPTY
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 750</desc>
+ <a>
+ MULTIPOLYGON (((240 160, 140 220, 80 60, 220 40, 240 160)), ((160 380, 100 240, 20 380, 160 380), (120 340, 60 360, 80 320, 120 340)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+<case>
+ <desc>Test 751</desc>
+ <a>
+ MULTIPOLYGON (((240 160, 100 240, 80 60, 220 40, 240 160)), ((160 380, 100 240, 20 380, 160 380), (120 340, 60 360, 80 320, 120 340)))
+ </a>
+ <test> <op name="isValid" arg1="A"> true </op> </test>
+</case>
+</run>
Added: packages/jts/branches/upstream/current/testxml/general/TestWithinDistance.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/general/TestWithinDistance.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/general/TestWithinDistance.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,92 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>PP - disjoint points</desc>
+ <a> POINT(10 10) </a>
+ <b> POINT(100 100) </b>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="200"> true </op></test>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="100"> false </op></test>
+</case>
+
+<case>
+ <desc>PP - overlapping points</desc>
+ <a> POINT(10 10) </a>
+ <b> POINT(10 10) </b>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="200"> true </op></test>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="0"> true </op></test>
+</case>
+
+<case>
+ <desc>PL - point on linestring</desc>
+ <a> POINT (340 200) </a>
+ <b> LINESTRING (80 280, 340 200, 80 80) </b>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="0"> true </op></test>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="10"> true </op></test>
+</case>
+
+<case>
+ <desc>PL - point not on linestring</desc>
+ <a> LINESTRING (100 100, 200 100, 200 200, 100 200, 100 100) </a>
+ <b> POINT (10 10) </b>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="128"> true </op></test>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="127"> false </op></test>
+</case>
+
+<case>
+ <desc>PA - point inside polygon</desc>
+ <a> POINT (240 160) </a>
+ <b> POLYGON ((100 260, 340 180, 100 60, 180 160, 100 260)) </b>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="0"> true </op></test>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="10"> true </op></test>
+</case>
+
+<case>
+ <desc>mPA - points outside polygon</desc>
+ <a> POLYGON ((200 180, 60 140, 60 260, 200 180)) </a>
+ <b> MULTIPOINT (140 280, 140 320) </b>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="60"> true </op></test>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="57"> false </op></test>
+</case>
+
+<case>
+ <desc>LL - disjoint linestrings</desc>
+ <a> LINESTRING (40 300, 240 260, 60 160, 140 60) </a>
+ <b> LINESTRING (140 360, 260 280, 240 120, 120 160) </b>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="18"> true </op></test>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="17"> false </op></test>
+</case>
+
+<case>
+ <desc>LL - crossing linestrings</desc>
+ <a> LINESTRING (40 300, 280 220, 60 160, 140 60) </a>
+ <b> LINESTRING (140 360, 260 280, 240 120, 120 160) </b>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="0"> true </op></test>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="10"> true </op></test>
+</case>
+
+<case>
+ <desc>AA - overlapping polygons</desc>
+ <a> POLYGON ((60 260, 260 180, 100 60, 60 160, 60 260)) </a>
+ <b> POLYGON ((220 280, 120 160, 300 60, 360 220, 220 280)) </b>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="0"> true </op></test>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="10"> true </op></test>
+</case>
+
+<case>
+ <desc>AA - disjoint polygons</desc>
+ <a> POLYGON ((100 320, 60 120, 240 180, 200 260, 100 320)) </a>
+ <b> POLYGON ((420 320, 280 260, 400 100, 420 320)) </b>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="72"> true </op></test>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="71"> false </op></test>
+</case>
+
+<case>
+ <desc>mAmA - overlapping multipolygons</desc>
+ <a> MULTIPOLYGON (((40 240, 160 320, 40 380, 40 240)), ((100 240, 240 60, 40 40, 100 240))) </a>
+ <b> MULTIPOLYGON (((220 280, 120 160, 300 60, 360 220, 220 280)), ((240 380, 280 300, 420 340, 240 380))) </b>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="0"> true </op></test>
+<test><op name="isWithinDistance" arg1="A" arg2="B" arg3="10"> true </op></test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/robust/ExternalRobustness.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/robust/ExternalRobustness.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/robust/ExternalRobustness.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,210 @@
+<run>
+ <!-- first occurrence is used -->
+ <precisionModel type="FLOATING"/>
+ <precisionModel type="FLOATING_SINGLE"/>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+<desc>http://geos.refractions.net/pipermail/geos-devel/2005-May/001441.html</desc>
+
+ <a>
+ 0103000020E80A00000100000069010000ECA2396C13BBFF40E8BA3424319F2541DEFB1D49DFB8FF40E73660ADA07F2541FAD6C80B43B2FF407033A9AC12602541E43630383FA7FF401F0EFC9789402541470638AAD497FF408AE2E2E40721254133F2A0950484FF40D372540890012541776AF085D06BFF40B21B837624E22441E2C9515E3A4FFF40DBD7ABA2C7C22441CDA87059442EFF407956E5FE7BA32441DF5C4C09F108FF40A728EFFB4384244184A9045743DFFE40A40901092265244116A59F823EB1FE4096459A931846244141D7C822E67EFE40AD4251072A272441B29589243E48FE405630A3CD58082441A6A4FACA4A0DFE4065E0C34DA7E923417321EFAE10CEFD40D6CD6DEC17CB2341B7BD98BE948AFD40F954B20BADAC23414652253DDC42FD40B720CA0A698E234192D155C2ECF6FC40ADD0E5454E702341B3A10E3ACCA6FC40CCDBFE155F522341D166E1E38052FC4022B3A8D09D3423411747905211FAFB408628E2C70C172341F7B18A6B849DFB40B61CE749AEF92241F6B46366E13CFB40907802A184DC2241B9E841CC2FD8FA40FA74601392BF224194014977776FFA400135E1E2D8A22241500FFD91C002FA40CFB5EB4C5B8622416E789F961392F940DE17418A1B6A22418ABD854E791DF940FD44D0CE1B4E224122126AD1FAA4F84096F689495E32224164D8B584A128F840951F3524E5162241350EC61A77A8F7406EBD4383B2FB2141FEB929928524F7408B13A885C8E021417066DA34D79CF6408654AA4429C62141BCBC6E977611F64071BCBED3D6AB21414A4D47986E82F5407B1F5C40D39121416897B55ECAEFF44024F0D29120782141DA601D5A9559F4403AC024C9C05E2141AC6E1041DBBFF340C23FDCE0B545214109B16410A822F340EABCE5CC012D214160F4440A0882F2402528687AA61421417B2A3CB507DEF140659F9ECFA5FC2041975E3BDBB336F1408B83B2AB01E5204109689A88198CF040F01A96E6BBCD204192DE26168CBCEF40FDC3DF50D6B620418BB372E18D5AEE40A5BAA5B352A020414762D20D54F2EC409D735AD0328A204125366DB2FA83EB401B90A9607874204149EEA6609E0FEA40CC6C5516255F20412C71E5215C95E840C14E159B3A4A204167244D755115E740E4307490BA3520410516744D9C8FE5409C34B08FA621204130250C0E5B04E44024B89A29000E2041F2588489AC73E240152AF2CC91F51F414194A1FEAFDDE040A812CC8B04D01F41B9AE1D2C0A85DE40479B677D5BAB1F413F7ECABF9744DB4062B59D7D99871F4122E757A249FAD740CEC04256C1641F412B6FA08261A6D440A7E1EEBED5421F41A4982BCF2149D14038C2C75CD9211F41436DFF619BC5CB402FC54BC2CE011F41DF6CCA0C52E7C44028AC1E6FB8E21E41DD196F76E1EFBB409BB6D7CF98C41E41F3220E7C07E0AB40163DD13D72A71E4180CA45A3CBEE47C079CCF9FE468B1E4173AA092451DDACC0EBC4A64519701E41488EA3D140CBBCC00E806830EB551E41721152D143A2C5C0D501E0C9BE3C1E41BB857A0AAEECCCC05637960896241E4176759EC42622D2C0BAC6D4CE720D1E41BE846FDD47D4D5C0657380EA56F71D41F4583488708CD9C03319F51444E21D4153B71285564ADDC0B041E3F23BCE1D41F73ECE90D786E0C0E7552F1440BB1D417067519F176BE2C05E6FD2F351A91D413DDB08ABC551E4C0B5CABCF772981D41C6EB69C0BB3AE6C01FDEB970A4881D4115D45EBED325E8C00516569AE7791D4168E43F59E712EAC0BF39C69A3D6C1D4198FFCF1DD001ECC05C7AD082A75F1D41AE2E3C7467F2EDC0482DB74D26541D41D30E1EA386E4EFC0703425E1BA491D41C76E406903ECF0C06B151C0D66401D417873748760E6F1C014C1E38B28381D41AC8C2E2647E1F2C0D60CFC0103311D410441B9B4A3DCF3C0C9DE0FFEF52A1D41EDBA2C9962D8F4C0A10DEAF801261D419914F63170D4F5C053F56B5527221D41003D5FD7B8D0F6C024C18560661F1D41725717DD28CDF7C0C06B3051BF1D1D410D77BB93ACC9F8C0D0756948321D1D4181975F4A30C6F9C067533051BF1D1D4180B41750A0C2FAC075908560661F1D4127E180F5E8BEFBC051AC6B5527221D41C5404A8EF6BAFCC051ACE9F801261D4152C2BD72B5B6FDC033650FFEF52A1D41FF7F480112B2FEC0047BFB0103311D4139A402A0F8ACFFC01117E38B28381D41D05A1BDFAA5300C145531B0D66401D41B215F4EA8AD000C1365A24E1BA491D41C495ACB6124D01C10B3BB64D26541D4169AA478C38C901C12E70CF82A75F1D41EBBA6BBDF24402C1B517C59A3D6C1D418A0924A437C002C136DC549AE7791D41FC4EA1A3FD3A03C1A38CB870A4881D414F9FF9283BB503C1A661BBF772981D414689E7ABE62E04C1DAEED0F351A91D41386188AFF6A704C10ABE2D1440BB1D41B0A819C3612005C19B92E1F23BCE1D41F083B5821E9805C10753F31444E21D41B72E0E98230F06C145967EEA56F71D41AE6128BB678506C1CDD2D2CE720D1E41DA9914B3E1FA06C1C12C940896241E41C133A756886F07C1C2E0DDC9BE3C1E41D14B2F8D52E307C1A7486630EB551E41CA552C4F375608C15C77A44519701E410E5D02A72DC808C1F068F7FE468B1E41B1DFACB12C3909C1C3C3CE3D72A71E417036709F2BA909C1B027D5CF98C41E41AB7B89B421180AC1D7071C6FB8E21E41ACE3DC4906860AC1AD0B49C2CE011F41A378A2CDD0F20AC1BCF3C45CD9211F41E52C11C4785E0BC168FEEBBED5421F410D3608C8F5C80BC107C93F56C1641F41D1A3B68B3F320CC14DA99A7D99871F41742541D94D9A0CC1207B647D5BAB1F41F3F0659318010DC1AFDEC88B04D01F4116BF1EB697660DC189E2EECC91F51F41C9CF4057C3CA0DC1B60A9929000E20414EEA1AA7932D0EC1A77DAE8FA6212041DF4C11F1008F0EC189707290BA352041B07F379C03EF0EC12585139B3A4A20413BFFE72B944D0FC1129A5316255F204117B25940ABAA0FC167B4A76078742041528F99CB200310C1148F58D0328A20418BAA0D06283010C16DCDA3B352A020414941A4CC675C10C13DCEDD50D6B62041221106ACDC8710C1CE1C94E6BBCD2041B960AE4083B210C12F7DB0AB01E52041EEA52E3758DC10C1F8909CCFA5FC2041EAEA704C580511C1D011667AA6142141DEECF84D802D11C1D79EE3CC012D214154EF231ACD5411C11A1ADAE0B5452141313F67A03B7B11C1299322C9C05E214166608DE1C8A011C1D5BBD09120782141B1E1F1EF71C511C11AE45940D39121419ED1BBEF33E911C12B7ABCD3D6AB214159D016170C0C12C1870BA84429C62141C5B96AAEF72D12C101C4A585C8E0214195E39110F44E12C187674183B2FB21411BEB0DABFE6E12C181C33224E5162241BB0E3BFE148E12C1839487495E322241FB0E829D34AC12C11BDDCDCE1B4E22414D93882F5BC912C15CAA3E8A1B6A2241D00E606E86E512C1DF42E94C5B8622415A21B327B40013C1D3BCDEE2D8A222414B71F13CE21A13C1BFF75D1392BF2241AFFA79A30E3413C17BF6FFA084DC22416DD0C364374C13C1F895E449AEF922415D4C859E5A6313C1519DDFC70C1723411AABD982767913C1AA23A6D09D342341C6106558898E13C14348FC155F522341D5F3767A91A213C14839E3454E7023413AEB2A598DB513C1A885C70A698E23416FDD87797BC713C175B6AF0BADAC2341D48D9D755AD813C1112C6BEC17CB23413386A0FC28E813C1943BC14DA7E92341235A04D3E5F613C1AD88A0CD580824414D4294D28F0414C161984E072A2724419E0D8AEA251114C1DD98979318462441AA66A31FA71C14C1B25AFE0822652441856B358C122714C1B377ECFB4384244195963E60673014C1B9A3E2FE7BA32441FEF676E1A43814C18423A9A2C7C2244154B75E6BCA3F14C1FA65807624E2244180F14A6FD74514C1EFBB510890012541CBCE7074CB4A14C1B22AE0E40721254140F3EE17A64E14C18855F997894025419833D50C675114C1517AA6AC1260254128952A1C0E5314C1777D5DADA07F25414597F1249B5314C15C013224319F2541DAC52A1C0E5314C17985069BC1BE2541F994D50C675114C14189BD9B4FDE25414685EF17A64E14C11AAF6AB0D8FD25416D917174CB4A14C16DDB83635A1D2641AEE44B6FD74514C1194C1240D23C2641FCDA5F6BCA3F14C164A4E3D13D5C2641074B78E1A43814C19CE9BAA59A7B2641E61A4060673014C1946C8149E69A26410020378C122714C1339C774C1EBA26412D4BA51FA71C14C139BD653F40D9264102228CEA251114C17E83CCB449F82641698696D28F0414C1D588154138172741CBCD06D3E5F613C1CE9DC37A093627413529A3FC28E813C196F0A2FABA542741FB5FA0755AD813C13106F95B4A73274183DE8A797BC713C14F82B43CB5912741FF1A2E598DB513C107BA9C3DF9AF27410B527A7A91A213C1B90D810214CE27412B9D6858898E13C17706683203EC27416665DD82767913C13233BE77C40928414634899E5A6313C111C2848055272841A6E5C764374C13C157D27FFEB3442841E43C7EA30E3413C1257B64A7DD6128412AE0F53CE21A13C197830635D07E284189BCB727B40013C19BC88565899B2841F2D5646E86E512C10B4D7BFB06B8284104868D2F5BC912C16BF025BE46D42841E42C879D34AC12C1EBC8967946F02841705740FE148E12C1211DDDFE030C2941325E13ABFE6E12C121FA31247D272941A1809710F44E12C1756223C5AF422941578070AEF72D12C1B412BFC2995D2941FDBF1C170C0C12C143D8BC0339782941DEE9C1EF33E911C11077A8748B9229411322F8EF71C511C1EC1A0B088FAC29416DC893E1C8A011C1555194B641C629415DCE6DA03B7B11C17C88427FA1DF294123A52A1ACD5411C15E108B67ACF82941C9C8FF4D802D11C1C99A817B60112A4169EC774C580511C14D37FFCDBB292A4173CC353758DC10C1F5C7C878BC412A41B7ABB54083B210C1E0EBB49C60592A4108800DACDC8710C1B45CD161A6702A4182D3ABCC675C10C108BC87F78B872A417F5F1506283010C1E9CDC1940F9E2A416866A1CB200310C1A01D0D782FB42A414EA36940ABAA0FC1F609BEE7E9C92A413E32F82B944D0FC13F3612323DDF2A413DF3479C03EF0EC1685D52AD27F42A41AAFF21F1008F0EC18884F3B7A7082B410ADB2BA7932D0EC1358AB7B8BB1C2B4123FD5157C3CA0DC13510CD1E62302B41B72730B697660DC1F8BCEE6199432B418093779318010DC177D2810260562B418C0053D94D9A0CC11218B489B4682B4110B6C88B3F320CC10D159989957A2B410B7E1AC8F5C80BC17F99469D018C2B4134A923C4785E0BC15793F068F79C2B41D227B5CDD0F20AC1702D049A75AD2B4146C4EF4906860AC1733642E77ABD2B41378C9CB421180AC18FCDD81006CD2B417275839F2BA909C109537CE015DC2B41A84BC0B12C3909C1989A7F29A9EA2B4177F415A72DC808C1CD5DEBC8BEF82B411D17404F375608C191EC94A555062C418335438D52E307C1141A34B06C132C414644BB56886F07C15A6478E302202C41A1CF28B3E1FA06C1DA541D44172C2C4123BB3CBB678506C17B18FEE0A8372C4144AA2298230F06C18E4D28D3B6422C41FB1FCA821E9805C12106EE3D404D2C41A0632EC3612005C16EFDF64E44572C416D399DAFF6A704C1EFFE503EC2602C41207DFCABE62E04C1DF7D7F4EB9692C412DAD0E293BB503C1EF5B8ACC28722C413875B6A3FD3A03C104DE0B10107A2C417F4639A437C002C1E7CD3D7B6E812C41F10C81BDF24402C1EDC7057B43882C41D70F5D8C38C901C18CB300878E8E2C41ED0CC2B6124D01C10E668D214F942C41EA9C09EB8AD000C17C6ED6D784992C416AF030DFAA5300C1090ADB412F9E2C41D2E82DA0F8ACFFC0464077024EA22C419DDA730112B2FEC07D266BC7E0A52C41942FE972B5B6FDC0A2496149E7A82C4148BD758EF6BAFCC0593EF44B61AB2C418769ACF5E8BEFBC0A656B39D4EAD2C4158454350A0C2FAC0E77C2618AFAE2C416B2D8B4A30C6F9C0C433D19F82AF2C41A30EE793ACC9F8C0E8BA3424C9AF2C414FED42DD28CDF7C04858D19F82AF2C41BCCD8AD7B8D0F6C0EDC52618AFAE2C41CF9C213270D4F5C028C4B39D4EAD2C413837589962D8F4C04ED0F44B61AB2C41FFADE4B4A3DCF3C0FFFF6149E7A82C41F6E6592647E1F2C034016CC7E0A52C41AFB79F8760E6F1C0463F78024EA22C418B996B6903ECF0C03D2DDC412F9E2C41B92A74A386E4EFC0CEB5D7D784992C413B0A927467F2EDC065D18E214F942C411C94251ED001ECC0CB4202878E8E2C41352B9559E712EAC0F57A077B43882C4184C6B3BED325E8C096A43F7B6E812C413983BEC0BB3AE6C036D80D10107A2C411C115DABC551E4C07C798CCC28722C412835A59F176BE2C09DBE814EB9692C41009E2191D786E0C0B062533EC2602C41078BB885564ADDC00384F94E44572C415C35D988708CD9C058AFF03D404D2C41FF5C13DE47D4D5C031192BD3B6422C41C93C41C52622D2C0540601E1A8372C4123D9BD0BAEECCCC0AC642044172C2C41681093D243A2C5C0EA957BE302202C413EB120D440CBBCC0216D37B06C132C411BD7F92851DDACC0D96098A555062C4127FFB1DCCCEE47C00BF3EEC8BEF82B41B64F337707E0AB4085508329A9EA2B417C4F0774E1EFBB405A2980E015DC2B41506F990B52E7C440F8C3DC1006CD2B411C6FD1609BC5CB40A54C46E77ABD2B410A2596CE2149D1401A63089A75AD2B41B2920C8261A6D44024E8F468F79C2B414CADC5A149FAD740170D4B9D018C2B4172F239BF9744DB401AA79D89957A2B4139DC8E2B0A85DE4037C8B889B4682B413A0D5BFEAFDDE04058A0860260562B41A3B93E89AC73E24033A8F36199432B410773C70D5B04E4406918D21E62302B415C56304D9C8FE540FEAEBCB8BB1C2B41885C0A755115E7407FC5F8B7A7082B414AA6A3215C95E84024BA57AD27F42A41872566609E0FEA4053AE17323DDF2A418F742DB2FA83EB40F79CC3E7E9C92A41D6AC930D54F2EC401DCB12782FB42A41220F35E18D5AEE407195C7940F9E2A41FF4FEA158CBCEF40299D8DF78B872A4107AE7C88198CF040F756D761A6702A412F341EDBB336F140CFFEBA9C60592A41F1911FB507DEF14015F3CE78BC412A41F0EF280A0882F240247A05CEBB292A41E2424910A822F340DAF4877B60112A41F298F540DBBFF3402A819167ACF82941A425035A9559F440820F497FA1DF2941C0F89B5ECAEFF44013EE9AB641C62941314D2E986E82F540DECC11088FAC2941255D56977611F640B13DAF748B92294141A9C234D79CF6400BB3C3033978294111A112928524F7401A01C6C2995D2941579BAF1A77A8F740EF632AC5AF422941540DA084A128F840220E39247D27294193F054D1FAA4F8401D43E4FE030C29412347714E791DF94053009E7946F02841C8AE8B961392F940AF382DBE46D42841F4F3E991C002FA409AA582FB06B8284100963677776FFA40E2308D65899B28415D2E30CC2FD8FA4001FB0D35D07E284133AD5266E13CFB401E016CA7DD612841215E7A6B849DFB40496687FEB344284173A8805211FAFB4064638C8055272841987ED2E38052FC404EE1C577C40928410E71003ACCA6FC40C3C06F3203EC27419C5948C2ECF6FC409AD3880214CE27410C94183DDC42FD40E28AA43DF9AF274136BA8CBE948AFD40895DBC3CB59127419BD9E3AE10CEFD402CEB005C4A7327415819F0CA4A0DFE40B5DEAAFABA542741C1C77F243E48FE407294CB7A0936274170C7BF22E67EFE405F871D41381727411A5497823EB1FE404F89D4B449F826410318FD5643DFFE40B1C96D3F40D926416F8B4509F108FF40B1AE7F4C1EBA2641F6976A59442EFF4077848949E69A26411D7A4C5E3A4FFF404206C3A59A7B26412FDCEB85D06BFF402CC5EBD13D5C2641C2259D950484FF4060701A40D23C2641F9FB34AAD497FF4090028C635A1D2641F4EE2D383FA7FF4077D872B0D8FD25419651C70B43B2FF4035B4C59B4FDE254124391D49DFB8FF4060B10E9BC1BE2541ECA2396C13BBFF40E8BA3424319F2541
+</a>
+<b>
+ 0103000020E80A0000010000001B0000003731C25DB7A40AC123BABA3D2F2E1541482DDA6520AE15C150176B846E0E04419D9BAD51D2DD20C188B238C6A20F1341C93BA6B63EF616C1773C690356B72041AFE718BD3DE01AC1363F67295618224104666722A81614C128DF2B476DE92641E3BF74CA1BBCF1C0D43292B68C652141BDD1D74AAFA6CCC01D27263DE8A122418FF95A96AD86C240BA1AA7079685274134285EE6E81EF9C040F2AA56B1AF2C4117B1B91CDC81FA40E8363289617C3041DF296F1F14800941806416C77A5C2C4143DE3E9BAE901A41E5DD836A7C8E2E413E4390CBBBDE1E41DCBAED0B9BC82741489E9ED935770A41535871C71BFB2441A247FE423D360841CDF36716539B2441ECC1420680470741BD3D4C94710F23414D024D7D04380A41FEC5364D1A022241407DA7BAAF811D41DD0784C658ED184192B08CF1A618184108E3295E56ED104121896F9066610541F13A975D57FE1941096E8D134BEBFB406847DAE3D9661741AABE21A245A00B41845A019F2304FF40E48112BC1AF0F84080891F1A39C7F140DD811CEEB3B3EF40AE82AE28194B0341AB6F85D09F3409C1B06BA7169F6201413731C25DB7A40AC123BABA3D2F2E1541
+</b>
+
+<test>
+ <op name="intersection" arg1="A" arg2="B"> GEOMETRYCOLLECTION EMPTY </op>
+</test>
+
+</case>
+
+<case>
+
+<desc>http://postgis.refractions.net/pipermail/postgis-users/2006-March/011316.html</desc>
+<a>
+POLYGON((742605.987032656 5087763.72510381,742599.903121688
+5087760.56016809,742598.666141033
+5087762.50894352,742591.100910753
+5087758.50480931,742586.861672536
+5087766.63211263,742591.417801844
+5087769.04526206,742592.428792606
+5087767.35034731,742601.541294342
+5087772.18101105,742605.987032656 5087763.72510381))
+</a>
+<b>
+POLYGON((742601.541294537 5087772.18101068,742592.428792606
+5087767.35034731,742589.944404072
+5087771.51539701,742583.880455986 5087782.54873438,742582.81550675
+5087784.27809355,742583.216887765 5087784.43459684,742582.99081514
+5087785.0349637,742592.341351823 5087789.67654,742593.375823205
+5087787.7060691,742599.28794443 5087776.4640487,742601.541294537
+5087772.18101068))
+</b>
+
+<test>
+<op name="intersection" arg1="A" arg2="B"> GEOMETRYCOLLECTION EMPTY </op>
+</test>
+
+</case>
+
+<case>
+<desc>http://postgis.refractions.net/pipermail/postgis-users/2006-March/011332.html</desc>
+
+<a>
+POLYGON ((613697.0000000041909516 2369267.9999981997534633, 613797.0000000043073669 2368322.9999981978908181, 613643.0000000041909516 2367807.9999981969594955, 613674.0000000041909516 2367405.9999981969594955, 613400.0000000041909516 2367299.9999981955625117, 613200.0000000040745363 2366813.9999981950968504, 613252.0000000040745363 2366474.9999981927685440, 613094.0000000040745363 2366400.9999981927685440, 612695.0000000039581209 2365506.9999981909058988, 612326.0000000038417056 2365402.9999981909058988, 612145.0000000037252903 2365470.9999981913715601, 612061.0000000037252903 2365967.9999981918372214, 611724.0000000036088750 2366168.9999981927685440, 611334.0000000034924597 2366316.9999981927685440, 610743.0000000033760443 2366221.9999981932342052, 610174.0000000031432137 2366305.9999981927685440, 609973.0000000031432137 2367066.9999981955625117, 609073.0000000027939677 2367938.9999981974251568, 609061.0000000027939677 2368332.9999981974251568, 609151.0000000027939677 2368684.9999981992878020, 608919.0000000027939677 2368811.9999982002191246, 608801.0000000026775524 2369192.9999982002191246, 609161.0000000027939677 2369096.9999982006847858, 609161.0000000027939677 2369509.9999982025474310, 609857.0000000030267984 2369498.9999982011504471, 609762.0000000030267984 2369689.9999982020817697, 610796.0000000033760443 2369794.9999982025474310, 611332.0000000034924597 2370097.9999982025474310, 613149.0000000040745363 2370460.9999982034787536, 613613.0000000041909516 2369720.9999982016161084, 613697.0000000041909516 2369267.9999981997534633))
+</a>
+
+<b>
+POLYGON ((607216.0000000019790605 2370623.9999982002191246, 608128.0000000019790605 2370312.9999982002191246, 608317.0000000030267984 2370101.9999982002191246, 608328.0000000030267984 2369868.9999982002191246, 608644.0000000030267984 2369847.9999982002191246, 608801.0000000030267984 2369192.9999982002191246, 608919.0000000030267984 2368811.9999982002191246, 609151.0000000030267984 2368684.9999982002191246, 609061.0000000030267984 2368332.9999982002191246, 608602.0000000030267984 2368124.9999982002191246, 607980.0000000019790605 2367585.9999982002191246, 607295.0000000019790605 2367062.9999981899745762, 606251.0000000019790605 2366697.9999981899745762, 605456.0000000019790605 2367679.9999982002191246, 605108.0000000019790605 2368377.9999982002191246, 604906.0000000019790605 2369083.9999982002191246, 604191.0000000010477379 2369719.9999982002191246, 604107.0000000010477379 2370057.9999982002191246, 604264.0000000010477379 2370397.9999982002191246, 604141.0000000010477379 2370768.9999982002191246, 604561.0000000010477379 2370448.9999982002191246, 604940.0000000019790605 2370406.9999982002191246, 605460.0000000019790605 2370792.9999982002191246, 605942.0000000019790605 2370945.9999982099980116, 606364.0000000019790605 2370892.9999982002191246, 606881.0000000019790605 2370988.9999982002191246, 607216.0000000019790605 2370623.9999982002191246))
+</b>
+
+<test>
+<op name="intersection" arg1="A" arg2="B"> GEOMETRYCOLLECTION EMPTY </op>
+</test>
+
+</case>
+
+<case>
+<desc>http://postgis.refractions.net/pipermail/postgis-users/2006-March/011332.html (2)</desc>
+
+<a>
+ 0103000020BE6B0000010000002A000000FBFFFFFF0BB81A41D3FFFFFF12C63E41FBFFFFFF4FBD1A41D6FFFFFF66C63E41FCFFFFFF1BC11A41D7FFFFFF14C53E41FBFFFFFF93C31A41D3FFFFFFC4C23E41FCFFFFFF87C71A41D8FFFFFFC4C23E41FBFFFFFF8BD41A41D5FFFFFFBEC03E41FBFFFFFF2BD81A41D3FFFFFFDEC03E41FCFFFFFF63DA1A41DBFFFFFFB9BF3E41FCFFFFFF43D91A41D7FFFFFF5BBE3E41FBFFFFFFD7D81A41D1FFFFFFA8BC3E41FCFFFFFF37D61A41D3FFFFFF60BB3E41FCFFFFFFF3DD1A41D6FFFFFFFDB73E41FCFFFFFF6BE11A41D8FFFFFFBCB33E41FCFFFFFF4BDE1A41D8FFFFFFEBB13E41FCFFFFFF7BDB1A41D7FFFFFF8BB13E41FCFFFFFF4BDD1A41D6FFFFFF83B03E41FBFFFFFFB7D91A41D0FFFFFFADAE3E41FBFFFFFF07D81A41D6FFFFFFF4AD3E41FCFFFFFFBBD61A41D6FFFFFF45AB3E41FCFFFFFF67D61A41DBFFFFFFB3A93E41FCFFFFFF63D91A41D6FFFFFF92A83E41FBFFFFFF03C31A41D2FFFFFF75A93E41FBFFFFFF13BE1A41D7FFFFFFB7A83E41FBFFFFFF0FBF1A41D2FFFFFF84A73E41FBFFFFFFD7B41A41D5FFFFFF77A83E41FBFFFFFFAF871A41D6FFFFFFACA83E41FAFFFFFFDF811A41CEFFFFFF79AA3E41FBFFFFFFDF8B1A41D1FFFFFF9AAE3E41FAFFFFFF3B971A41D0FFFFFF76B03E41FBFFFFFF3B891A41D3FFFFFF4FB33E41FCFFFFFFE7871A41D3FFFFFF2EB43E41FBFFFFFFE7881A41D2FFFFFF16B53E41FCFFFFFFC3861A41D8FFFFFF9BB53E41FBFFFFFF27851A41D8FFFFFF67B73E41FBFFFFFFBB8C1A41D4FFFFFFA6B73E41FBFFFFFF03911A41D4FFFFFF38B93E41FBFFFFFF879E1A41D3FFFFFF11BC3E41FBFFFFFF37A91A41D4FFFFFF3EBB3E41FBFFFFFF0BA91A41D2FFFFFF46BC3E41FCFFFFFFC3B31A41D5FFFFFFFABC3E41FBFFFFFFF3B11A41D4FFFFFFDFC33E41FBFFFFFF0BB81A41D3FFFFFF12C63E41
+</a>
+
+<b>
+ 0103000020BE6B00000100000038000000000000009C801A41D5FFFFFF33D83E41000000006C821A41D5FFFFFFE0D63E410000000038861A41D5FFFFFFE3D53E4100000000E4851A41D5FFFFFFB0D43E4100000000C0821A41D5FFFFFFF2D33E4100000000B4691A41D5FFFFFFC6CF3E410000000038681A41D5FFFFFFBDCE3E410000000038751A41D5FFFFFF76CD3E410000000068731A41D5FFFFFF30CB3E4100000000787C1A41D5FFFFFFDCCA3E4100000000B4851A41D5FFFFFFDCCA3E4100000000788B1A41D5FFFFFF23CC3E41000000004C8C1A41D5FFFFFF10CB3E4100000000A48A1A41D5FFFFFFDEC93E4100000000788B1A41D5FFFFFFF5C83E4100000000C48E1A41D5FFFFFF17C83E4100000000B8921A41D5FFFFFFCDC73E41000000001C9D1A41D5FFFFFFE2C73E410000000008A31A41D5FFFFFFCBC83E4100000000ECAC1A41D5FFFFFF41C83E41000000005CB21A41D5FFFFFF31C63E41000000000CB81A41D5FFFFFF12C63E4100000000F4B11A41D5FFFFFFDFC33E4100000000C4B31A41D5FFFFFFFABC3E41000000000CA91A41D5FFFFFF46BC3E410000000038A91A41D5FFFFFF3EBB3E4100000000889E1A41D5FFFFFF11BC3E410000000004911A41D5FFFFFF38B93E4100000000BC8C1A41D5FFFFFFA6B73E410000000028851A41D5FFFFFF67B73E4100000000C4861A41D5FFFFFF9BB53E4100000000F0791A41D5FFFFFFD5B53E410000000038701A41D5FFFFFFDDB63E4100000000D0681A41D5FFFFFF84B83E4100000000D0581A41D5FFFFFF9CB73E410000000028581A41D5FFFFFF23B93E4100000000445E1A41D5FFFFFFB5BA3E4100000000245B1A41D5FFFFFF3CBC3E410000000080591A41D5FFFFFF99BD3E4100000000F8501A41D5FFFFFFBABE3E410000000018511A41D5FFFFFF75BF3E4100000000A84B1A41D5FFFFFF31C13E41000000004C4D1A41D5FFFFFFCCC73E4100000000244F1A41D5FFFFFF50CB3E41000000006C441A41D5FFFFFF8DCC3E4100000000BC451A41D5FFFFFF14CE3E4100000000D84B1A41D5FFFFFFFBCF3E4100000000B4571A41D5FFFFFFD6D13E4100000000B0581A41D5FFFFFF09D33E410000000028561A41D5FFFFFF5AD43E4100000000F45E1A41D5FFFFFF59D53E4100000000506B1A41D5FFFFFFB4D73E410000000044701A41D5FFFFFF5FD73E410000000038731A41D5FFFFFF74D73E4100000000E4721A41D5FFFFFFB4D73E41000000009C801A41D5FFFFFF33D83E41
+</b>
+
+<test>
+<op name="intersection" arg1="A" arg2="B"> GEOMETRYCOLLECTION EMPTY </op>
+</test>
+
+</case>
+
+ <case>
+<desc>
+postgis-users/2006-November/013743.html
+Fails due to 'gore' with apex extremely close to other segment (in B)
+</desc>
+<a>
+POLYGON((5417148.108 5658342.603,5417139.016
+5658338.009,5417126.791 5658331.833,5417116.292 5658327.518,5417112.871
+5658325.598,5417110.25 5658324.127,5417106.071 5658321.781,5417104.226
+5658320.745,5417093.266 5658315.008,5417091.265 5658313.961,5417085.335
+5658310.857,5417060.44 5658326.26,5417064.68 5658327.52,5417088.83
+5658336.46,5417088.52 5658337.31,5417102.92 5658342.65,5417103.26
+5658341.83,5417111.76 5658345.51,5417121.662 5658349.583,5417121.878
+5658349.672,5417125.217 5658351.119,5417131.761 5658353.388,5417137.589
+5658356.276,5417142.166 5658359.67,5417146.599 5658364.988,5417151.395
+5658370.641,5417150.853 5658371.392,5417152.59741167
+5658373.52811061,5417154.92 5658376.37,5417155.18955743
+5658376.89699992,5417154.919 5658376.371,5417155.814
+5658378.111,5417157.051 5658380.297,5417158.004 5658382.304,5417159.014
+5658384.47,5417159.775 5658386.619,5417160.629 5658389.278,5417161.5
+5658399.49,5417160.773 5658404.194,5417159.41 5658413.02,5417158.853
+5658414.442,5417153.671 5658427.659,5417153.67051161
+5658427.6586943,5417153.67 5658427.66,5417152.73 5658427.07,5417149.993
+5658436.599,5417148.81 5658439.42,5417149.233 5658439.67,5417148.36
+5658440.81,5417146.41 5658446.6,5417144.321 5658453.127,5417144.32092232
+5658453.13043826,5417154.59 5658458.01,5417154.99551047
+5658455.8409905,5417155.446 5658453.413,5417157.23981414
+5658448.75748237,5417157.22660892 5658448.57861162,5417157.22660849
+5658448.57860592,5417157.22660865 5658448.57860812,5417157.128
+5658447.265,5417157.64950997 5658446.06368023,5417157.64950961
+5658446.06368108,5417158.314 5658444.533,5417172.322
+5658417.957,5417174.99 5658418.57,5417175.23 5658417.74,5417176.696
+5658412.61,5417177.875 5658408.488,5417178.76 5658405.39,5417178.1
+5658393.55,5417178.08 5658393.36,5417177.11 5658384.95,5417178.151
+5658384.915,5417178.14836289 5658384.91508866,5417178.12
+5658384.83,5417177.91415246 5658383.81114117,5417176.927
+5658378.944,5417176.603 5658377.341,5417176.73975922
+5658378.01762048,5417176.6 5658377.34,5417176.51210558
+5658376.89535766,5417176.428 5658376.483,5417175.235
+5658370.602,5417171.577 5658362.886,5417170.762 5658360.107,5417168.522
+5658357.989,5417166.042 5658355.047,5417164.137 5658352.264,5417162.642
+5658351.593,5417160.702 5658350.843,5417160.05417889
+5658350.5823586,5417158.82 5658350.09,5417158.82103105
+5658350.0862195,5417159.50373263 5658350.36089455,5417158.818
+5658350.085,5417159.055 5658349.214,5417155.754
+5658347.679,5417156.78066321 5658348.15640928,5417155.7525011
+5658347.6811561,5417155.161 5658348.532,5417149.028
+5658343.237,5417152.26877967 5658346.03496647,5417149.03
+5658343.24,5417148.78133339 5658343.06701453,5417148.108
+5658342.603))
+</a>
+
+<b>
+POLYGON((5417148.36 5658440.81,5417149.233
+5658439.67,5417148.81 5658439.42,5417149.993 5658436.599,5417152.73
+5658427.07,5417153.67 5658427.66,5417153.67051161
+5658427.6586943,5417153.671 5658427.659,5417158.853
+5658414.442,5417159.41 5658413.02,5417160.773 5658404.194,5417161.5
+5658399.49,5417160.63 5658389.28,5417159.78 5658386.62,5417159.366239
+5658385.46469333,5417159.014 5658384.47,5417158.004
+5658382.304,5417157.051 5658380.297,5417155.814
+5658378.111,5417155.18955747 5658376.897,5417154.92
+5658376.37,5417152.59740379 5658373.52810095,5417150.853
+5658371.392,5417151.13020611 5658371.00790076,5417151.4
+5658370.64,5417147.11100598 5658365.59149663,5417146.599
+5658364.988,5417145.96673439 5658364.22950947,5417142.17
+5658359.67,5417139.98754716 5658358.05460369,5417137.589
+5658356.276,5417131.761 5658353.388,5417125.33011568
+5658351.15822058,5417125.22 5658351.12,5417121.88 5658349.67,5417121.66
+5658349.58,5417111.76 5658345.51,5417103.26 5658341.83,5417102.92
+5658342.65,5417088.52 5658337.31,5417088.83 5658336.46,5417064.68
+5658327.52,5417060.44 5658326.26,5417085.34 5658310.86,5417085.90750076
+5658311.15666987,5417091.265 5658313.961,5417093.266
+5658315.008,5417093.61266829 5658315.18946314,5417104.23
+5658320.75,5417105.81727304 5658321.63852784,5417106.071
+5658321.781,5417106.60319005 5658322.07975996,5417110.25
+5658324.13,5417112.87 5658325.6,5417116.29 5658327.52,5417121.76604303
+5658329.76778528,5417126.791 5658331.833,5417139.016
+5658338.009,5417148.108 5658342.603,5417148.78133333
+5658343.06701449,5417149.03 5658343.24,5417152.26878253
+5658346.03496893,5417155.161 5658348.532,5417155.7525011
+5658347.6811561,5417156.78066337 5658348.15640935,5417159.055
+5658349.214,5417158.818 5658350.085,5417158.82103105
+5658350.0862195,5417158.82 5658350.09,5417160.0541792
+5658350.58235872,5417160.702 5658350.843,5417162.642
+5658351.593,5417164.137 5658352.264,5417165.25343486
+5658353.89499119,5417166.04 5658355.05,5417168.52 5658357.99,5417170.76
+5658360.11,5417171.26171711 5658361.81094338,5417171.577
+5658362.886,5417175.235 5658370.602,5417176.428
+5658376.483,5417176.51210558 5658376.89535766,5417176.6
+5658377.34,5417176.73975924 5658378.01762057,5417176.927
+5658378.944,5417177.91415134 5658383.81113564,5417178.12
+5658384.83,5417178.14836289 5658384.91508866,5417177.11
+5658384.95,5417178.08 5658393.36,5417178.1 5658393.55,5417178.76
+5658405.39,5417177.875 5658408.488,5417176.696 5658412.61,5417175.23
+5658417.74,5417174.99 5658418.57,5417172.322
+5658417.957,5417172.32037372 5658417.96008538,5417172.32
+5658417.96,5417158.31 5658444.53,5417157.64951003
+5658446.06368011,5417157.128 5658447.265,5417157.22660867
+5658448.5786084,5417157.23981414 5658448.75748238,5417155.446
+5658453.413,5417154.99551072 5658455.84098918,5417154.59
+5658458.01,5417144.32092232 5658453.13043826,5417144.321
+5658453.127,5417146.41 5658446.6,5417148.36 5658440.81))
+</b>
+
+<test>
+<op name="isValid" arg1="A">
+true
+</op>
+</test>
+
+<test>
+<op name="isValid" arg1="B">
+true
+</op>
+</test>
+
+<test>
+<op name="intersection" arg1="A" arg2="B"> GEOMETRYCOLLECTION EMPTY </op>
+</test>
+
+</case>
+
+
+</run>
\ No newline at end of file
Added: packages/jts/branches/upstream/current/testxml/robust/TestRobustOverlayFixed.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/robust/TestRobustOverlayFixed.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/robust/TestRobustOverlayFixed.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,18 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>AA</desc>
+ <a>
+POLYGON ((545 317, 617 379, 581 321, 545 317))
+ </a>
+ <b>
+POLYGON ((484 290, 558 359, 543 309, 484 290))
+
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B"> POINT (545 317) </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/robust/TestRobustOverlayFloat.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/robust/TestRobustOverlayFloat.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/robust/TestRobustOverlayFloat.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,104 @@
+<run>
+ <precisionModel type="FLOATING" />
+<case>
+ <desc>AA - OLD robustness failure (works with snapping)</desc>
+ <a>
+POLYGON ((301949.68 2767249.16, 301936.52 2767241.28, 301938.87
+2767237.43, 301952.47 2767245.59, 301950.74 2767247.81, 301949.68
+2767249.16))
+ </a>
+ <b>
+POLYGON ((302041.321 2767264.675, 301938.823 2767237.507, 301941.21 2767233.59, 301943.821 2767229.304,
+302048.886 2767243.046, 302041.321 2767264.675))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POLYGON ((301939.1370850084 2767237.5902510053, 301938.87 2767237.43, 301938.823 2767237.507, 301939.1370850084 2767237.5902510053))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - OLD robustness failure (works with snapping)</desc>
+ <a>
+POLYGON ((301936.52 2767241.28, 301933.22 2767239.3, 301934.9
+2767236.51, 301935.54 2767235.44, 301938.87 2767237.43, 301936.52
+2767241.28))
+ </a>
+ <b>
+POLYGON ((302041.321 2767264.675, 301938.823 2767237.507, 301941.21 2767233.59, 301943.821 2767229.304,
+302048.886 2767243.046, 302041.321 2767264.675))
+</b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POLYGON ((301938.823 2767237.507, 301938.87 2767237.43, 301938.86994385667 2767237.4299664493, 301938.823 2767237.507))
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - OLD robustness failure (works with snapping)</desc>
+ <a>
+POLYGON ((464664.782646596 5362148.87380619, 464664.713299 5362148.758128, 464686.806220838 5362136.92416521,
+464713.650216607 5362122.5453135, 464711.113332785 5362117.30158834, 464707.408813375 5362110.21553566,
+464703.323866879 5362103.23305736, 464698.945488413 5362096.31213576, 464694.461274991 5362089.42505804,
+464625.876674576 5361951.92914952, 464622.430583893 5361944.69388208, 464535.3572 5361970.739,
+464648.194399372 5362157.89548451, 464664.782646596 5362148.87380619)) </a>
+ <b>
+POLYGON ((464769.977147523 5362187.88829332, 464765.146147008 5362180.84587461, 464754.387021019 5362169.93629911,
+464747.786455245 5362160.11104076, 464734.810564627 5362148.45253107, 464725.386626381 5362135.71065214,
+464712.646269 5362123.083073, 464727.794520848 5362149.37983229, 464738.165719397 5362165.72994593,
+464746.257208116 5362179.45514151, 464752.378040379 5362191.80978275, 464769.977147523 5362187.88829332))
+</b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POINT (464712.646269 5362123.083073)
+ </op>
+</test>
+</case>
+
+<case>
+ <desc>AA - OLD robustness failure (works with snapping)</desc>
+ <a>
+POLYGON ((698400.5682737827 2388494.3828697307, 698402.3209180075
+2388497.0819257903, 698415.3598714538 2388498.764371397,
+698413.5003455497 2388495.90071853, 698400.5682737827
+2388494.3828697307))
+ </a>
+ <b>
+POLYGON ((698231.847335025 2388474.57994264, 698440.416211779
+2388499.05985776, 698432.582638943 2388300.28294705, 698386.666515791
+2388303.40346027, 698328.29462841 2388312.88889197, 698231.847335025
+2388474.57994264))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ LINESTRING (698413.5003455497 2388495.90071853, 698400.5682737827 2388494.3828697307)
+ </op>
+</test>
+</case>
+
+
+<case>
+ <desc>AA - OLD robustness failure (works with snapping)</desc>
+ <a>
+POLYGON ((698265.5760207245 2388415.007869463, 698266.5171698363
+2388416.456984281, 698272.2367250263 2388406.868318228,
+698271.2748419731 2388405.3872787533, 698265.5760207245
+2388415.007869463))
+ </a>
+ <b>
+POLYGON ((698230.86813842 2388473.60074604, 698104.551776442
+2388363.93072634, 698321.933422637 2388319.86687914, 698230.86813842
+2388473.60074604))
+ </b>
+<test>
+ <op name="intersection" arg1="A" arg2="B">
+ POLYGON ((698265.5760207245 2388415.007869463, 698265.5760207246 2388415.007869463, 698271.2748419731 2388405.3872787533, 698265.5760207245 2388415.007869463))
+ </op>
+</test>
+</case>
+
+
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/robust/TestRobustRelate.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/robust/TestRobustRelate.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/robust/TestRobustRelate.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,19 @@
+<run>
+ <precisionModel scale="1.0" offsetx="0.0" offsety="0.0"/>
+
+<case>
+ <desc>PP - Point is not on line. Non-robust algorithms fail by erroneously reporting intersects=true.</desc>
+ <a>
+ LINESTRING(-123456789 -40, 381039468754763 123456789)
+ </a>
+ <b>
+ POINT(0 0)
+ </b>
+<test>
+ <op name="intersects" arg1="A" arg2="B">
+ false
+ </op>
+</test>
+</case>
+
+</run>
Added: packages/jts/branches/upstream/current/testxml/stmlf/stmlf-cases-20061018_int.xml
===================================================================
--- packages/jts/branches/upstream/current/testxml/stmlf/stmlf-cases-20061018_int.xml (rev 0)
+++ packages/jts/branches/upstream/current/testxml/stmlf/stmlf-cases-20061018_int.xml 2009-09-22 12:40:02 UTC (rev 2489)
@@ -0,0 +1,44830 @@
+ <!--
+ The test cases have been taken from the robustness improvement project
+ funded by the Bavarian State Ministry of Agriculture and Forestry
+ (StMLF) and the State Survey of Bavaria (LVG). Written permission
+ to use the data for tests has been given by email on the 22 Nov 2006.
+ -->
+ <!--
+ These tests do not have valid result values provided.
+ To avoid reporting failures,
+ they should be run with -geomop com.vividsolutions.jtstest.testrunner.geomop.OverlayValidatedGeometryOperation
+ -->
+<run>
+ <desc>Overlay Robustness cases from StMLF (all handled by snapping)</desc>
+ <precisionModel type="FLOATING"/>
+
+<case><desc>320229 - 5195510
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1524 </desc>
+<a>
+0106000000010000000103000000020000001100000014AE47B1DA5D50413D0AD7C3D51B554148E17A64CF5D50410AD7A3C0CD1B55413D0AD753CD5D504133333343D01B5541AE47E11AC55D5041713D0A77CA1B5541D7A3703DBE5D50417B14AE07D21B5541BC3181A1BC5D5041C54031E9D01B5541F98B4C65BC5D50419B0609BBD01B55419953D853BC5D5041B52A36ABD01B554161DE7A71B75D504135703503D71B5541713D0A77BF5D5041CDCCCCFCDB1B5541EC51B8AEC35D504185EB5188DE1B5541333333F3CB5D5041D7A3703DE31B5541EC51B87ECD5D5041D7A3700DE41B554185EB5158D05D504152B81E95E51B5541713D0A37D15D5041AE47E11AE61B55413D0AD703D85D504114AE4761DA1B554114AE47B1DA5D50413D0AD7C3D51B554105000000A4703DEACC5D504114AE47E1DC1B554185EB51C8CD5D5041333333D3DB1B5541666666A6CE5D504114AE4781DC1B554185EB51C8CD5D5041F6285C8FDD1B5541A4703DEACC5D504114AE47E1DC1B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000295C8F02BA5D5041AE47E1FAD41B55411F85EB91BA5D50410AD7A350D41B5541D7A370FDBC5D50411F85EB41D11B55418FC2F508BD5D504114AE4731D11B55419A999979BC5D5041D7A370CDD01B55410AD7A390BB5D5041A4703DFACF1B55417B14AEB7B95D5041E17A144ECE1B5541AE47E1BAB75D50411F85EB81CC1B5541EC51B87EB05D504114AE4771C61B55411F85EBB1AF5D5041666666A6C51B5541666666F6AB5D50417B14AEE7C91B55413D0AD783AB5D5041F6285C6FCA1B5541295C8F02BA5D5041AE47E1FAD41B5541
+</b>
+
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+
+</case>
+
+
+ <case><desc>1990453 - 250887
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1434 </desc>
+<a>
+010600000001000000010300000001000000610000008FC2F5D8D4AC504185EB51782AD8544152B81EB5D7AC504185EB51882CD85441D7A3705DDBAC5041333333432ED854419A999939DEAC50410AD7A3102DD8544148E17A14E3AC5041333333332CD85441E17A14CEE6AC50411F85EB312ED8544152B81E45E7AC5041EC51B83E35D85441D7A370FDEDAC5041D7A3703D38D8544152B81E75EDAC50419A9999193BD854417B14AE97ECAC5041AE47E13A3CD85441F6285CEFE7AC5041713D0AE739D854418FC2F568E4AC5041EC51B86E3BD85441D7A370ADE4AC5041713D0A073DD85441EC51B8BEE3AC5041000000A03ED85441EC51B8BEE3AC504152B81E1542D854410AD7A3D0E2AC5041295C8F0245D85441295C8FD2DFAC5041000000D043D854417B14AE27DFAC5041D7A370AD44D8544148E17AF4DFAC5041CDCCCCBC47D854417B14AE17DEAC50410000000049D85441EC51B85ED9AC504152B81E4548D85441295C8F72D4AC504185EB516846D85441F6285C0FCFAC5041295C8F0245D8544133333343CEAC5041AE47E15A40D85441EC51B8FECDAC504152B81ED53AD8544148E17A84D2AC5041C3F5280C35D85441B81E850BD5AC5041713D0A9730D85441C3F5281CD6AC5041CDCCCCDC2DD85441C3F5280CD4AC504152B81E452BD8544114AE4741D1AC50413D0AD72329D85441D7A370EDCEAC5041C3F5288C26D854417B14AE87CDAC50413D0AD7F323D854419A999999CCAC504148E17AD41ED85441E17A140ECBAC504152B81E3518D85441CDCCCCECC8AC5041000000C021D85441A4703D4AC8AC5041000000F025D8544100000090C7AC504148E17A243ED854418FC2F568C7AC50415C8FC2E544D85441CDCCCC2CC6AC5041CDCCCCDC44D85441CDCCCCFCC5AC50410AD7A3E04ED85441666666F6C5AC50417B14AE2751D854419A999949D0AC504148E17AB459D8544152B81EC5D0AC50413D0AD7A35BD8544185EB5168D2AC5041C3F528DC5ED8544152B81E55D4AC5041333333635ED85441713D0A47D5AC50410AD7A36067D85441F6285C8FD5AC504148E17A146AD85441EC51B84ED6AC50413333333371D854410AD7A3E0D9AC50411F85EBE177D8544148E17AB4DCAC5041B81E851B7DD85441EC51B88EDEAC5041E17A148E7AD85441D7A370ADE4AC5041F6285C8F77D8544114AE47E1E2AC504114AE479174D85441713D0A07DDAC5041713D0AC770D85441295C8FB2DBAC504114AE47516DD85441333333D3DDAC5041B81E85EB6BD85441EC51B8AEE1AC5041713D0AB76ED8544185EB5158E4AC5041666666866AD85441EC51B8CEE5AC50417B14AE9769D85441EC51B8FEEAAC5041E17A140E6CD8544133333353EDAC5041B81E85CB6CD8544148E17A84F0AC5041A4703DEA6BD854413D0AD763F5AC50410AD7A3806AD85441D7A3709DFEAC504152B81E356AD85441E17A14DE05AD50411F85EB0163D85441713D0A970AAD504152B81E5566D8544114AE47510DAD5041295C8F0262D8544185EB51E810AD504185EB516863D85441295C8FA213AD50413D0AD73365D854411F85EBA112AD504185EB51B869D85441AE47E16A1FAD5041B81E85EB6AD85441333333C322AD50418FC2F5C86AD8544114AE47B129AD5041C3F528DC6BD85441A4703D8A2EAD5041666666D66CD85441713D0AE730AD5041A4703D6A6DD85441E17A149E32AD504152B81ED56DD8544114AE47C138AD5041AE47E1AA6ED85441B81E858B3DAD504152B81EB56FD85441713D0AC740AD504152B81E5570D854410AD7A38049AD50411F85EB7171D854413D0AD7F34BAD50419A9999B962D854410000006040AD5041F6285C3F60D854419A99997921AD5041A4703DAA59D8544114AE479103AD5041666666E653D85441B81E85EB03AD50410AD7A36052D85441C3F5283C08AD50410AD7A3E042D85441EC51B81EF8AC5041A4703D6A38D85441295C8FE2E2AC5041AE47E14A2AD8544133333363E1AC5041E17A141E19D85441EC51B80EE0AC5041C3F5289C17D8544148E17A24CCAC5041713D0A5713D85441E17A148ECBAC50419A9999F915D8544166666676CDAC50415C8FC2D51CD85441E17A14EECDAC504185EB511820D85441F6285C0FCFAC50415C8FC21524D854417B14AEA7D1AC5041F6285CCF27D854418FC2F5D8D4AC504185EB51782AD85441
+</a>
+
+<b>
+010600000001000000010300000003000000EE00000052B81E55D4AC5041333333635ED85441713D0A47D5AC50410AD7A36067D85441EC51B8BED8AC504148E17AF46FD85441F00EFA22D8AC5041F886276A70D85441C3A4701DD8AC5041A8B81E6570D8544141295C8FD5AC504102E47A146AD85441A263039BD5AC50411E637A836AD85441A7FF340AD6AC50418EB29BA66ED85441ADA4F63CD6AC5041983F118A70D854410C52B84ED6AC50416933333371D85441BC13605AD6AC50418857044971D85441B83EEC91D6AC50416058FEB071D8544110076A9CD6AC504158B9A1C471D8544177A9ACE0D9AC50417FD2FBE177D85441205D0F67DAAC50419F5651DA78D85441A8F0A0FADAAC50412F5C03EB79D854416C30602FDCAC504118BE8D257CD85441B5B4C740DCAC504188B5BE027CD85441775E9188DCAC5041718F464F7BD854414D075BD0DCAC50410EA7A5D17AD85441EE453206DDAC50412DEB1F307AD85441F958EE5FDDAC50416A2E9A8E79D854415C544B37DEAC50416A2E9A8E79D85441CB4FA80EDFAC50410A6D71C479D854416CA13B9EDFAC5041D5027FB279D85441D77520C2DFAC5041FF59B56A79D854412E4B05E6DFAC504129B1EB2279D85441395EC13FE0AC5041C6C84AA578D854411B1A47E1E0AC5041F01F815D78D854411341BF94E1AC5041BBB58E4B78D854411F547BEEE1AC50411A77B71578D854418A286012E2AC5041EDE54C5077D854418A286012E2AC5041173D830877D85441E4951809E2AC50410DED6FA276D85441CF13AE67E0AC504113D6A32076D85441F0EB5198DEAC50411AEB515875D8544139C2F508DDAC50411A713DAA74D854413D3E0A07DCAC50413D0AD7F373D8544197DF4C86D8AC50419B3E77C470D854417216590ED9AC50412ACBEB4470D8544141295C7FDCAC504161A3705D73D85441F639A5D5DCAC50410807D89673D8544171938DE0DCAC5041FB9BC6ED72D8544172465EF6DCAC50414D09B1BC72D854413B3E319EDCAC50410D4FD26271D854418B43C79EDBAC50417769243970D85441F2570E9DDBAC504173094D8F6FD854417FD8B5F5DAAC504139573D696DD85441DCFDE057DBAC5041740CE7A46CD854410156033CDCAC5041FAA18A826CD85441F3638499DCAC5041ACC1A2FF6BD8544157BBA08CDDAC50414D70C18A6BD85441A71A035FDEAC50416A6035CC6BD85441BD9DADCBDFAC5041C5BF979E6CD8544127FB043DE1AC50415C7A2C266DD8544170E1273EE2AC50419EDB99596DD85441E31DFDABE2AC50414A6D18536CD85441F9226D29E3AC5041064556996AD8544130E01D3AE4AC5041C53A769E69D854412917723AE5AC5041AF35062169D85441C9F94DADE6AC5041542EBD7D69D8544109515D92E7AC5041614C9F3C6AD85441F4640661E8AC5041F091E4686AD85441CD74921FE8AC50412B6E9CCE69D854416729590AE8AC5041D650518868D8544156137E20E9AC5041610D446767D85441F271D6A8E9AC5041F9E7180567D85441B31B8526EAAC5041B206DAC166D8544119F21B69EBAC50414EBB33CB66D854418FC2772DECAC504114DF7B6567D8544174517E3BECAC50413D4E6AF667D854419C41F27CECAC50410372B29068D854412908FD00EEAC50412956B0D567D8544172EE1F02EFAC5041B98B8F8F67D854417AB48607F0AC504161C0147D67D8544190B9F684F0AC5041A217246268D854417D8539DCF0AC5041537BEC6769D854410E97627AF1AC50412D1372166AD85441E6F7FB53F2AC50415DABDF636BD85441230F88DAF4AC504147D671A86AD85441EEEC4857F4AC504159D74FE169D854418BA1A260F4AC5041A7ABC16769D85441C8084B12F5AC50413E5AE0F268D85441A61E124FF5AC50415F4419B668D854415244654AF5AC50414ACDE44568D85441E87F7F82F5AC5041CD8349B067D854417F3A140AF6AC5041AB8D9AF066D854411A8C0FDAF8AC50411F460ABC65D85441E6289745F9AC5041A2FC6E2665D8544123903FF7F9AC5041541C87A364D8544129967A75FAAC5041D547FBC162D85441A6DF150BFBAC5041E8333FE661D85441817A9215FCAC5041E0AE891861D85441FEC32DABFCAC50413C757A4160D854412C2DE1BDFCAC5041E59CD89D5FD8544139AC5B0DFDAC50416FCC7CD95ED854415429CBFBFDAC50417B3F812C5ED8544156B4BB47FFAC50410B7560E65DD85441EE6E50CFFFAC50413265D4275ED85441FAEDCA1E00AD504112FA15B45ED8544117DE3E6000AD5041F10FDDF05ED85441AE98D3E700AD5041EC15186F5FD85441594B229001AD5041FA130D0E60D85441D694BD2502AD5041775DA8A360D85441F70BF29502AD504157F2E92F61D854412E79D5C503AD5041BAD601D062D85441B2EF0EF804AD5041D7C016AE63D85441E17A14DE05AD50411F85EB0163D854412D3DBB6406AD5041B3BCE13D63D85441A98A67D107AD50417989DA9764D85441A61385C408AD5041594FD03665D854418C67B19409AD50411515180966D85441EBEC1C6F0BAD5041D49C7CA366D8544173BCE3130DAD5041F74D691165D854415D82D9B20DAD50415585A52764D85441E551A0570FAD5041D4F6EB9E62D85441911A644110AD50417936929562D85441A9EFC67B12AD5041F7FA200F63D85441CCF3FBEB12AD504115BE486363D85441BA831C9A14AD5041DD0124CA63D8544196D22F2C16AD50412C93AB9D65D85441EE1BA72817AD50418A1D30B666D85441BAD6649C16AD504108E2BE2F67D85441BAD6649C16AD5041D1259A9667D85441DDDA990C17AD5041FF29CF0668D854413524110918AD50415AEA281068D8544152E7385D18AD50413D2701BC67D85441A4EFA23D19AD50415AEA281068D85441FFAFFC4619AD50411CEDF65A68D85441146F2C081AAD504135A1810769D85441BBC405781BAD5041FF29CF0668D854418408E1DE1BAD50412CE6F39F67D854415D8DC9611CAD50413D2701BC67D854419E5426261DAD5041DFEFC4A568D8544139E6E5B11DAD5041C52221C26AD85441AE47E16A1FAD5041B81E85EB6AD85441886D64C71FAD5041424CC9E76AD85441886D64C71FAD5041F3FAFCD069D854419FEF7EFF1FAD504102F4F91569D854411EB40D7920AD5041296F119368D85441FD79031821AD5041C86DAA6D68D85441DD3FF9B621AD50417DEE5D8068D85441B083D41D22AD50411976144E69D8544179C7AF8422AD504174366E5769D85441B34DFF2C23AD5041FCB2ECF968D85441D751349D23AD5041A733A00C69D854415516C31624AD5041D537D57C69D854410E61A13825AD504181B8888F69D8544135E7A8ED25AD50417B4908E568D8544142058BAC26AD5041A217246268D85441CA7C557627AD504174F4D12567D85441B9667A8C28AD504192288FCE66D85441F28B1AC029AD5041F15FA4F766D85441005645CF2AAD5041F15FA4F766D8544113196D232BAD5041BE62724267D85441032070DE2BAD50410E23CC4B67D854418B9312742CAD5041D4891BB767D854416D4F98152DAD5041D7B0936A68D854411CC8A3582EAD50416F0327FA68D854412002D8652FAD5041D7B0936A68D85441C367274F30AD504192F9B0F166D854412763842631AD50419BE5F49766D85441955EE1FD31AD5041FDCD951567D85441359DB83332AD5041CC9DD71068D85441081F0AC831AD50411055BA8969D854419237694A31AD50411C6876E369D85441F1F8911431AD50418A63D3BA6AD854413276408031AD5041CBE081266BD854419131B11D32AD5041CE68F3656BD85441A5ED670333AD5041F25432416BD8544101829C9F33AD504143E87FEE6AD85441A7337FFB33AD50411FFC40136BD85441727B136034AD5041600C9D026BD8544113BAEA9534AD5041F971ECEB6BD85441E962B4DD34AD50410485A8456CD854415F4A555B35AD50412EDCDEFD6BD85441C232F6D835AD50416446D10F6CD85441381A975636AD50415C5A8D696CD85441A3EE7B7A36AD50416A5D975B6ED8544114AE47C138AD5041AE47E1AA6ED85441B81E858B3DAD504152B81EB56FD854413C983D0C40AD504150A7003170D8544179DBB76A3FAD5041EDA1DAA76ED854419B5966D63FAD5041D67B62F46DD85441E0FD8CF540AD5041A8EAF72E6DD85441B6B9129741AD504123C922A46BD85441C9A5563D41AD50417F5017616AD854416FFED7F141AD50415747A9EA67D854411184B16943AD50413011107466D85441B6FCBCAC44AD5041C9EE3AE964D8544117535F2F47AD50413A73952463D85441EBDDE5FA48AD5041F594C31662D8544178B6A48E49AD50417D9C842B62D854410000006040AD5041F6285C3F60D854410D16549C3EAD50417C6C24DF5FD85441AD542BD23EAD504166B033FC60D8544178EA38C03EAD50415FD7ABAF61D85441D3712D7D3DAD504179249C1663D85441300CDE933CAD50416638587063D85441CC1081BC3BAD5041AE8E8E2863D854418B93D2503BAD5041023DFB9862D85441E71AC70D3AAD5041F7293F3F62D85441AE895C4839AD5041358075F761D854414CA1BBCA38AD5041F402C78B61D854410A11510538AD50411E5AFD4361D85441A728B08737AD5041FBDB4ED860D8544107EAD85137AD50410F0D0DDD5FD85441DD92A29937AD5041EC8E5E715FD8544107EAD85137AD50414C50873B5FD8544166AB011C37AD50410BD3D8CF5ED8544198DBBF2036AD504176A7BDF35ED85441B61F3A7F35AD50414F8ABB4860D85441E962B4DD34AD5041C6715CC660D854416F41DF5233AD5041F0C8927E60D854416B1A679F32AD50414477FFEE5FD85441359DB83332AD50414C50873B5FD85441BC8E9F0231AD504108AC601C5ED8544164A6FE8430AD504108AC601C5ED854418BD6BC892FAD50417E93019A5ED8544114EF1B0C2FAD50417E93019A5ED85441D3716DA02EAD504113BF1C765ED854410D8E6F4B2DAD5041E17BA2175FD85441F667F7972CAD5041B3FDF3AB5ED85441C1FD04862CAD50413D16532E5ED8544143F8615D2DAD5041A4B003455DD85441099483BE2EAD50412CE1DE7D5CD854418232347621AD5041E254CEAA59D8544150D7C0491BAD5041C996E77958D854417ECAD0461BAD50414E68A98358D854417D4DE48011AD50412D0E429A56D85441CB458D8111AD504193F6CA9656D85441E4B0479103AD5041F26666E653D85441AEB0479103AD5041E76666E653D854415CB0479103AD5041D56666E653D854414CB0479103AD5041D26666E653D8544105C3F568EDAC50411D90C27555D854418FC2F5F8DEAC50417B14AE075CD8544152B81E55D4AC5041333333635ED85441100000000AAC3328D7AC5041FFEA6FDF66D854412BE01A8AD6AC504184BF7CE465D854418BA14354D6AC5041EB592DFB64D85441F6752878D6AC50414A1B56C564D85441B81FF2BFD6AC504115B163B364D854416BD23110D9AC50418B98043165D854412671B506DBAC50418FD2383E66D85441F42D3BA8DBAC5041FDCD951567D854416A15DC25DCAC5041A246A15868D8544135ABE913DCAC5041DAD70B1E69D8544189595684DBAC50411C6876E369D85441E1B9D28DD9AC5041B8F43D806BD85441A92868C8D8AC50414D20595C6BD85441A5EE33BBD7AC5041DE11402B6AD854412E07933DD7AC50414E9834E868D854410AAC3328D7AC5041FFEA6FDF66D854411A000000AE5463CCFDAC5041C0CD05F05BD8544179EA70BAFDAC5041DE11804E5BD8544179EA70BAFDAC504110423E535AD85441192948F0FDAC50414E98740B5AD85441192948F0FDAC50413772FC5759D85441AE5463CCFDAC50414A5E40FE58D8544144933A02FEAC50419E0CAD6E58D854418510E96DFEAC504127250CF157D8544150A6F65BFEAC5041C53C6B7357D85441BB7ADB7FFEAC5041B816F3BF56D8544188376121FFAC5041F66C297856D854416AF3E6C2FFAC5041C102376656D85441C2DB874000AD5041B816F3BF56D85441C50200F400AD5041C53C6B7357D854413BEAA07101AD50415D8FFE0258D85441A6BE859501AD5041DF895BDA58D8544111936AB901AD5041DAD74B415AD85441DC2878A701AD5041F1FDC3F45AD854417154938301AD5041DE11804E5BD854413BEAA07101AD50418A6313DE5BD854413BEAA07101AD5041014BB45B5CD854419BABC93B01AD50415820997F5CD85441A3970DE200AD504122B6A66D5CD854413489F4B0FFAC50417F5057845BD85441BB7ADB7FFEAC50417F5057845BD85441AE5463CCFDAC5041C0CD05F05BD85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>1990453 - 325673
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1434 </desc>
+<a>
+010600000001000000010300000001000000610000008FC2F5D8D4AC504185EB51782AD8544152B81EB5D7AC504185EB51882CD85441D7A3705DDBAC5041333333432ED854419A999939DEAC50410AD7A3102DD8544148E17A14E3AC5041333333332CD85441E17A14CEE6AC50411F85EB312ED8544152B81E45E7AC5041EC51B83E35D85441D7A370FDEDAC5041D7A3703D38D8544152B81E75EDAC50419A9999193BD854417B14AE97ECAC5041AE47E13A3CD85441F6285CEFE7AC5041713D0AE739D854418FC2F568E4AC5041EC51B86E3BD85441D7A370ADE4AC5041713D0A073DD85441EC51B8BEE3AC5041000000A03ED85441EC51B8BEE3AC504152B81E1542D854410AD7A3D0E2AC5041295C8F0245D85441295C8FD2DFAC5041000000D043D854417B14AE27DFAC5041D7A370AD44D8544148E17AF4DFAC5041CDCCCCBC47D854417B14AE17DEAC50410000000049D85441EC51B85ED9AC504152B81E4548D85441295C8F72D4AC504185EB516846D85441F6285C0FCFAC5041295C8F0245D8544133333343CEAC5041AE47E15A40D85441EC51B8FECDAC504152B81ED53AD8544148E17A84D2AC5041C3F5280C35D85441B81E850BD5AC5041713D0A9730D85441C3F5281CD6AC5041CDCCCCDC2DD85441C3F5280CD4AC504152B81E452BD8544114AE4741D1AC50413D0AD72329D85441D7A370EDCEAC5041C3F5288C26D854417B14AE87CDAC50413D0AD7F323D854419A999999CCAC504148E17AD41ED85441E17A140ECBAC504152B81E3518D85441CDCCCCECC8AC5041000000C021D85441A4703D4AC8AC5041000000F025D8544100000090C7AC504148E17A243ED854418FC2F568C7AC50415C8FC2E544D85441CDCCCC2CC6AC5041CDCCCCDC44D85441CDCCCCFCC5AC50410AD7A3E04ED85441666666F6C5AC50417B14AE2751D854419A999949D0AC504148E17AB459D8544152B81EC5D0AC50413D0AD7A35BD8544185EB5168D2AC5041C3F528DC5ED8544152B81E55D4AC5041333333635ED85441713D0A47D5AC50410AD7A36067D85441F6285C8FD5AC504148E17A146AD85441EC51B84ED6AC50413333333371D854410AD7A3E0D9AC50411F85EBE177D8544148E17AB4DCAC5041B81E851B7DD85441EC51B88EDEAC5041E17A148E7AD85441D7A370ADE4AC5041F6285C8F77D8544114AE47E1E2AC504114AE479174D85441713D0A07DDAC5041713D0AC770D85441295C8FB2DBAC504114AE47516DD85441333333D3DDAC5041B81E85EB6BD85441EC51B8AEE1AC5041713D0AB76ED8544185EB5158E4AC5041666666866AD85441EC51B8CEE5AC50417B14AE9769D85441EC51B8FEEAAC5041E17A140E6CD8544133333353EDAC5041B81E85CB6CD8544148E17A84F0AC5041A4703DEA6BD854413D0AD763F5AC50410AD7A3806AD85441D7A3709DFEAC504152B81E356AD85441E17A14DE05AD50411F85EB0163D85441713D0A970AAD504152B81E5566D8544114AE47510DAD5041295C8F0262D8544185EB51E810AD504185EB516863D85441295C8FA213AD50413D0AD73365D854411F85EBA112AD504185EB51B869D85441AE47E16A1FAD5041B81E85EB6AD85441333333C322AD50418FC2F5C86AD8544114AE47B129AD5041C3F528DC6BD85441A4703D8A2EAD5041666666D66CD85441713D0AE730AD5041A4703D6A6DD85441E17A149E32AD504152B81ED56DD8544114AE47C138AD5041AE47E1AA6ED85441B81E858B3DAD504152B81EB56FD85441713D0AC740AD504152B81E5570D854410AD7A38049AD50411F85EB7171D854413D0AD7F34BAD50419A9999B962D854410000006040AD5041F6285C3F60D854419A99997921AD5041A4703DAA59D8544114AE479103AD5041666666E653D85441B81E85EB03AD50410AD7A36052D85441C3F5283C08AD50410AD7A3E042D85441EC51B81EF8AC5041A4703D6A38D85441295C8FE2E2AC5041AE47E14A2AD8544133333363E1AC5041E17A141E19D85441EC51B80EE0AC5041C3F5289C17D8544148E17A24CCAC5041713D0A5713D85441E17A148ECBAC50419A9999F915D8544166666676CDAC50415C8FC2D51CD85441E17A14EECDAC504185EB511820D85441F6285C0FCFAC50415C8FC21524D854417B14AEA7D1AC5041F6285CCF27D854418FC2F5D8D4AC504185EB51782AD85441
+</a>
+
+<b>
+010600000001000000010300000003000000EE00000052B81E55D4AC5041333333635ED85441713D0A47D5AC50410AD7A36067D85441EC51B8BED8AC504148E17AF46FD85441F00EFA22D8AC5041F886276A70D85441C3A4701DD8AC5041A8B81E6570D8544141295C8FD5AC504102E47A146AD85441A263039BD5AC50411E637A836AD85441A7FF340AD6AC50418EB29BA66ED85441ADA4F63CD6AC5041983F118A70D854410C52B84ED6AC50416933333371D85441BC13605AD6AC50418857044971D85441B83EEC91D6AC50416058FEB071D8544110076A9CD6AC504158B9A1C471D8544177A9ACE0D9AC50417FD2FBE177D85441205D0F67DAAC50419F5651DA78D85441A8F0A0FADAAC50412F5C03EB79D854416C30602FDCAC504118BE8D257CD85441B5B4C740DCAC504188B5BE027CD85441775E9188DCAC5041718F464F7BD854414D075BD0DCAC50410EA7A5D17AD85441EE453206DDAC50412DEB1F307AD85441F958EE5FDDAC50416A2E9A8E79D854415C544B37DEAC50416A2E9A8E79D85441CB4FA80EDFAC50410A6D71C479D854416CA13B9EDFAC5041D5027FB279D85441D77520C2DFAC5041FF59B56A79D854412E4B05E6DFAC504129B1EB2279D85441395EC13FE0AC5041C6C84AA578D854411B1A47E1E0AC5041F01F815D78D854411341BF94E1AC5041BBB58E4B78D854411F547BEEE1AC50411A77B71578D854418A286012E2AC5041EDE54C5077D854418A286012E2AC5041173D830877D85441E4951809E2AC50410DED6FA276D85441CF13AE67E0AC504113D6A32076D85441F0EB5198DEAC50411AEB515875D8544139C2F508DDAC50411A713DAA74D854413D3E0A07DCAC50413D0AD7F373D8544197DF4C86D8AC50419B3E77C470D854417216590ED9AC50412ACBEB4470D8544141295C7FDCAC504161A3705D73D85441F639A5D5DCAC50410807D89673D8544171938DE0DCAC5041FB9BC6ED72D8544172465EF6DCAC50414D09B1BC72D854413B3E319EDCAC50410D4FD26271D854418B43C79EDBAC50417769243970D85441F2570E9DDBAC504173094D8F6FD854417FD8B5F5DAAC504139573D696DD85441DCFDE057DBAC5041740CE7A46CD854410156033CDCAC5041FAA18A826CD85441F3638499DCAC5041ACC1A2FF6BD8544157BBA08CDDAC50414D70C18A6BD85441A71A035FDEAC50416A6035CC6BD85441BD9DADCBDFAC5041C5BF979E6CD8544127FB043DE1AC50415C7A2C266DD8544170E1273EE2AC50419EDB99596DD85441E31DFDABE2AC50414A6D18536CD85441F9226D29E3AC5041064556996AD8544130E01D3AE4AC5041C53A769E69D854412917723AE5AC5041AF35062169D85441C9F94DADE6AC5041542EBD7D69D8544109515D92E7AC5041614C9F3C6AD85441F4640661E8AC5041F091E4686AD85441CD74921FE8AC50412B6E9CCE69D854416729590AE8AC5041D650518868D8544156137E20E9AC5041610D446767D85441F271D6A8E9AC5041F9E7180567D85441B31B8526EAAC5041B206DAC166D8544119F21B69EBAC50414EBB33CB66D854418FC2772DECAC504114DF7B6567D8544174517E3BECAC50413D4E6AF667D854419C41F27CECAC50410372B29068D854412908FD00EEAC50412956B0D567D8544172EE1F02EFAC5041B98B8F8F67D854417AB48607F0AC504161C0147D67D8544190B9F684F0AC5041A217246268D854417D8539DCF0AC5041537BEC6769D854410E97627AF1AC50412D1372166AD85441E6F7FB53F2AC50415DABDF636BD85441230F88DAF4AC504147D671A86AD85441EEEC4857F4AC504159D74FE169D854418BA1A260F4AC5041A7ABC16769D85441C8084B12F5AC50413E5AE0F268D85441A61E124FF5AC50415F4419B668D854415244654AF5AC50414ACDE44568D85441E87F7F82F5AC5041CD8349B067D854417F3A140AF6AC5041AB8D9AF066D854411A8C0FDAF8AC50411F460ABC65D85441E6289745F9AC5041A2FC6E2665D8544123903FF7F9AC5041541C87A364D8544129967A75FAAC5041D547FBC162D85441A6DF150BFBAC5041E8333FE661D85441817A9215FCAC5041E0AE891861D85441FEC32DABFCAC50413C757A4160D854412C2DE1BDFCAC5041E59CD89D5FD8544139AC5B0DFDAC50416FCC7CD95ED854415429CBFBFDAC50417B3F812C5ED8544156B4BB47FFAC50410B7560E65DD85441EE6E50CFFFAC50413265D4275ED85441FAEDCA1E00AD504112FA15B45ED8544117DE3E6000AD5041F10FDDF05ED85441AE98D3E700AD5041EC15186F5FD85441594B229001AD5041FA130D0E60D85441D694BD2502AD5041775DA8A360D85441F70BF29502AD504157F2E92F61D854412E79D5C503AD5041BAD601D062D85441B2EF0EF804AD5041D7C016AE63D85441E17A14DE05AD50411F85EB0163D854412D3DBB6406AD5041B3BCE13D63D85441A98A67D107AD50417989DA9764D85441A61385C408AD5041594FD03665D854418C67B19409AD50411515180966D85441EBEC1C6F0BAD5041D49C7CA366D8544173BCE3130DAD5041F74D691165D854415D82D9B20DAD50415585A52764D85441E551A0570FAD5041D4F6EB9E62D85441911A644110AD50417936929562D85441A9EFC67B12AD5041F7FA200F63D85441CCF3FBEB12AD504115BE486363D85441BA831C9A14AD5041DD0124CA63D8544196D22F2C16AD50412C93AB9D65D85441EE1BA72817AD50418A1D30B666D85441BAD6649C16AD504108E2BE2F67D85441BAD6649C16AD5041D1259A9667D85441DDDA990C17AD5041FF29CF0668D854413524110918AD50415AEA281068D8544152E7385D18AD50413D2701BC67D85441A4EFA23D19AD50415AEA281068D85441FFAFFC4619AD50411CEDF65A68D85441146F2C081AAD504135A1810769D85441BBC405781BAD5041FF29CF0668D854418408E1DE1BAD50412CE6F39F67D854415D8DC9611CAD50413D2701BC67D854419E5426261DAD5041DFEFC4A568D8544139E6E5B11DAD5041C52221C26AD85441AE47E16A1FAD5041B81E85EB6AD85441886D64C71FAD5041424CC9E76AD85441886D64C71FAD5041F3FAFCD069D854419FEF7EFF1FAD504102F4F91569D854411EB40D7920AD5041296F119368D85441FD79031821AD5041C86DAA6D68D85441DD3FF9B621AD50417DEE5D8068D85441B083D41D22AD50411976144E69D8544179C7AF8422AD504174366E5769D85441B34DFF2C23AD5041FCB2ECF968D85441D751349D23AD5041A733A00C69D854415516C31624AD5041D537D57C69D854410E61A13825AD504181B8888F69D8544135E7A8ED25AD50417B4908E568D8544142058BAC26AD5041A217246268D85441CA7C557627AD504174F4D12567D85441B9667A8C28AD504192288FCE66D85441F28B1AC029AD5041F15FA4F766D85441005645CF2AAD5041F15FA4F766D8544113196D232BAD5041BE62724267D85441032070DE2BAD50410E23CC4B67D854418B9312742CAD5041D4891BB767D854416D4F98152DAD5041D7B0936A68D854411CC8A3582EAD50416F0327FA68D854412002D8652FAD5041D7B0936A68D85441C367274F30AD504192F9B0F166D854412763842631AD50419BE5F49766D85441955EE1FD31AD5041FDCD951567D85441359DB83332AD5041CC9DD71068D85441081F0AC831AD50411055BA8969D854419237694A31AD50411C6876E369D85441F1F8911431AD50418A63D3BA6AD854413276408031AD5041CBE081266BD854419131B11D32AD5041CE68F3656BD85441A5ED670333AD5041F25432416BD8544101829C9F33AD504143E87FEE6AD85441A7337FFB33AD50411FFC40136BD85441727B136034AD5041600C9D026BD8544113BAEA9534AD5041F971ECEB6BD85441E962B4DD34AD50410485A8456CD854415F4A555B35AD50412EDCDEFD6BD85441C232F6D835AD50416446D10F6CD85441381A975636AD50415C5A8D696CD85441A3EE7B7A36AD50416A5D975B6ED8544114AE47C138AD5041AE47E1AA6ED85441B81E858B3DAD504152B81EB56FD854413C983D0C40AD504150A7003170D8544179DBB76A3FAD5041EDA1DAA76ED854419B5966D63FAD5041D67B62F46DD85441E0FD8CF540AD5041A8EAF72E6DD85441B6B9129741AD504123C922A46BD85441C9A5563D41AD50417F5017616AD854416FFED7F141AD50415747A9EA67D854411184B16943AD50413011107466D85441B6FCBCAC44AD5041C9EE3AE964D8544117535F2F47AD50413A73952463D85441EBDDE5FA48AD5041F594C31662D8544178B6A48E49AD50417D9C842B62D854410000006040AD5041F6285C3F60D854410D16549C3EAD50417C6C24DF5FD85441AD542BD23EAD504166B033FC60D8544178EA38C03EAD50415FD7ABAF61D85441D3712D7D3DAD504179249C1663D85441300CDE933CAD50416638587063D85441CC1081BC3BAD5041AE8E8E2863D854418B93D2503BAD5041023DFB9862D85441E71AC70D3AAD5041F7293F3F62D85441AE895C4839AD5041358075F761D854414CA1BBCA38AD5041F402C78B61D854410A11510538AD50411E5AFD4361D85441A728B08737AD5041FBDB4ED860D8544107EAD85137AD50410F0D0DDD5FD85441DD92A29937AD5041EC8E5E715FD8544107EAD85137AD50414C50873B5FD8544166AB011C37AD50410BD3D8CF5ED8544198DBBF2036AD504176A7BDF35ED85441B61F3A7F35AD50414F8ABB4860D85441E962B4DD34AD5041C6715CC660D854416F41DF5233AD5041F0C8927E60D854416B1A679F32AD50414477FFEE5FD85441359DB83332AD50414C50873B5FD85441BC8E9F0231AD504108AC601C5ED8544164A6FE8430AD504108AC601C5ED854418BD6BC892FAD50417E93019A5ED8544114EF1B0C2FAD50417E93019A5ED85441D3716DA02EAD504113BF1C765ED854410D8E6F4B2DAD5041E17BA2175FD85441F667F7972CAD5041B3FDF3AB5ED85441C1FD04862CAD50413D16532E5ED8544143F8615D2DAD5041A4B003455DD85441099483BE2EAD50412CE1DE7D5CD854418232347621AD5041E254CEAA59D8544150D7C0491BAD5041C996E77958D854417ECAD0461BAD50414E68A98358D854417D4DE48011AD50412D0E429A56D85441CB458D8111AD504193F6CA9656D85441E4B0479103AD5041F26666E653D85441AEB0479103AD5041E76666E653D854415CB0479103AD5041D56666E653D854414CB0479103AD5041D26666E653D8544105C3F568EDAC50411D90C27555D854418FC2F5F8DEAC50417B14AE075CD8544152B81E55D4AC5041333333635ED85441100000000AAC3328D7AC5041FFEA6FDF66D854412BE01A8AD6AC504184BF7CE465D854418BA14354D6AC5041EB592DFB64D85441F6752878D6AC50414A1B56C564D85441B81FF2BFD6AC504115B163B364D854416BD23110D9AC50418B98043165D854412671B506DBAC50418FD2383E66D85441F42D3BA8DBAC5041FDCD951567D854416A15DC25DCAC5041A246A15868D8544135ABE913DCAC5041DAD70B1E69D8544189595684DBAC50411C6876E369D85441E1B9D28DD9AC5041B8F43D806BD85441A92868C8D8AC50414D20595C6BD85441A5EE33BBD7AC5041DE11402B6AD854412E07933DD7AC50414E9834E868D854410AAC3328D7AC5041FFEA6FDF66D854411A000000AE5463CCFDAC5041C0CD05F05BD8544179EA70BAFDAC5041DE11804E5BD8544179EA70BAFDAC504110423E535AD85441192948F0FDAC50414E98740B5AD85441192948F0FDAC50413772FC5759D85441AE5463CCFDAC50414A5E40FE58D8544144933A02FEAC50419E0CAD6E58D854418510E96DFEAC504127250CF157D8544150A6F65BFEAC5041C53C6B7357D85441BB7ADB7FFEAC5041B816F3BF56D8544188376121FFAC5041F66C297856D854416AF3E6C2FFAC5041C102376656D85441C2DB874000AD5041B816F3BF56D85441C50200F400AD5041C53C6B7357D854413BEAA07101AD50415D8FFE0258D85441A6BE859501AD5041DF895BDA58D8544111936AB901AD5041DAD74B415AD85441DC2878A701AD5041F1FDC3F45AD854417154938301AD5041DE11804E5BD854413BEAA07101AD50418A6313DE5BD854413BEAA07101AD5041014BB45B5CD854419BABC93B01AD50415820997F5CD85441A3970DE200AD504122B6A66D5CD854413489F4B0FFAC50417F5057845BD85441BB7ADB7FFEAC50417F5057845BD85441AE5463CCFDAC5041C0CD05F05BD85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>294032 - 1090895
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -183107 </desc>
+<a>
+0106000000010000000103000000010000001D000000B18256309C525141AB299999F96454414E0689379B5251416EF0290009655441247F5E80795251413FF862A7066554410AD7A3707852514114AE477116655441E17A14AE77525141F6285C6F206554411F85EBE17652514185EB51E82A65544152B81E8575525141F6285C2F3D655441713D0AD773525141000000F0516554410000005073525141B81E85DB5C655441AE47E15A03535141EC51B86E6B655441E17A142E03535141713D0A1769655441A4703D4A00535141295C8F7257655441D7A3701DFF5251413D0AD763546554419A999989FB5251415C8FC2954E6554413D0AD723FA5251417B14AEA74C655441A4703DFAF6525141EC51B88E456554417B14AE07F552514152B81EC53E655441EC51B80EF352514185EB5138396554413D0AD773EF525141333333833265544100000040ED525141666666862F655441C3F528BCEA525141E17A14BE2C65544148E17AE4E152514152B81EF52265544185EB5188DF525141E17A141E1F655441F6285CCFD85251411F85EB911365544166666656D55251413D0AD7530F655441295C8FA2D15251411F85EB610965544100000080CE5251418FC2F5D804655441EC51B88ECA525141A4703D0AFF645441B18256309C525141AB299999F9645441
+</a>
+
+<b>
+0106000000010000000103000000010000000C00000036254D2E9C52514161CBDEB9F9645441C11CB8998D525141C051EE0DF8645441B4E2C4458D525141784D76D9F7645441666666767A525141EC51B8FEF6645441277F5E80795251413DF862A70665544131CA9246795251415CE514030A6554411FEDC83F79525141101F0F680A655441629F153D7952514111113A900A6554411341E6F39A5251416595BD250D65544109E89EB59B525141C2ADFC2A0D6554414370A8FA9C525141D2A955B1F964544136254D2E9C52514161CBDEB9F9645441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>294032 - 3361131
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -183107 </desc>
+<a>
+0106000000010000000103000000010000001D000000B18256309C525141AB299999F96454414E0689379B5251416EF0290009655441247F5E80795251413FF862A7066554410AD7A3707852514114AE477116655441E17A14AE77525141F6285C6F206554411F85EBE17652514185EB51E82A65544152B81E8575525141F6285C2F3D655441713D0AD773525141000000F0516554410000005073525141B81E85DB5C655441AE47E15A03535141EC51B86E6B655441E17A142E03535141713D0A1769655441A4703D4A00535141295C8F7257655441D7A3701DFF5251413D0AD763546554419A999989FB5251415C8FC2954E6554413D0AD723FA5251417B14AEA74C655441A4703DFAF6525141EC51B88E456554417B14AE07F552514152B81EC53E655441EC51B80EF352514185EB5138396554413D0AD773EF525141333333833265544100000040ED525141666666862F655441C3F528BCEA525141E17A14BE2C65544148E17AE4E152514152B81EF52265544185EB5188DF525141E17A141E1F655441F6285CCFD85251411F85EB911365544166666656D55251413D0AD7530F655441295C8FA2D15251411F85EB610965544100000080CE5251418FC2F5D804655441EC51B88ECA525141A4703D0AFF645441B18256309C525141AB299999F9645441
+</a>
+
+<b>
+0106000000010000000103000000010000000C00000036254D2E9C52514161CBDEB9F9645441C11CB8998D525141C051EE0DF8645441B4E2C4458D525141784D76D9F7645441666666767A525141EC51B8FEF6645441277F5E80795251413DF862A70665544131CA9246795251415CE514030A6554411FEDC83F79525141101F0F680A655441629F153D7952514111113A900A6554411341E6F39A5251416595BD250D65544109E89EB59B525141C2ADFC2A0D6554414370A8FA9C525141D2A955B1F964544136254D2E9C52514161CBDEB9F9645441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>538912 - 248197
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -5022 </desc>
+<a>
+0106000000010000000103000000010000001D000000713D0A576E2051418FC2F5B81A435441CDCCCC8C70205141CDCCCC6C19435441A4703DDA76205141A4703DBA1543544148E17A04772051417B14AE971543544148E17AA4762051413D0AD7D31443544100000020732051410AD7A3800E4354411F85EBB1712051415C8FC2C50B435441713D0AE76E20514152B81E850C435441B81E85EB64205141B81E857BFC42544152B81E65652051415C8FC255F9425441C3F528DC64205141AE47E12AF74254418FC2F5F86420514185EB51A8EF425441EC51B82E5E2051419A9999A9F0425441CDCCCC1C5E205141D7A3708DF24254418FC2F5F85D20514185EB51A8F4425441EC51B88E5D205141666666D6FA42544152B81E355D205141A4703D0A004354411F85EBB15C205141C3F528AC07435441666666D65C2051419A99994909435441F6285C3F5E20514185EB51380C4354410AD7A3B05F205141666666D60E435441B81E856B612051415C8FC2451143544148E17A9462205141B81E85BB12435441E17A142E632051410AD7A35015435441D7A370BD63205141C3F5287C174354419A9999F96420514185EB51A819435441333333F3652051410AD7A3F01B435441CDCCCCFC66205141000000801F435441713D0A576E2051418FC2F5B81A435441
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000001F85EBB1712051415C8FC2C50B435441B26D6A7C6F2051418289225D0C435441713D0AE76E20514152B81E850C435441E531B95167205141A98A465600435441B81E85EB64205141B81E857BFC42544180AB061965205141DD85FB4DFB425441D8708623652051413C816908FB42544130574C4565205141E60A9F28FA425441D833BC6465205141175E4F58F9425441A920D44B652051416A624BEFF84254418D78453165205141364BB383F8425441D3B9E02965205141E705BF65F8425441A76E76EA63205141C497C9D1FA425441637F783562205141CCDA9E18FC42544151FE66066220514112637C3FFE425441A20F314B62205141F0AFD4B10043544123BB149267205141F431A3FC0C4354418632BD5C6B2051412151B05C1A435441B56B63B16A2051412250FF9E1C435441B56B63B16A2051412C91A0171D435441713D0A576E2051418FC2F5B81A435441CDCCCC8C70205141CDCCCC6C19435441A4703DDA76205141A4703DBA1543544148E17A04772051417B14AE971543544148E17AA4762051413D0AD7D31443544100000020732051410AD7A3800E4354411F85EBB1712051415C8FC2C50B435441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>538912 - 382657
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -5022 </desc>
+<a>
+0106000000010000000103000000010000001D000000713D0A576E2051418FC2F5B81A435441CDCCCC8C70205141CDCCCC6C19435441A4703DDA76205141A4703DBA1543544148E17A04772051417B14AE971543544148E17AA4762051413D0AD7D31443544100000020732051410AD7A3800E4354411F85EBB1712051415C8FC2C50B435441713D0AE76E20514152B81E850C435441B81E85EB64205141B81E857BFC42544152B81E65652051415C8FC255F9425441C3F528DC64205141AE47E12AF74254418FC2F5F86420514185EB51A8EF425441EC51B82E5E2051419A9999A9F0425441CDCCCC1C5E205141D7A3708DF24254418FC2F5F85D20514185EB51A8F4425441EC51B88E5D205141666666D6FA42544152B81E355D205141A4703D0A004354411F85EBB15C205141C3F528AC07435441666666D65C2051419A99994909435441F6285C3F5E20514185EB51380C4354410AD7A3B05F205141666666D60E435441B81E856B612051415C8FC2451143544148E17A9462205141B81E85BB12435441E17A142E632051410AD7A35015435441D7A370BD63205141C3F5287C174354419A9999F96420514185EB51A819435441333333F3652051410AD7A3F01B435441CDCCCCFC66205141000000801F435441713D0A576E2051418FC2F5B81A435441
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000001F85EBB1712051415C8FC2C50B435441B26D6A7C6F2051418289225D0C435441713D0AE76E20514152B81E850C435441E531B95167205141A98A465600435441B81E85EB64205141B81E857BFC42544180AB061965205141DD85FB4DFB425441D8708623652051413C816908FB42544130574C4565205141E60A9F28FA425441D833BC6465205141175E4F58F9425441A920D44B652051416A624BEFF84254418D78453165205141364BB383F8425441D3B9E02965205141E705BF65F8425441A76E76EA63205141C497C9D1FA425441637F783562205141CCDA9E18FC42544151FE66066220514112637C3FFE425441A20F314B62205141F0AFD4B10043544123BB149267205141F431A3FC0C4354418632BD5C6B2051412151B05C1A435441B56B63B16A2051412250FF9E1C435441B56B63B16A2051412C91A0171D435441713D0A576E2051418FC2F5B81A435441CDCCCC8C70205141CDCCCC6C19435441A4703DDA76205141A4703DBA1543544148E17A04772051417B14AE971543544148E17AA4762051413D0AD7D31443544100000020732051410AD7A3800E4354411F85EBB1712051415C8FC2C50B435441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>649439 - 1305896
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1248 </desc>
+<a>
+0106000000010000000103000000020000000A00000048E17A2473545141F6285C0FAFE65441295C8F827554514133333353A5E65441A4703D9A785451411F85EB219BE6544152B81E75795451415C8FC2E598E65441295C8F02755451416666660698E65441C3F528FC7254514148E17A549CE6544114AE47416E54514100000030A2E65441B81E85DB6E54514148E17AF4A7E65441D7A3701D6F545141A4703DDAB0E6544148E17A2473545141F6285C0FAFE6544107000000F6285C2F70545141AE47E1AAA4E65441295C8F326F5451419A999949A3E65441AE47E1DA6F54514114AE47A1A2E6544148E17A546F5451417B14AEE7A1E65441C3F5283C7154514166666686A0E654411F85EBF17254514100000090A2E65441F6285C2F70545141AE47E1AAA4E65441
+</a>
+
+<b>
+010600000001000000010300000001000000580000009A9999E969545141D7A3701DC4E65441D7A370BD6B5451413D0AD7F3C9E65441713D0A676C5451415C8FC2B5CCE65441A4703DFA6C545141EC51B8EED0E6544185EB51D86C545141713D0AC7D2E654411F85EB716C545141CDCCCC9CD5E6544152B81E556A545141C3F528FCD9E65441666666F66854514148E17AF4DAE654418FC2F548685451413D0AD7D3DBE654415C8FC2A567545141666666A6DCE6544185EB518866545141C3F5286CDFE65441D7A370CD63545141AE47E19AEAE6544148E17AD46254514166666656EDE65441713D0AF763545141AE47E1BAECE65441AE47E1CA64545141B81E85DBEBE654411F85EB7165545141EC51B8AEEAE65441C3F528EC65545141A4703D4AEAE654413D0AD7936654514148E17A34EAE65441713D0AA7675451411F85EB91EAE65441E17A14DE68545141295C8FC2EAE65441C3F5283C6A5451415C8FC255EAE6544114AE47316B5451411F85EBF1EAE6544152B81E956B545141F6285CAFEBE654417B14AE476C54514185EB5108ECE65441EC51B8EE6C54514133333313ECE6544185EB51486D545141C3F5286CEBE65441E17A14CE6D545141D7A3708DEAE654417B14AEB76E545141CDCCCC8CE9E65441CDCCCC1C705451413D0AD733E9E65441AE47E13A7254514148E17A34E8E65441666666E673545141A4703DDAE6E654411F85EBF174545141AE47E18AE3E65441C3F5286C755451413D0AD7E3E2E65441E17A148E7654514166666626E2E654410AD7A340775451418FC2F568E1E654410AD7A3207B54514185EB51F8DEE654419A9999E97C5451411F85EBE1DDE65441F6285CDF7E5451418FC2F588DDE654418FC2F5388054514185EB5188DCE65441000000E08054514133333393DBE65441295C8F2281545141713D0AF7D9E654410AD7A3F082545141C3F5285CD9E65441713D0A6785545141CDCCCC0CD9E65441AE47E1AA87545141666666F6D8E65441CDCCCC4C8A54514133333383D8E65441EC51B85E875451417B14AEA7CBE65441A4703D2A86545141EC51B81EC7E6544152B81ED58454514148E17A04C3E654411F85EBD1835451410AD7A370C0E65441713D0A1782545141AE47E1CABCE65441713D0AA78054514133333333BAE65441295C8F427C5451413D0AD753B3E654418FC2F5D87C54514152B81EC5B2E654417B14AEA77F545141B81E85BBB1E65441E17A142E82545141AE47E1BAAFE6544185EB518884545141C3F5286CADE6544152B81E25875451419A9999B9ABE65441E17A14FE87545141C3F528DCAAE65441A4703D1A8954514166666676AAE65441EC51B8EE8A54514148E17A54A9E654411F85EBA18B545141D7A370ADA8E65441000000608B545141AE47E1EAA6E65441333333638B5451417B14AE67A5E654411F85EBE18B5451418FC2F598A2E654410AD7A3108C545141AE47E1CA9DE6544152B81E058C545141333333B399E654411F85EBC18A545141AE47E19A93E65441AE47E11A8A5451417B14AEE790E65441EC51B8BE87545141F6285C9F8FE65441E17A14EE7C545141F6285CCF8CE65441000000207B545141AE47E1CA8CE654411F85EB717A5451418FC2F5788CE65441713D0A0778545141B81E859B91E65441505B69C1745451418299E69098E654416329191C77545141A137163899E654418E29958D765451416A8C23139BE654411AD57F9573545141106D14D9A4E65441352B6DFC705451417815CB74ACE65441758B12FA6E545141ECAE2B14ACE65441D7A3701D6F545141A4703DDAB0E654415C8FC2456F5451410AD7A330B1E6544152B81E956E545141295C8F22B5E65441EC51B83E6C545141713D0A27B8E65441A4703D7A6B5451410AD7A360B9E65441EC51B84E6A54514114AE4701BCE6544114AE47A169545141333333B3BEE654419A99998969545141B81E857BC1E654419A9999E969545141D7A3701DC4E65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>649439 - 3311532
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1248 </desc>
+<a>
+0106000000010000000103000000020000000A00000048E17A2473545141F6285C0FAFE65441295C8F827554514133333353A5E65441A4703D9A785451411F85EB219BE6544152B81E75795451415C8FC2E598E65441295C8F02755451416666660698E65441C3F528FC7254514148E17A549CE6544114AE47416E54514100000030A2E65441B81E85DB6E54514148E17AF4A7E65441D7A3701D6F545141A4703DDAB0E6544148E17A2473545141F6285C0FAFE6544107000000F6285C2F70545141AE47E1AAA4E65441295C8F326F5451419A999949A3E65441AE47E1DA6F54514114AE47A1A2E6544148E17A546F5451417B14AEE7A1E65441C3F5283C7154514166666686A0E654411F85EBF17254514100000090A2E65441F6285C2F70545141AE47E1AAA4E65441
+</a>
+
+<b>
+010600000001000000010300000001000000580000009A9999E969545141D7A3701DC4E65441D7A370BD6B5451413D0AD7F3C9E65441713D0A676C5451415C8FC2B5CCE65441A4703DFA6C545141EC51B8EED0E6544185EB51D86C545141713D0AC7D2E654411F85EB716C545141CDCCCC9CD5E6544152B81E556A545141C3F528FCD9E65441666666F66854514148E17AF4DAE654418FC2F548685451413D0AD7D3DBE654415C8FC2A567545141666666A6DCE6544185EB518866545141C3F5286CDFE65441D7A370CD63545141AE47E19AEAE6544148E17AD46254514166666656EDE65441713D0AF763545141AE47E1BAECE65441AE47E1CA64545141B81E85DBEBE654411F85EB7165545141EC51B8AEEAE65441C3F528EC65545141A4703D4AEAE654413D0AD7936654514148E17A34EAE65441713D0AA7675451411F85EB91EAE65441E17A14DE68545141295C8FC2EAE65441C3F5283C6A5451415C8FC255EAE6544114AE47316B5451411F85EBF1EAE6544152B81E956B545141F6285CAFEBE654417B14AE476C54514185EB5108ECE65441EC51B8EE6C54514133333313ECE6544185EB51486D545141C3F5286CEBE65441E17A14CE6D545141D7A3708DEAE654417B14AEB76E545141CDCCCC8CE9E65441CDCCCC1C705451413D0AD733E9E65441AE47E13A7254514148E17A34E8E65441666666E673545141A4703DDAE6E654411F85EBF174545141AE47E18AE3E65441C3F5286C755451413D0AD7E3E2E65441E17A148E7654514166666626E2E654410AD7A340775451418FC2F568E1E654410AD7A3207B54514185EB51F8DEE654419A9999E97C5451411F85EBE1DDE65441F6285CDF7E5451418FC2F588DDE654418FC2F5388054514185EB5188DCE65441000000E08054514133333393DBE65441295C8F2281545141713D0AF7D9E654410AD7A3F082545141C3F5285CD9E65441713D0A6785545141CDCCCC0CD9E65441AE47E1AA87545141666666F6D8E65441CDCCCC4C8A54514133333383D8E65441EC51B85E875451417B14AEA7CBE65441A4703D2A86545141EC51B81EC7E6544152B81ED58454514148E17A04C3E654411F85EBD1835451410AD7A370C0E65441713D0A1782545141AE47E1CABCE65441713D0AA78054514133333333BAE65441295C8F427C5451413D0AD753B3E654418FC2F5D87C54514152B81EC5B2E654417B14AEA77F545141B81E85BBB1E65441E17A142E82545141AE47E1BAAFE6544185EB518884545141C3F5286CADE6544152B81E25875451419A9999B9ABE65441E17A14FE87545141C3F528DCAAE65441A4703D1A8954514166666676AAE65441EC51B8EE8A54514148E17A54A9E654411F85EBA18B545141D7A370ADA8E65441000000608B545141AE47E1EAA6E65441333333638B5451417B14AE67A5E654411F85EBE18B5451418FC2F598A2E654410AD7A3108C545141AE47E1CA9DE6544152B81E058C545141333333B399E654411F85EBC18A545141AE47E19A93E65441AE47E11A8A5451417B14AEE790E65441EC51B8BE87545141F6285C9F8FE65441E17A14EE7C545141F6285CCF8CE65441000000207B545141AE47E1CA8CE654411F85EB717A5451418FC2F5788CE65441713D0A0778545141B81E859B91E65441505B69C1745451418299E69098E654416329191C77545141A137163899E654418E29958D765451416A8C23139BE654411AD57F9573545141106D14D9A4E65441352B6DFC705451417815CB74ACE65441758B12FA6E545141ECAE2B14ACE65441D7A3701D6F545141A4703DDAB0E654415C8FC2456F5451410AD7A330B1E6544152B81E956E545141295C8F22B5E65441EC51B83E6C545141713D0A27B8E65441A4703D7A6B5451410AD7A360B9E65441EC51B84E6A54514114AE4701BCE6544114AE47A169545141333333B3BEE654419A99998969545141B81E857BC1E654419A9999E969545141D7A3701DC4E65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>8231 - 119886
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -10019 </desc>
+<a>
+01060000000100000001030000000100000008000000CDCCCC9C26B45041B81E85AB1ADF5441D7A3702D2DB450411F85EB31E1DE5441295C8F422CB450415C8FC295E0DE544152B81E450AB45041AE47E1EAF4DE5441E17A14AE04B4504148E17A3429DF5441E17A14DE21B45041F6285C0F3ADF54413333331323B450410000007039DF5441CDCCCC9C26B45041B81E85AB1ADF5441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000CDCCCC9C26B45041B81E85AB1ADF5441C923A30D28B450411F30700E0EDF5441D7A3702D2DB450411F85EB31E1DE5441295C8F422CB450415C8FC295E0DE544152B81E450AB45041AE47E1EAF4DE54419670CF5307B4504162D2277110DF54411F31361607B45041868755B112DF54417259B89F06B4504177E9AC0517DF54413F76208106B45041747BD62318DF5441A6B0996C25B450419838D2E524DF5441CDCCCC9C26B45041B81E85AB1ADF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>9511 - 310463
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2121 </desc>
+<a>
+010600000001000000010300000001000000260000003D0AD7834D275141B81E85FBCAA05441F6285C2F54275141A4703D8AC4A05441CDCCCCDC5B2751410AD7A380BAA05441D7A370CD5D275141D7A3708DB8A054417B14AEE75F275141333333F3B6A05441C3F528DC6027514100000060B4A054418FC2F5F863275141A4703D2AB2A05441295C8F82662751411F85EB71B0A054415C8FC2F5682751418FC2F5A8B0A0544152B81EC56B275141A4703DAAAEA0544148E17A946F27514133333363AEA05441713D0A87752751413D0AD783AAA05441713D0AE7762751417B14AEF7A8A05441D7A370DD77275141295C8FB2A6A0544152B81EE579275141B81E85FBA4A0544166666656732751410AD7A3009CA0544185EB51586F27514185EB51E896A05441000000E06B275141AE47E12A9AA05441CDCCCC0C69275141E17A144E9EA054419A99995967275141D7A3704DA4A054410AD7A39063275141A4703D0AA8A05441D7A3704D5F27514185EB5168ABA05441713D0AA75927514185EB5128B0A054410AD7A310552751410AD7A340B4A0544133333303542751415C8FC2A5B8A05441713D0AB753275141B81E853BBAA05441B81E85BB52275141D7A3701DBCA05441F6285CCF4B2751417B14AE07C1A0544148E17AB44A275141EC51B8BEC7A054410AD7A33049275141295C8F72CAA054417B14AE3745275141C3F5287CCFA054417B14AED742275141E17A148ED2A0544152B81E05412751410AD7A3D0D4A054419A9999593D2751415C8FC2C5D8A054413D0AD7C33C2751419A999909D9A05441CDCCCCEC3C275141B81E85DBDAA0544185EB51F83D275141A4703D2AE0A054413D0AD7834D275141B81E85FBCAA05441
+</a>
+
+<b>
+0106000000010000000103000000010000002D00000041F31F05412751418150A2D0D4A054411BAE22E43F275141A9514308D6A05441C3CE9A593D2751414AE3C2C5D8A054411729D8C33C2751413A939909D9A05441FA23CEEC3C2751418FBA84DBDAA054419800CC953D275141C6A5D835DEA0544111CD15C13D2751411E85B411DFA054416CC351F83D275141FEA43C2AE0A0544138CED6834D2751419F2285FBCAA05441390E5B2F5427514103903D8AC4A05441185F8A5A572751411195B565C0A05441CDCCCCDC5B2751410AD7A380BAA05441B2DB06CC5B27514157B1574BBAA05441DE731E985D2751412A19407FB8A05441C96168E45E2751410F4D3499B7A05441E25049B15E275141E2B41CCDB5A054418271F096602751413EB74ACEB2A054416819901564275141F552271CB0A0544159C12F946727514197DC4DB6AEA05441B45ADEE067275141FD75FC02AFA05441F59B2CAC6B2751411388B2B6ADA05441E643CC2A6F2751410FAB879DACA0544157FA5CDB7527514111140752A9A05441CE5F170E77275141F547FB6BA8A0544176A393DA7727514154275486A6A054418A4CCAD9792751410FA05BEDA4A05441427FEEBB71275141C3E1D2F499A0544182C249BB70275141745C4FAD98A05441B6CE89456C2751413573F1D69CA0544181139D926B275141ACE3D7B9A5A05441105D0CE26427514122E01238AAA054419DD47CC8642751418879C184AAA054410B0C36645F2751416E216103AEA054419CC950185D275141DD63464FB0A054413B764C995A2751413EB74ACEB2A0544123AF7934562751414E7CD6B3B5A05441ABA6330354275141F577C2A5B8A054411192A2105427514134EACC5CBAA054415CD247015327514111C43D9ABCA054415D09729D4C2751417CBDF5C8C0A054415E2AB82E4A27514158184711CBA054415B93327346275141A4CBD763CEA0544133177A5446275141B6E8AE87D0A05441C70E494144275141248C131ED2A0544141F31F05412751418150A2D0D4A05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>14921 - 3056722
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -5545 </desc>
+<a>
+0106000000010000000103000000010000002100000048E17AA4F3515141CDCCCC3C1CD8544114AE4741F5515141B81E85EB1CD854418FC2F5F8005251416666667620D85441D7A3703D06525141AE47E1CA20D854418FC2F5D812525141A4703D5A1FD8544148E17AA4165251417B14AE771FD85441000000F01B525141666666D620D85441D7A3702D1E5251418FC2F57822D85441A4703D0A22525141CDCCCC5C23D854415C8FC235325251419A9999492BD85441C3F528FC4152514185EB51A82CD85441C3F528FC4352514148E17A842DD85441AE47E13A495251411F85EB212FD85441C3F5289C55525141AE47E1DA35D85441713D0A075A525141A4703DBA35D85441CDCCCCDC5B525141F6285C5F31D85441CDCCCC0C5E5251419A99990918D854418FC2F5484D52514114AE471116D85441295C8F9246525141A4703DCA15D85441333333934352514185EB51A80DD8544114AE47312A5251417B14AEE70ED85441A4703D4A23525141B81E85AB0ED85441713D0AC722525141713D0A2706D85441EC51B8AE2F52514152B81E9500D85441EC51B8CE2B52514152B81E95FAD75441B81E85EB23525141713D0AC7FDD754411F85EBE11C5251417B14AE8700D854416666660615525141CDCCCC1C02D85441B81E854B095251415C8FC27503D854415C8FC2F5FF5151413333339304D85441F6285C7FF4515141E17A140E04D854411F85EB11F451514152B81E2510D8544148E17AA4F3515141CDCCCC3C1CD85441
+</a>
+
+<b>
+0106000000010000000103000000010000002500000034E8EEA253525141B10B89C834D85441FF49D28D55525141E80E18D335D854410600E333575251418EC9549F34D85441FC70F4965952514167A80CC231D854417C4AEC795A52514153BE70702FD85441DFAA596E5B525141B6050F132BD85441B7EFF01C5C525141FC6D433B23D8544136C9E8FF5C525141C4AF6F461CD854414C0238D04B5251414523889D19D854411CBA83263D5251413B7BCAAE16D8544175DAB5FC2C5251410023D64513D854419D167070235251413B62FB5C11D8544145B97E2923525141D976508B0CD85441713D0AC722525141713D0A2706D85441EC51B8AE2F52514152B81E9500D85441EC51B8CE2B52514152B81E95FAD75441B81E85EB23525141713D0AC7FDD754411F85EBE11C5251417B14AE8700D854416666660615525141CDCCCC1C02D85441B81E854B095251415C8FC27503D854415C8FC2F5FF5151413333339304D85441F6285C7FF4515141E17A140E04D854411F85EB11F451514152B81E2510D8544148E17AA4F3515141CDCCCC3C1CD8544114AE4741F5515141B81E85EB1CD854418FC2F5F8005251416666667620D85441D7A3703D06525141AE47E1CA20D854418FC2F5D812525141A4703D5A1FD8544148E17AA4165251417B14AE771FD85441000000F01B525141666666D620D85441D7A3702D1E5251418FC2F57822D85441A4703D0A22525141CDCCCC5C23D854415C8FC235325251419A9999492BD85441C3F528FC4152514185EB51A82CD85441C3F528FC4352514148E17A842DD85441AE47E13A495251411F85EB212FD8544134E8EEA253525141B10B89C834D85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>14921 - 3327923
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -5545 </desc>
+<a>
+0106000000010000000103000000010000002100000048E17AA4F3515141CDCCCC3C1CD8544114AE4741F5515141B81E85EB1CD854418FC2F5F8005251416666667620D85441D7A3703D06525141AE47E1CA20D854418FC2F5D812525141A4703D5A1FD8544148E17AA4165251417B14AE771FD85441000000F01B525141666666D620D85441D7A3702D1E5251418FC2F57822D85441A4703D0A22525141CDCCCC5C23D854415C8FC235325251419A9999492BD85441C3F528FC4152514185EB51A82CD85441C3F528FC4352514148E17A842DD85441AE47E13A495251411F85EB212FD85441C3F5289C55525141AE47E1DA35D85441713D0A075A525141A4703DBA35D85441CDCCCCDC5B525141F6285C5F31D85441CDCCCC0C5E5251419A99990918D854418FC2F5484D52514114AE471116D85441295C8F9246525141A4703DCA15D85441333333934352514185EB51A80DD8544114AE47312A5251417B14AEE70ED85441A4703D4A23525141B81E85AB0ED85441713D0AC722525141713D0A2706D85441EC51B8AE2F52514152B81E9500D85441EC51B8CE2B52514152B81E95FAD75441B81E85EB23525141713D0AC7FDD754411F85EBE11C5251417B14AE8700D854416666660615525141CDCCCC1C02D85441B81E854B095251415C8FC27503D854415C8FC2F5FF5151413333339304D85441F6285C7FF4515141E17A140E04D854411F85EB11F451514152B81E2510D8544148E17AA4F3515141CDCCCC3C1CD85441
+</a>
+
+<b>
+0106000000010000000103000000010000002500000034E8EEA253525141B10B89C834D85441FF49D28D55525141E80E18D335D854410600E333575251418EC9549F34D85441FC70F4965952514167A80CC231D854417C4AEC795A52514153BE70702FD85441DFAA596E5B525141B6050F132BD85441B7EFF01C5C525141FC6D433B23D8544136C9E8FF5C525141C4AF6F461CD854414C0238D04B5251414523889D19D854411CBA83263D5251413B7BCAAE16D8544175DAB5FC2C5251410023D64513D854419D167070235251413B62FB5C11D8544145B97E2923525141D976508B0CD85441713D0AC722525141713D0A2706D85441EC51B8AE2F52514152B81E9500D85441EC51B8CE2B52514152B81E95FAD75441B81E85EB23525141713D0AC7FDD754411F85EBE11C5251417B14AE8700D854416666660615525141CDCCCC1C02D85441B81E854B095251415C8FC27503D854415C8FC2F5FF5151413333339304D85441F6285C7FF4515141E17A140E04D854411F85EB11F451514152B81E2510D8544148E17AA4F3515141CDCCCC3C1CD8544114AE4741F5515141B81E85EB1CD854418FC2F5F8005251416666667620D85441D7A3703D06525141AE47E1CA20D854418FC2F5D812525141A4703D5A1FD8544148E17AA4165251417B14AE771FD85441000000F01B525141666666D620D85441D7A3702D1E5251418FC2F57822D85441A4703D0A22525141CDCCCC5C23D854415C8FC235325251419A9999492BD85441C3F528FC4152514185EB51A82CD85441C3F528FC4352514148E17A842DD85441AE47E13A495251411F85EB212FD8544134E8EEA253525141B10B89C834D85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>16141 - 2907697
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -8938 </desc>
+<a>
+01060000000100000001030000000100000015000000A4703DBA56005141CDCCCC6C827554419A9999B93D005141666666A6787554418FC2F5183900514148E17A94767554410AD7A3C034005141713D0A1774755441B81E853B31005141A4703D9A707554413333333330005141295C8F627175544133333323240051415C8FC2F57C755441E17A14EE24005141713D0AF77E75544148E17A24270051418FC2F5E8817554418FC2F5682B0051417B14AE1787755441A4703D6A2D005141A4703D0A8A755441333333532F005141666666768D755441C3F528FC3000514114AE47418F755441AE47E10A3300514152B81EA590755441666666C63E005141295C8FD296755441CDCCCCEC450051417B14AE4791755441B81E858B4A005141713D0AA78D755441A4703D2A4D0051418FC2F5588B755441B81E854B500051419A9999298875544133333303560051413333332383755441A4703DBA56005141CDCCCC6C82755441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000B0BC29AB4D005141E683C5D58A755441FDCA13944D005141E84E43ED8A755441CD2C69B14D005141B72AF5F98A755441B81E854B500051419A9999298875544133333303560051413333332383755441A4703DBA56005141CDCCCC6C827554419A9999B93D005141666666A6787554418FC2F5183900514148E17A94767554410AD7A3C034005141713D0A1774755441B81E853B31005141A4703D9A707554413333333330005141295C8F62717554419BF822732A005141BD6704DC767554410D32F9782A005141FE9D87E17675544124306A722A005141B3C4D2E7767554414FCAD9612B005141EFB81AC477755441570349752B005141BE4F2ED477755441093E7A413000514174C76C887B7554416976F5D836005141F42CA001807554412B7F171B3A005141118FF0DF81755441BDA51BC83C005141DA05BF6883755441FBDA133B4100514158DA03A985755441B0BC29AB4D005141E683C5D58A755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>16141 - 3624179
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -8938 </desc>
+<a>
+01060000000100000001030000000100000015000000A4703DBA56005141CDCCCC6C827554419A9999B93D005141666666A6787554418FC2F5183900514148E17A94767554410AD7A3C034005141713D0A1774755441B81E853B31005141A4703D9A707554413333333330005141295C8F627175544133333323240051415C8FC2F57C755441E17A14EE24005141713D0AF77E75544148E17A24270051418FC2F5E8817554418FC2F5682B0051417B14AE1787755441A4703D6A2D005141A4703D0A8A755441333333532F005141666666768D755441C3F528FC3000514114AE47418F755441AE47E10A3300514152B81EA590755441666666C63E005141295C8FD296755441CDCCCCEC450051417B14AE4791755441B81E858B4A005141713D0AA78D755441A4703D2A4D0051418FC2F5588B755441B81E854B500051419A9999298875544133333303560051413333332383755441A4703DBA56005141CDCCCC6C82755441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000B0BC29AB4D005141E683C5D58A755441FDCA13944D005141E84E43ED8A755441CD2C69B14D005141B72AF5F98A755441B81E854B500051419A9999298875544133333303560051413333332383755441A4703DBA56005141CDCCCC6C827554419A9999B93D005141666666A6787554418FC2F5183900514148E17A94767554410AD7A3C034005141713D0A1774755441B81E853B31005141A4703D9A707554413333333330005141295C8F62717554419BF822732A005141BD6704DC767554410D32F9782A005141FE9D87E17675544124306A722A005141B3C4D2E7767554414FCAD9612B005141EFB81AC477755441570349752B005141BE4F2ED477755441093E7A413000514174C76C887B7554416976F5D836005141F42CA001807554412B7F171B3A005141118FF0DF81755441BDA51BC83C005141DA05BF6883755441FBDA133B4100514158DA03A985755441B0BC29AB4D005141E683C5D58A755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>973705 - 3167325
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -6137 </desc>
+<a>
+01060000000200000001030000000100000056000000527A4BC396F750410F487EFEE21C5541A689A10597F750413F09A241E31C5541C51F99F197F75041B5E1FE4BE41C5541DBC866D795F750415DDC8F1DE71C55417DB87F5D95F750412F002CA0E71C55418A79BD5795F75041BE1E99B0E71C5541C29C546E95F750418BB8E4C8E71C5541C33877E896F75041FAED686CE91C5541D7A3709D99F7504114AE4771E81C55418FC2F508A1F750410AD7A300E51C554185475530A3F75041C3B1F860E21C5541C7DA5FAFA8F750414E5E473CDE1C5541A2F26DDEA9F75041C7161DAFDA1C554185EB5178AAF75041EC51B82ED91C55417B14AE87AAF75041295C8FF2D71C55415C8FC245ACF75041D7A3700DD51C5541295C8F62B0F75041EC51B8DECE1C5541000000B0BEF7504100000070C71C55418FC2F5F8C4F7504114AE4771C41C5541C3F5285CC7F750419A999929C31C5541C3F5280CCAF75041B81E85FBC11C5541CDCCCCECCDF75041713D0AC7C01C55410AD7A390D2F7504185EB51C8BF1C55411F85EB81D6F750413D0AD7F3BE1C55414C58557DDAF7504137BA504DC01C554135BBA807E3F75041A185E3F3C41C5541F772E3E3E4F750418F916A8BC51C5541B55269EBE6F750416615D3A4C61C554147DEA237EAF7504124F558ACC81C554152B81E45EFF750418FC2F5B8CB1C55419A999929F4F7504185EB5108CE1C5541F2804F1CF4F750416D38CDD4CD1C5541EEA89A47F4F7504174A427BFCD1C5541F13C405DF4F7504169601800CE1C5541EC0D044DF4F750416F75EBAECD1C5541F2804F1CF4F7504174E8367ECD1C554169EF4449F4F75041C7DC2F9CCD1C5541EEA89A47F4F75041787CDC93CD1C5541EAD0E572F4F75041787CDC93CD1C5541B9FD5365F4F75041E62200AFCD1C5541A8B06B7AF6F7504141E48019CF1C554192284DFCF6F75041500045ADCE1C554192284DFCF6F750414C2890D8CE1C55418F509827F7F750414C2890D8CE1C55418B1A6B32F7F75041505EBDCDCE1C554192E43D3DF7F7504145BC35EECE1C5541295C8FF2F6F750419A999959CF1C55411F85EBF100F85041713D0A57CD1C5541F6285CDF06F8504148E17A94CC1C5541333333730DF85041333333E3CB1C5541884976680EF85041C8740B61CB1C55412A7EE3C109F85041FF0C67DBC91C5541A60E6E0906F85041F8A00CF1C91C554144AF354D01F8504119B149EDC81C554153CBF9E000F850411D89FEC1C81C5541CDCCCCCCF8F75041F6285C7FC91C5541B81E859BEEF7504148E17A94C61C554114AE4761ECF750418FC2F5E8C51C5541F6285C1FEAF750415C8FC2D5C41C5541D7A370DDE7F750418FC2F5E8C31C55410AD7A3B0E0F75041A4703D4AC01C554133333373DEF75041F6285C0FBD1C5541F6285C6FDDF75041F6285CCFBC1C554185EB5118D5F75041EC51B8CEBA1C5541D7A3702DD2F750415C8FC255BA1C55419A999979CFF750410AD7A3E0BA1C55418FC2F598CBF75041666666C6BB1C5541B81E852BC6F7504166666616BD1C5541B81E855BC4F75041AE47E1DABD1C554152B81EC5C0F75041CDCCCC5CBF1C55415C8FC2F5BEF750410AD7A370C01C5541CDCCCCBCBAF75041C3F5281CC31C5541A4703D0AB6F7504114AE47A1C51C5541E17A148EB2F7504152B81E15C81C5541D7A3705DADF75041EC51B8AECC1C5541A4703DFAACF750411F85EB81CD1C5541EC51B88EABF750411F85EB41CF1C5541713D0AF7A8F75041D7A370BDD21C554100000010A5F75041D7A3708DD71C554148E17AE4A1F75041713D0AA7DA1C55415C8FC2C59FF750413D0AD783DC1C55418FC2F5889EF750415C8FC255DD1C5541666666469CF75041F6285CCFDE1C55419A99990999F75041B81E858BE01C554112EB416696F75041649A61E7E11C5541527A4BC396F750410F487EFEE21C554101030000000100000006000000EC0D044DF4F750416F75EBAECD1C5541F13C405DF4F7504174A427BFCD1C5541B9FD5365F4F75041E62200AFCD1C5541F13C405DF4F75041711082A9CD1C554169EF4449F4F75041C7DC2F9CCD1C5541EC0D044DF4F750416F75EBAECD1C5541
+</a>
+
+<b>
+01060000000100000001030000000100000013000000CC46E662A9F750418C96DAACDE1C5541B299FC69AFF750418E618255DE1C55417C7481CFBBF750419E1AB894DA1C554146B62352C8F75041AC6F6348D71C5541102A8B9AD4F75041BB5DF1DED31C5541CDE12912E4F75041CD48ECE3CF1C5541CB26964FF1F7504174AAA4AFCC1C5541097D64BDEBF75041FBC1F318CA1C5541D977F146E3F75041DCBDE652C61C5541D7D5DDCBE1F75041F8E0D0E1C51C554111C36D7DD4F75041EBBDEAF3C81C55415043BAEEC5F75041D9A02A29CD1C55417C7481CFBBF75041CF455952CF1C55419FE359BCB3F75041C486FDEFD11C5541B5C82E9EAEF75041C3ED1A0DD21C5541E987A284AAF750413F143D31D81C55416B64E6AAA8F75041EADEA63FDE1C5541CD78AB28A9F750418DC89F72DE1C5541CC46E662A9F750418C96DAACDE1C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>973705 - 3557552
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -6137 </desc>
+<a>
+01060000000200000001030000000100000056000000527A4BC396F750410F487EFEE21C5541A689A10597F750413F09A241E31C5541C51F99F197F75041B5E1FE4BE41C5541DBC866D795F750415DDC8F1DE71C55417DB87F5D95F750412F002CA0E71C55418A79BD5795F75041BE1E99B0E71C5541C29C546E95F750418BB8E4C8E71C5541C33877E896F75041FAED686CE91C5541D7A3709D99F7504114AE4771E81C55418FC2F508A1F750410AD7A300E51C554185475530A3F75041C3B1F860E21C5541C7DA5FAFA8F750414E5E473CDE1C5541A2F26DDEA9F75041C7161DAFDA1C554185EB5178AAF75041EC51B82ED91C55417B14AE87AAF75041295C8FF2D71C55415C8FC245ACF75041D7A3700DD51C5541295C8F62B0F75041EC51B8DECE1C5541000000B0BEF7504100000070C71C55418FC2F5F8C4F7504114AE4771C41C5541C3F5285CC7F750419A999929C31C5541C3F5280CCAF75041B81E85FBC11C5541CDCCCCECCDF75041713D0AC7C01C55410AD7A390D2F7504185EB51C8BF1C55411F85EB81D6F750413D0AD7F3BE1C55414C58557DDAF7504137BA504DC01C554135BBA807E3F75041A185E3F3C41C5541F772E3E3E4F750418F916A8BC51C5541B55269EBE6F750416615D3A4C61C554147DEA237EAF7504124F558ACC81C554152B81E45EFF750418FC2F5B8CB1C55419A999929F4F7504185EB5108CE1C5541F2804F1CF4F750416D38CDD4CD1C5541EEA89A47F4F7504174A427BFCD1C5541F13C405DF4F7504169601800CE1C5541EC0D044DF4F750416F75EBAECD1C5541F2804F1CF4F7504174E8367ECD1C554169EF4449F4F75041C7DC2F9CCD1C5541EEA89A47F4F75041787CDC93CD1C5541EAD0E572F4F75041787CDC93CD1C5541B9FD5365F4F75041E62200AFCD1C5541A8B06B7AF6F7504141E48019CF1C554192284DFCF6F75041500045ADCE1C554192284DFCF6F750414C2890D8CE1C55418F509827F7F750414C2890D8CE1C55418B1A6B32F7F75041505EBDCDCE1C554192E43D3DF7F7504145BC35EECE1C5541295C8FF2F6F750419A999959CF1C55411F85EBF100F85041713D0A57CD1C5541F6285CDF06F8504148E17A94CC1C5541333333730DF85041333333E3CB1C5541884976680EF85041C8740B61CB1C55412A7EE3C109F85041FF0C67DBC91C5541A60E6E0906F85041F8A00CF1C91C554144AF354D01F8504119B149EDC81C554153CBF9E000F850411D89FEC1C81C5541CDCCCCCCF8F75041F6285C7FC91C5541B81E859BEEF7504148E17A94C61C554114AE4761ECF750418FC2F5E8C51C5541F6285C1FEAF750415C8FC2D5C41C5541D7A370DDE7F750418FC2F5E8C31C55410AD7A3B0E0F75041A4703D4AC01C554133333373DEF75041F6285C0FBD1C5541F6285C6FDDF75041F6285CCFBC1C554185EB5118D5F75041EC51B8CEBA1C5541D7A3702DD2F750415C8FC255BA1C55419A999979CFF750410AD7A3E0BA1C55418FC2F598CBF75041666666C6BB1C5541B81E852BC6F7504166666616BD1C5541B81E855BC4F75041AE47E1DABD1C554152B81EC5C0F75041CDCCCC5CBF1C55415C8FC2F5BEF750410AD7A370C01C5541CDCCCCBCBAF75041C3F5281CC31C5541A4703D0AB6F7504114AE47A1C51C5541E17A148EB2F7504152B81E15C81C5541D7A3705DADF75041EC51B8AECC1C5541A4703DFAACF750411F85EB81CD1C5541EC51B88EABF750411F85EB41CF1C5541713D0AF7A8F75041D7A370BDD21C554100000010A5F75041D7A3708DD71C554148E17AE4A1F75041713D0AA7DA1C55415C8FC2C59FF750413D0AD783DC1C55418FC2F5889EF750415C8FC255DD1C5541666666469CF75041F6285CCFDE1C55419A99990999F75041B81E858BE01C554112EB416696F75041649A61E7E11C5541527A4BC396F750410F487EFEE21C554101030000000100000006000000EC0D044DF4F750416F75EBAECD1C5541F13C405DF4F7504174A427BFCD1C5541B9FD5365F4F75041E62200AFCD1C5541F13C405DF4F75041711082A9CD1C554169EF4449F4F75041C7DC2F9CCD1C5541EC0D044DF4F750416F75EBAECD1C5541
+</a>
+
+<b>
+01060000000100000001030000000100000013000000CC46E662A9F750418C96DAACDE1C5541B299FC69AFF750418E618255DE1C55417C7481CFBBF750419E1AB894DA1C554146B62352C8F75041AC6F6348D71C5541102A8B9AD4F75041BB5DF1DED31C5541CDE12912E4F75041CD48ECE3CF1C5541CB26964FF1F7504174AAA4AFCC1C5541097D64BDEBF75041FBC1F318CA1C5541D977F146E3F75041DCBDE652C61C5541D7D5DDCBE1F75041F8E0D0E1C51C554111C36D7DD4F75041EBBDEAF3C81C55415043BAEEC5F75041D9A02A29CD1C55417C7481CFBBF75041CF455952CF1C55419FE359BCB3F75041C486FDEFD11C5541B5C82E9EAEF75041C3ED1A0DD21C5541E987A284AAF750413F143D31D81C55416B64E6AAA8F75041EADEA63FDE1C5541CD78AB28A9F750418DC89F72DE1C5541CC46E662A9F750418C96DAACDE1C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>65942 - 2956552
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -4863 </desc>
+<a>
+0106000000010000000103000000010000000A000000D7A3704DCDE65041295C8FF2C76C5441666666C6CDE650413D0AD7A3CB6C544185EB51D8D0E65041CDCCCC7CE16C54417B14AEF7D2E6504148E17A84E56C54418FC2F5C8D6E65041AE47E1DAE66C54415C8FC275D1E65041333333F3C06C5441CDCCCC3CCFE6504166666696C16C5441E17A144EC9E65041D7A3704DC06C544133333373CBE65041713D0A67C46C5441D7A3704DCDE65041295C8FF2C76C5441
+</a>
+
+<b>
+010600000001000000010300000001000000110000005C8FC275D1E65041333333F3C06C5441CDCCCC3CCFE6504166666696C16C5441E17A144EC9E65041D7A3704DC06C544133333373CBE65041713D0A67C46C5441D7A3704DCDE65041295C8FF2C76C54413A8285B8CDE650413CDA6137CB6C5441A42E40EED2E6504192732D6BCB6C54415C01CEECD2E65041F16AE260CB6C5441C06B7AFDD8E65041013676BACB6C5441748DEBC3E0E65041078F492CCB6C5441436C7DC3E5E650410CE81C9ECA6C5441EBD88129E8E650413387394BBB6C54410AD7A3D0E7E650419A999949BB6C5441B81E851BE8E65041EC51B8EEB86C5441AE47E1FAE1E6504152B81E85BA6C54419A999929D3E650415C8FC275C06C54415C8FC275D1E65041333333F3C06C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>65942 - 3812073
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -4863 </desc>
+<a>
+0106000000010000000103000000010000000A000000D7A3704DCDE65041295C8FF2C76C5441666666C6CDE650413D0AD7A3CB6C544185EB51D8D0E65041CDCCCC7CE16C54417B14AEF7D2E6504148E17A84E56C54418FC2F5C8D6E65041AE47E1DAE66C54415C8FC275D1E65041333333F3C06C5441CDCCCC3CCFE6504166666696C16C5441E17A144EC9E65041D7A3704DC06C544133333373CBE65041713D0A67C46C5441D7A3704DCDE65041295C8FF2C76C5441
+</a>
+
+<b>
+010600000001000000010300000001000000110000005C8FC275D1E65041333333F3C06C5441CDCCCC3CCFE6504166666696C16C5441E17A144EC9E65041D7A3704DC06C544133333373CBE65041713D0A67C46C5441D7A3704DCDE65041295C8FF2C76C54413A8285B8CDE650413CDA6137CB6C5441A42E40EED2E6504192732D6BCB6C54415C01CEECD2E65041F16AE260CB6C5441C06B7AFDD8E65041013676BACB6C5441748DEBC3E0E65041078F492CCB6C5441436C7DC3E5E650410CE81C9ECA6C5441EBD88129E8E650413387394BBB6C54410AD7A3D0E7E650419A999949BB6C5441B81E851BE8E65041EC51B8EEB86C5441AE47E1FAE1E6504152B81E85BA6C54419A999929D3E650415C8FC275C06C54415C8FC275D1E65041333333F3C06C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>68778 - 245831
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2408 </desc>
+<a>
+01060000000100000001030000000100000016000000F6285C4F3EF45041295C8F92320F5541C3F5288C40F450417B14AE37360F554114AE47B137F45041A4703D2A3B0F55418FC2F5C833F450418FC2F5583D0F554152B81EA53BF450415C8FC2D5510F55413D0AD7D334F450419A9999C9540F554152B81E3537F45041B81E859B590F55415C8FC25538F450415C8FC2155B0F5541333333A33AF450419A9999195E0F55418FC2F5783FF45041CDCCCCFC620F5541713D0A173DF45041295C8F92670F5541A4703D7A36F45041CDCCCCFC6B0F55419A99993937F45041D7A3704D6E0F55417B14AE874EF45041A4703DEA660F5541CDCCCC5C4BF450419A999969570F55418FC2F5B846F450415C8FC215450F554114AE477143F450411F85EBE1390F5541F6285CEF3FF4504133333313320F5541F6285C8F3BF45041666666D6290F55417B14AE5739F45041F6285C7F2A0F55411F85EBC139F450417B14AE272B0F5541F6285C4F3EF45041295C8F92320F5541
+</a>
+
+<b>
+010600000001000000010300000001000000170000008FC2F5B846F450415C8FC215450F5541559036B843F450412A4E2FD43A0F5541C4F5E28141F4504194AFDBB9350F55415028F8C337F45041BD4D87593B0F55417F333ADC33F45041D96C2E8B3D0F554198A4A5E833F4504158CE8DAB3D0F5541EC7CFAF633F450418CD7E8D03D0F554118FBFF0A34F45041DCB418053E0F5541ECA2552B34F45041F8D860593E0F55410789475D34F45041B7F58FDB3E0F5541A97D974836F450414C1080C4430F55414CEE5C6339F45041C667CEF34B0F5541FAF1B8CF39F450412933400E4D0F55418F5B08203AF450417A6195DF4D0F55410F9194AB3BF4504157DCDEC5510F5541F97B69A33DF45041080E478C580F5541C3409D8642F450413AB1A6E3690F554148B1547B4EF450416BC675B3660F5541F29ABA6D4EF45041EAB03A6B660F5541A5E5C3514DF45041337671FD600F5541F8CC070A4CF4504147646EB95A0F55419AAA42C44AF45041C5C7150F550F55418FC2F5B846F450415C8FC215450F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>68778 - 339221
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2408 </desc>
+<a>
+01060000000100000001030000000100000016000000F6285C4F3EF45041295C8F92320F5541C3F5288C40F450417B14AE37360F554114AE47B137F45041A4703D2A3B0F55418FC2F5C833F450418FC2F5583D0F554152B81EA53BF450415C8FC2D5510F55413D0AD7D334F450419A9999C9540F554152B81E3537F45041B81E859B590F55415C8FC25538F450415C8FC2155B0F5541333333A33AF450419A9999195E0F55418FC2F5783FF45041CDCCCCFC620F5541713D0A173DF45041295C8F92670F5541A4703D7A36F45041CDCCCCFC6B0F55419A99993937F45041D7A3704D6E0F55417B14AE874EF45041A4703DEA660F5541CDCCCC5C4BF450419A999969570F55418FC2F5B846F450415C8FC215450F554114AE477143F450411F85EBE1390F5541F6285CEF3FF4504133333313320F5541F6285C8F3BF45041666666D6290F55417B14AE5739F45041F6285C7F2A0F55411F85EBC139F450417B14AE272B0F5541F6285C4F3EF45041295C8F92320F5541
+</a>
+
+<b>
+010600000001000000010300000001000000170000008FC2F5B846F450415C8FC215450F5541559036B843F450412A4E2FD43A0F5541C4F5E28141F4504194AFDBB9350F55415028F8C337F45041BD4D87593B0F55417F333ADC33F45041D96C2E8B3D0F554198A4A5E833F4504158CE8DAB3D0F5541EC7CFAF633F450418CD7E8D03D0F554118FBFF0A34F45041DCB418053E0F5541ECA2552B34F45041F8D860593E0F55410789475D34F45041B7F58FDB3E0F5541A97D974836F450414C1080C4430F55414CEE5C6339F45041C667CEF34B0F5541FAF1B8CF39F450412933400E4D0F55418F5B08203AF450417A6195DF4D0F55410F9194AB3BF4504157DCDEC5510F5541F97B69A33DF45041080E478C580F5541C3409D8642F450413AB1A6E3690F554148B1547B4EF450416BC675B3660F5541F29ABA6D4EF45041EAB03A6B660F5541A5E5C3514DF45041337671FD600F5541F8CC070A4CF4504147646EB95A0F55419AAA42C44AF45041C5C7150F550F55418FC2F5B846F450415C8FC215450F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>205311 - 1798555
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2157 </desc>
+<a>
+0106000000010000000103000000010000000D0000000AD7A33009B250418FC2F5581566544148E17AC408B25041713D0A970B665441F6285C6F08B25041A4703DEA03665441713D0A57F1B15041000000E00B66544185EB51F8C7B15041EC51B80E1C6654410AD7A320C6B15041295C8F3224665441B81E852BC7B150413D0AD7432566544100000030DFB15041E17A140E2766544114AE4731EEB15041CDCCCC5C21665441E17A149EFCB15041B81E851B1C665441713D0AF702B25041B81E856B19665441CDCCCC4C08B25041F6285CCF166654410AD7A33009B250418FC2F55815665441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000F6285C6F08B25041A4703DEA0366544125ADC14201B25041FBF83F630666544122E04B77FBB1504139C9165508665441DBAC4D81F5B1504141827F700A66544167BA8A43F1B150415681A0E70B66544196F11E43EDB15041E03F58780D6654418A21F0C2EAB15041A0CFBEA30A6654418FC2F5E8D4B15041713D0A37136654419A9999E9C8B150419A9999E91766544185EB51F8C7B15041EC51B80E1C6654410AD7A320C6B15041295C8F3224665441B81E852BC7B150413D0AD7432566544100000030DFB15041E17A140E2766544114AE4731EEB15041CDCCCC5C21665441E17A149EFCB15041B81E851B1C665441713D0AF702B25041B81E856B19665441CDCCCC4C08B25041F6285CCF166654410AD7A33009B250418FC2F5581566544148E17AC408B25041713D0A970B665441F6285C6F08B25041A4703DEA03665441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>205311 - 3319174
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2157 </desc>
+<a>
+0106000000010000000103000000010000000D0000000AD7A33009B250418FC2F5581566544148E17AC408B25041713D0A970B665441F6285C6F08B25041A4703DEA03665441713D0A57F1B15041000000E00B66544185EB51F8C7B15041EC51B80E1C6654410AD7A320C6B15041295C8F3224665441B81E852BC7B150413D0AD7432566544100000030DFB15041E17A140E2766544114AE4731EEB15041CDCCCC5C21665441E17A149EFCB15041B81E851B1C665441713D0AF702B25041B81E856B19665441CDCCCC4C08B25041F6285CCF166654410AD7A33009B250418FC2F55815665441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000F6285C6F08B25041A4703DEA0366544125ADC14201B25041FBF83F630666544122E04B77FBB1504139C9165508665441DBAC4D81F5B1504141827F700A66544167BA8A43F1B150415681A0E70B66544196F11E43EDB15041E03F58780D6654418A21F0C2EAB15041A0CFBEA30A6654418FC2F5E8D4B15041713D0A37136654419A9999E9C8B150419A9999E91766544185EB51F8C7B15041EC51B80E1C6654410AD7A320C6B15041295C8F3224665441B81E852BC7B150413D0AD7432566544100000030DFB15041E17A140E2766544114AE4731EEB15041CDCCCC5C21665441E17A149EFCB15041B81E851B1C665441713D0AF702B25041B81E856B19665441CDCCCC4C08B25041F6285CCF166654410AD7A33009B250418FC2F5581566544148E17AC408B25041713D0A970B665441F6285C6F08B25041A4703DEA03665441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>834129 - 3024386
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1030 </desc>
+<a>
+01060000000100000001030000000300000081000000E17A14EE2BCE5041295C8F02F1255441EC51B89E23CE5041295C8FC2EF2554416666667623CE504185EB5118EF2554413333335323CE50415C8FC295EE2554413333338321CE5041CDCCCC7CE72554413D0AD7431CCE5041CDCCCCFCE5255441713D0A3717CE504148E17A14E42554413333333316CE50411F85EBB1E32554413D0AD70313CE504148E17AA4DD25544185EB514812CE5041713D0A97DD2554410AD7A33001CE504114AE47E1DB2554418FC2F52800CE50418FC2F558DE2554418FC2F538FECD504100000010DF25544166666666FACD5041F6285C2FE225544152B81E45F6CD5041B81E85ABE72554417B14AEE7EECD5041A4703D9AEC255441666666B6ECCD50413D0AD783EF25544133333323EBCD50417B14AEE7F2255441EC51B82EEACD5041F6285C9FF42554415C8FC215E9CD50415C8FC245F6255441C3F528ECE1CD504152B81EF5FE2554413D0AD7C3DECD5041CDCCCCFC0126544148E17AE4DCCD50410000008003265441000000E0DBCD5041A4703DCA0426544166666616DACD50410000003007265441A4703DCAD8CD50410AD7A340082654413D0AD763D7CD5041713D0A670B2654410AD7A350D7CD5041295C8F920B2654411F85EB91D2CD50411F85EB310A265441E17A147ED1CD504152B81E750A26544148E17AF4D0CD50419A9999E90A26544114AE4721D0CD5041B81E855B0B265441000000B0CECD50418FC2F5D80B265441C3F5288CCACD5041713D0AB70C265441C3F528BCC2CD50411F85EBC111265441AE47E1AAC4CD5041B81E853B15265441F6285CCFC4CD5041E17A149E192654410AD7A360C7CD50410AD7A300212654417B14AEF7C7CD5041C3F5280C28265441B81E855BC8CD504114AE47912A2654418FC2F548C7CD5041000000002F26544166666636C6CD5041F6285CEF312654410AD7A3A0C5CD50419A9999D93326544114AE47E1C4CD5041666666C6362654411F85EB51C4CD504152B81E453926544133333333C3CD504185EB51583D2654413D0AD7C3C0CD504148E17AA4432654417B14AE77BFCD5041C3F5287C45265441E17A148EBACD5041A4703D2A44265441E17A141EB7CD50410AD7A3B04326544185EB5118B5CD50410AD7A36044265441CDCCCC2CB0CD5041CDCCCCCC472654417B14AEF7AFCD504114AE47F147265441EC51B88EAFCD5041A4703D3A482654413D0AD743AECD50410AD7A320492654415C8FC2B5ADCD50413333338349265441C3F5286CADCD504148E17A2449265441333333F3AACD5041A4703DBA4B265441D7A370CDAACD50413D0AD7334C26544100000090ADCD50418FC2F5084D265441B81E85DBAECD5041E17A14DE4C265441295C8FB2AFCD504152B81E654C265441333333A3B0CD5041D7A370ED4B26544166666646B1CD5041B81E859B4B26544100000080B1CD5041EC51B87E4B26544148E17AC4B1CD5041D7A3705D4B2654413D0AD713B4CD5041713D0AB74A265441A4703D5AB6CD5041D7A3708D4A265441F6285C7FB8CD5041E17A14BE4A2654411F85EB61BACD5041333333434B2654419A999909BBCD50410AD7A3A04B265441E17A143EBFCD504114AE47714D265441A4703D2AC3CD5041666666464F265441F6285CDFC6CD50413D0AD783502654418FC2F5E8C9CD50413D0AD7135126544152B81E95CCCD50417B14AE37512654411F85EB41CFCD50417B14AEE750265441E17A14DED2CD5041CDCCCC2C502654418FC2F518D6CD50410AD7A3604F2654411F85EBD1DACD50419A9999794E26544148E17AA4DECD5041333333D34D265441B81E85DBE1CD504152B81EB54C2654419A999979E5CD5041333333B34A265441713D0AC7E8CD504152B81E554826544148E17A24EBCD5041C3F5288C46265441E17A148EEDCD50410AD7A34045265441295C8F52F0CD504152B81E4544265441295C8FA2F5CD5041EC51B83E43265441E17A144EFBCD504133333393422654419A99995900CE504152B81E1542265441000000C005CE50417B14AE3742265441E17A145E09CE5041A4703DAA4226544148E17AE40CCE504133333383432654419A99999910CE5041C3F528FC44265441E17A14AE13CE5041333333A346265441B81E85FB16CE50417B14AE2748265441E17A149E19CE5041C3F528BC48265441B81E853B1DCE5041333333D348265441E17A14CE20CE504152B81EF548265441B81E851B24CE50410AD7A350492654419A9999C926CE5041A4703D2A4A2654411F85EB0129CE5041EC51B84E4A26544185EB51A82ACE504114AE47114A265441A4703D3A2ECE5041E17A143E492654413D0AD70330CE5041CDCCCC7C482654415C8FC22531CE5041713D0A8747265441A4703D0A32CE5041CDCCCC5C4526544152B81E8532CE5041AE47E1CA41265441D7A370DD32CE5041AE47E14A3D265441E17A143E33CE5041A4703D0A38265441CDCCCC8C33CE5041000000303526544185EB510834CE5041C3F5287C302654413D0AD7E334CE5041666666F6282654418FC2F52835CE504114AE47B1252654416666665635CE5041A4703DDA232654416666669635CE5041A4703D5A222654418FC2F58836CE5041E17A143E1B265441000000F036CE504185EB5128182654417B14AE9737CE5041B81E85DB152654419A99995938CE5041A4703DCA12265441B81E85CB3BCE504100000020082654417B14AEA73DCE50415C8FC2F500265441F6285C5F41CE5041295C8F92F325544185EB51983ACE504152B81E15F3255441EC51B87E39CE50410AD7A3F0F225544152B81EE538CE5041CDCCCCDCF22554413D0AD74334CE50413D0AD743F225544185EB51882CCE5041A4703D1AF1255441E17A14EE2BCE5041295C8F02F12554410C000000333333030FCE5041B81E853B2326544148E17A440DCE5041CDCCCC6C22265441E17A14CE0DCE5041EC51B8EE1E265441EC51B8BE0ECE504114AE4751142654415C8FC205FFCD5041713D0A87152654419A9999D9FFCD50410AD7A3700C265441CDCCCCAC05CE504148E17A640A265441295C8F0211CE5041295C8F7209265441333333B311CE5041713D0AC70A265441F6285C5F12CE50418FC2F5F8122654417B14AE0711CE50410AD7A3701B265441333333030FCE5041B81E853B2326544109000000713D0AF7FFCD504114AE47C1F6255441E17A145E02CE5041B81E853BF925544185EB517803CE50418FC2F52800265441A4703D2A00CE504114AE475100265441333333E3F5CD5041EC51B85E01265441CDCCCCBCF3CD50410AD7A380F8255441000000D0F4CD5041F6285C9FF6255441EC51B8EEFBCD5041CDCCCC7CF6255441713D0AF7FFCD504114AE47C1F6255441
+</a>
+
+<b>
+0106000000010000000103000000010000003900000017B4140182CD5041B3D949F02D265441669B636982CD504184B0229E2E265441AB20C8A888CD5041D9A086193326544134A552B28ACD50416299257237265441FBA52CE88ECD5041F605D9193E265441E3642E3494CD5041C271B28B402654410E7A6AD79CCD50411529F6C344265441B9895CB6A8CD50415DE77A464B26544195D449B3ABCD50413D2953304A2654416DFD33E2ACCD50417FB228B749265441C3F5286CADCD504148E17A24492654415C8FC2B5ADCD50413333338349265441535E9020AFCD504118C5F186482654410298C650B0CD5041BF30C6B347265441EA38C27DB2CD50419A51A04C45265441C218B03EB7CD50410CEE01B8422654411B7413F6B9CD50415BD5502043265441129E147EBDCD50415BD5502043265441CF2ADA64BFCD5041836977AE4026544118A72991C1CD5041FB70D8553C26544148446532C3CD5041670425AE35265441F4F1168EC4CD50411214C1323126544142220CA2C6CD50417A54B2A12D2654418DC2BF32C8CD504199F195AA29265441D54DFDF8C7CD5041E4059F1428265441C7D04AAEC7CD50410849DC9F242654418554BD6DC7CD50413BC90E9D212654410AD7A360C7CD50410AD7A30021265441F6285CCFC4CD5041E17A149E1926544177FBC3B9C4CD50410A7B5079172654411C173606C4CD50417329C03615265441386551A7C2CD5041680690DC13265441413B501FBFCD5041B7EDDE441426544163C997E4BACD50410329375C162654416FC6619AB8CD504101DE42C018265441B3BB0523B8CD5041AC6A2505142654413F2926F9B6CD50418CBBA2DF1026544156CC0ED6ABCD5041C0C3DDBC102654411AA994BF9FCD5041AC79CAF511265441082C6B5D99CD5041B282DF0816265441D7F019E591CD50411A1F4174132654412B43688990CD5041A570B5E20D265441FBA52CE88ECD5041EDDADAE8072654414FF87A8C8DCD504160EB50A307265441E052040E8CCD50414BA13DDC0826544100112C248DCD5041B5DBB41E0C2654413F1967018DCD50419C9AB66A11265441A6B5C86C8ACD5041972FB72E132654416739794088CD50416F0FA5EF172654412D9C3D9F86CD5041F70744481C265441515150A283CD50417A83B93E1A265441D22EB0C17BCD50413472694E16265441C24F9C367BCD5041AD17E0CC17265441F6E3C2C478CD50416142BB8A1F265441CF342B9279CD5041D65ED37B26265441F68283157BCD50416F5CB8B52A26544117B4140182CD5041B3D949F02D265441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>834129 - 5294170
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1030 </desc>
+<a>
+01060000000100000001030000000300000081000000E17A14EE2BCE5041295C8F02F1255441EC51B89E23CE5041295C8FC2EF2554416666667623CE504185EB5118EF2554413333335323CE50415C8FC295EE2554413333338321CE5041CDCCCC7CE72554413D0AD7431CCE5041CDCCCCFCE5255441713D0A3717CE504148E17A14E42554413333333316CE50411F85EBB1E32554413D0AD70313CE504148E17AA4DD25544185EB514812CE5041713D0A97DD2554410AD7A33001CE504114AE47E1DB2554418FC2F52800CE50418FC2F558DE2554418FC2F538FECD504100000010DF25544166666666FACD5041F6285C2FE225544152B81E45F6CD5041B81E85ABE72554417B14AEE7EECD5041A4703D9AEC255441666666B6ECCD50413D0AD783EF25544133333323EBCD50417B14AEE7F2255441EC51B82EEACD5041F6285C9FF42554415C8FC215E9CD50415C8FC245F6255441C3F528ECE1CD504152B81EF5FE2554413D0AD7C3DECD5041CDCCCCFC0126544148E17AE4DCCD50410000008003265441000000E0DBCD5041A4703DCA0426544166666616DACD50410000003007265441A4703DCAD8CD50410AD7A340082654413D0AD763D7CD5041713D0A670B2654410AD7A350D7CD5041295C8F920B2654411F85EB91D2CD50411F85EB310A265441E17A147ED1CD504152B81E750A26544148E17AF4D0CD50419A9999E90A26544114AE4721D0CD5041B81E855B0B265441000000B0CECD50418FC2F5D80B265441C3F5288CCACD5041713D0AB70C265441C3F528BCC2CD50411F85EBC111265441AE47E1AAC4CD5041B81E853B15265441F6285CCFC4CD5041E17A149E192654410AD7A360C7CD50410AD7A300212654417B14AEF7C7CD5041C3F5280C28265441B81E855BC8CD504114AE47912A2654418FC2F548C7CD5041000000002F26544166666636C6CD5041F6285CEF312654410AD7A3A0C5CD50419A9999D93326544114AE47E1C4CD5041666666C6362654411F85EB51C4CD504152B81E453926544133333333C3CD504185EB51583D2654413D0AD7C3C0CD504148E17AA4432654417B14AE77BFCD5041C3F5287C45265441E17A148EBACD5041A4703D2A44265441E17A141EB7CD50410AD7A3B04326544185EB5118B5CD50410AD7A36044265441CDCCCC2CB0CD5041CDCCCCCC472654417B14AEF7AFCD504114AE47F147265441EC51B88EAFCD5041A4703D3A482654413D0AD743AECD50410AD7A320492654415C8FC2B5ADCD50413333338349265441C3F5286CADCD504148E17A2449265441333333F3AACD5041A4703DBA4B265441D7A370CDAACD50413D0AD7334C26544100000090ADCD50418FC2F5084D265441B81E85DBAECD5041E17A14DE4C265441295C8FB2AFCD504152B81E654C265441333333A3B0CD5041D7A370ED4B26544166666646B1CD5041B81E859B4B26544100000080B1CD5041EC51B87E4B26544148E17AC4B1CD5041D7A3705D4B2654413D0AD713B4CD5041713D0AB74A265441A4703D5AB6CD5041D7A3708D4A265441F6285C7FB8CD5041E17A14BE4A2654411F85EB61BACD5041333333434B2654419A999909BBCD50410AD7A3A04B265441E17A143EBFCD504114AE47714D265441A4703D2AC3CD5041666666464F265441F6285CDFC6CD50413D0AD783502654418FC2F5E8C9CD50413D0AD7135126544152B81E95CCCD50417B14AE37512654411F85EB41CFCD50417B14AEE750265441E17A14DED2CD5041CDCCCC2C502654418FC2F518D6CD50410AD7A3604F2654411F85EBD1DACD50419A9999794E26544148E17AA4DECD5041333333D34D265441B81E85DBE1CD504152B81EB54C2654419A999979E5CD5041333333B34A265441713D0AC7E8CD504152B81E554826544148E17A24EBCD5041C3F5288C46265441E17A148EEDCD50410AD7A34045265441295C8F52F0CD504152B81E4544265441295C8FA2F5CD5041EC51B83E43265441E17A144EFBCD504133333393422654419A99995900CE504152B81E1542265441000000C005CE50417B14AE3742265441E17A145E09CE5041A4703DAA4226544148E17AE40CCE504133333383432654419A99999910CE5041C3F528FC44265441E17A14AE13CE5041333333A346265441B81E85FB16CE50417B14AE2748265441E17A149E19CE5041C3F528BC48265441B81E853B1DCE5041333333D348265441E17A14CE20CE504152B81EF548265441B81E851B24CE50410AD7A350492654419A9999C926CE5041A4703D2A4A2654411F85EB0129CE5041EC51B84E4A26544185EB51A82ACE504114AE47114A265441A4703D3A2ECE5041E17A143E492654413D0AD70330CE5041CDCCCC7C482654415C8FC22531CE5041713D0A8747265441A4703D0A32CE5041CDCCCC5C4526544152B81E8532CE5041AE47E1CA41265441D7A370DD32CE5041AE47E14A3D265441E17A143E33CE5041A4703D0A38265441CDCCCC8C33CE5041000000303526544185EB510834CE5041C3F5287C302654413D0AD7E334CE5041666666F6282654418FC2F52835CE504114AE47B1252654416666665635CE5041A4703DDA232654416666669635CE5041A4703D5A222654418FC2F58836CE5041E17A143E1B265441000000F036CE504185EB5128182654417B14AE9737CE5041B81E85DB152654419A99995938CE5041A4703DCA12265441B81E85CB3BCE504100000020082654417B14AEA73DCE50415C8FC2F500265441F6285C5F41CE5041295C8F92F325544185EB51983ACE504152B81E15F3255441EC51B87E39CE50410AD7A3F0F225544152B81EE538CE5041CDCCCCDCF22554413D0AD74334CE50413D0AD743F225544185EB51882CCE5041A4703D1AF1255441E17A14EE2BCE5041295C8F02F12554410C000000333333030FCE5041B81E853B2326544148E17A440DCE5041CDCCCC6C22265441E17A14CE0DCE5041EC51B8EE1E265441EC51B8BE0ECE504114AE4751142654415C8FC205FFCD5041713D0A87152654419A9999D9FFCD50410AD7A3700C265441CDCCCCAC05CE504148E17A640A265441295C8F0211CE5041295C8F7209265441333333B311CE5041713D0AC70A265441F6285C5F12CE50418FC2F5F8122654417B14AE0711CE50410AD7A3701B265441333333030FCE5041B81E853B2326544109000000713D0AF7FFCD504114AE47C1F6255441E17A145E02CE5041B81E853BF925544185EB517803CE50418FC2F52800265441A4703D2A00CE504114AE475100265441333333E3F5CD5041EC51B85E01265441CDCCCCBCF3CD50410AD7A380F8255441000000D0F4CD5041F6285C9FF6255441EC51B8EEFBCD5041CDCCCC7CF6255441713D0AF7FFCD504114AE47C1F6255441
+</a>
+
+<b>
+0106000000010000000103000000010000003900000017B4140182CD5041B3D949F02D265441669B636982CD504184B0229E2E265441AB20C8A888CD5041D9A086193326544134A552B28ACD50416299257237265441FBA52CE88ECD5041F605D9193E265441E3642E3494CD5041C271B28B402654410E7A6AD79CCD50411529F6C344265441B9895CB6A8CD50415DE77A464B26544195D449B3ABCD50413D2953304A2654416DFD33E2ACCD50417FB228B749265441C3F5286CADCD504148E17A24492654415C8FC2B5ADCD50413333338349265441535E9020AFCD504118C5F186482654410298C650B0CD5041BF30C6B347265441EA38C27DB2CD50419A51A04C45265441C218B03EB7CD50410CEE01B8422654411B7413F6B9CD50415BD5502043265441129E147EBDCD50415BD5502043265441CF2ADA64BFCD5041836977AE4026544118A72991C1CD5041FB70D8553C26544148446532C3CD5041670425AE35265441F4F1168EC4CD50411214C1323126544142220CA2C6CD50417A54B2A12D2654418DC2BF32C8CD504199F195AA29265441D54DFDF8C7CD5041E4059F1428265441C7D04AAEC7CD50410849DC9F242654418554BD6DC7CD50413BC90E9D212654410AD7A360C7CD50410AD7A30021265441F6285CCFC4CD5041E17A149E1926544177FBC3B9C4CD50410A7B5079172654411C173606C4CD50417329C03615265441386551A7C2CD5041680690DC13265441413B501FBFCD5041B7EDDE441426544163C997E4BACD50410329375C162654416FC6619AB8CD504101DE42C018265441B3BB0523B8CD5041AC6A2505142654413F2926F9B6CD50418CBBA2DF1026544156CC0ED6ABCD5041C0C3DDBC102654411AA994BF9FCD5041AC79CAF511265441082C6B5D99CD5041B282DF0816265441D7F019E591CD50411A1F4174132654412B43688990CD5041A570B5E20D265441FBA52CE88ECD5041EDDADAE8072654414FF87A8C8DCD504160EB50A307265441E052040E8CCD50414BA13DDC0826544100112C248DCD5041B5DBB41E0C2654413F1967018DCD50419C9AB66A11265441A6B5C86C8ACD5041972FB72E132654416739794088CD50416F0FA5EF172654412D9C3D9F86CD5041F70744481C265441515150A283CD50417A83B93E1A265441D22EB0C17BCD50413472694E16265441C24F9C367BCD5041AD17E0CC17265441F6E3C2C478CD50416142BB8A1F265441CF342B9279CD5041D65ED37B26265441F68283157BCD50416F5CB8B52A26544117B4140182CD5041B3D949F02D265441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>210956 - 194240
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -7101 </desc>
+<a>
+01060000000100000001030000000100000053000000CDCCCCBC67B85041C3F5284CD4585441713D0A2767B850410AD7A340D35854418FC2F5C865B85041A4703DCAD1585441295C8F4265B85041E17A14CED058544148E17A0465B85041EC51B82ED05854418FC2F5C864B85041295C8F32CE5854418FC2F56865B850417B14AE67CC5854413333332367B850418FC2F5F8CB585441C3F528EC68B85041D7A370EDCB5854413D0AD7036AB850411F85EB41CC5854413D0AD7736AB8504114AE4781CB585441AE47E1AA6AB85041D7A3701DC958544185EB51786AB85041EC51B85EC55854413D0AD7336AB8504100000020C5585441CDCCCC2C6AB8504152B81E55C0585441B81E85CB6AB850410AD7A380BC585441E17A141E6CB85041713D0A57B8585441295C8F126CB85041F6285CFFB658544185EB51386BB850418FC2F5F8B65854411F85EB4169B85041A4703D8AB6585441D7A3708D67B850415C8FC295B6585441333333E366B850417B14AEF7B658544148E17AC465B850417B14AE87B75854413D0AD79365B8504114AE4701B85854419A9999F964B8504100000060B8585441D7A370ED63B85041CDCCCC6CB85854415C8FC20563B85041D7A370DDB858544185EB51C861B85041666666F6B9585441B81E85FB60B850410AD7A320BC585441F6285CFF5FB85041CDCCCCACBD585441B81E85BB5EB85041F6285C4FBE585441F6285CBF5DB85041AE47E12ABE585441713D0AC75BB85041AE47E19ABD5854410AD7A37059B85041D7A370BDBC5854415C8FC29558B85041A4703DEABC5854413D0AD73357B85041295C8FE2BD58544152B81EE556B8504152B81E95BE5854411F85EB0157B8504185EB5188BF5854410000000057B8504152B81E55C05854411F85EB2156B850415C8FC275C1585441D7A3700D55B85041EC51B84EC2585441B81E85BB52B85041B81E852BC35854419A99993951B8504114AE4781C35854411F85EB914FB850410AD7A390C45854411F85EB714EB85041AE47E11AC6585441B81E85EB4DB85041E17A14AEC65854413D0AD7334EB850411F85EB61C75854415C8FC2D54EB850413D0AD703C8585441C3F5282C50B8504114AE47C1C85854418FC2F59851B8504148E17A64C8585441E17A14CE52B85041295C8FB2C8585441B81E850B54B8504166666686C9585441A4703DFA53B85041AE47E10ACB5854419A99994953B85041AE47E15ACC58544114AE47A151B8504148E17A14CE585441A4703D2A50B8504133333313CF585441295C8F424FB85041A4703D5ACF5854411F85EBA14EB850418FC2F5C8CF585441EC51B88E4DB850415C8FC2C5D0585441000000F04CB850413D0AD703D2585441000000004DB85041333333E3D3585441000000E04DB85041AE47E11AD558544185EB512851B850419A9999E9D45854418FC2F57854B85041A4703DEAD5585441000000405AB85041CDCCCC9CD9585441713D0A075FB8504148E17A14DD5854418FC2F54861B850419A999999DB5854413333330362B8504114AE47B1DA585441295C8FF262B850413D0AD753DA5854419A99997963B850415C8FC225DA585441A4703D1A64B85041666666A6DA5854418FC2F5F864B8504148E17A24DB585441F6285CAF65B850415C8FC255DB58544114AE47B166B8504185EB5138DB585441000000E069B8504166666606DB5854410AD7A3D069B8504148E17A34DA5854410AD7A35069B85041295C8F42D95854418FC2F54868B8504148E17AA4D85854418FC2F5A867B850413D0AD743D8585441AE47E12A68B85041AE47E10AD7585441B81E853B68B850419A999939D6585441CDCCCC2C68B850417B14AE77D5585441CDCCCCBC67B85041C3F5284CD4585441
+</a>
+
+<b>
+01060000000100000001030000000100000029000000530AD7336AB8504136000020C558544194F056306AB85041F62AFABDC2585441DBB755306AB85041DD4725BDC2585441B7CCCC2C6AB850413CB81E55C058544190EB51E855B850417847E11AD65854412D95B68C55B85041EC9FB79AD6585441000000405AB85041CDCCCC9CD9585441713D0A075FB8504148E17A14DD585441A474195B5FB850410767D283DD585441F0C2F54861B850418F999999DB5854417E33330362B85041F4AD47B1DA5854413E5C8FF262B850411D0AD753DA5854419A99997963B85041118FC225DA585441DA703D1A64B850417C6666A6DA585441C5C2F5F864B8504148E17A24DB585441F6285CAF65B85041928FC255DB585441EAAD47B166B850415AEB5138DB585441AAFFFFDF69B8504171666606DB5854412AD7A3D069B85041F2E07A34DA585441EAD6A35069B850411E5C8F42D95854419AC2F54868B85041FDE07AA4D85854418FC2F5A867B85041680AD743D8585441B947E12A68B850415847E10AD75854418D1E853B68B8504184999939D65854412DCDCC2C68B850413014AE77D558544197CCCCBC67B85041B8F5284CD45854415B3D0A2767B850410AD7A340D35854414FC2F5C865B85041EF703DCAD15854417FA35D958BB85041C05C2806DF5854410E6FAD9B8CB85041AD4C034BDF585441CDCCCC9C8CB8504148E17A44DF58544114AE47018DB85041295C8FD2DB58544151A2C6148DB85041FEB51F08DA5854418BE28D3A8DB85041F4A7FCDAD9585441666666768DB85041D7A370CDD75854413D0AD79386B850411F85EB51D35854417E3AA7FE85B85041FFF0CFF0D25854410AD7A3007DB8504166666616CD58544185EB51B876B85041F6285CFFC858544185EB51786AB85041EC51B85EC5585441530AD7336AB8504136000020C5585441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>210956 - 289907
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -7101 </desc>
+<a>
+01060000000100000001030000000100000053000000CDCCCCBC67B85041C3F5284CD4585441713D0A2767B850410AD7A340D35854418FC2F5C865B85041A4703DCAD1585441295C8F4265B85041E17A14CED058544148E17A0465B85041EC51B82ED05854418FC2F5C864B85041295C8F32CE5854418FC2F56865B850417B14AE67CC5854413333332367B850418FC2F5F8CB585441C3F528EC68B85041D7A370EDCB5854413D0AD7036AB850411F85EB41CC5854413D0AD7736AB8504114AE4781CB585441AE47E1AA6AB85041D7A3701DC958544185EB51786AB85041EC51B85EC55854413D0AD7336AB8504100000020C5585441CDCCCC2C6AB8504152B81E55C0585441B81E85CB6AB850410AD7A380BC585441E17A141E6CB85041713D0A57B8585441295C8F126CB85041F6285CFFB658544185EB51386BB850418FC2F5F8B65854411F85EB4169B85041A4703D8AB6585441D7A3708D67B850415C8FC295B6585441333333E366B850417B14AEF7B658544148E17AC465B850417B14AE87B75854413D0AD79365B8504114AE4701B85854419A9999F964B8504100000060B8585441D7A370ED63B85041CDCCCC6CB85854415C8FC20563B85041D7A370DDB858544185EB51C861B85041666666F6B9585441B81E85FB60B850410AD7A320BC585441F6285CFF5FB85041CDCCCCACBD585441B81E85BB5EB85041F6285C4FBE585441F6285CBF5DB85041AE47E12ABE585441713D0AC75BB85041AE47E19ABD5854410AD7A37059B85041D7A370BDBC5854415C8FC29558B85041A4703DEABC5854413D0AD73357B85041295C8FE2BD58544152B81EE556B8504152B81E95BE5854411F85EB0157B8504185EB5188BF5854410000000057B8504152B81E55C05854411F85EB2156B850415C8FC275C1585441D7A3700D55B85041EC51B84EC2585441B81E85BB52B85041B81E852BC35854419A99993951B8504114AE4781C35854411F85EB914FB850410AD7A390C45854411F85EB714EB85041AE47E11AC6585441B81E85EB4DB85041E17A14AEC65854413D0AD7334EB850411F85EB61C75854415C8FC2D54EB850413D0AD703C8585441C3F5282C50B8504114AE47C1C85854418FC2F59851B8504148E17A64C8585441E17A14CE52B85041295C8FB2C8585441B81E850B54B8504166666686C9585441A4703DFA53B85041AE47E10ACB5854419A99994953B85041AE47E15ACC58544114AE47A151B8504148E17A14CE585441A4703D2A50B8504133333313CF585441295C8F424FB85041A4703D5ACF5854411F85EBA14EB850418FC2F5C8CF585441EC51B88E4DB850415C8FC2C5D0585441000000F04CB850413D0AD703D2585441000000004DB85041333333E3D3585441000000E04DB85041AE47E11AD558544185EB512851B850419A9999E9D45854418FC2F57854B85041A4703DEAD5585441000000405AB85041CDCCCC9CD9585441713D0A075FB8504148E17A14DD5854418FC2F54861B850419A999999DB5854413333330362B8504114AE47B1DA585441295C8FF262B850413D0AD753DA5854419A99997963B850415C8FC225DA585441A4703D1A64B85041666666A6DA5854418FC2F5F864B8504148E17A24DB585441F6285CAF65B850415C8FC255DB58544114AE47B166B8504185EB5138DB585441000000E069B8504166666606DB5854410AD7A3D069B8504148E17A34DA5854410AD7A35069B85041295C8F42D95854418FC2F54868B8504148E17AA4D85854418FC2F5A867B850413D0AD743D8585441AE47E12A68B85041AE47E10AD7585441B81E853B68B850419A999939D6585441CDCCCC2C68B850417B14AE77D5585441CDCCCCBC67B85041C3F5284CD4585441
+</a>
+
+<b>
+01060000000100000001030000000100000029000000530AD7336AB8504136000020C558544194F056306AB85041F62AFABDC2585441DBB755306AB85041DD4725BDC2585441B7CCCC2C6AB850413CB81E55C058544190EB51E855B850417847E11AD65854412D95B68C55B85041EC9FB79AD6585441000000405AB85041CDCCCC9CD9585441713D0A075FB8504148E17A14DD585441A474195B5FB850410767D283DD585441F0C2F54861B850418F999999DB5854417E33330362B85041F4AD47B1DA5854413E5C8FF262B850411D0AD753DA5854419A99997963B85041118FC225DA585441DA703D1A64B850417C6666A6DA585441C5C2F5F864B8504148E17A24DB585441F6285CAF65B85041928FC255DB585441EAAD47B166B850415AEB5138DB585441AAFFFFDF69B8504171666606DB5854412AD7A3D069B85041F2E07A34DA585441EAD6A35069B850411E5C8F42D95854419AC2F54868B85041FDE07AA4D85854418FC2F5A867B85041680AD743D8585441B947E12A68B850415847E10AD75854418D1E853B68B8504184999939D65854412DCDCC2C68B850413014AE77D558544197CCCCBC67B85041B8F5284CD45854415B3D0A2767B850410AD7A340D35854414FC2F5C865B85041EF703DCAD15854417FA35D958BB85041C05C2806DF5854410E6FAD9B8CB85041AD4C034BDF585441CDCCCC9C8CB8504148E17A44DF58544114AE47018DB85041295C8FD2DB58544151A2C6148DB85041FEB51F08DA5854418BE28D3A8DB85041F4A7FCDAD9585441666666768DB85041D7A370CDD75854413D0AD79386B850411F85EB51D35854417E3AA7FE85B85041FFF0CFF0D25854410AD7A3007DB8504166666616CD58544185EB51B876B85041F6285CFFC858544185EB51786AB85041EC51B85EC5585441530AD7336AB8504136000020C5585441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>101354 - 3127448
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2323 </desc>
+<a>
+0106000000030000000103000000010000001800000066666626D19250417B14AEA778245441E17A14EEC5925041295C8F427E245441E17A14CEB8925041295C8F9283245441E17A145EC1925041295C8FE296245441E17A145EC6925041295C8FE2A4245441E17A142ED0925041295C8FD2C4245441E17A146EE0925041666666A6C024544166666656DF925041666666B6BA245441A4703DBAE4925041A4703D7AB5245441E17A14AEE0925041295C8F92A8245441E17A143EDE925041295C8F32A9245441E17A14EEDB925041295C8FB2A3245441E17A147EDF925041AE47E16AA2245441666666B6E8925041295C8F12A02454417B14AED7F19250410AD7A3E09E245441CDCCCC4CEB9250415C8FC22593245441EC51B88EE59250413D0AD7B3922454410AD7A3D0E39250413D0AD7F39124544133333393E1925041A4703D7A90245441E17A14DEDD925041B81E85AB8A245441A4703D1AD992504185EB51A880245441A4703DCAD69250417B14AEE77C24544185EB5108D3925041E17A143E7924544166666626D19250417B14AEA77824544101030000000100000015000000E17A145E079350415C8FC2D5BE245441E17A140E0F935041295C8F02CA245441E17A14FE12935041295C8F32CC245441E17A145E18935041295C8F92C8245441E17A148E1A935041295C8FD2C2245441E17A14FE18935041295C8FA2BB245441E17A14DE1A935041295C8F52AE2454411F85EB711C935041295C8FC2A9245441E17A14BE1D935041295C8F02A6245441E17A14BE1C935041295C8F129D245441D7A370CD15935041C3F528AC91245441F6285CAF0E935041EC51B8AE91245441713D0A57059350415C8FC2E59024544185EB5178F792504148E17AE492245441E17A144EF0925041295C8F1293245441E17A145EED925041295C8F9293245441E17A145EF2925041295C8FB29C245441E17A147EF5925041295C8F92A12454419A9999F9F99250415C8FC225A7245441D7A3709DFB925041A4703D0AAA245441E17A145E079350415C8FC2D5BE24544101030000000100000010000000E17A14BECC92504148E17A24762454419A9999A9D39250410AD7A39078245441B81E856BD7925041A4703D3A7C2454411F85EBD1D7925041AE47E1DA7C24544133333363E0925041CDCCCC0C79245441000000B0EA92504152B81E25762454415C8FC245EC9250417B14AE077B24544114AE472102935041666666C672245441295C8FF2FE92504114AE47B16B245441A4703DFAFB925041713D0A77662454417B14AE47F69250418FC2F5085C245441F6285CDFEE925041F6285C0F602454418FC2F5E8E79250418FC2F54863245441E17A144EDF925041295C8F326B245441E17A14FECE925041295C8FD274245441E17A14BECC92504148E17A2476245441
+</a>
+
+<b>
+01060000000100000001030000000100000063000000E17A145EC6925041295C8FE2A424544158ED2939D092504177CAB6CFC4245441E17A146EE0925041666666A6C024544166666656DF925041666666B6BA245441A4703DBAE4925041A4703D7AB5245441E17A14AEE0925041295C8F92A8245441E17A143EDE925041295C8F32A9245441E17A14EEDB925041295C8FB2A3245441E17A147EDF925041AE47E16AA224544121D3088EED9250413D1D1D099F2454419B3FA1BEF592504177D9AFEFAC245441D7A3709DFB925041A4703D0AAA2454415C77E372FE925041E140CC2AAE2454414DCC4F940093504198F2790AB22454413E21BCB502935041382892B8B52454415B6E533A05935041893E56F3BA245441B093745107935041BC1F792DBE24544116C864CC1993504158E758B4B52454410246CF4E1A935041F070C86FB42454410E87367C1A9350416BA5587CB22454413F8BD3311B93504182668C0EAF24544173FA92F61B935041A9D349DDAB245441A39865781C93504115138919AA2454412532398B1C935041D3EA64C1A924544133F7F5711C935041F9E08EC2A9245441B76964B31C9350410E795505A9245441622D351C15935041839194829D245441ABD39C720D93504149A48A7E91245441000000100B9350413D0AD72391245441A3C2861D08935041D3C7D60391245441713D0A57059350415C8FC2E5902454416B14EF7A03935041AEE30D2491245441240F36CAFF925041BDAFA99F9124544181A79CBBF5925041E3640C0D93245441550224BDEE925041E03290FE92245441898ABE7FEA925041E3640C0D93245441FFD03B03E7925041CDE876DB92245441DA3BAF83E392504189B33ED391245441A356E968E19250415CD6F8939024544183422944DF925041CE71E14D8D2454417FFB2616DE925041964A5A038B245441AE47E15ADD9250417B14AE3789245441194B5254DC925041EDC62A2787245441D92FC193DB92504108FA8AA3852454415935E76DDA9250414D140A548324544147E28895D9925041270981A081245441BCDE016CD89250412496978D7F24544137E42605D7925041C4CA46477D245441886900EDD7925041A39E3E057D2454411F85EBD1D7925041AE47E1DA7C24544133333363E0925041CDCCCC0C79245441000000B0EA92504152B81E2576245441223FF22C00935041B374EE6C6E245441295C8FF2FE92504114AE47B16B245441A4703DFAFB925041713D0A776624544180E5A3E7FA9250413BA0598064245441EDCD7F01D192504154FAFFE6752454412BCDF9BDCE9250410936AED7762454413AF4EAC8D0925041F7C85F8A7824544166666626D19250417B14AEA778245441E17A14EEC5925041295C8F427E245441E17A14CEB8925041295C8F928324544163C23BB8B1925041D764F2F484245441713D0A97B39250416666669687245441C3F234F0B59250414323DEA18B24544181AA7CDBB8925041E56101A99024544133660473BB9250418ECD6E9D9724544179AC734DB39250410729497F9B245441B81E854BB4925041713D0A379D24544195F21D0CBB925041952F063AA924544150E24490C1925041846B65D6B4245441EDBFEE2AC5925041ABAC7D83BB245441F1BE4F67C8925041D90CE21AC2245441427B1113C9925041BA4AD408C42454417F791DABC9925041A647E912C52454414222D54FCA9250417345F8D0C5245441666666F6CA925041AE47E14AC62454418D27B865CC925041EF491277C6245441587745E6CE925041062BAD22C6245441C0ED640DCD9250419A10EBE1C1245441B11B93AECC9250414C4F5A1EC1245441C588CA1FCB92504184C78ED4BD245441CB8B84CEC9925041769E1FFDB9245441BE435941C99250411C438293B7245441702A9004C99250414DED5612B7245441983ACF81C89250410E55D72EB524544144C1B859C892504131A387C4B4245441CB8B23F1C6925041C58FD0C0B124544129552884C6925041B60E127AB0245441F0327CB6C5925041493B0209AE245441B1361012C59250417E403FCAAC2454415AF25705C4925041F133C716AB2454413CFD2EA9C29250415932501EA824544171D88272C0925041D2BB293EA42454417ED87DF5BF925041329C0073A3245441067470C1BD9250410CE847D19F245441E03159B5BF92504135B50D8A9D245441BCEE0A27C3925041203A0EE29B245441E17A145EC6925041295C8FE2A4245441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>101354 - 3514388
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2323 </desc>
+<a>
+0106000000030000000103000000010000001800000066666626D19250417B14AEA778245441E17A14EEC5925041295C8F427E245441E17A14CEB8925041295C8F9283245441E17A145EC1925041295C8FE296245441E17A145EC6925041295C8FE2A4245441E17A142ED0925041295C8FD2C4245441E17A146EE0925041666666A6C024544166666656DF925041666666B6BA245441A4703DBAE4925041A4703D7AB5245441E17A14AEE0925041295C8F92A8245441E17A143EDE925041295C8F32A9245441E17A14EEDB925041295C8FB2A3245441E17A147EDF925041AE47E16AA2245441666666B6E8925041295C8F12A02454417B14AED7F19250410AD7A3E09E245441CDCCCC4CEB9250415C8FC22593245441EC51B88EE59250413D0AD7B3922454410AD7A3D0E39250413D0AD7F39124544133333393E1925041A4703D7A90245441E17A14DEDD925041B81E85AB8A245441A4703D1AD992504185EB51A880245441A4703DCAD69250417B14AEE77C24544185EB5108D3925041E17A143E7924544166666626D19250417B14AEA77824544101030000000100000015000000E17A145E079350415C8FC2D5BE245441E17A140E0F935041295C8F02CA245441E17A14FE12935041295C8F32CC245441E17A145E18935041295C8F92C8245441E17A148E1A935041295C8FD2C2245441E17A14FE18935041295C8FA2BB245441E17A14DE1A935041295C8F52AE2454411F85EB711C935041295C8FC2A9245441E17A14BE1D935041295C8F02A6245441E17A14BE1C935041295C8F129D245441D7A370CD15935041C3F528AC91245441F6285CAF0E935041EC51B8AE91245441713D0A57059350415C8FC2E59024544185EB5178F792504148E17AE492245441E17A144EF0925041295C8F1293245441E17A145EED925041295C8F9293245441E17A145EF2925041295C8FB29C245441E17A147EF5925041295C8F92A12454419A9999F9F99250415C8FC225A7245441D7A3709DFB925041A4703D0AAA245441E17A145E079350415C8FC2D5BE24544101030000000100000010000000E17A14BECC92504148E17A24762454419A9999A9D39250410AD7A39078245441B81E856BD7925041A4703D3A7C2454411F85EBD1D7925041AE47E1DA7C24544133333363E0925041CDCCCC0C79245441000000B0EA92504152B81E25762454415C8FC245EC9250417B14AE077B24544114AE472102935041666666C672245441295C8FF2FE92504114AE47B16B245441A4703DFAFB925041713D0A77662454417B14AE47F69250418FC2F5085C245441F6285CDFEE925041F6285C0F602454418FC2F5E8E79250418FC2F54863245441E17A144EDF925041295C8F326B245441E17A14FECE925041295C8FD274245441E17A14BECC92504148E17A2476245441
+</a>
+
+<b>
+01060000000100000001030000000100000063000000E17A145EC6925041295C8FE2A424544158ED2939D092504177CAB6CFC4245441E17A146EE0925041666666A6C024544166666656DF925041666666B6BA245441A4703DBAE4925041A4703D7AB5245441E17A14AEE0925041295C8F92A8245441E17A143EDE925041295C8F32A9245441E17A14EEDB925041295C8FB2A3245441E17A147EDF925041AE47E16AA224544121D3088EED9250413D1D1D099F2454419B3FA1BEF592504177D9AFEFAC245441D7A3709DFB925041A4703D0AAA2454415C77E372FE925041E140CC2AAE2454414DCC4F940093504198F2790AB22454413E21BCB502935041382892B8B52454415B6E533A05935041893E56F3BA245441B093745107935041BC1F792DBE24544116C864CC1993504158E758B4B52454410246CF4E1A935041F070C86FB42454410E87367C1A9350416BA5587CB22454413F8BD3311B93504182668C0EAF24544173FA92F61B935041A9D349DDAB245441A39865781C93504115138919AA2454412532398B1C935041D3EA64C1A924544133F7F5711C935041F9E08EC2A9245441B76964B31C9350410E795505A9245441622D351C15935041839194829D245441ABD39C720D93504149A48A7E91245441000000100B9350413D0AD72391245441A3C2861D08935041D3C7D60391245441713D0A57059350415C8FC2E5902454416B14EF7A03935041AEE30D2491245441240F36CAFF925041BDAFA99F9124544181A79CBBF5925041E3640C0D93245441550224BDEE925041E03290FE92245441898ABE7FEA925041E3640C0D93245441FFD03B03E7925041CDE876DB92245441DA3BAF83E392504189B33ED391245441A356E968E19250415CD6F8939024544183422944DF925041CE71E14D8D2454417FFB2616DE925041964A5A038B245441AE47E15ADD9250417B14AE3789245441194B5254DC925041EDC62A2787245441D92FC193DB92504108FA8AA3852454415935E76DDA9250414D140A548324544147E28895D9925041270981A081245441BCDE016CD89250412496978D7F24544137E42605D7925041C4CA46477D245441886900EDD7925041A39E3E057D2454411F85EBD1D7925041AE47E1DA7C24544133333363E0925041CDCCCC0C79245441000000B0EA92504152B81E2576245441223FF22C00935041B374EE6C6E245441295C8FF2FE92504114AE47B16B245441A4703DFAFB925041713D0A776624544180E5A3E7FA9250413BA0598064245441EDCD7F01D192504154FAFFE6752454412BCDF9BDCE9250410936AED7762454413AF4EAC8D0925041F7C85F8A7824544166666626D19250417B14AEA778245441E17A14EEC5925041295C8F427E245441E17A14CEB8925041295C8F928324544163C23BB8B1925041D764F2F484245441713D0A97B39250416666669687245441C3F234F0B59250414323DEA18B24544181AA7CDBB8925041E56101A99024544133660473BB9250418ECD6E9D9724544179AC734DB39250410729497F9B245441B81E854BB4925041713D0A379D24544195F21D0CBB925041952F063AA924544150E24490C1925041846B65D6B4245441EDBFEE2AC5925041ABAC7D83BB245441F1BE4F67C8925041D90CE21AC2245441427B1113C9925041BA4AD408C42454417F791DABC9925041A647E912C52454414222D54FCA9250417345F8D0C5245441666666F6CA925041AE47E14AC62454418D27B865CC925041EF491277C6245441587745E6CE925041062BAD22C6245441C0ED640DCD9250419A10EBE1C1245441B11B93AECC9250414C4F5A1EC1245441C588CA1FCB92504184C78ED4BD245441CB8B84CEC9925041769E1FFDB9245441BE435941C99250411C438293B7245441702A9004C99250414DED5612B7245441983ACF81C89250410E55D72EB524544144C1B859C892504131A387C4B4245441CB8B23F1C6925041C58FD0C0B124544129552884C6925041B60E127AB0245441F0327CB6C5925041493B0209AE245441B1361012C59250417E403FCAAC2454415AF25705C4925041F133C716AB2454413CFD2EA9C29250415932501EA824544171D88272C0925041D2BB293EA42454417ED87DF5BF925041329C0073A3245441067470C1BD9250410CE847D19F245441E03159B5BF92504135B50D8A9D245441BCEE0A27C3925041203A0EE29B245441E17A145EC6925041295C8FE2A4245441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>149738 - 1770076
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1860 </desc>
+<a>
+0106000000010000000103000000010000000600000014AE47D1DED0504100000000AF6454419A999969E1D05041C3F528FCB364544185EB5168E5D050415C8FC2B5BB6454417B14AEE730D1504114AE47319964544185EB51A82AD15041000000808C64544114AE47D1DED0504100000000AF645441
+</a>
+
+<b>
+0106000000010000000103000000010000002B000000B81E85AB19D1504114AE4721856454415C2729181FD1504193FA50C282645441D7837BE81ED150415A1ECFDB7E6454414B29811728D150419A0B8B7C7B645441AD1FC3B529D150417A82791E7E64544114AE470136D15041EC51B8BE786454415C8FC2C532D1504114AE474172645441B9AD421F23D15041E34F811879645441B134E44823D15041346208697A645441C5F1D7D2FBD05041B80391B38B645441CD31999AFAD0504151291E918D645441DAB11B2AF8D050412B0B77008F6454412C2E2B13F4D05041A2434D5C8F64544161C9BF0DF2D050414194178B8E64544114AE4701D4D05041D7A370AD9B645441E17A14BED7D05041295C8FF2A16454418FC2F568DBD0504133333373A864544114AE47D1DED0504100000000AF645441FB076E25FAD05041D3806A91A2645441F35E11E4FAD0504132346827A16454415BE674A100D150417E70B6489E645441914BAFCA14D15041A0E16C3E95645441D6615C9223D1504120BCE47F8E6454419C8371AA28D15041E33009FD8B645441820BB57929D15041C7FBA8098D645441295C8FE234D150418FC2F5D8876454415C8FC27532D150413333338382645441B81E853B28D150419A999929876454415C8FC2051DD150411F85EB418C6454412461A42D18D150414694A5758E645441AFF8A48417D1504108EDCF6F9064544133B1FD6F15D15041F55D7C2791645441C3B8E8DB13D15041E3FF18EE8E645441614056D70FD15041C93004DE906454412089E2230FD15041CD606C91926454413644CE9C0CD1504133E957AA93645441FFC7C3D20BD1504183038775956454410D79367106D150410B9AC00A986454412FDB1BAEFBD05041A38E5DD99C645441364CCD84F7D05041CC0EE58795645441066D5CB3FAD05041C2CBBFAA926454414626314A04D15041805696DA8D645441B81E85AB19D1504114AE472185645441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>149738 - 3804501
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1860 </desc>
+<a>
+0106000000010000000103000000010000000600000014AE47D1DED0504100000000AF6454419A999969E1D05041C3F528FCB364544185EB5168E5D050415C8FC2B5BB6454417B14AEE730D1504114AE47319964544185EB51A82AD15041000000808C64544114AE47D1DED0504100000000AF645441
+</a>
+
+<b>
+0106000000010000000103000000010000002B000000B81E85AB19D1504114AE4721856454415C2729181FD1504193FA50C282645441D7837BE81ED150415A1ECFDB7E6454414B29811728D150419A0B8B7C7B645441AD1FC3B529D150417A82791E7E64544114AE470136D15041EC51B8BE786454415C8FC2C532D1504114AE474172645441B9AD421F23D15041E34F811879645441B134E44823D15041346208697A645441C5F1D7D2FBD05041B80391B38B645441CD31999AFAD0504151291E918D645441DAB11B2AF8D050412B0B77008F6454412C2E2B13F4D05041A2434D5C8F64544161C9BF0DF2D050414194178B8E64544114AE4701D4D05041D7A370AD9B645441E17A14BED7D05041295C8FF2A16454418FC2F568DBD0504133333373A864544114AE47D1DED0504100000000AF645441FB076E25FAD05041D3806A91A2645441F35E11E4FAD0504132346827A16454415BE674A100D150417E70B6489E645441914BAFCA14D15041A0E16C3E95645441D6615C9223D1504120BCE47F8E6454419C8371AA28D15041E33009FD8B645441820BB57929D15041C7FBA8098D645441295C8FE234D150418FC2F5D8876454415C8FC27532D150413333338382645441B81E853B28D150419A999929876454415C8FC2051DD150411F85EB418C6454412461A42D18D150414694A5758E645441AFF8A48417D1504108EDCF6F9064544133B1FD6F15D15041F55D7C2791645441C3B8E8DB13D15041E3FF18EE8E645441614056D70FD15041C93004DE906454412089E2230FD15041CD606C91926454413644CE9C0CD1504133E957AA93645441FFC7C3D20BD1504183038775956454410D79367106D150410B9AC00A986454412FDB1BAEFBD05041A38E5DD99C645441364CCD84F7D05041CC0EE58795645441066D5CB3FAD05041C2CBBFAA926454414626314A04D15041805696DA8D645441B81E85AB19D1504114AE472185645441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>169186 - 184988
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1746 </desc>
+<a>
+0106000000010000000103000000010000000D000000E17A146E93C3504114AE4771BC955441666666B692C350415C8FC295BC95544114AE479184C350419A999939BE9554419A9999097DC35041295C8F82BE95544152B81E8574C3504185EB5148BE955441CDCCCCAC78C35041713D0AE7C5955441713D0AD77BC35041D7A3705DCC955441B81E853B80C35041A4703D9AD2955441AE47E19A85C350413D0AD763D49554415C8FC24595C350419A999919D3955441AE47E16A96C350410AD7A3C0D19554411F85EBC194C3504114AE4771BD955441E17A146E93C3504114AE4771BC955441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000839199097DC35041F25B8F82BE955441DBE257A27BC3504108E0F678BE955441C0D175A578C3504110D88864BE95544138C4AD0A7EC35041E2AAEACECB955441B3E0F2D481C35041A2D3AF26D095544174B14AA285C350410EFF1FA6D1955441A347E19A85C35041120AD763D4955441078F5DC394C3504163CE791ED39554410467DBC294C35041F4FDD41BD3955441DB79CD2794C3504163CE791ED39554414E8C76A293C350419DD58615CE9554413C003BC492C35041FB5D3367C5955441111699A992C3504104F76CA9C4955441D6A7604E95C350417E33D668C49554411F85EBC194C3504114AE4771BD955441E37A146E93C3504116AE4771BC955441F707A54F93C35041521C5377BC955441666666B692C350415C8FC295BC95544114AE479184C350419A999939BE955441839199097DC35041F25B8F82BE955441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>169186 - 425080
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1746 </desc>
+<a>
+0106000000010000000103000000010000000D000000E17A146E93C3504114AE4771BC955441666666B692C350415C8FC295BC95544114AE479184C350419A999939BE9554419A9999097DC35041295C8F82BE95544152B81E8574C3504185EB5148BE955441CDCCCCAC78C35041713D0AE7C5955441713D0AD77BC35041D7A3705DCC955441B81E853B80C35041A4703D9AD2955441AE47E19A85C350413D0AD763D49554415C8FC24595C350419A999919D3955441AE47E16A96C350410AD7A3C0D19554411F85EBC194C3504114AE4771BD955441E17A146E93C3504114AE4771BC955441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000839199097DC35041F25B8F82BE955441DBE257A27BC3504108E0F678BE955441C0D175A578C3504110D88864BE95544138C4AD0A7EC35041E2AAEACECB955441B3E0F2D481C35041A2D3AF26D095544174B14AA285C350410EFF1FA6D1955441A347E19A85C35041120AD763D4955441078F5DC394C3504163CE791ED39554410467DBC294C35041F4FDD41BD3955441DB79CD2794C3504163CE791ED39554414E8C76A293C350419DD58615CE9554413C003BC492C35041FB5D3367C5955441111699A992C3504104F76CA9C4955441D6A7604E95C350417E33D668C49554411F85EBC194C3504114AE4771BD955441E37A146E93C3504116AE4771BC955441F707A54F93C35041521C5377BC955441666666B692C350415C8FC295BC95544114AE479184C350419A999939BE955441839199097DC35041F25B8F82BE955441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>242668 - 3018639
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -53695 </desc>
+<a>
+01060000000100000001030000000100000031000000333333C36F1651417B14AE7792175541AE47E1DA7C1651410AD7A3F0901755418FC2F5F87D16514114AE47D191175541713D0A8780165141F6285C0FA6175541333333C380165141B81E85EBA7175541AE47E1DA81165141AE47E1AAA8175541CDCCCC9C8D16514185EB51B8B017554148E17A749916514114AE47E1B6175541A4703D1A9E1651410AD7A3F0B6175541AE47E15A9D165141AE47E15AB2175541A4703DDA9C165141F6285C0FA9175541F6285C6F9F165141CDCCCC1CA4175541666666A6A71651419A9999D9981755417B14AE37A616514148E17A4497175541C3F5282CA416514185EB51C8951755410AD7A3A0A016514185EB51F892175541666666269E16514100000030901755411F85EBF19C165141B81E856B8E175541713D0AE79B165141B81E856B8C1755410AD7A3009B165141D7A3700D8A175541713D0A879A16514185EB51C885175541AE47E18A99165141D7A370CD701755418FC2F5E8971651413D0AD783461755418FC2F59896165141713D0AA727175541D7A3703D96165141B81E850B22175541B81E85DB95165141295C8F42201755418FC2F5289516514148E17A441F175541AE47E13A93165141333333331F17554148E17A94911651413D0AD7A31F1755419A99993990165141C3F5288C20175541666666468E165141D7A370AD22175541A4703DDA881651417B14AED72A17554185EB519882165141713D0A17341755410AD7A3D07B165141CDCCCCEC3C175541E17A140E7616514114AE4701441755415C8FC2B56E1651415C8FC2854C1755410AD7A3406B165141E17A14DE4F175541CDCCCCFC66165141CDCCCCBC53175541C3F5281C631651411F85EBD156175541666666E65A16514114AE47515C175541AE47E11A58165141EC51B86E5E175541AE47E10A58165141AE47E18A64175541295C8F925816514114AE47817B1755418FC2F50859165141D7A3705D7D175541713D0AF75916514185EB51588817554114AE47F15B165141CDCCCCBC92175541000000205D165141AE47E19A9317554152B81EC56F165141295C8F7291175541333333C36F1651417B14AE7792175541
+</a>
+
+<b>
+01060000000100000001030000000100000049000000C954872EA0165141551E2978921755417E553F4D9F1651411578B7EA9317554162D0F83D9E1651417D9DA8A595175541FE3726859C1651419C39B7F097175541D325C1739B1651414D3BA55299175541190BBDA599165141F10041B99B1755418FB151E2971651411CB78C089E175541B607E1E1961651417B5086599F1755410658E61E9616514174A15260A0175541EF5FBE11951651410AB53ED89E175541D1888463931651411187AE609C175541676393A8911651413F01A187991755419780457590165141C9FB769397175541BF28C813901651410AF9619996175541DC7D307B8F165141957F2F0F951755417B702E948E16514179703FC692175541AF19D8CA8D165141837B8C81901755411D8541A48C165141F9445D4D8D175541E937B12F8C16514134EF2D1C8C175541AB23FEED8B165141D83E6C8F891755411EE15A668B165141A0911FCB8517554110543C648B16514139C847D2821755411FE15A668B16514129A28F4D7F1755411FE15A668B1651414C54380F7D175541899D90468B165141415E5E327B175541DA3F89228B165141EAFF8F44791755412A20D2D38A165141F8B36DC477175541A508A78D8B165141E3D0B19E761755419BD950018D1651410343375F741755410609E3DA8E165141F88ED1C57117554105A96FCC901651415CAF673E6F17554164C428FE911651411CA6C0BE6D17554151C6EFF39216514107C304996C175541C969CE83931651416A8327036C17554156F0683995165141907F99176A1755417FB6E08497165141F49F2F90671755415330821C99165141F84499C865175541E640F41D99165141AF3CE0C7651755418205448C98165141AD76080A5717554198FD8D4A9216514114CA96F25D175541EEF946408E165141D61B087C621755413B15E1A5891651410B2B07AF67175541CE51B4B6841651418F3C5E1D6D17554152B3077D8316514135222D246E175541E8440DBF7F165141DCD041FD7017554192CF0A4F7B1651412084064D74175541E4769113761651413AF0A8CF77175541DE3AA10C701651415D3D6AE27B175541D8356B3368165141924C691581175541B51F644E621651416697D2EC8417554189F183AB5D1651415B483F018817554123BC974A5A16514160B16B0F8A17554114AE47F15B165141CDCCCCBC92175541000000205D165141AE47E19A9317554152B81EC56F165141295C8F7291175541333333C36F1651417B14AE7792175541AE47E1DA7C1651410AD7A3F0901755418FC2F5F87D16514114AE47D191175541713D0A8780165141F6285C0FA6175541333333C380165141B81E85EBA7175541D2EDCA318116514158981F3EA8175541CDCCCC9C8D16514185EB51B8B017554148E17A749916514114AE47E1B6175541A4703D1A9E1651410AD7A3F0B6175541AE47E15A9D165141AE47E15AB2175541A4703DDA9C165141F6285C0FA9175541C9D54BB59E1651411D7A4500A617554192B123F09F16514154383831A4175541666666A6A71651419A9999D9981755417B14AE37A616514148E17A4497175541C3F5282CA416514185EB51C8951755410AD7A3A0A016514185EB51F892175541C954872EA0165141551E297892175541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>242668 - 3503727
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -53695 </desc>
+<a>
+01060000000100000001030000000100000031000000333333C36F1651417B14AE7792175541AE47E1DA7C1651410AD7A3F0901755418FC2F5F87D16514114AE47D191175541713D0A8780165141F6285C0FA6175541333333C380165141B81E85EBA7175541AE47E1DA81165141AE47E1AAA8175541CDCCCC9C8D16514185EB51B8B017554148E17A749916514114AE47E1B6175541A4703D1A9E1651410AD7A3F0B6175541AE47E15A9D165141AE47E15AB2175541A4703DDA9C165141F6285C0FA9175541F6285C6F9F165141CDCCCC1CA4175541666666A6A71651419A9999D9981755417B14AE37A616514148E17A4497175541C3F5282CA416514185EB51C8951755410AD7A3A0A016514185EB51F892175541666666269E16514100000030901755411F85EBF19C165141B81E856B8E175541713D0AE79B165141B81E856B8C1755410AD7A3009B165141D7A3700D8A175541713D0A879A16514185EB51C885175541AE47E18A99165141D7A370CD701755418FC2F5E8971651413D0AD783461755418FC2F59896165141713D0AA727175541D7A3703D96165141B81E850B22175541B81E85DB95165141295C8F42201755418FC2F5289516514148E17A441F175541AE47E13A93165141333333331F17554148E17A94911651413D0AD7A31F1755419A99993990165141C3F5288C20175541666666468E165141D7A370AD22175541A4703DDA881651417B14AED72A17554185EB519882165141713D0A17341755410AD7A3D07B165141CDCCCCEC3C175541E17A140E7616514114AE4701441755415C8FC2B56E1651415C8FC2854C1755410AD7A3406B165141E17A14DE4F175541CDCCCCFC66165141CDCCCCBC53175541C3F5281C631651411F85EBD156175541666666E65A16514114AE47515C175541AE47E11A58165141EC51B86E5E175541AE47E10A58165141AE47E18A64175541295C8F925816514114AE47817B1755418FC2F50859165141D7A3705D7D175541713D0AF75916514185EB51588817554114AE47F15B165141CDCCCCBC92175541000000205D165141AE47E19A9317554152B81EC56F165141295C8F7291175541333333C36F1651417B14AE7792175541
+</a>
+
+<b>
+01060000000100000001030000000100000049000000C954872EA0165141551E2978921755417E553F4D9F1651411578B7EA9317554162D0F83D9E1651417D9DA8A595175541FE3726859C1651419C39B7F097175541D325C1739B1651414D3BA55299175541190BBDA599165141F10041B99B1755418FB151E2971651411CB78C089E175541B607E1E1961651417B5086599F1755410658E61E9616514174A15260A0175541EF5FBE11951651410AB53ED89E175541D1888463931651411187AE609C175541676393A8911651413F01A187991755419780457590165141C9FB769397175541BF28C813901651410AF9619996175541DC7D307B8F165141957F2F0F951755417B702E948E16514179703FC692175541AF19D8CA8D165141837B8C81901755411D8541A48C165141F9445D4D8D175541E937B12F8C16514134EF2D1C8C175541AB23FEED8B165141D83E6C8F891755411EE15A668B165141A0911FCB8517554110543C648B16514139C847D2821755411FE15A668B16514129A28F4D7F1755411FE15A668B1651414C54380F7D175541899D90468B165141415E5E327B175541DA3F89228B165141EAFF8F44791755412A20D2D38A165141F8B36DC477175541A508A78D8B165141E3D0B19E761755419BD950018D1651410343375F741755410609E3DA8E165141F88ED1C57117554105A96FCC901651415CAF673E6F17554164C428FE911651411CA6C0BE6D17554151C6EFF39216514107C304996C175541C969CE83931651416A8327036C17554156F0683995165141907F99176A1755417FB6E08497165141F49F2F90671755415330821C99165141F84499C865175541E640F41D99165141AF3CE0C7651755418205448C98165141AD76080A5717554198FD8D4A9216514114CA96F25D175541EEF946408E165141D61B087C621755413B15E1A5891651410B2B07AF67175541CE51B4B6841651418F3C5E1D6D17554152B3077D8316514135222D246E175541E8440DBF7F165141DCD041FD7017554192CF0A4F7B1651412084064D74175541E4769113761651413AF0A8CF77175541DE3AA10C701651415D3D6AE27B175541D8356B3368165141924C691581175541B51F644E621651416697D2EC8417554189F183AB5D1651415B483F018817554123BC974A5A16514160B16B0F8A17554114AE47F15B165141CDCCCCBC92175541000000205D165141AE47E19A9317554152B81EC56F165141295C8F7291175541333333C36F1651417B14AE7792175541AE47E1DA7C1651410AD7A3F0901755418FC2F5F87D16514114AE47D191175541713D0A8780165141F6285C0FA6175541333333C380165141B81E85EBA7175541D2EDCA318116514158981F3EA8175541CDCCCC9C8D16514185EB51B8B017554148E17A749916514114AE47E1B6175541A4703D1A9E1651410AD7A3F0B6175541AE47E15A9D165141AE47E15AB2175541A4703DDA9C165141F6285C0FA9175541C9D54BB59E1651411D7A4500A617554192B123F09F16514154383831A4175541666666A6A71651419A9999D9981755417B14AE37A616514148E17A4497175541C3F5282CA416514185EB51C8951755410AD7A3A0A016514185EB51F892175541C954872EA0165141551E297892175541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>228582 - 1810716
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2442 </desc>
+<a>
+010600000001000000010300000001000000110000009A9999394B9C50415C8FC2E5BF7654417B14AEB7499C5041C3F528DCBF76544114AE4711479C5041713D0AF7C076544185EB5128439C504148E17AB4C27654415C8FC2653F9C5041A4703D0AC47654415C8FC285399C504148E17AA4C57654411F85EB01349C5041B81E858BC6765441295C8FF22B9C5041713D0A67D2765441E17A14EE259C504114AE4741DB765441A4703D2A1E9C5041D7A370ADE6765441B81E853B239C5041713D0A37E97654410AD7A390299C504114AE4761EC7654419A9999292D9C5041AE47E1DAEE7654413D0AD7E32E9C5041CDCCCC4CF07654419A9999593E9C50410AD7A380D9765441AE47E1AA4E9C504114AE4771C17654419A9999394B9C50415C8FC2E5BF765441
+</a>
+
+<b>
+010600000001000000010300000001000000110000009A9999394B9C50415C8FC2E5BF7654417B14AEB7499C5041C3F528DCBF76544114AE4711479C5041713D0AF7C076544185EB5128439C504148E17AB4C27654415C8FC2653F9C5041A4703D0AC476544127C3724F399C50417DDC919FC57654414B1FBAC1359C504193213D42C67654415492371A329C5041CAEA5608CE765441F3C179D32E9C5041263E080AD4765441376CD1542B9C504142646ECFDA7654415973B6CB239C50419908DA55E97654410AD7A390299C504114AE4761EC7654419A9999292D9C5041AE47E1DAEE7654413D0AD7E32E9C5041CDCCCC4CF07654419A9999593E9C50410AD7A380D9765441AE47E1AA4E9C504114AE4771C17654419A9999394B9C50415C8FC2E5BF765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>228582 - 3424337
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2442 </desc>
+<a>
+010600000001000000010300000001000000110000009A9999394B9C50415C8FC2E5BF7654417B14AEB7499C5041C3F528DCBF76544114AE4711479C5041713D0AF7C076544185EB5128439C504148E17AB4C27654415C8FC2653F9C5041A4703D0AC47654415C8FC285399C504148E17AA4C57654411F85EB01349C5041B81E858BC6765441295C8FF22B9C5041713D0A67D2765441E17A14EE259C504114AE4741DB765441A4703D2A1E9C5041D7A370ADE6765441B81E853B239C5041713D0A37E97654410AD7A390299C504114AE4761EC7654419A9999292D9C5041AE47E1DAEE7654413D0AD7E32E9C5041CDCCCC4CF07654419A9999593E9C50410AD7A380D9765441AE47E1AA4E9C504114AE4771C17654419A9999394B9C50415C8FC2E5BF765441
+</a>
+
+<b>
+010600000001000000010300000001000000110000009A9999394B9C50415C8FC2E5BF7654417B14AEB7499C5041C3F528DCBF76544114AE4711479C5041713D0AF7C076544185EB5128439C504148E17AB4C27654415C8FC2653F9C5041A4703D0AC476544127C3724F399C50417DDC919FC57654414B1FBAC1359C504193213D42C67654415492371A329C5041CAEA5608CE765441F3C179D32E9C5041263E080AD4765441376CD1542B9C504142646ECFDA7654415973B6CB239C50419908DA55E97654410AD7A390299C504114AE4761EC7654419A9999292D9C5041AE47E1DAEE7654413D0AD7E32E9C5041CDCCCC4CF07654419A9999593E9C50410AD7A380D9765441AE47E1AA4E9C504114AE4771C17654419A9999394B9C50415C8FC2E5BF765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>454165 - 417404
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -3427 </desc>
+<a>
+0106000000010000000103000000020000004A0000008772598481AE5041791E613CE0D65441CE932C8181AE5041D68DF73DE0D65441B81E85CB80AE5041D7A3703DE1D65441EC51B86E7FAE5041C3F5289CE5D654413D0AD7737FAE50411F85EBE1EAD6544114AE470182AE504185EB5118ECD6544114AE47C17EAE5041C3F5281CEFD6544148E17AE47BAE5041B81E85CBF1D654418FC2F55886AE504152B81EC5FED65441295C8F2278AE5041713D0A3701D75441713D0A5774AE50410000005002D75441295C8F4279AE504152B81E1506D7544114AE47917FAE50417B14AE1705D75441C3F5287C89AE5041713D0A5706D754413333337393AE50411F85EB8105D75441EC51B8FE94AE504152B81E3505D754419A9999A990AE5041AE47E1BAF9D654413D0AD7F38EAE50410AD7A390FAD6544148E17AF48FAE504114AE4701F9D65441CDCCCCEC95AE504185EB51B8EFD6544152B81EF591AE5041B81E856BECD6544152B81E4592AE504185EB5178EBD654413D0AD7E396AE5041A4703DEAEDD6544148E17A349EAE50410AD7A3E0EED65441713D0A57A7AE5041666666A6EED65441295C8FE2AAAE5041EC51B8AEEED65441CDCCCC8CAEAE504152B81E25E0D654410AD7A390AAAE5041333333B3DFD654413D0AD743A8AE504185EB5138E1D654417B14AE67A6AE5041E17A140EE4D65441000000D0A4AE5041713D0AC7E0D65441666666A6A0AE5041713D0AC7E0D65441295C8F329DAE5041B81E850BE1D65441666666469AAE504148E17AE4DFD65441000000309AAE50419A999969DDD6544114AE478198AE5041E17A149EDCD65441295C8F029AAE5041AE47E1AADAD65441D7A3702DA1AE504114AE4721DDD65441666666B6A3AE5041B81E851BD6D65441713D0AA7A6AE50419A9999E9CDD654418FC2F5B891AE50419A999959C4D654419A9999F990AE50417B14AEF7C4D65441E17A141E90AE5041295C8FB2C5D65441CDCCCCDC82AE50410AD7A310C4D65441A4703D8A80AE50417B14AE97C1D654419A9999497FAE504100000010BED65441D7A3709D7AAE5041000000A0C0D654419A99997974AE504148E17AD4C2D6544114AE47916DAE5041C3F5282CC6D65441B236413F6AAE5041537932BEC9D65441F7930E226EAE50415B9F353DCAD654411F85EB716EAE5041C3F5281CCAD65441646129496EAE5041C50B0262CAD65441F7A2FC446CAE5041A20805EACDD65441F7A2FC446CAE5041D699516ECFD65441677DEDA86DAE50418BE0FDD7D2D65441BF2FD7FA73AE5041B7B9F200D6D65441F591E8697DAE504152407E44DBD65441E17A141E7EAE50410AD7A360DBD654418FC2F59880AE504133333343DCD65441B81E858B82AE5041CDCCCC2CDCD654411F85EBA182AE5041713D0A97DDD65441AE47E17A82AE5041B81E85DBDFD6544114AE47F184AE50415C8FC285E1D654417B14AEF78DAE5041333333F3E7D65441A4703DFA90AE5041A4703D2AEAD6544114AE470190AE5041A4703D4AECD65441B81E853B8EAE50411F85EBB1EAD654410AD7A3C08BAE50411F85EBC1EBD654417B14AEB789AE504185EB51A8E8D6544152B81EC587AE5041333333D3E5D65441A4703D4A85AE50419A9999C9E3D654411F85EBA182AE50410AD7A3C0E1D654418772598481AE5041791E613CE0D6544109000000A4703D9A8AAE50415C8FC275D1D6544152B81ED588AE50410AD7A3F0D3D65441B81E85BB85AE50411F85EB41D2D654416666664687AE5041333333B3CED65441D7A3704D89AE50417B14AEA7C9D65441F6285CBF8CAE504148E17A84C8D65441F6285C5F8CAE5041EC51B8FECAD65441F6285C4F8BAE5041AE47E1EACDD65441A4703D9A8AAE50415C8FC275D1D65441
+</a>
+
+<b>
+010600000001000000010300000001000000150000003BEA7AE47BAE5041D32985CBF1D65441244DBC8682AE50414D761C07FAD6544161B5058C82AE5041C815AC0DFAD6544181D3F55886AE50411FE91DC5FED654419CBCEBFF8BAE50415D640802FCD65441B96D80DC8EAE50418A6F0B9CFAD65441B3BED6F38EAE50412FB4A390FAD65441657DF7358FAE50418350BD29FAD6544148E17AF48FAE504114AE4701F9D65441F164B77E88AE5041D8E73D5AF1D6544131A34C178CAE5041CCF1CA9CEBD6544185EB51C88DAE50419A9999E9E8D6544160AE47F184AE5041878FC285E1D6544146A8E17A82AE504182827FDBDFD65441281585CB80AE5041C8D3703DE1D65441EFA2B96E7FAE5041DDFB279CE5D654414C62D8737FAE50413543EAE1EAD6544114AE470182AE504185EB5118ECD65441495034E07FAE50415084FB11EED65441EBB447C17EAE5041DF91291CEFD654413BEA7AE47BAE5041D32985CBF1D65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>257140 - 3163537
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -8073 </desc>
+<a>
+0106000000010000000103000000010000000C0000003D0AD74341A75041C3F5284CF10B5541CDCCCCDC44A7504152B81ED5EF0B554148E17A6441A7504114AE4721110C5541295C8F024FA750418FC2F5A8100C55410AD7A33051A7504185EB5148100C5541E17A14BE52A7504185EB5158F50B5541A4703D9A54A7504133333333E80B5541B81E85AB3EA750413D0AD723F00B5541CDCCCCBC39A75041A4703D8AF10B5541D7A3707D38A750417B14AEB7F10B55413D0AD73338A750413D0AD743F40B55413D0AD74341A75041C3F5284CF10B5541
+</a>
+
+<b>
+01060000000100000001030000000100000006000000FEE996BF44A75041792D6BEDF00B55416DCE55A944A75041E59AF7C2F10B5541747701FA53A750417ABB9B9FEC0B5541B56EAB2054A7504121C95C8EEB0B5541A342F60852A75041431CD648EC0B5541FEE996BF44A75041792D6BEDF00B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>257140 - 3198380
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -8073 </desc>
+<a>
+0106000000010000000103000000010000000C0000003D0AD74341A75041C3F5284CF10B5541CDCCCCDC44A7504152B81ED5EF0B554148E17A6441A7504114AE4721110C5541295C8F024FA750418FC2F5A8100C55410AD7A33051A7504185EB5148100C5541E17A14BE52A7504185EB5158F50B5541A4703D9A54A7504133333333E80B5541B81E85AB3EA750413D0AD723F00B5541CDCCCCBC39A75041A4703D8AF10B5541D7A3707D38A750417B14AEB7F10B55413D0AD73338A750413D0AD743F40B55413D0AD74341A75041C3F5284CF10B5541
+</a>
+
+<b>
+01060000000100000001030000000100000006000000FEE996BF44A75041792D6BEDF00B55416DCE55A944A75041E59AF7C2F10B5541747701FA53A750417ABB9B9FEC0B5541B56EAB2054A7504121C95C8EEB0B5541A342F60852A75041431CD648EC0B5541FEE996BF44A75041792D6BEDF00B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>258893 - 5313093
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -15864 </desc>
+<a>
+010600000001000000010300000001000000470000001F85EBE1223051415C8FC2B5CC8254413D0AD733273051413D0AD7A3BF825441000000A0293051415C8FC2D5B98254419A9999692B3051413D0AD713B6825441CDCCCC8C2A30514114AE4711B4825441B81E851B27305141B81E85FBB0825441D7A3703D25305141A4703DFAAF825441A4703D0A2230514133333323AF825441B81E855B1F305141E17A141EAF8254410AD7A3A01C3051415C8FC2A5AD8254415C8FC2451A305141CDCCCCDCAB825441713D0AF7133051419A9999F9B8825441713D0A4708305141A4703D6AD4825441AE47E1CA0630514100000010D2825441666666A604305141A4703D0AD3825441F6285C2F01305141E17A145ED58254417B14AEE7FE2F514114AE47C1D6825441713D0A87FC2F5141D7A3705DD88254411F85EBC1FA2F51419A9999C9D9825441333333C3F72F51411F85EB51DE8254413D0AD7C3F42F514100000060E08254411F85EBC1F12F5141713D0A97E2825441AE47E1DAEC2F5141A4703D7AE6825441CDCCCCACEA2F5141B81E859BE882544114AE4721EA2F514148E17AD4E8825441713D0AF7E92F514148E17AE4E8825441F6285C6FE42F51415C8FC2F5EA8254413D0AD763E02F5141333333F3EC8254418FC2F588DD2F5141D7A3700DEF8254417B14AEE7D42F51415C8FC265F382544100000000CE2F5141EC51B84EF782544166666696CF2F5141333333B3FC825441000000A0CF2F5141C3F528ECFC825441E17A149ED02F5141F6285CDF028354411F85EB51D12F51413D0AD7B305835441C3F5289CD22F514185EB51180B8354415C8FC265D42F51413D0AD753108354411F85EBA1D42F51410AD7A3B00F83544114AE47E1DE2F5141D7A3705D08835441C3F528ACEA2F5141E17A14EEFF82544185EB51B8EC2F5141E17A146EFF82544133333303FA2F5141EC51B89E0783544114AE475108305141F6285C6F1083544152B81E550B3051411F85EBB10A835441295C8FC21B305141F6285CCF148354415C8FC23530305141F6285C7F20835441EC51B80E3130514114AE47211F835441B81E853B313051418FC2F5D81E8354410000003036305141C3F528FC158354413D0AD723383051418FC2F5581283544148E17A44423051410AD7A340028354417B14AE1745305141AE47E18AFE825441CDCCCC5C47305141EC51B88EFA825441333333834930514166666656F68254419A9999894C30514133333313F0825441CDCCCC0C4E30514114AE4711EC8254410000007050305141333333D3E482544152B81EB55130514166666646E1825441F6285C8F52305141AE47E1CADF8254413D0AD72351305141B81E850BE082544152B81E15493051419A999979E18254417B14AEB74830514100000080DD825441D7A3708D45305141295C8FC2DD82544152B81E35383051410AD7A3E0DE825441000000B03730514152B81ED5D982544185EB51482A3051411F85EB71DC825441F6285C0F29305141A4703D7ADC8254418FC2F52826305141295C8FE2E782544185EB51E821305141E17A14FEE48254411F85EB411C30514166666626E18254411F85EBE1223051415C8FC2B5CC825441
+</a>
+
+<b>
+01060000000100000001030000000100000039000000BCC5000B23305141102ECF50CC825441301C7C52243051410D4BAE5AC8825441EB372A5927305141611C664ABF825441F4FB3D4129305141DFACD3B8BA825441533C57A829305141FB92B4D7B9825441000000A0293051415C8FC2D5B9825441ADCB77972A30514124E28ECDB78254412FDFCE652B3051413ED2000BB68254418E0D953C2A305141748C64C9B38254414929C8BD28305141EE875872B2825441D9A9BA4D2630514122EBC58CB08254412940827E24305141E0DC1EC8AF825441C229616922305141CB932C3CAF825441EB51E99F20305141A1A27F20AF825441B81E855B1F305141E17A141EAF825441625650241F30514129855A00AF8254414F9E8A0E1E305141E4ABC86AAE825441A4DDAEA21D305141FECDB430AE8254418C2E15E61B30514181525B18AD82544150BB19AF11305141C9D69354BE825441713D0A4708305141A4703D6AD4825441CAEEB2840730514128BE096BD3825441033F6EBD06305141A3692541D7825441E29C182F06305141730D5AECD982544184B00F7605305141FB8FA817DD825441BD00CBAE0430514192E3218AE08254418B8D4AD903305141059B4D7CE282544177C227A00230514112893552E58254414155AFD8003051415DC1D052E8825441D3977BD8FF2F5141CF78FC44EA8254413467C702FE2F51413659F5E1EC825441EE2824F4FB2F5141809190E2EF8254417D71F801FA2F5141E871897FF2825441BD9EEE9DF72F51414E52821CF582544129456D1DF52F5141F27C2EE4F78254412C28B08EF22F5141B24F3848FA825441800914E3ED2F51411D2A29D7FD8254414A9C9B1BEC2F51416F3FFF3AFF82544185EB51B8EC2F5141E17A146EFF82544133333303FA2F5141EC51B89E0783544114AE475108305141F6285C6F1083544152B81E550B3051411F85EBB10A83544106DDEA511B305141769830DE138354415DA633C5223051412471D4D7178354417D830CDF28305141E2F3F1ED1A835441B2B352802E30514130C8DDA11D835441AE3F2D3031305141257B80071F83544195F15DF93830514148709D05118354416FCEB2FD4230514183B8654D01835441851D7B843E3051413678C874FE825441AEE3C45238305141B22C82F0F88254417B42DA7B3030514103C87995F1825441E0C0F607263051418BE69300E88254410857E3E2203051419D7B484CE48254411F85EB411C30514166666626E18254411F85EBE1223051415C8FC2B5CC825441BCC5000B23305141102ECF50CC825441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>270394 - 168454
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2756 </desc>
+<a>
+0106000000010000000103000000010000000C000000E17A14DE6E895141A4703D5A689154418FC2F5286C89514185EB5118699154415C8FC2155D895141295C8FC269915441EC51B8FE5989514152B81E456A915441B81E852B52895141000000906B9154418FC2F5C852895141AE47E10A74915441B81E851B53895141B81E858B7A915441295C8F82558951410AD7A300799154419A9999195B8951418FC2F56875915441333333835F8951413D0AD793729154418FC2F5886D89514114AE473169915441E17A14DE6E895141A4703D5A68915441
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000000E71694B6E895141F34576826891544127582E0F6E89514176C7FA9268915441F5AC962B6C895141BE90A9196991544173C144135D8951415801E7C369915441193282FD598951418E0BBE476A9154412419D6445A89514125D2C5106D9154417CA8985A5D8951419C0FD0676C91544120F0791569895141E119A72B6C915441623F49C469895141A41BEBB66B9154418FC2F5886D89514114AE4731699154419CB4877B6E8951410A825D986891544165F42BD66E8951416AA4685C689154410E71694B6E895141F345768268915441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>270394 - 336741
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2756 </desc>
+<a>
+0106000000010000000103000000010000000C000000E17A14DE6E895141A4703D5A689154418FC2F5286C89514185EB5118699154415C8FC2155D895141295C8FC269915441EC51B8FE5989514152B81E456A915441B81E852B52895141000000906B9154418FC2F5C852895141AE47E10A74915441B81E851B53895141B81E858B7A915441295C8F82558951410AD7A300799154419A9999195B8951418FC2F56875915441333333835F8951413D0AD793729154418FC2F5886D89514114AE473169915441E17A14DE6E895141A4703D5A68915441
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000000E71694B6E895141F34576826891544127582E0F6E89514176C7FA9268915441F5AC962B6C895141BE90A9196991544173C144135D8951415801E7C369915441193282FD598951418E0BBE476A9154412419D6445A89514125D2C5106D9154417CA8985A5D8951419C0FD0676C91544120F0791569895141E119A72B6C915441623F49C469895141A41BEBB66B9154418FC2F5886D89514114AE4731699154419CB4877B6E8951410A825D986891544165F42BD66E8951416AA4685C689154410E71694B6E895141F345768268915441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>273658 - 1924443
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -7967 </desc>
+<a>
+0106000000010000000103000000010000000D000000CDCCCCACEE3951410AD7A360F43E54410AD7A3B0EC3951415C8FC245F53E5441CDCCCCCCEF3951419A999959FB3E5441295C8F32F2395141E17A148E003F544152B81E75F83951415C8FC285063F5441295C8FB2F7395141B81E85DB093F5441295C8FE2F53951419A9999E9143F54419A999989F43951417B14AE671B3F54410AD7A360083A5141EC51B87E153F544114AE47A1063A51417B14AEA70F3F5441F6285C0F023A5141F6285C5F003F54415C8FC245FD39514185EB51C8ED3E5441CDCCCCACEE3951410AD7A360F43E5441
+</a>
+
+<b>
+0106000000010000000103000000030000005900000061DB3370F63951416293AD89113F5441295C8F6AF639514106819543123F54413D7E1E45F6395141B8167590123F544171F41824F6395141C19E10D1123F54415A17FC74F539514101632649143F5441277C2B07F5395141418B9730153F5441C74B3791F2395141819543A3153F5441EC5060D6F2395141810FCAF1103F5441552813C8F2395141C4E1AB900E3F54411941E373F23951414DBDB8680A3F5441F936BE56F2395141D242E601093F544180A5C866F03951414B68D5DA063F54416175C429EE39514159109B42053F5441DF4F8D87ED39514123DBF91E063F54411283C0D2EF39514183C0CA81093F5441A69BC430EE395141B81E859B0A3F544110BC0844ED395141E14284DA073F5441EF19B442EC395141F5124C74083F5441550EA72DEC3951419123369A083F54418D976E22EB395141CDCCCC340B3F544121FFF164E7395141F7D31C850D3F5441D671E0E6E6395141217CB2F40D3F54410B422697E5395141B313FF230F3F5441B5DF0C74E53951418D5D294A0F3F544184DA9518E439514142529BF5103F5441CCB3CC16E4395141883F800E113F5441A2218414E43951416DE29140153F5441D6242212E4395141E59056A1193F54416ED16D19E4395141156032D0193F544148E17ABCE4395141AC1C5A041D3F54412D24CC94E73951410C1DABB81C3F544135D633F0E7395141A81B84B01C3F544147FC056CE93951419E199EB21C3F5441A900F0EEE9395141ECD21CE51C3F54416EA6B915EB3951419E61D1571D3F544148927F7AEC395141C377A4E21D3F5441826A58DFEC39514156DC9C0A1E3F54415C3AB572ED395141D39BB65E1E3F54413357E044EE395141E5A062DA1E3F5441DFC74878EF395141E727771E203F5441FE0B4806F3395141FD372AC81F3F544160E5D0CAF43951418FC2F5281E3F5441FAF1BDFAF5395141DB7BC1CD1D3F5441DAF06AB1F83951413841E3B31E3F5441A423B687FB3951410654BCFF1D3F5441BE0DEDAEFB3951419D637FFC1D3F54411369B804FD395141EC1B6B0D1E3F544177B9F41BFE39514103E8551A1E3F544154E3A5DBFF39514183C0CAA11E3F54417476F9A1003A51411E365678203F5441EA1641B0003A51417877379A203F5441C55A119C003A514156A09757213F544187EED041003A5141888A45A6243F544107D8EA26003A51415B1D9EA2253F5441B335AE1A003A5141ACE8471F263F5441C64D0F7F013A514171F4DCC5253F54418EA86CFF033A5141EBFC6402253F54418E21F334063A5141CF4B915D243F5441B755075C093A514150B3639C233F5441251810C10A3A51417F65923A233F5441EAF258320C3A51416CE365D5223F54419A9999E9083A514185EB5148173F54410AD7A360083A5141EC51B87E153F544114AE47A1063A51417B14AEA70F3F5441F6285C0F023A5141F6285C5F003F54415C8FC245FD39514185EB51C8ED3E5441CDCCCCACEE3951410AD7A360F43E544120D7A3B0EC395141518FC245F53E54410242DD2DEC395141D2E4F08CF53E544163CC837AEC3951416741EF1FF73E544172F270C2EC395141CB2F179AF83E54413FE0B6DEEC395141E5C78AF5F83E544142F982E9ED39514141CFA145FC3E5441643BDF6FED39514152B81EF5FC3E54415B542C77EF39514159F29140FF3E544184ED6289EF3951412D86605DFF3E5441C74B37F9EF39514108AC1CE2003F5441E17A140EF13951418716D956023F544155ACA9EFF239514124579991033F54419A9999B9F3395141EC51B82E043F54419FFDF812F4395141D59C2E75043F54416D73E6B0F5395141773A6852053F544118AA4AC2F5395141DC9A255E053F5441E402C942F63951417C561522073F5441ED5CD76DF639514149C026B9083F54417DE33D9EF639514146C1FBA50A3F54416BF623A5F63951415BDBD97E0B3F54413BDAC4A3F6395141621A972E0F3F544161DB3370F63951416293AD89113F544104000000FBB46700F03951416BA1A2C9FB3E5441E71369C0EF395141CD7B6341FB3E5441CDCCCCCCEF3951419A999959FB3E5441FBB46700F03951416BA1A2C9FB3E544104000000E221904FF83951417FE3902A073F5441DE02C162F8395141288A4074063F544152B81E75F83951415C8FC285063F5441E221904FF83951417FE3902A073F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>273658 - 3701006
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -7967 </desc>
+<a>
+0106000000010000000103000000010000000D000000CDCCCCACEE3951410AD7A360F43E54410AD7A3B0EC3951415C8FC245F53E5441CDCCCCCCEF3951419A999959FB3E5441295C8F32F2395141E17A148E003F544152B81E75F83951415C8FC285063F5441295C8FB2F7395141B81E85DB093F5441295C8FE2F53951419A9999E9143F54419A999989F43951417B14AE671B3F54410AD7A360083A5141EC51B87E153F544114AE47A1063A51417B14AEA70F3F5441F6285C0F023A5141F6285C5F003F54415C8FC245FD39514185EB51C8ED3E5441CDCCCCACEE3951410AD7A360F43E5441
+</a>
+
+<b>
+0106000000010000000103000000030000005900000061DB3370F63951416293AD89113F5441295C8F6AF639514106819543123F54413D7E1E45F6395141B8167590123F544171F41824F6395141C19E10D1123F54415A17FC74F539514101632649143F5441277C2B07F5395141418B9730153F5441C74B3791F2395141819543A3153F5441EC5060D6F2395141810FCAF1103F5441552813C8F2395141C4E1AB900E3F54411941E373F23951414DBDB8680A3F5441F936BE56F2395141D242E601093F544180A5C866F03951414B68D5DA063F54416175C429EE39514159109B42053F5441DF4F8D87ED39514123DBF91E063F54411283C0D2EF39514183C0CA81093F5441A69BC430EE395141B81E859B0A3F544110BC0844ED395141E14284DA073F5441EF19B442EC395141F5124C74083F5441550EA72DEC3951419123369A083F54418D976E22EB395141CDCCCC340B3F544121FFF164E7395141F7D31C850D3F5441D671E0E6E6395141217CB2F40D3F54410B422697E5395141B313FF230F3F5441B5DF0C74E53951418D5D294A0F3F544184DA9518E439514142529BF5103F5441CCB3CC16E4395141883F800E113F5441A2218414E43951416DE29140153F5441D6242212E4395141E59056A1193F54416ED16D19E4395141156032D0193F544148E17ABCE4395141AC1C5A041D3F54412D24CC94E73951410C1DABB81C3F544135D633F0E7395141A81B84B01C3F544147FC056CE93951419E199EB21C3F5441A900F0EEE9395141ECD21CE51C3F54416EA6B915EB3951419E61D1571D3F544148927F7AEC395141C377A4E21D3F5441826A58DFEC39514156DC9C0A1E3F54415C3AB572ED395141D39BB65E1E3F54413357E044EE395141E5A062DA1E3F5441DFC74878EF395141E727771E203F5441FE0B4806F3395141FD372AC81F3F544160E5D0CAF43951418FC2F5281E3F5441FAF1BDFAF5395141DB7BC1CD1D3F5441DAF06AB1F83951413841E3B31E3F5441A423B687FB3951410654BCFF1D3F5441BE0DEDAEFB3951419D637FFC1D3F54411369B804FD395141EC1B6B0D1E3F544177B9F41BFE39514103E8551A1E3F544154E3A5DBFF39514183C0CAA11E3F54417476F9A1003A51411E365678203F5441EA1641B0003A51417877379A203F5441C55A119C003A514156A09757213F544187EED041003A5141888A45A6243F544107D8EA26003A51415B1D9EA2253F5441B335AE1A003A5141ACE8471F263F5441C64D0F7F013A514171F4DCC5253F54418EA86CFF033A5141EBFC6402253F54418E21F334063A5141CF4B915D243F5441B755075C093A514150B3639C233F5441251810C10A3A51417F65923A233F5441EAF258320C3A51416CE365D5223F54419A9999E9083A514185EB5148173F54410AD7A360083A5141EC51B87E153F544114AE47A1063A51417B14AEA70F3F5441F6285C0F023A5141F6285C5F003F54415C8FC245FD39514185EB51C8ED3E5441CDCCCCACEE3951410AD7A360F43E544120D7A3B0EC395141518FC245F53E54410242DD2DEC395141D2E4F08CF53E544163CC837AEC3951416741EF1FF73E544172F270C2EC395141CB2F179AF83E54413FE0B6DEEC395141E5C78AF5F83E544142F982E9ED39514141CFA145FC3E5441643BDF6FED39514152B81EF5FC3E54415B542C77EF39514159F29140FF3E544184ED6289EF3951412D86605DFF3E5441C74B37F9EF39514108AC1CE2003F5441E17A140EF13951418716D956023F544155ACA9EFF239514124579991033F54419A9999B9F3395141EC51B82E043F54419FFDF812F4395141D59C2E75043F54416D73E6B0F5395141773A6852053F544118AA4AC2F5395141DC9A255E053F5441E402C942F63951417C561522073F5441ED5CD76DF639514149C026B9083F54417DE33D9EF639514146C1FBA50A3F54416BF623A5F63951415BDBD97E0B3F54413BDAC4A3F6395141621A972E0F3F544161DB3370F63951416293AD89113F544104000000FBB46700F03951416BA1A2C9FB3E5441E71369C0EF395141CD7B6341FB3E5441CDCCCCCCEF3951419A999959FB3E5441FBB46700F03951416BA1A2C9FB3E544104000000E221904FF83951417FE3902A073F5441DE02C162F8395141288A4074063F544152B81E75F83951415C8FC285063F5441E221904FF83951417FE3902A073F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>295020 - 203569
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1163 </desc>
+<a>
+0106000000010000000103000000010000000D000000AE47E10A1FC85041E17A149E514555413D0AD7631DC85041EC51B80E51455541D7A3705D1AC85041713D0A0750455541D7A3700D17C85041A4703D4A5D455541713D0AF714C850410AD7A34065455541F6285C6F13C8504152B81EE569455541295C8FA215C850418FC2F5E86A455541333333E316C85041D7A3707D6B455541EC51B80E18C850417B14AE076C455541A4703DBA1AC85041B81E856B64455541E17A148E1DC85041AE47E19A5B4555417B14AE9720C8504152B81E2552455541AE47E10A1FC85041E17A149E51455541
+</a>
+
+<b>
+0106000000010000000103000000010000000B00000044F622E316C85041DF1E697D6B455541DAE731E316C8504114E46F7D6B4555417A1985DB18C85041B3F9AEE765455541103CE13A1CC85041756866165B4555419970E00A1FC85041A060149E51455541033B0C8C1EC85041505A197351455541589BD5631DC85041FFD4B70E514555410C3CB7FE1BC85041345FEBC1554555412621EA6118C850412815855B62455541295C8FA215C850418FC2F5E86A45554144F622E316C85041DF1E697D6B455541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>295020 - 381521
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1163 </desc>
+<a>
+0106000000010000000103000000010000000D000000AE47E10A1FC85041E17A149E514555413D0AD7631DC85041EC51B80E51455541D7A3705D1AC85041713D0A0750455541D7A3700D17C85041A4703D4A5D455541713D0AF714C850410AD7A34065455541F6285C6F13C8504152B81EE569455541295C8FA215C850418FC2F5E86A455541333333E316C85041D7A3707D6B455541EC51B80E18C850417B14AE076C455541A4703DBA1AC85041B81E856B64455541E17A148E1DC85041AE47E19A5B4555417B14AE9720C8504152B81E2552455541AE47E10A1FC85041E17A149E51455541
+</a>
+
+<b>
+0106000000010000000103000000010000000B00000042BEA4CB16C85041D81788726B455541DAE731E316C8504114E46F7D6B4555417A1985DB18C85041B3F9AEE765455541103CE13A1CC85041756866165B4555419970E00A1FC85041A060149E51455541033B0C8C1EC85041505A197351455541589BD5631DC85041FFD4B70E514555410C3CB7FE1BC85041345FEBC1554555412621EA6118C850412815855B62455541295C8FA215C850418FC2F5E86A45554142BEA4CB16C85041D81788726B455541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>321127 - 1061617
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -4627 </desc>
+<a>
+0106000000010000000103000000010000000F00000066666616841E51418FC2F5086B835441666666E6841E5141000000A0648354411F85EB21851E51417B14AEA76083544148E17A24851E514185EB51885D835441EC51B80E801E514148E17A545D83544185EB5108711E5141CDCCCC8C5C83544114AE47F1701E51410AD7A3806C835441295C8F02711E514152B81E8570835441C3F528BC661E51411F85EB817183544114AE47F15D1E51418FC2F5C87283544185EB51D85D1E51413333330375835441EC51B80E5E1E5141295C8F8279835441B81E857B5E1E51413D0AD7D37B83544148E17AD4821E5141EC51B8EE7A83544166666616841E51418FC2F5086B835441
+</a>
+
+<b>
+01060000000100000001030000000100000042000000C3C4E04B831E5141C18F8217758354412529AF1E841E5141D4969AC76A835441CF4CE2B27B1E5141D671EF966B835441B5EF6BF1701E5141E9C311896C83544128652E01711E51414BC60E3370835441295C8F02711E514152B81E8570835441854529B3681E514108FA935171835441CA3393845E1E514190128FB37283544114AE47F15D1E51418FC2F5C872835441D6F12DDB5D1E51416740DFC174835441B81E857B5E1E51413D0AD7D37B835441A4703D1A611E5141333333E38D8354411F85EBD1611E51411F85EB0192835441C3F528BC631E514152B81E7598835441CDCCCC9C651E5141B81E85AB9883544166666676661E51413D0AD7B39A83544114AE4711681E5141295C8FB29D83544185EB51486A1E5141AE47E12AA183544185EB51886C1E514185EB5138A58354415C8FC2C56F1E514148E17A14AA83544185EB5118741E514185EB5148B083544152B81EA57A1E51419A9999C9B7835441F6285CDF7D1E5141D7A3707DBC835441A4703DDA801E5141C3F5285CC1835441D7A3700D801E5141666666F6BF835441C3F528FC8E1E5141666666D6BC835441A4703D1A9E1E5141A4703DFAB6835441E17A14BE9F1E5141C3F528ECB583544185EB5118A01E5141E17A14EEB3835441A4703D3A9C1E51416666663699835441E17A140E9B1E5141A4703D3A958354413D0AD7F3961E5141A4703D7A918354413D0AD763901E5141295C8F528C83544185EB51788B1E5141295C8F82898354417B14AE17821E51415C8FC2758883544152B81E75821E5141CDCCCC2C81835441CDCCCCEC891E51413D0AD7B383835441D7A370DD8E1E5141713D0AA7848354410AD7A370931E514185EB51F885835441A4703D7A961E5141F6285CDF87835441666666A69A1E5141713D0A478B835441E17A14EE9E1E51410AD7A3D08F83544152B81E65A31E5141E17A144E95835441A4703DDAA41E51416666666696835441D7A3709DA61E5141EC51B88E908354418FC2F598A91E5141295C8FE284835441295C8FB2AA1E51417B14AE27818354411F85EB01AC1E5141AE47E1BA7C83544152B81EF5AC1E514133333363728354417B14AEF7AE1E5141C3F528FC69835441E17A143EB01E5141EC51B8BE6383544148E17A84A71E5141AE47E1CA61835441D7A3701D971E5141333333035F83544148E17A748E1E5141666666E65D835441F6285CEF871E514148E17AA45D835441EC51B8FE861E5141000000205E83544100000030861E51411F85EBA15F835441C3F528AC851E5141F6285C8F68835441F6285C6F841E51416666664674835441B81E859B831E5141EC51B8EE7A8354413EFB14D4821E5141A26EC4027B8354412780E04B831E51413CEF85177583544148E17AD4821E5141EC51B8EE7A83544166666616841E51418FC2F5086B835441016F1D19841E5141BC7A8AF36A835441C3C4E04B831E5141C18F821775835441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>321127 - 3630046
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -4627 </desc>
+<a>
+0106000000010000000103000000010000000F00000066666616841E51418FC2F5086B835441666666E6841E5141000000A0648354411F85EB21851E51417B14AEA76083544148E17A24851E514185EB51885D835441EC51B80E801E514148E17A545D83544185EB5108711E5141CDCCCC8C5C83544114AE47F1701E51410AD7A3806C835441295C8F02711E514152B81E8570835441C3F528BC661E51411F85EB817183544114AE47F15D1E51418FC2F5C87283544185EB51D85D1E51413333330375835441EC51B80E5E1E5141295C8F8279835441B81E857B5E1E51413D0AD7D37B83544148E17AD4821E5141EC51B8EE7A83544166666616841E51418FC2F5086B835441
+</a>
+
+<b>
+01060000000100000001030000000100000042000000C3C4E04B831E5141C18F8217758354412529AF1E841E5141D4969AC76A835441CF4CE2B27B1E5141D671EF966B835441B5EF6BF1701E5141E9C311896C83544128652E01711E51414BC60E3370835441295C8F02711E514152B81E8570835441854529B3681E514108FA935171835441CA3393845E1E514190128FB37283544114AE47F15D1E51418FC2F5C872835441D6F12DDB5D1E51416740DFC174835441B81E857B5E1E51413D0AD7D37B835441A4703D1A611E5141333333E38D8354411F85EBD1611E51411F85EB0192835441C3F528BC631E514152B81E7598835441CDCCCC9C651E5141B81E85AB9883544166666676661E51413D0AD7B39A83544114AE4711681E5141295C8FB29D83544185EB51486A1E5141AE47E12AA183544185EB51886C1E514185EB5138A58354415C8FC2C56F1E514148E17A14AA83544185EB5118741E514185EB5148B083544152B81EA57A1E51419A9999C9B7835441F6285CDF7D1E5141D7A3707DBC835441A4703DDA801E5141C3F5285CC1835441D7A3700D801E5141666666F6BF835441C3F528FC8E1E5141666666D6BC835441A4703D1A9E1E5141A4703DFAB6835441E17A14BE9F1E5141C3F528ECB583544185EB5118A01E5141E17A14EEB3835441A4703D3A9C1E51416666663699835441E17A140E9B1E5141A4703D3A958354413D0AD7F3961E5141A4703D7A918354413D0AD763901E5141295C8F528C83544185EB51788B1E5141295C8F82898354417B14AE17821E51415C8FC2758883544152B81E75821E5141CDCCCC2C81835441CDCCCCEC891E51413D0AD7B383835441D7A370DD8E1E5141713D0AA7848354410AD7A370931E514185EB51F885835441A4703D7A961E5141F6285CDF87835441666666A69A1E5141713D0A478B835441E17A14EE9E1E51410AD7A3D08F83544152B81E65A31E5141E17A144E95835441A4703DDAA41E51416666666696835441D7A3709DA61E5141EC51B88E908354418FC2F598A91E5141295C8FE284835441295C8FB2AA1E51417B14AE27818354411F85EB01AC1E5141AE47E1BA7C83544152B81EF5AC1E514133333363728354417B14AEF7AE1E5141C3F528FC69835441E17A143EB01E5141EC51B8BE6383544148E17A84A71E5141AE47E1CA61835441D7A3701D971E5141333333035F83544148E17A748E1E5141666666E65D835441F6285CEF871E514148E17AA45D835441EC51B8FE861E5141000000205E83544100000030861E51411F85EBA15F835441C3F528AC851E5141F6285C8F68835441F6285C6F841E51416666664674835441B81E859B831E5141EC51B8EE7A8354413EFB14D4821E5141A26EC4027B8354412780E04B831E51413CEF85177583544148E17AD4821E5141EC51B8EE7A83544166666616841E51418FC2F5086B835441016F1D19841E5141BC7A8AF36A835441C3C4E04B831E5141C18F821775835441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>325679 - 1837988
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -4227 </desc>
+<a>
+0106000000010000000103000000020000001F000000713D0A17ACB0504148E17A54F53C544114AE4701AEB05041F6285C1FF63C5441C3F5287CACB0504166666626FA3C54419A999989AAB05041B81E857BF93C5441666666C6A9B0504152B81EC5FA3C54419A999979AAB05041000000B0003D54415C8FC2A5A2B050419A9999F90C3D544133333383ABB050418FC2F5A8113D544152B81EE5ACB050411F85EB610E3D544114AE4781B4B05041C3F528FC113D544185EB5198C1B05041D7A3704D183D54418FC2F5A8CEB0504152B81E951E3D54418FC2F528D4B05041A4703DEA203D5441AE47E11AD6B05041B81E856B213D5441713D0AB7D7B05041AE47E11A1D3D54419A9999D9D8B0504166666676143D5441C3F528DCD6B05041295C8FB2113D54417B14AEC7D5B05041295C8F12103D54410AD7A390D5B050415C8FC2750E3D5441D7A370DDD5B05041000000100D3D544114AE4721D9B0504148E17A54073D544100000000D9B0504185EB51E8053D5441C3F528ACD3B05041D7A3709D003D5441D7A370DDCBB05041AE47E10AF93C5441A4703D4AC5B050410AD7A3E0F23C54410AD7A350C9B050410AD7A320EC3C5441333333E3C5B05041D7A3704DEA3C544100000060BFB05041AE47E1AAE63C5441295C8F12B5B05041666666B6E13C54410AD7A3F0B0B05041EC51B81EDF3C5441713D0A17ACB0504148E17A54F53C5441050000008FC2F518ABB05041A4703DEAFD3C5441C3F528CCAEB050411F85EB51FD3C544114AE4731AFB0504148E17AD4FF3C5441CDCCCC5CABB05041AE47E14A003D54418FC2F518ABB05041A4703DEAFD3C5441
+</a>
+
+<b>
+01060000000100000001030000000300000025000000666666C6A9B0504152B81EC5FA3C54419A999979AAB05041000000B0003D54415C8FC2A5A2B050419A9999F90C3D544133333383ABB050418FC2F5A8113D544152B81EE5ACB050411F85EB610E3D544114AE4781B4B05041C3F528FC113D544185EB5198C1B05041D7A3704D183D54418FC2F5A8CEB0504152B81E951E3D54418FC2F528D4B05041A4703DEA203D5441AE47E11AD6B05041B81E856B213D5441713D0AB7D7B05041AE47E11A1D3D54419A9999D9D8B0504166666676143D5441C3F528DCD6B05041295C8FB2113D54417B14AEC7D5B05041295C8F12103D54410AD7A390D5B050415C8FC2750E3D5441D7A370DDD5B05041000000100D3D544114AE4721D9B0504148E17A54073D544100000000D9B0504185EB51E8053D5441C3F528ACD3B05041D7A3709D003D54411D760C71CDB0504165215792FA3C544144435A2CCDB050417243B64FFA3C544135EECB7ACAB0504171E05BA8F93C5441E3929F58C8B05041BBC5CDBCF73C5441785D8381C4B050411298B7ABF63C5441E6B5AFFFBDB050413D812C23F63C5441530EDC7DB7B0504146087271E93C54412A5CA6EA9FB0504199088218DF3C5441BF04F6A79DB0504199088218DF3C544148E17A24A1B050419A999979DA3C54411F85EB819FB05041CDCCCC6CDA3C544185EB51589CB050419A999959E13C5441D7A370DD9FB050411F85EBA1E43C5441295C8F229EB05041C3F5285CEE3C5441BF213BC09BB05041EC1FD91DF23C5441AE47E1BA9BB05041B81E858BF53C54417B14AE079FB050410AD7A310F63C5441666666C6A9B0504152B81EC5FA3C544105000000713D0A17ACB0504148E17A54F53C544114AE4701AEB05041F6285C1FF63C5441C3F5287CACB0504166666626FA3C54419A999989AAB05041B81E857BF93C5441713D0A17ACB0504148E17A54F53C5441050000008FC2F518ABB05041A4703DEAFD3C5441C3F528CCAEB050411F85EB51FD3C544114AE4731AFB0504148E17AD4FF3C5441CDCCCC5CABB05041AE47E14A003D54418FC2F518ABB05041A4703DEAFD3C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>328701 - 1291612
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -8198 </desc>
+<a>
+0106000000010000000103000000010000001C000000713D0A77ED1E5141B81E852B3BF75441B81E856BEF1E514185EB51F83EF7544133333383F01E514185EB512841F75441D7A370DDF91E5141D7A370BD41F75441D7A3705DFE1E514148E17A8441F75441F6285CDF011F514185EB51B840F75441D7A3701D051F5141295C8F923FF754415C8FC275081F5141333333833DF75441333333530E1F51411F85EB7138F75441E17A140E1A1F514148E17A142EF754417B14AE671B1F514152B81E052DF7544148E17AD41A1F5141EC51B8FE2BF754415C8FC2251A1F51411F85EB812AF75441295C8F32191F51413333331329F754410AD7A3D0181F5141AE47E17A28F75441295C8F32181F51413D0AD7C327F75441EC51B80E171F51415C8FC24526F754419A9999C9101F51419A9999291FF754413D0AD763091F5141EC51B80E22F754417B14AE17021F5141EC51B8CE23F75441A4703D7AFB1E51410000004025F754413D0AD703F31E51418FC2F59826F7544148E17A34E91E51418FC2F52828F7544166666636E61E514114AE47A128F754411F85EB21E61E51413D0AD7A32BF75441B81E855BE71E51417B14AEC72EF75441A4703DCAEA1E51413D0AD74336F75441713D0A77ED1E5141B81E852B3BF75441
+</a>
+
+<b>
+01060000000100000001030000000100000034000000E9D71099161F5141E8404BAB25F754419A9999C9101F51419A9999291FF754417B14AEC7051F51418FC2F5A813F754413D0AD7D3EE1E5141D7A3706D19F75441000000E0DF1E5141C3F5280C1CF75441F6285C3FCA1E51411F85EBA11EF75441C3F5284CC61E5141AE47E11A1FF754419A999969BC1E5141CDCCCCEC20F75441295C8F32BD1E5141713D0AA722F75441CDCCCCECBE1E5141E17A142E22F7544166666656C01E5141C3F5286C2AF7544152B81E05BC1E514152B81E352BF75441C3F5285CBD1E51411F85EB012FF754411F85EBD1BA1E5141666666662FF754417B14AEB7BD1E51417B14AE0734F75441CDCCCCFCB81E51417B14AEE737F75441E17A144EBA1E5141D7A3704D39F75441C3F5289CBB1E5141D7A3709D3AF7544152B81E55BE1E51419A99993938F7544185EB5148BF1E5141D7A3707D37F754418FC2F5A8C01E5141713D0A3736F7544166666616C21E514152B81EE534F75441D7A3702DC41E5141A4703D6A33F7544100000070C81E5141E17A145E30F75441CDCCCCFCCB1E51416666664634F754410AD7A3B0CC1E51418FC2F51835F7544148E17A84CD1E51413333334336F7544148E17AB4CE1E5141B81E850B38F75441B81E851BD11E5141B81E85BB3BF754413D0AD773D31E51417B14AE0740F754415C8FC235D41E5141B81E856B41F754411F85EB11DB1E5141EC51B82E41F75441A3588F17DD1E5141033A59DF40F754418A225FE8D31E514199C4BE242EF754417FF0D926DD1E51419BF7549A2CF75441AC5BD010E61E5141E6A63A9F2AF7544132DFF326E61E51411FCD7CE62AF7544166666636E61E514114AE47A128F7544122D88E3DCE1E5141F5605A622CF754415C8FC275CF1E5141EC51B83E2AF754410AD7A310D01E51410AD7A31028F75441B81E85ABD01E5141713D0A4725F754417B14AE27D11E5141295C8FE221F75441C3F5285CE21E5141713D0A571FF7544114AE47A1E91E5141333333E31DF754410AD7A380F51E5141713D0A771BF75441AE47E10A001F51419A99992919F75441295C8F12031F51417B14AE3723F7544129CE491D031F514148F4FB8F23F75441BF7CE6A8031F51411A0C816E23F7544163A16C19051F51419F5D818529F75441E9D71099161F5141E8404BAB25F75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>328701 - 3296692
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -8198 </desc>
+<a>
+0106000000010000000103000000010000001C000000713D0A77ED1E5141B81E852B3BF75441B81E856BEF1E514185EB51F83EF7544133333383F01E514185EB512841F75441D7A370DDF91E5141D7A370BD41F75441D7A3705DFE1E514148E17A8441F75441F6285CDF011F514185EB51B840F75441D7A3701D051F5141295C8F923FF754415C8FC275081F5141333333833DF75441333333530E1F51411F85EB7138F75441E17A140E1A1F514148E17A142EF754417B14AE671B1F514152B81E052DF7544148E17AD41A1F5141EC51B8FE2BF754415C8FC2251A1F51411F85EB812AF75441295C8F32191F51413333331329F754410AD7A3D0181F5141AE47E17A28F75441295C8F32181F51413D0AD7C327F75441EC51B80E171F51415C8FC24526F754419A9999C9101F51419A9999291FF754413D0AD763091F5141EC51B80E22F754417B14AE17021F5141EC51B8CE23F75441A4703D7AFB1E51410000004025F754413D0AD703F31E51418FC2F59826F7544148E17A34E91E51418FC2F52828F7544166666636E61E514114AE47A128F754411F85EB21E61E51413D0AD7A32BF75441B81E855BE71E51417B14AEC72EF75441A4703DCAEA1E51413D0AD74336F75441713D0A77ED1E5141B81E852B3BF75441
+</a>
+
+<b>
+01060000000100000001030000000100000034000000E9D71099161F5141E8404BAB25F754419A9999C9101F51419A9999291FF754417B14AEC7051F51418FC2F5A813F754413D0AD7D3EE1E5141D7A3706D19F75441000000E0DF1E5141C3F5280C1CF75441F6285C3FCA1E51411F85EBA11EF75441C3F5284CC61E5141AE47E11A1FF754419A999969BC1E5141CDCCCCEC20F75441295C8F32BD1E5141713D0AA722F75441CDCCCCECBE1E5141E17A142E22F7544166666656C01E5141C3F5286C2AF7544152B81E05BC1E514152B81E352BF75441C3F5285CBD1E51411F85EB012FF754411F85EBD1BA1E5141666666662FF754417B14AEB7BD1E51417B14AE0734F75441CDCCCCFCB81E51417B14AEE737F75441E17A144EBA1E5141D7A3704D39F75441C3F5289CBB1E5141D7A3709D3AF7544152B81E55BE1E51419A99993938F7544185EB5148BF1E5141D7A3707D37F754418FC2F5A8C01E5141713D0A3736F7544166666616C21E514152B81EE534F75441D7A3702DC41E5141A4703D6A33F7544100000070C81E5141E17A145E30F75441CDCCCCFCCB1E51416666664634F754410AD7A3B0CC1E51418FC2F51835F7544148E17A84CD1E51413333334336F7544148E17AB4CE1E5141B81E850B38F75441B81E851BD11E5141B81E85BB3BF754413D0AD773D31E51417B14AE0740F754415C8FC235D41E5141B81E856B41F754411F85EB11DB1E5141EC51B82E41F75441A3588F17DD1E5141033A59DF40F754418A225FE8D31E514199C4BE242EF754417FF0D926DD1E51419BF7549A2CF75441AC5BD010E61E5141E6A63A9F2AF7544132DFF326E61E51411FCD7CE62AF7544166666636E61E514114AE47A128F7544122D88E3DCE1E5141F5605A622CF754415C8FC275CF1E5141EC51B83E2AF754410AD7A310D01E51410AD7A31028F75441B81E85ABD01E5141713D0A4725F754417B14AE27D11E5141295C8FE221F75441C3F5285CE21E5141713D0A571FF7544114AE47A1E91E5141333333E31DF754410AD7A380F51E5141713D0A771BF75441AE47E10A001F51419A99992919F75441295C8F12031F51417B14AE3723F7544129CE491D031F514148F4FB8F23F75441BF7CE6A8031F51411A0C816E23F7544163A16C19051F51419F5D818529F75441E9D71099161F5141E8404BAB25F75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>335970 - 4343049
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1922 </desc>
+<a>
+01060000000100000001030000000200000053000000CDCCCCDC5A795041EC51B83E7A2B55411F85EB9150795041E17A14CE6F2B5541C3F528FC4F7950415C8FC2456E2B5541A4703DFA52795041000000106B2B554148E17A144E795041C3F5286C642B5541A4703DAA4C7950417B14AEA75E2B55417B14AE974579504152B81E35542B5541AE47E15A3E795041000000D0592B554114AE47813C795041295C8FB25C2B554148E17A943B79504148E17A945F2B554185EB51C83B7950410AD7A370632B55418FC2F5983C795041D7A3701D662B5541333333E33D795041D7A3701D692B5541F6285C4F4479504148E17A44752B5541295C8FE249795041666666367E2B55419A9999E94A795041CDCCCCAC7F2B5541E17A145E56795041C3F5282C8E2B5541EC51B8CE577950415C8FC245912B5541A4703D0A597950413D0AD7F3962B5541A4703DFA5C795041C3F528AC932B5541B81E85AB5E795041295C8F02962B55413D0AD7435F795041CDCCCC2C982B5541A4703D5A5E795041B81E85CB9A2B554152B81E355C795041333333939D2B5541295C8F025B79504152B81EC59F2B554114AE47115B795041295C8F62A22B5541E17A147E5B795041E17A14FEAE2B5541B81E855B5B7950415C8FC2C5BB2B55417B14AED760795041AE47E11ABF2B5541F6285C0F627950417B14AED7BF2B554148E17A646579504185EB51B8C22B55417B14AE4767795041B81E85CBC32B5541A4703D2A68795041B81E857BC32B55417B14AE8768795041F6285C6FC22B5541EC51B84E6A79504114AE4751BD2B55413D0AD7736B79504166666606BA2B5541295C8F126D795041CDCCCC5CB52B5541C3F5283C6D7950413D0AD703B52B5541B81E85AB6F7950411F85EBD1AF2B55419A99990971795041713D0AE7AC2B55417B14AEE77179504114AE4711AD2B55410AD7A32073795041E17A146EAC2B5541B81E85DB7A795041333333C3AD2B5541295C8F9284795041CDCCCCFCAE2B5541F6285CBF857950411F85EB31B02B5541666666B68679504114AE4771B02B55418FC2F57886795041295C8F22B22B554148E17A5489795041E17A14AEB22B5541A4703D4A9879504114AE4721B62B554148E17A549F7950419A999979B72B5541A4703D2AA6795041A4703D6AB82B55418FC2F548A7795041000000A0B82B5541D7A3700DA879504152B81E05B82B55411F85EB81AA795041D7A370CDB62B55410AD7A300AC79504185EB5108B72B5541EC51B8DEB079504185EB51C8B72B5541333333C3AF795041C3F528DCB62B554114AE4751A5795041B81E85CBAD2B554133333333A379504152B81EF5AB2B55410AD7A380A27950413D0AD773AB2B5541A4703D4A9E795041E17A14EEA82B554152B81E359B7950417B14AE17A72B55417B14AE8799795041295C8F02A62B5541295C8F3298795041A4703D4AA42B554114AE478192795041B81E858BA02B55418FC2F5F888795041000000009B2B55415C8FC2A586795041C3F5284C992B5541D7A3700D8679504148E17A54982B554114AE47B182795041A4703D5A972B5541666666A68079504185EB5158962B5541000000807B795041AE47E1FA8D2B554148E17AA4777950411F85EB31882B5541CDCCCCCC717950413D0AD793822B5541333333936D795041D7A370CD7E2B5541AE47E17A6B7950413D0AD7237E2B554148E17A146B795041A4703D4A7E2B5541666666366A795041D7A3709D7E2B55419A9999E967795041F6285C7F812B55410000000066795041E17A146E832B5541295C8FB2647950417B14AE27832B55415C8FC2856379504185EB5148822B5541713D0A075F7950419A9999297E2B5541CDCCCCDC5A795041EC51B83E7A2B554109000000666666E6767950410AD7A3609C2B5541F6285CFF74795041E17A142E9F2B5541CDCCCCFC6F795041C3F5281C982B5541EC51B87E6B7950415C8FC2E5912B55413D0AD7036D795041F6285C9F8F2B5541AE47E17A6D795041D7A370ED8E2B55411F85EB41727950417B14AE77952B5541D7A3707D777950411F85EB819B2B5541666666E6767950410AD7A3609C2B5541
+</a>
+
+<b>
+01060000000100000001030000000200000090000000CDCCCCDC5A795041EC51B83E7A2B55411F85EB9150795041E17A14CE6F2B5541C3F528FC4F7950415C8FC2456E2B5541A4703DFA52795041000000106B2B554148E17A144E795041C3F5286C642B5541A4703DAA4C7950417B14AEA75E2B55417B14AE974579504152B81E35542B5541AE47E15A3E795041000000D0592B554114AE47813C795041295C8FB25C2B554148E17A943B79504148E17A945F2B554185EB51C83B7950410AD7A370632B55418FC2F5983C795041D7A3701D662B5541333333E33D795041D7A3701D692B5541F6285C4F4479504148E17A44752B5541295C8FE249795041666666367E2B55419A9999E94A795041CDCCCCAC7F2B5541E17A145E56795041C3F5282C8E2B5541EC51B8CE577950415C8FC245912B5541A4703D0A597950413D0AD7F3962B5541A4703DFA5C795041C3F528AC932B5541B81E85AB5E795041295C8F02962B55413D0AD7435F795041CDCCCC2C982B5541A4703D5A5E795041B81E85CB9A2B554152B81E355C795041333333939D2B5541295C8F025B79504152B81EC59F2B554114AE47115B795041295C8F62A22B5541E17A147E5B795041E17A14FEAE2B5541B81E855B5B7950415C8FC2C5BB2B55417B14AED760795041AE47E11ABF2B5541F6285C0F627950417B14AED7BF2B554148E17A646579504185EB51B8C22B55417B14AE4767795041B81E85CBC32B5541A4703D2A68795041B81E857BC32B55417B14AE8768795041F6285C6FC22B5541EC51B84E6A79504114AE4751BD2B55413D0AD7736B79504166666606BA2B554149F793026C7950410E75966BB82B5541D6D295676C795041F14EE148B72B5541F9048EA86C7950415069E48DB62B554106E103DC6C795041B0E7C8F9B52B5541295C8F126D795041CDCCCC5CB52B5541C3F5283C6D7950413D0AD703B52B55418FC2F5E86C7950413D0AD7D3B42B5541FA5EE5B96C7950419B384CA3B42B55417CD960CB6B795041E9D649ADB32B55419439C0546A7950412DEEE42AB22B5541713D0AF769795041A4703DCAB12B5541B81E85FB687950411F85EB81B02B5541E0A72B6568795041B90AD76BAF2B5541295C8F22687950410AD7A3F0AE2B5541AC28506F6779504156D55A56AD2B554168E3920867795041F9D3306BAC2B55419A9999B96679504185EB51C8AB2B5541AE47E15A64795041E17A148EAC2B5541F6285CBF637950418FC2F5D8AA2B5541C62BD7E162795041FFCA6640A82B554111EA75E361795041E0054345A52B554127D984FD6079504123D36F93A22B55415C8FC2E560795041C3F5284CA22B55411D12CC8560795041F2984FC6A02B554114AE4735607950418EC2357F9F2B5541000000F05F7950415C8FC2659E2B5541666666265F7950410AD7A3609C2B55413F26EF8F5E795041718121369B2B55415F3B8A1D5F795041C26A80D4992B554179161E545F79504189326314992B55411F85EB116079504152B81ED5982B55411E20D95D61795041CEF5D1479B2B554163AC4B9461795041871029BB9B2B554131F404F663795041FD2CCBEAA02B55417559C62564795041092BC752A12B554145F03C7D64795041CFB385F9A12B5541FD9CC73C66795041FF641A4BA52B5541ABE5A2A767795041517FECFBA72B55411429052B68795041A1AF11F3A82B554185EB51086979504100000090AA2B55418FC2F5586A795041D7A3703DAC2B5541B81E85AB6B79504114AE4771AD2B5541B81E85AB6F7950411F85EBD1AF2B55419A99990971795041713D0AE7AC2B55417B14AEE77179504114AE4711AD2B55410AD7A32073795041E17A146EAC2B5541B81E85DB7A795041333333C3AD2B5541295C8F9284795041CDCCCCFCAE2B5541F6285CBF857950411F85EB31B02B5541666666B68679504114AE4771B02B55418FC2F57886795041295C8F22B22B554148E17A5489795041E17A14AEB22B5541A4703D4A9879504114AE4721B62B554148E17A549F7950419A999979B72B5541A4703D2AA6795041A4703D6AB82B55418FC2F548A7795041000000A0B82B5541D7A3700DA879504152B81E05B82B55411F85EB81AA795041D7A370CDB62B55410AD7A300AC79504185EB5108B72B5541EC51B8DEB079504185EB51C8B72B5541333333C3AF795041C3F528DCB62B554114AE4751A5795041B81E85CBAD2B554133333333A379504152B81EF5AB2B55410AD7A380A27950413D0AD773AB2B5541A4703D4A9E795041E17A14EEA82B554152B81E359B7950417B14AE17A72B55417B14AE8799795041295C8F02A62B5541295C8F3298795041A4703D4AA42B554114AE478192795041B81E858BA02B554125F54FFE8879504137091D039B2B55410D6574B288795041EC345FCC9A2B5541E42FE67588795041151A5CFB9B2B55412006BE48887950416515D38A9D2B554173C4E8278879504160A0F5689E2B55419008D451887950418A01F940A02B5541AB359D4C88795041BD564F8CA02B5541E17A140E887950413D0AD713A42B5541B8F13D0586795041D6E27EAAA32B55419C71D2F382795041592FCC1AA32B554131CDF4487F7950416BEC714DA22B55415C8FC2257D7950415C8FC2D5A12B554114AE47F17A7950417B14AE27A12B554139EFC3F67879504180CC3B4DA02B5541666666367679504152B81EF59E2B554114AE47917A795041CDCCCC9C982B55416D03A5AC7C795041394C8991992B5541F6285C7F80795041B81E853B9B2B55418A68AD10857950410BDF44959C2B55418AE76F6A8579504155CEEDAC9C2B5541F6285C0F88795041F6285C5F9D2B55410E3218668879504155E174949A2B55415C8FC2A586795041C3F5284C992B5541D7A3700D8679504148E17A54982B554114AE47B182795041A4703D5A972B5541666666A68079504185EB5158962B5541000000807B795041AE47E1FA8D2B554148E17AA4777950411F85EB31882B5541CDCCCCCC717950413D0AD793822B5541333333936D795041D7A370CD7E2B5541AE47E17A6B7950413D0AD7237E2B554148E17A146B795041A4703D4A7E2B5541666666366A795041D7A3709D7E2B55419A9999E967795041F6285C7F812B55410000000066795041E17A146E832B5541295C8FB2647950417B14AE27832B55415C8FC2856379504185EB5148822B5541713D0A075F7950419A9999297E2B5541CDCCCCDC5A795041EC51B83E7A2B554109000000666666E6767950410AD7A3609C2B5541F6285CFF74795041E17A142E9F2B5541CDCCCCFC6F795041C3F5281C982B5541EC51B87E6B7950415C8FC2E5912B55413D0AD7036D795041F6285C9F8F2B5541AE47E17A6D795041D7A370ED8E2B55411F85EB41727950417B14AE77952B5541D7A3707D777950411F85EB819B2B5541666666E6767950410AD7A3609C2B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>343134 - 3109625
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -32746 </desc>
+<a>
+01060000000100000001030000000100000010000000F6285C0FA0ED5041CDCCCC3C4BAD5441D7A370FD5CED5041C3F5286C63AD5441713D0A475BED5041333333036EAD544148E17AB45AED5041CDCCCCCC73AD5441B81E85BB5BED5041A4703DEA76AD54410AD7A3C05EED50418FC2F5B87BAD5441295C8FF260ED504114AE47917DAD54413D0AD7B363ED504185EB51087DAD54419A99999976ED50416666663676AD5441666666C697ED50411F85EB416AAD5441A4703D0AA4ED5041E17A14AE64AD5441B81E859BB6ED5041333333A35EAD5441D7A370DDB7ED5041CDCCCC9C5DAD5441295C8F42B5ED504148E17AF44DAD54413D0AD7B3B3ED50417B14AE2744AD5441F6285C0FA0ED5041CDCCCC3C4BAD5441
+</a>
+
+<b>
+0106000000010000000103000000010000000A0000000B6A9AC8B5ED5041D874271A51AD5441295C8F42B5ED504148E17AF44DAD54413D0AD7B3B3ED50417B14AE2744AD5441F6285C0FA0ED5041CDCCCC3C4BAD544179E67CBA96ED50417027369A4EAD54412A4A433493ED504105468CDF4FAD54413AEFBCCD96ED5041C1EA3E4C5CAD54411C239E479AED5041EB80591A5BAD54418CA164D4B2ED50415862391652AD54410B6A9AC8B5ED5041D874271A51AD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>343134 - 3491755
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -32746 </desc>
+<a>
+01060000000100000001030000000100000010000000F6285C0FA0ED5041CDCCCC3C4BAD5441D7A370FD5CED5041C3F5286C63AD5441713D0A475BED5041333333036EAD544148E17AB45AED5041CDCCCCCC73AD5441B81E85BB5BED5041A4703DEA76AD54410AD7A3C05EED50418FC2F5B87BAD5441295C8FF260ED504114AE47917DAD54413D0AD7B363ED504185EB51087DAD54419A99999976ED50416666663676AD5441666666C697ED50411F85EB416AAD5441A4703D0AA4ED5041E17A14AE64AD5441B81E859BB6ED5041333333A35EAD5441D7A370DDB7ED5041CDCCCC9C5DAD5441295C8F42B5ED504148E17AF44DAD54413D0AD7B3B3ED50417B14AE2744AD5441F6285C0FA0ED5041CDCCCC3C4BAD5441
+</a>
+
+<b>
+0106000000010000000103000000010000000A0000000B6A9AC8B5ED5041D874271A51AD5441295C8F42B5ED504148E17AF44DAD54413D0AD7B3B3ED50417B14AE2744AD5441F6285C0FA0ED5041CDCCCC3C4BAD544179E67CBA96ED50417027369A4EAD54412A4A433493ED504105468CDF4FAD54413AEFBCCD96ED5041C1EA3E4C5CAD54411C239E479AED5041EB80591A5BAD54418CA164D4B2ED50415862391652AD54410B6A9AC8B5ED5041D874271A51AD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>354622 - 384861
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1046 </desc>
+<a>
+0106000000050000000103000000030000005D000000AE47E1EA4DC75041E17A14BE5BD95441AE47E1AA4CC75041B81E851B64D95441E17A147E49C7504152B81E6569D95441C3F5289C46C750410AD7A3E06ED95441AE47E1EA43C750413333330378D95441713D0A5743C75041B81E859B7FD95441F6285C6F43C75041666666D688D95441B81E85FB43C750415C8FC2458ED95441295C8FB26CC7504185EB516889D9544152B81ED59BC7504148E17A5483D95441AE47E16AA5C75041F6285CAF82D954415C8FC225A7C750416666665681D954415C8FC225A7C75041666666967DD95441CDCCCCCCA5C750413333334374D954410AD7A320A0C75041CDCCCC4C78D95441AE47E19A99C75041EC51B88E70D95441B81E859B93C7504152B81E4575D95441000000D088C75041000000706CD954410AD7A3107DC75041000000905DD95441A4703DAA79C7504185EB51E853D954413D0AD7338AC75041F6285CAF19D954413D0AD7A3A3C750410AD7A37013D9544185EB51D8BBC75041713D0A771ED9544100000020CAC75041B81E85BB30D9544114AE47D1CDC75041C3F5280C28D954417B14AE47CCC750410AD7A37023D95441000000C0C6C75041EC51B87E21D9544185EB5198C8C75041E17A143E1FD9544114AE47A1D2C750415C8FC2C524D954413D0AD723D3C75041000000D02AD954417B14AEF7CFC750413D0AD7732CD95441713D0AB7CDC750413333332330D9544185EB51F8CBC750417B14AE1733D9544152B81EA5CCC75041A4703D6A36D9544148E17A64D5C7504185EB517831D954413D0AD7F3D7C75041333333C339D954411F85EB81DEC750419A9999F935D954417B14AE87DFC750411F85EBC12CD9544185EB51D8DBC750419A9999592CD9544185EB5128D8C75041E17A14AE2DD95441EC51B87ED5C75041000000D02AD95441E17A14EED6C75041D7A3709D26D95441AE47E1EADEC75041295C8F6225D95441CDCCCCDCE0C75041AE47E18A23D9544185EB5178E5C75041C3F5281C22D95441CDCCCCCCE6C75041295C8F4224D954413D0AD7C3EDC750416666665623D95441C3F5280CEDC75041F6285CCF1DD9544185EB5168EBC7504148E17AC417D95441AE47E15AEDC75041713D0A5712D95441B81E859BEFC7504148E17A240ED95441B81E859BEFC75041EC51B89E04D9544133333373F1C750418FC2F518FBD85441000000D0EFC7504114AE47E1F1D85441EC51B86EECC750418FC2F598F2D854413D0AD713EAC75041CDCCCC8CF0D8544148E17A84E7C7504152B81EE5E9D85441AE47E18AE8C7504148E17AC4E8D85441713D0AB7EBC750418FC2F5D8E7D85441AE47E10AEAC750410AD7A360DFD85441CDCCCCACE5C750415C8FC2B5DDD85441295C8F92E5C75041AE47E17ADCD85441F6285CBFD7C75041295C8F92D3D85441295C8F22D7C750410AD7A3A0D1D8544148E17A64D5C75041CDCCCCDCCED8544133333313CCC7504166666606C9D85441CDCCCCCCC8C75041713D0A47CBD854417B14AE57B5C7504185EB5128C6D85441F6285CEFB4C7504152B81EB5BFD854418FC2F5C8B2C7504166666666BFD85441B81E852BB2C75041666666D6CDD85441333333B3B7C750418FC2F538CDD85441713D0AE7B7C75041CDCCCCDCCED85441713D0A17B3C75041E17A14AECFD854413D0AD753B0C75041C3F5283CD6D8544148E17AF4A8C750419A999979E0D85441B81E85EB9EC7504148E17A74ECD854418FC2F5E899C750413D0AD713F3D854410AD7A33094C75041E17A146EFAD85441666666C68EC75041D7A370DD00D9544185EB51488AC75041000000A003D9544114AE474184C75041000000B006D954418FC2F5887EC750411F85EB7109D954411F85EB7175C750410AD7A3100FD9544152B81E2567C75041EC51B8BE17D9544148E17A6456C750415C8FC2F521D954413D0AD7F34AC75041E17A14CE28D95441EC51B8EE49C750415C8FC2752BD95441AE47E12A4AC750411F85EB112ED95441AE47E16A4BC75041CDCCCC0C36D95441C3F528DC4CC750413D0AD7B343D954410AD7A3A04DC750418FC2F53852D95441AE47E1EA4DC75041E17A14BE5BD954410500000085EB518866C750413D0AD7B328D95441666666F667C750411F85EB0129D954410AD7A31068C7504148E17AA42AD95441295C8FA266C75041EC51B8BE2AD9544185EB518866C750413D0AD7B328D9544105000000EC51B82E64C75041C3F5281C29D954417B14AE9764C75041713D0A272BD95441D7A3705D63C7504114AE47412BD9544152B81EF562C75041C3F5281C29D95441EC51B82E64C75041C3F5281C29D954410103000000040000006D000000AE47E1EA6BC750417B14AE079DD95441C3F5281C67C75041333333839DD954410AD7A3A066C750413D0AD7F399D954419A9999B96BC750416666661699D95441AE47E1EA6BC750410AD7A3A09AD954415C8FC2E573C75041A4703DAA99D954411F85EB1177C75041B81E859B98D954415C8FC2A577C750413333334397D95441E17A147E76C75041A4703D2A97D954413333330376C7504152B81E2595D95441E17A14BE77C75041333333C394D95441295C8F7276C7504152B81EA58BD95441CDCCCCBC2CC750410AD7A3E094D954419A9999B92AC75041F6285CAFA5D95441B81E85EB29C75041295C8F62AFD95441F6285CEF2AC75041A4703DDAAFD95441713D0AC72AC75041E17A142EB1D95441713D0A8729C75041A4703DBAB1D95441B81E855B28C75041666666A6BBD95441F6285C1F28C75041666666B6BFD95441333333432CC7504166666636C2D95441713D0A0731C75041E17A148EC4D95441B81E85DB34C75041295C8F52C4D95441B81E85EB38C75041A4703D8AC3D95441B81E859B3DC7504166666636C2D95441F6285CCF40C75041666666F6C0D95441713D0A1744C75041A4703D8ABED95441F6285CBF46C75041295C8FD2BCD95441713D0A6749C75041A4703D1ABBD95441713D0A274DC75041E17A14EEB9D95441713D0AA74FC75041295C8F22B8D95441B81E853B52C75041A4703D6AB6D954413333332356C75041E17A149EB4D954413333339359C75041666666E6B2D95441333333635CC75041A4703DAAB2D95441713D0A6762C7504166666696B2D95441F6285CCF68C75041E17A14BEB2D95441713D0AE76EC75041666666E6B2D95441F6285C3F76C75041666666D6B3D95441B81E852B76C75041A4703D4AB8D95441713D0A8774C75041E17A147EC0D95441F6285C4F75C75041A4703D2AC4D95441333333937CC75041A4703D0AC1D95441713D0A0781C75041666666E6BCD95441713D0AA786C75041E17A146EB7D95441F6285CEF89C75041E17A141EB7D95441713D0AF78BC75041E17A14FEB8D95441713D0A678FC75041A4703DEAB8D95441713D0A678FC75041A4703DCAB5D95441713D0AD792C75041E17A14CEB1D95441333333F394C75041295C8FC2AED95441F6285C2F95C75041295C8FF2ABD95441B81E852B99C75041E17A145EA9D95441713D0AD79CC75041A4703D4AA9D95441333333A39EC75041295C8FF2A6D95441CDCCCCCC9BC75041CDCCCCCCA2D95441CDCCCC4C9EC750413D0AD7339BD954411F85EB91A1C7504152B81EA597D954410AD7A320AAC750413D0AD7F394D95441B81E852BA8C75041295C8F7285D954413D0AD713A3C750413333333386D954410AD7A3D09FC750417B14AE9786D95441713D0AD79FC750410AD7A3E087D954410AD7A3A09DC750410AD7A3A090D9544185EB51489CC750416666661699D95441CDCCCC8C9AC75041F6285C2F9ED95441AE47E1AA97C750411F85EB51A2D95441713D0A9794C750417B14AEC7A5D954413333332392C75041295C8FE2A7D95441B81E858B8EC75041E17A143EABD95441F6285CFF88C75041295C8FC2AED954413333336384C75041A4703D6AB1D95441713D0A877EC75041E17A14FEB3D95441F6285CFF79C75041295C8FB2B4D95441B81E85CB76C75041E17A149EB4D95441B81E851B77C75041295C8FC2B3D95441713D0A077CC75041E17A14AEB3D95441713D0AC77FC75041295C8F82B2D95441B81E85CB85C75041666666C6AFD95441713D0A478CC75041295C8F52ABD95441713D0A9791C75041E17A14DEA6D95441AE47E16A96C75041F6285CEFA1D95441AE47E1EA98C750413D0AD7B39DD9544148E17A749AC75041333333C399D954410AD7A3609CC75041F6285C2F8FD954418FC2F5A89DC75041CDCCCCDC86D95441CDCCCC8C86C7504114AE47B189D954415C8FC2A586C75041333333038CD954415C8FC2E587C750413D0AD7338CD9544185EB514888C750413D0AD7F38FD95441E17A14BE86C750416666665690D954411F85EB1186C75041B81E855B8DD95441713D0A177EC75041E17A14FE8ED954415C8FC2E57DC7504152B81EA58DD954419A9999B984C75041333333038CD95441D7A370FD83C750417B14AE078AD95441A4703D9A78C750411F85EB718BD954415C8FC2E578C75041F6285C6F90D95441333333C379C750418FC2F5F896D9544185EB51887AC750413D0AD7739CD954419A9999F97BC750418FC2F5389DD954411F85EB5182C75041333333439CD95441E17A14FE82C75041CDCCCCCCA2D9544148E17AF479C750413D0AD7F3A3D95441713D0A1779C750413D0AD733A0D954411F85EB5178C750418FC2F5B89AD954410AD7A3E076C75041E17A143E9AD95441C3F5281C6CC75041E17A147E9BD95441AE47E1EA6BC750417B14AE079DD9544105000000713D0A8738C750418FC2F538A3D95441333333F338C75041CDCCCC7CA4D954419A99993934C750411F85EB01A6D954418FC2F5F833C75041295C8F92A4D95441713D0A8738C750418FC2F538A3D9544105000000EC51B86E37C7504185EB51989FD954419A99999937C75041C3F528DCA0D954416666663633C75041B81E854BA2D9544148E17AB432C750411F85EBF1A0D95441EC51B86E37C7504185EB51989FD954410B0000000AD7A31042C7504114AE4731AED95441713D0A073FC75041E17A14DEAED9544148E17A443EC7504114AE4731AED95441C3F5281C3FC75041333333E3A9D954415C8FC27540C7504148E17A14A5D954411F85EBE140C750415C8FC285A0D95441E17A14AE44C7504100000070A0D954410AD7A37045C750415C8FC295A5D95441A4703DCA46C75041E17A14CEA9D95441CDCCCCDC45C75041D7A370EDACD954410AD7A31042C7504114AE4731AED95441010300000001000000240000007B14AE27F8C6504152B81E259CD95441A4703D6AEEC650417B14AE079DD954417B14AE37F1C65041EC51B88EA3D95441E17A14AEF4C65041CDCCCCFCA9D95441AE47E1DAEDC650411F85EB91ABD95441C3F528ECE7C65041B81E854BA0D9544152B81ED5E6C650410AD7A3B0A0D954418FC2F5E8E8C650410AD7A380A8D95441CDCCCCFCEAC650417B14AE97B2D95441713D0AF7ECC650411F85EB91B4D95441713D0A87F0C6504133333373B6D95441E17A14AEF4C65041000000A0B8D95441C3F5285CF9C65041AE47E11ABBD95441CDCCCC2CFEC65041A4703D2ABED954418FC2F5A803C75041A4703D1AC1D954410AD7A3700AC75041D7A370CDC3D95441713D0AB712C7504166666696C6D954413333334318C75041E17A149EC8D95441B81E85DB1BC75041E17A143EC9D95441333333231FC75041295C8F12C8D95441333333831EC75041295C8F92C5D95441F6285C2F1DC75041E17A147EC0D95441F6285C5F1FC75041295C8FC2BDD954413333334322C7504166666686BDD95441B81E856B22C75041A4703DCABAD954413333336325C75041295C8FF2BAD954413333336325C7504166666626B9D95441B81E851B27C75041A4703DEAB8D95441F6285CCF27C75041E17A14CEB1D95441B81E851B27C7504166666606B1D954413333334327C75041E17A149EAFD95441333333E327C75041A4703D3AAFD95441E17A14FE28C750418FC2F5F8A5D95441E17A140E2BC7504152B81E2595D954419A9999E928C750413D0AD75395D954417B14AE27F8C6504152B81E259CD954410103000000020000003E000000AE47E1AAE3C650417B14AE27DAD95441B81E851BE9C650411F85EB51DDD95441C3F528BCEFC6504185EB51C8E0D95441A4703D2AF6C65041666666A6E3D954413D0AD7E3FCC65041A4703D8AE4D9544114AE478104C75041000000F0E4D954418FC2F5D809C75041CDCCCCBCE4D95441F6285CBF0FC75041295C8F42E3D95441B81E85BB22C75041295C8FA2DDD95441F6285C9F29C75041E17A144EDAD954415C8FC26530C75041D7A3703DD8D954415C8FC26530C7504166666606D4D954417B14AE6739C75041A4703D4AD2D95441295C8F5239C75041F6285C3FD7D95441C3F5280C46C750411F85EB91D8D954411F85EB3152C75041B81E853BD9D95441EC51B8FE55C7504148E17A04D5D954419A9999C95AC75041E17A143ECED9544152B81E7564C75041CDCCCCDCC9D95441295C8F2263C75041CDCCCC6CC2D95441B81E851B63C7504166666656BBD954413333335362C75041A4703D9AB3D95441713D0A775CC75041A4703D9AB3D95441333333A358C75041A4703DDAB4D95441333333B352C75041295C8F22B8D95441F6285C8F4EC75041295C8FF2BAD95441B81E85BB4AC75041295C8FE2BBD95441713D0AE746C75041A4703D3ABED95441713D0A7743C7504166666646C1D95441F6285CFF3DC75041666666C6C3D95441F6285CFF38C75041295C8FF2C4D954413333335335C75041E17A142EC5D95441713D0A772FC75041E17A146EC6D95441F6285CDF2BC75041E17A14AEC7D95441B81E850B2DC75041666666E6CBD95441713D0A7725C75041295C8F52CED954413333332324C75041666666F6CAD95441713D0A871FC75041A4703D5ACBD95441F6285C8F1CC75041A4703D0ACBD95441F6285C2F18C75041295C8FA2C9D95441713D0A7711C7504166666636C7D9544148E17A240AC750417B14AE97C4D95441D7A3709D03C75041333333D3C1D954419A999959FDC65041CDCCCC9CBED954410AD7A370F8C65041EC51B87EBBD9544114AE47B1F3C65041C3F528ECB8D954415C8FC2A5EEC650419A999959B6D954418FC2F548EBC650418FC2F578B4D95441F6285CAFE8C650411F85EB41B6D9544114AE4771E0C65041F6285CBFB7D9544114AE47C1DBC65041713D0A87C1D954418FC2F5E8D6C650419A9999B9CAD954410AD7A350D6C65041295C8F92CFD95441A4703D6AD6C650413D0AD773D1D95441295C8F52D4C65041CDCCCC7CD3D9544185EB5138D6C65041C3F528CCD4D95441333333E3D8C650411F85EBF1D1D9544100000010DBC65041CDCCCCECD3D9544114AE4791DAC65041F6285C4FD5D95441B81E85EBDEC6504100000060D8D954410AD7A380E0C6504185EB51C8D7D95441AE47E1AAE3C650417B14AE27DAD9544105000000F6285CCFEEC65041AE47E17AC6D9544185EB5108EFC65041CDCCCC8CC9D95441EC51B8BEECC65041E17A149EC9D95441CDCCCCACECC65041CDCCCC6CC6D95441F6285CCFEEC65041AE47E17AC6D9544101030000000200000027010000713D0A070DC7504148E17A1495D95441C3F5289C0CC75041AE47E11A93D95441AE47E17A0EC7504114AE47B192D95441666666E60EC75041CDCCCCAC94D954418FC2F50828C750411F85EBB191D9544114AE47612AC75041F6285C5F91D95441333333C329C75041666666D68DD95441E17A14BE2CC75041E17A14BE8DD954410AD7A3F02CC75041B81E852B91D95441295C8FC241C75041AE47E18A8ED954419A9999F93FC7504152B81E6582D954419A99993941C750411F85EB517FD95441E17A14FE41C750416666665677D954415C8FC26544C750417B14AE876DD9544148E17AB446C750413333330369D95441F6285CAF49C75041B81E85DB62D95441E17A14FE4BC75041B81E855B5BD95441CDCCCCCC4BC750418FC2F53852D95441F6285CEF4AC75041F6285C2F44D9544185EB51C849C75041F6285C6F36D95441C3F528DC47C75041333333432ED95441295C8F1247C75041713D0A272BD95441F6285C7F43C75041713D0A1728D9544114AE47B139C750418FC2F55821D95441C3F5289C3AC7504152B81E0520D954417B14AED740C75041666666E623D95441295C8F1247C7504152B81E8529D9544114AE47914BC7504114AE471127D954410AD7A33056C750411F85EBA120D954415C8FC20566C750411F85EB2117D95441E17A141E74C750417B14AEA70ED954411F85EBF17EC75041E17A141E08D9544185EB51F884C75041E17A140E05D95441A4703DBA87C750418FC2F5E802D9544152B81EC589C7504148E17A9401D95441CDCCCC8C8DC750416666662600D95441AE47E12A93C75041B81E85EBF9D854411F85EB3199C7504114AE4771F1D8544148E17A049FC7504166666616EAD85441713D0A57A8C7504114AE47A1DED85441D7A3704DAFC7504100000050D5D85441C3F528BCB0C75041A4703D9AD0D85441E17A148EB1C75041EC51B87EC3D85441B81E85ABA9C750419A9999B9C4D85441AE47E17AA1C75041E17A140EC6D85441C3F528AC98C75041000000E0C6D854418FC2F59888C750410AD7A320C9D85441295C8FD26BC750415C8FC295CBD854418FC2F5685EC750418FC2F518CCD854419A9999B949C75041EC51B81ECDD8544148E17AF41BC750415C8FC235D5D85441CDCCCC3CECC6504152B81E75DBD85441A4703DAAC2C650419A999999E1D8544133333303ABC650411F85EB91E4D85441295C8FB2AEC65041AE47E1BAEFD85441B81E85DBB2C65041A4703D7A06D95441B81E850BB5C65041A4703DBA20D954418FC2F588B1C650415C8FC23521D95441AE47E1BAB1C650410AD7A3A024D95441B81E852BB8C65041295C8F0224D954411F85EBF1BBC6504148E17A7423D95441B81E85FBBFC65041295C8F9220D954419A9999E9C2C65041C3F528CC1ED95441B81E85EBC0C65041A4703D6A16D9544100000080BFC650410AD7A3B016D95441E17A142EBFC6504152B81EB512D9544152B81EC5C2C65041C3F5286C12D954419A999929C3C65041EC51B81E16D9544148E17AB4C1C65041A4703D3A16D95441B81E857BC3C65041C3F5288C1ED95441F6285C5FD4C65041D7A3703D13D95441295C8F32D3C65041B81E856B13D954415C8FC2C5D2C6504185EB51B80FD95441295C8F72DBC65041EC51B85E0ED954419A999979DDC65041AE47E1DA11D95441AE47E10AD6C65041E17A14FE12D9544133333393C3C65041A4703D2A1FD95441B81E85ABBAC65041295C8F4225D95441F6285CCFB1C65041295C8F0226D95441AE47E1DAB1C65041AE47E1CA26D95441E17A14DEB2C65041EC51B84E33D95441C3F5288CB3C65041713D0A9743D9544166666696B3C650411F85EBF150D9544100000050B3C650415C8FC2355ED95441B81E852BB3C6504148E17A046DD954411F85EB61B3C650418FC2F51881D95441AE47E11AB4C65041000000408AD954415C8FC255B6C65041AE47E1CA94D95441713D0A47BAC65041E17A145E9FD95441F6285C1FBFC65041A4703DEA9FD95441333333D3BAC65041666666C691D95441333333F3D1C65041666666D695D95441F6285CCFD2C65041295C8F429DD9544133333373D9C65041295C8F129BD95441713D0A97DDC65041E17A144E96D95441B81E855BE1C65041333333C38FD9544185EB5188E4C65041B81E85DB85D9544133333343E6C65041666666967DD954411F85EBD1E4C6504152B81E657DD954410AD7A3A0E4C65041333333837AD954419A999979E3C65041333333837AD954411F85EB91E3C650411F85EB1179D9544133333303E5C650411F85EB1179D954415C8FC265E5C65041666666D674D954415C8FC265E5C65041A4703DAA67D9544148E17AF4E3C65041B81E859B66D9544148E17AF4E3C6504152B81E6564D954415C8FC265E5C650410AD7A3A063D95441F6285CAFE5C65041B81E855B56D95441E17A143EE4C65041CDCCCC4C55D95441CDCCCC0CE4C65041F6285C2F53D95441E17A147EE5C650413333338352D954411F85EB11E6C650413D0AD7F344D95441713D0A57E4C6504152B81EE543D95441F6285C6FE4C650417B14AEC741D954410AD7A3E0E5C650413D0AD73341D954411F85EB11E6C65041F6285CEF33D95441F6285C6FE4C650413333334333D95441F6285C6FE4C65041333333C330D95441AE47E12AE6C650410AD7A36030D9544148E17A74E6C65041666666962DD954419A999979E8C65041666666D629D95441C3F5285CEDC65041CDCCCCEC27D9544114AE47A1EDC6504185EB51C829D954410AD7A3A0E9C65041666666562CD95441E17A14FEE7C65041E17A14FE2FD95441713D0A17E8C650417B14AEC73CD9544133333383E7C65041CDCCCC4C50D954411F85EB51E7C650416666665668D954410AD7A320E7C650410AD7A3A072D95441B81E859BE7C650418FC2F57876D9544148E17AF4E8C65041F6285CEF79D95441E17A14BEEBC65041F6285C2F7BD95441CDCCCC8CF0C65041333333837AD954419A9999B9F3C650410AD7A3E078D95441E17A147EF4C650413D0AD7F376D95441C3F5281CF4C6504152B81EA574D954415C8FC2E5F1C650417B14AE8772D95441CDCCCCCCF1C65041A4703D6A70D954410AD7A3A0F3C650410AD7A3E06ED954410AD7A3A0F3C65041B81E85DB6CD954415C8FC2E5F1C65041333333836BD954415C8FC2E5F1C65041CDCCCC4C69D954419A9999B9F3C6504152B81E2568D954410AD7A3A0F3C650410AD7A32066D95441F6285C2FF2C65041F6285CAF64D95441E17A14FEF1C65041F6285C2F62D9544185EB5188F3C650410AD7A32061D95441AE47E1EAF3C65041333333035FD95441F6285C2FF2C650411F85EB915DD95441713D0A17F2C65041333333435BD954410AD7A3A0F3C650413D0AD7335AD954410AD7A3A0F3C65041B81E859B57D95441F6285C2FF2C650411F85EB1156D95441F6285C2FF2C65041333333C353D954410AD7A3E0F4C650417B14AE0752D9544133333343F5C6504152B81E653CD954415C8FC2A5F5C6504152B81E252CD9544148E17A34F4C650411F85EB512AD9544133333383F1C650413333334329D95441F6285C2FEEC65041C3F528AC29D95441C3F528ECEDC65041666666C627D95441E17A14BEF5C650417B14AE4726D954413D0AD7B3FEC6504152B81E4524D95441F6285C1FFFC650418FC2F5F825D954419A999939FBC650413D0AD7F326D9544185EB5188F8C650416666669628D954411F85EB91F7C65041B81E85DB2BD954411F85EB91F7C65041CDCCCC4C3CD9544185EB5148F7C65041B81E85DB53D9544148E17AB4F6C65041B81E85DB71D9544148E17AB4F6C6504152B81EE575D95441C3F528DCF7C650418FC2F5B877D954410AD7A3E0F9C650416666669678D95441F6285CAFFEC650413333330378D9544148E17A7404C75041333333C376D954415C8FC2E505C75041A4703D6A75D954411F85EB9106C750413D0AD73373D954410AD7A3E003C75041E17A143E72D954410AD7A3E003C750417B14AE0770D95441E17A14FE05C75041B81E855B6FD9544185EB514806C7504152B81EE561D954410AD7A3E003C75041666666D660D954410AD7A3E003C750410AD7A3A05ED95441F6285C2F06C750413D0AD7F35DD954410AD7A36006C750416666669650D954419A9999F903C750410AD7A3A04FD954411F85EB1104C75041A4703D6A4DD954419A99997906C750410AD7A3204DD954411F85EB9106C750417B14AE473FD95441C3F5285C04C75041B81E859B3ED954413333334304C7504152B81E653CD95441AE47E1AA06C750418FC2F5B83BD95441C3F528DC06C750417B14AE0734D9544148E17AF406C750411F85EB112ED95441C3F5285C04C75041B81E851B2DD95441C3F5285C04C75041E17A14FE2AD9544148E17AF406C75041333333832AD95441E17A14FE05C750417B14AE8727D95441A4703DCA03C750413D0AD7B325D95441D7A3709DFFC650410AD7A3E025D95441AE47E12AFFC65041A4703D2A24D9544148E17A7404C750410AD7A3E023D95441E17A143E07C750410AD7A32025D9544185EB51C808C750417B14AEC728D954419A9999F908C75041CDCCCC8C33D95441F6285CAF08C750413D0AD7333CD95441713D0A9708C750418FC2F57844D95441E17A14BE09C75041A4703D2A47D954415C8FC2250CC750413D0AD7B348D9544148E17AC413C75041B81E856B49D95441C3F528BC13C75041666666264BD954415C8FC2A50EC750417B14AE874AD95441AE47E16A0AC75041666666964BD954415C8FC26508C750410AD7A3604ED95441CDCCCC4C08C750418FC2F5F855D95441C3F5281C08C75041F6285CAF64D95441AE47E1EA07C750418FC2F57871D954415C8FC2A509C750411F85EB1174D95441AE47E1EA0CC750410AD7A32075D954411F85EBD111C75041B81E855B74D95441E17A147E17C750413D0AD73373D9544185EB51081EC750413D0AD7F371D954419A9999F921C75041CDCCCCCC70D95441F6285C6F25C750417B14AE876DD95441F6285CAF26C750413D0AD7736AD95441F6285CAF26C75041CDCCCC4C69D95441E17A14FE23C750411F85EBD168D95441E17A14FE23C75041A4703D6A66D95441713D0A9726C750413D0AD77365D954411F85EB1127C750413D0AD7B357D954410AD7A36024C750411F85EB5157D95441F6285C2F24C750418FC2F5B854D95441AE47E12A27C75041E17A143E54D954413333334327C750410AD7A32052D954415C8FC26526C75041E17A143E4FD95441CDCCCC0C25C750413D0AD7B34DD954410AD7A32023C750417B14AE074DD95441713D0A4714C75041713D0A374BD954411F85EB5114C750418FC2F57849D95441AE47E16A1EC75041F6285C6F4AD95441C3F5281C26C75041B81E851B4BD9544185EB510828C750410AD7A3A04AD9544185EB514829C750416666661649D95441F6285C2F29C75041F6285CEF47D95441C3F5285C27C750411F85EB1147D95441C3F5285C27C75041F6285C6F45D954411F85EB9129C750413D0AD7F344D954410AD7A36029C750416666665640D954411F85EB1127C750410AD7A3603FD954411F85EB1127C75041333333433DD95441AE47E1AA29C750417B14AEC73CD95441333333C329C750413333334338D95441F6285CAF2BC75041A4703D2A38D95441713D0A972BC750418FC2F53843D9544148E17A342BC750418FC2F5784ED954410AD7A36029C75041B81E859B52D954415C8FC2E528C75041B81E85DB5DD95441CDCCCCCC28C75041B81E855B65D954415C8FC2E528C75041B81E855B6AD95441E17A14BE27C75041F6285C6F6DD954411F85EBD125C750418FC2F53870D95441AE47E16A23C75041CDCCCC0C72D95441AE47E16A23C75041A4703D2A79D95441AE47E16A23C750410AD7A3A07CD95441E17A147E21C750411F85EBD17CD95441713D0A5720C75041CDCCCC0C7CD95441F6285C6F20C75041F6285CAF78D95441E17A143E20C75041F6285CAF73D95441AE47E1EA1BC750413D0AD77374D95441AE47E1EA1BC75041CDCCCC0C77D954411F85EB911AC75041CDCCCC0C77D954419A9999791AC750413D0AD77374D954413333334318C75041F6285CEF74D95441C3F5285C18C7504152B81EE57AD954411F85EBD116C75041CDCCCCCC7AD954411F85EBD116C750410AD7A32075D954410AD7A3E012C750417B14AE4776D95441CDCCCC8C13C75041B81E859B7AD954415C8FC22511C750417B14AE477BD95441F6285C2F10C75041B81E85DB76D9544185EB518807C75041E17A147E78D95441CDCCCCCCFBC650413D0AD7B37AD954415C8FC2E5F1C65041F6285C6F7CD9544148E17A34EAC650410AD7A3E07DD95441E17A14FEE7C6504152B81EE57FD95441AE47E16AE7C650413D0AD77383D9544133333343E6C65041CDCCCC8C88D95441F6285C6FE4C65041F6285CEF8DD95441CDCCCCCCE2C650413333334392D95441F6285CEFE1C650416666665695D9544185EB5148E3C650410AD7A32098D95441713D0A77E6C650410AD7A3109AD95441C3F5288CF7C65041AE47E12A98D95441713D0A070DC7504148E17A1495D9544106000000713D0A670EC75041000000100BD95441A4703DCA0EC750413333336307D9544152B81E4512C750411F85EB3107D95441B81E850B13C7504185EB51180AD95441295C8FE211C75041A4703D6A0CD95441713D0A670EC75041000000100BD95441
+</a>
+
+<b>
+0106000000010000000103000000040000004B000000CDCCCCBC2CC750410AD7A3E094D954419A9999B92AC75041F6285CAFA5D95441B81E85EB29C75041295C8F62AFD95441F6285CEF2AC75041A4703DDAAFD95441713D0AC72AC75041E17A142EB1D95441713D0A8729C75041A4703DBAB1D95441B81E855B28C75041666666A6BBD95441F6285C1F28C75041666666B6BFD95441333333432CC7504166666636C2D95441713D0A0731C75041E17A148EC4D95441B81E85DB34C75041295C8F52C4D95441B81E85EB38C75041A4703D8AC3D95441B81E859B3DC7504166666636C2D95441F6285CCF40C75041666666F6C0D95441713D0A1744C75041A4703D8ABED95441F6285CBF46C75041295C8FD2BCD95441713D0A6749C75041A4703D1ABBD95441713D0A274DC75041E17A14EEB9D95441713D0AA74FC75041295C8F22B8D95441B81E853B52C75041A4703D6AB6D954413333332356C75041E17A149EB4D954413333339359C75041666666E6B2D95441333333635CC75041A4703DAAB2D95441713D0A6762C7504166666696B2D95441F6285CCF68C75041E17A14BEB2D95441713D0AE76EC75041666666E6B2D95441F6285C3F76C75041666666D6B3D954410F93553D76C75041D6FAC74AB4D95441868D083C76C75041129B8495B4D954418D20B03B76C75041AFCD5CA9B4D95441E1D3BD3A76C75041334DBDDFB4D95441338705997AC75041F15A916BB5D954410365EEDE79C750415077F9B0B8D954411BF6F93B7AC75041BE88B281BED954410365EEDE79C75041ACA71AC7C1D954415978CF197AC750411A66B01AC2D95441333333937CC75041A4703D0AC1D95441713D0A0781C75041666666E6BCD95441713D0AA786C75041E17A146EB7D95441F6285CEF89C75041E17A141EB7D95441713D0AF78BC75041E17A14FEB8D95441713D0A678FC75041A4703DEAB8D95441713D0A678FC75041A4703DCAB5D95441713D0AD792C75041E17A14CEB1D95441333333F394C75041295C8FC2AED95441F6285C2F95C75041295C8FF2ABD95441B81E852B99C75041E17A145EA9D95441713D0AD79CC75041A4703D4AA9D95441333333A39EC75041295C8FF2A6D95441CDCCCCCC9BC75041CDCCCCCCA2D95441CDCCCC4C9EC750413D0AD7339BD95441A97937199FC75041156D73559AD95441F7359A309CC75041E3B53DEE99D95441CDCCCC8C9AC75041F6285C2F9ED95441AE47E1AA97C750411F85EB51A2D95441713D0A9794C750417B14AEC7A5D954413333332392C75041295C8FE2A7D95441B81E858B8EC75041E17A143EABD95441F6285CFF88C75041295C8FC2AED954413333336384C75041A4703D6AB1D95441713D0A877EC75041E17A14FEB3D95441F6285CFF79C75041295C8FB2B4D95441C4AEAF5A79C75041574572AEB4D95441B81E85CB76C75041E17A149EB4D9544194FAEEE676C75041A379DB52B4D95441B81E851B77C75041295C8FC2B3D95441713D0A077CC75041E17A14AEB3D954416BC7034082C75041363CDE62B1D95441F2176BCD83C750411AE6D280B0D954414574BAFE88C7504115E21137ADD954412B8139F687C7504151D73D53ABD954413AA3186584C75041A680746DA5D95441A244C94168C750414DEEFD95A8D9544148D241A364C750417A5031E08DD95441CDCCCCBC2CC750410AD7A3E094D9544105000000713D0A8738C750418FC2F538A3D95441333333F338C75041CDCCCC7CA4D954419A99993934C750411F85EB01A6D954418FC2F5F833C75041295C8F92A4D95441713D0A8738C750418FC2F538A3D9544105000000EC51B86E37C7504185EB51989FD954419A99999937C75041C3F528DCA0D954416666663633C75041B81E854BA2D9544148E17AB432C750411F85EBF1A0D95441EC51B86E37C7504185EB51989FD954410B0000000AD7A31042C7504114AE4731AED95441713D0A073FC75041E17A14DEAED9544148E17A443EC7504114AE4731AED95441C3F5281C3FC75041333333E3A9D954415C8FC27540C7504148E17A14A5D954411F85EBE140C750415C8FC285A0D95441E17A14AE44C7504100000070A0D954410AD7A37045C750415C8FC295A5D95441A4703DCA46C75041E17A14CEA9D95441CDCCCCDC45C75041D7A370EDACD954410AD7A31042C7504114AE4731AED95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>364438 - 1808308
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2861 </desc>
+<a>
+01060000000100000001030000000100000012000000713D0A175DA650415C8FC24559665441CDCCCC3C59A65041666666E657665441E17A147E52A650411F85EB8153665441333333A34BA65041CDCCCCDC4D6654411F85EB114CA650413D0AD7235E6654410AD7A36074A65041E17A141E686654418FC2F5A86EA65041B81E858B846654415C8FC2457CA65041CDCCCCBC876654418FC2F5787DA65041E17A14FE86665441EC51B80E80A65041000000E07B665441CDCCCC5C80A65041B81E852B7A665441333333E384A6504114AE470173665441A4703DBA89A650419A9999796666544185EB51B87BA650418FC2F5D860665441666666A67AA65041AE47E16A606654410000008079A6504148E17AF45F665441333333A36AA65041000000B05E665441713D0A175DA650415C8FC24559665441
+</a>
+
+<b>
+010600000001000000010300000001000000170000008FC2F5A86EA65041B71E858B846654415C8FC2457CA65041CDCCCCBC876654418FC2F5787DA65041E17A14FE86665441EC51B80E80A65041000000E07B665441CDCCCC5C80A65041B81E852B7A665441333333E384A6504114AE470173665441A4703DBA89A650419A9999796666544185EB51B87BA650418FC2F5D860665441666666A67AA65041AE47E16A606654410000008079A6504148E17AF45F665441333333A36AA65041000000B05E665441713D0A175DA650415C8FC24559665441CDCCCC3C59A65041666666E657665441E17A147E52A650411F85EB8153665441333333A34BA65041CDCCCCDC4D6654411F85EB114CA650413D0AD7235E6654410AD7A36074A65041E17A141E68665441E19DCCCF6FA65041670E93D17E665441271959B94CA65041138EB3D876665441666666C64CA650415C8FC2C5786654411F85EB4153A65041A4703D3A7A665441AE47E16A52A65041AE47E1EA7D6654418FC2F5A86EA65041B71E858B84665441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>364438 - 3415444
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2861 </desc>
+<a>
+01060000000100000001030000000100000012000000713D0A175DA650415C8FC24559665441CDCCCC3C59A65041666666E657665441E17A147E52A650411F85EB8153665441333333A34BA65041CDCCCCDC4D6654411F85EB114CA650413D0AD7235E6654410AD7A36074A65041E17A141E686654418FC2F5A86EA65041B81E858B846654415C8FC2457CA65041CDCCCCBC876654418FC2F5787DA65041E17A14FE86665441EC51B80E80A65041000000E07B665441CDCCCC5C80A65041B81E852B7A665441333333E384A6504114AE470173665441A4703DBA89A650419A9999796666544185EB51B87BA650418FC2F5D860665441666666A67AA65041AE47E16A606654410000008079A6504148E17AF45F665441333333A36AA65041000000B05E665441713D0A175DA650415C8FC24559665441
+</a>
+
+<b>
+010600000001000000010300000001000000170000008FC2F5A86EA65041B71E858B846654415C8FC2457CA65041CDCCCCBC876654418FC2F5787DA65041E17A14FE86665441EC51B80E80A65041000000E07B665441CDCCCC5C80A65041B81E852B7A665441333333E384A6504114AE470173665441A4703DBA89A650419A9999796666544185EB51B87BA650418FC2F5D860665441666666A67AA65041AE47E16A606654410000008079A6504148E17AF45F665441333333A36AA65041000000B05E665441713D0A175DA650415C8FC24559665441CDCCCC3C59A65041666666E657665441E17A147E52A650411F85EB8153665441333333A34BA65041CDCCCCDC4D6654411F85EB114CA650413D0AD7235E6654410AD7A36074A65041E17A141E68665441E19DCCCF6FA65041670E93D17E665441271959B94CA65041138EB3D876665441666666C64CA650415C8FC2C5786654411F85EB4153A65041A4703D3A7A665441AE47E16A52A65041AE47E1EA7D6654418FC2F5A86EA65041B71E858B84665441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>371024 - 189966
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -8322 </desc>
+<a>
+0106000000010000000103000000010000000E000000AE47E10A61D150410AD7A3405C9554415C8FC2C563D1504152B81EF55D955441CDCCCC8C68D15041A4703DAA5F955441A4703D3A74D150410AD7A3106395544185EB51A87AD15041295C8F5241955441666666E67AD15041EC51B80E40955441CDCCCCEC6AD150413D0AD7F340955441F6285CCF65D150413333337341955441295C8FD265D15041B81E85FB429554415C8FC29565D15041E17A14FE44955441713D0A5764D150418FC2F538499554413D0AD70360D1504185EB51D84E955441EC51B8BE5FD150416666669656955441AE47E10A61D150410AD7A3405C955441
+</a>
+
+<b>
+0106000000010000000103000000010000002D0000003D0AD70360D1504185EB51D84E955441387EA5D85FD150414E51EFAE53955441691CF0C55FD150418AFBFBAD56955441B694870B61D15041B1B30B415C9554418C40A02061D150410BA6384E5C95544125DCD64561D150419E6A76655C9554417761A19461D15041A2C1AB965C955441B96C063362D15041AB5798F95C95544188B1A74162D15041AB6BBB025D9554419004D3AB62D15041B50D0A455D955441D24758CE63D150410B8F80F45D955441EB5D74A468D15041699120B15F9554418A4FC2C468D15041186E88BA5F955441333224BB69D15041DEE844026095544190DBE63B6AD150415A42C227609554412AA37ADE6BD15041528BA1A16095544192ABECE06BD150419ED157A2609554412F0F0A3B74D15041E310720C63955441BFE44A3D74D150412B089F00639554417AE4114074D150412FF20BF2629554413F5E78A974D15041DAE4F0C860955441B8DB1E8C68D1504141FD8CE65D9554414D9FFE4862D150410FA26FCC5A9554419832CBAD62D15041D003BD8150955441ABF8969767D15041FEA8C1A549955441B874F80D68D150416B291EF948955441C4E3897468D15041FE88F4C2439554415ABA4C976AD1504104ACE1B6439554419D5FC3607AD15041D2FE10CA4295544185EB51A87AD15041295C8F52419554411F2260E37AD150413D477F1E4095544154BC637978D150411C1B833140955441C8F012F96DD15041D30720C84095544173A942E16CD1504120416EDA40955441E79FC93F69D1504109A793214195544108ADBAD665D1504192096E7541955441295C8FD265D15041B81E85FB429554418DFC62D265D15041E3A8FCFC42955441805D8CD265D150418643830143955441100749C865D15041DF097A52439554415C8FC29565D15041E17A14FE44955441D6CA140C65D150411929DBD1469554419BC3D56064D15041567100314995544113DA4C3763D15041899005AF4A9554413D0AD70360D1504185EB51D84E955441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>371024 - 394521
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -8322 </desc>
+<a>
+0106000000010000000103000000010000000E000000AE47E10A61D150410AD7A3405C9554415C8FC2C563D1504152B81EF55D955441CDCCCC8C68D15041A4703DAA5F955441A4703D3A74D150410AD7A3106395544185EB51A87AD15041295C8F5241955441666666E67AD15041EC51B80E40955441CDCCCCEC6AD150413D0AD7F340955441F6285CCF65D150413333337341955441295C8FD265D15041B81E85FB429554415C8FC29565D15041E17A14FE44955441713D0A5764D150418FC2F538499554413D0AD70360D1504185EB51D84E955441EC51B8BE5FD150416666669656955441AE47E10A61D150410AD7A3405C955441
+</a>
+
+<b>
+0106000000010000000103000000010000002D0000003D0AD70360D1504185EB51D84E955441387EA5D85FD150414E51EFAE53955441691CF0C55FD150418AFBFBAD56955441B694870B61D15041B1B30B415C9554418C40A02061D150410BA6384E5C95544125DCD64561D150419E6A76655C9554417761A19461D15041A2C1AB965C955441B96C063362D15041AB5798F95C95544188B1A74162D15041AB6BBB025D9554419004D3AB62D15041B50D0A455D955441D24758CE63D150410B8F80F45D955441EB5D74A468D15041699120B15F9554418A4FC2C468D15041186E88BA5F955441333224BB69D15041DEE844026095544190DBE63B6AD150415A42C227609554412AA37ADE6BD15041528BA1A16095544192ABECE06BD150419ED157A2609554412F0F0A3B74D15041E310720C63955441BFE44A3D74D150412B089F00639554417AE4114074D150412FF20BF2629554413F5E78A974D15041DAE4F0C860955441B8DB1E8C68D1504141FD8CE65D9554414D9FFE4862D150410FA26FCC5A9554419832CBAD62D15041D003BD8150955441ABF8969767D15041FEA8C1A549955441B874F80D68D150416B291EF948955441C4E3897468D15041FE88F4C2439554415ABA4C976AD1504104ACE1B6439554419D5FC3607AD15041D2FE10CA4295544185EB51A87AD15041295C8F52419554411F2260E37AD150413D477F1E4095544154BC637978D150411C1B833140955441C8F012F96DD15041D30720C84095544173A942E16CD1504120416EDA40955441E79FC93F69D1504109A793214195544108ADBAD665D1504192096E7541955441295C8FD265D15041B81E85FB429554418DFC62D265D15041E3A8FCFC42955441805D8CD265D150418643830143955441100749C865D15041DF097A52439554415C8FC29565D15041E17A14FE44955441D6CA140C65D150411929DBD1469554419BC3D56064D15041567100314995544113DA4C3763D15041899005AF4A9554413D0AD70360D1504185EB51D84E955441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>371224 - 190001
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -16234 </desc>
+<a>
+0106000000010000000103000000010000000800000066666696ABD35041C3F5281CBE9354419A999959D0D35041295C8FC2C6935441C3F5285CF4D35041B81E853BCF9354418FC2F588F6D35041666666B6CB9354419A999919FBD3504148E17AB4C29354410AD7A3D0D1D35041E17A14FEB893544185EB5168AFD350415C8FC2E5B093544166666696ABD35041C3F5281CBE935441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000AE15026AAFD35041173C28E6B0935441B90C6857ADD35041F76F260BB89354413AB6D696ABD35041D27FA41ABE935441FA7DB3F0ADD3504113BFE0A9BE935441E06AADFDADD350413A60EEACBE935441DC8B4101AED3504183EFC5ADBE9354414C7C60E5B1D3504106ACA87DB193544135977C33B0D35041FB078F15B19354418A2642B0AFD350418551AFF6B0935441AE15026AAFD35041173C28E6B0935441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>382911 - 1678665
+abs( area(A) - difference(A,B) - areatest(A,B) ) = 8716 </desc>
+<a>
+01060000000100000001030000000100000019000000666666C6FBA65041713D0A078B0055418FC2F5A8FAA6504185EB51D88A0055415C8FC285F6A65041C3F5282C8A005541E17A147EF5A650411F85EB018A0055411F85EB21F3A65041C3F5281CA70055417B14AE27F4A65041295C8F52A70055411F85EBC1F6A65041D7A370DDA7005541A4703D4AF8A65041B81E853BA80055418FC2F508FAA650417B14AEA7A8005541C3F528CCFAA650415C8FC2D5A8005541295C8F82FFA650419A999929AA00554148E17A4400A750417B14AE67AA005541C3F5280C0EA75041AE47E1CAAE0055417B14AE7713A7504152B81E85B00055418FC2F59814A750410AD7A380AF00554152B81E4517A7504152B81E059D005541D7A370AD14A75041F6285C7F9C0055417B14AE8715A75041EC51B8FE950055417B14AED70FA75041B81E857B94005541AE47E16A02A750418FC2F5A891005541B81E855B03A75041000000B08C005541713D0AA702A7504185EB51888C0055419A9999C901A750417B14AE578C0055419A999969FCA65041AE47E12A8B005541666666C6FBA65041713D0A078B005541
+</a>
+
+<b>
+01060000000100000001030000000100000016000000EFFD511F0EA750414DA5FCD0AE005541FB9DE8420DA75041B165CD8AAE005541D038789A0FA750419EB4006294005541AE47E16A02A750418FC2F5A891005541B81E855B03A75041000000B08C005541713D0AA702A7504185EB51888C0055419A9999C901A750417B14AE578C0055419A999969FCA65041AE47E12A8B005541666666C6FBA65041713D0A078B0055418FC2F5A8FAA6504185EB51D88A0055415C8FC285F6A65041C3F5282C8A005541E17A147EF5A650411F85EB018A0055411F85EB21F3A65041C3F5281CA70055417B14AE27F4A65041295C8F52A70055411F85EBC1F6A65041D7A370DDA7005541A4703D4AF8A65041B81E853BA80055418FC2F508FAA650417B14AEA7A8005541C3F528CCFAA650415C8FC2D5A8005541295C8F82FFA650419A999929AA00554148E17A4400A750417B14AE67AA0055410E5B6B240EA750414DB39CD2AE005541EFFD511F0EA750414DA5FCD0AE005541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>767988 - 362220
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2163 </desc>
+<a>
+0106000000030000000103000000010000003800000000000040D51651411F85EBB1BEC8544148E17A24D61651413D0AD703C1C85441EC51B82EDB165141AE47E11ACEC854417B14AE87DE1651419A9999B9CDC85441AE47E10AE216514133333353CDC85441E17A148EE9165141EC51B80EC9C85441D7A3709DF1165141A4703DEAC4C85441D7A370CDF71651411F85EB61C3C854410AD7A38000175141A4703DCAC2C8544152B81E250817514100000080C3C85441666666F609175141CDCCCCBCBBC85441D7A3705D0B17514152B81E25B5C85441AE47E16A0A175141B81E853BB2C8544148E17AC4EC165141E17A140EB1C85441295C8F12E4165141E17A148EB6C854418FC2F5A8DF16514185EB51F8B8C85441EC51B81EDC1651411F85EB31BAC8544133333383D4165141A4703D9ABBC8544114AE4741D4165141CDCCCC0CBBC854415C8FC255C8165141D7A370CDBFC854411F85EB91BE165141295C8F22C4C85441C3F528FCB81651411F85EBE1C8C8544152B81EF5B2165141E17A14CECFC85441000000A0AD165141CDCCCC5CD7C854410AD7A3E0A6165141AE47E12AE5C854417B14AEB79F165141CDCCCCBCF7C8544152B81EE59E16514185EB51E8FCC854418FC2F5589E165141B81E857B04C95441CDCCCC0C9B1651410AD7A3300CC954419A999919971651416666664610C95441E17A14FE8B16514152B81EF512C95441AE47E1DA8D1651419A9999E914C954418FC2F5188E165141713D0AE715C9544114AE47718D1651415C8FC2251AC95441713D0A978D16514152B81EA51DC954413D0AD7D38E165141295C8FA220C9544166666606901651418FC2F5F821C954410AD7A31095165141666666F620C95441C3F5286C971651416666660621C95441713D0A3799165141C3F528BC1FC95441E17A145EA11651410AD7A3201CC95441295C8FE2A1165141333333A31AC954419A999999A71651411F85EB5114C95441A4703D1AA9165141E17A141E10C9544114AE4771A91651419A9999F90DC954413D0AD763AA165141B81E85FB07C954411F85EBD1AB1651410000000002C95441C3F5283CAB1651411F85EB1102C95441B81E85CBAB16514152B81E85FBC85441A4703D6AB2165141D7A370FDEDC854411F85EB31B61651411F85EB31E1C85441C3F5282CBC1651415C8FC295D9C85441666666B6C116514148E17A84D8C8544133333393C6165141000000C0D5C85441D7A370EDBD165141EC51B86EC9C8544100000040D51651411F85EBB1BEC8544101030000000100000010000000EC51B8EEFE1651413D0AD783ACC854413D0AD713FE165141AE47E1CAACC85441D7A370EDF216514100000010AFC85441B81E85CBEC1651418FC2F528B0C85441F6285CAF0A175141713D0A37B0C85441F6285CBF13175141CDCCCC8CAFC854419A9999391B17514152B81E25ABC854417B14AEC727175141295C8F92A7C854413D0AD78332175141EC51B8CEA5C854413D0AD7D32F175141666666A6A5C85441D7A3701D25175141A4703D3AA7C85441EC51B82E18175141E17A140EAAC85441D7A370ED14175141295C8F62AAC85441EC51B88E1017514148E17AD4AAC85441E17A140E08175141F6285C8FA9C85441EC51B8EEFE1651413D0AD783ACC85441010300000001000000090000008FC2F548231751417B14AE97B3C85441713D0A372317514114AE47F1A9C85441C3F5287C1B17514148E17A44ACC854417B14AE4714175141AE47E16AB0C854410AD7A3300F175141E17A144EB6C854411F85EBA10C1751417B14AE97BCC854411F85EBC10A17514100000020C4C85441000000201E17514114AE4771B2C854418FC2F548231751417B14AE97B3C85441
+</a>
+
+<b>
+0106000000010000000103000000010000005400000000000040D51651411F85EBB1BEC854410F000040D51651414685EBB1BEC85441C1000040D5165141F484EBB1BEC85441381A0040D516514146C9EBB1BEC8544148E17A24D61651413D0AD703C1C854417ED2B72EDB165141B7FCDF1ACEC854419952B82EDB1651419A47E11ACEC8544184C4BC2EDB1651416EC6E01ACEC85441F1EAD70AE216514123443453CDC85441AE47E10AE216514133333353CDC85441BAFCE30BE5165141066E5C9ECBC85441767A148EE9165141C151B80EC9C8544136A3709DF116514179703DEAC4C85441C2A370CDF7165141A984EB61C3C85441886617A1FD1651416C5955FCC2C854410AD7A38000175141A4703DCAC2C854410CB81E2508175141F9FFFF7FC3C854411881F9B90817514140D13E04C1C85441666666F609175141CDCCCCBCBBC85441B5A3705D0B175141F4B81E25B5C854412247E16A0A175141D91E853BB2C854413FE17AC4EC165141E77A140EB1C85441295C8F12E4165141E17A148EB6C854418FC2F5A8DF16514185EB51F8B8C85441AA7C3AF7DE1651418EB9D235B9C854416252B81EDC165141A085EB31BAC8544172323383D4165141CF703D9ABBC85441BDAD4741D4165141F0CCCC0CBBC854415C8FC255C8165141D7A370CDBFC854411F85EB91BE165141295C8F22C4C85441C3F528FCB81651411F85EBE1C8C85441FDED6171B5165141846257F3CCC85441B3B81EF5B2165141227B14CECFC854415C0C68ABAD165141A25CA24CD7C85441480000A0AD16514167CCCC5CD7C85441F64DE9A9A916514138349177DFC854410AD7A3E0A6165141AE47E12AE5C854415EF8D050A616514141C9E59FE6C85441F78CCA42A516514125613A5CE9C85441B57015FEA6165141D3388E9BE9C85441F97ECDA1A6165141CC93EDEEEDC85441BADED51BA416514140D3DCFAF2C85441C94C9639A1165141F9576439F6C85441005A4EDDA0165141B0A50BE9FAC8544144680681A016514168F3B298FFC854418775BE24A01651411D405A4804C9544189AC9EB39E1651411665D90C0AC954414B4387BC9A165141CB7BA02D10C95441AB9A9919971651414B65664610C954419A999919971651416666664610C954410E7B14FE8B16514147B81EF512C9544186F97B588C165141889F035413C95441AE47E1DA8D1651419A9999E914C954418FC2F5188E165141713D0AE715C9544114AE47718D1651415C8FC2251AC95441713D0A978D16514152B81EA51DC954413D0AD7D38E165141295C8FA220C9544166666606901651418FC2F5F821C95441F9DF1AF7941651410A6384FB20C95441CAD6A31095165141716666F620C95441D2D6A31095165141716666F620C954410AD7A31095165141666666F620C9544157DFD58295165141686D6DF920C95441F8F5286C971651413166660621C95441166DAFA79916514129724EE01DC9544189AC9EB39E1651412BDF0EFE1AC9544104683932A21651410C20234B1AC954412B2E20A5A21651418C511FCC19C95441809A3DE9A51651413FBB8F3915C95441809A3DE9A5165141904969C50AC95441B57015FEA61651419724EA0005C954412F55A5B6A716514124E5FAF4FFC85441F5100D84A9165141B2DCEB77F9C85441A29494C2AC16514140D3DCFAF2C85441AC5EB433AE16514146787DA7EEC8544175703D6AB216514138A470FDEDC85441A4703D6AB2165141D7A370FDEDC854411F85EB31B61651411F85EB31E1C85441C3F5282CBC1651415C8FC295D9C85441666666B6C116514148E17A84D8C8544169EAB4B8C316514145F0C25FD7C85441AC323393C61651413FFFFFBFD5C85441D7A370EDBD165141EC51B86EC9C8544100000040D51651411F85EBB1BEC85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>407778 - 342182
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2561 </desc>
+<a>
+01060000000100000001030000000100000011000000000000F0F3EE5041295C8F221E38544148E17A84F4EE50417B14AEB71B3854418FC2F518EFEE5041EC51B89E1A38544152B81E65EDEE5041666666461A3854419A999909ECEE5041CDCCCCFC21385441A4703D2AE6EE5041AE47E1DA30385441333333E3E0EE5041C3F528EC46385441AE47E17ADBEE5041D7A3700D58385441C3F5289CD5EE5041713D0AA76738544166666656DAEE50411F85EB9168385441D7A370EDDBEE5041CDCCCC9C673854419A999929E0EE504185EB51A8593854411F85EB71E6EE50418FC2F568483854417B14AE27E7EE504185EB510847385441295C8FF2EAEE5041CDCCCCEC3C385441333333F3EDEE5041EC51B84E33385441000000F0F3EE5041295C8F221E385441
+</a>
+
+<b>
+010600000001000000010300000001000000110000002AF87A5FDAEE504151A9738C68385441D7ABE5A8DBEE50414E9B13C66738544159089FFDDFEE50414A9FEFF958385441E3535FD0E3EE504133C48EE34D385441C4CC5FEEE9EE504151A15D2B3F385441C710405FEDEE5041A8BE1CB333385441A889407DF3EE5041CA132B191E385441678DA6FCF3EE504122012D9C1B38544111B3FE5FF1EE50412D79C7141B385441553A9079EFEE5041AAE2FA9C1B385441770570CCECEE50411D63DB1C22385441FFA6FF04E8EE504118FB1CC2363854411E2EFFE6E1EE5041F73FBE3247385441552A0FB6E1EE50418C8B7E054B3854410BBFDBA7D7EE50412C8CAD0C683854419D979F12DAEE5041AA1FC484683854412AF87A5FDAEE504151A9738C68385441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>438173 - 4391836
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -5690 </desc>
+<a>
+0106000000010000000103000000010000000A000000F6285C6FB7E350410AD7A3D0DE735441CDCCCC5CB0E35041B81E85BBE27354413D0AD773B4E3504100000030007454417B14AEE7BAE350413D0AD7C3FE7354415C8FC235D1E35041713D0AE7F97354415C8FC2D5E0E3504166666676F573544114AE4701E1E35041AE47E13AD17354419A9999B9D1E35041B81E85BBD37354410AD7A310C3E3504152B81E35DB735441F6285C6FB7E350410AD7A3D0DE735441
+</a>
+
+<b>
+0106000000010000000103000000010000002B000000EB9216E9E0E35041988DF05EE573544185EB5148E5E35041EC51B8DEE473544148E17A54E6E35041A4703D0AE5735441E17A1446E7E35041C3F5280CE57354418FC2F518EAE350411F85EB11E5735441508D97DEEAE35041105839DCE4735441F6285CCFEBE35041AE47E19AE4735441295C8F32EDE3504123DBF956E5735441C3F5288CEDE3504166666686E57354411D5A6473EFE350417368913DE5735441666666C6F0E35041AE47E10AE57354417B14AE97F2E35041D7A370CDE57354410AD7A370F3E350418FC2F5A8E5735441295C8F72F3E350418FC2F508E57354414260E578F3E350412B8716E1E27354410AD7A3B0F3E3504166666606D0735441C3F528CCEAE350417B14AEA7D17354419E109AFEE0E350412209B075D373544114AE4701E1E35041AE47E13AD17354419A9999B9D1E35041B81E85BBD37354410AD7A310C3E3504152B81E35DB735441F6285C6FB7E350410AD7A3D0DE735441CDCCCC5CB0E35041B81E85BBE27354413D0AD773B4E3504100000030007454417B14AEE7BAE350413D0AD7C3FE7354415C8FC235D1E35041713D0AE7F97354415C8FC2D5E0E3504166666676F57354418DBF04D7E0E3504122A9296AF47354411F85EBD1EAE35041EC51B84EF373544148E17AECEAE350418FC2F548F373544185EB51F8EDE35041000000A0F2735441713D0A17EEE3504166666626E87354410AD7A318EEE35041CFF753A3E77354418FC2F518EEE3504166666686E773544185EB5138EDE350415C8FC275E77354417B14AE67EBE35041C3F528DCE6735441E92631E0EAE350419A999979E673544148E17A34EAE35041CDCCCCFCE573544100000060E6E35041666666D6E5735441C3F5282CE5E3504148E17AA4E57354415839B4F8E3E35041B81E85A3E57354415D02C2E8E0E35041670558A5E5735441EB9216E9E0E35041988DF05EE5735441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>442223 - 1480455
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1266 </desc>
+<a>
+01060000000300000001030000000100000021000000C3F528FC23F35041D7A3707D69295541E17A147E22F35041AE47E16A68295541295C8F021DF35041D7A3700D652955418FC2F5A817F350419A99992962295541A4703D6A15F350417B14AEB768295541EC51B88E12F3504185EB51686F295541E17A144E11F35041CDCCCC1C6F2955413D0AD7F30EF35041CDCCCCEC6D295541C3F5283C0AF350410AD7A3C06A2955411F85EBA108F350413D0AD7836929554166666696FCF25041D7A370BD5D29554185EB517800F3504152B81EE559295541EC51B8CEFCF25041CDCCCC6C56295541000000E0F5F2504148E17A4453295541AE47E18AF1F25041CDCCCCCC502955419A9999F9ECF25041B81E856B4E29554152B81EC5ECF25041333333C34E295541E17A146EECF250410AD7A32050295541AE47E10AEFF25041AE47E18A54295541EC51B8AEF3F2504152B81EC55B2955413D0AD763F7F250413D0AD7836129554100000090FBF2504185EB515867295541D7A3707D03F35041295C8FA272295541666666760BF35041EC51B8CE7D295541CDCCCC4C0CF35041C3F5285C7F295541333333630DF350410AD7A3B081295541CDCCCCDC0EF35041D7A3700D862955413333334314F350419A9999D98529554114AE478119F35041A4703D9A85295541A4703DFA1CF3504185EB51787D295541D7A3705D20F35041AE47E1BA762955410AD7A39021F3504185EB515872295541C3F528FC23F35041D7A3707D692955410103000000010000002D000000A4703D9ADDF250415C8FC2F54929554100000090D7F25041AE47E12A4A295541B81E855BD2F25041C3F5287C4B2955419A999919D3F250413D0AD7E34C295541295C8F12D8F250413D0AD7E3542955419A9999B9DAF250415C8FC225592955419A999949DFF250417B14AEA76029554152B81E85E1F25041295C8F726429554166666636E7F25041AE47E16A6C295541713D0A97ECF25041AE47E1EA732955415C8FC295F0F25041D7A3707D76295541F6285CCFF1F25041E17A147E77295541B81E85BBF4F25041000000807A295541AE47E14AF7F250417B14AE877D295541666666A6F8F25041EC51B8EE7E2955413D0AD733F9F2504152B81E557F295541B81E853BFAF25041000000E07F2955419A999999FCF25041CDCCCC6C81295541666666E6FDF25041D7A3704D8229554185EB5168FFF25041AE47E18A83295541C3F528DCFFF250415C8FC2E583295541295C8F7200F350418FC2F59884295541AE47E1FA02F350418FC2F54887295541295C8F9205F35041F6285C2F8A295541A4703DBA06F35041A4703D8A8B295541CDCCCC4C08F350418FC2F5388D2955417B14AE4709F35041AE47E1FA8D295541295C8F920BF35041B81E857B8F2955411F85EBA10DF35041CDCCCC4C91295541C3F528AC0FF35041A4703D0A902955418FC2F5F80EF35041EC51B8BE8A295541D7A3709D0EF35041A4703D0A8829554148E17A540EF35041295C8F12862955411F85EB810CF350417B14AE678129554185EB51280AF35041C3F528EC7C2955418FC2F52805F350413D0AD7F375295541713D0A17FBF25041AE47E1CA672955410AD7A3C0F8F250411F85EB216429554114AE4741F4F25041A4703DAA5D295541A4703D2AEEF250410000002054295541295C8F42E9F25041C3F5287C4C2955417B14AE37E9F25041666666764D295541295C8F62E6F250415C8FC2A54B295541CDCCCCACE2F2504148E17AD44A295541A4703D9ADDF250415C8FC2F5492955410103000000010000002600000085EB51E8F7F25041EC51B86E7F29554148E17A34F7F25041C3F528BC7E295541000000B0F6F25041666666267E2955411F85EB61F4F250413D0AD7A37B295541C3F5285CF2F2504114AE474179295541F6285C4FEFF250416666669676295541E17A144EEEF250413D0AD703762955418FC2F5E8EFF25041A4703DFA77295541EC51B88EF2F25041A4703D9A7B29554166666686F5F25041F6285C1F7F295541EC51B84EF8F25041000000D082295541AE47E13AFAF250419A9999D98529554185EB51E8FCF25041295C8F228A29554114AE47B1FEF25041000000808D29554152B81E45FFF25041B81E85CB8F2955418FC2F5C8FFF25041AE47E12A922955410AD7A3F0FFF25041B81E852B96295541D7A3702D00F350418FC2F5E89929554152B81EE502F35041A4703D0A982955417B14AEB707F3504148E17A3495295541F6285C5F09F35041C3F5281C94295541D7A3702D0CF35041333333339229554152B81ED50CF35041B81E85CB91295541333333F30BF350410000003091295541713D0A4709F350415C8FC2458F295541CDCCCC2C08F3504185EB51488E295541E17A143E07F350413D0AD7738D2955411F85EB0106F35041AE47E10A8C2955416666662604F35041C3F5283C8A295541B81E857B01F350410000000087295541713D0A0700F3504152B81E7585295541F6285C7FFEF25041AE47E10A84295541C3F5282CFDF25041D7A370CD82295541B81E85ABFCF250411F85EB918229554114AE4701FBF250418FC2F57881295541295C8F42FAF250415C8FC205812955419A9999E9F8F250410AD7A3308029554185EB51E8F7F25041EC51B86E7F295541
+</a>
+
+<b>
+0106000000010000000103000000010000005A0000001AB327C90BF35041C62FB0AB8F2955413CC0ED690DF35041448EB4AE8F2955412C5A955710F35041258A0B1B8E2955418FC2F5F80EF35041EC51B8BE8A295541D7A3709D0EF35041A4703D0A88295541E71E17A70EF3504155BC1452852955412C76110F14F3504155BC145285295541245F613D19F35041453A408884295541A4703DFA1CF3504185EB51787D295541C6A6DAA81FF35041564C2474762955414ACE2EC920F35041E28A286672295541C3F528FC23F35041D7A3707D69295541E17A147E22F35041AE47E16A68295541295C8F021DF35041D7A3700D652955418FC2F5A817F350419A99992962295541A4703D6A15F350417B14AEB768295541EC51B88E12F3504185EB51686F295541E17A144E11F35041CDCCCC1C6F2955413D0AD7F30EF35041CDCCCCEC6D295541C3F5283C0AF350410AD7A3C06A2955411F85EBA108F350413D0AD7836929554166666696FCF25041D7A370BD5D29554185EB517800F3504152B81EE559295541EC51B8CEFCF25041CDCCCC6C56295541000000E0F5F2504148E17A4453295541AE47E18AF1F25041CDCCCCCC502955419A9999F9ECF25041B81E856B4E2955419CB40FFAECF25041814FA4AE4D295541A4E73B83EBF2504172CDCFE44C29554157799149EBF25041624BFB1A4C2955415EACBDD2E9F25041055B7C174B295541A4CBBFCBE7F250411D107D6A4A295541BC80C01EE7F25041C01FFE6649295541D7A3705DE4F2504185EB51A846295541A4703DBAE1F25041CDCCCC1C442955413D0AD7B3DCF250411F85EBF13E29554166666656D6F2504148E17A7437295541A4703DFACEF25041333333032F295541B81E85ABCDF25041295C8FB22D29554133333383CBF25041666666862B295541E17A143EC8F250411F85EBC128295541A4703D2AC3F25041AE47E18A24295541713D0A37BEF25041AE47E1BA202955410039D0DBB5F250415390AAF21A2955412A0B984DB5F25041CCC596981B2955411522B494B5F250414D4F3F431D295541EFEAC449BAF2504111196497232955413B8BB219BFF25041F228A36C2929554136984752C0F250410B8C1B692A2955415B29A414C2F25041B7E78B852B295541A01D433FCBF250418AFAFA0E352955411312C435CEF250418C0D4C643829554138A320F8CFF2504186CCE0B43A295541D287A1D1D0F250413C464ED13B295541BDF66CD9D5F2504140A857E941295541AE004337D8F250413AD740C7442955419280A3DBD8F250414C4A288A45295541BE65BCA2DBF25041AA55C5C7482955414B0208EADCF250415D43D0FB492955411060EDC0D9F250418F179C174A29554181D82AD2D6F25041D0E6218A4A295541CD762853D5F25041EEA57BC44B29554158D1A8FCD4F25041C86EA6A74B295541329AD3DFD4F25041C86EA6A74B295541CD762853D5F250419904A5014D2955418EA6CE9AD9F25041FD5F48FD532955414887CCA1DBF25041FC7BC4B4572955419611F392DFF25041BDC7E6B35F295541383DF046E2F25041D49863BE622955418E16BF78E8F250410A8A05146B295541FAA48EFDEDF250413F7BA76973295541575542BDEFF25041965207F275295541EA3E36EBF0F250419C87A224782955417DE85ED5F2F2504165EA74F57A29554166666686F5F25041F6285C1F7F295541EC51B84EF8F25041000000D082295541AE47E13AFAF250419A9999D98529554185EB51E8FCF25041295C8F228A29554114AE47B1FEF25041000000808D29554152B81E45FFF25041B81E85CB8F2955418FC2F5C8FFF25041AE47E12A92295541930D500601F350415B7BAD709629554154217A9601F3504124DE7F419929554152B81EE502F35041A4703D0A982955417B14AEB707F3504148E17A3495295541F6285C5F09F35041C3F5281C942955414C0ACAC406F35041E881B9F38A29554152B81ED50CF35041B81E85CB9129554144F319F30BF3504192FC5EE88F2955411AB327C90BF35041C62FB0AB8F295541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>442223 - 3474701
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1266 </desc>
+<a>
+01060000000300000001030000000100000021000000C3F528FC23F35041D7A3707D69295541E17A147E22F35041AE47E16A68295541295C8F021DF35041D7A3700D652955418FC2F5A817F350419A99992962295541A4703D6A15F350417B14AEB768295541EC51B88E12F3504185EB51686F295541E17A144E11F35041CDCCCC1C6F2955413D0AD7F30EF35041CDCCCCEC6D295541C3F5283C0AF350410AD7A3C06A2955411F85EBA108F350413D0AD7836929554166666696FCF25041D7A370BD5D29554185EB517800F3504152B81EE559295541EC51B8CEFCF25041CDCCCC6C56295541000000E0F5F2504148E17A4453295541AE47E18AF1F25041CDCCCCCC502955419A9999F9ECF25041B81E856B4E29554152B81EC5ECF25041333333C34E295541E17A146EECF250410AD7A32050295541AE47E10AEFF25041AE47E18A54295541EC51B8AEF3F2504152B81EC55B2955413D0AD763F7F250413D0AD7836129554100000090FBF2504185EB515867295541D7A3707D03F35041295C8FA272295541666666760BF35041EC51B8CE7D295541CDCCCC4C0CF35041C3F5285C7F295541333333630DF350410AD7A3B081295541CDCCCCDC0EF35041D7A3700D862955413333334314F350419A9999D98529554114AE478119F35041A4703D9A85295541A4703DFA1CF3504185EB51787D295541D7A3705D20F35041AE47E1BA762955410AD7A39021F3504185EB515872295541C3F528FC23F35041D7A3707D692955410103000000010000002D000000A4703D9ADDF250415C8FC2F54929554100000090D7F25041AE47E12A4A295541B81E855BD2F25041C3F5287C4B2955419A999919D3F250413D0AD7E34C295541295C8F12D8F250413D0AD7E3542955419A9999B9DAF250415C8FC225592955419A999949DFF250417B14AEA76029554152B81E85E1F25041295C8F726429554166666636E7F25041AE47E16A6C295541713D0A97ECF25041AE47E1EA732955415C8FC295F0F25041D7A3707D76295541F6285CCFF1F25041E17A147E77295541B81E85BBF4F25041000000807A295541AE47E14AF7F250417B14AE877D295541666666A6F8F25041EC51B8EE7E2955413D0AD733F9F2504152B81E557F295541B81E853BFAF25041000000E07F2955419A999999FCF25041CDCCCC6C81295541666666E6FDF25041D7A3704D8229554185EB5168FFF25041AE47E18A83295541C3F528DCFFF250415C8FC2E583295541295C8F7200F350418FC2F59884295541AE47E1FA02F350418FC2F54887295541295C8F9205F35041F6285C2F8A295541A4703DBA06F35041A4703D8A8B295541CDCCCC4C08F350418FC2F5388D2955417B14AE4709F35041AE47E1FA8D295541295C8F920BF35041B81E857B8F2955411F85EBA10DF35041CDCCCC4C91295541C3F528AC0FF35041A4703D0A902955418FC2F5F80EF35041EC51B8BE8A295541D7A3709D0EF35041A4703D0A8829554148E17A540EF35041295C8F12862955411F85EB810CF350417B14AE678129554185EB51280AF35041C3F528EC7C2955418FC2F52805F350413D0AD7F375295541713D0A17FBF25041AE47E1CA672955410AD7A3C0F8F250411F85EB216429554114AE4741F4F25041A4703DAA5D295541A4703D2AEEF250410000002054295541295C8F42E9F25041C3F5287C4C2955417B14AE37E9F25041666666764D295541295C8F62E6F250415C8FC2A54B295541CDCCCCACE2F2504148E17AD44A295541A4703D9ADDF250415C8FC2F5492955410103000000010000002600000085EB51E8F7F25041EC51B86E7F29554148E17A34F7F25041C3F528BC7E295541000000B0F6F25041666666267E2955411F85EB61F4F250413D0AD7A37B295541C3F5285CF2F2504114AE474179295541F6285C4FEFF250416666669676295541E17A144EEEF250413D0AD703762955418FC2F5E8EFF25041A4703DFA77295541EC51B88EF2F25041A4703D9A7B29554166666686F5F25041F6285C1F7F295541EC51B84EF8F25041000000D082295541AE47E13AFAF250419A9999D98529554185EB51E8FCF25041295C8F228A29554114AE47B1FEF25041000000808D29554152B81E45FFF25041B81E85CB8F2955418FC2F5C8FFF25041AE47E12A922955410AD7A3F0FFF25041B81E852B96295541D7A3702D00F350418FC2F5E89929554152B81EE502F35041A4703D0A982955417B14AEB707F3504148E17A3495295541F6285C5F09F35041C3F5281C94295541D7A3702D0CF35041333333339229554152B81ED50CF35041B81E85CB91295541333333F30BF350410000003091295541713D0A4709F350415C8FC2458F295541CDCCCC2C08F3504185EB51488E295541E17A143E07F350413D0AD7738D2955411F85EB0106F35041AE47E10A8C2955416666662604F35041C3F5283C8A295541B81E857B01F350410000000087295541713D0A0700F3504152B81E7585295541F6285C7FFEF25041AE47E10A84295541C3F5282CFDF25041D7A370CD82295541B81E85ABFCF250411F85EB918229554114AE4701FBF250418FC2F57881295541295C8F42FAF250415C8FC205812955419A9999E9F8F250410AD7A3308029554185EB51E8F7F25041EC51B86E7F295541
+</a>
+
+<b>
+0106000000010000000103000000010000005A0000001AB327C90BF35041C62FB0AB8F2955413CC0ED690DF35041448EB4AE8F2955412C5A955710F35041258A0B1B8E2955418FC2F5F80EF35041EC51B8BE8A295541D7A3709D0EF35041A4703D0A88295541E71E17A70EF3504155BC1452852955412C76110F14F3504155BC145285295541245F613D19F35041453A408884295541A4703DFA1CF3504185EB51787D295541C6A6DAA81FF35041564C2474762955414ACE2EC920F35041E28A286672295541C3F528FC23F35041D7A3707D69295541E17A147E22F35041AE47E16A68295541295C8F021DF35041D7A3700D652955418FC2F5A817F350419A99992962295541A4703D6A15F350417B14AEB768295541EC51B88E12F3504185EB51686F295541E17A144E11F35041CDCCCC1C6F2955413D0AD7F30EF35041CDCCCCEC6D295541C3F5283C0AF350410AD7A3C06A2955411F85EBA108F350413D0AD7836929554166666696FCF25041D7A370BD5D29554185EB517800F3504152B81EE559295541EC51B8CEFCF25041CDCCCC6C56295541000000E0F5F2504148E17A4453295541AE47E18AF1F25041CDCCCCCC502955419A9999F9ECF25041B81E856B4E2955419CB40FFAECF25041814FA4AE4D295541A4E73B83EBF2504172CDCFE44C29554157799149EBF25041624BFB1A4C2955415EACBDD2E9F25041055B7C174B295541A4CBBFCBE7F250411D107D6A4A295541BC80C01EE7F25041C01FFE6649295541D7A3705DE4F2504185EB51A846295541A4703DBAE1F25041CDCCCC1C442955413D0AD7B3DCF250411F85EBF13E29554166666656D6F2504148E17A7437295541A4703DFACEF25041333333032F295541B81E85ABCDF25041295C8FB22D29554133333383CBF25041666666862B295541E17A143EC8F250411F85EBC128295541A4703D2AC3F25041AE47E18A24295541713D0A37BEF25041AE47E1BA202955410039D0DBB5F250415390AAF21A2955412A0B984DB5F25041CCC596981B2955411522B494B5F250414D4F3F431D295541EFEAC449BAF2504111196497232955413B8BB219BFF25041F228A36C2929554136984752C0F250410B8C1B692A2955415B29A414C2F25041B7E78B852B295541A01D433FCBF250418AFAFA0E352955411312C435CEF250418C0D4C643829554138A320F8CFF2504186CCE0B43A295541D287A1D1D0F250413C464ED13B295541BDF66CD9D5F2504140A857E941295541AE004337D8F250413AD740C7442955419280A3DBD8F250414C4A288A45295541BE65BCA2DBF25041AA55C5C7482955414B0208EADCF250415D43D0FB492955411060EDC0D9F250418F179C174A29554181D82AD2D6F25041D0E6218A4A295541CD762853D5F25041EEA57BC44B29554158D1A8FCD4F25041C86EA6A74B295541329AD3DFD4F25041C86EA6A74B295541CD762853D5F250419904A5014D2955418EA6CE9AD9F25041FD5F48FD532955414887CCA1DBF25041FC7BC4B4572955419611F392DFF25041BDC7E6B35F295541383DF046E2F25041D49863BE622955418E16BF78E8F250410A8A05146B295541FAA48EFDEDF250413F7BA76973295541575542BDEFF25041965207F275295541EA3E36EBF0F250419C87A224782955417DE85ED5F2F2504165EA74F57A29554166666686F5F25041F6285C1F7F295541EC51B84EF8F25041000000D082295541AE47E13AFAF250419A9999D98529554185EB51E8FCF25041295C8F228A29554114AE47B1FEF25041000000808D29554152B81E45FFF25041B81E85CB8F2955418FC2F5C8FFF25041AE47E12A92295541930D500601F350415B7BAD709629554154217A9601F3504124DE7F419929554152B81EE502F35041A4703D0A982955417B14AEB707F3504148E17A3495295541F6285C5F09F35041C3F5281C942955414C0ACAC406F35041E881B9F38A29554152B81ED50CF35041B81E85CB9129554144F319F30BF3504192FC5EE88F2955411AB327C90BF35041C62FB0AB8F295541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>452452 - 254359
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2623 </desc>
+<a>
+0106000000010000000103000000010000001B0000003D0AD7B37132514185EB51981D2F554148E17A346E325141B81E855B1F2F55413D0AD7336B325141EC51B8AE212F55410AD7A3C068325141AE47E19A242F5541C3F528FC673251419A999909262F55417B14AE3767325141C3F528EC262F55415C8FC23566325141333333C3282F5541E17A14DE643251419A9999792B2F5541A4703D8A63325141EC51B8AE2D2F5541295C8FF263325141C3F5283C2E2F5541000000D06D32514148E17AD4372F55418FC2F5286F325141295C8F32392F5541F6285CEF743251411F85EB913D2F55415C8FC2C5793251418FC2F548422F55413D0AD7E37A32514100000060432F554148E17A047D32514185EB5168452F554152B81E657E32514148E17A14442F55418FC2F5A88532514152B81E053A2F5541B81E857B8A32514185EB51B8322F5541666666668732514100000020302F55419A9999D983325141333333232D2F554114AE47B180325141A4703D8A302F55411F85EB917F325141E17A147E2F2F5541C3F5280C7E325141333333132E2F55415C8FC255793251417B14AED7292F55410AD7A360723251415C8FC245202F55413D0AD7B37132514185EB51981D2F5541
+</a>
+
+<b>
+010600000001000000010300000001000000130000000AD7A360723251415C8FC245202F55415050FBCD7132514169BA9E371E2F5541F76476036C3251415B1D2B69222F55417F795AB8673251418218CF66282F5541B4492B2064325141091373642E2F554182B4648966325141A51ADAC0302F55411E295CEF743251416784EB913D2F554161E003AB793251417C74E42E422F55416E7C21B579325141E87CC038422F55413694EEB8793251416FF0743C422F5541808707BF79325141925C6642422F5541BEF25ABF7932514108ABB742422F55414F8FC2C57932514182C2F548422F5541C3F5280C7D3251417B14AED73C2F5541B248132E7E325141BA04D6A33A2F5541EB84EB317F3251410C295C9F352F5541DCC8EA917F3251419ACB137E2F2F55415C8FC255793251417B14AED7292F55410AD7A360723251415C8FC245202F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>452452 - 345483
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2623 </desc>
+<a>
+0106000000010000000103000000010000001B0000003D0AD7B37132514185EB51981D2F554148E17A346E325141B81E855B1F2F55413D0AD7336B325141EC51B8AE212F55410AD7A3C068325141AE47E19A242F5541C3F528FC673251419A999909262F55417B14AE3767325141C3F528EC262F55415C8FC23566325141333333C3282F5541E17A14DE643251419A9999792B2F5541A4703D8A63325141EC51B8AE2D2F5541295C8FF263325141C3F5283C2E2F5541000000D06D32514148E17AD4372F55418FC2F5286F325141295C8F32392F5541F6285CEF743251411F85EB913D2F55415C8FC2C5793251418FC2F548422F55413D0AD7E37A32514100000060432F554148E17A047D32514185EB5168452F554152B81E657E32514148E17A14442F55418FC2F5A88532514152B81E053A2F5541B81E857B8A32514185EB51B8322F5541666666668732514100000020302F55419A9999D983325141333333232D2F554114AE47B180325141A4703D8A302F55411F85EB917F325141E17A147E2F2F5541C3F5280C7E325141333333132E2F55415C8FC255793251417B14AED7292F55410AD7A360723251415C8FC245202F55413D0AD7B37132514185EB51981D2F5541
+</a>
+
+<b>
+010600000001000000010300000001000000130000000AD7A360723251415C8FC245202F55415050FBCD7132514169BA9E371E2F5541F76476036C3251415B1D2B69222F55417F795AB8673251418218CF66282F5541B4492B2064325141091373642E2F554182B4648966325141A51ADAC0302F55411E295CEF743251416784EB913D2F554161E003AB793251417C74E42E422F55416E7C21B579325141E87CC038422F55413694EEB8793251416FF0743C422F5541808707BF79325141925C6642422F5541BEF25ABF7932514108ABB742422F55414F8FC2C57932514182C2F548422F5541C3F5280C7D3251417B14AED73C2F5541B248132E7E325141BA04D6A33A2F5541EB84EB317F3251410C295C9F352F5541DCC8EA917F3251419ACB137E2F2F55415C8FC255793251417B14AED7292F55410AD7A360723251415C8FC245202F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>454450 - 119968
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -39250 </desc>
+<a>
+01060000000100000001030000000100000017000000713D0A4703B65041EC51B82E08DE54413D0AD763FDB55041295C8F020BDE54416666665605B65041C3F5283C27DE544148E17A8411B650410000005052DE5441A4703D3A12B650418FC2F5B854DE5441D7A3707D18B65041D7A370CD59DE54410AD7A32026B6504148E17A6457DE5441713D0A2740B65041666666A652DE5441B81E857B58B65041713D0A374EDE5441666666065CB650411F85EB914DDE54413D0AD77350B65041AE47E1AA24DE54418FC2F54844B650413D0AD793F9DD5441333333C340B65041AE47E14AFADD5441EC51B84E3DB65041E17A14FEFADD544185EB519828B650410AD7A350FFDD54413D0AD7D30FB65041CDCCCC7C04DE54410AD7A3B011B650417B14AEA70BDE5441B81E856B0FB650415C8FC2450CDE54418FC2F5480FB65041333333D30EDE5441CDCCCCAC0AB650416666667610DE5441CDCCCC3C06B65041666666E610DE5441295C8F0204B6504185EB51E807DE5441713D0A4703B65041EC51B82E08DE5441
+</a>
+
+<b>
+010600000001000000010300000001000000260000003D0AD763FDB55041295C8F020BDE54416666665605B65041C3F5283C27DE544148E17A8411B650410000005052DE5441A4703D3A12B650418FC2F5B854DE5441D7A3707D18B65041D7A370CD59DE54410AD7A32026B6504148E17A6457DE5441C6FC9AF139B650411A2D8BC553DE54411C1DAC053BB650413BB2BB9553DE5441B61205F63BB65041C45BEF6953DE54417F0CA52840B65041644E82A252DE544186E462C63EB65041C13304CD4DDE5441ED137EAB3DB650411C363CF049DE5441227A880C3DB65041BD4D24BD47DE54419BFECD013CB6504133FAB00044DE5441E59ECB1C3BB65041EB151EDB40DE5441888596653AB650414C8432573EDE5441F07E439E38B6504144E6211438DE5441B3DEDAC837B6504107DD161235DE54412AD2758037B650416CE79C1634DE5441249E092A37B65041C87599FE32DE5441E8216A9036B6504191964EBD30DE54418631331735B65041039726932BDE5441CFC0A58B32B6504136B8C29522DE54415D30D9CD30B6504130EA81681CDE5441EC2EB5772AB650419AB4E70506DE544114B31E9828B65041F0DEB250FFDD54413D0AD7D30FB65041CDCCCC7C04DE54410AD7A3B011B650417B14AEA70BDE54416297706710B6504176353B160CDE54410BB6113F0FB6504100BDD7100CDE54418FC2F5480FB65041333333D30EDE5441EF8A87B80AB6504112CA545110DE5441CE4E08880AB65041067F01D00FDE5441CDCCCC3C06B65041666666E610DE5441295C8F0204B6504185EB51E807DE544183C0695003B650412FC0BE2C08DE5441822E6B7302B65041B69C6E9708DE54413D0AD763FDB55041295C8F020BDE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>456298 - 152953
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2975 </desc>
+<a>
+0106000000010000000103000000010000002F000000D7A3701D960D5141A4703D9AB079544133333393960D514185EB5178AF795441AE47E13A950D5141B81E857BAB795441CDCCCCBC940D5141AE47E1FAA8795441E17A144E940D51417B14AEF7A37954411F85EB618E0D5141295C8F52A179544166666636840D5141CDCCCCCC9C795441B81E857B7F0D5141EC51B83E9A7954415C8FC2A57A0D51419A99996997795441000000107A0D5141295C8F7297795441C3F528FC740D5141295C8FA2A279544152B81E15700D5141A4703DCAAD795441000000C06C0D51410AD7A3C0AB79544148E17A146B0D51411F85EBA1AF7954415C8FC2D5670D51415C8FC2B5B4795441F6285C7F640D51417B14AEB7B9795441C3F528DC620D51411F85EBB1BB7954410AD7A310620D51411F85EB71BC795441713D0A17610D5141A4703D1ABD79544148E17A745F0D5141EC51B8CEBD79544152B81E755C0D514114AE4741BE79544148E17AD4600D514100000080C079544148E17AB4630D514152B81E45C2795441EC51B8DE650D5141AE47E1EAC37954419A9999E9670D5141333333F3C579544100000010680D5141A4703D1AC6795441F6285C3F690D51417B14AE47C7795441D7A370ED6C0D5141B81E853BCB795441D7A370DD700D5141B81E855BCF79544152B81EF5730D5141B81E85BBD2795441AE47E1FA780D51411F85EB11D779544148E17A547E0D5141A4703D6ADB79544100000050850D5141EC51B8FEE17954411F85EBA1870D51415C8FC255E1795441000000508A0D514185EB5178DB79544152B81EA5860D5141713D0AB7D87954411F85EB21830D514100000050D679544148E17AD4880D51411F85EBA1CC795441713D0AB7880D51413D0AD713CA7954411F85EB618A0D5141F6285C2FC6795441AE47E1FA8C0D51413D0AD7A3C179544152B81ED58E0D5141713D0AD7BD795441713D0AF7900D51415C8FC285BB795441295C8F92920D514148E17A54BA795441713D0AD7930D5141295C8F72B7795441C3F5284C950D5141CDCCCC9CB2795441D7A3701D960D5141A4703D9AB0795441
+</a>
+
+<b>
+010600000001000000010300000001000000340000009B3DAFF4850D5141B52542939D7954419F346736840D51418128CDCC9C79544154D233C7800D51412D87F069A179544176096E73780D514160A8CF99AC7954411E5ED837750D5141866C9BF1B07954413A274BF9720D5141BE1C4876AF7954416C2B32A3720D51413D68703DAF79544152B81E15700D5141A4703DCAAD795441000000C06C0D51410AD7A3C0AB795441AEB304896C0D5141FBBA6140AC79544123DDAC27700D5141E06332F3B1795441DA3A7A64720D5141074109C7B67954419FE85B3F740D51413442A430BB7954419D218836700D51410B4E2E0DC0795441686BF0D16D0D5141873458EFC2795441DBC3C4DA6C0D5141664A2E19C4795441557069C36C0D5141E2465335C47954417388B215680D5141E5BDE61FC6795441092663BD680D514142A887C6C6795441F6285C3F690D51417B14AE47C7795441F9A8DFD6690D514195C069EAC7795441D7A370ED6C0D5141B81E853BCB795441D7A370DD700D5141B81E855BCF7954417B2AF339730D5141677A40EFD1795441D742C19E730D51410CF6435DD27954413C07E9C5730D5141B9B7543DD2795441BD759261750D5141C2980DCED0795441BE94BC8E7A0D51410E72C32FCC795441B71DC365820D5141A56333E3D57954416DEFEA21830D51416E0E0050D6795441E3E2072B830D5141C9548540D679544148E17AD4880D51411F85EBA1CC7954417DEC0BD5880D514114338AA1CC7954416F97A4308C0D5141AC5770EDC6795441B55DD7758F0D514136274A4BC17954410D5976C08F0D5141280438C0C0795441295C8F92920D514148E17A54BA795441713D0AD7930D5141295C8F72B7795441C3F5284C950D5141CDCCCC9CB27954413CB11851950D51413EA4A990B2795441302B3393960D5141BE915078AF795441C98D05DA960D5141DA23CC9FAE7954418FC2F588970D51418FC2F588AC795441CDCCCCBC940D5141AE47E1FAA87954411F85EB41970D51419A9999F9A6795441A4D47316990D5141C04B005BA6795441E17A144E940D51417B14AEF7A3795441936CBB6F8E0D51416F80BA58A1795441DC9FEA618E0D514102B78F52A179544128CDEE0E860D51414245EE9E9D795441A3CE1CFD850D51419C9801979D7954419B3DAFF4850D5141B52542939D795441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>482152 - 153313
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -11147 </desc>
+<a>
+0106000000010000000103000000010000000A000000F6285C1FC71B5141CDCCCCEC61735441EC51B84EF31B51415C8FC2D55E735441CDCCCC0C021C5141A4703DFA5D735441295C8F12051C5141666666E651735441295C8F52081C51415C8FC2F545735441A4703D0AF21B5141AE47E13A4773544152B81E55CE1B514148E17A3449735441D7A3704DCD1B5141000000104D73544133333393CA1B5141AE47E1EA55735441F6285C1FC71B5141CDCCCCEC61735441
+</a>
+
+<b>
+0106000000010000000103000000010000000D00000033333393CA1B5141AE47E1EA5573544107DD7131C81B5141AD7A8E335E7354413027D4A8C71B5141190EB20E60735441E8A51F20C71B5141C3E824EA6173544157442C35F31B514154ED8BD75E735441EC51B84EF31B51415C8FC2D55E7354411BCD2188011C514150E7F4015E73544153D0CC0C021C514181623DFA5D735441D508DB37031C5141BA1E414F59735441B76806E4031C5141F1E6499F567354411E988E12051C5141B28666E651735441DE85B9AEF21B5141435399E95273544133333393CA1B5141AE47E1EA55735441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>482152 - 381004
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -11147 </desc>
+<a>
+0106000000010000000103000000010000000A000000F6285C1FC71B5141CDCCCCEC61735441EC51B84EF31B51415C8FC2D55E735441CDCCCC0C021C5141A4703DFA5D735441295C8F12051C5141666666E651735441295C8F52081C51415C8FC2F545735441A4703D0AF21B5141AE47E13A4773544152B81E55CE1B514148E17A3449735441D7A3704DCD1B5141000000104D73544133333393CA1B5141AE47E1EA55735441F6285C1FC71B5141CDCCCCEC61735441
+</a>
+
+<b>
+0106000000010000000103000000010000000D00000033333393CA1B5141AE47E1EA5573544107DD7131C81B5141AD7A8E335E7354413027D4A8C71B5141190EB20E60735441E8A51F20C71B5141C3E824EA6173544157442C35F31B514154ED8BD75E735441EC51B84EF31B51415C8FC2D55E7354411BCD2188011C514150E7F4015E73544153D0CC0C021C514181623DFA5D735441D508DB37031C5141BA1E414F59735441B76806E4031C5141F1E6499F567354411E988E12051C5141B28666E651735441DE85B9AEF21B5141435399E95273544133333393CA1B5141AE47E1EA55735441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>514154 - 22172
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1547 </desc>
+<a>
+010600000001000000010300000001000000080000003D0AD703578C5141A4703DEAFC79544152B81E25678C514152B81E95077A54415C8FC205698C5141F6285CAF057A5441295C8F026A8C5141295C8F32047A5441AE47E1CA6A8C5141A4703DBA017A54417B14AE276B8C514148E17A64FE795441EC51B80E588C5141B81E85DBFA7954413D0AD703578C5141A4703DEAFC795441
+</a>
+
+<b>
+01060000000100000001030000000100000009000000BB9222FF578C5141595E47FAFA79544145915E16578C5141B98C7EF6FC795441EAC8D35E5B8C5141F5B1A1CBFF795441B2AF0D8D5C8C5141D7EA8193007A5441B76DCC46648C5141B7DD7AAF057A54417C482925668C51416FC7D7EB067A5441D66CBA15638C51411F6CD75C047A5441ACA96EBC5C8C514164D74471FD795441BB9222FF578C5141595E47FAFA795441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>514154 - 65731
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1547 </desc>
+<a>
+010600000001000000010300000001000000080000003D0AD703578C5141A4703DEAFC79544152B81E25678C514152B81E95077A54415C8FC205698C5141F6285CAF057A5441295C8F026A8C5141295C8F32047A5441AE47E1CA6A8C5141A4703DBA017A54417B14AE276B8C514148E17A64FE795441EC51B80E588C5141B81E85DBFA7954413D0AD703578C5141A4703DEAFC795441
+</a>
+
+<b>
+01060000000100000001030000000100000009000000BB9222FF578C5141595E47FAFA79544145915E16578C5141B98C7EF6FC795441EAC8D35E5B8C5141F5B1A1CBFF795441B2AF0D8D5C8C5141D7EA8193007A5441B76DCC46648C5141B7DD7AAF057A54417C482925668C51416FC7D7EB067A5441D66CBA15638C51411F6CD75C047A5441ACA96EBC5C8C514164D74471FD795441BB9222FF578C5141595E47FAFA795441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>914024 - 359091
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -5650 </desc>
+<a>
+01060000000100000001030000000100000009000000F6285CBF03F25041D7A3702D269F5441295C8F72FEF150415C8FC2E5FB9E544114AE4741FCF15041F6285CCFFB9E544114AE47D1F9F15041713D0AB7FB9E5441C3F528DCF5F15041A4703D8AFD9E5441713D0AD7FAF15041F6285C0F279F5441EC51B89E01F25041EC51B86E269F5441AE47E15A02F25041CDCCCC5C269F5441F6285CBF03F25041D7A3702D269F5441
+</a>
+
+<b>
+01060000000100000001030000000100000009000000AE47E15A02F25041CDCCCC5C269F5441150383F302F2504102AD8548269F5441F1285CBF03F25041ADA3702D269F5441C224018903F25041CF90D37B249F544142494A6703F25041511FE06E239F5441F6F72584FAF150419D56435C249F5441713D0AD7FAF15041F6285C0F279F5441EC51B89E01F25041EC51B86E269F5441AE47E15A02F25041CDCCCC5C269F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>901210 - 3948111
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -7198 </desc>
+<a>
+01060000000100000001030000000200000016000000EC51B8BE00E25041B81E85ABCE325441C3F528EC00E2504114AE47B1D4325441F6285C6FFEE15041713D0AA7D43254410AD7A360FEE15041CDCCCC5CD5325441E17A141EFBE15041B81E857BD5325441D7A3701DFBE1504114AE47A1D6325441AE47E1DAFAE15041713D0A77DD3254418FC2F5B8FAE15041D7A3701DDE325441EC51B8AEFBE1504100000030DE325441A4703D0A04E250410AD7A3D0DE325441A4703D9A09E25041B81E853BDF325441B81E856B09E25041A4703DFADA325441CDCCCC7C08E250417B14AE67D9325441000000C005E25041CDCCCCECD4325441713D0A3702E25041C3F528DCD43254415C8FC22502E2504100000000D4325441000000C005E25041EC51B8EED3325441CDCCCC2C06E25041B81E851BD13254413333337306E25041000000A0CF3254417B14AE8703E25041AE47E1BACE325441AE47E12A02E25041AE47E1BACE325441EC51B8BE00E25041B81E85ABCE325441050000001F85EB9107E25041E17A14BEDA32544185EB51E806E250418FC2F5C8D932544148E17AC407E250411F85EB51D932544152B81E6508E25041F6285C3FDA3254411F85EB9107E25041E17A14BEDA325441
+</a>
+
+<b>
+01060000000100000001030000000200000038000000CD67315FFBE15041527AFE29DE32544167A26B9BFBE1504114E08A2EDE3254415670F73DFBE1504162F0C368E03254414D6C80AEFAE15041F95A5CE1E13254411F85EBA1F8E1504166666696E332544114AE47B1F4E15041F6285C2FE63254411F85EB31F2E15041295C8F52E73254413D0AD783EEE15041666666E6E8325441EC51B84EEDE150418FC2F5A8E9325441B3528A91E8E15041A7FD0DC2EC325441B7CB8ED1E8E15041310E5370ED325441A041E56AE7E15041C878EBE8EE3254418C781928E6E15041D17C6278EF3254416CEAF831E4E15041EAC7E902F13254419467B8ECE2E150415132D7F3F1325441C3F528CCE3E1504114AE4791F3325441713D0A57E5E150411F85EB41F5325441AE47E11AE7E15041B81E85EBF53254419A999929E9E15041E17A14FEF5325441666666D6ECE150417B14AE67F53254419A999909F4E1504152B81E15F432544100000020F7E1504133333333F33254413D0AD753F7E15041333333E3F1325441B1AD7ED7F5E15041D18D32D4EE3254415368BCADF7E15041DF5F0627ED3254412F1AD73EFBE15041F5A10176EB3254417F028FC3FDE150410B7CBBEAEA325441CA7BA095FFE150410A6E5C12EE325441762F24A200E250417551D049F33254418FC2F5C802E25041295C8F22F33254414803365102E25041E102954FF03254417095CDD604E250415CA0EAF5EF325441A06AFEC707E250416022A63DF0325441BD37419A09E250414C59DAFAEE3254413353DBF808E250412CCBB904ED325441A4ECB90F08E25041F973CDCBE932544113C5BA0207E25041C25B036FE6325441871F773D06E250418C433912E33254419927655C07E2504166727FB0E0325441B8B5855209E2504149A53CDEDE325441B81E856B09E25041A4703DFADA325441CDCCCC7C08E250417B14AE67D9325441000000C005E25041CDCCCCECD4325441713D0A3702E25041C3F528DCD43254415C8FC22502E2504100000000D4325441000000C005E25041EC51B8EED3325441CDCCCC2C06E25041B81E851BD13254413333337306E25041000000A0CF3254417B14AE8703E25041AE47E1BACE325441AE47E12A02E25041AE47E1BACE325441EC51B8BE00E25041B81E85ABCE325441C3F528EC00E2504114AE47B1D4325441F6285C6FFEE15041713D0AA7D43254410AD7A360FEE15041CDCCCC5CD532544192B4C061FBE150411F6B0779D5325441CD67315FFBE15041527AFE29DE325441050000001F85EB9107E25041E17A14BEDA32544185EB51E806E250418FC2F5C8D932544148E17AC407E250411F85EB51D932544152B81E6508E25041F6285C3FDA3254411F85EB9107E25041E17A14BEDA325441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>942203 - 2939797
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -19938 </desc>
+<a>
+01060000000100000001030000000100000015000000D7A3703DBAB150418FC2F5C831D45441F6285CBFC1B1504148E17AB43ED454417B14AEC7C9B15041F6285C8F4CD4544148E17A04D1B150415C8FC21558D454415C8FC205D5B15041E17A140E5FD454417B14AE17D8B1504114AE476165D454419A999999DAB1504148E17A846AD454410AD7A3B0E4B1504185EB519867D45441AE47E1EAE8B15041295C8FD264D45441C3F528ACECB150410AD7A38061D45441D7A370CDEFB15041333333B35DD45441AE47E15AF2B150417B14AE6759D45441295C8FA2F7B15041B81E855B4CD45441A4703D8AEDB15041333333E33AD4544185EB5178E7B150418FC2F5F83BD45441E17A14BEE0B15041666666C63BD45441D7A370EDD9B15041666666A63AD45441EC51B85ED3B15041EC51B8FE38D454411F85EBD1CCB15041C3F528DC36D45441AE47E12AC3B15041EC51B83E33D45441D7A3703DBAB150418FC2F5C831D45441
+</a>
+
+<b>
+01060000000100000001030000000100000029000000D7A3703DBAB150418FC2F5C831D45441F40F17D4BDB15041FF2CE8F537D45441A148C7C9C1B15041CB5073C63ED454417588AD75C5B150418311A71B45D454418A4C2390C7B15041F6C76CBC48D45441E2543A0BCAB15041C49E72664CD45441BD466D45CDB150416E7909724AD454410AFA8BC3D2B15041A17D611E47D4544189BF2C64D8B15041DEAFAED243D454411C8A9BE3DAB15041C8E1D36242D45441F697D580DCB1504192D5D59B41D454412E7BD89CDDB150414ABB953A41D454418D9E0A46E0B1504137C888DB40D45441F61E2891E4B15041CD55495040D454419A9B2BF5E8B1504146193AE03FD45441C07A8A32EBB15041D55C5FBB3FD45441166D0362EEB1504143705CB63FD45441AA00F962F0B150413BBC50D03FD45441DB6C95CCEDB15041050003563BD45441A4703D8AEDB15041333333E33AD454417FB1C2B6ECB15041B56300093BD454412926CCFAEAB15041BCE75B583BD45441EF1AF244E9B150410DC59FA63BD4544185EB5178E7B150418FC2F5F83BD45441C4534311E7B150413F3EEFF53BD454412D82B32CE2B1504186B629D13BD45441E17A14BEE0B15041666666C63BD45441269358D9DFB150412C2AA4A03BD4544122836C10DCB150413DC9B1003BD45441D7A370EDD9B15041666666A63AD454415102C38CD7B150419BB4C70C3AD45441EC51B85ED3B15041EC51B8FE38D45441192ECCD8D2B15041BA4211D338D45441EB368C58D2B150412C8B43A938D45441FC5E3993CFB15041B48C0EC237D454411F85EBD1CCB15041C3F528DC36D45441B6BEFA57CAB150411E7BBDEE35D4544146915363C7B1504149DB5CD334D45441D14A5348C3B15041F969BF4933D4544102B9C4A0BFB15041118D5FAC32D45441D7A3703DBAB150418FC2F5C831D45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>942203 - 3387653
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -19938 </desc>
+<a>
+01060000000100000001030000000100000015000000D7A3703DBAB150418FC2F5C831D45441F6285CBFC1B1504148E17AB43ED454417B14AEC7C9B15041F6285C8F4CD4544148E17A04D1B150415C8FC21558D454415C8FC205D5B15041E17A140E5FD454417B14AE17D8B1504114AE476165D454419A999999DAB1504148E17A846AD454410AD7A3B0E4B1504185EB519867D45441AE47E1EAE8B15041295C8FD264D45441C3F528ACECB150410AD7A38061D45441D7A370CDEFB15041333333B35DD45441AE47E15AF2B150417B14AE6759D45441295C8FA2F7B15041B81E855B4CD45441A4703D8AEDB15041333333E33AD4544185EB5178E7B150418FC2F5F83BD45441E17A14BEE0B15041666666C63BD45441D7A370EDD9B15041666666A63AD45441EC51B85ED3B15041EC51B8FE38D454411F85EBD1CCB15041C3F528DC36D45441AE47E12AC3B15041EC51B83E33D45441D7A3703DBAB150418FC2F5C831D45441
+</a>
+
+<b>
+01060000000100000001030000000100000029000000D7A3703DBAB150418FC2F5C831D45441F40F17D4BDB15041FF2CE8F537D45441A148C7C9C1B15041CB5073C63ED454417588AD75C5B150418311A71B45D454418A4C2390C7B15041F6C76CBC48D45441E2543A0BCAB15041C49E72664CD45441BD466D45CDB150416E7909724AD454410AFA8BC3D2B15041A17D611E47D4544189BF2C64D8B15041DEAFAED243D454411C8A9BE3DAB15041C8E1D36242D45441F697D580DCB1504192D5D59B41D454412E7BD89CDDB150414ABB953A41D454418D9E0A46E0B1504137C888DB40D45441F61E2891E4B15041CD55495040D454419A9B2BF5E8B1504146193AE03FD45441C07A8A32EBB15041D55C5FBB3FD45441166D0362EEB1504143705CB63FD45441AA00F962F0B150413BBC50D03FD45441DB6C95CCEDB15041050003563BD45441A4703D8AEDB15041333333E33AD454417FB1C2B6ECB15041B56300093BD454412926CCFAEAB15041BCE75B583BD45441EF1AF244E9B150410DC59FA63BD4544185EB5178E7B150418FC2F5F83BD45441C4534311E7B150413F3EEFF53BD454412D82B32CE2B1504186B629D13BD45441E17A14BEE0B15041666666C63BD45441269358D9DFB150412C2AA4A03BD4544122836C10DCB150413DC9B1003BD45441D7A370EDD9B15041666666A63AD454415102C38CD7B150419BB4C70C3AD45441EC51B85ED3B15041EC51B8FE38D45441192ECCD8D2B15041BA4211D338D45441EB368C58D2B150412C8B43A938D45441FC5E3993CFB15041B48C0EC237D454411F85EBD1CCB15041C3F528DC36D45441B6BEFA57CAB150411E7BBDEE35D4544146915363C7B1504149DB5CD334D45441D14A5348C3B15041F969BF4933D4544102B9C4A0BFB15041118D5FAC32D45441D7A3703DBAB150418FC2F5C831D45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>567473 - 1183554
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2751 </desc>
+<a>
+010600000001000000010300000001000000370000003D0AD763CC2D5141CDCCCC7C21AB5441713D0A77CC2D514114AE479122AB544114AE4731CC2D51411F85EB5126AB544152B81EF5CC2D5141713D0A4726AB544100000030CD2D51419A9999D929AB5441EC51B88ECD2D51415C8FC2552DAB544100000030CE2D514152B81E0531AB54418FC2F578D22D5141CDCCCC4C42AB54413D0AD753D82D5141D7A3708D59AB54418FC2F5B8DA2D5141C3F5285C63AB54410AD7A330DB2D5141A4703D0A65AB54410AD7A380DB2D51411F85EB2166AB544166666616DC2D514148E17AF466AB5441CDCCCCFCDC2D5141A4703DDA67AB5441CDCCCC2CDF2D5141C3F5284C69AB54418FC2F588E22D514185EB51686BAB5441D7A3709DE62D51419A9999B96DAB54418FC2F558EA2D514185EB51786FAB54418FC2F5B8EE2D51410000003071AB5441666666A6F12D5141E17A14EE71AB54413D0AD733F52D51413D0AD77372AB5441EC51B83EFA2D5141000000C072AB544148E17A34FF2D514148E17A3472AB5441295C8F52042E51416666667671AB5441CDCCCC3C0B2E51410000004070AB5441EC51B8FE112E51411F85EBE16EAB5441AE47E10A102E51416666668666AB5441CDCCCC1C122E514148E17A0466AB54417B14AE37142E5141D7A370AD65AB544166666626142E5141000000F05EAB5441666666F6142E514185EB516857AB544166666676202E51410AD7A31054AB5441A4703D0A282E5141E17A141E52AB5441A4703D4A2D2E5141CDCCCCEC51AB5441CDCCCC0C2F2E51418FC2F5F85AAB544148E17A942F2E51410AD7A3705DAB544152B81E85302E5141333333435EAB5441CDCCCC1C372E51418FC2F5985CAB544114AE47F1532E514148E17A8457AB54419A9999A94B2E5141B81E85CB2DAB544100000040492E5141CDCCCCAC24AB54418FC2F558412E5141AE47E1FA0AAB5441000000F0322E51419A9999A911AB5441F6285C7F322E51411F85EB5110AB54419A999959312E51418FC2F53810AB5441666666B6302E51413D0AD70310AB544152B81E65262E5141AE47E10A12AB544148E17A44182E5141C3F5287C14AB5441295C8FB20F2E5141AE47E1BA15AB5441EC51B80E082E5141666666C616AB54410AD7A3F0012E514148E17AC417AB54418FC2F518FC2D5141AE47E1FA18AB544152B81E65EB2D5141666666F61BAB54418FC2F558D32D51413D0AD70320AB54413D0AD763CC2D5141CDCCCC7C21AB5441
+</a>
+
+<b>
+0106000000010000000103000000010000002A0000008FC2F558412E5141AE47E1FA0AAB5441DEB6BCC4442E514146C9893D1DAB544157BE9A57482E5141FDDB26382DAB544133434DC74C2E514168C6817140AB5441C386BB18522E5141D5D1BED757AB54414041A90E522E5141F81F85D957AB5441AE1E6B56522E5141AD07CDAF58AB54410AD7A3A0372E5141EC51B85E5DAB544185EB51C8302E5141666666165FAB54415C8FC205322E5141F6285C2F63AB544152B81E35332E514114AE476168AB544133333343392E5141295C8FC266AB54415C8FC2A5402E51417B14AE7786AB5441000000F03B2E5141D7A370ED88AB5441EC51B80E3B2E514114AE475189AB5441F6285CFF3C2E514148E17AD48AAB54418FC2F5184B2E5141E17A14AE83AB544114AE47A15B2E514152B81E157BAB54410AD7A3206A2E514185EB518873AB54417B14AEB7792E5141B81E859B6AAB544166666646892E514114AE473161AB5441B81E85EB932E514148E17AA45AAB5441E17A146EA12E5141713D0A1754AB54417B14AEA7A62E5141000000E051AB544100000090A92E5141A4703D8A46AB54410AD7A3B0AD2E51413D0AD7B336AB54419A9999F9AF2E5141666666D62DAB5441E17A146EB02E514152B81E952CAB5441B81E857BAF2E5141295C8FC22AAB544114AE47A1AA2E51418FC2F52817AB5441A4703DEAA72E5141CDCCCCEC11AB5441F6285CEF9D2E51410AD7A33016AB5441C3F528DC962E5141000000F01AAB5441CDCCCC0C942E5141F6285CCF1BAB5441B81E850B912E51418FC2F5081BAB54419A9999098B2E51413333337317AB54418FC2F578802E5141F6285C3F11AB5441D7A3701D7F2E51411F85EBC10DAB544185EB51884F2E5141B81E854B1CAB544148E17A24492E51416666660610AB54410AD7A3D0442E51411F85EBB10BAB54418FC2F558412E5141AE47E1FA0AAB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>567473 - 5293716
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2751 </desc>
+<a>
+010600000001000000010300000001000000370000003D0AD763CC2D5141CDCCCC7C21AB5441713D0A77CC2D514114AE479122AB544114AE4731CC2D51411F85EB5126AB544152B81EF5CC2D5141713D0A4726AB544100000030CD2D51419A9999D929AB5441EC51B88ECD2D51415C8FC2552DAB544100000030CE2D514152B81E0531AB54418FC2F578D22D5141CDCCCC4C42AB54413D0AD753D82D5141D7A3708D59AB54418FC2F5B8DA2D5141C3F5285C63AB54410AD7A330DB2D5141A4703D0A65AB54410AD7A380DB2D51411F85EB2166AB544166666616DC2D514148E17AF466AB5441CDCCCCFCDC2D5141A4703DDA67AB5441CDCCCC2CDF2D5141C3F5284C69AB54418FC2F588E22D514185EB51686BAB5441D7A3709DE62D51419A9999B96DAB54418FC2F558EA2D514185EB51786FAB54418FC2F5B8EE2D51410000003071AB5441666666A6F12D5141E17A14EE71AB54413D0AD733F52D51413D0AD77372AB5441EC51B83EFA2D5141000000C072AB544148E17A34FF2D514148E17A3472AB5441295C8F52042E51416666667671AB5441CDCCCC3C0B2E51410000004070AB5441EC51B8FE112E51411F85EBE16EAB5441AE47E10A102E51416666668666AB5441CDCCCC1C122E514148E17A0466AB54417B14AE37142E5141D7A370AD65AB544166666626142E5141000000F05EAB5441666666F6142E514185EB516857AB544166666676202E51410AD7A31054AB5441A4703D0A282E5141E17A141E52AB5441A4703D4A2D2E5141CDCCCCEC51AB5441CDCCCC0C2F2E51418FC2F5F85AAB544148E17A942F2E51410AD7A3705DAB544152B81E85302E5141333333435EAB5441CDCCCC1C372E51418FC2F5985CAB544114AE47F1532E514148E17A8457AB54419A9999A94B2E5141B81E85CB2DAB544100000040492E5141CDCCCCAC24AB54418FC2F558412E5141AE47E1FA0AAB5441000000F0322E51419A9999A911AB5441F6285C7F322E51411F85EB5110AB54419A999959312E51418FC2F53810AB5441666666B6302E51413D0AD70310AB544152B81E65262E5141AE47E10A12AB544148E17A44182E5141C3F5287C14AB5441295C8FB20F2E5141AE47E1BA15AB5441EC51B80E082E5141666666C616AB54410AD7A3F0012E514148E17AC417AB54418FC2F518FC2D5141AE47E1FA18AB544152B81E65EB2D5141666666F61BAB54418FC2F558D32D51413D0AD70320AB54413D0AD763CC2D5141CDCCCC7C21AB5441
+</a>
+
+<b>
+0106000000010000000103000000010000002A0000008FC2F558412E5141AE47E1FA0AAB5441DEB6BCC4442E514146C9893D1DAB544157BE9A57482E5141FDDB26382DAB544133434DC74C2E514168C6817140AB5441C386BB18522E5141D5D1BED757AB54414041A90E522E5141F81F85D957AB5441AE1E6B56522E5141AD07CDAF58AB54410AD7A3A0372E5141EC51B85E5DAB544185EB51C8302E5141666666165FAB54415C8FC205322E5141F6285C2F63AB544152B81E35332E514114AE476168AB544133333343392E5141295C8FC266AB54415C8FC2A5402E51417B14AE7786AB5441000000F03B2E5141D7A370ED88AB5441EC51B80E3B2E514114AE475189AB5441F6285CFF3C2E514148E17AD48AAB54418FC2F5184B2E5141E17A14AE83AB544114AE47A15B2E514152B81E157BAB54410AD7A3206A2E514185EB518873AB54417B14AEB7792E5141B81E859B6AAB544166666646892E514114AE473161AB5441B81E85EB932E514148E17AA45AAB5441E17A146EA12E5141713D0A1754AB54417B14AEA7A62E5141000000E051AB544100000090A92E5141A4703D8A46AB54410AD7A3B0AD2E51413D0AD7B336AB54419A9999F9AF2E5141666666D62DAB5441E17A146EB02E514152B81E952CAB5441B81E857BAF2E5141295C8FC22AAB544114AE47A1AA2E51418FC2F52817AB5441A4703DEAA72E5141CDCCCCEC11AB5441F6285CEF9D2E51410AD7A33016AB5441C3F528DC962E5141000000F01AAB5441CDCCCC0C942E5141F6285CCF1BAB5441B81E850B912E51418FC2F5081BAB54419A9999098B2E51413333337317AB54418FC2F578802E5141F6285C3F11AB5441D7A3701D7F2E51411F85EBC10DAB544185EB51884F2E5141B81E854B1CAB544148E17A24492E51416666660610AB54410AD7A3D0442E51411F85EBB10BAB54418FC2F558412E5141AE47E1FA0AAB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>574026 - 2971307
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -19641 </desc>
+<a>
+0106000000010000000103000000010000003B000000A4703DBA306B51415C8FC2058C6A5441295C8F822D6B5141CDCCCCCC866A54415C8FC2E52B6B51419A9999D9826A5441CDCCCC1C2A6B5141D7A3700D7C6A5441B81E855B276B5141666666766B6A544152B81E753A6B51419A999919696A5441713D0A973E6B514114AE4701696A54417B14AEC7456B5141AE47E1FA696A54411F85EB61516B5141666666C66B6A54417B14AE175C6B51417B14AE776C6A5441E17A146E6E6B51415C8FC2B56C6A5441000000E07F6B514148E17AD46A6A54411F85EB018F6B5141CDCCCC0C6B6A5441E17A14DEA76B51411F85EB016D6A544166666636A86B5141B81E857B676A54413D0AD793A86B5141333333035C6A5441F6285C4FA86B5141F6285C0F5B6A5441A4703D1AA86B51411F85EB515A6A544148E17A14A86B5141E17A143E5A6A544100000050A76B514114AE47D1596A544185EB5188A36B51418FC2F508596A5441B81E856B996B5141713D0A87586A54410AD7A3A0956B51410AD7A3D0576A54419A999919946B514152B81EB5576A5441000000A0916B51417B14AE87576A5441000000D08D6B51417B14AEF7566A54410AD7A3F08B6B514114AE47B1566A5441CDCCCCBC866B51418FC2F5A8556A54418FC2F5587E6B51411F85EBC1536A5441B81E852B7B6B51419A999909536A5441A4703D1A776B5141713D0A27526A54417B14AE87766B5141713D0A07526A5441F6285CFF6F6B5141B81E85CB506A5441A4703DBA6D6B514185EB5188506A5441F6285CEF6A6B51415C8FC235506A5441F6285C9F666B51419A999919506A5441D7A3709D616B5141CDCCCC6C506A5441666666A65B6B514114AE4731516A5441295C8F32416B5141CDCCCC4C556A5441EC51B83E326B5141EC51B86E576A544185EB51082B6B51418FC2F598586A5441D7A370AD256B51410AD7A3B0596A5441CDCCCCFC206B514152B81EF55A6A5441EC51B89E1C6B51410AD7A3705C6A544166666696176B514152B81E655E6A54419A9999E9126B514114AE4771606A5441AE47E1FA0E6B5141713D0A47626A54418FC2F5B80A6B514114AE4721646A54415C8FC2E5086B514114AE47316E6A5441E17A14CE096B5141E17A143E6E6A5441A4703D7A0B6B514114AE4701776A5441E17A147E0C6B514166666626796A544148E17AB40F6B51411F85EB017D6A5441AE47E14A116B5141CDCCCC9C7F6A544100000060156B514114AE47518B6A54417B14AE37186B5141A4703D1A8C6A54415C8FC285206B5141C3F5289C8C6A5441295C8FB22D6B5141B81E85FB8C6A5441A4703DBA306B51415C8FC2058C6A5441
+</a>
+
+<b>
+0106000000010000000103000000010000001300000019D1E0C2276B51412D929D696B6A54417D97CB47276B51412B5BFEE26A6A544106166136266B5141297F6E05666A54419593AF6E246B514107CCB1D95F6A544120348C11236B5141344E24655A6A54416CCAF5C2216B5141AEE990BF5A6A5441EC3DED31246B5141FCCD3F46616A5441DA40C254266B5141315AB72C6A6A54414BC3731C286B5141093D3806746A544119EF1BF1286B514124F13BE87A6A544133C78FF52A6B5141667B2562826A5441A44941BD2C6B5141BF01F302876A54416BB661D72F6B51415CCAA24D8C6A5441A4703DBA306B51415C8FC2058C6A5441295C8F822D6B5141CDCCCCCC866A54415C8FC2E52B6B51419A9999D9826A5441CDCCCC1C2A6B5141D7A3700D7C6A5441B81E855B276B5141666666766B6A544119D1E0C2276B51412D929D696B6A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>574026 - 3510680
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -19641 </desc>
+<a>
+0106000000010000000103000000010000003B000000A4703DBA306B51415C8FC2058C6A5441295C8F822D6B5141CDCCCCCC866A54415C8FC2E52B6B51419A9999D9826A5441CDCCCC1C2A6B5141D7A3700D7C6A5441B81E855B276B5141666666766B6A544152B81E753A6B51419A999919696A5441713D0A973E6B514114AE4701696A54417B14AEC7456B5141AE47E1FA696A54411F85EB61516B5141666666C66B6A54417B14AE175C6B51417B14AE776C6A5441E17A146E6E6B51415C8FC2B56C6A5441000000E07F6B514148E17AD46A6A54411F85EB018F6B5141CDCCCC0C6B6A5441E17A14DEA76B51411F85EB016D6A544166666636A86B5141B81E857B676A54413D0AD793A86B5141333333035C6A5441F6285C4FA86B5141F6285C0F5B6A5441A4703D1AA86B51411F85EB515A6A544148E17A14A86B5141E17A143E5A6A544100000050A76B514114AE47D1596A544185EB5188A36B51418FC2F508596A5441B81E856B996B5141713D0A87586A54410AD7A3A0956B51410AD7A3D0576A54419A999919946B514152B81EB5576A5441000000A0916B51417B14AE87576A5441000000D08D6B51417B14AEF7566A54410AD7A3F08B6B514114AE47B1566A5441CDCCCCBC866B51418FC2F5A8556A54418FC2F5587E6B51411F85EBC1536A5441B81E852B7B6B51419A999909536A5441A4703D1A776B5141713D0A27526A54417B14AE87766B5141713D0A07526A5441F6285CFF6F6B5141B81E85CB506A5441A4703DBA6D6B514185EB5188506A5441F6285CEF6A6B51415C8FC235506A5441F6285C9F666B51419A999919506A5441D7A3709D616B5141CDCCCC6C506A5441666666A65B6B514114AE4731516A5441295C8F32416B5141CDCCCC4C556A5441EC51B83E326B5141EC51B86E576A544185EB51082B6B51418FC2F598586A5441D7A370AD256B51410AD7A3B0596A5441CDCCCCFC206B514152B81EF55A6A5441EC51B89E1C6B51410AD7A3705C6A544166666696176B514152B81E655E6A54419A9999E9126B514114AE4771606A5441AE47E1FA0E6B5141713D0A47626A54418FC2F5B80A6B514114AE4721646A54415C8FC2E5086B514114AE47316E6A5441E17A14CE096B5141E17A143E6E6A5441A4703D7A0B6B514114AE4701776A5441E17A147E0C6B514166666626796A544148E17AB40F6B51411F85EB017D6A5441AE47E14A116B5141CDCCCC9C7F6A544100000060156B514114AE47518B6A54417B14AE37186B5141A4703D1A8C6A54415C8FC285206B5141C3F5289C8C6A5441295C8FB22D6B5141B81E85FB8C6A5441A4703DBA306B51415C8FC2058C6A5441
+</a>
+
+<b>
+0106000000010000000103000000010000001300000019D1E0C2276B51412D929D696B6A54417D97CB47276B51412B5BFEE26A6A544106166136266B5141297F6E05666A54419593AF6E246B514107CCB1D95F6A544120348C11236B5141344E24655A6A54416CCAF5C2216B5141AEE990BF5A6A5441EC3DED31246B5141FCCD3F46616A5441DA40C254266B5141315AB72C6A6A54414BC3731C286B5141093D3806746A544119EF1BF1286B514124F13BE87A6A544133C78FF52A6B5141667B2562826A5441A44941BD2C6B5141BF01F302876A54416BB661D72F6B51415CCAA24D8C6A5441A4703DBA306B51415C8FC2058C6A5441295C8F822D6B5141CDCCCCCC866A54415C8FC2E52B6B51419A9999D9826A5441CDCCCC1C2A6B5141D7A3700D7C6A5441B81E855B276B5141666666766B6A544119D1E0C2276B51412D929D696B6A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>574745 - 245591
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -41320 </desc>
+<a>
+0106000000010000000103000000010000004F000000AE47E14AE8B850416666662686285441A4703D6AEDB8504114AE479188285441295C8FB2FBB8504152B81E258D2854413333336302B95041CDCCCCCC91285441A4703DDA06B950410AD7A38093285441B81E855B0FB9504148E17AD484285441C3F5287C11B95041E17A149E842854419A99992916B95041EC51B8DE882854417B14AE2720B95041000000509028544114AE47C11CB950413D0AD73395285441713D0AD71AB95041EC51B84E9A285441AE47E1BA1FB95041F6285C8F9E285441666666462CB95041000000F0A4285441F6285C3F39B9504114AE4761AC285441CDCCCC0C40B9504185EB51C8AF2854413D0AD77343B95041C3F5288CB228544152B81E655DB950411F85EB41C5285441A4703DDA6BB95041A4703D1AD02854411F85EB7172B950417B14AEB7D3285441EC51B8EE73B95041AE47E16AD5285441A4703D5A7EB950418FC2F528DB28544185EB514887B950419A999959DE285441A4703D0A90B9504185EB5168E12854413D0AD753A6B9504114AE4731E9285441295C8F72B2B9504185EB5198EC285441C3F5285CB4B9504148E17AD4E92854418FC2F598B1B950413D0AD773E32854417B14AE47ACB950410AD7A330CE28544133333323A3B9504166666656CD28544152B81E359AB950411F85EB21C328544114AE478198B95041D7A3700DBB28544114AE475195B950419A999949B8285441A4703DEA91B95041713D0AE7BB2854419A9999C98FB95041AE47E1BABF285441C3F5282C8CB9504152B81ED5C42854411F85EB1187B9504114AE47F1BF2854419A9999297BB9504100000090B928544114AE475170B95041295C8FE2B42854419A99997965B9504152B81E35B02854416666667654B95041AE47E12AAC2854410000002052B950413D0AD7B3A7285441AE47E1BA44B9504133333373A3285441333333133DB95041F6285CAFA02854418FC2F5183AB950418FC2F5689F285441E17A14BE30B95041AE47E18A97285441000000102CB95041A4703D5A942854411F85EB1122B950418FC2F5E88C285441D7A3701D1CB9504152B81E15892854419A99992916B95041666666E67B2854415C8FC22515B950413D0AD7A377285441C3F5286C10B95041EC51B83E7428544114AE47410AB95041B81E858B722854419A99991902B95041E17A140E70285441713D0A47F7B85041C3F528BC7328544166666666EEB850415C8FC29576285441E17A147EEDB85041000000207728544166666656EDB85041000000B07B285441295C8F12ECB850415C8FC2A57F2854411F85EBC1E8B850418FC2F568852854417B14AE77E9B85041000000708328544185EB5148EBB85041D7A3707D7F2854415C8FC245ECB85041295C8F127828544185EB5188E6B8504152B81E75742854419A999979DBB8504185EB51F872285441295C8F12D8B85041AE47E15A6F285441C3F528DCD7B85041CDCCCC8C682854410AD7A350CBB8504100000020682854415C8FC205C3B850413D0AD7D369285441AE47E1BABAB850410000001067285441CDCCCCECB3B850411F85EB41602854417B14AE97A7B850410AD7A310422854419A9999999DB8504166666636412854418FC2F5789BB850417B14AEA7482854415C8FC2D59AB85041D7A3702D58285441295C8FE2AFB850415C8FC225652854411F85EB31BFB85041AE47E15A6F285441AE47E14ACEB85041C3F528EC7828544152B81EB5E0B8504114AE479182285441AE47E14AE8B850416666662686285441
+</a>
+
+<b>
+0106000000010000000103000000010000003C0000000000002052B950413D0AD7B3A7285441AE47E1BA44B9504133333373A3285441333333133DB95041F6285CAFA02854418FC2F5183AB950418FC2F5689F285441E17A14BE30B95041AE47E18A97285441000000102CB95041A4703D5A942854411F85EB1122B950418FC2F5E88C285441D7A3701D1CB9504152B81E15892854419A99992916B95041666666E67B2854415C8FC22515B950413D0AD7A377285441C3F5286C10B95041EC51B83E7428544114AE47410AB95041B81E858B722854419A99991902B95041E17A140E70285441713D0A47F7B85041C3F528BC7328544166666666EEB850415C8FC29576285441E17A147EEDB85041000000207728544166666656EDB85041000000B07B285441295C8F12ECB850415C8FC2A57F285441B5189F6EEAB850415A5FBE7F822854411F85EBC1E8B850418FC2F568852854417B14AE77E9B85041000000708328544185EB5148EBB85041D7A3707D7F2854415C8FC245ECB85041295C8F127828544185EB5188E6B8504152B81E75742854419A999979DBB8504185EB51F872285441295C8F12D8B85041AE47E15A6F285441C3F528DCD7B85041CDCCCC8C682854410AD7A350CBB8504100000020682854415C8FC205C3B850413D0AD7D369285441AE47E1BABAB850410000001067285441CDCCCCECB3B850411F85EB41602854417B14AE97A7B850410AD7A310422854419A9999999DB8504166666636412854418FC2F5789BB850417B14AEA7482854415C8FC2D59AB85041D7A3702D58285441295C8FE2AFB850415C8FC22565285441267370E2BDB85041A739357B6E285441AE47E14ACEB85041C3F528EC7828544152B81EB5E0B8504114AE479182285441A4703D6AEDB8504114AE479188285441295C8FB2FBB8504152B81E258D2854413333336302B95041CDCCCCCC91285441A4703DDA06B950410AD7A38093285441B81E855B0FB9504148E17AD484285441C3F5287C11B95041E17A149E842854419A99992916B95041EC51B8DE882854417B14AE2720B95041000000509028544114AE47C11CB950413D0AD73395285441713D0AD71AB95041EC51B84E9A285441AE47E1BA1FB95041F6285C8F9E285441666666462CB95041000000F0A4285441F6285C3F39B9504114AE4761AC285441CDCCCC0C40B9504185EB51C8AF2854414B167F424DB950419317DF9EB928544170F4926B57B9504123ACCBF2C02854415425E1B75AB9504179D27E1FB8285441D874EF745FB950419D2D41C7AE285441C8616E0A57B9504125859EC7AC2854416666667654B95041AE47E12AAC2854410000002052B950413D0AD7B3A7285441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>585200 - 234388
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -3963 </desc>
+<a>
+01060000000100000001030000000100000016000000A4703D3A2BE250416666663662F054410AD7A3E031E25041666666D655F05441713D0A2732E250415C8FC24555F054416666664634E25041E17A14DE4EF05441713D0A5736E2504152B81EA548F054417B14AE5740E25041EC51B88E49F0544148E17AB440E25041C3F5285C42F054411F85EB0141E25041F6285C3F3BF05441E17A148E44E250413333337337F05441713D0A9749E25041713D0AE731F054415C8FC24548E25041666666D62CF05441000000C039E250417B14AE8732F0544114AE47F12AE2504148E17A5438F0544114AE47512BE25041666666D63CF05441C3F528AC2BE25041D7A3704D47F054410AD7A3501FE2504148E17A0446F054410AD7A3D019E250413D0AD76345F0544148E17AA419E25041F6285CDF48F05441CDCCCC7C19E2504148E17A1451F05441F6285CCF19E250416666662654F0544185EB51B81FE250410AD7A3D058F05441A4703D3A2BE250416666663662F05441
+</a>
+
+<b>
+0106000000010000000103000000010000000700000014AE47512BE25041666666D63CF05441806122A72BE2504181BC49B946F05441AC1FED5E40E25041731BD8FE48F054415D7F116C40E25041A7E2E7F947F0544113B1CCAC40E25041C2B6302A3BF05441D64D80502BE25041AFE609CD3CF0544114AE47512BE25041666666D63CF05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>585200 - 396850
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -3963 </desc>
+<a>
+01060000000100000001030000000100000016000000A4703D3A2BE250416666663662F054410AD7A3E031E25041666666D655F05441713D0A2732E250415C8FC24555F054416666664634E25041E17A14DE4EF05441713D0A5736E2504152B81EA548F054417B14AE5740E25041EC51B88E49F0544148E17AB440E25041C3F5285C42F054411F85EB0141E25041F6285C3F3BF05441E17A148E44E250413333337337F05441713D0A9749E25041713D0AE731F054415C8FC24548E25041666666D62CF05441000000C039E250417B14AE8732F0544114AE47F12AE2504148E17A5438F0544114AE47512BE25041666666D63CF05441C3F528AC2BE25041D7A3704D47F054410AD7A3501FE2504148E17A0446F054410AD7A3D019E250413D0AD76345F0544148E17AA419E25041F6285CDF48F05441CDCCCC7C19E2504148E17A1451F05441F6285CCF19E250416666662654F0544185EB51B81FE250410AD7A3D058F05441A4703D3A2BE250416666663662F05441
+</a>
+
+<b>
+0106000000010000000103000000010000000700000014AE47512BE25041666666D63CF05441806122A72BE2504181BC49B946F05441AC1FED5E40E25041731BD8FE48F054415D7F116C40E25041A7E2E7F947F0544113B1CCAC40E25041C2B6302A3BF05441D64D80502BE25041AFE609CD3CF0544114AE47512BE25041666666D63CF05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>869229 - 52271
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -23889 </desc>
+<a>
+01060000000100000001030000000200000031000000B81E856B4E745141C3F5288C537954415C8FC2455074514148E17AC45A795441CDCCCC1C65745141B81E85DB567954419A999959657451411F85EBB15179544152B81EB5787451419A9999B94B7954418FC2F59878745141B81E859B4A7954411F85EB617D745141A4703D8A45795441666666268074514152B81EE542795441666666C68174514114AE47C1417954416666669681745141A4703DCA4079544148E17A44837451415C8FC2D53F795441CDCCCC6C8374514114AE47013E7954419A99998989745141666666C63C7954419A9999898E7451415C8FC2353C79544114AE47A195745141C3F5280C3B7954418FC2F5F8947451418FC2F5383A795441295C8F229574514100000010397954413333332394745141A4703D1A36795441000000E093745141666666A634795441B81E85DB93745141C3F528BC32795441000000C094745141333333A32D795441CDCCCC2C927451411F85EB212F7954411F85EB5190745141713D0A173079544185EB51588E7451413D0AD76330795441B81E853B8B74514185EB51F82F795441295C8FC2877451417B14AE77317954417B14AED785745141E17A14EE30795441EC51B8FE8074514152B81E8534795441E17A149E7F7451415C8FC2153379544133333373837451417B14AE0730795441D7A370AD7F745141A4703D2A2A795441A4703DFA8D745141AE47E14A1F79544114AE47C18B74514114AE4731197954417B14AEC78674514148E17A1418795441713D0AC7817451415C8FC2F51A7954417B14AE6784745141B81E857B1F7954415C8FC2C57C745141AE47E1CA22795441AE47E17A717451413333337327795441C3F528BC6D745141713D0A2729795441EC51B88E6F7451413D0AD7832D795441713D0AD772745141A4703D1A35795441295C8FF26B7451416666661638795441666666D663745141AE47E13A3C795441EC51B80E637451417B14AE2731795441BF56387C627451418058765C2A7954419A9999F9587451417B14AEE72E79544152B81E154E745141333333B334795441A4703D6A4774514185EB512838795441B81E856B4E745141C3F5288C537954410A00000014AE476190745141E17A142E35795441F6285C1F8F745141E17A142E3579544185EB51588E745141713D0A5734795441A4703D2A8E74514148E17A3433795441295C8FD28E74514100000020327954411F85EB519074514148E17AC4317954417B14AE3791745141B81E858B3279544148E17A84917451410AD7A380337954418FC2F51891745141295C8FC23479544114AE476190745141E17A142E35795441
+</a>
+
+<b>
+0106000000010000000103000000010000000E00000027AF488C4B745141FBF6565148795441B81E856B4E745141C3F5288C53795441F647DB714E7451419C3ADBA453795441B8DE4E12657451417B6542224E795441F478CA4E65745141026F80AD51795441559B128F77745141315349144C795441AB40C9E07774514112DB15FB4B79544184309EF5777451413323A9F44B7954411505735778745141231F7DD64B7954411F13249078745141702F01C54B7954411F13249078745141B8C1885A4A795441B5753E2577745141AA0FF241417954414CD858BA75745141D8350C6A3C79544127AF488C4B745141FBF6565148795441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>648567 - 2953060
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -12023 </desc>
+<a>
+01060000000100000001030000000100000066000000F6285C1F85AB5041F6285C6F873254418FC2F51899AB5041D7A3700D8E32544185EB51F8A7AB504152B81E059332544152B81E15A7AB5041B81E852B9132544148E17AF4A5AB50410AD7A3408F325441AE47E12AA5AB5041000000608D3254413D0AD7D3A4AB50411F85EB318B325441D7A370DDA4AB50413D0AD70389325441AE47E12AA5AB50411F85EBC18632544148E17AF4A5AB50418FC2F5888132544152B81E55A6AB5041CDCCCCEC7D325441B81E857BA6AB504114AE47217A32544185EB5168A6AB50411F85EBB1753254413D0AD743A4AB504185EB51D87532544166666696A3AB5041E17A141E6F32544166666696A3AB50418FC2F5986C325441A4703D3AA2AB5041B81E850B6C3254411F85EBF1A1AB5041666666966B32544152B81E85A1AB5041E17A141E6A325441AE47E1CA9FAB504114AE47A169325441EC51B8AE9FAB5041B81E851B68325441EC51B89E9FAB50413D0AD7A366325441713D0AD79FAB5041AE47E10A6332544152B81E35A0AB5041713D0A2763325441A4703DFAA0AB5041E17A141E6332544148E17A74A1AB5041A4703D4A60325441713D0AD7A3AB5041EC51B89E603254411F85EBC1A4AB5041A4703D9A5E325441295C8F22A5AB50410AD7A3005D3254417B14AE67A4AB504185EB51E85A3254411F85EBA1A7AB50419A9999B95A3254417B14AE87A7AB5041AE47E1FA593254415C8FC245A7AB5041A4703DDA5732544114AE4771A7AB504152B81EF556325441AE47E1AAA7AB5041C3F5283C5632544166666676A8AB50415C8FC275553254411F85EBE1A8AB5041333333F353325441D7A3702DA9AB504148E17A045332544148E17A84A8AB50411F85EB215232544148E17A44A8AB504133333343513254415C8FC215A8AB5041A4703D5A4F325441D7A3702DA0AB5041295C8FF257325441666666B69EAB5041B81E856B58325441333333A396AB504148E17AB45D32544185EB514895AB504185EB51F8663254411F85EB118DAB5041C3F5280C68325441A4703D8A89AB5041000000D0693254418FC2F52886AB50418FC2F5B86B3254411F85EB2180AB50419A9999696D325441C3F5284C79AB504114AE47F170325441B81E859B72AB504152B81E6574325441EC51B8EE6EAB5041CDCCCCEC77325441713D0AF76AAB5041EC51B8FE7C325441DECD501066AB5041FA7B472283325441581E45FE63AB50417C1675A0823254416A8041015DAB5041814F05FF803254417DA19BC855AB504132C8B4497F325441E149464550AB50413683891F7E3254418F443A074FAB5041860ADAD47F3254413F7C47164DAB5041D554113D823254419BB2D1D54AAB504122622F5885325441F3E85B9548AB5041C8ADE90F88325441FB9B1E8E45AB5041BEFEAF058C32544100D125FE42AB50410B0CCE208F325441094346BB3FAB5041011CF2DA923254411037ABEF3CAB5041A4A84ECE953254411E60179437AB5041967FE2299B325441218D0C2733AB50418F52ED969F325441FC498B072FAB5041E7F0A762A3325441965969E728AB5041DBFEB2D5A93254413A233FA923AB5041C2220F0DB032544156FCB54820AB5041ACE84FB3B3325441616A4D171CAB50414D389359B73254410B2CB17A1CAB504147814772B9325441057565931EAB504198089827BB325441FD0245D621AB50419310AA04BD3254414951052D25AB5041375C64BCBF3254415BE7EA852BAB504161E11872B932544104463C553AAB50411110ECF8A8325441D040E99741AB5041FF55FCF2A03254418EE78DBA4AAB5041EE8AA47D953254419F3649464EAB5041D060E3CF90325441338C6BD050AB5041BB3F52418C3254419268B41252AB5041F87099AE8C32544121FC80EB5DAB50412C351BBF90325441594B3A915FAB5041B194A12591325441569065BB60AB50410B4D705C8F325441FB59DBFB62AB5041108600BB8D3254419D27DA2A66AB504111C319088D325441E8F7DEF869AB5041BB847D6B8D325441E1C2D7886CAB50410C0CCE208F325441870A09526EAB5041AED9CC4F92325441D6D6843171AB5041A4228168943254417BA0FA7173AB5041F4A9D11D9632544171F1C06777AB5041482D99E4963254411241040E7BAB5041F5682FE2953254410518986980AB5041A26323A494325441FCE619E883AB5041509FB9A19332544178A9A70885AB50411A93BBFD903254414B2DC86185AB5041B6C9A8958E3254414BEC252685AB50416AF9A3C78A325441F6285C1F85AB5041F6285C6F87325441
+</a>
+
+<b>
+0106000000010000000103000000010000007F0000008FC2F5D8A7AB5041666666B65A32544100000020A9AB50413D0AD7A35A325441CDCCCCACA9AB50418FC2F5085C325441713D0AC7AAAB5041A4703DEA603254417B14AE37ABAB504166666606653254410AD7A340ABAB50417B14AE376832544148E17A44ABAB5041A4703DFA6B3254417B14AE07ABAB5041A4703DAA6E325441D7A370DDA9AB5041EC51B89E70325441EC51B8BEA6AB504152B81E95703254419A999939A7AB5041A4703DAA76325441D7A3703DA7AB5041713D0A477A32544148E17A14A7AB504185EB51F87D32544152B81EB5A6AB5041000000A0813254418FC2F5B8A5AB50419A9999A988325441D7A370ADA5AB50417B14AE778B3254411F85EB31A6AB5041A4703DEA8D325441A4703D0AA7AB504114AE47E18F325441333333B3A9AB50413D0AD79393325441295C8F82ACAB504114AE4781943254418FC2F538ADAB5041D7A370BD94325441B81E854BADAB5041AE47E12A943254419A999939ADAB5041C3F5287C9332544148E17A24ADAB5041A4703DDA91325441B81E85CBACAB5041295C8FD28F3254415C8FC245ACAB50411F85EB718D325441F6285CCFABAB5041000000608A325441E17A14AEACAB5041295C8FA2883254418FC2F5B8ADAB504148E17A248632544100000030AEAB50410AD7A320833254410AD7A370AFAB504148E17A6483325441AE47E14AB0AB5041666666A683325441AE47E1FABEAB5041EC51B80E883254418FC2F508C7AB5041F6285C7F8A32544114AE47A1C8AB504148E17AA48332544148E17A14C0AB5041A4703DBA8032544185EB51C8B9AB504148E17A047F32544152B81EF5B6AB50410AD7A3C07C325441295C8F12B8AB5041E17A14EE793254417B14AE97B7AB504148E17A54773254410AD7A3D0B6AB50411F85EBF16C3254415C8FC2A5B8AB5041713D0AC763325441CDCCCCACB8AB50419A9999796332544152B81EB5B8AB5041666666A662325441A4703DCAB8AB5041F6285C0F613254417B14AED7B7AB504114AE47815B32544185EB5128B3AB5041000000D055325441F6285C0FAFAB504152B81E25553254410AD7A320A9AB5041F6285CFF533254411F85EBE1A8AB5041333333F353325441D7A3702DA9AB504148E17A045332544148E17A84A8AB50411F85EB215232544148E17A44A8AB504133333343513254415C8FC215A8AB5041A4703D5A4F325441D7A3702DA0AB5041295C8FF257325441666666B69EAB5041B81E856B58325441333333A396AB504148E17AB45D32544185EB514895AB504185EB51F8663254411F85EB118DAB5041C3F5280C68325441A4703D8A89AB5041000000D0693254418FC2F52886AB50418FC2F5B86B3254411F85EB2180AB50419A9999696D325441C3F5284C79AB504114AE47F170325441B81E859B72AB504152B81E6574325441EC51B8EE6EAB5041CDCCCCEC77325441713D0AF76AAB5041EC51B8FE7C325441E3CD501066AB5041F57B472283325441581E45FE63AB5041781675A082325441688041015DAB5041804F05FF803254417CA19BC855AB504134C8B4497F325441E649464550AB50413783891F7E3254418A443A074FAB5041830ADAD47F325441407C47164DAB5041D254113D823254419AB2D1D54AAB504123622F5885325441F4E85B9548AB5041C4ADE90F88325441AC57EE9747AB50412593515B89325441E54882DC50AB504174FDAD1C8C32544146A547FE50AB50419600DF508C3254419268B41252AB5041F57099AE8C3254411FFC80EB5DAB504130351BBF90325441554B3A915FAB5041B094A12591325441539065BB60AB50410F4D705C8F325441F959DBFB62AB50410D8600BB8D3254419E27DA2A66AB504115C319088D325441E8F7DEF869AB5041BB847D6B8D325441E0C2D7886CAB5041070CCE208F3254418B0A09526EAB5041ADD9CC4F92325441D4D6843171AB5041A0228168943254417AA0FA7173AB5041F7A9D11D963254416DF1C06777AB5041432D99E4963254410D41040E7BAB5041F9682FE2953254410518986980AB50419D6323A494325441FCE619E883AB5041539FB9A1933254417DA9A70885AB50411E93BBFD903254414B2DC86185AB5041B8C9A8958E3254414EEC252685AB50416FF9A3C78A325441F6285C1F85AB5041F6285C6F873254418FC2F51899AB5041D7A3700D8E32544185EB51F8A7AB504152B81E059332544152B81E15A7AB5041B81E852B9132544148E17AF4A5AB50410AD7A3408F325441AE47E12AA5AB5041000000608D3254413D0AD7D3A4AB50411F85EB318B325441D7A370DDA4AB50413D0AD70389325441AE47E12AA5AB50411F85EBC18632544148E17AF4A5AB50418FC2F5888132544152B81E55A6AB5041CDCCCCEC7D325441B81E857BA6AB504114AE47217A32544185EB5168A6AB50411F85EBB1753254413D0AD743A4AB504185EB51D87532544166666696A3AB5041E17A141E6F32544166666696A3AB50418FC2F5986C325441A4703D3AA2AB5041B81E850B6C3254411F85EBF1A1AB5041666666966B32544152B81E85A1AB5041E17A141E6A325441AE47E1CA9FAB504114AE47A169325441EC51B8AE9FAB5041B81E851B68325441EC51B89E9FAB50413D0AD7A366325441713D0AD79FAB5041AE47E10A6332544152B81E35A0AB5041713D0A2763325441A4703DFAA0AB5041E17A141E6332544148E17A74A1AB5041A4703D4A60325441713D0AD7A3AB5041EC51B89E603254411F85EBC1A4AB5041A4703D9A5E325441295C8F22A5AB50410AD7A3005D3254417B14AE67A4AB504185EB51E85A3254418FC2F5D8A7AB5041666666B65A325441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>648567 - 3411830
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -12023 </desc>
+<a>
+01060000000100000001030000000100000066000000F6285C1F85AB5041F6285C6F873254418FC2F51899AB5041D7A3700D8E32544185EB51F8A7AB504152B81E059332544152B81E15A7AB5041B81E852B9132544148E17AF4A5AB50410AD7A3408F325441AE47E12AA5AB5041000000608D3254413D0AD7D3A4AB50411F85EB318B325441D7A370DDA4AB50413D0AD70389325441AE47E12AA5AB50411F85EBC18632544148E17AF4A5AB50418FC2F5888132544152B81E55A6AB5041CDCCCCEC7D325441B81E857BA6AB504114AE47217A32544185EB5168A6AB50411F85EBB1753254413D0AD743A4AB504185EB51D87532544166666696A3AB5041E17A141E6F32544166666696A3AB50418FC2F5986C325441A4703D3AA2AB5041B81E850B6C3254411F85EBF1A1AB5041666666966B32544152B81E85A1AB5041E17A141E6A325441AE47E1CA9FAB504114AE47A169325441EC51B8AE9FAB5041B81E851B68325441EC51B89E9FAB50413D0AD7A366325441713D0AD79FAB5041AE47E10A6332544152B81E35A0AB5041713D0A2763325441A4703DFAA0AB5041E17A141E6332544148E17A74A1AB5041A4703D4A60325441713D0AD7A3AB5041EC51B89E603254411F85EBC1A4AB5041A4703D9A5E325441295C8F22A5AB50410AD7A3005D3254417B14AE67A4AB504185EB51E85A3254411F85EBA1A7AB50419A9999B95A3254417B14AE87A7AB5041AE47E1FA593254415C8FC245A7AB5041A4703DDA5732544114AE4771A7AB504152B81EF556325441AE47E1AAA7AB5041C3F5283C5632544166666676A8AB50415C8FC275553254411F85EBE1A8AB5041333333F353325441D7A3702DA9AB504148E17A045332544148E17A84A8AB50411F85EB215232544148E17A44A8AB504133333343513254415C8FC215A8AB5041A4703D5A4F325441D7A3702DA0AB5041295C8FF257325441666666B69EAB5041B81E856B58325441333333A396AB504148E17AB45D32544185EB514895AB504185EB51F8663254411F85EB118DAB5041C3F5280C68325441A4703D8A89AB5041000000D0693254418FC2F52886AB50418FC2F5B86B3254411F85EB2180AB50419A9999696D325441C3F5284C79AB504114AE47F170325441B81E859B72AB504152B81E6574325441EC51B8EE6EAB5041CDCCCCEC77325441713D0AF76AAB5041EC51B8FE7C325441DECD501066AB5041FA7B472283325441581E45FE63AB50417C1675A0823254416A8041015DAB5041814F05FF803254417DA19BC855AB504132C8B4497F325441E149464550AB50413683891F7E3254418F443A074FAB5041860ADAD47F3254413F7C47164DAB5041D554113D823254419BB2D1D54AAB504122622F5885325441F3E85B9548AB5041C8ADE90F88325441FB9B1E8E45AB5041BEFEAF058C32544100D125FE42AB50410B0CCE208F325441094346BB3FAB5041011CF2DA923254411037ABEF3CAB5041A4A84ECE953254411E60179437AB5041967FE2299B325441218D0C2733AB50418F52ED969F325441FC498B072FAB5041E7F0A762A3325441965969E728AB5041DBFEB2D5A93254413A233FA923AB5041C2220F0DB032544156FCB54820AB5041ACE84FB3B3325441616A4D171CAB50414D389359B73254410B2CB17A1CAB504147814772B9325441057565931EAB504198089827BB325441FD0245D621AB50419310AA04BD3254414951052D25AB5041375C64BCBF3254415BE7EA852BAB504161E11872B932544104463C553AAB50411110ECF8A8325441D040E99741AB5041FF55FCF2A03254418EE78DBA4AAB5041EE8AA47D953254419F3649464EAB5041D060E3CF90325441338C6BD050AB5041BB3F52418C3254419268B41252AB5041F87099AE8C32544121FC80EB5DAB50412C351BBF90325441594B3A915FAB5041B194A12591325441569065BB60AB50410B4D705C8F325441FB59DBFB62AB5041108600BB8D3254419D27DA2A66AB504111C319088D325441E8F7DEF869AB5041BB847D6B8D325441E1C2D7886CAB50410C0CCE208F325441870A09526EAB5041AED9CC4F92325441D6D6843171AB5041A4228168943254417BA0FA7173AB5041F4A9D11D9632544171F1C06777AB5041482D99E4963254411241040E7BAB5041F5682FE2953254410518986980AB5041A26323A494325441FCE619E883AB5041509FB9A19332544178A9A70885AB50411A93BBFD903254414B2DC86185AB5041B6C9A8958E3254414BEC252685AB50416AF9A3C78A325441F6285C1F85AB5041F6285C6F87325441
+</a>
+
+<b>
+0106000000010000000103000000010000007F0000008FC2F5D8A7AB5041666666B65A32544100000020A9AB50413D0AD7A35A325441CDCCCCACA9AB50418FC2F5085C325441713D0AC7AAAB5041A4703DEA603254417B14AE37ABAB504166666606653254410AD7A340ABAB50417B14AE376832544148E17A44ABAB5041A4703DFA6B3254417B14AE07ABAB5041A4703DAA6E325441D7A370DDA9AB5041EC51B89E70325441EC51B8BEA6AB504152B81E95703254419A999939A7AB5041A4703DAA76325441D7A3703DA7AB5041713D0A477A32544148E17A14A7AB504185EB51F87D32544152B81EB5A6AB5041000000A0813254418FC2F5B8A5AB50419A9999A988325441D7A370ADA5AB50417B14AE778B3254411F85EB31A6AB5041A4703DEA8D325441A4703D0AA7AB504114AE47E18F325441333333B3A9AB50413D0AD79393325441295C8F82ACAB504114AE4781943254418FC2F538ADAB5041D7A370BD94325441B81E854BADAB5041AE47E12A943254419A999939ADAB5041C3F5287C9332544148E17A24ADAB5041A4703DDA91325441B81E85CBACAB5041295C8FD28F3254415C8FC245ACAB50411F85EB718D325441F6285CCFABAB5041000000608A325441E17A14AEACAB5041295C8FA2883254418FC2F5B8ADAB504148E17A248632544100000030AEAB50410AD7A320833254410AD7A370AFAB504148E17A6483325441AE47E14AB0AB5041666666A683325441AE47E1FABEAB5041EC51B80E883254418FC2F508C7AB5041F6285C7F8A32544114AE47A1C8AB504148E17AA48332544148E17A14C0AB5041A4703DBA8032544185EB51C8B9AB504148E17A047F32544152B81EF5B6AB50410AD7A3C07C325441295C8F12B8AB5041E17A14EE793254417B14AE97B7AB504148E17A54773254410AD7A3D0B6AB50411F85EBF16C3254415C8FC2A5B8AB5041713D0AC763325441CDCCCCACB8AB50419A9999796332544152B81EB5B8AB5041666666A662325441A4703DCAB8AB5041F6285C0F613254417B14AED7B7AB504114AE47815B32544185EB5128B3AB5041000000D055325441F6285C0FAFAB504152B81E25553254410AD7A320A9AB5041F6285CFF533254411F85EBE1A8AB5041333333F353325441D7A3702DA9AB504148E17A045332544148E17A84A8AB50411F85EB215232544148E17A44A8AB504133333343513254415C8FC215A8AB5041A4703D5A4F325441D7A3702DA0AB5041295C8FF257325441666666B69EAB5041B81E856B58325441333333A396AB504148E17AB45D32544185EB514895AB504185EB51F8663254411F85EB118DAB5041C3F5280C68325441A4703D8A89AB5041000000D0693254418FC2F52886AB50418FC2F5B86B3254411F85EB2180AB50419A9999696D325441C3F5284C79AB504114AE47F170325441B81E859B72AB504152B81E6574325441EC51B8EE6EAB5041CDCCCCEC77325441713D0AF76AAB5041EC51B8FE7C325441E3CD501066AB5041F57B472283325441581E45FE63AB5041781675A082325441688041015DAB5041804F05FF803254417CA19BC855AB504134C8B4497F325441E649464550AB50413783891F7E3254418A443A074FAB5041830ADAD47F325441407C47164DAB5041D254113D823254419AB2D1D54AAB504123622F5885325441F4E85B9548AB5041C4ADE90F88325441AC57EE9747AB50412593515B89325441E54882DC50AB504174FDAD1C8C32544146A547FE50AB50419600DF508C3254419268B41252AB5041F57099AE8C3254411FFC80EB5DAB504130351BBF90325441554B3A915FAB5041B094A12591325441539065BB60AB50410F4D705C8F325441F959DBFB62AB50410D8600BB8D3254419E27DA2A66AB504115C319088D325441E8F7DEF869AB5041BB847D6B8D325441E0C2D7886CAB5041070CCE208F3254418B0A09526EAB5041ADD9CC4F92325441D4D6843171AB5041A0228168943254417AA0FA7173AB5041F7A9D11D963254416DF1C06777AB5041432D99E4963254410D41040E7BAB5041F9682FE2953254410518986980AB50419D6323A494325441FCE619E883AB5041539FB9A1933254417DA9A70885AB50411E93BBFD903254414B2DC86185AB5041B8C9A8958E3254414EEC252685AB50416FF9A3C78A325441F6285C1F85AB5041F6285C6F873254418FC2F51899AB5041D7A3700D8E32544185EB51F8A7AB504152B81E059332544152B81E15A7AB5041B81E852B9132544148E17AF4A5AB50410AD7A3408F325441AE47E12AA5AB5041000000608D3254413D0AD7D3A4AB50411F85EB318B325441D7A370DDA4AB50413D0AD70389325441AE47E12AA5AB50411F85EBC18632544148E17AF4A5AB50418FC2F5888132544152B81E55A6AB5041CDCCCCEC7D325441B81E857BA6AB504114AE47217A32544185EB5168A6AB50411F85EBB1753254413D0AD743A4AB504185EB51D87532544166666696A3AB5041E17A141E6F32544166666696A3AB50418FC2F5986C325441A4703D3AA2AB5041B81E850B6C3254411F85EBF1A1AB5041666666966B32544152B81E85A1AB5041E17A141E6A325441AE47E1CA9FAB504114AE47A169325441EC51B8AE9FAB5041B81E851B68325441EC51B89E9FAB50413D0AD7A366325441713D0AD79FAB5041AE47E10A6332544152B81E35A0AB5041713D0A2763325441A4703DFAA0AB5041E17A141E6332544148E17A74A1AB5041A4703D4A60325441713D0AD7A3AB5041EC51B89E603254411F85EBC1A4AB5041A4703D9A5E325441295C8F22A5AB50410AD7A3005D3254417B14AE67A4AB504185EB51E85A3254418FC2F5D8A7AB5041666666B65A325441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>607641 - 201101
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1606 </desc>
+<a>
+0106000000020000000103000000010000000B00000014AE476163A350418FC2F5E83E5755410AD7A39060A35041C3F5282C40575541666666F65FA3504152B81E2540575541CDCCCC4C60A3504185EB51C840575541000000E065A35041B81E85FB5057554148E17AF466A350410AD7A370545755413D0AD7A367A3504114AE47A156575541295C8F426CA35041B81E853B56575541000000B064A3504114AE47E13F5755411F85EB4164A3504185EB51F83E57554114AE476163A350418FC2F5E83E57554101030000000100000018000000F6285C9F7FA350419A9999F97A5755411F85EBB183A35041295C8FB282575541333333C386A3504152B81E1581575541AE47E13A84A35041713D0A477C575541F6285CCF7FA35041C3F5281C74575541713D0A477FA35041B81E851B735755413D0AD7337DA350413D0AD7336F5755418FC2F5C87BA35041AE47E17A6C57554152B81E7578A35041B81E858B6657554185EB518875A350415C8FC26561575541CDCCCC3C73A35041CDCCCC5C5D57554114AE47D169A350413D0AD76363575541AE47E12A6CA350417B14AE3768575541333333836CA350418FC2F50869575541AE47E11A6DA35041000000706A5755417B14AE776DA35041A4703D4A6B5755415C8FC2B56DA3504185EB51186C575541D7A3700D6EA35041AE47E13A6D575541AE47E13A72A350415C8FC2356C575541C3F5285C75A35041A4703DAA6A575541E17A14AE76A350418FC2F5F8695755413D0AD7137BA350418FC2F508725755410AD7A3A07DA35041E17A142E77575541F6285C9F7FA350419A9999F97A575541
+</a>
+
+<b>
+0106000000010000000103000000010000001400000052B81E7578A35041B81E858B66575541BCD480BE76A350414B26A18763575541E5EB937C73A35041F09A63FA5D575541E842132373A3504154E558855D5755418AA61CE572A350411575C5A75D57554114C18F3171A350412AB499AB5E5755414D45FD9B70A3504137544E0B5F575541E17A14AE76A350418FC2F5F8695755413D0AD7137BA350418FC2F508725755410AD7A3A07DA35041E17A142E77575541F6285C9F7FA350419A9999F97A5755411F85EBB183A35041295C8FB28257554184B45DBE84A3504166FF392582575541EE6E4EB686A35041A90FA8FC80575541AE47E13A84A35041713D0A477C575541F6285CCF7FA35041C3F5281C74575541713D0A477FA35041B81E851B735755413D0AD7337DA350413D0AD7336F5755418FC2F5C87BA35041AE47E17A6C57554152B81E7578A35041B81E858B66575541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>607641 - 432533
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1606 </desc>
+<a>
+0106000000020000000103000000010000000B00000014AE476163A350418FC2F5E83E5755410AD7A39060A35041C3F5282C40575541666666F65FA3504152B81E2540575541CDCCCC4C60A3504185EB51C840575541000000E065A35041B81E85FB5057554148E17AF466A350410AD7A370545755413D0AD7A367A3504114AE47A156575541295C8F426CA35041B81E853B56575541000000B064A3504114AE47E13F5755411F85EB4164A3504185EB51F83E57554114AE476163A350418FC2F5E83E57554101030000000100000018000000F6285C9F7FA350419A9999F97A5755411F85EBB183A35041295C8FB282575541333333C386A3504152B81E1581575541AE47E13A84A35041713D0A477C575541F6285CCF7FA35041C3F5281C74575541713D0A477FA35041B81E851B735755413D0AD7337DA350413D0AD7336F5755418FC2F5C87BA35041AE47E17A6C57554152B81E7578A35041B81E858B6657554185EB518875A350415C8FC26561575541CDCCCC3C73A35041CDCCCC5C5D57554114AE47D169A350413D0AD76363575541AE47E12A6CA350417B14AE3768575541333333836CA350418FC2F50869575541AE47E11A6DA35041000000706A5755417B14AE776DA35041A4703D4A6B5755415C8FC2B56DA3504185EB51186C575541D7A3700D6EA35041AE47E13A6D575541AE47E13A72A350415C8FC2356C575541C3F5285C75A35041A4703DAA6A575541E17A14AE76A350418FC2F5F8695755413D0AD7137BA350418FC2F508725755410AD7A3A07DA35041E17A142E77575541F6285C9F7FA350419A9999F97A575541
+</a>
+
+<b>
+0106000000010000000103000000010000001500000052B81E7578A35041B81E858B66575541BCD480BE76A350414B26A18763575541E5EB937C73A35041F09A63FA5D575541E842132373A3504154E558855D5755418AA61CE572A350411575C5A75D57554183C18F3171A35041E3B399AB5E575541DA78E1B670A35041E06319FA5E5755415045FD9B70A3504136544E0B5F575541E17A14AE76A350418FC2F5F8695755413D0AD7137BA350418FC2F508725755410AD7A3A07DA35041E17A142E77575541F6285C9F7FA350419A9999F97A5755411F85EBB183A35041295C8FB282575541E3B45DBE84A3504134FF392582575541EE6E4EB686A35041A90FA8FC80575541AE47E13A84A35041713D0A477C575541F6285CCF7FA35041C3F5281C74575541713D0A477FA35041B81E851B735755413D0AD7337DA350413D0AD7336F5755418FC2F5C87BA35041AE47E17A6C57554152B81E7578A35041B81E858B66575541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>633941 - 1575918
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1461 </desc>
+<a>
+0106000000010000000103000000010000000B0000001F85EBD189F9504152B81EE517B954415C8FC2758BF95041CDCCCCDC19B95441295C8FE28CF9504114AE47511DB95441D7A370FDAAF950413D0AD76311B954417B14AE679DF950419A9999490CB95441AE47E1FA92F95041EC51B85E08B954413D0AD7F38CF95041AE47E11A06B954413D0AD7E385F950419A99998904B95441F6285CEF76F95041CDCCCC8CFFB85441EC51B85E70F95041E17A140E0DB954411F85EBD189F9504152B81EE517B95441
+</a>
+
+<b>
+010600000001000000010300000001000000180000003D0AD7F38CF95041AE47E11A06B95441CD070E4C92F95041C14B061D08B954415CD9C88692F95041960B183308B95441295C8F9292F95041AC1C5A2C08B95441F2D24DF294F95041A4703D7A06B95441508D97AE9EF950412B87168101B95441C3F52854A0F95041894160B502B9544196438BFCA1F95041A01A2F6505B95441A38275D69EF950413E8B5CD30CB95441AC69118BA6F950419A0845B80FB954410B574AB2AAF95041DD2B9D4711B95441666666CEB2F95041E7FBA9410EB95441560E2D5AC4F950415EBA493C0AB9544139B4C836C5F950411904568609B95441EC51B81EC2F950410AD7A3A0F4B85441AE47E1CAC0F950413D0AD7F3F2B85441F6285C4F85F950417B14AEE7DBB854417B14AE0784F95041AE47E17ADCB85441CDCCCCDC7DF9504114AE4701EDB854410166E95194F95041231667DCF5B85441250681A594F95041378941D8F5B854413BDF4F258CF9504119045686FDB85441CE446EC38CF9504129BE221006B954413D0AD7F38CF95041AE47E11A06B95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>633941 - 3654748
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1461 </desc>
+<a>
+0106000000010000000103000000010000000B0000001F85EBD189F9504152B81EE517B954415C8FC2758BF95041CDCCCCDC19B95441295C8FE28CF9504114AE47511DB95441D7A370FDAAF950413D0AD76311B954417B14AE679DF950419A9999490CB95441AE47E1FA92F95041EC51B85E08B954413D0AD7F38CF95041AE47E11A06B954413D0AD7E385F950419A99998904B95441F6285CEF76F95041CDCCCC8CFFB85441EC51B85E70F95041E17A140E0DB954411F85EBD189F9504152B81EE517B95441
+</a>
+
+<b>
+010600000001000000010300000001000000180000003D0AD7F38CF95041AE47E11A06B95441CD070E4C92F95041C14B061D08B954415CD9C88692F95041960B183308B95441295C8F9292F95041AC1C5A2C08B95441F2D24DF294F95041A4703D7A06B95441508D97AE9EF950412B87168101B95441C3F52854A0F95041894160B502B9544196438BFCA1F95041A01A2F6505B95441A38275D69EF950413E8B5CD30CB95441AC69118BA6F950419A0845B80FB954410B574AB2AAF95041DD2B9D4711B95441666666CEB2F95041E7FBA9410EB95441560E2D5AC4F950415EBA493C0AB9544139B4C836C5F950411904568609B95441EC51B81EC2F950410AD7A3A0F4B85441AE47E1CAC0F950413D0AD7F3F2B85441F6285C4F85F950417B14AEE7DBB854417B14AE0784F95041AE47E17ADCB85441CDCCCCDC7DF9504114AE4701EDB854410166E95194F95041231667DCF5B85441250681A594F95041378941D8F5B854413BDF4F258CF9504119045686FDB85441CE446EC38CF9504129BE221006B954413D0AD7F38CF95041AE47E11A06B95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>636098 - 181182
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1545 </desc>
+<a>
+01060000000100000001030000000100000021000000EC51B8CE48FC50411F85EBF1B2C2544114AE47514AFC50413D0AD7D3B0C25441000000204CFC50419A999919AEC25441CDCCCC5C50FC50417B14AE97A8C25441EC51B88E4DFC50411F85EB21A8C25441C3F5285C4CFC504152B81EF5A7C25441CDCCCC9C38FC504148E17A34B2C25441E17A149E20FC50411F85EBD1B9C254410AD7A37021FC5041C3F528DCBBC25441295C8FA21FFC504114AE47A1C1C2544152B81E451AFC50415C8FC2D5C0C254411F85EBE118FC5041333333E3BAC2544114AE47C10EFC504185EB5148BCC25441333333D30CFC50418FC2F578BCC2544166666656FFFB5041EC51B8CEBDC25441000000E0FEFB5041333333D3C4C25441F6285C8FFEFB50410AD7A3A0C9C25441295C8F6202FC5041EC51B8EEC8C254415C8FC24504FC50413D0AD793CBC25441F6285CDF00FC5041D7A3703DCDC25441C3F528CC00FC504152B81E95CFC254410AD7A30011FC504133333363D1C25441333333C315FC5041713D0AB7D5C254415C8FC2651BFC5041D7A370BDCEC254418FC2F5082BFC504185EB5188D6C254417B14AE7737FC50415C8FC2C5C9C25441A4703DFA3EFC5041C3F5281CCCC25441EC51B88E41FC504166666616C8C254411F85EBE13EFC5041333333C3C1C254418FC2F59841FC504133333313BBC25441AE47E11A45FC5041CDCCCC6CBAC25441EC51B8CE48FC50413D0AD7E3B5C25441EC51B8CE48FC50411F85EBF1B2C25441
+</a>
+
+<b>
+010600000001000000010300000004000000370000008F16A4941BFC5041A02F79CFCEC254413CC5644C28FC50415437F64ECBC2544125FC5A8C31FC5041B0BE479FD0C25441F4D307ED32FC504160BDFC70CFC25441FC52E25532FC50414F652A79CDC254417A04D27337FC5041283460F2C8C25441A40C495B3DFC504156E404E2CCC25441712ACF093EFC5041AF5553D1CBC254412666668140FC5041140877F6C7C25441DFB70CC03DFC5041F130CA95C6C254418EB6C1913CFC5041D32BE90AC3C254412666668140FC50414BA1015EBBC25441706EDD6846FC5041C4C32844B5C254414E443F9B46FC50417B68C0EFB0C25441A77173C548FC50415F10EEF7AEC25441B14A6B544BFC504179BBB15CAFC2544164F947434FFC50417C6ECD63A8C25441FAA5D3A84FFC5041E630CAAFA7C254418F20CD864BFC504102899CA7A9C25441BB2DAC4142FC504128D87BEDAEC25441B886423939FC5041B9EA30B5B2C25441C54F4CF92FFC5041EE19B00DB6C25441B14A6B6E2CFC504145CF3588BDC25441799AC67E28FC50415220DCC6BAC25441B71C37442AFC50411DF15C6EB7C25441CEE5400421FC504105A0B62FBAC254410D68B1C922FC50417025BD51BEC25441D4B70CDA1EFC5041BA2D3439C4C254416F04D28D18FC5041B0543CAAC1C2544166D8E89117FC50410ECC9F2BBBC254416497BA200AFC5041A844FAA9BCC254413CC5646609FC50416E78AEBEBCC254414C7028CB09FC504156270880BFC254411D13754804FC5041AA8270D4C3C25441F88EB95401FC50416A53F17BC0C2544124924FB103FC50412A247223BDC25441A96D472D00FC50412F7F73B9BDC25441B28D6E2600FC504182A497BABDC25441B90C498FFFFB5041EF83BB02C5C254410268B1E303FC50412FB33A5BC8C2544149160BA506FC50417B68C0D5CFC254413B1856D307FC50417B68C0D5CFC254414E1D375E0BFC5041780EA3AFCCC2544145F14D620AFC5041FB09C224C9C25441C048205A0CFC50414A5EFEBFC8C25441DFFA0F7811FC50414C0B0D53CAC254411CD071AA11FC5041813A8CABCDC25441C3A23D800FFC5041C1690B04D1C25441EFA5D3DC11FC50417C15CF68D1C2544125FC5AA612FC5041C4C3282AD4C25441F2FFF00215FC5041DE6EEC8ED4C25441693206B81AFC5041AF11390CCFC25441D5159C451BFC504136513CE5CEC254414C00C18D1BFC50417BAC5ED1CEC254418F16A4941BFC5041A02F79CFCEC2544107000000FDFFF0E833FC5041737FDA77C1C254411E7D802332FC5041AEA72D17C0C25441E826F95931FC50417025BD51BEC254413AD5521B34FC50416E78AEBEBCC254418183ACDC36FC504133505B1FBEC254418183ACDC36FC5041A72853AEC0C25441FDFFF0E833FC5041737FDA77C1C25441060000008B5CA46B39FC5041AEA72D17C0C254419DDB7ED438FC50417025BD51BEC254419F888D673AFC50412A247223BDC25441DD0AFE2C3CFC5041557AF9ECBDC25441C35F3AC83BFC504171D2CBE4BFC254418B5CA46B39FC5041AEA72D17C0C254410500000087D8E87736FC5041C01BFB3BB7C254418B5CA46B39FC504109C57372B6C2544184DDC9023AFC5041251D466AB8C254418AAF95D837FC50412C1F9198B9C2544187D8E87736FC5041C01BFB3BB7C25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>636098 - 385784
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -1545 </desc>
+<a>
+01060000000100000001030000000100000021000000EC51B8CE48FC50411F85EBF1B2C2544114AE47514AFC50413D0AD7D3B0C25441000000204CFC50419A999919AEC25441CDCCCC5C50FC50417B14AE97A8C25441EC51B88E4DFC50411F85EB21A8C25441C3F5285C4CFC504152B81EF5A7C25441CDCCCC9C38FC504148E17A34B2C25441E17A149E20FC50411F85EBD1B9C254410AD7A37021FC5041C3F528DCBBC25441295C8FA21FFC504114AE47A1C1C2544152B81E451AFC50415C8FC2D5C0C254411F85EBE118FC5041333333E3BAC2544114AE47C10EFC504185EB5148BCC25441333333D30CFC50418FC2F578BCC2544166666656FFFB5041EC51B8CEBDC25441000000E0FEFB5041333333D3C4C25441F6285C8FFEFB50410AD7A3A0C9C25441295C8F6202FC5041EC51B8EEC8C254415C8FC24504FC50413D0AD793CBC25441F6285CDF00FC5041D7A3703DCDC25441C3F528CC00FC504152B81E95CFC254410AD7A30011FC504133333363D1C25441333333C315FC5041713D0AB7D5C254415C8FC2651BFC5041D7A370BDCEC254418FC2F5082BFC504185EB5188D6C254417B14AE7737FC50415C8FC2C5C9C25441A4703DFA3EFC5041C3F5281CCCC25441EC51B88E41FC504166666616C8C254411F85EBE13EFC5041333333C3C1C254418FC2F59841FC504133333313BBC25441AE47E11A45FC5041CDCCCC6CBAC25441EC51B8CE48FC50413D0AD7E3B5C25441EC51B8CE48FC50411F85EBF1B2C25441
+</a>
+
+<b>
+010600000001000000010300000004000000370000008F16A4941BFC5041A02F79CFCEC254413CC5644C28FC50415437F64ECBC2544125FC5A8C31FC5041B0BE479FD0C25441F4D307ED32FC504160BDFC70CFC25441FC52E25532FC50414F652A79CDC254417A04D27337FC5041283460F2C8C25441A40C495B3DFC504156E404E2CCC25441712ACF093EFC5041AF5553D1CBC254412666668140FC5041140877F6C7C25441DFB70CC03DFC5041F130CA95C6C254418EB6C1913CFC5041D32BE90AC3C254412666668140FC50414BA1015EBBC25441706EDD6846FC5041C4C32844B5C254414E443F9B46FC50417B68C0EFB0C25441A77173C548FC50415F10EEF7AEC25441B14A6B544BFC504179BBB15CAFC2544164F947434FFC50417C6ECD63A8C25441FAA5D3A84FFC5041E630CAAFA7C254418F20CD864BFC504102899CA7A9C25441BB2DAC4142FC504128D87BEDAEC25441B886423939FC5041B9EA30B5B2C25441C54F4CF92FFC5041EE19B00DB6C25441B14A6B6E2CFC504145CF3588BDC25441799AC67E28FC50415220DCC6BAC25441B71C37442AFC50411DF15C6EB7C25441CEE5400421FC504105A0B62FBAC254410D68B1C922FC50417025BD51BEC25441D4B70CDA1EFC5041BA2D3439C4C254416F04D28D18FC5041B0543CAAC1C2544166D8E89117FC50410ECC9F2BBBC254416497BA200AFC5041A844FAA9BCC254413CC5646609FC50416E78AEBEBCC254414C7028CB09FC504156270880BFC254411D13754804FC5041AA8270D4C3C25441F88EB95401FC50416A53F17BC0C2544124924FB103FC50412A247223BDC25441A96D472D00FC50412F7F73B9BDC25441B28D6E2600FC504182A497BABDC25441B90C498FFFFB5041EF83BB02C5C254410268B1E303FC50412FB33A5BC8C2544149160BA506FC50417B68C0D5CFC254413B1856D307FC50417B68C0D5CFC254414E1D375E0BFC5041780EA3AFCCC2544145F14D620AFC5041FB09C224C9C25441C048205A0CFC50414A5EFEBFC8C25441DFFA0F7811FC50414C0B0D53CAC254411CD071AA11FC5041813A8CABCDC25441C3A23D800FFC5041C1690B04D1C25441EFA5D3DC11FC50417C15CF68D1C2544125FC5AA612FC5041C4C3282AD4C25441F2FFF00215FC5041DE6EEC8ED4C25441693206B81AFC5041AF11390CCFC25441D5159C451BFC504136513CE5CEC254414C00C18D1BFC50417BAC5ED1CEC254418F16A4941BFC5041A02F79CFCEC2544107000000FDFFF0E833FC5041737FDA77C1C254411E7D802332FC5041AEA72D17C0C25441E826F95931FC50417025BD51BEC254413AD5521B34FC50416E78AEBEBCC254418183ACDC36FC504133505B1FBEC254418183ACDC36FC5041A72853AEC0C25441FDFFF0E833FC5041737FDA77C1C25441060000008B5CA46B39FC5041AEA72D17C0C254419DDB7ED438FC50417025BD51BEC254419F888D673AFC50412A247223BDC25441DD0AFE2C3CFC5041557AF9ECBDC25441C35F3AC83BFC504171D2CBE4BFC254418B5CA46B39FC5041AEA72D17C0C254410500000087D8E87736FC5041C01BFB3BB7C254418B5CA46B39FC504109C57372B6C2544184DDC9023AFC5041251D466AB8C254418AAF95D837FC50412C1F9198B9C2544187D8E87736FC5041C01BFB3BB7C25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>637636 - 243083
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2741 </desc>
+<a>
+0106000000030000000103000000010000000E0000000AD7A37012E850418FC2F5A8073355418FC2F50814E850410AD7A30005335541C3F5280C1AE85041B81E853BFA325541713D0A871FE85041C3F5289CEE3255411F85EB7124E8504133333363E4325541F6285C7F28E85041713D0AE7DB325541713D0A771FE8504133333363DC325541A4703D2A14E850410AD7A370DC32554114AE471106E850413D0AD763F63255415C8FC2A5FBE7504185EB5178083355413D0AD7D300E85041CDCCCC9C0D3355419A99991905E85041CDCCCC1C123355411F85EBE109E8504100000040173355410AD7A37012E850418FC2F5A8073355410103000000010000001700000014AE47F1D0E750411F85EB71CF325541713D0AC7D3E75041F6285C0FD03255411F85EBC1D9E7504100000080D132554148E17AA4DEE7504148E17A74D23255411F85EBA1E5E750417B14AE27D4325541CDCCCC0CECE7504100000090D532554133333303EEE75041333333A3D13255417B14AEA7E3E7504133333303C0325541C3F5288CD7E7504148E17AE4AD325541F6285C4FD6E75041EC51B84EB1325541B81E857BD5E75041E17A14EEB332554185EB51A8D4E75041C3F528ACB6325541AE47E1AAD3E7504114AE4781BA325541666666E6D2E75041CDCCCC4CBD3255418FC2F588D2E75041CDCCCC1CBF32554100000040D2E75041D7A370DDC032554114AE4701D2E750413D0AD753C23255413D0AD7A3D1E750413D0AD763C5325541F6285C4FD1E7504185EB5148C83255417B14AE27D1E750417B14AE17CA3255410AD7A310D1E75041713D0A37CC3255419A9999F9D0E750415C8FC215CE32554114AE47F1D0E750411F85EB71CF32554101030000000100000009000000713D0AF721E85041CDCCCC1C273355416666660624E85041CDCCCCAC26335541D7A3704D26E85041AE47E13A26335541EC51B87E38E85041666666A607335541EC51B80E35E85041713D0AE705335541AE47E19A31E85041713D0A0704335541E17A149E1CE8504152B81E4526335541E17A14CE20E85041EC51B85E27335541713D0AF721E85041CDCCCC1C27335541
+</a>
+
+<b>
+010600000001000000010300000001000000290000009A9999F9D0E750415C8FC215CE3255414E2208F6D0E750414C9913ABCE32554147C7F600D1E7504128855275CF325541713D0AC7D3E75041F6285C0FD0325541186C121ED6E750419AC69B9FD0325541C01ECD36DBE750416D9EE5C8D1325541237B91CFDBE75041151CF1D4D1325541F9006BECDBE75041AE0167ECD1325541D6F3E1ECDBE75041B7427EECD132554146CB23EDDBE75041E4218BECD13255412931B3EEDBE750419836D9ECD1325541BDBF4563D8E75041F54A7DDFCE3255412EBE4F2FD4E7504100EFE18BCA325541D09F6F71D3E750410CDFF612C832554107EB2432D3E75041BC74667AC53255419D18F54ED4E75041F5736B60C332554131CE3AA8D6E750415E469B43C2325541ED927060D9E7504178DD00DFC3325541A975A798EAE750416952613ED5325541CDCCCC0CECE7504100000090D532554133333303EEE75041333333A3D13255417B14AEA7E3E7504133333303C0325541C8E47B72DBE75041438E90BAB33255414D03D253DBE750419D7AAC8CB3325541DFDCD524DAE750415E833AC7B1325541784ED1E1D7E75041BBB0AC64AE325541B34745A5D7E750417E750F0AAE3255411977BE33D7E75041BBF078D8AE325541F6285C4FD6E75041EC51B84EB1325541B81E857BD5E75041E17A14EEB332554185EB51A8D4E75041C3F528ACB6325541AE47E1AAD3E7504114AE4781BA32554184BDB620D3E75041045B7078BC325541DA023F41D2E750415700C7D5C032554100000040D2E75041D7A370DDC032554114AE4701D2E750413D0AD753C23255413D0AD7A3D1E750413D0AD763C5325541F6285C4FD1E7504185EB5148C83255417B14AE27D1E750417B14AE17CA3255410AD7A310D1E75041713D0A37CC3255419A9999F9D0E750415C8FC215CE325541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>637636 - 354489
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2741 </desc>
+<a>
+0106000000030000000103000000010000000E0000000AD7A37012E850418FC2F5A8073355418FC2F50814E850410AD7A30005335541C3F5280C1AE85041B81E853BFA325541713D0A871FE85041C3F5289CEE3255411F85EB7124E8504133333363E4325541F6285C7F28E85041713D0AE7DB325541713D0A771FE8504133333363DC325541A4703D2A14E850410AD7A370DC32554114AE471106E850413D0AD763F63255415C8FC2A5FBE7504185EB5178083355413D0AD7D300E85041CDCCCC9C0D3355419A99991905E85041CDCCCC1C123355411F85EBE109E8504100000040173355410AD7A37012E850418FC2F5A8073355410103000000010000001700000014AE47F1D0E750411F85EB71CF325541713D0AC7D3E75041F6285C0FD03255411F85EBC1D9E7504100000080D132554148E17AA4DEE7504148E17A74D23255411F85EBA1E5E750417B14AE27D4325541CDCCCC0CECE7504100000090D532554133333303EEE75041333333A3D13255417B14AEA7E3E7504133333303C0325541C3F5288CD7E7504148E17AE4AD325541F6285C4FD6E75041EC51B84EB1325541B81E857BD5E75041E17A14EEB332554185EB51A8D4E75041C3F528ACB6325541AE47E1AAD3E7504114AE4781BA325541666666E6D2E75041CDCCCC4CBD3255418FC2F588D2E75041CDCCCC1CBF32554100000040D2E75041D7A370DDC032554114AE4701D2E750413D0AD753C23255413D0AD7A3D1E750413D0AD763C5325541F6285C4FD1E7504185EB5148C83255417B14AE27D1E750417B14AE17CA3255410AD7A310D1E75041713D0A37CC3255419A9999F9D0E750415C8FC215CE32554114AE47F1D0E750411F85EB71CF32554101030000000100000009000000713D0AF721E85041CDCCCC1C273355416666660624E85041CDCCCCAC26335541D7A3704D26E85041AE47E13A26335541EC51B87E38E85041666666A607335541EC51B80E35E85041713D0AE705335541AE47E19A31E85041713D0A0704335541E17A149E1CE8504152B81E4526335541E17A14CE20E85041EC51B85E27335541713D0AF721E85041CDCCCC1C27335541
+</a>
+
+<b>
+010600000001000000010300000001000000290000009A9999F9D0E750415C8FC215CE3255414E2208F6D0E750414C9913ABCE32554147C7F600D1E7504128855275CF325541713D0AC7D3E75041F6285C0FD0325541186C121ED6E750419AC69B9FD0325541C01ECD36DBE750416D9EE5C8D1325541237B91CFDBE75041151CF1D4D1325541F9006BECDBE75041AE0167ECD1325541D6F3E1ECDBE75041B7427EECD132554146CB23EDDBE75041E4218BECD13255412931B3EEDBE750419836D9ECD1325541BDBF4563D8E75041F54A7DDFCE3255412EBE4F2FD4E7504100EFE18BCA325541D09F6F71D3E750410CDFF612C832554107EB2432D3E75041BC74667AC53255419D18F54ED4E75041F5736B60C332554131CE3AA8D6E750415E469B43C2325541ED927060D9E7504178DD00DFC3325541A975A798EAE750416952613ED5325541CDCCCC0CECE7504100000090D532554133333303EEE75041333333A3D13255417B14AEA7E3E7504133333303C0325541C8E47B72DBE75041438E90BAB33255414D03D253DBE750419D7AAC8CB3325541DFDCD524DAE750415E833AC7B1325541784ED1E1D7E75041BBB0AC64AE325541B34745A5D7E750417E750F0AAE3255411977BE33D7E75041BBF078D8AE325541F6285C4FD6E75041EC51B84EB1325541B81E857BD5E75041E17A14EEB332554185EB51A8D4E75041C3F528ACB6325541AE47E1AAD3E7504114AE4781BA32554184BDB620D3E75041045B7078BC325541DA023F41D2E750415700C7D5C032554100000040D2E75041D7A370DDC032554114AE4701D2E750413D0AD753C23255413D0AD7A3D1E750413D0AD763C5325541F6285C4FD1E7504185EB5148C83255417B14AE27D1E750417B14AE17CA3255410AD7A310D1E75041713D0A37CC3255419A9999F9D0E750415C8FC215CE325541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>140201 - 1229875
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2369 </desc>
+<a>
+010600000001000000010300000001000000220000005C8FC2B5797D51413D0AD70328B854417B14AEA77F7D51415C8FC2F522B85441CDCCCC7C8A7D51410AD7A3A034B85441E17A142E907D5141B81E856B2EB8544114AE4731947D5141CDCCCC6C2AB8544100000000977D5141CDCCCCBC27B8544185EB5128947D514148E17AF423B85441E17A14AE907D5141E17A143E1FB85441A4703D9A8F7D514114AE47C11DB8544114AE47518D7D5141713D0A971AB85441713D0A978A7D5141A4703DAA16B85441E17A143E897D51413D0AD79315B854415C8FC245877D51417B14AE8710B85441F6285CDF847D514152B81E250DB8544114AE4761847D5141000000600AB85441AE47E1EA817D51410000004006B854417B14AE27807D5141295C8F7202B85441CDCCCC5C7D7D5141713D0A8700B85441F6285C9F747D51418FC2F5F8FFB75441E17A14CE687D514114AE47D1FDB754410AD7A320647D51413D0AD723F9B7544113A6F73D617D5141DFD7028DF3B754418D8B87965E7D5141D6A7F9F1E6B75441B82B59D9547D51415E76A252FAB754411E6E0BA6517D5141B2C050B900B85441B5215DE04E7D5141ACBDF99407B85441000000605C7D51411F85EB0113B854410AD7A3905E7D51413D0AD7A315B8544166666666647D514152B81EA51CB85441713D0A476A7D5141333333B323B85441E17A142E707D51419A9999C92AB854410AD7A3C0707D51418FC2F5782BB85441C3F5288C727D51419A9999192EB854415C8FC2B5797D51413D0AD70328B85441
+</a>
+
+<b>
+010600000001000000010300000001000000230000005C8FC2B5797D51413D0AD70328B854417B14AEA77F7D51415C8FC2F522B85441CDCCCC7C8A7D51410AD7A3A034B85441E17A142E907D5141B81E856B2EB8544114AE4731947D5141CDCCCC6C2AB8544100000000977D5141CDCCCCBC27B8544185EB5128947D514148E17AF423B85441E17A14AE907D5141E17A143E1FB85441A4703D9A8F7D514114AE47C11DB8544114AE47518D7D5141713D0A971AB85441713D0A978A7D5141A4703DAA16B85441E17A143E897D51413D0AD79315B854415C8FC245877D51417B14AE8710B85441F6285CDF847D514152B81E250DB8544114AE4761847D5141000000600AB85441AE47E1EA817D51410000004006B854417B14AE27807D5141295C8F7202B85441CDCCCC5C7D7D5141713D0A8700B85441F6285C9F747D51418FC2F5F8FFB75441E17A14CE687D514114AE47D1FDB754410AD7A320647D51413D0AD723F9B7544114A6F73D617D5141E1D7028DF3B754410F498819607D51416B471220EEB75441D60461855C7D514106E4491AF5B754418E42E110597D5141E227CAD6FBB754419ED576BC557D51419FF2BC5402B85441F71F3CC9517D514131FC52080AB85441000000605C7D51411F85EB0113B854410AD7A3905E7D51413D0AD7A315B8544166666666647D514152B81EA51CB85441713D0A476A7D5141333333B323B85441E17A142E707D51419A9999C92AB854410AD7A3C0707D51418FC2F5782BB85441C3F5288C727D51419A9999192EB854415C8FC2B5797D51413D0AD70328B85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>140201 - 3687912
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -2369 </desc>
+<a>
+010600000001000000010300000001000000220000005C8FC2B5797D51413D0AD70328B854417B14AEA77F7D51415C8FC2F522B85441CDCCCC7C8A7D51410AD7A3A034B85441E17A142E907D5141B81E856B2EB8544114AE4731947D5141CDCCCC6C2AB8544100000000977D5141CDCCCCBC27B8544185EB5128947D514148E17AF423B85441E17A14AE907D5141E17A143E1FB85441A4703D9A8F7D514114AE47C11DB8544114AE47518D7D5141713D0A971AB85441713D0A978A7D5141A4703DAA16B85441E17A143E897D51413D0AD79315B854415C8FC245877D51417B14AE8710B85441F6285CDF847D514152B81E250DB8544114AE4761847D5141000000600AB85441AE47E1EA817D51410000004006B854417B14AE27807D5141295C8F7202B85441CDCCCC5C7D7D5141713D0A8700B85441F6285C9F747D51418FC2F5F8FFB75441E17A14CE687D514114AE47D1FDB754410AD7A320647D51413D0AD723F9B7544113A6F73D617D5141DFD7028DF3B754418D8B87965E7D5141D6A7F9F1E6B75441B82B59D9547D51415E76A252FAB754411E6E0BA6517D5141B2C050B900B85441B5215DE04E7D5141ACBDF99407B85441000000605C7D51411F85EB0113B854410AD7A3905E7D51413D0AD7A315B8544166666666647D514152B81EA51CB85441713D0A476A7D5141333333B323B85441E17A142E707D51419A9999C92AB854410AD7A3C0707D51418FC2F5782BB85441C3F5288C727D51419A9999192EB854415C8FC2B5797D51413D0AD70328B85441
+</a>
+
+<b>
+010600000001000000010300000001000000230000005C8FC2B5797D51413D0AD70328B854417B14AEA77F7D51415C8FC2F522B85441CDCCCC7C8A7D51410AD7A3A034B85441E17A142E907D5141B81E856B2EB8544114AE4731947D5141CDCCCC6C2AB8544100000000977D5141CDCCCCBC27B8544185EB5128947D514148E17AF423B85441E17A14AE907D5141E17A143E1FB85441A4703D9A8F7D514114AE47C11DB8544114AE47518D7D5141713D0A971AB85441713D0A978A7D5141A4703DAA16B85441E17A143E897D51413D0AD79315B854415C8FC245877D51417B14AE8710B85441F6285CDF847D514152B81E250DB8544114AE4761847D5141000000600AB85441AE47E1EA817D51410000004006B854417B14AE27807D5141295C8F7202B85441CDCCCC5C7D7D5141713D0A8700B85441F6285C9F747D51418FC2F5F8FFB75441E17A14CE687D514114AE47D1FDB754410AD7A320647D51413D0AD723F9B7544114A6F73D617D5141E1D7028DF3B754410F498819607D51416B471220EEB75441D60461855C7D514106E4491AF5B754418E42E110597D5141E227CAD6FBB754419ED576BC557D51419FF2BC5402B85441F71F3CC9517D514131FC52080AB85441000000605C7D51411F85EB0113B854410AD7A3905E7D51413D0AD7A315B8544166666666647D514152B81EA51CB85441713D0A476A7D5141333333B323B85441E17A142E707D51419A9999C92AB854410AD7A3C0707D51418FC2F5782BB85441C3F5288C727D51419A9999192EB854415C8FC2B5797D51413D0AD70328B85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>663132 - 57751
+abs( area(A) - difference(A,B) - areatest(A,B) ) = -7272 </desc>
+<a>
+01060000000100000001030000000100000018000000F6285CEF8EA750416666668628085541B81E856B8CA750410000008029085541F6285CFF85A750410AD7A3F02B085541295C8FE284A75041D7A3705D2C085541295C8FE27EA75041AE47E12A30085541713D0A3779A750419A999929340855416666660675A750416666661638085541295C8FF266A750411F85EB4146085541666666766FA75041AE47E10A50085541CDCCCC6C70A750415C8FC22551085541C3F528EC71A75041E17A14DE52085541F6285CFF76A75041333333C358085541B81E855B85A750413D0AD74352085541295C8F9285A750419A999969510855419A99990986A75041D7A3709D4F0855417B14AEF789A7504185EB510840085541D7A3706D87A750410AD7A3203C085541713D0A3788A7504185EB51783B0855415C8FC2F58BA750411F85EBF13A08554148E17A148FA7504185EB51283B0855419A99993995A75041A4703D9A3B08554114AE47219DA7504114AE47913B0855411F85EB7199A7504152B81EC524085541F6285CEF8EA750416666668628085541
+</a>
+
+<b>
+010600000002000000010300000001000000180000003182170B8CA75041A9755FF33A085541A8737EE78CA7504146B5E5E63A085541D48F82CC8EA750413FD6B20D3B085541EDBEF0B88CA75041DFE7B1142A08554180D44EA184A7504142E81A2C2D085541E3CB03FE7BA750417CF0FCB73208554125535FCF79A75041F3BB23153408554115D6D66F67A750412B69E2D14608554103CC7C6B69A75041126A3F1949085541076785456AA750417DFCCC134A085541CB0B2D626AA7504108BBBA344A0855415DEFE5C06BA7504114E8C2C74B0855418C09BAAD6DA75041043418FE4D0855413F3B8B5A6FA75041E3C6E4444F085541E9E8714373A750413455E75B490855411F2D3DCF76A75041E781478A450855413DE233157AA750419AAEA7B84108554158351F5B7CA75041F3C4D7CF3F0855411910CF897FA75041646ADC2C3E085541C61FC17284A7504160A6C52C3C085541583ED31588A750415E44BA2C3B0855411963EED58BA7504188C961F63A0855415C8FC2F58BA750411F85EBF13A0855413182170B8CA75041A9755FF33A08554101030000000100000004000000778430CF8EA7504140C799233B085541C4C6692D8FA75041016A73153B085541D48F82CC8EA750413FD6B20D3B085541778430CF8EA7504140C799233B085541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>541084 - 2178982
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -11 </desc>
+<a>
+010600000001000000010300000001000000BD0000001F85EBC13B6451411F85EB21153F544185EB51583B6451410AD7A3F0133F544114AE47A13B645141E17A14EE123F5441EC51B85E3C645141CDCCCC5C123F544114AE47813D64514114AE47F10E3F5441B81E85EB3D6451418FC2F5180E3F5441666666463F6451410AD7A3E0093F5441295C8F323F645141D7A3705D083F5441666666663E6451411F85EBB1063F54419A9999493D6451419A9999A9053F54410AD7A3603B6451411F85EB11043F54419A9999A93A64514152B81EF5023F544152B81EB5396451411F85EB71013F5441E17A14DE39645141D7A3709DFF3E5441E17A14DE3964514166666626FD3E5441F6285C4F39645141D7A3703DFB3E5441AE47E15A38645141D7A3707DF93E544152B81EF5376451411F85EBD1F73E54410AD7A3E0376451417B14AE97F53E544114AE47D137645141A4703DFAF23E544100000080376451418FC2F578F03E5441666666663764514133333383EE3E54419A9999293764514100000000ED3E544166666686366451415C8FC2A5EB3E5441AE47E1BA35645141D7A370BDE93E5441E17A149E34645141C3F5288CE83E5441AE47E11A336451411F85EB31E73E54413D0AD7C33164514152B81E25E63E5441C3F528AC2F645141F6285C5FE63E544148E17A942E6451413D0AD753E73E5441295C8F422C645141A4703D9AE93E5441F6285C3F2A645141AE47E15AEB3E5441A4703DCA2964514152B81E15EB3E544148E17A5428645141713D0A37EA3E5441CDCCCC4C25645141333333A3E73E5441295C8FA2226451418FC2F578E53E544100000040206451418FC2F508E43E544152B81EB51D645141AE47E16AE23E54411F85EB411964514152B81EC5DF3E5441D7A3707D13645141F6285CDFDC3E54410AD7A3500F645141D7A3701DDB3E54411F85EBE1056451410AD7A340D73E544152B81E15016451413D0AD7F3D53E5441713D0A67FE635141295C8F82D43E544166666606FB63514133333323D33E5441EC51B82EF8635141713D0A97D13E544114AE4711F7635141B81E851BD13E544133333363F363514185EB5128DD3E544100000010F2635141F6285CEFE13E544148E17A34EE6351417B14AEC7EB3E5441AE47E1BAE963514148E17A64E93E54417B14AEA7E763514185EB5188E83E544100000070E5635141EC51B8CEE73E5441AE47E15AE363514185EB5138E73E544152B81EC5E16351415C8FC295E63E54418FC2F5F8D86351418FC2F5C8E23E5441713D0AD7D563514133333363E13E5441AE47E1FAD1635141AE47E18ADF3E5441AE47E16AC7635141E17A141EF43E544114AE4791D463514114AE4711FB3E5441F6285CAFD563514185EB51A8FB3E5441A4703D1AD46351413D0AD783FE3E5441E17A148ED26351413D0AD753013F5441333333D3CF635141B81E85DB063F5441F6285CAFCE635141AE47E14A0C3F544100000030CE635141CDCCCC6C103F5441A4703D8ACD6351417B14AE97163F5441CDCCCCBCCC635141E17A143E1E3F54419A999939CC6351413D0AD713213F544185EB5128CD635141D7A3707D233F5441295C8FD2CC635141000000C0253F5441295C8FD2CC635141333333E3273F5441295C8FF2CC63514100000090293F54418FC2F5A8CD6351417B14AE472B3F5441AE47E10ACF635141A4703D2A2D3F54417B14AE97D0635141C3F528EC2E3F54417B14AED7D66351415C8FC255333F54410AD7A340D86351410AD7A330343F54418FC2F5D8DD6351415C8FC2F5373F54415C8FC255D7635141D7A3701D443F54418FC2F5A8CF6351410AD7A3204E3F5441E17A145EC8635141333333435D3F5441B81E850BC1635141AE47E1CA703F5441000000C0C06351413D0AD793713F54410AD7A3E0BE635141295C8F62763F5441EC51B8BEBD6351410AD7A350793F5441000000E0B86351418FC2F5687C3F5441713D0AE7B56351419A9999B97D3F54419A999939B463514148E17AF4803F54418FC2F598B2635141C3F5288C833F5441000000D0B1635141B81E855B853F54413D0AD763B1635141E17A147E883F54418FC2F5E8B06351411F85EB918B3F544133333383B0635141666666268F3F544185EB51F8B063514133333303943F544114AE47B1B163514100000010963F54413D0AD723B3635141AE47E14A983F5441EC51B8AEB363514152B81EA59A3F54410AD7A380B3635141666666369C3F5441713D0AD7CA63514114AE47B1AF3F5441D7A370FDD06351417B14AE27A83F5441CDCCCCDCDB635141666666769B3F5441E17A143EDC6351418FC2F5289A3F5441A4703DEADB635141B81E85DB983F5441EC51B85ED16351413D0AD7B3893F5441713D0A57DC635141F6285CFF7C3F54418FC2F5C8DC6351413D0AD7937C3F544100000020EF635141D7A3706D673F5441AE47E18AFA635141713D0A875A3F5441666666F6F9635141713D0A47553F5441333333A3FF635141B81E85FB4D3F5441295C8F9202645141EC51B85E4F3F5441713D0A17076451417B14AED7513F5441B81E856B0D645141D7A3703D553F544148E17AC4176451419A9999B95B3F54413D0AD7931864514148E17A745B3F5441C3F5283C196451419A999919593F54417B14AE971C645141295C8FC2503F5441F6285CDF1E645141295C8F824B3F5441D7A3701D2264514166666606453F54413D0AD78326645141B81E859B3C3F5441000000A0266451419A9999693B3F544152B81EB5256451417B14AE273A3F5441F6285C1F246451410AD7A3F0383F5441F6285CAF20645141295C8F02373F54413D0AD7B31A64514100000000343F5441AE47E13A186451413D0AD743333F5441C3F5284C1564514100000030333F5441A4703DFA116451411F85EBB1343F544148E17A940E6451411F85EB51373F5441C3F528FC0964514185EB51683A3F544114AE47D104645141295C8F42413F54415C8FC245FE635141713D0A174D3F544152B81E85FE6351413D0AD7D34D3F5441AE47E17AFE6351415C8FC2054F3F5441E17A14EEFD6351419A9999D94F3F5441E17A143EFC635141EC51B80E523F5441CDCCCCECF9635141666666C6543F54419A999909F96351415C8FC215553F54418FC2F538F763514114AE4701543F54418FC2F598F4635141A4703D3A523F54410AD7A370F36351415C8FC275523F544133333383F2635141295C8FE2523F544148E17A64F1635141E17A149E533F5441CDCCCCBCF0635141C3F5283C543F5441C3F5283CF06351415C8FC2C5533F5441713D0A47F1635141295C8FE2523F54415C8FC265F26351418FC2F508523F5441A4703D7AF36351419A999939513F544185EB51C8F26351411F85EB11513F5441A4703DCAEA6351419A9999C94D3F544133333393EE6351415C8FC285443F54413D0AD733F26351415C8FC285443F54410AD7A3F0F3635141CDCCCC3C403F5441C3F5287CF56351417B14AE573D3F5441D7A370FDF6635141C3F5287C3A3F54413D0AD743F8635141333333D3383F54413D0AD793F9635141713D0A97373F5441B81E850BFB6351417B14AE47373F544148E17A54FF635141F6285C0F303F544152B81EA501645141E17A142E313F5441CDCCCC1C0364514152B81E752D3F544185EB519803645141333333B32D3F54410AD7A3C0026451417B14AEA7303F54419A999939056451413D0AD713313F5441C3F528DC0B6451411F85EB01333F5441B81E858B07645141EC51B8FE383F54413D0AD7530964514152B81E95393F5441C3F5281C0A6451419A999919393F54419A9999290C64514152B81ED5373F544148E17A640E64514152B81E25363F544152B81E7511645141CDCCCC0C343F544152B81EF5126451417B14AE17333F5441CDCCCC8C1464514152B81E75323F544152B81E251664514133333323323F544152B81EA51764514133333323323F54418FC2F5C819645141AE47E1BA323F54411F85EBF11C6451410AD7A310343F54418FC2F5582664514114AE4731393F544114AE479127645141C3F5287C393F5441CDCCCC4C2D645141D7A3703D313F5441F6285C4F346451410AD7A310273F5441333333A3386451415C8FC2B5213F5441EC51B82E3B6451419A9999791E3F5441EC51B80E3A64514185EB51981C3F54411F85EBC1396451415C8FC2751B3F544114AE47113A64514148E17A241A3F544185EB51A83A6451413D0AD723193F54411F85EBC13B6451411F85EB21153F5441
+</a>
+
+<b>
+0106000000010000000103000000040000003F00000085EB5188C8635141333333C3E63F5441666666F6CB635141713D0AA7E83F5441CDCCCC8CCF635141EC51B88EE53F54410AD7A320D363514114AE47D1E23F5441E17A141EDF635141713D0A07DA3F54419A999929E3635141D7A370CDD63F544114AE4781E6635141E17A14CED33F5441A4703DAAE96351415C8FC2C5D03F54413D0AD7E3EC6351417B14AE67CD3F544100000080EF6351417B14AE27CA3F54415C8FC225F263514152B81E35C63F54418FC2F598F4635141B81E85FBC13F544148E17A74F663514148E17AE4BD3F544133333313F86351415C8FC2B5B93F5441E17A145EF963514133333363B53F544166666626FA6351417B14AE07B13F54417B14AE87FA635141666666E6AD3F5441CDCCCCACFA635141333333B3AC3F54418FC2F518FB635141C3F528DCA43F544100000070FB635141EC51B8FE9C3F5441D7A370FDFB63514100000040983F5441D7A370EDFC6351419A9999C9933F54415C8FC255FE6351413D0AD7638F3F544114AE47C1FF635141D7A3705D8B3F544183B0B2EF00645141892061CB883F5441726C994D02645141CF32EF3C863F5441C9F6A0FF05645141CBC50FDC7F3F544113A61C9E0B6451415C218298763F5441531AF0900F645141069551FD6F3F54412E2930BE1164514100C10DF76B3F54413D0AD713126451419A9999196B3F5441AE47E18AFA635141713D0A875A3F54411E39298FF863514151FAAEC45C3F544167C661D5E86351410B08D5AE6E3F5441DB51ABFFDC6351411997BF547C3F5441EC51B85ED16351413D0AD7B3893F5441E17A14EEDC63514148E17A449A3F544184929BDFD6635141F53C6349A13F5441BE7CD05FD263514118D286ACA63F54415D3C4D18CF6351419B7821AFAA3F5441B00D3E1CCA635141C04571A9B03F54418A9FCC5CC663514177AAFD0BB53F5441EC51B83EC3635141A4703D0AB83F544185EB5188BA635141E17A141EC03F54418FC2F5D8B2635141E17A143EC73F5441AE47E13AB3635141F6285CBFC73F54413D0AD743B2635141000000C0C83F5441AE47E12AB563514166666626CB3F54418FC2F5F8B7635141A4703DBACD3F5441B81E850BB9635141C3F5280CCF3F5441A4703DCAB9635141A4703D6AD03F54415C8FC265BA635141713D0AC7D13F5441D7A370FDBA63514100000020D33F54417B14AE87BB63514185EB5148D53F54413D0AD703BC635141EC51B87ED73F54418FC2F548BC63514166666676DA3F5441EC51B8EEBC6351411F85EB51DD3F544148E17A94BD635141713D0AF7DF3F54411F85EBD1BE635141CDCCCC5CE33F54418FC2F538C063514152B81EB5E63F5441AE47E18AC263514152B81ED5EB3F544185EB5158C76351418FC2F568E73F544185EB5188C8635141333333C3E63F54410500000014AE4711F7635141713D0A47A93F54415C8FC2E5F7635141E17A14CEA83F5441C3F5289CF86351411F85EB11AA3F544114AE47D1F7635141AE47E18AAA3F544114AE4711F7635141713D0A47A93F544105000000295C8F12E96351418FC2F538853F5441EC51B89EE8635141666666C6833F5441F6285CBFE9635141C3F5286C833F54413D0AD733EA635141F6285CDF843F5441295C8F12E96351418FC2F538853F54410500000000000020FC63514152B81E758C3F5441713D0A87FC635141C3F528BC8B3F5441CDCCCC3CFD63514148E17A248C3F5441713D0AD7FC635141AE47E1DA8C3F544100000020FC63514152B81E758C3F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>541084 - 3541974
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -11 </desc>
+<a>
+010600000001000000010300000001000000BD0000001F85EBC13B6451411F85EB21153F544185EB51583B6451410AD7A3F0133F544114AE47A13B645141E17A14EE123F5441EC51B85E3C645141CDCCCC5C123F544114AE47813D64514114AE47F10E3F5441B81E85EB3D6451418FC2F5180E3F5441666666463F6451410AD7A3E0093F5441295C8F323F645141D7A3705D083F5441666666663E6451411F85EBB1063F54419A9999493D6451419A9999A9053F54410AD7A3603B6451411F85EB11043F54419A9999A93A64514152B81EF5023F544152B81EB5396451411F85EB71013F5441E17A14DE39645141D7A3709DFF3E5441E17A14DE3964514166666626FD3E5441F6285C4F39645141D7A3703DFB3E5441AE47E15A38645141D7A3707DF93E544152B81EF5376451411F85EBD1F73E54410AD7A3E0376451417B14AE97F53E544114AE47D137645141A4703DFAF23E544100000080376451418FC2F578F03E5441666666663764514133333383EE3E54419A9999293764514100000000ED3E544166666686366451415C8FC2A5EB3E5441AE47E1BA35645141D7A370BDE93E5441E17A149E34645141C3F5288CE83E5441AE47E11A336451411F85EB31E73E54413D0AD7C33164514152B81E25E63E5441C3F528AC2F645141F6285C5FE63E544148E17A942E6451413D0AD753E73E5441295C8F422C645141A4703D9AE93E5441F6285C3F2A645141AE47E15AEB3E5441A4703DCA2964514152B81E15EB3E544148E17A5428645141713D0A37EA3E5441CDCCCC4C25645141333333A3E73E5441295C8FA2226451418FC2F578E53E544100000040206451418FC2F508E43E544152B81EB51D645141AE47E16AE23E54411F85EB411964514152B81EC5DF3E5441D7A3707D13645141F6285CDFDC3E54410AD7A3500F645141D7A3701DDB3E54411F85EBE1056451410AD7A340D73E544152B81E15016451413D0AD7F3D53E5441713D0A67FE635141295C8F82D43E544166666606FB63514133333323D33E5441EC51B82EF8635141713D0A97D13E544114AE4711F7635141B81E851BD13E544133333363F363514185EB5128DD3E544100000010F2635141F6285CEFE13E544148E17A34EE6351417B14AEC7EB3E5441AE47E1BAE963514148E17A64E93E54417B14AEA7E763514185EB5188E83E544100000070E5635141EC51B8CEE73E5441AE47E15AE363514185EB5138E73E544152B81EC5E16351415C8FC295E63E54418FC2F5F8D86351418FC2F5C8E23E5441713D0AD7D563514133333363E13E5441AE47E1FAD1635141AE47E18ADF3E5441AE47E16AC7635141E17A141EF43E544114AE4791D463514114AE4711FB3E5441F6285CAFD563514185EB51A8FB3E5441A4703D1AD46351413D0AD783FE3E5441E17A148ED26351413D0AD753013F5441333333D3CF635141B81E85DB063F5441F6285CAFCE635141AE47E14A0C3F544100000030CE635141CDCCCC6C103F5441A4703D8ACD6351417B14AE97163F5441CDCCCCBCCC635141E17A143E1E3F54419A999939CC6351413D0AD713213F544185EB5128CD635141D7A3707D233F5441295C8FD2CC635141000000C0253F5441295C8FD2CC635141333333E3273F5441295C8FF2CC63514100000090293F54418FC2F5A8CD6351417B14AE472B3F5441AE47E10ACF635141A4703D2A2D3F54417B14AE97D0635141C3F528EC2E3F54417B14AED7D66351415C8FC255333F54410AD7A340D86351410AD7A330343F54418FC2F5D8DD6351415C8FC2F5373F54415C8FC255D7635141D7A3701D443F54418FC2F5A8CF6351410AD7A3204E3F5441E17A145EC8635141333333435D3F5441B81E850BC1635141AE47E1CA703F5441000000C0C06351413D0AD793713F54410AD7A3E0BE635141295C8F62763F5441EC51B8BEBD6351410AD7A350793F5441000000E0B86351418FC2F5687C3F5441713D0AE7B56351419A9999B97D3F54419A999939B463514148E17AF4803F54418FC2F598B2635141C3F5288C833F5441000000D0B1635141B81E855B853F54413D0AD763B1635141E17A147E883F54418FC2F5E8B06351411F85EB918B3F544133333383B0635141666666268F3F544185EB51F8B063514133333303943F544114AE47B1B163514100000010963F54413D0AD723B3635141AE47E14A983F5441EC51B8AEB363514152B81EA59A3F54410AD7A380B3635141666666369C3F5441713D0AD7CA63514114AE47B1AF3F5441D7A370FDD06351417B14AE27A83F5441CDCCCCDCDB635141666666769B3F5441E17A143EDC6351418FC2F5289A3F5441A4703DEADB635141B81E85DB983F5441EC51B85ED16351413D0AD7B3893F5441713D0A57DC635141F6285CFF7C3F54418FC2F5C8DC6351413D0AD7937C3F544100000020EF635141D7A3706D673F5441AE47E18AFA635141713D0A875A3F5441666666F6F9635141713D0A47553F5441333333A3FF635141B81E85FB4D3F5441295C8F9202645141EC51B85E4F3F5441713D0A17076451417B14AED7513F5441B81E856B0D645141D7A3703D553F544148E17AC4176451419A9999B95B3F54413D0AD7931864514148E17A745B3F5441C3F5283C196451419A999919593F54417B14AE971C645141295C8FC2503F5441F6285CDF1E645141295C8F824B3F5441D7A3701D2264514166666606453F54413D0AD78326645141B81E859B3C3F5441000000A0266451419A9999693B3F544152B81EB5256451417B14AE273A3F5441F6285C1F246451410AD7A3F0383F5441F6285CAF20645141295C8F02373F54413D0AD7B31A64514100000000343F5441AE47E13A186451413D0AD743333F5441C3F5284C1564514100000030333F5441A4703DFA116451411F85EBB1343F544148E17A940E6451411F85EB51373F5441C3F528FC0964514185EB51683A3F544114AE47D104645141295C8F42413F54415C8FC245FE635141713D0A174D3F544152B81E85FE6351413D0AD7D34D3F5441AE47E17AFE6351415C8FC2054F3F5441E17A14EEFD6351419A9999D94F3F5441E17A143EFC635141EC51B80E523F5441CDCCCCECF9635141666666C6543F54419A999909F96351415C8FC215553F54418FC2F538F763514114AE4701543F54418FC2F598F4635141A4703D3A523F54410AD7A370F36351415C8FC275523F544133333383F2635141295C8FE2523F544148E17A64F1635141E17A149E533F5441CDCCCCBCF0635141C3F5283C543F5441C3F5283CF06351415C8FC2C5533F5441713D0A47F1635141295C8FE2523F54415C8FC265F26351418FC2F508523F5441A4703D7AF36351419A999939513F544185EB51C8F26351411F85EB11513F5441A4703DCAEA6351419A9999C94D3F544133333393EE6351415C8FC285443F54413D0AD733F26351415C8FC285443F54410AD7A3F0F3635141CDCCCC3C403F5441C3F5287CF56351417B14AE573D3F5441D7A370FDF6635141C3F5287C3A3F54413D0AD743F8635141333333D3383F54413D0AD793F9635141713D0A97373F5441B81E850BFB6351417B14AE47373F544148E17A54FF635141F6285C0F303F544152B81EA501645141E17A142E313F5441CDCCCC1C0364514152B81E752D3F544185EB519803645141333333B32D3F54410AD7A3C0026451417B14AEA7303F54419A999939056451413D0AD713313F5441C3F528DC0B6451411F85EB01333F5441B81E858B07645141EC51B8FE383F54413D0AD7530964514152B81E95393F5441C3F5281C0A6451419A999919393F54419A9999290C64514152B81ED5373F544148E17A640E64514152B81E25363F544152B81E7511645141CDCCCC0C343F544152B81EF5126451417B14AE17333F5441CDCCCC8C1464514152B81E75323F544152B81E251664514133333323323F544152B81EA51764514133333323323F54418FC2F5C819645141AE47E1BA323F54411F85EBF11C6451410AD7A310343F54418FC2F5582664514114AE4731393F544114AE479127645141C3F5287C393F5441CDCCCC4C2D645141D7A3703D313F5441F6285C4F346451410AD7A310273F5441333333A3386451415C8FC2B5213F5441EC51B82E3B6451419A9999791E3F5441EC51B80E3A64514185EB51981C3F54411F85EBC1396451415C8FC2751B3F544114AE47113A64514148E17A241A3F544185EB51A83A6451413D0AD723193F54411F85EBC13B6451411F85EB21153F5441
+</a>
+
+<b>
+0106000000010000000103000000040000003F00000085EB5188C8635141333333C3E63F5441666666F6CB635141713D0AA7E83F5441CDCCCC8CCF635141EC51B88EE53F54410AD7A320D363514114AE47D1E23F5441E17A141EDF635141713D0A07DA3F54419A999929E3635141D7A370CDD63F544114AE4781E6635141E17A14CED33F5441A4703DAAE96351415C8FC2C5D03F54413D0AD7E3EC6351417B14AE67CD3F544100000080EF6351417B14AE27CA3F54415C8FC225F263514152B81E35C63F54418FC2F598F4635141B81E85FBC13F544148E17A74F663514148E17AE4BD3F544133333313F86351415C8FC2B5B93F5441E17A145EF963514133333363B53F544166666626FA6351417B14AE07B13F54417B14AE87FA635141666666E6AD3F5441CDCCCCACFA635141333333B3AC3F54418FC2F518FB635141C3F528DCA43F544100000070FB635141EC51B8FE9C3F5441D7A370FDFB63514100000040983F5441D7A370EDFC6351419A9999C9933F54415C8FC255FE6351413D0AD7638F3F544114AE47C1FF635141D7A3705D8B3F544183B0B2EF00645141892061CB883F5441726C994D02645141CF32EF3C863F5441C9F6A0FF05645141CBC50FDC7F3F544113A61C9E0B6451415C218298763F5441531AF0900F645141069551FD6F3F54412E2930BE1164514100C10DF76B3F54413D0AD713126451419A9999196B3F5441AE47E18AFA635141713D0A875A3F54411E39298FF863514151FAAEC45C3F544167C661D5E86351410B08D5AE6E3F5441DB51ABFFDC6351411997BF547C3F5441EC51B85ED16351413D0AD7B3893F5441E17A14EEDC63514148E17A449A3F544184929BDFD6635141F53C6349A13F5441BE7CD05FD263514118D286ACA63F54415D3C4D18CF6351419B7821AFAA3F5441B00D3E1CCA635141C04571A9B03F54418A9FCC5CC663514177AAFD0BB53F5441EC51B83EC3635141A4703D0AB83F544185EB5188BA635141E17A141EC03F54418FC2F5D8B2635141E17A143EC73F5441AE47E13AB3635141F6285CBFC73F54413D0AD743B2635141000000C0C83F5441AE47E12AB563514166666626CB3F54418FC2F5F8B7635141A4703DBACD3F5441B81E850BB9635141C3F5280CCF3F5441A4703DCAB9635141A4703D6AD03F54415C8FC265BA635141713D0AC7D13F5441D7A370FDBA63514100000020D33F54417B14AE87BB63514185EB5148D53F54413D0AD703BC635141EC51B87ED73F54418FC2F548BC63514166666676DA3F5441EC51B8EEBC6351411F85EB51DD3F544148E17A94BD635141713D0AF7DF3F54411F85EBD1BE635141CDCCCC5CE33F54418FC2F538C063514152B81EB5E63F5441AE47E18AC263514152B81ED5EB3F544185EB5158C76351418FC2F568E73F544185EB5188C8635141333333C3E63F54410500000014AE4711F7635141713D0A47A93F54415C8FC2E5F7635141E17A14CEA83F5441C3F5289CF86351411F85EB11AA3F544114AE47D1F7635141AE47E18AAA3F544114AE4711F7635141713D0A47A93F544105000000295C8F12E96351418FC2F538853F5441EC51B89EE8635141666666C6833F5441F6285CBFE9635141C3F5286C833F54413D0AD733EA635141F6285CDF843F5441295C8F12E96351418FC2F538853F54410500000000000020FC63514152B81E758C3F5441713D0A87FC635141C3F528BC8B3F5441CDCCCC3CFD63514148E17A248C3F5441713D0AD7FC635141AE47E1DA8C3F544100000020FC63514152B81E758C3F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986181 - 986168
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000100000045000000846B8DDE23F550411F9A3456C76F54410A10E64D23F55041A2ECB189C66F5441239269D822F55041C42363AEC56F54419C1C99C721F550416A4822B1C36F5441B9B9B6E520F550415B6AA4C6C16F5441D806C08420F55041B8B217F4C06F5441F7553F0020F5504133575FD4BF6F5441B8A2861F1FF55041040BAD85BD6F5441518FE5381EF55041AD5B7327BB6F5441A1ADA7141EF55041F1D47B96BA6F54415D42B2341DF55041F227A616B76F544194A165E21CF550410D087C59B56F544122D479161CF55041EEEA740AB16F5441E1B2F5121CF550412CC61149B06F544108E7FA021CF5504181FB2FDAAC6F5441D0B274FC1BF55041C6C35A73AB6F54418A596A441CF550413B69113DAB6F544193B2557B1DF5504139ED326EA96F5441488344621DF55041D9DCB846A76F5441230CEBF419F55041AC1AE729A36F544160A07EF614F550418AA38DBC9F6F5441B9A6DEAC0FF55041D7188ACC9C6F54419875703609F550411E430E2D996F54410EA8B1AA06F55041A30B4000986F5441F17BD0EC03F5504143FBC5D8956F5441AA92AACA00F550419170C2E8926F54416C7B468DF4F4504139F1AB678E6F5441997E76E8F1F450417CD544D18D6F5441BE362E94EEF450417CD544D18D6F54416026B46CECF450413BF1AB678E6F5441FF153A45EAF45041BD73F243906F5441C5C20482E8F45041F2C62707926F54416CFD020AE7F45041BE787FFC936F5441ED050D35E8F4504123945DDB946F5441DC5BB5E5EBF450414B701626956F544100CCC7F5EEF45041DA841B64956F5441D872F7D0F3F45041059B392E966F54415B3D6F27F9F45041CAB1C250976F5441B14D21F2FCF450411504EC4F986F54416C3009D6FFF450415183FE75996F5441A1E6652904F550418F3E1C2E9B6F5441B5B7575B07F550416FE458989C6F54410AEEE2F109F55041EBFC8DE19D6F5441850F051F0DF55041F26A96759F6F5441608F8E5B10F5504119A61717A16F54417563E9E311F550418385F70CA36F5441EA17FBF212F5504169048D07A66F54412D73A8A416F55041DEABD8ADAF6F54411F85EBD11AF5504185EB5158B86F5441713D0A471AF5504133333393BA6F544109E596EF1AF55041E3AF8EEABC6F5441E872CA3A1BF55041AC166E30BE6F544110300F9F1BF55041E069A3F3BF6F5441C600FE851BF55041DC23B8FCC26F544196F840721AF550418B63433DC56F54418EADC8C219F55041E02845B5C66F544136E8C64A18F550419F44AC4BC76F54412E9D4E9B17F550413DEE462DC86F54419A3E2C6917F5504194B348A5C96F544192F3B3B916F55041D351F617CC6F5441CA46E97C18F550413DF3D3E5CB6F54414FCEBC111EF550410CEB16D2CA6F54415B1EC27922F55041BB708D09CA6F54412E1B921E25F550411FC7F227C96F544191C9EA1425F5504182754B1EC96F544122F0D30125F550417442EA21C96F5441F05860EF24F55041E204C1F8C86F5441DDA0085624F55041D24C695FC86F5441846B8DDE23F550411F9A3456C76F5441
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000295C8F12CBF45041B81E857BC36F5441C3F5281CD9F45041CDCCCC6CCB6F5441AE47E13ADCF450418FC2F558CF6F54419A9999C9DCF4504100000070D46F5441CDCCCC3CECF45041A4703D9AD36F5441E17A141E01F55041CDCCCC4CD16F544152B81E4501F55041D7A3705DC86F54415C8FC26501F5504114AE47E1C06F54411F85EB5101F550418FC2F5F8BF6F544114AE474105F55041B81E850BC06F5441AE47E1DA07F55041B81E85BBB56F5441713D0A471AF5504133333393BA6F54411F85EBD11AF5504185EB5158B86F5441333333A315F550417B14AE97AD6F5441CDCCCCDC11F550418FC2F5F8A26F54413D0AD75310F55041D7A3700DA16F54415C8FC2E505F55041EC51B8DE9B6F5441A4703DEAFBF45041713D0AE7976F54417B14AEC7F0F450418FC2F588956F5441E17A141EE5F45041CDCCCC9C946F5441EC51B8DEE2F45041EC51B80E966F5441F6285CEFDCF4504152B81EA59B6F54415C8FC2F5D8F4504185EB5198A16F5441D7A3709DD4F4504114AE4771AA6F5441CDCCCC0CD3F450410AD7A370B06F54418FC2F5B8D3F45041C3F5283CB76F5441CDCCCC9CCFF45041713D0A47BE6F5441295C8F12CBF45041B81E857BC36F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986181 - 1014189
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000100000045000000846B8DDE23F550411F9A3456C76F54410A10E64D23F55041A2ECB189C66F5441239269D822F55041C42363AEC56F54419C1C99C721F550416A4822B1C36F5441B9B9B6E520F550415B6AA4C6C16F5441D806C08420F55041B8B217F4C06F5441F7553F0020F5504133575FD4BF6F5441B8A2861F1FF55041040BAD85BD6F5441518FE5381EF55041AD5B7327BB6F5441A1ADA7141EF55041F1D47B96BA6F54415D42B2341DF55041F227A616B76F544194A165E21CF550410D087C59B56F544122D479161CF55041EEEA740AB16F5441E1B2F5121CF550412CC61149B06F544108E7FA021CF5504181FB2FDAAC6F5441D0B274FC1BF55041C6C35A73AB6F54418A596A441CF550413B69113DAB6F544193B2557B1DF5504139ED326EA96F5441488344621DF55041D9DCB846A76F5441230CEBF419F55041AC1AE729A36F544160A07EF614F550418AA38DBC9F6F5441B9A6DEAC0FF55041D7188ACC9C6F54419875703609F550411E430E2D996F54410EA8B1AA06F55041A30B4000986F5441F17BD0EC03F5504143FBC5D8956F5441AA92AACA00F550419170C2E8926F54416C7B468DF4F4504139F1AB678E6F5441997E76E8F1F450417CD544D18D6F5441BE362E94EEF450417CD544D18D6F54416026B46CECF450413BF1AB678E6F5441FF153A45EAF45041BD73F243906F5441C5C20482E8F45041F2C62707926F54416CFD020AE7F45041BE787FFC936F5441ED050D35E8F4504123945DDB946F5441DC5BB5E5EBF450414B701626956F544100CCC7F5EEF45041DA841B64956F5441D872F7D0F3F45041059B392E966F54415B3D6F27F9F45041CAB1C250976F5441B14D21F2FCF450411504EC4F986F54416C3009D6FFF450415183FE75996F5441A1E6652904F550418F3E1C2E9B6F5441B5B7575B07F550416FE458989C6F54410AEEE2F109F55041EBFC8DE19D6F5441850F051F0DF55041F26A96759F6F5441608F8E5B10F5504119A61717A16F54417563E9E311F550418385F70CA36F5441EA17FBF212F5504169048D07A66F54412D73A8A416F55041DEABD8ADAF6F54411F85EBD11AF5504185EB5158B86F5441713D0A471AF5504133333393BA6F544109E596EF1AF55041E3AF8EEABC6F5441E872CA3A1BF55041AC166E30BE6F544110300F9F1BF55041E069A3F3BF6F5441C600FE851BF55041DC23B8FCC26F544196F840721AF550418B63433DC56F54418EADC8C219F55041E02845B5C66F544136E8C64A18F550419F44AC4BC76F54412E9D4E9B17F550413DEE462DC86F54419A3E2C6917F5504194B348A5C96F544192F3B3B916F55041D351F617CC6F5441CA46E97C18F550413DF3D3E5CB6F54414FCEBC111EF550410CEB16D2CA6F54415B1EC27922F55041BB708D09CA6F54412E1B921E25F550411FC7F227C96F544191C9EA1425F5504182754B1EC96F544122F0D30125F550417442EA21C96F5441F05860EF24F55041E204C1F8C86F5441DDA0085624F55041D24C695FC86F5441846B8DDE23F550411F9A3456C76F5441
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000295C8F12CBF45041B81E857BC36F5441C3F5281CD9F45041CDCCCC6CCB6F5441AE47E13ADCF450418FC2F558CF6F54419A9999C9DCF4504100000070D46F5441CDCCCC3CECF45041A4703D9AD36F5441E17A141E01F55041CDCCCC4CD16F544152B81E4501F55041D7A3705DC86F54415C8FC26501F5504114AE47E1C06F54411F85EB5101F550418FC2F5F8BF6F544114AE474105F55041B81E850BC06F5441AE47E1DA07F55041B81E85BBB56F5441713D0A471AF5504133333393BA6F54411F85EBD11AF5504185EB5158B86F5441333333A315F550417B14AE97AD6F5441CDCCCCDC11F550418FC2F5F8A26F54413D0AD75310F55041D7A3700DA16F54415C8FC2E505F55041EC51B8DE9B6F5441A4703DEAFBF45041713D0AE7976F54417B14AEC7F0F450418FC2F588956F5441E17A141EE5F45041CDCCCC9C946F5441EC51B8DEE2F45041EC51B80E966F5441F6285CEFDCF4504152B81EA59B6F54415C8FC2F5D8F4504185EB5198A16F5441D7A3709DD4F4504114AE4771AA6F5441CDCCCC0CD3F450410AD7A370B06F54418FC2F5B8D3F45041C3F5283CB76F5441CDCCCC9CCFF45041713D0A47BE6F5441295C8F12CBF45041B81E857BC36F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986181 - 3832250
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000100000045000000846B8DDE23F550411F9A3456C76F54410A10E64D23F55041A2ECB189C66F5441239269D822F55041C42363AEC56F54419C1C99C721F550416A4822B1C36F5441B9B9B6E520F550415B6AA4C6C16F5441D806C08420F55041B8B217F4C06F5441F7553F0020F5504133575FD4BF6F5441B8A2861F1FF55041040BAD85BD6F5441518FE5381EF55041AD5B7327BB6F5441A1ADA7141EF55041F1D47B96BA6F54415D42B2341DF55041F227A616B76F544194A165E21CF550410D087C59B56F544122D479161CF55041EEEA740AB16F5441E1B2F5121CF550412CC61149B06F544108E7FA021CF5504181FB2FDAAC6F5441D0B274FC1BF55041C6C35A73AB6F54418A596A441CF550413B69113DAB6F544193B2557B1DF5504139ED326EA96F5441488344621DF55041D9DCB846A76F5441230CEBF419F55041AC1AE729A36F544160A07EF614F550418AA38DBC9F6F5441B9A6DEAC0FF55041D7188ACC9C6F54419875703609F550411E430E2D996F54410EA8B1AA06F55041A30B4000986F5441F17BD0EC03F5504143FBC5D8956F5441AA92AACA00F550419170C2E8926F54416C7B468DF4F4504139F1AB678E6F5441997E76E8F1F450417CD544D18D6F5441BE362E94EEF450417CD544D18D6F54416026B46CECF450413BF1AB678E6F5441FF153A45EAF45041BD73F243906F5441C5C20482E8F45041F2C62707926F54416CFD020AE7F45041BE787FFC936F5441ED050D35E8F4504123945DDB946F5441DC5BB5E5EBF450414B701626956F544100CCC7F5EEF45041DA841B64956F5441D872F7D0F3F45041059B392E966F54415B3D6F27F9F45041CAB1C250976F5441B14D21F2FCF450411504EC4F986F54416C3009D6FFF450415183FE75996F5441A1E6652904F550418F3E1C2E9B6F5441B5B7575B07F550416FE458989C6F54410AEEE2F109F55041EBFC8DE19D6F5441850F051F0DF55041F26A96759F6F5441608F8E5B10F5504119A61717A16F54417563E9E311F550418385F70CA36F5441EA17FBF212F5504169048D07A66F54412D73A8A416F55041DEABD8ADAF6F54411F85EBD11AF5504185EB5158B86F5441713D0A471AF5504133333393BA6F544109E596EF1AF55041E3AF8EEABC6F5441E872CA3A1BF55041AC166E30BE6F544110300F9F1BF55041E069A3F3BF6F5441C600FE851BF55041DC23B8FCC26F544196F840721AF550418B63433DC56F54418EADC8C219F55041E02845B5C66F544136E8C64A18F550419F44AC4BC76F54412E9D4E9B17F550413DEE462DC86F54419A3E2C6917F5504194B348A5C96F544192F3B3B916F55041D351F617CC6F5441CA46E97C18F550413DF3D3E5CB6F54414FCEBC111EF550410CEB16D2CA6F54415B1EC27922F55041BB708D09CA6F54412E1B921E25F550411FC7F227C96F544191C9EA1425F5504182754B1EC96F544122F0D30125F550417442EA21C96F5441F05860EF24F55041E204C1F8C86F5441DDA0085624F55041D24C695FC86F5441846B8DDE23F550411F9A3456C76F5441
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000295C8F12CBF45041B81E857BC36F5441C3F5281CD9F45041CDCCCC6CCB6F5441AE47E13ADCF450418FC2F558CF6F54419A9999C9DCF4504100000070D46F5441CDCCCC3CECF45041A4703D9AD36F5441E17A141E01F55041CDCCCC4CD16F544152B81E4501F55041D7A3705DC86F54415C8FC26501F5504114AE47E1C06F54411F85EB5101F550418FC2F5F8BF6F544114AE474105F55041B81E850BC06F5441AE47E1DA07F55041B81E85BBB56F5441713D0A471AF5504133333393BA6F54411F85EBD11AF5504185EB5158B86F5441333333A315F550417B14AE97AD6F5441CDCCCCDC11F550418FC2F5F8A26F54413D0AD75310F55041D7A3700DA16F54415C8FC2E505F55041EC51B8DE9B6F5441A4703DEAFBF45041713D0AE7976F54417B14AEC7F0F450418FC2F588956F5441E17A141EE5F45041CDCCCC9C946F5441EC51B8DEE2F45041EC51B80E966F5441F6285CEFDCF4504152B81EA59B6F54415C8FC2F5D8F4504185EB5198A16F5441D7A3709DD4F4504114AE4771AA6F5441CDCCCC0CD3F450410AD7A370B06F54418FC2F5B8D3F45041C3F5283CB76F5441CDCCCC9CCFF45041713D0A47BE6F5441295C8F12CBF45041B81E857BC36F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>875509 - 401529
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -14 </desc>
+<a>
+01060000000B00000001030000000100000019000000B81E852B1DFE50417B14AE27AADC5441B81E858B19FE5041EC51B8CEA5DC54418FC2F57814FE504148E17AA4A0DC5441B81E850B0DFE5041C3F5284C9BDC5441C3F5282C02FE50419A99993996DC54411F85EB91F8FD504148E17A2494DC5441000000E0EFFD50418FC2F59893DC54411F85EB21DAFD504152B81EF594DC54419A999979C7FD5041F6285CAF95DC54417B14AE87BFFD5041E17A14FE95DC54410AD7A3F0BFFD5041AE47E14A9BDC5441E17A147EC1FD5041E17A145E9CDC54418FC2F598D0FD504152B81E659BDC5441E17A146EDBFD5041295C8F929ADC54415C8FC285E9FD50410AD7A38099DC54415C8FC265F6FD5041E17A14DE99DC544185EB51E8FAFD50417B14AEC79ADC54419A99999907FE50411F85EB319DDC544152B81E2511FE50418FC2F598A3DC54410AD7A37019FE504185EB5108AEDC544185EB51281CFE504166666636B1DC54413D0AD7331DFE5041AE47E13AAEDC5441713D0AF71DFE504148E17A54ACDC5441F6285C1F1EFE5041AE47E1BAABDC5441B81E852B1DFE50417B14AE27AADC544101030000000100000010000000000000E0BAF95041E17A141E31DB54418FC2F5D8B1F950419A9999992ADB54418FC2F578B1F950410AD7A3D02ADB5441C3F5280CB1F950411F85EB412BDB54417B14AEA7B0F9504152B81ED52BDB544114AE47B1AFF950419A9999792DDB5441295C8F62AFF95041EC51B8DE2DDB544166666616AFF950411F85EB212EDB544152B81EB5AEF950419A9999592EDB5441B81E85ABADF9504114AE47C12EDB544185EB5158ABF9504148E17A742FDB544166666656B5F95041AE47E19A36DB5441333333E3BEF9504148E17AB438DB54419A9999C9C3F95041AE47E1BA3BDB544148E17A64C6F950410000004039DB5441000000E0BAF95041E17A141E31DB5441010300000001000000A4000000C3F5285CDCFC504114AE47F182DC5441F6285C9FD3FC50411F85EB4180DC5441CDCCCCECD0FC5041EC51B8DE7FDC544166666646C4FC5041E17A140E7EDC5441713D0A17B7FC5041333333E37ADC544148E17A94A7FC5041AE47E17A76DC5441666666A6A2FC50411F85EB3174DC5441AE47E17A9DFC5041666666966FDC54413D0AD7B393FC50417B14AE1767DC544148E17A0491FC504148E17AC464DC5441C3F528FC94FC5041A4703D1A5FDC5441333333F397FC5041E17A14DE5ADC544185EB510899FC504152B81E9558DC5441E17A14EE93FC50418FC2F53855DC5441E17A145E90FC50417B14AE7752DC544152B81E358BFC5041C3F5284C4EDC54413D0AD7638AFC5041713D0AF74FDC5441333333E38CFC5041C3F5281C52DC5441A4703DEA89FC504152B81E1556DC54415C8FC20586FC504185EB51485BDC544152B81EB584FC5041B81E856B58DC54416666667684FC504185EB51F857DC5441B81E85FB82FC5041C3F5283C55DC5441713D0AE780FC50419A9999B94FDC54413D0AD70380FC5041F6285C3F4FDC54411F85EB417FFC5041713D0AD74EDC5441AE47E14A7DFC50418FC2F5C84DDC5441C3F528DC7AFC5041AE47E13A4EDC5441D7A370DD77FC50415C8FC2B54DDC5441295C8F4275FC50415C8FC2A54CDC5441333333636CFC50410AD7A39047DC5441666666D669FC504148E17AE445DC5441D7A3702D67FC5041333333C343DC5441A4703D6A63FC504185EB51F840DC54419A9999D961FC50410000000040DC5441B81E85DB60FC504185EB51783FDC5441B81E857B59FC504152B81E853BDC54416666664655FC50417B14AE9739DC54416666667651FC5041EC51B85E38DC54411F85EBC148FC50411F85EB7136DC5441F6285CBF44FC50410000007035DC5441D7A3702D3CFC50410AD7A3E031DC5441CDCCCC1C3BFC504148E17A8431DC5441F6285CCF39FC50413333331331DC5441E17A142E33FC504148E17AD42EDC544114AE47812DFC50417B14AEE72CDC544114AE47A12BFC50417B14AED72CDC54411F85EB0128FC50418FC2F5B82CDC5441713D0AC721FC50413D0AD7832CDC544148E17AC420FC5041B81E857B2CDC5441D7A370ED1EFC5041C3F5286C2CDC5441295C8FA21EFC50419A9999692CDC544148E17AF417FC50410AD7A3302CDC54417B14AED709FC5041E17A149E2BDC5441295C8F5208FC50413D0AD7732DDC5441713D0A27FCFB50415C8FC2752BDC54419A9999E9FCFB50416666660628DC54419A999949F6FB5041B81E853B26DC544114AE47B1F0FB504185EB51B824DC54411F85EB31E8FB5041A4703D0A23DC54415C8FC2B5E3FB50413D0AD7B321DC5441B81E853BDDFB50410AD7A3A020DC54417B14AED7DBFB5041CDCCCC8C20DC5441666666E6D9FB504185EB517820DC54415C8FC2F5D7FB50410000005020DC54418FC2F518D6FB5041A4703D1A20DC544100000020D3FB504148E17AE41FDC544148E17A94CFFB504148E17AA41FDC544152B81EB5C9FB5041A4703D3A1FDC5441A4703D1AC4FB504148E17AD41EDC54418FC2F578BFFB50417B14AE771EDC5441295C8F12BCFB50413D0AD7331EDC5441295C8F92B9FB50411F85EB011EDC5441C3F528ECB5FB50419A9999B91DDC5441C3F5284CB4FB50418FC2F5981DDC5441A4703D4AB1FB50415C8FC2651DDC544152B81E15AFFB5041000000401DDC5441C3F5280CACFB5041C3F5280C1DDC5441EC51B8FEA9FB50418FC2F5E81CDC54413D0AD713A8FB504185EB51C81CDC5441E17A146EA4FB5041D7A3705D1CDC54411F85EBE1A2FB5041000000301CDC5441666666F6A0FB504185EB51D81BDC5441333333A39FFB5041B81E859B1BDC544148E17AA49BFB504152B81EE51ADC5441D7A370AD97FB5041F6285C2F1ADC5441D7A3700D8CFB5041CDCCCC0C18DC5441F6285C1F87FB5041C3F5283C17DC54410AD7A33082FB50419A99994916DC54410000003080FB504148E17AE415DC54417B14AE377DFB5041D7A3703D15DC544185EB51C87AFB504152B81EB514DC544148E17AF477FB50416666661614DC544148E17A0476FB5041000000A013DC544114AE47C170FB504185EB51A812DC54417B14AE576BFB504152B81E1511DC544114AE477167FB5041295C8FF20FDC54418FC2F5485EFB50419A9999A90FDC54419A9999795DFB5041000000900FDC54415C8FC22551FB5041AE47E10A0EDC5441AE47E1FA4CFB5041713D0A870DDC54410AD7A3F044FB5041713D0AC70BDC54418FC2F5F83AFB5041B81E859B09DC54413D0AD7D339FB50415C8FC2C508DC544114AE471138FB5041F6285CCF07DC544148E17A3436FB5041EC51B85E06DC5441713D0A1733FB50410AD7A39004DC5441666666F630FB50413333339303DC54410000001030FB50410AD7A37003DC54418FC2F5082BFB504114AE47B100DC5441A4703D5A1EFB504152B81E35F9DB544152B81ED515FB5041333333A3F3DB5441F6285CFF0DFB50413D0AD713EDDB54410000008018FB50415C8FC2D5F8DB5441B81E859B27FB5041AE47E17A02DC54410000008031FB50413D0AD74308DC54417B14AEF738FB5041F6285CFF0BDC5441AE47E1FA43FB5041A4703D7A10DC54410AD7A36068FB50413D0AD71316DC5441AE47E11AC0FB504152B81EF522DC54410AD7A3C0FFFB50417B14AE572EDC544185EB51A814FC50413D0AD7E331DC5441713D0A873FFC5041CDCCCC7C38DC5441D7A370AD51FC5041B81E85EB3ADC54413333334358FC5041E17A140E3DDC5441F6285C7F5FFC50410000006040DC5441B81E85CB66FC5041B81E855B45DC544114AE47816DFC50413D0AD7834DDC5441EC51B8EE72FC50413333332352DC54418FC2F5C87DFC50413D0AD7535CDC5441C3F528DC88FC5041C3F5284C65DC5441C3F528EC97FC5041D7A3705D72DC5441C3F5281CA2FC50417B14AE5779DC5441E17A148EA4FC5041666666667BDC5441B81E85FBA4FC5041000000307ADC5441E17A147EA6FC5041000000F078DC54413D0AD743A8FC504152B81E5578DC544114AE47D1A9FC5041AE47E16A78DC5441000000B0B6FC504185EB51A87BDC5441E17A141EC4FC50410AD7A3F07EDC544148E17A54DEFC50413333333385DC54411F85EB71EBFC5041C3F5287C88DC5441C3F528ECF6FC5041295C8F828BDC5441C3F5281C08FD5041B81E852B90DC5441CDCCCCBC0CFD504152B81E2591DC54413333339310FD50410AD7A3D091DC5441EC51B89E1EFD5041A4703DEA93DC54416666660623FD5041B81E85BB94DC5441666666762BFD5041D7A3707D91DC5441EC51B8BE22FD5041000000F093DC544148E17A0422FD50411F85EBB193DC54416666669619FD5041A4703D0A92DC54410000001011FD5041C3F528BC90DC5441C3F5284C0FFD504185EB51E88FDC5441C3F5286C05FD50413D0AD7438BDC54410AD7A3C003FD504185EB51B88BDC5441D7A3700DF8FC5041EC51B88E8ADC5441713D0A17F7FC5041F6285CFF8ADC5441295C8F92EBFC50418FC2F53887DC5441295C8F12E8FC5041CDCCCC3C86DC54415C8FC2E5E5FC50410AD7A3A085DC5441F6285C7FE3FC50413D0AD7F384DC5441CDCCCC8CDFFC5041713D0AD783DC5441C3F5285CDCFC504114AE47F182DC544101030000000100000020000000333333F3B4F950411F85EBB128DB5441A4703D2AC0F95041B81E854B31DB54417B14AE17C8F950411F85EBA137DB544114AE47C1C9F95041D7A3700D36DB5441F6285C6FC8F95041E17A145E35DB5441295C8F72C8F95041B81E85AB30DB54415C8FC245C4F9504152B81E8526DB5441D7A3707DC2F950413D0AD78327DB5441D7A3701DC2F95041F6285CAF27DB5441F6285CCFC1F95041EC51B8BE27DB5441AE47E17AC1F95041713D0AB727DB5441666666F6C0F95041D7A3708D27DB5441295C8F72C0F9504148E17A7427DB5441F6285CFFBFF9504148E17A7427DB5441A4703D9ABFF950415C8FC28527DB544100000000BFF95041B81E85AB27DB5441295C8F22BEF95041E17A14FE27DB54410AD7A370BDF95041295C8F2228DB5441CDCCCCBCBCF950418FC2F53828DB5441CDCCCCFCBBF95041295C8F2228DB54411F85EBB1BBF95041F6285C0F28DB544114AE4741BBF950415C8FC2D527DB5441A4703D9ABAF95041EC51B8AE27DB5441CDCCCCECB9F950415C8FC28527DB54418FC2F568B9F95041C3F5287C27DB54419A9999C9B8F950410000008027DB5441B81E851BB8F950416666669627DB5441C3F5285CB7F950418FC2F5B827DB5441AE47E12AB6F950415C8FC20528DB54415C8FC2C5B5F9504185EB512828DB5441F6285C6FB5F950417B14AE5728DB5441333333F3B4F950411F85EBB128DB54410103000000010000009900000052B81E0542FC5041713D0A9742DC54410AD7A31044FC5041CDCCCC8C42DC544185EB51E849FC50410000007042DC54411F85EB314CFC50413333336342DC5441000000A050FC5041F6285C2F42DC544148E17A7458FC5041E17A14EE44DC54415C8FC2A559FC5041AE47E16A45DC544152B81E155BFC50410AD7A30046DC5441A4703DCA5EFC504148E17A8447DC5441F6285C2F62FC50415C8FC2E54DDC5441B81E851B62FC5041EC51B8DE4CDC5441AE47E15A65FC50418FC2F5A851DC544152B81EC567FC5041000000D054DC544114AE47B161FC50417B14AEE75DDC5441D7A370DD62FC50413D0AD7335FDC5441CDCCCCFC69FC5041295C8F1267DC5441A4703DEA70FC50419A9999F96EDC544148E17A0475FC5041EC51B84E6CDC5441F6285CEF75FC5041666666B66BDC54417B14AE9778FC50413D0AD7136ADC54410AD7A3807AFC5041713D0AE768DC5441713D0A9784FC5041C3F5281C6BDC5441C3F5286C87FC5041E17A143E6DDC5441295C8F428AFC5041000000606FDC5441D7A3703D8EFC50418FC2F5A872DC5441295C8F5291FC504148E17A3475DC54419A99999994FC504185EB51E877DC54413D0AD7639FFC504185EB51887EDC5441AE47E1AAA1FC504185EB51687FDC544185EB51F8A2FC50418FC2F5E87FDC54411F85EBC1A3FC5041B81E85AB7DDC5441B81E85ABA0FC5041A4703DAA7CDC5441C3F5287C95FC5041F6285C3F74DC54418FC2F58886FC5041E17A142E67DC5441C3F5283C7CFC504148E17AC45DDC5441F6285CEF71FC50413D0AD79353DC5441333333D36BFC5041295C8F424EDC5441D7A3703D63FC5041B81E859B46DC544185EB51B859FC5041295C8F7240DC5441EC51B81E54FC50415C8FC2053EDC54418FC2F5084BFC50419A9999393CDC544185EB51D814FC504114AE472134DC5441E17A142E02FC504148E17A5431DC5441AE47E1BABFFB50410000007027DC54410AD7A30068FB5041EC51B85E1ADC5441CDCCCCBC4FFB5041333333A316DC54413D0AD7533CFB50417B14AEE712DC54411F85EB0130FB5041E17A147E0DDC5441000000B023FB50416666666606DC5441D7A370DDE0FA5041B81E85ABD8DB5441C3F5288CD4FA5041295C8F82D2DB54419A999999C8FA504152B81E15D0DB5441EC51B8AEB6FA50419A999929CCDB544185EB5148AEFA5041CDCCCC5CC9DB54410AD7A330A7FA50411F85EBE1C4DB5441CDCCCC8C9CFA5041E17A14CEBADB544114AE47A181FA5041F6285C5F9FDB5441295C8FA27EFA5041295C8F129CDB5441AE47E16A7EFA5041EC51B81E9ADB5441EC51B8FE7CFA50417B14AE9798DB5441D7A3703D7CFA5041CDCCCC1C99DB544114AE471178FA5041333333939ADB5441F6285C9F98FA50418FC2F5D8BCDB5441A4703DFA9DFA504148E17A74C2DB5441000000D0A2FA50413D0AD783C7DB5441AE47E1DAA3FA504114AE47A1C8DB544133333323ABFA50418FC2F508CDDB5441CDCCCC4CACFA50415C8FC255D1DB5441EC51B89EACFA5041C3F528BCD2DB54417B14AE77B6FA50418FC2F5B8D2DB5441CDCCCC1CBFFA5041CDCCCC5CD1DB5441CDCCCC5CCAFA5041C3F5288CD4DB54418FC2F5D8D8FA504148E17AA4D9DB54411F85EBA1D4FA5041B81E853BDFDB544148E17A94D9FA5041EC51B88EE8DB544148E17A64D3FA5041EC51B8BEECDB54410AD7A3F0D0FA50413D0AD743F8DB544185EB5198D3FA50415C8FC2B5F9DB5441CDCCCC5CD6FA50413D0AD793FADB544152B81E15D7FA5041D7A370CDFADB5441B81E853BDCFA50418FC2F5E8FBDB5441E17A14AEDCFA5041000000B002DC54419A999909DDFA504114AE47C102DC544152B81E65E0FA504148E17A6408DC544166666636E3FA5041AE47E1DA07DC5441CDCCCCACE6FA5041E17A141E07DC5441C3F5281CE9FA504114AE478100DC544148E17A44ECFA50415C8FC2E501DC5441AE47E19AEDFA5041295C8F6209DC544185EB51B8F4FA504152B81E8519DC544152B81EC5F6FA5041F6285CCF15DC544166666606F8FA50417B14AE8713DC5441AE47E1EAF8FA50415C8FC2A510DC5441D7A370DDF8FA50410AD7A3600FDC5441CDCCCCBCF8FA50418FC2F5C80DDC544152B81EE5F9FA50419A9999D90BDC544114AE4741FAFA5041F6285C0F0CDC54419A9999B9FAFA50415C8FC2550CDC544152B81E25FCFA50413D0AD7230DDC54413333336303FB50411F85EBB109DC5441AE47E19A07FB50419A9999A906DC544152B81E250BFB5041B81E856B04DC5441713D0A1710FB50418FC2F5D800DC5441713D0AE712FB504148E17A34FFDB54417B14AEE718FB5041333333B301DC544185EB51181AFB5041D7A3704D04DC5441713D0AA71AFB50415C8FC28505DC5441333333231BFB50415C8FC29506DC5441C3F5285C25FB50418FC2F5380BDC5441E17A145E26FB5041E17A14FE0ADC54413D0AD7632CFB50410000007011DC54419A9999192DFB5041AE47E1DA11DC544185EB51F835FB50411F85EBF114DC54410AD7A32040FB50416666668618DC544185EB512847FB50419A9999E91ADC544114AE476149FB5041666666B61BDC544185EB51584AFB504152B81EF51BDC54418FC2F5B856FB5041E17A14AE1CDC54411F85EBE157FB5041CDCCCC7C1BDC5441C3F5289C58FB504148E17A141BDC54411F85EB115CFB50410AD7A3401BDC544185EB511864FB5041B81E85EB1BDC5441E17A140E6EFB50413D0AD7231DDC54410AD7A3E07DFB5041C3F528AC1FDC5441EC51B86E90FB50410000006022DC5441B81E85AB9CFB50417B14AE5724DC5441295C8F22AAFB5041EC51B84E26DC5441713D0A17B6FB504148E17A3428DC54413D0AD7F3C8FB5041D7A370DD2ADC54418FC2F5F8DAFB5041000000E02DDC54419A9999C9E2FB50411F85EB212FDC54417B14AE0703FC504148E17A5434DC5441E17A14FE07FC504114AE472135DC54410000009008FC5041713D0A6736DC5441A4703DCA0CFC5041C3F528BC36DC544114AE479110FC50413333335337DC5441F6285C3F14FC5041A4703DBA38DC5441D7A3705D19FC50410AD7A3A03ADC5441D7A370AD1CFC504114AE47C13BDC5441666666561EFC50415C8FC2853CDC544148E17A341EFC5041AE47E14A3FDC5441C3F528DC1DFC5041F6285CDF42DC5441CDCCCC2C1DFC5041CDCCCC6C49DC5441D7A3700D22FC5041B81E85CB48DC5441EC51B8CE23FC50411F85EB6148DC544148E17A2428FC5041D7A3705D47DC544152B81E7528FC50419A99994947DC5441EC51B84E29FC504152B81E1547DC5441000000C02EFC5041295C8FC245DC544185EB518831FC504185EB516844DC5441D7A3702D35FC5041295C8FC242DC5441CDCCCCFC3BFC50413D0AD7A342DC544152B81E0542FC5041713D0A9742DC5441010300000001000000A6000000295C8F0267FA5041A4703DDA79DB5441AE47E10A64FA50411F85EBF176DB54410000006061FA504152B81E5574DB544114AE479162FA5041EC51B81E73DB544148E17A5462FA5041D7A3708D71DB5441CDCCCC0C62FA5041666666D671DB5441A4703D3A60FA5041CDCCCCCC73DB5441B81E854B5FFA5041E17A14DE72DB5441AE47E1DA5EFA5041B81E856B72DB5441666666A65EFA5041CDCCCC9C72DB5441E17A14FE55FA5041333333D369DB5441E17A149E57FA5041CDCCCC2C68DB54415C8FC2D55AFA50417B14AE576BDB54411F85EB315DFA5041000000206CDB5441F6285CEF61FA5041AE47E1BA70DB54415C8FC29561FA5041333333A36FDB544148E17A2461FA5041CDCCCCDC6EDB5441000000D05FFA50411F85EB116EDB5441D7A3702D5FFA504185EB51886DDB544152B81E055FFA5041333333336DDB54413D0AD7A35EFA5041713D0AD76BDB5441AE47E13A5EFA50419A9999696BDB544152B81E955CFA50415C8FC2356ADB544185EB51585CFA50413D0AD7C369DB54417B14AE275CFA50410000009068DB5441AE47E1CA5BFA50411F85EBD167DB5441A4703D7A5AFA50411F85EBB166DB544152B81E255AFA50413D0AD71366DB54411F85EB015AFA5041333333F364DB54410AD7A3A059FA5041A4703D3A64DB54416666660657FA5041EC51B8CE61DB54418FC2F51857FA50419A99993960DB5441D7A370ED56FA5041EC51B8DE5FDB544148E17A0456FA50410AD7A3E05EDB544114AE47D154FA5041C3F5285C5DDB5441A4703DCA53FA5041C3F5289C5BDB54410000002050FA5041A4703DCA5EDB54413333330340FA50413333336351DB5441D7A3701D3CFA5041D7A3707D4DDB54417B14AE673BFA50417B14AEC74CDB5441CDCCCC8C27FA5041D7A370ED38DB5441D7A370FD18FA50419A99990935DB54417B14AEB717FA5041000000C034DB54419A9999A901FA5041295C8F5235DB5441F6285C1FEEF950418FC2F5F83BDB5441CDCCCCDCDBF95041B81E853B3DDB5441A4703D3AD4F9504152B81E953BDB5441EC51B85ED3F95041333333333BDB5441C3F5284CD1F95041AE47E11A3DDB5441C3F5283CD6F95041AE47E1BA3EDB5441A4703D9AD8F95041666666B63FDB544152B81E25E3F950411F85EBE140DB54411F85EBE1E4F95041295C8F6240DB54417B14AE97EAF95041E17A14CE3FDB5441000000D0EEF95041A4703DFA3EDB54417B14AE87F3F95041D7A3707D3DDB5441E17A140EFCF950417B14AE973ADB54410AD7A38003FA50415C8FC2C538DB54417B14AE470BFA50417B14AEC737DB5441713D0A7714FA5041C3F5281C38DB5441C3F528AC1AFA5041A4703D5A39DB5441713D0AA71DFA5041333333433ADB5441F6285C7F1FFA5041713D0A273CDB54418FC2F53828FA5041EC51B8AE40DB5441A4703DBA2AFA5041B81E854B41DB5441AE47E11A30FA50418FC2F5D845DB544185EB517837FA5041666666364DDB54418FC2F51850FA5041295C8FA266DB544114AE47F157FA50410AD7A3E06EDB5441666666D658FA50410AD7A39070DB544148E17AB459FA5041AE47E16A71DB54415C8FC2355AFA504148E17AF471DB544185EB51F860FA50416666662679DB54417B14AE3761FA50419A99995979DB5441E17A143E62FA50417B14AE9779DB544148E17AF466FA5041E17A143E7EDB54413D0AD75373FA5041E17A14FE8ADB544185EB51A876FA5041295C8F828EDB54413D0AD7C377FA50413333339390DB5441AE47E16A78FA50416666664691DB54419A9999B977FA5041713D0AD791DB54417B14AE4776FA50415C8FC2D590DB544152B81E4574FA504152B81E7590DB5441333333B372FA504148E17AF48FDB54411F85EB2165FA504114AE472181DB5441B81E852B60FA5041A4703D4A7BDB5441B81E856B60FA5041CDCCCC4C7ADB54419A99993960FA504114AE47117ADB54416666660659FA50415C8FC26572DB544152B81E9558FA5041B81E85FB71DB5441B81E858B57FA504152B81E7571DB544114AE474156FA5041333333C370DB5441CDCCCC1C4EFA50418FC2F53868DB544148E17AE436FA50410AD7A33050DB5441E17A149E2EFA5041A4703DEA47DB5441D7A370FD28FA5041CDCCCC9C43DB544114AE474127FA5041CDCCCC8C41DB5441666666F61EFA50411F85EB313DDB544114AE47F11DFA50417B14AEC73CDB5441666666D61AFA504152B81E153CDB54411F85EB6114FA5041D7A3706D3ADB54411F85EB710BFA5041E17A142E3ADB5441F6285CFF03FA504114AE47413BDB54411F85EBA1FCF95041333333133DDB544152B81E35F2F950411F85EBA140DB5441A4703D3AEFF95041B81E858B41DB54417B14AED7EAF95041E17A14DE42DB544133333333E7F950413333333343DB544133333323E4F95041E17A14DE42DB54415C8FC2E5E2F95041F6285C1F42DB5441295C8F62D8F95041CDCCCCEC40DB544148E17AD4D4F950411F85EBE140DB5441E17A146ED2F95041295C8F6240DB544185EB51F8CEF95041EC51B83E3FDB544114AE4731CEF95041666666F63FDB5441D7A370DDCCF95041F6285C2F41DB5441CDCCCCACD6F95041AE47E13A47DB54417B14AEB7D6F95041713D0AA744DB544185EB5118D7F9504152B81E9543DB5441713D0A67DCF95041666666B643DB54411F85EBE1E0F950418FC2F51844DB5441295C8FC2E0F950413D0AD78345DB5441EC51B8CEEBF95041713D0A7746DB54415C8FC2D5EFF95041B81E853B45DB5441F6285C8FF3F950418FC2F51844DB54419A9999F901FA50417B14AEA73FDB5441D7A370DD0FFA50417B14AE573EDB5441333333E31BFA504148E17A5440DB544148E17AA41CFA5041E17A141E46DB544148E17A741EFA504114AE47D147DB54410AD7A3301FFA5041713D0AD73FDB54415C8FC20527FA5041D7A370FD43DB5441713D0A472EFA504152B81E254ADB544185EB51B835FA50415C8FC2C551DB5441E17A14BE38FA5041E17A14DE54DB5441CDCCCC3C3CFA50413333337358DB5441C3F528AC3FFA504148E17A145CDB54419A99992943FA5041AE47E1AA5FDB54417B14AE974AFA50415C8FC25567DB5441333333F343FA50413D0AD7E36CDB5441C3F5288C47FA5041AE47E19A70DB5441AE47E18A48FA5041333333A371DB54419A9999994FFA504152B81E356EDB5441000000A053FA5041EC51B82E72DB544152B81E4557FA50410000006075DB54416666669658FA5041713D0A8776DB5441B81E854B59FA504185EB51D875DB54417B14AEF75CFA5041666666A679DB5441B81E859B5CFA5041F6285CFF79DB544185EB513871FA50413D0AD72393DB5441E17A141E74FA5041C3F528EC93DB54417B14AE8774FA5041EC51B88E93DB544152B81EA575FA504148E17AC494DB54413D0AD71374FA5041AE47E16A96DB54410AD7A37074FA50418FC2F5C896DB5441D7A370CD7BFA5041000000A090DB5441D7A370CD80FA5041CDCCCC0C90DB54417B14AE677EFA5041333333738DDB5441CDCCCC4C72FA5041AE47E10A84DB54413333339374FA5041C3F528AC7FDB544152B81E8573FA5041000000A07EDB54410AD7A38072FA5041333333937EDB5441EC51B85E73FA5041000000707FDB5441F6285C2F71FA5041295C8FC283DB54418FC2F5786BFA50419A9999397EDB5441295C8F0267FA5041A4703DDA79DB54410103000000010000001F000000D7A3709DF9FD5041D7A3704D89DC5441F6285C4FF5FD50410AD7A38088DC5441CDCCCCACF4FD50419A9999D98BDC544133333303DBFD50419A9999A98DDC544114AE47E1BFFD50411F85EB2190DC54415C8FC215BFFD504148E17A4490DC544114AE4761BFFD5041295C8F1294DC5441CDCCCC4CC7FD5041E17A14CE93DC5441AE47E10ADAFD5041F6285CDF92DC5441713D0AF7EFFD50418FC2F5C891DC54417B14AED7F8FD50415C8FC22592DC5441EC51B8CE02FE50419A99996994DC5441E17A140E0AFE504114AE472197DC54417B14AE370FFE5041E17A144E99DC544148E17AD415FE5041666666A69EDC54417B14AEE71AFE5041CDCCCC2CA4DC5441E17A149E1EFE504148E17AB4A8DC54410000005020FE5041713D0AF7AADC54419A99992921FE5041AE47E1AAAADC54413333337320FE504114AE4781A9DC54410AD7A3E01FFE504185EB5188A8DC5441295C8F521FFE50411F85EBD1A7DC54411F85EB6120FE50415C8FC2A5A4DC5441D7A370CD20FE504152B81E95A3DC5441A4703D2A1BFE50417B14AE279EDC54417B14AE671AFE5041C3F5281C9DDC544185EB514816FE5041EC51B88E98DC54413D0AD72312FE5041CDCCCC7C95DC544114AE47210AFE5041CDCCCC8C8FDC54417B14AED706FE5041D7A3701D8DDC5441D7A3709DF9FD5041D7A3704D89DC54410103000000010000003900000014AE47B17FFD50419A9999799FDC54410AD7A3D08AFD5041E17A14DE9EDC5441A4703DEA8EFD504185EB51789FDC5441B81E851BA1FD5041E17A146E9FDC5441CDCCCC5CABFD504185EB51C89DDC54417B14AEF7BAFD5041000000409DDC54410AD7A3C0BAFD5041333333B396DC5441295C8F6287FD5041713D0A9799DC5441713D0AA77CFD50417B14AE279ADC544148E17A1464FD504185EB51489BDC54413D0AD7F34DFD50419A9999399CDC5441333333833EFD5041AE47E12A9DDC544185EB515834FD5041333333D39DDC5441EC51B8DE2BFD5041333333A39DDC54413D0AD7B321FD50418FC2F5D89BDC5441D7A3702D0DFD50413D0AD72397DC5441A4703D4ADEFC50410AD7A3B08CDC5441713D0A17A9FC50410AD7A30080DC54418FC2F5C8A6FC5041C3F5287C7EDC5441666666E6A4FC5041333333037EDC544185EB5108A4FC504114AE475180DC544114AE4701A5FC504114AE47B180DC5441C3F5280CAFFC5041E17A148E84DC5441E17A14BEBAFC5041A4703D6A87DC5441B81E852BCFFC5041EC51B8EE8BDC544100000050D1FC50419A9999798CDC5441C3F528ECD1FC50410AD7A3A08CDC54417B14AEA7D8FC5041333333538EDC5441C3F5281CDAFC504114AE47B18EDC5441C3F5286CDDFC504185EB51588FDC5441A4703D7AE1FC50413333333390DC544152B81ED5E3FC5041295C8FB290DC5441713D0AD7E5FC5041EC51B81E91DC54418FC2F578EAFC504185EB511892DC5441A4703DAAE8FC50415C8FC2159ADC5441F6285C6FEAFC5041AE47E19A9ADC54411F85EB21EAFC504114AE47219BDC54413D0AD793EBFC5041B81E854B9BDC544148E17AB4EBFC5041A4703DFA9ADC5441C3F528FCF3FC5041713D0A679DDC544148E17A64FDFC50418FC2F528A0DC5441713D0AC704FD5041333333F3A1DC5441E17A14EE03FD5041CDCCCC4CA3DC54417B14AE070AFD5041EC51B80EA5DC544152B81E550EFD5041B81E853BA5DC54413D0AD76315FD5041F6285C9FA6DC5441CDCCCC0C1EFD504100000040A9DC54419A9999B920FD5041E17A14DEAADC54415C8FC29523FD5041F6285C7FAADC544148E17AD421FD5041E17A14FEA8DC5441D7A3701D2BFD504152B81E45A3DC5441F6285CDF3AFD5041F6285C5FA3DC54415C8FC2C53AFD5041A4703DBAA4DC5441666666B645FD50413D0AD7D3A4DC54416666667652FD50417B14AE77A2DC54415C8FC2A571FD504152B81E45A2DC544114AE47B17FFD50419A9999799FDC54410103000000010000002A0000003D0AD75323FD5041295C8FA295DC54410AD7A31010FD5041333333F392DC544152B81E050CFD504152B81E4592DC54418FC2F50800FD504148E17AF48EDC5441D7A3705DFCFC5041000000108EDC544152B81E55EBFC504185EB519889DC5441D7A3708DD9FC5041CDCCCC3C85DC5441713D0AC7C2FC50417B14AE0780DC5441F6285CEFB7FC50418FC2F5587DDC544133333393ABFC504152B81E157ADC544152B81E95A8FC50410000008079DC5441713D0A57A7FC50413D0AD79379DC5441EC51B82EA6FC50419A9999997ADC544152B81EB5A5FC5041C3F528DC7BDC544152B81ED5A7FC5041AE47E1BA7CDC544152B81E45AAFC50413D0AD7B37CDC544148E17A44E0FC5041D7A3707D89DC5441EC51B8AE0EFD50419A9999C994DC5441C3F5282C22FD5041E17A141E99DC5441EC51B8DE2BFD504185EB51E89ADC544185EB51B834FD50410AD7A3909BDC5441B81E859B3EFD504185EB51189BDC544148E17A544EFD5041713D0AF799DC544148E17A7464FD5041E17A14EE98DC5441713D0AA77CFD5041CDCCCCFC97DC5441295C8F6287FD504148E17A8497DC5441C3F528ACBAFD5041CDCCCC3C94DC54413D0AD793BAFD5041D7A3704D91DC54417B14AE17BAFD5041D7A3702D90DC544148E17A44B9FD5041CDCCCC0C90DC54413D0AD773A3FD5041A4703D4A91DC54417B14AE9799FD50419A9999D991DC5441F6285C2F87FD5041295C8FD292DC5441B81E857B84FD5041666666D692DC5441F6285C6F76FD5041D7A370AD91DC5441C3F528FC65FD5041C3F5286C92DC544114AE47614FFD50417B14AE0795DC5441CDCCCCDC39FD5041EC51B80E94DC544148E17AB434FD50413D0AD7E396DC54416666669627FD5041295C8F8294DC54416666662627FD50410000007094DC54413D0AD75323FD5041295C8FA295DC5441010300000001000000090000007B14AEB762FB5041333333E31FDC54417B14AE3762FB50411F85EBC121DC5441295C8F025FFB50411F85EBA129DC54417B14AE6766FB5041295C8F022BDC54417B14AE576BFB5041AE47E10A22DC5441AE47E16A6DFB5041333333431EDC5441CDCCCC0C65FB5041EC51B83E1DDC544148E17A7463FB5041EC51B80E1DDC54417B14AEB762FB5041333333E31FDC544101030000000100000011000000EC51B83EADFB5041A4703D0A28DC544185EB5178A2FB504185EB518826DC54415C8FC2C598FB50411F85EB1125DC54411F85EB8191FB5041000000F023DC5441CDCCCCEC90FB5041713D0AB729DC5441000000D094FB5041B81E854B2ADC544148E17A049DFB5041A4703D8A2BDC5441295C8F12A0FB50410AD7A3002CDC54413D0AD7A3A9FB5041A4703D5A2DDC544133333333AFFB50418FC2F5282EDC5441E17A144EB2FB5041B81E859B2EDC5441CDCCCCCCB5FB5041C3F5281C2FDC544152B81EE5B9FB5041A4703DCA2EDC5441A4703DAABAFB5041000000702BDC5441295C8FD2BAFB50418FC2F5D829DC54413D0AD7E3B7FB504185EB517829DC5441EC51B83EADFB5041A4703D0A28DC5441
+</a>
+
+<b>
+010600000001000000010300000001000000370000005415AED709FC5041EA7A149E2BDC5441B15A8F5208FC5041C90AD7732DDC54416721A6B507FC50416E71265A2DDC5441D43C4D8906FC5041AA9447532FDC54412236B71609FC5041C9942EC02FDC5441BEAB94DA0BFC5041D8514F4830DC544151418FBE15FC50417E8BB1E031DC5441378DB3C21CFC5041D4F4132333DC5441201CFC3E1FFC5041ACC5FF8433DC5441C2BF2B9725FC504164C0E15234DC5441AF65EE132CFC5041C0FE751135DC54416B45FA9534FC504193B9647336DC54419030CEB039FC5041A633A68337DC54415A1A2CB039FC504105CF148837DC54417665FE223CFC504149368DF037DC5441C470BD3749FC504189ABB56D39DC544184D16E1651FC504103EA30993ADC5441E4BE745755FC5041B7A4388E3BDC54418AF8D6EF56FC50414EE5FE723BDC5441951FC2A557FC504118D0EAAD3ADC5441BC66664655FC5041D416AE9739DC54414FC5732E52FC504179C6BC9938DC54416666667651FC5041EC51B85E38DC544178BF1BC24FFC5041715A3DFE37DC54413F7EE3CD49FC5041DC892DAD36DC54412FB69CAF48FC50415C7453D537DC54419042233844FC50414BF511C536DC54413B9F47283EFC5041CEBB969935DC544149E471593CFC504127FC8EA434DC54414A6A17B63BFC5041AF7F340134DC54412B6A30493BFC504155C7459F32DC54412B6A30493BFC5041151A7C9331DC5441DAD37E2D3BFC5041289F1F8A31DC5441FDCFCC1C3BFC50416DE47A8431DC544170B31B763AFC5041417ED94B31DC5441F6285CCF39FC50413333331331DC544121C3251638FC504160CCCC7D30DC54416677142E33FC5041FAE57AD42EDC544188E4D8382EFC50414D82F2252DDC544114AE47812DFC50417B14AEE72CDC5441F5DAD6EB2CFC50413EDAB2E22CDC54415CAC47A12BFC5041F416AED72CDC544138B6EF7D29FC5041BB6C8CC52CDC54411F85EB0128FC50418FC2F5B82CDC5441A1164F8522FC50417E5D2D8A2CDC54412B3A0AC721FC50415E0AD7832CDC54414AF2AA7F21FC5041321A8B812CDC5441F615504D21FC5041234CEC7F2CDC544117D7577C20FC50412E9747532FDC54415C9D0E771EFC50415B18D41C2FDC5441DE5ECC631EFC5041406F82672CDC54417FCB9BA81BFC5041337B38502CDC54417FE27AF417FC504118D9A3302CDC54413D17325D11FC5041C13031EC2BDC54415415AED709FC5041EA7A149E2BDC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>875509 - 401532
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -16 </desc>
+<a>
+01060000000B00000001030000000100000019000000B81E852B1DFE50417B14AE27AADC5441B81E858B19FE5041EC51B8CEA5DC54418FC2F57814FE504148E17AA4A0DC5441B81E850B0DFE5041C3F5284C9BDC5441C3F5282C02FE50419A99993996DC54411F85EB91F8FD504148E17A2494DC5441000000E0EFFD50418FC2F59893DC54411F85EB21DAFD504152B81EF594DC54419A999979C7FD5041F6285CAF95DC54417B14AE87BFFD5041E17A14FE95DC54410AD7A3F0BFFD5041AE47E14A9BDC5441E17A147EC1FD5041E17A145E9CDC54418FC2F598D0FD504152B81E659BDC5441E17A146EDBFD5041295C8F929ADC54415C8FC285E9FD50410AD7A38099DC54415C8FC265F6FD5041E17A14DE99DC544185EB51E8FAFD50417B14AEC79ADC54419A99999907FE50411F85EB319DDC544152B81E2511FE50418FC2F598A3DC54410AD7A37019FE504185EB5108AEDC544185EB51281CFE504166666636B1DC54413D0AD7331DFE5041AE47E13AAEDC5441713D0AF71DFE504148E17A54ACDC5441F6285C1F1EFE5041AE47E1BAABDC5441B81E852B1DFE50417B14AE27AADC544101030000000100000010000000000000E0BAF95041E17A141E31DB54418FC2F5D8B1F950419A9999992ADB54418FC2F578B1F950410AD7A3D02ADB5441C3F5280CB1F950411F85EB412BDB54417B14AEA7B0F9504152B81ED52BDB544114AE47B1AFF950419A9999792DDB5441295C8F62AFF95041EC51B8DE2DDB544166666616AFF950411F85EB212EDB544152B81EB5AEF950419A9999592EDB5441B81E85ABADF9504114AE47C12EDB544185EB5158ABF9504148E17A742FDB544166666656B5F95041AE47E19A36DB5441333333E3BEF9504148E17AB438DB54419A9999C9C3F95041AE47E1BA3BDB544148E17A64C6F950410000004039DB5441000000E0BAF95041E17A141E31DB5441010300000001000000A4000000C3F5285CDCFC504114AE47F182DC5441F6285C9FD3FC50411F85EB4180DC5441CDCCCCECD0FC5041EC51B8DE7FDC544166666646C4FC5041E17A140E7EDC5441713D0A17B7FC5041333333E37ADC544148E17A94A7FC5041AE47E17A76DC5441666666A6A2FC50411F85EB3174DC5441AE47E17A9DFC5041666666966FDC54413D0AD7B393FC50417B14AE1767DC544148E17A0491FC504148E17AC464DC5441C3F528FC94FC5041A4703D1A5FDC5441333333F397FC5041E17A14DE5ADC544185EB510899FC504152B81E9558DC5441E17A14EE93FC50418FC2F53855DC5441E17A145E90FC50417B14AE7752DC544152B81E358BFC5041C3F5284C4EDC54413D0AD7638AFC5041713D0AF74FDC5441333333E38CFC5041C3F5281C52DC5441A4703DEA89FC504152B81E1556DC54415C8FC20586FC504185EB51485BDC544152B81EB584FC5041B81E856B58DC54416666667684FC504185EB51F857DC5441B81E85FB82FC5041C3F5283C55DC5441713D0AE780FC50419A9999B94FDC54413D0AD70380FC5041F6285C3F4FDC54411F85EB417FFC5041713D0AD74EDC5441AE47E14A7DFC50418FC2F5C84DDC5441C3F528DC7AFC5041AE47E13A4EDC5441D7A370DD77FC50415C8FC2B54DDC5441295C8F4275FC50415C8FC2A54CDC5441333333636CFC50410AD7A39047DC5441666666D669FC504148E17AE445DC5441D7A3702D67FC5041333333C343DC5441A4703D6A63FC504185EB51F840DC54419A9999D961FC50410000000040DC5441B81E85DB60FC504185EB51783FDC5441B81E857B59FC504152B81E853BDC54416666664655FC50417B14AE9739DC54416666667651FC5041EC51B85E38DC54411F85EBC148FC50411F85EB7136DC5441F6285CBF44FC50410000007035DC5441D7A3702D3CFC50410AD7A3E031DC5441CDCCCC1C3BFC504148E17A8431DC5441F6285CCF39FC50413333331331DC5441E17A142E33FC504148E17AD42EDC544114AE47812DFC50417B14AEE72CDC544114AE47A12BFC50417B14AED72CDC54411F85EB0128FC50418FC2F5B82CDC5441713D0AC721FC50413D0AD7832CDC544148E17AC420FC5041B81E857B2CDC5441D7A370ED1EFC5041C3F5286C2CDC5441295C8FA21EFC50419A9999692CDC544148E17AF417FC50410AD7A3302CDC54417B14AED709FC5041E17A149E2BDC5441295C8F5208FC50413D0AD7732DDC5441713D0A27FCFB50415C8FC2752BDC54419A9999E9FCFB50416666660628DC54419A999949F6FB5041B81E853B26DC544114AE47B1F0FB504185EB51B824DC54411F85EB31E8FB5041A4703D0A23DC54415C8FC2B5E3FB50413D0AD7B321DC5441B81E853BDDFB50410AD7A3A020DC54417B14AED7DBFB5041CDCCCC8C20DC5441666666E6D9FB504185EB517820DC54415C8FC2F5D7FB50410000005020DC54418FC2F518D6FB5041A4703D1A20DC544100000020D3FB504148E17AE41FDC544148E17A94CFFB504148E17AA41FDC544152B81EB5C9FB5041A4703D3A1FDC5441A4703D1AC4FB504148E17AD41EDC54418FC2F578BFFB50417B14AE771EDC5441295C8F12BCFB50413D0AD7331EDC5441295C8F92B9FB50411F85EB011EDC5441C3F528ECB5FB50419A9999B91DDC5441C3F5284CB4FB50418FC2F5981DDC5441A4703D4AB1FB50415C8FC2651DDC544152B81E15AFFB5041000000401DDC5441C3F5280CACFB5041C3F5280C1DDC5441EC51B8FEA9FB50418FC2F5E81CDC54413D0AD713A8FB504185EB51C81CDC5441E17A146EA4FB5041D7A3705D1CDC54411F85EBE1A2FB5041000000301CDC5441666666F6A0FB504185EB51D81BDC5441333333A39FFB5041B81E859B1BDC544148E17AA49BFB504152B81EE51ADC5441D7A370AD97FB5041F6285C2F1ADC5441D7A3700D8CFB5041CDCCCC0C18DC5441F6285C1F87FB5041C3F5283C17DC54410AD7A33082FB50419A99994916DC54410000003080FB504148E17AE415DC54417B14AE377DFB5041D7A3703D15DC544185EB51C87AFB504152B81EB514DC544148E17AF477FB50416666661614DC544148E17A0476FB5041000000A013DC544114AE47C170FB504185EB51A812DC54417B14AE576BFB504152B81E1511DC544114AE477167FB5041295C8FF20FDC54418FC2F5485EFB50419A9999A90FDC54419A9999795DFB5041000000900FDC54415C8FC22551FB5041AE47E10A0EDC5441AE47E1FA4CFB5041713D0A870DDC54410AD7A3F044FB5041713D0AC70BDC54418FC2F5F83AFB5041B81E859B09DC54413D0AD7D339FB50415C8FC2C508DC544114AE471138FB5041F6285CCF07DC544148E17A3436FB5041EC51B85E06DC5441713D0A1733FB50410AD7A39004DC5441666666F630FB50413333339303DC54410000001030FB50410AD7A37003DC54418FC2F5082BFB504114AE47B100DC5441A4703D5A1EFB504152B81E35F9DB544152B81ED515FB5041333333A3F3DB5441F6285CFF0DFB50413D0AD713EDDB54410000008018FB50415C8FC2D5F8DB5441B81E859B27FB5041AE47E17A02DC54410000008031FB50413D0AD74308DC54417B14AEF738FB5041F6285CFF0BDC5441AE47E1FA43FB5041A4703D7A10DC54410AD7A36068FB50413D0AD71316DC5441AE47E11AC0FB504152B81EF522DC54410AD7A3C0FFFB50417B14AE572EDC544185EB51A814FC50413D0AD7E331DC5441713D0A873FFC5041CDCCCC7C38DC5441D7A370AD51FC5041B81E85EB3ADC54413333334358FC5041E17A140E3DDC5441F6285C7F5FFC50410000006040DC5441B81E85CB66FC5041B81E855B45DC544114AE47816DFC50413D0AD7834DDC5441EC51B8EE72FC50413333332352DC54418FC2F5C87DFC50413D0AD7535CDC5441C3F528DC88FC5041C3F5284C65DC5441C3F528EC97FC5041D7A3705D72DC5441C3F5281CA2FC50417B14AE5779DC5441E17A148EA4FC5041666666667BDC5441B81E85FBA4FC5041000000307ADC5441E17A147EA6FC5041000000F078DC54413D0AD743A8FC504152B81E5578DC544114AE47D1A9FC5041AE47E16A78DC5441000000B0B6FC504185EB51A87BDC5441E17A141EC4FC50410AD7A3F07EDC544148E17A54DEFC50413333333385DC54411F85EB71EBFC5041C3F5287C88DC5441C3F528ECF6FC5041295C8F828BDC5441C3F5281C08FD5041B81E852B90DC5441CDCCCCBC0CFD504152B81E2591DC54413333339310FD50410AD7A3D091DC5441EC51B89E1EFD5041A4703DEA93DC54416666660623FD5041B81E85BB94DC5441666666762BFD5041D7A3707D91DC5441EC51B8BE22FD5041000000F093DC544148E17A0422FD50411F85EBB193DC54416666669619FD5041A4703D0A92DC54410000001011FD5041C3F528BC90DC5441C3F5284C0FFD504185EB51E88FDC5441C3F5286C05FD50413D0AD7438BDC54410AD7A3C003FD504185EB51B88BDC5441D7A3700DF8FC5041EC51B88E8ADC5441713D0A17F7FC5041F6285CFF8ADC5441295C8F92EBFC50418FC2F53887DC5441295C8F12E8FC5041CDCCCC3C86DC54415C8FC2E5E5FC50410AD7A3A085DC5441F6285C7FE3FC50413D0AD7F384DC5441CDCCCC8CDFFC5041713D0AD783DC5441C3F5285CDCFC504114AE47F182DC544101030000000100000020000000333333F3B4F950411F85EBB128DB5441A4703D2AC0F95041B81E854B31DB54417B14AE17C8F950411F85EBA137DB544114AE47C1C9F95041D7A3700D36DB5441F6285C6FC8F95041E17A145E35DB5441295C8F72C8F95041B81E85AB30DB54415C8FC245C4F9504152B81E8526DB5441D7A3707DC2F950413D0AD78327DB5441D7A3701DC2F95041F6285CAF27DB5441F6285CCFC1F95041EC51B8BE27DB5441AE47E17AC1F95041713D0AB727DB5441666666F6C0F95041D7A3708D27DB5441295C8F72C0F9504148E17A7427DB5441F6285CFFBFF9504148E17A7427DB5441A4703D9ABFF950415C8FC28527DB544100000000BFF95041B81E85AB27DB5441295C8F22BEF95041E17A14FE27DB54410AD7A370BDF95041295C8F2228DB5441CDCCCCBCBCF950418FC2F53828DB5441CDCCCCFCBBF95041295C8F2228DB54411F85EBB1BBF95041F6285C0F28DB544114AE4741BBF950415C8FC2D527DB5441A4703D9ABAF95041EC51B8AE27DB5441CDCCCCECB9F950415C8FC28527DB54418FC2F568B9F95041C3F5287C27DB54419A9999C9B8F950410000008027DB5441B81E851BB8F950416666669627DB5441C3F5285CB7F950418FC2F5B827DB5441AE47E12AB6F950415C8FC20528DB54415C8FC2C5B5F9504185EB512828DB5441F6285C6FB5F950417B14AE5728DB5441333333F3B4F950411F85EBB128DB54410103000000010000009900000052B81E0542FC5041713D0A9742DC54410AD7A31044FC5041CDCCCC8C42DC544185EB51E849FC50410000007042DC54411F85EB314CFC50413333336342DC5441000000A050FC5041F6285C2F42DC544148E17A7458FC5041E17A14EE44DC54415C8FC2A559FC5041AE47E16A45DC544152B81E155BFC50410AD7A30046DC5441A4703DCA5EFC504148E17A8447DC5441F6285C2F62FC50415C8FC2E54DDC5441B81E851B62FC5041EC51B8DE4CDC5441AE47E15A65FC50418FC2F5A851DC544152B81EC567FC5041000000D054DC544114AE47B161FC50417B14AEE75DDC5441D7A370DD62FC50413D0AD7335FDC5441CDCCCCFC69FC5041295C8F1267DC5441A4703DEA70FC50419A9999F96EDC544148E17A0475FC5041EC51B84E6CDC5441F6285CEF75FC5041666666B66BDC54417B14AE9778FC50413D0AD7136ADC54410AD7A3807AFC5041713D0AE768DC5441713D0A9784FC5041C3F5281C6BDC5441C3F5286C87FC5041E17A143E6DDC5441295C8F428AFC5041000000606FDC5441D7A3703D8EFC50418FC2F5A872DC5441295C8F5291FC504148E17A3475DC54419A99999994FC504185EB51E877DC54413D0AD7639FFC504185EB51887EDC5441AE47E1AAA1FC504185EB51687FDC544185EB51F8A2FC50418FC2F5E87FDC54411F85EBC1A3FC5041B81E85AB7DDC5441B81E85ABA0FC5041A4703DAA7CDC5441C3F5287C95FC5041F6285C3F74DC54418FC2F58886FC5041E17A142E67DC5441C3F5283C7CFC504148E17AC45DDC5441F6285CEF71FC50413D0AD79353DC5441333333D36BFC5041295C8F424EDC5441D7A3703D63FC5041B81E859B46DC544185EB51B859FC5041295C8F7240DC5441EC51B81E54FC50415C8FC2053EDC54418FC2F5084BFC50419A9999393CDC544185EB51D814FC504114AE472134DC5441E17A142E02FC504148E17A5431DC5441AE47E1BABFFB50410000007027DC54410AD7A30068FB5041EC51B85E1ADC5441CDCCCCBC4FFB5041333333A316DC54413D0AD7533CFB50417B14AEE712DC54411F85EB0130FB5041E17A147E0DDC5441000000B023FB50416666666606DC5441D7A370DDE0FA5041B81E85ABD8DB5441C3F5288CD4FA5041295C8F82D2DB54419A999999C8FA504152B81E15D0DB5441EC51B8AEB6FA50419A999929CCDB544185EB5148AEFA5041CDCCCC5CC9DB54410AD7A330A7FA50411F85EBE1C4DB5441CDCCCC8C9CFA5041E17A14CEBADB544114AE47A181FA5041F6285C5F9FDB5441295C8FA27EFA5041295C8F129CDB5441AE47E16A7EFA5041EC51B81E9ADB5441EC51B8FE7CFA50417B14AE9798DB5441D7A3703D7CFA5041CDCCCC1C99DB544114AE471178FA5041333333939ADB5441F6285C9F98FA50418FC2F5D8BCDB5441A4703DFA9DFA504148E17A74C2DB5441000000D0A2FA50413D0AD783C7DB5441AE47E1DAA3FA504114AE47A1C8DB544133333323ABFA50418FC2F508CDDB5441CDCCCC4CACFA50415C8FC255D1DB5441EC51B89EACFA5041C3F528BCD2DB54417B14AE77B6FA50418FC2F5B8D2DB5441CDCCCC1CBFFA5041CDCCCC5CD1DB5441CDCCCC5CCAFA5041C3F5288CD4DB54418FC2F5D8D8FA504148E17AA4D9DB54411F85EBA1D4FA5041B81E853BDFDB544148E17A94D9FA5041EC51B88EE8DB544148E17A64D3FA5041EC51B8BEECDB54410AD7A3F0D0FA50413D0AD743F8DB544185EB5198D3FA50415C8FC2B5F9DB5441CDCCCC5CD6FA50413D0AD793FADB544152B81E15D7FA5041D7A370CDFADB5441B81E853BDCFA50418FC2F5E8FBDB5441E17A14AEDCFA5041000000B002DC54419A999909DDFA504114AE47C102DC544152B81E65E0FA504148E17A6408DC544166666636E3FA5041AE47E1DA07DC5441CDCCCCACE6FA5041E17A141E07DC5441C3F5281CE9FA504114AE478100DC544148E17A44ECFA50415C8FC2E501DC5441AE47E19AEDFA5041295C8F6209DC544185EB51B8F4FA504152B81E8519DC544152B81EC5F6FA5041F6285CCF15DC544166666606F8FA50417B14AE8713DC5441AE47E1EAF8FA50415C8FC2A510DC5441D7A370DDF8FA50410AD7A3600FDC5441CDCCCCBCF8FA50418FC2F5C80DDC544152B81EE5F9FA50419A9999D90BDC544114AE4741FAFA5041F6285C0F0CDC54419A9999B9FAFA50415C8FC2550CDC544152B81E25FCFA50413D0AD7230DDC54413333336303FB50411F85EBB109DC5441AE47E19A07FB50419A9999A906DC544152B81E250BFB5041B81E856B04DC5441713D0A1710FB50418FC2F5D800DC5441713D0AE712FB504148E17A34FFDB54417B14AEE718FB5041333333B301DC544185EB51181AFB5041D7A3704D04DC5441713D0AA71AFB50415C8FC28505DC5441333333231BFB50415C8FC29506DC5441C3F5285C25FB50418FC2F5380BDC5441E17A145E26FB5041E17A14FE0ADC54413D0AD7632CFB50410000007011DC54419A9999192DFB5041AE47E1DA11DC544185EB51F835FB50411F85EBF114DC54410AD7A32040FB50416666668618DC544185EB512847FB50419A9999E91ADC544114AE476149FB5041666666B61BDC544185EB51584AFB504152B81EF51BDC54418FC2F5B856FB5041E17A14AE1CDC54411F85EBE157FB5041CDCCCC7C1BDC5441C3F5289C58FB504148E17A141BDC54411F85EB115CFB50410AD7A3401BDC544185EB511864FB5041B81E85EB1BDC5441E17A140E6EFB50413D0AD7231DDC54410AD7A3E07DFB5041C3F528AC1FDC5441EC51B86E90FB50410000006022DC5441B81E85AB9CFB50417B14AE5724DC5441295C8F22AAFB5041EC51B84E26DC5441713D0A17B6FB504148E17A3428DC54413D0AD7F3C8FB5041D7A370DD2ADC54418FC2F5F8DAFB5041000000E02DDC54419A9999C9E2FB50411F85EB212FDC54417B14AE0703FC504148E17A5434DC5441E17A14FE07FC504114AE472135DC54410000009008FC5041713D0A6736DC5441A4703DCA0CFC5041C3F528BC36DC544114AE479110FC50413333335337DC5441F6285C3F14FC5041A4703DBA38DC5441D7A3705D19FC50410AD7A3A03ADC5441D7A370AD1CFC504114AE47C13BDC5441666666561EFC50415C8FC2853CDC544148E17A341EFC5041AE47E14A3FDC5441C3F528DC1DFC5041F6285CDF42DC5441CDCCCC2C1DFC5041CDCCCC6C49DC5441D7A3700D22FC5041B81E85CB48DC5441EC51B8CE23FC50411F85EB6148DC544148E17A2428FC5041D7A3705D47DC544152B81E7528FC50419A99994947DC5441EC51B84E29FC504152B81E1547DC5441000000C02EFC5041295C8FC245DC544185EB518831FC504185EB516844DC5441D7A3702D35FC5041295C8FC242DC5441CDCCCCFC3BFC50413D0AD7A342DC544152B81E0542FC5041713D0A9742DC5441010300000001000000A6000000295C8F0267FA5041A4703DDA79DB5441AE47E10A64FA50411F85EBF176DB54410000006061FA504152B81E5574DB544114AE479162FA5041EC51B81E73DB544148E17A5462FA5041D7A3708D71DB5441CDCCCC0C62FA5041666666D671DB5441A4703D3A60FA5041CDCCCCCC73DB5441B81E854B5FFA5041E17A14DE72DB5441AE47E1DA5EFA5041B81E856B72DB5441666666A65EFA5041CDCCCC9C72DB5441E17A14FE55FA5041333333D369DB5441E17A149E57FA5041CDCCCC2C68DB54415C8FC2D55AFA50417B14AE576BDB54411F85EB315DFA5041000000206CDB5441F6285CEF61FA5041AE47E1BA70DB54415C8FC29561FA5041333333A36FDB544148E17A2461FA5041CDCCCCDC6EDB5441000000D05FFA50411F85EB116EDB5441D7A3702D5FFA504185EB51886DDB544152B81E055FFA5041333333336DDB54413D0AD7A35EFA5041713D0AD76BDB5441AE47E13A5EFA50419A9999696BDB544152B81E955CFA50415C8FC2356ADB544185EB51585CFA50413D0AD7C369DB54417B14AE275CFA50410000009068DB5441AE47E1CA5BFA50411F85EBD167DB5441A4703D7A5AFA50411F85EBB166DB544152B81E255AFA50413D0AD71366DB54411F85EB015AFA5041333333F364DB54410AD7A3A059FA5041A4703D3A64DB54416666660657FA5041EC51B8CE61DB54418FC2F51857FA50419A99993960DB5441D7A370ED56FA5041EC51B8DE5FDB544148E17A0456FA50410AD7A3E05EDB544114AE47D154FA5041C3F5285C5DDB5441A4703DCA53FA5041C3F5289C5BDB54410000002050FA5041A4703DCA5EDB54413333330340FA50413333336351DB5441D7A3701D3CFA5041D7A3707D4DDB54417B14AE673BFA50417B14AEC74CDB5441CDCCCC8C27FA5041D7A370ED38DB5441D7A370FD18FA50419A99990935DB54417B14AEB717FA5041000000C034DB54419A9999A901FA5041295C8F5235DB5441F6285C1FEEF950418FC2F5F83BDB5441CDCCCCDCDBF95041B81E853B3DDB5441A4703D3AD4F9504152B81E953BDB5441EC51B85ED3F95041333333333BDB5441C3F5284CD1F95041AE47E11A3DDB5441C3F5283CD6F95041AE47E1BA3EDB5441A4703D9AD8F95041666666B63FDB544152B81E25E3F950411F85EBE140DB54411F85EBE1E4F95041295C8F6240DB54417B14AE97EAF95041E17A14CE3FDB5441000000D0EEF95041A4703DFA3EDB54417B14AE87F3F95041D7A3707D3DDB5441E17A140EFCF950417B14AE973ADB54410AD7A38003FA50415C8FC2C538DB54417B14AE470BFA50417B14AEC737DB5441713D0A7714FA5041C3F5281C38DB5441C3F528AC1AFA5041A4703D5A39DB5441713D0AA71DFA5041333333433ADB5441F6285C7F1FFA5041713D0A273CDB54418FC2F53828FA5041EC51B8AE40DB5441A4703DBA2AFA5041B81E854B41DB5441AE47E11A30FA50418FC2F5D845DB544185EB517837FA5041666666364DDB54418FC2F51850FA5041295C8FA266DB544114AE47F157FA50410AD7A3E06EDB5441666666D658FA50410AD7A39070DB544148E17AB459FA5041AE47E16A71DB54415C8FC2355AFA504148E17AF471DB544185EB51F860FA50416666662679DB54417B14AE3761FA50419A99995979DB5441E17A143E62FA50417B14AE9779DB544148E17AF466FA5041E17A143E7EDB54413D0AD75373FA5041E17A14FE8ADB544185EB51A876FA5041295C8F828EDB54413D0AD7C377FA50413333339390DB5441AE47E16A78FA50416666664691DB54419A9999B977FA5041713D0AD791DB54417B14AE4776FA50415C8FC2D590DB544152B81E4574FA504152B81E7590DB5441333333B372FA504148E17AF48FDB54411F85EB2165FA504114AE472181DB5441B81E852B60FA5041A4703D4A7BDB5441B81E856B60FA5041CDCCCC4C7ADB54419A99993960FA504114AE47117ADB54416666660659FA50415C8FC26572DB544152B81E9558FA5041B81E85FB71DB5441B81E858B57FA504152B81E7571DB544114AE474156FA5041333333C370DB5441CDCCCC1C4EFA50418FC2F53868DB544148E17AE436FA50410AD7A33050DB5441E17A149E2EFA5041A4703DEA47DB5441D7A370FD28FA5041CDCCCC9C43DB544114AE474127FA5041CDCCCC8C41DB5441666666F61EFA50411F85EB313DDB544114AE47F11DFA50417B14AEC73CDB5441666666D61AFA504152B81E153CDB54411F85EB6114FA5041D7A3706D3ADB54411F85EB710BFA5041E17A142E3ADB5441F6285CFF03FA504114AE47413BDB54411F85EBA1FCF95041333333133DDB544152B81E35F2F950411F85EBA140DB5441A4703D3AEFF95041B81E858B41DB54417B14AED7EAF95041E17A14DE42DB544133333333E7F950413333333343DB544133333323E4F95041E17A14DE42DB54415C8FC2E5E2F95041F6285C1F42DB5441295C8F62D8F95041CDCCCCEC40DB544148E17AD4D4F950411F85EBE140DB5441E17A146ED2F95041295C8F6240DB544185EB51F8CEF95041EC51B83E3FDB544114AE4731CEF95041666666F63FDB5441D7A370DDCCF95041F6285C2F41DB5441CDCCCCACD6F95041AE47E13A47DB54417B14AEB7D6F95041713D0AA744DB544185EB5118D7F9504152B81E9543DB5441713D0A67DCF95041666666B643DB54411F85EBE1E0F950418FC2F51844DB5441295C8FC2E0F950413D0AD78345DB5441EC51B8CEEBF95041713D0A7746DB54415C8FC2D5EFF95041B81E853B45DB5441F6285C8FF3F950418FC2F51844DB54419A9999F901FA50417B14AEA73FDB5441D7A370DD0FFA50417B14AE573EDB5441333333E31BFA504148E17A5440DB544148E17AA41CFA5041E17A141E46DB544148E17A741EFA504114AE47D147DB54410AD7A3301FFA5041713D0AD73FDB54415C8FC20527FA5041D7A370FD43DB5441713D0A472EFA504152B81E254ADB544185EB51B835FA50415C8FC2C551DB5441E17A14BE38FA5041E17A14DE54DB5441CDCCCC3C3CFA50413333337358DB5441C3F528AC3FFA504148E17A145CDB54419A99992943FA5041AE47E1AA5FDB54417B14AE974AFA50415C8FC25567DB5441333333F343FA50413D0AD7E36CDB5441C3F5288C47FA5041AE47E19A70DB5441AE47E18A48FA5041333333A371DB54419A9999994FFA504152B81E356EDB5441000000A053FA5041EC51B82E72DB544152B81E4557FA50410000006075DB54416666669658FA5041713D0A8776DB5441B81E854B59FA504185EB51D875DB54417B14AEF75CFA5041666666A679DB5441B81E859B5CFA5041F6285CFF79DB544185EB513871FA50413D0AD72393DB5441E17A141E74FA5041C3F528EC93DB54417B14AE8774FA5041EC51B88E93DB544152B81EA575FA504148E17AC494DB54413D0AD71374FA5041AE47E16A96DB54410AD7A37074FA50418FC2F5C896DB5441D7A370CD7BFA5041000000A090DB5441D7A370CD80FA5041CDCCCC0C90DB54417B14AE677EFA5041333333738DDB5441CDCCCC4C72FA5041AE47E10A84DB54413333339374FA5041C3F528AC7FDB544152B81E8573FA5041000000A07EDB54410AD7A38072FA5041333333937EDB5441EC51B85E73FA5041000000707FDB5441F6285C2F71FA5041295C8FC283DB54418FC2F5786BFA50419A9999397EDB5441295C8F0267FA5041A4703DDA79DB54410103000000010000001F000000D7A3709DF9FD5041D7A3704D89DC5441F6285C4FF5FD50410AD7A38088DC5441CDCCCCACF4FD50419A9999D98BDC544133333303DBFD50419A9999A98DDC544114AE47E1BFFD50411F85EB2190DC54415C8FC215BFFD504148E17A4490DC544114AE4761BFFD5041295C8F1294DC5441CDCCCC4CC7FD5041E17A14CE93DC5441AE47E10ADAFD5041F6285CDF92DC5441713D0AF7EFFD50418FC2F5C891DC54417B14AED7F8FD50415C8FC22592DC5441EC51B8CE02FE50419A99996994DC5441E17A140E0AFE504114AE472197DC54417B14AE370FFE5041E17A144E99DC544148E17AD415FE5041666666A69EDC54417B14AEE71AFE5041CDCCCC2CA4DC5441E17A149E1EFE504148E17AB4A8DC54410000005020FE5041713D0AF7AADC54419A99992921FE5041AE47E1AAAADC54413333337320FE504114AE4781A9DC54410AD7A3E01FFE504185EB5188A8DC5441295C8F521FFE50411F85EBD1A7DC54411F85EB6120FE50415C8FC2A5A4DC5441D7A370CD20FE504152B81E95A3DC5441A4703D2A1BFE50417B14AE279EDC54417B14AE671AFE5041C3F5281C9DDC544185EB514816FE5041EC51B88E98DC54413D0AD72312FE5041CDCCCC7C95DC544114AE47210AFE5041CDCCCC8C8FDC54417B14AED706FE5041D7A3701D8DDC5441D7A3709DF9FD5041D7A3704D89DC54410103000000010000003900000014AE47B17FFD50419A9999799FDC54410AD7A3D08AFD5041E17A14DE9EDC5441A4703DEA8EFD504185EB51789FDC5441B81E851BA1FD5041E17A146E9FDC5441CDCCCC5CABFD504185EB51C89DDC54417B14AEF7BAFD5041000000409DDC54410AD7A3C0BAFD5041333333B396DC5441295C8F6287FD5041713D0A9799DC5441713D0AA77CFD50417B14AE279ADC544148E17A1464FD504185EB51489BDC54413D0AD7F34DFD50419A9999399CDC5441333333833EFD5041AE47E12A9DDC544185EB515834FD5041333333D39DDC5441EC51B8DE2BFD5041333333A39DDC54413D0AD7B321FD50418FC2F5D89BDC5441D7A3702D0DFD50413D0AD72397DC5441A4703D4ADEFC50410AD7A3B08CDC5441713D0A17A9FC50410AD7A30080DC54418FC2F5C8A6FC5041C3F5287C7EDC5441666666E6A4FC5041333333037EDC544185EB5108A4FC504114AE475180DC544114AE4701A5FC504114AE47B180DC5441C3F5280CAFFC5041E17A148E84DC5441E17A14BEBAFC5041A4703D6A87DC5441B81E852BCFFC5041EC51B8EE8BDC544100000050D1FC50419A9999798CDC5441C3F528ECD1FC50410AD7A3A08CDC54417B14AEA7D8FC5041333333538EDC5441C3F5281CDAFC504114AE47B18EDC5441C3F5286CDDFC504185EB51588FDC5441A4703D7AE1FC50413333333390DC544152B81ED5E3FC5041295C8FB290DC5441713D0AD7E5FC5041EC51B81E91DC54418FC2F578EAFC504185EB511892DC5441A4703DAAE8FC50415C8FC2159ADC5441F6285C6FEAFC5041AE47E19A9ADC54411F85EB21EAFC504114AE47219BDC54413D0AD793EBFC5041B81E854B9BDC544148E17AB4EBFC5041A4703DFA9ADC5441C3F528FCF3FC5041713D0A679DDC544148E17A64FDFC50418FC2F528A0DC5441713D0AC704FD5041333333F3A1DC5441E17A14EE03FD5041CDCCCC4CA3DC54417B14AE070AFD5041EC51B80EA5DC544152B81E550EFD5041B81E853BA5DC54413D0AD76315FD5041F6285C9FA6DC5441CDCCCC0C1EFD504100000040A9DC54419A9999B920FD5041E17A14DEAADC54415C8FC29523FD5041F6285C7FAADC544148E17AD421FD5041E17A14FEA8DC5441D7A3701D2BFD504152B81E45A3DC5441F6285CDF3AFD5041F6285C5FA3DC54415C8FC2C53AFD5041A4703DBAA4DC5441666666B645FD50413D0AD7D3A4DC54416666667652FD50417B14AE77A2DC54415C8FC2A571FD504152B81E45A2DC544114AE47B17FFD50419A9999799FDC54410103000000010000002A0000003D0AD75323FD5041295C8FA295DC54410AD7A31010FD5041333333F392DC544152B81E050CFD504152B81E4592DC54418FC2F50800FD504148E17AF48EDC5441D7A3705DFCFC5041000000108EDC544152B81E55EBFC504185EB519889DC5441D7A3708DD9FC5041CDCCCC3C85DC5441713D0AC7C2FC50417B14AE0780DC5441F6285CEFB7FC50418FC2F5587DDC544133333393ABFC504152B81E157ADC544152B81E95A8FC50410000008079DC5441713D0A57A7FC50413D0AD79379DC5441EC51B82EA6FC50419A9999997ADC544152B81EB5A5FC5041C3F528DC7BDC544152B81ED5A7FC5041AE47E1BA7CDC544152B81E45AAFC50413D0AD7B37CDC544148E17A44E0FC5041D7A3707D89DC5441EC51B8AE0EFD50419A9999C994DC5441C3F5282C22FD5041E17A141E99DC5441EC51B8DE2BFD504185EB51E89ADC544185EB51B834FD50410AD7A3909BDC5441B81E859B3EFD504185EB51189BDC544148E17A544EFD5041713D0AF799DC544148E17A7464FD5041E17A14EE98DC5441713D0AA77CFD5041CDCCCCFC97DC5441295C8F6287FD504148E17A8497DC5441C3F528ACBAFD5041CDCCCC3C94DC54413D0AD793BAFD5041D7A3704D91DC54417B14AE17BAFD5041D7A3702D90DC544148E17A44B9FD5041CDCCCC0C90DC54413D0AD773A3FD5041A4703D4A91DC54417B14AE9799FD50419A9999D991DC5441F6285C2F87FD5041295C8FD292DC5441B81E857B84FD5041666666D692DC5441F6285C6F76FD5041D7A370AD91DC5441C3F528FC65FD5041C3F5286C92DC544114AE47614FFD50417B14AE0795DC5441CDCCCCDC39FD5041EC51B80E94DC544148E17AB434FD50413D0AD7E396DC54416666669627FD5041295C8F8294DC54416666662627FD50410000007094DC54413D0AD75323FD5041295C8FA295DC5441010300000001000000090000007B14AEB762FB5041333333E31FDC54417B14AE3762FB50411F85EBC121DC5441295C8F025FFB50411F85EBA129DC54417B14AE6766FB5041295C8F022BDC54417B14AE576BFB5041AE47E10A22DC5441AE47E16A6DFB5041333333431EDC5441CDCCCC0C65FB5041EC51B83E1DDC544148E17A7463FB5041EC51B80E1DDC54417B14AEB762FB5041333333E31FDC544101030000000100000011000000EC51B83EADFB5041A4703D0A28DC544185EB5178A2FB504185EB518826DC54415C8FC2C598FB50411F85EB1125DC54411F85EB8191FB5041000000F023DC5441CDCCCCEC90FB5041713D0AB729DC5441000000D094FB5041B81E854B2ADC544148E17A049DFB5041A4703D8A2BDC5441295C8F12A0FB50410AD7A3002CDC54413D0AD7A3A9FB5041A4703D5A2DDC544133333333AFFB50418FC2F5282EDC5441E17A144EB2FB5041B81E859B2EDC5441CDCCCCCCB5FB5041C3F5281C2FDC544152B81EE5B9FB5041A4703DCA2EDC5441A4703DAABAFB5041000000702BDC5441295C8FD2BAFB50418FC2F5D829DC54413D0AD7E3B7FB504185EB517829DC5441EC51B83EADFB5041A4703D0A28DC5441
+</a>
+
+<b>
+0106000000010000000103000000010000004A000000856EB2F493FC5041730D6D9260DC5441C7F128FC94FC5041F49C3C1A5FDC5441A00C1FE595FC504168897ECD5DDC5441333333F397FC5041E17A14DE5ADC5441AE1E245998FC5041DAADE5065ADC54416B87500899FC5041D4CD1D9558DC5441E17A14EE93FC50418FC2F53855DC54410D08491693FC5041E828149254DC5441C37E135E90FC5041C73EAF7752DC5441E026088D8CFC5041C9B816624FDC544122011F358BFC50419B30294C4EDC5441A69C50D78AFC504191DD7F0B4FDC54413D0AD7638AFC5041713D0AF74FDC5441FB2A33E38CFC50417546291C52DC54418EFB3DEA89FC5041C9D51F1556DC5441BFEE3DE786FC50411E21191B5ADC54411526C20586FC50411E4351485BDC5441A1B41EB584FC50417964856B58DC54415144388A84FC50416D44B91C58DC54416666667684FC504185EB51F857DC5441B81E85FB82FC5041C3F5283C55DC5441713D0AE780FC50419A9999B94FDC5441583C124480FC50410410EB614FDC54418138D70380FC5041355B5C3F4FDC5441D8A0EB417FFC504165820AD74EDC5441636DE14A7DFC5041B4DEF5C84DDC5441CED08F027DFC5041F39930D64DDC5441C3F528DC7AFC5041AE47E13A4EDC5441D7A370DD77FC50415C8FC2B54DDC5441295C8F4275FC50415C8FC2A54CDC5441BBC532636CFC50413F97A39047DC5441FDB92E476CFC50418E8A437E47DC5441666666D669FC504148E17AE445DC544118C4F2D667FC5041BF20EF4A44DC5441DA98702D67FC5041D56633C343DC5441CDE1A23766FC50419129C40C43DC5441B4BC38F464FC504101F4BA1C42DC544102439AEE63FC5041B3FC8E5A41DC54412202292664FC5041BE39B7EE41DC5441781A59D965FC50411188D92244DC544142648B9E68FC50410ED1B0B746DC5441719754B46BFC5041B7F4E28E4ADC5441F6074A596EFC5041FE88F8434DDC544124BB6FB172FC50417FA7874B51DC544192C5666876FC5041C67841E254DC544138C905017BFC5041A7BBA35A59DC5441F15B1FEC80FC5041B97552845EDC5441C840FD2283FC50416AAB0C8160DC544170DBEB2586FC50414497A46B62DC54411575C5CC89FC5041D1389A1065DC544121A522868AFC50411B7EE6BE65DC5441DB76EB518BFC50411BE0847E66DC54418DCB60C78DFC5041E53266CE68DC544150B5A7CC90FC50415553D5786BDC54410187F11195FC5041ABC6C3436FDC5441C6CFE71598FC50410B6394E871DC5441AF8342E698FC50415BC4989772DC54418874393B99FC5041169293D772DC54413C8D27A39BFC5041B5D285A574DC5441EDCE3F2F9CFC504159F1970E75DC5441B8B263759FFC5041F2FC127377DC5441E788FEE9A1FC5041DBEFBB5478DC54416094201EA4FC5041DF8D431478DC54418CC47E72A6FC5041DBEFBB5478DC54414CB86386A8FC5041DF8D431478DC544189EAD059AAFC5041E555CAD377DC5441E2BC6AE4AAFC5041DB34D76B77DC544151BA7A94A7FC50419149E17A76DC54411965F059A4FC5041C598C9FB74DC5441D24D66A6A2FC5041386FEB3174DC5441AE47E17A9DFC5041666666966FDC54413D0AD7B393FC50417B14AE1767DC544148E17A0491FC504148E17AC464DC5441856EB2F493FC5041730D6D9260DC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>875509 - 421148
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -16 </desc>
+<a>
+01060000000B00000001030000000100000019000000B81E852B1DFE50417B14AE27AADC5441B81E858B19FE5041EC51B8CEA5DC54418FC2F57814FE504148E17AA4A0DC5441B81E850B0DFE5041C3F5284C9BDC5441C3F5282C02FE50419A99993996DC54411F85EB91F8FD504148E17A2494DC5441000000E0EFFD50418FC2F59893DC54411F85EB21DAFD504152B81EF594DC54419A999979C7FD5041F6285CAF95DC54417B14AE87BFFD5041E17A14FE95DC54410AD7A3F0BFFD5041AE47E14A9BDC5441E17A147EC1FD5041E17A145E9CDC54418FC2F598D0FD504152B81E659BDC5441E17A146EDBFD5041295C8F929ADC54415C8FC285E9FD50410AD7A38099DC54415C8FC265F6FD5041E17A14DE99DC544185EB51E8FAFD50417B14AEC79ADC54419A99999907FE50411F85EB319DDC544152B81E2511FE50418FC2F598A3DC54410AD7A37019FE504185EB5108AEDC544185EB51281CFE504166666636B1DC54413D0AD7331DFE5041AE47E13AAEDC5441713D0AF71DFE504148E17A54ACDC5441F6285C1F1EFE5041AE47E1BAABDC5441B81E852B1DFE50417B14AE27AADC544101030000000100000010000000000000E0BAF95041E17A141E31DB54418FC2F5D8B1F950419A9999992ADB54418FC2F578B1F950410AD7A3D02ADB5441C3F5280CB1F950411F85EB412BDB54417B14AEA7B0F9504152B81ED52BDB544114AE47B1AFF950419A9999792DDB5441295C8F62AFF95041EC51B8DE2DDB544166666616AFF950411F85EB212EDB544152B81EB5AEF950419A9999592EDB5441B81E85ABADF9504114AE47C12EDB544185EB5158ABF9504148E17A742FDB544166666656B5F95041AE47E19A36DB5441333333E3BEF9504148E17AB438DB54419A9999C9C3F95041AE47E1BA3BDB544148E17A64C6F950410000004039DB5441000000E0BAF95041E17A141E31DB5441010300000001000000A4000000C3F5285CDCFC504114AE47F182DC5441F6285C9FD3FC50411F85EB4180DC5441CDCCCCECD0FC5041EC51B8DE7FDC544166666646C4FC5041E17A140E7EDC5441713D0A17B7FC5041333333E37ADC544148E17A94A7FC5041AE47E17A76DC5441666666A6A2FC50411F85EB3174DC5441AE47E17A9DFC5041666666966FDC54413D0AD7B393FC50417B14AE1767DC544148E17A0491FC504148E17AC464DC5441C3F528FC94FC5041A4703D1A5FDC5441333333F397FC5041E17A14DE5ADC544185EB510899FC504152B81E9558DC5441E17A14EE93FC50418FC2F53855DC5441E17A145E90FC50417B14AE7752DC544152B81E358BFC5041C3F5284C4EDC54413D0AD7638AFC5041713D0AF74FDC5441333333E38CFC5041C3F5281C52DC5441A4703DEA89FC504152B81E1556DC54415C8FC20586FC504185EB51485BDC544152B81EB584FC5041B81E856B58DC54416666667684FC504185EB51F857DC5441B81E85FB82FC5041C3F5283C55DC5441713D0AE780FC50419A9999B94FDC54413D0AD70380FC5041F6285C3F4FDC54411F85EB417FFC5041713D0AD74EDC5441AE47E14A7DFC50418FC2F5C84DDC5441C3F528DC7AFC5041AE47E13A4EDC5441D7A370DD77FC50415C8FC2B54DDC5441295C8F4275FC50415C8FC2A54CDC5441333333636CFC50410AD7A39047DC5441666666D669FC504148E17AE445DC5441D7A3702D67FC5041333333C343DC5441A4703D6A63FC504185EB51F840DC54419A9999D961FC50410000000040DC5441B81E85DB60FC504185EB51783FDC5441B81E857B59FC504152B81E853BDC54416666664655FC50417B14AE9739DC54416666667651FC5041EC51B85E38DC54411F85EBC148FC50411F85EB7136DC5441F6285CBF44FC50410000007035DC5441D7A3702D3CFC50410AD7A3E031DC5441CDCCCC1C3BFC504148E17A8431DC5441F6285CCF39FC50413333331331DC5441E17A142E33FC504148E17AD42EDC544114AE47812DFC50417B14AEE72CDC544114AE47A12BFC50417B14AED72CDC54411F85EB0128FC50418FC2F5B82CDC5441713D0AC721FC50413D0AD7832CDC544148E17AC420FC5041B81E857B2CDC5441D7A370ED1EFC5041C3F5286C2CDC5441295C8FA21EFC50419A9999692CDC544148E17AF417FC50410AD7A3302CDC54417B14AED709FC5041E17A149E2BDC5441295C8F5208FC50413D0AD7732DDC5441713D0A27FCFB50415C8FC2752BDC54419A9999E9FCFB50416666660628DC54419A999949F6FB5041B81E853B26DC544114AE47B1F0FB504185EB51B824DC54411F85EB31E8FB5041A4703D0A23DC54415C8FC2B5E3FB50413D0AD7B321DC5441B81E853BDDFB50410AD7A3A020DC54417B14AED7DBFB5041CDCCCC8C20DC5441666666E6D9FB504185EB517820DC54415C8FC2F5D7FB50410000005020DC54418FC2F518D6FB5041A4703D1A20DC544100000020D3FB504148E17AE41FDC544148E17A94CFFB504148E17AA41FDC544152B81EB5C9FB5041A4703D3A1FDC5441A4703D1AC4FB504148E17AD41EDC54418FC2F578BFFB50417B14AE771EDC5441295C8F12BCFB50413D0AD7331EDC5441295C8F92B9FB50411F85EB011EDC5441C3F528ECB5FB50419A9999B91DDC5441C3F5284CB4FB50418FC2F5981DDC5441A4703D4AB1FB50415C8FC2651DDC544152B81E15AFFB5041000000401DDC5441C3F5280CACFB5041C3F5280C1DDC5441EC51B8FEA9FB50418FC2F5E81CDC54413D0AD713A8FB504185EB51C81CDC5441E17A146EA4FB5041D7A3705D1CDC54411F85EBE1A2FB5041000000301CDC5441666666F6A0FB504185EB51D81BDC5441333333A39FFB5041B81E859B1BDC544148E17AA49BFB504152B81EE51ADC5441D7A370AD97FB5041F6285C2F1ADC5441D7A3700D8CFB5041CDCCCC0C18DC5441F6285C1F87FB5041C3F5283C17DC54410AD7A33082FB50419A99994916DC54410000003080FB504148E17AE415DC54417B14AE377DFB5041D7A3703D15DC544185EB51C87AFB504152B81EB514DC544148E17AF477FB50416666661614DC544148E17A0476FB5041000000A013DC544114AE47C170FB504185EB51A812DC54417B14AE576BFB504152B81E1511DC544114AE477167FB5041295C8FF20FDC54418FC2F5485EFB50419A9999A90FDC54419A9999795DFB5041000000900FDC54415C8FC22551FB5041AE47E10A0EDC5441AE47E1FA4CFB5041713D0A870DDC54410AD7A3F044FB5041713D0AC70BDC54418FC2F5F83AFB5041B81E859B09DC54413D0AD7D339FB50415C8FC2C508DC544114AE471138FB5041F6285CCF07DC544148E17A3436FB5041EC51B85E06DC5441713D0A1733FB50410AD7A39004DC5441666666F630FB50413333339303DC54410000001030FB50410AD7A37003DC54418FC2F5082BFB504114AE47B100DC5441A4703D5A1EFB504152B81E35F9DB544152B81ED515FB5041333333A3F3DB5441F6285CFF0DFB50413D0AD713EDDB54410000008018FB50415C8FC2D5F8DB5441B81E859B27FB5041AE47E17A02DC54410000008031FB50413D0AD74308DC54417B14AEF738FB5041F6285CFF0BDC5441AE47E1FA43FB5041A4703D7A10DC54410AD7A36068FB50413D0AD71316DC5441AE47E11AC0FB504152B81EF522DC54410AD7A3C0FFFB50417B14AE572EDC544185EB51A814FC50413D0AD7E331DC5441713D0A873FFC5041CDCCCC7C38DC5441D7A370AD51FC5041B81E85EB3ADC54413333334358FC5041E17A140E3DDC5441F6285C7F5FFC50410000006040DC5441B81E85CB66FC5041B81E855B45DC544114AE47816DFC50413D0AD7834DDC5441EC51B8EE72FC50413333332352DC54418FC2F5C87DFC50413D0AD7535CDC5441C3F528DC88FC5041C3F5284C65DC5441C3F528EC97FC5041D7A3705D72DC5441C3F5281CA2FC50417B14AE5779DC5441E17A148EA4FC5041666666667BDC5441B81E85FBA4FC5041000000307ADC5441E17A147EA6FC5041000000F078DC54413D0AD743A8FC504152B81E5578DC544114AE47D1A9FC5041AE47E16A78DC5441000000B0B6FC504185EB51A87BDC5441E17A141EC4FC50410AD7A3F07EDC544148E17A54DEFC50413333333385DC54411F85EB71EBFC5041C3F5287C88DC5441C3F528ECF6FC5041295C8F828BDC5441C3F5281C08FD5041B81E852B90DC5441CDCCCCBC0CFD504152B81E2591DC54413333339310FD50410AD7A3D091DC5441EC51B89E1EFD5041A4703DEA93DC54416666660623FD5041B81E85BB94DC5441666666762BFD5041D7A3707D91DC5441EC51B8BE22FD5041000000F093DC544148E17A0422FD50411F85EBB193DC54416666669619FD5041A4703D0A92DC54410000001011FD5041C3F528BC90DC5441C3F5284C0FFD504185EB51E88FDC5441C3F5286C05FD50413D0AD7438BDC54410AD7A3C003FD504185EB51B88BDC5441D7A3700DF8FC5041EC51B88E8ADC5441713D0A17F7FC5041F6285CFF8ADC5441295C8F92EBFC50418FC2F53887DC5441295C8F12E8FC5041CDCCCC3C86DC54415C8FC2E5E5FC50410AD7A3A085DC5441F6285C7FE3FC50413D0AD7F384DC5441CDCCCC8CDFFC5041713D0AD783DC5441C3F5285CDCFC504114AE47F182DC544101030000000100000020000000333333F3B4F950411F85EBB128DB5441A4703D2AC0F95041B81E854B31DB54417B14AE17C8F950411F85EBA137DB544114AE47C1C9F95041D7A3700D36DB5441F6285C6FC8F95041E17A145E35DB5441295C8F72C8F95041B81E85AB30DB54415C8FC245C4F9504152B81E8526DB5441D7A3707DC2F950413D0AD78327DB5441D7A3701DC2F95041F6285CAF27DB5441F6285CCFC1F95041EC51B8BE27DB5441AE47E17AC1F95041713D0AB727DB5441666666F6C0F95041D7A3708D27DB5441295C8F72C0F9504148E17A7427DB5441F6285CFFBFF9504148E17A7427DB5441A4703D9ABFF950415C8FC28527DB544100000000BFF95041B81E85AB27DB5441295C8F22BEF95041E17A14FE27DB54410AD7A370BDF95041295C8F2228DB5441CDCCCCBCBCF950418FC2F53828DB5441CDCCCCFCBBF95041295C8F2228DB54411F85EBB1BBF95041F6285C0F28DB544114AE4741BBF950415C8FC2D527DB5441A4703D9ABAF95041EC51B8AE27DB5441CDCCCCECB9F950415C8FC28527DB54418FC2F568B9F95041C3F5287C27DB54419A9999C9B8F950410000008027DB5441B81E851BB8F950416666669627DB5441C3F5285CB7F950418FC2F5B827DB5441AE47E12AB6F950415C8FC20528DB54415C8FC2C5B5F9504185EB512828DB5441F6285C6FB5F950417B14AE5728DB5441333333F3B4F950411F85EBB128DB54410103000000010000009900000052B81E0542FC5041713D0A9742DC54410AD7A31044FC5041CDCCCC8C42DC544185EB51E849FC50410000007042DC54411F85EB314CFC50413333336342DC5441000000A050FC5041F6285C2F42DC544148E17A7458FC5041E17A14EE44DC54415C8FC2A559FC5041AE47E16A45DC544152B81E155BFC50410AD7A30046DC5441A4703DCA5EFC504148E17A8447DC5441F6285C2F62FC50415C8FC2E54DDC5441B81E851B62FC5041EC51B8DE4CDC5441AE47E15A65FC50418FC2F5A851DC544152B81EC567FC5041000000D054DC544114AE47B161FC50417B14AEE75DDC5441D7A370DD62FC50413D0AD7335FDC5441CDCCCCFC69FC5041295C8F1267DC5441A4703DEA70FC50419A9999F96EDC544148E17A0475FC5041EC51B84E6CDC5441F6285CEF75FC5041666666B66BDC54417B14AE9778FC50413D0AD7136ADC54410AD7A3807AFC5041713D0AE768DC5441713D0A9784FC5041C3F5281C6BDC5441C3F5286C87FC5041E17A143E6DDC5441295C8F428AFC5041000000606FDC5441D7A3703D8EFC50418FC2F5A872DC5441295C8F5291FC504148E17A3475DC54419A99999994FC504185EB51E877DC54413D0AD7639FFC504185EB51887EDC5441AE47E1AAA1FC504185EB51687FDC544185EB51F8A2FC50418FC2F5E87FDC54411F85EBC1A3FC5041B81E85AB7DDC5441B81E85ABA0FC5041A4703DAA7CDC5441C3F5287C95FC5041F6285C3F74DC54418FC2F58886FC5041E17A142E67DC5441C3F5283C7CFC504148E17AC45DDC5441F6285CEF71FC50413D0AD79353DC5441333333D36BFC5041295C8F424EDC5441D7A3703D63FC5041B81E859B46DC544185EB51B859FC5041295C8F7240DC5441EC51B81E54FC50415C8FC2053EDC54418FC2F5084BFC50419A9999393CDC544185EB51D814FC504114AE472134DC5441E17A142E02FC504148E17A5431DC5441AE47E1BABFFB50410000007027DC54410AD7A30068FB5041EC51B85E1ADC5441CDCCCCBC4FFB5041333333A316DC54413D0AD7533CFB50417B14AEE712DC54411F85EB0130FB5041E17A147E0DDC5441000000B023FB50416666666606DC5441D7A370DDE0FA5041B81E85ABD8DB5441C3F5288CD4FA5041295C8F82D2DB54419A999999C8FA504152B81E15D0DB5441EC51B8AEB6FA50419A999929CCDB544185EB5148AEFA5041CDCCCC5CC9DB54410AD7A330A7FA50411F85EBE1C4DB5441CDCCCC8C9CFA5041E17A14CEBADB544114AE47A181FA5041F6285C5F9FDB5441295C8FA27EFA5041295C8F129CDB5441AE47E16A7EFA5041EC51B81E9ADB5441EC51B8FE7CFA50417B14AE9798DB5441D7A3703D7CFA5041CDCCCC1C99DB544114AE471178FA5041333333939ADB5441F6285C9F98FA50418FC2F5D8BCDB5441A4703DFA9DFA504148E17A74C2DB5441000000D0A2FA50413D0AD783C7DB5441AE47E1DAA3FA504114AE47A1C8DB544133333323ABFA50418FC2F508CDDB5441CDCCCC4CACFA50415C8FC255D1DB5441EC51B89EACFA5041C3F528BCD2DB54417B14AE77B6FA50418FC2F5B8D2DB5441CDCCCC1CBFFA5041CDCCCC5CD1DB5441CDCCCC5CCAFA5041C3F5288CD4DB54418FC2F5D8D8FA504148E17AA4D9DB54411F85EBA1D4FA5041B81E853BDFDB544148E17A94D9FA5041EC51B88EE8DB544148E17A64D3FA5041EC51B8BEECDB54410AD7A3F0D0FA50413D0AD743F8DB544185EB5198D3FA50415C8FC2B5F9DB5441CDCCCC5CD6FA50413D0AD793FADB544152B81E15D7FA5041D7A370CDFADB5441B81E853BDCFA50418FC2F5E8FBDB5441E17A14AEDCFA5041000000B002DC54419A999909DDFA504114AE47C102DC544152B81E65E0FA504148E17A6408DC544166666636E3FA5041AE47E1DA07DC5441CDCCCCACE6FA5041E17A141E07DC5441C3F5281CE9FA504114AE478100DC544148E17A44ECFA50415C8FC2E501DC5441AE47E19AEDFA5041295C8F6209DC544185EB51B8F4FA504152B81E8519DC544152B81EC5F6FA5041F6285CCF15DC544166666606F8FA50417B14AE8713DC5441AE47E1EAF8FA50415C8FC2A510DC5441D7A370DDF8FA50410AD7A3600FDC5441CDCCCCBCF8FA50418FC2F5C80DDC544152B81EE5F9FA50419A9999D90BDC544114AE4741FAFA5041F6285C0F0CDC54419A9999B9FAFA50415C8FC2550CDC544152B81E25FCFA50413D0AD7230DDC54413333336303FB50411F85EBB109DC5441AE47E19A07FB50419A9999A906DC544152B81E250BFB5041B81E856B04DC5441713D0A1710FB50418FC2F5D800DC5441713D0AE712FB504148E17A34FFDB54417B14AEE718FB5041333333B301DC544185EB51181AFB5041D7A3704D04DC5441713D0AA71AFB50415C8FC28505DC5441333333231BFB50415C8FC29506DC5441C3F5285C25FB50418FC2F5380BDC5441E17A145E26FB5041E17A14FE0ADC54413D0AD7632CFB50410000007011DC54419A9999192DFB5041AE47E1DA11DC544185EB51F835FB50411F85EBF114DC54410AD7A32040FB50416666668618DC544185EB512847FB50419A9999E91ADC544114AE476149FB5041666666B61BDC544185EB51584AFB504152B81EF51BDC54418FC2F5B856FB5041E17A14AE1CDC54411F85EBE157FB5041CDCCCC7C1BDC5441C3F5289C58FB504148E17A141BDC54411F85EB115CFB50410AD7A3401BDC544185EB511864FB5041B81E85EB1BDC5441E17A140E6EFB50413D0AD7231DDC54410AD7A3E07DFB5041C3F528AC1FDC5441EC51B86E90FB50410000006022DC5441B81E85AB9CFB50417B14AE5724DC5441295C8F22AAFB5041EC51B84E26DC5441713D0A17B6FB504148E17A3428DC54413D0AD7F3C8FB5041D7A370DD2ADC54418FC2F5F8DAFB5041000000E02DDC54419A9999C9E2FB50411F85EB212FDC54417B14AE0703FC504148E17A5434DC5441E17A14FE07FC504114AE472135DC54410000009008FC5041713D0A6736DC5441A4703DCA0CFC5041C3F528BC36DC544114AE479110FC50413333335337DC5441F6285C3F14FC5041A4703DBA38DC5441D7A3705D19FC50410AD7A3A03ADC5441D7A370AD1CFC504114AE47C13BDC5441666666561EFC50415C8FC2853CDC544148E17A341EFC5041AE47E14A3FDC5441C3F528DC1DFC5041F6285CDF42DC5441CDCCCC2C1DFC5041CDCCCC6C49DC5441D7A3700D22FC5041B81E85CB48DC5441EC51B8CE23FC50411F85EB6148DC544148E17A2428FC5041D7A3705D47DC544152B81E7528FC50419A99994947DC5441EC51B84E29FC504152B81E1547DC5441000000C02EFC5041295C8FC245DC544185EB518831FC504185EB516844DC5441D7A3702D35FC5041295C8FC242DC5441CDCCCCFC3BFC50413D0AD7A342DC544152B81E0542FC5041713D0A9742DC5441010300000001000000A6000000295C8F0267FA5041A4703DDA79DB5441AE47E10A64FA50411F85EBF176DB54410000006061FA504152B81E5574DB544114AE479162FA5041EC51B81E73DB544148E17A5462FA5041D7A3708D71DB5441CDCCCC0C62FA5041666666D671DB5441A4703D3A60FA5041CDCCCCCC73DB5441B81E854B5FFA5041E17A14DE72DB5441AE47E1DA5EFA5041B81E856B72DB5441666666A65EFA5041CDCCCC9C72DB5441E17A14FE55FA5041333333D369DB5441E17A149E57FA5041CDCCCC2C68DB54415C8FC2D55AFA50417B14AE576BDB54411F85EB315DFA5041000000206CDB5441F6285CEF61FA5041AE47E1BA70DB54415C8FC29561FA5041333333A36FDB544148E17A2461FA5041CDCCCCDC6EDB5441000000D05FFA50411F85EB116EDB5441D7A3702D5FFA504185EB51886DDB544152B81E055FFA5041333333336DDB54413D0AD7A35EFA5041713D0AD76BDB5441AE47E13A5EFA50419A9999696BDB544152B81E955CFA50415C8FC2356ADB544185EB51585CFA50413D0AD7C369DB54417B14AE275CFA50410000009068DB5441AE47E1CA5BFA50411F85EBD167DB5441A4703D7A5AFA50411F85EBB166DB544152B81E255AFA50413D0AD71366DB54411F85EB015AFA5041333333F364DB54410AD7A3A059FA5041A4703D3A64DB54416666660657FA5041EC51B8CE61DB54418FC2F51857FA50419A99993960DB5441D7A370ED56FA5041EC51B8DE5FDB544148E17A0456FA50410AD7A3E05EDB544114AE47D154FA5041C3F5285C5DDB5441A4703DCA53FA5041C3F5289C5BDB54410000002050FA5041A4703DCA5EDB54413333330340FA50413333336351DB5441D7A3701D3CFA5041D7A3707D4DDB54417B14AE673BFA50417B14AEC74CDB5441CDCCCC8C27FA5041D7A370ED38DB5441D7A370FD18FA50419A99990935DB54417B14AEB717FA5041000000C034DB54419A9999A901FA5041295C8F5235DB5441F6285C1FEEF950418FC2F5F83BDB5441CDCCCCDCDBF95041B81E853B3DDB5441A4703D3AD4F9504152B81E953BDB5441EC51B85ED3F95041333333333BDB5441C3F5284CD1F95041AE47E11A3DDB5441C3F5283CD6F95041AE47E1BA3EDB5441A4703D9AD8F95041666666B63FDB544152B81E25E3F950411F85EBE140DB54411F85EBE1E4F95041295C8F6240DB54417B14AE97EAF95041E17A14CE3FDB5441000000D0EEF95041A4703DFA3EDB54417B14AE87F3F95041D7A3707D3DDB5441E17A140EFCF950417B14AE973ADB54410AD7A38003FA50415C8FC2C538DB54417B14AE470BFA50417B14AEC737DB5441713D0A7714FA5041C3F5281C38DB5441C3F528AC1AFA5041A4703D5A39DB5441713D0AA71DFA5041333333433ADB5441F6285C7F1FFA5041713D0A273CDB54418FC2F53828FA5041EC51B8AE40DB5441A4703DBA2AFA5041B81E854B41DB5441AE47E11A30FA50418FC2F5D845DB544185EB517837FA5041666666364DDB54418FC2F51850FA5041295C8FA266DB544114AE47F157FA50410AD7A3E06EDB5441666666D658FA50410AD7A39070DB544148E17AB459FA5041AE47E16A71DB54415C8FC2355AFA504148E17AF471DB544185EB51F860FA50416666662679DB54417B14AE3761FA50419A99995979DB5441E17A143E62FA50417B14AE9779DB544148E17AF466FA5041E17A143E7EDB54413D0AD75373FA5041E17A14FE8ADB544185EB51A876FA5041295C8F828EDB54413D0AD7C377FA50413333339390DB5441AE47E16A78FA50416666664691DB54419A9999B977FA5041713D0AD791DB54417B14AE4776FA50415C8FC2D590DB544152B81E4574FA504152B81E7590DB5441333333B372FA504148E17AF48FDB54411F85EB2165FA504114AE472181DB5441B81E852B60FA5041A4703D4A7BDB5441B81E856B60FA5041CDCCCC4C7ADB54419A99993960FA504114AE47117ADB54416666660659FA50415C8FC26572DB544152B81E9558FA5041B81E85FB71DB5441B81E858B57FA504152B81E7571DB544114AE474156FA5041333333C370DB5441CDCCCC1C4EFA50418FC2F53868DB544148E17AE436FA50410AD7A33050DB5441E17A149E2EFA5041A4703DEA47DB5441D7A370FD28FA5041CDCCCC9C43DB544114AE474127FA5041CDCCCC8C41DB5441666666F61EFA50411F85EB313DDB544114AE47F11DFA50417B14AEC73CDB5441666666D61AFA504152B81E153CDB54411F85EB6114FA5041D7A3706D3ADB54411F85EB710BFA5041E17A142E3ADB5441F6285CFF03FA504114AE47413BDB54411F85EBA1FCF95041333333133DDB544152B81E35F2F950411F85EBA140DB5441A4703D3AEFF95041B81E858B41DB54417B14AED7EAF95041E17A14DE42DB544133333333E7F950413333333343DB544133333323E4F95041E17A14DE42DB54415C8FC2E5E2F95041F6285C1F42DB5441295C8F62D8F95041CDCCCCEC40DB544148E17AD4D4F950411F85EBE140DB5441E17A146ED2F95041295C8F6240DB544185EB51F8CEF95041EC51B83E3FDB544114AE4731CEF95041666666F63FDB5441D7A370DDCCF95041F6285C2F41DB5441CDCCCCACD6F95041AE47E13A47DB54417B14AEB7D6F95041713D0AA744DB544185EB5118D7F9504152B81E9543DB5441713D0A67DCF95041666666B643DB54411F85EBE1E0F950418FC2F51844DB5441295C8FC2E0F950413D0AD78345DB5441EC51B8CEEBF95041713D0A7746DB54415C8FC2D5EFF95041B81E853B45DB5441F6285C8FF3F950418FC2F51844DB54419A9999F901FA50417B14AEA73FDB5441D7A370DD0FFA50417B14AE573EDB5441333333E31BFA504148E17A5440DB544148E17AA41CFA5041E17A141E46DB544148E17A741EFA504114AE47D147DB54410AD7A3301FFA5041713D0AD73FDB54415C8FC20527FA5041D7A370FD43DB5441713D0A472EFA504152B81E254ADB544185EB51B835FA50415C8FC2C551DB5441E17A14BE38FA5041E17A14DE54DB5441CDCCCC3C3CFA50413333337358DB5441C3F528AC3FFA504148E17A145CDB54419A99992943FA5041AE47E1AA5FDB54417B14AE974AFA50415C8FC25567DB5441333333F343FA50413D0AD7E36CDB5441C3F5288C47FA5041AE47E19A70DB5441AE47E18A48FA5041333333A371DB54419A9999994FFA504152B81E356EDB5441000000A053FA5041EC51B82E72DB544152B81E4557FA50410000006075DB54416666669658FA5041713D0A8776DB5441B81E854B59FA504185EB51D875DB54417B14AEF75CFA5041666666A679DB5441B81E859B5CFA5041F6285CFF79DB544185EB513871FA50413D0AD72393DB5441E17A141E74FA5041C3F528EC93DB54417B14AE8774FA5041EC51B88E93DB544152B81EA575FA504148E17AC494DB54413D0AD71374FA5041AE47E16A96DB54410AD7A37074FA50418FC2F5C896DB5441D7A370CD7BFA5041000000A090DB5441D7A370CD80FA5041CDCCCC0C90DB54417B14AE677EFA5041333333738DDB5441CDCCCC4C72FA5041AE47E10A84DB54413333339374FA5041C3F528AC7FDB544152B81E8573FA5041000000A07EDB54410AD7A38072FA5041333333937EDB5441EC51B85E73FA5041000000707FDB5441F6285C2F71FA5041295C8FC283DB54418FC2F5786BFA50419A9999397EDB5441295C8F0267FA5041A4703DDA79DB54410103000000010000001F000000D7A3709DF9FD5041D7A3704D89DC5441F6285C4FF5FD50410AD7A38088DC5441CDCCCCACF4FD50419A9999D98BDC544133333303DBFD50419A9999A98DDC544114AE47E1BFFD50411F85EB2190DC54415C8FC215BFFD504148E17A4490DC544114AE4761BFFD5041295C8F1294DC5441CDCCCC4CC7FD5041E17A14CE93DC5441AE47E10ADAFD5041F6285CDF92DC5441713D0AF7EFFD50418FC2F5C891DC54417B14AED7F8FD50415C8FC22592DC5441EC51B8CE02FE50419A99996994DC5441E17A140E0AFE504114AE472197DC54417B14AE370FFE5041E17A144E99DC544148E17AD415FE5041666666A69EDC54417B14AEE71AFE5041CDCCCC2CA4DC5441E17A149E1EFE504148E17AB4A8DC54410000005020FE5041713D0AF7AADC54419A99992921FE5041AE47E1AAAADC54413333337320FE504114AE4781A9DC54410AD7A3E01FFE504185EB5188A8DC5441295C8F521FFE50411F85EBD1A7DC54411F85EB6120FE50415C8FC2A5A4DC5441D7A370CD20FE504152B81E95A3DC5441A4703D2A1BFE50417B14AE279EDC54417B14AE671AFE5041C3F5281C9DDC544185EB514816FE5041EC51B88E98DC54413D0AD72312FE5041CDCCCC7C95DC544114AE47210AFE5041CDCCCC8C8FDC54417B14AED706FE5041D7A3701D8DDC5441D7A3709DF9FD5041D7A3704D89DC54410103000000010000003900000014AE47B17FFD50419A9999799FDC54410AD7A3D08AFD5041E17A14DE9EDC5441A4703DEA8EFD504185EB51789FDC5441B81E851BA1FD5041E17A146E9FDC5441CDCCCC5CABFD504185EB51C89DDC54417B14AEF7BAFD5041000000409DDC54410AD7A3C0BAFD5041333333B396DC5441295C8F6287FD5041713D0A9799DC5441713D0AA77CFD50417B14AE279ADC544148E17A1464FD504185EB51489BDC54413D0AD7F34DFD50419A9999399CDC5441333333833EFD5041AE47E12A9DDC544185EB515834FD5041333333D39DDC5441EC51B8DE2BFD5041333333A39DDC54413D0AD7B321FD50418FC2F5D89BDC5441D7A3702D0DFD50413D0AD72397DC5441A4703D4ADEFC50410AD7A3B08CDC5441713D0A17A9FC50410AD7A30080DC54418FC2F5C8A6FC5041C3F5287C7EDC5441666666E6A4FC5041333333037EDC544185EB5108A4FC504114AE475180DC544114AE4701A5FC504114AE47B180DC5441C3F5280CAFFC5041E17A148E84DC5441E17A14BEBAFC5041A4703D6A87DC5441B81E852BCFFC5041EC51B8EE8BDC544100000050D1FC50419A9999798CDC5441C3F528ECD1FC50410AD7A3A08CDC54417B14AEA7D8FC5041333333538EDC5441C3F5281CDAFC504114AE47B18EDC5441C3F5286CDDFC504185EB51588FDC5441A4703D7AE1FC50413333333390DC544152B81ED5E3FC5041295C8FB290DC5441713D0AD7E5FC5041EC51B81E91DC54418FC2F578EAFC504185EB511892DC5441A4703DAAE8FC50415C8FC2159ADC5441F6285C6FEAFC5041AE47E19A9ADC54411F85EB21EAFC504114AE47219BDC54413D0AD793EBFC5041B81E854B9BDC544148E17AB4EBFC5041A4703DFA9ADC5441C3F528FCF3FC5041713D0A679DDC544148E17A64FDFC50418FC2F528A0DC5441713D0AC704FD5041333333F3A1DC5441E17A14EE03FD5041CDCCCC4CA3DC54417B14AE070AFD5041EC51B80EA5DC544152B81E550EFD5041B81E853BA5DC54413D0AD76315FD5041F6285C9FA6DC5441CDCCCC0C1EFD504100000040A9DC54419A9999B920FD5041E17A14DEAADC54415C8FC29523FD5041F6285C7FAADC544148E17AD421FD5041E17A14FEA8DC5441D7A3701D2BFD504152B81E45A3DC5441F6285CDF3AFD5041F6285C5FA3DC54415C8FC2C53AFD5041A4703DBAA4DC5441666666B645FD50413D0AD7D3A4DC54416666667652FD50417B14AE77A2DC54415C8FC2A571FD504152B81E45A2DC544114AE47B17FFD50419A9999799FDC54410103000000010000002A0000003D0AD75323FD5041295C8FA295DC54410AD7A31010FD5041333333F392DC544152B81E050CFD504152B81E4592DC54418FC2F50800FD504148E17AF48EDC5441D7A3705DFCFC5041000000108EDC544152B81E55EBFC504185EB519889DC5441D7A3708DD9FC5041CDCCCC3C85DC5441713D0AC7C2FC50417B14AE0780DC5441F6285CEFB7FC50418FC2F5587DDC544133333393ABFC504152B81E157ADC544152B81E95A8FC50410000008079DC5441713D0A57A7FC50413D0AD79379DC5441EC51B82EA6FC50419A9999997ADC544152B81EB5A5FC5041C3F528DC7BDC544152B81ED5A7FC5041AE47E1BA7CDC544152B81E45AAFC50413D0AD7B37CDC544148E17A44E0FC5041D7A3707D89DC5441EC51B8AE0EFD50419A9999C994DC5441C3F5282C22FD5041E17A141E99DC5441EC51B8DE2BFD504185EB51E89ADC544185EB51B834FD50410AD7A3909BDC5441B81E859B3EFD504185EB51189BDC544148E17A544EFD5041713D0AF799DC544148E17A7464FD5041E17A14EE98DC5441713D0AA77CFD5041CDCCCCFC97DC5441295C8F6287FD504148E17A8497DC5441C3F528ACBAFD5041CDCCCC3C94DC54413D0AD793BAFD5041D7A3704D91DC54417B14AE17BAFD5041D7A3702D90DC544148E17A44B9FD5041CDCCCC0C90DC54413D0AD773A3FD5041A4703D4A91DC54417B14AE9799FD50419A9999D991DC5441F6285C2F87FD5041295C8FD292DC5441B81E857B84FD5041666666D692DC5441F6285C6F76FD5041D7A370AD91DC5441C3F528FC65FD5041C3F5286C92DC544114AE47614FFD50417B14AE0795DC5441CDCCCCDC39FD5041EC51B80E94DC544148E17AB434FD50413D0AD7E396DC54416666669627FD5041295C8F8294DC54416666662627FD50410000007094DC54413D0AD75323FD5041295C8FA295DC5441010300000001000000090000007B14AEB762FB5041333333E31FDC54417B14AE3762FB50411F85EBC121DC5441295C8F025FFB50411F85EBA129DC54417B14AE6766FB5041295C8F022BDC54417B14AE576BFB5041AE47E10A22DC5441AE47E16A6DFB5041333333431EDC5441CDCCCC0C65FB5041EC51B83E1DDC544148E17A7463FB5041EC51B80E1DDC54417B14AEB762FB5041333333E31FDC544101030000000100000011000000EC51B83EADFB5041A4703D0A28DC544185EB5178A2FB504185EB518826DC54415C8FC2C598FB50411F85EB1125DC54411F85EB8191FB5041000000F023DC5441CDCCCCEC90FB5041713D0AB729DC5441000000D094FB5041B81E854B2ADC544148E17A049DFB5041A4703D8A2BDC5441295C8F12A0FB50410AD7A3002CDC54413D0AD7A3A9FB5041A4703D5A2DDC544133333333AFFB50418FC2F5282EDC5441E17A144EB2FB5041B81E859B2EDC5441CDCCCCCCB5FB5041C3F5281C2FDC544152B81EE5B9FB5041A4703DCA2EDC5441A4703DAABAFB5041000000702BDC5441295C8FD2BAFB50418FC2F5D829DC54413D0AD7E3B7FB504185EB517829DC5441EC51B83EADFB5041A4703D0A28DC5441
+</a>
+
+<b>
+0106000000010000000103000000010000004A00000048E17A0491FC504148E17AC464DC5441D59FB7F493FC504165A3659260DC5441C7F128FC94FC5041F49C3C1A5FDC5441A00C1FE595FC504168897ECD5DDC5441333333F397FC5041E17A14DE5ADC5441AE1E245998FC5041DAADE5065ADC54416B87500899FC5041D4CD1D9558DC5441E17A14EE93FC50418FC2F53855DC54411108491693FC5041EC28149254DC5441C37E135E90FC5041C73EAF7752DC5441E026088D8CFC5041C9B816624FDC544122011F358BFC50419B30294C4EDC5441A69C50D78AFC504191DD7F0B4FDC54413D0AD7638AFC5041713D0AF74FDC5441FB2A33E38CFC50417546291C52DC54418EFB3DEA89FC5041C9D51F1556DC5441C3EE3DE786FC50411921191B5ADC54411526C20586FC50411E4351485BDC5441A1B41EB584FC50417964856B58DC54416CB03B8A84FC50419B8DBF1C58DC54416666667684FC504185EB51F857DC5441B81E85FB82FC5041C3F5283C55DC5441713D0AE780FC50419A9999B94FDC5441583C124480FC50410410EB614FDC54418138D70380FC5041355B5C3F4FDC5441D8A0EB417FFC504165820AD74EDC5441636DE14A7DFC5041B4DEF5C84DDC54418E6594027DFC504168C32FD64DDC5441C3F528DC7AFC5041AE47E13A4EDC5441D7A370DD77FC50415C8FC2B54DDC5441295C8F4275FC50415C8FC2A54CDC5441BBC532636CFC50413F97A39047DC5441FDB92E476CFC50418E8A437E47DC5441666666D669FC504148E17AE445DC544118C4F2D667FC5041BF20EF4A44DC5441DA98702D67FC5041D56633C343DC5441CDE1A23766FC50419029C40C43DC5441B622936D64FC5041E8DDCBB841DC544102439AEE63FC5041B3FC8E5A41DC54412202292664FC5041BE39B7EE41DC5441781A59D965FC50411188D92244DC544142648B9E68FC50410ED1B0B746DC5441719754B46BFC5041B7F4E28E4ADC5441F6074A596EFC5041FE88F8434DDC544124BB6FB172FC50417FA7874B51DC544192C5666876FC5041C67841E254DC544138C905017BFC5041A7BBA35A59DC5441F15B1FEC80FC5041B97552845EDC5441C840FD2283FC50416AAB0C8160DC544170DBEB2586FC50414497A46B62DC54411575C5CC89FC5041D1389A1065DC544126A522868AFC5041197EE6BE65DC5441DC76EB518BFC504119E0847E66DC544192CB60C78DFC5041E53266CE68DC544151B5A7CC90FC50415953D5786BDC54410187F11195FC5041A9C6C3436FDC5441C8CFE71598FC50410E6394E871DC5441B38342E698FC50415DC4989772DC54418B74393B99FC5041199293D772DC5441388D27A39BFC5041B3D285A574DC5441EDCE3F2F9CFC504159F1970E75DC5441B8B263759FFC5041F2FC127377DC5441E788FEE9A1FC5041DBEFBB5478DC54416094201EA4FC5041DF8D431478DC54418CC47E72A6FC5041DBEFBB5478DC54414CB86386A8FC5041DF8D431478DC544189EAD059AAFC5041E555CAD377DC5441E2BC6AE4AAFC5041DB34D76B77DC544151BA7A94A7FC50419149E17A76DC54411865F059A4FC5041C598C9FB74DC5441D34D66A6A2FC5041396FEB3174DC5441AE47E17A9DFC5041666666966FDC54413D0AD7B393FC50417B14AE1767DC544148E17A0491FC504148E17AC464DC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>257579 - 261422
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+0106000000030000000103000000010000001F000000D7A3701DEA025141C3F5287CCA4A55410AD7A300ED02514148E17AE4CC4A5541C3F5283CF0025141295C8FE2CE4A554114AE4791F402514100000080D14A554166666686F7025141E17A147ED34A5541333333D3FA025141AE47E11AD64A55411F85EBD1FC0251419A9999C9D84A5541CDCCCC8CFD025141B81E856BDA4A554100000010FE025141C3F5288CD24A5541713D0AE7FD025141A4703D2AD14A55419A999939FA02514152B81EE5CD4A5541E17A14AEF6025141F6285C0FCB4A5541E17A143EF302514133333303C84A5541CDCCCC8CF102514133333353C64A55419A9999D9F2025141CDCCCC4CBE4A55419A999939F3025141713D0AC7BB4A55413D0AD793F40251418FC2F5A8B24A5541EC51B8AEF4025141C3F5289CB04A55411F85EB61EA02514148E17AB4AA4A554148E17A44E102514133333323A54A55418FC2F518E102514133333313A94A5541AE47E1FAE0025141D7A3708DAE4A554114AE47E1DF02514148E17AE4BA4A554133333373DF0251418FC2F518BE4A55413D0AD773E1025141D7A3703DC04A5541EC51B8FEE3025141C3F5288CC14A5541D7A3700DE80251410AD7A370C24A5541A4703DFAE9025141295C8F32C34A55418FC2F5F8EB0251418FC2F588C54A5541295C8FE2E6025141C3F5280CC74A5541D7A3701DEA025141C3F5287CCA4A55410103000000010000009F000000E17A14AEB6025141CDCCCCECE5495541A4703D7AB602514114AE4751E549554148E17A64B60251417B14AE07E54955418FC2F5A8B4025141EC51B82EDF495541E17A14DEB2025141666666E6D7495541AE47E19AB1025141AE47E1DAD0495541295C8F72B0025141E17A149ECB49554133333303B00251415C8FC2A5C949554148E17A84AC02514133333363BD495541D7A370FDAA0251415C8FC205B8495541B81E850BA9025141295C8F92B14955417B14AE67A70251410AD7A3D0AB4955413D0AD753A702514148E17AB4AA495541CDCCCCECA6025141B81E85CBA949554114AE47E1A4025141666666B6A24955413D0AD733A302514152B81E259E49554185EB51A8A20251417B14AEA79C49554152B81E65A10251410AD7A3F09949554114AE47F19F025141F6285CCF96495541F6285C1F9F025141AE47E10A954955419A9999D99C025141D7A3700D91495541B81E85CB990251411F85EB918C495541E17A14AE95025141AE47E10A87495541713D0A97910251418FC2F588824955419A9999298D0251417B14AE077E49554185EB51E88B0251410AD7A3C07C4955413D0AD7D388025141000000E0794955411F85EB718502514185EB51C8764955411F85EB51800251417B14AEB7724955417B14AE477C025141B81E85FB6F4955416666666678025141D7A3705D6D495541EC51B81E6C0251411F85EB6167495541713D0AE76B025141B81E859B674955410AD7A3406C025141000000406B495541E17A14FE6C025141666666066E49554148E17AF46D025141666666D671495541EC51B87E700251410AD7A3C073495541713D0AE77302514166666646764955418FC2F5D8770251413D0AD713794955415C8FC2957B025141C3F528FC7B4955419A9999C97E0251419A9999997E4955413D0AD7A38202514148E17A248249554185EB51E8840251418FC2F57884495541333333D3870251413D0AD703884955415C8FC2E58A025141295C8FF28B495541713D0A878D025141C3F5285C8F495541333333A38F025141295C8FC2924955410AD7A330920251410000003097495541CDCCCCEC94025141295C8FC29C49554148E17AD495025141E17A14AE9E4955410AD7A3E0960251418FC2F518A14955418FC2F5E898025141F6285C6FA64955418FC2F5689B025141713D0AA7AE4955413D0AD7C39C02514152B81E05B5495541E17A146E9E025141C3F528ECBB4955410AD7A3F09F0251417B14AE07C2495541B81E85EBA10251417B14AE37C9495541B81E85DBA2025141CDCCCCBCCD4955417B14AE57A4025141CDCCCC6CD749554100000020A502514133333313DC4955418FC2F5A8A6025141E17A146EE2495541A4703D1AA702514133333383E4495541D7A3704DA802514114AE47F1E949554166666636A90251415C8FC225ED49554100000020AA025141F6285CFFEF4955419A9999A9AB02514166666676F3495541D7A370ADAC025141295C8F42F549554114AE4791AF02514114AE47D1F94955413D0AD763B0025141B81E850BFB49554114AE4761B20251415C8FC205FE49554114AE4781B502514133333363034A55415C8FC285B6025141F6285C2F054A5541333333B3B9025141333333D30A4A5541D7A370EDB9025141F6285C4F0B4A5541F6285CCFBB025141E17A144E0F4A5541F6285C9FBE025141C3F528EC164A554185EB51D8BF0251419A9999591B4A55410AD7A3A0C00251418FC2F5C81D4A55410AD7A310C402514100000070284A5541E17A14BEC4025141D7A370BD294A5541E17A149EC6025141295C8F522E4A55411F85EBF1C7025141C3F5281C314A554152B81E15CA025141EC51B88E334A55411F85EB01CC0251415C8FC255374A5541B81E85BBCF02514152B81E953E4A554185EB5108D5025141CDCCCC8C494A55418FC2F5E8D70251410AD7A390514A5541333333F3DA0251417B14AE075C4A55417B14AEC7DC025141EC51B85E644A5541EC51B8FEDC0251418FC2F5A8654A554166666626DE02514185EB51686D4A55418FC2F548DE02514185EB51F8734A5541F6285CBFDD0251417B14AE877B4A5541F6285CBFDD025141EC51B8EE814A55411F85EBC1DD02514152B81EF5824A55413D0AD7A3DE025141D7A3704D884A55415C8FC285DF025141A4703DFA8A4A5541713D0AF7E0025141A4703DBA924A5541295C8F42E102514152B81E35A44A5541B81E852BE902514152B81E35A94A5541CDCCCCCCF4025141C3F528CCAF4A55411F85EBE1F40251413D0AD773AE4A5541F6285CEFF4025141E17A144EAB4A5541EC51B85EF40251419A9999899C4A5541C3F528ECF1025141E17A140E904A55413D0AD793F102514114AE47B18E4A55415C8FC225F00251418FC2F508894A55410AD7A3B0EF025141AE47E10A874A55410AD7A3B0EF02514100000060854A5541EC51B83EEE0251417B14AE37844A5541B81E85FBEB025141AE47E1DA834A5541E17A14BEEA025141A4703D6A834A55415C8FC285EA025141A4703D1A824A5541E17A149EEB025141CDCCCCDC804A55413D0AD7F3ED025141A4703D5A804A554133333333F0025141A4703DBA7F4A554114AE4741F00251415C8FC2E57D4A554185EB5158F00251410AD7A3907C4A5541D7A3708DF0025141CDCCCCAC744A5541E17A147EF00251413D0AD7836F4A554148E17A04F0025141295C8F12654A55417B14AEE7EF025141EC51B89E624A55419A9999A9EF02514152B81EC55F4A55415C8FC265EE025141E17A148E594A55419A999989ED025141CDCCCC7C564A55413D0AD763EA025141E17A149E4C4A5541333333B3E7025141A4703D5A454A55417B14AE47E5025141AE47E12A3F4A5541B81E85BBE40251415C8FC2753E4A55413D0AD703E30251411F85EB71394A55413D0AD7B3E1025141F6285CCF354A554166666636E00251419A999969324A5541CDCCCC8CDC025141333333C32A4A55418FC2F538D702514152B81E152D4A554148E17A54D4025141B81E85AB2E4A554185EB5198D0025141EC51B84E2B4A55413D0AD783CD025141B81E854B274A5541333333E3CD025141CDCCCC9C254A5541F6285C6FD1025141E17A14AE244A5541C3F5283CD4025141EC51B84E244A5541295C8F02D602514100000030234A5541AE47E18AD602514114AE4721214A55411F85EB31D402514148E17A241D4A55418FC2F5C8D002514114AE47D1164A5541CDCCCC0CCE0251415C8FC2A5124A55417B14AEA7CD025141B81E850B124A5541B81E85ABCC02514114AE4761104A5541F6285C8FCB0251415C8FC2150D4A5541E17A142ECB0251415C8FC2050C4A5541A4703DFACA025141666666F60A4A5541713D0AB7CA025141713D0A570A4A554166666626C8025141F6285C3F044A5541F6285C5FC5025141AE47E1BAFE495541295C8FD2C20251413D0AD7A3FA49554114AE4701BD0251417B14AEE7F149554133333353BB02514114AE4761EF4955419A9999B9B8025141AE47E13AEA49554148E17A04B80251417B14AE07E9495541E17A14AEB6025141CDCCCCECE54955410103000000010000002C000000A4703D7AFD025141713D0AD7DB4A5541713D0A17FD02514133333353DA4A554166666656FC025141EC51B8FED84A5541AE47E17AFA02514152B81E85D64A554100000040F7025141666666D6D34A5541C3F5285CF4025141AE47E1FAD14A55418FC2F518F0025141E17A145ECF4A5541C3F528CCEC025141E17A144ECD4A5541713D0AD7E9025141295C8FC2CA4A55418FC2F578E6025141295C8F52C74A5541A4703D6AE2025141D7A3705DC44A554185EB5168DF025141AE47E13AC24A554148E17A04E0025141713D0AB7C54A554166666696E2025141D7A3708DCB4A5541CDCCCC6CE302514152B81E05D24A5541D7A3703DE40251419A999919D84A55415C8FC2B5E402514114AE4791DF4A5541000000D0E40251417B14AE57E54A55410AD7A3B0E40251411F85EB71ED4A55418FC2F528E40251417B14AE47F44A55413D0AD723E4025141F6285CCFF64A5541295C8F62E6025141E17A14FEF64A554185EB51A8E60251411F85EB21F94A5541D7A3701DE802514185EB51E8FA4A5541CDCCCCCCE9025141A4703D3AFC4A5541E17A14CEEC02514185EB5118FE4A5541C3F5282CEF025141EC51B85EFF4A55411F85EB21F2025141EC51B8DEFF4A5541F6285C0FFC0251417B14AEB70E4B5541C3F5284C0103514152B81EF5164B55419A9999A9020351415C8FC2F5174B5541000000F003035141EC51B85E184B554148E17A4405035141295C8FF2174B55415C8FC2C5030351418FC2F558124B55413D0AD763FF0251418FC2F5D8074B5541EC51B8CEFC0251417B14AE27034B55411F85EB41FB02514152B81EA5FF4A55419A9999D9FA025141F6285CCFFD4A554152B81EA5FA02514133333313FC4A554152B81EB5FA0251411F85EB41FA4A55419A9999C9FB025141295C8F42F34A5541EC51B8DEFB025141A4703DDAF24A5541B81E85BBFC025141E17A148EEA4A5541A4703D7AFD025141713D0AD7DB4A5541
+</a>
+
+<b>
+010600000001000000010300000001000000AC00000048E17AF46D025141666666D671495541EC51B87E700251410AD7A3C073495541713D0AE77302514166666646764955418FC2F5D8770251413D0AD713794955415C8FC2957B025141C3F528FC7B4955419A9999C97E0251419A9999997E4955413D0AD7A38202514148E17A248249554185EB51E8840251418FC2F57884495541333333D3870251413D0AD703884955415C8FC2E58A025141295C8FF28B495541713D0A878D025141C3F5285C8F495541333333A38F025141295C8FC2924955410AD7A330920251410000003097495541CDCCCCEC94025141295C8FC29C49554148E17AD495025141E17A14AE9E4955410AD7A3E0960251418FC2F518A14955418FC2F5E898025141F6285C6FA64955418FC2F5689B025141713D0AA7AE4955413D0AD7C39C02514152B81E05B5495541E17A146E9E025141C3F528ECBB4955410AD7A3F09F0251417B14AE07C2495541B81E85EBA10251417B14AE37C9495541B81E85DBA2025141CDCCCCBCCD4955417B14AE57A4025141CDCCCC6CD749554100000020A502514133333313DC4955418FC2F5A8A6025141E17A146EE2495541A4703D1AA702514133333383E4495541D7A3704DA802514114AE47F1E949554166666636A90251415C8FC225ED49554100000020AA025141F6285CFFEF4955419A9999A9AB02514166666676F3495541D7A370ADAC025141295C8F42F549554114AE4791AF02514114AE47D1F94955413D0AD763B0025141B81E850BFB49554114AE4761B20251415C8FC205FE49554114AE4781B502514133333363034A55415C8FC285B6025141F6285C2F054A5541333333B3B9025141333333D30A4A5541D7A370EDB9025141F6285C4F0B4A5541F6285CCFBB025141E17A144E0F4A5541F6285C9FBE025141C3F528EC164A554185EB51D8BF0251419A9999591B4A55410AD7A3A0C00251418FC2F5C81D4A55410AD7A310C402514100000070284A5541E17A14BEC4025141D7A370BD294A5541E17A149EC6025141295C8F522E4A55411F85EBF1C7025141C3F5281C314A554152B81E15CA025141EC51B88E334A5541944FCD8ECC025141857B8241374A55417B44542FD0025141B004EF9C3E4A5541629EF834D002514157C8FFA53E4A5541D7189153D002514180E728D73E4A5541316C608DD002514185430C343F4A55415AFBF3B3D00251414D2E08723F4A55418693B0BBD0025141009A16843F4A554194B8D6B5D1025141175DE6CB414A554185EB5108D5025141CDCCCC8C494A55418FC2F5E8D70251410AD7A390514A5541333333F3DA0251417B14AE075C4A55417B14AEC7DC025141EC51B85E644A5541EC51B8FEDC0251418FC2F5A8654A554166666626DE02514185EB51686D4A55418FC2F548DE02514185EB51F8734A55419A34780BDE025141A01B58967B4A5541526A6731DE025141B7CC6FDD814A55415C8FC285DF025141A4703DFA8A4A5541713D0AF7E0025141A4703DBA924A55419B506D02E1025141E7FC14A3944A55416D08C626E102514197CA5933984A554117239C49E102514193E7B69D9B4A5541539CFC51E1025141B96FF76F9C4A554182383052E102514191CE06759C4A55419EBF7F55E1025141E60F1FC89C4A55416DF49A92E102514105B0B767A44A5541B81E852BE902514152B81E35A94A5541CDCCCCCCF4025141C3F528CCAF4A55411F85EBE1F40251413D0AD773AE4A5541F6285CEFF4025141E17A144EAB4A5541EC51B85EF40251419A9999899C4A5541C3F528ECF1025141E17A140E904A55413D0AD793F102514114AE47B18E4A55415C8FC225F00251418FC2F508894A55410AD7A3B0EF025141AE47E10A874A55410AD7A3B0EF02514100000060854A554133333333F0025141A4703DBA7F4A554114AE4741F00251415C8FC2E57D4A554185EB5158F00251410AD7A3907C4A5541D7A3708DF0025141CDCCCCAC744A5541E17A147EF00251413D0AD7836F4A554148E17A04F0025141295C8F12654A55417B14AEE7EF025141EC51B89E624A55419A9999A9EF02514152B81EC55F4A55415C8FC265EE025141E17A148E594A55419A999989ED025141CDCCCC7C564A55413D0AD763EA025141E17A149E4C4A5541333333B3E7025141A4703D5A454A55417B14AE47E5025141AE47E12A3F4A5541B81E85BBE40251415C8FC2753E4A55413D0AD703E30251411F85EB71394A55413D0AD7B3E1025141F6285CCF354A554166666636E00251419A999969324A5541CDCCCC8CDC025141333333C32A4A5541F88CA37ADC02514180D61BCB2A4A5541599BF16BD80251410E0AF1F82C4A5541331B20F5D5025141733CF0772E4A554112FB021CD4025141EC172C2C2F4A5541875F5E2CD2025141126AA5962D4A5541247974F1D00251419320F79E2B4A5541C5A1A93CCF025141EB53CE89294A5541A792058DCE02514140F6FCA4284A5541EC099EC7CD025141854DD1A3274A554196FE6F8CCD02514156E5AF24274A5541333333E3CD025141CDCCCC9C254A5541A5F16E5BCF0251416320D723254A5541A87F7B05D402514150606EE8234A55410DB27A84D50251416E09AB1D234A554111122F22D6025141FA8D2307234A5541C01A5088D60251413D64EB1C214A55411F85EB31D402514148E17A241D4A55418FC2F5C8D002514114AE47D1164A5541CDCCCC0CCE0251415C8FC2A5124A55417B14AEA7CD025141B81E850B124A5541B81E85ABCC02514114AE4761104A5541F6285C8FCB0251415C8FC2150D4A5541E17A142ECB0251415C8FC2050C4A5541A4703DFACA025141666666F60A4A5541713D0AB7CA025141713D0A570A4A554166666626C8025141F6285C3F044A55412DBE57F8C40251412DF38E3CFE495541C8CEDBA0C2025141973278BEFA495541B3EB3DB6BC025141EA8BCECDF1495541FDBAF801BB02514125880239EF49554148E17A04B80251417B14AE07E9495541E17A14AEB6025141CDCCCCECE5495541A4703D7AB602514114AE4751E549554148E17A64B60251417B14AE07E54955418FC2F5A8B4025141EC51B82EDF495541E17A14DEB2025141666666E6D7495541AE47E19AB1025141AE47E1DAD0495541295C8F72B0025141E17A149ECB495541727B7645AC025141F45B288FBE495541D7A370FDAA0251415C8FC205B8495541B81E850BA9025141295C8F92B14955417B14AE67A70251410AD7A3D0AB495541D172C5C6A6025141AC5C2092A949554114AE47E1A4025141666666B6A24955413D0AD733A302514152B81E259E49554185EB51A8A20251417B14AEA79C49554152B81E65A10251410AD7A3F09949554114AE47F19F025141F6285CCF96495541F6285C1F9F025141AE47E10A954955419A9999D99C025141D7A3700D91495541B81E85CB990251411F85EB918C495541E17A14AE95025141AE47E10A87495541713D0A97910251418FC2F588824955419A9999298D0251417B14AE077E49554185EB51E88B0251410AD7A3C07C4955413D0AD7D388025141000000E0794955411F85EB718502514185EB51C8764955411F85EB51800251417B14AEB7724955417B14AE477C025141B81E85FB6F4955415B6EBC3879025141E22F79F36D495541B1FB0C3478025141D6692A546D49554183A92056760251418B7DF65D6C4955410E38240E7302514134CB73C86A495541D0F3E1096F025141A7F20BDC6849554167A7175C6E02514168CC268568495541EC51B81E6C0251411F85EB61674955418A87E0246C0251413034111F6A4955410AD7A3406C025141000000406B4955417308A6066D0251410C2657286E49554148E17AF46D025141666666D671495541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979690 - 1730669
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+01060000000100000001030000001E000000A002000040E3E97C6C975041AC419793082F55412BA2AB836D975041B61686F6012F5541E1178CCF6D97504169AEBA5AD12E55417790392E6C975041AD8A32CBC12E5541E2D65D9F649750417D69D369A32E5541AE4066BB5F975041DD9DE1A08D2E5541B70843A85D9750415F22672F912E55415EAD3BEA589750415F7DCA08892E55419B66739453975041633C9CD87F2E55410B1A111952975041F2A233FD6F2E5541C08FF16452975041FB6A10EA6D2E55415F11AAE0579750416BBA3F786D2E55414778E5E95497504144ABF6505D2E554130DF20F35197504144ABF6505D2E5541CEBB3C484F9750418EEBDCB74C2E5541509B25B04A975041225B7FF9432E55411DAACAF24D975041B76FBE61432E55416834EAA64D9750415E14B7A33E2E55410A7574F249975041CB63E6313E2E5541622BDF8946975041B280E8ED2A2E5541F8D60A8DFB9650419894DF8C102E554170497AE1F0965041A15CBC790E2E55419469ED94E89650417B97AC9F0E2E5541535D7180D696504193307196112E5541DA268BED9E9650412786DE2E1A2E554105312FA663965041B477DDD0232E5541C1E3846148965041ABE723F7272E55410EE33C982E96504174925A432C2E55411661E0371C965041D6B53EEE2E2E554152757BBB0E965041DF7D1BDB2C2E55415FFC29780396504182BEA526292E5541AEEAB7220296504194F3FB262D2E5541BCBB9F2C07965041CDED6101312E55417BF95C6505965041E48626F8332E554184C1395203965041F2570E02392E5541805DCB5B04965041A9728B74412E55413F4025BB0A96504147F443F0462E5541AB24B9CF1C96504180AD8D6C542E5541112C60EB1396504180AD8D6C542E554168A516EC1B965041AB7C82D55B2E554113072D1A0D9650418F163BFD6F2E5541049E7F89F1955041CB4EEDAF5F2E55418A77917FEC9550417B1C27E0682E5541793317C0D7955041AB7C82D55B2E5541C8AF53EBA8955041903B7E87432E5541EE122552989550411D5C80AE4F2E5541E23ACE949B9550411B81B37F562E5541B2DA729FA89550412EA0FA6D642E5541E5CB2468BA955041636C79656F2E5541793317C0D795504105878FA9822E55416D5BC002DB955041B454C9D98B2E5541F25905CADC9550414E4D22BE942E55414F895528D7955041A3C6D8BE9C2E5541152C70A4E0955041043D194EA82E554143B1FE6ADA955041678E260CAD2E554124BA60BFCF95504149978860A22E5541870B6E7DD4955041556FDF1D9F2E55419FBB1BF8CD95504112F03C3A9E2E5541119B19D1C19550410618E67CA12E5541BA2163D0B99550411CEDC6C8A12E554100579F11AD955041CE95CD27A42E55416F80038DAE955041FC1A5CEE9D2E554118074D8CA6955041771C17279C2E5541099E9FFB8A955041C74EDDF6922E554132B70AC06C95504172B0F324842E55411CE229746C9550413DE4742D792E5541FC0FBF99689550419813C58B732E55411EBDF6A265955041FD1A6CA76A2E5541AF93922764955041AA574F04552E554197E3E4AC6A955041083D39C0412E5541AA022C9B78955041504D42302E2E5541E7F067F28D95504142BF61CE0B2E5541810E04616A9550413C78719DFA2D5541C568737364955041F81D028B002E5541234E5D2F519550414850C85AF72D5541CCD4A62E499550413356B43DF02D5541EF81DE37469550414850C85AF72D5541A4E07EF43A9550414850C85AF72D5541BF46C6CC269550411BA606C3F62D55414620D8C221955041ABA1D518FC2D5541D0AF83160F955041021B8C19042E55419DBED14DFD945041A5106F8C102E5541C146D685F3945041333171B31C2E5541B9241926E9945041B82FB67A1E2E55414AFBB4AAE79450411B81C338232E5541FAC8EEDAF0945041D8012155222E5541C146D685F3945041B654E94B252E554168F25256F294504192CCE4132F2E554137B72A3206955041A7C6F830362E5541F25CBB1F0C955041EDFB3472292E55411B51E3591A95504192CCE4132F2E5541DF1831A72A955041389D94B5342E5541D08A408C3B9550412AEA70C93E2E5541A4E07EF43A9550416191BCEF422E5541DE3D647831955041833EF4F83F2E5541189B49FC27955041CA29BADE582E55411A76162B2195504194826EB8542E5541AE024C0D12955041B70A73F04A2E55414D8C0B7E06955041AFE8B590402E554167178627F994504116F05CAC372E5541E7A9A7ECE2945041EDFB3472292E55419852AE4BE59450411B81C338232E5541CDD4C6A0E2945041DBDCED831B2E55415689A5C5D69450411F375D96152E5541840E348CD094504157B975EB122E55417A11AAFDCC945041C09BE935032E554115E5CF10CF9450415E25A9A6F72D55414C8C1B37D394504197A7C1FBF42D5541A074713FCD94504110DE9846F42D5541C5475EE3B3945041FA86B11EE82D55415AF3EDA2A5945041FCC87CB6F02D5541C66C7C378294504163E322C1DB2D5541CE89FD7D7F94504165426F9FE12D55418EA190F5809450412FD6CF3BE62D554169CEA3519A9450416242D3F3F52D55418F5F8D06A1945041763A6E3DFC2D554121C9B5829E945041122064DEFC2D554182C676F27794504181578B2FE52D55413DC124CF679450418815C097DC2D55415877F48065945041197FE813DA2D5541D9A61A7068945041984FC224D72D55416810A7407A945041D3D84623E42D554197BE113C7E945041369404A4DD2D5541A95760A77E9450413435B8C5D72D55416810A7407A945041E871313AD02D5541AEB64831709450414B2DEFBAC92D5541D18999296B9450411C7F84BFC52D55410855856B6C945041FF69682FC22D5541C04F979C7094504136355471C32D5541C2AEE37A76945041A5CB2BF5C52D5541702D288777945041DA37CB58C12D55413F2071AD6D945041223DB927BD2D554141200D59599450414F8CD744BB2D5541EA816CCA48945041A10D9338BA2D55419F1D321D47945041785F283DB62D55416035C59448945041076A04DBAD2D55413B0328BE479450417A5FC4E8A12D5541A6DB66853E945041724243A2A42D554102D9EF9D40945041A1F0AD9DA82D55411FEE0B2E449450413E35F01CAF2D5541706FC7214394504113451EDEB62D554175CEAFAB34945041EAB3987DC42D5541C5F01EC12D945041BB052E82C02D55414D3D62A219945041CB9EE041D52D5541E30573A8089450410F45E686DF2D5541559CE6D7F69350413F529D60E92D5541C891A6E5EA935041B047C1C2F12D55419525A32DDB935041203DE524FA2D5541F8E060AED49350419591F110F42D554141459B5BD69350414B2DB763F22D554139281A15D993504137351C1AEC2D554193C6564FD59350418F740C76E22D5541C932F6B2D0935041544A38AAEF2D55418EA971B4C3935041EC71958EE42D554127301B77BE9350413C9404A4DD2D5541635AEF42B1935041D4BB6188D22D55417DB17216A9935041FD4CE7E8C42D55418EEB74A3A3935041D91A4A12C42D5541D232CAB593935041B1E81090D72D5541C29917F67E9350414FCEA2DCC32D5541C29917F67E9350410E87E975BF2D5541D9914EEB70935041F6D0B56FAD2D5541A684FB657B93504178A12B2C962D554120F6ECEC869350411EA43EBF7F2D554120F6ECEC8693504166A92C8E7B2D55415103A4C690935041B92AE8817A2D5541B77CFA0396935041043072FC612D55410B5D02D69A935041E979A24A642D5541D84FAF50A5935041D1C36E44522D5541506254F9AA9350417367994D4A2D554152C1A0D7B09350413EFBF9E94E2D55419108BE92C9935041B7AEEE5F3A2D5541065DCA7EC3935041B54FA281342D5541350B357AC7935041EBBB41E52F2D5541091B633BCF935041CEA625552C2D554155DEE9C6D6935041A7153CA0252D554191C6BAA3E99350418B5FD0423C2D5541DBCB441ED19350412A035FA0482D55413B8766F3DE93504184004C0D5F2D5541BE15D9C0E7935041F037D7B25B2D55419B4288C8EC935041AFF01D4C572D554114552D71F29350414AD613ED572D5541533D9AF9F0935041BBCB374F602D5541B9B6F036F69350415ECEAE365E2D55418C67D219F8935041EA79A24A642D5541F99E5DBFF4935041B66C4FC56E2D554112F6E092EC93504170C6ADD4782D554145033418E2935041D89E50F0832D554129EE1788DE935041B5CBFFF7882D5541589C8283E2935041D2E01B888C2D554135C9318BE7935041EA964F8E9E2D55417DCE1F5AE393504106AC6B1EA22D5541B4990B9CE49350412D3D55D3A82D5541A35F090FEA93504123C187AEA52D55419B4288C8EC935041526FF2A9A92D5541533D9AF9F09350418DF876A8B62D5541F3E02857FD93504166678DF3AF2D5541756F9B2406945041AE6C7BC2AB2D55416FB166BC0E9450416D25C25BA72D5541B2576C01199450410FC9EC649F2D55418F841B091E945041D13FCCBAA62D5541A21D6A741E945041C564B2B79D2D5541C64F074B1F9450416F255E07932D55419900E92D21945041887CE1DA8A2D554191E367E723945041ADAE7EB18B2D554187679AC220945041FAD0511B992D554175CE4B57209450412D3D55D3A82D5541A21D6A741E94504166678DF3AF2D55418F841B091E9450419F91C513B72D55415A187CA522945041E796B3E2B22D55415C77C88328945041A54FFA7BAE2D5541DE053B5131945041F6716991A72D5541742DFC893A9450413D775760A32D554192A164F84394504133FB893BA02D554167B192B94B94504173E3F6C39E2D55419E7C7EFB4C945041A84F96279A2D5541E6816CCA48945041D59EB444982D5541483D2A4B429450419ED3C802972D55415FBE0A903A945041BE13960B912D554141FA1C2C2A9450417897CD8B822D5541DB47A29425945041B5CBFFF7882D55410897C0B123945041E21A1E15872D554187679AC220945041861D95FC842D55410897C0B1239450418E3A1643822D5541E47F77E527945041B6C611947F2D55418170CD181894504160F515FA6A2D55410EF6A83B1594504149D677416C2D55414AA9769E0D9450415500C414612D55413C7C9F55E9935041CE4C743E2E2D5541CCB8E5B0A99350419AAC197BE52C55416DFB3E1097935041F33F801AC72C55416020250D8E93504124EE86C1B62C5541657F0D977F935041AEDB7DC49C2C5541998C601C75935041854AF863AA2C554132130ADF6F9350412D0B0808B42C55414DC9D9906D93504180EB0FDAB82C55410EE16C086F93504114B48434BC2C5541687FA9426B935041A9DB456DC52C55415E03DC1D68935041E464CA6BD22C55416E3DDEAA6293504152FBA1EFD42C55412DF624445E935041D58914BDDD2C5541FE47BA485A935041D947AD79E92C5541C71D8228539350419E7C258CFC2C554160A42BEB4D93504198BEF023052D554154C911E8449350411230E2AA102D554101E90916409350419F3A229D1C2D5541E6323A6442935041CEE88C98202D5541779C62E03F9350411AAC1324282D5541B784CF683E9350419C3A86F1302D5541650314753F9350418C008464362D55412E3828333E93504117AC77783C2D5541024856F445935041C52ABC843D2D55419E2D4C9546935041FCF5A7C63E2D55415F45DF0C48935041E39E24F3462D55418DF349084C935041CCA6EDFD542D554133550DCE4F9350418F1DCD535C2D55413DD1DAF2529350419D5733356B2D5541241B0B4155935041CFC336ED7A2D5541B884CF683E935041810014B6872D5541AE0802443B935041A891FD6A8E2D5541A48C341F389350414DF3C030922D55418777188F3493504176E3F6C39E2D5541B4C636AC3293504182BE10C7A72D5541EBF0D2204E935041ADAEE205A02D5541C81D82285393504111289D97B92D5541E4329EB8569350418B998E1EC52D554178FB12135A935041C4C3C63ECC2D5541713DDEAA629350417E1D254ED62D55414E6A8DB267935041A5AE0E03DD2D554125D9075275935041C581C34FEC2D55414E288AC3879350411D2064DEFC2D554166DEBDC999935041476FE64F0F2E5541C2DB46E29B935041AC89F0AE0E2E554160208961A2935041875753D80D2E5541D8322E0AA89350413DF3182B0C2E554124F6B495AF935041AA2AA4D0082E554182528A8CB7935041F22F929F042E554159C1042CC5935041A66C0B14FD2D5541DB4F77F9CD9350412D5A666BF72D55419C670A71CF935041253DE524FA2D55416DB99F75CB9350410A871573FC2D55411F97CC0BBE935041DF964334042E55415D20EDB5B693504185F806FA072E554163DE211EAE935041D9D80ECC0C2E554120381CD9A39350416CA18326102E5541DD911694999350413F526509122E5541486A555B909350413F526509122E5541B3429422879350417F3AD291102E55419CEBACFA7A9350413DF3182B0C2E5541BD5FB114709350410E45AE2F082E55413972F268619350411F7FB0BC022E55411AFE89FA5793504154EB4F20FE2D55417DB9477B519350419CF03DEFF92D554183777CE348935041755F543AF32D554183777CE348935041C38127A4002E5541F0AE078945935041088779C7102E5541CF3A036F5093504151EBB374122E554193102FA35D935041648402E0122E5541A14A95846C935041AEE83C8D142E55415387724D799350416E00D004162E554169DE597585935041CAFD581D182E55411ABCEA5F8C935041777C9D29192E55415B03A4C690935041219CF9AB282E5541CA997B4A9393504112C143FD332E5541269704639593504149EBDF714F2E554153E6228093935041A747B568572E554113FEB5F7949350417AF8964B592E55419FA9A90B9B9350415F42C7995B2E5541E14FAF50A5935041458CF7E75D2E554186B17216A9935041B422CF6B602E5541D015ADC3AA9350415A849231642E5541DCF0C6C6B393504187D3B04E622E5541151BFFE6BA93504122B9A6EF622E55417B945524C0935041996CFFB9622E554161DE8572C2935041B6811B4A662E5541F4A6FACCC5935041AD649A03692E5541235565C8C9935041A3E8CCDE652E55411C973060D2935041EBEDBAAD612E554166FB6A0DD49350413B102AC35A2E554195A9D508D89350412877DB575A2E554143281A15D993504155C6F974582E55419F25A32DDB9350415C842EDD4F2E554172D68410DD935041488C9393492E554133EE1788DE935041CBBB552E382E55419E25A32DDB935041DF544045242E55414A459B5BD6935041BBC3F23B092E5541C615D9C0E79350411C2064DEFC2D5541F981DC78F79350412BFB198DF12D5541EF64BF860E945041CB3FF8B7E32D55419F4250711594504101AC971BDF2D5541C6D339261C9450413618377FDA2D5541B5993799219450416B84D6E2D52D5541B7F883772794504117A4CE10D12D5541828CE4132C945041C4C3C63ECC2D554196847F5D32945041AFCB2BF5C52D55414C7FF5E24A945041DA1AAE66D82D55414162D8F061945041DF379301EA2D55412C6A3DA75B945041BD644209EF2D5541CE0D68B053945041A40DBF35F72D5541F281087634945041590835BB0F2E55411A5591C506945041369494F52E2E5541EBA626CA02945041C13F8809352E55417D104F46009450410C030F953C2E5541D7AE8B80FC9350412B777703462E55416FD6E864F1935041F8C8705C562E5541095D9227EC93504185D3B04E622E5541FFE0C402E99350418991490B6E2E5541904AED7EE6935041F169EC26792E55412055C91CDE935041C7D866C6862E5541603D36A5DC935041F686D1C18A2E5541BADB72DFD8935041E4ED82568A2E55414B459B5BD69350416D3A2A8C8A2E5541D5914291D6935041139CED518E2E55415EDEE9C6D693504194CB1341912E5541BADB72DFD893504115FB3930942E5541D6F08E6FDC935041CDF54B61982E5541BC3ABFBDDE935041EA0A68F19B2E55412AD19641E1935041D9D06564A12E5541101BC78FE3935041AEE09325A92E55417435D1EEE29350412F10BA14AC2E5541BE990B9CE49350419DA69198AE2E5541354D6466E49350410320E8D5B32E5541516280F6E79350414D842283B52E55414945FFAFEA9350414FE36E61BB2E55410A5D9227EC935041BE7946E5BD2E554153C1CCD4ED935041115A4EB7C22E5541F7C343BCEB9350419C0542CBC82E5541ED477697E8935041F0E5499DCD2E5541C815D9C0E79350417115708CD02E5541241362D9E99350417115708CD02E554178F369ABEE935041F902CBE3CA2E554167B9671EF4935041653A5689C72E5541F0050F54F4935041AD3F4458C32E55418CEB04F5F49350413C4A20F6BA2E55417BB10268FA935041F9A31AB1B02E5541E8A626CA02945041B69EC88DA02E554173521ADE08945041BD5CFDF5972E5541507FC9E50D9450418432C5D5902E5541818C80BF17945041920D7B84852E554127EE43851B945041C71ACE097B2E55415EB92FC71C945041A64719BD6B2E5541C43286042294504190F031955F2E5541A15F350C27945041783AFE8E4D2E55419BA100A42F945041A32AD0CD452E55410B972406389450416A0098AD3E2E554180A9C9AE3D9450419F0DEB32342E55416C6F2B765794504194D320FD102E5541D6A61A7068945041FBEDC607FC2D5541CE8999296B9450415F08D166FB2D55418FA12CA16C945041A96C0B14FD2D55415418A8A25F945041B1E83C8D142E554114303B1A61945041CDFD581D182E55418D42E0C2669450418E15EC94192E5541A03A7B0C6D94504121DE60EF1C2E55413620395696945041B047EDBF2E2E55417525EFCDBA9450418E3235843F2E554103EE2BD1E6945041CB1A0661522E554157CE33A3EB945041857464705C2E554176429C11F5945041C55CD1F85A2E55411F62F89304955041D39637DA692E5541D19ED55C119550412BD62736602E5541F82FBF1118955041F2ABEF15592E554127DE290D1C95504173DB15055C2E55415C4AC97017955041ECEDBAAD612E5541A2F06A610D9550412F94C0F26B2E554129DEC5B807955041C25C354D6F2E554198749D3C0A9550415625AAA7722E5541D9BB56A30E955041C4BB812B752E5541817C664718955041DF7151DD722E5541FA8E0BF01D95504193AECA516B2E5541B2891D212295504193AECA516B2E55414552927B25955041B0C3E6E16E2E55414552927B2595504168BEF812732E55418D57804A21955041749912167C2E55414C10C7E31C955041C61ACE097B2E55412FFBAA5319955041D0969B2E7E2E5541E59670A61795504176F85EF4812E554135B9DFBB10955041C1BBE57F892E55416208FED80E95504132B109E2912E5541EC54A50E0F955041F427E937992E5541BDA63A130B9550412535A011A32E55414594956A0595504103624F19A82E5541C72208380E955041C7377B4DB52E55410F28F6060A95504189AE5AA3BC2E55414494956A0595504175B6BF59B62E55416F8467A9FD9450416EF88AF1BE2E5541B52A099AF3945041E9697C78CA2E55419FD32172E7945041ABE05BCED12E554114282E5EE19450419DA6F5ECC22E5541C864A7D2D9945041B49E2CE2B42E5541E1BB2AA6D1945041E64C3389A42E554172255322CF9450414A673DE8A32E5541CDC38F5CCB94504130B16D36A62E554102302FC0C6945041962AC473AB2E55414A351D8FC2945041BDBBAD28B22E5541923A0B5EBE9450413F4A20F6BA2E5541B8CBF412C594504152E36E61BB2E554139FB1A02C8945041372D9FAFBD2E55415E2DB8D8C894504177150C38BC2E5541A074713FCD94504189AE5AA3BC2E5541048F7B9ECC945041BABB117DC62E5541586F8370D1945041663A5689C72E554173255322CF945041D98EC6C9D52E5541D0812819D7945041083D31C5D92E554176E3EBDEDA9450416EB68702DF2E55415E2DB8D8C89450416BB6EB56F32E5541188716E8D2945041D12F4294F82E5541A074713FCD9450417B4F9E16082F55413E77B0CFF3945041CAD0BD5E1B2F5541E4D87395F7945041396795E21D2F5541A64F53EBFE9450415D9932B91E2F5541790035CE009550419305D21C1A2F5541A8AE9FC904955041B479D6360F2F554121C144720A955041163594B7082F554119A4C32B0D955041675703CD012F55417DBECD8A0C955041DBAB0FB9FB2E554112E68EC315955041591D9DEBF22E5541B2891D21229550411C35CC0EE02E5541A14F1B9427955041F6A3E259D92E5541ED12A21F2F9550418ECB3F3ECE2E554138D628AB369550414B253AF9C32E5541036A89473B955041B39E2CE2B42E5541A9CB4C0D3F955041CCF5AFB5AC2E554136D68CFF4A95504187F05D929C2E5541B864FFCC53955041605F74DD952E55419F0D7CF95B955041F069507B8D2E5541C69E65AE62955041386F3E4A892E5541C0E030466B955041C9D866C6862E5541D4D8CB8F71955041386F3E4A892E55413235A1867995504179B6F7B08D2E55417EF827128195504196CB1341912E554109A41B26879550410462EBC4932E554136F33943859550410EDEB8E9962E5541F24C34FE7A9550417199766A902E554167A140EA74955041F069507B8D2E5541265A87837095504181D378F78A2E5541FFC89DCE69955041386F3E4A892E5541197F6D80679550416F3A2A8C8A2E55415967DA086695504154845ADA8C2E5541757CF69869955041D5B380C98F2E554177DB42776F955041A86462AC912E55418157109C72955041B2E02FD1942E5541D537186E7795504121770755972E554121FB9EF97E955041EB0A68F19B2E5541FE274E0184955041BEBB49D49D2E554164A1A43E89955041D154983F9E2E5541E5D0CA2D8C955041B69EC88DA02E55419DCBDC5E90955041A564C600A62E5541707CBE4192955041F944CED2AA2E5541CA1AFB7B8E955041A7C312DFAB2E55413F6F076888955041F944CED2AA2E554107A41B26879550419FA69198AE2E55413E6F0768889550418E6C8F0BB42E55411120E94A8A955041B5FD78C0BA2E5541B781AC108E955041C9F5130AC12E5541AF642BCA90955041306F6A47C62E5541FF869ADF899550418C6CF35FC82E55419FCB780A7C95504129B135DFCE2E5541DFB3E5927A9550417B32F1D2CD2E5541142085F675955041560054FCCC2E5541498C245A71955041F2E5499DCD2E55416442F40B6F9550413C4A844ACF2E5541A52A61946D9550417574BC6AD62E55419BAE936F6A9550412B1082BDD42E55417E9977DF66955041870D0BD6D62E554134353D32659550419289D8FAD92E5541F3ED83CB609550410020B07EDC2E55414751FA6B61955041F8EDD6CCDE2E554110F1858463955041C28D62E5E02E554110F1858463955041756D8CD4E32E55413191984262955041138D549AE72E55419371D07C5E95504108ADA305E82E55410B126AE059955041BC8CCDF4EA2E55419371D07C5E955041658C464FEE2E5541EA7157225B955041F7CB5D80F22E5541AF32C796539550416A6B62F3F72E5541681386764C955041BB6A54A8FE2E5541D5D36E454895504195EB2546F62E5541F6738103479550418A0B75B1F62E55414D7408A9439550411D4B8CE2FA2E5541E6B4B4CA3D9550414EAA6BD9022F55414895EC043A95504189E9FB640A2F55411235781D3C9550410669B16C0F2F55418FB42D25419550416E28054B152F55412DD4F5EA44955041F6876BE7192F554173F3360B4C95504147875D9C202F554178D252AF559550416D068CFE282F5541B411E33A5D955041EA8541062E2F55412B9003526C9550410425BFD3362F5541E34E49E578955041D9A4FB80382F5541F8EC31C28B95504177C4C3463C2F55419885AA46D4955041030346874A2F5541418523A1D79550412F8309DA482F5541F5644D90DA9550419C43F2A8442F554104241AC9E3955041E0C709BE1A2F5541C3E3F44CE69550416E28054B152F55414063AA54EB9550411C2913960E2F55410F04CB5DE3955041C049704C082F554156230C7EEA955041078B2AB9FB2E55410903366DED955041E7EA17FBFC2E554191629C09F2955041BB6A54A8FE2E554119C202A6F6955041078B2AB9FB2E554160E143C6FD9550418A0B75B1F62E55416BC1F45AFD95504102AC0E15F22E5541CB7C22240296504159F27632E62E554111A3D3E102965041B50C50C0E12E5541B9EC684A069650416115B7F8DB2E5541772A26830496504140B41515DB2E5541F04132FE01965041A73B68B6DC2E554169593E79FF95504100976F74E12E5541EB3827E1FA955041C841A6C0E52E5541F40004CEF89550418BE3D1EFE22E5541840C3819F1955041667925EFDA2E5541BC6101CDEC955041996A80ACD72E55410188B28AED95504157A83DE5D52E554130BA3B78F3955041529F32C8CE2E5541E7D4B8EAFB95504128D117D1C72E5541041C25250E965041C96C05F6BB2E55414F4BE1FF1596504100C2CEA9B72E554159B85A131C9650419E9EEAFEB42E55410102F07B1F96504175756C2EB62E5541B677D0C71F9650416749214BB92E5541C8078AA11B965041EE3115D0BB2E55417410F1D915965041262C7BAABF2E5541D68E385E10965041149CC1D0C32E554178CFC2A90C9650414C9627ABC72E55415CD28FBC0A9650413E6ADCC7CA2E5541041C25250E96504119A5CCEDCA2E5541823C3CBD12965041010C08F7C72E554187A0AAB3119650415FCB7DABCB2E5541663F09D01096504107151314CF2E5541ED27FD5413965041C552D04CCD2E5541F794766819965041BCE55639C72E55411DFF226921965041B278DD25C12E554114DCE2A22B965041751A0955BE2E554106B097BF2E96504183465438BB2E5541DD8619EF2F965041BA9B1DECB62E5541CFFF6A323B96504166FFE7FDA82E55411EEEF8DC39965041243DA536A72E554193A1966138965041F6AFB86FA92E55413A468FA333965041BE5AEFBBAD2E55419BC4D6272E9650419995DFE1AD2E5541CEB531E52A96504182FC1AEBAA2E5541271139A32F96504129A1132DA62E5541101D11D33496504161F6DCE0A12E5541CFFF6A323B96504199F042BBA52E554198AAA17E3F965041D54E178CA82E55410E03DC2946965041BDF680C5AE2E554195EBCFAE489650412D46B053AE2E5541912CFEDE5196504169FFE7FDA82E55418D6D2C0F5B9650417C8FA1D7A42E554118BA8E8A5C965041772B33E1A52E5541C56792E95E965041A65DBCCEAB2E55415A7CD1515E96504161DCA737B32E55417679043F60965041AB66C7EBB22E5541062AD5B06096504178756C2EB62E55418D12C93563965041D1D073ECBA2E5541278B769461965041E405CAECBE2E55417F41E12B5E9650414FF18A84BF2E55418D6D2C0F5B965041DB3DEDFFC02E554183A54F225D965041D6D97E09C22E5541195F2BB164965041B1146F2FC22E5541A0471F366796504138FD62B4C42E55417B820F5C679650412AD117D1C72E554156BDFF81679650417EC8B098CD2E55419CE3B03F6896504163701AD2D32E5541AAB498496D965041DC2CC373D92E55415BC60A9F6E9650410B5F4C61DF2E5541808B1A796E965041F46A2491E42E5541648EE78B6C9650416E27CD32EA2E55419F884D6670965041130DF4A4EE2E554196C0707972965041FC18CCD4F32E55418DF8938C74965041C5689F47002F5541673384B274965041F9A333520D2F55411845F60776965041F2CA2CD9272F5541220DD3F473965041A92FE398402F55412D391ED87096504112B7353A422F55414991B49E6A965041D6FDFD8F472F55411A5F2BB1649650410A94F5734C2F5541993E141960965041E76A77A34D2F55411615F263549650418FB40C0C512F55417CF7A7DE4D965041D5DABDC9512F55415F55D8CA439650411B016F87522F5541AE9EC94E3A96504186EC2F1F532F55411DEEF8DC39965041C34A04F0552F554134E220AD349650419D85F415562F55415E0B9F7D339650415CC3B14E542F5541CE5ACE0B33965041A74DD102542F5541F27A41BF2A965041EC7382C0542F5541E90DC8AB24965041B9822703582F55415DC1653023965041200A7AA4592F55416125D426229650417401136C5F2F55410002F07B1F9650413848DBC1642F5541BE3FADB41D9650415EB287C26C2F5541BADB3EBE1E9650418880A2B9732F55416689421D21965041B34EBDB07A2F554154F988432596504151D0752C802F55419F28451E2D96504110B3CF8B862F554150DF539A36965041CB31BBF48D2F5541CA9BFC3B3C965041737B505D912F5541192F270D43965041A163A0FD862F55415C8FC2454696504152B81EA5882F5541CDCCCCCC4F9650417B14AE078E2F55415C8FC2F5519650419A9999998B2F55416666667659965041E17A14FE8F2F554185EB5148589650417B14AEB7912F5541A4703D0A6C96504185EB51C89C2F55411F85EBF16B9650410AD7A3F09D2F5541C3F5289C7D965041F6285CDFA72F5541A0A656BD81965041B03EF1F6A52F554194CEFFFF84965041214322A1A02F554160B80AAD9F965041A81C34979B2F554194A9BC75B19650415BA00725972F5541F16963A7CA96504195FDECA88D2F5541EEB3C949D89650414981C036892F55414177E6ECED96504161316EB1822F5541071A0169F796504114B5413F7E2F5541AB0FE4DB0397504185B972E9782F55417BAF88E6109750415AEA7D80712F5541F91C6721279750415CA017DE632F5541023F2481319750416A533BCA592F55412A334CBB3F975041BC60CEC8492F55412A334CBB3F97504100BB3DDB432F55412036C22C3C9750417BBCF813422F5541360BA3783C97504171BF6E853E2F5541145E6B6F3F975041739A3BB4372F55413530D64943975041C3CC01842E2F5541492AEA664A97504113FFC753252F5541AC7BF7244F975041D35AF29E1D2F55410FCD04E353975041C85D68101A2F5541843D598F66975041E00D168B132F554140E3E97C6C975041AC419793082F55410600000092DBD99D88965041E8B21838632F55416274E40486965041B52145C9622F55412FE3109685965041BB7501755E2F55417762861E10975041CF9B144E4F2F5541AAF3598D109750412F6AFF7F542F554192DBD99D88965041E8B21838632F5541B0000000A012F4703E975041A588DB60482F5541195BAE27309750415FD1F418572F5541F8C50FBC22975041B52145C9622F5541A49F9DE114975041DD0AA0E06B2F55411DE85798069750419ED1531A742F55414B883AF6E39650419329DBC27C2F554176FE3E7EC3965041EDA30949862F5541F8C493B6AE96504119E1200C8B2F5541D4051775A396504119E1200C8B2F5541E3D76DA298965041B4BE792E8A2F5541F4D3A2A58B9650411F35DDB7862F55418100169C809650411F23F4F97C2F554193906C62789650413F30E188742F5541BD0730BC77965041921E683C732F554110F6B66F76965041CF472D44762F5541C64F5B9F7396504139FB75A3702F5541C64F5B9F7396504188B491716B2F5541E249883073965041BB7380AE662F55415FAFD23D71965041B109AAE35E2F5541A520C328709650411688875D552F5541193EE25272965041F02384014E2F554164E43D2375965041EBEE181C4A2F55415667A75A759650419B135266432F55411E734D38769650416B45783F342F5541AF8A99F37796504165EE6172242F554108F2E15B92965041545E0BAC2C2F55418A6AEC6688965041408A5E161D2F55419BFA422D809650415E75A0BD082F5541F830F5C37A965041BD9C676AEF2E5541017920A7769650419F5EE409D82E554134380FE471965041F12AC0D5CA2E55417252E901619650410ED2ABAD9E2E5541DD0532615B965041FAFDFE178F2E5541E118F25E53965041EA5EBD67832E5541901B80C140965041CC203A076C2E5541E6FA1B8B2B9650413EFA0262562E5541ABC26B99149650416A62DBD1412E55414500385006965041C02EB79D342E5541C89AED42089650418305F295312E5541C4DA6EFE3B965041960A35FD602E554173303E1A559650416BC40775812E55418B17ABAD5C965041F7C893328B2E5541DBF271636396504127976D599A2E5541916EC17A6C96504147D5F0B9B12E554142B5A5AC7196504123B5432DC22E55417161D4EB7496504169263418C12E5541AE8A99F3779650413B9CB0C0C92E554147EA10927596504194BFA259CC2E554106AE8B8C7A965041FC81D6A2DA2E55415FD17D257D965041CBE4924DEB2E55416406E90A81965041B00C11A4F72E55416406E90A81965041139AD907022F55413FC490968596504122391BB80D2F55410D05A2598A965041EC666C7D1A2F5541CCC81C548F96504186E88E03242F55418B8C974E94965041F2BD824A2A2F554196F66D199C965041239F1C6F312F5541E6D134CFA2965041F0DF2D32362F554172D6C08CAC965041BE203FF53A2F5541CBF9B225AF965041916525CC232F55416DF49660D49650413A64DE1A2D2F5541E211B68AD696504164DBA1742C2F55415851809CE49650418F7410B6372F5541D6D87591EE96504198BC3B99332F5541C73934E1E2965041227D7187252F5541BF13B4E5F2965041BFEFA8231B2F554142AE69D8F4965041ED792C7B122F5541C4481FCBF69650410974590C122F55416D47D81900975041BABA3D3E172F55413CAA94C410975041068344F6252F55415DD92C3B1497504187FB4E011C2F554117683C5015975041584F20C2182F554157A4C15510975041998BA5C7132F554117683C5015975041BECDFD3B0F2F55413897D4C618975041C3026921132F5541608759D533975041272A30CEF92E55417EC5DC354B975041BA32919FE72E55413854EC4A4C9750416B57CAE9E02E5541573F2EF2379750414806878BD12E5541E1FF63E0299750412E2E05E2DD2E5541CE4D6232269750410DFF6C6BDA2E55410C99D221359750410BDDC183CE2E5541967BB3F732975041860DA1ABC82E5541E434CFC52D975041C74926B1C32E5541D6B738FD2D9750410786ABB6BE2E5541F2B1658E2D975041CB5CE6AEBB2E55410FCE3D0739975041C0F20FE4B32E55413E7A6C463C975041438DC5D6B52E5541F0C05078419750410A77C0CCAA2E5541979D5EDF3E975041E9472856A72E5541A0E589C23A9750415830DC9AA52E5541C527E23636975041D160BBC29F2E5541766EC6683B97504186BA5FF29C2E55418A4273FE4A97504173085E44992E5541919989CB5A975041F06DA851972E55417AD4C71F5F9750419EA1CC85A42E5541D2F7B9B8619750412DEAAE12C62E55411456EAA56897504165DE0835C52E55412B501737689750416EF23686082F554175D4C71F5F9750410C87190A0A2F55414506EEF84F9750414068B32E112F5541143814D240975041B172125B1B2F5541088AE73721975041027084F82D2F5541C5090C630E9750410CDA5AC3352F55412D57530BE5965041BB42EADC462F5541D4336172E296504168546329482F554184589ABCDB9650415AD7CC60482F554191B3859DCF965041844E90BA472F5541A443DC63C7965041D53C176E462F5541CF8909ECA6965041F44904FD3D2F5541FD138D439E965041198C5C71392F55412EB1D0988D965041F13644FF452F5541457692448996504120E3723E492F55418BE7822F88965041814E90BA472F55410C608D3A7E965041CCF4EB8A4A2F5541FEE2F6717E965041B52F2ADF4E2F5541B43C9BA17B96504138CADFD1502F5541072B22557A965041D65EC255522F554131A2E5AE79965041B651D5C65A2F55417C48417F7C9650412C919FD8682F554104608D3A7E96504112014912712F5541E01D35C682965041C3472D44762F554183E7822F88965041F2F35B83792F554110EC0EED91965041AD826B987A2F55418E7304E29B965041AD826B987A2F5541CDBE74D1AA965041DF415AD5752F55413DC9D3FDB49650412EFB75A3702F5541632DD759BC965041D5D7830A6E2F55418EC6459BC7965041FF4E47646D2F55416FB9580CD09650413743A1866C2F554120003D3ED596504145C0374F6C2F5541EC1EA319CE965041D5D7830A6E2F554123F15154C1965041207EDFDA702F55413481A81AB9965041E88985B8712F554138946818B1965041A84D00B3762F5541F100CD45A6965041CEB1030F7E2F5541323D524BA196504163FEBAAF832F5541F5138D439E965041303FCC72882F5541FF7D630EA6965041F94A7250892F5541EDED0C48AE96504122C235AA882F5541EDED0C48AE9650411D8DCAC4842F5541E8B8A162AA965041D81BDAD9852F5541CDBE74D1AA965041B7EC4163822F554179D0ED1DAC9650416C46E6927F2F5541620B2C72B09650417AC37C5B7F2F554167409757B4965041884013247F2F554119877B89B99650415994E4E47B2F5541103F50A6BD9650410071F24B792F5541601A175CC4965041A84D00B3762F5541400D2ACDCC965041D1C4C30C762F554120003D3ED596504125B34AC0742F5541FCBDE4C9D99650416B243BAB732F5541B11789F9D69650411C6B1FDD782F5541AFF5DD11CB965041C0346D467E2F5541BD7274DACA96504126D5F5A7802F55416A84ED26CC965041E06305BD812F5541CF550C5AEE9650417059A690772F55413F3EC09EEC965041949BFE04732F5541B35BDFC8EE9650418F66931F6F2F5541E73C79EDF5965041C75AED416E2F55412ADFFFA914975041E967DAD0652F55414B0E982018975041A3F6E9E5662F5541EED7E5891D9750419EC17E00632F55416C3D30971B97504129A45FD6602F55418E8E73F52A975041FE0AF194552F5541C682CD172A975041447CE17F542F5541F71F116D19975041C303D7745E2F5541B08C759A0E975041BABBAB91622F554161B1AEE4079750413C566184642F554161B1AEE4079750419044E837632F55412F146B8F1897504116F25D285D2F55411FA6BFB02C97504131CADFD1502F5541B0DFB6533A975041679C8E0C442F554141F7020F3C97504191135266432F55418C9D5EDF3E9750413E25CBB2442F5541A012F4703E975041A588DB60482F5541360000009673759CD1965041DD102FF72A2F55419B878928B596504158460F760F2F5541C8D19AD7B4965041D44AF742192F554118967BBBB09650418A733CFF172F5541E07B2892AD965041B6B343E8252F554114B35FE1A7965041933974B3292F5541695A5C9FAC965041F99DD88B2C2F5541695A5C9FAC9650417B8FE6F8302F55416F47823FA79650417B8FE6F8302F554192C15174A39650419E09B62D2D2F554148EA9630A2965041504FDF0F232F5541A37EB98EA1965041E5075F5D172F5541BF0B6323A39650419E3AAEDF072F5541E6684E32A8965041A427D47F022F5541609424EB9A965041A631DE45F42E5541A588C3549396504147BA9F0DEC2E554189FB19C091965041AD1E04E6EE2E5541EF5F7E98949650410C96421EF72E5541DFA2167E969650416B0D8156FF2E55418AFB19C091965041B5E43B9A002F554119C7736D8B965041634749A2ED2E5541B3620F9588965041518AE187EF2E55412F67F761929650419D3AAEDF072F55412F67F7619296504174D3B80A112F5541639E2EB18C96504181AD044B062F55413C4143A287965041613D3FDCFB2E55410327F07884965041D37BEFF4F32E55414DFEAABC859650411F5DB4FEE62E55414711851C8B965041370742B9DF2E5541EC7C62BE8B9650412C37003FDC2E554154EBD05C8096504183E806C3D22E554165A838777E96504183E806C3D22E5541375E27C87E9650414FB1CF73D82E5541FF43D49E7B9650414FB1CF73D82E5541AA9CD7E07696504112B46070CC2E554172518C05999650414FE2C725B32E554199AE77149E965041441286ABAF2E55410AE31D67A4965041050B0DE2B12E55419E9193EEA6965041C6039418B42E5541DCC9046A7F965041D3ACE7A6CE2E55410EF731F387965041332426DFD62E554135541D028D965041CDBFC106D42E554152E1C6968E965041AA45F2D1D72E554167814A8B95965041B1321872D22E5541C2156DE994965041C6D29B66D92E5541011DE6B292965041D685F9BAE52E5541E97258F8999650412440D0D8EF2E5541A861D568AA9650416B0D8156FF2E554192B747AEB1965041A427D47F022F5541646D36FFB196504105A91C7EFC2E554180FADF93B3965041613D3FDCFB2E554141F366CAB5965041A80AF0590B2F55411A658309D6965041817C0C992B2F55419673759CD1965041DD102FF72A2F55415E0000000180F3D61097504133C2357B212F55419B1B8FFE0D9750418A733CFF172F5541467492400997504158460F760F2F5541038AFD9C02975041AFF715FA052F5541487E9C06FB965041C7A1A3B4FE2E554160282AC1F39650410C96421EF72E554116516F7DF2965041E91B73E9FA2E55414F6BC2A6F59650413EC36FA7FF2E55410B812D03EF9650412C06088D012F5541898F1F96EA965041CB84BF8E072F5541F6E0A90EE896504158460F760F2F554134E822D8E59650418A733CFF172F5541EB106894E496504195437E791B2F5541CE83BEFFE2965041409C81BB162F5541D953007AE6965041039F12B80A2F5541898F1F96EA965041D171E52E022F5541FAC3C5E8F09650417CCAE870FD2E5541BBBC4C1FF3965041672A657CF62E554183A2F9F5EF9650415C5A2302F32E554134E822D8E59650412136C612FE2E554173EF9BA1E3965041D75E0BCFFC2E5541AC09EFCAE6965041FAD8DA03F92E554139CB3EB2EE9650413FCD796DF12E554159CA2EB1EB9650419EF2E036EF2E5541BEDFA6AEE2965041BB9587F6F92E5541EB0E46D6DF965041981D227DF92E5541DFE6CEADDF965041228D7AE8F72E5541CDE998CBE9965041FAC15C00ED2E554190B00787E59650411CC984FFE92E5541AED5B491DB965041AF6D10CEF92E5541456D8425DA965041981D227DF92E5541E1570C28E39650418FE8EE19E82E5541AD647717D896504180DEFCFCE02E554156F97C8DCC965041F55DDBC0FA2E5541EC904C21CB96504147761DDCFB2E554160B0B63BC9965041512D578AF82E5541EC904C21CB965041670C0861F52E55419CE94780CD965041B7B30C02F32E554138D4CF82D69650413AEE310AE02E5541BF61ADF9CD9650412C557D67DC2E5541768F6712C69650411394519CD82E55410945BCB1BD9650417B8B448ED62E5541066341BDB696504129730273D52E5541276A69BCB3965041B4E25ADED32E554104F20343B3965041791A0714D32E55418DF01E34AE96504165AC93B7D92E5541C6473584AB965041633B563DD62E5541DD9723D5AB96504162CA18C3D22E55412CCEEAFBA59650412BE43FEDD82E554194C5DDEDA3965041F01BEC22D82E5541B9AE80E1A79650412702C5F8D12E5541A3CFCF0AAB9650415EE89DCECB2E554181C8A70BAE9650415B0623DAC42E55419918965CAE965041B7D59EA3C22E5541FD2D0E5AA59650410E5262FEB52E5541A15E9290A796504199C1BA69B42E55415E504292AD96504134AC426CBD2E5541A8228879B596504153422DF1B62E5541156D33DABD965041B757A5EEAD2E5541741E2A98C29650414056C0DFA82E5541AFE67D62C396504188B7C84CAD2E5541A52F44B4C69650414056C0DFA82E55410E987420C896504194DF3F75AD2E55419907CD8BC6965041FE4770E1AE2E55410C2737A6C4965041F50174ADB52E55412CBD212BBE965041B4646129BF2E5541861B607AB896504173C74EA5C82E554190D29928B596504119691056CE2E55414AE2CE35B4965041A549A63BD02E554185AA2200B59650413D52B349D22E5541118BB8E5B69650418F6AF564D32E554159ECC052BB965041BE0AD206D42E5541F5D64855C49650413FC3F0C3D52E55414960C8EAC8965041B4539858D72E5541E3D91273CE96504158841C8FD92E554159DBF781D39650411F2D063FDC2E5541E8BB8D67D596504142A56BB8DC2E5541FAA7FA78E39650419FF6EDCCC52E5541ADE270CCEC965041C650CE3ACD2E5541BE6E6934DF965041E8462D69E22E55412948D71AE4965041E9B76AE3E52E5541DF64C862F4965041BF7B0F81D72E5541044E6B56F8965041B5C4D5D2DA2E5541174BA138EE965041C4CEC7EFE12E554136E18BBDE7965041D3D8B90CE92E5541D63C513AF496504112F4C545F42E5541DB8F09A9FE9650412F976C05FF2E55414BBC2FFE0D97504164FB3E900D2F55417CCD491A1297504189E4E183112F5541CC744EBB0F97504121EDEE91132F55413E237B5B0A9750414183D9160D2F5541D99CC5E30F9750411836B5E3162F55417DCD491A12975041CB702B37202F55410180F3D61097504133C2357B212F5541050100002BA43E2E299750413108AA7F022F55411072D5E82197504113F4C545F42E554124E048451B9750413BD0ACFEE62E5541FFF6A55117975041E7462D69E22E5541356C41AD0D975041F08C299DDB2E5541913BBD760B9750411DBCC8C4D82E55413DB23DE1069750413D52B349D22E55414216BF20F99650417BFC8108DA2E55411D2D1C2DF5965041798B448ED62E5541BE7B256FF09650412502C5F8D12E5541319B8F89EE9650414709EDF7CE2E5541319B8F89EE96504122204A04CB2E55419EE53AEAF69650412CD783B2C72E5541C9A39C97F0965041AB1E65F5C52E5541008A756DEA965041341D80E6C02E5541D64D1A0BDC965041D1890E34B52E5541468B0931D39650419F07B79DAD2E554122A2663DCF9650411CDE5A66A82E55419F780A06CA965041AF93AF05A02E5541C17F3205C7965041B94AE9B39C2E5541E2865A04C4965041AF93AF05A02E5541CB366CB3C3965041332E49B7A82E55414A7E4DF6C19650411CDE5A66A82E55414A7E4DF6C1965041C6E39D56A02E5541F9D64855C4965041E67988DB992E554183D56346BF96504174CB5B3B9F2E5541753CAFA3BB9650416A14228DA22E5541EF30D877AF96504141C7FD59AC2E55416B963EC6A6965041213113D5B22E5541022E0E5AA5965041ACA06B40B12E5541141A7B6BB39650416C855F07A62E5541D37C68E7BC9650413A0308719E2E55414A7E4DF6C19650414E717BCD972E55412706E87CC19650415828B57B942E5541A64DC9BFBF965041C01FA86D922E5541C754F1BEBC965041CB471F96922E554117FCF55FBA9650419E18806E952E554168A3FA00B8965041424904A5972E55415A0A465EB49650411238EA88932E5541A26B4ECBB8965041BEAE6AF38E2E55411DD1B419B0965041C965A4A18B2E554153465075A696504102BDBAF1882E5541DAD32DEC9D96504175DC240C872E55419001E80496965041AE333B5C842E5541EB5F265490965041C412EC32812E5541A3FE1DE78B96504159397E4C7C2E5541D02DBD0E8996504163F0B7FA782E5541FC5C5C368696504179CF68D1752E5541707CC6508496504132DF9DDE742E554150F7A49C7296504142D8C62A942E554171FECC9B6F965041C11FA86D922E55417A3300FF80965041600E3D06722E554123C8057575965041BA6C7B556C2E5541B7EE978E70965041D32DA720702E55411D754D066B9650410C85BD706D2E5541E8107B7B5C9650417F935EBA832E5541A0AF720E58965041C412EC32812E55416E1C52A76896504120F330CD662E5541C23494C269965041A8628938652E5541F8A92F1E60965041172F3BE4582E5541485134BF5D965041718D7933532E554137D604285396504185FBEC8F4C2E5541CA8B59C74A96504102D29058472E5541D1D155FB43965041F638DCB5432E5541FD8FB7A83D9650413BB8692E412E554179F51DF734965041740F807E3E2E5541F83CFF39339650418B5F6ECF3E2E55419AFC45F631965041184004B5402E55411651E37341965041FB8B94244E2E554192A580F150965041D3AFAD6B5B2E5541EE74FCBA4E965041484055005D2E5541EAA34A972F96504181A83421422E5541A4B37FA42E965041184004B5402E5541256C9E6130965041E72EEA983C2E55410658BA2722965041867DF3DA372E5541219BEC3D11965041EC03A952322E554103870804039650416ADA4C1B2D2E55414977D3F6039650419709EC422A2E5541962B94D21296504154FB9B44302E55416498736B23965041FA9C5DF5352E5541988B087C2E965041135E89C0392E55416CCDA6CE34965041B51DD07C382E55414BC67ECF37965041EE74E6CC352E55413476907E379650410E0BD1512F2E55413205530434965041997A29BD2D2E5541E0EC10E932965041528A5ECA2C2E5541D04F4FB0589650417E48C077262E55412C1FCB795696504139C932FF282E554117B1571D5D965041749186C9292E554148C2713961965041227944AE282E5541DF5941CD5F96504120080734252E5541A6022B7D62965041DA173C41242E55410F6B5BE96396504164F8D126262E55419C4BF1CE65965041CE600293272E55411E754D066B965041729186C9292E5541C4160FB770965041E7212E5E2B2E5541B0A89B5A7796504121EA81282C2E5541D6027CC87E9650410A9A93D72B2E554114AD4A8786965041B88151BC2A2E5541A18DE06C88965041D98879BB272E55418086B86D8B965041207944AE282E5541161E88018A965041B88151BC2A2E55419E9A9CA799965041F79C5DF5352E5541772FF368AA9650414DA8E3D5252E554185C8A70BAE9650414CA8E3D5252E5541D7E0E926AF965041F249A5862B2E5541A7CFCF0AAB965041D0427D872E2E55416A963EC6A696504197EB6637312E5541744D7874A3965041263D3A97362E5541E86CE28EA19650413FFE65623A2E5541E86CE28EA19650416276CBDB3A2E55410C6341BDB696504115753718522E554199320ED2D09650418C6553566F2E5541A6CBC274D4965041530E3D06722E55419E85C640DB965041D1E4E0CE6C2E554121AF2278E096504144044BE96A2E5541C5DFA6AEE296504123FD22EA6D2E5541E6E6CEADDF9650410D1E7213712E55419E85C640DB965041D4C65BC3732E5541EE2CCBE1D8965041557F7A80752E55417C7E9E41DE9650418A01D2167D2E5541011938F3E69650411DB726B6742E5541CD14DA11F49650410C3CF71E6A2E55417A09543104975041CE20EBE55E2E5541DB2B88690C97504163477DFF592E5541EA357A86139750419C9E934F572E5541A99867021D975041844EA5FE562E5541CCFF03AB359750410507C4BB582E5541ACE712DB5097504190E759A15A2E5541ACE712DB509750413418DED75C2E55414EB8226837975041A73748F25A2E55417A874DE6189750411B57B20C592E5541BC959DE41297504149F78EAE592E5541DE9CC5E30F9750419B0FD1C95A2E5541DC2B88690C97504111A0785E5C2E5541AC1A6E4D08975041B5D0FC945E2E55418731CB5904975041590181CB602E554104086F22FF9650414F4A471D642E5541D014DA11F4965041BB94F27D6C2E5541FA61FE44EA965041118FAF8D742E5541F50E46D6DF965041FE9179AB7E2E55418F88905EE59650413414D141862E55415913F502EF965041458F00D9902E5541E9D505DDF7965041A6B13411992E55410EBFA8D0FB965041EE123D7E9D2E5541D5679280FE9650414EC4333CA22E554138FB03330A975041EB30C289962E55410BCC640B0D9750416D5A1EC19B2E5541A838F358019750410BB6E33DA82E554111A123C50297504147EF7482AC2E5541C1F91E2405975041F5D63267AB2E5541D8490D750597504181B7C84CAD2E55415891EEB703975041DFF78190AE2E554159022C3207975041BF61970BB52E55417EEBCE250B975041ED903633B22E5541E853FF910C97504156F9669FB32E5541DABA4AEF089750419E5A6F0CB82E5541680C1E4F0E975041E82CB5F3BF2E5541941D386B12975041E70E30E8C62E554167EE9843159750415F815271CF2E554167EE984315975041CA5AC057D42E5541968E75E5159750419103AA07D72E5541B906DB5E169750411EE43FEDD82E55413ABFF91B189750415A1DD131DD2E5541AEDE6336169750417D9536ABDD2E5541E6357A86139750414C13DF14D62E5541C3BD140D13975041F8895F7FD12E5541A045AF9312975041DFC833B4CD2E55411F8D90D61097504197672B47C92E55416F3495770E97504143DEABB1C42E5541EE7B76BA0C9750411EF508BEC02E5541B242E575089750413E8BF342BA2E55419981B9AA04975041A411A9BAB42E5541E928BE4B0297504174008F9EB02E554145F8391500975041728F5124AD2E5541DC8F09A9FE965041701E14AAA92E5541C53F1B58FE965041B29DA122A72E5541395F8572FC965041766410DEA22E55417DDE12EBF996504174F3D2639F2E5541DAAD8EB4F79650418AD2833A9C2E5541E464C862F49650417D39CF97982E554190DB48CDEF96504140003E53942E5541EA39871CEA9650418F36057A8E2E5541DDA0D279E6965041829D50D78A2E55415A777642E1965041D0D317FE842E5541AA1E7BE3DE965041C33A635B812E5541642EB0F0DD96504165FAA917802E5541B4D5B491DB9650419229493F7D2E55413ED4CF82D6965041F8AFFEB6772E55413C639208D39650413D2F8C2F752E55419F07CD8BC696504191A742F4912E5541297725F7C49650414AB77701912E5541AF82FC22D1965041B04EF649732E554183E62C17A7965041E738DCB5432E5541022E0E5AA5965041DC10658D432E554116AD4A87869650411546E93B712E55418ACCB4A184965041C32DA720702E55416A25014CA3965041C4C0763C432E554153D512FBA2965041DA9F2713402E5541C6F47C15A19650411E1FB58B3D2E554143CB20DE9B965041CE77B0EA3F2E554135326C3B9896504159E708563E2E554162610B6395965041639E42043B2E55419D295F2D96965041612D058A372E554161F0CDE8919650413D446296332E5541F7879D7C90965041F65397A3322E5541E037AF2B90965041640F807E3E2E5541D680757D939650412BB8692E412E5541A951D655969650411F90F205412E5541874AAE569996504115D9B857442E554158AAD1B498965041E8A91930472E5541875B772781965041938DCA7E6F2E55410BF610D989965041FE663865742E5541C5E7C0DA8F9650413D1107247C2E5541A4E098DB92965041E0D04DE07A2E554182D970DC959650410E712A827B2E554103928F9997965041B2A1AEB87D2E55413CE9A5E99496504162FAA917802E5541EAD063CE93965041919A86B9802E55416CFABF059996504135CB0AF0822E55412B5DAD81A2965041FC73F49F852E55413CD8DC18AD965041B8F46627882E5541FCAB070FBA96504117A65DE58C2E55410945BCB1BD965041215D9793892E55410BB6F92BC1965041C58D1BCA8B2E5541440D107CBE965041A386F3CA8E2E5541BB0EF58AC3965041E0BF840F932E554147EF8A70C596504155502CA4942E554101EEF6ACDC96504110E267FC7E2E554148DEC19FDD965041C03A635B812E5541870A97A9D09650412EF64B368D2E55418EDF5563C6965041334904A5972E554193A34B4CD4965041E3AEBB3EAB2E55410834F3E0D596504187DF3F75AD2E55411E02DBE6EA96504178C48487BE2E55414E13F502EF9650413F6D6E37C12E554127A84BC4FF965041AA57A5EEAD2E5541717A91AB079750413B8BF342BA2E554138237B5B0A975041544C1F0EBE2E55410430E64AFF9650414E776054C82E5541FCE9E916069750410B691056CE2E5541C50311410C97504103231422D52E55412E6C41AD0D9750410494519CD82E55416BA5D2F11197504140CDE2E0DC2E5541041F1D7A179750417D067425E12E5541299782F317975041119E43B9DF2E5541BF2E52871697504190E524FCDD2E554140E770441897504184BDADD3DD2E5541FB67E3CB1A975041E46EA491E22E5541B7E855531D97504172C077F1E72E5541205186BF1E975041FEA00DD7E92E5541D31ABF9824975041AA244A7CF62E5541059D162F2C975041542A8D6CEE2E5541EFBD65582F9750411A6239A2ED2E554141D6A77330975041B26A46B0EF2E5541A9CD9A652E975041B4DB832AF32E5541D6FC398D2B975041FC3C8C97F72E554155441BD0299750414CE49038F52E55415FFB547E269750411FB5F110F82E5541A75C5DEB2A975041D2EF6764012F55412BA43E2E299750413108AA7F022F554106000000125CDAF6C4965041D621910EEF2E5541D354612DC796504115290AD8EC2E55411D2C1C71C896504131B6B36CEE2E55412EE9838BC6965041D4178748FD2E55419B3A0E04C4965041B19DB713012F5541125CDAF6C4965041D621910EEF2E55410600000056E47E3616975041CD8C510CB82E5541785E4E6B129750413ADEDB84B52E55414427171C189750415C58ABB9B12E55410A03BA2C23975041BED9F3B7AB2E5541F84552122597504140CB0125B02E554156E47E3616975041CD8C510CB82E554105000000F63B484C33975041F03719F38E2E55413543C115319750418AD3B41A8C2E5541F4313E8641975041B33AAAEF822E5541B52AC5BC43975041199F0EC8852E5541F63B484C33975041F03719F38E2E554105000000B178A19415975041810D7D667A2E5541D3F270C9119750411BA9188E772E5541B55BBD6E1E975041678ADD976A2E55411BC0214721975041725A1F126E2E5541B178A19415975041810D7D667A2E554106000000A677676837975041619DB7F76F2E55415CA0AC243697504105099599702E554112C9F1E034975041B16198DB6B2E554176234CF34597504124A048F4632E5541371CD32948975041012679BF672E5541A677676837975041619DB7F76F2E5541060000000DEDF96814975041942B31DE342E5541DE4C1DC7139750412952C3F72F2E55414E79431C23975041347A3A20302E5541DB59D90125975041631A17C2302E5541F3A9C75225975041DA1BFCD0352E55410DEDF96814975041942B31DE342E554107000000665C0189F6965041A246ECCB232E554137BC24E7F596504195AD3729202E55411F6C3696F596504114F5186C1E2E5541665C0189F6965041933CFAAE1C2E5541D517EA63029750414124B8931B2E554103B8C605039750412DB64437222E5541665C0189F6965041A246ECCB232E5541070000008403B5DED7965041AB7B1F2F352E554178DB3DB6D79650416F428EEA302E5541656DCA59DE965041CB110AB42E2E554172067FFCE1965041CB110AB42E2E554147481D4FE8965041B3C11B632E2E554153709477E896504113731221332E55418403B5DED7965041AB7B1F2F352E55410A000000CE68CAE1B2965041541025A5292E55418778FFEEB19650412F2782B1252E55410AA25B26B79650415C5621D9222E5541A3AA6834B9965041CF758BF3202E554125D4C46BBE965041376D7EE51E2E5541E15437F3C09650417235D2AF1F2E554110F51395C1965041E7C57944212E5541F8A42544C19650413B4FF9D9252E55412F8BFE19BB9650412F2782B1252E5541CE68CAE1B2965041541025A5292E55411E0000003C4EA1D63296504174396FBAA22E55414CDA993E25965041B5D6813E992E5541C9B03D0720965041E2052166962E55414ECDDD031496504150D2D2118A2E55411F3ECA32FB955041E8DADF1F8C2E5541614C1A31F595504122A333EA8C2E554184C47FAAF59550416722C1628A2E554197B0ECBB03965041E669A2A5882E55418442795F0A965041DA412B7D882E5541FFA7DFAD019650419451608A872E55411CDE5589DF9550414CF0571D832E554156A6A953E0955041906FE595802E554141342961109650414E619597862E5541A92B1C530E965041AA301161842E55413BE170F205965041A4DD58F2792E5541FFA7DFAD01965041168C8592742E55418A17381900965041AC235526732E5541D6DCC1C5F6955041068293756D2E5541177AD449ED9550419BA8258F682E5541461AB1EBED9550413D686C4B672E5541679FD29FFF955041141B4818712E55412E48BC4F02965041AC235526732E554153315F43069650410CD54BE4772E55414D5CA08910965041B5588889842E5541F6DFDC2E1D965041762CB37F912E5541F8501AA920965041614D02A9942E55417616F5A033965041E758D9D4A02E5541C82E37BC3496504116F9B576A12E55415FC606503396504174396FBAA22E55413C4EA1D63296504174396FBAA22E55410D0000001034D815F4955041F17C4367CA2E554145A97371EA955041EB298BF8BF2E55411AEB11C4F095504169002FC1BA2E5541040C61EDF39550412481A148BD2E55414AFC2BE0F4955041BB1871DCBB2E554112A51590F7955041AFF0F9B3BB2E5541C1FD10EFF9955041C740E804BC2E5541378EB883FB955041BB1871DCBB2E55412DD77ED5FE955041EAB84D7EBC2E55415A061EFDFB955041EB298BF8BF2E55414D6D695AF8955041E172514AC32E5541D94DFF3FFA955041A81B3BFAC52E55411034D815F4955041F17C4367CA2E55410A000000A4D863E4039650417699E363BE2E55413B7033780296504101093CCFBC2E55415EE898F10296504197A00B63BB2E55415EE898F1029650412E38DBF6B92E5541C750C95D04965041AD7FBC39B82E554131B9F9C905965041A1574511B82E55414A7A259509965041DC1F99DBB82E55413E52AE6C09965041DD90D655BC2E55416059D66B069650415E49F512BE2E5541A4D863E4039650417699E363BE2E55410C0000006D855A2ADD9550418F5A0F2FC22E5541773C94D8D9955041A539C005BF2E5541AE226DAED3955041DC1F99DBB82E5541003BAFC9D49550415B677A1EB72E554169A3DF35D69550412CC79D7CB62E5541EA5BFEF2D7955041DAAE5B61B52E5541C954D6F3DA955041651EB4CCB32E55416D855A2ADD955041651EB4CCB32E5541BD2C5FCBDA955041DAAE5B61B52E5541031D2ABEDB955041209F2654B62E55412A770A2CE395504153217EEABD2E55416D855A2ADD9550418F5A0F2FC22E55410600000031CECF30C49550411102651BDC2E5541764D5DA9C1955041CB119A28DB2E5541B286EEEDC59550415DC7EEC7D22E554156B77224C895504117D723D5D12E554156B77224C8955041B0DF30E3D32E554131CECF30C49550411102651BDC2E554109000000D2E7721B37965041FB869E76A12E55418810B8D735965041561BC1D4A02E55413E39FD9334965041DEF9F4E19F2E5541FF3184CA369650411D016EAB9D2E554149093F0E3896504112312C319A2E55416596E8A239965041903F1EC4952E5541278F6FD93B9650410761EAB6962E5541DDB7B4953A965041D429B3679C2E5541D2E7721B37965041FB869E76A12E55410A0000002CAEA037AE955041AFBC1435362F5541FF7E0110B1955041D90939682C2F5541E99F5039B49550417BC97F242B2F55418DD0D46FB695504187F1F64C2B2F55411AB16A55B8955041FC819EE12C2F55416A586FF6B59550414654E4C8342F554199F84B98B6955041AFBC1435362F554181A85D47B69550413C9DAA1A382F55415197432BB2955041A505DB86392F55412CAEA037AE955041AFBC1435362F55410E000000877D1C01AC9550413D1FB165232F5541E34C98CAA9955041DFDEF721222F55419D5CCDD7A89550413BAE73EB1F2F5541CCFCA979A9955041D145437F1E2F5541FB9C861BAA955041508D24C21C2F554159DD3F5FAB955041F34C6B7E1B2F5541DA955E1CAD955041AC5CA08B1A2F5541C4B6AD45B0955041666CD598192F554197870E1EB3955041082C1C55182F5541520881A5B5955041C23B5162172F5541BC70B111B7955041D98B3FB3172F5541F63805DCB795504137CCF8F6182F5541DFE8168BB7955041CFD405051B2F5541877D1C01AC9550413D1FB165232F55417D000000803F3AF95F955041A0B222182F2F5541E8362DEB5D955041B691D3EE2B2F5541B99650495D955041B4209674282F55418AF673A75C955041609716DF232F554138DE318C5B9550414565AD991C2F5541E6C5EF705A955041EF6AF089142F55418985362D59955041EC8875950D2F5541ACFD9BA65995504125E08BE50A2F5541529F5D575F955041D1560C50062F554156700F7B7E95504143873F3BEC2E5541B89243B386955041074EAEF6E72E5541D5176567989550410F05E8A4E42E554154DD3F5FAB955041D2CB5660E02E5541D877D910B4955041E8AA0737DD2E5541F0C7C761B4955041B90A2B95DC2E55414A2606B1AE9550411F91E00CD72E5541CDD168339F955041BA8C31E0C72E554133581EAB99955041C4436B8EC42E5541C60D734A9195504145FC894BC62E5541BAE5FB2191955041B81BF465C42E55416087BDD2969550414EB3C3F9C22E55410247048F95955041AE823FC3C02E5541BB56399C94955041C461F099BD2E55410D6F7BB795955041D940A170BA2E5541EAF6153E95955041C07F75A5B62E554152EE083093955041E015602AB02E554100D6C61492955041D27CAB87AC2E554198DED32294955041BB2CBD36AC2E5541F61E8D66959550418F6E5B89B22E554183FF224C97955041FB47C96FB72E55419A4F119D9795504137815AB4BB2E55415F87BDD296955041E7D95513BE2E55416BAF34FB969550418B0ADA49C02E554132581EAB999550413B63D5A8C22E5541C1A9F10A9F955041F6E34730C52E55419F20C3C0B69550418E6A4EF3DB2E55411B75603EC6955041FD2537CEE72E5541E870025DD39550419A10BFD0F02E5541113C2045DE955041632AE6FAF62E554151572C7EE9955041DA2BCB09FC2E5541168FD8B3E8955041201C96FCFC2E5541A9442D53E09550411383E159F92E5541D4028F00DA95504128629230F62E55417E08D2F0D1955041D4D8129BF12E55410696AF67C99550412E3751EAEB2E5541B09BF257C19550417D6D1811E62E55414F79BE1FB995504191DB8B6DDF2E5541C298283AB79550414AEBC07ADE2E55411E68A403B5955041561338A3DE2E554162E7317CB295504191DB8B6DDF2E55414FFBC46AA4955041D93C94DAE32E55411997F2DF95955041B7356CDBE62E55411CFB731F8895504173B6DE62E92E5541607A019885955041B9A6A955EA2E5541F711D12B84955041220FDAC1EB2E5541EBE9590384955041C63F5EF8ED2E55414B9B50C1889550418D66415D052F5541CB536F7E8A95504183AF07AF082F5541299428C28B955041D5C749CA092F55416E13B63A89955041A6276D28092F5541ED5A977D879550418D66415D052F55419B4255628695504195AC3D91FE2E5541F711D12B84955041A7A97373F42E55418DA9A0BF82955041C63F5EF8ED2E5541A4F98E1083955041F36EFD1FEB2E554168C0FDCB7E955041BA17E7CFED2E5541B4AFFF5C72955041AC0413D3F82E554109D6DFB57495504163A797D4F92E55413130AF7F76955041E80BCA81FB2E554185568FD878955041FCB8B166FC2E5541F29B98DB7A95504115D8DA10FC2E554101D73EFB7C955041C1B1FAB7F92E5541BCEB04C27C955041B1765498F72E55413787D2147B955041E726E8B1F52E55417700CB887C95504149A38C5AF42E55414250376F7E9550412149BD90F22E55416538C57381955041110E1771F02E5541A6B1BDE7829550417E532074F22E5541082E62908195504135F6A475F32E5541853B71A87E9550416250743FF52E5541FB64FD357E955041728B1A5FF72E554180C92FE37F955041FC618ED1F72E5541D5EF0F3C82955041596CF1B4F72E554177E5AC5882955041DFD02362F92E55410F12E51A7F95504124BC5D9BF92E5541CE98ECA67D9550416435560FFB2E55418E1FF4327C955041D17A5F12FD2E5541254C2CF578955041526D50FAFF2E5541BD7864B77595504135DCE58A012F554128D98BEA719550419EAFADC8042F55418EC771586F955041CA7BBE57052F5541F5B557C66C9550410F67F890052F55413E13D3C46B95504171E39C39042F5541F927998B6B9550413EC06815FF2E5541B9E908B867955041C5BD57AD022F5541B39650495D9550410368266C0A2F554109910D59659550410F909D940A2F55414FFFD1007B9550415F37A235082F55416A313B46829550415F37A235082F55411EC18A8A909550417E7566EE0A2F5541EC323DEBAA955041CAB7C3BC0F2F55411522F339CC955041B37D7CE2152F55411FECB6D9D795504182CDE8C8172F554121D198A9DD9550413DE2AE8F172F554154F4CCCDE29550411588DFC5152F5541D0747CF0E69550417B76C533132F554156D9AE9DE89550413BFDCCBF112F554190FB837CE5955041D09CA58C152F55417EDBFB8CDD95504138706DCA182F55417884D8F7D8955041C246E13C192F55413526FEB3D19550410CA45C3B182F5541C4163111C49550418BB16B53152F554130C7538FA695504113A3FDF50F2F55415955A12E8C9550418A7566EE0A2F5541F30E39E681955041621B9724092F5541138426E07D955041BD25FA07092F5541BF05C4AC6E9550415BA9555F0A2F5541D27547E75C955041CC60A0270B2F5541D6E788AC5B955041AFCF35B80C2F55414C11153A5B955041923ECB480E2F554170F9A23E5E9550413771CC0F212F5541269C27405F9550418D7C8E38292F55414EF6F60961955041C51104222D2F55411062E06565955041F8343846322F5541803F3AF95F955041A0B222182F2F554107000000565D28BEB2955041F22CB1B60B2F554173EE922DB195504199948F980A2F5541879B7A12B2955041446EAF3F082F5541EF6E4250B59550411C14E075062F5541DEA63C3BBA95504196AFADC8042F554106010C05BC955041A1781223082F5541565D28BEB2955041F22CB1B60B2F5541050000009449C13CBB955041324E2750002F55413BB19F1EBA9550412CF703BBFB2E5541BA163111C4955041080F76B6F82E5541B5A4EF4BC59550415451D384FD2E55419449C13CBB955041324E2750002F55410E000000D52C74E694955041D8EAE24CEB2E5541216FD1B499955041BFCBB9A2EB2E55415804479E9D955041F0090CF7EA2E5541EDA31F6BA19550411DD61C86EB2E5541EDA31F6BA1955041A23A4F33ED2E5541A8B8E531A19550416D8ABB19EF2E5541B19C68BC9E9550410B0E1771F02E55418EB4DAB79B955041C622DD37F02E5541F4A2C02599955041F2EEEDC6F02E5541E0F5D840989550414B870FE5F12E55415B91A69396955041BD3E5AADF22E55416475291E949550416E6F9DE9F42E55417C9452C8939550419956CCA8EF2E5541D52C74E694955041D8EAE24CEB2E55413000000084704A586A95504177C62BD6402E5541DECE88A7649550416358B879472E5541098DEA545E9550415D83F9BF512E5541071CADDA5A955041ED450A9A5A2E55411F6C9B2B5B955041A08080ED632E5541A9DBF39659955041E8E1885A682E554111D3E68857955041983A84B96A2E5541A86AB61C56955041E20CCAA0722E5541C971DE1B53955041A16FB71C7C2E5541AE3F75D64B955041E3FB00D08A2E55415B2733BB4A9550412B5D093D8F2E55411155EDD3429550410E385C32992E5541F6B1461438955041C4C58AF4AC2E5541CDE6282C2D955041428B65ECBF2E55414ABDCCF427955041767EFAFCCA2E5541494C8F7A2495504105D0CD5CD02E55412E1A26351D955041D9116CAFD62E554144F9D60B1A95504138C3626DDB2E5541C91577080E955041FD780858EF2E5541A2BB969A0695504111D6B2E3002F5541F3629B3B049550417DAF20CA052F554149DF5E96F794504137AE8C061D2F5541D44EB701F6945041090EB0641C2F55419522E2F702955041081F7935042F5541C633FC13079550416AC3B3B8F72E554119BD7BA90B955041B6883D65EE2E55418F4D233E0D955041B6883D65EE2E5541B5A703AC14955041F5B4126FE12E55412B38AB40169550414F1351BEDB2E554150214E341A95504140095FA1D42E5541EA9A98BC1F955041E15768E3CF2E55414477D0C02E955041F4B81F05B82E5541C52FEF7D30955041E890A8DCB72E55416C42EEA8399550410EFC511BA72E55411AC62A4E4695504161255D07902E5541E3DF51784C955041C53AD504872E5541723125D85195504162A763527B2E5541502AFDD854955041C6BCDB4F722E55410DAB6F605795504129F0D858622E5541266C9B2B5B95504150CCBF11552E55413023D5D957955041F38B06CE532E55415FC3B17B58955041086BB7A4502E5541512AFDD8549550417062AA964E2E5541823B17F558955041973E914F412E554107D6B0A6619550418E8757A1442E554164166AEA629550414908CA28472E554151A8F68D69955041F30D0D193F2E554184704A586A95504177C62BD6402E55410500000007112645C69450414F5F8F2D282E5541B5F8E329C5945041AB2E0BF7252E554166C21C03CB9450413C73221C1A2E554176CC0E20D294504186456803222E554107112645C69450414F5F8F2D282E554106000000491F7643C0945041C7E27A87182E55417F94119FB69450415C090DA1132E5541A8E135D2AC945041644F09D50C2E55412B0B9209B29450418274B6DF022E55419DA8F5D8C494504114A804340F2E5541491F7643C0945041C7E27A87182E5541
+</a>
+
+<b>
+01060000000100000001030000001600000083010000C4863E0874965041F5963CB13F2F554170074D3D7496504145D7C3CB3F2F554139C6007B7596504174173630412F55411B734D38769650416C45783F342F5541AB8A99F37796504167EE6172242F554103F2E15B92965041585E0BAC2C2F55418C6AEC6688965041448A5E161D2F55419CFA422D809650416175A0BD082F5541FA30F5C37A965041BD9C676AEF2E5541FC7820A776965041A45EE409D82E554137380FE471965041F32AC0D5CA2E55417452E901619650410BD2ABAD9E2E5541E20532615B965041F7FDFE178F2E5541E218F25E53965041E65EBD67832E55418E1B80C140965041CE203A076C2E5541E8FA1B8B2B9650413BFA0262562E5541A7C26B99149650416762DBD1412E55414200385006965041C02EB79D342E5541C39AED42089650418105F295312E5541BFDA6EFE3B965041990A35FD602E554172303E1A5596504170C40775812E55418617ABAD5C965041F5C893328B2E5541D7F271636396504127976D599A2E5541956EC17A6C9650414AD5F0B9B12E554146B5A5AC7196504121B5432DC22E55416C61D4EB749650416D263418C12E5541AB8A99F377965041409CB0C0C92E554149EA10927596504193BFA259CC2E554109AE8B8C7A965041F881D6A2DA2E55415CD17D257D965041CAE4924DEB2E55416906E90A81965041AD0C11A4F72E55416906E90A81965041109AD907022F55413EC490968596504121391BB80D2F55410E05A2598A965041F1666C7D1A2F5541CEC81C548F96504186E88E03242F55418F8C974E94965041F5BD824A2A2F554193F66D199C965041289F1C6F312F5541E4D134CFA2965041EDDF2D32362F554174D6C08CAC965041BD203FF53A2F5541C8F9B225AF965041956525CC232F55416EF49660D49650413964DE1A2D2F5541E011B68AD696504167DBA1742C2F55415451809CE49650418D7410B6372F5541D5D87591EE9650419ABC3B99332F5541C33934E1E2965041267D7187252F5541C313B4E5F2965041C3EFA8231B2F554144AE69D8F4965041F1792C7B122F5541C6481FCBF69650410574590C122F55416A47D81900975041B6BA3D3E172F55413CAA94C410975041078344F6252F55415DD92C3B1497504186FB4E011C2F55411B683C5015975041564F20C2182F55415AA4C15510975041958BA5C7132F55411B683C5015975041C1CDFD3B0F2F55413C97D4C618975041C3026921132F55415B8759D5339750412A2A30CEF92E55417EC5DC354B975041B832919FE72E55413C54EC4A4C9750416757CAE9E02E5541593F2EF2379750414406878BD12E5541E4FF63E029975041322E05E2DD2E5541D34D62322697504112FF6C6BDA2E55410A99D221359750410FDDC183CE2E5541987BB3F732975041810DA1ABC82E5541E734CFC52D975041CB4926B1C32E5541D7B738FD2D9750410B86ABB6BE2E5541F6B1658E2D975041CC5CE6AEBB2E55410CCE3D0739975041BCF20FE4B32E55413C7A6C463C975041488DC5D6B52E5541EDC05078419750410977C0CCAA2E55419A9D5EDF3E975041E8472856A72E55419CE589C23A9750415830DC9AA52E5541C827E23636975041D460BBC29F2E5541796EC6683B97504185BA5FF29C2E55418D4273FE4A97504174085E44992E5541929989CB5A975041F36DA851972E554175D4C71F5F97504199A1CC85A42E5541D3F7B9B8619750412EEAAE12C62E55411556EAA56897504160DE0835C52E5541295017376897504170F23686082F554175D4C71F5F9750411087190A0A2F5541D338105B5E9750414E7CD6660A2F55417E3A3B8768975041FF6B8E7E082F554139E5DB8B6C9750417F784A33082F554130A2AB836D975041BB1686F6012F5541E6178CCF6D97504167AEBA5AD12E55417A90392E6C975041AC8A32CBC12E5541E0D65D9F649750417F69D369A32E5541B14066BB5F975041DF9DE1A08D2E5541B40843A85D9750416422672F912E554160AD3BEA589750415C7DCA08892E55419F66739453975041613C9CD87F2E55410E1A111952975041F0A233FD6F2E5541C58FF16452975041FC6A10EA6D2E55416111AAE0579750416BBA3F786D2E55414A78E5E95497504143ABF6505D2E554133DF20F35197504143ABF6505D2E5541D3BB3C484F97504189EBDCB74C2E5541509B25B04A9750411F5B7FF9432E55411DAACAF24D975041B26FBE61432E55416734EAA64D9750415F14B7A33E2E5541077574F249975041CD63E6313E2E55415F2BDF8946975041B280E8ED2A2E5541F4D60A8DFB9650419B94DF8C102E554172497AE1F09650419D5CBC790E2E55419069ED94E89650417897AC9F0E2E5541505D7180D69650418F307196112E5541DA268BED9E9650412886DE2E1A2E554106312FA663965041B577DDD0232E5541C0E3846148965041A6E723F7272E55410AE33C982E96504173925A432C2E55411461E0371C965041D3B53EEE2E2E554157757BBB0E965041E07D1BDB2C2E55415EFC29780396504181BEA526292E5541B3EAB7220296504196F3FB262D2E5541BDBB9F2C07965041D1ED6101312E554180F95C6505965041E88626F8332E554182C1395203965041F2570E02392E5541815DCB5B04965041A5728B74412E5541414025BB0A9650414CF443F0462E5541AF24B9CF1C9650417DAD8D6C542E5541102C60EB139650417DAD8D6C542E554169A516EC1B965041A77C82D55B2E554114072D1A0D9650418C163BFD6F2E5541059E7F89F1955041CD4EEDAF5F2E55418C77917FEC9550417A1C27E0682E5541783317C0D7955041A77C82D55B2E5541CBAF53EBA89550418F3B7E87432E5541EA122552989550411B5C80AE4F2E5541E13ACE949B9550411781B37F562E5541B3DA729FA89550412FA0FA6D642E5541E7CB2468BA955041686C79656F2E5541783317C0D795504107878FA9822E5541705BC002DB955041B354C9D98B2E5541F25905CADC955041524D22BE942E554154895528D7955041A0C6D8BE9C2E5541182C70A4E0955041083D194EA82E554141B1FE6ADA9550416A8E260CAD2E55411FBA60BFCF95504149978860A22E55418C0B6E7DD4955041516FDF1D9F2E55419DBB1BF8CD95504116F03C3A9E2E5541119B19D1C19550410218E67CA12E5541B82163D0B99550411AEDC6C8A12E5541FE569F11AD955041CB95CD27A42E55417380038DAE955041FE1A5CEE9D2E55411A074D8CA69550417C1C17279C2E55410B9E9FFB8A955041C54EDDF6922E554133B70AC06C95504171B0F324842E55411BE780BF6C9550417C9C0811842E554192B801B06C955041B15EF919842E554145F219716B955041CCDF90D7862E5541D1D8CB8F719550413C6F3E4A892E55412F35A186799550417BB6F7B08D2E554182F82712819550419ACB1341912E55410BA41B26879550410462EBC4932E554136F33943859550410DDEB8E9962E5541EE4C34FE7A9550416F99766A902E554166A140EA74955041F069507B8D2E5541275A87837095504186D378F78A2E5541FEC89DCE699550413C6F3E4A892E5541147F6D8067955041713A2A8C8A2E55415567DA086695504150845ADA8C2E5541747CF69869955041DAB380C98F2E554172DB42776F955041A46462AC912E55418657109C72955041AEE02FD1942E5541DA37186E7795504122770755972E554123FB9EF97E955041EC0A68F19B2E554101284E0184955041C1BB49D49D2E554160A1A43E89955041D654983F9E2E5541E9D0CA2D8C955041B59EC88DA02E55419DCBDC5E90955041A964C600A62E5541727CBE4192955041FD44CED2AA2E5541C91AFB7B8E955041A7C312DFAB2E5541406F076888955041FD44CED2AA2E55410BA41B26879550419CA69198AE2E5541406F0768889550418F6C8F0BB42E55411520E94A8A955041B8FD78C0BA2E5541B381AC108E955041CBF5130AC12E5541B3642BCA90955041356F6A47C62E5541FF869ADF89955041896CF35FC82E5541A4CB780A7C95504127B135DFCE2E5541E4B3E5927A9550417D32F1D2CD2E5541102085F675955041530054FCCC2E5541478C245A71955041F2E5499DCD2E55416742F40B6F9550413D4A844ACF2E5541A82A61946D9550417074BC6AD62E55419EAE936F6A955041301082BDD42E55417F9977DF66955041850D0BD6D62E554135353D32659550418F89D8FAD92E5541F6ED83CB609550410320B07EDC2E55414A51FA6B61955041F8EDD6CCDE2E554110F1858463955041BF8D62E5E02E554110F1858463955041776D8CD4E32E55413191984262955041158D549AE72E55419271D07C5E95504103ADA305E82E55410D126AE059955041BB8CCDF4EA2E55419271D07C5E955041618C464FEE2E5541EC7157225B955041F9CB5D80F22E5541AF32C79653955041656B62F3F72E55416A1386764C955041BB6A54A8FE2E554172E75D5A4C955041BF120470FE2E5541DBC37D544C955041BAC896E2FE2E5541D6760DF95A955041F85AE9D4092F55414D9F5D575F955041D0560C50062F554156700F7B7E9550413F873F3BEC2E5541BC9243B386955041074EAEF6E72E5541D2176567989550410D05E8A4E42E554150DD3F5FAB955041D4CB5660E02E5541D677D910B4955041E4AA0737DD2E5541EBC7C761B4955041BB0A2B95DC2E55414A2606B1AE9550411A91E00CD72E5541D1D168339F955041B58C31E0C72E554130581EAB99955041C6436B8EC42E5541C90D734A9195504143FC894BC62E5541BFE5FB2191955041BB1BF465C42E55416087BDD29695504153B3C3F9C22E55410247048F95955041AD823FC3C02E5541B956399C94955041C861F099BD2E55410C6F7BB795955041D840A170BA2E5541EDF6153E95955041BF7F75A5B62E554151EE083093955041E015602AB02E5541FDD5C61492955041D17CAB87AC2E55419ADED32294955041BC2CBD36AC2E5541F71E8D6695955041916E5B89B22E55417FFF224C97955041FD47C96FB72E55419E4F119D9795504136815AB4BB2E55416087BDD296955041E7D95513BE2E55416AAF34FB969550418D0ADA49C02E554130581EAB999550413F63D5A8C22E5541C6A9F10A9F955041FAE34730C52E55419C20C3C0B6955041916A4EF3DB2E55412075603EC6955041FC2537CEE72E5541E970025DD39550419710BFD0F02E5541153C2045DE955041612AE6FAF62E55414C572C7EE9955041D82BCB09FC2E5541188FD8B3E8955041211C96FCFC2E5541A7442D53E09550411283E159F92E5541D2028F00DA9550412D629230F62E55418108D2F0D1955041D5D8129BF12E55410596AF67C99550412A3751EAEB2E5541B49BF257C19550417F6D1811E62E55414D79BE1FB995504196DB8B6DDF2E5541C698283AB79550414DEBC07ADE2E55411F68A403B5955041571338A3DE2E554163E7317CB295504196DB8B6DDF2E554152FBC46AA4955041D93C94DAE32E55411797F2DF95955041B3356CDBE62E55411AFB731F889550416FB6DE62E92E55415E7A019885955041B8A6A955EA2E5541F611D12B84955041200FDAC1EB2E5541ECE9590384955041C73F5EF8ED2E55414E9B50C1889550419266415D052F5541CB536F7E8A95504182AF07AF082F5541299428C28B955041D5C749CA092F55416D13B63A89955041A1276D28092F5541F05A977D879550419266415D052F55419D4255628695504194AC3D91FE2E5541F611D12B84955041A6A97373F42E55418EA9A0BF82955041C73F5EF8ED2E5541A3F98E1083955041F66EFD1FEB2E55416AC0FDCB7E955041BC17E7CFED2E5541B9AFFF5C72955041AA0413D3F82E554109D6DFB57495504167A797D4F92E55412F30AF7F76955041E80BCA81FB2E55418A568FD87895504100B9B166FC2E5541EE9B98DB7A95504113D8DA10FC2E554100D73EFB7C955041C2B1FAB7F92E5541B8EB04C27C955041B0765498F72E55413687D2147B955041E626E8B1F52E55417A00CB887C95504147A38C5AF42E55414450376F7E9550412149BD90F22E55416438C573819550410F0E1771F02E5541A7B1BDE7829550417D532074F22E5541082E62908195504139F6A475F32E5541823B71A87E9550415F50743FF52E5541FB64FD357E955041728B1A5FF72E55417CC92FE37F955041F8618ED1F72E5541D7EF0F3C82955041546CF1B4F72E55417CE5AC5882955041E0D02362F92E55411312E51A7F95504129BC5D9BF92E5541D098ECA67D9550416135560FFB2E55418D1FF4327C955041CF7A5F12FD2E5541244C2CF578955041566D50FAFF2E5541BB7864B77595504133DCE58A012F554127D98BEA719550419BAFADC8042F55418EC771586F955041C67BBE57052F5541F4B557C66C9550410F67F890052F55414313D3C46B95504170E39C39042F5541FA27998B6B9550413EC06815FF2E5541BEE908B867955041C2BD57AD022F5541B19650495D955041FE67266C0A2F55410D910D596595504114909D940A2F554151FFD1007B9550416237A235082F55416F313B46829550416237A235082F554119C18A8A90955041807566EE0A2F5541F1323DEBAA955041C5B7C3BC0F2F55411622F339CC955041B57D7CE2152F55411BECB6D9D79550417FCDE8C8172F55411DD198A9DD95504141E2AE8F172F55414FF4CCCDE29550411088DFC5152F5541D0747CF0E69550417776C533132F554152D9AE9DE89550413FFDCCBF112F55418DFB837CE5955041D29CA58C152F55417E37808BE2955041496037C0162F55414C09589AE395504148F94D55162F5541A873A00BE6955041EB01315B152F554171007D40E69550414AEA0866152F5541C2E3F44CE69550416928054B152F55414063AA54EB9550411D2913960E2F55413954DFB9E39550418B919F47082F55415A230C7EEA955041038B2AB9FB2E55410703366DED955041E3EA17FBFC2E55418C629C09F2955041BB6A54A8FE2E55411CC202A6F6955041038B2AB9FB2E554161E143C6FD955041850B75B1F62E554168C1F45AFD95504100AC0E15F22E5541CD7C2224029650415AF27632E62E554115A3D3E102965041B30C50C0E12E5541BEEC684A069650416015B7F8DB2E5541772A2683049650413DB41515DB2E5541F24132FE01965041A93B68B6DC2E55416D593E79FF955041FC966F74E12E5541EA3827E1FA955041C941A6C0E52E5541F60004CEF89550418DE3D1EFE22E5541810C3819F1955041617925EFDA2E5541BF6101CDEC955041946A80ACD72E5541FD87B28AED95504157A83DE5D52E55412BBA3B78F39550414F9F32C8CE2E5541E8D4B8EAFB9550412DD117D1C72E5541041C25250E965041C76C05F6BB2E5541544BE1FF1596504105C2CEA9B72E55415DB85A131C9650419A9EEAFEB42E55410602F07B1F96504174756C2EB62E5541B277D0C71F9650416649214BB92E5541CB078AA11B965041EB3115D0BB2E55417910F1D915965041262C7BAABF2E5541D28E385E10965041179CC1D0C32E554173CFC2A90C965041479627ABC72E55415BD28FBC0A965041396ADCC7CA2E5541041C25250E96504114A5CCEDCA2E5541873C3CBD12965041FE0B08F7C72E554188A0AAB3119650415DCB7DABCB2E5541643F09D01096504106151314CF2E5541E927FD5413965041C952D04CCD2E5541F294766819965041C0E55639C72E55411EFF226921965041B778DD25C12E554118DCE2A22B965041701A0955BE2E55410AB097BF2E9650417E465438BB2E5541DA8619EF2F965041BD9B1DECB62E5541D3FF6A323B96504163FFE7FDA82E55411EEEF8DC39965041263DA536A72E554198A1966138965041F5AFB86FA92E554139468FA333965041C15AEFBBAD2E55419DC4D6272E9650419D95DFE1AD2E5541D0B531E52A96504186FC1AEBAA2E5541231139A32F96504127A1132DA62E5541141D11D33496504166F6DCE0A12E5541D3FF6A323B96504195F042BBA52E554195AAA17E3F965041D14E178CA82E55410B03DC2946965041C0F680C5AE2E554190EBCFAE489650412E46B053AE2E5541962CFEDE519650416EFFE7FDA82E5541916D2C0F5B9650417D8FA1D7A42E554118BA8E8A5C9650417C2B33E1A52E5541C16792E95E965041A95DBCCEAB2E55415F7CD1515E9650415DDCA737B32E55417779043F60965041A766C7EBB22E5541092AD5B06096504174756C2EB62E55418E12C93563965041D2D073ECBA2E5541228B769461965041E805CAECBE2E55418441E12B5E9650414BF18A84BF2E5541916D2C0F5B965041DC3DEDFFC02E554185A54F225D965041DAD97E09C22E5541145F2BB164965041B6146F2FC22E5541A4471F36679650413BFD62B4C42E55417F820F5C679650412DD117D1C72E55415ABDFF816796504180C8B098CD2E554198E3B03F6896504164701AD2D32E5541ADB498496D965041DB2CC373D92E554158C60A9F6E965041095F4C61DF2E55417C8B1A796E965041F96A2491E42E5541648EE78B6C9650417027CD32EA2E55419F884D6670965041180DF4A4EE2E554192C0707972965041FD18CCD4F32E554190F8938C74965041C6689F47002F55416B3384B274965041FCA333520D2F55411645F60776965041EFCA2CD9272F5541C4863E0874965041F5963CB13F2F5541360000009573759CD1965041DA102FF72A2F55419E878928B59650415A460F760F2F5541C8D19AD7B4965041D04AF742192F554119967BBBB09650418E733CFF172F5541E07B2892AD965041B4B343E8252F554119B35FE1A79650418E3974B3292F5541695A5C9FAC965041FC9DD88B2C2F5541695A5C9FAC965041768FE6F8302F55416D47823FA7965041768FE6F8302F554194C15174A39650419D09B62D2D2F554148EA9630A2965041514FDF0F232F5541A77EB98EA1965041E3075F5D172F5541BE0B6323A39650419B3AAEDF072F5541E4684E32A8965041A027D47F022F55415F9424EB9A965041A431DE45F42E5541A188C3549396504145BA9F0DEC2E554189FB19C091965041A81E04E6EE2E5541ED5F7E98949650410796421EF72E5541DAA2167E96965041660D8156FF2E554189FB19C091965041B3E43B9A002F554117C7736D8B965041674749A2ED2E5541B4620F9588965041548AE187EF2E55412A67F761929650419B3AAEDF072F55412A67F7619296504171D3B80A112F5541649E2EB18C96504184AD044B062F55413E4143A287965041623D3FDCFB2E55410427F07884965041CE7BEFF4F32E554151FEAABC859650411F5DB4FEE62E55414C11851C8B965041370742B9DF2E5541ED7C62BE8B9650412837003FDC2E554155EBD05C8096504187E806C3D22E554168A838777E96504187E806C3D22E5541335E27C87E9650414EB1CF73D82E5541FA43D49E7B9650414EB1CF73D82E5541AA9CD7E07696504115B46070CC2E554172518C05999650414DE2C725B32E554198AE77149E965041491286ABAF2E55410AE31D67A4965041000B0DE2B12E5541A29193EEA6965041C3039418B42E5541DFC9046A7F965041D8ACE7A6CE2E554113F731F387965041372426DFD62E554139541D028D965041C9BFC106D42E554150E1C6968E965041AD45F2D1D72E554163814A8B95965041B2321872D22E5541C3156DE994965041C4D29B66D92E5541001DE6B292965041D385F9BAE52E5541E87258F8999650411F40D0D8EF2E5541A761D568AA965041660D8156FF2E55418FB747AEB1965041A027D47F022F5541656D36FFB196504103A91C7EFC2E55417CFADF93B3965041623D3FDCFB2E55413FF366CAB5965041AA0AF0590B2F55411A658309D6965041857C0C992B2F55419573759CD1965041DA102FF72A2F55415E000000FF7FF3D6109750412FC2357B212F55419C1B8FFE0D9750418E733CFF172F554141749240099750415A460F760F2F5541048AFD9C02975041AEF715FA052F5541467E9C06FB965041C6A1A3B4FE2E55415D282AC1F39650410796421EF72E554111516F7DF2965041EC1B73E9FA2E55414A6BC2A6F59650413CC36FA7FF2E55410D812D03EF9650412906088D012F5541888F1F96EA965041D084BF8E072F5541FAE0A90EE89650415A460F760F2F554137E822D8E59650418E733CFF172F5541EB106894E496504192437E791B2F5541C983BEFFE2965041429C81BB162F5541D853007AE6965041FF9E12B80A2F5541888F1F96EA965041D571E52E022F5541FAC3C5E8F09650417ACAE870FD2E5541BCBC4C1FF3965041672A657CF62E554183A2F9F5EF965041585A2302F32E554137E822D8E59650412536C612FE2E554175EF9BA1E3965041D95E0BCFFC2E5541AE09EFCAE6965041FFD8DA03F92E554137CB3EB2EE96504141CD796DF12E554158CA2EB1EB9650419FF2E036EF2E5541BEDFA6AEE2965041B69587F6F92E5541EE0E46D6DF965041971D227DF92E5541E3E6CEADDF965041248D7AE8F72E5541D1E998CBE9965041F8C15C00ED2E55418EB00787E59650411DC984FFE92E5541AAD5B491DB965041AC6D10CEF92E5541426D8425DA965041971D227DF92E5541DD570C28E39650418BE8EE19E82E5541B1647717D896504183DEFCFCE02E55415BF97C8DCC965041F55DDBC0FA2E5541E8904C21CB96504148761DDCFB2E554161B0B63BC99650414E2D578AF82E5541E8904C21CB965041690C0861F52E554199E94780CD965041B8B30C02F32E554133D4CF82D69650413AEE310AE02E5541C361ADF9CD9650412B557D67DC2E5541718F6712C69650411294519CD82E55410A45BCB1BD965041808B448ED62E5541026341BDB69650412D730273D52E5541276A69BCB3965041AFE25ADED32E554108F20343B39650417C1A0714D32E554191F01E34AE96504165AC93B7D92E5541CB473584AB965041603B563DD62E5541E09723D5AB96504167CA18C3D22E55412ACEEAFBA596504126E43FEDD82E554198C5DDEDA3965041F21BEC22D82E5541BCAE80E1A79650412802C5F8D12E5541A1CFCF0AAB9650415EE89DCECB2E55417CC8A70BAE965041600623DAC42E55419B18965CAE965041B9D59EA3C22E5541012E0E5AA59650410F5262FEB52E55419D5E9290A79650419DC1BA69B42E55415D504292AD96504138AC426CBD2E5541A4228879B59650414E422DF1B62E5541156D33DABD965041B357A5EEAD2E5541771E2A98C29650413C56C0DFA82E5541ABE67D62C39650418AB7C84CAD2E5541A52F44B4C69650413C56C0DFA82E55410D987420C896504194DF3F75AD2E55419B07CD8BC6965041FC4770E1AE2E5541092737A6C4965041F00174ADB52E55412ABD212BBE965041B4646129BF2E5541891B607AB89650416EC74EA5C82E55418FD29928B596504119691056CE2E554146E2CE35B4965041A149A63BD02E554185AA2200B59650413D52B349D22E55410C8BB8E5B6965041906AF564D32E554159ECC052BB965041BA0AD206D42E5541F4D64855C496504141C3F0C3D52E55414C60C8EAC8965041B4539858D72E5541E2D91273CE9650415B841C8FD92E554159DBF781D3965041202D063FDC2E5541EBBB8D67D596504140A56BB8DC2E5541FCA7FA78E39650419EF6EDCCC52E5541ACE270CCEC965041C650CE3ACD2E5541B96E6934DF965041EB462D69E22E55412648D71AE4965041E5B76AE3E52E5541DE64C862F4965041BE7B0F81D72E5541024E6B56F8965041B8C4D5D2DA2E5541144BA138EE965041C1CEC7EFE12E554135E18BBDE7965041D4D8B90CE92E5541D43C513AF496504116F4C545F42E5541D68F09A9FE9650412D976C05FF2E554146BC2FFE0D97504168FB3E900D2F55417ECD491A129750418CE4E183112F5541CD744EBB0F9750411EEDEE91132F554142237B5B0A9750413F83D9160D2F5541D89CC5E30F9750411836B5E3162F55417ECD491A12975041C7702B37202F5541FF7FF3D6109750412FC2357B212F5541050100002BA43E2E299750413108AA7F022F55410D72D5E82197504116F4C545F42E554123E048451B97504138D0ACFEE62E554100F7A55117975041EB462D69E22E5541316C41AD0D975041EC8C299DDB2E5541953BBD760B9750411CBCC8C4D82E55413DB23DE1069750413D52B349D22E55414016BF20F99650417AFC8108DA2E55411D2D1C2DF5965041758B448ED62E5541BB7B256FF09650412802C5F8D12E5541339B8F89EE9650414309EDF7CE2E5541339B8F89EE9650411F204A04CB2E55419AE53AEAF696504130D783B2C72E5541C5A39C97F0965041A81E65F5C52E5541058A756DEA965041311D80E6C02E5541D44D1A0BDC965041D1890E34B52E5541448B0931D39650419E07B79DAD2E554120A2663DCF9650411DDE5A66A82E55419F780A06CA965041AC93AF05A02E5541C57F3205C7965041BD4AE9B39C2E5541DF865A04C4965041AC93AF05A02E5541CA366CB3C3965041322E49B7A82E55414E7E4DF6C19650411DDE5A66A82E55414E7E4DF6C1965041C1E39D56A02E5541F4D64855C4965041E27988DB992E554188D56346BF96504178CB5B3B9F2E5541793CAFA3BB9650416714228DA22E5541EF30D877AF96504141C7FD59AC2E554169963EC6A6965041203113D5B22E5541012E0E5AA5965041ADA06B40B12E5541121A7B6BB39650416C855F07A62E5541D77C68E7BC965041390308719E2E55414E7E4DF6C196504150717BCD972E55412406E87CC19650415628B57B942E5541A74DC9BFBF965041C41FA86D922E5541CC54F1BEBC965041CF471F96922E55411BFCF55FBA9650419F18806E952E55416AA3FA00B8965041464904A5972E55415B0A465EB49650410D38EA88932E55419E6B4ECBB8965041C0AE6AF38E2E554118D1B419B0965041C665A4A18B2E554154465075A696504100BDBAF1882E5541D9D32DEC9D96504179DC240C872E55419101E80496965041B3333B5C842E5541E65F265490965041C312EC32812E5541A3FE1DE78B96504156397E4C7C2E5541D32DBD0E8996504167F0B7FA782E5541F85C5C368696504177CF68D1752E5541717CC650849650412EDF9DDE742E554151F7A49C7296504141D8C62A942E554176FECC9B6F965041C41FA86D922E5541773300FF809650415E0E3D06722E554121C8057575965041BE6C7B556C2E5541B4EE978E70965041D72DA720702E55411E754D066B9650411185BD706D2E5541E3107B7B5C9650417E935EBA832E5541A0AF720E58965041C312EC32812E55416D1C52A7689650411DF330CD662E5541C03494C269965041AA628938652E5541FCA92F1E60965041162F3BE4582E55414B5134BF5D965041758D7933532E554133D604285396504181FBEC8F4C2E5541CD8B59C74A96504100D29058472E5541CED155FB43965041F138DCB5432E5541FA8FB7A83D96504140B8692E412E554174F51DF7349650416F0F807E3E2E5541F73CFF39339650418F5F6ECF3E2E554199FC45F631965041164004B5402E55411351E37341965041FE8B94244E2E554197A580F150965041D1AFAD6B5B2E5541F174FCBA4E965041444055005D2E5541E8A34A972F9650417EA83421422E55419FB37FA42E965041164004B5402E5541276C9E6130965041E82EEA983C2E55410B58BA2722965041867DF3DA372E55411E9BEC3D11965041F003A952322E554102870804039650416EDA4C1B2D2E55414B77D3F6039650419309EC422A2E5541912B94D21296504153FB9B44302E55416998736B23965041FF9C5DF5352E5541958B087C2E965041185E89C0392E554169CDA6CE34965041BA1DD07C382E55414FC67ECF37965041EA74E6CC352E55412F76907E379650410A0BD1512F2E55413605530434965041987A29BD2D2E5541E2EC10E9329650414F8A5ECA2C2E5541D44F4FB0589650417A48C077262E55412D1FCB795696504136C932FF282E554117B1571D5D965041749186C9292E554145C2713961965041217944AE282E5541DD5941CD5F9650411D080734252E5541A3022B7D62965041DE173C41242E55410B6B5BE96396504166F8D126262E55419D4BF1CE65965041CE600293272E55411E754D066B965041749186C9292E5541C9160FB770965041E7212E5E2B2E5541B3A89B5A7796504125EA81282C2E5541DB027CC87E965041069A93D72B2E554118AD4A8786965041BD8151BC2A2E55419F8DE06C88965041D88879BB272E55418486B86D8B965041217944AE282E5541111E88018A965041BD8151BC2A2E5541A09A9CA799965041F49C5DF5352E5541782FF368AA96504151A8E3D5252E554186C8A70BAE96504151A8E3D5252E5541DAE0E926AF965041F149A5862B2E5541ACCFCF0AAB965041CC427D872E2E554169963EC6A696504192EB6637312E5541794D7874A3965041283D3A97362E5541E76CE28EA196504141FE65623A2E5541E76CE28EA19650416176CBDB3A2E55410C6341BDB696504117753718522E55419E320ED2D09650418D6553566F2E5541A2CBC274D4965041530E3D06722E5541A085C640DB965041D2E4E0CE6C2E554122AF2278E096504140044BE96A2E5541C8DFA6AEE296504125FD22EA6D2E5541E3E6CEADDF9650410A1E7213712E5541A085C640DB965041D0C65BC3732E5541EF2CCBE1D8965041587F7A80752E55417B7E9E41DE9650418A01D2167D2E5541011938F3E696504119B726B6742E5541C914DA11F49650410C3CF71E6A2E55417709543104975041CB20EBE55E2E5541DE2B88690C9750415E477DFF592E5541E7357A8613975041989E934F572E5541AB9867021D975041844EA5FE562E5541CAFF03AB359750410007C4BB582E5541AEE712DB5097504192E759A15A2E5541AEE712DB509750413918DED75C2E554151B8226837975041A73748F25A2E55417D874DE6189750412057B20C592E5541BD959DE41297504149F78EAE592E5541E29CC5E30F9750419D0FD1C95A2E5541DE2B88690C9750410FA0785E5C2E5541B01A6E4D08975041B6D0FC945E2E55418231CB59049750415D0181CB602E554100086F22FF9650414C4A471D642E5541D414DA11F4965041BD94F27D6C2E5541FB61FE44EA9650410F8FAF8D742E5541F80E46D6DF965041FD9179AB7E2E55418E88905EE59650412F14D141862E55415D13F502EF965041478F00D9902E5541EDD505DDF7965041A3B13411992E554111BFA8D0FB965041F0123D7E9D2E5541D7679280FE96504153C4333CA22E554137FB03330A975041E730C289962E554107CC640B0D975041695A1EC19B2E5541A738F3580197504108B6E33DA82E55410FA123C5029750414BEF7482AC2E5541C0F91E2405975041F8D63267AB2E5541D5490D75059750417FB7C84CAD2E55415891EEB703975041DDF78190AE2E55415D022C3207975041BC61970BB52E554180EBCE250B975041EB903633B22E5541E853FF910C97504154F9669FB32E5541DABA4AEF08975041A15A6F0CB82E5541650C1E4F0E975041E82CB5F3BF2E5541931D386B12975041E60E30E8C62E554163EE98431597504162815271CF2E554163EE984315975041CF5AC057D42E5541988E75E5159750419403AA07D72E5541B706DB5E169750411CE43FEDD82E55413EBFF91B189750415F1DD131DD2E5541ACDE6336169750417E9536ABDD2E5541E7357A86139750414B13DF14D62E5541C7BD140D13975041F4895F7FD12E55419E45AF9312975041DAC833B4CD2E5541218D90D61097504198672B47C92E5541703495770E97504140DEABB1C42E5541F37B76BA0C9750411CF508BEC02E5541B042E575089750413D8BF342BA2E55419681B9AA04975041A711A9BAB42E5541E528BE4B0297504179008F9EB02E554149F8391500975041748F5124AD2E5541E18F09A9FE965041701E14AAA92E5541C23F1B58FE965041B59DA122A72E55413A5F8572FC965041716410DEA22E55417FDE12EBF996504178F3D2639F2E5541D8AD8EB4F796504188D2833A9C2E5541E964C862F49650417939CF97982E554191DB48CDEF96504141003E53942E5541E639871CEA9650418B36057A8E2E5541E2A0D279E6965041879D50D78A2E554156777642E1965041D1D317FE842E5541AF1E7BE3DE965041C33A635B812E5541662EB0F0DD96504165FAA917802E5541B5D5B491DB9650419529493F7D2E55413ED4CF82D6965041F4AFFEB6772E55413A639208D3965041382F8C2F752E55419B07CD8BC696504190A742F4912E5541287725F7C496504147B77701912E5541B282FC22D1965041B14EF649732E554188E62C17A7965041E638DCB5432E5541012E0E5AA5965041DC10658D432E554118AD4A87869650411546E93B712E554186CCB4A184965041C12DA720702E55416F25014CA3965041C7C0763C432E55414FD512FBA2965041D79F2713402E5541C8F47C15A19650411C1FB58B3D2E554147CB20DE9B965041CD77B0EA3F2E554138326C3B989650415AE708563E2E55415D610B6395965041609E42043B2E55419C295F2D969650415C2D058A372E554163F0CDE89196504138446296332E5541FB879D7C90965041FA5397A3322E5541DC37AF2B90965041650F807E3E2E5541D680757D939650412AB8692E412E5541A651D655969650412090F205412E55418B4AAE56999650411AD9B857442E554157AAD1B498965041EAA91930472E55418C5B772781965041988DCA7E6F2E554107F610D989965041FA663865742E5541C7E7C0DA8F965041411107247C2E5541A2E098DB92965041E4D04DE07A2E554187D970DC959650410D712A827B2E554104928F9997965041B4A1AEB87D2E55413EE9A5E99496504165FAA917802E5541EBD063CE939650418E9A86B9802E55416CFABF059996504135CB0AF0822E5541305DAD81A2965041FB73F49F852E55413DD8DC18AD965041B6F46627882E5541FCAB070FBA96504119A65DE58C2E55410A45BCB1BD9650411F5D9793892E55410FB6F92BC1965041C58D1BCA8B2E5541490D107CBE965041A086F3CA8E2E5541C00EF58AC3965041E3BF840F932E554147EF8A70C596504156502CA4942E5541FEEDF6ACDC96504112E267FC7E2E554147DEC19FDD965041C33A635B812E5541890A97A9D09650412DF64B368D2E554190DF5563C6965041304904A5972E554197A34B4CD4965041E3AEBB3EAB2E55410A34F3E0D596504189DF3F75AD2E55411A02DBE6EA96504175C48487BE2E55415213F502EF9650413B6D6E37C12E55412AA84BC4FF965041A857A5EEAD2E5541717A91AB079750413D8BF342BA2E554137237B5B0A975041564C1F0EBE2E55410030E64AFF9650414F776054C82E5541FFE9E916069750410F691056CE2E5541C90311410C97504102231422D52E5541316C41AD0D9750410794519CD82E554169A5D2F1119750413FCDE2E0DC2E5541FF1E1D7A1797504182067425E12E5541299782F3179750410F9E43B9DF2E5541C12E52871697504193E524FCDD2E55413EE770441897504188BDADD3DD2E5541FA67E3CB1A975041E06EA491E22E5541B5E855531D97504176C077F1E72E55411D5186BF1E975041FDA00DD7E92E5541D31ABF9824975041A7244A7CF62E5541059D162F2C975041552A8D6CEE2E5541EABD65582F975041176239A2ED2E55413ED6A77330975041B36A46B0EF2E5541ACCD9A652E975041B7DB832AF32E5541D1FC398D2B975041FA3C8C97F72E554154441BD02997504149E49038F52E55415AFB547E2697504124B5F110F82E5541A75C5DEB2A975041D3EF6764012F55412BA43E2E299750413108AA7F022F554106000000175CDAF6C4965041D121910EEF2E5541CF54612DC796504119290AD8EC2E55411B2C1C71C896504130B6B36CEE2E55412EE9838BC6965041D7178748FD2E5541963A0E04C4965041B19DB713012F5541175CDAF6C4965041D121910EEF2E55410600000057E47E3616975041D08C510CB82E55417D5E4E6B1297504138DEDB84B52E55414427171C189750415E58ABB9B12E55410603BA2C23975041C1D9F3B7AB2E5541F3455212259750413CCB0125B02E554157E47E3616975041D08C510CB82E554105000000F93B484C33975041F53719F38E2E55413743C1153197504187D3B41A8C2E5541F5313E8641975041B13AAAEF822E5541B72AC5BC43975041159F0EC8852E5541F93B484C33975041F53719F38E2E554105000000B678A194159750417D0D7D667A2E5541D2F270C91197504119A9188E772E5541B65BBD6E1E9750416A8ADD976A2E554119C02147219750416E5A1F126E2E5541B678A194159750417D0D7D667A2E554106000000A977676837975041669DB7F76F2E55415DA0AC243697504106099599702E554110C9F1E034975041B66198DB6B2E55417A234CF34597504122A048F4632E5541321CD32948975041FC2579BF672E5541A977676837975041669DB7F76F2E5541060000000CEDF96814975041912B31DE342E5541E24C1DC7139750412552C3F72F2E55415179431C239750412F7A3A20302E5541D959D90125975041631A17C2302E5541F8A9C75225975041DA1BFCD0352E55410CEDF96814975041912B31DE342E554107000000615C0189F6965041A546ECCB232E554137BC24E7F596504196AD3729202E5541236C3696F59650410FF5186C1E2E5541615C0189F6965041923CFAAE1C2E5541D717EA63029750413E24B8931B2E554100B8C6050397504128B64437222E5541615C0189F6965041A546ECCB232E5541070000008203B5DED7965041A67B1F2F352E554178DB3DB6D79650416E428EEA302E5541626DCA59DE965041C7110AB42E2E554170067FFCE1965041C7110AB42E2E554145481D4FE8965041B2C11B632E2E55414F709477E896504114731221332E55418203B5DED7965041A67B1F2F352E55410A000000CF68CAE1B2965041501025A5292E55418678FFEEB19650412C2782B1252E554107A25B26B79650415C5621D9222E5541A4AA6834B9965041CA758BF3202E554125D4C46BBE965041396D7EE51E2E5541E15437F3C09650417735D2AF1F2E554115F51395C1965041EAC57944212E5541F5A42544C1965041374FF9D9252E55412B8BFE19BB9650412C2782B1252E5541CF68CAE1B2965041501025A5292E55411E000000394EA1D63296504174396FBAA22E554147DA993E25965041BAD6813E992E5541C5B03D0720965041DF052166962E554150CDDD031496504155D2D2118A2E55411C3ECA32FB955041E7DADF1F8C2E55415C4C1A31F595504125A333EA8C2E554186C47FAAF59550416A22C1628A2E554198B0ECBB03965041E269A2A5882E55418142795F0A965041D8412B7D882E5541FCA7DFAD019650418F51608A872E554118DE5589DF9550414CF0571D832E554157A6A953E0955041916FE595802E5541413429611096504151619597862E5541A52B1C530E965041AA301161842E55413FE170F205965041A7DD58F2792E5541FCA7DFAD01965041118C8592742E55418917381900965041A9235526732E5541DADCC1C5F6955041088293756D2E5541157AD449ED9550419CA8258F682E55414A1AB1EBED9550413E686C4B672E55416A9FD29FFF955041171B4818712E55413048BC4F02965041A9235526732E554153315F43069650410BD54BE4772E55414C5CA08910965041B4588889842E5541F5DFDC2E1D965041722CB37F912E5541FA501AA920965041624D02A9942E55417816F5A033965041E258D9D4A02E5541CB2E37BC3496504116F9B576A12E554163C606503396504174396FBAA22E5541394EA1D63296504174396FBAA22E55410D0000001434D815F4955041ED7C4367CA2E554145A97371EA955041EA298BF8BF2E55411AEB11C4F095504169002FC1BA2E5541FF0B61EDF39550412481A148BD2E554148FC2BE0F4955041BC1871DCBB2E55410EA51590F7955041B2F0F9B3BB2E5541BFFD10EFF9955041C740E804BC2E55413C8EB883FB955041BC1871DCBB2E55412BD77ED5FE955041E6B84D7EBC2E55415B061EFDFB955041EA298BF8BF2E55414C6D695AF8955041E472514AC32E5541DE4DFF3FFA955041AA1B3BFAC52E55411434D815F4955041ED7C4367CA2E55410A000000A2D863E4039650417899E363BE2E55413A7033780296504105093CCFBC2E554159E898F10296504192A00B63BB2E554159E898F1029650412A38DBF6B92E5541CC50C95D04965041AD7FBC39B82E554134B9F9C905965041A3574511B82E55414D7A259509965041D71F99DBB82E55414352AE6C09965041DB90D655BC2E55415E59D66B069650416349F512BE2E5541A2D863E4039650417899E363BE2E55410C00000072855A2ADD955041915A0F2FC22E5541783C94D8D9955041A139C005BF2E5541AE226DAED3955041D71F99DBB82E5541013BAFC9D49550415A677A1EB72E554169A3DF35D695504131C79D7CB62E5541E65BFEF2D7955041DDAE5B61B52E5541CB54D6F3DA955041601EB4CCB32E554172855A2ADD955041601EB4CCB32E5541C12C5FCBDA955041DDAE5B61B52E5541FF1C2ABEDB9550411B9F2654B62E554127770A2CE39550414E217EEABD2E554172855A2ADD955041915A0F2FC22E55410600000034CECF30C49550410D02651BDC2E5541794D5DA9C1955041CF119A28DB2E5541B186EEEDC59550415EC7EEC7D22E554158B77224C895504115D723D5D12E554158B77224C8955041B1DF30E3D32E554134CECF30C49550410D02651BDC2E554109000000D4E7721B37965041FF869E76A12E55418810B8D735965041531BC1D4A02E55413C39FD9334965041DDF9F4E19F2E5541FE3184CA369650411A016EAB9D2E55414B093F0E3896504116312C319A2E55416296E8A239965041913F1EC4952E5541248F6FD93B9650410761EAB6962E5541D8B7B4953A965041D929B3679C2E5541D4E7721B37965041FF869E76A12E554107000000575D28BEB2955041F42CB1B60B2F55416FEE922DB19550419E948F980A2F5541879B7A12B2955041426EAF3F082F5541F06E4250B59550411D14E075062F5541DAA63C3BBA95504191AFADC8042F55410A010C05BC9550419E781223082F5541575D28BEB2955041F42CB1B60B2F5541050000009749C13CBB9550412D4E2750002F554136B19F1EBA95504130F703BBFB2E5541B9163111C4955041060F76B6F82E5541B3A4EF4BC59550415651D384FD2E55419749C13CBB9550412D4E2750002F55410E000000D82C74E694955041DCEAE24CEB2E55411E6FD1B499955041BECBB9A2EB2E55415604479E9D955041EF090CF7EA2E5541EAA31F6BA19550411AD61C86EB2E5541EAA31F6BA1955041A63A4F33ED2E5541ACB8E531A1955041708ABB19EF2E5541AC9C68BC9E9550410F0E1771F02E55418CB4DAB79B955041C622DD37F02E5541F3A2C02599955041F1EEEDC6F02E5541DBF5D8409895504147870FE5F12E55415A91A69396955041BB3E5AADF22E55416575291E94955041726F9DE9F42E5541779452C8939550419B56CCA8EF2E5541D82C74E694955041DCEAE24CEB2E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979690 - 3173719
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -32 </desc>
+<a>
+01060000000100000001030000001E000000A002000040E3E97C6C975041AC419793082F55412BA2AB836D975041B61686F6012F5541E1178CCF6D97504169AEBA5AD12E55417790392E6C975041AD8A32CBC12E5541E2D65D9F649750417D69D369A32E5541AE4066BB5F975041DD9DE1A08D2E5541B70843A85D9750415F22672F912E55415EAD3BEA589750415F7DCA08892E55419B66739453975041633C9CD87F2E55410B1A111952975041F2A233FD6F2E5541C08FF16452975041FB6A10EA6D2E55415F11AAE0579750416BBA3F786D2E55414778E5E95497504144ABF6505D2E554130DF20F35197504144ABF6505D2E5541CEBB3C484F9750418EEBDCB74C2E5541509B25B04A975041225B7FF9432E55411DAACAF24D975041B76FBE61432E55416834EAA64D9750415E14B7A33E2E55410A7574F249975041CB63E6313E2E5541622BDF8946975041B280E8ED2A2E5541F8D60A8DFB9650419894DF8C102E554170497AE1F0965041A15CBC790E2E55419469ED94E89650417B97AC9F0E2E5541535D7180D696504193307196112E5541DA268BED9E9650412786DE2E1A2E554105312FA663965041B477DDD0232E5541C1E3846148965041ABE723F7272E55410EE33C982E96504174925A432C2E55411661E0371C965041D6B53EEE2E2E554152757BBB0E965041DF7D1BDB2C2E55415FFC29780396504182BEA526292E5541AEEAB7220296504194F3FB262D2E5541BCBB9F2C07965041CDED6101312E55417BF95C6505965041E48626F8332E554184C1395203965041F2570E02392E5541805DCB5B04965041A9728B74412E55413F4025BB0A96504147F443F0462E5541AB24B9CF1C96504180AD8D6C542E5541112C60EB1396504180AD8D6C542E554168A516EC1B965041AB7C82D55B2E554113072D1A0D9650418F163BFD6F2E5541049E7F89F1955041CB4EEDAF5F2E55418A77917FEC9550417B1C27E0682E5541793317C0D7955041AB7C82D55B2E5541C8AF53EBA8955041903B7E87432E5541EE122552989550411D5C80AE4F2E5541E23ACE949B9550411B81B37F562E5541B2DA729FA89550412EA0FA6D642E5541E5CB2468BA955041636C79656F2E5541793317C0D795504105878FA9822E55416D5BC002DB955041B454C9D98B2E5541F25905CADC9550414E4D22BE942E55414F895528D7955041A3C6D8BE9C2E5541152C70A4E0955041043D194EA82E554143B1FE6ADA955041678E260CAD2E554124BA60BFCF95504149978860A22E5541870B6E7DD4955041556FDF1D9F2E55419FBB1BF8CD95504112F03C3A9E2E5541119B19D1C19550410618E67CA12E5541BA2163D0B99550411CEDC6C8A12E554100579F11AD955041CE95CD27A42E55416F80038DAE955041FC1A5CEE9D2E554118074D8CA6955041771C17279C2E5541099E9FFB8A955041C74EDDF6922E554132B70AC06C95504172B0F324842E55411CE229746C9550413DE4742D792E5541FC0FBF99689550419813C58B732E55411EBDF6A265955041FD1A6CA76A2E5541AF93922764955041AA574F04552E554197E3E4AC6A955041083D39C0412E5541AA022C9B78955041504D42302E2E5541E7F067F28D95504142BF61CE0B2E5541810E04616A9550413C78719DFA2D5541C568737364955041F81D028B002E5541234E5D2F519550414850C85AF72D5541CCD4A62E499550413356B43DF02D5541EF81DE37469550414850C85AF72D5541A4E07EF43A9550414850C85AF72D5541BF46C6CC269550411BA606C3F62D55414620D8C221955041ABA1D518FC2D5541D0AF83160F955041021B8C19042E55419DBED14DFD945041A5106F8C102E5541C146D685F3945041333171B31C2E5541B9241926E9945041B82FB67A1E2E55414AFBB4AAE79450411B81C338232E5541FAC8EEDAF0945041D8012155222E5541C146D685F3945041B654E94B252E554168F25256F294504192CCE4132F2E554137B72A3206955041A7C6F830362E5541F25CBB1F0C955041EDFB3472292E55411B51E3591A95504192CCE4132F2E5541DF1831A72A955041389D94B5342E5541D08A408C3B9550412AEA70C93E2E5541A4E07EF43A9550416191BCEF422E5541DE3D647831955041833EF4F83F2E5541189B49FC27955041CA29BADE582E55411A76162B2195504194826EB8542E5541AE024C0D12955041B70A73F04A2E55414D8C0B7E06955041AFE8B590402E554167178627F994504116F05CAC372E5541E7A9A7ECE2945041EDFB3472292E55419852AE4BE59450411B81C338232E5541CDD4C6A0E2945041DBDCED831B2E55415689A5C5D69450411F375D96152E5541840E348CD094504157B975EB122E55417A11AAFDCC945041C09BE935032E554115E5CF10CF9450415E25A9A6F72D55414C8C1B37D394504197A7C1FBF42D5541A074713FCD94504110DE9846F42D5541C5475EE3B3945041FA86B11EE82D55415AF3EDA2A5945041FCC87CB6F02D5541C66C7C378294504163E322C1DB2D5541CE89FD7D7F94504165426F9FE12D55418EA190F5809450412FD6CF3BE62D554169CEA3519A9450416242D3F3F52D55418F5F8D06A1945041763A6E3DFC2D554121C9B5829E945041122064DEFC2D554182C676F27794504181578B2FE52D55413DC124CF679450418815C097DC2D55415877F48065945041197FE813DA2D5541D9A61A7068945041984FC224D72D55416810A7407A945041D3D84623E42D554197BE113C7E945041369404A4DD2D5541A95760A77E9450413435B8C5D72D55416810A7407A945041E871313AD02D5541AEB64831709450414B2DEFBAC92D5541D18999296B9450411C7F84BFC52D55410855856B6C945041FF69682FC22D5541C04F979C7094504136355471C32D5541C2AEE37A76945041A5CB2BF5C52D5541702D288777945041DA37CB58C12D55413F2071AD6D945041223DB927BD2D554141200D59599450414F8CD744BB2D5541EA816CCA48945041A10D9338BA2D55419F1D321D47945041785F283DB62D55416035C59448945041076A04DBAD2D55413B0328BE479450417A5FC4E8A12D5541A6DB66853E945041724243A2A42D554102D9EF9D40945041A1F0AD9DA82D55411FEE0B2E449450413E35F01CAF2D5541706FC7214394504113451EDEB62D554175CEAFAB34945041EAB3987DC42D5541C5F01EC12D945041BB052E82C02D55414D3D62A219945041CB9EE041D52D5541E30573A8089450410F45E686DF2D5541559CE6D7F69350413F529D60E92D5541C891A6E5EA935041B047C1C2F12D55419525A32DDB935041203DE524FA2D5541F8E060AED49350419591F110F42D554141459B5BD69350414B2DB763F22D554139281A15D993504137351C1AEC2D554193C6564FD59350418F740C76E22D5541C932F6B2D0935041544A38AAEF2D55418EA971B4C3935041EC71958EE42D554127301B77BE9350413C9404A4DD2D5541635AEF42B1935041D4BB6188D22D55417DB17216A9935041FD4CE7E8C42D55418EEB74A3A3935041D91A4A12C42D5541D232CAB593935041B1E81090D72D5541C29917F67E9350414FCEA2DCC32D5541C29917F67E9350410E87E975BF2D5541D9914EEB70935041F6D0B56FAD2D5541A684FB657B93504178A12B2C962D554120F6ECEC869350411EA43EBF7F2D554120F6ECEC8693504166A92C8E7B2D55415103A4C690935041B92AE8817A2D5541B77CFA0396935041043072FC612D55410B5D02D69A935041E979A24A642D5541D84FAF50A5935041D1C36E44522D5541506254F9AA9350417367994D4A2D554152C1A0D7B09350413EFBF9E94E2D55419108BE92C9935041B7AEEE5F3A2D5541065DCA7EC3935041B54FA281342D5541350B357AC7935041EBBB41E52F2D5541091B633BCF935041CEA625552C2D554155DEE9C6D6935041A7153CA0252D554191C6BAA3E99350418B5FD0423C2D5541DBCB441ED19350412A035FA0482D55413B8766F3DE93504184004C0D5F2D5541BE15D9C0E7935041F037D7B25B2D55419B4288C8EC935041AFF01D4C572D554114552D71F29350414AD613ED572D5541533D9AF9F0935041BBCB374F602D5541B9B6F036F69350415ECEAE365E2D55418C67D219F8935041EA79A24A642D5541F99E5DBFF4935041B66C4FC56E2D554112F6E092EC93504170C6ADD4782D554145033418E2935041D89E50F0832D554129EE1788DE935041B5CBFFF7882D5541589C8283E2935041D2E01B888C2D554135C9318BE7935041EA964F8E9E2D55417DCE1F5AE393504106AC6B1EA22D5541B4990B9CE49350412D3D55D3A82D5541A35F090FEA93504123C187AEA52D55419B4288C8EC935041526FF2A9A92D5541533D9AF9F09350418DF876A8B62D5541F3E02857FD93504166678DF3AF2D5541756F9B2406945041AE6C7BC2AB2D55416FB166BC0E9450416D25C25BA72D5541B2576C01199450410FC9EC649F2D55418F841B091E945041D13FCCBAA62D5541A21D6A741E945041C564B2B79D2D5541C64F074B1F9450416F255E07932D55419900E92D21945041887CE1DA8A2D554191E367E723945041ADAE7EB18B2D554187679AC220945041FAD0511B992D554175CE4B57209450412D3D55D3A82D5541A21D6A741E94504166678DF3AF2D55418F841B091E9450419F91C513B72D55415A187CA522945041E796B3E2B22D55415C77C88328945041A54FFA7BAE2D5541DE053B5131945041F6716991A72D5541742DFC893A9450413D775760A32D554192A164F84394504133FB893BA02D554167B192B94B94504173E3F6C39E2D55419E7C7EFB4C945041A84F96279A2D5541E6816CCA48945041D59EB444982D5541483D2A4B429450419ED3C802972D55415FBE0A903A945041BE13960B912D554141FA1C2C2A9450417897CD8B822D5541DB47A29425945041B5CBFFF7882D55410897C0B123945041E21A1E15872D554187679AC220945041861D95FC842D55410897C0B1239450418E3A1643822D5541E47F77E527945041B6C611947F2D55418170CD181894504160F515FA6A2D55410EF6A83B1594504149D677416C2D55414AA9769E0D9450415500C414612D55413C7C9F55E9935041CE4C743E2E2D5541CCB8E5B0A99350419AAC197BE52C55416DFB3E1097935041F33F801AC72C55416020250D8E93504124EE86C1B62C5541657F0D977F935041AEDB7DC49C2C5541998C601C75935041854AF863AA2C554132130ADF6F9350412D0B0808B42C55414DC9D9906D93504180EB0FDAB82C55410EE16C086F93504114B48434BC2C5541687FA9426B935041A9DB456DC52C55415E03DC1D68935041E464CA6BD22C55416E3DDEAA6293504152FBA1EFD42C55412DF624445E935041D58914BDDD2C5541FE47BA485A935041D947AD79E92C5541C71D8228539350419E7C258CFC2C554160A42BEB4D93504198BEF023052D554154C911E8449350411230E2AA102D554101E90916409350419F3A229D1C2D5541E6323A6442935041CEE88C98202D5541779C62E03F9350411AAC1324282D5541B784CF683E9350419C3A86F1302D5541650314753F9350418C008464362D55412E3828333E93504117AC77783C2D5541024856F445935041C52ABC843D2D55419E2D4C9546935041FCF5A7C63E2D55415F45DF0C48935041E39E24F3462D55418DF349084C935041CCA6EDFD542D554133550DCE4F9350418F1DCD535C2D55413DD1DAF2529350419D5733356B2D5541241B0B4155935041CFC336ED7A2D5541B884CF683E935041810014B6872D5541AE0802443B935041A891FD6A8E2D5541A48C341F389350414DF3C030922D55418777188F3493504176E3F6C39E2D5541B4C636AC3293504182BE10C7A72D5541EBF0D2204E935041ADAEE205A02D5541C81D82285393504111289D97B92D5541E4329EB8569350418B998E1EC52D554178FB12135A935041C4C3C63ECC2D5541713DDEAA629350417E1D254ED62D55414E6A8DB267935041A5AE0E03DD2D554125D9075275935041C581C34FEC2D55414E288AC3879350411D2064DEFC2D554166DEBDC999935041476FE64F0F2E5541C2DB46E29B935041AC89F0AE0E2E554160208961A2935041875753D80D2E5541D8322E0AA89350413DF3182B0C2E554124F6B495AF935041AA2AA4D0082E554182528A8CB7935041F22F929F042E554159C1042CC5935041A66C0B14FD2D5541DB4F77F9CD9350412D5A666BF72D55419C670A71CF935041253DE524FA2D55416DB99F75CB9350410A871573FC2D55411F97CC0BBE935041DF964334042E55415D20EDB5B693504185F806FA072E554163DE211EAE935041D9D80ECC0C2E554120381CD9A39350416CA18326102E5541DD911694999350413F526509122E5541486A555B909350413F526509122E5541B3429422879350417F3AD291102E55419CEBACFA7A9350413DF3182B0C2E5541BD5FB114709350410E45AE2F082E55413972F268619350411F7FB0BC022E55411AFE89FA5793504154EB4F20FE2D55417DB9477B519350419CF03DEFF92D554183777CE348935041755F543AF32D554183777CE348935041C38127A4002E5541F0AE078945935041088779C7102E5541CF3A036F5093504151EBB374122E554193102FA35D935041648402E0122E5541A14A95846C935041AEE83C8D142E55415387724D799350416E00D004162E554169DE597585935041CAFD581D182E55411ABCEA5F8C935041777C9D29192E55415B03A4C690935041219CF9AB282E5541CA997B4A9393504112C143FD332E5541269704639593504149EBDF714F2E554153E6228093935041A747B568572E554113FEB5F7949350417AF8964B592E55419FA9A90B9B9350415F42C7995B2E5541E14FAF50A5935041458CF7E75D2E554186B17216A9935041B422CF6B602E5541D015ADC3AA9350415A849231642E5541DCF0C6C6B393504187D3B04E622E5541151BFFE6BA93504122B9A6EF622E55417B945524C0935041996CFFB9622E554161DE8572C2935041B6811B4A662E5541F4A6FACCC5935041AD649A03692E5541235565C8C9935041A3E8CCDE652E55411C973060D2935041EBEDBAAD612E554166FB6A0DD49350413B102AC35A2E554195A9D508D89350412877DB575A2E554143281A15D993504155C6F974582E55419F25A32DDB9350415C842EDD4F2E554172D68410DD935041488C9393492E554133EE1788DE935041CBBB552E382E55419E25A32DDB935041DF544045242E55414A459B5BD6935041BBC3F23B092E5541C615D9C0E79350411C2064DEFC2D5541F981DC78F79350412BFB198DF12D5541EF64BF860E945041CB3FF8B7E32D55419F4250711594504101AC971BDF2D5541C6D339261C9450413618377FDA2D5541B5993799219450416B84D6E2D52D5541B7F883772794504117A4CE10D12D5541828CE4132C945041C4C3C63ECC2D554196847F5D32945041AFCB2BF5C52D55414C7FF5E24A945041DA1AAE66D82D55414162D8F061945041DF379301EA2D55412C6A3DA75B945041BD644209EF2D5541CE0D68B053945041A40DBF35F72D5541F281087634945041590835BB0F2E55411A5591C506945041369494F52E2E5541EBA626CA02945041C13F8809352E55417D104F46009450410C030F953C2E5541D7AE8B80FC9350412B777703462E55416FD6E864F1935041F8C8705C562E5541095D9227EC93504185D3B04E622E5541FFE0C402E99350418991490B6E2E5541904AED7EE6935041F169EC26792E55412055C91CDE935041C7D866C6862E5541603D36A5DC935041F686D1C18A2E5541BADB72DFD8935041E4ED82568A2E55414B459B5BD69350416D3A2A8C8A2E5541D5914291D6935041139CED518E2E55415EDEE9C6D693504194CB1341912E5541BADB72DFD893504115FB3930942E5541D6F08E6FDC935041CDF54B61982E5541BC3ABFBDDE935041EA0A68F19B2E55412AD19641E1935041D9D06564A12E5541101BC78FE3935041AEE09325A92E55417435D1EEE29350412F10BA14AC2E5541BE990B9CE49350419DA69198AE2E5541354D6466E49350410320E8D5B32E5541516280F6E79350414D842283B52E55414945FFAFEA9350414FE36E61BB2E55410A5D9227EC935041BE7946E5BD2E554153C1CCD4ED935041115A4EB7C22E5541F7C343BCEB9350419C0542CBC82E5541ED477697E8935041F0E5499DCD2E5541C815D9C0E79350417115708CD02E5541241362D9E99350417115708CD02E554178F369ABEE935041F902CBE3CA2E554167B9671EF4935041653A5689C72E5541F0050F54F4935041AD3F4458C32E55418CEB04F5F49350413C4A20F6BA2E55417BB10268FA935041F9A31AB1B02E5541E8A626CA02945041B69EC88DA02E554173521ADE08945041BD5CFDF5972E5541507FC9E50D9450418432C5D5902E5541818C80BF17945041920D7B84852E554127EE43851B945041C71ACE097B2E55415EB92FC71C945041A64719BD6B2E5541C43286042294504190F031955F2E5541A15F350C27945041783AFE8E4D2E55419BA100A42F945041A32AD0CD452E55410B972406389450416A0098AD3E2E554180A9C9AE3D9450419F0DEB32342E55416C6F2B765794504194D320FD102E5541D6A61A7068945041FBEDC607FC2D5541CE8999296B9450415F08D166FB2D55418FA12CA16C945041A96C0B14FD2D55415418A8A25F945041B1E83C8D142E554114303B1A61945041CDFD581D182E55418D42E0C2669450418E15EC94192E5541A03A7B0C6D94504121DE60EF1C2E55413620395696945041B047EDBF2E2E55417525EFCDBA9450418E3235843F2E554103EE2BD1E6945041CB1A0661522E554157CE33A3EB945041857464705C2E554176429C11F5945041C55CD1F85A2E55411F62F89304955041D39637DA692E5541D19ED55C119550412BD62736602E5541F82FBF1118955041F2ABEF15592E554127DE290D1C95504173DB15055C2E55415C4AC97017955041ECEDBAAD612E5541A2F06A610D9550412F94C0F26B2E554129DEC5B807955041C25C354D6F2E554198749D3C0A9550415625AAA7722E5541D9BB56A30E955041C4BB812B752E5541817C664718955041DF7151DD722E5541FA8E0BF01D95504193AECA516B2E5541B2891D212295504193AECA516B2E55414552927B25955041B0C3E6E16E2E55414552927B2595504168BEF812732E55418D57804A21955041749912167C2E55414C10C7E31C955041C61ACE097B2E55412FFBAA5319955041D0969B2E7E2E5541E59670A61795504176F85EF4812E554135B9DFBB10955041C1BBE57F892E55416208FED80E95504132B109E2912E5541EC54A50E0F955041F427E937992E5541BDA63A130B9550412535A011A32E55414594956A0595504103624F19A82E5541C72208380E955041C7377B4DB52E55410F28F6060A95504189AE5AA3BC2E55414494956A0595504175B6BF59B62E55416F8467A9FD9450416EF88AF1BE2E5541B52A099AF3945041E9697C78CA2E55419FD32172E7945041ABE05BCED12E554114282E5EE19450419DA6F5ECC22E5541C864A7D2D9945041B49E2CE2B42E5541E1BB2AA6D1945041E64C3389A42E554172255322CF9450414A673DE8A32E5541CDC38F5CCB94504130B16D36A62E554102302FC0C6945041962AC473AB2E55414A351D8FC2945041BDBBAD28B22E5541923A0B5EBE9450413F4A20F6BA2E5541B8CBF412C594504152E36E61BB2E554139FB1A02C8945041372D9FAFBD2E55415E2DB8D8C894504177150C38BC2E5541A074713FCD94504189AE5AA3BC2E5541048F7B9ECC945041BABB117DC62E5541586F8370D1945041663A5689C72E554173255322CF945041D98EC6C9D52E5541D0812819D7945041083D31C5D92E554176E3EBDEDA9450416EB68702DF2E55415E2DB8D8C89450416BB6EB56F32E5541188716E8D2945041D12F4294F82E5541A074713FCD9450417B4F9E16082F55413E77B0CFF3945041CAD0BD5E1B2F5541E4D87395F7945041396795E21D2F5541A64F53EBFE9450415D9932B91E2F5541790035CE009550419305D21C1A2F5541A8AE9FC904955041B479D6360F2F554121C144720A955041163594B7082F554119A4C32B0D955041675703CD012F55417DBECD8A0C955041DBAB0FB9FB2E554112E68EC315955041591D9DEBF22E5541B2891D21229550411C35CC0EE02E5541A14F1B9427955041F6A3E259D92E5541ED12A21F2F9550418ECB3F3ECE2E554138D628AB369550414B253AF9C32E5541036A89473B955041B39E2CE2B42E5541A9CB4C0D3F955041CCF5AFB5AC2E554136D68CFF4A95504187F05D929C2E5541B864FFCC53955041605F74DD952E55419F0D7CF95B955041F069507B8D2E5541C69E65AE62955041386F3E4A892E5541C0E030466B955041C9D866C6862E5541D4D8CB8F71955041386F3E4A892E55413235A1867995504179B6F7B08D2E55417EF827128195504196CB1341912E554109A41B26879550410462EBC4932E554136F33943859550410EDEB8E9962E5541F24C34FE7A9550417199766A902E554167A140EA74955041F069507B8D2E5541265A87837095504181D378F78A2E5541FFC89DCE69955041386F3E4A892E5541197F6D80679550416F3A2A8C8A2E55415967DA086695504154845ADA8C2E5541757CF69869955041D5B380C98F2E554177DB42776F955041A86462AC912E55418157109C72955041B2E02FD1942E5541D537186E7795504121770755972E554121FB9EF97E955041EB0A68F19B2E5541FE274E0184955041BEBB49D49D2E554164A1A43E89955041D154983F9E2E5541E5D0CA2D8C955041B69EC88DA02E55419DCBDC5E90955041A564C600A62E5541707CBE4192955041F944CED2AA2E5541CA1AFB7B8E955041A7C312DFAB2E55413F6F076888955041F944CED2AA2E554107A41B26879550419FA69198AE2E55413E6F0768889550418E6C8F0BB42E55411120E94A8A955041B5FD78C0BA2E5541B781AC108E955041C9F5130AC12E5541AF642BCA90955041306F6A47C62E5541FF869ADF899550418C6CF35FC82E55419FCB780A7C95504129B135DFCE2E5541DFB3E5927A9550417B32F1D2CD2E5541142085F675955041560054FCCC2E5541498C245A71955041F2E5499DCD2E55416442F40B6F9550413C4A844ACF2E5541A52A61946D9550417574BC6AD62E55419BAE936F6A9550412B1082BDD42E55417E9977DF66955041870D0BD6D62E554134353D32659550419289D8FAD92E5541F3ED83CB609550410020B07EDC2E55414751FA6B61955041F8EDD6CCDE2E554110F1858463955041C28D62E5E02E554110F1858463955041756D8CD4E32E55413191984262955041138D549AE72E55419371D07C5E95504108ADA305E82E55410B126AE059955041BC8CCDF4EA2E55419371D07C5E955041658C464FEE2E5541EA7157225B955041F7CB5D80F22E5541AF32C796539550416A6B62F3F72E5541681386764C955041BB6A54A8FE2E5541D5D36E454895504195EB2546F62E5541F6738103479550418A0B75B1F62E55414D7408A9439550411D4B8CE2FA2E5541E6B4B4CA3D9550414EAA6BD9022F55414895EC043A95504189E9FB640A2F55411235781D3C9550410669B16C0F2F55418FB42D25419550416E28054B152F55412DD4F5EA44955041F6876BE7192F554173F3360B4C95504147875D9C202F554178D252AF559550416D068CFE282F5541B411E33A5D955041EA8541062E2F55412B9003526C9550410425BFD3362F5541E34E49E578955041D9A4FB80382F5541F8EC31C28B95504177C4C3463C2F55419885AA46D4955041030346874A2F5541418523A1D79550412F8309DA482F5541F5644D90DA9550419C43F2A8442F554104241AC9E3955041E0C709BE1A2F5541C3E3F44CE69550416E28054B152F55414063AA54EB9550411C2913960E2F55410F04CB5DE3955041C049704C082F554156230C7EEA955041078B2AB9FB2E55410903366DED955041E7EA17FBFC2E554191629C09F2955041BB6A54A8FE2E554119C202A6F6955041078B2AB9FB2E554160E143C6FD9550418A0B75B1F62E55416BC1F45AFD95504102AC0E15F22E5541CB7C22240296504159F27632E62E554111A3D3E102965041B50C50C0E12E5541B9EC684A069650416115B7F8DB2E5541772A26830496504140B41515DB2E5541F04132FE01965041A73B68B6DC2E554169593E79FF95504100976F74E12E5541EB3827E1FA955041C841A6C0E52E5541F40004CEF89550418BE3D1EFE22E5541840C3819F1955041667925EFDA2E5541BC6101CDEC955041996A80ACD72E55410188B28AED95504157A83DE5D52E554130BA3B78F3955041529F32C8CE2E5541E7D4B8EAFB95504128D117D1C72E5541041C25250E965041C96C05F6BB2E55414F4BE1FF1596504100C2CEA9B72E554159B85A131C9650419E9EEAFEB42E55410102F07B1F96504175756C2EB62E5541B677D0C71F9650416749214BB92E5541C8078AA11B965041EE3115D0BB2E55417410F1D915965041262C7BAABF2E5541D68E385E10965041149CC1D0C32E554178CFC2A90C9650414C9627ABC72E55415CD28FBC0A9650413E6ADCC7CA2E5541041C25250E96504119A5CCEDCA2E5541823C3CBD12965041010C08F7C72E554187A0AAB3119650415FCB7DABCB2E5541663F09D01096504107151314CF2E5541ED27FD5413965041C552D04CCD2E5541F794766819965041BCE55639C72E55411DFF226921965041B278DD25C12E554114DCE2A22B965041751A0955BE2E554106B097BF2E96504183465438BB2E5541DD8619EF2F965041BA9B1DECB62E5541CFFF6A323B96504166FFE7FDA82E55411EEEF8DC39965041243DA536A72E554193A1966138965041F6AFB86FA92E55413A468FA333965041BE5AEFBBAD2E55419BC4D6272E9650419995DFE1AD2E5541CEB531E52A96504182FC1AEBAA2E5541271139A32F96504129A1132DA62E5541101D11D33496504161F6DCE0A12E5541CFFF6A323B96504199F042BBA52E554198AAA17E3F965041D54E178CA82E55410E03DC2946965041BDF680C5AE2E554195EBCFAE489650412D46B053AE2E5541912CFEDE5196504169FFE7FDA82E55418D6D2C0F5B9650417C8FA1D7A42E554118BA8E8A5C965041772B33E1A52E5541C56792E95E965041A65DBCCEAB2E55415A7CD1515E96504161DCA737B32E55417679043F60965041AB66C7EBB22E5541062AD5B06096504178756C2EB62E55418D12C93563965041D1D073ECBA2E5541278B769461965041E405CAECBE2E55417F41E12B5E9650414FF18A84BF2E55418D6D2C0F5B965041DB3DEDFFC02E554183A54F225D965041D6D97E09C22E5541195F2BB164965041B1146F2FC22E5541A0471F366796504138FD62B4C42E55417B820F5C679650412AD117D1C72E554156BDFF81679650417EC8B098CD2E55419CE3B03F6896504163701AD2D32E5541AAB498496D965041DC2CC373D92E55415BC60A9F6E9650410B5F4C61DF2E5541808B1A796E965041F46A2491E42E5541648EE78B6C9650416E27CD32EA2E55419F884D6670965041130DF4A4EE2E554196C0707972965041FC18CCD4F32E55418DF8938C74965041C5689F47002F5541673384B274965041F9A333520D2F55411845F60776965041F2CA2CD9272F5541220DD3F473965041A92FE398402F55412D391ED87096504112B7353A422F55414991B49E6A965041D6FDFD8F472F55411A5F2BB1649650410A94F5734C2F5541993E141960965041E76A77A34D2F55411615F263549650418FB40C0C512F55417CF7A7DE4D965041D5DABDC9512F55415F55D8CA439650411B016F87522F5541AE9EC94E3A96504186EC2F1F532F55411DEEF8DC39965041C34A04F0552F554134E220AD349650419D85F415562F55415E0B9F7D339650415CC3B14E542F5541CE5ACE0B33965041A74DD102542F5541F27A41BF2A965041EC7382C0542F5541E90DC8AB24965041B9822703582F55415DC1653023965041200A7AA4592F55416125D426229650417401136C5F2F55410002F07B1F9650413848DBC1642F5541BE3FADB41D9650415EB287C26C2F5541BADB3EBE1E9650418880A2B9732F55416689421D21965041B34EBDB07A2F554154F988432596504151D0752C802F55419F28451E2D96504110B3CF8B862F554150DF539A36965041CB31BBF48D2F5541CA9BFC3B3C965041737B505D912F5541192F270D43965041A163A0FD862F55415C8FC2454696504152B81EA5882F5541CDCCCCCC4F9650417B14AE078E2F55415C8FC2F5519650419A9999998B2F55416666667659965041E17A14FE8F2F554185EB5148589650417B14AEB7912F5541A4703D0A6C96504185EB51C89C2F55411F85EBF16B9650410AD7A3F09D2F5541C3F5289C7D965041F6285CDFA72F5541A0A656BD81965041B03EF1F6A52F554194CEFFFF84965041214322A1A02F554160B80AAD9F965041A81C34979B2F554194A9BC75B19650415BA00725972F5541F16963A7CA96504195FDECA88D2F5541EEB3C949D89650414981C036892F55414177E6ECED96504161316EB1822F5541071A0169F796504114B5413F7E2F5541AB0FE4DB0397504185B972E9782F55417BAF88E6109750415AEA7D80712F5541F91C6721279750415CA017DE632F5541023F2481319750416A533BCA592F55412A334CBB3F975041BC60CEC8492F55412A334CBB3F97504100BB3DDB432F55412036C22C3C9750417BBCF813422F5541360BA3783C97504171BF6E853E2F5541145E6B6F3F975041739A3BB4372F55413530D64943975041C3CC01842E2F5541492AEA664A97504113FFC753252F5541AC7BF7244F975041D35AF29E1D2F55410FCD04E353975041C85D68101A2F5541843D598F66975041E00D168B132F554140E3E97C6C975041AC419793082F55410600000092DBD99D88965041E8B21838632F55416274E40486965041B52145C9622F55412FE3109685965041BB7501755E2F55417762861E10975041CF9B144E4F2F5541AAF3598D109750412F6AFF7F542F554192DBD99D88965041E8B21838632F5541B0000000A012F4703E975041A588DB60482F5541195BAE27309750415FD1F418572F5541F8C50FBC22975041B52145C9622F5541A49F9DE114975041DD0AA0E06B2F55411DE85798069750419ED1531A742F55414B883AF6E39650419329DBC27C2F554176FE3E7EC3965041EDA30949862F5541F8C493B6AE96504119E1200C8B2F5541D4051775A396504119E1200C8B2F5541E3D76DA298965041B4BE792E8A2F5541F4D3A2A58B9650411F35DDB7862F55418100169C809650411F23F4F97C2F554193906C62789650413F30E188742F5541BD0730BC77965041921E683C732F554110F6B66F76965041CF472D44762F5541C64F5B9F7396504139FB75A3702F5541C64F5B9F7396504188B491716B2F5541E249883073965041BB7380AE662F55415FAFD23D71965041B109AAE35E2F5541A520C328709650411688875D552F5541193EE25272965041F02384014E2F554164E43D2375965041EBEE181C4A2F55415667A75A759650419B135266432F55411E734D38769650416B45783F342F5541AF8A99F37796504165EE6172242F554108F2E15B92965041545E0BAC2C2F55418A6AEC6688965041408A5E161D2F55419BFA422D809650415E75A0BD082F5541F830F5C37A965041BD9C676AEF2E5541017920A7769650419F5EE409D82E554134380FE471965041F12AC0D5CA2E55417252E901619650410ED2ABAD9E2E5541DD0532615B965041FAFDFE178F2E5541E118F25E53965041EA5EBD67832E5541901B80C140965041CC203A076C2E5541E6FA1B8B2B9650413EFA0262562E5541ABC26B99149650416A62DBD1412E55414500385006965041C02EB79D342E5541C89AED42089650418305F295312E5541C4DA6EFE3B965041960A35FD602E554173303E1A559650416BC40775812E55418B17ABAD5C965041F7C893328B2E5541DBF271636396504127976D599A2E5541916EC17A6C96504147D5F0B9B12E554142B5A5AC7196504123B5432DC22E55417161D4EB7496504169263418C12E5541AE8A99F3779650413B9CB0C0C92E554147EA10927596504194BFA259CC2E554106AE8B8C7A965041FC81D6A2DA2E55415FD17D257D965041CBE4924DEB2E55416406E90A81965041B00C11A4F72E55416406E90A81965041139AD907022F55413FC490968596504122391BB80D2F55410D05A2598A965041EC666C7D1A2F5541CCC81C548F96504186E88E03242F55418B8C974E94965041F2BD824A2A2F554196F66D199C965041239F1C6F312F5541E6D134CFA2965041F0DF2D32362F554172D6C08CAC965041BE203FF53A2F5541CBF9B225AF965041916525CC232F55416DF49660D49650413A64DE1A2D2F5541E211B68AD696504164DBA1742C2F55415851809CE49650418F7410B6372F5541D6D87591EE96504198BC3B99332F5541C73934E1E2965041227D7187252F5541BF13B4E5F2965041BFEFA8231B2F554142AE69D8F4965041ED792C7B122F5541C4481FCBF69650410974590C122F55416D47D81900975041BABA3D3E172F55413CAA94C410975041068344F6252F55415DD92C3B1497504187FB4E011C2F554117683C5015975041584F20C2182F554157A4C15510975041998BA5C7132F554117683C5015975041BECDFD3B0F2F55413897D4C618975041C3026921132F5541608759D533975041272A30CEF92E55417EC5DC354B975041BA32919FE72E55413854EC4A4C9750416B57CAE9E02E5541573F2EF2379750414806878BD12E5541E1FF63E0299750412E2E05E2DD2E5541CE4D6232269750410DFF6C6BDA2E55410C99D221359750410BDDC183CE2E5541967BB3F732975041860DA1ABC82E5541E434CFC52D975041C74926B1C32E5541D6B738FD2D9750410786ABB6BE2E5541F2B1658E2D975041CB5CE6AEBB2E55410FCE3D0739975041C0F20FE4B32E55413E7A6C463C975041438DC5D6B52E5541F0C05078419750410A77C0CCAA2E5541979D5EDF3E975041E9472856A72E5541A0E589C23A9750415830DC9AA52E5541C527E23636975041D160BBC29F2E5541766EC6683B97504186BA5FF29C2E55418A4273FE4A97504173085E44992E5541919989CB5A975041F06DA851972E55417AD4C71F5F9750419EA1CC85A42E5541D2F7B9B8619750412DEAAE12C62E55411456EAA56897504165DE0835C52E55412B501737689750416EF23686082F554175D4C71F5F9750410C87190A0A2F55414506EEF84F9750414068B32E112F5541143814D240975041B172125B1B2F5541088AE73721975041027084F82D2F5541C5090C630E9750410CDA5AC3352F55412D57530BE5965041BB42EADC462F5541D4336172E296504168546329482F554184589ABCDB9650415AD7CC60482F554191B3859DCF965041844E90BA472F5541A443DC63C7965041D53C176E462F5541CF8909ECA6965041F44904FD3D2F5541FD138D439E965041198C5C71392F55412EB1D0988D965041F13644FF452F5541457692448996504120E3723E492F55418BE7822F88965041814E90BA472F55410C608D3A7E965041CCF4EB8A4A2F5541FEE2F6717E965041B52F2ADF4E2F5541B43C9BA17B96504138CADFD1502F5541072B22557A965041D65EC255522F554131A2E5AE79965041B651D5C65A2F55417C48417F7C9650412C919FD8682F554104608D3A7E96504112014912712F5541E01D35C682965041C3472D44762F554183E7822F88965041F2F35B83792F554110EC0EED91965041AD826B987A2F55418E7304E29B965041AD826B987A2F5541CDBE74D1AA965041DF415AD5752F55413DC9D3FDB49650412EFB75A3702F5541632DD759BC965041D5D7830A6E2F55418EC6459BC7965041FF4E47646D2F55416FB9580CD09650413743A1866C2F554120003D3ED596504145C0374F6C2F5541EC1EA319CE965041D5D7830A6E2F554123F15154C1965041207EDFDA702F55413481A81AB9965041E88985B8712F554138946818B1965041A84D00B3762F5541F100CD45A6965041CEB1030F7E2F5541323D524BA196504163FEBAAF832F5541F5138D439E965041303FCC72882F5541FF7D630EA6965041F94A7250892F5541EDED0C48AE96504122C235AA882F5541EDED0C48AE9650411D8DCAC4842F5541E8B8A162AA965041D81BDAD9852F5541CDBE74D1AA965041B7EC4163822F554179D0ED1DAC9650416C46E6927F2F5541620B2C72B09650417AC37C5B7F2F554167409757B4965041884013247F2F554119877B89B99650415994E4E47B2F5541103F50A6BD9650410071F24B792F5541601A175CC4965041A84D00B3762F5541400D2ACDCC965041D1C4C30C762F554120003D3ED596504125B34AC0742F5541FCBDE4C9D99650416B243BAB732F5541B11789F9D69650411C6B1FDD782F5541AFF5DD11CB965041C0346D467E2F5541BD7274DACA96504126D5F5A7802F55416A84ED26CC965041E06305BD812F5541CF550C5AEE9650417059A690772F55413F3EC09EEC965041949BFE04732F5541B35BDFC8EE9650418F66931F6F2F5541E73C79EDF5965041C75AED416E2F55412ADFFFA914975041E967DAD0652F55414B0E982018975041A3F6E9E5662F5541EED7E5891D9750419EC17E00632F55416C3D30971B97504129A45FD6602F55418E8E73F52A975041FE0AF194552F5541C682CD172A975041447CE17F542F5541F71F116D19975041C303D7745E2F5541B08C759A0E975041BABBAB91622F554161B1AEE4079750413C566184642F554161B1AEE4079750419044E837632F55412F146B8F1897504116F25D285D2F55411FA6BFB02C97504131CADFD1502F5541B0DFB6533A975041679C8E0C442F554141F7020F3C97504191135266432F55418C9D5EDF3E9750413E25CBB2442F5541A012F4703E975041A588DB60482F5541360000009673759CD1965041DD102FF72A2F55419B878928B596504158460F760F2F5541C8D19AD7B4965041D44AF742192F554118967BBBB09650418A733CFF172F5541E07B2892AD965041B6B343E8252F554114B35FE1A7965041933974B3292F5541695A5C9FAC965041F99DD88B2C2F5541695A5C9FAC9650417B8FE6F8302F55416F47823FA79650417B8FE6F8302F554192C15174A39650419E09B62D2D2F554148EA9630A2965041504FDF0F232F5541A37EB98EA1965041E5075F5D172F5541BF0B6323A39650419E3AAEDF072F5541E6684E32A8965041A427D47F022F5541609424EB9A965041A631DE45F42E5541A588C3549396504147BA9F0DEC2E554189FB19C091965041AD1E04E6EE2E5541EF5F7E98949650410C96421EF72E5541DFA2167E969650416B0D8156FF2E55418AFB19C091965041B5E43B9A002F554119C7736D8B965041634749A2ED2E5541B3620F9588965041518AE187EF2E55412F67F761929650419D3AAEDF072F55412F67F7619296504174D3B80A112F5541639E2EB18C96504181AD044B062F55413C4143A287965041613D3FDCFB2E55410327F07884965041D37BEFF4F32E55414DFEAABC859650411F5DB4FEE62E55414711851C8B965041370742B9DF2E5541EC7C62BE8B9650412C37003FDC2E554154EBD05C8096504183E806C3D22E554165A838777E96504183E806C3D22E5541375E27C87E9650414FB1CF73D82E5541FF43D49E7B9650414FB1CF73D82E5541AA9CD7E07696504112B46070CC2E554172518C05999650414FE2C725B32E554199AE77149E965041441286ABAF2E55410AE31D67A4965041050B0DE2B12E55419E9193EEA6965041C6039418B42E5541DCC9046A7F965041D3ACE7A6CE2E55410EF731F387965041332426DFD62E554135541D028D965041CDBFC106D42E554152E1C6968E965041AA45F2D1D72E554167814A8B95965041B1321872D22E5541C2156DE994965041C6D29B66D92E5541011DE6B292965041D685F9BAE52E5541E97258F8999650412440D0D8EF2E5541A861D568AA9650416B0D8156FF2E554192B747AEB1965041A427D47F022F5541646D36FFB196504105A91C7EFC2E554180FADF93B3965041613D3FDCFB2E554141F366CAB5965041A80AF0590B2F55411A658309D6965041817C0C992B2F55419673759CD1965041DD102FF72A2F55415E0000000180F3D61097504133C2357B212F55419B1B8FFE0D9750418A733CFF172F5541467492400997504158460F760F2F5541038AFD9C02975041AFF715FA052F5541487E9C06FB965041C7A1A3B4FE2E554160282AC1F39650410C96421EF72E554116516F7DF2965041E91B73E9FA2E55414F6BC2A6F59650413EC36FA7FF2E55410B812D03EF9650412C06088D012F5541898F1F96EA965041CB84BF8E072F5541F6E0A90EE896504158460F760F2F554134E822D8E59650418A733CFF172F5541EB106894E496504195437E791B2F5541CE83BEFFE2965041409C81BB162F5541D953007AE6965041039F12B80A2F5541898F1F96EA965041D171E52E022F5541FAC3C5E8F09650417CCAE870FD2E5541BBBC4C1FF3965041672A657CF62E554183A2F9F5EF9650415C5A2302F32E554134E822D8E59650412136C612FE2E554173EF9BA1E3965041D75E0BCFFC2E5541AC09EFCAE6965041FAD8DA03F92E554139CB3EB2EE9650413FCD796DF12E554159CA2EB1EB9650419EF2E036EF2E5541BEDFA6AEE2965041BB9587F6F92E5541EB0E46D6DF965041981D227DF92E5541DFE6CEADDF965041228D7AE8F72E5541CDE998CBE9965041FAC15C00ED2E554190B00787E59650411CC984FFE92E5541AED5B491DB965041AF6D10CEF92E5541456D8425DA965041981D227DF92E5541E1570C28E39650418FE8EE19E82E5541AD647717D896504180DEFCFCE02E554156F97C8DCC965041F55DDBC0FA2E5541EC904C21CB96504147761DDCFB2E554160B0B63BC9965041512D578AF82E5541EC904C21CB965041670C0861F52E55419CE94780CD965041B7B30C02F32E554138D4CF82D69650413AEE310AE02E5541BF61ADF9CD9650412C557D67DC2E5541768F6712C69650411394519CD82E55410945BCB1BD9650417B8B448ED62E5541066341BDB696504129730273D52E5541276A69BCB3965041B4E25ADED32E554104F20343B3965041791A0714D32E55418DF01E34AE96504165AC93B7D92E5541C6473584AB965041633B563DD62E5541DD9723D5AB96504162CA18C3D22E55412CCEEAFBA59650412BE43FEDD82E554194C5DDEDA3965041F01BEC22D82E5541B9AE80E1A79650412702C5F8D12E5541A3CFCF0AAB9650415EE89DCECB2E554181C8A70BAE9650415B0623DAC42E55419918965CAE965041B7D59EA3C22E5541FD2D0E5AA59650410E5262FEB52E5541A15E9290A796504199C1BA69B42E55415E504292AD96504134AC426CBD2E5541A8228879B596504153422DF1B62E5541156D33DABD965041B757A5EEAD2E5541741E2A98C29650414056C0DFA82E5541AFE67D62C396504188B7C84CAD2E5541A52F44B4C69650414056C0DFA82E55410E987420C896504194DF3F75AD2E55419907CD8BC6965041FE4770E1AE2E55410C2737A6C4965041F50174ADB52E55412CBD212BBE965041B4646129BF2E5541861B607AB896504173C74EA5C82E554190D29928B596504119691056CE2E55414AE2CE35B4965041A549A63BD02E554185AA2200B59650413D52B349D22E5541118BB8E5B69650418F6AF564D32E554159ECC052BB965041BE0AD206D42E5541F5D64855C49650413FC3F0C3D52E55414960C8EAC8965041B4539858D72E5541E3D91273CE96504158841C8FD92E554159DBF781D39650411F2D063FDC2E5541E8BB8D67D596504142A56BB8DC2E5541FAA7FA78E39650419FF6EDCCC52E5541ADE270CCEC965041C650CE3ACD2E5541BE6E6934DF965041E8462D69E22E55412948D71AE4965041E9B76AE3E52E5541DF64C862F4965041BF7B0F81D72E5541044E6B56F8965041B5C4D5D2DA2E5541174BA138EE965041C4CEC7EFE12E554136E18BBDE7965041D3D8B90CE92E5541D63C513AF496504112F4C545F42E5541DB8F09A9FE9650412F976C05FF2E55414BBC2FFE0D97504164FB3E900D2F55417CCD491A1297504189E4E183112F5541CC744EBB0F97504121EDEE91132F55413E237B5B0A9750414183D9160D2F5541D99CC5E30F9750411836B5E3162F55417DCD491A12975041CB702B37202F55410180F3D61097504133C2357B212F5541050100002BA43E2E299750413108AA7F022F55411072D5E82197504113F4C545F42E554124E048451B9750413BD0ACFEE62E5541FFF6A55117975041E7462D69E22E5541356C41AD0D975041F08C299DDB2E5541913BBD760B9750411DBCC8C4D82E55413DB23DE1069750413D52B349D22E55414216BF20F99650417BFC8108DA2E55411D2D1C2DF5965041798B448ED62E5541BE7B256FF09650412502C5F8D12E5541319B8F89EE9650414709EDF7CE2E5541319B8F89EE96504122204A04CB2E55419EE53AEAF69650412CD783B2C72E5541C9A39C97F0965041AB1E65F5C52E5541008A756DEA965041341D80E6C02E5541D64D1A0BDC965041D1890E34B52E5541468B0931D39650419F07B79DAD2E554122A2663DCF9650411CDE5A66A82E55419F780A06CA965041AF93AF05A02E5541C17F3205C7965041B94AE9B39C2E5541E2865A04C4965041AF93AF05A02E5541CB366CB3C3965041332E49B7A82E55414A7E4DF6C19650411CDE5A66A82E55414A7E4DF6C1965041C6E39D56A02E5541F9D64855C4965041E67988DB992E554183D56346BF96504174CB5B3B9F2E5541753CAFA3BB9650416A14228DA22E5541EF30D877AF96504141C7FD59AC2E55416B963EC6A6965041213113D5B22E5541022E0E5AA5965041ACA06B40B12E5541141A7B6BB39650416C855F07A62E5541D37C68E7BC9650413A0308719E2E55414A7E4DF6C19650414E717BCD972E55412706E87CC19650415828B57B942E5541A64DC9BFBF965041C01FA86D922E5541C754F1BEBC965041CB471F96922E554117FCF55FBA9650419E18806E952E554168A3FA00B8965041424904A5972E55415A0A465EB49650411238EA88932E5541A26B4ECBB8965041BEAE6AF38E2E55411DD1B419B0965041C965A4A18B2E554153465075A696504102BDBAF1882E5541DAD32DEC9D96504175DC240C872E55419001E80496965041AE333B5C842E5541EB5F265490965041C412EC32812E5541A3FE1DE78B96504159397E4C7C2E5541D02DBD0E8996504163F0B7FA782E5541FC5C5C368696504179CF68D1752E5541707CC6508496504132DF9DDE742E554150F7A49C7296504142D8C62A942E554171FECC9B6F965041C11FA86D922E55417A3300FF80965041600E3D06722E554123C8057575965041BA6C7B556C2E5541B7EE978E70965041D32DA720702E55411D754D066B9650410C85BD706D2E5541E8107B7B5C9650417F935EBA832E5541A0AF720E58965041C412EC32812E55416E1C52A76896504120F330CD662E5541C23494C269965041A8628938652E5541F8A92F1E60965041172F3BE4582E5541485134BF5D965041718D7933532E554137D604285396504185FBEC8F4C2E5541CA8B59C74A96504102D29058472E5541D1D155FB43965041F638DCB5432E5541FD8FB7A83D9650413BB8692E412E554179F51DF734965041740F807E3E2E5541F83CFF39339650418B5F6ECF3E2E55419AFC45F631965041184004B5402E55411651E37341965041FB8B94244E2E554192A580F150965041D3AFAD6B5B2E5541EE74FCBA4E965041484055005D2E5541EAA34A972F96504181A83421422E5541A4B37FA42E965041184004B5402E5541256C9E6130965041E72EEA983C2E55410658BA2722965041867DF3DA372E5541219BEC3D11965041EC03A952322E554103870804039650416ADA4C1B2D2E55414977D3F6039650419709EC422A2E5541962B94D21296504154FB9B44302E55416498736B23965041FA9C5DF5352E5541988B087C2E965041135E89C0392E55416CCDA6CE34965041B51DD07C382E55414BC67ECF37965041EE74E6CC352E55413476907E379650410E0BD1512F2E55413205530434965041997A29BD2D2E5541E0EC10E932965041528A5ECA2C2E5541D04F4FB0589650417E48C077262E55412C1FCB795696504139C932FF282E554117B1571D5D965041749186C9292E554148C2713961965041227944AE282E5541DF5941CD5F96504120080734252E5541A6022B7D62965041DA173C41242E55410F6B5BE96396504164F8D126262E55419C4BF1CE65965041CE600293272E55411E754D066B965041729186C9292E5541C4160FB770965041E7212E5E2B2E5541B0A89B5A7796504121EA81282C2E5541D6027CC87E9650410A9A93D72B2E554114AD4A8786965041B88151BC2A2E5541A18DE06C88965041D98879BB272E55418086B86D8B965041207944AE282E5541161E88018A965041B88151BC2A2E55419E9A9CA799965041F79C5DF5352E5541772FF368AA9650414DA8E3D5252E554185C8A70BAE9650414CA8E3D5252E5541D7E0E926AF965041F249A5862B2E5541A7CFCF0AAB965041D0427D872E2E55416A963EC6A696504197EB6637312E5541744D7874A3965041263D3A97362E5541E86CE28EA19650413FFE65623A2E5541E86CE28EA19650416276CBDB3A2E55410C6341BDB696504115753718522E554199320ED2D09650418C6553566F2E5541A6CBC274D4965041530E3D06722E55419E85C640DB965041D1E4E0CE6C2E554121AF2278E096504144044BE96A2E5541C5DFA6AEE296504123FD22EA6D2E5541E6E6CEADDF9650410D1E7213712E55419E85C640DB965041D4C65BC3732E5541EE2CCBE1D8965041557F7A80752E55417C7E9E41DE9650418A01D2167D2E5541011938F3E69650411DB726B6742E5541CD14DA11F49650410C3CF71E6A2E55417A09543104975041CE20EBE55E2E5541DB2B88690C97504163477DFF592E5541EA357A86139750419C9E934F572E5541A99867021D975041844EA5FE562E5541CCFF03AB359750410507C4BB582E5541ACE712DB5097504190E759A15A2E5541ACE712DB509750413418DED75C2E55414EB8226837975041A73748F25A2E55417A874DE6189750411B57B20C592E5541BC959DE41297504149F78EAE592E5541DE9CC5E30F9750419B0FD1C95A2E5541DC2B88690C97504111A0785E5C2E5541AC1A6E4D08975041B5D0FC945E2E55418731CB5904975041590181CB602E554104086F22FF9650414F4A471D642E5541D014DA11F4965041BB94F27D6C2E5541FA61FE44EA965041118FAF8D742E5541F50E46D6DF965041FE9179AB7E2E55418F88905EE59650413414D141862E55415913F502EF965041458F00D9902E5541E9D505DDF7965041A6B13411992E55410EBFA8D0FB965041EE123D7E9D2E5541D5679280FE9650414EC4333CA22E554138FB03330A975041EB30C289962E55410BCC640B0D9750416D5A1EC19B2E5541A838F358019750410BB6E33DA82E554111A123C50297504147EF7482AC2E5541C1F91E2405975041F5D63267AB2E5541D8490D750597504181B7C84CAD2E55415891EEB703975041DFF78190AE2E554159022C3207975041BF61970BB52E55417EEBCE250B975041ED903633B22E5541E853FF910C97504156F9669FB32E5541DABA4AEF089750419E5A6F0CB82E5541680C1E4F0E975041E82CB5F3BF2E5541941D386B12975041E70E30E8C62E554167EE9843159750415F815271CF2E554167EE984315975041CA5AC057D42E5541968E75E5159750419103AA07D72E5541B906DB5E169750411EE43FEDD82E55413ABFF91B189750415A1DD131DD2E5541AEDE6336169750417D9536ABDD2E5541E6357A86139750414C13DF14D62E5541C3BD140D13975041F8895F7FD12E5541A045AF9312975041DFC833B4CD2E55411F8D90D61097504197672B47C92E55416F3495770E97504143DEABB1C42E5541EE7B76BA0C9750411EF508BEC02E5541B242E575089750413E8BF342BA2E55419981B9AA04975041A411A9BAB42E5541E928BE4B0297504174008F9EB02E554145F8391500975041728F5124AD2E5541DC8F09A9FE965041701E14AAA92E5541C53F1B58FE965041B29DA122A72E5541395F8572FC965041766410DEA22E55417DDE12EBF996504174F3D2639F2E5541DAAD8EB4F79650418AD2833A9C2E5541E464C862F49650417D39CF97982E554190DB48CDEF96504140003E53942E5541EA39871CEA9650418F36057A8E2E5541DDA0D279E6965041829D50D78A2E55415A777642E1965041D0D317FE842E5541AA1E7BE3DE965041C33A635B812E5541642EB0F0DD96504165FAA917802E5541B4D5B491DB9650419229493F7D2E55413ED4CF82D6965041F8AFFEB6772E55413C639208D39650413D2F8C2F752E55419F07CD8BC696504191A742F4912E5541297725F7C49650414AB77701912E5541AF82FC22D1965041B04EF649732E554183E62C17A7965041E738DCB5432E5541022E0E5AA5965041DC10658D432E554116AD4A87869650411546E93B712E55418ACCB4A184965041C32DA720702E55416A25014CA3965041C4C0763C432E554153D512FBA2965041DA9F2713402E5541C6F47C15A19650411E1FB58B3D2E554143CB20DE9B965041CE77B0EA3F2E554135326C3B9896504159E708563E2E554162610B6395965041639E42043B2E55419D295F2D96965041612D058A372E554161F0CDE8919650413D446296332E5541F7879D7C90965041F65397A3322E5541E037AF2B90965041640F807E3E2E5541D680757D939650412BB8692E412E5541A951D655969650411F90F205412E5541874AAE569996504115D9B857442E554158AAD1B498965041E8A91930472E5541875B772781965041938DCA7E6F2E55410BF610D989965041FE663865742E5541C5E7C0DA8F9650413D1107247C2E5541A4E098DB92965041E0D04DE07A2E554182D970DC959650410E712A827B2E554103928F9997965041B2A1AEB87D2E55413CE9A5E99496504162FAA917802E5541EAD063CE93965041919A86B9802E55416CFABF059996504135CB0AF0822E55412B5DAD81A2965041FC73F49F852E55413CD8DC18AD965041B8F46627882E5541FCAB070FBA96504117A65DE58C2E55410945BCB1BD965041215D9793892E55410BB6F92BC1965041C58D1BCA8B2E5541440D107CBE965041A386F3CA8E2E5541BB0EF58AC3965041E0BF840F932E554147EF8A70C596504155502CA4942E554101EEF6ACDC96504110E267FC7E2E554148DEC19FDD965041C03A635B812E5541870A97A9D09650412EF64B368D2E55418EDF5563C6965041334904A5972E554193A34B4CD4965041E3AEBB3EAB2E55410834F3E0D596504187DF3F75AD2E55411E02DBE6EA96504178C48487BE2E55414E13F502EF9650413F6D6E37C12E554127A84BC4FF965041AA57A5EEAD2E5541717A91AB079750413B8BF342BA2E554138237B5B0A975041544C1F0EBE2E55410430E64AFF9650414E776054C82E5541FCE9E916069750410B691056CE2E5541C50311410C97504103231422D52E55412E6C41AD0D9750410494519CD82E55416BA5D2F11197504140CDE2E0DC2E5541041F1D7A179750417D067425E12E5541299782F317975041119E43B9DF2E5541BF2E52871697504190E524FCDD2E554140E770441897504184BDADD3DD2E5541FB67E3CB1A975041E46EA491E22E5541B7E855531D97504172C077F1E72E5541205186BF1E975041FEA00DD7E92E5541D31ABF9824975041AA244A7CF62E5541059D162F2C975041542A8D6CEE2E5541EFBD65582F9750411A6239A2ED2E554141D6A77330975041B26A46B0EF2E5541A9CD9A652E975041B4DB832AF32E5541D6FC398D2B975041FC3C8C97F72E554155441BD0299750414CE49038F52E55415FFB547E269750411FB5F110F82E5541A75C5DEB2A975041D2EF6764012F55412BA43E2E299750413108AA7F022F554106000000125CDAF6C4965041D621910EEF2E5541D354612DC796504115290AD8EC2E55411D2C1C71C896504131B6B36CEE2E55412EE9838BC6965041D4178748FD2E55419B3A0E04C4965041B19DB713012F5541125CDAF6C4965041D621910EEF2E55410600000056E47E3616975041CD8C510CB82E5541785E4E6B129750413ADEDB84B52E55414427171C189750415C58ABB9B12E55410A03BA2C23975041BED9F3B7AB2E5541F84552122597504140CB0125B02E554156E47E3616975041CD8C510CB82E554105000000F63B484C33975041F03719F38E2E55413543C115319750418AD3B41A8C2E5541F4313E8641975041B33AAAEF822E5541B52AC5BC43975041199F0EC8852E5541F63B484C33975041F03719F38E2E554105000000B178A19415975041810D7D667A2E5541D3F270C9119750411BA9188E772E5541B55BBD6E1E975041678ADD976A2E55411BC0214721975041725A1F126E2E5541B178A19415975041810D7D667A2E554106000000A677676837975041619DB7F76F2E55415CA0AC243697504105099599702E554112C9F1E034975041B16198DB6B2E554176234CF34597504124A048F4632E5541371CD32948975041012679BF672E5541A677676837975041619DB7F76F2E5541060000000DEDF96814975041942B31DE342E5541DE4C1DC7139750412952C3F72F2E55414E79431C23975041347A3A20302E5541DB59D90125975041631A17C2302E5541F3A9C75225975041DA1BFCD0352E55410DEDF96814975041942B31DE342E554107000000665C0189F6965041A246ECCB232E554137BC24E7F596504195AD3729202E55411F6C3696F596504114F5186C1E2E5541665C0189F6965041933CFAAE1C2E5541D517EA63029750414124B8931B2E554103B8C605039750412DB64437222E5541665C0189F6965041A246ECCB232E5541070000008403B5DED7965041AB7B1F2F352E554178DB3DB6D79650416F428EEA302E5541656DCA59DE965041CB110AB42E2E554172067FFCE1965041CB110AB42E2E554147481D4FE8965041B3C11B632E2E554153709477E896504113731221332E55418403B5DED7965041AB7B1F2F352E55410A000000CE68CAE1B2965041541025A5292E55418778FFEEB19650412F2782B1252E55410AA25B26B79650415C5621D9222E5541A3AA6834B9965041CF758BF3202E554125D4C46BBE965041376D7EE51E2E5541E15437F3C09650417235D2AF1F2E554110F51395C1965041E7C57944212E5541F8A42544C19650413B4FF9D9252E55412F8BFE19BB9650412F2782B1252E5541CE68CAE1B2965041541025A5292E55411E0000003C4EA1D63296504174396FBAA22E55414CDA993E25965041B5D6813E992E5541C9B03D0720965041E2052166962E55414ECDDD031496504150D2D2118A2E55411F3ECA32FB955041E8DADF1F8C2E5541614C1A31F595504122A333EA8C2E554184C47FAAF59550416722C1628A2E554197B0ECBB03965041E669A2A5882E55418442795F0A965041DA412B7D882E5541FFA7DFAD019650419451608A872E55411CDE5589DF9550414CF0571D832E554156A6A953E0955041906FE595802E554141342961109650414E619597862E5541A92B1C530E965041AA301161842E55413BE170F205965041A4DD58F2792E5541FFA7DFAD01965041168C8592742E55418A17381900965041AC235526732E5541D6DCC1C5F6955041068293756D2E5541177AD449ED9550419BA8258F682E5541461AB1EBED9550413D686C4B672E5541679FD29FFF955041141B4818712E55412E48BC4F02965041AC235526732E554153315F43069650410CD54BE4772E55414D5CA08910965041B5588889842E5541F6DFDC2E1D965041762CB37F912E5541F8501AA920965041614D02A9942E55417616F5A033965041E758D9D4A02E5541C82E37BC3496504116F9B576A12E55415FC606503396504174396FBAA22E55413C4EA1D63296504174396FBAA22E55410D0000001034D815F4955041F17C4367CA2E554145A97371EA955041EB298BF8BF2E55411AEB11C4F095504169002FC1BA2E5541040C61EDF39550412481A148BD2E55414AFC2BE0F4955041BB1871DCBB2E554112A51590F7955041AFF0F9B3BB2E5541C1FD10EFF9955041C740E804BC2E5541378EB883FB955041BB1871DCBB2E55412DD77ED5FE955041EAB84D7EBC2E55415A061EFDFB955041EB298BF8BF2E55414D6D695AF8955041E172514AC32E5541D94DFF3FFA955041A81B3BFAC52E55411034D815F4955041F17C4367CA2E55410A000000A4D863E4039650417699E363BE2E55413B7033780296504101093CCFBC2E55415EE898F10296504197A00B63BB2E55415EE898F1029650412E38DBF6B92E5541C750C95D04965041AD7FBC39B82E554131B9F9C905965041A1574511B82E55414A7A259509965041DC1F99DBB82E55413E52AE6C09965041DD90D655BC2E55416059D66B069650415E49F512BE2E5541A4D863E4039650417699E363BE2E55410C0000006D855A2ADD9550418F5A0F2FC22E5541773C94D8D9955041A539C005BF2E5541AE226DAED3955041DC1F99DBB82E5541003BAFC9D49550415B677A1EB72E554169A3DF35D69550412CC79D7CB62E5541EA5BFEF2D7955041DAAE5B61B52E5541C954D6F3DA955041651EB4CCB32E55416D855A2ADD955041651EB4CCB32E5541BD2C5FCBDA955041DAAE5B61B52E5541031D2ABEDB955041209F2654B62E55412A770A2CE395504153217EEABD2E55416D855A2ADD9550418F5A0F2FC22E55410600000031CECF30C49550411102651BDC2E5541764D5DA9C1955041CB119A28DB2E5541B286EEEDC59550415DC7EEC7D22E554156B77224C895504117D723D5D12E554156B77224C8955041B0DF30E3D32E554131CECF30C49550411102651BDC2E554109000000D2E7721B37965041FB869E76A12E55418810B8D735965041561BC1D4A02E55413E39FD9334965041DEF9F4E19F2E5541FF3184CA369650411D016EAB9D2E554149093F0E3896504112312C319A2E55416596E8A239965041903F1EC4952E5541278F6FD93B9650410761EAB6962E5541DDB7B4953A965041D429B3679C2E5541D2E7721B37965041FB869E76A12E55410A0000002CAEA037AE955041AFBC1435362F5541FF7E0110B1955041D90939682C2F5541E99F5039B49550417BC97F242B2F55418DD0D46FB695504187F1F64C2B2F55411AB16A55B8955041FC819EE12C2F55416A586FF6B59550414654E4C8342F554199F84B98B6955041AFBC1435362F554181A85D47B69550413C9DAA1A382F55415197432BB2955041A505DB86392F55412CAEA037AE955041AFBC1435362F55410E000000877D1C01AC9550413D1FB165232F5541E34C98CAA9955041DFDEF721222F55419D5CCDD7A89550413BAE73EB1F2F5541CCFCA979A9955041D145437F1E2F5541FB9C861BAA955041508D24C21C2F554159DD3F5FAB955041F34C6B7E1B2F5541DA955E1CAD955041AC5CA08B1A2F5541C4B6AD45B0955041666CD598192F554197870E1EB3955041082C1C55182F5541520881A5B5955041C23B5162172F5541BC70B111B7955041D98B3FB3172F5541F63805DCB795504137CCF8F6182F5541DFE8168BB7955041CFD405051B2F5541877D1C01AC9550413D1FB165232F55417D000000803F3AF95F955041A0B222182F2F5541E8362DEB5D955041B691D3EE2B2F5541B99650495D955041B4209674282F55418AF673A75C955041609716DF232F554138DE318C5B9550414565AD991C2F5541E6C5EF705A955041EF6AF089142F55418985362D59955041EC8875950D2F5541ACFD9BA65995504125E08BE50A2F5541529F5D575F955041D1560C50062F554156700F7B7E95504143873F3BEC2E5541B89243B386955041074EAEF6E72E5541D5176567989550410F05E8A4E42E554154DD3F5FAB955041D2CB5660E02E5541D877D910B4955041E8AA0737DD2E5541F0C7C761B4955041B90A2B95DC2E55414A2606B1AE9550411F91E00CD72E5541CDD168339F955041BA8C31E0C72E554133581EAB99955041C4436B8EC42E5541C60D734A9195504145FC894BC62E5541BAE5FB2191955041B81BF465C42E55416087BDD2969550414EB3C3F9C22E55410247048F95955041AE823FC3C02E5541BB56399C94955041C461F099BD2E55410D6F7BB795955041D940A170BA2E5541EAF6153E95955041C07F75A5B62E554152EE083093955041E015602AB02E554100D6C61492955041D27CAB87AC2E554198DED32294955041BB2CBD36AC2E5541F61E8D66959550418F6E5B89B22E554183FF224C97955041FB47C96FB72E55419A4F119D9795504137815AB4BB2E55415F87BDD296955041E7D95513BE2E55416BAF34FB969550418B0ADA49C02E554132581EAB999550413B63D5A8C22E5541C1A9F10A9F955041F6E34730C52E55419F20C3C0B69550418E6A4EF3DB2E55411B75603EC6955041FD2537CEE72E5541E870025DD39550419A10BFD0F02E5541113C2045DE955041632AE6FAF62E554151572C7EE9955041DA2BCB09FC2E5541168FD8B3E8955041201C96FCFC2E5541A9442D53E09550411383E159F92E5541D4028F00DA95504128629230F62E55417E08D2F0D1955041D4D8129BF12E55410696AF67C99550412E3751EAEB2E5541B09BF257C19550417D6D1811E62E55414F79BE1FB995504191DB8B6DDF2E5541C298283AB79550414AEBC07ADE2E55411E68A403B5955041561338A3DE2E554162E7317CB295504191DB8B6DDF2E55414FFBC46AA4955041D93C94DAE32E55411997F2DF95955041B7356CDBE62E55411CFB731F8895504173B6DE62E92E5541607A019885955041B9A6A955EA2E5541F711D12B84955041220FDAC1EB2E5541EBE9590384955041C63F5EF8ED2E55414B9B50C1889550418D66415D052F5541CB536F7E8A95504183AF07AF082F5541299428C28B955041D5C749CA092F55416E13B63A89955041A6276D28092F5541ED5A977D879550418D66415D052F55419B4255628695504195AC3D91FE2E5541F711D12B84955041A7A97373F42E55418DA9A0BF82955041C63F5EF8ED2E5541A4F98E1083955041F36EFD1FEB2E554168C0FDCB7E955041BA17E7CFED2E5541B4AFFF5C72955041AC0413D3F82E554109D6DFB57495504163A797D4F92E55413130AF7F76955041E80BCA81FB2E554185568FD878955041FCB8B166FC2E5541F29B98DB7A95504115D8DA10FC2E554101D73EFB7C955041C1B1FAB7F92E5541BCEB04C27C955041B1765498F72E55413787D2147B955041E726E8B1F52E55417700CB887C95504149A38C5AF42E55414250376F7E9550412149BD90F22E55416538C57381955041110E1771F02E5541A6B1BDE7829550417E532074F22E5541082E62908195504135F6A475F32E5541853B71A87E9550416250743FF52E5541FB64FD357E955041728B1A5FF72E554180C92FE37F955041FC618ED1F72E5541D5EF0F3C82955041596CF1B4F72E554177E5AC5882955041DFD02362F92E55410F12E51A7F95504124BC5D9BF92E5541CE98ECA67D9550416435560FFB2E55418E1FF4327C955041D17A5F12FD2E5541254C2CF578955041526D50FAFF2E5541BD7864B77595504135DCE58A012F554128D98BEA719550419EAFADC8042F55418EC771586F955041CA7BBE57052F5541F5B557C66C9550410F67F890052F55413E13D3C46B95504171E39C39042F5541F927998B6B9550413EC06815FF2E5541B9E908B867955041C5BD57AD022F5541B39650495D9550410368266C0A2F554109910D59659550410F909D940A2F55414FFFD1007B9550415F37A235082F55416A313B46829550415F37A235082F55411EC18A8A909550417E7566EE0A2F5541EC323DEBAA955041CAB7C3BC0F2F55411522F339CC955041B37D7CE2152F55411FECB6D9D795504182CDE8C8172F554121D198A9DD9550413DE2AE8F172F554154F4CCCDE29550411588DFC5152F5541D0747CF0E69550417B76C533132F554156D9AE9DE89550413BFDCCBF112F554190FB837CE5955041D09CA58C152F55417EDBFB8CDD95504138706DCA182F55417884D8F7D8955041C246E13C192F55413526FEB3D19550410CA45C3B182F5541C4163111C49550418BB16B53152F554130C7538FA695504113A3FDF50F2F55415955A12E8C9550418A7566EE0A2F5541F30E39E681955041621B9724092F5541138426E07D955041BD25FA07092F5541BF05C4AC6E9550415BA9555F0A2F5541D27547E75C955041CC60A0270B2F5541D6E788AC5B955041AFCF35B80C2F55414C11153A5B955041923ECB480E2F554170F9A23E5E9550413771CC0F212F5541269C27405F9550418D7C8E38292F55414EF6F60961955041C51104222D2F55411062E06565955041F8343846322F5541803F3AF95F955041A0B222182F2F554107000000565D28BEB2955041F22CB1B60B2F554173EE922DB195504199948F980A2F5541879B7A12B2955041446EAF3F082F5541EF6E4250B59550411C14E075062F5541DEA63C3BBA95504196AFADC8042F554106010C05BC955041A1781223082F5541565D28BEB2955041F22CB1B60B2F5541050000009449C13CBB955041324E2750002F55413BB19F1EBA9550412CF703BBFB2E5541BA163111C4955041080F76B6F82E5541B5A4EF4BC59550415451D384FD2E55419449C13CBB955041324E2750002F55410E000000D52C74E694955041D8EAE24CEB2E5541216FD1B499955041BFCBB9A2EB2E55415804479E9D955041F0090CF7EA2E5541EDA31F6BA19550411DD61C86EB2E5541EDA31F6BA1955041A23A4F33ED2E5541A8B8E531A19550416D8ABB19EF2E5541B19C68BC9E9550410B0E1771F02E55418EB4DAB79B955041C622DD37F02E5541F4A2C02599955041F2EEEDC6F02E5541E0F5D840989550414B870FE5F12E55415B91A69396955041BD3E5AADF22E55416475291E949550416E6F9DE9F42E55417C9452C8939550419956CCA8EF2E5541D52C74E694955041D8EAE24CEB2E55413000000084704A586A95504177C62BD6402E5541DECE88A7649550416358B879472E5541098DEA545E9550415D83F9BF512E5541071CADDA5A955041ED450A9A5A2E55411F6C9B2B5B955041A08080ED632E5541A9DBF39659955041E8E1885A682E554111D3E68857955041983A84B96A2E5541A86AB61C56955041E20CCAA0722E5541C971DE1B53955041A16FB71C7C2E5541AE3F75D64B955041E3FB00D08A2E55415B2733BB4A9550412B5D093D8F2E55411155EDD3429550410E385C32992E5541F6B1461438955041C4C58AF4AC2E5541CDE6282C2D955041428B65ECBF2E55414ABDCCF427955041767EFAFCCA2E5541494C8F7A2495504105D0CD5CD02E55412E1A26351D955041D9116CAFD62E554144F9D60B1A95504138C3626DDB2E5541C91577080E955041FD780858EF2E5541A2BB969A0695504111D6B2E3002F5541F3629B3B049550417DAF20CA052F554149DF5E96F794504137AE8C061D2F5541D44EB701F6945041090EB0641C2F55419522E2F702955041081F7935042F5541C633FC13079550416AC3B3B8F72E554119BD7BA90B955041B6883D65EE2E55418F4D233E0D955041B6883D65EE2E5541B5A703AC14955041F5B4126FE12E55412B38AB40169550414F1351BEDB2E554150214E341A95504140095FA1D42E5541EA9A98BC1F955041E15768E3CF2E55414477D0C02E955041F4B81F05B82E5541C52FEF7D30955041E890A8DCB72E55416C42EEA8399550410EFC511BA72E55411AC62A4E4695504161255D07902E5541E3DF51784C955041C53AD504872E5541723125D85195504162A763527B2E5541502AFDD854955041C6BCDB4F722E55410DAB6F605795504129F0D858622E5541266C9B2B5B95504150CCBF11552E55413023D5D957955041F38B06CE532E55415FC3B17B58955041086BB7A4502E5541512AFDD8549550417062AA964E2E5541823B17F558955041973E914F412E554107D6B0A6619550418E8757A1442E554164166AEA629550414908CA28472E554151A8F68D69955041F30D0D193F2E554184704A586A95504177C62BD6402E55410500000007112645C69450414F5F8F2D282E5541B5F8E329C5945041AB2E0BF7252E554166C21C03CB9450413C73221C1A2E554176CC0E20D294504186456803222E554107112645C69450414F5F8F2D282E554106000000491F7643C0945041C7E27A87182E55417F94119FB69450415C090DA1132E5541A8E135D2AC945041644F09D50C2E55412B0B9209B29450418274B6DF022E55419DA8F5D8C494504114A804340F2E5541491F7643C0945041C7E27A87182E5541
+</a>
+
+<b>
+010600000001000000010300000001000000190000007E7BAC3032945041C8D4FE21C62D55410BC4C22E32945041DD816E02C62D5541392FDE9634945041A9B082AEC42D5541CD594A8C34945041A613856BC42D5541C6F01EC12D945041B7052E82C02D55414C3D62A219945041C69EE041D52D5541E70573A8089450410E45E686DF2D5541579CE6D7F693504141529D60E92D5541C591A6E5EA935041B347C1C2F12D55419425A32DDB9350411C3DE524FA2D5541848CC9FBD6935041617C5338F62D5541623B023ED59350411A5C264EFA2D55411541452DD49350412DE10124FE2D55411D5A8B48D493504158B1AF4B022E55414BF02FECD49350414DD272B4052E5541FEB5A867D6935041F17F6133092E5541C615D9C0E79350411B2064DEFC2D5541F781DC78F793504129FB198DF12D5541F064BF860E945041CD3FF8B7E32D5541A34250711594504104AC971BDF2D5541C1D339261C9450413A18377FDA2D5541B5993799219450416684D6E2D52D5541B3F883772794504112A4CE10D12D5541878CE4132C945041C9C3C63ECC2D55417E7BAC3032945041C8D4FE21C62D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979690 - 3173727
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -33 </desc>
+<a>
+01060000000100000001030000001E000000A002000040E3E97C6C975041AC419793082F55412BA2AB836D975041B61686F6012F5541E1178CCF6D97504169AEBA5AD12E55417790392E6C975041AD8A32CBC12E5541E2D65D9F649750417D69D369A32E5541AE4066BB5F975041DD9DE1A08D2E5541B70843A85D9750415F22672F912E55415EAD3BEA589750415F7DCA08892E55419B66739453975041633C9CD87F2E55410B1A111952975041F2A233FD6F2E5541C08FF16452975041FB6A10EA6D2E55415F11AAE0579750416BBA3F786D2E55414778E5E95497504144ABF6505D2E554130DF20F35197504144ABF6505D2E5541CEBB3C484F9750418EEBDCB74C2E5541509B25B04A975041225B7FF9432E55411DAACAF24D975041B76FBE61432E55416834EAA64D9750415E14B7A33E2E55410A7574F249975041CB63E6313E2E5541622BDF8946975041B280E8ED2A2E5541F8D60A8DFB9650419894DF8C102E554170497AE1F0965041A15CBC790E2E55419469ED94E89650417B97AC9F0E2E5541535D7180D696504193307196112E5541DA268BED9E9650412786DE2E1A2E554105312FA663965041B477DDD0232E5541C1E3846148965041ABE723F7272E55410EE33C982E96504174925A432C2E55411661E0371C965041D6B53EEE2E2E554152757BBB0E965041DF7D1BDB2C2E55415FFC29780396504182BEA526292E5541AEEAB7220296504194F3FB262D2E5541BCBB9F2C07965041CDED6101312E55417BF95C6505965041E48626F8332E554184C1395203965041F2570E02392E5541805DCB5B04965041A9728B74412E55413F4025BB0A96504147F443F0462E5541AB24B9CF1C96504180AD8D6C542E5541112C60EB1396504180AD8D6C542E554168A516EC1B965041AB7C82D55B2E554113072D1A0D9650418F163BFD6F2E5541049E7F89F1955041CB4EEDAF5F2E55418A77917FEC9550417B1C27E0682E5541793317C0D7955041AB7C82D55B2E5541C8AF53EBA8955041903B7E87432E5541EE122552989550411D5C80AE4F2E5541E23ACE949B9550411B81B37F562E5541B2DA729FA89550412EA0FA6D642E5541E5CB2468BA955041636C79656F2E5541793317C0D795504105878FA9822E55416D5BC002DB955041B454C9D98B2E5541F25905CADC9550414E4D22BE942E55414F895528D7955041A3C6D8BE9C2E5541152C70A4E0955041043D194EA82E554143B1FE6ADA955041678E260CAD2E554124BA60BFCF95504149978860A22E5541870B6E7DD4955041556FDF1D9F2E55419FBB1BF8CD95504112F03C3A9E2E5541119B19D1C19550410618E67CA12E5541BA2163D0B99550411CEDC6C8A12E554100579F11AD955041CE95CD27A42E55416F80038DAE955041FC1A5CEE9D2E554118074D8CA6955041771C17279C2E5541099E9FFB8A955041C74EDDF6922E554132B70AC06C95504172B0F324842E55411CE229746C9550413DE4742D792E5541FC0FBF99689550419813C58B732E55411EBDF6A265955041FD1A6CA76A2E5541AF93922764955041AA574F04552E554197E3E4AC6A955041083D39C0412E5541AA022C9B78955041504D42302E2E5541E7F067F28D95504142BF61CE0B2E5541810E04616A9550413C78719DFA2D5541C568737364955041F81D028B002E5541234E5D2F519550414850C85AF72D5541CCD4A62E499550413356B43DF02D5541EF81DE37469550414850C85AF72D5541A4E07EF43A9550414850C85AF72D5541BF46C6CC269550411BA606C3F62D55414620D8C221955041ABA1D518FC2D5541D0AF83160F955041021B8C19042E55419DBED14DFD945041A5106F8C102E5541C146D685F3945041333171B31C2E5541B9241926E9945041B82FB67A1E2E55414AFBB4AAE79450411B81C338232E5541FAC8EEDAF0945041D8012155222E5541C146D685F3945041B654E94B252E554168F25256F294504192CCE4132F2E554137B72A3206955041A7C6F830362E5541F25CBB1F0C955041EDFB3472292E55411B51E3591A95504192CCE4132F2E5541DF1831A72A955041389D94B5342E5541D08A408C3B9550412AEA70C93E2E5541A4E07EF43A9550416191BCEF422E5541DE3D647831955041833EF4F83F2E5541189B49FC27955041CA29BADE582E55411A76162B2195504194826EB8542E5541AE024C0D12955041B70A73F04A2E55414D8C0B7E06955041AFE8B590402E554167178627F994504116F05CAC372E5541E7A9A7ECE2945041EDFB3472292E55419852AE4BE59450411B81C338232E5541CDD4C6A0E2945041DBDCED831B2E55415689A5C5D69450411F375D96152E5541840E348CD094504157B975EB122E55417A11AAFDCC945041C09BE935032E554115E5CF10CF9450415E25A9A6F72D55414C8C1B37D394504197A7C1FBF42D5541A074713FCD94504110DE9846F42D5541C5475EE3B3945041FA86B11EE82D55415AF3EDA2A5945041FCC87CB6F02D5541C66C7C378294504163E322C1DB2D5541CE89FD7D7F94504165426F9FE12D55418EA190F5809450412FD6CF3BE62D554169CEA3519A9450416242D3F3F52D55418F5F8D06A1945041763A6E3DFC2D554121C9B5829E945041122064DEFC2D554182C676F27794504181578B2FE52D55413DC124CF679450418815C097DC2D55415877F48065945041197FE813DA2D5541D9A61A7068945041984FC224D72D55416810A7407A945041D3D84623E42D554197BE113C7E945041369404A4DD2D5541A95760A77E9450413435B8C5D72D55416810A7407A945041E871313AD02D5541AEB64831709450414B2DEFBAC92D5541D18999296B9450411C7F84BFC52D55410855856B6C945041FF69682FC22D5541C04F979C7094504136355471C32D5541C2AEE37A76945041A5CB2BF5C52D5541702D288777945041DA37CB58C12D55413F2071AD6D945041223DB927BD2D554141200D59599450414F8CD744BB2D5541EA816CCA48945041A10D9338BA2D55419F1D321D47945041785F283DB62D55416035C59448945041076A04DBAD2D55413B0328BE479450417A5FC4E8A12D5541A6DB66853E945041724243A2A42D554102D9EF9D40945041A1F0AD9DA82D55411FEE0B2E449450413E35F01CAF2D5541706FC7214394504113451EDEB62D554175CEAFAB34945041EAB3987DC42D5541C5F01EC12D945041BB052E82C02D55414D3D62A219945041CB9EE041D52D5541E30573A8089450410F45E686DF2D5541559CE6D7F69350413F529D60E92D5541C891A6E5EA935041B047C1C2F12D55419525A32DDB935041203DE524FA2D5541F8E060AED49350419591F110F42D554141459B5BD69350414B2DB763F22D554139281A15D993504137351C1AEC2D554193C6564FD59350418F740C76E22D5541C932F6B2D0935041544A38AAEF2D55418EA971B4C3935041EC71958EE42D554127301B77BE9350413C9404A4DD2D5541635AEF42B1935041D4BB6188D22D55417DB17216A9935041FD4CE7E8C42D55418EEB74A3A3935041D91A4A12C42D5541D232CAB593935041B1E81090D72D5541C29917F67E9350414FCEA2DCC32D5541C29917F67E9350410E87E975BF2D5541D9914EEB70935041F6D0B56FAD2D5541A684FB657B93504178A12B2C962D554120F6ECEC869350411EA43EBF7F2D554120F6ECEC8693504166A92C8E7B2D55415103A4C690935041B92AE8817A2D5541B77CFA0396935041043072FC612D55410B5D02D69A935041E979A24A642D5541D84FAF50A5935041D1C36E44522D5541506254F9AA9350417367994D4A2D554152C1A0D7B09350413EFBF9E94E2D55419108BE92C9935041B7AEEE5F3A2D5541065DCA7EC3935041B54FA281342D5541350B357AC7935041EBBB41E52F2D5541091B633BCF935041CEA625552C2D554155DEE9C6D6935041A7153CA0252D554191C6BAA3E99350418B5FD0423C2D5541DBCB441ED19350412A035FA0482D55413B8766F3DE93504184004C0D5F2D5541BE15D9C0E7935041F037D7B25B2D55419B4288C8EC935041AFF01D4C572D554114552D71F29350414AD613ED572D5541533D9AF9F0935041BBCB374F602D5541B9B6F036F69350415ECEAE365E2D55418C67D219F8935041EA79A24A642D5541F99E5DBFF4935041B66C4FC56E2D554112F6E092EC93504170C6ADD4782D554145033418E2935041D89E50F0832D554129EE1788DE935041B5CBFFF7882D5541589C8283E2935041D2E01B888C2D554135C9318BE7935041EA964F8E9E2D55417DCE1F5AE393504106AC6B1EA22D5541B4990B9CE49350412D3D55D3A82D5541A35F090FEA93504123C187AEA52D55419B4288C8EC935041526FF2A9A92D5541533D9AF9F09350418DF876A8B62D5541F3E02857FD93504166678DF3AF2D5541756F9B2406945041AE6C7BC2AB2D55416FB166BC0E9450416D25C25BA72D5541B2576C01199450410FC9EC649F2D55418F841B091E945041D13FCCBAA62D5541A21D6A741E945041C564B2B79D2D5541C64F074B1F9450416F255E07932D55419900E92D21945041887CE1DA8A2D554191E367E723945041ADAE7EB18B2D554187679AC220945041FAD0511B992D554175CE4B57209450412D3D55D3A82D5541A21D6A741E94504166678DF3AF2D55418F841B091E9450419F91C513B72D55415A187CA522945041E796B3E2B22D55415C77C88328945041A54FFA7BAE2D5541DE053B5131945041F6716991A72D5541742DFC893A9450413D775760A32D554192A164F84394504133FB893BA02D554167B192B94B94504173E3F6C39E2D55419E7C7EFB4C945041A84F96279A2D5541E6816CCA48945041D59EB444982D5541483D2A4B429450419ED3C802972D55415FBE0A903A945041BE13960B912D554141FA1C2C2A9450417897CD8B822D5541DB47A29425945041B5CBFFF7882D55410897C0B123945041E21A1E15872D554187679AC220945041861D95FC842D55410897C0B1239450418E3A1643822D5541E47F77E527945041B6C611947F2D55418170CD181894504160F515FA6A2D55410EF6A83B1594504149D677416C2D55414AA9769E0D9450415500C414612D55413C7C9F55E9935041CE4C743E2E2D5541CCB8E5B0A99350419AAC197BE52C55416DFB3E1097935041F33F801AC72C55416020250D8E93504124EE86C1B62C5541657F0D977F935041AEDB7DC49C2C5541998C601C75935041854AF863AA2C554132130ADF6F9350412D0B0808B42C55414DC9D9906D93504180EB0FDAB82C55410EE16C086F93504114B48434BC2C5541687FA9426B935041A9DB456DC52C55415E03DC1D68935041E464CA6BD22C55416E3DDEAA6293504152FBA1EFD42C55412DF624445E935041D58914BDDD2C5541FE47BA485A935041D947AD79E92C5541C71D8228539350419E7C258CFC2C554160A42BEB4D93504198BEF023052D554154C911E8449350411230E2AA102D554101E90916409350419F3A229D1C2D5541E6323A6442935041CEE88C98202D5541779C62E03F9350411AAC1324282D5541B784CF683E9350419C3A86F1302D5541650314753F9350418C008464362D55412E3828333E93504117AC77783C2D5541024856F445935041C52ABC843D2D55419E2D4C9546935041FCF5A7C63E2D55415F45DF0C48935041E39E24F3462D55418DF349084C935041CCA6EDFD542D554133550DCE4F9350418F1DCD535C2D55413DD1DAF2529350419D5733356B2D5541241B0B4155935041CFC336ED7A2D5541B884CF683E935041810014B6872D5541AE0802443B935041A891FD6A8E2D5541A48C341F389350414DF3C030922D55418777188F3493504176E3F6C39E2D5541B4C636AC3293504182BE10C7A72D5541EBF0D2204E935041ADAEE205A02D5541C81D82285393504111289D97B92D5541E4329EB8569350418B998E1EC52D554178FB12135A935041C4C3C63ECC2D5541713DDEAA629350417E1D254ED62D55414E6A8DB267935041A5AE0E03DD2D554125D9075275935041C581C34FEC2D55414E288AC3879350411D2064DEFC2D554166DEBDC999935041476FE64F0F2E5541C2DB46E29B935041AC89F0AE0E2E554160208961A2935041875753D80D2E5541D8322E0AA89350413DF3182B0C2E554124F6B495AF935041AA2AA4D0082E554182528A8CB7935041F22F929F042E554159C1042CC5935041A66C0B14FD2D5541DB4F77F9CD9350412D5A666BF72D55419C670A71CF935041253DE524FA2D55416DB99F75CB9350410A871573FC2D55411F97CC0BBE935041DF964334042E55415D20EDB5B693504185F806FA072E554163DE211EAE935041D9D80ECC0C2E554120381CD9A39350416CA18326102E5541DD911694999350413F526509122E5541486A555B909350413F526509122E5541B3429422879350417F3AD291102E55419CEBACFA7A9350413DF3182B0C2E5541BD5FB114709350410E45AE2F082E55413972F268619350411F7FB0BC022E55411AFE89FA5793504154EB4F20FE2D55417DB9477B519350419CF03DEFF92D554183777CE348935041755F543AF32D554183777CE348935041C38127A4002E5541F0AE078945935041088779C7102E5541CF3A036F5093504151EBB374122E554193102FA35D935041648402E0122E5541A14A95846C935041AEE83C8D142E55415387724D799350416E00D004162E554169DE597585935041CAFD581D182E55411ABCEA5F8C935041777C9D29192E55415B03A4C690935041219CF9AB282E5541CA997B4A9393504112C143FD332E5541269704639593504149EBDF714F2E554153E6228093935041A747B568572E554113FEB5F7949350417AF8964B592E55419FA9A90B9B9350415F42C7995B2E5541E14FAF50A5935041458CF7E75D2E554186B17216A9935041B422CF6B602E5541D015ADC3AA9350415A849231642E5541DCF0C6C6B393504187D3B04E622E5541151BFFE6BA93504122B9A6EF622E55417B945524C0935041996CFFB9622E554161DE8572C2935041B6811B4A662E5541F4A6FACCC5935041AD649A03692E5541235565C8C9935041A3E8CCDE652E55411C973060D2935041EBEDBAAD612E554166FB6A0DD49350413B102AC35A2E554195A9D508D89350412877DB575A2E554143281A15D993504155C6F974582E55419F25A32DDB9350415C842EDD4F2E554172D68410DD935041488C9393492E554133EE1788DE935041CBBB552E382E55419E25A32DDB935041DF544045242E55414A459B5BD6935041BBC3F23B092E5541C615D9C0E79350411C2064DEFC2D5541F981DC78F79350412BFB198DF12D5541EF64BF860E945041CB3FF8B7E32D55419F4250711594504101AC971BDF2D5541C6D339261C9450413618377FDA2D5541B5993799219450416B84D6E2D52D5541B7F883772794504117A4CE10D12D5541828CE4132C945041C4C3C63ECC2D554196847F5D32945041AFCB2BF5C52D55414C7FF5E24A945041DA1AAE66D82D55414162D8F061945041DF379301EA2D55412C6A3DA75B945041BD644209EF2D5541CE0D68B053945041A40DBF35F72D5541F281087634945041590835BB0F2E55411A5591C506945041369494F52E2E5541EBA626CA02945041C13F8809352E55417D104F46009450410C030F953C2E5541D7AE8B80FC9350412B777703462E55416FD6E864F1935041F8C8705C562E5541095D9227EC93504185D3B04E622E5541FFE0C402E99350418991490B6E2E5541904AED7EE6935041F169EC26792E55412055C91CDE935041C7D866C6862E5541603D36A5DC935041F686D1C18A2E5541BADB72DFD8935041E4ED82568A2E55414B459B5BD69350416D3A2A8C8A2E5541D5914291D6935041139CED518E2E55415EDEE9C6D693504194CB1341912E5541BADB72DFD893504115FB3930942E5541D6F08E6FDC935041CDF54B61982E5541BC3ABFBDDE935041EA0A68F19B2E55412AD19641E1935041D9D06564A12E5541101BC78FE3935041AEE09325A92E55417435D1EEE29350412F10BA14AC2E5541BE990B9CE49350419DA69198AE2E5541354D6466E49350410320E8D5B32E5541516280F6E79350414D842283B52E55414945FFAFEA9350414FE36E61BB2E55410A5D9227EC935041BE7946E5BD2E554153C1CCD4ED935041115A4EB7C22E5541F7C343BCEB9350419C0542CBC82E5541ED477697E8935041F0E5499DCD2E5541C815D9C0E79350417115708CD02E5541241362D9E99350417115708CD02E554178F369ABEE935041F902CBE3CA2E554167B9671EF4935041653A5689C72E5541F0050F54F4935041AD3F4458C32E55418CEB04F5F49350413C4A20F6BA2E55417BB10268FA935041F9A31AB1B02E5541E8A626CA02945041B69EC88DA02E554173521ADE08945041BD5CFDF5972E5541507FC9E50D9450418432C5D5902E5541818C80BF17945041920D7B84852E554127EE43851B945041C71ACE097B2E55415EB92FC71C945041A64719BD6B2E5541C43286042294504190F031955F2E5541A15F350C27945041783AFE8E4D2E55419BA100A42F945041A32AD0CD452E55410B972406389450416A0098AD3E2E554180A9C9AE3D9450419F0DEB32342E55416C6F2B765794504194D320FD102E5541D6A61A7068945041FBEDC607FC2D5541CE8999296B9450415F08D166FB2D55418FA12CA16C945041A96C0B14FD2D55415418A8A25F945041B1E83C8D142E554114303B1A61945041CDFD581D182E55418D42E0C2669450418E15EC94192E5541A03A7B0C6D94504121DE60EF1C2E55413620395696945041B047EDBF2E2E55417525EFCDBA9450418E3235843F2E554103EE2BD1E6945041CB1A0661522E554157CE33A3EB945041857464705C2E554176429C11F5945041C55CD1F85A2E55411F62F89304955041D39637DA692E5541D19ED55C119550412BD62736602E5541F82FBF1118955041F2ABEF15592E554127DE290D1C95504173DB15055C2E55415C4AC97017955041ECEDBAAD612E5541A2F06A610D9550412F94C0F26B2E554129DEC5B807955041C25C354D6F2E554198749D3C0A9550415625AAA7722E5541D9BB56A30E955041C4BB812B752E5541817C664718955041DF7151DD722E5541FA8E0BF01D95504193AECA516B2E5541B2891D212295504193AECA516B2E55414552927B25955041B0C3E6E16E2E55414552927B2595504168BEF812732E55418D57804A21955041749912167C2E55414C10C7E31C955041C61ACE097B2E55412FFBAA5319955041D0969B2E7E2E5541E59670A61795504176F85EF4812E554135B9DFBB10955041C1BBE57F892E55416208FED80E95504132B109E2912E5541EC54A50E0F955041F427E937992E5541BDA63A130B9550412535A011A32E55414594956A0595504103624F19A82E5541C72208380E955041C7377B4DB52E55410F28F6060A95504189AE5AA3BC2E55414494956A0595504175B6BF59B62E55416F8467A9FD9450416EF88AF1BE2E5541B52A099AF3945041E9697C78CA2E55419FD32172E7945041ABE05BCED12E554114282E5EE19450419DA6F5ECC22E5541C864A7D2D9945041B49E2CE2B42E5541E1BB2AA6D1945041E64C3389A42E554172255322CF9450414A673DE8A32E5541CDC38F5CCB94504130B16D36A62E554102302FC0C6945041962AC473AB2E55414A351D8FC2945041BDBBAD28B22E5541923A0B5EBE9450413F4A20F6BA2E5541B8CBF412C594504152E36E61BB2E554139FB1A02C8945041372D9FAFBD2E55415E2DB8D8C894504177150C38BC2E5541A074713FCD94504189AE5AA3BC2E5541048F7B9ECC945041BABB117DC62E5541586F8370D1945041663A5689C72E554173255322CF945041D98EC6C9D52E5541D0812819D7945041083D31C5D92E554176E3EBDEDA9450416EB68702DF2E55415E2DB8D8C89450416BB6EB56F32E5541188716E8D2945041D12F4294F82E5541A074713FCD9450417B4F9E16082F55413E77B0CFF3945041CAD0BD5E1B2F5541E4D87395F7945041396795E21D2F5541A64F53EBFE9450415D9932B91E2F5541790035CE009550419305D21C1A2F5541A8AE9FC904955041B479D6360F2F554121C144720A955041163594B7082F554119A4C32B0D955041675703CD012F55417DBECD8A0C955041DBAB0FB9FB2E554112E68EC315955041591D9DEBF22E5541B2891D21229550411C35CC0EE02E5541A14F1B9427955041F6A3E259D92E5541ED12A21F2F9550418ECB3F3ECE2E554138D628AB369550414B253AF9C32E5541036A89473B955041B39E2CE2B42E5541A9CB4C0D3F955041CCF5AFB5AC2E554136D68CFF4A95504187F05D929C2E5541B864FFCC53955041605F74DD952E55419F0D7CF95B955041F069507B8D2E5541C69E65AE62955041386F3E4A892E5541C0E030466B955041C9D866C6862E5541D4D8CB8F71955041386F3E4A892E55413235A1867995504179B6F7B08D2E55417EF827128195504196CB1341912E554109A41B26879550410462EBC4932E554136F33943859550410EDEB8E9962E5541F24C34FE7A9550417199766A902E554167A140EA74955041F069507B8D2E5541265A87837095504181D378F78A2E5541FFC89DCE69955041386F3E4A892E5541197F6D80679550416F3A2A8C8A2E55415967DA086695504154845ADA8C2E5541757CF69869955041D5B380C98F2E554177DB42776F955041A86462AC912E55418157109C72955041B2E02FD1942E5541D537186E7795504121770755972E554121FB9EF97E955041EB0A68F19B2E5541FE274E0184955041BEBB49D49D2E554164A1A43E89955041D154983F9E2E5541E5D0CA2D8C955041B69EC88DA02E55419DCBDC5E90955041A564C600A62E5541707CBE4192955041F944CED2AA2E5541CA1AFB7B8E955041A7C312DFAB2E55413F6F076888955041F944CED2AA2E554107A41B26879550419FA69198AE2E55413E6F0768889550418E6C8F0BB42E55411120E94A8A955041B5FD78C0BA2E5541B781AC108E955041C9F5130AC12E5541AF642BCA90955041306F6A47C62E5541FF869ADF899550418C6CF35FC82E55419FCB780A7C95504129B135DFCE2E5541DFB3E5927A9550417B32F1D2CD2E5541142085F675955041560054FCCC2E5541498C245A71955041F2E5499DCD2E55416442F40B6F9550413C4A844ACF2E5541A52A61946D9550417574BC6AD62E55419BAE936F6A9550412B1082BDD42E55417E9977DF66955041870D0BD6D62E554134353D32659550419289D8FAD92E5541F3ED83CB609550410020B07EDC2E55414751FA6B61955041F8EDD6CCDE2E554110F1858463955041C28D62E5E02E554110F1858463955041756D8CD4E32E55413191984262955041138D549AE72E55419371D07C5E95504108ADA305E82E55410B126AE059955041BC8CCDF4EA2E55419371D07C5E955041658C464FEE2E5541EA7157225B955041F7CB5D80F22E5541AF32C796539550416A6B62F3F72E5541681386764C955041BB6A54A8FE2E5541D5D36E454895504195EB2546F62E5541F6738103479550418A0B75B1F62E55414D7408A9439550411D4B8CE2FA2E5541E6B4B4CA3D9550414EAA6BD9022F55414895EC043A95504189E9FB640A2F55411235781D3C9550410669B16C0F2F55418FB42D25419550416E28054B152F55412DD4F5EA44955041F6876BE7192F554173F3360B4C95504147875D9C202F554178D252AF559550416D068CFE282F5541B411E33A5D955041EA8541062E2F55412B9003526C9550410425BFD3362F5541E34E49E578955041D9A4FB80382F5541F8EC31C28B95504177C4C3463C2F55419885AA46D4955041030346874A2F5541418523A1D79550412F8309DA482F5541F5644D90DA9550419C43F2A8442F554104241AC9E3955041E0C709BE1A2F5541C3E3F44CE69550416E28054B152F55414063AA54EB9550411C2913960E2F55410F04CB5DE3955041C049704C082F554156230C7EEA955041078B2AB9FB2E55410903366DED955041E7EA17FBFC2E554191629C09F2955041BB6A54A8FE2E554119C202A6F6955041078B2AB9FB2E554160E143C6FD9550418A0B75B1F62E55416BC1F45AFD95504102AC0E15F22E5541CB7C22240296504159F27632E62E554111A3D3E102965041B50C50C0E12E5541B9EC684A069650416115B7F8DB2E5541772A26830496504140B41515DB2E5541F04132FE01965041A73B68B6DC2E554169593E79FF95504100976F74E12E5541EB3827E1FA955041C841A6C0E52E5541F40004CEF89550418BE3D1EFE22E5541840C3819F1955041667925EFDA2E5541BC6101CDEC955041996A80ACD72E55410188B28AED95504157A83DE5D52E554130BA3B78F3955041529F32C8CE2E5541E7D4B8EAFB95504128D117D1C72E5541041C25250E965041C96C05F6BB2E55414F4BE1FF1596504100C2CEA9B72E554159B85A131C9650419E9EEAFEB42E55410102F07B1F96504175756C2EB62E5541B677D0C71F9650416749214BB92E5541C8078AA11B965041EE3115D0BB2E55417410F1D915965041262C7BAABF2E5541D68E385E10965041149CC1D0C32E554178CFC2A90C9650414C9627ABC72E55415CD28FBC0A9650413E6ADCC7CA2E5541041C25250E96504119A5CCEDCA2E5541823C3CBD12965041010C08F7C72E554187A0AAB3119650415FCB7DABCB2E5541663F09D01096504107151314CF2E5541ED27FD5413965041C552D04CCD2E5541F794766819965041BCE55639C72E55411DFF226921965041B278DD25C12E554114DCE2A22B965041751A0955BE2E554106B097BF2E96504183465438BB2E5541DD8619EF2F965041BA9B1DECB62E5541CFFF6A323B96504166FFE7FDA82E55411EEEF8DC39965041243DA536A72E554193A1966138965041F6AFB86FA92E55413A468FA333965041BE5AEFBBAD2E55419BC4D6272E9650419995DFE1AD2E5541CEB531E52A96504182FC1AEBAA2E5541271139A32F96504129A1132DA62E5541101D11D33496504161F6DCE0A12E5541CFFF6A323B96504199F042BBA52E554198AAA17E3F965041D54E178CA82E55410E03DC2946965041BDF680C5AE2E554195EBCFAE489650412D46B053AE2E5541912CFEDE5196504169FFE7FDA82E55418D6D2C0F5B9650417C8FA1D7A42E554118BA8E8A5C965041772B33E1A52E5541C56792E95E965041A65DBCCEAB2E55415A7CD1515E96504161DCA737B32E55417679043F60965041AB66C7EBB22E5541062AD5B06096504178756C2EB62E55418D12C93563965041D1D073ECBA2E5541278B769461965041E405CAECBE2E55417F41E12B5E9650414FF18A84BF2E55418D6D2C0F5B965041DB3DEDFFC02E554183A54F225D965041D6D97E09C22E5541195F2BB164965041B1146F2FC22E5541A0471F366796504138FD62B4C42E55417B820F5C679650412AD117D1C72E554156BDFF81679650417EC8B098CD2E55419CE3B03F6896504163701AD2D32E5541AAB498496D965041DC2CC373D92E55415BC60A9F6E9650410B5F4C61DF2E5541808B1A796E965041F46A2491E42E5541648EE78B6C9650416E27CD32EA2E55419F884D6670965041130DF4A4EE2E554196C0707972965041FC18CCD4F32E55418DF8938C74965041C5689F47002F5541673384B274965041F9A333520D2F55411845F60776965041F2CA2CD9272F5541220DD3F473965041A92FE398402F55412D391ED87096504112B7353A422F55414991B49E6A965041D6FDFD8F472F55411A5F2BB1649650410A94F5734C2F5541993E141960965041E76A77A34D2F55411615F263549650418FB40C0C512F55417CF7A7DE4D965041D5DABDC9512F55415F55D8CA439650411B016F87522F5541AE9EC94E3A96504186EC2F1F532F55411DEEF8DC39965041C34A04F0552F554134E220AD349650419D85F415562F55415E0B9F7D339650415CC3B14E542F5541CE5ACE0B33965041A74DD102542F5541F27A41BF2A965041EC7382C0542F5541E90DC8AB24965041B9822703582F55415DC1653023965041200A7AA4592F55416125D426229650417401136C5F2F55410002F07B1F9650413848DBC1642F5541BE3FADB41D9650415EB287C26C2F5541BADB3EBE1E9650418880A2B9732F55416689421D21965041B34EBDB07A2F554154F988432596504151D0752C802F55419F28451E2D96504110B3CF8B862F554150DF539A36965041CB31BBF48D2F5541CA9BFC3B3C965041737B505D912F5541192F270D43965041A163A0FD862F55415C8FC2454696504152B81EA5882F5541CDCCCCCC4F9650417B14AE078E2F55415C8FC2F5519650419A9999998B2F55416666667659965041E17A14FE8F2F554185EB5148589650417B14AEB7912F5541A4703D0A6C96504185EB51C89C2F55411F85EBF16B9650410AD7A3F09D2F5541C3F5289C7D965041F6285CDFA72F5541A0A656BD81965041B03EF1F6A52F554194CEFFFF84965041214322A1A02F554160B80AAD9F965041A81C34979B2F554194A9BC75B19650415BA00725972F5541F16963A7CA96504195FDECA88D2F5541EEB3C949D89650414981C036892F55414177E6ECED96504161316EB1822F5541071A0169F796504114B5413F7E2F5541AB0FE4DB0397504185B972E9782F55417BAF88E6109750415AEA7D80712F5541F91C6721279750415CA017DE632F5541023F2481319750416A533BCA592F55412A334CBB3F975041BC60CEC8492F55412A334CBB3F97504100BB3DDB432F55412036C22C3C9750417BBCF813422F5541360BA3783C97504171BF6E853E2F5541145E6B6F3F975041739A3BB4372F55413530D64943975041C3CC01842E2F5541492AEA664A97504113FFC753252F5541AC7BF7244F975041D35AF29E1D2F55410FCD04E353975041C85D68101A2F5541843D598F66975041E00D168B132F554140E3E97C6C975041AC419793082F55410600000092DBD99D88965041E8B21838632F55416274E40486965041B52145C9622F55412FE3109685965041BB7501755E2F55417762861E10975041CF9B144E4F2F5541AAF3598D109750412F6AFF7F542F554192DBD99D88965041E8B21838632F5541B0000000A012F4703E975041A588DB60482F5541195BAE27309750415FD1F418572F5541F8C50FBC22975041B52145C9622F5541A49F9DE114975041DD0AA0E06B2F55411DE85798069750419ED1531A742F55414B883AF6E39650419329DBC27C2F554176FE3E7EC3965041EDA30949862F5541F8C493B6AE96504119E1200C8B2F5541D4051775A396504119E1200C8B2F5541E3D76DA298965041B4BE792E8A2F5541F4D3A2A58B9650411F35DDB7862F55418100169C809650411F23F4F97C2F554193906C62789650413F30E188742F5541BD0730BC77965041921E683C732F554110F6B66F76965041CF472D44762F5541C64F5B9F7396504139FB75A3702F5541C64F5B9F7396504188B491716B2F5541E249883073965041BB7380AE662F55415FAFD23D71965041B109AAE35E2F5541A520C328709650411688875D552F5541193EE25272965041F02384014E2F554164E43D2375965041EBEE181C4A2F55415667A75A759650419B135266432F55411E734D38769650416B45783F342F5541AF8A99F37796504165EE6172242F554108F2E15B92965041545E0BAC2C2F55418A6AEC6688965041408A5E161D2F55419BFA422D809650415E75A0BD082F5541F830F5C37A965041BD9C676AEF2E5541017920A7769650419F5EE409D82E554134380FE471965041F12AC0D5CA2E55417252E901619650410ED2ABAD9E2E5541DD0532615B965041FAFDFE178F2E5541E118F25E53965041EA5EBD67832E5541901B80C140965041CC203A076C2E5541E6FA1B8B2B9650413EFA0262562E5541ABC26B99149650416A62DBD1412E55414500385006965041C02EB79D342E5541C89AED42089650418305F295312E5541C4DA6EFE3B965041960A35FD602E554173303E1A559650416BC40775812E55418B17ABAD5C965041F7C893328B2E5541DBF271636396504127976D599A2E5541916EC17A6C96504147D5F0B9B12E554142B5A5AC7196504123B5432DC22E55417161D4EB7496504169263418C12E5541AE8A99F3779650413B9CB0C0C92E554147EA10927596504194BFA259CC2E554106AE8B8C7A965041FC81D6A2DA2E55415FD17D257D965041CBE4924DEB2E55416406E90A81965041B00C11A4F72E55416406E90A81965041139AD907022F55413FC490968596504122391BB80D2F55410D05A2598A965041EC666C7D1A2F5541CCC81C548F96504186E88E03242F55418B8C974E94965041F2BD824A2A2F554196F66D199C965041239F1C6F312F5541E6D134CFA2965041F0DF2D32362F554172D6C08CAC965041BE203FF53A2F5541CBF9B225AF965041916525CC232F55416DF49660D49650413A64DE1A2D2F5541E211B68AD696504164DBA1742C2F55415851809CE49650418F7410B6372F5541D6D87591EE96504198BC3B99332F5541C73934E1E2965041227D7187252F5541BF13B4E5F2965041BFEFA8231B2F554142AE69D8F4965041ED792C7B122F5541C4481FCBF69650410974590C122F55416D47D81900975041BABA3D3E172F55413CAA94C410975041068344F6252F55415DD92C3B1497504187FB4E011C2F554117683C5015975041584F20C2182F554157A4C15510975041998BA5C7132F554117683C5015975041BECDFD3B0F2F55413897D4C618975041C3026921132F5541608759D533975041272A30CEF92E55417EC5DC354B975041BA32919FE72E55413854EC4A4C9750416B57CAE9E02E5541573F2EF2379750414806878BD12E5541E1FF63E0299750412E2E05E2DD2E5541CE4D6232269750410DFF6C6BDA2E55410C99D221359750410BDDC183CE2E5541967BB3F732975041860DA1ABC82E5541E434CFC52D975041C74926B1C32E5541D6B738FD2D9750410786ABB6BE2E5541F2B1658E2D975041CB5CE6AEBB2E55410FCE3D0739975041C0F20FE4B32E55413E7A6C463C975041438DC5D6B52E5541F0C05078419750410A77C0CCAA2E5541979D5EDF3E975041E9472856A72E5541A0E589C23A9750415830DC9AA52E5541C527E23636975041D160BBC29F2E5541766EC6683B97504186BA5FF29C2E55418A4273FE4A97504173085E44992E5541919989CB5A975041F06DA851972E55417AD4C71F5F9750419EA1CC85A42E5541D2F7B9B8619750412DEAAE12C62E55411456EAA56897504165DE0835C52E55412B501737689750416EF23686082F554175D4C71F5F9750410C87190A0A2F55414506EEF84F9750414068B32E112F5541143814D240975041B172125B1B2F5541088AE73721975041027084F82D2F5541C5090C630E9750410CDA5AC3352F55412D57530BE5965041BB42EADC462F5541D4336172E296504168546329482F554184589ABCDB9650415AD7CC60482F554191B3859DCF965041844E90BA472F5541A443DC63C7965041D53C176E462F5541CF8909ECA6965041F44904FD3D2F5541FD138D439E965041198C5C71392F55412EB1D0988D965041F13644FF452F5541457692448996504120E3723E492F55418BE7822F88965041814E90BA472F55410C608D3A7E965041CCF4EB8A4A2F5541FEE2F6717E965041B52F2ADF4E2F5541B43C9BA17B96504138CADFD1502F5541072B22557A965041D65EC255522F554131A2E5AE79965041B651D5C65A2F55417C48417F7C9650412C919FD8682F554104608D3A7E96504112014912712F5541E01D35C682965041C3472D44762F554183E7822F88965041F2F35B83792F554110EC0EED91965041AD826B987A2F55418E7304E29B965041AD826B987A2F5541CDBE74D1AA965041DF415AD5752F55413DC9D3FDB49650412EFB75A3702F5541632DD759BC965041D5D7830A6E2F55418EC6459BC7965041FF4E47646D2F55416FB9580CD09650413743A1866C2F554120003D3ED596504145C0374F6C2F5541EC1EA319CE965041D5D7830A6E2F554123F15154C1965041207EDFDA702F55413481A81AB9965041E88985B8712F554138946818B1965041A84D00B3762F5541F100CD45A6965041CEB1030F7E2F5541323D524BA196504163FEBAAF832F5541F5138D439E965041303FCC72882F5541FF7D630EA6965041F94A7250892F5541EDED0C48AE96504122C235AA882F5541EDED0C48AE9650411D8DCAC4842F5541E8B8A162AA965041D81BDAD9852F5541CDBE74D1AA965041B7EC4163822F554179D0ED1DAC9650416C46E6927F2F5541620B2C72B09650417AC37C5B7F2F554167409757B4965041884013247F2F554119877B89B99650415994E4E47B2F5541103F50A6BD9650410071F24B792F5541601A175CC4965041A84D00B3762F5541400D2ACDCC965041D1C4C30C762F554120003D3ED596504125B34AC0742F5541FCBDE4C9D99650416B243BAB732F5541B11789F9D69650411C6B1FDD782F5541AFF5DD11CB965041C0346D467E2F5541BD7274DACA96504126D5F5A7802F55416A84ED26CC965041E06305BD812F5541CF550C5AEE9650417059A690772F55413F3EC09EEC965041949BFE04732F5541B35BDFC8EE9650418F66931F6F2F5541E73C79EDF5965041C75AED416E2F55412ADFFFA914975041E967DAD0652F55414B0E982018975041A3F6E9E5662F5541EED7E5891D9750419EC17E00632F55416C3D30971B97504129A45FD6602F55418E8E73F52A975041FE0AF194552F5541C682CD172A975041447CE17F542F5541F71F116D19975041C303D7745E2F5541B08C759A0E975041BABBAB91622F554161B1AEE4079750413C566184642F554161B1AEE4079750419044E837632F55412F146B8F1897504116F25D285D2F55411FA6BFB02C97504131CADFD1502F5541B0DFB6533A975041679C8E0C442F554141F7020F3C97504191135266432F55418C9D5EDF3E9750413E25CBB2442F5541A012F4703E975041A588DB60482F5541360000009673759CD1965041DD102FF72A2F55419B878928B596504158460F760F2F5541C8D19AD7B4965041D44AF742192F554118967BBBB09650418A733CFF172F5541E07B2892AD965041B6B343E8252F554114B35FE1A7965041933974B3292F5541695A5C9FAC965041F99DD88B2C2F5541695A5C9FAC9650417B8FE6F8302F55416F47823FA79650417B8FE6F8302F554192C15174A39650419E09B62D2D2F554148EA9630A2965041504FDF0F232F5541A37EB98EA1965041E5075F5D172F5541BF0B6323A39650419E3AAEDF072F5541E6684E32A8965041A427D47F022F5541609424EB9A965041A631DE45F42E5541A588C3549396504147BA9F0DEC2E554189FB19C091965041AD1E04E6EE2E5541EF5F7E98949650410C96421EF72E5541DFA2167E969650416B0D8156FF2E55418AFB19C091965041B5E43B9A002F554119C7736D8B965041634749A2ED2E5541B3620F9588965041518AE187EF2E55412F67F761929650419D3AAEDF072F55412F67F7619296504174D3B80A112F5541639E2EB18C96504181AD044B062F55413C4143A287965041613D3FDCFB2E55410327F07884965041D37BEFF4F32E55414DFEAABC859650411F5DB4FEE62E55414711851C8B965041370742B9DF2E5541EC7C62BE8B9650412C37003FDC2E554154EBD05C8096504183E806C3D22E554165A838777E96504183E806C3D22E5541375E27C87E9650414FB1CF73D82E5541FF43D49E7B9650414FB1CF73D82E5541AA9CD7E07696504112B46070CC2E554172518C05999650414FE2C725B32E554199AE77149E965041441286ABAF2E55410AE31D67A4965041050B0DE2B12E55419E9193EEA6965041C6039418B42E5541DCC9046A7F965041D3ACE7A6CE2E55410EF731F387965041332426DFD62E554135541D028D965041CDBFC106D42E554152E1C6968E965041AA45F2D1D72E554167814A8B95965041B1321872D22E5541C2156DE994965041C6D29B66D92E5541011DE6B292965041D685F9BAE52E5541E97258F8999650412440D0D8EF2E5541A861D568AA9650416B0D8156FF2E554192B747AEB1965041A427D47F022F5541646D36FFB196504105A91C7EFC2E554180FADF93B3965041613D3FDCFB2E554141F366CAB5965041A80AF0590B2F55411A658309D6965041817C0C992B2F55419673759CD1965041DD102FF72A2F55415E0000000180F3D61097504133C2357B212F55419B1B8FFE0D9750418A733CFF172F5541467492400997504158460F760F2F5541038AFD9C02975041AFF715FA052F5541487E9C06FB965041C7A1A3B4FE2E554160282AC1F39650410C96421EF72E554116516F7DF2965041E91B73E9FA2E55414F6BC2A6F59650413EC36FA7FF2E55410B812D03EF9650412C06088D012F5541898F1F96EA965041CB84BF8E072F5541F6E0A90EE896504158460F760F2F554134E822D8E59650418A733CFF172F5541EB106894E496504195437E791B2F5541CE83BEFFE2965041409C81BB162F5541D953007AE6965041039F12B80A2F5541898F1F96EA965041D171E52E022F5541FAC3C5E8F09650417CCAE870FD2E5541BBBC4C1FF3965041672A657CF62E554183A2F9F5EF9650415C5A2302F32E554134E822D8E59650412136C612FE2E554173EF9BA1E3965041D75E0BCFFC2E5541AC09EFCAE6965041FAD8DA03F92E554139CB3EB2EE9650413FCD796DF12E554159CA2EB1EB9650419EF2E036EF2E5541BEDFA6AEE2965041BB9587F6F92E5541EB0E46D6DF965041981D227DF92E5541DFE6CEADDF965041228D7AE8F72E5541CDE998CBE9965041FAC15C00ED2E554190B00787E59650411CC984FFE92E5541AED5B491DB965041AF6D10CEF92E5541456D8425DA965041981D227DF92E5541E1570C28E39650418FE8EE19E82E5541AD647717D896504180DEFCFCE02E554156F97C8DCC965041F55DDBC0FA2E5541EC904C21CB96504147761DDCFB2E554160B0B63BC9965041512D578AF82E5541EC904C21CB965041670C0861F52E55419CE94780CD965041B7B30C02F32E554138D4CF82D69650413AEE310AE02E5541BF61ADF9CD9650412C557D67DC2E5541768F6712C69650411394519CD82E55410945BCB1BD9650417B8B448ED62E5541066341BDB696504129730273D52E5541276A69BCB3965041B4E25ADED32E554104F20343B3965041791A0714D32E55418DF01E34AE96504165AC93B7D92E5541C6473584AB965041633B563DD62E5541DD9723D5AB96504162CA18C3D22E55412CCEEAFBA59650412BE43FEDD82E554194C5DDEDA3965041F01BEC22D82E5541B9AE80E1A79650412702C5F8D12E5541A3CFCF0AAB9650415EE89DCECB2E554181C8A70BAE9650415B0623DAC42E55419918965CAE965041B7D59EA3C22E5541FD2D0E5AA59650410E5262FEB52E5541A15E9290A796504199C1BA69B42E55415E504292AD96504134AC426CBD2E5541A8228879B596504153422DF1B62E5541156D33DABD965041B757A5EEAD2E5541741E2A98C29650414056C0DFA82E5541AFE67D62C396504188B7C84CAD2E5541A52F44B4C69650414056C0DFA82E55410E987420C896504194DF3F75AD2E55419907CD8BC6965041FE4770E1AE2E55410C2737A6C4965041F50174ADB52E55412CBD212BBE965041B4646129BF2E5541861B607AB896504173C74EA5C82E554190D29928B596504119691056CE2E55414AE2CE35B4965041A549A63BD02E554185AA2200B59650413D52B349D22E5541118BB8E5B69650418F6AF564D32E554159ECC052BB965041BE0AD206D42E5541F5D64855C49650413FC3F0C3D52E55414960C8EAC8965041B4539858D72E5541E3D91273CE96504158841C8FD92E554159DBF781D39650411F2D063FDC2E5541E8BB8D67D596504142A56BB8DC2E5541FAA7FA78E39650419FF6EDCCC52E5541ADE270CCEC965041C650CE3ACD2E5541BE6E6934DF965041E8462D69E22E55412948D71AE4965041E9B76AE3E52E5541DF64C862F4965041BF7B0F81D72E5541044E6B56F8965041B5C4D5D2DA2E5541174BA138EE965041C4CEC7EFE12E554136E18BBDE7965041D3D8B90CE92E5541D63C513AF496504112F4C545F42E5541DB8F09A9FE9650412F976C05FF2E55414BBC2FFE0D97504164FB3E900D2F55417CCD491A1297504189E4E183112F5541CC744EBB0F97504121EDEE91132F55413E237B5B0A9750414183D9160D2F5541D99CC5E30F9750411836B5E3162F55417DCD491A12975041CB702B37202F55410180F3D61097504133C2357B212F5541050100002BA43E2E299750413108AA7F022F55411072D5E82197504113F4C545F42E554124E048451B9750413BD0ACFEE62E5541FFF6A55117975041E7462D69E22E5541356C41AD0D975041F08C299DDB2E5541913BBD760B9750411DBCC8C4D82E55413DB23DE1069750413D52B349D22E55414216BF20F99650417BFC8108DA2E55411D2D1C2DF5965041798B448ED62E5541BE7B256FF09650412502C5F8D12E5541319B8F89EE9650414709EDF7CE2E5541319B8F89EE96504122204A04CB2E55419EE53AEAF69650412CD783B2C72E5541C9A39C97F0965041AB1E65F5C52E5541008A756DEA965041341D80E6C02E5541D64D1A0BDC965041D1890E34B52E5541468B0931D39650419F07B79DAD2E554122A2663DCF9650411CDE5A66A82E55419F780A06CA965041AF93AF05A02E5541C17F3205C7965041B94AE9B39C2E5541E2865A04C4965041AF93AF05A02E5541CB366CB3C3965041332E49B7A82E55414A7E4DF6C19650411CDE5A66A82E55414A7E4DF6C1965041C6E39D56A02E5541F9D64855C4965041E67988DB992E554183D56346BF96504174CB5B3B9F2E5541753CAFA3BB9650416A14228DA22E5541EF30D877AF96504141C7FD59AC2E55416B963EC6A6965041213113D5B22E5541022E0E5AA5965041ACA06B40B12E5541141A7B6BB39650416C855F07A62E5541D37C68E7BC9650413A0308719E2E55414A7E4DF6C19650414E717BCD972E55412706E87CC19650415828B57B942E5541A64DC9BFBF965041C01FA86D922E5541C754F1BEBC965041CB471F96922E554117FCF55FBA9650419E18806E952E554168A3FA00B8965041424904A5972E55415A0A465EB49650411238EA88932E5541A26B4ECBB8965041BEAE6AF38E2E55411DD1B419B0965041C965A4A18B2E554153465075A696504102BDBAF1882E5541DAD32DEC9D96504175DC240C872E55419001E80496965041AE333B5C842E5541EB5F265490965041C412EC32812E5541A3FE1DE78B96504159397E4C7C2E5541D02DBD0E8996504163F0B7FA782E5541FC5C5C368696504179CF68D1752E5541707CC6508496504132DF9DDE742E554150F7A49C7296504142D8C62A942E554171FECC9B6F965041C11FA86D922E55417A3300FF80965041600E3D06722E554123C8057575965041BA6C7B556C2E5541B7EE978E70965041D32DA720702E55411D754D066B9650410C85BD706D2E5541E8107B7B5C9650417F935EBA832E5541A0AF720E58965041C412EC32812E55416E1C52A76896504120F330CD662E5541C23494C269965041A8628938652E5541F8A92F1E60965041172F3BE4582E5541485134BF5D965041718D7933532E554137D604285396504185FBEC8F4C2E5541CA8B59C74A96504102D29058472E5541D1D155FB43965041F638DCB5432E5541FD8FB7A83D9650413BB8692E412E554179F51DF734965041740F807E3E2E5541F83CFF39339650418B5F6ECF3E2E55419AFC45F631965041184004B5402E55411651E37341965041FB8B94244E2E554192A580F150965041D3AFAD6B5B2E5541EE74FCBA4E965041484055005D2E5541EAA34A972F96504181A83421422E5541A4B37FA42E965041184004B5402E5541256C9E6130965041E72EEA983C2E55410658BA2722965041867DF3DA372E5541219BEC3D11965041EC03A952322E554103870804039650416ADA4C1B2D2E55414977D3F6039650419709EC422A2E5541962B94D21296504154FB9B44302E55416498736B23965041FA9C5DF5352E5541988B087C2E965041135E89C0392E55416CCDA6CE34965041B51DD07C382E55414BC67ECF37965041EE74E6CC352E55413476907E379650410E0BD1512F2E55413205530434965041997A29BD2D2E5541E0EC10E932965041528A5ECA2C2E5541D04F4FB0589650417E48C077262E55412C1FCB795696504139C932FF282E554117B1571D5D965041749186C9292E554148C2713961965041227944AE282E5541DF5941CD5F96504120080734252E5541A6022B7D62965041DA173C41242E55410F6B5BE96396504164F8D126262E55419C4BF1CE65965041CE600293272E55411E754D066B965041729186C9292E5541C4160FB770965041E7212E5E2B2E5541B0A89B5A7796504121EA81282C2E5541D6027CC87E9650410A9A93D72B2E554114AD4A8786965041B88151BC2A2E5541A18DE06C88965041D98879BB272E55418086B86D8B965041207944AE282E5541161E88018A965041B88151BC2A2E55419E9A9CA799965041F79C5DF5352E5541772FF368AA9650414DA8E3D5252E554185C8A70BAE9650414CA8E3D5252E5541D7E0E926AF965041F249A5862B2E5541A7CFCF0AAB965041D0427D872E2E55416A963EC6A696504197EB6637312E5541744D7874A3965041263D3A97362E5541E86CE28EA19650413FFE65623A2E5541E86CE28EA19650416276CBDB3A2E55410C6341BDB696504115753718522E554199320ED2D09650418C6553566F2E5541A6CBC274D4965041530E3D06722E55419E85C640DB965041D1E4E0CE6C2E554121AF2278E096504144044BE96A2E5541C5DFA6AEE296504123FD22EA6D2E5541E6E6CEADDF9650410D1E7213712E55419E85C640DB965041D4C65BC3732E5541EE2CCBE1D8965041557F7A80752E55417C7E9E41DE9650418A01D2167D2E5541011938F3E69650411DB726B6742E5541CD14DA11F49650410C3CF71E6A2E55417A09543104975041CE20EBE55E2E5541DB2B88690C97504163477DFF592E5541EA357A86139750419C9E934F572E5541A99867021D975041844EA5FE562E5541CCFF03AB359750410507C4BB582E5541ACE712DB5097504190E759A15A2E5541ACE712DB509750413418DED75C2E55414EB8226837975041A73748F25A2E55417A874DE6189750411B57B20C592E5541BC959DE41297504149F78EAE592E5541DE9CC5E30F9750419B0FD1C95A2E5541DC2B88690C97504111A0785E5C2E5541AC1A6E4D08975041B5D0FC945E2E55418731CB5904975041590181CB602E554104086F22FF9650414F4A471D642E5541D014DA11F4965041BB94F27D6C2E5541FA61FE44EA965041118FAF8D742E5541F50E46D6DF965041FE9179AB7E2E55418F88905EE59650413414D141862E55415913F502EF965041458F00D9902E5541E9D505DDF7965041A6B13411992E55410EBFA8D0FB965041EE123D7E9D2E5541D5679280FE9650414EC4333CA22E554138FB03330A975041EB30C289962E55410BCC640B0D9750416D5A1EC19B2E5541A838F358019750410BB6E33DA82E554111A123C50297504147EF7482AC2E5541C1F91E2405975041F5D63267AB2E5541D8490D750597504181B7C84CAD2E55415891EEB703975041DFF78190AE2E554159022C3207975041BF61970BB52E55417EEBCE250B975041ED903633B22E5541E853FF910C97504156F9669FB32E5541DABA4AEF089750419E5A6F0CB82E5541680C1E4F0E975041E82CB5F3BF2E5541941D386B12975041E70E30E8C62E554167EE9843159750415F815271CF2E554167EE984315975041CA5AC057D42E5541968E75E5159750419103AA07D72E5541B906DB5E169750411EE43FEDD82E55413ABFF91B189750415A1DD131DD2E5541AEDE6336169750417D9536ABDD2E5541E6357A86139750414C13DF14D62E5541C3BD140D13975041F8895F7FD12E5541A045AF9312975041DFC833B4CD2E55411F8D90D61097504197672B47C92E55416F3495770E97504143DEABB1C42E5541EE7B76BA0C9750411EF508BEC02E5541B242E575089750413E8BF342BA2E55419981B9AA04975041A411A9BAB42E5541E928BE4B0297504174008F9EB02E554145F8391500975041728F5124AD2E5541DC8F09A9FE965041701E14AAA92E5541C53F1B58FE965041B29DA122A72E5541395F8572FC965041766410DEA22E55417DDE12EBF996504174F3D2639F2E5541DAAD8EB4F79650418AD2833A9C2E5541E464C862F49650417D39CF97982E554190DB48CDEF96504140003E53942E5541EA39871CEA9650418F36057A8E2E5541DDA0D279E6965041829D50D78A2E55415A777642E1965041D0D317FE842E5541AA1E7BE3DE965041C33A635B812E5541642EB0F0DD96504165FAA917802E5541B4D5B491DB9650419229493F7D2E55413ED4CF82D6965041F8AFFEB6772E55413C639208D39650413D2F8C2F752E55419F07CD8BC696504191A742F4912E5541297725F7C49650414AB77701912E5541AF82FC22D1965041B04EF649732E554183E62C17A7965041E738DCB5432E5541022E0E5AA5965041DC10658D432E554116AD4A87869650411546E93B712E55418ACCB4A184965041C32DA720702E55416A25014CA3965041C4C0763C432E554153D512FBA2965041DA9F2713402E5541C6F47C15A19650411E1FB58B3D2E554143CB20DE9B965041CE77B0EA3F2E554135326C3B9896504159E708563E2E554162610B6395965041639E42043B2E55419D295F2D96965041612D058A372E554161F0CDE8919650413D446296332E5541F7879D7C90965041F65397A3322E5541E037AF2B90965041640F807E3E2E5541D680757D939650412BB8692E412E5541A951D655969650411F90F205412E5541874AAE569996504115D9B857442E554158AAD1B498965041E8A91930472E5541875B772781965041938DCA7E6F2E55410BF610D989965041FE663865742E5541C5E7C0DA8F9650413D1107247C2E5541A4E098DB92965041E0D04DE07A2E554182D970DC959650410E712A827B2E554103928F9997965041B2A1AEB87D2E55413CE9A5E99496504162FAA917802E5541EAD063CE93965041919A86B9802E55416CFABF059996504135CB0AF0822E55412B5DAD81A2965041FC73F49F852E55413CD8DC18AD965041B8F46627882E5541FCAB070FBA96504117A65DE58C2E55410945BCB1BD965041215D9793892E55410BB6F92BC1965041C58D1BCA8B2E5541440D107CBE965041A386F3CA8E2E5541BB0EF58AC3965041E0BF840F932E554147EF8A70C596504155502CA4942E554101EEF6ACDC96504110E267FC7E2E554148DEC19FDD965041C03A635B812E5541870A97A9D09650412EF64B368D2E55418EDF5563C6965041334904A5972E554193A34B4CD4965041E3AEBB3EAB2E55410834F3E0D596504187DF3F75AD2E55411E02DBE6EA96504178C48487BE2E55414E13F502EF9650413F6D6E37C12E554127A84BC4FF965041AA57A5EEAD2E5541717A91AB079750413B8BF342BA2E554138237B5B0A975041544C1F0EBE2E55410430E64AFF9650414E776054C82E5541FCE9E916069750410B691056CE2E5541C50311410C97504103231422D52E55412E6C41AD0D9750410494519CD82E55416BA5D2F11197504140CDE2E0DC2E5541041F1D7A179750417D067425E12E5541299782F317975041119E43B9DF2E5541BF2E52871697504190E524FCDD2E554140E770441897504184BDADD3DD2E5541FB67E3CB1A975041E46EA491E22E5541B7E855531D97504172C077F1E72E5541205186BF1E975041FEA00DD7E92E5541D31ABF9824975041AA244A7CF62E5541059D162F2C975041542A8D6CEE2E5541EFBD65582F9750411A6239A2ED2E554141D6A77330975041B26A46B0EF2E5541A9CD9A652E975041B4DB832AF32E5541D6FC398D2B975041FC3C8C97F72E554155441BD0299750414CE49038F52E55415FFB547E269750411FB5F110F82E5541A75C5DEB2A975041D2EF6764012F55412BA43E2E299750413108AA7F022F554106000000125CDAF6C4965041D621910EEF2E5541D354612DC796504115290AD8EC2E55411D2C1C71C896504131B6B36CEE2E55412EE9838BC6965041D4178748FD2E55419B3A0E04C4965041B19DB713012F5541125CDAF6C4965041D621910EEF2E55410600000056E47E3616975041CD8C510CB82E5541785E4E6B129750413ADEDB84B52E55414427171C189750415C58ABB9B12E55410A03BA2C23975041BED9F3B7AB2E5541F84552122597504140CB0125B02E554156E47E3616975041CD8C510CB82E554105000000F63B484C33975041F03719F38E2E55413543C115319750418AD3B41A8C2E5541F4313E8641975041B33AAAEF822E5541B52AC5BC43975041199F0EC8852E5541F63B484C33975041F03719F38E2E554105000000B178A19415975041810D7D667A2E5541D3F270C9119750411BA9188E772E5541B55BBD6E1E975041678ADD976A2E55411BC0214721975041725A1F126E2E5541B178A19415975041810D7D667A2E554106000000A677676837975041619DB7F76F2E55415CA0AC243697504105099599702E554112C9F1E034975041B16198DB6B2E554176234CF34597504124A048F4632E5541371CD32948975041012679BF672E5541A677676837975041619DB7F76F2E5541060000000DEDF96814975041942B31DE342E5541DE4C1DC7139750412952C3F72F2E55414E79431C23975041347A3A20302E5541DB59D90125975041631A17C2302E5541F3A9C75225975041DA1BFCD0352E55410DEDF96814975041942B31DE342E554107000000665C0189F6965041A246ECCB232E554137BC24E7F596504195AD3729202E55411F6C3696F596504114F5186C1E2E5541665C0189F6965041933CFAAE1C2E5541D517EA63029750414124B8931B2E554103B8C605039750412DB64437222E5541665C0189F6965041A246ECCB232E5541070000008403B5DED7965041AB7B1F2F352E554178DB3DB6D79650416F428EEA302E5541656DCA59DE965041CB110AB42E2E554172067FFCE1965041CB110AB42E2E554147481D4FE8965041B3C11B632E2E554153709477E896504113731221332E55418403B5DED7965041AB7B1F2F352E55410A000000CE68CAE1B2965041541025A5292E55418778FFEEB19650412F2782B1252E55410AA25B26B79650415C5621D9222E5541A3AA6834B9965041CF758BF3202E554125D4C46BBE965041376D7EE51E2E5541E15437F3C09650417235D2AF1F2E554110F51395C1965041E7C57944212E5541F8A42544C19650413B4FF9D9252E55412F8BFE19BB9650412F2782B1252E5541CE68CAE1B2965041541025A5292E55411E0000003C4EA1D63296504174396FBAA22E55414CDA993E25965041B5D6813E992E5541C9B03D0720965041E2052166962E55414ECDDD031496504150D2D2118A2E55411F3ECA32FB955041E8DADF1F8C2E5541614C1A31F595504122A333EA8C2E554184C47FAAF59550416722C1628A2E554197B0ECBB03965041E669A2A5882E55418442795F0A965041DA412B7D882E5541FFA7DFAD019650419451608A872E55411CDE5589DF9550414CF0571D832E554156A6A953E0955041906FE595802E554141342961109650414E619597862E5541A92B1C530E965041AA301161842E55413BE170F205965041A4DD58F2792E5541FFA7DFAD01965041168C8592742E55418A17381900965041AC235526732E5541D6DCC1C5F6955041068293756D2E5541177AD449ED9550419BA8258F682E5541461AB1EBED9550413D686C4B672E5541679FD29FFF955041141B4818712E55412E48BC4F02965041AC235526732E554153315F43069650410CD54BE4772E55414D5CA08910965041B5588889842E5541F6DFDC2E1D965041762CB37F912E5541F8501AA920965041614D02A9942E55417616F5A033965041E758D9D4A02E5541C82E37BC3496504116F9B576A12E55415FC606503396504174396FBAA22E55413C4EA1D63296504174396FBAA22E55410D0000001034D815F4955041F17C4367CA2E554145A97371EA955041EB298BF8BF2E55411AEB11C4F095504169002FC1BA2E5541040C61EDF39550412481A148BD2E55414AFC2BE0F4955041BB1871DCBB2E554112A51590F7955041AFF0F9B3BB2E5541C1FD10EFF9955041C740E804BC2E5541378EB883FB955041BB1871DCBB2E55412DD77ED5FE955041EAB84D7EBC2E55415A061EFDFB955041EB298BF8BF2E55414D6D695AF8955041E172514AC32E5541D94DFF3FFA955041A81B3BFAC52E55411034D815F4955041F17C4367CA2E55410A000000A4D863E4039650417699E363BE2E55413B7033780296504101093CCFBC2E55415EE898F10296504197A00B63BB2E55415EE898F1029650412E38DBF6B92E5541C750C95D04965041AD7FBC39B82E554131B9F9C905965041A1574511B82E55414A7A259509965041DC1F99DBB82E55413E52AE6C09965041DD90D655BC2E55416059D66B069650415E49F512BE2E5541A4D863E4039650417699E363BE2E55410C0000006D855A2ADD9550418F5A0F2FC22E5541773C94D8D9955041A539C005BF2E5541AE226DAED3955041DC1F99DBB82E5541003BAFC9D49550415B677A1EB72E554169A3DF35D69550412CC79D7CB62E5541EA5BFEF2D7955041DAAE5B61B52E5541C954D6F3DA955041651EB4CCB32E55416D855A2ADD955041651EB4CCB32E5541BD2C5FCBDA955041DAAE5B61B52E5541031D2ABEDB955041209F2654B62E55412A770A2CE395504153217EEABD2E55416D855A2ADD9550418F5A0F2FC22E55410600000031CECF30C49550411102651BDC2E5541764D5DA9C1955041CB119A28DB2E5541B286EEEDC59550415DC7EEC7D22E554156B77224C895504117D723D5D12E554156B77224C8955041B0DF30E3D32E554131CECF30C49550411102651BDC2E554109000000D2E7721B37965041FB869E76A12E55418810B8D735965041561BC1D4A02E55413E39FD9334965041DEF9F4E19F2E5541FF3184CA369650411D016EAB9D2E554149093F0E3896504112312C319A2E55416596E8A239965041903F1EC4952E5541278F6FD93B9650410761EAB6962E5541DDB7B4953A965041D429B3679C2E5541D2E7721B37965041FB869E76A12E55410A0000002CAEA037AE955041AFBC1435362F5541FF7E0110B1955041D90939682C2F5541E99F5039B49550417BC97F242B2F55418DD0D46FB695504187F1F64C2B2F55411AB16A55B8955041FC819EE12C2F55416A586FF6B59550414654E4C8342F554199F84B98B6955041AFBC1435362F554181A85D47B69550413C9DAA1A382F55415197432BB2955041A505DB86392F55412CAEA037AE955041AFBC1435362F55410E000000877D1C01AC9550413D1FB165232F5541E34C98CAA9955041DFDEF721222F55419D5CCDD7A89550413BAE73EB1F2F5541CCFCA979A9955041D145437F1E2F5541FB9C861BAA955041508D24C21C2F554159DD3F5FAB955041F34C6B7E1B2F5541DA955E1CAD955041AC5CA08B1A2F5541C4B6AD45B0955041666CD598192F554197870E1EB3955041082C1C55182F5541520881A5B5955041C23B5162172F5541BC70B111B7955041D98B3FB3172F5541F63805DCB795504137CCF8F6182F5541DFE8168BB7955041CFD405051B2F5541877D1C01AC9550413D1FB165232F55417D000000803F3AF95F955041A0B222182F2F5541E8362DEB5D955041B691D3EE2B2F5541B99650495D955041B4209674282F55418AF673A75C955041609716DF232F554138DE318C5B9550414565AD991C2F5541E6C5EF705A955041EF6AF089142F55418985362D59955041EC8875950D2F5541ACFD9BA65995504125E08BE50A2F5541529F5D575F955041D1560C50062F554156700F7B7E95504143873F3BEC2E5541B89243B386955041074EAEF6E72E5541D5176567989550410F05E8A4E42E554154DD3F5FAB955041D2CB5660E02E5541D877D910B4955041E8AA0737DD2E5541F0C7C761B4955041B90A2B95DC2E55414A2606B1AE9550411F91E00CD72E5541CDD168339F955041BA8C31E0C72E554133581EAB99955041C4436B8EC42E5541C60D734A9195504145FC894BC62E5541BAE5FB2191955041B81BF465C42E55416087BDD2969550414EB3C3F9C22E55410247048F95955041AE823FC3C02E5541BB56399C94955041C461F099BD2E55410D6F7BB795955041D940A170BA2E5541EAF6153E95955041C07F75A5B62E554152EE083093955041E015602AB02E554100D6C61492955041D27CAB87AC2E554198DED32294955041BB2CBD36AC2E5541F61E8D66959550418F6E5B89B22E554183FF224C97955041FB47C96FB72E55419A4F119D9795504137815AB4BB2E55415F87BDD296955041E7D95513BE2E55416BAF34FB969550418B0ADA49C02E554132581EAB999550413B63D5A8C22E5541C1A9F10A9F955041F6E34730C52E55419F20C3C0B69550418E6A4EF3DB2E55411B75603EC6955041FD2537CEE72E5541E870025DD39550419A10BFD0F02E5541113C2045DE955041632AE6FAF62E554151572C7EE9955041DA2BCB09FC2E5541168FD8B3E8955041201C96FCFC2E5541A9442D53E09550411383E159F92E5541D4028F00DA95504128629230F62E55417E08D2F0D1955041D4D8129BF12E55410696AF67C99550412E3751EAEB2E5541B09BF257C19550417D6D1811E62E55414F79BE1FB995504191DB8B6DDF2E5541C298283AB79550414AEBC07ADE2E55411E68A403B5955041561338A3DE2E554162E7317CB295504191DB8B6DDF2E55414FFBC46AA4955041D93C94DAE32E55411997F2DF95955041B7356CDBE62E55411CFB731F8895504173B6DE62E92E5541607A019885955041B9A6A955EA2E5541F711D12B84955041220FDAC1EB2E5541EBE9590384955041C63F5EF8ED2E55414B9B50C1889550418D66415D052F5541CB536F7E8A95504183AF07AF082F5541299428C28B955041D5C749CA092F55416E13B63A89955041A6276D28092F5541ED5A977D879550418D66415D052F55419B4255628695504195AC3D91FE2E5541F711D12B84955041A7A97373F42E55418DA9A0BF82955041C63F5EF8ED2E5541A4F98E1083955041F36EFD1FEB2E554168C0FDCB7E955041BA17E7CFED2E5541B4AFFF5C72955041AC0413D3F82E554109D6DFB57495504163A797D4F92E55413130AF7F76955041E80BCA81FB2E554185568FD878955041FCB8B166FC2E5541F29B98DB7A95504115D8DA10FC2E554101D73EFB7C955041C1B1FAB7F92E5541BCEB04C27C955041B1765498F72E55413787D2147B955041E726E8B1F52E55417700CB887C95504149A38C5AF42E55414250376F7E9550412149BD90F22E55416538C57381955041110E1771F02E5541A6B1BDE7829550417E532074F22E5541082E62908195504135F6A475F32E5541853B71A87E9550416250743FF52E5541FB64FD357E955041728B1A5FF72E554180C92FE37F955041FC618ED1F72E5541D5EF0F3C82955041596CF1B4F72E554177E5AC5882955041DFD02362F92E55410F12E51A7F95504124BC5D9BF92E5541CE98ECA67D9550416435560FFB2E55418E1FF4327C955041D17A5F12FD2E5541254C2CF578955041526D50FAFF2E5541BD7864B77595504135DCE58A012F554128D98BEA719550419EAFADC8042F55418EC771586F955041CA7BBE57052F5541F5B557C66C9550410F67F890052F55413E13D3C46B95504171E39C39042F5541F927998B6B9550413EC06815FF2E5541B9E908B867955041C5BD57AD022F5541B39650495D9550410368266C0A2F554109910D59659550410F909D940A2F55414FFFD1007B9550415F37A235082F55416A313B46829550415F37A235082F55411EC18A8A909550417E7566EE0A2F5541EC323DEBAA955041CAB7C3BC0F2F55411522F339CC955041B37D7CE2152F55411FECB6D9D795504182CDE8C8172F554121D198A9DD9550413DE2AE8F172F554154F4CCCDE29550411588DFC5152F5541D0747CF0E69550417B76C533132F554156D9AE9DE89550413BFDCCBF112F554190FB837CE5955041D09CA58C152F55417EDBFB8CDD95504138706DCA182F55417884D8F7D8955041C246E13C192F55413526FEB3D19550410CA45C3B182F5541C4163111C49550418BB16B53152F554130C7538FA695504113A3FDF50F2F55415955A12E8C9550418A7566EE0A2F5541F30E39E681955041621B9724092F5541138426E07D955041BD25FA07092F5541BF05C4AC6E9550415BA9555F0A2F5541D27547E75C955041CC60A0270B2F5541D6E788AC5B955041AFCF35B80C2F55414C11153A5B955041923ECB480E2F554170F9A23E5E9550413771CC0F212F5541269C27405F9550418D7C8E38292F55414EF6F60961955041C51104222D2F55411062E06565955041F8343846322F5541803F3AF95F955041A0B222182F2F554107000000565D28BEB2955041F22CB1B60B2F554173EE922DB195504199948F980A2F5541879B7A12B2955041446EAF3F082F5541EF6E4250B59550411C14E075062F5541DEA63C3BBA95504196AFADC8042F554106010C05BC955041A1781223082F5541565D28BEB2955041F22CB1B60B2F5541050000009449C13CBB955041324E2750002F55413BB19F1EBA9550412CF703BBFB2E5541BA163111C4955041080F76B6F82E5541B5A4EF4BC59550415451D384FD2E55419449C13CBB955041324E2750002F55410E000000D52C74E694955041D8EAE24CEB2E5541216FD1B499955041BFCBB9A2EB2E55415804479E9D955041F0090CF7EA2E5541EDA31F6BA19550411DD61C86EB2E5541EDA31F6BA1955041A23A4F33ED2E5541A8B8E531A19550416D8ABB19EF2E5541B19C68BC9E9550410B0E1771F02E55418EB4DAB79B955041C622DD37F02E5541F4A2C02599955041F2EEEDC6F02E5541E0F5D840989550414B870FE5F12E55415B91A69396955041BD3E5AADF22E55416475291E949550416E6F9DE9F42E55417C9452C8939550419956CCA8EF2E5541D52C74E694955041D8EAE24CEB2E55413000000084704A586A95504177C62BD6402E5541DECE88A7649550416358B879472E5541098DEA545E9550415D83F9BF512E5541071CADDA5A955041ED450A9A5A2E55411F6C9B2B5B955041A08080ED632E5541A9DBF39659955041E8E1885A682E554111D3E68857955041983A84B96A2E5541A86AB61C56955041E20CCAA0722E5541C971DE1B53955041A16FB71C7C2E5541AE3F75D64B955041E3FB00D08A2E55415B2733BB4A9550412B5D093D8F2E55411155EDD3429550410E385C32992E5541F6B1461438955041C4C58AF4AC2E5541CDE6282C2D955041428B65ECBF2E55414ABDCCF427955041767EFAFCCA2E5541494C8F7A2495504105D0CD5CD02E55412E1A26351D955041D9116CAFD62E554144F9D60B1A95504138C3626DDB2E5541C91577080E955041FD780858EF2E5541A2BB969A0695504111D6B2E3002F5541F3629B3B049550417DAF20CA052F554149DF5E96F794504137AE8C061D2F5541D44EB701F6945041090EB0641C2F55419522E2F702955041081F7935042F5541C633FC13079550416AC3B3B8F72E554119BD7BA90B955041B6883D65EE2E55418F4D233E0D955041B6883D65EE2E5541B5A703AC14955041F5B4126FE12E55412B38AB40169550414F1351BEDB2E554150214E341A95504140095FA1D42E5541EA9A98BC1F955041E15768E3CF2E55414477D0C02E955041F4B81F05B82E5541C52FEF7D30955041E890A8DCB72E55416C42EEA8399550410EFC511BA72E55411AC62A4E4695504161255D07902E5541E3DF51784C955041C53AD504872E5541723125D85195504162A763527B2E5541502AFDD854955041C6BCDB4F722E55410DAB6F605795504129F0D858622E5541266C9B2B5B95504150CCBF11552E55413023D5D957955041F38B06CE532E55415FC3B17B58955041086BB7A4502E5541512AFDD8549550417062AA964E2E5541823B17F558955041973E914F412E554107D6B0A6619550418E8757A1442E554164166AEA629550414908CA28472E554151A8F68D69955041F30D0D193F2E554184704A586A95504177C62BD6402E55410500000007112645C69450414F5F8F2D282E5541B5F8E329C5945041AB2E0BF7252E554166C21C03CB9450413C73221C1A2E554176CC0E20D294504186456803222E554107112645C69450414F5F8F2D282E554106000000491F7643C0945041C7E27A87182E55417F94119FB69450415C090DA1132E5541A8E135D2AC945041644F09D50C2E55412B0B9209B29450418274B6DF022E55419DA8F5D8C494504114A804340F2E5541491F7643C0945041C7E27A87182E5541
+</a>
+
+<b>
+0106000000010000000103000000030000003400000070007D40E695504146EA0866152F5541AA73A00BE6955041E901315B152F55414709589AE395504144F94D55162F55417D37808BE29550414A6037C0162F554183DBFB8CDD9550413B706DCA182F5541821DE336DD95504135C1D3D2182F55414ADEE5FED995504173DC0397192F5541E5A5914DD39550416A8A1274182F55413626FEB3D195504110A45C3B182F554191001426D095504144768FE6172F55415EA54808B59550418597E8E9122F554197E274B78295504116EB2578092F5541C99AB85D7C95504116EB2578092F55411EF4374572955041E26393480A2F55416EAF191A5D955041CCD95F6C0B2F554147530ED85C9550413A5E003B0B2F5541DBE788AC5B955041B0CF35B80C2F55414A11153A5B9550418D3ECB480E2F554174F9A23E5E9550413271CC0F212F5541269C27405F955041907C8E38292F55414CF6F60961955041C81104222D2F55410B62E06565955041FB343846322F5541813F3AF95F9550419DB222182F2F5541E5362DEB5D955041B891D3EE2B2F5541BC9650495D955041B3209674282F554187F673A75C9550415C9716DF232F554134DE318C5B9550414965AD991C2F5541EBC5EF705A955041EC6AF089142F55418E85362D59955041EE8875950D2F5541ADFD9BA65995504128E08BE50A2F5541D7760DF95A955041FD5AE9D4092F5541D6C37D544C955041BEC896E2FE2E55416DE75D5A4C955041C1120470FE2E5541D3D36E454895504197EB2546F62E5541F373810347955041850B75B1F62E55414E7408A9439550411D4B8CE2FA2E5541E8B4B4CA3D95504153AA6BD9022F55414A95EC043A95504185E9FB640A2F55411035781D3C9550410469B16C0F2F55418EB42D25419550416928054B152F55412DD4F5EA44955041F9876BE7192F554172F3360B4C95504145875D9C202F554175D252AF5595504169068CFE282F5541B311E33A5D955041E78541062E2F55412D9003526C9550410425BFD3362F5541DE4E49E578955041DCA4FB80382F5541F8EC31C28B9550417BC4C3463C2F55419A85AA46D4955041040346874A2F5541408523A1D79550412C8309DA482F5541F8644D90DA9550419F43F2A8442F554103241AC9E3955041E0C709BE1A2F554170007D40E695504146EA0866152F55410A0000002BAEA037AE955041B0BC1435362F5541FB7E0110B1955041D70939682C2F5541EB9F5039B495504179C97F242B2F554192D0D46FB695504184F1F64C2B2F554119B16A55B895504101829EE12C2F554168586FF6B59550414854E4C8342F55419CF84B98B6955041B0BC1435362F55417DA85D47B6955041389DAA1A382F55414F97432BB2955041A005DB86392F55412BAEA037AE955041B0BC1435362F55410E000000847D1C01AC9550413D1FB165232F5541DE4C98CAA9955041DFDEF721222F55419F5CCDD7A895504138AE73EB1F2F5541C9FCA979A9955041D045437F1E2F5541FD9C861BAA955041538D24C21C2F55415BDD3F5FAB955041F54C6B7E1B2F5541D8955E1CAD955041AC5CA08B1A2F5541C7B6AD45B0955041636CD598192F554198870E1EB3955041062C1C55182F5541530881A5B5955041C73B5162172F5541BB70B111B7955041DC8B3FB3172F5541FA3805DCB79550413ACCF8F6182F5541DAE8168BB7955041CBD405051B2F5541847D1C01AC9550413D1FB165232F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979690 - 3188494
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+01060000000100000001030000001E000000A002000040E3E97C6C975041AC419793082F55412BA2AB836D975041B61686F6012F5541E1178CCF6D97504169AEBA5AD12E55417790392E6C975041AD8A32CBC12E5541E2D65D9F649750417D69D369A32E5541AE4066BB5F975041DD9DE1A08D2E5541B70843A85D9750415F22672F912E55415EAD3BEA589750415F7DCA08892E55419B66739453975041633C9CD87F2E55410B1A111952975041F2A233FD6F2E5541C08FF16452975041FB6A10EA6D2E55415F11AAE0579750416BBA3F786D2E55414778E5E95497504144ABF6505D2E554130DF20F35197504144ABF6505D2E5541CEBB3C484F9750418EEBDCB74C2E5541509B25B04A975041225B7FF9432E55411DAACAF24D975041B76FBE61432E55416834EAA64D9750415E14B7A33E2E55410A7574F249975041CB63E6313E2E5541622BDF8946975041B280E8ED2A2E5541F8D60A8DFB9650419894DF8C102E554170497AE1F0965041A15CBC790E2E55419469ED94E89650417B97AC9F0E2E5541535D7180D696504193307196112E5541DA268BED9E9650412786DE2E1A2E554105312FA663965041B477DDD0232E5541C1E3846148965041ABE723F7272E55410EE33C982E96504174925A432C2E55411661E0371C965041D6B53EEE2E2E554152757BBB0E965041DF7D1BDB2C2E55415FFC29780396504182BEA526292E5541AEEAB7220296504194F3FB262D2E5541BCBB9F2C07965041CDED6101312E55417BF95C6505965041E48626F8332E554184C1395203965041F2570E02392E5541805DCB5B04965041A9728B74412E55413F4025BB0A96504147F443F0462E5541AB24B9CF1C96504180AD8D6C542E5541112C60EB1396504180AD8D6C542E554168A516EC1B965041AB7C82D55B2E554113072D1A0D9650418F163BFD6F2E5541049E7F89F1955041CB4EEDAF5F2E55418A77917FEC9550417B1C27E0682E5541793317C0D7955041AB7C82D55B2E5541C8AF53EBA8955041903B7E87432E5541EE122552989550411D5C80AE4F2E5541E23ACE949B9550411B81B37F562E5541B2DA729FA89550412EA0FA6D642E5541E5CB2468BA955041636C79656F2E5541793317C0D795504105878FA9822E55416D5BC002DB955041B454C9D98B2E5541F25905CADC9550414E4D22BE942E55414F895528D7955041A3C6D8BE9C2E5541152C70A4E0955041043D194EA82E554143B1FE6ADA955041678E260CAD2E554124BA60BFCF95504149978860A22E5541870B6E7DD4955041556FDF1D9F2E55419FBB1BF8CD95504112F03C3A9E2E5541119B19D1C19550410618E67CA12E5541BA2163D0B99550411CEDC6C8A12E554100579F11AD955041CE95CD27A42E55416F80038DAE955041FC1A5CEE9D2E554118074D8CA6955041771C17279C2E5541099E9FFB8A955041C74EDDF6922E554132B70AC06C95504172B0F324842E55411CE229746C9550413DE4742D792E5541FC0FBF99689550419813C58B732E55411EBDF6A265955041FD1A6CA76A2E5541AF93922764955041AA574F04552E554197E3E4AC6A955041083D39C0412E5541AA022C9B78955041504D42302E2E5541E7F067F28D95504142BF61CE0B2E5541810E04616A9550413C78719DFA2D5541C568737364955041F81D028B002E5541234E5D2F519550414850C85AF72D5541CCD4A62E499550413356B43DF02D5541EF81DE37469550414850C85AF72D5541A4E07EF43A9550414850C85AF72D5541BF46C6CC269550411BA606C3F62D55414620D8C221955041ABA1D518FC2D5541D0AF83160F955041021B8C19042E55419DBED14DFD945041A5106F8C102E5541C146D685F3945041333171B31C2E5541B9241926E9945041B82FB67A1E2E55414AFBB4AAE79450411B81C338232E5541FAC8EEDAF0945041D8012155222E5541C146D685F3945041B654E94B252E554168F25256F294504192CCE4132F2E554137B72A3206955041A7C6F830362E5541F25CBB1F0C955041EDFB3472292E55411B51E3591A95504192CCE4132F2E5541DF1831A72A955041389D94B5342E5541D08A408C3B9550412AEA70C93E2E5541A4E07EF43A9550416191BCEF422E5541DE3D647831955041833EF4F83F2E5541189B49FC27955041CA29BADE582E55411A76162B2195504194826EB8542E5541AE024C0D12955041B70A73F04A2E55414D8C0B7E06955041AFE8B590402E554167178627F994504116F05CAC372E5541E7A9A7ECE2945041EDFB3472292E55419852AE4BE59450411B81C338232E5541CDD4C6A0E2945041DBDCED831B2E55415689A5C5D69450411F375D96152E5541840E348CD094504157B975EB122E55417A11AAFDCC945041C09BE935032E554115E5CF10CF9450415E25A9A6F72D55414C8C1B37D394504197A7C1FBF42D5541A074713FCD94504110DE9846F42D5541C5475EE3B3945041FA86B11EE82D55415AF3EDA2A5945041FCC87CB6F02D5541C66C7C378294504163E322C1DB2D5541CE89FD7D7F94504165426F9FE12D55418EA190F5809450412FD6CF3BE62D554169CEA3519A9450416242D3F3F52D55418F5F8D06A1945041763A6E3DFC2D554121C9B5829E945041122064DEFC2D554182C676F27794504181578B2FE52D55413DC124CF679450418815C097DC2D55415877F48065945041197FE813DA2D5541D9A61A7068945041984FC224D72D55416810A7407A945041D3D84623E42D554197BE113C7E945041369404A4DD2D5541A95760A77E9450413435B8C5D72D55416810A7407A945041E871313AD02D5541AEB64831709450414B2DEFBAC92D5541D18999296B9450411C7F84BFC52D55410855856B6C945041FF69682FC22D5541C04F979C7094504136355471C32D5541C2AEE37A76945041A5CB2BF5C52D5541702D288777945041DA37CB58C12D55413F2071AD6D945041223DB927BD2D554141200D59599450414F8CD744BB2D5541EA816CCA48945041A10D9338BA2D55419F1D321D47945041785F283DB62D55416035C59448945041076A04DBAD2D55413B0328BE479450417A5FC4E8A12D5541A6DB66853E945041724243A2A42D554102D9EF9D40945041A1F0AD9DA82D55411FEE0B2E449450413E35F01CAF2D5541706FC7214394504113451EDEB62D554175CEAFAB34945041EAB3987DC42D5541C5F01EC12D945041BB052E82C02D55414D3D62A219945041CB9EE041D52D5541E30573A8089450410F45E686DF2D5541559CE6D7F69350413F529D60E92D5541C891A6E5EA935041B047C1C2F12D55419525A32DDB935041203DE524FA2D5541F8E060AED49350419591F110F42D554141459B5BD69350414B2DB763F22D554139281A15D993504137351C1AEC2D554193C6564FD59350418F740C76E22D5541C932F6B2D0935041544A38AAEF2D55418EA971B4C3935041EC71958EE42D554127301B77BE9350413C9404A4DD2D5541635AEF42B1935041D4BB6188D22D55417DB17216A9935041FD4CE7E8C42D55418EEB74A3A3935041D91A4A12C42D5541D232CAB593935041B1E81090D72D5541C29917F67E9350414FCEA2DCC32D5541C29917F67E9350410E87E975BF2D5541D9914EEB70935041F6D0B56FAD2D5541A684FB657B93504178A12B2C962D554120F6ECEC869350411EA43EBF7F2D554120F6ECEC8693504166A92C8E7B2D55415103A4C690935041B92AE8817A2D5541B77CFA0396935041043072FC612D55410B5D02D69A935041E979A24A642D5541D84FAF50A5935041D1C36E44522D5541506254F9AA9350417367994D4A2D554152C1A0D7B09350413EFBF9E94E2D55419108BE92C9935041B7AEEE5F3A2D5541065DCA7EC3935041B54FA281342D5541350B357AC7935041EBBB41E52F2D5541091B633BCF935041CEA625552C2D554155DEE9C6D6935041A7153CA0252D554191C6BAA3E99350418B5FD0423C2D5541DBCB441ED19350412A035FA0482D55413B8766F3DE93504184004C0D5F2D5541BE15D9C0E7935041F037D7B25B2D55419B4288C8EC935041AFF01D4C572D554114552D71F29350414AD613ED572D5541533D9AF9F0935041BBCB374F602D5541B9B6F036F69350415ECEAE365E2D55418C67D219F8935041EA79A24A642D5541F99E5DBFF4935041B66C4FC56E2D554112F6E092EC93504170C6ADD4782D554145033418E2935041D89E50F0832D554129EE1788DE935041B5CBFFF7882D5541589C8283E2935041D2E01B888C2D554135C9318BE7935041EA964F8E9E2D55417DCE1F5AE393504106AC6B1EA22D5541B4990B9CE49350412D3D55D3A82D5541A35F090FEA93504123C187AEA52D55419B4288C8EC935041526FF2A9A92D5541533D9AF9F09350418DF876A8B62D5541F3E02857FD93504166678DF3AF2D5541756F9B2406945041AE6C7BC2AB2D55416FB166BC0E9450416D25C25BA72D5541B2576C01199450410FC9EC649F2D55418F841B091E945041D13FCCBAA62D5541A21D6A741E945041C564B2B79D2D5541C64F074B1F9450416F255E07932D55419900E92D21945041887CE1DA8A2D554191E367E723945041ADAE7EB18B2D554187679AC220945041FAD0511B992D554175CE4B57209450412D3D55D3A82D5541A21D6A741E94504166678DF3AF2D55418F841B091E9450419F91C513B72D55415A187CA522945041E796B3E2B22D55415C77C88328945041A54FFA7BAE2D5541DE053B5131945041F6716991A72D5541742DFC893A9450413D775760A32D554192A164F84394504133FB893BA02D554167B192B94B94504173E3F6C39E2D55419E7C7EFB4C945041A84F96279A2D5541E6816CCA48945041D59EB444982D5541483D2A4B429450419ED3C802972D55415FBE0A903A945041BE13960B912D554141FA1C2C2A9450417897CD8B822D5541DB47A29425945041B5CBFFF7882D55410897C0B123945041E21A1E15872D554187679AC220945041861D95FC842D55410897C0B1239450418E3A1643822D5541E47F77E527945041B6C611947F2D55418170CD181894504160F515FA6A2D55410EF6A83B1594504149D677416C2D55414AA9769E0D9450415500C414612D55413C7C9F55E9935041CE4C743E2E2D5541CCB8E5B0A99350419AAC197BE52C55416DFB3E1097935041F33F801AC72C55416020250D8E93504124EE86C1B62C5541657F0D977F935041AEDB7DC49C2C5541998C601C75935041854AF863AA2C554132130ADF6F9350412D0B0808B42C55414DC9D9906D93504180EB0FDAB82C55410EE16C086F93504114B48434BC2C5541687FA9426B935041A9DB456DC52C55415E03DC1D68935041E464CA6BD22C55416E3DDEAA6293504152FBA1EFD42C55412DF624445E935041D58914BDDD2C5541FE47BA485A935041D947AD79E92C5541C71D8228539350419E7C258CFC2C554160A42BEB4D93504198BEF023052D554154C911E8449350411230E2AA102D554101E90916409350419F3A229D1C2D5541E6323A6442935041CEE88C98202D5541779C62E03F9350411AAC1324282D5541B784CF683E9350419C3A86F1302D5541650314753F9350418C008464362D55412E3828333E93504117AC77783C2D5541024856F445935041C52ABC843D2D55419E2D4C9546935041FCF5A7C63E2D55415F45DF0C48935041E39E24F3462D55418DF349084C935041CCA6EDFD542D554133550DCE4F9350418F1DCD535C2D55413DD1DAF2529350419D5733356B2D5541241B0B4155935041CFC336ED7A2D5541B884CF683E935041810014B6872D5541AE0802443B935041A891FD6A8E2D5541A48C341F389350414DF3C030922D55418777188F3493504176E3F6C39E2D5541B4C636AC3293504182BE10C7A72D5541EBF0D2204E935041ADAEE205A02D5541C81D82285393504111289D97B92D5541E4329EB8569350418B998E1EC52D554178FB12135A935041C4C3C63ECC2D5541713DDEAA629350417E1D254ED62D55414E6A8DB267935041A5AE0E03DD2D554125D9075275935041C581C34FEC2D55414E288AC3879350411D2064DEFC2D554166DEBDC999935041476FE64F0F2E5541C2DB46E29B935041AC89F0AE0E2E554160208961A2935041875753D80D2E5541D8322E0AA89350413DF3182B0C2E554124F6B495AF935041AA2AA4D0082E554182528A8CB7935041F22F929F042E554159C1042CC5935041A66C0B14FD2D5541DB4F77F9CD9350412D5A666BF72D55419C670A71CF935041253DE524FA2D55416DB99F75CB9350410A871573FC2D55411F97CC0BBE935041DF964334042E55415D20EDB5B693504185F806FA072E554163DE211EAE935041D9D80ECC0C2E554120381CD9A39350416CA18326102E5541DD911694999350413F526509122E5541486A555B909350413F526509122E5541B3429422879350417F3AD291102E55419CEBACFA7A9350413DF3182B0C2E5541BD5FB114709350410E45AE2F082E55413972F268619350411F7FB0BC022E55411AFE89FA5793504154EB4F20FE2D55417DB9477B519350419CF03DEFF92D554183777CE348935041755F543AF32D554183777CE348935041C38127A4002E5541F0AE078945935041088779C7102E5541CF3A036F5093504151EBB374122E554193102FA35D935041648402E0122E5541A14A95846C935041AEE83C8D142E55415387724D799350416E00D004162E554169DE597585935041CAFD581D182E55411ABCEA5F8C935041777C9D29192E55415B03A4C690935041219CF9AB282E5541CA997B4A9393504112C143FD332E5541269704639593504149EBDF714F2E554153E6228093935041A747B568572E554113FEB5F7949350417AF8964B592E55419FA9A90B9B9350415F42C7995B2E5541E14FAF50A5935041458CF7E75D2E554186B17216A9935041B422CF6B602E5541D015ADC3AA9350415A849231642E5541DCF0C6C6B393504187D3B04E622E5541151BFFE6BA93504122B9A6EF622E55417B945524C0935041996CFFB9622E554161DE8572C2935041B6811B4A662E5541F4A6FACCC5935041AD649A03692E5541235565C8C9935041A3E8CCDE652E55411C973060D2935041EBEDBAAD612E554166FB6A0DD49350413B102AC35A2E554195A9D508D89350412877DB575A2E554143281A15D993504155C6F974582E55419F25A32DDB9350415C842EDD4F2E554172D68410DD935041488C9393492E554133EE1788DE935041CBBB552E382E55419E25A32DDB935041DF544045242E55414A459B5BD6935041BBC3F23B092E5541C615D9C0E79350411C2064DEFC2D5541F981DC78F79350412BFB198DF12D5541EF64BF860E945041CB3FF8B7E32D55419F4250711594504101AC971BDF2D5541C6D339261C9450413618377FDA2D5541B5993799219450416B84D6E2D52D5541B7F883772794504117A4CE10D12D5541828CE4132C945041C4C3C63ECC2D554196847F5D32945041AFCB2BF5C52D55414C7FF5E24A945041DA1AAE66D82D55414162D8F061945041DF379301EA2D55412C6A3DA75B945041BD644209EF2D5541CE0D68B053945041A40DBF35F72D5541F281087634945041590835BB0F2E55411A5591C506945041369494F52E2E5541EBA626CA02945041C13F8809352E55417D104F46009450410C030F953C2E5541D7AE8B80FC9350412B777703462E55416FD6E864F1935041F8C8705C562E5541095D9227EC93504185D3B04E622E5541FFE0C402E99350418991490B6E2E5541904AED7EE6935041F169EC26792E55412055C91CDE935041C7D866C6862E5541603D36A5DC935041F686D1C18A2E5541BADB72DFD8935041E4ED82568A2E55414B459B5BD69350416D3A2A8C8A2E5541D5914291D6935041139CED518E2E55415EDEE9C6D693504194CB1341912E5541BADB72DFD893504115FB3930942E5541D6F08E6FDC935041CDF54B61982E5541BC3ABFBDDE935041EA0A68F19B2E55412AD19641E1935041D9D06564A12E5541101BC78FE3935041AEE09325A92E55417435D1EEE29350412F10BA14AC2E5541BE990B9CE49350419DA69198AE2E5541354D6466E49350410320E8D5B32E5541516280F6E79350414D842283B52E55414945FFAFEA9350414FE36E61BB2E55410A5D9227EC935041BE7946E5BD2E554153C1CCD4ED935041115A4EB7C22E5541F7C343BCEB9350419C0542CBC82E5541ED477697E8935041F0E5499DCD2E5541C815D9C0E79350417115708CD02E5541241362D9E99350417115708CD02E554178F369ABEE935041F902CBE3CA2E554167B9671EF4935041653A5689C72E5541F0050F54F4935041AD3F4458C32E55418CEB04F5F49350413C4A20F6BA2E55417BB10268FA935041F9A31AB1B02E5541E8A626CA02945041B69EC88DA02E554173521ADE08945041BD5CFDF5972E5541507FC9E50D9450418432C5D5902E5541818C80BF17945041920D7B84852E554127EE43851B945041C71ACE097B2E55415EB92FC71C945041A64719BD6B2E5541C43286042294504190F031955F2E5541A15F350C27945041783AFE8E4D2E55419BA100A42F945041A32AD0CD452E55410B972406389450416A0098AD3E2E554180A9C9AE3D9450419F0DEB32342E55416C6F2B765794504194D320FD102E5541D6A61A7068945041FBEDC607FC2D5541CE8999296B9450415F08D166FB2D55418FA12CA16C945041A96C0B14FD2D55415418A8A25F945041B1E83C8D142E554114303B1A61945041CDFD581D182E55418D42E0C2669450418E15EC94192E5541A03A7B0C6D94504121DE60EF1C2E55413620395696945041B047EDBF2E2E55417525EFCDBA9450418E3235843F2E554103EE2BD1E6945041CB1A0661522E554157CE33A3EB945041857464705C2E554176429C11F5945041C55CD1F85A2E55411F62F89304955041D39637DA692E5541D19ED55C119550412BD62736602E5541F82FBF1118955041F2ABEF15592E554127DE290D1C95504173DB15055C2E55415C4AC97017955041ECEDBAAD612E5541A2F06A610D9550412F94C0F26B2E554129DEC5B807955041C25C354D6F2E554198749D3C0A9550415625AAA7722E5541D9BB56A30E955041C4BB812B752E5541817C664718955041DF7151DD722E5541FA8E0BF01D95504193AECA516B2E5541B2891D212295504193AECA516B2E55414552927B25955041B0C3E6E16E2E55414552927B2595504168BEF812732E55418D57804A21955041749912167C2E55414C10C7E31C955041C61ACE097B2E55412FFBAA5319955041D0969B2E7E2E5541E59670A61795504176F85EF4812E554135B9DFBB10955041C1BBE57F892E55416208FED80E95504132B109E2912E5541EC54A50E0F955041F427E937992E5541BDA63A130B9550412535A011A32E55414594956A0595504103624F19A82E5541C72208380E955041C7377B4DB52E55410F28F6060A95504189AE5AA3BC2E55414494956A0595504175B6BF59B62E55416F8467A9FD9450416EF88AF1BE2E5541B52A099AF3945041E9697C78CA2E55419FD32172E7945041ABE05BCED12E554114282E5EE19450419DA6F5ECC22E5541C864A7D2D9945041B49E2CE2B42E5541E1BB2AA6D1945041E64C3389A42E554172255322CF9450414A673DE8A32E5541CDC38F5CCB94504130B16D36A62E554102302FC0C6945041962AC473AB2E55414A351D8FC2945041BDBBAD28B22E5541923A0B5EBE9450413F4A20F6BA2E5541B8CBF412C594504152E36E61BB2E554139FB1A02C8945041372D9FAFBD2E55415E2DB8D8C894504177150C38BC2E5541A074713FCD94504189AE5AA3BC2E5541048F7B9ECC945041BABB117DC62E5541586F8370D1945041663A5689C72E554173255322CF945041D98EC6C9D52E5541D0812819D7945041083D31C5D92E554176E3EBDEDA9450416EB68702DF2E55415E2DB8D8C89450416BB6EB56F32E5541188716E8D2945041D12F4294F82E5541A074713FCD9450417B4F9E16082F55413E77B0CFF3945041CAD0BD5E1B2F5541E4D87395F7945041396795E21D2F5541A64F53EBFE9450415D9932B91E2F5541790035CE009550419305D21C1A2F5541A8AE9FC904955041B479D6360F2F554121C144720A955041163594B7082F554119A4C32B0D955041675703CD012F55417DBECD8A0C955041DBAB0FB9FB2E554112E68EC315955041591D9DEBF22E5541B2891D21229550411C35CC0EE02E5541A14F1B9427955041F6A3E259D92E5541ED12A21F2F9550418ECB3F3ECE2E554138D628AB369550414B253AF9C32E5541036A89473B955041B39E2CE2B42E5541A9CB4C0D3F955041CCF5AFB5AC2E554136D68CFF4A95504187F05D929C2E5541B864FFCC53955041605F74DD952E55419F0D7CF95B955041F069507B8D2E5541C69E65AE62955041386F3E4A892E5541C0E030466B955041C9D866C6862E5541D4D8CB8F71955041386F3E4A892E55413235A1867995504179B6F7B08D2E55417EF827128195504196CB1341912E554109A41B26879550410462EBC4932E554136F33943859550410EDEB8E9962E5541F24C34FE7A9550417199766A902E554167A140EA74955041F069507B8D2E5541265A87837095504181D378F78A2E5541FFC89DCE69955041386F3E4A892E5541197F6D80679550416F3A2A8C8A2E55415967DA086695504154845ADA8C2E5541757CF69869955041D5B380C98F2E554177DB42776F955041A86462AC912E55418157109C72955041B2E02FD1942E5541D537186E7795504121770755972E554121FB9EF97E955041EB0A68F19B2E5541FE274E0184955041BEBB49D49D2E554164A1A43E89955041D154983F9E2E5541E5D0CA2D8C955041B69EC88DA02E55419DCBDC5E90955041A564C600A62E5541707CBE4192955041F944CED2AA2E5541CA1AFB7B8E955041A7C312DFAB2E55413F6F076888955041F944CED2AA2E554107A41B26879550419FA69198AE2E55413E6F0768889550418E6C8F0BB42E55411120E94A8A955041B5FD78C0BA2E5541B781AC108E955041C9F5130AC12E5541AF642BCA90955041306F6A47C62E5541FF869ADF899550418C6CF35FC82E55419FCB780A7C95504129B135DFCE2E5541DFB3E5927A9550417B32F1D2CD2E5541142085F675955041560054FCCC2E5541498C245A71955041F2E5499DCD2E55416442F40B6F9550413C4A844ACF2E5541A52A61946D9550417574BC6AD62E55419BAE936F6A9550412B1082BDD42E55417E9977DF66955041870D0BD6D62E554134353D32659550419289D8FAD92E5541F3ED83CB609550410020B07EDC2E55414751FA6B61955041F8EDD6CCDE2E554110F1858463955041C28D62E5E02E554110F1858463955041756D8CD4E32E55413191984262955041138D549AE72E55419371D07C5E95504108ADA305E82E55410B126AE059955041BC8CCDF4EA2E55419371D07C5E955041658C464FEE2E5541EA7157225B955041F7CB5D80F22E5541AF32C796539550416A6B62F3F72E5541681386764C955041BB6A54A8FE2E5541D5D36E454895504195EB2546F62E5541F6738103479550418A0B75B1F62E55414D7408A9439550411D4B8CE2FA2E5541E6B4B4CA3D9550414EAA6BD9022F55414895EC043A95504189E9FB640A2F55411235781D3C9550410669B16C0F2F55418FB42D25419550416E28054B152F55412DD4F5EA44955041F6876BE7192F554173F3360B4C95504147875D9C202F554178D252AF559550416D068CFE282F5541B411E33A5D955041EA8541062E2F55412B9003526C9550410425BFD3362F5541E34E49E578955041D9A4FB80382F5541F8EC31C28B95504177C4C3463C2F55419885AA46D4955041030346874A2F5541418523A1D79550412F8309DA482F5541F5644D90DA9550419C43F2A8442F554104241AC9E3955041E0C709BE1A2F5541C3E3F44CE69550416E28054B152F55414063AA54EB9550411C2913960E2F55410F04CB5DE3955041C049704C082F554156230C7EEA955041078B2AB9FB2E55410903366DED955041E7EA17FBFC2E554191629C09F2955041BB6A54A8FE2E554119C202A6F6955041078B2AB9FB2E554160E143C6FD9550418A0B75B1F62E55416BC1F45AFD95504102AC0E15F22E5541CB7C22240296504159F27632E62E554111A3D3E102965041B50C50C0E12E5541B9EC684A069650416115B7F8DB2E5541772A26830496504140B41515DB2E5541F04132FE01965041A73B68B6DC2E554169593E79FF95504100976F74E12E5541EB3827E1FA955041C841A6C0E52E5541F40004CEF89550418BE3D1EFE22E5541840C3819F1955041667925EFDA2E5541BC6101CDEC955041996A80ACD72E55410188B28AED95504157A83DE5D52E554130BA3B78F3955041529F32C8CE2E5541E7D4B8EAFB95504128D117D1C72E5541041C25250E965041C96C05F6BB2E55414F4BE1FF1596504100C2CEA9B72E554159B85A131C9650419E9EEAFEB42E55410102F07B1F96504175756C2EB62E5541B677D0C71F9650416749214BB92E5541C8078AA11B965041EE3115D0BB2E55417410F1D915965041262C7BAABF2E5541D68E385E10965041149CC1D0C32E554178CFC2A90C9650414C9627ABC72E55415CD28FBC0A9650413E6ADCC7CA2E5541041C25250E96504119A5CCEDCA2E5541823C3CBD12965041010C08F7C72E554187A0AAB3119650415FCB7DABCB2E5541663F09D01096504107151314CF2E5541ED27FD5413965041C552D04CCD2E5541F794766819965041BCE55639C72E55411DFF226921965041B278DD25C12E554114DCE2A22B965041751A0955BE2E554106B097BF2E96504183465438BB2E5541DD8619EF2F965041BA9B1DECB62E5541CFFF6A323B96504166FFE7FDA82E55411EEEF8DC39965041243DA536A72E554193A1966138965041F6AFB86FA92E55413A468FA333965041BE5AEFBBAD2E55419BC4D6272E9650419995DFE1AD2E5541CEB531E52A96504182FC1AEBAA2E5541271139A32F96504129A1132DA62E5541101D11D33496504161F6DCE0A12E5541CFFF6A323B96504199F042BBA52E554198AAA17E3F965041D54E178CA82E55410E03DC2946965041BDF680C5AE2E554195EBCFAE489650412D46B053AE2E5541912CFEDE5196504169FFE7FDA82E55418D6D2C0F5B9650417C8FA1D7A42E554118BA8E8A5C965041772B33E1A52E5541C56792E95E965041A65DBCCEAB2E55415A7CD1515E96504161DCA737B32E55417679043F60965041AB66C7EBB22E5541062AD5B06096504178756C2EB62E55418D12C93563965041D1D073ECBA2E5541278B769461965041E405CAECBE2E55417F41E12B5E9650414FF18A84BF2E55418D6D2C0F5B965041DB3DEDFFC02E554183A54F225D965041D6D97E09C22E5541195F2BB164965041B1146F2FC22E5541A0471F366796504138FD62B4C42E55417B820F5C679650412AD117D1C72E554156BDFF81679650417EC8B098CD2E55419CE3B03F6896504163701AD2D32E5541AAB498496D965041DC2CC373D92E55415BC60A9F6E9650410B5F4C61DF2E5541808B1A796E965041F46A2491E42E5541648EE78B6C9650416E27CD32EA2E55419F884D6670965041130DF4A4EE2E554196C0707972965041FC18CCD4F32E55418DF8938C74965041C5689F47002F5541673384B274965041F9A333520D2F55411845F60776965041F2CA2CD9272F5541220DD3F473965041A92FE398402F55412D391ED87096504112B7353A422F55414991B49E6A965041D6FDFD8F472F55411A5F2BB1649650410A94F5734C2F5541993E141960965041E76A77A34D2F55411615F263549650418FB40C0C512F55417CF7A7DE4D965041D5DABDC9512F55415F55D8CA439650411B016F87522F5541AE9EC94E3A96504186EC2F1F532F55411DEEF8DC39965041C34A04F0552F554134E220AD349650419D85F415562F55415E0B9F7D339650415CC3B14E542F5541CE5ACE0B33965041A74DD102542F5541F27A41BF2A965041EC7382C0542F5541E90DC8AB24965041B9822703582F55415DC1653023965041200A7AA4592F55416125D426229650417401136C5F2F55410002F07B1F9650413848DBC1642F5541BE3FADB41D9650415EB287C26C2F5541BADB3EBE1E9650418880A2B9732F55416689421D21965041B34EBDB07A2F554154F988432596504151D0752C802F55419F28451E2D96504110B3CF8B862F554150DF539A36965041CB31BBF48D2F5541CA9BFC3B3C965041737B505D912F5541192F270D43965041A163A0FD862F55415C8FC2454696504152B81EA5882F5541CDCCCCCC4F9650417B14AE078E2F55415C8FC2F5519650419A9999998B2F55416666667659965041E17A14FE8F2F554185EB5148589650417B14AEB7912F5541A4703D0A6C96504185EB51C89C2F55411F85EBF16B9650410AD7A3F09D2F5541C3F5289C7D965041F6285CDFA72F5541A0A656BD81965041B03EF1F6A52F554194CEFFFF84965041214322A1A02F554160B80AAD9F965041A81C34979B2F554194A9BC75B19650415BA00725972F5541F16963A7CA96504195FDECA88D2F5541EEB3C949D89650414981C036892F55414177E6ECED96504161316EB1822F5541071A0169F796504114B5413F7E2F5541AB0FE4DB0397504185B972E9782F55417BAF88E6109750415AEA7D80712F5541F91C6721279750415CA017DE632F5541023F2481319750416A533BCA592F55412A334CBB3F975041BC60CEC8492F55412A334CBB3F97504100BB3DDB432F55412036C22C3C9750417BBCF813422F5541360BA3783C97504171BF6E853E2F5541145E6B6F3F975041739A3BB4372F55413530D64943975041C3CC01842E2F5541492AEA664A97504113FFC753252F5541AC7BF7244F975041D35AF29E1D2F55410FCD04E353975041C85D68101A2F5541843D598F66975041E00D168B132F554140E3E97C6C975041AC419793082F55410600000092DBD99D88965041E8B21838632F55416274E40486965041B52145C9622F55412FE3109685965041BB7501755E2F55417762861E10975041CF9B144E4F2F5541AAF3598D109750412F6AFF7F542F554192DBD99D88965041E8B21838632F5541B0000000A012F4703E975041A588DB60482F5541195BAE27309750415FD1F418572F5541F8C50FBC22975041B52145C9622F5541A49F9DE114975041DD0AA0E06B2F55411DE85798069750419ED1531A742F55414B883AF6E39650419329DBC27C2F554176FE3E7EC3965041EDA30949862F5541F8C493B6AE96504119E1200C8B2F5541D4051775A396504119E1200C8B2F5541E3D76DA298965041B4BE792E8A2F5541F4D3A2A58B9650411F35DDB7862F55418100169C809650411F23F4F97C2F554193906C62789650413F30E188742F5541BD0730BC77965041921E683C732F554110F6B66F76965041CF472D44762F5541C64F5B9F7396504139FB75A3702F5541C64F5B9F7396504188B491716B2F5541E249883073965041BB7380AE662F55415FAFD23D71965041B109AAE35E2F5541A520C328709650411688875D552F5541193EE25272965041F02384014E2F554164E43D2375965041EBEE181C4A2F55415667A75A759650419B135266432F55411E734D38769650416B45783F342F5541AF8A99F37796504165EE6172242F554108F2E15B92965041545E0BAC2C2F55418A6AEC6688965041408A5E161D2F55419BFA422D809650415E75A0BD082F5541F830F5C37A965041BD9C676AEF2E5541017920A7769650419F5EE409D82E554134380FE471965041F12AC0D5CA2E55417252E901619650410ED2ABAD9E2E5541DD0532615B965041FAFDFE178F2E5541E118F25E53965041EA5EBD67832E5541901B80C140965041CC203A076C2E5541E6FA1B8B2B9650413EFA0262562E5541ABC26B99149650416A62DBD1412E55414500385006965041C02EB79D342E5541C89AED42089650418305F295312E5541C4DA6EFE3B965041960A35FD602E554173303E1A559650416BC40775812E55418B17ABAD5C965041F7C893328B2E5541DBF271636396504127976D599A2E5541916EC17A6C96504147D5F0B9B12E554142B5A5AC7196504123B5432DC22E55417161D4EB7496504169263418C12E5541AE8A99F3779650413B9CB0C0C92E554147EA10927596504194BFA259CC2E554106AE8B8C7A965041FC81D6A2DA2E55415FD17D257D965041CBE4924DEB2E55416406E90A81965041B00C11A4F72E55416406E90A81965041139AD907022F55413FC490968596504122391BB80D2F55410D05A2598A965041EC666C7D1A2F5541CCC81C548F96504186E88E03242F55418B8C974E94965041F2BD824A2A2F554196F66D199C965041239F1C6F312F5541E6D134CFA2965041F0DF2D32362F554172D6C08CAC965041BE203FF53A2F5541CBF9B225AF965041916525CC232F55416DF49660D49650413A64DE1A2D2F5541E211B68AD696504164DBA1742C2F55415851809CE49650418F7410B6372F5541D6D87591EE96504198BC3B99332F5541C73934E1E2965041227D7187252F5541BF13B4E5F2965041BFEFA8231B2F554142AE69D8F4965041ED792C7B122F5541C4481FCBF69650410974590C122F55416D47D81900975041BABA3D3E172F55413CAA94C410975041068344F6252F55415DD92C3B1497504187FB4E011C2F554117683C5015975041584F20C2182F554157A4C15510975041998BA5C7132F554117683C5015975041BECDFD3B0F2F55413897D4C618975041C3026921132F5541608759D533975041272A30CEF92E55417EC5DC354B975041BA32919FE72E55413854EC4A4C9750416B57CAE9E02E5541573F2EF2379750414806878BD12E5541E1FF63E0299750412E2E05E2DD2E5541CE4D6232269750410DFF6C6BDA2E55410C99D221359750410BDDC183CE2E5541967BB3F732975041860DA1ABC82E5541E434CFC52D975041C74926B1C32E5541D6B738FD2D9750410786ABB6BE2E5541F2B1658E2D975041CB5CE6AEBB2E55410FCE3D0739975041C0F20FE4B32E55413E7A6C463C975041438DC5D6B52E5541F0C05078419750410A77C0CCAA2E5541979D5EDF3E975041E9472856A72E5541A0E589C23A9750415830DC9AA52E5541C527E23636975041D160BBC29F2E5541766EC6683B97504186BA5FF29C2E55418A4273FE4A97504173085E44992E5541919989CB5A975041F06DA851972E55417AD4C71F5F9750419EA1CC85A42E5541D2F7B9B8619750412DEAAE12C62E55411456EAA56897504165DE0835C52E55412B501737689750416EF23686082F554175D4C71F5F9750410C87190A0A2F55414506EEF84F9750414068B32E112F5541143814D240975041B172125B1B2F5541088AE73721975041027084F82D2F5541C5090C630E9750410CDA5AC3352F55412D57530BE5965041BB42EADC462F5541D4336172E296504168546329482F554184589ABCDB9650415AD7CC60482F554191B3859DCF965041844E90BA472F5541A443DC63C7965041D53C176E462F5541CF8909ECA6965041F44904FD3D2F5541FD138D439E965041198C5C71392F55412EB1D0988D965041F13644FF452F5541457692448996504120E3723E492F55418BE7822F88965041814E90BA472F55410C608D3A7E965041CCF4EB8A4A2F5541FEE2F6717E965041B52F2ADF4E2F5541B43C9BA17B96504138CADFD1502F5541072B22557A965041D65EC255522F554131A2E5AE79965041B651D5C65A2F55417C48417F7C9650412C919FD8682F554104608D3A7E96504112014912712F5541E01D35C682965041C3472D44762F554183E7822F88965041F2F35B83792F554110EC0EED91965041AD826B987A2F55418E7304E29B965041AD826B987A2F5541CDBE74D1AA965041DF415AD5752F55413DC9D3FDB49650412EFB75A3702F5541632DD759BC965041D5D7830A6E2F55418EC6459BC7965041FF4E47646D2F55416FB9580CD09650413743A1866C2F554120003D3ED596504145C0374F6C2F5541EC1EA319CE965041D5D7830A6E2F554123F15154C1965041207EDFDA702F55413481A81AB9965041E88985B8712F554138946818B1965041A84D00B3762F5541F100CD45A6965041CEB1030F7E2F5541323D524BA196504163FEBAAF832F5541F5138D439E965041303FCC72882F5541FF7D630EA6965041F94A7250892F5541EDED0C48AE96504122C235AA882F5541EDED0C48AE9650411D8DCAC4842F5541E8B8A162AA965041D81BDAD9852F5541CDBE74D1AA965041B7EC4163822F554179D0ED1DAC9650416C46E6927F2F5541620B2C72B09650417AC37C5B7F2F554167409757B4965041884013247F2F554119877B89B99650415994E4E47B2F5541103F50A6BD9650410071F24B792F5541601A175CC4965041A84D00B3762F5541400D2ACDCC965041D1C4C30C762F554120003D3ED596504125B34AC0742F5541FCBDE4C9D99650416B243BAB732F5541B11789F9D69650411C6B1FDD782F5541AFF5DD11CB965041C0346D467E2F5541BD7274DACA96504126D5F5A7802F55416A84ED26CC965041E06305BD812F5541CF550C5AEE9650417059A690772F55413F3EC09EEC965041949BFE04732F5541B35BDFC8EE9650418F66931F6F2F5541E73C79EDF5965041C75AED416E2F55412ADFFFA914975041E967DAD0652F55414B0E982018975041A3F6E9E5662F5541EED7E5891D9750419EC17E00632F55416C3D30971B97504129A45FD6602F55418E8E73F52A975041FE0AF194552F5541C682CD172A975041447CE17F542F5541F71F116D19975041C303D7745E2F5541B08C759A0E975041BABBAB91622F554161B1AEE4079750413C566184642F554161B1AEE4079750419044E837632F55412F146B8F1897504116F25D285D2F55411FA6BFB02C97504131CADFD1502F5541B0DFB6533A975041679C8E0C442F554141F7020F3C97504191135266432F55418C9D5EDF3E9750413E25CBB2442F5541A012F4703E975041A588DB60482F5541360000009673759CD1965041DD102FF72A2F55419B878928B596504158460F760F2F5541C8D19AD7B4965041D44AF742192F554118967BBBB09650418A733CFF172F5541E07B2892AD965041B6B343E8252F554114B35FE1A7965041933974B3292F5541695A5C9FAC965041F99DD88B2C2F5541695A5C9FAC9650417B8FE6F8302F55416F47823FA79650417B8FE6F8302F554192C15174A39650419E09B62D2D2F554148EA9630A2965041504FDF0F232F5541A37EB98EA1965041E5075F5D172F5541BF0B6323A39650419E3AAEDF072F5541E6684E32A8965041A427D47F022F5541609424EB9A965041A631DE45F42E5541A588C3549396504147BA9F0DEC2E554189FB19C091965041AD1E04E6EE2E5541EF5F7E98949650410C96421EF72E5541DFA2167E969650416B0D8156FF2E55418AFB19C091965041B5E43B9A002F554119C7736D8B965041634749A2ED2E5541B3620F9588965041518AE187EF2E55412F67F761929650419D3AAEDF072F55412F67F7619296504174D3B80A112F5541639E2EB18C96504181AD044B062F55413C4143A287965041613D3FDCFB2E55410327F07884965041D37BEFF4F32E55414DFEAABC859650411F5DB4FEE62E55414711851C8B965041370742B9DF2E5541EC7C62BE8B9650412C37003FDC2E554154EBD05C8096504183E806C3D22E554165A838777E96504183E806C3D22E5541375E27C87E9650414FB1CF73D82E5541FF43D49E7B9650414FB1CF73D82E5541AA9CD7E07696504112B46070CC2E554172518C05999650414FE2C725B32E554199AE77149E965041441286ABAF2E55410AE31D67A4965041050B0DE2B12E55419E9193EEA6965041C6039418B42E5541DCC9046A7F965041D3ACE7A6CE2E55410EF731F387965041332426DFD62E554135541D028D965041CDBFC106D42E554152E1C6968E965041AA45F2D1D72E554167814A8B95965041B1321872D22E5541C2156DE994965041C6D29B66D92E5541011DE6B292965041D685F9BAE52E5541E97258F8999650412440D0D8EF2E5541A861D568AA9650416B0D8156FF2E554192B747AEB1965041A427D47F022F5541646D36FFB196504105A91C7EFC2E554180FADF93B3965041613D3FDCFB2E554141F366CAB5965041A80AF0590B2F55411A658309D6965041817C0C992B2F55419673759CD1965041DD102FF72A2F55415E0000000180F3D61097504133C2357B212F55419B1B8FFE0D9750418A733CFF172F5541467492400997504158460F760F2F5541038AFD9C02975041AFF715FA052F5541487E9C06FB965041C7A1A3B4FE2E554160282AC1F39650410C96421EF72E554116516F7DF2965041E91B73E9FA2E55414F6BC2A6F59650413EC36FA7FF2E55410B812D03EF9650412C06088D012F5541898F1F96EA965041CB84BF8E072F5541F6E0A90EE896504158460F760F2F554134E822D8E59650418A733CFF172F5541EB106894E496504195437E791B2F5541CE83BEFFE2965041409C81BB162F5541D953007AE6965041039F12B80A2F5541898F1F96EA965041D171E52E022F5541FAC3C5E8F09650417CCAE870FD2E5541BBBC4C1FF3965041672A657CF62E554183A2F9F5EF9650415C5A2302F32E554134E822D8E59650412136C612FE2E554173EF9BA1E3965041D75E0BCFFC2E5541AC09EFCAE6965041FAD8DA03F92E554139CB3EB2EE9650413FCD796DF12E554159CA2EB1EB9650419EF2E036EF2E5541BEDFA6AEE2965041BB9587F6F92E5541EB0E46D6DF965041981D227DF92E5541DFE6CEADDF965041228D7AE8F72E5541CDE998CBE9965041FAC15C00ED2E554190B00787E59650411CC984FFE92E5541AED5B491DB965041AF6D10CEF92E5541456D8425DA965041981D227DF92E5541E1570C28E39650418FE8EE19E82E5541AD647717D896504180DEFCFCE02E554156F97C8DCC965041F55DDBC0FA2E5541EC904C21CB96504147761DDCFB2E554160B0B63BC9965041512D578AF82E5541EC904C21CB965041670C0861F52E55419CE94780CD965041B7B30C02F32E554138D4CF82D69650413AEE310AE02E5541BF61ADF9CD9650412C557D67DC2E5541768F6712C69650411394519CD82E55410945BCB1BD9650417B8B448ED62E5541066341BDB696504129730273D52E5541276A69BCB3965041B4E25ADED32E554104F20343B3965041791A0714D32E55418DF01E34AE96504165AC93B7D92E5541C6473584AB965041633B563DD62E5541DD9723D5AB96504162CA18C3D22E55412CCEEAFBA59650412BE43FEDD82E554194C5DDEDA3965041F01BEC22D82E5541B9AE80E1A79650412702C5F8D12E5541A3CFCF0AAB9650415EE89DCECB2E554181C8A70BAE9650415B0623DAC42E55419918965CAE965041B7D59EA3C22E5541FD2D0E5AA59650410E5262FEB52E5541A15E9290A796504199C1BA69B42E55415E504292AD96504134AC426CBD2E5541A8228879B596504153422DF1B62E5541156D33DABD965041B757A5EEAD2E5541741E2A98C29650414056C0DFA82E5541AFE67D62C396504188B7C84CAD2E5541A52F44B4C69650414056C0DFA82E55410E987420C896504194DF3F75AD2E55419907CD8BC6965041FE4770E1AE2E55410C2737A6C4965041F50174ADB52E55412CBD212BBE965041B4646129BF2E5541861B607AB896504173C74EA5C82E554190D29928B596504119691056CE2E55414AE2CE35B4965041A549A63BD02E554185AA2200B59650413D52B349D22E5541118BB8E5B69650418F6AF564D32E554159ECC052BB965041BE0AD206D42E5541F5D64855C49650413FC3F0C3D52E55414960C8EAC8965041B4539858D72E5541E3D91273CE96504158841C8FD92E554159DBF781D39650411F2D063FDC2E5541E8BB8D67D596504142A56BB8DC2E5541FAA7FA78E39650419FF6EDCCC52E5541ADE270CCEC965041C650CE3ACD2E5541BE6E6934DF965041E8462D69E22E55412948D71AE4965041E9B76AE3E52E5541DF64C862F4965041BF7B0F81D72E5541044E6B56F8965041B5C4D5D2DA2E5541174BA138EE965041C4CEC7EFE12E554136E18BBDE7965041D3D8B90CE92E5541D63C513AF496504112F4C545F42E5541DB8F09A9FE9650412F976C05FF2E55414BBC2FFE0D97504164FB3E900D2F55417CCD491A1297504189E4E183112F5541CC744EBB0F97504121EDEE91132F55413E237B5B0A9750414183D9160D2F5541D99CC5E30F9750411836B5E3162F55417DCD491A12975041CB702B37202F55410180F3D61097504133C2357B212F5541050100002BA43E2E299750413108AA7F022F55411072D5E82197504113F4C545F42E554124E048451B9750413BD0ACFEE62E5541FFF6A55117975041E7462D69E22E5541356C41AD0D975041F08C299DDB2E5541913BBD760B9750411DBCC8C4D82E55413DB23DE1069750413D52B349D22E55414216BF20F99650417BFC8108DA2E55411D2D1C2DF5965041798B448ED62E5541BE7B256FF09650412502C5F8D12E5541319B8F89EE9650414709EDF7CE2E5541319B8F89EE96504122204A04CB2E55419EE53AEAF69650412CD783B2C72E5541C9A39C97F0965041AB1E65F5C52E5541008A756DEA965041341D80E6C02E5541D64D1A0BDC965041D1890E34B52E5541468B0931D39650419F07B79DAD2E554122A2663DCF9650411CDE5A66A82E55419F780A06CA965041AF93AF05A02E5541C17F3205C7965041B94AE9B39C2E5541E2865A04C4965041AF93AF05A02E5541CB366CB3C3965041332E49B7A82E55414A7E4DF6C19650411CDE5A66A82E55414A7E4DF6C1965041C6E39D56A02E5541F9D64855C4965041E67988DB992E554183D56346BF96504174CB5B3B9F2E5541753CAFA3BB9650416A14228DA22E5541EF30D877AF96504141C7FD59AC2E55416B963EC6A6965041213113D5B22E5541022E0E5AA5965041ACA06B40B12E5541141A7B6BB39650416C855F07A62E5541D37C68E7BC9650413A0308719E2E55414A7E4DF6C19650414E717BCD972E55412706E87CC19650415828B57B942E5541A64DC9BFBF965041C01FA86D922E5541C754F1BEBC965041CB471F96922E554117FCF55FBA9650419E18806E952E554168A3FA00B8965041424904A5972E55415A0A465EB49650411238EA88932E5541A26B4ECBB8965041BEAE6AF38E2E55411DD1B419B0965041C965A4A18B2E554153465075A696504102BDBAF1882E5541DAD32DEC9D96504175DC240C872E55419001E80496965041AE333B5C842E5541EB5F265490965041C412EC32812E5541A3FE1DE78B96504159397E4C7C2E5541D02DBD0E8996504163F0B7FA782E5541FC5C5C368696504179CF68D1752E5541707CC6508496504132DF9DDE742E554150F7A49C7296504142D8C62A942E554171FECC9B6F965041C11FA86D922E55417A3300FF80965041600E3D06722E554123C8057575965041BA6C7B556C2E5541B7EE978E70965041D32DA720702E55411D754D066B9650410C85BD706D2E5541E8107B7B5C9650417F935EBA832E5541A0AF720E58965041C412EC32812E55416E1C52A76896504120F330CD662E5541C23494C269965041A8628938652E5541F8A92F1E60965041172F3BE4582E5541485134BF5D965041718D7933532E554137D604285396504185FBEC8F4C2E5541CA8B59C74A96504102D29058472E5541D1D155FB43965041F638DCB5432E5541FD8FB7A83D9650413BB8692E412E554179F51DF734965041740F807E3E2E5541F83CFF39339650418B5F6ECF3E2E55419AFC45F631965041184004B5402E55411651E37341965041FB8B94244E2E554192A580F150965041D3AFAD6B5B2E5541EE74FCBA4E965041484055005D2E5541EAA34A972F96504181A83421422E5541A4B37FA42E965041184004B5402E5541256C9E6130965041E72EEA983C2E55410658BA2722965041867DF3DA372E5541219BEC3D11965041EC03A952322E554103870804039650416ADA4C1B2D2E55414977D3F6039650419709EC422A2E5541962B94D21296504154FB9B44302E55416498736B23965041FA9C5DF5352E5541988B087C2E965041135E89C0392E55416CCDA6CE34965041B51DD07C382E55414BC67ECF37965041EE74E6CC352E55413476907E379650410E0BD1512F2E55413205530434965041997A29BD2D2E5541E0EC10E932965041528A5ECA2C2E5541D04F4FB0589650417E48C077262E55412C1FCB795696504139C932FF282E554117B1571D5D965041749186C9292E554148C2713961965041227944AE282E5541DF5941CD5F96504120080734252E5541A6022B7D62965041DA173C41242E55410F6B5BE96396504164F8D126262E55419C4BF1CE65965041CE600293272E55411E754D066B965041729186C9292E5541C4160FB770965041E7212E5E2B2E5541B0A89B5A7796504121EA81282C2E5541D6027CC87E9650410A9A93D72B2E554114AD4A8786965041B88151BC2A2E5541A18DE06C88965041D98879BB272E55418086B86D8B965041207944AE282E5541161E88018A965041B88151BC2A2E55419E9A9CA799965041F79C5DF5352E5541772FF368AA9650414DA8E3D5252E554185C8A70BAE9650414CA8E3D5252E5541D7E0E926AF965041F249A5862B2E5541A7CFCF0AAB965041D0427D872E2E55416A963EC6A696504197EB6637312E5541744D7874A3965041263D3A97362E5541E86CE28EA19650413FFE65623A2E5541E86CE28EA19650416276CBDB3A2E55410C6341BDB696504115753718522E554199320ED2D09650418C6553566F2E5541A6CBC274D4965041530E3D06722E55419E85C640DB965041D1E4E0CE6C2E554121AF2278E096504144044BE96A2E5541C5DFA6AEE296504123FD22EA6D2E5541E6E6CEADDF9650410D1E7213712E55419E85C640DB965041D4C65BC3732E5541EE2CCBE1D8965041557F7A80752E55417C7E9E41DE9650418A01D2167D2E5541011938F3E69650411DB726B6742E5541CD14DA11F49650410C3CF71E6A2E55417A09543104975041CE20EBE55E2E5541DB2B88690C97504163477DFF592E5541EA357A86139750419C9E934F572E5541A99867021D975041844EA5FE562E5541CCFF03AB359750410507C4BB582E5541ACE712DB5097504190E759A15A2E5541ACE712DB509750413418DED75C2E55414EB8226837975041A73748F25A2E55417A874DE6189750411B57B20C592E5541BC959DE41297504149F78EAE592E5541DE9CC5E30F9750419B0FD1C95A2E5541DC2B88690C97504111A0785E5C2E5541AC1A6E4D08975041B5D0FC945E2E55418731CB5904975041590181CB602E554104086F22FF9650414F4A471D642E5541D014DA11F4965041BB94F27D6C2E5541FA61FE44EA965041118FAF8D742E5541F50E46D6DF965041FE9179AB7E2E55418F88905EE59650413414D141862E55415913F502EF965041458F00D9902E5541E9D505DDF7965041A6B13411992E55410EBFA8D0FB965041EE123D7E9D2E5541D5679280FE9650414EC4333CA22E554138FB03330A975041EB30C289962E55410BCC640B0D9750416D5A1EC19B2E5541A838F358019750410BB6E33DA82E554111A123C50297504147EF7482AC2E5541C1F91E2405975041F5D63267AB2E5541D8490D750597504181B7C84CAD2E55415891EEB703975041DFF78190AE2E554159022C3207975041BF61970BB52E55417EEBCE250B975041ED903633B22E5541E853FF910C97504156F9669FB32E5541DABA4AEF089750419E5A6F0CB82E5541680C1E4F0E975041E82CB5F3BF2E5541941D386B12975041E70E30E8C62E554167EE9843159750415F815271CF2E554167EE984315975041CA5AC057D42E5541968E75E5159750419103AA07D72E5541B906DB5E169750411EE43FEDD82E55413ABFF91B189750415A1DD131DD2E5541AEDE6336169750417D9536ABDD2E5541E6357A86139750414C13DF14D62E5541C3BD140D13975041F8895F7FD12E5541A045AF9312975041DFC833B4CD2E55411F8D90D61097504197672B47C92E55416F3495770E97504143DEABB1C42E5541EE7B76BA0C9750411EF508BEC02E5541B242E575089750413E8BF342BA2E55419981B9AA04975041A411A9BAB42E5541E928BE4B0297504174008F9EB02E554145F8391500975041728F5124AD2E5541DC8F09A9FE965041701E14AAA92E5541C53F1B58FE965041B29DA122A72E5541395F8572FC965041766410DEA22E55417DDE12EBF996504174F3D2639F2E5541DAAD8EB4F79650418AD2833A9C2E5541E464C862F49650417D39CF97982E554190DB48CDEF96504140003E53942E5541EA39871CEA9650418F36057A8E2E5541DDA0D279E6965041829D50D78A2E55415A777642E1965041D0D317FE842E5541AA1E7BE3DE965041C33A635B812E5541642EB0F0DD96504165FAA917802E5541B4D5B491DB9650419229493F7D2E55413ED4CF82D6965041F8AFFEB6772E55413C639208D39650413D2F8C2F752E55419F07CD8BC696504191A742F4912E5541297725F7C49650414AB77701912E5541AF82FC22D1965041B04EF649732E554183E62C17A7965041E738DCB5432E5541022E0E5AA5965041DC10658D432E554116AD4A87869650411546E93B712E55418ACCB4A184965041C32DA720702E55416A25014CA3965041C4C0763C432E554153D512FBA2965041DA9F2713402E5541C6F47C15A19650411E1FB58B3D2E554143CB20DE9B965041CE77B0EA3F2E554135326C3B9896504159E708563E2E554162610B6395965041639E42043B2E55419D295F2D96965041612D058A372E554161F0CDE8919650413D446296332E5541F7879D7C90965041F65397A3322E5541E037AF2B90965041640F807E3E2E5541D680757D939650412BB8692E412E5541A951D655969650411F90F205412E5541874AAE569996504115D9B857442E554158AAD1B498965041E8A91930472E5541875B772781965041938DCA7E6F2E55410BF610D989965041FE663865742E5541C5E7C0DA8F9650413D1107247C2E5541A4E098DB92965041E0D04DE07A2E554182D970DC959650410E712A827B2E554103928F9997965041B2A1AEB87D2E55413CE9A5E99496504162FAA917802E5541EAD063CE93965041919A86B9802E55416CFABF059996504135CB0AF0822E55412B5DAD81A2965041FC73F49F852E55413CD8DC18AD965041B8F46627882E5541FCAB070FBA96504117A65DE58C2E55410945BCB1BD965041215D9793892E55410BB6F92BC1965041C58D1BCA8B2E5541440D107CBE965041A386F3CA8E2E5541BB0EF58AC3965041E0BF840F932E554147EF8A70C596504155502CA4942E554101EEF6ACDC96504110E267FC7E2E554148DEC19FDD965041C03A635B812E5541870A97A9D09650412EF64B368D2E55418EDF5563C6965041334904A5972E554193A34B4CD4965041E3AEBB3EAB2E55410834F3E0D596504187DF3F75AD2E55411E02DBE6EA96504178C48487BE2E55414E13F502EF9650413F6D6E37C12E554127A84BC4FF965041AA57A5EEAD2E5541717A91AB079750413B8BF342BA2E554138237B5B0A975041544C1F0EBE2E55410430E64AFF9650414E776054C82E5541FCE9E916069750410B691056CE2E5541C50311410C97504103231422D52E55412E6C41AD0D9750410494519CD82E55416BA5D2F11197504140CDE2E0DC2E5541041F1D7A179750417D067425E12E5541299782F317975041119E43B9DF2E5541BF2E52871697504190E524FCDD2E554140E770441897504184BDADD3DD2E5541FB67E3CB1A975041E46EA491E22E5541B7E855531D97504172C077F1E72E5541205186BF1E975041FEA00DD7E92E5541D31ABF9824975041AA244A7CF62E5541059D162F2C975041542A8D6CEE2E5541EFBD65582F9750411A6239A2ED2E554141D6A77330975041B26A46B0EF2E5541A9CD9A652E975041B4DB832AF32E5541D6FC398D2B975041FC3C8C97F72E554155441BD0299750414CE49038F52E55415FFB547E269750411FB5F110F82E5541A75C5DEB2A975041D2EF6764012F55412BA43E2E299750413108AA7F022F554106000000125CDAF6C4965041D621910EEF2E5541D354612DC796504115290AD8EC2E55411D2C1C71C896504131B6B36CEE2E55412EE9838BC6965041D4178748FD2E55419B3A0E04C4965041B19DB713012F5541125CDAF6C4965041D621910EEF2E55410600000056E47E3616975041CD8C510CB82E5541785E4E6B129750413ADEDB84B52E55414427171C189750415C58ABB9B12E55410A03BA2C23975041BED9F3B7AB2E5541F84552122597504140CB0125B02E554156E47E3616975041CD8C510CB82E554105000000F63B484C33975041F03719F38E2E55413543C115319750418AD3B41A8C2E5541F4313E8641975041B33AAAEF822E5541B52AC5BC43975041199F0EC8852E5541F63B484C33975041F03719F38E2E554105000000B178A19415975041810D7D667A2E5541D3F270C9119750411BA9188E772E5541B55BBD6E1E975041678ADD976A2E55411BC0214721975041725A1F126E2E5541B178A19415975041810D7D667A2E554106000000A677676837975041619DB7F76F2E55415CA0AC243697504105099599702E554112C9F1E034975041B16198DB6B2E554176234CF34597504124A048F4632E5541371CD32948975041012679BF672E5541A677676837975041619DB7F76F2E5541060000000DEDF96814975041942B31DE342E5541DE4C1DC7139750412952C3F72F2E55414E79431C23975041347A3A20302E5541DB59D90125975041631A17C2302E5541F3A9C75225975041DA1BFCD0352E55410DEDF96814975041942B31DE342E554107000000665C0189F6965041A246ECCB232E554137BC24E7F596504195AD3729202E55411F6C3696F596504114F5186C1E2E5541665C0189F6965041933CFAAE1C2E5541D517EA63029750414124B8931B2E554103B8C605039750412DB64437222E5541665C0189F6965041A246ECCB232E5541070000008403B5DED7965041AB7B1F2F352E554178DB3DB6D79650416F428EEA302E5541656DCA59DE965041CB110AB42E2E554172067FFCE1965041CB110AB42E2E554147481D4FE8965041B3C11B632E2E554153709477E896504113731221332E55418403B5DED7965041AB7B1F2F352E55410A000000CE68CAE1B2965041541025A5292E55418778FFEEB19650412F2782B1252E55410AA25B26B79650415C5621D9222E5541A3AA6834B9965041CF758BF3202E554125D4C46BBE965041376D7EE51E2E5541E15437F3C09650417235D2AF1F2E554110F51395C1965041E7C57944212E5541F8A42544C19650413B4FF9D9252E55412F8BFE19BB9650412F2782B1252E5541CE68CAE1B2965041541025A5292E55411E0000003C4EA1D63296504174396FBAA22E55414CDA993E25965041B5D6813E992E5541C9B03D0720965041E2052166962E55414ECDDD031496504150D2D2118A2E55411F3ECA32FB955041E8DADF1F8C2E5541614C1A31F595504122A333EA8C2E554184C47FAAF59550416722C1628A2E554197B0ECBB03965041E669A2A5882E55418442795F0A965041DA412B7D882E5541FFA7DFAD019650419451608A872E55411CDE5589DF9550414CF0571D832E554156A6A953E0955041906FE595802E554141342961109650414E619597862E5541A92B1C530E965041AA301161842E55413BE170F205965041A4DD58F2792E5541FFA7DFAD01965041168C8592742E55418A17381900965041AC235526732E5541D6DCC1C5F6955041068293756D2E5541177AD449ED9550419BA8258F682E5541461AB1EBED9550413D686C4B672E5541679FD29FFF955041141B4818712E55412E48BC4F02965041AC235526732E554153315F43069650410CD54BE4772E55414D5CA08910965041B5588889842E5541F6DFDC2E1D965041762CB37F912E5541F8501AA920965041614D02A9942E55417616F5A033965041E758D9D4A02E5541C82E37BC3496504116F9B576A12E55415FC606503396504174396FBAA22E55413C4EA1D63296504174396FBAA22E55410D0000001034D815F4955041F17C4367CA2E554145A97371EA955041EB298BF8BF2E55411AEB11C4F095504169002FC1BA2E5541040C61EDF39550412481A148BD2E55414AFC2BE0F4955041BB1871DCBB2E554112A51590F7955041AFF0F9B3BB2E5541C1FD10EFF9955041C740E804BC2E5541378EB883FB955041BB1871DCBB2E55412DD77ED5FE955041EAB84D7EBC2E55415A061EFDFB955041EB298BF8BF2E55414D6D695AF8955041E172514AC32E5541D94DFF3FFA955041A81B3BFAC52E55411034D815F4955041F17C4367CA2E55410A000000A4D863E4039650417699E363BE2E55413B7033780296504101093CCFBC2E55415EE898F10296504197A00B63BB2E55415EE898F1029650412E38DBF6B92E5541C750C95D04965041AD7FBC39B82E554131B9F9C905965041A1574511B82E55414A7A259509965041DC1F99DBB82E55413E52AE6C09965041DD90D655BC2E55416059D66B069650415E49F512BE2E5541A4D863E4039650417699E363BE2E55410C0000006D855A2ADD9550418F5A0F2FC22E5541773C94D8D9955041A539C005BF2E5541AE226DAED3955041DC1F99DBB82E5541003BAFC9D49550415B677A1EB72E554169A3DF35D69550412CC79D7CB62E5541EA5BFEF2D7955041DAAE5B61B52E5541C954D6F3DA955041651EB4CCB32E55416D855A2ADD955041651EB4CCB32E5541BD2C5FCBDA955041DAAE5B61B52E5541031D2ABEDB955041209F2654B62E55412A770A2CE395504153217EEABD2E55416D855A2ADD9550418F5A0F2FC22E55410600000031CECF30C49550411102651BDC2E5541764D5DA9C1955041CB119A28DB2E5541B286EEEDC59550415DC7EEC7D22E554156B77224C895504117D723D5D12E554156B77224C8955041B0DF30E3D32E554131CECF30C49550411102651BDC2E554109000000D2E7721B37965041FB869E76A12E55418810B8D735965041561BC1D4A02E55413E39FD9334965041DEF9F4E19F2E5541FF3184CA369650411D016EAB9D2E554149093F0E3896504112312C319A2E55416596E8A239965041903F1EC4952E5541278F6FD93B9650410761EAB6962E5541DDB7B4953A965041D429B3679C2E5541D2E7721B37965041FB869E76A12E55410A0000002CAEA037AE955041AFBC1435362F5541FF7E0110B1955041D90939682C2F5541E99F5039B49550417BC97F242B2F55418DD0D46FB695504187F1F64C2B2F55411AB16A55B8955041FC819EE12C2F55416A586FF6B59550414654E4C8342F554199F84B98B6955041AFBC1435362F554181A85D47B69550413C9DAA1A382F55415197432BB2955041A505DB86392F55412CAEA037AE955041AFBC1435362F55410E000000877D1C01AC9550413D1FB165232F5541E34C98CAA9955041DFDEF721222F55419D5CCDD7A89550413BAE73EB1F2F5541CCFCA979A9955041D145437F1E2F5541FB9C861BAA955041508D24C21C2F554159DD3F5FAB955041F34C6B7E1B2F5541DA955E1CAD955041AC5CA08B1A2F5541C4B6AD45B0955041666CD598192F554197870E1EB3955041082C1C55182F5541520881A5B5955041C23B5162172F5541BC70B111B7955041D98B3FB3172F5541F63805DCB795504137CCF8F6182F5541DFE8168BB7955041CFD405051B2F5541877D1C01AC9550413D1FB165232F55417D000000803F3AF95F955041A0B222182F2F5541E8362DEB5D955041B691D3EE2B2F5541B99650495D955041B4209674282F55418AF673A75C955041609716DF232F554138DE318C5B9550414565AD991C2F5541E6C5EF705A955041EF6AF089142F55418985362D59955041EC8875950D2F5541ACFD9BA65995504125E08BE50A2F5541529F5D575F955041D1560C50062F554156700F7B7E95504143873F3BEC2E5541B89243B386955041074EAEF6E72E5541D5176567989550410F05E8A4E42E554154DD3F5FAB955041D2CB5660E02E5541D877D910B4955041E8AA0737DD2E5541F0C7C761B4955041B90A2B95DC2E55414A2606B1AE9550411F91E00CD72E5541CDD168339F955041BA8C31E0C72E554133581EAB99955041C4436B8EC42E5541C60D734A9195504145FC894BC62E5541BAE5FB2191955041B81BF465C42E55416087BDD2969550414EB3C3F9C22E55410247048F95955041AE823FC3C02E5541BB56399C94955041C461F099BD2E55410D6F7BB795955041D940A170BA2E5541EAF6153E95955041C07F75A5B62E554152EE083093955041E015602AB02E554100D6C61492955041D27CAB87AC2E554198DED32294955041BB2CBD36AC2E5541F61E8D66959550418F6E5B89B22E554183FF224C97955041FB47C96FB72E55419A4F119D9795504137815AB4BB2E55415F87BDD296955041E7D95513BE2E55416BAF34FB969550418B0ADA49C02E554132581EAB999550413B63D5A8C22E5541C1A9F10A9F955041F6E34730C52E55419F20C3C0B69550418E6A4EF3DB2E55411B75603EC6955041FD2537CEE72E5541E870025DD39550419A10BFD0F02E5541113C2045DE955041632AE6FAF62E554151572C7EE9955041DA2BCB09FC2E5541168FD8B3E8955041201C96FCFC2E5541A9442D53E09550411383E159F92E5541D4028F00DA95504128629230F62E55417E08D2F0D1955041D4D8129BF12E55410696AF67C99550412E3751EAEB2E5541B09BF257C19550417D6D1811E62E55414F79BE1FB995504191DB8B6DDF2E5541C298283AB79550414AEBC07ADE2E55411E68A403B5955041561338A3DE2E554162E7317CB295504191DB8B6DDF2E55414FFBC46AA4955041D93C94DAE32E55411997F2DF95955041B7356CDBE62E55411CFB731F8895504173B6DE62E92E5541607A019885955041B9A6A955EA2E5541F711D12B84955041220FDAC1EB2E5541EBE9590384955041C63F5EF8ED2E55414B9B50C1889550418D66415D052F5541CB536F7E8A95504183AF07AF082F5541299428C28B955041D5C749CA092F55416E13B63A89955041A6276D28092F5541ED5A977D879550418D66415D052F55419B4255628695504195AC3D91FE2E5541F711D12B84955041A7A97373F42E55418DA9A0BF82955041C63F5EF8ED2E5541A4F98E1083955041F36EFD1FEB2E554168C0FDCB7E955041BA17E7CFED2E5541B4AFFF5C72955041AC0413D3F82E554109D6DFB57495504163A797D4F92E55413130AF7F76955041E80BCA81FB2E554185568FD878955041FCB8B166FC2E5541F29B98DB7A95504115D8DA10FC2E554101D73EFB7C955041C1B1FAB7F92E5541BCEB04C27C955041B1765498F72E55413787D2147B955041E726E8B1F52E55417700CB887C95504149A38C5AF42E55414250376F7E9550412149BD90F22E55416538C57381955041110E1771F02E5541A6B1BDE7829550417E532074F22E5541082E62908195504135F6A475F32E5541853B71A87E9550416250743FF52E5541FB64FD357E955041728B1A5FF72E554180C92FE37F955041FC618ED1F72E5541D5EF0F3C82955041596CF1B4F72E554177E5AC5882955041DFD02362F92E55410F12E51A7F95504124BC5D9BF92E5541CE98ECA67D9550416435560FFB2E55418E1FF4327C955041D17A5F12FD2E5541254C2CF578955041526D50FAFF2E5541BD7864B77595504135DCE58A012F554128D98BEA719550419EAFADC8042F55418EC771586F955041CA7BBE57052F5541F5B557C66C9550410F67F890052F55413E13D3C46B95504171E39C39042F5541F927998B6B9550413EC06815FF2E5541B9E908B867955041C5BD57AD022F5541B39650495D9550410368266C0A2F554109910D59659550410F909D940A2F55414FFFD1007B9550415F37A235082F55416A313B46829550415F37A235082F55411EC18A8A909550417E7566EE0A2F5541EC323DEBAA955041CAB7C3BC0F2F55411522F339CC955041B37D7CE2152F55411FECB6D9D795504182CDE8C8172F554121D198A9DD9550413DE2AE8F172F554154F4CCCDE29550411588DFC5152F5541D0747CF0E69550417B76C533132F554156D9AE9DE89550413BFDCCBF112F554190FB837CE5955041D09CA58C152F55417EDBFB8CDD95504138706DCA182F55417884D8F7D8955041C246E13C192F55413526FEB3D19550410CA45C3B182F5541C4163111C49550418BB16B53152F554130C7538FA695504113A3FDF50F2F55415955A12E8C9550418A7566EE0A2F5541F30E39E681955041621B9724092F5541138426E07D955041BD25FA07092F5541BF05C4AC6E9550415BA9555F0A2F5541D27547E75C955041CC60A0270B2F5541D6E788AC5B955041AFCF35B80C2F55414C11153A5B955041923ECB480E2F554170F9A23E5E9550413771CC0F212F5541269C27405F9550418D7C8E38292F55414EF6F60961955041C51104222D2F55411062E06565955041F8343846322F5541803F3AF95F955041A0B222182F2F554107000000565D28BEB2955041F22CB1B60B2F554173EE922DB195504199948F980A2F5541879B7A12B2955041446EAF3F082F5541EF6E4250B59550411C14E075062F5541DEA63C3BBA95504196AFADC8042F554106010C05BC955041A1781223082F5541565D28BEB2955041F22CB1B60B2F5541050000009449C13CBB955041324E2750002F55413BB19F1EBA9550412CF703BBFB2E5541BA163111C4955041080F76B6F82E5541B5A4EF4BC59550415451D384FD2E55419449C13CBB955041324E2750002F55410E000000D52C74E694955041D8EAE24CEB2E5541216FD1B499955041BFCBB9A2EB2E55415804479E9D955041F0090CF7EA2E5541EDA31F6BA19550411DD61C86EB2E5541EDA31F6BA1955041A23A4F33ED2E5541A8B8E531A19550416D8ABB19EF2E5541B19C68BC9E9550410B0E1771F02E55418EB4DAB79B955041C622DD37F02E5541F4A2C02599955041F2EEEDC6F02E5541E0F5D840989550414B870FE5F12E55415B91A69396955041BD3E5AADF22E55416475291E949550416E6F9DE9F42E55417C9452C8939550419956CCA8EF2E5541D52C74E694955041D8EAE24CEB2E55413000000084704A586A95504177C62BD6402E5541DECE88A7649550416358B879472E5541098DEA545E9550415D83F9BF512E5541071CADDA5A955041ED450A9A5A2E55411F6C9B2B5B955041A08080ED632E5541A9DBF39659955041E8E1885A682E554111D3E68857955041983A84B96A2E5541A86AB61C56955041E20CCAA0722E5541C971DE1B53955041A16FB71C7C2E5541AE3F75D64B955041E3FB00D08A2E55415B2733BB4A9550412B5D093D8F2E55411155EDD3429550410E385C32992E5541F6B1461438955041C4C58AF4AC2E5541CDE6282C2D955041428B65ECBF2E55414ABDCCF427955041767EFAFCCA2E5541494C8F7A2495504105D0CD5CD02E55412E1A26351D955041D9116CAFD62E554144F9D60B1A95504138C3626DDB2E5541C91577080E955041FD780858EF2E5541A2BB969A0695504111D6B2E3002F5541F3629B3B049550417DAF20CA052F554149DF5E96F794504137AE8C061D2F5541D44EB701F6945041090EB0641C2F55419522E2F702955041081F7935042F5541C633FC13079550416AC3B3B8F72E554119BD7BA90B955041B6883D65EE2E55418F4D233E0D955041B6883D65EE2E5541B5A703AC14955041F5B4126FE12E55412B38AB40169550414F1351BEDB2E554150214E341A95504140095FA1D42E5541EA9A98BC1F955041E15768E3CF2E55414477D0C02E955041F4B81F05B82E5541C52FEF7D30955041E890A8DCB72E55416C42EEA8399550410EFC511BA72E55411AC62A4E4695504161255D07902E5541E3DF51784C955041C53AD504872E5541723125D85195504162A763527B2E5541502AFDD854955041C6BCDB4F722E55410DAB6F605795504129F0D858622E5541266C9B2B5B95504150CCBF11552E55413023D5D957955041F38B06CE532E55415FC3B17B58955041086BB7A4502E5541512AFDD8549550417062AA964E2E5541823B17F558955041973E914F412E554107D6B0A6619550418E8757A1442E554164166AEA629550414908CA28472E554151A8F68D69955041F30D0D193F2E554184704A586A95504177C62BD6402E55410500000007112645C69450414F5F8F2D282E5541B5F8E329C5945041AB2E0BF7252E554166C21C03CB9450413C73221C1A2E554176CC0E20D294504186456803222E554107112645C69450414F5F8F2D282E554106000000491F7643C0945041C7E27A87182E55417F94119FB69450415C090DA1132E5541A8E135D2AC945041644F09D50C2E55412B0B9209B29450418274B6DF022E55419DA8F5D8C494504114A804340F2E5541491F7643C0945041C7E27A87182E5541
+</a>
+
+<b>
+01060000000100000001030000001600000083010000C4863E0874965041F5963CB13F2F554170074D3D7496504145D7C3CB3F2F554139C6007B7596504174173630412F55411B734D38769650416C45783F342F5541AB8A99F37796504167EE6172242F554103F2E15B92965041585E0BAC2C2F55418C6AEC6688965041448A5E161D2F55419CFA422D809650416175A0BD082F5541FA30F5C37A965041BD9C676AEF2E5541FC7820A776965041A45EE409D82E554137380FE471965041F32AC0D5CA2E55417452E901619650410BD2ABAD9E2E5541E20532615B965041F7FDFE178F2E5541E218F25E53965041E65EBD67832E55418E1B80C140965041CE203A076C2E5541E8FA1B8B2B9650413BFA0262562E5541A7C26B99149650416762DBD1412E55414200385006965041C02EB79D342E5541C39AED42089650418105F295312E5541BFDA6EFE3B965041990A35FD602E554172303E1A5596504170C40775812E55418617ABAD5C965041F5C893328B2E5541D7F271636396504127976D599A2E5541956EC17A6C9650414AD5F0B9B12E554146B5A5AC7196504121B5432DC22E55416C61D4EB749650416D263418C12E5541AB8A99F377965041409CB0C0C92E554149EA10927596504193BFA259CC2E554109AE8B8C7A965041F881D6A2DA2E55415CD17D257D965041CAE4924DEB2E55416906E90A81965041AD0C11A4F72E55416906E90A81965041109AD907022F55413EC490968596504121391BB80D2F55410E05A2598A965041F1666C7D1A2F5541CEC81C548F96504186E88E03242F55418F8C974E94965041F5BD824A2A2F554193F66D199C965041289F1C6F312F5541E4D134CFA2965041EDDF2D32362F554174D6C08CAC965041BD203FF53A2F5541C8F9B225AF965041956525CC232F55416EF49660D49650413964DE1A2D2F5541E011B68AD696504167DBA1742C2F55415451809CE49650418D7410B6372F5541D5D87591EE9650419ABC3B99332F5541C33934E1E2965041267D7187252F5541C313B4E5F2965041C3EFA8231B2F554144AE69D8F4965041F1792C7B122F5541C6481FCBF69650410574590C122F55416A47D81900975041B6BA3D3E172F55413CAA94C410975041078344F6252F55415DD92C3B1497504186FB4E011C2F55411B683C5015975041564F20C2182F55415AA4C15510975041958BA5C7132F55411B683C5015975041C1CDFD3B0F2F55413C97D4C618975041C3026921132F55415B8759D5339750412A2A30CEF92E55417EC5DC354B975041B832919FE72E55413C54EC4A4C9750416757CAE9E02E5541593F2EF2379750414406878BD12E5541E4FF63E029975041322E05E2DD2E5541D34D62322697504112FF6C6BDA2E55410A99D221359750410FDDC183CE2E5541987BB3F732975041810DA1ABC82E5541E734CFC52D975041CB4926B1C32E5541D7B738FD2D9750410B86ABB6BE2E5541F6B1658E2D975041CC5CE6AEBB2E55410CCE3D0739975041BCF20FE4B32E55413C7A6C463C975041488DC5D6B52E5541EDC05078419750410977C0CCAA2E55419A9D5EDF3E975041E8472856A72E55419CE589C23A9750415830DC9AA52E5541C827E23636975041D460BBC29F2E5541796EC6683B97504185BA5FF29C2E55418D4273FE4A97504174085E44992E5541929989CB5A975041F36DA851972E554175D4C71F5F97504199A1CC85A42E5541D3F7B9B8619750412EEAAE12C62E55411556EAA56897504160DE0835C52E5541295017376897504170F23686082F554175D4C71F5F9750411087190A0A2F5541D338105B5E9750414E7CD6660A2F55417E3A3B8768975041FF6B8E7E082F554139E5DB8B6C9750417F784A33082F554130A2AB836D975041BB1686F6012F5541E6178CCF6D97504167AEBA5AD12E55417A90392E6C975041AC8A32CBC12E5541E0D65D9F649750417F69D369A32E5541B14066BB5F975041DF9DE1A08D2E5541B40843A85D9750416422672F912E554160AD3BEA589750415C7DCA08892E55419F66739453975041613C9CD87F2E55410E1A111952975041F0A233FD6F2E5541C58FF16452975041FC6A10EA6D2E55416111AAE0579750416BBA3F786D2E55414A78E5E95497504143ABF6505D2E554133DF20F35197504143ABF6505D2E5541D3BB3C484F97504189EBDCB74C2E5541509B25B04A9750411F5B7FF9432E55411DAACAF24D975041B26FBE61432E55416734EAA64D9750415F14B7A33E2E5541077574F249975041CD63E6313E2E55415F2BDF8946975041B280E8ED2A2E5541F4D60A8DFB9650419B94DF8C102E554172497AE1F09650419D5CBC790E2E55419069ED94E89650417897AC9F0E2E5541505D7180D69650418F307196112E5541DA268BED9E9650412886DE2E1A2E554106312FA663965041B577DDD0232E5541C0E3846148965041A6E723F7272E55410AE33C982E96504173925A432C2E55411461E0371C965041D3B53EEE2E2E554157757BBB0E965041E07D1BDB2C2E55415EFC29780396504181BEA526292E5541B3EAB7220296504196F3FB262D2E5541BDBB9F2C07965041D1ED6101312E554180F95C6505965041E88626F8332E554182C1395203965041F2570E02392E5541815DCB5B04965041A5728B74412E5541414025BB0A9650414CF443F0462E5541AF24B9CF1C9650417DAD8D6C542E5541102C60EB139650417DAD8D6C542E554169A516EC1B965041A77C82D55B2E554114072D1A0D9650418C163BFD6F2E5541059E7F89F1955041CD4EEDAF5F2E55418C77917FEC9550417A1C27E0682E5541783317C0D7955041A77C82D55B2E5541CBAF53EBA89550418F3B7E87432E5541EA122552989550411B5C80AE4F2E5541E13ACE949B9550411781B37F562E5541B3DA729FA89550412FA0FA6D642E5541E7CB2468BA955041686C79656F2E5541783317C0D795504107878FA9822E5541705BC002DB955041B354C9D98B2E5541F25905CADC955041524D22BE942E554154895528D7955041A0C6D8BE9C2E5541182C70A4E0955041083D194EA82E554141B1FE6ADA9550416A8E260CAD2E55411FBA60BFCF95504149978860A22E55418C0B6E7DD4955041516FDF1D9F2E55419DBB1BF8CD95504116F03C3A9E2E5541119B19D1C19550410218E67CA12E5541B82163D0B99550411AEDC6C8A12E5541FE569F11AD955041CB95CD27A42E55417380038DAE955041FE1A5CEE9D2E55411A074D8CA69550417C1C17279C2E55410B9E9FFB8A955041C54EDDF6922E554133B70AC06C95504171B0F324842E55411BE780BF6C9550417C9C0811842E554192B801B06C955041B15EF919842E554145F219716B955041CCDF90D7862E5541D1D8CB8F719550413C6F3E4A892E55412F35A186799550417BB6F7B08D2E554182F82712819550419ACB1341912E55410BA41B26879550410462EBC4932E554136F33943859550410DDEB8E9962E5541EE4C34FE7A9550416F99766A902E554166A140EA74955041F069507B8D2E5541275A87837095504186D378F78A2E5541FEC89DCE699550413C6F3E4A892E5541147F6D8067955041713A2A8C8A2E55415567DA086695504150845ADA8C2E5541747CF69869955041DAB380C98F2E554172DB42776F955041A46462AC912E55418657109C72955041AEE02FD1942E5541DA37186E7795504122770755972E554123FB9EF97E955041EC0A68F19B2E554101284E0184955041C1BB49D49D2E554160A1A43E89955041D654983F9E2E5541E9D0CA2D8C955041B59EC88DA02E55419DCBDC5E90955041A964C600A62E5541727CBE4192955041FD44CED2AA2E5541C91AFB7B8E955041A7C312DFAB2E5541406F076888955041FD44CED2AA2E55410BA41B26879550419CA69198AE2E5541406F0768889550418F6C8F0BB42E55411520E94A8A955041B8FD78C0BA2E5541B381AC108E955041CBF5130AC12E5541B3642BCA90955041356F6A47C62E5541FF869ADF89955041896CF35FC82E5541A4CB780A7C95504127B135DFCE2E5541E4B3E5927A9550417D32F1D2CD2E5541102085F675955041530054FCCC2E5541478C245A71955041F2E5499DCD2E55416742F40B6F9550413D4A844ACF2E5541A82A61946D9550417074BC6AD62E55419EAE936F6A955041301082BDD42E55417F9977DF66955041850D0BD6D62E554135353D32659550418F89D8FAD92E5541F6ED83CB609550410320B07EDC2E55414A51FA6B61955041F8EDD6CCDE2E554110F1858463955041BF8D62E5E02E554110F1858463955041776D8CD4E32E55413191984262955041158D549AE72E55419271D07C5E95504103ADA305E82E55410D126AE059955041BB8CCDF4EA2E55419271D07C5E955041618C464FEE2E5541EC7157225B955041F9CB5D80F22E5541AF32C79653955041656B62F3F72E55416A1386764C955041BB6A54A8FE2E554172E75D5A4C955041BF120470FE2E5541DBC37D544C955041BAC896E2FE2E5541D6760DF95A955041F85AE9D4092F55414D9F5D575F955041D0560C50062F554156700F7B7E9550413F873F3BEC2E5541BC9243B386955041074EAEF6E72E5541D2176567989550410D05E8A4E42E554150DD3F5FAB955041D4CB5660E02E5541D677D910B4955041E4AA0737DD2E5541EBC7C761B4955041BB0A2B95DC2E55414A2606B1AE9550411A91E00CD72E5541D1D168339F955041B58C31E0C72E554130581EAB99955041C6436B8EC42E5541C90D734A9195504143FC894BC62E5541BFE5FB2191955041BB1BF465C42E55416087BDD29695504153B3C3F9C22E55410247048F95955041AD823FC3C02E5541B956399C94955041C861F099BD2E55410C6F7BB795955041D840A170BA2E5541EDF6153E95955041BF7F75A5B62E554151EE083093955041E015602AB02E5541FDD5C61492955041D17CAB87AC2E55419ADED32294955041BC2CBD36AC2E5541F71E8D6695955041916E5B89B22E55417FFF224C97955041FD47C96FB72E55419E4F119D9795504136815AB4BB2E55416087BDD296955041E7D95513BE2E55416AAF34FB969550418D0ADA49C02E554130581EAB999550413F63D5A8C22E5541C6A9F10A9F955041FAE34730C52E55419C20C3C0B6955041916A4EF3DB2E55412075603EC6955041FC2537CEE72E5541E970025DD39550419710BFD0F02E5541153C2045DE955041612AE6FAF62E55414C572C7EE9955041D82BCB09FC2E5541188FD8B3E8955041211C96FCFC2E5541A7442D53E09550411283E159F92E5541D2028F00DA9550412D629230F62E55418108D2F0D1955041D5D8129BF12E55410596AF67C99550412A3751EAEB2E5541B49BF257C19550417F6D1811E62E55414D79BE1FB995504196DB8B6DDF2E5541C698283AB79550414DEBC07ADE2E55411F68A403B5955041571338A3DE2E554163E7317CB295504196DB8B6DDF2E554152FBC46AA4955041D93C94DAE32E55411797F2DF95955041B3356CDBE62E55411AFB731F889550416FB6DE62E92E55415E7A019885955041B8A6A955EA2E5541F611D12B84955041200FDAC1EB2E5541ECE9590384955041C73F5EF8ED2E55414E9B50C1889550419266415D052F5541CB536F7E8A95504182AF07AF082F5541299428C28B955041D5C749CA092F55416D13B63A89955041A1276D28092F5541F05A977D879550419266415D052F55419D4255628695504194AC3D91FE2E5541F611D12B84955041A6A97373F42E55418EA9A0BF82955041C73F5EF8ED2E5541A3F98E1083955041F66EFD1FEB2E55416AC0FDCB7E955041BC17E7CFED2E5541B9AFFF5C72955041AA0413D3F82E554109D6DFB57495504167A797D4F92E55412F30AF7F76955041E80BCA81FB2E55418A568FD87895504100B9B166FC2E5541EE9B98DB7A95504113D8DA10FC2E554100D73EFB7C955041C2B1FAB7F92E5541B8EB04C27C955041B0765498F72E55413687D2147B955041E626E8B1F52E55417A00CB887C95504147A38C5AF42E55414450376F7E9550412149BD90F22E55416438C573819550410F0E1771F02E5541A7B1BDE7829550417D532074F22E5541082E62908195504139F6A475F32E5541823B71A87E9550415F50743FF52E5541FB64FD357E955041728B1A5FF72E55417CC92FE37F955041F8618ED1F72E5541D7EF0F3C82955041546CF1B4F72E55417CE5AC5882955041E0D02362F92E55411312E51A7F95504129BC5D9BF92E5541D098ECA67D9550416135560FFB2E55418D1FF4327C955041CF7A5F12FD2E5541244C2CF578955041566D50FAFF2E5541BB7864B77595504133DCE58A012F554127D98BEA719550419BAFADC8042F55418EC771586F955041C67BBE57052F5541F4B557C66C9550410F67F890052F55414313D3C46B95504170E39C39042F5541FA27998B6B9550413EC06815FF2E5541BEE908B867955041C2BD57AD022F5541B19650495D955041FE67266C0A2F55410D910D596595504114909D940A2F554151FFD1007B9550416237A235082F55416F313B46829550416237A235082F554119C18A8A90955041807566EE0A2F5541F1323DEBAA955041C5B7C3BC0F2F55411622F339CC955041B57D7CE2152F55411BECB6D9D79550417FCDE8C8172F55411DD198A9DD95504141E2AE8F172F55414FF4CCCDE29550411088DFC5152F5541D0747CF0E69550417776C533132F554152D9AE9DE89550413FFDCCBF112F55418DFB837CE5955041D29CA58C152F55417E37808BE2955041496037C0162F55414C09589AE395504148F94D55162F5541A873A00BE6955041EB01315B152F554171007D40E69550414AEA0866152F5541C2E3F44CE69550416928054B152F55414063AA54EB9550411D2913960E2F55413454DFB9E395504187919F47082F55415A230C7EEA955041038B2AB9FB2E55410703366DED955041E3EA17FBFC2E55418C629C09F2955041BB6A54A8FE2E55411CC202A6F6955041038B2AB9FB2E554161E143C6FD955041850B75B1F62E554168C1F45AFD95504100AC0E15F22E5541CD7C2224029650415AF27632E62E554115A3D3E102965041B30C50C0E12E5541BEEC684A069650416015B7F8DB2E5541772A2683049650413DB41515DB2E5541F24132FE01965041A93B68B6DC2E55416D593E79FF955041FC966F74E12E5541EA3827E1FA955041C941A6C0E52E5541F60004CEF89550418DE3D1EFE22E5541810C3819F1955041617925EFDA2E5541BF6101CDEC955041946A80ACD72E5541FD87B28AED95504157A83DE5D52E55412BBA3B78F39550414F9F32C8CE2E5541E8D4B8EAFB9550412DD117D1C72E5541041C25250E965041C76C05F6BB2E5541544BE1FF1596504105C2CEA9B72E55415DB85A131C9650419A9EEAFEB42E55410602F07B1F96504174756C2EB62E5541B277D0C71F9650416649214BB92E5541CB078AA11B965041EB3115D0BB2E55417910F1D915965041262C7BAABF2E5541D28E385E10965041179CC1D0C32E554173CFC2A90C965041479627ABC72E55415BD28FBC0A965041396ADCC7CA2E5541041C25250E96504114A5CCEDCA2E5541873C3CBD12965041FE0B08F7C72E554188A0AAB3119650415DCB7DABCB2E5541643F09D01096504106151314CF2E5541E927FD5413965041C952D04CCD2E5541F294766819965041C0E55639C72E55411EFF226921965041B778DD25C12E554118DCE2A22B965041701A0955BE2E55410AB097BF2E9650417E465438BB2E5541DA8619EF2F965041BD9B1DECB62E5541D3FF6A323B96504163FFE7FDA82E55411EEEF8DC39965041263DA536A72E554198A1966138965041F5AFB86FA92E554139468FA333965041C15AEFBBAD2E55419DC4D6272E9650419D95DFE1AD2E5541D0B531E52A96504186FC1AEBAA2E5541231139A32F96504127A1132DA62E5541141D11D33496504166F6DCE0A12E5541D3FF6A323B96504195F042BBA52E554195AAA17E3F965041D14E178CA82E55410B03DC2946965041C0F680C5AE2E554190EBCFAE489650412E46B053AE2E5541962CFEDE519650416EFFE7FDA82E5541916D2C0F5B9650417D8FA1D7A42E554118BA8E8A5C9650417C2B33E1A52E5541C16792E95E965041A95DBCCEAB2E55415F7CD1515E9650415DDCA737B32E55417779043F60965041A766C7EBB22E5541092AD5B06096504174756C2EB62E55418E12C93563965041D2D073ECBA2E5541228B769461965041E805CAECBE2E55418441E12B5E9650414BF18A84BF2E5541916D2C0F5B965041DC3DEDFFC02E554185A54F225D965041DAD97E09C22E5541145F2BB164965041B6146F2FC22E5541A4471F36679650413BFD62B4C42E55417F820F5C679650412DD117D1C72E55415ABDFF816796504180C8B098CD2E554198E3B03F6896504164701AD2D32E5541ADB498496D965041DB2CC373D92E554158C60A9F6E965041095F4C61DF2E55417C8B1A796E965041F96A2491E42E5541648EE78B6C9650417027CD32EA2E55419F884D6670965041180DF4A4EE2E554192C0707972965041FD18CCD4F32E554190F8938C74965041C6689F47002F55416B3384B274965041FCA333520D2F55411645F60776965041EFCA2CD9272F5541C4863E0874965041F5963CB13F2F5541360000009573759CD1965041DA102FF72A2F55419E878928B59650415A460F760F2F5541C8D19AD7B4965041D04AF742192F554119967BBBB09650418E733CFF172F5541E07B2892AD965041B4B343E8252F554119B35FE1A79650418E3974B3292F5541695A5C9FAC965041FC9DD88B2C2F5541695A5C9FAC965041768FE6F8302F55416D47823FA7965041768FE6F8302F554194C15174A39650419D09B62D2D2F554148EA9630A2965041514FDF0F232F5541A77EB98EA1965041E3075F5D172F5541BE0B6323A39650419B3AAEDF072F5541E4684E32A8965041A027D47F022F55415F9424EB9A965041A431DE45F42E5541A188C3549396504145BA9F0DEC2E554189FB19C091965041A81E04E6EE2E5541ED5F7E98949650410796421EF72E5541DAA2167E96965041660D8156FF2E554189FB19C091965041B3E43B9A002F554117C7736D8B965041674749A2ED2E5541B4620F9588965041548AE187EF2E55412A67F761929650419B3AAEDF072F55412A67F7619296504171D3B80A112F5541649E2EB18C96504184AD044B062F55413E4143A287965041623D3FDCFB2E55410427F07884965041CE7BEFF4F32E554151FEAABC859650411F5DB4FEE62E55414C11851C8B965041370742B9DF2E5541ED7C62BE8B9650412837003FDC2E554155EBD05C8096504187E806C3D22E554168A838777E96504187E806C3D22E5541335E27C87E9650414EB1CF73D82E5541FA43D49E7B9650414EB1CF73D82E5541AA9CD7E07696504115B46070CC2E554172518C05999650414DE2C725B32E554198AE77149E965041491286ABAF2E55410AE31D67A4965041000B0DE2B12E5541A29193EEA6965041C3039418B42E5541DFC9046A7F965041D8ACE7A6CE2E554113F731F387965041372426DFD62E554139541D028D965041C9BFC106D42E554150E1C6968E965041AD45F2D1D72E554163814A8B95965041B2321872D22E5541C3156DE994965041C4D29B66D92E5541001DE6B292965041D385F9BAE52E5541E87258F8999650411F40D0D8EF2E5541A761D568AA965041660D8156FF2E55418FB747AEB1965041A027D47F022F5541656D36FFB196504103A91C7EFC2E55417CFADF93B3965041623D3FDCFB2E55413FF366CAB5965041AA0AF0590B2F55411A658309D6965041857C0C992B2F55419573759CD1965041DA102FF72A2F55415E000000FF7FF3D6109750412FC2357B212F55419C1B8FFE0D9750418E733CFF172F554141749240099750415A460F760F2F5541048AFD9C02975041AEF715FA052F5541467E9C06FB965041C6A1A3B4FE2E55415D282AC1F39650410796421EF72E554111516F7DF2965041EC1B73E9FA2E55414A6BC2A6F59650413CC36FA7FF2E55410D812D03EF9650412906088D012F5541888F1F96EA965041D084BF8E072F5541FAE0A90EE89650415A460F760F2F554137E822D8E59650418E733CFF172F5541EB106894E496504192437E791B2F5541C983BEFFE2965041429C81BB162F5541D853007AE6965041FF9E12B80A2F5541888F1F96EA965041D571E52E022F5541FAC3C5E8F09650417ACAE870FD2E5541BCBC4C1FF3965041672A657CF62E554183A2F9F5EF965041585A2302F32E554137E822D8E59650412536C612FE2E554175EF9BA1E3965041D95E0BCFFC2E5541AE09EFCAE6965041FFD8DA03F92E554137CB3EB2EE96504141CD796DF12E554158CA2EB1EB9650419FF2E036EF2E5541BEDFA6AEE2965041B69587F6F92E5541EE0E46D6DF965041971D227DF92E5541E3E6CEADDF965041248D7AE8F72E5541D1E998CBE9965041F8C15C00ED2E55418EB00787E59650411DC984FFE92E5541AAD5B491DB965041AC6D10CEF92E5541426D8425DA965041971D227DF92E5541DD570C28E39650418BE8EE19E82E5541B1647717D896504183DEFCFCE02E55415BF97C8DCC965041F55DDBC0FA2E5541E8904C21CB96504148761DDCFB2E554161B0B63BC99650414E2D578AF82E5541E8904C21CB965041690C0861F52E554199E94780CD965041B8B30C02F32E554133D4CF82D69650413AEE310AE02E5541C361ADF9CD9650412B557D67DC2E5541718F6712C69650411294519CD82E55410A45BCB1BD965041808B448ED62E5541026341BDB69650412D730273D52E5541276A69BCB3965041AFE25ADED32E554108F20343B39650417C1A0714D32E554191F01E34AE96504165AC93B7D92E5541CB473584AB965041603B563DD62E5541E09723D5AB96504167CA18C3D22E55412ACEEAFBA596504126E43FEDD82E554198C5DDEDA3965041F21BEC22D82E5541BCAE80E1A79650412802C5F8D12E5541A1CFCF0AAB9650415EE89DCECB2E55417CC8A70BAE965041600623DAC42E55419B18965CAE965041B9D59EA3C22E5541012E0E5AA59650410F5262FEB52E55419D5E9290A79650419DC1BA69B42E55415D504292AD96504138AC426CBD2E5541A4228879B59650414E422DF1B62E5541156D33DABD965041B357A5EEAD2E5541771E2A98C29650413C56C0DFA82E5541ABE67D62C39650418AB7C84CAD2E5541A52F44B4C69650413C56C0DFA82E55410D987420C896504194DF3F75AD2E55419B07CD8BC6965041FC4770E1AE2E5541092737A6C4965041F00174ADB52E55412ABD212BBE965041B4646129BF2E5541891B607AB89650416EC74EA5C82E55418FD29928B596504119691056CE2E554146E2CE35B4965041A149A63BD02E554185AA2200B59650413D52B349D22E55410C8BB8E5B6965041906AF564D32E554159ECC052BB965041BA0AD206D42E5541F4D64855C496504141C3F0C3D52E55414C60C8EAC8965041B4539858D72E5541E2D91273CE9650415B841C8FD92E554159DBF781D3965041202D063FDC2E5541EBBB8D67D596504140A56BB8DC2E5541FCA7FA78E39650419EF6EDCCC52E5541ACE270CCEC965041C650CE3ACD2E5541B96E6934DF965041EB462D69E22E55412648D71AE4965041E5B76AE3E52E5541DE64C862F4965041BE7B0F81D72E5541024E6B56F8965041B8C4D5D2DA2E5541144BA138EE965041C1CEC7EFE12E554135E18BBDE7965041D4D8B90CE92E5541D43C513AF496504116F4C545F42E5541D68F09A9FE9650412D976C05FF2E554146BC2FFE0D97504168FB3E900D2F55417ECD491A129750418CE4E183112F5541CD744EBB0F9750411EEDEE91132F554142237B5B0A9750413F83D9160D2F5541D89CC5E30F9750411836B5E3162F55417ECD491A12975041C7702B37202F5541FF7FF3D6109750412FC2357B212F5541050100002BA43E2E299750413108AA7F022F55410D72D5E82197504116F4C545F42E554123E048451B97504138D0ACFEE62E554100F7A55117975041EB462D69E22E5541316C41AD0D975041EC8C299DDB2E5541953BBD760B9750411CBCC8C4D82E55413DB23DE1069750413D52B349D22E55414016BF20F99650417AFC8108DA2E55411D2D1C2DF5965041758B448ED62E5541BB7B256FF09650412802C5F8D12E5541339B8F89EE9650414309EDF7CE2E5541339B8F89EE9650411F204A04CB2E55419AE53AEAF696504130D783B2C72E5541C5A39C97F0965041A81E65F5C52E5541058A756DEA965041311D80E6C02E5541D44D1A0BDC965041D1890E34B52E5541448B0931D39650419E07B79DAD2E554120A2663DCF9650411DDE5A66A82E55419F780A06CA965041AC93AF05A02E5541C57F3205C7965041BD4AE9B39C2E5541DF865A04C4965041AC93AF05A02E5541CA366CB3C3965041322E49B7A82E55414E7E4DF6C19650411DDE5A66A82E55414E7E4DF6C1965041C1E39D56A02E5541F4D64855C4965041E27988DB992E554188D56346BF96504178CB5B3B9F2E5541793CAFA3BB9650416714228DA22E5541EF30D877AF96504141C7FD59AC2E554169963EC6A6965041203113D5B22E5541012E0E5AA5965041ADA06B40B12E5541121A7B6BB39650416C855F07A62E5541D77C68E7BC965041390308719E2E55414E7E4DF6C196504150717BCD972E55412406E87CC19650415628B57B942E5541A74DC9BFBF965041C41FA86D922E5541CC54F1BEBC965041CF471F96922E55411BFCF55FBA9650419F18806E952E55416AA3FA00B8965041464904A5972E55415B0A465EB49650410D38EA88932E55419E6B4ECBB8965041C0AE6AF38E2E554118D1B419B0965041C665A4A18B2E554154465075A696504100BDBAF1882E5541D9D32DEC9D96504179DC240C872E55419101E80496965041B3333B5C842E5541E65F265490965041C312EC32812E5541A3FE1DE78B96504156397E4C7C2E5541D32DBD0E8996504167F0B7FA782E5541F85C5C368696504177CF68D1752E5541717CC650849650412EDF9DDE742E554151F7A49C7296504141D8C62A942E554176FECC9B6F965041C41FA86D922E5541773300FF809650415E0E3D06722E554121C8057575965041BE6C7B556C2E5541B4EE978E70965041D72DA720702E55411E754D066B9650411185BD706D2E5541E3107B7B5C9650417E935EBA832E5541A0AF720E58965041C312EC32812E55416D1C52A7689650411DF330CD662E5541C03494C269965041AA628938652E5541FCA92F1E60965041162F3BE4582E55414B5134BF5D965041758D7933532E554133D604285396504181FBEC8F4C2E5541CD8B59C74A96504100D29058472E5541CED155FB43965041F138DCB5432E5541FA8FB7A83D96504140B8692E412E554174F51DF7349650416F0F807E3E2E5541F73CFF39339650418F5F6ECF3E2E554199FC45F631965041164004B5402E55411351E37341965041FE8B94244E2E554197A580F150965041D1AFAD6B5B2E5541F174FCBA4E965041444055005D2E5541E8A34A972F9650417EA83421422E55419FB37FA42E965041164004B5402E5541276C9E6130965041E82EEA983C2E55410B58BA2722965041867DF3DA372E55411E9BEC3D11965041F003A952322E554102870804039650416EDA4C1B2D2E55414B77D3F6039650419309EC422A2E5541912B94D21296504153FB9B44302E55416998736B23965041FF9C5DF5352E5541958B087C2E965041185E89C0392E554169CDA6CE34965041BA1DD07C382E55414FC67ECF37965041EA74E6CC352E55412F76907E379650410A0BD1512F2E55413605530434965041987A29BD2D2E5541E2EC10E9329650414F8A5ECA2C2E5541D44F4FB0589650417A48C077262E55412D1FCB795696504136C932FF282E554117B1571D5D965041749186C9292E554145C2713961965041217944AE282E5541DD5941CD5F9650411D080734252E5541A3022B7D62965041DE173C41242E55410B6B5BE96396504166F8D126262E55419D4BF1CE65965041CE600293272E55411E754D066B965041749186C9292E5541C9160FB770965041E7212E5E2B2E5541B3A89B5A7796504125EA81282C2E5541DB027CC87E965041069A93D72B2E554118AD4A8786965041BD8151BC2A2E55419F8DE06C88965041D88879BB272E55418486B86D8B965041217944AE282E5541111E88018A965041BD8151BC2A2E5541A09A9CA799965041F49C5DF5352E5541782FF368AA96504151A8E3D5252E554186C8A70BAE96504151A8E3D5252E5541DAE0E926AF965041F149A5862B2E5541ACCFCF0AAB965041CC427D872E2E554169963EC6A696504192EB6637312E5541794D7874A3965041283D3A97362E5541E76CE28EA196504141FE65623A2E5541E76CE28EA19650416176CBDB3A2E55410C6341BDB696504117753718522E55419E320ED2D09650418D6553566F2E5541A2CBC274D4965041530E3D06722E5541A085C640DB965041D2E4E0CE6C2E554122AF2278E096504140044BE96A2E5541C8DFA6AEE296504125FD22EA6D2E5541E3E6CEADDF9650410A1E7213712E5541A085C640DB965041D0C65BC3732E5541EF2CCBE1D8965041587F7A80752E55417B7E9E41DE9650418A01D2167D2E5541011938F3E696504119B726B6742E5541C914DA11F49650410C3CF71E6A2E55417709543104975041CB20EBE55E2E5541DE2B88690C9750415E477DFF592E5541E7357A8613975041989E934F572E5541AB9867021D975041844EA5FE562E5541CAFF03AB359750410007C4BB582E5541AEE712DB5097504192E759A15A2E5541AEE712DB509750413918DED75C2E554151B8226837975041A73748F25A2E55417D874DE6189750412057B20C592E5541BD959DE41297504149F78EAE592E5541E29CC5E30F9750419D0FD1C95A2E5541DE2B88690C9750410FA0785E5C2E5541B01A6E4D08975041B6D0FC945E2E55418231CB59049750415D0181CB602E554100086F22FF9650414C4A471D642E5541D414DA11F4965041BD94F27D6C2E5541FB61FE44EA9650410F8FAF8D742E5541F80E46D6DF965041FD9179AB7E2E55418E88905EE59650412F14D141862E55415D13F502EF965041478F00D9902E5541EDD505DDF7965041A3B13411992E554111BFA8D0FB965041F0123D7E9D2E5541D7679280FE96504153C4333CA22E554137FB03330A975041E730C289962E554107CC640B0D975041695A1EC19B2E5541A738F3580197504108B6E33DA82E55410FA123C5029750414BEF7482AC2E5541C0F91E2405975041F8D63267AB2E5541D5490D75059750417FB7C84CAD2E55415891EEB703975041DDF78190AE2E55415D022C3207975041BC61970BB52E554180EBCE250B975041EB903633B22E5541E853FF910C97504154F9669FB32E5541DABA4AEF08975041A15A6F0CB82E5541650C1E4F0E975041E82CB5F3BF2E5541931D386B12975041E60E30E8C62E554163EE98431597504162815271CF2E554163EE984315975041CF5AC057D42E5541988E75E5159750419403AA07D72E5541B706DB5E169750411CE43FEDD82E55413EBFF91B189750415F1DD131DD2E5541ACDE6336169750417E9536ABDD2E5541E7357A86139750414B13DF14D62E5541C7BD140D13975041F4895F7FD12E55419E45AF9312975041DAC833B4CD2E5541218D90D61097504198672B47C92E5541703495770E97504140DEABB1C42E5541F37B76BA0C9750411CF508BEC02E5541B042E575089750413D8BF342BA2E55419681B9AA04975041A711A9BAB42E5541E528BE4B0297504179008F9EB02E554149F8391500975041748F5124AD2E5541E18F09A9FE965041701E14AAA92E5541C23F1B58FE965041B59DA122A72E55413A5F8572FC965041716410DEA22E55417FDE12EBF996504178F3D2639F2E5541D8AD8EB4F796504188D2833A9C2E5541E964C862F49650417939CF97982E554191DB48CDEF96504141003E53942E5541E639871CEA9650418B36057A8E2E5541E2A0D279E6965041879D50D78A2E554156777642E1965041D1D317FE842E5541AF1E7BE3DE965041C33A635B812E5541662EB0F0DD96504165FAA917802E5541B5D5B491DB9650419529493F7D2E55413ED4CF82D6965041F4AFFEB6772E55413A639208D3965041382F8C2F752E55419B07CD8BC696504190A742F4912E5541287725F7C496504147B77701912E5541B282FC22D1965041B14EF649732E554188E62C17A7965041E638DCB5432E5541012E0E5AA5965041DC10658D432E554118AD4A87869650411546E93B712E554186CCB4A184965041C12DA720702E55416F25014CA3965041C7C0763C432E55414FD512FBA2965041D79F2713402E5541C8F47C15A19650411C1FB58B3D2E554147CB20DE9B965041CD77B0EA3F2E554138326C3B989650415AE708563E2E55415D610B6395965041609E42043B2E55419C295F2D969650415C2D058A372E554163F0CDE89196504138446296332E5541FB879D7C90965041FA5397A3322E5541DC37AF2B90965041650F807E3E2E5541D680757D939650412AB8692E412E5541A651D655969650412090F205412E55418B4AAE56999650411AD9B857442E554157AAD1B498965041EAA91930472E55418C5B772781965041988DCA7E6F2E554107F610D989965041FA663865742E5541C7E7C0DA8F965041411107247C2E5541A2E098DB92965041E4D04DE07A2E554187D970DC959650410D712A827B2E554104928F9997965041B4A1AEB87D2E55413EE9A5E99496504165FAA917802E5541EBD063CE939650418E9A86B9802E55416CFABF059996504135CB0AF0822E5541305DAD81A2965041FB73F49F852E55413DD8DC18AD965041B6F46627882E5541FCAB070FBA96504119A65DE58C2E55410A45BCB1BD9650411F5D9793892E55410FB6F92BC1965041C58D1BCA8B2E5541490D107CBE965041A086F3CA8E2E5541C00EF58AC3965041E3BF840F932E554147EF8A70C596504156502CA4942E5541FEEDF6ACDC96504112E267FC7E2E554147DEC19FDD965041C33A635B812E5541890A97A9D09650412DF64B368D2E554190DF5563C6965041304904A5972E554197A34B4CD4965041E3AEBB3EAB2E55410A34F3E0D596504189DF3F75AD2E55411A02DBE6EA96504175C48487BE2E55415213F502EF9650413B6D6E37C12E55412AA84BC4FF965041A857A5EEAD2E5541717A91AB079750413D8BF342BA2E554137237B5B0A975041564C1F0EBE2E55410030E64AFF9650414F776054C82E5541FFE9E916069750410F691056CE2E5541C90311410C97504102231422D52E5541316C41AD0D9750410794519CD82E554169A5D2F1119750413FCDE2E0DC2E5541FF1E1D7A1797504182067425E12E5541299782F3179750410F9E43B9DF2E5541C12E52871697504193E524FCDD2E55413EE770441897504188BDADD3DD2E5541FA67E3CB1A975041E06EA491E22E5541B5E855531D97504176C077F1E72E55411D5186BF1E975041FDA00DD7E92E5541D31ABF9824975041A7244A7CF62E5541059D162F2C975041552A8D6CEE2E5541EABD65582F975041176239A2ED2E55413ED6A77330975041B36A46B0EF2E5541ACCD9A652E975041B7DB832AF32E5541D1FC398D2B975041FA3C8C97F72E554154441BD02997504149E49038F52E55415AFB547E2697504124B5F110F82E5541A75C5DEB2A975041D3EF6764012F55412BA43E2E299750413108AA7F022F554106000000175CDAF6C4965041D121910EEF2E5541CF54612DC796504119290AD8EC2E55411B2C1C71C896504130B6B36CEE2E55412EE9838BC6965041D7178748FD2E5541963A0E04C4965041B19DB713012F5541175CDAF6C4965041D121910EEF2E55410600000057E47E3616975041D08C510CB82E55417D5E4E6B1297504138DEDB84B52E55414427171C189750415E58ABB9B12E55410603BA2C23975041C1D9F3B7AB2E5541F3455212259750413CCB0125B02E554157E47E3616975041D08C510CB82E554105000000F93B484C33975041F53719F38E2E55413743C1153197504187D3B41A8C2E5541F5313E8641975041B13AAAEF822E5541B72AC5BC43975041159F0EC8852E5541F93B484C33975041F53719F38E2E554105000000B678A194159750417D0D7D667A2E5541D2F270C91197504119A9188E772E5541B65BBD6E1E9750416A8ADD976A2E554119C02147219750416E5A1F126E2E5541B678A194159750417D0D7D667A2E554106000000A977676837975041669DB7F76F2E55415DA0AC243697504106099599702E554110C9F1E034975041B66198DB6B2E55417A234CF34597504122A048F4632E5541321CD32948975041FC2579BF672E5541A977676837975041669DB7F76F2E5541060000000CEDF96814975041912B31DE342E5541E24C1DC7139750412552C3F72F2E55415179431C239750412F7A3A20302E5541D959D90125975041631A17C2302E5541F8A9C75225975041DA1BFCD0352E55410CEDF96814975041912B31DE342E554107000000615C0189F6965041A546ECCB232E554137BC24E7F596504196AD3729202E5541236C3696F59650410FF5186C1E2E5541615C0189F6965041923CFAAE1C2E5541D717EA63029750413E24B8931B2E554100B8C6050397504128B64437222E5541615C0189F6965041A546ECCB232E5541070000008203B5DED7965041A67B1F2F352E554178DB3DB6D79650416E428EEA302E5541626DCA59DE965041C7110AB42E2E554170067FFCE1965041C7110AB42E2E554145481D4FE8965041B2C11B632E2E55414F709477E896504114731221332E55418203B5DED7965041A67B1F2F352E55410A000000CF68CAE1B2965041501025A5292E55418678FFEEB19650412C2782B1252E554107A25B26B79650415C5621D9222E5541A4AA6834B9965041CA758BF3202E554125D4C46BBE965041396D7EE51E2E5541E15437F3C09650417735D2AF1F2E554115F51395C1965041EAC57944212E5541F5A42544C1965041374FF9D9252E55412B8BFE19BB9650412C2782B1252E5541CF68CAE1B2965041501025A5292E55411E000000394EA1D63296504174396FBAA22E554147DA993E25965041BAD6813E992E5541C5B03D0720965041DF052166962E554150CDDD031496504155D2D2118A2E55411C3ECA32FB955041E7DADF1F8C2E55415C4C1A31F595504125A333EA8C2E554186C47FAAF59550416A22C1628A2E554198B0ECBB03965041E269A2A5882E55418142795F0A965041D8412B7D882E5541FCA7DFAD019650418F51608A872E554118DE5589DF9550414CF0571D832E554157A6A953E0955041916FE595802E5541413429611096504151619597862E5541A52B1C530E965041AA301161842E55413FE170F205965041A7DD58F2792E5541FCA7DFAD01965041118C8592742E55418917381900965041A9235526732E5541DADCC1C5F6955041088293756D2E5541157AD449ED9550419CA8258F682E55414A1AB1EBED9550413E686C4B672E55416A9FD29FFF955041171B4818712E55413048BC4F02965041A9235526732E554153315F43069650410BD54BE4772E55414C5CA08910965041B4588889842E5541F5DFDC2E1D965041722CB37F912E5541FA501AA920965041624D02A9942E55417816F5A033965041E258D9D4A02E5541CB2E37BC3496504116F9B576A12E554163C606503396504174396FBAA22E5541394EA1D63296504174396FBAA22E55410D0000001434D815F4955041ED7C4367CA2E554145A97371EA955041EA298BF8BF2E55411AEB11C4F095504169002FC1BA2E5541FF0B61EDF39550412481A148BD2E554148FC2BE0F4955041BC1871DCBB2E55410EA51590F7955041B2F0F9B3BB2E5541BFFD10EFF9955041C740E804BC2E55413C8EB883FB955041BC1871DCBB2E55412BD77ED5FE955041E6B84D7EBC2E55415B061EFDFB955041EA298BF8BF2E55414C6D695AF8955041E472514AC32E5541DE4DFF3FFA955041AA1B3BFAC52E55411434D815F4955041ED7C4367CA2E55410A000000A2D863E4039650417899E363BE2E55413A7033780296504105093CCFBC2E554159E898F10296504192A00B63BB2E554159E898F1029650412A38DBF6B92E5541CC50C95D04965041AD7FBC39B82E554134B9F9C905965041A3574511B82E55414D7A259509965041D71F99DBB82E55414352AE6C09965041DB90D655BC2E55415E59D66B069650416349F512BE2E5541A2D863E4039650417899E363BE2E55410C00000072855A2ADD955041915A0F2FC22E5541783C94D8D9955041A139C005BF2E5541AE226DAED3955041D71F99DBB82E5541013BAFC9D49550415A677A1EB72E554169A3DF35D695504131C79D7CB62E5541E65BFEF2D7955041DDAE5B61B52E5541CB54D6F3DA955041601EB4CCB32E554172855A2ADD955041601EB4CCB32E5541C12C5FCBDA955041DDAE5B61B52E5541FF1C2ABEDB9550411B9F2654B62E554127770A2CE39550414E217EEABD2E554172855A2ADD955041915A0F2FC22E55410600000034CECF30C49550410D02651BDC2E5541794D5DA9C1955041CF119A28DB2E5541B186EEEDC59550415EC7EEC7D22E554158B77224C895504115D723D5D12E554158B77224C8955041B1DF30E3D32E554134CECF30C49550410D02651BDC2E554109000000D4E7721B37965041FF869E76A12E55418810B8D735965041531BC1D4A02E55413C39FD9334965041DDF9F4E19F2E5541FE3184CA369650411A016EAB9D2E55414B093F0E3896504116312C319A2E55416296E8A239965041913F1EC4952E5541248F6FD93B9650410761EAB6962E5541D8B7B4953A965041D929B3679C2E5541D4E7721B37965041FF869E76A12E554107000000575D28BEB2955041F42CB1B60B2F55416FEE922DB19550419E948F980A2F5541879B7A12B2955041426EAF3F082F5541F06E4250B59550411D14E075062F5541DAA63C3BBA95504191AFADC8042F55410A010C05BC9550419E781223082F5541575D28BEB2955041F42CB1B60B2F5541050000009749C13CBB9550412D4E2750002F554136B19F1EBA95504130F703BBFB2E5541B9163111C4955041060F76B6F82E5541B3A4EF4BC59550415651D384FD2E55419749C13CBB9550412D4E2750002F55410E000000D82C74E694955041DCEAE24CEB2E55411E6FD1B499955041BECBB9A2EB2E55415604479E9D955041EF090CF7EA2E5541EAA31F6BA19550411AD61C86EB2E5541EAA31F6BA1955041A63A4F33ED2E5541ACB8E531A1955041708ABB19EF2E5541AC9C68BC9E9550410F0E1771F02E55418CB4DAB79B955041C622DD37F02E5541F3A2C02599955041F1EEEDC6F02E5541DBF5D8409895504147870FE5F12E55415A91A69396955041BB3E5AADF22E55416575291E94955041726F9DE9F42E5541779452C8939550419B56CCA8EF2E5541D82C74E694955041DCEAE24CEB2E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979690 - 3326680
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -32 </desc>
+<a>
+01060000000100000001030000001E000000A002000040E3E97C6C975041AC419793082F55412BA2AB836D975041B61686F6012F5541E1178CCF6D97504169AEBA5AD12E55417790392E6C975041AD8A32CBC12E5541E2D65D9F649750417D69D369A32E5541AE4066BB5F975041DD9DE1A08D2E5541B70843A85D9750415F22672F912E55415EAD3BEA589750415F7DCA08892E55419B66739453975041633C9CD87F2E55410B1A111952975041F2A233FD6F2E5541C08FF16452975041FB6A10EA6D2E55415F11AAE0579750416BBA3F786D2E55414778E5E95497504144ABF6505D2E554130DF20F35197504144ABF6505D2E5541CEBB3C484F9750418EEBDCB74C2E5541509B25B04A975041225B7FF9432E55411DAACAF24D975041B76FBE61432E55416834EAA64D9750415E14B7A33E2E55410A7574F249975041CB63E6313E2E5541622BDF8946975041B280E8ED2A2E5541F8D60A8DFB9650419894DF8C102E554170497AE1F0965041A15CBC790E2E55419469ED94E89650417B97AC9F0E2E5541535D7180D696504193307196112E5541DA268BED9E9650412786DE2E1A2E554105312FA663965041B477DDD0232E5541C1E3846148965041ABE723F7272E55410EE33C982E96504174925A432C2E55411661E0371C965041D6B53EEE2E2E554152757BBB0E965041DF7D1BDB2C2E55415FFC29780396504182BEA526292E5541AEEAB7220296504194F3FB262D2E5541BCBB9F2C07965041CDED6101312E55417BF95C6505965041E48626F8332E554184C1395203965041F2570E02392E5541805DCB5B04965041A9728B74412E55413F4025BB0A96504147F443F0462E5541AB24B9CF1C96504180AD8D6C542E5541112C60EB1396504180AD8D6C542E554168A516EC1B965041AB7C82D55B2E554113072D1A0D9650418F163BFD6F2E5541049E7F89F1955041CB4EEDAF5F2E55418A77917FEC9550417B1C27E0682E5541793317C0D7955041AB7C82D55B2E5541C8AF53EBA8955041903B7E87432E5541EE122552989550411D5C80AE4F2E5541E23ACE949B9550411B81B37F562E5541B2DA729FA89550412EA0FA6D642E5541E5CB2468BA955041636C79656F2E5541793317C0D795504105878FA9822E55416D5BC002DB955041B454C9D98B2E5541F25905CADC9550414E4D22BE942E55414F895528D7955041A3C6D8BE9C2E5541152C70A4E0955041043D194EA82E554143B1FE6ADA955041678E260CAD2E554124BA60BFCF95504149978860A22E5541870B6E7DD4955041556FDF1D9F2E55419FBB1BF8CD95504112F03C3A9E2E5541119B19D1C19550410618E67CA12E5541BA2163D0B99550411CEDC6C8A12E554100579F11AD955041CE95CD27A42E55416F80038DAE955041FC1A5CEE9D2E554118074D8CA6955041771C17279C2E5541099E9FFB8A955041C74EDDF6922E554132B70AC06C95504172B0F324842E55411CE229746C9550413DE4742D792E5541FC0FBF99689550419813C58B732E55411EBDF6A265955041FD1A6CA76A2E5541AF93922764955041AA574F04552E554197E3E4AC6A955041083D39C0412E5541AA022C9B78955041504D42302E2E5541E7F067F28D95504142BF61CE0B2E5541810E04616A9550413C78719DFA2D5541C568737364955041F81D028B002E5541234E5D2F519550414850C85AF72D5541CCD4A62E499550413356B43DF02D5541EF81DE37469550414850C85AF72D5541A4E07EF43A9550414850C85AF72D5541BF46C6CC269550411BA606C3F62D55414620D8C221955041ABA1D518FC2D5541D0AF83160F955041021B8C19042E55419DBED14DFD945041A5106F8C102E5541C146D685F3945041333171B31C2E5541B9241926E9945041B82FB67A1E2E55414AFBB4AAE79450411B81C338232E5541FAC8EEDAF0945041D8012155222E5541C146D685F3945041B654E94B252E554168F25256F294504192CCE4132F2E554137B72A3206955041A7C6F830362E5541F25CBB1F0C955041EDFB3472292E55411B51E3591A95504192CCE4132F2E5541DF1831A72A955041389D94B5342E5541D08A408C3B9550412AEA70C93E2E5541A4E07EF43A9550416191BCEF422E5541DE3D647831955041833EF4F83F2E5541189B49FC27955041CA29BADE582E55411A76162B2195504194826EB8542E5541AE024C0D12955041B70A73F04A2E55414D8C0B7E06955041AFE8B590402E554167178627F994504116F05CAC372E5541E7A9A7ECE2945041EDFB3472292E55419852AE4BE59450411B81C338232E5541CDD4C6A0E2945041DBDCED831B2E55415689A5C5D69450411F375D96152E5541840E348CD094504157B975EB122E55417A11AAFDCC945041C09BE935032E554115E5CF10CF9450415E25A9A6F72D55414C8C1B37D394504197A7C1FBF42D5541A074713FCD94504110DE9846F42D5541C5475EE3B3945041FA86B11EE82D55415AF3EDA2A5945041FCC87CB6F02D5541C66C7C378294504163E322C1DB2D5541CE89FD7D7F94504165426F9FE12D55418EA190F5809450412FD6CF3BE62D554169CEA3519A9450416242D3F3F52D55418F5F8D06A1945041763A6E3DFC2D554121C9B5829E945041122064DEFC2D554182C676F27794504181578B2FE52D55413DC124CF679450418815C097DC2D55415877F48065945041197FE813DA2D5541D9A61A7068945041984FC224D72D55416810A7407A945041D3D84623E42D554197BE113C7E945041369404A4DD2D5541A95760A77E9450413435B8C5D72D55416810A7407A945041E871313AD02D5541AEB64831709450414B2DEFBAC92D5541D18999296B9450411C7F84BFC52D55410855856B6C945041FF69682FC22D5541C04F979C7094504136355471C32D5541C2AEE37A76945041A5CB2BF5C52D5541702D288777945041DA37CB58C12D55413F2071AD6D945041223DB927BD2D554141200D59599450414F8CD744BB2D5541EA816CCA48945041A10D9338BA2D55419F1D321D47945041785F283DB62D55416035C59448945041076A04DBAD2D55413B0328BE479450417A5FC4E8A12D5541A6DB66853E945041724243A2A42D554102D9EF9D40945041A1F0AD9DA82D55411FEE0B2E449450413E35F01CAF2D5541706FC7214394504113451EDEB62D554175CEAFAB34945041EAB3987DC42D5541C5F01EC12D945041BB052E82C02D55414D3D62A219945041CB9EE041D52D5541E30573A8089450410F45E686DF2D5541559CE6D7F69350413F529D60E92D5541C891A6E5EA935041B047C1C2F12D55419525A32DDB935041203DE524FA2D5541F8E060AED49350419591F110F42D554141459B5BD69350414B2DB763F22D554139281A15D993504137351C1AEC2D554193C6564FD59350418F740C76E22D5541C932F6B2D0935041544A38AAEF2D55418EA971B4C3935041EC71958EE42D554127301B77BE9350413C9404A4DD2D5541635AEF42B1935041D4BB6188D22D55417DB17216A9935041FD4CE7E8C42D55418EEB74A3A3935041D91A4A12C42D5541D232CAB593935041B1E81090D72D5541C29917F67E9350414FCEA2DCC32D5541C29917F67E9350410E87E975BF2D5541D9914EEB70935041F6D0B56FAD2D5541A684FB657B93504178A12B2C962D554120F6ECEC869350411EA43EBF7F2D554120F6ECEC8693504166A92C8E7B2D55415103A4C690935041B92AE8817A2D5541B77CFA0396935041043072FC612D55410B5D02D69A935041E979A24A642D5541D84FAF50A5935041D1C36E44522D5541506254F9AA9350417367994D4A2D554152C1A0D7B09350413EFBF9E94E2D55419108BE92C9935041B7AEEE5F3A2D5541065DCA7EC3935041B54FA281342D5541350B357AC7935041EBBB41E52F2D5541091B633BCF935041CEA625552C2D554155DEE9C6D6935041A7153CA0252D554191C6BAA3E99350418B5FD0423C2D5541DBCB441ED19350412A035FA0482D55413B8766F3DE93504184004C0D5F2D5541BE15D9C0E7935041F037D7B25B2D55419B4288C8EC935041AFF01D4C572D554114552D71F29350414AD613ED572D5541533D9AF9F0935041BBCB374F602D5541B9B6F036F69350415ECEAE365E2D55418C67D219F8935041EA79A24A642D5541F99E5DBFF4935041B66C4FC56E2D554112F6E092EC93504170C6ADD4782D554145033418E2935041D89E50F0832D554129EE1788DE935041B5CBFFF7882D5541589C8283E2935041D2E01B888C2D554135C9318BE7935041EA964F8E9E2D55417DCE1F5AE393504106AC6B1EA22D5541B4990B9CE49350412D3D55D3A82D5541A35F090FEA93504123C187AEA52D55419B4288C8EC935041526FF2A9A92D5541533D9AF9F09350418DF876A8B62D5541F3E02857FD93504166678DF3AF2D5541756F9B2406945041AE6C7BC2AB2D55416FB166BC0E9450416D25C25BA72D5541B2576C01199450410FC9EC649F2D55418F841B091E945041D13FCCBAA62D5541A21D6A741E945041C564B2B79D2D5541C64F074B1F9450416F255E07932D55419900E92D21945041887CE1DA8A2D554191E367E723945041ADAE7EB18B2D554187679AC220945041FAD0511B992D554175CE4B57209450412D3D55D3A82D5541A21D6A741E94504166678DF3AF2D55418F841B091E9450419F91C513B72D55415A187CA522945041E796B3E2B22D55415C77C88328945041A54FFA7BAE2D5541DE053B5131945041F6716991A72D5541742DFC893A9450413D775760A32D554192A164F84394504133FB893BA02D554167B192B94B94504173E3F6C39E2D55419E7C7EFB4C945041A84F96279A2D5541E6816CCA48945041D59EB444982D5541483D2A4B429450419ED3C802972D55415FBE0A903A945041BE13960B912D554141FA1C2C2A9450417897CD8B822D5541DB47A29425945041B5CBFFF7882D55410897C0B123945041E21A1E15872D554187679AC220945041861D95FC842D55410897C0B1239450418E3A1643822D5541E47F77E527945041B6C611947F2D55418170CD181894504160F515FA6A2D55410EF6A83B1594504149D677416C2D55414AA9769E0D9450415500C414612D55413C7C9F55E9935041CE4C743E2E2D5541CCB8E5B0A99350419AAC197BE52C55416DFB3E1097935041F33F801AC72C55416020250D8E93504124EE86C1B62C5541657F0D977F935041AEDB7DC49C2C5541998C601C75935041854AF863AA2C554132130ADF6F9350412D0B0808B42C55414DC9D9906D93504180EB0FDAB82C55410EE16C086F93504114B48434BC2C5541687FA9426B935041A9DB456DC52C55415E03DC1D68935041E464CA6BD22C55416E3DDEAA6293504152FBA1EFD42C55412DF624445E935041D58914BDDD2C5541FE47BA485A935041D947AD79E92C5541C71D8228539350419E7C258CFC2C554160A42BEB4D93504198BEF023052D554154C911E8449350411230E2AA102D554101E90916409350419F3A229D1C2D5541E6323A6442935041CEE88C98202D5541779C62E03F9350411AAC1324282D5541B784CF683E9350419C3A86F1302D5541650314753F9350418C008464362D55412E3828333E93504117AC77783C2D5541024856F445935041C52ABC843D2D55419E2D4C9546935041FCF5A7C63E2D55415F45DF0C48935041E39E24F3462D55418DF349084C935041CCA6EDFD542D554133550DCE4F9350418F1DCD535C2D55413DD1DAF2529350419D5733356B2D5541241B0B4155935041CFC336ED7A2D5541B884CF683E935041810014B6872D5541AE0802443B935041A891FD6A8E2D5541A48C341F389350414DF3C030922D55418777188F3493504176E3F6C39E2D5541B4C636AC3293504182BE10C7A72D5541EBF0D2204E935041ADAEE205A02D5541C81D82285393504111289D97B92D5541E4329EB8569350418B998E1EC52D554178FB12135A935041C4C3C63ECC2D5541713DDEAA629350417E1D254ED62D55414E6A8DB267935041A5AE0E03DD2D554125D9075275935041C581C34FEC2D55414E288AC3879350411D2064DEFC2D554166DEBDC999935041476FE64F0F2E5541C2DB46E29B935041AC89F0AE0E2E554160208961A2935041875753D80D2E5541D8322E0AA89350413DF3182B0C2E554124F6B495AF935041AA2AA4D0082E554182528A8CB7935041F22F929F042E554159C1042CC5935041A66C0B14FD2D5541DB4F77F9CD9350412D5A666BF72D55419C670A71CF935041253DE524FA2D55416DB99F75CB9350410A871573FC2D55411F97CC0BBE935041DF964334042E55415D20EDB5B693504185F806FA072E554163DE211EAE935041D9D80ECC0C2E554120381CD9A39350416CA18326102E5541DD911694999350413F526509122E5541486A555B909350413F526509122E5541B3429422879350417F3AD291102E55419CEBACFA7A9350413DF3182B0C2E5541BD5FB114709350410E45AE2F082E55413972F268619350411F7FB0BC022E55411AFE89FA5793504154EB4F20FE2D55417DB9477B519350419CF03DEFF92D554183777CE348935041755F543AF32D554183777CE348935041C38127A4002E5541F0AE078945935041088779C7102E5541CF3A036F5093504151EBB374122E554193102FA35D935041648402E0122E5541A14A95846C935041AEE83C8D142E55415387724D799350416E00D004162E554169DE597585935041CAFD581D182E55411ABCEA5F8C935041777C9D29192E55415B03A4C690935041219CF9AB282E5541CA997B4A9393504112C143FD332E5541269704639593504149EBDF714F2E554153E6228093935041A747B568572E554113FEB5F7949350417AF8964B592E55419FA9A90B9B9350415F42C7995B2E5541E14FAF50A5935041458CF7E75D2E554186B17216A9935041B422CF6B602E5541D015ADC3AA9350415A849231642E5541DCF0C6C6B393504187D3B04E622E5541151BFFE6BA93504122B9A6EF622E55417B945524C0935041996CFFB9622E554161DE8572C2935041B6811B4A662E5541F4A6FACCC5935041AD649A03692E5541235565C8C9935041A3E8CCDE652E55411C973060D2935041EBEDBAAD612E554166FB6A0DD49350413B102AC35A2E554195A9D508D89350412877DB575A2E554143281A15D993504155C6F974582E55419F25A32DDB9350415C842EDD4F2E554172D68410DD935041488C9393492E554133EE1788DE935041CBBB552E382E55419E25A32DDB935041DF544045242E55414A459B5BD6935041BBC3F23B092E5541C615D9C0E79350411C2064DEFC2D5541F981DC78F79350412BFB198DF12D5541EF64BF860E945041CB3FF8B7E32D55419F4250711594504101AC971BDF2D5541C6D339261C9450413618377FDA2D5541B5993799219450416B84D6E2D52D5541B7F883772794504117A4CE10D12D5541828CE4132C945041C4C3C63ECC2D554196847F5D32945041AFCB2BF5C52D55414C7FF5E24A945041DA1AAE66D82D55414162D8F061945041DF379301EA2D55412C6A3DA75B945041BD644209EF2D5541CE0D68B053945041A40DBF35F72D5541F281087634945041590835BB0F2E55411A5591C506945041369494F52E2E5541EBA626CA02945041C13F8809352E55417D104F46009450410C030F953C2E5541D7AE8B80FC9350412B777703462E55416FD6E864F1935041F8C8705C562E5541095D9227EC93504185D3B04E622E5541FFE0C402E99350418991490B6E2E5541904AED7EE6935041F169EC26792E55412055C91CDE935041C7D866C6862E5541603D36A5DC935041F686D1C18A2E5541BADB72DFD8935041E4ED82568A2E55414B459B5BD69350416D3A2A8C8A2E5541D5914291D6935041139CED518E2E55415EDEE9C6D693504194CB1341912E5541BADB72DFD893504115FB3930942E5541D6F08E6FDC935041CDF54B61982E5541BC3ABFBDDE935041EA0A68F19B2E55412AD19641E1935041D9D06564A12E5541101BC78FE3935041AEE09325A92E55417435D1EEE29350412F10BA14AC2E5541BE990B9CE49350419DA69198AE2E5541354D6466E49350410320E8D5B32E5541516280F6E79350414D842283B52E55414945FFAFEA9350414FE36E61BB2E55410A5D9227EC935041BE7946E5BD2E554153C1CCD4ED935041115A4EB7C22E5541F7C343BCEB9350419C0542CBC82E5541ED477697E8935041F0E5499DCD2E5541C815D9C0E79350417115708CD02E5541241362D9E99350417115708CD02E554178F369ABEE935041F902CBE3CA2E554167B9671EF4935041653A5689C72E5541F0050F54F4935041AD3F4458C32E55418CEB04F5F49350413C4A20F6BA2E55417BB10268FA935041F9A31AB1B02E5541E8A626CA02945041B69EC88DA02E554173521ADE08945041BD5CFDF5972E5541507FC9E50D9450418432C5D5902E5541818C80BF17945041920D7B84852E554127EE43851B945041C71ACE097B2E55415EB92FC71C945041A64719BD6B2E5541C43286042294504190F031955F2E5541A15F350C27945041783AFE8E4D2E55419BA100A42F945041A32AD0CD452E55410B972406389450416A0098AD3E2E554180A9C9AE3D9450419F0DEB32342E55416C6F2B765794504194D320FD102E5541D6A61A7068945041FBEDC607FC2D5541CE8999296B9450415F08D166FB2D55418FA12CA16C945041A96C0B14FD2D55415418A8A25F945041B1E83C8D142E554114303B1A61945041CDFD581D182E55418D42E0C2669450418E15EC94192E5541A03A7B0C6D94504121DE60EF1C2E55413620395696945041B047EDBF2E2E55417525EFCDBA9450418E3235843F2E554103EE2BD1E6945041CB1A0661522E554157CE33A3EB945041857464705C2E554176429C11F5945041C55CD1F85A2E55411F62F89304955041D39637DA692E5541D19ED55C119550412BD62736602E5541F82FBF1118955041F2ABEF15592E554127DE290D1C95504173DB15055C2E55415C4AC97017955041ECEDBAAD612E5541A2F06A610D9550412F94C0F26B2E554129DEC5B807955041C25C354D6F2E554198749D3C0A9550415625AAA7722E5541D9BB56A30E955041C4BB812B752E5541817C664718955041DF7151DD722E5541FA8E0BF01D95504193AECA516B2E5541B2891D212295504193AECA516B2E55414552927B25955041B0C3E6E16E2E55414552927B2595504168BEF812732E55418D57804A21955041749912167C2E55414C10C7E31C955041C61ACE097B2E55412FFBAA5319955041D0969B2E7E2E5541E59670A61795504176F85EF4812E554135B9DFBB10955041C1BBE57F892E55416208FED80E95504132B109E2912E5541EC54A50E0F955041F427E937992E5541BDA63A130B9550412535A011A32E55414594956A0595504103624F19A82E5541C72208380E955041C7377B4DB52E55410F28F6060A95504189AE5AA3BC2E55414494956A0595504175B6BF59B62E55416F8467A9FD9450416EF88AF1BE2E5541B52A099AF3945041E9697C78CA2E55419FD32172E7945041ABE05BCED12E554114282E5EE19450419DA6F5ECC22E5541C864A7D2D9945041B49E2CE2B42E5541E1BB2AA6D1945041E64C3389A42E554172255322CF9450414A673DE8A32E5541CDC38F5CCB94504130B16D36A62E554102302FC0C6945041962AC473AB2E55414A351D8FC2945041BDBBAD28B22E5541923A0B5EBE9450413F4A20F6BA2E5541B8CBF412C594504152E36E61BB2E554139FB1A02C8945041372D9FAFBD2E55415E2DB8D8C894504177150C38BC2E5541A074713FCD94504189AE5AA3BC2E5541048F7B9ECC945041BABB117DC62E5541586F8370D1945041663A5689C72E554173255322CF945041D98EC6C9D52E5541D0812819D7945041083D31C5D92E554176E3EBDEDA9450416EB68702DF2E55415E2DB8D8C89450416BB6EB56F32E5541188716E8D2945041D12F4294F82E5541A074713FCD9450417B4F9E16082F55413E77B0CFF3945041CAD0BD5E1B2F5541E4D87395F7945041396795E21D2F5541A64F53EBFE9450415D9932B91E2F5541790035CE009550419305D21C1A2F5541A8AE9FC904955041B479D6360F2F554121C144720A955041163594B7082F554119A4C32B0D955041675703CD012F55417DBECD8A0C955041DBAB0FB9FB2E554112E68EC315955041591D9DEBF22E5541B2891D21229550411C35CC0EE02E5541A14F1B9427955041F6A3E259D92E5541ED12A21F2F9550418ECB3F3ECE2E554138D628AB369550414B253AF9C32E5541036A89473B955041B39E2CE2B42E5541A9CB4C0D3F955041CCF5AFB5AC2E554136D68CFF4A95504187F05D929C2E5541B864FFCC53955041605F74DD952E55419F0D7CF95B955041F069507B8D2E5541C69E65AE62955041386F3E4A892E5541C0E030466B955041C9D866C6862E5541D4D8CB8F71955041386F3E4A892E55413235A1867995504179B6F7B08D2E55417EF827128195504196CB1341912E554109A41B26879550410462EBC4932E554136F33943859550410EDEB8E9962E5541F24C34FE7A9550417199766A902E554167A140EA74955041F069507B8D2E5541265A87837095504181D378F78A2E5541FFC89DCE69955041386F3E4A892E5541197F6D80679550416F3A2A8C8A2E55415967DA086695504154845ADA8C2E5541757CF69869955041D5B380C98F2E554177DB42776F955041A86462AC912E55418157109C72955041B2E02FD1942E5541D537186E7795504121770755972E554121FB9EF97E955041EB0A68F19B2E5541FE274E0184955041BEBB49D49D2E554164A1A43E89955041D154983F9E2E5541E5D0CA2D8C955041B69EC88DA02E55419DCBDC5E90955041A564C600A62E5541707CBE4192955041F944CED2AA2E5541CA1AFB7B8E955041A7C312DFAB2E55413F6F076888955041F944CED2AA2E554107A41B26879550419FA69198AE2E55413E6F0768889550418E6C8F0BB42E55411120E94A8A955041B5FD78C0BA2E5541B781AC108E955041C9F5130AC12E5541AF642BCA90955041306F6A47C62E5541FF869ADF899550418C6CF35FC82E55419FCB780A7C95504129B135DFCE2E5541DFB3E5927A9550417B32F1D2CD2E5541142085F675955041560054FCCC2E5541498C245A71955041F2E5499DCD2E55416442F40B6F9550413C4A844ACF2E5541A52A61946D9550417574BC6AD62E55419BAE936F6A9550412B1082BDD42E55417E9977DF66955041870D0BD6D62E554134353D32659550419289D8FAD92E5541F3ED83CB609550410020B07EDC2E55414751FA6B61955041F8EDD6CCDE2E554110F1858463955041C28D62E5E02E554110F1858463955041756D8CD4E32E55413191984262955041138D549AE72E55419371D07C5E95504108ADA305E82E55410B126AE059955041BC8CCDF4EA2E55419371D07C5E955041658C464FEE2E5541EA7157225B955041F7CB5D80F22E5541AF32C796539550416A6B62F3F72E5541681386764C955041BB6A54A8FE2E5541D5D36E454895504195EB2546F62E5541F6738103479550418A0B75B1F62E55414D7408A9439550411D4B8CE2FA2E5541E6B4B4CA3D9550414EAA6BD9022F55414895EC043A95504189E9FB640A2F55411235781D3C9550410669B16C0F2F55418FB42D25419550416E28054B152F55412DD4F5EA44955041F6876BE7192F554173F3360B4C95504147875D9C202F554178D252AF559550416D068CFE282F5541B411E33A5D955041EA8541062E2F55412B9003526C9550410425BFD3362F5541E34E49E578955041D9A4FB80382F5541F8EC31C28B95504177C4C3463C2F55419885AA46D4955041030346874A2F5541418523A1D79550412F8309DA482F5541F5644D90DA9550419C43F2A8442F554104241AC9E3955041E0C709BE1A2F5541C3E3F44CE69550416E28054B152F55414063AA54EB9550411C2913960E2F55410F04CB5DE3955041C049704C082F554156230C7EEA955041078B2AB9FB2E55410903366DED955041E7EA17FBFC2E554191629C09F2955041BB6A54A8FE2E554119C202A6F6955041078B2AB9FB2E554160E143C6FD9550418A0B75B1F62E55416BC1F45AFD95504102AC0E15F22E5541CB7C22240296504159F27632E62E554111A3D3E102965041B50C50C0E12E5541B9EC684A069650416115B7F8DB2E5541772A26830496504140B41515DB2E5541F04132FE01965041A73B68B6DC2E554169593E79FF95504100976F74E12E5541EB3827E1FA955041C841A6C0E52E5541F40004CEF89550418BE3D1EFE22E5541840C3819F1955041667925EFDA2E5541BC6101CDEC955041996A80ACD72E55410188B28AED95504157A83DE5D52E554130BA3B78F3955041529F32C8CE2E5541E7D4B8EAFB95504128D117D1C72E5541041C25250E965041C96C05F6BB2E55414F4BE1FF1596504100C2CEA9B72E554159B85A131C9650419E9EEAFEB42E55410102F07B1F96504175756C2EB62E5541B677D0C71F9650416749214BB92E5541C8078AA11B965041EE3115D0BB2E55417410F1D915965041262C7BAABF2E5541D68E385E10965041149CC1D0C32E554178CFC2A90C9650414C9627ABC72E55415CD28FBC0A9650413E6ADCC7CA2E5541041C25250E96504119A5CCEDCA2E5541823C3CBD12965041010C08F7C72E554187A0AAB3119650415FCB7DABCB2E5541663F09D01096504107151314CF2E5541ED27FD5413965041C552D04CCD2E5541F794766819965041BCE55639C72E55411DFF226921965041B278DD25C12E554114DCE2A22B965041751A0955BE2E554106B097BF2E96504183465438BB2E5541DD8619EF2F965041BA9B1DECB62E5541CFFF6A323B96504166FFE7FDA82E55411EEEF8DC39965041243DA536A72E554193A1966138965041F6AFB86FA92E55413A468FA333965041BE5AEFBBAD2E55419BC4D6272E9650419995DFE1AD2E5541CEB531E52A96504182FC1AEBAA2E5541271139A32F96504129A1132DA62E5541101D11D33496504161F6DCE0A12E5541CFFF6A323B96504199F042BBA52E554198AAA17E3F965041D54E178CA82E55410E03DC2946965041BDF680C5AE2E554195EBCFAE489650412D46B053AE2E5541912CFEDE5196504169FFE7FDA82E55418D6D2C0F5B9650417C8FA1D7A42E554118BA8E8A5C965041772B33E1A52E5541C56792E95E965041A65DBCCEAB2E55415A7CD1515E96504161DCA737B32E55417679043F60965041AB66C7EBB22E5541062AD5B06096504178756C2EB62E55418D12C93563965041D1D073ECBA2E5541278B769461965041E405CAECBE2E55417F41E12B5E9650414FF18A84BF2E55418D6D2C0F5B965041DB3DEDFFC02E554183A54F225D965041D6D97E09C22E5541195F2BB164965041B1146F2FC22E5541A0471F366796504138FD62B4C42E55417B820F5C679650412AD117D1C72E554156BDFF81679650417EC8B098CD2E55419CE3B03F6896504163701AD2D32E5541AAB498496D965041DC2CC373D92E55415BC60A9F6E9650410B5F4C61DF2E5541808B1A796E965041F46A2491E42E5541648EE78B6C9650416E27CD32EA2E55419F884D6670965041130DF4A4EE2E554196C0707972965041FC18CCD4F32E55418DF8938C74965041C5689F47002F5541673384B274965041F9A333520D2F55411845F60776965041F2CA2CD9272F5541220DD3F473965041A92FE398402F55412D391ED87096504112B7353A422F55414991B49E6A965041D6FDFD8F472F55411A5F2BB1649650410A94F5734C2F5541993E141960965041E76A77A34D2F55411615F263549650418FB40C0C512F55417CF7A7DE4D965041D5DABDC9512F55415F55D8CA439650411B016F87522F5541AE9EC94E3A96504186EC2F1F532F55411DEEF8DC39965041C34A04F0552F554134E220AD349650419D85F415562F55415E0B9F7D339650415CC3B14E542F5541CE5ACE0B33965041A74DD102542F5541F27A41BF2A965041EC7382C0542F5541E90DC8AB24965041B9822703582F55415DC1653023965041200A7AA4592F55416125D426229650417401136C5F2F55410002F07B1F9650413848DBC1642F5541BE3FADB41D9650415EB287C26C2F5541BADB3EBE1E9650418880A2B9732F55416689421D21965041B34EBDB07A2F554154F988432596504151D0752C802F55419F28451E2D96504110B3CF8B862F554150DF539A36965041CB31BBF48D2F5541CA9BFC3B3C965041737B505D912F5541192F270D43965041A163A0FD862F55415C8FC2454696504152B81EA5882F5541CDCCCCCC4F9650417B14AE078E2F55415C8FC2F5519650419A9999998B2F55416666667659965041E17A14FE8F2F554185EB5148589650417B14AEB7912F5541A4703D0A6C96504185EB51C89C2F55411F85EBF16B9650410AD7A3F09D2F5541C3F5289C7D965041F6285CDFA72F5541A0A656BD81965041B03EF1F6A52F554194CEFFFF84965041214322A1A02F554160B80AAD9F965041A81C34979B2F554194A9BC75B19650415BA00725972F5541F16963A7CA96504195FDECA88D2F5541EEB3C949D89650414981C036892F55414177E6ECED96504161316EB1822F5541071A0169F796504114B5413F7E2F5541AB0FE4DB0397504185B972E9782F55417BAF88E6109750415AEA7D80712F5541F91C6721279750415CA017DE632F5541023F2481319750416A533BCA592F55412A334CBB3F975041BC60CEC8492F55412A334CBB3F97504100BB3DDB432F55412036C22C3C9750417BBCF813422F5541360BA3783C97504171BF6E853E2F5541145E6B6F3F975041739A3BB4372F55413530D64943975041C3CC01842E2F5541492AEA664A97504113FFC753252F5541AC7BF7244F975041D35AF29E1D2F55410FCD04E353975041C85D68101A2F5541843D598F66975041E00D168B132F554140E3E97C6C975041AC419793082F55410600000092DBD99D88965041E8B21838632F55416274E40486965041B52145C9622F55412FE3109685965041BB7501755E2F55417762861E10975041CF9B144E4F2F5541AAF3598D109750412F6AFF7F542F554192DBD99D88965041E8B21838632F5541B0000000A012F4703E975041A588DB60482F5541195BAE27309750415FD1F418572F5541F8C50FBC22975041B52145C9622F5541A49F9DE114975041DD0AA0E06B2F55411DE85798069750419ED1531A742F55414B883AF6E39650419329DBC27C2F554176FE3E7EC3965041EDA30949862F5541F8C493B6AE96504119E1200C8B2F5541D4051775A396504119E1200C8B2F5541E3D76DA298965041B4BE792E8A2F5541F4D3A2A58B9650411F35DDB7862F55418100169C809650411F23F4F97C2F554193906C62789650413F30E188742F5541BD0730BC77965041921E683C732F554110F6B66F76965041CF472D44762F5541C64F5B9F7396504139FB75A3702F5541C64F5B9F7396504188B491716B2F5541E249883073965041BB7380AE662F55415FAFD23D71965041B109AAE35E2F5541A520C328709650411688875D552F5541193EE25272965041F02384014E2F554164E43D2375965041EBEE181C4A2F55415667A75A759650419B135266432F55411E734D38769650416B45783F342F5541AF8A99F37796504165EE6172242F554108F2E15B92965041545E0BAC2C2F55418A6AEC6688965041408A5E161D2F55419BFA422D809650415E75A0BD082F5541F830F5C37A965041BD9C676AEF2E5541017920A7769650419F5EE409D82E554134380FE471965041F12AC0D5CA2E55417252E901619650410ED2ABAD9E2E5541DD0532615B965041FAFDFE178F2E5541E118F25E53965041EA5EBD67832E5541901B80C140965041CC203A076C2E5541E6FA1B8B2B9650413EFA0262562E5541ABC26B99149650416A62DBD1412E55414500385006965041C02EB79D342E5541C89AED42089650418305F295312E5541C4DA6EFE3B965041960A35FD602E554173303E1A559650416BC40775812E55418B17ABAD5C965041F7C893328B2E5541DBF271636396504127976D599A2E5541916EC17A6C96504147D5F0B9B12E554142B5A5AC7196504123B5432DC22E55417161D4EB7496504169263418C12E5541AE8A99F3779650413B9CB0C0C92E554147EA10927596504194BFA259CC2E554106AE8B8C7A965041FC81D6A2DA2E55415FD17D257D965041CBE4924DEB2E55416406E90A81965041B00C11A4F72E55416406E90A81965041139AD907022F55413FC490968596504122391BB80D2F55410D05A2598A965041EC666C7D1A2F5541CCC81C548F96504186E88E03242F55418B8C974E94965041F2BD824A2A2F554196F66D199C965041239F1C6F312F5541E6D134CFA2965041F0DF2D32362F554172D6C08CAC965041BE203FF53A2F5541CBF9B225AF965041916525CC232F55416DF49660D49650413A64DE1A2D2F5541E211B68AD696504164DBA1742C2F55415851809CE49650418F7410B6372F5541D6D87591EE96504198BC3B99332F5541C73934E1E2965041227D7187252F5541BF13B4E5F2965041BFEFA8231B2F554142AE69D8F4965041ED792C7B122F5541C4481FCBF69650410974590C122F55416D47D81900975041BABA3D3E172F55413CAA94C410975041068344F6252F55415DD92C3B1497504187FB4E011C2F554117683C5015975041584F20C2182F554157A4C15510975041998BA5C7132F554117683C5015975041BECDFD3B0F2F55413897D4C618975041C3026921132F5541608759D533975041272A30CEF92E55417EC5DC354B975041BA32919FE72E55413854EC4A4C9750416B57CAE9E02E5541573F2EF2379750414806878BD12E5541E1FF63E0299750412E2E05E2DD2E5541CE4D6232269750410DFF6C6BDA2E55410C99D221359750410BDDC183CE2E5541967BB3F732975041860DA1ABC82E5541E434CFC52D975041C74926B1C32E5541D6B738FD2D9750410786ABB6BE2E5541F2B1658E2D975041CB5CE6AEBB2E55410FCE3D0739975041C0F20FE4B32E55413E7A6C463C975041438DC5D6B52E5541F0C05078419750410A77C0CCAA2E5541979D5EDF3E975041E9472856A72E5541A0E589C23A9750415830DC9AA52E5541C527E23636975041D160BBC29F2E5541766EC6683B97504186BA5FF29C2E55418A4273FE4A97504173085E44992E5541919989CB5A975041F06DA851972E55417AD4C71F5F9750419EA1CC85A42E5541D2F7B9B8619750412DEAAE12C62E55411456EAA56897504165DE0835C52E55412B501737689750416EF23686082F554175D4C71F5F9750410C87190A0A2F55414506EEF84F9750414068B32E112F5541143814D240975041B172125B1B2F5541088AE73721975041027084F82D2F5541C5090C630E9750410CDA5AC3352F55412D57530BE5965041BB42EADC462F5541D4336172E296504168546329482F554184589ABCDB9650415AD7CC60482F554191B3859DCF965041844E90BA472F5541A443DC63C7965041D53C176E462F5541CF8909ECA6965041F44904FD3D2F5541FD138D439E965041198C5C71392F55412EB1D0988D965041F13644FF452F5541457692448996504120E3723E492F55418BE7822F88965041814E90BA472F55410C608D3A7E965041CCF4EB8A4A2F5541FEE2F6717E965041B52F2ADF4E2F5541B43C9BA17B96504138CADFD1502F5541072B22557A965041D65EC255522F554131A2E5AE79965041B651D5C65A2F55417C48417F7C9650412C919FD8682F554104608D3A7E96504112014912712F5541E01D35C682965041C3472D44762F554183E7822F88965041F2F35B83792F554110EC0EED91965041AD826B987A2F55418E7304E29B965041AD826B987A2F5541CDBE74D1AA965041DF415AD5752F55413DC9D3FDB49650412EFB75A3702F5541632DD759BC965041D5D7830A6E2F55418EC6459BC7965041FF4E47646D2F55416FB9580CD09650413743A1866C2F554120003D3ED596504145C0374F6C2F5541EC1EA319CE965041D5D7830A6E2F554123F15154C1965041207EDFDA702F55413481A81AB9965041E88985B8712F554138946818B1965041A84D00B3762F5541F100CD45A6965041CEB1030F7E2F5541323D524BA196504163FEBAAF832F5541F5138D439E965041303FCC72882F5541FF7D630EA6965041F94A7250892F5541EDED0C48AE96504122C235AA882F5541EDED0C48AE9650411D8DCAC4842F5541E8B8A162AA965041D81BDAD9852F5541CDBE74D1AA965041B7EC4163822F554179D0ED1DAC9650416C46E6927F2F5541620B2C72B09650417AC37C5B7F2F554167409757B4965041884013247F2F554119877B89B99650415994E4E47B2F5541103F50A6BD9650410071F24B792F5541601A175CC4965041A84D00B3762F5541400D2ACDCC965041D1C4C30C762F554120003D3ED596504125B34AC0742F5541FCBDE4C9D99650416B243BAB732F5541B11789F9D69650411C6B1FDD782F5541AFF5DD11CB965041C0346D467E2F5541BD7274DACA96504126D5F5A7802F55416A84ED26CC965041E06305BD812F5541CF550C5AEE9650417059A690772F55413F3EC09EEC965041949BFE04732F5541B35BDFC8EE9650418F66931F6F2F5541E73C79EDF5965041C75AED416E2F55412ADFFFA914975041E967DAD0652F55414B0E982018975041A3F6E9E5662F5541EED7E5891D9750419EC17E00632F55416C3D30971B97504129A45FD6602F55418E8E73F52A975041FE0AF194552F5541C682CD172A975041447CE17F542F5541F71F116D19975041C303D7745E2F5541B08C759A0E975041BABBAB91622F554161B1AEE4079750413C566184642F554161B1AEE4079750419044E837632F55412F146B8F1897504116F25D285D2F55411FA6BFB02C97504131CADFD1502F5541B0DFB6533A975041679C8E0C442F554141F7020F3C97504191135266432F55418C9D5EDF3E9750413E25CBB2442F5541A012F4703E975041A588DB60482F5541360000009673759CD1965041DD102FF72A2F55419B878928B596504158460F760F2F5541C8D19AD7B4965041D44AF742192F554118967BBBB09650418A733CFF172F5541E07B2892AD965041B6B343E8252F554114B35FE1A7965041933974B3292F5541695A5C9FAC965041F99DD88B2C2F5541695A5C9FAC9650417B8FE6F8302F55416F47823FA79650417B8FE6F8302F554192C15174A39650419E09B62D2D2F554148EA9630A2965041504FDF0F232F5541A37EB98EA1965041E5075F5D172F5541BF0B6323A39650419E3AAEDF072F5541E6684E32A8965041A427D47F022F5541609424EB9A965041A631DE45F42E5541A588C3549396504147BA9F0DEC2E554189FB19C091965041AD1E04E6EE2E5541EF5F7E98949650410C96421EF72E5541DFA2167E969650416B0D8156FF2E55418AFB19C091965041B5E43B9A002F554119C7736D8B965041634749A2ED2E5541B3620F9588965041518AE187EF2E55412F67F761929650419D3AAEDF072F55412F67F7619296504174D3B80A112F5541639E2EB18C96504181AD044B062F55413C4143A287965041613D3FDCFB2E55410327F07884965041D37BEFF4F32E55414DFEAABC859650411F5DB4FEE62E55414711851C8B965041370742B9DF2E5541EC7C62BE8B9650412C37003FDC2E554154EBD05C8096504183E806C3D22E554165A838777E96504183E806C3D22E5541375E27C87E9650414FB1CF73D82E5541FF43D49E7B9650414FB1CF73D82E5541AA9CD7E07696504112B46070CC2E554172518C05999650414FE2C725B32E554199AE77149E965041441286ABAF2E55410AE31D67A4965041050B0DE2B12E55419E9193EEA6965041C6039418B42E5541DCC9046A7F965041D3ACE7A6CE2E55410EF731F387965041332426DFD62E554135541D028D965041CDBFC106D42E554152E1C6968E965041AA45F2D1D72E554167814A8B95965041B1321872D22E5541C2156DE994965041C6D29B66D92E5541011DE6B292965041D685F9BAE52E5541E97258F8999650412440D0D8EF2E5541A861D568AA9650416B0D8156FF2E554192B747AEB1965041A427D47F022F5541646D36FFB196504105A91C7EFC2E554180FADF93B3965041613D3FDCFB2E554141F366CAB5965041A80AF0590B2F55411A658309D6965041817C0C992B2F55419673759CD1965041DD102FF72A2F55415E0000000180F3D61097504133C2357B212F55419B1B8FFE0D9750418A733CFF172F5541467492400997504158460F760F2F5541038AFD9C02975041AFF715FA052F5541487E9C06FB965041C7A1A3B4FE2E554160282AC1F39650410C96421EF72E554116516F7DF2965041E91B73E9FA2E55414F6BC2A6F59650413EC36FA7FF2E55410B812D03EF9650412C06088D012F5541898F1F96EA965041CB84BF8E072F5541F6E0A90EE896504158460F760F2F554134E822D8E59650418A733CFF172F5541EB106894E496504195437E791B2F5541CE83BEFFE2965041409C81BB162F5541D953007AE6965041039F12B80A2F5541898F1F96EA965041D171E52E022F5541FAC3C5E8F09650417CCAE870FD2E5541BBBC4C1FF3965041672A657CF62E554183A2F9F5EF9650415C5A2302F32E554134E822D8E59650412136C612FE2E554173EF9BA1E3965041D75E0BCFFC2E5541AC09EFCAE6965041FAD8DA03F92E554139CB3EB2EE9650413FCD796DF12E554159CA2EB1EB9650419EF2E036EF2E5541BEDFA6AEE2965041BB9587F6F92E5541EB0E46D6DF965041981D227DF92E5541DFE6CEADDF965041228D7AE8F72E5541CDE998CBE9965041FAC15C00ED2E554190B00787E59650411CC984FFE92E5541AED5B491DB965041AF6D10CEF92E5541456D8425DA965041981D227DF92E5541E1570C28E39650418FE8EE19E82E5541AD647717D896504180DEFCFCE02E554156F97C8DCC965041F55DDBC0FA2E5541EC904C21CB96504147761DDCFB2E554160B0B63BC9965041512D578AF82E5541EC904C21CB965041670C0861F52E55419CE94780CD965041B7B30C02F32E554138D4CF82D69650413AEE310AE02E5541BF61ADF9CD9650412C557D67DC2E5541768F6712C69650411394519CD82E55410945BCB1BD9650417B8B448ED62E5541066341BDB696504129730273D52E5541276A69BCB3965041B4E25ADED32E554104F20343B3965041791A0714D32E55418DF01E34AE96504165AC93B7D92E5541C6473584AB965041633B563DD62E5541DD9723D5AB96504162CA18C3D22E55412CCEEAFBA59650412BE43FEDD82E554194C5DDEDA3965041F01BEC22D82E5541B9AE80E1A79650412702C5F8D12E5541A3CFCF0AAB9650415EE89DCECB2E554181C8A70BAE9650415B0623DAC42E55419918965CAE965041B7D59EA3C22E5541FD2D0E5AA59650410E5262FEB52E5541A15E9290A796504199C1BA69B42E55415E504292AD96504134AC426CBD2E5541A8228879B596504153422DF1B62E5541156D33DABD965041B757A5EEAD2E5541741E2A98C29650414056C0DFA82E5541AFE67D62C396504188B7C84CAD2E5541A52F44B4C69650414056C0DFA82E55410E987420C896504194DF3F75AD2E55419907CD8BC6965041FE4770E1AE2E55410C2737A6C4965041F50174ADB52E55412CBD212BBE965041B4646129BF2E5541861B607AB896504173C74EA5C82E554190D29928B596504119691056CE2E55414AE2CE35B4965041A549A63BD02E554185AA2200B59650413D52B349D22E5541118BB8E5B69650418F6AF564D32E554159ECC052BB965041BE0AD206D42E5541F5D64855C49650413FC3F0C3D52E55414960C8EAC8965041B4539858D72E5541E3D91273CE96504158841C8FD92E554159DBF781D39650411F2D063FDC2E5541E8BB8D67D596504142A56BB8DC2E5541FAA7FA78E39650419FF6EDCCC52E5541ADE270CCEC965041C650CE3ACD2E5541BE6E6934DF965041E8462D69E22E55412948D71AE4965041E9B76AE3E52E5541DF64C862F4965041BF7B0F81D72E5541044E6B56F8965041B5C4D5D2DA2E5541174BA138EE965041C4CEC7EFE12E554136E18BBDE7965041D3D8B90CE92E5541D63C513AF496504112F4C545F42E5541DB8F09A9FE9650412F976C05FF2E55414BBC2FFE0D97504164FB3E900D2F55417CCD491A1297504189E4E183112F5541CC744EBB0F97504121EDEE91132F55413E237B5B0A9750414183D9160D2F5541D99CC5E30F9750411836B5E3162F55417DCD491A12975041CB702B37202F55410180F3D61097504133C2357B212F5541050100002BA43E2E299750413108AA7F022F55411072D5E82197504113F4C545F42E554124E048451B9750413BD0ACFEE62E5541FFF6A55117975041E7462D69E22E5541356C41AD0D975041F08C299DDB2E5541913BBD760B9750411DBCC8C4D82E55413DB23DE1069750413D52B349D22E55414216BF20F99650417BFC8108DA2E55411D2D1C2DF5965041798B448ED62E5541BE7B256FF09650412502C5F8D12E5541319B8F89EE9650414709EDF7CE2E5541319B8F89EE96504122204A04CB2E55419EE53AEAF69650412CD783B2C72E5541C9A39C97F0965041AB1E65F5C52E5541008A756DEA965041341D80E6C02E5541D64D1A0BDC965041D1890E34B52E5541468B0931D39650419F07B79DAD2E554122A2663DCF9650411CDE5A66A82E55419F780A06CA965041AF93AF05A02E5541C17F3205C7965041B94AE9B39C2E5541E2865A04C4965041AF93AF05A02E5541CB366CB3C3965041332E49B7A82E55414A7E4DF6C19650411CDE5A66A82E55414A7E4DF6C1965041C6E39D56A02E5541F9D64855C4965041E67988DB992E554183D56346BF96504174CB5B3B9F2E5541753CAFA3BB9650416A14228DA22E5541EF30D877AF96504141C7FD59AC2E55416B963EC6A6965041213113D5B22E5541022E0E5AA5965041ACA06B40B12E5541141A7B6BB39650416C855F07A62E5541D37C68E7BC9650413A0308719E2E55414A7E4DF6C19650414E717BCD972E55412706E87CC19650415828B57B942E5541A64DC9BFBF965041C01FA86D922E5541C754F1BEBC965041CB471F96922E554117FCF55FBA9650419E18806E952E554168A3FA00B8965041424904A5972E55415A0A465EB49650411238EA88932E5541A26B4ECBB8965041BEAE6AF38E2E55411DD1B419B0965041C965A4A18B2E554153465075A696504102BDBAF1882E5541DAD32DEC9D96504175DC240C872E55419001E80496965041AE333B5C842E5541EB5F265490965041C412EC32812E5541A3FE1DE78B96504159397E4C7C2E5541D02DBD0E8996504163F0B7FA782E5541FC5C5C368696504179CF68D1752E5541707CC6508496504132DF9DDE742E554150F7A49C7296504142D8C62A942E554171FECC9B6F965041C11FA86D922E55417A3300FF80965041600E3D06722E554123C8057575965041BA6C7B556C2E5541B7EE978E70965041D32DA720702E55411D754D066B9650410C85BD706D2E5541E8107B7B5C9650417F935EBA832E5541A0AF720E58965041C412EC32812E55416E1C52A76896504120F330CD662E5541C23494C269965041A8628938652E5541F8A92F1E60965041172F3BE4582E5541485134BF5D965041718D7933532E554137D604285396504185FBEC8F4C2E5541CA8B59C74A96504102D29058472E5541D1D155FB43965041F638DCB5432E5541FD8FB7A83D9650413BB8692E412E554179F51DF734965041740F807E3E2E5541F83CFF39339650418B5F6ECF3E2E55419AFC45F631965041184004B5402E55411651E37341965041FB8B94244E2E554192A580F150965041D3AFAD6B5B2E5541EE74FCBA4E965041484055005D2E5541EAA34A972F96504181A83421422E5541A4B37FA42E965041184004B5402E5541256C9E6130965041E72EEA983C2E55410658BA2722965041867DF3DA372E5541219BEC3D11965041EC03A952322E554103870804039650416ADA4C1B2D2E55414977D3F6039650419709EC422A2E5541962B94D21296504154FB9B44302E55416498736B23965041FA9C5DF5352E5541988B087C2E965041135E89C0392E55416CCDA6CE34965041B51DD07C382E55414BC67ECF37965041EE74E6CC352E55413476907E379650410E0BD1512F2E55413205530434965041997A29BD2D2E5541E0EC10E932965041528A5ECA2C2E5541D04F4FB0589650417E48C077262E55412C1FCB795696504139C932FF282E554117B1571D5D965041749186C9292E554148C2713961965041227944AE282E5541DF5941CD5F96504120080734252E5541A6022B7D62965041DA173C41242E55410F6B5BE96396504164F8D126262E55419C4BF1CE65965041CE600293272E55411E754D066B965041729186C9292E5541C4160FB770965041E7212E5E2B2E5541B0A89B5A7796504121EA81282C2E5541D6027CC87E9650410A9A93D72B2E554114AD4A8786965041B88151BC2A2E5541A18DE06C88965041D98879BB272E55418086B86D8B965041207944AE282E5541161E88018A965041B88151BC2A2E55419E9A9CA799965041F79C5DF5352E5541772FF368AA9650414DA8E3D5252E554185C8A70BAE9650414CA8E3D5252E5541D7E0E926AF965041F249A5862B2E5541A7CFCF0AAB965041D0427D872E2E55416A963EC6A696504197EB6637312E5541744D7874A3965041263D3A97362E5541E86CE28EA19650413FFE65623A2E5541E86CE28EA19650416276CBDB3A2E55410C6341BDB696504115753718522E554199320ED2D09650418C6553566F2E5541A6CBC274D4965041530E3D06722E55419E85C640DB965041D1E4E0CE6C2E554121AF2278E096504144044BE96A2E5541C5DFA6AEE296504123FD22EA6D2E5541E6E6CEADDF9650410D1E7213712E55419E85C640DB965041D4C65BC3732E5541EE2CCBE1D8965041557F7A80752E55417C7E9E41DE9650418A01D2167D2E5541011938F3E69650411DB726B6742E5541CD14DA11F49650410C3CF71E6A2E55417A09543104975041CE20EBE55E2E5541DB2B88690C97504163477DFF592E5541EA357A86139750419C9E934F572E5541A99867021D975041844EA5FE562E5541CCFF03AB359750410507C4BB582E5541ACE712DB5097504190E759A15A2E5541ACE712DB509750413418DED75C2E55414EB8226837975041A73748F25A2E55417A874DE6189750411B57B20C592E5541BC959DE41297504149F78EAE592E5541DE9CC5E30F9750419B0FD1C95A2E5541DC2B88690C97504111A0785E5C2E5541AC1A6E4D08975041B5D0FC945E2E55418731CB5904975041590181CB602E554104086F22FF9650414F4A471D642E5541D014DA11F4965041BB94F27D6C2E5541FA61FE44EA965041118FAF8D742E5541F50E46D6DF965041FE9179AB7E2E55418F88905EE59650413414D141862E55415913F502EF965041458F00D9902E5541E9D505DDF7965041A6B13411992E55410EBFA8D0FB965041EE123D7E9D2E5541D5679280FE9650414EC4333CA22E554138FB03330A975041EB30C289962E55410BCC640B0D9750416D5A1EC19B2E5541A838F358019750410BB6E33DA82E554111A123C50297504147EF7482AC2E5541C1F91E2405975041F5D63267AB2E5541D8490D750597504181B7C84CAD2E55415891EEB703975041DFF78190AE2E554159022C3207975041BF61970BB52E55417EEBCE250B975041ED903633B22E5541E853FF910C97504156F9669FB32E5541DABA4AEF089750419E5A6F0CB82E5541680C1E4F0E975041E82CB5F3BF2E5541941D386B12975041E70E30E8C62E554167EE9843159750415F815271CF2E554167EE984315975041CA5AC057D42E5541968E75E5159750419103AA07D72E5541B906DB5E169750411EE43FEDD82E55413ABFF91B189750415A1DD131DD2E5541AEDE6336169750417D9536ABDD2E5541E6357A86139750414C13DF14D62E5541C3BD140D13975041F8895F7FD12E5541A045AF9312975041DFC833B4CD2E55411F8D90D61097504197672B47C92E55416F3495770E97504143DEABB1C42E5541EE7B76BA0C9750411EF508BEC02E5541B242E575089750413E8BF342BA2E55419981B9AA04975041A411A9BAB42E5541E928BE4B0297504174008F9EB02E554145F8391500975041728F5124AD2E5541DC8F09A9FE965041701E14AAA92E5541C53F1B58FE965041B29DA122A72E5541395F8572FC965041766410DEA22E55417DDE12EBF996504174F3D2639F2E5541DAAD8EB4F79650418AD2833A9C2E5541E464C862F49650417D39CF97982E554190DB48CDEF96504140003E53942E5541EA39871CEA9650418F36057A8E2E5541DDA0D279E6965041829D50D78A2E55415A777642E1965041D0D317FE842E5541AA1E7BE3DE965041C33A635B812E5541642EB0F0DD96504165FAA917802E5541B4D5B491DB9650419229493F7D2E55413ED4CF82D6965041F8AFFEB6772E55413C639208D39650413D2F8C2F752E55419F07CD8BC696504191A742F4912E5541297725F7C49650414AB77701912E5541AF82FC22D1965041B04EF649732E554183E62C17A7965041E738DCB5432E5541022E0E5AA5965041DC10658D432E554116AD4A87869650411546E93B712E55418ACCB4A184965041C32DA720702E55416A25014CA3965041C4C0763C432E554153D512FBA2965041DA9F2713402E5541C6F47C15A19650411E1FB58B3D2E554143CB20DE9B965041CE77B0EA3F2E554135326C3B9896504159E708563E2E554162610B6395965041639E42043B2E55419D295F2D96965041612D058A372E554161F0CDE8919650413D446296332E5541F7879D7C90965041F65397A3322E5541E037AF2B90965041640F807E3E2E5541D680757D939650412BB8692E412E5541A951D655969650411F90F205412E5541874AAE569996504115D9B857442E554158AAD1B498965041E8A91930472E5541875B772781965041938DCA7E6F2E55410BF610D989965041FE663865742E5541C5E7C0DA8F9650413D1107247C2E5541A4E098DB92965041E0D04DE07A2E554182D970DC959650410E712A827B2E554103928F9997965041B2A1AEB87D2E55413CE9A5E99496504162FAA917802E5541EAD063CE93965041919A86B9802E55416CFABF059996504135CB0AF0822E55412B5DAD81A2965041FC73F49F852E55413CD8DC18AD965041B8F46627882E5541FCAB070FBA96504117A65DE58C2E55410945BCB1BD965041215D9793892E55410BB6F92BC1965041C58D1BCA8B2E5541440D107CBE965041A386F3CA8E2E5541BB0EF58AC3965041E0BF840F932E554147EF8A70C596504155502CA4942E554101EEF6ACDC96504110E267FC7E2E554148DEC19FDD965041C03A635B812E5541870A97A9D09650412EF64B368D2E55418EDF5563C6965041334904A5972E554193A34B4CD4965041E3AEBB3EAB2E55410834F3E0D596504187DF3F75AD2E55411E02DBE6EA96504178C48487BE2E55414E13F502EF9650413F6D6E37C12E554127A84BC4FF965041AA57A5EEAD2E5541717A91AB079750413B8BF342BA2E554138237B5B0A975041544C1F0EBE2E55410430E64AFF9650414E776054C82E5541FCE9E916069750410B691056CE2E5541C50311410C97504103231422D52E55412E6C41AD0D9750410494519CD82E55416BA5D2F11197504140CDE2E0DC2E5541041F1D7A179750417D067425E12E5541299782F317975041119E43B9DF2E5541BF2E52871697504190E524FCDD2E554140E770441897504184BDADD3DD2E5541FB67E3CB1A975041E46EA491E22E5541B7E855531D97504172C077F1E72E5541205186BF1E975041FEA00DD7E92E5541D31ABF9824975041AA244A7CF62E5541059D162F2C975041542A8D6CEE2E5541EFBD65582F9750411A6239A2ED2E554141D6A77330975041B26A46B0EF2E5541A9CD9A652E975041B4DB832AF32E5541D6FC398D2B975041FC3C8C97F72E554155441BD0299750414CE49038F52E55415FFB547E269750411FB5F110F82E5541A75C5DEB2A975041D2EF6764012F55412BA43E2E299750413108AA7F022F554106000000125CDAF6C4965041D621910EEF2E5541D354612DC796504115290AD8EC2E55411D2C1C71C896504131B6B36CEE2E55412EE9838BC6965041D4178748FD2E55419B3A0E04C4965041B19DB713012F5541125CDAF6C4965041D621910EEF2E55410600000056E47E3616975041CD8C510CB82E5541785E4E6B129750413ADEDB84B52E55414427171C189750415C58ABB9B12E55410A03BA2C23975041BED9F3B7AB2E5541F84552122597504140CB0125B02E554156E47E3616975041CD8C510CB82E554105000000F63B484C33975041F03719F38E2E55413543C115319750418AD3B41A8C2E5541F4313E8641975041B33AAAEF822E5541B52AC5BC43975041199F0EC8852E5541F63B484C33975041F03719F38E2E554105000000B178A19415975041810D7D667A2E5541D3F270C9119750411BA9188E772E5541B55BBD6E1E975041678ADD976A2E55411BC0214721975041725A1F126E2E5541B178A19415975041810D7D667A2E554106000000A677676837975041619DB7F76F2E55415CA0AC243697504105099599702E554112C9F1E034975041B16198DB6B2E554176234CF34597504124A048F4632E5541371CD32948975041012679BF672E5541A677676837975041619DB7F76F2E5541060000000DEDF96814975041942B31DE342E5541DE4C1DC7139750412952C3F72F2E55414E79431C23975041347A3A20302E5541DB59D90125975041631A17C2302E5541F3A9C75225975041DA1BFCD0352E55410DEDF96814975041942B31DE342E554107000000665C0189F6965041A246ECCB232E554137BC24E7F596504195AD3729202E55411F6C3696F596504114F5186C1E2E5541665C0189F6965041933CFAAE1C2E5541D517EA63029750414124B8931B2E554103B8C605039750412DB64437222E5541665C0189F6965041A246ECCB232E5541070000008403B5DED7965041AB7B1F2F352E554178DB3DB6D79650416F428EEA302E5541656DCA59DE965041CB110AB42E2E554172067FFCE1965041CB110AB42E2E554147481D4FE8965041B3C11B632E2E554153709477E896504113731221332E55418403B5DED7965041AB7B1F2F352E55410A000000CE68CAE1B2965041541025A5292E55418778FFEEB19650412F2782B1252E55410AA25B26B79650415C5621D9222E5541A3AA6834B9965041CF758BF3202E554125D4C46BBE965041376D7EE51E2E5541E15437F3C09650417235D2AF1F2E554110F51395C1965041E7C57944212E5541F8A42544C19650413B4FF9D9252E55412F8BFE19BB9650412F2782B1252E5541CE68CAE1B2965041541025A5292E55411E0000003C4EA1D63296504174396FBAA22E55414CDA993E25965041B5D6813E992E5541C9B03D0720965041E2052166962E55414ECDDD031496504150D2D2118A2E55411F3ECA32FB955041E8DADF1F8C2E5541614C1A31F595504122A333EA8C2E554184C47FAAF59550416722C1628A2E554197B0ECBB03965041E669A2A5882E55418442795F0A965041DA412B7D882E5541FFA7DFAD019650419451608A872E55411CDE5589DF9550414CF0571D832E554156A6A953E0955041906FE595802E554141342961109650414E619597862E5541A92B1C530E965041AA301161842E55413BE170F205965041A4DD58F2792E5541FFA7DFAD01965041168C8592742E55418A17381900965041AC235526732E5541D6DCC1C5F6955041068293756D2E5541177AD449ED9550419BA8258F682E5541461AB1EBED9550413D686C4B672E5541679FD29FFF955041141B4818712E55412E48BC4F02965041AC235526732E554153315F43069650410CD54BE4772E55414D5CA08910965041B5588889842E5541F6DFDC2E1D965041762CB37F912E5541F8501AA920965041614D02A9942E55417616F5A033965041E758D9D4A02E5541C82E37BC3496504116F9B576A12E55415FC606503396504174396FBAA22E55413C4EA1D63296504174396FBAA22E55410D0000001034D815F4955041F17C4367CA2E554145A97371EA955041EB298BF8BF2E55411AEB11C4F095504169002FC1BA2E5541040C61EDF39550412481A148BD2E55414AFC2BE0F4955041BB1871DCBB2E554112A51590F7955041AFF0F9B3BB2E5541C1FD10EFF9955041C740E804BC2E5541378EB883FB955041BB1871DCBB2E55412DD77ED5FE955041EAB84D7EBC2E55415A061EFDFB955041EB298BF8BF2E55414D6D695AF8955041E172514AC32E5541D94DFF3FFA955041A81B3BFAC52E55411034D815F4955041F17C4367CA2E55410A000000A4D863E4039650417699E363BE2E55413B7033780296504101093CCFBC2E55415EE898F10296504197A00B63BB2E55415EE898F1029650412E38DBF6B92E5541C750C95D04965041AD7FBC39B82E554131B9F9C905965041A1574511B82E55414A7A259509965041DC1F99DBB82E55413E52AE6C09965041DD90D655BC2E55416059D66B069650415E49F512BE2E5541A4D863E4039650417699E363BE2E55410C0000006D855A2ADD9550418F5A0F2FC22E5541773C94D8D9955041A539C005BF2E5541AE226DAED3955041DC1F99DBB82E5541003BAFC9D49550415B677A1EB72E554169A3DF35D69550412CC79D7CB62E5541EA5BFEF2D7955041DAAE5B61B52E5541C954D6F3DA955041651EB4CCB32E55416D855A2ADD955041651EB4CCB32E5541BD2C5FCBDA955041DAAE5B61B52E5541031D2ABEDB955041209F2654B62E55412A770A2CE395504153217EEABD2E55416D855A2ADD9550418F5A0F2FC22E55410600000031CECF30C49550411102651BDC2E5541764D5DA9C1955041CB119A28DB2E5541B286EEEDC59550415DC7EEC7D22E554156B77224C895504117D723D5D12E554156B77224C8955041B0DF30E3D32E554131CECF30C49550411102651BDC2E554109000000D2E7721B37965041FB869E76A12E55418810B8D735965041561BC1D4A02E55413E39FD9334965041DEF9F4E19F2E5541FF3184CA369650411D016EAB9D2E554149093F0E3896504112312C319A2E55416596E8A239965041903F1EC4952E5541278F6FD93B9650410761EAB6962E5541DDB7B4953A965041D429B3679C2E5541D2E7721B37965041FB869E76A12E55410A0000002CAEA037AE955041AFBC1435362F5541FF7E0110B1955041D90939682C2F5541E99F5039B49550417BC97F242B2F55418DD0D46FB695504187F1F64C2B2F55411AB16A55B8955041FC819EE12C2F55416A586FF6B59550414654E4C8342F554199F84B98B6955041AFBC1435362F554181A85D47B69550413C9DAA1A382F55415197432BB2955041A505DB86392F55412CAEA037AE955041AFBC1435362F55410E000000877D1C01AC9550413D1FB165232F5541E34C98CAA9955041DFDEF721222F55419D5CCDD7A89550413BAE73EB1F2F5541CCFCA979A9955041D145437F1E2F5541FB9C861BAA955041508D24C21C2F554159DD3F5FAB955041F34C6B7E1B2F5541DA955E1CAD955041AC5CA08B1A2F5541C4B6AD45B0955041666CD598192F554197870E1EB3955041082C1C55182F5541520881A5B5955041C23B5162172F5541BC70B111B7955041D98B3FB3172F5541F63805DCB795504137CCF8F6182F5541DFE8168BB7955041CFD405051B2F5541877D1C01AC9550413D1FB165232F55417D000000803F3AF95F955041A0B222182F2F5541E8362DEB5D955041B691D3EE2B2F5541B99650495D955041B4209674282F55418AF673A75C955041609716DF232F554138DE318C5B9550414565AD991C2F5541E6C5EF705A955041EF6AF089142F55418985362D59955041EC8875950D2F5541ACFD9BA65995504125E08BE50A2F5541529F5D575F955041D1560C50062F554156700F7B7E95504143873F3BEC2E5541B89243B386955041074EAEF6E72E5541D5176567989550410F05E8A4E42E554154DD3F5FAB955041D2CB5660E02E5541D877D910B4955041E8AA0737DD2E5541F0C7C761B4955041B90A2B95DC2E55414A2606B1AE9550411F91E00CD72E5541CDD168339F955041BA8C31E0C72E554133581EAB99955041C4436B8EC42E5541C60D734A9195504145FC894BC62E5541BAE5FB2191955041B81BF465C42E55416087BDD2969550414EB3C3F9C22E55410247048F95955041AE823FC3C02E5541BB56399C94955041C461F099BD2E55410D6F7BB795955041D940A170BA2E5541EAF6153E95955041C07F75A5B62E554152EE083093955041E015602AB02E554100D6C61492955041D27CAB87AC2E554198DED32294955041BB2CBD36AC2E5541F61E8D66959550418F6E5B89B22E554183FF224C97955041FB47C96FB72E55419A4F119D9795504137815AB4BB2E55415F87BDD296955041E7D95513BE2E55416BAF34FB969550418B0ADA49C02E554132581EAB999550413B63D5A8C22E5541C1A9F10A9F955041F6E34730C52E55419F20C3C0B69550418E6A4EF3DB2E55411B75603EC6955041FD2537CEE72E5541E870025DD39550419A10BFD0F02E5541113C2045DE955041632AE6FAF62E554151572C7EE9955041DA2BCB09FC2E5541168FD8B3E8955041201C96FCFC2E5541A9442D53E09550411383E159F92E5541D4028F00DA95504128629230F62E55417E08D2F0D1955041D4D8129BF12E55410696AF67C99550412E3751EAEB2E5541B09BF257C19550417D6D1811E62E55414F79BE1FB995504191DB8B6DDF2E5541C298283AB79550414AEBC07ADE2E55411E68A403B5955041561338A3DE2E554162E7317CB295504191DB8B6DDF2E55414FFBC46AA4955041D93C94DAE32E55411997F2DF95955041B7356CDBE62E55411CFB731F8895504173B6DE62E92E5541607A019885955041B9A6A955EA2E5541F711D12B84955041220FDAC1EB2E5541EBE9590384955041C63F5EF8ED2E55414B9B50C1889550418D66415D052F5541CB536F7E8A95504183AF07AF082F5541299428C28B955041D5C749CA092F55416E13B63A89955041A6276D28092F5541ED5A977D879550418D66415D052F55419B4255628695504195AC3D91FE2E5541F711D12B84955041A7A97373F42E55418DA9A0BF82955041C63F5EF8ED2E5541A4F98E1083955041F36EFD1FEB2E554168C0FDCB7E955041BA17E7CFED2E5541B4AFFF5C72955041AC0413D3F82E554109D6DFB57495504163A797D4F92E55413130AF7F76955041E80BCA81FB2E554185568FD878955041FCB8B166FC2E5541F29B98DB7A95504115D8DA10FC2E554101D73EFB7C955041C1B1FAB7F92E5541BCEB04C27C955041B1765498F72E55413787D2147B955041E726E8B1F52E55417700CB887C95504149A38C5AF42E55414250376F7E9550412149BD90F22E55416538C57381955041110E1771F02E5541A6B1BDE7829550417E532074F22E5541082E62908195504135F6A475F32E5541853B71A87E9550416250743FF52E5541FB64FD357E955041728B1A5FF72E554180C92FE37F955041FC618ED1F72E5541D5EF0F3C82955041596CF1B4F72E554177E5AC5882955041DFD02362F92E55410F12E51A7F95504124BC5D9BF92E5541CE98ECA67D9550416435560FFB2E55418E1FF4327C955041D17A5F12FD2E5541254C2CF578955041526D50FAFF2E5541BD7864B77595504135DCE58A012F554128D98BEA719550419EAFADC8042F55418EC771586F955041CA7BBE57052F5541F5B557C66C9550410F67F890052F55413E13D3C46B95504171E39C39042F5541F927998B6B9550413EC06815FF2E5541B9E908B867955041C5BD57AD022F5541B39650495D9550410368266C0A2F554109910D59659550410F909D940A2F55414FFFD1007B9550415F37A235082F55416A313B46829550415F37A235082F55411EC18A8A909550417E7566EE0A2F5541EC323DEBAA955041CAB7C3BC0F2F55411522F339CC955041B37D7CE2152F55411FECB6D9D795504182CDE8C8172F554121D198A9DD9550413DE2AE8F172F554154F4CCCDE29550411588DFC5152F5541D0747CF0E69550417B76C533132F554156D9AE9DE89550413BFDCCBF112F554190FB837CE5955041D09CA58C152F55417EDBFB8CDD95504138706DCA182F55417884D8F7D8955041C246E13C192F55413526FEB3D19550410CA45C3B182F5541C4163111C49550418BB16B53152F554130C7538FA695504113A3FDF50F2F55415955A12E8C9550418A7566EE0A2F5541F30E39E681955041621B9724092F5541138426E07D955041BD25FA07092F5541BF05C4AC6E9550415BA9555F0A2F5541D27547E75C955041CC60A0270B2F5541D6E788AC5B955041AFCF35B80C2F55414C11153A5B955041923ECB480E2F554170F9A23E5E9550413771CC0F212F5541269C27405F9550418D7C8E38292F55414EF6F60961955041C51104222D2F55411062E06565955041F8343846322F5541803F3AF95F955041A0B222182F2F554107000000565D28BEB2955041F22CB1B60B2F554173EE922DB195504199948F980A2F5541879B7A12B2955041446EAF3F082F5541EF6E4250B59550411C14E075062F5541DEA63C3BBA95504196AFADC8042F554106010C05BC955041A1781223082F5541565D28BEB2955041F22CB1B60B2F5541050000009449C13CBB955041324E2750002F55413BB19F1EBA9550412CF703BBFB2E5541BA163111C4955041080F76B6F82E5541B5A4EF4BC59550415451D384FD2E55419449C13CBB955041324E2750002F55410E000000D52C74E694955041D8EAE24CEB2E5541216FD1B499955041BFCBB9A2EB2E55415804479E9D955041F0090CF7EA2E5541EDA31F6BA19550411DD61C86EB2E5541EDA31F6BA1955041A23A4F33ED2E5541A8B8E531A19550416D8ABB19EF2E5541B19C68BC9E9550410B0E1771F02E55418EB4DAB79B955041C622DD37F02E5541F4A2C02599955041F2EEEDC6F02E5541E0F5D840989550414B870FE5F12E55415B91A69396955041BD3E5AADF22E55416475291E949550416E6F9DE9F42E55417C9452C8939550419956CCA8EF2E5541D52C74E694955041D8EAE24CEB2E55413000000084704A586A95504177C62BD6402E5541DECE88A7649550416358B879472E5541098DEA545E9550415D83F9BF512E5541071CADDA5A955041ED450A9A5A2E55411F6C9B2B5B955041A08080ED632E5541A9DBF39659955041E8E1885A682E554111D3E68857955041983A84B96A2E5541A86AB61C56955041E20CCAA0722E5541C971DE1B53955041A16FB71C7C2E5541AE3F75D64B955041E3FB00D08A2E55415B2733BB4A9550412B5D093D8F2E55411155EDD3429550410E385C32992E5541F6B1461438955041C4C58AF4AC2E5541CDE6282C2D955041428B65ECBF2E55414ABDCCF427955041767EFAFCCA2E5541494C8F7A2495504105D0CD5CD02E55412E1A26351D955041D9116CAFD62E554144F9D60B1A95504138C3626DDB2E5541C91577080E955041FD780858EF2E5541A2BB969A0695504111D6B2E3002F5541F3629B3B049550417DAF20CA052F554149DF5E96F794504137AE8C061D2F5541D44EB701F6945041090EB0641C2F55419522E2F702955041081F7935042F5541C633FC13079550416AC3B3B8F72E554119BD7BA90B955041B6883D65EE2E55418F4D233E0D955041B6883D65EE2E5541B5A703AC14955041F5B4126FE12E55412B38AB40169550414F1351BEDB2E554150214E341A95504140095FA1D42E5541EA9A98BC1F955041E15768E3CF2E55414477D0C02E955041F4B81F05B82E5541C52FEF7D30955041E890A8DCB72E55416C42EEA8399550410EFC511BA72E55411AC62A4E4695504161255D07902E5541E3DF51784C955041C53AD504872E5541723125D85195504162A763527B2E5541502AFDD854955041C6BCDB4F722E55410DAB6F605795504129F0D858622E5541266C9B2B5B95504150CCBF11552E55413023D5D957955041F38B06CE532E55415FC3B17B58955041086BB7A4502E5541512AFDD8549550417062AA964E2E5541823B17F558955041973E914F412E554107D6B0A6619550418E8757A1442E554164166AEA629550414908CA28472E554151A8F68D69955041F30D0D193F2E554184704A586A95504177C62BD6402E55410500000007112645C69450414F5F8F2D282E5541B5F8E329C5945041AB2E0BF7252E554166C21C03CB9450413C73221C1A2E554176CC0E20D294504186456803222E554107112645C69450414F5F8F2D282E554106000000491F7643C0945041C7E27A87182E55417F94119FB69450415C090DA1132E5541A8E135D2AC945041644F09D50C2E55412B0B9209B29450418274B6DF022E55419DA8F5D8C494504114A804340F2E5541491F7643C0945041C7E27A87182E5541
+</a>
+
+<b>
+010600000001000000010300000001000000190000007E7BAC3032945041C8D4FE21C62D55410BC4C22E32945041DD816E02C62D5541392FDE9634945041A9B082AEC42D5541CD594A8C34945041A613856BC42D5541C6F01EC12D945041B7052E82C02D55414C3D62A219945041C69EE041D52D5541E70573A8089450410E45E686DF2D5541579CE6D7F693504141529D60E92D5541C591A6E5EA935041B347C1C2F12D55419425A32DDB9350411C3DE524FA2D5541848CC9FBD6935041617C5338F62D5541623B023ED59350411A5C264EFA2D55411541452DD49350412DE10124FE2D55411D5A8B48D493504158B1AF4B022E55414BF02FECD49350414DD272B4052E5541FEB5A867D6935041F17F6133092E5541C615D9C0E79350411B2064DEFC2D5541F781DC78F793504129FB198DF12D5541F064BF860E945041CD3FF8B7E32D5541A34250711594504104AC971BDF2D5541C1D339261C9450413A18377FDA2D5541B5993799219450416684D6E2D52D5541B3F883772794504112A4CE10D12D5541878CE4132C945041C9C3C63ECC2D55417E7BAC3032945041C8D4FE21C62D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979690 - 3435573
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -33 </desc>
+<a>
+01060000000100000001030000001E000000A002000040E3E97C6C975041AC419793082F55412BA2AB836D975041B61686F6012F5541E1178CCF6D97504169AEBA5AD12E55417790392E6C975041AD8A32CBC12E5541E2D65D9F649750417D69D369A32E5541AE4066BB5F975041DD9DE1A08D2E5541B70843A85D9750415F22672F912E55415EAD3BEA589750415F7DCA08892E55419B66739453975041633C9CD87F2E55410B1A111952975041F2A233FD6F2E5541C08FF16452975041FB6A10EA6D2E55415F11AAE0579750416BBA3F786D2E55414778E5E95497504144ABF6505D2E554130DF20F35197504144ABF6505D2E5541CEBB3C484F9750418EEBDCB74C2E5541509B25B04A975041225B7FF9432E55411DAACAF24D975041B76FBE61432E55416834EAA64D9750415E14B7A33E2E55410A7574F249975041CB63E6313E2E5541622BDF8946975041B280E8ED2A2E5541F8D60A8DFB9650419894DF8C102E554170497AE1F0965041A15CBC790E2E55419469ED94E89650417B97AC9F0E2E5541535D7180D696504193307196112E5541DA268BED9E9650412786DE2E1A2E554105312FA663965041B477DDD0232E5541C1E3846148965041ABE723F7272E55410EE33C982E96504174925A432C2E55411661E0371C965041D6B53EEE2E2E554152757BBB0E965041DF7D1BDB2C2E55415FFC29780396504182BEA526292E5541AEEAB7220296504194F3FB262D2E5541BCBB9F2C07965041CDED6101312E55417BF95C6505965041E48626F8332E554184C1395203965041F2570E02392E5541805DCB5B04965041A9728B74412E55413F4025BB0A96504147F443F0462E5541AB24B9CF1C96504180AD8D6C542E5541112C60EB1396504180AD8D6C542E554168A516EC1B965041AB7C82D55B2E554113072D1A0D9650418F163BFD6F2E5541049E7F89F1955041CB4EEDAF5F2E55418A77917FEC9550417B1C27E0682E5541793317C0D7955041AB7C82D55B2E5541C8AF53EBA8955041903B7E87432E5541EE122552989550411D5C80AE4F2E5541E23ACE949B9550411B81B37F562E5541B2DA729FA89550412EA0FA6D642E5541E5CB2468BA955041636C79656F2E5541793317C0D795504105878FA9822E55416D5BC002DB955041B454C9D98B2E5541F25905CADC9550414E4D22BE942E55414F895528D7955041A3C6D8BE9C2E5541152C70A4E0955041043D194EA82E554143B1FE6ADA955041678E260CAD2E554124BA60BFCF95504149978860A22E5541870B6E7DD4955041556FDF1D9F2E55419FBB1BF8CD95504112F03C3A9E2E5541119B19D1C19550410618E67CA12E5541BA2163D0B99550411CEDC6C8A12E554100579F11AD955041CE95CD27A42E55416F80038DAE955041FC1A5CEE9D2E554118074D8CA6955041771C17279C2E5541099E9FFB8A955041C74EDDF6922E554132B70AC06C95504172B0F324842E55411CE229746C9550413DE4742D792E5541FC0FBF99689550419813C58B732E55411EBDF6A265955041FD1A6CA76A2E5541AF93922764955041AA574F04552E554197E3E4AC6A955041083D39C0412E5541AA022C9B78955041504D42302E2E5541E7F067F28D95504142BF61CE0B2E5541810E04616A9550413C78719DFA2D5541C568737364955041F81D028B002E5541234E5D2F519550414850C85AF72D5541CCD4A62E499550413356B43DF02D5541EF81DE37469550414850C85AF72D5541A4E07EF43A9550414850C85AF72D5541BF46C6CC269550411BA606C3F62D55414620D8C221955041ABA1D518FC2D5541D0AF83160F955041021B8C19042E55419DBED14DFD945041A5106F8C102E5541C146D685F3945041333171B31C2E5541B9241926E9945041B82FB67A1E2E55414AFBB4AAE79450411B81C338232E5541FAC8EEDAF0945041D8012155222E5541C146D685F3945041B654E94B252E554168F25256F294504192CCE4132F2E554137B72A3206955041A7C6F830362E5541F25CBB1F0C955041EDFB3472292E55411B51E3591A95504192CCE4132F2E5541DF1831A72A955041389D94B5342E5541D08A408C3B9550412AEA70C93E2E5541A4E07EF43A9550416191BCEF422E5541DE3D647831955041833EF4F83F2E5541189B49FC27955041CA29BADE582E55411A76162B2195504194826EB8542E5541AE024C0D12955041B70A73F04A2E55414D8C0B7E06955041AFE8B590402E554167178627F994504116F05CAC372E5541E7A9A7ECE2945041EDFB3472292E55419852AE4BE59450411B81C338232E5541CDD4C6A0E2945041DBDCED831B2E55415689A5C5D69450411F375D96152E5541840E348CD094504157B975EB122E55417A11AAFDCC945041C09BE935032E554115E5CF10CF9450415E25A9A6F72D55414C8C1B37D394504197A7C1FBF42D5541A074713FCD94504110DE9846F42D5541C5475EE3B3945041FA86B11EE82D55415AF3EDA2A5945041FCC87CB6F02D5541C66C7C378294504163E322C1DB2D5541CE89FD7D7F94504165426F9FE12D55418EA190F5809450412FD6CF3BE62D554169CEA3519A9450416242D3F3F52D55418F5F8D06A1945041763A6E3DFC2D554121C9B5829E945041122064DEFC2D554182C676F27794504181578B2FE52D55413DC124CF679450418815C097DC2D55415877F48065945041197FE813DA2D5541D9A61A7068945041984FC224D72D55416810A7407A945041D3D84623E42D554197BE113C7E945041369404A4DD2D5541A95760A77E9450413435B8C5D72D55416810A7407A945041E871313AD02D5541AEB64831709450414B2DEFBAC92D5541D18999296B9450411C7F84BFC52D55410855856B6C945041FF69682FC22D5541C04F979C7094504136355471C32D5541C2AEE37A76945041A5CB2BF5C52D5541702D288777945041DA37CB58C12D55413F2071AD6D945041223DB927BD2D554141200D59599450414F8CD744BB2D5541EA816CCA48945041A10D9338BA2D55419F1D321D47945041785F283DB62D55416035C59448945041076A04DBAD2D55413B0328BE479450417A5FC4E8A12D5541A6DB66853E945041724243A2A42D554102D9EF9D40945041A1F0AD9DA82D55411FEE0B2E449450413E35F01CAF2D5541706FC7214394504113451EDEB62D554175CEAFAB34945041EAB3987DC42D5541C5F01EC12D945041BB052E82C02D55414D3D62A219945041CB9EE041D52D5541E30573A8089450410F45E686DF2D5541559CE6D7F69350413F529D60E92D5541C891A6E5EA935041B047C1C2F12D55419525A32DDB935041203DE524FA2D5541F8E060AED49350419591F110F42D554141459B5BD69350414B2DB763F22D554139281A15D993504137351C1AEC2D554193C6564FD59350418F740C76E22D5541C932F6B2D0935041544A38AAEF2D55418EA971B4C3935041EC71958EE42D554127301B77BE9350413C9404A4DD2D5541635AEF42B1935041D4BB6188D22D55417DB17216A9935041FD4CE7E8C42D55418EEB74A3A3935041D91A4A12C42D5541D232CAB593935041B1E81090D72D5541C29917F67E9350414FCEA2DCC32D5541C29917F67E9350410E87E975BF2D5541D9914EEB70935041F6D0B56FAD2D5541A684FB657B93504178A12B2C962D554120F6ECEC869350411EA43EBF7F2D554120F6ECEC8693504166A92C8E7B2D55415103A4C690935041B92AE8817A2D5541B77CFA0396935041043072FC612D55410B5D02D69A935041E979A24A642D5541D84FAF50A5935041D1C36E44522D5541506254F9AA9350417367994D4A2D554152C1A0D7B09350413EFBF9E94E2D55419108BE92C9935041B7AEEE5F3A2D5541065DCA7EC3935041B54FA281342D5541350B357AC7935041EBBB41E52F2D5541091B633BCF935041CEA625552C2D554155DEE9C6D6935041A7153CA0252D554191C6BAA3E99350418B5FD0423C2D5541DBCB441ED19350412A035FA0482D55413B8766F3DE93504184004C0D5F2D5541BE15D9C0E7935041F037D7B25B2D55419B4288C8EC935041AFF01D4C572D554114552D71F29350414AD613ED572D5541533D9AF9F0935041BBCB374F602D5541B9B6F036F69350415ECEAE365E2D55418C67D219F8935041EA79A24A642D5541F99E5DBFF4935041B66C4FC56E2D554112F6E092EC93504170C6ADD4782D554145033418E2935041D89E50F0832D554129EE1788DE935041B5CBFFF7882D5541589C8283E2935041D2E01B888C2D554135C9318BE7935041EA964F8E9E2D55417DCE1F5AE393504106AC6B1EA22D5541B4990B9CE49350412D3D55D3A82D5541A35F090FEA93504123C187AEA52D55419B4288C8EC935041526FF2A9A92D5541533D9AF9F09350418DF876A8B62D5541F3E02857FD93504166678DF3AF2D5541756F9B2406945041AE6C7BC2AB2D55416FB166BC0E9450416D25C25BA72D5541B2576C01199450410FC9EC649F2D55418F841B091E945041D13FCCBAA62D5541A21D6A741E945041C564B2B79D2D5541C64F074B1F9450416F255E07932D55419900E92D21945041887CE1DA8A2D554191E367E723945041ADAE7EB18B2D554187679AC220945041FAD0511B992D554175CE4B57209450412D3D55D3A82D5541A21D6A741E94504166678DF3AF2D55418F841B091E9450419F91C513B72D55415A187CA522945041E796B3E2B22D55415C77C88328945041A54FFA7BAE2D5541DE053B5131945041F6716991A72D5541742DFC893A9450413D775760A32D554192A164F84394504133FB893BA02D554167B192B94B94504173E3F6C39E2D55419E7C7EFB4C945041A84F96279A2D5541E6816CCA48945041D59EB444982D5541483D2A4B429450419ED3C802972D55415FBE0A903A945041BE13960B912D554141FA1C2C2A9450417897CD8B822D5541DB47A29425945041B5CBFFF7882D55410897C0B123945041E21A1E15872D554187679AC220945041861D95FC842D55410897C0B1239450418E3A1643822D5541E47F77E527945041B6C611947F2D55418170CD181894504160F515FA6A2D55410EF6A83B1594504149D677416C2D55414AA9769E0D9450415500C414612D55413C7C9F55E9935041CE4C743E2E2D5541CCB8E5B0A99350419AAC197BE52C55416DFB3E1097935041F33F801AC72C55416020250D8E93504124EE86C1B62C5541657F0D977F935041AEDB7DC49C2C5541998C601C75935041854AF863AA2C554132130ADF6F9350412D0B0808B42C55414DC9D9906D93504180EB0FDAB82C55410EE16C086F93504114B48434BC2C5541687FA9426B935041A9DB456DC52C55415E03DC1D68935041E464CA6BD22C55416E3DDEAA6293504152FBA1EFD42C55412DF624445E935041D58914BDDD2C5541FE47BA485A935041D947AD79E92C5541C71D8228539350419E7C258CFC2C554160A42BEB4D93504198BEF023052D554154C911E8449350411230E2AA102D554101E90916409350419F3A229D1C2D5541E6323A6442935041CEE88C98202D5541779C62E03F9350411AAC1324282D5541B784CF683E9350419C3A86F1302D5541650314753F9350418C008464362D55412E3828333E93504117AC77783C2D5541024856F445935041C52ABC843D2D55419E2D4C9546935041FCF5A7C63E2D55415F45DF0C48935041E39E24F3462D55418DF349084C935041CCA6EDFD542D554133550DCE4F9350418F1DCD535C2D55413DD1DAF2529350419D5733356B2D5541241B0B4155935041CFC336ED7A2D5541B884CF683E935041810014B6872D5541AE0802443B935041A891FD6A8E2D5541A48C341F389350414DF3C030922D55418777188F3493504176E3F6C39E2D5541B4C636AC3293504182BE10C7A72D5541EBF0D2204E935041ADAEE205A02D5541C81D82285393504111289D97B92D5541E4329EB8569350418B998E1EC52D554178FB12135A935041C4C3C63ECC2D5541713DDEAA629350417E1D254ED62D55414E6A8DB267935041A5AE0E03DD2D554125D9075275935041C581C34FEC2D55414E288AC3879350411D2064DEFC2D554166DEBDC999935041476FE64F0F2E5541C2DB46E29B935041AC89F0AE0E2E554160208961A2935041875753D80D2E5541D8322E0AA89350413DF3182B0C2E554124F6B495AF935041AA2AA4D0082E554182528A8CB7935041F22F929F042E554159C1042CC5935041A66C0B14FD2D5541DB4F77F9CD9350412D5A666BF72D55419C670A71CF935041253DE524FA2D55416DB99F75CB9350410A871573FC2D55411F97CC0BBE935041DF964334042E55415D20EDB5B693504185F806FA072E554163DE211EAE935041D9D80ECC0C2E554120381CD9A39350416CA18326102E5541DD911694999350413F526509122E5541486A555B909350413F526509122E5541B3429422879350417F3AD291102E55419CEBACFA7A9350413DF3182B0C2E5541BD5FB114709350410E45AE2F082E55413972F268619350411F7FB0BC022E55411AFE89FA5793504154EB4F20FE2D55417DB9477B519350419CF03DEFF92D554183777CE348935041755F543AF32D554183777CE348935041C38127A4002E5541F0AE078945935041088779C7102E5541CF3A036F5093504151EBB374122E554193102FA35D935041648402E0122E5541A14A95846C935041AEE83C8D142E55415387724D799350416E00D004162E554169DE597585935041CAFD581D182E55411ABCEA5F8C935041777C9D29192E55415B03A4C690935041219CF9AB282E5541CA997B4A9393504112C143FD332E5541269704639593504149EBDF714F2E554153E6228093935041A747B568572E554113FEB5F7949350417AF8964B592E55419FA9A90B9B9350415F42C7995B2E5541E14FAF50A5935041458CF7E75D2E554186B17216A9935041B422CF6B602E5541D015ADC3AA9350415A849231642E5541DCF0C6C6B393504187D3B04E622E5541151BFFE6BA93504122B9A6EF622E55417B945524C0935041996CFFB9622E554161DE8572C2935041B6811B4A662E5541F4A6FACCC5935041AD649A03692E5541235565C8C9935041A3E8CCDE652E55411C973060D2935041EBEDBAAD612E554166FB6A0DD49350413B102AC35A2E554195A9D508D89350412877DB575A2E554143281A15D993504155C6F974582E55419F25A32DDB9350415C842EDD4F2E554172D68410DD935041488C9393492E554133EE1788DE935041CBBB552E382E55419E25A32DDB935041DF544045242E55414A459B5BD6935041BBC3F23B092E5541C615D9C0E79350411C2064DEFC2D5541F981DC78F79350412BFB198DF12D5541EF64BF860E945041CB3FF8B7E32D55419F4250711594504101AC971BDF2D5541C6D339261C9450413618377FDA2D5541B5993799219450416B84D6E2D52D5541B7F883772794504117A4CE10D12D5541828CE4132C945041C4C3C63ECC2D554196847F5D32945041AFCB2BF5C52D55414C7FF5E24A945041DA1AAE66D82D55414162D8F061945041DF379301EA2D55412C6A3DA75B945041BD644209EF2D5541CE0D68B053945041A40DBF35F72D5541F281087634945041590835BB0F2E55411A5591C506945041369494F52E2E5541EBA626CA02945041C13F8809352E55417D104F46009450410C030F953C2E5541D7AE8B80FC9350412B777703462E55416FD6E864F1935041F8C8705C562E5541095D9227EC93504185D3B04E622E5541FFE0C402E99350418991490B6E2E5541904AED7EE6935041F169EC26792E55412055C91CDE935041C7D866C6862E5541603D36A5DC935041F686D1C18A2E5541BADB72DFD8935041E4ED82568A2E55414B459B5BD69350416D3A2A8C8A2E5541D5914291D6935041139CED518E2E55415EDEE9C6D693504194CB1341912E5541BADB72DFD893504115FB3930942E5541D6F08E6FDC935041CDF54B61982E5541BC3ABFBDDE935041EA0A68F19B2E55412AD19641E1935041D9D06564A12E5541101BC78FE3935041AEE09325A92E55417435D1EEE29350412F10BA14AC2E5541BE990B9CE49350419DA69198AE2E5541354D6466E49350410320E8D5B32E5541516280F6E79350414D842283B52E55414945FFAFEA9350414FE36E61BB2E55410A5D9227EC935041BE7946E5BD2E554153C1CCD4ED935041115A4EB7C22E5541F7C343BCEB9350419C0542CBC82E5541ED477697E8935041F0E5499DCD2E5541C815D9C0E79350417115708CD02E5541241362D9E99350417115708CD02E554178F369ABEE935041F902CBE3CA2E554167B9671EF4935041653A5689C72E5541F0050F54F4935041AD3F4458C32E55418CEB04F5F49350413C4A20F6BA2E55417BB10268FA935041F9A31AB1B02E5541E8A626CA02945041B69EC88DA02E554173521ADE08945041BD5CFDF5972E5541507FC9E50D9450418432C5D5902E5541818C80BF17945041920D7B84852E554127EE43851B945041C71ACE097B2E55415EB92FC71C945041A64719BD6B2E5541C43286042294504190F031955F2E5541A15F350C27945041783AFE8E4D2E55419BA100A42F945041A32AD0CD452E55410B972406389450416A0098AD3E2E554180A9C9AE3D9450419F0DEB32342E55416C6F2B765794504194D320FD102E5541D6A61A7068945041FBEDC607FC2D5541CE8999296B9450415F08D166FB2D55418FA12CA16C945041A96C0B14FD2D55415418A8A25F945041B1E83C8D142E554114303B1A61945041CDFD581D182E55418D42E0C2669450418E15EC94192E5541A03A7B0C6D94504121DE60EF1C2E55413620395696945041B047EDBF2E2E55417525EFCDBA9450418E3235843F2E554103EE2BD1E6945041CB1A0661522E554157CE33A3EB945041857464705C2E554176429C11F5945041C55CD1F85A2E55411F62F89304955041D39637DA692E5541D19ED55C119550412BD62736602E5541F82FBF1118955041F2ABEF15592E554127DE290D1C95504173DB15055C2E55415C4AC97017955041ECEDBAAD612E5541A2F06A610D9550412F94C0F26B2E554129DEC5B807955041C25C354D6F2E554198749D3C0A9550415625AAA7722E5541D9BB56A30E955041C4BB812B752E5541817C664718955041DF7151DD722E5541FA8E0BF01D95504193AECA516B2E5541B2891D212295504193AECA516B2E55414552927B25955041B0C3E6E16E2E55414552927B2595504168BEF812732E55418D57804A21955041749912167C2E55414C10C7E31C955041C61ACE097B2E55412FFBAA5319955041D0969B2E7E2E5541E59670A61795504176F85EF4812E554135B9DFBB10955041C1BBE57F892E55416208FED80E95504132B109E2912E5541EC54A50E0F955041F427E937992E5541BDA63A130B9550412535A011A32E55414594956A0595504103624F19A82E5541C72208380E955041C7377B4DB52E55410F28F6060A95504189AE5AA3BC2E55414494956A0595504175B6BF59B62E55416F8467A9FD9450416EF88AF1BE2E5541B52A099AF3945041E9697C78CA2E55419FD32172E7945041ABE05BCED12E554114282E5EE19450419DA6F5ECC22E5541C864A7D2D9945041B49E2CE2B42E5541E1BB2AA6D1945041E64C3389A42E554172255322CF9450414A673DE8A32E5541CDC38F5CCB94504130B16D36A62E554102302FC0C6945041962AC473AB2E55414A351D8FC2945041BDBBAD28B22E5541923A0B5EBE9450413F4A20F6BA2E5541B8CBF412C594504152E36E61BB2E554139FB1A02C8945041372D9FAFBD2E55415E2DB8D8C894504177150C38BC2E5541A074713FCD94504189AE5AA3BC2E5541048F7B9ECC945041BABB117DC62E5541586F8370D1945041663A5689C72E554173255322CF945041D98EC6C9D52E5541D0812819D7945041083D31C5D92E554176E3EBDEDA9450416EB68702DF2E55415E2DB8D8C89450416BB6EB56F32E5541188716E8D2945041D12F4294F82E5541A074713FCD9450417B4F9E16082F55413E77B0CFF3945041CAD0BD5E1B2F5541E4D87395F7945041396795E21D2F5541A64F53EBFE9450415D9932B91E2F5541790035CE009550419305D21C1A2F5541A8AE9FC904955041B479D6360F2F554121C144720A955041163594B7082F554119A4C32B0D955041675703CD012F55417DBECD8A0C955041DBAB0FB9FB2E554112E68EC315955041591D9DEBF22E5541B2891D21229550411C35CC0EE02E5541A14F1B9427955041F6A3E259D92E5541ED12A21F2F9550418ECB3F3ECE2E554138D628AB369550414B253AF9C32E5541036A89473B955041B39E2CE2B42E5541A9CB4C0D3F955041CCF5AFB5AC2E554136D68CFF4A95504187F05D929C2E5541B864FFCC53955041605F74DD952E55419F0D7CF95B955041F069507B8D2E5541C69E65AE62955041386F3E4A892E5541C0E030466B955041C9D866C6862E5541D4D8CB8F71955041386F3E4A892E55413235A1867995504179B6F7B08D2E55417EF827128195504196CB1341912E554109A41B26879550410462EBC4932E554136F33943859550410EDEB8E9962E5541F24C34FE7A9550417199766A902E554167A140EA74955041F069507B8D2E5541265A87837095504181D378F78A2E5541FFC89DCE69955041386F3E4A892E5541197F6D80679550416F3A2A8C8A2E55415967DA086695504154845ADA8C2E5541757CF69869955041D5B380C98F2E554177DB42776F955041A86462AC912E55418157109C72955041B2E02FD1942E5541D537186E7795504121770755972E554121FB9EF97E955041EB0A68F19B2E5541FE274E0184955041BEBB49D49D2E554164A1A43E89955041D154983F9E2E5541E5D0CA2D8C955041B69EC88DA02E55419DCBDC5E90955041A564C600A62E5541707CBE4192955041F944CED2AA2E5541CA1AFB7B8E955041A7C312DFAB2E55413F6F076888955041F944CED2AA2E554107A41B26879550419FA69198AE2E55413E6F0768889550418E6C8F0BB42E55411120E94A8A955041B5FD78C0BA2E5541B781AC108E955041C9F5130AC12E5541AF642BCA90955041306F6A47C62E5541FF869ADF899550418C6CF35FC82E55419FCB780A7C95504129B135DFCE2E5541DFB3E5927A9550417B32F1D2CD2E5541142085F675955041560054FCCC2E5541498C245A71955041F2E5499DCD2E55416442F40B6F9550413C4A844ACF2E5541A52A61946D9550417574BC6AD62E55419BAE936F6A9550412B1082BDD42E55417E9977DF66955041870D0BD6D62E554134353D32659550419289D8FAD92E5541F3ED83CB609550410020B07EDC2E55414751FA6B61955041F8EDD6CCDE2E554110F1858463955041C28D62E5E02E554110F1858463955041756D8CD4E32E55413191984262955041138D549AE72E55419371D07C5E95504108ADA305E82E55410B126AE059955041BC8CCDF4EA2E55419371D07C5E955041658C464FEE2E5541EA7157225B955041F7CB5D80F22E5541AF32C796539550416A6B62F3F72E5541681386764C955041BB6A54A8FE2E5541D5D36E454895504195EB2546F62E5541F6738103479550418A0B75B1F62E55414D7408A9439550411D4B8CE2FA2E5541E6B4B4CA3D9550414EAA6BD9022F55414895EC043A95504189E9FB640A2F55411235781D3C9550410669B16C0F2F55418FB42D25419550416E28054B152F55412DD4F5EA44955041F6876BE7192F554173F3360B4C95504147875D9C202F554178D252AF559550416D068CFE282F5541B411E33A5D955041EA8541062E2F55412B9003526C9550410425BFD3362F5541E34E49E578955041D9A4FB80382F5541F8EC31C28B95504177C4C3463C2F55419885AA46D4955041030346874A2F5541418523A1D79550412F8309DA482F5541F5644D90DA9550419C43F2A8442F554104241AC9E3955041E0C709BE1A2F5541C3E3F44CE69550416E28054B152F55414063AA54EB9550411C2913960E2F55410F04CB5DE3955041C049704C082F554156230C7EEA955041078B2AB9FB2E55410903366DED955041E7EA17FBFC2E554191629C09F2955041BB6A54A8FE2E554119C202A6F6955041078B2AB9FB2E554160E143C6FD9550418A0B75B1F62E55416BC1F45AFD95504102AC0E15F22E5541CB7C22240296504159F27632E62E554111A3D3E102965041B50C50C0E12E5541B9EC684A069650416115B7F8DB2E5541772A26830496504140B41515DB2E5541F04132FE01965041A73B68B6DC2E554169593E79FF95504100976F74E12E5541EB3827E1FA955041C841A6C0E52E5541F40004CEF89550418BE3D1EFE22E5541840C3819F1955041667925EFDA2E5541BC6101CDEC955041996A80ACD72E55410188B28AED95504157A83DE5D52E554130BA3B78F3955041529F32C8CE2E5541E7D4B8EAFB95504128D117D1C72E5541041C25250E965041C96C05F6BB2E55414F4BE1FF1596504100C2CEA9B72E554159B85A131C9650419E9EEAFEB42E55410102F07B1F96504175756C2EB62E5541B677D0C71F9650416749214BB92E5541C8078AA11B965041EE3115D0BB2E55417410F1D915965041262C7BAABF2E5541D68E385E10965041149CC1D0C32E554178CFC2A90C9650414C9627ABC72E55415CD28FBC0A9650413E6ADCC7CA2E5541041C25250E96504119A5CCEDCA2E5541823C3CBD12965041010C08F7C72E554187A0AAB3119650415FCB7DABCB2E5541663F09D01096504107151314CF2E5541ED27FD5413965041C552D04CCD2E5541F794766819965041BCE55639C72E55411DFF226921965041B278DD25C12E554114DCE2A22B965041751A0955BE2E554106B097BF2E96504183465438BB2E5541DD8619EF2F965041BA9B1DECB62E5541CFFF6A323B96504166FFE7FDA82E55411EEEF8DC39965041243DA536A72E554193A1966138965041F6AFB86FA92E55413A468FA333965041BE5AEFBBAD2E55419BC4D6272E9650419995DFE1AD2E5541CEB531E52A96504182FC1AEBAA2E5541271139A32F96504129A1132DA62E5541101D11D33496504161F6DCE0A12E5541CFFF6A323B96504199F042BBA52E554198AAA17E3F965041D54E178CA82E55410E03DC2946965041BDF680C5AE2E554195EBCFAE489650412D46B053AE2E5541912CFEDE5196504169FFE7FDA82E55418D6D2C0F5B9650417C8FA1D7A42E554118BA8E8A5C965041772B33E1A52E5541C56792E95E965041A65DBCCEAB2E55415A7CD1515E96504161DCA737B32E55417679043F60965041AB66C7EBB22E5541062AD5B06096504178756C2EB62E55418D12C93563965041D1D073ECBA2E5541278B769461965041E405CAECBE2E55417F41E12B5E9650414FF18A84BF2E55418D6D2C0F5B965041DB3DEDFFC02E554183A54F225D965041D6D97E09C22E5541195F2BB164965041B1146F2FC22E5541A0471F366796504138FD62B4C42E55417B820F5C679650412AD117D1C72E554156BDFF81679650417EC8B098CD2E55419CE3B03F6896504163701AD2D32E5541AAB498496D965041DC2CC373D92E55415BC60A9F6E9650410B5F4C61DF2E5541808B1A796E965041F46A2491E42E5541648EE78B6C9650416E27CD32EA2E55419F884D6670965041130DF4A4EE2E554196C0707972965041FC18CCD4F32E55418DF8938C74965041C5689F47002F5541673384B274965041F9A333520D2F55411845F60776965041F2CA2CD9272F5541220DD3F473965041A92FE398402F55412D391ED87096504112B7353A422F55414991B49E6A965041D6FDFD8F472F55411A5F2BB1649650410A94F5734C2F5541993E141960965041E76A77A34D2F55411615F263549650418FB40C0C512F55417CF7A7DE4D965041D5DABDC9512F55415F55D8CA439650411B016F87522F5541AE9EC94E3A96504186EC2F1F532F55411DEEF8DC39965041C34A04F0552F554134E220AD349650419D85F415562F55415E0B9F7D339650415CC3B14E542F5541CE5ACE0B33965041A74DD102542F5541F27A41BF2A965041EC7382C0542F5541E90DC8AB24965041B9822703582F55415DC1653023965041200A7AA4592F55416125D426229650417401136C5F2F55410002F07B1F9650413848DBC1642F5541BE3FADB41D9650415EB287C26C2F5541BADB3EBE1E9650418880A2B9732F55416689421D21965041B34EBDB07A2F554154F988432596504151D0752C802F55419F28451E2D96504110B3CF8B862F554150DF539A36965041CB31BBF48D2F5541CA9BFC3B3C965041737B505D912F5541192F270D43965041A163A0FD862F55415C8FC2454696504152B81EA5882F5541CDCCCCCC4F9650417B14AE078E2F55415C8FC2F5519650419A9999998B2F55416666667659965041E17A14FE8F2F554185EB5148589650417B14AEB7912F5541A4703D0A6C96504185EB51C89C2F55411F85EBF16B9650410AD7A3F09D2F5541C3F5289C7D965041F6285CDFA72F5541A0A656BD81965041B03EF1F6A52F554194CEFFFF84965041214322A1A02F554160B80AAD9F965041A81C34979B2F554194A9BC75B19650415BA00725972F5541F16963A7CA96504195FDECA88D2F5541EEB3C949D89650414981C036892F55414177E6ECED96504161316EB1822F5541071A0169F796504114B5413F7E2F5541AB0FE4DB0397504185B972E9782F55417BAF88E6109750415AEA7D80712F5541F91C6721279750415CA017DE632F5541023F2481319750416A533BCA592F55412A334CBB3F975041BC60CEC8492F55412A334CBB3F97504100BB3DDB432F55412036C22C3C9750417BBCF813422F5541360BA3783C97504171BF6E853E2F5541145E6B6F3F975041739A3BB4372F55413530D64943975041C3CC01842E2F5541492AEA664A97504113FFC753252F5541AC7BF7244F975041D35AF29E1D2F55410FCD04E353975041C85D68101A2F5541843D598F66975041E00D168B132F554140E3E97C6C975041AC419793082F55410600000092DBD99D88965041E8B21838632F55416274E40486965041B52145C9622F55412FE3109685965041BB7501755E2F55417762861E10975041CF9B144E4F2F5541AAF3598D109750412F6AFF7F542F554192DBD99D88965041E8B21838632F5541B0000000A012F4703E975041A588DB60482F5541195BAE27309750415FD1F418572F5541F8C50FBC22975041B52145C9622F5541A49F9DE114975041DD0AA0E06B2F55411DE85798069750419ED1531A742F55414B883AF6E39650419329DBC27C2F554176FE3E7EC3965041EDA30949862F5541F8C493B6AE96504119E1200C8B2F5541D4051775A396504119E1200C8B2F5541E3D76DA298965041B4BE792E8A2F5541F4D3A2A58B9650411F35DDB7862F55418100169C809650411F23F4F97C2F554193906C62789650413F30E188742F5541BD0730BC77965041921E683C732F554110F6B66F76965041CF472D44762F5541C64F5B9F7396504139FB75A3702F5541C64F5B9F7396504188B491716B2F5541E249883073965041BB7380AE662F55415FAFD23D71965041B109AAE35E2F5541A520C328709650411688875D552F5541193EE25272965041F02384014E2F554164E43D2375965041EBEE181C4A2F55415667A75A759650419B135266432F55411E734D38769650416B45783F342F5541AF8A99F37796504165EE6172242F554108F2E15B92965041545E0BAC2C2F55418A6AEC6688965041408A5E161D2F55419BFA422D809650415E75A0BD082F5541F830F5C37A965041BD9C676AEF2E5541017920A7769650419F5EE409D82E554134380FE471965041F12AC0D5CA2E55417252E901619650410ED2ABAD9E2E5541DD0532615B965041FAFDFE178F2E5541E118F25E53965041EA5EBD67832E5541901B80C140965041CC203A076C2E5541E6FA1B8B2B9650413EFA0262562E5541ABC26B99149650416A62DBD1412E55414500385006965041C02EB79D342E5541C89AED42089650418305F295312E5541C4DA6EFE3B965041960A35FD602E554173303E1A559650416BC40775812E55418B17ABAD5C965041F7C893328B2E5541DBF271636396504127976D599A2E5541916EC17A6C96504147D5F0B9B12E554142B5A5AC7196504123B5432DC22E55417161D4EB7496504169263418C12E5541AE8A99F3779650413B9CB0C0C92E554147EA10927596504194BFA259CC2E554106AE8B8C7A965041FC81D6A2DA2E55415FD17D257D965041CBE4924DEB2E55416406E90A81965041B00C11A4F72E55416406E90A81965041139AD907022F55413FC490968596504122391BB80D2F55410D05A2598A965041EC666C7D1A2F5541CCC81C548F96504186E88E03242F55418B8C974E94965041F2BD824A2A2F554196F66D199C965041239F1C6F312F5541E6D134CFA2965041F0DF2D32362F554172D6C08CAC965041BE203FF53A2F5541CBF9B225AF965041916525CC232F55416DF49660D49650413A64DE1A2D2F5541E211B68AD696504164DBA1742C2F55415851809CE49650418F7410B6372F5541D6D87591EE96504198BC3B99332F5541C73934E1E2965041227D7187252F5541BF13B4E5F2965041BFEFA8231B2F554142AE69D8F4965041ED792C7B122F5541C4481FCBF69650410974590C122F55416D47D81900975041BABA3D3E172F55413CAA94C410975041068344F6252F55415DD92C3B1497504187FB4E011C2F554117683C5015975041584F20C2182F554157A4C15510975041998BA5C7132F554117683C5015975041BECDFD3B0F2F55413897D4C618975041C3026921132F5541608759D533975041272A30CEF92E55417EC5DC354B975041BA32919FE72E55413854EC4A4C9750416B57CAE9E02E5541573F2EF2379750414806878BD12E5541E1FF63E0299750412E2E05E2DD2E5541CE4D6232269750410DFF6C6BDA2E55410C99D221359750410BDDC183CE2E5541967BB3F732975041860DA1ABC82E5541E434CFC52D975041C74926B1C32E5541D6B738FD2D9750410786ABB6BE2E5541F2B1658E2D975041CB5CE6AEBB2E55410FCE3D0739975041C0F20FE4B32E55413E7A6C463C975041438DC5D6B52E5541F0C05078419750410A77C0CCAA2E5541979D5EDF3E975041E9472856A72E5541A0E589C23A9750415830DC9AA52E5541C527E23636975041D160BBC29F2E5541766EC6683B97504186BA5FF29C2E55418A4273FE4A97504173085E44992E5541919989CB5A975041F06DA851972E55417AD4C71F5F9750419EA1CC85A42E5541D2F7B9B8619750412DEAAE12C62E55411456EAA56897504165DE0835C52E55412B501737689750416EF23686082F554175D4C71F5F9750410C87190A0A2F55414506EEF84F9750414068B32E112F5541143814D240975041B172125B1B2F5541088AE73721975041027084F82D2F5541C5090C630E9750410CDA5AC3352F55412D57530BE5965041BB42EADC462F5541D4336172E296504168546329482F554184589ABCDB9650415AD7CC60482F554191B3859DCF965041844E90BA472F5541A443DC63C7965041D53C176E462F5541CF8909ECA6965041F44904FD3D2F5541FD138D439E965041198C5C71392F55412EB1D0988D965041F13644FF452F5541457692448996504120E3723E492F55418BE7822F88965041814E90BA472F55410C608D3A7E965041CCF4EB8A4A2F5541FEE2F6717E965041B52F2ADF4E2F5541B43C9BA17B96504138CADFD1502F5541072B22557A965041D65EC255522F554131A2E5AE79965041B651D5C65A2F55417C48417F7C9650412C919FD8682F554104608D3A7E96504112014912712F5541E01D35C682965041C3472D44762F554183E7822F88965041F2F35B83792F554110EC0EED91965041AD826B987A2F55418E7304E29B965041AD826B987A2F5541CDBE74D1AA965041DF415AD5752F55413DC9D3FDB49650412EFB75A3702F5541632DD759BC965041D5D7830A6E2F55418EC6459BC7965041FF4E47646D2F55416FB9580CD09650413743A1866C2F554120003D3ED596504145C0374F6C2F5541EC1EA319CE965041D5D7830A6E2F554123F15154C1965041207EDFDA702F55413481A81AB9965041E88985B8712F554138946818B1965041A84D00B3762F5541F100CD45A6965041CEB1030F7E2F5541323D524BA196504163FEBAAF832F5541F5138D439E965041303FCC72882F5541FF7D630EA6965041F94A7250892F5541EDED0C48AE96504122C235AA882F5541EDED0C48AE9650411D8DCAC4842F5541E8B8A162AA965041D81BDAD9852F5541CDBE74D1AA965041B7EC4163822F554179D0ED1DAC9650416C46E6927F2F5541620B2C72B09650417AC37C5B7F2F554167409757B4965041884013247F2F554119877B89B99650415994E4E47B2F5541103F50A6BD9650410071F24B792F5541601A175CC4965041A84D00B3762F5541400D2ACDCC965041D1C4C30C762F554120003D3ED596504125B34AC0742F5541FCBDE4C9D99650416B243BAB732F5541B11789F9D69650411C6B1FDD782F5541AFF5DD11CB965041C0346D467E2F5541BD7274DACA96504126D5F5A7802F55416A84ED26CC965041E06305BD812F5541CF550C5AEE9650417059A690772F55413F3EC09EEC965041949BFE04732F5541B35BDFC8EE9650418F66931F6F2F5541E73C79EDF5965041C75AED416E2F55412ADFFFA914975041E967DAD0652F55414B0E982018975041A3F6E9E5662F5541EED7E5891D9750419EC17E00632F55416C3D30971B97504129A45FD6602F55418E8E73F52A975041FE0AF194552F5541C682CD172A975041447CE17F542F5541F71F116D19975041C303D7745E2F5541B08C759A0E975041BABBAB91622F554161B1AEE4079750413C566184642F554161B1AEE4079750419044E837632F55412F146B8F1897504116F25D285D2F55411FA6BFB02C97504131CADFD1502F5541B0DFB6533A975041679C8E0C442F554141F7020F3C97504191135266432F55418C9D5EDF3E9750413E25CBB2442F5541A012F4703E975041A588DB60482F5541360000009673759CD1965041DD102FF72A2F55419B878928B596504158460F760F2F5541C8D19AD7B4965041D44AF742192F554118967BBBB09650418A733CFF172F5541E07B2892AD965041B6B343E8252F554114B35FE1A7965041933974B3292F5541695A5C9FAC965041F99DD88B2C2F5541695A5C9FAC9650417B8FE6F8302F55416F47823FA79650417B8FE6F8302F554192C15174A39650419E09B62D2D2F554148EA9630A2965041504FDF0F232F5541A37EB98EA1965041E5075F5D172F5541BF0B6323A39650419E3AAEDF072F5541E6684E32A8965041A427D47F022F5541609424EB9A965041A631DE45F42E5541A588C3549396504147BA9F0DEC2E554189FB19C091965041AD1E04E6EE2E5541EF5F7E98949650410C96421EF72E5541DFA2167E969650416B0D8156FF2E55418AFB19C091965041B5E43B9A002F554119C7736D8B965041634749A2ED2E5541B3620F9588965041518AE187EF2E55412F67F761929650419D3AAEDF072F55412F67F7619296504174D3B80A112F5541639E2EB18C96504181AD044B062F55413C4143A287965041613D3FDCFB2E55410327F07884965041D37BEFF4F32E55414DFEAABC859650411F5DB4FEE62E55414711851C8B965041370742B9DF2E5541EC7C62BE8B9650412C37003FDC2E554154EBD05C8096504183E806C3D22E554165A838777E96504183E806C3D22E5541375E27C87E9650414FB1CF73D82E5541FF43D49E7B9650414FB1CF73D82E5541AA9CD7E07696504112B46070CC2E554172518C05999650414FE2C725B32E554199AE77149E965041441286ABAF2E55410AE31D67A4965041050B0DE2B12E55419E9193EEA6965041C6039418B42E5541DCC9046A7F965041D3ACE7A6CE2E55410EF731F387965041332426DFD62E554135541D028D965041CDBFC106D42E554152E1C6968E965041AA45F2D1D72E554167814A8B95965041B1321872D22E5541C2156DE994965041C6D29B66D92E5541011DE6B292965041D685F9BAE52E5541E97258F8999650412440D0D8EF2E5541A861D568AA9650416B0D8156FF2E554192B747AEB1965041A427D47F022F5541646D36FFB196504105A91C7EFC2E554180FADF93B3965041613D3FDCFB2E554141F366CAB5965041A80AF0590B2F55411A658309D6965041817C0C992B2F55419673759CD1965041DD102FF72A2F55415E0000000180F3D61097504133C2357B212F55419B1B8FFE0D9750418A733CFF172F5541467492400997504158460F760F2F5541038AFD9C02975041AFF715FA052F5541487E9C06FB965041C7A1A3B4FE2E554160282AC1F39650410C96421EF72E554116516F7DF2965041E91B73E9FA2E55414F6BC2A6F59650413EC36FA7FF2E55410B812D03EF9650412C06088D012F5541898F1F96EA965041CB84BF8E072F5541F6E0A90EE896504158460F760F2F554134E822D8E59650418A733CFF172F5541EB106894E496504195437E791B2F5541CE83BEFFE2965041409C81BB162F5541D953007AE6965041039F12B80A2F5541898F1F96EA965041D171E52E022F5541FAC3C5E8F09650417CCAE870FD2E5541BBBC4C1FF3965041672A657CF62E554183A2F9F5EF9650415C5A2302F32E554134E822D8E59650412136C612FE2E554173EF9BA1E3965041D75E0BCFFC2E5541AC09EFCAE6965041FAD8DA03F92E554139CB3EB2EE9650413FCD796DF12E554159CA2EB1EB9650419EF2E036EF2E5541BEDFA6AEE2965041BB9587F6F92E5541EB0E46D6DF965041981D227DF92E5541DFE6CEADDF965041228D7AE8F72E5541CDE998CBE9965041FAC15C00ED2E554190B00787E59650411CC984FFE92E5541AED5B491DB965041AF6D10CEF92E5541456D8425DA965041981D227DF92E5541E1570C28E39650418FE8EE19E82E5541AD647717D896504180DEFCFCE02E554156F97C8DCC965041F55DDBC0FA2E5541EC904C21CB96504147761DDCFB2E554160B0B63BC9965041512D578AF82E5541EC904C21CB965041670C0861F52E55419CE94780CD965041B7B30C02F32E554138D4CF82D69650413AEE310AE02E5541BF61ADF9CD9650412C557D67DC2E5541768F6712C69650411394519CD82E55410945BCB1BD9650417B8B448ED62E5541066341BDB696504129730273D52E5541276A69BCB3965041B4E25ADED32E554104F20343B3965041791A0714D32E55418DF01E34AE96504165AC93B7D92E5541C6473584AB965041633B563DD62E5541DD9723D5AB96504162CA18C3D22E55412CCEEAFBA59650412BE43FEDD82E554194C5DDEDA3965041F01BEC22D82E5541B9AE80E1A79650412702C5F8D12E5541A3CFCF0AAB9650415EE89DCECB2E554181C8A70BAE9650415B0623DAC42E55419918965CAE965041B7D59EA3C22E5541FD2D0E5AA59650410E5262FEB52E5541A15E9290A796504199C1BA69B42E55415E504292AD96504134AC426CBD2E5541A8228879B596504153422DF1B62E5541156D33DABD965041B757A5EEAD2E5541741E2A98C29650414056C0DFA82E5541AFE67D62C396504188B7C84CAD2E5541A52F44B4C69650414056C0DFA82E55410E987420C896504194DF3F75AD2E55419907CD8BC6965041FE4770E1AE2E55410C2737A6C4965041F50174ADB52E55412CBD212BBE965041B4646129BF2E5541861B607AB896504173C74EA5C82E554190D29928B596504119691056CE2E55414AE2CE35B4965041A549A63BD02E554185AA2200B59650413D52B349D22E5541118BB8E5B69650418F6AF564D32E554159ECC052BB965041BE0AD206D42E5541F5D64855C49650413FC3F0C3D52E55414960C8EAC8965041B4539858D72E5541E3D91273CE96504158841C8FD92E554159DBF781D39650411F2D063FDC2E5541E8BB8D67D596504142A56BB8DC2E5541FAA7FA78E39650419FF6EDCCC52E5541ADE270CCEC965041C650CE3ACD2E5541BE6E6934DF965041E8462D69E22E55412948D71AE4965041E9B76AE3E52E5541DF64C862F4965041BF7B0F81D72E5541044E6B56F8965041B5C4D5D2DA2E5541174BA138EE965041C4CEC7EFE12E554136E18BBDE7965041D3D8B90CE92E5541D63C513AF496504112F4C545F42E5541DB8F09A9FE9650412F976C05FF2E55414BBC2FFE0D97504164FB3E900D2F55417CCD491A1297504189E4E183112F5541CC744EBB0F97504121EDEE91132F55413E237B5B0A9750414183D9160D2F5541D99CC5E30F9750411836B5E3162F55417DCD491A12975041CB702B37202F55410180F3D61097504133C2357B212F5541050100002BA43E2E299750413108AA7F022F55411072D5E82197504113F4C545F42E554124E048451B9750413BD0ACFEE62E5541FFF6A55117975041E7462D69E22E5541356C41AD0D975041F08C299DDB2E5541913BBD760B9750411DBCC8C4D82E55413DB23DE1069750413D52B349D22E55414216BF20F99650417BFC8108DA2E55411D2D1C2DF5965041798B448ED62E5541BE7B256FF09650412502C5F8D12E5541319B8F89EE9650414709EDF7CE2E5541319B8F89EE96504122204A04CB2E55419EE53AEAF69650412CD783B2C72E5541C9A39C97F0965041AB1E65F5C52E5541008A756DEA965041341D80E6C02E5541D64D1A0BDC965041D1890E34B52E5541468B0931D39650419F07B79DAD2E554122A2663DCF9650411CDE5A66A82E55419F780A06CA965041AF93AF05A02E5541C17F3205C7965041B94AE9B39C2E5541E2865A04C4965041AF93AF05A02E5541CB366CB3C3965041332E49B7A82E55414A7E4DF6C19650411CDE5A66A82E55414A7E4DF6C1965041C6E39D56A02E5541F9D64855C4965041E67988DB992E554183D56346BF96504174CB5B3B9F2E5541753CAFA3BB9650416A14228DA22E5541EF30D877AF96504141C7FD59AC2E55416B963EC6A6965041213113D5B22E5541022E0E5AA5965041ACA06B40B12E5541141A7B6BB39650416C855F07A62E5541D37C68E7BC9650413A0308719E2E55414A7E4DF6C19650414E717BCD972E55412706E87CC19650415828B57B942E5541A64DC9BFBF965041C01FA86D922E5541C754F1BEBC965041CB471F96922E554117FCF55FBA9650419E18806E952E554168A3FA00B8965041424904A5972E55415A0A465EB49650411238EA88932E5541A26B4ECBB8965041BEAE6AF38E2E55411DD1B419B0965041C965A4A18B2E554153465075A696504102BDBAF1882E5541DAD32DEC9D96504175DC240C872E55419001E80496965041AE333B5C842E5541EB5F265490965041C412EC32812E5541A3FE1DE78B96504159397E4C7C2E5541D02DBD0E8996504163F0B7FA782E5541FC5C5C368696504179CF68D1752E5541707CC6508496504132DF9DDE742E554150F7A49C7296504142D8C62A942E554171FECC9B6F965041C11FA86D922E55417A3300FF80965041600E3D06722E554123C8057575965041BA6C7B556C2E5541B7EE978E70965041D32DA720702E55411D754D066B9650410C85BD706D2E5541E8107B7B5C9650417F935EBA832E5541A0AF720E58965041C412EC32812E55416E1C52A76896504120F330CD662E5541C23494C269965041A8628938652E5541F8A92F1E60965041172F3BE4582E5541485134BF5D965041718D7933532E554137D604285396504185FBEC8F4C2E5541CA8B59C74A96504102D29058472E5541D1D155FB43965041F638DCB5432E5541FD8FB7A83D9650413BB8692E412E554179F51DF734965041740F807E3E2E5541F83CFF39339650418B5F6ECF3E2E55419AFC45F631965041184004B5402E55411651E37341965041FB8B94244E2E554192A580F150965041D3AFAD6B5B2E5541EE74FCBA4E965041484055005D2E5541EAA34A972F96504181A83421422E5541A4B37FA42E965041184004B5402E5541256C9E6130965041E72EEA983C2E55410658BA2722965041867DF3DA372E5541219BEC3D11965041EC03A952322E554103870804039650416ADA4C1B2D2E55414977D3F6039650419709EC422A2E5541962B94D21296504154FB9B44302E55416498736B23965041FA9C5DF5352E5541988B087C2E965041135E89C0392E55416CCDA6CE34965041B51DD07C382E55414BC67ECF37965041EE74E6CC352E55413476907E379650410E0BD1512F2E55413205530434965041997A29BD2D2E5541E0EC10E932965041528A5ECA2C2E5541D04F4FB0589650417E48C077262E55412C1FCB795696504139C932FF282E554117B1571D5D965041749186C9292E554148C2713961965041227944AE282E5541DF5941CD5F96504120080734252E5541A6022B7D62965041DA173C41242E55410F6B5BE96396504164F8D126262E55419C4BF1CE65965041CE600293272E55411E754D066B965041729186C9292E5541C4160FB770965041E7212E5E2B2E5541B0A89B5A7796504121EA81282C2E5541D6027CC87E9650410A9A93D72B2E554114AD4A8786965041B88151BC2A2E5541A18DE06C88965041D98879BB272E55418086B86D8B965041207944AE282E5541161E88018A965041B88151BC2A2E55419E9A9CA799965041F79C5DF5352E5541772FF368AA9650414DA8E3D5252E554185C8A70BAE9650414CA8E3D5252E5541D7E0E926AF965041F249A5862B2E5541A7CFCF0AAB965041D0427D872E2E55416A963EC6A696504197EB6637312E5541744D7874A3965041263D3A97362E5541E86CE28EA19650413FFE65623A2E5541E86CE28EA19650416276CBDB3A2E55410C6341BDB696504115753718522E554199320ED2D09650418C6553566F2E5541A6CBC274D4965041530E3D06722E55419E85C640DB965041D1E4E0CE6C2E554121AF2278E096504144044BE96A2E5541C5DFA6AEE296504123FD22EA6D2E5541E6E6CEADDF9650410D1E7213712E55419E85C640DB965041D4C65BC3732E5541EE2CCBE1D8965041557F7A80752E55417C7E9E41DE9650418A01D2167D2E5541011938F3E69650411DB726B6742E5541CD14DA11F49650410C3CF71E6A2E55417A09543104975041CE20EBE55E2E5541DB2B88690C97504163477DFF592E5541EA357A86139750419C9E934F572E5541A99867021D975041844EA5FE562E5541CCFF03AB359750410507C4BB582E5541ACE712DB5097504190E759A15A2E5541ACE712DB509750413418DED75C2E55414EB8226837975041A73748F25A2E55417A874DE6189750411B57B20C592E5541BC959DE41297504149F78EAE592E5541DE9CC5E30F9750419B0FD1C95A2E5541DC2B88690C97504111A0785E5C2E5541AC1A6E4D08975041B5D0FC945E2E55418731CB5904975041590181CB602E554104086F22FF9650414F4A471D642E5541D014DA11F4965041BB94F27D6C2E5541FA61FE44EA965041118FAF8D742E5541F50E46D6DF965041FE9179AB7E2E55418F88905EE59650413414D141862E55415913F502EF965041458F00D9902E5541E9D505DDF7965041A6B13411992E55410EBFA8D0FB965041EE123D7E9D2E5541D5679280FE9650414EC4333CA22E554138FB03330A975041EB30C289962E55410BCC640B0D9750416D5A1EC19B2E5541A838F358019750410BB6E33DA82E554111A123C50297504147EF7482AC2E5541C1F91E2405975041F5D63267AB2E5541D8490D750597504181B7C84CAD2E55415891EEB703975041DFF78190AE2E554159022C3207975041BF61970BB52E55417EEBCE250B975041ED903633B22E5541E853FF910C97504156F9669FB32E5541DABA4AEF089750419E5A6F0CB82E5541680C1E4F0E975041E82CB5F3BF2E5541941D386B12975041E70E30E8C62E554167EE9843159750415F815271CF2E554167EE984315975041CA5AC057D42E5541968E75E5159750419103AA07D72E5541B906DB5E169750411EE43FEDD82E55413ABFF91B189750415A1DD131DD2E5541AEDE6336169750417D9536ABDD2E5541E6357A86139750414C13DF14D62E5541C3BD140D13975041F8895F7FD12E5541A045AF9312975041DFC833B4CD2E55411F8D90D61097504197672B47C92E55416F3495770E97504143DEABB1C42E5541EE7B76BA0C9750411EF508BEC02E5541B242E575089750413E8BF342BA2E55419981B9AA04975041A411A9BAB42E5541E928BE4B0297504174008F9EB02E554145F8391500975041728F5124AD2E5541DC8F09A9FE965041701E14AAA92E5541C53F1B58FE965041B29DA122A72E5541395F8572FC965041766410DEA22E55417DDE12EBF996504174F3D2639F2E5541DAAD8EB4F79650418AD2833A9C2E5541E464C862F49650417D39CF97982E554190DB48CDEF96504140003E53942E5541EA39871CEA9650418F36057A8E2E5541DDA0D279E6965041829D50D78A2E55415A777642E1965041D0D317FE842E5541AA1E7BE3DE965041C33A635B812E5541642EB0F0DD96504165FAA917802E5541B4D5B491DB9650419229493F7D2E55413ED4CF82D6965041F8AFFEB6772E55413C639208D39650413D2F8C2F752E55419F07CD8BC696504191A742F4912E5541297725F7C49650414AB77701912E5541AF82FC22D1965041B04EF649732E554183E62C17A7965041E738DCB5432E5541022E0E5AA5965041DC10658D432E554116AD4A87869650411546E93B712E55418ACCB4A184965041C32DA720702E55416A25014CA3965041C4C0763C432E554153D512FBA2965041DA9F2713402E5541C6F47C15A19650411E1FB58B3D2E554143CB20DE9B965041CE77B0EA3F2E554135326C3B9896504159E708563E2E554162610B6395965041639E42043B2E55419D295F2D96965041612D058A372E554161F0CDE8919650413D446296332E5541F7879D7C90965041F65397A3322E5541E037AF2B90965041640F807E3E2E5541D680757D939650412BB8692E412E5541A951D655969650411F90F205412E5541874AAE569996504115D9B857442E554158AAD1B498965041E8A91930472E5541875B772781965041938DCA7E6F2E55410BF610D989965041FE663865742E5541C5E7C0DA8F9650413D1107247C2E5541A4E098DB92965041E0D04DE07A2E554182D970DC959650410E712A827B2E554103928F9997965041B2A1AEB87D2E55413CE9A5E99496504162FAA917802E5541EAD063CE93965041919A86B9802E55416CFABF059996504135CB0AF0822E55412B5DAD81A2965041FC73F49F852E55413CD8DC18AD965041B8F46627882E5541FCAB070FBA96504117A65DE58C2E55410945BCB1BD965041215D9793892E55410BB6F92BC1965041C58D1BCA8B2E5541440D107CBE965041A386F3CA8E2E5541BB0EF58AC3965041E0BF840F932E554147EF8A70C596504155502CA4942E554101EEF6ACDC96504110E267FC7E2E554148DEC19FDD965041C03A635B812E5541870A97A9D09650412EF64B368D2E55418EDF5563C6965041334904A5972E554193A34B4CD4965041E3AEBB3EAB2E55410834F3E0D596504187DF3F75AD2E55411E02DBE6EA96504178C48487BE2E55414E13F502EF9650413F6D6E37C12E554127A84BC4FF965041AA57A5EEAD2E5541717A91AB079750413B8BF342BA2E554138237B5B0A975041544C1F0EBE2E55410430E64AFF9650414E776054C82E5541FCE9E916069750410B691056CE2E5541C50311410C97504103231422D52E55412E6C41AD0D9750410494519CD82E55416BA5D2F11197504140CDE2E0DC2E5541041F1D7A179750417D067425E12E5541299782F317975041119E43B9DF2E5541BF2E52871697504190E524FCDD2E554140E770441897504184BDADD3DD2E5541FB67E3CB1A975041E46EA491E22E5541B7E855531D97504172C077F1E72E5541205186BF1E975041FEA00DD7E92E5541D31ABF9824975041AA244A7CF62E5541059D162F2C975041542A8D6CEE2E5541EFBD65582F9750411A6239A2ED2E554141D6A77330975041B26A46B0EF2E5541A9CD9A652E975041B4DB832AF32E5541D6FC398D2B975041FC3C8C97F72E554155441BD0299750414CE49038F52E55415FFB547E269750411FB5F110F82E5541A75C5DEB2A975041D2EF6764012F55412BA43E2E299750413108AA7F022F554106000000125CDAF6C4965041D621910EEF2E5541D354612DC796504115290AD8EC2E55411D2C1C71C896504131B6B36CEE2E55412EE9838BC6965041D4178748FD2E55419B3A0E04C4965041B19DB713012F5541125CDAF6C4965041D621910EEF2E55410600000056E47E3616975041CD8C510CB82E5541785E4E6B129750413ADEDB84B52E55414427171C189750415C58ABB9B12E55410A03BA2C23975041BED9F3B7AB2E5541F84552122597504140CB0125B02E554156E47E3616975041CD8C510CB82E554105000000F63B484C33975041F03719F38E2E55413543C115319750418AD3B41A8C2E5541F4313E8641975041B33AAAEF822E5541B52AC5BC43975041199F0EC8852E5541F63B484C33975041F03719F38E2E554105000000B178A19415975041810D7D667A2E5541D3F270C9119750411BA9188E772E5541B55BBD6E1E975041678ADD976A2E55411BC0214721975041725A1F126E2E5541B178A19415975041810D7D667A2E554106000000A677676837975041619DB7F76F2E55415CA0AC243697504105099599702E554112C9F1E034975041B16198DB6B2E554176234CF34597504124A048F4632E5541371CD32948975041012679BF672E5541A677676837975041619DB7F76F2E5541060000000DEDF96814975041942B31DE342E5541DE4C1DC7139750412952C3F72F2E55414E79431C23975041347A3A20302E5541DB59D90125975041631A17C2302E5541F3A9C75225975041DA1BFCD0352E55410DEDF96814975041942B31DE342E554107000000665C0189F6965041A246ECCB232E554137BC24E7F596504195AD3729202E55411F6C3696F596504114F5186C1E2E5541665C0189F6965041933CFAAE1C2E5541D517EA63029750414124B8931B2E554103B8C605039750412DB64437222E5541665C0189F6965041A246ECCB232E5541070000008403B5DED7965041AB7B1F2F352E554178DB3DB6D79650416F428EEA302E5541656DCA59DE965041CB110AB42E2E554172067FFCE1965041CB110AB42E2E554147481D4FE8965041B3C11B632E2E554153709477E896504113731221332E55418403B5DED7965041AB7B1F2F352E55410A000000CE68CAE1B2965041541025A5292E55418778FFEEB19650412F2782B1252E55410AA25B26B79650415C5621D9222E5541A3AA6834B9965041CF758BF3202E554125D4C46BBE965041376D7EE51E2E5541E15437F3C09650417235D2AF1F2E554110F51395C1965041E7C57944212E5541F8A42544C19650413B4FF9D9252E55412F8BFE19BB9650412F2782B1252E5541CE68CAE1B2965041541025A5292E55411E0000003C4EA1D63296504174396FBAA22E55414CDA993E25965041B5D6813E992E5541C9B03D0720965041E2052166962E55414ECDDD031496504150D2D2118A2E55411F3ECA32FB955041E8DADF1F8C2E5541614C1A31F595504122A333EA8C2E554184C47FAAF59550416722C1628A2E554197B0ECBB03965041E669A2A5882E55418442795F0A965041DA412B7D882E5541FFA7DFAD019650419451608A872E55411CDE5589DF9550414CF0571D832E554156A6A953E0955041906FE595802E554141342961109650414E619597862E5541A92B1C530E965041AA301161842E55413BE170F205965041A4DD58F2792E5541FFA7DFAD01965041168C8592742E55418A17381900965041AC235526732E5541D6DCC1C5F6955041068293756D2E5541177AD449ED9550419BA8258F682E5541461AB1EBED9550413D686C4B672E5541679FD29FFF955041141B4818712E55412E48BC4F02965041AC235526732E554153315F43069650410CD54BE4772E55414D5CA08910965041B5588889842E5541F6DFDC2E1D965041762CB37F912E5541F8501AA920965041614D02A9942E55417616F5A033965041E758D9D4A02E5541C82E37BC3496504116F9B576A12E55415FC606503396504174396FBAA22E55413C4EA1D63296504174396FBAA22E55410D0000001034D815F4955041F17C4367CA2E554145A97371EA955041EB298BF8BF2E55411AEB11C4F095504169002FC1BA2E5541040C61EDF39550412481A148BD2E55414AFC2BE0F4955041BB1871DCBB2E554112A51590F7955041AFF0F9B3BB2E5541C1FD10EFF9955041C740E804BC2E5541378EB883FB955041BB1871DCBB2E55412DD77ED5FE955041EAB84D7EBC2E55415A061EFDFB955041EB298BF8BF2E55414D6D695AF8955041E172514AC32E5541D94DFF3FFA955041A81B3BFAC52E55411034D815F4955041F17C4367CA2E55410A000000A4D863E4039650417699E363BE2E55413B7033780296504101093CCFBC2E55415EE898F10296504197A00B63BB2E55415EE898F1029650412E38DBF6B92E5541C750C95D04965041AD7FBC39B82E554131B9F9C905965041A1574511B82E55414A7A259509965041DC1F99DBB82E55413E52AE6C09965041DD90D655BC2E55416059D66B069650415E49F512BE2E5541A4D863E4039650417699E363BE2E55410C0000006D855A2ADD9550418F5A0F2FC22E5541773C94D8D9955041A539C005BF2E5541AE226DAED3955041DC1F99DBB82E5541003BAFC9D49550415B677A1EB72E554169A3DF35D69550412CC79D7CB62E5541EA5BFEF2D7955041DAAE5B61B52E5541C954D6F3DA955041651EB4CCB32E55416D855A2ADD955041651EB4CCB32E5541BD2C5FCBDA955041DAAE5B61B52E5541031D2ABEDB955041209F2654B62E55412A770A2CE395504153217EEABD2E55416D855A2ADD9550418F5A0F2FC22E55410600000031CECF30C49550411102651BDC2E5541764D5DA9C1955041CB119A28DB2E5541B286EEEDC59550415DC7EEC7D22E554156B77224C895504117D723D5D12E554156B77224C8955041B0DF30E3D32E554131CECF30C49550411102651BDC2E554109000000D2E7721B37965041FB869E76A12E55418810B8D735965041561BC1D4A02E55413E39FD9334965041DEF9F4E19F2E5541FF3184CA369650411D016EAB9D2E554149093F0E3896504112312C319A2E55416596E8A239965041903F1EC4952E5541278F6FD93B9650410761EAB6962E5541DDB7B4953A965041D429B3679C2E5541D2E7721B37965041FB869E76A12E55410A0000002CAEA037AE955041AFBC1435362F5541FF7E0110B1955041D90939682C2F5541E99F5039B49550417BC97F242B2F55418DD0D46FB695504187F1F64C2B2F55411AB16A55B8955041FC819EE12C2F55416A586FF6B59550414654E4C8342F554199F84B98B6955041AFBC1435362F554181A85D47B69550413C9DAA1A382F55415197432BB2955041A505DB86392F55412CAEA037AE955041AFBC1435362F55410E000000877D1C01AC9550413D1FB165232F5541E34C98CAA9955041DFDEF721222F55419D5CCDD7A89550413BAE73EB1F2F5541CCFCA979A9955041D145437F1E2F5541FB9C861BAA955041508D24C21C2F554159DD3F5FAB955041F34C6B7E1B2F5541DA955E1CAD955041AC5CA08B1A2F5541C4B6AD45B0955041666CD598192F554197870E1EB3955041082C1C55182F5541520881A5B5955041C23B5162172F5541BC70B111B7955041D98B3FB3172F5541F63805DCB795504137CCF8F6182F5541DFE8168BB7955041CFD405051B2F5541877D1C01AC9550413D1FB165232F55417D000000803F3AF95F955041A0B222182F2F5541E8362DEB5D955041B691D3EE2B2F5541B99650495D955041B4209674282F55418AF673A75C955041609716DF232F554138DE318C5B9550414565AD991C2F5541E6C5EF705A955041EF6AF089142F55418985362D59955041EC8875950D2F5541ACFD9BA65995504125E08BE50A2F5541529F5D575F955041D1560C50062F554156700F7B7E95504143873F3BEC2E5541B89243B386955041074EAEF6E72E5541D5176567989550410F05E8A4E42E554154DD3F5FAB955041D2CB5660E02E5541D877D910B4955041E8AA0737DD2E5541F0C7C761B4955041B90A2B95DC2E55414A2606B1AE9550411F91E00CD72E5541CDD168339F955041BA8C31E0C72E554133581EAB99955041C4436B8EC42E5541C60D734A9195504145FC894BC62E5541BAE5FB2191955041B81BF465C42E55416087BDD2969550414EB3C3F9C22E55410247048F95955041AE823FC3C02E5541BB56399C94955041C461F099BD2E55410D6F7BB795955041D940A170BA2E5541EAF6153E95955041C07F75A5B62E554152EE083093955041E015602AB02E554100D6C61492955041D27CAB87AC2E554198DED32294955041BB2CBD36AC2E5541F61E8D66959550418F6E5B89B22E554183FF224C97955041FB47C96FB72E55419A4F119D9795504137815AB4BB2E55415F87BDD296955041E7D95513BE2E55416BAF34FB969550418B0ADA49C02E554132581EAB999550413B63D5A8C22E5541C1A9F10A9F955041F6E34730C52E55419F20C3C0B69550418E6A4EF3DB2E55411B75603EC6955041FD2537CEE72E5541E870025DD39550419A10BFD0F02E5541113C2045DE955041632AE6FAF62E554151572C7EE9955041DA2BCB09FC2E5541168FD8B3E8955041201C96FCFC2E5541A9442D53E09550411383E159F92E5541D4028F00DA95504128629230F62E55417E08D2F0D1955041D4D8129BF12E55410696AF67C99550412E3751EAEB2E5541B09BF257C19550417D6D1811E62E55414F79BE1FB995504191DB8B6DDF2E5541C298283AB79550414AEBC07ADE2E55411E68A403B5955041561338A3DE2E554162E7317CB295504191DB8B6DDF2E55414FFBC46AA4955041D93C94DAE32E55411997F2DF95955041B7356CDBE62E55411CFB731F8895504173B6DE62E92E5541607A019885955041B9A6A955EA2E5541F711D12B84955041220FDAC1EB2E5541EBE9590384955041C63F5EF8ED2E55414B9B50C1889550418D66415D052F5541CB536F7E8A95504183AF07AF082F5541299428C28B955041D5C749CA092F55416E13B63A89955041A6276D28092F5541ED5A977D879550418D66415D052F55419B4255628695504195AC3D91FE2E5541F711D12B84955041A7A97373F42E55418DA9A0BF82955041C63F5EF8ED2E5541A4F98E1083955041F36EFD1FEB2E554168C0FDCB7E955041BA17E7CFED2E5541B4AFFF5C72955041AC0413D3F82E554109D6DFB57495504163A797D4F92E55413130AF7F76955041E80BCA81FB2E554185568FD878955041FCB8B166FC2E5541F29B98DB7A95504115D8DA10FC2E554101D73EFB7C955041C1B1FAB7F92E5541BCEB04C27C955041B1765498F72E55413787D2147B955041E726E8B1F52E55417700CB887C95504149A38C5AF42E55414250376F7E9550412149BD90F22E55416538C57381955041110E1771F02E5541A6B1BDE7829550417E532074F22E5541082E62908195504135F6A475F32E5541853B71A87E9550416250743FF52E5541FB64FD357E955041728B1A5FF72E554180C92FE37F955041FC618ED1F72E5541D5EF0F3C82955041596CF1B4F72E554177E5AC5882955041DFD02362F92E55410F12E51A7F95504124BC5D9BF92E5541CE98ECA67D9550416435560FFB2E55418E1FF4327C955041D17A5F12FD2E5541254C2CF578955041526D50FAFF2E5541BD7864B77595504135DCE58A012F554128D98BEA719550419EAFADC8042F55418EC771586F955041CA7BBE57052F5541F5B557C66C9550410F67F890052F55413E13D3C46B95504171E39C39042F5541F927998B6B9550413EC06815FF2E5541B9E908B867955041C5BD57AD022F5541B39650495D9550410368266C0A2F554109910D59659550410F909D940A2F55414FFFD1007B9550415F37A235082F55416A313B46829550415F37A235082F55411EC18A8A909550417E7566EE0A2F5541EC323DEBAA955041CAB7C3BC0F2F55411522F339CC955041B37D7CE2152F55411FECB6D9D795504182CDE8C8172F554121D198A9DD9550413DE2AE8F172F554154F4CCCDE29550411588DFC5152F5541D0747CF0E69550417B76C533132F554156D9AE9DE89550413BFDCCBF112F554190FB837CE5955041D09CA58C152F55417EDBFB8CDD95504138706DCA182F55417884D8F7D8955041C246E13C192F55413526FEB3D19550410CA45C3B182F5541C4163111C49550418BB16B53152F554130C7538FA695504113A3FDF50F2F55415955A12E8C9550418A7566EE0A2F5541F30E39E681955041621B9724092F5541138426E07D955041BD25FA07092F5541BF05C4AC6E9550415BA9555F0A2F5541D27547E75C955041CC60A0270B2F5541D6E788AC5B955041AFCF35B80C2F55414C11153A5B955041923ECB480E2F554170F9A23E5E9550413771CC0F212F5541269C27405F9550418D7C8E38292F55414EF6F60961955041C51104222D2F55411062E06565955041F8343846322F5541803F3AF95F955041A0B222182F2F554107000000565D28BEB2955041F22CB1B60B2F554173EE922DB195504199948F980A2F5541879B7A12B2955041446EAF3F082F5541EF6E4250B59550411C14E075062F5541DEA63C3BBA95504196AFADC8042F554106010C05BC955041A1781223082F5541565D28BEB2955041F22CB1B60B2F5541050000009449C13CBB955041324E2750002F55413BB19F1EBA9550412CF703BBFB2E5541BA163111C4955041080F76B6F82E5541B5A4EF4BC59550415451D384FD2E55419449C13CBB955041324E2750002F55410E000000D52C74E694955041D8EAE24CEB2E5541216FD1B499955041BFCBB9A2EB2E55415804479E9D955041F0090CF7EA2E5541EDA31F6BA19550411DD61C86EB2E5541EDA31F6BA1955041A23A4F33ED2E5541A8B8E531A19550416D8ABB19EF2E5541B19C68BC9E9550410B0E1771F02E55418EB4DAB79B955041C622DD37F02E5541F4A2C02599955041F2EEEDC6F02E5541E0F5D840989550414B870FE5F12E55415B91A69396955041BD3E5AADF22E55416475291E949550416E6F9DE9F42E55417C9452C8939550419956CCA8EF2E5541D52C74E694955041D8EAE24CEB2E55413000000084704A586A95504177C62BD6402E5541DECE88A7649550416358B879472E5541098DEA545E9550415D83F9BF512E5541071CADDA5A955041ED450A9A5A2E55411F6C9B2B5B955041A08080ED632E5541A9DBF39659955041E8E1885A682E554111D3E68857955041983A84B96A2E5541A86AB61C56955041E20CCAA0722E5541C971DE1B53955041A16FB71C7C2E5541AE3F75D64B955041E3FB00D08A2E55415B2733BB4A9550412B5D093D8F2E55411155EDD3429550410E385C32992E5541F6B1461438955041C4C58AF4AC2E5541CDE6282C2D955041428B65ECBF2E55414ABDCCF427955041767EFAFCCA2E5541494C8F7A2495504105D0CD5CD02E55412E1A26351D955041D9116CAFD62E554144F9D60B1A95504138C3626DDB2E5541C91577080E955041FD780858EF2E5541A2BB969A0695504111D6B2E3002F5541F3629B3B049550417DAF20CA052F554149DF5E96F794504137AE8C061D2F5541D44EB701F6945041090EB0641C2F55419522E2F702955041081F7935042F5541C633FC13079550416AC3B3B8F72E554119BD7BA90B955041B6883D65EE2E55418F4D233E0D955041B6883D65EE2E5541B5A703AC14955041F5B4126FE12E55412B38AB40169550414F1351BEDB2E554150214E341A95504140095FA1D42E5541EA9A98BC1F955041E15768E3CF2E55414477D0C02E955041F4B81F05B82E5541C52FEF7D30955041E890A8DCB72E55416C42EEA8399550410EFC511BA72E55411AC62A4E4695504161255D07902E5541E3DF51784C955041C53AD504872E5541723125D85195504162A763527B2E5541502AFDD854955041C6BCDB4F722E55410DAB6F605795504129F0D858622E5541266C9B2B5B95504150CCBF11552E55413023D5D957955041F38B06CE532E55415FC3B17B58955041086BB7A4502E5541512AFDD8549550417062AA964E2E5541823B17F558955041973E914F412E554107D6B0A6619550418E8757A1442E554164166AEA629550414908CA28472E554151A8F68D69955041F30D0D193F2E554184704A586A95504177C62BD6402E55410500000007112645C69450414F5F8F2D282E5541B5F8E329C5945041AB2E0BF7252E554166C21C03CB9450413C73221C1A2E554176CC0E20D294504186456803222E554107112645C69450414F5F8F2D282E554106000000491F7643C0945041C7E27A87182E55417F94119FB69450415C090DA1132E5541A8E135D2AC945041644F09D50C2E55412B0B9209B29450418274B6DF022E55419DA8F5D8C494504114A804340F2E5541491F7643C0945041C7E27A87182E5541
+</a>
+
+<b>
+0106000000010000000103000000030000003400000070007D40E695504146EA0866152F5541AA73A00BE6955041E901315B152F55414709589AE395504144F94D55162F55417D37808BE29550414A6037C0162F554183DBFB8CDD9550413B706DCA182F5541821DE336DD95504135C1D3D2182F55414ADEE5FED995504173DC0397192F5541E5A5914DD39550416A8A1274182F55413626FEB3D195504110A45C3B182F554191001426D095504144768FE6172F55415EA54808B59550418597E8E9122F554197E274B78295504116EB2578092F5541C99AB85D7C95504116EB2578092F55411EF4374572955041E26393480A2F55416EAF191A5D955041CCD95F6C0B2F554147530ED85C9550413A5E003B0B2F5541DBE788AC5B955041B0CF35B80C2F55414A11153A5B9550418D3ECB480E2F554174F9A23E5E9550413271CC0F212F5541269C27405F955041907C8E38292F55414CF6F60961955041C81104222D2F55410B62E06565955041FB343846322F5541813F3AF95F9550419DB222182F2F5541E5362DEB5D955041B891D3EE2B2F5541BC9650495D955041B3209674282F554187F673A75C9550415C9716DF232F554134DE318C5B9550414965AD991C2F5541EBC5EF705A955041EC6AF089142F55418E85362D59955041EE8875950D2F5541ADFD9BA65995504128E08BE50A2F5541D7760DF95A955041FD5AE9D4092F5541D6C37D544C955041BEC896E2FE2E55416DE75D5A4C955041C1120470FE2E5541D3D36E454895504197EB2546F62E5541F373810347955041850B75B1F62E55414E7408A9439550411D4B8CE2FA2E5541E8B4B4CA3D95504153AA6BD9022F55414A95EC043A95504185E9FB640A2F55411035781D3C9550410469B16C0F2F55418EB42D25419550416928054B152F55412DD4F5EA44955041F9876BE7192F554172F3360B4C95504145875D9C202F554175D252AF5595504169068CFE282F5541B311E33A5D955041E78541062E2F55412D9003526C9550410425BFD3362F5541DE4E49E578955041DCA4FB80382F5541F8EC31C28B9550417BC4C3463C2F55419A85AA46D4955041040346874A2F5541408523A1D79550412C8309DA482F5541F8644D90DA9550419F43F2A8442F554103241AC9E3955041E0C709BE1A2F554170007D40E695504146EA0866152F55410A0000002BAEA037AE955041B0BC1435362F5541FB7E0110B1955041D70939682C2F5541EB9F5039B495504179C97F242B2F554192D0D46FB695504184F1F64C2B2F554119B16A55B895504101829EE12C2F554168586FF6B59550414854E4C8342F55419CF84B98B6955041B0BC1435362F55417DA85D47B6955041389DAA1A382F55414F97432BB2955041A005DB86392F55412BAEA037AE955041B0BC1435362F55410E000000847D1C01AC9550413D1FB165232F5541DE4C98CAA9955041DFDEF721222F55419F5CCDD7A895504138AE73EB1F2F5541C9FCA979A9955041D045437F1E2F5541FD9C861BAA955041538D24C21C2F55415BDD3F5FAB955041F54C6B7E1B2F5541D8955E1CAD955041AC5CA08B1A2F5541C7B6AD45B0955041636CD598192F554198870E1EB3955041062C1C55182F5541530881A5B5955041C73B5162172F5541BB70B111B7955041DC8B3FB3172F5541FA3805DCB79550413ACCF8F6182F5541DAE8168BB7955041CBD405051B2F5541847D1C01AC9550413D1FB165232F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979690 - 403368
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -33 </desc>
+<a>
+01060000000100000001030000001E000000A002000040E3E97C6C975041AC419793082F55412BA2AB836D975041B61686F6012F5541E1178CCF6D97504169AEBA5AD12E55417790392E6C975041AD8A32CBC12E5541E2D65D9F649750417D69D369A32E5541AE4066BB5F975041DD9DE1A08D2E5541B70843A85D9750415F22672F912E55415EAD3BEA589750415F7DCA08892E55419B66739453975041633C9CD87F2E55410B1A111952975041F2A233FD6F2E5541C08FF16452975041FB6A10EA6D2E55415F11AAE0579750416BBA3F786D2E55414778E5E95497504144ABF6505D2E554130DF20F35197504144ABF6505D2E5541CEBB3C484F9750418EEBDCB74C2E5541509B25B04A975041225B7FF9432E55411DAACAF24D975041B76FBE61432E55416834EAA64D9750415E14B7A33E2E55410A7574F249975041CB63E6313E2E5541622BDF8946975041B280E8ED2A2E5541F8D60A8DFB9650419894DF8C102E554170497AE1F0965041A15CBC790E2E55419469ED94E89650417B97AC9F0E2E5541535D7180D696504193307196112E5541DA268BED9E9650412786DE2E1A2E554105312FA663965041B477DDD0232E5541C1E3846148965041ABE723F7272E55410EE33C982E96504174925A432C2E55411661E0371C965041D6B53EEE2E2E554152757BBB0E965041DF7D1BDB2C2E55415FFC29780396504182BEA526292E5541AEEAB7220296504194F3FB262D2E5541BCBB9F2C07965041CDED6101312E55417BF95C6505965041E48626F8332E554184C1395203965041F2570E02392E5541805DCB5B04965041A9728B74412E55413F4025BB0A96504147F443F0462E5541AB24B9CF1C96504180AD8D6C542E5541112C60EB1396504180AD8D6C542E554168A516EC1B965041AB7C82D55B2E554113072D1A0D9650418F163BFD6F2E5541049E7F89F1955041CB4EEDAF5F2E55418A77917FEC9550417B1C27E0682E5541793317C0D7955041AB7C82D55B2E5541C8AF53EBA8955041903B7E87432E5541EE122552989550411D5C80AE4F2E5541E23ACE949B9550411B81B37F562E5541B2DA729FA89550412EA0FA6D642E5541E5CB2468BA955041636C79656F2E5541793317C0D795504105878FA9822E55416D5BC002DB955041B454C9D98B2E5541F25905CADC9550414E4D22BE942E55414F895528D7955041A3C6D8BE9C2E5541152C70A4E0955041043D194EA82E554143B1FE6ADA955041678E260CAD2E554124BA60BFCF95504149978860A22E5541870B6E7DD4955041556FDF1D9F2E55419FBB1BF8CD95504112F03C3A9E2E5541119B19D1C19550410618E67CA12E5541BA2163D0B99550411CEDC6C8A12E554100579F11AD955041CE95CD27A42E55416F80038DAE955041FC1A5CEE9D2E554118074D8CA6955041771C17279C2E5541099E9FFB8A955041C74EDDF6922E554132B70AC06C95504172B0F324842E55411CE229746C9550413DE4742D792E5541FC0FBF99689550419813C58B732E55411EBDF6A265955041FD1A6CA76A2E5541AF93922764955041AA574F04552E554197E3E4AC6A955041083D39C0412E5541AA022C9B78955041504D42302E2E5541E7F067F28D95504142BF61CE0B2E5541810E04616A9550413C78719DFA2D5541C568737364955041F81D028B002E5541234E5D2F519550414850C85AF72D5541CCD4A62E499550413356B43DF02D5541EF81DE37469550414850C85AF72D5541A4E07EF43A9550414850C85AF72D5541BF46C6CC269550411BA606C3F62D55414620D8C221955041ABA1D518FC2D5541D0AF83160F955041021B8C19042E55419DBED14DFD945041A5106F8C102E5541C146D685F3945041333171B31C2E5541B9241926E9945041B82FB67A1E2E55414AFBB4AAE79450411B81C338232E5541FAC8EEDAF0945041D8012155222E5541C146D685F3945041B654E94B252E554168F25256F294504192CCE4132F2E554137B72A3206955041A7C6F830362E5541F25CBB1F0C955041EDFB3472292E55411B51E3591A95504192CCE4132F2E5541DF1831A72A955041389D94B5342E5541D08A408C3B9550412AEA70C93E2E5541A4E07EF43A9550416191BCEF422E5541DE3D647831955041833EF4F83F2E5541189B49FC27955041CA29BADE582E55411A76162B2195504194826EB8542E5541AE024C0D12955041B70A73F04A2E55414D8C0B7E06955041AFE8B590402E554167178627F994504116F05CAC372E5541E7A9A7ECE2945041EDFB3472292E55419852AE4BE59450411B81C338232E5541CDD4C6A0E2945041DBDCED831B2E55415689A5C5D69450411F375D96152E5541840E348CD094504157B975EB122E55417A11AAFDCC945041C09BE935032E554115E5CF10CF9450415E25A9A6F72D55414C8C1B37D394504197A7C1FBF42D5541A074713FCD94504110DE9846F42D5541C5475EE3B3945041FA86B11EE82D55415AF3EDA2A5945041FCC87CB6F02D5541C66C7C378294504163E322C1DB2D5541CE89FD7D7F94504165426F9FE12D55418EA190F5809450412FD6CF3BE62D554169CEA3519A9450416242D3F3F52D55418F5F8D06A1945041763A6E3DFC2D554121C9B5829E945041122064DEFC2D554182C676F27794504181578B2FE52D55413DC124CF679450418815C097DC2D55415877F48065945041197FE813DA2D5541D9A61A7068945041984FC224D72D55416810A7407A945041D3D84623E42D554197BE113C7E945041369404A4DD2D5541A95760A77E9450413435B8C5D72D55416810A7407A945041E871313AD02D5541AEB64831709450414B2DEFBAC92D5541D18999296B9450411C7F84BFC52D55410855856B6C945041FF69682FC22D5541C04F979C7094504136355471C32D5541C2AEE37A76945041A5CB2BF5C52D5541702D288777945041DA37CB58C12D55413F2071AD6D945041223DB927BD2D554141200D59599450414F8CD744BB2D5541EA816CCA48945041A10D9338BA2D55419F1D321D47945041785F283DB62D55416035C59448945041076A04DBAD2D55413B0328BE479450417A5FC4E8A12D5541A6DB66853E945041724243A2A42D554102D9EF9D40945041A1F0AD9DA82D55411FEE0B2E449450413E35F01CAF2D5541706FC7214394504113451EDEB62D554175CEAFAB34945041EAB3987DC42D5541C5F01EC12D945041BB052E82C02D55414D3D62A219945041CB9EE041D52D5541E30573A8089450410F45E686DF2D5541559CE6D7F69350413F529D60E92D5541C891A6E5EA935041B047C1C2F12D55419525A32DDB935041203DE524FA2D5541F8E060AED49350419591F110F42D554141459B5BD69350414B2DB763F22D554139281A15D993504137351C1AEC2D554193C6564FD59350418F740C76E22D5541C932F6B2D0935041544A38AAEF2D55418EA971B4C3935041EC71958EE42D554127301B77BE9350413C9404A4DD2D5541635AEF42B1935041D4BB6188D22D55417DB17216A9935041FD4CE7E8C42D55418EEB74A3A3935041D91A4A12C42D5541D232CAB593935041B1E81090D72D5541C29917F67E9350414FCEA2DCC32D5541C29917F67E9350410E87E975BF2D5541D9914EEB70935041F6D0B56FAD2D5541A684FB657B93504178A12B2C962D554120F6ECEC869350411EA43EBF7F2D554120F6ECEC8693504166A92C8E7B2D55415103A4C690935041B92AE8817A2D5541B77CFA0396935041043072FC612D55410B5D02D69A935041E979A24A642D5541D84FAF50A5935041D1C36E44522D5541506254F9AA9350417367994D4A2D554152C1A0D7B09350413EFBF9E94E2D55419108BE92C9935041B7AEEE5F3A2D5541065DCA7EC3935041B54FA281342D5541350B357AC7935041EBBB41E52F2D5541091B633BCF935041CEA625552C2D554155DEE9C6D6935041A7153CA0252D554191C6BAA3E99350418B5FD0423C2D5541DBCB441ED19350412A035FA0482D55413B8766F3DE93504184004C0D5F2D5541BE15D9C0E7935041F037D7B25B2D55419B4288C8EC935041AFF01D4C572D554114552D71F29350414AD613ED572D5541533D9AF9F0935041BBCB374F602D5541B9B6F036F69350415ECEAE365E2D55418C67D219F8935041EA79A24A642D5541F99E5DBFF4935041B66C4FC56E2D554112F6E092EC93504170C6ADD4782D554145033418E2935041D89E50F0832D554129EE1788DE935041B5CBFFF7882D5541589C8283E2935041D2E01B888C2D554135C9318BE7935041EA964F8E9E2D55417DCE1F5AE393504106AC6B1EA22D5541B4990B9CE49350412D3D55D3A82D5541A35F090FEA93504123C187AEA52D55419B4288C8EC935041526FF2A9A92D5541533D9AF9F09350418DF876A8B62D5541F3E02857FD93504166678DF3AF2D5541756F9B2406945041AE6C7BC2AB2D55416FB166BC0E9450416D25C25BA72D5541B2576C01199450410FC9EC649F2D55418F841B091E945041D13FCCBAA62D5541A21D6A741E945041C564B2B79D2D5541C64F074B1F9450416F255E07932D55419900E92D21945041887CE1DA8A2D554191E367E723945041ADAE7EB18B2D554187679AC220945041FAD0511B992D554175CE4B57209450412D3D55D3A82D5541A21D6A741E94504166678DF3AF2D55418F841B091E9450419F91C513B72D55415A187CA522945041E796B3E2B22D55415C77C88328945041A54FFA7BAE2D5541DE053B5131945041F6716991A72D5541742DFC893A9450413D775760A32D554192A164F84394504133FB893BA02D554167B192B94B94504173E3F6C39E2D55419E7C7EFB4C945041A84F96279A2D5541E6816CCA48945041D59EB444982D5541483D2A4B429450419ED3C802972D55415FBE0A903A945041BE13960B912D554141FA1C2C2A9450417897CD8B822D5541DB47A29425945041B5CBFFF7882D55410897C0B123945041E21A1E15872D554187679AC220945041861D95FC842D55410897C0B1239450418E3A1643822D5541E47F77E527945041B6C611947F2D55418170CD181894504160F515FA6A2D55410EF6A83B1594504149D677416C2D55414AA9769E0D9450415500C414612D55413C7C9F55E9935041CE4C743E2E2D5541CCB8E5B0A99350419AAC197BE52C55416DFB3E1097935041F33F801AC72C55416020250D8E93504124EE86C1B62C5541657F0D977F935041AEDB7DC49C2C5541998C601C75935041854AF863AA2C554132130ADF6F9350412D0B0808B42C55414DC9D9906D93504180EB0FDAB82C55410EE16C086F93504114B48434BC2C5541687FA9426B935041A9DB456DC52C55415E03DC1D68935041E464CA6BD22C55416E3DDEAA6293504152FBA1EFD42C55412DF624445E935041D58914BDDD2C5541FE47BA485A935041D947AD79E92C5541C71D8228539350419E7C258CFC2C554160A42BEB4D93504198BEF023052D554154C911E8449350411230E2AA102D554101E90916409350419F3A229D1C2D5541E6323A6442935041CEE88C98202D5541779C62E03F9350411AAC1324282D5541B784CF683E9350419C3A86F1302D5541650314753F9350418C008464362D55412E3828333E93504117AC77783C2D5541024856F445935041C52ABC843D2D55419E2D4C9546935041FCF5A7C63E2D55415F45DF0C48935041E39E24F3462D55418DF349084C935041CCA6EDFD542D554133550DCE4F9350418F1DCD535C2D55413DD1DAF2529350419D5733356B2D5541241B0B4155935041CFC336ED7A2D5541B884CF683E935041810014B6872D5541AE0802443B935041A891FD6A8E2D5541A48C341F389350414DF3C030922D55418777188F3493504176E3F6C39E2D5541B4C636AC3293504182BE10C7A72D5541EBF0D2204E935041ADAEE205A02D5541C81D82285393504111289D97B92D5541E4329EB8569350418B998E1EC52D554178FB12135A935041C4C3C63ECC2D5541713DDEAA629350417E1D254ED62D55414E6A8DB267935041A5AE0E03DD2D554125D9075275935041C581C34FEC2D55414E288AC3879350411D2064DEFC2D554166DEBDC999935041476FE64F0F2E5541C2DB46E29B935041AC89F0AE0E2E554160208961A2935041875753D80D2E5541D8322E0AA89350413DF3182B0C2E554124F6B495AF935041AA2AA4D0082E554182528A8CB7935041F22F929F042E554159C1042CC5935041A66C0B14FD2D5541DB4F77F9CD9350412D5A666BF72D55419C670A71CF935041253DE524FA2D55416DB99F75CB9350410A871573FC2D55411F97CC0BBE935041DF964334042E55415D20EDB5B693504185F806FA072E554163DE211EAE935041D9D80ECC0C2E554120381CD9A39350416CA18326102E5541DD911694999350413F526509122E5541486A555B909350413F526509122E5541B3429422879350417F3AD291102E55419CEBACFA7A9350413DF3182B0C2E5541BD5FB114709350410E45AE2F082E55413972F268619350411F7FB0BC022E55411AFE89FA5793504154EB4F20FE2D55417DB9477B519350419CF03DEFF92D554183777CE348935041755F543AF32D554183777CE348935041C38127A4002E5541F0AE078945935041088779C7102E5541CF3A036F5093504151EBB374122E554193102FA35D935041648402E0122E5541A14A95846C935041AEE83C8D142E55415387724D799350416E00D004162E554169DE597585935041CAFD581D182E55411ABCEA5F8C935041777C9D29192E55415B03A4C690935041219CF9AB282E5541CA997B4A9393504112C143FD332E5541269704639593504149EBDF714F2E554153E6228093935041A747B568572E554113FEB5F7949350417AF8964B592E55419FA9A90B9B9350415F42C7995B2E5541E14FAF50A5935041458CF7E75D2E554186B17216A9935041B422CF6B602E5541D015ADC3AA9350415A849231642E5541DCF0C6C6B393504187D3B04E622E5541151BFFE6BA93504122B9A6EF622E55417B945524C0935041996CFFB9622E554161DE8572C2935041B6811B4A662E5541F4A6FACCC5935041AD649A03692E5541235565C8C9935041A3E8CCDE652E55411C973060D2935041EBEDBAAD612E554166FB6A0DD49350413B102AC35A2E554195A9D508D89350412877DB575A2E554143281A15D993504155C6F974582E55419F25A32DDB9350415C842EDD4F2E554172D68410DD935041488C9393492E554133EE1788DE935041CBBB552E382E55419E25A32DDB935041DF544045242E55414A459B5BD6935041BBC3F23B092E5541C615D9C0E79350411C2064DEFC2D5541F981DC78F79350412BFB198DF12D5541EF64BF860E945041CB3FF8B7E32D55419F4250711594504101AC971BDF2D5541C6D339261C9450413618377FDA2D5541B5993799219450416B84D6E2D52D5541B7F883772794504117A4CE10D12D5541828CE4132C945041C4C3C63ECC2D554196847F5D32945041AFCB2BF5C52D55414C7FF5E24A945041DA1AAE66D82D55414162D8F061945041DF379301EA2D55412C6A3DA75B945041BD644209EF2D5541CE0D68B053945041A40DBF35F72D5541F281087634945041590835BB0F2E55411A5591C506945041369494F52E2E5541EBA626CA02945041C13F8809352E55417D104F46009450410C030F953C2E5541D7AE8B80FC9350412B777703462E55416FD6E864F1935041F8C8705C562E5541095D9227EC93504185D3B04E622E5541FFE0C402E99350418991490B6E2E5541904AED7EE6935041F169EC26792E55412055C91CDE935041C7D866C6862E5541603D36A5DC935041F686D1C18A2E5541BADB72DFD8935041E4ED82568A2E55414B459B5BD69350416D3A2A8C8A2E5541D5914291D6935041139CED518E2E55415EDEE9C6D693504194CB1341912E5541BADB72DFD893504115FB3930942E5541D6F08E6FDC935041CDF54B61982E5541BC3ABFBDDE935041EA0A68F19B2E55412AD19641E1935041D9D06564A12E5541101BC78FE3935041AEE09325A92E55417435D1EEE29350412F10BA14AC2E5541BE990B9CE49350419DA69198AE2E5541354D6466E49350410320E8D5B32E5541516280F6E79350414D842283B52E55414945FFAFEA9350414FE36E61BB2E55410A5D9227EC935041BE7946E5BD2E554153C1CCD4ED935041115A4EB7C22E5541F7C343BCEB9350419C0542CBC82E5541ED477697E8935041F0E5499DCD2E5541C815D9C0E79350417115708CD02E5541241362D9E99350417115708CD02E554178F369ABEE935041F902CBE3CA2E554167B9671EF4935041653A5689C72E5541F0050F54F4935041AD3F4458C32E55418CEB04F5F49350413C4A20F6BA2E55417BB10268FA935041F9A31AB1B02E5541E8A626CA02945041B69EC88DA02E554173521ADE08945041BD5CFDF5972E5541507FC9E50D9450418432C5D5902E5541818C80BF17945041920D7B84852E554127EE43851B945041C71ACE097B2E55415EB92FC71C945041A64719BD6B2E5541C43286042294504190F031955F2E5541A15F350C27945041783AFE8E4D2E55419BA100A42F945041A32AD0CD452E55410B972406389450416A0098AD3E2E554180A9C9AE3D9450419F0DEB32342E55416C6F2B765794504194D320FD102E5541D6A61A7068945041FBEDC607FC2D5541CE8999296B9450415F08D166FB2D55418FA12CA16C945041A96C0B14FD2D55415418A8A25F945041B1E83C8D142E554114303B1A61945041CDFD581D182E55418D42E0C2669450418E15EC94192E5541A03A7B0C6D94504121DE60EF1C2E55413620395696945041B047EDBF2E2E55417525EFCDBA9450418E3235843F2E554103EE2BD1E6945041CB1A0661522E554157CE33A3EB945041857464705C2E554176429C11F5945041C55CD1F85A2E55411F62F89304955041D39637DA692E5541D19ED55C119550412BD62736602E5541F82FBF1118955041F2ABEF15592E554127DE290D1C95504173DB15055C2E55415C4AC97017955041ECEDBAAD612E5541A2F06A610D9550412F94C0F26B2E554129DEC5B807955041C25C354D6F2E554198749D3C0A9550415625AAA7722E5541D9BB56A30E955041C4BB812B752E5541817C664718955041DF7151DD722E5541FA8E0BF01D95504193AECA516B2E5541B2891D212295504193AECA516B2E55414552927B25955041B0C3E6E16E2E55414552927B2595504168BEF812732E55418D57804A21955041749912167C2E55414C10C7E31C955041C61ACE097B2E55412FFBAA5319955041D0969B2E7E2E5541E59670A61795504176F85EF4812E554135B9DFBB10955041C1BBE57F892E55416208FED80E95504132B109E2912E5541EC54A50E0F955041F427E937992E5541BDA63A130B9550412535A011A32E55414594956A0595504103624F19A82E5541C72208380E955041C7377B4DB52E55410F28F6060A95504189AE5AA3BC2E55414494956A0595504175B6BF59B62E55416F8467A9FD9450416EF88AF1BE2E5541B52A099AF3945041E9697C78CA2E55419FD32172E7945041ABE05BCED12E554114282E5EE19450419DA6F5ECC22E5541C864A7D2D9945041B49E2CE2B42E5541E1BB2AA6D1945041E64C3389A42E554172255322CF9450414A673DE8A32E5541CDC38F5CCB94504130B16D36A62E554102302FC0C6945041962AC473AB2E55414A351D8FC2945041BDBBAD28B22E5541923A0B5EBE9450413F4A20F6BA2E5541B8CBF412C594504152E36E61BB2E554139FB1A02C8945041372D9FAFBD2E55415E2DB8D8C894504177150C38BC2E5541A074713FCD94504189AE5AA3BC2E5541048F7B9ECC945041BABB117DC62E5541586F8370D1945041663A5689C72E554173255322CF945041D98EC6C9D52E5541D0812819D7945041083D31C5D92E554176E3EBDEDA9450416EB68702DF2E55415E2DB8D8C89450416BB6EB56F32E5541188716E8D2945041D12F4294F82E5541A074713FCD9450417B4F9E16082F55413E77B0CFF3945041CAD0BD5E1B2F5541E4D87395F7945041396795E21D2F5541A64F53EBFE9450415D9932B91E2F5541790035CE009550419305D21C1A2F5541A8AE9FC904955041B479D6360F2F554121C144720A955041163594B7082F554119A4C32B0D955041675703CD012F55417DBECD8A0C955041DBAB0FB9FB2E554112E68EC315955041591D9DEBF22E5541B2891D21229550411C35CC0EE02E5541A14F1B9427955041F6A3E259D92E5541ED12A21F2F9550418ECB3F3ECE2E554138D628AB369550414B253AF9C32E5541036A89473B955041B39E2CE2B42E5541A9CB4C0D3F955041CCF5AFB5AC2E554136D68CFF4A95504187F05D929C2E5541B864FFCC53955041605F74DD952E55419F0D7CF95B955041F069507B8D2E5541C69E65AE62955041386F3E4A892E5541C0E030466B955041C9D866C6862E5541D4D8CB8F71955041386F3E4A892E55413235A1867995504179B6F7B08D2E55417EF827128195504196CB1341912E554109A41B26879550410462EBC4932E554136F33943859550410EDEB8E9962E5541F24C34FE7A9550417199766A902E554167A140EA74955041F069507B8D2E5541265A87837095504181D378F78A2E5541FFC89DCE69955041386F3E4A892E5541197F6D80679550416F3A2A8C8A2E55415967DA086695504154845ADA8C2E5541757CF69869955041D5B380C98F2E554177DB42776F955041A86462AC912E55418157109C72955041B2E02FD1942E5541D537186E7795504121770755972E554121FB9EF97E955041EB0A68F19B2E5541FE274E0184955041BEBB49D49D2E554164A1A43E89955041D154983F9E2E5541E5D0CA2D8C955041B69EC88DA02E55419DCBDC5E90955041A564C600A62E5541707CBE4192955041F944CED2AA2E5541CA1AFB7B8E955041A7C312DFAB2E55413F6F076888955041F944CED2AA2E554107A41B26879550419FA69198AE2E55413E6F0768889550418E6C8F0BB42E55411120E94A8A955041B5FD78C0BA2E5541B781AC108E955041C9F5130AC12E5541AF642BCA90955041306F6A47C62E5541FF869ADF899550418C6CF35FC82E55419FCB780A7C95504129B135DFCE2E5541DFB3E5927A9550417B32F1D2CD2E5541142085F675955041560054FCCC2E5541498C245A71955041F2E5499DCD2E55416442F40B6F9550413C4A844ACF2E5541A52A61946D9550417574BC6AD62E55419BAE936F6A9550412B1082BDD42E55417E9977DF66955041870D0BD6D62E554134353D32659550419289D8FAD92E5541F3ED83CB609550410020B07EDC2E55414751FA6B61955041F8EDD6CCDE2E554110F1858463955041C28D62E5E02E554110F1858463955041756D8CD4E32E55413191984262955041138D549AE72E55419371D07C5E95504108ADA305E82E55410B126AE059955041BC8CCDF4EA2E55419371D07C5E955041658C464FEE2E5541EA7157225B955041F7CB5D80F22E5541AF32C796539550416A6B62F3F72E5541681386764C955041BB6A54A8FE2E5541D5D36E454895504195EB2546F62E5541F6738103479550418A0B75B1F62E55414D7408A9439550411D4B8CE2FA2E5541E6B4B4CA3D9550414EAA6BD9022F55414895EC043A95504189E9FB640A2F55411235781D3C9550410669B16C0F2F55418FB42D25419550416E28054B152F55412DD4F5EA44955041F6876BE7192F554173F3360B4C95504147875D9C202F554178D252AF559550416D068CFE282F5541B411E33A5D955041EA8541062E2F55412B9003526C9550410425BFD3362F5541E34E49E578955041D9A4FB80382F5541F8EC31C28B95504177C4C3463C2F55419885AA46D4955041030346874A2F5541418523A1D79550412F8309DA482F5541F5644D90DA9550419C43F2A8442F554104241AC9E3955041E0C709BE1A2F5541C3E3F44CE69550416E28054B152F55414063AA54EB9550411C2913960E2F55410F04CB5DE3955041C049704C082F554156230C7EEA955041078B2AB9FB2E55410903366DED955041E7EA17FBFC2E554191629C09F2955041BB6A54A8FE2E554119C202A6F6955041078B2AB9FB2E554160E143C6FD9550418A0B75B1F62E55416BC1F45AFD95504102AC0E15F22E5541CB7C22240296504159F27632E62E554111A3D3E102965041B50C50C0E12E5541B9EC684A069650416115B7F8DB2E5541772A26830496504140B41515DB2E5541F04132FE01965041A73B68B6DC2E554169593E79FF95504100976F74E12E5541EB3827E1FA955041C841A6C0E52E5541F40004CEF89550418BE3D1EFE22E5541840C3819F1955041667925EFDA2E5541BC6101CDEC955041996A80ACD72E55410188B28AED95504157A83DE5D52E554130BA3B78F3955041529F32C8CE2E5541E7D4B8EAFB95504128D117D1C72E5541041C25250E965041C96C05F6BB2E55414F4BE1FF1596504100C2CEA9B72E554159B85A131C9650419E9EEAFEB42E55410102F07B1F96504175756C2EB62E5541B677D0C71F9650416749214BB92E5541C8078AA11B965041EE3115D0BB2E55417410F1D915965041262C7BAABF2E5541D68E385E10965041149CC1D0C32E554178CFC2A90C9650414C9627ABC72E55415CD28FBC0A9650413E6ADCC7CA2E5541041C25250E96504119A5CCEDCA2E5541823C3CBD12965041010C08F7C72E554187A0AAB3119650415FCB7DABCB2E5541663F09D01096504107151314CF2E5541ED27FD5413965041C552D04CCD2E5541F794766819965041BCE55639C72E55411DFF226921965041B278DD25C12E554114DCE2A22B965041751A0955BE2E554106B097BF2E96504183465438BB2E5541DD8619EF2F965041BA9B1DECB62E5541CFFF6A323B96504166FFE7FDA82E55411EEEF8DC39965041243DA536A72E554193A1966138965041F6AFB86FA92E55413A468FA333965041BE5AEFBBAD2E55419BC4D6272E9650419995DFE1AD2E5541CEB531E52A96504182FC1AEBAA2E5541271139A32F96504129A1132DA62E5541101D11D33496504161F6DCE0A12E5541CFFF6A323B96504199F042BBA52E554198AAA17E3F965041D54E178CA82E55410E03DC2946965041BDF680C5AE2E554195EBCFAE489650412D46B053AE2E5541912CFEDE5196504169FFE7FDA82E55418D6D2C0F5B9650417C8FA1D7A42E554118BA8E8A5C965041772B33E1A52E5541C56792E95E965041A65DBCCEAB2E55415A7CD1515E96504161DCA737B32E55417679043F60965041AB66C7EBB22E5541062AD5B06096504178756C2EB62E55418D12C93563965041D1D073ECBA2E5541278B769461965041E405CAECBE2E55417F41E12B5E9650414FF18A84BF2E55418D6D2C0F5B965041DB3DEDFFC02E554183A54F225D965041D6D97E09C22E5541195F2BB164965041B1146F2FC22E5541A0471F366796504138FD62B4C42E55417B820F5C679650412AD117D1C72E554156BDFF81679650417EC8B098CD2E55419CE3B03F6896504163701AD2D32E5541AAB498496D965041DC2CC373D92E55415BC60A9F6E9650410B5F4C61DF2E5541808B1A796E965041F46A2491E42E5541648EE78B6C9650416E27CD32EA2E55419F884D6670965041130DF4A4EE2E554196C0707972965041FC18CCD4F32E55418DF8938C74965041C5689F47002F5541673384B274965041F9A333520D2F55411845F60776965041F2CA2CD9272F5541220DD3F473965041A92FE398402F55412D391ED87096504112B7353A422F55414991B49E6A965041D6FDFD8F472F55411A5F2BB1649650410A94F5734C2F5541993E141960965041E76A77A34D2F55411615F263549650418FB40C0C512F55417CF7A7DE4D965041D5DABDC9512F55415F55D8CA439650411B016F87522F5541AE9EC94E3A96504186EC2F1F532F55411DEEF8DC39965041C34A04F0552F554134E220AD349650419D85F415562F55415E0B9F7D339650415CC3B14E542F5541CE5ACE0B33965041A74DD102542F5541F27A41BF2A965041EC7382C0542F5541E90DC8AB24965041B9822703582F55415DC1653023965041200A7AA4592F55416125D426229650417401136C5F2F55410002F07B1F9650413848DBC1642F5541BE3FADB41D9650415EB287C26C2F5541BADB3EBE1E9650418880A2B9732F55416689421D21965041B34EBDB07A2F554154F988432596504151D0752C802F55419F28451E2D96504110B3CF8B862F554150DF539A36965041CB31BBF48D2F5541CA9BFC3B3C965041737B505D912F5541192F270D43965041A163A0FD862F55415C8FC2454696504152B81EA5882F5541CDCCCCCC4F9650417B14AE078E2F55415C8FC2F5519650419A9999998B2F55416666667659965041E17A14FE8F2F554185EB5148589650417B14AEB7912F5541A4703D0A6C96504185EB51C89C2F55411F85EBF16B9650410AD7A3F09D2F5541C3F5289C7D965041F6285CDFA72F5541A0A656BD81965041B03EF1F6A52F554194CEFFFF84965041214322A1A02F554160B80AAD9F965041A81C34979B2F554194A9BC75B19650415BA00725972F5541F16963A7CA96504195FDECA88D2F5541EEB3C949D89650414981C036892F55414177E6ECED96504161316EB1822F5541071A0169F796504114B5413F7E2F5541AB0FE4DB0397504185B972E9782F55417BAF88E6109750415AEA7D80712F5541F91C6721279750415CA017DE632F5541023F2481319750416A533BCA592F55412A334CBB3F975041BC60CEC8492F55412A334CBB3F97504100BB3DDB432F55412036C22C3C9750417BBCF813422F5541360BA3783C97504171BF6E853E2F5541145E6B6F3F975041739A3BB4372F55413530D64943975041C3CC01842E2F5541492AEA664A97504113FFC753252F5541AC7BF7244F975041D35AF29E1D2F55410FCD04E353975041C85D68101A2F5541843D598F66975041E00D168B132F554140E3E97C6C975041AC419793082F55410600000092DBD99D88965041E8B21838632F55416274E40486965041B52145C9622F55412FE3109685965041BB7501755E2F55417762861E10975041CF9B144E4F2F5541AAF3598D109750412F6AFF7F542F554192DBD99D88965041E8B21838632F5541B0000000A012F4703E975041A588DB60482F5541195BAE27309750415FD1F418572F5541F8C50FBC22975041B52145C9622F5541A49F9DE114975041DD0AA0E06B2F55411DE85798069750419ED1531A742F55414B883AF6E39650419329DBC27C2F554176FE3E7EC3965041EDA30949862F5541F8C493B6AE96504119E1200C8B2F5541D4051775A396504119E1200C8B2F5541E3D76DA298965041B4BE792E8A2F5541F4D3A2A58B9650411F35DDB7862F55418100169C809650411F23F4F97C2F554193906C62789650413F30E188742F5541BD0730BC77965041921E683C732F554110F6B66F76965041CF472D44762F5541C64F5B9F7396504139FB75A3702F5541C64F5B9F7396504188B491716B2F5541E249883073965041BB7380AE662F55415FAFD23D71965041B109AAE35E2F5541A520C328709650411688875D552F5541193EE25272965041F02384014E2F554164E43D2375965041EBEE181C4A2F55415667A75A759650419B135266432F55411E734D38769650416B45783F342F5541AF8A99F37796504165EE6172242F554108F2E15B92965041545E0BAC2C2F55418A6AEC6688965041408A5E161D2F55419BFA422D809650415E75A0BD082F5541F830F5C37A965041BD9C676AEF2E5541017920A7769650419F5EE409D82E554134380FE471965041F12AC0D5CA2E55417252E901619650410ED2ABAD9E2E5541DD0532615B965041FAFDFE178F2E5541E118F25E53965041EA5EBD67832E5541901B80C140965041CC203A076C2E5541E6FA1B8B2B9650413EFA0262562E5541ABC26B99149650416A62DBD1412E55414500385006965041C02EB79D342E5541C89AED42089650418305F295312E5541C4DA6EFE3B965041960A35FD602E554173303E1A559650416BC40775812E55418B17ABAD5C965041F7C893328B2E5541DBF271636396504127976D599A2E5541916EC17A6C96504147D5F0B9B12E554142B5A5AC7196504123B5432DC22E55417161D4EB7496504169263418C12E5541AE8A99F3779650413B9CB0C0C92E554147EA10927596504194BFA259CC2E554106AE8B8C7A965041FC81D6A2DA2E55415FD17D257D965041CBE4924DEB2E55416406E90A81965041B00C11A4F72E55416406E90A81965041139AD907022F55413FC490968596504122391BB80D2F55410D05A2598A965041EC666C7D1A2F5541CCC81C548F96504186E88E03242F55418B8C974E94965041F2BD824A2A2F554196F66D199C965041239F1C6F312F5541E6D134CFA2965041F0DF2D32362F554172D6C08CAC965041BE203FF53A2F5541CBF9B225AF965041916525CC232F55416DF49660D49650413A64DE1A2D2F5541E211B68AD696504164DBA1742C2F55415851809CE49650418F7410B6372F5541D6D87591EE96504198BC3B99332F5541C73934E1E2965041227D7187252F5541BF13B4E5F2965041BFEFA8231B2F554142AE69D8F4965041ED792C7B122F5541C4481FCBF69650410974590C122F55416D47D81900975041BABA3D3E172F55413CAA94C410975041068344F6252F55415DD92C3B1497504187FB4E011C2F554117683C5015975041584F20C2182F554157A4C15510975041998BA5C7132F554117683C5015975041BECDFD3B0F2F55413897D4C618975041C3026921132F5541608759D533975041272A30CEF92E55417EC5DC354B975041BA32919FE72E55413854EC4A4C9750416B57CAE9E02E5541573F2EF2379750414806878BD12E5541E1FF63E0299750412E2E05E2DD2E5541CE4D6232269750410DFF6C6BDA2E55410C99D221359750410BDDC183CE2E5541967BB3F732975041860DA1ABC82E5541E434CFC52D975041C74926B1C32E5541D6B738FD2D9750410786ABB6BE2E5541F2B1658E2D975041CB5CE6AEBB2E55410FCE3D0739975041C0F20FE4B32E55413E7A6C463C975041438DC5D6B52E5541F0C05078419750410A77C0CCAA2E5541979D5EDF3E975041E9472856A72E5541A0E589C23A9750415830DC9AA52E5541C527E23636975041D160BBC29F2E5541766EC6683B97504186BA5FF29C2E55418A4273FE4A97504173085E44992E5541919989CB5A975041F06DA851972E55417AD4C71F5F9750419EA1CC85A42E5541D2F7B9B8619750412DEAAE12C62E55411456EAA56897504165DE0835C52E55412B501737689750416EF23686082F554175D4C71F5F9750410C87190A0A2F55414506EEF84F9750414068B32E112F5541143814D240975041B172125B1B2F5541088AE73721975041027084F82D2F5541C5090C630E9750410CDA5AC3352F55412D57530BE5965041BB42EADC462F5541D4336172E296504168546329482F554184589ABCDB9650415AD7CC60482F554191B3859DCF965041844E90BA472F5541A443DC63C7965041D53C176E462F5541CF8909ECA6965041F44904FD3D2F5541FD138D439E965041198C5C71392F55412EB1D0988D965041F13644FF452F5541457692448996504120E3723E492F55418BE7822F88965041814E90BA472F55410C608D3A7E965041CCF4EB8A4A2F5541FEE2F6717E965041B52F2ADF4E2F5541B43C9BA17B96504138CADFD1502F5541072B22557A965041D65EC255522F554131A2E5AE79965041B651D5C65A2F55417C48417F7C9650412C919FD8682F554104608D3A7E96504112014912712F5541E01D35C682965041C3472D44762F554183E7822F88965041F2F35B83792F554110EC0EED91965041AD826B987A2F55418E7304E29B965041AD826B987A2F5541CDBE74D1AA965041DF415AD5752F55413DC9D3FDB49650412EFB75A3702F5541632DD759BC965041D5D7830A6E2F55418EC6459BC7965041FF4E47646D2F55416FB9580CD09650413743A1866C2F554120003D3ED596504145C0374F6C2F5541EC1EA319CE965041D5D7830A6E2F554123F15154C1965041207EDFDA702F55413481A81AB9965041E88985B8712F554138946818B1965041A84D00B3762F5541F100CD45A6965041CEB1030F7E2F5541323D524BA196504163FEBAAF832F5541F5138D439E965041303FCC72882F5541FF7D630EA6965041F94A7250892F5541EDED0C48AE96504122C235AA882F5541EDED0C48AE9650411D8DCAC4842F5541E8B8A162AA965041D81BDAD9852F5541CDBE74D1AA965041B7EC4163822F554179D0ED1DAC9650416C46E6927F2F5541620B2C72B09650417AC37C5B7F2F554167409757B4965041884013247F2F554119877B89B99650415994E4E47B2F5541103F50A6BD9650410071F24B792F5541601A175CC4965041A84D00B3762F5541400D2ACDCC965041D1C4C30C762F554120003D3ED596504125B34AC0742F5541FCBDE4C9D99650416B243BAB732F5541B11789F9D69650411C6B1FDD782F5541AFF5DD11CB965041C0346D467E2F5541BD7274DACA96504126D5F5A7802F55416A84ED26CC965041E06305BD812F5541CF550C5AEE9650417059A690772F55413F3EC09EEC965041949BFE04732F5541B35BDFC8EE9650418F66931F6F2F5541E73C79EDF5965041C75AED416E2F55412ADFFFA914975041E967DAD0652F55414B0E982018975041A3F6E9E5662F5541EED7E5891D9750419EC17E00632F55416C3D30971B97504129A45FD6602F55418E8E73F52A975041FE0AF194552F5541C682CD172A975041447CE17F542F5541F71F116D19975041C303D7745E2F5541B08C759A0E975041BABBAB91622F554161B1AEE4079750413C566184642F554161B1AEE4079750419044E837632F55412F146B8F1897504116F25D285D2F55411FA6BFB02C97504131CADFD1502F5541B0DFB6533A975041679C8E0C442F554141F7020F3C97504191135266432F55418C9D5EDF3E9750413E25CBB2442F5541A012F4703E975041A588DB60482F5541360000009673759CD1965041DD102FF72A2F55419B878928B596504158460F760F2F5541C8D19AD7B4965041D44AF742192F554118967BBBB09650418A733CFF172F5541E07B2892AD965041B6B343E8252F554114B35FE1A7965041933974B3292F5541695A5C9FAC965041F99DD88B2C2F5541695A5C9FAC9650417B8FE6F8302F55416F47823FA79650417B8FE6F8302F554192C15174A39650419E09B62D2D2F554148EA9630A2965041504FDF0F232F5541A37EB98EA1965041E5075F5D172F5541BF0B6323A39650419E3AAEDF072F5541E6684E32A8965041A427D47F022F5541609424EB9A965041A631DE45F42E5541A588C3549396504147BA9F0DEC2E554189FB19C091965041AD1E04E6EE2E5541EF5F7E98949650410C96421EF72E5541DFA2167E969650416B0D8156FF2E55418AFB19C091965041B5E43B9A002F554119C7736D8B965041634749A2ED2E5541B3620F9588965041518AE187EF2E55412F67F761929650419D3AAEDF072F55412F67F7619296504174D3B80A112F5541639E2EB18C96504181AD044B062F55413C4143A287965041613D3FDCFB2E55410327F07884965041D37BEFF4F32E55414DFEAABC859650411F5DB4FEE62E55414711851C8B965041370742B9DF2E5541EC7C62BE8B9650412C37003FDC2E554154EBD05C8096504183E806C3D22E554165A838777E96504183E806C3D22E5541375E27C87E9650414FB1CF73D82E5541FF43D49E7B9650414FB1CF73D82E5541AA9CD7E07696504112B46070CC2E554172518C05999650414FE2C725B32E554199AE77149E965041441286ABAF2E55410AE31D67A4965041050B0DE2B12E55419E9193EEA6965041C6039418B42E5541DCC9046A7F965041D3ACE7A6CE2E55410EF731F387965041332426DFD62E554135541D028D965041CDBFC106D42E554152E1C6968E965041AA45F2D1D72E554167814A8B95965041B1321872D22E5541C2156DE994965041C6D29B66D92E5541011DE6B292965041D685F9BAE52E5541E97258F8999650412440D0D8EF2E5541A861D568AA9650416B0D8156FF2E554192B747AEB1965041A427D47F022F5541646D36FFB196504105A91C7EFC2E554180FADF93B3965041613D3FDCFB2E554141F366CAB5965041A80AF0590B2F55411A658309D6965041817C0C992B2F55419673759CD1965041DD102FF72A2F55415E0000000180F3D61097504133C2357B212F55419B1B8FFE0D9750418A733CFF172F5541467492400997504158460F760F2F5541038AFD9C02975041AFF715FA052F5541487E9C06FB965041C7A1A3B4FE2E554160282AC1F39650410C96421EF72E554116516F7DF2965041E91B73E9FA2E55414F6BC2A6F59650413EC36FA7FF2E55410B812D03EF9650412C06088D012F5541898F1F96EA965041CB84BF8E072F5541F6E0A90EE896504158460F760F2F554134E822D8E59650418A733CFF172F5541EB106894E496504195437E791B2F5541CE83BEFFE2965041409C81BB162F5541D953007AE6965041039F12B80A2F5541898F1F96EA965041D171E52E022F5541FAC3C5E8F09650417CCAE870FD2E5541BBBC4C1FF3965041672A657CF62E554183A2F9F5EF9650415C5A2302F32E554134E822D8E59650412136C612FE2E554173EF9BA1E3965041D75E0BCFFC2E5541AC09EFCAE6965041FAD8DA03F92E554139CB3EB2EE9650413FCD796DF12E554159CA2EB1EB9650419EF2E036EF2E5541BEDFA6AEE2965041BB9587F6F92E5541EB0E46D6DF965041981D227DF92E5541DFE6CEADDF965041228D7AE8F72E5541CDE998CBE9965041FAC15C00ED2E554190B00787E59650411CC984FFE92E5541AED5B491DB965041AF6D10CEF92E5541456D8425DA965041981D227DF92E5541E1570C28E39650418FE8EE19E82E5541AD647717D896504180DEFCFCE02E554156F97C8DCC965041F55DDBC0FA2E5541EC904C21CB96504147761DDCFB2E554160B0B63BC9965041512D578AF82E5541EC904C21CB965041670C0861F52E55419CE94780CD965041B7B30C02F32E554138D4CF82D69650413AEE310AE02E5541BF61ADF9CD9650412C557D67DC2E5541768F6712C69650411394519CD82E55410945BCB1BD9650417B8B448ED62E5541066341BDB696504129730273D52E5541276A69BCB3965041B4E25ADED32E554104F20343B3965041791A0714D32E55418DF01E34AE96504165AC93B7D92E5541C6473584AB965041633B563DD62E5541DD9723D5AB96504162CA18C3D22E55412CCEEAFBA59650412BE43FEDD82E554194C5DDEDA3965041F01BEC22D82E5541B9AE80E1A79650412702C5F8D12E5541A3CFCF0AAB9650415EE89DCECB2E554181C8A70BAE9650415B0623DAC42E55419918965CAE965041B7D59EA3C22E5541FD2D0E5AA59650410E5262FEB52E5541A15E9290A796504199C1BA69B42E55415E504292AD96504134AC426CBD2E5541A8228879B596504153422DF1B62E5541156D33DABD965041B757A5EEAD2E5541741E2A98C29650414056C0DFA82E5541AFE67D62C396504188B7C84CAD2E5541A52F44B4C69650414056C0DFA82E55410E987420C896504194DF3F75AD2E55419907CD8BC6965041FE4770E1AE2E55410C2737A6C4965041F50174ADB52E55412CBD212BBE965041B4646129BF2E5541861B607AB896504173C74EA5C82E554190D29928B596504119691056CE2E55414AE2CE35B4965041A549A63BD02E554185AA2200B59650413D52B349D22E5541118BB8E5B69650418F6AF564D32E554159ECC052BB965041BE0AD206D42E5541F5D64855C49650413FC3F0C3D52E55414960C8EAC8965041B4539858D72E5541E3D91273CE96504158841C8FD92E554159DBF781D39650411F2D063FDC2E5541E8BB8D67D596504142A56BB8DC2E5541FAA7FA78E39650419FF6EDCCC52E5541ADE270CCEC965041C650CE3ACD2E5541BE6E6934DF965041E8462D69E22E55412948D71AE4965041E9B76AE3E52E5541DF64C862F4965041BF7B0F81D72E5541044E6B56F8965041B5C4D5D2DA2E5541174BA138EE965041C4CEC7EFE12E554136E18BBDE7965041D3D8B90CE92E5541D63C513AF496504112F4C545F42E5541DB8F09A9FE9650412F976C05FF2E55414BBC2FFE0D97504164FB3E900D2F55417CCD491A1297504189E4E183112F5541CC744EBB0F97504121EDEE91132F55413E237B5B0A9750414183D9160D2F5541D99CC5E30F9750411836B5E3162F55417DCD491A12975041CB702B37202F55410180F3D61097504133C2357B212F5541050100002BA43E2E299750413108AA7F022F55411072D5E82197504113F4C545F42E554124E048451B9750413BD0ACFEE62E5541FFF6A55117975041E7462D69E22E5541356C41AD0D975041F08C299DDB2E5541913BBD760B9750411DBCC8C4D82E55413DB23DE1069750413D52B349D22E55414216BF20F99650417BFC8108DA2E55411D2D1C2DF5965041798B448ED62E5541BE7B256FF09650412502C5F8D12E5541319B8F89EE9650414709EDF7CE2E5541319B8F89EE96504122204A04CB2E55419EE53AEAF69650412CD783B2C72E5541C9A39C97F0965041AB1E65F5C52E5541008A756DEA965041341D80E6C02E5541D64D1A0BDC965041D1890E34B52E5541468B0931D39650419F07B79DAD2E554122A2663DCF9650411CDE5A66A82E55419F780A06CA965041AF93AF05A02E5541C17F3205C7965041B94AE9B39C2E5541E2865A04C4965041AF93AF05A02E5541CB366CB3C3965041332E49B7A82E55414A7E4DF6C19650411CDE5A66A82E55414A7E4DF6C1965041C6E39D56A02E5541F9D64855C4965041E67988DB992E554183D56346BF96504174CB5B3B9F2E5541753CAFA3BB9650416A14228DA22E5541EF30D877AF96504141C7FD59AC2E55416B963EC6A6965041213113D5B22E5541022E0E5AA5965041ACA06B40B12E5541141A7B6BB39650416C855F07A62E5541D37C68E7BC9650413A0308719E2E55414A7E4DF6C19650414E717BCD972E55412706E87CC19650415828B57B942E5541A64DC9BFBF965041C01FA86D922E5541C754F1BEBC965041CB471F96922E554117FCF55FBA9650419E18806E952E554168A3FA00B8965041424904A5972E55415A0A465EB49650411238EA88932E5541A26B4ECBB8965041BEAE6AF38E2E55411DD1B419B0965041C965A4A18B2E554153465075A696504102BDBAF1882E5541DAD32DEC9D96504175DC240C872E55419001E80496965041AE333B5C842E5541EB5F265490965041C412EC32812E5541A3FE1DE78B96504159397E4C7C2E5541D02DBD0E8996504163F0B7FA782E5541FC5C5C368696504179CF68D1752E5541707CC6508496504132DF9DDE742E554150F7A49C7296504142D8C62A942E554171FECC9B6F965041C11FA86D922E55417A3300FF80965041600E3D06722E554123C8057575965041BA6C7B556C2E5541B7EE978E70965041D32DA720702E55411D754D066B9650410C85BD706D2E5541E8107B7B5C9650417F935EBA832E5541A0AF720E58965041C412EC32812E55416E1C52A76896504120F330CD662E5541C23494C269965041A8628938652E5541F8A92F1E60965041172F3BE4582E5541485134BF5D965041718D7933532E554137D604285396504185FBEC8F4C2E5541CA8B59C74A96504102D29058472E5541D1D155FB43965041F638DCB5432E5541FD8FB7A83D9650413BB8692E412E554179F51DF734965041740F807E3E2E5541F83CFF39339650418B5F6ECF3E2E55419AFC45F631965041184004B5402E55411651E37341965041FB8B94244E2E554192A580F150965041D3AFAD6B5B2E5541EE74FCBA4E965041484055005D2E5541EAA34A972F96504181A83421422E5541A4B37FA42E965041184004B5402E5541256C9E6130965041E72EEA983C2E55410658BA2722965041867DF3DA372E5541219BEC3D11965041EC03A952322E554103870804039650416ADA4C1B2D2E55414977D3F6039650419709EC422A2E5541962B94D21296504154FB9B44302E55416498736B23965041FA9C5DF5352E5541988B087C2E965041135E89C0392E55416CCDA6CE34965041B51DD07C382E55414BC67ECF37965041EE74E6CC352E55413476907E379650410E0BD1512F2E55413205530434965041997A29BD2D2E5541E0EC10E932965041528A5ECA2C2E5541D04F4FB0589650417E48C077262E55412C1FCB795696504139C932FF282E554117B1571D5D965041749186C9292E554148C2713961965041227944AE282E5541DF5941CD5F96504120080734252E5541A6022B7D62965041DA173C41242E55410F6B5BE96396504164F8D126262E55419C4BF1CE65965041CE600293272E55411E754D066B965041729186C9292E5541C4160FB770965041E7212E5E2B2E5541B0A89B5A7796504121EA81282C2E5541D6027CC87E9650410A9A93D72B2E554114AD4A8786965041B88151BC2A2E5541A18DE06C88965041D98879BB272E55418086B86D8B965041207944AE282E5541161E88018A965041B88151BC2A2E55419E9A9CA799965041F79C5DF5352E5541772FF368AA9650414DA8E3D5252E554185C8A70BAE9650414CA8E3D5252E5541D7E0E926AF965041F249A5862B2E5541A7CFCF0AAB965041D0427D872E2E55416A963EC6A696504197EB6637312E5541744D7874A3965041263D3A97362E5541E86CE28EA19650413FFE65623A2E5541E86CE28EA19650416276CBDB3A2E55410C6341BDB696504115753718522E554199320ED2D09650418C6553566F2E5541A6CBC274D4965041530E3D06722E55419E85C640DB965041D1E4E0CE6C2E554121AF2278E096504144044BE96A2E5541C5DFA6AEE296504123FD22EA6D2E5541E6E6CEADDF9650410D1E7213712E55419E85C640DB965041D4C65BC3732E5541EE2CCBE1D8965041557F7A80752E55417C7E9E41DE9650418A01D2167D2E5541011938F3E69650411DB726B6742E5541CD14DA11F49650410C3CF71E6A2E55417A09543104975041CE20EBE55E2E5541DB2B88690C97504163477DFF592E5541EA357A86139750419C9E934F572E5541A99867021D975041844EA5FE562E5541CCFF03AB359750410507C4BB582E5541ACE712DB5097504190E759A15A2E5541ACE712DB509750413418DED75C2E55414EB8226837975041A73748F25A2E55417A874DE6189750411B57B20C592E5541BC959DE41297504149F78EAE592E5541DE9CC5E30F9750419B0FD1C95A2E5541DC2B88690C97504111A0785E5C2E5541AC1A6E4D08975041B5D0FC945E2E55418731CB5904975041590181CB602E554104086F22FF9650414F4A471D642E5541D014DA11F4965041BB94F27D6C2E5541FA61FE44EA965041118FAF8D742E5541F50E46D6DF965041FE9179AB7E2E55418F88905EE59650413414D141862E55415913F502EF965041458F00D9902E5541E9D505DDF7965041A6B13411992E55410EBFA8D0FB965041EE123D7E9D2E5541D5679280FE9650414EC4333CA22E554138FB03330A975041EB30C289962E55410BCC640B0D9750416D5A1EC19B2E5541A838F358019750410BB6E33DA82E554111A123C50297504147EF7482AC2E5541C1F91E2405975041F5D63267AB2E5541D8490D750597504181B7C84CAD2E55415891EEB703975041DFF78190AE2E554159022C3207975041BF61970BB52E55417EEBCE250B975041ED903633B22E5541E853FF910C97504156F9669FB32E5541DABA4AEF089750419E5A6F0CB82E5541680C1E4F0E975041E82CB5F3BF2E5541941D386B12975041E70E30E8C62E554167EE9843159750415F815271CF2E554167EE984315975041CA5AC057D42E5541968E75E5159750419103AA07D72E5541B906DB5E169750411EE43FEDD82E55413ABFF91B189750415A1DD131DD2E5541AEDE6336169750417D9536ABDD2E5541E6357A86139750414C13DF14D62E5541C3BD140D13975041F8895F7FD12E5541A045AF9312975041DFC833B4CD2E55411F8D90D61097504197672B47C92E55416F3495770E97504143DEABB1C42E5541EE7B76BA0C9750411EF508BEC02E5541B242E575089750413E8BF342BA2E55419981B9AA04975041A411A9BAB42E5541E928BE4B0297504174008F9EB02E554145F8391500975041728F5124AD2E5541DC8F09A9FE965041701E14AAA92E5541C53F1B58FE965041B29DA122A72E5541395F8572FC965041766410DEA22E55417DDE12EBF996504174F3D2639F2E5541DAAD8EB4F79650418AD2833A9C2E5541E464C862F49650417D39CF97982E554190DB48CDEF96504140003E53942E5541EA39871CEA9650418F36057A8E2E5541DDA0D279E6965041829D50D78A2E55415A777642E1965041D0D317FE842E5541AA1E7BE3DE965041C33A635B812E5541642EB0F0DD96504165FAA917802E5541B4D5B491DB9650419229493F7D2E55413ED4CF82D6965041F8AFFEB6772E55413C639208D39650413D2F8C2F752E55419F07CD8BC696504191A742F4912E5541297725F7C49650414AB77701912E5541AF82FC22D1965041B04EF649732E554183E62C17A7965041E738DCB5432E5541022E0E5AA5965041DC10658D432E554116AD4A87869650411546E93B712E55418ACCB4A184965041C32DA720702E55416A25014CA3965041C4C0763C432E554153D512FBA2965041DA9F2713402E5541C6F47C15A19650411E1FB58B3D2E554143CB20DE9B965041CE77B0EA3F2E554135326C3B9896504159E708563E2E554162610B6395965041639E42043B2E55419D295F2D96965041612D058A372E554161F0CDE8919650413D446296332E5541F7879D7C90965041F65397A3322E5541E037AF2B90965041640F807E3E2E5541D680757D939650412BB8692E412E5541A951D655969650411F90F205412E5541874AAE569996504115D9B857442E554158AAD1B498965041E8A91930472E5541875B772781965041938DCA7E6F2E55410BF610D989965041FE663865742E5541C5E7C0DA8F9650413D1107247C2E5541A4E098DB92965041E0D04DE07A2E554182D970DC959650410E712A827B2E554103928F9997965041B2A1AEB87D2E55413CE9A5E99496504162FAA917802E5541EAD063CE93965041919A86B9802E55416CFABF059996504135CB0AF0822E55412B5DAD81A2965041FC73F49F852E55413CD8DC18AD965041B8F46627882E5541FCAB070FBA96504117A65DE58C2E55410945BCB1BD965041215D9793892E55410BB6F92BC1965041C58D1BCA8B2E5541440D107CBE965041A386F3CA8E2E5541BB0EF58AC3965041E0BF840F932E554147EF8A70C596504155502CA4942E554101EEF6ACDC96504110E267FC7E2E554148DEC19FDD965041C03A635B812E5541870A97A9D09650412EF64B368D2E55418EDF5563C6965041334904A5972E554193A34B4CD4965041E3AEBB3EAB2E55410834F3E0D596504187DF3F75AD2E55411E02DBE6EA96504178C48487BE2E55414E13F502EF9650413F6D6E37C12E554127A84BC4FF965041AA57A5EEAD2E5541717A91AB079750413B8BF342BA2E554138237B5B0A975041544C1F0EBE2E55410430E64AFF9650414E776054C82E5541FCE9E916069750410B691056CE2E5541C50311410C97504103231422D52E55412E6C41AD0D9750410494519CD82E55416BA5D2F11197504140CDE2E0DC2E5541041F1D7A179750417D067425E12E5541299782F317975041119E43B9DF2E5541BF2E52871697504190E524FCDD2E554140E770441897504184BDADD3DD2E5541FB67E3CB1A975041E46EA491E22E5541B7E855531D97504172C077F1E72E5541205186BF1E975041FEA00DD7E92E5541D31ABF9824975041AA244A7CF62E5541059D162F2C975041542A8D6CEE2E5541EFBD65582F9750411A6239A2ED2E554141D6A77330975041B26A46B0EF2E5541A9CD9A652E975041B4DB832AF32E5541D6FC398D2B975041FC3C8C97F72E554155441BD0299750414CE49038F52E55415FFB547E269750411FB5F110F82E5541A75C5DEB2A975041D2EF6764012F55412BA43E2E299750413108AA7F022F554106000000125CDAF6C4965041D621910EEF2E5541D354612DC796504115290AD8EC2E55411D2C1C71C896504131B6B36CEE2E55412EE9838BC6965041D4178748FD2E55419B3A0E04C4965041B19DB713012F5541125CDAF6C4965041D621910EEF2E55410600000056E47E3616975041CD8C510CB82E5541785E4E6B129750413ADEDB84B52E55414427171C189750415C58ABB9B12E55410A03BA2C23975041BED9F3B7AB2E5541F84552122597504140CB0125B02E554156E47E3616975041CD8C510CB82E554105000000F63B484C33975041F03719F38E2E55413543C115319750418AD3B41A8C2E5541F4313E8641975041B33AAAEF822E5541B52AC5BC43975041199F0EC8852E5541F63B484C33975041F03719F38E2E554105000000B178A19415975041810D7D667A2E5541D3F270C9119750411BA9188E772E5541B55BBD6E1E975041678ADD976A2E55411BC0214721975041725A1F126E2E5541B178A19415975041810D7D667A2E554106000000A677676837975041619DB7F76F2E55415CA0AC243697504105099599702E554112C9F1E034975041B16198DB6B2E554176234CF34597504124A048F4632E5541371CD32948975041012679BF672E5541A677676837975041619DB7F76F2E5541060000000DEDF96814975041942B31DE342E5541DE4C1DC7139750412952C3F72F2E55414E79431C23975041347A3A20302E5541DB59D90125975041631A17C2302E5541F3A9C75225975041DA1BFCD0352E55410DEDF96814975041942B31DE342E554107000000665C0189F6965041A246ECCB232E554137BC24E7F596504195AD3729202E55411F6C3696F596504114F5186C1E2E5541665C0189F6965041933CFAAE1C2E5541D517EA63029750414124B8931B2E554103B8C605039750412DB64437222E5541665C0189F6965041A246ECCB232E5541070000008403B5DED7965041AB7B1F2F352E554178DB3DB6D79650416F428EEA302E5541656DCA59DE965041CB110AB42E2E554172067FFCE1965041CB110AB42E2E554147481D4FE8965041B3C11B632E2E554153709477E896504113731221332E55418403B5DED7965041AB7B1F2F352E55410A000000CE68CAE1B2965041541025A5292E55418778FFEEB19650412F2782B1252E55410AA25B26B79650415C5621D9222E5541A3AA6834B9965041CF758BF3202E554125D4C46BBE965041376D7EE51E2E5541E15437F3C09650417235D2AF1F2E554110F51395C1965041E7C57944212E5541F8A42544C19650413B4FF9D9252E55412F8BFE19BB9650412F2782B1252E5541CE68CAE1B2965041541025A5292E55411E0000003C4EA1D63296504174396FBAA22E55414CDA993E25965041B5D6813E992E5541C9B03D0720965041E2052166962E55414ECDDD031496504150D2D2118A2E55411F3ECA32FB955041E8DADF1F8C2E5541614C1A31F595504122A333EA8C2E554184C47FAAF59550416722C1628A2E554197B0ECBB03965041E669A2A5882E55418442795F0A965041DA412B7D882E5541FFA7DFAD019650419451608A872E55411CDE5589DF9550414CF0571D832E554156A6A953E0955041906FE595802E554141342961109650414E619597862E5541A92B1C530E965041AA301161842E55413BE170F205965041A4DD58F2792E5541FFA7DFAD01965041168C8592742E55418A17381900965041AC235526732E5541D6DCC1C5F6955041068293756D2E5541177AD449ED9550419BA8258F682E5541461AB1EBED9550413D686C4B672E5541679FD29FFF955041141B4818712E55412E48BC4F02965041AC235526732E554153315F43069650410CD54BE4772E55414D5CA08910965041B5588889842E5541F6DFDC2E1D965041762CB37F912E5541F8501AA920965041614D02A9942E55417616F5A033965041E758D9D4A02E5541C82E37BC3496504116F9B576A12E55415FC606503396504174396FBAA22E55413C4EA1D63296504174396FBAA22E55410D0000001034D815F4955041F17C4367CA2E554145A97371EA955041EB298BF8BF2E55411AEB11C4F095504169002FC1BA2E5541040C61EDF39550412481A148BD2E55414AFC2BE0F4955041BB1871DCBB2E554112A51590F7955041AFF0F9B3BB2E5541C1FD10EFF9955041C740E804BC2E5541378EB883FB955041BB1871DCBB2E55412DD77ED5FE955041EAB84D7EBC2E55415A061EFDFB955041EB298BF8BF2E55414D6D695AF8955041E172514AC32E5541D94DFF3FFA955041A81B3BFAC52E55411034D815F4955041F17C4367CA2E55410A000000A4D863E4039650417699E363BE2E55413B7033780296504101093CCFBC2E55415EE898F10296504197A00B63BB2E55415EE898F1029650412E38DBF6B92E5541C750C95D04965041AD7FBC39B82E554131B9F9C905965041A1574511B82E55414A7A259509965041DC1F99DBB82E55413E52AE6C09965041DD90D655BC2E55416059D66B069650415E49F512BE2E5541A4D863E4039650417699E363BE2E55410C0000006D855A2ADD9550418F5A0F2FC22E5541773C94D8D9955041A539C005BF2E5541AE226DAED3955041DC1F99DBB82E5541003BAFC9D49550415B677A1EB72E554169A3DF35D69550412CC79D7CB62E5541EA5BFEF2D7955041DAAE5B61B52E5541C954D6F3DA955041651EB4CCB32E55416D855A2ADD955041651EB4CCB32E5541BD2C5FCBDA955041DAAE5B61B52E5541031D2ABEDB955041209F2654B62E55412A770A2CE395504153217EEABD2E55416D855A2ADD9550418F5A0F2FC22E55410600000031CECF30C49550411102651BDC2E5541764D5DA9C1955041CB119A28DB2E5541B286EEEDC59550415DC7EEC7D22E554156B77224C895504117D723D5D12E554156B77224C8955041B0DF30E3D32E554131CECF30C49550411102651BDC2E554109000000D2E7721B37965041FB869E76A12E55418810B8D735965041561BC1D4A02E55413E39FD9334965041DEF9F4E19F2E5541FF3184CA369650411D016EAB9D2E554149093F0E3896504112312C319A2E55416596E8A239965041903F1EC4952E5541278F6FD93B9650410761EAB6962E5541DDB7B4953A965041D429B3679C2E5541D2E7721B37965041FB869E76A12E55410A0000002CAEA037AE955041AFBC1435362F5541FF7E0110B1955041D90939682C2F5541E99F5039B49550417BC97F242B2F55418DD0D46FB695504187F1F64C2B2F55411AB16A55B8955041FC819EE12C2F55416A586FF6B59550414654E4C8342F554199F84B98B6955041AFBC1435362F554181A85D47B69550413C9DAA1A382F55415197432BB2955041A505DB86392F55412CAEA037AE955041AFBC1435362F55410E000000877D1C01AC9550413D1FB165232F5541E34C98CAA9955041DFDEF721222F55419D5CCDD7A89550413BAE73EB1F2F5541CCFCA979A9955041D145437F1E2F5541FB9C861BAA955041508D24C21C2F554159DD3F5FAB955041F34C6B7E1B2F5541DA955E1CAD955041AC5CA08B1A2F5541C4B6AD45B0955041666CD598192F554197870E1EB3955041082C1C55182F5541520881A5B5955041C23B5162172F5541BC70B111B7955041D98B3FB3172F5541F63805DCB795504137CCF8F6182F5541DFE8168BB7955041CFD405051B2F5541877D1C01AC9550413D1FB165232F55417D000000803F3AF95F955041A0B222182F2F5541E8362DEB5D955041B691D3EE2B2F5541B99650495D955041B4209674282F55418AF673A75C955041609716DF232F554138DE318C5B9550414565AD991C2F5541E6C5EF705A955041EF6AF089142F55418985362D59955041EC8875950D2F5541ACFD9BA65995504125E08BE50A2F5541529F5D575F955041D1560C50062F554156700F7B7E95504143873F3BEC2E5541B89243B386955041074EAEF6E72E5541D5176567989550410F05E8A4E42E554154DD3F5FAB955041D2CB5660E02E5541D877D910B4955041E8AA0737DD2E5541F0C7C761B4955041B90A2B95DC2E55414A2606B1AE9550411F91E00CD72E5541CDD168339F955041BA8C31E0C72E554133581EAB99955041C4436B8EC42E5541C60D734A9195504145FC894BC62E5541BAE5FB2191955041B81BF465C42E55416087BDD2969550414EB3C3F9C22E55410247048F95955041AE823FC3C02E5541BB56399C94955041C461F099BD2E55410D6F7BB795955041D940A170BA2E5541EAF6153E95955041C07F75A5B62E554152EE083093955041E015602AB02E554100D6C61492955041D27CAB87AC2E554198DED32294955041BB2CBD36AC2E5541F61E8D66959550418F6E5B89B22E554183FF224C97955041FB47C96FB72E55419A4F119D9795504137815AB4BB2E55415F87BDD296955041E7D95513BE2E55416BAF34FB969550418B0ADA49C02E554132581EAB999550413B63D5A8C22E5541C1A9F10A9F955041F6E34730C52E55419F20C3C0B69550418E6A4EF3DB2E55411B75603EC6955041FD2537CEE72E5541E870025DD39550419A10BFD0F02E5541113C2045DE955041632AE6FAF62E554151572C7EE9955041DA2BCB09FC2E5541168FD8B3E8955041201C96FCFC2E5541A9442D53E09550411383E159F92E5541D4028F00DA95504128629230F62E55417E08D2F0D1955041D4D8129BF12E55410696AF67C99550412E3751EAEB2E5541B09BF257C19550417D6D1811E62E55414F79BE1FB995504191DB8B6DDF2E5541C298283AB79550414AEBC07ADE2E55411E68A403B5955041561338A3DE2E554162E7317CB295504191DB8B6DDF2E55414FFBC46AA4955041D93C94DAE32E55411997F2DF95955041B7356CDBE62E55411CFB731F8895504173B6DE62E92E5541607A019885955041B9A6A955EA2E5541F711D12B84955041220FDAC1EB2E5541EBE9590384955041C63F5EF8ED2E55414B9B50C1889550418D66415D052F5541CB536F7E8A95504183AF07AF082F5541299428C28B955041D5C749CA092F55416E13B63A89955041A6276D28092F5541ED5A977D879550418D66415D052F55419B4255628695504195AC3D91FE2E5541F711D12B84955041A7A97373F42E55418DA9A0BF82955041C63F5EF8ED2E5541A4F98E1083955041F36EFD1FEB2E554168C0FDCB7E955041BA17E7CFED2E5541B4AFFF5C72955041AC0413D3F82E554109D6DFB57495504163A797D4F92E55413130AF7F76955041E80BCA81FB2E554185568FD878955041FCB8B166FC2E5541F29B98DB7A95504115D8DA10FC2E554101D73EFB7C955041C1B1FAB7F92E5541BCEB04C27C955041B1765498F72E55413787D2147B955041E726E8B1F52E55417700CB887C95504149A38C5AF42E55414250376F7E9550412149BD90F22E55416538C57381955041110E1771F02E5541A6B1BDE7829550417E532074F22E5541082E62908195504135F6A475F32E5541853B71A87E9550416250743FF52E5541FB64FD357E955041728B1A5FF72E554180C92FE37F955041FC618ED1F72E5541D5EF0F3C82955041596CF1B4F72E554177E5AC5882955041DFD02362F92E55410F12E51A7F95504124BC5D9BF92E5541CE98ECA67D9550416435560FFB2E55418E1FF4327C955041D17A5F12FD2E5541254C2CF578955041526D50FAFF2E5541BD7864B77595504135DCE58A012F554128D98BEA719550419EAFADC8042F55418EC771586F955041CA7BBE57052F5541F5B557C66C9550410F67F890052F55413E13D3C46B95504171E39C39042F5541F927998B6B9550413EC06815FF2E5541B9E908B867955041C5BD57AD022F5541B39650495D9550410368266C0A2F554109910D59659550410F909D940A2F55414FFFD1007B9550415F37A235082F55416A313B46829550415F37A235082F55411EC18A8A909550417E7566EE0A2F5541EC323DEBAA955041CAB7C3BC0F2F55411522F339CC955041B37D7CE2152F55411FECB6D9D795504182CDE8C8172F554121D198A9DD9550413DE2AE8F172F554154F4CCCDE29550411588DFC5152F5541D0747CF0E69550417B76C533132F554156D9AE9DE89550413BFDCCBF112F554190FB837CE5955041D09CA58C152F55417EDBFB8CDD95504138706DCA182F55417884D8F7D8955041C246E13C192F55413526FEB3D19550410CA45C3B182F5541C4163111C49550418BB16B53152F554130C7538FA695504113A3FDF50F2F55415955A12E8C9550418A7566EE0A2F5541F30E39E681955041621B9724092F5541138426E07D955041BD25FA07092F5541BF05C4AC6E9550415BA9555F0A2F5541D27547E75C955041CC60A0270B2F5541D6E788AC5B955041AFCF35B80C2F55414C11153A5B955041923ECB480E2F554170F9A23E5E9550413771CC0F212F5541269C27405F9550418D7C8E38292F55414EF6F60961955041C51104222D2F55411062E06565955041F8343846322F5541803F3AF95F955041A0B222182F2F554107000000565D28BEB2955041F22CB1B60B2F554173EE922DB195504199948F980A2F5541879B7A12B2955041446EAF3F082F5541EF6E4250B59550411C14E075062F5541DEA63C3BBA95504196AFADC8042F554106010C05BC955041A1781223082F5541565D28BEB2955041F22CB1B60B2F5541050000009449C13CBB955041324E2750002F55413BB19F1EBA9550412CF703BBFB2E5541BA163111C4955041080F76B6F82E5541B5A4EF4BC59550415451D384FD2E55419449C13CBB955041324E2750002F55410E000000D52C74E694955041D8EAE24CEB2E5541216FD1B499955041BFCBB9A2EB2E55415804479E9D955041F0090CF7EA2E5541EDA31F6BA19550411DD61C86EB2E5541EDA31F6BA1955041A23A4F33ED2E5541A8B8E531A19550416D8ABB19EF2E5541B19C68BC9E9550410B0E1771F02E55418EB4DAB79B955041C622DD37F02E5541F4A2C02599955041F2EEEDC6F02E5541E0F5D840989550414B870FE5F12E55415B91A69396955041BD3E5AADF22E55416475291E949550416E6F9DE9F42E55417C9452C8939550419956CCA8EF2E5541D52C74E694955041D8EAE24CEB2E55413000000084704A586A95504177C62BD6402E5541DECE88A7649550416358B879472E5541098DEA545E9550415D83F9BF512E5541071CADDA5A955041ED450A9A5A2E55411F6C9B2B5B955041A08080ED632E5541A9DBF39659955041E8E1885A682E554111D3E68857955041983A84B96A2E5541A86AB61C56955041E20CCAA0722E5541C971DE1B53955041A16FB71C7C2E5541AE3F75D64B955041E3FB00D08A2E55415B2733BB4A9550412B5D093D8F2E55411155EDD3429550410E385C32992E5541F6B1461438955041C4C58AF4AC2E5541CDE6282C2D955041428B65ECBF2E55414ABDCCF427955041767EFAFCCA2E5541494C8F7A2495504105D0CD5CD02E55412E1A26351D955041D9116CAFD62E554144F9D60B1A95504138C3626DDB2E5541C91577080E955041FD780858EF2E5541A2BB969A0695504111D6B2E3002F5541F3629B3B049550417DAF20CA052F554149DF5E96F794504137AE8C061D2F5541D44EB701F6945041090EB0641C2F55419522E2F702955041081F7935042F5541C633FC13079550416AC3B3B8F72E554119BD7BA90B955041B6883D65EE2E55418F4D233E0D955041B6883D65EE2E5541B5A703AC14955041F5B4126FE12E55412B38AB40169550414F1351BEDB2E554150214E341A95504140095FA1D42E5541EA9A98BC1F955041E15768E3CF2E55414477D0C02E955041F4B81F05B82E5541C52FEF7D30955041E890A8DCB72E55416C42EEA8399550410EFC511BA72E55411AC62A4E4695504161255D07902E5541E3DF51784C955041C53AD504872E5541723125D85195504162A763527B2E5541502AFDD854955041C6BCDB4F722E55410DAB6F605795504129F0D858622E5541266C9B2B5B95504150CCBF11552E55413023D5D957955041F38B06CE532E55415FC3B17B58955041086BB7A4502E5541512AFDD8549550417062AA964E2E5541823B17F558955041973E914F412E554107D6B0A6619550418E8757A1442E554164166AEA629550414908CA28472E554151A8F68D69955041F30D0D193F2E554184704A586A95504177C62BD6402E55410500000007112645C69450414F5F8F2D282E5541B5F8E329C5945041AB2E0BF7252E554166C21C03CB9450413C73221C1A2E554176CC0E20D294504186456803222E554107112645C69450414F5F8F2D282E554106000000491F7643C0945041C7E27A87182E55417F94119FB69450415C090DA1132E5541A8E135D2AC945041644F09D50C2E55412B0B9209B29450418274B6DF022E55419DA8F5D8C494504114A804340F2E5541491F7643C0945041C7E27A87182E5541
+</a>
+
+<b>
+010600000001000000010300000001000000190000009425A32DDB9350411C3DE524FA2D5541868CC9FBD69350415F7C5338F62D5541643B023ED5935041155C264EFA2D55411241452DD49350412CE10124FE2D55411B5A8B48D493504153B1AF4B022E554148F02FECD493504150D272B4052E554102B6A867D6935041ED7F6133092E5541F781DC78F793504129FB198DF12D5541F064BF860E945041CD3FF8B7E32D5541C1D339261C9450413A18377FDA2D5541B5993799219450416684D6E2D52D5541B3F883772794504112A4CE10D12D5541878CE4132C945041C9C3C63ECC2D55410AC4C22E32945041DE816E02C62D5541236DA79134945041D8387D8DC42D5541CB594A8C34945041A613856BC42D5541C6F01EC12D945041B7052E82C02D55414C3D62A219945041C69EE041D52D5541E70573A8089450410E45E686DF2D5541579CE6D7F693504141529D60E92D5541C591A6E5EA935041B347C1C2F12D5541C820D5C5DE9350417E94624FF82D5541C820D5C5DE935041F050FD60F82D55413C3DFF38DE9350414486CD95F82D55419425A32DDB9350411C3DE524FA2D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979690 - 403424
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -34 </desc>
+<a>
+01060000000100000001030000001E000000A002000040E3E97C6C975041AC419793082F55412BA2AB836D975041B61686F6012F5541E1178CCF6D97504169AEBA5AD12E55417790392E6C975041AD8A32CBC12E5541E2D65D9F649750417D69D369A32E5541AE4066BB5F975041DD9DE1A08D2E5541B70843A85D9750415F22672F912E55415EAD3BEA589750415F7DCA08892E55419B66739453975041633C9CD87F2E55410B1A111952975041F2A233FD6F2E5541C08FF16452975041FB6A10EA6D2E55415F11AAE0579750416BBA3F786D2E55414778E5E95497504144ABF6505D2E554130DF20F35197504144ABF6505D2E5541CEBB3C484F9750418EEBDCB74C2E5541509B25B04A975041225B7FF9432E55411DAACAF24D975041B76FBE61432E55416834EAA64D9750415E14B7A33E2E55410A7574F249975041CB63E6313E2E5541622BDF8946975041B280E8ED2A2E5541F8D60A8DFB9650419894DF8C102E554170497AE1F0965041A15CBC790E2E55419469ED94E89650417B97AC9F0E2E5541535D7180D696504193307196112E5541DA268BED9E9650412786DE2E1A2E554105312FA663965041B477DDD0232E5541C1E3846148965041ABE723F7272E55410EE33C982E96504174925A432C2E55411661E0371C965041D6B53EEE2E2E554152757BBB0E965041DF7D1BDB2C2E55415FFC29780396504182BEA526292E5541AEEAB7220296504194F3FB262D2E5541BCBB9F2C07965041CDED6101312E55417BF95C6505965041E48626F8332E554184C1395203965041F2570E02392E5541805DCB5B04965041A9728B74412E55413F4025BB0A96504147F443F0462E5541AB24B9CF1C96504180AD8D6C542E5541112C60EB1396504180AD8D6C542E554168A516EC1B965041AB7C82D55B2E554113072D1A0D9650418F163BFD6F2E5541049E7F89F1955041CB4EEDAF5F2E55418A77917FEC9550417B1C27E0682E5541793317C0D7955041AB7C82D55B2E5541C8AF53EBA8955041903B7E87432E5541EE122552989550411D5C80AE4F2E5541E23ACE949B9550411B81B37F562E5541B2DA729FA89550412EA0FA6D642E5541E5CB2468BA955041636C79656F2E5541793317C0D795504105878FA9822E55416D5BC002DB955041B454C9D98B2E5541F25905CADC9550414E4D22BE942E55414F895528D7955041A3C6D8BE9C2E5541152C70A4E0955041043D194EA82E554143B1FE6ADA955041678E260CAD2E554124BA60BFCF95504149978860A22E5541870B6E7DD4955041556FDF1D9F2E55419FBB1BF8CD95504112F03C3A9E2E5541119B19D1C19550410618E67CA12E5541BA2163D0B99550411CEDC6C8A12E554100579F11AD955041CE95CD27A42E55416F80038DAE955041FC1A5CEE9D2E554118074D8CA6955041771C17279C2E5541099E9FFB8A955041C74EDDF6922E554132B70AC06C95504172B0F324842E55411CE229746C9550413DE4742D792E5541FC0FBF99689550419813C58B732E55411EBDF6A265955041FD1A6CA76A2E5541AF93922764955041AA574F04552E554197E3E4AC6A955041083D39C0412E5541AA022C9B78955041504D42302E2E5541E7F067F28D95504142BF61CE0B2E5541810E04616A9550413C78719DFA2D5541C568737364955041F81D028B002E5541234E5D2F519550414850C85AF72D5541CCD4A62E499550413356B43DF02D5541EF81DE37469550414850C85AF72D5541A4E07EF43A9550414850C85AF72D5541BF46C6CC269550411BA606C3F62D55414620D8C221955041ABA1D518FC2D5541D0AF83160F955041021B8C19042E55419DBED14DFD945041A5106F8C102E5541C146D685F3945041333171B31C2E5541B9241926E9945041B82FB67A1E2E55414AFBB4AAE79450411B81C338232E5541FAC8EEDAF0945041D8012155222E5541C146D685F3945041B654E94B252E554168F25256F294504192CCE4132F2E554137B72A3206955041A7C6F830362E5541F25CBB1F0C955041EDFB3472292E55411B51E3591A95504192CCE4132F2E5541DF1831A72A955041389D94B5342E5541D08A408C3B9550412AEA70C93E2E5541A4E07EF43A9550416191BCEF422E5541DE3D647831955041833EF4F83F2E5541189B49FC27955041CA29BADE582E55411A76162B2195504194826EB8542E5541AE024C0D12955041B70A73F04A2E55414D8C0B7E06955041AFE8B590402E554167178627F994504116F05CAC372E5541E7A9A7ECE2945041EDFB3472292E55419852AE4BE59450411B81C338232E5541CDD4C6A0E2945041DBDCED831B2E55415689A5C5D69450411F375D96152E5541840E348CD094504157B975EB122E55417A11AAFDCC945041C09BE935032E554115E5CF10CF9450415E25A9A6F72D55414C8C1B37D394504197A7C1FBF42D5541A074713FCD94504110DE9846F42D5541C5475EE3B3945041FA86B11EE82D55415AF3EDA2A5945041FCC87CB6F02D5541C66C7C378294504163E322C1DB2D5541CE89FD7D7F94504165426F9FE12D55418EA190F5809450412FD6CF3BE62D554169CEA3519A9450416242D3F3F52D55418F5F8D06A1945041763A6E3DFC2D554121C9B5829E945041122064DEFC2D554182C676F27794504181578B2FE52D55413DC124CF679450418815C097DC2D55415877F48065945041197FE813DA2D5541D9A61A7068945041984FC224D72D55416810A7407A945041D3D84623E42D554197BE113C7E945041369404A4DD2D5541A95760A77E9450413435B8C5D72D55416810A7407A945041E871313AD02D5541AEB64831709450414B2DEFBAC92D5541D18999296B9450411C7F84BFC52D55410855856B6C945041FF69682FC22D5541C04F979C7094504136355471C32D5541C2AEE37A76945041A5CB2BF5C52D5541702D288777945041DA37CB58C12D55413F2071AD6D945041223DB927BD2D554141200D59599450414F8CD744BB2D5541EA816CCA48945041A10D9338BA2D55419F1D321D47945041785F283DB62D55416035C59448945041076A04DBAD2D55413B0328BE479450417A5FC4E8A12D5541A6DB66853E945041724243A2A42D554102D9EF9D40945041A1F0AD9DA82D55411FEE0B2E449450413E35F01CAF2D5541706FC7214394504113451EDEB62D554175CEAFAB34945041EAB3987DC42D5541C5F01EC12D945041BB052E82C02D55414D3D62A219945041CB9EE041D52D5541E30573A8089450410F45E686DF2D5541559CE6D7F69350413F529D60E92D5541C891A6E5EA935041B047C1C2F12D55419525A32DDB935041203DE524FA2D5541F8E060AED49350419591F110F42D554141459B5BD69350414B2DB763F22D554139281A15D993504137351C1AEC2D554193C6564FD59350418F740C76E22D5541C932F6B2D0935041544A38AAEF2D55418EA971B4C3935041EC71958EE42D554127301B77BE9350413C9404A4DD2D5541635AEF42B1935041D4BB6188D22D55417DB17216A9935041FD4CE7E8C42D55418EEB74A3A3935041D91A4A12C42D5541D232CAB593935041B1E81090D72D5541C29917F67E9350414FCEA2DCC32D5541C29917F67E9350410E87E975BF2D5541D9914EEB70935041F6D0B56FAD2D5541A684FB657B93504178A12B2C962D554120F6ECEC869350411EA43EBF7F2D554120F6ECEC8693504166A92C8E7B2D55415103A4C690935041B92AE8817A2D5541B77CFA0396935041043072FC612D55410B5D02D69A935041E979A24A642D5541D84FAF50A5935041D1C36E44522D5541506254F9AA9350417367994D4A2D554152C1A0D7B09350413EFBF9E94E2D55419108BE92C9935041B7AEEE5F3A2D5541065DCA7EC3935041B54FA281342D5541350B357AC7935041EBBB41E52F2D5541091B633BCF935041CEA625552C2D554155DEE9C6D6935041A7153CA0252D554191C6BAA3E99350418B5FD0423C2D5541DBCB441ED19350412A035FA0482D55413B8766F3DE93504184004C0D5F2D5541BE15D9C0E7935041F037D7B25B2D55419B4288C8EC935041AFF01D4C572D554114552D71F29350414AD613ED572D5541533D9AF9F0935041BBCB374F602D5541B9B6F036F69350415ECEAE365E2D55418C67D219F8935041EA79A24A642D5541F99E5DBFF4935041B66C4FC56E2D554112F6E092EC93504170C6ADD4782D554145033418E2935041D89E50F0832D554129EE1788DE935041B5CBFFF7882D5541589C8283E2935041D2E01B888C2D554135C9318BE7935041EA964F8E9E2D55417DCE1F5AE393504106AC6B1EA22D5541B4990B9CE49350412D3D55D3A82D5541A35F090FEA93504123C187AEA52D55419B4288C8EC935041526FF2A9A92D5541533D9AF9F09350418DF876A8B62D5541F3E02857FD93504166678DF3AF2D5541756F9B2406945041AE6C7BC2AB2D55416FB166BC0E9450416D25C25BA72D5541B2576C01199450410FC9EC649F2D55418F841B091E945041D13FCCBAA62D5541A21D6A741E945041C564B2B79D2D5541C64F074B1F9450416F255E07932D55419900E92D21945041887CE1DA8A2D554191E367E723945041ADAE7EB18B2D554187679AC220945041FAD0511B992D554175CE4B57209450412D3D55D3A82D5541A21D6A741E94504166678DF3AF2D55418F841B091E9450419F91C513B72D55415A187CA522945041E796B3E2B22D55415C77C88328945041A54FFA7BAE2D5541DE053B5131945041F6716991A72D5541742DFC893A9450413D775760A32D554192A164F84394504133FB893BA02D554167B192B94B94504173E3F6C39E2D55419E7C7EFB4C945041A84F96279A2D5541E6816CCA48945041D59EB444982D5541483D2A4B429450419ED3C802972D55415FBE0A903A945041BE13960B912D554141FA1C2C2A9450417897CD8B822D5541DB47A29425945041B5CBFFF7882D55410897C0B123945041E21A1E15872D554187679AC220945041861D95FC842D55410897C0B1239450418E3A1643822D5541E47F77E527945041B6C611947F2D55418170CD181894504160F515FA6A2D55410EF6A83B1594504149D677416C2D55414AA9769E0D9450415500C414612D55413C7C9F55E9935041CE4C743E2E2D5541CCB8E5B0A99350419AAC197BE52C55416DFB3E1097935041F33F801AC72C55416020250D8E93504124EE86C1B62C5541657F0D977F935041AEDB7DC49C2C5541998C601C75935041854AF863AA2C554132130ADF6F9350412D0B0808B42C55414DC9D9906D93504180EB0FDAB82C55410EE16C086F93504114B48434BC2C5541687FA9426B935041A9DB456DC52C55415E03DC1D68935041E464CA6BD22C55416E3DDEAA6293504152FBA1EFD42C55412DF624445E935041D58914BDDD2C5541FE47BA485A935041D947AD79E92C5541C71D8228539350419E7C258CFC2C554160A42BEB4D93504198BEF023052D554154C911E8449350411230E2AA102D554101E90916409350419F3A229D1C2D5541E6323A6442935041CEE88C98202D5541779C62E03F9350411AAC1324282D5541B784CF683E9350419C3A86F1302D5541650314753F9350418C008464362D55412E3828333E93504117AC77783C2D5541024856F445935041C52ABC843D2D55419E2D4C9546935041FCF5A7C63E2D55415F45DF0C48935041E39E24F3462D55418DF349084C935041CCA6EDFD542D554133550DCE4F9350418F1DCD535C2D55413DD1DAF2529350419D5733356B2D5541241B0B4155935041CFC336ED7A2D5541B884CF683E935041810014B6872D5541AE0802443B935041A891FD6A8E2D5541A48C341F389350414DF3C030922D55418777188F3493504176E3F6C39E2D5541B4C636AC3293504182BE10C7A72D5541EBF0D2204E935041ADAEE205A02D5541C81D82285393504111289D97B92D5541E4329EB8569350418B998E1EC52D554178FB12135A935041C4C3C63ECC2D5541713DDEAA629350417E1D254ED62D55414E6A8DB267935041A5AE0E03DD2D554125D9075275935041C581C34FEC2D55414E288AC3879350411D2064DEFC2D554166DEBDC999935041476FE64F0F2E5541C2DB46E29B935041AC89F0AE0E2E554160208961A2935041875753D80D2E5541D8322E0AA89350413DF3182B0C2E554124F6B495AF935041AA2AA4D0082E554182528A8CB7935041F22F929F042E554159C1042CC5935041A66C0B14FD2D5541DB4F77F9CD9350412D5A666BF72D55419C670A71CF935041253DE524FA2D55416DB99F75CB9350410A871573FC2D55411F97CC0BBE935041DF964334042E55415D20EDB5B693504185F806FA072E554163DE211EAE935041D9D80ECC0C2E554120381CD9A39350416CA18326102E5541DD911694999350413F526509122E5541486A555B909350413F526509122E5541B3429422879350417F3AD291102E55419CEBACFA7A9350413DF3182B0C2E5541BD5FB114709350410E45AE2F082E55413972F268619350411F7FB0BC022E55411AFE89FA5793504154EB4F20FE2D55417DB9477B519350419CF03DEFF92D554183777CE348935041755F543AF32D554183777CE348935041C38127A4002E5541F0AE078945935041088779C7102E5541CF3A036F5093504151EBB374122E554193102FA35D935041648402E0122E5541A14A95846C935041AEE83C8D142E55415387724D799350416E00D004162E554169DE597585935041CAFD581D182E55411ABCEA5F8C935041777C9D29192E55415B03A4C690935041219CF9AB282E5541CA997B4A9393504112C143FD332E5541269704639593504149EBDF714F2E554153E6228093935041A747B568572E554113FEB5F7949350417AF8964B592E55419FA9A90B9B9350415F42C7995B2E5541E14FAF50A5935041458CF7E75D2E554186B17216A9935041B422CF6B602E5541D015ADC3AA9350415A849231642E5541DCF0C6C6B393504187D3B04E622E5541151BFFE6BA93504122B9A6EF622E55417B945524C0935041996CFFB9622E554161DE8572C2935041B6811B4A662E5541F4A6FACCC5935041AD649A03692E5541235565C8C9935041A3E8CCDE652E55411C973060D2935041EBEDBAAD612E554166FB6A0DD49350413B102AC35A2E554195A9D508D89350412877DB575A2E554143281A15D993504155C6F974582E55419F25A32DDB9350415C842EDD4F2E554172D68410DD935041488C9393492E554133EE1788DE935041CBBB552E382E55419E25A32DDB935041DF544045242E55414A459B5BD6935041BBC3F23B092E5541C615D9C0E79350411C2064DEFC2D5541F981DC78F79350412BFB198DF12D5541EF64BF860E945041CB3FF8B7E32D55419F4250711594504101AC971BDF2D5541C6D339261C9450413618377FDA2D5541B5993799219450416B84D6E2D52D5541B7F883772794504117A4CE10D12D5541828CE4132C945041C4C3C63ECC2D554196847F5D32945041AFCB2BF5C52D55414C7FF5E24A945041DA1AAE66D82D55414162D8F061945041DF379301EA2D55412C6A3DA75B945041BD644209EF2D5541CE0D68B053945041A40DBF35F72D5541F281087634945041590835BB0F2E55411A5591C506945041369494F52E2E5541EBA626CA02945041C13F8809352E55417D104F46009450410C030F953C2E5541D7AE8B80FC9350412B777703462E55416FD6E864F1935041F8C8705C562E5541095D9227EC93504185D3B04E622E5541FFE0C402E99350418991490B6E2E5541904AED7EE6935041F169EC26792E55412055C91CDE935041C7D866C6862E5541603D36A5DC935041F686D1C18A2E5541BADB72DFD8935041E4ED82568A2E55414B459B5BD69350416D3A2A8C8A2E5541D5914291D6935041139CED518E2E55415EDEE9C6D693504194CB1341912E5541BADB72DFD893504115FB3930942E5541D6F08E6FDC935041CDF54B61982E5541BC3ABFBDDE935041EA0A68F19B2E55412AD19641E1935041D9D06564A12E5541101BC78FE3935041AEE09325A92E55417435D1EEE29350412F10BA14AC2E5541BE990B9CE49350419DA69198AE2E5541354D6466E49350410320E8D5B32E5541516280F6E79350414D842283B52E55414945FFAFEA9350414FE36E61BB2E55410A5D9227EC935041BE7946E5BD2E554153C1CCD4ED935041115A4EB7C22E5541F7C343BCEB9350419C0542CBC82E5541ED477697E8935041F0E5499DCD2E5541C815D9C0E79350417115708CD02E5541241362D9E99350417115708CD02E554178F369ABEE935041F902CBE3CA2E554167B9671EF4935041653A5689C72E5541F0050F54F4935041AD3F4458C32E55418CEB04F5F49350413C4A20F6BA2E55417BB10268FA935041F9A31AB1B02E5541E8A626CA02945041B69EC88DA02E554173521ADE08945041BD5CFDF5972E5541507FC9E50D9450418432C5D5902E5541818C80BF17945041920D7B84852E554127EE43851B945041C71ACE097B2E55415EB92FC71C945041A64719BD6B2E5541C43286042294504190F031955F2E5541A15F350C27945041783AFE8E4D2E55419BA100A42F945041A32AD0CD452E55410B972406389450416A0098AD3E2E554180A9C9AE3D9450419F0DEB32342E55416C6F2B765794504194D320FD102E5541D6A61A7068945041FBEDC607FC2D5541CE8999296B9450415F08D166FB2D55418FA12CA16C945041A96C0B14FD2D55415418A8A25F945041B1E83C8D142E554114303B1A61945041CDFD581D182E55418D42E0C2669450418E15EC94192E5541A03A7B0C6D94504121DE60EF1C2E55413620395696945041B047EDBF2E2E55417525EFCDBA9450418E3235843F2E554103EE2BD1E6945041CB1A0661522E554157CE33A3EB945041857464705C2E554176429C11F5945041C55CD1F85A2E55411F62F89304955041D39637DA692E5541D19ED55C119550412BD62736602E5541F82FBF1118955041F2ABEF15592E554127DE290D1C95504173DB15055C2E55415C4AC97017955041ECEDBAAD612E5541A2F06A610D9550412F94C0F26B2E554129DEC5B807955041C25C354D6F2E554198749D3C0A9550415625AAA7722E5541D9BB56A30E955041C4BB812B752E5541817C664718955041DF7151DD722E5541FA8E0BF01D95504193AECA516B2E5541B2891D212295504193AECA516B2E55414552927B25955041B0C3E6E16E2E55414552927B2595504168BEF812732E55418D57804A21955041749912167C2E55414C10C7E31C955041C61ACE097B2E55412FFBAA5319955041D0969B2E7E2E5541E59670A61795504176F85EF4812E554135B9DFBB10955041C1BBE57F892E55416208FED80E95504132B109E2912E5541EC54A50E0F955041F427E937992E5541BDA63A130B9550412535A011A32E55414594956A0595504103624F19A82E5541C72208380E955041C7377B4DB52E55410F28F6060A95504189AE5AA3BC2E55414494956A0595504175B6BF59B62E55416F8467A9FD9450416EF88AF1BE2E5541B52A099AF3945041E9697C78CA2E55419FD32172E7945041ABE05BCED12E554114282E5EE19450419DA6F5ECC22E5541C864A7D2D9945041B49E2CE2B42E5541E1BB2AA6D1945041E64C3389A42E554172255322CF9450414A673DE8A32E5541CDC38F5CCB94504130B16D36A62E554102302FC0C6945041962AC473AB2E55414A351D8FC2945041BDBBAD28B22E5541923A0B5EBE9450413F4A20F6BA2E5541B8CBF412C594504152E36E61BB2E554139FB1A02C8945041372D9FAFBD2E55415E2DB8D8C894504177150C38BC2E5541A074713FCD94504189AE5AA3BC2E5541048F7B9ECC945041BABB117DC62E5541586F8370D1945041663A5689C72E554173255322CF945041D98EC6C9D52E5541D0812819D7945041083D31C5D92E554176E3EBDEDA9450416EB68702DF2E55415E2DB8D8C89450416BB6EB56F32E5541188716E8D2945041D12F4294F82E5541A074713FCD9450417B4F9E16082F55413E77B0CFF3945041CAD0BD5E1B2F5541E4D87395F7945041396795E21D2F5541A64F53EBFE9450415D9932B91E2F5541790035CE009550419305D21C1A2F5541A8AE9FC904955041B479D6360F2F554121C144720A955041163594B7082F554119A4C32B0D955041675703CD012F55417DBECD8A0C955041DBAB0FB9FB2E554112E68EC315955041591D9DEBF22E5541B2891D21229550411C35CC0EE02E5541A14F1B9427955041F6A3E259D92E5541ED12A21F2F9550418ECB3F3ECE2E554138D628AB369550414B253AF9C32E5541036A89473B955041B39E2CE2B42E5541A9CB4C0D3F955041CCF5AFB5AC2E554136D68CFF4A95504187F05D929C2E5541B864FFCC53955041605F74DD952E55419F0D7CF95B955041F069507B8D2E5541C69E65AE62955041386F3E4A892E5541C0E030466B955041C9D866C6862E5541D4D8CB8F71955041386F3E4A892E55413235A1867995504179B6F7B08D2E55417EF827128195504196CB1341912E554109A41B26879550410462EBC4932E554136F33943859550410EDEB8E9962E5541F24C34FE7A9550417199766A902E554167A140EA74955041F069507B8D2E5541265A87837095504181D378F78A2E5541FFC89DCE69955041386F3E4A892E5541197F6D80679550416F3A2A8C8A2E55415967DA086695504154845ADA8C2E5541757CF69869955041D5B380C98F2E554177DB42776F955041A86462AC912E55418157109C72955041B2E02FD1942E5541D537186E7795504121770755972E554121FB9EF97E955041EB0A68F19B2E5541FE274E0184955041BEBB49D49D2E554164A1A43E89955041D154983F9E2E5541E5D0CA2D8C955041B69EC88DA02E55419DCBDC5E90955041A564C600A62E5541707CBE4192955041F944CED2AA2E5541CA1AFB7B8E955041A7C312DFAB2E55413F6F076888955041F944CED2AA2E554107A41B26879550419FA69198AE2E55413E6F0768889550418E6C8F0BB42E55411120E94A8A955041B5FD78C0BA2E5541B781AC108E955041C9F5130AC12E5541AF642BCA90955041306F6A47C62E5541FF869ADF899550418C6CF35FC82E55419FCB780A7C95504129B135DFCE2E5541DFB3E5927A9550417B32F1D2CD2E5541142085F675955041560054FCCC2E5541498C245A71955041F2E5499DCD2E55416442F40B6F9550413C4A844ACF2E5541A52A61946D9550417574BC6AD62E55419BAE936F6A9550412B1082BDD42E55417E9977DF66955041870D0BD6D62E554134353D32659550419289D8FAD92E5541F3ED83CB609550410020B07EDC2E55414751FA6B61955041F8EDD6CCDE2E554110F1858463955041C28D62E5E02E554110F1858463955041756D8CD4E32E55413191984262955041138D549AE72E55419371D07C5E95504108ADA305E82E55410B126AE059955041BC8CCDF4EA2E55419371D07C5E955041658C464FEE2E5541EA7157225B955041F7CB5D80F22E5541AF32C796539550416A6B62F3F72E5541681386764C955041BB6A54A8FE2E5541D5D36E454895504195EB2546F62E5541F6738103479550418A0B75B1F62E55414D7408A9439550411D4B8CE2FA2E5541E6B4B4CA3D9550414EAA6BD9022F55414895EC043A95504189E9FB640A2F55411235781D3C9550410669B16C0F2F55418FB42D25419550416E28054B152F55412DD4F5EA44955041F6876BE7192F554173F3360B4C95504147875D9C202F554178D252AF559550416D068CFE282F5541B411E33A5D955041EA8541062E2F55412B9003526C9550410425BFD3362F5541E34E49E578955041D9A4FB80382F5541F8EC31C28B95504177C4C3463C2F55419885AA46D4955041030346874A2F5541418523A1D79550412F8309DA482F5541F5644D90DA9550419C43F2A8442F554104241AC9E3955041E0C709BE1A2F5541C3E3F44CE69550416E28054B152F55414063AA54EB9550411C2913960E2F55410F04CB5DE3955041C049704C082F554156230C7EEA955041078B2AB9FB2E55410903366DED955041E7EA17FBFC2E554191629C09F2955041BB6A54A8FE2E554119C202A6F6955041078B2AB9FB2E554160E143C6FD9550418A0B75B1F62E55416BC1F45AFD95504102AC0E15F22E5541CB7C22240296504159F27632E62E554111A3D3E102965041B50C50C0E12E5541B9EC684A069650416115B7F8DB2E5541772A26830496504140B41515DB2E5541F04132FE01965041A73B68B6DC2E554169593E79FF95504100976F74E12E5541EB3827E1FA955041C841A6C0E52E5541F40004CEF89550418BE3D1EFE22E5541840C3819F1955041667925EFDA2E5541BC6101CDEC955041996A80ACD72E55410188B28AED95504157A83DE5D52E554130BA3B78F3955041529F32C8CE2E5541E7D4B8EAFB95504128D117D1C72E5541041C25250E965041C96C05F6BB2E55414F4BE1FF1596504100C2CEA9B72E554159B85A131C9650419E9EEAFEB42E55410102F07B1F96504175756C2EB62E5541B677D0C71F9650416749214BB92E5541C8078AA11B965041EE3115D0BB2E55417410F1D915965041262C7BAABF2E5541D68E385E10965041149CC1D0C32E554178CFC2A90C9650414C9627ABC72E55415CD28FBC0A9650413E6ADCC7CA2E5541041C25250E96504119A5CCEDCA2E5541823C3CBD12965041010C08F7C72E554187A0AAB3119650415FCB7DABCB2E5541663F09D01096504107151314CF2E5541ED27FD5413965041C552D04CCD2E5541F794766819965041BCE55639C72E55411DFF226921965041B278DD25C12E554114DCE2A22B965041751A0955BE2E554106B097BF2E96504183465438BB2E5541DD8619EF2F965041BA9B1DECB62E5541CFFF6A323B96504166FFE7FDA82E55411EEEF8DC39965041243DA536A72E554193A1966138965041F6AFB86FA92E55413A468FA333965041BE5AEFBBAD2E55419BC4D6272E9650419995DFE1AD2E5541CEB531E52A96504182FC1AEBAA2E5541271139A32F96504129A1132DA62E5541101D11D33496504161F6DCE0A12E5541CFFF6A323B96504199F042BBA52E554198AAA17E3F965041D54E178CA82E55410E03DC2946965041BDF680C5AE2E554195EBCFAE489650412D46B053AE2E5541912CFEDE5196504169FFE7FDA82E55418D6D2C0F5B9650417C8FA1D7A42E554118BA8E8A5C965041772B33E1A52E5541C56792E95E965041A65DBCCEAB2E55415A7CD1515E96504161DCA737B32E55417679043F60965041AB66C7EBB22E5541062AD5B06096504178756C2EB62E55418D12C93563965041D1D073ECBA2E5541278B769461965041E405CAECBE2E55417F41E12B5E9650414FF18A84BF2E55418D6D2C0F5B965041DB3DEDFFC02E554183A54F225D965041D6D97E09C22E5541195F2BB164965041B1146F2FC22E5541A0471F366796504138FD62B4C42E55417B820F5C679650412AD117D1C72E554156BDFF81679650417EC8B098CD2E55419CE3B03F6896504163701AD2D32E5541AAB498496D965041DC2CC373D92E55415BC60A9F6E9650410B5F4C61DF2E5541808B1A796E965041F46A2491E42E5541648EE78B6C9650416E27CD32EA2E55419F884D6670965041130DF4A4EE2E554196C0707972965041FC18CCD4F32E55418DF8938C74965041C5689F47002F5541673384B274965041F9A333520D2F55411845F60776965041F2CA2CD9272F5541220DD3F473965041A92FE398402F55412D391ED87096504112B7353A422F55414991B49E6A965041D6FDFD8F472F55411A5F2BB1649650410A94F5734C2F5541993E141960965041E76A77A34D2F55411615F263549650418FB40C0C512F55417CF7A7DE4D965041D5DABDC9512F55415F55D8CA439650411B016F87522F5541AE9EC94E3A96504186EC2F1F532F55411DEEF8DC39965041C34A04F0552F554134E220AD349650419D85F415562F55415E0B9F7D339650415CC3B14E542F5541CE5ACE0B33965041A74DD102542F5541F27A41BF2A965041EC7382C0542F5541E90DC8AB24965041B9822703582F55415DC1653023965041200A7AA4592F55416125D426229650417401136C5F2F55410002F07B1F9650413848DBC1642F5541BE3FADB41D9650415EB287C26C2F5541BADB3EBE1E9650418880A2B9732F55416689421D21965041B34EBDB07A2F554154F988432596504151D0752C802F55419F28451E2D96504110B3CF8B862F554150DF539A36965041CB31BBF48D2F5541CA9BFC3B3C965041737B505D912F5541192F270D43965041A163A0FD862F55415C8FC2454696504152B81EA5882F5541CDCCCCCC4F9650417B14AE078E2F55415C8FC2F5519650419A9999998B2F55416666667659965041E17A14FE8F2F554185EB5148589650417B14AEB7912F5541A4703D0A6C96504185EB51C89C2F55411F85EBF16B9650410AD7A3F09D2F5541C3F5289C7D965041F6285CDFA72F5541A0A656BD81965041B03EF1F6A52F554194CEFFFF84965041214322A1A02F554160B80AAD9F965041A81C34979B2F554194A9BC75B19650415BA00725972F5541F16963A7CA96504195FDECA88D2F5541EEB3C949D89650414981C036892F55414177E6ECED96504161316EB1822F5541071A0169F796504114B5413F7E2F5541AB0FE4DB0397504185B972E9782F55417BAF88E6109750415AEA7D80712F5541F91C6721279750415CA017DE632F5541023F2481319750416A533BCA592F55412A334CBB3F975041BC60CEC8492F55412A334CBB3F97504100BB3DDB432F55412036C22C3C9750417BBCF813422F5541360BA3783C97504171BF6E853E2F5541145E6B6F3F975041739A3BB4372F55413530D64943975041C3CC01842E2F5541492AEA664A97504113FFC753252F5541AC7BF7244F975041D35AF29E1D2F55410FCD04E353975041C85D68101A2F5541843D598F66975041E00D168B132F554140E3E97C6C975041AC419793082F55410600000092DBD99D88965041E8B21838632F55416274E40486965041B52145C9622F55412FE3109685965041BB7501755E2F55417762861E10975041CF9B144E4F2F5541AAF3598D109750412F6AFF7F542F554192DBD99D88965041E8B21838632F5541B0000000A012F4703E975041A588DB60482F5541195BAE27309750415FD1F418572F5541F8C50FBC22975041B52145C9622F5541A49F9DE114975041DD0AA0E06B2F55411DE85798069750419ED1531A742F55414B883AF6E39650419329DBC27C2F554176FE3E7EC3965041EDA30949862F5541F8C493B6AE96504119E1200C8B2F5541D4051775A396504119E1200C8B2F5541E3D76DA298965041B4BE792E8A2F5541F4D3A2A58B9650411F35DDB7862F55418100169C809650411F23F4F97C2F554193906C62789650413F30E188742F5541BD0730BC77965041921E683C732F554110F6B66F76965041CF472D44762F5541C64F5B9F7396504139FB75A3702F5541C64F5B9F7396504188B491716B2F5541E249883073965041BB7380AE662F55415FAFD23D71965041B109AAE35E2F5541A520C328709650411688875D552F5541193EE25272965041F02384014E2F554164E43D2375965041EBEE181C4A2F55415667A75A759650419B135266432F55411E734D38769650416B45783F342F5541AF8A99F37796504165EE6172242F554108F2E15B92965041545E0BAC2C2F55418A6AEC6688965041408A5E161D2F55419BFA422D809650415E75A0BD082F5541F830F5C37A965041BD9C676AEF2E5541017920A7769650419F5EE409D82E554134380FE471965041F12AC0D5CA2E55417252E901619650410ED2ABAD9E2E5541DD0532615B965041FAFDFE178F2E5541E118F25E53965041EA5EBD67832E5541901B80C140965041CC203A076C2E5541E6FA1B8B2B9650413EFA0262562E5541ABC26B99149650416A62DBD1412E55414500385006965041C02EB79D342E5541C89AED42089650418305F295312E5541C4DA6EFE3B965041960A35FD602E554173303E1A559650416BC40775812E55418B17ABAD5C965041F7C893328B2E5541DBF271636396504127976D599A2E5541916EC17A6C96504147D5F0B9B12E554142B5A5AC7196504123B5432DC22E55417161D4EB7496504169263418C12E5541AE8A99F3779650413B9CB0C0C92E554147EA10927596504194BFA259CC2E554106AE8B8C7A965041FC81D6A2DA2E55415FD17D257D965041CBE4924DEB2E55416406E90A81965041B00C11A4F72E55416406E90A81965041139AD907022F55413FC490968596504122391BB80D2F55410D05A2598A965041EC666C7D1A2F5541CCC81C548F96504186E88E03242F55418B8C974E94965041F2BD824A2A2F554196F66D199C965041239F1C6F312F5541E6D134CFA2965041F0DF2D32362F554172D6C08CAC965041BE203FF53A2F5541CBF9B225AF965041916525CC232F55416DF49660D49650413A64DE1A2D2F5541E211B68AD696504164DBA1742C2F55415851809CE49650418F7410B6372F5541D6D87591EE96504198BC3B99332F5541C73934E1E2965041227D7187252F5541BF13B4E5F2965041BFEFA8231B2F554142AE69D8F4965041ED792C7B122F5541C4481FCBF69650410974590C122F55416D47D81900975041BABA3D3E172F55413CAA94C410975041068344F6252F55415DD92C3B1497504187FB4E011C2F554117683C5015975041584F20C2182F554157A4C15510975041998BA5C7132F554117683C5015975041BECDFD3B0F2F55413897D4C618975041C3026921132F5541608759D533975041272A30CEF92E55417EC5DC354B975041BA32919FE72E55413854EC4A4C9750416B57CAE9E02E5541573F2EF2379750414806878BD12E5541E1FF63E0299750412E2E05E2DD2E5541CE4D6232269750410DFF6C6BDA2E55410C99D221359750410BDDC183CE2E5541967BB3F732975041860DA1ABC82E5541E434CFC52D975041C74926B1C32E5541D6B738FD2D9750410786ABB6BE2E5541F2B1658E2D975041CB5CE6AEBB2E55410FCE3D0739975041C0F20FE4B32E55413E7A6C463C975041438DC5D6B52E5541F0C05078419750410A77C0CCAA2E5541979D5EDF3E975041E9472856A72E5541A0E589C23A9750415830DC9AA52E5541C527E23636975041D160BBC29F2E5541766EC6683B97504186BA5FF29C2E55418A4273FE4A97504173085E44992E5541919989CB5A975041F06DA851972E55417AD4C71F5F9750419EA1CC85A42E5541D2F7B9B8619750412DEAAE12C62E55411456EAA56897504165DE0835C52E55412B501737689750416EF23686082F554175D4C71F5F9750410C87190A0A2F55414506EEF84F9750414068B32E112F5541143814D240975041B172125B1B2F5541088AE73721975041027084F82D2F5541C5090C630E9750410CDA5AC3352F55412D57530BE5965041BB42EADC462F5541D4336172E296504168546329482F554184589ABCDB9650415AD7CC60482F554191B3859DCF965041844E90BA472F5541A443DC63C7965041D53C176E462F5541CF8909ECA6965041F44904FD3D2F5541FD138D439E965041198C5C71392F55412EB1D0988D965041F13644FF452F5541457692448996504120E3723E492F55418BE7822F88965041814E90BA472F55410C608D3A7E965041CCF4EB8A4A2F5541FEE2F6717E965041B52F2ADF4E2F5541B43C9BA17B96504138CADFD1502F5541072B22557A965041D65EC255522F554131A2E5AE79965041B651D5C65A2F55417C48417F7C9650412C919FD8682F554104608D3A7E96504112014912712F5541E01D35C682965041C3472D44762F554183E7822F88965041F2F35B83792F554110EC0EED91965041AD826B987A2F55418E7304E29B965041AD826B987A2F5541CDBE74D1AA965041DF415AD5752F55413DC9D3FDB49650412EFB75A3702F5541632DD759BC965041D5D7830A6E2F55418EC6459BC7965041FF4E47646D2F55416FB9580CD09650413743A1866C2F554120003D3ED596504145C0374F6C2F5541EC1EA319CE965041D5D7830A6E2F554123F15154C1965041207EDFDA702F55413481A81AB9965041E88985B8712F554138946818B1965041A84D00B3762F5541F100CD45A6965041CEB1030F7E2F5541323D524BA196504163FEBAAF832F5541F5138D439E965041303FCC72882F5541FF7D630EA6965041F94A7250892F5541EDED0C48AE96504122C235AA882F5541EDED0C48AE9650411D8DCAC4842F5541E8B8A162AA965041D81BDAD9852F5541CDBE74D1AA965041B7EC4163822F554179D0ED1DAC9650416C46E6927F2F5541620B2C72B09650417AC37C5B7F2F554167409757B4965041884013247F2F554119877B89B99650415994E4E47B2F5541103F50A6BD9650410071F24B792F5541601A175CC4965041A84D00B3762F5541400D2ACDCC965041D1C4C30C762F554120003D3ED596504125B34AC0742F5541FCBDE4C9D99650416B243BAB732F5541B11789F9D69650411C6B1FDD782F5541AFF5DD11CB965041C0346D467E2F5541BD7274DACA96504126D5F5A7802F55416A84ED26CC965041E06305BD812F5541CF550C5AEE9650417059A690772F55413F3EC09EEC965041949BFE04732F5541B35BDFC8EE9650418F66931F6F2F5541E73C79EDF5965041C75AED416E2F55412ADFFFA914975041E967DAD0652F55414B0E982018975041A3F6E9E5662F5541EED7E5891D9750419EC17E00632F55416C3D30971B97504129A45FD6602F55418E8E73F52A975041FE0AF194552F5541C682CD172A975041447CE17F542F5541F71F116D19975041C303D7745E2F5541B08C759A0E975041BABBAB91622F554161B1AEE4079750413C566184642F554161B1AEE4079750419044E837632F55412F146B8F1897504116F25D285D2F55411FA6BFB02C97504131CADFD1502F5541B0DFB6533A975041679C8E0C442F554141F7020F3C97504191135266432F55418C9D5EDF3E9750413E25CBB2442F5541A012F4703E975041A588DB60482F5541360000009673759CD1965041DD102FF72A2F55419B878928B596504158460F760F2F5541C8D19AD7B4965041D44AF742192F554118967BBBB09650418A733CFF172F5541E07B2892AD965041B6B343E8252F554114B35FE1A7965041933974B3292F5541695A5C9FAC965041F99DD88B2C2F5541695A5C9FAC9650417B8FE6F8302F55416F47823FA79650417B8FE6F8302F554192C15174A39650419E09B62D2D2F554148EA9630A2965041504FDF0F232F5541A37EB98EA1965041E5075F5D172F5541BF0B6323A39650419E3AAEDF072F5541E6684E32A8965041A427D47F022F5541609424EB9A965041A631DE45F42E5541A588C3549396504147BA9F0DEC2E554189FB19C091965041AD1E04E6EE2E5541EF5F7E98949650410C96421EF72E5541DFA2167E969650416B0D8156FF2E55418AFB19C091965041B5E43B9A002F554119C7736D8B965041634749A2ED2E5541B3620F9588965041518AE187EF2E55412F67F761929650419D3AAEDF072F55412F67F7619296504174D3B80A112F5541639E2EB18C96504181AD044B062F55413C4143A287965041613D3FDCFB2E55410327F07884965041D37BEFF4F32E55414DFEAABC859650411F5DB4FEE62E55414711851C8B965041370742B9DF2E5541EC7C62BE8B9650412C37003FDC2E554154EBD05C8096504183E806C3D22E554165A838777E96504183E806C3D22E5541375E27C87E9650414FB1CF73D82E5541FF43D49E7B9650414FB1CF73D82E5541AA9CD7E07696504112B46070CC2E554172518C05999650414FE2C725B32E554199AE77149E965041441286ABAF2E55410AE31D67A4965041050B0DE2B12E55419E9193EEA6965041C6039418B42E5541DCC9046A7F965041D3ACE7A6CE2E55410EF731F387965041332426DFD62E554135541D028D965041CDBFC106D42E554152E1C6968E965041AA45F2D1D72E554167814A8B95965041B1321872D22E5541C2156DE994965041C6D29B66D92E5541011DE6B292965041D685F9BAE52E5541E97258F8999650412440D0D8EF2E5541A861D568AA9650416B0D8156FF2E554192B747AEB1965041A427D47F022F5541646D36FFB196504105A91C7EFC2E554180FADF93B3965041613D3FDCFB2E554141F366CAB5965041A80AF0590B2F55411A658309D6965041817C0C992B2F55419673759CD1965041DD102FF72A2F55415E0000000180F3D61097504133C2357B212F55419B1B8FFE0D9750418A733CFF172F5541467492400997504158460F760F2F5541038AFD9C02975041AFF715FA052F5541487E9C06FB965041C7A1A3B4FE2E554160282AC1F39650410C96421EF72E554116516F7DF2965041E91B73E9FA2E55414F6BC2A6F59650413EC36FA7FF2E55410B812D03EF9650412C06088D012F5541898F1F96EA965041CB84BF8E072F5541F6E0A90EE896504158460F760F2F554134E822D8E59650418A733CFF172F5541EB106894E496504195437E791B2F5541CE83BEFFE2965041409C81BB162F5541D953007AE6965041039F12B80A2F5541898F1F96EA965041D171E52E022F5541FAC3C5E8F09650417CCAE870FD2E5541BBBC4C1FF3965041672A657CF62E554183A2F9F5EF9650415C5A2302F32E554134E822D8E59650412136C612FE2E554173EF9BA1E3965041D75E0BCFFC2E5541AC09EFCAE6965041FAD8DA03F92E554139CB3EB2EE9650413FCD796DF12E554159CA2EB1EB9650419EF2E036EF2E5541BEDFA6AEE2965041BB9587F6F92E5541EB0E46D6DF965041981D227DF92E5541DFE6CEADDF965041228D7AE8F72E5541CDE998CBE9965041FAC15C00ED2E554190B00787E59650411CC984FFE92E5541AED5B491DB965041AF6D10CEF92E5541456D8425DA965041981D227DF92E5541E1570C28E39650418FE8EE19E82E5541AD647717D896504180DEFCFCE02E554156F97C8DCC965041F55DDBC0FA2E5541EC904C21CB96504147761DDCFB2E554160B0B63BC9965041512D578AF82E5541EC904C21CB965041670C0861F52E55419CE94780CD965041B7B30C02F32E554138D4CF82D69650413AEE310AE02E5541BF61ADF9CD9650412C557D67DC2E5541768F6712C69650411394519CD82E55410945BCB1BD9650417B8B448ED62E5541066341BDB696504129730273D52E5541276A69BCB3965041B4E25ADED32E554104F20343B3965041791A0714D32E55418DF01E34AE96504165AC93B7D92E5541C6473584AB965041633B563DD62E5541DD9723D5AB96504162CA18C3D22E55412CCEEAFBA59650412BE43FEDD82E554194C5DDEDA3965041F01BEC22D82E5541B9AE80E1A79650412702C5F8D12E5541A3CFCF0AAB9650415EE89DCECB2E554181C8A70BAE9650415B0623DAC42E55419918965CAE965041B7D59EA3C22E5541FD2D0E5AA59650410E5262FEB52E5541A15E9290A796504199C1BA69B42E55415E504292AD96504134AC426CBD2E5541A8228879B596504153422DF1B62E5541156D33DABD965041B757A5EEAD2E5541741E2A98C29650414056C0DFA82E5541AFE67D62C396504188B7C84CAD2E5541A52F44B4C69650414056C0DFA82E55410E987420C896504194DF3F75AD2E55419907CD8BC6965041FE4770E1AE2E55410C2737A6C4965041F50174ADB52E55412CBD212BBE965041B4646129BF2E5541861B607AB896504173C74EA5C82E554190D29928B596504119691056CE2E55414AE2CE35B4965041A549A63BD02E554185AA2200B59650413D52B349D22E5541118BB8E5B69650418F6AF564D32E554159ECC052BB965041BE0AD206D42E5541F5D64855C49650413FC3F0C3D52E55414960C8EAC8965041B4539858D72E5541E3D91273CE96504158841C8FD92E554159DBF781D39650411F2D063FDC2E5541E8BB8D67D596504142A56BB8DC2E5541FAA7FA78E39650419FF6EDCCC52E5541ADE270CCEC965041C650CE3ACD2E5541BE6E6934DF965041E8462D69E22E55412948D71AE4965041E9B76AE3E52E5541DF64C862F4965041BF7B0F81D72E5541044E6B56F8965041B5C4D5D2DA2E5541174BA138EE965041C4CEC7EFE12E554136E18BBDE7965041D3D8B90CE92E5541D63C513AF496504112F4C545F42E5541DB8F09A9FE9650412F976C05FF2E55414BBC2FFE0D97504164FB3E900D2F55417CCD491A1297504189E4E183112F5541CC744EBB0F97504121EDEE91132F55413E237B5B0A9750414183D9160D2F5541D99CC5E30F9750411836B5E3162F55417DCD491A12975041CB702B37202F55410180F3D61097504133C2357B212F5541050100002BA43E2E299750413108AA7F022F55411072D5E82197504113F4C545F42E554124E048451B9750413BD0ACFEE62E5541FFF6A55117975041E7462D69E22E5541356C41AD0D975041F08C299DDB2E5541913BBD760B9750411DBCC8C4D82E55413DB23DE1069750413D52B349D22E55414216BF20F99650417BFC8108DA2E55411D2D1C2DF5965041798B448ED62E5541BE7B256FF09650412502C5F8D12E5541319B8F89EE9650414709EDF7CE2E5541319B8F89EE96504122204A04CB2E55419EE53AEAF69650412CD783B2C72E5541C9A39C97F0965041AB1E65F5C52E5541008A756DEA965041341D80E6C02E5541D64D1A0BDC965041D1890E34B52E5541468B0931D39650419F07B79DAD2E554122A2663DCF9650411CDE5A66A82E55419F780A06CA965041AF93AF05A02E5541C17F3205C7965041B94AE9B39C2E5541E2865A04C4965041AF93AF05A02E5541CB366CB3C3965041332E49B7A82E55414A7E4DF6C19650411CDE5A66A82E55414A7E4DF6C1965041C6E39D56A02E5541F9D64855C4965041E67988DB992E554183D56346BF96504174CB5B3B9F2E5541753CAFA3BB9650416A14228DA22E5541EF30D877AF96504141C7FD59AC2E55416B963EC6A6965041213113D5B22E5541022E0E5AA5965041ACA06B40B12E5541141A7B6BB39650416C855F07A62E5541D37C68E7BC9650413A0308719E2E55414A7E4DF6C19650414E717BCD972E55412706E87CC19650415828B57B942E5541A64DC9BFBF965041C01FA86D922E5541C754F1BEBC965041CB471F96922E554117FCF55FBA9650419E18806E952E554168A3FA00B8965041424904A5972E55415A0A465EB49650411238EA88932E5541A26B4ECBB8965041BEAE6AF38E2E55411DD1B419B0965041C965A4A18B2E554153465075A696504102BDBAF1882E5541DAD32DEC9D96504175DC240C872E55419001E80496965041AE333B5C842E5541EB5F265490965041C412EC32812E5541A3FE1DE78B96504159397E4C7C2E5541D02DBD0E8996504163F0B7FA782E5541FC5C5C368696504179CF68D1752E5541707CC6508496504132DF9DDE742E554150F7A49C7296504142D8C62A942E554171FECC9B6F965041C11FA86D922E55417A3300FF80965041600E3D06722E554123C8057575965041BA6C7B556C2E5541B7EE978E70965041D32DA720702E55411D754D066B9650410C85BD706D2E5541E8107B7B5C9650417F935EBA832E5541A0AF720E58965041C412EC32812E55416E1C52A76896504120F330CD662E5541C23494C269965041A8628938652E5541F8A92F1E60965041172F3BE4582E5541485134BF5D965041718D7933532E554137D604285396504185FBEC8F4C2E5541CA8B59C74A96504102D29058472E5541D1D155FB43965041F638DCB5432E5541FD8FB7A83D9650413BB8692E412E554179F51DF734965041740F807E3E2E5541F83CFF39339650418B5F6ECF3E2E55419AFC45F631965041184004B5402E55411651E37341965041FB8B94244E2E554192A580F150965041D3AFAD6B5B2E5541EE74FCBA4E965041484055005D2E5541EAA34A972F96504181A83421422E5541A4B37FA42E965041184004B5402E5541256C9E6130965041E72EEA983C2E55410658BA2722965041867DF3DA372E5541219BEC3D11965041EC03A952322E554103870804039650416ADA4C1B2D2E55414977D3F6039650419709EC422A2E5541962B94D21296504154FB9B44302E55416498736B23965041FA9C5DF5352E5541988B087C2E965041135E89C0392E55416CCDA6CE34965041B51DD07C382E55414BC67ECF37965041EE74E6CC352E55413476907E379650410E0BD1512F2E55413205530434965041997A29BD2D2E5541E0EC10E932965041528A5ECA2C2E5541D04F4FB0589650417E48C077262E55412C1FCB795696504139C932FF282E554117B1571D5D965041749186C9292E554148C2713961965041227944AE282E5541DF5941CD5F96504120080734252E5541A6022B7D62965041DA173C41242E55410F6B5BE96396504164F8D126262E55419C4BF1CE65965041CE600293272E55411E754D066B965041729186C9292E5541C4160FB770965041E7212E5E2B2E5541B0A89B5A7796504121EA81282C2E5541D6027CC87E9650410A9A93D72B2E554114AD4A8786965041B88151BC2A2E5541A18DE06C88965041D98879BB272E55418086B86D8B965041207944AE282E5541161E88018A965041B88151BC2A2E55419E9A9CA799965041F79C5DF5352E5541772FF368AA9650414DA8E3D5252E554185C8A70BAE9650414CA8E3D5252E5541D7E0E926AF965041F249A5862B2E5541A7CFCF0AAB965041D0427D872E2E55416A963EC6A696504197EB6637312E5541744D7874A3965041263D3A97362E5541E86CE28EA19650413FFE65623A2E5541E86CE28EA19650416276CBDB3A2E55410C6341BDB696504115753718522E554199320ED2D09650418C6553566F2E5541A6CBC274D4965041530E3D06722E55419E85C640DB965041D1E4E0CE6C2E554121AF2278E096504144044BE96A2E5541C5DFA6AEE296504123FD22EA6D2E5541E6E6CEADDF9650410D1E7213712E55419E85C640DB965041D4C65BC3732E5541EE2CCBE1D8965041557F7A80752E55417C7E9E41DE9650418A01D2167D2E5541011938F3E69650411DB726B6742E5541CD14DA11F49650410C3CF71E6A2E55417A09543104975041CE20EBE55E2E5541DB2B88690C97504163477DFF592E5541EA357A86139750419C9E934F572E5541A99867021D975041844EA5FE562E5541CCFF03AB359750410507C4BB582E5541ACE712DB5097504190E759A15A2E5541ACE712DB509750413418DED75C2E55414EB8226837975041A73748F25A2E55417A874DE6189750411B57B20C592E5541BC959DE41297504149F78EAE592E5541DE9CC5E30F9750419B0FD1C95A2E5541DC2B88690C97504111A0785E5C2E5541AC1A6E4D08975041B5D0FC945E2E55418731CB5904975041590181CB602E554104086F22FF9650414F4A471D642E5541D014DA11F4965041BB94F27D6C2E5541FA61FE44EA965041118FAF8D742E5541F50E46D6DF965041FE9179AB7E2E55418F88905EE59650413414D141862E55415913F502EF965041458F00D9902E5541E9D505DDF7965041A6B13411992E55410EBFA8D0FB965041EE123D7E9D2E5541D5679280FE9650414EC4333CA22E554138FB03330A975041EB30C289962E55410BCC640B0D9750416D5A1EC19B2E5541A838F358019750410BB6E33DA82E554111A123C50297504147EF7482AC2E5541C1F91E2405975041F5D63267AB2E5541D8490D750597504181B7C84CAD2E55415891EEB703975041DFF78190AE2E554159022C3207975041BF61970BB52E55417EEBCE250B975041ED903633B22E5541E853FF910C97504156F9669FB32E5541DABA4AEF089750419E5A6F0CB82E5541680C1E4F0E975041E82CB5F3BF2E5541941D386B12975041E70E30E8C62E554167EE9843159750415F815271CF2E554167EE984315975041CA5AC057D42E5541968E75E5159750419103AA07D72E5541B906DB5E169750411EE43FEDD82E55413ABFF91B189750415A1DD131DD2E5541AEDE6336169750417D9536ABDD2E5541E6357A86139750414C13DF14D62E5541C3BD140D13975041F8895F7FD12E5541A045AF9312975041DFC833B4CD2E55411F8D90D61097504197672B47C92E55416F3495770E97504143DEABB1C42E5541EE7B76BA0C9750411EF508BEC02E5541B242E575089750413E8BF342BA2E55419981B9AA04975041A411A9BAB42E5541E928BE4B0297504174008F9EB02E554145F8391500975041728F5124AD2E5541DC8F09A9FE965041701E14AAA92E5541C53F1B58FE965041B29DA122A72E5541395F8572FC965041766410DEA22E55417DDE12EBF996504174F3D2639F2E5541DAAD8EB4F79650418AD2833A9C2E5541E464C862F49650417D39CF97982E554190DB48CDEF96504140003E53942E5541EA39871CEA9650418F36057A8E2E5541DDA0D279E6965041829D50D78A2E55415A777642E1965041D0D317FE842E5541AA1E7BE3DE965041C33A635B812E5541642EB0F0DD96504165FAA917802E5541B4D5B491DB9650419229493F7D2E55413ED4CF82D6965041F8AFFEB6772E55413C639208D39650413D2F8C2F752E55419F07CD8BC696504191A742F4912E5541297725F7C49650414AB77701912E5541AF82FC22D1965041B04EF649732E554183E62C17A7965041E738DCB5432E5541022E0E5AA5965041DC10658D432E554116AD4A87869650411546E93B712E55418ACCB4A184965041C32DA720702E55416A25014CA3965041C4C0763C432E554153D512FBA2965041DA9F2713402E5541C6F47C15A19650411E1FB58B3D2E554143CB20DE9B965041CE77B0EA3F2E554135326C3B9896504159E708563E2E554162610B6395965041639E42043B2E55419D295F2D96965041612D058A372E554161F0CDE8919650413D446296332E5541F7879D7C90965041F65397A3322E5541E037AF2B90965041640F807E3E2E5541D680757D939650412BB8692E412E5541A951D655969650411F90F205412E5541874AAE569996504115D9B857442E554158AAD1B498965041E8A91930472E5541875B772781965041938DCA7E6F2E55410BF610D989965041FE663865742E5541C5E7C0DA8F9650413D1107247C2E5541A4E098DB92965041E0D04DE07A2E554182D970DC959650410E712A827B2E554103928F9997965041B2A1AEB87D2E55413CE9A5E99496504162FAA917802E5541EAD063CE93965041919A86B9802E55416CFABF059996504135CB0AF0822E55412B5DAD81A2965041FC73F49F852E55413CD8DC18AD965041B8F46627882E5541FCAB070FBA96504117A65DE58C2E55410945BCB1BD965041215D9793892E55410BB6F92BC1965041C58D1BCA8B2E5541440D107CBE965041A386F3CA8E2E5541BB0EF58AC3965041E0BF840F932E554147EF8A70C596504155502CA4942E554101EEF6ACDC96504110E267FC7E2E554148DEC19FDD965041C03A635B812E5541870A97A9D09650412EF64B368D2E55418EDF5563C6965041334904A5972E554193A34B4CD4965041E3AEBB3EAB2E55410834F3E0D596504187DF3F75AD2E55411E02DBE6EA96504178C48487BE2E55414E13F502EF9650413F6D6E37C12E554127A84BC4FF965041AA57A5EEAD2E5541717A91AB079750413B8BF342BA2E554138237B5B0A975041544C1F0EBE2E55410430E64AFF9650414E776054C82E5541FCE9E916069750410B691056CE2E5541C50311410C97504103231422D52E55412E6C41AD0D9750410494519CD82E55416BA5D2F11197504140CDE2E0DC2E5541041F1D7A179750417D067425E12E5541299782F317975041119E43B9DF2E5541BF2E52871697504190E524FCDD2E554140E770441897504184BDADD3DD2E5541FB67E3CB1A975041E46EA491E22E5541B7E855531D97504172C077F1E72E5541205186BF1E975041FEA00DD7E92E5541D31ABF9824975041AA244A7CF62E5541059D162F2C975041542A8D6CEE2E5541EFBD65582F9750411A6239A2ED2E554141D6A77330975041B26A46B0EF2E5541A9CD9A652E975041B4DB832AF32E5541D6FC398D2B975041FC3C8C97F72E554155441BD0299750414CE49038F52E55415FFB547E269750411FB5F110F82E5541A75C5DEB2A975041D2EF6764012F55412BA43E2E299750413108AA7F022F554106000000125CDAF6C4965041D621910EEF2E5541D354612DC796504115290AD8EC2E55411D2C1C71C896504131B6B36CEE2E55412EE9838BC6965041D4178748FD2E55419B3A0E04C4965041B19DB713012F5541125CDAF6C4965041D621910EEF2E55410600000056E47E3616975041CD8C510CB82E5541785E4E6B129750413ADEDB84B52E55414427171C189750415C58ABB9B12E55410A03BA2C23975041BED9F3B7AB2E5541F84552122597504140CB0125B02E554156E47E3616975041CD8C510CB82E554105000000F63B484C33975041F03719F38E2E55413543C115319750418AD3B41A8C2E5541F4313E8641975041B33AAAEF822E5541B52AC5BC43975041199F0EC8852E5541F63B484C33975041F03719F38E2E554105000000B178A19415975041810D7D667A2E5541D3F270C9119750411BA9188E772E5541B55BBD6E1E975041678ADD976A2E55411BC0214721975041725A1F126E2E5541B178A19415975041810D7D667A2E554106000000A677676837975041619DB7F76F2E55415CA0AC243697504105099599702E554112C9F1E034975041B16198DB6B2E554176234CF34597504124A048F4632E5541371CD32948975041012679BF672E5541A677676837975041619DB7F76F2E5541060000000DEDF96814975041942B31DE342E5541DE4C1DC7139750412952C3F72F2E55414E79431C23975041347A3A20302E5541DB59D90125975041631A17C2302E5541F3A9C75225975041DA1BFCD0352E55410DEDF96814975041942B31DE342E554107000000665C0189F6965041A246ECCB232E554137BC24E7F596504195AD3729202E55411F6C3696F596504114F5186C1E2E5541665C0189F6965041933CFAAE1C2E5541D517EA63029750414124B8931B2E554103B8C605039750412DB64437222E5541665C0189F6965041A246ECCB232E5541070000008403B5DED7965041AB7B1F2F352E554178DB3DB6D79650416F428EEA302E5541656DCA59DE965041CB110AB42E2E554172067FFCE1965041CB110AB42E2E554147481D4FE8965041B3C11B632E2E554153709477E896504113731221332E55418403B5DED7965041AB7B1F2F352E55410A000000CE68CAE1B2965041541025A5292E55418778FFEEB19650412F2782B1252E55410AA25B26B79650415C5621D9222E5541A3AA6834B9965041CF758BF3202E554125D4C46BBE965041376D7EE51E2E5541E15437F3C09650417235D2AF1F2E554110F51395C1965041E7C57944212E5541F8A42544C19650413B4FF9D9252E55412F8BFE19BB9650412F2782B1252E5541CE68CAE1B2965041541025A5292E55411E0000003C4EA1D63296504174396FBAA22E55414CDA993E25965041B5D6813E992E5541C9B03D0720965041E2052166962E55414ECDDD031496504150D2D2118A2E55411F3ECA32FB955041E8DADF1F8C2E5541614C1A31F595504122A333EA8C2E554184C47FAAF59550416722C1628A2E554197B0ECBB03965041E669A2A5882E55418442795F0A965041DA412B7D882E5541FFA7DFAD019650419451608A872E55411CDE5589DF9550414CF0571D832E554156A6A953E0955041906FE595802E554141342961109650414E619597862E5541A92B1C530E965041AA301161842E55413BE170F205965041A4DD58F2792E5541FFA7DFAD01965041168C8592742E55418A17381900965041AC235526732E5541D6DCC1C5F6955041068293756D2E5541177AD449ED9550419BA8258F682E5541461AB1EBED9550413D686C4B672E5541679FD29FFF955041141B4818712E55412E48BC4F02965041AC235526732E554153315F43069650410CD54BE4772E55414D5CA08910965041B5588889842E5541F6DFDC2E1D965041762CB37F912E5541F8501AA920965041614D02A9942E55417616F5A033965041E758D9D4A02E5541C82E37BC3496504116F9B576A12E55415FC606503396504174396FBAA22E55413C4EA1D63296504174396FBAA22E55410D0000001034D815F4955041F17C4367CA2E554145A97371EA955041EB298BF8BF2E55411AEB11C4F095504169002FC1BA2E5541040C61EDF39550412481A148BD2E55414AFC2BE0F4955041BB1871DCBB2E554112A51590F7955041AFF0F9B3BB2E5541C1FD10EFF9955041C740E804BC2E5541378EB883FB955041BB1871DCBB2E55412DD77ED5FE955041EAB84D7EBC2E55415A061EFDFB955041EB298BF8BF2E55414D6D695AF8955041E172514AC32E5541D94DFF3FFA955041A81B3BFAC52E55411034D815F4955041F17C4367CA2E55410A000000A4D863E4039650417699E363BE2E55413B7033780296504101093CCFBC2E55415EE898F10296504197A00B63BB2E55415EE898F1029650412E38DBF6B92E5541C750C95D04965041AD7FBC39B82E554131B9F9C905965041A1574511B82E55414A7A259509965041DC1F99DBB82E55413E52AE6C09965041DD90D655BC2E55416059D66B069650415E49F512BE2E5541A4D863E4039650417699E363BE2E55410C0000006D855A2ADD9550418F5A0F2FC22E5541773C94D8D9955041A539C005BF2E5541AE226DAED3955041DC1F99DBB82E5541003BAFC9D49550415B677A1EB72E554169A3DF35D69550412CC79D7CB62E5541EA5BFEF2D7955041DAAE5B61B52E5541C954D6F3DA955041651EB4CCB32E55416D855A2ADD955041651EB4CCB32E5541BD2C5FCBDA955041DAAE5B61B52E5541031D2ABEDB955041209F2654B62E55412A770A2CE395504153217EEABD2E55416D855A2ADD9550418F5A0F2FC22E55410600000031CECF30C49550411102651BDC2E5541764D5DA9C1955041CB119A28DB2E5541B286EEEDC59550415DC7EEC7D22E554156B77224C895504117D723D5D12E554156B77224C8955041B0DF30E3D32E554131CECF30C49550411102651BDC2E554109000000D2E7721B37965041FB869E76A12E55418810B8D735965041561BC1D4A02E55413E39FD9334965041DEF9F4E19F2E5541FF3184CA369650411D016EAB9D2E554149093F0E3896504112312C319A2E55416596E8A239965041903F1EC4952E5541278F6FD93B9650410761EAB6962E5541DDB7B4953A965041D429B3679C2E5541D2E7721B37965041FB869E76A12E55410A0000002CAEA037AE955041AFBC1435362F5541FF7E0110B1955041D90939682C2F5541E99F5039B49550417BC97F242B2F55418DD0D46FB695504187F1F64C2B2F55411AB16A55B8955041FC819EE12C2F55416A586FF6B59550414654E4C8342F554199F84B98B6955041AFBC1435362F554181A85D47B69550413C9DAA1A382F55415197432BB2955041A505DB86392F55412CAEA037AE955041AFBC1435362F55410E000000877D1C01AC9550413D1FB165232F5541E34C98CAA9955041DFDEF721222F55419D5CCDD7A89550413BAE73EB1F2F5541CCFCA979A9955041D145437F1E2F5541FB9C861BAA955041508D24C21C2F554159DD3F5FAB955041F34C6B7E1B2F5541DA955E1CAD955041AC5CA08B1A2F5541C4B6AD45B0955041666CD598192F554197870E1EB3955041082C1C55182F5541520881A5B5955041C23B5162172F5541BC70B111B7955041D98B3FB3172F5541F63805DCB795504137CCF8F6182F5541DFE8168BB7955041CFD405051B2F5541877D1C01AC9550413D1FB165232F55417D000000803F3AF95F955041A0B222182F2F5541E8362DEB5D955041B691D3EE2B2F5541B99650495D955041B4209674282F55418AF673A75C955041609716DF232F554138DE318C5B9550414565AD991C2F5541E6C5EF705A955041EF6AF089142F55418985362D59955041EC8875950D2F5541ACFD9BA65995504125E08BE50A2F5541529F5D575F955041D1560C50062F554156700F7B7E95504143873F3BEC2E5541B89243B386955041074EAEF6E72E5541D5176567989550410F05E8A4E42E554154DD3F5FAB955041D2CB5660E02E5541D877D910B4955041E8AA0737DD2E5541F0C7C761B4955041B90A2B95DC2E55414A2606B1AE9550411F91E00CD72E5541CDD168339F955041BA8C31E0C72E554133581EAB99955041C4436B8EC42E5541C60D734A9195504145FC894BC62E5541BAE5FB2191955041B81BF465C42E55416087BDD2969550414EB3C3F9C22E55410247048F95955041AE823FC3C02E5541BB56399C94955041C461F099BD2E55410D6F7BB795955041D940A170BA2E5541EAF6153E95955041C07F75A5B62E554152EE083093955041E015602AB02E554100D6C61492955041D27CAB87AC2E554198DED32294955041BB2CBD36AC2E5541F61E8D66959550418F6E5B89B22E554183FF224C97955041FB47C96FB72E55419A4F119D9795504137815AB4BB2E55415F87BDD296955041E7D95513BE2E55416BAF34FB969550418B0ADA49C02E554132581EAB999550413B63D5A8C22E5541C1A9F10A9F955041F6E34730C52E55419F20C3C0B69550418E6A4EF3DB2E55411B75603EC6955041FD2537CEE72E5541E870025DD39550419A10BFD0F02E5541113C2045DE955041632AE6FAF62E554151572C7EE9955041DA2BCB09FC2E5541168FD8B3E8955041201C96FCFC2E5541A9442D53E09550411383E159F92E5541D4028F00DA95504128629230F62E55417E08D2F0D1955041D4D8129BF12E55410696AF67C99550412E3751EAEB2E5541B09BF257C19550417D6D1811E62E55414F79BE1FB995504191DB8B6DDF2E5541C298283AB79550414AEBC07ADE2E55411E68A403B5955041561338A3DE2E554162E7317CB295504191DB8B6DDF2E55414FFBC46AA4955041D93C94DAE32E55411997F2DF95955041B7356CDBE62E55411CFB731F8895504173B6DE62E92E5541607A019885955041B9A6A955EA2E5541F711D12B84955041220FDAC1EB2E5541EBE9590384955041C63F5EF8ED2E55414B9B50C1889550418D66415D052F5541CB536F7E8A95504183AF07AF082F5541299428C28B955041D5C749CA092F55416E13B63A89955041A6276D28092F5541ED5A977D879550418D66415D052F55419B4255628695504195AC3D91FE2E5541F711D12B84955041A7A97373F42E55418DA9A0BF82955041C63F5EF8ED2E5541A4F98E1083955041F36EFD1FEB2E554168C0FDCB7E955041BA17E7CFED2E5541B4AFFF5C72955041AC0413D3F82E554109D6DFB57495504163A797D4F92E55413130AF7F76955041E80BCA81FB2E554185568FD878955041FCB8B166FC2E5541F29B98DB7A95504115D8DA10FC2E554101D73EFB7C955041C1B1FAB7F92E5541BCEB04C27C955041B1765498F72E55413787D2147B955041E726E8B1F52E55417700CB887C95504149A38C5AF42E55414250376F7E9550412149BD90F22E55416538C57381955041110E1771F02E5541A6B1BDE7829550417E532074F22E5541082E62908195504135F6A475F32E5541853B71A87E9550416250743FF52E5541FB64FD357E955041728B1A5FF72E554180C92FE37F955041FC618ED1F72E5541D5EF0F3C82955041596CF1B4F72E554177E5AC5882955041DFD02362F92E55410F12E51A7F95504124BC5D9BF92E5541CE98ECA67D9550416435560FFB2E55418E1FF4327C955041D17A5F12FD2E5541254C2CF578955041526D50FAFF2E5541BD7864B77595504135DCE58A012F554128D98BEA719550419EAFADC8042F55418EC771586F955041CA7BBE57052F5541F5B557C66C9550410F67F890052F55413E13D3C46B95504171E39C39042F5541F927998B6B9550413EC06815FF2E5541B9E908B867955041C5BD57AD022F5541B39650495D9550410368266C0A2F554109910D59659550410F909D940A2F55414FFFD1007B9550415F37A235082F55416A313B46829550415F37A235082F55411EC18A8A909550417E7566EE0A2F5541EC323DEBAA955041CAB7C3BC0F2F55411522F339CC955041B37D7CE2152F55411FECB6D9D795504182CDE8C8172F554121D198A9DD9550413DE2AE8F172F554154F4CCCDE29550411588DFC5152F5541D0747CF0E69550417B76C533132F554156D9AE9DE89550413BFDCCBF112F554190FB837CE5955041D09CA58C152F55417EDBFB8CDD95504138706DCA182F55417884D8F7D8955041C246E13C192F55413526FEB3D19550410CA45C3B182F5541C4163111C49550418BB16B53152F554130C7538FA695504113A3FDF50F2F55415955A12E8C9550418A7566EE0A2F5541F30E39E681955041621B9724092F5541138426E07D955041BD25FA07092F5541BF05C4AC6E9550415BA9555F0A2F5541D27547E75C955041CC60A0270B2F5541D6E788AC5B955041AFCF35B80C2F55414C11153A5B955041923ECB480E2F554170F9A23E5E9550413771CC0F212F5541269C27405F9550418D7C8E38292F55414EF6F60961955041C51104222D2F55411062E06565955041F8343846322F5541803F3AF95F955041A0B222182F2F554107000000565D28BEB2955041F22CB1B60B2F554173EE922DB195504199948F980A2F5541879B7A12B2955041446EAF3F082F5541EF6E4250B59550411C14E075062F5541DEA63C3BBA95504196AFADC8042F554106010C05BC955041A1781223082F5541565D28BEB2955041F22CB1B60B2F5541050000009449C13CBB955041324E2750002F55413BB19F1EBA9550412CF703BBFB2E5541BA163111C4955041080F76B6F82E5541B5A4EF4BC59550415451D384FD2E55419449C13CBB955041324E2750002F55410E000000D52C74E694955041D8EAE24CEB2E5541216FD1B499955041BFCBB9A2EB2E55415804479E9D955041F0090CF7EA2E5541EDA31F6BA19550411DD61C86EB2E5541EDA31F6BA1955041A23A4F33ED2E5541A8B8E531A19550416D8ABB19EF2E5541B19C68BC9E9550410B0E1771F02E55418EB4DAB79B955041C622DD37F02E5541F4A2C02599955041F2EEEDC6F02E5541E0F5D840989550414B870FE5F12E55415B91A69396955041BD3E5AADF22E55416475291E949550416E6F9DE9F42E55417C9452C8939550419956CCA8EF2E5541D52C74E694955041D8EAE24CEB2E55413000000084704A586A95504177C62BD6402E5541DECE88A7649550416358B879472E5541098DEA545E9550415D83F9BF512E5541071CADDA5A955041ED450A9A5A2E55411F6C9B2B5B955041A08080ED632E5541A9DBF39659955041E8E1885A682E554111D3E68857955041983A84B96A2E5541A86AB61C56955041E20CCAA0722E5541C971DE1B53955041A16FB71C7C2E5541AE3F75D64B955041E3FB00D08A2E55415B2733BB4A9550412B5D093D8F2E55411155EDD3429550410E385C32992E5541F6B1461438955041C4C58AF4AC2E5541CDE6282C2D955041428B65ECBF2E55414ABDCCF427955041767EFAFCCA2E5541494C8F7A2495504105D0CD5CD02E55412E1A26351D955041D9116CAFD62E554144F9D60B1A95504138C3626DDB2E5541C91577080E955041FD780858EF2E5541A2BB969A0695504111D6B2E3002F5541F3629B3B049550417DAF20CA052F554149DF5E96F794504137AE8C061D2F5541D44EB701F6945041090EB0641C2F55419522E2F702955041081F7935042F5541C633FC13079550416AC3B3B8F72E554119BD7BA90B955041B6883D65EE2E55418F4D233E0D955041B6883D65EE2E5541B5A703AC14955041F5B4126FE12E55412B38AB40169550414F1351BEDB2E554150214E341A95504140095FA1D42E5541EA9A98BC1F955041E15768E3CF2E55414477D0C02E955041F4B81F05B82E5541C52FEF7D30955041E890A8DCB72E55416C42EEA8399550410EFC511BA72E55411AC62A4E4695504161255D07902E5541E3DF51784C955041C53AD504872E5541723125D85195504162A763527B2E5541502AFDD854955041C6BCDB4F722E55410DAB6F605795504129F0D858622E5541266C9B2B5B95504150CCBF11552E55413023D5D957955041F38B06CE532E55415FC3B17B58955041086BB7A4502E5541512AFDD8549550417062AA964E2E5541823B17F558955041973E914F412E554107D6B0A6619550418E8757A1442E554164166AEA629550414908CA28472E554151A8F68D69955041F30D0D193F2E554184704A586A95504177C62BD6402E55410500000007112645C69450414F5F8F2D282E5541B5F8E329C5945041AB2E0BF7252E554166C21C03CB9450413C73221C1A2E554176CC0E20D294504186456803222E554107112645C69450414F5F8F2D282E554106000000491F7643C0945041C7E27A87182E55417F94119FB69450415C090DA1132E5541A8E135D2AC945041644F09D50C2E55412B0B9209B29450418274B6DF022E55419DA8F5D8C494504114A804340F2E5541491F7643C0945041C7E27A87182E5541
+</a>
+
+<b>
+01060000000100000001030000000100000016000000D3D36E454895504197EB2546F62E5541F373810347955041850B75B1F62E5541E8B4B4CA3D95504153AA6BD9022F55414A95EC043A95504185E9FB640A2F55411035781D3C9550410469B16C0F2F55418EB42D25419550416928054B152F55412DD4F5EA44955041F9876BE7192F554172F3360B4C95504145875D9C202F554175D252AF5595504169068CFE282F5541B311E33A5D955041E78541062E2F5541813F3AF95F9550419DB222182F2F5541E5362DEB5D955041B891D3EE2B2F5541BC9650495D955041B3209674282F554187F673A75C9550415C9716DF232F554134DE318C5B9550414965AD991C2F55418E85362D59955041EE8875950D2F5541ADFD9BA65995504128E08BE50A2F5541D6760DF95A955041F85AE9D4092F5541DBC37D544C955041BAC896E2FE2E55414D9CE9564C9550410DCC5FB3FE2E55414AB364004B95504176AA11BCFB2E5541D3D36E454895504197EB2546F62E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979690 - 406827
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+01060000000100000001030000001E000000A002000040E3E97C6C975041AC419793082F55412BA2AB836D975041B61686F6012F5541E1178CCF6D97504169AEBA5AD12E55417790392E6C975041AD8A32CBC12E5541E2D65D9F649750417D69D369A32E5541AE4066BB5F975041DD9DE1A08D2E5541B70843A85D9750415F22672F912E55415EAD3BEA589750415F7DCA08892E55419B66739453975041633C9CD87F2E55410B1A111952975041F2A233FD6F2E5541C08FF16452975041FB6A10EA6D2E55415F11AAE0579750416BBA3F786D2E55414778E5E95497504144ABF6505D2E554130DF20F35197504144ABF6505D2E5541CEBB3C484F9750418EEBDCB74C2E5541509B25B04A975041225B7FF9432E55411DAACAF24D975041B76FBE61432E55416834EAA64D9750415E14B7A33E2E55410A7574F249975041CB63E6313E2E5541622BDF8946975041B280E8ED2A2E5541F8D60A8DFB9650419894DF8C102E554170497AE1F0965041A15CBC790E2E55419469ED94E89650417B97AC9F0E2E5541535D7180D696504193307196112E5541DA268BED9E9650412786DE2E1A2E554105312FA663965041B477DDD0232E5541C1E3846148965041ABE723F7272E55410EE33C982E96504174925A432C2E55411661E0371C965041D6B53EEE2E2E554152757BBB0E965041DF7D1BDB2C2E55415FFC29780396504182BEA526292E5541AEEAB7220296504194F3FB262D2E5541BCBB9F2C07965041CDED6101312E55417BF95C6505965041E48626F8332E554184C1395203965041F2570E02392E5541805DCB5B04965041A9728B74412E55413F4025BB0A96504147F443F0462E5541AB24B9CF1C96504180AD8D6C542E5541112C60EB1396504180AD8D6C542E554168A516EC1B965041AB7C82D55B2E554113072D1A0D9650418F163BFD6F2E5541049E7F89F1955041CB4EEDAF5F2E55418A77917FEC9550417B1C27E0682E5541793317C0D7955041AB7C82D55B2E5541C8AF53EBA8955041903B7E87432E5541EE122552989550411D5C80AE4F2E5541E23ACE949B9550411B81B37F562E5541B2DA729FA89550412EA0FA6D642E5541E5CB2468BA955041636C79656F2E5541793317C0D795504105878FA9822E55416D5BC002DB955041B454C9D98B2E5541F25905CADC9550414E4D22BE942E55414F895528D7955041A3C6D8BE9C2E5541152C70A4E0955041043D194EA82E554143B1FE6ADA955041678E260CAD2E554124BA60BFCF95504149978860A22E5541870B6E7DD4955041556FDF1D9F2E55419FBB1BF8CD95504112F03C3A9E2E5541119B19D1C19550410618E67CA12E5541BA2163D0B99550411CEDC6C8A12E554100579F11AD955041CE95CD27A42E55416F80038DAE955041FC1A5CEE9D2E554118074D8CA6955041771C17279C2E5541099E9FFB8A955041C74EDDF6922E554132B70AC06C95504172B0F324842E55411CE229746C9550413DE4742D792E5541FC0FBF99689550419813C58B732E55411EBDF6A265955041FD1A6CA76A2E5541AF93922764955041AA574F04552E554197E3E4AC6A955041083D39C0412E5541AA022C9B78955041504D42302E2E5541E7F067F28D95504142BF61CE0B2E5541810E04616A9550413C78719DFA2D5541C568737364955041F81D028B002E5541234E5D2F519550414850C85AF72D5541CCD4A62E499550413356B43DF02D5541EF81DE37469550414850C85AF72D5541A4E07EF43A9550414850C85AF72D5541BF46C6CC269550411BA606C3F62D55414620D8C221955041ABA1D518FC2D5541D0AF83160F955041021B8C19042E55419DBED14DFD945041A5106F8C102E5541C146D685F3945041333171B31C2E5541B9241926E9945041B82FB67A1E2E55414AFBB4AAE79450411B81C338232E5541FAC8EEDAF0945041D8012155222E5541C146D685F3945041B654E94B252E554168F25256F294504192CCE4132F2E554137B72A3206955041A7C6F830362E5541F25CBB1F0C955041EDFB3472292E55411B51E3591A95504192CCE4132F2E5541DF1831A72A955041389D94B5342E5541D08A408C3B9550412AEA70C93E2E5541A4E07EF43A9550416191BCEF422E5541DE3D647831955041833EF4F83F2E5541189B49FC27955041CA29BADE582E55411A76162B2195504194826EB8542E5541AE024C0D12955041B70A73F04A2E55414D8C0B7E06955041AFE8B590402E554167178627F994504116F05CAC372E5541E7A9A7ECE2945041EDFB3472292E55419852AE4BE59450411B81C338232E5541CDD4C6A0E2945041DBDCED831B2E55415689A5C5D69450411F375D96152E5541840E348CD094504157B975EB122E55417A11AAFDCC945041C09BE935032E554115E5CF10CF9450415E25A9A6F72D55414C8C1B37D394504197A7C1FBF42D5541A074713FCD94504110DE9846F42D5541C5475EE3B3945041FA86B11EE82D55415AF3EDA2A5945041FCC87CB6F02D5541C66C7C378294504163E322C1DB2D5541CE89FD7D7F94504165426F9FE12D55418EA190F5809450412FD6CF3BE62D554169CEA3519A9450416242D3F3F52D55418F5F8D06A1945041763A6E3DFC2D554121C9B5829E945041122064DEFC2D554182C676F27794504181578B2FE52D55413DC124CF679450418815C097DC2D55415877F48065945041197FE813DA2D5541D9A61A7068945041984FC224D72D55416810A7407A945041D3D84623E42D554197BE113C7E945041369404A4DD2D5541A95760A77E9450413435B8C5D72D55416810A7407A945041E871313AD02D5541AEB64831709450414B2DEFBAC92D5541D18999296B9450411C7F84BFC52D55410855856B6C945041FF69682FC22D5541C04F979C7094504136355471C32D5541C2AEE37A76945041A5CB2BF5C52D5541702D288777945041DA37CB58C12D55413F2071AD6D945041223DB927BD2D554141200D59599450414F8CD744BB2D5541EA816CCA48945041A10D9338BA2D55419F1D321D47945041785F283DB62D55416035C59448945041076A04DBAD2D55413B0328BE479450417A5FC4E8A12D5541A6DB66853E945041724243A2A42D554102D9EF9D40945041A1F0AD9DA82D55411FEE0B2E449450413E35F01CAF2D5541706FC7214394504113451EDEB62D554175CEAFAB34945041EAB3987DC42D5541C5F01EC12D945041BB052E82C02D55414D3D62A219945041CB9EE041D52D5541E30573A8089450410F45E686DF2D5541559CE6D7F69350413F529D60E92D5541C891A6E5EA935041B047C1C2F12D55419525A32DDB935041203DE524FA2D5541F8E060AED49350419591F110F42D554141459B5BD69350414B2DB763F22D554139281A15D993504137351C1AEC2D554193C6564FD59350418F740C76E22D5541C932F6B2D0935041544A38AAEF2D55418EA971B4C3935041EC71958EE42D554127301B77BE9350413C9404A4DD2D5541635AEF42B1935041D4BB6188D22D55417DB17216A9935041FD4CE7E8C42D55418EEB74A3A3935041D91A4A12C42D5541D232CAB593935041B1E81090D72D5541C29917F67E9350414FCEA2DCC32D5541C29917F67E9350410E87E975BF2D5541D9914EEB70935041F6D0B56FAD2D5541A684FB657B93504178A12B2C962D554120F6ECEC869350411EA43EBF7F2D554120F6ECEC8693504166A92C8E7B2D55415103A4C690935041B92AE8817A2D5541B77CFA0396935041043072FC612D55410B5D02D69A935041E979A24A642D5541D84FAF50A5935041D1C36E44522D5541506254F9AA9350417367994D4A2D554152C1A0D7B09350413EFBF9E94E2D55419108BE92C9935041B7AEEE5F3A2D5541065DCA7EC3935041B54FA281342D5541350B357AC7935041EBBB41E52F2D5541091B633BCF935041CEA625552C2D554155DEE9C6D6935041A7153CA0252D554191C6BAA3E99350418B5FD0423C2D5541DBCB441ED19350412A035FA0482D55413B8766F3DE93504184004C0D5F2D5541BE15D9C0E7935041F037D7B25B2D55419B4288C8EC935041AFF01D4C572D554114552D71F29350414AD613ED572D5541533D9AF9F0935041BBCB374F602D5541B9B6F036F69350415ECEAE365E2D55418C67D219F8935041EA79A24A642D5541F99E5DBFF4935041B66C4FC56E2D554112F6E092EC93504170C6ADD4782D554145033418E2935041D89E50F0832D554129EE1788DE935041B5CBFFF7882D5541589C8283E2935041D2E01B888C2D554135C9318BE7935041EA964F8E9E2D55417DCE1F5AE393504106AC6B1EA22D5541B4990B9CE49350412D3D55D3A82D5541A35F090FEA93504123C187AEA52D55419B4288C8EC935041526FF2A9A92D5541533D9AF9F09350418DF876A8B62D5541F3E02857FD93504166678DF3AF2D5541756F9B2406945041AE6C7BC2AB2D55416FB166BC0E9450416D25C25BA72D5541B2576C01199450410FC9EC649F2D55418F841B091E945041D13FCCBAA62D5541A21D6A741E945041C564B2B79D2D5541C64F074B1F9450416F255E07932D55419900E92D21945041887CE1DA8A2D554191E367E723945041ADAE7EB18B2D554187679AC220945041FAD0511B992D554175CE4B57209450412D3D55D3A82D5541A21D6A741E94504166678DF3AF2D55418F841B091E9450419F91C513B72D55415A187CA522945041E796B3E2B22D55415C77C88328945041A54FFA7BAE2D5541DE053B5131945041F6716991A72D5541742DFC893A9450413D775760A32D554192A164F84394504133FB893BA02D554167B192B94B94504173E3F6C39E2D55419E7C7EFB4C945041A84F96279A2D5541E6816CCA48945041D59EB444982D5541483D2A4B429450419ED3C802972D55415FBE0A903A945041BE13960B912D554141FA1C2C2A9450417897CD8B822D5541DB47A29425945041B5CBFFF7882D55410897C0B123945041E21A1E15872D554187679AC220945041861D95FC842D55410897C0B1239450418E3A1643822D5541E47F77E527945041B6C611947F2D55418170CD181894504160F515FA6A2D55410EF6A83B1594504149D677416C2D55414AA9769E0D9450415500C414612D55413C7C9F55E9935041CE4C743E2E2D5541CCB8E5B0A99350419AAC197BE52C55416DFB3E1097935041F33F801AC72C55416020250D8E93504124EE86C1B62C5541657F0D977F935041AEDB7DC49C2C5541998C601C75935041854AF863AA2C554132130ADF6F9350412D0B0808B42C55414DC9D9906D93504180EB0FDAB82C55410EE16C086F93504114B48434BC2C5541687FA9426B935041A9DB456DC52C55415E03DC1D68935041E464CA6BD22C55416E3DDEAA6293504152FBA1EFD42C55412DF624445E935041D58914BDDD2C5541FE47BA485A935041D947AD79E92C5541C71D8228539350419E7C258CFC2C554160A42BEB4D93504198BEF023052D554154C911E8449350411230E2AA102D554101E90916409350419F3A229D1C2D5541E6323A6442935041CEE88C98202D5541779C62E03F9350411AAC1324282D5541B784CF683E9350419C3A86F1302D5541650314753F9350418C008464362D55412E3828333E93504117AC77783C2D5541024856F445935041C52ABC843D2D55419E2D4C9546935041FCF5A7C63E2D55415F45DF0C48935041E39E24F3462D55418DF349084C935041CCA6EDFD542D554133550DCE4F9350418F1DCD535C2D55413DD1DAF2529350419D5733356B2D5541241B0B4155935041CFC336ED7A2D5541B884CF683E935041810014B6872D5541AE0802443B935041A891FD6A8E2D5541A48C341F389350414DF3C030922D55418777188F3493504176E3F6C39E2D5541B4C636AC3293504182BE10C7A72D5541EBF0D2204E935041ADAEE205A02D5541C81D82285393504111289D97B92D5541E4329EB8569350418B998E1EC52D554178FB12135A935041C4C3C63ECC2D5541713DDEAA629350417E1D254ED62D55414E6A8DB267935041A5AE0E03DD2D554125D9075275935041C581C34FEC2D55414E288AC3879350411D2064DEFC2D554166DEBDC999935041476FE64F0F2E5541C2DB46E29B935041AC89F0AE0E2E554160208961A2935041875753D80D2E5541D8322E0AA89350413DF3182B0C2E554124F6B495AF935041AA2AA4D0082E554182528A8CB7935041F22F929F042E554159C1042CC5935041A66C0B14FD2D5541DB4F77F9CD9350412D5A666BF72D55419C670A71CF935041253DE524FA2D55416DB99F75CB9350410A871573FC2D55411F97CC0BBE935041DF964334042E55415D20EDB5B693504185F806FA072E554163DE211EAE935041D9D80ECC0C2E554120381CD9A39350416CA18326102E5541DD911694999350413F526509122E5541486A555B909350413F526509122E5541B3429422879350417F3AD291102E55419CEBACFA7A9350413DF3182B0C2E5541BD5FB114709350410E45AE2F082E55413972F268619350411F7FB0BC022E55411AFE89FA5793504154EB4F20FE2D55417DB9477B519350419CF03DEFF92D554183777CE348935041755F543AF32D554183777CE348935041C38127A4002E5541F0AE078945935041088779C7102E5541CF3A036F5093504151EBB374122E554193102FA35D935041648402E0122E5541A14A95846C935041AEE83C8D142E55415387724D799350416E00D004162E554169DE597585935041CAFD581D182E55411ABCEA5F8C935041777C9D29192E55415B03A4C690935041219CF9AB282E5541CA997B4A9393504112C143FD332E5541269704639593504149EBDF714F2E554153E6228093935041A747B568572E554113FEB5F7949350417AF8964B592E55419FA9A90B9B9350415F42C7995B2E5541E14FAF50A5935041458CF7E75D2E554186B17216A9935041B422CF6B602E5541D015ADC3AA9350415A849231642E5541DCF0C6C6B393504187D3B04E622E5541151BFFE6BA93504122B9A6EF622E55417B945524C0935041996CFFB9622E554161DE8572C2935041B6811B4A662E5541F4A6FACCC5935041AD649A03692E5541235565C8C9935041A3E8CCDE652E55411C973060D2935041EBEDBAAD612E554166FB6A0DD49350413B102AC35A2E554195A9D508D89350412877DB575A2E554143281A15D993504155C6F974582E55419F25A32DDB9350415C842EDD4F2E554172D68410DD935041488C9393492E554133EE1788DE935041CBBB552E382E55419E25A32DDB935041DF544045242E55414A459B5BD6935041BBC3F23B092E5541C615D9C0E79350411C2064DEFC2D5541F981DC78F79350412BFB198DF12D5541EF64BF860E945041CB3FF8B7E32D55419F4250711594504101AC971BDF2D5541C6D339261C9450413618377FDA2D5541B5993799219450416B84D6E2D52D5541B7F883772794504117A4CE10D12D5541828CE4132C945041C4C3C63ECC2D554196847F5D32945041AFCB2BF5C52D55414C7FF5E24A945041DA1AAE66D82D55414162D8F061945041DF379301EA2D55412C6A3DA75B945041BD644209EF2D5541CE0D68B053945041A40DBF35F72D5541F281087634945041590835BB0F2E55411A5591C506945041369494F52E2E5541EBA626CA02945041C13F8809352E55417D104F46009450410C030F953C2E5541D7AE8B80FC9350412B777703462E55416FD6E864F1935041F8C8705C562E5541095D9227EC93504185D3B04E622E5541FFE0C402E99350418991490B6E2E5541904AED7EE6935041F169EC26792E55412055C91CDE935041C7D866C6862E5541603D36A5DC935041F686D1C18A2E5541BADB72DFD8935041E4ED82568A2E55414B459B5BD69350416D3A2A8C8A2E5541D5914291D6935041139CED518E2E55415EDEE9C6D693504194CB1341912E5541BADB72DFD893504115FB3930942E5541D6F08E6FDC935041CDF54B61982E5541BC3ABFBDDE935041EA0A68F19B2E55412AD19641E1935041D9D06564A12E5541101BC78FE3935041AEE09325A92E55417435D1EEE29350412F10BA14AC2E5541BE990B9CE49350419DA69198AE2E5541354D6466E49350410320E8D5B32E5541516280F6E79350414D842283B52E55414945FFAFEA9350414FE36E61BB2E55410A5D9227EC935041BE7946E5BD2E554153C1CCD4ED935041115A4EB7C22E5541F7C343BCEB9350419C0542CBC82E5541ED477697E8935041F0E5499DCD2E5541C815D9C0E79350417115708CD02E5541241362D9E99350417115708CD02E554178F369ABEE935041F902CBE3CA2E554167B9671EF4935041653A5689C72E5541F0050F54F4935041AD3F4458C32E55418CEB04F5F49350413C4A20F6BA2E55417BB10268FA935041F9A31AB1B02E5541E8A626CA02945041B69EC88DA02E554173521ADE08945041BD5CFDF5972E5541507FC9E50D9450418432C5D5902E5541818C80BF17945041920D7B84852E554127EE43851B945041C71ACE097B2E55415EB92FC71C945041A64719BD6B2E5541C43286042294504190F031955F2E5541A15F350C27945041783AFE8E4D2E55419BA100A42F945041A32AD0CD452E55410B972406389450416A0098AD3E2E554180A9C9AE3D9450419F0DEB32342E55416C6F2B765794504194D320FD102E5541D6A61A7068945041FBEDC607FC2D5541CE8999296B9450415F08D166FB2D55418FA12CA16C945041A96C0B14FD2D55415418A8A25F945041B1E83C8D142E554114303B1A61945041CDFD581D182E55418D42E0C2669450418E15EC94192E5541A03A7B0C6D94504121DE60EF1C2E55413620395696945041B047EDBF2E2E55417525EFCDBA9450418E3235843F2E554103EE2BD1E6945041CB1A0661522E554157CE33A3EB945041857464705C2E554176429C11F5945041C55CD1F85A2E55411F62F89304955041D39637DA692E5541D19ED55C119550412BD62736602E5541F82FBF1118955041F2ABEF15592E554127DE290D1C95504173DB15055C2E55415C4AC97017955041ECEDBAAD612E5541A2F06A610D9550412F94C0F26B2E554129DEC5B807955041C25C354D6F2E554198749D3C0A9550415625AAA7722E5541D9BB56A30E955041C4BB812B752E5541817C664718955041DF7151DD722E5541FA8E0BF01D95504193AECA516B2E5541B2891D212295504193AECA516B2E55414552927B25955041B0C3E6E16E2E55414552927B2595504168BEF812732E55418D57804A21955041749912167C2E55414C10C7E31C955041C61ACE097B2E55412FFBAA5319955041D0969B2E7E2E5541E59670A61795504176F85EF4812E554135B9DFBB10955041C1BBE57F892E55416208FED80E95504132B109E2912E5541EC54A50E0F955041F427E937992E5541BDA63A130B9550412535A011A32E55414594956A0595504103624F19A82E5541C72208380E955041C7377B4DB52E55410F28F6060A95504189AE5AA3BC2E55414494956A0595504175B6BF59B62E55416F8467A9FD9450416EF88AF1BE2E5541B52A099AF3945041E9697C78CA2E55419FD32172E7945041ABE05BCED12E554114282E5EE19450419DA6F5ECC22E5541C864A7D2D9945041B49E2CE2B42E5541E1BB2AA6D1945041E64C3389A42E554172255322CF9450414A673DE8A32E5541CDC38F5CCB94504130B16D36A62E554102302FC0C6945041962AC473AB2E55414A351D8FC2945041BDBBAD28B22E5541923A0B5EBE9450413F4A20F6BA2E5541B8CBF412C594504152E36E61BB2E554139FB1A02C8945041372D9FAFBD2E55415E2DB8D8C894504177150C38BC2E5541A074713FCD94504189AE5AA3BC2E5541048F7B9ECC945041BABB117DC62E5541586F8370D1945041663A5689C72E554173255322CF945041D98EC6C9D52E5541D0812819D7945041083D31C5D92E554176E3EBDEDA9450416EB68702DF2E55415E2DB8D8C89450416BB6EB56F32E5541188716E8D2945041D12F4294F82E5541A074713FCD9450417B4F9E16082F55413E77B0CFF3945041CAD0BD5E1B2F5541E4D87395F7945041396795E21D2F5541A64F53EBFE9450415D9932B91E2F5541790035CE009550419305D21C1A2F5541A8AE9FC904955041B479D6360F2F554121C144720A955041163594B7082F554119A4C32B0D955041675703CD012F55417DBECD8A0C955041DBAB0FB9FB2E554112E68EC315955041591D9DEBF22E5541B2891D21229550411C35CC0EE02E5541A14F1B9427955041F6A3E259D92E5541ED12A21F2F9550418ECB3F3ECE2E554138D628AB369550414B253AF9C32E5541036A89473B955041B39E2CE2B42E5541A9CB4C0D3F955041CCF5AFB5AC2E554136D68CFF4A95504187F05D929C2E5541B864FFCC53955041605F74DD952E55419F0D7CF95B955041F069507B8D2E5541C69E65AE62955041386F3E4A892E5541C0E030466B955041C9D866C6862E5541D4D8CB8F71955041386F3E4A892E55413235A1867995504179B6F7B08D2E55417EF827128195504196CB1341912E554109A41B26879550410462EBC4932E554136F33943859550410EDEB8E9962E5541F24C34FE7A9550417199766A902E554167A140EA74955041F069507B8D2E5541265A87837095504181D378F78A2E5541FFC89DCE69955041386F3E4A892E5541197F6D80679550416F3A2A8C8A2E55415967DA086695504154845ADA8C2E5541757CF69869955041D5B380C98F2E554177DB42776F955041A86462AC912E55418157109C72955041B2E02FD1942E5541D537186E7795504121770755972E554121FB9EF97E955041EB0A68F19B2E5541FE274E0184955041BEBB49D49D2E554164A1A43E89955041D154983F9E2E5541E5D0CA2D8C955041B69EC88DA02E55419DCBDC5E90955041A564C600A62E5541707CBE4192955041F944CED2AA2E5541CA1AFB7B8E955041A7C312DFAB2E55413F6F076888955041F944CED2AA2E554107A41B26879550419FA69198AE2E55413E6F0768889550418E6C8F0BB42E55411120E94A8A955041B5FD78C0BA2E5541B781AC108E955041C9F5130AC12E5541AF642BCA90955041306F6A47C62E5541FF869ADF899550418C6CF35FC82E55419FCB780A7C95504129B135DFCE2E5541DFB3E5927A9550417B32F1D2CD2E5541142085F675955041560054FCCC2E5541498C245A71955041F2E5499DCD2E55416442F40B6F9550413C4A844ACF2E5541A52A61946D9550417574BC6AD62E55419BAE936F6A9550412B1082BDD42E55417E9977DF66955041870D0BD6D62E554134353D32659550419289D8FAD92E5541F3ED83CB609550410020B07EDC2E55414751FA6B61955041F8EDD6CCDE2E554110F1858463955041C28D62E5E02E554110F1858463955041756D8CD4E32E55413191984262955041138D549AE72E55419371D07C5E95504108ADA305E82E55410B126AE059955041BC8CCDF4EA2E55419371D07C5E955041658C464FEE2E5541EA7157225B955041F7CB5D80F22E5541AF32C796539550416A6B62F3F72E5541681386764C955041BB6A54A8FE2E5541D5D36E454895504195EB2546F62E5541F6738103479550418A0B75B1F62E55414D7408A9439550411D4B8CE2FA2E5541E6B4B4CA3D9550414EAA6BD9022F55414895EC043A95504189E9FB640A2F55411235781D3C9550410669B16C0F2F55418FB42D25419550416E28054B152F55412DD4F5EA44955041F6876BE7192F554173F3360B4C95504147875D9C202F554178D252AF559550416D068CFE282F5541B411E33A5D955041EA8541062E2F55412B9003526C9550410425BFD3362F5541E34E49E578955041D9A4FB80382F5541F8EC31C28B95504177C4C3463C2F55419885AA46D4955041030346874A2F5541418523A1D79550412F8309DA482F5541F5644D90DA9550419C43F2A8442F554104241AC9E3955041E0C709BE1A2F5541C3E3F44CE69550416E28054B152F55414063AA54EB9550411C2913960E2F55410F04CB5DE3955041C049704C082F554156230C7EEA955041078B2AB9FB2E55410903366DED955041E7EA17FBFC2E554191629C09F2955041BB6A54A8FE2E554119C202A6F6955041078B2AB9FB2E554160E143C6FD9550418A0B75B1F62E55416BC1F45AFD95504102AC0E15F22E5541CB7C22240296504159F27632E62E554111A3D3E102965041B50C50C0E12E5541B9EC684A069650416115B7F8DB2E5541772A26830496504140B41515DB2E5541F04132FE01965041A73B68B6DC2E554169593E79FF95504100976F74E12E5541EB3827E1FA955041C841A6C0E52E5541F40004CEF89550418BE3D1EFE22E5541840C3819F1955041667925EFDA2E5541BC6101CDEC955041996A80ACD72E55410188B28AED95504157A83DE5D52E554130BA3B78F3955041529F32C8CE2E5541E7D4B8EAFB95504128D117D1C72E5541041C25250E965041C96C05F6BB2E55414F4BE1FF1596504100C2CEA9B72E554159B85A131C9650419E9EEAFEB42E55410102F07B1F96504175756C2EB62E5541B677D0C71F9650416749214BB92E5541C8078AA11B965041EE3115D0BB2E55417410F1D915965041262C7BAABF2E5541D68E385E10965041149CC1D0C32E554178CFC2A90C9650414C9627ABC72E55415CD28FBC0A9650413E6ADCC7CA2E5541041C25250E96504119A5CCEDCA2E5541823C3CBD12965041010C08F7C72E554187A0AAB3119650415FCB7DABCB2E5541663F09D01096504107151314CF2E5541ED27FD5413965041C552D04CCD2E5541F794766819965041BCE55639C72E55411DFF226921965041B278DD25C12E554114DCE2A22B965041751A0955BE2E554106B097BF2E96504183465438BB2E5541DD8619EF2F965041BA9B1DECB62E5541CFFF6A323B96504166FFE7FDA82E55411EEEF8DC39965041243DA536A72E554193A1966138965041F6AFB86FA92E55413A468FA333965041BE5AEFBBAD2E55419BC4D6272E9650419995DFE1AD2E5541CEB531E52A96504182FC1AEBAA2E5541271139A32F96504129A1132DA62E5541101D11D33496504161F6DCE0A12E5541CFFF6A323B96504199F042BBA52E554198AAA17E3F965041D54E178CA82E55410E03DC2946965041BDF680C5AE2E554195EBCFAE489650412D46B053AE2E5541912CFEDE5196504169FFE7FDA82E55418D6D2C0F5B9650417C8FA1D7A42E554118BA8E8A5C965041772B33E1A52E5541C56792E95E965041A65DBCCEAB2E55415A7CD1515E96504161DCA737B32E55417679043F60965041AB66C7EBB22E5541062AD5B06096504178756C2EB62E55418D12C93563965041D1D073ECBA2E5541278B769461965041E405CAECBE2E55417F41E12B5E9650414FF18A84BF2E55418D6D2C0F5B965041DB3DEDFFC02E554183A54F225D965041D6D97E09C22E5541195F2BB164965041B1146F2FC22E5541A0471F366796504138FD62B4C42E55417B820F5C679650412AD117D1C72E554156BDFF81679650417EC8B098CD2E55419CE3B03F6896504163701AD2D32E5541AAB498496D965041DC2CC373D92E55415BC60A9F6E9650410B5F4C61DF2E5541808B1A796E965041F46A2491E42E5541648EE78B6C9650416E27CD32EA2E55419F884D6670965041130DF4A4EE2E554196C0707972965041FC18CCD4F32E55418DF8938C74965041C5689F47002F5541673384B274965041F9A333520D2F55411845F60776965041F2CA2CD9272F5541220DD3F473965041A92FE398402F55412D391ED87096504112B7353A422F55414991B49E6A965041D6FDFD8F472F55411A5F2BB1649650410A94F5734C2F5541993E141960965041E76A77A34D2F55411615F263549650418FB40C0C512F55417CF7A7DE4D965041D5DABDC9512F55415F55D8CA439650411B016F87522F5541AE9EC94E3A96504186EC2F1F532F55411DEEF8DC39965041C34A04F0552F554134E220AD349650419D85F415562F55415E0B9F7D339650415CC3B14E542F5541CE5ACE0B33965041A74DD102542F5541F27A41BF2A965041EC7382C0542F5541E90DC8AB24965041B9822703582F55415DC1653023965041200A7AA4592F55416125D426229650417401136C5F2F55410002F07B1F9650413848DBC1642F5541BE3FADB41D9650415EB287C26C2F5541BADB3EBE1E9650418880A2B9732F55416689421D21965041B34EBDB07A2F554154F988432596504151D0752C802F55419F28451E2D96504110B3CF8B862F554150DF539A36965041CB31BBF48D2F5541CA9BFC3B3C965041737B505D912F5541192F270D43965041A163A0FD862F55415C8FC2454696504152B81EA5882F5541CDCCCCCC4F9650417B14AE078E2F55415C8FC2F5519650419A9999998B2F55416666667659965041E17A14FE8F2F554185EB5148589650417B14AEB7912F5541A4703D0A6C96504185EB51C89C2F55411F85EBF16B9650410AD7A3F09D2F5541C3F5289C7D965041F6285CDFA72F5541A0A656BD81965041B03EF1F6A52F554194CEFFFF84965041214322A1A02F554160B80AAD9F965041A81C34979B2F554194A9BC75B19650415BA00725972F5541F16963A7CA96504195FDECA88D2F5541EEB3C949D89650414981C036892F55414177E6ECED96504161316EB1822F5541071A0169F796504114B5413F7E2F5541AB0FE4DB0397504185B972E9782F55417BAF88E6109750415AEA7D80712F5541F91C6721279750415CA017DE632F5541023F2481319750416A533BCA592F55412A334CBB3F975041BC60CEC8492F55412A334CBB3F97504100BB3DDB432F55412036C22C3C9750417BBCF813422F5541360BA3783C97504171BF6E853E2F5541145E6B6F3F975041739A3BB4372F55413530D64943975041C3CC01842E2F5541492AEA664A97504113FFC753252F5541AC7BF7244F975041D35AF29E1D2F55410FCD04E353975041C85D68101A2F5541843D598F66975041E00D168B132F554140E3E97C6C975041AC419793082F55410600000092DBD99D88965041E8B21838632F55416274E40486965041B52145C9622F55412FE3109685965041BB7501755E2F55417762861E10975041CF9B144E4F2F5541AAF3598D109750412F6AFF7F542F554192DBD99D88965041E8B21838632F5541B0000000A012F4703E975041A588DB60482F5541195BAE27309750415FD1F418572F5541F8C50FBC22975041B52145C9622F5541A49F9DE114975041DD0AA0E06B2F55411DE85798069750419ED1531A742F55414B883AF6E39650419329DBC27C2F554176FE3E7EC3965041EDA30949862F5541F8C493B6AE96504119E1200C8B2F5541D4051775A396504119E1200C8B2F5541E3D76DA298965041B4BE792E8A2F5541F4D3A2A58B9650411F35DDB7862F55418100169C809650411F23F4F97C2F554193906C62789650413F30E188742F5541BD0730BC77965041921E683C732F554110F6B66F76965041CF472D44762F5541C64F5B9F7396504139FB75A3702F5541C64F5B9F7396504188B491716B2F5541E249883073965041BB7380AE662F55415FAFD23D71965041B109AAE35E2F5541A520C328709650411688875D552F5541193EE25272965041F02384014E2F554164E43D2375965041EBEE181C4A2F55415667A75A759650419B135266432F55411E734D38769650416B45783F342F5541AF8A99F37796504165EE6172242F554108F2E15B92965041545E0BAC2C2F55418A6AEC6688965041408A5E161D2F55419BFA422D809650415E75A0BD082F5541F830F5C37A965041BD9C676AEF2E5541017920A7769650419F5EE409D82E554134380FE471965041F12AC0D5CA2E55417252E901619650410ED2ABAD9E2E5541DD0532615B965041FAFDFE178F2E5541E118F25E53965041EA5EBD67832E5541901B80C140965041CC203A076C2E5541E6FA1B8B2B9650413EFA0262562E5541ABC26B99149650416A62DBD1412E55414500385006965041C02EB79D342E5541C89AED42089650418305F295312E5541C4DA6EFE3B965041960A35FD602E554173303E1A559650416BC40775812E55418B17ABAD5C965041F7C893328B2E5541DBF271636396504127976D599A2E5541916EC17A6C96504147D5F0B9B12E554142B5A5AC7196504123B5432DC22E55417161D4EB7496504169263418C12E5541AE8A99F3779650413B9CB0C0C92E554147EA10927596504194BFA259CC2E554106AE8B8C7A965041FC81D6A2DA2E55415FD17D257D965041CBE4924DEB2E55416406E90A81965041B00C11A4F72E55416406E90A81965041139AD907022F55413FC490968596504122391BB80D2F55410D05A2598A965041EC666C7D1A2F5541CCC81C548F96504186E88E03242F55418B8C974E94965041F2BD824A2A2F554196F66D199C965041239F1C6F312F5541E6D134CFA2965041F0DF2D32362F554172D6C08CAC965041BE203FF53A2F5541CBF9B225AF965041916525CC232F55416DF49660D49650413A64DE1A2D2F5541E211B68AD696504164DBA1742C2F55415851809CE49650418F7410B6372F5541D6D87591EE96504198BC3B99332F5541C73934E1E2965041227D7187252F5541BF13B4E5F2965041BFEFA8231B2F554142AE69D8F4965041ED792C7B122F5541C4481FCBF69650410974590C122F55416D47D81900975041BABA3D3E172F55413CAA94C410975041068344F6252F55415DD92C3B1497504187FB4E011C2F554117683C5015975041584F20C2182F554157A4C15510975041998BA5C7132F554117683C5015975041BECDFD3B0F2F55413897D4C618975041C3026921132F5541608759D533975041272A30CEF92E55417EC5DC354B975041BA32919FE72E55413854EC4A4C9750416B57CAE9E02E5541573F2EF2379750414806878BD12E5541E1FF63E0299750412E2E05E2DD2E5541CE4D6232269750410DFF6C6BDA2E55410C99D221359750410BDDC183CE2E5541967BB3F732975041860DA1ABC82E5541E434CFC52D975041C74926B1C32E5541D6B738FD2D9750410786ABB6BE2E5541F2B1658E2D975041CB5CE6AEBB2E55410FCE3D0739975041C0F20FE4B32E55413E7A6C463C975041438DC5D6B52E5541F0C05078419750410A77C0CCAA2E5541979D5EDF3E975041E9472856A72E5541A0E589C23A9750415830DC9AA52E5541C527E23636975041D160BBC29F2E5541766EC6683B97504186BA5FF29C2E55418A4273FE4A97504173085E44992E5541919989CB5A975041F06DA851972E55417AD4C71F5F9750419EA1CC85A42E5541D2F7B9B8619750412DEAAE12C62E55411456EAA56897504165DE0835C52E55412B501737689750416EF23686082F554175D4C71F5F9750410C87190A0A2F55414506EEF84F9750414068B32E112F5541143814D240975041B172125B1B2F5541088AE73721975041027084F82D2F5541C5090C630E9750410CDA5AC3352F55412D57530BE5965041BB42EADC462F5541D4336172E296504168546329482F554184589ABCDB9650415AD7CC60482F554191B3859DCF965041844E90BA472F5541A443DC63C7965041D53C176E462F5541CF8909ECA6965041F44904FD3D2F5541FD138D439E965041198C5C71392F55412EB1D0988D965041F13644FF452F5541457692448996504120E3723E492F55418BE7822F88965041814E90BA472F55410C608D3A7E965041CCF4EB8A4A2F5541FEE2F6717E965041B52F2ADF4E2F5541B43C9BA17B96504138CADFD1502F5541072B22557A965041D65EC255522F554131A2E5AE79965041B651D5C65A2F55417C48417F7C9650412C919FD8682F554104608D3A7E96504112014912712F5541E01D35C682965041C3472D44762F554183E7822F88965041F2F35B83792F554110EC0EED91965041AD826B987A2F55418E7304E29B965041AD826B987A2F5541CDBE74D1AA965041DF415AD5752F55413DC9D3FDB49650412EFB75A3702F5541632DD759BC965041D5D7830A6E2F55418EC6459BC7965041FF4E47646D2F55416FB9580CD09650413743A1866C2F554120003D3ED596504145C0374F6C2F5541EC1EA319CE965041D5D7830A6E2F554123F15154C1965041207EDFDA702F55413481A81AB9965041E88985B8712F554138946818B1965041A84D00B3762F5541F100CD45A6965041CEB1030F7E2F5541323D524BA196504163FEBAAF832F5541F5138D439E965041303FCC72882F5541FF7D630EA6965041F94A7250892F5541EDED0C48AE96504122C235AA882F5541EDED0C48AE9650411D8DCAC4842F5541E8B8A162AA965041D81BDAD9852F5541CDBE74D1AA965041B7EC4163822F554179D0ED1DAC9650416C46E6927F2F5541620B2C72B09650417AC37C5B7F2F554167409757B4965041884013247F2F554119877B89B99650415994E4E47B2F5541103F50A6BD9650410071F24B792F5541601A175CC4965041A84D00B3762F5541400D2ACDCC965041D1C4C30C762F554120003D3ED596504125B34AC0742F5541FCBDE4C9D99650416B243BAB732F5541B11789F9D69650411C6B1FDD782F5541AFF5DD11CB965041C0346D467E2F5541BD7274DACA96504126D5F5A7802F55416A84ED26CC965041E06305BD812F5541CF550C5AEE9650417059A690772F55413F3EC09EEC965041949BFE04732F5541B35BDFC8EE9650418F66931F6F2F5541E73C79EDF5965041C75AED416E2F55412ADFFFA914975041E967DAD0652F55414B0E982018975041A3F6E9E5662F5541EED7E5891D9750419EC17E00632F55416C3D30971B97504129A45FD6602F55418E8E73F52A975041FE0AF194552F5541C682CD172A975041447CE17F542F5541F71F116D19975041C303D7745E2F5541B08C759A0E975041BABBAB91622F554161B1AEE4079750413C566184642F554161B1AEE4079750419044E837632F55412F146B8F1897504116F25D285D2F55411FA6BFB02C97504131CADFD1502F5541B0DFB6533A975041679C8E0C442F554141F7020F3C97504191135266432F55418C9D5EDF3E9750413E25CBB2442F5541A012F4703E975041A588DB60482F5541360000009673759CD1965041DD102FF72A2F55419B878928B596504158460F760F2F5541C8D19AD7B4965041D44AF742192F554118967BBBB09650418A733CFF172F5541E07B2892AD965041B6B343E8252F554114B35FE1A7965041933974B3292F5541695A5C9FAC965041F99DD88B2C2F5541695A5C9FAC9650417B8FE6F8302F55416F47823FA79650417B8FE6F8302F554192C15174A39650419E09B62D2D2F554148EA9630A2965041504FDF0F232F5541A37EB98EA1965041E5075F5D172F5541BF0B6323A39650419E3AAEDF072F5541E6684E32A8965041A427D47F022F5541609424EB9A965041A631DE45F42E5541A588C3549396504147BA9F0DEC2E554189FB19C091965041AD1E04E6EE2E5541EF5F7E98949650410C96421EF72E5541DFA2167E969650416B0D8156FF2E55418AFB19C091965041B5E43B9A002F554119C7736D8B965041634749A2ED2E5541B3620F9588965041518AE187EF2E55412F67F761929650419D3AAEDF072F55412F67F7619296504174D3B80A112F5541639E2EB18C96504181AD044B062F55413C4143A287965041613D3FDCFB2E55410327F07884965041D37BEFF4F32E55414DFEAABC859650411F5DB4FEE62E55414711851C8B965041370742B9DF2E5541EC7C62BE8B9650412C37003FDC2E554154EBD05C8096504183E806C3D22E554165A838777E96504183E806C3D22E5541375E27C87E9650414FB1CF73D82E5541FF43D49E7B9650414FB1CF73D82E5541AA9CD7E07696504112B46070CC2E554172518C05999650414FE2C725B32E554199AE77149E965041441286ABAF2E55410AE31D67A4965041050B0DE2B12E55419E9193EEA6965041C6039418B42E5541DCC9046A7F965041D3ACE7A6CE2E55410EF731F387965041332426DFD62E554135541D028D965041CDBFC106D42E554152E1C6968E965041AA45F2D1D72E554167814A8B95965041B1321872D22E5541C2156DE994965041C6D29B66D92E5541011DE6B292965041D685F9BAE52E5541E97258F8999650412440D0D8EF2E5541A861D568AA9650416B0D8156FF2E554192B747AEB1965041A427D47F022F5541646D36FFB196504105A91C7EFC2E554180FADF93B3965041613D3FDCFB2E554141F366CAB5965041A80AF0590B2F55411A658309D6965041817C0C992B2F55419673759CD1965041DD102FF72A2F55415E0000000180F3D61097504133C2357B212F55419B1B8FFE0D9750418A733CFF172F5541467492400997504158460F760F2F5541038AFD9C02975041AFF715FA052F5541487E9C06FB965041C7A1A3B4FE2E554160282AC1F39650410C96421EF72E554116516F7DF2965041E91B73E9FA2E55414F6BC2A6F59650413EC36FA7FF2E55410B812D03EF9650412C06088D012F5541898F1F96EA965041CB84BF8E072F5541F6E0A90EE896504158460F760F2F554134E822D8E59650418A733CFF172F5541EB106894E496504195437E791B2F5541CE83BEFFE2965041409C81BB162F5541D953007AE6965041039F12B80A2F5541898F1F96EA965041D171E52E022F5541FAC3C5E8F09650417CCAE870FD2E5541BBBC4C1FF3965041672A657CF62E554183A2F9F5EF9650415C5A2302F32E554134E822D8E59650412136C612FE2E554173EF9BA1E3965041D75E0BCFFC2E5541AC09EFCAE6965041FAD8DA03F92E554139CB3EB2EE9650413FCD796DF12E554159CA2EB1EB9650419EF2E036EF2E5541BEDFA6AEE2965041BB9587F6F92E5541EB0E46D6DF965041981D227DF92E5541DFE6CEADDF965041228D7AE8F72E5541CDE998CBE9965041FAC15C00ED2E554190B00787E59650411CC984FFE92E5541AED5B491DB965041AF6D10CEF92E5541456D8425DA965041981D227DF92E5541E1570C28E39650418FE8EE19E82E5541AD647717D896504180DEFCFCE02E554156F97C8DCC965041F55DDBC0FA2E5541EC904C21CB96504147761DDCFB2E554160B0B63BC9965041512D578AF82E5541EC904C21CB965041670C0861F52E55419CE94780CD965041B7B30C02F32E554138D4CF82D69650413AEE310AE02E5541BF61ADF9CD9650412C557D67DC2E5541768F6712C69650411394519CD82E55410945BCB1BD9650417B8B448ED62E5541066341BDB696504129730273D52E5541276A69BCB3965041B4E25ADED32E554104F20343B3965041791A0714D32E55418DF01E34AE96504165AC93B7D92E5541C6473584AB965041633B563DD62E5541DD9723D5AB96504162CA18C3D22E55412CCEEAFBA59650412BE43FEDD82E554194C5DDEDA3965041F01BEC22D82E5541B9AE80E1A79650412702C5F8D12E5541A3CFCF0AAB9650415EE89DCECB2E554181C8A70BAE9650415B0623DAC42E55419918965CAE965041B7D59EA3C22E5541FD2D0E5AA59650410E5262FEB52E5541A15E9290A796504199C1BA69B42E55415E504292AD96504134AC426CBD2E5541A8228879B596504153422DF1B62E5541156D33DABD965041B757A5EEAD2E5541741E2A98C29650414056C0DFA82E5541AFE67D62C396504188B7C84CAD2E5541A52F44B4C69650414056C0DFA82E55410E987420C896504194DF3F75AD2E55419907CD8BC6965041FE4770E1AE2E55410C2737A6C4965041F50174ADB52E55412CBD212BBE965041B4646129BF2E5541861B607AB896504173C74EA5C82E554190D29928B596504119691056CE2E55414AE2CE35B4965041A549A63BD02E554185AA2200B59650413D52B349D22E5541118BB8E5B69650418F6AF564D32E554159ECC052BB965041BE0AD206D42E5541F5D64855C49650413FC3F0C3D52E55414960C8EAC8965041B4539858D72E5541E3D91273CE96504158841C8FD92E554159DBF781D39650411F2D063FDC2E5541E8BB8D67D596504142A56BB8DC2E5541FAA7FA78E39650419FF6EDCCC52E5541ADE270CCEC965041C650CE3ACD2E5541BE6E6934DF965041E8462D69E22E55412948D71AE4965041E9B76AE3E52E5541DF64C862F4965041BF7B0F81D72E5541044E6B56F8965041B5C4D5D2DA2E5541174BA138EE965041C4CEC7EFE12E554136E18BBDE7965041D3D8B90CE92E5541D63C513AF496504112F4C545F42E5541DB8F09A9FE9650412F976C05FF2E55414BBC2FFE0D97504164FB3E900D2F55417CCD491A1297504189E4E183112F5541CC744EBB0F97504121EDEE91132F55413E237B5B0A9750414183D9160D2F5541D99CC5E30F9750411836B5E3162F55417DCD491A12975041CB702B37202F55410180F3D61097504133C2357B212F5541050100002BA43E2E299750413108AA7F022F55411072D5E82197504113F4C545F42E554124E048451B9750413BD0ACFEE62E5541FFF6A55117975041E7462D69E22E5541356C41AD0D975041F08C299DDB2E5541913BBD760B9750411DBCC8C4D82E55413DB23DE1069750413D52B349D22E55414216BF20F99650417BFC8108DA2E55411D2D1C2DF5965041798B448ED62E5541BE7B256FF09650412502C5F8D12E5541319B8F89EE9650414709EDF7CE2E5541319B8F89EE96504122204A04CB2E55419EE53AEAF69650412CD783B2C72E5541C9A39C97F0965041AB1E65F5C52E5541008A756DEA965041341D80E6C02E5541D64D1A0BDC965041D1890E34B52E5541468B0931D39650419F07B79DAD2E554122A2663DCF9650411CDE5A66A82E55419F780A06CA965041AF93AF05A02E5541C17F3205C7965041B94AE9B39C2E5541E2865A04C4965041AF93AF05A02E5541CB366CB3C3965041332E49B7A82E55414A7E4DF6C19650411CDE5A66A82E55414A7E4DF6C1965041C6E39D56A02E5541F9D64855C4965041E67988DB992E554183D56346BF96504174CB5B3B9F2E5541753CAFA3BB9650416A14228DA22E5541EF30D877AF96504141C7FD59AC2E55416B963EC6A6965041213113D5B22E5541022E0E5AA5965041ACA06B40B12E5541141A7B6BB39650416C855F07A62E5541D37C68E7BC9650413A0308719E2E55414A7E4DF6C19650414E717BCD972E55412706E87CC19650415828B57B942E5541A64DC9BFBF965041C01FA86D922E5541C754F1BEBC965041CB471F96922E554117FCF55FBA9650419E18806E952E554168A3FA00B8965041424904A5972E55415A0A465EB49650411238EA88932E5541A26B4ECBB8965041BEAE6AF38E2E55411DD1B419B0965041C965A4A18B2E554153465075A696504102BDBAF1882E5541DAD32DEC9D96504175DC240C872E55419001E80496965041AE333B5C842E5541EB5F265490965041C412EC32812E5541A3FE1DE78B96504159397E4C7C2E5541D02DBD0E8996504163F0B7FA782E5541FC5C5C368696504179CF68D1752E5541707CC6508496504132DF9DDE742E554150F7A49C7296504142D8C62A942E554171FECC9B6F965041C11FA86D922E55417A3300FF80965041600E3D06722E554123C8057575965041BA6C7B556C2E5541B7EE978E70965041D32DA720702E55411D754D066B9650410C85BD706D2E5541E8107B7B5C9650417F935EBA832E5541A0AF720E58965041C412EC32812E55416E1C52A76896504120F330CD662E5541C23494C269965041A8628938652E5541F8A92F1E60965041172F3BE4582E5541485134BF5D965041718D7933532E554137D604285396504185FBEC8F4C2E5541CA8B59C74A96504102D29058472E5541D1D155FB43965041F638DCB5432E5541FD8FB7A83D9650413BB8692E412E554179F51DF734965041740F807E3E2E5541F83CFF39339650418B5F6ECF3E2E55419AFC45F631965041184004B5402E55411651E37341965041FB8B94244E2E554192A580F150965041D3AFAD6B5B2E5541EE74FCBA4E965041484055005D2E5541EAA34A972F96504181A83421422E5541A4B37FA42E965041184004B5402E5541256C9E6130965041E72EEA983C2E55410658BA2722965041867DF3DA372E5541219BEC3D11965041EC03A952322E554103870804039650416ADA4C1B2D2E55414977D3F6039650419709EC422A2E5541962B94D21296504154FB9B44302E55416498736B23965041FA9C5DF5352E5541988B087C2E965041135E89C0392E55416CCDA6CE34965041B51DD07C382E55414BC67ECF37965041EE74E6CC352E55413476907E379650410E0BD1512F2E55413205530434965041997A29BD2D2E5541E0EC10E932965041528A5ECA2C2E5541D04F4FB0589650417E48C077262E55412C1FCB795696504139C932FF282E554117B1571D5D965041749186C9292E554148C2713961965041227944AE282E5541DF5941CD5F96504120080734252E5541A6022B7D62965041DA173C41242E55410F6B5BE96396504164F8D126262E55419C4BF1CE65965041CE600293272E55411E754D066B965041729186C9292E5541C4160FB770965041E7212E5E2B2E5541B0A89B5A7796504121EA81282C2E5541D6027CC87E9650410A9A93D72B2E554114AD4A8786965041B88151BC2A2E5541A18DE06C88965041D98879BB272E55418086B86D8B965041207944AE282E5541161E88018A965041B88151BC2A2E55419E9A9CA799965041F79C5DF5352E5541772FF368AA9650414DA8E3D5252E554185C8A70BAE9650414CA8E3D5252E5541D7E0E926AF965041F249A5862B2E5541A7CFCF0AAB965041D0427D872E2E55416A963EC6A696504197EB6637312E5541744D7874A3965041263D3A97362E5541E86CE28EA19650413FFE65623A2E5541E86CE28EA19650416276CBDB3A2E55410C6341BDB696504115753718522E554199320ED2D09650418C6553566F2E5541A6CBC274D4965041530E3D06722E55419E85C640DB965041D1E4E0CE6C2E554121AF2278E096504144044BE96A2E5541C5DFA6AEE296504123FD22EA6D2E5541E6E6CEADDF9650410D1E7213712E55419E85C640DB965041D4C65BC3732E5541EE2CCBE1D8965041557F7A80752E55417C7E9E41DE9650418A01D2167D2E5541011938F3E69650411DB726B6742E5541CD14DA11F49650410C3CF71E6A2E55417A09543104975041CE20EBE55E2E5541DB2B88690C97504163477DFF592E5541EA357A86139750419C9E934F572E5541A99867021D975041844EA5FE562E5541CCFF03AB359750410507C4BB582E5541ACE712DB5097504190E759A15A2E5541ACE712DB509750413418DED75C2E55414EB8226837975041A73748F25A2E55417A874DE6189750411B57B20C592E5541BC959DE41297504149F78EAE592E5541DE9CC5E30F9750419B0FD1C95A2E5541DC2B88690C97504111A0785E5C2E5541AC1A6E4D08975041B5D0FC945E2E55418731CB5904975041590181CB602E554104086F22FF9650414F4A471D642E5541D014DA11F4965041BB94F27D6C2E5541FA61FE44EA965041118FAF8D742E5541F50E46D6DF965041FE9179AB7E2E55418F88905EE59650413414D141862E55415913F502EF965041458F00D9902E5541E9D505DDF7965041A6B13411992E55410EBFA8D0FB965041EE123D7E9D2E5541D5679280FE9650414EC4333CA22E554138FB03330A975041EB30C289962E55410BCC640B0D9750416D5A1EC19B2E5541A838F358019750410BB6E33DA82E554111A123C50297504147EF7482AC2E5541C1F91E2405975041F5D63267AB2E5541D8490D750597504181B7C84CAD2E55415891EEB703975041DFF78190AE2E554159022C3207975041BF61970BB52E55417EEBCE250B975041ED903633B22E5541E853FF910C97504156F9669FB32E5541DABA4AEF089750419E5A6F0CB82E5541680C1E4F0E975041E82CB5F3BF2E5541941D386B12975041E70E30E8C62E554167EE9843159750415F815271CF2E554167EE984315975041CA5AC057D42E5541968E75E5159750419103AA07D72E5541B906DB5E169750411EE43FEDD82E55413ABFF91B189750415A1DD131DD2E5541AEDE6336169750417D9536ABDD2E5541E6357A86139750414C13DF14D62E5541C3BD140D13975041F8895F7FD12E5541A045AF9312975041DFC833B4CD2E55411F8D90D61097504197672B47C92E55416F3495770E97504143DEABB1C42E5541EE7B76BA0C9750411EF508BEC02E5541B242E575089750413E8BF342BA2E55419981B9AA04975041A411A9BAB42E5541E928BE4B0297504174008F9EB02E554145F8391500975041728F5124AD2E5541DC8F09A9FE965041701E14AAA92E5541C53F1B58FE965041B29DA122A72E5541395F8572FC965041766410DEA22E55417DDE12EBF996504174F3D2639F2E5541DAAD8EB4F79650418AD2833A9C2E5541E464C862F49650417D39CF97982E554190DB48CDEF96504140003E53942E5541EA39871CEA9650418F36057A8E2E5541DDA0D279E6965041829D50D78A2E55415A777642E1965041D0D317FE842E5541AA1E7BE3DE965041C33A635B812E5541642EB0F0DD96504165FAA917802E5541B4D5B491DB9650419229493F7D2E55413ED4CF82D6965041F8AFFEB6772E55413C639208D39650413D2F8C2F752E55419F07CD8BC696504191A742F4912E5541297725F7C49650414AB77701912E5541AF82FC22D1965041B04EF649732E554183E62C17A7965041E738DCB5432E5541022E0E5AA5965041DC10658D432E554116AD4A87869650411546E93B712E55418ACCB4A184965041C32DA720702E55416A25014CA3965041C4C0763C432E554153D512FBA2965041DA9F2713402E5541C6F47C15A19650411E1FB58B3D2E554143CB20DE9B965041CE77B0EA3F2E554135326C3B9896504159E708563E2E554162610B6395965041639E42043B2E55419D295F2D96965041612D058A372E554161F0CDE8919650413D446296332E5541F7879D7C90965041F65397A3322E5541E037AF2B90965041640F807E3E2E5541D680757D939650412BB8692E412E5541A951D655969650411F90F205412E5541874AAE569996504115D9B857442E554158AAD1B498965041E8A91930472E5541875B772781965041938DCA7E6F2E55410BF610D989965041FE663865742E5541C5E7C0DA8F9650413D1107247C2E5541A4E098DB92965041E0D04DE07A2E554182D970DC959650410E712A827B2E554103928F9997965041B2A1AEB87D2E55413CE9A5E99496504162FAA917802E5541EAD063CE93965041919A86B9802E55416CFABF059996504135CB0AF0822E55412B5DAD81A2965041FC73F49F852E55413CD8DC18AD965041B8F46627882E5541FCAB070FBA96504117A65DE58C2E55410945BCB1BD965041215D9793892E55410BB6F92BC1965041C58D1BCA8B2E5541440D107CBE965041A386F3CA8E2E5541BB0EF58AC3965041E0BF840F932E554147EF8A70C596504155502CA4942E554101EEF6ACDC96504110E267FC7E2E554148DEC19FDD965041C03A635B812E5541870A97A9D09650412EF64B368D2E55418EDF5563C6965041334904A5972E554193A34B4CD4965041E3AEBB3EAB2E55410834F3E0D596504187DF3F75AD2E55411E02DBE6EA96504178C48487BE2E55414E13F502EF9650413F6D6E37C12E554127A84BC4FF965041AA57A5EEAD2E5541717A91AB079750413B8BF342BA2E554138237B5B0A975041544C1F0EBE2E55410430E64AFF9650414E776054C82E5541FCE9E916069750410B691056CE2E5541C50311410C97504103231422D52E55412E6C41AD0D9750410494519CD82E55416BA5D2F11197504140CDE2E0DC2E5541041F1D7A179750417D067425E12E5541299782F317975041119E43B9DF2E5541BF2E52871697504190E524FCDD2E554140E770441897504184BDADD3DD2E5541FB67E3CB1A975041E46EA491E22E5541B7E855531D97504172C077F1E72E5541205186BF1E975041FEA00DD7E92E5541D31ABF9824975041AA244A7CF62E5541059D162F2C975041542A8D6CEE2E5541EFBD65582F9750411A6239A2ED2E554141D6A77330975041B26A46B0EF2E5541A9CD9A652E975041B4DB832AF32E5541D6FC398D2B975041FC3C8C97F72E554155441BD0299750414CE49038F52E55415FFB547E269750411FB5F110F82E5541A75C5DEB2A975041D2EF6764012F55412BA43E2E299750413108AA7F022F554106000000125CDAF6C4965041D621910EEF2E5541D354612DC796504115290AD8EC2E55411D2C1C71C896504131B6B36CEE2E55412EE9838BC6965041D4178748FD2E55419B3A0E04C4965041B19DB713012F5541125CDAF6C4965041D621910EEF2E55410600000056E47E3616975041CD8C510CB82E5541785E4E6B129750413ADEDB84B52E55414427171C189750415C58ABB9B12E55410A03BA2C23975041BED9F3B7AB2E5541F84552122597504140CB0125B02E554156E47E3616975041CD8C510CB82E554105000000F63B484C33975041F03719F38E2E55413543C115319750418AD3B41A8C2E5541F4313E8641975041B33AAAEF822E5541B52AC5BC43975041199F0EC8852E5541F63B484C33975041F03719F38E2E554105000000B178A19415975041810D7D667A2E5541D3F270C9119750411BA9188E772E5541B55BBD6E1E975041678ADD976A2E55411BC0214721975041725A1F126E2E5541B178A19415975041810D7D667A2E554106000000A677676837975041619DB7F76F2E55415CA0AC243697504105099599702E554112C9F1E034975041B16198DB6B2E554176234CF34597504124A048F4632E5541371CD32948975041012679BF672E5541A677676837975041619DB7F76F2E5541060000000DEDF96814975041942B31DE342E5541DE4C1DC7139750412952C3F72F2E55414E79431C23975041347A3A20302E5541DB59D90125975041631A17C2302E5541F3A9C75225975041DA1BFCD0352E55410DEDF96814975041942B31DE342E554107000000665C0189F6965041A246ECCB232E554137BC24E7F596504195AD3729202E55411F6C3696F596504114F5186C1E2E5541665C0189F6965041933CFAAE1C2E5541D517EA63029750414124B8931B2E554103B8C605039750412DB64437222E5541665C0189F6965041A246ECCB232E5541070000008403B5DED7965041AB7B1F2F352E554178DB3DB6D79650416F428EEA302E5541656DCA59DE965041CB110AB42E2E554172067FFCE1965041CB110AB42E2E554147481D4FE8965041B3C11B632E2E554153709477E896504113731221332E55418403B5DED7965041AB7B1F2F352E55410A000000CE68CAE1B2965041541025A5292E55418778FFEEB19650412F2782B1252E55410AA25B26B79650415C5621D9222E5541A3AA6834B9965041CF758BF3202E554125D4C46BBE965041376D7EE51E2E5541E15437F3C09650417235D2AF1F2E554110F51395C1965041E7C57944212E5541F8A42544C19650413B4FF9D9252E55412F8BFE19BB9650412F2782B1252E5541CE68CAE1B2965041541025A5292E55411E0000003C4EA1D63296504174396FBAA22E55414CDA993E25965041B5D6813E992E5541C9B03D0720965041E2052166962E55414ECDDD031496504150D2D2118A2E55411F3ECA32FB955041E8DADF1F8C2E5541614C1A31F595504122A333EA8C2E554184C47FAAF59550416722C1628A2E554197B0ECBB03965041E669A2A5882E55418442795F0A965041DA412B7D882E5541FFA7DFAD019650419451608A872E55411CDE5589DF9550414CF0571D832E554156A6A953E0955041906FE595802E554141342961109650414E619597862E5541A92B1C530E965041AA301161842E55413BE170F205965041A4DD58F2792E5541FFA7DFAD01965041168C8592742E55418A17381900965041AC235526732E5541D6DCC1C5F6955041068293756D2E5541177AD449ED9550419BA8258F682E5541461AB1EBED9550413D686C4B672E5541679FD29FFF955041141B4818712E55412E48BC4F02965041AC235526732E554153315F43069650410CD54BE4772E55414D5CA08910965041B5588889842E5541F6DFDC2E1D965041762CB37F912E5541F8501AA920965041614D02A9942E55417616F5A033965041E758D9D4A02E5541C82E37BC3496504116F9B576A12E55415FC606503396504174396FBAA22E55413C4EA1D63296504174396FBAA22E55410D0000001034D815F4955041F17C4367CA2E554145A97371EA955041EB298BF8BF2E55411AEB11C4F095504169002FC1BA2E5541040C61EDF39550412481A148BD2E55414AFC2BE0F4955041BB1871DCBB2E554112A51590F7955041AFF0F9B3BB2E5541C1FD10EFF9955041C740E804BC2E5541378EB883FB955041BB1871DCBB2E55412DD77ED5FE955041EAB84D7EBC2E55415A061EFDFB955041EB298BF8BF2E55414D6D695AF8955041E172514AC32E5541D94DFF3FFA955041A81B3BFAC52E55411034D815F4955041F17C4367CA2E55410A000000A4D863E4039650417699E363BE2E55413B7033780296504101093CCFBC2E55415EE898F10296504197A00B63BB2E55415EE898F1029650412E38DBF6B92E5541C750C95D04965041AD7FBC39B82E554131B9F9C905965041A1574511B82E55414A7A259509965041DC1F99DBB82E55413E52AE6C09965041DD90D655BC2E55416059D66B069650415E49F512BE2E5541A4D863E4039650417699E363BE2E55410C0000006D855A2ADD9550418F5A0F2FC22E5541773C94D8D9955041A539C005BF2E5541AE226DAED3955041DC1F99DBB82E5541003BAFC9D49550415B677A1EB72E554169A3DF35D69550412CC79D7CB62E5541EA5BFEF2D7955041DAAE5B61B52E5541C954D6F3DA955041651EB4CCB32E55416D855A2ADD955041651EB4CCB32E5541BD2C5FCBDA955041DAAE5B61B52E5541031D2ABEDB955041209F2654B62E55412A770A2CE395504153217EEABD2E55416D855A2ADD9550418F5A0F2FC22E55410600000031CECF30C49550411102651BDC2E5541764D5DA9C1955041CB119A28DB2E5541B286EEEDC59550415DC7EEC7D22E554156B77224C895504117D723D5D12E554156B77224C8955041B0DF30E3D32E554131CECF30C49550411102651BDC2E554109000000D2E7721B37965041FB869E76A12E55418810B8D735965041561BC1D4A02E55413E39FD9334965041DEF9F4E19F2E5541FF3184CA369650411D016EAB9D2E554149093F0E3896504112312C319A2E55416596E8A239965041903F1EC4952E5541278F6FD93B9650410761EAB6962E5541DDB7B4953A965041D429B3679C2E5541D2E7721B37965041FB869E76A12E55410A0000002CAEA037AE955041AFBC1435362F5541FF7E0110B1955041D90939682C2F5541E99F5039B49550417BC97F242B2F55418DD0D46FB695504187F1F64C2B2F55411AB16A55B8955041FC819EE12C2F55416A586FF6B59550414654E4C8342F554199F84B98B6955041AFBC1435362F554181A85D47B69550413C9DAA1A382F55415197432BB2955041A505DB86392F55412CAEA037AE955041AFBC1435362F55410E000000877D1C01AC9550413D1FB165232F5541E34C98CAA9955041DFDEF721222F55419D5CCDD7A89550413BAE73EB1F2F5541CCFCA979A9955041D145437F1E2F5541FB9C861BAA955041508D24C21C2F554159DD3F5FAB955041F34C6B7E1B2F5541DA955E1CAD955041AC5CA08B1A2F5541C4B6AD45B0955041666CD598192F554197870E1EB3955041082C1C55182F5541520881A5B5955041C23B5162172F5541BC70B111B7955041D98B3FB3172F5541F63805DCB795504137CCF8F6182F5541DFE8168BB7955041CFD405051B2F5541877D1C01AC9550413D1FB165232F55417D000000803F3AF95F955041A0B222182F2F5541E8362DEB5D955041B691D3EE2B2F5541B99650495D955041B4209674282F55418AF673A75C955041609716DF232F554138DE318C5B9550414565AD991C2F5541E6C5EF705A955041EF6AF089142F55418985362D59955041EC8875950D2F5541ACFD9BA65995504125E08BE50A2F5541529F5D575F955041D1560C50062F554156700F7B7E95504143873F3BEC2E5541B89243B386955041074EAEF6E72E5541D5176567989550410F05E8A4E42E554154DD3F5FAB955041D2CB5660E02E5541D877D910B4955041E8AA0737DD2E5541F0C7C761B4955041B90A2B95DC2E55414A2606B1AE9550411F91E00CD72E5541CDD168339F955041BA8C31E0C72E554133581EAB99955041C4436B8EC42E5541C60D734A9195504145FC894BC62E5541BAE5FB2191955041B81BF465C42E55416087BDD2969550414EB3C3F9C22E55410247048F95955041AE823FC3C02E5541BB56399C94955041C461F099BD2E55410D6F7BB795955041D940A170BA2E5541EAF6153E95955041C07F75A5B62E554152EE083093955041E015602AB02E554100D6C61492955041D27CAB87AC2E554198DED32294955041BB2CBD36AC2E5541F61E8D66959550418F6E5B89B22E554183FF224C97955041FB47C96FB72E55419A4F119D9795504137815AB4BB2E55415F87BDD296955041E7D95513BE2E55416BAF34FB969550418B0ADA49C02E554132581EAB999550413B63D5A8C22E5541C1A9F10A9F955041F6E34730C52E55419F20C3C0B69550418E6A4EF3DB2E55411B75603EC6955041FD2537CEE72E5541E870025DD39550419A10BFD0F02E5541113C2045DE955041632AE6FAF62E554151572C7EE9955041DA2BCB09FC2E5541168FD8B3E8955041201C96FCFC2E5541A9442D53E09550411383E159F92E5541D4028F00DA95504128629230F62E55417E08D2F0D1955041D4D8129BF12E55410696AF67C99550412E3751EAEB2E5541B09BF257C19550417D6D1811E62E55414F79BE1FB995504191DB8B6DDF2E5541C298283AB79550414AEBC07ADE2E55411E68A403B5955041561338A3DE2E554162E7317CB295504191DB8B6DDF2E55414FFBC46AA4955041D93C94DAE32E55411997F2DF95955041B7356CDBE62E55411CFB731F8895504173B6DE62E92E5541607A019885955041B9A6A955EA2E5541F711D12B84955041220FDAC1EB2E5541EBE9590384955041C63F5EF8ED2E55414B9B50C1889550418D66415D052F5541CB536F7E8A95504183AF07AF082F5541299428C28B955041D5C749CA092F55416E13B63A89955041A6276D28092F5541ED5A977D879550418D66415D052F55419B4255628695504195AC3D91FE2E5541F711D12B84955041A7A97373F42E55418DA9A0BF82955041C63F5EF8ED2E5541A4F98E1083955041F36EFD1FEB2E554168C0FDCB7E955041BA17E7CFED2E5541B4AFFF5C72955041AC0413D3F82E554109D6DFB57495504163A797D4F92E55413130AF7F76955041E80BCA81FB2E554185568FD878955041FCB8B166FC2E5541F29B98DB7A95504115D8DA10FC2E554101D73EFB7C955041C1B1FAB7F92E5541BCEB04C27C955041B1765498F72E55413787D2147B955041E726E8B1F52E55417700CB887C95504149A38C5AF42E55414250376F7E9550412149BD90F22E55416538C57381955041110E1771F02E5541A6B1BDE7829550417E532074F22E5541082E62908195504135F6A475F32E5541853B71A87E9550416250743FF52E5541FB64FD357E955041728B1A5FF72E554180C92FE37F955041FC618ED1F72E5541D5EF0F3C82955041596CF1B4F72E554177E5AC5882955041DFD02362F92E55410F12E51A7F95504124BC5D9BF92E5541CE98ECA67D9550416435560FFB2E55418E1FF4327C955041D17A5F12FD2E5541254C2CF578955041526D50FAFF2E5541BD7864B77595504135DCE58A012F554128D98BEA719550419EAFADC8042F55418EC771586F955041CA7BBE57052F5541F5B557C66C9550410F67F890052F55413E13D3C46B95504171E39C39042F5541F927998B6B9550413EC06815FF2E5541B9E908B867955041C5BD57AD022F5541B39650495D9550410368266C0A2F554109910D59659550410F909D940A2F55414FFFD1007B9550415F37A235082F55416A313B46829550415F37A235082F55411EC18A8A909550417E7566EE0A2F5541EC323DEBAA955041CAB7C3BC0F2F55411522F339CC955041B37D7CE2152F55411FECB6D9D795504182CDE8C8172F554121D198A9DD9550413DE2AE8F172F554154F4CCCDE29550411588DFC5152F5541D0747CF0E69550417B76C533132F554156D9AE9DE89550413BFDCCBF112F554190FB837CE5955041D09CA58C152F55417EDBFB8CDD95504138706DCA182F55417884D8F7D8955041C246E13C192F55413526FEB3D19550410CA45C3B182F5541C4163111C49550418BB16B53152F554130C7538FA695504113A3FDF50F2F55415955A12E8C9550418A7566EE0A2F5541F30E39E681955041621B9724092F5541138426E07D955041BD25FA07092F5541BF05C4AC6E9550415BA9555F0A2F5541D27547E75C955041CC60A0270B2F5541D6E788AC5B955041AFCF35B80C2F55414C11153A5B955041923ECB480E2F554170F9A23E5E9550413771CC0F212F5541269C27405F9550418D7C8E38292F55414EF6F60961955041C51104222D2F55411062E06565955041F8343846322F5541803F3AF95F955041A0B222182F2F554107000000565D28BEB2955041F22CB1B60B2F554173EE922DB195504199948F980A2F5541879B7A12B2955041446EAF3F082F5541EF6E4250B59550411C14E075062F5541DEA63C3BBA95504196AFADC8042F554106010C05BC955041A1781223082F5541565D28BEB2955041F22CB1B60B2F5541050000009449C13CBB955041324E2750002F55413BB19F1EBA9550412CF703BBFB2E5541BA163111C4955041080F76B6F82E5541B5A4EF4BC59550415451D384FD2E55419449C13CBB955041324E2750002F55410E000000D52C74E694955041D8EAE24CEB2E5541216FD1B499955041BFCBB9A2EB2E55415804479E9D955041F0090CF7EA2E5541EDA31F6BA19550411DD61C86EB2E5541EDA31F6BA1955041A23A4F33ED2E5541A8B8E531A19550416D8ABB19EF2E5541B19C68BC9E9550410B0E1771F02E55418EB4DAB79B955041C622DD37F02E5541F4A2C02599955041F2EEEDC6F02E5541E0F5D840989550414B870FE5F12E55415B91A69396955041BD3E5AADF22E55416475291E949550416E6F9DE9F42E55417C9452C8939550419956CCA8EF2E5541D52C74E694955041D8EAE24CEB2E55413000000084704A586A95504177C62BD6402E5541DECE88A7649550416358B879472E5541098DEA545E9550415D83F9BF512E5541071CADDA5A955041ED450A9A5A2E55411F6C9B2B5B955041A08080ED632E5541A9DBF39659955041E8E1885A682E554111D3E68857955041983A84B96A2E5541A86AB61C56955041E20CCAA0722E5541C971DE1B53955041A16FB71C7C2E5541AE3F75D64B955041E3FB00D08A2E55415B2733BB4A9550412B5D093D8F2E55411155EDD3429550410E385C32992E5541F6B1461438955041C4C58AF4AC2E5541CDE6282C2D955041428B65ECBF2E55414ABDCCF427955041767EFAFCCA2E5541494C8F7A2495504105D0CD5CD02E55412E1A26351D955041D9116CAFD62E554144F9D60B1A95504138C3626DDB2E5541C91577080E955041FD780858EF2E5541A2BB969A0695504111D6B2E3002F5541F3629B3B049550417DAF20CA052F554149DF5E96F794504137AE8C061D2F5541D44EB701F6945041090EB0641C2F55419522E2F702955041081F7935042F5541C633FC13079550416AC3B3B8F72E554119BD7BA90B955041B6883D65EE2E55418F4D233E0D955041B6883D65EE2E5541B5A703AC14955041F5B4126FE12E55412B38AB40169550414F1351BEDB2E554150214E341A95504140095FA1D42E5541EA9A98BC1F955041E15768E3CF2E55414477D0C02E955041F4B81F05B82E5541C52FEF7D30955041E890A8DCB72E55416C42EEA8399550410EFC511BA72E55411AC62A4E4695504161255D07902E5541E3DF51784C955041C53AD504872E5541723125D85195504162A763527B2E5541502AFDD854955041C6BCDB4F722E55410DAB6F605795504129F0D858622E5541266C9B2B5B95504150CCBF11552E55413023D5D957955041F38B06CE532E55415FC3B17B58955041086BB7A4502E5541512AFDD8549550417062AA964E2E5541823B17F558955041973E914F412E554107D6B0A6619550418E8757A1442E554164166AEA629550414908CA28472E554151A8F68D69955041F30D0D193F2E554184704A586A95504177C62BD6402E55410500000007112645C69450414F5F8F2D282E5541B5F8E329C5945041AB2E0BF7252E554166C21C03CB9450413C73221C1A2E554176CC0E20D294504186456803222E554107112645C69450414F5F8F2D282E554106000000491F7643C0945041C7E27A87182E55417F94119FB69450415C090DA1132E5541A8E135D2AC945041644F09D50C2E55412B0B9209B29450418274B6DF022E55419DA8F5D8C494504114A804340F2E5541491F7643C0945041C7E27A87182E5541
+</a>
+
+<b>
+01060000000100000001030000000D0000006C00000069A516EC1B965041A77C82D55B2E55414A52A361239650418BF83160512E55418B44726024965041C48B4F06502E5541A7C26B99149650416762DBD1412E55414200385006965041C02EB79D342E5541C39AED42089650418105F295312E5541BFDA6EFE3B965041990A35FD602E554172303E1A5596504170C40775812E55418617ABAD5C965041F5C893328B2E5541D7F271636396504127976D599A2E5541956EC17A6C9650414AD5F0B9B12E554146B5A5AC7196504121B5432DC22E55416C61D4EB749650416D263418C12E5541AB8A99F377965041409CB0C0C92E554149EA10927596504193BFA259CC2E554109AE8B8C7A965041F881D6A2DA2E55415CD17D257D965041CAE4924DEB2E55416906E90A81965041AD0C11A4F72E55416906E90A81965041109AD907022F55413EC490968596504121391BB80D2F55410E05A2598A965041F1666C7D1A2F5541CEC81C548F96504186E88E03242F55418F8C974E94965041F5BD824A2A2F554193F66D199C965041289F1C6F312F5541E4D134CFA2965041EDDF2D32362F554174D6C08CAC965041BD203FF53A2F5541C8F9B225AF965041956525CC232F55416EF49660D49650413964DE1A2D2F5541E011B68AD696504167DBA1742C2F55415451809CE49650418D7410B6372F5541D5D87591EE9650419ABC3B99332F5541C33934E1E2965041267D7187252F5541C313B4E5F2965041C3EFA8231B2F554144AE69D8F4965041F1792C7B122F5541C6481FCBF69650410574590C122F55416A47D81900975041B6BA3D3E172F55413CAA94C410975041078344F6252F55411B683C5015975041564F20C2182F55415AA4C15510975041958BA5C7132F55411B683C5015975041C1CDFD3B0F2F55413C97D4C618975041C3026921132F55415B8759D5339750412A2A30CEF92E55417EC5DC354B975041B832919FE72E55413C54EC4A4C9750416757CAE9E02E5541593F2EF2379750414406878BD12E5541E4FF63E029975041322E05E2DD2E5541D34D62322697504112FF6C6BDA2E55410A99D221359750410FDDC183CE2E5541987BB3F732975041810DA1ABC82E5541E734CFC52D975041CB4926B1C32E5541D7B738FD2D9750410B86ABB6BE2E5541F6B1658E2D975041CC5CE6AEBB2E55410CCE3D0739975041BCF20FE4B32E55413C7A6C463C975041488DC5D6B52E5541EDC05078419750410977C0CCAA2E55419A9D5EDF3E975041E8472856A72E55419CE589C23A9750415830DC9AA52E5541C827E23636975041D460BBC29F2E5541796EC6683B97504185BA5FF29C2E55418D4273FE4A97504174085E44992E5541929989CB5A975041F36DA851972E554175D4C71F5F97504199A1CC85A42E5541D3F7B9B8619750412EEAAE12C62E55411556EAA56897504160DE0835C52E5541295017376897504170F23686082F5541843D7678689750416E5B5381082F55417E3A3B8768975041FF6B8E7E082F554139E5DB8B6C9750417F784A33082F554130A2AB836D975041BB1686F6012F5541EF5472CF6D975041EA943B6BD12E55417A90392E6C975041AC8A32CBC12E5541E0D65D9F649750417F69D369A32E5541B14066BB5F975041DF9DE1A08D2E5541B40843A85D9750416422672F912E554160AD3BEA589750415C7DCA08892E55419F66739453975041613C9CD87F2E55410E1A111952975041F0A233FD6F2E5541C58FF16452975041FC6A10EA6D2E55416111AAE0579750416BBA3F786D2E55414A78E5E95497504143ABF6505D2E554133DF20F35197504143ABF6505D2E5541D3BB3C484F97504189EBDCB74C2E5541509B25B04A9750411F5B7FF9432E55411DAACAF24D975041B26FBE61432E55416734EAA64D9750415F14B7A33E2E5541077574F249975041CD63E6313E2E55415F2BDF8946975041B280E8ED2A2E5541F4D60A8DFB9650419B94DF8C102E554172497AE1F09650419D5CBC790E2E55419069ED94E89650417897AC9F0E2E5541505D7180D69650418F307196112E5541B35556FBB896504130444627162E5541AF60F1A989965041F64F74A31D2E554106312FA663965041B577DDD0232E5541C0E3846148965041A6E723F7272E55410AE33C982E96504173925A432C2E55411461E0371C965041D3B53EEE2E2E554157757BBB0E965041E07D1BDB2C2E55415EFC29780396504181BEA526292E5541B3EAB7220296504196F3FB262D2E5541BDBB9F2C07965041D1ED6101312E554180F95C6505965041E88626F8332E554182C1395203965041F2570E02392E5541815DCB5B04965041A5728B74412E5541414025BB0A9650414CF443F0462E5541AF24B9CF1C9650417DAD8D6C542E5541102C60EB139650417DAD8D6C542E554169A516EC1B965041A77C82D55B2E5541360000009573759CD1965041DA102FF72A2F55419E878928B59650415A460F760F2F5541C8D19AD7B4965041D04AF742192F554119967BBBB09650418E733CFF172F5541E07B2892AD965041B4B343E8252F554119B35FE1A79650418E3974B3292F5541695A5C9FAC965041FC9DD88B2C2F5541695A5C9FAC965041768FE6F8302F55416D47823FA7965041768FE6F8302F554194C15174A39650419D09B62D2D2F554148EA9630A2965041514FDF0F232F5541A77EB98EA1965041E3075F5D172F5541BE0B6323A39650419B3AAEDF072F5541E4684E32A8965041A027D47F022F55415F9424EB9A965041A431DE45F42E5541A188C3549396504145BA9F0DEC2E554189FB19C091965041A81E04E6EE2E5541ED5F7E98949650410796421EF72E5541DAA2167E96965041660D8156FF2E554189FB19C091965041B3E43B9A002F554117C7736D8B965041674749A2ED2E5541B4620F9588965041548AE187EF2E55412A67F761929650419B3AAEDF072F55412A67F7619296504171D3B80A112F5541649E2EB18C96504184AD044B062F55413E4143A287965041623D3FDCFB2E55410427F07884965041CE7BEFF4F32E554151FEAABC859650411F5DB4FEE62E55414C11851C8B965041370742B9DF2E5541ED7C62BE8B9650412837003FDC2E554155EBD05C8096504187E806C3D22E554168A838777E96504187E806C3D22E5541335E27C87E9650414EB1CF73D82E5541FA43D49E7B9650414EB1CF73D82E5541AA9CD7E07696504115B46070CC2E554172518C05999650414DE2C725B32E554198AE77149E965041491286ABAF2E55410AE31D67A4965041000B0DE2B12E5541A29193EEA6965041C3039418B42E5541DFC9046A7F965041D8ACE7A6CE2E554113F731F387965041372426DFD62E554139541D028D965041C9BFC106D42E554150E1C6968E965041AD45F2D1D72E554163814A8B95965041B2321872D22E5541C3156DE994965041C4D29B66D92E5541001DE6B292965041D385F9BAE52E5541E87258F8999650411F40D0D8EF2E5541A761D568AA965041660D8156FF2E55418FB747AEB1965041A027D47F022F5541656D36FFB196504103A91C7EFC2E55417CFADF93B3965041623D3FDCFB2E55413FF366CAB5965041AA0AF0590B2F55411A658309D6965041857C0C992B2F55419573759CD1965041DA102FF72A2F55415E000000FF7FF3D6109750412FC2357B212F55419C1B8FFE0D9750418E733CFF172F554141749240099750415A460F760F2F5541048AFD9C02975041AEF715FA052F5541467E9C06FB965041C6A1A3B4FE2E55415D282AC1F39650410796421EF72E554111516F7DF2965041EC1B73E9FA2E55414A6BC2A6F59650413CC36FA7FF2E55410D812D03EF9650412906088D012F5541888F1F96EA965041D084BF8E072F5541FAE0A90EE89650415A460F760F2F554137E822D8E59650418E733CFF172F5541EB106894E496504192437E791B2F5541C983BEFFE2965041429C81BB162F5541D853007AE6965041FF9E12B80A2F5541888F1F96EA965041D571E52E022F5541FAC3C5E8F09650417ACAE870FD2E5541BCBC4C1FF3965041672A657CF62E554183A2F9F5EF965041585A2302F32E554137E822D8E59650412536C612FE2E554175EF9BA1E3965041D95E0BCFFC2E5541AE09EFCAE6965041FFD8DA03F92E554137CB3EB2EE96504141CD796DF12E554158CA2EB1EB9650419FF2E036EF2E5541BEDFA6AEE2965041B69587F6F92E5541EE0E46D6DF965041971D227DF92E5541E3E6CEADDF965041248D7AE8F72E5541D1E998CBE9965041F8C15C00ED2E55418EB00787E59650411DC984FFE92E5541AAD5B491DB965041AC6D10CEF92E5541426D8425DA965041971D227DF92E5541DD570C28E39650418BE8EE19E82E5541B1647717D896504183DEFCFCE02E55415BF97C8DCC965041F55DDBC0FA2E5541E8904C21CB96504148761DDCFB2E554161B0B63BC99650414E2D578AF82E5541E8904C21CB965041690C0861F52E554199E94780CD965041B8B30C02F32E554133D4CF82D69650413AEE310AE02E5541C361ADF9CD9650412B557D67DC2E5541718F6712C69650411294519CD82E55410A45BCB1BD965041808B448ED62E5541026341BDB69650412D730273D52E5541276A69BCB3965041AFE25ADED32E554108F20343B39650417C1A0714D32E554191F01E34AE96504165AC93B7D92E5541CB473584AB965041603B563DD62E5541E09723D5AB96504167CA18C3D22E55412ACEEAFBA596504126E43FEDD82E554198C5DDEDA3965041F21BEC22D82E5541BCAE80E1A79650412802C5F8D12E5541A1CFCF0AAB9650415EE89DCECB2E55417CC8A70BAE965041600623DAC42E55419B18965CAE965041B9D59EA3C22E5541012E0E5AA59650410F5262FEB52E55419D5E9290A79650419DC1BA69B42E55415D504292AD96504138AC426CBD2E5541A4228879B59650414E422DF1B62E5541156D33DABD965041B357A5EEAD2E5541771E2A98C29650413C56C0DFA82E5541ABE67D62C39650418AB7C84CAD2E5541A52F44B4C69650413C56C0DFA82E55410D987420C896504194DF3F75AD2E55419B07CD8BC6965041FC4770E1AE2E5541092737A6C4965041F00174ADB52E55412ABD212BBE965041B4646129BF2E5541891B607AB89650416EC74EA5C82E55418FD29928B596504119691056CE2E554146E2CE35B4965041A149A63BD02E554185AA2200B59650413D52B349D22E55410C8BB8E5B6965041906AF564D32E554159ECC052BB965041BA0AD206D42E5541F4D64855C496504141C3F0C3D52E55414C60C8EAC8965041B4539858D72E5541E2D91273CE9650415B841C8FD92E554159DBF781D3965041202D063FDC2E5541EBBB8D67D596504140A56BB8DC2E5541FCA7FA78E39650419EF6EDCCC52E5541ACE270CCEC965041C650CE3ACD2E5541B96E6934DF965041EB462D69E22E55412648D71AE4965041E5B76AE3E52E5541DE64C862F4965041BE7B0F81D72E5541024E6B56F8965041B8C4D5D2DA2E5541144BA138EE965041C1CEC7EFE12E554135E18BBDE7965041D4D8B90CE92E5541D43C513AF496504116F4C545F42E5541D68F09A9FE9650412D976C05FF2E554146BC2FFE0D97504168FB3E900D2F55417ECD491A129750418CE4E183112F5541CD744EBB0F9750411EEDEE91132F554142237B5B0A9750413F83D9160D2F5541D89CC5E30F9750411836B5E3162F55417ECD491A12975041C7702B37202F5541FF7FF3D6109750412FC2357B212F5541050100002BA43E2E299750413108AA7F022F55410D72D5E82197504116F4C545F42E554123E048451B97504138D0ACFEE62E554100F7A55117975041EB462D69E22E5541316C41AD0D975041EC8C299DDB2E5541953BBD760B9750411CBCC8C4D82E55413DB23DE1069750413D52B349D22E55414016BF20F99650417AFC8108DA2E55411D2D1C2DF5965041758B448ED62E5541BB7B256FF09650412802C5F8D12E5541339B8F89EE9650414309EDF7CE2E5541339B8F89EE9650411F204A04CB2E55419AE53AEAF696504130D783B2C72E5541C5A39C97F0965041A81E65F5C52E5541058A756DEA965041311D80E6C02E5541D44D1A0BDC965041D1890E34B52E5541448B0931D39650419E07B79DAD2E554120A2663DCF9650411DDE5A66A82E55419F780A06CA965041AC93AF05A02E5541C57F3205C7965041BD4AE9B39C2E5541DF865A04C4965041AC93AF05A02E5541CA366CB3C3965041322E49B7A82E55414E7E4DF6C19650411DDE5A66A82E55414E7E4DF6C1965041C1E39D56A02E5541F4D64855C4965041E27988DB992E554188D56346BF96504178CB5B3B9F2E5541793CAFA3BB9650416714228DA22E5541EF30D877AF96504141C7FD59AC2E554169963EC6A6965041203113D5B22E5541012E0E5AA5965041ADA06B40B12E5541121A7B6BB39650416C855F07A62E5541D77C68E7BC965041390308719E2E55414E7E4DF6C196504150717BCD972E55412406E87CC19650415628B57B942E5541A74DC9BFBF965041C41FA86D922E5541CC54F1BEBC965041CF471F96922E55411BFCF55FBA9650419F18806E952E55416AA3FA00B8965041464904A5972E55415B0A465EB49650410D38EA88932E55419E6B4ECBB8965041C0AE6AF38E2E554118D1B419B0965041C665A4A18B2E554154465075A696504100BDBAF1882E5541D9D32DEC9D96504179DC240C872E55419101E80496965041B3333B5C842E5541E65F265490965041C312EC32812E5541A3FE1DE78B96504156397E4C7C2E5541D32DBD0E8996504167F0B7FA782E5541F85C5C368696504177CF68D1752E5541717CC650849650412EDF9DDE742E554151F7A49C7296504141D8C62A942E554176FECC9B6F965041C41FA86D922E5541773300FF809650415E0E3D06722E554121C8057575965041BE6C7B556C2E5541B4EE978E70965041D72DA720702E55411E754D066B9650411185BD706D2E5541E3107B7B5C9650417E935EBA832E5541A0AF720E58965041C312EC32812E55416D1C52A7689650411DF330CD662E5541C03494C269965041AA628938652E5541FCA92F1E60965041162F3BE4582E55414B5134BF5D965041758D7933532E554133D604285396504181FBEC8F4C2E5541CD8B59C74A96504100D29058472E5541CED155FB43965041F138DCB5432E5541FA8FB7A83D96504140B8692E412E554174F51DF7349650416F0F807E3E2E5541F73CFF39339650418F5F6ECF3E2E554199FC45F631965041164004B5402E55411351E37341965041FE8B94244E2E554197A580F150965041D1AFAD6B5B2E5541F174FCBA4E965041444055005D2E5541E8A34A972F9650417EA83421422E55419FB37FA42E965041164004B5402E5541276C9E6130965041E82EEA983C2E55410B58BA2722965041867DF3DA372E55411E9BEC3D11965041F003A952322E554102870804039650416EDA4C1B2D2E55414B77D3F6039650419309EC422A2E5541912B94D21296504153FB9B44302E55416998736B23965041FF9C5DF5352E5541958B087C2E965041185E89C0392E554169CDA6CE34965041BA1DD07C382E55414FC67ECF37965041EA74E6CC352E55412F76907E379650410A0BD1512F2E55413605530434965041987A29BD2D2E5541E2EC10E9329650414F8A5ECA2C2E5541D44F4FB0589650417A48C077262E55412D1FCB795696504136C932FF282E554117B1571D5D965041749186C9292E554145C2713961965041217944AE282E5541DD5941CD5F9650411D080734252E5541A3022B7D62965041DE173C41242E55410B6B5BE96396504166F8D126262E55419D4BF1CE65965041CE600293272E55411E754D066B965041749186C9292E5541C9160FB770965041E7212E5E2B2E5541B3A89B5A7796504125EA81282C2E5541DB027CC87E965041069A93D72B2E554118AD4A8786965041BD8151BC2A2E55419F8DE06C88965041D88879BB272E55418486B86D8B965041217944AE282E5541111E88018A965041BD8151BC2A2E5541A09A9CA799965041F49C5DF5352E5541782FF368AA96504151A8E3D5252E554186C8A70BAE96504151A8E3D5252E5541DAE0E926AF965041F149A5862B2E5541ACCFCF0AAB965041CC427D872E2E554169963EC6A696504192EB6637312E5541794D7874A3965041283D3A97362E5541E76CE28EA196504141FE65623A2E5541E76CE28EA19650416176CBDB3A2E55410C6341BDB696504117753718522E55419E320ED2D09650418D6553566F2E5541A2CBC274D4965041530E3D06722E5541A085C640DB965041D2E4E0CE6C2E554122AF2278E096504140044BE96A2E5541C8DFA6AEE296504125FD22EA6D2E5541E3E6CEADDF9650410A1E7213712E5541A085C640DB965041D0C65BC3732E5541EF2CCBE1D8965041587F7A80752E55417B7E9E41DE9650418A01D2167D2E5541011938F3E696504119B726B6742E5541C914DA11F49650410C3CF71E6A2E55417709543104975041CB20EBE55E2E5541DE2B88690C9750415E477DFF592E5541E7357A8613975041989E934F572E5541AB9867021D975041844EA5FE562E5541CAFF03AB359750410007C4BB582E5541AEE712DB5097504192E759A15A2E5541AEE712DB509750413918DED75C2E554151B8226837975041A73748F25A2E55417D874DE6189750412057B20C592E5541BD959DE41297504149F78EAE592E5541E29CC5E30F9750419D0FD1C95A2E5541DE2B88690C9750410FA0785E5C2E5541B01A6E4D08975041B6D0FC945E2E55418231CB59049750415D0181CB602E554100086F22FF9650414C4A471D642E5541D414DA11F4965041BD94F27D6C2E5541FB61FE44EA9650410F8FAF8D742E5541F80E46D6DF965041FD9179AB7E2E55418E88905EE59650412F14D141862E55415D13F502EF965041478F00D9902E5541EDD505DDF7965041A3B13411992E554111BFA8D0FB965041F0123D7E9D2E5541D7679280FE96504153C4333CA22E554137FB03330A975041E730C289962E554107CC640B0D975041695A1EC19B2E5541A738F3580197504108B6E33DA82E55410FA123C5029750414BEF7482AC2E5541C0F91E2405975041F8D63267AB2E5541D5490D75059750417FB7C84CAD2E55415891EEB703975041DDF78190AE2E55415D022C3207975041BC61970BB52E554180EBCE250B975041EB903633B22E5541E853FF910C97504154F9669FB32E5541DABA4AEF08975041A15A6F0CB82E5541650C1E4F0E975041E82CB5F3BF2E5541931D386B12975041E60E30E8C62E554163EE98431597504162815271CF2E554163EE984315975041CF5AC057D42E5541988E75E5159750419403AA07D72E5541B706DB5E169750411CE43FEDD82E55413EBFF91B189750415F1DD131DD2E5541ACDE6336169750417E9536ABDD2E5541E7357A86139750414B13DF14D62E5541C7BD140D13975041F4895F7FD12E55419E45AF9312975041DAC833B4CD2E5541218D90D61097504198672B47C92E5541703495770E97504140DEABB1C42E5541F37B76BA0C9750411CF508BEC02E5541B042E575089750413D8BF342BA2E55419681B9AA04975041A711A9BAB42E5541E528BE4B0297504179008F9EB02E554149F8391500975041748F5124AD2E5541E18F09A9FE965041701E14AAA92E5541C23F1B58FE965041B59DA122A72E55413A5F8572FC965041716410DEA22E55417FDE12EBF996504178F3D2639F2E5541D8AD8EB4F796504188D2833A9C2E5541E964C862F49650417939CF97982E554191DB48CDEF96504141003E53942E5541E639871CEA9650418B36057A8E2E5541E2A0D279E6965041879D50D78A2E554156777642E1965041D1D317FE842E5541AF1E7BE3DE965041C33A635B812E5541662EB0F0DD96504165FAA917802E5541B5D5B491DB9650419529493F7D2E55413ED4CF82D6965041F4AFFEB6772E55413A639208D3965041382F8C2F752E55419B07CD8BC696504190A742F4912E5541287725F7C496504147B77701912E5541B282FC22D1965041B14EF649732E554188E62C17A7965041E638DCB5432E5541012E0E5AA5965041DC10658D432E554118AD4A87869650411546E93B712E554186CCB4A184965041C12DA720702E55416F25014CA3965041C7C0763C432E55414FD512FBA2965041D79F2713402E5541C8F47C15A19650411C1FB58B3D2E554147CB20DE9B965041CD77B0EA3F2E554138326C3B989650415AE708563E2E55415D610B6395965041609E42043B2E55419C295F2D969650415C2D058A372E554163F0CDE89196504138446296332E5541FB879D7C90965041FA5397A3322E5541DC37AF2B90965041650F807E3E2E5541D680757D939650412AB8692E412E5541A651D655969650412090F205412E55418B4AAE56999650411AD9B857442E554157AAD1B498965041EAA91930472E55418C5B772781965041988DCA7E6F2E554107F610D989965041FA663865742E5541C7E7C0DA8F965041411107247C2E5541A2E098DB92965041E4D04DE07A2E554187D970DC959650410D712A827B2E554104928F9997965041B4A1AEB87D2E55413EE9A5E99496504165FAA917802E5541EBD063CE939650418E9A86B9802E55416CFABF059996504135CB0AF0822E5541305DAD81A2965041FB73F49F852E55413DD8DC18AD965041B6F46627882E5541FCAB070FBA96504119A65DE58C2E55410A45BCB1BD9650411F5D9793892E55410FB6F92BC1965041C58D1BCA8B2E5541490D107CBE965041A086F3CA8E2E5541C00EF58AC3965041E3BF840F932E554147EF8A70C596504156502CA4942E5541FEEDF6ACDC96504112E267FC7E2E554147DEC19FDD965041C33A635B812E5541890A97A9D09650412DF64B368D2E554190DF5563C6965041304904A5972E554197A34B4CD4965041E3AEBB3EAB2E55410A34F3E0D596504189DF3F75AD2E55411A02DBE6EA96504175C48487BE2E55415213F502EF9650413B6D6E37C12E55412AA84BC4FF965041A857A5EEAD2E5541717A91AB079750413D8BF342BA2E554137237B5B0A975041564C1F0EBE2E55410030E64AFF9650414F776054C82E5541FFE9E916069750410F691056CE2E5541C90311410C97504102231422D52E5541316C41AD0D9750410794519CD82E554169A5D2F1119750413FCDE2E0DC2E5541FF1E1D7A1797504182067425E12E5541299782F3179750410F9E43B9DF2E5541C12E52871697504193E524FCDD2E55413EE770441897504188BDADD3DD2E5541FA67E3CB1A975041E06EA491E22E5541B5E855531D97504176C077F1E72E55411D5186BF1E975041FDA00DD7E92E5541D31ABF9824975041A7244A7CF62E5541059D162F2C975041552A8D6CEE2E5541EABD65582F975041176239A2ED2E55413ED6A77330975041B36A46B0EF2E5541ACCD9A652E975041B7DB832AF32E5541D1FC398D2B975041FA3C8C97F72E554154441BD02997504149E49038F52E55415AFB547E2697504124B5F110F82E5541A75C5DEB2A975041D3EF6764012F55412BA43E2E299750413108AA7F022F554106000000175CDAF6C4965041D121910EEF2E5541CF54612DC796504119290AD8EC2E55411B2C1C71C896504130B6B36CEE2E55412EE9838BC6965041D7178748FD2E5541963A0E04C4965041B19DB713012F5541175CDAF6C4965041D121910EEF2E55410600000057E47E3616975041D08C510CB82E55417D5E4E6B1297504138DEDB84B52E55414427171C189750415E58ABB9B12E55410603BA2C23975041C1D9F3B7AB2E5541F3455212259750413CCB0125B02E554157E47E3616975041D08C510CB82E554105000000F93B484C33975041F53719F38E2E55413743C1153197504187D3B41A8C2E5541F5313E8641975041B13AAAEF822E5541B72AC5BC43975041159F0EC8852E5541F93B484C33975041F53719F38E2E554105000000B678A194159750417D0D7D667A2E5541D2F270C91197504119A9188E772E5541B65BBD6E1E9750416A8ADD976A2E554119C02147219750416E5A1F126E2E5541B678A194159750417D0D7D667A2E554106000000A977676837975041669DB7F76F2E55415DA0AC243697504106099599702E554110C9F1E034975041B66198DB6B2E55417A234CF34597504122A048F4632E5541321CD32948975041FC2579BF672E5541A977676837975041669DB7F76F2E5541060000000CEDF96814975041912B31DE342E5541E24C1DC7139750412552C3F72F2E55415179431C239750412F7A3A20302E5541D959D90125975041631A17C2302E5541F8A9C75225975041DA1BFCD0352E55410CEDF96814975041912B31DE342E554107000000615C0189F6965041A546ECCB232E554137BC24E7F596504196AD3729202E5541236C3696F59650410FF5186C1E2E5541615C0189F6965041923CFAAE1C2E5541D717EA63029750413E24B8931B2E554100B8C6050397504128B64437222E5541615C0189F6965041A546ECCB232E5541070000008203B5DED7965041A67B1F2F352E554178DB3DB6D79650416E428EEA302E5541626DCA59DE965041C7110AB42E2E554170067FFCE1965041C7110AB42E2E554145481D4FE8965041B2C11B632E2E55414F709477E896504114731221332E55418203B5DED7965041A67B1F2F352E55410A000000CF68CAE1B2965041501025A5292E55418678FFEEB19650412C2782B1252E554107A25B26B79650415C5621D9222E5541A4AA6834B9965041CA758BF3202E554125D4C46BBE965041396D7EE51E2E5541E15437F3C09650417735D2AF1F2E554115F51395C1965041EAC57944212E5541F5A42544C1965041374FF9D9252E55412B8BFE19BB9650412C2782B1252E5541CF68CAE1B2965041501025A5292E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>3170132 - 93391
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -604 </desc>
+<a>
+0106000000010000000103000000050000003201000033333303CC4251410AD7A310FC295441F6285C0FC642514114AE47D1F72954417B14AE37C34251417B14AE07F6295441000000D0C04251417B14AEF7F5295441E17A148EBF4251418FC2F538F6295441C3F5285CBD425141666666C6F62954415C8FC215B9425141F6285C0FFF2954419A999949B042514148E17A24FE295441713D0AE7AE425141EC51B8BE102A54415C8FC215B8425141333333C31A2A5441333333F3B542514185EB5138212A544133333303B4425141C3F528AC272A5441666666D6B5425141713D0A57292A5441AE47E18AB6425141333333332A2A54417B14AEF7B74251411F85EB812A2A5441E17A141EBA42514148E17A24252A544114AE4761BC4251413D0AD7831F2A5441EC51B85EBE425141000000601E2A5441B81E859BBF425141F6285C4F1E2A5441F6285C5FC0425141F6285C8F1E2A544133333343C14251411F85EBF11E2A54419A9999C9C1425141295C8F721D2A5441AE47E10AC3425141333333F31A2A54413D0AD783C7425141E17A149E1A2A54417B14AE67DC42514152B81E75062A54410AD7A3A0EE425141A4703D6AF8295441E17A142E1E4351419A999989CF295441666666B60943514100000060B92954419A999929FE42514100000000B8295441EC51B8CEF7425141713D0A27B3295441F6285C2FF94251410AD7A340AE2954411F85EB51F7425141295C8F62AC29544100000000F442514114AE47A1AD295441F6285C0FF0425141A4703D1AAA295441D7A370BDEC4251411F85EB01AD295441E17A14FEE24251417B14AED7A229544114AE47E1DF42514114AE47C19A295441AE47E10ACE425141C3F5283C8C295441AE47E17AC4425141000000908029544148E17A74B2425141A4703DEA75295441AE47E1BAB242514185EB51D871295441A4703D8AB34251417B14AE076E295441C3F5281C9B425141F6285CAF62295441C3F5286C96425141333333B35E2954413D0AD7D397425141D7A3703D5C29544166666616844251419A9999D9412954415C8FC265834251411F85EB4141295441E17A14FE824251417B14AED73F295441E17A146E82425141333333A33D295441CDCCCC3C8242514185EB51B83B295441A4703D9A8242514114AE47F13A295441C3F528DC82425141B81E854B3A2954411F85EB61834251410AD7A36039295441713D0A578442514148E17A8438295441295C8F1287425141000000503729544114AE4781884251411F85EB7136295441AE47E1DA894251413D0AD7733529544148E17A948B4251415C8FC2A5342954417B14AEA78C425141AE47E1FA33295441EC51B88E8D4251413D0AD773322954410AD7A3B08E425141F6285C1F312954411F85EB718F42514148E17A2430295441B81E85BB8F42514152B81EC52E2954411F85EB0190425141295C8F522D295441F6285C7F90425141A4703D9A2C2954417B14AE7791425141713D0A072C295441713D0A7792425141000000402B295441713D0AE7924251415C8FC2452A295441B81E85BB924251419A99990929295441EC51B80E92425141EC51B82E27295441AE47E1CA90425141E17A147E232954413D0AD7A38F425141D7A3703D21295441B81E85EB8E4251419A9999B92029544148E17A548E4251419A99995920295441333333538C425141713D0A172029544152B81E9589425141A4703DAA1F2954415C8FC2458942514152B81EF51E2954410000007088425141295C8F221C295441295C8F62884251418FC2F5D81A29544185EB51E887425141C3F528FC192954419A999969864251417B14AE2719295441B81E853B854251417B14AE37172954411F85EB81844251413333331316295441713D0A57844251419A9999C91829544148E17A04834251411F85EBC11929544185EB51A8824251415C8FC2F51A295441EC51B8BE81425141B81E850B1C29544100000060754251418FC2F598232954415C8FC2E567425141713D0AE716295441CDCCCC0C5B425141EC51B8AE112954413D0AD7D35A42514114AE472113295441666666C65942514148E17A34172954418FC2F52859425141D7A3708D1929544185EB51B8584251419A9999491B29544185EB515858425141000000601F295441B81E85BB57425141CDCCCCDC202954410000009057425141E17A14EE222954410AD7A310564251413D0AD77327295441333333835542514185EB51B827295441A4703DFA544251410AD7A35028295441295C8F9254425141C3F528BC29295441AE47E13A544251413D0AD7532A2954411F85EBD1534251415C8FC2752A2954415C8FC2E5524251417B14AE972F2954415C8FC235524251410AD7A3B033295441CDCCCCDC514251410AD7A3D03429544114AE471151425141B81E85DB34295441666666564B425141AE47E1AA3C2954411F85EBD14B425141295C8F62422954417B14AE574C425141AE47E1CA45295441333333B34C4251415C8FC2154729544148E17A2450425141CDCCCC5C462954413D0AD7E351425141000000D046295441CDCCCCDC53425141C3F528AC482954413D0AD7C3544251413D0AD7234A2954415C8FC24555425141E17A140E4C29544148E17A54554251418FC2F5F84D295441CDCCCC9C5542514148E17A04512954417B14AEC75542514148E17A5453295441CDCCCC2C564251418FC2F5785529544185EB51E8564251417B14AEA756295441713D0A8757425141713D0AD7572954410000006058425141295C8F925829544185EB5138594251415C8FC27558295441666666B65842514100000080572954410AD7A330574251415C8FC2955529544185EB51E856425141333333F3532954410AD7A3305742514114AE472151295441F6285CCF57425141713D0AE74C295441F6285CCF57425141D7A3700D482954411F85EBE1584251419A999999432954417B14AEA758425141B81E85CB412954415C8FC29557425141B81E857B3F295441A4703D8A5442514185EB51B83C295441EC51B8CE53425141CDCCCC6C3B29544114AE47915242514152B81EF5392954417B14AE97504251413D0AD7B337295441B81E850B514251410AD7A34037295441E17A143E5342514133333373392954417B14AE37554251413D0AD7533C29544114AE47515842514185EB51083F2954419A99992959425141F6285C7F4029544152B81EE5594251413D0AD7A3422954419A999929594251415C8FC2054629544148E17AC45842514114AE471149295441666666B65842514152B81EF54C29544148E17A34584251413333331351295441AE47E1FA5742514114AE477153295441295C8F42584251411F85EB21552954410AD7A38059425141666666B65629544148E17A845A4251411F85EB7157295441000000D05B425141CDCCCC9C5729544114AE47815D425141CDCCCC9C57295441D7A3705D5F425141EC51B81E58295441CDCCCC1C614251415C8FC205592954413D0AD79362425141EC51B8DE59295441713D0A57654251410AD7A3605A2954419A9999F966425141F6285CFF5A295441713D0AF769425141000000B05C295441A4703DBA6C4251418FC2F5185E295441AE47E16A6E4251419A9999395F295441C3F5281C70425141B81E854B60295441CDCCCCCC71425141295C8FA26029544114AE47F173425141D7A370CD602954410AD7A3B075425141F6285CBF60295441B81E850B774251417B14AE475F2954410AD7A34078425141AE47E16A602954415C8FC2A57A425141D7A3707D62295441E17A144E78425141F6285C3F6429544100000060754251418FC2F518622954417B14AEE76F425141F6285C1F612954415C8FC2056E425141B81E85BB5F295441666666466C425141E17A147E5E295441B81E85CB6942514185EB51885D295441C3F5289C68425141000000B05C295441B81E85EB66425141C3F528AC5B295441713D0A5765425141C3F5281C5B295441CDCCCC6C6342514152B81EC55A29544185EB51D861425141333333435A295441CDCCCCCC5E425141295C8F92582954410AD7A3F05C425141D7A3702D58295441333333035E425141CDCCCC5C59295441A4703DEA5E4251418FC2F5385B2954411F85EB315F425141D7A3705D5D295441A4703DBA5F42514152B81ED55E29544152B81E4560425141D7A3700D612954411F85EBF160425141CDCCCCCC61295441B81E851B63425141AE47E15A642954415C8FC2F5634251410AD7A32066295441C3F5287C644251415C8FC2E567295441CDCCCC8C64425141C3F528CC6929544185EB512864425141C3F5287C6C295441333333C36342514114AE47916F29544148E17AD46342514152B81E9572295441CDCCCC8C64425141B81E851B772954413D0AD77362425141666666067C2954413D0AD7C35F425141295C8F627E295441F6285C0F5E425141295C8F1281295441B81E85BB5D425141666666B682295441295C8F525E42514185EB5138842954411F85EBA15F4251410AD7A3F0842954413D0AD77362425141000000E08429544152B81E5564425141E17A149E852954410AD7A390654251415C8FC2158629544185EB515867425141333333C386295441C3F5287C68425141C3F5283C87295441A4703D5A6842514114AE470189295441F6285C1F6A425141000000408A295441CDCCCC8C6C425141B81E852B8B295441713D0AC76A42514148E17A448D29544114AE47F168425141295C8F728E295441CDCCCC3C674251413D0AD7938E29544185EB51D8624251417B14AE378C2954417B14AE1760425141C3F5283C87295441666666A65E4251417B14AE878529544152B81E355D42514185EB5138842954410AD7A3D05C42514152B81EA5822954411F85EBF15C4251413333332381295441295C8F525E425141295C8F627E295441000000D0604251417B14AE277C2954410AD7A33062425141666666B67A295441F6285C6F63425141C3F5282C772954410AD7A38063425141AE47E1BA7529544185EB51D8624251413D0AD773722954418FC2F5E862425141EC51B85E6F2954411F85EBA163425141333333636A295441295C8FB263425141295C8FA2672954413D0AD7736242514148E17A2465295441C3F5287C604251415C8FC2956229544148E17AC45F425141713D0A67612954417B14AE875E425141C3F5285C5F29544152B81E855E4251410AD7A3D05D295441CDCCCC3C5E4251413D0AD7635B2954415C8FC2555D42514114AE47C159295441EC51B8DE5B425141F6285CAF582954413D0AD7F35942514114AE473159295441EC51B8FE584251416666669659295441713D0A87574251417B14AEF75829544114AE47015642514114AE47E1562954413D0AD7C354425141E17A148E53295441EC51B85E54425141EC51B87E4F2954410AD7A35054425141333333E34B295441AE47E1CA524251413333330349295441CDCCCC6C5042514185EB511847295441A4703D5A4F42514185EB5118472954413D0AD7F34C42514114AE4701482954418FC2F5084E425141E17A14DE4A2954410AD7A3904E425141D7A370CD4C29544152B81EA54E42514148E17A744F295441333333734E4251410AD7A3D051295441AE47E12A4D425141E17A14DE532954411F85EBC14A425141666666A655295441E17A147E47425141333333735729544114AE47114542514152B81E9558295441E17A141E43425141EC51B81E5F2954410AD7A3F043425141000000C060295441A4703DCA44425141E17A14BE61295441666666D6454251418FC2F56862295441000000E046425141713D0AC76229544152B81E6547425141F6285CDF63295441E17A14AE47425141CDCCCC4C6529544152B81E4548425141713D0AD766295441CDCCCCFC474251411F85EBD168295441F6285C6F4642514185EB51F867295441EC51B8AE45425141B81E85DB672954415C8FC215444251417B14AE87662954415C8FC205434251415C8FC205662954415C8FC2E541425141AE47E10A662954410AD7A3303F425141AE47E11A672954418FC2F5E83D425141EC51B8FE67295441D7A3703D3C425141E17A148E69295441A4703DEA3A4251413D0AD7736B29544166666676394251415C8FC2956E2954418FC2F5F837425141C3F5285C72295441EC51B82E374251418FC2F528752954413D0AD7A338425141CDCCCC9C76295441C3F528CC38425141295C8F42782954411F85EBC13842514152B81EA57929544114AE4741384251410AD7A3007B295441D7A3708D374251410AD7A3607C295441E17A14EE35425141EC51B85E7D295441666666F63442514152B81E057E29544148E17A4434425141F6285C8F7E295441EC51B89E334251410AD7A3607F295441666666463342514185EB51188029544100000040334251410AD7A330812954417B14AE073342514148E17A74842954410AD7A36032425141CDCCCC0C8829544148E17AE4314251417B14AEA78A29544152B81E65314251417B14AE278F2954419A999919324251411F85EBA1902954419A9999A93242514185EB51589229544148E17A143342514185EB515894295441CDCCCC3C33425141295C8FC29529544148E17AB433425141F6285CFF96295441F6285C3F34425141295C8F9298295441EC51B8DE344251410AD7A36099295441713D0A0733425141295C8FD29B295441A4703D4A314251418FC2F5989D295441A4703DCA2F4251418FC2F5589D2954417CAC924ED542514145AAC115DF295441A4703D0AD642514185EB5128EE29544148E17A94D74251418FC2F5B8F1295441F6285C7FD3425141C3F5280CF5295441E17A146ECE42514152B81E25FC29544133333303CC4251410AD7A310FC29544107000000436E72E2AE425141C55EEF9682295441467A5920B2425141D42500DA7D2954418A23DD9ABA425141D42500DA7D2954416C95BB14C4425141C55EEF9682295441EAC30D50CB4251416B3F18128A2954418A23DD9ABA425141C4C77A4B94295441436E72E2AE425141C55EEF96822954410700000028E9B2F035425141FD4C490C932954415B864F2D3B42514134DB6A928929544119523EA54742514161309D5B7B29544176E6871C554251416E60395388295441AC5F6F9F5042514151D217CD912954417A5947AE39425141A22D72879A29544128E9B2F035425141FD4C490C9329544109000000AA773D1B574251416DA43D053B295441C66EEA555F425141E85D1D4E2D295441E265979067425141437DF4D225295441A13186087442514192E1A152262954411B54F10578425141F281D20737295441088A4C4A714251412AD145843C295441EC929F0F69425141F3575E01412954413A7987D75C42514100B26EFF43295441AA773D1B574251416DA43D053B29544108000000526DA099594251414125973553295441FEE7D1D85A4251411F9D34FC48295441A63D6D46774251411B914DBE452954412060D8437B42514129C1E9B5522954416AC1F14A70425141A66823745529544138EB655166425141208B8E71592954410615DA575C42514145317E7356295441526DA099594251414125973553295441
+</a>
+
+<b>
+01060000000100000001030000000500000070010000A124F89DCD4251419DC4CA8E51295441C57591DDD7425141FCEB65084F295441BF3FD41BD7425141BB47B1404A2954413F2F2DC8C8425141876E423549295441DA9EE4CEC5425141FB28D28E43295441713D0AE7C1425141333333A34029544100000030C2425141D7A3705D40295441713D0AC7BB4251416666664630295441EC51B89EBB425141D7A370AD2C295441AE47E11ABF425141D7A3706D262954411F85EBD1C3425141D7A3706D262954413D0AD7A3C642514148E17A6429295441713D0A37C742514152B81E752D2954411F85EBC1CD4251413D0AD7F32D295441CDCCCC9CD742514148E17A442A29544114AE4791EF4251413D0AD72331295441EC51B8CEFE4251417B14AEA73229544166666656FF425141AE47E15A2B295441666666960043514185EB51D8202954417B14AEC700435141713D0A771F29544185EB5128E3425141000000E01B295441CDCCCCBCDF425141713D0A871A295441713D0A07DC425141B81E857B17295441C3F5282CD74251413D0AD7D314295441A4703D1AD2425141295C8F3213295441CDCCCCCCCE425141000000F012295441EC51B8DEC742514148E17A441129544185EB5128C5425141666666B60F2954419A9999F9C342514114AE47410C2954417B14AEE7BE4251411F85EBF108295441713D0A37BD425141666666C608295441E17A14CEB9425141D7A370FD032954415C8FC295B6425141D7A370EDFA28544148E17A24B9425141D7A370ADFB28544148E17A74BE42514114AE4781FE285441AE47E11AC342514114AE47D1FF2854419A9999A9C5425141AE47E1CA00295441EC51B86EC642514152B81ED5FF2854411F85EB71C6425141713D0A07FE2854413D0AD723CB4251419A9999190329544114AE4701CC425141C3F5286C072954419A999949CC4251413D0AD7930C2954417B14AE07CF4251418FC2F5B80E295441B81E851BD64251410AD7A3300F295441CDCCCC4CE2425141B81E850B142954418FC2F578E74251411F85EBF113295441CDCCCCECEE425141713D0A7715295441AE47E1CAF44251419A9999B90D295441666666F6EC4251417B14AE17072954411F85EBC1EC4251415C8FC27506295441295C8F52ED4251411F85EBE105295441295C8FB2EF425141295C8F82062954419A999989F6425141B81E854B0B29544185EB51E8FC425141295C8F02032954415C8FC215E74251415C8FC235F728544185EB5168CC4251410AD7A340E728544152B81E45CF425141EC51B89EDF28544114AE4781CF4251413D0AD7A3DB2854417B14AEC7D342514148E17A84D82854419A9999A9D6425141E17A142ED9285441C3F5282CDB42514100000060D6285441295C8FD2E242514133333353DA285441000000B0E8425141000000B0D8285441F6285CDFF7425141666666C6DD285441AE47E15AFA425141713D0A17E3285441F6285CCFFC425141295C8F52E42854417B14AE37164351418FC2F558E5285441295C8FD2184351410AD7A320DE2854411F85EB611B435141A4703D4AD928544148E17A341C435141B81E856BD72854418FC2F5381D435141666666A6D42854410AD7A3001E435141666666C6D22854415C8FC255204351410AD7A350CE2854419A9999292143514148E17AA4CC285441AE47E1EA21435141B81E855BCA28544185EB511822435141AE47E17AC82854419A9999591743514148E17AE4C4285441A4703DFA0F435141713D0AE7C4285441EC51B8FE0643514152B81ED5C12854417B14AEB70243514114AE4701BE285441B81E857BE8425141F6285C3FB528544185EB51D8B0425141EC51B81E98285441CDCCCCEC9C4251417B14AE57AA28544114AE47F190425141D7A3704DB5285441D7A370BD814251415C8FC235C3285441E17A147E804251419A999959C42854413333333382425141EC51B8EEC9285441B81E857B81425141C3F5283CCD2854418FC2F518804251418FC2F578CE2854411F85EBA17E4251411F85EB61CE28544114AE47717C425141EC51B80EC8285441C3F5286C77425141666666A6CC285441CDCCCCBC62425141295C8F92DF285441B81E852B6A42514152B81EB5E9285441B81E85EB794251410AD7A330FF2854415C8FC2457B42514100000040002954418FC2F5887F425141713D0A97032954415C8FC2E580425141B81E85EB032954418FC2F50882425141333333A30329544148E17A248442514185EB511802295441C3F5285C88425141E17A148EFD285441AE47E19A8E425141EC51B89EF928544152B81E7592425141A4703D0AF8285441295C8F2295425141A4703D0AF82854413D0AD75399425141F6285C9FF928544185EB51C89B425141E17A148EF9285441000000609D42514148E17AE4F82854410AD7A3809E425141333333C3F7285441F6285C7F9F425141A4703DEAF328544148E17AD49F425141A4703D9AEF2854413D0AD7E3A0425141713D0A37ED285441EC51B8BEA3425141F6285C5FE8285441C3F528ACA44251417B14AEB7E528544152B81E45A5425141295C8F92DA285441713D0A57A4425141EC51B83ED9285441A4703DCAA642514152B81E15D62854417B14AED7AA425141F6285CDFD328544114AE47A1AD42514152B81E35D3285441000000E0B14251410AD7A3E0D2285441295C8F32B4425141C3F528ACD32854415C8FC2A5B74251419A9999A9D528544100000080BA4251415C8FC265D528544148E17AE4BB42514133333363D72854419A999939BC4251410AD7A360D9285441295C8FD2BC4251419A9999F9D9285441C3F5287CBD4251417B14AED7D9285441CDCCCCACBF425141F6285C2FD82854415C8FC245C0425141E17A140ED7285441CDCCCCECC2425141EC51B86ECE285441A4703DEAC24251410AD7A370C9285441EC51B80EC34251417B14AE97C8285441713D0A97C342514152B81E55C7285441713D0AE7C7425141C3F5286CC2285441D7A3706DC94251417B14AEF7BF285441000000B0CA42514133333353BB2854417B14AE37CB425141B81E856BB5285441333333E3CA42514114AE47C1B428544185EB5128CA42514166666616B52854410AD7A390C8425141F6285CBFB62854411F85EB81C64251417B14AE77B9285441295C8F72C542514114AE4721BA2854410AD7A340C442514152B81E65BA2854415C8FC245C04251417B14AE77B92854411F85EBB1BB425141295C8F12B8285441EC51B86EBA425141295C8F12B8285441A4703D0AB94251418FC2F578B8285441C3F528DCB4425141E17A14FEBA285441713D0A07AE425141295C8FB2C028544185EB5108AD425141AE47E13AC128544185EB51F8AB425141B81E854BC12854418FC2F5E8AA4251413D0AD7C3C0285441295C8F82AA42514114AE4781BF285441713D0AC7AA425141AE47E1DABB285441CDCCCC1CAA4251410AD7A300B92854411F85EB71AA4251418FC2F568B72854415C8FC2C5AB425141A4703D5AB5285441295C8FA2AC425141D7A3707DB4285441000000A0AE425141C3F5284CB3285441F6285CAFAF425141A4703D1AB2285441C3F5288CB0425141666666C6B0285441E17A14BEB1425141713D0A97AD28544148E17A44B34251417B14AE77AB285441EC51B8BEB6425141A4703DEAA82854415C8FC2A5B7425141EC51B84EA728544185EB5188B84251415C8FC2E5A028544100000090B642514185EB51A8A0285441295C8FE2B6425141C3F5285C9D285441AE47E12AB9425141F6285C7F9D28544114AE4741B9425141666666D6A02854410AD7A360B8425141CDCCCC7CA72854411F85EB61B7425141713D0A47A928544114AE4731B5425141295C8F22AB285441D7A370DDB3425141295C8F32AC285441AE47E19AB2425141E17A140EAE2854418FC2F568B1425141B81E851BB1285441E17A14AEB0425141F6285C6FB2285441D7A3708DAF425141295C8FC2B3285441D7A3705DAD42514148E17AF4B4285441666666D6AB425141CDCCCC9CB6285441D7A3703DAB425141B81E859BB7285441AE47E10AAB425141B81E85ABB8285441295C8F92AB4251419A9999C9BB285441D7A3703DAB425141CDCCCC3CBF2854413D0AD7A3AB4251417B14AEF7BF285441EC51B85EAC425141EC51B86EC0285441D7A3705DAD425141AE47E12AC02854413D0AD7F3AF425141A4703DFABD28544148E17A94B7425141295C8F12B82854418FC2F508BA4251413D0AD713B7285441295C8FC2BB42514152B81E25B728544166666676C242514166666666B928544148E17A84C4425141A4703DAAB9285441295C8F72C542514152B81E55B928544152B81EB5C64251411F85EB01B82854419A999919C8425141000000C0B5285441713D0A17CA42514148E17AE4B3285441713D0A27CB425141295C8FC2B328544152B81E15CC425141B81E855BB4285441AE47E17ACC42514152B81E15B6285441C3F5287CCB4251417B14AEA7BB28544185EB5128CA425141CDCCCC4CC02854411F85EBA1C842514114AE47C1C22854419A999959C4425141C3F5282CC82854419A9999C9C3425141D7A3700DCA28544148E17AF4C342514185EB5198CE28544133333323C1425141B81E850BD8285441295C8FB2BF425141C3F528CCD92854411F85EBA1BD425141C3F528CCDA2854410AD7A3D0B8425141CDCCCC1CDD28544100000000B7425141D7A370DDDE285441000000C0B6425141E17A142EE028544100000040B7425141EC51B80EE328544114AE47D1BB42514133333393EF28544114AE47B1BB4251413D0AD763F128544114AE4701BB42514148E17A34F32854410AD7A3E0B942514152B81EA5F42854410AD7A370B842514152B81EA5F5285441CDCCCC0CB44251417B14AE87F72854411F85EB11B342514166666646F8285441A4703D6AB24251418FC2F548F92854417B14AE07B2425141E17A14BEFA28544100000000B2425141333333D3FD285441295C8F92B142514185EB51E80429544133333303B34251419A9999C90529544114AE47D1B24251415C8FC26507295441B81E85ABB24251418FC2F57808295441713D0A67B1425141C3F5286C08295441A4703D5AB1425141333333730C295441EC51B8BEB2425141C3F5281C11295441666666F6B242514185EB514813295441CDCCCCFCB34251410AD7A310172954417B14AED7B3425141333333431B295441EC51B82EB3425141AE47E1BA20295441EC51B82EB342514114AE47C12229544114AE4761B44251416666669626295441295C8FB2B54251419A999919292954417B14AED7B54251411F85EBE129295441EC51B8BEB54251417B14AE772A29544185EB5148B542514114AE47712B295441EC51B82EB442514114AE47912C295441D7A3706DB2425141295C8F522E295441E17A147EAF425141AE47E10A33295441666666D6AD425141A4703D5A3529544152B81EF5AB425141CDCCCC2C3929544100000070AB42514148E17A543A295441713D0A47AB425141C3F5283C3B295441CDCCCC4CAB4251415C8FC2453D295441EC51B81EAB425141713D0AC73E2954411F85EB91AA425141295C8F4241295441B81E85CBA9425141A4703D8A43295441AE47E14AA8425141713D0AF7462954418FC2F5F8A74251415C8FC20549295441AE47E12AA84251411F85EB614D29544166666616A84251411F85EBD14E29544148E17AC4A7425141B81E85DB4F2954418FC2F568A6425141C3F5282C52295441AE47E14AA5425141295C8FE25429544152B81EE5A44251417B14AE4757295441E17A140EA44251413333332357295441295C8F82A44251410AD7A3B05429544148E17AA4A54251415C8FC2D551295441F6285C0FA742514148E17AA44F2954415C8FC265A7425141666666B64E2954413D0AD783A7425141333333434D29544166666636A742514152B81EF54829544114AE4761A74251415C8FC2E546295441666666E6A8425141295C8F92432954413D0AD7D3A9425141EC51B80E412954415C8FC265AA425141CDCCCCAC3E295441B81E858BAA425141F6285C2F3D295441EC51B87EAA425141000000103B295441713D0AB7AA425141666666163A295441A4703D3AAD42514148E17A34352954418FC2F508AF425141D7A370BD32295441A4703DEAB1425141B81E85FB2D29544100000080B2425141333333332D29544148E17A54B4425141E17A147E2B29544114AE47D1B44251418FC2F5C82A295441C3F5281CB5425141713D0A072A29544100000010B54251415C8FC24529295441AE47E1CAB34251418FC2F538272954419A999909B3425141A4703D6A25295441E17A144EB24251419A9999F922295441EC51B82EB24251413D0AD7D32129544152B81E35B2425141E17A143E2029544114AE47D1B2425141D7A3703D1B2954417B14AED7B2425141E17A14FE1629544133333303B2425141666666A613295441713D0A67B1425141000000A01229544133333373AF4251413D0AD77312295441CDCCCC6CAF425141713D0AF70F2954413D0AD753AF42514148E17AC40E2954415C8FC235AE425141C3F5284C0B295441AE47E15AA6425141C3F528BC0D2954415C8FC255A3425141F6285CDF032954410AD7A330AD4251415C8FC2D500295441295C8F02AF425141AE47E1BA06295441AE47E1EAAF42514114AE472106295441F6285C2FB0425141713D0A17052954417B14AEC7B0425141B81E854B0229544148E17A04B14251417B14AE67F928544148E17AA4B14251417B14AE27F8285441F6285C9FB2425141E17A140EF72854410AD7A370B74251413D0AD7C3F42854410AD7A370B942514148E17A74F328544114AE4771BA4251413D0AD7B3F128544114AE47C1BA42514133333313F0285441000000C0B7425141000000E0E6285441000000F0B6425141000000C0E5285441EC51B89EB4425141F6285C0FE4285441E17A14DEB1425141F6285C3FE3285441C3F528DCAC425141EC51B83EE2285441B81E85ABAA425141EC51B85EE2285441A4703D0AA7425141F6285C3FE4285441A4703DFAA542514100000020E62854419A999949A54251410AD7A3A0E82854418FC2F508A2425141295C8FB2ED28544185EB5108A1425141333333D3EF28544185EB51E8A042514148E17AF4F32854417B14AE479F42514166666676F92854417B14AE579E425141713D0A77FA285441713D0A479C425141713D0AF7FA2854415C8FC21599425141713D0AD7FA28544152B81EC594425141295C8F22F928544148E17A949242514114AE4741F9285441000000608F42514133333383FA285441295C8F0289425141CDCCCC7CFE28544152B81ED5844251410AD7A33003295441333333B3814251418FC2F54805295441CDCCCC2C8C425141D7A3707D0D295441A4703D9A95425141000000E014295441AE47E1AA984251416666664617295441D7A370CD9942514185EB51082A29544166666616844251419A9999D941295441DA2D55B697425141EB09FE155C295441244790B497425141BFA796195C29544171EAE5D197425141B40CD7405C295441B52D748896425141CAE640CB5E295441B0411D579842514115632F5560295441D05EF8899A42514144FE032362295441DF57D985984251414791C7145E295441ABAD5D3E98425141FBB9FB845D295441FC76A13E9E425141B4BB37C15B29544101E18F649E425141373710B65B29544155ACC07B9F425141201916C25C295441A877F192A042514174E446D95D295441BE95EB869F4251410AECD1CF5F2954416549102C9D4251416CE9D83163295441CFA349ED9C42514136092F8463295441C7E5834C9D425141910F95B3632954411B1561EFA6425141DF172A2D68295441A4703D8AB34251417B14AE076E295441C4E7B78FB6425141ED28C63B71295441A8BE6720B942514185CA6D917129544186E04EFFB94251416E4506AE712954413617953CBC4251410ED879336D2954413515F330BB4251417AF746836A295441ECA81DF0BB4251410ACCADED6629544105CE7F42BC425141C3D8B7B866295441DC78351DC0425141562F6D3B64295441CA5C7F80C142514161D1FA43622954416B4178EDC34251413266E0CC5E295441F2B82D4DC4425141BB4D26445E2954414C7FE11AC342514127F25980582954415FDA9CA8C24251412363C959562954413836B3B2C2425141F5645D5556295441D413A48FCD4251418D7E529251295441A124F89DCD4251419DC4CA8E512954410A0000008FC2F5D8AD42514152B81E052529544148E17AE4A8425141295C8F82232954410AD7A380A64251413D0AD71328295441F6285C7FA242514148E17A142A2954410AD7A300A04251410AD7A39026295441666666F69B425141EC51B8EE25295441C3F528BC9C4251413D0AD7C31E295441C3F528ACA24251419A9999691C29544166666676AF42514148E17A74222954418FC2F5D8AD42514152B81E05252954410A000000C3F528AC8B42514152B81EF5D2285441B81E859B934251413D0AD763D8285441AE47E18A9B425141D7A3705DE02854410AD7A3D09C42514166666676E3285441AE47E18A9B425141713D0AA7E4285441D7A370BD9842514185EB5158E328544152B81E258A4251413D0AD7F3D42854417B14AE17894251413D0AD743D328544185EB5198894251419A999979D2285441C3F528AC8B42514152B81EF5D22854410500000085EB51A8C1425141E17A144EDD285441C3F5280CC1425141AE47E16ADF285441B81E85CBBF425141AE47E10ADF285441C3F5286CC0425141713D0AF7DC28544185EB51A8C1425141E17A144EDD28544126000000333333B37942514185EB51D8D82854419A9999297A4251413D0AD7C3D92854413333336372425141A4703DAAE32854415C8FC275704251418FC2F528E7285441666666867042514133333383E92854413D0AD72373425141295C8F52EC2854417B14AEA775425141D7A370DDF0285441CDCCCC1C7642514100000020F62854413D0AD7C376425141A4703D0AF7285441CDCCCC6C7A42514100000050F82854410AD7A3807B425141A4703D3AF9285441C3F528CC7B42514152B81E35FA285441C3F528CC7B425141F6285CCFFB28544114AE47D17A42514152B81E85FE28544114AE47217A425141AE47E14AFE285441C3F5281C7B425141EC51B8BEFB285441C3F5281C7B425141EC51B84EFA285441EC51B89E7A42514152B81E75F9285441AE47E1CA774251410AD7A380F828544152B81E2576425141AE47E1DAF728544148E17A6475425141000000E0F6285441666666D674425141713D0A07F1285441D7A3708D72425141000000D0EC2854413D0AD7936F425141A4703D1AEA285441D7A370DD6E42514100000080E728544148E17AA46F42514133333373E4285441CDCCCC5C70425141CDCCCC2CE3285441713D0A077242514148E17AB4E12854410AD7A320724251413D0AD7F3E028544152B81EF56E425141295C8F12DB285441CDCCCC5C7042514148E17AA4D7285441CDCCCC1C714251417B14AE37D72854411F85EB4172425141E17A140ED7285441C3F528EC73425141CDCCCC3CD62854411F85EB017842514152B81E45D1285441295C8FF27A425141B81E85FBD3285441AE47E18A79425141A4703D7AD7285441333333B37942514185EB51D8D8285441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986599 - 59487
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 8 </desc>
+<a>
+010600000001000000010300000001000000650000007B14AE37F89650417B14AE977F105541C3F528CCF59650419A999909831055415C8FC2D5F09650417B14AEE7861055411F85EBE1E39650410AD7A3508D105541EC51B8FED8965041333333739210554152B81E75D19650418FC2F5F89610554133333333CC9650417B14AE379C105541C3F5280CCA9650413D0AD743A0105541C3F528DCC6965041D7A3700DAE1055419A999979C4965041295C8F62B51055413D0AD7B3C1965041EC51B8DEBA10554166666636BE965041D7A3707DBF105541EC51B8EEB9965041AE47E12AC3105541EC51B8EEB39650417B14AE07C7105541EC51B82EA4965041E17A148ECE105541AE47E14A859650417B14AE67DC105541B81E855B789650417B14AE07E310554152B81E457B965041C3F5289CE8105541C3F5289C87965041C3F5282CE2105541000000D0B69650419A999949CE105541B81E85CBE09650419A999999BC1055417B14AE27E796504152B81E95B3105541EC51B8EEEF965041000000A0A41055415C8FC245F196504185EB51F8A2105541C3F5283CEE965041E17A145EA0105541333333E3FA9650410000000095105541E17A149E0B9750418FC2F558A410554152B81EE52C975041AE47E15A8B105541000000002D97504185EB51C887105541AE47E18A2C975041AE47E14A841055419A9999792A97504152B81EF57D105541F6285CDF2397504166666686711055418FC2F5581697504185EB51E859105541666666B6139750411F85EB6157105541666666B613975041295C8F02561055410AD7A37013975041C3F528BC541055417B14AE770C975041A4703D6A48105541F6285C1F09975041295C8FB2411055419A99998903975041713D0A473810554185EB5138039750410AD7A360371055417B14AE37FF965041D7A370AD2B10554185EB51D8FC965041666666E6271055415C8FC2A5F79650410AD7A3F02210554166666616EE96504152B81EE51A1055418FC2F5E8EA9650419A999959171055411F85EB31E196504185EB51F80A105541B81E85ABDB965041666666160510554166666696D4965041713D0A87FE0F55411F85EB61C9965041A4703D7AF50F55418FC2F558C3965041713D0A47F10F554133333383BD965041CDCCCCACED0F55419A9999A9B3965041E17A146EE80F554148E17AE4AB965041295C8FD2E10F554166666686A4965041F6285C2FDD0F5541D7A370ED99965041A4703DEAD60F5541C3F5287C8D965041713D0AB7D10F554185EB51A88496504100000040F10F5541000000807B96504148E17AF411105541F6285C5F7B9650411F85EB9112105541E17A145E7B9650410000003013105541B81E857B7B9650410AD7A3D013105541333333B37B965041295C8F62141055411F85EBE17B965041A4703DBA14105541295C8F427C965041CDCCCC3C151055413D0AD7B37C9650418FC2F5A8151055419A9999397D965041E17A14FE15105541A4703DFA819650413333338318105541666666068C9650417B14AE271C105541E17A141E929650417B14AE071D1055415C8FC215979650418FC2F5581E105541E17A147E9C9650411F85EB212110554185EB5178A0965041666666C61A1055419A999979A9965041D7A3705D211055417B14AEE7A59650410AD7A31027105541295C8FB2A79650411F85EB31281055411F85EB01A8965041E17A146E281055418FC2F508AF96504152B81E752D105541C3F5282CB796504152B81E7532105541295C8F12C0965041D7A3701D38105541295C8F32C3965041D7A3701D3910554100000010C69650417B14AED73A1055410AD7A380CB965041E17A142E3D10554166666686D196504148E17A743E1055418FC2F5A8D69650418FC2F54840105541C3F5282CD89650419A9999F93F1055419E940022D8965041752A52863D1055410AD7A3F0D89650410AD7A380401055418FC2F5F8DA965041713D0AF741105541AE47E17ADD9650411F85EB41441055411F85EB51E0965041E17A144E4710554152B81E65E3965041A4703D7A4B105541CDCCCCDCE296504152B81EE54C105541CDCCCC8CE9965041D7A3704D5610554185EB51F8EB965041B81E85DB5A105541EC51B8EEED9650411F85EB715F10554148E17AD4F1965041666666666A105541E17A14FEF2965041295C8F626F10554152B81EB5F596504185EB511878105541713D0A77F796504148E17A547D105541C4C2D175F79650415DB89B547D1055417B14AE37F89650417B14AE977F105541
+</a>
+
+<b>
+0106000000010000000103000000010000003500000085EB51D8FC965041666666E6271055418F3C70E7F9965041B2DFEB1725105541E1110F40F6965041CBF09FC321105541F7A51876F19650412CA4F1BB1D10554166666616EE96504152B81EE51A1055418FC2F5E8EA9650419A99995917105541D6B9EB87E59650415A67D07E10105541040FE893E2965041384F69BB0C105541707E8199DF96504125A27A450910554176AB3400DF965041337042A208105541C8ABEB6CDB965041E0336BDC04105541C3F5287C8D965041713D0AB7D10F554185EB51A88496504100000040F10F5541000000807B96504148E17AF411105541295C8F427C965041CDCCCC3C15105541AC209C7A84965041F61C5A6B19105541666666068C9650417B14AE271C105541E17A141E929650417B14AE071D1055415C8FC215979650418FC2F5581E105541E17A147E9C9650411F85EB212110554185EB5178A0965041666666C61A1055419A999979A9965041D7A3705D21105541295C8FB2A79650411F85EB3128105541C3F5282CB796504152B81E7532105541387162BAC2965041C7DDFBF638105541295C8F32C3965041D7A3701D3910554100000010C69650417B14AED73A1055410AD7A380CB965041E17A142E3D10554166666686D196504148E17A743E1055418FC2F5A8D69650418FC2F548401055419E940022D8965041752A52863D1055411F85EB51E0965041E17A144E4710554152B81E65E3965041A4703D7A4B105541D4BDF840E3965041224577DA4B105541F6285C9FE3965041CDCCCC6C4C105541CDCCCC8CE9965041D7A3704D5610554185EB51F8EB965041B81E85DB5A105541EC51B8EEED9650411F85EB715F10554148E17AD4F1965041666666666A105541E17A14FEF2965041295C8F626F10554152B81EB5F596504185EB511878105541713D0A77F796504148E17A547D105541C4C2D175F79650415DB89B547D1055417B14AE37F89650417B14AE977F1055418FA00853FE965041E052401A8A105541DE5B31A310975041B0E547C57A105541EE2A84BF15975041175F56DD6B105541F6285C2F139750419A999949591055410AD7A37013975041C3F528BC541055417B14AE770C975041A4703D6A48105541F6285CEF029750411F85EB81381055417B14AE37FF965041D7A370AD2B10554185EB51D8FC965041666666E627105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979678 - 3182024
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000000C000000713D0A1759E550410AD7A3E0967854415C8FC2853CE55041AE47E19A857854417B14AEB72CE55041D7A370DD917854410AD7A3E01EE550418FC2F5989C785441A4703D8A2FE5504152B81E45B37854413D0AD79347E55041CDCCCCDCAB78544185EB51A84DE55041666666C6A6785441000000C053E550417B14AE87A37854417B14AEE757E5504166666616A2785441B81E851B5CE55041C3F528DCA0785441CDCCCC1C62E5504148E17A549C785441713D0A1759E550410AD7A3E096785441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000713D0A1759E550410AD7A3E0967854412C1C80DB4CE55041B86A824CA1785441B90870E449E55041CDDDF29CA3785441F77A5F6A45E550410A3E2624A7785441BD37AE8E43E550414AC1B1A1A87854416D464D4540E55041269AD3C7AA785441FBFB09323FE55041855ECE7BAB785441B4DCD1D536E55041B3399905B17854413D0AD79347E55041CDCCCCDCAB78544185EB51A84DE55041666666C6A6785441000000C053E550417B14AE87A37854417B14AEE757E5504166666616A2785441B81E851B5CE55041C3F528DCA0785441CDCCCC1C62E5504148E17A549C785441713D0A1759E550410AD7A3E096785441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979678 - 3552212
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000000C000000713D0A1759E550410AD7A3E0967854415C8FC2853CE55041AE47E19A857854417B14AEB72CE55041D7A370DD917854410AD7A3E01EE550418FC2F5989C785441A4703D8A2FE5504152B81E45B37854413D0AD79347E55041CDCCCCDCAB78544185EB51A84DE55041666666C6A6785441000000C053E550417B14AE87A37854417B14AEE757E5504166666616A2785441B81E851B5CE55041C3F528DCA0785441CDCCCC1C62E5504148E17A549C785441713D0A1759E550410AD7A3E096785441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000713D0A1759E550410AD7A3E0967854412C1C80DB4CE55041B86A824CA1785441B90870E449E55041CDDDF29CA3785441F77A5F6A45E550410A3E2624A7785441BD37AE8E43E550414AC1B1A1A87854416D464D4540E55041269AD3C7AA785441FBFB09323FE55041855ECE7BAB785441B4DCD1D536E55041B3399905B17854413D0AD79347E55041CDCCCCDCAB78544185EB51A84DE55041666666C6A6785441000000C053E550417B14AE87A37854417B14AEE757E5504166666616A2785441B81E851B5CE55041C3F528DCA0785441CDCCCC1C62E5504148E17A549C785441713D0A1759E550410AD7A3E096785441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>1990465 - 344911
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000020000000103000000010000003E000000713D0A27E5AE5041B81E855BE2D854419A9999A9DDAE5041EC51B8CEF0D85441000000E0E6AE5041D7A3701DE9D85441E17A149EEBAE50410AD7A3F0E2D85441CDCCCCCCECAE50410AD7A3D0E1D85441C3F528CCE9AE5041713D0A37E0D8544152B81EF5E8AE50415C8FC205DDD8544166666606E5AE5041CDCCCCFCD7D8544148E17A44E3AE504114AE47E1D8D85441EC51B82EE1AE504185EB5188D5D85441D7A3702DDDAE5041713D0A27D4D85441E17A142EDBAE504114AE4791D2D8544152B81E15D9AE5041295C8F82D3D85441E17A141ED7AE504148E17AE4D0D85441E17A14FED4AE5041A4703D3AD0D85441295C8FF2D2AE504114AE4701CED854410AD7A3B0D1AE504100000090D0D854413D0AD7E3CEAE5041CDCCCC2CD1D85441666666B6CCAE504148E17A34CFD85441B81E852BC9AE50410AD7A3C0CFD8544185EB51B8C6AE5041D7A3707DCCD8544166666676C4AE504152B81E65CDD85441EC51B83EC3AE504185EB51E8CBD854417B14AE97BEAE50419A9999C9CBD8544133333353BDAE5041C3F5282CCBD85441CDCCCC2CBDAE5041A4703D8AC9D85441C3F5281CBCAE5041AE47E17AC7D85441CDCCCCFCB6AE5041A4703DEAC4D85441B81E85ABB5AE5041F6285C9FC2D854418FC2F578B3AE504166666676C1D85441F6285CAFB2AE5041EC51B8AEBED85441295C8F42AFAE5041295C8F02BFD85441C3F5283CADAE5041CDCCCC7CBDD85441295C8F92ABAE50415C8FC215BED8544152B81EE5A8AE5041CDCCCC6CBDD85441713D0A77A6AE5041B81E856BBBD85441C3F5285CA4AE504185EB51D8BBD85441CDCCCC0CA2AE504133333343BBD85441C3F5285CA1AE5041EC51B8DEB9D85441A4703DFA9DAE50415C8FC295B8D85441295C8FC29CAE50419A999999B6D85441B81E852B99AE5041713D0A07B7D85441B81E856B98AE5041295C8F42B6D854417B14AE7799AE50413D0AD733B5D85441A4703DAA95AE504114AE4791B4D85441295C8FD292AE50410AD7A3E0B1D85441F6285C9F91AE5041666666F6B3D85441295C8F128FAE504185EB51B8B1D854419A9999798BAE5041C3F5285CB0D854418FC2F54889AE504148E17A94AED854419A99999986AE5041B81E859BAAD854415C8FC29586AE504148E17AF4A6D85441333333A384AE5041E17A147EA4D85441EC51B89E7CAE5041666666D6AED854413D0AD7037FAE504114AE4731B3D854410AD7A3B090AE5041CDCCCC8CBED854415C8FC24593AE504152B81E75C1D8544152B81E45A6AE5041A4703D3AC6D8544100000040B2AE504152B81EB5CCD85441713D0AB7B7AE5041CDCCCCBCD2D854415C8FC295CFAE50417B14AEB7D8D85441713D0A27E5AE5041B81E855BE2D854410103000000010000003600000000000070EDAE504166666676E0D8544152B81E05F0AE5041F6285C9FD8D8544166666626EFAE50415C8FC285D6D85441F6285C4FD0AE50410AD7A300C7D8544152B81E55C3AE504114AE4721C3D8544133333333ACAE5041A4703DFAB2D8544166666616A0AE50413D0AD7B3ADD85441EC51B84E89AE5041A4703D9A9DD854417B14AED786AE5041D7A3703DA1D85441F6285CCF88AE5041D7A370EDA5D854415C8FC2B588AE5041C3F5280CA9D85441AE47E11A8BAE504185EB5108ADD854419A9999498EAE5041F6285C2FAED8544185EB51A890AE5041333333F3AFD854410000003091AE50417B14AEA7B1D8544148E17A8492AE50419A999939B0D85441EC51B81E96AE5041CDCCCCCCB2D854418FC2F5A89AAE504185EB5128B4D8544114AE47B19AAE5041000000C0B5D8544152B81E159EAE504152B81E05B4D85441AE47E1EA9EAE504152B81EA5B7D854410AD7A380A2AE5041D7A370DDB8D85441E17A148EA2AE504133333343BAD85441AE47E17AA4AE50413D0AD783BAD854411F85EB31A7AE504185EB51D8B9D8544185EB5148A9AE5041713D0A97BCD854417B14AE67ABAE5041333333F3BCD85441CDCCCCFCACAE5041713D0A57BCD85441C3F5285CAFAE504185EB51E8BDD8544133333323B3AE5041D7A3708DBDD8544148E17AB4B4AE50419A9999A9C0D85441C3F5288CB6AE50418FC2F508C2D85441C3F528ACB7AE50410AD7A3C0C3D85441000000A0BCAE504114AE4731C6D85441CDCCCC5CBFAE50413D0AD763C7D854415C8FC2A5BFAE504152B81E35CAD85441E17A140EC4AE5041A4703D8ACAD8544100000020C5AE50418FC2F5B8CBD854417B14AE17C7AE504166666646CBD85441713D0AE7C9AE50413D0AD7B3CED85441CDCCCCFCCCAE504148E17A14CED854415C8FC225CFAE5041D7A3704DCFD85441CDCCCCBCD0AE5041F6285CFFCED854411F85EB71D2AE5041E17A14BECCD8544114AE4781D4AE5041A4703DAACCD8544166666646D6AE5041AE47E1DACED85441CDCCCC7CD9AE5041B81E858BD1D85441295C8FA2DBAE50413D0AD733D1D85441AE47E1FADDAE5041295C8FE2D2D85441B81E859BE1AE504185EB5178D3D85441295C8FC2E5AE5041AE47E16AD7D8544114AE4791E9AE5041CDCCCC2CDAD85441713D0A07EBAE504114AE4741DFD8544100000070EDAE504166666676E0D85441
+</a>
+
+<b>
+010600000001000000010300000001000000720000006E4D8D04F0AE5041089F15A1D8D8544166666626EFAE50415C8FC285D6D85441794248ECD3AE5041C9A819D2C8D85441798E72E8D3AE504185D581E4C8D85441F6285C4FD0AE50410AD7A300C7D8544152B81E55C3AE504114AE4721C3D8544133333333ACAE5041A4703DFAB2D8544145DC3531A8AE50416DC66B3BB1D854418EC44F74A8AE504100C77D93B1D85441E2B0931AA8AE5041FA96BF8EB2D854411FD0F012A8AE50410C0DA8CFB2D85441528C9419A3AE50414FE389DDB1D8544144F980EAA2AE504126E47F3EB0D854419433B5F7A3AE5041E427FA9CAFD85441D887EFBAA4AE5041C1A972B9AFD85441934FD15BA1AE5041773E8F41AED85441E8DC4E88A0AE50414B7FC830B1D8544149A7DC03A0AE5041677326C8B1D85441300AB9619CAE5041088D2D18B1D85441A7809A9E9CAE50412A2F047DB0D85441EA186FF59BAE5041041CDD75AFD85441F23C9BDA9AAE504178CC88E0AED8544175F44D9C98AE50411FA5102DAED854413829AFC996AE50417C7E9879ADD854417472CC5095AE5041E596F7FBACD854412C68564893AE5041E3184990ACD854413D98144D92AE5041611EECB8ABD85441528558F391AE5041D1660940AAD85441BE1B66E191AE50418D2CD532A9D854411F68298190AE5041BBC8670BA8D85441D53C0BB58FAE504167CC2872A7D85441A62EF2838EAE5041CF66D988A6D8544103C9A29A8DAE5041D596978DA5D8544156B5E6408DAE5041F7018A9FA5D85441C10C1DF98CAE504167CC2872A7D85441C10C1DF98CAE50414CAF26C7A8D85441C10C1DF98CAE50417ABD3FF8A9D8544116770F0B8DAE504120A13D4DABD85441583395AC8DAE50414FAF567EACD8544185C3FF718EAE50413B01EA0DADD854413E556A378FAE50419F2862C1ADD85441E3F9905690AE504120E4E762AED854416D63836890AE5041F8870E82AFD854415C755B6F90AE5041F743C7C8AFD8544185EB51A890AE5041333333F3AFD85441773AA5C590AE5041BC118A51B0D854413600003091AE50413A14AEA7B1D854418834E6FF91AE5041883426C8B0D8544148E17A8492AE50419A999939B0D85441EC51B81E96AE5041CDCCCCCCB2D85441E7B0928999AE5041AC8563D2B3D85441F96C59DF99AE504130A19DBBB2D854419E1180FE9AAE5041997A2508B2D85441CC1F992F9CAE50413553AD54B1D854412EB727FE9FAE50411818ACCEB1D85441EBE12E099EAE50414830360BB4D854418589140D9EAE5041A10F3909B4D85441842C190E9EAE5041420DB408B4D854413AA670119EAE5041537BFF06B4D8544152B81E159EAE504152B81E05B4D85441F1BAED159EAE5041C86AA108B4D8544130C9922EA0AE50413ED1F39BB3D8544115AC9083A1AE50413A146EFAB2D8544150385820A3AE504163AF1E11B2D854417640AC12A8AE50412AD2EED1B2D854412CDCAEF6A7AE504128A5D8BFB3D85441246D19BCA8AE50417E0FCBD1B3D854411E7C32EDA9AE504122B4F1F0B4D85441262E723DACAE50415E40B98DB6D85441DD412E97ACAE5041A13B1665B7D8544161BA39DAADAE504135A50877B7D85441B7242CECADAE5041E3F79B06B8D85441E532451DAFAE5041C8DA995BB9D85441C4245CA3B1AE5041F7278AC2BAD854419F46312EB3AE5041EE791D52BBD85441EE80653BB4AE5041F0F7CBBDBBD85441FA71E4E5B4AE5041DE883683BCD854417EEAEF28B6AE504180AFAE36BDD85441777B5AEEB6AE5041D619A148BDD8544149EFC208B9AE50410B58787EBDD85441D098E066B9AE5041B347759ABCD854410C8B0376C3AE50417E002394C3D85441A6C7CF87D0AE5041EC6E278BC7D85441B47F2DDDD3AE5041391C9A1AC9D8544174807DD0D3AE5041CB7E8057C9D8544157CEA8D5D3AE50411FDB3868CAD8544157CEA8D5D3AE504198AA8FBACBD8544138BD4314D4AE5041EA5F57AECCD8544114AE4781D4AE5041A4703DAACCD854415F666646D6AE5041A647E1DACED854418CCCCC7CD9AE5041421E858BD1D85441295C8FA2DBAE50413D0AD733D1D85441E447E1FADDAE5041FE5B8FE2D2D85441B471256CDEAE50411684D3F4D2D85441D96188A1DEAE5041998E6FFDD2D854412E9B6DF9DEAE504157499C0BD3D85441494671C4DFAE5041405800EED1D854419741CE9BE0AE5041EAED0DDCD1D85441EF296F19E1AE5041F62CE511D2D85441D18EBE02E2AE5041E27E78A1D2D854416AF40DECE2AE5041E27E78A1D2D85441B92E42F9E3AE504137AA937DD2D85441DD13414FE5AE50414BA90083D3D85441AB9FC7ECE6AE504142131F46D5D854411080522CE8AE50413A7D3D09D7D85441DD10DB8EE9AE50419E2E64C4D8D85441FCDAFE41EAAE5041A2AE1E99D9D85441FB7527BDEAAE504151EBC54DDBD85441D746A12EECAE504181508725DED85441275F9C4BECAE50415AF0E6E3DFD85441C6C88A6BEDAE5041B59B2A74E0D854419AA2AF6BEDAE50416D123D74E0D8544100000070EDAE504166666676E0D854416E4D8D04F0AE5041089F15A1D8D85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>1990465 - 409295
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000020000000103000000010000003E000000713D0A27E5AE5041B81E855BE2D854419A9999A9DDAE5041EC51B8CEF0D85441000000E0E6AE5041D7A3701DE9D85441E17A149EEBAE50410AD7A3F0E2D85441CDCCCCCCECAE50410AD7A3D0E1D85441C3F528CCE9AE5041713D0A37E0D8544152B81EF5E8AE50415C8FC205DDD8544166666606E5AE5041CDCCCCFCD7D8544148E17A44E3AE504114AE47E1D8D85441EC51B82EE1AE504185EB5188D5D85441D7A3702DDDAE5041713D0A27D4D85441E17A142EDBAE504114AE4791D2D8544152B81E15D9AE5041295C8F82D3D85441E17A141ED7AE504148E17AE4D0D85441E17A14FED4AE5041A4703D3AD0D85441295C8FF2D2AE504114AE4701CED854410AD7A3B0D1AE504100000090D0D854413D0AD7E3CEAE5041CDCCCC2CD1D85441666666B6CCAE504148E17A34CFD85441B81E852BC9AE50410AD7A3C0CFD8544185EB51B8C6AE5041D7A3707DCCD8544166666676C4AE504152B81E65CDD85441EC51B83EC3AE504185EB51E8CBD854417B14AE97BEAE50419A9999C9CBD8544133333353BDAE5041C3F5282CCBD85441CDCCCC2CBDAE5041A4703D8AC9D85441C3F5281CBCAE5041AE47E17AC7D85441CDCCCCFCB6AE5041A4703DEAC4D85441B81E85ABB5AE5041F6285C9FC2D854418FC2F578B3AE504166666676C1D85441F6285CAFB2AE5041EC51B8AEBED85441295C8F42AFAE5041295C8F02BFD85441C3F5283CADAE5041CDCCCC7CBDD85441295C8F92ABAE50415C8FC215BED8544152B81EE5A8AE5041CDCCCC6CBDD85441713D0A77A6AE5041B81E856BBBD85441C3F5285CA4AE504185EB51D8BBD85441CDCCCC0CA2AE504133333343BBD85441C3F5285CA1AE5041EC51B8DEB9D85441A4703DFA9DAE50415C8FC295B8D85441295C8FC29CAE50419A999999B6D85441B81E852B99AE5041713D0A07B7D85441B81E856B98AE5041295C8F42B6D854417B14AE7799AE50413D0AD733B5D85441A4703DAA95AE504114AE4791B4D85441295C8FD292AE50410AD7A3E0B1D85441F6285C9F91AE5041666666F6B3D85441295C8F128FAE504185EB51B8B1D854419A9999798BAE5041C3F5285CB0D854418FC2F54889AE504148E17A94AED854419A99999986AE5041B81E859BAAD854415C8FC29586AE504148E17AF4A6D85441333333A384AE5041E17A147EA4D85441EC51B89E7CAE5041666666D6AED854413D0AD7037FAE504114AE4731B3D854410AD7A3B090AE5041CDCCCC8CBED854415C8FC24593AE504152B81E75C1D8544152B81E45A6AE5041A4703D3AC6D8544100000040B2AE504152B81EB5CCD85441713D0AB7B7AE5041CDCCCCBCD2D854415C8FC295CFAE50417B14AEB7D8D85441713D0A27E5AE5041B81E855BE2D854410103000000010000003600000000000070EDAE504166666676E0D8544152B81E05F0AE5041F6285C9FD8D8544166666626EFAE50415C8FC285D6D85441F6285C4FD0AE50410AD7A300C7D8544152B81E55C3AE504114AE4721C3D8544133333333ACAE5041A4703DFAB2D8544166666616A0AE50413D0AD7B3ADD85441EC51B84E89AE5041A4703D9A9DD854417B14AED786AE5041D7A3703DA1D85441F6285CCF88AE5041D7A370EDA5D854415C8FC2B588AE5041C3F5280CA9D85441AE47E11A8BAE504185EB5108ADD854419A9999498EAE5041F6285C2FAED8544185EB51A890AE5041333333F3AFD854410000003091AE50417B14AEA7B1D8544148E17A8492AE50419A999939B0D85441EC51B81E96AE5041CDCCCCCCB2D854418FC2F5A89AAE504185EB5128B4D8544114AE47B19AAE5041000000C0B5D8544152B81E159EAE504152B81E05B4D85441AE47E1EA9EAE504152B81EA5B7D854410AD7A380A2AE5041D7A370DDB8D85441E17A148EA2AE504133333343BAD85441AE47E17AA4AE50413D0AD783BAD854411F85EB31A7AE504185EB51D8B9D8544185EB5148A9AE5041713D0A97BCD854417B14AE67ABAE5041333333F3BCD85441CDCCCCFCACAE5041713D0A57BCD85441C3F5285CAFAE504185EB51E8BDD8544133333323B3AE5041D7A3708DBDD8544148E17AB4B4AE50419A9999A9C0D85441C3F5288CB6AE50418FC2F508C2D85441C3F528ACB7AE50410AD7A3C0C3D85441000000A0BCAE504114AE4731C6D85441CDCCCC5CBFAE50413D0AD763C7D854415C8FC2A5BFAE504152B81E35CAD85441E17A140EC4AE5041A4703D8ACAD8544100000020C5AE50418FC2F5B8CBD854417B14AE17C7AE504166666646CBD85441713D0AE7C9AE50413D0AD7B3CED85441CDCCCCFCCCAE504148E17A14CED854415C8FC225CFAE5041D7A3704DCFD85441CDCCCCBCD0AE5041F6285CFFCED854411F85EB71D2AE5041E17A14BECCD8544114AE4781D4AE5041A4703DAACCD8544166666646D6AE5041AE47E1DACED85441CDCCCC7CD9AE5041B81E858BD1D85441295C8FA2DBAE50413D0AD733D1D85441AE47E1FADDAE5041295C8FE2D2D85441B81E859BE1AE504185EB5178D3D85441295C8FC2E5AE5041AE47E16AD7D8544114AE4791E9AE5041CDCCCC2CDAD85441713D0A07EBAE504114AE4741DFD8544100000070EDAE504166666676E0D85441
+</a>
+
+<b>
+01060000000100000001030000000100000081000000E2FFFF6FEDAE504157666676E0D854411ECFDBA7EEAE5041D169A7C3DCD854413CB81E05F0AE504136295C9FD8D8544146666626EFAE5041518FC285D6D854415267AC43EDAE5041E3DAD492D5D85441794248ECD3AE5041C9A819D2C8D85441196333D6D3AE50419ADC5A2AC9D8544116860A01D2AE504146B07768C8D854412370FF39CEAE50415071B9D8C6D854411270C2D9C9AE5041FCFEEA60C5D854410737A387C3AE5041176FDA67C3D85441B704E427C3AE504149603927C3D85441D2AA525BB9AE50411CE568ACBCD8544154259F81B9AE5041CC5B7B45BCD8544133333333ACAE5041A4703DFAB2D8544145DC3531A8AE50416DC66B3BB1D854418EC44F74A8AE504100C77D93B1D85441E2B0931AA8AE5041FA96BF8EB2D854419FE51A08A8AE5041A555C22BB3D854410A2B360BA3AE50410D709EE3B1D8544144F980EAA2AE504126E47F3EB0D854419433B5F7A3AE5041E427FA9CAFD85441D887EFBAA4AE5041C1A972B9AFD85441934FD15BA1AE5041773E8F41AED85441E8DC4E88A0AE50414B7FC830B1D85441B382D9AB9FAE504125D6F92BB2D854416BA15E379CAE50413A84414DB1D854416F4611E39CAE504146836B59B0D854412EC962779CAE50410EB4295EAFD85441F23C9BDA9AAE504178CC88E0AED8544175F44D9C98AE50411FA5102DAED854413829AFC996AE50417C7E9879ADD854417472CC5095AE5041E596F7FBACD854412C68564893AE5041E3184990ACD854413D98144D92AE5041611EECB8ABD85441528558F391AE5041D1660940AAD85441BE1B66E191AE50418D2CD532A9D85441AF1F090A91AE5041FD74F2B9A7D85441D53C0BB58FAE504167CC2872A7D85441A62EF2838EAE5041CF66D988A6D8544103C9A29A8DAE5041D596978DA5D8544156B5E6408DAE5041F7018A9FA5D85441C10C1DF98CAE504167CC2872A7D85441C10C1DF98CAE50414CAF26C7A8D85441C10C1DF98CAE50417ABD3FF8A9D8544116770F0B8DAE504120A13D4DABD85441583395AC8DAE50414FAF567EACD8544185C3FF718EAE50413B01EA0DADD854413E556A378FAE50419F2862C1ADD85441E3F9905690AE504120E4E762AED854416D63836890AE5041F8870E82AFD854415C755B6F90AE5041F743C7C8AFD8544185EB51A890AE5041333333F3AFD85441773AA5C590AE5041BC118A51B0D854413600003091AE50413A14AEA7B1D854417EF62DFF91AE5041E54CECC8B0D8544148E17A8492AE50419A999939B0D85441EC51B81E96AE5041CDCCCCCCB2D85441E7B0928999AE5041AC8563D2B3D85441F96C59DF99AE504130A19DBBB2D854419E1180FE9AAE5041997A2508B2D85441CC1F992F9CAE50413553AD54B1D85441EFDB39A89FAE50415E80E030B2D85441F2E12E099EAE50414B30360BB4D8544152B81E159EAE504152B81E05B4D85441F1BAED159EAE5041C86AA108B4D8544130C9922EA0AE50413ED1F39BB3D8544115AC9083A1AE50413A146EFAB2D8544150385820A3AE504163AF1E11B2D85441C7210908A8AE50413D56592CB3D854412CDCAEF6A7AE504128A5D8BFB3D85441246D19BCA8AE50417E0FCBD1B3D854411E7C32EDA9AE504122B4F1F0B4D85441A8E524FFA9AE5041FB571810B6D854414C4B74E8AAAE5041FC96EF45B6D85441262E723DACAE50415E40B98DB6D85441DD412E97ACAE5041A13B1665B7D8544161BA39DAADAE504135A50877B7D85441B7242CECADAE5041E3F79B06B8D85441B8630322AEAE50417270A749B9D85441E532451DAFAE5041C8DA995BB9D85441DDC3AFE2AFAE50416040E944BAD85441D3EC89C3B0AE5041F569D591BAD8544129709B8CB1AE50414050CD9DBAD8544113BB1158B2AE50412CAC86BABAD85441BE1F9017B3AE5041314F7C15BBD85441B8642A45B4AE504122F7FC85BBD85441C153E7F3B4AE504135385D26BCD85441B2EFAF28B6AE5041940D12E1BCD85441E8201E00B7AE504120313000BDD8544141E43EE1B8AE5041EE3FD140BDD85441D2532454B9AE504108EAF3C1BCD854413FBB8B18BBAE5041AC4896E3BDD8544197CDD696C3AE50410BF6B882C3D85441E46EA9ADCAAE50413F8355B7C5D85441EC95E824CEAE50412D62D6E9C6D85441196333D6D3AE504186E1E53FC9D85441839643BED3AE5041E0BC7698C9D854411DD7B388D3AE50410E7ADD2ECAD85441A90CAD91D3AE5041D4FCC69ECBD8544137BD4314D4AE5041EA5F57AECCD8544114AE4781D4AE5041A4703DAACCD854415F666646D6AE5041A647E1DACED854418CCCCC7CD9AE5041421E858BD1D85441D0CC363EDBAE50411D0DD843D1D85441295C8FA2DBAE50413D0AD733D1D854419463B879DCAE504125CC36CED1D85441E447E1FADDAE5041FE5B8FE2D2D85441AA7BC96CDEAE504161F8EDF4D2D85441399B6DF9DEAE504157499C0BD3D854415DF4DD34DFAE50418D535DC5D2D85441494671C4DFAE5041405800EED1D854419741CE9BE0AE5041EAED0DDCD1D85441EF296F19E1AE5041F62CE511D2D85441D18EBE02E2AE5041E27E78A1D2D854416AF40DECE2AE5041E27E78A1D2D85441B92E42F9E3AE504137AA937DD2D854419311404EE5AE5041D00FE366D3D854412B38B801E6AE50411F4A1774D4D8544123C922C7E6AE50414E9707DBD5D85441A60257D4E7AE504134B9DC65D7D8544136BA394DE9AE50410C5D0385D8D8544179B59624EAAE5041B0C2526ED9D85441DC9D37A2EAAE5041CB22FF2EDBD854410AAC50D3EBAE5041486B4C6DDDD85441B7BF0C2DECAE5041ECD09B56DED85441275F9C4BECAE50415AF0E6E3DFD854419BF8C2ACECAE5041BB099414E0D85441E2FFFF6FEDAE504157666676E0D85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>403764 - 2923381
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -48 </desc>
+<a>
+0106000000040000000103000000010000001900000048E17A34A01551415C8FC2C5ADDB54415C8FC2259D1551413D0AD763A9DB54419A999949A1155141F6285CCFA4DB54410AD7A3F09E155141E17A142EA3DB54413D0AD7F39B155141A4703D2AA6DB544148E17A34991551418FC2F548A6DB5441EC51B82E951551415C8FC2D5A0DB544152B81EF584155141B81E85BBB3DB54419A999909721551418FC2F538C7DB5441D7A370FD6B15514133333313CDDB5441F6285C6F6A15514148E17AA4D1DB54413333333368155141295C8FA2D7DB544185EB5118651551415C8FC2C5DCDB544152B81ED56815514185EB51C8DADB5441295C8FD26E1551413D0AD793D6DB54413333338375155141333333F3CFDB5441F6285C2F7B155141D7A3709DCBDB5441D7A3703D8115514148E17A94C6DB544100000010851551415C8FC285C3DB54410AD7A3A08B1551418FC2F5A8BDDB5441333333638F155141EC51B85EB8DB544114AE4791951551419A9999E9B0DB544152B81E2597155141CDCCCC7CB1DB54411F85EBB19A155141F6285C2FB6DB544148E17A34A01551415C8FC2C5ADDB5441010300000001000000630000005C8FC205E1155141333333E38BDB5441EC51B8CEE2155141666666768CDB5441666666A6E7155141A4703D5A8DDB5441713D0A07EB15514114AE47C18EDB54411F85EB31ED1551415C8FC2A58FDB544152B81E55F41551415C8FC22589DB5441E17A141EF6155141713D0A2786DB544152B81EA5F7155141C3F528EC83DB54415C8FC285F4155141AE47E1AA83DB544152B81E15F11551411F85EB1185DB54415C8FC2F5ED1551413333335385DB5441AE47E1DAEB1551413D0AD78385DB54419A999949E8155141295C8F7288DB54417B14AEB7E4155141000000308BDB54410AD7A330E315514114AE47818BDB54418FC2F5B8E1155141EC51B8EE8ADB544152B81E25E4155141295C8F7288DB5441295C8FE2E61551418FC2F59886DB5441AE47E19AE81551413D0AD79385DB5441A4703D6AE8155141713D0AE782DB5441D7A3701DE9155141D7A370FD80DB54415C8FC2C5EA155141B81E858B80DB54410AD7A3F0EC155141295C8F0282DB5441D7A3709DEF15514148E17A6482DB5441CDCCCCBCF21551415C8FC2A582DB5441C3F528BCF51551413333333382DB54418FC2F568F8155141F6285C5F81DB544114AE4711FA15514148E17A247FDB5441B81E851BFC155141713D0A777CDB54413D0AD7E3FD155141D7A3706D7ADB5441F6285C2F00165141E17A149E7ADB5441D7A370CDFF1551417B14AE977CDB544166666656FE155141000000307EDB544185EB51C8FE155141713D0AA77FDB544114AE4791001651418FC2F50880DB54415C8FC2B504165141333333E37EDB5441A4703DEA0816514152B81E157CDB54413D0AD7D30A16514114AE47517BDB5441000000500D165141CDCCCC5C7ADB5441B81E859B0F1651413D0AD79378DB5441B81E85DB12165141B81E85CB76DB5441F6285CEF161651419A99993973DB5441713D0AB71B1651415C8FC2356FDB54419A9999991D165141AE47E17A6BDB54418FC2F52820165141713D0A4766DB544185EB51581E1651411F85EBA162DB544148E17A64101651417B14AEB76DDB5441D7A3704D0A1651410AD7A3E070DB544152B81EB5011651415C8FC29573DB54413D0AD7E3FA155141000000C076DB54419A9999C9F415514152B81E257BDB544152B81EA5E91551415C8FC2D57DDB54415C8FC285E41551419A9999F97DDB54419A999909E5155141713D0AB77FDB5441C3F5285CE21551417B14AED77FDB54418FC2F568DE155141A4703D4A80DB5441A4703D6ADB155141CDCCCCCC80DB54419A999909D8155141CDCCCCCC80DB54410AD7A3D0D5155141A4703DBA7FDB5441AE47E1CAD4155141E17A146E80DB5441F6285C0FCE155141EC51B80E85DB54410AD7A380CF15514185EB519886DB5441E17A146ED215514148E17AA485DB54419A9999D9D4155141295C8F3285DB544185EB51D8D7155141C3F528FC83DB54411F85EBD1D9155141AE47E1BA83DB5441A4703D6ADB155141000000C084DB5441295C8F12DD15514185EB516886DB544100000090DC1551415C8FC23589DB5441666666B6DA155141C3F5287C8ADB5441E17A14FED8155141A4703D0A8ADB5441F6285C0FD615514185EB51A889DB5441A4703D9AD11551415C8FC21588DB544114AE4711D3155141B81E850B8DDB5441333333E3C1155141EC51B82E93DB5441A4703DCABF155141F6285CBF90DB5441AE47E12ABF1551411F85EB0190DB5441CDCCCCACB91551413D0AD7B394DB544185EB51D8B21551419A9999299BDB54419A9999C9AE1551419A9999C99EDB54411F85EB11AC15514152B81E15A2DB544114AE4731AD15514166666686A4DB54417B14AED7AE155141C3F528BCA4DB544133333323B215514185EB5158A3DB544166666616B5155141D7A3703DA2DB5441E17A145EB8155141A4703DAAA2DB544114AE4701BB1551418FC2F598A1DB54413D0AD763C21551410AD7A3E09DDB54415C8FC2B5CC155141D7A3708D99DB5441C3F5280CD215514185EB51A896DB5441E17A14BED5155141333333A395DB5441EC51B80ED915514114AE473195DB5441CDCCCCECDB155141D7A3706D94DB54419A999999DE1551415C8FC2E592DB54410AD7A3F0DF155141AE47E1BA90DB544133333383E015514114AE47B18EDB544185EB5148DE155141666666968CDB54419A999989DE155141F6285C0F8BDB54415C8FC205E1155141333333E38BDB5441010300000001000000630000008FC2F51851165141666666F622DB5441666666464416514152B81EA52ADB5441000000503E165141D7A3700D30DB544148E17AE4371651415C8FC28534DB54415C8FC27531165141E17A146E3ADB5441C3F5288C2C1651417B14AEB73FDB5441A4703D0A241651411F85EB214ADB5441E17A148E1D1651415C8FC24551DB5441E17A145E0F165141AE47E18A61DB54411F85EBF1101651419A9999F962DB544133333303141651415C8FC22562DB5441D7A3700D1616514114AE474163DB544148E17A9418165141F6285C7F62DB54417B14AEA7191651418FC2F57860DB5441F6285C2F1C165141295C8F325EDB54415C8FC2551E165141EC51B80E5DDB54410AD7A3E021165141A4703D7A5BDB54419A9999E92416514148E17A7459DB5441D7A370BD281651418FC2F5E858DB54418FC2F5782D16514152B81E8556DB5441C3F5289C30165141295C8FF254DB5441CDCCCC9C301651411F85EB4153DB5441333333832D165141295C8FA253DB5441F6285C1F2C1651410AD7A3F052DB5441D7A3708D2B165141AE47E10A51DB5441295C8F222D1651411F85EB014EDB5441CDCCCCBC30165141666666364ADB544152B81E65331651413333330349DB5441CDCCCC1C361651411F85EBB148DB544148E17A94381651413333332349DB5441EC51B80E3C1651415C8FC28544DB5441666666A63E165141D7A370DD41DB5441B81E853B401651417B14AEF73FDB5441713D0A1744165141000000503DDB54413D0AD7734816514185EB51C83ADB54411F85EB314D16514114AE477138DB54419A9999F95416514152B81E6534DB544185EB519854165141D7A370CD31DB5441713D0A1754165141666666562FDB5441713D0A4754165141F6285C0F2DDB5441D7A3703D561651419A9999292BDB5441713D0A8759165141713D0A272ADB5441EC51B8FE5B165141666666F629DB5441713D0AF75E165141713D0A272ADB5441000000E0611651413333330329DB54418FC2F5C8641651417B14AEC71FDB54418FC2F5386A1651411F85EBF11DDB5441713D0AF76E165141713D0A771FDB54410AD7A31072165141D7A3709D21DB544152B81E957316514152B81E3524DB544185EB51C874165141666666C624DB54411F85EBF1771651411F85EB4123DB544148E17AD478165141B81E850B21DB54417B14AED779165141713D0AA71FDB5441333333A37D1651410AD7A3601DDB5441AE47E14A80165141A4703D4A1BDB54413333331383165141AE47E18A1BDB5441AE47E19A851651419A9999291BDB54413D0AD78388165141AE47E17A1BDB5441000000C08C165141666666E619DB54419A9999E98F165141EC51B87E17DB544148E17A74931651417B14AE2715DB54410AD7A31096165141A4703D2A17DB5441CDCCCC5C981651415C8FC2A51ADB54410AD7A380991651417B14AE071DDB5441E17A14DEA2165141CDCCCC2C1ADB5441D7A3702DA1165141EC51B86E17DB54411F85EB619D1651415C8FC28514DB5441295C8F2298165141A4703D8A10DB54419A99993995165141295C8F020EDB5441713D0A47941651417B14AE770ADB5441C3F5282C96165141B81E855B06DB5441295C8F329816514148E17AE403DB5441EC51B84E9C165141F6285C3F02DB544114AE4791A2165141D7A3709D01DB54410AD7A3A0A716514152B81E3504DB54415C8FC235AA165141EC51B82E08DB5441B81E856BB3165141EC51B87E01DB5441B81E85BBBC165141A4703D0AFCDA5441B81E859BC516514133333313F8DA5441C3F5280CC5165141C3F5280CF7DA5441AE47E1BAD01651415C8FC265EBDA54419A999979DD1651410AD7A360E2DA5441295C8F12EB16514148E17A74E1DA54411F85EB31ED165141E17A149ED3DA54410AD7A340ED1651417B14AE17D2DA54411F85EBF1E2165141CDCCCC2CD3DA54413D0AD7B3D6165141666666D6D4DA544166666676D2165141EC51B86ED6DA54415C8FC2F5CA1651415C8FC2B5D9DA5441E17A14EEC216514114AE4731DFDA54410AD7A370B1165141713D0AB7EBDA544185EB51A8A2165141B81E85ABF5DA5441F6285CFF9416514152B81EC5FFDA5441295C8F9287165141713D0A0709DB5441D7A3702D7C165141B81E851B0FDB5441713D0AD767165141CDCCCC7C17DB5441AE47E17A5F165141666666A61BDB54418FC2F51851165141666666F622DB54410103000000010000001500000014AE47112F1551417B14AE1710DC5441F6285C4F311551410AD7A3A00EDC5441713D0AC73A1551416666661607DC54417B14AE97481551411F85EBC1FCDB54418FC2F5584F155141333333A3F8DB5441000000A058155141CDCCCCBCF5DB5441B81E85BB5C15514100000090EADB5441713D0AF75E155141CDCCCCFCE4DB54415C8FC23562155141E17A141EDFDB544152B81E0567155141F6285CFFD6DB544185EB516869155141295C8FE2D0DB54413D0AD71368155141CDCCCCFCCFDB5441CDCCCC3C64155141EC51B8EED6DB544114AE47715C1551417B14AE37DEDB5441B81E853B55155141D7A3702DE6DB54415C8FC2054C15514148E17A44EFDB5441295C8FE2391551410AD7A330FFDB5441CDCCCC0C331551419A9999C904DC544185EB51282B155141A4703DCA0CDC5441CDCCCC9C2B15514152B81E1510DC544114AE47112F1551417B14AE1710DC5441
+</a>
+
+<b>
+0106000000010000000103000000010000004C000000D5E1CF50F4155141D474075D8BDB54417B14AE57F5155141713D0A478ADB54418FDA90B0F515514134D3D4FE89DB5441AB3D3099F615514180C0DA4189DB54415BD5EF97F7155141FD37E77288DB54418FC2F5D8F7155141E17A143E88DB54415A106C95F9155141E191A92887DB5441E430B0B3FA1551414F32FC7586DB544166666656FC1551410AD7A37085DB5441634D928CFC155141E747345585DB544140E2A157FE1551410122B56C84DB544166666666001651411F85EB6183DB544167D5310F02165141585CC3D682DB5441B788DCE604165141A04A53DB81DB54418F66F4BA09165141957A1AD681DB5441CEEBBED50A165141F6B84C6480DB5441473AA2EE0B1651417E17FCF47EDB5441B46BCCD90C1651410AC5ADE07DDB5441ED783CD70D16514124B6BBC57CDB54417C2EAEE60E165141A64AAF967BDB5441D71830351016514182FD3A217ADB5441319F647E11165141F71EB2B178DB544194E6A4C8121651412D53FE4077DB544151A755FF1916514125DEC9DF72DB5441DE3998DF1C165141E7651E4B6BDB544145B7C12020165141D5CB903666DB544191832B6925165141BC18946F5FDB54419B2A2F7424165141BC5606F15DDB544151D5A93820165141A141D03161DB544149D70C3A1E165141A904F8B962DB54417C8388840D1651417154F2916FDB5441E19A9C1A06165141706159C172DB544189DBFA3A0416514177574B9973DB5441DE0BE35AFC155141EE3AA1B277DB5441D860A758F1155141C5A8716A7CDB54415BF6DE0FEA155141B32E28737DDB54414F1B1D87E515514132BAD3F27DDB5441DC160054E21551419D936A097EDB54414F3A93E6DF15514110C58D1A7EDB54410C44AA34DD155141AAC4A93A7EDB5441440F800CD9155141BBAE67127FDB5441D43AFBD5D5155141703928B97FDB54411527EDA9D51551416769611E81DB54413B116BF4CE155141A332EE8B85DB544171C267E7CF1551418260E51388DB5441F8C47A2ED2155141A9BCC2268EDB5441308CAC65C2155141E4B3865993DB5441F6A77F3FBF1551410A2B991E91DB54414B037DC3BD1551411C21A64692DB5441B4F5BE8DBB155141C8535E0294DB54410D82B949B8155141CF49129296DB54419EB23DA3B5155141802837A698DB5441B39CC261B41551418FB1CBF899DB544170641615B01551413BD2CFA39EDB5441DCB4BEC6AA155141E217070CA4DB5441C41247F2AD155141FAA3621AA6DB5441E40B7F61B11551411B6DEEF5A4DB5441D73DE62FB51551418CE26A96A3DB5441FD278563B915514165D97C03A3DB5441C0B2D0D2C215514103E4939A9EDB5441A1DBC776CD1551417CFD3F2A9ADB5441F2F6DAE2D0155141B27C041699DB5441873B53B3D4155141983A21E297DB544100B7FE5AD8155141C6481BBB96DB5441EDCA5752DB155141C2800A3596DB54411E5C7058DD155141321672B895DB5441EF7C35C1DE1551413D6C775F95DB54413D9ED6FDDE15514172E9AF4895DB54418156264BE0155141491157B494DB5441EC6D4E97E11551417ECC812094DB5441BE8BB151E315514163948E5C93DB5441C5B18B18E7155141ECB100FF91DB5441C80720CCEE15514198ABFA3291DB5441A98C9A3CF11551412505949E8EDB5441C8F13FACF215514146A2C8198DDB5441D5E1CF50F4155141D474075D8BDB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>403764 - 3558923
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -48 </desc>
+<a>
+0106000000040000000103000000010000001900000048E17A34A01551415C8FC2C5ADDB54415C8FC2259D1551413D0AD763A9DB54419A999949A1155141F6285CCFA4DB54410AD7A3F09E155141E17A142EA3DB54413D0AD7F39B155141A4703D2AA6DB544148E17A34991551418FC2F548A6DB5441EC51B82E951551415C8FC2D5A0DB544152B81EF584155141B81E85BBB3DB54419A999909721551418FC2F538C7DB5441D7A370FD6B15514133333313CDDB5441F6285C6F6A15514148E17AA4D1DB54413333333368155141295C8FA2D7DB544185EB5118651551415C8FC2C5DCDB544152B81ED56815514185EB51C8DADB5441295C8FD26E1551413D0AD793D6DB54413333338375155141333333F3CFDB5441F6285C2F7B155141D7A3709DCBDB5441D7A3703D8115514148E17A94C6DB544100000010851551415C8FC285C3DB54410AD7A3A08B1551418FC2F5A8BDDB5441333333638F155141EC51B85EB8DB544114AE4791951551419A9999E9B0DB544152B81E2597155141CDCCCC7CB1DB54411F85EBB19A155141F6285C2FB6DB544148E17A34A01551415C8FC2C5ADDB5441010300000001000000630000005C8FC205E1155141333333E38BDB5441EC51B8CEE2155141666666768CDB5441666666A6E7155141A4703D5A8DDB5441713D0A07EB15514114AE47C18EDB54411F85EB31ED1551415C8FC2A58FDB544152B81E55F41551415C8FC22589DB5441E17A141EF6155141713D0A2786DB544152B81EA5F7155141C3F528EC83DB54415C8FC285F4155141AE47E1AA83DB544152B81E15F11551411F85EB1185DB54415C8FC2F5ED1551413333335385DB5441AE47E1DAEB1551413D0AD78385DB54419A999949E8155141295C8F7288DB54417B14AEB7E4155141000000308BDB54410AD7A330E315514114AE47818BDB54418FC2F5B8E1155141EC51B8EE8ADB544152B81E25E4155141295C8F7288DB5441295C8FE2E61551418FC2F59886DB5441AE47E19AE81551413D0AD79385DB5441A4703D6AE8155141713D0AE782DB5441D7A3701DE9155141D7A370FD80DB54415C8FC2C5EA155141B81E858B80DB54410AD7A3F0EC155141295C8F0282DB5441D7A3709DEF15514148E17A6482DB5441CDCCCCBCF21551415C8FC2A582DB5441C3F528BCF51551413333333382DB54418FC2F568F8155141F6285C5F81DB544114AE4711FA15514148E17A247FDB5441B81E851BFC155141713D0A777CDB54413D0AD7E3FD155141D7A3706D7ADB5441F6285C2F00165141E17A149E7ADB5441D7A370CDFF1551417B14AE977CDB544166666656FE155141000000307EDB544185EB51C8FE155141713D0AA77FDB544114AE4791001651418FC2F50880DB54415C8FC2B504165141333333E37EDB5441A4703DEA0816514152B81E157CDB54413D0AD7D30A16514114AE47517BDB5441000000500D165141CDCCCC5C7ADB5441B81E859B0F1651413D0AD79378DB5441B81E85DB12165141B81E85CB76DB5441F6285CEF161651419A99993973DB5441713D0AB71B1651415C8FC2356FDB54419A9999991D165141AE47E17A6BDB54418FC2F52820165141713D0A4766DB544185EB51581E1651411F85EBA162DB544148E17A64101651417B14AEB76DDB5441D7A3704D0A1651410AD7A3E070DB544152B81EB5011651415C8FC29573DB54413D0AD7E3FA155141000000C076DB54419A9999C9F415514152B81E257BDB544152B81EA5E91551415C8FC2D57DDB54415C8FC285E41551419A9999F97DDB54419A999909E5155141713D0AB77FDB5441C3F5285CE21551417B14AED77FDB54418FC2F568DE155141A4703D4A80DB5441A4703D6ADB155141CDCCCCCC80DB54419A999909D8155141CDCCCCCC80DB54410AD7A3D0D5155141A4703DBA7FDB5441AE47E1CAD4155141E17A146E80DB5441F6285C0FCE155141EC51B80E85DB54410AD7A380CF15514185EB519886DB5441E17A146ED215514148E17AA485DB54419A9999D9D4155141295C8F3285DB544185EB51D8D7155141C3F528FC83DB54411F85EBD1D9155141AE47E1BA83DB5441A4703D6ADB155141000000C084DB5441295C8F12DD15514185EB516886DB544100000090DC1551415C8FC23589DB5441666666B6DA155141C3F5287C8ADB5441E17A14FED8155141A4703D0A8ADB5441F6285C0FD615514185EB51A889DB5441A4703D9AD11551415C8FC21588DB544114AE4711D3155141B81E850B8DDB5441333333E3C1155141EC51B82E93DB5441A4703DCABF155141F6285CBF90DB5441AE47E12ABF1551411F85EB0190DB5441CDCCCCACB91551413D0AD7B394DB544185EB51D8B21551419A9999299BDB54419A9999C9AE1551419A9999C99EDB54411F85EB11AC15514152B81E15A2DB544114AE4731AD15514166666686A4DB54417B14AED7AE155141C3F528BCA4DB544133333323B215514185EB5158A3DB544166666616B5155141D7A3703DA2DB5441E17A145EB8155141A4703DAAA2DB544114AE4701BB1551418FC2F598A1DB54413D0AD763C21551410AD7A3E09DDB54415C8FC2B5CC155141D7A3708D99DB5441C3F5280CD215514185EB51A896DB5441E17A14BED5155141333333A395DB5441EC51B80ED915514114AE473195DB5441CDCCCCECDB155141D7A3706D94DB54419A999999DE1551415C8FC2E592DB54410AD7A3F0DF155141AE47E1BA90DB544133333383E015514114AE47B18EDB544185EB5148DE155141666666968CDB54419A999989DE155141F6285C0F8BDB54415C8FC205E1155141333333E38BDB5441010300000001000000630000008FC2F51851165141666666F622DB5441666666464416514152B81EA52ADB5441000000503E165141D7A3700D30DB544148E17AE4371651415C8FC28534DB54415C8FC27531165141E17A146E3ADB5441C3F5288C2C1651417B14AEB73FDB5441A4703D0A241651411F85EB214ADB5441E17A148E1D1651415C8FC24551DB5441E17A145E0F165141AE47E18A61DB54411F85EBF1101651419A9999F962DB544133333303141651415C8FC22562DB5441D7A3700D1616514114AE474163DB544148E17A9418165141F6285C7F62DB54417B14AEA7191651418FC2F57860DB5441F6285C2F1C165141295C8F325EDB54415C8FC2551E165141EC51B80E5DDB54410AD7A3E021165141A4703D7A5BDB54419A9999E92416514148E17A7459DB5441D7A370BD281651418FC2F5E858DB54418FC2F5782D16514152B81E8556DB5441C3F5289C30165141295C8FF254DB5441CDCCCC9C301651411F85EB4153DB5441333333832D165141295C8FA253DB5441F6285C1F2C1651410AD7A3F052DB5441D7A3708D2B165141AE47E10A51DB5441295C8F222D1651411F85EB014EDB5441CDCCCCBC30165141666666364ADB544152B81E65331651413333330349DB5441CDCCCC1C361651411F85EBB148DB544148E17A94381651413333332349DB5441EC51B80E3C1651415C8FC28544DB5441666666A63E165141D7A370DD41DB5441B81E853B401651417B14AEF73FDB5441713D0A1744165141000000503DDB54413D0AD7734816514185EB51C83ADB54411F85EB314D16514114AE477138DB54419A9999F95416514152B81E6534DB544185EB519854165141D7A370CD31DB5441713D0A1754165141666666562FDB5441713D0A4754165141F6285C0F2DDB5441D7A3703D561651419A9999292BDB5441713D0A8759165141713D0A272ADB5441EC51B8FE5B165141666666F629DB5441713D0AF75E165141713D0A272ADB5441000000E0611651413333330329DB54418FC2F5C8641651417B14AEC71FDB54418FC2F5386A1651411F85EBF11DDB5441713D0AF76E165141713D0A771FDB54410AD7A31072165141D7A3709D21DB544152B81E957316514152B81E3524DB544185EB51C874165141666666C624DB54411F85EBF1771651411F85EB4123DB544148E17AD478165141B81E850B21DB54417B14AED779165141713D0AA71FDB5441333333A37D1651410AD7A3601DDB5441AE47E14A80165141A4703D4A1BDB54413333331383165141AE47E18A1BDB5441AE47E19A851651419A9999291BDB54413D0AD78388165141AE47E17A1BDB5441000000C08C165141666666E619DB54419A9999E98F165141EC51B87E17DB544148E17A74931651417B14AE2715DB54410AD7A31096165141A4703D2A17DB5441CDCCCC5C981651415C8FC2A51ADB54410AD7A380991651417B14AE071DDB5441E17A14DEA2165141CDCCCC2C1ADB5441D7A3702DA1165141EC51B86E17DB54411F85EB619D1651415C8FC28514DB5441295C8F2298165141A4703D8A10DB54419A99993995165141295C8F020EDB5441713D0A47941651417B14AE770ADB5441C3F5282C96165141B81E855B06DB5441295C8F329816514148E17AE403DB5441EC51B84E9C165141F6285C3F02DB544114AE4791A2165141D7A3709D01DB54410AD7A3A0A716514152B81E3504DB54415C8FC235AA165141EC51B82E08DB5441B81E856BB3165141EC51B87E01DB5441B81E85BBBC165141A4703D0AFCDA5441B81E859BC516514133333313F8DA5441C3F5280CC5165141C3F5280CF7DA5441AE47E1BAD01651415C8FC265EBDA54419A999979DD1651410AD7A360E2DA5441295C8F12EB16514148E17A74E1DA54411F85EB31ED165141E17A149ED3DA54410AD7A340ED1651417B14AE17D2DA54411F85EBF1E2165141CDCCCC2CD3DA54413D0AD7B3D6165141666666D6D4DA544166666676D2165141EC51B86ED6DA54415C8FC2F5CA1651415C8FC2B5D9DA5441E17A14EEC216514114AE4731DFDA54410AD7A370B1165141713D0AB7EBDA544185EB51A8A2165141B81E85ABF5DA5441F6285CFF9416514152B81EC5FFDA5441295C8F9287165141713D0A0709DB5441D7A3702D7C165141B81E851B0FDB5441713D0AD767165141CDCCCC7C17DB5441AE47E17A5F165141666666A61BDB54418FC2F51851165141666666F622DB54410103000000010000001500000014AE47112F1551417B14AE1710DC5441F6285C4F311551410AD7A3A00EDC5441713D0AC73A1551416666661607DC54417B14AE97481551411F85EBC1FCDB54418FC2F5584F155141333333A3F8DB5441000000A058155141CDCCCCBCF5DB5441B81E85BB5C15514100000090EADB5441713D0AF75E155141CDCCCCFCE4DB54415C8FC23562155141E17A141EDFDB544152B81E0567155141F6285CFFD6DB544185EB516869155141295C8FE2D0DB54413D0AD71368155141CDCCCCFCCFDB5441CDCCCC3C64155141EC51B8EED6DB544114AE47715C1551417B14AE37DEDB5441B81E853B55155141D7A3702DE6DB54415C8FC2054C15514148E17A44EFDB5441295C8FE2391551410AD7A330FFDB5441CDCCCC0C331551419A9999C904DC544185EB51282B155141A4703DCA0CDC5441CDCCCC9C2B15514152B81E1510DC544114AE47112F1551417B14AE1710DC5441
+</a>
+
+<b>
+0106000000010000000103000000010000004C000000D5E1CF50F4155141D474075D8BDB54417B14AE57F5155141713D0A478ADB54418FDA90B0F515514134D3D4FE89DB5441AB3D3099F615514180C0DA4189DB54415BD5EF97F7155141FD37E77288DB54418FC2F5D8F7155141E17A143E88DB54415A106C95F9155141E191A92887DB5441E430B0B3FA1551414F32FC7586DB544166666656FC1551410AD7A37085DB5441634D928CFC155141E747345585DB544140E2A157FE1551410122B56C84DB544166666666001651411F85EB6183DB544167D5310F02165141585CC3D682DB5441B788DCE604165141A04A53DB81DB54418F66F4BA09165141957A1AD681DB5441CEEBBED50A165141F6B84C6480DB5441473AA2EE0B1651417E17FCF47EDB5441B46BCCD90C1651410AC5ADE07DDB5441ED783CD70D16514124B6BBC57CDB54417C2EAEE60E165141A64AAF967BDB5441D71830351016514182FD3A217ADB5441319F647E11165141F71EB2B178DB544194E6A4C8121651412D53FE4077DB544151A755FF1916514125DEC9DF72DB5441DE3998DF1C165141E7651E4B6BDB544145B7C12020165141D5CB903666DB544191832B6925165141BC18946F5FDB54419B2A2F7424165141BC5606F15DDB544151D5A93820165141A141D03161DB544149D70C3A1E165141A904F8B962DB54417C8388840D1651417154F2916FDB5441E19A9C1A06165141706159C172DB544189DBFA3A0416514177574B9973DB5441DE0BE35AFC155141EE3AA1B277DB5441D860A758F1155141C5A8716A7CDB54415BF6DE0FEA155141B32E28737DDB54414F1B1D87E515514132BAD3F27DDB5441DC160054E21551419D936A097EDB54414F3A93E6DF15514110C58D1A7EDB54410C44AA34DD155141AAC4A93A7EDB5441440F800CD9155141BBAE67127FDB5441D43AFBD5D5155141703928B97FDB54411527EDA9D51551416769611E81DB54413B116BF4CE155141A332EE8B85DB544171C267E7CF1551418260E51388DB5441F8C47A2ED2155141A9BCC2268EDB5441308CAC65C2155141E4B3865993DB5441F6A77F3FBF1551410A2B991E91DB54414B037DC3BD1551411C21A64692DB5441B4F5BE8DBB155141C8535E0294DB54410D82B949B8155141CF49129296DB54419EB23DA3B5155141802837A698DB5441B39CC261B41551418FB1CBF899DB544170641615B01551413BD2CFA39EDB5441DCB4BEC6AA155141E217070CA4DB5441C41247F2AD155141FAA3621AA6DB5441E40B7F61B11551411B6DEEF5A4DB5441D73DE62FB51551418CE26A96A3DB5441FD278563B915514165D97C03A3DB5441C0B2D0D2C215514103E4939A9EDB5441A1DBC776CD1551417CFD3F2A9ADB5441F2F6DAE2D0155141B27C041699DB5441873B53B3D4155141983A21E297DB544100B7FE5AD8155141C6481BBB96DB5441EDCA5752DB155141C2800A3596DB54411E5C7058DD155141321672B895DB5441EF7C35C1DE1551413D6C775F95DB54413D9ED6FDDE15514172E9AF4895DB54418156264BE0155141491157B494DB5441EC6D4E97E11551417ECC812094DB5441BE8BB151E315514163948E5C93DB5441C5B18B18E7155141ECB100FF91DB5441C80720CCEE15514198ABFA3291DB5441A98C9A3CF11551412505949E8EDB5441C8F13FACF215514146A2C8198DDB5441D5E1CF50F4155141D474075D8BDB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979957 - 22656
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+0106000000020000000103000000010000006E0000006109A1F417B45041AFE2D4B7BF255441369A133C18B45041A7EE02EFBF2554413211E0C317B450418CD17FCCBF255441D108A1F417B450419DE2D4B7BF255441EE56424816B45041D1F2FE6CBE2554411CF3764C14B450412974CE96BC255441EF4AB45112B45041C8513A9BBA255441A3D48F160FB450414668F6F4B6255441DFE8AF3E0CB450410D34D2BEB3255441D529862709B45041FFE13141B02554417EDBE2E806B450413EC622B8AD255441FEE0EBD003B450413D498264AA2554419D351E48FBB35041B224B123A82554415CC94EDCF8B35041626E7C99A72554417F4F982AF2B350412F5944EEA6255441492F530EEEB35041D207865FA7255441E8EFE6A4E2B350411458F599A8255441B66F93D9DEB3504134BE8002A9255441A2B3FA5DD5B35041A3CD3295A7255441358FA6F8D2B35041B4FB3620A7255441116922AFCDB350417B35101BA625544189694367C4B350410B0B8932A4255441B81ADD16BDB350413FBFE2B2A2255441B2003111BCB3504124845F17A32554412600A2F5BBB35041A2C07047A3255441E7760A05BFB35041279FE194A62554419709E959BFB35041B118DCD8A6255441AFDBDE47C1B3504128A38264A8255441762EEA55C5B350415298F5A3AB255441CC5B4EBAC6B350414833F330AD2554416DD8EA52C7B35041A5C80269AE2554418F48794CC8B35041AE544E67B02554418560E0DCCAB350415147FA30B2255441E23EFDECCCB35041CFE2982AB32554410FB734E7D2B3504186E4DFFDB5255441FD7578A0D5B35041122F7247B725544174F3A294DCB35041E0AE42A7BA255441C2C13C6BDEB35041E668A1BFBB255441F03EC2AADFB3504191EEFD7DBC255441882D8AEBE1B3504169A3DE23BF2554418308C1DCE1B3504100FA70DFC0255441D45853C9E2B350417E971551C2255441749965B0E1B35041F70FF1B3C32554410046535CE0B350416B630308C5255441D3F840D7DFB35041DA914C4DC6255441BE641C9CDFB35041BD13A8E6C82554414DA362F5DFB35041A29DA088C92554417753E93CE1B3504125842588CD25544109C527E1DDB350414F34ACCFCE25544157582B71D8B35041648C6F73CF25544147D658F6D7B350416F3851C5CF255441E8C96915D5B35041D8F021F8D2255441C0099CE2D3B350413487F110D32554417E286522D3B35041C293F1AED4255441B46D017CD3B350414B55D47CD62554419F153ED8D2B35041A48BD234D9255441656F77D8D2B35041A150962BDA255441ACD0F760DFB350412673169EDE2554416DB94756E2B3504100F93158DC2554414B2F1E12E3B3504103092223DA25544102CE611BE4B35041484D6E04D7255441F66F1C68E5B3504140F65055D4255441752BDEBDE6B35041345B09A4D1255441A9F30E03E8B3504191342B14CF2554418DD2AC1CE8B350410DE9C51ACF25544130CF3DB4EEB350413B276A92D2255441D2C82044FDB35041C6163E3BDA255441E115D66C04B4504148263AFFDD2554413F21FA5009B450417BF0D691E02554419D01E8790DB45041DC15FBC1E2255441E42F0E3910B4504174362301E4255441E6C8B50615B45041E317D1E8E5255441A45F6B1E18B450416FB9CE22E7255441181451841CB450410E506CE4E8255441652CDB0817B45041CF5F3589E42554416354A62114B45041EE6DC207E225544109FCE60A0FB45041F9117E72DC255441769FCD540DB4504102738CFAD8255441ED1184B80CB45041C729C78BD62554412F9CFC3D0CB45041D78891C1D425544166CDDEC80BB4504121E35A11D4255441C50FEE290BB45041426E85DED3255441269FBFE408B450411317927FD32554418BDCE63506B45041691EBA2DD3255441708D5A7EFFB350418EA5B7ACD0255441E17A148EFDB350411F85EBB1CF2554411F85EB21FEB3504148E17AA4CE2554415CAA337BFEB3504110F0AFD2CE255441079CF0E2FFB350415013DE8CCF2554415853FB4D04B45041B263376AD1255441C568F5E905B450414D72B6DBD12554415F8C2EEF07B45041AD800A37D225544104445EEB08B45041F629D85AD22554416F0E07B409B45041CF155577D22554412E2B014E0BB45041DD825B7CD2255441596E5F1E0CB4504184143535D22554419653517E0DB45041946FAC35D02554415F14ED0B0EB45041A2572C0ECF25544193E1FCE10EB4504133CBCBA4CD255441D98A410710B45041C0E5DCC7CB2554411671EDE812B4504138087240C9255441FE4459E213B450410E9B7378C8255441C33E5AA315B4504173116D10C72554413F7B9DEA18B45041FF409C24C4255441FDC8AE331BB45041635638EEC12554415206FAE01DB450419CED7101BF255441A05938901DB45041883EADD8BE2554415B1508061CB45041CCAA1774BE25544191C1A9581BB4504125B8DA47BE2554416109A1F417B45041AFE2D4B7BF255441010300000001000000040000005206FAE01DB450419CED7101BF255441132A403D1FB45041C49943B1BF255441F950BFFF1DB450419BEFD2DFBE2554415206FAE01DB450419CED7101BF255441
+</a>
+
+<b>
+0106000000010000000103000000010000003B0000001F85EB01E0B350411F85EBB1BC255441C3F5286CDFB35041F6285CAFC9255441666666E6DEB35041AE47E1FACA255441D7A3702DDCB35041A4703D3ACC2554417B14AE27D7B3504166666646CE2554411F85EBF1D2B35041C3F5288CD225544185EB51E8CFB3504100000030D9255441E17A144EE1B35041295C8F72DF255441D7A370CDE2B350411F85EBF1DA255441B81E852BE4B350413D0AD7D3D62554415C8FC205E8B35041EC51B80ECF25544114AE47B10EB450415C8FC265E3255441295C8F821CB450410AD7A3E0E82554411F85EB511BB45041666666A6E7255441000000E016B45041B81E856BE4255441C3F528BC13B45041F6285CAFE1255441D7A3702D11B45041F6285C1FDF255441B81E854B0FB45041000000E0DC255441D7A370ED0DB45041EC51B88EDA25544152B81E150DB450411F85EB51D8255441F6285CBF0CB45041AE47E1DAD6255441E17A149E0CB45041A4703D5AD52554410AD7A3D00BB450413D0AD713D425544148E17AA40AB450413D0AD7B3D32554410AD7A34006B450410AD7A330D32554418FC2F54803B45041295C8F62D2255441D7A3700D01B4504166666676D1255441E17A148EFDB350411F85EBB1CF2554411F85EB21FEB3504148E17AA4CE255441D7A3708D01B450419A999969D025544148E17AA403B45041B81E853BD12554410000007006B450410AD7A300D2255441000000E00AB450411F85EBA1D2255441E17A149E0CB450419A999909D225544152B81E250EB450419A9999D9CE2554413D0AD70310B45041AE47E1CACB255441666666B612B450418FC2F568C9255441713D0AB715B450410AD7A300C72554413D0AD70319B45041E17A140EC4255441AE47E12A1CB45041E17A14FEC02554410AD7A3F01DB4504114AE47F1BE2554411F85EB111AB4504148E17AF4BD2554415C8FC21518B4504185EB5118C0255441E17A140E13B4504100000070BB25544148E17A0404B450413D0AD773AA255441B81E851BFFB35041E17A14FEA8255441000000B0F6B35041D7A3701DA7255441EC51B8DEF2B35041AE47E1DAA62554413D0AD7A3DDB350413D0AD723A9255441B81E85BBD5B35041713D0AA7A725544148E17A64CEB350410AD7A340A625544100000040C7B350415C8FC2C5A42554418FC2F518C0B350413D0AD753A32554410AD7A360BCB35041CDCCCC8CA2255441000000A0BBB35041CDCCCCDCA32554410AD7A360C6B350419A999979AC255441A4703DAAC8B35041713D0A27B1255441EC51B8DEDBB35041AE47E13ABA2554411F85EB01E0B350411F85EBB1BC255441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2804357 - 3591355
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -96 </desc>
+<a>
+01060000000100000001030000000100000028000000713D0A4777105141F6285C7F28475541A4703D5A58105141EC51B89E1B475541666666B6601051419A99991913475541333333A36B105141713D0AD70C4755419A99990989105141AE47E1FA15475541AE47E15A8A105141D7A3707D13475541CDCCCC0C8C105141E17A14CE0E47554100000070871051411F85EB810D475541AE47E10A851051417B14AEC70C47554148E17AB4801051410AD7A3F00B4755418FC2F5E87C105141333333C30B475541713D0A47791051418FC2F5980B47554148E17A8475105141295C8F020B4755419A99996973105141A4703D8A0A4755410AD7A3B071105141D7A3701D0A475541D7A3703D6E105141CDCCCC0C0A475541D7A370ED691051417B14AEF7094755410AD7A360681051415C8FC2F50A475541000000806610514148E17A140C47554152B81E655C105141F6285CEF11475541A4703DFA5A105141713D0A671347554152B81EC559105141B81E850B15475541C3F5288C58105141C3F5280C1747554185EB51685710514100000060194755413333331356105141A4703DEA1A475541EC51B82E571051418FC2F5381E4755417B14AE2760105141AE47E16A21475541E17A142E5F1051413D0AD73324475541295C8F926010514152B81E75254755419A99997962105141666666862647554148E17A1463105141EC51B8CE244755418FC2F5A8641051413D0AD7F32447554152B81EB5671051413D0AD7E326475541295C8F226A1051419A9999E92947554148E17A8471105141333333232E47554148E17A0478105141C3F5288C324755417B14AEC7791051410AD7A38032475541F6285CAF7B105141AE47E17A314755411F85EB717F105141000000902A475541713D0A4777105141F6285C7F28475541
+</a>
+
+<b>
+01060000000100000001030000000100000038000000713D0A4777105141F6285C7F28475541A4703D5A58105141EC51B89E1B47554108C4DA015A105141E72AAAA719475541694E2DD85B1051411B97AC0F18475541172E23B86010514158281BD51347554178CF40A566105141E3F44CB30F4755418575AD88691051416C17BDAF0D4755416FE8251F6C1051412665E88D0C475541D9F3E4D16D105141BD289CA20C475541CC53B6C2761051418378494C1047554115CD93E386105141CE30CAE7164755418A06D02E88105141894D688D17475541AE47E15A8A105141D7A3707D13475541F6E001A98B105141F77B66F30F4755410A9F164B87105141EB7E76930E475541F2A4368B8410514102DB70C40D47554164711A8080105141B0FA1E0A0D475541334CCDC77C105141BB289CA20C4755416B63CCFA781051415E1ACD4F0C47554150CB06AC7210514146EF5F570B4755413602B4246E105141F50E0E9D0A475541864420506B1051415D4B5A880A475541CF3305C56810514193746C280C47554117EE82A36610514190EB23630D475541B47AE8EA641051414ABAEE490E475541FD3466C962105141F45EBE1B0F475541786DD5E660105141E0AB7A41104755416B556B5C5E10514122CB1ED0114755413B60C2E25C105141EDC3E4CB124755412CBF0F935B105141FB64971B144755414279BFC3591051412970267315475541C3F5288C58105141C3F5280C1747554185EB51685710514100000060194755413333331356105141A4703DEA1A475541A4703D9A54105141A4703D7A1C475541EC51B82E571051418FC2F5381E475541BD2B0AC55B10514105559D4022475541C082491B5E10514122EEC12924475541E17A142E5F1051413D0AD73324475541295C8F926010514152B81E75254755419A99997962105141666666862647554148E17A1463105141EC51B8CE244755418FC2F5A8641051413D0AD7F32447554152B81EB5671051413D0AD7E326475541485DBE65681051414FDF198B2A4755414D8430046C105141567494752C4755411F4245716F105141698510812E4755413CED7A3A72105141971C5A5530475541C156E6A073105141663F9E423147554110AC30AD751051414096919D32475541F4DF45CB7610514120CD3B4E3347554148E17A0478105141C3F5288C324755417B14AEC7791051410AD7A38032475541F6285CAF7B105141AE47E17A314755411F85EB717F105141000000902A475541713D0A4777105141F6285C7F28475541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2897288 - 2932763
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -152 </desc>
+<a>
+01060000000100000001030000000100000013000000FDF4F3A60E535141640876AB055754415D66565B0E5351419B43FC66005754415524E20208535141305DD7C2FB565441C121445A05535141A81D682DFB5654411444BFAB00535141CC08680CFB565441982097A2F4525141653BD871FB5654419943CD44ED52514161A71740FC5654410CF609F0E7525141D809826CFD565441400C4305E9525141139F964F0A575441A4774FF5E9525141547139CE185754414AB6994CEA5251412342EB731A57544172A3BAC5E9525141312F93742957544155848C9BEE5251413454B2DB295754410BBC2AE4F75251414DC5B0A12A575441253E9482FE525141E2B746AD2A575441DAD1E6050B535141898D01752A57544159F8BAE210535141578611F729575441EC51B82E0F5351410AD7A3200F575441FDF4F3A60E535141640876AB05575441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000B46FB6C6E952514146E190582957544179253127F25251413CC04F272A575441DC46023FF952514191E40FA42A575441D9C568B303535141BE0AEF952A5754417B5D4AE8105351413BA8AE4E2A575441EC51B82E0F5351410AD7A3200F5754417B14AE570E5351415C8FC22500575441E17A14CE07535141E17A149EFB565441A4703DEA0653514148E17AB4FA5654417D80E0350553514179F93898FA565441C7A3F71C035351415A759B88FA565441A10310D7FE5251415AA511ABFA5654416B91DD43FA525141889C0109FB565441982097A2F4525141603BD871FB56544158946BE2E75251410AF769D2FC565441E17A14DEE85251411F85EBF107575441A2774FF5E9525141507139CE1857544192D1F8C7E9525141B09020F01D575441B46FB6C6E952514146E1905829575441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2897288 - 3566809
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -152 </desc>
+<a>
+01060000000100000001030000000100000013000000FDF4F3A60E535141640876AB055754415D66565B0E5351419B43FC66005754415524E20208535141305DD7C2FB565441C121445A05535141A81D682DFB5654411444BFAB00535141CC08680CFB565441982097A2F4525141653BD871FB5654419943CD44ED52514161A71740FC5654410CF609F0E7525141D809826CFD565441400C4305E9525141139F964F0A575441A4774FF5E9525141547139CE185754414AB6994CEA5251412342EB731A57544172A3BAC5E9525141312F93742957544155848C9BEE5251413454B2DB295754410BBC2AE4F75251414DC5B0A12A575441253E9482FE525141E2B746AD2A575441DAD1E6050B535141898D01752A57544159F8BAE210535141578611F729575441EC51B82E0F5351410AD7A3200F575441FDF4F3A60E535141640876AB05575441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000B46FB6C6E952514146E190582957544179253127F25251413CC04F272A575441DC46023FF952514191E40FA42A575441D9C568B303535141BE0AEF952A5754417B5D4AE8105351413BA8AE4E2A575441EC51B82E0F5351410AD7A3200F5754417B14AE570E5351415C8FC22500575441E17A14CE07535141E17A149EFB565441A4703DEA0653514148E17AB4FA5654417D80E0350553514179F93898FA565441C7A3F71C035351415A759B88FA565441A10310D7FE5251415AA511ABFA5654416B91DD43FA525141889C0109FB565441982097A2F4525141603BD871FB56544158946BE2E75251410AF769D2FC565441E17A14DEE85251411F85EBF107575441A2774FF5E9525141507139CE1857544192D1F8C7E9525141B09020F01D575441B46FB6C6E952514146E1905829575441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>444248 - 3880755
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -93 </desc>
+<a>
+01060000000100000001030000000100000030000000596AFF3DD7D5504106F9B2B537405441A5AD21B2DAD5504193B53A6A3D405441FC0CBB24DDD55041681A9C3241405441A4544278E0D550419A1ACFCB46405441EE923AA4E1D55041CD7F42B348405441D6B9B55FE2D55041BCEC34C04A40544193C13485E2D5504121DD36754A40544148E17A94E2D55041C3F528EC4B40544185EB51C8E4D550418FC2F5084E405441E17A148EE7D55041666666365140544114F18E3BE8D5504134CFF8D4534054416C080CACE8D55041435BE77756405441CC65006EEAD5504125EF5440594054417601ED5BEDD550419FD837A55D405441713D0AF7EFD55041D7A3706D614054415C8FC2D5FDD550413D0AD74357405441EC51B8AEFDD55041A4703D9A5640544152B81E15FDD5504185EB51E851405441F6285C9FFCD55041333333534E4054411F85EB41FDD550418FC2F5984A405441A4703D1AFDD55041CDCCCC9C464054415C8FC275FCD55041333333A34240544133333353F9D550417B14AEE7374054415C8FC2A5F4D550415C8FC23528405441CDCCCC9CF1D550418FC2F5081F405441C3F5284CF4D5504185EB51981C4054413D0AD7D3FDD550419A9999F9144054410AD7A36003D6504152B81EC50F405441333333A303D6504185EB51D80C4054410000006003D65041713D0AC70B405441295C8F2201D650415C8FC295094054415C8FC255FED550410AD7A3F006405441F6285CAFFCD55041C3F5282C05405441EC51B88EF9D55041D7A370BD02405441EC51B89EF6D550418FC2F51800405441A4703D4AF4D55041D7A370CDFD3F5441EC51B84EF1D5504114AE47C1FA3F54419A999909E5D55041A4703DFAED3F5441A4703D0AD7D5504166666616F83F54411F85EB61CFD550415C8FC2A5FD3F54419A999909C0D55041CDCCCCCC08405441004FA2A2BED55041BB6564920940544152D31120C1D55041ECC3B82910405441E17A144EC2D5504152B81E0511405441817EFC58C4D550412F688412184054411A87DB53C9D550411F81C12D2240544109F4CD60CBD55041E93BAAB125405441596AFF3DD7D5504106F9B2B537405441
+</a>
+
+<b>
+0106000000010000000103000000010000003A0000000D1AAC33BFD55041A65E8E4209405441004FA2A2BED55041BB6564920940544152D31120C1D55041ECC3B82910405441E17A144EC2D5504152B81E0511405441B8B47789C2D55041E8B129D211405441D5C9DDA3C2D550419ACA4E2D124054415ADD6877C4D55041F1B9E95F1140544191079E7AC5D5504182739E0114405441ABC49262C3D55041E01FBFBF144054413CDCFBB6C3D550415C202FE31540544189BA21D8C3D55041CA9CA15516405441817EFC58C4D550412F688412184054411A87DB53C9D550411F81C12D2240544109F4CD60CBD55041E93BAAB125405441596AFF3DD7D5504106F9B2B537405441A5AD21B2DAD5504193B53A6A3D405441FC0CBB24DDD55041681A9C3241405441A4544278E0D550419A1ACFCB46405441EE923AA4E1D55041CD7F42B348405441D6B9B55FE2D55041BCEC34C04A40544193C13485E2D5504121DD36754A40544148E17A94E2D55041C3F528EC4B40544185EB51C8E4D550418FC2F5084E405441E17A148EE7D55041666666365140544114F18E3BE8D5504134CFF8D4534054416C080CACE8D55041435BE77756405441CC65006EEAD5504125EF5440594054417601ED5BEDD550419FD837A55D405441713D0AF7EFD55041D7A3706D614054415C8FC2D5FDD550413D0AD74357405441EC51B8AEFDD55041A4703D9A5640544152B81E15FDD5504185EB51E851405441F6285C9FFCD55041333333534E4054411F85EB41FDD550418FC2F5984A405441A4703D1AFDD55041CDCCCC9C464054415C8FC275FCD55041333333A34240544133333353F9D550417B14AEE7374054415C8FC2A5F4D550415C8FC23528405441CDCCCC9CF1D550418FC2F5081F405441C3F5284CF4D5504185EB51981C4054413D0AD7D3FDD550419A9999F9144054410AD7A36003D6504152B81EC50F405441333333A303D6504185EB51D80C4054410000006003D65041713D0AC70B405441295C8F2201D650415C8FC295094054415C8FC255FED550410AD7A3F006405441F6285CAFFCD55041C3F5282C05405441EC51B88EF9D55041D7A370BD02405441EC51B89EF6D550418FC2F51800405441A4703D4AF4D55041D7A370CDFD3F5441EC51B84EF1D5504114AE47C1FA3F54419A999909E5D55041A4703DFAED3F544157EC13CED7D55041C4ACF388F73F5441A4703D0AD7D5504166666616F83F54411F85EB61CFD550415C8FC2A5FD3F54419A999909C0D55041CDCCCCCC084054413D0AD753BFD55041295C8F92094054410D1AAC33BFD55041A65E8E4209405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980977 - 3180150
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 15 </desc>
+<a>
+010600000010000000010300000001000000D1000000FC8676F16B665141BEE4271986A354413D5EEA726A6651413B5CED8882A354419CA3A21A6A66514118196BA07EA35441C5AAEDA469665141932E4C3F7DA3544153F338E1686651412177977B7CA35441B81E858B686651417B14AE377DA354410AD7A3D068665141AE47E19A7FA354418FC2F56869665141E17A14BE84A3544152B81E456A665141F6285C6F88A35441B81E852B6C665141D7A370CD8AA354417B14AEA76C6651411F85EB318BA35441B81E850B6D6651411F85EB818BA3544148E17A1470665141666666F68DA35441666666E6726651415C8FC2558FA35441333333738F66514148E17A14A3A354411F85EB51AE665141D7A3700DB9A35441EC51B87EC46651411F85EBF1CAA354411F85EB11D466514185EB51B8DCA35441F6285C4FDB6651417B14AE07E8A35441C3F528FCE56651413D0AD7B3F8A3544152B81E55ED6651418FC2F58805A45441D7A370DDF5665141000000F012A45441666666B6F6665141713D0A6712A45441D7A3708D126751417B14AE773CA454410000001021675141EC51B8BE51A454419A9999F9226751417B14AE3755A454413333334324675141A4703DAA58A4544185EB51382C675141713D0A8764A4544114AE47112D6751415C8FC2F563A45441C3F5282C426751416666669683A454417B14AE57566751418FC2F588A1A454413D0AD763616751411F85EBE1B1A454413333330363675141E17A14CEB5A45441AE47E19A6B67514133333323C1A454417B14AE576C675141E17A146EC0A4544152B81E7576675141A4703D0ACBA454418FC2F538826751417B14AEC7D4A45441713D0A4792675141A4703D6ADFA454415C8FC275A3675141F6285C7FE7A454411F85EB41B767514148E17A54EDA454419A9999C9D1675141CDCCCC3CF3A45441B81E85ABD4675141E17A145EF4A45441B81E85FBE467514100000010F7A45441C3F5281CE56751411F85EB11F6A4544152B81E35FA6751411F85EB71F8A45441AE47E15A0E6851417B14AE87F9A45441D7A3700D1C68514100000090F9A454413D0AD7B32B68514152B81E95F8A4544152B81E65456851413D0AD7E3F5A454410AD7A3C061685141A4703DDAF1A45441713D0A578C685141D7A3709DEBA454413D0AD7E3A1685141295C8F72E8A454410AD7A3E0A5685141333333B3E8A4544152B81EF5B468514185EB5168E6A45441CDCCCCBCB4685141CDCCCC6CE5A4544185EB5188DC68514148E17A84DFA45441EC51B89EE36851413D0AD783DEA45441EC51B87EE46851413D0AD763DEA454413D0AD763E8685141713D0AD7DDA4544152B81EC5F968514114AE4761DBA454411F85EBE11469514185EB5158D7A45441CDCCCC9C206951415C8FC2A5D5A454415C8FC2C52069514114AE47A1D6A45441CDCCCC1C2F6951419A9999A9D4A45441000000C0316951411F85EB71D3A45441B81E857B506951413D0AD713CFA4544148E17A245569514148E17A24CFA4544148E17A946569514185EB51D8CCA454410000007065695141B81E85DBCBA45441333333B38469514114AE4781C7A45441D7A370ED9F6951413D0AD753C5A45441C3F528BCB969514100000030C5A454419A999959C9695141D7A3700DC6A454418FC2F508D0695141713D0A87C6A45441713D0A27D969514148E17A04C8A45441713D0A27E9695141EC51B8AECBA4544114AE4741076A5141B81E85EBD3A4544148E17A04256A5141C3F5280CDCA45441D7A3706D306A5141E17A148EDFA45441EC51B8BE346A5141EC51B8DEE1A454413D0AD703436A51419A999989E5A454415C8FC255436A514152B81E95E4A45441295C8F325A6A51413D0AD713EBA45441295C8FE2896A5141295C8F12F8A45441713D0A17B86A5141333333F304A5544114AE47B1C16A51416666667607A55441B814444CC26A51417CF2EE1808A55441455521C1C26A5141C51C06CB07A554411023E5E9CA6A51413B1F5C3E09A5544164EE529FD16A514116A1DC540AA5544164EE529FD16A514128609CC909A554412FEDA7E5D06A5141F35EF10F09A55441BFCF9F7DBF6A5141C1D56E9F03A55441D97EB084B56A51418310588A00A55441BB21134BA46A5141D948EB01FCA45441197B88728D6A5141CC3DE87AF5A454412DA76DA9816A514146B86637F2A4544194F68A03656A5141006B786BEAA45441698EEA424D6A5141AC9F0AB6E3A4544109F40DAB3D6A51419D58738ADFA45441789F1D85316A5141E9900602DBA45441979A719E2E6A5141B38F5B48DAA4544106A81541236A5141AD1751EED7A45441257C016A0D6A5141F9B28D11D2A45441F141577EF8695141E508128DCCA45441A499686CE269514190E90658C6A45441064105E5DF69514183B2E4C4C5A45441E723306FD5695141B35236B3C3A4544158B542FCC76951412E681752C2A45441BD0F33F6B9695141B6B41A84C1A454410E6F38BBAF6951418176AD66C1A454418C376DDBA2695141B6B41A84C1A45441564A6F6E99695141576F62DCC1A45441B17EB2F5916951419AE4F18CC2A45441FB6A5EC982695141C0895846C4A45441E81152F57369514188E90658C6A45441490A5E1E68695141AE8E6D11C8A4544106E63D1E5E69514132798C72C9A45441100CEB90576951413FB0AE05CAA454414F70052151695141E06AF65DCAA4544112BF3E124C69514123E0850ECBA4544109EA0050496951419B9382DCCBA45441355330AB46695141DD08128DCCA454410277A75E44695141A8CAA46FCCA454417A192F0C3E69514157BC0E5BCDA45441B97D499C37695141CF6F0B29CEA45441DF731F06306951417D617514CFA454415C3C5426236951418736B3D6D1A45441E73BABD916695141E31987ADD3A45441EAEEFE5A0B69514109BFED66D5A45441F676909E026951418DA90CC8D6A4544164A6BE5AF768514148D29846D8A4544105B27563EE6851419A7E4A8AD9A454416D1DDB7DE76851413B3992E2D9A454413D0AD783E568514185EB5138DAA45441EC51B89EE5685141B81E85FBDAA45441B81E855BE168514185EB5198DBA454410AD7A340E1685141713D0AD7DAA454411F85EB31E1685141E17A146EDAA45441BB6B6B22D6685141E6C817FDDCA454415504C939C8685141AD28C60EDFA45441C795DBC6BA68514175887420E1A45441E3B6736EB068514165EF6DBCE2A45441221B8EFEA9685141A764FD6CE3A454416CB6CA21A468514118E1D7A7E3A45441008B5F979A6851410948D143E5A454413FEF792794685141C3705DC2E6A454419712488E85685141F64CE60EE9A45441FECE1C597568514194A54996EBA454412DEB9F356768514125C78A8AEDA45441A851F0845C68514181AA5E61EFA45441C6E9A44F42685141073399F1F2A45441C58B83B02F685141CE924703F5A45441491881721E685141B2C21E0CF6A45441ED851C4C13685141E8008C29F6A454412215F9190A685141B2C21E0CF6A454418CC058C4F26751411FA1DD17F4A454413F186AB2DC675141AA4FC51AF1A454410005BFD2D96751419D18A387F0A45441A783CFCCD56751414E6CF143EFA454419DAE910AD36751410CF76193EEA4544187A231B5CF67514135FEAC1DEEA454419A9D1CEACB6751415E05F8A7EDA45441056B66D5C2675141D91AD946ECA4544111F3F718BA67514148F99752EAA45441CDCED718B067514106E6EC72E7A45441C34A0907A467514119E1D7A7E3A4544173EFC673996751417EEA58F1DEA4544114FB7D7C9067514118324758DAA4544117AED1FD84675141672F684CD2A454413F068C387B67514157E7D098CAA45441CD16580C76675141507477A7C5A454412A4B9B936E67514106EE72D6BDA454415916AFBF696751415289AFF9B7A454415FDA77616567514141411846B0A454417F0C852962675141A64A998FABA4544178992B385D675141BCA76895A5A45441AAC62335566751414445DB779BA45441326496174C675141B838D2D58BA45441DC448BE24567514123061CC182A45441CD899A3D3967514182EDB2C96FA4544129BEDDC43167514191D728DE64A4544113B27D6F2E675141552662CF5FA454414EB4B32E2A6751417A1C383958A45441511698FF27675141EC5CDB1554A454417E7FC75A2567514193DBEB0F50A454413235FAE721675141572A25014BA45441C3A7AA8C1A675141FB97C0DA3FA45441CEAB6DBE056751419DA73A1522A45441163635C1F866514182DBD44F0EA45441B4DF07F9F1665141C703B88103A4544168953A86EE665141DD608787FDA35441093F0DBEE766514173351CFDF3A3544164735045E0665141AB26DD9BE8A35441578D9D62D6665141A404F35ADAA35441938FD321D2665141F09F2F7ED4A35441F898546BCD665141DCF5B3F9CEA35441A2794936C7665141B0DDF34EC8A35441EE148659C1665141D271E5E7C2A35441B5C5A31BBA665141E8CEB4EDBCA3544123A46227B86651412EA6286FBBA35441155CCB73B06651413803F874B5A35441180F1FF5A466514151C2AB4BADA35441B91AD6FD9B66514131E10D34A7A3544160EA55A88E66514173A70C959EA354419B3DFB1781665141077CA10A95A354411031F2757166514182E2F1598AA354414B3328356D6651410D91D95C87A35441FC8676F16B665141BEE4271986A354410103000000010000000B0000008773E99C69665141CADC01DF7AA354419CA3A21A6A6651412B1456D57AA35441A9DAC4AD6A66514111A611AF79A3544180D379236B66514183E6B48B75A35441218EC17B6B665141B2B1C8B770A35441218EC17B6B66514117BB49016CA3544157CC2E996B6651415C92BD826AA35441F7D9C37A6C665141FB3A39AE68A3544185EB51286B66514185EB511868A35441CDCCCCEC69665141E17A142E7AA354418773E99C69665141CADC01DF7AA354410103000000010000000C0000006BD6D95CD36A5141E1E65C1207A554417335EACAD56A514128609CC909A55441FABA6B0ED96A51414BA2870E0BA554416D812DDDDC6A5141F1225D6B0BA554415B91DC4AE66A514101A6883B0DA5544115DC74A3EC6A5141BF6849DD0EA554419232F354ED6A51414212CB2B0EA55441B81E85FBEC6A5141333333130EA55441F6285CDFEA6A5141EC51B87E0DA55441E17A145EE56A5141AE47E12A0CA554419A999999D86A514152B81E8508A554416BD6D95CD36A5141E1E65C1207A554410103000000010000002A0000005D237AACFB6B5141B8FE403AFBA45441AD92BEA8006C5141AFB70965F9A454410EB8B260066C51410180E7E6F6A454412D7E0F9F126C5141DBAA4167F1A45441D081C0391C6C514156A15EEEECA4544152C6AAB5266C51419B917D81E7A454413564FACC2F6C5141DC374CD0E2A45441BA6DDD45346C514190C5EE64E0A45441B483BCA63A6C51417E3780BADCA45441B22A2321426C5141C7B82667D8A454419859FA514C6C5141CA7D1F64D2A4544176ADF924566C51416B7D534ECCA454413FBAC1225E6C5141E0BDC019C7A454415CEC72A4626C514145CF56EFC3A45441584E29F8806C5141C7E58B25AFA45441B5CB714FA36C514179DBDAD297A454419A9999C9A26C51410000001097A45441713D0A679F6C5141C3F5285C99A45441C3F528EC9C6C5141AE47E10A9BA454411F85EBB1866C51410AD7A320AAA454417B14AE377E6C514114AE47E1AFA45441000000F07D6C5141295C8F12B0A45441B81E859B726C5141666666C6B7A454410AD7A3B0626C51417B14AE97C2A45441AE47E19A596C514148E17AC4C8A45441666666B6496C5141C3F528DCD2A45441333333033A6C5141713D0A17DCA45441713D0AB7246C5141E17A148EE7A454419A9999E90D6C51413D0AD783F2A454411F85EB51FD6B514133333313FAA454410AD7A350F96B514114AE47F1FAA4544100000040E86B51410000004002A55441CDCCCC1CE76B5141F6285CEF02A5544152B81E55E46B5141C3F5289C04A554413893421CDC6B51418FF8BCD006A55441B9277C33DE6B51410E84649706A55441B6628336E46B5141D3C7B6E704A55441D78179FAE86B5141236B6CC702A5544173631B62F06B5141ACF21068FFA454412AE274B5F46B514104719EA5FDA454413F950B02F86B514133558D66FCA454415D237AACFB6B5141B8FE403AFBA45441010300000001000000260000002BAE03D2FB6B51418C3F7A1BFCA45441570D9B4BF56B51419E61894EFEA454415F1CE48CEE6B5141F089967501A5544182C8E4B9E46B51410BF3DC7D05A55441B9277C33DE6B5141AD2AFFFB07A554416C49BF50DA6B51415B62217A0AA55441457419D1D46B514143EA91300DA55441B5FED6E0CE6B51412628B2A210A55441F8C9CDD1C96B5141990F86E812A5544111FB2546C56B51410F1C82D014A55441068FC6CEC36B51417697F69E15A5544152B81E65C26B51413333337316A55441295C8FA2D06B514185EB510812A55441CDCCCC3CD36B514148E17A5410A554413D0AD753DC6B5141A4703D8A0DA554410AD7A370F86B5141713D0A1702A55441AE47E10AFD6B51411F85EBC100A5544185EB51680C6C5141B81E854BFAA45441666666060C6C51410AD7A360F9A4544166666666276C5141AE47E15AECA45441F6285C0F3C6C51410AD7A330E1A45441713D0A874B6C5141EC51B82ED8A454419A9999A95C6C51410AD7A390CDA45441EC51B84E816C51418FC2F5B8B4A454418FC2F558A56C514185EB51D89BA454414542FEA4A36C5141E32F356598A45441BCAAF91F816C5141B5E08349B0A454417960B8B1626C51410A560906C5A45441E76FA5C8586C514133522DB8CBA454415E09AC194C6C5141D80EA77DD3A4544173DDED573F6C5141D6B50DF8DAA454418242B7AF336C5141001C3B91E1A454416FB44805306C5141A57885B1E3A45441AC9DD1781D6C5141C041FB5EEDA45441D433F3440D6C51415C239DC6F4A4544193F506BD036C514113A2F619F9A4544134F53AA7FD6B5141F34E8F72FBA454412BAE03D2FB6B51418C3F7A1BFCA4544101030000000100000036000000CA72500EFA6A5141332F0BAC12A55441F9BF3EDA016B51418C72A1AA14A55441595A1B72116B514165B88D1C18A55441B9F4F709216B5141FEFCCED41AA5544106D0142D316B51414481A55E1DA55441666AF1C4406B51411F0326751EA55441FC0A25FD536B51415404D12E1FA55441B1A10068616B514167C390A31EA55441E1EEEE33696B514167C390A31EA554412ECA0B57796B5141798250181EA554416E9A25F3826B51419741108D1DA55441B1A6D3338A6B51410E80FAA41CA55441653DAF9E976B5141AB3C64A61AA55441C5D78B36A76B514177774D9117A55441DEED9144B46B51418C72A1AA14A5544130169F59BA6B514106D54AFB12A55441B68BE149C06B5141C0189D4B11A5544149264CDCC56B5141B6D165760FA55441626A6A42CA6B5141DDDA7CD90DA554412D30FB6AD06B514169F3A8930BA55441FB8613ADD76B51415AF6C10209A554416302887BD86B5141F055259208A55441A795DF46D96B514147EC0BD007A554418FC2F518CE6B5141000000C00BA554418FC2F598C16B5141CDCCCC3C10A554415C8FC235BD6B514152B81E7511A55441EC51B8DEB06B5141B81E85BB14A554410AD7A330A46B51411F85EB7117A55441666666969A6B51419A99992919A55441EC51B87E8F6B51415C8FC2251BA55441295C8F22836B5141CDCCCCEC1CA55441AE47E17A706B51418FC2F5B81DA55441295C8FA26E6B5141CDCCCCCC1DA554411F85EB516A6B51415C8FC2E51DA554418FC2F558576B5141333333531EA55441F6285CEF556B51418FC2F5481EA55441333333E3466B51418FC2F5D81DA5544114AE47B1406B5141B81E85AB1DA5544185EB5138346B51413D0AD7931CA554410AD7A3A02C6B5141713D0AE71BA55441F6285CCF286B5141333333531BA55441C3F5285C1F6B514148E17AE419A55441A4703DCA156B514185EB512818A55441CDCCCC0C116B5141CDCCCC4C17A5544152B81EF5046B5141C3F528AC14A55441EC51B8BE046B5141D7A3709D14A554417B14AE07026B5141E17A14DE13A5544114AE4791006B5141713D0A7713A5544133333373F96A514114AE478111A55441F6285CFFF56A5141E17A148E10A554413CE75FCFEE6A51416C62DC930EA5544113A0E0FEEE6A51415AE91E3A0FA5544141E2CB43F06A5141F569F4960FA55441CA72500EFA6A5141332F0BAC12A55441010300000001000000350000002FF27AB1F96A514103B18BC213A5544134D7C8BCE96A51415AE91E3A0FA554415986D9C3DF6A5141AFE51D0D0DA554413ABC16C8D96A514179E472530CA55441827C81F6D96A51414966F3690DA5544184B8159BD76A5141146548B00CA55441DAF0A812D36A514139E3C7990BA55441662AE743CF6A5141B021B2B10AA55441791A38D6C56A5141F35EF10F09A55441CD1637A9C36A51414DDE1BB308A55441C071DD19C36A5141336E8BF008A55441666666E6C36A5141713D0AC709A554410AD7A3E0CB6A5141713D0A770BA554410AD7A3E0DB6A5141E17A149E10A5544133333373E76A5141E17A149E13A554411F85EBB1EB6A51413D0AD78313A554417B14AEF70F6B51418FC2F5681CA554411F85EB211E6B5141D7A370ED1EA55441F6285C4F2C6B51418FC2F5C820A5544100000070406B51415C8FC28522A55441A4703D6A576B514152B81E5523A55441D7A370AD6E6B51410AD7A32023A55441EC51B85E836B5141B81E851B22A55441E17A146E906B51415C8FC27520A554415C8FC205A56B5141E17A149E1CA55441C3F5284CB16B51415C8FC2F519A5544185EB5188C16B514114AE47B115A55441EC9D7808C26B5141A784D42116A5544102FE3EB5C26B51414747A86615A55441ABEB10EFC56B5141018BFAB613A55441D2C0B66ECB6B51418EA3267111A55441EF4E2519CF6B5141845CEF9B0FA554413E520A9ED26B5141AD8A2EA10DA554415F710062D76B5141FF520C230BA554416C49BF50DA6B5141C4965E7309A554410A84FA3DDA6B51418A46103B09A554413CF97018DA6B51418A46103B09A55441ABB79F0BCD6B5141AA6506FF0DA55441A2A4D919C46B5141C0189D4B11A554414B7FE561BE6B5141679A0F0E13A5544130169F59BA6B51410966D21414A55441EA550B20A66B51419AB938D618A55441EF6BEA488D6B51414481A55E1DA55441A608F66E786B51415404D12E1FA5544104626B96616B5141DDC5E61620A554414FCB8F2B546B5141DDC5E61620A554416085A3B9506B514195057CE81FA5544122F11DC2446B5141424511BA1FA554414A185712366B514172C390A31EA554417103FCBD296B51419741108D1DA5544177E849C9196B5141FEFCCED41AA55441AE561A450F6B51419AB938D618A554412FF27AB1F96A514103B18BC213A55441010300000001000000600000000277A75E44695141FAD83A84CBA454415E5A7B35466951418E5C6049CBA4544109EA00504969514182253EB6CAA454413864A5CB4D6951413FB0AE05CAA45441E704A00658695141C7FCB137C9A45441726218595E695141BAC58FA4C8A454414C6C42EF656951410CD425B9C7A454418C2E7E1E72695141B1F051E2C5A45441E8C0E2447D695141C0895846C4A4544170BC76C685695141A71B1420C3A454412EF677658E695141C3EB3C17C2A45441B17EB2F5916951412231F5BEC1A4544153E88A9D9B695141DFBB650EC1A4544153971BEDA46951413E011EB6C0A454419359571CB169514108C3B098C0A454417738BF74BB695141743F8BD3C0A45441090991B8C66951418176AD66C1A45441D7DB98BBCD6951418DADCFF9C1A4544195159A5AD6695141A71B1420C3A45441C12D5A05DD695141F6C7C563C4A45441A8FB4C3DE06951410BFFE7F6C4A454412622A3FCE569514190E90658C6A45441EBCEFD8CF369514147B0AE05CAA454419C806DE8046A51414E2308F7CEA45441CCA9A2B3126A51413B281DC2D2A4544125DA2209206A5141F2EEC46FD6A454417BF92D3E266A514177D9E3D0D7A4544116F0ACF42A6A5141EF8CE09ED8A45441321B47FB2E6A5141D80DDB31D9A4544151E509F7346A51413C517130DBA45441B733A37C3D6A5141C2D6F273DEA45441D4C1D1D3456A5141C09A5ECFE0A45441C2D180414F6A514159DF9F87E3A45441D86F5E06616A51415567773EE8A45441ADDBFFF37A6A51419773257FEFA45441DAE6027B816A5141BEF6504FF1A45441F4CB776B976A514130817E79F7A454412B70ACD0AC6A51414F4B4175FDA45441C00B3422BD6A5141F812AEFD01A5544120A610BACC6A51413D5BF0E206A55441522F932AD26A51414DDE1BB308A554414070D3B5D26A51414DDE1BB308A554416A4DB1D0D06A5141118C055E06A55441AE47E1EACE6A51417B14AED705A5544185EB51F8C66A5141333333B303A554419A999959B96A5141B81E85EBFFA45441295C8F62B46A5141CDCCCC8CFEA45441713D0AC7A06A51413D0AD723F9A454413D0AD7C3936A5141CDCCCC8CF5A4544185EB51C88B6A51418FC2F558F3A45441C3F5282C876A51410AD7A310F2A45441CDCCCC6C7D6A51419A999959EFA45441AE47E1AA6A6A514100000020EAA454415C8FC2155C6A514100000010E6A45441B81E85BB586A5141F6285C1FE5A4544185EB5168516A51411F85EB11E3A454417B14AEE7466A514100000020E0A45441E17A14CE396A51413D0AD773DCA454419A999969396A5141CDCCCC3CDCA45441A4703DAA356A5141AE47E12ADAA45441A4703D8A326A5141D7A3704DD9A454411F85EBE1276A5141B81E855BD6A454410AD7A340246A5141CDCCCC8CD6A4544148E17A841A6A5141A4703DDAD3A454413D0AD7630C6A5141000000F0CFA4544114AE47C1066A514185EB5158CEA454410AD7A3A0F6695141000000D0C9A45441E17A14BEF369514100000000C9A454413D0AD793EA695141CDCCCC6CC6A45441F6285C6FDA6951410AD7A3A0C2A45441A4703DBAD2695141EC51B86EC1A454410AD7A3A0CC695141333333C3C0A45441000000A0CA695141B81E858BC0A454410AD7A3A0C9695141CDCCCC7CC0A454415C8FC235BB695141A4703DAABFA45441F6285C1FBA6951419A9999A9BFA454419A999939AF695141666666A6BFA454411F85EBF1A46951413D0AD7A3BFA45441F2747647A0695141D9A239A2BFA4544182E43EAF9F695141F28647C8BFA45441BAC12D3F9F6951418FC576DCBFA45441334741B79269514192BEFBB3C0A45441257A956D8E69514116DC32F5C0A45441333333938C695141AE47E12AC1A45441EC51B8FE886951411F85EB91C1A45441B81E854B846951419A999919C2A45441666666E68369514185EB5128C2A4544114AE47F18369514133333363C2A45441CDCCCC7C5B695141295C8F52C8A45441E17A14BE526951415C8FC2B5C8A4544152B81E354A69514152B81E95C9A45441A4703D0A446951419A999959CAA45441AE47E18A436951419A999969CAA454414027D9AD426951410FC61885CAA454412247D0554369514125E0850ECBA454410277A75E44695141FAD83A84CBA454410103000000010000001C0000002E68513DF7685141D01E9C78D7A4544177503ADFFC685141586B9FAAD6A4544161F36AD902695141E0B7A2DCD5A454417E7224200B695141900BF198D4A45441A82800FA136951410C21D237D3A4544117B64F551B69514128F1FA2ED2A454415C3C54262369514144C12326D1A454418CB6F8A127695141CC0D2758D0A45441968B36642A6951418A9897A7CFA45441FB4348FD2E695141A668C09ECEA4544160FC59963369514164F330EECDA4544121983F063A695141B601C702CDA454410266323E3D695141DF08128DCCA454418750519F3E695141A9CAA46FCCA454416A8028A83F6951419D9382DCCBA454410F51841A40695141906D1ED7CAA45441713D0AD73E695141F6285CFFCAA454418FC2F5383C695141CDCCCCCCCBA4544166666656376951418FC2F588CCA45441A4703DAA30695141AE47E18ACDA4544148E17AD42D695141E17A141ECEA454418FC2F58829695141D7A3703DCFA45441333333F3136951411F85EB81D2A45441F6285C6FFE6851419A9999B9D5A4544105F67F75EB685141EBA52758D8A454413E52C751EC6851415809BBD9D8A45441342C1ADFF2685141E055BE0BD8A454412E68513DF7685141D01E9C78D7A454410103000000010000001F000000ECDC20E1A96851419B2DDBD9E2A45441DDF2AACCB4685141AAC6E13DE1A4544106A986A6BD685141F09D55BFDFA454417F0B14C4C76851416BB3365EDEA4544172838280D06851411C07851ADDA45441E110D2DBD7685141039940F4DBA454416037289BDD685141E92AFCCDDAA454412797D6ACDF685141A7B56C1DDAA454416AB54BC7DF685141591E2399D9A45441B81E857BDF6851417B14AEA7D9A45441D7A370BDDB685141F6285C5FDAA454413D0AD7E3C1685141D7A3704DDEA45441AE47E19AA76851413D0AD7F3E1A454415C8FC205A56851419A9999B9E1A4544185EB5198A36851419A999999E1A45441F6285C9FA1685141E17A14EEE1A45441D7A370BD9C685141000000C0E2A45441EC51B8DE986851415C8FC265E3A454419A9999D9946851411F85EB11E4A45441E17A14EE936851419A999939E4A45441333333438F6851411F85EBB1E4A45441AF3512A08E6851418EA829E0E4A454416EBA8D538F685141157FF3D6E5A454411CACF73E90685141B6393B2FE6A45441F3A4ACB49068514122B6156AE6A4544168F6C4B193685141157FF3D6E5A45441F6B521D5976851419DCBF608E5A45441AB1AE5B19D68514118E1D7A7E3A45441E7CBABC0A26851410CAAB514E3A45441D4D0C08BA668514135B1009FE2A45441ECDC20E1A96851419B2DDBD9E2A454410103000000010000004E00000046CA54DA76675141AFB92F4FC5A4544172E214857D67514105D93A84CBA454414DEC3E1B85675141EF7B6B7ED1A45441C54ECC388F675141F28CE09ED8A454412443153098675141F9FF3990DDA45441B613E773A3675141CA342664E2A454419AF24ECCAD67514181FBCD11E6A454413C5C2774B767514155929EB6E8A4544147316536BA675141058408A2E9A45441614E3AACC467514197A54996EBA45441812FD8C3CA6751417AD5209FECA45441F680F0C0CD675141E651FBD9ECA45441483E1725D66751410CF76193EEA4544178B8BBA0DA67514191E180F4EFA45441F6DE1160E0675141741158FDF0A45441ABF2658CEF675141063399F1F2A4544140251CA1F8675141B42403DDF3A4544117CD616602685141F699928DF4A454412215F9190A6851419954DAE5F4A4544172703BAD146851413A0F223EF5A45441ABBF1DEB1B6851413A0F223EF5A454416C5B035B22685141CE924703F5A45441D8866EE52B685141F799928DF4A454419922545532685141EB6270FAF3A454416A06D17840685141303AE47BF2A4544168537DF74B68514140D3EADFF0A4544168020E475568514185AA5E61EFA45441721383675C6851419E7A8758EEA4544179E4FDF7736851415230BAE5EAA454410C64608B886851417162C7ADE7A45441554C492D8E6851418D32F0A4E6A454411F0EDC0F8E685141157FF3D6E5A45441361BFBCB8D68514115E3481CE5A45441A4703DBA88685141C3F5288CE6A45441F6285CFF786851411F85EBD1E8A454417B14AE7765685141295C8FE2EBA45441A4703D6A60685141E17A14AEECA45441CDCCCC5C566851411F85EB41EEA45441B81E854B55685141CDCCCC6CEEA454413D0AD7D346685141713D0A67F0A454418FC2F5C83D685141333333A3F1A45441C3F528DC3C685141333333C3F1A45441C3F5284C3568514185EB5188F2A4544152B81E752C685141EC51B86EF3A45441B81E858B29685141AE47E1BAF3A454417B14AEB727685141A4703DEAF3A45441A4703DEA266851410AD7A3F0F3A4544133333373226851415C8FC215F4A45441666666661A6851418FC2F558F4A45441D7A370AD176851419A999949F4A454413333337312685141CDCCCC2CF4A454419A9999B90D68514133333313F4A45441666666D609685141D7A370FDF3A45441F6285C8F06685141B81E85EBF3A45441713D0A7704685141713D0AC7F3A45441F6285CAFFF67514148E17A74F3A45441D7A3702DF16751419A999979F2A454410AD7A320DA6751410AD7A330EFA454419A999979D6675141295C8FA2EDA4544185EB5138C7675141713D0AA7EAA4544148E17A94C4675141EC51B89EEAA454410AD7A320C267514166666696EAA4544114AE4711B667514114AE4751E7A454411F85EB51AF675141D7A3707DE5A4544133333383AD675141E17A14DEE4A454415C8FC2C5A2675141B81E852BE1A454411F85EB41A16751415C8FC2A5E0A4544148E17AD494675141666666E6DAA4544185EB51F892675141A4703D0ADAA45441666666B6846751418FC2F578D0A454411F85EBB17E675141F6285CAFCBA454419A9999E97D675141F6285C0FCBA4544185EB51B87167514148E17A54BFA45441333333936B675141F6285C7FB8A454411CA1592569675141AF3CC222B5A454417FBB15796B675141007B19E5B8A454414057FBE8716751416F086940C0A4544146CA54DA76675141AFB92F4FC5A45441010300000001000000190000003D0AD7432B6751415C8FC24558A45441CDDA09EE2F675141615D846260A45441EDBBA70536675141620C15B269A454419EBE86113E6751416C90E3C375A45441C07462EB4667514123061CC182A454419158DF0E556751412D397B2298A454415F2BE7115C6751417D94BDB5A2A45441FA2166C860675141903E393AA8A454417848BC8766675141E3FB5F9EB0A454410A6AFD7B686751412F462D11B4A454414AD75BFF68675141205963E5B4A45441295C8F32686751410AD7A3B0B2A4544152B81E856767514114AE47D1B0A45441C3F5283C61675141295C8F32A7A454413333333360675141C3F5289CA5A45441713D0AA75F675141666666C6A4A45441B81E854B5E675141AE47E1FAA4A45441E17A14BE5D6751415C8FC225A4A454419A9999F94E6751415C8FC2F58DA4544148E17A944467514152B81E557EA45441AE47E1EA426751415C8FC2D57BA454417B14AE473A6751418FC2F5D86EA45441EC51B87E316751413D0AD7A361A454419A9999B930675141B81E857B60A454413D0AD7432B6751415C8FC24558A4544101030000000100000028000000E0483754EF665141DD608787FDA354413CDB9B7AFA665141D18786930FA45441C2744B2B056751416ACBB1C81FA454413AD7D8480F67514148E6507F2EA4544114E102DF16675141F6864BBA38A454414892C9ED1B675141D290755040A454412FD31517246751411153B17F4CA454416B84DC2529675141F993FDA854A454413D0AD7432B6751415C8FC24558A454411F85EBC128675141B81E853B52A454416666667621675141D7A3709D47A45441333333C31F6751413D0AD72345A45441666666A61B6751415C8FC2253FA45441295C8F92146751418FC2F55834A45441000000800D675141B81E858B29A45441666666360C675141AE47E19A27A45441F6285C8F0B6751416666660628A45441F6285C2F026751411F85EB9119A45441CDCCCCFCFC665141295C8FD211A4544148E17AC4F6665141A4703D6A08A454418FC2F5F8EF6651418FC2F5A8FCA3544166666666EC665141CDCCCCFCF6A35441713D0A07E9665141EC51B8DEF1A35441AE47E1EAE66651411F85EBD1EEA354413D0AD7E3E0665141713D0AB7E6A3544114AE4741D966514166666676DBA35441EC51B85ED666514166666636D7A3544152B81E75C8665141000000A0C6A35441713D0AD7C5665141295C8F72C4A35441EC51B89EC56651411F85EBE1C4A35441EEC316A9CA66514118F8E9B8CAA35441501A4471D1665141F301144FD2A35441BFA793CCD8665141946BECF6DBA35441D3510F51DE665141E728135BE4A35441B0BD1DB8E366514163ED8449ECA35441E399A604E666514143BB7781EFA3544132465848E7665141F1ACE16CF0A3544181F2098CE8665141C543B211F3A3544138B9B139EC665141A3AFC078F8A35441E0483754EF665141DD608787FDA3544101030000000100000013000000AE47E19A7D665141CDCCCCBC91A35441764725AE88665141963BFE2D99A3544117B1FD55926651418D1551BB9FA3544183DC68E09B6651414EB1362BA6A354413B52A1DDA866514177671205AFA35441520D9282B56651417816A354B8A35441295C8FD2B56651411F85EB51B8A35441B81E859BB666514166666626B7A354415C8FC295A466514148E17A14ABA35441713D0A57A266514114AE47A1A9A354418FC2F5589E665141AE47E10AA7A35441AE47E16A95665141B81E851BA1A35441666666A6946651418FC2F598A0A35441F6285CCF92665141713D0A079FA3544152B81E4592665141EC51B8AE9EA35441A4703DAA9166514185EB51C89EA35441D7A370BD8C6651417B14AE279BA354413D0AD7037E665141A4703D2A91A35441AE47E19A7D665141CDCCCCBC91A354410103000000010000000400000052B81E8574665141333333838BA35441AE47E19A7D665141CDCCCCBC91A354418FC2F5D87A66514152B81ED58FA3544152B81E8574665141333333838BA354410103000000010000000F000000D37F2B676C665141E7EB72A385A35441550866F76F665141927BF8BD88A3544152B81E8574665141333333838BA35441713D0AE76D66514152B81ED585A354417B14AE876C6651413333335380A3544114AE47A16C665141D7A3707D7AA35441CDCCCC4C6E665141CDCCCC7C69A354411F85EB116E665141295C8F6269A354415DF618166D66514190EE05F368A354419941BE496C66514192D02AA06AA35441C24809D46B665141A98B1B4577A3544180D379236B665141D805C0C07BA35441EB4F545E6B665141DF7819B280A35441C24809D46B6651418A089FCC83A35441D37F2B676C665141E7EB72A385A35441
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000EFDC20E1A9685141982DDBD9E2A45441DDF2AACCB4685141AFC6E13DE1A4544107A986A6BD685141EC9D55BFDFA454417B0B14C4C768514170B3365EDEA4544173838280D06851411B07851ADDA45441E410D2DBD7685141029940F4DBA454416137289BDD685141E92AFCCDDAA454412697D6ACDF685141ABB56C1DDAA454416BB54BC7DF6851415D1E2399D9A45441B81E857BDF6851417B14AEA7D9A45441D7A370BDDB685141F6285C5FDAA454413D0AD7E3C1685141D7A3704DDEA45441AE47E19AA76851413D0AD7F3E1A454415C8FC205A56851419A9999B9E1A4544185EB5198A36851419A999999E1A45441F6285C9FA1685141E17A14EEE1A45441D7A370BD9C685141000000C0E2A45441EC51B8DE986851415C8FC265E3A454419A9999D9946851411F85EB11E4A45441E17A14EE936851419A999939E4A45441333333438F6851411F85EBB1E4A45441AD3512A08E68514190A829E0E4A4544173BA8D538F685141137FF3D6E5A454411FACF73E90685141B2393B2FE6A45441EFA4ACB49068514120B6156AE6A454416AF6C4B193685141137FF3D6E5A45441F3B521D59768514199CBF608E5A45441AC1AE5B19D6851411DE1D7A7E3A45441EBCBABC0A268514111AAB514E3A45441D6D0C08BA668514136B1009FE2A45441EFDC20E1A9685141982DDBD9E2A45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980977 - 3586610
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 15 </desc>
+<a>
+010600000010000000010300000001000000D1000000FC8676F16B665141BEE4271986A354413D5EEA726A6651413B5CED8882A354419CA3A21A6A66514118196BA07EA35441C5AAEDA469665141932E4C3F7DA3544153F338E1686651412177977B7CA35441B81E858B686651417B14AE377DA354410AD7A3D068665141AE47E19A7FA354418FC2F56869665141E17A14BE84A3544152B81E456A665141F6285C6F88A35441B81E852B6C665141D7A370CD8AA354417B14AEA76C6651411F85EB318BA35441B81E850B6D6651411F85EB818BA3544148E17A1470665141666666F68DA35441666666E6726651415C8FC2558FA35441333333738F66514148E17A14A3A354411F85EB51AE665141D7A3700DB9A35441EC51B87EC46651411F85EBF1CAA354411F85EB11D466514185EB51B8DCA35441F6285C4FDB6651417B14AE07E8A35441C3F528FCE56651413D0AD7B3F8A3544152B81E55ED6651418FC2F58805A45441D7A370DDF5665141000000F012A45441666666B6F6665141713D0A6712A45441D7A3708D126751417B14AE773CA454410000001021675141EC51B8BE51A454419A9999F9226751417B14AE3755A454413333334324675141A4703DAA58A4544185EB51382C675141713D0A8764A4544114AE47112D6751415C8FC2F563A45441C3F5282C426751416666669683A454417B14AE57566751418FC2F588A1A454413D0AD763616751411F85EBE1B1A454413333330363675141E17A14CEB5A45441AE47E19A6B67514133333323C1A454417B14AE576C675141E17A146EC0A4544152B81E7576675141A4703D0ACBA454418FC2F538826751417B14AEC7D4A45441713D0A4792675141A4703D6ADFA454415C8FC275A3675141F6285C7FE7A454411F85EB41B767514148E17A54EDA454419A9999C9D1675141CDCCCC3CF3A45441B81E85ABD4675141E17A145EF4A45441B81E85FBE467514100000010F7A45441C3F5281CE56751411F85EB11F6A4544152B81E35FA6751411F85EB71F8A45441AE47E15A0E6851417B14AE87F9A45441D7A3700D1C68514100000090F9A454413D0AD7B32B68514152B81E95F8A4544152B81E65456851413D0AD7E3F5A454410AD7A3C061685141A4703DDAF1A45441713D0A578C685141D7A3709DEBA454413D0AD7E3A1685141295C8F72E8A454410AD7A3E0A5685141333333B3E8A4544152B81EF5B468514185EB5168E6A45441CDCCCCBCB4685141CDCCCC6CE5A4544185EB5188DC68514148E17A84DFA45441EC51B89EE36851413D0AD783DEA45441EC51B87EE46851413D0AD763DEA454413D0AD763E8685141713D0AD7DDA4544152B81EC5F968514114AE4761DBA454411F85EBE11469514185EB5158D7A45441CDCCCC9C206951415C8FC2A5D5A454415C8FC2C52069514114AE47A1D6A45441CDCCCC1C2F6951419A9999A9D4A45441000000C0316951411F85EB71D3A45441B81E857B506951413D0AD713CFA4544148E17A245569514148E17A24CFA4544148E17A946569514185EB51D8CCA454410000007065695141B81E85DBCBA45441333333B38469514114AE4781C7A45441D7A370ED9F6951413D0AD753C5A45441C3F528BCB969514100000030C5A454419A999959C9695141D7A3700DC6A454418FC2F508D0695141713D0A87C6A45441713D0A27D969514148E17A04C8A45441713D0A27E9695141EC51B8AECBA4544114AE4741076A5141B81E85EBD3A4544148E17A04256A5141C3F5280CDCA45441D7A3706D306A5141E17A148EDFA45441EC51B8BE346A5141EC51B8DEE1A454413D0AD703436A51419A999989E5A454415C8FC255436A514152B81E95E4A45441295C8F325A6A51413D0AD713EBA45441295C8FE2896A5141295C8F12F8A45441713D0A17B86A5141333333F304A5544114AE47B1C16A51416666667607A55441B814444CC26A51417CF2EE1808A55441455521C1C26A5141C51C06CB07A554411023E5E9CA6A51413B1F5C3E09A5544164EE529FD16A514116A1DC540AA5544164EE529FD16A514128609CC909A554412FEDA7E5D06A5141F35EF10F09A55441BFCF9F7DBF6A5141C1D56E9F03A55441D97EB084B56A51418310588A00A55441BB21134BA46A5141D948EB01FCA45441197B88728D6A5141CC3DE87AF5A454412DA76DA9816A514146B86637F2A4544194F68A03656A5141006B786BEAA45441698EEA424D6A5141AC9F0AB6E3A4544109F40DAB3D6A51419D58738ADFA45441789F1D85316A5141E9900602DBA45441979A719E2E6A5141B38F5B48DAA4544106A81541236A5141AD1751EED7A45441257C016A0D6A5141F9B28D11D2A45441F141577EF8695141E508128DCCA45441A499686CE269514190E90658C6A45441064105E5DF69514183B2E4C4C5A45441E723306FD5695141B35236B3C3A4544158B542FCC76951412E681752C2A45441BD0F33F6B9695141B6B41A84C1A454410E6F38BBAF6951418176AD66C1A454418C376DDBA2695141B6B41A84C1A45441564A6F6E99695141576F62DCC1A45441B17EB2F5916951419AE4F18CC2A45441FB6A5EC982695141C0895846C4A45441E81152F57369514188E90658C6A45441490A5E1E68695141AE8E6D11C8A4544106E63D1E5E69514132798C72C9A45441100CEB90576951413FB0AE05CAA454414F70052151695141E06AF65DCAA4544112BF3E124C69514123E0850ECBA4544109EA0050496951419B9382DCCBA45441355330AB46695141DD08128DCCA454410277A75E44695141A8CAA46FCCA454417A192F0C3E69514157BC0E5BCDA45441B97D499C37695141CF6F0B29CEA45441DF731F06306951417D617514CFA454415C3C5426236951418736B3D6D1A45441E73BABD916695141E31987ADD3A45441EAEEFE5A0B69514109BFED66D5A45441F676909E026951418DA90CC8D6A4544164A6BE5AF768514148D29846D8A4544105B27563EE6851419A7E4A8AD9A454416D1DDB7DE76851413B3992E2D9A454413D0AD783E568514185EB5138DAA45441EC51B89EE5685141B81E85FBDAA45441B81E855BE168514185EB5198DBA454410AD7A340E1685141713D0AD7DAA454411F85EB31E1685141E17A146EDAA45441BB6B6B22D6685141E6C817FDDCA454415504C939C8685141AD28C60EDFA45441C795DBC6BA68514175887420E1A45441E3B6736EB068514165EF6DBCE2A45441221B8EFEA9685141A764FD6CE3A454416CB6CA21A468514118E1D7A7E3A45441008B5F979A6851410948D143E5A454413FEF792794685141C3705DC2E6A454419712488E85685141F64CE60EE9A45441FECE1C597568514194A54996EBA454412DEB9F356768514125C78A8AEDA45441A851F0845C68514181AA5E61EFA45441C6E9A44F42685141073399F1F2A45441C58B83B02F685141CE924703F5A45441491881721E685141B2C21E0CF6A45441ED851C4C13685141E8008C29F6A454412215F9190A685141B2C21E0CF6A454418CC058C4F26751411FA1DD17F4A454413F186AB2DC675141AA4FC51AF1A454410005BFD2D96751419D18A387F0A45441A783CFCCD56751414E6CF143EFA454419DAE910AD36751410CF76193EEA4544187A231B5CF67514135FEAC1DEEA454419A9D1CEACB6751415E05F8A7EDA45441056B66D5C2675141D91AD946ECA4544111F3F718BA67514148F99752EAA45441CDCED718B067514106E6EC72E7A45441C34A0907A467514119E1D7A7E3A4544173EFC673996751417EEA58F1DEA4544114FB7D7C9067514118324758DAA4544117AED1FD84675141672F684CD2A454413F068C387B67514157E7D098CAA45441CD16580C76675141507477A7C5A454412A4B9B936E67514106EE72D6BDA454415916AFBF696751415289AFF9B7A454415FDA77616567514141411846B0A454417F0C852962675141A64A998FABA4544178992B385D675141BCA76895A5A45441AAC62335566751414445DB779BA45441326496174C675141B838D2D58BA45441DC448BE24567514123061CC182A45441CD899A3D3967514182EDB2C96FA4544129BEDDC43167514191D728DE64A4544113B27D6F2E675141552662CF5FA454414EB4B32E2A6751417A1C383958A45441511698FF27675141EC5CDB1554A454417E7FC75A2567514193DBEB0F50A454413235FAE721675141572A25014BA45441C3A7AA8C1A675141FB97C0DA3FA45441CEAB6DBE056751419DA73A1522A45441163635C1F866514182DBD44F0EA45441B4DF07F9F1665141C703B88103A4544168953A86EE665141DD608787FDA35441093F0DBEE766514173351CFDF3A3544164735045E0665141AB26DD9BE8A35441578D9D62D6665141A404F35ADAA35441938FD321D2665141F09F2F7ED4A35441F898546BCD665141DCF5B3F9CEA35441A2794936C7665141B0DDF34EC8A35441EE148659C1665141D271E5E7C2A35441B5C5A31BBA665141E8CEB4EDBCA3544123A46227B86651412EA6286FBBA35441155CCB73B06651413803F874B5A35441180F1FF5A466514151C2AB4BADA35441B91AD6FD9B66514131E10D34A7A3544160EA55A88E66514173A70C959EA354419B3DFB1781665141077CA10A95A354411031F2757166514182E2F1598AA354414B3328356D6651410D91D95C87A35441FC8676F16B665141BEE4271986A354410103000000010000000B0000008773E99C69665141CADC01DF7AA354419CA3A21A6A6651412B1456D57AA35441A9DAC4AD6A66514111A611AF79A3544180D379236B66514183E6B48B75A35441218EC17B6B665141B2B1C8B770A35441218EC17B6B66514117BB49016CA3544157CC2E996B6651415C92BD826AA35441F7D9C37A6C665141FB3A39AE68A3544185EB51286B66514185EB511868A35441CDCCCCEC69665141E17A142E7AA354418773E99C69665141CADC01DF7AA354410103000000010000000C0000006BD6D95CD36A5141E1E65C1207A554417335EACAD56A514128609CC909A55441FABA6B0ED96A51414BA2870E0BA554416D812DDDDC6A5141F1225D6B0BA554415B91DC4AE66A514101A6883B0DA5544115DC74A3EC6A5141BF6849DD0EA554419232F354ED6A51414212CB2B0EA55441B81E85FBEC6A5141333333130EA55441F6285CDFEA6A5141EC51B87E0DA55441E17A145EE56A5141AE47E12A0CA554419A999999D86A514152B81E8508A554416BD6D95CD36A5141E1E65C1207A554410103000000010000002A0000005D237AACFB6B5141B8FE403AFBA45441AD92BEA8006C5141AFB70965F9A454410EB8B260066C51410180E7E6F6A454412D7E0F9F126C5141DBAA4167F1A45441D081C0391C6C514156A15EEEECA4544152C6AAB5266C51419B917D81E7A454413564FACC2F6C5141DC374CD0E2A45441BA6DDD45346C514190C5EE64E0A45441B483BCA63A6C51417E3780BADCA45441B22A2321426C5141C7B82667D8A454419859FA514C6C5141CA7D1F64D2A4544176ADF924566C51416B7D534ECCA454413FBAC1225E6C5141E0BDC019C7A454415CEC72A4626C514145CF56EFC3A45441584E29F8806C5141C7E58B25AFA45441B5CB714FA36C514179DBDAD297A454419A9999C9A26C51410000001097A45441713D0A679F6C5141C3F5285C99A45441C3F528EC9C6C5141AE47E10A9BA454411F85EBB1866C51410AD7A320AAA454417B14AE377E6C514114AE47E1AFA45441000000F07D6C5141295C8F12B0A45441B81E859B726C5141666666C6B7A454410AD7A3B0626C51417B14AE97C2A45441AE47E19A596C514148E17AC4C8A45441666666B6496C5141C3F528DCD2A45441333333033A6C5141713D0A17DCA45441713D0AB7246C5141E17A148EE7A454419A9999E90D6C51413D0AD783F2A454411F85EB51FD6B514133333313FAA454410AD7A350F96B514114AE47F1FAA4544100000040E86B51410000004002A55441CDCCCC1CE76B5141F6285CEF02A5544152B81E55E46B5141C3F5289C04A554413893421CDC6B51418FF8BCD006A55441B9277C33DE6B51410E84649706A55441B6628336E46B5141D3C7B6E704A55441D78179FAE86B5141236B6CC702A5544173631B62F06B5141ACF21068FFA454412AE274B5F46B514104719EA5FDA454413F950B02F86B514133558D66FCA454415D237AACFB6B5141B8FE403AFBA45441010300000001000000260000002BAE03D2FB6B51418C3F7A1BFCA45441570D9B4BF56B51419E61894EFEA454415F1CE48CEE6B5141F089967501A5544182C8E4B9E46B51410BF3DC7D05A55441B9277C33DE6B5141AD2AFFFB07A554416C49BF50DA6B51415B62217A0AA55441457419D1D46B514143EA91300DA55441B5FED6E0CE6B51412628B2A210A55441F8C9CDD1C96B5141990F86E812A5544111FB2546C56B51410F1C82D014A55441068FC6CEC36B51417697F69E15A5544152B81E65C26B51413333337316A55441295C8FA2D06B514185EB510812A55441CDCCCC3CD36B514148E17A5410A554413D0AD753DC6B5141A4703D8A0DA554410AD7A370F86B5141713D0A1702A55441AE47E10AFD6B51411F85EBC100A5544185EB51680C6C5141B81E854BFAA45441666666060C6C51410AD7A360F9A4544166666666276C5141AE47E15AECA45441F6285C0F3C6C51410AD7A330E1A45441713D0A874B6C5141EC51B82ED8A454419A9999A95C6C51410AD7A390CDA45441EC51B84E816C51418FC2F5B8B4A454418FC2F558A56C514185EB51D89BA454414542FEA4A36C5141E32F356598A45441BCAAF91F816C5141B5E08349B0A454417960B8B1626C51410A560906C5A45441E76FA5C8586C514133522DB8CBA454415E09AC194C6C5141D80EA77DD3A4544173DDED573F6C5141D6B50DF8DAA454418242B7AF336C5141001C3B91E1A454416FB44805306C5141A57885B1E3A45441AC9DD1781D6C5141C041FB5EEDA45441D433F3440D6C51415C239DC6F4A4544193F506BD036C514113A2F619F9A4544134F53AA7FD6B5141F34E8F72FBA454412BAE03D2FB6B51418C3F7A1BFCA4544101030000000100000036000000CA72500EFA6A5141332F0BAC12A55441F9BF3EDA016B51418C72A1AA14A55441595A1B72116B514165B88D1C18A55441B9F4F709216B5141FEFCCED41AA5544106D0142D316B51414481A55E1DA55441666AF1C4406B51411F0326751EA55441FC0A25FD536B51415404D12E1FA55441B1A10068616B514167C390A31EA55441E1EEEE33696B514167C390A31EA554412ECA0B57796B5141798250181EA554416E9A25F3826B51419741108D1DA55441B1A6D3338A6B51410E80FAA41CA55441653DAF9E976B5141AB3C64A61AA55441C5D78B36A76B514177774D9117A55441DEED9144B46B51418C72A1AA14A5544130169F59BA6B514106D54AFB12A55441B68BE149C06B5141C0189D4B11A5544149264CDCC56B5141B6D165760FA55441626A6A42CA6B5141DDDA7CD90DA554412D30FB6AD06B514169F3A8930BA55441FB8613ADD76B51415AF6C10209A554416302887BD86B5141F055259208A55441A795DF46D96B514147EC0BD007A554418FC2F518CE6B5141000000C00BA554418FC2F598C16B5141CDCCCC3C10A554415C8FC235BD6B514152B81E7511A55441EC51B8DEB06B5141B81E85BB14A554410AD7A330A46B51411F85EB7117A55441666666969A6B51419A99992919A55441EC51B87E8F6B51415C8FC2251BA55441295C8F22836B5141CDCCCCEC1CA55441AE47E17A706B51418FC2F5B81DA55441295C8FA26E6B5141CDCCCCCC1DA554411F85EB516A6B51415C8FC2E51DA554418FC2F558576B5141333333531EA55441F6285CEF556B51418FC2F5481EA55441333333E3466B51418FC2F5D81DA5544114AE47B1406B5141B81E85AB1DA5544185EB5138346B51413D0AD7931CA554410AD7A3A02C6B5141713D0AE71BA55441F6285CCF286B5141333333531BA55441C3F5285C1F6B514148E17AE419A55441A4703DCA156B514185EB512818A55441CDCCCC0C116B5141CDCCCC4C17A5544152B81EF5046B5141C3F528AC14A55441EC51B8BE046B5141D7A3709D14A554417B14AE07026B5141E17A14DE13A5544114AE4791006B5141713D0A7713A5544133333373F96A514114AE478111A55441F6285CFFF56A5141E17A148E10A554413CE75FCFEE6A51416C62DC930EA5544113A0E0FEEE6A51415AE91E3A0FA5544141E2CB43F06A5141F569F4960FA55441CA72500EFA6A5141332F0BAC12A55441010300000001000000350000002FF27AB1F96A514103B18BC213A5544134D7C8BCE96A51415AE91E3A0FA554415986D9C3DF6A5141AFE51D0D0DA554413ABC16C8D96A514179E472530CA55441827C81F6D96A51414966F3690DA5544184B8159BD76A5141146548B00CA55441DAF0A812D36A514139E3C7990BA55441662AE743CF6A5141B021B2B10AA55441791A38D6C56A5141F35EF10F09A55441CD1637A9C36A51414DDE1BB308A55441C071DD19C36A5141336E8BF008A55441666666E6C36A5141713D0AC709A554410AD7A3E0CB6A5141713D0A770BA554410AD7A3E0DB6A5141E17A149E10A5544133333373E76A5141E17A149E13A554411F85EBB1EB6A51413D0AD78313A554417B14AEF70F6B51418FC2F5681CA554411F85EB211E6B5141D7A370ED1EA55441F6285C4F2C6B51418FC2F5C820A5544100000070406B51415C8FC28522A55441A4703D6A576B514152B81E5523A55441D7A370AD6E6B51410AD7A32023A55441EC51B85E836B5141B81E851B22A55441E17A146E906B51415C8FC27520A554415C8FC205A56B5141E17A149E1CA55441C3F5284CB16B51415C8FC2F519A5544185EB5188C16B514114AE47B115A55441EC9D7808C26B5141A784D42116A5544102FE3EB5C26B51414747A86615A55441ABEB10EFC56B5141018BFAB613A55441D2C0B66ECB6B51418EA3267111A55441EF4E2519CF6B5141845CEF9B0FA554413E520A9ED26B5141AD8A2EA10DA554415F710062D76B5141FF520C230BA554416C49BF50DA6B5141C4965E7309A554410A84FA3DDA6B51418A46103B09A554413CF97018DA6B51418A46103B09A55441ABB79F0BCD6B5141AA6506FF0DA55441A2A4D919C46B5141C0189D4B11A554414B7FE561BE6B5141679A0F0E13A5544130169F59BA6B51410966D21414A55441EA550B20A66B51419AB938D618A55441EF6BEA488D6B51414481A55E1DA55441A608F66E786B51415404D12E1FA5544104626B96616B5141DDC5E61620A554414FCB8F2B546B5141DDC5E61620A554416085A3B9506B514195057CE81FA5544122F11DC2446B5141424511BA1FA554414A185712366B514172C390A31EA554417103FCBD296B51419741108D1DA5544177E849C9196B5141FEFCCED41AA55441AE561A450F6B51419AB938D618A554412FF27AB1F96A514103B18BC213A55441010300000001000000600000000277A75E44695141FAD83A84CBA454415E5A7B35466951418E5C6049CBA4544109EA00504969514182253EB6CAA454413864A5CB4D6951413FB0AE05CAA45441E704A00658695141C7FCB137C9A45441726218595E695141BAC58FA4C8A454414C6C42EF656951410CD425B9C7A454418C2E7E1E72695141B1F051E2C5A45441E8C0E2447D695141C0895846C4A4544170BC76C685695141A71B1420C3A454412EF677658E695141C3EB3C17C2A45441B17EB2F5916951412231F5BEC1A4544153E88A9D9B695141DFBB650EC1A4544153971BEDA46951413E011EB6C0A454419359571CB169514108C3B098C0A454417738BF74BB695141743F8BD3C0A45441090991B8C66951418176AD66C1A45441D7DB98BBCD6951418DADCFF9C1A4544195159A5AD6695141A71B1420C3A45441C12D5A05DD695141F6C7C563C4A45441A8FB4C3DE06951410BFFE7F6C4A454412622A3FCE569514190E90658C6A45441EBCEFD8CF369514147B0AE05CAA454419C806DE8046A51414E2308F7CEA45441CCA9A2B3126A51413B281DC2D2A4544125DA2209206A5141F2EEC46FD6A454417BF92D3E266A514177D9E3D0D7A4544116F0ACF42A6A5141EF8CE09ED8A45441321B47FB2E6A5141D80DDB31D9A4544151E509F7346A51413C517130DBA45441B733A37C3D6A5141C2D6F273DEA45441D4C1D1D3456A5141C09A5ECFE0A45441C2D180414F6A514159DF9F87E3A45441D86F5E06616A51415567773EE8A45441ADDBFFF37A6A51419773257FEFA45441DAE6027B816A5141BEF6504FF1A45441F4CB776B976A514130817E79F7A454412B70ACD0AC6A51414F4B4175FDA45441C00B3422BD6A5141F812AEFD01A5544120A610BACC6A51413D5BF0E206A55441522F932AD26A51414DDE1BB308A554414070D3B5D26A51414DDE1BB308A554416A4DB1D0D06A5141118C055E06A55441AE47E1EACE6A51417B14AED705A5544185EB51F8C66A5141333333B303A554419A999959B96A5141B81E85EBFFA45441295C8F62B46A5141CDCCCC8CFEA45441713D0AC7A06A51413D0AD723F9A454413D0AD7C3936A5141CDCCCC8CF5A4544185EB51C88B6A51418FC2F558F3A45441C3F5282C876A51410AD7A310F2A45441CDCCCC6C7D6A51419A999959EFA45441AE47E1AA6A6A514100000020EAA454415C8FC2155C6A514100000010E6A45441B81E85BB586A5141F6285C1FE5A4544185EB5168516A51411F85EB11E3A454417B14AEE7466A514100000020E0A45441E17A14CE396A51413D0AD773DCA454419A999969396A5141CDCCCC3CDCA45441A4703DAA356A5141AE47E12ADAA45441A4703D8A326A5141D7A3704DD9A454411F85EBE1276A5141B81E855BD6A454410AD7A340246A5141CDCCCC8CD6A4544148E17A841A6A5141A4703DDAD3A454413D0AD7630C6A5141000000F0CFA4544114AE47C1066A514185EB5158CEA454410AD7A3A0F6695141000000D0C9A45441E17A14BEF369514100000000C9A454413D0AD793EA695141CDCCCC6CC6A45441F6285C6FDA6951410AD7A3A0C2A45441A4703DBAD2695141EC51B86EC1A454410AD7A3A0CC695141333333C3C0A45441000000A0CA695141B81E858BC0A454410AD7A3A0C9695141CDCCCC7CC0A454415C8FC235BB695141A4703DAABFA45441F6285C1FBA6951419A9999A9BFA454419A999939AF695141666666A6BFA454411F85EBF1A46951413D0AD7A3BFA45441F2747647A0695141D9A239A2BFA4544182E43EAF9F695141F28647C8BFA45441BAC12D3F9F6951418FC576DCBFA45441334741B79269514192BEFBB3C0A45441257A956D8E69514116DC32F5C0A45441333333938C695141AE47E12AC1A45441EC51B8FE886951411F85EB91C1A45441B81E854B846951419A999919C2A45441666666E68369514185EB5128C2A4544114AE47F18369514133333363C2A45441CDCCCC7C5B695141295C8F52C8A45441E17A14BE526951415C8FC2B5C8A4544152B81E354A69514152B81E95C9A45441A4703D0A446951419A999959CAA45441AE47E18A436951419A999969CAA454414027D9AD426951410FC61885CAA454412247D0554369514125E0850ECBA454410277A75E44695141FAD83A84CBA454410103000000010000001C0000002E68513DF7685141D01E9C78D7A4544177503ADFFC685141586B9FAAD6A4544161F36AD902695141E0B7A2DCD5A454417E7224200B695141900BF198D4A45441A82800FA136951410C21D237D3A4544117B64F551B69514128F1FA2ED2A454415C3C54262369514144C12326D1A454418CB6F8A127695141CC0D2758D0A45441968B36642A6951418A9897A7CFA45441FB4348FD2E695141A668C09ECEA4544160FC59963369514164F330EECDA4544121983F063A695141B601C702CDA454410266323E3D695141DF08128DCCA454418750519F3E695141A9CAA46FCCA454416A8028A83F6951419D9382DCCBA454410F51841A40695141906D1ED7CAA45441713D0AD73E695141F6285CFFCAA454418FC2F5383C695141CDCCCCCCCBA4544166666656376951418FC2F588CCA45441A4703DAA30695141AE47E18ACDA4544148E17AD42D695141E17A141ECEA454418FC2F58829695141D7A3703DCFA45441333333F3136951411F85EB81D2A45441F6285C6FFE6851419A9999B9D5A4544105F67F75EB685141EBA52758D8A454413E52C751EC6851415809BBD9D8A45441342C1ADFF2685141E055BE0BD8A454412E68513DF7685141D01E9C78D7A454410103000000010000001F000000ECDC20E1A96851419B2DDBD9E2A45441DDF2AACCB4685141AAC6E13DE1A4544106A986A6BD685141F09D55BFDFA454417F0B14C4C76851416BB3365EDEA4544172838280D06851411C07851ADDA45441E110D2DBD7685141039940F4DBA454416037289BDD685141E92AFCCDDAA454412797D6ACDF685141A7B56C1DDAA454416AB54BC7DF685141591E2399D9A45441B81E857BDF6851417B14AEA7D9A45441D7A370BDDB685141F6285C5FDAA454413D0AD7E3C1685141D7A3704DDEA45441AE47E19AA76851413D0AD7F3E1A454415C8FC205A56851419A9999B9E1A4544185EB5198A36851419A999999E1A45441F6285C9FA1685141E17A14EEE1A45441D7A370BD9C685141000000C0E2A45441EC51B8DE986851415C8FC265E3A454419A9999D9946851411F85EB11E4A45441E17A14EE936851419A999939E4A45441333333438F6851411F85EBB1E4A45441AF3512A08E6851418EA829E0E4A454416EBA8D538F685141157FF3D6E5A454411CACF73E90685141B6393B2FE6A45441F3A4ACB49068514122B6156AE6A4544168F6C4B193685141157FF3D6E5A45441F6B521D5976851419DCBF608E5A45441AB1AE5B19D68514118E1D7A7E3A45441E7CBABC0A26851410CAAB514E3A45441D4D0C08BA668514135B1009FE2A45441ECDC20E1A96851419B2DDBD9E2A454410103000000010000004E00000046CA54DA76675141AFB92F4FC5A4544172E214857D67514105D93A84CBA454414DEC3E1B85675141EF7B6B7ED1A45441C54ECC388F675141F28CE09ED8A454412443153098675141F9FF3990DDA45441B613E773A3675141CA342664E2A454419AF24ECCAD67514181FBCD11E6A454413C5C2774B767514155929EB6E8A4544147316536BA675141058408A2E9A45441614E3AACC467514197A54996EBA45441812FD8C3CA6751417AD5209FECA45441F680F0C0CD675141E651FBD9ECA45441483E1725D66751410CF76193EEA4544178B8BBA0DA67514191E180F4EFA45441F6DE1160E0675141741158FDF0A45441ABF2658CEF675141063399F1F2A4544140251CA1F8675141B42403DDF3A4544117CD616602685141F699928DF4A454412215F9190A6851419954DAE5F4A4544172703BAD146851413A0F223EF5A45441ABBF1DEB1B6851413A0F223EF5A454416C5B035B22685141CE924703F5A45441D8866EE52B685141F799928DF4A454419922545532685141EB6270FAF3A454416A06D17840685141303AE47BF2A4544168537DF74B68514140D3EADFF0A4544168020E475568514185AA5E61EFA45441721383675C6851419E7A8758EEA4544179E4FDF7736851415230BAE5EAA454410C64608B886851417162C7ADE7A45441554C492D8E6851418D32F0A4E6A454411F0EDC0F8E685141157FF3D6E5A45441361BFBCB8D68514115E3481CE5A45441A4703DBA88685141C3F5288CE6A45441F6285CFF786851411F85EBD1E8A454417B14AE7765685141295C8FE2EBA45441A4703D6A60685141E17A14AEECA45441CDCCCC5C566851411F85EB41EEA45441B81E854B55685141CDCCCC6CEEA454413D0AD7D346685141713D0A67F0A454418FC2F5C83D685141333333A3F1A45441C3F528DC3C685141333333C3F1A45441C3F5284C3568514185EB5188F2A4544152B81E752C685141EC51B86EF3A45441B81E858B29685141AE47E1BAF3A454417B14AEB727685141A4703DEAF3A45441A4703DEA266851410AD7A3F0F3A4544133333373226851415C8FC215F4A45441666666661A6851418FC2F558F4A45441D7A370AD176851419A999949F4A454413333337312685141CDCCCC2CF4A454419A9999B90D68514133333313F4A45441666666D609685141D7A370FDF3A45441F6285C8F06685141B81E85EBF3A45441713D0A7704685141713D0AC7F3A45441F6285CAFFF67514148E17A74F3A45441D7A3702DF16751419A999979F2A454410AD7A320DA6751410AD7A330EFA454419A999979D6675141295C8FA2EDA4544185EB5138C7675141713D0AA7EAA4544148E17A94C4675141EC51B89EEAA454410AD7A320C267514166666696EAA4544114AE4711B667514114AE4751E7A454411F85EB51AF675141D7A3707DE5A4544133333383AD675141E17A14DEE4A454415C8FC2C5A2675141B81E852BE1A454411F85EB41A16751415C8FC2A5E0A4544148E17AD494675141666666E6DAA4544185EB51F892675141A4703D0ADAA45441666666B6846751418FC2F578D0A454411F85EBB17E675141F6285CAFCBA454419A9999E97D675141F6285C0FCBA4544185EB51B87167514148E17A54BFA45441333333936B675141F6285C7FB8A454411CA1592569675141AF3CC222B5A454417FBB15796B675141007B19E5B8A454414057FBE8716751416F086940C0A4544146CA54DA76675141AFB92F4FC5A45441010300000001000000190000003D0AD7432B6751415C8FC24558A45441CDDA09EE2F675141615D846260A45441EDBBA70536675141620C15B269A454419EBE86113E6751416C90E3C375A45441C07462EB4667514123061CC182A454419158DF0E556751412D397B2298A454415F2BE7115C6751417D94BDB5A2A45441FA2166C860675141903E393AA8A454417848BC8766675141E3FB5F9EB0A454410A6AFD7B686751412F462D11B4A454414AD75BFF68675141205963E5B4A45441295C8F32686751410AD7A3B0B2A4544152B81E856767514114AE47D1B0A45441C3F5283C61675141295C8F32A7A454413333333360675141C3F5289CA5A45441713D0AA75F675141666666C6A4A45441B81E854B5E675141AE47E1FAA4A45441E17A14BE5D6751415C8FC225A4A454419A9999F94E6751415C8FC2F58DA4544148E17A944467514152B81E557EA45441AE47E1EA426751415C8FC2D57BA454417B14AE473A6751418FC2F5D86EA45441EC51B87E316751413D0AD7A361A454419A9999B930675141B81E857B60A454413D0AD7432B6751415C8FC24558A4544101030000000100000028000000E0483754EF665141DD608787FDA354413CDB9B7AFA665141D18786930FA45441C2744B2B056751416ACBB1C81FA454413AD7D8480F67514148E6507F2EA4544114E102DF16675141F6864BBA38A454414892C9ED1B675141D290755040A454412FD31517246751411153B17F4CA454416B84DC2529675141F993FDA854A454413D0AD7432B6751415C8FC24558A454411F85EBC128675141B81E853B52A454416666667621675141D7A3709D47A45441333333C31F6751413D0AD72345A45441666666A61B6751415C8FC2253FA45441295C8F92146751418FC2F55834A45441000000800D675141B81E858B29A45441666666360C675141AE47E19A27A45441F6285C8F0B6751416666660628A45441F6285C2F026751411F85EB9119A45441CDCCCCFCFC665141295C8FD211A4544148E17AC4F6665141A4703D6A08A454418FC2F5F8EF6651418FC2F5A8FCA3544166666666EC665141CDCCCCFCF6A35441713D0A07E9665141EC51B8DEF1A35441AE47E1EAE66651411F85EBD1EEA354413D0AD7E3E0665141713D0AB7E6A3544114AE4741D966514166666676DBA35441EC51B85ED666514166666636D7A3544152B81E75C8665141000000A0C6A35441713D0AD7C5665141295C8F72C4A35441EC51B89EC56651411F85EBE1C4A35441EEC316A9CA66514118F8E9B8CAA35441501A4471D1665141F301144FD2A35441BFA793CCD8665141946BECF6DBA35441D3510F51DE665141E728135BE4A35441B0BD1DB8E366514163ED8449ECA35441E399A604E666514143BB7781EFA3544132465848E7665141F1ACE16CF0A3544181F2098CE8665141C543B211F3A3544138B9B139EC665141A3AFC078F8A35441E0483754EF665141DD608787FDA3544101030000000100000013000000AE47E19A7D665141CDCCCCBC91A35441764725AE88665141963BFE2D99A3544117B1FD55926651418D1551BB9FA3544183DC68E09B6651414EB1362BA6A354413B52A1DDA866514177671205AFA35441520D9282B56651417816A354B8A35441295C8FD2B56651411F85EB51B8A35441B81E859BB666514166666626B7A354415C8FC295A466514148E17A14ABA35441713D0A57A266514114AE47A1A9A354418FC2F5589E665141AE47E10AA7A35441AE47E16A95665141B81E851BA1A35441666666A6946651418FC2F598A0A35441F6285CCF92665141713D0A079FA3544152B81E4592665141EC51B8AE9EA35441A4703DAA9166514185EB51C89EA35441D7A370BD8C6651417B14AE279BA354413D0AD7037E665141A4703D2A91A35441AE47E19A7D665141CDCCCCBC91A354410103000000010000000400000052B81E8574665141333333838BA35441AE47E19A7D665141CDCCCCBC91A354418FC2F5D87A66514152B81ED58FA3544152B81E8574665141333333838BA354410103000000010000000F000000D37F2B676C665141E7EB72A385A35441550866F76F665141927BF8BD88A3544152B81E8574665141333333838BA35441713D0AE76D66514152B81ED585A354417B14AE876C6651413333335380A3544114AE47A16C665141D7A3707D7AA35441CDCCCC4C6E665141CDCCCC7C69A354411F85EB116E665141295C8F6269A354415DF618166D66514190EE05F368A354419941BE496C66514192D02AA06AA35441C24809D46B665141A98B1B4577A3544180D379236B665141D805C0C07BA35441EB4F545E6B665141DF7819B280A35441C24809D46B6651418A089FCC83A35441D37F2B676C665141E7EB72A385A35441
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000EFDC20E1A9685141982DDBD9E2A45441DDF2AACCB4685141AFC6E13DE1A4544107A986A6BD685141EC9D55BFDFA454417B0B14C4C768514170B3365EDEA4544173838280D06851411B07851ADDA45441E410D2DBD7685141029940F4DBA454416137289BDD685141E92AFCCDDAA454412697D6ACDF685141ABB56C1DDAA454416BB54BC7DF6851415D1E2399D9A45441B81E857BDF6851417B14AEA7D9A45441D7A370BDDB685141F6285C5FDAA454413D0AD7E3C1685141D7A3704DDEA45441AE47E19AA76851413D0AD7F3E1A454415C8FC205A56851419A9999B9E1A4544185EB5198A36851419A999999E1A45441F6285C9FA1685141E17A14EEE1A45441D7A370BD9C685141000000C0E2A45441EC51B8DE986851415C8FC265E3A454419A9999D9946851411F85EB11E4A45441E17A14EE936851419A999939E4A45441333333438F6851411F85EBB1E4A45441AD3512A08E68514190A829E0E4A4544173BA8D538F685141137FF3D6E5A454411FACF73E90685141B2393B2FE6A45441EFA4ACB49068514120B6156AE6A454416AF6C4B193685141137FF3D6E5A45441F3B521D59768514199CBF608E5A45441AC1AE5B19D6851411DE1D7A7E3A45441EBCBABC0A268514111AAB514E3A45441D6D0C08BA668514136B1009FE2A45441EFDC20E1A9685141982DDBD9E2A45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980977 - 53152
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 14 </desc>
+<a>
+010600000010000000010300000001000000D1000000FC8676F16B665141BEE4271986A354413D5EEA726A6651413B5CED8882A354419CA3A21A6A66514118196BA07EA35441C5AAEDA469665141932E4C3F7DA3544153F338E1686651412177977B7CA35441B81E858B686651417B14AE377DA354410AD7A3D068665141AE47E19A7FA354418FC2F56869665141E17A14BE84A3544152B81E456A665141F6285C6F88A35441B81E852B6C665141D7A370CD8AA354417B14AEA76C6651411F85EB318BA35441B81E850B6D6651411F85EB818BA3544148E17A1470665141666666F68DA35441666666E6726651415C8FC2558FA35441333333738F66514148E17A14A3A354411F85EB51AE665141D7A3700DB9A35441EC51B87EC46651411F85EBF1CAA354411F85EB11D466514185EB51B8DCA35441F6285C4FDB6651417B14AE07E8A35441C3F528FCE56651413D0AD7B3F8A3544152B81E55ED6651418FC2F58805A45441D7A370DDF5665141000000F012A45441666666B6F6665141713D0A6712A45441D7A3708D126751417B14AE773CA454410000001021675141EC51B8BE51A454419A9999F9226751417B14AE3755A454413333334324675141A4703DAA58A4544185EB51382C675141713D0A8764A4544114AE47112D6751415C8FC2F563A45441C3F5282C426751416666669683A454417B14AE57566751418FC2F588A1A454413D0AD763616751411F85EBE1B1A454413333330363675141E17A14CEB5A45441AE47E19A6B67514133333323C1A454417B14AE576C675141E17A146EC0A4544152B81E7576675141A4703D0ACBA454418FC2F538826751417B14AEC7D4A45441713D0A4792675141A4703D6ADFA454415C8FC275A3675141F6285C7FE7A454411F85EB41B767514148E17A54EDA454419A9999C9D1675141CDCCCC3CF3A45441B81E85ABD4675141E17A145EF4A45441B81E85FBE467514100000010F7A45441C3F5281CE56751411F85EB11F6A4544152B81E35FA6751411F85EB71F8A45441AE47E15A0E6851417B14AE87F9A45441D7A3700D1C68514100000090F9A454413D0AD7B32B68514152B81E95F8A4544152B81E65456851413D0AD7E3F5A454410AD7A3C061685141A4703DDAF1A45441713D0A578C685141D7A3709DEBA454413D0AD7E3A1685141295C8F72E8A454410AD7A3E0A5685141333333B3E8A4544152B81EF5B468514185EB5168E6A45441CDCCCCBCB4685141CDCCCC6CE5A4544185EB5188DC68514148E17A84DFA45441EC51B89EE36851413D0AD783DEA45441EC51B87EE46851413D0AD763DEA454413D0AD763E8685141713D0AD7DDA4544152B81EC5F968514114AE4761DBA454411F85EBE11469514185EB5158D7A45441CDCCCC9C206951415C8FC2A5D5A454415C8FC2C52069514114AE47A1D6A45441CDCCCC1C2F6951419A9999A9D4A45441000000C0316951411F85EB71D3A45441B81E857B506951413D0AD713CFA4544148E17A245569514148E17A24CFA4544148E17A946569514185EB51D8CCA454410000007065695141B81E85DBCBA45441333333B38469514114AE4781C7A45441D7A370ED9F6951413D0AD753C5A45441C3F528BCB969514100000030C5A454419A999959C9695141D7A3700DC6A454418FC2F508D0695141713D0A87C6A45441713D0A27D969514148E17A04C8A45441713D0A27E9695141EC51B8AECBA4544114AE4741076A5141B81E85EBD3A4544148E17A04256A5141C3F5280CDCA45441D7A3706D306A5141E17A148EDFA45441EC51B8BE346A5141EC51B8DEE1A454413D0AD703436A51419A999989E5A454415C8FC255436A514152B81E95E4A45441295C8F325A6A51413D0AD713EBA45441295C8FE2896A5141295C8F12F8A45441713D0A17B86A5141333333F304A5544114AE47B1C16A51416666667607A55441B814444CC26A51417CF2EE1808A55441455521C1C26A5141C51C06CB07A554411023E5E9CA6A51413B1F5C3E09A5544164EE529FD16A514116A1DC540AA5544164EE529FD16A514128609CC909A554412FEDA7E5D06A5141F35EF10F09A55441BFCF9F7DBF6A5141C1D56E9F03A55441D97EB084B56A51418310588A00A55441BB21134BA46A5141D948EB01FCA45441197B88728D6A5141CC3DE87AF5A454412DA76DA9816A514146B86637F2A4544194F68A03656A5141006B786BEAA45441698EEA424D6A5141AC9F0AB6E3A4544109F40DAB3D6A51419D58738ADFA45441789F1D85316A5141E9900602DBA45441979A719E2E6A5141B38F5B48DAA4544106A81541236A5141AD1751EED7A45441257C016A0D6A5141F9B28D11D2A45441F141577EF8695141E508128DCCA45441A499686CE269514190E90658C6A45441064105E5DF69514183B2E4C4C5A45441E723306FD5695141B35236B3C3A4544158B542FCC76951412E681752C2A45441BD0F33F6B9695141B6B41A84C1A454410E6F38BBAF6951418176AD66C1A454418C376DDBA2695141B6B41A84C1A45441564A6F6E99695141576F62DCC1A45441B17EB2F5916951419AE4F18CC2A45441FB6A5EC982695141C0895846C4A45441E81152F57369514188E90658C6A45441490A5E1E68695141AE8E6D11C8A4544106E63D1E5E69514132798C72C9A45441100CEB90576951413FB0AE05CAA454414F70052151695141E06AF65DCAA4544112BF3E124C69514123E0850ECBA4544109EA0050496951419B9382DCCBA45441355330AB46695141DD08128DCCA454410277A75E44695141A8CAA46FCCA454417A192F0C3E69514157BC0E5BCDA45441B97D499C37695141CF6F0B29CEA45441DF731F06306951417D617514CFA454415C3C5426236951418736B3D6D1A45441E73BABD916695141E31987ADD3A45441EAEEFE5A0B69514109BFED66D5A45441F676909E026951418DA90CC8D6A4544164A6BE5AF768514148D29846D8A4544105B27563EE6851419A7E4A8AD9A454416D1DDB7DE76851413B3992E2D9A454413D0AD783E568514185EB5138DAA45441EC51B89EE5685141B81E85FBDAA45441B81E855BE168514185EB5198DBA454410AD7A340E1685141713D0AD7DAA454411F85EB31E1685141E17A146EDAA45441BB6B6B22D6685141E6C817FDDCA454415504C939C8685141AD28C60EDFA45441C795DBC6BA68514175887420E1A45441E3B6736EB068514165EF6DBCE2A45441221B8EFEA9685141A764FD6CE3A454416CB6CA21A468514118E1D7A7E3A45441008B5F979A6851410948D143E5A454413FEF792794685141C3705DC2E6A454419712488E85685141F64CE60EE9A45441FECE1C597568514194A54996EBA454412DEB9F356768514125C78A8AEDA45441A851F0845C68514181AA5E61EFA45441C6E9A44F42685141073399F1F2A45441C58B83B02F685141CE924703F5A45441491881721E685141B2C21E0CF6A45441ED851C4C13685141E8008C29F6A454412215F9190A685141B2C21E0CF6A454418CC058C4F26751411FA1DD17F4A454413F186AB2DC675141AA4FC51AF1A454410005BFD2D96751419D18A387F0A45441A783CFCCD56751414E6CF143EFA454419DAE910AD36751410CF76193EEA4544187A231B5CF67514135FEAC1DEEA454419A9D1CEACB6751415E05F8A7EDA45441056B66D5C2675141D91AD946ECA4544111F3F718BA67514148F99752EAA45441CDCED718B067514106E6EC72E7A45441C34A0907A467514119E1D7A7E3A4544173EFC673996751417EEA58F1DEA4544114FB7D7C9067514118324758DAA4544117AED1FD84675141672F684CD2A454413F068C387B67514157E7D098CAA45441CD16580C76675141507477A7C5A454412A4B9B936E67514106EE72D6BDA454415916AFBF696751415289AFF9B7A454415FDA77616567514141411846B0A454417F0C852962675141A64A998FABA4544178992B385D675141BCA76895A5A45441AAC62335566751414445DB779BA45441326496174C675141B838D2D58BA45441DC448BE24567514123061CC182A45441CD899A3D3967514182EDB2C96FA4544129BEDDC43167514191D728DE64A4544113B27D6F2E675141552662CF5FA454414EB4B32E2A6751417A1C383958A45441511698FF27675141EC5CDB1554A454417E7FC75A2567514193DBEB0F50A454413235FAE721675141572A25014BA45441C3A7AA8C1A675141FB97C0DA3FA45441CEAB6DBE056751419DA73A1522A45441163635C1F866514182DBD44F0EA45441B4DF07F9F1665141C703B88103A4544168953A86EE665141DD608787FDA35441093F0DBEE766514173351CFDF3A3544164735045E0665141AB26DD9BE8A35441578D9D62D6665141A404F35ADAA35441938FD321D2665141F09F2F7ED4A35441F898546BCD665141DCF5B3F9CEA35441A2794936C7665141B0DDF34EC8A35441EE148659C1665141D271E5E7C2A35441B5C5A31BBA665141E8CEB4EDBCA3544123A46227B86651412EA6286FBBA35441155CCB73B06651413803F874B5A35441180F1FF5A466514151C2AB4BADA35441B91AD6FD9B66514131E10D34A7A3544160EA55A88E66514173A70C959EA354419B3DFB1781665141077CA10A95A354411031F2757166514182E2F1598AA354414B3328356D6651410D91D95C87A35441FC8676F16B665141BEE4271986A354410103000000010000000B0000008773E99C69665141CADC01DF7AA354419CA3A21A6A6651412B1456D57AA35441A9DAC4AD6A66514111A611AF79A3544180D379236B66514183E6B48B75A35441218EC17B6B665141B2B1C8B770A35441218EC17B6B66514117BB49016CA3544157CC2E996B6651415C92BD826AA35441F7D9C37A6C665141FB3A39AE68A3544185EB51286B66514185EB511868A35441CDCCCCEC69665141E17A142E7AA354418773E99C69665141CADC01DF7AA354410103000000010000000C0000006BD6D95CD36A5141E1E65C1207A554417335EACAD56A514128609CC909A55441FABA6B0ED96A51414BA2870E0BA554416D812DDDDC6A5141F1225D6B0BA554415B91DC4AE66A514101A6883B0DA5544115DC74A3EC6A5141BF6849DD0EA554419232F354ED6A51414212CB2B0EA55441B81E85FBEC6A5141333333130EA55441F6285CDFEA6A5141EC51B87E0DA55441E17A145EE56A5141AE47E12A0CA554419A999999D86A514152B81E8508A554416BD6D95CD36A5141E1E65C1207A554410103000000010000002A0000005D237AACFB6B5141B8FE403AFBA45441AD92BEA8006C5141AFB70965F9A454410EB8B260066C51410180E7E6F6A454412D7E0F9F126C5141DBAA4167F1A45441D081C0391C6C514156A15EEEECA4544152C6AAB5266C51419B917D81E7A454413564FACC2F6C5141DC374CD0E2A45441BA6DDD45346C514190C5EE64E0A45441B483BCA63A6C51417E3780BADCA45441B22A2321426C5141C7B82667D8A454419859FA514C6C5141CA7D1F64D2A4544176ADF924566C51416B7D534ECCA454413FBAC1225E6C5141E0BDC019C7A454415CEC72A4626C514145CF56EFC3A45441584E29F8806C5141C7E58B25AFA45441B5CB714FA36C514179DBDAD297A454419A9999C9A26C51410000001097A45441713D0A679F6C5141C3F5285C99A45441C3F528EC9C6C5141AE47E10A9BA454411F85EBB1866C51410AD7A320AAA454417B14AE377E6C514114AE47E1AFA45441000000F07D6C5141295C8F12B0A45441B81E859B726C5141666666C6B7A454410AD7A3B0626C51417B14AE97C2A45441AE47E19A596C514148E17AC4C8A45441666666B6496C5141C3F528DCD2A45441333333033A6C5141713D0A17DCA45441713D0AB7246C5141E17A148EE7A454419A9999E90D6C51413D0AD783F2A454411F85EB51FD6B514133333313FAA454410AD7A350F96B514114AE47F1FAA4544100000040E86B51410000004002A55441CDCCCC1CE76B5141F6285CEF02A5544152B81E55E46B5141C3F5289C04A554413893421CDC6B51418FF8BCD006A55441B9277C33DE6B51410E84649706A55441B6628336E46B5141D3C7B6E704A55441D78179FAE86B5141236B6CC702A5544173631B62F06B5141ACF21068FFA454412AE274B5F46B514104719EA5FDA454413F950B02F86B514133558D66FCA454415D237AACFB6B5141B8FE403AFBA45441010300000001000000260000002BAE03D2FB6B51418C3F7A1BFCA45441570D9B4BF56B51419E61894EFEA454415F1CE48CEE6B5141F089967501A5544182C8E4B9E46B51410BF3DC7D05A55441B9277C33DE6B5141AD2AFFFB07A554416C49BF50DA6B51415B62217A0AA55441457419D1D46B514143EA91300DA55441B5FED6E0CE6B51412628B2A210A55441F8C9CDD1C96B5141990F86E812A5544111FB2546C56B51410F1C82D014A55441068FC6CEC36B51417697F69E15A5544152B81E65C26B51413333337316A55441295C8FA2D06B514185EB510812A55441CDCCCC3CD36B514148E17A5410A554413D0AD753DC6B5141A4703D8A0DA554410AD7A370F86B5141713D0A1702A55441AE47E10AFD6B51411F85EBC100A5544185EB51680C6C5141B81E854BFAA45441666666060C6C51410AD7A360F9A4544166666666276C5141AE47E15AECA45441F6285C0F3C6C51410AD7A330E1A45441713D0A874B6C5141EC51B82ED8A454419A9999A95C6C51410AD7A390CDA45441EC51B84E816C51418FC2F5B8B4A454418FC2F558A56C514185EB51D89BA454414542FEA4A36C5141E32F356598A45441BCAAF91F816C5141B5E08349B0A454417960B8B1626C51410A560906C5A45441E76FA5C8586C514133522DB8CBA454415E09AC194C6C5141D80EA77DD3A4544173DDED573F6C5141D6B50DF8DAA454418242B7AF336C5141001C3B91E1A454416FB44805306C5141A57885B1E3A45441AC9DD1781D6C5141C041FB5EEDA45441D433F3440D6C51415C239DC6F4A4544193F506BD036C514113A2F619F9A4544134F53AA7FD6B5141F34E8F72FBA454412BAE03D2FB6B51418C3F7A1BFCA4544101030000000100000036000000CA72500EFA6A5141332F0BAC12A55441F9BF3EDA016B51418C72A1AA14A55441595A1B72116B514165B88D1C18A55441B9F4F709216B5141FEFCCED41AA5544106D0142D316B51414481A55E1DA55441666AF1C4406B51411F0326751EA55441FC0A25FD536B51415404D12E1FA55441B1A10068616B514167C390A31EA55441E1EEEE33696B514167C390A31EA554412ECA0B57796B5141798250181EA554416E9A25F3826B51419741108D1DA55441B1A6D3338A6B51410E80FAA41CA55441653DAF9E976B5141AB3C64A61AA55441C5D78B36A76B514177774D9117A55441DEED9144B46B51418C72A1AA14A5544130169F59BA6B514106D54AFB12A55441B68BE149C06B5141C0189D4B11A5544149264CDCC56B5141B6D165760FA55441626A6A42CA6B5141DDDA7CD90DA554412D30FB6AD06B514169F3A8930BA55441FB8613ADD76B51415AF6C10209A554416302887BD86B5141F055259208A55441A795DF46D96B514147EC0BD007A554418FC2F518CE6B5141000000C00BA554418FC2F598C16B5141CDCCCC3C10A554415C8FC235BD6B514152B81E7511A55441EC51B8DEB06B5141B81E85BB14A554410AD7A330A46B51411F85EB7117A55441666666969A6B51419A99992919A55441EC51B87E8F6B51415C8FC2251BA55441295C8F22836B5141CDCCCCEC1CA55441AE47E17A706B51418FC2F5B81DA55441295C8FA26E6B5141CDCCCCCC1DA554411F85EB516A6B51415C8FC2E51DA554418FC2F558576B5141333333531EA55441F6285CEF556B51418FC2F5481EA55441333333E3466B51418FC2F5D81DA5544114AE47B1406B5141B81E85AB1DA5544185EB5138346B51413D0AD7931CA554410AD7A3A02C6B5141713D0AE71BA55441F6285CCF286B5141333333531BA55441C3F5285C1F6B514148E17AE419A55441A4703DCA156B514185EB512818A55441CDCCCC0C116B5141CDCCCC4C17A5544152B81EF5046B5141C3F528AC14A55441EC51B8BE046B5141D7A3709D14A554417B14AE07026B5141E17A14DE13A5544114AE4791006B5141713D0A7713A5544133333373F96A514114AE478111A55441F6285CFFF56A5141E17A148E10A554413CE75FCFEE6A51416C62DC930EA5544113A0E0FEEE6A51415AE91E3A0FA5544141E2CB43F06A5141F569F4960FA55441CA72500EFA6A5141332F0BAC12A55441010300000001000000350000002FF27AB1F96A514103B18BC213A5544134D7C8BCE96A51415AE91E3A0FA554415986D9C3DF6A5141AFE51D0D0DA554413ABC16C8D96A514179E472530CA55441827C81F6D96A51414966F3690DA5544184B8159BD76A5141146548B00CA55441DAF0A812D36A514139E3C7990BA55441662AE743CF6A5141B021B2B10AA55441791A38D6C56A5141F35EF10F09A55441CD1637A9C36A51414DDE1BB308A55441C071DD19C36A5141336E8BF008A55441666666E6C36A5141713D0AC709A554410AD7A3E0CB6A5141713D0A770BA554410AD7A3E0DB6A5141E17A149E10A5544133333373E76A5141E17A149E13A554411F85EBB1EB6A51413D0AD78313A554417B14AEF70F6B51418FC2F5681CA554411F85EB211E6B5141D7A370ED1EA55441F6285C4F2C6B51418FC2F5C820A5544100000070406B51415C8FC28522A55441A4703D6A576B514152B81E5523A55441D7A370AD6E6B51410AD7A32023A55441EC51B85E836B5141B81E851B22A55441E17A146E906B51415C8FC27520A554415C8FC205A56B5141E17A149E1CA55441C3F5284CB16B51415C8FC2F519A5544185EB5188C16B514114AE47B115A55441EC9D7808C26B5141A784D42116A5544102FE3EB5C26B51414747A86615A55441ABEB10EFC56B5141018BFAB613A55441D2C0B66ECB6B51418EA3267111A55441EF4E2519CF6B5141845CEF9B0FA554413E520A9ED26B5141AD8A2EA10DA554415F710062D76B5141FF520C230BA554416C49BF50DA6B5141C4965E7309A554410A84FA3DDA6B51418A46103B09A554413CF97018DA6B51418A46103B09A55441ABB79F0BCD6B5141AA6506FF0DA55441A2A4D919C46B5141C0189D4B11A554414B7FE561BE6B5141679A0F0E13A5544130169F59BA6B51410966D21414A55441EA550B20A66B51419AB938D618A55441EF6BEA488D6B51414481A55E1DA55441A608F66E786B51415404D12E1FA5544104626B96616B5141DDC5E61620A554414FCB8F2B546B5141DDC5E61620A554416085A3B9506B514195057CE81FA5544122F11DC2446B5141424511BA1FA554414A185712366B514172C390A31EA554417103FCBD296B51419741108D1DA5544177E849C9196B5141FEFCCED41AA55441AE561A450F6B51419AB938D618A554412FF27AB1F96A514103B18BC213A55441010300000001000000600000000277A75E44695141FAD83A84CBA454415E5A7B35466951418E5C6049CBA4544109EA00504969514182253EB6CAA454413864A5CB4D6951413FB0AE05CAA45441E704A00658695141C7FCB137C9A45441726218595E695141BAC58FA4C8A454414C6C42EF656951410CD425B9C7A454418C2E7E1E72695141B1F051E2C5A45441E8C0E2447D695141C0895846C4A4544170BC76C685695141A71B1420C3A454412EF677658E695141C3EB3C17C2A45441B17EB2F5916951412231F5BEC1A4544153E88A9D9B695141DFBB650EC1A4544153971BEDA46951413E011EB6C0A454419359571CB169514108C3B098C0A454417738BF74BB695141743F8BD3C0A45441090991B8C66951418176AD66C1A45441D7DB98BBCD6951418DADCFF9C1A4544195159A5AD6695141A71B1420C3A45441C12D5A05DD695141F6C7C563C4A45441A8FB4C3DE06951410BFFE7F6C4A454412622A3FCE569514190E90658C6A45441EBCEFD8CF369514147B0AE05CAA454419C806DE8046A51414E2308F7CEA45441CCA9A2B3126A51413B281DC2D2A4544125DA2209206A5141F2EEC46FD6A454417BF92D3E266A514177D9E3D0D7A4544116F0ACF42A6A5141EF8CE09ED8A45441321B47FB2E6A5141D80DDB31D9A4544151E509F7346A51413C517130DBA45441B733A37C3D6A5141C2D6F273DEA45441D4C1D1D3456A5141C09A5ECFE0A45441C2D180414F6A514159DF9F87E3A45441D86F5E06616A51415567773EE8A45441ADDBFFF37A6A51419773257FEFA45441DAE6027B816A5141BEF6504FF1A45441F4CB776B976A514130817E79F7A454412B70ACD0AC6A51414F4B4175FDA45441C00B3422BD6A5141F812AEFD01A5544120A610BACC6A51413D5BF0E206A55441522F932AD26A51414DDE1BB308A554414070D3B5D26A51414DDE1BB308A554416A4DB1D0D06A5141118C055E06A55441AE47E1EACE6A51417B14AED705A5544185EB51F8C66A5141333333B303A554419A999959B96A5141B81E85EBFFA45441295C8F62B46A5141CDCCCC8CFEA45441713D0AC7A06A51413D0AD723F9A454413D0AD7C3936A5141CDCCCC8CF5A4544185EB51C88B6A51418FC2F558F3A45441C3F5282C876A51410AD7A310F2A45441CDCCCC6C7D6A51419A999959EFA45441AE47E1AA6A6A514100000020EAA454415C8FC2155C6A514100000010E6A45441B81E85BB586A5141F6285C1FE5A4544185EB5168516A51411F85EB11E3A454417B14AEE7466A514100000020E0A45441E17A14CE396A51413D0AD773DCA454419A999969396A5141CDCCCC3CDCA45441A4703DAA356A5141AE47E12ADAA45441A4703D8A326A5141D7A3704DD9A454411F85EBE1276A5141B81E855BD6A454410AD7A340246A5141CDCCCC8CD6A4544148E17A841A6A5141A4703DDAD3A454413D0AD7630C6A5141000000F0CFA4544114AE47C1066A514185EB5158CEA454410AD7A3A0F6695141000000D0C9A45441E17A14BEF369514100000000C9A454413D0AD793EA695141CDCCCC6CC6A45441F6285C6FDA6951410AD7A3A0C2A45441A4703DBAD2695141EC51B86EC1A454410AD7A3A0CC695141333333C3C0A45441000000A0CA695141B81E858BC0A454410AD7A3A0C9695141CDCCCC7CC0A454415C8FC235BB695141A4703DAABFA45441F6285C1FBA6951419A9999A9BFA454419A999939AF695141666666A6BFA454411F85EBF1A46951413D0AD7A3BFA45441F2747647A0695141D9A239A2BFA4544182E43EAF9F695141F28647C8BFA45441BAC12D3F9F6951418FC576DCBFA45441334741B79269514192BEFBB3C0A45441257A956D8E69514116DC32F5C0A45441333333938C695141AE47E12AC1A45441EC51B8FE886951411F85EB91C1A45441B81E854B846951419A999919C2A45441666666E68369514185EB5128C2A4544114AE47F18369514133333363C2A45441CDCCCC7C5B695141295C8F52C8A45441E17A14BE526951415C8FC2B5C8A4544152B81E354A69514152B81E95C9A45441A4703D0A446951419A999959CAA45441AE47E18A436951419A999969CAA454414027D9AD426951410FC61885CAA454412247D0554369514125E0850ECBA454410277A75E44695141FAD83A84CBA454410103000000010000001C0000002E68513DF7685141D01E9C78D7A4544177503ADFFC685141586B9FAAD6A4544161F36AD902695141E0B7A2DCD5A454417E7224200B695141900BF198D4A45441A82800FA136951410C21D237D3A4544117B64F551B69514128F1FA2ED2A454415C3C54262369514144C12326D1A454418CB6F8A127695141CC0D2758D0A45441968B36642A6951418A9897A7CFA45441FB4348FD2E695141A668C09ECEA4544160FC59963369514164F330EECDA4544121983F063A695141B601C702CDA454410266323E3D695141DF08128DCCA454418750519F3E695141A9CAA46FCCA454416A8028A83F6951419D9382DCCBA454410F51841A40695141906D1ED7CAA45441713D0AD73E695141F6285CFFCAA454418FC2F5383C695141CDCCCCCCCBA4544166666656376951418FC2F588CCA45441A4703DAA30695141AE47E18ACDA4544148E17AD42D695141E17A141ECEA454418FC2F58829695141D7A3703DCFA45441333333F3136951411F85EB81D2A45441F6285C6FFE6851419A9999B9D5A4544105F67F75EB685141EBA52758D8A454413E52C751EC6851415809BBD9D8A45441342C1ADFF2685141E055BE0BD8A454412E68513DF7685141D01E9C78D7A454410103000000010000001F000000ECDC20E1A96851419B2DDBD9E2A45441DDF2AACCB4685141AAC6E13DE1A4544106A986A6BD685141F09D55BFDFA454417F0B14C4C76851416BB3365EDEA4544172838280D06851411C07851ADDA45441E110D2DBD7685141039940F4DBA454416037289BDD685141E92AFCCDDAA454412797D6ACDF685141A7B56C1DDAA454416AB54BC7DF685141591E2399D9A45441B81E857BDF6851417B14AEA7D9A45441D7A370BDDB685141F6285C5FDAA454413D0AD7E3C1685141D7A3704DDEA45441AE47E19AA76851413D0AD7F3E1A454415C8FC205A56851419A9999B9E1A4544185EB5198A36851419A999999E1A45441F6285C9FA1685141E17A14EEE1A45441D7A370BD9C685141000000C0E2A45441EC51B8DE986851415C8FC265E3A454419A9999D9946851411F85EB11E4A45441E17A14EE936851419A999939E4A45441333333438F6851411F85EBB1E4A45441AF3512A08E6851418EA829E0E4A454416EBA8D538F685141157FF3D6E5A454411CACF73E90685141B6393B2FE6A45441F3A4ACB49068514122B6156AE6A4544168F6C4B193685141157FF3D6E5A45441F6B521D5976851419DCBF608E5A45441AB1AE5B19D68514118E1D7A7E3A45441E7CBABC0A26851410CAAB514E3A45441D4D0C08BA668514135B1009FE2A45441ECDC20E1A96851419B2DDBD9E2A454410103000000010000004E00000046CA54DA76675141AFB92F4FC5A4544172E214857D67514105D93A84CBA454414DEC3E1B85675141EF7B6B7ED1A45441C54ECC388F675141F28CE09ED8A454412443153098675141F9FF3990DDA45441B613E773A3675141CA342664E2A454419AF24ECCAD67514181FBCD11E6A454413C5C2774B767514155929EB6E8A4544147316536BA675141058408A2E9A45441614E3AACC467514197A54996EBA45441812FD8C3CA6751417AD5209FECA45441F680F0C0CD675141E651FBD9ECA45441483E1725D66751410CF76193EEA4544178B8BBA0DA67514191E180F4EFA45441F6DE1160E0675141741158FDF0A45441ABF2658CEF675141063399F1F2A4544140251CA1F8675141B42403DDF3A4544117CD616602685141F699928DF4A454412215F9190A6851419954DAE5F4A4544172703BAD146851413A0F223EF5A45441ABBF1DEB1B6851413A0F223EF5A454416C5B035B22685141CE924703F5A45441D8866EE52B685141F799928DF4A454419922545532685141EB6270FAF3A454416A06D17840685141303AE47BF2A4544168537DF74B68514140D3EADFF0A4544168020E475568514185AA5E61EFA45441721383675C6851419E7A8758EEA4544179E4FDF7736851415230BAE5EAA454410C64608B886851417162C7ADE7A45441554C492D8E6851418D32F0A4E6A454411F0EDC0F8E685141157FF3D6E5A45441361BFBCB8D68514115E3481CE5A45441A4703DBA88685141C3F5288CE6A45441F6285CFF786851411F85EBD1E8A454417B14AE7765685141295C8FE2EBA45441A4703D6A60685141E17A14AEECA45441CDCCCC5C566851411F85EB41EEA45441B81E854B55685141CDCCCC6CEEA454413D0AD7D346685141713D0A67F0A454418FC2F5C83D685141333333A3F1A45441C3F528DC3C685141333333C3F1A45441C3F5284C3568514185EB5188F2A4544152B81E752C685141EC51B86EF3A45441B81E858B29685141AE47E1BAF3A454417B14AEB727685141A4703DEAF3A45441A4703DEA266851410AD7A3F0F3A4544133333373226851415C8FC215F4A45441666666661A6851418FC2F558F4A45441D7A370AD176851419A999949F4A454413333337312685141CDCCCC2CF4A454419A9999B90D68514133333313F4A45441666666D609685141D7A370FDF3A45441F6285C8F06685141B81E85EBF3A45441713D0A7704685141713D0AC7F3A45441F6285CAFFF67514148E17A74F3A45441D7A3702DF16751419A999979F2A454410AD7A320DA6751410AD7A330EFA454419A999979D6675141295C8FA2EDA4544185EB5138C7675141713D0AA7EAA4544148E17A94C4675141EC51B89EEAA454410AD7A320C267514166666696EAA4544114AE4711B667514114AE4751E7A454411F85EB51AF675141D7A3707DE5A4544133333383AD675141E17A14DEE4A454415C8FC2C5A2675141B81E852BE1A454411F85EB41A16751415C8FC2A5E0A4544148E17AD494675141666666E6DAA4544185EB51F892675141A4703D0ADAA45441666666B6846751418FC2F578D0A454411F85EBB17E675141F6285CAFCBA454419A9999E97D675141F6285C0FCBA4544185EB51B87167514148E17A54BFA45441333333936B675141F6285C7FB8A454411CA1592569675141AF3CC222B5A454417FBB15796B675141007B19E5B8A454414057FBE8716751416F086940C0A4544146CA54DA76675141AFB92F4FC5A45441010300000001000000190000003D0AD7432B6751415C8FC24558A45441CDDA09EE2F675141615D846260A45441EDBBA70536675141620C15B269A454419EBE86113E6751416C90E3C375A45441C07462EB4667514123061CC182A454419158DF0E556751412D397B2298A454415F2BE7115C6751417D94BDB5A2A45441FA2166C860675141903E393AA8A454417848BC8766675141E3FB5F9EB0A454410A6AFD7B686751412F462D11B4A454414AD75BFF68675141205963E5B4A45441295C8F32686751410AD7A3B0B2A4544152B81E856767514114AE47D1B0A45441C3F5283C61675141295C8F32A7A454413333333360675141C3F5289CA5A45441713D0AA75F675141666666C6A4A45441B81E854B5E675141AE47E1FAA4A45441E17A14BE5D6751415C8FC225A4A454419A9999F94E6751415C8FC2F58DA4544148E17A944467514152B81E557EA45441AE47E1EA426751415C8FC2D57BA454417B14AE473A6751418FC2F5D86EA45441EC51B87E316751413D0AD7A361A454419A9999B930675141B81E857B60A454413D0AD7432B6751415C8FC24558A4544101030000000100000028000000E0483754EF665141DD608787FDA354413CDB9B7AFA665141D18786930FA45441C2744B2B056751416ACBB1C81FA454413AD7D8480F67514148E6507F2EA4544114E102DF16675141F6864BBA38A454414892C9ED1B675141D290755040A454412FD31517246751411153B17F4CA454416B84DC2529675141F993FDA854A454413D0AD7432B6751415C8FC24558A454411F85EBC128675141B81E853B52A454416666667621675141D7A3709D47A45441333333C31F6751413D0AD72345A45441666666A61B6751415C8FC2253FA45441295C8F92146751418FC2F55834A45441000000800D675141B81E858B29A45441666666360C675141AE47E19A27A45441F6285C8F0B6751416666660628A45441F6285C2F026751411F85EB9119A45441CDCCCCFCFC665141295C8FD211A4544148E17AC4F6665141A4703D6A08A454418FC2F5F8EF6651418FC2F5A8FCA3544166666666EC665141CDCCCCFCF6A35441713D0A07E9665141EC51B8DEF1A35441AE47E1EAE66651411F85EBD1EEA354413D0AD7E3E0665141713D0AB7E6A3544114AE4741D966514166666676DBA35441EC51B85ED666514166666636D7A3544152B81E75C8665141000000A0C6A35441713D0AD7C5665141295C8F72C4A35441EC51B89EC56651411F85EBE1C4A35441EEC316A9CA66514118F8E9B8CAA35441501A4471D1665141F301144FD2A35441BFA793CCD8665141946BECF6DBA35441D3510F51DE665141E728135BE4A35441B0BD1DB8E366514163ED8449ECA35441E399A604E666514143BB7781EFA3544132465848E7665141F1ACE16CF0A3544181F2098CE8665141C543B211F3A3544138B9B139EC665141A3AFC078F8A35441E0483754EF665141DD608787FDA3544101030000000100000013000000AE47E19A7D665141CDCCCCBC91A35441764725AE88665141963BFE2D99A3544117B1FD55926651418D1551BB9FA3544183DC68E09B6651414EB1362BA6A354413B52A1DDA866514177671205AFA35441520D9282B56651417816A354B8A35441295C8FD2B56651411F85EB51B8A35441B81E859BB666514166666626B7A354415C8FC295A466514148E17A14ABA35441713D0A57A266514114AE47A1A9A354418FC2F5589E665141AE47E10AA7A35441AE47E16A95665141B81E851BA1A35441666666A6946651418FC2F598A0A35441F6285CCF92665141713D0A079FA3544152B81E4592665141EC51B8AE9EA35441A4703DAA9166514185EB51C89EA35441D7A370BD8C6651417B14AE279BA354413D0AD7037E665141A4703D2A91A35441AE47E19A7D665141CDCCCCBC91A354410103000000010000000400000052B81E8574665141333333838BA35441AE47E19A7D665141CDCCCCBC91A354418FC2F5D87A66514152B81ED58FA3544152B81E8574665141333333838BA354410103000000010000000F000000D37F2B676C665141E7EB72A385A35441550866F76F665141927BF8BD88A3544152B81E8574665141333333838BA35441713D0AE76D66514152B81ED585A354417B14AE876C6651413333335380A3544114AE47A16C665141D7A3707D7AA35441CDCCCC4C6E665141CDCCCC7C69A354411F85EB116E665141295C8F6269A354415DF618166D66514190EE05F368A354419941BE496C66514192D02AA06AA35441C24809D46B665141A98B1B4577A3544180D379236B665141D805C0C07BA35441EB4F545E6B665141DF7819B280A35441C24809D46B6651418A089FCC83A35441D37F2B676C665141E7EB72A385A35441
+</a>
+
+<b>
+010600000010000000010300000001000000D1000000FB8676F16B665141C1E4271986A35441385EEA726A665141395CED8882A3544199A3A21A6A66514113196BA07EA35441C9AAEDA469665141972E4C3F7DA3544151F338E1686651412077977B7CA35441B81E858B686651417B14AE377DA354410AD7A3D068665141AE47E19A7FA354418FC2F56869665141E17A14BE84A3544152B81E456A665141F6285C6F88A35441B81E852B6C665141D7A370CD8AA354417B14AEA76C6651411F85EB318BA35441B81E850B6D6651411F85EB818BA3544148E17A1470665141666666F68DA35441666666E6726651415C8FC2558FA35441333333738F66514148E17A14A3A354411F85EB51AE665141D7A3700DB9A35441EC51B87EC46651411F85EBF1CAA354411F85EB11D466514185EB51B8DCA35441F6285C4FDB6651417B14AE07E8A35441C3F528FCE56651413D0AD7B3F8A3544152B81E55ED6651418FC2F58805A45441D7A370DDF5665141000000F012A45441666666B6F6665141713D0A6712A45441D7A3708D126751417B14AE773CA454410000001021675141EC51B8BE51A454419A9999F9226751417B14AE3755A454413333334324675141A4703DAA58A4544185EB51382C675141713D0A8764A4544114AE47112D6751415C8FC2F563A45441C3F5282C426751416666669683A454417B14AE57566751418FC2F588A1A454413D0AD763616751411F85EBE1B1A454413333330363675141E17A14CEB5A45441AE47E19A6B67514133333323C1A454417B14AE576C675141E17A146EC0A4544152B81E7576675141A4703D0ACBA454418FC2F538826751417B14AEC7D4A45441713D0A4792675141A4703D6ADFA454415C8FC275A3675141F6285C7FE7A454411F85EB41B767514148E17A54EDA454419A9999C9D1675141CDCCCC3CF3A45441B81E85ABD4675141E17A145EF4A45441B81E85FBE467514100000010F7A45441C3F5281CE56751411F85EB11F6A4544152B81E35FA6751411F85EB71F8A45441AE47E15A0E6851417B14AE87F9A45441D7A3700D1C68514100000090F9A454413D0AD7B32B68514152B81E95F8A4544152B81E65456851413D0AD7E3F5A454410AD7A3C061685141A4703DDAF1A45441713D0A578C685141D7A3709DEBA454413D0AD7E3A1685141295C8F72E8A454410AD7A3E0A5685141333333B3E8A4544152B81EF5B468514185EB5168E6A45441CDCCCCBCB4685141CDCCCC6CE5A4544185EB5188DC68514148E17A84DFA45441EC51B89EE36851413D0AD783DEA45441EC51B87EE46851413D0AD763DEA454413D0AD763E8685141713D0AD7DDA4544152B81EC5F968514114AE4761DBA454411F85EBE11469514185EB5158D7A45441CDCCCC9C206951415C8FC2A5D5A454415C8FC2C52069514114AE47A1D6A45441CDCCCC1C2F6951419A9999A9D4A45441000000C0316951411F85EB71D3A45441B81E857B506951413D0AD713CFA4544148E17A245569514148E17A24CFA4544148E17A946569514185EB51D8CCA454410000007065695141B81E85DBCBA45441333333B38469514114AE4781C7A45441D7A370ED9F6951413D0AD753C5A45441C3F528BCB969514100000030C5A454419A999959C9695141D7A3700DC6A454418FC2F508D0695141713D0A87C6A45441713D0A27D969514148E17A04C8A45441713D0A27E9695141EC51B8AECBA4544114AE4741076A5141B81E85EBD3A4544148E17A04256A5141C3F5280CDCA45441D7A3706D306A5141E17A148EDFA45441EC51B8BE346A5141EC51B8DEE1A454413D0AD703436A51419A999989E5A454415C8FC255436A514152B81E95E4A45441295C8F325A6A51413D0AD713EBA45441295C8FE2896A5141295C8F12F8A45441713D0A17B86A5141333333F304A5544114AE47B1C16A51416666667607A55441B814444CC26A51417CF2EE1808A55441455521C1C26A5141C51C06CB07A554411023E5E9CA6A51413B1F5C3E09A5544164EE529FD16A514116A1DC540AA5544164EE529FD16A514128609CC909A554412FEDA7E5D06A5141F35EF10F09A55441BFCF9F7DBF6A5141C1D56E9F03A55441D97EB084B56A51418310588A00A55441BB21134BA46A5141D948EB01FCA45441197B88728D6A5141CC3DE87AF5A454412DA76DA9816A514146B86637F2A4544194F68A03656A5141006B786BEAA45441698EEA424D6A5141AC9F0AB6E3A4544109F40DAB3D6A51419D58738ADFA45441789F1D85316A5141E9900602DBA45441979A719E2E6A5141B38F5B48DAA4544108A81541236A5141AA1751EED7A45441217C016A0D6A5141FCB28D11D2A45441F141577EF8695141E108128DCCA45441A799686CE269514194E90658C6A45441084105E5DF69514187B2E4C4C5A45441EA23306FD5695141B85236B3C3A454415CB542FCC769514131681752C2A45441C20F33F6B9695141B7B41A84C1A45441126F38BBAF6951418676AD66C1A4544191376DDBA2695141B7B41A84C1A454415B4A6F6E99695141566F62DCC1A45441AD7EB2F5916951419FE4F18CC2A45441FA6A5EC982695141C4895846C4A45441E61152F57369514189E90658C6A454414C0A5E1E68695141AF8E6D11C8A454410AE63D1E5E69514135798C72C9A45441130CEB905769514142B0AE05CAA454414D70052151695141E16AF65DCAA454410DBF3E124C6951411FE0850ECBA454410BEA005049695141999382DCCBA454413A5330AB46695141E108128DCCA45441FD76A75E44695141A5CAA46FCCA454417E192F0C3E6951415BBC0E5BCDA45441B87D499C37695141CB6F0B29CEA45441E4731F063069514181617514CFA45441583C5426236951418336B3D6D1A45441E33BABD916695141E51987ADD3A45441E9EEFE5A0B6951410BBFED66D5A45441F176909E0269514191A90CC8D6A4544164A6BE5AF768514149D29846D8A4544109B27563EE6851419F7E4A8AD9A45441681DDB7DE76851413E3992E2D9A454413D0AD783E568514185EB5138DAA45441EC51B89EE5685141B81E85FBDAA45441B81E855BE168514185EB5198DBA454410AD7A340E1685141713D0AD7DAA454411F85EB31E1685141E17A146EDAA45441BF6B6B22D6685141EAC817FDDCA454415604C939C8685141AE28C60EDFA45441C895DBC6BA68514173887420E1A45441E7B6736EB068514167EF6DBCE2A45441211B8EFEA9685141A564FD6CE3A4544167B6CA21A46851411DE1D7A7E3A45441008B5F979A6851410748D143E5A454413AEF792794685141BF705DC2E6A454419312488E85685141F14CE60EE9A4544103CF1C597568514190A54996EBA454412DEB9F356768514124C78A8AEDA45441AC51F0845C68514185AA5E61EFA45441C4E9A44F42685141023399F1F2A45441C68B83B02F685141D1924703F5A454414E1881721E685141AEC21E0CF6A45441E8851C4C13685141EA008C29F6A454411F15F9190A685141AEC21E0CF6A454418BC058C4F26751411BA1DD17F4A4544142186AB2DC675141AB4FC51AF1A454410305BFD2D96751419E18A387F0A45441AC83CFCCD5675141496CF143EFA454419EAE910AD36751410BF76193EEA4544185A231B5CF67514130FEAC1DEEA454419B9D1CEACB6751416005F8A7EDA45441046B66D5C2675141D91AD946ECA4544116F3F718BA67514146F99752EAA45441C9CED718B067514107E6EC72E7A45441C24A0907A46751411DE1D7A7E3A4544173EFC673996751417DEA58F1DEA4544118FB7D7C9067514119324758DAA4544113AED1FD84675141692F684CD2A454413E068C387B67514159E7D098CAA45441CD16580C766751414B7477A7C5A454412A4B9B936E67514109EE72D6BDA454415916AFBF696751415089AFF9B7A4544162DA7761656751413F411846B0A45441840C852962675141AA4A998FABA4544176992B385D675141BFA76895A5A45441AFC62335566751414045DB779BA45441306496174C675141BD38D2D58BA45441D8448BE24567514126061CC182A45441CF899A3D396751417EEDB2C96FA454412CBEDDC43167514190D728DE64A4544112B27D6F2E675141502662CF5FA454414DB4B32E2A6751417C1C383958A454414C1698FF27675141E85CDB1554A454417B7FC75A2567514191DBEB0F50A454413035FAE7216751415C2A25014BA45441BFA7AA8C1A675141F697C0DA3FA45441CAAB6DBE056751419CA73A1522A45441183635C1F866514184DBD44F0EA45441B3DF07F9F1665141C803B88103A4544168953A86EE665141DD608787FDA354410E3F0DBEE766514176351CFDF3A3544160735045E0665141AC26DD9BE8A354415A8D9D62D6665141A504F35ADAA35441948FD321D2665141EB9F2F7ED4A35441F498546BCD665141DCF5B3F9CEA35441A6794936C7665141B3DDF34EC8A35441ED148659C1665141D571E5E7C2A35441B8C5A31BBA665141EACEB4EDBCA3544125A46227B866514132A6286FBBA35441145CCB73B06651413C03F874B5A354411A0F1FF5A466514151C2AB4BADA35441B41AD6FD9B66514134E10D34A7A3544163EA55A88E6651416EA70C959EA35441993DFB1781665141067CA10A95A354411531F2757166514186E2F1598AA35441503328356D6651410B91D95C87A35441FB8676F16B665141C1E4271986A354410103000000010000000B0000008C73E99C69665141CFDC01DF7AA3544199A3A21A6A665141291456D57AA35441A5DAC4AD6A66514110A611AF79A3544181D379236B66514187E6B48B75A35441208EC17B6B665141B5B1C8B770A35441208EC17B6B66514115BB49016CA354415CCC2E996B6651415D92BD826AA35441F4D9C37A6C665141FF3A39AE68A3544185EB51286B66514185EB511868A35441CDCCCCEC69665141E17A142E7AA354418C73E99C69665141CFDC01DF7AA354410103000000010000000C0000006BD6D95CD36A5141E1E65C1207A554417335EACAD56A514128609CC909A55441FABA6B0ED96A51414BA2870E0BA554416D812DDDDC6A5141F1225D6B0BA554415B91DC4AE66A514101A6883B0DA5544115DC74A3EC6A5141BF6849DD0EA554419232F354ED6A51414212CB2B0EA55441B81E85FBEC6A5141333333130EA55441F6285CDFEA6A5141EC51B87E0DA55441E17A145EE56A5141AE47E12A0CA554419A999999D86A514152B81E8508A554416BD6D95CD36A5141E1E65C1207A554410103000000010000002A0000005D237AACFB6B5141B8FE403AFBA45441AD92BEA8006C5141AFB70965F9A454410EB8B260066C51410180E7E6F6A454412D7E0F9F126C5141DBAA4167F1A45441D081C0391C6C514156A15EEEECA4544152C6AAB5266C51419B917D81E7A454413564FACC2F6C5141DC374CD0E2A45441BA6DDD45346C514190C5EE64E0A45441B483BCA63A6C51417E3780BADCA45441B22A2321426C5141C7B82667D8A454419859FA514C6C5141CA7D1F64D2A4544176ADF924566C51416B7D534ECCA454413FBAC1225E6C5141E0BDC019C7A454415CEC72A4626C514145CF56EFC3A45441584E29F8806C5141C7E58B25AFA45441B5CB714FA36C514179DBDAD297A454419A9999C9A26C51410000001097A45441713D0A679F6C5141C3F5285C99A45441C3F528EC9C6C5141AE47E10A9BA454411F85EBB1866C51410AD7A320AAA454417B14AE377E6C514114AE47E1AFA45441000000F07D6C5141295C8F12B0A45441B81E859B726C5141666666C6B7A454410AD7A3B0626C51417B14AE97C2A45441AE47E19A596C514148E17AC4C8A45441666666B6496C5141C3F528DCD2A45441333333033A6C5141713D0A17DCA45441713D0AB7246C5141E17A148EE7A454419A9999E90D6C51413D0AD783F2A454411F85EB51FD6B514133333313FAA454410AD7A350F96B514114AE47F1FAA4544100000040E86B51410000004002A55441CDCCCC1CE76B5141F6285CEF02A5544152B81E55E46B5141C3F5289C04A554413893421CDC6B51418FF8BCD006A55441B9277C33DE6B51410E84649706A55441B6628336E46B5141D3C7B6E704A55441D78179FAE86B5141236B6CC702A5544173631B62F06B5141ACF21068FFA454412AE274B5F46B514104719EA5FDA454413F950B02F86B514133558D66FCA454415D237AACFB6B5141B8FE403AFBA45441010300000001000000260000002BAE03D2FB6B51418C3F7A1BFCA45441570D9B4BF56B51419E61894EFEA454415F1CE48CEE6B5141F089967501A5544182C8E4B9E46B51410BF3DC7D05A55441B9277C33DE6B5141AD2AFFFB07A554416C49BF50DA6B51415B62217A0AA55441457419D1D46B514143EA91300DA55441B5FED6E0CE6B51412628B2A210A55441F8C9CDD1C96B5141990F86E812A5544111FB2546C56B51410F1C82D014A55441068FC6CEC36B51417697F69E15A5544152B81E65C26B51413333337316A55441295C8FA2D06B514185EB510812A55441CDCCCC3CD36B514148E17A5410A554413D0AD753DC6B5141A4703D8A0DA554410AD7A370F86B5141713D0A1702A55441AE47E10AFD6B51411F85EBC100A5544185EB51680C6C5141B81E854BFAA45441666666060C6C51410AD7A360F9A4544166666666276C5141AE47E15AECA45441F6285C0F3C6C51410AD7A330E1A45441713D0A874B6C5141EC51B82ED8A454419A9999A95C6C51410AD7A390CDA45441EC51B84E816C51418FC2F5B8B4A454418FC2F558A56C514185EB51D89BA454414542FEA4A36C5141E32F356598A45441BCAAF91F816C5141B5E08349B0A454417960B8B1626C51410A560906C5A45441E76FA5C8586C514133522DB8CBA454415E09AC194C6C5141D80EA77DD3A4544173DDED573F6C5141D6B50DF8DAA454418242B7AF336C5141001C3B91E1A454416FB44805306C5141A57885B1E3A45441AC9DD1781D6C5141C041FB5EEDA45441D433F3440D6C51415C239DC6F4A4544193F506BD036C514113A2F619F9A4544134F53AA7FD6B5141F34E8F72FBA454412BAE03D2FB6B51418C3F7A1BFCA4544101030000000100000036000000CA72500EFA6A5141332F0BAC12A55441F9BF3EDA016B51418C72A1AA14A55441595A1B72116B514165B88D1C18A55441B9F4F709216B5141FEFCCED41AA5544106D0142D316B51414481A55E1DA55441666AF1C4406B51411F0326751EA55441FC0A25FD536B51415404D12E1FA55441B1A10068616B514167C390A31EA55441E1EEEE33696B514167C390A31EA554412ECA0B57796B5141798250181EA554416E9A25F3826B51419741108D1DA55441B1A6D3338A6B51410E80FAA41CA55441653DAF9E976B5141AB3C64A61AA55441C5D78B36A76B514177774D9117A55441DEED9144B46B51418C72A1AA14A5544130169F59BA6B514106D54AFB12A55441B68BE149C06B5141C0189D4B11A5544149264CDCC56B5141B6D165760FA55441626A6A42CA6B5141DDDA7CD90DA554412D30FB6AD06B514169F3A8930BA55441FB8613ADD76B51415AF6C10209A554416302887BD86B5141F055259208A55441A795DF46D96B514147EC0BD007A554418FC2F518CE6B5141000000C00BA554418FC2F598C16B5141CDCCCC3C10A554415C8FC235BD6B514152B81E7511A55441EC51B8DEB06B5141B81E85BB14A554410AD7A330A46B51411F85EB7117A55441666666969A6B51419A99992919A55441EC51B87E8F6B51415C8FC2251BA55441295C8F22836B5141CDCCCCEC1CA55441AE47E17A706B51418FC2F5B81DA55441295C8FA26E6B5141CDCCCCCC1DA554411F85EB516A6B51415C8FC2E51DA554418FC2F558576B5141333333531EA55441F6285CEF556B51418FC2F5481EA55441333333E3466B51418FC2F5D81DA5544114AE47B1406B5141B81E85AB1DA5544185EB5138346B51413D0AD7931CA554410AD7A3A02C6B5141713D0AE71BA55441F6285CCF286B5141333333531BA55441C3F5285C1F6B514148E17AE419A55441A4703DCA156B514185EB512818A55441CDCCCC0C116B5141CDCCCC4C17A5544152B81EF5046B5141C3F528AC14A55441EC51B8BE046B5141D7A3709D14A554417B14AE07026B5141E17A14DE13A5544114AE4791006B5141713D0A7713A5544133333373F96A514114AE478111A55441F6285CFFF56A5141E17A148E10A554413CE75FCFEE6A51416C62DC930EA5544113A0E0FEEE6A51415AE91E3A0FA5544141E2CB43F06A5141F569F4960FA55441CA72500EFA6A5141332F0BAC12A55441010300000001000000350000002FF27AB1F96A514103B18BC213A5544134D7C8BCE96A51415AE91E3A0FA554415986D9C3DF6A5141AFE51D0D0DA554413ABC16C8D96A514179E472530CA55441827C81F6D96A51414966F3690DA5544184B8159BD76A5141146548B00CA55441DAF0A812D36A514139E3C7990BA55441662AE743CF6A5141B021B2B10AA55441791A38D6C56A5141F35EF10F09A55441CD1637A9C36A51414DDE1BB308A55441C071DD19C36A5141336E8BF008A55441666666E6C36A5141713D0AC709A554410AD7A3E0CB6A5141713D0A770BA554410AD7A3E0DB6A5141E17A149E10A5544133333373E76A5141E17A149E13A554411F85EBB1EB6A51413D0AD78313A554417B14AEF70F6B51418FC2F5681CA554411F85EB211E6B5141D7A370ED1EA55441F6285C4F2C6B51418FC2F5C820A5544100000070406B51415C8FC28522A55441A4703D6A576B514152B81E5523A55441D7A370AD6E6B51410AD7A32023A55441EC51B85E836B5141B81E851B22A55441E17A146E906B51415C8FC27520A554415C8FC205A56B5141E17A149E1CA55441C3F5284CB16B51415C8FC2F519A5544185EB5188C16B514114AE47B115A55441EC9D7808C26B5141A784D42116A5544102FE3EB5C26B51414747A86615A55441ABEB10EFC56B5141018BFAB613A55441D2C0B66ECB6B51418EA3267111A55441EF4E2519CF6B5141845CEF9B0FA554413E520A9ED26B5141AD8A2EA10DA554415F710062D76B5141FF520C230BA554416C49BF50DA6B5141C4965E7309A554410A84FA3DDA6B51418A46103B09A554413CF97018DA6B51418A46103B09A55441ABB79F0BCD6B5141AA6506FF0DA55441A2A4D919C46B5141C0189D4B11A554414B7FE561BE6B5141679A0F0E13A5544130169F59BA6B51410966D21414A55441EA550B20A66B51419AB938D618A55441EF6BEA488D6B51414481A55E1DA55441A608F66E786B51415404D12E1FA5544104626B96616B5141DDC5E61620A554414FCB8F2B546B5141DDC5E61620A554416085A3B9506B514195057CE81FA5544122F11DC2446B5141424511BA1FA554414A185712366B514172C390A31EA554417103FCBD296B51419741108D1DA5544177E849C9196B5141FEFCCED41AA55441AE561A450F6B51419AB938D618A554412FF27AB1F96A514103B18BC213A5544101030000000100000060000000FD76A75E44695141FAD83A84CBA454415F5A7B35466951418C5C6049CBA454410BEA00504969514180253EB6CAA454413364A5CB4D69514142B0AE05CAA45441E304A00658695141C8FCB137C9A454416D6218595E695141BBC58FA4C8A454414C6C42EF6569514110D425B9C7A454418F2E7E1E72695141AEF051E2C5A45441EAC0E2447D695141C4895846C4A4544175BC76C685695141AB1B1420C3A4544131F677658E695141C4EB3C17C2A45441AD7EB2F5916951412531F5BEC1A4544151E88A9D9B695141DCBB650EC1A4544155971BEDA46951413D011EB6C0A454418E59571CB16951410CC3B098C0A454417A38BF74BB695141793F8BD3C0A45441070991B8C66951418676AD66C1A45441DADB98BBCD69514192ADCFF9C1A4544195159A5AD6695141AB1B1420C3A45441BE2D5A05DD695141F6C7C563C4A45441A6FB4C3DE06951410DFFE7F6C4A454412422A3FCE569514194E90658C6A45441EECEFD8CF369514142B0AE05CAA4544197806DE8046A5141502308F7CEA45441CEA9A2B3126A51413A281DC2D2A454412ADA2209206A5141F2EEC46FD6A4544178F92D3E266A514179D9E3D0D7A4544118F0ACF42A6A5141F38CE09ED8A45441321B47FB2E6A5141D80DDB31D9A4544151E509F7346A51413C517130DBA45441B733A37C3D6A5141C2D6F273DEA45441D4C1D1D3456A5141C09A5ECFE0A45441C2D180414F6A514159DF9F87E3A45441D86F5E06616A51415567773EE8A45441ADDBFFF37A6A51419773257FEFA45441DAE6027B816A5141BEF6504FF1A45441F4CB776B976A514130817E79F7A454412B70ACD0AC6A51414F4B4175FDA45441C00B3422BD6A5141F812AEFD01A5544120A610BACC6A51413D5BF0E206A55441522F932AD26A51414DDE1BB308A554414070D3B5D26A51414DDE1BB308A554416A4DB1D0D06A5141118C055E06A55441AE47E1EACE6A51417B14AED705A5544185EB51F8C66A5141333333B303A554419A999959B96A5141B81E85EBFFA45441295C8F62B46A5141CDCCCC8CFEA45441713D0AC7A06A51413D0AD723F9A454413D0AD7C3936A5141CDCCCC8CF5A4544185EB51C88B6A51418FC2F558F3A45441C3F5282C876A51410AD7A310F2A45441CDCCCC6C7D6A51419A999959EFA45441AE47E1AA6A6A514100000020EAA454415C8FC2155C6A514100000010E6A45441B81E85BB586A5141F6285C1FE5A4544185EB5168516A51411F85EB11E3A454417B14AEE7466A514100000020E0A45441E17A14CE396A51413D0AD773DCA454419A999969396A5141CDCCCC3CDCA45441A4703DAA356A5141AE47E12ADAA45441A4703D8A326A5141D7A3704DD9A454411F85EBE1276A5141B81E855BD6A454410AD7A340246A5141CDCCCC8CD6A4544148E17A841A6A5141A4703DDAD3A454413D0AD7630C6A5141000000F0CFA4544114AE47C1066A514185EB5158CEA454410AD7A3A0F6695141000000D0C9A45441E17A14BEF369514100000000C9A454413D0AD793EA695141CDCCCC6CC6A45441F6285C6FDA6951410AD7A3A0C2A45441A4703DBAD2695141EC51B86EC1A454410AD7A3A0CC695141333333C3C0A45441000000A0CA695141B81E858BC0A454410AD7A3A0C9695141CDCCCC7CC0A454415C8FC235BB695141A4703DAABFA45441F6285C1FBA6951419A9999A9BFA454419A999939AF695141666666A6BFA454411F85EBF1A46951413D0AD7A3BFA45441F2747647A0695141D9A239A2BFA4544182E43EAF9F695141F28647C8BFA45441BAC12D3F9F6951418FC576DCBFA45441334741B79269514192BEFBB3C0A45441257A956D8E69514116DC32F5C0A45441333333938C695141AE47E12AC1A45441EC51B8FE886951411F85EB91C1A45441B81E854B846951419A999919C2A45441666666E68369514185EB5128C2A4544114AE47F18369514133333363C2A45441CDCCCC7C5B695141295C8F52C8A45441E17A14BE526951415C8FC2B5C8A4544152B81E354A69514152B81E95C9A45441A4703D0A446951419A999959CAA45441AE47E18A436951419A999969CAA454414327D9AD426951410AC61885CAA454412047D0554369514129E0850ECBA45441FD76A75E44695141FAD83A84CBA454410103000000010000001C0000003268513DF7685141CF1E9C78D7A4544173503ADFFC685141556B9FAAD6A454415EF36AD902695141DBB7A2DCD5A454417B7224200B695141910BF198D4A45441A52800FA136951410A21D237D3A4544116B64F551B6951412DF1FA2ED2A45441583C54262369514146C12326D1A454418BB6F8A127695141CB0D2758D0A45441988B36642A6951418E9897A7CFA45441FC4348FD2E695141A668C09ECEA4544160FC59963369514168F330EECDA4544126983F063A695141B201C702CDA454410466323E3D695141E108128DCCA454418A50519F3E695141A5CAA46FCCA45441678028A83F695141999382DCCBA454411351841A40695141946D1ED7CAA45441713D0AD73E695141F6285CFFCAA454418FC2F5383C695141CDCCCCCCCBA4544166666656376951418FC2F588CCA45441A4703DAA30695141AE47E18ACDA4544148E17AD42D695141E17A141ECEA454418FC2F58829695141D7A3703DCFA45441333333F3136951411F85EB81D2A45441F6285C6FFE6851419A9999B9D5A4544104F67F75EB685141ECA52758D8A454413A52C751EC6851415609BBD9D8A45441312C1ADFF2685141DC55BE0BD8A454413268513DF7685141CF1E9C78D7A454410103000000010000001F000000EFDC20E1A9685141982DDBD9E2A45441DDF2AACCB4685141AFC6E13DE1A4544107A986A6BD685141EC9D55BFDFA454417B0B14C4C768514170B3365EDEA4544173838280D06851411B07851ADDA45441E410D2DBD7685141029940F4DBA454416137289BDD685141E92AFCCDDAA454412697D6ACDF685141ABB56C1DDAA454416BB54BC7DF6851415D1E2399D9A45441B81E857BDF6851417B14AEA7D9A45441D7A370BDDB685141F6285C5FDAA454413D0AD7E3C1685141D7A3704DDEA45441AE47E19AA76851413D0AD7F3E1A454415C8FC205A56851419A9999B9E1A4544185EB5198A36851419A999999E1A45441F6285C9FA1685141E17A14EEE1A45441D7A370BD9C685141000000C0E2A45441EC51B8DE986851415C8FC265E3A454419A9999D9946851411F85EB11E4A45441E17A14EE936851419A999939E4A45441333333438F6851411F85EBB1E4A45441AD3512A08E68514190A829E0E4A4544173BA8D538F685141137FF3D6E5A454411FACF73E90685141B2393B2FE6A45441EFA4ACB49068514120B6156AE6A454416AF6C4B193685141137FF3D6E5A45441F3B521D59768514199CBF608E5A45441AC1AE5B19D6851411DE1D7A7E3A45441EBCBABC0A268514111AAB514E3A45441D6D0C08BA668514136B1009FE2A45441EFDC20E1A9685141982DDBD9E2A454410103000000010000004E00000047CA54DA76675141ACB92F4FC5A4544170E214857D67514104D93A84CBA454414FEC3E1B85675141EF7B6B7ED1A45441C34ECC388F675141F38CE09ED8A454412843153098675141F6FF3990DDA45441B513E773A3675141C8342664E2A4544197F24ECCAD67514181FBCD11E6A454413A5C2774B767514152929EB6E8A4544148316536BA675141088408A2E9A45441654E3AACC46751419BA54996EBA45441812FD8C3CA67514178D5209FECA45441F280F0C0CD675141E651FBD9ECA454414B3E1725D66751410BF76193EEA4544173B8BBA0DA67514192E180F4EFA45441FBDE1160E06751416F1158FDF0A45441AEF2658CEF675141023399F1F2A4544145251CA1F8675141B82403DDF3A454411ACD616602685141F699928DF4A454411F15F9190A6851419554DAE5F4A454416E703BAD146851413F0F223EF5A45441AFBF1DEB1B6851413F0F223EF5A454416A5B035B22685141D1924703F5A45441DC866EE52B685141F699928DF4A454419722545532685141EA6270FAF3A454416D06D17840685141313AE47BF2A4544168537DF74B6851413DD3EADFF0A454416C020E475568514185AA5E61EFA45441701383675C6851419E7A8758EEA454417DE4FDF7736851415330BAE5EAA454410E64608B886851417562C7ADE7A454415A4C492D8E6851418D32F0A4E6A454411E0EDC0F8E685141137FF3D6E5A45441341BFBCB8D68514113E3481CE5A45441A4703DBA88685141C3F5288CE6A45441F6285CFF786851411F85EBD1E8A454417B14AE7765685141295C8FE2EBA45441A4703D6A60685141E17A14AEECA45441CDCCCC5C566851411F85EB41EEA45441B81E854B55685141CDCCCC6CEEA454413D0AD7D346685141713D0A67F0A454418FC2F5C83D685141333333A3F1A45441C3F528DC3C685141333333C3F1A45441C3F5284C3568514185EB5188F2A4544152B81E752C685141EC51B86EF3A45441B81E858B29685141AE47E1BAF3A454417B14AEB727685141A4703DEAF3A45441A4703DEA266851410AD7A3F0F3A4544133333373226851415C8FC215F4A45441666666661A6851418FC2F558F4A45441D7A370AD176851419A999949F4A454413333337312685141CDCCCC2CF4A454419A9999B90D68514133333313F4A45441666666D609685141D7A370FDF3A45441F6285C8F06685141B81E85EBF3A45441713D0A7704685141713D0AC7F3A45441F6285CAFFF67514148E17A74F3A45441D7A3702DF16751419A999979F2A454410AD7A320DA6751410AD7A330EFA454419A999979D6675141295C8FA2EDA4544185EB5138C7675141713D0AA7EAA4544148E17A94C4675141EC51B89EEAA454410AD7A320C267514166666696EAA4544114AE4711B667514114AE4751E7A454411F85EB51AF675141D7A3707DE5A4544133333383AD675141E17A14DEE4A454415C8FC2C5A2675141B81E852BE1A454411F85EB41A16751415C8FC2A5E0A4544148E17AD494675141666666E6DAA4544185EB51F892675141A4703D0ADAA45441666666B6846751418FC2F578D0A454411F85EBB17E675141F6285CAFCBA454419A9999E97D675141F6285C0FCBA4544185EB51B87167514148E17A54BFA45441333333936B675141F6285C7FB8A454411CA1592569675141B13CC222B5A454417EBB15796B675141FB7A19E5B8A454414457FBE8716751416D086940C0A4544147CA54DA76675141ACB92F4FC5A45441010300000001000000190000003D0AD7432B6751415C8FC24558A45441CADA09EE2F6751415D5D846260A45441F1BBA70536675141610C15B269A45441A1BE86113E6751416890E3C375A45441BF7462EB4667514126061CC182A454419658DF0E5567514131397B2298A454415D2BE7115C6751418094BDB5A2A45441FE2166C860675141903E393AA8A454417B48BC8766675141DEFB5F9EB0A454410E6AFD7B6867514134462D11B4A454414CD75BFF68675141215963E5B4A45441295C8F32686751410AD7A3B0B2A4544152B81E856767514114AE47D1B0A45441C3F5283C61675141295C8F32A7A454413333333360675141C3F5289CA5A45441713D0AA75F675141666666C6A4A45441B81E854B5E675141AE47E1FAA4A45441E17A14BE5D6751415C8FC225A4A454419A9999F94E6751415C8FC2F58DA4544148E17A944467514152B81E557EA45441AE47E1EA426751415C8FC2D57BA454417B14AE473A6751418FC2F5D86EA45441EC51B87E316751413D0AD7A361A454419A9999B930675141B81E857B60A454413D0AD7432B6751415C8FC24558A4544101030000000100000028000000E2483754EF665141DD608787FDA354413DDB9B7AFA665141CF8786930FA45441BE744B2B056751416ACBB1C81FA454413CD7D8480F6751414CE6507F2EA4544111E102DF16675141F2864BBA38A454414592C9ED1B675141D190755040A4544131D31517246751411453B17F4CA454417084DC2529675141F593FDA854A454413D0AD7432B6751415C8FC24558A454411F85EBC128675141B81E853B52A454416666667621675141D7A3709D47A45441333333C31F6751413D0AD72345A45441666666A61B6751415C8FC2253FA45441295C8F92146751418FC2F55834A45441000000800D675141B81E858B29A45441666666360C675141AE47E19A27A45441F6285C8F0B6751416666660628A45441F6285C2F026751411F85EB9119A45441CDCCCCFCFC665141295C8FD211A4544148E17AC4F6665141A4703D6A08A454418FC2F5F8EF6651418FC2F5A8FCA3544166666666EC665141CDCCCCFCF6A35441713D0A07E9665141EC51B8DEF1A35441AE47E1EAE66651411F85EBD1EEA354413D0AD7E3E0665141713D0AB7E6A3544114AE4741D966514166666676DBA35441EC51B85ED666514166666636D7A3544152B81E75C8665141000000A0C6A35441713D0AD7C5665141295C8F72C4A35441EC51B89EC56651411F85EBE1C4A35441F2C316A9CA66514116F8E9B8CAA354414C1A4471D1665141F501144FD2A35441BDA793CCD8665141996BECF6DBA35441D8510F51DE665141E728135BE4A35441ABBD1DB8E366514165ED8449ECA35441E899A604E666514143BB7781EFA3544132465848E7665141EEACE16CF0A354417DF2098CE8665141CA43B211F3A3544136B9B139EC665141A8AFC078F8A35441E2483754EF665141DD608787FDA3544101030000000100000013000000AE47E19A7D665141CDCCCCBC91A35441784725AE886651419A3BFE2D99A354411BB1FD5592665141921551BB9FA3544183DC68E09B6651414DB1362BA6A354414052A1DDA866514176671205AFA35441530D9282B56651417B16A354B8A35441295C8FD2B56651411F85EB51B8A35441B81E859BB666514166666626B7A354415C8FC295A466514148E17A14ABA35441713D0A57A266514114AE47A1A9A354418FC2F5589E665141AE47E10AA7A35441AE47E16A95665141B81E851BA1A35441666666A6946651418FC2F598A0A35441F6285CCF92665141713D0A079FA3544152B81E4592665141EC51B8AE9EA35441A4703DAA9166514185EB51C89EA35441D7A370BD8C6651417B14AE279BA354413D0AD7037E665141A4703D2A91A35441AE47E19A7D665141CDCCCCBC91A354410103000000010000000400000052B81E8574665141333333838BA35441AE47E19A7D665141CDCCCCBC91A354418FC2F5D87A66514152B81ED58FA3544152B81E8574665141333333838BA354410103000000010000000F000000D67F2B676C665141E6EB72A385A35441520866F76F665141927BF8BD88A3544152B81E8574665141333333838BA35441713D0AE76D66514152B81ED585A354417B14AE876C6651413333335380A3544114AE47A16C665141D7A3707D7AA35441CDCCCC4C6E665141CDCCCC7C69A354411F85EB116E665141295C8F6269A354415CF618166D6651418CEE05F368A354419A41BE496C6651418ED02AA06AA35441BF4809D46B665141AC8B1B4577A3544181D379236B665141D505C0C07BA35441EE4F545E6B665141E27819B280A35441BF4809D46B6651418F089FCC83A35441D67F2B676C665141E6EB72A385A35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>449045 - 3154842
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -25 </desc>
+<a>
+01060000000100000001030000000100000037000000A40EBEF0073C51411B732C83F652544148E17AE40A3C514114AE4771F8525441F6285C9F0D3C5141A4703DCAFA52544152B81E45113C5141C3F528FCFC52544185EB5198153C514114AE4781FE52544152B81E45183C5141AE47E18AFF5254419A9999E91C3C5141295C8FC2FF52544148E17AA41F3C5141A4703D6A00535441CDCCCC4C233C5141E17A142E015354415C8FC2F5263C5141B81E851B02535441EC51B8AE293C5141F6285C7F0153544114AE47212D3C5141E17A149E01535441C3F5285C333C5141666666C602535441A4703D8A353C51413D0AD7530253544133333303373C5141000000B000535441713D0AE7373C514133333323FC5254416DA29EE8373C5141F9B7B2FDFA525441010D804B423C51415BD1A6D5FB525441B2585499433C5141C35919FB04535441777F3EA1453C51419DA1D3090653544197EEC7D7483C514151E4BFC9005354415A803603503C51414F21FA71F9525441C3F528EC553C514148E17A64F3525441150235335B3C51418550AFECF352544118695A75603C51411AC977B3EE52544168FFC92A613C51413F1D4D17ED525441D5A7E4E1613C5141FFE45444EB525441F686B3D8623C51416EC3051AEA525441A35C7557663C5141CA603704E6525441CCF6D7196B3C5141520E2674E0525441FF51C62A6C3C5141387D2435DF5254413F338ABD6C3C5141DEFD37EFDE5254411842CE516D3C5141E5F3E5E1DE5254417C91DA516E3C514140FAE4CADE525441D84513436F3C5141890139B5DE525441D89F00BE723C5141DE222E65DE52544171FBC8FA753C5141F28EB81ADE52544114EB940E793C5141792B8180DE525441F2BBA5A47A3C514126ABA07BDD5254413BFEECB47E3C514155E18920DB5254415B80CF0B823C514148BA4DE9D85254410A3240E7793C514108E3CC34D652544140785F8D753C51416C152F09D55254415DF1BF20713C5141977986D8D35254410D8BF4456D3C514169ACD8B9D2525441A2A222D2683C514105CCF064D1525441F40B2140643C5141D16AD4EBCF525441C85C7ADA5C3C514111237A89CD52544143C858A3573C5141C0FB36D2CB5254417AE3E448533C514109B7A737CA525441CB747F7F413C5141CD0C34AAC35254418DD4D7D2403C5141987C3A36C3525441713D0A07383C51419A9999E9E4525441EC51B8FE083C5141A4703D7AE4525441A40EBEF0073C51411B732C83F6525441
+</a>
+
+<b>
+010600000001000000010300000001000000130000000C314678093C5141303F5D7BE452544103AB5A01093C514150AD437AE452544160D893FB083C51412FE7FAAFE45254416CD3665B083C514141829E28EE525441B1A224B8073C51417BF65930F6525441D5719D640F3C5141000D441CFC5254413FE1485A173C514135CC8C59FF52544195B82C03283C5141C854E5A901535441769BD55F313C5141EA3E29DD02535441D70E2B9E353C514139AEC04F0253544189E4CCA2363C514157FB090401535441E6C45297373C5141FEC3A1C8FE52544145652BE3373C5141B32F90C6FC5254416DA29EE8373C5141F9B7B2FDFA525441DF0061F0373C51413F5E075CF5525441B382A403383C51411356D560E7525441713D0A07383C51419A9999E9E45254416B5B3274123C514161D4A290E45254410C314678093C5141303F5D7BE4525441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>449045 - 3287152
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -25 </desc>
+<a>
+01060000000100000001030000000100000037000000A40EBEF0073C51411B732C83F652544148E17AE40A3C514114AE4771F8525441F6285C9F0D3C5141A4703DCAFA52544152B81E45113C5141C3F528FCFC52544185EB5198153C514114AE4781FE52544152B81E45183C5141AE47E18AFF5254419A9999E91C3C5141295C8FC2FF52544148E17AA41F3C5141A4703D6A00535441CDCCCC4C233C5141E17A142E015354415C8FC2F5263C5141B81E851B02535441EC51B8AE293C5141F6285C7F0153544114AE47212D3C5141E17A149E01535441C3F5285C333C5141666666C602535441A4703D8A353C51413D0AD7530253544133333303373C5141000000B000535441713D0AE7373C514133333323FC5254416DA29EE8373C5141F9B7B2FDFA525441010D804B423C51415BD1A6D5FB525441B2585499433C5141C35919FB04535441777F3EA1453C51419DA1D3090653544197EEC7D7483C514151E4BFC9005354415A803603503C51414F21FA71F9525441C3F528EC553C514148E17A64F3525441150235335B3C51418550AFECF352544118695A75603C51411AC977B3EE52544168FFC92A613C51413F1D4D17ED525441D5A7E4E1613C5141FFE45444EB525441F686B3D8623C51416EC3051AEA525441A35C7557663C5141CA603704E6525441CCF6D7196B3C5141520E2674E0525441FF51C62A6C3C5141387D2435DF5254413F338ABD6C3C5141DEFD37EFDE5254411842CE516D3C5141E5F3E5E1DE5254417C91DA516E3C514140FAE4CADE525441D84513436F3C5141890139B5DE525441D89F00BE723C5141DE222E65DE52544171FBC8FA753C5141F28EB81ADE52544114EB940E793C5141792B8180DE525441F2BBA5A47A3C514126ABA07BDD5254413BFEECB47E3C514155E18920DB5254415B80CF0B823C514148BA4DE9D85254410A3240E7793C514108E3CC34D652544140785F8D753C51416C152F09D55254415DF1BF20713C5141977986D8D35254410D8BF4456D3C514169ACD8B9D2525441A2A222D2683C514105CCF064D1525441F40B2140643C5141D16AD4EBCF525441C85C7ADA5C3C514111237A89CD52544143C858A3573C5141C0FB36D2CB5254417AE3E448533C514109B7A737CA525441CB747F7F413C5141CD0C34AAC35254418DD4D7D2403C5141987C3A36C3525441713D0A07383C51419A9999E9E4525441EC51B8FE083C5141A4703D7AE4525441A40EBEF0073C51411B732C83F6525441
+</a>
+
+<b>
+010600000001000000010300000001000000130000000C314678093C5141303F5D7BE452544103AB5A01093C514150AD437AE452544160D893FB083C51412FE7FAAFE45254416CD3665B083C514141829E28EE525441B1A224B8073C51417BF65930F6525441D5719D640F3C5141000D441CFC5254413FE1485A173C514135CC8C59FF52544195B82C03283C5141C854E5A901535441769BD55F313C5141EA3E29DD02535441D70E2B9E353C514139AEC04F0253544189E4CCA2363C514157FB090401535441E6C45297373C5141FEC3A1C8FE52544145652BE3373C5141B32F90C6FC5254416DA29EE8373C5141F9B7B2FDFA525441DF0061F0373C51413F5E075CF5525441B382A403383C51411356D560E7525441713D0A07383C51419A9999E9E45254416B5B3274123C514161D4A290E45254410C314678093C5141303F5D7BE4525441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981195 - 226931
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -484 </desc>
+<a>
+01060000000100000001030000000200000010010000CDCCCC9CC6EA5041B81E851B3FAB5441AE47E15AD0EA5041B81E851B45AB5441E17A14BEDBEA5041EC51B8EE48AB54411F85EB61EAEA50419A9999D94DAB54411F85EBF1F0EA5041F6285CCF4FAB5441295C8F22FAEA504152B81E8552AB5441713D0AB7FEEA5041C3F5287C5AAB5441CDCCCCEC09EB5041CDCCCCAC5DAB5441C3F5280C12EB50415C8FC27560AB5441A4703DBA1AEB5041D7A3706D61AB5441AAFB6E1F1CEB5041408AA58B61AB5441C3F5287C1CEB5041713D0A3761AB54414D2E6D021DEB5041C0B8D79E61AB544152B81E751FEB50413D0AD7D361AB5441E1A89C2A25EB50415342F85162AB5441295C8F9225EB5041CDCCCCFC61AB54410AD7A3A026EB50417B14AEE761AB5441DB40F43D27EB50410260D37F62AB5441C3F5286C29EB5041000000B062AB544152B81E1534EB50417B14AE9764AB5441666666663DEB5041D7A3700D65AB5441B81E85EB47EB50417B14AE0766AB5441713D0A975CEB504148E17A2463AB54413D0AD7936BEB50411F85EB5165AB54413D0AD7C36FEB5041E17A14BE70AB5441D7A3701D74EB50415C8FC27579AB5441333333337BEB5041A4703D6A80AB54419D75AA1582EB50419F24265284AB5441AE47E1DA82EB50411F85EB1184AB5441713D0A7783EB5041C3F5281C84AB5441295C8FE284EB5041713D0AA785AB54418DC03A2485EB50413A6B8B4387AB54413D0AD78389EB50417B14AE878BAB5441C3F5288C93EB5041E17A144E98AB5441E17A14EE9EEB5041A4703D1AA3AB54410AD7A3D0ACEB5041EC51B86EABAB544148E17A44B4EB5041E17A140EB4AB54413D0AD7E3BDEB50419A999919BBAB544152B81E55C5EB504166666616B9AB54419A999929C7EB5041295C8F62B4AB5441A4703D7ACDEB504148E17A74ABAB5441333333B3CDEB504152B81E05A1AB54418FC2F548CBEB5041CDCCCCEC95AB544185EB51C8C9EB50417B14AE678AAB5441E17A14AEC7EB5041CDCCCC8C7AAB54417B14AEC7CEEB50419A99995979AB54411F85EB11CAEB5041A4703DDA6FAB54410AD7A3D0C5EB504148E17AD466AB5441F6285C8FC1EB5041B81E859B5DAB544114AE4781BEEB5041713D0AF757AB5441000000D0B9EB5041D7A370AD4FAB544114AE4761B5EB50410AD7A3D047AB5441C3F528FCA5EB504148E17A9446AB5441E17A146E95EB50419A9999C943AB5441B81E856B8CEB5041B81E858B40AB5441C3F5289C7EEB5041E17A148E3BAB54414B6AA7AA7DEB50419F755A393BAB54417B14AE977DEB5041B81E855B3BAB5441F6285CEF7CEB5041F6285C7F3BAB5441F6285CEF7CEB5041F6285C0F3CAB5441B81E853B7CEB5041F6285C6F3CAB5441B81E853B7CEB5041B81E851B3CAB5441F6285CAF77EB5041B81E85BB3BAB54413D0AD7C375EB5041F6285C0F3CAB5441B81E851B75EB5041F6285CFF3CAB5441F6285C1F74EB5041B81E85CB3DAB5441F6285C5F73EB5041B81E853B3DAB5441B81E850B73EB5041F6285C6F3CAB54413D0AD76372EB5041333333033CAB54413D0AD7E370EB5041333333333CAB54417B14AEB76FEB5041B81E857B3CAB54417B14AE676EEB5041F6285C6F3CAB5441F6285CEF6DEB5041333333033CAB5441B81E856B6DEB5041F6285C1F3BAB5441B81E85FB6DEB50417B14AEA73AAB5441F6285C7F6EEB5041F6285C1F3BAB5441B81E854B6FEB50417B14AE273CAB5441F6285CFF6FEB5041B81E85BB3BAB54417B14AE1770EB5041F6285CEF3AAB5441B81E854B6FEB5041F6285CBF3AAB54417B14AE876FEB5041F6285C2F3AAB54417B14AEC76EEB5041333333A338AB5441F6285CEF6DEB50413333337338AB54413D0AD7536DEB50413333331338AB54413D0AD7F36CEB50413333338337AB5441B81E854B6CEB50417B14AED737AB54417B14AEB76CEB50413333334338AB5441F6285C9F6CEB5041B81E85EB38AB54417B14AE976BEB50417B14AE2739AB5441F6285CAF6BEB5041B81E852B3BAB54413D0AD7D36BEB5041B81E85EB3BAB5441F6285C4F6BEB5041B81E857B3CAB54413D0AD7536AEB5041B81E851B3CAB5441B81E850B6AEB5041333333C33CAB5441B81E854B66EB5041B81E859B3DAB5441B81E857B66EB5041333333333CAB5441F6285CDF65EB50417B14AED73AAB5441F6285C4F65EB50417B14AE9738AB54417B14AE7764EB5041333333A338AB54417B14AE5763EB5041B81E857B39AB5441F6285C7F62EB50417B14AEE739AB5441B81E85FB61EB5041B81E859B3AAB54417B14AE8760EB5041B81E853B3AAB5441B81E852B5FEB5041F6285C5F3AAB5441B81E857B5DEB5041F6285C0F39AB5441F6285C6F5DEB5041B81E858B38AB5441B81E855B5FEB50413333335337AB54417B14AE2760EB50417B14AE1737AB54417B14AEE760EB50413333339336AB54417B14AEC762EB5041F6285C6F36AB5441B81E85DB63EB50413333330336AB54417B14AEA764EB5041F6285C0F36AB5441B81E852B65EB50417B14AEC735AB54413FDB583F65EB504122CD580035AB5441524C32AA5CEB50413430623834AB54413D0AD7A35CEB5041B81E853B34AB54413D0AD7A35CEB5041B81E85CB34AB54417B14AE775BEB50413333337335AB54417B14AEF759EB50417B14AE9735AB54417B14AE6759EB50417B14AEE736AB5441F6285C0F5AEB5041333333A338AB54417B14AEE75AEB50417B14AE8739AB54417B14AE875AEB5041333333F339AB5441B81E85FB58EB5041B81E85BB38AB54417B14AE2757EB5041333333D338AB54417B14AE3756EB50417B14AE6738AB5441F6285C2F55EB5041333333F336AB5441F6285CDF53EB5041B81E85DB36AB54417B14AE3753EB5041F6285C2F37AB54413D0AD78352EB50417B14AE6738AB5441B81E854B51EB50413333337338AB5441B81E85EB50EB5041B81E852B38AB5441B81E85BB50EB50413333333336AB5441B81E852B50EB50417B14AE4737AB54413D0AD7834FEB50413333332337AB5441F6285CFF4EEB5041B81E85DB36AB5441F6285C1F50EB50417B14AE5736AB54417B14AE3750EB50413333337335AB5441F6285CEF4FEB5041B81E85FB34AB54417B14AE574EEB5041F6285CBF34AB5441F6285CDF4DEB5041B81E852B35AB5441B81E851B4EEB50413333333336AB5441F6285CAF4DEB50413333335337AB5441F6285C4F4DEB50417B14AE7737AB54413D0AD7B34CEB5041F6285CCF36AB54417B14AED749EB50413333339336AB5441F6285C5F49EB5041B81E85EB35AB5441B81E856B49EB5041B81E855B35AB5441F6285C3F48EB50417B14AE6735AB5441F6285CAF47EB5041B81E852B35AB54413D0AD74347EB5041F6285C5F34AB5441F6285C8F46EB5041F6285C2F34AB54417B14AEB745EB5041F6285C8F34AB5441B81E855B44EB5041F6285C8F34AB5441B81E853B43EB5041F6285C9F33AB54413D0AD7F342EB50417B14AEB733AB5441B81E857B42EB5041F6285C0F33AB54417B14AEB73FEB5041B81E854B33AB54417B14AE273FEB50413333332334AB54413D0AD7A33EEB5041333333C333AB5441F6285CEF3DEB5041F6285CFF33AB5441B81E853B3DEB5041333333C333AB54413D0AD7E33AEB5041333333B334AB54417B14AE5739EB5041F6285C9F33AB5441B81E852B38EB5041F6285C1F32AB54417B14AE0738EB5041F6285CBF31AB54417B14AE8736EB50413333331332AB54417B14AEC735EB5041B81E85EB32AB54413D0AD74335EB5041333333B331AB5441F6285CBF34EB50413333335331AB5441B81E851B33EB50417B14AE4731AB54417B14AE3732EB5041F6285C5F31AB5441F6285C8F31EB50417B14AEF72FAB5441F6285C8F2EEB5041333333D32FAB5441B81E856B2EEB50413333333330AB5441B81E854B2DEB5041B81E856B31AB54413D0AD7D32CEB50413333339330AB54413D0AD7132CEB5041F6285C6F30AB5441F6285CEF2BEB5041F6285CCF30AB54413D0AD7D329EB50417B14AE1731AB5441F6285C4F29EB5041F6285C0F30AB54413D0AD7A329EB5041B81E85BB2FAB54417B14AE9729EB5041B81E852B2FAB5441F6285CFF27EB5041F6285CEF2EAB54417B14AE5727EB5041333333B32EAB54415C8E932427EB504117F2D1F72DAB54417B14AE871CEB50417B14AE172CAB5441938E75F215EB50414A7AC3DB2AAB54417B14AEE715EB5041B81E859B2BAB5441F6285C5F16EB5041333333E32BAB54413D0AD76315EB5041333333132CAB5441B81E85BB14EB5041B81E85CB2BAB54413D0AD77314EB5041333333C32AAB5441A836271314EB50417856E9812AAB54413BA02AA912EB5041DB690D3E2AAB5441F6285C9F12EB5041B81E854B2AAB54413D0AD73312EB5041333333532BAB5441B81E854B12EB50417B14AE072CAB5441F6285CDF11EB5041B81E85BB2CAB54417B14AE3711EB5041F6285C3F2DAB5441B81E856B10EB5041B81E857B2DAB5441B81E85DB0FEB50417B14AE672CAB54413D0AD75310EB5041B81E85AB2AAB5441F6285C4F0EEB50417B14AEB72AAB54417B14AE470DEB5041F6285CDF29AB5441E9670D430DEB5041B20DF53A29AB5441650793D107EB50419C55BB3528AB5441F6285CCF06EB50413333334329AB54417B14AE0705EB5041F6285C2F28AB54419E7906EF04EB5041A0FD47AB27AB5441EC51B83E03EB5041A4703D5A27AB5441886040AC01EB50419B8B563327AB5441F6285C9F00EB5041B81E857B27AB54417B14AEF7FFEA50413333338328AB54417B14AEC7FFEA5041B81E852B29AB54413D0AD743FFEA5041F6285CDF29AB5441F6285CEFFEEA50417B14AE6729AB54413D0AD733FDEA50417B14AE9729AB54413D0AD743FCEA5041B81E854B2AAB54413D0AD783FBEA5041F6285C6F2AAB54413D0AD793FAEA5041B81E856B2BAB54417B14AEF7F9EA5041B81E850B2BAB5441F6285CAFF9EA5041B81E859B28AB5441F6285CEFF8EA50413333335328AB5441F6285C9FF7EA50413333332328AB5441B81E85EBF6EA5041B81E85AB27AB54413D0AD703F7EA5041F6285C4F26AB544198DA09F1F6EA5041EA0CCC2926AB5441D965C6D0F1EA5041DCB4F4AA25AB54413D0AD7C3F1EA5041333333E325AB54413D0AD7F3F1EA50417B14AEC726AB54417B14AE27F1EA5041B81E854B27AB54417B14AEF7F0EA50417B14AE1728AB54413D0AD713F3EA5041B81E85CB28AB54417B14AE57F4EA50413333338328AB54417B14AE47F5EA50413333331329AB5441B81E853BF5EA5041333333D329AB5441B81E859BF5EA5041B81E850B2BAB5441B81E852BF6EA5041B81E85CB2BAB5441F6285C3FF7EA5041F6285C4F2CAB5441B81E85DBF7EA5041F6285C3F2DAB5441F6285C8FF8EA5041F6285C6F2DAB5441F6285C8FF8EA5041F6285CCF2DAB5441B81E85FBF5EA50417B14AEF72CAB5441B81E85DBF1EA5041F6285C9F2AAB54413D0AD793EEEA5041B81E85EB29AB5441F6285C6FEBEA5041B81E854B2AAB5441B81E853BECEA50417B14AE2727AB5441F6285C3FEBEA5041B81E85BB26AB5441F6285CAFEAEA50417B14AE2727AB54417B14AED7E9EA5041F6285C3F27AB5441F6285C5FE9EA5041B81E853B28AB54413D0AD733E8EA5041B81E859B28AB54413D0AD753E6EA50413333332328AB54413D0AD793E5EA5041B81E856B28AB5441B81E85BBE4EA5041B81E852B29AB54417B14AE27E5EA5041B81E851B27AB54417B14AE37E4EA5041F6285CDF26AB5441B81E853BE3EA50413333333327AB54413D0AD753E3EA50417B14AE0729AB54417B14AE47E3EA50417B14AE272AAB5441B81E854BE2EA50417B14AE572AAB54413D0AD7A3E1EA5041B81E851B27AB5441B81E855BE1EA5041F6285CDF26AB54417B14AE47E0EA50413333330327AB54413D0AD733DFEA5041F6285CAF26AB5441F6285C6FDFEA5041B81E856B25AB5441F18940AFDFEA5041B113D6CF24AB544148E17A14D1EA50410AD7A37024AB5441713D0A77CCEA50417B14AE572DAB54411F85EBB1C9EA5041A4703D5A35AB5441CDCCCC9CC6EA5041B81E851B3FAB54410F00000048E17A84A0EB5041295C8F0250AB54410AD7A370A0EB5041F6285CFF52AB5441EC51B88EA0EB50418FC2F59854AB5441A4703DDA9FEB5041CDCCCCFC58AB544152B81E759FEB5041EC51B87E5CAB5441EC51B82EA0EB50418FC2F56862AB54419A999939A0EB504114AE47C165AB5441666666969DEB50413333338360AB544148E17AB49CEB50417B14AE475EAB54411F85EB719CEB50413D0AD7935CAB5441B81E859B9BEB5041B81E85FB54AB54410AD7A3209AEB5041B81E852B4CAB544114AE478199EB50410000003047AB5441F6285C8FA0EB5041F6285C9F4AAB544148E17A84A0EB5041295C8F0250AB5441
+</a>
+
+<b>
+010600000001000000010300000005000000CC000000295C8FA2EBEA5041EC51B8CE12AB5441891B0C89D4EA504180B8342D22AB5441A2A90BD0D4EA50410230B79322AB5441F6285C2FD7EA5041B81E852B23AB54413D0AD7C3D9EA5041B81E856B22AB5441B81E852BDBEA5041B81E856B22AB54413D0AD723DDEA5041B81E85FB22AB54413D0AD713DEEA50417B14AE8721AB54417B14AE27DFEA5041F6285CFF21AB5441F6285C0FDFEA50413333335322AB54417B14AE57DFEA5041F6285CBF22AB54413D0AD7F3DFEA5041F6285C1F23AB5441F6285C2FE0EA50417B14AE9723AB544121CF0BF1DFEA504191FF768124AB544165251CC1DFEA5041A79775D924AB5441B2D7FB5CE6EA5041DF6FF00725AB5441C6CDFE99EEEA504156014A7F25AB54413D0AD7C3F1EA5041333333E325AB5441B81E850BF2EA5041B81E85AB24AB5441F6285CBFF2EA5041B81E854B24AB5441B81E859BF2EA5041333333D323AB54417B14AE37F3EA5041B81E85CB22AB5441B81E85CBF2EA5041333333531FAB5441F6285C1FF3EA5041F6285C9F1EAB5441F6285C0FF4EA50417B14AEB71EAB5441F6285CFFF4EA50417B14AEE721AB54413D0AD783F5EA5041B81E856B22AB54417B14AED7F5EA50417B14AEF723AB54413D0AD703F7EA5041F6285C4F26AB54410DBBF7D4F9EA50414A65A38726AB54413D0AD703FAEA5041B81E85FB25AB54413D0AD723FBEA50417B14AED725AB5441B81E859BFBEA5041F6285C1F26AB5441F6285C4FFCEA5041F6285C4F26AB54413E33E868FCEA5041EB2924BB26AB54417B14AED701EB50417B14AE2727AB54413D0AD7E304EB5041F6285C6F27AB54419F6781F204EB504109D4ECBD27AB5441E287565806EB5041BCED800328AB5441DE84BCBF07EB504172DE584828AB54417B14AED707EB5041F6285C2F28AB54417B14AE070BEB50413333338328AB5441B81E855B0BEB50417B14AEE727AB5441B81E851B0CEB50417B14AEE727AB5441B81E854B0CEB5041F6285C6F27AB5441B81E857B0CEB50417B14AEC726AB54413D0AD7D30BEB5041B81E85CB25AB54417B14AEC70BEB5041B81E853B25AB54413D0AD7A30BEB50417B14AE6723AB5441B81E851B0CEB50413333337323AB54413D0AD7330CEB50413333332325AB5441F6285C2F0DEB5041F6285C7F26AB5441894930400DEB504149558BC528AB54419DED174F0DEB504136A4FC5529AB544183D85F9912EB50418A1C22582AAB5441414F5E9B12EB504113164F552AAB5441F6285C9F12EB5041B81E854B2AAB5441F6285CFF12EB50417B14AEC729AB5441C3A6066B14EB5041EDD11DB32AAB544117A665CE15EB50414BACEBF42AAB54413D0AD7F315EB5041333333C32AAB54417B14AE1716EB5041333333032AAB54417B14AE9717EB5041F6285C6F2AAB5441B81E859B19EB5041B81E857B2AAB54417B14AEF71AEB5041F6285C9F2AAB54417B14AE271BEB5041F6285CCF2AAB5441B81E853B1FEB5041B81E855B2CAB54413D0AD71320EB5041333333E32BAB54413D0AD77320EB5041F6285C5F2BAB54417B14AE1722EB5041333333832BAB54413D0AD72322EB5041F6285CEF2BAB5441B81E85CB22EB5041B81E858B2CAB5441F6285CFF24EB5041B81E85BB2CAB54413D0AD7B325EB5041B81E851B2DAB54417B14AEC726EB5041333333A32CAB54411EC0223227EB50413794541E2EAB5441AEC7D2F629EB5041FC7521A82EAB54413CECD19131EB5041E138DBE82FAB54412EBBD0DE34EB5041C394D07230AB544188FAF89F3BEB5041C162BF6131AB544158CCE52D40EB5041EF6F94D231AB54418648BC0B47EB504126BC4C6A32AB54410BA3B5604AEB5041842A56B132AB54417B14AE974AEB50413333334332AB5441D664380C4BEB5041D7C79EBF32AB5441009566FA4FEB5041EF80BC2833AB5441F151DA975AEB50418432262634AB54413D0AD7A35CEB5041B9FF675034AB54413D0AD7A35CEB5041B81E853B34AB5441F6285CDF5FEB5041333333A332AB54413D0AD76360EB50413333336333AB5441F6285CFF60EB50413333333333AB5441F6285C8F61EB5041F6285C6F33AB54411C29178762EB5041363921C432AB5441365F420F65EB504128A27A3433AB5441654776B365EB50412B8718A834AB5441894A3A4C65EB50414CFD7C1135AB5441BD07629B66EB50411C8F802F35AB5441C25A8CAA6EEB5041A592ECBC35AB5441CCB2672F7DEB5041E00F60B13AAB5441322FD3A77DEB50419B8D78DA3AAB54411E5D1DB47DEB50411E3373A13AAB54410EA7A9707DEB5041E3E3CF6F3AAB54410F2176ED7DEB5041B7D4E0793AAB5441B81E854B7EEB50417B14AE173AAB54413A7ABAEA7CEB5041826CDFC439AB54410CC0D0CC7CEB50416885B5E339AB5441FB7336A67CEB50411883A0233AAB5441F6285C8F7CEB5041333333233AAB54419F76F66F7CEB5041A9B3452D3AAB5441A5A744D77BEB504111BBC2CB39AB54413D0AD7637BEB50413333339339AB54413D0AD7037BEB5041B81E855B38AB54413D0AD7137AEB5041F6285C1F38AB54417B14AE1779EB5041F6285CBF37AB54413D0AD79378EB5041F6285CFF36AB54417B14AE4776EB5041B81E851B36AB54417B14AEB775EB50417B14AE2736AB54413D0AD79375EB50417B14AED734AB54417B14AEB775EB5041F6285C5F34AB5441B81E85AB72EB5041B81E856B34AB54413D0AD70372EB5041F6285C9F33AB54413D0AD7B370EB5041333333D332AB5441F6285C5F70EB5041B81E855B32AB54417B14AE876FEB50417B14AE0732AB5441F6285C2F6DEB50417B14AE972FAB54417B14AE476DEB5041B81E855B2FAB5441F6285CAF71EB5041333333732FAB5441F6285CFF72EB50417B14AEC72FAB5441F6285C1F74EB5041F6285CBF2EAB5441B81E85AB72EB5041F6285C1F2FAB5441B81E855B71EB50417B14AED72EAB5441F6285C9F6FEB5041333333E32EAB5441F6285CAF6EEB5041F6285C5F2EAB54413D0AD7B36DEB50417B14AE772EAB54417B14AEC76BEB5041B81E85DB2DAB54417B14AEC768EB50417B14AE172EAB54413D0AD7B364EB5041333333832EAB54413D0AD79363EB5041F6285CEF2EAB54413D0AD7A362EB5041B81E85BB2FAB5441B81E850B61EB50413333336330AB5441B81E850B5EEB5041B81E857B30AB54413D0AD7C35AEB5041B81E856B2EAB5441B81E85EB59EB50417B14AE472EAB5441F6285CAF59EB50417B14AEB72DAB5441B81E852B59EB50417B14AE272DAB54413D0AD71359EB5041F6285C4F2CAB5441B81E85FB55EB5041F6285CCF2AAB54413D0AD74353EB5041B81E854B2AAB5441F6285CAF50EB5041B81E854B2AAB5441B81E85DB51EB5041B81E85BB29AB54417B14AE6753EB5041F6285CDF29AB5441B81E851B54EB50413333337329AB54413D0AD75355EB5041B81E85EB29AB5441B81E855B56EB5041333333032AAB54413D0AD77356EB50417B14AE3729AB54417B14AE0756EB50417B14AEF726AB54417B14AEC753EB5041F6285CEF25AB5441F6285CAF56EB5041333333A323AB5441000000B056EB5041F6285C0F22AB5441B81E859B46EB5041F6285C0F21AB54417B14AED746EB5041B81E85AB21AB5441B81E853B46EB5041F6285C2F22AB54413D0AD77341EB50417B14AE6723AB5441F6285C4F41EB50413333333324AB54417B14AE1743EB50417B14AE8724AB54417B14AE3744EB5041B81E854B24AB54413D0AD76345EB5041333333F324AB5441F6285C9F45EB5041B81E85CB25AB54413D0AD76345EB5041B81E85CB28AB54413D0AD70342EB5041B81E859B28AB54413D0AD7733EEB5041F6285C4F29AB54413D0AD7433BEB5041333333532BAB5441B81E85FB3AEB5041F6285CEF2BAB5441F6285C7F38EB5041F6285CEF2BAB54417B14AE7737EB5041333333532BAB54413D0AD7F336EB5041F6285CAF29AB54417B14AE5736EB5041333333E328AB54417B14AE5736EB5041F6285CCF27AB5441B81E85EB35EB50417B14AE7725AB5441B81E855B35EB50417B14AEB724AB5441F6285C9F36EB50413333334320AB54417B14AE9732EB50417B14AE0720AB54413D0AD7A332EB5041F6285CDF20AB54417B14AE0732EB5041F6285CCF21AB5441F6285C6F30EB50417B14AEB721AB5441B81E855B2FEB5041B81E854B21AB54417B14AEC72FEB5041333333E31FAB54417B14AE6725EB5041A4703D0A1FAB5441B81E853B16EB5041333333831CAB54413D0AD78316EB5041F6285C4F1DAB54417B14AEA713EB5041333333D31DAB5441F6285CCF12EB5041F6285CEF1CAB54417B14AE3711EB5041F6285C2F1CAB5441F6285CEF10EB50417B14AEB71BAB54417B14AE8703EB50413333336319AB54413D0AD783FEEA5041F6285C4F17AB54417B14AE27FDEA50417B14AE5718AB5441B81E856BFBEA5041F6285C6F18AB54417B14AEF7F9EA5041333333D317AB54417B14AEE7F7EA5041B81E855B17AB5441B81E852BF3EA5041B81E851B15AB5441B81E850BF2EA5041F6285C1F14AB5441295C8FA2EBEA5041EC51B8CE12AB544111000000B81E857BEBEA5041F6285C0F1BAB54413D0AD723ECEA50417B14AEE71BAB5441F6285C5FECEA5041F6285CDF1DAB54413D0AD7F3EBEA5041B81E854B1EAB54413D0AD763EBEA5041F6285CCF1EAB5441B81E854BEBEA5041B81E85EB20AB5441F6285CDFEAEA50413333332322AB5441B81E85BBE7EA50417B14AE9723AB5441B81E856BE6EA5041B81E855B23AB5441B81E856BE6EA50417B14AE5721AB54413D0AD7B3E6EA5041B81E85FB1FAB54413D0AD7F3E5EA5041B81E851B1EAB54413D0AD723E6EA50417B14AE671DAB54417B14AE57E8EA5041F6285C8F1CAB5441F6285CFFE8EA5041B81E85AB1BAB54417B14AEF7EAEA5041333333D31AAB5441B81E857BEBEA5041F6285C0F1BAB54410B000000B81E85EB20EB50413333337326AB54413D0AD70321EB50413333338325AB5441B81E854B21EB50417B14AE4725AB5441F6285CCF21EB5041F6285C8F25AB5441B81E853B22EB50413333337326AB54413D0AD7B322EB50417B14AEF726AB5441B81E85DB21EB5041F6285C5F28AB54417B14AE5721EB50417B14AE6729AB54413D0AD70321EB5041333333E328AB54417B14AE6720EB5041B81E856B28AB5441B81E85EB20EB50413333337326AB544110000000B81E85AB1EEB5041F6285C3F24AB5441B81E851B1EEB5041B81E85CB22AB5441B81E854B1EEB50413333332322AB5441F6285CAF1DEB50413333339321AB5441F6285C8F1CEB5041F6285C3F21AB54413D0AD7531CEB5041B81E858B20AB54413D0AD7E31CEB50413333331320AB54417B14AEA71FEB5041F6285C8F1FAB5441B81E85CB1FEB50417B14AE0720AB54417B14AE7722EB50417B14AE3720AB5441B81E85CB22EB5041F6285C6F21AB5441B81E851B21EB5041F6285C9F21AB54417B14AE9720EB5041B81E856B22AB5441B81E85EB20EB5041F6285CAF23AB5441F6285C8F1FEB5041F6285C3F24AB5441B81E85AB1EEB5041F6285C3F24AB544107000000F6285C0F48EB5041F6285C0F27AB54413D0AD7C348EB50413333333327AB54413D0AD75349EB5041F6285C2F28AB54413D0AD76348EB5041333333E328AB5441F6285C4F47EB50413333331329AB5441F6285C1F47EB5041F6285C6F27AB5441F6285C0F48EB5041F6285C0F27AB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981195 - 422997
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -484 </desc>
+<a>
+01060000000100000001030000000200000010010000CDCCCC9CC6EA5041B81E851B3FAB5441AE47E15AD0EA5041B81E851B45AB5441E17A14BEDBEA5041EC51B8EE48AB54411F85EB61EAEA50419A9999D94DAB54411F85EBF1F0EA5041F6285CCF4FAB5441295C8F22FAEA504152B81E8552AB5441713D0AB7FEEA5041C3F5287C5AAB5441CDCCCCEC09EB5041CDCCCCAC5DAB5441C3F5280C12EB50415C8FC27560AB5441A4703DBA1AEB5041D7A3706D61AB5441AAFB6E1F1CEB5041408AA58B61AB5441C3F5287C1CEB5041713D0A3761AB54414D2E6D021DEB5041C0B8D79E61AB544152B81E751FEB50413D0AD7D361AB5441E1A89C2A25EB50415342F85162AB5441295C8F9225EB5041CDCCCCFC61AB54410AD7A3A026EB50417B14AEE761AB5441DB40F43D27EB50410260D37F62AB5441C3F5286C29EB5041000000B062AB544152B81E1534EB50417B14AE9764AB5441666666663DEB5041D7A3700D65AB5441B81E85EB47EB50417B14AE0766AB5441713D0A975CEB504148E17A2463AB54413D0AD7936BEB50411F85EB5165AB54413D0AD7C36FEB5041E17A14BE70AB5441D7A3701D74EB50415C8FC27579AB5441333333337BEB5041A4703D6A80AB54419D75AA1582EB50419F24265284AB5441AE47E1DA82EB50411F85EB1184AB5441713D0A7783EB5041C3F5281C84AB5441295C8FE284EB5041713D0AA785AB54418DC03A2485EB50413A6B8B4387AB54413D0AD78389EB50417B14AE878BAB5441C3F5288C93EB5041E17A144E98AB5441E17A14EE9EEB5041A4703D1AA3AB54410AD7A3D0ACEB5041EC51B86EABAB544148E17A44B4EB5041E17A140EB4AB54413D0AD7E3BDEB50419A999919BBAB544152B81E55C5EB504166666616B9AB54419A999929C7EB5041295C8F62B4AB5441A4703D7ACDEB504148E17A74ABAB5441333333B3CDEB504152B81E05A1AB54418FC2F548CBEB5041CDCCCCEC95AB544185EB51C8C9EB50417B14AE678AAB5441E17A14AEC7EB5041CDCCCC8C7AAB54417B14AEC7CEEB50419A99995979AB54411F85EB11CAEB5041A4703DDA6FAB54410AD7A3D0C5EB504148E17AD466AB5441F6285C8FC1EB5041B81E859B5DAB544114AE4781BEEB5041713D0AF757AB5441000000D0B9EB5041D7A370AD4FAB544114AE4761B5EB50410AD7A3D047AB5441C3F528FCA5EB504148E17A9446AB5441E17A146E95EB50419A9999C943AB5441B81E856B8CEB5041B81E858B40AB5441C3F5289C7EEB5041E17A148E3BAB54414B6AA7AA7DEB50419F755A393BAB54417B14AE977DEB5041B81E855B3BAB5441F6285CEF7CEB5041F6285C7F3BAB5441F6285CEF7CEB5041F6285C0F3CAB5441B81E853B7CEB5041F6285C6F3CAB5441B81E853B7CEB5041B81E851B3CAB5441F6285CAF77EB5041B81E85BB3BAB54413D0AD7C375EB5041F6285C0F3CAB5441B81E851B75EB5041F6285CFF3CAB5441F6285C1F74EB5041B81E85CB3DAB5441F6285C5F73EB5041B81E853B3DAB5441B81E850B73EB5041F6285C6F3CAB54413D0AD76372EB5041333333033CAB54413D0AD7E370EB5041333333333CAB54417B14AEB76FEB5041B81E857B3CAB54417B14AE676EEB5041F6285C6F3CAB5441F6285CEF6DEB5041333333033CAB5441B81E856B6DEB5041F6285C1F3BAB5441B81E85FB6DEB50417B14AEA73AAB5441F6285C7F6EEB5041F6285C1F3BAB5441B81E854B6FEB50417B14AE273CAB5441F6285CFF6FEB5041B81E85BB3BAB54417B14AE1770EB5041F6285CEF3AAB5441B81E854B6FEB5041F6285CBF3AAB54417B14AE876FEB5041F6285C2F3AAB54417B14AEC76EEB5041333333A338AB5441F6285CEF6DEB50413333337338AB54413D0AD7536DEB50413333331338AB54413D0AD7F36CEB50413333338337AB5441B81E854B6CEB50417B14AED737AB54417B14AEB76CEB50413333334338AB5441F6285C9F6CEB5041B81E85EB38AB54417B14AE976BEB50417B14AE2739AB5441F6285CAF6BEB5041B81E852B3BAB54413D0AD7D36BEB5041B81E85EB3BAB5441F6285C4F6BEB5041B81E857B3CAB54413D0AD7536AEB5041B81E851B3CAB5441B81E850B6AEB5041333333C33CAB5441B81E854B66EB5041B81E859B3DAB5441B81E857B66EB5041333333333CAB5441F6285CDF65EB50417B14AED73AAB5441F6285C4F65EB50417B14AE9738AB54417B14AE7764EB5041333333A338AB54417B14AE5763EB5041B81E857B39AB5441F6285C7F62EB50417B14AEE739AB5441B81E85FB61EB5041B81E859B3AAB54417B14AE8760EB5041B81E853B3AAB5441B81E852B5FEB5041F6285C5F3AAB5441B81E857B5DEB5041F6285C0F39AB5441F6285C6F5DEB5041B81E858B38AB5441B81E855B5FEB50413333335337AB54417B14AE2760EB50417B14AE1737AB54417B14AEE760EB50413333339336AB54417B14AEC762EB5041F6285C6F36AB5441B81E85DB63EB50413333330336AB54417B14AEA764EB5041F6285C0F36AB5441B81E852B65EB50417B14AEC735AB54413FDB583F65EB504122CD580035AB5441524C32AA5CEB50413430623834AB54413D0AD7A35CEB5041B81E853B34AB54413D0AD7A35CEB5041B81E85CB34AB54417B14AE775BEB50413333337335AB54417B14AEF759EB50417B14AE9735AB54417B14AE6759EB50417B14AEE736AB5441F6285C0F5AEB5041333333A338AB54417B14AEE75AEB50417B14AE8739AB54417B14AE875AEB5041333333F339AB5441B81E85FB58EB5041B81E85BB38AB54417B14AE2757EB5041333333D338AB54417B14AE3756EB50417B14AE6738AB5441F6285C2F55EB5041333333F336AB5441F6285CDF53EB5041B81E85DB36AB54417B14AE3753EB5041F6285C2F37AB54413D0AD78352EB50417B14AE6738AB5441B81E854B51EB50413333337338AB5441B81E85EB50EB5041B81E852B38AB5441B81E85BB50EB50413333333336AB5441B81E852B50EB50417B14AE4737AB54413D0AD7834FEB50413333332337AB5441F6285CFF4EEB5041B81E85DB36AB5441F6285C1F50EB50417B14AE5736AB54417B14AE3750EB50413333337335AB5441F6285CEF4FEB5041B81E85FB34AB54417B14AE574EEB5041F6285CBF34AB5441F6285CDF4DEB5041B81E852B35AB5441B81E851B4EEB50413333333336AB5441F6285CAF4DEB50413333335337AB5441F6285C4F4DEB50417B14AE7737AB54413D0AD7B34CEB5041F6285CCF36AB54417B14AED749EB50413333339336AB5441F6285C5F49EB5041B81E85EB35AB5441B81E856B49EB5041B81E855B35AB5441F6285C3F48EB50417B14AE6735AB5441F6285CAF47EB5041B81E852B35AB54413D0AD74347EB5041F6285C5F34AB5441F6285C8F46EB5041F6285C2F34AB54417B14AEB745EB5041F6285C8F34AB5441B81E855B44EB5041F6285C8F34AB5441B81E853B43EB5041F6285C9F33AB54413D0AD7F342EB50417B14AEB733AB5441B81E857B42EB5041F6285C0F33AB54417B14AEB73FEB5041B81E854B33AB54417B14AE273FEB50413333332334AB54413D0AD7A33EEB5041333333C333AB5441F6285CEF3DEB5041F6285CFF33AB5441B81E853B3DEB5041333333C333AB54413D0AD7E33AEB5041333333B334AB54417B14AE5739EB5041F6285C9F33AB5441B81E852B38EB5041F6285C1F32AB54417B14AE0738EB5041F6285CBF31AB54417B14AE8736EB50413333331332AB54417B14AEC735EB5041B81E85EB32AB54413D0AD74335EB5041333333B331AB5441F6285CBF34EB50413333335331AB5441B81E851B33EB50417B14AE4731AB54417B14AE3732EB5041F6285C5F31AB5441F6285C8F31EB50417B14AEF72FAB5441F6285C8F2EEB5041333333D32FAB5441B81E856B2EEB50413333333330AB5441B81E854B2DEB5041B81E856B31AB54413D0AD7D32CEB50413333339330AB54413D0AD7132CEB5041F6285C6F30AB5441F6285CEF2BEB5041F6285CCF30AB54413D0AD7D329EB50417B14AE1731AB5441F6285C4F29EB5041F6285C0F30AB54413D0AD7A329EB5041B81E85BB2FAB54417B14AE9729EB5041B81E852B2FAB5441F6285CFF27EB5041F6285CEF2EAB54417B14AE5727EB5041333333B32EAB54415C8E932427EB504117F2D1F72DAB54417B14AE871CEB50417B14AE172CAB5441938E75F215EB50414A7AC3DB2AAB54417B14AEE715EB5041B81E859B2BAB5441F6285C5F16EB5041333333E32BAB54413D0AD76315EB5041333333132CAB5441B81E85BB14EB5041B81E85CB2BAB54413D0AD77314EB5041333333C32AAB5441A836271314EB50417856E9812AAB54413BA02AA912EB5041DB690D3E2AAB5441F6285C9F12EB5041B81E854B2AAB54413D0AD73312EB5041333333532BAB5441B81E854B12EB50417B14AE072CAB5441F6285CDF11EB5041B81E85BB2CAB54417B14AE3711EB5041F6285C3F2DAB5441B81E856B10EB5041B81E857B2DAB5441B81E85DB0FEB50417B14AE672CAB54413D0AD75310EB5041B81E85AB2AAB5441F6285C4F0EEB50417B14AEB72AAB54417B14AE470DEB5041F6285CDF29AB5441E9670D430DEB5041B20DF53A29AB5441650793D107EB50419C55BB3528AB5441F6285CCF06EB50413333334329AB54417B14AE0705EB5041F6285C2F28AB54419E7906EF04EB5041A0FD47AB27AB5441EC51B83E03EB5041A4703D5A27AB5441886040AC01EB50419B8B563327AB5441F6285C9F00EB5041B81E857B27AB54417B14AEF7FFEA50413333338328AB54417B14AEC7FFEA5041B81E852B29AB54413D0AD743FFEA5041F6285CDF29AB5441F6285CEFFEEA50417B14AE6729AB54413D0AD733FDEA50417B14AE9729AB54413D0AD743FCEA5041B81E854B2AAB54413D0AD783FBEA5041F6285C6F2AAB54413D0AD793FAEA5041B81E856B2BAB54417B14AEF7F9EA5041B81E850B2BAB5441F6285CAFF9EA5041B81E859B28AB5441F6285CEFF8EA50413333335328AB5441F6285C9FF7EA50413333332328AB5441B81E85EBF6EA5041B81E85AB27AB54413D0AD703F7EA5041F6285C4F26AB544198DA09F1F6EA5041EA0CCC2926AB5441D965C6D0F1EA5041DCB4F4AA25AB54413D0AD7C3F1EA5041333333E325AB54413D0AD7F3F1EA50417B14AEC726AB54417B14AE27F1EA5041B81E854B27AB54417B14AEF7F0EA50417B14AE1728AB54413D0AD713F3EA5041B81E85CB28AB54417B14AE57F4EA50413333338328AB54417B14AE47F5EA50413333331329AB5441B81E853BF5EA5041333333D329AB5441B81E859BF5EA5041B81E850B2BAB5441B81E852BF6EA5041B81E85CB2BAB5441F6285C3FF7EA5041F6285C4F2CAB5441B81E85DBF7EA5041F6285C3F2DAB5441F6285C8FF8EA5041F6285C6F2DAB5441F6285C8FF8EA5041F6285CCF2DAB5441B81E85FBF5EA50417B14AEF72CAB5441B81E85DBF1EA5041F6285C9F2AAB54413D0AD793EEEA5041B81E85EB29AB5441F6285C6FEBEA5041B81E854B2AAB5441B81E853BECEA50417B14AE2727AB5441F6285C3FEBEA5041B81E85BB26AB5441F6285CAFEAEA50417B14AE2727AB54417B14AED7E9EA5041F6285C3F27AB5441F6285C5FE9EA5041B81E853B28AB54413D0AD733E8EA5041B81E859B28AB54413D0AD753E6EA50413333332328AB54413D0AD793E5EA5041B81E856B28AB5441B81E85BBE4EA5041B81E852B29AB54417B14AE27E5EA5041B81E851B27AB54417B14AE37E4EA5041F6285CDF26AB5441B81E853BE3EA50413333333327AB54413D0AD753E3EA50417B14AE0729AB54417B14AE47E3EA50417B14AE272AAB5441B81E854BE2EA50417B14AE572AAB54413D0AD7A3E1EA5041B81E851B27AB5441B81E855BE1EA5041F6285CDF26AB54417B14AE47E0EA50413333330327AB54413D0AD733DFEA5041F6285CAF26AB5441F6285C6FDFEA5041B81E856B25AB5441F18940AFDFEA5041B113D6CF24AB544148E17A14D1EA50410AD7A37024AB5441713D0A77CCEA50417B14AE572DAB54411F85EBB1C9EA5041A4703D5A35AB5441CDCCCC9CC6EA5041B81E851B3FAB54410F00000048E17A84A0EB5041295C8F0250AB54410AD7A370A0EB5041F6285CFF52AB5441EC51B88EA0EB50418FC2F59854AB5441A4703DDA9FEB5041CDCCCCFC58AB544152B81E759FEB5041EC51B87E5CAB5441EC51B82EA0EB50418FC2F56862AB54419A999939A0EB504114AE47C165AB5441666666969DEB50413333338360AB544148E17AB49CEB50417B14AE475EAB54411F85EB719CEB50413D0AD7935CAB5441B81E859B9BEB5041B81E85FB54AB54410AD7A3209AEB5041B81E852B4CAB544114AE478199EB50410000003047AB5441F6285C8FA0EB5041F6285C9F4AAB544148E17A84A0EB5041295C8F0250AB5441
+</a>
+
+<b>
+010600000001000000010300000005000000CC000000295C8FA2EBEA5041EC51B8CE12AB5441891B0C89D4EA504180B8342D22AB5441A2A90BD0D4EA50410230B79322AB5441F6285C2FD7EA5041B81E852B23AB54413D0AD7C3D9EA5041B81E856B22AB5441B81E852BDBEA5041B81E856B22AB54413D0AD723DDEA5041B81E85FB22AB54413D0AD713DEEA50417B14AE8721AB54417B14AE27DFEA5041F6285CFF21AB5441F6285C0FDFEA50413333335322AB54417B14AE57DFEA5041F6285CBF22AB54413D0AD7F3DFEA5041F6285C1F23AB5441F6285C2FE0EA50417B14AE9723AB544121CF0BF1DFEA504191FF768124AB544165251CC1DFEA5041A79775D924AB5441B2D7FB5CE6EA5041DF6FF00725AB5441C6CDFE99EEEA504156014A7F25AB54413D0AD7C3F1EA5041333333E325AB5441B81E850BF2EA5041B81E85AB24AB5441F6285CBFF2EA5041B81E854B24AB5441B81E859BF2EA5041333333D323AB54417B14AE37F3EA5041B81E85CB22AB5441B81E85CBF2EA5041333333531FAB5441F6285C1FF3EA5041F6285C9F1EAB5441F6285C0FF4EA50417B14AEB71EAB5441F6285CFFF4EA50417B14AEE721AB54413D0AD783F5EA5041B81E856B22AB54417B14AED7F5EA50417B14AEF723AB54413D0AD703F7EA5041F6285C4F26AB54410DBBF7D4F9EA50414A65A38726AB54413D0AD703FAEA5041B81E85FB25AB54413D0AD723FBEA50417B14AED725AB5441B81E859BFBEA5041F6285C1F26AB5441F6285C4FFCEA5041F6285C4F26AB54413E33E868FCEA5041EB2924BB26AB54417B14AED701EB50417B14AE2727AB54413D0AD7E304EB5041F6285C6F27AB54419F6781F204EB504109D4ECBD27AB5441E287565806EB5041BCED800328AB5441DE84BCBF07EB504172DE584828AB54417B14AED707EB5041F6285C2F28AB54417B14AE070BEB50413333338328AB5441B81E855B0BEB50417B14AEE727AB5441B81E851B0CEB50417B14AEE727AB5441B81E854B0CEB5041F6285C6F27AB5441B81E857B0CEB50417B14AEC726AB54413D0AD7D30BEB5041B81E85CB25AB54417B14AEC70BEB5041B81E853B25AB54413D0AD7A30BEB50417B14AE6723AB5441B81E851B0CEB50413333337323AB54413D0AD7330CEB50413333332325AB5441F6285C2F0DEB5041F6285C7F26AB5441894930400DEB504149558BC528AB54419DED174F0DEB504136A4FC5529AB544183D85F9912EB50418A1C22582AAB5441414F5E9B12EB504113164F552AAB5441F6285C9F12EB5041B81E854B2AAB5441F6285CFF12EB50417B14AEC729AB5441C3A6066B14EB5041EDD11DB32AAB544117A665CE15EB50414BACEBF42AAB54413D0AD7F315EB5041333333C32AAB54417B14AE1716EB5041333333032AAB54417B14AE9717EB5041F6285C6F2AAB5441B81E859B19EB5041B81E857B2AAB54417B14AEF71AEB5041F6285C9F2AAB54417B14AE271BEB5041F6285CCF2AAB5441B81E853B1FEB5041B81E855B2CAB54413D0AD71320EB5041333333E32BAB54413D0AD77320EB5041F6285C5F2BAB54417B14AE1722EB5041333333832BAB54413D0AD72322EB5041F6285CEF2BAB5441B81E85CB22EB5041B81E858B2CAB5441F6285CFF24EB5041B81E85BB2CAB54413D0AD7B325EB5041B81E851B2DAB54417B14AEC726EB5041333333A32CAB54411EC0223227EB50413794541E2EAB5441AEC7D2F629EB5041FC7521A82EAB54413CECD19131EB5041E138DBE82FAB54412EBBD0DE34EB5041C394D07230AB544188FAF89F3BEB5041C162BF6131AB544158CCE52D40EB5041EF6F94D231AB54418648BC0B47EB504126BC4C6A32AB54410BA3B5604AEB5041842A56B132AB54417B14AE974AEB50413333334332AB5441D664380C4BEB5041D7C79EBF32AB5441009566FA4FEB5041EF80BC2833AB5441F151DA975AEB50418432262634AB54413D0AD7A35CEB5041B9FF675034AB54413D0AD7A35CEB5041B81E853B34AB5441F6285CDF5FEB5041333333A332AB54413D0AD76360EB50413333336333AB5441F6285CFF60EB50413333333333AB5441F6285C8F61EB5041F6285C6F33AB54411C29178762EB5041363921C432AB5441365F420F65EB504128A27A3433AB5441654776B365EB50412B8718A834AB5441894A3A4C65EB50414CFD7C1135AB5441BD07629B66EB50411C8F802F35AB5441C25A8CAA6EEB5041A592ECBC35AB5441CCB2672F7DEB5041E00F60B13AAB5441322FD3A77DEB50419B8D78DA3AAB54411E5D1DB47DEB50411E3373A13AAB54410EA7A9707DEB5041E3E3CF6F3AAB54410F2176ED7DEB5041B7D4E0793AAB5441B81E854B7EEB50417B14AE173AAB54413A7ABAEA7CEB5041826CDFC439AB54410CC0D0CC7CEB50416885B5E339AB5441FB7336A67CEB50411883A0233AAB5441F6285C8F7CEB5041333333233AAB54419F76F66F7CEB5041A9B3452D3AAB5441A5A744D77BEB504111BBC2CB39AB54413D0AD7637BEB50413333339339AB54413D0AD7037BEB5041B81E855B38AB54413D0AD7137AEB5041F6285C1F38AB54417B14AE1779EB5041F6285CBF37AB54413D0AD79378EB5041F6285CFF36AB54417B14AE4776EB5041B81E851B36AB54417B14AEB775EB50417B14AE2736AB54413D0AD79375EB50417B14AED734AB54417B14AEB775EB5041F6285C5F34AB5441B81E85AB72EB5041B81E856B34AB54413D0AD70372EB5041F6285C9F33AB54413D0AD7B370EB5041333333D332AB5441F6285C5F70EB5041B81E855B32AB54417B14AE876FEB50417B14AE0732AB5441F6285C2F6DEB50417B14AE972FAB54417B14AE476DEB5041B81E855B2FAB5441F6285CAF71EB5041333333732FAB5441F6285CFF72EB50417B14AEC72FAB5441F6285C1F74EB5041F6285CBF2EAB5441B81E85AB72EB5041F6285C1F2FAB5441B81E855B71EB50417B14AED72EAB5441F6285C9F6FEB5041333333E32EAB5441F6285CAF6EEB5041F6285C5F2EAB54413D0AD7B36DEB50417B14AE772EAB54417B14AEC76BEB5041B81E85DB2DAB54417B14AEC768EB50417B14AE172EAB54413D0AD7B364EB5041333333832EAB54413D0AD79363EB5041F6285CEF2EAB54413D0AD7A362EB5041B81E85BB2FAB5441B81E850B61EB50413333336330AB5441B81E850B5EEB5041B81E857B30AB54413D0AD7C35AEB5041B81E856B2EAB5441B81E85EB59EB50417B14AE472EAB5441F6285CAF59EB50417B14AEB72DAB5441B81E852B59EB50417B14AE272DAB54413D0AD71359EB5041F6285C4F2CAB5441B81E85FB55EB5041F6285CCF2AAB54413D0AD74353EB5041B81E854B2AAB5441F6285CAF50EB5041B81E854B2AAB5441B81E85DB51EB5041B81E85BB29AB54417B14AE6753EB5041F6285CDF29AB5441B81E851B54EB50413333337329AB54413D0AD75355EB5041B81E85EB29AB5441B81E855B56EB5041333333032AAB54413D0AD77356EB50417B14AE3729AB54417B14AE0756EB50417B14AEF726AB54417B14AEC753EB5041F6285CEF25AB5441F6285CAF56EB5041333333A323AB5441000000B056EB5041F6285C0F22AB5441B81E859B46EB5041F6285C0F21AB54417B14AED746EB5041B81E85AB21AB5441B81E853B46EB5041F6285C2F22AB54413D0AD77341EB50417B14AE6723AB5441F6285C4F41EB50413333333324AB54417B14AE1743EB50417B14AE8724AB54417B14AE3744EB5041B81E854B24AB54413D0AD76345EB5041333333F324AB5441F6285C9F45EB5041B81E85CB25AB54413D0AD76345EB5041B81E85CB28AB54413D0AD70342EB5041B81E859B28AB54413D0AD7733EEB5041F6285C4F29AB54413D0AD7433BEB5041333333532BAB5441B81E85FB3AEB5041F6285CEF2BAB5441F6285C7F38EB5041F6285CEF2BAB54417B14AE7737EB5041333333532BAB54413D0AD7F336EB5041F6285CAF29AB54417B14AE5736EB5041333333E328AB54417B14AE5736EB5041F6285CCF27AB5441B81E85EB35EB50417B14AE7725AB5441B81E855B35EB50417B14AEB724AB5441F6285C9F36EB50413333334320AB54417B14AE9732EB50417B14AE0720AB54413D0AD7A332EB5041F6285CDF20AB54417B14AE0732EB5041F6285CCF21AB5441F6285C6F30EB50417B14AEB721AB5441B81E855B2FEB5041B81E854B21AB54417B14AEC72FEB5041333333E31FAB54417B14AE6725EB5041A4703D0A1FAB5441B81E853B16EB5041333333831CAB54413D0AD78316EB5041F6285C4F1DAB54417B14AEA713EB5041333333D31DAB5441F6285CCF12EB5041F6285CEF1CAB54417B14AE3711EB5041F6285C2F1CAB5441F6285CEF10EB50417B14AEB71BAB54417B14AE8703EB50413333336319AB54413D0AD783FEEA5041F6285C4F17AB54417B14AE27FDEA50417B14AE5718AB5441B81E856BFBEA5041F6285C6F18AB54417B14AEF7F9EA5041333333D317AB54417B14AEE7F7EA5041B81E855B17AB5441B81E852BF3EA5041B81E851B15AB5441B81E850BF2EA5041F6285C1F14AB5441295C8FA2EBEA5041EC51B8CE12AB544111000000B81E857BEBEA5041F6285C0F1BAB54413D0AD723ECEA50417B14AEE71BAB5441F6285C5FECEA5041F6285CDF1DAB54413D0AD7F3EBEA5041B81E854B1EAB54413D0AD763EBEA5041F6285CCF1EAB5441B81E854BEBEA5041B81E85EB20AB5441F6285CDFEAEA50413333332322AB5441B81E85BBE7EA50417B14AE9723AB5441B81E856BE6EA5041B81E855B23AB5441B81E856BE6EA50417B14AE5721AB54413D0AD7B3E6EA5041B81E85FB1FAB54413D0AD7F3E5EA5041B81E851B1EAB54413D0AD723E6EA50417B14AE671DAB54417B14AE57E8EA5041F6285C8F1CAB5441F6285CFFE8EA5041B81E85AB1BAB54417B14AEF7EAEA5041333333D31AAB5441B81E857BEBEA5041F6285C0F1BAB54410B000000B81E85EB20EB50413333337326AB54413D0AD70321EB50413333338325AB5441B81E854B21EB50417B14AE4725AB5441F6285CCF21EB5041F6285C8F25AB5441B81E853B22EB50413333337326AB54413D0AD7B322EB50417B14AEF726AB5441B81E85DB21EB5041F6285C5F28AB54417B14AE5721EB50417B14AE6729AB54413D0AD70321EB5041333333E328AB54417B14AE6720EB5041B81E856B28AB5441B81E85EB20EB50413333337326AB544110000000B81E85AB1EEB5041F6285C3F24AB5441B81E851B1EEB5041B81E85CB22AB5441B81E854B1EEB50413333332322AB5441F6285CAF1DEB50413333339321AB5441F6285C8F1CEB5041F6285C3F21AB54413D0AD7531CEB5041B81E858B20AB54413D0AD7E31CEB50413333331320AB54417B14AEA71FEB5041F6285C8F1FAB5441B81E85CB1FEB50417B14AE0720AB54417B14AE7722EB50417B14AE3720AB5441B81E85CB22EB5041F6285C6F21AB5441B81E851B21EB5041F6285C9F21AB54417B14AE9720EB5041B81E856B22AB5441B81E85EB20EB5041F6285CAF23AB5441F6285C8F1FEB5041F6285C3F24AB5441B81E85AB1EEB5041F6285C3F24AB544107000000F6285C0F48EB5041F6285C0F27AB54413D0AD7C348EB50413333333327AB54413D0AD75349EB5041F6285C2F28AB54413D0AD76348EB5041333333E328AB5441F6285C4F47EB50413333331329AB5441F6285C1F47EB5041F6285C6F27AB5441F6285C0F48EB5041F6285C0F27AB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2905119 - 421767
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+01060000000100000001030000000100000014000000BC08CFC52A0251418D58328088C25441AE6871082B02514192576BBF8EC254418FC2F5882F025141000000A091C254417B14AE47310251418FC2F50893C25441000000803302514152B81E1595C25441295C8F7235025141AE47E1EA95C25441295C8F123702514114AE477197C25441295C8F9237025141A4703DEA96C25441AE47E16A3F02514148E17A649CC25441AE47E1EA470251410AD7A390A2C25441CDCCCCAC4D02514152B81E35A4C254418FC2F52856025141C3F5289CA4C25441E17A142E560251410AD7A3609DC2544148E17A044A025141E17A146E9AC25441713D0AF74A025141295C8F728BC25441AE47E10A3B025141E17A14DE88C254419A9999B93A025141A4703D0A84C25441713D0AD72D02514152B81ED582C2544185EB51182C025141666666D688C25441BC08CFC52A0251418D58328088C25441
+</a>
+
+<b>
+010600000001000000010300000001000000150000008FC2F52856025141C3F5289CA4C25441E17A142E560251410AD7A3609DC2544148E17A044A025141E17A146E9AC25441713D0AF74A025141295C8F728BC25441AE47E10A3B025141E17A14DE88C25441365BBEF23A025141DBA5176F87C254417317721D2D0251410C9006D885C2544148E17A642C02514185EB51D888C2544164AD5F102B025141285EFC9C8EC254419A9999192F025141713D0A0791C254413D0AD70332025141F6285CDF93C25441E19189853202514114771E2E94C25441C126103A35025141141CA8D295C25441295C8F7235025141AE47E1EA95C2544116F4019135025141C834740796C25441B583F55F37025141CB06952097C25441295C8F9237025141A4703DEA96C25441AE47E16A3F02514148E17A649CC25441AE47E1EA470251410AD7A390A2C25441CDCCCCAC4D02514152B81E35A4C254418FC2F52856025141C3F5289CA4C25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>987002 - 5242358
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 30 </desc>
+<a>
+0106000000040000000103000000010000000B03000077FC34C9655F514105C0F876199454415CA32D94655F5141B9256A7819945441FAE81C9D675F5141130F47171A945441CFDFFED96F5F51412465C9E91C945441E862BCFB7B5F5141DAC44BFB21945441D8972E587D5F51417860C0332294544175AB4A23815F514148865E8D2394544183060D02895F51414941E00626945441CD7FA1478B5F5141C4EEF7E0269454417037926E905F5141FDA2C48A28945441755861A7935F5141431CCA112A945441AE90262B935F5141C2753BC52A9454411ACF9227835F51410B971953259454419941422A745F51411FCB8EB71F945441F6306C92735F514101C9CD78209454417C58F7C17F5F514130CD1D9825945441ED7D8F54935F5141FF1587552C9454417A8C724F9B5F5141BB8EE3F92E945441C6C6F8119A5F5141D81105D82D945441C8C62A70935F514154D16DB72A9454416BD70008945F51418209333B2A945441198AA0E99B5F514165668D922D94544120AA97399E5F5141E113A56C2E9454410B2C9962AF5F5141D1DFB4023694544183207A01C25F5141847741043F94544182D1DBADD25F5141EC55DE4A47945441B076D24EDD5F5141F095CCEA4B945441BF2BC22BE35F51410D18E4754F945441BAC767B4E35F514129F57ED74F945441BD4CBB31E95F51415914176C53945441F60088DBEA5F5141BCF743995494544129861A57F95F5141D9D7729E5E9454414970FC53FB5F5141A03E7A3360945441A0719D4B02605141E7FD7FF1649454419EF0F19808605141D7DCB2F7689454412DC905FD0D605141D5EB54DA6B94544146C71D410E6051419D188E1F6D945441381692450C605141A5E0420E6C945441BDE45E18066051417A1AD19F6894544109C1AA16FE5F51414BA3D335639454415B86CD21F95F51418C5D09F9639454417641524802605141EEDDB02A68945441A63DCC470B6051415296A36D6D945441904908F30D605141D50A0FF46E945441B0ED63261A6051410F820C5E74945441F2A799E91A605141174AC14C73945441B2C248DD0E605141E2361E5A6D9454418CE5AD7B0E6051413581BDFA6B9454414A6A59131360514171B5C65B6E9454411434D8CD2760514147512D9F779454410CB1D5B53A60514198E542717F94544192F612504D6051412F8EE7F88594544164A65B595260514171B24B6E87945441A2A60849556051417E122919889454417172DE685D6051419043CAC4899454416390222E63605141296D1AFF89945441FDD8E8FC6B605141B205EBD48A94544108F85E9174605141A3746B708B9454410B9880D876605141C966FB5C8B945441A24025607D605141A3746B708B94544179AF3B3B7D6051415756624F8C94544155ABEB1B78605141C5FA2F5D8C9454415E9275456D605141CE7B90FC8B945441BD34E6D0606051410FB616BF8A9454416C133AA15F605141CE7B90FC8B9454414BF6DD9063605141DF3034A28C945441E9B964316C605141F0E5D7478D945441D851ACC670605141F0E5D7478D9454417BAF6D9976605141540945B68D94544152B81E557D6051417B14AE578D94544148E17A947E6051413D0AD7938D9454410AD7A3E07F6051411F85EBD18D9454415C8FC2D581605141F6285C2F8E9454418FC2F5788760514114AE47E18D9454411F85EBF18C605141D7A3704D8D9454413333338395605141000000708C945441F6285CAF9C60514185EB51B88B94544166666686A1605141A4703D2A8B94544152B81E85A5605141EC51B8BE8A94544133333313AA6051411F85EB518A945441D7A370FDAD605141EC51B8EE8994544133333353B26051415C8FC27589945441713D0A97B66051411F85EB018994544133333323BB605141CDCCCC7C889454413D0AD763BF6051415C8FC2158894544185EB5198C360514148E17AA487945441F6285C3FC8605141CDCCCC2C879454419A999919CC60514114AE47D186945441AE47E15AD060514152B81E5586945441EC51B88ED46051419A9999D985945441713D0AE7D86051410AD7A3608594544114AE47F1DC605141CDCCCCEC84945441F6285C3FE16051415C8FC285849454411F5E7C41EA6051414AEE0DA183945441C5085BADEE6051410B820517839454413F157D69F76051413A396AFB829454416BC4618D0D61514138C0CA9985945441D5652BDD1561514171B24B6E87945441E6A52C9922615141640BB99D8C9454415A690C2422615141769B227B8A94544192D61063206151418EC731E1889454414208E94911615141960A6A3A84945441B4213B690D615141B892DBAE8394544189E9A74307615141B0DFF84782945441C889253202615141E917BECB8194544100281440F7605141D8621A2681945441924F9946E260514167712F7F8294544191917DBDE26051414E40345781945441F6BFF1EFE760514120D1E3EE809454410818237CEA60514138DF23CF80945441344AF6F6EE605141068C835A80945441866E595EF36051414870A333809454418CAE9CECF76051418954C30C8094544158DA50C5FD605141C5A76381809454411666E3560161514179C343A880945441D060F683056151416A32C4438194544195BC19390A6151418093D4CB81945441F9111E4C106151416171D50283945441E7FFF23417615141CBE7A60F85945441C5CCFA2322615141322E09408894544114513C4424615141322E0940889454416866FDC8256151415820992C88945441C67BBE4D276151416411F74985945441D9AC5FF928615141558077E585945441B7EA3EE9276151416E81A9B488945441E93DDF5D286151414F5FAAEB899454417576D17A2B615141B9D57BF88B9454415D43D96936615141916240599294544152013F763E61514115DA433597945441315E94FA45615141C3D456629B9454412A496805486151411E055F7C9C94544103CA8B6150615141F6D6BA00A1945441A2331F2A55615141B892BC6EA3945441E4A854FC60615141EE1953D5A89454412396BD2561615141807585C7A894544159CCFC3868615141616C02A2AB94544154AB2F3F6C61514159AB1361AD945441BAF1916F6F615141BC51544AAE9454411CA7743B73615141D982F5F5AF945441F5E2FCC57E615141EF53B8E8B3945441D6DF73918861514118E6691CB694544192EA5A709261514192EDBA8DB7945441D4CACC7EAB6151410CF50BFFB89454412532FD6FBA615141FFB5B82BB9945441D2C333A7BA6151413EA32155B99454416CB15D2FC361514122561C87B9945441ECD5CDCFD96151414DD92BD8B8945441400A05E9E36151415C6AAB3CB894544160980852FF61514159CA89F5B5945441783EC7C112625141588C3A5FB494544138211FE81E62514178EC88BEB4945441E52AD4F72562514118E6691CB6945441DDE2CC562D625141E3001586B89454418C836E7834625141DD418DD1BA945441BC04276440625141920C3122C09454418E701ECB4A62514194BBF44BC59454413B7AD3DA516251418E9A2752C9945441896EC76557625141B0CCFACCCD9454419C3B955D5E62514135892E22D5945441846C7000646251412E2331AFD6945441B43E65C26A6251417C17253ADC9454413535BDEB7562514146C22D60E894544193BA30DB7A6251412DE07125EE945441A90F07A283625141ECF2B345FA945441549B2CF3866251411D14FDF3FF945441E68D576C846251415E80A0A50295544198288CE08A6251414C6E758E09955441D83AC4309662514170FECF5C18955441C9C8BA609F6251411A87D9B92595544188352E44A8625141B9DC243B2F9554414CB75589AC6251410DE81ED832955441CE7D667AB062514192DAF6F635955441D5364F8AB76251411B7540BA3A955441E2C3706CBF625141765473293F95544137CF6A09C3625141E39ED9A340955441E28DD0E7CB625141954CC816449554413699CA84CF62514105C3F5BE449554415C655844D5625141136B676346955441BEFD73C3E0625141B19CAB5F47955441BEAC837CF362514179E1940B47955441BD76E3F7FF625141AAC8728D4695544134A6F9AF07635141136B67634695544145A5ECB11D635141A3F439BB459554416F9D419F22635141136B676346955441AE1141032A635141E28389E146955441FB2DB20B336351417D0D5C3946955441F07DF93C3F6351415914D95E469554414AA1A471506351417639236745955441621376915E635141A72001E9449554414E7FF24965635141AC5E78FF44955441D5E0249773635141FEEEBCEC4395544130A507447E635141A72001E9449554415C8FC2A5816351418FC2F5C8459554413D0AD733856351410AD7A3704595544185EB514888635141C3F5285C4595544148E17AC48E6351411F85EB4145955441F6285CCF946351410AD7A300459554410AD7A3909A635141CDCCCCBC4495544152B81EE5A06351418FC2F56844955441AE47E1EAA16351410000006044955441B81E85ABA463514133333333449554411F85EB61A8635141D7A370FD43955441A29F253BA96351412401366C40955441E84EAE76B4635141B9A684B63B955441854A52EEC16351415330570E3B955441D266C3F6CA63514114A107E8399554413109B8CCCA635141C07ABD883C95544133333383D0635141B81E855B3F955441CDCCCC0CD6635141E17A147E3E95544166666626D96351419A9999293E955441333333A3E16351410AD7A3203D955441295C8FD2E563514114AE47A13C955441B81E854BEA635141000000003C9554415C8FC2F5EE635141E17A147E3B955441AE47E13AF363514148E17AF43A9554419A999959F76351415C8FC2753A9554419A9999C9FA635141F6285C3F3A955441C1CEFFD0EA6351418AA9CC2C5E955441AE83EA4DEA635141FD4AFD5E5F95544157FAD8EBEB6351417AFFF63060955441760C703DF263514129F0A66463955441A7E5B4B4F4635141DE8FCD8C649554417E49E925F5635141A9110D8663955441FFE6A50603645141D86E324243955441560FE0C0096451413D384340459554417FEB9268FC63514125A2A0A663955441CEC04DC5FA635141FAE7CBB7679554412CBB87E3FD6351416B64E04C699554411072B0C9066451412D0E3FC76D9554410F922B580D645141866AD8276B95544175EEAD9216645141C10069B751955441FFAFFCB011645141E19C04AF4C9554410E2D5F280B64514111E7F928459554411996F53C036451412EA0C0C842955441D7A370FD05645141F6285C4F3C9554413D0AD73309645141B81E857B3D9554419A9999790C6451413D0AD7E33E9554419A9999D90F64514152B81E854095544152B81E25136451413333338342955441C3F5286C16645141AE47E15A45955441BB8B07A2196451414C267EB746955441E17A143E20645141666666A64A955441CDCCCCBC21645141713D0A2747955441D7A3701D226451417B14AE47469554411F85EBA11C6451418FC2F5C84095544114AE4761196451418FC2F5183E9554411F85EB11166451417B14AEA73B9554418FC2F5D8126451410000009039955441666666B60F645141E17A14BE37955441333333630C64514185EB51483695544160E274B708645141B9C1D4783595544113ABB3EC0564514192DAF6F635955441C99FB94F026451415A1FE0A2359554416EC086E0FD635141534BA7D0349554418A2BBAEBFA635141EAA8B2FA34955441FE64A9FAF66351412264C94E35955441E214C6B1F3635141B9C1D4783595544122BF659AEE635141F17CEBCC35955441A0F854A9EA635141C0950D4B3695544157DD9903E5635141622CF66E369554413D0AD7B3DC635141EC51B8AE36955441CDCCCC4CD9635141E17A142E37955441D7A3705DD56351410AD7A3B037955441295C8F52CF63514100000070389554419A999939CA635141AE47E11A39955441B81E855BC463514114AE47F139955441D7A370EDBE635141666666963A9554417B14AEE7B9635141B81E851B3B95544166666666B46351415C8FC2653B9554417B14AE07AF635141EC51B80E3C9554419A999989A96351415C8FC2853C95544152B81E25A46351413D0AD7D33C955441550555FA9C6351411486B725409554415DF4DD8E976351418BD01DA0419554416BD2EFB78C635141F0464B484295544150B8ACF37C6351417D28ACFB3F955441A4703DEA75635141F6285CAF3E9554418FC2F59873635141713D0AD73E955441B81E85EB706351417B14AEE73E9554411F85EB516D6351418FC2F5083F9554410AD7A3B06A635141666666163F95544152B81E45676351415C8FC2453F955441A4703DDA63635141333333633F95544100000090606351415C8FC2853F9554418FC2F5685D635141CDCCCCBC3F95544152B81EB559635141AE47E1DA3F9554419A9999695663514185EB51F83F9554411F85EBF15263514185EB511840955441666666F64E635141AE47E13A40955441E17A148E4A6351411F85EB6140955441E17A141E4663514148E17A74409554419A9999B941635141EC51B89E4095544152B81E453E635141A4703DBA409554413D0AD7733A63514114AE47D1409554410AD7A3C035635141666666B640955441295C8FB2326351418FC2F5884095544114AE47A1316351415C8FC275409554418FC2F5382D635141A4703D9A40955441E17A14DE2C6351417B14AE6741955441A4703DEA28635141CDCCCC9C41955441666666F6246351411F85EBC141955441EC51B83E21635141AE47E1EA41955441CDCCCC5C1D6351419A9999294295544185EB51681963514114AE4751429554410AD7A3A011635141295C8F9242955441EC51B8FE0D635141295C8FB242955441F6285C4F0A6351410AD7A3D042955441C3F5286C026351413D0AD7234395544114AE47A1FE62514100000040439554410AD7A3E0F9625141CDCCCC6C439554410AD7A350F562514114AE47A14395544185EB5108F16251413D0AD7C3439554418FC2F568EC625141EC51B8FE43955441A4703D9AE76251417B14AE07449554413D0AD733E362514185EB5168439554413D0AD7A3DE6251419A9999D942955441A4703D6ADA625141666666064295544100000020D662514133333313419554419A9999D9D16251419A9999094095544185EB51B8CD625141713D0AD73E95544185EB5178C9625141CDCCCC6C3D95544166666666C5625141AE47E1AA3B9554417B14AE77C162514185EB51C83995544114AE47D1BA6251419A9999D935955441AE47E13ABA62514133333363349554417B14AE67B9625141AE47E1EA339554419A999949B26251419A9999D92F955441000000C0AE625141EC51B8DE2C9554410AD7A320AB625141F6285C6F299554418FC2F538A76251411F85EB41269554415C8FC205A4625141713D0AC7229554418FC2F5B8A06251411F85EBA11E9554411F85EB919A6251413333334316955441713D0A6797625141E17A141E12955441000000C0936251419A9999A90D95544114AE47219462514152B81EC50C95544185EB51888E6251411F85EBF104955441E17A143E83625141B81E856BF59454419A9999797E625141666666E6EE945441CDCCCC8C7A6251410AD7A380E99454419A9999497662514148E17A94E3945441AE47E1DA71625141295C8F72DE945441D7A370ED6C625141CDCCCCDCD89454417B14AEB7676251419A9999B9D39454413333336362625141666666C6CE9454417B14AE975F625141295C8F52CC945441713D0AD75B625141B81E85CBC99454413D0AD7435B625141713D0A37C9945441D7A3701D536251417B14AEF7C3945441E17A149E486251413D0AD773BE945441E17A140E3B6251410AD7A300B894544148E17AC4376251413D0AD753B99454418FC2F50838625141000000A0B7945441B81E85AB30625141B81E85BBB59454419A9999392962514185EB51B8B3945441AE47E1DA21625141E17A147EB2945441C3F5284C196251418FC2F518B2945441A4703DAA116251418FC2F598B1945441D7A3708D0A6251411F85EB01B2945441CDCCCC5C0662514133333333B294544100000010026251410AD7A380B2945441F6285C4FF761514114AE4711B394544152B81E05F3615141AE47E14AB3945441B81E85CBEF6151410AD7A370B3945441E17A145EED615141AE47E18AB394544114AE4741EB6151418FC2F598B394544133333383E8615141A4703DEAB3945441CDCCCC0CE06151413D0AD793B4945441CDCCCC4CDC615141CDCCCCDCB494544185EB51E8D861514133333313B5945441713D0AC7CE61514166666606B69454413D0AD773BE615141E17A146EB694544152B81E05B8615141295C8FA2B694544133333383B1615141713D0AD7B6945441713D0A17AA615141D7A3705DB6945441333333B3A1615141EC51B8DEB5945441E17A14CE9A6151413D0AD773B5945441D7A3707D97615141B81E85FBB4945441713D0A379461514133333393B4945441F6285CAF8A615141C3F5284CB3945441A4703D4A8261514114AE47C1B0945441AE47E1CA7E615141B81E858BAF945441295C8F627B61514133333363AE945441D7A3701D7861514185EB5148AD9454417B14AEC774615141CDCCCC1CAC9454417B14AEB7706151415C8FC2B5AA945441AE47E14A6D61514152B81E95A9945441295C8F52696151419A9999E9A7945441D7A370DD656151410AD7A380A69454415C8FC25562615141B81E850BA5945441D7A3700D5F6151417B14AEA7A39454418FC2F5285C6151413D0AD723A2945441295C8FE25861514114AE4751A094544185EB515855615141AE47E16A9E94544152B81EE551615141E17A149E9C94544114AE47414E615141AE47E1AA9A945441333333834A615141CDCCCC9C98945441713D0A57476151411F85EBF196945441295C8F72446151413333336395945441295C8F724161514152B81EB59394544114AE47413E615141295C8F0292945441D7A370ED3A61514133333333909454413D0AD7B3376151415C8FC2858E945441C3F528AC34615141295C8FE28C9454418FC2F588306151415C8FC2A58A945441F6285C3F2D615141666666C688945441CDCCCC8C2B615141000000F087945441D7A3703D2B6151410AD7A3F086945441333333C325615141666666E683945441666666262561514148E17AE4839454418FC2F5881F6151415C8FC2D583945441295C8F7218615141EC51B89E819454410AD7A32013615141666666D67F945441000000400F615141666666967E945441E17A14FE0A615141E17A14FE7D9454415C8FC28506615141EC51B84E7D945441C3F5281C02615141333333737C9454413D0AD7E3FD6051418FC2F5587C9454410AD7A380F9605141C3F5286C7C945441A4703D7AF5605141666666867C9454417B14AE47F16051413D0AD7837C945441666666C6EC60514185EB51A87C9454410AD7A340E8605141D7A3701D7D94544185EB51E8E36051419A9999997D9454411F85EBA1DF60514114AE47F17D945441295C8FA2DB605141F6285C4F7E945441A4703D4AD76051410AD7A3C07E945441E17A142ED360514148E17A247F94544114AE47D1CE605141713D0A777F945441A4703DDACA6051417B14AED77F945441F6285C3FC660514148E17A348094544133333313C260514185EB51A880945441295C8FD2BD6051417B14AE078194544114AE4741B9605141CDCCCC6C81945441D7A3700DB56051413D0AD7D3819454418FC2F5C8B06051417B14AE3782945441A4703DBAAC605141B81E85AB82945441F6285C3FA86051410000001083945441CDCCCC3CA4605141EC51B86E8394544185EB51689F60514114AE47C183945441C3F5289C97605141CDCCCCCC849454415113DC0D8E605141359F2FC985945441F3BB5DF7856051414654D36E86945441E1ED437B7A605141F57F127A8A945441B54F87CB7E605141F57F127A8A9454411973F4397F6051410635B61F8B945441AE0206768D6051417626A1C6899454412DA9626493605141EE4BCF7389945441999AE94E9F6051413A86553688945441C8BD2F81A260514100DB68CB8794544117B2230CA8605141B395386A87945441C259A3FDBD605141D2B737338694544108AC1EDCCD6051411C5D464D849454419F7339F8DC605141F3CA941982945441A022FD21E2605141A68564B88194544123EB3CD4E1605141092CA5A182945441064AE9BDDC605141B9B605648394544108AC1EDCCD605141E248B797859454414E92951AC1605141365E781C879454416A14739CBD6051418DA3A87D879454415F153FB9BB605141B02CE48287945441F38DCDDDB560514126CDF8B78794544197F9B70BAE60514100DB68CB879454414565A239A6605141D557597A889454415777CD509F605141A0D4492989945441B4DDCAAB9B605141D227EA9D899454411E35262495605141C2966A398A945441888C819C8E605141B205EBD48A945441A92F2C188760514162904B978B945441B8A135E87D60514178F15B1F8C945441821E26977E60514197135BE88A945441E08423F27A6051417121CBFB8A945441C683F12278605141562F3B0F8B945441700CFB7F85605141D2B7373386945441B7F271BE78605141040BD8A7869454410AD7A35072605141EC51B86E86945441E17A149E6D6051418FC2F52886945441444FADD05B60514168416626849454414F0F809C4660514113E8FC427F945441B87F3C023F6051410E01D7D57C945441D89C66B441605141768CCA507F94544165AB49AF496051410E4EC2108294544193CAD0E3586051417D0DF991859454417894CC9E58605141F098EC0C889454413A656680526051415E9D65FB85945441657B40104760514159B48EEE82945441BA9AC4673A6051411BD9360D7E94544131B8053F32605141353155D97A945441EC6E5ABB26605141ADD31246769454418B95455A1D605141DBF3E5007294544126099B731A6051418FC0A3716C9454414ADA24FE16605141D97747856A945441A2F314F90C6051410F18FB4B63945441DCECB8E80160514153C068B05B945441F780D03AEB5F5141CE7A86B84C9454411F85EB21D75F51410AD7A3904094544100000020D35F5141713D0A873E94544185EB51D8C55F51419A999909389454415C8FC2E5C45F5141C3F5289C3794544100000090B65F5141333333533194544148E17A34B25F51413D0AD7432F945441AE47E1CAA65F5141D7A3701D2B945441EC51B89E9B5F514152B81E25279454415C8FC2958A5F514185EB51D820945441C3F528AC785F5141E17A145E1A945441666666C6745F51410AD7A3E0189454419A999999735F5141E17A146E18945441D7A370ED715F5141A4703DCA17945441713D0A976E5F514166666676169454417B14AE176C5F5141AE47E18A15945441EC51B8AE695F51419A99999914945441E17A142E675F514114AE47B113945441E17A14AE645F5141B81E85BB12945441C3F5280C625F514148E17AB411945441B81E852B5F5F51411F85EBA110945441F6285C5F535F5141D7A3700D0C9454410AD7A390505F514185EB51F80A945441AE47E1FA4C5F51413D0AD79309945441C3F5289C4B5F5141A4703D0A09945441295C8FC2495F51415C8FC26508945441D7A3706D465F5141C3F5281C07945441E17A141E435F51418FC2F5C8059454415C8FC2953F5F514114AE4771049454410AD7A3D03B5F5141EC51B8FE029454418FC2F538385F5141295C8FA201945441F6285CBF345F514185EB51480094544135B4811E305F5141996F569CFE9354411F85EB012D5F5141F6285C3FFD935441713D0A67295F51417B14AED7FB93544148E17A14255F5141B81E857BFA9354411F85EB911D5F5141CDCCCC8CF793544148E17A94195F51415C8FC215F69354411F85EB01165F514152B81EB5F49354410AD7A370125F5141EC51B85EF3935441B81E854B0F5F51415C8FC225F293544133333393095F5141295C8F12F09354415C8FC205035F514152B81E85ED9354418FC2F528005F51413D0AD773EC93544166666666FB5E5141E17A149EEA9354415C8FC2C5F75E5141EC51B84EE993544114AE4741F65E51413D0AD7C3E89354411F85EBC1F35E5141C3F528BCE793544148E17A34F15E5141666666D6E693544114AE47F1EC5E5141E17A142EE59354417B14AED7EA5E5141F6285C7FE4935441F6285C9FE85E5141D7A370ADE39354411F85EBB1E65E5141000000F0E2935441F6285CCFE45E5141AE47E12AE2935441CDCCCCCCE25E51419A999969E1935441615D8B93E15E5141464471ECE0935441F25B97BBE05E5141D223BC5FE3935441FFCFDD42DF5E5141C55D35EAE593544160D6FCE4DD5E5141FBE0443BE5935441901818C9DE5E51413EACB9D8E29354412C953D61DE5E5141151D0790E29354415484426FDF5E51419CAF4A2BE09354410544B31FE15E5141678628BEE0935441295C8FA2E05E5141C3F5288CE09354411F85EB51DF5E514100000020E09354411F85EB21DD5E5141C3F5283CDF935441CDCCCC3CD95E5141295C8FF2DD935441713D0AF7D65E51417B14AEF7DC935441295C8F22D45E5141A4703DFADB935441AE47E10AD15E51418FC2F5B8DA935441295C8FE2CD5E51418FC2F588D99354415C8FC275C85E51410AD7A380D7935441AE47E15AC55E5141295C8F72D693544152B81EE5BB5E5141A4703DCAD29354418FC2F588B75E5141D7A3702DD1935441E17A14BEB35E5141A4703DBACF935441EC51B8BEB25E5141E17A145ECF9354419A9999F9AE5E514185EB51E8CD93544114AE4721AC5E51411F85EBE1CC9354418FC2F528A65E51411F85EB91CA93544152B81EC5A15E514114AE47F1C8935441C3F5285C9E5E5141713D0AA7C79354411F85EB119B5E514133333363C6935441713D0A47985E51411F85EB51C59354417B14AE97955E51418FC2F548C4935441713D0AE7925E51411F85EB51C393544148E17A74905E51418FC2F568C2935441A4703DFA8D5E514185EB5178C1935441333333F38B5E514148E17AB4C093544133333373895E51418FC2F5B8BF9354411F85EB41875E5141CDCCCCFCBE935441333333E3845E5141F6285C0FBE93544148E17A14825E5141B81E85CBBC935441000000507F5E5141C3F528DCBB935441333333837C5E5141CDCCCCBCBA935441EC51B8BE755E5141E17A143EB8935441EC51B8FE715E514100000030B69354419A999979705E5141EC51B85EB5935441333333E3675E5141D7A370EDB293544114AE47D15A5E5141713D0A17AE935441295C8FC2585E514152B81E75AD935441A4703D3A4E5E514152B81E55A99354419A9999394A5E51410AD7A3D0A79354415C8FC285425E51411F85EBF1A49354411F85EBD13B5E5141AE47E17AA293544185EB5108375E5141333333F3A09354413BAA5A3E315E514137AE1A039F935441FBF066792B5E5141B12066499D9354419F33F136275E5141FD5AEC0B9C93544188CB9C881E5E5141A505FDD59993544133333343165E514185EB513898935441AE47E10A0E5E51413333339396935441C3F5287C0B5E5141B81E851B9693544152B81E85025E5141333333039593544100000010005E51419A9999D99493544152B81EF5F65D5141F6285C8F94935441F6285C2FF35D5141295C8F72949354419A999909EB5D5141D7A3703D94935441C3F5281CE65D5141D7A3705D94935441E17A146EDE5D51418FC2F588949354413D0AD713D95D514185EB519894935441295C8F12D05D5141713D0AC794935441666666B6CB5D5141A4703DEA9493544135CAA38EC35D51413DB413059593544185EB51D8C15D51418FC2F50895935441295C8F32BE5D51413D0AD72395935441AE47E11AB35D51418FC2F548959354413D0AD723B05D51410000006095935441A4703D6AA55D5141CDCCCCAC959354410AD7A360A25D51413D0AD7C3959354415C8FC285945D514152B81E1596935441666666E6925D51413D0AD723969354415C8FC265925D5141AE47E13A95935441931F0CD3885D51419728336994935441667860DA885D5141A971678B949354415AAF9464875D514122D778A394935441758C2FC6875D5141DB336CD390935441A895D98D865D51416BD4E6BF909354414CFE0869855D5141CA287F8B969354415F2D335F825D5141E4AAA8B59693544195D1EDE6725D5141CCA5E5489593544157929D00655D5141507CC8F3939354418B9B47C8635D514137CB3CF8919354412E0477A3625D5141739C9BAE8F9354410C8B36B9615D5141739C9BAE8F935441F511F6CE605D51410FC29230939354413429AC3C585D514154E327079293544122CF622F505D5141545BA6D58F935441747655E6445D5141993F8B248D9354412AE340B6395D5141793AB88689935441CD6854002D5D5141F9BC05878493544188AF809A265D51419066ACAB81935441F1788143265D51415F1F42E48193544114AE47E1245D5141CDCCCC2C83935441C3F528AC245D5141F6285CBF8393544104E3229E245D51410254089B86935441D7A3709D245D5141F6285CBF869354410E9DE4A4245D5141F5B080C2869354419272DCA4245D5141D83AE3C586935441747AE289245D514102028AC886935441BDB90789245D5141C7962BD586935441BFB6402F2D5D51413A259E448A935441EFE00C15305D514180432E7F8A93544176950518395D51415E8C16298E9354412C6CFCD4435D51417DE9CC3292935441CA9BEC814E5D514112731E2C9593544190D486F6575D514191832F3B979354419F0A8F875D5D51416C2B116F9A935441CBD000F6605D51411D45CC459B935441C8F12214655D5141C1ADFB209A935441A2990448685D51417FF3C55D999354417F5AA9506C5D5141CC227672999354419BB93249795D514157EA1B969A935441A68BE0627F5D51410804D76C9B935441EA4F0F51875D51414E2267A79B935441DF2DF915905D51414E2267A79B9354410690100D945D514178B08D049E93544107158DA2975D5141734C338D9E9354412F1E376A965D514169FF01099C9354415A5F2C43965D514198A451599B935441DEDD90F49E5D5141E2263C0B9B9354414B5E3826A35D51410D6831E49A93544150470F33A65D51419D08ACD09A935441F481EC27AB5D5141C1ADFB209A935441AC09FBA0B25D51410F94404A999354415F2DAFA2BA5D5141E5524B7199935441FE033220C05D514159162BFC98935441E1CC3572C75D5141E5524B7199935441B0CD84D5CF5D51417B8F6BE69993544108DFE447DA5D51410B30E6D299935441C624AF84D95D51419F34BB3699935441EAA7E899E15D5141A5D060BF99935441AD510D4EE05D51415286C11E9B9354412B621E5DE25D51414ABE0C309C935441189A696EE35D51410D6831E49A935441F4ECA64BF15D514145C9B5D49B9354419DD758601A5E51413CFF2E14A1935441BCE35A621A5E51415C310CF2A0935441A8825B8B1C5E5141A79A7458A193544195A95725305E51410A696CD3A59354415AED67BF475E51417A5A19BFAD935441A737ABF24A5E5141E647366DAF935441F4A2DB774E5E5141120EC558B1935441EC51B8CE4F5E51410AD7A300B3935441AE47E14A555E5141C3F5286CB293544148E17AD4575E5141295C8F52B393544148E17A145F5E5141B81E85FBB5935441F6285CEF595E51415C8FC2D5C6935441264ED56D595E51410C587663C8935441E8E634265C5E51414A2625CAD6935441666666865C5E5141000000D0D8935441295C8FA25F5E51415C8FC275CE93544166666626665E514114AE4781B8935441AE47E19A675E5141713D0A17B9935441C0E40AA8695E51411DA27CD1B993544109A787866D5E51416D7EF435BB93544114F5176A6A5E51419F213B1EB79354419A545F9E745E5141794808D3BC93544197FAFD517C5E51411336B443BF935441E20165997F5E5141C0EB14A3C0935441898213E8815E51418C05D1A0C193544166FB4CB5845E5141E9793B00C393544171CDFACE8A5E51416326F297C59354412F3474728D5E514115C0F972C693544106293E788E5E514130E231D4C7935441067629B3935E5141109353FCC9935441A0D2B543975E51413DCAD2BFCA935441FA1012259A5E5141771E4DA4CB935441F92BE6639D5E514114F6A1F0CC935441C657B5949F5E51411356F4B5CD9354419B432950A35E51413B45F9C3CE93544126312FCAA85E5141EAE115ACD0935441904F2786AF5E51415CEA5C3AD3935441F00DCD7CB55E5141104C41BED5935441AC4A2ACABC5E51417B4F653BD99354415187F4ECBD5E51419D79A2ADD9935441000000B0C15E51417B14AEA7DB935441A4703DAAC45E5141666666C6DC93544114AE4721CA5E51415C8FC2D5DE935441AE47E16ACD5E514133333303E09354413D0AD783D05E51411F85EB31E1935441D7A3703DD35E51413D0AD743E29354418FC2F598D55E5141CDCCCC2CE39354417B14AE77D85E514152B81E35E49354416F69AF8CDA5E5141FD112BE4E4935441A96FF248D85E514117951A64EA935441BA712294D85E5141C714E656EC93544103EBB6D9DA5E5141096E834CEC935441BA8CF6D2DB5E5141FA4869EBEA935441FE03B2A0DD5E51411E66B700E693544152B81EF5DE5E5141B81E85CBE693544100000010E15E5141E17A148EE79354415C8FC2F5E25E5141D7A3705DE89354418644B3B5ED5E51410DE22068EC9354410C173F8AEF5E5141096E834CEC93544105CD9DF2F25E51414D2250F6ED9354416E4BE873FA5E5141A7005A12F0935441554D33B20E5F5141AB5B1CF1F793544110EAE2C4165F514159588B9EFA935441BDE65172195F5141BB3BB8CBFB935441AA50D52C195F51412D844D96FC935441C3F528AC185F5141D7A3700DFE935441250001C8145F5141A107C86103945441B81E85AB085F5141C3F5281C14945441A4703D6A0B5F5141295C8F421694544152B81EC50E5F51413D0AD7E318945441713D0A27165F514114AE47C10E945441295C8F02205F51413D0AD7530194544164AA4760205F51412542C2EE00945441C8CD93B9205F51410525FB88009454418FC2F548295F514185EB51E803945441AE47E1FA295F514185EB513804945441EA7C720A2D5F5141B6F1A95E05945441913E16292A5F51414349B595039454415AAFD0B5235F51412B64F6A9009454414E9A448E195F51419A0624CDFC9354413DCFA1B0195F5141764790ACFB935441ADB26108215F5141E1EA6164FE935441D84DA5B1335F51415B2E7481069454411A62C420365F514171B803B907945441ABCF13B03E5F514106EB87B90A9454411FD515965C5F5141667F836816945441CCD184435F5F5141E22C9B421794544101BEDBEB625F51417171B97B1894544177FC34C9655F514105C0F8761994544101030000000100000005000000631EA276255D5141021E8369829354411DC4753E245D514194988E3483935441B81673AF245D514168C2DD57839354418E31BF90255D514193A7917682935441631EA276255D5141021E83698293544101030000000100000004000000CB19A540195F5141671B8B5CFC935441EBB03C1F195F5141B09B0A91FC935441AA50D52C195F51412D844D96FC935441CB19A540195F5141671B8B5CFC935441010300000001000000040000000544B31FE15E5141678628BEE0935441615D8B93E15E5141464471ECE09354416D09AF95E15E5141DD683AE6E09354410544B31FE15E5141678628BEE0935441
+</a>
+
+<b>
+010600000001000000010300000001000000C5020000358E208B2862514193A7ACF4B69454417439CCB23E6251417DE4F960BF94544192CB838D4A625141B2F7602DC5945441CC8090DC5162514132488F53C99454415EDB9B715462514149298B74CB945441B6A3B43C57625141F48AC8ABCD9454416042C11A5B625141B69BA4B3D19454419E7812935C625141AAF0A93FD3945441F759254E5D625141B1568804D49454419C3B955D5E62514135892E22D5945441F71811D765625141483C5326D6945441AC07C4656D625141F43E046CDD945441533CF0F473625141917DAFD6E39454416BECF71875625141B005BB8CE5945441AD2E8ACE776251411602D441E994544118F9273A7C625141997C79D1EE945441DEB55F7F84625141978F4183F994544126D0F5C6876251414D8873ED00955441E68D576C846251415E80A0A50295544140DBECBE8A625141F18D766A0995544172A59E589662514152DFC79618955441E90372CD9E625141333A9EE32495544123BE327D9F62514173094BD825955441788DA758A16251412418BBD427955441C793CFB6A2625141D0432D4B29955441C53D35E4A46251415C4C3D9F2B955441B0AB2CB1A762514101C3F09D2E955441EF92368AA86251415C0467762F9554411074592AAC625141769BBF8732955441E2291E89B06251418BD7E30036955441595889CEB7625141F927A1E03A955441D28BDCF0BF6251410C6C9F5F3F9554417A7E037DC1625141F75AAF0140955441F3AB3B3CC462514146D82A1B4195544123B083FDC66251419284712D42955441C8A221D2CB625141D39B590E4495544198BD914DCF6251418B6CEBB44495544119678018D162514100474E32459554415B98E221D562514159E78E5946955441E2ED39F7D56251410594BC724695544120F67C45DA625141345A37D14695544165394998DE6251411FA91530479554418D6877AEE2625141EE5B0E57479554418B96936FE7625141490AB441479554412FE553E7EB6251415331A32D479554412E5616CEEF62514128891D1C47955441919FCBF0F462514102E2E2FC46955441ACEC754CFB625141B3E5A2BC46955441998C59C40C635141293A963C469554418745772C1D63514148D135BF459554417F42A8D7216351410670CA4846955441A059CCB6226351415D33F964469554414E46F22B246351417898D97D46955441531F6BAA286351419D518CCA46955441AFDFFE322B635141F06672CB469554415706F8342D635141A52711A6469554416CEA9BB3326351416912C43F46955441490B9F3A3863514199F64B494695544107B2414D3B6351418AA3BE5246955441BF1948F53F635141069E7B5446955441D038C19945635141D9963F03469554411FEF9D9349635141D87601CA4595544115508DF84D63514170D0BD8A45955441CB3435AD53635141FBE0444A459554414E1864FA5D635141493846EE44955441EE36756765635141DC7841FD44955441B1B5864B6B635141F78A178C449554412CEAFC4C6F6351414E77243F4495544129DC3EA373635141ABE6DAED43955441825344FF7863514138D2806C4495544188BED6067E635141FC225BE34495544187E7FCD0816351418B9C0F8F459554413A788513856351410AEECB3846955441CDED791D886351412A2B19B846955441FE72375D8D6351413FACD8C44795544179728F9B93635141F3F66F6048955441150CBC05996351413D4F51184995544106DC10E19E635141B31F4EB5489554413D2976EDA06351411D271EBE4595544192F8A6D1A2635141CC3B584D44955441B81E85ABA463514133333333449554411F85EB61A8635141D7A370FD43955441A29F253BA96351412401366C40955441E453F8D3AF6351414F257F5F3B955441092E1EBBB263514130DFB02939955441E6F32383B4635141A2860643399554410E45A4FFB86351414F257F5F3B95544103130FA7BC635141EF7D41503B95544169D154C8C0635141E87AAE1C3B955441E664BB76C263514149AFFAFC3A955441D266C3F6CA63514114A107E8399554413109B8CCCA635141C07ABD883C95544133333383D0635141B81E855B3F955441CDCCCC0CD6635141E17A147E3E95544166666626D96351419A9999293E955441333333A3E16351410AD7A3203D955441295C8FD2E563514114AE47A13C955441B81E854BEA635141000000003C9554415C8FC2F5EE635141E17A147E3B955441AE47E13AF363514148E17AF43A9554419A999959F76351415C8FC2753A9554419A9999C9FA635141F6285C3F3A955441AC83EA4DEA635141FA4AFD5E5F955441A5E5B4B4F4635141E18FCD8C64955441FAE6A50603645141DD6E32424395544187DD39E00864514100A4BAFD44955441F03201C0096451410FE63E4245955441E4B8787A06645141345227B64C955441BA2011B800645141CB4EDCD459955441D3C04DC5FA635141F5E7CBB7679554410E72B0C906645141280E3FC76D9554410A922B580D645141856AD8276B95544170EEAD9216645141C00069B7519554415A4A926E1164514147188A624C95544138CCC41D0B645141CD96CB25459554413B990B4703645141B23AC7CB42955441D7A370FD05645141F6285C4F3C9554413D0AD73309645141B81E857B3D9554419A9999790C6451413D0AD7E33E9554419A9999D90F64514152B81E854095544152B81E25136451413333338342955441C3F5286C16645141AE47E15A45955441E683B3B219645141FEEF69C146955441E17A143E20645141666666A64A955441CDCCCCBC21645141713D0A2747955441D7A3701D226451417B14AE47469554411F85EBA11C6451418FC2F5C84095544114AE4761196451418FC2F5183E9554411F85EB11166451417B14AEA73B9554418FC2F5D8126451410000009039955441666666B60F645141E17A14BE37955441333333630C64514185EB514836955441B9EF434509645141E53824983595544160E274B708645141B9C1D47835955441471127C607645141C1046AA335955441682B482506645141EBC3FAEC35955441BA5289AF0364514147BBDBC23595544195D65DFA01645141D87E1193359554411717DE24FE635141F82B4FDD349554419CACCB51FB6351414D0507F534955441BB25F92DFA635141B7BE820A35955441F3218316F66351414DB4315A359554412110BF02F36351413B881F843595544114C35F7CEE635141743CACD03595544123E1B725EA6351412771524E369554418693B0CBE46351413E12A370369554413D0AD7B3DC635141EC51B8AE36955441CDCCCC4CD9635141E17A142E37955441D7A3705DD56351410AD7A3B037955441295C8F52CF63514100000070389554419A999939CA635141AE47E11A39955441B81E855BC463514114AE47F139955441D7A370EDBE635141666666963A9554417B14AEE7B9635141B81E851B3B95544100C39723B56351419B2DCB8038955441214B70B7B4635141FB22E31F389554416F791592B2635141B81C909337955441E8D739D5B063514106F9B6433895544159D89982AF6351417582CBD9389554419A999989A96351415C8FC2853C95544152B81E25A46351413D0AD7D33C955441054CE6CE9E63514102F6AC4C3F955441550555FA9C6351411486B725409554413922674197635141BFAECFA441955441F16B41F48C6351412B6CA344429554419167132083635141B8CC25E2409554411700B8637D635141F522030C40955441A4703DEA75635141F6285CAF3E9554418FC2F59873635141713D0AD73E955441B81E85EB706351417B14AEE73E9554411F85EB516D6351418FC2F5083F9554417E712BBD6A6351411A6566AC3E955441B84DE1A96663514169A69C3B3E955441471C36D161635141B9E7D2CA3D955441D5EA8AF85C635141BC8501743E955441BDE7DBAC58635141C3D498C83E955441A4D1F25E55635141739362393F95544196BB09115263514123522CAA3F955441666666F64E635141AE47E13A40955441E17A148E4A6351411F85EB6140955441E17A141E4663514148E17A74409554419A9999B941635141EC51B89E4095544152B81E453E635141A4703DBA409554413D0AD7733A63514114AE47D1409554410AD7A3C035635141666666B640955441295C8FB2326351418FC2F5884095544114AE47A1316351415C8FC275409554418FC2F5382D635141A4703D9A40955441E17A14DE2C6351417B14AE6741955441A4703DEA28635141CDCCCC9C41955441666666F6246351411F85EBC141955441EC51B83E21635141AE47E1EA41955441CDCCCC5C1D6351419A9999294295544185EB51681963514114AE4751429554410AD7A3A011635141295C8F9242955441EC51B8FE0D635141295C8FB242955441AAFF2272ED62514158DCA68541955441A4703D6ADA625141666666064295544100000020D662514133333313419554419A9999D9D16251419A9999094095544185EB51B8CD625141713D0AD73E95544185EB5178C9625141CDCCCC6C3D95544166666666C5625141AE47E1AA3B9554417B14AE77C162514185EB51C83995544114AE47D1BA6251419A9999D935955441AE47E13ABA62514133333363349554417B14AE67B9625141AE47E1EA339554419A999949B26251419A9999D92F955441000000C0AE625141EC51B8DE2C9554410AD7A320AB625141F6285C6F299554418FC2F538A76251411F85EB41269554415C8FC205A4625141713D0AC7229554418FC2F5B8A06251411F85EBA11E9554411F85EB919A6251413333334316955441713D0A6797625141E17A141E12955441000000C0936251419A9999A90D95544114AE47219462514152B81EC50C95544185EB51888E6251411F85EBF10495544138A8F958886251419899C05EF9945441EF8D63118562514136BB243CF59454417BD7C35C80625141A272FAF5EE94544128BD2D157D6251411DE456AFE9945441C6E810CE78625141A45F3244E494544149466FD07362514118F98A6BDE945441BFE946D36D6251418A7EE5DBD89454417B14AEB7676251419A9999B9D39454413333336362625141666666C6CE9454417B14AE975F625141295C8F52CC945441713D0AD75B625141B81E85CBC99454413D0AD7435B625141713D0A37C9945441D7A3701D536251417B14AEF7C3945441E17A149E486251413D0AD773BE945441D001B4FF3B62514154E53976B8945441D527F5FD3A625141D82ECA35B8945441288CDA453A625141871273EEB79454418FC2F50838625141000000A0B7945441B81E85AB30625141B81E85BBB594544174B7A968296251415BAA7DCFB29454412984C2491E62514129B74A38B094544122C4D5EA18625141556AD555AF945441E7D0964511625141EF837B35AF9454413DB7D2C20462514190DDC307B09454415D6AC807FB615141C8D0735BB19454413E9489C4F261514102DFE5EDB2945441F365F5C5EF61514102DFE5EDB2945441A155DE59EC615141F2106137B294544147634480E8615141FB06E25BB2945441A24216A8E16151411B996CEDB394544130A074AADC6151411CA3EBC8B3945441D5A35BF5D861514112AD6AA4B3945441D47C958CCE615141237BEF5AB4945441411724B9BD6151413453F3ECB4945441C7888072B86151413453F3ECB494544113A44CBFB06151412B67F1A3B49454416C6F2030AA61514133497411B5945441A8BC67C6A1615141237BEF5AB49454411C56C0ED9B615141258FED11B4945441B97724CB9761514114C1685BB39454414DA307849361514114C1685BB39454414883E36E8A615141939D279CB19454417376FEE982615141F9435C86AF94544170B694CE7E615141F203BA93AE9454412FC3DEF37A615141552AB01FAD945441C49CDC5977615141F2C3945DAC94544160F69B61746151411E771F7BAB945441B8DC6CB770615141E7836F27AA9454411AC33D0D6D615141BA90BFD3A8945441E3CF873269615141B5903C90A7945441437639D9656151414CEA7EDBA5945441A41CEB7F6261514114F7CE87A4945441A9DC42065F615141DC031F34A39454410703B64E5C615141735D617FA1945441295C8FE25861514114AE4751A094544185EB515855615141AE47E16A9E94544152B81EE551615141E17A149E9C94544114AE47414E615141AE47E1AA9A945441333333834A615141CDCCCC9C98945441713D0A57476151411F85EBF196945441295C8F72446151413333336395945441C0F3C3EA416151410F33C9A593945441151836A33E615141523721C29194544166E186093B615141F6B937838F945441A3B8B8AF37615141F08C110D8E945441C3F528AC34615141295C8FE28C9454418FC2F588306151415C8FC2A58A945441F6285C3F2D615141666666C688945441D9DC26E32B615141D67D57E287945441D7A3703D2B6151410AD7A3F086945441333333C325615141666666E683945441666666262561514148E17AE4839454418FC2F5881F6151415C8FC2D583945441295C8F7218615141EC51B89E819454410AD7A32013615141666666D67F9454418BCF93510F615141C81A7DD37D945441E93A1CDF0A6151419366FF9C7C945441D48AE5F305615141CB2F81AB7B945441DAB4EDA301615141BB91C1777B9454418661F60EFD6051416214C2327B94544186ED3E8BF8605141FE96C2ED7A9454413ED6C65DF4605141473A83977A945441593C4E75F060514185A1C4D979945441492AD7BDEB60514190DD43417A94544123A06137E6605141957B03757A9454411AE32080E1605141321A3DCC7B9454410E02233FDF605141C70745F17B945441073FD4C0DB6051416BE4A79E7C94544192DE8167D76051419C8C09037D9454415A73D184D36051415D1FAF547E94544172A2A1C6CF60514132E04F827E945441A11EB21ACC605141B01451CB7E94544117FA3BDDC66051412E4952147F945441804CA971C2605141DC25B5C17F94544179C5360FBE6051413376788A80945441ADD844D1B96051417C6B1A0181945441806D94EEB56051413E3A9C6E819454413AE39ED5B0605141862F3EE58194544134205057AD605141B7D79F498294544110E39A50A8605141FFCC41C082945441D085CBADA4605141DD7F01AE82945441B2753C1DA16051415BB402F782945441D78775799F605141ECDA22008394544122CA537D976051415186071B84945441921E6BDD8D605141CFBA086484945441BA1309CF8560514117B0AADA849454413285BB99826051411C47A848849454414E4B89497E605141822E697F849454411012D6677860514114032600859454410AE168B871605141D58EC74C8594544154C834D46D6051415E7784B3849454417D674BC0636051412F1A6E808494544134208CC25F6051416E8ECC3384945441225785DF5B605141C54D13288494544117075DC55A605141C81973678394544171057161566051410F5F4BE881945441067415B746605141EA74A21D7E9454419EE08F653C605141E618F7D478945441F613480C36605141A710A16F759454413A26A6293160514188B6A7BD729454411E20F1B22060514128FA93DA6C945441337939EC156051414E8449C36894544177BC2AF00E60514144B1E87864945441C5F388B8086051418CE10585609454416F238A7908605141FBE489FF64945441584FD4540E605141ED3516C167945441DA1A326E12605141D9E15A0F6A9454414DF0744E1D605141E2B4BB596E945441BD506349266051417470D90A72945441BF524AC62B6051411314B9097494544168561DA735605141C92CEDED779454411ACD5DF03B605141EE1696B87B945441E78EBEF2416051417A4246667F945441BE472216496051418AA6FBDB81945441EA3B62354E605141FB2DB21B8394544160B0BAE358605141F464C4928594544199A1D09F586051415320940388945441766C633153605141A6813A3786945441EBCA828B47605141EF2F6D0F839454412DFD95A0396051411AD707BF7D9454412B2E2FC632605141F512630E7B945441B50E77D329605141CBE8D180779454411E07B3F3276051419E3F2FC2769454417345AB601D605141F790CF0372945441C9D64A3817605141E6E3418C6F945441D45C32270860514122C9262B66945441D7A3707D08605141F6285C0F60945441AE47E10AED5F514148E17AD44D94544152B81E45EC5F51419A9999594D9454411F85EB21D75F51410AD7A3904094544100000020D35F5141713D0A873E94544185EB51D8C55F51419A999909389454415C8FC2E5C45F5141C3F5289C3794544100000090B65F5141333333533194544148E17A34B25F51413D0AD7432F945441AE47E1CAA65F5141D7A3701D2B945441C683D4E39B5F51417C6FE39A24945441A9FA326A8A5F5141237722711E9454410EFBD60F795F51419404F67319945441666666C6745F51410AD7A3E0189454419A999999735F5141E17A146E18945441D7A370ED715F5141A4703DCA17945441713D0A976E5F514166666676169454417B14AE176C5F5141AE47E18A15945441EC51B8AE695F51419A99999914945441E17A142E675F514114AE47B113945441E17A14AE645F5141B81E85BB12945441C3F5280C625F514148E17AB411945441B81E852B5F5F51411F85EBA110945441F6285C5F535F5141D7A3700D0C94544165CC575C515F5141D7B507330A945441CB617BF64C5F5141F0208B8908945441F70FD6244B5F5141D6EB90D90794544193E793C4495F5141EDB0705407945441A105556B485F5141F5EEF6D106945441D7A3706D465F5141C3F5281C07945441E17A141E435F51418FC2F5C8059454415C8FC2953F5F514114AE4771049454410AD7A3D03B5F5141EC51B8FE029454418FC2F538385F5141295C8FA2019454417FB97999345F51411D919014FF9354418DD6EEB6345F5141C50EF62EFE935441489D4AB2315F51414CB8A1B1FC93544107A7F0FB2E5F514129C3A174FB93544128C72EC72D5F51418EDC62EEFA9354416959D23C2B5F5141311619DAF9935441BED6A9AF295F51410D4A6031F993544169C92166265F514119D9DFCBF7935441C39A4AD5235F5141A365D5B4F69354417C56A34B1D5F514104D8D3EDF393544118B23801185F5141A5C570AEF1935441902EFA55145F5141EDF9D65BF093544196359AC0115F51412849F47DEF935441CBCA63F00C5F51415DC38EE0ED9354411C5E9014075F5141DC1061E9EB935441B0CF56CA015F5141216D0C23EA935441CFB39F0EFD5E5141BE7A66A0E89354413380A05EF75E5141017111F1E69354418694D94BF35E5141DA7E26BCE5935441081D175AEE5E5141D0D12C45E4935441B4C410B2EA5E5141B3D5E12FE39354417BB6568FE75E514156021442E29354413583915EE55E514154DEF39BE193544177E13FFDE15E5141DA294EC8E0935441615D8B93E15E5141464471ECE0935441295C8FA2E05E5141C3F5288CE09354411F85EB51DF5E514100000020E09354411F85EB21DD5E5141C3F5283CDF935441CDCCCC3CD95E5141295C8FF2DD935441CDAF45D0D65E5141C15AF324DD9354410BD7C057D55E514192F5E7A7DC9354413A2E3605D45E5141839AA90FDC935441AE47E10AD15E51418FC2F5B8DA9354415F46ED77BE5E51414F2D6E43D2935441DA7C568FB65E5141D148D945CE935441D9CD50CEAA5E51414B6B3A44C993544160074876A25E5141D278B94EC7935441267C82889D5E51415D24C0E7C5935441713D0AE7925E51411F85EB51C393544148E17A74905E51418FC2F568C2935441A4703DFA8D5E514185EB5178C1935441333333F38B5E514148E17AB4C093544133333373895E51418FC2F5B8BF9354411F85EB41875E5141CDCCCCFCBE935441333333E3845E5141F6285C0FBE93544148E17A14825E5141B81E85CBBC935441000000507F5E5141C3F528DCBB935441333333837C5E5141CDCCCCBCBA935441EC51B8BE755E5141E17A143EB8935441EC51B8FE715E514100000030B69354419A999979705E5141EC51B85EB5935441BB341329685E5141679FA42AB1935441B132B95E5B5E5141AE32CD71AB935441A3DC451B575E514126E69352AA93544163011F134E5E5141B3CA124BA7935441D85E72B0485E5141D2FBCA62A59354415588683A415E51417E3318A3A29354416663AD0E3B5E5141A9C9E5E5A09354415A1F81AE365E51413C591E00A0935441580C0D66305E51417E54016E9E935441A4703DBA2B5E51413D0AD7539D935441EAF51B5B255E51419B97BF929B935441713D0AC7205E51410AD7A3709A9354416FCD083E1E5E51413A1D6BC79993544150C356C3195E51411CEB64E79893544133333343165E514185EB513898935441AE47E10A0E5E51413333339396935441C3F5287C0B5E5141B81E851B9693544152B81E85025E5141333333039593544100000010005E51419A9999D99493544152B81EF5F65D5141F6285C8F94935441F6285C2FF35D5141295C8F72949354419A999909EB5D5141D7A3703D94935441C3F5281CE65D5141D7A3705D94935441E17A146EDE5D51418FC2F588949354413D0AD713D95D514185EB51989493544131EF0ECBD15D51412FBA82B291935441545E6174CB5D514107E90A9691935441A2ED9800C25D51414C8BFACE91935441A192271BB95D51411231C4CE909354413B05548BB15D51416914B9B292935441908DD789AA5D51412FBA82B291935441C98C9CA4A25D514191E530CF92935441916E1BBE945D5141E0CFD94092935441931F0CD3885D51419728336994935441667860DA885D5141A971678B9493544107AEF89C8A5D51413F8612FC95935441ECEDC10D925D5141E079D01A97935441E3ADAF88945D5141B6B5094E98935441C41F2A05975D5141B79E9FB298935441E74085D9975D5141B79E9FB298935441CCF10837A25D51413646007798935441FC9A3A0EAA5D51416B2BB49597935441D49661BCAD5D514116C24B2F97935441C03562E5AF5D514195315506979354410DA1926AB35D51414AA7FF4D96935441A798E0C6BA5D5141BFF51BD395935441C3E012C7C45D51413F8612FC9593544126AF0A42C95D5141F4FBBC4395935441BE83A32DCD5D514134234B06959354415B94BE60C85D51411580718B9693544120D8CEFADF5D5141F6FD846298935441AB89B275E05D514155E9D9F196935441B8AC67E6E35D5141362513259893544161A84580F15D514157A9C76C999354418E17BD2E055E5141839043AA9B93544118AA2C3F055E51414992501D9C935441E35F3843055E51412E48C8959B9354414CF2AD76125E51418F35E5439D935441719BDF4D1A5E5141F00115A09E9354416359B64E1A5E5141B63B9ABC9E9354410BE80959365E5141762C7EB7A4935441A8770E11405E5141786F98C7A7935441E16CE746605E514189526F59B393544153DA8F615F5E514186C1E5BDB493544143449E7A5A5E51415F055B0CC7935441FA17F788595E5141C7135C6DCA935441E8E634265C5E51414A2625CAD6935441666666865C5E5141000000D0D8935441295C8FA25F5E51415C8FC275CE935441E94E4744665E5141523DA144B8935441658333D75F5E5141F574A0EFB49354417AB573AC605E514148FAD3B4B3935441B800B615665E5141ACF0FADBB3935441988CFE026A5E514157075F51B593544168800117725E514156E67586B9935441480C4A04765E51419C37CC37BC935441FC7264027C5E5141D1F67B2ABF93544149D8B52F7F5E51410681D776C09354413CA4D467815E51416F1BBA69C19354416F522AE5835E5141ACC4409AC2935441F4B875FB875E5141E5307364C4935441AB741A098A5E5141D933D943C59354412F3474728D5E514115C0F972C69354410F9B65A48E5E51411F1967E6C79354416DDC689D935E5141A03E5BF3C9935441A0D2B543975E51413DCAD2BFCA935441FA1012259A5E5141771E4DA4CB935441F92BE6639D5E514114F6A1F0CC935441C657B5949F5E51411356F4B5CD9354419B432950A35E51413B45F9C3CE93544126312FCAA85E5141EAE115ACD0935441904F2786AF5E51415CEA5C3AD3935441F00DCD7CB55E5141104C41BED5935441AC4A2ACABC5E51417B4F653BD99354415187F4ECBD5E51419D79A2ADD9935441000000B0C15E51417B14AEA7DB935441A4703DAAC45E5141666666C6DC935441B87B7764C95E51418E716AE2DF93544129F1F3ADCB5E5141D3E2A3F0E09354411EB296ABCE5E5141FFE6E62BE29354413FB6D9E6CF5E5141D3E2A3F0E0935441D7A3703DD35E51413D0AD743E29354418FC2F598D55E5141CDCCCC2CE39354416F69AF8CDA5E5141FD112BE4E4935441A0C3DD9EDD5E5141A2A05012E6935441901818C9DE5E51413EACB9D8E29354412C953D61DE5E5141151D0790E293544146732864DF5E51415C0F346AE09354410A728673E15E51418AB04048E1935441F25B97BBE05E5141D223BC5FE393544152B81EF5DE5E5141B81E85CBE693544100000010E15E5141E17A148EE79354415C8FC2F5E25E5141D7A3705DE89354413D0AD7D3E45E5141D7A3700DE99354416DFD97D0E65E5141988879D0E9935441E10C9B01E95E5141E72768A3EA935441DD293C6AED5E51413630C14BEC9354410C173F8AEF5E5141096E834CEC93544105CD9DF2F25E51414D2250F6ED9354416E4BE873FA5E5141A7005A12F0935441554D33B20E5F5141AB5B1CF1F79354416AC9BC59125F514147AF6327F993544110EAE2C4165F514159588B9EFA935441BDE65172195F5141BB3BB8CBFB935441AA50D52C195F51412D844D96FC93544112DCE5FC185F51415920342AFD93544166167E90185F51419479F5C9FD9354413DB432AB145F51417A7EC73F03945441B81E85AB085F5141C3F5281C14945441A4703D6A0B5F5141295C8F421694544152B81EC50E5F51413D0AD7E3189454419F9AA20D135F51411011CC1A1C945441DA6C93AA245F514135CB889D029454415969F5F9245F514137D2C4FE01945441D2410D7A195F5141C18A1551FD9354413DCFA1B0195F5141764790ACFB935441ADB26108215F5141E1EA6164FE935441D84DA5B1335F51415B2E7481069454411A62C420365F514171B803B907945441ABCF13B03E5F514106EB87B90A9454411FD515965C5F5141667F836816945441CCD184435F5F5141E22C9B42179454417FA3DD176D5F5141EC58DDF71B945441A7C312D66F5F5141B0AEE7DE1C945441F3748B7D745F51419D18EBD91E9454414575A574785F51413756018220945441592284F57B5F5141B58FB2F82194544176E4424F7D5F5141B35E4E322294544175AB4A23815F514148865E8D2394544183060D02895F51414941E00626945441CD7FA1478B5F5141C4EEF7E0269454417037926E905F5141FDA2C48A28945441755861A7935F5141431CCA112A9454416BD70008945F51418209333B2A945441198AA0E99B5F514165668D922D94544120AA97399E5F5141E113A56C2E9454410B2C9962AF5F5141D1DFB4023694544183207A01C25F5141847741043F94544182D1DBADD25F5141EC55DE4A47945441B076D24EDD5F5141F095CCEA4B94544139C42A8EE35F514142CF05BB4F945441BD4CBB31E95F51415914176C53945441F60088DBEA5F5141BCF743995494544129861A57F95F5141D9D7729E5E9454414970FC53FB5F5141A03E7A3360945441AB06401B03605141071316766594544114411897086051417C6384F6689454418CE5AD7B0E6051413581BDFA6B9454418973BB1813605141CA882E5E6E94544154FD6D4D20605141B839F84474945441BA0B58DB296051417D618D787894544171BB84A232605141333D1B1A7C94544136F0FA703860514184F8FC807E945441ED0CF6FB3F60514196E82E4B81945441EA26CE67486051410EB4ED3F8494544103FE194E4C605141A6D3599E85945441D4F712F2506051413C363E0687945441AE4CF2AB5260514184AB1181879454412D7BF1A8586051417864C9CA88945441D5F2DC695D605141634FD4C489945441E202311E62605141795D5EF489945441F731D10863605141DF51A1FD89945441F41804EB63605141DEAC03118A9454413982925765605141F89795338A9454419C0E49C36B605141412574CF8A9454414A351E516F605141855B40118B945441E23340A4746051410A59CA6F8B9454418BB9B3E07660514160CF135D8B945441A24025607D605141A3746B708B94544194D6827E88605141A16A326A8A94544113CF5BFC9E605141A7621B1C889454415BB094C5AE6051419A5D98A4869454419017D0F0B3605141AFB2B692869454413AFDE6FBC460514197AD331B8594544110CEE70FE3605141690BBE5081945441B29177A4E7605141A0C5CEF4809454415E54BF90EB605141AFA002B380945441D04F6913EE6051412394A7718094544129C2D964F2605141F9E83D3C80945441B1AEE3F5F460514178C30D2680945441CDAE7D0CF86051419D403F0F809454419F0DD218FA605141219B1A38809454414C0A5EC6FE60514147E0538C809454411666E3560161514179C343A880945441440A316304615141A56BC319819454411AC6DBEC07615141CA7B6A8981945441736BEDBC096151419A92CFBD819454410F9164120C61514163247D2A82945441FB9ADDA7106151419E450E1E8394544113D92268116151417E601A5783945441012254DB1A6151410EE72D20869454415119390D22615141810466398894544188DD35DB23615141322E094088945441E1D09BDA24615141CE67843888945441A82336CC256151412B1F7A26889454416C3A484B27615141898DA44E85945441B6359AE428615141521C302386945441B7EA3EE9276151416E81A9B4889454418F11DA5E28615141068D4FEC8994544173A72A762B615141786F58F78B945441127AC7E42D6151417B02F6608D94544147CFC81A35615141DD1ECC9591945441A311E2BE3E6151415A719E5D97945441A4FDF0A6466151417A3A51BF9B945441FFCF5D0B516151411EE2FC56A19454411A5B5FAF5561514113709DABA3945441E4AD657059615141E5FAAD62A5945441005AB1115D6151410F843F0BA7945441A3312294606151418F4DB8A5A89454415363BA6E61615141792AF5E4A8945441CE72388A66615141A53947F4AA945441AEBD89AB69615141277ED042AC945441F9173B1B6C615141153B7951AD94544143C7D0316E615141E0D78AEFAD9454412268D0726F61514108B9C14BAE9454419F9AA22D7361514107C5E0EFAF945441B23D25BF766151418665BF29B194544140D2F1A67B615141A6F65CD7B2945441A5A84EA07E615141754DD4DBB39454416D41AB0F80615141C79AD532B49454412A3B98698661514116425AA0B59454415F34BB8088615141E393A718B69454411B992C688B6151414F77A086B694544109B188B892615141C9CCE291B794544146FA82CBA96151412A12FCE5B8945441BF4ABA58B1615141888A8A10B99454412532FD6FBA615141FFB5B82BB994544176016DF4BA6151413D02E656B994544162523876C261514134C3DF82B994544101465D38CC615141E2494141B99454414345AACFD4615141834CD5FEB8945441356D753AE361514168642B47B894544136FA62A0FB61514172B51F44B69454413D06107812625141F7883F65B4945441F16F65FC17625141B2073F88B494544133BC5DE41E62514107776BBEB4945441F2FC733624625141BC0E70C5B5945441E52AD4F72562514118E6691CB694544155D7868828625141D515C1F3B6945441358E208B2862514193A7ACF4B6945441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>987002 - 5254527
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 30 </desc>
+<a>
+0106000000040000000103000000010000000B03000077FC34C9655F514105C0F876199454415CA32D94655F5141B9256A7819945441FAE81C9D675F5141130F47171A945441CFDFFED96F5F51412465C9E91C945441E862BCFB7B5F5141DAC44BFB21945441D8972E587D5F51417860C0332294544175AB4A23815F514148865E8D2394544183060D02895F51414941E00626945441CD7FA1478B5F5141C4EEF7E0269454417037926E905F5141FDA2C48A28945441755861A7935F5141431CCA112A945441AE90262B935F5141C2753BC52A9454411ACF9227835F51410B971953259454419941422A745F51411FCB8EB71F945441F6306C92735F514101C9CD78209454417C58F7C17F5F514130CD1D9825945441ED7D8F54935F5141FF1587552C9454417A8C724F9B5F5141BB8EE3F92E945441C6C6F8119A5F5141D81105D82D945441C8C62A70935F514154D16DB72A9454416BD70008945F51418209333B2A945441198AA0E99B5F514165668D922D94544120AA97399E5F5141E113A56C2E9454410B2C9962AF5F5141D1DFB4023694544183207A01C25F5141847741043F94544182D1DBADD25F5141EC55DE4A47945441B076D24EDD5F5141F095CCEA4B945441BF2BC22BE35F51410D18E4754F945441BAC767B4E35F514129F57ED74F945441BD4CBB31E95F51415914176C53945441F60088DBEA5F5141BCF743995494544129861A57F95F5141D9D7729E5E9454414970FC53FB5F5141A03E7A3360945441A0719D4B02605141E7FD7FF1649454419EF0F19808605141D7DCB2F7689454412DC905FD0D605141D5EB54DA6B94544146C71D410E6051419D188E1F6D945441381692450C605141A5E0420E6C945441BDE45E18066051417A1AD19F6894544109C1AA16FE5F51414BA3D335639454415B86CD21F95F51418C5D09F9639454417641524802605141EEDDB02A68945441A63DCC470B6051415296A36D6D945441904908F30D605141D50A0FF46E945441B0ED63261A6051410F820C5E74945441F2A799E91A605141174AC14C73945441B2C248DD0E605141E2361E5A6D9454418CE5AD7B0E6051413581BDFA6B9454414A6A59131360514171B5C65B6E9454411434D8CD2760514147512D9F779454410CB1D5B53A60514198E542717F94544192F612504D6051412F8EE7F88594544164A65B595260514171B24B6E87945441A2A60849556051417E122919889454417172DE685D6051419043CAC4899454416390222E63605141296D1AFF89945441FDD8E8FC6B605141B205EBD48A94544108F85E9174605141A3746B708B9454410B9880D876605141C966FB5C8B945441A24025607D605141A3746B708B94544179AF3B3B7D6051415756624F8C94544155ABEB1B78605141C5FA2F5D8C9454415E9275456D605141CE7B90FC8B945441BD34E6D0606051410FB616BF8A9454416C133AA15F605141CE7B90FC8B9454414BF6DD9063605141DF3034A28C945441E9B964316C605141F0E5D7478D945441D851ACC670605141F0E5D7478D9454417BAF6D9976605141540945B68D94544152B81E557D6051417B14AE578D94544148E17A947E6051413D0AD7938D9454410AD7A3E07F6051411F85EBD18D9454415C8FC2D581605141F6285C2F8E9454418FC2F5788760514114AE47E18D9454411F85EBF18C605141D7A3704D8D9454413333338395605141000000708C945441F6285CAF9C60514185EB51B88B94544166666686A1605141A4703D2A8B94544152B81E85A5605141EC51B8BE8A94544133333313AA6051411F85EB518A945441D7A370FDAD605141EC51B8EE8994544133333353B26051415C8FC27589945441713D0A97B66051411F85EB018994544133333323BB605141CDCCCC7C889454413D0AD763BF6051415C8FC2158894544185EB5198C360514148E17AA487945441F6285C3FC8605141CDCCCC2C879454419A999919CC60514114AE47D186945441AE47E15AD060514152B81E5586945441EC51B88ED46051419A9999D985945441713D0AE7D86051410AD7A3608594544114AE47F1DC605141CDCCCCEC84945441F6285C3FE16051415C8FC285849454411F5E7C41EA6051414AEE0DA183945441C5085BADEE6051410B820517839454413F157D69F76051413A396AFB829454416BC4618D0D61514138C0CA9985945441D5652BDD1561514171B24B6E87945441E6A52C9922615141640BB99D8C9454415A690C2422615141769B227B8A94544192D61063206151418EC731E1889454414208E94911615141960A6A3A84945441B4213B690D615141B892DBAE8394544189E9A74307615141B0DFF84782945441C889253202615141E917BECB8194544100281440F7605141D8621A2681945441924F9946E260514167712F7F8294544191917DBDE26051414E40345781945441F6BFF1EFE760514120D1E3EE809454410818237CEA60514138DF23CF80945441344AF6F6EE605141068C835A80945441866E595EF36051414870A333809454418CAE9CECF76051418954C30C8094544158DA50C5FD605141C5A76381809454411666E3560161514179C343A880945441D060F683056151416A32C4438194544195BC19390A6151418093D4CB81945441F9111E4C106151416171D50283945441E7FFF23417615141CBE7A60F85945441C5CCFA2322615141322E09408894544114513C4424615141322E0940889454416866FDC8256151415820992C88945441C67BBE4D276151416411F74985945441D9AC5FF928615141558077E585945441B7EA3EE9276151416E81A9B488945441E93DDF5D286151414F5FAAEB899454417576D17A2B615141B9D57BF88B9454415D43D96936615141916240599294544152013F763E61514115DA433597945441315E94FA45615141C3D456629B9454412A496805486151411E055F7C9C94544103CA8B6150615141F6D6BA00A1945441A2331F2A55615141B892BC6EA3945441E4A854FC60615141EE1953D5A89454412396BD2561615141807585C7A894544159CCFC3868615141616C02A2AB94544154AB2F3F6C61514159AB1361AD945441BAF1916F6F615141BC51544AAE9454411CA7743B73615141D982F5F5AF945441F5E2FCC57E615141EF53B8E8B3945441D6DF73918861514118E6691CB694544192EA5A709261514192EDBA8DB7945441D4CACC7EAB6151410CF50BFFB89454412532FD6FBA615141FFB5B82BB9945441D2C333A7BA6151413EA32155B99454416CB15D2FC361514122561C87B9945441ECD5CDCFD96151414DD92BD8B8945441400A05E9E36151415C6AAB3CB894544160980852FF61514159CA89F5B5945441783EC7C112625141588C3A5FB494544138211FE81E62514178EC88BEB4945441E52AD4F72562514118E6691CB6945441DDE2CC562D625141E3001586B89454418C836E7834625141DD418DD1BA945441BC04276440625141920C3122C09454418E701ECB4A62514194BBF44BC59454413B7AD3DA516251418E9A2752C9945441896EC76557625141B0CCFACCCD9454419C3B955D5E62514135892E22D5945441846C7000646251412E2331AFD6945441B43E65C26A6251417C17253ADC9454413535BDEB7562514146C22D60E894544193BA30DB7A6251412DE07125EE945441A90F07A283625141ECF2B345FA945441549B2CF3866251411D14FDF3FF945441E68D576C846251415E80A0A50295544198288CE08A6251414C6E758E09955441D83AC4309662514170FECF5C18955441C9C8BA609F6251411A87D9B92595544188352E44A8625141B9DC243B2F9554414CB75589AC6251410DE81ED832955441CE7D667AB062514192DAF6F635955441D5364F8AB76251411B7540BA3A955441E2C3706CBF625141765473293F95544137CF6A09C3625141E39ED9A340955441E28DD0E7CB625141954CC816449554413699CA84CF62514105C3F5BE449554415C655844D5625141136B676346955441BEFD73C3E0625141B19CAB5F47955441BEAC837CF362514179E1940B47955441BD76E3F7FF625141AAC8728D4695544134A6F9AF07635141136B67634695544145A5ECB11D635141A3F439BB459554416F9D419F22635141136B676346955441AE1141032A635141E28389E146955441FB2DB20B336351417D0D5C3946955441F07DF93C3F6351415914D95E469554414AA1A471506351417639236745955441621376915E635141A72001E9449554414E7FF24965635141AC5E78FF44955441D5E0249773635141FEEEBCEC4395544130A507447E635141A72001E9449554415C8FC2A5816351418FC2F5C8459554413D0AD733856351410AD7A3704595544185EB514888635141C3F5285C4595544148E17AC48E6351411F85EB4145955441F6285CCF946351410AD7A300459554410AD7A3909A635141CDCCCCBC4495544152B81EE5A06351418FC2F56844955441AE47E1EAA16351410000006044955441B81E85ABA463514133333333449554411F85EB61A8635141D7A370FD43955441A29F253BA96351412401366C40955441E84EAE76B4635141B9A684B63B955441854A52EEC16351415330570E3B955441D266C3F6CA63514114A107E8399554413109B8CCCA635141C07ABD883C95544133333383D0635141B81E855B3F955441CDCCCC0CD6635141E17A147E3E95544166666626D96351419A9999293E955441333333A3E16351410AD7A3203D955441295C8FD2E563514114AE47A13C955441B81E854BEA635141000000003C9554415C8FC2F5EE635141E17A147E3B955441AE47E13AF363514148E17AF43A9554419A999959F76351415C8FC2753A9554419A9999C9FA635141F6285C3F3A955441C1CEFFD0EA6351418AA9CC2C5E955441AE83EA4DEA635141FD4AFD5E5F95544157FAD8EBEB6351417AFFF63060955441760C703DF263514129F0A66463955441A7E5B4B4F4635141DE8FCD8C649554417E49E925F5635141A9110D8663955441FFE6A50603645141D86E324243955441560FE0C0096451413D384340459554417FEB9268FC63514125A2A0A663955441CEC04DC5FA635141FAE7CBB7679554412CBB87E3FD6351416B64E04C699554411072B0C9066451412D0E3FC76D9554410F922B580D645141866AD8276B95544175EEAD9216645141C10069B751955441FFAFFCB011645141E19C04AF4C9554410E2D5F280B64514111E7F928459554411996F53C036451412EA0C0C842955441D7A370FD05645141F6285C4F3C9554413D0AD73309645141B81E857B3D9554419A9999790C6451413D0AD7E33E9554419A9999D90F64514152B81E854095544152B81E25136451413333338342955441C3F5286C16645141AE47E15A45955441BB8B07A2196451414C267EB746955441E17A143E20645141666666A64A955441CDCCCCBC21645141713D0A2747955441D7A3701D226451417B14AE47469554411F85EBA11C6451418FC2F5C84095544114AE4761196451418FC2F5183E9554411F85EB11166451417B14AEA73B9554418FC2F5D8126451410000009039955441666666B60F645141E17A14BE37955441333333630C64514185EB51483695544160E274B708645141B9C1D4783595544113ABB3EC0564514192DAF6F635955441C99FB94F026451415A1FE0A2359554416EC086E0FD635141534BA7D0349554418A2BBAEBFA635141EAA8B2FA34955441FE64A9FAF66351412264C94E35955441E214C6B1F3635141B9C1D4783595544122BF659AEE635141F17CEBCC35955441A0F854A9EA635141C0950D4B3695544157DD9903E5635141622CF66E369554413D0AD7B3DC635141EC51B8AE36955441CDCCCC4CD9635141E17A142E37955441D7A3705DD56351410AD7A3B037955441295C8F52CF63514100000070389554419A999939CA635141AE47E11A39955441B81E855BC463514114AE47F139955441D7A370EDBE635141666666963A9554417B14AEE7B9635141B81E851B3B95544166666666B46351415C8FC2653B9554417B14AE07AF635141EC51B80E3C9554419A999989A96351415C8FC2853C95544152B81E25A46351413D0AD7D33C955441550555FA9C6351411486B725409554415DF4DD8E976351418BD01DA0419554416BD2EFB78C635141F0464B484295544150B8ACF37C6351417D28ACFB3F955441A4703DEA75635141F6285CAF3E9554418FC2F59873635141713D0AD73E955441B81E85EB706351417B14AEE73E9554411F85EB516D6351418FC2F5083F9554410AD7A3B06A635141666666163F95544152B81E45676351415C8FC2453F955441A4703DDA63635141333333633F95544100000090606351415C8FC2853F9554418FC2F5685D635141CDCCCCBC3F95544152B81EB559635141AE47E1DA3F9554419A9999695663514185EB51F83F9554411F85EBF15263514185EB511840955441666666F64E635141AE47E13A40955441E17A148E4A6351411F85EB6140955441E17A141E4663514148E17A74409554419A9999B941635141EC51B89E4095544152B81E453E635141A4703DBA409554413D0AD7733A63514114AE47D1409554410AD7A3C035635141666666B640955441295C8FB2326351418FC2F5884095544114AE47A1316351415C8FC275409554418FC2F5382D635141A4703D9A40955441E17A14DE2C6351417B14AE6741955441A4703DEA28635141CDCCCC9C41955441666666F6246351411F85EBC141955441EC51B83E21635141AE47E1EA41955441CDCCCC5C1D6351419A9999294295544185EB51681963514114AE4751429554410AD7A3A011635141295C8F9242955441EC51B8FE0D635141295C8FB242955441F6285C4F0A6351410AD7A3D042955441C3F5286C026351413D0AD7234395544114AE47A1FE62514100000040439554410AD7A3E0F9625141CDCCCC6C439554410AD7A350F562514114AE47A14395544185EB5108F16251413D0AD7C3439554418FC2F568EC625141EC51B8FE43955441A4703D9AE76251417B14AE07449554413D0AD733E362514185EB5168439554413D0AD7A3DE6251419A9999D942955441A4703D6ADA625141666666064295544100000020D662514133333313419554419A9999D9D16251419A9999094095544185EB51B8CD625141713D0AD73E95544185EB5178C9625141CDCCCC6C3D95544166666666C5625141AE47E1AA3B9554417B14AE77C162514185EB51C83995544114AE47D1BA6251419A9999D935955441AE47E13ABA62514133333363349554417B14AE67B9625141AE47E1EA339554419A999949B26251419A9999D92F955441000000C0AE625141EC51B8DE2C9554410AD7A320AB625141F6285C6F299554418FC2F538A76251411F85EB41269554415C8FC205A4625141713D0AC7229554418FC2F5B8A06251411F85EBA11E9554411F85EB919A6251413333334316955441713D0A6797625141E17A141E12955441000000C0936251419A9999A90D95544114AE47219462514152B81EC50C95544185EB51888E6251411F85EBF104955441E17A143E83625141B81E856BF59454419A9999797E625141666666E6EE945441CDCCCC8C7A6251410AD7A380E99454419A9999497662514148E17A94E3945441AE47E1DA71625141295C8F72DE945441D7A370ED6C625141CDCCCCDCD89454417B14AEB7676251419A9999B9D39454413333336362625141666666C6CE9454417B14AE975F625141295C8F52CC945441713D0AD75B625141B81E85CBC99454413D0AD7435B625141713D0A37C9945441D7A3701D536251417B14AEF7C3945441E17A149E486251413D0AD773BE945441E17A140E3B6251410AD7A300B894544148E17AC4376251413D0AD753B99454418FC2F50838625141000000A0B7945441B81E85AB30625141B81E85BBB59454419A9999392962514185EB51B8B3945441AE47E1DA21625141E17A147EB2945441C3F5284C196251418FC2F518B2945441A4703DAA116251418FC2F598B1945441D7A3708D0A6251411F85EB01B2945441CDCCCC5C0662514133333333B294544100000010026251410AD7A380B2945441F6285C4FF761514114AE4711B394544152B81E05F3615141AE47E14AB3945441B81E85CBEF6151410AD7A370B3945441E17A145EED615141AE47E18AB394544114AE4741EB6151418FC2F598B394544133333383E8615141A4703DEAB3945441CDCCCC0CE06151413D0AD793B4945441CDCCCC4CDC615141CDCCCCDCB494544185EB51E8D861514133333313B5945441713D0AC7CE61514166666606B69454413D0AD773BE615141E17A146EB694544152B81E05B8615141295C8FA2B694544133333383B1615141713D0AD7B6945441713D0A17AA615141D7A3705DB6945441333333B3A1615141EC51B8DEB5945441E17A14CE9A6151413D0AD773B5945441D7A3707D97615141B81E85FBB4945441713D0A379461514133333393B4945441F6285CAF8A615141C3F5284CB3945441A4703D4A8261514114AE47C1B0945441AE47E1CA7E615141B81E858BAF945441295C8F627B61514133333363AE945441D7A3701D7861514185EB5148AD9454417B14AEC774615141CDCCCC1CAC9454417B14AEB7706151415C8FC2B5AA945441AE47E14A6D61514152B81E95A9945441295C8F52696151419A9999E9A7945441D7A370DD656151410AD7A380A69454415C8FC25562615141B81E850BA5945441D7A3700D5F6151417B14AEA7A39454418FC2F5285C6151413D0AD723A2945441295C8FE25861514114AE4751A094544185EB515855615141AE47E16A9E94544152B81EE551615141E17A149E9C94544114AE47414E615141AE47E1AA9A945441333333834A615141CDCCCC9C98945441713D0A57476151411F85EBF196945441295C8F72446151413333336395945441295C8F724161514152B81EB59394544114AE47413E615141295C8F0292945441D7A370ED3A61514133333333909454413D0AD7B3376151415C8FC2858E945441C3F528AC34615141295C8FE28C9454418FC2F588306151415C8FC2A58A945441F6285C3F2D615141666666C688945441CDCCCC8C2B615141000000F087945441D7A3703D2B6151410AD7A3F086945441333333C325615141666666E683945441666666262561514148E17AE4839454418FC2F5881F6151415C8FC2D583945441295C8F7218615141EC51B89E819454410AD7A32013615141666666D67F945441000000400F615141666666967E945441E17A14FE0A615141E17A14FE7D9454415C8FC28506615141EC51B84E7D945441C3F5281C02615141333333737C9454413D0AD7E3FD6051418FC2F5587C9454410AD7A380F9605141C3F5286C7C945441A4703D7AF5605141666666867C9454417B14AE47F16051413D0AD7837C945441666666C6EC60514185EB51A87C9454410AD7A340E8605141D7A3701D7D94544185EB51E8E36051419A9999997D9454411F85EBA1DF60514114AE47F17D945441295C8FA2DB605141F6285C4F7E945441A4703D4AD76051410AD7A3C07E945441E17A142ED360514148E17A247F94544114AE47D1CE605141713D0A777F945441A4703DDACA6051417B14AED77F945441F6285C3FC660514148E17A348094544133333313C260514185EB51A880945441295C8FD2BD6051417B14AE078194544114AE4741B9605141CDCCCC6C81945441D7A3700DB56051413D0AD7D3819454418FC2F5C8B06051417B14AE3782945441A4703DBAAC605141B81E85AB82945441F6285C3FA86051410000001083945441CDCCCC3CA4605141EC51B86E8394544185EB51689F60514114AE47C183945441C3F5289C97605141CDCCCCCC849454415113DC0D8E605141359F2FC985945441F3BB5DF7856051414654D36E86945441E1ED437B7A605141F57F127A8A945441B54F87CB7E605141F57F127A8A9454411973F4397F6051410635B61F8B945441AE0206768D6051417626A1C6899454412DA9626493605141EE4BCF7389945441999AE94E9F6051413A86553688945441C8BD2F81A260514100DB68CB8794544117B2230CA8605141B395386A87945441C259A3FDBD605141D2B737338694544108AC1EDCCD6051411C5D464D849454419F7339F8DC605141F3CA941982945441A022FD21E2605141A68564B88194544123EB3CD4E1605141092CA5A182945441064AE9BDDC605141B9B605648394544108AC1EDCCD605141E248B797859454414E92951AC1605141365E781C879454416A14739CBD6051418DA3A87D879454415F153FB9BB605141B02CE48287945441F38DCDDDB560514126CDF8B78794544197F9B70BAE60514100DB68CB879454414565A239A6605141D557597A889454415777CD509F605141A0D4492989945441B4DDCAAB9B605141D227EA9D899454411E35262495605141C2966A398A945441888C819C8E605141B205EBD48A945441A92F2C188760514162904B978B945441B8A135E87D60514178F15B1F8C945441821E26977E60514197135BE88A945441E08423F27A6051417121CBFB8A945441C683F12278605141562F3B0F8B945441700CFB7F85605141D2B7373386945441B7F271BE78605141040BD8A7869454410AD7A35072605141EC51B86E86945441E17A149E6D6051418FC2F52886945441444FADD05B60514168416626849454414F0F809C4660514113E8FC427F945441B87F3C023F6051410E01D7D57C945441D89C66B441605141768CCA507F94544165AB49AF496051410E4EC2108294544193CAD0E3586051417D0DF991859454417894CC9E58605141F098EC0C889454413A656680526051415E9D65FB85945441657B40104760514159B48EEE82945441BA9AC4673A6051411BD9360D7E94544131B8053F32605141353155D97A945441EC6E5ABB26605141ADD31246769454418B95455A1D605141DBF3E5007294544126099B731A6051418FC0A3716C9454414ADA24FE16605141D97747856A945441A2F314F90C6051410F18FB4B63945441DCECB8E80160514153C068B05B945441F780D03AEB5F5141CE7A86B84C9454411F85EB21D75F51410AD7A3904094544100000020D35F5141713D0A873E94544185EB51D8C55F51419A999909389454415C8FC2E5C45F5141C3F5289C3794544100000090B65F5141333333533194544148E17A34B25F51413D0AD7432F945441AE47E1CAA65F5141D7A3701D2B945441EC51B89E9B5F514152B81E25279454415C8FC2958A5F514185EB51D820945441C3F528AC785F5141E17A145E1A945441666666C6745F51410AD7A3E0189454419A999999735F5141E17A146E18945441D7A370ED715F5141A4703DCA17945441713D0A976E5F514166666676169454417B14AE176C5F5141AE47E18A15945441EC51B8AE695F51419A99999914945441E17A142E675F514114AE47B113945441E17A14AE645F5141B81E85BB12945441C3F5280C625F514148E17AB411945441B81E852B5F5F51411F85EBA110945441F6285C5F535F5141D7A3700D0C9454410AD7A390505F514185EB51F80A945441AE47E1FA4C5F51413D0AD79309945441C3F5289C4B5F5141A4703D0A09945441295C8FC2495F51415C8FC26508945441D7A3706D465F5141C3F5281C07945441E17A141E435F51418FC2F5C8059454415C8FC2953F5F514114AE4771049454410AD7A3D03B5F5141EC51B8FE029454418FC2F538385F5141295C8FA201945441F6285CBF345F514185EB51480094544135B4811E305F5141996F569CFE9354411F85EB012D5F5141F6285C3FFD935441713D0A67295F51417B14AED7FB93544148E17A14255F5141B81E857BFA9354411F85EB911D5F5141CDCCCC8CF793544148E17A94195F51415C8FC215F69354411F85EB01165F514152B81EB5F49354410AD7A370125F5141EC51B85EF3935441B81E854B0F5F51415C8FC225F293544133333393095F5141295C8F12F09354415C8FC205035F514152B81E85ED9354418FC2F528005F51413D0AD773EC93544166666666FB5E5141E17A149EEA9354415C8FC2C5F75E5141EC51B84EE993544114AE4741F65E51413D0AD7C3E89354411F85EBC1F35E5141C3F528BCE793544148E17A34F15E5141666666D6E693544114AE47F1EC5E5141E17A142EE59354417B14AED7EA5E5141F6285C7FE4935441F6285C9FE85E5141D7A370ADE39354411F85EBB1E65E5141000000F0E2935441F6285CCFE45E5141AE47E12AE2935441CDCCCCCCE25E51419A999969E1935441615D8B93E15E5141464471ECE0935441F25B97BBE05E5141D223BC5FE3935441FFCFDD42DF5E5141C55D35EAE593544160D6FCE4DD5E5141FBE0443BE5935441901818C9DE5E51413EACB9D8E29354412C953D61DE5E5141151D0790E29354415484426FDF5E51419CAF4A2BE09354410544B31FE15E5141678628BEE0935441295C8FA2E05E5141C3F5288CE09354411F85EB51DF5E514100000020E09354411F85EB21DD5E5141C3F5283CDF935441CDCCCC3CD95E5141295C8FF2DD935441713D0AF7D65E51417B14AEF7DC935441295C8F22D45E5141A4703DFADB935441AE47E10AD15E51418FC2F5B8DA935441295C8FE2CD5E51418FC2F588D99354415C8FC275C85E51410AD7A380D7935441AE47E15AC55E5141295C8F72D693544152B81EE5BB5E5141A4703DCAD29354418FC2F588B75E5141D7A3702DD1935441E17A14BEB35E5141A4703DBACF935441EC51B8BEB25E5141E17A145ECF9354419A9999F9AE5E514185EB51E8CD93544114AE4721AC5E51411F85EBE1CC9354418FC2F528A65E51411F85EB91CA93544152B81EC5A15E514114AE47F1C8935441C3F5285C9E5E5141713D0AA7C79354411F85EB119B5E514133333363C6935441713D0A47985E51411F85EB51C59354417B14AE97955E51418FC2F548C4935441713D0AE7925E51411F85EB51C393544148E17A74905E51418FC2F568C2935441A4703DFA8D5E514185EB5178C1935441333333F38B5E514148E17AB4C093544133333373895E51418FC2F5B8BF9354411F85EB41875E5141CDCCCCFCBE935441333333E3845E5141F6285C0FBE93544148E17A14825E5141B81E85CBBC935441000000507F5E5141C3F528DCBB935441333333837C5E5141CDCCCCBCBA935441EC51B8BE755E5141E17A143EB8935441EC51B8FE715E514100000030B69354419A999979705E5141EC51B85EB5935441333333E3675E5141D7A370EDB293544114AE47D15A5E5141713D0A17AE935441295C8FC2585E514152B81E75AD935441A4703D3A4E5E514152B81E55A99354419A9999394A5E51410AD7A3D0A79354415C8FC285425E51411F85EBF1A49354411F85EBD13B5E5141AE47E17AA293544185EB5108375E5141333333F3A09354413BAA5A3E315E514137AE1A039F935441FBF066792B5E5141B12066499D9354419F33F136275E5141FD5AEC0B9C93544188CB9C881E5E5141A505FDD59993544133333343165E514185EB513898935441AE47E10A0E5E51413333339396935441C3F5287C0B5E5141B81E851B9693544152B81E85025E5141333333039593544100000010005E51419A9999D99493544152B81EF5F65D5141F6285C8F94935441F6285C2FF35D5141295C8F72949354419A999909EB5D5141D7A3703D94935441C3F5281CE65D5141D7A3705D94935441E17A146EDE5D51418FC2F588949354413D0AD713D95D514185EB519894935441295C8F12D05D5141713D0AC794935441666666B6CB5D5141A4703DEA9493544135CAA38EC35D51413DB413059593544185EB51D8C15D51418FC2F50895935441295C8F32BE5D51413D0AD72395935441AE47E11AB35D51418FC2F548959354413D0AD723B05D51410000006095935441A4703D6AA55D5141CDCCCCAC959354410AD7A360A25D51413D0AD7C3959354415C8FC285945D514152B81E1596935441666666E6925D51413D0AD723969354415C8FC265925D5141AE47E13A95935441931F0CD3885D51419728336994935441667860DA885D5141A971678B949354415AAF9464875D514122D778A394935441758C2FC6875D5141DB336CD390935441A895D98D865D51416BD4E6BF909354414CFE0869855D5141CA287F8B969354415F2D335F825D5141E4AAA8B59693544195D1EDE6725D5141CCA5E5489593544157929D00655D5141507CC8F3939354418B9B47C8635D514137CB3CF8919354412E0477A3625D5141739C9BAE8F9354410C8B36B9615D5141739C9BAE8F935441F511F6CE605D51410FC29230939354413429AC3C585D514154E327079293544122CF622F505D5141545BA6D58F935441747655E6445D5141993F8B248D9354412AE340B6395D5141793AB88689935441CD6854002D5D5141F9BC05878493544188AF809A265D51419066ACAB81935441F1788143265D51415F1F42E48193544114AE47E1245D5141CDCCCC2C83935441C3F528AC245D5141F6285CBF8393544104E3229E245D51410254089B86935441D7A3709D245D5141F6285CBF869354410E9DE4A4245D5141F5B080C2869354419272DCA4245D5141D83AE3C586935441747AE289245D514102028AC886935441BDB90789245D5141C7962BD586935441BFB6402F2D5D51413A259E448A935441EFE00C15305D514180432E7F8A93544176950518395D51415E8C16298E9354412C6CFCD4435D51417DE9CC3292935441CA9BEC814E5D514112731E2C9593544190D486F6575D514191832F3B979354419F0A8F875D5D51416C2B116F9A935441CBD000F6605D51411D45CC459B935441C8F12214655D5141C1ADFB209A935441A2990448685D51417FF3C55D999354417F5AA9506C5D5141CC227672999354419BB93249795D514157EA1B969A935441A68BE0627F5D51410804D76C9B935441EA4F0F51875D51414E2267A79B935441DF2DF915905D51414E2267A79B9354410690100D945D514178B08D049E93544107158DA2975D5141734C338D9E9354412F1E376A965D514169FF01099C9354415A5F2C43965D514198A451599B935441DEDD90F49E5D5141E2263C0B9B9354414B5E3826A35D51410D6831E49A93544150470F33A65D51419D08ACD09A935441F481EC27AB5D5141C1ADFB209A935441AC09FBA0B25D51410F94404A999354415F2DAFA2BA5D5141E5524B7199935441FE033220C05D514159162BFC98935441E1CC3572C75D5141E5524B7199935441B0CD84D5CF5D51417B8F6BE69993544108DFE447DA5D51410B30E6D299935441C624AF84D95D51419F34BB3699935441EAA7E899E15D5141A5D060BF99935441AD510D4EE05D51415286C11E9B9354412B621E5DE25D51414ABE0C309C935441189A696EE35D51410D6831E49A935441F4ECA64BF15D514145C9B5D49B9354419DD758601A5E51413CFF2E14A1935441BCE35A621A5E51415C310CF2A0935441A8825B8B1C5E5141A79A7458A193544195A95725305E51410A696CD3A59354415AED67BF475E51417A5A19BFAD935441A737ABF24A5E5141E647366DAF935441F4A2DB774E5E5141120EC558B1935441EC51B8CE4F5E51410AD7A300B3935441AE47E14A555E5141C3F5286CB293544148E17AD4575E5141295C8F52B393544148E17A145F5E5141B81E85FBB5935441F6285CEF595E51415C8FC2D5C6935441264ED56D595E51410C587663C8935441E8E634265C5E51414A2625CAD6935441666666865C5E5141000000D0D8935441295C8FA25F5E51415C8FC275CE93544166666626665E514114AE4781B8935441AE47E19A675E5141713D0A17B9935441C0E40AA8695E51411DA27CD1B993544109A787866D5E51416D7EF435BB93544114F5176A6A5E51419F213B1EB79354419A545F9E745E5141794808D3BC93544197FAFD517C5E51411336B443BF935441E20165997F5E5141C0EB14A3C0935441898213E8815E51418C05D1A0C193544166FB4CB5845E5141E9793B00C393544171CDFACE8A5E51416326F297C59354412F3474728D5E514115C0F972C693544106293E788E5E514130E231D4C7935441067629B3935E5141109353FCC9935441A0D2B543975E51413DCAD2BFCA935441FA1012259A5E5141771E4DA4CB935441F92BE6639D5E514114F6A1F0CC935441C657B5949F5E51411356F4B5CD9354419B432950A35E51413B45F9C3CE93544126312FCAA85E5141EAE115ACD0935441904F2786AF5E51415CEA5C3AD3935441F00DCD7CB55E5141104C41BED5935441AC4A2ACABC5E51417B4F653BD99354415187F4ECBD5E51419D79A2ADD9935441000000B0C15E51417B14AEA7DB935441A4703DAAC45E5141666666C6DC93544114AE4721CA5E51415C8FC2D5DE935441AE47E16ACD5E514133333303E09354413D0AD783D05E51411F85EB31E1935441D7A3703DD35E51413D0AD743E29354418FC2F598D55E5141CDCCCC2CE39354417B14AE77D85E514152B81E35E49354416F69AF8CDA5E5141FD112BE4E4935441A96FF248D85E514117951A64EA935441BA712294D85E5141C714E656EC93544103EBB6D9DA5E5141096E834CEC935441BA8CF6D2DB5E5141FA4869EBEA935441FE03B2A0DD5E51411E66B700E693544152B81EF5DE5E5141B81E85CBE693544100000010E15E5141E17A148EE79354415C8FC2F5E25E5141D7A3705DE89354418644B3B5ED5E51410DE22068EC9354410C173F8AEF5E5141096E834CEC93544105CD9DF2F25E51414D2250F6ED9354416E4BE873FA5E5141A7005A12F0935441554D33B20E5F5141AB5B1CF1F793544110EAE2C4165F514159588B9EFA935441BDE65172195F5141BB3BB8CBFB935441AA50D52C195F51412D844D96FC935441C3F528AC185F5141D7A3700DFE935441250001C8145F5141A107C86103945441B81E85AB085F5141C3F5281C14945441A4703D6A0B5F5141295C8F421694544152B81EC50E5F51413D0AD7E318945441713D0A27165F514114AE47C10E945441295C8F02205F51413D0AD7530194544164AA4760205F51412542C2EE00945441C8CD93B9205F51410525FB88009454418FC2F548295F514185EB51E803945441AE47E1FA295F514185EB513804945441EA7C720A2D5F5141B6F1A95E05945441913E16292A5F51414349B595039454415AAFD0B5235F51412B64F6A9009454414E9A448E195F51419A0624CDFC9354413DCFA1B0195F5141764790ACFB935441ADB26108215F5141E1EA6164FE935441D84DA5B1335F51415B2E7481069454411A62C420365F514171B803B907945441ABCF13B03E5F514106EB87B90A9454411FD515965C5F5141667F836816945441CCD184435F5F5141E22C9B421794544101BEDBEB625F51417171B97B1894544177FC34C9655F514105C0F8761994544101030000000100000005000000631EA276255D5141021E8369829354411DC4753E245D514194988E3483935441B81673AF245D514168C2DD57839354418E31BF90255D514193A7917682935441631EA276255D5141021E83698293544101030000000100000004000000CB19A540195F5141671B8B5CFC935441EBB03C1F195F5141B09B0A91FC935441AA50D52C195F51412D844D96FC935441CB19A540195F5141671B8B5CFC935441010300000001000000040000000544B31FE15E5141678628BEE0935441615D8B93E15E5141464471ECE09354416D09AF95E15E5141DD683AE6E09354410544B31FE15E5141678628BEE0935441
+</a>
+
+<b>
+010600000001000000010300000001000000C5020000358E208B2862514193A7ACF4B69454417439CCB23E6251417DE4F960BF94544192CB838D4A625141B2F7602DC5945441CC8090DC5162514132488F53C99454415EDB9B715462514149298B74CB945441B6A3B43C57625141F48AC8ABCD9454416042C11A5B625141B69BA4B3D19454419E7812935C625141AAF0A93FD3945441F759254E5D625141B1568804D49454419C3B955D5E62514135892E22D5945441F71811D765625141483C5326D6945441AC07C4656D625141F43E046CDD945441533CF0F473625141917DAFD6E39454416BECF71875625141B005BB8CE5945441AD2E8ACE776251411602D441E994544118F9273A7C625141997C79D1EE945441DEB55F7F84625141978F4183F994544126D0F5C6876251414D8873ED00955441E68D576C846251415E80A0A50295544140DBECBE8A625141F18D766A0995544172A59E589662514152DFC79618955441E90372CD9E625141333A9EE32495544123BE327D9F62514173094BD825955441788DA758A16251412418BBD427955441C793CFB6A2625141D0432D4B29955441C53D35E4A46251415C4C3D9F2B955441B0AB2CB1A762514101C3F09D2E955441EF92368AA86251415C0467762F9554411074592AAC625141769BBF8732955441E2291E89B06251418BD7E30036955441595889CEB7625141F927A1E03A955441D28BDCF0BF6251410C6C9F5F3F9554417A7E037DC1625141F75AAF0140955441F3AB3B3CC462514146D82A1B4195544123B083FDC66251419284712D42955441C8A221D2CB625141D39B590E4495544198BD914DCF6251418B6CEBB44495544119678018D162514100474E32459554415B98E221D562514159E78E5946955441E2ED39F7D56251410594BC724695544120F67C45DA625141345A37D14695544165394998DE6251411FA91530479554418D6877AEE2625141EE5B0E57479554418B96936FE7625141490AB441479554412FE553E7EB6251415331A32D479554412E5616CEEF62514128891D1C47955441919FCBF0F462514102E2E2FC46955441ACEC754CFB625141B3E5A2BC46955441998C59C40C635141293A963C469554418745772C1D63514148D135BF459554417F42A8D7216351410670CA4846955441A059CCB6226351415D33F964469554414E46F22B246351417898D97D46955441531F6BAA286351419D518CCA46955441AFDFFE322B635141F06672CB469554415706F8342D635141A52711A6469554416CEA9BB3326351416912C43F46955441490B9F3A3863514199F64B494695544107B2414D3B6351418AA3BE5246955441BF1948F53F635141069E7B5446955441D038C19945635141D9963F03469554411FEF9D9349635141D87601CA4595544115508DF84D63514170D0BD8A45955441CB3435AD53635141FBE0444A459554414E1864FA5D635141493846EE44955441EE36756765635141DC7841FD44955441B1B5864B6B635141F78A178C449554412CEAFC4C6F6351414E77243F4495544129DC3EA373635141ABE6DAED43955441825344FF7863514138D2806C4495544188BED6067E635141FC225BE34495544187E7FCD0816351418B9C0F8F459554413A788513856351410AEECB3846955441CDED791D886351412A2B19B846955441FE72375D8D6351413FACD8C44795544179728F9B93635141F3F66F6048955441150CBC05996351413D4F51184995544106DC10E19E635141B31F4EB5489554413D2976EDA06351411D271EBE4595544192F8A6D1A2635141CC3B584D44955441B81E85ABA463514133333333449554411F85EB61A8635141D7A370FD43955441A29F253BA96351412401366C40955441E453F8D3AF6351414F257F5F3B955441092E1EBBB263514130DFB02939955441E6F32383B4635141A2860643399554410E45A4FFB86351414F257F5F3B95544103130FA7BC635141EF7D41503B95544169D154C8C0635141E87AAE1C3B955441E664BB76C263514149AFFAFC3A955441D266C3F6CA63514114A107E8399554413109B8CCCA635141C07ABD883C95544133333383D0635141B81E855B3F955441CDCCCC0CD6635141E17A147E3E95544166666626D96351419A9999293E955441333333A3E16351410AD7A3203D955441295C8FD2E563514114AE47A13C955441B81E854BEA635141000000003C9554415C8FC2F5EE635141E17A147E3B955441AE47E13AF363514148E17AF43A9554419A999959F76351415C8FC2753A9554419A9999C9FA635141F6285C3F3A955441AC83EA4DEA635141FA4AFD5E5F955441A5E5B4B4F4635141E18FCD8C64955441FAE6A50603645141DD6E32424395544187DD39E00864514100A4BAFD44955441F03201C0096451410FE63E4245955441E4B8787A06645141345227B64C955441BA2011B800645141CB4EDCD459955441D3C04DC5FA635141F5E7CBB7679554410E72B0C906645141280E3FC76D9554410A922B580D645141856AD8276B95544170EEAD9216645141C00069B7519554415A4A926E1164514147188A624C95544138CCC41D0B645141CD96CB25459554413B990B4703645141B23AC7CB42955441D7A370FD05645141F6285C4F3C9554413D0AD73309645141B81E857B3D9554419A9999790C6451413D0AD7E33E9554419A9999D90F64514152B81E854095544152B81E25136451413333338342955441C3F5286C16645141AE47E15A45955441E683B3B219645141FEEF69C146955441E17A143E20645141666666A64A955441CDCCCCBC21645141713D0A2747955441D7A3701D226451417B14AE47469554411F85EBA11C6451418FC2F5C84095544114AE4761196451418FC2F5183E9554411F85EB11166451417B14AEA73B9554418FC2F5D8126451410000009039955441666666B60F645141E17A14BE37955441333333630C64514185EB514836955441B9EF434509645141E53824983595544160E274B708645141B9C1D47835955441471127C607645141C1046AA335955441682B482506645141EBC3FAEC35955441BA5289AF0364514147BBDBC23595544195D65DFA01645141D87E1193359554411717DE24FE635141F82B4FDD349554419CACCB51FB6351414D0507F534955441BB25F92DFA635141B7BE820A35955441F3218316F66351414DB4315A359554412110BF02F36351413B881F843595544114C35F7CEE635141743CACD03595544123E1B725EA6351412771524E369554418693B0CBE46351413E12A370369554413D0AD7B3DC635141EC51B8AE36955441CDCCCC4CD9635141E17A142E37955441D7A3705DD56351410AD7A3B037955441295C8F52CF63514100000070389554419A999939CA635141AE47E11A39955441B81E855BC463514114AE47F139955441D7A370EDBE635141666666963A9554417B14AEE7B9635141B81E851B3B95544100C39723B56351419B2DCB8038955441214B70B7B4635141FB22E31F389554416F791592B2635141B81C909337955441E8D739D5B063514106F9B6433895544159D89982AF6351417582CBD9389554419A999989A96351415C8FC2853C95544152B81E25A46351413D0AD7D33C955441054CE6CE9E63514102F6AC4C3F955441550555FA9C6351411486B725409554413922674197635141BFAECFA441955441F16B41F48C6351412B6CA344429554419167132083635141B8CC25E2409554411700B8637D635141F522030C40955441A4703DEA75635141F6285CAF3E9554418FC2F59873635141713D0AD73E955441B81E85EB706351417B14AEE73E9554411F85EB516D6351418FC2F5083F9554417E712BBD6A6351411A6566AC3E955441B84DE1A96663514169A69C3B3E955441471C36D161635141B9E7D2CA3D955441D5EA8AF85C635141BC8501743E955441BDE7DBAC58635141C3D498C83E955441A4D1F25E55635141739362393F95544196BB09115263514123522CAA3F955441666666F64E635141AE47E13A40955441E17A148E4A6351411F85EB6140955441E17A141E4663514148E17A74409554419A9999B941635141EC51B89E4095544152B81E453E635141A4703DBA409554413D0AD7733A63514114AE47D1409554410AD7A3C035635141666666B640955441295C8FB2326351418FC2F5884095544114AE47A1316351415C8FC275409554418FC2F5382D635141A4703D9A40955441E17A14DE2C6351417B14AE6741955441A4703DEA28635141CDCCCC9C41955441666666F6246351411F85EBC141955441EC51B83E21635141AE47E1EA41955441CDCCCC5C1D6351419A9999294295544185EB51681963514114AE4751429554410AD7A3A011635141295C8F9242955441EC51B8FE0D635141295C8FB242955441AAFF2272ED62514158DCA68541955441A4703D6ADA625141666666064295544100000020D662514133333313419554419A9999D9D16251419A9999094095544185EB51B8CD625141713D0AD73E95544185EB5178C9625141CDCCCC6C3D95544166666666C5625141AE47E1AA3B9554417B14AE77C162514185EB51C83995544114AE47D1BA6251419A9999D935955441AE47E13ABA62514133333363349554417B14AE67B9625141AE47E1EA339554419A999949B26251419A9999D92F955441000000C0AE625141EC51B8DE2C9554410AD7A320AB625141F6285C6F299554418FC2F538A76251411F85EB41269554415C8FC205A4625141713D0AC7229554418FC2F5B8A06251411F85EBA11E9554411F85EB919A6251413333334316955441713D0A6797625141E17A141E12955441000000C0936251419A9999A90D95544114AE47219462514152B81EC50C95544185EB51888E6251411F85EBF10495544138A8F958886251419899C05EF9945441EF8D63118562514136BB243CF59454417BD7C35C80625141A272FAF5EE94544128BD2D157D6251411DE456AFE9945441C6E810CE78625141A45F3244E494544149466FD07362514118F98A6BDE945441BFE946D36D6251418A7EE5DBD89454417B14AEB7676251419A9999B9D39454413333336362625141666666C6CE9454417B14AE975F625141295C8F52CC945441713D0AD75B625141B81E85CBC99454413D0AD7435B625141713D0A37C9945441D7A3701D536251417B14AEF7C3945441E17A149E486251413D0AD773BE945441D001B4FF3B62514154E53976B8945441D527F5FD3A625141D82ECA35B8945441288CDA453A625141871273EEB79454418FC2F50838625141000000A0B7945441B81E85AB30625141B81E85BBB594544174B7A968296251415BAA7DCFB29454412984C2491E62514129B74A38B094544122C4D5EA18625141556AD555AF945441E7D0964511625141EF837B35AF9454413DB7D2C20462514190DDC307B09454415D6AC807FB615141C8D0735BB19454413E9489C4F261514102DFE5EDB2945441F365F5C5EF61514102DFE5EDB2945441A155DE59EC615141F2106137B294544147634480E8615141FB06E25BB2945441A24216A8E16151411B996CEDB394544130A074AADC6151411CA3EBC8B3945441D5A35BF5D861514112AD6AA4B3945441D47C958CCE615141237BEF5AB4945441411724B9BD6151413453F3ECB4945441C7888072B86151413453F3ECB494544113A44CBFB06151412B67F1A3B49454416C6F2030AA61514133497411B5945441A8BC67C6A1615141237BEF5AB49454411C56C0ED9B615141258FED11B4945441B97724CB9761514114C1685BB39454414DA307849361514114C1685BB39454414883E36E8A615141939D279CB19454417376FEE982615141F9435C86AF94544170B694CE7E615141F203BA93AE9454412FC3DEF37A615141552AB01FAD945441C49CDC5977615141F2C3945DAC94544160F69B61746151411E771F7BAB945441B8DC6CB770615141E7836F27AA9454411AC33D0D6D615141BA90BFD3A8945441E3CF873269615141B5903C90A7945441437639D9656151414CEA7EDBA5945441A41CEB7F6261514114F7CE87A4945441A9DC42065F615141DC031F34A39454410703B64E5C615141735D617FA1945441295C8FE25861514114AE4751A094544185EB515855615141AE47E16A9E94544152B81EE551615141E17A149E9C94544114AE47414E615141AE47E1AA9A945441333333834A615141CDCCCC9C98945441713D0A57476151411F85EBF196945441295C8F72446151413333336395945441C0F3C3EA416151410F33C9A593945441151836A33E615141523721C29194544166E186093B615141F6B937838F945441A3B8B8AF37615141F08C110D8E945441C3F528AC34615141295C8FE28C9454418FC2F588306151415C8FC2A58A945441F6285C3F2D615141666666C688945441D9DC26E32B615141D67D57E287945441D7A3703D2B6151410AD7A3F086945441333333C325615141666666E683945441666666262561514148E17AE4839454418FC2F5881F6151415C8FC2D583945441295C8F7218615141EC51B89E819454410AD7A32013615141666666D67F9454418BCF93510F615141C81A7DD37D945441E93A1CDF0A6151419366FF9C7C945441D48AE5F305615141CB2F81AB7B945441DAB4EDA301615141BB91C1777B9454418661F60EFD6051416214C2327B94544186ED3E8BF8605141FE96C2ED7A9454413ED6C65DF4605141473A83977A945441593C4E75F060514185A1C4D979945441492AD7BDEB60514190DD43417A94544123A06137E6605141957B03757A9454411AE32080E1605141321A3DCC7B9454410E02233FDF605141C70745F17B945441073FD4C0DB6051416BE4A79E7C94544192DE8167D76051419C8C09037D9454415A73D184D36051415D1FAF547E94544172A2A1C6CF60514132E04F827E945441A11EB21ACC605141B01451CB7E94544117FA3BDDC66051412E4952147F945441804CA971C2605141DC25B5C17F94544179C5360FBE6051413376788A80945441ADD844D1B96051417C6B1A0181945441806D94EEB56051413E3A9C6E819454413AE39ED5B0605141862F3EE58194544134205057AD605141B7D79F498294544110E39A50A8605141FFCC41C082945441D085CBADA4605141DD7F01AE82945441B2753C1DA16051415BB402F782945441D78775799F605141ECDA22008394544122CA537D976051415186071B84945441921E6BDD8D605141CFBA086484945441BA1309CF8560514117B0AADA849454413285BB99826051411C47A848849454414E4B89497E605141822E697F849454411012D6677860514114032600859454410AE168B871605141D58EC74C8594544154C834D46D6051415E7784B3849454417D674BC0636051412F1A6E808494544134208CC25F6051416E8ECC3384945441225785DF5B605141C54D13288494544117075DC55A605141C81973678394544171057161566051410F5F4BE881945441067415B746605141EA74A21D7E9454419EE08F653C605141E618F7D478945441F613480C36605141A710A16F759454413A26A6293160514188B6A7BD729454411E20F1B22060514128FA93DA6C945441337939EC156051414E8449C36894544177BC2AF00E60514144B1E87864945441C5F388B8086051418CE10585609454416F238A7908605141FBE489FF64945441584FD4540E605141ED3516C167945441DA1A326E12605141D9E15A0F6A9454414DF0744E1D605141E2B4BB596E945441BD506349266051417470D90A72945441BF524AC62B6051411314B9097494544168561DA735605141C92CEDED779454411ACD5DF03B605141EE1696B87B945441E78EBEF2416051417A4246667F945441BE472216496051418AA6FBDB81945441EA3B62354E605141FB2DB21B8394544160B0BAE358605141F464C4928594544199A1D09F586051415320940388945441766C633153605141A6813A3786945441EBCA828B47605141EF2F6D0F839454412DFD95A0396051411AD707BF7D9454412B2E2FC632605141F512630E7B945441B50E77D329605141CBE8D180779454411E07B3F3276051419E3F2FC2769454417345AB601D605141F790CF0372945441C9D64A3817605141E6E3418C6F945441D45C32270860514122C9262B66945441D7A3707D08605141F6285C0F60945441AE47E10AED5F514148E17AD44D94544152B81E45EC5F51419A9999594D9454411F85EB21D75F51410AD7A3904094544100000020D35F5141713D0A873E94544185EB51D8C55F51419A999909389454415C8FC2E5C45F5141C3F5289C3794544100000090B65F5141333333533194544148E17A34B25F51413D0AD7432F945441AE47E1CAA65F5141D7A3701D2B945441C683D4E39B5F51417C6FE39A24945441A9FA326A8A5F5141237722711E9454410EFBD60F795F51419404F67319945441666666C6745F51410AD7A3E0189454419A999999735F5141E17A146E18945441D7A370ED715F5141A4703DCA17945441713D0A976E5F514166666676169454417B14AE176C5F5141AE47E18A15945441EC51B8AE695F51419A99999914945441E17A142E675F514114AE47B113945441E17A14AE645F5141B81E85BB12945441C3F5280C625F514148E17AB411945441B81E852B5F5F51411F85EBA110945441F6285C5F535F5141D7A3700D0C94544165CC575C515F5141D7B507330A945441CB617BF64C5F5141F0208B8908945441F70FD6244B5F5141D6EB90D90794544193E793C4495F5141EDB0705407945441A105556B485F5141F5EEF6D106945441D7A3706D465F5141C3F5281C07945441E17A141E435F51418FC2F5C8059454415C8FC2953F5F514114AE4771049454410AD7A3D03B5F5141EC51B8FE029454418FC2F538385F5141295C8FA2019454417FB97999345F51411D919014FF9354418DD6EEB6345F5141C50EF62EFE935441489D4AB2315F51414CB8A1B1FC93544107A7F0FB2E5F514129C3A174FB93544128C72EC72D5F51418EDC62EEFA9354416959D23C2B5F5141311619DAF9935441BED6A9AF295F51410D4A6031F993544169C92166265F514119D9DFCBF7935441C39A4AD5235F5141A365D5B4F69354417C56A34B1D5F514104D8D3EDF393544118B23801185F5141A5C570AEF1935441902EFA55145F5141EDF9D65BF093544196359AC0115F51412849F47DEF935441CBCA63F00C5F51415DC38EE0ED9354411C5E9014075F5141DC1061E9EB935441B0CF56CA015F5141216D0C23EA935441CFB39F0EFD5E5141BE7A66A0E89354413380A05EF75E5141017111F1E69354418694D94BF35E5141DA7E26BCE5935441081D175AEE5E5141D0D12C45E4935441B4C410B2EA5E5141B3D5E12FE39354417BB6568FE75E514156021442E29354413583915EE55E514154DEF39BE193544177E13FFDE15E5141DA294EC8E0935441615D8B93E15E5141464471ECE0935441295C8FA2E05E5141C3F5288CE09354411F85EB51DF5E514100000020E09354411F85EB21DD5E5141C3F5283CDF935441CDCCCC3CD95E5141295C8FF2DD935441CDAF45D0D65E5141C15AF324DD9354410BD7C057D55E514192F5E7A7DC9354413A2E3605D45E5141839AA90FDC935441AE47E10AD15E51418FC2F5B8DA9354415F46ED77BE5E51414F2D6E43D2935441DA7C568FB65E5141D148D945CE935441D9CD50CEAA5E51414B6B3A44C993544160074876A25E5141D278B94EC7935441267C82889D5E51415D24C0E7C5935441713D0AE7925E51411F85EB51C393544148E17A74905E51418FC2F568C2935441A4703DFA8D5E514185EB5178C1935441333333F38B5E514148E17AB4C093544133333373895E51418FC2F5B8BF9354411F85EB41875E5141CDCCCCFCBE935441333333E3845E5141F6285C0FBE93544148E17A14825E5141B81E85CBBC935441000000507F5E5141C3F528DCBB935441333333837C5E5141CDCCCCBCBA935441EC51B8BE755E5141E17A143EB8935441EC51B8FE715E514100000030B69354419A999979705E5141EC51B85EB5935441BB341329685E5141679FA42AB1935441B132B95E5B5E5141AE32CD71AB935441A3DC451B575E514126E69352AA93544163011F134E5E5141B3CA124BA7935441D85E72B0485E5141D2FBCA62A59354415588683A415E51417E3318A3A29354416663AD0E3B5E5141A9C9E5E5A09354415A1F81AE365E51413C591E00A0935441580C0D66305E51417E54016E9E935441A4703DBA2B5E51413D0AD7539D935441EAF51B5B255E51419B97BF929B935441713D0AC7205E51410AD7A3709A9354416FCD083E1E5E51413A1D6BC79993544150C356C3195E51411CEB64E79893544133333343165E514185EB513898935441AE47E10A0E5E51413333339396935441C3F5287C0B5E5141B81E851B9693544152B81E85025E5141333333039593544100000010005E51419A9999D99493544152B81EF5F65D5141F6285C8F94935441F6285C2FF35D5141295C8F72949354419A999909EB5D5141D7A3703D94935441C3F5281CE65D5141D7A3705D94935441E17A146EDE5D51418FC2F588949354413D0AD713D95D514185EB51989493544131EF0ECBD15D51412FBA82B291935441545E6174CB5D514107E90A9691935441A2ED9800C25D51414C8BFACE91935441A192271BB95D51411231C4CE909354413B05548BB15D51416914B9B292935441908DD789AA5D51412FBA82B291935441C98C9CA4A25D514191E530CF92935441916E1BBE945D5141E0CFD94092935441931F0CD3885D51419728336994935441667860DA885D5141A971678B9493544107AEF89C8A5D51413F8612FC95935441ECEDC10D925D5141E079D01A97935441E3ADAF88945D5141B6B5094E98935441C41F2A05975D5141B79E9FB298935441E74085D9975D5141B79E9FB298935441CCF10837A25D51413646007798935441FC9A3A0EAA5D51416B2BB49597935441D49661BCAD5D514116C24B2F97935441C03562E5AF5D514195315506979354410DA1926AB35D51414AA7FF4D96935441A798E0C6BA5D5141BFF51BD395935441C3E012C7C45D51413F8612FC9593544126AF0A42C95D5141F4FBBC4395935441BE83A32DCD5D514134234B06959354415B94BE60C85D51411580718B9693544120D8CEFADF5D5141F6FD846298935441AB89B275E05D514155E9D9F196935441B8AC67E6E35D5141362513259893544161A84580F15D514157A9C76C999354418E17BD2E055E5141839043AA9B93544118AA2C3F055E51414992501D9C935441E35F3843055E51412E48C8959B9354414CF2AD76125E51418F35E5439D935441719BDF4D1A5E5141F00115A09E9354416359B64E1A5E5141B63B9ABC9E9354410BE80959365E5141762C7EB7A4935441A8770E11405E5141786F98C7A7935441E16CE746605E514189526F59B393544153DA8F615F5E514186C1E5BDB493544143449E7A5A5E51415F055B0CC7935441FA17F788595E5141C7135C6DCA935441E8E634265C5E51414A2625CAD6935441666666865C5E5141000000D0D8935441295C8FA25F5E51415C8FC275CE935441E94E4744665E5141523DA144B8935441658333D75F5E5141F574A0EFB49354417AB573AC605E514148FAD3B4B3935441B800B615665E5141ACF0FADBB3935441988CFE026A5E514157075F51B593544168800117725E514156E67586B9935441480C4A04765E51419C37CC37BC935441FC7264027C5E5141D1F67B2ABF93544149D8B52F7F5E51410681D776C09354413CA4D467815E51416F1BBA69C19354416F522AE5835E5141ACC4409AC2935441F4B875FB875E5141E5307364C4935441AB741A098A5E5141D933D943C59354412F3474728D5E514115C0F972C69354410F9B65A48E5E51411F1967E6C79354416DDC689D935E5141A03E5BF3C9935441A0D2B543975E51413DCAD2BFCA935441FA1012259A5E5141771E4DA4CB935441F92BE6639D5E514114F6A1F0CC935441C657B5949F5E51411356F4B5CD9354419B432950A35E51413B45F9C3CE93544126312FCAA85E5141EAE115ACD0935441904F2786AF5E51415CEA5C3AD3935441F00DCD7CB55E5141104C41BED5935441AC4A2ACABC5E51417B4F653BD99354415187F4ECBD5E51419D79A2ADD9935441000000B0C15E51417B14AEA7DB935441A4703DAAC45E5141666666C6DC935441B87B7764C95E51418E716AE2DF93544129F1F3ADCB5E5141D3E2A3F0E09354411EB296ABCE5E5141FFE6E62BE29354413FB6D9E6CF5E5141D3E2A3F0E0935441D7A3703DD35E51413D0AD743E29354418FC2F598D55E5141CDCCCC2CE39354416F69AF8CDA5E5141FD112BE4E4935441A0C3DD9EDD5E5141A2A05012E6935441901818C9DE5E51413EACB9D8E29354412C953D61DE5E5141151D0790E293544146732864DF5E51415C0F346AE09354410A728673E15E51418AB04048E1935441F25B97BBE05E5141D223BC5FE393544152B81EF5DE5E5141B81E85CBE693544100000010E15E5141E17A148EE79354415C8FC2F5E25E5141D7A3705DE89354413D0AD7D3E45E5141D7A3700DE99354416DFD97D0E65E5141988879D0E9935441E10C9B01E95E5141E72768A3EA935441DD293C6AED5E51413630C14BEC9354410C173F8AEF5E5141096E834CEC93544105CD9DF2F25E51414D2250F6ED9354416E4BE873FA5E5141A7005A12F0935441554D33B20E5F5141AB5B1CF1F79354416AC9BC59125F514147AF6327F993544110EAE2C4165F514159588B9EFA935441BDE65172195F5141BB3BB8CBFB935441AA50D52C195F51412D844D96FC93544112DCE5FC185F51415920342AFD93544166167E90185F51419479F5C9FD9354413DB432AB145F51417A7EC73F03945441B81E85AB085F5141C3F5281C14945441A4703D6A0B5F5141295C8F421694544152B81EC50E5F51413D0AD7E3189454419F9AA20D135F51411011CC1A1C945441DA6C93AA245F514135CB889D029454415969F5F9245F514137D2C4FE01945441D2410D7A195F5141C18A1551FD9354413DCFA1B0195F5141764790ACFB935441ADB26108215F5141E1EA6164FE935441D84DA5B1335F51415B2E7481069454411A62C420365F514171B803B907945441ABCF13B03E5F514106EB87B90A9454411FD515965C5F5141667F836816945441CCD184435F5F5141E22C9B42179454417FA3DD176D5F5141EC58DDF71B945441A7C312D66F5F5141B0AEE7DE1C945441F3748B7D745F51419D18EBD91E9454414575A574785F51413756018220945441592284F57B5F5141B58FB2F82194544176E4424F7D5F5141B35E4E322294544175AB4A23815F514148865E8D2394544183060D02895F51414941E00626945441CD7FA1478B5F5141C4EEF7E0269454417037926E905F5141FDA2C48A28945441755861A7935F5141431CCA112A9454416BD70008945F51418209333B2A945441198AA0E99B5F514165668D922D94544120AA97399E5F5141E113A56C2E9454410B2C9962AF5F5141D1DFB4023694544183207A01C25F5141847741043F94544182D1DBADD25F5141EC55DE4A47945441B076D24EDD5F5141F095CCEA4B94544139C42A8EE35F514142CF05BB4F945441BD4CBB31E95F51415914176C53945441F60088DBEA5F5141BCF743995494544129861A57F95F5141D9D7729E5E9454414970FC53FB5F5141A03E7A3360945441AB06401B03605141071316766594544114411897086051417C6384F6689454418CE5AD7B0E6051413581BDFA6B9454418973BB1813605141CA882E5E6E94544154FD6D4D20605141B839F84474945441BA0B58DB296051417D618D787894544171BB84A232605141333D1B1A7C94544136F0FA703860514184F8FC807E945441ED0CF6FB3F60514196E82E4B81945441EA26CE67486051410EB4ED3F8494544103FE194E4C605141A6D3599E85945441D4F712F2506051413C363E0687945441AE4CF2AB5260514184AB1181879454412D7BF1A8586051417864C9CA88945441D5F2DC695D605141634FD4C489945441E202311E62605141795D5EF489945441F731D10863605141DF51A1FD89945441F41804EB63605141DEAC03118A9454413982925765605141F89795338A9454419C0E49C36B605141412574CF8A9454414A351E516F605141855B40118B945441E23340A4746051410A59CA6F8B9454418BB9B3E07660514160CF135D8B945441A24025607D605141A3746B708B94544194D6827E88605141A16A326A8A94544113CF5BFC9E605141A7621B1C889454415BB094C5AE6051419A5D98A4869454419017D0F0B3605141AFB2B692869454413AFDE6FBC460514197AD331B8594544110CEE70FE3605141690BBE5081945441B29177A4E7605141A0C5CEF4809454415E54BF90EB605141AFA002B380945441D04F6913EE6051412394A7718094544129C2D964F2605141F9E83D3C80945441B1AEE3F5F460514178C30D2680945441CDAE7D0CF86051419D403F0F809454419F0DD218FA605141219B1A38809454414C0A5EC6FE60514147E0538C809454411666E3560161514179C343A880945441440A316304615141A56BC319819454411AC6DBEC07615141CA7B6A8981945441736BEDBC096151419A92CFBD819454410F9164120C61514163247D2A82945441FB9ADDA7106151419E450E1E8394544113D92268116151417E601A5783945441012254DB1A6151410EE72D20869454415119390D22615141810466398894544188DD35DB23615141322E094088945441E1D09BDA24615141CE67843888945441A82336CC256151412B1F7A26889454416C3A484B27615141898DA44E85945441B6359AE428615141521C302386945441B7EA3EE9276151416E81A9B4889454418F11DA5E28615141068D4FEC8994544173A72A762B615141786F58F78B945441127AC7E42D6151417B02F6608D94544147CFC81A35615141DD1ECC9591945441A311E2BE3E6151415A719E5D97945441A4FDF0A6466151417A3A51BF9B945441FFCF5D0B516151411EE2FC56A19454411A5B5FAF5561514113709DABA3945441E4AD657059615141E5FAAD62A5945441005AB1115D6151410F843F0BA7945441A3312294606151418F4DB8A5A89454415363BA6E61615141792AF5E4A8945441CE72388A66615141A53947F4AA945441AEBD89AB69615141277ED042AC945441F9173B1B6C615141153B7951AD94544143C7D0316E615141E0D78AEFAD9454412268D0726F61514108B9C14BAE9454419F9AA22D7361514107C5E0EFAF945441B23D25BF766151418665BF29B194544140D2F1A67B615141A6F65CD7B2945441A5A84EA07E615141754DD4DBB39454416D41AB0F80615141C79AD532B49454412A3B98698661514116425AA0B59454415F34BB8088615141E393A718B69454411B992C688B6151414F77A086B694544109B188B892615141C9CCE291B794544146FA82CBA96151412A12FCE5B8945441BF4ABA58B1615141888A8A10B99454412532FD6FBA615141FFB5B82BB994544176016DF4BA6151413D02E656B994544162523876C261514134C3DF82B994544101465D38CC615141E2494141B99454414345AACFD4615141834CD5FEB8945441356D753AE361514168642B47B894544136FA62A0FB61514172B51F44B69454413D06107812625141F7883F65B4945441F16F65FC17625141B2073F88B494544133BC5DE41E62514107776BBEB4945441F2FC733624625141BC0E70C5B5945441E52AD4F72562514118E6691CB694544155D7868828625141D515C1F3B6945441358E208B2862514193A7ACF4B6945441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>987002 - 410369
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 30 </desc>
+<a>
+0106000000040000000103000000010000000B03000077FC34C9655F514105C0F876199454415CA32D94655F5141B9256A7819945441FAE81C9D675F5141130F47171A945441CFDFFED96F5F51412465C9E91C945441E862BCFB7B5F5141DAC44BFB21945441D8972E587D5F51417860C0332294544175AB4A23815F514148865E8D2394544183060D02895F51414941E00626945441CD7FA1478B5F5141C4EEF7E0269454417037926E905F5141FDA2C48A28945441755861A7935F5141431CCA112A945441AE90262B935F5141C2753BC52A9454411ACF9227835F51410B971953259454419941422A745F51411FCB8EB71F945441F6306C92735F514101C9CD78209454417C58F7C17F5F514130CD1D9825945441ED7D8F54935F5141FF1587552C9454417A8C724F9B5F5141BB8EE3F92E945441C6C6F8119A5F5141D81105D82D945441C8C62A70935F514154D16DB72A9454416BD70008945F51418209333B2A945441198AA0E99B5F514165668D922D94544120AA97399E5F5141E113A56C2E9454410B2C9962AF5F5141D1DFB4023694544183207A01C25F5141847741043F94544182D1DBADD25F5141EC55DE4A47945441B076D24EDD5F5141F095CCEA4B945441BF2BC22BE35F51410D18E4754F945441BAC767B4E35F514129F57ED74F945441BD4CBB31E95F51415914176C53945441F60088DBEA5F5141BCF743995494544129861A57F95F5141D9D7729E5E9454414970FC53FB5F5141A03E7A3360945441A0719D4B02605141E7FD7FF1649454419EF0F19808605141D7DCB2F7689454412DC905FD0D605141D5EB54DA6B94544146C71D410E6051419D188E1F6D945441381692450C605141A5E0420E6C945441BDE45E18066051417A1AD19F6894544109C1AA16FE5F51414BA3D335639454415B86CD21F95F51418C5D09F9639454417641524802605141EEDDB02A68945441A63DCC470B6051415296A36D6D945441904908F30D605141D50A0FF46E945441B0ED63261A6051410F820C5E74945441F2A799E91A605141174AC14C73945441B2C248DD0E605141E2361E5A6D9454418CE5AD7B0E6051413581BDFA6B9454414A6A59131360514171B5C65B6E9454411434D8CD2760514147512D9F779454410CB1D5B53A60514198E542717F94544192F612504D6051412F8EE7F88594544164A65B595260514171B24B6E87945441A2A60849556051417E122919889454417172DE685D6051419043CAC4899454416390222E63605141296D1AFF89945441FDD8E8FC6B605141B205EBD48A94544108F85E9174605141A3746B708B9454410B9880D876605141C966FB5C8B945441A24025607D605141A3746B708B94544179AF3B3B7D6051415756624F8C94544155ABEB1B78605141C5FA2F5D8C9454415E9275456D605141CE7B90FC8B945441BD34E6D0606051410FB616BF8A9454416C133AA15F605141CE7B90FC8B9454414BF6DD9063605141DF3034A28C945441E9B964316C605141F0E5D7478D945441D851ACC670605141F0E5D7478D9454417BAF6D9976605141540945B68D94544152B81E557D6051417B14AE578D94544148E17A947E6051413D0AD7938D9454410AD7A3E07F6051411F85EBD18D9454415C8FC2D581605141F6285C2F8E9454418FC2F5788760514114AE47E18D9454411F85EBF18C605141D7A3704D8D9454413333338395605141000000708C945441F6285CAF9C60514185EB51B88B94544166666686A1605141A4703D2A8B94544152B81E85A5605141EC51B8BE8A94544133333313AA6051411F85EB518A945441D7A370FDAD605141EC51B8EE8994544133333353B26051415C8FC27589945441713D0A97B66051411F85EB018994544133333323BB605141CDCCCC7C889454413D0AD763BF6051415C8FC2158894544185EB5198C360514148E17AA487945441F6285C3FC8605141CDCCCC2C879454419A999919CC60514114AE47D186945441AE47E15AD060514152B81E5586945441EC51B88ED46051419A9999D985945441713D0AE7D86051410AD7A3608594544114AE47F1DC605141CDCCCCEC84945441F6285C3FE16051415C8FC285849454411F5E7C41EA6051414AEE0DA183945441C5085BADEE6051410B820517839454413F157D69F76051413A396AFB829454416BC4618D0D61514138C0CA9985945441D5652BDD1561514171B24B6E87945441E6A52C9922615141640BB99D8C9454415A690C2422615141769B227B8A94544192D61063206151418EC731E1889454414208E94911615141960A6A3A84945441B4213B690D615141B892DBAE8394544189E9A74307615141B0DFF84782945441C889253202615141E917BECB8194544100281440F7605141D8621A2681945441924F9946E260514167712F7F8294544191917DBDE26051414E40345781945441F6BFF1EFE760514120D1E3EE809454410818237CEA60514138DF23CF80945441344AF6F6EE605141068C835A80945441866E595EF36051414870A333809454418CAE9CECF76051418954C30C8094544158DA50C5FD605141C5A76381809454411666E3560161514179C343A880945441D060F683056151416A32C4438194544195BC19390A6151418093D4CB81945441F9111E4C106151416171D50283945441E7FFF23417615141CBE7A60F85945441C5CCFA2322615141322E09408894544114513C4424615141322E0940889454416866FDC8256151415820992C88945441C67BBE4D276151416411F74985945441D9AC5FF928615141558077E585945441B7EA3EE9276151416E81A9B488945441E93DDF5D286151414F5FAAEB899454417576D17A2B615141B9D57BF88B9454415D43D96936615141916240599294544152013F763E61514115DA433597945441315E94FA45615141C3D456629B9454412A496805486151411E055F7C9C94544103CA8B6150615141F6D6BA00A1945441A2331F2A55615141B892BC6EA3945441E4A854FC60615141EE1953D5A89454412396BD2561615141807585C7A894544159CCFC3868615141616C02A2AB94544154AB2F3F6C61514159AB1361AD945441BAF1916F6F615141BC51544AAE9454411CA7743B73615141D982F5F5AF945441F5E2FCC57E615141EF53B8E8B3945441D6DF73918861514118E6691CB694544192EA5A709261514192EDBA8DB7945441D4CACC7EAB6151410CF50BFFB89454412532FD6FBA615141FFB5B82BB9945441D2C333A7BA6151413EA32155B99454416CB15D2FC361514122561C87B9945441ECD5CDCFD96151414DD92BD8B8945441400A05E9E36151415C6AAB3CB894544160980852FF61514159CA89F5B5945441783EC7C112625141588C3A5FB494544138211FE81E62514178EC88BEB4945441E52AD4F72562514118E6691CB6945441DDE2CC562D625141E3001586B89454418C836E7834625141DD418DD1BA945441BC04276440625141920C3122C09454418E701ECB4A62514194BBF44BC59454413B7AD3DA516251418E9A2752C9945441896EC76557625141B0CCFACCCD9454419C3B955D5E62514135892E22D5945441846C7000646251412E2331AFD6945441B43E65C26A6251417C17253ADC9454413535BDEB7562514146C22D60E894544193BA30DB7A6251412DE07125EE945441A90F07A283625141ECF2B345FA945441549B2CF3866251411D14FDF3FF945441E68D576C846251415E80A0A50295544198288CE08A6251414C6E758E09955441D83AC4309662514170FECF5C18955441C9C8BA609F6251411A87D9B92595544188352E44A8625141B9DC243B2F9554414CB75589AC6251410DE81ED832955441CE7D667AB062514192DAF6F635955441D5364F8AB76251411B7540BA3A955441E2C3706CBF625141765473293F95544137CF6A09C3625141E39ED9A340955441E28DD0E7CB625141954CC816449554413699CA84CF62514105C3F5BE449554415C655844D5625141136B676346955441BEFD73C3E0625141B19CAB5F47955441BEAC837CF362514179E1940B47955441BD76E3F7FF625141AAC8728D4695544134A6F9AF07635141136B67634695544145A5ECB11D635141A3F439BB459554416F9D419F22635141136B676346955441AE1141032A635141E28389E146955441FB2DB20B336351417D0D5C3946955441F07DF93C3F6351415914D95E469554414AA1A471506351417639236745955441621376915E635141A72001E9449554414E7FF24965635141AC5E78FF44955441D5E0249773635141FEEEBCEC4395544130A507447E635141A72001E9449554415C8FC2A5816351418FC2F5C8459554413D0AD733856351410AD7A3704595544185EB514888635141C3F5285C4595544148E17AC48E6351411F85EB4145955441F6285CCF946351410AD7A300459554410AD7A3909A635141CDCCCCBC4495544152B81EE5A06351418FC2F56844955441AE47E1EAA16351410000006044955441B81E85ABA463514133333333449554411F85EB61A8635141D7A370FD43955441A29F253BA96351412401366C40955441E84EAE76B4635141B9A684B63B955441854A52EEC16351415330570E3B955441D266C3F6CA63514114A107E8399554413109B8CCCA635141C07ABD883C95544133333383D0635141B81E855B3F955441CDCCCC0CD6635141E17A147E3E95544166666626D96351419A9999293E955441333333A3E16351410AD7A3203D955441295C8FD2E563514114AE47A13C955441B81E854BEA635141000000003C9554415C8FC2F5EE635141E17A147E3B955441AE47E13AF363514148E17AF43A9554419A999959F76351415C8FC2753A9554419A9999C9FA635141F6285C3F3A955441C1CEFFD0EA6351418AA9CC2C5E955441AE83EA4DEA635141FD4AFD5E5F95544157FAD8EBEB6351417AFFF63060955441760C703DF263514129F0A66463955441A7E5B4B4F4635141DE8FCD8C649554417E49E925F5635141A9110D8663955441FFE6A50603645141D86E324243955441560FE0C0096451413D384340459554417FEB9268FC63514125A2A0A663955441CEC04DC5FA635141FAE7CBB7679554412CBB87E3FD6351416B64E04C699554411072B0C9066451412D0E3FC76D9554410F922B580D645141866AD8276B95544175EEAD9216645141C10069B751955441FFAFFCB011645141E19C04AF4C9554410E2D5F280B64514111E7F928459554411996F53C036451412EA0C0C842955441D7A370FD05645141F6285C4F3C9554413D0AD73309645141B81E857B3D9554419A9999790C6451413D0AD7E33E9554419A9999D90F64514152B81E854095544152B81E25136451413333338342955441C3F5286C16645141AE47E15A45955441BB8B07A2196451414C267EB746955441E17A143E20645141666666A64A955441CDCCCCBC21645141713D0A2747955441D7A3701D226451417B14AE47469554411F85EBA11C6451418FC2F5C84095544114AE4761196451418FC2F5183E9554411F85EB11166451417B14AEA73B9554418FC2F5D8126451410000009039955441666666B60F645141E17A14BE37955441333333630C64514185EB51483695544160E274B708645141B9C1D4783595544113ABB3EC0564514192DAF6F635955441C99FB94F026451415A1FE0A2359554416EC086E0FD635141534BA7D0349554418A2BBAEBFA635141EAA8B2FA34955441FE64A9FAF66351412264C94E35955441E214C6B1F3635141B9C1D4783595544122BF659AEE635141F17CEBCC35955441A0F854A9EA635141C0950D4B3695544157DD9903E5635141622CF66E369554413D0AD7B3DC635141EC51B8AE36955441CDCCCC4CD9635141E17A142E37955441D7A3705DD56351410AD7A3B037955441295C8F52CF63514100000070389554419A999939CA635141AE47E11A39955441B81E855BC463514114AE47F139955441D7A370EDBE635141666666963A9554417B14AEE7B9635141B81E851B3B95544166666666B46351415C8FC2653B9554417B14AE07AF635141EC51B80E3C9554419A999989A96351415C8FC2853C95544152B81E25A46351413D0AD7D33C955441550555FA9C6351411486B725409554415DF4DD8E976351418BD01DA0419554416BD2EFB78C635141F0464B484295544150B8ACF37C6351417D28ACFB3F955441A4703DEA75635141F6285CAF3E9554418FC2F59873635141713D0AD73E955441B81E85EB706351417B14AEE73E9554411F85EB516D6351418FC2F5083F9554410AD7A3B06A635141666666163F95544152B81E45676351415C8FC2453F955441A4703DDA63635141333333633F95544100000090606351415C8FC2853F9554418FC2F5685D635141CDCCCCBC3F95544152B81EB559635141AE47E1DA3F9554419A9999695663514185EB51F83F9554411F85EBF15263514185EB511840955441666666F64E635141AE47E13A40955441E17A148E4A6351411F85EB6140955441E17A141E4663514148E17A74409554419A9999B941635141EC51B89E4095544152B81E453E635141A4703DBA409554413D0AD7733A63514114AE47D1409554410AD7A3C035635141666666B640955441295C8FB2326351418FC2F5884095544114AE47A1316351415C8FC275409554418FC2F5382D635141A4703D9A40955441E17A14DE2C6351417B14AE6741955441A4703DEA28635141CDCCCC9C41955441666666F6246351411F85EBC141955441EC51B83E21635141AE47E1EA41955441CDCCCC5C1D6351419A9999294295544185EB51681963514114AE4751429554410AD7A3A011635141295C8F9242955441EC51B8FE0D635141295C8FB242955441F6285C4F0A6351410AD7A3D042955441C3F5286C026351413D0AD7234395544114AE47A1FE62514100000040439554410AD7A3E0F9625141CDCCCC6C439554410AD7A350F562514114AE47A14395544185EB5108F16251413D0AD7C3439554418FC2F568EC625141EC51B8FE43955441A4703D9AE76251417B14AE07449554413D0AD733E362514185EB5168439554413D0AD7A3DE6251419A9999D942955441A4703D6ADA625141666666064295544100000020D662514133333313419554419A9999D9D16251419A9999094095544185EB51B8CD625141713D0AD73E95544185EB5178C9625141CDCCCC6C3D95544166666666C5625141AE47E1AA3B9554417B14AE77C162514185EB51C83995544114AE47D1BA6251419A9999D935955441AE47E13ABA62514133333363349554417B14AE67B9625141AE47E1EA339554419A999949B26251419A9999D92F955441000000C0AE625141EC51B8DE2C9554410AD7A320AB625141F6285C6F299554418FC2F538A76251411F85EB41269554415C8FC205A4625141713D0AC7229554418FC2F5B8A06251411F85EBA11E9554411F85EB919A6251413333334316955441713D0A6797625141E17A141E12955441000000C0936251419A9999A90D95544114AE47219462514152B81EC50C95544185EB51888E6251411F85EBF104955441E17A143E83625141B81E856BF59454419A9999797E625141666666E6EE945441CDCCCC8C7A6251410AD7A380E99454419A9999497662514148E17A94E3945441AE47E1DA71625141295C8F72DE945441D7A370ED6C625141CDCCCCDCD89454417B14AEB7676251419A9999B9D39454413333336362625141666666C6CE9454417B14AE975F625141295C8F52CC945441713D0AD75B625141B81E85CBC99454413D0AD7435B625141713D0A37C9945441D7A3701D536251417B14AEF7C3945441E17A149E486251413D0AD773BE945441E17A140E3B6251410AD7A300B894544148E17AC4376251413D0AD753B99454418FC2F50838625141000000A0B7945441B81E85AB30625141B81E85BBB59454419A9999392962514185EB51B8B3945441AE47E1DA21625141E17A147EB2945441C3F5284C196251418FC2F518B2945441A4703DAA116251418FC2F598B1945441D7A3708D0A6251411F85EB01B2945441CDCCCC5C0662514133333333B294544100000010026251410AD7A380B2945441F6285C4FF761514114AE4711B394544152B81E05F3615141AE47E14AB3945441B81E85CBEF6151410AD7A370B3945441E17A145EED615141AE47E18AB394544114AE4741EB6151418FC2F598B394544133333383E8615141A4703DEAB3945441CDCCCC0CE06151413D0AD793B4945441CDCCCC4CDC615141CDCCCCDCB494544185EB51E8D861514133333313B5945441713D0AC7CE61514166666606B69454413D0AD773BE615141E17A146EB694544152B81E05B8615141295C8FA2B694544133333383B1615141713D0AD7B6945441713D0A17AA615141D7A3705DB6945441333333B3A1615141EC51B8DEB5945441E17A14CE9A6151413D0AD773B5945441D7A3707D97615141B81E85FBB4945441713D0A379461514133333393B4945441F6285CAF8A615141C3F5284CB3945441A4703D4A8261514114AE47C1B0945441AE47E1CA7E615141B81E858BAF945441295C8F627B61514133333363AE945441D7A3701D7861514185EB5148AD9454417B14AEC774615141CDCCCC1CAC9454417B14AEB7706151415C8FC2B5AA945441AE47E14A6D61514152B81E95A9945441295C8F52696151419A9999E9A7945441D7A370DD656151410AD7A380A69454415C8FC25562615141B81E850BA5945441D7A3700D5F6151417B14AEA7A39454418FC2F5285C6151413D0AD723A2945441295C8FE25861514114AE4751A094544185EB515855615141AE47E16A9E94544152B81EE551615141E17A149E9C94544114AE47414E615141AE47E1AA9A945441333333834A615141CDCCCC9C98945441713D0A57476151411F85EBF196945441295C8F72446151413333336395945441295C8F724161514152B81EB59394544114AE47413E615141295C8F0292945441D7A370ED3A61514133333333909454413D0AD7B3376151415C8FC2858E945441C3F528AC34615141295C8FE28C9454418FC2F588306151415C8FC2A58A945441F6285C3F2D615141666666C688945441CDCCCC8C2B615141000000F087945441D7A3703D2B6151410AD7A3F086945441333333C325615141666666E683945441666666262561514148E17AE4839454418FC2F5881F6151415C8FC2D583945441295C8F7218615141EC51B89E819454410AD7A32013615141666666D67F945441000000400F615141666666967E945441E17A14FE0A615141E17A14FE7D9454415C8FC28506615141EC51B84E7D945441C3F5281C02615141333333737C9454413D0AD7E3FD6051418FC2F5587C9454410AD7A380F9605141C3F5286C7C945441A4703D7AF5605141666666867C9454417B14AE47F16051413D0AD7837C945441666666C6EC60514185EB51A87C9454410AD7A340E8605141D7A3701D7D94544185EB51E8E36051419A9999997D9454411F85EBA1DF60514114AE47F17D945441295C8FA2DB605141F6285C4F7E945441A4703D4AD76051410AD7A3C07E945441E17A142ED360514148E17A247F94544114AE47D1CE605141713D0A777F945441A4703DDACA6051417B14AED77F945441F6285C3FC660514148E17A348094544133333313C260514185EB51A880945441295C8FD2BD6051417B14AE078194544114AE4741B9605141CDCCCC6C81945441D7A3700DB56051413D0AD7D3819454418FC2F5C8B06051417B14AE3782945441A4703DBAAC605141B81E85AB82945441F6285C3FA86051410000001083945441CDCCCC3CA4605141EC51B86E8394544185EB51689F60514114AE47C183945441C3F5289C97605141CDCCCCCC849454415113DC0D8E605141359F2FC985945441F3BB5DF7856051414654D36E86945441E1ED437B7A605141F57F127A8A945441B54F87CB7E605141F57F127A8A9454411973F4397F6051410635B61F8B945441AE0206768D6051417626A1C6899454412DA9626493605141EE4BCF7389945441999AE94E9F6051413A86553688945441C8BD2F81A260514100DB68CB8794544117B2230CA8605141B395386A87945441C259A3FDBD605141D2B737338694544108AC1EDCCD6051411C5D464D849454419F7339F8DC605141F3CA941982945441A022FD21E2605141A68564B88194544123EB3CD4E1605141092CA5A182945441064AE9BDDC605141B9B605648394544108AC1EDCCD605141E248B797859454414E92951AC1605141365E781C879454416A14739CBD6051418DA3A87D879454415F153FB9BB605141B02CE48287945441F38DCDDDB560514126CDF8B78794544197F9B70BAE60514100DB68CB879454414565A239A6605141D557597A889454415777CD509F605141A0D4492989945441B4DDCAAB9B605141D227EA9D899454411E35262495605141C2966A398A945441888C819C8E605141B205EBD48A945441A92F2C188760514162904B978B945441B8A135E87D60514178F15B1F8C945441821E26977E60514197135BE88A945441E08423F27A6051417121CBFB8A945441C683F12278605141562F3B0F8B945441700CFB7F85605141D2B7373386945441B7F271BE78605141040BD8A7869454410AD7A35072605141EC51B86E86945441E17A149E6D6051418FC2F52886945441444FADD05B60514168416626849454414F0F809C4660514113E8FC427F945441B87F3C023F6051410E01D7D57C945441D89C66B441605141768CCA507F94544165AB49AF496051410E4EC2108294544193CAD0E3586051417D0DF991859454417894CC9E58605141F098EC0C889454413A656680526051415E9D65FB85945441657B40104760514159B48EEE82945441BA9AC4673A6051411BD9360D7E94544131B8053F32605141353155D97A945441EC6E5ABB26605141ADD31246769454418B95455A1D605141DBF3E5007294544126099B731A6051418FC0A3716C9454414ADA24FE16605141D97747856A945441A2F314F90C6051410F18FB4B63945441DCECB8E80160514153C068B05B945441F780D03AEB5F5141CE7A86B84C9454411F85EB21D75F51410AD7A3904094544100000020D35F5141713D0A873E94544185EB51D8C55F51419A999909389454415C8FC2E5C45F5141C3F5289C3794544100000090B65F5141333333533194544148E17A34B25F51413D0AD7432F945441AE47E1CAA65F5141D7A3701D2B945441EC51B89E9B5F514152B81E25279454415C8FC2958A5F514185EB51D820945441C3F528AC785F5141E17A145E1A945441666666C6745F51410AD7A3E0189454419A999999735F5141E17A146E18945441D7A370ED715F5141A4703DCA17945441713D0A976E5F514166666676169454417B14AE176C5F5141AE47E18A15945441EC51B8AE695F51419A99999914945441E17A142E675F514114AE47B113945441E17A14AE645F5141B81E85BB12945441C3F5280C625F514148E17AB411945441B81E852B5F5F51411F85EBA110945441F6285C5F535F5141D7A3700D0C9454410AD7A390505F514185EB51F80A945441AE47E1FA4C5F51413D0AD79309945441C3F5289C4B5F5141A4703D0A09945441295C8FC2495F51415C8FC26508945441D7A3706D465F5141C3F5281C07945441E17A141E435F51418FC2F5C8059454415C8FC2953F5F514114AE4771049454410AD7A3D03B5F5141EC51B8FE029454418FC2F538385F5141295C8FA201945441F6285CBF345F514185EB51480094544135B4811E305F5141996F569CFE9354411F85EB012D5F5141F6285C3FFD935441713D0A67295F51417B14AED7FB93544148E17A14255F5141B81E857BFA9354411F85EB911D5F5141CDCCCC8CF793544148E17A94195F51415C8FC215F69354411F85EB01165F514152B81EB5F49354410AD7A370125F5141EC51B85EF3935441B81E854B0F5F51415C8FC225F293544133333393095F5141295C8F12F09354415C8FC205035F514152B81E85ED9354418FC2F528005F51413D0AD773EC93544166666666FB5E5141E17A149EEA9354415C8FC2C5F75E5141EC51B84EE993544114AE4741F65E51413D0AD7C3E89354411F85EBC1F35E5141C3F528BCE793544148E17A34F15E5141666666D6E693544114AE47F1EC5E5141E17A142EE59354417B14AED7EA5E5141F6285C7FE4935441F6285C9FE85E5141D7A370ADE39354411F85EBB1E65E5141000000F0E2935441F6285CCFE45E5141AE47E12AE2935441CDCCCCCCE25E51419A999969E1935441615D8B93E15E5141464471ECE0935441F25B97BBE05E5141D223BC5FE3935441FFCFDD42DF5E5141C55D35EAE593544160D6FCE4DD5E5141FBE0443BE5935441901818C9DE5E51413EACB9D8E29354412C953D61DE5E5141151D0790E29354415484426FDF5E51419CAF4A2BE09354410544B31FE15E5141678628BEE0935441295C8FA2E05E5141C3F5288CE09354411F85EB51DF5E514100000020E09354411F85EB21DD5E5141C3F5283CDF935441CDCCCC3CD95E5141295C8FF2DD935441713D0AF7D65E51417B14AEF7DC935441295C8F22D45E5141A4703DFADB935441AE47E10AD15E51418FC2F5B8DA935441295C8FE2CD5E51418FC2F588D99354415C8FC275C85E51410AD7A380D7935441AE47E15AC55E5141295C8F72D693544152B81EE5BB5E5141A4703DCAD29354418FC2F588B75E5141D7A3702DD1935441E17A14BEB35E5141A4703DBACF935441EC51B8BEB25E5141E17A145ECF9354419A9999F9AE5E514185EB51E8CD93544114AE4721AC5E51411F85EBE1CC9354418FC2F528A65E51411F85EB91CA93544152B81EC5A15E514114AE47F1C8935441C3F5285C9E5E5141713D0AA7C79354411F85EB119B5E514133333363C6935441713D0A47985E51411F85EB51C59354417B14AE97955E51418FC2F548C4935441713D0AE7925E51411F85EB51C393544148E17A74905E51418FC2F568C2935441A4703DFA8D5E514185EB5178C1935441333333F38B5E514148E17AB4C093544133333373895E51418FC2F5B8BF9354411F85EB41875E5141CDCCCCFCBE935441333333E3845E5141F6285C0FBE93544148E17A14825E5141B81E85CBBC935441000000507F5E5141C3F528DCBB935441333333837C5E5141CDCCCCBCBA935441EC51B8BE755E5141E17A143EB8935441EC51B8FE715E514100000030B69354419A999979705E5141EC51B85EB5935441333333E3675E5141D7A370EDB293544114AE47D15A5E5141713D0A17AE935441295C8FC2585E514152B81E75AD935441A4703D3A4E5E514152B81E55A99354419A9999394A5E51410AD7A3D0A79354415C8FC285425E51411F85EBF1A49354411F85EBD13B5E5141AE47E17AA293544185EB5108375E5141333333F3A09354413BAA5A3E315E514137AE1A039F935441FBF066792B5E5141B12066499D9354419F33F136275E5141FD5AEC0B9C93544188CB9C881E5E5141A505FDD59993544133333343165E514185EB513898935441AE47E10A0E5E51413333339396935441C3F5287C0B5E5141B81E851B9693544152B81E85025E5141333333039593544100000010005E51419A9999D99493544152B81EF5F65D5141F6285C8F94935441F6285C2FF35D5141295C8F72949354419A999909EB5D5141D7A3703D94935441C3F5281CE65D5141D7A3705D94935441E17A146EDE5D51418FC2F588949354413D0AD713D95D514185EB519894935441295C8F12D05D5141713D0AC794935441666666B6CB5D5141A4703DEA9493544135CAA38EC35D51413DB413059593544185EB51D8C15D51418FC2F50895935441295C8F32BE5D51413D0AD72395935441AE47E11AB35D51418FC2F548959354413D0AD723B05D51410000006095935441A4703D6AA55D5141CDCCCCAC959354410AD7A360A25D51413D0AD7C3959354415C8FC285945D514152B81E1596935441666666E6925D51413D0AD723969354415C8FC265925D5141AE47E13A95935441931F0CD3885D51419728336994935441667860DA885D5141A971678B949354415AAF9464875D514122D778A394935441758C2FC6875D5141DB336CD390935441A895D98D865D51416BD4E6BF909354414CFE0869855D5141CA287F8B969354415F2D335F825D5141E4AAA8B59693544195D1EDE6725D5141CCA5E5489593544157929D00655D5141507CC8F3939354418B9B47C8635D514137CB3CF8919354412E0477A3625D5141739C9BAE8F9354410C8B36B9615D5141739C9BAE8F935441F511F6CE605D51410FC29230939354413429AC3C585D514154E327079293544122CF622F505D5141545BA6D58F935441747655E6445D5141993F8B248D9354412AE340B6395D5141793AB88689935441CD6854002D5D5141F9BC05878493544188AF809A265D51419066ACAB81935441F1788143265D51415F1F42E48193544114AE47E1245D5141CDCCCC2C83935441C3F528AC245D5141F6285CBF8393544104E3229E245D51410254089B86935441D7A3709D245D5141F6285CBF869354410E9DE4A4245D5141F5B080C2869354419272DCA4245D5141D83AE3C586935441747AE289245D514102028AC886935441BDB90789245D5141C7962BD586935441BFB6402F2D5D51413A259E448A935441EFE00C15305D514180432E7F8A93544176950518395D51415E8C16298E9354412C6CFCD4435D51417DE9CC3292935441CA9BEC814E5D514112731E2C9593544190D486F6575D514191832F3B979354419F0A8F875D5D51416C2B116F9A935441CBD000F6605D51411D45CC459B935441C8F12214655D5141C1ADFB209A935441A2990448685D51417FF3C55D999354417F5AA9506C5D5141CC227672999354419BB93249795D514157EA1B969A935441A68BE0627F5D51410804D76C9B935441EA4F0F51875D51414E2267A79B935441DF2DF915905D51414E2267A79B9354410690100D945D514178B08D049E93544107158DA2975D5141734C338D9E9354412F1E376A965D514169FF01099C9354415A5F2C43965D514198A451599B935441DEDD90F49E5D5141E2263C0B9B9354414B5E3826A35D51410D6831E49A93544150470F33A65D51419D08ACD09A935441F481EC27AB5D5141C1ADFB209A935441AC09FBA0B25D51410F94404A999354415F2DAFA2BA5D5141E5524B7199935441FE033220C05D514159162BFC98935441E1CC3572C75D5141E5524B7199935441B0CD84D5CF5D51417B8F6BE69993544108DFE447DA5D51410B30E6D299935441C624AF84D95D51419F34BB3699935441EAA7E899E15D5141A5D060BF99935441AD510D4EE05D51415286C11E9B9354412B621E5DE25D51414ABE0C309C935441189A696EE35D51410D6831E49A935441F4ECA64BF15D514145C9B5D49B9354419DD758601A5E51413CFF2E14A1935441BCE35A621A5E51415C310CF2A0935441A8825B8B1C5E5141A79A7458A193544195A95725305E51410A696CD3A59354415AED67BF475E51417A5A19BFAD935441A737ABF24A5E5141E647366DAF935441F4A2DB774E5E5141120EC558B1935441EC51B8CE4F5E51410AD7A300B3935441AE47E14A555E5141C3F5286CB293544148E17AD4575E5141295C8F52B393544148E17A145F5E5141B81E85FBB5935441F6285CEF595E51415C8FC2D5C6935441264ED56D595E51410C587663C8935441E8E634265C5E51414A2625CAD6935441666666865C5E5141000000D0D8935441295C8FA25F5E51415C8FC275CE93544166666626665E514114AE4781B8935441AE47E19A675E5141713D0A17B9935441C0E40AA8695E51411DA27CD1B993544109A787866D5E51416D7EF435BB93544114F5176A6A5E51419F213B1EB79354419A545F9E745E5141794808D3BC93544197FAFD517C5E51411336B443BF935441E20165997F5E5141C0EB14A3C0935441898213E8815E51418C05D1A0C193544166FB4CB5845E5141E9793B00C393544171CDFACE8A5E51416326F297C59354412F3474728D5E514115C0F972C693544106293E788E5E514130E231D4C7935441067629B3935E5141109353FCC9935441A0D2B543975E51413DCAD2BFCA935441FA1012259A5E5141771E4DA4CB935441F92BE6639D5E514114F6A1F0CC935441C657B5949F5E51411356F4B5CD9354419B432950A35E51413B45F9C3CE93544126312FCAA85E5141EAE115ACD0935441904F2786AF5E51415CEA5C3AD3935441F00DCD7CB55E5141104C41BED5935441AC4A2ACABC5E51417B4F653BD99354415187F4ECBD5E51419D79A2ADD9935441000000B0C15E51417B14AEA7DB935441A4703DAAC45E5141666666C6DC93544114AE4721CA5E51415C8FC2D5DE935441AE47E16ACD5E514133333303E09354413D0AD783D05E51411F85EB31E1935441D7A3703DD35E51413D0AD743E29354418FC2F598D55E5141CDCCCC2CE39354417B14AE77D85E514152B81E35E49354416F69AF8CDA5E5141FD112BE4E4935441A96FF248D85E514117951A64EA935441BA712294D85E5141C714E656EC93544103EBB6D9DA5E5141096E834CEC935441BA8CF6D2DB5E5141FA4869EBEA935441FE03B2A0DD5E51411E66B700E693544152B81EF5DE5E5141B81E85CBE693544100000010E15E5141E17A148EE79354415C8FC2F5E25E5141D7A3705DE89354418644B3B5ED5E51410DE22068EC9354410C173F8AEF5E5141096E834CEC93544105CD9DF2F25E51414D2250F6ED9354416E4BE873FA5E5141A7005A12F0935441554D33B20E5F5141AB5B1CF1F793544110EAE2C4165F514159588B9EFA935441BDE65172195F5141BB3BB8CBFB935441AA50D52C195F51412D844D96FC935441C3F528AC185F5141D7A3700DFE935441250001C8145F5141A107C86103945441B81E85AB085F5141C3F5281C14945441A4703D6A0B5F5141295C8F421694544152B81EC50E5F51413D0AD7E318945441713D0A27165F514114AE47C10E945441295C8F02205F51413D0AD7530194544164AA4760205F51412542C2EE00945441C8CD93B9205F51410525FB88009454418FC2F548295F514185EB51E803945441AE47E1FA295F514185EB513804945441EA7C720A2D5F5141B6F1A95E05945441913E16292A5F51414349B595039454415AAFD0B5235F51412B64F6A9009454414E9A448E195F51419A0624CDFC9354413DCFA1B0195F5141764790ACFB935441ADB26108215F5141E1EA6164FE935441D84DA5B1335F51415B2E7481069454411A62C420365F514171B803B907945441ABCF13B03E5F514106EB87B90A9454411FD515965C5F5141667F836816945441CCD184435F5F5141E22C9B421794544101BEDBEB625F51417171B97B1894544177FC34C9655F514105C0F8761994544101030000000100000005000000631EA276255D5141021E8369829354411DC4753E245D514194988E3483935441B81673AF245D514168C2DD57839354418E31BF90255D514193A7917682935441631EA276255D5141021E83698293544101030000000100000004000000CB19A540195F5141671B8B5CFC935441EBB03C1F195F5141B09B0A91FC935441AA50D52C195F51412D844D96FC935441CB19A540195F5141671B8B5CFC935441010300000001000000040000000544B31FE15E5141678628BEE0935441615D8B93E15E5141464471ECE09354416D09AF95E15E5141DD683AE6E09354410544B31FE15E5141678628BEE0935441
+</a>
+
+<b>
+010600000001000000010300000001000000C5020000358E208B2862514193A7ACF4B69454417439CCB23E6251417DE4F960BF94544192CB838D4A625141B2F7602DC5945441CC8090DC5162514132488F53C99454415EDB9B715462514149298B74CB945441B6A3B43C57625141F48AC8ABCD9454416042C11A5B625141B69BA4B3D19454419E7812935C625141AAF0A93FD3945441F759254E5D625141B1568804D49454419C3B955D5E62514135892E22D5945441F71811D765625141483C5326D6945441AC07C4656D625141F43E046CDD945441533CF0F473625141917DAFD6E39454416BECF71875625141B005BB8CE5945441AD2E8ACE776251411602D441E994544118F9273A7C625141997C79D1EE945441DEB55F7F84625141978F4183F994544126D0F5C6876251414D8873ED00955441E68D576C846251415E80A0A50295544140DBECBE8A625141F18D766A0995544172A59E589662514152DFC79618955441E90372CD9E625141333A9EE32495544123BE327D9F62514173094BD825955441788DA758A16251412418BBD427955441C793CFB6A2625141D0432D4B29955441C53D35E4A46251415C4C3D9F2B955441B0AB2CB1A762514101C3F09D2E955441EF92368AA86251415C0467762F9554411074592AAC625141769BBF8732955441E2291E89B06251418BD7E30036955441595889CEB7625141F927A1E03A955441D28BDCF0BF6251410C6C9F5F3F9554417A7E037DC1625141F75AAF0140955441F3AB3B3CC462514146D82A1B4195544123B083FDC66251419284712D42955441C8A221D2CB625141D39B590E4495544198BD914DCF6251418B6CEBB44495544119678018D162514100474E32459554415B98E221D562514159E78E5946955441E2ED39F7D56251410594BC724695544120F67C45DA625141345A37D14695544165394998DE6251411FA91530479554418D6877AEE2625141EE5B0E57479554418B96936FE7625141490AB441479554412FE553E7EB6251415331A32D479554412E5616CEEF62514128891D1C47955441919FCBF0F462514102E2E2FC46955441ACEC754CFB625141B3E5A2BC46955441998C59C40C635141293A963C469554418745772C1D63514148D135BF459554417F42A8D7216351410670CA4846955441A059CCB6226351415D33F964469554414E46F22B246351417898D97D46955441531F6BAA286351419D518CCA46955441AFDFFE322B635141F06672CB469554415706F8342D635141A52711A6469554416CEA9BB3326351416912C43F46955441490B9F3A3863514199F64B494695544107B2414D3B6351418AA3BE5246955441BF1948F53F635141069E7B5446955441D038C19945635141D9963F03469554411FEF9D9349635141D87601CA4595544115508DF84D63514170D0BD8A45955441CB3435AD53635141FBE0444A459554414E1864FA5D635141493846EE44955441EE36756765635141DC7841FD44955441B1B5864B6B635141F78A178C449554412CEAFC4C6F6351414E77243F4495544129DC3EA373635141ABE6DAED43955441825344FF7863514138D2806C4495544188BED6067E635141FC225BE34495544187E7FCD0816351418B9C0F8F459554413A788513856351410AEECB3846955441CDED791D886351412A2B19B846955441FE72375D8D6351413FACD8C44795544179728F9B93635141F3F66F6048955441150CBC05996351413D4F51184995544106DC10E19E635141B31F4EB5489554413D2976EDA06351411D271EBE4595544192F8A6D1A2635141CC3B584D44955441B81E85ABA463514133333333449554411F85EB61A8635141D7A370FD43955441A29F253BA96351412401366C40955441E453F8D3AF6351414F257F5F3B955441092E1EBBB263514130DFB02939955441E6F32383B4635141A2860643399554410E45A4FFB86351414F257F5F3B95544103130FA7BC635141EF7D41503B95544169D154C8C0635141E87AAE1C3B955441E664BB76C263514149AFFAFC3A955441D266C3F6CA63514114A107E8399554413109B8CCCA635141C07ABD883C95544133333383D0635141B81E855B3F955441CDCCCC0CD6635141E17A147E3E95544166666626D96351419A9999293E955441333333A3E16351410AD7A3203D955441295C8FD2E563514114AE47A13C955441B81E854BEA635141000000003C9554415C8FC2F5EE635141E17A147E3B955441AE47E13AF363514148E17AF43A9554419A999959F76351415C8FC2753A9554419A9999C9FA635141F6285C3F3A955441AC83EA4DEA635141FA4AFD5E5F955441A5E5B4B4F4635141E18FCD8C64955441FAE6A50603645141DD6E32424395544187DD39E00864514100A4BAFD44955441F03201C0096451410FE63E4245955441E4B8787A06645141345227B64C955441BA2011B800645141CB4EDCD459955441D3C04DC5FA635141F5E7CBB7679554410E72B0C906645141280E3FC76D9554410A922B580D645141856AD8276B95544170EEAD9216645141C00069B7519554415A4A926E1164514147188A624C95544138CCC41D0B645141CD96CB25459554413B990B4703645141B23AC7CB42955441D7A370FD05645141F6285C4F3C9554413D0AD73309645141B81E857B3D9554419A9999790C6451413D0AD7E33E9554419A9999D90F64514152B81E854095544152B81E25136451413333338342955441C3F5286C16645141AE47E15A45955441E683B3B219645141FEEF69C146955441E17A143E20645141666666A64A955441CDCCCCBC21645141713D0A2747955441D7A3701D226451417B14AE47469554411F85EBA11C6451418FC2F5C84095544114AE4761196451418FC2F5183E9554411F85EB11166451417B14AEA73B9554418FC2F5D8126451410000009039955441666666B60F645141E17A14BE37955441333333630C64514185EB514836955441B9EF434509645141E53824983595544160E274B708645141B9C1D47835955441471127C607645141C1046AA335955441682B482506645141EBC3FAEC35955441BA5289AF0364514147BBDBC23595544195D65DFA01645141D87E1193359554411717DE24FE635141F82B4FDD349554419CACCB51FB6351414D0507F534955441BB25F92DFA635141B7BE820A35955441F3218316F66351414DB4315A359554412110BF02F36351413B881F843595544114C35F7CEE635141743CACD03595544123E1B725EA6351412771524E369554418693B0CBE46351413E12A370369554413D0AD7B3DC635141EC51B8AE36955441CDCCCC4CD9635141E17A142E37955441D7A3705DD56351410AD7A3B037955441295C8F52CF63514100000070389554419A999939CA635141AE47E11A39955441B81E855BC463514114AE47F139955441D7A370EDBE635141666666963A9554417B14AEE7B9635141B81E851B3B95544100C39723B56351419B2DCB8038955441214B70B7B4635141FB22E31F389554416F791592B2635141B81C909337955441E8D739D5B063514106F9B6433895544159D89982AF6351417582CBD9389554419A999989A96351415C8FC2853C95544152B81E25A46351413D0AD7D33C955441054CE6CE9E63514102F6AC4C3F955441550555FA9C6351411486B725409554413922674197635141BFAECFA441955441F16B41F48C6351412B6CA344429554419167132083635141B8CC25E2409554411700B8637D635141F522030C40955441A4703DEA75635141F6285CAF3E9554418FC2F59873635141713D0AD73E955441B81E85EB706351417B14AEE73E9554411F85EB516D6351418FC2F5083F9554417E712BBD6A6351411A6566AC3E955441B84DE1A96663514169A69C3B3E955441471C36D161635141B9E7D2CA3D955441D5EA8AF85C635141BC8501743E955441BDE7DBAC58635141C3D498C83E955441A4D1F25E55635141739362393F95544196BB09115263514123522CAA3F955441666666F64E635141AE47E13A40955441E17A148E4A6351411F85EB6140955441E17A141E4663514148E17A74409554419A9999B941635141EC51B89E4095544152B81E453E635141A4703DBA409554413D0AD7733A63514114AE47D1409554410AD7A3C035635141666666B640955441295C8FB2326351418FC2F5884095544114AE47A1316351415C8FC275409554418FC2F5382D635141A4703D9A40955441E17A14DE2C6351417B14AE6741955441A4703DEA28635141CDCCCC9C41955441666666F6246351411F85EBC141955441EC51B83E21635141AE47E1EA41955441CDCCCC5C1D6351419A9999294295544185EB51681963514114AE4751429554410AD7A3A011635141295C8F9242955441EC51B8FE0D635141295C8FB242955441AAFF2272ED62514158DCA68541955441A4703D6ADA625141666666064295544100000020D662514133333313419554419A9999D9D16251419A9999094095544185EB51B8CD625141713D0AD73E95544185EB5178C9625141CDCCCC6C3D95544166666666C5625141AE47E1AA3B9554417B14AE77C162514185EB51C83995544114AE47D1BA6251419A9999D935955441AE47E13ABA62514133333363349554417B14AE67B9625141AE47E1EA339554419A999949B26251419A9999D92F955441000000C0AE625141EC51B8DE2C9554410AD7A320AB625141F6285C6F299554418FC2F538A76251411F85EB41269554415C8FC205A4625141713D0AC7229554418FC2F5B8A06251411F85EBA11E9554411F85EB919A6251413333334316955441713D0A6797625141E17A141E12955441000000C0936251419A9999A90D95544114AE47219462514152B81EC50C95544185EB51888E6251411F85EBF10495544138A8F958886251419899C05EF9945441EF8D63118562514136BB243CF59454417BD7C35C80625141A272FAF5EE94544128BD2D157D6251411DE456AFE9945441C6E810CE78625141A45F3244E494544149466FD07362514118F98A6BDE945441BFE946D36D6251418A7EE5DBD89454417B14AEB7676251419A9999B9D39454413333336362625141666666C6CE9454417B14AE975F625141295C8F52CC945441713D0AD75B625141B81E85CBC99454413D0AD7435B625141713D0A37C9945441D7A3701D536251417B14AEF7C3945441E17A149E486251413D0AD773BE945441D001B4FF3B62514154E53976B8945441D527F5FD3A625141D82ECA35B8945441288CDA453A625141871273EEB79454418FC2F50838625141000000A0B7945441B81E85AB30625141B81E85BBB594544174B7A968296251415BAA7DCFB29454412984C2491E62514129B74A38B094544122C4D5EA18625141556AD555AF945441E7D0964511625141EF837B35AF9454413DB7D2C20462514190DDC307B09454415D6AC807FB615141C8D0735BB19454413E9489C4F261514102DFE5EDB2945441F365F5C5EF61514102DFE5EDB2945441A155DE59EC615141F2106137B294544147634480E8615141FB06E25BB2945441A24216A8E16151411B996CEDB394544130A074AADC6151411CA3EBC8B3945441D5A35BF5D861514112AD6AA4B3945441D47C958CCE615141237BEF5AB4945441411724B9BD6151413453F3ECB4945441C7888072B86151413453F3ECB494544113A44CBFB06151412B67F1A3B49454416C6F2030AA61514133497411B5945441A8BC67C6A1615141237BEF5AB49454411C56C0ED9B615141258FED11B4945441B97724CB9761514114C1685BB39454414DA307849361514114C1685BB39454414883E36E8A615141939D279CB19454417376FEE982615141F9435C86AF94544170B694CE7E615141F203BA93AE9454412FC3DEF37A615141552AB01FAD945441C49CDC5977615141F2C3945DAC94544160F69B61746151411E771F7BAB945441B8DC6CB770615141E7836F27AA9454411AC33D0D6D615141BA90BFD3A8945441E3CF873269615141B5903C90A7945441437639D9656151414CEA7EDBA5945441A41CEB7F6261514114F7CE87A4945441A9DC42065F615141DC031F34A39454410703B64E5C615141735D617FA1945441295C8FE25861514114AE4751A094544185EB515855615141AE47E16A9E94544152B81EE551615141E17A149E9C94544114AE47414E615141AE47E1AA9A945441333333834A615141CDCCCC9C98945441713D0A57476151411F85EBF196945441295C8F72446151413333336395945441C0F3C3EA416151410F33C9A593945441151836A33E615141523721C29194544166E186093B615141F6B937838F945441A3B8B8AF37615141F08C110D8E945441C3F528AC34615141295C8FE28C9454418FC2F588306151415C8FC2A58A945441F6285C3F2D615141666666C688945441D9DC26E32B615141D67D57E287945441D7A3703D2B6151410AD7A3F086945441333333C325615141666666E683945441666666262561514148E17AE4839454418FC2F5881F6151415C8FC2D583945441295C8F7218615141EC51B89E819454410AD7A32013615141666666D67F9454418BCF93510F615141C81A7DD37D945441E93A1CDF0A6151419366FF9C7C945441D48AE5F305615141CB2F81AB7B945441DAB4EDA301615141BB91C1777B9454418661F60EFD6051416214C2327B94544186ED3E8BF8605141FE96C2ED7A9454413ED6C65DF4605141473A83977A945441593C4E75F060514185A1C4D979945441492AD7BDEB60514190DD43417A94544123A06137E6605141957B03757A9454411AE32080E1605141321A3DCC7B9454410E02233FDF605141C70745F17B945441073FD4C0DB6051416BE4A79E7C94544192DE8167D76051419C8C09037D9454415A73D184D36051415D1FAF547E94544172A2A1C6CF60514132E04F827E945441A11EB21ACC605141B01451CB7E94544117FA3BDDC66051412E4952147F945441804CA971C2605141DC25B5C17F94544179C5360FBE6051413376788A80945441ADD844D1B96051417C6B1A0181945441806D94EEB56051413E3A9C6E819454413AE39ED5B0605141862F3EE58194544134205057AD605141B7D79F498294544110E39A50A8605141FFCC41C082945441D085CBADA4605141DD7F01AE82945441B2753C1DA16051415BB402F782945441D78775799F605141ECDA22008394544122CA537D976051415186071B84945441921E6BDD8D605141CFBA086484945441BA1309CF8560514117B0AADA849454413285BB99826051411C47A848849454414E4B89497E605141822E697F849454411012D6677860514114032600859454410AE168B871605141D58EC74C8594544154C834D46D6051415E7784B3849454417D674BC0636051412F1A6E808494544134208CC25F6051416E8ECC3384945441225785DF5B605141C54D13288494544117075DC55A605141C81973678394544171057161566051410F5F4BE881945441067415B746605141EA74A21D7E9454419EE08F653C605141E618F7D478945441F613480C36605141A710A16F759454413A26A6293160514188B6A7BD729454411E20F1B22060514128FA93DA6C945441337939EC156051414E8449C36894544177BC2AF00E60514144B1E87864945441C5F388B8086051418CE10585609454416F238A7908605141FBE489FF64945441584FD4540E605141ED3516C167945441DA1A326E12605141D9E15A0F6A9454414DF0744E1D605141E2B4BB596E945441BD506349266051417470D90A72945441BF524AC62B6051411314B9097494544168561DA735605141C92CEDED779454411ACD5DF03B605141EE1696B87B945441E78EBEF2416051417A4246667F945441BE472216496051418AA6FBDB81945441EA3B62354E605141FB2DB21B8394544160B0BAE358605141F464C4928594544199A1D09F586051415320940388945441766C633153605141A6813A3786945441EBCA828B47605141EF2F6D0F839454412DFD95A0396051411AD707BF7D9454412B2E2FC632605141F512630E7B945441B50E77D329605141CBE8D180779454411E07B3F3276051419E3F2FC2769454417345AB601D605141F790CF0372945441C9D64A3817605141E6E3418C6F945441D45C32270860514122C9262B66945441D7A3707D08605141F6285C0F60945441AE47E10AED5F514148E17AD44D94544152B81E45EC5F51419A9999594D9454411F85EB21D75F51410AD7A3904094544100000020D35F5141713D0A873E94544185EB51D8C55F51419A999909389454415C8FC2E5C45F5141C3F5289C3794544100000090B65F5141333333533194544148E17A34B25F51413D0AD7432F945441AE47E1CAA65F5141D7A3701D2B945441C683D4E39B5F51417C6FE39A24945441A9FA326A8A5F5141237722711E9454410EFBD60F795F51419404F67319945441666666C6745F51410AD7A3E0189454419A999999735F5141E17A146E18945441D7A370ED715F5141A4703DCA17945441713D0A976E5F514166666676169454417B14AE176C5F5141AE47E18A15945441EC51B8AE695F51419A99999914945441E17A142E675F514114AE47B113945441E17A14AE645F5141B81E85BB12945441C3F5280C625F514148E17AB411945441B81E852B5F5F51411F85EBA110945441F6285C5F535F5141D7A3700D0C94544165CC575C515F5141D7B507330A945441CB617BF64C5F5141F0208B8908945441F70FD6244B5F5141D6EB90D90794544193E793C4495F5141EDB0705407945441A105556B485F5141F5EEF6D106945441D7A3706D465F5141C3F5281C07945441E17A141E435F51418FC2F5C8059454415C8FC2953F5F514114AE4771049454410AD7A3D03B5F5141EC51B8FE029454418FC2F538385F5141295C8FA2019454417FB97999345F51411D919014FF9354418DD6EEB6345F5141C50EF62EFE935441489D4AB2315F51414CB8A1B1FC93544107A7F0FB2E5F514129C3A174FB93544128C72EC72D5F51418EDC62EEFA9354416959D23C2B5F5141311619DAF9935441BED6A9AF295F51410D4A6031F993544169C92166265F514119D9DFCBF7935441C39A4AD5235F5141A365D5B4F69354417C56A34B1D5F514104D8D3EDF393544118B23801185F5141A5C570AEF1935441902EFA55145F5141EDF9D65BF093544196359AC0115F51412849F47DEF935441CBCA63F00C5F51415DC38EE0ED9354411C5E9014075F5141DC1061E9EB935441B0CF56CA015F5141216D0C23EA935441CFB39F0EFD5E5141BE7A66A0E89354413380A05EF75E5141017111F1E69354418694D94BF35E5141DA7E26BCE5935441081D175AEE5E5141D0D12C45E4935441B4C410B2EA5E5141B3D5E12FE39354417BB6568FE75E514156021442E29354413583915EE55E514154DEF39BE193544177E13FFDE15E5141DA294EC8E0935441615D8B93E15E5141464471ECE0935441295C8FA2E05E5141C3F5288CE09354411F85EB51DF5E514100000020E09354411F85EB21DD5E5141C3F5283CDF935441CDCCCC3CD95E5141295C8FF2DD935441CDAF45D0D65E5141C15AF324DD9354410BD7C057D55E514192F5E7A7DC9354413A2E3605D45E5141839AA90FDC935441AE47E10AD15E51418FC2F5B8DA9354415F46ED77BE5E51414F2D6E43D2935441DA7C568FB65E5141D148D945CE935441D9CD50CEAA5E51414B6B3A44C993544160074876A25E5141D278B94EC7935441267C82889D5E51415D24C0E7C5935441713D0AE7925E51411F85EB51C393544148E17A74905E51418FC2F568C2935441A4703DFA8D5E514185EB5178C1935441333333F38B5E514148E17AB4C093544133333373895E51418FC2F5B8BF9354411F85EB41875E5141CDCCCCFCBE935441333333E3845E5141F6285C0FBE93544148E17A14825E5141B81E85CBBC935441000000507F5E5141C3F528DCBB935441333333837C5E5141CDCCCCBCBA935441EC51B8BE755E5141E17A143EB8935441EC51B8FE715E514100000030B69354419A999979705E5141EC51B85EB5935441BB341329685E5141679FA42AB1935441B132B95E5B5E5141AE32CD71AB935441A3DC451B575E514126E69352AA93544163011F134E5E5141B3CA124BA7935441D85E72B0485E5141D2FBCA62A59354415588683A415E51417E3318A3A29354416663AD0E3B5E5141A9C9E5E5A09354415A1F81AE365E51413C591E00A0935441580C0D66305E51417E54016E9E935441A4703DBA2B5E51413D0AD7539D935441EAF51B5B255E51419B97BF929B935441713D0AC7205E51410AD7A3709A9354416FCD083E1E5E51413A1D6BC79993544150C356C3195E51411CEB64E79893544133333343165E514185EB513898935441AE47E10A0E5E51413333339396935441C3F5287C0B5E5141B81E851B9693544152B81E85025E5141333333039593544100000010005E51419A9999D99493544152B81EF5F65D5141F6285C8F94935441F6285C2FF35D5141295C8F72949354419A999909EB5D5141D7A3703D94935441C3F5281CE65D5141D7A3705D94935441E17A146EDE5D51418FC2F588949354413D0AD713D95D514185EB51989493544131EF0ECBD15D51412FBA82B291935441545E6174CB5D514107E90A9691935441A2ED9800C25D51414C8BFACE91935441A192271BB95D51411231C4CE909354413B05548BB15D51416914B9B292935441908DD789AA5D51412FBA82B291935441C98C9CA4A25D514191E530CF92935441916E1BBE945D5141E0CFD94092935441931F0CD3885D51419728336994935441667860DA885D5141A971678B9493544107AEF89C8A5D51413F8612FC95935441ECEDC10D925D5141E079D01A97935441E3ADAF88945D5141B6B5094E98935441C41F2A05975D5141B79E9FB298935441E74085D9975D5141B79E9FB298935441CCF10837A25D51413646007798935441FC9A3A0EAA5D51416B2BB49597935441D49661BCAD5D514116C24B2F97935441C03562E5AF5D514195315506979354410DA1926AB35D51414AA7FF4D96935441A798E0C6BA5D5141BFF51BD395935441C3E012C7C45D51413F8612FC9593544126AF0A42C95D5141F4FBBC4395935441BE83A32DCD5D514134234B06959354415B94BE60C85D51411580718B9693544120D8CEFADF5D5141F6FD846298935441AB89B275E05D514155E9D9F196935441B8AC67E6E35D5141362513259893544161A84580F15D514157A9C76C999354418E17BD2E055E5141839043AA9B93544118AA2C3F055E51414992501D9C935441E35F3843055E51412E48C8959B9354414CF2AD76125E51418F35E5439D935441719BDF4D1A5E5141F00115A09E9354416359B64E1A5E5141B63B9ABC9E9354410BE80959365E5141762C7EB7A4935441A8770E11405E5141786F98C7A7935441E16CE746605E514189526F59B393544153DA8F615F5E514186C1E5BDB493544143449E7A5A5E51415F055B0CC7935441FA17F788595E5141C7135C6DCA935441E8E634265C5E51414A2625CAD6935441666666865C5E5141000000D0D8935441295C8FA25F5E51415C8FC275CE935441E94E4744665E5141523DA144B8935441658333D75F5E5141F574A0EFB49354417AB573AC605E514148FAD3B4B3935441B800B615665E5141ACF0FADBB3935441988CFE026A5E514157075F51B593544168800117725E514156E67586B9935441480C4A04765E51419C37CC37BC935441FC7264027C5E5141D1F67B2ABF93544149D8B52F7F5E51410681D776C09354413CA4D467815E51416F1BBA69C19354416F522AE5835E5141ACC4409AC2935441F4B875FB875E5141E5307364C4935441AB741A098A5E5141D933D943C59354412F3474728D5E514115C0F972C69354410F9B65A48E5E51411F1967E6C79354416DDC689D935E5141A03E5BF3C9935441A0D2B543975E51413DCAD2BFCA935441FA1012259A5E5141771E4DA4CB935441F92BE6639D5E514114F6A1F0CC935441C657B5949F5E51411356F4B5CD9354419B432950A35E51413B45F9C3CE93544126312FCAA85E5141EAE115ACD0935441904F2786AF5E51415CEA5C3AD3935441F00DCD7CB55E5141104C41BED5935441AC4A2ACABC5E51417B4F653BD99354415187F4ECBD5E51419D79A2ADD9935441000000B0C15E51417B14AEA7DB935441A4703DAAC45E5141666666C6DC935441B87B7764C95E51418E716AE2DF93544129F1F3ADCB5E5141D3E2A3F0E09354411EB296ABCE5E5141FFE6E62BE29354413FB6D9E6CF5E5141D3E2A3F0E0935441D7A3703DD35E51413D0AD743E29354418FC2F598D55E5141CDCCCC2CE39354416F69AF8CDA5E5141FD112BE4E4935441A0C3DD9EDD5E5141A2A05012E6935441901818C9DE5E51413EACB9D8E29354412C953D61DE5E5141151D0790E293544146732864DF5E51415C0F346AE09354410A728673E15E51418AB04048E1935441F25B97BBE05E5141D223BC5FE393544152B81EF5DE5E5141B81E85CBE693544100000010E15E5141E17A148EE79354415C8FC2F5E25E5141D7A3705DE89354413D0AD7D3E45E5141D7A3700DE99354416DFD97D0E65E5141988879D0E9935441E10C9B01E95E5141E72768A3EA935441DD293C6AED5E51413630C14BEC9354410C173F8AEF5E5141096E834CEC93544105CD9DF2F25E51414D2250F6ED9354416E4BE873FA5E5141A7005A12F0935441554D33B20E5F5141AB5B1CF1F79354416AC9BC59125F514147AF6327F993544110EAE2C4165F514159588B9EFA935441BDE65172195F5141BB3BB8CBFB935441AA50D52C195F51412D844D96FC93544112DCE5FC185F51415920342AFD93544166167E90185F51419479F5C9FD9354413DB432AB145F51417A7EC73F03945441B81E85AB085F5141C3F5281C14945441A4703D6A0B5F5141295C8F421694544152B81EC50E5F51413D0AD7E3189454419F9AA20D135F51411011CC1A1C945441DA6C93AA245F514135CB889D029454415969F5F9245F514137D2C4FE01945441D2410D7A195F5141C18A1551FD9354413DCFA1B0195F5141764790ACFB935441ADB26108215F5141E1EA6164FE935441D84DA5B1335F51415B2E7481069454411A62C420365F514171B803B907945441ABCF13B03E5F514106EB87B90A9454411FD515965C5F5141667F836816945441CCD184435F5F5141E22C9B42179454417FA3DD176D5F5141EC58DDF71B945441A7C312D66F5F5141B0AEE7DE1C945441F3748B7D745F51419D18EBD91E9454414575A574785F51413756018220945441592284F57B5F5141B58FB2F82194544176E4424F7D5F5141B35E4E322294544175AB4A23815F514148865E8D2394544183060D02895F51414941E00626945441CD7FA1478B5F5141C4EEF7E0269454417037926E905F5141FDA2C48A28945441755861A7935F5141431CCA112A9454416BD70008945F51418209333B2A945441198AA0E99B5F514165668D922D94544120AA97399E5F5141E113A56C2E9454410B2C9962AF5F5141D1DFB4023694544183207A01C25F5141847741043F94544182D1DBADD25F5141EC55DE4A47945441B076D24EDD5F5141F095CCEA4B94544139C42A8EE35F514142CF05BB4F945441BD4CBB31E95F51415914176C53945441F60088DBEA5F5141BCF743995494544129861A57F95F5141D9D7729E5E9454414970FC53FB5F5141A03E7A3360945441AB06401B03605141071316766594544114411897086051417C6384F6689454418CE5AD7B0E6051413581BDFA6B9454418973BB1813605141CA882E5E6E94544154FD6D4D20605141B839F84474945441BA0B58DB296051417D618D787894544171BB84A232605141333D1B1A7C94544136F0FA703860514184F8FC807E945441ED0CF6FB3F60514196E82E4B81945441EA26CE67486051410EB4ED3F8494544103FE194E4C605141A6D3599E85945441D4F712F2506051413C363E0687945441AE4CF2AB5260514184AB1181879454412D7BF1A8586051417864C9CA88945441D5F2DC695D605141634FD4C489945441E202311E62605141795D5EF489945441F731D10863605141DF51A1FD89945441F41804EB63605141DEAC03118A9454413982925765605141F89795338A9454419C0E49C36B605141412574CF8A9454414A351E516F605141855B40118B945441E23340A4746051410A59CA6F8B9454418BB9B3E07660514160CF135D8B945441A24025607D605141A3746B708B94544194D6827E88605141A16A326A8A94544113CF5BFC9E605141A7621B1C889454415BB094C5AE6051419A5D98A4869454419017D0F0B3605141AFB2B692869454413AFDE6FBC460514197AD331B8594544110CEE70FE3605141690BBE5081945441B29177A4E7605141A0C5CEF4809454415E54BF90EB605141AFA002B380945441D04F6913EE6051412394A7718094544129C2D964F2605141F9E83D3C80945441B1AEE3F5F460514178C30D2680945441CDAE7D0CF86051419D403F0F809454419F0DD218FA605141219B1A38809454414C0A5EC6FE60514147E0538C809454411666E3560161514179C343A880945441440A316304615141A56BC319819454411AC6DBEC07615141CA7B6A8981945441736BEDBC096151419A92CFBD819454410F9164120C61514163247D2A82945441FB9ADDA7106151419E450E1E8394544113D92268116151417E601A5783945441012254DB1A6151410EE72D20869454415119390D22615141810466398894544188DD35DB23615141322E094088945441E1D09BDA24615141CE67843888945441A82336CC256151412B1F7A26889454416C3A484B27615141898DA44E85945441B6359AE428615141521C302386945441B7EA3EE9276151416E81A9B4889454418F11DA5E28615141068D4FEC8994544173A72A762B615141786F58F78B945441127AC7E42D6151417B02F6608D94544147CFC81A35615141DD1ECC9591945441A311E2BE3E6151415A719E5D97945441A4FDF0A6466151417A3A51BF9B945441FFCF5D0B516151411EE2FC56A19454411A5B5FAF5561514113709DABA3945441E4AD657059615141E5FAAD62A5945441005AB1115D6151410F843F0BA7945441A3312294606151418F4DB8A5A89454415363BA6E61615141792AF5E4A8945441CE72388A66615141A53947F4AA945441AEBD89AB69615141277ED042AC945441F9173B1B6C615141153B7951AD94544143C7D0316E615141E0D78AEFAD9454412268D0726F61514108B9C14BAE9454419F9AA22D7361514107C5E0EFAF945441B23D25BF766151418665BF29B194544140D2F1A67B615141A6F65CD7B2945441A5A84EA07E615141754DD4DBB39454416D41AB0F80615141C79AD532B49454412A3B98698661514116425AA0B59454415F34BB8088615141E393A718B69454411B992C688B6151414F77A086B694544109B188B892615141C9CCE291B794544146FA82CBA96151412A12FCE5B8945441BF4ABA58B1615141888A8A10B99454412532FD6FBA615141FFB5B82BB994544176016DF4BA6151413D02E656B994544162523876C261514134C3DF82B994544101465D38CC615141E2494141B99454414345AACFD4615141834CD5FEB8945441356D753AE361514168642B47B894544136FA62A0FB61514172B51F44B69454413D06107812625141F7883F65B4945441F16F65FC17625141B2073F88B494544133BC5DE41E62514107776BBEB4945441F2FC733624625141BC0E70C5B5945441E52AD4F72562514118E6691CB694544155D7868828625141D515C1F3B6945441358E208B2862514193A7ACF4B6945441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>987002 - 415044
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 30 </desc>
+<a>
+0106000000040000000103000000010000000B03000077FC34C9655F514105C0F876199454415CA32D94655F5141B9256A7819945441FAE81C9D675F5141130F47171A945441CFDFFED96F5F51412465C9E91C945441E862BCFB7B5F5141DAC44BFB21945441D8972E587D5F51417860C0332294544175AB4A23815F514148865E8D2394544183060D02895F51414941E00626945441CD7FA1478B5F5141C4EEF7E0269454417037926E905F5141FDA2C48A28945441755861A7935F5141431CCA112A945441AE90262B935F5141C2753BC52A9454411ACF9227835F51410B971953259454419941422A745F51411FCB8EB71F945441F6306C92735F514101C9CD78209454417C58F7C17F5F514130CD1D9825945441ED7D8F54935F5141FF1587552C9454417A8C724F9B5F5141BB8EE3F92E945441C6C6F8119A5F5141D81105D82D945441C8C62A70935F514154D16DB72A9454416BD70008945F51418209333B2A945441198AA0E99B5F514165668D922D94544120AA97399E5F5141E113A56C2E9454410B2C9962AF5F5141D1DFB4023694544183207A01C25F5141847741043F94544182D1DBADD25F5141EC55DE4A47945441B076D24EDD5F5141F095CCEA4B945441BF2BC22BE35F51410D18E4754F945441BAC767B4E35F514129F57ED74F945441BD4CBB31E95F51415914176C53945441F60088DBEA5F5141BCF743995494544129861A57F95F5141D9D7729E5E9454414970FC53FB5F5141A03E7A3360945441A0719D4B02605141E7FD7FF1649454419EF0F19808605141D7DCB2F7689454412DC905FD0D605141D5EB54DA6B94544146C71D410E6051419D188E1F6D945441381692450C605141A5E0420E6C945441BDE45E18066051417A1AD19F6894544109C1AA16FE5F51414BA3D335639454415B86CD21F95F51418C5D09F9639454417641524802605141EEDDB02A68945441A63DCC470B6051415296A36D6D945441904908F30D605141D50A0FF46E945441B0ED63261A6051410F820C5E74945441F2A799E91A605141174AC14C73945441B2C248DD0E605141E2361E5A6D9454418CE5AD7B0E6051413581BDFA6B9454414A6A59131360514171B5C65B6E9454411434D8CD2760514147512D9F779454410CB1D5B53A60514198E542717F94544192F612504D6051412F8EE7F88594544164A65B595260514171B24B6E87945441A2A60849556051417E122919889454417172DE685D6051419043CAC4899454416390222E63605141296D1AFF89945441FDD8E8FC6B605141B205EBD48A94544108F85E9174605141A3746B708B9454410B9880D876605141C966FB5C8B945441A24025607D605141A3746B708B94544179AF3B3B7D6051415756624F8C94544155ABEB1B78605141C5FA2F5D8C9454415E9275456D605141CE7B90FC8B945441BD34E6D0606051410FB616BF8A9454416C133AA15F605141CE7B90FC8B9454414BF6DD9063605141DF3034A28C945441E9B964316C605141F0E5D7478D945441D851ACC670605141F0E5D7478D9454417BAF6D9976605141540945B68D94544152B81E557D6051417B14AE578D94544148E17A947E6051413D0AD7938D9454410AD7A3E07F6051411F85EBD18D9454415C8FC2D581605141F6285C2F8E9454418FC2F5788760514114AE47E18D9454411F85EBF18C605141D7A3704D8D9454413333338395605141000000708C945441F6285CAF9C60514185EB51B88B94544166666686A1605141A4703D2A8B94544152B81E85A5605141EC51B8BE8A94544133333313AA6051411F85EB518A945441D7A370FDAD605141EC51B8EE8994544133333353B26051415C8FC27589945441713D0A97B66051411F85EB018994544133333323BB605141CDCCCC7C889454413D0AD763BF6051415C8FC2158894544185EB5198C360514148E17AA487945441F6285C3FC8605141CDCCCC2C879454419A999919CC60514114AE47D186945441AE47E15AD060514152B81E5586945441EC51B88ED46051419A9999D985945441713D0AE7D86051410AD7A3608594544114AE47F1DC605141CDCCCCEC84945441F6285C3FE16051415C8FC285849454411F5E7C41EA6051414AEE0DA183945441C5085BADEE6051410B820517839454413F157D69F76051413A396AFB829454416BC4618D0D61514138C0CA9985945441D5652BDD1561514171B24B6E87945441E6A52C9922615141640BB99D8C9454415A690C2422615141769B227B8A94544192D61063206151418EC731E1889454414208E94911615141960A6A3A84945441B4213B690D615141B892DBAE8394544189E9A74307615141B0DFF84782945441C889253202615141E917BECB8194544100281440F7605141D8621A2681945441924F9946E260514167712F7F8294544191917DBDE26051414E40345781945441F6BFF1EFE760514120D1E3EE809454410818237CEA60514138DF23CF80945441344AF6F6EE605141068C835A80945441866E595EF36051414870A333809454418CAE9CECF76051418954C30C8094544158DA50C5FD605141C5A76381809454411666E3560161514179C343A880945441D060F683056151416A32C4438194544195BC19390A6151418093D4CB81945441F9111E4C106151416171D50283945441E7FFF23417615141CBE7A60F85945441C5CCFA2322615141322E09408894544114513C4424615141322E0940889454416866FDC8256151415820992C88945441C67BBE4D276151416411F74985945441D9AC5FF928615141558077E585945441B7EA3EE9276151416E81A9B488945441E93DDF5D286151414F5FAAEB899454417576D17A2B615141B9D57BF88B9454415D43D96936615141916240599294544152013F763E61514115DA433597945441315E94FA45615141C3D456629B9454412A496805486151411E055F7C9C94544103CA8B6150615141F6D6BA00A1945441A2331F2A55615141B892BC6EA3945441E4A854FC60615141EE1953D5A89454412396BD2561615141807585C7A894544159CCFC3868615141616C02A2AB94544154AB2F3F6C61514159AB1361AD945441BAF1916F6F615141BC51544AAE9454411CA7743B73615141D982F5F5AF945441F5E2FCC57E615141EF53B8E8B3945441D6DF73918861514118E6691CB694544192EA5A709261514192EDBA8DB7945441D4CACC7EAB6151410CF50BFFB89454412532FD6FBA615141FFB5B82BB9945441D2C333A7BA6151413EA32155B99454416CB15D2FC361514122561C87B9945441ECD5CDCFD96151414DD92BD8B8945441400A05E9E36151415C6AAB3CB894544160980852FF61514159CA89F5B5945441783EC7C112625141588C3A5FB494544138211FE81E62514178EC88BEB4945441E52AD4F72562514118E6691CB6945441DDE2CC562D625141E3001586B89454418C836E7834625141DD418DD1BA945441BC04276440625141920C3122C09454418E701ECB4A62514194BBF44BC59454413B7AD3DA516251418E9A2752C9945441896EC76557625141B0CCFACCCD9454419C3B955D5E62514135892E22D5945441846C7000646251412E2331AFD6945441B43E65C26A6251417C17253ADC9454413535BDEB7562514146C22D60E894544193BA30DB7A6251412DE07125EE945441A90F07A283625141ECF2B345FA945441549B2CF3866251411D14FDF3FF945441E68D576C846251415E80A0A50295544198288CE08A6251414C6E758E09955441D83AC4309662514170FECF5C18955441C9C8BA609F6251411A87D9B92595544188352E44A8625141B9DC243B2F9554414CB75589AC6251410DE81ED832955441CE7D667AB062514192DAF6F635955441D5364F8AB76251411B7540BA3A955441E2C3706CBF625141765473293F95544137CF6A09C3625141E39ED9A340955441E28DD0E7CB625141954CC816449554413699CA84CF62514105C3F5BE449554415C655844D5625141136B676346955441BEFD73C3E0625141B19CAB5F47955441BEAC837CF362514179E1940B47955441BD76E3F7FF625141AAC8728D4695544134A6F9AF07635141136B67634695544145A5ECB11D635141A3F439BB459554416F9D419F22635141136B676346955441AE1141032A635141E28389E146955441FB2DB20B336351417D0D5C3946955441F07DF93C3F6351415914D95E469554414AA1A471506351417639236745955441621376915E635141A72001E9449554414E7FF24965635141AC5E78FF44955441D5E0249773635141FEEEBCEC4395544130A507447E635141A72001E9449554415C8FC2A5816351418FC2F5C8459554413D0AD733856351410AD7A3704595544185EB514888635141C3F5285C4595544148E17AC48E6351411F85EB4145955441F6285CCF946351410AD7A300459554410AD7A3909A635141CDCCCCBC4495544152B81EE5A06351418FC2F56844955441AE47E1EAA16351410000006044955441B81E85ABA463514133333333449554411F85EB61A8635141D7A370FD43955441A29F253BA96351412401366C40955441E84EAE76B4635141B9A684B63B955441854A52EEC16351415330570E3B955441D266C3F6CA63514114A107E8399554413109B8CCCA635141C07ABD883C95544133333383D0635141B81E855B3F955441CDCCCC0CD6635141E17A147E3E95544166666626D96351419A9999293E955441333333A3E16351410AD7A3203D955441295C8FD2E563514114AE47A13C955441B81E854BEA635141000000003C9554415C8FC2F5EE635141E17A147E3B955441AE47E13AF363514148E17AF43A9554419A999959F76351415C8FC2753A9554419A9999C9FA635141F6285C3F3A955441C1CEFFD0EA6351418AA9CC2C5E955441AE83EA4DEA635141FD4AFD5E5F95544157FAD8EBEB6351417AFFF63060955441760C703DF263514129F0A66463955441A7E5B4B4F4635141DE8FCD8C649554417E49E925F5635141A9110D8663955441FFE6A50603645141D86E324243955441560FE0C0096451413D384340459554417FEB9268FC63514125A2A0A663955441CEC04DC5FA635141FAE7CBB7679554412CBB87E3FD6351416B64E04C699554411072B0C9066451412D0E3FC76D9554410F922B580D645141866AD8276B95544175EEAD9216645141C10069B751955441FFAFFCB011645141E19C04AF4C9554410E2D5F280B64514111E7F928459554411996F53C036451412EA0C0C842955441D7A370FD05645141F6285C4F3C9554413D0AD73309645141B81E857B3D9554419A9999790C6451413D0AD7E33E9554419A9999D90F64514152B81E854095544152B81E25136451413333338342955441C3F5286C16645141AE47E15A45955441BB8B07A2196451414C267EB746955441E17A143E20645141666666A64A955441CDCCCCBC21645141713D0A2747955441D7A3701D226451417B14AE47469554411F85EBA11C6451418FC2F5C84095544114AE4761196451418FC2F5183E9554411F85EB11166451417B14AEA73B9554418FC2F5D8126451410000009039955441666666B60F645141E17A14BE37955441333333630C64514185EB51483695544160E274B708645141B9C1D4783595544113ABB3EC0564514192DAF6F635955441C99FB94F026451415A1FE0A2359554416EC086E0FD635141534BA7D0349554418A2BBAEBFA635141EAA8B2FA34955441FE64A9FAF66351412264C94E35955441E214C6B1F3635141B9C1D4783595544122BF659AEE635141F17CEBCC35955441A0F854A9EA635141C0950D4B3695544157DD9903E5635141622CF66E369554413D0AD7B3DC635141EC51B8AE36955441CDCCCC4CD9635141E17A142E37955441D7A3705DD56351410AD7A3B037955441295C8F52CF63514100000070389554419A999939CA635141AE47E11A39955441B81E855BC463514114AE47F139955441D7A370EDBE635141666666963A9554417B14AEE7B9635141B81E851B3B95544166666666B46351415C8FC2653B9554417B14AE07AF635141EC51B80E3C9554419A999989A96351415C8FC2853C95544152B81E25A46351413D0AD7D33C955441550555FA9C6351411486B725409554415DF4DD8E976351418BD01DA0419554416BD2EFB78C635141F0464B484295544150B8ACF37C6351417D28ACFB3F955441A4703DEA75635141F6285CAF3E9554418FC2F59873635141713D0AD73E955441B81E85EB706351417B14AEE73E9554411F85EB516D6351418FC2F5083F9554410AD7A3B06A635141666666163F95544152B81E45676351415C8FC2453F955441A4703DDA63635141333333633F95544100000090606351415C8FC2853F9554418FC2F5685D635141CDCCCCBC3F95544152B81EB559635141AE47E1DA3F9554419A9999695663514185EB51F83F9554411F85EBF15263514185EB511840955441666666F64E635141AE47E13A40955441E17A148E4A6351411F85EB6140955441E17A141E4663514148E17A74409554419A9999B941635141EC51B89E4095544152B81E453E635141A4703DBA409554413D0AD7733A63514114AE47D1409554410AD7A3C035635141666666B640955441295C8FB2326351418FC2F5884095544114AE47A1316351415C8FC275409554418FC2F5382D635141A4703D9A40955441E17A14DE2C6351417B14AE6741955441A4703DEA28635141CDCCCC9C41955441666666F6246351411F85EBC141955441EC51B83E21635141AE47E1EA41955441CDCCCC5C1D6351419A9999294295544185EB51681963514114AE4751429554410AD7A3A011635141295C8F9242955441EC51B8FE0D635141295C8FB242955441F6285C4F0A6351410AD7A3D042955441C3F5286C026351413D0AD7234395544114AE47A1FE62514100000040439554410AD7A3E0F9625141CDCCCC6C439554410AD7A350F562514114AE47A14395544185EB5108F16251413D0AD7C3439554418FC2F568EC625141EC51B8FE43955441A4703D9AE76251417B14AE07449554413D0AD733E362514185EB5168439554413D0AD7A3DE6251419A9999D942955441A4703D6ADA625141666666064295544100000020D662514133333313419554419A9999D9D16251419A9999094095544185EB51B8CD625141713D0AD73E95544185EB5178C9625141CDCCCC6C3D95544166666666C5625141AE47E1AA3B9554417B14AE77C162514185EB51C83995544114AE47D1BA6251419A9999D935955441AE47E13ABA62514133333363349554417B14AE67B9625141AE47E1EA339554419A999949B26251419A9999D92F955441000000C0AE625141EC51B8DE2C9554410AD7A320AB625141F6285C6F299554418FC2F538A76251411F85EB41269554415C8FC205A4625141713D0AC7229554418FC2F5B8A06251411F85EBA11E9554411F85EB919A6251413333334316955441713D0A6797625141E17A141E12955441000000C0936251419A9999A90D95544114AE47219462514152B81EC50C95544185EB51888E6251411F85EBF104955441E17A143E83625141B81E856BF59454419A9999797E625141666666E6EE945441CDCCCC8C7A6251410AD7A380E99454419A9999497662514148E17A94E3945441AE47E1DA71625141295C8F72DE945441D7A370ED6C625141CDCCCCDCD89454417B14AEB7676251419A9999B9D39454413333336362625141666666C6CE9454417B14AE975F625141295C8F52CC945441713D0AD75B625141B81E85CBC99454413D0AD7435B625141713D0A37C9945441D7A3701D536251417B14AEF7C3945441E17A149E486251413D0AD773BE945441E17A140E3B6251410AD7A300B894544148E17AC4376251413D0AD753B99454418FC2F50838625141000000A0B7945441B81E85AB30625141B81E85BBB59454419A9999392962514185EB51B8B3945441AE47E1DA21625141E17A147EB2945441C3F5284C196251418FC2F518B2945441A4703DAA116251418FC2F598B1945441D7A3708D0A6251411F85EB01B2945441CDCCCC5C0662514133333333B294544100000010026251410AD7A380B2945441F6285C4FF761514114AE4711B394544152B81E05F3615141AE47E14AB3945441B81E85CBEF6151410AD7A370B3945441E17A145EED615141AE47E18AB394544114AE4741EB6151418FC2F598B394544133333383E8615141A4703DEAB3945441CDCCCC0CE06151413D0AD793B4945441CDCCCC4CDC615141CDCCCCDCB494544185EB51E8D861514133333313B5945441713D0AC7CE61514166666606B69454413D0AD773BE615141E17A146EB694544152B81E05B8615141295C8FA2B694544133333383B1615141713D0AD7B6945441713D0A17AA615141D7A3705DB6945441333333B3A1615141EC51B8DEB5945441E17A14CE9A6151413D0AD773B5945441D7A3707D97615141B81E85FBB4945441713D0A379461514133333393B4945441F6285CAF8A615141C3F5284CB3945441A4703D4A8261514114AE47C1B0945441AE47E1CA7E615141B81E858BAF945441295C8F627B61514133333363AE945441D7A3701D7861514185EB5148AD9454417B14AEC774615141CDCCCC1CAC9454417B14AEB7706151415C8FC2B5AA945441AE47E14A6D61514152B81E95A9945441295C8F52696151419A9999E9A7945441D7A370DD656151410AD7A380A69454415C8FC25562615141B81E850BA5945441D7A3700D5F6151417B14AEA7A39454418FC2F5285C6151413D0AD723A2945441295C8FE25861514114AE4751A094544185EB515855615141AE47E16A9E94544152B81EE551615141E17A149E9C94544114AE47414E615141AE47E1AA9A945441333333834A615141CDCCCC9C98945441713D0A57476151411F85EBF196945441295C8F72446151413333336395945441295C8F724161514152B81EB59394544114AE47413E615141295C8F0292945441D7A370ED3A61514133333333909454413D0AD7B3376151415C8FC2858E945441C3F528AC34615141295C8FE28C9454418FC2F588306151415C8FC2A58A945441F6285C3F2D615141666666C688945441CDCCCC8C2B615141000000F087945441D7A3703D2B6151410AD7A3F086945441333333C325615141666666E683945441666666262561514148E17AE4839454418FC2F5881F6151415C8FC2D583945441295C8F7218615141EC51B89E819454410AD7A32013615141666666D67F945441000000400F615141666666967E945441E17A14FE0A615141E17A14FE7D9454415C8FC28506615141EC51B84E7D945441C3F5281C02615141333333737C9454413D0AD7E3FD6051418FC2F5587C9454410AD7A380F9605141C3F5286C7C945441A4703D7AF5605141666666867C9454417B14AE47F16051413D0AD7837C945441666666C6EC60514185EB51A87C9454410AD7A340E8605141D7A3701D7D94544185EB51E8E36051419A9999997D9454411F85EBA1DF60514114AE47F17D945441295C8FA2DB605141F6285C4F7E945441A4703D4AD76051410AD7A3C07E945441E17A142ED360514148E17A247F94544114AE47D1CE605141713D0A777F945441A4703DDACA6051417B14AED77F945441F6285C3FC660514148E17A348094544133333313C260514185EB51A880945441295C8FD2BD6051417B14AE078194544114AE4741B9605141CDCCCC6C81945441D7A3700DB56051413D0AD7D3819454418FC2F5C8B06051417B14AE3782945441A4703DBAAC605141B81E85AB82945441F6285C3FA86051410000001083945441CDCCCC3CA4605141EC51B86E8394544185EB51689F60514114AE47C183945441C3F5289C97605141CDCCCCCC849454415113DC0D8E605141359F2FC985945441F3BB5DF7856051414654D36E86945441E1ED437B7A605141F57F127A8A945441B54F87CB7E605141F57F127A8A9454411973F4397F6051410635B61F8B945441AE0206768D6051417626A1C6899454412DA9626493605141EE4BCF7389945441999AE94E9F6051413A86553688945441C8BD2F81A260514100DB68CB8794544117B2230CA8605141B395386A87945441C259A3FDBD605141D2B737338694544108AC1EDCCD6051411C5D464D849454419F7339F8DC605141F3CA941982945441A022FD21E2605141A68564B88194544123EB3CD4E1605141092CA5A182945441064AE9BDDC605141B9B605648394544108AC1EDCCD605141E248B797859454414E92951AC1605141365E781C879454416A14739CBD6051418DA3A87D879454415F153FB9BB605141B02CE48287945441F38DCDDDB560514126CDF8B78794544197F9B70BAE60514100DB68CB879454414565A239A6605141D557597A889454415777CD509F605141A0D4492989945441B4DDCAAB9B605141D227EA9D899454411E35262495605141C2966A398A945441888C819C8E605141B205EBD48A945441A92F2C188760514162904B978B945441B8A135E87D60514178F15B1F8C945441821E26977E60514197135BE88A945441E08423F27A6051417121CBFB8A945441C683F12278605141562F3B0F8B945441700CFB7F85605141D2B7373386945441B7F271BE78605141040BD8A7869454410AD7A35072605141EC51B86E86945441E17A149E6D6051418FC2F52886945441444FADD05B60514168416626849454414F0F809C4660514113E8FC427F945441B87F3C023F6051410E01D7D57C945441D89C66B441605141768CCA507F94544165AB49AF496051410E4EC2108294544193CAD0E3586051417D0DF991859454417894CC9E58605141F098EC0C889454413A656680526051415E9D65FB85945441657B40104760514159B48EEE82945441BA9AC4673A6051411BD9360D7E94544131B8053F32605141353155D97A945441EC6E5ABB26605141ADD31246769454418B95455A1D605141DBF3E5007294544126099B731A6051418FC0A3716C9454414ADA24FE16605141D97747856A945441A2F314F90C6051410F18FB4B63945441DCECB8E80160514153C068B05B945441F780D03AEB5F5141CE7A86B84C9454411F85EB21D75F51410AD7A3904094544100000020D35F5141713D0A873E94544185EB51D8C55F51419A999909389454415C8FC2E5C45F5141C3F5289C3794544100000090B65F5141333333533194544148E17A34B25F51413D0AD7432F945441AE47E1CAA65F5141D7A3701D2B945441EC51B89E9B5F514152B81E25279454415C8FC2958A5F514185EB51D820945441C3F528AC785F5141E17A145E1A945441666666C6745F51410AD7A3E0189454419A999999735F5141E17A146E18945441D7A370ED715F5141A4703DCA17945441713D0A976E5F514166666676169454417B14AE176C5F5141AE47E18A15945441EC51B8AE695F51419A99999914945441E17A142E675F514114AE47B113945441E17A14AE645F5141B81E85BB12945441C3F5280C625F514148E17AB411945441B81E852B5F5F51411F85EBA110945441F6285C5F535F5141D7A3700D0C9454410AD7A390505F514185EB51F80A945441AE47E1FA4C5F51413D0AD79309945441C3F5289C4B5F5141A4703D0A09945441295C8FC2495F51415C8FC26508945441D7A3706D465F5141C3F5281C07945441E17A141E435F51418FC2F5C8059454415C8FC2953F5F514114AE4771049454410AD7A3D03B5F5141EC51B8FE029454418FC2F538385F5141295C8FA201945441F6285CBF345F514185EB51480094544135B4811E305F5141996F569CFE9354411F85EB012D5F5141F6285C3FFD935441713D0A67295F51417B14AED7FB93544148E17A14255F5141B81E857BFA9354411F85EB911D5F5141CDCCCC8CF793544148E17A94195F51415C8FC215F69354411F85EB01165F514152B81EB5F49354410AD7A370125F5141EC51B85EF3935441B81E854B0F5F51415C8FC225F293544133333393095F5141295C8F12F09354415C8FC205035F514152B81E85ED9354418FC2F528005F51413D0AD773EC93544166666666FB5E5141E17A149EEA9354415C8FC2C5F75E5141EC51B84EE993544114AE4741F65E51413D0AD7C3E89354411F85EBC1F35E5141C3F528BCE793544148E17A34F15E5141666666D6E693544114AE47F1EC5E5141E17A142EE59354417B14AED7EA5E5141F6285C7FE4935441F6285C9FE85E5141D7A370ADE39354411F85EBB1E65E5141000000F0E2935441F6285CCFE45E5141AE47E12AE2935441CDCCCCCCE25E51419A999969E1935441615D8B93E15E5141464471ECE0935441F25B97BBE05E5141D223BC5FE3935441FFCFDD42DF5E5141C55D35EAE593544160D6FCE4DD5E5141FBE0443BE5935441901818C9DE5E51413EACB9D8E29354412C953D61DE5E5141151D0790E29354415484426FDF5E51419CAF4A2BE09354410544B31FE15E5141678628BEE0935441295C8FA2E05E5141C3F5288CE09354411F85EB51DF5E514100000020E09354411F85EB21DD5E5141C3F5283CDF935441CDCCCC3CD95E5141295C8FF2DD935441713D0AF7D65E51417B14AEF7DC935441295C8F22D45E5141A4703DFADB935441AE47E10AD15E51418FC2F5B8DA935441295C8FE2CD5E51418FC2F588D99354415C8FC275C85E51410AD7A380D7935441AE47E15AC55E5141295C8F72D693544152B81EE5BB5E5141A4703DCAD29354418FC2F588B75E5141D7A3702DD1935441E17A14BEB35E5141A4703DBACF935441EC51B8BEB25E5141E17A145ECF9354419A9999F9AE5E514185EB51E8CD93544114AE4721AC5E51411F85EBE1CC9354418FC2F528A65E51411F85EB91CA93544152B81EC5A15E514114AE47F1C8935441C3F5285C9E5E5141713D0AA7C79354411F85EB119B5E514133333363C6935441713D0A47985E51411F85EB51C59354417B14AE97955E51418FC2F548C4935441713D0AE7925E51411F85EB51C393544148E17A74905E51418FC2F568C2935441A4703DFA8D5E514185EB5178C1935441333333F38B5E514148E17AB4C093544133333373895E51418FC2F5B8BF9354411F85EB41875E5141CDCCCCFCBE935441333333E3845E5141F6285C0FBE93544148E17A14825E5141B81E85CBBC935441000000507F5E5141C3F528DCBB935441333333837C5E5141CDCCCCBCBA935441EC51B8BE755E5141E17A143EB8935441EC51B8FE715E514100000030B69354419A999979705E5141EC51B85EB5935441333333E3675E5141D7A370EDB293544114AE47D15A5E5141713D0A17AE935441295C8FC2585E514152B81E75AD935441A4703D3A4E5E514152B81E55A99354419A9999394A5E51410AD7A3D0A79354415C8FC285425E51411F85EBF1A49354411F85EBD13B5E5141AE47E17AA293544185EB5108375E5141333333F3A09354413BAA5A3E315E514137AE1A039F935441FBF066792B5E5141B12066499D9354419F33F136275E5141FD5AEC0B9C93544188CB9C881E5E5141A505FDD59993544133333343165E514185EB513898935441AE47E10A0E5E51413333339396935441C3F5287C0B5E5141B81E851B9693544152B81E85025E5141333333039593544100000010005E51419A9999D99493544152B81EF5F65D5141F6285C8F94935441F6285C2FF35D5141295C8F72949354419A999909EB5D5141D7A3703D94935441C3F5281CE65D5141D7A3705D94935441E17A146EDE5D51418FC2F588949354413D0AD713D95D514185EB519894935441295C8F12D05D5141713D0AC794935441666666B6CB5D5141A4703DEA9493544135CAA38EC35D51413DB413059593544185EB51D8C15D51418FC2F50895935441295C8F32BE5D51413D0AD72395935441AE47E11AB35D51418FC2F548959354413D0AD723B05D51410000006095935441A4703D6AA55D5141CDCCCCAC959354410AD7A360A25D51413D0AD7C3959354415C8FC285945D514152B81E1596935441666666E6925D51413D0AD723969354415C8FC265925D5141AE47E13A95935441931F0CD3885D51419728336994935441667860DA885D5141A971678B949354415AAF9464875D514122D778A394935441758C2FC6875D5141DB336CD390935441A895D98D865D51416BD4E6BF909354414CFE0869855D5141CA287F8B969354415F2D335F825D5141E4AAA8B59693544195D1EDE6725D5141CCA5E5489593544157929D00655D5141507CC8F3939354418B9B47C8635D514137CB3CF8919354412E0477A3625D5141739C9BAE8F9354410C8B36B9615D5141739C9BAE8F935441F511F6CE605D51410FC29230939354413429AC3C585D514154E327079293544122CF622F505D5141545BA6D58F935441747655E6445D5141993F8B248D9354412AE340B6395D5141793AB88689935441CD6854002D5D5141F9BC05878493544188AF809A265D51419066ACAB81935441F1788143265D51415F1F42E48193544114AE47E1245D5141CDCCCC2C83935441C3F528AC245D5141F6285CBF8393544104E3229E245D51410254089B86935441D7A3709D245D5141F6285CBF869354410E9DE4A4245D5141F5B080C2869354419272DCA4245D5141D83AE3C586935441747AE289245D514102028AC886935441BDB90789245D5141C7962BD586935441BFB6402F2D5D51413A259E448A935441EFE00C15305D514180432E7F8A93544176950518395D51415E8C16298E9354412C6CFCD4435D51417DE9CC3292935441CA9BEC814E5D514112731E2C9593544190D486F6575D514191832F3B979354419F0A8F875D5D51416C2B116F9A935441CBD000F6605D51411D45CC459B935441C8F12214655D5141C1ADFB209A935441A2990448685D51417FF3C55D999354417F5AA9506C5D5141CC227672999354419BB93249795D514157EA1B969A935441A68BE0627F5D51410804D76C9B935441EA4F0F51875D51414E2267A79B935441DF2DF915905D51414E2267A79B9354410690100D945D514178B08D049E93544107158DA2975D5141734C338D9E9354412F1E376A965D514169FF01099C9354415A5F2C43965D514198A451599B935441DEDD90F49E5D5141E2263C0B9B9354414B5E3826A35D51410D6831E49A93544150470F33A65D51419D08ACD09A935441F481EC27AB5D5141C1ADFB209A935441AC09FBA0B25D51410F94404A999354415F2DAFA2BA5D5141E5524B7199935441FE033220C05D514159162BFC98935441E1CC3572C75D5141E5524B7199935441B0CD84D5CF5D51417B8F6BE69993544108DFE447DA5D51410B30E6D299935441C624AF84D95D51419F34BB3699935441EAA7E899E15D5141A5D060BF99935441AD510D4EE05D51415286C11E9B9354412B621E5DE25D51414ABE0C309C935441189A696EE35D51410D6831E49A935441F4ECA64BF15D514145C9B5D49B9354419DD758601A5E51413CFF2E14A1935441BCE35A621A5E51415C310CF2A0935441A8825B8B1C5E5141A79A7458A193544195A95725305E51410A696CD3A59354415AED67BF475E51417A5A19BFAD935441A737ABF24A5E5141E647366DAF935441F4A2DB774E5E5141120EC558B1935441EC51B8CE4F5E51410AD7A300B3935441AE47E14A555E5141C3F5286CB293544148E17AD4575E5141295C8F52B393544148E17A145F5E5141B81E85FBB5935441F6285CEF595E51415C8FC2D5C6935441264ED56D595E51410C587663C8935441E8E634265C5E51414A2625CAD6935441666666865C5E5141000000D0D8935441295C8FA25F5E51415C8FC275CE93544166666626665E514114AE4781B8935441AE47E19A675E5141713D0A17B9935441C0E40AA8695E51411DA27CD1B993544109A787866D5E51416D7EF435BB93544114F5176A6A5E51419F213B1EB79354419A545F9E745E5141794808D3BC93544197FAFD517C5E51411336B443BF935441E20165997F5E5141C0EB14A3C0935441898213E8815E51418C05D1A0C193544166FB4CB5845E5141E9793B00C393544171CDFACE8A5E51416326F297C59354412F3474728D5E514115C0F972C693544106293E788E5E514130E231D4C7935441067629B3935E5141109353FCC9935441A0D2B543975E51413DCAD2BFCA935441FA1012259A5E5141771E4DA4CB935441F92BE6639D5E514114F6A1F0CC935441C657B5949F5E51411356F4B5CD9354419B432950A35E51413B45F9C3CE93544126312FCAA85E5141EAE115ACD0935441904F2786AF5E51415CEA5C3AD3935441F00DCD7CB55E5141104C41BED5935441AC4A2ACABC5E51417B4F653BD99354415187F4ECBD5E51419D79A2ADD9935441000000B0C15E51417B14AEA7DB935441A4703DAAC45E5141666666C6DC93544114AE4721CA5E51415C8FC2D5DE935441AE47E16ACD5E514133333303E09354413D0AD783D05E51411F85EB31E1935441D7A3703DD35E51413D0AD743E29354418FC2F598D55E5141CDCCCC2CE39354417B14AE77D85E514152B81E35E49354416F69AF8CDA5E5141FD112BE4E4935441A96FF248D85E514117951A64EA935441BA712294D85E5141C714E656EC93544103EBB6D9DA5E5141096E834CEC935441BA8CF6D2DB5E5141FA4869EBEA935441FE03B2A0DD5E51411E66B700E693544152B81EF5DE5E5141B81E85CBE693544100000010E15E5141E17A148EE79354415C8FC2F5E25E5141D7A3705DE89354418644B3B5ED5E51410DE22068EC9354410C173F8AEF5E5141096E834CEC93544105CD9DF2F25E51414D2250F6ED9354416E4BE873FA5E5141A7005A12F0935441554D33B20E5F5141AB5B1CF1F793544110EAE2C4165F514159588B9EFA935441BDE65172195F5141BB3BB8CBFB935441AA50D52C195F51412D844D96FC935441C3F528AC185F5141D7A3700DFE935441250001C8145F5141A107C86103945441B81E85AB085F5141C3F5281C14945441A4703D6A0B5F5141295C8F421694544152B81EC50E5F51413D0AD7E318945441713D0A27165F514114AE47C10E945441295C8F02205F51413D0AD7530194544164AA4760205F51412542C2EE00945441C8CD93B9205F51410525FB88009454418FC2F548295F514185EB51E803945441AE47E1FA295F514185EB513804945441EA7C720A2D5F5141B6F1A95E05945441913E16292A5F51414349B595039454415AAFD0B5235F51412B64F6A9009454414E9A448E195F51419A0624CDFC9354413DCFA1B0195F5141764790ACFB935441ADB26108215F5141E1EA6164FE935441D84DA5B1335F51415B2E7481069454411A62C420365F514171B803B907945441ABCF13B03E5F514106EB87B90A9454411FD515965C5F5141667F836816945441CCD184435F5F5141E22C9B421794544101BEDBEB625F51417171B97B1894544177FC34C9655F514105C0F8761994544101030000000100000005000000631EA276255D5141021E8369829354411DC4753E245D514194988E3483935441B81673AF245D514168C2DD57839354418E31BF90255D514193A7917682935441631EA276255D5141021E83698293544101030000000100000004000000CB19A540195F5141671B8B5CFC935441EBB03C1F195F5141B09B0A91FC935441AA50D52C195F51412D844D96FC935441CB19A540195F5141671B8B5CFC935441010300000001000000040000000544B31FE15E5141678628BEE0935441615D8B93E15E5141464471ECE09354416D09AF95E15E5141DD683AE6E09354410544B31FE15E5141678628BEE0935441
+</a>
+
+<b>
+010600000001000000010300000001000000C5020000358E208B2862514193A7ACF4B69454417439CCB23E6251417DE4F960BF94544192CB838D4A625141B2F7602DC5945441CC8090DC5162514132488F53C99454415EDB9B715462514149298B74CB945441B6A3B43C57625141F48AC8ABCD9454416042C11A5B625141B69BA4B3D19454419E7812935C625141AAF0A93FD3945441F759254E5D625141B1568804D49454419C3B955D5E62514135892E22D5945441F71811D765625141483C5326D6945441AC07C4656D625141F43E046CDD945441533CF0F473625141917DAFD6E39454416BECF71875625141B005BB8CE5945441AD2E8ACE776251411602D441E994544118F9273A7C625141997C79D1EE945441DEB55F7F84625141978F4183F994544126D0F5C6876251414D8873ED00955441E68D576C846251415E80A0A50295544140DBECBE8A625141F18D766A0995544172A59E589662514152DFC79618955441E90372CD9E625141333A9EE32495544123BE327D9F62514173094BD825955441788DA758A16251412418BBD427955441C793CFB6A2625141D0432D4B29955441C53D35E4A46251415C4C3D9F2B955441B0AB2CB1A762514101C3F09D2E955441EF92368AA86251415C0467762F9554411074592AAC625141769BBF8732955441E2291E89B06251418BD7E30036955441595889CEB7625141F927A1E03A955441D28BDCF0BF6251410C6C9F5F3F9554417A7E037DC1625141F75AAF0140955441F3AB3B3CC462514146D82A1B4195544123B083FDC66251419284712D42955441C8A221D2CB625141D39B590E4495544198BD914DCF6251418B6CEBB44495544119678018D162514100474E32459554415B98E221D562514159E78E5946955441E2ED39F7D56251410594BC724695544120F67C45DA625141345A37D14695544165394998DE6251411FA91530479554418D6877AEE2625141EE5B0E57479554418B96936FE7625141490AB441479554412FE553E7EB6251415331A32D479554412E5616CEEF62514128891D1C47955441919FCBF0F462514102E2E2FC46955441ACEC754CFB625141B3E5A2BC46955441998C59C40C635141293A963C469554418745772C1D63514148D135BF459554417F42A8D7216351410670CA4846955441A059CCB6226351415D33F964469554414E46F22B246351417898D97D46955441531F6BAA286351419D518CCA46955441AFDFFE322B635141F06672CB469554415706F8342D635141A52711A6469554416CEA9BB3326351416912C43F46955441490B9F3A3863514199F64B494695544107B2414D3B6351418AA3BE5246955441BF1948F53F635141069E7B5446955441D038C19945635141D9963F03469554411FEF9D9349635141D87601CA4595544115508DF84D63514170D0BD8A45955441CB3435AD53635141FBE0444A459554414E1864FA5D635141493846EE44955441EE36756765635141DC7841FD44955441B1B5864B6B635141F78A178C449554412CEAFC4C6F6351414E77243F4495544129DC3EA373635141ABE6DAED43955441825344FF7863514138D2806C4495544188BED6067E635141FC225BE34495544187E7FCD0816351418B9C0F8F459554413A788513856351410AEECB3846955441CDED791D886351412A2B19B846955441FE72375D8D6351413FACD8C44795544179728F9B93635141F3F66F6048955441150CBC05996351413D4F51184995544106DC10E19E635141B31F4EB5489554413D2976EDA06351411D271EBE4595544192F8A6D1A2635141CC3B584D44955441B81E85ABA463514133333333449554411F85EB61A8635141D7A370FD43955441A29F253BA96351412401366C40955441E453F8D3AF6351414F257F5F3B955441092E1EBBB263514130DFB02939955441E6F32383B4635141A2860643399554410E45A4FFB86351414F257F5F3B95544103130FA7BC635141EF7D41503B95544169D154C8C0635141E87AAE1C3B955441E664BB76C263514149AFFAFC3A955441D266C3F6CA63514114A107E8399554413109B8CCCA635141C07ABD883C95544133333383D0635141B81E855B3F955441CDCCCC0CD6635141E17A147E3E95544166666626D96351419A9999293E955441333333A3E16351410AD7A3203D955441295C8FD2E563514114AE47A13C955441B81E854BEA635141000000003C9554415C8FC2F5EE635141E17A147E3B955441AE47E13AF363514148E17AF43A9554419A999959F76351415C8FC2753A9554419A9999C9FA635141F6285C3F3A955441AC83EA4DEA635141FA4AFD5E5F955441A5E5B4B4F4635141E18FCD8C64955441FAE6A50603645141DD6E32424395544187DD39E00864514100A4BAFD44955441F03201C0096451410FE63E4245955441E4B8787A06645141345227B64C955441BA2011B800645141CB4EDCD459955441D3C04DC5FA635141F5E7CBB7679554410E72B0C906645141280E3FC76D9554410A922B580D645141856AD8276B95544170EEAD9216645141C00069B7519554415A4A926E1164514147188A624C95544138CCC41D0B645141CD96CB25459554413B990B4703645141B23AC7CB42955441D7A370FD05645141F6285C4F3C9554413D0AD73309645141B81E857B3D9554419A9999790C6451413D0AD7E33E9554419A9999D90F64514152B81E854095544152B81E25136451413333338342955441C3F5286C16645141AE47E15A45955441E683B3B219645141FEEF69C146955441E17A143E20645141666666A64A955441CDCCCCBC21645141713D0A2747955441D7A3701D226451417B14AE47469554411F85EBA11C6451418FC2F5C84095544114AE4761196451418FC2F5183E9554411F85EB11166451417B14AEA73B9554418FC2F5D8126451410000009039955441666666B60F645141E17A14BE37955441333333630C64514185EB514836955441B9EF434509645141E53824983595544160E274B708645141B9C1D47835955441471127C607645141C1046AA335955441682B482506645141EBC3FAEC35955441BA5289AF0364514147BBDBC23595544195D65DFA01645141D87E1193359554411717DE24FE635141F82B4FDD349554419CACCB51FB6351414D0507F534955441BB25F92DFA635141B7BE820A35955441F3218316F66351414DB4315A359554412110BF02F36351413B881F843595544114C35F7CEE635141743CACD03595544123E1B725EA6351412771524E369554418693B0CBE46351413E12A370369554413D0AD7B3DC635141EC51B8AE36955441CDCCCC4CD9635141E17A142E37955441D7A3705DD56351410AD7A3B037955441295C8F52CF63514100000070389554419A999939CA635141AE47E11A39955441B81E855BC463514114AE47F139955441D7A370EDBE635141666666963A9554417B14AEE7B9635141B81E851B3B95544100C39723B56351419B2DCB8038955441214B70B7B4635141FB22E31F389554416F791592B2635141B81C909337955441E8D739D5B063514106F9B6433895544159D89982AF6351417582CBD9389554419A999989A96351415C8FC2853C95544152B81E25A46351413D0AD7D33C955441054CE6CE9E63514102F6AC4C3F955441550555FA9C6351411486B725409554413922674197635141BFAECFA441955441F16B41F48C6351412B6CA344429554419167132083635141B8CC25E2409554411700B8637D635141F522030C40955441A4703DEA75635141F6285CAF3E9554418FC2F59873635141713D0AD73E955441B81E85EB706351417B14AEE73E9554411F85EB516D6351418FC2F5083F9554417E712BBD6A6351411A6566AC3E955441B84DE1A96663514169A69C3B3E955441471C36D161635141B9E7D2CA3D955441D5EA8AF85C635141BC8501743E955441BDE7DBAC58635141C3D498C83E955441A4D1F25E55635141739362393F95544196BB09115263514123522CAA3F955441666666F64E635141AE47E13A40955441E17A148E4A6351411F85EB6140955441E17A141E4663514148E17A74409554419A9999B941635141EC51B89E4095544152B81E453E635141A4703DBA409554413D0AD7733A63514114AE47D1409554410AD7A3C035635141666666B640955441295C8FB2326351418FC2F5884095544114AE47A1316351415C8FC275409554418FC2F5382D635141A4703D9A40955441E17A14DE2C6351417B14AE6741955441A4703DEA28635141CDCCCC9C41955441666666F6246351411F85EBC141955441EC51B83E21635141AE47E1EA41955441CDCCCC5C1D6351419A9999294295544185EB51681963514114AE4751429554410AD7A3A011635141295C8F9242955441EC51B8FE0D635141295C8FB242955441AAFF2272ED62514158DCA68541955441A4703D6ADA625141666666064295544100000020D662514133333313419554419A9999D9D16251419A9999094095544185EB51B8CD625141713D0AD73E95544185EB5178C9625141CDCCCC6C3D95544166666666C5625141AE47E1AA3B9554417B14AE77C162514185EB51C83995544114AE47D1BA6251419A9999D935955441AE47E13ABA62514133333363349554417B14AE67B9625141AE47E1EA339554419A999949B26251419A9999D92F955441000000C0AE625141EC51B8DE2C9554410AD7A320AB625141F6285C6F299554418FC2F538A76251411F85EB41269554415C8FC205A4625141713D0AC7229554418FC2F5B8A06251411F85EBA11E9554411F85EB919A6251413333334316955441713D0A6797625141E17A141E12955441000000C0936251419A9999A90D95544114AE47219462514152B81EC50C95544185EB51888E6251411F85EBF10495544138A8F958886251419899C05EF9945441EF8D63118562514136BB243CF59454417BD7C35C80625141A272FAF5EE94544128BD2D157D6251411DE456AFE9945441C6E810CE78625141A45F3244E494544149466FD07362514118F98A6BDE945441BFE946D36D6251418A7EE5DBD89454417B14AEB7676251419A9999B9D39454413333336362625141666666C6CE9454417B14AE975F625141295C8F52CC945441713D0AD75B625141B81E85CBC99454413D0AD7435B625141713D0A37C9945441D7A3701D536251417B14AEF7C3945441E17A149E486251413D0AD773BE945441D001B4FF3B62514154E53976B8945441D527F5FD3A625141D82ECA35B8945441288CDA453A625141871273EEB79454418FC2F50838625141000000A0B7945441B81E85AB30625141B81E85BBB594544174B7A968296251415BAA7DCFB29454412984C2491E62514129B74A38B094544122C4D5EA18625141556AD555AF945441E7D0964511625141EF837B35AF9454413DB7D2C20462514190DDC307B09454415D6AC807FB615141C8D0735BB19454413E9489C4F261514102DFE5EDB2945441F365F5C5EF61514102DFE5EDB2945441A155DE59EC615141F2106137B294544147634480E8615141FB06E25BB2945441A24216A8E16151411B996CEDB394544130A074AADC6151411CA3EBC8B3945441D5A35BF5D861514112AD6AA4B3945441D47C958CCE615141237BEF5AB4945441411724B9BD6151413453F3ECB4945441C7888072B86151413453F3ECB494544113A44CBFB06151412B67F1A3B49454416C6F2030AA61514133497411B5945441A8BC67C6A1615141237BEF5AB49454411C56C0ED9B615141258FED11B4945441B97724CB9761514114C1685BB39454414DA307849361514114C1685BB39454414883E36E8A615141939D279CB19454417376FEE982615141F9435C86AF94544170B694CE7E615141F203BA93AE9454412FC3DEF37A615141552AB01FAD945441C49CDC5977615141F2C3945DAC94544160F69B61746151411E771F7BAB945441B8DC6CB770615141E7836F27AA9454411AC33D0D6D615141BA90BFD3A8945441E3CF873269615141B5903C90A7945441437639D9656151414CEA7EDBA5945441A41CEB7F6261514114F7CE87A4945441A9DC42065F615141DC031F34A39454410703B64E5C615141735D617FA1945441295C8FE25861514114AE4751A094544185EB515855615141AE47E16A9E94544152B81EE551615141E17A149E9C94544114AE47414E615141AE47E1AA9A945441333333834A615141CDCCCC9C98945441713D0A57476151411F85EBF196945441295C8F72446151413333336395945441C0F3C3EA416151410F33C9A593945441151836A33E615141523721C29194544166E186093B615141F6B937838F945441A3B8B8AF37615141F08C110D8E945441C3F528AC34615141295C8FE28C9454418FC2F588306151415C8FC2A58A945441F6285C3F2D615141666666C688945441D9DC26E32B615141D67D57E287945441D7A3703D2B6151410AD7A3F086945441333333C325615141666666E683945441666666262561514148E17AE4839454418FC2F5881F6151415C8FC2D583945441295C8F7218615141EC51B89E819454410AD7A32013615141666666D67F9454418BCF93510F615141C81A7DD37D945441E93A1CDF0A6151419366FF9C7C945441D48AE5F305615141CB2F81AB7B945441DAB4EDA301615141BB91C1777B9454418661F60EFD6051416214C2327B94544186ED3E8BF8605141FE96C2ED7A9454413ED6C65DF4605141473A83977A945441593C4E75F060514185A1C4D979945441492AD7BDEB60514190DD43417A94544123A06137E6605141957B03757A9454411AE32080E1605141321A3DCC7B9454410E02233FDF605141C70745F17B945441073FD4C0DB6051416BE4A79E7C94544192DE8167D76051419C8C09037D9454415A73D184D36051415D1FAF547E94544172A2A1C6CF60514132E04F827E945441A11EB21ACC605141B01451CB7E94544117FA3BDDC66051412E4952147F945441804CA971C2605141DC25B5C17F94544179C5360FBE6051413376788A80945441ADD844D1B96051417C6B1A0181945441806D94EEB56051413E3A9C6E819454413AE39ED5B0605141862F3EE58194544134205057AD605141B7D79F498294544110E39A50A8605141FFCC41C082945441D085CBADA4605141DD7F01AE82945441B2753C1DA16051415BB402F782945441D78775799F605141ECDA22008394544122CA537D976051415186071B84945441921E6BDD8D605141CFBA086484945441BA1309CF8560514117B0AADA849454413285BB99826051411C47A848849454414E4B89497E605141822E697F849454411012D6677860514114032600859454410AE168B871605141D58EC74C8594544154C834D46D6051415E7784B3849454417D674BC0636051412F1A6E808494544134208CC25F6051416E8ECC3384945441225785DF5B605141C54D13288494544117075DC55A605141C81973678394544171057161566051410F5F4BE881945441067415B746605141EA74A21D7E9454419EE08F653C605141E618F7D478945441F613480C36605141A710A16F759454413A26A6293160514188B6A7BD729454411E20F1B22060514128FA93DA6C945441337939EC156051414E8449C36894544177BC2AF00E60514144B1E87864945441C5F388B8086051418CE10585609454416F238A7908605141FBE489FF64945441584FD4540E605141ED3516C167945441DA1A326E12605141D9E15A0F6A9454414DF0744E1D605141E2B4BB596E945441BD506349266051417470D90A72945441BF524AC62B6051411314B9097494544168561DA735605141C92CEDED779454411ACD5DF03B605141EE1696B87B945441E78EBEF2416051417A4246667F945441BE472216496051418AA6FBDB81945441EA3B62354E605141FB2DB21B8394544160B0BAE358605141F464C4928594544199A1D09F586051415320940388945441766C633153605141A6813A3786945441EBCA828B47605141EF2F6D0F839454412DFD95A0396051411AD707BF7D9454412B2E2FC632605141F512630E7B945441B50E77D329605141CBE8D180779454411E07B3F3276051419E3F2FC2769454417345AB601D605141F790CF0372945441C9D64A3817605141E6E3418C6F945441D45C32270860514122C9262B66945441D7A3707D08605141F6285C0F60945441AE47E10AED5F514148E17AD44D94544152B81E45EC5F51419A9999594D9454411F85EB21D75F51410AD7A3904094544100000020D35F5141713D0A873E94544185EB51D8C55F51419A999909389454415C8FC2E5C45F5141C3F5289C3794544100000090B65F5141333333533194544148E17A34B25F51413D0AD7432F945441AE47E1CAA65F5141D7A3701D2B945441C683D4E39B5F51417C6FE39A24945441A9FA326A8A5F5141237722711E9454410EFBD60F795F51419404F67319945441666666C6745F51410AD7A3E0189454419A999999735F5141E17A146E18945441D7A370ED715F5141A4703DCA17945441713D0A976E5F514166666676169454417B14AE176C5F5141AE47E18A15945441EC51B8AE695F51419A99999914945441E17A142E675F514114AE47B113945441E17A14AE645F5141B81E85BB12945441C3F5280C625F514148E17AB411945441B81E852B5F5F51411F85EBA110945441F6285C5F535F5141D7A3700D0C94544165CC575C515F5141D7B507330A945441CB617BF64C5F5141F0208B8908945441F70FD6244B5F5141D6EB90D90794544193E793C4495F5141EDB0705407945441A105556B485F5141F5EEF6D106945441D7A3706D465F5141C3F5281C07945441E17A141E435F51418FC2F5C8059454415C8FC2953F5F514114AE4771049454410AD7A3D03B5F5141EC51B8FE029454418FC2F538385F5141295C8FA2019454417FB97999345F51411D919014FF9354418DD6EEB6345F5141C50EF62EFE935441489D4AB2315F51414CB8A1B1FC93544107A7F0FB2E5F514129C3A174FB93544128C72EC72D5F51418EDC62EEFA9354416959D23C2B5F5141311619DAF9935441BED6A9AF295F51410D4A6031F993544169C92166265F514119D9DFCBF7935441C39A4AD5235F5141A365D5B4F69354417C56A34B1D5F514104D8D3EDF393544118B23801185F5141A5C570AEF1935441902EFA55145F5141EDF9D65BF093544196359AC0115F51412849F47DEF935441CBCA63F00C5F51415DC38EE0ED9354411C5E9014075F5141DC1061E9EB935441B0CF56CA015F5141216D0C23EA935441CFB39F0EFD5E5141BE7A66A0E89354413380A05EF75E5141017111F1E69354418694D94BF35E5141DA7E26BCE5935441081D175AEE5E5141D0D12C45E4935441B4C410B2EA5E5141B3D5E12FE39354417BB6568FE75E514156021442E29354413583915EE55E514154DEF39BE193544177E13FFDE15E5141DA294EC8E0935441615D8B93E15E5141464471ECE0935441295C8FA2E05E5141C3F5288CE09354411F85EB51DF5E514100000020E09354411F85EB21DD5E5141C3F5283CDF935441CDCCCC3CD95E5141295C8FF2DD935441CDAF45D0D65E5141C15AF324DD9354410BD7C057D55E514192F5E7A7DC9354413A2E3605D45E5141839AA90FDC935441AE47E10AD15E51418FC2F5B8DA9354415F46ED77BE5E51414F2D6E43D2935441DA7C568FB65E5141D148D945CE935441D9CD50CEAA5E51414B6B3A44C993544160074876A25E5141D278B94EC7935441267C82889D5E51415D24C0E7C5935441713D0AE7925E51411F85EB51C393544148E17A74905E51418FC2F568C2935441A4703DFA8D5E514185EB5178C1935441333333F38B5E514148E17AB4C093544133333373895E51418FC2F5B8BF9354411F85EB41875E5141CDCCCCFCBE935441333333E3845E5141F6285C0FBE93544148E17A14825E5141B81E85CBBC935441000000507F5E5141C3F528DCBB935441333333837C5E5141CDCCCCBCBA935441EC51B8BE755E5141E17A143EB8935441EC51B8FE715E514100000030B69354419A999979705E5141EC51B85EB5935441BB341329685E5141679FA42AB1935441B132B95E5B5E5141AE32CD71AB935441A3DC451B575E514126E69352AA93544163011F134E5E5141B3CA124BA7935441D85E72B0485E5141D2FBCA62A59354415588683A415E51417E3318A3A29354416663AD0E3B5E5141A9C9E5E5A09354415A1F81AE365E51413C591E00A0935441580C0D66305E51417E54016E9E935441A4703DBA2B5E51413D0AD7539D935441EAF51B5B255E51419B97BF929B935441713D0AC7205E51410AD7A3709A9354416FCD083E1E5E51413A1D6BC79993544150C356C3195E51411CEB64E79893544133333343165E514185EB513898935441AE47E10A0E5E51413333339396935441C3F5287C0B5E5141B81E851B9693544152B81E85025E5141333333039593544100000010005E51419A9999D99493544152B81EF5F65D5141F6285C8F94935441F6285C2FF35D5141295C8F72949354419A999909EB5D5141D7A3703D94935441C3F5281CE65D5141D7A3705D94935441E17A146EDE5D51418FC2F588949354413D0AD713D95D514185EB51989493544131EF0ECBD15D51412FBA82B291935441545E6174CB5D514107E90A9691935441A2ED9800C25D51414C8BFACE91935441A192271BB95D51411231C4CE909354413B05548BB15D51416914B9B292935441908DD789AA5D51412FBA82B291935441C98C9CA4A25D514191E530CF92935441916E1BBE945D5141E0CFD94092935441931F0CD3885D51419728336994935441667860DA885D5141A971678B9493544107AEF89C8A5D51413F8612FC95935441ECEDC10D925D5141E079D01A97935441E3ADAF88945D5141B6B5094E98935441C41F2A05975D5141B79E9FB298935441E74085D9975D5141B79E9FB298935441CCF10837A25D51413646007798935441FC9A3A0EAA5D51416B2BB49597935441D49661BCAD5D514116C24B2F97935441C03562E5AF5D514195315506979354410DA1926AB35D51414AA7FF4D96935441A798E0C6BA5D5141BFF51BD395935441C3E012C7C45D51413F8612FC9593544126AF0A42C95D5141F4FBBC4395935441BE83A32DCD5D514134234B06959354415B94BE60C85D51411580718B9693544120D8CEFADF5D5141F6FD846298935441AB89B275E05D514155E9D9F196935441B8AC67E6E35D5141362513259893544161A84580F15D514157A9C76C999354418E17BD2E055E5141839043AA9B93544118AA2C3F055E51414992501D9C935441E35F3843055E51412E48C8959B9354414CF2AD76125E51418F35E5439D935441719BDF4D1A5E5141F00115A09E9354416359B64E1A5E5141B63B9ABC9E9354410BE80959365E5141762C7EB7A4935441A8770E11405E5141786F98C7A7935441E16CE746605E514189526F59B393544153DA8F615F5E514186C1E5BDB493544143449E7A5A5E51415F055B0CC7935441FA17F788595E5141C7135C6DCA935441E8E634265C5E51414A2625CAD6935441666666865C5E5141000000D0D8935441295C8FA25F5E51415C8FC275CE935441E94E4744665E5141523DA144B8935441658333D75F5E5141F574A0EFB49354417AB573AC605E514148FAD3B4B3935441B800B615665E5141ACF0FADBB3935441988CFE026A5E514157075F51B593544168800117725E514156E67586B9935441480C4A04765E51419C37CC37BC935441FC7264027C5E5141D1F67B2ABF93544149D8B52F7F5E51410681D776C09354413CA4D467815E51416F1BBA69C19354416F522AE5835E5141ACC4409AC2935441F4B875FB875E5141E5307364C4935441AB741A098A5E5141D933D943C59354412F3474728D5E514115C0F972C69354410F9B65A48E5E51411F1967E6C79354416DDC689D935E5141A03E5BF3C9935441A0D2B543975E51413DCAD2BFCA935441FA1012259A5E5141771E4DA4CB935441F92BE6639D5E514114F6A1F0CC935441C657B5949F5E51411356F4B5CD9354419B432950A35E51413B45F9C3CE93544126312FCAA85E5141EAE115ACD0935441904F2786AF5E51415CEA5C3AD3935441F00DCD7CB55E5141104C41BED5935441AC4A2ACABC5E51417B4F653BD99354415187F4ECBD5E51419D79A2ADD9935441000000B0C15E51417B14AEA7DB935441A4703DAAC45E5141666666C6DC935441B87B7764C95E51418E716AE2DF93544129F1F3ADCB5E5141D3E2A3F0E09354411EB296ABCE5E5141FFE6E62BE29354413FB6D9E6CF5E5141D3E2A3F0E0935441D7A3703DD35E51413D0AD743E29354418FC2F598D55E5141CDCCCC2CE39354416F69AF8CDA5E5141FD112BE4E4935441A0C3DD9EDD5E5141A2A05012E6935441901818C9DE5E51413EACB9D8E29354412C953D61DE5E5141151D0790E293544146732864DF5E51415C0F346AE09354410A728673E15E51418AB04048E1935441F25B97BBE05E5141D223BC5FE393544152B81EF5DE5E5141B81E85CBE693544100000010E15E5141E17A148EE79354415C8FC2F5E25E5141D7A3705DE89354413D0AD7D3E45E5141D7A3700DE99354416DFD97D0E65E5141988879D0E9935441E10C9B01E95E5141E72768A3EA935441DD293C6AED5E51413630C14BEC9354410C173F8AEF5E5141096E834CEC93544105CD9DF2F25E51414D2250F6ED9354416E4BE873FA5E5141A7005A12F0935441554D33B20E5F5141AB5B1CF1F79354416AC9BC59125F514147AF6327F993544110EAE2C4165F514159588B9EFA935441BDE65172195F5141BB3BB8CBFB935441AA50D52C195F51412D844D96FC93544112DCE5FC185F51415920342AFD93544166167E90185F51419479F5C9FD9354413DB432AB145F51417A7EC73F03945441B81E85AB085F5141C3F5281C14945441A4703D6A0B5F5141295C8F421694544152B81EC50E5F51413D0AD7E3189454419F9AA20D135F51411011CC1A1C945441DA6C93AA245F514135CB889D029454415969F5F9245F514137D2C4FE01945441D2410D7A195F5141C18A1551FD9354413DCFA1B0195F5141764790ACFB935441ADB26108215F5141E1EA6164FE935441D84DA5B1335F51415B2E7481069454411A62C420365F514171B803B907945441ABCF13B03E5F514106EB87B90A9454411FD515965C5F5141667F836816945441CCD184435F5F5141E22C9B42179454417FA3DD176D5F5141EC58DDF71B945441A7C312D66F5F5141B0AEE7DE1C945441F3748B7D745F51419D18EBD91E9454414575A574785F51413756018220945441592284F57B5F5141B58FB2F82194544176E4424F7D5F5141B35E4E322294544175AB4A23815F514148865E8D2394544183060D02895F51414941E00626945441CD7FA1478B5F5141C4EEF7E0269454417037926E905F5141FDA2C48A28945441755861A7935F5141431CCA112A9454416BD70008945F51418209333B2A945441198AA0E99B5F514165668D922D94544120AA97399E5F5141E113A56C2E9454410B2C9962AF5F5141D1DFB4023694544183207A01C25F5141847741043F94544182D1DBADD25F5141EC55DE4A47945441B076D24EDD5F5141F095CCEA4B94544139C42A8EE35F514142CF05BB4F945441BD4CBB31E95F51415914176C53945441F60088DBEA5F5141BCF743995494544129861A57F95F5141D9D7729E5E9454414970FC53FB5F5141A03E7A3360945441AB06401B03605141071316766594544114411897086051417C6384F6689454418CE5AD7B0E6051413581BDFA6B9454418973BB1813605141CA882E5E6E94544154FD6D4D20605141B839F84474945441BA0B58DB296051417D618D787894544171BB84A232605141333D1B1A7C94544136F0FA703860514184F8FC807E945441ED0CF6FB3F60514196E82E4B81945441EA26CE67486051410EB4ED3F8494544103FE194E4C605141A6D3599E85945441D4F712F2506051413C363E0687945441AE4CF2AB5260514184AB1181879454412D7BF1A8586051417864C9CA88945441D5F2DC695D605141634FD4C489945441E202311E62605141795D5EF489945441F731D10863605141DF51A1FD89945441F41804EB63605141DEAC03118A9454413982925765605141F89795338A9454419C0E49C36B605141412574CF8A9454414A351E516F605141855B40118B945441E23340A4746051410A59CA6F8B9454418BB9B3E07660514160CF135D8B945441A24025607D605141A3746B708B94544194D6827E88605141A16A326A8A94544113CF5BFC9E605141A7621B1C889454415BB094C5AE6051419A5D98A4869454419017D0F0B3605141AFB2B692869454413AFDE6FBC460514197AD331B8594544110CEE70FE3605141690BBE5081945441B29177A4E7605141A0C5CEF4809454415E54BF90EB605141AFA002B380945441D04F6913EE6051412394A7718094544129C2D964F2605141F9E83D3C80945441B1AEE3F5F460514178C30D2680945441CDAE7D0CF86051419D403F0F809454419F0DD218FA605141219B1A38809454414C0A5EC6FE60514147E0538C809454411666E3560161514179C343A880945441440A316304615141A56BC319819454411AC6DBEC07615141CA7B6A8981945441736BEDBC096151419A92CFBD819454410F9164120C61514163247D2A82945441FB9ADDA7106151419E450E1E8394544113D92268116151417E601A5783945441012254DB1A6151410EE72D20869454415119390D22615141810466398894544188DD35DB23615141322E094088945441E1D09BDA24615141CE67843888945441A82336CC256151412B1F7A26889454416C3A484B27615141898DA44E85945441B6359AE428615141521C302386945441B7EA3EE9276151416E81A9B4889454418F11DA5E28615141068D4FEC8994544173A72A762B615141786F58F78B945441127AC7E42D6151417B02F6608D94544147CFC81A35615141DD1ECC9591945441A311E2BE3E6151415A719E5D97945441A4FDF0A6466151417A3A51BF9B945441FFCF5D0B516151411EE2FC56A19454411A5B5FAF5561514113709DABA3945441E4AD657059615141E5FAAD62A5945441005AB1115D6151410F843F0BA7945441A3312294606151418F4DB8A5A89454415363BA6E61615141792AF5E4A8945441CE72388A66615141A53947F4AA945441AEBD89AB69615141277ED042AC945441F9173B1B6C615141153B7951AD94544143C7D0316E615141E0D78AEFAD9454412268D0726F61514108B9C14BAE9454419F9AA22D7361514107C5E0EFAF945441B23D25BF766151418665BF29B194544140D2F1A67B615141A6F65CD7B2945441A5A84EA07E615141754DD4DBB39454416D41AB0F80615141C79AD532B49454412A3B98698661514116425AA0B59454415F34BB8088615141E393A718B69454411B992C688B6151414F77A086B694544109B188B892615141C9CCE291B794544146FA82CBA96151412A12FCE5B8945441BF4ABA58B1615141888A8A10B99454412532FD6FBA615141FFB5B82BB994544176016DF4BA6151413D02E656B994544162523876C261514134C3DF82B994544101465D38CC615141E2494141B99454414345AACFD4615141834CD5FEB8945441356D753AE361514168642B47B894544136FA62A0FB61514172B51F44B69454413D06107812625141F7883F65B4945441F16F65FC17625141B2073F88B494544133BC5DE41E62514107776BBEB4945441F2FC733624625141BC0E70C5B5945441E52AD4F72562514118E6691CB694544155D7868828625141D515C1F3B6945441358E208B2862514193A7ACF4B6945441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>132736 - 3683613
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -42 </desc>
+<a>
+01060000000100000001030000000100000044000000AE47E14AED86514166666656F6995441CDCCCC0CED865141AE47E13AF29954417B14AEE7EC865141B81E852BEE9954413D0AD7E3EB865141C3F5287CE69954411F85EB61EB86514114AE4701E39954411F85EB61E8865141AE47E1EAD8995441F6285CDFE58651410AD7A350D199544152B81EC5E38651419A999939CB99544114AE4701E38651415C8FC285C999544148E17A54E2865141C3F5280CC79954418FC2F528E18651411F85EBC1C7995441333333E3DB865141666666B6CA995441F6285C1FDB865141A4703D6ACA995441A4703DCADA865141C3F528FCC99954415C8FC2E5D88651419A999989C79954419A999979D38651411F85EB21BE99544114AE4761D386514152B81E85BD9954413D0AD7C3D08651418FC2F5B8BC995441295C8F22CD8651418FC2F558BC995441C3F5288CBF8651419A999949BD9954415C8FC275BF865141D7A370CDBD99544185EB5158BB865141D7A3702DBD995441C3F5284CB686514185EB5128BB99544185EB5118B3865141D7A3702DBE995441000000F0B3865141B81E857BC3995441295C8F12B58651417B14AE37C699544148E17AF4B9865141295C8F12C8995441333333D3BC8651410AD7A300D0995441CDCCCC9CC386514100000080DA995441EC51B81EC5865141EC51B81EE1995441E17A149EC78651418FC2F5B8DE995441EC51B82ECD865141A4703D3ADC995441D7A3704DCF86514185EB51C8DA99544185EB51B8D3865141B81E85ABD6995441295C8F82D486514100000050D7995441B81E855BD68651413D0AD7B3D89954411F85EBA1D786514148E17A74D99954418FC2F558D88651418FC2F5E8D9995441333333F3D8865141E17A143EDA99544114AE47C1D98651411F85EB91DA9954419A999999DA8651415C8FC2F5DA995441000000E0DB86514114AE4781DB995441D7A3704DDD86514133333303DC99544148E17A74DE8651418FC2F588DC99544152B81EA5DF865141B81E850BDD9954417B14AE67E0865141CDCCCC6CDD995441C3F528DCE0865141B81E85CBDD99544114AE4751E186514133333343DE9954419A999999E1865141EC51B8CEDE995441C3F528ECE1865141A4703DAADF9954419A999909E38651419A999979E199544166666606E4865141333333F3E2995441B81E85ABE48651417B14AE47E499544114AE47F1E586514114AE47F1E69954413D0AD7E3E5865141C3F5287CE8995441C3F528BCE5865141E17A14AEE9995441EC51B84EE6865141AE47E1FAEA9954418FC2F598E686514185EB51B8EC995441B81E85ABE686514133333363EE995441AE47E1FAE58651413D0AD773F09954411F85EBD1E4865141AE47E15AF2995441713D0A67E4865141A4703D3AF4995441D7A3708DE38651419A9999B9F6995441B81E850BE3865141F6285C3FF89954418FC2F5C8E4865141666666E6F89954415C8FC2F5E686514114AE47C1F899544100000050EC865141E17A149EF7995441AE47E14AED86514166666656F6995441
+</a>
+
+<b>
+01060000000100000001030000000100000003010000F4CE9F9DEA865141E97764FAF7995441635CD8BAEA86514184E9A67BF8995441F6285CCFEA865141666666D6F89954412F7E83A2EA8651415C43C0C9F89954417BC6740EEA865141CBC0FD9FF89954418072C4D6E9865141C8BC4890F89954418413EC98E986514197C033ADF899544115532D75E9865141EC1C5CBEF89954418DF5456BE9865141A7161DC3F899544139DB945EE98651415EA834C9F899544144192A4FE9865141AD923CCDF89954410A543741E98651410576CECCF8995441C442AD32E986514153AE91CBF8995441BA905A1EE9865141873FBBCBF89954411B4F9DDFE886514190F7CBC9F899544129EBB98EE8865141B96B4DC2F89954419A63F378E886514155FF9ABFF8995441C4FC0536E88651412855CFB6F8995441BFEED5C4E7865141B8D54595F89954415C8FC2F5E686514114AE47C1F8995441FCF3FD40E6865141BEE004CEF8995441EF158221E6865141024A2018F999544166666606E68651411F85EBB1F999544178BF636DE586514167BFA6B7F9995441713D0A07E5865141D7A3707DF9995441D027D595E48651417980E176F9995441C3F528ECE386514185EB5198F99954419A9999F9E286514148E17AE4F9995441EC51B80EE28651418FC2F578FA99544194DB196BE1865141C47D7FB6FA995441F18AFB2BE1865141ABD3DC10FB9954418E4829B6E086514167280F76FB9954416208C684E08651410EBCDEE0FB995441C52F8479E0865141A7CF6924FC995441F8A5BE57E08651413B5987D8FC9954414D4F122AE086514103D6A4BBFD99544169E76EC8DF865141F6EAA78BFE9954412CB3CEBCDF8651414C1F3684FF99544102F5E2AEDF865141F5A6BB9DFF99544134A2B2BBDF8651417BD6DA92FF9954417C9A32BCDF8651418D693F91FF995441FCD80DBADF865141A39E13BFFF9954415B94BC99DF86514143A62156009A544168E1576BDF8651414F3031E4009A5441FE02496FDF8651417600E132019A54412E30D454DF865141AF4314BA019A54413B44AF73DE865141A6A5CB0B039A5441A5F5DAF7DD8651416991487F049A544152B81EF5DC86514100000040059A5441C3F528CCDC865141CDCCCCAC059A54415C8FC275DC86514166666656069A54418FC2F528DC865141666666E6069A54415C8FC295DB8651413D0AD7A3079A5441CDCCCC8CDB86514133333333089A5441D7A3709DDB865141295C8FD2089A544185EB5178DB86514152B81EC5099A544185EB5138DB86514185EB51380A9A54413D0AD793DA865141333333730A9A544133333303DA8651410AD7A3D00A9A5441333333B3D98651413D0AD7230B9A5441FFC0CA8DD9865141F9466B540C9A5441E17A146ED9865141CDCCCCDC0C9A5441DE643B0BD98651415E84754B0D9A54411B6F128FD88651413528E6680D9A54411B6F12CFD78651413FFF89790D9A544114AE4721D78651418FC2F5980D9A54413D0AD7C3D6865141666666D60D9A54419A999939D68651410AD7A3200E9A5441295C8F62D5865141D7A370CD0E9A5441F6285CAFD4865141E17A148E0F9A54418D2019C7D486514178799DAA0F9A544156344C78D4865141128D28EE0F9A5441BC20C134D4865141DC513748109A54415AF90240D48651417565C28B109A54412783C861D48651410F794DCF109A54418F83183DD3865141052A2978119A5441CDF9521BD386514103164E59129A5441033544C1D286514133C7D16F129A5441D00D2E3AD28651412C3D64E0129A5441A7E617B3D1865141969F6B0D139A54416C35949CD1865141BFC68194139A5441ACBFA999D0865141F028E153149A5441E9D32C26CF865141C0775D3D149A5441F6285C7FCD86514114AE4761139A5441713D0A47CB865141B81E857B129A54410AC0BD9BC986514186CADE38129A54412086EB00C3865141D3B627B51C9A5441295C8F02C08651417B14AE471F9A5441E17A14CEBE8651410AD7A3C0249A5441C3F5281CBF8651418FC2F558299A5441CDCCCC2CC28651417B14AEE7309A5441F15B9B1AC4865141FE2D1E0A379A5441F6285C2FC5865141000000C03C9A5441D7A370BDC4865141F6285C7F3E9A544133333303C4865141AE47E1BA3F9A54415493396FC38651417128B63F409A54419D4745ECC18651413C5856CD409A544180643ACBBF8651414209D02D409A5441D9F77899BE86514143C5BA58439A544173BC0275BD865141F0B293EA479A5441311511D2BD86514173D114304B9A5441A4F8BE4CC18651417503A6F04D9A54414B65807EC28651411579A92C4C9A5441BC169D38C386514164522C904E9A544175F0C2F5C68651411C7067224F9A544101E80745CE86514179501AFF479A5441CDCCCCCCD0865141E17A14EE3F9A544114AE47A1D1865141713D0AA73D9A54410AD7A3F0D18651418FC2F5C83B9A54411F85EB21D286514166666676399A5441AE3F830ED28651413898CBA1379A54411E020992D08651410B4E0722329A5441F6300260CD865141AE7892992D9A54413F7893EAC886514174D8BBE0279A54419A9999C9C88651418FC2F5F8259A544152B81E45C9865141B81E850B249A5441713D0A17CA8651417B14AE47229A54413D0AD733CD86514166666676209A5441F6285CFFCF865141713D0AA7209A5441333333B3D38651418FC2F5F81D9A544114AE4701D6865141AE47E1BA1C9A5441FD001EA7DD86514187FC6FF9149A5441EC51B80EE186514185EB5148129A54419A9999A9E78651413D0AD7730D9A54410AD7A3E0E9865141E17A141E0C9A54418FC2F5A8EB865141CDCCCC2C0A9A54413D0AD7C3EC86514100000080089A5441416858F5ED865141E3DAD6E6069A544185EB5118F08651419A999909069A54417B14AED7EE8651413D0AD7D3009A5441AE47E10AF4865141CDCCCC8CFF995441D680F3B3F28651412E609745FA995441DEDBA8A3F1865141700CE400E7995441604A5399F0865141E588135BE19954418A5C4654ED865141E2504296D8995441E5F9E917E98651412983AD70CD995441F6285C3FEC86514148E17A74C99954418FC2F578ED86514166666606C8995441FADDDF4EF28651411EF5C972C49954411E2D0E6F0287514114034FD7BF995441AE47E10A0487514114AE47C1BF9954419A99993903875141E17A142EBC99544185EB5168028751413D0AD703B9995441EC51B84E02875141D7A370DDB6995441295C8F1200875141295C8F52B799544185EB5148FF865141B81E85ABB799544133333313FF865141E17A14FEB79954418FC2F588FE865141295C8F82B899544185EB5108FE865141D7A3700DB99954412AB91432FE865141CC55FDF5B999544195743FD6FD865141B41C8B58BA99544148E17A44FD8651411F85EB71BA995441BE173AC7FC8651417FEE954ABA9954418ECED419FC865141ECAFEC3EBA9954416ABBEE0EFB86514102EF073FBA9954418334DF15FA8651415620E10CBA995441C3F5288CF886514166666616BA995441D7A3700DF886514114AE4721BA9954417B14AEA7F786514133333323BA9954417B14AE37F78651419A9999A9B99954411CED974EF78651415C8FC2D5B89954413D0AD7C3F58651415C8FC2D5B8995441FD82B77BF5865141F0B945D0B89954411F85EBB1F3865141D7A370ADB8995441630DB6A2F38651412A97BEA8B8995441B81E857BF0865141000000F0B799544114AE4731F0865141CDCCCC5CBA995441713D0AA7EF865141713D0AE7BD995441713D0AF7EC8651415C8FC275C09954417B14AED7EA86514114AE47E1C1995441B81E85EBE8865141C3F5280CC399544148E17A54E2865141C3F5280CC799544114AE4701E38651415C8FC285C9995441642731B4E38651416F5C19FCC999544142A24522E48651417733BDCCCA99544105986E3EE486514111CD5666CB9954414B79E972E48651413E008AF9CB9954418883C076E4865141E270C7C3CC9954418883C096E4865141B9143841CD9954416FD578B5E4865141215242D8CD9954416CF40AF1E486514109BE3C76CE99544171AC1C26E5865141F0F5B2F5CE99544148508D63E5865141F0F5B275CF99544116F4FDC0E5865141F7CC5606D099544116F4FD20E68651413FAED1BAD099544198DF4FB9E68651417BB8A8BED19954413179E9B2E6865141B8C27F42D29954418D20B442E68651417742386BD29954419FACD93DE68651418115D76ED29954415F47F7C8E6865141CA933414D4995441C3159FCCE6865141AA933D17D4995441F745B6FFE686514126D72D0AD4995441C412834CE78651413B8575CBD399544120A24502E88651411229E6E8D399544138273194E7865141BA70C7A3D49954416183C076E7865141B0992353D59954410FCBA1D1E78651412BAED11AD5995441E66E12CFE88651417D66F0DFD4995441D1C0CA0DE98651417D66F0DFD4995441FA1C5A70E98651417D66F0DFD49954414CD57875E9865141873D9430D59954417B310838E98651410629E688D5995441E1976E3EE8865141395C19DCD5995441E1976EBEE786514110008AF9D59954416382777CE78651410793E433D699544104A1BC91E78651416F365174D6995441EF45B6FFE78651413C33BDACD699544128508DA3E886514185EBDB11D7995441D7976EDEE8865141295C197CD79954417408AC08E9865141761438E1D7995441DF45B65FE98651419B70C7A3D999544108A24522E98651413FE1042EDA99544131FED4E4E8865141B01E0F45DA99544170CEFACCE8865141CF47DE52DA9954411F85EB61EB86514114AE4701E39954415D1C858BEB8651410872891EE4995441CC45B6DFEB865141FCADD1FAE3995441475A6447EC865141BFA3FAF6E3995441B7976EBEEC86514163143801E49954413383C056ED865141C6514258E4995441F678E932EE86514160EBDB71E4995441C345B69FEE86514123E1048EE49954414E08ACE8EE8651412AB8A8DEE499544163B6F309EF86514186476B34E59954411BD57815EF86514120E104AEE599544152F8A1DCEE865141404A6642E69954412A83C076EE865141E0D62DCAE6995441E5A145E2ED865141E6ADD17AE799544142310878ED865141F184750BE8995441C71C5A90ED8651410F0A615DE899544123AC1CE6ED8651419FCC5686E899544160B6F309EF86514161C27F02E8995441AD6E122FEF865141B9514278E89954415DB6F3E9EE86514145143801E999544128462210EE865141BD36294FEA995441C91C5A50ED86514139143841EB995441D4F3FD20EE865141E75B19BCEB995441365A64A7EE8651417DF5B215EC995441E778E912EF8651411666F07FEC995441B71C5AF0EF86514156476BB4EC995441A26E122FF086514142992333ED99544106D57895F0865141ACD62DAAED9954418BC0CA4DF08651418E514278EE995441B81C5AD0EF86514117143801EF9954412283C076EE865141141438E1F0995441BA4F9F06EE865141A1C5F6B3F1995441CCFAD1DBED8651412B499D2FF2995441B76E12EFED865141C432BD0CF3995441C8B7661EEE8651417245D5B0F3995441DF614564EE86514191741798F4995441C045B63FEE865141FE3C9470F599544126F4C40BEE8651417174F60DF699544175D39C93ED8651410E6C34CEF699544173AF5D46ED865141FBE9C139F79954411F85EBB1EC86514148E17A14F899544114AE4741EC865141B81E850BF89954419A9999E9EB8651410AD7A3C0F799544172B408E1EB8651411C87A9B5F7995441F4CE9F9DEA865141E97764FAF7995441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608334 - 5217901
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -15 </desc>
+<a>
+010600000007000000010300000001000000620200006D82FB7E9CA250410A28DA92A15355413A4E5D309CA250419F59B10DA2535541111D3E219BA2504109FBB826A4535541DB3D2F759AA25041203F1F9EA5535541EC2AE80C9AA25041013550C7A6535541C48AA25B99A250418854EAD5A85355411A055A3C99A25041E9812ED0A9535541979D72F298A2504137821CAFAB5355419F7356BF96A250410EF049EFB2535541AF85F0B594A25041FACB1502B7535541B234AC7293A25041E9D75620B9535541C146466991A25041D434DC81BC535541CAE74D6A8FA25041C453381CC1535541DFD818298AA250417494E473CD535541EA0F689288A25041646B49C6CF535541F37B93C786A250415F59AFCFD153554108EA319A83A2504150917FBED4535541187D85DF80A250414441BC00D853554126781E1F7FA250413136FC67DA535541408E9E507AA250410A864E93E15355415D5167A175A25041E97D821DE75355416D65743572A25041C795045AEB535541712B31A970A25041C69391BCEC535541B7FF126B65A250418BF6FE63F6535541BE7218FE63A250417D45D009F9535541D261701F60A250415A1175C3FD535541EC2B13CE5BA2504140C618C6025455411FA9577453A250410904D1FA0B54554144C14A434DA25041E39F00A9125455415705CDE247A25041C0B50F48185455418D465B5F3FA250418E03EFD520545541ABD447E43AA250417140268525545541B9D153C137A250416096D18828545541DFE9469031A250414A5929472E545541032288112AA2504119749FA6355455412246BCFE25A250410ADFD8C3395455413C5C3C3021A25041EEFD345E3E5455415AEC9B521BA25041C9E5418F445455416786C9F518A25041B2957ED14754554182B1D74015A250419668FDE84C545541867794B413A250418DFCD1B34E545541B16AD2100DA2504160276F6C55545541DAC7C80406A25041465DCCBD59545541EFEBFCF101A250413C70E7395C5455410753C166FEA15041255500485F545541107582B6FBA150411A511A0D6254554121EAFAE6F8A150410ABEC6C7645455415068C012F5A15041D911FF2D695455415A20C9CAF2A15041C2C13B706C545541673BB0BCEFA15041B6A6547E6F5455417FEE51B4EBA150419DF3B286735455418C887F57E9A150419270869A7554554196F4AA8CE7A15041779155D27854554198D84215E6A15041770E29E67A545541A3A5D9E6E4A150416F84229C7C545541A47270B8E3A1504164B78BCA7D545541AE5DE29EE2A150415E5B87EE7E545541B95F553CE1A150415570150880545541C827854DDEA150414D3079A382545541D99CFD7DDBA150413DD2012A85545541E00F0311DAA150412EC0673387545541F0389EBED7A1504123BC81F889545541F8C2A408D6A150410F1B7AF78B5455410F1368C6D2A15041FC8C8D729054554115866D59D1A15041EF273C9B925455414F0EF4C2D0A150416B6D106592545541AE47E18AE1A1504114AE47F198545541666666E6C7A15041AE47E1CAAA545541C22E0E6BB7A15041984B8F68A35455418AE3008CA3A15041DCD4A5939A545541B153681794A15041ED8ACF5993545541DFA2F80480A150419DAA6F528B5455419C3A288766A1504134D237498154554128452DDF56A15041C41AD7DD7B545541CC2A479A43A15041952E3BD976545541A4703DAA43A150410AD7A3F0785455416666660647A150418FC2F5388854554114AE470148A15041C3F5280C9154554152B81EC548A1504185EB512898545541AE47E1EA4EA15041D7A3704D97545541333333C35FA1504185EB51C895545541CDCCCC4C66A1504166666686965455413333334380A1504152B81E859A54554185EB51888EA15041E17A140E9D545541CDCCCCCC99A1504148E17A44A0545541CDCCCC4CAAA150419A999929A5545541AE47E1BAB5A15041EC51B85EA85455413D0AD7D3B3A150415C8FC2E5A954554185EB51A8B2A150415C8FC2D5AA545541CDCCCCBCB1A1504133333393AB545541000000A0B0A150417B14AE77AC54554114AE47A1ACA15041CDCCCCACAF5455413D0AD723ABA15041EC51B8DEB0545541C3F528ECA7A150413D0AD773B35455411F85EB21A5A1504114AE47B1B5545541B81E852BA3A1504148E17A44B7545541D7A3705D9FA15041295C8F52BA545541666666F69BA15041D7A3700DBD54554148E17A149AA150410AD7A390BE5455419A99998998A15041CDCCCCCCBF5455419A99997995A15041295C8F42C254554152B81E2594A150413D0AD753C354554114AE471192A15041EC51B8FEC454554114AE47818AA150410AD7A310CB54554148E17AD487A150415C8FC235CD5455410000008085A1504152B81E15CF54554152B81E0582A15041000000E0D1545541D7A370DD80A15041B81E85DBD2545541AE47E18A7CA15041B81E858BD6545541CDCCCCFC7AA15041EC51B8DED75455418FC2F55879A1504148E17A44D954554148E17AE476A15041CDCCCC5CDB5455418FC2F58875A1504152B81E85DC5455416666665674A15041AE47E18ADD545541A4703D3A72A15041713D0A57DF5455413D0AD77371A150410AD7A350E0545541EC51B82E6FA15041CDCCCC2CE3545541000000406DA15041B81E859BE55455419A9999296CA15041A4703DFAE6545541CDCCCCCC6AA1504114AE47B1E85455417B14AEB768A1504114AE4751EB545541D7A370ED64A15041713D0A17F0545541295C8FD263A15041B81E857BF15455419A99994962A15041AE47E16AF3545541295C8FF25EA1504114AE4791F754554152B81E855CA150418FC2F598FA5455417B14AEA759A15041A4703D2AFE5455417B14AEC758A150413D0AD733FF5455410AD7A35056A1504114AE472102555541295C8F2255A1504185EB5188035555413333337353A1504185EB518805555541B81E859B52A1504185EB51880655554152B81E9551A15041B81E85EB07555541B81E850B50A150413D0AD7230A555541F6285C4F4DA1504185EB51B80D555541EC51B82E4CA1504114AE47310F5555417B14AE774BA150410000001010555541D7A3702D48A150413D0AD71314555541C3F5284C44A15041F6285CCF185555411F85EBB142A15041295C8FC21A555541CDCCCC3C41A15041A4703D8A1C555541295C8FF23FA150418FC2F5B81D5555418FC2F5583DA15041B81E851B20555541AE47E18A3AA15041E17A14AE22555541EC51B84E38A15041AE47E1BA245555419A9999F936A150413D0AD7F325555541EC51B87E34A150413333330327555541713D0A3732A15041CDCCCCFC275555410AD7A3902EA15041A4703D3A29555541295C8F1228A150411F85EB7127555541E17A149E1EA15041AE47E13A255555419A9999C916A15041CDCCCC3C2355554152B81ED509A15041000000102055554114AE47B1FEA05041D7A3708D1D555541C3F5281CF8A050418FC2F5081C55554152B81EE5DCA0504185EB51F81555554152B81E85DBA0504185EB516821555541000000B0DEA05041AE47E1BA2255554148E17A64E0A050411F85EB4123555541295C8F42E3A0504148E17AF423555541E17A143EEAA050417B14AEB725555541B81E85CBF1A050413D0AD7C32755554185EB51F8F6A050418FC2F5182955554152B81E75FBA05041B81E854B2A5555411F85EB6106A15041713D0AC72C555541AE47E14A0DA1504152B81E552E555541A4703DAA14A1504100000030305555418FC2F50817A15041E17A146E305555418FC2F5B814A150415C8FC21531555541F6285CCF12A15041295C8FB231555541000000100DA1504185EB51A833555541CDCCCCEC04A15041F6285C2F36555541333333F302A1504152B81EF536555541EC51B8CE00A15041713D0AD73755554148E17A14FEA050410AD7A3A0385555410AD7A330FBA050419A99995939555541A4703D5AF8A050411F85EB013A555541F6285CEFF4A050418FC2F5D83A555541A4703DBAF0A05041295C8FD23B55554148E17A24E9A05041666666763D5555415C8FC2F5E4A05041333333733E5555410AD7A340E1A050411F85EB613F55554148E17A44DCA050418FC2F5E83F555541AE47E10ADEA0504133333373425555411F85EB71E2A0504114AE47C148555541666666A6E1A0504152B81E65495555415C8FC2F5E2A0504148E17A444B55554100000060E3A05041D7A370DD4B555541D7A3705D04A150418FC2F5087B5555410000002008A15041CDCCCC2C805555419A9999190CA1504152B81E2585555541E17A146E10A15041A4703D0A8A555541AE47E18A14A1504185EB51488E5555413D0AD75319A15041666666D692555541295C8F421FA1504185EB51E89755554185EB516827A150411F85EB219E55554114AE479130A15041A4703D0AA45555411F85EB013AA15041AE47E13AA95555418FC2F56841A15041333333F3AA555541B81E851B41A150418FC2F5D8A0555541666666C643A150411F85EB419C555541AE47E18A45A1504148E17A349555554185EB51B84CA150417B14AEC7925555413333331355A15041D7A370CD66555541295C8FF249A1504114AE478163555541666666563FA1504148E17A5460555541E17A145E34A15041666666465D555541C3F528FC33A150410000000058555541713D0A1726A15041C3F528BC545555417B14AE2713A15041D7A3705D5055554185EB5168EBA05041CDCCCC8C475555417B14AEC7ECA05041713D0A9746555541295C8F72F7A05041713D0A8743555541E17A147EF9A0504114AE47F1425555418FC2F588FFA0504152B81E35415555415C8FC2E502A15041EC51B83E40555541AE47E12A06A15041E17A144E3F555541AE47E11A09A15041666666763E555541E17A149E0FA1504185EB51983C555541CDCCCCFC11A15041A4703DEA3B555541C3F5286C14A15041713D0A373B555541CDCCCC1C1CA15041295C8F0239555541666666761CA1504148E17AE4385555413D0AD73328A150415C8FC2F53455554185EB511829A150411F85EBA1345555415C8FC2A53CA15041000000302E555541F6285C7F3DA1504148E17A542D5555411F85EB2141A150419A9999A9295555410AD7A31043A15041666666B62755554152B81E2545A15041D7A3709D25555541CDCCCC4C47A150410AD7A37023555541EC51B87E49A15041A4703D3A2155554185EB51884BA15041E17A14AE1E55554114AE47F14DA1504114AE47B11B555541C3F5281C4FA15041D7A3703D1A555541A4703D6A51A15041000000601755554148E17A0454A15041333333231455554148E17AA454A15041713D0A47135555411F85EBD155A150417B14AEA711555541666666F656A1504148E17A1410555541B81E855B5AA15041713D0A670B5555417B14AED75CA15041A4703DFA075555418FC2F5E85DA1504114AE47810655554185EB51E85EA150411F85EB21055555410AD7A3905FA15041A4703D3A04555541AE47E19A60A15041AE47E1CA025555419A99991961A15041C3F5281C025555419A99995968A15041C3F5282CFA545541AE47E11A69A1504185EB5158F9545541F5F4325E6CA15041538AA7EBF554554153556EE367A150419B8F8A7AFA54554177D7194A61A150417497E55DFF54554183256A6A5FA15041727E710901555541951B9CE95BA15041593588A90455554161C2474259A15041F80163E8075555418913CE1656A1504165B8AC350C555541074D7F6753A150414A8EE40A1055554179C1520A50A1504108FEB9A214555541295C8F624BA1504185EB51081A555541388237EB46A1504168A2BC3E1F555541EE699E7441A15041DEC2E3BC23555541E528428B3FA15041CD365A322555554184A216F838A150416891D06629555541163FBAD333A150413C3C7A7D2C555541CFEFA0B82CA15041FD602A9E2F555541C9E7D14821A150410A8F6E803155554132EF2BF71BA15041B1E9D69832555541FA0986DA14A15041B0B35B4B345555412369B75A09A15041B526A7C3375555418993FD6002A1504108EFE31C3A5555416A94629EFDA0504183B7CDF43B555541353B1830F8A05041DE1E464B3E555541FE04E12DF2A050417CBE81314055554174D60210EEA0504130760ED642555541915A6E04EBA05041639F1D404555554175A97668E9A050412C4BB0CF46555541B564005DE5A05041398210334A555541D04CC75BE3A0504146DB4AD14B55554143EBD9E7E2A050411099AE2B4B55554132723719E5A0504123068F6A49555541D68289B1E8A050415927F64846555541BEC85DA7EAA05041954D965D445555417F98CCD1EAA050414255D23B4455554133FB5D7CEDA05041D953BC3942555541D6FA4755EEA05041294C6D9A41555541DAF838CAF1A0504189D9E49A3F555541B75E343AF7A05041E1B1A19B3D55554179209349FEA0504156583AE93A555541D4EDB0B104A1504137A735543855554180E31F3709A15041F0777BC5365555412B240BA710A15041635107A034555541ED9A312416A15041D7E54AE932555541FC890A6319A1504178BBFB403255554104E7ABFA21A15041779BB9E630555541E8B495312CA15041D8C60A142F5555416732125D34A150410984A1402B5555414ACF17BB38A15041B913CFA728555541B54499503EA15041E9B51BF02455554172F8871244A150414B6714AB20555541A306703648A15041A2180D661C5555414C55777B4CA15041A808A8BD1755554148B3057650A15041CD94B5E7125555413AFA886753A150414CFF2F270F5555417DA1327155A150415FFFDEE20B5555412DB3A7FE56A15041E7B586A709555541A36212AC59A150414EFE384006555541828F22025FA150417A87BE04005555417A051CB860A1504181C5E7CBFE54554169115DD662A15041858BA43FFD545541579CE4A565A15041977F6321FB5455414B4C21E868A15041A8F4DB51F854554142AB19E76AA15041AED1997CF6545541433FEEB16CA15041B2E33373F45455412E87E5F96EA15041C605F5C2F15455411A63B10C73A15041DEA308A1EC545541060C14F175A15041F53FA9E1E8545541E501D5DD7CA15041288811BCE0545541A0C33A8488A15041777EB4CDD25455415D1D5B3093A15041A637AF9DCA5455415D1975F595A15041AD2B6E7FC854554147131C1D9AA15041BA1179A5C5545541C89ACDA4AEA150410C014259B7545541AE0507C2B2A150411F8DBB40B45455419BC3F7BFB6A1504137BFA3E9B05455418F29CA1CB9A150414ACA6382AE5455416BF3FB38BFA15041747337F9A65455416501B0F4BFA15041717A1157A754554167648E2EBFA15041728F9F70A854554187A13670B9A1504147508491AF545541A85D2563B4A1504120A4BCF7B3545541C3BF8217AFA150410D4BAC3EB8545541DC72240FABA15041FB0A10DABA545541119DB1D4A2A15041DE91B16EC05455413E3FABED9AA15041B5362E18C654554154FD0C7E94A15041AAC61CA8CA5455416708CD1692A150419CCB8368CC54554191325ADC89A150417EEF46C3D2545541BCF0BB6C83A150414DD5E056DA545541D85219217EA1504128BDED87E0545541F59428237AA15041116BB72CE5545541118DCD3F75A15041EF160E34EB54554128DF039B70A15041CDF74007F1545541D9A5FA856CA150414FC7E7C1F5545541713D0A976CA15041000000B0F5545541333333536EA15041E17A14DEF3545541F6285C5F70A150417B14AEB7F15455418FC2F55874A15041B81E858BED54554185EB51A875A15041B81E852BEC545541E17A142E77A15041295C8F92EA5455413D0AD76378A15041D7A3704DE9545541F6285C5F79A1504152B81E45E854554148E17A047CA15041EC51B87EE55455418FC2F5387EA15041EC51B82EE3545541713D0AB780A150410AD7A390E05455415C8FC21582A150410AD7A320DF545541C3F5283C83A15041B81E85EBDD5455410000005085A15041D7A370BDDB54554114AE47F186A150417B14AE07DA545541D7A370DD87A15041F6285C0FD9545541F6285C4F8AA15041EC51B87ED65455418FC2F5388CA150415C8FC235D55455419A99992991A15041333333E3D1545541F6285CCF94A15041F6285C6FCF545541CDCCCC4C97A15041295C8FC2CD545541CDCCCC6C9DA1504148E17AA4C954554152B81E159FA15041713D0A87C854554166666656A1A15041295C8F02C754554114AE4701A3A15041333333E3C55455411F85EB61A7A150411F85EBF1C25455415C8FC2A5A8A1504185EB5118C2545541D7A370BDABA150413D0AD703C054554114AE47C1AEA15041CDCCCCFCBD545541E17A14BEB2A15041E17A144EBB545541713D0AC7BEA1504166666636B35455413D0AD793BFA15041C3F528ACB25455419A9999F9C0A15041C3F528BCB1545541A4703DAAC1A1504152B81E45B15455410AD7A350C3A150418FC2F528B0545541CDCCCCDCCAA15041D7A3706DB45455419A9999B9CBA15041A4703D6AB35455419A9999C9CEA15041B81E857BB054554152B81EE5D1A150411F85EB81AD5455410AD7A340DAA1504114AE4781A5545541D7A3700DE7A15041C3F528FC9A545541295C8F7218A25041EC51B81E72545541E9A8BAE554A250414ABD9D8329545541AC81586A57A2504156985FA0265455416371EA8F5AA25041F9D38C04235455417B14AEF764A250415C8FC215175455415C8FC2A567A250413D0AD74314545541C5311AB767A25041F211882D145455419E6EECA767A2504119D5B53C145455414ECE523E68A250413CD01414105455410DAD676268A2504151E6F4870F5455413C618F9D68A250412A8A5DAB0E54554148B5782769A25041764E16C60D545541988AACCF6AA2504136D8480C0B545541027AA99A6BA2504169CF5FBE09545541B50BFA406CA25041DA81464E0A5455415BF4E9A069A25041E0D16BE60E5455417B457B1E69A25041AB0B57CA0F545541A97ECAC968A25041D12EB42413545541BEE159F568A250415F9A3FFA12545541666666466DA25041B81E854B0E545541713D0A676EA250415C8FC2450C545541785745D56BA250414417F5E909545541699958916BA25041C38AACA8095455410D20F4BB6BA25041C439B0840954554114AE47317BA25041D7A370FDEC53554152B81E8587A250415C8FC295DF535541666666669BA25041A4703D7ACC535541EC51B87EA6A2504114AE47B1C3535541823A42D0A7A2504116FB2C2CC25355418DF8A5A4A9A250414F5F49C6BF53554185EB5168ABA25041713D0A77BD535541D7A3702DACA25041295C8FF2BC5355417B14AE17B1A2504152B81E15BA535541A6C0BCE5D2A2504169CF7CA9AF535541364D2B13CEA250418BE14B0FA0535541756D1663CAA25041E3B0EAD895535541D254AC32CAA25041794E4217955355418B26A5F8C1A2504104A1E71C7E535541A3BD6CE0BFA2504145D09C9C78535541CD07008CB8A25041DA6F5054645355419A4E4071B7A25041DC9EE26A61535541AC4606D7B6A25041506F86CD5D5355411517AA39B3A2504168C1531357535541D461076CB2A25041F452F12A555355419D5CBCDCAAA250416C024ECE55535541F662A61AA5A250413E31BC8E58535541E35A841FA2A25041B0E42C305A535541D9EFA491A0A2504101F653ED5A535541A078A5BD9DA25041300274335C535541DBAAE23797A2504110CD1B355F535541A69DB9C594A2504197B7F62C605355413D0AD73390A250417B14AEE761535541FFFF47C78BA250411EAFFA96635355413D0AD7E385A2504114AE47D1675355410AD7A3907EA2504148E17AD46C5355412C3BAF9978A25041418AB0ED6F535541D7A3702D76A25041D7A3702D7153554114AE470172A2504152B81E95735355418B685EE26DA25041F63A924C77535541C370A22F6AA25041419B7F7D7A535541BBCFB5F665A250417DA172457D5355414620649D5FA250412640471781535541C8A06C635CA25041AC6A2EF4825355412989F84859A25041C1D657B9845355411A21743657A25041B6ED0365865355416120426855A25041418580D88753554115C1A40B54A25041F835D42189535541B086F41951A25041D98294E58B5355416DD2428850A250411C50E3648C5355419811A0374DA250416738D0F38E5355415B0CDAC14AA25041933E2782905355419A8B0B2A43A25041E39EF66695535541B1A0558D3EA2504194CBD2C098535541EF1777F73CA250414CBFA7B099535541E73ACD2639A2504152AC47F99B535541D811A22C38A25041749A26809C535541692AF84C36A2504187D2EA3A9E53554190489D6334A250417CFDA06FA0535541BBF215AE32A25041E1A05644A25355413B20E65431A25041D2516F98A35355418517501B30A25041304FC06EA4535541E147D2DD2DA250411AF6E058A6535541684DE26E29A25041A20A2223AB535541311BF03D27A25041E91888D6AD535541FF4569E524A25041086938B8AF53554172D4BC4220A2504164D59A6CB25355410861499A16A25041925E502FB75355414A6F0D5B15A25041F02F44ACB7535541DF21BD4814A2504119492B27B85355417C785A9511A25041C5C42846B9535541A98893300FA250412574FC9BB9535541548CF33B0CA2504128F841EAB95355415E05215607A250413AE6407FBB535541D152C1E102A25041785DA09DBD53554153EC4314FFA1504148B194FABF535541EFA0C0DFFBA150410BD4A049C25355418EB70DC7F8A15041AE5EE84AC3535541BF63196AF6A15041BD79E2E3C35355412195A0C8EFA15041E1547575C5535541662066FBEAA15041F35C7861C65355416FC91E43E2A15041A04DB1B8CA5355413AF8B26CDBA15041E3ABBC2DCE53554132F94DA9D6A150410FA14499D05355419C07037ED3A1504110751F24D2535541CEEBBC79D1A150413FF74C22D3535541F3AA2F29CFA15041B5650ABFD3535541133180FBCBA15041AD0D7C7AD4535541EA07B7B3C6A15041637D411FD553554168AFE1A9C0A15041537E4A4BD6535541C4352B1DBFA15041D6A183C8D653554140632CE6BBA15041EAABAFDFD7535541B8D5453CBAA15041A304DE51D85355418BE0BDD0B7A15041569D34B4D85355410F468D02B6A150414FFEB4D1D8535541789B565CB2A15041F7500983D8535541791561EAACA15041739D677ED753554126A1BA98A7A150417BD05EE7D65355412A15BB0CA0A150411C78F7A4D6535541E14627E999A15041BB9F8F99D6535541C69F0BB78CA1504190F0E0C2D6535541DB00C55587A1504198ADAD26D75355414C7308F685A15041A82BAB49D7535541950FBDF282A15041629009DCD7535541206D90DF7BA15041A8A4F36AD95355416D639E9A79A150417A5A190ADA5355413DB0E71475A15041B97C1A79DB53554147EABB8C70A15041F6EDA634DD53554129A4E74D70A15041F4838053DD535541D615F7766EA15041FD800D00DE535541726B16C46CA15041A8B413ABDE535541954502A169A15041C6B2EE13E053554117C04C0C68A15041DC5EB7CDE0535541EFFB3DD965A15041762AECF0E1535541C013693763A150413E84C85CE353554177FCB2C460A150418AD10EA9E453554196F7C4A05DA150416DC32E4FE65355419C92E6B35AA15041466607F3E7535541A2B7578659A150419907B69AE8535541713D0A7759A1504114AE47B1E8535541D7A370CD56A1504185EB5158ED535541713D0A2756A15041A4703D7AEE535541B81E85CB52A15041EC51B89EF35355411F85EB114DA150418FC2F5F8FC5355418FC2F5484AA15041CDCCCC2C035455411F85EB9145A150417B14AE870D5455419A9999293EA150413D0AD7E31D545541AE47E11A3DA15041CDCCCC4C205455416666667666A15041C3F5287C655455411F85EB51D0A150418FC2F5389254554114DEAD56D0A15041CB24D13A925455410A03416DD3A150410645962A8E545541F841EBB9D6A1504123085F7B89545541E3876F64DAA15041372C936885545541D32B6B88DBA150413DD474C783545541C2CB8071DFA1504158E8815B80545541AEDE9BEDE1A1504160F341F47D545541A062495FE4A150416E6F94827B54554193C6A81EE8A150418BB3162276545541815130EEEAA150419D746CD5725455417AC729A4ECA15041A31C4E347154554165571834F1A15041C604CCF76C5455413951BF5BF5A15041FFB9E08C675455411D243E73FAA1504117A4D1ED61545541FB852A95FFA150413649BF295D545541E286AB1A04A2504149D538115A545541B2028D160CA25041635571DA545455417EA3238514A2504195D2B5804C5455417EED8D6A15A250419D5CBCCA4A545541612AC5191AA25041C40AF7014554554156A7982D1CA25041D28649904254554145FD43311FA25041E9D60C4E3F5455412D4AA23923A25041FFA7895A3B54554105508A7F29A250412066EBEA34545541E88A4E912FA2504142BA94E32E545541D75F404633A250414D0A58A12B545541CA79352036A250415F7FD0D1285455419731CD453EA2504191FC14782054554169C4AFF845A25041C4F89FCF1854554129E2197B50A25041FCD35BEF0D545541171F512A55A250411801DDD708545541F90FAB565AA250413EAF170F03545541C7DE433362A250417935A9B0F9535541C0A01A6C63A250417CAF88A1F8535541BA2D15D964A250418D59DD9DF5535541AFAAE8EC66A25041997251F2F3535541813DCB9F6EA25041C1B8462FED5355417685C2E770A25041D1CAE025EB5355415943B3E574A25041EB9483D4E6535541408E9E507AA250410D6AE61BE0535541219DD3917FA250413D844C88D85355411BF5F13281A2504143ADE735D65355410B64118B82A250414FFB3756D4535541F8D5240687A2504165CCB462D0535541E7AC895889A2504171D09A9DCD535541DCDD7FE98BA2504197B3B1A0C7535541CCCBE5F28DA25041BE2C100CC2535541D386E2CD8EA25041BEAF3CF8BF535541BBA0D7A791A25041E80AC04EBA535541AA2B5F7794A25041FF5CF6A9B55355419DC60DA096A250411C6C9C7DB0535541E394713298A25041EFD8DBAFAB5355419BAD994B98A2504147DE208BAA535541C7A7B89A98A25041A4D27CCBA853554150E468E899A25041C250A49EA45355412E9BD0169BA25041749C551DA25355418D58B4749BA25041B750C7F7A15355418FC2F5987DA250418FC2F548AD53554114AE47016DA25041B81E85DBB05355418FC2F5A84CA250417B14AE87CB535541B81E850B2FA25041B81E853BDA535541B81E858B24A25041E17A142EC453554114AE47412FA250415C8FC225BB535541295C8FB23CA25041333333A3B45355413333333347A2504100000020AE535541C3F5282C53A250419A9999B9A5535541E17A148E63A250417B14AED79F5355410AD7A3E076A25041666666F6995355417B14AEC789A2504185EB51B8905355411F85EB119DA25041E17A140E88535541713D0AF7A4A25041B81E85BB85535541E17A14FEA9A25041CDCCCC8C84535541713D0AF7C0A250419A9999397F53554114AE47E1C6A25041AE47E10A93535541713D0AF7B2A25041666666569A535541C3F528DCA3A2504185EB51C89E5355416D82FB7E9CA250410A28DA92A1535541010300000001000000040000001AAC74A8B2A25041089D234F5353554192C13EF3B2A25041425CD8E253535541D4DDEF03B3A25041532D98DE535355411AAC74A8B2A25041089D234F53535541010300000001000000040000001D91EF1258A2504105DCD4131A5355413C2510D05AA25041E758D8AD17535541426B4F1C58A250413D3182081A5355411D91EF1258A2504105DCD4131A53554101030000000100000031000000B6C3DB68B9A25041CD678CAA3E53554114AE4771BBA25041000000A03953554114AE4751B6A2504114AE472139535541295C8F42ACA25041B81E857B35535541D7A370BDA6A250417B14AEE7335355417B14AE179CA250415C8FC2D531535541F6285CCF9AA25041E17A14AE355355413D0AD76395A25041C3F5289C3353554185EB51A890A25041295C8F6235535541544807108BA2504153AE70CE345355418FC2F5C887A250413D0AD7C32F53554114AE47318EA25041E17A141E3353554148E17AA491A250410AD7A3E02E535541E17A14DE88A25041F6285CEF2A53554114AE473180A250410AD7A3502C535541D7A3700D7CA25041666666F6285355418FC2F53877A25041AE47E11A26535541EC51B86E76A25041713D0AA7225355419A9999E969A25041666666D61C5355413333330363A25041295C8F6220535541B81E85DB5FA25041E17A14FE1F535541CDCCCC3C61A25041295C8F421B5355415C8FC2C565A2504133333383175355411F85EBA169A250416666666617535541713D0A5766A25041666666160B535541666666665DA2504133333383155355416C4814A75AA25041A9E00BDE17535541FE12ADEF56A25041AD0F6FCF1C535541C15FA13454A25041356D94C420535541AE9FBE0353A25041923CD9D822535541657E642852A250410B95207226535541605F886152A250414C15127729535541BFD8D8E454A25041627F1B552E53554163371C1758A25041DAEDCE4C305355419DA4F58D60A250419E6976913153554107612AD867A250419D026CD331535541777687F173A25041F0401166325355414D563D1A7AA250419B95485233535541CB7CAE6188A250417D46DAAD34535541CAE7F06C90A250418AEC1ECB35535541D117692296A25041424424AB36535541D25BD7379AA2504134B07E8037535541432D99029EA25041AA8E85A038535541D6D5F2B79EA25041881587E0385355413C85FD77A0A250416C4B344B395355412E35C662A5A25041E4C491A03A5355418851A74DAEA25041F21CF6153D5355410A741C83B3A25041A9D9A4C03D535541B6C3DB68B9A25041CD678CAA3E53554101030000000100000005000000C574E116B9A250411B8AD6753F535541B3E09318B9A25041499D04763F535541133FEB6DB9A25041331D55AB3E535541B6C3DB68B9A25041CD678CAA3E535541C574E116B9A250411B8AD6753F5355410103000000010000000400000091376FF667A25041270C33EE1354554186A4DC3268A25041B06A5AC7135455417D2DE04F68A25041545CEE981354554191376FF667A25041270C33EE1354554101030000000100000097000000D0E5578659A150417CC3B59AE8535541C952CEBB5AA150410B24CBEEE6535541884C98535DA1504188FC6D7EE553554128E908E75EA150410B636A96E45355411A4DD32163A1504149B18C6EE253554134CA048268A15041B74818B2DF535541B348AC7C6EA15041BDFA7C07DD5355419AE4B01471A150414C608811DC5355411AA702D273A1504164FC62EEDA535541B256A10179A1504186FD6057D95355415F90FA027AA1504110ADB80BD95355413D5489357BA15041E042E2A9D8535541F0AE4A327DA1504104168641D8535541A54BBD937FA1504113F175D6D75355419375F4E881A15041FA733C5DD753554103F9461786A150417DAEFA9FD6535541C453D5FF87A150411E7E4A4BD65355415FD61D5989A1504192DDF741D6535541B4BFBDB98AA1504165ED2724D6535541AC90B2338DA150419E39350CD653554161F3585693A15041FA085DCFD553554174577E3796A1504114F27BDED5535541E1389B5AA1A1504144C91ED0D55355412608F08DA5A15041965C05FDD5535541F63157D7A8A1504112B0AD2AD6535541AAC3822AAAA15041A5C6DB5ED65355412667917DACA15041CA2A38BDD65355417781732CAEA150412AEEAEF9D65355419288DBDBB3A150419480DCDBD7535541051C7E99B6A15041C33CD206D85355410CFFEF14BAA150418DBEDBA0D7535541F0073230C1A15041688B5470D5535541CC571139C4A1504159E4D1A1D453554118391167C5A1504139B4AB75D45355417DE62E36CDA1504193437853D35355417A93F8C8CDA150412AA88B2FD3535541AA364BD9CFA15041FA3DB5CDD253554193D59F9ED3A15041D1C7BE25D15355418E45AC08DBA1504124A35E53CD53554119963B05EBA1504189CA4A7FC55355411AD39F8DEFA150412A381D9DC45355415D6DA2BAF6A150416104E428C3535541BE13734CFAA150410741E81FC25355415D478586FEA150416E658F63BF5355414F09E5CC02A25041D13FA072BC535541C8314AFC06A2504145C2EFADBA5355419934A16709A25041CA07B3E2B953554120DE46590AA250412574FC9BB95355414CFC534A0FA25041024424B0B85355410423CACE12A25041F4499507B85355413C6C60B416A25041CA9AC1FCB553554109D341F719A25041A3F26775B453554139E385ED1FA25041791CA959B15355419503E87425A25041C7ED3A99AE53554179556D0B2AA2504162305E26A95355416F3C8A882DA250415BCABD8DA55355413B20E65431A25041B2998793A25355412467FAFD31A25041054DAE16A25355416041B76433A25041E4133268A05355414F69D26D35A25041C270075E9E535541567CC76F37A25041BF3E04639C535541D9FE5B593AA25041FC40686B9A535541FCCE88013DA250419C3812E798535541414B51FB3FA2504182DE800A9753554182C8209442A2504199BC3F2595535541C318C9FC45A25041589386C4925355413FF9A0AC47A250417FAE0D8791535541279F01F648A250411D2D5CC890535541576DAB614DA25041126361EF8D5355416E4BEA5050A25041B6849B628B5355412B1BB35F51A250413E9A03788A535541DFF0ABE553A250415B9D75278853554149A1891958A250410367829384535541E743C4C159A25041E1504D9A83535541A4036F8E5DA250419F29EC5E81535541C7AF08D860A25041824A89707F535541A640689367A2504180223B777B5355417D9BB8496CA25041705F478B775355416B451D966DA25041994FAD7E765355411C3D210071A250416EAB514273535541FB43CEEC74A2504155B4C33971535541074AA3B779A250412D609DA16E53554114ADBD6D7DA25041EC8561816C53554145B24F8981A25041F34C5A176A535541F757D3AB84A25041322F72DB67535541F3C6CB188AA250413BEC7490635355417B14AE478CA250416666667662535541EE6B30818EA25041079DCAAD61535541D6D1089890A250414F4312DD605355414E520D2E91A250414D7575BC6053554108B2FB0699A250415E19AB935D535541943F290F9CA250410A93965A5C53554118C45155A1A250418A856DE859535541FEFDD62FA4A25041A3DD1361585355416C80ED1DA7A250418CA497B25653554193F1DC4EA9A2504192A38E86555355418021543BADA25041BFB8B38E545355414AEE0D95B2A2504190AC93485353554185EB51C8B1A2504148E17A9451535541C574E116B9A250411B8AD6753F535541A24B7298B3A250412AB8ABE03E535541B9220A83B0A2504199AAA8603E535541485148B8ACA2504111024FAB3D535541F7FF35B8A9A2504159AA49CB3C5355410E935F8DA2A250411DD9E6953A535541C4E9E8179DA250413C9C882039535541DA9EC9F797A25041CC87D4953753554148D04A908DA250410CC7984A36535541E659490784A250411703770A35535541308F0C1978A2504161762ADE335355411E8B4CBD6FA25041C901FDE03253554197F615336EA2504158CC86D632535541BB75A50268A250417CBBC4B432535541613382E061A2504167721A5C32535541257D962F5CA250413779C2F43153554185EB51A857A25041713D0A073153554188F5659854A250417BAABB072F53554124A09B1252A25041E47EAA9E2B53554196A8051E51A250416A7D976F275355410E9E0DAC51A250415217C02625535541BAAD002E52A250416145974F2353554188A8974153A25041AA4824C2205355417B86CDE353A25041494C0CAC1F535541B1A45E5155A250410B911B5B1D535541018CE36256A25041A131AE1D1C535541F8E1201058A250417E384A161A5355415C8FC2A54EA2504185EB5128225355419A9999194CA25041E17A140E2553554185EB51D831A25041B81E850B2D5355417B14AEF730A2504185EB51781E535541333333A332A25041295C8FA214535541A4703D5A30A25041A4703DCA12535541CDCCCCBC2FA25041295C8FB20D535541E17A140E0DA250411F85EB8110535541333333E3F2A1504152B81E5510535541295C8F12EBA15041333333D3115355415C8FC2B5E0A15041AE47E1FA0F535541B81E85EBDDA150413D0AD7631053554182F3B5ADC8A15041802E569945535541F5004C9FC5A150411FD5D5524F535541670399C9BFA15041C32422F05C535541CDFA9C2CB7A1504187BBBE8D6F535541A53B3EBAADA1504130A98E477E5355412518163AABA15041C408BE00835355416350BB2A99A1504197C035F49D535541776646FF8BA15041FC0F38F1AC5355417AC5130183A15041D90AB98AB753554169A3808376A15041DA4EC4D9C5535541250874A266A15041087E2D88D8535541CDCCCC9C5AA1504100000000E7535541D0E5578659A150417CC3B59AE8535541
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000D961F3BB23A15041BEDA451BDF545541C5A362BC2FA15041AB8B4C76DF545541A3D1413B41A15041127F52F2DF545541182F44934CA1504177147043E05455416ACFA4215AA15041F9BAFFA8E054554127FCE4675AA15041586671ABE0545541683B9D9E5FA15041AC4D3629E15455412C48CF7F62A15041515FAD6EE15455411ACA71A369A15041C0AAE41AE254554170FF44156FA15041EE18DA27E35455410681062E6FA150416C9FAC2DE3545541E8F2917571A15041351E2952E05455411011DE6D6FA15041BF9EEC07E05455414C79620A6EA15041000F05D6DF54554191BA232A6AA150410723B94ADF5455412FE0ED0B5CA150415265574FDD54554125F241905AA1504183850A1ADD545541BEADDB924CA1504192A832FADC545541F5CD19534BA1504121799BF7DC5455419CD06B9449A15041DFA6F3EFDC54554157F4062A48A15041FD4D52E5DC545541303F74FE3EA1504192EBE7B9DC545541E44F68D231A15041FA2F47ADDC545541D3F688552FA150417EA0E4AADC545541967BFD722CA15041349820A8DC545541A1A884422BA150414219A1A7DC545541D54E8E072BA1504158F916AADC5455414518C82C23A15041856DFFFDDC5455415FF4D2F822A150413E6284F9DC545541D961F3BB23A15041BEDA451BDF545541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608334 - 5285096
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+010600000007000000010300000001000000620200006D82FB7E9CA250410A28DA92A15355413A4E5D309CA250419F59B10DA2535541111D3E219BA2504109FBB826A4535541DB3D2F759AA25041203F1F9EA5535541EC2AE80C9AA25041013550C7A6535541C48AA25B99A250418854EAD5A85355411A055A3C99A25041E9812ED0A9535541979D72F298A2504137821CAFAB5355419F7356BF96A250410EF049EFB2535541AF85F0B594A25041FACB1502B7535541B234AC7293A25041E9D75620B9535541C146466991A25041D434DC81BC535541CAE74D6A8FA25041C453381CC1535541DFD818298AA250417494E473CD535541EA0F689288A25041646B49C6CF535541F37B93C786A250415F59AFCFD153554108EA319A83A2504150917FBED4535541187D85DF80A250414441BC00D853554126781E1F7FA250413136FC67DA535541408E9E507AA250410A864E93E15355415D5167A175A25041E97D821DE75355416D65743572A25041C795045AEB535541712B31A970A25041C69391BCEC535541B7FF126B65A250418BF6FE63F6535541BE7218FE63A250417D45D009F9535541D261701F60A250415A1175C3FD535541EC2B13CE5BA2504140C618C6025455411FA9577453A250410904D1FA0B54554144C14A434DA25041E39F00A9125455415705CDE247A25041C0B50F48185455418D465B5F3FA250418E03EFD520545541ABD447E43AA250417140268525545541B9D153C137A250416096D18828545541DFE9469031A250414A5929472E545541032288112AA2504119749FA6355455412246BCFE25A250410ADFD8C3395455413C5C3C3021A25041EEFD345E3E5455415AEC9B521BA25041C9E5418F445455416786C9F518A25041B2957ED14754554182B1D74015A250419668FDE84C545541867794B413A250418DFCD1B34E545541B16AD2100DA2504160276F6C55545541DAC7C80406A25041465DCCBD59545541EFEBFCF101A250413C70E7395C5455410753C166FEA15041255500485F545541107582B6FBA150411A511A0D6254554121EAFAE6F8A150410ABEC6C7645455415068C012F5A15041D911FF2D695455415A20C9CAF2A15041C2C13B706C545541673BB0BCEFA15041B6A6547E6F5455417FEE51B4EBA150419DF3B286735455418C887F57E9A150419270869A7554554196F4AA8CE7A15041779155D27854554198D84215E6A15041770E29E67A545541A3A5D9E6E4A150416F84229C7C545541A47270B8E3A1504164B78BCA7D545541AE5DE29EE2A150415E5B87EE7E545541B95F553CE1A150415570150880545541C827854DDEA150414D3079A382545541D99CFD7DDBA150413DD2012A85545541E00F0311DAA150412EC0673387545541F0389EBED7A1504123BC81F889545541F8C2A408D6A150410F1B7AF78B5455410F1368C6D2A15041FC8C8D729054554115866D59D1A15041EF273C9B925455414F0EF4C2D0A150416B6D106592545541AE47E18AE1A1504114AE47F198545541666666E6C7A15041AE47E1CAAA545541C22E0E6BB7A15041984B8F68A35455418AE3008CA3A15041DCD4A5939A545541B153681794A15041ED8ACF5993545541DFA2F80480A150419DAA6F528B5455419C3A288766A1504134D237498154554128452DDF56A15041C41AD7DD7B545541CC2A479A43A15041952E3BD976545541A4703DAA43A150410AD7A3F0785455416666660647A150418FC2F5388854554114AE470148A15041C3F5280C9154554152B81EC548A1504185EB512898545541AE47E1EA4EA15041D7A3704D97545541333333C35FA1504185EB51C895545541CDCCCC4C66A1504166666686965455413333334380A1504152B81E859A54554185EB51888EA15041E17A140E9D545541CDCCCCCC99A1504148E17A44A0545541CDCCCC4CAAA150419A999929A5545541AE47E1BAB5A15041EC51B85EA85455413D0AD7D3B3A150415C8FC2E5A954554185EB51A8B2A150415C8FC2D5AA545541CDCCCCBCB1A1504133333393AB545541000000A0B0A150417B14AE77AC54554114AE47A1ACA15041CDCCCCACAF5455413D0AD723ABA15041EC51B8DEB0545541C3F528ECA7A150413D0AD773B35455411F85EB21A5A1504114AE47B1B5545541B81E852BA3A1504148E17A44B7545541D7A3705D9FA15041295C8F52BA545541666666F69BA15041D7A3700DBD54554148E17A149AA150410AD7A390BE5455419A99998998A15041CDCCCCCCBF5455419A99997995A15041295C8F42C254554152B81E2594A150413D0AD753C354554114AE471192A15041EC51B8FEC454554114AE47818AA150410AD7A310CB54554148E17AD487A150415C8FC235CD5455410000008085A1504152B81E15CF54554152B81E0582A15041000000E0D1545541D7A370DD80A15041B81E85DBD2545541AE47E18A7CA15041B81E858BD6545541CDCCCCFC7AA15041EC51B8DED75455418FC2F55879A1504148E17A44D954554148E17AE476A15041CDCCCC5CDB5455418FC2F58875A1504152B81E85DC5455416666665674A15041AE47E18ADD545541A4703D3A72A15041713D0A57DF5455413D0AD77371A150410AD7A350E0545541EC51B82E6FA15041CDCCCC2CE3545541000000406DA15041B81E859BE55455419A9999296CA15041A4703DFAE6545541CDCCCCCC6AA1504114AE47B1E85455417B14AEB768A1504114AE4751EB545541D7A370ED64A15041713D0A17F0545541295C8FD263A15041B81E857BF15455419A99994962A15041AE47E16AF3545541295C8FF25EA1504114AE4791F754554152B81E855CA150418FC2F598FA5455417B14AEA759A15041A4703D2AFE5455417B14AEC758A150413D0AD733FF5455410AD7A35056A1504114AE472102555541295C8F2255A1504185EB5188035555413333337353A1504185EB518805555541B81E859B52A1504185EB51880655554152B81E9551A15041B81E85EB07555541B81E850B50A150413D0AD7230A555541F6285C4F4DA1504185EB51B80D555541EC51B82E4CA1504114AE47310F5555417B14AE774BA150410000001010555541D7A3702D48A150413D0AD71314555541C3F5284C44A15041F6285CCF185555411F85EBB142A15041295C8FC21A555541CDCCCC3C41A15041A4703D8A1C555541295C8FF23FA150418FC2F5B81D5555418FC2F5583DA15041B81E851B20555541AE47E18A3AA15041E17A14AE22555541EC51B84E38A15041AE47E1BA245555419A9999F936A150413D0AD7F325555541EC51B87E34A150413333330327555541713D0A3732A15041CDCCCCFC275555410AD7A3902EA15041A4703D3A29555541295C8F1228A150411F85EB7127555541E17A149E1EA15041AE47E13A255555419A9999C916A15041CDCCCC3C2355554152B81ED509A15041000000102055554114AE47B1FEA05041D7A3708D1D555541C3F5281CF8A050418FC2F5081C55554152B81EE5DCA0504185EB51F81555554152B81E85DBA0504185EB516821555541000000B0DEA05041AE47E1BA2255554148E17A64E0A050411F85EB4123555541295C8F42E3A0504148E17AF423555541E17A143EEAA050417B14AEB725555541B81E85CBF1A050413D0AD7C32755554185EB51F8F6A050418FC2F5182955554152B81E75FBA05041B81E854B2A5555411F85EB6106A15041713D0AC72C555541AE47E14A0DA1504152B81E552E555541A4703DAA14A1504100000030305555418FC2F50817A15041E17A146E305555418FC2F5B814A150415C8FC21531555541F6285CCF12A15041295C8FB231555541000000100DA1504185EB51A833555541CDCCCCEC04A15041F6285C2F36555541333333F302A1504152B81EF536555541EC51B8CE00A15041713D0AD73755554148E17A14FEA050410AD7A3A0385555410AD7A330FBA050419A99995939555541A4703D5AF8A050411F85EB013A555541F6285CEFF4A050418FC2F5D83A555541A4703DBAF0A05041295C8FD23B55554148E17A24E9A05041666666763D5555415C8FC2F5E4A05041333333733E5555410AD7A340E1A050411F85EB613F55554148E17A44DCA050418FC2F5E83F555541AE47E10ADEA0504133333373425555411F85EB71E2A0504114AE47C148555541666666A6E1A0504152B81E65495555415C8FC2F5E2A0504148E17A444B55554100000060E3A05041D7A370DD4B555541D7A3705D04A150418FC2F5087B5555410000002008A15041CDCCCC2C805555419A9999190CA1504152B81E2585555541E17A146E10A15041A4703D0A8A555541AE47E18A14A1504185EB51488E5555413D0AD75319A15041666666D692555541295C8F421FA1504185EB51E89755554185EB516827A150411F85EB219E55554114AE479130A15041A4703D0AA45555411F85EB013AA15041AE47E13AA95555418FC2F56841A15041333333F3AA555541B81E851B41A150418FC2F5D8A0555541666666C643A150411F85EB419C555541AE47E18A45A1504148E17A349555554185EB51B84CA150417B14AEC7925555413333331355A15041D7A370CD66555541295C8FF249A1504114AE478163555541666666563FA1504148E17A5460555541E17A145E34A15041666666465D555541C3F528FC33A150410000000058555541713D0A1726A15041C3F528BC545555417B14AE2713A15041D7A3705D5055554185EB5168EBA05041CDCCCC8C475555417B14AEC7ECA05041713D0A9746555541295C8F72F7A05041713D0A8743555541E17A147EF9A0504114AE47F1425555418FC2F588FFA0504152B81E35415555415C8FC2E502A15041EC51B83E40555541AE47E12A06A15041E17A144E3F555541AE47E11A09A15041666666763E555541E17A149E0FA1504185EB51983C555541CDCCCCFC11A15041A4703DEA3B555541C3F5286C14A15041713D0A373B555541CDCCCC1C1CA15041295C8F0239555541666666761CA1504148E17AE4385555413D0AD73328A150415C8FC2F53455554185EB511829A150411F85EBA1345555415C8FC2A53CA15041000000302E555541F6285C7F3DA1504148E17A542D5555411F85EB2141A150419A9999A9295555410AD7A31043A15041666666B62755554152B81E2545A15041D7A3709D25555541CDCCCC4C47A150410AD7A37023555541EC51B87E49A15041A4703D3A2155554185EB51884BA15041E17A14AE1E55554114AE47F14DA1504114AE47B11B555541C3F5281C4FA15041D7A3703D1A555541A4703D6A51A15041000000601755554148E17A0454A15041333333231455554148E17AA454A15041713D0A47135555411F85EBD155A150417B14AEA711555541666666F656A1504148E17A1410555541B81E855B5AA15041713D0A670B5555417B14AED75CA15041A4703DFA075555418FC2F5E85DA1504114AE47810655554185EB51E85EA150411F85EB21055555410AD7A3905FA15041A4703D3A04555541AE47E19A60A15041AE47E1CA025555419A99991961A15041C3F5281C025555419A99995968A15041C3F5282CFA545541AE47E11A69A1504185EB5158F9545541F5F4325E6CA15041538AA7EBF554554153556EE367A150419B8F8A7AFA54554177D7194A61A150417497E55DFF54554183256A6A5FA15041727E710901555541951B9CE95BA15041593588A90455554161C2474259A15041F80163E8075555418913CE1656A1504165B8AC350C555541074D7F6753A150414A8EE40A1055554179C1520A50A1504108FEB9A214555541295C8F624BA1504185EB51081A555541388237EB46A1504168A2BC3E1F555541EE699E7441A15041DEC2E3BC23555541E528428B3FA15041CD365A322555554184A216F838A150416891D06629555541163FBAD333A150413C3C7A7D2C555541CFEFA0B82CA15041FD602A9E2F555541C9E7D14821A150410A8F6E803155554132EF2BF71BA15041B1E9D69832555541FA0986DA14A15041B0B35B4B345555412369B75A09A15041B526A7C3375555418993FD6002A1504108EFE31C3A5555416A94629EFDA0504183B7CDF43B555541353B1830F8A05041DE1E464B3E555541FE04E12DF2A050417CBE81314055554174D60210EEA0504130760ED642555541915A6E04EBA05041639F1D404555554175A97668E9A050412C4BB0CF46555541B564005DE5A05041398210334A555541D04CC75BE3A0504146DB4AD14B55554143EBD9E7E2A050411099AE2B4B55554132723719E5A0504123068F6A49555541D68289B1E8A050415927F64846555541BEC85DA7EAA05041954D965D445555417F98CCD1EAA050414255D23B4455554133FB5D7CEDA05041D953BC3942555541D6FA4755EEA05041294C6D9A41555541DAF838CAF1A0504189D9E49A3F555541B75E343AF7A05041E1B1A19B3D55554179209349FEA0504156583AE93A555541D4EDB0B104A1504137A735543855554180E31F3709A15041F0777BC5365555412B240BA710A15041635107A034555541ED9A312416A15041D7E54AE932555541FC890A6319A1504178BBFB403255554104E7ABFA21A15041779BB9E630555541E8B495312CA15041D8C60A142F5555416732125D34A150410984A1402B5555414ACF17BB38A15041B913CFA728555541B54499503EA15041E9B51BF02455554172F8871244A150414B6714AB20555541A306703648A15041A2180D661C5555414C55777B4CA15041A808A8BD1755554148B3057650A15041CD94B5E7125555413AFA886753A150414CFF2F270F5555417DA1327155A150415FFFDEE20B5555412DB3A7FE56A15041E7B586A709555541A36212AC59A150414EFE384006555541828F22025FA150417A87BE04005555417A051CB860A1504181C5E7CBFE54554169115DD662A15041858BA43FFD545541579CE4A565A15041977F6321FB5455414B4C21E868A15041A8F4DB51F854554142AB19E76AA15041AED1997CF6545541433FEEB16CA15041B2E33373F45455412E87E5F96EA15041C605F5C2F15455411A63B10C73A15041DEA308A1EC545541060C14F175A15041F53FA9E1E8545541E501D5DD7CA15041288811BCE0545541A0C33A8488A15041777EB4CDD25455415D1D5B3093A15041A637AF9DCA5455415D1975F595A15041AD2B6E7FC854554147131C1D9AA15041BA1179A5C5545541C89ACDA4AEA150410C014259B7545541AE0507C2B2A150411F8DBB40B45455419BC3F7BFB6A1504137BFA3E9B05455418F29CA1CB9A150414ACA6382AE5455416BF3FB38BFA15041747337F9A65455416501B0F4BFA15041717A1157A754554167648E2EBFA15041728F9F70A854554187A13670B9A1504147508491AF545541A85D2563B4A1504120A4BCF7B3545541C3BF8217AFA150410D4BAC3EB8545541DC72240FABA15041FB0A10DABA545541119DB1D4A2A15041DE91B16EC05455413E3FABED9AA15041B5362E18C654554154FD0C7E94A15041AAC61CA8CA5455416708CD1692A150419CCB8368CC54554191325ADC89A150417EEF46C3D2545541BCF0BB6C83A150414DD5E056DA545541D85219217EA1504128BDED87E0545541F59428237AA15041116BB72CE5545541118DCD3F75A15041EF160E34EB54554128DF039B70A15041CDF74007F1545541D9A5FA856CA150414FC7E7C1F5545541713D0A976CA15041000000B0F5545541333333536EA15041E17A14DEF3545541F6285C5F70A150417B14AEB7F15455418FC2F55874A15041B81E858BED54554185EB51A875A15041B81E852BEC545541E17A142E77A15041295C8F92EA5455413D0AD76378A15041D7A3704DE9545541F6285C5F79A1504152B81E45E854554148E17A047CA15041EC51B87EE55455418FC2F5387EA15041EC51B82EE3545541713D0AB780A150410AD7A390E05455415C8FC21582A150410AD7A320DF545541C3F5283C83A15041B81E85EBDD5455410000005085A15041D7A370BDDB54554114AE47F186A150417B14AE07DA545541D7A370DD87A15041F6285C0FD9545541F6285C4F8AA15041EC51B87ED65455418FC2F5388CA150415C8FC235D55455419A99992991A15041333333E3D1545541F6285CCF94A15041F6285C6FCF545541CDCCCC4C97A15041295C8FC2CD545541CDCCCC6C9DA1504148E17AA4C954554152B81E159FA15041713D0A87C854554166666656A1A15041295C8F02C754554114AE4701A3A15041333333E3C55455411F85EB61A7A150411F85EBF1C25455415C8FC2A5A8A1504185EB5118C2545541D7A370BDABA150413D0AD703C054554114AE47C1AEA15041CDCCCCFCBD545541E17A14BEB2A15041E17A144EBB545541713D0AC7BEA1504166666636B35455413D0AD793BFA15041C3F528ACB25455419A9999F9C0A15041C3F528BCB1545541A4703DAAC1A1504152B81E45B15455410AD7A350C3A150418FC2F528B0545541CDCCCCDCCAA15041D7A3706DB45455419A9999B9CBA15041A4703D6AB35455419A9999C9CEA15041B81E857BB054554152B81EE5D1A150411F85EB81AD5455410AD7A340DAA1504114AE4781A5545541D7A3700DE7A15041C3F528FC9A545541295C8F7218A25041EC51B81E72545541E9A8BAE554A250414ABD9D8329545541AC81586A57A2504156985FA0265455416371EA8F5AA25041F9D38C04235455417B14AEF764A250415C8FC215175455415C8FC2A567A250413D0AD74314545541C5311AB767A25041F211882D145455419E6EECA767A2504119D5B53C145455414ECE523E68A250413CD01414105455410DAD676268A2504151E6F4870F5455413C618F9D68A250412A8A5DAB0E54554148B5782769A25041764E16C60D545541988AACCF6AA2504136D8480C0B545541027AA99A6BA2504169CF5FBE09545541B50BFA406CA25041DA81464E0A5455415BF4E9A069A25041E0D16BE60E5455417B457B1E69A25041AB0B57CA0F545541A97ECAC968A25041D12EB42413545541BEE159F568A250415F9A3FFA12545541666666466DA25041B81E854B0E545541713D0A676EA250415C8FC2450C545541785745D56BA250414417F5E909545541699958916BA25041C38AACA8095455410D20F4BB6BA25041C439B0840954554114AE47317BA25041D7A370FDEC53554152B81E8587A250415C8FC295DF535541666666669BA25041A4703D7ACC535541EC51B87EA6A2504114AE47B1C3535541823A42D0A7A2504116FB2C2CC25355418DF8A5A4A9A250414F5F49C6BF53554185EB5168ABA25041713D0A77BD535541D7A3702DACA25041295C8FF2BC5355417B14AE17B1A2504152B81E15BA535541A6C0BCE5D2A2504169CF7CA9AF535541364D2B13CEA250418BE14B0FA0535541756D1663CAA25041E3B0EAD895535541D254AC32CAA25041794E4217955355418B26A5F8C1A2504104A1E71C7E535541A3BD6CE0BFA2504145D09C9C78535541CD07008CB8A25041DA6F5054645355419A4E4071B7A25041DC9EE26A61535541AC4606D7B6A25041506F86CD5D5355411517AA39B3A2504168C1531357535541D461076CB2A25041F452F12A555355419D5CBCDCAAA250416C024ECE55535541F662A61AA5A250413E31BC8E58535541E35A841FA2A25041B0E42C305A535541D9EFA491A0A2504101F653ED5A535541A078A5BD9DA25041300274335C535541DBAAE23797A2504110CD1B355F535541A69DB9C594A2504197B7F62C605355413D0AD73390A250417B14AEE761535541FFFF47C78BA250411EAFFA96635355413D0AD7E385A2504114AE47D1675355410AD7A3907EA2504148E17AD46C5355412C3BAF9978A25041418AB0ED6F535541D7A3702D76A25041D7A3702D7153554114AE470172A2504152B81E95735355418B685EE26DA25041F63A924C77535541C370A22F6AA25041419B7F7D7A535541BBCFB5F665A250417DA172457D5355414620649D5FA250412640471781535541C8A06C635CA25041AC6A2EF4825355412989F84859A25041C1D657B9845355411A21743657A25041B6ED0365865355416120426855A25041418580D88753554115C1A40B54A25041F835D42189535541B086F41951A25041D98294E58B5355416DD2428850A250411C50E3648C5355419811A0374DA250416738D0F38E5355415B0CDAC14AA25041933E2782905355419A8B0B2A43A25041E39EF66695535541B1A0558D3EA2504194CBD2C098535541EF1777F73CA250414CBFA7B099535541E73ACD2639A2504152AC47F99B535541D811A22C38A25041749A26809C535541692AF84C36A2504187D2EA3A9E53554190489D6334A250417CFDA06FA0535541BBF215AE32A25041E1A05644A25355413B20E65431A25041D2516F98A35355418517501B30A25041304FC06EA4535541E147D2DD2DA250411AF6E058A6535541684DE26E29A25041A20A2223AB535541311BF03D27A25041E91888D6AD535541FF4569E524A25041086938B8AF53554172D4BC4220A2504164D59A6CB25355410861499A16A25041925E502FB75355414A6F0D5B15A25041F02F44ACB7535541DF21BD4814A2504119492B27B85355417C785A9511A25041C5C42846B9535541A98893300FA250412574FC9BB9535541548CF33B0CA2504128F841EAB95355415E05215607A250413AE6407FBB535541D152C1E102A25041785DA09DBD53554153EC4314FFA1504148B194FABF535541EFA0C0DFFBA150410BD4A049C25355418EB70DC7F8A15041AE5EE84AC3535541BF63196AF6A15041BD79E2E3C35355412195A0C8EFA15041E1547575C5535541662066FBEAA15041F35C7861C65355416FC91E43E2A15041A04DB1B8CA5355413AF8B26CDBA15041E3ABBC2DCE53554132F94DA9D6A150410FA14499D05355419C07037ED3A1504110751F24D2535541CEEBBC79D1A150413FF74C22D3535541F3AA2F29CFA15041B5650ABFD3535541133180FBCBA15041AD0D7C7AD4535541EA07B7B3C6A15041637D411FD553554168AFE1A9C0A15041537E4A4BD6535541C4352B1DBFA15041D6A183C8D653554140632CE6BBA15041EAABAFDFD7535541B8D5453CBAA15041A304DE51D85355418BE0BDD0B7A15041569D34B4D85355410F468D02B6A150414FFEB4D1D8535541789B565CB2A15041F7500983D8535541791561EAACA15041739D677ED753554126A1BA98A7A150417BD05EE7D65355412A15BB0CA0A150411C78F7A4D6535541E14627E999A15041BB9F8F99D6535541C69F0BB78CA1504190F0E0C2D6535541DB00C55587A1504198ADAD26D75355414C7308F685A15041A82BAB49D7535541950FBDF282A15041629009DCD7535541206D90DF7BA15041A8A4F36AD95355416D639E9A79A150417A5A190ADA5355413DB0E71475A15041B97C1A79DB53554147EABB8C70A15041F6EDA634DD53554129A4E74D70A15041F4838053DD535541D615F7766EA15041FD800D00DE535541726B16C46CA15041A8B413ABDE535541954502A169A15041C6B2EE13E053554117C04C0C68A15041DC5EB7CDE0535541EFFB3DD965A15041762AECF0E1535541C013693763A150413E84C85CE353554177FCB2C460A150418AD10EA9E453554196F7C4A05DA150416DC32E4FE65355419C92E6B35AA15041466607F3E7535541A2B7578659A150419907B69AE8535541713D0A7759A1504114AE47B1E8535541D7A370CD56A1504185EB5158ED535541713D0A2756A15041A4703D7AEE535541B81E85CB52A15041EC51B89EF35355411F85EB114DA150418FC2F5F8FC5355418FC2F5484AA15041CDCCCC2C035455411F85EB9145A150417B14AE870D5455419A9999293EA150413D0AD7E31D545541AE47E11A3DA15041CDCCCC4C205455416666667666A15041C3F5287C655455411F85EB51D0A150418FC2F5389254554114DEAD56D0A15041CB24D13A925455410A03416DD3A150410645962A8E545541F841EBB9D6A1504123085F7B89545541E3876F64DAA15041372C936885545541D32B6B88DBA150413DD474C783545541C2CB8071DFA1504158E8815B80545541AEDE9BEDE1A1504160F341F47D545541A062495FE4A150416E6F94827B54554193C6A81EE8A150418BB3162276545541815130EEEAA150419D746CD5725455417AC729A4ECA15041A31C4E347154554165571834F1A15041C604CCF76C5455413951BF5BF5A15041FFB9E08C675455411D243E73FAA1504117A4D1ED61545541FB852A95FFA150413649BF295D545541E286AB1A04A2504149D538115A545541B2028D160CA25041635571DA545455417EA3238514A2504195D2B5804C5455417EED8D6A15A250419D5CBCCA4A545541612AC5191AA25041C40AF7014554554156A7982D1CA25041D28649904254554145FD43311FA25041E9D60C4E3F5455412D4AA23923A25041FFA7895A3B54554105508A7F29A250412066EBEA34545541E88A4E912FA2504142BA94E32E545541D75F404633A250414D0A58A12B545541CA79352036A250415F7FD0D1285455419731CD453EA2504191FC14782054554169C4AFF845A25041C4F89FCF1854554129E2197B50A25041FCD35BEF0D545541171F512A55A250411801DDD708545541F90FAB565AA250413EAF170F03545541C7DE433362A250417935A9B0F9535541C0A01A6C63A250417CAF88A1F8535541BA2D15D964A250418D59DD9DF5535541AFAAE8EC66A25041997251F2F3535541813DCB9F6EA25041C1B8462FED5355417685C2E770A25041D1CAE025EB5355415943B3E574A25041EB9483D4E6535541408E9E507AA250410D6AE61BE0535541219DD3917FA250413D844C88D85355411BF5F13281A2504143ADE735D65355410B64118B82A250414FFB3756D4535541F8D5240687A2504165CCB462D0535541E7AC895889A2504171D09A9DCD535541DCDD7FE98BA2504197B3B1A0C7535541CCCBE5F28DA25041BE2C100CC2535541D386E2CD8EA25041BEAF3CF8BF535541BBA0D7A791A25041E80AC04EBA535541AA2B5F7794A25041FF5CF6A9B55355419DC60DA096A250411C6C9C7DB0535541E394713298A25041EFD8DBAFAB5355419BAD994B98A2504147DE208BAA535541C7A7B89A98A25041A4D27CCBA853554150E468E899A25041C250A49EA45355412E9BD0169BA25041749C551DA25355418D58B4749BA25041B750C7F7A15355418FC2F5987DA250418FC2F548AD53554114AE47016DA25041B81E85DBB05355418FC2F5A84CA250417B14AE87CB535541B81E850B2FA25041B81E853BDA535541B81E858B24A25041E17A142EC453554114AE47412FA250415C8FC225BB535541295C8FB23CA25041333333A3B45355413333333347A2504100000020AE535541C3F5282C53A250419A9999B9A5535541E17A148E63A250417B14AED79F5355410AD7A3E076A25041666666F6995355417B14AEC789A2504185EB51B8905355411F85EB119DA25041E17A140E88535541713D0AF7A4A25041B81E85BB85535541E17A14FEA9A25041CDCCCC8C84535541713D0AF7C0A250419A9999397F53554114AE47E1C6A25041AE47E10A93535541713D0AF7B2A25041666666569A535541C3F528DCA3A2504185EB51C89E5355416D82FB7E9CA250410A28DA92A1535541010300000001000000040000001AAC74A8B2A25041089D234F5353554192C13EF3B2A25041425CD8E253535541D4DDEF03B3A25041532D98DE535355411AAC74A8B2A25041089D234F53535541010300000001000000040000001D91EF1258A2504105DCD4131A5355413C2510D05AA25041E758D8AD17535541426B4F1C58A250413D3182081A5355411D91EF1258A2504105DCD4131A53554101030000000100000031000000B6C3DB68B9A25041CD678CAA3E53554114AE4771BBA25041000000A03953554114AE4751B6A2504114AE472139535541295C8F42ACA25041B81E857B35535541D7A370BDA6A250417B14AEE7335355417B14AE179CA250415C8FC2D531535541F6285CCF9AA25041E17A14AE355355413D0AD76395A25041C3F5289C3353554185EB51A890A25041295C8F6235535541544807108BA2504153AE70CE345355418FC2F5C887A250413D0AD7C32F53554114AE47318EA25041E17A141E3353554148E17AA491A250410AD7A3E02E535541E17A14DE88A25041F6285CEF2A53554114AE473180A250410AD7A3502C535541D7A3700D7CA25041666666F6285355418FC2F53877A25041AE47E11A26535541EC51B86E76A25041713D0AA7225355419A9999E969A25041666666D61C5355413333330363A25041295C8F6220535541B81E85DB5FA25041E17A14FE1F535541CDCCCC3C61A25041295C8F421B5355415C8FC2C565A2504133333383175355411F85EBA169A250416666666617535541713D0A5766A25041666666160B535541666666665DA2504133333383155355416C4814A75AA25041A9E00BDE17535541FE12ADEF56A25041AD0F6FCF1C535541C15FA13454A25041356D94C420535541AE9FBE0353A25041923CD9D822535541657E642852A250410B95207226535541605F886152A250414C15127729535541BFD8D8E454A25041627F1B552E53554163371C1758A25041DAEDCE4C305355419DA4F58D60A250419E6976913153554107612AD867A250419D026CD331535541777687F173A25041F0401166325355414D563D1A7AA250419B95485233535541CB7CAE6188A250417D46DAAD34535541CAE7F06C90A250418AEC1ECB35535541D117692296A25041424424AB36535541D25BD7379AA2504134B07E8037535541432D99029EA25041AA8E85A038535541D6D5F2B79EA25041881587E0385355413C85FD77A0A250416C4B344B395355412E35C662A5A25041E4C491A03A5355418851A74DAEA25041F21CF6153D5355410A741C83B3A25041A9D9A4C03D535541B6C3DB68B9A25041CD678CAA3E53554101030000000100000005000000C574E116B9A250411B8AD6753F535541B3E09318B9A25041499D04763F535541133FEB6DB9A25041331D55AB3E535541B6C3DB68B9A25041CD678CAA3E535541C574E116B9A250411B8AD6753F5355410103000000010000000400000091376FF667A25041270C33EE1354554186A4DC3268A25041B06A5AC7135455417D2DE04F68A25041545CEE981354554191376FF667A25041270C33EE1354554101030000000100000097000000D0E5578659A150417CC3B59AE8535541C952CEBB5AA150410B24CBEEE6535541884C98535DA1504188FC6D7EE553554128E908E75EA150410B636A96E45355411A4DD32163A1504149B18C6EE253554134CA048268A15041B74818B2DF535541B348AC7C6EA15041BDFA7C07DD5355419AE4B01471A150414C608811DC5355411AA702D273A1504164FC62EEDA535541B256A10179A1504186FD6057D95355415F90FA027AA1504110ADB80BD95355413D5489357BA15041E042E2A9D8535541F0AE4A327DA1504104168641D8535541A54BBD937FA1504113F175D6D75355419375F4E881A15041FA733C5DD753554103F9461786A150417DAEFA9FD6535541C453D5FF87A150411E7E4A4BD65355415FD61D5989A1504192DDF741D6535541B4BFBDB98AA1504165ED2724D6535541AC90B2338DA150419E39350CD653554161F3585693A15041FA085DCFD553554174577E3796A1504114F27BDED5535541E1389B5AA1A1504144C91ED0D55355412608F08DA5A15041965C05FDD5535541F63157D7A8A1504112B0AD2AD6535541AAC3822AAAA15041A5C6DB5ED65355412667917DACA15041CA2A38BDD65355417781732CAEA150412AEEAEF9D65355419288DBDBB3A150419480DCDBD7535541051C7E99B6A15041C33CD206D85355410CFFEF14BAA150418DBEDBA0D7535541F0073230C1A15041688B5470D5535541CC571139C4A1504159E4D1A1D453554118391167C5A1504139B4AB75D45355417DE62E36CDA1504193437853D35355417A93F8C8CDA150412AA88B2FD3535541AA364BD9CFA15041FA3DB5CDD253554193D59F9ED3A15041D1C7BE25D15355418E45AC08DBA1504124A35E53CD53554119963B05EBA1504189CA4A7FC55355411AD39F8DEFA150412A381D9DC45355415D6DA2BAF6A150416104E428C3535541BE13734CFAA150410741E81FC25355415D478586FEA150416E658F63BF5355414F09E5CC02A25041D13FA072BC535541C8314AFC06A2504145C2EFADBA5355419934A16709A25041CA07B3E2B953554120DE46590AA250412574FC9BB95355414CFC534A0FA25041024424B0B85355410423CACE12A25041F4499507B85355413C6C60B416A25041CA9AC1FCB553554109D341F719A25041A3F26775B453554139E385ED1FA25041791CA959B15355419503E87425A25041C7ED3A99AE53554179556D0B2AA2504162305E26A95355416F3C8A882DA250415BCABD8DA55355413B20E65431A25041B2998793A25355412467FAFD31A25041054DAE16A25355416041B76433A25041E4133268A05355414F69D26D35A25041C270075E9E535541567CC76F37A25041BF3E04639C535541D9FE5B593AA25041FC40686B9A535541FCCE88013DA250419C3812E798535541414B51FB3FA2504182DE800A9753554182C8209442A2504199BC3F2595535541C318C9FC45A25041589386C4925355413FF9A0AC47A250417FAE0D8791535541279F01F648A250411D2D5CC890535541576DAB614DA25041126361EF8D5355416E4BEA5050A25041B6849B628B5355412B1BB35F51A250413E9A03788A535541DFF0ABE553A250415B9D75278853554149A1891958A250410367829384535541E743C4C159A25041E1504D9A83535541A4036F8E5DA250419F29EC5E81535541C7AF08D860A25041824A89707F535541A640689367A2504180223B777B5355417D9BB8496CA25041705F478B775355416B451D966DA25041994FAD7E765355411C3D210071A250416EAB514273535541FB43CEEC74A2504155B4C33971535541074AA3B779A250412D609DA16E53554114ADBD6D7DA25041EC8561816C53554145B24F8981A25041F34C5A176A535541F757D3AB84A25041322F72DB67535541F3C6CB188AA250413BEC7490635355417B14AE478CA250416666667662535541EE6B30818EA25041079DCAAD61535541D6D1089890A250414F4312DD605355414E520D2E91A250414D7575BC6053554108B2FB0699A250415E19AB935D535541943F290F9CA250410A93965A5C53554118C45155A1A250418A856DE859535541FEFDD62FA4A25041A3DD1361585355416C80ED1DA7A250418CA497B25653554193F1DC4EA9A2504192A38E86555355418021543BADA25041BFB8B38E545355414AEE0D95B2A2504190AC93485353554185EB51C8B1A2504148E17A9451535541C574E116B9A250411B8AD6753F535541A24B7298B3A250412AB8ABE03E535541B9220A83B0A2504199AAA8603E535541485148B8ACA2504111024FAB3D535541F7FF35B8A9A2504159AA49CB3C5355410E935F8DA2A250411DD9E6953A535541C4E9E8179DA250413C9C882039535541DA9EC9F797A25041CC87D4953753554148D04A908DA250410CC7984A36535541E659490784A250411703770A35535541308F0C1978A2504161762ADE335355411E8B4CBD6FA25041C901FDE03253554197F615336EA2504158CC86D632535541BB75A50268A250417CBBC4B432535541613382E061A2504167721A5C32535541257D962F5CA250413779C2F43153554185EB51A857A25041713D0A073153554188F5659854A250417BAABB072F53554124A09B1252A25041E47EAA9E2B53554196A8051E51A250416A7D976F275355410E9E0DAC51A250415217C02625535541BAAD002E52A250416145974F2353554188A8974153A25041AA4824C2205355417B86CDE353A25041494C0CAC1F535541B1A45E5155A250410B911B5B1D535541018CE36256A25041A131AE1D1C535541F8E1201058A250417E384A161A5355415C8FC2A54EA2504185EB5128225355419A9999194CA25041E17A140E2553554185EB51D831A25041B81E850B2D5355417B14AEF730A2504185EB51781E535541333333A332A25041295C8FA214535541A4703D5A30A25041A4703DCA12535541CDCCCCBC2FA25041295C8FB20D535541E17A140E0DA250411F85EB8110535541333333E3F2A1504152B81E5510535541295C8F12EBA15041333333D3115355415C8FC2B5E0A15041AE47E1FA0F535541B81E85EBDDA150413D0AD7631053554182F3B5ADC8A15041802E569945535541F5004C9FC5A150411FD5D5524F535541670399C9BFA15041C32422F05C535541CDFA9C2CB7A1504187BBBE8D6F535541A53B3EBAADA1504130A98E477E5355412518163AABA15041C408BE00835355416350BB2A99A1504197C035F49D535541776646FF8BA15041FC0F38F1AC5355417AC5130183A15041D90AB98AB753554169A3808376A15041DA4EC4D9C5535541250874A266A15041087E2D88D8535541CDCCCC9C5AA1504100000000E7535541D0E5578659A150417CC3B59AE8535541
+</a>
+
+<b>
+010600000001000000010300000001000000CA000000037DFFCCC6A250419176EDC6925355418914DA12C9A25041352858F3915355418B26A5F8C1A2504104A1E71C7E5355418454031AC3A250418B853AEE79535541007EEA7BBCA25041B38FB35766535541E44BFC0AB9A250414962E58460535541AC4606D7B6A25041506F86CD5D5355411517AA39B3A2504168C1531357535541D461076CB2A25041F452F12A555355419D5CBCDCAAA250416C024ECE55535541F662A61AA5A250413E31BC8E58535541E35A841FA2A25041B0E42C305A535541D9EFA491A0A2504101F653ED5A535541A078A5BD9DA25041300274335C535541DBAAE23797A2504110CD1B355F535541A69DB9C594A2504197B7F62C605355413D0AD73390A250417B14AEE761535541FFFF47C78BA250411EAFFA96635355413D0AD7E385A2504114AE47D1675355410AD7A3907EA2504148E17AD46C5355412C3BAF9978A25041418AB0ED6F535541D7A3702D76A25041D7A3702D7153554114AE470172A2504152B81E95735355418B685EE26DA25041F63A924C77535541C370A22F6AA25041419B7F7D7A535541BBCFB5F665A250417DA172457D5355414620649D5FA250412640471781535541C8A06C635CA25041AC6A2EF4825355412989F84859A25041C1D657B9845355411A21743657A25041B6ED0365865355416120426855A25041418580D88753554115C1A40B54A25041F835D42189535541B086F41951A25041D98294E58B5355416DD2428850A250411C50E3648C5355419811A0374DA250416738D0F38E5355415B0CDAC14AA25041933E2782905355419A8B0B2A43A25041E39EF66695535541B1A0558D3EA2504194CBD2C098535541EF1777F73CA250414CBFA7B099535541E73ACD2639A2504152AC47F99B535541D811A22C38A25041749A26809C535541692AF84C36A2504187D2EA3A9E53554190489D6334A250417CFDA06FA0535541BBF215AE32A25041E1A05644A25355413B20E65431A25041D2516F98A35355418517501B30A25041304FC06EA4535541E147D2DD2DA250411AF6E058A6535541684DE26E29A25041A20A2223AB535541311BF03D27A25041E91888D6AD535541FF4569E524A25041086938B8AF53554172D4BC4220A2504164D59A6CB25355410861499A16A25041925E502FB75355414A6F0D5B15A25041F02F44ACB7535541DF21BD4814A2504119492B27B85355417C785A9511A25041C5C42846B9535541A98893300FA250412574FC9BB9535541548CF33B0CA2504128F841EAB95355415E05215607A250413AE6407FBB535541D152C1E102A25041785DA09DBD53554153EC4314FFA1504148B194FABF535541EFA0C0DFFBA150410BD4A049C25355418EB70DC7F8A15041AE5EE84AC3535541BF63196AF6A15041BD79E2E3C35355412195A0C8EFA15041E1547575C5535541662066FBEAA15041F35C7861C65355416FC91E43E2A15041A04DB1B8CA5355413AF8B26CDBA15041E3ABBC2DCE53554132F94DA9D6A150410FA14499D05355419C07037ED3A1504110751F24D2535541CEEBBC79D1A150413FF74C22D3535541F3AA2F29CFA15041B5650ABFD3535541133180FBCBA15041AD0D7C7AD4535541EA07B7B3C6A15041637D411FD553554168AFE1A9C0A15041537E4A4BD6535541C4352B1DBFA15041D6A183C8D653554140632CE6BBA15041EAABAFDFD7535541B8D5453CBAA15041A304DE51D85355418BE0BDD0B7A15041569D34B4D85355410F468D02B6A150414FFEB4D1D8535541789B565CB2A15041F7500983D8535541791561EAACA15041739D677ED753554126A1BA98A7A150417BD05EE7D65355412A15BB0CA0A150411C78F7A4D6535541E14627E999A15041BB9F8F99D6535541C69F0BB78CA1504190F0E0C2D6535541DB00C55587A1504198ADAD26D75355414C7308F685A15041A82BAB49D7535541950FBDF282A15041629009DCD7535541206D90DF7BA15041A8A4F36AD95355416D639E9A79A150417A5A190ADA5355413DB0E71475A15041B97C1A79DB53554147EABB8C70A15041F6EDA634DD53554129A4E74D70A15041F4838053DD535541D615F7766EA15041FD800D00DE535541726B16C46CA15041A8B413ABDE535541954502A169A15041C6B2EE13E053554117C04C0C68A15041DC5EB7CDE0535541EFFB3DD965A15041762AECF0E1535541C013693763A150413E84C85CE353554177FCB2C460A150418AD10EA9E453554196F7C4A05DA150416DC32E4FE65355419C92E6B35AA15041466607F3E7535541A2B7578659A150419907B69AE8535541713D0A7759A1504114AE47B1E8535541D7A370CD56A1504185EB5158ED535541713D0A2756A15041A4703D7AEE535541B81E85CB52A15041EC51B89EF35355411F85EB114DA150418FC2F5F8FC5355418FC2F5484AA15041CDCCCC2C035455411F85EB9145A150417B14AE870D5455419A9999293EA150413D0AD7E31D545541AE47E11A3DA15041CDCCCC4C205455416666667666A15041C3F5287C655455411F85EB51D0A150418FC2F5389254554114DEAD56D0A15041CB24D13A92545541E6A31463D1A15041FC2D9E8C9254554172D17817D4A150412E8716A38E54554138E15D8DD7A15041CE77F7318A54554188253822DAA15041D0C5D21A8754554157544331DBA15041D2399E9785545541CED71A64DCA15041C2E33C5B845455417099BD15DFA150415BAAC6DF81545541032DA458E0A15041572C68C880545541230042D7E2A15041C3119FB57E54554148E8B71CE5A15041876A1E4E7C5455417B7615E5E8A15041176EF36776545541F01AD259E9A1504166A07B9875545541C1577527EDA1504175BD54257254554110D0ABB9F1A15041A32108886D545541B2380610F3A150414631520D6C5455419A49D5E5F5A15041D08B8B286854554117ADBD05F9A15041173CE8A9645455413A2F65F1FBA150419AC76ED0615455411122ADC7FDA150416D02B8F55F545541DC73261A00A250417806F8CE5D545541D356AD3602A250412E1762105C545541B138892606A2504119BBA3A859545541F14616220DA25041E20FF55A5554554138F52B220EA2504118FEBA5754545541A634BC2015A25041CAB52A0E4D545541208535E616A250419E5DB7984A545541D45935AC1AA25041928CC67445545541CDD3F46F1CA2504198B80E624354554170C529661FA25041AEC29D2A405455413A68C73223A250417E06E5673C545541759AD21A25A2504186441A9E3A545541AB04F8E529A25041DC169FD235545541E854B81A2DA25041DBEFCA743254554193601BEA2FA25041AFC872E62F545541C7ACFCF331A25041B2D8AAEA2D545541391E15E433A25041449CC4FA2B545541413144CA36A250412F56755F295455410A6DB9E23EA250414A2F555C21545541CCA8FB4B46A250418F69EDCF19545541148D58074FA25041E96161D7105455414CBAE06851A2504182719B2F0E54554165184BEC55A25041BC0D21420954554114A019E65AA25041189530BB03545541FB2900AF62A25041711B7F9FFA535541BC48B74A64A25041EA64A254F8535541CAADA5CA65A250410688ED11F6535541901E649467A25041A97ADD88F4535541186FF4276FA2504100EB64F8ED5355410FE080FA71A250415F86C38EEB535541EBC5880A75A25041FC8D0FC3E75355412E00CFE87AA25041C97DC2A5E0535541DDD9322680A250418FF703FFD853554112AEA3E181A25041CD5D02B0D6535541E938835283A25041D4F51B0CD55355412CD0083D87A2504134A8354AD1535541C5DEECBF88A250417364C283CF535541D73CBCE889A25041A3570EC1CD5355416F95FC778CA25041DC5984FDC75355411050BBEF8EA2504181881F3CC2535541E7FE01D48FA25041B3B978FEBF53554155C1747992A25041056AE5B9BA535541639D910295A250411F07B65EB653554135FF15C596A25041DF4957DCB25355410687C34597A25041BC740D21B15355415E6F2BDE98A250416DC34C06AC535541979DF22999A25041FD767247AA535541DCE7677799A2504192566B83A85355417D2D66DA9AA25041914B4AC1A453554187F36B3D9CA2504156774AF9A15355418D58B4749BA25041B750C7F7A15355418FC2F5987DA250418FC2F548AD53554114AE47016DA25041B81E85DBB05355418FC2F5A84CA250417B14AE87CB535541B81E850B2FA25041B81E853BDA535541B81E858B24A25041E17A142EC453554114AE47412FA250415C8FC225BB535541295C8FB23CA25041333333A3B45355413333333347A2504100000020AE535541C3F5282C53A250419A9999B9A5535541E17A148E63A250417B14AED79F5355410AD7A3E076A25041666666F6995355417B14AEC789A2504185EB51B8905355411F85EB119DA25041E17A140E88535541713D0AF7A4A25041B81E85BB85535541E17A14FEA9A25041CDCCCC8C84535541713D0AF7C0A250419A9999397F535541037DFFCCC6A250419176EDC692535541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608334 - 5285100
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+010600000007000000010300000001000000620200006D82FB7E9CA250410A28DA92A15355413A4E5D309CA250419F59B10DA2535541111D3E219BA2504109FBB826A4535541DB3D2F759AA25041203F1F9EA5535541EC2AE80C9AA25041013550C7A6535541C48AA25B99A250418854EAD5A85355411A055A3C99A25041E9812ED0A9535541979D72F298A2504137821CAFAB5355419F7356BF96A250410EF049EFB2535541AF85F0B594A25041FACB1502B7535541B234AC7293A25041E9D75620B9535541C146466991A25041D434DC81BC535541CAE74D6A8FA25041C453381CC1535541DFD818298AA250417494E473CD535541EA0F689288A25041646B49C6CF535541F37B93C786A250415F59AFCFD153554108EA319A83A2504150917FBED4535541187D85DF80A250414441BC00D853554126781E1F7FA250413136FC67DA535541408E9E507AA250410A864E93E15355415D5167A175A25041E97D821DE75355416D65743572A25041C795045AEB535541712B31A970A25041C69391BCEC535541B7FF126B65A250418BF6FE63F6535541BE7218FE63A250417D45D009F9535541D261701F60A250415A1175C3FD535541EC2B13CE5BA2504140C618C6025455411FA9577453A250410904D1FA0B54554144C14A434DA25041E39F00A9125455415705CDE247A25041C0B50F48185455418D465B5F3FA250418E03EFD520545541ABD447E43AA250417140268525545541B9D153C137A250416096D18828545541DFE9469031A250414A5929472E545541032288112AA2504119749FA6355455412246BCFE25A250410ADFD8C3395455413C5C3C3021A25041EEFD345E3E5455415AEC9B521BA25041C9E5418F445455416786C9F518A25041B2957ED14754554182B1D74015A250419668FDE84C545541867794B413A250418DFCD1B34E545541B16AD2100DA2504160276F6C55545541DAC7C80406A25041465DCCBD59545541EFEBFCF101A250413C70E7395C5455410753C166FEA15041255500485F545541107582B6FBA150411A511A0D6254554121EAFAE6F8A150410ABEC6C7645455415068C012F5A15041D911FF2D695455415A20C9CAF2A15041C2C13B706C545541673BB0BCEFA15041B6A6547E6F5455417FEE51B4EBA150419DF3B286735455418C887F57E9A150419270869A7554554196F4AA8CE7A15041779155D27854554198D84215E6A15041770E29E67A545541A3A5D9E6E4A150416F84229C7C545541A47270B8E3A1504164B78BCA7D545541AE5DE29EE2A150415E5B87EE7E545541B95F553CE1A150415570150880545541C827854DDEA150414D3079A382545541D99CFD7DDBA150413DD2012A85545541E00F0311DAA150412EC0673387545541F0389EBED7A1504123BC81F889545541F8C2A408D6A150410F1B7AF78B5455410F1368C6D2A15041FC8C8D729054554115866D59D1A15041EF273C9B925455414F0EF4C2D0A150416B6D106592545541AE47E18AE1A1504114AE47F198545541666666E6C7A15041AE47E1CAAA545541C22E0E6BB7A15041984B8F68A35455418AE3008CA3A15041DCD4A5939A545541B153681794A15041ED8ACF5993545541DFA2F80480A150419DAA6F528B5455419C3A288766A1504134D237498154554128452DDF56A15041C41AD7DD7B545541CC2A479A43A15041952E3BD976545541A4703DAA43A150410AD7A3F0785455416666660647A150418FC2F5388854554114AE470148A15041C3F5280C9154554152B81EC548A1504185EB512898545541AE47E1EA4EA15041D7A3704D97545541333333C35FA1504185EB51C895545541CDCCCC4C66A1504166666686965455413333334380A1504152B81E859A54554185EB51888EA15041E17A140E9D545541CDCCCCCC99A1504148E17A44A0545541CDCCCC4CAAA150419A999929A5545541AE47E1BAB5A15041EC51B85EA85455413D0AD7D3B3A150415C8FC2E5A954554185EB51A8B2A150415C8FC2D5AA545541CDCCCCBCB1A1504133333393AB545541000000A0B0A150417B14AE77AC54554114AE47A1ACA15041CDCCCCACAF5455413D0AD723ABA15041EC51B8DEB0545541C3F528ECA7A150413D0AD773B35455411F85EB21A5A1504114AE47B1B5545541B81E852BA3A1504148E17A44B7545541D7A3705D9FA15041295C8F52BA545541666666F69BA15041D7A3700DBD54554148E17A149AA150410AD7A390BE5455419A99998998A15041CDCCCCCCBF5455419A99997995A15041295C8F42C254554152B81E2594A150413D0AD753C354554114AE471192A15041EC51B8FEC454554114AE47818AA150410AD7A310CB54554148E17AD487A150415C8FC235CD5455410000008085A1504152B81E15CF54554152B81E0582A15041000000E0D1545541D7A370DD80A15041B81E85DBD2545541AE47E18A7CA15041B81E858BD6545541CDCCCCFC7AA15041EC51B8DED75455418FC2F55879A1504148E17A44D954554148E17AE476A15041CDCCCC5CDB5455418FC2F58875A1504152B81E85DC5455416666665674A15041AE47E18ADD545541A4703D3A72A15041713D0A57DF5455413D0AD77371A150410AD7A350E0545541EC51B82E6FA15041CDCCCC2CE3545541000000406DA15041B81E859BE55455419A9999296CA15041A4703DFAE6545541CDCCCCCC6AA1504114AE47B1E85455417B14AEB768A1504114AE4751EB545541D7A370ED64A15041713D0A17F0545541295C8FD263A15041B81E857BF15455419A99994962A15041AE47E16AF3545541295C8FF25EA1504114AE4791F754554152B81E855CA150418FC2F598FA5455417B14AEA759A15041A4703D2AFE5455417B14AEC758A150413D0AD733FF5455410AD7A35056A1504114AE472102555541295C8F2255A1504185EB5188035555413333337353A1504185EB518805555541B81E859B52A1504185EB51880655554152B81E9551A15041B81E85EB07555541B81E850B50A150413D0AD7230A555541F6285C4F4DA1504185EB51B80D555541EC51B82E4CA1504114AE47310F5555417B14AE774BA150410000001010555541D7A3702D48A150413D0AD71314555541C3F5284C44A15041F6285CCF185555411F85EBB142A15041295C8FC21A555541CDCCCC3C41A15041A4703D8A1C555541295C8FF23FA150418FC2F5B81D5555418FC2F5583DA15041B81E851B20555541AE47E18A3AA15041E17A14AE22555541EC51B84E38A15041AE47E1BA245555419A9999F936A150413D0AD7F325555541EC51B87E34A150413333330327555541713D0A3732A15041CDCCCCFC275555410AD7A3902EA15041A4703D3A29555541295C8F1228A150411F85EB7127555541E17A149E1EA15041AE47E13A255555419A9999C916A15041CDCCCC3C2355554152B81ED509A15041000000102055554114AE47B1FEA05041D7A3708D1D555541C3F5281CF8A050418FC2F5081C55554152B81EE5DCA0504185EB51F81555554152B81E85DBA0504185EB516821555541000000B0DEA05041AE47E1BA2255554148E17A64E0A050411F85EB4123555541295C8F42E3A0504148E17AF423555541E17A143EEAA050417B14AEB725555541B81E85CBF1A050413D0AD7C32755554185EB51F8F6A050418FC2F5182955554152B81E75FBA05041B81E854B2A5555411F85EB6106A15041713D0AC72C555541AE47E14A0DA1504152B81E552E555541A4703DAA14A1504100000030305555418FC2F50817A15041E17A146E305555418FC2F5B814A150415C8FC21531555541F6285CCF12A15041295C8FB231555541000000100DA1504185EB51A833555541CDCCCCEC04A15041F6285C2F36555541333333F302A1504152B81EF536555541EC51B8CE00A15041713D0AD73755554148E17A14FEA050410AD7A3A0385555410AD7A330FBA050419A99995939555541A4703D5AF8A050411F85EB013A555541F6285CEFF4A050418FC2F5D83A555541A4703DBAF0A05041295C8FD23B55554148E17A24E9A05041666666763D5555415C8FC2F5E4A05041333333733E5555410AD7A340E1A050411F85EB613F55554148E17A44DCA050418FC2F5E83F555541AE47E10ADEA0504133333373425555411F85EB71E2A0504114AE47C148555541666666A6E1A0504152B81E65495555415C8FC2F5E2A0504148E17A444B55554100000060E3A05041D7A370DD4B555541D7A3705D04A150418FC2F5087B5555410000002008A15041CDCCCC2C805555419A9999190CA1504152B81E2585555541E17A146E10A15041A4703D0A8A555541AE47E18A14A1504185EB51488E5555413D0AD75319A15041666666D692555541295C8F421FA1504185EB51E89755554185EB516827A150411F85EB219E55554114AE479130A15041A4703D0AA45555411F85EB013AA15041AE47E13AA95555418FC2F56841A15041333333F3AA555541B81E851B41A150418FC2F5D8A0555541666666C643A150411F85EB419C555541AE47E18A45A1504148E17A349555554185EB51B84CA150417B14AEC7925555413333331355A15041D7A370CD66555541295C8FF249A1504114AE478163555541666666563FA1504148E17A5460555541E17A145E34A15041666666465D555541C3F528FC33A150410000000058555541713D0A1726A15041C3F528BC545555417B14AE2713A15041D7A3705D5055554185EB5168EBA05041CDCCCC8C475555417B14AEC7ECA05041713D0A9746555541295C8F72F7A05041713D0A8743555541E17A147EF9A0504114AE47F1425555418FC2F588FFA0504152B81E35415555415C8FC2E502A15041EC51B83E40555541AE47E12A06A15041E17A144E3F555541AE47E11A09A15041666666763E555541E17A149E0FA1504185EB51983C555541CDCCCCFC11A15041A4703DEA3B555541C3F5286C14A15041713D0A373B555541CDCCCC1C1CA15041295C8F0239555541666666761CA1504148E17AE4385555413D0AD73328A150415C8FC2F53455554185EB511829A150411F85EBA1345555415C8FC2A53CA15041000000302E555541F6285C7F3DA1504148E17A542D5555411F85EB2141A150419A9999A9295555410AD7A31043A15041666666B62755554152B81E2545A15041D7A3709D25555541CDCCCC4C47A150410AD7A37023555541EC51B87E49A15041A4703D3A2155554185EB51884BA15041E17A14AE1E55554114AE47F14DA1504114AE47B11B555541C3F5281C4FA15041D7A3703D1A555541A4703D6A51A15041000000601755554148E17A0454A15041333333231455554148E17AA454A15041713D0A47135555411F85EBD155A150417B14AEA711555541666666F656A1504148E17A1410555541B81E855B5AA15041713D0A670B5555417B14AED75CA15041A4703DFA075555418FC2F5E85DA1504114AE47810655554185EB51E85EA150411F85EB21055555410AD7A3905FA15041A4703D3A04555541AE47E19A60A15041AE47E1CA025555419A99991961A15041C3F5281C025555419A99995968A15041C3F5282CFA545541AE47E11A69A1504185EB5158F9545541F5F4325E6CA15041538AA7EBF554554153556EE367A150419B8F8A7AFA54554177D7194A61A150417497E55DFF54554183256A6A5FA15041727E710901555541951B9CE95BA15041593588A90455554161C2474259A15041F80163E8075555418913CE1656A1504165B8AC350C555541074D7F6753A150414A8EE40A1055554179C1520A50A1504108FEB9A214555541295C8F624BA1504185EB51081A555541388237EB46A1504168A2BC3E1F555541EE699E7441A15041DEC2E3BC23555541E528428B3FA15041CD365A322555554184A216F838A150416891D06629555541163FBAD333A150413C3C7A7D2C555541CFEFA0B82CA15041FD602A9E2F555541C9E7D14821A150410A8F6E803155554132EF2BF71BA15041B1E9D69832555541FA0986DA14A15041B0B35B4B345555412369B75A09A15041B526A7C3375555418993FD6002A1504108EFE31C3A5555416A94629EFDA0504183B7CDF43B555541353B1830F8A05041DE1E464B3E555541FE04E12DF2A050417CBE81314055554174D60210EEA0504130760ED642555541915A6E04EBA05041639F1D404555554175A97668E9A050412C4BB0CF46555541B564005DE5A05041398210334A555541D04CC75BE3A0504146DB4AD14B55554143EBD9E7E2A050411099AE2B4B55554132723719E5A0504123068F6A49555541D68289B1E8A050415927F64846555541BEC85DA7EAA05041954D965D445555417F98CCD1EAA050414255D23B4455554133FB5D7CEDA05041D953BC3942555541D6FA4755EEA05041294C6D9A41555541DAF838CAF1A0504189D9E49A3F555541B75E343AF7A05041E1B1A19B3D55554179209349FEA0504156583AE93A555541D4EDB0B104A1504137A735543855554180E31F3709A15041F0777BC5365555412B240BA710A15041635107A034555541ED9A312416A15041D7E54AE932555541FC890A6319A1504178BBFB403255554104E7ABFA21A15041779BB9E630555541E8B495312CA15041D8C60A142F5555416732125D34A150410984A1402B5555414ACF17BB38A15041B913CFA728555541B54499503EA15041E9B51BF02455554172F8871244A150414B6714AB20555541A306703648A15041A2180D661C5555414C55777B4CA15041A808A8BD1755554148B3057650A15041CD94B5E7125555413AFA886753A150414CFF2F270F5555417DA1327155A150415FFFDEE20B5555412DB3A7FE56A15041E7B586A709555541A36212AC59A150414EFE384006555541828F22025FA150417A87BE04005555417A051CB860A1504181C5E7CBFE54554169115DD662A15041858BA43FFD545541579CE4A565A15041977F6321FB5455414B4C21E868A15041A8F4DB51F854554142AB19E76AA15041AED1997CF6545541433FEEB16CA15041B2E33373F45455412E87E5F96EA15041C605F5C2F15455411A63B10C73A15041DEA308A1EC545541060C14F175A15041F53FA9E1E8545541E501D5DD7CA15041288811BCE0545541A0C33A8488A15041777EB4CDD25455415D1D5B3093A15041A637AF9DCA5455415D1975F595A15041AD2B6E7FC854554147131C1D9AA15041BA1179A5C5545541C89ACDA4AEA150410C014259B7545541AE0507C2B2A150411F8DBB40B45455419BC3F7BFB6A1504137BFA3E9B05455418F29CA1CB9A150414ACA6382AE5455416BF3FB38BFA15041747337F9A65455416501B0F4BFA15041717A1157A754554167648E2EBFA15041728F9F70A854554187A13670B9A1504147508491AF545541A85D2563B4A1504120A4BCF7B3545541C3BF8217AFA150410D4BAC3EB8545541DC72240FABA15041FB0A10DABA545541119DB1D4A2A15041DE91B16EC05455413E3FABED9AA15041B5362E18C654554154FD0C7E94A15041AAC61CA8CA5455416708CD1692A150419CCB8368CC54554191325ADC89A150417EEF46C3D2545541BCF0BB6C83A150414DD5E056DA545541D85219217EA1504128BDED87E0545541F59428237AA15041116BB72CE5545541118DCD3F75A15041EF160E34EB54554128DF039B70A15041CDF74007F1545541D9A5FA856CA150414FC7E7C1F5545541713D0A976CA15041000000B0F5545541333333536EA15041E17A14DEF3545541F6285C5F70A150417B14AEB7F15455418FC2F55874A15041B81E858BED54554185EB51A875A15041B81E852BEC545541E17A142E77A15041295C8F92EA5455413D0AD76378A15041D7A3704DE9545541F6285C5F79A1504152B81E45E854554148E17A047CA15041EC51B87EE55455418FC2F5387EA15041EC51B82EE3545541713D0AB780A150410AD7A390E05455415C8FC21582A150410AD7A320DF545541C3F5283C83A15041B81E85EBDD5455410000005085A15041D7A370BDDB54554114AE47F186A150417B14AE07DA545541D7A370DD87A15041F6285C0FD9545541F6285C4F8AA15041EC51B87ED65455418FC2F5388CA150415C8FC235D55455419A99992991A15041333333E3D1545541F6285CCF94A15041F6285C6FCF545541CDCCCC4C97A15041295C8FC2CD545541CDCCCC6C9DA1504148E17AA4C954554152B81E159FA15041713D0A87C854554166666656A1A15041295C8F02C754554114AE4701A3A15041333333E3C55455411F85EB61A7A150411F85EBF1C25455415C8FC2A5A8A1504185EB5118C2545541D7A370BDABA150413D0AD703C054554114AE47C1AEA15041CDCCCCFCBD545541E17A14BEB2A15041E17A144EBB545541713D0AC7BEA1504166666636B35455413D0AD793BFA15041C3F528ACB25455419A9999F9C0A15041C3F528BCB1545541A4703DAAC1A1504152B81E45B15455410AD7A350C3A150418FC2F528B0545541CDCCCCDCCAA15041D7A3706DB45455419A9999B9CBA15041A4703D6AB35455419A9999C9CEA15041B81E857BB054554152B81EE5D1A150411F85EB81AD5455410AD7A340DAA1504114AE4781A5545541D7A3700DE7A15041C3F528FC9A545541295C8F7218A25041EC51B81E72545541E9A8BAE554A250414ABD9D8329545541AC81586A57A2504156985FA0265455416371EA8F5AA25041F9D38C04235455417B14AEF764A250415C8FC215175455415C8FC2A567A250413D0AD74314545541C5311AB767A25041F211882D145455419E6EECA767A2504119D5B53C145455414ECE523E68A250413CD01414105455410DAD676268A2504151E6F4870F5455413C618F9D68A250412A8A5DAB0E54554148B5782769A25041764E16C60D545541988AACCF6AA2504136D8480C0B545541027AA99A6BA2504169CF5FBE09545541B50BFA406CA25041DA81464E0A5455415BF4E9A069A25041E0D16BE60E5455417B457B1E69A25041AB0B57CA0F545541A97ECAC968A25041D12EB42413545541BEE159F568A250415F9A3FFA12545541666666466DA25041B81E854B0E545541713D0A676EA250415C8FC2450C545541785745D56BA250414417F5E909545541699958916BA25041C38AACA8095455410D20F4BB6BA25041C439B0840954554114AE47317BA25041D7A370FDEC53554152B81E8587A250415C8FC295DF535541666666669BA25041A4703D7ACC535541EC51B87EA6A2504114AE47B1C3535541823A42D0A7A2504116FB2C2CC25355418DF8A5A4A9A250414F5F49C6BF53554185EB5168ABA25041713D0A77BD535541D7A3702DACA25041295C8FF2BC5355417B14AE17B1A2504152B81E15BA535541A6C0BCE5D2A2504169CF7CA9AF535541364D2B13CEA250418BE14B0FA0535541756D1663CAA25041E3B0EAD895535541D254AC32CAA25041794E4217955355418B26A5F8C1A2504104A1E71C7E535541A3BD6CE0BFA2504145D09C9C78535541CD07008CB8A25041DA6F5054645355419A4E4071B7A25041DC9EE26A61535541AC4606D7B6A25041506F86CD5D5355411517AA39B3A2504168C1531357535541D461076CB2A25041F452F12A555355419D5CBCDCAAA250416C024ECE55535541F662A61AA5A250413E31BC8E58535541E35A841FA2A25041B0E42C305A535541D9EFA491A0A2504101F653ED5A535541A078A5BD9DA25041300274335C535541DBAAE23797A2504110CD1B355F535541A69DB9C594A2504197B7F62C605355413D0AD73390A250417B14AEE761535541FFFF47C78BA250411EAFFA96635355413D0AD7E385A2504114AE47D1675355410AD7A3907EA2504148E17AD46C5355412C3BAF9978A25041418AB0ED6F535541D7A3702D76A25041D7A3702D7153554114AE470172A2504152B81E95735355418B685EE26DA25041F63A924C77535541C370A22F6AA25041419B7F7D7A535541BBCFB5F665A250417DA172457D5355414620649D5FA250412640471781535541C8A06C635CA25041AC6A2EF4825355412989F84859A25041C1D657B9845355411A21743657A25041B6ED0365865355416120426855A25041418580D88753554115C1A40B54A25041F835D42189535541B086F41951A25041D98294E58B5355416DD2428850A250411C50E3648C5355419811A0374DA250416738D0F38E5355415B0CDAC14AA25041933E2782905355419A8B0B2A43A25041E39EF66695535541B1A0558D3EA2504194CBD2C098535541EF1777F73CA250414CBFA7B099535541E73ACD2639A2504152AC47F99B535541D811A22C38A25041749A26809C535541692AF84C36A2504187D2EA3A9E53554190489D6334A250417CFDA06FA0535541BBF215AE32A25041E1A05644A25355413B20E65431A25041D2516F98A35355418517501B30A25041304FC06EA4535541E147D2DD2DA250411AF6E058A6535541684DE26E29A25041A20A2223AB535541311BF03D27A25041E91888D6AD535541FF4569E524A25041086938B8AF53554172D4BC4220A2504164D59A6CB25355410861499A16A25041925E502FB75355414A6F0D5B15A25041F02F44ACB7535541DF21BD4814A2504119492B27B85355417C785A9511A25041C5C42846B9535541A98893300FA250412574FC9BB9535541548CF33B0CA2504128F841EAB95355415E05215607A250413AE6407FBB535541D152C1E102A25041785DA09DBD53554153EC4314FFA1504148B194FABF535541EFA0C0DFFBA150410BD4A049C25355418EB70DC7F8A15041AE5EE84AC3535541BF63196AF6A15041BD79E2E3C35355412195A0C8EFA15041E1547575C5535541662066FBEAA15041F35C7861C65355416FC91E43E2A15041A04DB1B8CA5355413AF8B26CDBA15041E3ABBC2DCE53554132F94DA9D6A150410FA14499D05355419C07037ED3A1504110751F24D2535541CEEBBC79D1A150413FF74C22D3535541F3AA2F29CFA15041B5650ABFD3535541133180FBCBA15041AD0D7C7AD4535541EA07B7B3C6A15041637D411FD553554168AFE1A9C0A15041537E4A4BD6535541C4352B1DBFA15041D6A183C8D653554140632CE6BBA15041EAABAFDFD7535541B8D5453CBAA15041A304DE51D85355418BE0BDD0B7A15041569D34B4D85355410F468D02B6A150414FFEB4D1D8535541789B565CB2A15041F7500983D8535541791561EAACA15041739D677ED753554126A1BA98A7A150417BD05EE7D65355412A15BB0CA0A150411C78F7A4D6535541E14627E999A15041BB9F8F99D6535541C69F0BB78CA1504190F0E0C2D6535541DB00C55587A1504198ADAD26D75355414C7308F685A15041A82BAB49D7535541950FBDF282A15041629009DCD7535541206D90DF7BA15041A8A4F36AD95355416D639E9A79A150417A5A190ADA5355413DB0E71475A15041B97C1A79DB53554147EABB8C70A15041F6EDA634DD53554129A4E74D70A15041F4838053DD535541D615F7766EA15041FD800D00DE535541726B16C46CA15041A8B413ABDE535541954502A169A15041C6B2EE13E053554117C04C0C68A15041DC5EB7CDE0535541EFFB3DD965A15041762AECF0E1535541C013693763A150413E84C85CE353554177FCB2C460A150418AD10EA9E453554196F7C4A05DA150416DC32E4FE65355419C92E6B35AA15041466607F3E7535541A2B7578659A150419907B69AE8535541713D0A7759A1504114AE47B1E8535541D7A370CD56A1504185EB5158ED535541713D0A2756A15041A4703D7AEE535541B81E85CB52A15041EC51B89EF35355411F85EB114DA150418FC2F5F8FC5355418FC2F5484AA15041CDCCCC2C035455411F85EB9145A150417B14AE870D5455419A9999293EA150413D0AD7E31D545541AE47E11A3DA15041CDCCCC4C205455416666667666A15041C3F5287C655455411F85EB51D0A150418FC2F5389254554114DEAD56D0A15041CB24D13A925455410A03416DD3A150410645962A8E545541F841EBB9D6A1504123085F7B89545541E3876F64DAA15041372C936885545541D32B6B88DBA150413DD474C783545541C2CB8071DFA1504158E8815B80545541AEDE9BEDE1A1504160F341F47D545541A062495FE4A150416E6F94827B54554193C6A81EE8A150418BB3162276545541815130EEEAA150419D746CD5725455417AC729A4ECA15041A31C4E347154554165571834F1A15041C604CCF76C5455413951BF5BF5A15041FFB9E08C675455411D243E73FAA1504117A4D1ED61545541FB852A95FFA150413649BF295D545541E286AB1A04A2504149D538115A545541B2028D160CA25041635571DA545455417EA3238514A2504195D2B5804C5455417EED8D6A15A250419D5CBCCA4A545541612AC5191AA25041C40AF7014554554156A7982D1CA25041D28649904254554145FD43311FA25041E9D60C4E3F5455412D4AA23923A25041FFA7895A3B54554105508A7F29A250412066EBEA34545541E88A4E912FA2504142BA94E32E545541D75F404633A250414D0A58A12B545541CA79352036A250415F7FD0D1285455419731CD453EA2504191FC14782054554169C4AFF845A25041C4F89FCF1854554129E2197B50A25041FCD35BEF0D545541171F512A55A250411801DDD708545541F90FAB565AA250413EAF170F03545541C7DE433362A250417935A9B0F9535541C0A01A6C63A250417CAF88A1F8535541BA2D15D964A250418D59DD9DF5535541AFAAE8EC66A25041997251F2F3535541813DCB9F6EA25041C1B8462FED5355417685C2E770A25041D1CAE025EB5355415943B3E574A25041EB9483D4E6535541408E9E507AA250410D6AE61BE0535541219DD3917FA250413D844C88D85355411BF5F13281A2504143ADE735D65355410B64118B82A250414FFB3756D4535541F8D5240687A2504165CCB462D0535541E7AC895889A2504171D09A9DCD535541DCDD7FE98BA2504197B3B1A0C7535541CCCBE5F28DA25041BE2C100CC2535541D386E2CD8EA25041BEAF3CF8BF535541BBA0D7A791A25041E80AC04EBA535541AA2B5F7794A25041FF5CF6A9B55355419DC60DA096A250411C6C9C7DB0535541E394713298A25041EFD8DBAFAB5355419BAD994B98A2504147DE208BAA535541C7A7B89A98A25041A4D27CCBA853554150E468E899A25041C250A49EA45355412E9BD0169BA25041749C551DA25355418D58B4749BA25041B750C7F7A15355418FC2F5987DA250418FC2F548AD53554114AE47016DA25041B81E85DBB05355418FC2F5A84CA250417B14AE87CB535541B81E850B2FA25041B81E853BDA535541B81E858B24A25041E17A142EC453554114AE47412FA250415C8FC225BB535541295C8FB23CA25041333333A3B45355413333333347A2504100000020AE535541C3F5282C53A250419A9999B9A5535541E17A148E63A250417B14AED79F5355410AD7A3E076A25041666666F6995355417B14AEC789A2504185EB51B8905355411F85EB119DA25041E17A140E88535541713D0AF7A4A25041B81E85BB85535541E17A14FEA9A25041CDCCCC8C84535541713D0AF7C0A250419A9999397F53554114AE47E1C6A25041AE47E10A93535541713D0AF7B2A25041666666569A535541C3F528DCA3A2504185EB51C89E5355416D82FB7E9CA250410A28DA92A1535541010300000001000000040000001AAC74A8B2A25041089D234F5353554192C13EF3B2A25041425CD8E253535541D4DDEF03B3A25041532D98DE535355411AAC74A8B2A25041089D234F53535541010300000001000000040000001D91EF1258A2504105DCD4131A5355413C2510D05AA25041E758D8AD17535541426B4F1C58A250413D3182081A5355411D91EF1258A2504105DCD4131A53554101030000000100000031000000B6C3DB68B9A25041CD678CAA3E53554114AE4771BBA25041000000A03953554114AE4751B6A2504114AE472139535541295C8F42ACA25041B81E857B35535541D7A370BDA6A250417B14AEE7335355417B14AE179CA250415C8FC2D531535541F6285CCF9AA25041E17A14AE355355413D0AD76395A25041C3F5289C3353554185EB51A890A25041295C8F6235535541544807108BA2504153AE70CE345355418FC2F5C887A250413D0AD7C32F53554114AE47318EA25041E17A141E3353554148E17AA491A250410AD7A3E02E535541E17A14DE88A25041F6285CEF2A53554114AE473180A250410AD7A3502C535541D7A3700D7CA25041666666F6285355418FC2F53877A25041AE47E11A26535541EC51B86E76A25041713D0AA7225355419A9999E969A25041666666D61C5355413333330363A25041295C8F6220535541B81E85DB5FA25041E17A14FE1F535541CDCCCC3C61A25041295C8F421B5355415C8FC2C565A2504133333383175355411F85EBA169A250416666666617535541713D0A5766A25041666666160B535541666666665DA2504133333383155355416C4814A75AA25041A9E00BDE17535541FE12ADEF56A25041AD0F6FCF1C535541C15FA13454A25041356D94C420535541AE9FBE0353A25041923CD9D822535541657E642852A250410B95207226535541605F886152A250414C15127729535541BFD8D8E454A25041627F1B552E53554163371C1758A25041DAEDCE4C305355419DA4F58D60A250419E6976913153554107612AD867A250419D026CD331535541777687F173A25041F0401166325355414D563D1A7AA250419B95485233535541CB7CAE6188A250417D46DAAD34535541CAE7F06C90A250418AEC1ECB35535541D117692296A25041424424AB36535541D25BD7379AA2504134B07E8037535541432D99029EA25041AA8E85A038535541D6D5F2B79EA25041881587E0385355413C85FD77A0A250416C4B344B395355412E35C662A5A25041E4C491A03A5355418851A74DAEA25041F21CF6153D5355410A741C83B3A25041A9D9A4C03D535541B6C3DB68B9A25041CD678CAA3E53554101030000000100000005000000C574E116B9A250411B8AD6753F535541B3E09318B9A25041499D04763F535541133FEB6DB9A25041331D55AB3E535541B6C3DB68B9A25041CD678CAA3E535541C574E116B9A250411B8AD6753F5355410103000000010000000400000091376FF667A25041270C33EE1354554186A4DC3268A25041B06A5AC7135455417D2DE04F68A25041545CEE981354554191376FF667A25041270C33EE1354554101030000000100000097000000D0E5578659A150417CC3B59AE8535541C952CEBB5AA150410B24CBEEE6535541884C98535DA1504188FC6D7EE553554128E908E75EA150410B636A96E45355411A4DD32163A1504149B18C6EE253554134CA048268A15041B74818B2DF535541B348AC7C6EA15041BDFA7C07DD5355419AE4B01471A150414C608811DC5355411AA702D273A1504164FC62EEDA535541B256A10179A1504186FD6057D95355415F90FA027AA1504110ADB80BD95355413D5489357BA15041E042E2A9D8535541F0AE4A327DA1504104168641D8535541A54BBD937FA1504113F175D6D75355419375F4E881A15041FA733C5DD753554103F9461786A150417DAEFA9FD6535541C453D5FF87A150411E7E4A4BD65355415FD61D5989A1504192DDF741D6535541B4BFBDB98AA1504165ED2724D6535541AC90B2338DA150419E39350CD653554161F3585693A15041FA085DCFD553554174577E3796A1504114F27BDED5535541E1389B5AA1A1504144C91ED0D55355412608F08DA5A15041965C05FDD5535541F63157D7A8A1504112B0AD2AD6535541AAC3822AAAA15041A5C6DB5ED65355412667917DACA15041CA2A38BDD65355417781732CAEA150412AEEAEF9D65355419288DBDBB3A150419480DCDBD7535541051C7E99B6A15041C33CD206D85355410CFFEF14BAA150418DBEDBA0D7535541F0073230C1A15041688B5470D5535541CC571139C4A1504159E4D1A1D453554118391167C5A1504139B4AB75D45355417DE62E36CDA1504193437853D35355417A93F8C8CDA150412AA88B2FD3535541AA364BD9CFA15041FA3DB5CDD253554193D59F9ED3A15041D1C7BE25D15355418E45AC08DBA1504124A35E53CD53554119963B05EBA1504189CA4A7FC55355411AD39F8DEFA150412A381D9DC45355415D6DA2BAF6A150416104E428C3535541BE13734CFAA150410741E81FC25355415D478586FEA150416E658F63BF5355414F09E5CC02A25041D13FA072BC535541C8314AFC06A2504145C2EFADBA5355419934A16709A25041CA07B3E2B953554120DE46590AA250412574FC9BB95355414CFC534A0FA25041024424B0B85355410423CACE12A25041F4499507B85355413C6C60B416A25041CA9AC1FCB553554109D341F719A25041A3F26775B453554139E385ED1FA25041791CA959B15355419503E87425A25041C7ED3A99AE53554179556D0B2AA2504162305E26A95355416F3C8A882DA250415BCABD8DA55355413B20E65431A25041B2998793A25355412467FAFD31A25041054DAE16A25355416041B76433A25041E4133268A05355414F69D26D35A25041C270075E9E535541567CC76F37A25041BF3E04639C535541D9FE5B593AA25041FC40686B9A535541FCCE88013DA250419C3812E798535541414B51FB3FA2504182DE800A9753554182C8209442A2504199BC3F2595535541C318C9FC45A25041589386C4925355413FF9A0AC47A250417FAE0D8791535541279F01F648A250411D2D5CC890535541576DAB614DA25041126361EF8D5355416E4BEA5050A25041B6849B628B5355412B1BB35F51A250413E9A03788A535541DFF0ABE553A250415B9D75278853554149A1891958A250410367829384535541E743C4C159A25041E1504D9A83535541A4036F8E5DA250419F29EC5E81535541C7AF08D860A25041824A89707F535541A640689367A2504180223B777B5355417D9BB8496CA25041705F478B775355416B451D966DA25041994FAD7E765355411C3D210071A250416EAB514273535541FB43CEEC74A2504155B4C33971535541074AA3B779A250412D609DA16E53554114ADBD6D7DA25041EC8561816C53554145B24F8981A25041F34C5A176A535541F757D3AB84A25041322F72DB67535541F3C6CB188AA250413BEC7490635355417B14AE478CA250416666667662535541EE6B30818EA25041079DCAAD61535541D6D1089890A250414F4312DD605355414E520D2E91A250414D7575BC6053554108B2FB0699A250415E19AB935D535541943F290F9CA250410A93965A5C53554118C45155A1A250418A856DE859535541FEFDD62FA4A25041A3DD1361585355416C80ED1DA7A250418CA497B25653554193F1DC4EA9A2504192A38E86555355418021543BADA25041BFB8B38E545355414AEE0D95B2A2504190AC93485353554185EB51C8B1A2504148E17A9451535541C574E116B9A250411B8AD6753F535541A24B7298B3A250412AB8ABE03E535541B9220A83B0A2504199AAA8603E535541485148B8ACA2504111024FAB3D535541F7FF35B8A9A2504159AA49CB3C5355410E935F8DA2A250411DD9E6953A535541C4E9E8179DA250413C9C882039535541DA9EC9F797A25041CC87D4953753554148D04A908DA250410CC7984A36535541E659490784A250411703770A35535541308F0C1978A2504161762ADE335355411E8B4CBD6FA25041C901FDE03253554197F615336EA2504158CC86D632535541BB75A50268A250417CBBC4B432535541613382E061A2504167721A5C32535541257D962F5CA250413779C2F43153554185EB51A857A25041713D0A073153554188F5659854A250417BAABB072F53554124A09B1252A25041E47EAA9E2B53554196A8051E51A250416A7D976F275355410E9E0DAC51A250415217C02625535541BAAD002E52A250416145974F2353554188A8974153A25041AA4824C2205355417B86CDE353A25041494C0CAC1F535541B1A45E5155A250410B911B5B1D535541018CE36256A25041A131AE1D1C535541F8E1201058A250417E384A161A5355415C8FC2A54EA2504185EB5128225355419A9999194CA25041E17A140E2553554185EB51D831A25041B81E850B2D5355417B14AEF730A2504185EB51781E535541333333A332A25041295C8FA214535541A4703D5A30A25041A4703DCA12535541CDCCCCBC2FA25041295C8FB20D535541E17A140E0DA250411F85EB8110535541333333E3F2A1504152B81E5510535541295C8F12EBA15041333333D3115355415C8FC2B5E0A15041AE47E1FA0F535541B81E85EBDDA150413D0AD7631053554182F3B5ADC8A15041802E569945535541F5004C9FC5A150411FD5D5524F535541670399C9BFA15041C32422F05C535541CDFA9C2CB7A1504187BBBE8D6F535541A53B3EBAADA1504130A98E477E5355412518163AABA15041C408BE00835355416350BB2A99A1504197C035F49D535541776646FF8BA15041FC0F38F1AC5355417AC5130183A15041D90AB98AB753554169A3808376A15041DA4EC4D9C5535541250874A266A15041087E2D88D8535541CDCCCC9C5AA1504100000000E7535541D0E5578659A150417CC3B59AE8535541
+</a>
+
+<b>
+0106000000010000000103000000010000009F000000E6A31463D1A15041FE2D9E8C9254554115866D59D1A15041EF273C9B925455414F0EF4C2D0A150416B6D106592545541AE47E18AE1A1504114AE47F198545541E670D2DAE0A15041CDF0D56B99545541B18F273FE7A1504151D807D39A545541295C8F7218A25041EC51B81E72545541E9A8BAE554A250414ABD9D8329545541AC81586A57A2504156985FA0265455416371EA8F5AA25041F9D38C04235455417B14AEF764A250415C8FC215175455415C8FC2A567A250413D0AD74314545541C5311AB767A25041F211882D145455419E6EECA767A2504119D5B53C145455414ECE523E68A250413CD01414105455410DAD676268A2504151E6F4870F5455413C618F9D68A250412A8A5DAB0E54554148B5782769A25041764E16C60D545541988AACCF6AA2504136D8480C0B5455419BEAA6946BA2504175EB6FC7095455410C41083A6CA250411302E45E0A5455415BF4E9A069A25041E0D16BE60E5455417B457B1E69A25041AB0B57CA0F545541A97ECAC968A25041D12EB42413545541BEE159F568A250415F9A3FFA12545541666666466DA25041B81E854B0E545541713D0A676EA250415C8FC2450C545541785745D56BA250414417F5E909545541699958916BA25041C38AACA8095455410D20F4BB6BA25041C439B0840954554114AE47317BA25041D7A370FDEC53554152B81E8587A250415C8FC295DF535541666666669BA25041A4703D7ACC535541EC51B87EA6A2504114AE47B1C3535541823A42D0A7A2504116FB2C2CC25355418DF8A5A4A9A250414F5F49C6BF53554185EB5168ABA25041713D0A77BD535541D7A3702DACA25041295C8FF2BC5355417B14AE17B1A2504152B81E15BA535541A6C0BCE5D2A2504169CF7CA9AF535541E6536E88D5A25041D664FAC6AE53554114C15E48D4A25041321794F6AB5355413220BBF7D2A2504124EED866A8535541517F17A7D1A25041582210BBA45355413EFA51CDCEA25041F785404DA0535541EEF91E99CDA25041391CA89B995355410C1463A7CBA250415B9BC2BD9453554186AC8FAFCAA250415D37426191535541037DFFCCC6A250419176EDC69253554114AE47E1C6A25041AE47E10A93535541713D0AF7B2A25041666666569A535541C3F528DCA3A2504185EB51C89E5355416D82FB7E9CA250410A28DA92A153554184F36B3D9CA2504152774AF9A15355417C2D66DA9AA25041934B4AC1A4535541DBE7677799A2504190566B83A8535541979DF22999A2504100777247AA535541979D72F298A2504137821CAFAB5355410D4DFEE598A2504155232AD8AB5355415A6F2BDE98A2504172C34C06AC5355411086AA0B98A2504126FFD5A7AE53554130FF15C596A25041DE4957DCB25355419F7356BF96A250410EF049EFB2535541AF85F0B594A25041FACB1502B7535541B234AC7293A25041E9D75620B9535541F491ED6C92A25041CADBD5D2BA53554148B8185990A25041FE2E89F5BE535541CAE74D6A8FA25041C453381CC15355410D50BBEF8EA250417C881F3CC2535541DFD818298AA250417494E473CD535541C6DEECBF88A250417464C283CF535541EA0F689288A25041646B49C6CF53554128D0083D87A2504138A8354AD1535541F37B93C786A250415F59AFCFD1535541338FD78C84A25041EC3384DED35355414004897483A250414C1677EBD453554176660A1481A250410FA106C2D7535541DCD9322680A2504191F703FFD85355415E9B0F3A7CA2504147C94AB9DE535541408E9E507AA250410A864E93E15355415D5167A175A25041E97D821DE75355416D65743572A25041C795045AEB5355410FE080FA71A250415D86C38EEB535541712B31A970A25041C69391BCEC5355418E1E649467A25041A57ADD88F4535541CFADA5CA65A250410388ED11F6535541E275DEB964A25041356417ADF7535541BE7218FE63A250417D45D009F9535541D261701F60A250415A1175C3FD535541EC2B13CE5BA2504140C618C60254554162184BEC55A25041B70D2142095455411FA9577453A250410904D1FA0B5455414ABAE06851A2504180719B2F0E545541158D58074FA25041E56161D710545541600B765A4DA25041501301901254554144C14A434DA25041E39F00A9125455415705CDE247A25041C0B50F48185455412562257E41A25041CB0D8CB41E545541096DB9E23EA25041472F555C21545541C89C25993EA25041C61D27A521545541ABD447E43AA250417140268525545541B9D153C137A250416096D18828545541C4ACFCF331A25041B1D8AAEA2D5455418E601BEA2FA25041AAC872E62F545541032288112AA2504119749FA635545541A904F8E529A25041DC169FD2355455412246BCFE25A250410ADFD8C339545541779AD21A25A2504185441A9E3A545541AA45840922A250418506228E3D545541764DCAC520A2504114F190CE3E545541D2D3F46F1CA2504195B80E6243545541D45935AC1AA25041978CC674455455416786C9F518A25041B2957ED14754554182B1D74015A250419668FDE84C545541A434BC2015A25041CCB52A0E4D545541867794B413A250418DFCD1B34E5455413CF52B220EA2504118FEBA5754545541F44616220DA25041E20FF55A55545541B16AD2100DA2504160276F6C55545541DAC7C80406A25041465DCCBD59545541315A6AC903A250415953551A5B545541D056AD3602A250412C1762105C5455418E33534900A25041B129FEA75D545541DACFDEFFFFA15041DFD750E75D5455410D22ADC7FDA150417002B8F55F545541392F65F1FBA150419EC76ED061545541107582B6FBA150411A511A0D6254554114ADBD05F9A15041143CE8A964545541930A5B52F8A15041F95189726554554194C87691F5A150413472699C68545541B4380610F3A150414531520D6C5455415A20C9CAF2A15041C2C13B706C545541C8A89BF8F1A15041553969426D54554112D0ABB9F1A15041A22108886D545541C6577527EDA1504172BD542572545541B3663F68ECA150416A7BC5D2725455417FEE51B4EBA150419DF3B28673545541F51AD259E9A150416AA07B98755455417F7615E5E8A15041176EF3677654554196F4AA8CE7A15041779155D27854554198D84215E6A15041770E29E67A54554144E8B71CE5A15041846A1E4E7C545541A3A5D9E6E4A150416F84229C7C545541A47270B8E3A1504164B78BCA7D545541285A831FE3A1504155C722697E545541200042D7E2A15041BE119FB57E545541CCA0B5CFE2A15041B928E5BB7E545541AE5DE29EE2A150415E5B87EE7E5455416FEA6C8FE1A15041065519C67F545541D9D30A07E1A150418C25743780545541C827854DDEA150414D3079A382545541D2D71A64DCA15041C1E33C5B8454554153544331DBA15041D2399E97855455418B253822DAA15041CBC5D21A87545541E00F0311DAA150412EC0673387545541F0389EBED7A1504123BC81F8895455413CE15D8DD7A15041D177F7318A5455416DD17817D4A150412B8716A38E545541E6A31463D1A15041FE2D9E8C92545541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608334 - 5312821
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -24 </desc>
+<a>
+010600000007000000010300000001000000620200006D82FB7E9CA250410A28DA92A15355413A4E5D309CA250419F59B10DA2535541111D3E219BA2504109FBB826A4535541DB3D2F759AA25041203F1F9EA5535541EC2AE80C9AA25041013550C7A6535541C48AA25B99A250418854EAD5A85355411A055A3C99A25041E9812ED0A9535541979D72F298A2504137821CAFAB5355419F7356BF96A250410EF049EFB2535541AF85F0B594A25041FACB1502B7535541B234AC7293A25041E9D75620B9535541C146466991A25041D434DC81BC535541CAE74D6A8FA25041C453381CC1535541DFD818298AA250417494E473CD535541EA0F689288A25041646B49C6CF535541F37B93C786A250415F59AFCFD153554108EA319A83A2504150917FBED4535541187D85DF80A250414441BC00D853554126781E1F7FA250413136FC67DA535541408E9E507AA250410A864E93E15355415D5167A175A25041E97D821DE75355416D65743572A25041C795045AEB535541712B31A970A25041C69391BCEC535541B7FF126B65A250418BF6FE63F6535541BE7218FE63A250417D45D009F9535541D261701F60A250415A1175C3FD535541EC2B13CE5BA2504140C618C6025455411FA9577453A250410904D1FA0B54554144C14A434DA25041E39F00A9125455415705CDE247A25041C0B50F48185455418D465B5F3FA250418E03EFD520545541ABD447E43AA250417140268525545541B9D153C137A250416096D18828545541DFE9469031A250414A5929472E545541032288112AA2504119749FA6355455412246BCFE25A250410ADFD8C3395455413C5C3C3021A25041EEFD345E3E5455415AEC9B521BA25041C9E5418F445455416786C9F518A25041B2957ED14754554182B1D74015A250419668FDE84C545541867794B413A250418DFCD1B34E545541B16AD2100DA2504160276F6C55545541DAC7C80406A25041465DCCBD59545541EFEBFCF101A250413C70E7395C5455410753C166FEA15041255500485F545541107582B6FBA150411A511A0D6254554121EAFAE6F8A150410ABEC6C7645455415068C012F5A15041D911FF2D695455415A20C9CAF2A15041C2C13B706C545541673BB0BCEFA15041B6A6547E6F5455417FEE51B4EBA150419DF3B286735455418C887F57E9A150419270869A7554554196F4AA8CE7A15041779155D27854554198D84215E6A15041770E29E67A545541A3A5D9E6E4A150416F84229C7C545541A47270B8E3A1504164B78BCA7D545541AE5DE29EE2A150415E5B87EE7E545541B95F553CE1A150415570150880545541C827854DDEA150414D3079A382545541D99CFD7DDBA150413DD2012A85545541E00F0311DAA150412EC0673387545541F0389EBED7A1504123BC81F889545541F8C2A408D6A150410F1B7AF78B5455410F1368C6D2A15041FC8C8D729054554115866D59D1A15041EF273C9B925455414F0EF4C2D0A150416B6D106592545541AE47E18AE1A1504114AE47F198545541666666E6C7A15041AE47E1CAAA545541C22E0E6BB7A15041984B8F68A35455418AE3008CA3A15041DCD4A5939A545541B153681794A15041ED8ACF5993545541DFA2F80480A150419DAA6F528B5455419C3A288766A1504134D237498154554128452DDF56A15041C41AD7DD7B545541CC2A479A43A15041952E3BD976545541A4703DAA43A150410AD7A3F0785455416666660647A150418FC2F5388854554114AE470148A15041C3F5280C9154554152B81EC548A1504185EB512898545541AE47E1EA4EA15041D7A3704D97545541333333C35FA1504185EB51C895545541CDCCCC4C66A1504166666686965455413333334380A1504152B81E859A54554185EB51888EA15041E17A140E9D545541CDCCCCCC99A1504148E17A44A0545541CDCCCC4CAAA150419A999929A5545541AE47E1BAB5A15041EC51B85EA85455413D0AD7D3B3A150415C8FC2E5A954554185EB51A8B2A150415C8FC2D5AA545541CDCCCCBCB1A1504133333393AB545541000000A0B0A150417B14AE77AC54554114AE47A1ACA15041CDCCCCACAF5455413D0AD723ABA15041EC51B8DEB0545541C3F528ECA7A150413D0AD773B35455411F85EB21A5A1504114AE47B1B5545541B81E852BA3A1504148E17A44B7545541D7A3705D9FA15041295C8F52BA545541666666F69BA15041D7A3700DBD54554148E17A149AA150410AD7A390BE5455419A99998998A15041CDCCCCCCBF5455419A99997995A15041295C8F42C254554152B81E2594A150413D0AD753C354554114AE471192A15041EC51B8FEC454554114AE47818AA150410AD7A310CB54554148E17AD487A150415C8FC235CD5455410000008085A1504152B81E15CF54554152B81E0582A15041000000E0D1545541D7A370DD80A15041B81E85DBD2545541AE47E18A7CA15041B81E858BD6545541CDCCCCFC7AA15041EC51B8DED75455418FC2F55879A1504148E17A44D954554148E17AE476A15041CDCCCC5CDB5455418FC2F58875A1504152B81E85DC5455416666665674A15041AE47E18ADD545541A4703D3A72A15041713D0A57DF5455413D0AD77371A150410AD7A350E0545541EC51B82E6FA15041CDCCCC2CE3545541000000406DA15041B81E859BE55455419A9999296CA15041A4703DFAE6545541CDCCCCCC6AA1504114AE47B1E85455417B14AEB768A1504114AE4751EB545541D7A370ED64A15041713D0A17F0545541295C8FD263A15041B81E857BF15455419A99994962A15041AE47E16AF3545541295C8FF25EA1504114AE4791F754554152B81E855CA150418FC2F598FA5455417B14AEA759A15041A4703D2AFE5455417B14AEC758A150413D0AD733FF5455410AD7A35056A1504114AE472102555541295C8F2255A1504185EB5188035555413333337353A1504185EB518805555541B81E859B52A1504185EB51880655554152B81E9551A15041B81E85EB07555541B81E850B50A150413D0AD7230A555541F6285C4F4DA1504185EB51B80D555541EC51B82E4CA1504114AE47310F5555417B14AE774BA150410000001010555541D7A3702D48A150413D0AD71314555541C3F5284C44A15041F6285CCF185555411F85EBB142A15041295C8FC21A555541CDCCCC3C41A15041A4703D8A1C555541295C8FF23FA150418FC2F5B81D5555418FC2F5583DA15041B81E851B20555541AE47E18A3AA15041E17A14AE22555541EC51B84E38A15041AE47E1BA245555419A9999F936A150413D0AD7F325555541EC51B87E34A150413333330327555541713D0A3732A15041CDCCCCFC275555410AD7A3902EA15041A4703D3A29555541295C8F1228A150411F85EB7127555541E17A149E1EA15041AE47E13A255555419A9999C916A15041CDCCCC3C2355554152B81ED509A15041000000102055554114AE47B1FEA05041D7A3708D1D555541C3F5281CF8A050418FC2F5081C55554152B81EE5DCA0504185EB51F81555554152B81E85DBA0504185EB516821555541000000B0DEA05041AE47E1BA2255554148E17A64E0A050411F85EB4123555541295C8F42E3A0504148E17AF423555541E17A143EEAA050417B14AEB725555541B81E85CBF1A050413D0AD7C32755554185EB51F8F6A050418FC2F5182955554152B81E75FBA05041B81E854B2A5555411F85EB6106A15041713D0AC72C555541AE47E14A0DA1504152B81E552E555541A4703DAA14A1504100000030305555418FC2F50817A15041E17A146E305555418FC2F5B814A150415C8FC21531555541F6285CCF12A15041295C8FB231555541000000100DA1504185EB51A833555541CDCCCCEC04A15041F6285C2F36555541333333F302A1504152B81EF536555541EC51B8CE00A15041713D0AD73755554148E17A14FEA050410AD7A3A0385555410AD7A330FBA050419A99995939555541A4703D5AF8A050411F85EB013A555541F6285CEFF4A050418FC2F5D83A555541A4703DBAF0A05041295C8FD23B55554148E17A24E9A05041666666763D5555415C8FC2F5E4A05041333333733E5555410AD7A340E1A050411F85EB613F55554148E17A44DCA050418FC2F5E83F555541AE47E10ADEA0504133333373425555411F85EB71E2A0504114AE47C148555541666666A6E1A0504152B81E65495555415C8FC2F5E2A0504148E17A444B55554100000060E3A05041D7A370DD4B555541D7A3705D04A150418FC2F5087B5555410000002008A15041CDCCCC2C805555419A9999190CA1504152B81E2585555541E17A146E10A15041A4703D0A8A555541AE47E18A14A1504185EB51488E5555413D0AD75319A15041666666D692555541295C8F421FA1504185EB51E89755554185EB516827A150411F85EB219E55554114AE479130A15041A4703D0AA45555411F85EB013AA15041AE47E13AA95555418FC2F56841A15041333333F3AA555541B81E851B41A150418FC2F5D8A0555541666666C643A150411F85EB419C555541AE47E18A45A1504148E17A349555554185EB51B84CA150417B14AEC7925555413333331355A15041D7A370CD66555541295C8FF249A1504114AE478163555541666666563FA1504148E17A5460555541E17A145E34A15041666666465D555541C3F528FC33A150410000000058555541713D0A1726A15041C3F528BC545555417B14AE2713A15041D7A3705D5055554185EB5168EBA05041CDCCCC8C475555417B14AEC7ECA05041713D0A9746555541295C8F72F7A05041713D0A8743555541E17A147EF9A0504114AE47F1425555418FC2F588FFA0504152B81E35415555415C8FC2E502A15041EC51B83E40555541AE47E12A06A15041E17A144E3F555541AE47E11A09A15041666666763E555541E17A149E0FA1504185EB51983C555541CDCCCCFC11A15041A4703DEA3B555541C3F5286C14A15041713D0A373B555541CDCCCC1C1CA15041295C8F0239555541666666761CA1504148E17AE4385555413D0AD73328A150415C8FC2F53455554185EB511829A150411F85EBA1345555415C8FC2A53CA15041000000302E555541F6285C7F3DA1504148E17A542D5555411F85EB2141A150419A9999A9295555410AD7A31043A15041666666B62755554152B81E2545A15041D7A3709D25555541CDCCCC4C47A150410AD7A37023555541EC51B87E49A15041A4703D3A2155554185EB51884BA15041E17A14AE1E55554114AE47F14DA1504114AE47B11B555541C3F5281C4FA15041D7A3703D1A555541A4703D6A51A15041000000601755554148E17A0454A15041333333231455554148E17AA454A15041713D0A47135555411F85EBD155A150417B14AEA711555541666666F656A1504148E17A1410555541B81E855B5AA15041713D0A670B5555417B14AED75CA15041A4703DFA075555418FC2F5E85DA1504114AE47810655554185EB51E85EA150411F85EB21055555410AD7A3905FA15041A4703D3A04555541AE47E19A60A15041AE47E1CA025555419A99991961A15041C3F5281C025555419A99995968A15041C3F5282CFA545541AE47E11A69A1504185EB5158F9545541F5F4325E6CA15041538AA7EBF554554153556EE367A150419B8F8A7AFA54554177D7194A61A150417497E55DFF54554183256A6A5FA15041727E710901555541951B9CE95BA15041593588A90455554161C2474259A15041F80163E8075555418913CE1656A1504165B8AC350C555541074D7F6753A150414A8EE40A1055554179C1520A50A1504108FEB9A214555541295C8F624BA1504185EB51081A555541388237EB46A1504168A2BC3E1F555541EE699E7441A15041DEC2E3BC23555541E528428B3FA15041CD365A322555554184A216F838A150416891D06629555541163FBAD333A150413C3C7A7D2C555541CFEFA0B82CA15041FD602A9E2F555541C9E7D14821A150410A8F6E803155554132EF2BF71BA15041B1E9D69832555541FA0986DA14A15041B0B35B4B345555412369B75A09A15041B526A7C3375555418993FD6002A1504108EFE31C3A5555416A94629EFDA0504183B7CDF43B555541353B1830F8A05041DE1E464B3E555541FE04E12DF2A050417CBE81314055554174D60210EEA0504130760ED642555541915A6E04EBA05041639F1D404555554175A97668E9A050412C4BB0CF46555541B564005DE5A05041398210334A555541D04CC75BE3A0504146DB4AD14B55554143EBD9E7E2A050411099AE2B4B55554132723719E5A0504123068F6A49555541D68289B1E8A050415927F64846555541BEC85DA7EAA05041954D965D445555417F98CCD1EAA050414255D23B4455554133FB5D7CEDA05041D953BC3942555541D6FA4755EEA05041294C6D9A41555541DAF838CAF1A0504189D9E49A3F555541B75E343AF7A05041E1B1A19B3D55554179209349FEA0504156583AE93A555541D4EDB0B104A1504137A735543855554180E31F3709A15041F0777BC5365555412B240BA710A15041635107A034555541ED9A312416A15041D7E54AE932555541FC890A6319A1504178BBFB403255554104E7ABFA21A15041779BB9E630555541E8B495312CA15041D8C60A142F5555416732125D34A150410984A1402B5555414ACF17BB38A15041B913CFA728555541B54499503EA15041E9B51BF02455554172F8871244A150414B6714AB20555541A306703648A15041A2180D661C5555414C55777B4CA15041A808A8BD1755554148B3057650A15041CD94B5E7125555413AFA886753A150414CFF2F270F5555417DA1327155A150415FFFDEE20B5555412DB3A7FE56A15041E7B586A709555541A36212AC59A150414EFE384006555541828F22025FA150417A87BE04005555417A051CB860A1504181C5E7CBFE54554169115DD662A15041858BA43FFD545541579CE4A565A15041977F6321FB5455414B4C21E868A15041A8F4DB51F854554142AB19E76AA15041AED1997CF6545541433FEEB16CA15041B2E33373F45455412E87E5F96EA15041C605F5C2F15455411A63B10C73A15041DEA308A1EC545541060C14F175A15041F53FA9E1E8545541E501D5DD7CA15041288811BCE0545541A0C33A8488A15041777EB4CDD25455415D1D5B3093A15041A637AF9DCA5455415D1975F595A15041AD2B6E7FC854554147131C1D9AA15041BA1179A5C5545541C89ACDA4AEA150410C014259B7545541AE0507C2B2A150411F8DBB40B45455419BC3F7BFB6A1504137BFA3E9B05455418F29CA1CB9A150414ACA6382AE5455416BF3FB38BFA15041747337F9A65455416501B0F4BFA15041717A1157A754554167648E2EBFA15041728F9F70A854554187A13670B9A1504147508491AF545541A85D2563B4A1504120A4BCF7B3545541C3BF8217AFA150410D4BAC3EB8545541DC72240FABA15041FB0A10DABA545541119DB1D4A2A15041DE91B16EC05455413E3FABED9AA15041B5362E18C654554154FD0C7E94A15041AAC61CA8CA5455416708CD1692A150419CCB8368CC54554191325ADC89A150417EEF46C3D2545541BCF0BB6C83A150414DD5E056DA545541D85219217EA1504128BDED87E0545541F59428237AA15041116BB72CE5545541118DCD3F75A15041EF160E34EB54554128DF039B70A15041CDF74007F1545541D9A5FA856CA150414FC7E7C1F5545541713D0A976CA15041000000B0F5545541333333536EA15041E17A14DEF3545541F6285C5F70A150417B14AEB7F15455418FC2F55874A15041B81E858BED54554185EB51A875A15041B81E852BEC545541E17A142E77A15041295C8F92EA5455413D0AD76378A15041D7A3704DE9545541F6285C5F79A1504152B81E45E854554148E17A047CA15041EC51B87EE55455418FC2F5387EA15041EC51B82EE3545541713D0AB780A150410AD7A390E05455415C8FC21582A150410AD7A320DF545541C3F5283C83A15041B81E85EBDD5455410000005085A15041D7A370BDDB54554114AE47F186A150417B14AE07DA545541D7A370DD87A15041F6285C0FD9545541F6285C4F8AA15041EC51B87ED65455418FC2F5388CA150415C8FC235D55455419A99992991A15041333333E3D1545541F6285CCF94A15041F6285C6FCF545541CDCCCC4C97A15041295C8FC2CD545541CDCCCC6C9DA1504148E17AA4C954554152B81E159FA15041713D0A87C854554166666656A1A15041295C8F02C754554114AE4701A3A15041333333E3C55455411F85EB61A7A150411F85EBF1C25455415C8FC2A5A8A1504185EB5118C2545541D7A370BDABA150413D0AD703C054554114AE47C1AEA15041CDCCCCFCBD545541E17A14BEB2A15041E17A144EBB545541713D0AC7BEA1504166666636B35455413D0AD793BFA15041C3F528ACB25455419A9999F9C0A15041C3F528BCB1545541A4703DAAC1A1504152B81E45B15455410AD7A350C3A150418FC2F528B0545541CDCCCCDCCAA15041D7A3706DB45455419A9999B9CBA15041A4703D6AB35455419A9999C9CEA15041B81E857BB054554152B81EE5D1A150411F85EB81AD5455410AD7A340DAA1504114AE4781A5545541D7A3700DE7A15041C3F528FC9A545541295C8F7218A25041EC51B81E72545541E9A8BAE554A250414ABD9D8329545541AC81586A57A2504156985FA0265455416371EA8F5AA25041F9D38C04235455417B14AEF764A250415C8FC215175455415C8FC2A567A250413D0AD74314545541C5311AB767A25041F211882D145455419E6EECA767A2504119D5B53C145455414ECE523E68A250413CD01414105455410DAD676268A2504151E6F4870F5455413C618F9D68A250412A8A5DAB0E54554148B5782769A25041764E16C60D545541988AACCF6AA2504136D8480C0B545541027AA99A6BA2504169CF5FBE09545541B50BFA406CA25041DA81464E0A5455415BF4E9A069A25041E0D16BE60E5455417B457B1E69A25041AB0B57CA0F545541A97ECAC968A25041D12EB42413545541BEE159F568A250415F9A3FFA12545541666666466DA25041B81E854B0E545541713D0A676EA250415C8FC2450C545541785745D56BA250414417F5E909545541699958916BA25041C38AACA8095455410D20F4BB6BA25041C439B0840954554114AE47317BA25041D7A370FDEC53554152B81E8587A250415C8FC295DF535541666666669BA25041A4703D7ACC535541EC51B87EA6A2504114AE47B1C3535541823A42D0A7A2504116FB2C2CC25355418DF8A5A4A9A250414F5F49C6BF53554185EB5168ABA25041713D0A77BD535541D7A3702DACA25041295C8FF2BC5355417B14AE17B1A2504152B81E15BA535541A6C0BCE5D2A2504169CF7CA9AF535541364D2B13CEA250418BE14B0FA0535541756D1663CAA25041E3B0EAD895535541D254AC32CAA25041794E4217955355418B26A5F8C1A2504104A1E71C7E535541A3BD6CE0BFA2504145D09C9C78535541CD07008CB8A25041DA6F5054645355419A4E4071B7A25041DC9EE26A61535541AC4606D7B6A25041506F86CD5D5355411517AA39B3A2504168C1531357535541D461076CB2A25041F452F12A555355419D5CBCDCAAA250416C024ECE55535541F662A61AA5A250413E31BC8E58535541E35A841FA2A25041B0E42C305A535541D9EFA491A0A2504101F653ED5A535541A078A5BD9DA25041300274335C535541DBAAE23797A2504110CD1B355F535541A69DB9C594A2504197B7F62C605355413D0AD73390A250417B14AEE761535541FFFF47C78BA250411EAFFA96635355413D0AD7E385A2504114AE47D1675355410AD7A3907EA2504148E17AD46C5355412C3BAF9978A25041418AB0ED6F535541D7A3702D76A25041D7A3702D7153554114AE470172A2504152B81E95735355418B685EE26DA25041F63A924C77535541C370A22F6AA25041419B7F7D7A535541BBCFB5F665A250417DA172457D5355414620649D5FA250412640471781535541C8A06C635CA25041AC6A2EF4825355412989F84859A25041C1D657B9845355411A21743657A25041B6ED0365865355416120426855A25041418580D88753554115C1A40B54A25041F835D42189535541B086F41951A25041D98294E58B5355416DD2428850A250411C50E3648C5355419811A0374DA250416738D0F38E5355415B0CDAC14AA25041933E2782905355419A8B0B2A43A25041E39EF66695535541B1A0558D3EA2504194CBD2C098535541EF1777F73CA250414CBFA7B099535541E73ACD2639A2504152AC47F99B535541D811A22C38A25041749A26809C535541692AF84C36A2504187D2EA3A9E53554190489D6334A250417CFDA06FA0535541BBF215AE32A25041E1A05644A25355413B20E65431A25041D2516F98A35355418517501B30A25041304FC06EA4535541E147D2DD2DA250411AF6E058A6535541684DE26E29A25041A20A2223AB535541311BF03D27A25041E91888D6AD535541FF4569E524A25041086938B8AF53554172D4BC4220A2504164D59A6CB25355410861499A16A25041925E502FB75355414A6F0D5B15A25041F02F44ACB7535541DF21BD4814A2504119492B27B85355417C785A9511A25041C5C42846B9535541A98893300FA250412574FC9BB9535541548CF33B0CA2504128F841EAB95355415E05215607A250413AE6407FBB535541D152C1E102A25041785DA09DBD53554153EC4314FFA1504148B194FABF535541EFA0C0DFFBA150410BD4A049C25355418EB70DC7F8A15041AE5EE84AC3535541BF63196AF6A15041BD79E2E3C35355412195A0C8EFA15041E1547575C5535541662066FBEAA15041F35C7861C65355416FC91E43E2A15041A04DB1B8CA5355413AF8B26CDBA15041E3ABBC2DCE53554132F94DA9D6A150410FA14499D05355419C07037ED3A1504110751F24D2535541CEEBBC79D1A150413FF74C22D3535541F3AA2F29CFA15041B5650ABFD3535541133180FBCBA15041AD0D7C7AD4535541EA07B7B3C6A15041637D411FD553554168AFE1A9C0A15041537E4A4BD6535541C4352B1DBFA15041D6A183C8D653554140632CE6BBA15041EAABAFDFD7535541B8D5453CBAA15041A304DE51D85355418BE0BDD0B7A15041569D34B4D85355410F468D02B6A150414FFEB4D1D8535541789B565CB2A15041F7500983D8535541791561EAACA15041739D677ED753554126A1BA98A7A150417BD05EE7D65355412A15BB0CA0A150411C78F7A4D6535541E14627E999A15041BB9F8F99D6535541C69F0BB78CA1504190F0E0C2D6535541DB00C55587A1504198ADAD26D75355414C7308F685A15041A82BAB49D7535541950FBDF282A15041629009DCD7535541206D90DF7BA15041A8A4F36AD95355416D639E9A79A150417A5A190ADA5355413DB0E71475A15041B97C1A79DB53554147EABB8C70A15041F6EDA634DD53554129A4E74D70A15041F4838053DD535541D615F7766EA15041FD800D00DE535541726B16C46CA15041A8B413ABDE535541954502A169A15041C6B2EE13E053554117C04C0C68A15041DC5EB7CDE0535541EFFB3DD965A15041762AECF0E1535541C013693763A150413E84C85CE353554177FCB2C460A150418AD10EA9E453554196F7C4A05DA150416DC32E4FE65355419C92E6B35AA15041466607F3E7535541A2B7578659A150419907B69AE8535541713D0A7759A1504114AE47B1E8535541D7A370CD56A1504185EB5158ED535541713D0A2756A15041A4703D7AEE535541B81E85CB52A15041EC51B89EF35355411F85EB114DA150418FC2F5F8FC5355418FC2F5484AA15041CDCCCC2C035455411F85EB9145A150417B14AE870D5455419A9999293EA150413D0AD7E31D545541AE47E11A3DA15041CDCCCC4C205455416666667666A15041C3F5287C655455411F85EB51D0A150418FC2F5389254554114DEAD56D0A15041CB24D13A925455410A03416DD3A150410645962A8E545541F841EBB9D6A1504123085F7B89545541E3876F64DAA15041372C936885545541D32B6B88DBA150413DD474C783545541C2CB8071DFA1504158E8815B80545541AEDE9BEDE1A1504160F341F47D545541A062495FE4A150416E6F94827B54554193C6A81EE8A150418BB3162276545541815130EEEAA150419D746CD5725455417AC729A4ECA15041A31C4E347154554165571834F1A15041C604CCF76C5455413951BF5BF5A15041FFB9E08C675455411D243E73FAA1504117A4D1ED61545541FB852A95FFA150413649BF295D545541E286AB1A04A2504149D538115A545541B2028D160CA25041635571DA545455417EA3238514A2504195D2B5804C5455417EED8D6A15A250419D5CBCCA4A545541612AC5191AA25041C40AF7014554554156A7982D1CA25041D28649904254554145FD43311FA25041E9D60C4E3F5455412D4AA23923A25041FFA7895A3B54554105508A7F29A250412066EBEA34545541E88A4E912FA2504142BA94E32E545541D75F404633A250414D0A58A12B545541CA79352036A250415F7FD0D1285455419731CD453EA2504191FC14782054554169C4AFF845A25041C4F89FCF1854554129E2197B50A25041FCD35BEF0D545541171F512A55A250411801DDD708545541F90FAB565AA250413EAF170F03545541C7DE433362A250417935A9B0F9535541C0A01A6C63A250417CAF88A1F8535541BA2D15D964A250418D59DD9DF5535541AFAAE8EC66A25041997251F2F3535541813DCB9F6EA25041C1B8462FED5355417685C2E770A25041D1CAE025EB5355415943B3E574A25041EB9483D4E6535541408E9E507AA250410D6AE61BE0535541219DD3917FA250413D844C88D85355411BF5F13281A2504143ADE735D65355410B64118B82A250414FFB3756D4535541F8D5240687A2504165CCB462D0535541E7AC895889A2504171D09A9DCD535541DCDD7FE98BA2504197B3B1A0C7535541CCCBE5F28DA25041BE2C100CC2535541D386E2CD8EA25041BEAF3CF8BF535541BBA0D7A791A25041E80AC04EBA535541AA2B5F7794A25041FF5CF6A9B55355419DC60DA096A250411C6C9C7DB0535541E394713298A25041EFD8DBAFAB5355419BAD994B98A2504147DE208BAA535541C7A7B89A98A25041A4D27CCBA853554150E468E899A25041C250A49EA45355412E9BD0169BA25041749C551DA25355418D58B4749BA25041B750C7F7A15355418FC2F5987DA250418FC2F548AD53554114AE47016DA25041B81E85DBB05355418FC2F5A84CA250417B14AE87CB535541B81E850B2FA25041B81E853BDA535541B81E858B24A25041E17A142EC453554114AE47412FA250415C8FC225BB535541295C8FB23CA25041333333A3B45355413333333347A2504100000020AE535541C3F5282C53A250419A9999B9A5535541E17A148E63A250417B14AED79F5355410AD7A3E076A25041666666F6995355417B14AEC789A2504185EB51B8905355411F85EB119DA25041E17A140E88535541713D0AF7A4A25041B81E85BB85535541E17A14FEA9A25041CDCCCC8C84535541713D0AF7C0A250419A9999397F53554114AE47E1C6A25041AE47E10A93535541713D0AF7B2A25041666666569A535541C3F528DCA3A2504185EB51C89E5355416D82FB7E9CA250410A28DA92A1535541010300000001000000040000001AAC74A8B2A25041089D234F5353554192C13EF3B2A25041425CD8E253535541D4DDEF03B3A25041532D98DE535355411AAC74A8B2A25041089D234F53535541010300000001000000040000001D91EF1258A2504105DCD4131A5355413C2510D05AA25041E758D8AD17535541426B4F1C58A250413D3182081A5355411D91EF1258A2504105DCD4131A53554101030000000100000031000000B6C3DB68B9A25041CD678CAA3E53554114AE4771BBA25041000000A03953554114AE4751B6A2504114AE472139535541295C8F42ACA25041B81E857B35535541D7A370BDA6A250417B14AEE7335355417B14AE179CA250415C8FC2D531535541F6285CCF9AA25041E17A14AE355355413D0AD76395A25041C3F5289C3353554185EB51A890A25041295C8F6235535541544807108BA2504153AE70CE345355418FC2F5C887A250413D0AD7C32F53554114AE47318EA25041E17A141E3353554148E17AA491A250410AD7A3E02E535541E17A14DE88A25041F6285CEF2A53554114AE473180A250410AD7A3502C535541D7A3700D7CA25041666666F6285355418FC2F53877A25041AE47E11A26535541EC51B86E76A25041713D0AA7225355419A9999E969A25041666666D61C5355413333330363A25041295C8F6220535541B81E85DB5FA25041E17A14FE1F535541CDCCCC3C61A25041295C8F421B5355415C8FC2C565A2504133333383175355411F85EBA169A250416666666617535541713D0A5766A25041666666160B535541666666665DA2504133333383155355416C4814A75AA25041A9E00BDE17535541FE12ADEF56A25041AD0F6FCF1C535541C15FA13454A25041356D94C420535541AE9FBE0353A25041923CD9D822535541657E642852A250410B95207226535541605F886152A250414C15127729535541BFD8D8E454A25041627F1B552E53554163371C1758A25041DAEDCE4C305355419DA4F58D60A250419E6976913153554107612AD867A250419D026CD331535541777687F173A25041F0401166325355414D563D1A7AA250419B95485233535541CB7CAE6188A250417D46DAAD34535541CAE7F06C90A250418AEC1ECB35535541D117692296A25041424424AB36535541D25BD7379AA2504134B07E8037535541432D99029EA25041AA8E85A038535541D6D5F2B79EA25041881587E0385355413C85FD77A0A250416C4B344B395355412E35C662A5A25041E4C491A03A5355418851A74DAEA25041F21CF6153D5355410A741C83B3A25041A9D9A4C03D535541B6C3DB68B9A25041CD678CAA3E53554101030000000100000005000000C574E116B9A250411B8AD6753F535541B3E09318B9A25041499D04763F535541133FEB6DB9A25041331D55AB3E535541B6C3DB68B9A25041CD678CAA3E535541C574E116B9A250411B8AD6753F5355410103000000010000000400000091376FF667A25041270C33EE1354554186A4DC3268A25041B06A5AC7135455417D2DE04F68A25041545CEE981354554191376FF667A25041270C33EE1354554101030000000100000097000000D0E5578659A150417CC3B59AE8535541C952CEBB5AA150410B24CBEEE6535541884C98535DA1504188FC6D7EE553554128E908E75EA150410B636A96E45355411A4DD32163A1504149B18C6EE253554134CA048268A15041B74818B2DF535541B348AC7C6EA15041BDFA7C07DD5355419AE4B01471A150414C608811DC5355411AA702D273A1504164FC62EEDA535541B256A10179A1504186FD6057D95355415F90FA027AA1504110ADB80BD95355413D5489357BA15041E042E2A9D8535541F0AE4A327DA1504104168641D8535541A54BBD937FA1504113F175D6D75355419375F4E881A15041FA733C5DD753554103F9461786A150417DAEFA9FD6535541C453D5FF87A150411E7E4A4BD65355415FD61D5989A1504192DDF741D6535541B4BFBDB98AA1504165ED2724D6535541AC90B2338DA150419E39350CD653554161F3585693A15041FA085DCFD553554174577E3796A1504114F27BDED5535541E1389B5AA1A1504144C91ED0D55355412608F08DA5A15041965C05FDD5535541F63157D7A8A1504112B0AD2AD6535541AAC3822AAAA15041A5C6DB5ED65355412667917DACA15041CA2A38BDD65355417781732CAEA150412AEEAEF9D65355419288DBDBB3A150419480DCDBD7535541051C7E99B6A15041C33CD206D85355410CFFEF14BAA150418DBEDBA0D7535541F0073230C1A15041688B5470D5535541CC571139C4A1504159E4D1A1D453554118391167C5A1504139B4AB75D45355417DE62E36CDA1504193437853D35355417A93F8C8CDA150412AA88B2FD3535541AA364BD9CFA15041FA3DB5CDD253554193D59F9ED3A15041D1C7BE25D15355418E45AC08DBA1504124A35E53CD53554119963B05EBA1504189CA4A7FC55355411AD39F8DEFA150412A381D9DC45355415D6DA2BAF6A150416104E428C3535541BE13734CFAA150410741E81FC25355415D478586FEA150416E658F63BF5355414F09E5CC02A25041D13FA072BC535541C8314AFC06A2504145C2EFADBA5355419934A16709A25041CA07B3E2B953554120DE46590AA250412574FC9BB95355414CFC534A0FA25041024424B0B85355410423CACE12A25041F4499507B85355413C6C60B416A25041CA9AC1FCB553554109D341F719A25041A3F26775B453554139E385ED1FA25041791CA959B15355419503E87425A25041C7ED3A99AE53554179556D0B2AA2504162305E26A95355416F3C8A882DA250415BCABD8DA55355413B20E65431A25041B2998793A25355412467FAFD31A25041054DAE16A25355416041B76433A25041E4133268A05355414F69D26D35A25041C270075E9E535541567CC76F37A25041BF3E04639C535541D9FE5B593AA25041FC40686B9A535541FCCE88013DA250419C3812E798535541414B51FB3FA2504182DE800A9753554182C8209442A2504199BC3F2595535541C318C9FC45A25041589386C4925355413FF9A0AC47A250417FAE0D8791535541279F01F648A250411D2D5CC890535541576DAB614DA25041126361EF8D5355416E4BEA5050A25041B6849B628B5355412B1BB35F51A250413E9A03788A535541DFF0ABE553A250415B9D75278853554149A1891958A250410367829384535541E743C4C159A25041E1504D9A83535541A4036F8E5DA250419F29EC5E81535541C7AF08D860A25041824A89707F535541A640689367A2504180223B777B5355417D9BB8496CA25041705F478B775355416B451D966DA25041994FAD7E765355411C3D210071A250416EAB514273535541FB43CEEC74A2504155B4C33971535541074AA3B779A250412D609DA16E53554114ADBD6D7DA25041EC8561816C53554145B24F8981A25041F34C5A176A535541F757D3AB84A25041322F72DB67535541F3C6CB188AA250413BEC7490635355417B14AE478CA250416666667662535541EE6B30818EA25041079DCAAD61535541D6D1089890A250414F4312DD605355414E520D2E91A250414D7575BC6053554108B2FB0699A250415E19AB935D535541943F290F9CA250410A93965A5C53554118C45155A1A250418A856DE859535541FEFDD62FA4A25041A3DD1361585355416C80ED1DA7A250418CA497B25653554193F1DC4EA9A2504192A38E86555355418021543BADA25041BFB8B38E545355414AEE0D95B2A2504190AC93485353554185EB51C8B1A2504148E17A9451535541C574E116B9A250411B8AD6753F535541A24B7298B3A250412AB8ABE03E535541B9220A83B0A2504199AAA8603E535541485148B8ACA2504111024FAB3D535541F7FF35B8A9A2504159AA49CB3C5355410E935F8DA2A250411DD9E6953A535541C4E9E8179DA250413C9C882039535541DA9EC9F797A25041CC87D4953753554148D04A908DA250410CC7984A36535541E659490784A250411703770A35535541308F0C1978A2504161762ADE335355411E8B4CBD6FA25041C901FDE03253554197F615336EA2504158CC86D632535541BB75A50268A250417CBBC4B432535541613382E061A2504167721A5C32535541257D962F5CA250413779C2F43153554185EB51A857A25041713D0A073153554188F5659854A250417BAABB072F53554124A09B1252A25041E47EAA9E2B53554196A8051E51A250416A7D976F275355410E9E0DAC51A250415217C02625535541BAAD002E52A250416145974F2353554188A8974153A25041AA4824C2205355417B86CDE353A25041494C0CAC1F535541B1A45E5155A250410B911B5B1D535541018CE36256A25041A131AE1D1C535541F8E1201058A250417E384A161A5355415C8FC2A54EA2504185EB5128225355419A9999194CA25041E17A140E2553554185EB51D831A25041B81E850B2D5355417B14AEF730A2504185EB51781E535541333333A332A25041295C8FA214535541A4703D5A30A25041A4703DCA12535541CDCCCCBC2FA25041295C8FB20D535541E17A140E0DA250411F85EB8110535541333333E3F2A1504152B81E5510535541295C8F12EBA15041333333D3115355415C8FC2B5E0A15041AE47E1FA0F535541B81E85EBDDA150413D0AD7631053554182F3B5ADC8A15041802E569945535541F5004C9FC5A150411FD5D5524F535541670399C9BFA15041C32422F05C535541CDFA9C2CB7A1504187BBBE8D6F535541A53B3EBAADA1504130A98E477E5355412518163AABA15041C408BE00835355416350BB2A99A1504197C035F49D535541776646FF8BA15041FC0F38F1AC5355417AC5130183A15041D90AB98AB753554169A3808376A15041DA4EC4D9C5535541250874A266A15041087E2D88D8535541CDCCCC9C5AA1504100000000E7535541D0E5578659A150417CC3B59AE8535541
+</a>
+
+<b>
+010600000001000000010300000001000000720000007113F40055A250412CB068662E535541EBB76D8A56A250410B299F582F5355416CBE63ED57A25041E950203330535541CDBC2D1258A250415329DC4B30535541C43228005AA25041FEC3149630535541EC9D74BB5CA250418CFFDAFE30535541565FF3405FA25041AE8D915F315355418FE44AAE60A2504118934E9631535541F19C667B61A250416DCDDA99315355412F2120E867A250418F87EFD331535541427DE3DC6AA2504168B601F831535541A023FEC56BA2504137060B0332535541E02560836EA250412A0E402432535541680CEC9C70A250418F53B33D32535541E32CB65671A25041E92A7F46325355415F0A4B3473A25041D3A31B5D32535541038C1AEB73A250413728F46432535541526F703F76A2504166FB71BE3253554101D1C5C178A25041BE4CAD1E335355411A77115E79A250414AAD1736335355419795CE617AA25041FA9D165933535541D79042A97BA25041B173C77633535541AF3E29067EA250415132BDB133535541D86328E27EA25041872BA8C633535541559FD8A47FA250417F1C2BD9335355410232DB8381A2504147C5B606345355414E055AD382A250410F1E9D2634535541FF45846C85A250414501DC653453554162F86F4087A2504184BC599234535541A95279F688A25041B4FA76C234535541C47DD5B98BA25041047A742435535541908BE63290A25041599A14C33553554109CCDCD894A250416283A07836535541DB7247FB95A250411EB724A536535541421204A096A25041D281C6C436535541C55A824497A25041477158E636535541BBD5F00399A250417C75A841375355416256172D9AA25041220D4D7E3753554121A4425A9CA25041F0849E22385355417D7215AE9DA25041AB489F823853554149007CC39EA25041043846E338535541787C13A6A0A2504113A75F55395355415EF64FA4A5A250416869A3B23A535541D6F008D4A9A2504125F42BDA3B53554171B99A56AEA25041BC691B173D535541434606B4AEA250417A9A10233D53554198D141A2B2A2504141D5DCA33D5355414A1D9194B3A25041932D59C33D535541AEA74C6BB9A250413538EDAA3E53554172585996BAA250415A77E8BE3B535541FDADFA6DBBA25041A562AE9F3953554139F6D526B9A250418FAA5B673953554178420D4BB6A25041A770051F3953554109195307B1A25041198A3F363753554144B87FCEABA2504158285A5A355355413A8E6864A6A2504171075FD6335355412D38A44AA3A2504192B30D3C3353554150BA54189CA2504153F5E2D53153554120953FE99AA25041A4217760355355415487D0D19AA250415999B8A635535541137ADFC498A25041174988E6345355413D0AD76395A25041C3F5289C33535541419921D090A25041BACEA05335535541CEFF519E90A2504179A0866135535541076F540F8BA2504160965DCD3453554155D3C2E28AA250413113D088345355411500ABC987A250411EDE35C42F535541C8D454828BA25041D97EA8B6315355414ECF11348EA2504129D3A61A33535541DE0F8E9F91A25041F95DB1E62E535541E17A14DE88A25041F6285CEF2A5355414AAB476480A25041FEEB86482C5355413E14D82D80A25041F18DDB4D2C535541060CB20E7CA2504176AB6AF728535541392E1C987BA250410262FCB0285355418FC2F53877A25041AE47E11A265355412FCA848876A25041E671C91723535541E3068C6B76A2504103F790A5225355415EB17BF969A25041BCECC6DD1C5355411E4CB9EB69A2504188EC62D71C535541638EEE6167A250417FCA62231E5355410D4A4D4F63A2504165066F3B2053554104D64B0563A2504188757B6120535541B81E85DB5FA25041E17A14FE1F535541F947763B61A25041EEF925471B5355418B4B895061A25041453A40321B5355414740DCC665A2504176FD2A8317535541214A4EBF67A250417E40777417535541DEDE0FA169A250410202316317535541923D978A68A25041B54911411353554100015BFE67A2504118DA694511535541E2017D5F67A25041C8F951F30E535541A4A75F5766A2504164A4EF150B535541D6BE2FF962A25041B6E969030F5355415679E1AA5FA25041F20E4CDE1253554155E8D6D05DA25041A183140715535541A35AF15D5DA2504100101190155355412ADD86B25BA25041083CCEF816535541F83467A25AA250410262A6E317535541ED678A5659A25041F174A69D19535541BF62E79156A25041A02857571D535541B0A0CC6555A25041A274E10B1F535541698936B354A2504119BE1E0D2053554177D86E2754A25041480B04E42053554127450E0353A25041C467F9D322535541185B6EDA52A25041CD8F5D86235355418138615B52A250410521FB9B255355415B03262652A25041E9B6E97F2653554185402B4D52A25041616C9B63285355417E29CA6252A25041CA71427A295355411F9B41F852A25041E4E4019B2A535541EA2A1EFC53A25041A5D0C2902C5355412A0705E654A2504173A112512E5355417113F40055A250412CB068662E535541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608334 - 201472
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -15 </desc>
+<a>
+010600000007000000010300000001000000620200006D82FB7E9CA250410A28DA92A15355413A4E5D309CA250419F59B10DA2535541111D3E219BA2504109FBB826A4535541DB3D2F759AA25041203F1F9EA5535541EC2AE80C9AA25041013550C7A6535541C48AA25B99A250418854EAD5A85355411A055A3C99A25041E9812ED0A9535541979D72F298A2504137821CAFAB5355419F7356BF96A250410EF049EFB2535541AF85F0B594A25041FACB1502B7535541B234AC7293A25041E9D75620B9535541C146466991A25041D434DC81BC535541CAE74D6A8FA25041C453381CC1535541DFD818298AA250417494E473CD535541EA0F689288A25041646B49C6CF535541F37B93C786A250415F59AFCFD153554108EA319A83A2504150917FBED4535541187D85DF80A250414441BC00D853554126781E1F7FA250413136FC67DA535541408E9E507AA250410A864E93E15355415D5167A175A25041E97D821DE75355416D65743572A25041C795045AEB535541712B31A970A25041C69391BCEC535541B7FF126B65A250418BF6FE63F6535541BE7218FE63A250417D45D009F9535541D261701F60A250415A1175C3FD535541EC2B13CE5BA2504140C618C6025455411FA9577453A250410904D1FA0B54554144C14A434DA25041E39F00A9125455415705CDE247A25041C0B50F48185455418D465B5F3FA250418E03EFD520545541ABD447E43AA250417140268525545541B9D153C137A250416096D18828545541DFE9469031A250414A5929472E545541032288112AA2504119749FA6355455412246BCFE25A250410ADFD8C3395455413C5C3C3021A25041EEFD345E3E5455415AEC9B521BA25041C9E5418F445455416786C9F518A25041B2957ED14754554182B1D74015A250419668FDE84C545541867794B413A250418DFCD1B34E545541B16AD2100DA2504160276F6C55545541DAC7C80406A25041465DCCBD59545541EFEBFCF101A250413C70E7395C5455410753C166FEA15041255500485F545541107582B6FBA150411A511A0D6254554121EAFAE6F8A150410ABEC6C7645455415068C012F5A15041D911FF2D695455415A20C9CAF2A15041C2C13B706C545541673BB0BCEFA15041B6A6547E6F5455417FEE51B4EBA150419DF3B286735455418C887F57E9A150419270869A7554554196F4AA8CE7A15041779155D27854554198D84215E6A15041770E29E67A545541A3A5D9E6E4A150416F84229C7C545541A47270B8E3A1504164B78BCA7D545541AE5DE29EE2A150415E5B87EE7E545541B95F553CE1A150415570150880545541C827854DDEA150414D3079A382545541D99CFD7DDBA150413DD2012A85545541E00F0311DAA150412EC0673387545541F0389EBED7A1504123BC81F889545541F8C2A408D6A150410F1B7AF78B5455410F1368C6D2A15041FC8C8D729054554115866D59D1A15041EF273C9B925455414F0EF4C2D0A150416B6D106592545541AE47E18AE1A1504114AE47F198545541666666E6C7A15041AE47E1CAAA545541C22E0E6BB7A15041984B8F68A35455418AE3008CA3A15041DCD4A5939A545541B153681794A15041ED8ACF5993545541DFA2F80480A150419DAA6F528B5455419C3A288766A1504134D237498154554128452DDF56A15041C41AD7DD7B545541CC2A479A43A15041952E3BD976545541A4703DAA43A150410AD7A3F0785455416666660647A150418FC2F5388854554114AE470148A15041C3F5280C9154554152B81EC548A1504185EB512898545541AE47E1EA4EA15041D7A3704D97545541333333C35FA1504185EB51C895545541CDCCCC4C66A1504166666686965455413333334380A1504152B81E859A54554185EB51888EA15041E17A140E9D545541CDCCCCCC99A1504148E17A44A0545541CDCCCC4CAAA150419A999929A5545541AE47E1BAB5A15041EC51B85EA85455413D0AD7D3B3A150415C8FC2E5A954554185EB51A8B2A150415C8FC2D5AA545541CDCCCCBCB1A1504133333393AB545541000000A0B0A150417B14AE77AC54554114AE47A1ACA15041CDCCCCACAF5455413D0AD723ABA15041EC51B8DEB0545541C3F528ECA7A150413D0AD773B35455411F85EB21A5A1504114AE47B1B5545541B81E852BA3A1504148E17A44B7545541D7A3705D9FA15041295C8F52BA545541666666F69BA15041D7A3700DBD54554148E17A149AA150410AD7A390BE5455419A99998998A15041CDCCCCCCBF5455419A99997995A15041295C8F42C254554152B81E2594A150413D0AD753C354554114AE471192A15041EC51B8FEC454554114AE47818AA150410AD7A310CB54554148E17AD487A150415C8FC235CD5455410000008085A1504152B81E15CF54554152B81E0582A15041000000E0D1545541D7A370DD80A15041B81E85DBD2545541AE47E18A7CA15041B81E858BD6545541CDCCCCFC7AA15041EC51B8DED75455418FC2F55879A1504148E17A44D954554148E17AE476A15041CDCCCC5CDB5455418FC2F58875A1504152B81E85DC5455416666665674A15041AE47E18ADD545541A4703D3A72A15041713D0A57DF5455413D0AD77371A150410AD7A350E0545541EC51B82E6FA15041CDCCCC2CE3545541000000406DA15041B81E859BE55455419A9999296CA15041A4703DFAE6545541CDCCCCCC6AA1504114AE47B1E85455417B14AEB768A1504114AE4751EB545541D7A370ED64A15041713D0A17F0545541295C8FD263A15041B81E857BF15455419A99994962A15041AE47E16AF3545541295C8FF25EA1504114AE4791F754554152B81E855CA150418FC2F598FA5455417B14AEA759A15041A4703D2AFE5455417B14AEC758A150413D0AD733FF5455410AD7A35056A1504114AE472102555541295C8F2255A1504185EB5188035555413333337353A1504185EB518805555541B81E859B52A1504185EB51880655554152B81E9551A15041B81E85EB07555541B81E850B50A150413D0AD7230A555541F6285C4F4DA1504185EB51B80D555541EC51B82E4CA1504114AE47310F5555417B14AE774BA150410000001010555541D7A3702D48A150413D0AD71314555541C3F5284C44A15041F6285CCF185555411F85EBB142A15041295C8FC21A555541CDCCCC3C41A15041A4703D8A1C555541295C8FF23FA150418FC2F5B81D5555418FC2F5583DA15041B81E851B20555541AE47E18A3AA15041E17A14AE22555541EC51B84E38A15041AE47E1BA245555419A9999F936A150413D0AD7F325555541EC51B87E34A150413333330327555541713D0A3732A15041CDCCCCFC275555410AD7A3902EA15041A4703D3A29555541295C8F1228A150411F85EB7127555541E17A149E1EA15041AE47E13A255555419A9999C916A15041CDCCCC3C2355554152B81ED509A15041000000102055554114AE47B1FEA05041D7A3708D1D555541C3F5281CF8A050418FC2F5081C55554152B81EE5DCA0504185EB51F81555554152B81E85DBA0504185EB516821555541000000B0DEA05041AE47E1BA2255554148E17A64E0A050411F85EB4123555541295C8F42E3A0504148E17AF423555541E17A143EEAA050417B14AEB725555541B81E85CBF1A050413D0AD7C32755554185EB51F8F6A050418FC2F5182955554152B81E75FBA05041B81E854B2A5555411F85EB6106A15041713D0AC72C555541AE47E14A0DA1504152B81E552E555541A4703DAA14A1504100000030305555418FC2F50817A15041E17A146E305555418FC2F5B814A150415C8FC21531555541F6285CCF12A15041295C8FB231555541000000100DA1504185EB51A833555541CDCCCCEC04A15041F6285C2F36555541333333F302A1504152B81EF536555541EC51B8CE00A15041713D0AD73755554148E17A14FEA050410AD7A3A0385555410AD7A330FBA050419A99995939555541A4703D5AF8A050411F85EB013A555541F6285CEFF4A050418FC2F5D83A555541A4703DBAF0A05041295C8FD23B55554148E17A24E9A05041666666763D5555415C8FC2F5E4A05041333333733E5555410AD7A340E1A050411F85EB613F55554148E17A44DCA050418FC2F5E83F555541AE47E10ADEA0504133333373425555411F85EB71E2A0504114AE47C148555541666666A6E1A0504152B81E65495555415C8FC2F5E2A0504148E17A444B55554100000060E3A05041D7A370DD4B555541D7A3705D04A150418FC2F5087B5555410000002008A15041CDCCCC2C805555419A9999190CA1504152B81E2585555541E17A146E10A15041A4703D0A8A555541AE47E18A14A1504185EB51488E5555413D0AD75319A15041666666D692555541295C8F421FA1504185EB51E89755554185EB516827A150411F85EB219E55554114AE479130A15041A4703D0AA45555411F85EB013AA15041AE47E13AA95555418FC2F56841A15041333333F3AA555541B81E851B41A150418FC2F5D8A0555541666666C643A150411F85EB419C555541AE47E18A45A1504148E17A349555554185EB51B84CA150417B14AEC7925555413333331355A15041D7A370CD66555541295C8FF249A1504114AE478163555541666666563FA1504148E17A5460555541E17A145E34A15041666666465D555541C3F528FC33A150410000000058555541713D0A1726A15041C3F528BC545555417B14AE2713A15041D7A3705D5055554185EB5168EBA05041CDCCCC8C475555417B14AEC7ECA05041713D0A9746555541295C8F72F7A05041713D0A8743555541E17A147EF9A0504114AE47F1425555418FC2F588FFA0504152B81E35415555415C8FC2E502A15041EC51B83E40555541AE47E12A06A15041E17A144E3F555541AE47E11A09A15041666666763E555541E17A149E0FA1504185EB51983C555541CDCCCCFC11A15041A4703DEA3B555541C3F5286C14A15041713D0A373B555541CDCCCC1C1CA15041295C8F0239555541666666761CA1504148E17AE4385555413D0AD73328A150415C8FC2F53455554185EB511829A150411F85EBA1345555415C8FC2A53CA15041000000302E555541F6285C7F3DA1504148E17A542D5555411F85EB2141A150419A9999A9295555410AD7A31043A15041666666B62755554152B81E2545A15041D7A3709D25555541CDCCCC4C47A150410AD7A37023555541EC51B87E49A15041A4703D3A2155554185EB51884BA15041E17A14AE1E55554114AE47F14DA1504114AE47B11B555541C3F5281C4FA15041D7A3703D1A555541A4703D6A51A15041000000601755554148E17A0454A15041333333231455554148E17AA454A15041713D0A47135555411F85EBD155A150417B14AEA711555541666666F656A1504148E17A1410555541B81E855B5AA15041713D0A670B5555417B14AED75CA15041A4703DFA075555418FC2F5E85DA1504114AE47810655554185EB51E85EA150411F85EB21055555410AD7A3905FA15041A4703D3A04555541AE47E19A60A15041AE47E1CA025555419A99991961A15041C3F5281C025555419A99995968A15041C3F5282CFA545541AE47E11A69A1504185EB5158F9545541F5F4325E6CA15041538AA7EBF554554153556EE367A150419B8F8A7AFA54554177D7194A61A150417497E55DFF54554183256A6A5FA15041727E710901555541951B9CE95BA15041593588A90455554161C2474259A15041F80163E8075555418913CE1656A1504165B8AC350C555541074D7F6753A150414A8EE40A1055554179C1520A50A1504108FEB9A214555541295C8F624BA1504185EB51081A555541388237EB46A1504168A2BC3E1F555541EE699E7441A15041DEC2E3BC23555541E528428B3FA15041CD365A322555554184A216F838A150416891D06629555541163FBAD333A150413C3C7A7D2C555541CFEFA0B82CA15041FD602A9E2F555541C9E7D14821A150410A8F6E803155554132EF2BF71BA15041B1E9D69832555541FA0986DA14A15041B0B35B4B345555412369B75A09A15041B526A7C3375555418993FD6002A1504108EFE31C3A5555416A94629EFDA0504183B7CDF43B555541353B1830F8A05041DE1E464B3E555541FE04E12DF2A050417CBE81314055554174D60210EEA0504130760ED642555541915A6E04EBA05041639F1D404555554175A97668E9A050412C4BB0CF46555541B564005DE5A05041398210334A555541D04CC75BE3A0504146DB4AD14B55554143EBD9E7E2A050411099AE2B4B55554132723719E5A0504123068F6A49555541D68289B1E8A050415927F64846555541BEC85DA7EAA05041954D965D445555417F98CCD1EAA050414255D23B4455554133FB5D7CEDA05041D953BC3942555541D6FA4755EEA05041294C6D9A41555541DAF838CAF1A0504189D9E49A3F555541B75E343AF7A05041E1B1A19B3D55554179209349FEA0504156583AE93A555541D4EDB0B104A1504137A735543855554180E31F3709A15041F0777BC5365555412B240BA710A15041635107A034555541ED9A312416A15041D7E54AE932555541FC890A6319A1504178BBFB403255554104E7ABFA21A15041779BB9E630555541E8B495312CA15041D8C60A142F5555416732125D34A150410984A1402B5555414ACF17BB38A15041B913CFA728555541B54499503EA15041E9B51BF02455554172F8871244A150414B6714AB20555541A306703648A15041A2180D661C5555414C55777B4CA15041A808A8BD1755554148B3057650A15041CD94B5E7125555413AFA886753A150414CFF2F270F5555417DA1327155A150415FFFDEE20B5555412DB3A7FE56A15041E7B586A709555541A36212AC59A150414EFE384006555541828F22025FA150417A87BE04005555417A051CB860A1504181C5E7CBFE54554169115DD662A15041858BA43FFD545541579CE4A565A15041977F6321FB5455414B4C21E868A15041A8F4DB51F854554142AB19E76AA15041AED1997CF6545541433FEEB16CA15041B2E33373F45455412E87E5F96EA15041C605F5C2F15455411A63B10C73A15041DEA308A1EC545541060C14F175A15041F53FA9E1E8545541E501D5DD7CA15041288811BCE0545541A0C33A8488A15041777EB4CDD25455415D1D5B3093A15041A637AF9DCA5455415D1975F595A15041AD2B6E7FC854554147131C1D9AA15041BA1179A5C5545541C89ACDA4AEA150410C014259B7545541AE0507C2B2A150411F8DBB40B45455419BC3F7BFB6A1504137BFA3E9B05455418F29CA1CB9A150414ACA6382AE5455416BF3FB38BFA15041747337F9A65455416501B0F4BFA15041717A1157A754554167648E2EBFA15041728F9F70A854554187A13670B9A1504147508491AF545541A85D2563B4A1504120A4BCF7B3545541C3BF8217AFA150410D4BAC3EB8545541DC72240FABA15041FB0A10DABA545541119DB1D4A2A15041DE91B16EC05455413E3FABED9AA15041B5362E18C654554154FD0C7E94A15041AAC61CA8CA5455416708CD1692A150419CCB8368CC54554191325ADC89A150417EEF46C3D2545541BCF0BB6C83A150414DD5E056DA545541D85219217EA1504128BDED87E0545541F59428237AA15041116BB72CE5545541118DCD3F75A15041EF160E34EB54554128DF039B70A15041CDF74007F1545541D9A5FA856CA150414FC7E7C1F5545541713D0A976CA15041000000B0F5545541333333536EA15041E17A14DEF3545541F6285C5F70A150417B14AEB7F15455418FC2F55874A15041B81E858BED54554185EB51A875A15041B81E852BEC545541E17A142E77A15041295C8F92EA5455413D0AD76378A15041D7A3704DE9545541F6285C5F79A1504152B81E45E854554148E17A047CA15041EC51B87EE55455418FC2F5387EA15041EC51B82EE3545541713D0AB780A150410AD7A390E05455415C8FC21582A150410AD7A320DF545541C3F5283C83A15041B81E85EBDD5455410000005085A15041D7A370BDDB54554114AE47F186A150417B14AE07DA545541D7A370DD87A15041F6285C0FD9545541F6285C4F8AA15041EC51B87ED65455418FC2F5388CA150415C8FC235D55455419A99992991A15041333333E3D1545541F6285CCF94A15041F6285C6FCF545541CDCCCC4C97A15041295C8FC2CD545541CDCCCC6C9DA1504148E17AA4C954554152B81E159FA15041713D0A87C854554166666656A1A15041295C8F02C754554114AE4701A3A15041333333E3C55455411F85EB61A7A150411F85EBF1C25455415C8FC2A5A8A1504185EB5118C2545541D7A370BDABA150413D0AD703C054554114AE47C1AEA15041CDCCCCFCBD545541E17A14BEB2A15041E17A144EBB545541713D0AC7BEA1504166666636B35455413D0AD793BFA15041C3F528ACB25455419A9999F9C0A15041C3F528BCB1545541A4703DAAC1A1504152B81E45B15455410AD7A350C3A150418FC2F528B0545541CDCCCCDCCAA15041D7A3706DB45455419A9999B9CBA15041A4703D6AB35455419A9999C9CEA15041B81E857BB054554152B81EE5D1A150411F85EB81AD5455410AD7A340DAA1504114AE4781A5545541D7A3700DE7A15041C3F528FC9A545541295C8F7218A25041EC51B81E72545541E9A8BAE554A250414ABD9D8329545541AC81586A57A2504156985FA0265455416371EA8F5AA25041F9D38C04235455417B14AEF764A250415C8FC215175455415C8FC2A567A250413D0AD74314545541C5311AB767A25041F211882D145455419E6EECA767A2504119D5B53C145455414ECE523E68A250413CD01414105455410DAD676268A2504151E6F4870F5455413C618F9D68A250412A8A5DAB0E54554148B5782769A25041764E16C60D545541988AACCF6AA2504136D8480C0B545541027AA99A6BA2504169CF5FBE09545541B50BFA406CA25041DA81464E0A5455415BF4E9A069A25041E0D16BE60E5455417B457B1E69A25041AB0B57CA0F545541A97ECAC968A25041D12EB42413545541BEE159F568A250415F9A3FFA12545541666666466DA25041B81E854B0E545541713D0A676EA250415C8FC2450C545541785745D56BA250414417F5E909545541699958916BA25041C38AACA8095455410D20F4BB6BA25041C439B0840954554114AE47317BA25041D7A370FDEC53554152B81E8587A250415C8FC295DF535541666666669BA25041A4703D7ACC535541EC51B87EA6A2504114AE47B1C3535541823A42D0A7A2504116FB2C2CC25355418DF8A5A4A9A250414F5F49C6BF53554185EB5168ABA25041713D0A77BD535541D7A3702DACA25041295C8FF2BC5355417B14AE17B1A2504152B81E15BA535541A6C0BCE5D2A2504169CF7CA9AF535541364D2B13CEA250418BE14B0FA0535541756D1663CAA25041E3B0EAD895535541D254AC32CAA25041794E4217955355418B26A5F8C1A2504104A1E71C7E535541A3BD6CE0BFA2504145D09C9C78535541CD07008CB8A25041DA6F5054645355419A4E4071B7A25041DC9EE26A61535541AC4606D7B6A25041506F86CD5D5355411517AA39B3A2504168C1531357535541D461076CB2A25041F452F12A555355419D5CBCDCAAA250416C024ECE55535541F662A61AA5A250413E31BC8E58535541E35A841FA2A25041B0E42C305A535541D9EFA491A0A2504101F653ED5A535541A078A5BD9DA25041300274335C535541DBAAE23797A2504110CD1B355F535541A69DB9C594A2504197B7F62C605355413D0AD73390A250417B14AEE761535541FFFF47C78BA250411EAFFA96635355413D0AD7E385A2504114AE47D1675355410AD7A3907EA2504148E17AD46C5355412C3BAF9978A25041418AB0ED6F535541D7A3702D76A25041D7A3702D7153554114AE470172A2504152B81E95735355418B685EE26DA25041F63A924C77535541C370A22F6AA25041419B7F7D7A535541BBCFB5F665A250417DA172457D5355414620649D5FA250412640471781535541C8A06C635CA25041AC6A2EF4825355412989F84859A25041C1D657B9845355411A21743657A25041B6ED0365865355416120426855A25041418580D88753554115C1A40B54A25041F835D42189535541B086F41951A25041D98294E58B5355416DD2428850A250411C50E3648C5355419811A0374DA250416738D0F38E5355415B0CDAC14AA25041933E2782905355419A8B0B2A43A25041E39EF66695535541B1A0558D3EA2504194CBD2C098535541EF1777F73CA250414CBFA7B099535541E73ACD2639A2504152AC47F99B535541D811A22C38A25041749A26809C535541692AF84C36A2504187D2EA3A9E53554190489D6334A250417CFDA06FA0535541BBF215AE32A25041E1A05644A25355413B20E65431A25041D2516F98A35355418517501B30A25041304FC06EA4535541E147D2DD2DA250411AF6E058A6535541684DE26E29A25041A20A2223AB535541311BF03D27A25041E91888D6AD535541FF4569E524A25041086938B8AF53554172D4BC4220A2504164D59A6CB25355410861499A16A25041925E502FB75355414A6F0D5B15A25041F02F44ACB7535541DF21BD4814A2504119492B27B85355417C785A9511A25041C5C42846B9535541A98893300FA250412574FC9BB9535541548CF33B0CA2504128F841EAB95355415E05215607A250413AE6407FBB535541D152C1E102A25041785DA09DBD53554153EC4314FFA1504148B194FABF535541EFA0C0DFFBA150410BD4A049C25355418EB70DC7F8A15041AE5EE84AC3535541BF63196AF6A15041BD79E2E3C35355412195A0C8EFA15041E1547575C5535541662066FBEAA15041F35C7861C65355416FC91E43E2A15041A04DB1B8CA5355413AF8B26CDBA15041E3ABBC2DCE53554132F94DA9D6A150410FA14499D05355419C07037ED3A1504110751F24D2535541CEEBBC79D1A150413FF74C22D3535541F3AA2F29CFA15041B5650ABFD3535541133180FBCBA15041AD0D7C7AD4535541EA07B7B3C6A15041637D411FD553554168AFE1A9C0A15041537E4A4BD6535541C4352B1DBFA15041D6A183C8D653554140632CE6BBA15041EAABAFDFD7535541B8D5453CBAA15041A304DE51D85355418BE0BDD0B7A15041569D34B4D85355410F468D02B6A150414FFEB4D1D8535541789B565CB2A15041F7500983D8535541791561EAACA15041739D677ED753554126A1BA98A7A150417BD05EE7D65355412A15BB0CA0A150411C78F7A4D6535541E14627E999A15041BB9F8F99D6535541C69F0BB78CA1504190F0E0C2D6535541DB00C55587A1504198ADAD26D75355414C7308F685A15041A82BAB49D7535541950FBDF282A15041629009DCD7535541206D90DF7BA15041A8A4F36AD95355416D639E9A79A150417A5A190ADA5355413DB0E71475A15041B97C1A79DB53554147EABB8C70A15041F6EDA634DD53554129A4E74D70A15041F4838053DD535541D615F7766EA15041FD800D00DE535541726B16C46CA15041A8B413ABDE535541954502A169A15041C6B2EE13E053554117C04C0C68A15041DC5EB7CDE0535541EFFB3DD965A15041762AECF0E1535541C013693763A150413E84C85CE353554177FCB2C460A150418AD10EA9E453554196F7C4A05DA150416DC32E4FE65355419C92E6B35AA15041466607F3E7535541A2B7578659A150419907B69AE8535541713D0A7759A1504114AE47B1E8535541D7A370CD56A1504185EB5158ED535541713D0A2756A15041A4703D7AEE535541B81E85CB52A15041EC51B89EF35355411F85EB114DA150418FC2F5F8FC5355418FC2F5484AA15041CDCCCC2C035455411F85EB9145A150417B14AE870D5455419A9999293EA150413D0AD7E31D545541AE47E11A3DA15041CDCCCC4C205455416666667666A15041C3F5287C655455411F85EB51D0A150418FC2F5389254554114DEAD56D0A15041CB24D13A925455410A03416DD3A150410645962A8E545541F841EBB9D6A1504123085F7B89545541E3876F64DAA15041372C936885545541D32B6B88DBA150413DD474C783545541C2CB8071DFA1504158E8815B80545541AEDE9BEDE1A1504160F341F47D545541A062495FE4A150416E6F94827B54554193C6A81EE8A150418BB3162276545541815130EEEAA150419D746CD5725455417AC729A4ECA15041A31C4E347154554165571834F1A15041C604CCF76C5455413951BF5BF5A15041FFB9E08C675455411D243E73FAA1504117A4D1ED61545541FB852A95FFA150413649BF295D545541E286AB1A04A2504149D538115A545541B2028D160CA25041635571DA545455417EA3238514A2504195D2B5804C5455417EED8D6A15A250419D5CBCCA4A545541612AC5191AA25041C40AF7014554554156A7982D1CA25041D28649904254554145FD43311FA25041E9D60C4E3F5455412D4AA23923A25041FFA7895A3B54554105508A7F29A250412066EBEA34545541E88A4E912FA2504142BA94E32E545541D75F404633A250414D0A58A12B545541CA79352036A250415F7FD0D1285455419731CD453EA2504191FC14782054554169C4AFF845A25041C4F89FCF1854554129E2197B50A25041FCD35BEF0D545541171F512A55A250411801DDD708545541F90FAB565AA250413EAF170F03545541C7DE433362A250417935A9B0F9535541C0A01A6C63A250417CAF88A1F8535541BA2D15D964A250418D59DD9DF5535541AFAAE8EC66A25041997251F2F3535541813DCB9F6EA25041C1B8462FED5355417685C2E770A25041D1CAE025EB5355415943B3E574A25041EB9483D4E6535541408E9E507AA250410D6AE61BE0535541219DD3917FA250413D844C88D85355411BF5F13281A2504143ADE735D65355410B64118B82A250414FFB3756D4535541F8D5240687A2504165CCB462D0535541E7AC895889A2504171D09A9DCD535541DCDD7FE98BA2504197B3B1A0C7535541CCCBE5F28DA25041BE2C100CC2535541D386E2CD8EA25041BEAF3CF8BF535541BBA0D7A791A25041E80AC04EBA535541AA2B5F7794A25041FF5CF6A9B55355419DC60DA096A250411C6C9C7DB0535541E394713298A25041EFD8DBAFAB5355419BAD994B98A2504147DE208BAA535541C7A7B89A98A25041A4D27CCBA853554150E468E899A25041C250A49EA45355412E9BD0169BA25041749C551DA25355418D58B4749BA25041B750C7F7A15355418FC2F5987DA250418FC2F548AD53554114AE47016DA25041B81E85DBB05355418FC2F5A84CA250417B14AE87CB535541B81E850B2FA25041B81E853BDA535541B81E858B24A25041E17A142EC453554114AE47412FA250415C8FC225BB535541295C8FB23CA25041333333A3B45355413333333347A2504100000020AE535541C3F5282C53A250419A9999B9A5535541E17A148E63A250417B14AED79F5355410AD7A3E076A25041666666F6995355417B14AEC789A2504185EB51B8905355411F85EB119DA25041E17A140E88535541713D0AF7A4A25041B81E85BB85535541E17A14FEA9A25041CDCCCC8C84535541713D0AF7C0A250419A9999397F53554114AE47E1C6A25041AE47E10A93535541713D0AF7B2A25041666666569A535541C3F528DCA3A2504185EB51C89E5355416D82FB7E9CA250410A28DA92A1535541010300000001000000040000001AAC74A8B2A25041089D234F5353554192C13EF3B2A25041425CD8E253535541D4DDEF03B3A25041532D98DE535355411AAC74A8B2A25041089D234F53535541010300000001000000040000001D91EF1258A2504105DCD4131A5355413C2510D05AA25041E758D8AD17535541426B4F1C58A250413D3182081A5355411D91EF1258A2504105DCD4131A53554101030000000100000031000000B6C3DB68B9A25041CD678CAA3E53554114AE4771BBA25041000000A03953554114AE4751B6A2504114AE472139535541295C8F42ACA25041B81E857B35535541D7A370BDA6A250417B14AEE7335355417B14AE179CA250415C8FC2D531535541F6285CCF9AA25041E17A14AE355355413D0AD76395A25041C3F5289C3353554185EB51A890A25041295C8F6235535541544807108BA2504153AE70CE345355418FC2F5C887A250413D0AD7C32F53554114AE47318EA25041E17A141E3353554148E17AA491A250410AD7A3E02E535541E17A14DE88A25041F6285CEF2A53554114AE473180A250410AD7A3502C535541D7A3700D7CA25041666666F6285355418FC2F53877A25041AE47E11A26535541EC51B86E76A25041713D0AA7225355419A9999E969A25041666666D61C5355413333330363A25041295C8F6220535541B81E85DB5FA25041E17A14FE1F535541CDCCCC3C61A25041295C8F421B5355415C8FC2C565A2504133333383175355411F85EBA169A250416666666617535541713D0A5766A25041666666160B535541666666665DA2504133333383155355416C4814A75AA25041A9E00BDE17535541FE12ADEF56A25041AD0F6FCF1C535541C15FA13454A25041356D94C420535541AE9FBE0353A25041923CD9D822535541657E642852A250410B95207226535541605F886152A250414C15127729535541BFD8D8E454A25041627F1B552E53554163371C1758A25041DAEDCE4C305355419DA4F58D60A250419E6976913153554107612AD867A250419D026CD331535541777687F173A25041F0401166325355414D563D1A7AA250419B95485233535541CB7CAE6188A250417D46DAAD34535541CAE7F06C90A250418AEC1ECB35535541D117692296A25041424424AB36535541D25BD7379AA2504134B07E8037535541432D99029EA25041AA8E85A038535541D6D5F2B79EA25041881587E0385355413C85FD77A0A250416C4B344B395355412E35C662A5A25041E4C491A03A5355418851A74DAEA25041F21CF6153D5355410A741C83B3A25041A9D9A4C03D535541B6C3DB68B9A25041CD678CAA3E53554101030000000100000005000000C574E116B9A250411B8AD6753F535541B3E09318B9A25041499D04763F535541133FEB6DB9A25041331D55AB3E535541B6C3DB68B9A25041CD678CAA3E535541C574E116B9A250411B8AD6753F5355410103000000010000000400000091376FF667A25041270C33EE1354554186A4DC3268A25041B06A5AC7135455417D2DE04F68A25041545CEE981354554191376FF667A25041270C33EE1354554101030000000100000097000000D0E5578659A150417CC3B59AE8535541C952CEBB5AA150410B24CBEEE6535541884C98535DA1504188FC6D7EE553554128E908E75EA150410B636A96E45355411A4DD32163A1504149B18C6EE253554134CA048268A15041B74818B2DF535541B348AC7C6EA15041BDFA7C07DD5355419AE4B01471A150414C608811DC5355411AA702D273A1504164FC62EEDA535541B256A10179A1504186FD6057D95355415F90FA027AA1504110ADB80BD95355413D5489357BA15041E042E2A9D8535541F0AE4A327DA1504104168641D8535541A54BBD937FA1504113F175D6D75355419375F4E881A15041FA733C5DD753554103F9461786A150417DAEFA9FD6535541C453D5FF87A150411E7E4A4BD65355415FD61D5989A1504192DDF741D6535541B4BFBDB98AA1504165ED2724D6535541AC90B2338DA150419E39350CD653554161F3585693A15041FA085DCFD553554174577E3796A1504114F27BDED5535541E1389B5AA1A1504144C91ED0D55355412608F08DA5A15041965C05FDD5535541F63157D7A8A1504112B0AD2AD6535541AAC3822AAAA15041A5C6DB5ED65355412667917DACA15041CA2A38BDD65355417781732CAEA150412AEEAEF9D65355419288DBDBB3A150419480DCDBD7535541051C7E99B6A15041C33CD206D85355410CFFEF14BAA150418DBEDBA0D7535541F0073230C1A15041688B5470D5535541CC571139C4A1504159E4D1A1D453554118391167C5A1504139B4AB75D45355417DE62E36CDA1504193437853D35355417A93F8C8CDA150412AA88B2FD3535541AA364BD9CFA15041FA3DB5CDD253554193D59F9ED3A15041D1C7BE25D15355418E45AC08DBA1504124A35E53CD53554119963B05EBA1504189CA4A7FC55355411AD39F8DEFA150412A381D9DC45355415D6DA2BAF6A150416104E428C3535541BE13734CFAA150410741E81FC25355415D478586FEA150416E658F63BF5355414F09E5CC02A25041D13FA072BC535541C8314AFC06A2504145C2EFADBA5355419934A16709A25041CA07B3E2B953554120DE46590AA250412574FC9BB95355414CFC534A0FA25041024424B0B85355410423CACE12A25041F4499507B85355413C6C60B416A25041CA9AC1FCB553554109D341F719A25041A3F26775B453554139E385ED1FA25041791CA959B15355419503E87425A25041C7ED3A99AE53554179556D0B2AA2504162305E26A95355416F3C8A882DA250415BCABD8DA55355413B20E65431A25041B2998793A25355412467FAFD31A25041054DAE16A25355416041B76433A25041E4133268A05355414F69D26D35A25041C270075E9E535541567CC76F37A25041BF3E04639C535541D9FE5B593AA25041FC40686B9A535541FCCE88013DA250419C3812E798535541414B51FB3FA2504182DE800A9753554182C8209442A2504199BC3F2595535541C318C9FC45A25041589386C4925355413FF9A0AC47A250417FAE0D8791535541279F01F648A250411D2D5CC890535541576DAB614DA25041126361EF8D5355416E4BEA5050A25041B6849B628B5355412B1BB35F51A250413E9A03788A535541DFF0ABE553A250415B9D75278853554149A1891958A250410367829384535541E743C4C159A25041E1504D9A83535541A4036F8E5DA250419F29EC5E81535541C7AF08D860A25041824A89707F535541A640689367A2504180223B777B5355417D9BB8496CA25041705F478B775355416B451D966DA25041994FAD7E765355411C3D210071A250416EAB514273535541FB43CEEC74A2504155B4C33971535541074AA3B779A250412D609DA16E53554114ADBD6D7DA25041EC8561816C53554145B24F8981A25041F34C5A176A535541F757D3AB84A25041322F72DB67535541F3C6CB188AA250413BEC7490635355417B14AE478CA250416666667662535541EE6B30818EA25041079DCAAD61535541D6D1089890A250414F4312DD605355414E520D2E91A250414D7575BC6053554108B2FB0699A250415E19AB935D535541943F290F9CA250410A93965A5C53554118C45155A1A250418A856DE859535541FEFDD62FA4A25041A3DD1361585355416C80ED1DA7A250418CA497B25653554193F1DC4EA9A2504192A38E86555355418021543BADA25041BFB8B38E545355414AEE0D95B2A2504190AC93485353554185EB51C8B1A2504148E17A9451535541C574E116B9A250411B8AD6753F535541A24B7298B3A250412AB8ABE03E535541B9220A83B0A2504199AAA8603E535541485148B8ACA2504111024FAB3D535541F7FF35B8A9A2504159AA49CB3C5355410E935F8DA2A250411DD9E6953A535541C4E9E8179DA250413C9C882039535541DA9EC9F797A25041CC87D4953753554148D04A908DA250410CC7984A36535541E659490784A250411703770A35535541308F0C1978A2504161762ADE335355411E8B4CBD6FA25041C901FDE03253554197F615336EA2504158CC86D632535541BB75A50268A250417CBBC4B432535541613382E061A2504167721A5C32535541257D962F5CA250413779C2F43153554185EB51A857A25041713D0A073153554188F5659854A250417BAABB072F53554124A09B1252A25041E47EAA9E2B53554196A8051E51A250416A7D976F275355410E9E0DAC51A250415217C02625535541BAAD002E52A250416145974F2353554188A8974153A25041AA4824C2205355417B86CDE353A25041494C0CAC1F535541B1A45E5155A250410B911B5B1D535541018CE36256A25041A131AE1D1C535541F8E1201058A250417E384A161A5355415C8FC2A54EA2504185EB5128225355419A9999194CA25041E17A140E2553554185EB51D831A25041B81E850B2D5355417B14AEF730A2504185EB51781E535541333333A332A25041295C8FA214535541A4703D5A30A25041A4703DCA12535541CDCCCCBC2FA25041295C8FB20D535541E17A140E0DA250411F85EB8110535541333333E3F2A1504152B81E5510535541295C8F12EBA15041333333D3115355415C8FC2B5E0A15041AE47E1FA0F535541B81E85EBDDA150413D0AD7631053554182F3B5ADC8A15041802E569945535541F5004C9FC5A150411FD5D5524F535541670399C9BFA15041C32422F05C535541CDFA9C2CB7A1504187BBBE8D6F535541A53B3EBAADA1504130A98E477E5355412518163AABA15041C408BE00835355416350BB2A99A1504197C035F49D535541776646FF8BA15041FC0F38F1AC5355417AC5130183A15041D90AB98AB753554169A3808376A15041DA4EC4D9C5535541250874A266A15041087E2D88D8535541CDCCCC9C5AA1504100000000E7535541D0E5578659A150417CC3B59AE8535541
+</a>
+
+<b>
+010600000001000000010300000001000000090000008744EC2141A1504176D898A9295555415E4B7D944BA15041642ECDCC2B555541C931E15A78A15041C1DE27DC3355554191B8288C79A1504187F5AD3732555541C456140E72A15041C1D01D1530555541D1A71D8550A150416A9B287C2A555541FFA3A31043A1504192E566B62755554133BFFDD542A15041857494F1275555418744EC2141A1504176D898A929555541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608334 - 406320
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -15 </desc>
+<a>
+010600000007000000010300000001000000620200006D82FB7E9CA250410A28DA92A15355413A4E5D309CA250419F59B10DA2535541111D3E219BA2504109FBB826A4535541DB3D2F759AA25041203F1F9EA5535541EC2AE80C9AA25041013550C7A6535541C48AA25B99A250418854EAD5A85355411A055A3C99A25041E9812ED0A9535541979D72F298A2504137821CAFAB5355419F7356BF96A250410EF049EFB2535541AF85F0B594A25041FACB1502B7535541B234AC7293A25041E9D75620B9535541C146466991A25041D434DC81BC535541CAE74D6A8FA25041C453381CC1535541DFD818298AA250417494E473CD535541EA0F689288A25041646B49C6CF535541F37B93C786A250415F59AFCFD153554108EA319A83A2504150917FBED4535541187D85DF80A250414441BC00D853554126781E1F7FA250413136FC67DA535541408E9E507AA250410A864E93E15355415D5167A175A25041E97D821DE75355416D65743572A25041C795045AEB535541712B31A970A25041C69391BCEC535541B7FF126B65A250418BF6FE63F6535541BE7218FE63A250417D45D009F9535541D261701F60A250415A1175C3FD535541EC2B13CE5BA2504140C618C6025455411FA9577453A250410904D1FA0B54554144C14A434DA25041E39F00A9125455415705CDE247A25041C0B50F48185455418D465B5F3FA250418E03EFD520545541ABD447E43AA250417140268525545541B9D153C137A250416096D18828545541DFE9469031A250414A5929472E545541032288112AA2504119749FA6355455412246BCFE25A250410ADFD8C3395455413C5C3C3021A25041EEFD345E3E5455415AEC9B521BA25041C9E5418F445455416786C9F518A25041B2957ED14754554182B1D74015A250419668FDE84C545541867794B413A250418DFCD1B34E545541B16AD2100DA2504160276F6C55545541DAC7C80406A25041465DCCBD59545541EFEBFCF101A250413C70E7395C5455410753C166FEA15041255500485F545541107582B6FBA150411A511A0D6254554121EAFAE6F8A150410ABEC6C7645455415068C012F5A15041D911FF2D695455415A20C9CAF2A15041C2C13B706C545541673BB0BCEFA15041B6A6547E6F5455417FEE51B4EBA150419DF3B286735455418C887F57E9A150419270869A7554554196F4AA8CE7A15041779155D27854554198D84215E6A15041770E29E67A545541A3A5D9E6E4A150416F84229C7C545541A47270B8E3A1504164B78BCA7D545541AE5DE29EE2A150415E5B87EE7E545541B95F553CE1A150415570150880545541C827854DDEA150414D3079A382545541D99CFD7DDBA150413DD2012A85545541E00F0311DAA150412EC0673387545541F0389EBED7A1504123BC81F889545541F8C2A408D6A150410F1B7AF78B5455410F1368C6D2A15041FC8C8D729054554115866D59D1A15041EF273C9B925455414F0EF4C2D0A150416B6D106592545541AE47E18AE1A1504114AE47F198545541666666E6C7A15041AE47E1CAAA545541C22E0E6BB7A15041984B8F68A35455418AE3008CA3A15041DCD4A5939A545541B153681794A15041ED8ACF5993545541DFA2F80480A150419DAA6F528B5455419C3A288766A1504134D237498154554128452DDF56A15041C41AD7DD7B545541CC2A479A43A15041952E3BD976545541A4703DAA43A150410AD7A3F0785455416666660647A150418FC2F5388854554114AE470148A15041C3F5280C9154554152B81EC548A1504185EB512898545541AE47E1EA4EA15041D7A3704D97545541333333C35FA1504185EB51C895545541CDCCCC4C66A1504166666686965455413333334380A1504152B81E859A54554185EB51888EA15041E17A140E9D545541CDCCCCCC99A1504148E17A44A0545541CDCCCC4CAAA150419A999929A5545541AE47E1BAB5A15041EC51B85EA85455413D0AD7D3B3A150415C8FC2E5A954554185EB51A8B2A150415C8FC2D5AA545541CDCCCCBCB1A1504133333393AB545541000000A0B0A150417B14AE77AC54554114AE47A1ACA15041CDCCCCACAF5455413D0AD723ABA15041EC51B8DEB0545541C3F528ECA7A150413D0AD773B35455411F85EB21A5A1504114AE47B1B5545541B81E852BA3A1504148E17A44B7545541D7A3705D9FA15041295C8F52BA545541666666F69BA15041D7A3700DBD54554148E17A149AA150410AD7A390BE5455419A99998998A15041CDCCCCCCBF5455419A99997995A15041295C8F42C254554152B81E2594A150413D0AD753C354554114AE471192A15041EC51B8FEC454554114AE47818AA150410AD7A310CB54554148E17AD487A150415C8FC235CD5455410000008085A1504152B81E15CF54554152B81E0582A15041000000E0D1545541D7A370DD80A15041B81E85DBD2545541AE47E18A7CA15041B81E858BD6545541CDCCCCFC7AA15041EC51B8DED75455418FC2F55879A1504148E17A44D954554148E17AE476A15041CDCCCC5CDB5455418FC2F58875A1504152B81E85DC5455416666665674A15041AE47E18ADD545541A4703D3A72A15041713D0A57DF5455413D0AD77371A150410AD7A350E0545541EC51B82E6FA15041CDCCCC2CE3545541000000406DA15041B81E859BE55455419A9999296CA15041A4703DFAE6545541CDCCCCCC6AA1504114AE47B1E85455417B14AEB768A1504114AE4751EB545541D7A370ED64A15041713D0A17F0545541295C8FD263A15041B81E857BF15455419A99994962A15041AE47E16AF3545541295C8FF25EA1504114AE4791F754554152B81E855CA150418FC2F598FA5455417B14AEA759A15041A4703D2AFE5455417B14AEC758A150413D0AD733FF5455410AD7A35056A1504114AE472102555541295C8F2255A1504185EB5188035555413333337353A1504185EB518805555541B81E859B52A1504185EB51880655554152B81E9551A15041B81E85EB07555541B81E850B50A150413D0AD7230A555541F6285C4F4DA1504185EB51B80D555541EC51B82E4CA1504114AE47310F5555417B14AE774BA150410000001010555541D7A3702D48A150413D0AD71314555541C3F5284C44A15041F6285CCF185555411F85EBB142A15041295C8FC21A555541CDCCCC3C41A15041A4703D8A1C555541295C8FF23FA150418FC2F5B81D5555418FC2F5583DA15041B81E851B20555541AE47E18A3AA15041E17A14AE22555541EC51B84E38A15041AE47E1BA245555419A9999F936A150413D0AD7F325555541EC51B87E34A150413333330327555541713D0A3732A15041CDCCCCFC275555410AD7A3902EA15041A4703D3A29555541295C8F1228A150411F85EB7127555541E17A149E1EA15041AE47E13A255555419A9999C916A15041CDCCCC3C2355554152B81ED509A15041000000102055554114AE47B1FEA05041D7A3708D1D555541C3F5281CF8A050418FC2F5081C55554152B81EE5DCA0504185EB51F81555554152B81E85DBA0504185EB516821555541000000B0DEA05041AE47E1BA2255554148E17A64E0A050411F85EB4123555541295C8F42E3A0504148E17AF423555541E17A143EEAA050417B14AEB725555541B81E85CBF1A050413D0AD7C32755554185EB51F8F6A050418FC2F5182955554152B81E75FBA05041B81E854B2A5555411F85EB6106A15041713D0AC72C555541AE47E14A0DA1504152B81E552E555541A4703DAA14A1504100000030305555418FC2F50817A15041E17A146E305555418FC2F5B814A150415C8FC21531555541F6285CCF12A15041295C8FB231555541000000100DA1504185EB51A833555541CDCCCCEC04A15041F6285C2F36555541333333F302A1504152B81EF536555541EC51B8CE00A15041713D0AD73755554148E17A14FEA050410AD7A3A0385555410AD7A330FBA050419A99995939555541A4703D5AF8A050411F85EB013A555541F6285CEFF4A050418FC2F5D83A555541A4703DBAF0A05041295C8FD23B55554148E17A24E9A05041666666763D5555415C8FC2F5E4A05041333333733E5555410AD7A340E1A050411F85EB613F55554148E17A44DCA050418FC2F5E83F555541AE47E10ADEA0504133333373425555411F85EB71E2A0504114AE47C148555541666666A6E1A0504152B81E65495555415C8FC2F5E2A0504148E17A444B55554100000060E3A05041D7A370DD4B555541D7A3705D04A150418FC2F5087B5555410000002008A15041CDCCCC2C805555419A9999190CA1504152B81E2585555541E17A146E10A15041A4703D0A8A555541AE47E18A14A1504185EB51488E5555413D0AD75319A15041666666D692555541295C8F421FA1504185EB51E89755554185EB516827A150411F85EB219E55554114AE479130A15041A4703D0AA45555411F85EB013AA15041AE47E13AA95555418FC2F56841A15041333333F3AA555541B81E851B41A150418FC2F5D8A0555541666666C643A150411F85EB419C555541AE47E18A45A1504148E17A349555554185EB51B84CA150417B14AEC7925555413333331355A15041D7A370CD66555541295C8FF249A1504114AE478163555541666666563FA1504148E17A5460555541E17A145E34A15041666666465D555541C3F528FC33A150410000000058555541713D0A1726A15041C3F528BC545555417B14AE2713A15041D7A3705D5055554185EB5168EBA05041CDCCCC8C475555417B14AEC7ECA05041713D0A9746555541295C8F72F7A05041713D0A8743555541E17A147EF9A0504114AE47F1425555418FC2F588FFA0504152B81E35415555415C8FC2E502A15041EC51B83E40555541AE47E12A06A15041E17A144E3F555541AE47E11A09A15041666666763E555541E17A149E0FA1504185EB51983C555541CDCCCCFC11A15041A4703DEA3B555541C3F5286C14A15041713D0A373B555541CDCCCC1C1CA15041295C8F0239555541666666761CA1504148E17AE4385555413D0AD73328A150415C8FC2F53455554185EB511829A150411F85EBA1345555415C8FC2A53CA15041000000302E555541F6285C7F3DA1504148E17A542D5555411F85EB2141A150419A9999A9295555410AD7A31043A15041666666B62755554152B81E2545A15041D7A3709D25555541CDCCCC4C47A150410AD7A37023555541EC51B87E49A15041A4703D3A2155554185EB51884BA15041E17A14AE1E55554114AE47F14DA1504114AE47B11B555541C3F5281C4FA15041D7A3703D1A555541A4703D6A51A15041000000601755554148E17A0454A15041333333231455554148E17AA454A15041713D0A47135555411F85EBD155A150417B14AEA711555541666666F656A1504148E17A1410555541B81E855B5AA15041713D0A670B5555417B14AED75CA15041A4703DFA075555418FC2F5E85DA1504114AE47810655554185EB51E85EA150411F85EB21055555410AD7A3905FA15041A4703D3A04555541AE47E19A60A15041AE47E1CA025555419A99991961A15041C3F5281C025555419A99995968A15041C3F5282CFA545541AE47E11A69A1504185EB5158F9545541F5F4325E6CA15041538AA7EBF554554153556EE367A150419B8F8A7AFA54554177D7194A61A150417497E55DFF54554183256A6A5FA15041727E710901555541951B9CE95BA15041593588A90455554161C2474259A15041F80163E8075555418913CE1656A1504165B8AC350C555541074D7F6753A150414A8EE40A1055554179C1520A50A1504108FEB9A214555541295C8F624BA1504185EB51081A555541388237EB46A1504168A2BC3E1F555541EE699E7441A15041DEC2E3BC23555541E528428B3FA15041CD365A322555554184A216F838A150416891D06629555541163FBAD333A150413C3C7A7D2C555541CFEFA0B82CA15041FD602A9E2F555541C9E7D14821A150410A8F6E803155554132EF2BF71BA15041B1E9D69832555541FA0986DA14A15041B0B35B4B345555412369B75A09A15041B526A7C3375555418993FD6002A1504108EFE31C3A5555416A94629EFDA0504183B7CDF43B555541353B1830F8A05041DE1E464B3E555541FE04E12DF2A050417CBE81314055554174D60210EEA0504130760ED642555541915A6E04EBA05041639F1D404555554175A97668E9A050412C4BB0CF46555541B564005DE5A05041398210334A555541D04CC75BE3A0504146DB4AD14B55554143EBD9E7E2A050411099AE2B4B55554132723719E5A0504123068F6A49555541D68289B1E8A050415927F64846555541BEC85DA7EAA05041954D965D445555417F98CCD1EAA050414255D23B4455554133FB5D7CEDA05041D953BC3942555541D6FA4755EEA05041294C6D9A41555541DAF838CAF1A0504189D9E49A3F555541B75E343AF7A05041E1B1A19B3D55554179209349FEA0504156583AE93A555541D4EDB0B104A1504137A735543855554180E31F3709A15041F0777BC5365555412B240BA710A15041635107A034555541ED9A312416A15041D7E54AE932555541FC890A6319A1504178BBFB403255554104E7ABFA21A15041779BB9E630555541E8B495312CA15041D8C60A142F5555416732125D34A150410984A1402B5555414ACF17BB38A15041B913CFA728555541B54499503EA15041E9B51BF02455554172F8871244A150414B6714AB20555541A306703648A15041A2180D661C5555414C55777B4CA15041A808A8BD1755554148B3057650A15041CD94B5E7125555413AFA886753A150414CFF2F270F5555417DA1327155A150415FFFDEE20B5555412DB3A7FE56A15041E7B586A709555541A36212AC59A150414EFE384006555541828F22025FA150417A87BE04005555417A051CB860A1504181C5E7CBFE54554169115DD662A15041858BA43FFD545541579CE4A565A15041977F6321FB5455414B4C21E868A15041A8F4DB51F854554142AB19E76AA15041AED1997CF6545541433FEEB16CA15041B2E33373F45455412E87E5F96EA15041C605F5C2F15455411A63B10C73A15041DEA308A1EC545541060C14F175A15041F53FA9E1E8545541E501D5DD7CA15041288811BCE0545541A0C33A8488A15041777EB4CDD25455415D1D5B3093A15041A637AF9DCA5455415D1975F595A15041AD2B6E7FC854554147131C1D9AA15041BA1179A5C5545541C89ACDA4AEA150410C014259B7545541AE0507C2B2A150411F8DBB40B45455419BC3F7BFB6A1504137BFA3E9B05455418F29CA1CB9A150414ACA6382AE5455416BF3FB38BFA15041747337F9A65455416501B0F4BFA15041717A1157A754554167648E2EBFA15041728F9F70A854554187A13670B9A1504147508491AF545541A85D2563B4A1504120A4BCF7B3545541C3BF8217AFA150410D4BAC3EB8545541DC72240FABA15041FB0A10DABA545541119DB1D4A2A15041DE91B16EC05455413E3FABED9AA15041B5362E18C654554154FD0C7E94A15041AAC61CA8CA5455416708CD1692A150419CCB8368CC54554191325ADC89A150417EEF46C3D2545541BCF0BB6C83A150414DD5E056DA545541D85219217EA1504128BDED87E0545541F59428237AA15041116BB72CE5545541118DCD3F75A15041EF160E34EB54554128DF039B70A15041CDF74007F1545541D9A5FA856CA150414FC7E7C1F5545541713D0A976CA15041000000B0F5545541333333536EA15041E17A14DEF3545541F6285C5F70A150417B14AEB7F15455418FC2F55874A15041B81E858BED54554185EB51A875A15041B81E852BEC545541E17A142E77A15041295C8F92EA5455413D0AD76378A15041D7A3704DE9545541F6285C5F79A1504152B81E45E854554148E17A047CA15041EC51B87EE55455418FC2F5387EA15041EC51B82EE3545541713D0AB780A150410AD7A390E05455415C8FC21582A150410AD7A320DF545541C3F5283C83A15041B81E85EBDD5455410000005085A15041D7A370BDDB54554114AE47F186A150417B14AE07DA545541D7A370DD87A15041F6285C0FD9545541F6285C4F8AA15041EC51B87ED65455418FC2F5388CA150415C8FC235D55455419A99992991A15041333333E3D1545541F6285CCF94A15041F6285C6FCF545541CDCCCC4C97A15041295C8FC2CD545541CDCCCC6C9DA1504148E17AA4C954554152B81E159FA15041713D0A87C854554166666656A1A15041295C8F02C754554114AE4701A3A15041333333E3C55455411F85EB61A7A150411F85EBF1C25455415C8FC2A5A8A1504185EB5118C2545541D7A370BDABA150413D0AD703C054554114AE47C1AEA15041CDCCCCFCBD545541E17A14BEB2A15041E17A144EBB545541713D0AC7BEA1504166666636B35455413D0AD793BFA15041C3F528ACB25455419A9999F9C0A15041C3F528BCB1545541A4703DAAC1A1504152B81E45B15455410AD7A350C3A150418FC2F528B0545541CDCCCCDCCAA15041D7A3706DB45455419A9999B9CBA15041A4703D6AB35455419A9999C9CEA15041B81E857BB054554152B81EE5D1A150411F85EB81AD5455410AD7A340DAA1504114AE4781A5545541D7A3700DE7A15041C3F528FC9A545541295C8F7218A25041EC51B81E72545541E9A8BAE554A250414ABD9D8329545541AC81586A57A2504156985FA0265455416371EA8F5AA25041F9D38C04235455417B14AEF764A250415C8FC215175455415C8FC2A567A250413D0AD74314545541C5311AB767A25041F211882D145455419E6EECA767A2504119D5B53C145455414ECE523E68A250413CD01414105455410DAD676268A2504151E6F4870F5455413C618F9D68A250412A8A5DAB0E54554148B5782769A25041764E16C60D545541988AACCF6AA2504136D8480C0B545541027AA99A6BA2504169CF5FBE09545541B50BFA406CA25041DA81464E0A5455415BF4E9A069A25041E0D16BE60E5455417B457B1E69A25041AB0B57CA0F545541A97ECAC968A25041D12EB42413545541BEE159F568A250415F9A3FFA12545541666666466DA25041B81E854B0E545541713D0A676EA250415C8FC2450C545541785745D56BA250414417F5E909545541699958916BA25041C38AACA8095455410D20F4BB6BA25041C439B0840954554114AE47317BA25041D7A370FDEC53554152B81E8587A250415C8FC295DF535541666666669BA25041A4703D7ACC535541EC51B87EA6A2504114AE47B1C3535541823A42D0A7A2504116FB2C2CC25355418DF8A5A4A9A250414F5F49C6BF53554185EB5168ABA25041713D0A77BD535541D7A3702DACA25041295C8FF2BC5355417B14AE17B1A2504152B81E15BA535541A6C0BCE5D2A2504169CF7CA9AF535541364D2B13CEA250418BE14B0FA0535541756D1663CAA25041E3B0EAD895535541D254AC32CAA25041794E4217955355418B26A5F8C1A2504104A1E71C7E535541A3BD6CE0BFA2504145D09C9C78535541CD07008CB8A25041DA6F5054645355419A4E4071B7A25041DC9EE26A61535541AC4606D7B6A25041506F86CD5D5355411517AA39B3A2504168C1531357535541D461076CB2A25041F452F12A555355419D5CBCDCAAA250416C024ECE55535541F662A61AA5A250413E31BC8E58535541E35A841FA2A25041B0E42C305A535541D9EFA491A0A2504101F653ED5A535541A078A5BD9DA25041300274335C535541DBAAE23797A2504110CD1B355F535541A69DB9C594A2504197B7F62C605355413D0AD73390A250417B14AEE761535541FFFF47C78BA250411EAFFA96635355413D0AD7E385A2504114AE47D1675355410AD7A3907EA2504148E17AD46C5355412C3BAF9978A25041418AB0ED6F535541D7A3702D76A25041D7A3702D7153554114AE470172A2504152B81E95735355418B685EE26DA25041F63A924C77535541C370A22F6AA25041419B7F7D7A535541BBCFB5F665A250417DA172457D5355414620649D5FA250412640471781535541C8A06C635CA25041AC6A2EF4825355412989F84859A25041C1D657B9845355411A21743657A25041B6ED0365865355416120426855A25041418580D88753554115C1A40B54A25041F835D42189535541B086F41951A25041D98294E58B5355416DD2428850A250411C50E3648C5355419811A0374DA250416738D0F38E5355415B0CDAC14AA25041933E2782905355419A8B0B2A43A25041E39EF66695535541B1A0558D3EA2504194CBD2C098535541EF1777F73CA250414CBFA7B099535541E73ACD2639A2504152AC47F99B535541D811A22C38A25041749A26809C535541692AF84C36A2504187D2EA3A9E53554190489D6334A250417CFDA06FA0535541BBF215AE32A25041E1A05644A25355413B20E65431A25041D2516F98A35355418517501B30A25041304FC06EA4535541E147D2DD2DA250411AF6E058A6535541684DE26E29A25041A20A2223AB535541311BF03D27A25041E91888D6AD535541FF4569E524A25041086938B8AF53554172D4BC4220A2504164D59A6CB25355410861499A16A25041925E502FB75355414A6F0D5B15A25041F02F44ACB7535541DF21BD4814A2504119492B27B85355417C785A9511A25041C5C42846B9535541A98893300FA250412574FC9BB9535541548CF33B0CA2504128F841EAB95355415E05215607A250413AE6407FBB535541D152C1E102A25041785DA09DBD53554153EC4314FFA1504148B194FABF535541EFA0C0DFFBA150410BD4A049C25355418EB70DC7F8A15041AE5EE84AC3535541BF63196AF6A15041BD79E2E3C35355412195A0C8EFA15041E1547575C5535541662066FBEAA15041F35C7861C65355416FC91E43E2A15041A04DB1B8CA5355413AF8B26CDBA15041E3ABBC2DCE53554132F94DA9D6A150410FA14499D05355419C07037ED3A1504110751F24D2535541CEEBBC79D1A150413FF74C22D3535541F3AA2F29CFA15041B5650ABFD3535541133180FBCBA15041AD0D7C7AD4535541EA07B7B3C6A15041637D411FD553554168AFE1A9C0A15041537E4A4BD6535541C4352B1DBFA15041D6A183C8D653554140632CE6BBA15041EAABAFDFD7535541B8D5453CBAA15041A304DE51D85355418BE0BDD0B7A15041569D34B4D85355410F468D02B6A150414FFEB4D1D8535541789B565CB2A15041F7500983D8535541791561EAACA15041739D677ED753554126A1BA98A7A150417BD05EE7D65355412A15BB0CA0A150411C78F7A4D6535541E14627E999A15041BB9F8F99D6535541C69F0BB78CA1504190F0E0C2D6535541DB00C55587A1504198ADAD26D75355414C7308F685A15041A82BAB49D7535541950FBDF282A15041629009DCD7535541206D90DF7BA15041A8A4F36AD95355416D639E9A79A150417A5A190ADA5355413DB0E71475A15041B97C1A79DB53554147EABB8C70A15041F6EDA634DD53554129A4E74D70A15041F4838053DD535541D615F7766EA15041FD800D00DE535541726B16C46CA15041A8B413ABDE535541954502A169A15041C6B2EE13E053554117C04C0C68A15041DC5EB7CDE0535541EFFB3DD965A15041762AECF0E1535541C013693763A150413E84C85CE353554177FCB2C460A150418AD10EA9E453554196F7C4A05DA150416DC32E4FE65355419C92E6B35AA15041466607F3E7535541A2B7578659A150419907B69AE8535541713D0A7759A1504114AE47B1E8535541D7A370CD56A1504185EB5158ED535541713D0A2756A15041A4703D7AEE535541B81E85CB52A15041EC51B89EF35355411F85EB114DA150418FC2F5F8FC5355418FC2F5484AA15041CDCCCC2C035455411F85EB9145A150417B14AE870D5455419A9999293EA150413D0AD7E31D545541AE47E11A3DA15041CDCCCC4C205455416666667666A15041C3F5287C655455411F85EB51D0A150418FC2F5389254554114DEAD56D0A15041CB24D13A925455410A03416DD3A150410645962A8E545541F841EBB9D6A1504123085F7B89545541E3876F64DAA15041372C936885545541D32B6B88DBA150413DD474C783545541C2CB8071DFA1504158E8815B80545541AEDE9BEDE1A1504160F341F47D545541A062495FE4A150416E6F94827B54554193C6A81EE8A150418BB3162276545541815130EEEAA150419D746CD5725455417AC729A4ECA15041A31C4E347154554165571834F1A15041C604CCF76C5455413951BF5BF5A15041FFB9E08C675455411D243E73FAA1504117A4D1ED61545541FB852A95FFA150413649BF295D545541E286AB1A04A2504149D538115A545541B2028D160CA25041635571DA545455417EA3238514A2504195D2B5804C5455417EED8D6A15A250419D5CBCCA4A545541612AC5191AA25041C40AF7014554554156A7982D1CA25041D28649904254554145FD43311FA25041E9D60C4E3F5455412D4AA23923A25041FFA7895A3B54554105508A7F29A250412066EBEA34545541E88A4E912FA2504142BA94E32E545541D75F404633A250414D0A58A12B545541CA79352036A250415F7FD0D1285455419731CD453EA2504191FC14782054554169C4AFF845A25041C4F89FCF1854554129E2197B50A25041FCD35BEF0D545541171F512A55A250411801DDD708545541F90FAB565AA250413EAF170F03545541C7DE433362A250417935A9B0F9535541C0A01A6C63A250417CAF88A1F8535541BA2D15D964A250418D59DD9DF5535541AFAAE8EC66A25041997251F2F3535541813DCB9F6EA25041C1B8462FED5355417685C2E770A25041D1CAE025EB5355415943B3E574A25041EB9483D4E6535541408E9E507AA250410D6AE61BE0535541219DD3917FA250413D844C88D85355411BF5F13281A2504143ADE735D65355410B64118B82A250414FFB3756D4535541F8D5240687A2504165CCB462D0535541E7AC895889A2504171D09A9DCD535541DCDD7FE98BA2504197B3B1A0C7535541CCCBE5F28DA25041BE2C100CC2535541D386E2CD8EA25041BEAF3CF8BF535541BBA0D7A791A25041E80AC04EBA535541AA2B5F7794A25041FF5CF6A9B55355419DC60DA096A250411C6C9C7DB0535541E394713298A25041EFD8DBAFAB5355419BAD994B98A2504147DE208BAA535541C7A7B89A98A25041A4D27CCBA853554150E468E899A25041C250A49EA45355412E9BD0169BA25041749C551DA25355418D58B4749BA25041B750C7F7A15355418FC2F5987DA250418FC2F548AD53554114AE47016DA25041B81E85DBB05355418FC2F5A84CA250417B14AE87CB535541B81E850B2FA25041B81E853BDA535541B81E858B24A25041E17A142EC453554114AE47412FA250415C8FC225BB535541295C8FB23CA25041333333A3B45355413333333347A2504100000020AE535541C3F5282C53A250419A9999B9A5535541E17A148E63A250417B14AED79F5355410AD7A3E076A25041666666F6995355417B14AEC789A2504185EB51B8905355411F85EB119DA25041E17A140E88535541713D0AF7A4A25041B81E85BB85535541E17A14FEA9A25041CDCCCC8C84535541713D0AF7C0A250419A9999397F53554114AE47E1C6A25041AE47E10A93535541713D0AF7B2A25041666666569A535541C3F528DCA3A2504185EB51C89E5355416D82FB7E9CA250410A28DA92A1535541010300000001000000040000001AAC74A8B2A25041089D234F5353554192C13EF3B2A25041425CD8E253535541D4DDEF03B3A25041532D98DE535355411AAC74A8B2A25041089D234F53535541010300000001000000040000001D91EF1258A2504105DCD4131A5355413C2510D05AA25041E758D8AD17535541426B4F1C58A250413D3182081A5355411D91EF1258A2504105DCD4131A53554101030000000100000031000000B6C3DB68B9A25041CD678CAA3E53554114AE4771BBA25041000000A03953554114AE4751B6A2504114AE472139535541295C8F42ACA25041B81E857B35535541D7A370BDA6A250417B14AEE7335355417B14AE179CA250415C8FC2D531535541F6285CCF9AA25041E17A14AE355355413D0AD76395A25041C3F5289C3353554185EB51A890A25041295C8F6235535541544807108BA2504153AE70CE345355418FC2F5C887A250413D0AD7C32F53554114AE47318EA25041E17A141E3353554148E17AA491A250410AD7A3E02E535541E17A14DE88A25041F6285CEF2A53554114AE473180A250410AD7A3502C535541D7A3700D7CA25041666666F6285355418FC2F53877A25041AE47E11A26535541EC51B86E76A25041713D0AA7225355419A9999E969A25041666666D61C5355413333330363A25041295C8F6220535541B81E85DB5FA25041E17A14FE1F535541CDCCCC3C61A25041295C8F421B5355415C8FC2C565A2504133333383175355411F85EBA169A250416666666617535541713D0A5766A25041666666160B535541666666665DA2504133333383155355416C4814A75AA25041A9E00BDE17535541FE12ADEF56A25041AD0F6FCF1C535541C15FA13454A25041356D94C420535541AE9FBE0353A25041923CD9D822535541657E642852A250410B95207226535541605F886152A250414C15127729535541BFD8D8E454A25041627F1B552E53554163371C1758A25041DAEDCE4C305355419DA4F58D60A250419E6976913153554107612AD867A250419D026CD331535541777687F173A25041F0401166325355414D563D1A7AA250419B95485233535541CB7CAE6188A250417D46DAAD34535541CAE7F06C90A250418AEC1ECB35535541D117692296A25041424424AB36535541D25BD7379AA2504134B07E8037535541432D99029EA25041AA8E85A038535541D6D5F2B79EA25041881587E0385355413C85FD77A0A250416C4B344B395355412E35C662A5A25041E4C491A03A5355418851A74DAEA25041F21CF6153D5355410A741C83B3A25041A9D9A4C03D535541B6C3DB68B9A25041CD678CAA3E53554101030000000100000005000000C574E116B9A250411B8AD6753F535541B3E09318B9A25041499D04763F535541133FEB6DB9A25041331D55AB3E535541B6C3DB68B9A25041CD678CAA3E535541C574E116B9A250411B8AD6753F5355410103000000010000000400000091376FF667A25041270C33EE1354554186A4DC3268A25041B06A5AC7135455417D2DE04F68A25041545CEE981354554191376FF667A25041270C33EE1354554101030000000100000097000000D0E5578659A150417CC3B59AE8535541C952CEBB5AA150410B24CBEEE6535541884C98535DA1504188FC6D7EE553554128E908E75EA150410B636A96E45355411A4DD32163A1504149B18C6EE253554134CA048268A15041B74818B2DF535541B348AC7C6EA15041BDFA7C07DD5355419AE4B01471A150414C608811DC5355411AA702D273A1504164FC62EEDA535541B256A10179A1504186FD6057D95355415F90FA027AA1504110ADB80BD95355413D5489357BA15041E042E2A9D8535541F0AE4A327DA1504104168641D8535541A54BBD937FA1504113F175D6D75355419375F4E881A15041FA733C5DD753554103F9461786A150417DAEFA9FD6535541C453D5FF87A150411E7E4A4BD65355415FD61D5989A1504192DDF741D6535541B4BFBDB98AA1504165ED2724D6535541AC90B2338DA150419E39350CD653554161F3585693A15041FA085DCFD553554174577E3796A1504114F27BDED5535541E1389B5AA1A1504144C91ED0D55355412608F08DA5A15041965C05FDD5535541F63157D7A8A1504112B0AD2AD6535541AAC3822AAAA15041A5C6DB5ED65355412667917DACA15041CA2A38BDD65355417781732CAEA150412AEEAEF9D65355419288DBDBB3A150419480DCDBD7535541051C7E99B6A15041C33CD206D85355410CFFEF14BAA150418DBEDBA0D7535541F0073230C1A15041688B5470D5535541CC571139C4A1504159E4D1A1D453554118391167C5A1504139B4AB75D45355417DE62E36CDA1504193437853D35355417A93F8C8CDA150412AA88B2FD3535541AA364BD9CFA15041FA3DB5CDD253554193D59F9ED3A15041D1C7BE25D15355418E45AC08DBA1504124A35E53CD53554119963B05EBA1504189CA4A7FC55355411AD39F8DEFA150412A381D9DC45355415D6DA2BAF6A150416104E428C3535541BE13734CFAA150410741E81FC25355415D478586FEA150416E658F63BF5355414F09E5CC02A25041D13FA072BC535541C8314AFC06A2504145C2EFADBA5355419934A16709A25041CA07B3E2B953554120DE46590AA250412574FC9BB95355414CFC534A0FA25041024424B0B85355410423CACE12A25041F4499507B85355413C6C60B416A25041CA9AC1FCB553554109D341F719A25041A3F26775B453554139E385ED1FA25041791CA959B15355419503E87425A25041C7ED3A99AE53554179556D0B2AA2504162305E26A95355416F3C8A882DA250415BCABD8DA55355413B20E65431A25041B2998793A25355412467FAFD31A25041054DAE16A25355416041B76433A25041E4133268A05355414F69D26D35A25041C270075E9E535541567CC76F37A25041BF3E04639C535541D9FE5B593AA25041FC40686B9A535541FCCE88013DA250419C3812E798535541414B51FB3FA2504182DE800A9753554182C8209442A2504199BC3F2595535541C318C9FC45A25041589386C4925355413FF9A0AC47A250417FAE0D8791535541279F01F648A250411D2D5CC890535541576DAB614DA25041126361EF8D5355416E4BEA5050A25041B6849B628B5355412B1BB35F51A250413E9A03788A535541DFF0ABE553A250415B9D75278853554149A1891958A250410367829384535541E743C4C159A25041E1504D9A83535541A4036F8E5DA250419F29EC5E81535541C7AF08D860A25041824A89707F535541A640689367A2504180223B777B5355417D9BB8496CA25041705F478B775355416B451D966DA25041994FAD7E765355411C3D210071A250416EAB514273535541FB43CEEC74A2504155B4C33971535541074AA3B779A250412D609DA16E53554114ADBD6D7DA25041EC8561816C53554145B24F8981A25041F34C5A176A535541F757D3AB84A25041322F72DB67535541F3C6CB188AA250413BEC7490635355417B14AE478CA250416666667662535541EE6B30818EA25041079DCAAD61535541D6D1089890A250414F4312DD605355414E520D2E91A250414D7575BC6053554108B2FB0699A250415E19AB935D535541943F290F9CA250410A93965A5C53554118C45155A1A250418A856DE859535541FEFDD62FA4A25041A3DD1361585355416C80ED1DA7A250418CA497B25653554193F1DC4EA9A2504192A38E86555355418021543BADA25041BFB8B38E545355414AEE0D95B2A2504190AC93485353554185EB51C8B1A2504148E17A9451535541C574E116B9A250411B8AD6753F535541A24B7298B3A250412AB8ABE03E535541B9220A83B0A2504199AAA8603E535541485148B8ACA2504111024FAB3D535541F7FF35B8A9A2504159AA49CB3C5355410E935F8DA2A250411DD9E6953A535541C4E9E8179DA250413C9C882039535541DA9EC9F797A25041CC87D4953753554148D04A908DA250410CC7984A36535541E659490784A250411703770A35535541308F0C1978A2504161762ADE335355411E8B4CBD6FA25041C901FDE03253554197F615336EA2504158CC86D632535541BB75A50268A250417CBBC4B432535541613382E061A2504167721A5C32535541257D962F5CA250413779C2F43153554185EB51A857A25041713D0A073153554188F5659854A250417BAABB072F53554124A09B1252A25041E47EAA9E2B53554196A8051E51A250416A7D976F275355410E9E0DAC51A250415217C02625535541BAAD002E52A250416145974F2353554188A8974153A25041AA4824C2205355417B86CDE353A25041494C0CAC1F535541B1A45E5155A250410B911B5B1D535541018CE36256A25041A131AE1D1C535541F8E1201058A250417E384A161A5355415C8FC2A54EA2504185EB5128225355419A9999194CA25041E17A140E2553554185EB51D831A25041B81E850B2D5355417B14AEF730A2504185EB51781E535541333333A332A25041295C8FA214535541A4703D5A30A25041A4703DCA12535541CDCCCCBC2FA25041295C8FB20D535541E17A140E0DA250411F85EB8110535541333333E3F2A1504152B81E5510535541295C8F12EBA15041333333D3115355415C8FC2B5E0A15041AE47E1FA0F535541B81E85EBDDA150413D0AD7631053554182F3B5ADC8A15041802E569945535541F5004C9FC5A150411FD5D5524F535541670399C9BFA15041C32422F05C535541CDFA9C2CB7A1504187BBBE8D6F535541A53B3EBAADA1504130A98E477E5355412518163AABA15041C408BE00835355416350BB2A99A1504197C035F49D535541776646FF8BA15041FC0F38F1AC5355417AC5130183A15041D90AB98AB753554169A3808376A15041DA4EC4D9C5535541250874A266A15041087E2D88D8535541CDCCCC9C5AA1504100000000E7535541D0E5578659A150417CC3B59AE8535541
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000D961F3BB23A15041BEDA451BDF545541C5A362BC2FA15041AB8B4C76DF545541A3D1413B41A15041127F52F2DF545541182F44934CA1504177147043E05455416ACFA4215AA15041F9BAFFA8E054554127FCE4675AA15041586671ABE0545541683B9D9E5FA15041AC4D3629E15455412C48CF7F62A15041515FAD6EE15455411ACA71A369A15041C0AAE41AE254554170FF44156FA15041EE18DA27E35455410681062E6FA150416C9FAC2DE3545541E8F2917571A15041351E2952E05455411011DE6D6FA15041BF9EEC07E05455414C79620A6EA15041000F05D6DF54554191BA232A6AA150410723B94ADF5455412FE0ED0B5CA150415265574FDD54554125F241905AA1504183850A1ADD545541BEADDB924CA1504192A832FADC545541F5CD19534BA1504121799BF7DC5455419CD06B9449A15041DFA6F3EFDC54554157F4062A48A15041FD4D52E5DC545541303F74FE3EA1504192EBE7B9DC545541E44F68D231A15041FA2F47ADDC545541D3F688552FA150417EA0E4AADC545541967BFD722CA15041349820A8DC545541A1A884422BA150414219A1A7DC545541D54E8E072BA1504158F916AADC5455414518C82C23A15041856DFFFDDC5455415FF4D2F822A150413E6284F9DC545541D961F3BB23A15041BEDA451BDF545541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>253498 - 3178797
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -231 </desc>
+<a>
+010600000001000000010300000003000000400000001A93D334AEB65041DB7C0E7DF6255541068AFD37AEB650419CDFCF7BF625554183DD713FAEB65041E432E178F62555416E1A519AB6B65041B4698B55F325554187984894CDB650410510C568EA2555413305F4E1CEB65041DD54D276E9255541DB3CA09FD1B650412FD19B66E7255541B9C61AB1D4B650410634142EE525554180EA8899DAB65041C8A5B57BE1255541D934CFC7DEB65041FCD02BE5DF255541A1085564E3B65041B66AC124DE25554194CA6778EAB65041A492205FDB2555418702ACFDF0B65041671FA6ECD8255541A1E54711F3B65041031BEF34DC25554133333343F6B65041CDCCCC3CDB255541E17A145EFEB65041295C8FE2D725554185EB510808B750415C8FC2E5D2255541A4703D3A0BB750411F85EBD1D225554148E17A940EB75041A4703DBAD1255541A4703D7A12B75041713D0A07D12555417B14AE3716B7504185EB5128CF2555416666666618B7504185EB5188CE25554114AE47811AB750418FC2F548CD255541713D0A171EB7504166666656CB2555411F85EB8120B75041A4703D1ACB255541F6285C3F24B75041E17A14CECB255541E17A140E27B750410AD7A310CE255541000000F029B75041295C8F42D1255541AE47E10A2CB75041AE47E11AD1255541666666862DB750417B14AEC7CF255541E17A14FE2DB75041CDCCCCFCCD2555410AD7A3A02FB7504114AE4781CC255541EC51B8FE30B750419A999959CB255541B81E856B31B7504148E17A84C7255541AE47E14A33B750419A9999B9C52555410AD7A34036B75041F6285CFFC2255541713D0A6737B7504185EB5168C12555419A9999D934B75041713D0AD7BC255541B81E850B32B75041A4703D7ABE2555418FC2F5782FB75041E17A143EBE2555419A9999E92DB7504166666676BD2555413333339310B750415C8FC2E5C82555411F85EB0106B7504148E17AD4CD25554133333393FCB650415C8FC295D225554133333343F6B65041C3F5288CD5255541713D0A07F0B65041295C8FE2D7255541EC51B8DEE9B6504152B81EC5DA25554183A25978E3B65041C4F00815DD25554166666666E3B65041B81E851BDD255541C3F528BCDFB65041713D0AA7DD255541C3F5288CCDB650410AD7A330E4255541B63DE68FBBB6504121F07EFDE9255541B63DE68FBBB65041F82624A8EC255541B884C96CB8B65041BC102804EE255541B66CFE47B6B65041DD33F17AEF2555418ED2BBAAB3B6504140CC6497EE255541295C8FB2B2B650415C8FC245EC255541F6285C2FA0B65041D7A3702DF1255541713D0A27A2B65041A4703DBAF5255541F6285C1FA4B65041AE47E14AFA255541D7A370CDA5B650418FC2F5B8F9255541B8F5CBCDA5B65041D88DC5BAF925554114FA0219A7B65041F1EBE948F92555411A93D334AEB65041DB7C0E7DF625554109000000295C8F92AFB650419A9999D9F32555419A9999E9AFB65041F6285CAFF2255541F6285C7FB0B6504148E17AF4F12555417B14AEC7B2B6504185EB51E8F12555418FC2F548B4B65041295C8F32F22555413D0AD793B4B6504148E17A44F3255541B81E85BBB2B650410AD7A330F4255541295C8FE2B0B650417B14AE87F4255541295C8F92AFB650419A9999D9F32555410F000000DE93890DA9B65041B53B7E6DF72555417D42F9CDA6B65041069F1B60F7255541369DB8DEA4B65041E01CA4E7F62555419A9999E9A3B65041AE47E1CAF5255541F6285C9FA3B650415C8FC255F425554114AE4741A4B65041EC51B81EF32555417B14AE77A5B65041295C8FA2F2255541CDCCCCECA6B650410AD7A350F32555417B14AE17A8B65041EC51B88EF3255541713D0A67A9B650410AD7A350F3255541713D0A47AAB650417B14AEC7F225554120DA1BFBABB650413926D3B8F2255541868A5A3CADB65041ABAC3922F4255541E1AB5432ABB65041760DB7A4F6255541DE93890DA9B65041B53B7E6DF7255541
+</a>
+
+<b>
+0106000000010000000103000000010000005D000000416C005CADB65041099FB5ECF6255541FC11B153AAB6504120D4411AF8255541BA7018CFA9B650413264AB4EF8255541578E965CA8B65041DC4325E1F8255541E245D9B8A6B650416B77F869F925554190FB71CDA5B650415B94FCB8F9255541713D0A37A6B6504114AE47D1FB25554166666686A6B65041CDCCCCFCFC255541A4703D8AA7B6504100000000FE25554152B81E55A9B65041CDCCCCFCFC255541F6285C6FABB6504152B81E85FC255541E17A14EEADB650418FC2F5F8FB25554148E17A94B0B650419A999959FB255541333333C3B2B65041E17A14CEFA255541E17A14DEB4B6504166666656FA2555413D0AD713B9B65041AE47E12AF9255541D7A3706DBCB6504133333363F825554166666656C1B650413D0AD773F725554114AE47C1C3B6504148E17AD4F62555410AD7A3B0C4B6504185EB5198F62555413D0AD7A3C4B65041A4703DEAF225554148E17A04D2B65041666666C6EC255541A4703D0AD1B650417B14AED7EA255541E17A144ED1B650411F85EB51E92555410AD7A340D2B6504100000080E9255541B81E85BBD3B65041C3F528BCE9255541D7A370EDD6B65041CDCCCC1CE92555410AD7A330D9B650418FC2F518E8255541AE47E1EADBB650419A999929E7255541CDCCCCCCDEB65041295C8F12E6255541333333C3E1B65041AE47E1AAE4255541D7A3701DE5B65041B81E85BBE3255541000000C0E6B65041C3F5281CE325554166666606EAB6504114AE4751E125554114AE47D1EBB650418FC2F528E125554148E17A74EDB65041A4703D4ADF255541713D0AB7EFB65041295C8FD2DE2555415C8FC2E5F1B65041F6285C2FDD2555413D0AD743F3B65041666666D6DC255541D2C2E944F3B65041AD8818D1DC255541E7112B1FF3B65041BC88DF95DC2555411289C2A8F2B65041F39B36C7DB25554168B00CB4F1B650411BCFB11BDA2555412AB61721F1B65041B8116619D9255541A9058458E8B65041864DAA8FDC255541A5E2357DE6B650416902C14BDD255541DDE910F9E3B650417FF0A74ADE255541B1072A2CE3B650410A973E94DE255541757F0C63E2B650412B7435E3DE2555413AB446FBDFB65041B515FBD4DF25554111140383DFB65041254A3304E02555416B5501EFDCB65041B3105707E1255541AC312E2DDCB65041A81F7153E1255541C3C86083DBB65041B2DEFF98E12555416A81608ADAB650414BECD8F5E1255541B310B674D9B650411CE863ADE225554136C6D470D7B650412EA48901E4255541319F2461D7B65041E219D90BE4255541B03C0456D5B65041170EA763E5255541FAAAC759D3B6504174D7ABB1E62555416F4B6225D1B650412FA63A26E82555417E3B6612D1B6504116FF6F35E8255541C26771EDD0B6504157F80A53E82555419228B04AD0B65041BACA45DFE8255541B69B4377CFB6504131906F95E9255541912BD44BCFB650414A15DCBAE9255541BDC7D741CFB65041BF96BEC0E9255541F5A4063CCFB65041BA262CC4E92555410C2C175ACDB65041C5C65F7FEA255541FA24D83DCDB65041A093588AEA255541355C095BCCB65041AE5272E2EA2555413CA0CB1DCCB6504172233CFAEA2555415C4FBA06CBB65041CA9AA266EB2555417467C118CAB65041418D12C3EB25554100911DDEC8B6504162544A3DEC255541369CECA7C7B6504147B9C7B5EC255541D3CBBF85C6B65041C8B57E26ED2555413A69ED4CC6B650414A11913CED255541BCE80A1BC3B650416578437AEE25554193B49111C3B650417982F17DEE25554170BD7F81C2B6504173D6E7B5EE2555417A771C2CC1B65041186A833AEF2555410AD3DC55C0B65041BA47BC8DEF255541A272FA43BFB650413D501FF8EF25554139F5BDA1BCB650413A5205FEF0255541FBF74BDBBAB650417B538BAEF12555415C0E8BCAB9B65041BEEB7D18F225554165AFD2F0B7B650418D9F80D0F2255541175AC8DBB4B6504175BDFE02F4255541BA9B8EC5B4B650411ED9A00BF4255541511B8FD8B3B65041DFEAAF67F4255541BEC0CBF6B0B65041CF2A7586F5255541416C005CADB65041099FB5ECF6255541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>253498 - 3579146
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -231 </desc>
+<a>
+010600000001000000010300000003000000400000001A93D334AEB65041DB7C0E7DF6255541068AFD37AEB650419CDFCF7BF625554183DD713FAEB65041E432E178F62555416E1A519AB6B65041B4698B55F325554187984894CDB650410510C568EA2555413305F4E1CEB65041DD54D276E9255541DB3CA09FD1B650412FD19B66E7255541B9C61AB1D4B650410634142EE525554180EA8899DAB65041C8A5B57BE1255541D934CFC7DEB65041FCD02BE5DF255541A1085564E3B65041B66AC124DE25554194CA6778EAB65041A492205FDB2555418702ACFDF0B65041671FA6ECD8255541A1E54711F3B65041031BEF34DC25554133333343F6B65041CDCCCC3CDB255541E17A145EFEB65041295C8FE2D725554185EB510808B750415C8FC2E5D2255541A4703D3A0BB750411F85EBD1D225554148E17A940EB75041A4703DBAD1255541A4703D7A12B75041713D0A07D12555417B14AE3716B7504185EB5128CF2555416666666618B7504185EB5188CE25554114AE47811AB750418FC2F548CD255541713D0A171EB7504166666656CB2555411F85EB8120B75041A4703D1ACB255541F6285C3F24B75041E17A14CECB255541E17A140E27B750410AD7A310CE255541000000F029B75041295C8F42D1255541AE47E10A2CB75041AE47E11AD1255541666666862DB750417B14AEC7CF255541E17A14FE2DB75041CDCCCCFCCD2555410AD7A3A02FB7504114AE4781CC255541EC51B8FE30B750419A999959CB255541B81E856B31B7504148E17A84C7255541AE47E14A33B750419A9999B9C52555410AD7A34036B75041F6285CFFC2255541713D0A6737B7504185EB5168C12555419A9999D934B75041713D0AD7BC255541B81E850B32B75041A4703D7ABE2555418FC2F5782FB75041E17A143EBE2555419A9999E92DB7504166666676BD2555413333339310B750415C8FC2E5C82555411F85EB0106B7504148E17AD4CD25554133333393FCB650415C8FC295D225554133333343F6B65041C3F5288CD5255541713D0A07F0B65041295C8FE2D7255541EC51B8DEE9B6504152B81EC5DA25554183A25978E3B65041C4F00815DD25554166666666E3B65041B81E851BDD255541C3F528BCDFB65041713D0AA7DD255541C3F5288CCDB650410AD7A330E4255541B63DE68FBBB6504121F07EFDE9255541B63DE68FBBB65041F82624A8EC255541B884C96CB8B65041BC102804EE255541B66CFE47B6B65041DD33F17AEF2555418ED2BBAAB3B6504140CC6497EE255541295C8FB2B2B650415C8FC245EC255541F6285C2FA0B65041D7A3702DF1255541713D0A27A2B65041A4703DBAF5255541F6285C1FA4B65041AE47E14AFA255541D7A370CDA5B650418FC2F5B8F9255541B8F5CBCDA5B65041D88DC5BAF925554114FA0219A7B65041F1EBE948F92555411A93D334AEB65041DB7C0E7DF625554109000000295C8F92AFB650419A9999D9F32555419A9999E9AFB65041F6285CAFF2255541F6285C7FB0B6504148E17AF4F12555417B14AEC7B2B6504185EB51E8F12555418FC2F548B4B65041295C8F32F22555413D0AD793B4B6504148E17A44F3255541B81E85BBB2B650410AD7A330F4255541295C8FE2B0B650417B14AE87F4255541295C8F92AFB650419A9999D9F32555410F000000DE93890DA9B65041B53B7E6DF72555417D42F9CDA6B65041069F1B60F7255541369DB8DEA4B65041E01CA4E7F62555419A9999E9A3B65041AE47E1CAF5255541F6285C9FA3B650415C8FC255F425554114AE4741A4B65041EC51B81EF32555417B14AE77A5B65041295C8FA2F2255541CDCCCCECA6B650410AD7A350F32555417B14AE17A8B65041EC51B88EF3255541713D0A67A9B650410AD7A350F3255541713D0A47AAB650417B14AEC7F225554120DA1BFBABB650413926D3B8F2255541868A5A3CADB65041ABAC3922F4255541E1AB5432ABB65041760DB7A4F6255541DE93890DA9B65041B53B7E6DF7255541
+</a>
+
+<b>
+0106000000010000000103000000010000005D000000416C005CADB65041099FB5ECF6255541FC11B153AAB6504120D4411AF8255541BA7018CFA9B650413264AB4EF8255541578E965CA8B65041DC4325E1F8255541E245D9B8A6B650416B77F869F925554190FB71CDA5B650415B94FCB8F9255541713D0A37A6B6504114AE47D1FB25554166666686A6B65041CDCCCCFCFC255541A4703D8AA7B6504100000000FE25554152B81E55A9B65041CDCCCCFCFC255541F6285C6FABB6504152B81E85FC255541E17A14EEADB650418FC2F5F8FB25554148E17A94B0B650419A999959FB255541333333C3B2B65041E17A14CEFA255541E17A14DEB4B6504166666656FA2555413D0AD713B9B65041AE47E12AF9255541D7A3706DBCB6504133333363F825554166666656C1B650413D0AD773F725554114AE47C1C3B6504148E17AD4F62555410AD7A3B0C4B6504185EB5198F62555413D0AD7A3C4B65041A4703DEAF225554148E17A04D2B65041666666C6EC255541A4703D0AD1B650417B14AED7EA255541E17A144ED1B650411F85EB51E92555410AD7A340D2B6504100000080E9255541B81E85BBD3B65041C3F528BCE9255541D7A370EDD6B65041CDCCCC1CE92555410AD7A330D9B650418FC2F518E8255541AE47E1EADBB650419A999929E7255541CDCCCCCCDEB65041295C8F12E6255541333333C3E1B65041AE47E1AAE4255541D7A3701DE5B65041B81E85BBE3255541000000C0E6B65041C3F5281CE325554166666606EAB6504114AE4751E125554114AE47D1EBB650418FC2F528E125554148E17A74EDB65041A4703D4ADF255541713D0AB7EFB65041295C8FD2DE2555415C8FC2E5F1B65041F6285C2FDD2555413D0AD743F3B65041666666D6DC255541D2C2E944F3B65041AD8818D1DC255541E7112B1FF3B65041BC88DF95DC2555411289C2A8F2B65041F39B36C7DB25554168B00CB4F1B650411BCFB11BDA2555412AB61721F1B65041B8116619D9255541A9058458E8B65041864DAA8FDC255541A5E2357DE6B650416902C14BDD255541DDE910F9E3B650417FF0A74ADE255541B1072A2CE3B650410A973E94DE255541757F0C63E2B650412B7435E3DE2555413AB446FBDFB65041B515FBD4DF25554111140383DFB65041254A3304E02555416B5501EFDCB65041B3105707E1255541AC312E2DDCB65041A81F7153E1255541C3C86083DBB65041B2DEFF98E12555416A81608ADAB650414BECD8F5E1255541B310B674D9B650411CE863ADE225554136C6D470D7B650412EA48901E4255541319F2461D7B65041E219D90BE4255541B03C0456D5B65041170EA763E5255541FAAAC759D3B6504174D7ABB1E62555416F4B6225D1B650412FA63A26E82555417E3B6612D1B6504116FF6F35E8255541C26771EDD0B6504157F80A53E82555419228B04AD0B65041BACA45DFE8255541B69B4377CFB6504131906F95E9255541912BD44BCFB650414A15DCBAE9255541BDC7D741CFB65041BF96BEC0E9255541F5A4063CCFB65041BA262CC4E92555410C2C175ACDB65041C5C65F7FEA255541FA24D83DCDB65041A093588AEA255541355C095BCCB65041AE5272E2EA2555413CA0CB1DCCB6504172233CFAEA2555415C4FBA06CBB65041CA9AA266EB2555417467C118CAB65041418D12C3EB25554100911DDEC8B6504162544A3DEC255541369CECA7C7B6504147B9C7B5EC255541D3CBBF85C6B65041C8B57E26ED2555413A69ED4CC6B650414A11913CED255541BCE80A1BC3B650416578437AEE25554193B49111C3B650417982F17DEE25554170BD7F81C2B6504173D6E7B5EE2555417A771C2CC1B65041186A833AEF2555410AD3DC55C0B65041BA47BC8DEF255541A272FA43BFB650413D501FF8EF25554139F5BDA1BCB650413A5205FEF0255541FBF74BDBBAB650417B538BAEF12555415C0E8BCAB9B65041BEEB7D18F225554165AFD2F0B7B650418D9F80D0F2255541175AC8DBB4B6504175BDFE02F4255541BA9B8EC5B4B650411ED9A00BF4255541511B8FD8B3B65041DFEAAF67F4255541BEC0CBF6B0B65041CF2A7586F5255541416C005CADB65041099FB5ECF6255541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>253498 - 404712
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -231 </desc>
+<a>
+010600000001000000010300000003000000400000001A93D334AEB65041DB7C0E7DF6255541068AFD37AEB650419CDFCF7BF625554183DD713FAEB65041E432E178F62555416E1A519AB6B65041B4698B55F325554187984894CDB650410510C568EA2555413305F4E1CEB65041DD54D276E9255541DB3CA09FD1B650412FD19B66E7255541B9C61AB1D4B650410634142EE525554180EA8899DAB65041C8A5B57BE1255541D934CFC7DEB65041FCD02BE5DF255541A1085564E3B65041B66AC124DE25554194CA6778EAB65041A492205FDB2555418702ACFDF0B65041671FA6ECD8255541A1E54711F3B65041031BEF34DC25554133333343F6B65041CDCCCC3CDB255541E17A145EFEB65041295C8FE2D725554185EB510808B750415C8FC2E5D2255541A4703D3A0BB750411F85EBD1D225554148E17A940EB75041A4703DBAD1255541A4703D7A12B75041713D0A07D12555417B14AE3716B7504185EB5128CF2555416666666618B7504185EB5188CE25554114AE47811AB750418FC2F548CD255541713D0A171EB7504166666656CB2555411F85EB8120B75041A4703D1ACB255541F6285C3F24B75041E17A14CECB255541E17A140E27B750410AD7A310CE255541000000F029B75041295C8F42D1255541AE47E10A2CB75041AE47E11AD1255541666666862DB750417B14AEC7CF255541E17A14FE2DB75041CDCCCCFCCD2555410AD7A3A02FB7504114AE4781CC255541EC51B8FE30B750419A999959CB255541B81E856B31B7504148E17A84C7255541AE47E14A33B750419A9999B9C52555410AD7A34036B75041F6285CFFC2255541713D0A6737B7504185EB5168C12555419A9999D934B75041713D0AD7BC255541B81E850B32B75041A4703D7ABE2555418FC2F5782FB75041E17A143EBE2555419A9999E92DB7504166666676BD2555413333339310B750415C8FC2E5C82555411F85EB0106B7504148E17AD4CD25554133333393FCB650415C8FC295D225554133333343F6B65041C3F5288CD5255541713D0A07F0B65041295C8FE2D7255541EC51B8DEE9B6504152B81EC5DA25554183A25978E3B65041C4F00815DD25554166666666E3B65041B81E851BDD255541C3F528BCDFB65041713D0AA7DD255541C3F5288CCDB650410AD7A330E4255541B63DE68FBBB6504121F07EFDE9255541B63DE68FBBB65041F82624A8EC255541B884C96CB8B65041BC102804EE255541B66CFE47B6B65041DD33F17AEF2555418ED2BBAAB3B6504140CC6497EE255541295C8FB2B2B650415C8FC245EC255541F6285C2FA0B65041D7A3702DF1255541713D0A27A2B65041A4703DBAF5255541F6285C1FA4B65041AE47E14AFA255541D7A370CDA5B650418FC2F5B8F9255541B8F5CBCDA5B65041D88DC5BAF925554114FA0219A7B65041F1EBE948F92555411A93D334AEB65041DB7C0E7DF625554109000000295C8F92AFB650419A9999D9F32555419A9999E9AFB65041F6285CAFF2255541F6285C7FB0B6504148E17AF4F12555417B14AEC7B2B6504185EB51E8F12555418FC2F548B4B65041295C8F32F22555413D0AD793B4B6504148E17A44F3255541B81E85BBB2B650410AD7A330F4255541295C8FE2B0B650417B14AE87F4255541295C8F92AFB650419A9999D9F32555410F000000DE93890DA9B65041B53B7E6DF72555417D42F9CDA6B65041069F1B60F7255541369DB8DEA4B65041E01CA4E7F62555419A9999E9A3B65041AE47E1CAF5255541F6285C9FA3B650415C8FC255F425554114AE4741A4B65041EC51B81EF32555417B14AE77A5B65041295C8FA2F2255541CDCCCCECA6B650410AD7A350F32555417B14AE17A8B65041EC51B88EF3255541713D0A67A9B650410AD7A350F3255541713D0A47AAB650417B14AEC7F225554120DA1BFBABB650413926D3B8F2255541868A5A3CADB65041ABAC3922F4255541E1AB5432ABB65041760DB7A4F6255541DE93890DA9B65041B53B7E6DF7255541
+</a>
+
+<b>
+0106000000010000000103000000010000005D000000416C005CADB65041099FB5ECF6255541FC11B153AAB6504120D4411AF8255541BA7018CFA9B650413264AB4EF8255541578E965CA8B65041DC4325E1F8255541E245D9B8A6B650416B77F869F925554190FB71CDA5B650415B94FCB8F9255541713D0A37A6B6504114AE47D1FB25554166666686A6B65041CDCCCCFCFC255541A4703D8AA7B6504100000000FE25554152B81E55A9B65041CDCCCCFCFC255541F6285C6FABB6504152B81E85FC255541E17A14EEADB650418FC2F5F8FB25554148E17A94B0B650419A999959FB255541333333C3B2B65041E17A14CEFA255541E17A14DEB4B6504166666656FA2555413D0AD713B9B65041AE47E12AF9255541D7A3706DBCB6504133333363F825554166666656C1B650413D0AD773F725554114AE47C1C3B6504148E17AD4F62555410AD7A3B0C4B6504185EB5198F62555413D0AD7A3C4B65041A4703DEAF225554148E17A04D2B65041666666C6EC255541A4703D0AD1B650417B14AED7EA255541E17A144ED1B650411F85EB51E92555410AD7A340D2B6504100000080E9255541B81E85BBD3B65041C3F528BCE9255541D7A370EDD6B65041CDCCCC1CE92555410AD7A330D9B650418FC2F518E8255541AE47E1EADBB650419A999929E7255541CDCCCCCCDEB65041295C8F12E6255541333333C3E1B65041AE47E1AAE4255541D7A3701DE5B65041B81E85BBE3255541000000C0E6B65041C3F5281CE325554166666606EAB6504114AE4751E125554114AE47D1EBB650418FC2F528E125554148E17A74EDB65041A4703D4ADF255541713D0AB7EFB65041295C8FD2DE2555415C8FC2E5F1B65041F6285C2FDD2555413D0AD743F3B65041666666D6DC255541D2C2E944F3B65041AD8818D1DC255541E7112B1FF3B65041BC88DF95DC2555411289C2A8F2B65041F39B36C7DB25554168B00CB4F1B650411BCFB11BDA2555412AB61721F1B65041B8116619D9255541A9058458E8B65041864DAA8FDC255541A5E2357DE6B650416902C14BDD255541DDE910F9E3B650417FF0A74ADE255541B1072A2CE3B650410A973E94DE255541757F0C63E2B650412B7435E3DE2555413AB446FBDFB65041B515FBD4DF25554111140383DFB65041254A3304E02555416B5501EFDCB65041B3105707E1255541AC312E2DDCB65041A81F7153E1255541C3C86083DBB65041B2DEFF98E12555416A81608ADAB650414BECD8F5E1255541B310B674D9B650411CE863ADE225554136C6D470D7B650412EA48901E4255541319F2461D7B65041E219D90BE4255541B03C0456D5B65041170EA763E5255541FAAAC759D3B6504174D7ABB1E62555416F4B6225D1B650412FA63A26E82555417E3B6612D1B6504116FF6F35E8255541C26771EDD0B6504157F80A53E82555419228B04AD0B65041BACA45DFE8255541B69B4377CFB6504131906F95E9255541912BD44BCFB650414A15DCBAE9255541BDC7D741CFB65041BF96BEC0E9255541F5A4063CCFB65041BA262CC4E92555410C2C175ACDB65041C5C65F7FEA255541FA24D83DCDB65041A093588AEA255541355C095BCCB65041AE5272E2EA2555413CA0CB1DCCB6504172233CFAEA2555415C4FBA06CBB65041CA9AA266EB2555417467C118CAB65041418D12C3EB25554100911DDEC8B6504162544A3DEC255541369CECA7C7B6504147B9C7B5EC255541D3CBBF85C6B65041C8B57E26ED2555413A69ED4CC6B650414A11913CED255541BCE80A1BC3B650416578437AEE25554193B49111C3B650417982F17DEE25554170BD7F81C2B6504173D6E7B5EE2555417A771C2CC1B65041186A833AEF2555410AD3DC55C0B65041BA47BC8DEF255541A272FA43BFB650413D501FF8EF25554139F5BDA1BCB650413A5205FEF0255541FBF74BDBBAB650417B538BAEF12555415C0E8BCAB9B65041BEEB7D18F225554165AFD2F0B7B650418D9F80D0F2255541175AC8DBB4B6504175BDFE02F4255541BA9B8EC5B4B650411ED9A00BF4255541511B8FD8B3B65041DFEAAF67F4255541BEC0CBF6B0B65041CF2A7586F5255541416C005CADB65041099FB5ECF6255541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>253498 - 404770
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -231 </desc>
+<a>
+010600000001000000010300000003000000400000001A93D334AEB65041DB7C0E7DF6255541068AFD37AEB650419CDFCF7BF625554183DD713FAEB65041E432E178F62555416E1A519AB6B65041B4698B55F325554187984894CDB650410510C568EA2555413305F4E1CEB65041DD54D276E9255541DB3CA09FD1B650412FD19B66E7255541B9C61AB1D4B650410634142EE525554180EA8899DAB65041C8A5B57BE1255541D934CFC7DEB65041FCD02BE5DF255541A1085564E3B65041B66AC124DE25554194CA6778EAB65041A492205FDB2555418702ACFDF0B65041671FA6ECD8255541A1E54711F3B65041031BEF34DC25554133333343F6B65041CDCCCC3CDB255541E17A145EFEB65041295C8FE2D725554185EB510808B750415C8FC2E5D2255541A4703D3A0BB750411F85EBD1D225554148E17A940EB75041A4703DBAD1255541A4703D7A12B75041713D0A07D12555417B14AE3716B7504185EB5128CF2555416666666618B7504185EB5188CE25554114AE47811AB750418FC2F548CD255541713D0A171EB7504166666656CB2555411F85EB8120B75041A4703D1ACB255541F6285C3F24B75041E17A14CECB255541E17A140E27B750410AD7A310CE255541000000F029B75041295C8F42D1255541AE47E10A2CB75041AE47E11AD1255541666666862DB750417B14AEC7CF255541E17A14FE2DB75041CDCCCCFCCD2555410AD7A3A02FB7504114AE4781CC255541EC51B8FE30B750419A999959CB255541B81E856B31B7504148E17A84C7255541AE47E14A33B750419A9999B9C52555410AD7A34036B75041F6285CFFC2255541713D0A6737B7504185EB5168C12555419A9999D934B75041713D0AD7BC255541B81E850B32B75041A4703D7ABE2555418FC2F5782FB75041E17A143EBE2555419A9999E92DB7504166666676BD2555413333339310B750415C8FC2E5C82555411F85EB0106B7504148E17AD4CD25554133333393FCB650415C8FC295D225554133333343F6B65041C3F5288CD5255541713D0A07F0B65041295C8FE2D7255541EC51B8DEE9B6504152B81EC5DA25554183A25978E3B65041C4F00815DD25554166666666E3B65041B81E851BDD255541C3F528BCDFB65041713D0AA7DD255541C3F5288CCDB650410AD7A330E4255541B63DE68FBBB6504121F07EFDE9255541B63DE68FBBB65041F82624A8EC255541B884C96CB8B65041BC102804EE255541B66CFE47B6B65041DD33F17AEF2555418ED2BBAAB3B6504140CC6497EE255541295C8FB2B2B650415C8FC245EC255541F6285C2FA0B65041D7A3702DF1255541713D0A27A2B65041A4703DBAF5255541F6285C1FA4B65041AE47E14AFA255541D7A370CDA5B650418FC2F5B8F9255541B8F5CBCDA5B65041D88DC5BAF925554114FA0219A7B65041F1EBE948F92555411A93D334AEB65041DB7C0E7DF625554109000000295C8F92AFB650419A9999D9F32555419A9999E9AFB65041F6285CAFF2255541F6285C7FB0B6504148E17AF4F12555417B14AEC7B2B6504185EB51E8F12555418FC2F548B4B65041295C8F32F22555413D0AD793B4B6504148E17A44F3255541B81E85BBB2B650410AD7A330F4255541295C8FE2B0B650417B14AE87F4255541295C8F92AFB650419A9999D9F32555410F000000DE93890DA9B65041B53B7E6DF72555417D42F9CDA6B65041069F1B60F7255541369DB8DEA4B65041E01CA4E7F62555419A9999E9A3B65041AE47E1CAF5255541F6285C9FA3B650415C8FC255F425554114AE4741A4B65041EC51B81EF32555417B14AE77A5B65041295C8FA2F2255541CDCCCCECA6B650410AD7A350F32555417B14AE17A8B65041EC51B88EF3255541713D0A67A9B650410AD7A350F3255541713D0A47AAB650417B14AEC7F225554120DA1BFBABB650413926D3B8F2255541868A5A3CADB65041ABAC3922F4255541E1AB5432ABB65041760DB7A4F6255541DE93890DA9B65041B53B7E6DF7255541
+</a>
+
+<b>
+0106000000010000000103000000010000005D000000416C005CADB65041099FB5ECF6255541FC11B153AAB6504120D4411AF8255541BA7018CFA9B650413264AB4EF8255541578E965CA8B65041DC4325E1F8255541E245D9B8A6B650416B77F869F925554190FB71CDA5B650415B94FCB8F9255541713D0A37A6B6504114AE47D1FB25554166666686A6B65041CDCCCCFCFC255541A4703D8AA7B6504100000000FE25554152B81E55A9B65041CDCCCCFCFC255541F6285C6FABB6504152B81E85FC255541E17A14EEADB650418FC2F5F8FB25554148E17A94B0B650419A999959FB255541333333C3B2B65041E17A14CEFA255541E17A14DEB4B6504166666656FA2555413D0AD713B9B65041AE47E12AF9255541D7A3706DBCB6504133333363F825554166666656C1B650413D0AD773F725554114AE47C1C3B6504148E17AD4F62555410AD7A3B0C4B6504185EB5198F62555413D0AD7A3C4B65041A4703DEAF225554148E17A04D2B65041666666C6EC255541A4703D0AD1B650417B14AED7EA255541E17A144ED1B650411F85EB51E92555410AD7A340D2B6504100000080E9255541B81E85BBD3B65041C3F528BCE9255541D7A370EDD6B65041CDCCCC1CE92555410AD7A330D9B650418FC2F518E8255541AE47E1EADBB650419A999929E7255541CDCCCCCCDEB65041295C8F12E6255541333333C3E1B65041AE47E1AAE4255541D7A3701DE5B65041B81E85BBE3255541000000C0E6B65041C3F5281CE325554166666606EAB6504114AE4751E125554114AE47D1EBB650418FC2F528E125554148E17A74EDB65041A4703D4ADF255541713D0AB7EFB65041295C8FD2DE2555415C8FC2E5F1B65041F6285C2FDD2555413D0AD743F3B65041666666D6DC255541D2C2E944F3B65041AD8818D1DC255541E7112B1FF3B65041BC88DF95DC2555411289C2A8F2B65041F39B36C7DB25554168B00CB4F1B650411BCFB11BDA2555412AB61721F1B65041B8116619D9255541A9058458E8B65041864DAA8FDC255541A5E2357DE6B650416902C14BDD255541DDE910F9E3B650417FF0A74ADE255541B1072A2CE3B650410A973E94DE255541757F0C63E2B650412B7435E3DE2555413AB446FBDFB65041B515FBD4DF25554111140383DFB65041254A3304E02555416B5501EFDCB65041B3105707E1255541AC312E2DDCB65041A81F7153E1255541C3C86083DBB65041B2DEFF98E12555416A81608ADAB650414BECD8F5E1255541B310B674D9B650411CE863ADE225554136C6D470D7B650412EA48901E4255541319F2461D7B65041E219D90BE4255541B03C0456D5B65041170EA763E5255541FAAAC759D3B6504174D7ABB1E62555416F4B6225D1B650412FA63A26E82555417E3B6612D1B6504116FF6F35E8255541C26771EDD0B6504157F80A53E82555419228B04AD0B65041BACA45DFE8255541B69B4377CFB6504131906F95E9255541912BD44BCFB650414A15DCBAE9255541BDC7D741CFB65041BF96BEC0E9255541F5A4063CCFB65041BA262CC4E92555410C2C175ACDB65041C5C65F7FEA255541FA24D83DCDB65041A093588AEA255541355C095BCCB65041AE5272E2EA2555413CA0CB1DCCB6504172233CFAEA2555415C4FBA06CBB65041CA9AA266EB2555417467C118CAB65041418D12C3EB25554100911DDEC8B6504162544A3DEC255541369CECA7C7B6504147B9C7B5EC255541D3CBBF85C6B65041C8B57E26ED2555413A69ED4CC6B650414A11913CED255541BCE80A1BC3B650416578437AEE25554193B49111C3B650417982F17DEE25554170BD7F81C2B6504173D6E7B5EE2555417A771C2CC1B65041186A833AEF2555410AD3DC55C0B65041BA47BC8DEF255541A272FA43BFB650413D501FF8EF25554139F5BDA1BCB650413A5205FEF0255541FBF74BDBBAB650417B538BAEF12555415C0E8BCAB9B65041BEEB7D18F225554165AFD2F0B7B650418D9F80D0F2255541175AC8DBB4B6504175BDFE02F4255541BA9B8EC5B4B650411ED9A00BF4255541511B8FD8B3B65041DFEAAF67F4255541BEC0CBF6B0B65041CF2A7586F5255541416C005CADB65041099FB5ECF6255541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>900954 - 53621
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+01060000000100000001030000000100000028000000AA7CF2354FE350411810B1974D265441666666964DE35041A4703DAA4B2654410AD7A3903CE350415C8FC2153A265441AE47E1FA38E350417B14AE673A26544152B81E7534E350411F85EB3140265441A4703DAA31E3504152B81E054326544152B81ED52BE3504148E17A8449265441F6285CEF23E35041A4703D6A52265441713D0A071CE35041000000505B2654410AD7A36015E35041713D0AC7622654411B0F9C6616E350415F4C12C765265441EC51B82E18E350410AD7A320672654415014EE5817E35041AE603C6168265441E51309FC16E35041810E4C3C692654417191339715E35041DC24C6626B265441AA647AD115E35041931BC9AF6E2654416976D85A17E35041EE964A56702654417FA1E42816E35041FA80F60075265441CD0CB53D17E3504173AF5CBE752654411A78855218E350410891A792752654416F6B2EB019E3504125448CA9742654414246DB241CE35041960E6D2C742654410227749D1DE35041AEA8A8DF712654410194F1A91FE35041B6C3031C7026544156879A0721E35041B6C3031C702654411188FA3127E3504130FFF6736B2654415D1EE59A34E3504180664C9C5F265441A40225E446E35041A9520CAC6C265441D8A59FED53E35041034D5944762654415E7638E256E3504158E9CB7B78265441CECEB75859E3504115817F017726544163B9E3AB5CE350416A1E3A30732654413B9EC10461E3504152EBA2BB6D265441D545428E5EE350416C7E978F6826544192DDF5135DE350419D89A5E1632654418221E9D45CE35041D0362D145F265441415B163B5BE3504133EE7AA15B2654415532FECF55E350411AD52F3A5526544170272E3E4FE3504106DD77A14D265441AA7CF2354FE350411810B1974D265441
+</a>
+
+<b>
+0106000000010000000103000000010000003700000023FC4CBF25E350414846EA8B6C26544169ECC57F28E350410C6E2F4D6A2654412BA9B9262AE35041584CABD7682654415D1EE59A34E3504180664C9C5F265441357F675C3AE350415E19CEB86326544124ECB36A3AE3504154B004C363265441FDA4296C3AE3504114A20FC4632654419515BB6C3AE35041C78477C463265441A40225E446E35041A9520CAC6C265441D8A59FED53E35041034D5944762654415E7638E256E3504158E9CB7B782654419AD0033B59E3504167E65113772654412F56E78D59E350412ADC6EC47626544163B9E3AB5CE350416A1E3A30732654413B9EC10461E3504152EBA2BB6D265441D545428E5EE350416C7E978F682654419D1769C95DE35041BD163D206626544148618BC55DE350410600FF136626544192DDF5135DE350419D89A5E16326544146A524005DE35041507311C162265441B34AE3055DE350411E5A3BCF6226544140FCAA055DE35041F15FF1CA62265441AFEA0AFE5CE350418009403662265441851D4AFB5CE35041EE6890006226544100E737FA5CE35041AC41ADEB612654419659BCF95CE3504118FC43E261265441C40522D45CE35041E832314060265441A5A5D1BB5CE35041AD0422DE5E265441132AB66B5BE35041FD97350A5C265441AEE06F3E5BE3504137E6B1A85B26544152FBA5F259E350410A37531D5A265441687AA4C359E3504134CDC5E559265441D785003758E350414409041158265441E720C5EE57E35041FB91A6BB57265441A13D8B2057E3504135CBEDC756265441931AB97D53E3504180D7048B5226544170272E3E4FE3504106DD77A14D265441AA7CF2354FE350411810B1974D265441EFE926DD4EE3504136E73F2E4D265441F19BA5F516E35041A9C55C4B692654417291339715E35041DD24C6626B265441AB647AD115E35041921BC9AF6E2654416476D85A17E35041F2964A567026544180A1E42816E35041FB80F60075265441D20CB53D17E350416EAF5CBE752654411A78855218E350410991A792752654416E6B2EB019E3504126448CA97426544100FF30C819E350410EF2C4A47426544178BCDF2C1CE35041C343E41F742654410427749D1DE35041ABA8A8DF712654417C7366DC1DE35041077574A971265441022BFE2C1EE35041AE410E64712654410194F1A91FE35041BAC3031C70265441C81271FD20E35041BAC3031C7026544123FC4CBF25E350414846EA8B6C265441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>801940 - 249284
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+01060000000D000000010300000001000000120100007B14AEA7E8F450417B14AE87F5B854416FB507B6EEF4504114621A4DF7B85441C3F528ECEFF4504148E17AC4F6B85441C3F5289CF1F45041CDCCCCACF6B85441C3F528FCF1F45041CDCCCCFCF7B85441C3F5285CF2F450418FC2F508F8B854410AD7A3C0F4F450418FC2F528F6B8544148E17A34F6F4504148E17A74F5B8544185EB5178F7F45041CDCCCC0CF7B854410AD7A3C0F7F4504148E17A64F6B854410AD7A310F9F4504148E17A34F6B8544148E17A64F9F45041CDCCCCACF3B854410AD7A3F0FAF4504148E17AA4EFB8544185EB5168FBF45041CDCCCC5CEFB8544185EB5168FBF450410AD7A3C0EEB8544148E17AE4FAF45041CDCCCC6CEEB85441C3F528DCF9F45041CDCCCCFCEEB8544148E17A04F9F450410AD7A350EFB854410AD7A320F8F450418FC2F5A8EEB8544185EB5138F8F4504148E17AF4EDB85441C3F5280CFAF4504148E17A34EDB85441C3F5282CF8F4504148E17AD4ECB8544185EB5108F8F450410AD7A360EBB854410AD7A3B0F8F45041CDCCCC8CE9B8544148E17A14FBF45041CDCCCCBCE9B854410AD7A380FBF450418FC2F5B8EAB854410AD7A330FDF450410AD7A370EAB8544148E17A04FFF450418FC2F5B8EAB854410AD7A310FFF450418FC2F538E9B85441C3F528BCFEF450418FC2F5E8E7B854410AD7A3A0FFF4504148E17A34E7B8544185EB517800F550410AD7A320E6B8544148E17A9402F550410AD7A360E5B85441C3F5280C03F550418FC2F578E5B854410AD7A39003F550410AD7A3D0E4B85441C3F5283C03F5504148E17AD4E3B85441C3F5285C04F550418FC2F598E3B854410AD7A34005F5504148E17AE4E2B8544185EB517806F55041CDCCCCCCE2B854410AD7A3B007F55041CDCCCC6CE2B854410AD7A33009F5504148E17A84E2B854410AD7A3E00AF5504148E17AC4E1B85441C3F5288C0AF550410AD7A3F0DFB854410AD7A3E00AF550410AD7A360DFB8544185EB51880BF550410AD7A390DFB854410AD7A3100BF550410AD7A390DCB854410AD7A3D00BF550418FC2F558DBB85441C3F528DC0BF55041CDCCCCCCD9B85441C3F528DC08F550410AD7A3A0D8B8544185EB51F807F55041CDCCCC2CD7B85441C3F528DC08F550418FC2F5C8D4B8544148E17A8409F55041CDCCCC8CD4B8544185EB51080AF5504148E17A64D2B85441C3F5288C0AF550410AD7A310D2B85441C3F5280C0CF55041CDCCCC1CD2B8544148E17AB40CF550418FC2F588D2B854410AD7A3400EF550418FC2F5C8D4B854410AD7A3400EF550410AD7A390D6B85441C3F528CC0CF550410AD7A3C0D6B8544185EB51380DF55041CDCCCC2CD7B8544148E17A840CF5504148E17A94D8B8544185EB51A80CF550418FC2F568DAB85441C3F528BC0DF5504148E17A34DBB854410AD7A3900FF550410AD7A350DDB854410AD7A31011F550418FC2F5C8DDB854410AD7A36012F55041CDCCCCECDDB8544185EB510813F550418FC2F5C8DDB85441C3F5284C14F550410AD7A3D0DEB85441C3F5286C16F55041C3F528ACDFB85441A4703DAA18F550417B14AE77DBB85441C3F528AC17F5504148E17AA4DAB854410AD7A32016F5504148E17A14DAB85441C3F528AC14F550418FC2F598DAB8544185EB510813F5504148E17AB4DCB8544185EB517812F55041CDCCCCCCDCB854410AD7A31011F550410AD7A3A0DBB8544148E17AA410F5504148E17AB4DCB8544185EB513810F550418FC2F528DBB8544148E17AA410F55041CDCCCCECDAB8544185EB51C810F550410AD7A390D9B8544185EB51B811F550410AD7A3C0D6B85441C3F528FC12F550410AD7A330D6B8544185EB512814F550418FC2F588D5B854410AD7A36015F5504148E17A84D3B854410AD7A3F015F550410AD7A360D3B8544185EB513816F5504148E17A84D3B85441C3F528BC16F550418FC2F548D3B8544185EB51A818F550410AD7A350D1B8544148E17A7419F55041CDCCCCFCD0B85441C3F5285C19F5504148E17A74CEB8544185EB51C819F55041CDCCCC6CCDB854410AD7A35019F550410AD7A3D0CCB85441C3F5288C19F550418FC2F598CBB8544185EB51B81AF55041CDCCCCFCCAB8544148E17A441CF55041CDCCCCACC9B8544185EB51F81CF5504148E17AF4C9B8544148E17A641DF55041CDCCCC3CCAB8544148E17A641DF550418FC2F528CCB8544148E17A241EF5504148E17A64CCB854410AD7A3501FF550410AD7A3A0CCB854410AD7A3301EF550410AD7A3B0CEB854410AD7A3E01CF5504148E17A64D2B85441C3F5281C1DF5504148E17A24D3B85441AE47E1BA21F550415C8FC2C5CBB85441A4703D8A26F55041C3F528FCC4B8544185EB51D824F550418FC2F528C6B854410AD7A30024F550418FC2F538C5B854410AD7A3F024F550418FC2F518C4B8544148E17A4425F550410AD7A320C2B8544185EB51F825F55041CDCCCC0CC1B8544148E17AC426F550410AD7A3A0BDB85441C3F5281C26F550410AD7A310BDB8544148E17A1425F5504148E17A64BDB85441C3F528FC24F550410AD7A3B0BCB85441C3F528AC26F55041CDCCCCFCBBB8544185EB51C825F550418FC2F528BAB85441C3F5284C26F550410AD7A3A0B7B8544148E17A2427F5504148E17A04B7B8544148E17AA428F55041CDCCCCECB6B854410AD7A3A029F5504148E17AD4B6B8544185EB51482AF5504148E17A54B8B85441CDCCCC5C2BF550418FC2F568BCB85441295C8F322BF550418FC2F568BEB8544185EB51B830F55041E17A149EB6B85441AE47E16A32F55041D7A3704DB5B8544148E17AA431F5504148E17AF4B4B8544185EB51B82FF5504148E17AF4B4B8544185EB51182DF550418FC2F538B6B8544148E17A642CF5504148E17AB4B5B85441CDCCCC1C2CF55041CDCCCC1CB4B8544148E17A942CF5504148E17A84B2B8544185EB51282CF550410AD7A350B0B854410AD7A3502BF5504148E17A94AEB8544185EB51982BF5504148E17A44ADB854410AD7A3A02CF550410AD7A350ADB85441CDCCCC5C2EF550410AD7A310AEB85441CDCCCCBC2EF55041CDCCCC8CADB85441CDCCCCEC2EF550410AD7A390ACB854410AD7A3502EF550418FC2F518ACB854410AD7A3002DF5504148E17A54ACB854410AD7A3B02BF550418FC2F5E8ABB8544148E17A542AF550410AD7A300ACB8544185EB518829F550418FC2F528ABB8544185EB510828F550410AD7A3E0AAB854410AD7A38028F5504148E17A14AAB854410AD7A31029F5504148E17AE4A9B854410AD7A3602AF55041CDCCCC9CA6B8544148E17A542DF55041CDCCCC5CA7B8544185EB51782DF55041CDCCCCDCA5B85441CDCCCC7C2FF5504148E17AF4A5B854410AD7A39030F5504148E17A34A2B85441CDCCCCEC31F5504148E17A44A1B85441CDCCCCFC36F5504148E17A34A2B85441CDCCCCAC38F55041CDCCCC1CA2B85441CDCCCC6C39F55041CDCCCC5CA1B8544148E17A443AF55041CDCCCCFCA0B8544148E17A643BF550418FC2F538A1B854410AD7A3403BF550410AD7A3709FB85441CDCCCC3C3CF550410AD7A3109FB85441CDCCCC5C3DF550418FC2F5089EB8544185EB51583EF550418FC2F5089EB854410AD7A3603FF550418FC2F5C89EB85441CDCCCC2C40F550418FC2F5F89EB8544185EB519840F5504148E17A949FB85441CDCCCC3C42F55041CDCCCC6CA0B85441CDCCCC6C42F5504148E17AF49FB8544185EB515841F5504148E17A449EB85441CDCCCCCC42F550410AD7A3D09CB8544185EB51D842F550418FC2F5389BB854410AD7A39042F5504148E17A849AB854410AD7A3F042F5504148E17A849AB854410AD7A32043F5504148E17AB49AB854410AD7A3C045F550410AD7A3F09AB854410AD7A35046F55041CDCCCCBC9BB8544185EB519846F5504148E17A149BB854410AD7A3D047F550410AD7A3009AB854410AD7A3B049F550410AD7A3609AB85441CDCCCCAC4AF550410AD7A3209BB85441CDCCCC9C4BF55041CDCCCC6C9AB854410AD7A3D04DF55041CDCCCCFC97B85441CDCCCCCC4EF55041CDCCCCFC97B854410AD7A3504FF550418FC2F53898B8544185EB519852F55041CDCCCC1C99B8544148E17A8454F550418FC2F5789AB85441CDCCCCCC54F550418FC2F5E899B8544185EB51C855F550418FC2F5489AB8544148E17A3456F5504148E17A6499B854410AD7A3D059F550418FC2F53898B85441CDCCCCFC5AF550410AD7A38098B85441A4703D8A5BF55041C3F528FC9AB85441AE47E1AA5CF55041666666069BB854410AD7A3005DF5504148E17A849AB8544148E17A745EF55041CDCCCC3C9AB85441333333E35EF55041F6285CFF9AB85441295C8F3263F550415C8FC2E59AB8544148E17A1464F55041CDCCCC0C9AB85441295C8FE264F55041C3F528DC9AB85441A4703D8A68F55041666666C69AB8544185EB512868F550410AD7A36097B85441CDCCCCFC66F550418FC2F58896B85441CDCCCCCC66F550418FC2F53895B854410AD7A3506AF5504148E17A6493B8544185EB51A869F550418FC2F5C892B85441CDCCCC1C62F5504148E17A4492B85441CDCCCCFC60F55041CDCCCCEC92B8544148E17A945FF550418FC2F55893B854410AD7A3205EF55041CDCCCC3C94B85441CDCCCC7C5CF55041CDCCCCDC93B85441CDCCCC6C5AF5504148E17AF493B8544185EB518859F5504148E17A0493B8544185EB516858F5504148E17AC490B85441CDCCCC1C56F5504148E17A2491B85441CDCCCC5C55F55041CDCCCC4C90B85441CDCCCC0C54F550418FC2F58890B85441CDCCCCDC53F550418FC2F50892B8544185EB512853F55041CDCCCC5C92B8544148E17A1452F5504148E17A9490B8544148E17AF450F5504148E17A748FB85441CDCCCC8C4FF550410AD7A3508FB85441CDCCCCFC4EF55041CDCCCC4C90B85441CDCCCCFC4EF550410AD7A39091B8544185EB51584DF550418FC2F54891B8544185EB51C849F55041CDCCCCAC90B8544185EB517845F55041CDCCCC1C90B8544148E17A9441F5504148E17AC490B854410AD7A3103EF550418FC2F5A891B8544185EB51183CF550418FC2F59892B8544148E17A043BF55041CDCCCC7C93B85441CDCCCC4C3BF550410AD7A3F094B85441CDCCCCDC38F550410AD7A3B095B85441CDCCCCFC36F550418FC2F53895B8544185EB518835F5504148E17A3496B854410AD7A37035F550410AD7A33097B8544185EB51F834F55041CDCCCC3C97B85441CDCCCC2C34F55041CDCCCC5C98B854410AD7A33033F550418FC2F55899B8544148E17A5430F550418FC2F5A89AB85441CDCCCC4C2FF5504148E17AA49BB8544148E17A942CF55041CDCCCC9C9AB854410AD7A3A029F5504148E17A149BB85441EC51B82E29F550413D0AD7139BB85441E17A14EE26F5504152B81E659CB854413333330321F550417B14AEE79FB854410000002018F5504152B81EF5A7B85441B81E85EB15F5504133333363AAB85441CDCCCCFC13F5504148E17A64ADB854410AD7A38013F550410AD7A340AEB854410AD7A38013F55041CDCCCCCCAFB85441C3F5287C11F5504148E17A74B3B85441C3F5286C0FF550418FC2F558B4B8544148E17AE40CF550418FC2F5A8B8B8544185EB51E80BF55041CDCCCCECB9B854410AD7A3400BF55041CDCCCC2CBFB854410AD7A3A008F550418FC2F5A8C1B8544185EB51F804F5504148E17AB4CAB85441C3F528DC05F550418FC2F568CBB8544185EB517806F550418FC2F5D8CDB85441C3F5284C05F5504148E17A84D0B854410AD7A31005F550418FC2F5F8D1B85441C3F528CC03F55041CDCCCC1CD2B85441C3F5283C03F550410AD7A350D4B854410AD7A35001F5504148E17A24D3B854417B14AE67FEF45041A4703D6AD8B85441CDCCCCECF8F450415C8FC285DFB8544185EB51E8F9F45041CDCCCC0CE2B85441C3F5287CF9F450418FC2F5D8E2B854410AD7A350F8F450418FC2F578E2B8544148E17A34F6F450410AD7A310E4B85441C3F528FCF4F450418FC2F5B8E4B85441C3F5287CF3F450418FC2F5B8E4B8544185EB51F8EBF4504185EB51C8EBB854413D0AD7E3E9F45041CDCCCCDCEEB854418FC2F5B8E8F45041EC51B82EF2B854417B14AEA7E8F450417B14AE87F5B854410103000000010000001600000085EB51F891F5504148E17A74A7B85441CDCCCC0C93F550410AD7A300A9B8544185EB518895F550410AD7A330A9B8544148E17A1497F5504148E17AE4A9B8544185EB51A899F550410AD7A300ACB854410AD7A3E09AF5504148E17A24ACB8544185EB51E89BF550418FC2F5B8ABB85441EC51B83E9EF55041AE47E10AACB85441CDCCCC5C9DF5504148E17AD4AAB85441CDCCCCCC99F550418FC2F558A8B854410AD7A38097F550418FC2F568A4B85441A4703D0A96F55041F6285C4FA3B8544148E17A8493F550418FC2F518A3B85441CDCCCC8C8BF550418FC2F598A1B8544148E17AD48BF5504148E17A64A2B85441CDCCCC4C8CF550410AD7A330A3B8544185EB51588CF550410AD7A380A4B85441CDCCCCCC8DF550410AD7A3B0A7B85441CDCCCCEC8EF550410AD7A320A7B85441CDCCCCAC8FF5504148E17A44A7B85441CDCCCCFC90F550418FC2F5D8A6B8544185EB51F891F5504148E17A74A7B854410103000000010000001800000000000060FBF4504152B81E7564B854410AD7A370FFF450410AD7A3A063B8544148E17A64FFF45041CDCCCC2C62B854410AD7A3F0FDF4504148E17A1462B8544148E17A24FDF45041CDCCCC3C61B85441D7A370DDF9F450419A9999A962B8544185EB5188F6F4504148E17A6463B854410AD7A330F4F4504185EB51C862B854410AD7A3D0F0F45041CDCCCCEC62B8544148E17A44EFF450410AD7A30064B8544148E17AF4EDF45041CDCCCC0C64B854410AD7A310EDF4504185EB517864B85441CDCCCC1CEAF450410AD7A39064B8544185EB5198E9F4504148E17A5464B8544148E17A04E7F45041CDCCCCCC64B854410AD7A330E5F4504148E17A0466B8544148E17AA4E3F45041CDCCCC1C66B854410AD7A3C0E2F45041CDCCCCDC66B8544148E17AE4DFF450410AD7A33067B854418FC2F5E8DFF45041666666C667B85441B81E855BEAF4504185EB51B866B8544152B81E45F7F450419A99990967B85441A4703D4AF9F4504152B81E1567B8544100000060FBF4504152B81E7564B8544101030000000100000016000000CDCCCC5CA3F550410AD7A3F0BEB85441CDCCCCACA4F550418FC2F598BFB854410AD7A350A6F5504148E17A54C1B8544185EB5158A7F550410AD7A3C0C4B85441CDCCCC2CA6F55041CDCCCCCCBBB854410AD7A380A3F550410AD7A3E0B9B8544148E17A24A2F55041CDCCCCECB6B8544148E17AF4A1F5504148E17AB4B5B8544148E17A94A1F550418FC2F5C8B3B85441CDCCCC2CA0F5504148E17A24B2B85441CDCCCC9C9FF5504148E17A04B1B85441C3F5285C9FF550418FC2F578AFB85441CDCCCC3C9FF550410AD7A300AFB8544185EB51B89EF55041CDCCCC0CAFB8544148E17A549FF550410AD7A370B1B8544148E17A14A0F55041CDCCCC8CB6B85441CDCCCCCC9FF5504148E17A34BAB854410AD7A3C09FF5504148E17A94BDB8544148E17A14A0F5504148E17AB4BEB854410AD7A310A1F55041CDCCCCFCBEB854410AD7A390A2F550410AD7A3F0BEB85441CDCCCC5CA3F550410AD7A3F0BEB854410103000000010000002B0000000AD7A320EFF4504148E17AA47AB8544185EB5198EFF45041CDCCCCDC7BB85441CDCCCC5CEFF450410AD7A3C07CB85441CDCCCC5CEFF4504148E17AA47DB8544185EB51A8EEF45041CDCCCC1C81B8544148E17AE4EEF4504148E17A2482B8544148E17A34F0F450410AD7A36082B85441295C8F92F1F4504148E17AE484B854413D0AD703F4F45041CDCCCC6C81B854410AD7A3E0F4F45041AE47E10A7EB854413D0AD793F3F45041AE47E1AA77B85441713D0A17F0F450410000004070B85441C3F5284CEFF4504185EB51D86DB8544185EB51A8EEF45041CDCCCC4C6CB854410AD7A350ECF450410AD7A3606DB854410AD7A3E0E9F4504185EB51486DB8544185EB5128E4F4504148E17A746EB8544148E17AA4E3F450410AD7A3406FB8544185EB5178E2F450410AD7A33070B854410AD7A350DDF4504148E17A8470B8544148E17AB4DCF4504148E17AE470B8544185EB51E8DBF4504185EB515872B854410AD7A300DCF450410AD7A33073B85441CDCCCCECDDF4504148E17AF475B8544148E17A24DCF450410AD7A34078B85441CDCCCC2CDAF450410AD7A3C079B8544148E17A14DAF4504148E17AD47AB8544185EB51F8DAF4504148E17A547CB854410AD7A320E0F45041CDCCCC9C7CB8544148E17A24DFF4504148E17A747AB8544185EB5158E1F450410AD7A3D078B854410AD7A3C0E2F4504185EB514879B854410AD7A3E0E3F450410AD7A3807AB8544185EB51C8E3F45041CDCCCC7C7BB8544148E17A84E2F4504148E17AE47CB8544148E17A24E5F45041CDCCCCFC7CB85441CDCCCC1CE7F45041CDCCCC8C7DB8544148E17A24E8F45041CDCCCC2C7DB85441CDCCCCCCE8F450410AD7A3607CB8544185EB5198E9F4504185EB51487CB854410AD7A350ECF4504148E17A147AB8544148E17A64EDF450410AD7A3207AB854410AD7A320EFF4504148E17AA47AB854410103000000010000003000000085EB51A8E5F450410AD7A390ACB8544148E17AA4E6F45041CDCCCC6CACB8544185EB51E8E7F450410AD7A320ADB85441CDCCCC2CE9F45041CDCCCC7CABB854410AD7A3D0EAF450410AD7A380AAB8544185EB5148EBF45041CDCCCC6CA9B8544148E17A54EEF450410AD7A3D0A5B8544148E17A14EFF45041CDCCCC2CA4B8544185EB5178EEF4504148E17AA4A1B8544185EB5168EFF45041CDCCCC6CA0B8544185EB5138EFF45041CDCCCC9C9DB8544148E17AA4EFF4504148E17A049CB85441CDCCCCFCEEF45041CDCCCCAC9CB8544148E17A64EDF4504148E17AC49CB85441CDCCCC4CEDF45041CDCCCC2C9BB8544148E17A94EDF4504148E17AF499B8544185EB51D8EEF4504185EB51C898B85441CDCCCCFCEEF4504185EB51D897B8544185EB51C8EFF450410AD7A3D096B854410AD7A300F1F45041CDCCCC7C93B85441CDCCCCACF3F450410AD7A34090B854410AD7A330F4F450410AD7A3208FB85441CDCCCCACF3F45041CDCCCCDC8DB8544185EB5148F4F4504148E17AE48BB8544148E17A44F5F4504185EB51F88CB85441CDCCCC1CF6F4504185EB51488BB85441CDCCCC4CF6F4504148E17AD489B8544148E17A04F6F4504148E17A0487B8544148E17A54F7F4504185EB51C883B85441CDCCCC8CF8F4504148E17AC481B8544185EB5108F8F4504185EB513880B854410AD7A350F8F450410AD7A3007FB8544148E17AE4F7F45041CDCCCC7C7EB8544148E17A44F6F4504185EB51D87FB8544185EB5188F0F4504185EB51D888B854410AD7A390F1F45041CDCCCCEC89B8544148E17A54F1F4504148E17A848BB8544185EB5128F0F4504185EB51D88BB8544148E17AE4EEF4504185EB51988CB85441CDCCCCECECF4504185EB513892B85441CDCCCCFCEBF45041CDCCCC5C98B8544148E17A54EBF4504185EB51189AB854410AD7A360EBF4504185EB51289CB85441CDCCCCBCE9F4504148E17A649FB854410AD7A350E9F4504148E17A04A2B8544148E17A24E8F450410AD7A3F0A3B854410AD7A320E6F4504148E17AE4A9B8544185EB51A8E5F450410AD7A390ACB8544101030000000100000010000000CDCCCCFCDFF4504148E17A44BCB8544185EB5168E0F45041CDCCCC5CBCB85441CDCCCCBCE0F450410AD7A390BBB8544148E17A74E3F4504185EB5158B7B854410AD7A3E0E3F4504148E17A74B6B854410AD7A3E0E3F45041CDCCCC3CB5B85441CDCCCCDCE4F4504148E17A04B4B8544148E17A14E6F4504148E17A64B1B85441CDCCCC6CE5F450410AD7A310B1B8544185EB5178E5F4504185EB5198ADB8544185EB5158E4F450410AD7A360AFB854410AD7A3E0E3F450410AD7A370B1B854410AD7A3C0E2F45041CDCCCCFCB2B8544148E17A54E2F450410AD7A330B5B8544148E17A34E1F4504185EB5158B7B85441CDCCCCFCDFF4504148E17A44BCB854410103000000010000003D000000E17A141E55F650415C8FC2053AB9544114AE47B156F65041D7A370BD37B95441D7A3708D5AF650415C8FC2C538B954419A9999E95BF650415C8FC2C538B95441F6285CAF5EF65041AE47E1CA37B954418FC2F58860F65041D7A370BD37B9544185EB517863F65041AE47E18A36B954410AD7A3C065F65041713D0AA736B95441C3F528CC68F650417B14AE7737B95441295C8F626CF6504148E17A6438B95441AE47E1DA72F650410000004037B95441C3F5283C73F650410AD7A39035B954411F85EB7174F6504114AE478134B9544152B81E355FF650418FC2F51831B954410AD7A3804BF650410AD7A3002EB95441C3F5280C39F65041E17A143E29B954410000005035F650410AD7A37029B95441F6285C8F31F65041E17A14AE28B954418FC2F57830F650418FC2F5F827B954418FC2F5782BF65041B81E853B26B95441D7A370AD29F650413D0AD70326B95441A4703DAA27F6504148E17A9425B954410000003029F650418FC2F5F827B95441E17A143E29F65041E17A14AE28B95441713D0A172BF65041295C8F6229B954410AD7A3B02BF65041E17A14EE29B95441B81E853B2CF65041CDCCCC3C30B9544185EB51E82BF65041EC51B86E31B954413D0AD7032CF650417B14AE4733B95441EC51B8FE2CF650411F85EBB134B95441D7A3706D2DF650417B14AE7737B954419A9999492CF65041B81E854B3AB9544148E17A142EF65041AE47E1FA3BB954419A9999892DF650415C8FC2853CB9544152B81E652CF65041AE47E13A3DB95441713D0AD729F65041C3F5285C3CB95441EC51B8CE28F650418FC2F5C83FB9544148E17A2426F650415C8FC2753FB954415C8FC20524F65041F6285C9F3FB954411F85EBE122F65041AE47E17A3EB954417B14AE7721F6504114AE47513EB95441295C8F421EF65041EC51B8CE3EB95441C3F5282C1DF650418FC2F5C83FB95441A4703D3A1DF6504185EB517841B95441D7A3708D1DF65041713D0A9743B95441000000101EF65041AE47E1AA44B9544185EB511821F6504148E17A1444B954417B14AE873BF65041F6285CFF3EB954410AD7A30040F65041A4703DEA3DB95441AE47E10A44F650419A9999E93CB954410AD7A32047F650411F85EB113CB95441A4703D6A47F65041C3F5281C3BB954413D0AD7C346F65041F6285CEF38B95441C3F5280C49F6504114AE47E138B95441713D0A474BF65041713D0AE737B954418FC2F5784CF65041D7A370BD37B954413D0AD7B34EF650413333334339B954417B14AE1751F65041F6285C2F3AB95441C3F5283C52F6504148E17AA439B954410AD7A36053F65041F6285C2F3AB95441E17A141E55F650415C8FC2053AB9544101030000000100000061000000C3F5280CB1F5504148E17A1419B954410AD7A3B0B2F5504185EB51781BB95441C3F528DCB3F5504185EB51981CB9544185EB5108B5F55041CDCCCC1C1DB9544148E17AA4B5F55041CDCCCC8C1FB9544185EB5158B9F55041CDCCCC5C1FB9544148E17AE4BAF5504185EB515820B9544148E17AA4BBF5504148E17A2421B9544148E17AF4BCF550410AD7A32022B95441C3F528CCBDF5504185EB51E823B9544185EB51A8BDF55041CDCCCC9C24B954410AD7A350BEF55041CDCCCC8C25B95441C3F5284CBFF55041CDCCCC7C26B95441C3F528ACC2F5504185EB51D827B9544148E17AE4C3F55041CDCCCCBC28B954410AD7A350C4F55041CDCCCC7C29B9544148E17A54C9F5504148E17AF42CB954410AD7A370CBF55041CDCCCCFC2DB9544148E17A84CCF55041CDCCCC2C2EB95441C3F5285CCDF5504148E17A642FB9544148E17AA4CDF550410AD7A3F030B9544148E17AC4CEF5504185EB51A833B9544185EB51A8CFF5504148E17AA434B95441C3F528ECD0F55041CDCCCC1C35B954410AD7A300D2F550410AD7A3C036B95441C3F5283CD2F55041CDCCCC4C38B954410AD7A320D3F5504185EB51D839B954410AD7A3B0D3F550410AD7A3D03BB9544185EB51A8D5F5504185EB51283EB9544148E17A44D9F55041CDCCCCEC40B9544148E17A94DAF5504148E17AC441B954410AD7A360DBF5504185EB51D842B95441C3F5282CDCF5504185EB51C843B9544148E17A84DEF55041CDCCCC0C45B9544185EB51D8E1F5504185EB51A845B9544148E17A34E3F550410AD7A36045B954410AD7A3E0E5F55041CDCCCCFC45B9544185EB5138E8F5504185EB51E844B95441C3F528CCEAF550410AD7A30045B9544185EB5158ECF5504148E17AB445B9544148E17A84EDF5504185EB51F846B954410AD7A3B0EEF55041CDCCCCAC47B954410AD7A300F0F5504185EB51A848B954410AD7A380F1F550410AD7A3F04BB95441C3F5282CF1F55041CDCCCCEC4CB9544148E17A44F1F550410AD7A3A04DB95441C3F528ECF1F550410AD7A3904EB95441C3F5286CF3F550410AD7A3804FB954410AD7A3B0F4F5504185EB51984FB9544148E17AF4F5F55041CDCCCC1C50B95441C3F5283CF6F55041CDCCCCAC50B9544148E17A74F7F55041CDCCCC3C51B9544148E17AF4F8F550410AD7A36051B9544185EB5188FBF5504148E17AA452B954410AD7A340FEF550410AD7A30054B9544148E17A64FEF550410AD7A3B055B9544185EB5198FDF5504185EB51B856B95441C3F528ACFBF550410AD7A36057B9544185EB5188FEF550410AD7A3F057B95441C3F528ACFEF5504185EB517857B9544185EB517802F6504185EB51D854B954410AD7A33005F6504148E17AF453B9544185EB512807F6504148E17A9453B954410AD7A36008F6504185EB51E853B9544148E17A040AF6504148E17A9453B95441C3F5288C0CF650410AD7A3F051B9544148E17AF410F650410AD7A37050B9544185EB51C812F6504185EB51F84FB95441C3F5288C15F65041CDCCCC9C4EB95441C3F528AC16F65041CDCCCC5C4CB954410AD7A36017F6504148E17A544BB954410AD7A3B018F650410AD7A3D04AB9544148E17A141BF650410AD7A3004BB954410AD7A3101CF6504185EB51E847B954410AD7A35015F65041CDCCCC9C45B9544148E17A840BF6504148E17A3447B954410AD7A31001F65041CDCCCC7C47B95441C3F5280CF9F550410AD7A38046B9544148E17AA4EEF5504185EB512844B95441C3F5280CE7F5504185EB515841B9544185EB5198DFF5504148E17AA43DB954410AD7A370D7F5504185EB510837B9544148E17AF4CEF5504148E17A842DB95441C3F5281CC8F5504185EB51E826B9544185EB5168C1F5504185EB519822B9544148E17A94BCF55041CDCCCC6C1EB9544185EB5158B9F550410AD7A3A01AB95441C3F528DCB6F550410AD7A34017B95441666666F6B3F55041295C8F7212B95441F6285C7FB1F55041AE47E14A0DB9544148E17AF4B0F550410AD7A3D00BB9544148E17AD4AFF55041CDCCCC1C0EB954410AD7A350AFF55041CDCCCC7C11B954410AD7A3E0AFF55041CDCCCC5C13B954410AD7A3B0AFF5504185EB518814B9544148E17AF4B0F5504185EB51E817B95441C3F5280CB1F5504148E17A1419B9544101030000000100000009000000EC51B8CE86F650418FC2F5D837B954410AD7A33087F65041C3F5289C38B95441F6285C3F90F65041666666E638B954417B14AE9795F650416666660639B9544185EB514895F65041295C8F5236B95441A4703D0A95F650410AD7A33033B954417B14AE4785F65041D7A370FD33B954410AD7A33087F650410AD7A3D036B95441EC51B8CE86F650418FC2F5D837B9544101030000000100000021000000EC51B83E99F45041295C8FD202B95441E17A147E9AF45041CDCCCCDC03B954413D0AD7739AF450411F85EB3105B95441E17A143E9BF45041CDCCCC7C05B9544185EB5188A1F45041D7A370BD02B9544114AE47F1A8F45041E17A14BEFEB8544114AE4751AAF450418FC2F508FDB85441B81E859BADF450418FC2F5E8FBB85441AE47E13AB2F45041EC51B83EF9B854415C8FC2C5B2F45041EC51B8BEF8B8544152B81EC5B5F45041A4703DEAF3B8544152B81EA5B5F45041A4703D8AF2B854419A999999B9F4504100000080EFB85441EC51B82EBBF4504100000000EFB854413D0AD763BCF45041000000A0EFB854418FC2F5B8BDF45041000000A0EFB854413D0AD783BEF4504100000000EFB854413D0AD703BFF45041AE47E1EAEDB8544100000020B7F450417B14AE27EEB85441EC51B88EB0F450413D0AD753EEB85441C3F5281CAAF45041AE47E1EAEFB85441713D0A07A9F45041A4703D8AF0B85441713D0A47A7F45041F6285CFFF2B85441713D0A87A7F4504148E17A14F4B85441CDCCCCDCA6F450419A999989F5B854417B14AE47A5F4504148E17AB4F6B85441295C8F72A3F4504148E17A14F6B854417B14AE07A3F45041F6285C5FF5B85441E17A14FE9CF45041EC51B8BEF9B854419A9999E997F450418FC2F5E8FCB85441EC51B8BE98F4504185EB512800B95441EC51B83E99F4504185EB512801B95441EC51B83E99F45041295C8FD202B954410103000000010000003100000014AE4741E6F45041E17A144ED0B85441EC51B83EE5F45041E17A14EECFB8544152B81E45E6F4504185EB5148C9B8544185EB51D8E5F4504148E17A24C7B8544148E17AC4E4F4504185EB5188C6B8544185EB51C8E3F4504185EB5108C5B8544148E17A04E4F45041CDCCCC7CC3B8544185EB51C8E3F4504185EB51A8C1B85441CDCCCC6CE2F450410AD7A310C0B8544148E17A94E1F4504148E17A44BFB8544185EB51F8E0F450410AD7A390BEB8544185EB5198E0F450410AD7A310BDB85441CDCCCC2CE0F4504148E17A04BDB8544148E17AF4DEF45041CDCCCC2CBFB854410AD7A3E0DDF4504185EB5188C6B85441CDCCCC6CDCF45041CDCCCC2CC8B854410AD7A3D0DBF450410AD7A330CAB8544148E17A44DAF4504185EB51C8CBB8544185EB51A8D9F45041CDCCCC9CCDB8544185EB5188D5F450410AD7A320D1B8544185EB51B8D2F450410AD7A300D3B8544185EB5198CEF4504148E17A34D5B854410AD7A3F0C7F45041CDCCCC5CDAB8544185EB51C8BFF450410AD7A390DFB8544185EB5158BDF45041CDCCCC9CE2B854410AD7A300BEF450410AD7A360E2B8544148E17A74BFF450410AD7A340E1B8544185EB51C8C2F450410AD7A3C0DFB8544185EB51F8C5F4504185EB51B8DEB854410AD7A3D0C9F4504148E17A74DDB85441CDCCCC0CCDF450410AD7A330DCB85441CDCCCC0CD0F4504148E17A34E1B8544148E17A24D0F4504185EB5118E2B854410AD7A3D0D2F450410AD7A370E4B8544185EB5178D3F450410AD7A380E3B8544148E17A64D5F4504185EB5108E3B8544185EB5158D8F45041CDCCCC7CE1B8544148E17A84D9F4504185EB51E8E1B8544148E17AC4D8F45041CDCCCC8CE0B8544185EB5118D9F4504148E17AC4DEB854410AD7A380DAF4504148E17A44DDB854410AD7A3A0DBF450410AD7A3F0DCB8544185EB5158DEF45041CDCCCCECDAB8544148E17AA4DDF450410AD7A360D9B8544185EB5198DDF4504148E17AA4D7B854410AD7A3D0E1F450410AD7A340D5B854410AD7A320E3F450410AD7A370D5B85441D7A370DDE3F450411F85EB91D4B8544114AE4741E6F45041E17A144ED0B854410103000000010000002F0000000AD7A3109EF550410AD7A350FEB85441C3F528BC9DF5504185EB51E8FCB854410AD7A3409EF55041CDCCCCBCFBB8544185EB51189FF55041CDCCCCCCFAB854410AD7A350A0F5504148E17AB4FAB8544148E17AA4A0F5504185EB5178FAB8544185EB5158A1F55041CDCCCC6CFAB8544185EB5198A3F5504148E17A34FCB8544185EB51E8A4F550410AD7A3A0FCB85441C3F5282CA6F5504185EB5148FDB85441C3F5286CA8F55041CDCCCCFCFDB85441C3F528ECA9F5504148E17A14FEB8544185EB5178ABF55041CDCCCC1CFFB85441C3F528FCABF5504185EB517800B95441C3F528ACADF550410AD7A39003B9544148E17AE4AEF55041CDCCCC4C05B9544185EB5148ACF55041713D0AA7F6B85441C3F528DCAAF5504133333303F0B8544152B81EA5AAF5504133333303EFB85441F6285CCFA8F5504152B81EA5E1B854417B14AEE7A8F55041CDCCCCBCDAB8544185EB5118A8F5504185EB51E8DBB854410AD7A3A0A7F55041CDCCCCBCDDB854410AD7A3A0A7F5504185EB5148DFB854410AD7A390A8F5504148E17AC4E4B85441C3F5280CA8F5504148E17A44E6B8544185EB5118A8F5504185EB5168E9B8544148E17AE4A8F55041CDCCCCDCEAB854410AD7A3C0A8F5504185EB5198ECB854410AD7A350A9F5504148E17AF4EDB854410AD7A350A9F550410AD7A3E0EFB85441C3F5287CA7F55041CDCCCC9CF7B85441C3F528FCA5F5504148E17AA4F8B8544185EB51E8A1F5504185EB5128F9B85441C3F528DC9EF5504185EB51A8F7B8544185EB51F89DF55041CDCCCCCCF7B8544148E17AD49AF5504148E17A24F7B85441C3F528FC96F5504148E17A54F7B8544185EB51B895F5504148E17A24F7B854413D0AD76394F55041295C8F62F7B85441EC51B83E9BF5504114AE471105B95441C3F5283C9CF5504148E17AD404B9544185EB51C89DF55041CDCCCC0C06B9544148E17A949EF5504185EB512805B954410AD7A3109EF5504185EB51E802B9544148E17AD49DF5504185EB5158FFB854410AD7A3109EF550410AD7A350FEB85441
+</a>
+
+<b>
+0106000000010000000103000000010000004900000014AE4751AAF450418FC2F508FDB85441B67E8CA4ACF45041661F693DFCB854410A1BD6E5ADF45041AB9EC6BDFBB85441F68FB34AB2F4504144572330F9B854413AADC061B2F450419D86E41AF9B85441432E7AEEB2F45041414B1C7DF8B8544156F678CBB3F450418AED0219F7B85441FAE1C362B4F450417C233A25F6B85441D4EDB2E0B4F45041F5DA8B42F5B85441FD312CC1B5F4504102ABD1BEF3B8544152B81EA5B5F45041A4703D8AF2B8544184A70CADB5F45041F0222584F2B854414B6CE9ACB5F45041FB0C0382F2B85441211EE063B6F4504117C89DF7F1B854413019029CB6F45041C25578CCF1B8544151F0D22FB8F45041F5011496F0B8544134ED4996B8F4504165443746F0B854419C7F40A4B8F45041900B963CF0B854419A999999B9F4504100000080EFB85441EC51B82EBBF4504100000000EFB8544191FECE7FBBF45041CEA7F829EFB85441B8B2826ABCF4504100A95189EFB85441E74940B1BDF45041118CA298EFB8544138631E93BEF45041B7EEEBDEEEB854413D0AD703BFF45041AE47E1EAEDB8544100000020B7F450417B14AE27EEB8544117279B4AB1F45041BCB0E74EEEB85441492896B7AFF45041C8B9E488EEB85441C3F5281CAAF45041AE47E1EAEFB85441713D0A07A9F45041A4703D8AF0B8544154322AA2A7F45041380B657FF2B85441DC7D2F56A7F45041041CA501F3B85441B2503E81A7F45041547C61FBF3B85441713D0A87A7F4504148E17A14F4B854416149F985A7F45041B21ED116F4B85441821D3D89A7F4504105EDC029F4B85441486C2B44A7F450417AB10AA7F4B85441CDCCCCDCA6F450419A999989F5B85441AFA983B8A6F450412CB95EA4F5B85441EFBBB5ADA6F4504147FDF7B7F5B854410953673CA6F45041B7FAEEFFF5B854417B14AE47A5F4504148E17AB4F6B85441295C8F72A3F4504148E17A14F6B854410BB96B0BA3F45041EBFDB265F5B85441A1C86A969CF45041A0BE0816FAB854411938A8E997F45041AAC92EE9FCB854415709211298F450413A4F0F87FDB8544181CDFB5698F45041A56C4F7EFEB854415A4A738E98F45041495F066CFFB854411C4A699098F45041EA9EAC73FFB854410B93B7A298F45041905A15BBFFB85441C523D31799F45041378F87DA00B95441EC51B83E99F4504185EB512801B95441EC51B83E99F4504137E9FF3901B954418108EF4699F45041BB1D294E01B95441EC51B83E99F450415E26F67902B95441EC51B83E99F4504148E695C402B95441706091279AF45041ACDC0F8F03B9544155A991889AF45041FE6853CC03B954418AD55F7A9AF45041AB903E5804B954413D0AD7739AF450411F85EB3105B95441F79B92879AF4504127E1393905B9544130B4963F9BF450418018247C05B95441694275539CF450415CD9A30305B954414BE81E449DF45041067B849A04B95441ED7D6CDC9EF45041D138DAE503B95441288B1003A2F45041AB0BF46602B954410E67BE7EA7F450413CCF6B5EFFB85441821D3D89A7F45041E741931CFFB85441027022E5A7F450419D2EC926FFB854414D540803A9F45041C14FA08DFEB854418533D4D4A9F45041A27081A3FDB8544114AE4751AAF450418FC2F508FDB85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>801940 - 356466
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+01060000000D000000010300000001000000120100007B14AEA7E8F450417B14AE87F5B854416FB507B6EEF4504114621A4DF7B85441C3F528ECEFF4504148E17AC4F6B85441C3F5289CF1F45041CDCCCCACF6B85441C3F528FCF1F45041CDCCCCFCF7B85441C3F5285CF2F450418FC2F508F8B854410AD7A3C0F4F450418FC2F528F6B8544148E17A34F6F4504148E17A74F5B8544185EB5178F7F45041CDCCCC0CF7B854410AD7A3C0F7F4504148E17A64F6B854410AD7A310F9F4504148E17A34F6B8544148E17A64F9F45041CDCCCCACF3B854410AD7A3F0FAF4504148E17AA4EFB8544185EB5168FBF45041CDCCCC5CEFB8544185EB5168FBF450410AD7A3C0EEB8544148E17AE4FAF45041CDCCCC6CEEB85441C3F528DCF9F45041CDCCCCFCEEB8544148E17A04F9F450410AD7A350EFB854410AD7A320F8F450418FC2F5A8EEB8544185EB5138F8F4504148E17AF4EDB85441C3F5280CFAF4504148E17A34EDB85441C3F5282CF8F4504148E17AD4ECB8544185EB5108F8F450410AD7A360EBB854410AD7A3B0F8F45041CDCCCC8CE9B8544148E17A14FBF45041CDCCCCBCE9B854410AD7A380FBF450418FC2F5B8EAB854410AD7A330FDF450410AD7A370EAB8544148E17A04FFF450418FC2F5B8EAB854410AD7A310FFF450418FC2F538E9B85441C3F528BCFEF450418FC2F5E8E7B854410AD7A3A0FFF4504148E17A34E7B8544185EB517800F550410AD7A320E6B8544148E17A9402F550410AD7A360E5B85441C3F5280C03F550418FC2F578E5B854410AD7A39003F550410AD7A3D0E4B85441C3F5283C03F5504148E17AD4E3B85441C3F5285C04F550418FC2F598E3B854410AD7A34005F5504148E17AE4E2B8544185EB517806F55041CDCCCCCCE2B854410AD7A3B007F55041CDCCCC6CE2B854410AD7A33009F5504148E17A84E2B854410AD7A3E00AF5504148E17AC4E1B85441C3F5288C0AF550410AD7A3F0DFB854410AD7A3E00AF550410AD7A360DFB8544185EB51880BF550410AD7A390DFB854410AD7A3100BF550410AD7A390DCB854410AD7A3D00BF550418FC2F558DBB85441C3F528DC0BF55041CDCCCCCCD9B85441C3F528DC08F550410AD7A3A0D8B8544185EB51F807F55041CDCCCC2CD7B85441C3F528DC08F550418FC2F5C8D4B8544148E17A8409F55041CDCCCC8CD4B8544185EB51080AF5504148E17A64D2B85441C3F5288C0AF550410AD7A310D2B85441C3F5280C0CF55041CDCCCC1CD2B8544148E17AB40CF550418FC2F588D2B854410AD7A3400EF550418FC2F5C8D4B854410AD7A3400EF550410AD7A390D6B85441C3F528CC0CF550410AD7A3C0D6B8544185EB51380DF55041CDCCCC2CD7B8544148E17A840CF5504148E17A94D8B8544185EB51A80CF550418FC2F568DAB85441C3F528BC0DF5504148E17A34DBB854410AD7A3900FF550410AD7A350DDB854410AD7A31011F550418FC2F5C8DDB854410AD7A36012F55041CDCCCCECDDB8544185EB510813F550418FC2F5C8DDB85441C3F5284C14F550410AD7A3D0DEB85441C3F5286C16F55041C3F528ACDFB85441A4703DAA18F550417B14AE77DBB85441C3F528AC17F5504148E17AA4DAB854410AD7A32016F5504148E17A14DAB85441C3F528AC14F550418FC2F598DAB8544185EB510813F5504148E17AB4DCB8544185EB517812F55041CDCCCCCCDCB854410AD7A31011F550410AD7A3A0DBB8544148E17AA410F5504148E17AB4DCB8544185EB513810F550418FC2F528DBB8544148E17AA410F55041CDCCCCECDAB8544185EB51C810F550410AD7A390D9B8544185EB51B811F550410AD7A3C0D6B85441C3F528FC12F550410AD7A330D6B8544185EB512814F550418FC2F588D5B854410AD7A36015F5504148E17A84D3B854410AD7A3F015F550410AD7A360D3B8544185EB513816F5504148E17A84D3B85441C3F528BC16F550418FC2F548D3B8544185EB51A818F550410AD7A350D1B8544148E17A7419F55041CDCCCCFCD0B85441C3F5285C19F5504148E17A74CEB8544185EB51C819F55041CDCCCC6CCDB854410AD7A35019F550410AD7A3D0CCB85441C3F5288C19F550418FC2F598CBB8544185EB51B81AF55041CDCCCCFCCAB8544148E17A441CF55041CDCCCCACC9B8544185EB51F81CF5504148E17AF4C9B8544148E17A641DF55041CDCCCC3CCAB8544148E17A641DF550418FC2F528CCB8544148E17A241EF5504148E17A64CCB854410AD7A3501FF550410AD7A3A0CCB854410AD7A3301EF550410AD7A3B0CEB854410AD7A3E01CF5504148E17A64D2B85441C3F5281C1DF5504148E17A24D3B85441AE47E1BA21F550415C8FC2C5CBB85441A4703D8A26F55041C3F528FCC4B8544185EB51D824F550418FC2F528C6B854410AD7A30024F550418FC2F538C5B854410AD7A3F024F550418FC2F518C4B8544148E17A4425F550410AD7A320C2B8544185EB51F825F55041CDCCCC0CC1B8544148E17AC426F550410AD7A3A0BDB85441C3F5281C26F550410AD7A310BDB8544148E17A1425F5504148E17A64BDB85441C3F528FC24F550410AD7A3B0BCB85441C3F528AC26F55041CDCCCCFCBBB8544185EB51C825F550418FC2F528BAB85441C3F5284C26F550410AD7A3A0B7B8544148E17A2427F5504148E17A04B7B8544148E17AA428F55041CDCCCCECB6B854410AD7A3A029F5504148E17AD4B6B8544185EB51482AF5504148E17A54B8B85441CDCCCC5C2BF550418FC2F568BCB85441295C8F322BF550418FC2F568BEB8544185EB51B830F55041E17A149EB6B85441AE47E16A32F55041D7A3704DB5B8544148E17AA431F5504148E17AF4B4B8544185EB51B82FF5504148E17AF4B4B8544185EB51182DF550418FC2F538B6B8544148E17A642CF5504148E17AB4B5B85441CDCCCC1C2CF55041CDCCCC1CB4B8544148E17A942CF5504148E17A84B2B8544185EB51282CF550410AD7A350B0B854410AD7A3502BF5504148E17A94AEB8544185EB51982BF5504148E17A44ADB854410AD7A3A02CF550410AD7A350ADB85441CDCCCC5C2EF550410AD7A310AEB85441CDCCCCBC2EF55041CDCCCC8CADB85441CDCCCCEC2EF550410AD7A390ACB854410AD7A3502EF550418FC2F518ACB854410AD7A3002DF5504148E17A54ACB854410AD7A3B02BF550418FC2F5E8ABB8544148E17A542AF550410AD7A300ACB8544185EB518829F550418FC2F528ABB8544185EB510828F550410AD7A3E0AAB854410AD7A38028F5504148E17A14AAB854410AD7A31029F5504148E17AE4A9B854410AD7A3602AF55041CDCCCC9CA6B8544148E17A542DF55041CDCCCC5CA7B8544185EB51782DF55041CDCCCCDCA5B85441CDCCCC7C2FF5504148E17AF4A5B854410AD7A39030F5504148E17A34A2B85441CDCCCCEC31F5504148E17A44A1B85441CDCCCCFC36F5504148E17A34A2B85441CDCCCCAC38F55041CDCCCC1CA2B85441CDCCCC6C39F55041CDCCCC5CA1B8544148E17A443AF55041CDCCCCFCA0B8544148E17A643BF550418FC2F538A1B854410AD7A3403BF550410AD7A3709FB85441CDCCCC3C3CF550410AD7A3109FB85441CDCCCC5C3DF550418FC2F5089EB8544185EB51583EF550418FC2F5089EB854410AD7A3603FF550418FC2F5C89EB85441CDCCCC2C40F550418FC2F5F89EB8544185EB519840F5504148E17A949FB85441CDCCCC3C42F55041CDCCCC6CA0B85441CDCCCC6C42F5504148E17AF49FB8544185EB515841F5504148E17A449EB85441CDCCCCCC42F550410AD7A3D09CB8544185EB51D842F550418FC2F5389BB854410AD7A39042F5504148E17A849AB854410AD7A3F042F5504148E17A849AB854410AD7A32043F5504148E17AB49AB854410AD7A3C045F550410AD7A3F09AB854410AD7A35046F55041CDCCCCBC9BB8544185EB519846F5504148E17A149BB854410AD7A3D047F550410AD7A3009AB854410AD7A3B049F550410AD7A3609AB85441CDCCCCAC4AF550410AD7A3209BB85441CDCCCC9C4BF55041CDCCCC6C9AB854410AD7A3D04DF55041CDCCCCFC97B85441CDCCCCCC4EF55041CDCCCCFC97B854410AD7A3504FF550418FC2F53898B8544185EB519852F55041CDCCCC1C99B8544148E17A8454F550418FC2F5789AB85441CDCCCCCC54F550418FC2F5E899B8544185EB51C855F550418FC2F5489AB8544148E17A3456F5504148E17A6499B854410AD7A3D059F550418FC2F53898B85441CDCCCCFC5AF550410AD7A38098B85441A4703D8A5BF55041C3F528FC9AB85441AE47E1AA5CF55041666666069BB854410AD7A3005DF5504148E17A849AB8544148E17A745EF55041CDCCCC3C9AB85441333333E35EF55041F6285CFF9AB85441295C8F3263F550415C8FC2E59AB8544148E17A1464F55041CDCCCC0C9AB85441295C8FE264F55041C3F528DC9AB85441A4703D8A68F55041666666C69AB8544185EB512868F550410AD7A36097B85441CDCCCCFC66F550418FC2F58896B85441CDCCCCCC66F550418FC2F53895B854410AD7A3506AF5504148E17A6493B8544185EB51A869F550418FC2F5C892B85441CDCCCC1C62F5504148E17A4492B85441CDCCCCFC60F55041CDCCCCEC92B8544148E17A945FF550418FC2F55893B854410AD7A3205EF55041CDCCCC3C94B85441CDCCCC7C5CF55041CDCCCCDC93B85441CDCCCC6C5AF5504148E17AF493B8544185EB518859F5504148E17A0493B8544185EB516858F5504148E17AC490B85441CDCCCC1C56F5504148E17A2491B85441CDCCCC5C55F55041CDCCCC4C90B85441CDCCCC0C54F550418FC2F58890B85441CDCCCCDC53F550418FC2F50892B8544185EB512853F55041CDCCCC5C92B8544148E17A1452F5504148E17A9490B8544148E17AF450F5504148E17A748FB85441CDCCCC8C4FF550410AD7A3508FB85441CDCCCCFC4EF55041CDCCCC4C90B85441CDCCCCFC4EF550410AD7A39091B8544185EB51584DF550418FC2F54891B8544185EB51C849F55041CDCCCCAC90B8544185EB517845F55041CDCCCC1C90B8544148E17A9441F5504148E17AC490B854410AD7A3103EF550418FC2F5A891B8544185EB51183CF550418FC2F59892B8544148E17A043BF55041CDCCCC7C93B85441CDCCCC4C3BF550410AD7A3F094B85441CDCCCCDC38F550410AD7A3B095B85441CDCCCCFC36F550418FC2F53895B8544185EB518835F5504148E17A3496B854410AD7A37035F550410AD7A33097B8544185EB51F834F55041CDCCCC3C97B85441CDCCCC2C34F55041CDCCCC5C98B854410AD7A33033F550418FC2F55899B8544148E17A5430F550418FC2F5A89AB85441CDCCCC4C2FF5504148E17AA49BB8544148E17A942CF55041CDCCCC9C9AB854410AD7A3A029F5504148E17A149BB85441EC51B82E29F550413D0AD7139BB85441E17A14EE26F5504152B81E659CB854413333330321F550417B14AEE79FB854410000002018F5504152B81EF5A7B85441B81E85EB15F5504133333363AAB85441CDCCCCFC13F5504148E17A64ADB854410AD7A38013F550410AD7A340AEB854410AD7A38013F55041CDCCCCCCAFB85441C3F5287C11F5504148E17A74B3B85441C3F5286C0FF550418FC2F558B4B8544148E17AE40CF550418FC2F5A8B8B8544185EB51E80BF55041CDCCCCECB9B854410AD7A3400BF55041CDCCCC2CBFB854410AD7A3A008F550418FC2F5A8C1B8544185EB51F804F5504148E17AB4CAB85441C3F528DC05F550418FC2F568CBB8544185EB517806F550418FC2F5D8CDB85441C3F5284C05F5504148E17A84D0B854410AD7A31005F550418FC2F5F8D1B85441C3F528CC03F55041CDCCCC1CD2B85441C3F5283C03F550410AD7A350D4B854410AD7A35001F5504148E17A24D3B854417B14AE67FEF45041A4703D6AD8B85441CDCCCCECF8F450415C8FC285DFB8544185EB51E8F9F45041CDCCCC0CE2B85441C3F5287CF9F450418FC2F5D8E2B854410AD7A350F8F450418FC2F578E2B8544148E17A34F6F450410AD7A310E4B85441C3F528FCF4F450418FC2F5B8E4B85441C3F5287CF3F450418FC2F5B8E4B8544185EB51F8EBF4504185EB51C8EBB854413D0AD7E3E9F45041CDCCCCDCEEB854418FC2F5B8E8F45041EC51B82EF2B854417B14AEA7E8F450417B14AE87F5B854410103000000010000001600000085EB51F891F5504148E17A74A7B85441CDCCCC0C93F550410AD7A300A9B8544185EB518895F550410AD7A330A9B8544148E17A1497F5504148E17AE4A9B8544185EB51A899F550410AD7A300ACB854410AD7A3E09AF5504148E17A24ACB8544185EB51E89BF550418FC2F5B8ABB85441EC51B83E9EF55041AE47E10AACB85441CDCCCC5C9DF5504148E17AD4AAB85441CDCCCCCC99F550418FC2F558A8B854410AD7A38097F550418FC2F568A4B85441A4703D0A96F55041F6285C4FA3B8544148E17A8493F550418FC2F518A3B85441CDCCCC8C8BF550418FC2F598A1B8544148E17AD48BF5504148E17A64A2B85441CDCCCC4C8CF550410AD7A330A3B8544185EB51588CF550410AD7A380A4B85441CDCCCCCC8DF550410AD7A3B0A7B85441CDCCCCEC8EF550410AD7A320A7B85441CDCCCCAC8FF5504148E17A44A7B85441CDCCCCFC90F550418FC2F5D8A6B8544185EB51F891F5504148E17A74A7B854410103000000010000001800000000000060FBF4504152B81E7564B854410AD7A370FFF450410AD7A3A063B8544148E17A64FFF45041CDCCCC2C62B854410AD7A3F0FDF4504148E17A1462B8544148E17A24FDF45041CDCCCC3C61B85441D7A370DDF9F450419A9999A962B8544185EB5188F6F4504148E17A6463B854410AD7A330F4F4504185EB51C862B854410AD7A3D0F0F45041CDCCCCEC62B8544148E17A44EFF450410AD7A30064B8544148E17AF4EDF45041CDCCCC0C64B854410AD7A310EDF4504185EB517864B85441CDCCCC1CEAF450410AD7A39064B8544185EB5198E9F4504148E17A5464B8544148E17A04E7F45041CDCCCCCC64B854410AD7A330E5F4504148E17A0466B8544148E17AA4E3F45041CDCCCC1C66B854410AD7A3C0E2F45041CDCCCCDC66B8544148E17AE4DFF450410AD7A33067B854418FC2F5E8DFF45041666666C667B85441B81E855BEAF4504185EB51B866B8544152B81E45F7F450419A99990967B85441A4703D4AF9F4504152B81E1567B8544100000060FBF4504152B81E7564B8544101030000000100000016000000CDCCCC5CA3F550410AD7A3F0BEB85441CDCCCCACA4F550418FC2F598BFB854410AD7A350A6F5504148E17A54C1B8544185EB5158A7F550410AD7A3C0C4B85441CDCCCC2CA6F55041CDCCCCCCBBB854410AD7A380A3F550410AD7A3E0B9B8544148E17A24A2F55041CDCCCCECB6B8544148E17AF4A1F5504148E17AB4B5B8544148E17A94A1F550418FC2F5C8B3B85441CDCCCC2CA0F5504148E17A24B2B85441CDCCCC9C9FF5504148E17A04B1B85441C3F5285C9FF550418FC2F578AFB85441CDCCCC3C9FF550410AD7A300AFB8544185EB51B89EF55041CDCCCC0CAFB8544148E17A549FF550410AD7A370B1B8544148E17A14A0F55041CDCCCC8CB6B85441CDCCCCCC9FF5504148E17A34BAB854410AD7A3C09FF5504148E17A94BDB8544148E17A14A0F5504148E17AB4BEB854410AD7A310A1F55041CDCCCCFCBEB854410AD7A390A2F550410AD7A3F0BEB85441CDCCCC5CA3F550410AD7A3F0BEB854410103000000010000002B0000000AD7A320EFF4504148E17AA47AB8544185EB5198EFF45041CDCCCCDC7BB85441CDCCCC5CEFF450410AD7A3C07CB85441CDCCCC5CEFF4504148E17AA47DB8544185EB51A8EEF45041CDCCCC1C81B8544148E17AE4EEF4504148E17A2482B8544148E17A34F0F450410AD7A36082B85441295C8F92F1F4504148E17AE484B854413D0AD703F4F45041CDCCCC6C81B854410AD7A3E0F4F45041AE47E10A7EB854413D0AD793F3F45041AE47E1AA77B85441713D0A17F0F450410000004070B85441C3F5284CEFF4504185EB51D86DB8544185EB51A8EEF45041CDCCCC4C6CB854410AD7A350ECF450410AD7A3606DB854410AD7A3E0E9F4504185EB51486DB8544185EB5128E4F4504148E17A746EB8544148E17AA4E3F450410AD7A3406FB8544185EB5178E2F450410AD7A33070B854410AD7A350DDF4504148E17A8470B8544148E17AB4DCF4504148E17AE470B8544185EB51E8DBF4504185EB515872B854410AD7A300DCF450410AD7A33073B85441CDCCCCECDDF4504148E17AF475B8544148E17A24DCF450410AD7A34078B85441CDCCCC2CDAF450410AD7A3C079B8544148E17A14DAF4504148E17AD47AB8544185EB51F8DAF4504148E17A547CB854410AD7A320E0F45041CDCCCC9C7CB8544148E17A24DFF4504148E17A747AB8544185EB5158E1F450410AD7A3D078B854410AD7A3C0E2F4504185EB514879B854410AD7A3E0E3F450410AD7A3807AB8544185EB51C8E3F45041CDCCCC7C7BB8544148E17A84E2F4504148E17AE47CB8544148E17A24E5F45041CDCCCCFC7CB85441CDCCCC1CE7F45041CDCCCC8C7DB8544148E17A24E8F45041CDCCCC2C7DB85441CDCCCCCCE8F450410AD7A3607CB8544185EB5198E9F4504185EB51487CB854410AD7A350ECF4504148E17A147AB8544148E17A64EDF450410AD7A3207AB854410AD7A320EFF4504148E17AA47AB854410103000000010000003000000085EB51A8E5F450410AD7A390ACB8544148E17AA4E6F45041CDCCCC6CACB8544185EB51E8E7F450410AD7A320ADB85441CDCCCC2CE9F45041CDCCCC7CABB854410AD7A3D0EAF450410AD7A380AAB8544185EB5148EBF45041CDCCCC6CA9B8544148E17A54EEF450410AD7A3D0A5B8544148E17A14EFF45041CDCCCC2CA4B8544185EB5178EEF4504148E17AA4A1B8544185EB5168EFF45041CDCCCC6CA0B8544185EB5138EFF45041CDCCCC9C9DB8544148E17AA4EFF4504148E17A049CB85441CDCCCCFCEEF45041CDCCCCAC9CB8544148E17A64EDF4504148E17AC49CB85441CDCCCC4CEDF45041CDCCCC2C9BB8544148E17A94EDF4504148E17AF499B8544185EB51D8EEF4504185EB51C898B85441CDCCCCFCEEF4504185EB51D897B8544185EB51C8EFF450410AD7A3D096B854410AD7A300F1F45041CDCCCC7C93B85441CDCCCCACF3F450410AD7A34090B854410AD7A330F4F450410AD7A3208FB85441CDCCCCACF3F45041CDCCCCDC8DB8544185EB5148F4F4504148E17AE48BB8544148E17A44F5F4504185EB51F88CB85441CDCCCC1CF6F4504185EB51488BB85441CDCCCC4CF6F4504148E17AD489B8544148E17A04F6F4504148E17A0487B8544148E17A54F7F4504185EB51C883B85441CDCCCC8CF8F4504148E17AC481B8544185EB5108F8F4504185EB513880B854410AD7A350F8F450410AD7A3007FB8544148E17AE4F7F45041CDCCCC7C7EB8544148E17A44F6F4504185EB51D87FB8544185EB5188F0F4504185EB51D888B854410AD7A390F1F45041CDCCCCEC89B8544148E17A54F1F4504148E17A848BB8544185EB5128F0F4504185EB51D88BB8544148E17AE4EEF4504185EB51988CB85441CDCCCCECECF4504185EB513892B85441CDCCCCFCEBF45041CDCCCC5C98B8544148E17A54EBF4504185EB51189AB854410AD7A360EBF4504185EB51289CB85441CDCCCCBCE9F4504148E17A649FB854410AD7A350E9F4504148E17A04A2B8544148E17A24E8F450410AD7A3F0A3B854410AD7A320E6F4504148E17AE4A9B8544185EB51A8E5F450410AD7A390ACB8544101030000000100000010000000CDCCCCFCDFF4504148E17A44BCB8544185EB5168E0F45041CDCCCC5CBCB85441CDCCCCBCE0F450410AD7A390BBB8544148E17A74E3F4504185EB5158B7B854410AD7A3E0E3F4504148E17A74B6B854410AD7A3E0E3F45041CDCCCC3CB5B85441CDCCCCDCE4F4504148E17A04B4B8544148E17A14E6F4504148E17A64B1B85441CDCCCC6CE5F450410AD7A310B1B8544185EB5178E5F4504185EB5198ADB8544185EB5158E4F450410AD7A360AFB854410AD7A3E0E3F450410AD7A370B1B854410AD7A3C0E2F45041CDCCCCFCB2B8544148E17A54E2F450410AD7A330B5B8544148E17A34E1F4504185EB5158B7B85441CDCCCCFCDFF4504148E17A44BCB854410103000000010000003D000000E17A141E55F650415C8FC2053AB9544114AE47B156F65041D7A370BD37B95441D7A3708D5AF650415C8FC2C538B954419A9999E95BF650415C8FC2C538B95441F6285CAF5EF65041AE47E1CA37B954418FC2F58860F65041D7A370BD37B9544185EB517863F65041AE47E18A36B954410AD7A3C065F65041713D0AA736B95441C3F528CC68F650417B14AE7737B95441295C8F626CF6504148E17A6438B95441AE47E1DA72F650410000004037B95441C3F5283C73F650410AD7A39035B954411F85EB7174F6504114AE478134B9544152B81E355FF650418FC2F51831B954410AD7A3804BF650410AD7A3002EB95441C3F5280C39F65041E17A143E29B954410000005035F650410AD7A37029B95441F6285C8F31F65041E17A14AE28B954418FC2F57830F650418FC2F5F827B954418FC2F5782BF65041B81E853B26B95441D7A370AD29F650413D0AD70326B95441A4703DAA27F6504148E17A9425B954410000003029F650418FC2F5F827B95441E17A143E29F65041E17A14AE28B95441713D0A172BF65041295C8F6229B954410AD7A3B02BF65041E17A14EE29B95441B81E853B2CF65041CDCCCC3C30B9544185EB51E82BF65041EC51B86E31B954413D0AD7032CF650417B14AE4733B95441EC51B8FE2CF650411F85EBB134B95441D7A3706D2DF650417B14AE7737B954419A9999492CF65041B81E854B3AB9544148E17A142EF65041AE47E1FA3BB954419A9999892DF650415C8FC2853CB9544152B81E652CF65041AE47E13A3DB95441713D0AD729F65041C3F5285C3CB95441EC51B8CE28F650418FC2F5C83FB9544148E17A2426F650415C8FC2753FB954415C8FC20524F65041F6285C9F3FB954411F85EBE122F65041AE47E17A3EB954417B14AE7721F6504114AE47513EB95441295C8F421EF65041EC51B8CE3EB95441C3F5282C1DF650418FC2F5C83FB95441A4703D3A1DF6504185EB517841B95441D7A3708D1DF65041713D0A9743B95441000000101EF65041AE47E1AA44B9544185EB511821F6504148E17A1444B954417B14AE873BF65041F6285CFF3EB954410AD7A30040F65041A4703DEA3DB95441AE47E10A44F650419A9999E93CB954410AD7A32047F650411F85EB113CB95441A4703D6A47F65041C3F5281C3BB954413D0AD7C346F65041F6285CEF38B95441C3F5280C49F6504114AE47E138B95441713D0A474BF65041713D0AE737B954418FC2F5784CF65041D7A370BD37B954413D0AD7B34EF650413333334339B954417B14AE1751F65041F6285C2F3AB95441C3F5283C52F6504148E17AA439B954410AD7A36053F65041F6285C2F3AB95441E17A141E55F650415C8FC2053AB9544101030000000100000061000000C3F5280CB1F5504148E17A1419B954410AD7A3B0B2F5504185EB51781BB95441C3F528DCB3F5504185EB51981CB9544185EB5108B5F55041CDCCCC1C1DB9544148E17AA4B5F55041CDCCCC8C1FB9544185EB5158B9F55041CDCCCC5C1FB9544148E17AE4BAF5504185EB515820B9544148E17AA4BBF5504148E17A2421B9544148E17AF4BCF550410AD7A32022B95441C3F528CCBDF5504185EB51E823B9544185EB51A8BDF55041CDCCCC9C24B954410AD7A350BEF55041CDCCCC8C25B95441C3F5284CBFF55041CDCCCC7C26B95441C3F528ACC2F5504185EB51D827B9544148E17AE4C3F55041CDCCCCBC28B954410AD7A350C4F55041CDCCCC7C29B9544148E17A54C9F5504148E17AF42CB954410AD7A370CBF55041CDCCCCFC2DB9544148E17A84CCF55041CDCCCC2C2EB95441C3F5285CCDF5504148E17A642FB9544148E17AA4CDF550410AD7A3F030B9544148E17AC4CEF5504185EB51A833B9544185EB51A8CFF5504148E17AA434B95441C3F528ECD0F55041CDCCCC1C35B954410AD7A300D2F550410AD7A3C036B95441C3F5283CD2F55041CDCCCC4C38B954410AD7A320D3F5504185EB51D839B954410AD7A3B0D3F550410AD7A3D03BB9544185EB51A8D5F5504185EB51283EB9544148E17A44D9F55041CDCCCCEC40B9544148E17A94DAF5504148E17AC441B954410AD7A360DBF5504185EB51D842B95441C3F5282CDCF5504185EB51C843B9544148E17A84DEF55041CDCCCC0C45B9544185EB51D8E1F5504185EB51A845B9544148E17A34E3F550410AD7A36045B954410AD7A3E0E5F55041CDCCCCFC45B9544185EB5138E8F5504185EB51E844B95441C3F528CCEAF550410AD7A30045B9544185EB5158ECF5504148E17AB445B9544148E17A84EDF5504185EB51F846B954410AD7A3B0EEF55041CDCCCCAC47B954410AD7A300F0F5504185EB51A848B954410AD7A380F1F550410AD7A3F04BB95441C3F5282CF1F55041CDCCCCEC4CB9544148E17A44F1F550410AD7A3A04DB95441C3F528ECF1F550410AD7A3904EB95441C3F5286CF3F550410AD7A3804FB954410AD7A3B0F4F5504185EB51984FB9544148E17AF4F5F55041CDCCCC1C50B95441C3F5283CF6F55041CDCCCCAC50B9544148E17A74F7F55041CDCCCC3C51B9544148E17AF4F8F550410AD7A36051B9544185EB5188FBF5504148E17AA452B954410AD7A340FEF550410AD7A30054B9544148E17A64FEF550410AD7A3B055B9544185EB5198FDF5504185EB51B856B95441C3F528ACFBF550410AD7A36057B9544185EB5188FEF550410AD7A3F057B95441C3F528ACFEF5504185EB517857B9544185EB517802F6504185EB51D854B954410AD7A33005F6504148E17AF453B9544185EB512807F6504148E17A9453B954410AD7A36008F6504185EB51E853B9544148E17A040AF6504148E17A9453B95441C3F5288C0CF650410AD7A3F051B9544148E17AF410F650410AD7A37050B9544185EB51C812F6504185EB51F84FB95441C3F5288C15F65041CDCCCC9C4EB95441C3F528AC16F65041CDCCCC5C4CB954410AD7A36017F6504148E17A544BB954410AD7A3B018F650410AD7A3D04AB9544148E17A141BF650410AD7A3004BB954410AD7A3101CF6504185EB51E847B954410AD7A35015F65041CDCCCC9C45B9544148E17A840BF6504148E17A3447B954410AD7A31001F65041CDCCCC7C47B95441C3F5280CF9F550410AD7A38046B9544148E17AA4EEF5504185EB512844B95441C3F5280CE7F5504185EB515841B9544185EB5198DFF5504148E17AA43DB954410AD7A370D7F5504185EB510837B9544148E17AF4CEF5504148E17A842DB95441C3F5281CC8F5504185EB51E826B9544185EB5168C1F5504185EB519822B9544148E17A94BCF55041CDCCCC6C1EB9544185EB5158B9F550410AD7A3A01AB95441C3F528DCB6F550410AD7A34017B95441666666F6B3F55041295C8F7212B95441F6285C7FB1F55041AE47E14A0DB9544148E17AF4B0F550410AD7A3D00BB9544148E17AD4AFF55041CDCCCC1C0EB954410AD7A350AFF55041CDCCCC7C11B954410AD7A3E0AFF55041CDCCCC5C13B954410AD7A3B0AFF5504185EB518814B9544148E17AF4B0F5504185EB51E817B95441C3F5280CB1F5504148E17A1419B9544101030000000100000009000000EC51B8CE86F650418FC2F5D837B954410AD7A33087F65041C3F5289C38B95441F6285C3F90F65041666666E638B954417B14AE9795F650416666660639B9544185EB514895F65041295C8F5236B95441A4703D0A95F650410AD7A33033B954417B14AE4785F65041D7A370FD33B954410AD7A33087F650410AD7A3D036B95441EC51B8CE86F650418FC2F5D837B9544101030000000100000021000000EC51B83E99F45041295C8FD202B95441E17A147E9AF45041CDCCCCDC03B954413D0AD7739AF450411F85EB3105B95441E17A143E9BF45041CDCCCC7C05B9544185EB5188A1F45041D7A370BD02B9544114AE47F1A8F45041E17A14BEFEB8544114AE4751AAF450418FC2F508FDB85441B81E859BADF450418FC2F5E8FBB85441AE47E13AB2F45041EC51B83EF9B854415C8FC2C5B2F45041EC51B8BEF8B8544152B81EC5B5F45041A4703DEAF3B8544152B81EA5B5F45041A4703D8AF2B854419A999999B9F4504100000080EFB85441EC51B82EBBF4504100000000EFB854413D0AD763BCF45041000000A0EFB854418FC2F5B8BDF45041000000A0EFB854413D0AD783BEF4504100000000EFB854413D0AD703BFF45041AE47E1EAEDB8544100000020B7F450417B14AE27EEB85441EC51B88EB0F450413D0AD753EEB85441C3F5281CAAF45041AE47E1EAEFB85441713D0A07A9F45041A4703D8AF0B85441713D0A47A7F45041F6285CFFF2B85441713D0A87A7F4504148E17A14F4B85441CDCCCCDCA6F450419A999989F5B854417B14AE47A5F4504148E17AB4F6B85441295C8F72A3F4504148E17A14F6B854417B14AE07A3F45041F6285C5FF5B85441E17A14FE9CF45041EC51B8BEF9B854419A9999E997F450418FC2F5E8FCB85441EC51B8BE98F4504185EB512800B95441EC51B83E99F4504185EB512801B95441EC51B83E99F45041295C8FD202B954410103000000010000003100000014AE4741E6F45041E17A144ED0B85441EC51B83EE5F45041E17A14EECFB8544152B81E45E6F4504185EB5148C9B8544185EB51D8E5F4504148E17A24C7B8544148E17AC4E4F4504185EB5188C6B8544185EB51C8E3F4504185EB5108C5B8544148E17A04E4F45041CDCCCC7CC3B8544185EB51C8E3F4504185EB51A8C1B85441CDCCCC6CE2F450410AD7A310C0B8544148E17A94E1F4504148E17A44BFB8544185EB51F8E0F450410AD7A390BEB8544185EB5198E0F450410AD7A310BDB85441CDCCCC2CE0F4504148E17A04BDB8544148E17AF4DEF45041CDCCCC2CBFB854410AD7A3E0DDF4504185EB5188C6B85441CDCCCC6CDCF45041CDCCCC2CC8B854410AD7A3D0DBF450410AD7A330CAB8544148E17A44DAF4504185EB51C8CBB8544185EB51A8D9F45041CDCCCC9CCDB8544185EB5188D5F450410AD7A320D1B8544185EB51B8D2F450410AD7A300D3B8544185EB5198CEF4504148E17A34D5B854410AD7A3F0C7F45041CDCCCC5CDAB8544185EB51C8BFF450410AD7A390DFB8544185EB5158BDF45041CDCCCC9CE2B854410AD7A300BEF450410AD7A360E2B8544148E17A74BFF450410AD7A340E1B8544185EB51C8C2F450410AD7A3C0DFB8544185EB51F8C5F4504185EB51B8DEB854410AD7A3D0C9F4504148E17A74DDB85441CDCCCC0CCDF450410AD7A330DCB85441CDCCCC0CD0F4504148E17A34E1B8544148E17A24D0F4504185EB5118E2B854410AD7A3D0D2F450410AD7A370E4B8544185EB5178D3F450410AD7A380E3B8544148E17A64D5F4504185EB5108E3B8544185EB5158D8F45041CDCCCC7CE1B8544148E17A84D9F4504185EB51E8E1B8544148E17AC4D8F45041CDCCCC8CE0B8544185EB5118D9F4504148E17AC4DEB854410AD7A380DAF4504148E17A44DDB854410AD7A3A0DBF450410AD7A3F0DCB8544185EB5158DEF45041CDCCCCECDAB8544148E17AA4DDF450410AD7A360D9B8544185EB5198DDF4504148E17AA4D7B854410AD7A3D0E1F450410AD7A340D5B854410AD7A320E3F450410AD7A370D5B85441D7A370DDE3F450411F85EB91D4B8544114AE4741E6F45041E17A144ED0B854410103000000010000002F0000000AD7A3109EF550410AD7A350FEB85441C3F528BC9DF5504185EB51E8FCB854410AD7A3409EF55041CDCCCCBCFBB8544185EB51189FF55041CDCCCCCCFAB854410AD7A350A0F5504148E17AB4FAB8544148E17AA4A0F5504185EB5178FAB8544185EB5158A1F55041CDCCCC6CFAB8544185EB5198A3F5504148E17A34FCB8544185EB51E8A4F550410AD7A3A0FCB85441C3F5282CA6F5504185EB5148FDB85441C3F5286CA8F55041CDCCCCFCFDB85441C3F528ECA9F5504148E17A14FEB8544185EB5178ABF55041CDCCCC1CFFB85441C3F528FCABF5504185EB517800B95441C3F528ACADF550410AD7A39003B9544148E17AE4AEF55041CDCCCC4C05B9544185EB5148ACF55041713D0AA7F6B85441C3F528DCAAF5504133333303F0B8544152B81EA5AAF5504133333303EFB85441F6285CCFA8F5504152B81EA5E1B854417B14AEE7A8F55041CDCCCCBCDAB8544185EB5118A8F5504185EB51E8DBB854410AD7A3A0A7F55041CDCCCCBCDDB854410AD7A3A0A7F5504185EB5148DFB854410AD7A390A8F5504148E17AC4E4B85441C3F5280CA8F5504148E17A44E6B8544185EB5118A8F5504185EB5168E9B8544148E17AE4A8F55041CDCCCCDCEAB854410AD7A3C0A8F5504185EB5198ECB854410AD7A350A9F5504148E17AF4EDB854410AD7A350A9F550410AD7A3E0EFB85441C3F5287CA7F55041CDCCCC9CF7B85441C3F528FCA5F5504148E17AA4F8B8544185EB51E8A1F5504185EB5128F9B85441C3F528DC9EF5504185EB51A8F7B8544185EB51F89DF55041CDCCCCCCF7B8544148E17AD49AF5504148E17A24F7B85441C3F528FC96F5504148E17A54F7B8544185EB51B895F5504148E17A24F7B854413D0AD76394F55041295C8F62F7B85441EC51B83E9BF5504114AE471105B95441C3F5283C9CF5504148E17AD404B9544185EB51C89DF55041CDCCCC0C06B9544148E17A949EF5504185EB512805B954410AD7A3109EF5504185EB51E802B9544148E17AD49DF5504185EB5158FFB854410AD7A3109EF550410AD7A350FEB85441
+</a>
+
+<b>
+0106000000010000000103000000010000004900000014AE4751AAF450418FC2F508FDB85441B67E8CA4ACF45041661F693DFCB854410A1BD6E5ADF45041AB9EC6BDFBB85441F68FB34AB2F4504144572330F9B854413AADC061B2F450419D86E41AF9B85441432E7AEEB2F45041414B1C7DF8B8544156F678CBB3F450418AED0219F7B85441FAE1C362B4F450417C233A25F6B85441D4EDB2E0B4F45041F5DA8B42F5B85441FD312CC1B5F4504102ABD1BEF3B8544152B81EA5B5F45041A4703D8AF2B8544184A70CADB5F45041F0222584F2B854414B6CE9ACB5F45041FB0C0382F2B85441211EE063B6F4504117C89DF7F1B854413019029CB6F45041C25578CCF1B8544151F0D22FB8F45041F5011496F0B8544134ED4996B8F4504165443746F0B854419C7F40A4B8F45041900B963CF0B854419A999999B9F4504100000080EFB85441EC51B82EBBF4504100000000EFB8544191FECE7FBBF45041CEA7F829EFB85441B8B2826ABCF4504100A95189EFB85441E74940B1BDF45041118CA298EFB8544138631E93BEF45041B7EEEBDEEEB854413D0AD703BFF45041AE47E1EAEDB8544100000020B7F450417B14AE27EEB8544117279B4AB1F45041BCB0E74EEEB85441492896B7AFF45041C8B9E488EEB85441C3F5281CAAF45041AE47E1EAEFB85441713D0A07A9F45041A4703D8AF0B8544154322AA2A7F45041380B657FF2B85441DC7D2F56A7F45041041CA501F3B85441B2503E81A7F45041547C61FBF3B85441713D0A87A7F4504148E17A14F4B854416149F985A7F45041B21ED116F4B85441821D3D89A7F4504105EDC029F4B85441486C2B44A7F450417AB10AA7F4B85441CDCCCCDCA6F450419A999989F5B85441AFA983B8A6F450412CB95EA4F5B85441EFBBB5ADA6F4504147FDF7B7F5B854410953673CA6F45041B7FAEEFFF5B854417B14AE47A5F4504148E17AB4F6B85441295C8F72A3F4504148E17A14F6B854410BB96B0BA3F45041EBFDB265F5B85441A1C86A969CF45041A0BE0816FAB854411938A8E997F45041AAC92EE9FCB854415709211298F450413A4F0F87FDB8544181CDFB5698F45041A56C4F7EFEB854415A4A738E98F45041495F066CFFB854411C4A699098F45041EA9EAC73FFB854410B93B7A298F45041905A15BBFFB85441C523D31799F45041378F87DA00B95441EC51B83E99F4504185EB512801B95441EC51B83E99F4504137E9FF3901B954418108EF4699F45041BB1D294E01B95441EC51B83E99F450415E26F67902B95441EC51B83E99F4504148E695C402B95441706091279AF45041ACDC0F8F03B9544155A991889AF45041FE6853CC03B954418AD55F7A9AF45041AB903E5804B954413D0AD7739AF450411F85EB3105B95441F79B92879AF4504127E1393905B9544130B4963F9BF450418018247C05B95441694275539CF450415CD9A30305B954414BE81E449DF45041067B849A04B95441ED7D6CDC9EF45041D138DAE503B95441288B1003A2F45041AB0BF46602B954410E67BE7EA7F450413CCF6B5EFFB85441821D3D89A7F45041E741931CFFB85441027022E5A7F450419D2EC926FFB854414D540803A9F45041C14FA08DFEB854418533D4D4A9F45041A27081A3FDB8544114AE4751AAF450418FC2F508FDB85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>983732 - 59546
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000100000014000000F6285CEFA34851410AD7A3800B57544148E17A74AB485141A4703DFA0E575441AE47E18AC0485141D7A370BD18575441CDCCCC6CCD4851413D0AD7E3115754411F85EB11D3485141E17A141E0E5754413D0AD723D248514114AE47110C5754419A999989CB485141EC51B85E0957544166666686C6485141D7A3705D06575441295C8F92C048514114AE4731035754417B14AE27B8485141713D0A97005754417B14AE07B24851410AD7A340FF565441F6285C2FAC48514185EB5168FE565441295C8F82A4485141A4703DEAFD5654413D0AD7539D4851411F85EB11FD56544185EB519899485141C3F528FC02575441000000A09748514185EB51F803575441295C8FB29A4851418FC2F57805575441EC51B8BEA2485141AE47E13A08575441D7A3707DA24851419A9999890A575441F6285CEFA34851410AD7A3800B575441
+</a>
+
+<b>
+0106000000010000000103000000010000002700000004949B1BB648514115EAC4E8135754416ADF5897B74851418B00929814575441E4F35D95BD4851415673BF5E175754411FD8A052BF48514171923B2018575441B39DED8BC04851413BF5E1BC1857544194ACA419C1485141CF538771185754418386F172CD485141E4A5D3D211575441C8895C4ED2485141A418C5A00E5754411F85EB11D3485141E17A141E0E5754413D0AD723D248514114AE47110C5754419A999989CB485141EC51B85E0957544166666686C6485141D7A3705D065754412978ECADC448514142E79F6105575441461256B6C048514145BCE05403575441BAE78429B748514162218A5F005754410A6DD6B3B24851411FCD3B66FF565441610456C5AD48514130DA02A3FE56544171B1EC87A9485141B896B83CFE565441295C8F82A4485141A4703DEAFD5654413D0AD7539D4851411F85EB11FD565441E70997A09B4851412956ACC3FF565441500F1E0E9B4851415DE0CAAB005754412782196A9A4851412057B7AF01575441A33E49459A485141EB3D0EEA015754411468C1319A48514106A101090257544185EB519899485141C3F528FC025754410D1E57A8984851417F5C2674035754418E8BA3AE974851410B877AFF0357544130BD76BF99485141D60B15020557544124DBA4C59A485141FC63647205575441B3C92B6C9E48514120BAB7BF06575441EC51B8BEA2485141AE47E13A085754414582F3A1A2485141B599353F09575441D7A3707DA24851419A9999890A575441CAF3A460A348514123E554210B575441C6EAE7C9A648514160E568C80C575441E0826DC1A948514114B033310E57544148E17A74AB485141A4703DFA0E57544104949B1BB648514115EAC4E813575441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>983796 - 1636689
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000001000000010300000001000000270000001B75E7977FAC504118D0A7574659554116D594837FAC5041EB9A76F346595541B4EC177F7FAC50416684C36247595541993952577FAC50415598CA46485955413B1C5A4D7FAC5041D0CE389348595541168D96677EAC5041D6DB42A54D5955415330550A7EAC50418CCDECBB4F595541AD398E2581AC504175FEB71048595541CDE000DB80AC504152B58EB73F595541FB9991E27FAC504102B3FF7037595541B912655280AC504184A971292B59554162FF987C81AC5041C487B47B255955413DAD6DDD83AC5041BEFB041121595541BD9E14BD84AC504138444A451F59554152CA0FF97CAC5041F3F609C91E595541443EE8207BAC50415796FD761F595541328118FE78AC5041A0B0E1F1205955419E8B187876AC5041E89F7B9926595541A0DC83D174AC5041A452989529595541F6D848CF71AC5041D79F8BBE2B59554177E7A1EF70AC5041798C477B2F5955412219F49871AC5041BD6DA29D2F5955418F207F4B74AC50416CEB2825305955416D08931476AC5041BF0DEC452D59554138FB0CAC79AC504155C3532827595541364883527BAC504106340FBB245955417D243E667FAC5041F30691B3255955415103D7027FAC5041C7C0759F2B59554196FA9D347FAC50415991329E2C5955415BC3CC027FAC504199DB8E3F32595541327903047FAC50414BCBAB7E3259554188CBB01B7FAC50418F4DDC833259554188CBB01B7FAC50413712004C375955414A4B2D377FAC5041FB20DED83759554132FCA0B07FAC50419D0B4F473A5955412AD658FB7FAC5041288046593B595541FCCD74E27FAC50419DE490C23D595541FCCD74E27FAC5041B24C7A8E425955411B75E7977FAC504118D0A75746595541
+</a>
+
+<b>
+010600000001000000010300000001000000230000002FFCA0B07FAC5041A10B4F473A595541474B2D377FAC5041FD20DED83759554100A17B207FAC504159988F6437595541A58BA61B7FAC5041CE8ACB4B37595541317903047FAC50414ACBAB7E325955415DC3CC027FAC50419BDB8E3F3259554192FA9D347FAC50415891329E2C59554160E8F2027FAC5041AE5BCC9D2B595541A5A7A5FE7EAC50418A61BF8A2B595541D323B84D7FAC50414E7185C526595541144E81567FAC5041AC5329B52559554182295A5B7BAC5041C0B428BF245955412E9234C779AC504147C3CE0B27595541B6D5CF4978AC5041779B7D83295955417008931476AC5041BA0DEC452D59554192207F4B74AC504171EB282530595541B4DBB61774AC50419F41FF1A3059554169D4AEE370AC50411C86E6852F595541F6285C0F6EAC50411F85EBB13B595541EC51B8BE6CAC50410AD7A3F041595541F6285C5F6AAC50417B14AE374D595541CDCCCCBC63AC5041295C8FE2685955410AD7A38066AC5041EC51B8EE6859554114AE470169AC504152B81E156859554148E17AC46AAC50418FC2F598665955413D0AD7536FAC504114AE47C162595541666666767AAC50413333336356595541666666067DAC504185EB51F8515955418FC2F5E87DAC50410AD7A37050595541361C5A4D7FAC5041D4CE3893485955411A75E7977FAC504113D0A75746595541FDCD74E27FAC5041AD4C7A8E42595541FDCD74E27FAC50419FE490C23D5955418646A6F47FAC5041D1F35B773B5955412FFCA0B07FAC5041A10B4F473A595541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>983796 - 4294191
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000001000000010300000001000000270000001B75E7977FAC504118D0A7574659554116D594837FAC5041EB9A76F346595541B4EC177F7FAC50416684C36247595541993952577FAC50415598CA46485955413B1C5A4D7FAC5041D0CE389348595541168D96677EAC5041D6DB42A54D5955415330550A7EAC50418CCDECBB4F595541AD398E2581AC504175FEB71048595541CDE000DB80AC504152B58EB73F595541FB9991E27FAC504102B3FF7037595541B912655280AC504184A971292B59554162FF987C81AC5041C487B47B255955413DAD6DDD83AC5041BEFB041121595541BD9E14BD84AC504138444A451F59554152CA0FF97CAC5041F3F609C91E595541443EE8207BAC50415796FD761F595541328118FE78AC5041A0B0E1F1205955419E8B187876AC5041E89F7B9926595541A0DC83D174AC5041A452989529595541F6D848CF71AC5041D79F8BBE2B59554177E7A1EF70AC5041798C477B2F5955412219F49871AC5041BD6DA29D2F5955418F207F4B74AC50416CEB2825305955416D08931476AC5041BF0DEC452D59554138FB0CAC79AC504155C3532827595541364883527BAC504106340FBB245955417D243E667FAC5041F30691B3255955415103D7027FAC5041C7C0759F2B59554196FA9D347FAC50415991329E2C5955415BC3CC027FAC504199DB8E3F32595541327903047FAC50414BCBAB7E3259554188CBB01B7FAC50418F4DDC833259554188CBB01B7FAC50413712004C375955414A4B2D377FAC5041FB20DED83759554132FCA0B07FAC50419D0B4F473A5955412AD658FB7FAC5041288046593B595541FCCD74E27FAC50419DE490C23D595541FCCD74E27FAC5041B24C7A8E425955411B75E7977FAC504118D0A75746595541
+</a>
+
+<b>
+010600000001000000010300000001000000230000002FFCA0B07FAC5041A10B4F473A595541474B2D377FAC5041FD20DED83759554100A17B207FAC504159988F6437595541A58BA61B7FAC5041CE8ACB4B37595541317903047FAC50414ACBAB7E325955415DC3CC027FAC50419BDB8E3F3259554192FA9D347FAC50415891329E2C59554160E8F2027FAC5041AE5BCC9D2B595541A5A7A5FE7EAC50418A61BF8A2B595541D323B84D7FAC50414E7185C526595541144E81567FAC5041AC5329B52559554182295A5B7BAC5041C0B428BF245955412E9234C779AC504147C3CE0B27595541B6D5CF4978AC5041779B7D83295955417008931476AC5041BA0DEC452D59554192207F4B74AC504171EB282530595541B4DBB61774AC50419F41FF1A3059554169D4AEE370AC50411C86E6852F595541F6285C0F6EAC50411F85EBB13B595541EC51B8BE6CAC50410AD7A3F041595541F6285C5F6AAC50417B14AE374D595541CDCCCCBC63AC5041295C8FE2685955410AD7A38066AC5041EC51B8EE6859554114AE470169AC504152B81E156859554148E17AC46AAC50418FC2F598665955413D0AD7536FAC504114AE47C162595541666666767AAC50413333336356595541666666067DAC504185EB51F8515955418FC2F5E87DAC50410AD7A37050595541361C5A4D7FAC5041D4CE3893485955411A75E7977FAC504113D0A75746595541FDCD74E27FAC5041AD4C7A8E42595541FDCD74E27FAC50419FE490C23D5955418646A6F47FAC5041D1F35B773B5955412FFCA0B07FAC5041A10B4F473A595541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984286 - 97118
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+01060000000100000001030000000100000024000000CDCCCC0CF7965141EC51B8FEB88F54410AD7A320FF965141D7A370FDB78F5441666666E606975141D7A370EDB58F5441000000101297514152B81E25B58F5441A4703D1A17975141E17A140EB48F5441666666B61897514100000050B38F5441AE47E1AA1C975141B81E852BB68F54413D0AD7631F975141CDCCCC5CB28F54417B14AE4723975141C3F528ECAC8F54418FC2F5D817975141CDCCCC8C9F8F5441295C8FC215975141CDCCCC4CA08F5441B81E859B0E97514166666636A08F54410AD7A3500A9751413D0AD723A18F544148E17AE40097514114AE4721A38F5441C3F5285CFC965141F6285C3FA38F54410AD7A3A0F89651413D0AD763A48F54411F85EBD1F7965141295C8FA2A48F5441CDCCCC2CF3965141295C8F52A48F54417B14AED7F19651411F85EB01A48F54415C8FC2D5ED965141EC51B80EA38F544133333333EB965141D7A3703DA38F5441AE47E17AE8965141C3F5281CA48F54417B14AEE7E7965141E17A140EA48F54410AD7A3D0DD96514152B81E15A38F5441AE47E17AD9965141EC51B8AEA08F544148E17A74D6965141CDCCCC5CA18F544152B81EC5D1965141713D0A87A48F5441EC51B8FEC7965141CDCCCC3CA88F5441B81E856BC69651410AD7A300A98F5441713D0A07C6965141AE47E13AAE8F54413D0AD723CA96514185EB51C8C08F54417B14AEF7CC9651418FC2F578C08F5441A4703DEAD79651415C8FC235BC8F5441B81E85BBE39651411F85EBB1B98F5441CDCCCC6CED965141F6285C1FB98F5441CDCCCC0CF7965141EC51B8FEB88F5441
+</a>
+
+<b>
+0106000000010000000103000000010000003D000000AE47E17AD9965141EC51B8AEA08F544143B78D8DD8965141E4C411E4A08F54416B14AB54D6965141A26D4A72A18F5441F1A653E7D296514174E2FCC2A38F5441580E42D8D1965141B5403383A48F544121AA51A4D0965141EFC3A6F4A48F5441E39A6BC9CC965141DBF5376BA68F544117399747C9965141CD03FBBFA78F5441B3D8E0A4C696514190BEC7E4A88F54417DC6A898C6965141DA17B7EAA88F5441A2A13772C6965141CC1363FDA88F54413609D80FC696514190419723AE8F544105608D0EC8965141FB138762B78F5441E7B92EA2C99651416938677FBE8F5441AC2CDD1ECA9651410C33DFB1C08F5441EF9CB9DDCC9651411C3ECE7BC08F54417B14AEF7CC9651418FC2F578C08F5441A4703DEAD79651415C8FC235BC8F54411B63E7F9D7965141C4296D32BC8F5441E3E32E15D89651415E5DBE27BC8F54417751CD2DDB965141FD8AEF83BB8F5441B81E85BBE39651411F85EBB1B98F5441CDCCCC6CED965141F6285C1FB98F5441CDCCCC0CF7965141EC51B8FEB88F5441B74C9DF4FC96514196DA9E42B88F54418E1EE4D1FE965141B37920FFB78F54417ED3680F079751416C751AD7B58F54413A1CE1530D9751412132177AB58F5441A52EDBF40F9751416916EA4AB58F5441530B000E12975141C69B4225B58F5441F76A53A11297514123BEB005B58F5441A4703D1A17975141E17A140EB48F5441666666B61897514100000050B38F5441D076F1D7189751414F2E3C68B38F54414A8951ED1897514164273860B38F5441383397BD1C975141FB445A11B68F54413D0AD7631F975141CDCCCC5CB28F5441717A30EE21975141ED6150CFAE8F54411030253F23975141861A26E8AC8F544122874ED917975141A3A46E959F8F5441BDA7B6D8159751418E4ADE46A08F54413DE011D3159751418E4ADE46A08F5441295C8FC215975141CDCCCC4CA08F5441961EB0DD139751418E4ADE46A08F5441F5F434AF0E9751418E4ADE46A08F5441F3FD7BD2009751413A070B34A38F544185D0015BFC9651411C2C795BA38F5441367E19BCF79651419665A1AAA48F5441BE509F44F3965141B5403383A48F544162F208CEF196514111D2E80CA48F5441117A6C31F0965141EF62D29DA38F54415C8FC2D5ED965141EC51B80EA38F544133333333EB965141D7A3703DA38F5441A59917CDEA965141CB77195EA38F544102045C41E896514163090E48A48F5441FE693AFBE7965141CB27F30FA48F54417B14AEE7E7965141E17A140EA48F544158A74E91E19651411C29B671A38F544150381AC8DD965141D4F45320A38F5441BF03AA48DA965141E51FA620A18F5441AE47E17AD9965141EC51B8AEA08F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984286 - 298865
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+01060000000100000001030000000100000024000000CDCCCC0CF7965141EC51B8FEB88F54410AD7A320FF965141D7A370FDB78F5441666666E606975141D7A370EDB58F5441000000101297514152B81E25B58F5441A4703D1A17975141E17A140EB48F5441666666B61897514100000050B38F5441AE47E1AA1C975141B81E852BB68F54413D0AD7631F975141CDCCCC5CB28F54417B14AE4723975141C3F528ECAC8F54418FC2F5D817975141CDCCCC8C9F8F5441295C8FC215975141CDCCCC4CA08F5441B81E859B0E97514166666636A08F54410AD7A3500A9751413D0AD723A18F544148E17AE40097514114AE4721A38F5441C3F5285CFC965141F6285C3FA38F54410AD7A3A0F89651413D0AD763A48F54411F85EBD1F7965141295C8FA2A48F5441CDCCCC2CF3965141295C8F52A48F54417B14AED7F19651411F85EB01A48F54415C8FC2D5ED965141EC51B80EA38F544133333333EB965141D7A3703DA38F5441AE47E17AE8965141C3F5281CA48F54417B14AEE7E7965141E17A140EA48F54410AD7A3D0DD96514152B81E15A38F5441AE47E17AD9965141EC51B8AEA08F544148E17A74D6965141CDCCCC5CA18F544152B81EC5D1965141713D0A87A48F5441EC51B8FEC7965141CDCCCC3CA88F5441B81E856BC69651410AD7A300A98F5441713D0A07C6965141AE47E13AAE8F54413D0AD723CA96514185EB51C8C08F54417B14AEF7CC9651418FC2F578C08F5441A4703DEAD79651415C8FC235BC8F5441B81E85BBE39651411F85EBB1B98F5441CDCCCC6CED965141F6285C1FB98F5441CDCCCC0CF7965141EC51B8FEB88F5441
+</a>
+
+<b>
+0106000000010000000103000000010000003D000000AE47E17AD9965141EC51B8AEA08F544143B78D8DD8965141E4C411E4A08F54416B14AB54D6965141A26D4A72A18F5441F1A653E7D296514174E2FCC2A38F5441580E42D8D1965141B5403383A48F544121AA51A4D0965141EFC3A6F4A48F5441E39A6BC9CC965141DBF5376BA68F544117399747C9965141CD03FBBFA78F5441B3D8E0A4C696514190BEC7E4A88F54417DC6A898C6965141DA17B7EAA88F5441A2A13772C6965141CC1363FDA88F54413609D80FC696514190419723AE8F544105608D0EC8965141FB138762B78F5441E7B92EA2C99651416938677FBE8F5441AC2CDD1ECA9651410C33DFB1C08F5441EF9CB9DDCC9651411C3ECE7BC08F54417B14AEF7CC9651418FC2F578C08F5441A4703DEAD79651415C8FC235BC8F54411B63E7F9D7965141C4296D32BC8F5441E3E32E15D89651415E5DBE27BC8F54417751CD2DDB965141FD8AEF83BB8F5441B81E85BBE39651411F85EBB1B98F5441CDCCCC6CED965141F6285C1FB98F5441CDCCCC0CF7965141EC51B8FEB88F5441B74C9DF4FC96514196DA9E42B88F54418E1EE4D1FE965141B37920FFB78F54417ED3680F079751416C751AD7B58F54413A1CE1530D9751412132177AB58F5441A52EDBF40F9751416916EA4AB58F5441530B000E12975141C69B4225B58F5441F76A53A11297514123BEB005B58F5441A4703D1A17975141E17A140EB48F5441666666B61897514100000050B38F5441D076F1D7189751414F2E3C68B38F54414A8951ED1897514164273860B38F5441383397BD1C975141FB445A11B68F54413D0AD7631F975141CDCCCC5CB28F5441717A30EE21975141ED6150CFAE8F54411030253F23975141861A26E8AC8F544122874ED917975141A3A46E959F8F5441BDA7B6D8159751418E4ADE46A08F54413DE011D3159751418E4ADE46A08F5441295C8FC215975141CDCCCC4CA08F5441961EB0DD139751418E4ADE46A08F5441F5F434AF0E9751418E4ADE46A08F5441F3FD7BD2009751413A070B34A38F544185D0015BFC9651411C2C795BA38F5441367E19BCF79651419665A1AAA48F5441BE509F44F3965141B5403383A48F544162F208CEF196514111D2E80CA48F5441117A6C31F0965141EF62D29DA38F54415C8FC2D5ED965141EC51B80EA38F544133333333EB965141D7A3703DA38F5441A59917CDEA965141CB77195EA38F544102045C41E896514163090E48A48F5441FE693AFBE7965141CB27F30FA48F54417B14AEE7E7965141E17A140EA48F544158A74E91E19651411C29B671A38F544150381AC8DD965141D4F45320A38F5441BF03AA48DA965141E51FA620A18F5441AE47E17AD9965141EC51B8AEA08F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>565433 - 55763
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -24 </desc>
+<a>
+0106000000010000000103000000010000003801000000000090B563514152B81E5593A35441B81E859BA4635141CDCCCCBC97A354415C8FC2159B6351413D0AD7039AA35441C3F528AC8F6351417B14AE779CA35441A4703DFA8663514114AE47719EA354411F85EB917F63514148E17A84A0A354419A9999F97C63514100000010A1A35441AE47E18A786351415C8FC265A2A35441E17A145E72635141C3F5286CA4A3544114AE4791556351415C8FC265B0A35441295C8F724D635141A4703D1AB4A35441E17A149E4663514166666686B7A354411F85EBE14063514133333373BAA35441295C8F123C63514152B81E45BDA3544100000010336351417B14AE27C2A35441B81E85BB2F63514114AE4721C4A35441295C8FE22A635141E17A14FEC6A354415C8FC205256351419A9999D9CAA354417D9CAB2C1B6351418D062351D0A354415EB3171714635141AB375B9ED5A3544179CF3AE911635141CFE46476D7A35441713D0A070B635141CDCCCCBCDDA35441C3F528CC0463514148E17A54E2A3544185EB51880463514152B81E85E2A354418FC2F528FB625141CDCCCC3CE9A3544185EB51B8F1625141B81E851BF0A3544152B81EF5EC6251410AD7A380F3A354411F85EBC1E7625141CDCCCC6CF7A3544133333363E3625141333333B3FAA3544100000090DB6251417B14AED7FFA354415C8FC2B5D7625141713D0AB702A4544152B81EE5D2625141D7A370FD05A4544114AE4751CC625141C3F528DC0AA454413D0AD7D3BF625141EC51B87E14A45441E17A144EB56251419A9999791CA4544114AE4701B462514185EB51A81EA45441E17A141EB06251410AD7A3D021A454415C8FC205AC6251415C8FC23525A4544148E17A24A6625141C3F5286C2AA4544166666616A3625141E17A146E2DA4544185EB51D89D625141AE47E1EA32A454410AD7A3109962514152B81ED537A4544148E17A449762514152B81E9539A45441C3F5282C95625141EC51B8DE3BA45441B81E858B896251413333333348A45441295C8F4279625141B81E853B59A45441EC51B8EE67625141EC51B8CE6BA4544185EB51F8666251413D0AD7E36AA454411F85EB615F625141E17A14EE73A454410AD7A3F058625141F6285C4F7BA45441295C8FC252625141EC51B8BE81A45441EC51B8DE4C62514114AE474188A454417B14AE97486251417B14AE778CA454410AD7A390466251411F85EB618EA454416666669645625141E17A144E8FA45441666666E63F6251416666660694A4544152B81EF53B625141AE47E1CA97A454410AD7A3A03A625141B81E854B9AA454416666660634625141C3F5287C9FA454415C8FC2E5296251411F85EB31A6A45441713D0AF72762514114AE4771A7A4544148E17AC42062514148E17AC4ABA4544148E17A441A6251419A999909B0A45441713D0AB7156251410AD7A350B3A454417B14AE77106251411F85EB31B7A45441295C8F120A62514114AE4721BCA45441D7A370BD086251418FC2F528BDA45441AE47E10A0262514185EB51B8C2A454417B14AE37FB615141C3F5282CC9A45441713D0A07F46151411F85EB21D0A4544114AE4721EB615141295C8FA2D9A45441713D0AC7E46151410AD7A380E0A45441000000F0DF61514152B81EE5E5A454410AD7A3C0D6615141713D0AD7EFA454419A9999E9D061514100000000F7A454417B14AE37D0615141A4703DDAF7A45441D7A370ADC8615141EC51B8AE01A55441713D0A07C3615141295C8F520AA55441C3F528CCBE6151418FC2F5B810A5544133333373B9615141295C8F721AA5544166666616B56151413D0AD7A322A5544152B81EC5AE615141C3F528AC2EA5544185EB51F8AA615141713D0AF735A55441F6285C6FA7615141333333B33DA55441E17A14DEA4615141B81E855B44A55441D7A370CDA2615141CDCCCC5C4AA55441A4703D8AA16151419A9999694BA5544114AE47F19F6151413D0AD7E351A5544114AE47119F6151415C8FC26558A55441EC51B87E9E61514152B81ED55BA554413D0AD7F39D61514114AE470160A5544114AE47219E615141CDCCCCBC64A554418FC2F5A89D61514152B81E5569A55441A4703D7A9D615141713D0AD76BA55441E17A146E9D61514185EB51A86CA55441AE47E16A9C615141D7A370CD76A554411F85EBF19A615141E17A141E84A554419A9999C9996151417B14AE078DA554415C8FC2159A61514148E17A0494A55441A4703D2A99615141295C8F029FA5544148E17AE498615141A4703DEAA1A5544148E17A4498615141CDCCCC9CA8A55441713D0AF796615141A4703D0AB5A554415C8FC225966151413D0AD793BEA55441000000909561514148E17AD4C3A55441C3F5287C956151413D0AD7D3C4A554419A9999C994615141AE47E1BACDA5544152B81E259361514100000050E0A5544185EB5108926151418FC2F538EDA55441F6285C8F91615141E17A14CEF1A55441CDCCCC5C916151410AD7A360F5A5544114AE47A19161514148E17A94F8A55441AE47E19A926151417B14AEB7FAA55441A4703D8A92615141C3F528ACFBA55441AE47E1CA90615141B81E855B00A65441E17A149E8D615141000000A005A65441A4703DFA8B61514185EB515806A65441C3F528FC8A6151413333337306A65441333333038A615141CDCCCC1C0BA65441C3F5283C8B6151413D0AD7130AA65441333333438D615141C3F5284C08A65441A4703D6A90615141B81E85EB07A654411D5EC15390615141B27439E908A65441282021B9936151416E3A8BFC08A65441439323CC93615141DC91FD1008A65441781934959561514161953FC2FCA554416FBFF6389461514141BC4DA7FBA554411295BA4E946151418CDF2D87F9A5544156ED602895615141AC291C4CF6A554415C8FC2859761514114AE4751E5A55441A4703DFA98615141A4703D3AD7A55441CDCCCC1C9961514100000040D4A55441A4703D8A996151418FC2F518CFA55441333333B39A615141EC51B85EC4A554419A9999699B6151417B14AE27B9A55441713D0A279C615141295C8F72AFA554413D0AD7039D615141295C8F02A5A55441AE47E15A9E615141E17A149E95A55441713D0A579F615141333333038AA55441A4703D1AA16151413D0AD7D37CA5544148E17AF4A1615141C3F5286C76A55441C3F5287CA161514152B81EC571A55441E17A146EA2615141713D0AA76AA5544100000070A3615141EC51B81E5EA554411F85EB51A461514114AE472157A554415C8FC225A66151411F85EB514FA55441A4703D7AA86151413333339347A55441E17A148EAA6151417B14AEC741A554410AD7A3D0AB6151411F85EBA13EA55441713D0A07AF61514148E17A0438A55441B81E859BB1615141B81E851B33A554415C8FC2B5B66151417B14AE0729A55441CDCCCC5CBA615141AE47E19A22A5544166666666BF6151418FC2F51819A55441C3F5286CC2615141F6285C3F14A554413D0AD723C6615141333333130EA55441C3F5287CCA6151416666666607A55441713D0A17D0615141713D0A87FFA454410AD7A3E0D4615141AE47E16AF9A45441B81E859BDA615141D7A3706DF2A454415C8FC205E06151411F85EB91ECA4544148E17A54E7615141295C8FB2E4A4544148E17AD4EF61514114AE47B1DBA45441E17A148EF46151417B14AEC7D6A4544133333363F76151411F85EBB1D3A45441AE47E14AFB615141A4703DCACFA45441295C8F12FF615141295C8F12CCA45441C3F5283C0C625141C3F5285CC0A45441B81E854B1462514100000030BAA454413D0AD7B31D625141C3F5288CB3A4544148E17A2426625141F6285C0FAEA454419A9999792E625141666666D6A8A45441EC51B89E366251411F85EB51A3A45441295C8F323E625141D7A370AD9DA454410000008042625141F6285C9F99A454418FC2F5A8496251411F85EB2193A45441713D0A674B6251410AD7A36091A454415C8FC2B54A625141EC51B87E90A454418FC2F5984C625141AE47E17A8EA45441B81E85CB4D625141B81E85CB8EA4544148E17A5452625141295C8FF289A45441F6285CFF5562514152B81EF584A454418FC2F50858625141F6285CCF83A45441AE47E1AA5A625141F6285C7F81A45441B81E859B636251415C8FC21578A454415C8FC2856B62514152B81EA56EA454419A9999897C6251417B14AE175DA454415C8FC2058D6251418FC2F5284BA45441295C8F3291625141A4703DBA46A4544152B81ED59362514152B81EB543A45441AE47E1AA9B625141CDCCCC8C3BA4544114AE47E19E62514148E17A0438A45441713D0A17A2625141D7A370AD34A4544152B81E75A66251411F85EBA130A45441D7A370EDA9625141B81E855B2DA454411F85EBF1AC625141666666562AA45441000000C0B2625141EC51B8BE25A45441713D0AD7B66251410000004022A4544133333303BB62514148E17AC41EA45441713D0AB7BC6251418FC2F5281DA45441B81E85DBC062514152B81EE519A4544185EB5108C5625141A4703D0A16A454419A999999C7625141E17A143E14A454413D0AD7B3CA625141713D0AB711A45441F6285CBFCE625141295C8F720EA45441C3F528ECD26251415C8FC2650BA454410AD7A330D46251418FC2F5380AA45441333333E3D6625141AE47E12A08A45441C3F528CCDC625141D7A370DD03A454415C8FC295E06251419A99990901A454410AD7A310E962514100000000FBA3544148E17A44EE6251415C8FC235F7A3544152B81E05F3625141D7A370ADF3A3544185EB51C8FC625141D7A370ADECA354419A99994906635141E17A14CEE5A35441000000200E63514166666606E0A35441295C8F22156351419A999979DBA354411F85EB0121635141CDCCCCDCD2A3544185EB51E8286351413D0AD723CDA35441AE47E1DA346351410AD7A3B0C5A354410AD7A300386351413D0AD7D3C3A354413D0AD7633F6351417B14AEC7BFA35441666666164963514185EB5128BBA354410000007058635141AE47E19AB4A354415C8FC2556263514152B81EC5B0A3544148E17A3464635141E17A14BEAEA3544114AE4701686351417B14AE27ADA3544185EB51286963514133333373AFA35441E17A145E69635141D7A370DDAFA35441B81E853B7263514100000040ACA354410AD7A33081635141713D0A37A7A35441D7A3708D8863514148E17AF4A4A35441E17A143E91635141713D0AF7A2A354415C8FC2E59B63514185EB51D8A0A35441A4703D0AA3635141C3F5286C9FA35441713D0A77AB635141CDCCCC5C9DA354417B14AE57B8635141D7A3708D99A3544148E17AE4B76351418FC2F59898A354418FC2F538B46351410AD7A3A099A354418FC2F538AD6351410AD7A3E09BA35441A4703DDAA8635141A4703D4A9DA35441E17A14BEA4635141000000209EA35441B81E856B9D6351418FC2F5689FA35441EC51B8DE9663514114AE47A1A0A35441F6285C0F90635141AE47E10AA2A354410000003089635141713D0AD7A3A354411F85EB21806351417B14AE37A6A35441713D0A4775635141000000C0A9A3544148E17AF46D63514152B81EC5ACA3544148E17A5469635141333333D3AEA354410AD7A3C068635141C3F528DCADA35441B81E85AB6C63514100000010ACA3544152B81EB572635141E17A147EA9A354417B14AEA777635141295C8FD2A7A354419A9999F97E6351411F85EB61A5A35441666666C68763514114AE4701A3A35441666666B68E6351415C8FC245A1A354413D0AD75395635141C3F528DC9FA35441E17A146E9B63514148E17AC49EA354410AD7A370A0635141EC51B8FE9DA3544100000000A56351418FC2F5189DA354418FC2F5A8A86351413D0AD7639CA35441295C8F52AC635141C3F5283C9BA354415C8FC265B1635141F6285C6F99A3544166666686B763514114AE47D197A354419F9E299CC1635141896FB0FB95A35441187DE03EC46351414FC428D095A3544152B81EA5C96351413333335394A35441E17A14CEDB6351411F85EBD18EA35441333333B3F2635141A4703DEA87A354410AD7A3D0F36351413D0AD79387A35441713D0A17F76351419A99998986A35441AE47E19AF8635141EC51B80E86A354410AD7A31003645141CDCCCCBC82A35441000000D00C64514152B81E757FA35441666666461564514152B81EB57CA35441CDCCCCCC18645141C3F528AC7BA354410AD7A3D01F645141C3F528FC78A354415C8FC225236451411F85EBB177A354410AD7A3E029645141713D0A0775A354418FC2F5682C64514114AE475173A354419A99994942645141333333036AA35441EC51B80E4C6451415C8FC23566A354413D0AD7635B6451410AD7A31061A35441EC51B8CE5D645141AE47E16A5FA35441666666A6686451418FC2F5985BA35441B81E85CB716451413D0AD74359A35441333333C379645141AE47E19A57A35441A4703DBA8364514185EB513856A354419A9999098B645141000000A055A354410AD7A3408F645141D7A370AD55A35441713D0A579564514185EB514857A35441EC51B89E946451418FC2F5B853A35441B81E852B8A6451410AD7A35051A3544114AE472187645141F6285CEF50A354419A9999E9816451418FC2F5B850A3544114AE47E1816451415C8FC2B551A3544152B81E45766451416666667653A35441AE47E1FA69645141F6285C5F56A3544152B81E2556645141AE47E18A5DA35441E17A148E4864514185EB51D861A3544114AE47A14864514114AE47E162A35441A4703D8A3864514148E17A4469A3544114AE47D1216451413D0AD76372A3544152B81E551A645141666666E674A3544185EB51E80E645141F6285CDF77A354415C8FC2250B64514185EB514879A35441B81E858B016451410AD7A3707CA354410AD7A330FF635141666666367DA35441AE47E1AAF063514148E17A4481A354417B14AE17CD6351410AD7A3F08BA3544100000090B563514152B81E5593A35441
+</a>
+
+<b>
+0106000000010000000103000000010000009D01000014AE4701686351417B14AE27ADA354413B58661268635141C061C549ADA35441E17A145E69635141D7A370DDAFA35441B81E853B7263514100000040ACA35441C544C61A7563514110927F48ABA35441F333CEC8806351417629FE59A7A354410AD7A33081635141713D0A37A7A35441D7A3708D8863514148E17AF4A4A35441C88DF9638B6351417EB71A4EA4A35441E17A143E91635141713D0AF7A2A35441FDA1889B92635141F69082B1A2A35441DA40D7A89A6351414E6C6017A1A35441A4703D0AA3635141C3F5286C9FA35441E4F91B77A46351418217F2129FA35441C411E613AA6351417ABFA2B39DA35441713D0A77AB635141CDCCCC5C9DA354415111D8D7B163514132ECB5799BA3544190A9F824B8635141B562719C99A354417B14AE57B8635141D7A3708D99A3544148E17AE4B76351418FC2F59898A35441D22EEA5DB763514146ECB9BE98A354418FC2F538B46351410AD7A3A099A35441DC920A93B2635141A8B841289AA354418FC2F538AD6351410AD7A3E09BA35441D8049467AC635141765851249CA35441A4703DDAA8635141A4703D4A9DA35441E17A14BEA4635141000000209EA35441C159A754A363514195E96C5F9EA35441B81E856B9D6351418FC2F5689FA35441D177610F99635141B201DA38A0A35441EC51B8DE9663514114AE47A1A0A35441F6285C0F90635141AE47E10AA2A3544129601C888E63514178093671A2A354410000003089635141713D0AD7A3A354411F85EB21806351417B14AE37A6A35441AC49BE2A7D6351411563BC2EA7A354415A43ED0975635141FD6A34D9A9A354410B0BE5EC6E635141D2BDAA5EACA3544148E17A5469635141333333D3AEA354410AD7A3C068635141C3F528DCADA35441E7EB076469635141BB9F3091ADA354411C1D28A46C635141DEE96013ACA35441B81E85AB6C63514100000010ACA3544181FF5F4F72635141F3DC63A9A9A3544152B81EB572635141E17A147EA9A354417B14AEA777635141295C8FD2A7A35441ECEAEC877863514159BFCF87A7A354419A9999F97E6351411F85EB61A5A354417847E2158263514133A1C98AA4A35441666666C68763514114AE4701A3A354417413027D8C635141C83EF4D3A1A35441666666B68E6351415C8FC245A1A35441084B1847916351417C3989B9A0A354413D0AD75395635141C3F528DC9FA3544186BDC9E598635141975B8A389FA35441E17A146E9B63514148E17AC49EA354418E09190D9E63514116C2035D9EA354410AD7A370A0635141EC51B8FE9DA35441270E3E94A363514199098E609DA3544100000000A56351418FC2F5189DA35441A9A28CA3A8635141FCCAE2649CA35441295C8F52AC635141C3F5283C9BA3544165C8CFD8B063514108FE59A199A354415C8FC265B1635141F6285C6F99A3544195790DB0B66351410BB3DC0998A3544166666686B763514114AE47D197A354415102C2B0BB6351410F99520F97A354414A2E7E5FC1635141BB69B90696A354419F9E299CC1635141896FB0FB95A35441ACAE6196C363514154A807DB95A35441187DE03EC46351414FC428D095A35441C1F92F83C4635141E20C55BD95A3544152B81EA5C96351413333335394A35441C617C806D963514119C88AA98FA35441E17A14CEDB6351411F85EBD18EA35441E95F7EBAE7635141616354398BA35441333333B3F2635141A4703DEA87A35441C13BF614F7635141E58A428A86A35441713D0A17F76351419A99998986A35441BED40318F76351418C854A8986A35441A3F7F5AE0264514188A7CDDB82A35441EE4AB72304645141E3E53C6082A35441000000D00C64514152B81E757FA35441E88BBB751364514198A71E4C7DA35441666666461564514152B81EB57CA35441CDCCCCCC18645141C3F528AC7BA35441C710F7D11A64514109B507E67AA35441D3A7007623645141AB761D9277A35441637DA32629645141D06FC35075A354410AD7A3E029645141713D0A0775A3544189A1CE1D2A645141FC13BDDD74A354418FC2F5682C64514114AE475173A354416F1FB46D3864514126B5AB346EA354419A99994942645141333333036AA35441565FFEC943645141C4E6976D69A35441EC51B80E4C6451415C8FC23566A354417ABF724050645141B83975CD64A35441726894DC546451418E72734163A354413D0AD7635B6451410AD7A31061A3544190B5FED15B645141551292C560A35441EC51B8CE5D645141AE47E16A5FA35441786E47B963645141935246555DA35441666666A6686451418FC2F5985BA35441FC5184E06C6451415644F5845AA35441B81E85CB716451413D0AD74359A35441AA4373B077645141ABB5750958A35441333333C379645141AE47E19A57A354413B48866881645141C1A1D68A56A35441A4703DBA8364514185EB513856A354419A9999098B645141000000A055A354419C29FB8E8D645141B8DE09A855A354410AD7A3408F645141D7A370AD55A3544105721484916451410F55364656A35441944D72FB936451417CDBACEC56A35441713D0A579564514185EB514857A35441EC51B89E946451418FC2F5B853A35441B81E852B8A6451410AD7A35051A3544114AE472187645141F6285CEF50A354419A9999E9816451418FC2F5B850A3544114AE47E1816451415C8FC2B551A3544152B81E45766451416666667653A35441AE47E1FA69645141F6285C5F56A3544152B81E2556645141AE47E18A5DA35441E17A148E4864514185EB51D861A3544114AE47A14864514114AE47E162A35441A4703D8A3864514148E17A4469A3544114AE47D1216451413D0AD76372A3544152B81E551A645141666666E674A3544185EB51E80E645141F6285CDF77A354415C8FC2250B64514185EB514879A35441B81E858B016451410AD7A3707CA354410AD7A330FF635141666666367DA35441AE47E1AAF063514148E17A4481A354417B14AE17CD6351410AD7A3F08BA3544100000090B563514152B81E5593A35441B81E859BA4635141CDCCCCBC97A354415C8FC2159B6351413D0AD7039AA354415DC87445996351414AF49D679AA35441C3F528AC8F6351417B14AE779CA35441A4703DFA8663514114AE47719EA35441EC1C4F088163514174079B1BA0A354411F85EB917F63514148E17A84A0A354419A9999F97C63514100000010A1A35441AE47E18A786351415C8FC265A2A35441E17A145E72635141C3F5286CA4A3544114AE4791556351415C8FC265B0A35441295C8F724D635141A4703D1AB4A35441E17A149E4663514166666686B7A354411F85EBE14063514133333373BAA35441295C8F123C63514152B81E45BDA3544100000010336351417B14AE27C2A35441B81E85BB2F63514114AE4721C4A354417F87D5B62A6351410EF9D91AC7A354415C8FC205256351419A9999D9CAA354417B9CAB2C1B6351418B062351D0A354415BB3171714635141A9375B9ED5A3544174CF3AE911635141D1E46476D7A35441713D0A070B635141CDCCCCBCDDA35441C3F528CC0463514148E17A54E2A3544185EB51880463514152B81E85E2A354418FC2F528FB625141CDCCCC3CE9A3544185EB51B8F1625141B81E851BF0A3544152B81EF5EC6251410AD7A380F3A354411F85EBC1E7625141CDCCCC6CF7A3544133333363E3625141333333B3FAA354419C9E44EADD625141A359E04BFEA3544100000090DB6251417B14AED7FFA3544115B87A88D9625141F3790B5B01A454415C8FC2B5D7625141713D0AB702A4544152B81EE5D2625141D7A370FD05A4544114AE4751CC625141C3F528DC0AA454413D0AD7D3BF625141EC51B87E14A45441E17A144EB56251419A9999791CA4544114AE4701B462514185EB51A81EA454415C8FC205AC6251415C8FC23525A4544148E17A24A6625141C3F5286C2AA4544166666616A3625141E17A146E2DA4544185EB51D89D625141AE47E1EA32A454410AD7A3109962514152B81ED537A4544148E17A449762514152B81E9539A45441C3F5282C95625141EC51B8DE3BA45441B81E858B896251413333333348A45441295C8F4279625141B81E853B59A45441EC51B8EE67625141EC51B8CE6BA4544185EB51F8666251413D0AD7E36AA454411F85EB615F625141E17A14EE73A454410AD7A3F058625141F6285C4F7BA45441295C8FC252625141EC51B8BE81A45441D6663FD7516251419953CDC282A45441EC51B8DE4C62514114AE474188A454417B14AE97486251417B14AE778CA454410AD7A390466251411F85EB618EA454416666669645625141E17A144E8FA45441666666E63F6251416666660694A4544152B81EF53B625141AE47E1CA97A454410AD7A3A03A625141B81E854B9AA454416666660634625141C3F5287C9FA454415C8FC2E5296251411F85EB31A6A45441713D0AF72762514114AE4771A7A4544148E17AC42062514148E17AC4ABA4544148E17A441A6251419A999909B0A45441713D0AB7156251410AD7A350B3A454417B14AE77106251411F85EB31B7A45441295C8F120A62514114AE4721BCA45441AE47E10A0262514185EB51B8C2A454417B14AE37FB615141C3F5282CC9A45441713D0A07F46151411F85EB21D0A4544114AE4721EB615141295C8FA2D9A45441713D0AC7E46151410AD7A380E0A45441000000F0DF61514152B81EE5E5A454410AD7A3C0D6615141713D0AD7EFA454417B14AE37D0615141A4703DDAF7A45441D7A370ADC8615141EC51B8AE01A55441713D0A07C3615141295C8F520AA55441C3F528CCBE6151418FC2F5B810A5544133333373B9615141295C8F721AA5544166666616B56151413D0AD7A322A5544185EB51F8AA615141713D0AF735A55441F6285C6FA7615141333333B33DA55441E17A14DEA4615141B81E855B44A55441D7A370CDA2615141CDCCCC5C4AA55441A4703D8AA16151419A9999694BA5544114AE47F19F6151413D0AD7E351A5544114AE47119F6151415C8FC26558A55441EC51B87E9E61514152B81ED55BA554413D0AD7F39D61514114AE470160A5544114AE47219E615141CDCCCCBC64A554418FC2F5A89D61514152B81E5569A55441056FD68B9D6151417DDC40E56AA55441A4703D7A9D615141713D0AD76BA55441E17A146E9D61514185EB51A86CA55441AE47E16A9C615141D7A370CD76A554411F85EBF19A615141E17A141E84A554419A9999C9996151417B14AE078DA554415C8FC2159A61514148E17A0494A55441A4703D2A99615141295C8F029FA5544148E17AE498615141A4703DEAA1A5544148E17A4498615141CDCCCC9CA8A55441713D0AF796615141A4703D0AB5A554415C8FC225966151413D0AD793BEA55441000000909561514148E17AD4C3A55441C3F5287C956151413D0AD7D3C4A554419A9999C994615141AE47E1BACDA5544152B81E259361514100000050E0A5544185EB5108926151418FC2F538EDA55441F6285C8F91615141E17A14CEF1A55441CDCCCC5C916151410AD7A360F5A5544114AE47A19161514148E17A94F8A55441AE47E19A926151417B14AEB7FAA55441A4703D8A92615141C3F528ACFBA55441AE47E1CA90615141B81E855B00A65441E17A149E8D615141000000A005A65441A4703DFA8B61514185EB515806A65441C3F528FC8A6151413333337306A65441333333038A615141CDCCCC1C0BA65441333333438D615141C3F5284C08A65441A4703D6A90615141B81E85EB07A65441195EC15390615141B67439E908A654410D8A894C91615141A3BFC0EE08A654412B2021B993615141713A8BFC08A65441439323CC93615141DC91FD1008A65441781934959561514161953FC2FCA554416FBFF6389461514141BC4DA7FBA554411295BA4E946151418CDF2D87F9A5544156ED602895615141AC291C4CF6A554415C8FC2859761514114AE4751E5A55441A4703DFA98615141A4703D3AD7A55441CDCCCC1C9961514100000040D4A55441A4703D8A996151418FC2F518CFA55441333333B39A615141EC51B85EC4A554419A9999699B6151417B14AE27B9A55441713D0A279C615141295C8F72AFA554413D0AD7039D615141295C8F02A5A55441713D0A579F615141333333038AA55441A4703D1AA16151413D0AD7D37CA5544148E17AF4A1615141C3F5286C76A55441C3F5287CA161514152B81EC571A55441E17A146EA2615141713D0AA76AA5544100000070A3615141EC51B81E5EA554411F85EB51A461514114AE472157A554415C8FC225A66151411F85EB514FA55441A4703D7AA86151413333339347A55441E17A148EAA6151417B14AEC741A554410AD7A3D0AB6151411F85EBA13EA55441713D0A07AF61514148E17A0438A55441B81E859BB1615141B81E851B33A554415C8FC2B5B66151417B14AE0729A55441CDCCCC5CBA615141AE47E19A22A5544166666666BF6151418FC2F51819A55441C3F5286CC2615141F6285C3F14A554413D0AD723C6615141333333130EA55441C3F5287CCA6151416666666607A55441713D0A17D0615141713D0A87FFA454410AD7A3E0D4615141AE47E16AF9A45441B81E859BDA615141D7A3706DF2A454415C8FC205E06151411F85EB91ECA4544148E17A54E7615141295C8FB2E4A4544148E17AD4EF61514114AE47B1DBA45441E17A148EF46151417B14AEC7D6A4544133333363F76151411F85EBB1D3A45441AE47E14AFB615141A4703DCACFA45441295C8F12FF615141295C8F12CCA45441C3F5283C0C625141C3F5285CC0A45441B81E854B1462514100000030BAA454417941533B1C625141755EE995B4A454413D0AD7B31D625141C3F5288CB3A4544148E17A2426625141F6285C0FAEA45441B644718F286251410CDD6A8BACA454419A9999792E625141666666D6A8A4544162D61E7B326251412FE7B31FA6A45441EC51B89E366251411F85EB51A3A4544192D886B03B6251414ED8858B9FA45441295C8F323E625141D7A370AD9DA454416B10E2554262514149DE0DC799A454410000008042625141F6285C9F99A45441F3B2155346625141BFBCE42796A45441638552504A62514161685B7992A45441E7746E504B6251418224697791A45441713D0A674B6251410AD7A36091A454415C8FC2B54A625141EC51B87E90A45441B28773974C62514182997D7C8EA454418FC2F5984C625141AE47E17A8EA45441E465289D4C6251411EF6FB7B8EA45441B81E85CB4D625141B81E85CB8EA45441522C0A384E6251416AB785578EA4544196EF5E554F625141A88C87268DA45441FB42104C526251412A738EFB89A454414A68467854625141ABEB3A0987A45441F6285CFF5562514152B81EF584A454419653F2B75662514124A3298D84A45441470A4D985762514167F8CE0E84A454418FC2F50858625141F6285CCF83A45441AE47E1AA5A625141F6285C7F81A45441CD663C035B6251419290552281A4544191F96C59606251414F2BF0837BA45441B81E859B636251415C8FC21578A45441AD7E1D6F64625141C972651977A454415C8FC2856B62514152B81EA56EA45441EF8C15DD706251410D349A2269A45441BE49F63C766251411BC4429763A454419A9999897C6251417B14AE175DA45441A68B05FC826251412DF0561456A45441F4E4BA158B625141247E8B444DA454415C8FC2058D6251418FC2F5284BA45441295C8F3291625141A4703DBA46A45441BAE84653936251419B33EF4944A4544152B81ED59362514152B81EB543A45441847A776C94625141B92B8B1743A454416D2F1B089C6251412F9749263BA4544114AE47E19E62514148E17A0438A45441713D0A17A2625141D7A370AD34A4544114D8D307A3625141A4B46ECE33A45441D7A370EDA9625141B81E855B2DA454412119355BAA6251416F61A9ED2CA454411F85EBF1AC625141666666562AA454418304BB07AE62514105C09D7A29A454412A8F0A4FB262514112BA151826A45441C3D12788B462514182ABEC3824A45441713D0AD7B66251410000004022A45441229745D0BA625141DB7AFCEE1EA454418D10D706BB62514180030BC11EA45441713D0AB7BC6251418FC2F5281DA454418CE027D2BC625141688F96131DA45441B81E85DBC062514152B81EE519A454412A4DE530C3625141E3FA87BD17A4544185EB5108C5625141A4703D0A16A45441DC68D02DC66251413AFBC33C15A454419A999999C7625141E17A143E14A454413D0AD7B3CA625141713D0AB711A454412C4EB9EECA6251414270798711A45441F6285CBFCE625141295C8F720EA454416AD11466D062514119E1BE3D0DA45441C3F528ECD26251415C8FC2650BA4544113E479E0D3625141530D46830AA454410AD7A330D46251418FC2F5380AA4544194698D29D662514181354FB808A45441333333E3D6625141AE47E12A08A454417270AF02D9625141FB89389F06A45441C3F528CCDC625141D7A370DD03A454411DAE5F15E062514162DD716901A454415C8FC295E06251419A99990901A45441FD1FFDB3E3625141711C49D1FEA35441EB7BB740EB625141D483FC67F9A35441CADD9F1EF06251410CEC54D5F5A3544152B81E05F3625141D7A370ADF3A354413D212A93F462514124C30790F2A3544183289BFBFC62514140AB5B88ECA3544187DB61A105635141634FB547E6A35441A4E78DB10C6351419779A514E1A35441000000200E63514166666606E0A35441DBB6FED212635141CC9891F9DCA35441295C8F22156351419A999979DBA354414DF3A7F31A63514109D66241D7A354411F85EB0121635141CDCCCCDCD2A35441699EDAB2216351416B85A25CD2A3544136297CBB27635141BC45C1FDCDA3544185EB51E8286351413D0AD723CDA35441CB4A6C862F63514144757603C9A35441AE47E1DA346351410AD7A3B0C5A354410AD7A300386351413D0AD7D3C3A354412361A6C53D63514128C79BAAC0A354413D0AD7633F6351417B14AEC7BFA35441AC85781146635141BC67C098BCA35441666666164963514185EB5128BBA354413E8F13A3556351411F51EACCB5A354410000007058635141AE47E19AB4A35441D8D8B3BF596351410708CE18B4A35441B49F733B60635141E7FDB295B1A354415C8FC2556263514152B81EC5B0A354414407B12A63635141192141DEAFA3544148E17A3464635141E17A14BEAEA354418984824666635141192FA7E0ADA3544114AE4701686351417B14AE27ADA35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>565433 - 99176
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -24 </desc>
+<a>
+0106000000010000000103000000010000003801000000000090B563514152B81E5593A35441B81E859BA4635141CDCCCCBC97A354415C8FC2159B6351413D0AD7039AA35441C3F528AC8F6351417B14AE779CA35441A4703DFA8663514114AE47719EA354411F85EB917F63514148E17A84A0A354419A9999F97C63514100000010A1A35441AE47E18A786351415C8FC265A2A35441E17A145E72635141C3F5286CA4A3544114AE4791556351415C8FC265B0A35441295C8F724D635141A4703D1AB4A35441E17A149E4663514166666686B7A354411F85EBE14063514133333373BAA35441295C8F123C63514152B81E45BDA3544100000010336351417B14AE27C2A35441B81E85BB2F63514114AE4721C4A35441295C8FE22A635141E17A14FEC6A354415C8FC205256351419A9999D9CAA354417D9CAB2C1B6351418D062351D0A354415EB3171714635141AB375B9ED5A3544179CF3AE911635141CFE46476D7A35441713D0A070B635141CDCCCCBCDDA35441C3F528CC0463514148E17A54E2A3544185EB51880463514152B81E85E2A354418FC2F528FB625141CDCCCC3CE9A3544185EB51B8F1625141B81E851BF0A3544152B81EF5EC6251410AD7A380F3A354411F85EBC1E7625141CDCCCC6CF7A3544133333363E3625141333333B3FAA3544100000090DB6251417B14AED7FFA354415C8FC2B5D7625141713D0AB702A4544152B81EE5D2625141D7A370FD05A4544114AE4751CC625141C3F528DC0AA454413D0AD7D3BF625141EC51B87E14A45441E17A144EB56251419A9999791CA4544114AE4701B462514185EB51A81EA45441E17A141EB06251410AD7A3D021A454415C8FC205AC6251415C8FC23525A4544148E17A24A6625141C3F5286C2AA4544166666616A3625141E17A146E2DA4544185EB51D89D625141AE47E1EA32A454410AD7A3109962514152B81ED537A4544148E17A449762514152B81E9539A45441C3F5282C95625141EC51B8DE3BA45441B81E858B896251413333333348A45441295C8F4279625141B81E853B59A45441EC51B8EE67625141EC51B8CE6BA4544185EB51F8666251413D0AD7E36AA454411F85EB615F625141E17A14EE73A454410AD7A3F058625141F6285C4F7BA45441295C8FC252625141EC51B8BE81A45441EC51B8DE4C62514114AE474188A454417B14AE97486251417B14AE778CA454410AD7A390466251411F85EB618EA454416666669645625141E17A144E8FA45441666666E63F6251416666660694A4544152B81EF53B625141AE47E1CA97A454410AD7A3A03A625141B81E854B9AA454416666660634625141C3F5287C9FA454415C8FC2E5296251411F85EB31A6A45441713D0AF72762514114AE4771A7A4544148E17AC42062514148E17AC4ABA4544148E17A441A6251419A999909B0A45441713D0AB7156251410AD7A350B3A454417B14AE77106251411F85EB31B7A45441295C8F120A62514114AE4721BCA45441D7A370BD086251418FC2F528BDA45441AE47E10A0262514185EB51B8C2A454417B14AE37FB615141C3F5282CC9A45441713D0A07F46151411F85EB21D0A4544114AE4721EB615141295C8FA2D9A45441713D0AC7E46151410AD7A380E0A45441000000F0DF61514152B81EE5E5A454410AD7A3C0D6615141713D0AD7EFA454419A9999E9D061514100000000F7A454417B14AE37D0615141A4703DDAF7A45441D7A370ADC8615141EC51B8AE01A55441713D0A07C3615141295C8F520AA55441C3F528CCBE6151418FC2F5B810A5544133333373B9615141295C8F721AA5544166666616B56151413D0AD7A322A5544152B81EC5AE615141C3F528AC2EA5544185EB51F8AA615141713D0AF735A55441F6285C6FA7615141333333B33DA55441E17A14DEA4615141B81E855B44A55441D7A370CDA2615141CDCCCC5C4AA55441A4703D8AA16151419A9999694BA5544114AE47F19F6151413D0AD7E351A5544114AE47119F6151415C8FC26558A55441EC51B87E9E61514152B81ED55BA554413D0AD7F39D61514114AE470160A5544114AE47219E615141CDCCCCBC64A554418FC2F5A89D61514152B81E5569A55441A4703D7A9D615141713D0AD76BA55441E17A146E9D61514185EB51A86CA55441AE47E16A9C615141D7A370CD76A554411F85EBF19A615141E17A141E84A554419A9999C9996151417B14AE078DA554415C8FC2159A61514148E17A0494A55441A4703D2A99615141295C8F029FA5544148E17AE498615141A4703DEAA1A5544148E17A4498615141CDCCCC9CA8A55441713D0AF796615141A4703D0AB5A554415C8FC225966151413D0AD793BEA55441000000909561514148E17AD4C3A55441C3F5287C956151413D0AD7D3C4A554419A9999C994615141AE47E1BACDA5544152B81E259361514100000050E0A5544185EB5108926151418FC2F538EDA55441F6285C8F91615141E17A14CEF1A55441CDCCCC5C916151410AD7A360F5A5544114AE47A19161514148E17A94F8A55441AE47E19A926151417B14AEB7FAA55441A4703D8A92615141C3F528ACFBA55441AE47E1CA90615141B81E855B00A65441E17A149E8D615141000000A005A65441A4703DFA8B61514185EB515806A65441C3F528FC8A6151413333337306A65441333333038A615141CDCCCC1C0BA65441C3F5283C8B6151413D0AD7130AA65441333333438D615141C3F5284C08A65441A4703D6A90615141B81E85EB07A654411D5EC15390615141B27439E908A65441282021B9936151416E3A8BFC08A65441439323CC93615141DC91FD1008A65441781934959561514161953FC2FCA554416FBFF6389461514141BC4DA7FBA554411295BA4E946151418CDF2D87F9A5544156ED602895615141AC291C4CF6A554415C8FC2859761514114AE4751E5A55441A4703DFA98615141A4703D3AD7A55441CDCCCC1C9961514100000040D4A55441A4703D8A996151418FC2F518CFA55441333333B39A615141EC51B85EC4A554419A9999699B6151417B14AE27B9A55441713D0A279C615141295C8F72AFA554413D0AD7039D615141295C8F02A5A55441AE47E15A9E615141E17A149E95A55441713D0A579F615141333333038AA55441A4703D1AA16151413D0AD7D37CA5544148E17AF4A1615141C3F5286C76A55441C3F5287CA161514152B81EC571A55441E17A146EA2615141713D0AA76AA5544100000070A3615141EC51B81E5EA554411F85EB51A461514114AE472157A554415C8FC225A66151411F85EB514FA55441A4703D7AA86151413333339347A55441E17A148EAA6151417B14AEC741A554410AD7A3D0AB6151411F85EBA13EA55441713D0A07AF61514148E17A0438A55441B81E859BB1615141B81E851B33A554415C8FC2B5B66151417B14AE0729A55441CDCCCC5CBA615141AE47E19A22A5544166666666BF6151418FC2F51819A55441C3F5286CC2615141F6285C3F14A554413D0AD723C6615141333333130EA55441C3F5287CCA6151416666666607A55441713D0A17D0615141713D0A87FFA454410AD7A3E0D4615141AE47E16AF9A45441B81E859BDA615141D7A3706DF2A454415C8FC205E06151411F85EB91ECA4544148E17A54E7615141295C8FB2E4A4544148E17AD4EF61514114AE47B1DBA45441E17A148EF46151417B14AEC7D6A4544133333363F76151411F85EBB1D3A45441AE47E14AFB615141A4703DCACFA45441295C8F12FF615141295C8F12CCA45441C3F5283C0C625141C3F5285CC0A45441B81E854B1462514100000030BAA454413D0AD7B31D625141C3F5288CB3A4544148E17A2426625141F6285C0FAEA454419A9999792E625141666666D6A8A45441EC51B89E366251411F85EB51A3A45441295C8F323E625141D7A370AD9DA454410000008042625141F6285C9F99A454418FC2F5A8496251411F85EB2193A45441713D0A674B6251410AD7A36091A454415C8FC2B54A625141EC51B87E90A454418FC2F5984C625141AE47E17A8EA45441B81E85CB4D625141B81E85CB8EA4544148E17A5452625141295C8FF289A45441F6285CFF5562514152B81EF584A454418FC2F50858625141F6285CCF83A45441AE47E1AA5A625141F6285C7F81A45441B81E859B636251415C8FC21578A454415C8FC2856B62514152B81EA56EA454419A9999897C6251417B14AE175DA454415C8FC2058D6251418FC2F5284BA45441295C8F3291625141A4703DBA46A4544152B81ED59362514152B81EB543A45441AE47E1AA9B625141CDCCCC8C3BA4544114AE47E19E62514148E17A0438A45441713D0A17A2625141D7A370AD34A4544152B81E75A66251411F85EBA130A45441D7A370EDA9625141B81E855B2DA454411F85EBF1AC625141666666562AA45441000000C0B2625141EC51B8BE25A45441713D0AD7B66251410000004022A4544133333303BB62514148E17AC41EA45441713D0AB7BC6251418FC2F5281DA45441B81E85DBC062514152B81EE519A4544185EB5108C5625141A4703D0A16A454419A999999C7625141E17A143E14A454413D0AD7B3CA625141713D0AB711A45441F6285CBFCE625141295C8F720EA45441C3F528ECD26251415C8FC2650BA454410AD7A330D46251418FC2F5380AA45441333333E3D6625141AE47E12A08A45441C3F528CCDC625141D7A370DD03A454415C8FC295E06251419A99990901A454410AD7A310E962514100000000FBA3544148E17A44EE6251415C8FC235F7A3544152B81E05F3625141D7A370ADF3A3544185EB51C8FC625141D7A370ADECA354419A99994906635141E17A14CEE5A35441000000200E63514166666606E0A35441295C8F22156351419A999979DBA354411F85EB0121635141CDCCCCDCD2A3544185EB51E8286351413D0AD723CDA35441AE47E1DA346351410AD7A3B0C5A354410AD7A300386351413D0AD7D3C3A354413D0AD7633F6351417B14AEC7BFA35441666666164963514185EB5128BBA354410000007058635141AE47E19AB4A354415C8FC2556263514152B81EC5B0A3544148E17A3464635141E17A14BEAEA3544114AE4701686351417B14AE27ADA3544185EB51286963514133333373AFA35441E17A145E69635141D7A370DDAFA35441B81E853B7263514100000040ACA354410AD7A33081635141713D0A37A7A35441D7A3708D8863514148E17AF4A4A35441E17A143E91635141713D0AF7A2A354415C8FC2E59B63514185EB51D8A0A35441A4703D0AA3635141C3F5286C9FA35441713D0A77AB635141CDCCCC5C9DA354417B14AE57B8635141D7A3708D99A3544148E17AE4B76351418FC2F59898A354418FC2F538B46351410AD7A3A099A354418FC2F538AD6351410AD7A3E09BA35441A4703DDAA8635141A4703D4A9DA35441E17A14BEA4635141000000209EA35441B81E856B9D6351418FC2F5689FA35441EC51B8DE9663514114AE47A1A0A35441F6285C0F90635141AE47E10AA2A354410000003089635141713D0AD7A3A354411F85EB21806351417B14AE37A6A35441713D0A4775635141000000C0A9A3544148E17AF46D63514152B81EC5ACA3544148E17A5469635141333333D3AEA354410AD7A3C068635141C3F528DCADA35441B81E85AB6C63514100000010ACA3544152B81EB572635141E17A147EA9A354417B14AEA777635141295C8FD2A7A354419A9999F97E6351411F85EB61A5A35441666666C68763514114AE4701A3A35441666666B68E6351415C8FC245A1A354413D0AD75395635141C3F528DC9FA35441E17A146E9B63514148E17AC49EA354410AD7A370A0635141EC51B8FE9DA3544100000000A56351418FC2F5189DA354418FC2F5A8A86351413D0AD7639CA35441295C8F52AC635141C3F5283C9BA354415C8FC265B1635141F6285C6F99A3544166666686B763514114AE47D197A354419F9E299CC1635141896FB0FB95A35441187DE03EC46351414FC428D095A3544152B81EA5C96351413333335394A35441E17A14CEDB6351411F85EBD18EA35441333333B3F2635141A4703DEA87A354410AD7A3D0F36351413D0AD79387A35441713D0A17F76351419A99998986A35441AE47E19AF8635141EC51B80E86A354410AD7A31003645141CDCCCCBC82A35441000000D00C64514152B81E757FA35441666666461564514152B81EB57CA35441CDCCCCCC18645141C3F528AC7BA354410AD7A3D01F645141C3F528FC78A354415C8FC225236451411F85EBB177A354410AD7A3E029645141713D0A0775A354418FC2F5682C64514114AE475173A354419A99994942645141333333036AA35441EC51B80E4C6451415C8FC23566A354413D0AD7635B6451410AD7A31061A35441EC51B8CE5D645141AE47E16A5FA35441666666A6686451418FC2F5985BA35441B81E85CB716451413D0AD74359A35441333333C379645141AE47E19A57A35441A4703DBA8364514185EB513856A354419A9999098B645141000000A055A354410AD7A3408F645141D7A370AD55A35441713D0A579564514185EB514857A35441EC51B89E946451418FC2F5B853A35441B81E852B8A6451410AD7A35051A3544114AE472187645141F6285CEF50A354419A9999E9816451418FC2F5B850A3544114AE47E1816451415C8FC2B551A3544152B81E45766451416666667653A35441AE47E1FA69645141F6285C5F56A3544152B81E2556645141AE47E18A5DA35441E17A148E4864514185EB51D861A3544114AE47A14864514114AE47E162A35441A4703D8A3864514148E17A4469A3544114AE47D1216451413D0AD76372A3544152B81E551A645141666666E674A3544185EB51E80E645141F6285CDF77A354415C8FC2250B64514185EB514879A35441B81E858B016451410AD7A3707CA354410AD7A330FF635141666666367DA35441AE47E1AAF063514148E17A4481A354417B14AE17CD6351410AD7A3F08BA3544100000090B563514152B81E5593A35441
+</a>
+
+<b>
+0106000000010000000103000000010000009D01000014AE4701686351417B14AE27ADA354413958661268635141BF61C549ADA35441E17A145E69635141D7A370DDAFA35441B81E853B7263514100000040ACA35441C844C61A7563514111927F48ABA35441F533CEC8806351417129FE59A7A354410AD7A33081635141713D0A37A7A35441D7A3708D8863514148E17AF4A4A35441CB8DF9638B6351417CB71A4EA4A35441E17A143E91635141713D0AF7A2A35441FBA1889B92635141F49082B1A2A35441DA40D7A89A635141516C6017A1A35441A4703D0AA3635141C3F5286C9FA35441E6F91B77A46351417F17F2129FA35441C211E613AA6351417DBFA2B39DA35441713D0A77AB635141CDCCCC5C9DA354414F11D8D7B163514136ECB5799BA3544195A9F824B8635141B962719C99A354417B14AE57B8635141D7A3708D99A3544148E17AE4B76351418FC2F59898A35441D32EEA5DB76351414AECB9BE98A354418FC2F538B46351410AD7A3A099A35441E1920A93B2635141A7B841289AA354418FC2F538AD6351410AD7A3E09BA35441DA049467AC635141785851249CA35441A4703DDAA8635141A4703D4A9DA35441E17A14BEA4635141000000209EA35441C159A754A363514198E96C5F9EA35441B81E856B9D6351418FC2F5689FA35441D577610F99635141B401DA38A0A35441EC51B8DE9663514114AE47A1A0A35441F6285C0F90635141AE47E10AA2A3544128601C888E6351417C093671A2A354410000003089635141713D0AD7A3A354411F85EB21806351417B14AE37A6A35441A749BE2A7D6351411263BC2EA7A354415A43ED0975635141016B34D9A9A35441070BE5EC6E635141CFBDAA5EACA3544148E17A5469635141333333D3AEA354410AD7A3C068635141C3F528DCADA35441E7EB076469635141BB9F3091ADA35441201D28A46C635141DAE96013ACA35441B81E85AB6C63514100000010ACA3544185FF5F4F72635141F4DC63A9A9A3544152B81EB572635141E17A147EA9A354417B14AEA777635141295C8FD2A7A35441F0EAEC87786351415BBFCF87A7A354419A9999F97E6351411F85EB61A5A354417347E2158263514134A1C98AA4A35441666666C68763514114AE4701A3A354417613027D8C635141CC3EF4D3A1A35441666666B68E6351415C8FC245A1A35441054B1847916351417A3989B9A0A354413D0AD75395635141C3F528DC9FA3544184BDC9E598635141995B8A389FA35441E17A146E9B63514148E17AC49EA354419109190D9E63514117C2035D9EA354410AD7A370A0635141EC51B8FE9DA35441230E3E94A363514199098E609DA3544100000000A56351418FC2F5189DA35441A6A28CA3A8635141FBCAE2649CA35441295C8F52AC635141C3F5283C9BA354416AC8CFD8B063514103FE59A199A354415C8FC265B1635141F6285C6F99A3544190790DB0B663514109B3DC0998A3544166666686B763514114AE47D197A354414E02C2B0BB6351410A99520F97A354414E2E7E5FC1635141B969B90696A354419F9E299CC1635141896FB0FB95A35441B1AE6196C363514155A807DB95A35441187DE03EC46351414FC428D095A35441C3F92F83C4635141E20C55BD95A3544152B81EA5C96351413333335394A35441C717C806D96351411BC88AA98FA35441E17A14CEDB6351411F85EBD18EA35441ED5F7EBAE7635141646354398BA35441333333B3F2635141A4703DEA87A35441BC3BF614F7635141EA8A428A86A35441713D0A17F76351419A99998986A35441C1D40318F76351418A854A8986A354419EF7F5AE0264514188A7CDDB82A35441F04AB72304645141E4E53C6082A35441000000D00C64514152B81E757FA35441E78BBB751364514196A71E4C7DA35441666666461564514152B81EB57CA35441CDCCCCCC18645141C3F528AC7BA35441C310F7D11A6451410BB507E67AA35441D0A7007623645141A9761D9277A354415E7DA32629645141CC6FC35075A354410AD7A3E029645141713D0A0775A354418EA1CE1D2A645141FD13BDDD74A354418FC2F5682C64514114AE475173A354416C1FB46D3864514125B5AB346EA354419A99994942645141333333036AA35441565FFEC943645141C7E6976D69A35441EC51B80E4C6451415C8FC23566A354417BBF724050645141B33975CD64A354416D6894DC546451418972734163A354413D0AD7635B6451410AD7A31061A3544193B5FED15B645141511292C560A35441EC51B8CE5D645141AE47E16A5FA35441746E47B963645141955246555DA35441666666A6686451418FC2F5985BA35441FF5184E06C6451415A44F5845AA35441B81E85CB716451413D0AD74359A35441AF4373B077645141AFB5750958A35441333333C379645141AE47E19A57A354413948866881645141C3A1D68A56A35441A4703DBA8364514185EB513856A354419A9999098B645141000000A055A354419729FB8E8D645141BCDE09A855A354410AD7A3408F645141D7A370AD55A3544108721484916451411155364656A35441904D72FB9364514180DBACEC56A35441713D0A579564514185EB514857A35441EC51B89E946451418FC2F5B853A35441B81E852B8A6451410AD7A35051A3544114AE472187645141F6285CEF50A354419A9999E9816451418FC2F5B850A3544114AE47E1816451415C8FC2B551A3544152B81E45766451416666667653A35441AE47E1FA69645141F6285C5F56A3544152B81E2556645141AE47E18A5DA35441E17A148E4864514185EB51D861A3544114AE47A14864514114AE47E162A35441A4703D8A3864514148E17A4469A3544114AE47D1216451413D0AD76372A3544152B81E551A645141666666E674A3544185EB51E80E645141F6285CDF77A354415C8FC2250B64514185EB514879A35441B81E858B016451410AD7A3707CA354410AD7A330FF635141666666367DA35441AE47E1AAF063514148E17A4481A354417B14AE17CD6351410AD7A3F08BA3544100000090B563514152B81E5593A35441B81E859BA4635141CDCCCCBC97A354415C8FC2159B6351413D0AD7039AA354415FC874459963514147F49D679AA35441C3F528AC8F6351417B14AE779CA35441A4703DFA8663514114AE47719EA35441E91C4F088163514178079B1BA0A354411F85EB917F63514148E17A84A0A354419A9999F97C63514100000010A1A35441AE47E18A786351415C8FC265A2A35441E17A145E72635141C3F5286CA4A3544114AE4791556351415C8FC265B0A35441295C8F724D635141A4703D1AB4A35441E17A149E4663514166666686B7A354411F85EBE14063514133333373BAA35441295C8F123C63514152B81E45BDA3544100000010336351417B14AE27C2A35441B81E85BB2F63514114AE4721C4A354417C87D5B62A63514110F9D91AC7A354415C8FC205256351419A9999D9CAA354417B9CAB2C1B6351418B062351D0A354415BB3171714635141A9375B9ED5A3544174CF3AE911635141D1E46476D7A35441713D0A070B635141CDCCCCBCDDA35441C3F528CC0463514148E17A54E2A3544185EB51880463514152B81E85E2A354418FC2F528FB625141CDCCCC3CE9A3544185EB51B8F1625141B81E851BF0A3544152B81EF5EC6251410AD7A380F3A354411F85EBC1E7625141CDCCCC6CF7A3544133333363E3625141333333B3FAA35441A09E44EADD625141A759E04BFEA3544100000090DB6251417B14AED7FFA3544118B87A88D9625141F1790B5B01A454415C8FC2B5D7625141713D0AB702A4544152B81EE5D2625141D7A370FD05A4544114AE4751CC625141C3F528DC0AA454413D0AD7D3BF625141EC51B87E14A45441E17A144EB56251419A9999791CA4544114AE4701B462514185EB51A81EA454415C8FC205AC6251415C8FC23525A4544148E17A24A6625141C3F5286C2AA4544166666616A3625141E17A146E2DA4544185EB51D89D625141AE47E1EA32A454410AD7A3109962514152B81ED537A4544148E17A449762514152B81E9539A45441C3F5282C95625141EC51B8DE3BA45441B81E858B896251413333333348A45441295C8F4279625141B81E853B59A45441EC51B8EE67625141EC51B8CE6BA4544185EB51F8666251413D0AD7E36AA454411F85EB615F625141E17A14EE73A454410AD7A3F058625141F6285C4F7BA45441295C8FC252625141EC51B8BE81A45441D3663FD7516251419B53CDC282A45441EC51B8DE4C62514114AE474188A454417B14AE97486251417B14AE778CA454410AD7A390466251411F85EB618EA454416666669645625141E17A144E8FA45441666666E63F6251416666660694A4544152B81EF53B625141AE47E1CA97A454410AD7A3A03A625141B81E854B9AA454416666660634625141C3F5287C9FA454415C8FC2E5296251411F85EB31A6A45441713D0AF72762514114AE4771A7A4544148E17AC42062514148E17AC4ABA4544148E17A441A6251419A999909B0A45441713D0AB7156251410AD7A350B3A454417B14AE77106251411F85EB31B7A45441295C8F120A62514114AE4721BCA45441AE47E10A0262514185EB51B8C2A454417B14AE37FB615141C3F5282CC9A45441713D0A07F46151411F85EB21D0A4544114AE4721EB615141295C8FA2D9A45441713D0AC7E46151410AD7A380E0A45441000000F0DF61514152B81EE5E5A454410AD7A3C0D6615141713D0AD7EFA454417B14AE37D0615141A4703DDAF7A45441D7A370ADC8615141EC51B8AE01A55441713D0A07C3615141295C8F520AA55441C3F528CCBE6151418FC2F5B810A5544133333373B9615141295C8F721AA5544166666616B56151413D0AD7A322A5544185EB51F8AA615141713D0AF735A55441F6285C6FA7615141333333B33DA55441E17A14DEA4615141B81E855B44A55441D7A370CDA2615141CDCCCC5C4AA55441A4703D8AA16151419A9999694BA5544114AE47F19F6151413D0AD7E351A5544114AE47119F6151415C8FC26558A55441EC51B87E9E61514152B81ED55BA554413D0AD7F39D61514114AE470160A5544114AE47219E615141CDCCCCBC64A554418FC2F5A89D61514152B81E5569A55441026FD68B9D6151417FDC40E56AA55441A4703D7A9D615141713D0AD76BA55441E17A146E9D61514185EB51A86CA55441AE47E16A9C615141D7A370CD76A554411F85EBF19A615141E17A141E84A554419A9999C9996151417B14AE078DA554415C8FC2159A61514148E17A0494A55441A4703D2A99615141295C8F029FA5544148E17AE498615141A4703DEAA1A5544148E17A4498615141CDCCCC9CA8A55441713D0AF796615141A4703D0AB5A554415C8FC225966151413D0AD793BEA55441000000909561514148E17AD4C3A55441C3F5287C956151413D0AD7D3C4A554419A9999C994615141AE47E1BACDA5544152B81E259361514100000050E0A5544185EB5108926151418FC2F538EDA55441F6285C8F91615141E17A14CEF1A55441CDCCCC5C916151410AD7A360F5A5544114AE47A19161514148E17A94F8A55441AE47E19A926151417B14AEB7FAA55441A4703D8A92615141C3F528ACFBA55441AE47E1CA90615141B81E855B00A65441E17A149E8D615141000000A005A65441A4703DFA8B61514185EB515806A65441C3F528FC8A6151413333337306A65441333333038A615141CDCCCC1C0BA65441333333438D615141C3F5284C08A65441A4703D6A90615141B81E85EB07A65441195EC15390615141B67439E908A654410D8A894C91615141A3BFC0EE08A654412B2021B993615141713A8BFC08A65441439323CC93615141DC91FD1008A65441781934959561514161953FC2FCA554416FBFF6389461514141BC4DA7FBA554411295BA4E946151418CDF2D87F9A5544156ED602895615141AC291C4CF6A554415C8FC2859761514114AE4751E5A55441A4703DFA98615141A4703D3AD7A55441CDCCCC1C9961514100000040D4A55441A4703D8A996151418FC2F518CFA55441333333B39A615141EC51B85EC4A554419A9999699B6151417B14AE27B9A55441713D0A279C615141295C8F72AFA554413D0AD7039D615141295C8F02A5A55441713D0A579F615141333333038AA55441A4703D1AA16151413D0AD7D37CA5544148E17AF4A1615141C3F5286C76A55441C3F5287CA161514152B81EC571A55441E17A146EA2615141713D0AA76AA5544100000070A3615141EC51B81E5EA554411F85EB51A461514114AE472157A554415C8FC225A66151411F85EB514FA55441A4703D7AA86151413333339347A55441E17A148EAA6151417B14AEC741A554410AD7A3D0AB6151411F85EBA13EA55441713D0A07AF61514148E17A0438A55441B81E859BB1615141B81E851B33A554415C8FC2B5B66151417B14AE0729A55441CDCCCC5CBA615141AE47E19A22A5544166666666BF6151418FC2F51819A55441C3F5286CC2615141F6285C3F14A554413D0AD723C6615141333333130EA55441C3F5287CCA6151416666666607A55441713D0A17D0615141713D0A87FFA454410AD7A3E0D4615141AE47E16AF9A45441B81E859BDA615141D7A3706DF2A454415C8FC205E06151411F85EB91ECA4544148E17A54E7615141295C8FB2E4A4544148E17AD4EF61514114AE47B1DBA45441E17A148EF46151417B14AEC7D6A4544133333363F76151411F85EBB1D3A45441AE47E14AFB615141A4703DCACFA45441295C8F12FF615141295C8F12CCA45441C3F5283C0C625141C3F5285CC0A45441B81E854B1462514100000030BAA454417B41533B1C625141735EE995B4A454413D0AD7B31D625141C3F5288CB3A4544148E17A2426625141F6285C0FAEA45441B144718F286251410EDD6A8BACA454419A9999792E625141666666D6A8A4544165D61E7B326251412DE7B31FA6A45441EC51B89E366251411F85EB51A3A4544197D886B03B62514151D8858B9FA45441295C8F323E625141D7A370AD9DA454416B10E2554262514145DE0DC799A454410000008042625141F6285C9F99A45441F0B2155346625141C3BCE42796A454415E8552504A62514166685B7992A45441E8746E504B6251418724697791A45441713D0A674B6251410AD7A36091A454415C8FC2B54A625141EC51B87E90A45441B78773974C6251417E997D7C8EA454418FC2F5984C625141AE47E17A8EA45441E565289D4C6251411BF6FB7B8EA45441B81E85CB4D625141B81E85CB8EA45441542C0A384E6251416FB785578EA454419AEF5E554F625141A78C87268DA45441F942104C526251412B738EFB89A454414F68467854625141AFEB3A0987A45441F6285CFF5562514152B81EF584A454419A53F2B75662514127A3298D84A454414A0A4D98576251416BF8CE0E84A454418FC2F50858625141F6285CCF83A45441AE47E1AA5A625141F6285C7F81A45441CE663C035B6251419690552281A4544193F96C59606251414C2BF0837BA45441B81E859B636251415C8FC21578A45441AC7E1D6F64625141CB72651977A454415C8FC2856B62514152B81EA56EA45441F08C15DD7062514109349A2269A45441BE49F63C7662514120C4429763A454419A9999897C6251417B14AE175DA45441A58B05FC8262514132F0561456A45441F9E4BA158B625141237E8B444DA454415C8FC2058D6251418FC2F5284BA45441295C8F3291625141A4703DBA46A45441BDE84653936251419F33EF4944A4544152B81ED59362514152B81EB543A45441807A776C94625141B82B8B1743A45441712F1B089C6251412E9749263BA4544114AE47E19E62514148E17A0438A45441713D0A17A2625141D7A370AD34A4544119D8D307A3625141A9B46ECE33A45441D7A370EDA9625141B81E855B2DA454411C19355BAA6251416E61A9ED2CA454411F85EBF1AC625141666666562AA454418304BB07AE62514104C09D7A29A45441258F0A4FB262514111BA151826A45441C1D12788B462514185ABEC3824A45441713D0AD7B66251410000004022A45441239745D0BA625141DB7AFCEE1EA454418810D706BB6251417F030BC11EA45441713D0AB7BC6251418FC2F5281DA454418FE027D2BC625141648F96131DA45441B81E85DBC062514152B81EE519A454412C4DE530C3625141E1FA87BD17A4544185EB5108C5625141A4703D0A16A45441D968D02DC662514137FBC33C15A454419A999999C7625141E17A143E14A454413D0AD7B3CA625141713D0AB711A454412A4EB9EECA6251414470798711A45441F6285CBFCE625141295C8F720EA4544169D11466D06251411CE1BE3D0DA45441C3F528ECD26251415C8FC2650BA4544112E479E0D3625141550D46830AA454410AD7A330D46251418FC2F5380AA4544195698D29D66251417D354FB808A45441333333E3D6625141AE47E12A08A454417170AF02D9625141FF89389F06A45441C3F528CCDC625141D7A370DD03A454411BAE5F15E06251415DDD716901A454415C8FC295E06251419A99990901A45441FC1FFDB3E3625141741C49D1FEA35441ED7BB740EB625141D483FC67F9A35441CCDD9F1EF06251410BEC54D5F5A3544152B81E05F3625141D7A370ADF3A354413C212A93F462514123C30790F2A3544185289BFBFC62514142AB5B88ECA3544187DB61A105635141624FB547E6A354419FE78DB10C6351419779A514E1A35441000000200E63514166666606E0A35441DFB6FED212635141CF9891F9DCA35441295C8F22156351419A999979DBA354414FF3A7F31A6351410ED66241D7A354411F85EB0121635141CDCCCCDCD2A35441679EDAB2216351416685A25CD2A3544131297CBB27635141BB45C1FDCDA3544185EB51E8286351413D0AD723CDA35441CC4A6C862F63514147757603C9A35441AE47E1DA346351410AD7A3B0C5A354410AD7A300386351413D0AD7D3C3A354412861A6C53D63514126C79BAAC0A354413D0AD7633F6351417B14AEC7BFA35441AD85781146635141BA67C098BCA35441666666164963514185EB5128BBA354413E8F13A3556351412251EACCB5A354410000007058635141AE47E19AB4A35441D5D8B3BF596351410B08CE18B4A35441B59F733B60635141E4FDB295B1A354415C8FC2556263514152B81EC5B0A354413F07B12A636351411D2141DEAFA3544148E17A3464635141E17A14BEAEA354418A84824666635141192FA7E0ADA3544114AE4701686351417B14AE27ADA35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>565433 - 258905
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -24 </desc>
+<a>
+0106000000010000000103000000010000003801000000000090B563514152B81E5593A35441B81E859BA4635141CDCCCCBC97A354415C8FC2159B6351413D0AD7039AA35441C3F528AC8F6351417B14AE779CA35441A4703DFA8663514114AE47719EA354411F85EB917F63514148E17A84A0A354419A9999F97C63514100000010A1A35441AE47E18A786351415C8FC265A2A35441E17A145E72635141C3F5286CA4A3544114AE4791556351415C8FC265B0A35441295C8F724D635141A4703D1AB4A35441E17A149E4663514166666686B7A354411F85EBE14063514133333373BAA35441295C8F123C63514152B81E45BDA3544100000010336351417B14AE27C2A35441B81E85BB2F63514114AE4721C4A35441295C8FE22A635141E17A14FEC6A354415C8FC205256351419A9999D9CAA354417D9CAB2C1B6351418D062351D0A354415EB3171714635141AB375B9ED5A3544179CF3AE911635141CFE46476D7A35441713D0A070B635141CDCCCCBCDDA35441C3F528CC0463514148E17A54E2A3544185EB51880463514152B81E85E2A354418FC2F528FB625141CDCCCC3CE9A3544185EB51B8F1625141B81E851BF0A3544152B81EF5EC6251410AD7A380F3A354411F85EBC1E7625141CDCCCC6CF7A3544133333363E3625141333333B3FAA3544100000090DB6251417B14AED7FFA354415C8FC2B5D7625141713D0AB702A4544152B81EE5D2625141D7A370FD05A4544114AE4751CC625141C3F528DC0AA454413D0AD7D3BF625141EC51B87E14A45441E17A144EB56251419A9999791CA4544114AE4701B462514185EB51A81EA45441E17A141EB06251410AD7A3D021A454415C8FC205AC6251415C8FC23525A4544148E17A24A6625141C3F5286C2AA4544166666616A3625141E17A146E2DA4544185EB51D89D625141AE47E1EA32A454410AD7A3109962514152B81ED537A4544148E17A449762514152B81E9539A45441C3F5282C95625141EC51B8DE3BA45441B81E858B896251413333333348A45441295C8F4279625141B81E853B59A45441EC51B8EE67625141EC51B8CE6BA4544185EB51F8666251413D0AD7E36AA454411F85EB615F625141E17A14EE73A454410AD7A3F058625141F6285C4F7BA45441295C8FC252625141EC51B8BE81A45441EC51B8DE4C62514114AE474188A454417B14AE97486251417B14AE778CA454410AD7A390466251411F85EB618EA454416666669645625141E17A144E8FA45441666666E63F6251416666660694A4544152B81EF53B625141AE47E1CA97A454410AD7A3A03A625141B81E854B9AA454416666660634625141C3F5287C9FA454415C8FC2E5296251411F85EB31A6A45441713D0AF72762514114AE4771A7A4544148E17AC42062514148E17AC4ABA4544148E17A441A6251419A999909B0A45441713D0AB7156251410AD7A350B3A454417B14AE77106251411F85EB31B7A45441295C8F120A62514114AE4721BCA45441D7A370BD086251418FC2F528BDA45441AE47E10A0262514185EB51B8C2A454417B14AE37FB615141C3F5282CC9A45441713D0A07F46151411F85EB21D0A4544114AE4721EB615141295C8FA2D9A45441713D0AC7E46151410AD7A380E0A45441000000F0DF61514152B81EE5E5A454410AD7A3C0D6615141713D0AD7EFA454419A9999E9D061514100000000F7A454417B14AE37D0615141A4703DDAF7A45441D7A370ADC8615141EC51B8AE01A55441713D0A07C3615141295C8F520AA55441C3F528CCBE6151418FC2F5B810A5544133333373B9615141295C8F721AA5544166666616B56151413D0AD7A322A5544152B81EC5AE615141C3F528AC2EA5544185EB51F8AA615141713D0AF735A55441F6285C6FA7615141333333B33DA55441E17A14DEA4615141B81E855B44A55441D7A370CDA2615141CDCCCC5C4AA55441A4703D8AA16151419A9999694BA5544114AE47F19F6151413D0AD7E351A5544114AE47119F6151415C8FC26558A55441EC51B87E9E61514152B81ED55BA554413D0AD7F39D61514114AE470160A5544114AE47219E615141CDCCCCBC64A554418FC2F5A89D61514152B81E5569A55441A4703D7A9D615141713D0AD76BA55441E17A146E9D61514185EB51A86CA55441AE47E16A9C615141D7A370CD76A554411F85EBF19A615141E17A141E84A554419A9999C9996151417B14AE078DA554415C8FC2159A61514148E17A0494A55441A4703D2A99615141295C8F029FA5544148E17AE498615141A4703DEAA1A5544148E17A4498615141CDCCCC9CA8A55441713D0AF796615141A4703D0AB5A554415C8FC225966151413D0AD793BEA55441000000909561514148E17AD4C3A55441C3F5287C956151413D0AD7D3C4A554419A9999C994615141AE47E1BACDA5544152B81E259361514100000050E0A5544185EB5108926151418FC2F538EDA55441F6285C8F91615141E17A14CEF1A55441CDCCCC5C916151410AD7A360F5A5544114AE47A19161514148E17A94F8A55441AE47E19A926151417B14AEB7FAA55441A4703D8A92615141C3F528ACFBA55441AE47E1CA90615141B81E855B00A65441E17A149E8D615141000000A005A65441A4703DFA8B61514185EB515806A65441C3F528FC8A6151413333337306A65441333333038A615141CDCCCC1C0BA65441C3F5283C8B6151413D0AD7130AA65441333333438D615141C3F5284C08A65441A4703D6A90615141B81E85EB07A654411D5EC15390615141B27439E908A65441282021B9936151416E3A8BFC08A65441439323CC93615141DC91FD1008A65441781934959561514161953FC2FCA554416FBFF6389461514141BC4DA7FBA554411295BA4E946151418CDF2D87F9A5544156ED602895615141AC291C4CF6A554415C8FC2859761514114AE4751E5A55441A4703DFA98615141A4703D3AD7A55441CDCCCC1C9961514100000040D4A55441A4703D8A996151418FC2F518CFA55441333333B39A615141EC51B85EC4A554419A9999699B6151417B14AE27B9A55441713D0A279C615141295C8F72AFA554413D0AD7039D615141295C8F02A5A55441AE47E15A9E615141E17A149E95A55441713D0A579F615141333333038AA55441A4703D1AA16151413D0AD7D37CA5544148E17AF4A1615141C3F5286C76A55441C3F5287CA161514152B81EC571A55441E17A146EA2615141713D0AA76AA5544100000070A3615141EC51B81E5EA554411F85EB51A461514114AE472157A554415C8FC225A66151411F85EB514FA55441A4703D7AA86151413333339347A55441E17A148EAA6151417B14AEC741A554410AD7A3D0AB6151411F85EBA13EA55441713D0A07AF61514148E17A0438A55441B81E859BB1615141B81E851B33A554415C8FC2B5B66151417B14AE0729A55441CDCCCC5CBA615141AE47E19A22A5544166666666BF6151418FC2F51819A55441C3F5286CC2615141F6285C3F14A554413D0AD723C6615141333333130EA55441C3F5287CCA6151416666666607A55441713D0A17D0615141713D0A87FFA454410AD7A3E0D4615141AE47E16AF9A45441B81E859BDA615141D7A3706DF2A454415C8FC205E06151411F85EB91ECA4544148E17A54E7615141295C8FB2E4A4544148E17AD4EF61514114AE47B1DBA45441E17A148EF46151417B14AEC7D6A4544133333363F76151411F85EBB1D3A45441AE47E14AFB615141A4703DCACFA45441295C8F12FF615141295C8F12CCA45441C3F5283C0C625141C3F5285CC0A45441B81E854B1462514100000030BAA454413D0AD7B31D625141C3F5288CB3A4544148E17A2426625141F6285C0FAEA454419A9999792E625141666666D6A8A45441EC51B89E366251411F85EB51A3A45441295C8F323E625141D7A370AD9DA454410000008042625141F6285C9F99A454418FC2F5A8496251411F85EB2193A45441713D0A674B6251410AD7A36091A454415C8FC2B54A625141EC51B87E90A454418FC2F5984C625141AE47E17A8EA45441B81E85CB4D625141B81E85CB8EA4544148E17A5452625141295C8FF289A45441F6285CFF5562514152B81EF584A454418FC2F50858625141F6285CCF83A45441AE47E1AA5A625141F6285C7F81A45441B81E859B636251415C8FC21578A454415C8FC2856B62514152B81EA56EA454419A9999897C6251417B14AE175DA454415C8FC2058D6251418FC2F5284BA45441295C8F3291625141A4703DBA46A4544152B81ED59362514152B81EB543A45441AE47E1AA9B625141CDCCCC8C3BA4544114AE47E19E62514148E17A0438A45441713D0A17A2625141D7A370AD34A4544152B81E75A66251411F85EBA130A45441D7A370EDA9625141B81E855B2DA454411F85EBF1AC625141666666562AA45441000000C0B2625141EC51B8BE25A45441713D0AD7B66251410000004022A4544133333303BB62514148E17AC41EA45441713D0AB7BC6251418FC2F5281DA45441B81E85DBC062514152B81EE519A4544185EB5108C5625141A4703D0A16A454419A999999C7625141E17A143E14A454413D0AD7B3CA625141713D0AB711A45441F6285CBFCE625141295C8F720EA45441C3F528ECD26251415C8FC2650BA454410AD7A330D46251418FC2F5380AA45441333333E3D6625141AE47E12A08A45441C3F528CCDC625141D7A370DD03A454415C8FC295E06251419A99990901A454410AD7A310E962514100000000FBA3544148E17A44EE6251415C8FC235F7A3544152B81E05F3625141D7A370ADF3A3544185EB51C8FC625141D7A370ADECA354419A99994906635141E17A14CEE5A35441000000200E63514166666606E0A35441295C8F22156351419A999979DBA354411F85EB0121635141CDCCCCDCD2A3544185EB51E8286351413D0AD723CDA35441AE47E1DA346351410AD7A3B0C5A354410AD7A300386351413D0AD7D3C3A354413D0AD7633F6351417B14AEC7BFA35441666666164963514185EB5128BBA354410000007058635141AE47E19AB4A354415C8FC2556263514152B81EC5B0A3544148E17A3464635141E17A14BEAEA3544114AE4701686351417B14AE27ADA3544185EB51286963514133333373AFA35441E17A145E69635141D7A370DDAFA35441B81E853B7263514100000040ACA354410AD7A33081635141713D0A37A7A35441D7A3708D8863514148E17AF4A4A35441E17A143E91635141713D0AF7A2A354415C8FC2E59B63514185EB51D8A0A35441A4703D0AA3635141C3F5286C9FA35441713D0A77AB635141CDCCCC5C9DA354417B14AE57B8635141D7A3708D99A3544148E17AE4B76351418FC2F59898A354418FC2F538B46351410AD7A3A099A354418FC2F538AD6351410AD7A3E09BA35441A4703DDAA8635141A4703D4A9DA35441E17A14BEA4635141000000209EA35441B81E856B9D6351418FC2F5689FA35441EC51B8DE9663514114AE47A1A0A35441F6285C0F90635141AE47E10AA2A354410000003089635141713D0AD7A3A354411F85EB21806351417B14AE37A6A35441713D0A4775635141000000C0A9A3544148E17AF46D63514152B81EC5ACA3544148E17A5469635141333333D3AEA354410AD7A3C068635141C3F528DCADA35441B81E85AB6C63514100000010ACA3544152B81EB572635141E17A147EA9A354417B14AEA777635141295C8FD2A7A354419A9999F97E6351411F85EB61A5A35441666666C68763514114AE4701A3A35441666666B68E6351415C8FC245A1A354413D0AD75395635141C3F528DC9FA35441E17A146E9B63514148E17AC49EA354410AD7A370A0635141EC51B8FE9DA3544100000000A56351418FC2F5189DA354418FC2F5A8A86351413D0AD7639CA35441295C8F52AC635141C3F5283C9BA354415C8FC265B1635141F6285C6F99A3544166666686B763514114AE47D197A354419F9E299CC1635141896FB0FB95A35441187DE03EC46351414FC428D095A3544152B81EA5C96351413333335394A35441E17A14CEDB6351411F85EBD18EA35441333333B3F2635141A4703DEA87A354410AD7A3D0F36351413D0AD79387A35441713D0A17F76351419A99998986A35441AE47E19AF8635141EC51B80E86A354410AD7A31003645141CDCCCCBC82A35441000000D00C64514152B81E757FA35441666666461564514152B81EB57CA35441CDCCCCCC18645141C3F528AC7BA354410AD7A3D01F645141C3F528FC78A354415C8FC225236451411F85EBB177A354410AD7A3E029645141713D0A0775A354418FC2F5682C64514114AE475173A354419A99994942645141333333036AA35441EC51B80E4C6451415C8FC23566A354413D0AD7635B6451410AD7A31061A35441EC51B8CE5D645141AE47E16A5FA35441666666A6686451418FC2F5985BA35441B81E85CB716451413D0AD74359A35441333333C379645141AE47E19A57A35441A4703DBA8364514185EB513856A354419A9999098B645141000000A055A354410AD7A3408F645141D7A370AD55A35441713D0A579564514185EB514857A35441EC51B89E946451418FC2F5B853A35441B81E852B8A6451410AD7A35051A3544114AE472187645141F6285CEF50A354419A9999E9816451418FC2F5B850A3544114AE47E1816451415C8FC2B551A3544152B81E45766451416666667653A35441AE47E1FA69645141F6285C5F56A3544152B81E2556645141AE47E18A5DA35441E17A148E4864514185EB51D861A3544114AE47A14864514114AE47E162A35441A4703D8A3864514148E17A4469A3544114AE47D1216451413D0AD76372A3544152B81E551A645141666666E674A3544185EB51E80E645141F6285CDF77A354415C8FC2250B64514185EB514879A35441B81E858B016451410AD7A3707CA354410AD7A330FF635141666666367DA35441AE47E1AAF063514148E17A4481A354417B14AE17CD6351410AD7A3F08BA3544100000090B563514152B81E5593A35441
+</a>
+
+<b>
+0106000000010000000103000000010000009D01000014AE4701686351417B14AE27ADA354413958661268635141BF61C549ADA35441E17A145E69635141D7A370DDAFA35441B81E853B7263514100000040ACA35441C844C61A7563514111927F48ABA35441F533CEC8806351417129FE59A7A354410AD7A33081635141713D0A37A7A35441D7A3708D8863514148E17AF4A4A35441CB8DF9638B6351417CB71A4EA4A35441E17A143E91635141713D0AF7A2A35441FBA1889B92635141F49082B1A2A35441DA40D7A89A635141516C6017A1A35441A4703D0AA3635141C3F5286C9FA35441E6F91B77A46351417F17F2129FA35441C211E613AA6351417DBFA2B39DA35441713D0A77AB635141CDCCCC5C9DA354414F11D8D7B163514136ECB5799BA3544195A9F824B8635141B962719C99A354417B14AE57B8635141D7A3708D99A3544148E17AE4B76351418FC2F59898A35441D32EEA5DB76351414AECB9BE98A354418FC2F538B46351410AD7A3A099A35441E1920A93B2635141A7B841289AA354418FC2F538AD6351410AD7A3E09BA35441DA049467AC635141785851249CA35441A4703DDAA8635141A4703D4A9DA35441E17A14BEA4635141000000209EA35441C159A754A363514198E96C5F9EA35441B81E856B9D6351418FC2F5689FA35441D577610F99635141B401DA38A0A35441EC51B8DE9663514114AE47A1A0A35441F6285C0F90635141AE47E10AA2A3544128601C888E6351417C093671A2A354410000003089635141713D0AD7A3A354411F85EB21806351417B14AE37A6A35441A749BE2A7D6351411263BC2EA7A354415A43ED0975635141016B34D9A9A35441070BE5EC6E635141CFBDAA5EACA3544148E17A5469635141333333D3AEA354410AD7A3C068635141C3F528DCADA35441E7EB076469635141BB9F3091ADA35441201D28A46C635141DAE96013ACA35441B81E85AB6C63514100000010ACA3544185FF5F4F72635141F4DC63A9A9A3544152B81EB572635141E17A147EA9A354417B14AEA777635141295C8FD2A7A35441F0EAEC87786351415BBFCF87A7A354419A9999F97E6351411F85EB61A5A354417347E2158263514134A1C98AA4A35441666666C68763514114AE4701A3A354417613027D8C635141CC3EF4D3A1A35441666666B68E6351415C8FC245A1A35441054B1847916351417A3989B9A0A354413D0AD75395635141C3F528DC9FA3544184BDC9E598635141995B8A389FA35441E17A146E9B63514148E17AC49EA354419109190D9E63514117C2035D9EA354410AD7A370A0635141EC51B8FE9DA35441230E3E94A363514199098E609DA3544100000000A56351418FC2F5189DA35441A6A28CA3A8635141FBCAE2649CA35441295C8F52AC635141C3F5283C9BA354416AC8CFD8B063514103FE59A199A354415C8FC265B1635141F6285C6F99A3544190790DB0B663514109B3DC0998A3544166666686B763514114AE47D197A354414E02C2B0BB6351410A99520F97A354414E2E7E5FC1635141B969B90696A354419F9E299CC1635141896FB0FB95A35441B1AE6196C363514155A807DB95A35441187DE03EC46351414FC428D095A35441C3F92F83C4635141E20C55BD95A3544152B81EA5C96351413333335394A35441C717C806D96351411BC88AA98FA35441E17A14CEDB6351411F85EBD18EA35441ED5F7EBAE7635141646354398BA35441333333B3F2635141A4703DEA87A35441BC3BF614F7635141EA8A428A86A35441713D0A17F76351419A99998986A35441C1D40318F76351418A854A8986A354419EF7F5AE0264514188A7CDDB82A35441F04AB72304645141E4E53C6082A35441000000D00C64514152B81E757FA35441E78BBB751364514196A71E4C7DA35441666666461564514152B81EB57CA35441CDCCCCCC18645141C3F528AC7BA35441C310F7D11A6451410BB507E67AA35441D0A7007623645141A9761D9277A354415E7DA32629645141CC6FC35075A354410AD7A3E029645141713D0A0775A354418EA1CE1D2A645141FD13BDDD74A354418FC2F5682C64514114AE475173A354416C1FB46D3864514125B5AB346EA354419A99994942645141333333036AA35441565FFEC943645141C7E6976D69A35441EC51B80E4C6451415C8FC23566A354417BBF724050645141B33975CD64A354416D6894DC546451418972734163A354413D0AD7635B6451410AD7A31061A3544193B5FED15B645141511292C560A35441EC51B8CE5D645141AE47E16A5FA35441746E47B963645141955246555DA35441666666A6686451418FC2F5985BA35441FF5184E06C6451415A44F5845AA35441B81E85CB716451413D0AD74359A35441AF4373B077645141AFB5750958A35441333333C379645141AE47E19A57A354413948866881645141C3A1D68A56A35441A4703DBA8364514185EB513856A354419A9999098B645141000000A055A354419729FB8E8D645141BCDE09A855A354410AD7A3408F645141D7A370AD55A3544108721484916451411155364656A35441904D72FB9364514180DBACEC56A35441713D0A579564514185EB514857A35441EC51B89E946451418FC2F5B853A35441B81E852B8A6451410AD7A35051A3544114AE472187645141F6285CEF50A354419A9999E9816451418FC2F5B850A3544114AE47E1816451415C8FC2B551A3544152B81E45766451416666667653A35441AE47E1FA69645141F6285C5F56A3544152B81E2556645141AE47E18A5DA35441E17A148E4864514185EB51D861A3544114AE47A14864514114AE47E162A35441A4703D8A3864514148E17A4469A3544114AE47D1216451413D0AD76372A3544152B81E551A645141666666E674A3544185EB51E80E645141F6285CDF77A354415C8FC2250B64514185EB514879A35441B81E858B016451410AD7A3707CA354410AD7A330FF635141666666367DA35441AE47E1AAF063514148E17A4481A354417B14AE17CD6351410AD7A3F08BA3544100000090B563514152B81E5593A35441B81E859BA4635141CDCCCCBC97A354415C8FC2159B6351413D0AD7039AA354415FC874459963514147F49D679AA35441C3F528AC8F6351417B14AE779CA35441A4703DFA8663514114AE47719EA35441E91C4F088163514178079B1BA0A354411F85EB917F63514148E17A84A0A354419A9999F97C63514100000010A1A35441AE47E18A786351415C8FC265A2A35441E17A145E72635141C3F5286CA4A3544114AE4791556351415C8FC265B0A35441295C8F724D635141A4703D1AB4A35441E17A149E4663514166666686B7A354411F85EBE14063514133333373BAA35441295C8F123C63514152B81E45BDA3544100000010336351417B14AE27C2A35441B81E85BB2F63514114AE4721C4A354417C87D5B62A63514110F9D91AC7A354415C8FC205256351419A9999D9CAA354417B9CAB2C1B6351418B062351D0A354415BB3171714635141A9375B9ED5A3544174CF3AE911635141D1E46476D7A35441713D0A070B635141CDCCCCBCDDA35441C3F528CC0463514148E17A54E2A3544185EB51880463514152B81E85E2A354418FC2F528FB625141CDCCCC3CE9A3544185EB51B8F1625141B81E851BF0A3544152B81EF5EC6251410AD7A380F3A354411F85EBC1E7625141CDCCCC6CF7A3544133333363E3625141333333B3FAA35441A09E44EADD625141A759E04BFEA3544100000090DB6251417B14AED7FFA3544118B87A88D9625141F1790B5B01A454415C8FC2B5D7625141713D0AB702A4544152B81EE5D2625141D7A370FD05A4544114AE4751CC625141C3F528DC0AA454413D0AD7D3BF625141EC51B87E14A45441E17A144EB56251419A9999791CA4544114AE4701B462514185EB51A81EA454415C8FC205AC6251415C8FC23525A4544148E17A24A6625141C3F5286C2AA4544166666616A3625141E17A146E2DA4544185EB51D89D625141AE47E1EA32A454410AD7A3109962514152B81ED537A4544148E17A449762514152B81E9539A45441C3F5282C95625141EC51B8DE3BA45441B81E858B896251413333333348A45441295C8F4279625141B81E853B59A45441EC51B8EE67625141EC51B8CE6BA4544185EB51F8666251413D0AD7E36AA454411F85EB615F625141E17A14EE73A454410AD7A3F058625141F6285C4F7BA45441295C8FC252625141EC51B8BE81A45441D3663FD7516251419B53CDC282A45441EC51B8DE4C62514114AE474188A454417B14AE97486251417B14AE778CA454410AD7A390466251411F85EB618EA454416666669645625141E17A144E8FA45441666666E63F6251416666660694A4544152B81EF53B625141AE47E1CA97A454410AD7A3A03A625141B81E854B9AA454416666660634625141C3F5287C9FA454415C8FC2E5296251411F85EB31A6A45441713D0AF72762514114AE4771A7A4544148E17AC42062514148E17AC4ABA4544148E17A441A6251419A999909B0A45441713D0AB7156251410AD7A350B3A454417B14AE77106251411F85EB31B7A45441295C8F120A62514114AE4721BCA45441AE47E10A0262514185EB51B8C2A454417B14AE37FB615141C3F5282CC9A45441713D0A07F46151411F85EB21D0A4544114AE4721EB615141295C8FA2D9A45441713D0AC7E46151410AD7A380E0A45441000000F0DF61514152B81EE5E5A454410AD7A3C0D6615141713D0AD7EFA454417B14AE37D0615141A4703DDAF7A45441D7A370ADC8615141EC51B8AE01A55441713D0A07C3615141295C8F520AA55441C3F528CCBE6151418FC2F5B810A5544133333373B9615141295C8F721AA5544166666616B56151413D0AD7A322A5544185EB51F8AA615141713D0AF735A55441F6285C6FA7615141333333B33DA55441E17A14DEA4615141B81E855B44A55441D7A370CDA2615141CDCCCC5C4AA55441A4703D8AA16151419A9999694BA5544114AE47F19F6151413D0AD7E351A5544114AE47119F6151415C8FC26558A55441EC51B87E9E61514152B81ED55BA554413D0AD7F39D61514114AE470160A5544114AE47219E615141CDCCCCBC64A554418FC2F5A89D61514152B81E5569A55441026FD68B9D6151417FDC40E56AA55441A4703D7A9D615141713D0AD76BA55441E17A146E9D61514185EB51A86CA55441AE47E16A9C615141D7A370CD76A554411F85EBF19A615141E17A141E84A554419A9999C9996151417B14AE078DA554415C8FC2159A61514148E17A0494A55441A4703D2A99615141295C8F029FA5544148E17AE498615141A4703DEAA1A5544148E17A4498615141CDCCCC9CA8A55441713D0AF796615141A4703D0AB5A554415C8FC225966151413D0AD793BEA55441000000909561514148E17AD4C3A55441C3F5287C956151413D0AD7D3C4A554419A9999C994615141AE47E1BACDA5544152B81E259361514100000050E0A5544185EB5108926151418FC2F538EDA55441F6285C8F91615141E17A14CEF1A55441CDCCCC5C916151410AD7A360F5A5544114AE47A19161514148E17A94F8A55441AE47E19A926151417B14AEB7FAA55441A4703D8A92615141C3F528ACFBA55441AE47E1CA90615141B81E855B00A65441E17A149E8D615141000000A005A65441A4703DFA8B61514185EB515806A65441C3F528FC8A6151413333337306A65441333333038A615141CDCCCC1C0BA65441333333438D615141C3F5284C08A65441A4703D6A90615141B81E85EB07A65441195EC15390615141B67439E908A654410D8A894C91615141A3BFC0EE08A654412B2021B993615141713A8BFC08A65441439323CC93615141DC91FD1008A65441781934959561514161953FC2FCA554416FBFF6389461514141BC4DA7FBA554411295BA4E946151418CDF2D87F9A5544156ED602895615141AC291C4CF6A554415C8FC2859761514114AE4751E5A55441A4703DFA98615141A4703D3AD7A55441CDCCCC1C9961514100000040D4A55441A4703D8A996151418FC2F518CFA55441333333B39A615141EC51B85EC4A554419A9999699B6151417B14AE27B9A55441713D0A279C615141295C8F72AFA554413D0AD7039D615141295C8F02A5A55441713D0A579F615141333333038AA55441A4703D1AA16151413D0AD7D37CA5544148E17AF4A1615141C3F5286C76A55441C3F5287CA161514152B81EC571A55441E17A146EA2615141713D0AA76AA5544100000070A3615141EC51B81E5EA554411F85EB51A461514114AE472157A554415C8FC225A66151411F85EB514FA55441A4703D7AA86151413333339347A55441E17A148EAA6151417B14AEC741A554410AD7A3D0AB6151411F85EBA13EA55441713D0A07AF61514148E17A0438A55441B81E859BB1615141B81E851B33A554415C8FC2B5B66151417B14AE0729A55441CDCCCC5CBA615141AE47E19A22A5544166666666BF6151418FC2F51819A55441C3F5286CC2615141F6285C3F14A554413D0AD723C6615141333333130EA55441C3F5287CCA6151416666666607A55441713D0A17D0615141713D0A87FFA454410AD7A3E0D4615141AE47E16AF9A45441B81E859BDA615141D7A3706DF2A454415C8FC205E06151411F85EB91ECA4544148E17A54E7615141295C8FB2E4A4544148E17AD4EF61514114AE47B1DBA45441E17A148EF46151417B14AEC7D6A4544133333363F76151411F85EBB1D3A45441AE47E14AFB615141A4703DCACFA45441295C8F12FF615141295C8F12CCA45441C3F5283C0C625141C3F5285CC0A45441B81E854B1462514100000030BAA454417B41533B1C625141735EE995B4A454413D0AD7B31D625141C3F5288CB3A4544148E17A2426625141F6285C0FAEA45441B144718F286251410EDD6A8BACA454419A9999792E625141666666D6A8A4544165D61E7B326251412DE7B31FA6A45441EC51B89E366251411F85EB51A3A4544197D886B03B62514151D8858B9FA45441295C8F323E625141D7A370AD9DA454416B10E2554262514145DE0DC799A454410000008042625141F6285C9F99A45441F0B2155346625141C3BCE42796A454415E8552504A62514166685B7992A45441E8746E504B6251418724697791A45441713D0A674B6251410AD7A36091A454415C8FC2B54A625141EC51B87E90A45441B78773974C6251417E997D7C8EA454418FC2F5984C625141AE47E17A8EA45441E565289D4C6251411BF6FB7B8EA45441B81E85CB4D625141B81E85CB8EA45441542C0A384E6251416FB785578EA454419AEF5E554F625141A78C87268DA45441F942104C526251412B738EFB89A454414F68467854625141AFEB3A0987A45441F6285CFF5562514152B81EF584A454419A53F2B75662514127A3298D84A454414A0A4D98576251416BF8CE0E84A454418FC2F50858625141F6285CCF83A45441AE47E1AA5A625141F6285C7F81A45441CE663C035B6251419690552281A4544193F96C59606251414C2BF0837BA45441B81E859B636251415C8FC21578A45441AC7E1D6F64625141CB72651977A454415C8FC2856B62514152B81EA56EA45441F08C15DD7062514109349A2269A45441BE49F63C7662514120C4429763A454419A9999897C6251417B14AE175DA45441A58B05FC8262514132F0561456A45441F9E4BA158B625141237E8B444DA454415C8FC2058D6251418FC2F5284BA45441295C8F3291625141A4703DBA46A45441BDE84653936251419F33EF4944A4544152B81ED59362514152B81EB543A45441807A776C94625141B82B8B1743A45441712F1B089C6251412E9749263BA4544114AE47E19E62514148E17A0438A45441713D0A17A2625141D7A370AD34A4544119D8D307A3625141A9B46ECE33A45441D7A370EDA9625141B81E855B2DA454411C19355BAA6251416E61A9ED2CA454411F85EBF1AC625141666666562AA454418304BB07AE62514104C09D7A29A45441258F0A4FB262514111BA151826A45441C1D12788B462514185ABEC3824A45441713D0AD7B66251410000004022A45441239745D0BA625141DB7AFCEE1EA454418810D706BB6251417F030BC11EA45441713D0AB7BC6251418FC2F5281DA454418FE027D2BC625141648F96131DA45441B81E85DBC062514152B81EE519A454412C4DE530C3625141E1FA87BD17A4544185EB5108C5625141A4703D0A16A45441D968D02DC662514137FBC33C15A454419A999999C7625141E17A143E14A454413D0AD7B3CA625141713D0AB711A454412A4EB9EECA6251414470798711A45441F6285CBFCE625141295C8F720EA4544169D11466D06251411CE1BE3D0DA45441C3F528ECD26251415C8FC2650BA4544112E479E0D3625141550D46830AA454410AD7A330D46251418FC2F5380AA4544195698D29D66251417D354FB808A45441333333E3D6625141AE47E12A08A454417170AF02D9625141FF89389F06A45441C3F528CCDC625141D7A370DD03A454411BAE5F15E06251415DDD716901A454415C8FC295E06251419A99990901A45441FC1FFDB3E3625141741C49D1FEA35441ED7BB740EB625141D483FC67F9A35441CCDD9F1EF06251410BEC54D5F5A3544152B81E05F3625141D7A370ADF3A354413C212A93F462514123C30790F2A3544185289BFBFC62514142AB5B88ECA3544187DB61A105635141624FB547E6A354419FE78DB10C6351419779A514E1A35441000000200E63514166666606E0A35441DFB6FED212635141CF9891F9DCA35441295C8F22156351419A999979DBA354414FF3A7F31A6351410ED66241D7A354411F85EB0121635141CDCCCCDCD2A35441679EDAB2216351416685A25CD2A3544131297CBB27635141BB45C1FDCDA3544185EB51E8286351413D0AD723CDA35441CC4A6C862F63514147757603C9A35441AE47E1DA346351410AD7A3B0C5A354410AD7A300386351413D0AD7D3C3A354412861A6C53D63514126C79BAAC0A354413D0AD7633F6351417B14AEC7BFA35441AD85781146635141BA67C098BCA35441666666164963514185EB5128BBA354413E8F13A3556351412251EACCB5A354410000007058635141AE47E19AB4A35441D5D8B3BF596351410B08CE18B4A35441B59F733B60635141E4FDB295B1A354415C8FC2556263514152B81EC5B0A354413F07B12A636351411D2141DEAFA3544148E17A3464635141E17A14BEAEA354418A84824666635141192FA7E0ADA3544114AE4701686351417B14AE27ADA35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>801939 - 249255
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+010600000006000000010300000001000000370000001F85EB118FF15041E17A14BEADB95441F6285C8F8FF1504100000080ABB9544152B81EC58FF15041713D0A67A8B954418FC2F5A891F15041EC51B84EA3B95441E17A14DE92F1504114AE47F1A1B9544148E17AB495F150418FC2F5C8A1B954410000002096F15041EC51B85E9EB954413D0AD76395F15041B81E857B9BB95441A4703DAA93F15041D7A3701D98B95441E17A140E90F1504185EB51E897B95441D7A370CD8DF150418FC2F58898B95441E17A14AE89F150413D0AD7139BB954413D0AD78385F150410AD7A3809EB95441EC51B83E82F150418FC2F508A2B954419A99993979F1504114AE47B1ACB95441666666F669F15041C3F5282CBEB95441F6285CFF68F1504166666606BFB95441333333536AF150411F85EB81BFB95441A4703D2A6BF1504148E17A74BFB95441713D0A376CF150415C8FC215C0B95441F6285C5F6DF150411F85EB81C0B95441F6285CAF6EF150410AD7A330C0B954411F85EB4171F150417B14AEB7C0B95441D7A370AD71F15041C3F528ECC2B95441E17A145E6FF1504148E17AB4C5B95441CDCCCC6C6DF1504148E17AB4C5B95441713D0A376CF150418FC2F548C5B954410AD7A3B06BF150411F85EBC1C5B95441F6285C6F68F150415C8FC2E5C6B95441EC51B81E6DF15041B81E85ABCDB95441CDCCCC8C72F1504133333303D3B954410AD7A3F07AF15041E17A142EDAB954418FC2F59883F150418FC2F5B8E4B9544148E17AB485F15041AE47E11AEAB95441713D0A7786F15041295C8FB2F0B95441AE47E19A85F15041C3F5281CF7B9544148E17A547FF150415C8FC2D500BA5441D7A370BD78F15041295C8F220EBA54418FC2F56883F150418FC2F5980ABA54413333337386F1504152B81ED507BA5441AE47E1CA89F1504114AE474100BA54419A9999798CF15041AE47E1EAF6B954417B14AE478DF15041D7A370ADF1B95441C3F5281C8DF15041F6285CDFEAB954419A99998987F1504148E17AF4DFB9544185EB517882F150411F85EBB1D7B95441AE47E14A77F15041A4703D3ACCB954419A9999A974F15041A4703DAAC7B95441A4703D3A74F15041713D0A97C2B954413333339374F150413D0AD733BEB95441D7A370DD75F150415C8FC2C5B9B95441AE47E15A78F15041295C8F02B5B95441EC51B83E7DF15041EC51B87EAFB95441EC51B8FE7DF15041A4703D2AB0B954411F85EB118FF15041E17A14BEADB9544101030000000100000023000000CDCCCCDCABF15041333333D35AB8544152B81E85A5F1504152B81EE54FB854418FC2F518A5F15041B81E854B4FB854411F85EBE18AF15041B81E854B67B85441AE47E1EA7AF15041CDCCCCBC79B854417B14AE477AF1504148E17A847AB854413D0AD7F36BF15041EC51B81E8DB85441A4703D3A5EF150410AD7A3F09EB85441A4703D3A60F150419A9999999EB854419A9999C964F15041000000609CB854415C8FC2256DF1504148E17A8499B85441AE47E12A77F15041713D0A7796B85441AE47E12A7EF1504148E17AD48CB85441EC51B86E7FF15041713D0A178BB85441D7A370BD84F150418FC2F5C883B8544114AE475190F1504114AE473175B854418FC2F53892F150413D0AD7D372B85441CDCCCCCC91F150417B14AEA771B854410AD7A35095F150417B14AEB76DB854418FC2F5F895F15041C3F5280C6BB854418FC2F50898F150417B14AE7768B85441CDCCCCEC98F150417B14AE6766B854418FC2F5189AF15041C3F528CC65B854410AD7A3A099F15041C3F5283C62B854418FC2F5B899F150417B14AED75FB854410AD7A3209BF150417B14AEE75EB854410AD7A3009DF150413D0AD7235FB854418FC2F5E89FF150413D0AD7E35FB8544152B81E15A1F15041C3F528CC5FB85441CDCCCCDCA2F150410000001061B85441CDCCCCECA4F150417B14AE175FB85441CDCCCC4CA5F150417B14AEA75FB85441C3F5281CA6F15041666666D65EB854410AD7A3D0ABF15041000000605CB85441CDCCCCDCABF15041333333D35AB8544101030000000100000041000000AE47E13A8BF150419A9999A973B9544148E17AF48DF15041B81E855B78B9544185EB513890F15041AE47E19A80B95441D7A3706D90F150410AD7A30086B954413D0AD7738FF150419A9999898CB95441295C8FA28DF15041A4703DEA91B954418FC2F5088FF150417B14AE7791B954418FC2F54891F150417B14AE3792B954410AD7A3F091F150410000004093B954410AD7A36097F150410000006091B9544152B81E3599F150413D0AD76390B95441CDCCCC0C97F150410000004090B9544152B81E6596F150413D0AD7838EB954418FC2F5B896F15041C3F5286C8BB954418FC2F54897F150413D0AD74389B954418FC2F5D897F15041C3F528DC87B954418FC2F55899F15041000000B086B954418FC2F5D89AF150417B14AE3786B95441CDCCCCFC9DF150413D0AD77386B95441CDCCCCEC9EF15041C3F5283C85B954410AD7A3E09EF15041C3F528EC83B954410AD7A3F09DF15041C3F5283C82B9544152B81EC59CF15041C3F5288C80B9544152B81E559AF150413D0AD7637EB9544152B81E9599F150413D0AD7B37CB95441CDCCCC9C97F150410000004072B95441CDCCCC3C97F15041C3F5282C71B95441CDCCCCFC94F150413D0AD7536DB954418FC2F52893F150417B14AE8769B95441C3F528EC91F15041AE47E1CA67B9544114AE470189F150411F85EB0162B954415C8FC26585F1504152B81ED55FB9544152B81EB577F1504114AE477156B9544148E17A7457F150411F85EBA142B95441EC51B8DE51F150415C8FC2153FB954415C8FC2D54DF150410AD7A3C03BB9544152B81E154BF15041EC51B8BE37B954417B14AE173CF150417B14AE371DB95441F6285C0F3AF150410AD7A30016B954410AD7A3B039F15041666666760EB954413D0AD7533BF150410000001009B9544152B81E153FF150413D0AD7B304B95441E17A142E44F15041EC51B8AE00B95441B81E852B49F15041295C8F42FDB85441CDCCCC0C53F150417B14AE57F7B854419A9999F952F150415C8FC275F6B854410AD7A3804DF1504185EB5148F4B85441EC51B8DE4DF15041AE47E15AF3B8544152B81E554BF1504152B81E95F0B85441C3F528BC36F15041F6285C5FFFB85441333333C332F150418FC2F53803B954415C8FC24532F1504185EB511804B95441AE47E1BA30F1504152B81ED506B95441295C8FB22FF150411F85EB6109B95441CDCCCC1C30F1504114AE47F110B95441F6285C0F32F1504152B81EC51AB954417B14AE2733F15041295C8F7220B954418FC2F5F83EF150410AD7A3B035B954411F85EB3144F150413D0AD7133FB95441333333D344F15041B81E85DB3FB954411F85EB6168F150419A9999D956B95441295C8FB279F15041C3F5280C62B95441EC51B8AE82F15041AE47E16A69B95441C3F5280C88F150419A9999696FB95441AE47E13A8BF150419A9999A973B954410103000000010000002E000000B81E852B81F150415C8FC26595B85441E17A148E76F150411F85EBB197B8544114AE47716DF15041713D0A779AB854419A99992965F15041A4703D4A9DB85441A4703D8A60F150411F85EB919FB85441666666465EF15041295C8FF29FB85441000000505DF15041B81E85DB9FB85441000000905AF150417B14AE87A3B85441CDCCCCAC57F15041295C8FE2A9B854419A9999D956F150410AD7A370AFB854418FC2F53857F1504133333323B2B85441C3F5289C5EF1504133333323BAB85441D7A3703D62F15041EC51B85EBFB85441B81E851B65F1504114AE47E1C4B854415C8FC20566F1504185EB5178C9B85441C3F5287C66F15041AE47E1DAD0B854413D0AD70365F150418FC2F528D8B85441AE47E10A62F15041000000E0DEB854417B14AE575DF150418FC2F5E8E5B85441AE47E18A58F15041713D0A27EBB85441EC51B8DE4DF15041AE47E15AF3B85441E17A146E5DF150419A999989F9B85441C3F5285C5EF1504185EB51E8F9B85441CDCCCC2C60F15041F6285CBFFAB854415C8FC26570F150413333334302B95441333333A372F15041D7A3701DFDB85441713D0AF772F1504100000030F9B85441E17A149E67F15041000000C0F2B85441AE47E1DA66F1504114AE4701F1B854416666666667F15041713D0A67EDB8544152B81E2569F150411F85EB41E9B85441B81E85FB6BF15041CDCCCC3CE4B8544148E17A246DF15041AE47E17AE4B8544148E17A446FF15041333333F3DFB854413D0AD70372F15041F6285C7FDAB85441B81E858B73F150413D0AD7D3D6B85441295C8F9272F15041CDCCCCBCD5B85441295C8FD272F15041C3F5281CCAB854411F85EB9171F150415C8FC2B5C4B85441C3F5280C6EF1504100000020BBB85441666666966BF15041666666E6B5B8544185EB51786EF1504185EB5138AEB854410AD7A3E070F15041A4703D9AAAB854410AD7A37075F15041666666C6A5B8544114AE47B180F15041713D0AE795B85441B81E852B81F150415C8FC26595B854410103000000010000000E000000713D0A1782F1504114AE47F128BA544148E17A5484F15041E17A145E2CBA544148E17A7486F150411F85EB112BBA5441713D0AE78EF1504114AE476135BA54413333333389F1504152B81EC524BA544152B81E1581F15041000000200DBA5441333333A373F15041AE47E1AA11BA544114AE472175F150418FC2F54815BA5441C3F5287C78F15041A4703D1A1CBA544152B81EA57AF15041E17A14DE1EBA5441295C8FE27CF150415C8FC2C520BA544114AE47117FF150413D0AD78323BA54413333332381F1504148E17AB426BA5441713D0A1782F1504114AE47F128BA54410103000000010000000A00000085EB5188C7F1504185EB516869B9544152B81ED5C2F15041CDCCCCCC6EB95441333333E3B9F150410AD7A34078B9544133333343B4F150419A9999097EB954413D0AD7E3C5F15041D7A370FD7EB95441E17A140EC6F150413D0AD7137BB95441D7A3701DCAF15041295C8FA26CB95441D7A370BDCDF150411F85EBC15FB9544148E17A44CBF15041713D0A0764B9544185EB5188C7F1504185EB516869B95441
+</a>
+
+<b>
+01060000000100000001030000000100000094000000AF97FCB097F150418A70A74A90B95441CDCCCC0C97F150410000004090B9544152B81E6596F150413D0AD7838EB95441B9788D6696F1504186E54F768EB95441C66D766296F15041C004EE6B8EB95441CD45B27096F1504168F586168EB954418FC2F5B896F15041C3F5286C8BB9544171191EC096F15041A5EBB4508BB95441821B4AC196F150417ECC203F8BB9544151B0353B97F15041966BFE6489B954419969B54897F1504127D9CD4489B954418FC2F54897F150413D0AD74389B954418FC2F5D897F15041C3F528DC87B95441BF785AE397F150419E2B09D487B95441C71551EB97F150418DDC0BC187B95441CCA71CE698F1504104DDC50987B954418FC2F55899F15041000000B086B954418FC2F5D89AF150417B14AE3786B95441CECC86EC9AF15041D9F5243986B95441EA707AEF9AF150418B34313886B95441DDD19CC99CF150418B34313886B95441EF0791029EF1504174E8596C86B954417B5E26AC9EF15041F8731E9085B95441ED5C5EAC9EF150414ABCD58F85B954419C918CEC9EF1504165263A3585B95441948D15EB9EF1504177DFBF0C85B95441110E09EA9EF15041EDD8C4EF84B95441DD2DC1E49EF15041D862DA5D84B95441C73ED2DA9EF1504187B0AFE183B954410AD7A3F09DF15041C3F5283C82B954418A1F44FE9CF15041910F95DE80B95441FEA6C5D59BF150417ED00AD17FB95441FB7868A69AF15041C656CAAB7EB9544152B81E559AF150413D0AD7637EB95441A18AF44F9AF15041722338587EB954417E0B5F3F9AF15041872830487EB95441F55545A199F15041F8EC2DCF7CB9544152B81E9599F150413D0AD7B37CB954417B608F9499F15041227CDEB07CB9544112A6438F99F150413C983DA47CB954416AD5135999F15041D479DAA27BB95441F02840FA98F15041D931A0AD79B95441DCD88B8998F15041B425232877B95441FEF7FB5A98F150417735163176B95441EC783E0998F15041DBD361F974B9544105EDBED397F150414E94886373B95441CDCCCC9C97F150410000004072B95441F65D556C97F15041364FBDB471B954418E89FB3597F150410280822071B95441D065665196F15041DA35E3996FB95441D3461CAD95F15041FF8D22816EB9544146D20FCC94F15041282F0F236DB95441B159050D93F150411762567C69B9544154E2FA4D91F1504120BA7BF367B95441A133A5A88EF15041A01E155D66B95441D9A7ABDA8BF1504101A60A9E64B954411D380CAA89F150419B76CCAA62B954410E7C52A088F15041D00329EB61B954413807DB4586F150411CC73A5C60B954415C8FC26585F1504152B81ED55FB9544152B81EB577F1504114AE477156B9544148E17A7457F150411F85EBA142B95441EC51B8DE51F150415C8FC2153FB954415C8FC2D54DF150410AD7A3C03BB95441E2AC08634DF150412DC89A193BB954414B6C065C4DF15041B50CE3133BB9544179E00C8E4AF150417E7B6E2937B95441C985568C3FF150419D97B3A223B954414D47A3A13DF1504164F2DBF01FB954417B14AE173CF150417B14AE371DB954411F8658F13BF1504138C499AF1CB95441B8B89DE53BF15041A2C1FD981CB954419F93BFC739F150415A63D00715B9544178CF038439F150417BCA5EBA0DB954413C64EFFD39F1504188693CE00BB95441A48252FF3AF150417455CB8A08B95441B54F0BA63EF15041FB69AFE203B9544168DC86BA43F1504196B4DE2000B95441D280EAB348F1504151DCB187FCB85441C89EDAB251F15041AC96EE21F7B85441E71D06734FF15041A451A00EF5B854410AD7A3804DF1504185EB5148F4B85441D89A04AC4DF15041644697FAF3B85441610D42EB4CF15041676E53B4F3B85441303A8FF14BF15041E7FC56FDF1B85441ACF3FB9C4BF15041B8825A6CF1B85441766CE3FB4AF15041E2896874F1B8544174132D934AF1504189CAEDC0F1B85441078C5EA648F15041BEED9152F3B85441DF41A26A44F150416A3C4764F6B854413A850B8642F1504113673F14F8B854415DFE604B41F15041C90285EEF8B85441CA2A34F53FF15041625891A0F9B85441093823C13EF15041CFF11726FAB85441BEA7301D3DF15041E327630CFBB85441904C07193AF150411F719D01FDB854414A74DA7F36F150411C080BC2FFB85441BFFA4D7A32F15041307523D503B95441785213B131F15041F45F312005B954417A9AE14A31F1504179008FD505B95441AE47E1BA30F1504152B81ED506B95441698CF51A30F15041F8F3146008B954415F9422C32FF15041C1E6FB3809B954411EBA89BA2FF15041630B41F309B9544118CDCC1C30F150419EAD47F110B9544156295C0F32F15041DCB71EC51AB954416C3B311333F150415B2E550820B9544195A80FF633F15041F4258AE521B954418FC2F5F83EF150410AD7A3B035B95441FA3D18D743F15041079E94703EB95441AA362E7844F15041DD569F4F3FB954418F61A1AD57F15041F28800A44BB95441F7B6D1DB5BF150419A3756494EB95441B658408C66F15041A354C40155B9544155D14A4B68F150418A66B31056B95441C8CDD3BB6BF15041A38B912E58B954415E25863072F150411C77ADD65CB954418306B02C79F15041B886255661B954413872D3F682F150411762567C69B95441350941B785F150415304382F6CB95441681C30C686F15041A2DBE2816DB954417C8948D98AF15041FE388ECC72B95441337F562D8DF1504197F9D28076B9544116F1E5CF8DF15041F1D07DD377B954410964E11D8EF1504119B592AB78B95441A18C4C668FF15041029E367A7BB95441095208AA8FF150418DE0F5527CB9544183FEDB0890F1504182399D107DB954411D88539090F15041EF4693497FB95441EF63F7B890F150411D49159081B95441EF63F7B890F15041D43E23E483B95441EF63F7B890F15041236F75F485B9544171706BAB90F1504116D097CE87B954415293C78290F1504156B931308AB95441D8E6F32390F15041FE6787D58CB95441095208AA8FF15041AC274A438EB95441E6D404158FF15041236B8B6291B954411D88539090F15041BCF402EA91B95441ED2A223691F15041C6568C2492B9544150C3394591F15041106A6F3692B954418FC2F54891F150417B14AE3792B9544136BD175191F150416CFA7F4492B95441493BA20B92F15041C2E3952193B954412E8CD96397F150419A77FF5491B9544113526F2C99F1504189C3466390B954411E245B1E99F1504191E35C6290B954418BAA3C6598F150418641B46E90B95441AF97FCB097F150418A70A74A90B95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>801939 - 261160
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+010600000006000000010300000001000000370000001F85EB118FF15041E17A14BEADB95441F6285C8F8FF1504100000080ABB9544152B81EC58FF15041713D0A67A8B954418FC2F5A891F15041EC51B84EA3B95441E17A14DE92F1504114AE47F1A1B9544148E17AB495F150418FC2F5C8A1B954410000002096F15041EC51B85E9EB954413D0AD76395F15041B81E857B9BB95441A4703DAA93F15041D7A3701D98B95441E17A140E90F1504185EB51E897B95441D7A370CD8DF150418FC2F58898B95441E17A14AE89F150413D0AD7139BB954413D0AD78385F150410AD7A3809EB95441EC51B83E82F150418FC2F508A2B954419A99993979F1504114AE47B1ACB95441666666F669F15041C3F5282CBEB95441F6285CFF68F1504166666606BFB95441333333536AF150411F85EB81BFB95441A4703D2A6BF1504148E17A74BFB95441713D0A376CF150415C8FC215C0B95441F6285C5F6DF150411F85EB81C0B95441F6285CAF6EF150410AD7A330C0B954411F85EB4171F150417B14AEB7C0B95441D7A370AD71F15041C3F528ECC2B95441E17A145E6FF1504148E17AB4C5B95441CDCCCC6C6DF1504148E17AB4C5B95441713D0A376CF150418FC2F548C5B954410AD7A3B06BF150411F85EBC1C5B95441F6285C6F68F150415C8FC2E5C6B95441EC51B81E6DF15041B81E85ABCDB95441CDCCCC8C72F1504133333303D3B954410AD7A3F07AF15041E17A142EDAB954418FC2F59883F150418FC2F5B8E4B9544148E17AB485F15041AE47E11AEAB95441713D0A7786F15041295C8FB2F0B95441AE47E19A85F15041C3F5281CF7B9544148E17A547FF150415C8FC2D500BA5441D7A370BD78F15041295C8F220EBA54418FC2F56883F150418FC2F5980ABA54413333337386F1504152B81ED507BA5441AE47E1CA89F1504114AE474100BA54419A9999798CF15041AE47E1EAF6B954417B14AE478DF15041D7A370ADF1B95441C3F5281C8DF15041F6285CDFEAB954419A99998987F1504148E17AF4DFB9544185EB517882F150411F85EBB1D7B95441AE47E14A77F15041A4703D3ACCB954419A9999A974F15041A4703DAAC7B95441A4703D3A74F15041713D0A97C2B954413333339374F150413D0AD733BEB95441D7A370DD75F150415C8FC2C5B9B95441AE47E15A78F15041295C8F02B5B95441EC51B83E7DF15041EC51B87EAFB95441EC51B8FE7DF15041A4703D2AB0B954411F85EB118FF15041E17A14BEADB9544101030000000100000023000000CDCCCCDCABF15041333333D35AB8544152B81E85A5F1504152B81EE54FB854418FC2F518A5F15041B81E854B4FB854411F85EBE18AF15041B81E854B67B85441AE47E1EA7AF15041CDCCCCBC79B854417B14AE477AF1504148E17A847AB854413D0AD7F36BF15041EC51B81E8DB85441A4703D3A5EF150410AD7A3F09EB85441A4703D3A60F150419A9999999EB854419A9999C964F15041000000609CB854415C8FC2256DF1504148E17A8499B85441AE47E12A77F15041713D0A7796B85441AE47E12A7EF1504148E17AD48CB85441EC51B86E7FF15041713D0A178BB85441D7A370BD84F150418FC2F5C883B8544114AE475190F1504114AE473175B854418FC2F53892F150413D0AD7D372B85441CDCCCCCC91F150417B14AEA771B854410AD7A35095F150417B14AEB76DB854418FC2F5F895F15041C3F5280C6BB854418FC2F50898F150417B14AE7768B85441CDCCCCEC98F150417B14AE6766B854418FC2F5189AF15041C3F528CC65B854410AD7A3A099F15041C3F5283C62B854418FC2F5B899F150417B14AED75FB854410AD7A3209BF150417B14AEE75EB854410AD7A3009DF150413D0AD7235FB854418FC2F5E89FF150413D0AD7E35FB8544152B81E15A1F15041C3F528CC5FB85441CDCCCCDCA2F150410000001061B85441CDCCCCECA4F150417B14AE175FB85441CDCCCC4CA5F150417B14AEA75FB85441C3F5281CA6F15041666666D65EB854410AD7A3D0ABF15041000000605CB85441CDCCCCDCABF15041333333D35AB8544101030000000100000041000000AE47E13A8BF150419A9999A973B9544148E17AF48DF15041B81E855B78B9544185EB513890F15041AE47E19A80B95441D7A3706D90F150410AD7A30086B954413D0AD7738FF150419A9999898CB95441295C8FA28DF15041A4703DEA91B954418FC2F5088FF150417B14AE7791B954418FC2F54891F150417B14AE3792B954410AD7A3F091F150410000004093B954410AD7A36097F150410000006091B9544152B81E3599F150413D0AD76390B95441CDCCCC0C97F150410000004090B9544152B81E6596F150413D0AD7838EB954418FC2F5B896F15041C3F5286C8BB954418FC2F54897F150413D0AD74389B954418FC2F5D897F15041C3F528DC87B954418FC2F55899F15041000000B086B954418FC2F5D89AF150417B14AE3786B95441CDCCCCFC9DF150413D0AD77386B95441CDCCCCEC9EF15041C3F5283C85B954410AD7A3E09EF15041C3F528EC83B954410AD7A3F09DF15041C3F5283C82B9544152B81EC59CF15041C3F5288C80B9544152B81E559AF150413D0AD7637EB9544152B81E9599F150413D0AD7B37CB95441CDCCCC9C97F150410000004072B95441CDCCCC3C97F15041C3F5282C71B95441CDCCCCFC94F150413D0AD7536DB954418FC2F52893F150417B14AE8769B95441C3F528EC91F15041AE47E1CA67B9544114AE470189F150411F85EB0162B954415C8FC26585F1504152B81ED55FB9544152B81EB577F1504114AE477156B9544148E17A7457F150411F85EBA142B95441EC51B8DE51F150415C8FC2153FB954415C8FC2D54DF150410AD7A3C03BB9544152B81E154BF15041EC51B8BE37B954417B14AE173CF150417B14AE371DB95441F6285C0F3AF150410AD7A30016B954410AD7A3B039F15041666666760EB954413D0AD7533BF150410000001009B9544152B81E153FF150413D0AD7B304B95441E17A142E44F15041EC51B8AE00B95441B81E852B49F15041295C8F42FDB85441CDCCCC0C53F150417B14AE57F7B854419A9999F952F150415C8FC275F6B854410AD7A3804DF1504185EB5148F4B85441EC51B8DE4DF15041AE47E15AF3B8544152B81E554BF1504152B81E95F0B85441C3F528BC36F15041F6285C5FFFB85441333333C332F150418FC2F53803B954415C8FC24532F1504185EB511804B95441AE47E1BA30F1504152B81ED506B95441295C8FB22FF150411F85EB6109B95441CDCCCC1C30F1504114AE47F110B95441F6285C0F32F1504152B81EC51AB954417B14AE2733F15041295C8F7220B954418FC2F5F83EF150410AD7A3B035B954411F85EB3144F150413D0AD7133FB95441333333D344F15041B81E85DB3FB954411F85EB6168F150419A9999D956B95441295C8FB279F15041C3F5280C62B95441EC51B8AE82F15041AE47E16A69B95441C3F5280C88F150419A9999696FB95441AE47E13A8BF150419A9999A973B954410103000000010000002E000000B81E852B81F150415C8FC26595B85441E17A148E76F150411F85EBB197B8544114AE47716DF15041713D0A779AB854419A99992965F15041A4703D4A9DB85441A4703D8A60F150411F85EB919FB85441666666465EF15041295C8FF29FB85441000000505DF15041B81E85DB9FB85441000000905AF150417B14AE87A3B85441CDCCCCAC57F15041295C8FE2A9B854419A9999D956F150410AD7A370AFB854418FC2F53857F1504133333323B2B85441C3F5289C5EF1504133333323BAB85441D7A3703D62F15041EC51B85EBFB85441B81E851B65F1504114AE47E1C4B854415C8FC20566F1504185EB5178C9B85441C3F5287C66F15041AE47E1DAD0B854413D0AD70365F150418FC2F528D8B85441AE47E10A62F15041000000E0DEB854417B14AE575DF150418FC2F5E8E5B85441AE47E18A58F15041713D0A27EBB85441EC51B8DE4DF15041AE47E15AF3B85441E17A146E5DF150419A999989F9B85441C3F5285C5EF1504185EB51E8F9B85441CDCCCC2C60F15041F6285CBFFAB854415C8FC26570F150413333334302B95441333333A372F15041D7A3701DFDB85441713D0AF772F1504100000030F9B85441E17A149E67F15041000000C0F2B85441AE47E1DA66F1504114AE4701F1B854416666666667F15041713D0A67EDB8544152B81E2569F150411F85EB41E9B85441B81E85FB6BF15041CDCCCC3CE4B8544148E17A246DF15041AE47E17AE4B8544148E17A446FF15041333333F3DFB854413D0AD70372F15041F6285C7FDAB85441B81E858B73F150413D0AD7D3D6B85441295C8F9272F15041CDCCCCBCD5B85441295C8FD272F15041C3F5281CCAB854411F85EB9171F150415C8FC2B5C4B85441C3F5280C6EF1504100000020BBB85441666666966BF15041666666E6B5B8544185EB51786EF1504185EB5138AEB854410AD7A3E070F15041A4703D9AAAB854410AD7A37075F15041666666C6A5B8544114AE47B180F15041713D0AE795B85441B81E852B81F150415C8FC26595B854410103000000010000000E000000713D0A1782F1504114AE47F128BA544148E17A5484F15041E17A145E2CBA544148E17A7486F150411F85EB112BBA5441713D0AE78EF1504114AE476135BA54413333333389F1504152B81EC524BA544152B81E1581F15041000000200DBA5441333333A373F15041AE47E1AA11BA544114AE472175F150418FC2F54815BA5441C3F5287C78F15041A4703D1A1CBA544152B81EA57AF15041E17A14DE1EBA5441295C8FE27CF150415C8FC2C520BA544114AE47117FF150413D0AD78323BA54413333332381F1504148E17AB426BA5441713D0A1782F1504114AE47F128BA54410103000000010000000A00000085EB5188C7F1504185EB516869B9544152B81ED5C2F15041CDCCCCCC6EB95441333333E3B9F150410AD7A34078B9544133333343B4F150419A9999097EB954413D0AD7E3C5F15041D7A370FD7EB95441E17A140EC6F150413D0AD7137BB95441D7A3701DCAF15041295C8FA26CB95441D7A370BDCDF150411F85EBC15FB9544148E17A44CBF15041713D0A0764B9544185EB5188C7F1504185EB516869B95441
+</a>
+
+<b>
+01060000000100000001030000000100000094000000AF97FCB097F150418A70A74A90B95441CDCCCC0C97F150410000004090B9544152B81E6596F150413D0AD7838EB95441B9788D6696F1504186E54F768EB95441C66D766296F15041C004EE6B8EB95441CD45B27096F1504168F586168EB954418FC2F5B896F15041C3F5286C8BB9544171191EC096F15041A5EBB4508BB95441821B4AC196F150417ECC203F8BB9544151B0353B97F15041966BFE6489B954419969B54897F1504127D9CD4489B954418FC2F54897F150413D0AD74389B954418FC2F5D897F15041C3F528DC87B95441BF785AE397F150419E2B09D487B95441C71551EB97F150418DDC0BC187B95441CCA71CE698F1504104DDC50987B954418FC2F55899F15041000000B086B954418FC2F5D89AF150417B14AE3786B95441CECC86EC9AF15041D9F5243986B95441EA707AEF9AF150418B34313886B95441DDD19CC99CF150418B34313886B95441EF0791029EF1504174E8596C86B954417B5E26AC9EF15041F8731E9085B95441ED5C5EAC9EF150414ABCD58F85B954419C918CEC9EF1504165263A3585B95441948D15EB9EF1504177DFBF0C85B95441110E09EA9EF15041EDD8C4EF84B95441DD2DC1E49EF15041D862DA5D84B95441C73ED2DA9EF1504187B0AFE183B954410AD7A3F09DF15041C3F5283C82B954418A1F44FE9CF15041910F95DE80B95441FEA6C5D59BF150417ED00AD17FB95441FB7868A69AF15041C656CAAB7EB9544152B81E559AF150413D0AD7637EB95441A18AF44F9AF15041722338587EB954417E0B5F3F9AF15041872830487EB95441F55545A199F15041F8EC2DCF7CB9544152B81E9599F150413D0AD7B37CB954417B608F9499F15041227CDEB07CB9544112A6438F99F150413C983DA47CB954416AD5135999F15041D479DAA27BB95441F02840FA98F15041D931A0AD79B95441DCD88B8998F15041B425232877B95441FEF7FB5A98F150417735163176B95441EC783E0998F15041DBD361F974B9544105EDBED397F150414E94886373B95441CDCCCC9C97F150410000004072B95441F65D556C97F15041364FBDB471B954418E89FB3597F150410280822071B95441D065665196F15041DA35E3996FB95441D3461CAD95F15041FF8D22816EB9544146D20FCC94F15041282F0F236DB95441B159050D93F150411762567C69B9544154E2FA4D91F1504120BA7BF367B95441A133A5A88EF15041A01E155D66B95441D9A7ABDA8BF1504101A60A9E64B954411D380CAA89F150419B76CCAA62B954410E7C52A088F15041D00329EB61B954413807DB4586F150411CC73A5C60B954415C8FC26585F1504152B81ED55FB9544152B81EB577F1504114AE477156B9544148E17A7457F150411F85EBA142B95441EC51B8DE51F150415C8FC2153FB954415C8FC2D54DF150410AD7A3C03BB95441E2AC08634DF150412DC89A193BB954414B6C065C4DF15041B50CE3133BB9544179E00C8E4AF150417E7B6E2937B95441C985568C3FF150419D97B3A223B954414D47A3A13DF1504164F2DBF01FB954417B14AE173CF150417B14AE371DB954411F8658F13BF1504138C499AF1CB95441B8B89DE53BF15041A2C1FD981CB954419F93BFC739F150415A63D00715B9544178CF038439F150417BCA5EBA0DB954413C64EFFD39F1504188693CE00BB95441A48252FF3AF150417455CB8A08B95441B54F0BA63EF15041FB69AFE203B9544168DC86BA43F1504196B4DE2000B95441D280EAB348F1504151DCB187FCB85441C89EDAB251F15041AC96EE21F7B85441E71D06734FF15041A451A00EF5B854410AD7A3804DF1504185EB5148F4B85441D89A04AC4DF15041644697FAF3B85441610D42EB4CF15041676E53B4F3B85441303A8FF14BF15041E7FC56FDF1B85441ACF3FB9C4BF15041B8825A6CF1B85441766CE3FB4AF15041E2896874F1B8544174132D934AF1504189CAEDC0F1B85441078C5EA648F15041BEED9152F3B85441DF41A26A44F150416A3C4764F6B854413A850B8642F1504113673F14F8B854415DFE604B41F15041C90285EEF8B85441CA2A34F53FF15041625891A0F9B85441093823C13EF15041CFF11726FAB85441BEA7301D3DF15041E327630CFBB85441904C07193AF150411F719D01FDB854414A74DA7F36F150411C080BC2FFB85441BFFA4D7A32F15041307523D503B95441785213B131F15041F45F312005B954417A9AE14A31F1504179008FD505B95441AE47E1BA30F1504152B81ED506B95441698CF51A30F15041F8F3146008B954415F9422C32FF15041C1E6FB3809B954411EBA89BA2FF15041630B41F309B9544118CDCC1C30F150419EAD47F110B9544156295C0F32F15041DCB71EC51AB954416C3B311333F150415B2E550820B9544195A80FF633F15041F4258AE521B954418FC2F5F83EF150410AD7A3B035B95441FA3D18D743F15041079E94703EB95441AA362E7844F15041DD569F4F3FB954418F61A1AD57F15041F28800A44BB95441F7B6D1DB5BF150419A3756494EB95441B658408C66F15041A354C40155B9544155D14A4B68F150418A66B31056B95441C8CDD3BB6BF15041A38B912E58B954415E25863072F150411C77ADD65CB954418306B02C79F15041B886255661B954413872D3F682F150411762567C69B95441350941B785F150415304382F6CB95441681C30C686F15041A2DBE2816DB954417C8948D98AF15041FE388ECC72B95441337F562D8DF1504197F9D28076B9544116F1E5CF8DF15041F1D07DD377B954410964E11D8EF1504119B592AB78B95441A18C4C668FF15041029E367A7BB95441095208AA8FF150418DE0F5527CB9544183FEDB0890F1504182399D107DB954411D88539090F15041EF4693497FB95441EF63F7B890F150411D49159081B95441EF63F7B890F15041D43E23E483B95441EF63F7B890F15041236F75F485B9544171706BAB90F1504116D097CE87B954415293C78290F1504156B931308AB95441D8E6F32390F15041FE6787D58CB95441095208AA8FF15041AC274A438EB95441E6D404158FF15041236B8B6291B954411D88539090F15041BCF402EA91B95441ED2A223691F15041C6568C2492B9544150C3394591F15041106A6F3692B954418FC2F54891F150417B14AE3792B9544136BD175191F150416CFA7F4492B95441493BA20B92F15041C2E3952193B954412E8CD96397F150419A77FF5491B9544113526F2C99F1504189C3466390B954411E245B1E99F1504191E35C6290B954418BAA3C6598F150418641B46E90B95441AF97FCB097F150418A70A74A90B95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>966094 - 2025063
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -12 </desc>
+<a>
+010600000001000000010300000001000000080000009CF43774FF0951412374234411E95441BF77617BFF095141190A467611E9544188E1D28E040A51410F26D5D00FE95441B63AEC27040A5141850B95540EE954417AE0F580030A51410B25BEB20CE95441F07D6BC4010A5141D66A6B2F05E9544100000010010A5141A4703D5A01E954419CF43774FF0951412374234411E95441
+</a>
+
+<b>
+0106000000010000000103000000010000001300000000000010010A5141A4703D5A01E9544152B81ED5010A5141A4703D8A05E95441EC51B86E020A5141295C8F8208E95441D7A370FD020A51419A9999690BE95441A4703DEA040A5141AE47E13A10E95441C3F528AC040A5141F6285C9F0FE95441295C8FE2080A514114AE477110E954419A999969080A5141666666260AE95441AE47E19A070A5141D7A3708D05E954419A9999E9060A514152B81E5501E95441E17A148E060A51413D0AD733FEE85441A4703D0A060A51413D0AD703FAE85441D7A3708D050A514152B81E85F6E854417B14AE17050A51417B14AE07F4E85441A4703DDA020A5141F6285C6FFBE8544100000000020A5141CDCCCC6CFDE8544185EB5188010A51413D0AD733FEE85441A4703DDA000A514133333373FEE8544100000010010A5141A4703D5A01E95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>966094 - 4569934
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -12 </desc>
+<a>
+010600000001000000010300000001000000080000009CF43774FF0951412374234411E95441BF77617BFF095141190A467611E9544188E1D28E040A51410F26D5D00FE95441B63AEC27040A5141850B95540EE954417AE0F580030A51410B25BEB20CE95441F07D6BC4010A5141D66A6B2F05E9544100000010010A5141A4703D5A01E954419CF43774FF0951412374234411E95441
+</a>
+
+<b>
+0106000000010000000103000000010000001300000000000010010A5141A4703D5A01E9544152B81ED5010A5141A4703D8A05E95441EC51B86E020A5141295C8F8208E95441D7A370FD020A51419A9999690BE95441A4703DEA040A5141AE47E13A10E95441C3F528AC040A5141F6285C9F0FE95441295C8FE2080A514114AE477110E954419A999969080A5141666666260AE95441AE47E19A070A5141D7A3708D05E954419A9999E9060A514152B81E5501E95441E17A148E060A51413D0AD733FEE85441A4703D0A060A51413D0AD703FAE85441D7A3708D050A514152B81E85F6E854417B14AE17050A51417B14AE07F4E85441A4703DDA020A5141F6285C6FFBE8544100000000020A5141CDCCCC6CFDE8544185EB5188010A51413D0AD733FEE85441A4703DDA000A514133333373FEE8544100000010010A5141A4703D5A01E95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984733 - 5179648
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 23 </desc>
+<a>
+01060000000C0000000103000000010000002F00000019528B31D3915041DF4183ECE82A55410D36734CD29150414032FE2AE92A5541E57DDC40DC915041E5B293D6F12A5541F9D9A746D7915041C59DBF35F52A5541479A729CDB91504169654C46FC2A55411B70CA5AE2915041022DD956032B55416AE99D4BE89150413766BED5072B5541AE9A2B64E191504129EE153C132B55418BC6B7C4F1915041DDAE99591D2B5541A6BFAED1F4915041926F1D77272B5541ABEAC8A2F9915041823E6C42312B55412A726741FF915041096336E83E2B55415FAB4CC003925041AC390036512B5541658A7B8C04925041867E3F43572B554154D8F55609925041CD57AC7E562B554193718A860A9250415AC9DA825B2B5541A428A13A1E9250416AF99E625A2B55411E44FC9429925041D06392E17B2B5541EFB7AADD2C925041700F3ADB832B5541FB52E439419250412B41F1ACB22B5541D5D67E2244925041E0245356B92B55413D31860166925041F55C0D06B82B55415CA1FA6063925041FD7CE545B72B5541FCD9360E5692504158C9477CAF2B554146E2EDDC4F9250419BB1260BAA2B55418ADEB3F349925041ECC5CE91A32B5541D8EE6092439250415552E1479A2B554111B36CF93E925041C5D6FD2D912B554183279D3F36925041E8B32E017A2B5541F8C7967D2C9250412621AC735F2B5541153410F52992504187513152582B55412D84AC14289250419189EB01572B55419C6D8F9E0A925041773554FA582B55417264CCCE0A92504112A8599B512B5541B13E16BB1F925041EA4E2489512B554173111DBF24925041E27A2FA6502B55413129FCA625925041F6EA067C502B5541C060F39C26925041626E739B4E2B5541F52E20912492504139F6641D492B554134285CC01E925041C0622A683C2B554146CDB8E719925041D8ACE3B6322B5541C3020AD00E9250416D01DFB2212B5541D79B01D00792504150B4DF6F182B5541965CA622FA9150410EACF824092B55417EC0682EEE9150418E9E7083FD2A5541AD97B455DB915041E4243F8BEE2A554119528B31D3915041DF4183ECE82A55410103000000040000004900000098E15E68A793504158EA53119E2A5541AEC0ED5691935041FB059A738A2A554141CCCE5A8A935041F1332A6D822A554162205D99859350418F97E209712A554198F2C6AA83935041E1D4A256662A55413165BB84839350415ACD04B85D2A554126E7DFB1809350412E292BA0572A55413728EF4D7A935041A7218D014F2A5541733B68FB719350415057B5A4452A5541175AC8A16C9350419C7DADF43E2A554173E7D3C76C935041E9A3A544382A55412C840F416A935041C92913CC2F2A55415AB6DCAA489350414B487967342A554187E8A91427935041409C0D9B392A5541C329B3BB16935041EF384914372A5541C9BE568B15935041E33406AF462A554188F035D41193504119854B93472A554153ACBF14EC925041A2E4C0CA452A5541AB2A8FFDDA92504187536655412A554100000060CB925041B81E85EB462A55414ABCD793C192504114F0A7C3482A55417632BCCBC09250411E60561D4A2A5541FA0D3007C2925041E3DC0B1F502A55413344E1A6C7925041D827E306532A55418D156B16D09250412751ADDE562A5541F3BA152ED6925041AE9130C65F2A5541590880DDE0925041FD62BA35682A5541431567A5E29250416141AD25692A5541EA556C45E29250413510A4CD692A55414EE9874DE0925041DC31B1DD682A55415860C045DC9250411337DBDD652A5541BB4B1CB6D5925041989E178E612A5541E7F35D06D1925041AD0869BE5B2A5541AEBDAC66CB9250415382B636562A5541116B18B7C3925041D827E306532A554155DFB976CA925041C52C0996622A554140B35866D1925041F4FD104D742A5541403C206ED59250410DCA70BC7F2A554120490736D7925041CBF02514852A5541BCD4E3BDD992504124CF1804862A55412BF1C6CDDB925041501F1AEC852A55414DAB972DDF92504124B02074852A5541A7314AB5E4925041B47445D4822A554192E6F014EB925041E05A77447F2A5541D7798A64F292504165E1AB847B2A5541C35FB86301935041D3CC07F5742A5541CE7EB0F3019350410B5BF9FC752A554167C776CCF39250411760A1447C2A55419E24E134EC92504192D96C04802A5541855881C5E09250417D6F1BD4852A5541BC5DABC5DD925041D64D0EC4862A5541FE17FEDDD79250415C5D0A0C872A55419BC2D2F5DA925041A0F0A35B8E2A5541376DA70DDE925041A1796B63922A55417A398935E0925041268967AB922A55418600415DE5925041CDC96C4B922A5541B417FA6CEA9250411B6A6F1B922A5541AAEB985CF1925041A1796B63922A5541E51989C3049350418086522B942A5541785FB4F21393504196E33ADB952A5541BD5C1DBA1E93504127312743972A554152F2C71837935041CF38E40A9C2A5541FD1DA3FF4B935041AE90A2BAA02A554162E245A752935041138E8D3AA22A55416FC8F55E58935041FDB96C92A42A554122597A2E6193504140A5464AA72A5541E1DC173668935041A583393AA82A5541522A82E5729350411F933582A82A5541B896E4247E93504178333852A82A5541BAC76BC486935041BB954A02A72A5541DC0A042C8E93504183C968DAA42A55412D844D339B93504155D1A75AA02A554198E15E68A793504158EA53119E2A55410B00000088F82637E8925041BA473A69652A554151E88AE83E935041FB14B45F602A5541658DDBA554935041C14A0DB3612A5541127816A16E9350417793CA3A622A554188C418EC809350410B02502B612A55413D0DD6738193504115EC18AD652A5541127816A16E9350413CB3EC0F682A5541A69FCD603E9350417090F7F0652A5541FFA12E3125935041916A2F88672A55410D610694EE92504124C37DFA6A2A554188F82637E8925041BA473A69652A5541050000005BA3122450935041781F1130802A5541A55A559C4F935041FDB631D3792A554111A757E761935041C3EC8A267B2A5541C6EF146F629350414F42064F822A55415BA3122450935041781F1130802A554105000000AAA31D88F6925041ED9A54C1852A554178DC4925F4925041880CADFB802A5541F52B1FBA02935041FDB631D3792A554171AA359504935041673275647F2A5541AAA31D88F6925041ED9A54C1852A554101030000000100000022000000073D5DC9A7925041742690ED6F2A5541C8E84459A39250417D8B18E0762A5541F4F9ECC39D9250418F9185847D2A55415322AA3D999250412569C80A822A5541B748988092925041684DFD33882A5541B077DAF8889250415177718A912A554111D5468F819250419FCB7191982A5541BD7E775178925041B09C2F19A22A554197729D086B925041326768A2B02A5541431CCECA61925041EAB21474BA2A5541FCCD3A6861925041E37B9620BB2A55416EA574C461925041921127D1BB2A5541D3A25F446392504165C125E9BB2A5541B2FA1DF467925041DF733981BA2A55413B8B200B7A9250417ACE8E69B42A55413495EEE18F92504184DBF7E9AC2A5541A8DA9758A8925041AF196AC2A42A554110C3581FBF9250418CB7D9CA9C2A5541F0E1CEF6C89250416AFD086B992A5541D0777DC6CE9250415362309B962A5541A4B043E6D2925041D8E864DB922A554199FB1ACED59250411AA3B7F38C2A5541C66A1446D692504194EBFB13882A5541F3BA152ED69250417D6F1BD4852A5541E7125696D19250414E27DB24782A55417610C3CEC992504107DAF22D642A5541C3E90D77C49250413DAE958E582A554175FE33BFC1925041C1F6D9AE532A55411B2041CFC092504173EC0767502A554102F50567BE925041CD99C83F4E2A55419C717552BE92504150EE4E634E2A55415D295396AE92504102F03282652A5541C88CE056AC9250416837E3AE692A5541073D5DC9A7925041742690ED6F2A55410103000000020000002C00000006D1016DBD91504149650CF6962A5541F8D66E72C6915041F4F714309A2A554155C5D0AED4915041CB044DEB9F2A554142E6EDAEDF91504193F5E12BA42A55419746FE2DED915041AA09C770A92A55416FD10B3BFB9150413A8100E5AE2A5541AA4612AB0A925041D3BFE2B7B42A5541532A99AD0F9250416A4B9DCBB62A5541C9BF221A21925041A32FD2F4BC2A55415B5E1816249250415CE13E92BC2A554107A6267A2992504193C1D54DBE2A5541515B192B39925041F7B6B2E1BE2A5541622CD7B242925041D90F69B0BE2A5541B54DF7D34E9250412FCCF8B9BD2A554154BF798E5D925041477173B4BB2A5541B67FA70561925041B79BFF64B92A5541EA93BD2977925041E9B175F1A02A5541976F9E1D80925041647DDE2E982A5541BAB2F6B98C92504154E1CFC38B2A5541EF2CCDA998925041AC032099802A5541B4AD28989F92504117618C2F792A55416603C09BA5925041C8B41388702A5541230C4BABA3925041D0F0A411712A55419F59923B999250418ACD05C3742A5541B4A620048992504122DC89387A2A5541DADD689C70925041F86AEA91822A5541CDCCCCFC629250419A9999C9872A554148E17A243E92504152B81EA58D2A55417DA04950329250412941FB178F2A5541A711E9F62992504179AB91CB892A554142BDB0731892504168C9C41DA72A55419D3A66E111925041CF89D69BA42A55410001C89A07925041B490DF8EA12A5541609C0F83F891504167D014399D2A55419F2283CAEC9150417CE5E8D9992A5541634C7244E0915041E68F6DFF952A55410FEF7BE7D3915041FAEB3805912A5541F4E6479DC5915041F6C01E348C2A554127AE1BE6C6915041556BA359882A5541BAC93FB2BA915041D85516F1852A5541F7CE6486A0915041A4D5390D832A5541A85591959A9150413972AC4C852A554122F90CC899915041C2404250892A554106D1016DBD91504149650CF6962A5541050000007288382E039250417B571403AB2A55417FA83005F4915041495825AFA72A5541886FD963F4915041AD1185A6A52A5541F7EB8C5D03925041DE1074FAA82A55417288382E039250417B571403AB2A55410103000000010000000A00000085EB51380F9250418FC2F558BF2A5541790861320F925041C609FC0BB82A55415AEA6A050A925041EDDB8532B62A5541B35E4C4CFF9150412FEBF0F1B12A5541350B7488F79150413A8100E5AE2A5541E065E558E191504177D1807BA62A5541330FC9E4E691504136FB6C5DAA2A5541C7BB049EFC915041713FDA61B62A5541A07F694C0A925041A0360B80BD2A554185EB51380F9250418FC2F558BF2A55410103000000010000000400000085EB51380F9250418FC2F558BF2A5541F561A4790F9250418312AACFBF2A5541C558C3CB11925041299918D4C22A554185EB51380F9250418FC2F558BF2A55410103000000020000004A000000E76D51181C925041A6D82E0C192B55415819938715925041900BF733052B5541B986BCFA0C92504157182CD0E82A55411EDBF4120A925041C0B6D717E12A5541AA24B8510B9250413D9E96ADE02A554121363B7B0C9250410ABADEBFE32A5541C49E4D741392504115879C28FB2A55417A38E2411B92504170FC1AD1122B5541FEB4B2271D9250419970BD52182B55412CB5FFAD21925041CA053C3B152B554147F2EAA527925041B6CA1F7A112B5541EECBFC622E925041540AF2020E2B5541DA5FCFF2319250419C8D34820B2B5541E0619E293492504101B8C032092B554198DE5BAA369250411524EEA2052B5541FF6BA93B3F925041282D5A32F72A55417065243D44925041C19F0CA1EE2A5541E2934E5B46925041794DDBD0E92A5541C2B7550D49925041B4CC7FE2E22A55414A564B094C925041DADB5816DB2A55415F9167CA4F925041D643E818D32A5541CC2084925A92504153751122C02A5541ABB0B8B4599250414D7342EBBD2A5541893C4F6954925041B1681F7FBE2A5541E2934E5B46925041EF7F348EBF2A5541E3F90E273C92504135CEC7F0BF2A5541FC044AED2F925041A1FA22D8BF2A5541A27B9AC92B9250418353D9A6BF2A5541769B030E2A925041CDDAB993C12A55411BE1423B2D92504103BB504FC32A5541EECBFC622E925041C5A33B40C22A55410A3E977731925041CBA50A77C42A55415B2D07672B9250413A6AD65BCC2A5541211423212892504134680725CA2A55417C9DD2442C9250417D20F9C0C42A55416862B68328925041A7FCF10EC22A55416395966923925041711C5B53C02A554101D568F21F9250413DD43495C62A5541D5C3C08725925041262FBA9AC82A554153279AC22492504108575FBACF2A55413C540D041992504131FEA8EBCF2A5541A8B1799A11925041406CA592CE2A5541C558C3CB11925041299918D4C22A5541CEF8C4180992504174F60655BE2A55416CC94D05FF915041E245763FB92A5541BF2DB3E0FB915041C929D3C4B72A55414799C545F89150416AB188A4B52A5541640EB838EA915041292C06C9AD2A5541BFBBF020DF91504142CAD3F1A62A55414A2FC1BBD7915041FE3C93E0A22A55415D0EA4BBCC9150417F1A54889E2A5541C8DC6BC9BC9150414EDCA29E982A5541E1C8CD22AF915041467DEF0CBC2A5541CBB3F981B2915041B0EFB90AC52A5541E5F3E7F3B3915041CBE8B017C82A554163C27DF7B79150414AB7461BCC2A5541A4B46B11BE9150417FF02B9AD02A55415DA00900CD915041252ACAE0DA2A5541B209D5C3D0915041F3082A28DC2A55418ECA6C01D5915041F6027BD4DC2A55418D60C64DD891504173126BF9DD2A55414D403ED5DE915041110A9FCFE12A55414F6093C6E6915041F0C487B9E62A55414D096FB5ED915041A12D863EEC2A5541A9D347C4F3915041214A49B2F12A55419C7C23B3FA9150410F7CAB9EF72A554108BE75C401925041CEDEFACFFD2A5541471784240692504160590650012B554118D81B620A9250414014EF39062B5541D727E9F00C9250419FC59652092B5541940D10CC129250410F7E6266112B55413E8270A419925041EFC2FDFF1A2B55413A1F5EE71B925041FCE7A12D192B5541E76D51181C925041A6D82E0C192B554106000000847A003CF69150418E5EE866E72A554133D23FFCF5915041125F9857E12A5541A2676D4007925041A5D9DD6AE32A55413556EA16069250410EA1ED64E92A55416C9CA6AD04925041EF68AD4FE92A5541847A003CF69150418E5EE866E72A5541010300000002000000110000008A0D10CC129250411A5A15E9232B5541EFEAB0C81B925041B3CC03B0322B55411F4756BD279250415659A3F54C2B5541F3DA349129925041CEA64423522B554110F978D72C92504109B296A6542B5541EEE26656359250413E06EB94542B55416AA7A4733592504192359386522B5541B3E246B333925041CEC9A8254E2B55415A8396E6329250411F7CCF2A4C2B55419DC4354D3192504122C34B15492B5541D9584BEC2C925041B5CD85903F2B55413D76FC682A9250419B7372013A2B5541DD269AC2249250412C6BB4F82D2B55419BAADC4122925041F0E004D5292B5541A6E6FCC01992504179F9C8D31D2B5541250BF3F515925041AB31F4CD1F2B55418A0D10CC129250411A5A15E9232B55410900000059C1ADF8199250415042E1DE1F2B55412C7DE83E239250417D525230302B5541B93A3A862A9250419446B1283E2B5541148F709131925041272959F24E2B554169FDD0D02B925041D6EBEF3C502B5541DC3F7F8924925041C7AFCC643E2B5541BE5464BA1D9250416205494D322B554142E41B561492504124A8CE18242B554159C1ADF8199250415042E1DE1F2B55410103000000010000000D00000022CD92764392504159E8F9D1532B55413F2C23A0429250414C416D31512B554105F6FDFA3D925041CB1622374B2B554168BE18832F925041B6617B8C392B5541EA4654772C925041D70788A0352B55415CAB81DE269250411BDD1C032E2B5541ED57CB5F2692504103788FB22E2B5541E299CAAF29925041D48A06B4352B554155538E0B30925041F87A2FFB432B554172E82337329250412DB751C7482B55412C6008E6369250418C3B90AD522B5541E32466A638925041467D6F5A542B554122CD92764392504159E8F9D1532B5541010300000001000000160000002480196546925041E0A03DA1532B554116A283414892504127C3AF47532B55413AB9D77F6E925041292FA603512B55416E8D23606C9250419D03780F512B5541F2F1A44C6C925041C61491B04F2B5541D5D36006699250410113B88E4D2B5541DC583B136492504176D80824492B5541B28E9BD0579250418187B5B23F2B554187C4FB8D4B925041109BE32D362B55411A775A6046925041856034C3312B55410970F6D83D9250413EEDAE0F2B2B554136CFEC5F37925041C9D60A09262B55414854C76C329250413B415313222B5541EAC961FA309250415C8969DB202B55418C33C4E92F9250417A6D7AE9202B55417A58813B27925041D8F49C132B2B5541C27BB94927925041D5E8F6AD2C2B5541BE6A42612D92504170375035352B5541EEAC615432925041E66D957D3B2B554151781C2539925041FAF7B0E7432B5541F28A73833E925041E1FE2D9B4A2B55412480196546925041E0A03DA1532B55410103000000010000001B00000006A564D07D925041B8B98825502B554106A564D07D925041D9019FED4E2B5541A5BFF6D27C925041F4B7AF034E2B5541D82E699168925041A761D12C3E2B5541AFE23FD44E92504167FEC7B0292B554169628F7B439250415EC06602212B5541CF64A4553B92504112BBDB9C1A2B55411B19DC4938925041534B082D182B55412A3D4FD536925041E1D5ECED172B554198DE5BAA3692504152A43137182B5541CC6B7E453192504146474F2C1F2B5541D45D5F433192504178BD0B2F1F2B5541C1B8485932925041E8B6EDA0202B5541C79BA17C3B9250412761707B272B55419705AECE41925041181393952C2B5541259B65C445925041BBCC55EF2F2B5541E8A9698B4C925041AC7E7809352B554138D9C6724E925041761257DD362B5541DC9289CC5192504135822A4D392B55417C154FFF54925041EB28FBE33B2B554133BC1F96579250412BC652193E2B554114B8319A5D925041AE37FFAA422B5541D39C63DF68925041B9AC5D804B2B5541D73B94366D925041D1389C144F2B5541B22DC5CF6F925041B42EBFEF502B5541F5F2FBAB72925041ECB75DC4502B554106A564D07D925041B8B98825502B55410103000000020000001400000069BE6F5BD59150415B75DF8BE82A554183F755C3E8915041452D4DAEF62A55416907F7F3FB91504161A90F0B082B5541C613E6E00A925041FE52562D192B5541AA65A9841192504198D3ABC1212B55412DEF857A1892504143C9E4061C2B5541D85E30701892504167DF4DF81B2B5541862641C215925041FEAFC452172B554107F7FBAB0C9250417F6DFD990A2B5541CA0794FF049250416DD62EA6012B5541EB26A7D0F89150410F7CAB9EF72A55412F08FA0DE891504140FFB5CFE82A5541CBCC5650E0915041F4AB56C3E32A5541F17565C6D8915041F19E8374DF2A5541FF5C34D0D59150414343583EDE2A5541E2D8E77ED09150410280A32ADD2A5541FEAF82FACD915041C2ACC65ADC2A554105CF147CD491504100FD821EE62A5541DF99B9D4D5915041DD5C5F34E82A554169BE6F5BD59150415B75DF8BE82A55410E0000006078829CD591504142695C83E52A55418EDDEEA3D8915041355C8934E12A55416B67B7C1EB915041904C6688EE2A55418B9B03FDFC915041614684ADFD2A5541E9E20462039250411FA9D3DE032B554129CCBDBA0B9250413AC3797C0C2B554169B5761314925041CBE660EB162B5541959DBAC4169250410BBD97A11B2B554125F87053129250413B9F2CFF1E2B5541F87F82A90B9250411B0E0D5F152B554197182C53FD915041FF503A26052B55416B67B7C1EB9150415E262FBCF52A55411FEE5370DF91504140123872EC2A55416078829CD591504142695C83E52A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001000000024BAF19209925041578C697C572B554193718A860A9250415AC9DA825B2B5541A428A13A1E9250416AF99E625A2B5541303188DE279250416EFDF3D3762B554162329CE533925041B8A2099B732B5541153410F52992504187513152582B55412D84AC14289250419189EB01572B55416F4C480E1E925041102DEDB6572B554191E9F40C1E9250410079A5AD572B55419C6D8F9E0A925041773554FA582B5541ABFC0AAA0A925041009A2639572B5541C95F58BB0A9250418FEA5194542B5541097B635A04925041A87028C7552B5541658A7B8C04925041867E3F43572B554154D8F55609925041CD57AC7E562B554124BAF19209925041578C697C572B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984733 - 5300258
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 23 </desc>
+<a>
+01060000000C0000000103000000010000002F00000019528B31D3915041DF4183ECE82A55410D36734CD29150414032FE2AE92A5541E57DDC40DC915041E5B293D6F12A5541F9D9A746D7915041C59DBF35F52A5541479A729CDB91504169654C46FC2A55411B70CA5AE2915041022DD956032B55416AE99D4BE89150413766BED5072B5541AE9A2B64E191504129EE153C132B55418BC6B7C4F1915041DDAE99591D2B5541A6BFAED1F4915041926F1D77272B5541ABEAC8A2F9915041823E6C42312B55412A726741FF915041096336E83E2B55415FAB4CC003925041AC390036512B5541658A7B8C04925041867E3F43572B554154D8F55609925041CD57AC7E562B554193718A860A9250415AC9DA825B2B5541A428A13A1E9250416AF99E625A2B55411E44FC9429925041D06392E17B2B5541EFB7AADD2C925041700F3ADB832B5541FB52E439419250412B41F1ACB22B5541D5D67E2244925041E0245356B92B55413D31860166925041F55C0D06B82B55415CA1FA6063925041FD7CE545B72B5541FCD9360E5692504158C9477CAF2B554146E2EDDC4F9250419BB1260BAA2B55418ADEB3F349925041ECC5CE91A32B5541D8EE6092439250415552E1479A2B554111B36CF93E925041C5D6FD2D912B554183279D3F36925041E8B32E017A2B5541F8C7967D2C9250412621AC735F2B5541153410F52992504187513152582B55412D84AC14289250419189EB01572B55419C6D8F9E0A925041773554FA582B55417264CCCE0A92504112A8599B512B5541B13E16BB1F925041EA4E2489512B554173111DBF24925041E27A2FA6502B55413129FCA625925041F6EA067C502B5541C060F39C26925041626E739B4E2B5541F52E20912492504139F6641D492B554134285CC01E925041C0622A683C2B554146CDB8E719925041D8ACE3B6322B5541C3020AD00E9250416D01DFB2212B5541D79B01D00792504150B4DF6F182B5541965CA622FA9150410EACF824092B55417EC0682EEE9150418E9E7083FD2A5541AD97B455DB915041E4243F8BEE2A554119528B31D3915041DF4183ECE82A55410103000000040000004900000098E15E68A793504158EA53119E2A5541AEC0ED5691935041FB059A738A2A554141CCCE5A8A935041F1332A6D822A554162205D99859350418F97E209712A554198F2C6AA83935041E1D4A256662A55413165BB84839350415ACD04B85D2A554126E7DFB1809350412E292BA0572A55413728EF4D7A935041A7218D014F2A5541733B68FB719350415057B5A4452A5541175AC8A16C9350419C7DADF43E2A554173E7D3C76C935041E9A3A544382A55412C840F416A935041C92913CC2F2A55415AB6DCAA489350414B487967342A554187E8A91427935041409C0D9B392A5541C329B3BB16935041EF384914372A5541C9BE568B15935041E33406AF462A554188F035D41193504119854B93472A554153ACBF14EC925041A2E4C0CA452A5541AB2A8FFDDA92504187536655412A554100000060CB925041B81E85EB462A55414ABCD793C192504114F0A7C3482A55417632BCCBC09250411E60561D4A2A5541FA0D3007C2925041E3DC0B1F502A55413344E1A6C7925041D827E306532A55418D156B16D09250412751ADDE562A5541F3BA152ED6925041AE9130C65F2A5541590880DDE0925041FD62BA35682A5541431567A5E29250416141AD25692A5541EA556C45E29250413510A4CD692A55414EE9874DE0925041DC31B1DD682A55415860C045DC9250411337DBDD652A5541BB4B1CB6D5925041989E178E612A5541E7F35D06D1925041AD0869BE5B2A5541AEBDAC66CB9250415382B636562A5541116B18B7C3925041D827E306532A554155DFB976CA925041C52C0996622A554140B35866D1925041F4FD104D742A5541403C206ED59250410DCA70BC7F2A554120490736D7925041CBF02514852A5541BCD4E3BDD992504124CF1804862A55412BF1C6CDDB925041501F1AEC852A55414DAB972DDF92504124B02074852A5541A7314AB5E4925041B47445D4822A554192E6F014EB925041E05A77447F2A5541D7798A64F292504165E1AB847B2A5541C35FB86301935041D3CC07F5742A5541CE7EB0F3019350410B5BF9FC752A554167C776CCF39250411760A1447C2A55419E24E134EC92504192D96C04802A5541855881C5E09250417D6F1BD4852A5541BC5DABC5DD925041D64D0EC4862A5541FE17FEDDD79250415C5D0A0C872A55419BC2D2F5DA925041A0F0A35B8E2A5541376DA70DDE925041A1796B63922A55417A398935E0925041268967AB922A55418600415DE5925041CDC96C4B922A5541B417FA6CEA9250411B6A6F1B922A5541AAEB985CF1925041A1796B63922A5541E51989C3049350418086522B942A5541785FB4F21393504196E33ADB952A5541BD5C1DBA1E93504127312743972A554152F2C71837935041CF38E40A9C2A5541FD1DA3FF4B935041AE90A2BAA02A554162E245A752935041138E8D3AA22A55416FC8F55E58935041FDB96C92A42A554122597A2E6193504140A5464AA72A5541E1DC173668935041A583393AA82A5541522A82E5729350411F933582A82A5541B896E4247E93504178333852A82A5541BAC76BC486935041BB954A02A72A5541DC0A042C8E93504183C968DAA42A55412D844D339B93504155D1A75AA02A554198E15E68A793504158EA53119E2A55410B00000088F82637E8925041BA473A69652A554151E88AE83E935041FB14B45F602A5541658DDBA554935041C14A0DB3612A5541127816A16E9350417793CA3A622A554188C418EC809350410B02502B612A55413D0DD6738193504115EC18AD652A5541127816A16E9350413CB3EC0F682A5541A69FCD603E9350417090F7F0652A5541FFA12E3125935041916A2F88672A55410D610694EE92504124C37DFA6A2A554188F82637E8925041BA473A69652A5541050000005BA3122450935041781F1130802A5541A55A559C4F935041FDB631D3792A554111A757E761935041C3EC8A267B2A5541C6EF146F629350414F42064F822A55415BA3122450935041781F1130802A554105000000AAA31D88F6925041ED9A54C1852A554178DC4925F4925041880CADFB802A5541F52B1FBA02935041FDB631D3792A554171AA359504935041673275647F2A5541AAA31D88F6925041ED9A54C1852A554101030000000100000022000000073D5DC9A7925041742690ED6F2A5541C8E84459A39250417D8B18E0762A5541F4F9ECC39D9250418F9185847D2A55415322AA3D999250412569C80A822A5541B748988092925041684DFD33882A5541B077DAF8889250415177718A912A554111D5468F819250419FCB7191982A5541BD7E775178925041B09C2F19A22A554197729D086B925041326768A2B02A5541431CCECA61925041EAB21474BA2A5541FCCD3A6861925041E37B9620BB2A55416EA574C461925041921127D1BB2A5541D3A25F446392504165C125E9BB2A5541B2FA1DF467925041DF733981BA2A55413B8B200B7A9250417ACE8E69B42A55413495EEE18F92504184DBF7E9AC2A5541A8DA9758A8925041AF196AC2A42A554110C3581FBF9250418CB7D9CA9C2A5541F0E1CEF6C89250416AFD086B992A5541D0777DC6CE9250415362309B962A5541A4B043E6D2925041D8E864DB922A554199FB1ACED59250411AA3B7F38C2A5541C66A1446D692504194EBFB13882A5541F3BA152ED69250417D6F1BD4852A5541E7125696D19250414E27DB24782A55417610C3CEC992504107DAF22D642A5541C3E90D77C49250413DAE958E582A554175FE33BFC1925041C1F6D9AE532A55411B2041CFC092504173EC0767502A554102F50567BE925041CD99C83F4E2A55419C717552BE92504150EE4E634E2A55415D295396AE92504102F03282652A5541C88CE056AC9250416837E3AE692A5541073D5DC9A7925041742690ED6F2A55410103000000020000002C00000006D1016DBD91504149650CF6962A5541F8D66E72C6915041F4F714309A2A554155C5D0AED4915041CB044DEB9F2A554142E6EDAEDF91504193F5E12BA42A55419746FE2DED915041AA09C770A92A55416FD10B3BFB9150413A8100E5AE2A5541AA4612AB0A925041D3BFE2B7B42A5541532A99AD0F9250416A4B9DCBB62A5541C9BF221A21925041A32FD2F4BC2A55415B5E1816249250415CE13E92BC2A554107A6267A2992504193C1D54DBE2A5541515B192B39925041F7B6B2E1BE2A5541622CD7B242925041D90F69B0BE2A5541B54DF7D34E9250412FCCF8B9BD2A554154BF798E5D925041477173B4BB2A5541B67FA70561925041B79BFF64B92A5541EA93BD2977925041E9B175F1A02A5541976F9E1D80925041647DDE2E982A5541BAB2F6B98C92504154E1CFC38B2A5541EF2CCDA998925041AC032099802A5541B4AD28989F92504117618C2F792A55416603C09BA5925041C8B41388702A5541230C4BABA3925041D0F0A411712A55419F59923B999250418ACD05C3742A5541B4A620048992504122DC89387A2A5541DADD689C70925041F86AEA91822A5541CDCCCCFC629250419A9999C9872A554148E17A243E92504152B81EA58D2A55417DA04950329250412941FB178F2A5541A711E9F62992504179AB91CB892A554142BDB0731892504168C9C41DA72A55419D3A66E111925041CF89D69BA42A55410001C89A07925041B490DF8EA12A5541609C0F83F891504167D014399D2A55419F2283CAEC9150417CE5E8D9992A5541634C7244E0915041E68F6DFF952A55410FEF7BE7D3915041FAEB3805912A5541F4E6479DC5915041F6C01E348C2A554127AE1BE6C6915041556BA359882A5541BAC93FB2BA915041D85516F1852A5541F7CE6486A0915041A4D5390D832A5541A85591959A9150413972AC4C852A554122F90CC899915041C2404250892A554106D1016DBD91504149650CF6962A5541050000007288382E039250417B571403AB2A55417FA83005F4915041495825AFA72A5541886FD963F4915041AD1185A6A52A5541F7EB8C5D03925041DE1074FAA82A55417288382E039250417B571403AB2A55410103000000010000000A00000085EB51380F9250418FC2F558BF2A5541790861320F925041C609FC0BB82A55415AEA6A050A925041EDDB8532B62A5541B35E4C4CFF9150412FEBF0F1B12A5541350B7488F79150413A8100E5AE2A5541E065E558E191504177D1807BA62A5541330FC9E4E691504136FB6C5DAA2A5541C7BB049EFC915041713FDA61B62A5541A07F694C0A925041A0360B80BD2A554185EB51380F9250418FC2F558BF2A55410103000000010000000400000085EB51380F9250418FC2F558BF2A5541F561A4790F9250418312AACFBF2A5541C558C3CB11925041299918D4C22A554185EB51380F9250418FC2F558BF2A55410103000000020000004A000000E76D51181C925041A6D82E0C192B55415819938715925041900BF733052B5541B986BCFA0C92504157182CD0E82A55411EDBF4120A925041C0B6D717E12A5541AA24B8510B9250413D9E96ADE02A554121363B7B0C9250410ABADEBFE32A5541C49E4D741392504115879C28FB2A55417A38E2411B92504170FC1AD1122B5541FEB4B2271D9250419970BD52182B55412CB5FFAD21925041CA053C3B152B554147F2EAA527925041B6CA1F7A112B5541EECBFC622E925041540AF2020E2B5541DA5FCFF2319250419C8D34820B2B5541E0619E293492504101B8C032092B554198DE5BAA369250411524EEA2052B5541FF6BA93B3F925041282D5A32F72A55417065243D44925041C19F0CA1EE2A5541E2934E5B46925041794DDBD0E92A5541C2B7550D49925041B4CC7FE2E22A55414A564B094C925041DADB5816DB2A55415F9167CA4F925041D643E818D32A5541CC2084925A92504153751122C02A5541ABB0B8B4599250414D7342EBBD2A5541893C4F6954925041B1681F7FBE2A5541E2934E5B46925041EF7F348EBF2A5541E3F90E273C92504135CEC7F0BF2A5541FC044AED2F925041A1FA22D8BF2A5541A27B9AC92B9250418353D9A6BF2A5541769B030E2A925041CDDAB993C12A55411BE1423B2D92504103BB504FC32A5541EECBFC622E925041C5A33B40C22A55410A3E977731925041CBA50A77C42A55415B2D07672B9250413A6AD65BCC2A5541211423212892504134680725CA2A55417C9DD2442C9250417D20F9C0C42A55416862B68328925041A7FCF10EC22A55416395966923925041711C5B53C02A554101D568F21F9250413DD43495C62A5541D5C3C08725925041262FBA9AC82A554153279AC22492504108575FBACF2A55413C540D041992504131FEA8EBCF2A5541A8B1799A11925041406CA592CE2A5541C558C3CB11925041299918D4C22A5541CEF8C4180992504174F60655BE2A55416CC94D05FF915041E245763FB92A5541BF2DB3E0FB915041C929D3C4B72A55414799C545F89150416AB188A4B52A5541640EB838EA915041292C06C9AD2A5541BFBBF020DF91504142CAD3F1A62A55414A2FC1BBD7915041FE3C93E0A22A55415D0EA4BBCC9150417F1A54889E2A5541C8DC6BC9BC9150414EDCA29E982A5541E1C8CD22AF915041467DEF0CBC2A5541CBB3F981B2915041B0EFB90AC52A5541E5F3E7F3B3915041CBE8B017C82A554163C27DF7B79150414AB7461BCC2A5541A4B46B11BE9150417FF02B9AD02A55415DA00900CD915041252ACAE0DA2A5541B209D5C3D0915041F3082A28DC2A55418ECA6C01D5915041F6027BD4DC2A55418D60C64DD891504173126BF9DD2A55414D403ED5DE915041110A9FCFE12A55414F6093C6E6915041F0C487B9E62A55414D096FB5ED915041A12D863EEC2A5541A9D347C4F3915041214A49B2F12A55419C7C23B3FA9150410F7CAB9EF72A554108BE75C401925041CEDEFACFFD2A5541471784240692504160590650012B554118D81B620A9250414014EF39062B5541D727E9F00C9250419FC59652092B5541940D10CC129250410F7E6266112B55413E8270A419925041EFC2FDFF1A2B55413A1F5EE71B925041FCE7A12D192B5541E76D51181C925041A6D82E0C192B554106000000847A003CF69150418E5EE866E72A554133D23FFCF5915041125F9857E12A5541A2676D4007925041A5D9DD6AE32A55413556EA16069250410EA1ED64E92A55416C9CA6AD04925041EF68AD4FE92A5541847A003CF69150418E5EE866E72A5541010300000002000000110000008A0D10CC129250411A5A15E9232B5541EFEAB0C81B925041B3CC03B0322B55411F4756BD279250415659A3F54C2B5541F3DA349129925041CEA64423522B554110F978D72C92504109B296A6542B5541EEE26656359250413E06EB94542B55416AA7A4733592504192359386522B5541B3E246B333925041CEC9A8254E2B55415A8396E6329250411F7CCF2A4C2B55419DC4354D3192504122C34B15492B5541D9584BEC2C925041B5CD85903F2B55413D76FC682A9250419B7372013A2B5541DD269AC2249250412C6BB4F82D2B55419BAADC4122925041F0E004D5292B5541A6E6FCC01992504179F9C8D31D2B5541250BF3F515925041AB31F4CD1F2B55418A0D10CC129250411A5A15E9232B55410900000059C1ADF8199250415042E1DE1F2B55412C7DE83E239250417D525230302B5541B93A3A862A9250419446B1283E2B5541148F709131925041272959F24E2B554169FDD0D02B925041D6EBEF3C502B5541DC3F7F8924925041C7AFCC643E2B5541BE5464BA1D9250416205494D322B554142E41B561492504124A8CE18242B554159C1ADF8199250415042E1DE1F2B55410103000000010000000D00000022CD92764392504159E8F9D1532B55413F2C23A0429250414C416D31512B554105F6FDFA3D925041CB1622374B2B554168BE18832F925041B6617B8C392B5541EA4654772C925041D70788A0352B55415CAB81DE269250411BDD1C032E2B5541ED57CB5F2692504103788FB22E2B5541E299CAAF29925041D48A06B4352B554155538E0B30925041F87A2FFB432B554172E82337329250412DB751C7482B55412C6008E6369250418C3B90AD522B5541E32466A638925041467D6F5A542B554122CD92764392504159E8F9D1532B5541010300000001000000160000002480196546925041E0A03DA1532B554116A283414892504127C3AF47532B55413AB9D77F6E925041292FA603512B55416E8D23606C9250419D03780F512B5541F2F1A44C6C925041C61491B04F2B5541D5D36006699250410113B88E4D2B5541DC583B136492504176D80824492B5541B28E9BD0579250418187B5B23F2B554187C4FB8D4B925041109BE32D362B55411A775A6046925041856034C3312B55410970F6D83D9250413EEDAE0F2B2B554136CFEC5F37925041C9D60A09262B55414854C76C329250413B415313222B5541EAC961FA309250415C8969DB202B55418C33C4E92F9250417A6D7AE9202B55417A58813B27925041D8F49C132B2B5541C27BB94927925041D5E8F6AD2C2B5541BE6A42612D92504170375035352B5541EEAC615432925041E66D957D3B2B554151781C2539925041FAF7B0E7432B5541F28A73833E925041E1FE2D9B4A2B55412480196546925041E0A03DA1532B55410103000000010000001B00000006A564D07D925041B8B98825502B554106A564D07D925041D9019FED4E2B5541A5BFF6D27C925041F4B7AF034E2B5541D82E699168925041A761D12C3E2B5541AFE23FD44E92504167FEC7B0292B554169628F7B439250415EC06602212B5541CF64A4553B92504112BBDB9C1A2B55411B19DC4938925041534B082D182B55412A3D4FD536925041E1D5ECED172B554198DE5BAA3692504152A43137182B5541CC6B7E453192504146474F2C1F2B5541D45D5F433192504178BD0B2F1F2B5541C1B8485932925041E8B6EDA0202B5541C79BA17C3B9250412761707B272B55419705AECE41925041181393952C2B5541259B65C445925041BBCC55EF2F2B5541E8A9698B4C925041AC7E7809352B554138D9C6724E925041761257DD362B5541DC9289CC5192504135822A4D392B55417C154FFF54925041EB28FBE33B2B554133BC1F96579250412BC652193E2B554114B8319A5D925041AE37FFAA422B5541D39C63DF68925041B9AC5D804B2B5541D73B94366D925041D1389C144F2B5541B22DC5CF6F925041B42EBFEF502B5541F5F2FBAB72925041ECB75DC4502B554106A564D07D925041B8B98825502B55410103000000020000001400000069BE6F5BD59150415B75DF8BE82A554183F755C3E8915041452D4DAEF62A55416907F7F3FB91504161A90F0B082B5541C613E6E00A925041FE52562D192B5541AA65A9841192504198D3ABC1212B55412DEF857A1892504143C9E4061C2B5541D85E30701892504167DF4DF81B2B5541862641C215925041FEAFC452172B554107F7FBAB0C9250417F6DFD990A2B5541CA0794FF049250416DD62EA6012B5541EB26A7D0F89150410F7CAB9EF72A55412F08FA0DE891504140FFB5CFE82A5541CBCC5650E0915041F4AB56C3E32A5541F17565C6D8915041F19E8374DF2A5541FF5C34D0D59150414343583EDE2A5541E2D8E77ED09150410280A32ADD2A5541FEAF82FACD915041C2ACC65ADC2A554105CF147CD491504100FD821EE62A5541DF99B9D4D5915041DD5C5F34E82A554169BE6F5BD59150415B75DF8BE82A55410E0000006078829CD591504142695C83E52A55418EDDEEA3D8915041355C8934E12A55416B67B7C1EB915041904C6688EE2A55418B9B03FDFC915041614684ADFD2A5541E9E20462039250411FA9D3DE032B554129CCBDBA0B9250413AC3797C0C2B554169B5761314925041CBE660EB162B5541959DBAC4169250410BBD97A11B2B554125F87053129250413B9F2CFF1E2B5541F87F82A90B9250411B0E0D5F152B554197182C53FD915041FF503A26052B55416B67B7C1EB9150415E262FBCF52A55411FEE5370DF91504140123872EC2A55416078829CD591504142695C83E52A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001000000024BAF19209925041578C697C572B554193718A860A9250415AC9DA825B2B5541A428A13A1E9250416AF99E625A2B5541303188DE279250416EFDF3D3762B554162329CE533925041B8A2099B732B5541153410F52992504187513152582B55412D84AC14289250419189EB01572B55416F4C480E1E925041102DEDB6572B554191E9F40C1E9250410079A5AD572B55419C6D8F9E0A925041773554FA582B5541ABFC0AAA0A925041009A2639572B5541C95F58BB0A9250418FEA5194542B5541097B635A04925041A87028C7552B5541658A7B8C04925041867E3F43572B554154D8F55609925041CD57AC7E562B554124BAF19209925041578C697C572B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984733 - 402665
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 23 </desc>
+<a>
+01060000000C0000000103000000010000002F00000019528B31D3915041DF4183ECE82A55410D36734CD29150414032FE2AE92A5541E57DDC40DC915041E5B293D6F12A5541F9D9A746D7915041C59DBF35F52A5541479A729CDB91504169654C46FC2A55411B70CA5AE2915041022DD956032B55416AE99D4BE89150413766BED5072B5541AE9A2B64E191504129EE153C132B55418BC6B7C4F1915041DDAE99591D2B5541A6BFAED1F4915041926F1D77272B5541ABEAC8A2F9915041823E6C42312B55412A726741FF915041096336E83E2B55415FAB4CC003925041AC390036512B5541658A7B8C04925041867E3F43572B554154D8F55609925041CD57AC7E562B554193718A860A9250415AC9DA825B2B5541A428A13A1E9250416AF99E625A2B55411E44FC9429925041D06392E17B2B5541EFB7AADD2C925041700F3ADB832B5541FB52E439419250412B41F1ACB22B5541D5D67E2244925041E0245356B92B55413D31860166925041F55C0D06B82B55415CA1FA6063925041FD7CE545B72B5541FCD9360E5692504158C9477CAF2B554146E2EDDC4F9250419BB1260BAA2B55418ADEB3F349925041ECC5CE91A32B5541D8EE6092439250415552E1479A2B554111B36CF93E925041C5D6FD2D912B554183279D3F36925041E8B32E017A2B5541F8C7967D2C9250412621AC735F2B5541153410F52992504187513152582B55412D84AC14289250419189EB01572B55419C6D8F9E0A925041773554FA582B55417264CCCE0A92504112A8599B512B5541B13E16BB1F925041EA4E2489512B554173111DBF24925041E27A2FA6502B55413129FCA625925041F6EA067C502B5541C060F39C26925041626E739B4E2B5541F52E20912492504139F6641D492B554134285CC01E925041C0622A683C2B554146CDB8E719925041D8ACE3B6322B5541C3020AD00E9250416D01DFB2212B5541D79B01D00792504150B4DF6F182B5541965CA622FA9150410EACF824092B55417EC0682EEE9150418E9E7083FD2A5541AD97B455DB915041E4243F8BEE2A554119528B31D3915041DF4183ECE82A55410103000000040000004900000098E15E68A793504158EA53119E2A5541AEC0ED5691935041FB059A738A2A554141CCCE5A8A935041F1332A6D822A554162205D99859350418F97E209712A554198F2C6AA83935041E1D4A256662A55413165BB84839350415ACD04B85D2A554126E7DFB1809350412E292BA0572A55413728EF4D7A935041A7218D014F2A5541733B68FB719350415057B5A4452A5541175AC8A16C9350419C7DADF43E2A554173E7D3C76C935041E9A3A544382A55412C840F416A935041C92913CC2F2A55415AB6DCAA489350414B487967342A554187E8A91427935041409C0D9B392A5541C329B3BB16935041EF384914372A5541C9BE568B15935041E33406AF462A554188F035D41193504119854B93472A554153ACBF14EC925041A2E4C0CA452A5541AB2A8FFDDA92504187536655412A554100000060CB925041B81E85EB462A55414ABCD793C192504114F0A7C3482A55417632BCCBC09250411E60561D4A2A5541FA0D3007C2925041E3DC0B1F502A55413344E1A6C7925041D827E306532A55418D156B16D09250412751ADDE562A5541F3BA152ED6925041AE9130C65F2A5541590880DDE0925041FD62BA35682A5541431567A5E29250416141AD25692A5541EA556C45E29250413510A4CD692A55414EE9874DE0925041DC31B1DD682A55415860C045DC9250411337DBDD652A5541BB4B1CB6D5925041989E178E612A5541E7F35D06D1925041AD0869BE5B2A5541AEBDAC66CB9250415382B636562A5541116B18B7C3925041D827E306532A554155DFB976CA925041C52C0996622A554140B35866D1925041F4FD104D742A5541403C206ED59250410DCA70BC7F2A554120490736D7925041CBF02514852A5541BCD4E3BDD992504124CF1804862A55412BF1C6CDDB925041501F1AEC852A55414DAB972DDF92504124B02074852A5541A7314AB5E4925041B47445D4822A554192E6F014EB925041E05A77447F2A5541D7798A64F292504165E1AB847B2A5541C35FB86301935041D3CC07F5742A5541CE7EB0F3019350410B5BF9FC752A554167C776CCF39250411760A1447C2A55419E24E134EC92504192D96C04802A5541855881C5E09250417D6F1BD4852A5541BC5DABC5DD925041D64D0EC4862A5541FE17FEDDD79250415C5D0A0C872A55419BC2D2F5DA925041A0F0A35B8E2A5541376DA70DDE925041A1796B63922A55417A398935E0925041268967AB922A55418600415DE5925041CDC96C4B922A5541B417FA6CEA9250411B6A6F1B922A5541AAEB985CF1925041A1796B63922A5541E51989C3049350418086522B942A5541785FB4F21393504196E33ADB952A5541BD5C1DBA1E93504127312743972A554152F2C71837935041CF38E40A9C2A5541FD1DA3FF4B935041AE90A2BAA02A554162E245A752935041138E8D3AA22A55416FC8F55E58935041FDB96C92A42A554122597A2E6193504140A5464AA72A5541E1DC173668935041A583393AA82A5541522A82E5729350411F933582A82A5541B896E4247E93504178333852A82A5541BAC76BC486935041BB954A02A72A5541DC0A042C8E93504183C968DAA42A55412D844D339B93504155D1A75AA02A554198E15E68A793504158EA53119E2A55410B00000088F82637E8925041BA473A69652A554151E88AE83E935041FB14B45F602A5541658DDBA554935041C14A0DB3612A5541127816A16E9350417793CA3A622A554188C418EC809350410B02502B612A55413D0DD6738193504115EC18AD652A5541127816A16E9350413CB3EC0F682A5541A69FCD603E9350417090F7F0652A5541FFA12E3125935041916A2F88672A55410D610694EE92504124C37DFA6A2A554188F82637E8925041BA473A69652A5541050000005BA3122450935041781F1130802A5541A55A559C4F935041FDB631D3792A554111A757E761935041C3EC8A267B2A5541C6EF146F629350414F42064F822A55415BA3122450935041781F1130802A554105000000AAA31D88F6925041ED9A54C1852A554178DC4925F4925041880CADFB802A5541F52B1FBA02935041FDB631D3792A554171AA359504935041673275647F2A5541AAA31D88F6925041ED9A54C1852A554101030000000100000022000000073D5DC9A7925041742690ED6F2A5541C8E84459A39250417D8B18E0762A5541F4F9ECC39D9250418F9185847D2A55415322AA3D999250412569C80A822A5541B748988092925041684DFD33882A5541B077DAF8889250415177718A912A554111D5468F819250419FCB7191982A5541BD7E775178925041B09C2F19A22A554197729D086B925041326768A2B02A5541431CCECA61925041EAB21474BA2A5541FCCD3A6861925041E37B9620BB2A55416EA574C461925041921127D1BB2A5541D3A25F446392504165C125E9BB2A5541B2FA1DF467925041DF733981BA2A55413B8B200B7A9250417ACE8E69B42A55413495EEE18F92504184DBF7E9AC2A5541A8DA9758A8925041AF196AC2A42A554110C3581FBF9250418CB7D9CA9C2A5541F0E1CEF6C89250416AFD086B992A5541D0777DC6CE9250415362309B962A5541A4B043E6D2925041D8E864DB922A554199FB1ACED59250411AA3B7F38C2A5541C66A1446D692504194EBFB13882A5541F3BA152ED69250417D6F1BD4852A5541E7125696D19250414E27DB24782A55417610C3CEC992504107DAF22D642A5541C3E90D77C49250413DAE958E582A554175FE33BFC1925041C1F6D9AE532A55411B2041CFC092504173EC0767502A554102F50567BE925041CD99C83F4E2A55419C717552BE92504150EE4E634E2A55415D295396AE92504102F03282652A5541C88CE056AC9250416837E3AE692A5541073D5DC9A7925041742690ED6F2A55410103000000020000002C00000006D1016DBD91504149650CF6962A5541F8D66E72C6915041F4F714309A2A554155C5D0AED4915041CB044DEB9F2A554142E6EDAEDF91504193F5E12BA42A55419746FE2DED915041AA09C770A92A55416FD10B3BFB9150413A8100E5AE2A5541AA4612AB0A925041D3BFE2B7B42A5541532A99AD0F9250416A4B9DCBB62A5541C9BF221A21925041A32FD2F4BC2A55415B5E1816249250415CE13E92BC2A554107A6267A2992504193C1D54DBE2A5541515B192B39925041F7B6B2E1BE2A5541622CD7B242925041D90F69B0BE2A5541B54DF7D34E9250412FCCF8B9BD2A554154BF798E5D925041477173B4BB2A5541B67FA70561925041B79BFF64B92A5541EA93BD2977925041E9B175F1A02A5541976F9E1D80925041647DDE2E982A5541BAB2F6B98C92504154E1CFC38B2A5541EF2CCDA998925041AC032099802A5541B4AD28989F92504117618C2F792A55416603C09BA5925041C8B41388702A5541230C4BABA3925041D0F0A411712A55419F59923B999250418ACD05C3742A5541B4A620048992504122DC89387A2A5541DADD689C70925041F86AEA91822A5541CDCCCCFC629250419A9999C9872A554148E17A243E92504152B81EA58D2A55417DA04950329250412941FB178F2A5541A711E9F62992504179AB91CB892A554142BDB0731892504168C9C41DA72A55419D3A66E111925041CF89D69BA42A55410001C89A07925041B490DF8EA12A5541609C0F83F891504167D014399D2A55419F2283CAEC9150417CE5E8D9992A5541634C7244E0915041E68F6DFF952A55410FEF7BE7D3915041FAEB3805912A5541F4E6479DC5915041F6C01E348C2A554127AE1BE6C6915041556BA359882A5541BAC93FB2BA915041D85516F1852A5541F7CE6486A0915041A4D5390D832A5541A85591959A9150413972AC4C852A554122F90CC899915041C2404250892A554106D1016DBD91504149650CF6962A5541050000007288382E039250417B571403AB2A55417FA83005F4915041495825AFA72A5541886FD963F4915041AD1185A6A52A5541F7EB8C5D03925041DE1074FAA82A55417288382E039250417B571403AB2A55410103000000010000000A00000085EB51380F9250418FC2F558BF2A5541790861320F925041C609FC0BB82A55415AEA6A050A925041EDDB8532B62A5541B35E4C4CFF9150412FEBF0F1B12A5541350B7488F79150413A8100E5AE2A5541E065E558E191504177D1807BA62A5541330FC9E4E691504136FB6C5DAA2A5541C7BB049EFC915041713FDA61B62A5541A07F694C0A925041A0360B80BD2A554185EB51380F9250418FC2F558BF2A55410103000000010000000400000085EB51380F9250418FC2F558BF2A5541F561A4790F9250418312AACFBF2A5541C558C3CB11925041299918D4C22A554185EB51380F9250418FC2F558BF2A55410103000000020000004A000000E76D51181C925041A6D82E0C192B55415819938715925041900BF733052B5541B986BCFA0C92504157182CD0E82A55411EDBF4120A925041C0B6D717E12A5541AA24B8510B9250413D9E96ADE02A554121363B7B0C9250410ABADEBFE32A5541C49E4D741392504115879C28FB2A55417A38E2411B92504170FC1AD1122B5541FEB4B2271D9250419970BD52182B55412CB5FFAD21925041CA053C3B152B554147F2EAA527925041B6CA1F7A112B5541EECBFC622E925041540AF2020E2B5541DA5FCFF2319250419C8D34820B2B5541E0619E293492504101B8C032092B554198DE5BAA369250411524EEA2052B5541FF6BA93B3F925041282D5A32F72A55417065243D44925041C19F0CA1EE2A5541E2934E5B46925041794DDBD0E92A5541C2B7550D49925041B4CC7FE2E22A55414A564B094C925041DADB5816DB2A55415F9167CA4F925041D643E818D32A5541CC2084925A92504153751122C02A5541ABB0B8B4599250414D7342EBBD2A5541893C4F6954925041B1681F7FBE2A5541E2934E5B46925041EF7F348EBF2A5541E3F90E273C92504135CEC7F0BF2A5541FC044AED2F925041A1FA22D8BF2A5541A27B9AC92B9250418353D9A6BF2A5541769B030E2A925041CDDAB993C12A55411BE1423B2D92504103BB504FC32A5541EECBFC622E925041C5A33B40C22A55410A3E977731925041CBA50A77C42A55415B2D07672B9250413A6AD65BCC2A5541211423212892504134680725CA2A55417C9DD2442C9250417D20F9C0C42A55416862B68328925041A7FCF10EC22A55416395966923925041711C5B53C02A554101D568F21F9250413DD43495C62A5541D5C3C08725925041262FBA9AC82A554153279AC22492504108575FBACF2A55413C540D041992504131FEA8EBCF2A5541A8B1799A11925041406CA592CE2A5541C558C3CB11925041299918D4C22A5541CEF8C4180992504174F60655BE2A55416CC94D05FF915041E245763FB92A5541BF2DB3E0FB915041C929D3C4B72A55414799C545F89150416AB188A4B52A5541640EB838EA915041292C06C9AD2A5541BFBBF020DF91504142CAD3F1A62A55414A2FC1BBD7915041FE3C93E0A22A55415D0EA4BBCC9150417F1A54889E2A5541C8DC6BC9BC9150414EDCA29E982A5541E1C8CD22AF915041467DEF0CBC2A5541CBB3F981B2915041B0EFB90AC52A5541E5F3E7F3B3915041CBE8B017C82A554163C27DF7B79150414AB7461BCC2A5541A4B46B11BE9150417FF02B9AD02A55415DA00900CD915041252ACAE0DA2A5541B209D5C3D0915041F3082A28DC2A55418ECA6C01D5915041F6027BD4DC2A55418D60C64DD891504173126BF9DD2A55414D403ED5DE915041110A9FCFE12A55414F6093C6E6915041F0C487B9E62A55414D096FB5ED915041A12D863EEC2A5541A9D347C4F3915041214A49B2F12A55419C7C23B3FA9150410F7CAB9EF72A554108BE75C401925041CEDEFACFFD2A5541471784240692504160590650012B554118D81B620A9250414014EF39062B5541D727E9F00C9250419FC59652092B5541940D10CC129250410F7E6266112B55413E8270A419925041EFC2FDFF1A2B55413A1F5EE71B925041FCE7A12D192B5541E76D51181C925041A6D82E0C192B554106000000847A003CF69150418E5EE866E72A554133D23FFCF5915041125F9857E12A5541A2676D4007925041A5D9DD6AE32A55413556EA16069250410EA1ED64E92A55416C9CA6AD04925041EF68AD4FE92A5541847A003CF69150418E5EE866E72A5541010300000002000000110000008A0D10CC129250411A5A15E9232B5541EFEAB0C81B925041B3CC03B0322B55411F4756BD279250415659A3F54C2B5541F3DA349129925041CEA64423522B554110F978D72C92504109B296A6542B5541EEE26656359250413E06EB94542B55416AA7A4733592504192359386522B5541B3E246B333925041CEC9A8254E2B55415A8396E6329250411F7CCF2A4C2B55419DC4354D3192504122C34B15492B5541D9584BEC2C925041B5CD85903F2B55413D76FC682A9250419B7372013A2B5541DD269AC2249250412C6BB4F82D2B55419BAADC4122925041F0E004D5292B5541A6E6FCC01992504179F9C8D31D2B5541250BF3F515925041AB31F4CD1F2B55418A0D10CC129250411A5A15E9232B55410900000059C1ADF8199250415042E1DE1F2B55412C7DE83E239250417D525230302B5541B93A3A862A9250419446B1283E2B5541148F709131925041272959F24E2B554169FDD0D02B925041D6EBEF3C502B5541DC3F7F8924925041C7AFCC643E2B5541BE5464BA1D9250416205494D322B554142E41B561492504124A8CE18242B554159C1ADF8199250415042E1DE1F2B55410103000000010000000D00000022CD92764392504159E8F9D1532B55413F2C23A0429250414C416D31512B554105F6FDFA3D925041CB1622374B2B554168BE18832F925041B6617B8C392B5541EA4654772C925041D70788A0352B55415CAB81DE269250411BDD1C032E2B5541ED57CB5F2692504103788FB22E2B5541E299CAAF29925041D48A06B4352B554155538E0B30925041F87A2FFB432B554172E82337329250412DB751C7482B55412C6008E6369250418C3B90AD522B5541E32466A638925041467D6F5A542B554122CD92764392504159E8F9D1532B5541010300000001000000160000002480196546925041E0A03DA1532B554116A283414892504127C3AF47532B55413AB9D77F6E925041292FA603512B55416E8D23606C9250419D03780F512B5541F2F1A44C6C925041C61491B04F2B5541D5D36006699250410113B88E4D2B5541DC583B136492504176D80824492B5541B28E9BD0579250418187B5B23F2B554187C4FB8D4B925041109BE32D362B55411A775A6046925041856034C3312B55410970F6D83D9250413EEDAE0F2B2B554136CFEC5F37925041C9D60A09262B55414854C76C329250413B415313222B5541EAC961FA309250415C8969DB202B55418C33C4E92F9250417A6D7AE9202B55417A58813B27925041D8F49C132B2B5541C27BB94927925041D5E8F6AD2C2B5541BE6A42612D92504170375035352B5541EEAC615432925041E66D957D3B2B554151781C2539925041FAF7B0E7432B5541F28A73833E925041E1FE2D9B4A2B55412480196546925041E0A03DA1532B55410103000000010000001B00000006A564D07D925041B8B98825502B554106A564D07D925041D9019FED4E2B5541A5BFF6D27C925041F4B7AF034E2B5541D82E699168925041A761D12C3E2B5541AFE23FD44E92504167FEC7B0292B554169628F7B439250415EC06602212B5541CF64A4553B92504112BBDB9C1A2B55411B19DC4938925041534B082D182B55412A3D4FD536925041E1D5ECED172B554198DE5BAA3692504152A43137182B5541CC6B7E453192504146474F2C1F2B5541D45D5F433192504178BD0B2F1F2B5541C1B8485932925041E8B6EDA0202B5541C79BA17C3B9250412761707B272B55419705AECE41925041181393952C2B5541259B65C445925041BBCC55EF2F2B5541E8A9698B4C925041AC7E7809352B554138D9C6724E925041761257DD362B5541DC9289CC5192504135822A4D392B55417C154FFF54925041EB28FBE33B2B554133BC1F96579250412BC652193E2B554114B8319A5D925041AE37FFAA422B5541D39C63DF68925041B9AC5D804B2B5541D73B94366D925041D1389C144F2B5541B22DC5CF6F925041B42EBFEF502B5541F5F2FBAB72925041ECB75DC4502B554106A564D07D925041B8B98825502B55410103000000020000001400000069BE6F5BD59150415B75DF8BE82A554183F755C3E8915041452D4DAEF62A55416907F7F3FB91504161A90F0B082B5541C613E6E00A925041FE52562D192B5541AA65A9841192504198D3ABC1212B55412DEF857A1892504143C9E4061C2B5541D85E30701892504167DF4DF81B2B5541862641C215925041FEAFC452172B554107F7FBAB0C9250417F6DFD990A2B5541CA0794FF049250416DD62EA6012B5541EB26A7D0F89150410F7CAB9EF72A55412F08FA0DE891504140FFB5CFE82A5541CBCC5650E0915041F4AB56C3E32A5541F17565C6D8915041F19E8374DF2A5541FF5C34D0D59150414343583EDE2A5541E2D8E77ED09150410280A32ADD2A5541FEAF82FACD915041C2ACC65ADC2A554105CF147CD491504100FD821EE62A5541DF99B9D4D5915041DD5C5F34E82A554169BE6F5BD59150415B75DF8BE82A55410E0000006078829CD591504142695C83E52A55418EDDEEA3D8915041355C8934E12A55416B67B7C1EB915041904C6688EE2A55418B9B03FDFC915041614684ADFD2A5541E9E20462039250411FA9D3DE032B554129CCBDBA0B9250413AC3797C0C2B554169B5761314925041CBE660EB162B5541959DBAC4169250410BBD97A11B2B554125F87053129250413B9F2CFF1E2B5541F87F82A90B9250411B0E0D5F152B554197182C53FD915041FF503A26052B55416B67B7C1EB9150415E262FBCF52A55411FEE5370DF91504140123872EC2A55416078829CD591504142695C83E52A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001000000024BAF19209925041578C697C572B554193718A860A9250415AC9DA825B2B5541A428A13A1E9250416AF99E625A2B5541303188DE279250416EFDF3D3762B554162329CE533925041B8A2099B732B5541153410F52992504187513152582B55412D84AC14289250419189EB01572B55416F4C480E1E925041102DEDB6572B554191E9F40C1E9250410079A5AD572B55419C6D8F9E0A925041773554FA582B5541ABFC0AAA0A925041009A2639572B5541C95F58BB0A9250418FEA5194542B5541097B635A04925041A87028C7552B5541658A7B8C04925041867E3F43572B554154D8F55609925041CD57AC7E562B554124BAF19209925041578C697C572B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984733 - 423979
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 23 </desc>
+<a>
+01060000000C0000000103000000010000002F00000019528B31D3915041DF4183ECE82A55410D36734CD29150414032FE2AE92A5541E57DDC40DC915041E5B293D6F12A5541F9D9A746D7915041C59DBF35F52A5541479A729CDB91504169654C46FC2A55411B70CA5AE2915041022DD956032B55416AE99D4BE89150413766BED5072B5541AE9A2B64E191504129EE153C132B55418BC6B7C4F1915041DDAE99591D2B5541A6BFAED1F4915041926F1D77272B5541ABEAC8A2F9915041823E6C42312B55412A726741FF915041096336E83E2B55415FAB4CC003925041AC390036512B5541658A7B8C04925041867E3F43572B554154D8F55609925041CD57AC7E562B554193718A860A9250415AC9DA825B2B5541A428A13A1E9250416AF99E625A2B55411E44FC9429925041D06392E17B2B5541EFB7AADD2C925041700F3ADB832B5541FB52E439419250412B41F1ACB22B5541D5D67E2244925041E0245356B92B55413D31860166925041F55C0D06B82B55415CA1FA6063925041FD7CE545B72B5541FCD9360E5692504158C9477CAF2B554146E2EDDC4F9250419BB1260BAA2B55418ADEB3F349925041ECC5CE91A32B5541D8EE6092439250415552E1479A2B554111B36CF93E925041C5D6FD2D912B554183279D3F36925041E8B32E017A2B5541F8C7967D2C9250412621AC735F2B5541153410F52992504187513152582B55412D84AC14289250419189EB01572B55419C6D8F9E0A925041773554FA582B55417264CCCE0A92504112A8599B512B5541B13E16BB1F925041EA4E2489512B554173111DBF24925041E27A2FA6502B55413129FCA625925041F6EA067C502B5541C060F39C26925041626E739B4E2B5541F52E20912492504139F6641D492B554134285CC01E925041C0622A683C2B554146CDB8E719925041D8ACE3B6322B5541C3020AD00E9250416D01DFB2212B5541D79B01D00792504150B4DF6F182B5541965CA622FA9150410EACF824092B55417EC0682EEE9150418E9E7083FD2A5541AD97B455DB915041E4243F8BEE2A554119528B31D3915041DF4183ECE82A55410103000000040000004900000098E15E68A793504158EA53119E2A5541AEC0ED5691935041FB059A738A2A554141CCCE5A8A935041F1332A6D822A554162205D99859350418F97E209712A554198F2C6AA83935041E1D4A256662A55413165BB84839350415ACD04B85D2A554126E7DFB1809350412E292BA0572A55413728EF4D7A935041A7218D014F2A5541733B68FB719350415057B5A4452A5541175AC8A16C9350419C7DADF43E2A554173E7D3C76C935041E9A3A544382A55412C840F416A935041C92913CC2F2A55415AB6DCAA489350414B487967342A554187E8A91427935041409C0D9B392A5541C329B3BB16935041EF384914372A5541C9BE568B15935041E33406AF462A554188F035D41193504119854B93472A554153ACBF14EC925041A2E4C0CA452A5541AB2A8FFDDA92504187536655412A554100000060CB925041B81E85EB462A55414ABCD793C192504114F0A7C3482A55417632BCCBC09250411E60561D4A2A5541FA0D3007C2925041E3DC0B1F502A55413344E1A6C7925041D827E306532A55418D156B16D09250412751ADDE562A5541F3BA152ED6925041AE9130C65F2A5541590880DDE0925041FD62BA35682A5541431567A5E29250416141AD25692A5541EA556C45E29250413510A4CD692A55414EE9874DE0925041DC31B1DD682A55415860C045DC9250411337DBDD652A5541BB4B1CB6D5925041989E178E612A5541E7F35D06D1925041AD0869BE5B2A5541AEBDAC66CB9250415382B636562A5541116B18B7C3925041D827E306532A554155DFB976CA925041C52C0996622A554140B35866D1925041F4FD104D742A5541403C206ED59250410DCA70BC7F2A554120490736D7925041CBF02514852A5541BCD4E3BDD992504124CF1804862A55412BF1C6CDDB925041501F1AEC852A55414DAB972DDF92504124B02074852A5541A7314AB5E4925041B47445D4822A554192E6F014EB925041E05A77447F2A5541D7798A64F292504165E1AB847B2A5541C35FB86301935041D3CC07F5742A5541CE7EB0F3019350410B5BF9FC752A554167C776CCF39250411760A1447C2A55419E24E134EC92504192D96C04802A5541855881C5E09250417D6F1BD4852A5541BC5DABC5DD925041D64D0EC4862A5541FE17FEDDD79250415C5D0A0C872A55419BC2D2F5DA925041A0F0A35B8E2A5541376DA70DDE925041A1796B63922A55417A398935E0925041268967AB922A55418600415DE5925041CDC96C4B922A5541B417FA6CEA9250411B6A6F1B922A5541AAEB985CF1925041A1796B63922A5541E51989C3049350418086522B942A5541785FB4F21393504196E33ADB952A5541BD5C1DBA1E93504127312743972A554152F2C71837935041CF38E40A9C2A5541FD1DA3FF4B935041AE90A2BAA02A554162E245A752935041138E8D3AA22A55416FC8F55E58935041FDB96C92A42A554122597A2E6193504140A5464AA72A5541E1DC173668935041A583393AA82A5541522A82E5729350411F933582A82A5541B896E4247E93504178333852A82A5541BAC76BC486935041BB954A02A72A5541DC0A042C8E93504183C968DAA42A55412D844D339B93504155D1A75AA02A554198E15E68A793504158EA53119E2A55410B00000088F82637E8925041BA473A69652A554151E88AE83E935041FB14B45F602A5541658DDBA554935041C14A0DB3612A5541127816A16E9350417793CA3A622A554188C418EC809350410B02502B612A55413D0DD6738193504115EC18AD652A5541127816A16E9350413CB3EC0F682A5541A69FCD603E9350417090F7F0652A5541FFA12E3125935041916A2F88672A55410D610694EE92504124C37DFA6A2A554188F82637E8925041BA473A69652A5541050000005BA3122450935041781F1130802A5541A55A559C4F935041FDB631D3792A554111A757E761935041C3EC8A267B2A5541C6EF146F629350414F42064F822A55415BA3122450935041781F1130802A554105000000AAA31D88F6925041ED9A54C1852A554178DC4925F4925041880CADFB802A5541F52B1FBA02935041FDB631D3792A554171AA359504935041673275647F2A5541AAA31D88F6925041ED9A54C1852A554101030000000100000022000000073D5DC9A7925041742690ED6F2A5541C8E84459A39250417D8B18E0762A5541F4F9ECC39D9250418F9185847D2A55415322AA3D999250412569C80A822A5541B748988092925041684DFD33882A5541B077DAF8889250415177718A912A554111D5468F819250419FCB7191982A5541BD7E775178925041B09C2F19A22A554197729D086B925041326768A2B02A5541431CCECA61925041EAB21474BA2A5541FCCD3A6861925041E37B9620BB2A55416EA574C461925041921127D1BB2A5541D3A25F446392504165C125E9BB2A5541B2FA1DF467925041DF733981BA2A55413B8B200B7A9250417ACE8E69B42A55413495EEE18F92504184DBF7E9AC2A5541A8DA9758A8925041AF196AC2A42A554110C3581FBF9250418CB7D9CA9C2A5541F0E1CEF6C89250416AFD086B992A5541D0777DC6CE9250415362309B962A5541A4B043E6D2925041D8E864DB922A554199FB1ACED59250411AA3B7F38C2A5541C66A1446D692504194EBFB13882A5541F3BA152ED69250417D6F1BD4852A5541E7125696D19250414E27DB24782A55417610C3CEC992504107DAF22D642A5541C3E90D77C49250413DAE958E582A554175FE33BFC1925041C1F6D9AE532A55411B2041CFC092504173EC0767502A554102F50567BE925041CD99C83F4E2A55419C717552BE92504150EE4E634E2A55415D295396AE92504102F03282652A5541C88CE056AC9250416837E3AE692A5541073D5DC9A7925041742690ED6F2A55410103000000020000002C00000006D1016DBD91504149650CF6962A5541F8D66E72C6915041F4F714309A2A554155C5D0AED4915041CB044DEB9F2A554142E6EDAEDF91504193F5E12BA42A55419746FE2DED915041AA09C770A92A55416FD10B3BFB9150413A8100E5AE2A5541AA4612AB0A925041D3BFE2B7B42A5541532A99AD0F9250416A4B9DCBB62A5541C9BF221A21925041A32FD2F4BC2A55415B5E1816249250415CE13E92BC2A554107A6267A2992504193C1D54DBE2A5541515B192B39925041F7B6B2E1BE2A5541622CD7B242925041D90F69B0BE2A5541B54DF7D34E9250412FCCF8B9BD2A554154BF798E5D925041477173B4BB2A5541B67FA70561925041B79BFF64B92A5541EA93BD2977925041E9B175F1A02A5541976F9E1D80925041647DDE2E982A5541BAB2F6B98C92504154E1CFC38B2A5541EF2CCDA998925041AC032099802A5541B4AD28989F92504117618C2F792A55416603C09BA5925041C8B41388702A5541230C4BABA3925041D0F0A411712A55419F59923B999250418ACD05C3742A5541B4A620048992504122DC89387A2A5541DADD689C70925041F86AEA91822A5541CDCCCCFC629250419A9999C9872A554148E17A243E92504152B81EA58D2A55417DA04950329250412941FB178F2A5541A711E9F62992504179AB91CB892A554142BDB0731892504168C9C41DA72A55419D3A66E111925041CF89D69BA42A55410001C89A07925041B490DF8EA12A5541609C0F83F891504167D014399D2A55419F2283CAEC9150417CE5E8D9992A5541634C7244E0915041E68F6DFF952A55410FEF7BE7D3915041FAEB3805912A5541F4E6479DC5915041F6C01E348C2A554127AE1BE6C6915041556BA359882A5541BAC93FB2BA915041D85516F1852A5541F7CE6486A0915041A4D5390D832A5541A85591959A9150413972AC4C852A554122F90CC899915041C2404250892A554106D1016DBD91504149650CF6962A5541050000007288382E039250417B571403AB2A55417FA83005F4915041495825AFA72A5541886FD963F4915041AD1185A6A52A5541F7EB8C5D03925041DE1074FAA82A55417288382E039250417B571403AB2A55410103000000010000000A00000085EB51380F9250418FC2F558BF2A5541790861320F925041C609FC0BB82A55415AEA6A050A925041EDDB8532B62A5541B35E4C4CFF9150412FEBF0F1B12A5541350B7488F79150413A8100E5AE2A5541E065E558E191504177D1807BA62A5541330FC9E4E691504136FB6C5DAA2A5541C7BB049EFC915041713FDA61B62A5541A07F694C0A925041A0360B80BD2A554185EB51380F9250418FC2F558BF2A55410103000000010000000400000085EB51380F9250418FC2F558BF2A5541F561A4790F9250418312AACFBF2A5541C558C3CB11925041299918D4C22A554185EB51380F9250418FC2F558BF2A55410103000000020000004A000000E76D51181C925041A6D82E0C192B55415819938715925041900BF733052B5541B986BCFA0C92504157182CD0E82A55411EDBF4120A925041C0B6D717E12A5541AA24B8510B9250413D9E96ADE02A554121363B7B0C9250410ABADEBFE32A5541C49E4D741392504115879C28FB2A55417A38E2411B92504170FC1AD1122B5541FEB4B2271D9250419970BD52182B55412CB5FFAD21925041CA053C3B152B554147F2EAA527925041B6CA1F7A112B5541EECBFC622E925041540AF2020E2B5541DA5FCFF2319250419C8D34820B2B5541E0619E293492504101B8C032092B554198DE5BAA369250411524EEA2052B5541FF6BA93B3F925041282D5A32F72A55417065243D44925041C19F0CA1EE2A5541E2934E5B46925041794DDBD0E92A5541C2B7550D49925041B4CC7FE2E22A55414A564B094C925041DADB5816DB2A55415F9167CA4F925041D643E818D32A5541CC2084925A92504153751122C02A5541ABB0B8B4599250414D7342EBBD2A5541893C4F6954925041B1681F7FBE2A5541E2934E5B46925041EF7F348EBF2A5541E3F90E273C92504135CEC7F0BF2A5541FC044AED2F925041A1FA22D8BF2A5541A27B9AC92B9250418353D9A6BF2A5541769B030E2A925041CDDAB993C12A55411BE1423B2D92504103BB504FC32A5541EECBFC622E925041C5A33B40C22A55410A3E977731925041CBA50A77C42A55415B2D07672B9250413A6AD65BCC2A5541211423212892504134680725CA2A55417C9DD2442C9250417D20F9C0C42A55416862B68328925041A7FCF10EC22A55416395966923925041711C5B53C02A554101D568F21F9250413DD43495C62A5541D5C3C08725925041262FBA9AC82A554153279AC22492504108575FBACF2A55413C540D041992504131FEA8EBCF2A5541A8B1799A11925041406CA592CE2A5541C558C3CB11925041299918D4C22A5541CEF8C4180992504174F60655BE2A55416CC94D05FF915041E245763FB92A5541BF2DB3E0FB915041C929D3C4B72A55414799C545F89150416AB188A4B52A5541640EB838EA915041292C06C9AD2A5541BFBBF020DF91504142CAD3F1A62A55414A2FC1BBD7915041FE3C93E0A22A55415D0EA4BBCC9150417F1A54889E2A5541C8DC6BC9BC9150414EDCA29E982A5541E1C8CD22AF915041467DEF0CBC2A5541CBB3F981B2915041B0EFB90AC52A5541E5F3E7F3B3915041CBE8B017C82A554163C27DF7B79150414AB7461BCC2A5541A4B46B11BE9150417FF02B9AD02A55415DA00900CD915041252ACAE0DA2A5541B209D5C3D0915041F3082A28DC2A55418ECA6C01D5915041F6027BD4DC2A55418D60C64DD891504173126BF9DD2A55414D403ED5DE915041110A9FCFE12A55414F6093C6E6915041F0C487B9E62A55414D096FB5ED915041A12D863EEC2A5541A9D347C4F3915041214A49B2F12A55419C7C23B3FA9150410F7CAB9EF72A554108BE75C401925041CEDEFACFFD2A5541471784240692504160590650012B554118D81B620A9250414014EF39062B5541D727E9F00C9250419FC59652092B5541940D10CC129250410F7E6266112B55413E8270A419925041EFC2FDFF1A2B55413A1F5EE71B925041FCE7A12D192B5541E76D51181C925041A6D82E0C192B554106000000847A003CF69150418E5EE866E72A554133D23FFCF5915041125F9857E12A5541A2676D4007925041A5D9DD6AE32A55413556EA16069250410EA1ED64E92A55416C9CA6AD04925041EF68AD4FE92A5541847A003CF69150418E5EE866E72A5541010300000002000000110000008A0D10CC129250411A5A15E9232B5541EFEAB0C81B925041B3CC03B0322B55411F4756BD279250415659A3F54C2B5541F3DA349129925041CEA64423522B554110F978D72C92504109B296A6542B5541EEE26656359250413E06EB94542B55416AA7A4733592504192359386522B5541B3E246B333925041CEC9A8254E2B55415A8396E6329250411F7CCF2A4C2B55419DC4354D3192504122C34B15492B5541D9584BEC2C925041B5CD85903F2B55413D76FC682A9250419B7372013A2B5541DD269AC2249250412C6BB4F82D2B55419BAADC4122925041F0E004D5292B5541A6E6FCC01992504179F9C8D31D2B5541250BF3F515925041AB31F4CD1F2B55418A0D10CC129250411A5A15E9232B55410900000059C1ADF8199250415042E1DE1F2B55412C7DE83E239250417D525230302B5541B93A3A862A9250419446B1283E2B5541148F709131925041272959F24E2B554169FDD0D02B925041D6EBEF3C502B5541DC3F7F8924925041C7AFCC643E2B5541BE5464BA1D9250416205494D322B554142E41B561492504124A8CE18242B554159C1ADF8199250415042E1DE1F2B55410103000000010000000D00000022CD92764392504159E8F9D1532B55413F2C23A0429250414C416D31512B554105F6FDFA3D925041CB1622374B2B554168BE18832F925041B6617B8C392B5541EA4654772C925041D70788A0352B55415CAB81DE269250411BDD1C032E2B5541ED57CB5F2692504103788FB22E2B5541E299CAAF29925041D48A06B4352B554155538E0B30925041F87A2FFB432B554172E82337329250412DB751C7482B55412C6008E6369250418C3B90AD522B5541E32466A638925041467D6F5A542B554122CD92764392504159E8F9D1532B5541010300000001000000160000002480196546925041E0A03DA1532B554116A283414892504127C3AF47532B55413AB9D77F6E925041292FA603512B55416E8D23606C9250419D03780F512B5541F2F1A44C6C925041C61491B04F2B5541D5D36006699250410113B88E4D2B5541DC583B136492504176D80824492B5541B28E9BD0579250418187B5B23F2B554187C4FB8D4B925041109BE32D362B55411A775A6046925041856034C3312B55410970F6D83D9250413EEDAE0F2B2B554136CFEC5F37925041C9D60A09262B55414854C76C329250413B415313222B5541EAC961FA309250415C8969DB202B55418C33C4E92F9250417A6D7AE9202B55417A58813B27925041D8F49C132B2B5541C27BB94927925041D5E8F6AD2C2B5541BE6A42612D92504170375035352B5541EEAC615432925041E66D957D3B2B554151781C2539925041FAF7B0E7432B5541F28A73833E925041E1FE2D9B4A2B55412480196546925041E0A03DA1532B55410103000000010000001B00000006A564D07D925041B8B98825502B554106A564D07D925041D9019FED4E2B5541A5BFF6D27C925041F4B7AF034E2B5541D82E699168925041A761D12C3E2B5541AFE23FD44E92504167FEC7B0292B554169628F7B439250415EC06602212B5541CF64A4553B92504112BBDB9C1A2B55411B19DC4938925041534B082D182B55412A3D4FD536925041E1D5ECED172B554198DE5BAA3692504152A43137182B5541CC6B7E453192504146474F2C1F2B5541D45D5F433192504178BD0B2F1F2B5541C1B8485932925041E8B6EDA0202B5541C79BA17C3B9250412761707B272B55419705AECE41925041181393952C2B5541259B65C445925041BBCC55EF2F2B5541E8A9698B4C925041AC7E7809352B554138D9C6724E925041761257DD362B5541DC9289CC5192504135822A4D392B55417C154FFF54925041EB28FBE33B2B554133BC1F96579250412BC652193E2B554114B8319A5D925041AE37FFAA422B5541D39C63DF68925041B9AC5D804B2B5541D73B94366D925041D1389C144F2B5541B22DC5CF6F925041B42EBFEF502B5541F5F2FBAB72925041ECB75DC4502B554106A564D07D925041B8B98825502B55410103000000020000001400000069BE6F5BD59150415B75DF8BE82A554183F755C3E8915041452D4DAEF62A55416907F7F3FB91504161A90F0B082B5541C613E6E00A925041FE52562D192B5541AA65A9841192504198D3ABC1212B55412DEF857A1892504143C9E4061C2B5541D85E30701892504167DF4DF81B2B5541862641C215925041FEAFC452172B554107F7FBAB0C9250417F6DFD990A2B5541CA0794FF049250416DD62EA6012B5541EB26A7D0F89150410F7CAB9EF72A55412F08FA0DE891504140FFB5CFE82A5541CBCC5650E0915041F4AB56C3E32A5541F17565C6D8915041F19E8374DF2A5541FF5C34D0D59150414343583EDE2A5541E2D8E77ED09150410280A32ADD2A5541FEAF82FACD915041C2ACC65ADC2A554105CF147CD491504100FD821EE62A5541DF99B9D4D5915041DD5C5F34E82A554169BE6F5BD59150415B75DF8BE82A55410E0000006078829CD591504142695C83E52A55418EDDEEA3D8915041355C8934E12A55416B67B7C1EB915041904C6688EE2A55418B9B03FDFC915041614684ADFD2A5541E9E20462039250411FA9D3DE032B554129CCBDBA0B9250413AC3797C0C2B554169B5761314925041CBE660EB162B5541959DBAC4169250410BBD97A11B2B554125F87053129250413B9F2CFF1E2B5541F87F82A90B9250411B0E0D5F152B554197182C53FD915041FF503A26052B55416B67B7C1EB9150415E262FBCF52A55411FEE5370DF91504140123872EC2A55416078829CD591504142695C83E52A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001000000024BAF19209925041578C697C572B554193718A860A9250415AC9DA825B2B5541A428A13A1E9250416AF99E625A2B5541303188DE279250416EFDF3D3762B554162329CE533925041B8A2099B732B5541153410F52992504187513152582B55412D84AC14289250419189EB01572B55416F4C480E1E925041102DEDB6572B554191E9F40C1E9250410079A5AD572B55419C6D8F9E0A925041773554FA582B5541ABFC0AAA0A925041009A2639572B5541C95F58BB0A9250418FEA5194542B5541097B635A04925041A87028C7552B5541658A7B8C04925041867E3F43572B554154D8F55609925041CD57AC7E562B554124BAF19209925041578C697C572B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>820470 - 3147675
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 9 </desc>
+<a>
+010600000001000000010300000004000000AF00000085EB516847D45041D7A3700D8429544148E17A0445D450418FC2F5D883295441333333C338D450410AD7A3D082295441EC51B83E36D4504152B81ED581295441000000802ED45041AE47E18A80295441B81E850B27D45041000000A07F295441CDCCCC9C1FD450415C8FC2A57D2954418FC2F5081BD450418FC2F5C87C295441D7A3708D1BD4504114AE475179295441F6285C9F13D4504152B81E35772954415C8FC2A511D45041EC51B8AE762954415C8FC2C50CD4504185EB517875295441CDCCCCAC0ED45041295C8F4278295441000000E013D45041000000F07B2954413D0AD73319D450419A9999C982295441F6285C3F1CD450419A9999698B29544114AE47B11FD450417B14AED78C295441D7A3700D20D450417B14AE178F295441333333B321D45041A4703DDA8F295441000000B020D45041A4703D7A98295441E17A14FE1BD4504152B81E1597295441D7A3706D17D45041E17A142E95295441CDCCCCCC13D45041F6285CEF91295441333333C311D450417B14AEE79029544152B81E9510D45041D7A3702D94295441F6285C1F0BD450415C8FC2E592295441CDCCCCDC01D45041B81E858B94295441CDCCCC8CFDD350418FC2F5B8A0295441D7A3705DF9D3504133333363A32954415C8FC255F7D3504185EB5168AD295441C3F5281CF9D350411F85EB11B02954418FC2F518F8D35041333333A3B1295441F6285C8FF6D350410AD7A320B82954410AD7A3A0F1D350415C8FC235C22954419A999969EBD3504114AE4701CE295441D7A3703DE8D350411F85EB21CE29544166666636E6D35041C3F528CCD029544166666666D9D35041D7A3707DD5295441E17A147ECED350410AD7A310D2295441C3F5282CBBD3504100000000CB29544185EB5148B0D35041AE47E17AC52954415C8FC2D598D35041A4703D5ABA29544148E17A8487D35041C3F5289CB32954415C8FC2D584D35041713D0A97B2295441EC51B8FE7ED350413D0AD7F3AF295441A4703DCA7BD35041A4703D2AAE295441EC51B81E77D350413D0AD7F3AB29544185EB512873D3504148E17A84AA295441333333F36CD350418FC2F5D8B12954417B14AE9765D350415C8FC245B5295441F6285CCF5AD35041AE47E12AAE2954413D0AD7C357D3504100000090AF295441B81E85AB4DD35041AE47E1AAA92954410000007048D35041A4703D8AB02954410AD7A3C047D3504114AE4761B229544152B81EC546D3504114AE4771B5295441333333D345D35041295C8F62B829544148E17A1445D35041E17A14DEBA295441C3F5283C44D3504166666646BD2954419A99994943D35041C3F5282CC029544185EB511842D350419A999919C82954418FC2F5C83FD35041A4703D3AD12954410000007037D35041EC51B8DECF2954413333331331D350419A999999C8295441713D0A5729D3504166666676BD2954413333336323D35041B81E857BB729544114AE47A11FD3504166666686BA2954417B14AE271BD350415C8FC215C5295441B81E859B15D3504133333323CD295441666666C610D35041D7A3701DD4295441000000600DD350411F85EBA1DB295441C3F528CC09D35041295C8FD2E02954410AD7A37009D35041B81E854BE529544185EB51580FD35041C3F5287CEA295441CDCCCCFC13D350411F85EBE1EF295441D7A370DD1AD350413D0AD703F3295441713D0A8722D3504148E17AD4F5295441713D0A772DD35041AE47E18AF4295441EC51B8AE30D35041AE47E18AF4295441B81E85EB38D350410AD7A3F0F0295441CDCCCC5C48D350417B14AE67EB295441B81E854B4AD350418FC2F588EB295441CDCCCC2C53D3504148E17AD4E82954413D0AD7035FD3504185EB5128E7295441CDCCCC3C68D35041666666E6E62954413333339371D35041713D0A57E9295441B81E859B77D350418FC2F5E8E9295441295C8F727DD3504148E17AD4EA29544114AE470182D35041F6285C3FE7295441295C8F328FD350418FC2F508D0295441B81E854B8DD3504114AE4701CE295441D7A370CD8DD35041D7A370FDCC295441F6285C9F92D3504152B81E05CF2954419A99997982D350415C8FC245EC2954416666666683D35041AE47E19AEE295441EC51B8FE89D350410AD7A320F0295441AE47E17A91D35041713D0AE7F1295441EC51B8CE96D3504133333333F52954410AD7A3F09FD35041713D0A87FA295441AE47E1EAA6D35041333333D3FD295441C3F5289CABD35041E17A14BE002A5441B81E851BB4D35041E17A14EE042A544133333373BAD350411F85EBC1012A5441333333C3BED3504185EB5168032A54411F85EB61BED35041EC51B87E092A5441713D0A47C8D350413D0AD7330F2A5441A4703D7AC9D350418FC2F5080D2A544166666626D3D35041333333B30A2A5441295C8F62D8D3504148E17AB4062A544148E17A34DDD3504185EB5168032A5441666666B6DDD35041F6285C4F052A5441F6285CCFDBD35041C3F528BC082A544133333383E1D3504152B81E25052A5441713D0A37E4D3504114AE47A1042A54417B14AE97E6D35041666666E6022A54419A999939E7D3504148E17A14FE29544148E17A04EAD35041295C8F92FD295441713D0AC7EAD35041A4703D9AFF295441D7A370BDF0D35041C3F528CCFB295441B81E85DBF8D3504166666646FA295441333333E3FAD35041C3F528ECFB29544148E17AE403D45041295C8F42F929544148E17AE403D4504185EB5178F6295441B81E850B05D4504185EB5188F6295441D7A3704D06D45041D7A370FDF7295441000000400BD450410AD7A370F429544114AE4711F6D3504114AE4721DF295441F6285C0FEDD35041F6285CFFD5295441F6285C3FF1D35041F6285CAFD12954418FC2F518F8D350418FC2F588D829544185EB51880DD450410AD7A340F0295441000000E013D450419A999939EE295441E17A145E13D45041666666C6F1295441333333D317D450419A999929F32954418FC2F5D81CD4504148E17AF4D42954418FC2F54821D450413D0AD753BA2954410000000025D450418FC2F5B8A029544148E17AC428D450417B14AEA7A22954416666661625D450419A999979BB295441EC51B84E26D450417B14AED7BB2954415C8FC2752BD4504148E17A64BD2954413D0AD7C32BD45041AE47E17ABD29544114AE471133D45041D7A3708DBF295441295C8F823BD45041295C8FF2C12954415C8FC2A541D4504148E17AB4C3295441A4703D1A49D45041713D0AD7C5295441A4703D0A50D45041F6285C4FC8295441A4703D0A57D45041AE47E1BACA295441666666265ED45041295C8F42CD29544114AE47F15ED45041AE47E18ACD295441A4703D3A6ED450415C8FC285D32954417B14AEB77AD45041F6285CAFD4295441000000D088D45041AE47E1AAD52954410000009095D45041E17A148ED6295441CDCCCC3C9BD450413D0AD713CD2954418FC2F508ACD4504166666696CC295441713D0A17B3D450411F85EBA1C0295441713D0AB7B3D45041295C8F92BF2954417B14AE27B8D45041B81E850BB8295441EC51B88EBED450410AD7A330AD2954410AD7A350C0D450418FC2F538AA295441F6285C2FBDD45041C3F5280CA9295441295C8F42A1D4504152B81EF5A0295441333333D382D45041333333D3952954419A99995981D4504152B81E3596295441B81E85DB78D45041713D0A4794295441A4703D5A78D45041AE47E1AA91295441EC51B85E71D45041B81E85BB8F295441B81E85FB6AD450417B14AEB78C2954415C8FC23565D45041D7A3703D8A2954415C8FC2D55BD45041295C8FF2872954410AD7A3F059D4504148E17A5487295441B81E852B58D450417B14AEC787295441A4703D5A53D45041666666568729544185EB516847D45041D7A3700D84295441050000003D0AD7D375D350418FC2F588D8295441E17A14FE6FD35041E17A14EED9295441AE47E11A6FD350411F85EBC1D6295441295C8F7275D35041E17A149ED52954413D0AD7D375D350418FC2F588D829544108000000295C8F0237D450415C8FC225A4295441A4703DFA45D45041E17A14BEAA2954411F85EB414AD4504114AE47C1A6295441AE47E18A5BD4504133333323AC295441295C8F4259D450419A999919B22954410AD7A3A047D4504185EB5168AD295441F6285C1F36D45041CDCCCC0CA6295441295C8F0237D450415C8FC225A4295441050000008FC2F5F890D3504166666626BE2954411F85EB118FD35041C3F528ACBF2954413D0AD7438BD35041EC51B81EBC295441666666068CD35041A4703DDABA2954418FC2F5F890D3504166666626BE295441
+</a>
+
+<b>
+010600000001000000010300000002000000F4000000E17A145E13D45041666666C6F12954411F85EB3118D4504148E17A44F3295441C735B84A21D450410A2F4154BA29544135A9399025D4504187ACF42EBB295441288F2C3041D450414F0ACF92C329544169D257F94AD4504120329E81C62954418DAA54AA50D4504193A5B486C82954411FEEF42860D450418A7CD104CE29544158AF2A2B69D450418C94158BD1295441996296B46ED4504173BD2591D3295441E66F84CC7FD45041891D090AD5295441000000D088D45041AE47E1AAD5295441295C8F9284D45041CDCCCCBCEF2954419A9999899AD45041C3F5284CF329544185EB51289FD45041EC51B8EED72954410000009095D45041E17A148ED6295441CDCCCC3C9BD450413D0AD713CD2954418FC2F508ACD4504166666696CC295441713D0AB7B3D45041295C8F92BF2954417B14AE27B8D45041B81E850BB8295441EC51B88EBED450410AD7A330AD2954410AD7A350C0D450418FC2F538AA295441781C1BEBBBD450410DDC38AEA829544159A29CFCB8D4504124F1CCD4A72954414A9D5F51B6D450411600DD0EA729544117929EB9B3D450411F19924EA62954419CB2D714B0D45041BE4A5740A5295441A5F349CBA8D45041FBADE123A32954411D480CDBA4D45041856A7468A2295441D0C615059ED45041687A38B3A02954410F55C72D99D450414500EBB49E2954414DE3785694D45041F906B76D9C295441BCF5A9128ED45041D78C696F9A2954417E06A86088D45041DE9102BA98295441BD94598983D450413F9A01E1952954418AD247FC80D450419BA0406C9429544191581B157BD450419BCAFE6C922954415458E62273D450419E24D43890295441D6C8C04671D450411B0D35B08F295441E13880576AD4504114DC48718C295441153BFE4565D450417F3668448A295441821906F15ED45041B94C07B588295441C5E588DE5AD45041AD78BF3388295441730FC41D5AD4504104422F63872954411C6FFEF557D450414C9D97D18729544117D6FB2356D450414490F597872954415FE4DF5551D4504119E464C88629544195EDE39A49D450416C1927A884295441F78105E846D4504103716F02842954412D112F383CD45041E378331B8329544169426DEE37D45041E0A0E9D28229544157426E5B36D4504189A95CD781295441000000802ED45041AE47E18A802954418909709027D45041B3C05BB07F295441C0917EEB24D45041F981410F7F2954415B6A286221D45041C985611E7E295441167F71B51ED45041E6DA2A7A7D2954414D8372F51BD450417BF284F57C2954418FC2F5081BD450418FC2F5C87C295441D7A3708D1BD4504114AE475179295441F6285C9F13D4504152B81E35772954415C8FC2C50CD4504185EB517875295441443A02580ED4504163DB36C677295441F3ED7E220FD4504138BCCB957829544151087F7211D45041932177387A29544182E17C2212D450418BBBEDB47A295441A49F360714D4504188796B227C2954418890274515D4504183FF38BB7D2954415E5303BC16D45041E968359D7F295441FBC9D43418D45041A2E6B681812954413D0AD73319D450419A9999C9822954415FAC5DFA19D45041B755EDFB84295441246E62651AD4504176FC0E2B862954412E8F692E1CD45041C77598398B295441DD46190720D45041D79F68C28C295441BFE838E71FD4504127C3D1288E295441AEB9643520D45041D3581C2A8F295441333333B321D45041A4703DDA8F295441000000B020D45041A4703D7A9829544199680F821ED45041035D76D497295441D2C9DEF01AD4504189B9ECA496295441C2955BD118D450415B5B69C295295441CC8F208617D45041885B5E38952954418F36424816D450419721D027942954417C7B586E14D45041BC1CDF7F92295441FCE462BC13D45041AC0110E791295441333333C311D450417B14AEE79029544152B81E9510D45041D7A3702D94295441F6285C1F0BD450415C8FC2E592295441CDCCCCDC01D45041B81E858B94295441CDCCCC8CFDD350418FC2F5B8A0295441D7A3705DF9D3504133333363A32954415C8FC255F7D3504185EB5168AD295441C3F5281CF9D350411F85EB11B02954418FC2F518F8D35041333333A3B12954419E389BD8F4D35041578F0913B12954411D3A3124F4D35041238CA395B22954419F2BE725F4D3504134713061B6295441878CD909F4D35041764152B8B82954415230044AF3D350417BA7E8D6BB29544154C8DC2AEFD35041EBFE167DC129544117CF5B18EED35041CC70FB0DC32954419A999949EBD35041B81E85ABC6295441C3F5281CEAD350410AD7A320C629544114AE4771E9D350413D0AD743C6295441EC51B8AEE5D35041713D0A97CA2954419A9999F9DFD350418FC2F548CD295441295C8F22DED350415C8FC2E5CE2954415C8FC265D9D3504114AE4751D22954411F85EB51D8D35041000000E0D42954417E5F3E5ECDD35041001162A7D129544184C81066C9D35041E2ADB354D0295441D8F0E2DAC5D35041542A0BE8CE29544107860B60C3D35041398AE4FFCD2954411EC655D1BDD35041FBADA1F7CB295441717D4105BBD3504171AC47ECCA29544118C3A3EAB4D35041B3C835D4C7295441813C182EA0D35041DE8E97D6BD295441A040A5EE9CD350418FAF024CBC295441A8581E0E98D35041D7A8820CBA295441426C8EA695D35041C1FBD71CB92954415BA178E592D350416553520AB82954415F22DDF38FD35041BC53E8E4B6295441C016FBB089D35041CED5D474B42954419001FE8987D3504159604E9EB32954415E85972C84D35041D59FA34AB2295441BC0D1A4281D35041D11881F9B0295441A2CE431B7ED350410AB3FB74AF295441063DCEBB7BD35041DDC46623AE29544186F1BE8474D350415A25A902AB29544185EB512873D3504148E17A84AA295441CBF70DBC6FD350417D40338FAE295441333333F36CD350418FC2F5D8B12954417B14AE9765D350415C8FC245B5295441F6285CCF5AD35041AE47E12AAE2954413D0AD7C357D3504100000090AF295441B81E85AB4DD35041AE47E1AAA92954410000007048D35041A4703D8AB0295441D80DF02F46D350415E1ECC41B7295441EA57803B44D350419C096A48BD2954419D07025A43D35041AED8FBF9BF295441EE796A1C42D350413F025FFEC72954418FC2F5C83FD35041A4703D3AD12954410000007037D35041EC51B8DECF2954411A9220E733D35041A069C8D4CB295441510608EE30D35041CCDA1464C8295441E77CBD152FD350417C8209BCC5295441EA36E51A2DD350414F553DE2C22954418E2913E429D3504184497941BE2954418840885028D350410B64FD3FBC2954411D08417525D35041FC9644DFB82954413225184123D35041C2C62297B72954410FC0D18C1FD3504166BEAEB6BA2954410D39DEBC1CD3504184529B59C12954413473DFF21AD3504175976962C529544169182B4913D3504192C65D7DD0295441F1C759B010D35041FF0E314ED4295441A35725010FD35041AB249907D8295441E5623A320DD350415FA852E4DB295441052312D909D35041B16DD4BFE02954419A3A6D9B09D35041EEDC3C34E32954411482DCA709D35041F5100E7CE52954411739A6B10CD350419954AA27E8295441E455AB6610D35041CDC179B6EB2954414F243CD913D35041F61364C6EF295441D814D95514D350416308D9B3F0295441390ED37417D35041F8043950F22954418906AB141BD35041C401D3D2F329544123FDB2821FD3504190FE6C55F5295441DEF82A8621D3504148FD10F0F529544178EF32F425D35041ECFDBEA2F5295441A6E5C6952AD3504134FF1A08F5295441ABDF6E672DD35041A1FF8ED4F42954410CD9688630D350410F0003A1F42954419E1CF12E3BD3504196F0C11DF0295441A00F3B643DD35041AA6E5856EF29544163DD51663FD35041A213159EEE295441243E0D0D41D3504175649006EE295441161711ED43D35041ADBDC1FEEC295441980951D845D350419C0DAE4EEC295441D8093F9348D350416DC3193AEB295441361250334AD35041D7E15487EB295441357A71FD4AD3504160F3C252EB2954413150DDB84DD3504156B2B47DEA295441FD5F9B184FD35041FA1F8F12EA2954415975859851D350412555A14FE9295441D421FF2E53D3504123722BD4E82954419B92E79754D35041B83B30A1E82954412332D06D59D3504158C752F2E7295441F2668DDA5BD35041DB82A39AE72954413859603D5FD350414EAAB626E72954413556AB7461D350410ECEDF16E7295441E382CAAE65D35041DEEFB8E6E62954413120BFF068D350416B146C15E72954417EBC8AAC69D3504141CF7E46E7295441AB5375966BD350417C2E84C6E72954419F84DB746DD35041081A8743E8295441E4A0068F6FD35041955528D0E82954411238F17871D35041CFB42D50E92954410ED6F05F75D35041EAD7F3B2E9295441E85B01817BD35041DB1C1986EA295441295C8F727DD3504148E17AD4EA2954419A99997982D350415C8FC245EC295441DF287E9583D35041E10C9B96EE295441AE47E17A91D35041713D0AE7F129544103614D4C93D35041E6EF1D07F32954419E679EC396D35041532C542CF52954413BAFE85FA1D3504154989B34FB2954418F0114BCA5D350416F461944FD295441C2607B29A9D35041B6807338FF29544170383E16ADD35041F8736578012A5441FF7A4BFBB2D35041DE810B60042A5441B81E851BB4D35041E17A14EE042A544133333373BAD350411F85EBC1012A5441333333C3BED3504185EB5168032A54411F85EB61BED35041EC51B87E092A5441713D0A47C8D350413D0AD7330F2A5441A4703D7AC9D350418FC2F5080D2A544166666626D3D35041333333B30A2A544148E17A34DDD3504185EB5168032A5441666666B6DDD35041F6285C4F052A5441F6285CCFDBD35041C3F528BC082A5441ABC435F6DED35041197535C0062A5441887CF649E0D350415A6651EA052A54410E74A8D3E1D35041769EC915052A5441DEAB0F6BE3D35041B1AC26C8042A5441713D0A37E4D3504114AE47A1042A5441064DA37CE6D35041A8CB13FA022A54419A999939E7D3504148E17A14FE29544148E17A04EAD35041295C8F92FD295441713D0AC7EAD35041A4703D9AFF295441D7A370BDF0D35041C3F528CCFB295441B81E85DBF8D3504166666646FA295441333333E3FAD35041C3F528ECFB29544148E17AE403D45041295C8F42F929544148E17AE403D4504185EB5178F6295441B81E850B05D4504185EB5188F6295441D7A3704D06D45041D7A370FDF7295441000000400BD450410AD7A370F4295441F6285C0FEDD35041F6285CFFD5295441F6285C3FF1D35041F6285CAFD129544185EB51880DD450410AD7A340F029544136F6242814D45041F30DBD15EE295441E17A145E13D45041666666C6F129544108000000F6285C1F36D45041CDCCCC0CA62954411B5E2CFE36D450413447DF0EA4295441A4703DFA45D45041E17A14BEAA2954411F85EB414AD4504114AE47C1A6295441AE47E18A5BD4504133333323AC295441295C8F4259D450419A999919B22954410AD7A3A047D4504185EB5168AD295441F6285C1F36D45041CDCCCC0CA6295441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>820470 - 3359118
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 9 </desc>
+<a>
+010600000001000000010300000004000000AF00000085EB516847D45041D7A3700D8429544148E17A0445D450418FC2F5D883295441333333C338D450410AD7A3D082295441EC51B83E36D4504152B81ED581295441000000802ED45041AE47E18A80295441B81E850B27D45041000000A07F295441CDCCCC9C1FD450415C8FC2A57D2954418FC2F5081BD450418FC2F5C87C295441D7A3708D1BD4504114AE475179295441F6285C9F13D4504152B81E35772954415C8FC2A511D45041EC51B8AE762954415C8FC2C50CD4504185EB517875295441CDCCCCAC0ED45041295C8F4278295441000000E013D45041000000F07B2954413D0AD73319D450419A9999C982295441F6285C3F1CD450419A9999698B29544114AE47B11FD450417B14AED78C295441D7A3700D20D450417B14AE178F295441333333B321D45041A4703DDA8F295441000000B020D45041A4703D7A98295441E17A14FE1BD4504152B81E1597295441D7A3706D17D45041E17A142E95295441CDCCCCCC13D45041F6285CEF91295441333333C311D450417B14AEE79029544152B81E9510D45041D7A3702D94295441F6285C1F0BD450415C8FC2E592295441CDCCCCDC01D45041B81E858B94295441CDCCCC8CFDD350418FC2F5B8A0295441D7A3705DF9D3504133333363A32954415C8FC255F7D3504185EB5168AD295441C3F5281CF9D350411F85EB11B02954418FC2F518F8D35041333333A3B1295441F6285C8FF6D350410AD7A320B82954410AD7A3A0F1D350415C8FC235C22954419A999969EBD3504114AE4701CE295441D7A3703DE8D350411F85EB21CE29544166666636E6D35041C3F528CCD029544166666666D9D35041D7A3707DD5295441E17A147ECED350410AD7A310D2295441C3F5282CBBD3504100000000CB29544185EB5148B0D35041AE47E17AC52954415C8FC2D598D35041A4703D5ABA29544148E17A8487D35041C3F5289CB32954415C8FC2D584D35041713D0A97B2295441EC51B8FE7ED350413D0AD7F3AF295441A4703DCA7BD35041A4703D2AAE295441EC51B81E77D350413D0AD7F3AB29544185EB512873D3504148E17A84AA295441333333F36CD350418FC2F5D8B12954417B14AE9765D350415C8FC245B5295441F6285CCF5AD35041AE47E12AAE2954413D0AD7C357D3504100000090AF295441B81E85AB4DD35041AE47E1AAA92954410000007048D35041A4703D8AB02954410AD7A3C047D3504114AE4761B229544152B81EC546D3504114AE4771B5295441333333D345D35041295C8F62B829544148E17A1445D35041E17A14DEBA295441C3F5283C44D3504166666646BD2954419A99994943D35041C3F5282CC029544185EB511842D350419A999919C82954418FC2F5C83FD35041A4703D3AD12954410000007037D35041EC51B8DECF2954413333331331D350419A999999C8295441713D0A5729D3504166666676BD2954413333336323D35041B81E857BB729544114AE47A11FD3504166666686BA2954417B14AE271BD350415C8FC215C5295441B81E859B15D3504133333323CD295441666666C610D35041D7A3701DD4295441000000600DD350411F85EBA1DB295441C3F528CC09D35041295C8FD2E02954410AD7A37009D35041B81E854BE529544185EB51580FD35041C3F5287CEA295441CDCCCCFC13D350411F85EBE1EF295441D7A370DD1AD350413D0AD703F3295441713D0A8722D3504148E17AD4F5295441713D0A772DD35041AE47E18AF4295441EC51B8AE30D35041AE47E18AF4295441B81E85EB38D350410AD7A3F0F0295441CDCCCC5C48D350417B14AE67EB295441B81E854B4AD350418FC2F588EB295441CDCCCC2C53D3504148E17AD4E82954413D0AD7035FD3504185EB5128E7295441CDCCCC3C68D35041666666E6E62954413333339371D35041713D0A57E9295441B81E859B77D350418FC2F5E8E9295441295C8F727DD3504148E17AD4EA29544114AE470182D35041F6285C3FE7295441295C8F328FD350418FC2F508D0295441B81E854B8DD3504114AE4701CE295441D7A370CD8DD35041D7A370FDCC295441F6285C9F92D3504152B81E05CF2954419A99997982D350415C8FC245EC2954416666666683D35041AE47E19AEE295441EC51B8FE89D350410AD7A320F0295441AE47E17A91D35041713D0AE7F1295441EC51B8CE96D3504133333333F52954410AD7A3F09FD35041713D0A87FA295441AE47E1EAA6D35041333333D3FD295441C3F5289CABD35041E17A14BE002A5441B81E851BB4D35041E17A14EE042A544133333373BAD350411F85EBC1012A5441333333C3BED3504185EB5168032A54411F85EB61BED35041EC51B87E092A5441713D0A47C8D350413D0AD7330F2A5441A4703D7AC9D350418FC2F5080D2A544166666626D3D35041333333B30A2A5441295C8F62D8D3504148E17AB4062A544148E17A34DDD3504185EB5168032A5441666666B6DDD35041F6285C4F052A5441F6285CCFDBD35041C3F528BC082A544133333383E1D3504152B81E25052A5441713D0A37E4D3504114AE47A1042A54417B14AE97E6D35041666666E6022A54419A999939E7D3504148E17A14FE29544148E17A04EAD35041295C8F92FD295441713D0AC7EAD35041A4703D9AFF295441D7A370BDF0D35041C3F528CCFB295441B81E85DBF8D3504166666646FA295441333333E3FAD35041C3F528ECFB29544148E17AE403D45041295C8F42F929544148E17AE403D4504185EB5178F6295441B81E850B05D4504185EB5188F6295441D7A3704D06D45041D7A370FDF7295441000000400BD450410AD7A370F429544114AE4711F6D3504114AE4721DF295441F6285C0FEDD35041F6285CFFD5295441F6285C3FF1D35041F6285CAFD12954418FC2F518F8D350418FC2F588D829544185EB51880DD450410AD7A340F0295441000000E013D450419A999939EE295441E17A145E13D45041666666C6F1295441333333D317D450419A999929F32954418FC2F5D81CD4504148E17AF4D42954418FC2F54821D450413D0AD753BA2954410000000025D450418FC2F5B8A029544148E17AC428D450417B14AEA7A22954416666661625D450419A999979BB295441EC51B84E26D450417B14AED7BB2954415C8FC2752BD4504148E17A64BD2954413D0AD7C32BD45041AE47E17ABD29544114AE471133D45041D7A3708DBF295441295C8F823BD45041295C8FF2C12954415C8FC2A541D4504148E17AB4C3295441A4703D1A49D45041713D0AD7C5295441A4703D0A50D45041F6285C4FC8295441A4703D0A57D45041AE47E1BACA295441666666265ED45041295C8F42CD29544114AE47F15ED45041AE47E18ACD295441A4703D3A6ED450415C8FC285D32954417B14AEB77AD45041F6285CAFD4295441000000D088D45041AE47E1AAD52954410000009095D45041E17A148ED6295441CDCCCC3C9BD450413D0AD713CD2954418FC2F508ACD4504166666696CC295441713D0A17B3D450411F85EBA1C0295441713D0AB7B3D45041295C8F92BF2954417B14AE27B8D45041B81E850BB8295441EC51B88EBED450410AD7A330AD2954410AD7A350C0D450418FC2F538AA295441F6285C2FBDD45041C3F5280CA9295441295C8F42A1D4504152B81EF5A0295441333333D382D45041333333D3952954419A99995981D4504152B81E3596295441B81E85DB78D45041713D0A4794295441A4703D5A78D45041AE47E1AA91295441EC51B85E71D45041B81E85BB8F295441B81E85FB6AD450417B14AEB78C2954415C8FC23565D45041D7A3703D8A2954415C8FC2D55BD45041295C8FF2872954410AD7A3F059D4504148E17A5487295441B81E852B58D450417B14AEC787295441A4703D5A53D45041666666568729544185EB516847D45041D7A3700D84295441050000003D0AD7D375D350418FC2F588D8295441E17A14FE6FD35041E17A14EED9295441AE47E11A6FD350411F85EBC1D6295441295C8F7275D35041E17A149ED52954413D0AD7D375D350418FC2F588D829544108000000295C8F0237D450415C8FC225A4295441A4703DFA45D45041E17A14BEAA2954411F85EB414AD4504114AE47C1A6295441AE47E18A5BD4504133333323AC295441295C8F4259D450419A999919B22954410AD7A3A047D4504185EB5168AD295441F6285C1F36D45041CDCCCC0CA6295441295C8F0237D450415C8FC225A4295441050000008FC2F5F890D3504166666626BE2954411F85EB118FD35041C3F528ACBF2954413D0AD7438BD35041EC51B81EBC295441666666068CD35041A4703DDABA2954418FC2F5F890D3504166666626BE295441
+</a>
+
+<b>
+010600000001000000010300000002000000F4000000E17A145E13D45041666666C6F12954411F85EB3118D4504148E17A44F3295441C735B84A21D450410A2F4154BA29544135A9399025D4504187ACF42EBB295441288F2C3041D450414F0ACF92C329544169D257F94AD4504120329E81C62954418DAA54AA50D4504193A5B486C82954411FEEF42860D450418A7CD104CE29544158AF2A2B69D450418C94158BD1295441996296B46ED4504173BD2591D3295441E66F84CC7FD45041891D090AD5295441000000D088D45041AE47E1AAD5295441295C8F9284D45041CDCCCCBCEF2954419A9999899AD45041C3F5284CF329544185EB51289FD45041EC51B8EED72954410000009095D45041E17A148ED6295441CDCCCC3C9BD450413D0AD713CD2954418FC2F508ACD4504166666696CC295441713D0AB7B3D45041295C8F92BF2954417B14AE27B8D45041B81E850BB8295441EC51B88EBED450410AD7A330AD2954410AD7A350C0D450418FC2F538AA295441781C1BEBBBD450410DDC38AEA829544159A29CFCB8D4504124F1CCD4A72954414A9D5F51B6D450411600DD0EA729544117929EB9B3D450411F19924EA62954419CB2D714B0D45041BE4A5740A5295441A5F349CBA8D45041FBADE123A32954411D480CDBA4D45041856A7468A2295441D0C615059ED45041687A38B3A02954410F55C72D99D450414500EBB49E2954414DE3785694D45041F906B76D9C295441BCF5A9128ED45041D78C696F9A2954417E06A86088D45041DE9102BA98295441BD94598983D450413F9A01E1952954418AD247FC80D450419BA0406C9429544191581B157BD450419BCAFE6C922954415458E62273D450419E24D43890295441D6C8C04671D450411B0D35B08F295441E13880576AD4504114DC48718C295441153BFE4565D450417F3668448A295441821906F15ED45041B94C07B588295441C5E588DE5AD45041AD78BF3388295441730FC41D5AD4504104422F63872954411C6FFEF557D450414C9D97D18729544117D6FB2356D450414490F597872954415FE4DF5551D4504119E464C88629544195EDE39A49D450416C1927A884295441F78105E846D4504103716F02842954412D112F383CD45041E378331B8329544169426DEE37D45041E0A0E9D28229544157426E5B36D4504189A95CD781295441000000802ED45041AE47E18A802954418909709027D45041B3C05BB07F295441C0917EEB24D45041F981410F7F2954415B6A286221D45041C985611E7E295441167F71B51ED45041E6DA2A7A7D2954414D8372F51BD450417BF284F57C2954418FC2F5081BD450418FC2F5C87C295441D7A3708D1BD4504114AE475179295441F6285C9F13D4504152B81E35772954415C8FC2C50CD4504185EB517875295441443A02580ED4504163DB36C677295441F3ED7E220FD4504138BCCB957829544151087F7211D45041932177387A29544182E17C2212D450418BBBEDB47A295441A49F360714D4504188796B227C2954418890274515D4504183FF38BB7D2954415E5303BC16D45041E968359D7F295441FBC9D43418D45041A2E6B681812954413D0AD73319D450419A9999C9822954415FAC5DFA19D45041B755EDFB84295441246E62651AD4504176FC0E2B862954412E8F692E1CD45041C77598398B295441DD46190720D45041D79F68C28C295441BFE838E71FD4504127C3D1288E295441AEB9643520D45041D3581C2A8F295441333333B321D45041A4703DDA8F295441000000B020D45041A4703D7A9829544199680F821ED45041035D76D497295441D2C9DEF01AD4504189B9ECA496295441C2955BD118D450415B5B69C295295441CC8F208617D45041885B5E38952954418F36424816D450419721D027942954417C7B586E14D45041BC1CDF7F92295441FCE462BC13D45041AC0110E791295441333333C311D450417B14AEE79029544152B81E9510D45041D7A3702D94295441F6285C1F0BD450415C8FC2E592295441CDCCCCDC01D45041B81E858B94295441CDCCCC8CFDD350418FC2F5B8A0295441D7A3705DF9D3504133333363A32954415C8FC255F7D3504185EB5168AD295441C3F5281CF9D350411F85EB11B02954418FC2F518F8D35041333333A3B12954419E389BD8F4D35041578F0913B12954411D3A3124F4D35041238CA395B22954419F2BE725F4D3504134713061B6295441878CD909F4D35041764152B8B82954415230044AF3D350417BA7E8D6BB29544154C8DC2AEFD35041EBFE167DC129544117CF5B18EED35041CC70FB0DC32954419A999949EBD35041B81E85ABC6295441C3F5281CEAD350410AD7A320C629544114AE4771E9D350413D0AD743C6295441EC51B8AEE5D35041713D0A97CA2954419A9999F9DFD350418FC2F548CD295441295C8F22DED350415C8FC2E5CE2954415C8FC265D9D3504114AE4751D22954411F85EB51D8D35041000000E0D42954417E5F3E5ECDD35041001162A7D129544184C81066C9D35041E2ADB354D0295441D8F0E2DAC5D35041542A0BE8CE29544107860B60C3D35041398AE4FFCD2954411EC655D1BDD35041FBADA1F7CB295441717D4105BBD3504171AC47ECCA29544118C3A3EAB4D35041B3C835D4C7295441813C182EA0D35041DE8E97D6BD295441A040A5EE9CD350418FAF024CBC295441A8581E0E98D35041D7A8820CBA295441426C8EA695D35041C1FBD71CB92954415BA178E592D350416553520AB82954415F22DDF38FD35041BC53E8E4B6295441C016FBB089D35041CED5D474B42954419001FE8987D3504159604E9EB32954415E85972C84D35041D59FA34AB2295441BC0D1A4281D35041D11881F9B0295441A2CE431B7ED350410AB3FB74AF295441063DCEBB7BD35041DDC46623AE29544186F1BE8474D350415A25A902AB29544185EB512873D3504148E17A84AA295441CBF70DBC6FD350417D40338FAE295441333333F36CD350418FC2F5D8B12954417B14AE9765D350415C8FC245B5295441F6285CCF5AD35041AE47E12AAE2954413D0AD7C357D3504100000090AF295441B81E85AB4DD35041AE47E1AAA92954410000007048D35041A4703D8AB0295441D80DF02F46D350415E1ECC41B7295441EA57803B44D350419C096A48BD2954419D07025A43D35041AED8FBF9BF295441EE796A1C42D350413F025FFEC72954418FC2F5C83FD35041A4703D3AD12954410000007037D35041EC51B8DECF2954411A9220E733D35041A069C8D4CB295441510608EE30D35041CCDA1464C8295441E77CBD152FD350417C8209BCC5295441EA36E51A2DD350414F553DE2C22954418E2913E429D3504184497941BE2954418840885028D350410B64FD3FBC2954411D08417525D35041FC9644DFB82954413225184123D35041C2C62297B72954410FC0D18C1FD3504166BEAEB6BA2954410D39DEBC1CD3504184529B59C12954413473DFF21AD3504175976962C529544169182B4913D3504192C65D7DD0295441F1C759B010D35041FF0E314ED4295441A35725010FD35041AB249907D8295441E5623A320DD350415FA852E4DB295441052312D909D35041B16DD4BFE02954419A3A6D9B09D35041EEDC3C34E32954411482DCA709D35041F5100E7CE52954411739A6B10CD350419954AA27E8295441E455AB6610D35041CDC179B6EB2954414F243CD913D35041F61364C6EF295441D814D95514D350416308D9B3F0295441390ED37417D35041F8043950F22954418906AB141BD35041C401D3D2F329544123FDB2821FD3504190FE6C55F5295441DEF82A8621D3504148FD10F0F529544178EF32F425D35041ECFDBEA2F5295441A6E5C6952AD3504134FF1A08F5295441ABDF6E672DD35041A1FF8ED4F42954410CD9688630D350410F0003A1F42954419E1CF12E3BD3504196F0C11DF0295441A00F3B643DD35041AA6E5856EF29544163DD51663FD35041A213159EEE295441243E0D0D41D3504175649006EE295441161711ED43D35041ADBDC1FEEC295441980951D845D350419C0DAE4EEC295441D8093F9348D350416DC3193AEB295441361250334AD35041D7E15487EB295441357A71FD4AD3504160F3C252EB2954413150DDB84DD3504156B2B47DEA295441FD5F9B184FD35041FA1F8F12EA2954415975859851D350412555A14FE9295441D421FF2E53D3504123722BD4E82954419B92E79754D35041B83B30A1E82954412332D06D59D3504158C752F2E7295441F2668DDA5BD35041DB82A39AE72954413859603D5FD350414EAAB626E72954413556AB7461D350410ECEDF16E7295441E382CAAE65D35041DEEFB8E6E62954413120BFF068D350416B146C15E72954417EBC8AAC69D3504141CF7E46E7295441AB5375966BD350417C2E84C6E72954419F84DB746DD35041081A8743E8295441E4A0068F6FD35041955528D0E82954411238F17871D35041CFB42D50E92954410ED6F05F75D35041EAD7F3B2E9295441E85B01817BD35041DB1C1986EA295441295C8F727DD3504148E17AD4EA2954419A99997982D350415C8FC245EC295441DF287E9583D35041E10C9B96EE295441AE47E17A91D35041713D0AE7F129544103614D4C93D35041E6EF1D07F32954419E679EC396D35041532C542CF52954413BAFE85FA1D3504154989B34FB2954418F0114BCA5D350416F461944FD295441C2607B29A9D35041B6807338FF29544170383E16ADD35041F8736578012A5441FF7A4BFBB2D35041DE810B60042A5441B81E851BB4D35041E17A14EE042A544133333373BAD350411F85EBC1012A5441333333C3BED3504185EB5168032A54411F85EB61BED35041EC51B87E092A5441713D0A47C8D350413D0AD7330F2A5441A4703D7AC9D350418FC2F5080D2A544166666626D3D35041333333B30A2A544148E17A34DDD3504185EB5168032A5441666666B6DDD35041F6285C4F052A5441F6285CCFDBD35041C3F528BC082A5441ABC435F6DED35041197535C0062A5441887CF649E0D350415A6651EA052A54410E74A8D3E1D35041769EC915052A5441DEAB0F6BE3D35041B1AC26C8042A5441713D0A37E4D3504114AE47A1042A5441064DA37CE6D35041A8CB13FA022A54419A999939E7D3504148E17A14FE29544148E17A04EAD35041295C8F92FD295441713D0AC7EAD35041A4703D9AFF295441D7A370BDF0D35041C3F528CCFB295441B81E85DBF8D3504166666646FA295441333333E3FAD35041C3F528ECFB29544148E17AE403D45041295C8F42F929544148E17AE403D4504185EB5178F6295441B81E850B05D4504185EB5188F6295441D7A3704D06D45041D7A370FDF7295441000000400BD450410AD7A370F4295441F6285C0FEDD35041F6285CFFD5295441F6285C3FF1D35041F6285CAFD129544185EB51880DD450410AD7A340F029544136F6242814D45041F30DBD15EE295441E17A145E13D45041666666C6F129544108000000F6285C1F36D45041CDCCCC0CA62954411B5E2CFE36D450413447DF0EA4295441A4703DFA45D45041E17A14BEAA2954411F85EB414AD4504114AE47C1A6295441AE47E18A5BD4504133333323AC295441295C8F4259D450419A999919B22954410AD7A3A047D4504185EB5168AD295441F6285C1F36D45041CDCCCC0CA6295441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985983 - 3102931
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000001000000010300000001000000DC000000CA1938293B0B51416BAAF954F72155411B30C0B3390B51413B98428BF7215541981D547A360B51417DA1F827F92155419A9999692F0B5141713D0A17FC215541A4703DDA270B5141CDCCCCECFD21554114AE4701250B514133333363FD21554185EB5118230B51419A999969FD2155413D0AD703220B5141F6285CBFFC215541D7A3705D200B5141F6285CEFF921554114AE47F11E0B5141AE47E13AF82155411F85EB011C0B51418FC2F528F6215541A4703D1A160B514152B81EC5F321554100000050120B5141666666B6F0215541713D0AD70D0B514152B81EC5EB2155417B14AEF7000B5141666666960D22554133333353FB0A51413D0AD743102255410E54DC52EF0A51414B7AB9CD152255416BF903D2F00A51414576575B18225541DD53DD0BF50A5141B60794E520225541D74F7B99F70A5141654A1FFF282255414FAEB645F90A51411B910C8B2E225541939ACA97FA0A514163B8E59F312255411F85EB81FC0A5141AE47E1AA3322554166666626FE0A51415C8FC2A53422554114AE4701FF0A514185EB512835225541E17A143E020B5141C3F528FC35225541713D0AB7060B51413333332336225541EC51B8BE0D0B514152B81ED53522554133333343160B51415C8FC235372255418FC2F5F8270B51411F85EBA13B225541666666962C0B5141D7A3703D3C22554183CFB31D360B5141314FA9223D225541713D0AD7460B514148E17A843D22554114AE47A1570B514148E17AC43E225541666666166B0B514185EB51B84122554100000080700B51417B14AEC74122554148E17AF4720B5141EC51B8CE4122554152B81E557D0B51413D0AD74341225541C3F528CC7E0B5141E17A141E4122554148E17A24860B5141295C8F6240225541C367A2298C0B5141A3434F173F22554110E99B728B0B514191FD529339225541B58669AE890B51413741BE4E392255418828D837830B5141F050484B3A225541DF1BAA58770B5141841072CA3B225541536C60BF750B5141DCD0F2903A2255416EFC955F750B5141BC617F7837225541C686A345740B51413EB1674B2F225541C05C8137740B5141C654FBAF2C22554157CCF5AD750B5141461527EB2A2255418A3C16F7740B51410F761321282255418F439866730B5141D59FCA1A272255410F75A436710B5141F6D893DC232255414841600C710B5141CAE6220D222255416EC57826750B5141448464A720225541425A12C7780B51415028F45B21225541DE88884A7C0B5141CFDFB96F21225541706A3AF67D0B5141B133E2DB232255410388E73B7E0B51411C46A82326225541373465027D0B51418160ABC5272255415992BB8D7D0B5141F8A959AD2922554199A82DF2820B5141CCE5320C292255417077E00F870B5141F3E5DD802822554118B75F49880B51412E66DEAF27225541BB964994890B5141C456AA9C25225541556FBB50980B5141333605C7232255410ADD969A980B51412BB6BD02282255419092A4CC9A0B51419E35EB7C272255410C2DC2A29B0B514110B518F726225541C4FBAC729D0B51417919561525225541B7477BA59C0B51413EE5881B24225541BAE0BC169C0B51411630B242222255411B7A35E19B0B51410FAE035820225541AB9349D89B0B5141082C556D1E225541862E9E079D0B51418376473B1C22554170F147B6A00B514176537C161B2255413782EF8BA30B5141568FED7F1B225541111D44BBA40B514162431F4D1C2255413E049E76A50B51416B5E0FA91D2255418DB76191A50B5141232DFA781F2255419F9D1641A50B5141097C807521225541B31C0D62A40B51419E7E01E623225541B84E9044A30B5141069A289B252255410319E7E5A00B51410301E72926225541DFFC517E9E0B5141768014A4252255417442E0C8980B51416CB53C712A22554150F27F4B990B5141928445782D2255414C1193E69C0B5141AD147B182D225541235FEE8DA40B51410CE5DBC42B225541EC0DE1DFA80B5141430547052B225541395C3DE5AE0B5141A2D5A7B129225541183BD0E8B20B514100F6BD6628225541DA0A85C2B30B51412296D3EC27225541418935D6B30B51419776379D27225541B88C2A81B40B5141473617D426225541CC9C72B3B40B51414E647BE429225541DDBACFB9B30B5141B1F5677D29225541C1ABF18FB00B51417675674E2A225541AEACF34BAD0B514139451C282B225541AA7D00CBA90B51410325B1E72B225541D9C0DC7F9E0B51417544C5E02D225541F3D169969A0B51413C740FA92E2255415AB2AA28990B514128F4B9EE2E225541682220FD980B5141A7E3D8AA302255412DA21FCE990B5141DE0195FE362255411922CA139A0B5141F5B0DD393A22554116A5D0768F0B51418DD09CA73B22554111453B888F0B5141F27F3BCC3D2255411D970697900B51414ACE9D813E2255413D0AD773A50B5141A4703D6A3B225541E17A14EEA90B514152B81E853A22554100000090B40B51415C8FC2653822554148E17A64B60B514152B81E053822554177035BBBB70B5141212D369537225541CDCCCCCCB70B5141A4703DBA3722554148E17A14CB0B5141D7A370BD33225541AE32B05FD10B51419D2395853222554155CB672DD80B51416B9693B431225541AC40869ADB0B51413C407139312255413CC55E5ADB0B51414F18CF5C252255414A99D8CAE40B514138B57FC62322554118727CFFF40B51416F67CD042122554145381B2CF80B51419CD0924522225541ED702BD7FB0B5141381E744527225541ED702BD7FB0B5141CDB12F802C225541F9DC302FFD0B5141C16435382F225541896109EFFC0B51411B37C0B931225541735B9344FD0B51412797D47A33225541CDCCCC9C010C51413D0AD723332255410AB33739020C5141A3DD7D4626225541CDCCCC4C040C5141713D0A571322554166666616040C5141C3F528DC11225541C3F5288C030C5141A4703DAA10225541E17A149E010C5141333333730E2255417B14AE87010C514148E17AD40B2255411F85EBD1020C5141C3F5282C06225541713D0AD7060C51413D0AD74307225541B1E8A04A080C51411C30738A02225541C758FB770B0C5141DA5BE784FE215541809B7A960D0C514184DC6836FA215541F6285C0F0A0C5141D7A3705DF82155410AD7A3F0040C514148E17A84F5215541000000E0FD0B5141F6285CFFF12155415C8FC255F60B51413D0AD733EE21554100000090F30B514100000000F02155418FC2F538EB0B514148E17A24F721554166666666E90B51411F85EB51F52155410AD7A380E80B51419A999959F1215541A4703D9AE70B5141AE47E11AEC2155419BD06964E60B51414079C2FBE5215541346D11A2D70B5141717535B9E9215541A37769F3C90B5141B62956D3EB215541FED7493CC40B5141E210B08EEC215541E21FBB99BF0B5141B3901462EC215541BD032632BD0B5141355DB51AEC215541FAFC5B72B90B5141F2A4C13BEB21554116E412B6B60B5141F01F6265EA215541773CD45DB40B514142421800E92155410FBEFF95B10B5141878D40B6E62155412EE4845BB00B51418AEAAF0EE62155414637F0C0AF0B5141F4725D52E8215541E4998780AF0B51411D9C52BEEB2155410D420180AF0B51416F486CABF0215541DB2824E2AF0B5141B0B5D126F7215541ACA888B5AF0B5141045202BBF9215541A86EE259AF0B51415E8C5376FE215541A86EE259AF0B5141EEA36CCD042255416C4238D9AF0B5141A9AF20A809225541E8DC55AFB00B5141859AA0DF0D225541CF2BDCABB20B5141EEBCDC3316225541A9C630DBB30B5141237610E21B225541751412CCB40B5141FFC74EA820225541DFC87AF2B50B51414035B423272255416D494D78B60B5141309F2A7C2A22554182D0F88BB60B514142E6846F312255413152E8FFB60B5141CDACE21B35225541D2CAD6C3B70B51413303661737225541CFB3A43BB60B51415B23F67B37225541F0243EB4B50B5141A531F99B34225541D037F09DB50B514108FF674C31225541A4703D7AB50B5141E17A14FE2B225541AE47E1EAB40B5141AE47E18A26225541A4703D6AB30B514152B81E651E225541F6285C2FB20B51411F85EBB118225541E17A144EB00B514166666626112255415C8FC225AF0B5141295C8F820C22554154C30158AE0B5141B7DD940208225541AEAC47FDAD0B51415EA4861B03225541740DFD2CAE0B5141610923ABFD2155410BC75356AE0B5141F5AAB298FA2155415BAAB89CAE0B5141EA651C00F621554195201A2EAE0B514123629992EC215541A9306260AE0B5141DD49E6E5E7215541862EE646AF0B51419AC9DB2CE521554185EB5168AC0B5141CDCCCC3CE4215541713D0A57A80B5141CDCCCCDCE22155417B14AEC7A50B5141E17A140EE2215541B81E85EBA30B5141B81E85EBE1215541A2CC6B549D0B5141017C56EFE1215541F6285CDF980B51411F85EBF1E1215541333333738C0B5141000000D0E12155417B14AE87830B5141D7A370DDE1215541EC51B86E7F0B514152B81E75E2215541000000807B0B5141713D0A67E3215541B81E851B770B514100000020E521554148E17A94720B5141F6285CFFE62155417B14AE77760B514152B81EA5EF21554148E17A24710B51417B14AE17F12155417B14AE476C0B5141295C8F42F22155418ED036DE690B5141BAF9B47EF221554114AE47B1640B514185EB51E8F2215541B81E85DB5E0B5141B81E853BF32155419A9999995B0B5141F6285CCFF32155419A999919540B5141F6285CFFF42155411F26D1414E0B5141FA8E8CEEF521554141C28F02480B5141DE71856FF6215541D7A3707D440B51419A9999E9F6215541830CAD3D410B5141AEDAA921F721554152B81EC53C0B51413D0AD783F7215541CA1938293B0B51416BAAF954F7215541
+</a>
+
+<b>
+0106000000010000000103000000010000004000000048E17A14CB0B5141D7A370BD33225541AD32B05FD10B51419E2395853222554156CB672DD80B51416B9693B431225541AC40869ADB0B51413F407139312255413DC55E5ADB0B51414C18CF5C252255414999D8CAE40B514137B57FC62322554116727CFFF40B51417267CD042122554140381B2CF80B51419DD0924522225541F2702BD7FB0B5141351E744527225541F2702BD7FB0B5141C9B12F802C225541F7DC302FFD0B5141BC6435382F225541886109EFFC0B51411D37C0B931225541725B9344FD0B51412697D47A33225541CDCCCC9C010C51413D0AD723332255410AB33739020C5141A6DD7D4626225541CDCCCC4C040C5141713D0A571322554166666616040C5141C3F528DC11225541C3F5288C030C5141A4703DAA10225541E17A149E010C5141333333730E2255417B14AE87010C514148E17AD40B2255411F85EBD1020C5141C3F5282C06225541713D0AD7060C51413D0AD74307225541AEE8A04A080C51411930738A02225541C758FB770B0C5141DA5BE784FE2155417D9B7A960D0C514183DC6836FA215541F6285C0F0A0C5141D7A3705DF82155410AD7A3F0040C514148E17A84F5215541000000E0FD0B5141F6285CFFF12155415C8FC255F60B51413D0AD733EE21554100000090F30B514100000000F02155418FC2F538EB0B514148E17A24F721554166666666E90B51411F85EB51F52155410AD7A380E80B51419A999959F1215541A4703D9AE70B5141AE47E11AEC2155419ED06964E60B51414279C2FBE5215541306D11A2D70B51416D7535B9E9215541A87769F3C90B5141B82956D3EB215541FBD7493CC40B5141DF10B08EEC215541E71FBB99BF0B5141B1901462EC215541C0032632BD0B51413A5DB51AEC215541F6FC5B72B90B5141F1A4C13BEB21554113E412B6B60B5141F01F6265EA215541783CD45DB40B514141421800E921554111BEFF95B10B5141848D40B6E62155412BE4845BB00B514189EAAF0EE62155414B37F0C0AF0B5141F8725D52E8215541E8998780AF0B51411A9C52BEEB2155410A420180AF0B514173486CABF0215541DF2824E2AF0B5141B5B5D126F7215541B1A888B5AF0B5141FF5102BBF9215541AA6EE259AF0B51415A8C5376FE215541AA6EE259AF0B5141EDA36CCD04225541674238D9AF0B5141AEAF20A809225541ECDC55AFB00B51418A9AA0DF0D225541D02BDCABB20B5141EFBCDC3316225541A7C630DBB30B5141257610E21B225541751412CCB40B5141FAC74EA820225541DFC87AF2B50B51413C35B423272255416A494D78B60B5141309F2A7C2A22554181D0F88BB60B514144E6846F312255412F52E8FFB60B5141C8ACE21B35225541D2CAD6C3B70B5141340366173722554172B9E827B80B5141C99265A73722554148E17A14CB0B5141D7A370BD33225541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985983 - 3473135
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000001000000010300000001000000DC000000CA1938293B0B51416BAAF954F72155411B30C0B3390B51413B98428BF7215541981D547A360B51417DA1F827F92155419A9999692F0B5141713D0A17FC215541A4703DDA270B5141CDCCCCECFD21554114AE4701250B514133333363FD21554185EB5118230B51419A999969FD2155413D0AD703220B5141F6285CBFFC215541D7A3705D200B5141F6285CEFF921554114AE47F11E0B5141AE47E13AF82155411F85EB011C0B51418FC2F528F6215541A4703D1A160B514152B81EC5F321554100000050120B5141666666B6F0215541713D0AD70D0B514152B81EC5EB2155417B14AEF7000B5141666666960D22554133333353FB0A51413D0AD743102255410E54DC52EF0A51414B7AB9CD152255416BF903D2F00A51414576575B18225541DD53DD0BF50A5141B60794E520225541D74F7B99F70A5141654A1FFF282255414FAEB645F90A51411B910C8B2E225541939ACA97FA0A514163B8E59F312255411F85EB81FC0A5141AE47E1AA3322554166666626FE0A51415C8FC2A53422554114AE4701FF0A514185EB512835225541E17A143E020B5141C3F528FC35225541713D0AB7060B51413333332336225541EC51B8BE0D0B514152B81ED53522554133333343160B51415C8FC235372255418FC2F5F8270B51411F85EBA13B225541666666962C0B5141D7A3703D3C22554183CFB31D360B5141314FA9223D225541713D0AD7460B514148E17A843D22554114AE47A1570B514148E17AC43E225541666666166B0B514185EB51B84122554100000080700B51417B14AEC74122554148E17AF4720B5141EC51B8CE4122554152B81E557D0B51413D0AD74341225541C3F528CC7E0B5141E17A141E4122554148E17A24860B5141295C8F6240225541C367A2298C0B5141A3434F173F22554110E99B728B0B514191FD529339225541B58669AE890B51413741BE4E392255418828D837830B5141F050484B3A225541DF1BAA58770B5141841072CA3B225541536C60BF750B5141DCD0F2903A2255416EFC955F750B5141BC617F7837225541C686A345740B51413EB1674B2F225541C05C8137740B5141C654FBAF2C22554157CCF5AD750B5141461527EB2A2255418A3C16F7740B51410F761321282255418F439866730B5141D59FCA1A272255410F75A436710B5141F6D893DC232255414841600C710B5141CAE6220D222255416EC57826750B5141448464A720225541425A12C7780B51415028F45B21225541DE88884A7C0B5141CFDFB96F21225541706A3AF67D0B5141B133E2DB232255410388E73B7E0B51411C46A82326225541373465027D0B51418160ABC5272255415992BB8D7D0B5141F8A959AD2922554199A82DF2820B5141CCE5320C292255417077E00F870B5141F3E5DD802822554118B75F49880B51412E66DEAF27225541BB964994890B5141C456AA9C25225541556FBB50980B5141333605C7232255410ADD969A980B51412BB6BD02282255419092A4CC9A0B51419E35EB7C272255410C2DC2A29B0B514110B518F726225541C4FBAC729D0B51417919561525225541B7477BA59C0B51413EE5881B24225541BAE0BC169C0B51411630B242222255411B7A35E19B0B51410FAE035820225541AB9349D89B0B5141082C556D1E225541862E9E079D0B51418376473B1C22554170F147B6A00B514176537C161B2255413782EF8BA30B5141568FED7F1B225541111D44BBA40B514162431F4D1C2255413E049E76A50B51416B5E0FA91D2255418DB76191A50B5141232DFA781F2255419F9D1641A50B5141097C807521225541B31C0D62A40B51419E7E01E623225541B84E9044A30B5141069A289B252255410319E7E5A00B51410301E72926225541DFFC517E9E0B5141768014A4252255417442E0C8980B51416CB53C712A22554150F27F4B990B5141928445782D2255414C1193E69C0B5141AD147B182D225541235FEE8DA40B51410CE5DBC42B225541EC0DE1DFA80B5141430547052B225541395C3DE5AE0B5141A2D5A7B129225541183BD0E8B20B514100F6BD6628225541DA0A85C2B30B51412296D3EC27225541418935D6B30B51419776379D27225541B88C2A81B40B5141473617D426225541CC9C72B3B40B51414E647BE429225541DDBACFB9B30B5141B1F5677D29225541C1ABF18FB00B51417675674E2A225541AEACF34BAD0B514139451C282B225541AA7D00CBA90B51410325B1E72B225541D9C0DC7F9E0B51417544C5E02D225541F3D169969A0B51413C740FA92E2255415AB2AA28990B514128F4B9EE2E225541682220FD980B5141A7E3D8AA302255412DA21FCE990B5141DE0195FE362255411922CA139A0B5141F5B0DD393A22554116A5D0768F0B51418DD09CA73B22554111453B888F0B5141F27F3BCC3D2255411D970697900B51414ACE9D813E2255413D0AD773A50B5141A4703D6A3B225541E17A14EEA90B514152B81E853A22554100000090B40B51415C8FC2653822554148E17A64B60B514152B81E053822554177035BBBB70B5141212D369537225541CDCCCCCCB70B5141A4703DBA3722554148E17A14CB0B5141D7A370BD33225541AE32B05FD10B51419D2395853222554155CB672DD80B51416B9693B431225541AC40869ADB0B51413C407139312255413CC55E5ADB0B51414F18CF5C252255414A99D8CAE40B514138B57FC62322554118727CFFF40B51416F67CD042122554145381B2CF80B51419CD0924522225541ED702BD7FB0B5141381E744527225541ED702BD7FB0B5141CDB12F802C225541F9DC302FFD0B5141C16435382F225541896109EFFC0B51411B37C0B931225541735B9344FD0B51412797D47A33225541CDCCCC9C010C51413D0AD723332255410AB33739020C5141A3DD7D4626225541CDCCCC4C040C5141713D0A571322554166666616040C5141C3F528DC11225541C3F5288C030C5141A4703DAA10225541E17A149E010C5141333333730E2255417B14AE87010C514148E17AD40B2255411F85EBD1020C5141C3F5282C06225541713D0AD7060C51413D0AD74307225541B1E8A04A080C51411C30738A02225541C758FB770B0C5141DA5BE784FE215541809B7A960D0C514184DC6836FA215541F6285C0F0A0C5141D7A3705DF82155410AD7A3F0040C514148E17A84F5215541000000E0FD0B5141F6285CFFF12155415C8FC255F60B51413D0AD733EE21554100000090F30B514100000000F02155418FC2F538EB0B514148E17A24F721554166666666E90B51411F85EB51F52155410AD7A380E80B51419A999959F1215541A4703D9AE70B5141AE47E11AEC2155419BD06964E60B51414079C2FBE5215541346D11A2D70B5141717535B9E9215541A37769F3C90B5141B62956D3EB215541FED7493CC40B5141E210B08EEC215541E21FBB99BF0B5141B3901462EC215541BD032632BD0B5141355DB51AEC215541FAFC5B72B90B5141F2A4C13BEB21554116E412B6B60B5141F01F6265EA215541773CD45DB40B514142421800E92155410FBEFF95B10B5141878D40B6E62155412EE4845BB00B51418AEAAF0EE62155414637F0C0AF0B5141F4725D52E8215541E4998780AF0B51411D9C52BEEB2155410D420180AF0B51416F486CABF0215541DB2824E2AF0B5141B0B5D126F7215541ACA888B5AF0B5141045202BBF9215541A86EE259AF0B51415E8C5376FE215541A86EE259AF0B5141EEA36CCD042255416C4238D9AF0B5141A9AF20A809225541E8DC55AFB00B5141859AA0DF0D225541CF2BDCABB20B5141EEBCDC3316225541A9C630DBB30B5141237610E21B225541751412CCB40B5141FFC74EA820225541DFC87AF2B50B51414035B423272255416D494D78B60B5141309F2A7C2A22554182D0F88BB60B514142E6846F312255413152E8FFB60B5141CDACE21B35225541D2CAD6C3B70B51413303661737225541CFB3A43BB60B51415B23F67B37225541F0243EB4B50B5141A531F99B34225541D037F09DB50B514108FF674C31225541A4703D7AB50B5141E17A14FE2B225541AE47E1EAB40B5141AE47E18A26225541A4703D6AB30B514152B81E651E225541F6285C2FB20B51411F85EBB118225541E17A144EB00B514166666626112255415C8FC225AF0B5141295C8F820C22554154C30158AE0B5141B7DD940208225541AEAC47FDAD0B51415EA4861B03225541740DFD2CAE0B5141610923ABFD2155410BC75356AE0B5141F5AAB298FA2155415BAAB89CAE0B5141EA651C00F621554195201A2EAE0B514123629992EC215541A9306260AE0B5141DD49E6E5E7215541862EE646AF0B51419AC9DB2CE521554185EB5168AC0B5141CDCCCC3CE4215541713D0A57A80B5141CDCCCCDCE22155417B14AEC7A50B5141E17A140EE2215541B81E85EBA30B5141B81E85EBE1215541A2CC6B549D0B5141017C56EFE1215541F6285CDF980B51411F85EBF1E1215541333333738C0B5141000000D0E12155417B14AE87830B5141D7A370DDE1215541EC51B86E7F0B514152B81E75E2215541000000807B0B5141713D0A67E3215541B81E851B770B514100000020E521554148E17A94720B5141F6285CFFE62155417B14AE77760B514152B81EA5EF21554148E17A24710B51417B14AE17F12155417B14AE476C0B5141295C8F42F22155418ED036DE690B5141BAF9B47EF221554114AE47B1640B514185EB51E8F2215541B81E85DB5E0B5141B81E853BF32155419A9999995B0B5141F6285CCFF32155419A999919540B5141F6285CFFF42155411F26D1414E0B5141FA8E8CEEF521554141C28F02480B5141DE71856FF6215541D7A3707D440B51419A9999E9F6215541830CAD3D410B5141AEDAA921F721554152B81EC53C0B51413D0AD783F7215541CA1938293B0B51416BAAF954F7215541
+</a>
+
+<b>
+0106000000010000000103000000010000004000000048E17A14CB0B5141D7A370BD33225541AD32B05FD10B51419E2395853222554156CB672DD80B51416B9693B431225541AC40869ADB0B51413F407139312255413DC55E5ADB0B51414C18CF5C252255414999D8CAE40B514137B57FC62322554116727CFFF40B51417267CD042122554140381B2CF80B51419DD0924522225541F2702BD7FB0B5141351E744527225541F2702BD7FB0B5141C9B12F802C225541F7DC302FFD0B5141BC6435382F225541886109EFFC0B51411D37C0B931225541725B9344FD0B51412697D47A33225541CDCCCC9C010C51413D0AD723332255410AB33739020C5141A6DD7D4626225541CDCCCC4C040C5141713D0A571322554166666616040C5141C3F528DC11225541C3F5288C030C5141A4703DAA10225541E17A149E010C5141333333730E2255417B14AE87010C514148E17AD40B2255411F85EBD1020C5141C3F5282C06225541713D0AD7060C51413D0AD74307225541AEE8A04A080C51411930738A02225541C758FB770B0C5141DA5BE784FE2155417D9B7A960D0C514183DC6836FA215541F6285C0F0A0C5141D7A3705DF82155410AD7A3F0040C514148E17A84F5215541000000E0FD0B5141F6285CFFF12155415C8FC255F60B51413D0AD733EE21554100000090F30B514100000000F02155418FC2F538EB0B514148E17A24F721554166666666E90B51411F85EB51F52155410AD7A380E80B51419A999959F1215541A4703D9AE70B5141AE47E11AEC2155419ED06964E60B51414279C2FBE5215541306D11A2D70B51416D7535B9E9215541A87769F3C90B5141B82956D3EB215541FBD7493CC40B5141DF10B08EEC215541E71FBB99BF0B5141B1901462EC215541C0032632BD0B51413A5DB51AEC215541F6FC5B72B90B5141F1A4C13BEB21554113E412B6B60B5141F01F6265EA215541783CD45DB40B514141421800E921554111BEFF95B10B5141848D40B6E62155412BE4845BB00B514189EAAF0EE62155414B37F0C0AF0B5141F8725D52E8215541E8998780AF0B51411A9C52BEEB2155410A420180AF0B514173486CABF0215541DF2824E2AF0B5141B5B5D126F7215541B1A888B5AF0B5141FF5102BBF9215541AA6EE259AF0B51415A8C5376FE215541AA6EE259AF0B5141EDA36CCD04225541674238D9AF0B5141AEAF20A809225541ECDC55AFB00B51418A9AA0DF0D225541D02BDCABB20B5141EFBCDC3316225541A7C630DBB30B5141257610E21B225541751412CCB40B5141FAC74EA820225541DFC87AF2B50B51413C35B423272255416A494D78B60B5141309F2A7C2A22554181D0F88BB60B514144E6846F312255412F52E8FFB60B5141C8ACE21B35225541D2CAD6C3B70B5141340366173722554172B9E827B80B5141C99265A73722554148E17A14CB0B5141D7A370BD33225541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>974285 - 1477390
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -31 </desc>
+<a>
+0106000000010000000103000000010000000D000000C3F5281C88E05041000000F06B2D554185EB512886E050415C8FC2756A2D5541F6A6167883E0504184924F0B692D5541666666B680E0504152B81E15682D55410AD7A3807EE05041000000D0672D5541D231112479E0504176D85CD2682D55418FC2F52873E050411F85EB816A2D554185EB51386FE050413D0AD7E36B2D55414764875B5FE050418A4DF979712D554191E791866BE050419B4FFBCC732D5541391E9B3076E050411B07FEF1762D5541137D9F3F7BE0504169270068792D5541C3F5281C88E05041000000F06B2D5541
+</a>
+
+<b>
+0106000000010000000103000000010000001F00000069968C3688E050418B82B0D76B2D5541A8694C1386E050413FACE7416A2D5541AE9150A983E0504154F63F23692D55414356042783E050412366AFE7682D554197A0E65D82E050410D1D92A4682D554159B45ED380E050417C7FA71E682D5541B58EE56E80E05041BC61620C682D55416D09007C7EE050413CC279D0672D5541B8B258EE7BE05041D20E201B682D55415DBBD14579E05041BFD4CED1682D5541D3D90CF078E0504177C4B0E5682D5541D97F67EF78E050416D4C4BE7682D55411603F2FF75E05041ACD3C4B4692D5541A6FE1C2073E050411F3306856A2D55410C67A5216FE05041320A67EB6B2D55411B58ABFC62E05041588A59F86F2D5541EE01F0AA62E050414A917414702D55417C53FD9A61E05041A20B3381702D5541AA2699D360E05041A1F2CDCE702D55418C4655F55FE0504170E1E830712D5541A4EE80A568E0504107D1B5BD722D554130195EB16AE05041AA1BAD40732D554152E5462A6CE0504152FE74AE732D5541831DFBFA6CE050418DA836E9732D55412C50C24072E05041AE8D3765752D5541DE4AF03C76E0504111D90AF1762D55413252C3EB78E050418637850C782D554156BD13287BE05041CDACFF5A792D5541564DD00D7FE05041D99081CF752D5541FBCC673185E050413411EAAB6F2D554169968C3688E050418B82B0D76B2D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>974285 - 3438677
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -31 </desc>
+<a>
+0106000000010000000103000000010000000D000000C3F5281C88E05041000000F06B2D554185EB512886E050415C8FC2756A2D5541F6A6167883E0504184924F0B692D5541666666B680E0504152B81E15682D55410AD7A3807EE05041000000D0672D5541D231112479E0504176D85CD2682D55418FC2F52873E050411F85EB816A2D554185EB51386FE050413D0AD7E36B2D55414764875B5FE050418A4DF979712D554191E791866BE050419B4FFBCC732D5541391E9B3076E050411B07FEF1762D5541137D9F3F7BE0504169270068792D5541C3F5281C88E05041000000F06B2D5541
+</a>
+
+<b>
+0106000000010000000103000000010000001F00000069968C3688E050418B82B0D76B2D5541A8694C1386E050413FACE7416A2D5541AE9150A983E0504154F63F23692D55414356042783E050412366AFE7682D554197A0E65D82E050410D1D92A4682D554159B45ED380E050417C7FA71E682D5541B58EE56E80E05041BC61620C682D55416D09007C7EE050413CC279D0672D5541B8B258EE7BE05041D20E201B682D55415DBBD14579E05041BFD4CED1682D5541D3D90CF078E0504177C4B0E5682D5541D97F67EF78E050416D4C4BE7682D55411603F2FF75E05041ACD3C4B4692D5541A6FE1C2073E050411F3306856A2D55410C67A5216FE05041320A67EB6B2D55411B58ABFC62E05041588A59F86F2D5541EE01F0AA62E050414A917414702D55417C53FD9A61E05041A20B3381702D5541AA2699D360E05041A1F2CDCE702D55418C4655F55FE0504170E1E830712D5541A4EE80A568E0504107D1B5BD722D554130195EB16AE05041AA1BAD40732D554152E5462A6CE0504152FE74AE732D5541831DFBFA6CE050418DA836E9732D55412C50C24072E05041AE8D3765752D5541DE4AF03C76E0504111D90AF1762D55413252C3EB78E050418637850C782D554156BD13287BE05041CDACFF5A792D5541564DD00D7FE05041D99081CF752D5541FBCC673185E050413411EAAB6F2D554169968C3688E050418B82B0D76B2D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>43979 - 57687
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000001C0000007B14AE470CD9504114AE4791D6FE5441F6285C8F0AD950419A999909D7FE5441966593FE07D95041301E508CD6FE5441387FDE6B07D95041BB3F6E96D6FE5441CBA8A68B02D95041538720E4D6FE5441BA2CAF1BFFD85041091834A1D5FE54417E25C62AFCD85041CF01D768D4FE544182328ABCF8D85041FE8F45ECD2FE5441FE97F14DF5D850418D88987ED3FE54418FC2F578F5D8504166666676D6FE5441E17A14AEF5D85041333333C3DDFE5441000000D0F4D850417B14AEC7DDFE5441713D0A37EFD8504148E17AE4DDFE54411F85EBF1DDD85041713D0AA7D5FE54411F85EBF1D4D85041000000D0D3FE5441914C0198D3D850411267C9D4DDFE5441B81E850BDDD85041000000B0DFFE544133333333E5D8504166666606E2FE5441A4703DEAF0D85041E17A14DEE5FE5441AE47E1FAF7D85041B81E850BE7FE54417B14AEC700D95041B81E854BE7FE5441333333730CD9504185EB5118E6FE54410AD7A3800CD95041713D0A97E5FE5441000000C00CD95041C3F5286CE2FE5441C3F528BC0CD950410AD7A350DFFE544114AE47A10CD95041CDCCCC4CDDFE544148E17A840CD95041713D0A27DBFE54417B14AE470CD9504114AE4791D6FE5441
+</a>
+
+<b>
+0106000000010000000103000000010000001E0000008FC2F578F5D8504166666676D6FE54419CA7418DF5D850418ABB7140D9FE5441F6E25F8DF5D85041894F9944D9FE5441F232D08FF5D85041E712659AD9FE5441FE5E196F0CD950419AB5468AD9FE5441C73FBE6C0CD950412148CB5CD9FE544122AD5E6B0CD9504171134842D9FE54417B420B680CD9504117411302D9FE5441EE45AF5A0CD95041AA832B00D8FE54415ACA732F0CD95041DF7DE697D6FE5441F6285C8F0AD950419A999909D7FE5441966593FE07D95041301E508CD6FE5441387FDE6B07D95041BB3F6E96D6FE544119C76D8B02D950413BF987EDD6FE5441BA7AD5C001D9504175E2B299D6FE5441BA2CAF1BFFD85041091834A1D5FE544193DCB872FDD8504171B7E5F0D4FE544150C2DA36FDD850413FA0EDE2D4FE5441BA271DF9FCD8504172F371BED4FE54417E25C62AFCD85041CF01D768D4FE5441C96C5A7CF9D85041A50F643FD3FE54418FAFF11BF9D85041FB129D15D3FE5441CC8097F6F8D850412F766D05D3FE5441BFC8CAEFF8D850416E267B02D3FE5441A72BA7D5F8D850416C7327F7D2FE54419F20CACEF8D85041C6102EF4D2FE5441267F50C5F8D8504178F512F0D2FE5441C9BBA5FCF7D85041F4E63A0CD3FE5441FE97F14DF5D850418D88987ED3FE54418FC2F578F5D8504166666676D6FE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985999 - 3170589
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 9 </desc>
+<a>
+0106000000010000000103000000010000002A000000B748C51ECF5651415B8723A5AE7D5441F5C74847D25651411A5C659E8D7D54416947CB88D45651413B95E3E4747D5441457A66FAD55651418ABF449B647D54416CBC8FFDD6565141FE60291F5A7D5441779333EED75651411DE614D1597D544157AD0085D656514195B1236F697D5441FDADFDCFD35651410784D141877D5441A72155DFD15651410F659D8B9D7D54410862134BD0565141F260B0B0AE7D5441EC51B8FED056514185EB5178AF7D5441E17A143EDC565141EC51B82EAD7D544114AE4731E5565141E17A14FEAA7D5441F6285C4FEE5651417B14AE37A87D5441AE47E15AF956514114AE4771A47D54410AD7A34015575141D7A370ED997D544148E17A241957514133333373987D5441713D0A271A5751410AD7A3D0947D5441E17A14EE1A57514148E17A24907D5441D7A370BD1C5751417B14AE47797D5441333333631F5751411F85EBD1577D5441E17A14CEDC5651417B14AEA7587D54416353C500D8565141FFCD9EC6597D544139895CCAD756514198FAC2D8597D54414E37A4EBD656514127BDB8215A7D5441D123A908CF5651419057561B5D7D54414161B3BFCE56514134C893255D7D5441D023083BCA5651416B8B91D25D7D54414AD70958C7565141DAD8811C5E7D54418FDBAD0DBA56514122373C805F7D544100000060B45651417B14AEA75F7D5441EC51B86EAF565141F6285C9F5F7D5441A4703D9AA55651413D0AD7135E7D5441D7A370ED8F5651419A9999D9597D5441B81E854B8B565141666666768B7D5441E17A148E8756514166666686B37D5441000000B0885651418FC2F5B8B47D54415C8FC2E5B4565141F6285CFFB27D5441295C8F22BE56514133333353B27D544148E17A94C55651417B14AE47B17D54419A999959CE565141CDCCCCDCAF7D5441B748C51ECF5651415B8723A5AE7D5441
+</a>
+
+<b>
+0106000000010000000103000000010000002D0000002FB63745C55651412849A2D9627D5441944748FEC556514178DB30D4627D54415DE6EC87CA5651413FEB032D627D5441DB90CD0ACE56514137FA006E617D5441582E5094D656514107193C855E7D5441EA0DE4F8D6565141110DE8215A7D54416062629DCF5651416B8442E15C7D544101010305CF565141BEF415195D7D54418F085E6ECC5651419D568E6F5D7D5441A25F7D42C756514154858A1A5E7D54411EFA6E3BC5565141BCB91B515E7D54416758DAA8C0565141AE352BCC5E7D5441DB0CBDADBB56514154FB37525F7D54412B66E4F4B9565141825890805F7D54412A9D5119B7565141FBBAD9945F7D54417883203AB456514180536EA75F7D54415FB0EA1FB1565141B06235A25F7D5441AD3DCA59AF5651413A05129C5F7D5441909F88ABAD565141CF3872585F7D5441A706F81EAB565141859DE1F15E7D544188E3FCEEA6565141E15F65495E7D5441AB341FE4A5565141BFC0731F5E7D544189960019A55651418328A2FA5D7D5441F7D295F1A1565141178E275D5D7D5441BCB23156A0565141B3A8EA0C5D7D544148AA014B9C565141F86403435C7D5441890B41139756514145D47C3E5B7D544106231B559156514106D8BF1F5A7D54419B76A5EC8F5651411BB871D9597D54416BF255DF8F5651411FE5A6705A7D544159A18F7F8F565141ACBECD6D5E7D5441FAE8269BA25651416577096D617D5441916920F6A3565141B1233BA3617D5441A6792A9AA55651410A45D5E4617D54412A8ADE9CAA565141AEAD2AAD627D544114C156B1AE565141DFF44A50637D5441AFFD30ECAE565141BA958E51637D544172AF3923B15651414893253F637D54415CE0E0F9B25651414EA7DD2F637D5441E59D73C5B65651416A3D5210637D54413282B5B0BA565141A4EA83EF627D54415CF54A6FBD565141F6113BF5627D5441AE67B02CC156514183F2A3EF627D5441AE345F49C3565141BB1092E8627D54412FB63745C55651412849A2D9627D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985999 - 3488163
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 9 </desc>
+<a>
+0106000000010000000103000000010000002A000000B748C51ECF5651415B8723A5AE7D5441F5C74847D25651411A5C659E8D7D54416947CB88D45651413B95E3E4747D5441457A66FAD55651418ABF449B647D54416CBC8FFDD6565141FE60291F5A7D5441779333EED75651411DE614D1597D544157AD0085D656514195B1236F697D5441FDADFDCFD35651410784D141877D5441A72155DFD15651410F659D8B9D7D54410862134BD0565141F260B0B0AE7D5441EC51B8FED056514185EB5178AF7D5441E17A143EDC565141EC51B82EAD7D544114AE4731E5565141E17A14FEAA7D5441F6285C4FEE5651417B14AE37A87D5441AE47E15AF956514114AE4771A47D54410AD7A34015575141D7A370ED997D544148E17A241957514133333373987D5441713D0A271A5751410AD7A3D0947D5441E17A14EE1A57514148E17A24907D5441D7A370BD1C5751417B14AE47797D5441333333631F5751411F85EBD1577D5441E17A14CEDC5651417B14AEA7587D54416353C500D8565141FFCD9EC6597D544139895CCAD756514198FAC2D8597D54414E37A4EBD656514127BDB8215A7D5441D123A908CF5651419057561B5D7D54414161B3BFCE56514134C893255D7D5441D023083BCA5651416B8B91D25D7D54414AD70958C7565141DAD8811C5E7D54418FDBAD0DBA56514122373C805F7D544100000060B45651417B14AEA75F7D5441EC51B86EAF565141F6285C9F5F7D5441A4703D9AA55651413D0AD7135E7D5441D7A370ED8F5651419A9999D9597D5441B81E854B8B565141666666768B7D5441E17A148E8756514166666686B37D5441000000B0885651418FC2F5B8B47D54415C8FC2E5B4565141F6285CFFB27D5441295C8F22BE56514133333353B27D544148E17A94C55651417B14AE47B17D54419A999959CE565141CDCCCCDCAF7D5441B748C51ECF5651415B8723A5AE7D5441
+</a>
+
+<b>
+0106000000010000000103000000010000002D0000002FB63745C55651412849A2D9627D5441944748FEC556514178DB30D4627D54415DE6EC87CA5651413FEB032D627D5441DB90CD0ACE56514137FA006E617D5441582E5094D656514107193C855E7D5441EA0DE4F8D6565141110DE8215A7D54416062629DCF5651416B8442E15C7D544101010305CF565141BEF415195D7D54418F085E6ECC5651419D568E6F5D7D5441A25F7D42C756514154858A1A5E7D54411EFA6E3BC5565141BCB91B515E7D54416758DAA8C0565141AE352BCC5E7D5441DB0CBDADBB56514154FB37525F7D54412B66E4F4B9565141825890805F7D54412A9D5119B7565141FBBAD9945F7D54417883203AB456514180536EA75F7D54415FB0EA1FB1565141B06235A25F7D5441AD3DCA59AF5651413A05129C5F7D5441909F88ABAD565141CF3872585F7D5441A706F81EAB565141859DE1F15E7D544188E3FCEEA6565141E15F65495E7D5441AB341FE4A5565141BFC0731F5E7D544189960019A55651418328A2FA5D7D5441F7D295F1A1565141178E275D5D7D5441BCB23156A0565141B3A8EA0C5D7D544148AA014B9C565141F86403435C7D5441890B41139756514145D47C3E5B7D544106231B559156514106D8BF1F5A7D54419B76A5EC8F5651411BB871D9597D54416BF255DF8F5651411FE5A6705A7D544159A18F7F8F565141ACBECD6D5E7D5441FAE8269BA25651416577096D617D5441916920F6A3565141B1233BA3617D5441A6792A9AA55651410A45D5E4617D54412A8ADE9CAA565141AEAD2AAD627D544114C156B1AE565141DFF44A50637D5441AFFD30ECAE565141BA958E51637D544172AF3923B15651414893253F637D54415CE0E0F9B25651414EA7DD2F637D5441E59D73C5B65651416A3D5210637D54413282B5B0BA565141A4EA83EF627D54415CF54A6FBD565141F6113BF5627D5441AE67B02CC156514183F2A3EF627D5441AE345F49C3565141BB1092E8627D54412FB63745C55651412849A2D9627D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985999 - 86483
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 8 </desc>
+<a>
+0106000000010000000103000000010000002A000000B748C51ECF5651415B8723A5AE7D5441F5C74847D25651411A5C659E8D7D54416947CB88D45651413B95E3E4747D5441457A66FAD55651418ABF449B647D54416CBC8FFDD6565141FE60291F5A7D5441779333EED75651411DE614D1597D544157AD0085D656514195B1236F697D5441FDADFDCFD35651410784D141877D5441A72155DFD15651410F659D8B9D7D54410862134BD0565141F260B0B0AE7D5441EC51B8FED056514185EB5178AF7D5441E17A143EDC565141EC51B82EAD7D544114AE4731E5565141E17A14FEAA7D5441F6285C4FEE5651417B14AE37A87D5441AE47E15AF956514114AE4771A47D54410AD7A34015575141D7A370ED997D544148E17A241957514133333373987D5441713D0A271A5751410AD7A3D0947D5441E17A14EE1A57514148E17A24907D5441D7A370BD1C5751417B14AE47797D5441333333631F5751411F85EBD1577D5441E17A14CEDC5651417B14AEA7587D54416353C500D8565141FFCD9EC6597D544139895CCAD756514198FAC2D8597D54414E37A4EBD656514127BDB8215A7D5441D123A908CF5651419057561B5D7D54414161B3BFCE56514134C893255D7D5441D023083BCA5651416B8B91D25D7D54414AD70958C7565141DAD8811C5E7D54418FDBAD0DBA56514122373C805F7D544100000060B45651417B14AEA75F7D5441EC51B86EAF565141F6285C9F5F7D5441A4703D9AA55651413D0AD7135E7D5441D7A370ED8F5651419A9999D9597D5441B81E854B8B565141666666768B7D5441E17A148E8756514166666686B37D5441000000B0885651418FC2F5B8B47D54415C8FC2E5B4565141F6285CFFB27D5441295C8F22BE56514133333353B27D544148E17A94C55651417B14AE47B17D54419A999959CE565141CDCCCCDCAF7D5441B748C51ECF5651415B8723A5AE7D5441
+</a>
+
+<b>
+010600000001000000010300000001000000210000007B9197051F575141A0FFF7705C7D5441D212E9111F575141F3EE48D55B7D5441EB7EFE0808575141221BB3285C7D5441E659A47F00575141ECA59A385C7D5441C5DEE51EF35651415637B4805C7D544137A903D5ED56514106A419765C7D5441E34519ADDC565141CC3972BB5C7D5441A64BB088D7565141D75DB6345E7D54413DAAB0BAD65651417278E11C677D54417A5B995AD4565141D328888C817D5441474177EDD25651419C17396C917D5441A52155DFD15651410B659D8B9D7D54410862134BD0565141F160B0B0AE7D5441EC51B8FED056514185EB5178AF7D5441EC18393CD3565141348AAE03AF7D5441A74626F8DB565141713EF13CAD7D5441433BB66EE35651416DAC546CAB7D54419517CED0EA5651411E4FF247A97D5441F4E3BCA9EC5651413E3B01B8A87D5441DF8C7679EF5651416F12CBD1A77D5441E61E976CF35651415DDF3478A67D54415FD11143F4565141C8A9E62EA67D54414AA2AB6EF5565141479B80C8A57D5441C3F117B8FB56514186672A8DA37D544171E7B13A03575141E1E381B8A07D544174F430E50A57514153E7CFD49D7D5441677D1E2019575141343ADB74987D5441141FF80E1A575141AA5D4527957D54417053D1FE1A5751415B1110518F7D5441F38C56901B5751416B8FF622887D544179B1F0A51C575141B2CC82707A7D5441EA9D5DE01D57514183DEDCEA6A7D54417B9197051F575141A0FFF7705C7D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985999 - 86484
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 8 </desc>
+<a>
+0106000000010000000103000000010000002A000000B748C51ECF5651415B8723A5AE7D5441F5C74847D25651411A5C659E8D7D54416947CB88D45651413B95E3E4747D5441457A66FAD55651418ABF449B647D54416CBC8FFDD6565141FE60291F5A7D5441779333EED75651411DE614D1597D544157AD0085D656514195B1236F697D5441FDADFDCFD35651410784D141877D5441A72155DFD15651410F659D8B9D7D54410862134BD0565141F260B0B0AE7D5441EC51B8FED056514185EB5178AF7D5441E17A143EDC565141EC51B82EAD7D544114AE4731E5565141E17A14FEAA7D5441F6285C4FEE5651417B14AE37A87D5441AE47E15AF956514114AE4771A47D54410AD7A34015575141D7A370ED997D544148E17A241957514133333373987D5441713D0A271A5751410AD7A3D0947D5441E17A14EE1A57514148E17A24907D5441D7A370BD1C5751417B14AE47797D5441333333631F5751411F85EBD1577D5441E17A14CEDC5651417B14AEA7587D54416353C500D8565141FFCD9EC6597D544139895CCAD756514198FAC2D8597D54414E37A4EBD656514127BDB8215A7D5441D123A908CF5651419057561B5D7D54414161B3BFCE56514134C893255D7D5441D023083BCA5651416B8B91D25D7D54414AD70958C7565141DAD8811C5E7D54418FDBAD0DBA56514122373C805F7D544100000060B45651417B14AEA75F7D5441EC51B86EAF565141F6285C9F5F7D5441A4703D9AA55651413D0AD7135E7D5441D7A370ED8F5651419A9999D9597D5441B81E854B8B565141666666768B7D5441E17A148E8756514166666686B37D5441000000B0885651418FC2F5B8B47D54415C8FC2E5B4565141F6285CFFB27D5441295C8F22BE56514133333353B27D544148E17A94C55651417B14AE47B17D54419A999959CE565141CDCCCCDCAF7D5441B748C51ECF5651415B8723A5AE7D5441
+</a>
+
+<b>
+0106000000010000000103000000010000001E0000003B3CDBFDC0565141AFA48DECB17D54419A6C28A9CA56514148617375B07D5441B26DD16DCE5651414C89D7BCAF7D5441E713C571CE5651418C7498B6AF7D544107ACCF7BCE5651415B33B9A6AF7D5441DE456520CF5651411E792594AE7D5441230F8CB2D25651414624F6B9887D5441A8450F81D456514113A34A15757D544187946FE6D4565141390F7EC4707D5441487A66FAD55651418DBF449B647D54414C02AC72D65651416593A0BD5F7D544114AD8A85D5565141AC57FDBF5F7D5441C26D0E73C656514122D5814A627D5441D9814B40C3565141B2B297A8627D5441869CB801B9565141CFB6BDFD627D5441D8412BC2AE565141A7DCEB52637D5441B138AE7F8F565141041C16715E7D5441B92A61A08C56514120F7E8337D7D5441A3D5A3EE8B565141D6C370A3847D5441B085015C88565141CFCC8AE8AA7D5441E17A148E8756514166666686B37D54415BD0D7CF885651419DB0B7B7B47D54415D6EEADE89565141450724ADB47D544180592B458C56514185702C95B47D5441DDFD7EC49556514174AB4E36B47D5441648AFDFA975651411E223420B47D54410A5EEC24A6565141EACFB992B37D5441855C2A84B456514162002B03B37D5441909BCE3DBD565141757CDA63B27D54413B3CDBFDC0565141AFA48DECB17D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985999 - 234590
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 9 </desc>
+<a>
+0106000000010000000103000000010000002A000000B748C51ECF5651415B8723A5AE7D5441F5C74847D25651411A5C659E8D7D54416947CB88D45651413B95E3E4747D5441457A66FAD55651418ABF449B647D54416CBC8FFDD6565141FE60291F5A7D5441779333EED75651411DE614D1597D544157AD0085D656514195B1236F697D5441FDADFDCFD35651410784D141877D5441A72155DFD15651410F659D8B9D7D54410862134BD0565141F260B0B0AE7D5441EC51B8FED056514185EB5178AF7D5441E17A143EDC565141EC51B82EAD7D544114AE4731E5565141E17A14FEAA7D5441F6285C4FEE5651417B14AE37A87D5441AE47E15AF956514114AE4771A47D54410AD7A34015575141D7A370ED997D544148E17A241957514133333373987D5441713D0A271A5751410AD7A3D0947D5441E17A14EE1A57514148E17A24907D5441D7A370BD1C5751417B14AE47797D5441333333631F5751411F85EBD1577D5441E17A14CEDC5651417B14AEA7587D54416353C500D8565141FFCD9EC6597D544139895CCAD756514198FAC2D8597D54414E37A4EBD656514127BDB8215A7D5441D123A908CF5651419057561B5D7D54414161B3BFCE56514134C893255D7D5441D023083BCA5651416B8B91D25D7D54414AD70958C7565141DAD8811C5E7D54418FDBAD0DBA56514122373C805F7D544100000060B45651417B14AEA75F7D5441EC51B86EAF565141F6285C9F5F7D5441A4703D9AA55651413D0AD7135E7D5441D7A370ED8F5651419A9999D9597D5441B81E854B8B565141666666768B7D5441E17A148E8756514166666686B37D5441000000B0885651418FC2F5B8B47D54415C8FC2E5B4565141F6285CFFB27D5441295C8F22BE56514133333353B27D544148E17A94C55651417B14AE47B17D54419A999959CE565141CDCCCCDCAF7D5441B748C51ECF5651415B8723A5AE7D5441
+</a>
+
+<b>
+0106000000010000000103000000010000002D0000002FB63745C55651412849A2D9627D5441944748FEC556514178DB30D4627D54415DE6EC87CA5651413FEB032D627D5441DB90CD0ACE56514137FA006E617D5441582E5094D656514107193C855E7D5441EA0DE4F8D6565141110DE8215A7D54416062629DCF5651416B8442E15C7D544101010305CF565141BEF415195D7D54418F085E6ECC5651419D568E6F5D7D5441A25F7D42C756514154858A1A5E7D54411EFA6E3BC5565141BCB91B515E7D54416758DAA8C0565141AE352BCC5E7D5441DB0CBDADBB56514154FB37525F7D54412B66E4F4B9565141825890805F7D54412A9D5119B7565141FBBAD9945F7D54417883203AB456514180536EA75F7D54415FB0EA1FB1565141B06235A25F7D5441AD3DCA59AF5651413A05129C5F7D5441909F88ABAD565141CF3872585F7D5441A706F81EAB565141859DE1F15E7D544188E3FCEEA6565141E15F65495E7D5441AB341FE4A5565141BFC0731F5E7D544189960019A55651418328A2FA5D7D5441F7D295F1A1565141178E275D5D7D5441BCB23156A0565141B3A8EA0C5D7D544148AA014B9C565141F86403435C7D5441890B41139756514145D47C3E5B7D544106231B559156514106D8BF1F5A7D54419B76A5EC8F5651411BB871D9597D54416BF255DF8F5651411FE5A6705A7D544159A18F7F8F565141ACBECD6D5E7D5441FAE8269BA25651416577096D617D5441916920F6A3565141B1233BA3617D5441A6792A9AA55651410A45D5E4617D54412A8ADE9CAA565141AEAD2AAD627D544114C156B1AE565141DFF44A50637D5441AFFD30ECAE565141BA958E51637D544172AF3923B15651414893253F637D54415CE0E0F9B25651414EA7DD2F637D5441E59D73C5B65651416A3D5210637D54413282B5B0BA565141A4EA83EF627D54415CF54A6FBD565141F6113BF5627D5441AE67B02CC156514183F2A3EF627D5441AE345F49C3565141BB1092E8627D54412FB63745C55651412849A2D9627D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985999 - 370848
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 9 </desc>
+<a>
+0106000000010000000103000000010000002A000000B748C51ECF5651415B8723A5AE7D5441F5C74847D25651411A5C659E8D7D54416947CB88D45651413B95E3E4747D5441457A66FAD55651418ABF449B647D54416CBC8FFDD6565141FE60291F5A7D5441779333EED75651411DE614D1597D544157AD0085D656514195B1236F697D5441FDADFDCFD35651410784D141877D5441A72155DFD15651410F659D8B9D7D54410862134BD0565141F260B0B0AE7D5441EC51B8FED056514185EB5178AF7D5441E17A143EDC565141EC51B82EAD7D544114AE4731E5565141E17A14FEAA7D5441F6285C4FEE5651417B14AE37A87D5441AE47E15AF956514114AE4771A47D54410AD7A34015575141D7A370ED997D544148E17A241957514133333373987D5441713D0A271A5751410AD7A3D0947D5441E17A14EE1A57514148E17A24907D5441D7A370BD1C5751417B14AE47797D5441333333631F5751411F85EBD1577D5441E17A14CEDC5651417B14AEA7587D54416353C500D8565141FFCD9EC6597D544139895CCAD756514198FAC2D8597D54414E37A4EBD656514127BDB8215A7D5441D123A908CF5651419057561B5D7D54414161B3BFCE56514134C893255D7D5441D023083BCA5651416B8B91D25D7D54414AD70958C7565141DAD8811C5E7D54418FDBAD0DBA56514122373C805F7D544100000060B45651417B14AEA75F7D5441EC51B86EAF565141F6285C9F5F7D5441A4703D9AA55651413D0AD7135E7D5441D7A370ED8F5651419A9999D9597D5441B81E854B8B565141666666768B7D5441E17A148E8756514166666686B37D5441000000B0885651418FC2F5B8B47D54415C8FC2E5B4565141F6285CFFB27D5441295C8F22BE56514133333353B27D544148E17A94C55651417B14AE47B17D54419A999959CE565141CDCCCCDCAF7D5441B748C51ECF5651415B8723A5AE7D5441
+</a>
+
+<b>
+0106000000010000000103000000010000002D0000002FB63745C55651412849A2D9627D5441944748FEC556514178DB30D4627D54415DE6EC87CA5651413FEB032D627D5441DB90CD0ACE56514137FA006E617D5441582E5094D656514107193C855E7D5441EA0DE4F8D6565141110DE8215A7D54416062629DCF5651416B8442E15C7D544101010305CF565141BEF415195D7D54418F085E6ECC5651419D568E6F5D7D5441A25F7D42C756514154858A1A5E7D54411EFA6E3BC5565141BCB91B515E7D54416758DAA8C0565141AE352BCC5E7D5441DB0CBDADBB56514154FB37525F7D54412B66E4F4B9565141825890805F7D54412A9D5119B7565141FBBAD9945F7D54417883203AB456514180536EA75F7D54415FB0EA1FB1565141B06235A25F7D5441AD3DCA59AF5651413A05129C5F7D5441909F88ABAD565141CF3872585F7D5441A706F81EAB565141859DE1F15E7D544188E3FCEEA6565141E15F65495E7D5441AB341FE4A5565141BFC0731F5E7D544189960019A55651418328A2FA5D7D5441F7D295F1A1565141178E275D5D7D5441BCB23156A0565141B3A8EA0C5D7D544148AA014B9C565141F86403435C7D5441890B41139756514145D47C3E5B7D544106231B559156514106D8BF1F5A7D54419B76A5EC8F5651411BB871D9597D54416BF255DF8F5651411FE5A6705A7D544159A18F7F8F565141ACBECD6D5E7D5441FAE8269BA25651416577096D617D5441916920F6A3565141B1233BA3617D5441A6792A9AA55651410A45D5E4617D54412A8ADE9CAA565141AEAD2AAD627D544114C156B1AE565141DFF44A50637D5441AFFD30ECAE565141BA958E51637D544172AF3923B15651414893253F637D54415CE0E0F9B25651414EA7DD2F637D5441E59D73C5B65651416A3D5210637D54413282B5B0BA565141A4EA83EF627D54415CF54A6FBD565141F6113BF5627D5441AE67B02CC156514183F2A3EF627D5441AE345F49C3565141BB1092E8627D54412FB63745C55651412849A2D9627D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>552671 - 58333
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+01060000000200000001030000000100000049000000666666761EE8504148E17AF4D5F25441EC51B83E23E8504148E17AE4D6F25441713D0A2729E8504152B81EA5DAF254410000000030E85041AE47E10ACAF25441666666361FE85041333333C3C9F254415C8FC2C516E85041AE47E13ACAF25441869563A7ECE75041D2EE843ED1F25441ACF95844D3E75041BA8EAB59CBF254416544D8AFC3E75041716A2F68C4F254413607E38EBBE75041DACBB457C0F25441A8710C72B4E750418E7C774FBEF2544133333303B1E750411F85EB81C1F254419A999989A4E750419A999969BEF254411F85EB81A3E750411F85EB51BEF254411F85EB816BE75041F6285CFFB1F25441295C8F823AE75041CDCCCCCCA3F254419A99994930E7504100000010A1F25441C3F5280C2FE750418FC2F5A89AF254410AD7A35034E750413333335396F254418A69F2E034E75041147915EC8FF254419A9999892BE75041713D0A9788F254410CAACF0125E75041B4756EC190F254419D6A673527E75041F877CD8F99F2544195485EEF15E750418CEB8689A2F254417DD0D27B0EE750415D3F960BA3F25441C26C029BF6E65041E1436885A1F25441D097C3B1F1E6504196F42A7D9FF25441026F7546ECE6504196F42A7D9FF25441B7A5441AECE650415802084C98F2544114AE4781DEE650419A9999E99DF25441A4703DDADCE65041D7A3707DA3F2544114AE4761D7E6504152B81E15B3F254419A999919E3E650410AD7A3F0B6F254415C8FC24507E75041000000F0C2F254417B14AE6731E7504148E17A14D1F25441AE47E17A87E75041CDCCCC9CEDF254416E9062AD8FE7504159E76D9EE0F25441F94B0DEF99E750418EB643C2CFF25441C5FA54CC9FE75041ECDF01E1C4F254413D0AD773A2E750411F85EBA1BFF254411F85EB81A3E75041C3F5284CC0F254419A999989A0E75041E17A146EC6F254417B14AE479CE75041A4703D2ACEF254413D0AD7E388E7504148E17A14EEF254416666660693E7504100000070F1F254411F85EB619DE7504166666696F2F2544114AE4771A2E75041CDCCCC5CF3F254417B14AEF7A7E750415C8FC245F5F25441E17A148EAFE75041713D0A37F8F254413D0AD7D3B1E750417B14AE17F9F25441E17A141EB3E7504114AE47B1FAF25441EC51B8CEB2E7504148E17AD4FBF2544114AE47B1B5E75041CDCCCCBCFCF254419A9999A9BBE750413D0AD713FFF254413D0AD7F3BAE750410AD7A310FDF25441C3F5286CBBE7504185EB5128FAF2544148E17AD4BFE7504100000070F7F254415C8FC265C9E75041F6285C8FF2F254417B14AEF7DBE75041E17A14FEE8F2544100000000E0E75041666666E6E8F2544185EB5168E4E7504166666656E8F254410AD7A340E8E750415C8FC275E6F2544114AE4711EEE750415C8FC2D5E3F254411F85EB11F4E750415C8FC265E1F25441A4703D3AF6E75041D7A3704DE1F25441295C8F02FBE75041D7A3701DE1F25441AE47E1CAFFE7504152B81E15E0F25441B81E853B05E8504152B81EF5DEF2544148E17A640AE8504152B81EE5DCF25441CDCCCCBC0FE8504152B81E85DCF2544152B81EE514E8504152B81ED5DAF254415C8FC2C519E8504148E17A04D8F25441666666761EE8504148E17AF4D5F254410103000000010000002500000052B81E6566E75041295C8FF2F2F25441000000E068E750413D0AD703F5F25441333333136CE75041D7A3703DF4F25441295C8F626CE750418FC2F558F1F25441AE47E13A6CE750411F85EBB1EFF25441713D0AE76CE750419A999979EDF25441F6285C4F70E75041F6285C2FECF25441000000C074E750418FC2F598ECF254411F85EB6177E7504148E17A94EDF25441A4703DFA7BE75041EC51B8DEEEF25441E17A14DE7EE75041713D0AE7EFF25441000000707FE750415C8FC2B5F1F254417B14AE977FE75041295C8F22F4F254410AD7A3207FE75041F6285CAFF5F254415C8FC2D57DE75041D7A3709DF6F2544152B81EF57CE750417B14AEE7F7F2544148E17A747EE75041A4703DDAF7F2544185EB517880E750411F85EB01F8F25441713D0A7783E750419A999929F8F254415C8FC22586E750415C8FC2D5F8F25441713D0A3788E75041C3F5289CF9F2544152B81EA587E7504185EB5198F7F2544152B81EA587E75041A4703D7AF5F2544185EB51C888E75041D7A3703DF4F25441D7A3700D8BE75041D7A3700DF3F254411F85EBF18DE75041E17A14BEF2F2544185EB515892E75041713D0AA7F2F25441EC51B86E6FE750418FC2F528E7F25441D7A3702D6CE750419A999919EAF25441E17A140E6AE7504133333393E7F254411F85EB416AE7504152B81E75E5F25441CDCCCCBC33E750419A999959D3F25441C3F5285C37E7504148E17A04D7F254417B14AE3757E750419A9999F9E3F25441000000005DE750419A9999E9E9F25441B81E856B62E75041E17A142EEFF2544152B81E6566E75041295C8FF2F2F25441
+</a>
+
+<b>
+0106000000010000000103000000010000006B0000005C8FC24507E75041000000F0C2F2544138F3ED581AE7504115BA1E57C9F25441A87298ED1AE75041C5B70589C9F25441F4831FDF1DE750414AF5F485CAF2544190EE977029E7504152840668CEF25441E39CAF8430E75041911949C8D0F25441037637F331E75041CCF3BB42D1F25441EF2CCF4932E75041E732705FD1F2544170BA37EB4BE7504131F970DED9F25441528D49E25FE750410E13AE7CE0F25441820A812D60E75041DCF69C95E0F254414A31CBC260E7504133AD19C7E0F254412224A29E6CE75041B5DE6EB5E4F254417205A92A6EE750419CB0B538E5F25441AE47E17A87E75041CDCCCC9CEDF25441383DBCBD8EE750413A314D1AE2F254417F445DAE8FE75041DEC9D19CE0F25441F94B0DEF99E750418EB643C2CFF25441C4FA54CC9FE75041EADF01E1C4F254410D52BC6FA2E75041125408AABFF254418EF6AA73A2E75041D065A89FBFF254413D0AD773A2E750411F85EBA1BFF25441B521D67AA2E75041808054A6BFF254411F85EB81A3E75041C3F5284CC0F254419A999989A0E75041E17A146EC6F254417B14AE479CE75041A4703D2ACEF254413D0AD7E388E7504148E17A14EEF254416666660693E7504100000070F1F254411F85EB619DE7504166666696F2F25441FE5FB710A1E7504171F5CC26F3F25441A83A2E46A1E75041FA43FD2EF3F2544114AE4771A2E75041CDCCCC5CF3F254417B14AEF7A7E750415C8FC245F5F25441E17A148EAFE75041713D0A37F8F254413D0AD7D3B1E750417B14AE17F9F25441E17A141EB3E7504114AE47B1FAF25441EC51B8CEB2E7504148E17AD4FBF2544114AE47B1B5E75041CDCCCCBCFCF254419A9999A9BBE750413D0AD713FFF254413D0AD7F3BAE750410AD7A310FDF25441C3F5286CBBE7504185EB5128FAF2544148E17AD4BFE7504100000070F7F254415C8FC265C9E75041F6285C8FF2F254417B14AEF7DBE75041E17A14FEE8F2544100000000E0E75041666666E6E8F2544185EB5168E4E7504166666656E8F254410AD7A340E8E750415C8FC275E6F254411D2E6693EDE7504132C1950EE4F2544114AE4711EEE750415C8FC2D5E3F254411F85EB11F4E750415C8FC265E1F254410800D21DF6E75041D1FEB04EE1F25441A4703D3AF6E75041D7A3704DE1F25441295C8F02FBE75041D7A3701DE1F25441AE47E1CAFFE7504152B81E15E0F25441B81E853B05E8504152B81EF5DEF2544148E17A640AE8504152B81EE5DCF254412C139BAE0CE850410C7CFFBBDCF25441CDCCCCBC0FE8504152B81E85DCF2544152B81EE514E8504152B81ED5DAF254415C8FC2C519E8504148E17A04D8F25441C74E72561EE85041B6338802D6F25441666666761EE8504148E17AF4D5F25441EC51B83E23E8504148E17AE4D6F25441713D0A2729E8504152B81EA5DAF254410000000030E85041AE47E10ACAF254416263DCDA22E8504186A9C0D2C9F254414089B0AD22E85041AFC9FFD1C9F2544102609FB220E85041DEB08AC9C9F25441666666361FE85041333333C3C9F254412FECBEF91BE85041629819F1C9F2544176CF323C17E85041ABCF5134CAF254415C8FC2C516E85041AE47E13ACAF2544127DD16A704E850416139613FCDF25441869563A7ECE75041D2EE843ED1F25441ACF95844D3E75041BA8EAB59CBF254416544D8AFC3E75041716A2F68C4F254413607E38EBBE75041DACBB457C0F25441A8710C72B4E750418E7C774FBEF2544133333303B1E750411F85EB81C1F254419A999989A4E750419A999969BEF254411F85EB81A3E750411F85EB51BEF254411F85EB816BE75041F6285CFFB1F254419611AE2552E75041EBAB2BA6AAF25441295C8F823AE75041CDCCCCCCA3F254419A99994930E7504100000010A1F25441C3F5280C2FE750418FC2F5A89AF254410AD7A35034E750413333335396F254418A69F2E034E75041197915EC8FF254419A9999892BE75041713D0A9788F254410CAACF0125E75041B4756EC190F254419D6A673527E75041F877CD8F99F2544147B0615322E7504167F452199CF25441E019489A21E75041B0E080799CF25441EE9FBEFE1EE75041CE635CD49DF25441425C1A4D1EE75041AB36AA309EF2544195485EEF15E750418CEB8689A2F254417DD0D27B0EE750415D3F960BA3F25441C26C029BF6E65041E1436885A1F25441D097C3B1F1E6504196F42A7D9FF25441026F7546ECE6504196F42A7D9FF25441B7A5441AECE650415802084C98F2544114AE4781DEE650419A9999E99DF25441A4703DDADCE65041D7A3707DA3F254416F4265D8D9E65041FD99EA0EACF2544114AE4761D7E6504152B81E15B3F254419A999919E3E650410AD7A3F0B6F254415C8FC24507E75041000000F0C2F25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>552671 - 119309
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000200000001030000000100000049000000666666761EE8504148E17AF4D5F25441EC51B83E23E8504148E17AE4D6F25441713D0A2729E8504152B81EA5DAF254410000000030E85041AE47E10ACAF25441666666361FE85041333333C3C9F254415C8FC2C516E85041AE47E13ACAF25441869563A7ECE75041D2EE843ED1F25441ACF95844D3E75041BA8EAB59CBF254416544D8AFC3E75041716A2F68C4F254413607E38EBBE75041DACBB457C0F25441A8710C72B4E750418E7C774FBEF2544133333303B1E750411F85EB81C1F254419A999989A4E750419A999969BEF254411F85EB81A3E750411F85EB51BEF254411F85EB816BE75041F6285CFFB1F25441295C8F823AE75041CDCCCCCCA3F254419A99994930E7504100000010A1F25441C3F5280C2FE750418FC2F5A89AF254410AD7A35034E750413333335396F254418A69F2E034E75041147915EC8FF254419A9999892BE75041713D0A9788F254410CAACF0125E75041B4756EC190F254419D6A673527E75041F877CD8F99F2544195485EEF15E750418CEB8689A2F254417DD0D27B0EE750415D3F960BA3F25441C26C029BF6E65041E1436885A1F25441D097C3B1F1E6504196F42A7D9FF25441026F7546ECE6504196F42A7D9FF25441B7A5441AECE650415802084C98F2544114AE4781DEE650419A9999E99DF25441A4703DDADCE65041D7A3707DA3F2544114AE4761D7E6504152B81E15B3F254419A999919E3E650410AD7A3F0B6F254415C8FC24507E75041000000F0C2F254417B14AE6731E7504148E17A14D1F25441AE47E17A87E75041CDCCCC9CEDF254416E9062AD8FE7504159E76D9EE0F25441F94B0DEF99E750418EB643C2CFF25441C5FA54CC9FE75041ECDF01E1C4F254413D0AD773A2E750411F85EBA1BFF254411F85EB81A3E75041C3F5284CC0F254419A999989A0E75041E17A146EC6F254417B14AE479CE75041A4703D2ACEF254413D0AD7E388E7504148E17A14EEF254416666660693E7504100000070F1F254411F85EB619DE7504166666696F2F2544114AE4771A2E75041CDCCCC5CF3F254417B14AEF7A7E750415C8FC245F5F25441E17A148EAFE75041713D0A37F8F254413D0AD7D3B1E750417B14AE17F9F25441E17A141EB3E7504114AE47B1FAF25441EC51B8CEB2E7504148E17AD4FBF2544114AE47B1B5E75041CDCCCCBCFCF254419A9999A9BBE750413D0AD713FFF254413D0AD7F3BAE750410AD7A310FDF25441C3F5286CBBE7504185EB5128FAF2544148E17AD4BFE7504100000070F7F254415C8FC265C9E75041F6285C8FF2F254417B14AEF7DBE75041E17A14FEE8F2544100000000E0E75041666666E6E8F2544185EB5168E4E7504166666656E8F254410AD7A340E8E750415C8FC275E6F2544114AE4711EEE750415C8FC2D5E3F254411F85EB11F4E750415C8FC265E1F25441A4703D3AF6E75041D7A3704DE1F25441295C8F02FBE75041D7A3701DE1F25441AE47E1CAFFE7504152B81E15E0F25441B81E853B05E8504152B81EF5DEF2544148E17A640AE8504152B81EE5DCF25441CDCCCCBC0FE8504152B81E85DCF2544152B81EE514E8504152B81ED5DAF254415C8FC2C519E8504148E17A04D8F25441666666761EE8504148E17AF4D5F254410103000000010000002500000052B81E6566E75041295C8FF2F2F25441000000E068E750413D0AD703F5F25441333333136CE75041D7A3703DF4F25441295C8F626CE750418FC2F558F1F25441AE47E13A6CE750411F85EBB1EFF25441713D0AE76CE750419A999979EDF25441F6285C4F70E75041F6285C2FECF25441000000C074E750418FC2F598ECF254411F85EB6177E7504148E17A94EDF25441A4703DFA7BE75041EC51B8DEEEF25441E17A14DE7EE75041713D0AE7EFF25441000000707FE750415C8FC2B5F1F254417B14AE977FE75041295C8F22F4F254410AD7A3207FE75041F6285CAFF5F254415C8FC2D57DE75041D7A3709DF6F2544152B81EF57CE750417B14AEE7F7F2544148E17A747EE75041A4703DDAF7F2544185EB517880E750411F85EB01F8F25441713D0A7783E750419A999929F8F254415C8FC22586E750415C8FC2D5F8F25441713D0A3788E75041C3F5289CF9F2544152B81EA587E7504185EB5198F7F2544152B81EA587E75041A4703D7AF5F2544185EB51C888E75041D7A3703DF4F25441D7A3700D8BE75041D7A3700DF3F254411F85EBF18DE75041E17A14BEF2F2544185EB515892E75041713D0AA7F2F25441EC51B86E6FE750418FC2F528E7F25441D7A3702D6CE750419A999919EAF25441E17A140E6AE7504133333393E7F254411F85EB416AE7504152B81E75E5F25441CDCCCCBC33E750419A999959D3F25441C3F5285C37E7504148E17A04D7F254417B14AE3757E750419A9999F9E3F25441000000005DE750419A9999E9E9F25441B81E856B62E75041E17A142EEFF2544152B81E6566E75041295C8FF2F2F25441
+</a>
+
+<b>
+0106000000010000000103000000010000006C000000666666761EE8504148E17AF4D5F25441EC51B83E23E8504148E17AE4D6F25441713D0A2729E8504152B81EA5DAF254410000000030E85041AE47E10ACAF254416363DCDA22E8504189A9C0D2C9F254414089B0AD22E85041AFC9FFD1C9F2544102609FB220E85041DDB08AC9C9F25441666666361FE85041333333C3C9F254412FECBEF91BE85041629819F1C9F2544176CF323C17E85041ABCF5134CAF254415C8FC2C516E85041AE47E13ACAF2544127DD16A704E850416139613FCDF25441869563A7ECE75041D2EE843ED1F25441ACF95844D3E75041BA8EAB59CBF254416544D8AFC3E75041716A2F68C4F254413607E38EBBE75041DACBB457C0F25441A8710C72B4E750418E7C774FBEF2544133333303B1E750411F85EB81C1F254419A999989A4E750419A999969BEF254411F85EB81A3E750411F85EB51BEF254411F85EB816BE75041F6285CFFB1F254419611AE2552E75041E9AB2BA6AAF25441295C8F823AE75041CDCCCCCCA3F254419A99994930E7504100000010A1F25441C3F5280C2FE750418FC2F5A89AF254410AD7A35034E750413333335396F254418A69F2E034E75041197915EC8FF254419A9999892BE75041713D0A9788F254410CAACF0125E75041B4756EC190F254419D6A673527E75041F877CD8F99F2544149B0615322E7504165F452199CF25441E70E439B21E75041737AFE789CF25441E019489A21E75041B0E080799CF25441EE9FBEFE1EE75041CE635CD49DF25441425C1A4D1EE75041AB36AA309EF2544195485EEF15E750418CEB8689A2F254417DD0D27B0EE750415D3F960BA3F25441C26C029BF6E65041E1436885A1F25441D097C3B1F1E6504196F42A7D9FF25441026F7546ECE6504196F42A7D9FF25441B7A5441AECE650415802084C98F2544114AE4781DEE650419A9999E99DF25441A4703DDADCE65041D7A3707DA3F2544114AE4761D7E6504152B81E15B3F254419A999919E3E650410AD7A3F0B6F254415C8FC24507E75041000000F0C2F2544138F3ED581AE7504115BA1E57C9F25441A87298ED1AE75041C5B70589C9F25441F4831FDF1DE750414AF5F485CAF25441DC5197DC22E750414BD2C232CCF25441E69CAF8430E75041911949C8D0F25441037637F331E75041CCF3BB42D1F25441EF2CCF4932E75041E332705FD1F25441A92E17A23AE7504190EA9423D4F2544102FD325453E7504118B94253DCF25441528D49E25FE750410E13AE7CE0F25441820A812D60E75041DCF69C95E0F254414C31CBC260E7504130AD19C7E0F254412224A29E6CE75041B0DE6EB5E4F254417205A92A6EE750419DB0B538E5F25441AE47E17A87E75041CDCCCC9CEDF25441CCD5BCBD8EE75041603F4C1AE2F254413E445DAE8FE7504142CAD19CE0F25441F94B0DEF99E750418EB643C2CFF25441C4FA54CC9FE75041EADF01E1C4F254410B52BC6FA2E75041175408AABFF254418EF6AA73A2E75041D065A89FBFF254413D0AD773A2E750411F85EBA1BFF25441B521D67AA2E75041808054A6BFF254411F85EB81A3E75041C3F5284CC0F254419A999989A0E75041E17A146EC6F254417B14AE479CE75041A4703D2ACEF254413D0AD7E388E7504148E17A14EEF254416666660693E7504100000070F1F254411F85EB619DE7504166666696F2F25441FE5FB710A1E7504171F5CC26F3F25441A63A2E46A1E75041F943FD2EF3F2544114AE4771A2E75041CDCCCC5CF3F254417B14AEF7A7E750415C8FC245F5F25441E17A148EAFE75041713D0A37F8F254413D0AD7D3B1E750417B14AE17F9F25441E17A141EB3E7504114AE47B1FAF25441EC51B8CEB2E7504148E17AD4FBF2544114AE47B1B5E75041CDCCCCBCFCF254419A9999A9BBE750413D0AD713FFF254413D0AD7F3BAE750410AD7A310FDF25441C3F5286CBBE7504185EB5128FAF2544148E17AD4BFE7504100000070F7F254415C8FC265C9E75041F6285C8FF2F254417B14AEF7DBE75041E17A14FEE8F2544100000000E0E75041666666E6E8F2544185EB5168E4E7504166666656E8F254410AD7A340E8E750415C8FC275E6F254411D2E6693EDE7504133C1950EE4F2544114AE4711EEE750415C8FC2D5E3F254411F85EB11F4E750415C8FC265E1F254410800D21DF6E75041D2FEB04EE1F25441A4703D3AF6E75041D7A3704DE1F25441295C8F02FBE75041D7A3701DE1F25441AE47E1CAFFE7504152B81E15E0F25441B81E853B05E8504152B81EF5DEF2544148E17A640AE8504152B81EE5DCF254412C139BAE0CE850410C7CFFBBDCF25441CDCCCCBC0FE8504152B81E85DCF2544152B81EE514E8504152B81ED5DAF254415C8FC2C519E8504148E17A04D8F25441C74E72561EE85041B8338802D6F25441666666761EE8504148E17AF4D5F25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>552671 - 301393
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000200000001030000000100000049000000666666761EE8504148E17AF4D5F25441EC51B83E23E8504148E17AE4D6F25441713D0A2729E8504152B81EA5DAF254410000000030E85041AE47E10ACAF25441666666361FE85041333333C3C9F254415C8FC2C516E85041AE47E13ACAF25441869563A7ECE75041D2EE843ED1F25441ACF95844D3E75041BA8EAB59CBF254416544D8AFC3E75041716A2F68C4F254413607E38EBBE75041DACBB457C0F25441A8710C72B4E750418E7C774FBEF2544133333303B1E750411F85EB81C1F254419A999989A4E750419A999969BEF254411F85EB81A3E750411F85EB51BEF254411F85EB816BE75041F6285CFFB1F25441295C8F823AE75041CDCCCCCCA3F254419A99994930E7504100000010A1F25441C3F5280C2FE750418FC2F5A89AF254410AD7A35034E750413333335396F254418A69F2E034E75041147915EC8FF254419A9999892BE75041713D0A9788F254410CAACF0125E75041B4756EC190F254419D6A673527E75041F877CD8F99F2544195485EEF15E750418CEB8689A2F254417DD0D27B0EE750415D3F960BA3F25441C26C029BF6E65041E1436885A1F25441D097C3B1F1E6504196F42A7D9FF25441026F7546ECE6504196F42A7D9FF25441B7A5441AECE650415802084C98F2544114AE4781DEE650419A9999E99DF25441A4703DDADCE65041D7A3707DA3F2544114AE4761D7E6504152B81E15B3F254419A999919E3E650410AD7A3F0B6F254415C8FC24507E75041000000F0C2F254417B14AE6731E7504148E17A14D1F25441AE47E17A87E75041CDCCCC9CEDF254416E9062AD8FE7504159E76D9EE0F25441F94B0DEF99E750418EB643C2CFF25441C5FA54CC9FE75041ECDF01E1C4F254413D0AD773A2E750411F85EBA1BFF254411F85EB81A3E75041C3F5284CC0F254419A999989A0E75041E17A146EC6F254417B14AE479CE75041A4703D2ACEF254413D0AD7E388E7504148E17A14EEF254416666660693E7504100000070F1F254411F85EB619DE7504166666696F2F2544114AE4771A2E75041CDCCCC5CF3F254417B14AEF7A7E750415C8FC245F5F25441E17A148EAFE75041713D0A37F8F254413D0AD7D3B1E750417B14AE17F9F25441E17A141EB3E7504114AE47B1FAF25441EC51B8CEB2E7504148E17AD4FBF2544114AE47B1B5E75041CDCCCCBCFCF254419A9999A9BBE750413D0AD713FFF254413D0AD7F3BAE750410AD7A310FDF25441C3F5286CBBE7504185EB5128FAF2544148E17AD4BFE7504100000070F7F254415C8FC265C9E75041F6285C8FF2F254417B14AEF7DBE75041E17A14FEE8F2544100000000E0E75041666666E6E8F2544185EB5168E4E7504166666656E8F254410AD7A340E8E750415C8FC275E6F2544114AE4711EEE750415C8FC2D5E3F254411F85EB11F4E750415C8FC265E1F25441A4703D3AF6E75041D7A3704DE1F25441295C8F02FBE75041D7A3701DE1F25441AE47E1CAFFE7504152B81E15E0F25441B81E853B05E8504152B81EF5DEF2544148E17A640AE8504152B81EE5DCF25441CDCCCCBC0FE8504152B81E85DCF2544152B81EE514E8504152B81ED5DAF254415C8FC2C519E8504148E17A04D8F25441666666761EE8504148E17AF4D5F254410103000000010000002500000052B81E6566E75041295C8FF2F2F25441000000E068E750413D0AD703F5F25441333333136CE75041D7A3703DF4F25441295C8F626CE750418FC2F558F1F25441AE47E13A6CE750411F85EBB1EFF25441713D0AE76CE750419A999979EDF25441F6285C4F70E75041F6285C2FECF25441000000C074E750418FC2F598ECF254411F85EB6177E7504148E17A94EDF25441A4703DFA7BE75041EC51B8DEEEF25441E17A14DE7EE75041713D0AE7EFF25441000000707FE750415C8FC2B5F1F254417B14AE977FE75041295C8F22F4F254410AD7A3207FE75041F6285CAFF5F254415C8FC2D57DE75041D7A3709DF6F2544152B81EF57CE750417B14AEE7F7F2544148E17A747EE75041A4703DDAF7F2544185EB517880E750411F85EB01F8F25441713D0A7783E750419A999929F8F254415C8FC22586E750415C8FC2D5F8F25441713D0A3788E75041C3F5289CF9F2544152B81EA587E7504185EB5198F7F2544152B81EA587E75041A4703D7AF5F2544185EB51C888E75041D7A3703DF4F25441D7A3700D8BE75041D7A3700DF3F254411F85EBF18DE75041E17A14BEF2F2544185EB515892E75041713D0AA7F2F25441EC51B86E6FE750418FC2F528E7F25441D7A3702D6CE750419A999919EAF25441E17A140E6AE7504133333393E7F254411F85EB416AE7504152B81E75E5F25441CDCCCCBC33E750419A999959D3F25441C3F5285C37E7504148E17A04D7F254417B14AE3757E750419A9999F9E3F25441000000005DE750419A9999E9E9F25441B81E856B62E75041E17A142EEFF2544152B81E6566E75041295C8FF2F2F25441
+</a>
+
+<b>
+0106000000010000000103000000010000006C000000666666761EE8504148E17AF4D5F25441EC51B83E23E8504148E17AE4D6F25441713D0A2729E8504152B81EA5DAF254410000000030E85041AE47E10ACAF254416363DCDA22E8504189A9C0D2C9F254414089B0AD22E85041AFC9FFD1C9F2544102609FB220E85041DDB08AC9C9F25441666666361FE85041333333C3C9F254412FECBEF91BE85041629819F1C9F2544176CF323C17E85041ABCF5134CAF254415C8FC2C516E85041AE47E13ACAF2544127DD16A704E850416139613FCDF25441869563A7ECE75041D2EE843ED1F25441ACF95844D3E75041BA8EAB59CBF254416544D8AFC3E75041716A2F68C4F254413607E38EBBE75041DACBB457C0F25441A8710C72B4E750418E7C774FBEF2544133333303B1E750411F85EB81C1F254419A999989A4E750419A999969BEF254411F85EB81A3E750411F85EB51BEF254411F85EB816BE75041F6285CFFB1F254419611AE2552E75041E9AB2BA6AAF25441295C8F823AE75041CDCCCCCCA3F254419A99994930E7504100000010A1F25441C3F5280C2FE750418FC2F5A89AF254410AD7A35034E750413333335396F254418A69F2E034E75041197915EC8FF254419A9999892BE75041713D0A9788F254410CAACF0125E75041B4756EC190F254419D6A673527E75041F877CD8F99F2544149B0615322E7504165F452199CF25441E70E439B21E75041737AFE789CF25441E019489A21E75041B0E080799CF25441EE9FBEFE1EE75041CE635CD49DF25441425C1A4D1EE75041AB36AA309EF2544195485EEF15E750418CEB8689A2F254417DD0D27B0EE750415D3F960BA3F25441C26C029BF6E65041E1436885A1F25441D097C3B1F1E6504196F42A7D9FF25441026F7546ECE6504196F42A7D9FF25441B7A5441AECE650415802084C98F2544114AE4781DEE650419A9999E99DF25441A4703DDADCE65041D7A3707DA3F2544114AE4761D7E6504152B81E15B3F254419A999919E3E650410AD7A3F0B6F254415C8FC24507E75041000000F0C2F2544138F3ED581AE7504115BA1E57C9F25441A87298ED1AE75041C5B70589C9F25441F4831FDF1DE750414AF5F485CAF25441DC5197DC22E750414BD2C232CCF25441E69CAF8430E75041911949C8D0F25441037637F331E75041CCF3BB42D1F25441EF2CCF4932E75041E332705FD1F25441A92E17A23AE7504190EA9423D4F2544102FD325453E7504118B94253DCF25441528D49E25FE750410E13AE7CE0F25441820A812D60E75041DCF69C95E0F254414C31CBC260E7504130AD19C7E0F254412224A29E6CE75041B0DE6EB5E4F254417205A92A6EE750419DB0B538E5F25441AE47E17A87E75041CDCCCC9CEDF25441CCD5BCBD8EE75041603F4C1AE2F254413E445DAE8FE7504142CAD19CE0F25441F94B0DEF99E750418EB643C2CFF25441C4FA54CC9FE75041EADF01E1C4F254410B52BC6FA2E75041175408AABFF254418EF6AA73A2E75041D065A89FBFF254413D0AD773A2E750411F85EBA1BFF25441B521D67AA2E75041808054A6BFF254411F85EB81A3E75041C3F5284CC0F254419A999989A0E75041E17A146EC6F254417B14AE479CE75041A4703D2ACEF254413D0AD7E388E7504148E17A14EEF254416666660693E7504100000070F1F254411F85EB619DE7504166666696F2F25441FE5FB710A1E7504171F5CC26F3F25441A63A2E46A1E75041F943FD2EF3F2544114AE4771A2E75041CDCCCC5CF3F254417B14AEF7A7E750415C8FC245F5F25441E17A148EAFE75041713D0A37F8F254413D0AD7D3B1E750417B14AE17F9F25441E17A141EB3E7504114AE47B1FAF25441EC51B8CEB2E7504148E17AD4FBF2544114AE47B1B5E75041CDCCCCBCFCF254419A9999A9BBE750413D0AD713FFF254413D0AD7F3BAE750410AD7A310FDF25441C3F5286CBBE7504185EB5128FAF2544148E17AD4BFE7504100000070F7F254415C8FC265C9E75041F6285C8FF2F254417B14AEF7DBE75041E17A14FEE8F2544100000000E0E75041666666E6E8F2544185EB5168E4E7504166666656E8F254410AD7A340E8E750415C8FC275E6F254411D2E6693EDE7504133C1950EE4F2544114AE4711EEE750415C8FC2D5E3F254411F85EB11F4E750415C8FC265E1F254410800D21DF6E75041D2FEB04EE1F25441A4703D3AF6E75041D7A3704DE1F25441295C8F02FBE75041D7A3701DE1F25441AE47E1CAFFE7504152B81E15E0F25441B81E853B05E8504152B81EF5DEF2544148E17A640AE8504152B81EE5DCF254412C139BAE0CE850410C7CFFBBDCF25441CDCCCCBC0FE8504152B81E85DCF2544152B81EE514E8504152B81ED5DAF254415C8FC2C519E8504148E17A04D8F25441C74E72561EE85041B8338802D6F25441666666761EE8504148E17AF4D5F25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2907071 - 3046889
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000001000000010300000002000000DB0000003D0AD78346A95041295C8F62333254413D0AD7B348A950419A9999B92E325441713D0AF74CA950417B14AE17263254410000008053A9504152B81E951D325441A4703D5A57A9504152B81EC518325441295C8F5262A95041EC51B86E17325441295C8F926BA95041EC51B84E16325441EC51B8DE75A95041D7A3700D153254417B14AEA77FA950415C8FC245163254413333334389A95041CDCCCCDC16325441F6285C7F8CA950413D0AD743163254410AD7A3208FA950410000009015325441CDCCCC1C90A950415C8FC27515325441EC51B8AE99A950413D0AD7A317325441AE47E18A9BA95041666666A617325441C3F528DC9CA95041295C8F2217325441EC51B87E9FA95041CDCCCCAC163254419A9999C9A1A95041295C8F7216325441EC51B8EEA2A9504152B81E5516325441D7A370FDA2A950418FC2F5B812325441295C8F62A1A95041D7A3708D12325441C3F5289C9FA95041C3F528EC11325441EC51B8CE9EA95041AE47E14A11325441000000C09EA9504114AE47E10C3254415C8FC2E59FA9504148E17A140C3254413D0AD753A1A95041C3F528BC0B32544166666646A3A95041D7A370AD0B325441AE47E1CAA3A95041EC51B8AE0D32544152B81E05A4A95041AE47E1EA0F32544100000090A3A950417B14AEC71232544166666646A3A95041EC51B88E14325441295C8F72A3A950417B14AE3716325441D7A3705DA4A950417B14AE971732544114AE47E1A4A95041E17A14FE173254418FC2F5F8A5A95041295C8F721832544148E17AF4ACA9504185EB51D817325441CDCCCC0CB4A95041666666561732544114AE4781BBA9504114AE47E1163254410AD7A320D4A95041C3F528BC133254419A999969DBA95041CDCCCCAC123254418FC2F558DDA950417B14AEA70C32544114AE4721DFA95041295C8F8209325441333333C3DEA95041000000F00732544114AE4781DDA95041B81E850B07325441713D0AB7DDA9504185EB51280532544133333313DEA95041C3F5281C033254413D0AD753DEA95041CDCCCC6C013254413D0AD7B3DEA95041C3F528ECFC315441295C8FC2DEA95041713D0A37FC315441713D0A67E6A9504148E17A04FD315441CDCCCC8CE6A950410AD7A3E0FB315441666666A6E6A950413D0AD7A3FA3154410AD7A380E6A950415C8FC245FA315441F6285CFFE7A9504114AE4741FA315441F6285CFFE7A9504148E17AE4FA315441713D0A17EAA9504148E17A74FE31544148E17AC4EAA950419A9999D9FE3154413D0AD763EBA95041C3F5285CFF315441C3F528ACEBA95041AE47E1FAFF31544133333303ECA95041713D0AB700325441EC51B82EECA95041333333730132544166666616EDA950411F85EB81013254410AD7A3E0EDA95041D7A370AD013254413D0AD7B3F3A9504114AE4781043254413D0AD783F2A950411F85EB7107325441713D0AB7F6A95041F6285C2F09325441713D0A5704AA504152B81E85073254413D0AD73308AA50418FC2F5080732544114AE470105AA5041B81E858B033254411F85EB6104AA5041D7A370BD023254413D0AD763FFA95041A4703DFA0232544100000010FFA95041A4703DCA02325441B81E858BFEA9504152B81E550232544100000030FEA95041CDCCCCAC01325441B81E851BFEA9504148E17AD400325441CDCCCCDCFCA95041D7A3707D0032544100000090FBA9504152B81E05FF315441C3F528ECF9A950418FC2F518FD31544100000030F9A9504166666666FB31544185EB5148F8A95041A4703D7AF9315441A4703D0AF7A95041666666D6F7315441C3F5282CF5A9504100000050F631544185EB5188F3A95041AE47E14AF531544185EB51F8EFA950419A999929F431544100000080EEA950410AD7A350F3315441F6285C7FEDA950417B14AEA7F2315441A4703D7AECA95041F6285C1FF2315441B81E850BEBA9504185EB51C8F13154413D0AD763EAA950413D0AD7F3F1315441295C8F42EAA950413D0AD733F3315441CDCCCCDCE9A95041D7A3706DF331544185EB51D8E8A9504148E17AC4F331544166666656E8A9504166666646F43154410AD7A3F0E7A950418FC2F5C8F4315441F6285CFFE7A9504152B81E85F53154417B14AE47E8A95041E17A145EF6315441AE47E12AE8A95041EC51B81EF8315441F6285CFFE7A9504185EB51F8F831544114AE4701E8A950415C8FC205FA3154418FC2F568E6A95041B81E850BFA3154410AD7A340E6A95041666666A6F93154415C8FC275E5A95041713D0AF7F7315441F6285C8FE5A950417B14AE87F63154419A999949E3A950417B14AE77F63154415C8FC2F5E0A95041E17A146EF631544114AE4771DEA95041E17A14BEF53154411F85EB11DDA95041A4703DCAF4315441F6285C7FDCA95041E17A147EF331544185EB5158DCA95041CDCCCCBCF1315441713D0AF7DBA950410AD7A320F13154419A999929DBA95041D7A3700DF1315441D7A3708DDAA95041EC51B86EF13154410AD7A3C0D9A950413D0AD793F2315441295C8FC2D8A95041333333F3F331544185EB51D8D7A9504152B81E55F4315441EC51B89ED6A9504148E17AB4F3315441AE47E1EAD2A95041EC51B8BEF1315441AE47E1CAD1A9504152B81E95F1315441666666B6D0A95041D7A3707DF13154417B14AED7CEA95041AE47E16AF231544185EB5108CEA950419A999939F231544148E17A54CEA95041295C8F42F331544133333363CDA9504152B81EE5F43154417B14AEA7CBA95041C3F528FCF531544148E17A44CAA950411F85EB91F731544152B81ED5C8A95041C3F5289CF831544148E17AA4C7A95041333333B3F9315441333333F3C6A95041EC51B8FEF93154418FC2F5E8C5A95041EC51B8FEF931544152B81EC5C4A95041A4703D8AFA315441E17A14AEC3A95041713D0A07FC315441D7A3704DC1A9504166666676FD31544152B81E85BFA9504114AE4741FE315441E17A146EBEA95041333333F3FE3154413D0AD733BCA950413D0AD7E3FF315441CDCCCCACB9A950410000003000325441CDCCCC7CB8A9504100000030003254410AD7A3C0B6A95041AE47E1CAFF315441295C8F92B4A9504114AE47B1FF3154413D0AD7E3B2A950410000003000325441F6285CFFB1A95041EC51B8AE00325441EC51B80EB1A95041E17A14EE0032544148E17A04B0A95041AE47E1FA00325441295C8F52AFA950417B14AE0701325441B81E85ABAFA95041A4703D0A00325441CDCCCCCCB1A9504185EB5128FE31544133333323B3A950417B14AEF7FC315441CDCCCCDCB5A9504148E17A94FB315441EC51B87EB7A950419A999909FB31544152B81E45BAA95041AE47E14AFA31544148E17AB4BBA9504185EB5118FA3154411F85EBF1BCA95041E17A140EF931544166666696BDA95041C3F5289CF8315441F6285C1FBFA95041295C8F82F8315441D7A3704DC1A9504166666636F8315441C3F5283CC3A95041A4703DEAF7315441C3F5286CC4A9504185EB5178F7315441295C8FC2C5A950417B14AE87F6315441713D0AA7C6A95041E17A143EF5315441B81E858BC7A9504133333333F4315441E17A143EC8A95041D7A3700DF33154415C8FC205CBA950418FC2F5F8F031544152B81E65C9A9504166666676EE3154413D0AD7C3C7A9504152B81E05EC3154413D0AD793C4A950413D0AD793E93154419A999949C3A95041F6285C8FE8315441F6285CFFC1A9504114AE47E1E7315441713D0AC7C0A9504114AE4711E73154418FC2F548BFA95041B81E85CBE631544152B81E85BDA9504100000000E7315441C3F5287CBBA9504114AE4771E9315441666666D6B8A950417B14AEC7E93154418FC2F598B6A95041F6285C8FE8315441C3F5282CB5A9504152B81E45E73154413D0AD7C3B4A9504114AE4781E53154415C8FC2D5B4A95041E17A14BEE33154417B14AE57B6A95041AE47E1DAE1315441D7A3709DB7A95041A4703D9ADF31544114AE4701B7A9504148E17A84DE3154418FC2F5C8B5A95041AE47E10ADE3154415C8FC275B4A9504133333353DE3154413D0AD763B2A95041CDCCCCBCDF315441D7A3707DB0A95041666666C6E1315441D7A3702DAEA9504148E17A94E1315441C3F5281CADA95041F6285CDFE0315441A4703D5AACA9504148E17A54DF315441713D0A37ACA95041666666D6DD3154415C8FC225ACA95041F6285CAFDC3154411F85EBF1ABA9504166666676DB315441EC51B80EABA95041B81E85BBDA3154413D0AD703A1A95041F6285C9FDE3154419A99996996A95041EC51B86EE2315441CDCCCCCC95A95041C3F528ECE03154413333334394A95041A4703D7ADD315441295C8FA292A9504133333393DB315441713D0AC777A950418FC2F568ED315441000000F073A9504185EB51A8EF315441AE47E18A71A950419A999979F0315441B81E854B6DA9504166666646F1315441295C8F8267A95041713D0A37F33154413D0AD76362A95041713D0A37F431544148E17A445FA9504114AE4781F431544148E17AA45DA950411F85EB61F431544152B81E855BA9504114AE47A1F431544152B81E455AA9504114AE47A1F43154410AD7A35057A950411F85EBE1F23154410AD7A3B055A9504100000000FC315441B81E85DB55A95041A4703D0AFE315441AE47E1FA56A95041333333530A3254410AD7A35056A95041333333F30A3254416666665656A950416666667610325441C3F528EC4BA950418FC2F5A8073254410AD7A3704BA95041A4703D3A073254419A9999E944A9504148E17AD4163254417B14AE673EA95041CDCCCC6C26325441666666E637A9504148E17A04363254411F85EB8138A95041666666263632544114AE471144A950415C8FC275383254413D0AD78346A95041295C8F623332544119000000EC51B89E82A950415C8FC235EF3154419A99995982A95041F6285C1FEE3154419A99995982A9504185EB51F8EC31544114AE47C182A950413D0AD7F3EB315441A4703DFA83A9504114AE47D1EB315441EC51B8FE84A9504185EB51F8EC31544148E17A4485A95041B81E85EBED315441EC51B8FE84A950415C8FC235EF3154410000001085A950418FC2F528F031544185EB517885A950413D0AD7B3F0315441295C8FC286A95041C3F5281CF1315441AE47E12A87A950415C8FC295F131544148E17AA487A95041000000B0F331544148E17AA487A95041B81E850BF5315441EC51B85E87A950410AD7A3E0F6315441E17A148E86A95041A4703D5AF73154410000001085A95041CDCCCC7CF7315441B81E850B84A9504133333303F731544185EB511883A9504148E17A44F63154415C8FC2F582A95041F6285C6FF43154419A99992983A95041D7A3708DF3315441666666C683A950415C8FC265F2315441666666C683A95041666666D6F03154419A99992983A9504148E17AF4EF315441EC51B89E82A950415C8FC235EF315441
+</a>
+
+<b>
+0106000000010000000103000000010000001D0000007508379147A950419EF58031133254413D3E294045A95041A12F1C9618325441656DD5DA43A950413D70C4F11B325441C3F3D24542A95041C76F23C01F32544173E5207640A950412C1FB21B24325441D3ED95843DA950415E271C242B325441F140AC7846A95041F250279E2F32544178F9AFF647A95041582163F02D32544133113CD04CA950413D512996233254416D64A8C151A95041FB80993E1D325441DB9F32DC55A950415C69636214325441CDC2030656A950415C69636214325441CAB61D9C56A950413D27603D10325441BE182F9156A95041B256611F0F325441049B87A456A950417073A4450E325441AE47E13A56A9504148E17A640D325441FCECAF3C56A950414105826F0D325441E6A4942656A950411EECDC5B0D3254416666665656A9504166666676103254411F4D64CD55A95041FEA39A021032544177FA9A2B55A95041CBBEDD790F32544148E17A644FA95041D7A3707D0A325441143D70B64CA950414EB4EB5308325441DCBD79E14BA95041FEBC274909325441A3A3AF8E4AA9504138F14F530C32544175E0BFCC49A950418CA5C2100E3254417417BEDD48A9504132BFBA351032544182DB225848A95041E34C9B68113254417508379147A950419EF5803113325441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2907071 - 3583293
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000001000000010300000002000000DB0000003D0AD78346A95041295C8F62333254413D0AD7B348A950419A9999B92E325441713D0AF74CA950417B14AE17263254410000008053A9504152B81E951D325441A4703D5A57A9504152B81EC518325441295C8F5262A95041EC51B86E17325441295C8F926BA95041EC51B84E16325441EC51B8DE75A95041D7A3700D153254417B14AEA77FA950415C8FC245163254413333334389A95041CDCCCCDC16325441F6285C7F8CA950413D0AD743163254410AD7A3208FA950410000009015325441CDCCCC1C90A950415C8FC27515325441EC51B8AE99A950413D0AD7A317325441AE47E18A9BA95041666666A617325441C3F528DC9CA95041295C8F2217325441EC51B87E9FA95041CDCCCCAC163254419A9999C9A1A95041295C8F7216325441EC51B8EEA2A9504152B81E5516325441D7A370FDA2A950418FC2F5B812325441295C8F62A1A95041D7A3708D12325441C3F5289C9FA95041C3F528EC11325441EC51B8CE9EA95041AE47E14A11325441000000C09EA9504114AE47E10C3254415C8FC2E59FA9504148E17A140C3254413D0AD753A1A95041C3F528BC0B32544166666646A3A95041D7A370AD0B325441AE47E1CAA3A95041EC51B8AE0D32544152B81E05A4A95041AE47E1EA0F32544100000090A3A950417B14AEC71232544166666646A3A95041EC51B88E14325441295C8F72A3A950417B14AE3716325441D7A3705DA4A950417B14AE971732544114AE47E1A4A95041E17A14FE173254418FC2F5F8A5A95041295C8F721832544148E17AF4ACA9504185EB51D817325441CDCCCC0CB4A95041666666561732544114AE4781BBA9504114AE47E1163254410AD7A320D4A95041C3F528BC133254419A999969DBA95041CDCCCCAC123254418FC2F558DDA950417B14AEA70C32544114AE4721DFA95041295C8F8209325441333333C3DEA95041000000F00732544114AE4781DDA95041B81E850B07325441713D0AB7DDA9504185EB51280532544133333313DEA95041C3F5281C033254413D0AD753DEA95041CDCCCC6C013254413D0AD7B3DEA95041C3F528ECFC315441295C8FC2DEA95041713D0A37FC315441713D0A67E6A9504148E17A04FD315441CDCCCC8CE6A950410AD7A3E0FB315441666666A6E6A950413D0AD7A3FA3154410AD7A380E6A950415C8FC245FA315441F6285CFFE7A9504114AE4741FA315441F6285CFFE7A9504148E17AE4FA315441713D0A17EAA9504148E17A74FE31544148E17AC4EAA950419A9999D9FE3154413D0AD763EBA95041C3F5285CFF315441C3F528ACEBA95041AE47E1FAFF31544133333303ECA95041713D0AB700325441EC51B82EECA95041333333730132544166666616EDA950411F85EB81013254410AD7A3E0EDA95041D7A370AD013254413D0AD7B3F3A9504114AE4781043254413D0AD783F2A950411F85EB7107325441713D0AB7F6A95041F6285C2F09325441713D0A5704AA504152B81E85073254413D0AD73308AA50418FC2F5080732544114AE470105AA5041B81E858B033254411F85EB6104AA5041D7A370BD023254413D0AD763FFA95041A4703DFA0232544100000010FFA95041A4703DCA02325441B81E858BFEA9504152B81E550232544100000030FEA95041CDCCCCAC01325441B81E851BFEA9504148E17AD400325441CDCCCCDCFCA95041D7A3707D0032544100000090FBA9504152B81E05FF315441C3F528ECF9A950418FC2F518FD31544100000030F9A9504166666666FB31544185EB5148F8A95041A4703D7AF9315441A4703D0AF7A95041666666D6F7315441C3F5282CF5A9504100000050F631544185EB5188F3A95041AE47E14AF531544185EB51F8EFA950419A999929F431544100000080EEA950410AD7A350F3315441F6285C7FEDA950417B14AEA7F2315441A4703D7AECA95041F6285C1FF2315441B81E850BEBA9504185EB51C8F13154413D0AD763EAA950413D0AD7F3F1315441295C8F42EAA950413D0AD733F3315441CDCCCCDCE9A95041D7A3706DF331544185EB51D8E8A9504148E17AC4F331544166666656E8A9504166666646F43154410AD7A3F0E7A950418FC2F5C8F4315441F6285CFFE7A9504152B81E85F53154417B14AE47E8A95041E17A145EF6315441AE47E12AE8A95041EC51B81EF8315441F6285CFFE7A9504185EB51F8F831544114AE4701E8A950415C8FC205FA3154418FC2F568E6A95041B81E850BFA3154410AD7A340E6A95041666666A6F93154415C8FC275E5A95041713D0AF7F7315441F6285C8FE5A950417B14AE87F63154419A999949E3A950417B14AE77F63154415C8FC2F5E0A95041E17A146EF631544114AE4771DEA95041E17A14BEF53154411F85EB11DDA95041A4703DCAF4315441F6285C7FDCA95041E17A147EF331544185EB5158DCA95041CDCCCCBCF1315441713D0AF7DBA950410AD7A320F13154419A999929DBA95041D7A3700DF1315441D7A3708DDAA95041EC51B86EF13154410AD7A3C0D9A950413D0AD793F2315441295C8FC2D8A95041333333F3F331544185EB51D8D7A9504152B81E55F4315441EC51B89ED6A9504148E17AB4F3315441AE47E1EAD2A95041EC51B8BEF1315441AE47E1CAD1A9504152B81E95F1315441666666B6D0A95041D7A3707DF13154417B14AED7CEA95041AE47E16AF231544185EB5108CEA950419A999939F231544148E17A54CEA95041295C8F42F331544133333363CDA9504152B81EE5F43154417B14AEA7CBA95041C3F528FCF531544148E17A44CAA950411F85EB91F731544152B81ED5C8A95041C3F5289CF831544148E17AA4C7A95041333333B3F9315441333333F3C6A95041EC51B8FEF93154418FC2F5E8C5A95041EC51B8FEF931544152B81EC5C4A95041A4703D8AFA315441E17A14AEC3A95041713D0A07FC315441D7A3704DC1A9504166666676FD31544152B81E85BFA9504114AE4741FE315441E17A146EBEA95041333333F3FE3154413D0AD733BCA950413D0AD7E3FF315441CDCCCCACB9A950410000003000325441CDCCCC7CB8A9504100000030003254410AD7A3C0B6A95041AE47E1CAFF315441295C8F92B4A9504114AE47B1FF3154413D0AD7E3B2A950410000003000325441F6285CFFB1A95041EC51B8AE00325441EC51B80EB1A95041E17A14EE0032544148E17A04B0A95041AE47E1FA00325441295C8F52AFA950417B14AE0701325441B81E85ABAFA95041A4703D0A00325441CDCCCCCCB1A9504185EB5128FE31544133333323B3A950417B14AEF7FC315441CDCCCCDCB5A9504148E17A94FB315441EC51B87EB7A950419A999909FB31544152B81E45BAA95041AE47E14AFA31544148E17AB4BBA9504185EB5118FA3154411F85EBF1BCA95041E17A140EF931544166666696BDA95041C3F5289CF8315441F6285C1FBFA95041295C8F82F8315441D7A3704DC1A9504166666636F8315441C3F5283CC3A95041A4703DEAF7315441C3F5286CC4A9504185EB5178F7315441295C8FC2C5A950417B14AE87F6315441713D0AA7C6A95041E17A143EF5315441B81E858BC7A9504133333333F4315441E17A143EC8A95041D7A3700DF33154415C8FC205CBA950418FC2F5F8F031544152B81E65C9A9504166666676EE3154413D0AD7C3C7A9504152B81E05EC3154413D0AD793C4A950413D0AD793E93154419A999949C3A95041F6285C8FE8315441F6285CFFC1A9504114AE47E1E7315441713D0AC7C0A9504114AE4711E73154418FC2F548BFA95041B81E85CBE631544152B81E85BDA9504100000000E7315441C3F5287CBBA9504114AE4771E9315441666666D6B8A950417B14AEC7E93154418FC2F598B6A95041F6285C8FE8315441C3F5282CB5A9504152B81E45E73154413D0AD7C3B4A9504114AE4781E53154415C8FC2D5B4A95041E17A14BEE33154417B14AE57B6A95041AE47E1DAE1315441D7A3709DB7A95041A4703D9ADF31544114AE4701B7A9504148E17A84DE3154418FC2F5C8B5A95041AE47E10ADE3154415C8FC275B4A9504133333353DE3154413D0AD763B2A95041CDCCCCBCDF315441D7A3707DB0A95041666666C6E1315441D7A3702DAEA9504148E17A94E1315441C3F5281CADA95041F6285CDFE0315441A4703D5AACA9504148E17A54DF315441713D0A37ACA95041666666D6DD3154415C8FC225ACA95041F6285CAFDC3154411F85EBF1ABA9504166666676DB315441EC51B80EABA95041B81E85BBDA3154413D0AD703A1A95041F6285C9FDE3154419A99996996A95041EC51B86EE2315441CDCCCCCC95A95041C3F528ECE03154413333334394A95041A4703D7ADD315441295C8FA292A9504133333393DB315441713D0AC777A950418FC2F568ED315441000000F073A9504185EB51A8EF315441AE47E18A71A950419A999979F0315441B81E854B6DA9504166666646F1315441295C8F8267A95041713D0A37F33154413D0AD76362A95041713D0A37F431544148E17A445FA9504114AE4781F431544148E17AA45DA950411F85EB61F431544152B81E855BA9504114AE47A1F431544152B81E455AA9504114AE47A1F43154410AD7A35057A950411F85EBE1F23154410AD7A3B055A9504100000000FC315441B81E85DB55A95041A4703D0AFE315441AE47E1FA56A95041333333530A3254410AD7A35056A95041333333F30A3254416666665656A950416666667610325441C3F528EC4BA950418FC2F5A8073254410AD7A3704BA95041A4703D3A073254419A9999E944A9504148E17AD4163254417B14AE673EA95041CDCCCC6C26325441666666E637A9504148E17A04363254411F85EB8138A95041666666263632544114AE471144A950415C8FC275383254413D0AD78346A95041295C8F623332544119000000EC51B89E82A950415C8FC235EF3154419A99995982A95041F6285C1FEE3154419A99995982A9504185EB51F8EC31544114AE47C182A950413D0AD7F3EB315441A4703DFA83A9504114AE47D1EB315441EC51B8FE84A9504185EB51F8EC31544148E17A4485A95041B81E85EBED315441EC51B8FE84A950415C8FC235EF3154410000001085A950418FC2F528F031544185EB517885A950413D0AD7B3F0315441295C8FC286A95041C3F5281CF1315441AE47E12A87A950415C8FC295F131544148E17AA487A95041000000B0F331544148E17AA487A95041B81E850BF5315441EC51B85E87A950410AD7A3E0F6315441E17A148E86A95041A4703D5AF73154410000001085A95041CDCCCC7CF7315441B81E850B84A9504133333303F731544185EB511883A9504148E17A44F63154415C8FC2F582A95041F6285C6FF43154419A99992983A95041D7A3708DF3315441666666C683A950415C8FC265F2315441666666C683A95041666666D6F03154419A99992983A9504148E17AF4EF315441EC51B89E82A950415C8FC235EF315441
+</a>
+
+<b>
+0106000000010000000103000000010000001D0000007508379147A950419EF58031133254413D3E294045A95041A12F1C9618325441656DD5DA43A950413D70C4F11B325441C3F3D24542A95041C76F23C01F32544173E5207640A950412C1FB21B24325441D3ED95843DA950415E271C242B325441F140AC7846A95041F250279E2F32544178F9AFF647A95041582163F02D32544133113CD04CA950413D512996233254416D64A8C151A95041FB80993E1D325441DB9F32DC55A950415C69636214325441CDC2030656A950415C69636214325441CAB61D9C56A950413D27603D10325441BE182F9156A95041B256611F0F325441049B87A456A950417073A4450E325441AE47E13A56A9504148E17A640D325441FCECAF3C56A950414105826F0D325441E6A4942656A950411EECDC5B0D3254416666665656A9504166666676103254411F4D64CD55A95041FEA39A021032544177FA9A2B55A95041CBBEDD790F32544148E17A644FA95041D7A3707D0A325441143D70B64CA950414EB4EB5308325441DCBD79E14BA95041FEBC274909325441A3A3AF8E4AA9504138F14F530C32544175E0BFCC49A950418CA5C2100E3254417417BEDD48A9504132BFBA351032544182DB225848A95041E34C9B68113254417508379147A950419EF5803113325441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>211460 - 4132577
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -28 </desc>
+<a>
+0106000000020000000103000000010000000B000000E17A14DEF3295141B81E858B6B4055415C8FC215F3295141D7A3707D5C40554166666616F2295141AE47E16A5C405541295C8FE2D3295141295C8F025A4055411F85EB71D8295141A4703D7A80405541333333E3D8295141295C8F2280405541AE47E1EADC295141AE47E10A7D40554114AE4771E62951411F85EBD175405541CDCCCC2CEE295141AE47E1FA6F405541333333F3EF2951418FC2F5986E405541E17A14DEF3295141B81E858B6B4055410103000000010000000C00000014AE4741C3295141295C8FF244405541AE47E10AB82951410AD7A3804A4055410AD7A3A0AD295141EC51B85E4F405541D7A3709DAD295141EC51B85E574055419A999999AD295141C3F528EC6240554100000040AE295141EC51B86E6540554185EB5148B6295141B81E85FB6040554152B81E55BE295141713D0AF75C405541713D0AC7D0295141666666F659405541A4703D8AD02951415C8FC2653D405541B81E859BCF295141EC51B8EE3D40554114AE4741C3295141295C8FF244405541
+</a>
+
+<b>
+0106000000010000000103000000010000001F00000029A56D82F2295141734FBB725C4055412FBF2778F229514107FD0C805A4055417D189926F22951415FCEB7984D405541C5A59CFFF12951412963CA523E405541A5D22295F12951414BBE7EE23640554117D9CE57EB29514117D9CEC736405541759318A4EA295141819543D32E405541C1630D29DD2951410449C34636405541EDB4A63BCF2951419819C6503E405541D3DA4522CD295141F6D543B83F40554154E3A583CE295141BE9F1AC759405541AC39C9B4CB295141823CBBC95A40554181C54858BF295141F51F3C3C5F405541456A3168B62951416DDD6D7362405541C3DCDB7DAE2951411A43734C6540554100000040AE295141EC51B86E6540554114AE4791AE2951417B14AEA7664055419A999959B7295141E17A145E76405541713D0A37C0295141AE47E13A8640554114AE47F1C12951411F85EBC1864055413D0AD773C8295141A4703D7A8340554148E17AD4CA295141CDCCCC6C88405541AE47E16ACC295141F6285CDF8840554114AE47B1D32951416666662684405541000493F8D7295141919202D880405541DCF51A5DD52951412523BE3169405541295C8FE2D3295141295C8F025A405541180DDB78DA295141B6004F5C5A405541E923EDADE7295141EE577D965B40554133333383F2295141E92631985C40554129A56D82F2295141734FBB725C405541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>211460 - 4132585
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -26 </desc>
+<a>
+0106000000020000000103000000010000000B000000E17A14DEF3295141B81E858B6B4055415C8FC215F3295141D7A3707D5C40554166666616F2295141AE47E16A5C405541295C8FE2D3295141295C8F025A4055411F85EB71D8295141A4703D7A80405541333333E3D8295141295C8F2280405541AE47E1EADC295141AE47E10A7D40554114AE4771E62951411F85EBD175405541CDCCCC2CEE295141AE47E1FA6F405541333333F3EF2951418FC2F5986E405541E17A14DEF3295141B81E858B6B4055410103000000010000000C00000014AE4741C3295141295C8FF244405541AE47E10AB82951410AD7A3804A4055410AD7A3A0AD295141EC51B85E4F405541D7A3709DAD295141EC51B85E574055419A999999AD295141C3F528EC6240554100000040AE295141EC51B86E6540554185EB5148B6295141B81E85FB6040554152B81E55BE295141713D0AF75C405541713D0AC7D0295141666666F659405541A4703D8AD02951415C8FC2653D405541B81E859BCF295141EC51B8EE3D40554114AE4741C3295141295C8FF244405541
+</a>
+
+<b>
+01060000000100000001030000000100000010000000D34D6200D82951418716D91E81405541333333E3D8295141295C8F2280405541AE47E1EADC295141AE47E10A7D40554114AE4771E62951411F85EBD175405541CDCCCC2CEE295141AE47E1FA6F405541333333F3EF2951418FC2F5986E405541E17A14DEF3295141B81E858B6B4055415C8FC215F3295141D7A3707D5C40554129A56D82F2295141734FBB725C40554133333383F2295141E92631985C405541E923EDADE7295141EE577D965B4055413B9EE4ECDC2951418F05AB965A40554109EA47ECD829514124B433475A405541295C8FE2D3295141295C8F025A405541DCF51A5DD52951412523BE3169405541D34D6200D82951418716D91E81405541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>346410 - 1848169
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -594 </desc>
+<a>
+0106000000010000000103000000010000000E000000EEDEF462F3B450417BA84EA5B14B5441628FFF76F0B4504123406EDAB04B5441000000B0E9B4504185EB51E8AE4B544188023EF6E7B4504143126D77AE4B544152B81EF5E7B45041A4703D7AAE4B54411F85EB61D4B4504185EB5198DF4B5441E1625616C2B45041F391986D0E4C544188F9A916CBB45041DEDC28AE0D4C54415EB8BBB6CFB45041298FFC510D4C5441D00F0241E6B45041F58CCAE4D54B544165BBEF42E5B4504112039DA6D54B5441B0496FF0EAB450411DF7F9B8C64B54411027E987F1B45041A99A8E53B64B5441EEDEF462F3B450417BA84EA5B14B5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000EFDEF462F3B450417AA84EA5B14B5441628FFF76F0B4504125406EDAB04B5441000000B0E9B4504185EB51E8AE4B544185023EF6E7B4504147126D77AE4B544152B81EF5E7B45041A4703D7AAE4B54411F85EB61D4B4504185EB5198DF4B5441E3625616C2B45041F291986D0E4C544183F9A916CBB45041E3DC28AE0D4C544166A10A41CEB45041D18A136F0D4C544100000060CEB45041D7A3701D0D4C5441E17A140EE6B4504152B81E85D64B544114AE47C1F4B45041CDCCCCBCB14B5441EFDEF462F3B450417AA84EA5B14B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>346410 - 3570758
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -594 </desc>
+<a>
+0106000000010000000103000000010000000E000000EEDEF462F3B450417BA84EA5B14B5441628FFF76F0B4504123406EDAB04B5441000000B0E9B4504185EB51E8AE4B544188023EF6E7B4504143126D77AE4B544152B81EF5E7B45041A4703D7AAE4B54411F85EB61D4B4504185EB5198DF4B5441E1625616C2B45041F391986D0E4C544188F9A916CBB45041DEDC28AE0D4C54415EB8BBB6CFB45041298FFC510D4C5441D00F0241E6B45041F58CCAE4D54B544165BBEF42E5B4504112039DA6D54B5441B0496FF0EAB450411DF7F9B8C64B54411027E987F1B45041A99A8E53B64B5441EEDEF462F3B450417BA84EA5B14B5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000EFDEF462F3B450417AA84EA5B14B5441628FFF76F0B4504125406EDAB04B5441000000B0E9B4504185EB51E8AE4B544185023EF6E7B4504147126D77AE4B544152B81EF5E7B45041A4703D7AAE4B54411F85EB61D4B4504185EB5198DF4B5441E3625616C2B45041F291986D0E4C544183F9A916CBB45041E3DC28AE0D4C544166A10A41CEB45041D18A136F0D4C544100000060CEB45041D7A3701D0D4C5441E17A140EE6B4504152B81E85D64B544114AE47C1F4B45041CDCCCCBCB14B5441EFDEF462F3B450417AA84EA5B14B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>924345 - 2994880
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -25 </desc>
+<a>
+010600000001000000010300000001000000260000007FE1709D14CB5041E4F32BEF483C544152B81EE526CB5041A4703D4A553C54413D0AD7832ACB5041295C8F52573C5441F6285C4F30CB5041EC51B8EE5B3C5441F6285C7F65CB5041F6285CBF5B3C54410000008085CB5041333333A35B3C54415C8FC22580CB5041CDCCCCAC2B3C5441295C8FC27ECB5041C3F5287C2A3C5441B81E855B65CB5041E17A148E2B3C5441B81E851B4CCB5041EC51B89E2C3C5441C024805934CB50412F70F61F2C3C5441AE47E10A32CB50410AD7A3102C3C5441713D0A8732CB5041CDCCCCEC3C3C5441666666862BCB5041295C8F223D3C5441EC51B86E2BCB5041EC51B8DE3E3C5441295C8F5226CB5041666666F63E3C5441295C8F2226CB5041A4703DAA393C5441295C8F6222CB504166666626393C5441F6285C5F1ECB5041CDCCCC4C393C5441B81E856B1ECB5041295C8FC23D3C5441B81E859B12CB50411F85EBE13D3C5441666666A611CB5041EC51B8BE3D3C5441295C8F5211CB5041A4703DFA343C5441F1FDBE1A0FCB5041D85A98FA343C54411F85EBB10ECB5041666666B6343C5441AE47E16A0ECB50410AD7A310343C544152B81EA50DCB5041EC51B8BE303C5441CDCCCC3C06CB50415C8FC2C5303C5441C841463606CB50411BA49D322E3C54410000003006CB50415C8FC2B52B3C544185EB5198FBCA50415C8FC2A52B3C5441F6285CFFFACA504148E17AB42C3C544179530409FCCA5041CBE7F9862E3C54416FC2448C02CB50410857ABEE373C54419A99991905CB50410AD7A3903B3C54413333337308CB50410AD7A3903F3C5441D7A370DD0BCB504152B81E05433C54417FE1709D14CB5041E4F32BEF483C5441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000B229103C0DCB5041302A1CBF303C5441CDCCCC3C06CB50415C8FC2C5303C5441CE69BE9C05CB50412FD9CC722F3C5441E73B2AFB05CB504155BC7B402C3C544185EB5198FBCA50415C8FC2A52B3C5441F6285CFFFACA504148E17AB42C3C54410AD7A3A0FCCA504114AE47812F3C54419A99991905CB50410AD7A3903B3C54413333337308CB50410AD7A3903F3C5441501C776D0BCB50412D6ED593423C54412911782E0ECB50419724F595443C54414869F5A412CB5041179C62C4413C5441D2B2C60812CB50413BDDD8CC3D3C544168A7898711CB5041EB8181843A3C54415B2A94AD10CB50418A1348FB343C54417B14AE570FCB5041D7A370FD343C54411F85EBB10ECB5041666666B6343C5441AE47E16A0ECB50410AD7A310343C5441B229103C0DCB5041302A1CBF303C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>924345 - 3457141
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -25 </desc>
+<a>
+010600000001000000010300000001000000260000007FE1709D14CB5041E4F32BEF483C544152B81EE526CB5041A4703D4A553C54413D0AD7832ACB5041295C8F52573C5441F6285C4F30CB5041EC51B8EE5B3C5441F6285C7F65CB5041F6285CBF5B3C54410000008085CB5041333333A35B3C54415C8FC22580CB5041CDCCCCAC2B3C5441295C8FC27ECB5041C3F5287C2A3C5441B81E855B65CB5041E17A148E2B3C5441B81E851B4CCB5041EC51B89E2C3C5441C024805934CB50412F70F61F2C3C5441AE47E10A32CB50410AD7A3102C3C5441713D0A8732CB5041CDCCCCEC3C3C5441666666862BCB5041295C8F223D3C5441EC51B86E2BCB5041EC51B8DE3E3C5441295C8F5226CB5041666666F63E3C5441295C8F2226CB5041A4703DAA393C5441295C8F6222CB504166666626393C5441F6285C5F1ECB5041CDCCCC4C393C5441B81E856B1ECB5041295C8FC23D3C5441B81E859B12CB50411F85EBE13D3C5441666666A611CB5041EC51B8BE3D3C5441295C8F5211CB5041A4703DFA343C5441F1FDBE1A0FCB5041D85A98FA343C54411F85EBB10ECB5041666666B6343C5441AE47E16A0ECB50410AD7A310343C544152B81EA50DCB5041EC51B8BE303C5441CDCCCC3C06CB50415C8FC2C5303C5441C841463606CB50411BA49D322E3C54410000003006CB50415C8FC2B52B3C544185EB5198FBCA50415C8FC2A52B3C5441F6285CFFFACA504148E17AB42C3C544179530409FCCA5041CBE7F9862E3C54416FC2448C02CB50410857ABEE373C54419A99991905CB50410AD7A3903B3C54413333337308CB50410AD7A3903F3C5441D7A370DD0BCB504152B81E05433C54417FE1709D14CB5041E4F32BEF483C5441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000B229103C0DCB5041302A1CBF303C5441CDCCCC3C06CB50415C8FC2C5303C5441CE69BE9C05CB50412FD9CC722F3C5441E73B2AFB05CB504155BC7B402C3C544185EB5198FBCA50415C8FC2A52B3C5441F6285CFFFACA504148E17AB42C3C54410AD7A3A0FCCA504114AE47812F3C54419A99991905CB50410AD7A3903B3C54413333337308CB50410AD7A3903F3C5441501C776D0BCB50412D6ED593423C54412911782E0ECB50419724F595443C54414869F5A412CB5041179C62C4413C5441D2B2C60812CB50413BDDD8CC3D3C544168A7898711CB5041EB8181843A3C54415B2A94AD10CB50418A1348FB343C54417B14AE570FCB5041D7A370FD343C54411F85EBB10ECB5041666666B6343C5441AE47E16A0ECB50410AD7A310343C5441B229103C0DCB5041302A1CBF303C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>193076 - 3006221
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -15 </desc>
+<a>
+01060000000100000001030000000100000013000000E5D37048F13051418635AF22017D5441311FAD09FA30514171A2CB74007D544197704B8704315141FF88F18CFF7C54415C0FCAB20B315141D9D5A83FFF7C5441B87A6B13143151418D6F17A5FE7C54417433ED211931514178DC33F7FD7C5441A83FB19A1C3151413C9607FCFC7C54414E654FFB2031514143D06F7EFA7C54412FEC6E301E315141F5BD4949F57C5441D52C626A1A315141FA30C857F67C544109547BBC15315141EE83E1C6F77C544138081600103151419670699BF87C54415C0FCAB20B315141F3F65FD5F87C5441098A256F05315141AC034D49F97C544123ABDC04FF305141088A4383F97C54417812C095F93051412E3D8CD0F97C54419B197448F5305141F769DEE3F97C54412CC783D4F03051412E3D8CD0F97C5441E5D37048F13051418635AF22017D5441
+</a>
+
+<b>
+0106000000010000000103000000010000001C00000099C26E5EF0305141BDE9FC30F57C5441E3F3A7B9F0305141649D18E2F97C5441D9A392D5F0305141E22CA7E1F97C54412AC783D4F0305141303D8CD0F97C54413DC12CDEF230514193B663D9F97C5441B0B84464F9305141104DE1BEF97C54414F680BBEFE30514165B83287F97C544127ABDC04FF305141038A4383F97C54416EA7EDC9FF30514197FC4E7CF97C5441FE840EDA013151413C04D766F97C5441E759E6270931514158576D04F97C5441580FCAB20B315141F6F65FD5F87C54415E364CEB0E31514177CCFAA9F87C54417ED0E9C410315141A278EC7EF87C544109547BBC15315141E983E1C6F77C5441D12C626A1A315141FC30C857F67C54410F9756191E315141F931C14FF57C5441DCF5083616315141C3E6D0C9E97C544160C9A8020731514102B0DDA3ED7C544112A67FA2053151419E5CE9E4E87C5441282DAAEB01315141BA6781DBDC7C54416690FD440D3151417471663EDA7C5441BFFEE8940C315141A6461013D97C5441D7D96DC108315141A48D399ED97C544114AE47010531514133333343DA7C54413D0AD7B3FF305141E17A14FEDA7C5441295C8FE2EE305141C3F5282CDE7C544199C26E5EF0305141BDE9FC30F57C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>193076 - 3822498
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -15 </desc>
+<a>
+01060000000100000001030000000100000013000000E5D37048F13051418635AF22017D5441311FAD09FA30514171A2CB74007D544197704B8704315141FF88F18CFF7C54415C0FCAB20B315141D9D5A83FFF7C5441B87A6B13143151418D6F17A5FE7C54417433ED211931514178DC33F7FD7C5441A83FB19A1C3151413C9607FCFC7C54414E654FFB2031514143D06F7EFA7C54412FEC6E301E315141F5BD4949F57C5441D52C626A1A315141FA30C857F67C544109547BBC15315141EE83E1C6F77C544138081600103151419670699BF87C54415C0FCAB20B315141F3F65FD5F87C5441098A256F05315141AC034D49F97C544123ABDC04FF305141088A4383F97C54417812C095F93051412E3D8CD0F97C54419B197448F5305141F769DEE3F97C54412CC783D4F03051412E3D8CD0F97C5441E5D37048F13051418635AF22017D5441
+</a>
+
+<b>
+0106000000010000000103000000010000001C00000099C26E5EF0305141BDE9FC30F57C5441E3F3A7B9F0305141649D18E2F97C5441D9A392D5F0305141E22CA7E1F97C54412AC783D4F0305141303D8CD0F97C54413DC12CDEF230514193B663D9F97C5441B0B84464F9305141104DE1BEF97C54414F680BBEFE30514165B83287F97C544127ABDC04FF305141038A4383F97C54416EA7EDC9FF30514197FC4E7CF97C5441FE840EDA013151413C04D766F97C5441E759E6270931514158576D04F97C5441580FCAB20B315141F6F65FD5F87C54415E364CEB0E31514177CCFAA9F87C54417ED0E9C410315141A278EC7EF87C544109547BBC15315141E983E1C6F77C5441D12C626A1A315141FC30C857F67C54410F9756191E315141F931C14FF57C5441DCF5083616315141C3E6D0C9E97C544160C9A8020731514102B0DDA3ED7C544112A67FA2053151419E5CE9E4E87C5441282DAAEB01315141BA6781DBDC7C54416690FD440D3151417471663EDA7C5441BFFEE8940C315141A6461013D97C5441D7D96DC108315141A48D399ED97C544114AE47010531514133333343DA7C54413D0AD7B3FF305141E17A14FEDA7C5441295C8FE2EE305141C3F5282CDE7C544199C26E5EF0305141BDE9FC30F57C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>193210 - 1516221
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+0106000000010000000103000000010000001000000048E17AE467B05041295C8FC21BC3544185EB519864B050413D0AD79339C354411F85EB3160B05041295C8F6261C35441F6285CDF6BB0504148E17AB462C354417B14AEF775B0504185EB51D863C354411F85EB817AB050415C8FC21564C35441E17A14FE7EB05041AE47E1AA63C3544152B81EF582B050410000000062C3544114AE47E186B05041000000E05FC354411F85EBE18AB0504114AE47815DC35441E17A149E8EB0504148E17AB43BC35441000000D090B05041333333D327C35441B81E857B87B0504185EB510824C35441666666B67DB050411F85EBD121C35441B81E855B73B050411F85EBF11EC3544148E17AE467B05041295C8FC21BC35441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000C638765D6FB050419E7CFDD51DC35441B382A2196EB05041DCC7077C1DC3544153C7A2056BB05041687E6D293EC35441193E32EB67B050414A30114262C3544190F639A968B0504178398C5762C35441F6285CDF6BB0504148E17AB462C354417B14AEF775B0504185EB51D863C354411F85EB817AB050415C8FC21564C35441E17A14FE7EB05041AE47E1AA63C3544152B81EF582B050410000000062C354410331A89F83B050418FB99CA361C35441CD130BB084B0504190CC472761C35441BD39815385B05041F4B86F6759C35441E95E9C3A87B0504198DB874B47C35441C101AC3C8AB05041EC2FDE1C25C354414F3484A989B050412D0A23EB24C35441B81E857B87B0504185EB510824C35441666666B67DB050411F85EBD121C35441B81E855B73B050411F85EBF11EC35441C638765D6FB050419E7CFDD51DC35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>193210 - 3640411
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+0106000000010000000103000000010000001000000048E17AE467B05041295C8FC21BC3544185EB519864B050413D0AD79339C354411F85EB3160B05041295C8F6261C35441F6285CDF6BB0504148E17AB462C354417B14AEF775B0504185EB51D863C354411F85EB817AB050415C8FC21564C35441E17A14FE7EB05041AE47E1AA63C3544152B81EF582B050410000000062C3544114AE47E186B05041000000E05FC354411F85EBE18AB0504114AE47815DC35441E17A149E8EB0504148E17AB43BC35441000000D090B05041333333D327C35441B81E857B87B0504185EB510824C35441666666B67DB050411F85EBD121C35441B81E855B73B050411F85EBF11EC3544148E17AE467B05041295C8FC21BC35441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000C638765D6FB050419E7CFDD51DC35441B382A2196EB05041DCC7077C1DC3544153C7A2056BB05041687E6D293EC35441193E32EB67B050414A30114262C3544190F639A968B0504178398C5762C35441F6285CDF6BB0504148E17AB462C354417B14AEF775B0504185EB51D863C354411F85EB817AB050415C8FC21564C35441E17A14FE7EB05041AE47E1AA63C3544152B81EF582B050410000000062C354410331A89F83B050418FB99CA361C35441CD130BB084B0504190CC472761C35441BD39815385B05041F4B86F6759C35441E95E9C3A87B0504198DB874B47C35441C101AC3C8AB05041EC2FDE1C25C354414F3484A989B050412D0A23EB24C35441B81E857B87B0504185EB510824C35441666666B67DB050411F85EBD121C35441B81E855B73B050411F85EBF11EC35441C638765D6FB050419E7CFDD51DC35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>6991 - 58982
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -11 </desc>
+<a>
+0106000000010000000103000000010000000B000000CDCCCC6CD5B650417B14AE9783E15441D7A370ED7AB650419A9999A974E154411F85EBD174B65041B81E857B99E154411F85EBA175B65041713D0AA79AE154418FC2F59897B6504114AE4741A0E154413D0AD7339AB65041C3F528BC90E15441F6285C7FD3B65041F6285C6F9AE15441E17A14EED3B65041C3F5282C95E1544114AE4791D4B65041A4703D3A8CE15441A4703D1AD5B6504114AE47D18AE15441CDCCCC6CD5B650417B14AE9783E15441
+</a>
+
+<b>
+0106000000010000000103000000010000003A0000000579F0A4D1B65041825C01F882E154417B2C9CE3D0B650410E461CD882E154411C20BB1BC5B6504190598FE680E15441741825ADBFB65041DF34250180E154410491571FB6B65041E1EFA46D7EE15441543618B8AFB65041B6CD345F7DE1544160C32666AAB65041EF5D847E7CE154419B4AF6C7A6B650412E99B7E57BE15441BB0151DC97B650416952906F79E15441083BE34590B6504162991B2F78E15441E4E7DFD18AB650411441CC4877E154410DE693C786B6504123A9299E76E15441C992D2A180B650410789879A75E15441B6A670ED7AB65041139A99A974E1544124486BEA7AB6504194E8CFBB74E15441F011F0097AB65041C8CD21057AE15441A178978877B65041A9D3951F89E1544173D2FA4A77B65041F7A805938AE154413D02046776B6504155B656F18FE154412758846275B650411E85CB1396E15441563339EA74B65041E5C300E998E154414BA8C8DF74B65041E899F02799E15441C5C8F2DD74B65041B04D013399E15441C8B67ADD74B65041592AD53599E1544104B6981675B65041F7086ADE99E15441625E263175B650417FA9A6049AE154410E26816375B65041A062294D9AE15441CA0A1A6875B65041A41CC8539AE154411238060076B650416F978FB69AE15441FB15B6E278B65041D20F65309BE15441737966AC7DB6504183258DFA9BE154415A94589C82B65041D58904CB9CE15441770BE8418CB650416B6B54629EE15441CED4F59897B650415C414741A0E154413D0AD7339AB65041C3F528BC90E1544189D5C013ACB65041DDCFDBC293E1544164984495ADB650419040200494E15441A1895175AEB650412EBD0E2A94E1544149D9EC42C7B65041CA890A5D98E154415EF0F7F9C7B6504123BF077C98E1544185F3074FCCB650416C30CB3799E1544131CEDAA2CFB65041F4BD01C899E15441CA1165BBD2B65041E0E82E4E9AE154416D1B2B7ED3B65041C983286F9AE15441B62B7313D4B650416D28CF1F93E15441B0160271D4B6504102E80EFF8DE1544114AE4791D4B65041A4703D3A8CE154418B8439D5D4B650419DBC2B878BE154418244AEE6D4B65041AB482A598BE1544198CFF7E6D4B650419E7568588BE154417A0423F8D4B65041B7D4282B8BE154411BDA6925D5B650410995F5D689E15441B24BE64CD5B650416319596286E15441C04AA150D5B650417B38C60E86E154419A879462D5B65041B3A5A27C84E15441CDCCCC6CD5B650417B14AE9783E154415A284509D2B65041EDBD8E0883E154410579F0A4D1B65041825C01F882E15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>7081 - 142552
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+01060000000100000001030000000100000011000000E17A14EEF7BA5041000000105ADB54410AD7A370EFBA504185EB51C85ADB544148E17A54E9BA5041333333335BDB5441B81E85DBE3BA5041D7A3706D5BDB5441AE47E19AE2BA5041333333835BDB544148E17AA4E0BA5041B81E856B5DDB5441C3F5287CA3BA5041B81E85DB98DB544133333363A7BA50415C8FC2F59ADB544166666646B0BA50419A9999999FDB544166666636B9BA504133333313A4DB544152B81EA5BCBA5041A4703DBAA5DB54418FC2F558E3BA5041CDCCCC1C80DB54411F85EB71E4BA5041C3F5280C7FDB5441713D0AB706BB5041CDCCCCBC5DDB5441295C8FE201BB504148E17AC458DB54413333339300BB5041EC51B8FE58DB5441E17A14EEF7BA5041000000105ADB5441
+</a>
+
+<b>
+0106000000010000000103000000010000003200000082227755AFBA5041F8FDCF1B9FDB5441996E2BAFB5BA5041D204F44EA2DB5441CB51168DB9BA50414200EF3CA4DB544139641FA5BCBA504191C93CBAA5DB544170A202D5C2BA50411CFADAB69FDB54417C28DA98C4BA5041F0B3B5FF9DDB54411D2F16ADC5BA50414AB93CF39CDB5441BB607FA5CABA50410668941E98DB54418D1E974DCCBA5041344E678296DB5441530A0DDECCBA5041BB8900F695DB5441FA96D312CDBA5041F89EB5C295DB54419530A68FD7BA5041AFD853918BDB54411D7CB5E6D9BA5041BFC9194B89DB5441774B2C37DFBA50411E40DD2084DB54418FC2F558E3BA5041CDCCCC1C80DB5441E4288ABCE3BA5041ED4C2BBC7FDB5441F7CEBEF9E8BA50419E1CD3A47ADB5441B966720BF5BA5041AAA7ACE96EDB5441DA32AC8BFCBA5041EC583D9F67DB5441B0A6CEEEFCBA504140D1E13E67DB5441B2BD944705BB50412F25F7215FDB5441713D0AB706BB5041CDCCCCBC5DDB5441D82A6BEC04BB5041B29FE2E45BDB5441B05A231504BB5041E95D5D075BDB54417E9CD07202BB50415D8BEA5859DB5441AC3595AA01BB5041538333CE58DB54413333339300BB5041EC51B8FE58DB5441E17A14EEF7BA5041000000105ADB54417D3A7A82F4BA50413F8C415A5ADB54418F1C45F6F0BA504101F546A75ADB54410AD7A370EFBA504185EB51C85ADB5441E37A5B2BEBBA5041825006135BDB544148E17A54E9BA5041333333335BDB544145A24A58E8BA5041DD10AF3D5BDB544188D6D53AE4BA504105447A695BDB5441480CAF6BE2BA50415BD212B15BDB544148E17AA4E0BA5041B81E856B5DDB54417E0C0A5BDDBA50413CC54B9D60DB544169711CB0DBBA50416097373C62DB54419A5597CAD6BA5041A9A47BFE66DB544171EBE632D6BA504153EEE79167DB544109DED7C3D2BA504112F63DE86ADB54416736E929CFBA504137EA3E686EDB5441F0353A79C8BA5041A2FCC2E874DB54413F3BDABCABBA50412DC03ED690DB5441B586454FAABA5041775B8B3992DB544189541562A5BA50415649430397DB5441AF8A2338A4BA50415EF1D32498DB5441FEFA438FA3BA5041B7A7F3C898DB544182227755AFBA5041F8FDCF1B9FDB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>11035 - 52507
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000100000010000000AE47E10A76225141F6285C6F449D544152B81E657122514133333303449D544152B81E957022514148E17AA43F9D5441C3F528BC6F22514152B81E653D9D54417B14AE176022514114AE47613F9D54418FC2F5F84F225141CDCCCC6C419D544148E17A5457225141AE47E12A709D5441000000D063225141000000D0709D54417B14AE77752251419A9999B9719D54411F85EB3176225141B81E851B6B9D5441713D0A6777225141333333F3619D544152B81E0578225141B81E85AB5C9D54418FC2F5087822514114AE4761579D54415C8FC2B577225141EC51B85E529D5441CDCCCC1C77225141CDCCCC9C4C9D5441AE47E10A76225141F6285C6F449D5441
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000B253055478225141C42BE0C7619D54414C75D41779225141D289B8CC5D9D5441BDE5074B792251416CBC09DD569D544161406361792251419FF7AFD5539D5441DE40B13F79225141AECDC16C529D5441E4BF2127792251414AA2AC65519D54412A97DF7C7822514124C01F7E4B9D54415C8FC2B57722514166666696449D544172CBF54076225141C66A0277449D54417BDD828E76225141569D1CED469D544153E8B146772251415EA8D3054D9D54411E6A1AD877225141E980B458539D5441F0502FF5772251416806EE0C559D5441AEAE7DEB77225141A8FB0205579D5441F0502FF577225141E9F017FD589D544123F3E0FE772251410FC2125A5A9D5441ED5D48FF772251411BBF6EDD5C9D54411BE153B17722514102A9AFD75F9D5441BDF66D717622514112A21D53689D5441208EF0C27522514180BB90966D9D54419B3700627522514148D132B7719D5441C3F528EC75225141F6285CBF719D5441962C02BB76225141175236F46A9D544170B0790277225141B64665FA689D54418E6EA92277225141DB5A9716689D5441B253055478225141C42BE0C7619D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>11035 - 62818
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000100000010000000AE47E10A76225141F6285C6F449D544152B81E657122514133333303449D544152B81E957022514148E17AA43F9D5441C3F528BC6F22514152B81E653D9D54417B14AE176022514114AE47613F9D54418FC2F5F84F225141CDCCCC6C419D544148E17A5457225141AE47E12A709D5441000000D063225141000000D0709D54417B14AE77752251419A9999B9719D54411F85EB3176225141B81E851B6B9D5441713D0A6777225141333333F3619D544152B81E0578225141B81E85AB5C9D54418FC2F5087822514114AE4761579D54415C8FC2B577225141EC51B85E529D5441CDCCCC1C77225141CDCCCC9C4C9D5441AE47E10A76225141F6285C6F449D5441
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000B253055478225141C42BE0C7619D54414C75D41779225141D289B8CC5D9D5441BDE5074B792251416CBC09DD569D544161406361792251419FF7AFD5539D5441DE40B13F79225141AECDC16C529D5441E4BF2127792251414AA2AC65519D54412A97DF7C7822514124C01F7E4B9D54415C8FC2B57722514166666696449D544172CBF54076225141C66A0277449D54417BDD828E76225141569D1CED469D544153E8B146772251415EA8D3054D9D54411E6A1AD877225141E980B458539D5441F0502FF5772251416806EE0C559D5441AEAE7DEB77225141A8FB0205579D5441F0502FF577225141E9F017FD589D544123F3E0FE772251410FC2125A5A9D5441ED5D48FF772251411BBF6EDD5C9D54411BE153B17722514102A9AFD75F9D5441BDF66D717622514112A21D53689D5441208EF0C27522514180BB90966D9D54419B3700627522514148D132B7719D5441C3F528EC75225141F6285CBF719D5441962C02BB76225141175236F46A9D544170B0790277225141B64665FA689D54418E6EA92277225141DB5A9716689D5441B253055478225141C42BE0C7619D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>971934 - 3130518
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -50 </desc>
+<a>
+01060000000100000001030000000400000074000000CDCCCCACA8475141000000E014BE5441EC51B87EA94751416666665615BE5441C3F5289CA94751415C8FC20516BE544166666636AD475141B81E856B16BE54410AD7A3A0B0475141C3F528CC16BE54417B14AE47B44751413333333317BE544185EB5128B84751410AD7A3A017BE544114AE4761BE4751410AD7A35018BE5441F6285CDFBF4751419A99995918BE54419A9999A9C04751413D0AD7F318BE5441B81E856BC1475141E17A148E19BE5441E17A147EC2475141F6285CDF19BE5441713D0A97C347514148E17A641ABE54419A999949C44751419A9999791ABE544148E17A84C64751415C8FC2851ABE5441295C8F42C7475141F6285CBF1ABE5441000000E0C74751415C8FC2B51ABE5441000000B0C8475141EC51B88E1ABE54415C8FC295C9475141F6285C7F1ABE5441E17A147ECA475141A4703D6A1ABE5441AE47E1CACB475141666666461ABE54410AD7A310CD47514148E17A641ABE5441E17A140ECD4751417B14AE971ABE54411F85EBF1CB4751413D0AD7731ABE5441D7A3702DCB475141666666761ABE544152B81E35C9475141A4703DAA1ABE54410AD7A340C8475141A4703DDA1ABE5441F6285C0FC7475141B81E85FB1ABE544152B81E75C6475141F6285CBF1ABE5441F6285C4FC4475141000000B01ABE54417B14AE87C34751417B14AE971ABE54415C8FC265C2475141333333131ABE5441C3F5285CC147514114AE47C119BE5441295C8F82C047514114AE472119BE54410AD7A3D0BF4751419A99999918BE5441D7A370BDBE475141A4703D8A18BE544152B81EA5BE4751411F85EB1119BE5441F6285C9FBE475141AE47E18A19BE54411F85EB11BF4751413D0AD7331ABE5441B81E85EBBF4751413D0AD7431BBE5441F6285CBFC04751417B14AE471CBE5441333333A3C0475141AE47E1BA1CBE544114AE4721C1475141D7A3705D1DBE5441E17A149EC2475141666666361DBE5441E17A142EC5475141C3F5282C1DBE5441CDCCCC5CC94751418FC2F5181DBE5441B81E85CBCB475141666666061DBE5441E17A140ECD475141C3F528AC1DBE544148E17A24D0475141B81E85DB20BE5441B81E85CBD1475141CDCCCC6C23BE5441E17A148ED2475141F6285CDF23BE5441AE47E14AD4475141295C8FB224BE54410AD7A3E0D54751417B14AE5724BE5441EC51B82ED74751417B14AEA723BE5441C3F528ACD7475141F6285CFF22BE5441A4703DBAD84751413333333322BE54418FC2F588D9475141EC51B82E20BE544114AE47C1D9475141CDCCCC0C1FBE54415C8FC295DB4751417B14AEB71FBE5441333333E3DC47514185EB51481FBE54418FC2F558DE475141333333731DBE54417B14AE27DF475141CDCCCCDC1BBE5441EC51B85EDF4751419A9999091ABE5441A4703D6ADE475141CDCCCCBC16BE5441CDCCCC4CD6475141F6285CEF14BE54413D0AD7F3D7475141CDCCCC8C17BE5441A4703D7AD8475141E17A144E18BE54418FC2F548D947514152B81E4519BE5441AE47E16AD94751413D0AD7B319BE5441B81E85EBD9475141333333231ABE54413D0AD723DA475141C3F528EC1ABE54418FC2F508DA475141E17A148E1BBE5441D7A370BDD94751413D0AD7E31CBE5441F6285C5FD9475141AE47E1CA1CBE5441B81E85ABD9475141000000E01BBE544148E17AD4D94751411F85EB411BBE5441295C8FC2D9475141AE47E17A1ABE544148E17A24D94751413D0AD7F319BE5441713D0A07D94751413333337319BE5441E17A142ED8475141CDCCCC7C18BE54417B14AEA7D74751417B14AEC717BE54413D0AD7D3D547514148E17AD414BE5441C3F5287CC04751415C8FC21510BE544114AE4781BF475141295C8F020FBE5441A4703D9ABB4751411F85EB210BBE54418FC2F568B947514152B81ED508BE5441713D0A27B64751410000004006BE5441E17A147EB2475141A4703D7A04BE54415C8FC295A3475141B81E852BF9BD54417B14AE67A0475141295C8FA2F8BD544114AE47519C47514185EB51E8F7BD5441295C8FE294475141AE47E1EAF7BD54411F85EB3193475141000000E0F7BD54419A99991992475141713D0A17F9BD5441CDCCCCBC914751417B14AEA7FABD54419A999979914751417B14AE97FBBD5441D7A370FD90475141000000F0FCBD5441AE47E19A924751415C8FC245FEBD54413D0AD73395475141C3F5286C01BE54413333337398475141CDCCCC2C05BE54413D0AD7F39A475141E17A149E0BBE54418FC2F55899475141000000200DBE5441F6285C7F9A475141B81E85AB0EBE544185EB51189C475141AE47E15A0FBE54417B14AEF79D47514114AE474110BE5441333333E39F4751418FC2F59811BE5441C3F528ACA14751410000005013BE5441E17A14FEA14751410000008014BE544152B81E65A24751410AD7A32016BE544114AE47419D4751417B14AE9718BE544148E17AB4A1475141EC51B8FE1DBE5441EC51B83EA3475141713D0AC719BE544152B81E55A5475141CDCCCC8C15BE54413D0AD773A6475141C3F528AC15BE5441C3F5287CA74751413333332315BE5441CDCCCCACA8475141000000E014BE5441110000005C8FC215A547514114AE471114BE544166666676A44751416666666614BE5441AE47E1DAA3475141F6285C5F14BE5441295C8F62A3475141CDCCCC7C13BE544148E17AD4A2475141F6285C8F12BE5441CDCCCC1CA24751413D0AD7D311BE544185EB5128A1475141000000E010BE5441B81E851BA04751419A9999F90FBE54418FC2F5589F47514114AE47810FBE5441C3F5287C9F475141CDCCCCEC0EBE544152B81E55A2475141CDCCCCAC0EBE54415C8FC2F5A4475141CDCCCCEC0EBE54410AD7A370A6475141000000300FBE54411F85EBE1A64751410AD7A32010BE5441CDCCCCCCA6475141D7A3700D11BE54410AD7A310A6475141D7A3709D12BE54415C8FC215A547514114AE471114BE54410B000000000000D09847514152B81EC5FFBD54418FC2F528974751410AD7A3D0FFBD54416666667695475141000000F0FEBD544148E17A14954751418FC2F528FDBD5441E17A14AE9547514100000070FCBD5441F6285CBF96475141C3F528CCFCBD5441D7A3705D9747514133333373FDBD544185EB51989847514133333373FDBD5441713D0A7799475141EC51B8FEFDBD54415C8FC2159947514185EB51D8FEBD5441000000D09847514152B81EC5FFBD54411B00000000000050D0475141E17A14AE1BBE54413D0AD7B3CE4751419A9999191BBE5441000000D0CE475141333333D31ABE544152B81E65D04751415C8FC2751BBE5441713D0AF7D1475141A4703DAA1BBE544152B81EB5D24751410AD7A3101CBE5441B81E854BD54751411F85EB411CBE5441D7A370EDD5475141A4703D7A1CBE5441E17A147ED6475141EC51B8AE1CBE54410AD7A3E0D64751418FC2F5F81CBE544133333343D747514185EB51381DBE5441C3F5280CD8475141A4703D4A1DBE54410AD7A380D84751419A9999891DBE544114AE47F1D8475141666666F61DBE544114AE47C1D9475141CDCCCC0C1FBE5441C3F5288CD9475141CDCCCC2C1FBE5441C3F528BCD8475141F6285C0F1EBE54419A999959D84751413D0AD7B31DBE5441A4703DFAD74751415C8FC2851DBE54418FC2F538D74751410AD7A3701DBE544114AE47C1D6475141A4703D2A1DBE54418FC2F568D64751417B14AEE71CBE544114AE47D1D5475141EC51B8AE1CBE544114AE4741D5475141A4703D7A1CBE54413D0AD7A3D24751418FC2F5481CBE544152B81EE5D1475141295C8FE21BBE544100000050D0475141E17A14AE1BBE5441
+</a>
+
+<b>
+0106000000010000000103000000010000003700000051E634B4C0475141287C382210BE5441A12C9A2BC04751414A29AE5612BE544109CBC4AABF475141B8B7076B14BE5441F5F2022CBF47514117ECCC7616BE544158C35DD9BE475141F1024CCC17BE54411752D7B8BE475141F57FB15218BE544114AE4761BE4751410AD7A35018BE54412591D441BE475141A343596419BE5441AE47E13ABE47514114AE47A119BE5441B38F6798BE47514128C9B4191ABE544123738463BF475141ED17541F1BBE5441C5076874C0475141566ACA7E1CBE544114AE4721C1475141D7A3705D1DBE5441E17A149EC2475141666666361DBE5441E17A142EC5475141C3F5282C1DBE5441EF960497C6475141E50DB0251DBE544134F0DC3BC84751412A24241E1DBE54412BEB6C43CA475141D91516121DBE5441B81E85CBCB475141666666061DBE5441E17A140ECD475141C3F528AC1DBE5441488F72EDCD47514123CA94921EBE54419D4E33E5CE475141796C28921FBE5441037283D8CF4751414B8E278D20BE544148E17A24D0475141B81E85DB20BE5441C9E323B5D0475141588C47BC21BE5441FAF24A5DD14751415B0B8AC122BE5441B81E85CBD1475141CDCCCC6C23BE54414733649AD247514109A934E523BE5441F426167BD44751416032E17723BE544166FC80B5D64751416097AE6922BE5441605B5C9DD8475141BC16E4DB20BE5441A04F0268D9475141D73CA6911FBE5441BDAB293ADA4751419E1F8AFB1EBE5441B66FD213DB475141825E95371FBE54417D881B9ADC475141B409F58A1EBE5441DAD8E836DE4751418128301B1DBE54417B14AE27DF475141CDCCCCDC1BBE54410F57BA4BDF47514111E5CFAA1ABE54410B6AF943DF47514192222EAD19BE5441A13F25E5DE47514178E87F6518BE5441A4703D6ADE475141CDCCCCBC16BE5441EBBD87F5DB4751417ABA263116BE5441ECBF760ED9475141D00A1A8C15BE54410ADA31ACD6475141B5E6400415BE54417D4554D7D44751415A170A9C14BE54415F8E8925D24751418D67B80214BE5441767598C5CF475141B70C987B13BE54412D8FA6DDCD475141D79B230F13BE54417820B95ECB4751410B25208112BE544152407142C8475141452823D011BE5441F0959898C54751417793953811BE5441A2179444C347514124B81BB410BE5441FA642A3BC24751418B20247910BE54413E480EA1C1475141EAAC4C5A10BE544151E634B4C0475141287C382210BE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>971934 - 3351026
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -50 </desc>
+<a>
+01060000000100000001030000000400000074000000CDCCCCACA8475141000000E014BE5441EC51B87EA94751416666665615BE5441C3F5289CA94751415C8FC20516BE544166666636AD475141B81E856B16BE54410AD7A3A0B0475141C3F528CC16BE54417B14AE47B44751413333333317BE544185EB5128B84751410AD7A3A017BE544114AE4761BE4751410AD7A35018BE5441F6285CDFBF4751419A99995918BE54419A9999A9C04751413D0AD7F318BE5441B81E856BC1475141E17A148E19BE5441E17A147EC2475141F6285CDF19BE5441713D0A97C347514148E17A641ABE54419A999949C44751419A9999791ABE544148E17A84C64751415C8FC2851ABE5441295C8F42C7475141F6285CBF1ABE5441000000E0C74751415C8FC2B51ABE5441000000B0C8475141EC51B88E1ABE54415C8FC295C9475141F6285C7F1ABE5441E17A147ECA475141A4703D6A1ABE5441AE47E1CACB475141666666461ABE54410AD7A310CD47514148E17A641ABE5441E17A140ECD4751417B14AE971ABE54411F85EBF1CB4751413D0AD7731ABE5441D7A3702DCB475141666666761ABE544152B81E35C9475141A4703DAA1ABE54410AD7A340C8475141A4703DDA1ABE5441F6285C0FC7475141B81E85FB1ABE544152B81E75C6475141F6285CBF1ABE5441F6285C4FC4475141000000B01ABE54417B14AE87C34751417B14AE971ABE54415C8FC265C2475141333333131ABE5441C3F5285CC147514114AE47C119BE5441295C8F82C047514114AE472119BE54410AD7A3D0BF4751419A99999918BE5441D7A370BDBE475141A4703D8A18BE544152B81EA5BE4751411F85EB1119BE5441F6285C9FBE475141AE47E18A19BE54411F85EB11BF4751413D0AD7331ABE5441B81E85EBBF4751413D0AD7431BBE5441F6285CBFC04751417B14AE471CBE5441333333A3C0475141AE47E1BA1CBE544114AE4721C1475141D7A3705D1DBE5441E17A149EC2475141666666361DBE5441E17A142EC5475141C3F5282C1DBE5441CDCCCC5CC94751418FC2F5181DBE5441B81E85CBCB475141666666061DBE5441E17A140ECD475141C3F528AC1DBE544148E17A24D0475141B81E85DB20BE5441B81E85CBD1475141CDCCCC6C23BE5441E17A148ED2475141F6285CDF23BE5441AE47E14AD4475141295C8FB224BE54410AD7A3E0D54751417B14AE5724BE5441EC51B82ED74751417B14AEA723BE5441C3F528ACD7475141F6285CFF22BE5441A4703DBAD84751413333333322BE54418FC2F588D9475141EC51B82E20BE544114AE47C1D9475141CDCCCC0C1FBE54415C8FC295DB4751417B14AEB71FBE5441333333E3DC47514185EB51481FBE54418FC2F558DE475141333333731DBE54417B14AE27DF475141CDCCCCDC1BBE5441EC51B85EDF4751419A9999091ABE5441A4703D6ADE475141CDCCCCBC16BE5441CDCCCC4CD6475141F6285CEF14BE54413D0AD7F3D7475141CDCCCC8C17BE5441A4703D7AD8475141E17A144E18BE54418FC2F548D947514152B81E4519BE5441AE47E16AD94751413D0AD7B319BE5441B81E85EBD9475141333333231ABE54413D0AD723DA475141C3F528EC1ABE54418FC2F508DA475141E17A148E1BBE5441D7A370BDD94751413D0AD7E31CBE5441F6285C5FD9475141AE47E1CA1CBE5441B81E85ABD9475141000000E01BBE544148E17AD4D94751411F85EB411BBE5441295C8FC2D9475141AE47E17A1ABE544148E17A24D94751413D0AD7F319BE5441713D0A07D94751413333337319BE5441E17A142ED8475141CDCCCC7C18BE54417B14AEA7D74751417B14AEC717BE54413D0AD7D3D547514148E17AD414BE5441C3F5287CC04751415C8FC21510BE544114AE4781BF475141295C8F020FBE5441A4703D9ABB4751411F85EB210BBE54418FC2F568B947514152B81ED508BE5441713D0A27B64751410000004006BE5441E17A147EB2475141A4703D7A04BE54415C8FC295A3475141B81E852BF9BD54417B14AE67A0475141295C8FA2F8BD544114AE47519C47514185EB51E8F7BD5441295C8FE294475141AE47E1EAF7BD54411F85EB3193475141000000E0F7BD54419A99991992475141713D0A17F9BD5441CDCCCCBC914751417B14AEA7FABD54419A999979914751417B14AE97FBBD5441D7A370FD90475141000000F0FCBD5441AE47E19A924751415C8FC245FEBD54413D0AD73395475141C3F5286C01BE54413333337398475141CDCCCC2C05BE54413D0AD7F39A475141E17A149E0BBE54418FC2F55899475141000000200DBE5441F6285C7F9A475141B81E85AB0EBE544185EB51189C475141AE47E15A0FBE54417B14AEF79D47514114AE474110BE5441333333E39F4751418FC2F59811BE5441C3F528ACA14751410000005013BE5441E17A14FEA14751410000008014BE544152B81E65A24751410AD7A32016BE544114AE47419D4751417B14AE9718BE544148E17AB4A1475141EC51B8FE1DBE5441EC51B83EA3475141713D0AC719BE544152B81E55A5475141CDCCCC8C15BE54413D0AD773A6475141C3F528AC15BE5441C3F5287CA74751413333332315BE5441CDCCCCACA8475141000000E014BE5441110000005C8FC215A547514114AE471114BE544166666676A44751416666666614BE5441AE47E1DAA3475141F6285C5F14BE5441295C8F62A3475141CDCCCC7C13BE544148E17AD4A2475141F6285C8F12BE5441CDCCCC1CA24751413D0AD7D311BE544185EB5128A1475141000000E010BE5441B81E851BA04751419A9999F90FBE54418FC2F5589F47514114AE47810FBE5441C3F5287C9F475141CDCCCCEC0EBE544152B81E55A2475141CDCCCCAC0EBE54415C8FC2F5A4475141CDCCCCEC0EBE54410AD7A370A6475141000000300FBE54411F85EBE1A64751410AD7A32010BE5441CDCCCCCCA6475141D7A3700D11BE54410AD7A310A6475141D7A3709D12BE54415C8FC215A547514114AE471114BE54410B000000000000D09847514152B81EC5FFBD54418FC2F528974751410AD7A3D0FFBD54416666667695475141000000F0FEBD544148E17A14954751418FC2F528FDBD5441E17A14AE9547514100000070FCBD5441F6285CBF96475141C3F528CCFCBD5441D7A3705D9747514133333373FDBD544185EB51989847514133333373FDBD5441713D0A7799475141EC51B8FEFDBD54415C8FC2159947514185EB51D8FEBD5441000000D09847514152B81EC5FFBD54411B00000000000050D0475141E17A14AE1BBE54413D0AD7B3CE4751419A9999191BBE5441000000D0CE475141333333D31ABE544152B81E65D04751415C8FC2751BBE5441713D0AF7D1475141A4703DAA1BBE544152B81EB5D24751410AD7A3101CBE5441B81E854BD54751411F85EB411CBE5441D7A370EDD5475141A4703D7A1CBE5441E17A147ED6475141EC51B8AE1CBE54410AD7A3E0D64751418FC2F5F81CBE544133333343D747514185EB51381DBE5441C3F5280CD8475141A4703D4A1DBE54410AD7A380D84751419A9999891DBE544114AE47F1D8475141666666F61DBE544114AE47C1D9475141CDCCCC0C1FBE5441C3F5288CD9475141CDCCCC2C1FBE5441C3F528BCD8475141F6285C0F1EBE54419A999959D84751413D0AD7B31DBE5441A4703DFAD74751415C8FC2851DBE54418FC2F538D74751410AD7A3701DBE544114AE47C1D6475141A4703D2A1DBE54418FC2F568D64751417B14AEE71CBE544114AE47D1D5475141EC51B8AE1CBE544114AE4741D5475141A4703D7A1CBE54413D0AD7A3D24751418FC2F5481CBE544152B81EE5D1475141295C8FE21BBE544100000050D0475141E17A14AE1BBE5441
+</a>
+
+<b>
+0106000000010000000103000000010000003700000051E634B4C0475141287C382210BE5441A12C9A2BC04751414A29AE5612BE544109CBC4AABF475141B8B7076B14BE5441F5F2022CBF47514117ECCC7616BE544158C35DD9BE475141F1024CCC17BE54411752D7B8BE475141F57FB15218BE544114AE4761BE4751410AD7A35018BE54412591D441BE475141A343596419BE5441AE47E13ABE47514114AE47A119BE5441B38F6798BE47514128C9B4191ABE544123738463BF475141ED17541F1BBE5441C5076874C0475141566ACA7E1CBE544114AE4721C1475141D7A3705D1DBE5441E17A149EC2475141666666361DBE5441E17A142EC5475141C3F5282C1DBE5441EF960497C6475141E50DB0251DBE544134F0DC3BC84751412A24241E1DBE54412BEB6C43CA475141D91516121DBE5441B81E85CBCB475141666666061DBE5441E17A140ECD475141C3F528AC1DBE5441488F72EDCD47514123CA94921EBE54419D4E33E5CE475141796C28921FBE5441037283D8CF4751414B8E278D20BE544148E17A24D0475141B81E85DB20BE5441C9E323B5D0475141588C47BC21BE5441FAF24A5DD14751415B0B8AC122BE5441B81E85CBD1475141CDCCCC6C23BE54414733649AD247514109A934E523BE5441F426167BD44751416032E17723BE544166FC80B5D64751416097AE6922BE5441605B5C9DD8475141BC16E4DB20BE5441A04F0268D9475141D73CA6911FBE5441BDAB293ADA4751419E1F8AFB1EBE5441B66FD213DB475141825E95371FBE54417D881B9ADC475141B409F58A1EBE5441DAD8E836DE4751418128301B1DBE54417B14AE27DF475141CDCCCCDC1BBE54410F57BA4BDF47514111E5CFAA1ABE54410B6AF943DF47514192222EAD19BE5441A13F25E5DE47514178E87F6518BE5441A4703D6ADE475141CDCCCCBC16BE5441EBBD87F5DB4751417ABA263116BE5441ECBF760ED9475141D00A1A8C15BE54410ADA31ACD6475141B5E6400415BE54417D4554D7D44751415A170A9C14BE54415F8E8925D24751418D67B80214BE5441767598C5CF475141B70C987B13BE54412D8FA6DDCD475141D79B230F13BE54417820B95ECB4751410B25208112BE544152407142C8475141452823D011BE5441F0959898C54751417793953811BE5441A2179444C347514124B81BB410BE5441FA642A3BC24751418B20247910BE54413E480EA1C1475141EAAC4C5A10BE544151E634B4C0475141287C382210BE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>13927 - 1422450
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -508 </desc>
+<a>
+010600000001000000010300000001000000270000009A999999001C5141CDCCCC2CFC21554152B81EA5FE1B5141C3F5280CFD21554166666676FD1B5141AE47E13AFE215541E17A14BEFC1B51418FC2F5B8FF21554133333313FC1B51413D0AD743012255419A9999C9FA1B5141A4703D9A022255413D0AD793F81B51410000006003225541713D0AE7F51B5141D7A370DD04225541AE47E13AF31B5141E17A144E06225541E17A147EF01B5141295C8FB2072255410AD7A350F01B5141CDCCCC2C082255418FC2F5E8EF1B51418FC2F59808225541000000D0EF1B514133333333092255415C8FC275EF1B51415C8FC2F5092255417B14AEE7EE1B5141B81E854B0A22554133333383EE1B5141E17A14CE0A22554152B81E15EE1B51418FC2F5680B22554152B81E85ED1B5141B81E853B0C225541C3F528ECEC1B514114AE47F10C225541F6285C8FEA1B51413333333311225541AE47E19AF31B51413D0AD70317225541EC51B8FEFC1B514185EB51C8132255410AD7A360FF1B514166666686142255418FC2F528031C514148E17AB41522554185EB51C8071C51415C8FC225172255415C8FC2F5091C5141333333530B2255411F85EB310B1C51419A9999C904225541666666560C1C5141E17A148EFF21554148E17AE40D1C5141D7A3705DFB21554152B81E65101C51418FC2F548F621554133333343111C51410AD7A310F12155411F85EB810D1C51411F85EBA1F1215541E17A148E0B1C5141AE47E1CAF3215541C3F5286C0A1C514185EB5128F62155415C8FC2F5091C5141D7A370ADF8215541713D0AC7081C5141295C8F52FA215541295C8FD2061C514152B81E05FC215541E17A14DE041C514114AE4761FC2155419A999999001C5141CDCCCC2CFC215541
+</a>
+
+<b>
+010600000001000000010300000001000000260000009A999999001C5141CDCCCC2CFC21554152B81EA5FE1B5141C3F5280CFD21554166666676FD1B5141AE47E13AFE215541E17A14BEFC1B51418FC2F5B8FF21554133333313FC1B51413D0AD743012255419A9999C9FA1B5141A4703D9A022255413D0AD793F81B51410000006003225541713D0AE7F51B5141D7A370DD04225541AE47E13AF31B5141E17A144E06225541E17A147EF01B5141295C8FB2072255410AD7A350F01B5141CDCCCC2C082255418FC2F5E8EF1B51418FC2F59808225541000000D0EF1B514133333333092255415C8FC275EF1B51415C8FC2F5092255417B14AEE7EE1B5141B81E854B0A22554133333383EE1B5141E17A14CE0A22554152B81E15EE1B51418FC2F5680B22554152B81E85ED1B5141B81E853B0C225541C3F528ECEC1B514114AE47F10C225541F6285C8FEA1B51413333333311225541AE47E19AF31B51413D0AD70317225541EC51B8FEFC1B514185EB51C8132255410AD7A360FF1B514166666686142255418FC2F528031C514148E17AB41522554185EB51C8071C51415C8FC225172255415C8FC2F5091C5141333333530B2255411F85EB310B1C51419A9999C904225541553A6B3F0C1C5141D1A254F7FF21554102BA165A0C1C5141C8F52384FF215541A72349F40D1C5141DFDA5A3DFB21554187AD077C0F1C5141EF2F2022F8215541C7BCF3D80C1C51412E3CC898F72155410A2ED1580A1C5141296EB691F62155415C8FC2F5091C5141D7A370ADF8215541713D0AC7081C5141295C8F52FA215541295C8FD2061C514152B81E05FC215541E17A14DE041C514114AE4761FC2155419A999999001C5141CDCCCC2CFC215541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>13927 - 3534514
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -508 </desc>
+<a>
+010600000001000000010300000001000000270000009A999999001C5141CDCCCC2CFC21554152B81EA5FE1B5141C3F5280CFD21554166666676FD1B5141AE47E13AFE215541E17A14BEFC1B51418FC2F5B8FF21554133333313FC1B51413D0AD743012255419A9999C9FA1B5141A4703D9A022255413D0AD793F81B51410000006003225541713D0AE7F51B5141D7A370DD04225541AE47E13AF31B5141E17A144E06225541E17A147EF01B5141295C8FB2072255410AD7A350F01B5141CDCCCC2C082255418FC2F5E8EF1B51418FC2F59808225541000000D0EF1B514133333333092255415C8FC275EF1B51415C8FC2F5092255417B14AEE7EE1B5141B81E854B0A22554133333383EE1B5141E17A14CE0A22554152B81E15EE1B51418FC2F5680B22554152B81E85ED1B5141B81E853B0C225541C3F528ECEC1B514114AE47F10C225541F6285C8FEA1B51413333333311225541AE47E19AF31B51413D0AD70317225541EC51B8FEFC1B514185EB51C8132255410AD7A360FF1B514166666686142255418FC2F528031C514148E17AB41522554185EB51C8071C51415C8FC225172255415C8FC2F5091C5141333333530B2255411F85EB310B1C51419A9999C904225541666666560C1C5141E17A148EFF21554148E17AE40D1C5141D7A3705DFB21554152B81E65101C51418FC2F548F621554133333343111C51410AD7A310F12155411F85EB810D1C51411F85EBA1F1215541E17A148E0B1C5141AE47E1CAF3215541C3F5286C0A1C514185EB5128F62155415C8FC2F5091C5141D7A370ADF8215541713D0AC7081C5141295C8F52FA215541295C8FD2061C514152B81E05FC215541E17A14DE041C514114AE4761FC2155419A999999001C5141CDCCCC2CFC215541
+</a>
+
+<b>
+010600000001000000010300000001000000260000009A999999001C5141CDCCCC2CFC21554152B81EA5FE1B5141C3F5280CFD21554166666676FD1B5141AE47E13AFE215541E17A14BEFC1B51418FC2F5B8FF21554133333313FC1B51413D0AD743012255419A9999C9FA1B5141A4703D9A022255413D0AD793F81B51410000006003225541713D0AE7F51B5141D7A370DD04225541AE47E13AF31B5141E17A144E06225541E17A147EF01B5141295C8FB2072255410AD7A350F01B5141CDCCCC2C082255418FC2F5E8EF1B51418FC2F59808225541000000D0EF1B514133333333092255415C8FC275EF1B51415C8FC2F5092255417B14AEE7EE1B5141B81E854B0A22554133333383EE1B5141E17A14CE0A22554152B81E15EE1B51418FC2F5680B22554152B81E85ED1B5141B81E853B0C225541C3F528ECEC1B514114AE47F10C225541F6285C8FEA1B51413333333311225541AE47E19AF31B51413D0AD70317225541EC51B8FEFC1B514185EB51C8132255410AD7A360FF1B514166666686142255418FC2F528031C514148E17AB41522554185EB51C8071C51415C8FC225172255415C8FC2F5091C5141333333530B2255411F85EB310B1C51419A9999C904225541553A6B3F0C1C5141D1A254F7FF21554102BA165A0C1C5141C8F52384FF215541A72349F40D1C5141DFDA5A3DFB21554187AD077C0F1C5141EF2F2022F8215541C7BCF3D80C1C51412E3CC898F72155410A2ED1580A1C5141296EB691F62155415C8FC2F5091C5141D7A370ADF8215541713D0AC7081C5141295C8F52FA215541295C8FD2061C514152B81E05FC215541E17A14DE041C514114AE4761FC2155419A999999001C5141CDCCCC2CFC215541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>19079 - 265641
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -169 </desc>
+<a>
+0106000000010000000103000000010000000F0000001F85EBE10D725141295C8FF2369B54411F85EBE10D72514152B81ED52E9B5441CDCCCC3CFE715141713D0A072F9B54419A9999E9FD7151417B14AE67289B54411F85EBD1F77151411F85EB51279B5441295C8F92F5715141CDCCCC7C309B544152B81EF5F17151417B14AE873D9B544152B81EB5F0715141E17A14BE409B5441E17A143EEF7151415C8FC245439B54415C8FC2A5EC715141713D0A57469B54415C8FC2F5EC715141CDCCCCAC4D9B54413D0AD7B30E725141F6285C6F4E9B5441000000300E7251419A9999294C9B5441D7A370AD0E725141713D0A47379B54411F85EBE10D725141295C8FF2369B5441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000B81E851BFB7151415C8FC205649B54413A9955ADFF71514196DB0DAA649B5441BD908AD9FF7151412FCAE6F6639B5441B8F22BF7067251413F404EEF649B5441828C2554077251411F541AA9659B5441D16F275C0C72514160023B67669B544141CABC6E2A72514199FA75A56A9B5441EBDE4EB7307251418B5204876B9B54410E7A616035725141FDD826336C9B5441C6D9F89A367251416D21A3626C9B5441814BF6E9347251412D47E121619B54418D957DC3237251411BFFD5155F9B544186A1C065237251415CD1BD374F9B5441208CCCE7227251413B42FA324F9B54413D0AD7B30E725141F6285C6F4E9B544191E50D590B725141F09C54284F9B5441A7BF472D0A725141F0AF37BE4F9B5441B1C3542C09725141E86E74FE4F9B54414D149DB507725141E86E74FE4F9B5441E87BD5D305725141EEC627534F9B544122BEDBCD037251410096AE384E9B544137931367FF715141D60324174E9B54416117391CFC715141761A28044E9B54415C8FC2F5EC715141CDCCCCAC4D9B54415614CCDFF07151410B9FC8A8559B544163B70D0AEF7151415DD92AA35D9B544185EB51F8F7715141713D0AD75D9B5441F6285CAFF971514185EB51F85F9B5441B81E851BFB7151415C8FC205649B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>27037 - 59307
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+010600000001000000010300000001000000120000000AD7A39099E85041D7A370EDECFD5441AE47E1EAA5E850413D0AD7E3EAFD5441EC51B85EA1E85041F6285C5FD7FD5441A4703D5AA0E85041A4703DCACEFD544100000040A0E850410AD7A3E0C3FD544148E17A449DE85041B81E857BA3FD54419A9999A98CE8504100000010A3FD544185EB51588AE8504100000010A3FD54415C8FC2D588E8504114AE47C1A3FD54417B14AE478AE8504133333323B0FD5441000000908BE85041D7A3702DBBFD54415C8FC2F58CE850410AD7A360C2FD5441333333D38FE850418FC2F578CBFD5441A4703D8A92E8504114AE4771D4FD54411F85EB1195E85041713D0A77DEFD5441EC51B87E97E8504100000080E9FD5441D7A3700D98E850419A9999E9EBFD54410AD7A39099E85041D7A370EDECFD5441
+</a>
+
+<b>
+010600000001000000010300000001000000260000006F2E33CFA3E85041C3B893D7E1FD5441620DEEE2A1E85041044ACB96D9FD5441EC51B85EA1E85041F6285C5FD7FD5441D5ACF215A1E850414C2A89F9D4FD5441FE5CDD0EA1E850417F14CABDD4FD544188839690A0E85041DDADA894D0FD5441618CE47EA0E85041E5EB66FFCFFD5441A4703D5AA0E85041A4703DCACEFD5441B08DAC55A0E85041C2C921E4CCFD544100000040A0E850410AD7A3E0C3FD5441C4A046889EE850413CDB7D38B1FD544173D949509EE85041D39C5FD8AEFD5441F804A4239EE850413D4E6CF3ACFD544153086F109EE85041A080CD22ACFD54414305672E9DE85041092AF67AA3FD5441311A76B091E850416EA18C30A3FD5441976F7F1C91E85041148BCE2CA3FD54419A9999A98CE8504100000010A3FD544185EB51588AE8504100000010A3FD544108DB6CDD89E85041F9555C48A3FD54418FE141DB88E85041404D63F0A3FD54416616E65E89E8504116407358A8FD544171BED6418AE85041165C25F1AFFD54412A833E858BE85041FA1850C1BAFD5441E4E129758CE85041C3D4E9C3BFFD54416B5B5F948DE8504154952858C4FD5441EFC8E0AC8EE85041960DA1D2C7FD5441333333D38FE850418FC2F578CBFD5441A4703D8A92E8504114AE4771D4FD54415F93889C94E850416B8D04A6DCFD54411F85EB1195E85041713D0A77DEFD544195D0780F97E850413192C385E7FD5441498E609597E85041D0AC0BE2E9FD544177F2F89697E85041D3EDF2E8E9FD5441CD16891298E85041A01A0BEBEBFD5441AD345DBA99E850419BC98EE6ECFD5441AE47E1EAA5E850413D0AD7E3EAFD54416F2E33CFA3E85041C3B893D7E1FD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>27067 - 59317
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -19 </desc>
+<a>
+0106000000010000000103000000010000000D000000C3F5282C98E95041E17A14EECBFF544152B81E459FE9504152B81EA5B6FF54411F85EBF19EE9504152B81E35B5FF5441B81E857B9DE950411F85EB21B0FF544148E17AF49AE950419A999979A2FF54413333337397E950410000008094FF54415C8FC2D596E95041AE47E19A94FF544114AE47E195E9504152B81EC594FF54410AD7A3408EE950415C8FC22597FF54410AD7A3C092E95041D7A370BDAFFF54417B14AE2797E95041B81E85CBC7FF544152B81E7597E950413D0AD773C9FF5441C3F5282C98E95041E17A14EECBFF5441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000B81E857B9DE950411F85EB21B0FF5441963372729CE95041DFB99389AAFF54414E88CFF99BE950415958B7FDA7FF544162BFDC479BE95041444B293CA4FF54415A91104E9AE95041535013E29FFF544141E4C9289AE950412820734D9FFF54417FAAE39999E9504126E5AF139DFF5441122F0E4999E9504167A563D19BFF544100CDE1FC98E95041AE79ACA19AFF5441E1956E2998E950411198965697FF544196F7BB7797E950416C2A149294FF5441E3C093E18EE950419E8098F396FF5441A2C685448EE95041736BFA3A97FF544150D961628FE95041C08433559DFF5441A46AA6F491E950419B8FA262ABFF544113AE55A292E95041A44BD217AFFF5441966B533195E9504136C8AF12BDFF5441EA3C38AC95E95041F9D42BB2BFFF54417B14AE2797E95041B81E85CBC7FF5441C314016D97E95041D6F35E47C9FF5441792022B697E95041D0061D55CAFF5441E6D154CF97E9504156E76CACCAFF5441B7DB2DD997E95041C2638CCECAFF5441CC6C8CE997E9504193D94407CBFF5441A6AF2E3798E950418B4806CDCBFF5441F3340DC99CE950411231A718BEFF544152B81E459FE9504152B81EA5B6FF54411F85EBF19EE9504152B81E35B5FF5441B81E857B9DE950411F85EB21B0FF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>30106 - 4022982
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -97 </desc>
+<a>
+0106000000010000000103000000010000001A000000CDCCCC4C384A5141EC51B8DE4D885441F6285C4F504A5141713D0A474D885441EC51B82E504A5141A4703D7A45885441CDCCCC5C514A514185EB51D84488544166666666544A51415C8FC2F5438854419A999939574A514152B81EB5438854413D0AD7735C4A5141A4703DCA4388544185EB5178614A5141A4703DCA4388544185EB5178614A5141D7A3701D4A88544185EB5198614A51413D0AD7A34F885441CDCCCC4C624A5141D7A370CD58885441F6285C6F664A5141666666165888544152B81ED5694A51410000003057885441CDCCCCBC734A51415C8FC235578854410AD7A3F0794A51417B14AE3758885441333333C3804A514152B81E8559885441000000D0814A5141713D0AB7588854419A9999E9824A5141CDCCCC8C49885441CDCCCC9C844A51411F85EB3132885441666666E6874A51419A9999D904885441B81E85FB864A51417B14AEB70388544114AE4761854A51413333338303885441A4703DEA644A5141333333C3028854419A9999A93D4A51410000000004885441B81E85BB3A4A5141333333A32A885441CDCCCC4C384A5141EC51B8DE4D885441
+</a>
+
+<b>
+0106000000010000000103000000010000001F00000085EB5198614A51413D0AD7A34F885441731535DD614A5141CF8FE8C258885441F6285C6F664A5141666666165888544152B81ED5694A51410000003057885441CDCCCCBC734A51415C8FC235578854410AD7A3F0794A51417B14AE3758885441333333C3804A514152B81E8559885441000000D0814A5141713D0AB7588854419A9999E9824A5141CDCCCC8C49885441CDCCCC9C844A51411F85EB3132885441666666E6874A51419A9999D904885441B81E85FB864A51417B14AEB70388544114AE4761854A51413333338303885441A4703DEA644A5141333333C3028854419A9999A93D4A51410000000004885441B81E85BB3A4A5141333333A32A885441CDCCCC4C384A5141EC51B8DE4D885441B280304F504A5141DC709B3C4D88544153EED94D504A5141181CBEEA4C885441266E5D08514A5141386356E34C885441266E5D08514A51411068A03045885441F601241C514A51419FB2F11B45885441EBDE1019514A5141F8A4D2ED44885441C976A35A514A5141B7A094DA44885441CDCCCC5C514A514185EB51D84488544166666666544A51415C8FC2F5438854419A999939574A514152B81EB5438854413D0AD7735C4A5141A4703DCA4388544185EB5178614A5141A4703DCA4388544185EB5178614A5141D7A3701D4A88544185EB5198614A51413D0AD7A34F885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>232507 - 203812
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+01060000000100000001030000000100000027000000A4703D2A62AB5041F6285C7F1D605441CDCCCC8C5EAB504114AE4711196054417B14AEE756AB5041C3F5280C0B60544148E17A7454AB5041333333030C6054410AD7A3A04CAB50415C8FC2F50D605441F6285CFF45AB5041B81E85DB006054411F85EBB13BAB5041C3F5289CEC5F54410AD7A3F038AB50410AD7A330E75F54415C8FC2552FAB5041C3F528CCE85F5441B81E859B28AB50411F85EB01EA5F54415C8FC2D526AB504152B81EB5EA5F5441CDCCCC5C26AB5041713D0AF7EB5F54413D0AD77336AB5041000000300B605441D7A370DD3CAB5041000000F0086054418FC2F57843AB50410AD7A3800C605441AE47E1DA47AB5041666666E61060544185EB51384CAB50416666662614605441713D0AA752AB504114AE47811B605441A4703D1A59AB5041EC51B8FE216054413D0AD7F35AAB5041B81E85DB2360544148E17A245EAB504185EB5108266054413333330367AB50411F85EB212C60544185EB51586BAB50419A9999E931605441333333B371AB5041AE47E18A3360544152B81EB576AB5041A4703D8A346054410AD7A3D078AB504133333393356054411F85EB7180AB50411F85EBC135605441000000908AAB504152B81E7538605441A4703D5A9DAB5041D7A370ED3F605441713D0A27A0AB5041E17A14CE42605441B81E852BA3AB50415C8FC285356054418FC2F5C8B3AB5041E17A144E3760544114AE47D1B3AB5041D7A3700D3660544152B81E5582AB5041EC51B8BE306054411F85EBB17BAB50417B14AE672F605441295C8F7276AB50410AD7A3102D60544185EB51F86FAB50419A9999E9286054415C8FC22567AB5041E17A143E22605441A4703D2A62AB5041F6285C7F1D605441
+</a>
+
+<b>
+010600000001000000010300000001000000360000008D1E852BA3AB5041878FC28535605441EDCE8930A8AB50413ABD9E0F36605441F9DFE73EA8AB5041E3542911366054418FC2F5C8B3AB5041767A144E37605441E1B7A1CAB3AB5041CC9FA70D376054418FC7C3CEB3AB5041C0925F6E3660544191B415D0B3AB5041AD6E803B3660544112AE47D1B3AB504122A4700D3660544145A0F85E9EAB5041161594C033605441BBEA71AE9CAB5041A41E30923360544152B81E5582AB5041EC51B8BE3060544184BDC5FD7EAB504136270A12306054413485EBB17BAB5041E614AE672F605441095C8F7276AB504176D7A3102D60544145EB51F86FAB5041059A99E928605441928FC22567AB50412C7B143E22605441563A4ABD65AB5041F1DBCAE620605441A4703D2A62AB5041F6285C7F1D6054410398AE6060AB5041C951A54E1B6054416CCCCC8C5EAB5041F4AD4711196054410ED73C3E58AB5041677B5E800D6054417B14AEE756AB5041C3F5280C0B605441AE501CC456AB504132842B1A0B60544148E17A7454AB5041333333030C605441B6FDE1B44CAB5041943AB9F00D605441123C32534CAB5041A7272A290E6054419326541548AB50410E29E9C41060544100B208E947AB50419FAD24EC10605441AC6CA38149AB5041BF98AFD8106054416F9AA3574CAB5041FDB6AFBC1260544112C9A32D4FAB5041D9C766FA156054415962ED5556AB50415B43678A1D605441C62683EA59AB5041FD3C7AA9206054416DDD369A5BAB50411645D521226054418B29857C5EAB5041F14E7A7024605441176BD3FF5FAB50417B8352A625605441081CEEAD61AB5041F5DD67FE26605441171F139168AB5041C976FADA2B6054416A20CADC6AAB5041550ED66B2E60544182F3379E6CAB5041C45A1FDA3060544121AA131371AB50416FB5B1EE3160544175ABCA5E73AB50416FB5B1EE316054415280A6B779AB50419F1F44F5336054410BCEA6717EAB504148C6682C3560544191ED5DA182AB504108E4B1C4346054411C85393285AB504116981FA234605441F61DCC0E8AAB5041D589D6FB35605441E4D55ECF90AB5041BAC61F78376054414516847A9BAB504175C88D0F3C6054417B08F21F9FAB5041212320243D605441724628F2A0AB50411959FE4F3F605441B61B7720A2AB5041669F491D3A6054419DA87EADA2AB5041D43180B0376054418D1E852BA3AB5041878FC28535605441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>232507 - 377960
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+01060000000100000001030000000100000027000000A4703D2A62AB5041F6285C7F1D605441CDCCCC8C5EAB504114AE4711196054417B14AEE756AB5041C3F5280C0B60544148E17A7454AB5041333333030C6054410AD7A3A04CAB50415C8FC2F50D605441F6285CFF45AB5041B81E85DB006054411F85EBB13BAB5041C3F5289CEC5F54410AD7A3F038AB50410AD7A330E75F54415C8FC2552FAB5041C3F528CCE85F5441B81E859B28AB50411F85EB01EA5F54415C8FC2D526AB504152B81EB5EA5F5441CDCCCC5C26AB5041713D0AF7EB5F54413D0AD77336AB5041000000300B605441D7A370DD3CAB5041000000F0086054418FC2F57843AB50410AD7A3800C605441AE47E1DA47AB5041666666E61060544185EB51384CAB50416666662614605441713D0AA752AB504114AE47811B605441A4703D1A59AB5041EC51B8FE216054413D0AD7F35AAB5041B81E85DB2360544148E17A245EAB504185EB5108266054413333330367AB50411F85EB212C60544185EB51586BAB50419A9999E931605441333333B371AB5041AE47E18A3360544152B81EB576AB5041A4703D8A346054410AD7A3D078AB504133333393356054411F85EB7180AB50411F85EBC135605441000000908AAB504152B81E7538605441A4703D5A9DAB5041D7A370ED3F605441713D0A27A0AB5041E17A14CE42605441B81E852BA3AB50415C8FC285356054418FC2F5C8B3AB5041E17A144E3760544114AE47D1B3AB5041D7A3700D3660544152B81E5582AB5041EC51B8BE306054411F85EBB17BAB50417B14AE672F605441295C8F7276AB50410AD7A3102D60544185EB51F86FAB50419A9999E9286054415C8FC22567AB5041E17A143E22605441A4703D2A62AB5041F6285C7F1D605441
+</a>
+
+<b>
+010600000001000000010300000001000000360000008D1E852BA3AB5041878FC28535605441EDCE8930A8AB50413ABD9E0F36605441F9DFE73EA8AB5041E3542911366054418FC2F5C8B3AB5041767A144E37605441E1B7A1CAB3AB5041CC9FA70D376054418FC7C3CEB3AB5041C0925F6E3660544191B415D0B3AB5041AD6E803B3660544112AE47D1B3AB504122A4700D3660544145A0F85E9EAB5041161594C033605441BBEA71AE9CAB5041A41E30923360544152B81E5582AB5041EC51B8BE3060544184BDC5FD7EAB504136270A12306054413485EBB17BAB5041E614AE672F605441095C8F7276AB504176D7A3102D60544145EB51F86FAB5041059A99E928605441928FC22567AB50412C7B143E22605441563A4ABD65AB5041F1DBCAE620605441A4703D2A62AB5041F6285C7F1D6054410398AE6060AB5041C951A54E1B6054416CCCCC8C5EAB5041F4AD4711196054410ED73C3E58AB5041677B5E800D6054417B14AEE756AB5041C3F5280C0B605441AE501CC456AB504132842B1A0B60544148E17A7454AB5041333333030C605441B6FDE1B44CAB5041943AB9F00D605441123C32534CAB5041A7272A290E6054419326541548AB50410E29E9C41060544100B208E947AB50419FAD24EC10605441AC6CA38149AB5041BF98AFD8106054416F9AA3574CAB5041FDB6AFBC1260544112C9A32D4FAB5041D9C766FA156054415962ED5556AB50415B43678A1D605441C62683EA59AB5041FD3C7AA9206054416DDD369A5BAB50411645D521226054418B29857C5EAB5041F14E7A7024605441176BD3FF5FAB50417B8352A625605441081CEEAD61AB5041F5DD67FE26605441171F139168AB5041C976FADA2B6054416A20CADC6AAB5041550ED66B2E60544182F3379E6CAB5041C45A1FDA3060544121AA131371AB50416FB5B1EE3160544175ABCA5E73AB50416FB5B1EE316054415280A6B779AB50419F1F44F5336054410BCEA6717EAB504148C6682C3560544191ED5DA182AB504108E4B1C4346054411C85393285AB504116981FA234605441F61DCC0E8AAB5041D589D6FB35605441E4D55ECF90AB5041BAC61F78376054414516847A9BAB504175C88D0F3C6054417B08F21F9FAB5041212320243D605441724628F2A0AB50411959FE4F3F605441B61B7720A2AB5041669F491D3A6054419DA87EADA2AB5041D43180B0376054418D1E852BA3AB5041878FC28535605441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>583948 - 69345
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -125 </desc>
+<a>
+01060000000100000001030000000100000015000000023F275C16E050419B8D01B97EEA5441E85A37DC16E050413D9FF4D87AEA54411CCB67EC16E05041C0C840E078EA5441E45D920B17E050418132ECE677EA5441D8CC7C5917E05041109758A675EA5441873D7C1418E050418618B18271EA5441713D0AE71AE050411F85EB7163EA5441F6285C4F21E0504148E17A0461EA54410000008029E05041E17A145E5DEA5441295C8FB223E05041295C8F5258EA5441D7A3704D20E05041EC51B85E55EA5441713D0A1718E0504185EB51D85AEA54419A9999D90FE050419A99996960EA54411F85EB210DE05041F6285C3F62EA54418FC2F59813E050413333332368EA5441A4703D3A10E0504185EB51287BEA54411F85EB7110E050418FC2F5387DEA54417A8AD16711E05041767A147C7DEA54417301164C12E05041699292807DEA5441BE2880F712E050415D017DCE7DEA5441023F275C16E050419B8D01B97EEA5441
+</a>
+
+<b>
+010600000001000000010300000001000000170000000000008029E05041E17A145E5DEA5441F6285C4F21E0504148E17A0461EA54410840096F1BE050411B71723E63EA544128F1B71C1BE050410D3BCAF363EA5441CC25F69C18E05041B907F8CD70EA544103147AB817E050417C34C99F75EA5441D54E9E3E17E050411CF1013E78EA5441F61087B516E05041DEB02DDF7BEA5441A4703D5A16E050415C8FC2D57EEA54413D0AD74319E05041C3F5289C7FEA544185EB519824E050418FC2F54882EA5441295C8F422FE050411F85EB7185EA5441E5EAD73F30E05041DF42E5E285EA5441E263280532E05041EC8A78407EEA5441272CF78133E05041719E7BCD75EA544150BEE48334E0504164DAF9C56DEA544106C7878E34E050419639CA696DEA544122A042C734E0504134497D0B6BEA5441BAE53C1D35E050415C99E64265EA5441AE47E16A34E050418FC2F5C864EA5441A4703D8A33E050415C8FC23564EA54413D0AD7832EE0504114AE47F160EA54410000008029E05041E17A145E5DEA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>583948 - 1536298
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -125 </desc>
+<a>
+01060000000100000001030000000100000015000000023F275C16E050419B8D01B97EEA5441E85A37DC16E050413D9FF4D87AEA54411CCB67EC16E05041C0C840E078EA5441E45D920B17E050418132ECE677EA5441D8CC7C5917E05041109758A675EA5441873D7C1418E050418618B18271EA5441713D0AE71AE050411F85EB7163EA5441F6285C4F21E0504148E17A0461EA54410000008029E05041E17A145E5DEA5441295C8FB223E05041295C8F5258EA5441D7A3704D20E05041EC51B85E55EA5441713D0A1718E0504185EB51D85AEA54419A9999D90FE050419A99996960EA54411F85EB210DE05041F6285C3F62EA54418FC2F59813E050413333332368EA5441A4703D3A10E0504185EB51287BEA54411F85EB7110E050418FC2F5387DEA54417A8AD16711E05041767A147C7DEA54417301164C12E05041699292807DEA5441BE2880F712E050415D017DCE7DEA5441023F275C16E050419B8D01B97EEA5441
+</a>
+
+<b>
+010600000001000000010300000001000000170000000000008029E05041E17A145E5DEA5441F6285C4F21E0504148E17A0461EA54410540096F1BE050411671723E63EA544128F1B71C1BE050410D3BCAF363EA5441CC25F69C18E05041B907F8CD70EA544103147AB817E050417C34C99F75EA5441D54E9E3E17E050411CF1013E78EA5441F61087B516E05041DEB02DDF7BEA5441A4703D5A16E050415C8FC2D57EEA54413D0AD74319E05041C3F5289C7FEA544185EB519824E050418FC2F54882EA5441295C8F422FE050411F85EB7185EA5441E3EAD73F30E05041DB42E5E285EA5441E263280532E05041EC8A78407EEA5441272CF78133E05041719E7BCD75EA544150BEE48334E0504162DAF9C56DEA544109C7878E34E050419539CA696DEA544123A042C734E0504137497D0B6BEA5441BAE53C1D35E050415C99E64265EA5441AE47E16A34E050418FC2F5C864EA5441A4703D8A33E050415C8FC23564EA54413D0AD7832EE0504114AE47F160EA54410000008029E05041E17A145E5DEA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>198514 - 396603
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -53 </desc>
+<a>
+01060000000100000001030000000100000039000000295C8F4290F350419A9999B99A0B55418FC2F56893F35041333333C39C0B5541A4703DBA95F350419A9999699D0B554114AE47319BF35041B81E85AB9C0B55411F85EB31A0F350417B14AE479B0B5541000000B0A2F35041CDCCCC3C990B554114AE4771A8F35041CDCCCC1C970B5541A4703D5AADF350419A999989950B5541CDCCCCCCABF350419A999999960B5541F6285CAFA5F35041B81E853B9B0B5541B81E850BA0F3504148E17AD49E0B55417B14AE5799F3504148E17A24A20B5541D7A3705D96F35041F6285C3FA40B5541E17A149E92F35041CDCCCCCCA50B5541E17A14FE92F35041000000C0A60B554114AE47F192F3504100000070A70B55410AD7A3A092F35041A4703DEAA70B554114AE47F191F350418FC2F5A8A80B554148E17A348FF35041D7A3700DAB0B55411F85EB0193F35041AE47E14AAF0B5541000000409EF350411F85EB31AA0B55417B14AE579EF35041713D0A37AB0B55416666668699F3504133333303AF0B5541EC51B86E99F35041C3F5286CB10B554148E17A449AF3504114AE47F1B40B55418FC2F5B89AF3504100000010B90B554114AE47319BF35041000000B0BA0B5541333333A39AF3504114AE47D1BC0B5541000000D096F35041295C8F52C50B5541EC51B8BE94F35041F6285C6FC90B5541295C8F3295F35041D7A370CDC90B55419A9999F996F35041B81E852BCB0B55419A9999599FF3504133333333C40B554114AE47E1A2F35041AE47E12AC10B554114AE4791A6F35041AE47E14ABE0B5541713D0AE7A7F35041A4703DBABC0B5541295C8F82A8F3504148E17A44BB0B55410AD7A3E0A7F35041713D0AE7B50B5541AE47E1AAA8F35041A4703DCAAF0B5541295C8FB2AAF3504166666646A90B55411F85EBC1AEF350413D0AD7739B0B554166666626B1F35041AE47E1AA970B55415C8FC205B4F3504152B81E55940B55410AD7A3B0B5F3504185EB51B8900B554133333373B7F350415C8FC2458C0B5541295C8FA2B7F3504185EB51A8880B55410AD7A370B6F35041F6285C5F880B55417B14AE07AFF35041000000908C0B55411F85EB91A9F35041B81E856B8F0B5541713D0A07A4F35041EC51B8EE910B5541F6285C1FA0F35041EC51B86E930B5541000000009CF350417B14AE67940B5541C3F528AC98F350413D0AD7F3940B5541B81E852B92F350415C8FC275950B5541295C8F928EF3504185EB5188950B55415C8FC2758BF3504185EB5158970B5541295C8F4290F350419A9999B99A0B5541
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000000000409EF350411F85EB31AA0B55417A7FD14B9EF350418B1C7976AA0B5541B0A04FFCA2F35041A14E537FA80B554116BA5592A6F350418FEF0DEBA50B554198FFE9F6AAF3504142D2CBC7A10B55415F7636A4ADF350418517B1929E0B554114AE4799AEF3504183C0CA019B0B5541FE14C38BAFF35041B33B0BDC980B55418D2F96BDB2F35041242138AA950B5541A0B371EDB4F35041C131E658920B5541A0B371ADB5F35041D5DF2DBA900B5541B106983DB3F350413E9741FA910B5541FB941525B2F3504135F70A98920B5541428C9370AFF350416FDC1A57940B554196DCCD5CADF350410613618D950B5541DDBD48D1ABF3504123984C9F960B55411BC81F55ABF35041D2DF2DFA960B55411B2FDDC4A4F3504108AC1C1A9D0B5541068195D39EF3504191ED7C2FA10B5541022B87F69AF350412DB29DF7A20B5541EE7C3FA597F35041BC7493E8A40B55415EBA490495F35041190456DEA50B55414A4826F392F3504196374B56A70B55417A7809F392F350410B61D757A70B55411AFADBF292F35041B4EA485AA70B5541BFA4A3F292F3504154804F5DA70B55414F24AFF792F3504149CB7F72A70B55411CF17BA492F35041E36419ECA70B5541E9BD48F191F350410BC1A8AEA80B55410DD894368FF35041F77FC80FAB0B55412340AE368FF3504162D4E40FAB0B5541F14316378FF35041DFCF5810AB0B554138E0B6388FF350411F5B2912AB0B5541EE1C9B3D8FF350419CAB9D17AB0B554178D3AD4292F3504115F1AB4FAE0B554160E5D06A92F350413F355E82AE0B554152B81E7D94F35041C1CAA13DAE0B55415A643B079AF3504154E3A5EBAB0B55416DEBFD779BF35041DE092A71AB0B554136F2ED3B9EF350415527172EAA0B55413E3EAA3C9EF35041F39F6E33AA0B5541000000409EF350411F85EB31AA0B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>43678 - 1525387
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -57 </desc>
+<a>
+010600000001000000010300000001000000090000003D0AD78303D9504152B81E2526FF544185EB514800D95041D7A3703D27FF544185EB5178FCD85041000000D028FF5441E17A144EEFD85041EC51B8FE2EFF544152B81E95F0D85041AE47E15A36FF5441EC51B8BEF1D85041CDCCCCCC35FF5441D7A370ADF1D850419A99995933FF54417B14AE1702D95041000000502DFF54413D0AD78303D9504152B81E2526FF5441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000EC51B8BEF1D85041CDCCCCCC35FF544114C226AFF1D85041A9891FA233FF5441946B14AFF1D85041F270169F33FF5441FE9514F9F6D850413881FD6631FF5441537E0A2102D9504196ED3FB22CFF54413D0AD78303D9504152B81E2526FF544185EB514800D95041D7A3703D27FF544185EB5178FCD85041000000D028FF5441E17A144EEFD85041EC51B8FE2EFF544152B81E95F0D85041AE47E15A36FF5441EC51B8BEF1D85041CDCCCCCC35FF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>43678 - 3202647
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -57 </desc>
+<a>
+010600000001000000010300000001000000090000003D0AD78303D9504152B81E2526FF544185EB514800D95041D7A3703D27FF544185EB5178FCD85041000000D028FF5441E17A144EEFD85041EC51B8FE2EFF544152B81E95F0D85041AE47E15A36FF5441EC51B8BEF1D85041CDCCCCCC35FF5441D7A370ADF1D850419A99995933FF54417B14AE1702D95041000000502DFF54413D0AD78303D9504152B81E2526FF5441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000EC51B8BEF1D85041CDCCCCCC35FF544114C226AFF1D85041A9891FA233FF5441946B14AFF1D85041F270169F33FF5441FE9514F9F6D850413881FD6631FF5441537E0A2102D9504196ED3FB22CFF54413D0AD78303D9504152B81E2526FF544185EB514800D95041D7A3703D27FF544185EB5178FCD85041000000D028FF5441E17A144EEFD85041EC51B8FE2EFF544152B81E95F0D85041AE47E15A36FF5441EC51B8BEF1D85041CDCCCCCC35FF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>46604 - 1530156
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -11 </desc>
+<a>
+01060000000100000001030000000100000008000000AE47E18A3AD35041F6285CDF1C095541C3F528DC33D350415C8FC2F5360955411F85EB415AD3504185EB51E8310955419A99995960D350419A9999891C09554185EB519866D3504114AE47A1060955418FC2F58841D35041AE47E16A080955411F85EBF13FD35041D7A370AD09095541AE47E18A3AD35041F6285CDF1C095541
+</a>
+
+<b>
+01060000000100000001030000000100000019000000EFCCC5BB59D35041808FA0820E095541DDC2306B5AD3504191EC53EB090955415D8FC26D5AD3504107AC1CDA09095541DCF97EB25AD350418B6CE70B09095541DCF97EB25AD3504160C2B5C207095541075AB7B35AD3504114D940B9070955414B0CB8B35AD3504156967FB807095541663B1FB85AD3504171C61B97070955411ED402C55AD35041DFE6373307095541DD2F0B535AD35041AE16103907095541FACA1DCA59D35041F671653F0709554185DD45CC59D3504184FCBC31070955418FC2F58841D35041AE47E16A080955411F85EBF13FD35041D7A370AD09095541AE47E18A3AD35041F6285CDF1C095541C3F528DC33D350415C8FC2F5360955411F85EB415AD3504185EB51E8310955419A99995960D350419A9999891C0955410CEA4C3A63D350419707407112095541E5DBBEB659D35041BFAB59B811095541950D19A059D35041F084A1B6110955418412439C59D3504192EFFDB511095541B7F3FD2C59D350416ABC74A3110955410BD7A38859D35041C64B37D90F095541EFCCC5BB59D35041808FA0820E095541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>46604 - 3485440
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -11 </desc>
+<a>
+01060000000100000001030000000100000008000000AE47E18A3AD35041F6285CDF1C095541C3F528DC33D350415C8FC2F5360955411F85EB415AD3504185EB51E8310955419A99995960D350419A9999891C09554185EB519866D3504114AE47A1060955418FC2F58841D35041AE47E16A080955411F85EBF13FD35041D7A370AD09095541AE47E18A3AD35041F6285CDF1C095541
+</a>
+
+<b>
+01060000000100000001030000000100000019000000EFCCC5BB59D35041808FA0820E095541DDC2306B5AD3504191EC53EB090955415D8FC26D5AD3504107AC1CDA09095541DCF97EB25AD350418B6CE70B09095541DCF97EB25AD3504160C2B5C207095541075AB7B35AD3504114D940B9070955414B0CB8B35AD3504156967FB807095541663B1FB85AD3504171C61B97070955411ED402C55AD35041DFE6373307095541DD2F0B535AD35041AE16103907095541FACA1DCA59D35041F671653F0709554185DD45CC59D3504184FCBC31070955418FC2F58841D35041AE47E16A080955411F85EBF13FD35041D7A370AD09095541AE47E18A3AD35041F6285CDF1C095541C3F528DC33D350415C8FC2F5360955411F85EB415AD3504185EB51E8310955419A99995960D350419A9999891C0955410CEA4C3A63D350419707407112095541E5DBBEB659D35041BFAB59B811095541950D19A059D35041F084A1B6110955418412439C59D3504192EFFDB511095541B7F3FD2C59D350416ABC74A3110955410BD7A38859D35041C64B37D90F095541EFCCC5BB59D35041808FA0820E095541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>55231 - 2909492
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000001E000000713D0AB7276051410AD7A300849154413D0AD7332660514114AE47B181915441713D0A772260514185EB51587A9154410AD7A3C00F6051419A9999A9539154415C8FC2F50D60514185EB51985291544166666646ED5F51417B14AE2754915441D7A370CDA35F51419A9999A957915441F6285C1F7D5F5141295C8F8259915441E17A143E7C5F51413D0AD7C35A915441713D0AA7805F514100000010699154411F85EBD1825F5141B81E85DB73915441713D0A97835F51418FC2F5A87C915441E17A147E835F5141E17A14BE8491544100000050825F5141B81E85CB8C915441F6285C8F805F5141713D0AE794915441D7A3708D7F5F514114AE47B198915441295C8F42905F51411F85EBB199915441D7A3705DAE5F51415C8FC215969154411F85EB61D55F514185EB516891915441713D0AC7DA5F51417B14AE079091544100000080F15F5141B81E853B8A9154410AD7A3900260514185EB51A882915441EC51B88E036051417B14AE37829154413D0AD7230A6051411F85EBD18F91544148E17A740B605141E17A143E909154413D0AD7C30F60514148E17AE48D915441AE47E12A14605141EC51B89E8B915441CDCCCC6C196051417B14AEE788915441295C8FA21C6051416666667687915441713D0AB7276051410AD7A30084915441
+</a>
+
+<b>
+010600000001000000010300000001000000E2000000D7A3705DAE5F51415C8FC21596915441BC6BD892AE5F5141E78E5B0F96915441DF119DAEB05F5141CE2BA6CE95915441AA405093B25F514175D18A9495915441A2C9CF47B45F5141A3C436609591544165C14623B65F51418DD73627959154418F6D59DFB85F5141FFBA49D394915441026A647EB95F514173BB38C094915441607524DDBC5F5141FE15CB5894915441805C2843BF5F5141BB112F0F949154413CD01630C25F5141B17F66B59391544196D6F626C55F514181C26C5A93915441B7031A3FC85F5141D03476FB9291544102774781CA5F5141E10A26B692915441F5B4C71BCB5F5141B76FA0A39291544141A499EDCB5F5141D018798A9291544126579079CC5F514126A3B17992915441F9143E31CE5F514182FAFB449291544181ED1E2ED05F51417898FA079291544132DB1DC2D25F51419671DBB8919154410E89792DD35F514176A4FCAB91915441C4780D15D55F514140F78871919154415D4B2B65D55F51413B8B7D67919154417A292581D65F51415DABFB1E919154416B77992CD75F5141E2B034F39091544180417996D75F5141A84E2CD8909154416FCAA434DA5F5141F3280F2D90915441CCAB8495DA5F5141FA07531490915441E325ACF0DC5F5141939A6C7A8F915441B9E3EA0CDE5F51410DA3E6318F915441E554DB94DF5F51411770E6CD8E9154415B600F6EE05F51413D6C7B968E915441DA8E8AFDE15F5141A49B8E308E915441BF3B85B0E25F51416344E4028E915441D1E977A7E55F5141563F40418D9154416BA400C4E85F5141453905768C91544175A654F2EB5F51412AF33FA68B9154415FCD6254EC5F5141FC4B3B8D8B91544150185626EF5F514145D707D58A91544198D84280EF5F51417B3E16BE8A9154413BDCB57EF15F5141645AD93B8A9154418D4AC505F25F514177F123008A9154414EDB9874F25F51417C0FF2CE89915441F0513FE6F45F5141AD9B39B9889154414747C942F55F51414ED92590889154416731882CF85F514101361E45879154416B3F615EFB5F5141C12B15DA8591544168BE356FFE5F51414125B47D849154413C299BFD00605141A51E395B839154416EAA268D0360514160B26F3482915441309D14780360514120FDDF08829154419C41726303605141C73237DE819154415C62FE92026051413948422F80915441DBD9BA7401605141A64A6FDF7D915441812F9A8800605141D73643F77B915441BE9536A0FF5F5141F4C7D1167A915441264297B5FE5F51413A5BC23178915441D533CCABFD5F51419C92410C7691544194BD258EFC5F51410450B3BD739154417AA292ACFB5F51414E7658EB719154410F30CAB3FA5F5141F06E02E96F915441E561239FF95F5141C1C50EAD6D91544126C460EFF85F5141B186B0416C9154413D46FBCAF75F5141F32338E569915441FA30B1AEF65F5141D090989967915441C568E9AFF55F5141EDA7F78A659154417BB01AAEF45F514130F5147663915441A1474EB3F35F5141AB14AF6F619154413C4FBCCFF25F51415A6F4C995F915441C61682F6F15F514147A94AD85D9154417D5F390DF15F5141E38818F65B9154419BBB29FFEF5F51417BDAE1C7599154411E32A5EFEE5F5141D065A89657915441BE075CE6ED5F5141198F5072559154416A60B546ED5F5141EE5251285491544135EDA2DEEC5F51413831A22C54915441D96AA23EEC5F51419F9A45345491544141FF73D4EB5F5141A94357395491544173DB5B79E95F514167C8215654915441491C078AE75F5141F44EC76D54915441E7EAC115E55F5141CA81C58B5491544139F9A722E35F5141261C99A35491544189540176E25F51415A1BD7AB54915441F2B49BB9DF5F51412FC746CD549154417AC07E6CDF5F5141C430F5D05491544148FF494FDA5F5141D238750F55915441FE82DBFAD65F51412DEF263855915441882376CBD35F51413E07145F55915441A56A5A6BD05F51419271548855915441D10DC319CF5F5141453472985591544192A26193CC5F51413FBB4DB7559154417A92ACD4C95F51412AA3D9D855915441C1131F0EC75F51417B6CC5FA5591544190CC592BC45F5141E6100A1E569154413B0AA57EC15F5141ECF9B93E569154415471E324BF5F51416A24745B5691544124C5933ABC5F514188F0147F569154413E66B936B95F514128E3EDA3569154411EEDAA9FB65F5141F43695C356915441AA8E6AA3B35F5141294311E85691544193AF9DF5B05F5141898BCE0857915441455C88ECAD5F5141BC69E72D57915441C45B67F9AA5F51410CF9F35157915441FB38A0F9A75F51411E1E9B765791544183AFBDB7A45F5141F72A6A9E579154416031150FA15F5141A4AD25CB57915441452C85F59D5F51418CF80CF157915441F81F76319B5F5141DBC3DE1258915441C0CA2370985F514135178F3458915441B11BD5B2955F5141ED540E5658915441CF06ACC7925F5141093EBE795891544101EB67B58F5F514107514C9F589154416B95E6EA8C5F514142EF6CC15891544107B173278A5F5141264537E358915441C76F0278875F514139FA0C04599154413905DE05855F51410223F52159915441D37D4886825F514101A8814059915441F5DFBBAD7F5F514188FF4D63599154417A6F6D1E7D5F514154D0E38359915441FC1343EB7C5F514188DBDBCC59915441BC0D85BB7C5F51418621F2105A915441117BB67E7C5F5141D42FAA675A915441AF087C467C5F514177A1DAB75A915441DD923F407C5F514165B0DECA5A91544146CCB0557C5F5141361A63105B9154419DC1FC6E7C5F5141109266625B9154419BB9B6067D5F514101B34E4E5D9154413D36B83B7D5F514169D627FA5D915441913EF5C97D5F51415A334DC75F91544185BD01F47D5F51414961A04F60915441283BC54B7E5F51416669296C61915441E120A58F7E5F5141872C374862915441E2F916297F5F5141126BB139649154411067F45E7F5F5141419D53E8649154414F2E5BEF7F5F5141C5417CBC66915441D6BF929E805F514186DB8CF468915441777E97BB805F5141BA1B5B766991544138C2DED6805F5141518136FE699154413A0B541E815F5141233D1A626B9154411946CF34815F51418C8A11D26B9154418B847E93815F51414A7BA2A96D915441F78716ED815F514174D2D8676F9154410FB35B44825F51411A9A7C1A71915441C8B80195825F5141CAE325AC72915441311937B6825F51412B148A51739154418C9842C3825F5141FA15829273915441CA8999D0825F51419DD6F1D4739154415CC6EEDA825F51419F3C8D4274915441876EF2E0825F514106514E877491544143573FE8825F51412458C3DA74915441074592ED825F51411A19A01775915441D59FF1F1825F5141965B9C4975915441300BD41C835F5141FBA6DB33779154414BC1C129835F514196ABA7C777915441D05A3658835F5141F8B4B9DA799154419C6F805F835F5141D9680E2E7A915441E9701F7F835F514128098B977B915441FD7DED88835F51419B7BA1077C91544128F3CB96835F51416AAB2DA67C91544193D8BB96835F5141906A58C27C915441CF6B4996835F5141D7F165E77C91544116B73895835F51413093B43F7D915441A76F5F94835F5141BF7210867D915441DF036E8D835F51418217A0C57F9154412BBC8F8C835F5141138C9A0D80915441FE4A2188835F514174E1F47C819154411FB03E86835F514132983B1982915441D1355D80835F514108D8BB0084915441E3FA377F835F514136DFAF5F84915441F7AEE27D835F5141A54C68BF84915441D9AB1776835F5141119196F4849154419F81686D835F51417EC8D92F85915441F1820631835F51416B7FE9CB869154410919271D835F51411DC98653879154410184F0E4825F5141015022D38891544153307ACB825F5141A45EE48089915441539E4E77825F5141B64648BF8B915441FFD3C769825F514106E3961B8C915441A8998552825F514139724FBA8C91544120E9953A825F51414BA0962E8D91544143BB541E825F5141C71B4DB18D91544113B5360B825F51413814BE098E915441ADFD1BF0815F5141BD4D22878E915441AE5DA2D9815F514131001CEF8E9154417839F64E815F51418477A470919154416DBC4537815F5141B64B3CDE91915441837A44EC805F51412E143A39939154419D3F54AE805F514148EFC457949154412F0A2B8E805F51417A0986EB94915441E4FDD16D805F51418992356595915441F09C1653805F514125E7C4C995915441B77B3BEA7F5F51417307375497915441C3B605CD7F5F51412BCD18C297915441B46164A27F5F5141D96C766298915441A0A425947F5F51414FAE0C9898915441D7A3708D7F5F514114AE47B19891544149008AB27F5F5141D28C81B398915441BBCD5FB27F5F51418FC1ADB298915441A86A4A5D805F5141036DC0BD98915441124BD47F805F514103F7D2BF98915441AC39A296825F514175F8E9DF98915441A49FD971845F514190A86DFC98915441884DB954865F51411EF8661999915441769BAF94875F514126D5992C99915441D6841DF0885F51410B9D724199915441199FF6208B5F514158AB196399915441694BAC308B5F514153FB0A6499915441C3D3C0C28E5F514139F4E39A99915441FD5559B98F5F514179DAAFA9999154414CF5AC43905F5141DA45C9B199915441D0FDCBD5905F5141D7A843A09991544139E15489915F51418152BC8A999154411C5FDCAB935F5141D306334999915441DAA25629945F51410C21273A999154415EC7CA13955F514148E5091E999154410975B2E0975F5141AB6C12C89891544132E15B7A985F5141C354A5B5989154416ADAEA2F995F514152DEDF9F98915441CD4FC2A79B5F5141B9A91B5498915441016067939C5F514181DDD937989154412C2585CD9D5F514164282F129891544191C45865A35F514188197D6697915441190F8432A45F514145D7E24D97915441286B4E16A65F5141757EDF13979154418FE55B1BA85F51417E11DFD596915441D7A3705DAE5F51415C8FC21596915441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>55231 - 3206347
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000001E000000713D0AB7276051410AD7A300849154413D0AD7332660514114AE47B181915441713D0A772260514185EB51587A9154410AD7A3C00F6051419A9999A9539154415C8FC2F50D60514185EB51985291544166666646ED5F51417B14AE2754915441D7A370CDA35F51419A9999A957915441F6285C1F7D5F5141295C8F8259915441E17A143E7C5F51413D0AD7C35A915441713D0AA7805F514100000010699154411F85EBD1825F5141B81E85DB73915441713D0A97835F51418FC2F5A87C915441E17A147E835F5141E17A14BE8491544100000050825F5141B81E85CB8C915441F6285C8F805F5141713D0AE794915441D7A3708D7F5F514114AE47B198915441295C8F42905F51411F85EBB199915441D7A3705DAE5F51415C8FC215969154411F85EB61D55F514185EB516891915441713D0AC7DA5F51417B14AE079091544100000080F15F5141B81E853B8A9154410AD7A3900260514185EB51A882915441EC51B88E036051417B14AE37829154413D0AD7230A6051411F85EBD18F91544148E17A740B605141E17A143E909154413D0AD7C30F60514148E17AE48D915441AE47E12A14605141EC51B89E8B915441CDCCCC6C196051417B14AEE788915441295C8FA21C6051416666667687915441713D0AB7276051410AD7A30084915441
+</a>
+
+<b>
+010600000001000000010300000001000000E2000000D7A3705DAE5F51415C8FC21596915441BC6BD892AE5F5141E78E5B0F96915441DF119DAEB05F5141CE2BA6CE95915441AA405093B25F514175D18A9495915441A2C9CF47B45F5141A3C436609591544165C14623B65F51418DD73627959154418F6D59DFB85F5141FFBA49D394915441026A647EB95F514173BB38C094915441607524DDBC5F5141FE15CB5894915441805C2843BF5F5141BB112F0F949154413CD01630C25F5141B17F66B59391544196D6F626C55F514181C26C5A93915441B7031A3FC85F5141D03476FB9291544102774781CA5F5141E10A26B692915441F5B4C71BCB5F5141B76FA0A39291544141A499EDCB5F5141D018798A9291544126579079CC5F514126A3B17992915441F9143E31CE5F514182FAFB449291544181ED1E2ED05F51417898FA079291544132DB1DC2D25F51419671DBB8919154410E89792DD35F514176A4FCAB91915441C4780D15D55F514140F78871919154415D4B2B65D55F51413B8B7D67919154417A292581D65F51415DABFB1E919154416B77992CD75F5141E2B034F39091544180417996D75F5141A84E2CD8909154416FCAA434DA5F5141F3280F2D90915441CCAB8495DA5F5141FA07531490915441E325ACF0DC5F5141939A6C7A8F915441B9E3EA0CDE5F51410DA3E6318F915441E554DB94DF5F51411770E6CD8E9154415B600F6EE05F51413D6C7B968E915441DA8E8AFDE15F5141A49B8E308E915441BF3B85B0E25F51416344E4028E915441D1E977A7E55F5141563F40418D9154416BA400C4E85F5141453905768C91544175A654F2EB5F51412AF33FA68B9154415FCD6254EC5F5141FC4B3B8D8B91544150185626EF5F514145D707D58A91544198D84280EF5F51417B3E16BE8A9154413BDCB57EF15F5141645AD93B8A9154418D4AC505F25F514177F123008A9154414EDB9874F25F51417C0FF2CE89915441F0513FE6F45F5141AD9B39B9889154414747C942F55F51414ED92590889154416731882CF85F514101361E45879154416B3F615EFB5F5141C12B15DA8591544168BE356FFE5F51414125B47D849154413C299BFD00605141A51E395B839154416EAA268D0360514160B26F3482915441309D14780360514120FDDF08829154419C41726303605141C73237DE819154415C62FE92026051413948422F80915441DBD9BA7401605141A64A6FDF7D915441812F9A8800605141D73643F77B915441BE9536A0FF5F5141F4C7D1167A915441264297B5FE5F51413A5BC23178915441D533CCABFD5F51419C92410C7691544194BD258EFC5F51410450B3BD739154417AA292ACFB5F51414E7658EB719154410F30CAB3FA5F5141F06E02E96F915441E561239FF95F5141C1C50EAD6D91544126C460EFF85F5141B186B0416C9154413D46FBCAF75F5141F32338E569915441FA30B1AEF65F5141D090989967915441C568E9AFF55F5141EDA7F78A659154417BB01AAEF45F514130F5147663915441A1474EB3F35F5141AB14AF6F619154413C4FBCCFF25F51415A6F4C995F915441C61682F6F15F514147A94AD85D9154417D5F390DF15F5141E38818F65B9154419BBB29FFEF5F51417BDAE1C7599154411E32A5EFEE5F5141D065A89657915441BE075CE6ED5F5141198F5072559154416A60B546ED5F5141EE5251285491544135EDA2DEEC5F51413831A22C54915441D96AA23EEC5F51419F9A45345491544141FF73D4EB5F5141A94357395491544173DB5B79E95F514167C8215654915441491C078AE75F5141F44EC76D54915441E7EAC115E55F5141CA81C58B5491544139F9A722E35F5141261C99A35491544189540176E25F51415A1BD7AB54915441F2B49BB9DF5F51412FC746CD549154417AC07E6CDF5F5141C430F5D05491544148FF494FDA5F5141D238750F55915441FE82DBFAD65F51412DEF263855915441882376CBD35F51413E07145F55915441A56A5A6BD05F51419271548855915441D10DC319CF5F5141453472985591544192A26193CC5F51413FBB4DB7559154417A92ACD4C95F51412AA3D9D855915441C1131F0EC75F51417B6CC5FA5591544190CC592BC45F5141E6100A1E569154413B0AA57EC15F5141ECF9B93E569154415471E324BF5F51416A24745B5691544124C5933ABC5F514188F0147F569154413E66B936B95F514128E3EDA3569154411EEDAA9FB65F5141F43695C356915441AA8E6AA3B35F5141294311E85691544193AF9DF5B05F5141898BCE0857915441455C88ECAD5F5141BC69E72D57915441C45B67F9AA5F51410CF9F35157915441FB38A0F9A75F51411E1E9B765791544183AFBDB7A45F5141F72A6A9E579154416031150FA15F5141A4AD25CB57915441452C85F59D5F51418CF80CF157915441F81F76319B5F5141DBC3DE1258915441C0CA2370985F514135178F3458915441B11BD5B2955F5141ED540E5658915441CF06ACC7925F5141093EBE795891544101EB67B58F5F514107514C9F589154416B95E6EA8C5F514142EF6CC15891544107B173278A5F5141264537E358915441C76F0278875F514139FA0C04599154413905DE05855F51410223F52159915441D37D4886825F514101A8814059915441F5DFBBAD7F5F514188FF4D63599154417A6F6D1E7D5F514154D0E38359915441FC1343EB7C5F514188DBDBCC59915441BC0D85BB7C5F51418621F2105A915441117BB67E7C5F5141D42FAA675A915441AF087C467C5F514177A1DAB75A915441DD923F407C5F514165B0DECA5A91544146CCB0557C5F5141361A63105B9154419DC1FC6E7C5F5141109266625B9154419BB9B6067D5F514101B34E4E5D9154413D36B83B7D5F514169D627FA5D915441913EF5C97D5F51415A334DC75F91544185BD01F47D5F51414961A04F60915441283BC54B7E5F51416669296C61915441E120A58F7E5F5141872C374862915441E2F916297F5F5141126BB139649154411067F45E7F5F5141419D53E8649154414F2E5BEF7F5F5141C5417CBC66915441D6BF929E805F514186DB8CF468915441777E97BB805F5141BA1B5B766991544138C2DED6805F5141518136FE699154413A0B541E815F5141233D1A626B9154411946CF34815F51418C8A11D26B9154418B847E93815F51414A7BA2A96D915441F78716ED815F514174D2D8676F9154410FB35B44825F51411A9A7C1A71915441C8B80195825F5141CAE325AC72915441311937B6825F51412B148A51739154418C9842C3825F5141FA15829273915441CA8999D0825F51419DD6F1D4739154415CC6EEDA825F51419F3C8D4274915441876EF2E0825F514106514E877491544143573FE8825F51412458C3DA74915441074592ED825F51411A19A01775915441D59FF1F1825F5141965B9C4975915441300BD41C835F5141FBA6DB33779154414BC1C129835F514196ABA7C777915441D05A3658835F5141F8B4B9DA799154419C6F805F835F5141D9680E2E7A915441E9701F7F835F514128098B977B915441FD7DED88835F51419B7BA1077C91544128F3CB96835F51416AAB2DA67C91544193D8BB96835F5141906A58C27C915441CF6B4996835F5141D7F165E77C91544116B73895835F51413093B43F7D915441A76F5F94835F5141BF7210867D915441DF036E8D835F51418217A0C57F9154412BBC8F8C835F5141138C9A0D80915441FE4A2188835F514174E1F47C819154411FB03E86835F514132983B1982915441D1355D80835F514108D8BB0084915441E3FA377F835F514136DFAF5F84915441F7AEE27D835F5141A54C68BF84915441D9AB1776835F5141119196F4849154419F81686D835F51417EC8D92F85915441F1820631835F51416B7FE9CB869154410919271D835F51411DC98653879154410184F0E4825F5141015022D38891544153307ACB825F5141A45EE48089915441539E4E77825F5141B64648BF8B915441FFD3C769825F514106E3961B8C915441A8998552825F514139724FBA8C91544120E9953A825F51414BA0962E8D91544143BB541E825F5141C71B4DB18D91544113B5360B825F51413814BE098E915441ADFD1BF0815F5141BD4D22878E915441AE5DA2D9815F514131001CEF8E9154417839F64E815F51418477A470919154416DBC4537815F5141B64B3CDE91915441837A44EC805F51412E143A39939154419D3F54AE805F514148EFC457949154412F0A2B8E805F51417A0986EB94915441E4FDD16D805F51418992356595915441F09C1653805F514125E7C4C995915441B77B3BEA7F5F51417307375497915441C3B605CD7F5F51412BCD18C297915441B46164A27F5F5141D96C766298915441A0A425947F5F51414FAE0C9898915441D7A3708D7F5F514114AE47B19891544149008AB27F5F5141D28C81B398915441BBCD5FB27F5F51418FC1ADB298915441A86A4A5D805F5141036DC0BD98915441124BD47F805F514103F7D2BF98915441AC39A296825F514175F8E9DF98915441A49FD971845F514190A86DFC98915441884DB954865F51411EF8661999915441769BAF94875F514126D5992C99915441D6841DF0885F51410B9D724199915441199FF6208B5F514158AB196399915441694BAC308B5F514153FB0A6499915441C3D3C0C28E5F514139F4E39A99915441FD5559B98F5F514179DAAFA9999154414CF5AC43905F5141DA45C9B199915441D0FDCBD5905F5141D7A843A09991544139E15489915F51418152BC8A999154411C5FDCAB935F5141D306334999915441DAA25629945F51410C21273A999154415EC7CA13955F514148E5091E999154410975B2E0975F5141AB6C12C89891544132E15B7A985F5141C354A5B5989154416ADAEA2F995F514152DEDF9F98915441CD4FC2A79B5F5141B9A91B5498915441016067939C5F514181DDD937989154412C2585CD9D5F514164282F129891544191C45865A35F514188197D6697915441190F8432A45F514145D7E24D97915441286B4E16A65F5141757EDF13979154418FE55B1BA85F51417E11DFD596915441D7A3705DAE5F51415C8FC21596915441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>55357 - 5219097
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000000C000000000000C0105F5141E17A14AE539B5441713D0A372F5F5141E17A147E5F9B5441000000B0455F514148E17A44249B5441F6285C8F1B5F5141AE47E1FA0C9B54410AD7A3D01A5F5141666666E60C9B5441D7A370AD1A5F514148E17AE40D9B544114AE47D1195F5141AE47E1CA0C9B54410AD7A3900F5F5141000000B00B9B5441D7A3700D0B5F5141333333132F9B54418FC2F588065F5141B81E857B529B54411F85EB21105F5141C3F5289C539B5441000000C0105F5141E17A14AE539B5441
+</a>
+
+<b>
+010600000001000000010300000001000000190000007C7B07392F5F51419166D6785F9B5441D733D3573A5F514177C1442A429B5441BBBBACAE455F5141C70EC849249B54412CEA1BC8325F5141D01D0ED1199B54412881895F1D5F5141048078FB0D9B5441A7D1A8C81A5F51411C4C01200D9B5441650FFCE4165F5141AFD23A7A0C9B54410AD7A3900F5F5141000000B00B9B5441CDCCCCBC015F5141295C8F320A9B5441D7A3708DF15E51413D0AD773089B5441333333F3EA5E5141E17A14BE079B544148E17AD4D85E5141B81E85CB059B544152B81EB5D75E5141E17A14AE069B5441CDCCCC5CD35E5141E17A14BE289B54413D0AD703CF5E5141E17A14CE4A9B54411F85EBE1CF5E5141B81E85EB4B9B5441713D0AF7E15E5141B81E852B4E9B5441D7A3703DE45E51413D0AD7734E9B544185EB51B8F85E5141C3F528DC509B54418FC2F588065F5141B81E857B529B54419633CC89065F5141E85BF474529B5441A545A0DA0F5F5141A5D4C893539B5441403A2B5E115F5141BC8C68EB539B54416BF1A9D6215F514106F24F4E5A9B54417C7B07392F5F51419166D6785F9B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>58233 - 1838748
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -107 </desc>
+<a>
+010600000001000000010300000001000000230000001F85EB515EB0504152B81E25D44E5441AE47E19A63B0504148E17A94D54E5441F6285C5F61B05041295C8F22D04E54418FC2F5585EB050418FC2F508D14E54410AD7A3005EB0504133333373CE4E5441F6285CCF61B050411F85EB21CE4E5441D7A3706D6AB050410AD7A390C94E54415C8FC26573B050417B14AE07C94E54413D0AD7F376B05041E17A141EC94E54413D0AD7D377B05041E17A14BEBC4E54419A9999F95FB050413D0AD773B84E5441E17A141E5DB0504152B81EA5B74E5441A4703D1A5CB0504166666626BC4E5441A4703D3A54B050418FC2F528BB4E5441333333B351B0504148E17AE4C14E5441AE47E12A51B050413D0AD793D04E54413D0AD7C350B05041B81E854BD14E5441E17A143E50B050411F85EB31D24E544152B81EA548B0504100000090C94E5441E17A14BE47B0504166666666C94E5441333333E343B05041F6285C9FCE4E54413D0AD7233FB0504114AE47F1D54E5441B81E85FB39B05041A4703D2ADE4E54410AD7A3E032B0504148E17A84E74E54415C8FC2B52EB050417B14AE57EE4E54417B14AEC72CB05041EC51B8BEF54E544185EB513831B05041AE47E1DAFB4E5441333333933CB05041AE47E13A004F5441C3F5286C56B05041C3F5284CF04E54411F85EB2162B050411F85EBB1E04E5441295C8F8263B05041EC51B8CED84E54418FC2F5B862B05041B81E858BD74E544185EB51D85DB050411F85EB21D64E5441666666065EB0504166666616D54E54411F85EB515EB0504152B81E25D44E5441
+</a>
+
+<b>
+0106000000010000000103000000010000002F0000002E7F09E861B05041F42C0BFFE04E54415BA8E4EB61B05041D9DFE7F9E04E5441DCD5D0F461B050416A3A51A6DE4E5441BED36C9562B050410E46F732DB4E5441B8D6314762B0504121357CC0D84E54412A8EF3F260B0504141950A08D74E544185EB51D85DB050411F85EB21D64E54418881FFD85DB05041C8C1FB1DD64E5441097D97AE59B05041BCC02725D54E54413A6918E555B05041A3A3523ED44E5441EF11993053B0504132EB598DD34E5441105A44AA50B050419258E8B5D24E5441E8707E4350B05041FB379828D24E5441E17A143E50B050411F85EB31D24E544152B81EA548B0504100000090C94E5441E17A14BE47B0504166666666C94E5441333333E343B05041F6285C9FCE4E54413D0AD7233FB0504114AE47F1D54E5441B81E85FB39B05041A4703D2ADE4E54410AD7A3E032B0504148E17A84E74E54415C8FC2B52EB050417B14AE57EE4E54417B14AEC72CB05041EC51B8BEF54E544185EB513831B05041AE47E1DAFB4E5441333333933CB05041AE47E13A004F5441C3F5286C56B05041C3F5284CF04E54416111EA7559B0504196AEDF3FEC4E544185EB51685AB0504185EB51A8EC4E54418FC2F5A87DB050417B14AE47FB4E5441E17A145E8AB05041295C8F42FF4E5441D7A3703D8CB05041A4703D2AFF4E5441666666A692B050417B14AE67FC4E5441D7A3707D98B050418FC2F5A8F94E54413D0AD7439CB05041AE47E15AF74E5441AE47E11AA5B050411F85EB91EF4E54418FC2F578AAB05041666666F6EB4E54415C8FC225A0B05041B81E850BEC4E54410AD7A38098B050417B14AE47EC4E544185EB51188CB05041C3F528BCEF4E5441B81E853B89B05041EC51B80EF04E54411F85EB4185B050418FC2F578EF4E54413D0AD7937FB05041B81E85FBEC4E54418C017A227BB05041EF761B65EA4E5441676C1BF178B050410D68F356E94E54417FC062AF6EB050417AD6C173E54E544122FC14F663B05041DDAFF2A3E24E54419E2A5A2A62B0504149DA21E4E14E54412E7F09E861B05041F42C0BFFE04E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>58233 - 3816459
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -107 </desc>
+<a>
+010600000001000000010300000001000000230000001F85EB515EB0504152B81E25D44E5441AE47E19A63B0504148E17A94D54E5441F6285C5F61B05041295C8F22D04E54418FC2F5585EB050418FC2F508D14E54410AD7A3005EB0504133333373CE4E5441F6285CCF61B050411F85EB21CE4E5441D7A3706D6AB050410AD7A390C94E54415C8FC26573B050417B14AE07C94E54413D0AD7F376B05041E17A141EC94E54413D0AD7D377B05041E17A14BEBC4E54419A9999F95FB050413D0AD773B84E5441E17A141E5DB0504152B81EA5B74E5441A4703D1A5CB0504166666626BC4E5441A4703D3A54B050418FC2F528BB4E5441333333B351B0504148E17AE4C14E5441AE47E12A51B050413D0AD793D04E54413D0AD7C350B05041B81E854BD14E5441E17A143E50B050411F85EB31D24E544152B81EA548B0504100000090C94E5441E17A14BE47B0504166666666C94E5441333333E343B05041F6285C9FCE4E54413D0AD7233FB0504114AE47F1D54E5441B81E85FB39B05041A4703D2ADE4E54410AD7A3E032B0504148E17A84E74E54415C8FC2B52EB050417B14AE57EE4E54417B14AEC72CB05041EC51B8BEF54E544185EB513831B05041AE47E1DAFB4E5441333333933CB05041AE47E13A004F5441C3F5286C56B05041C3F5284CF04E54411F85EB2162B050411F85EBB1E04E5441295C8F8263B05041EC51B8CED84E54418FC2F5B862B05041B81E858BD74E544185EB51D85DB050411F85EB21D64E5441666666065EB0504166666616D54E54411F85EB515EB0504152B81E25D44E5441
+</a>
+
+<b>
+0106000000010000000103000000010000002F0000002E7F09E861B05041F42C0BFFE04E54415BA8E4EB61B05041D9DFE7F9E04E5441DCD5D0F461B050416A3A51A6DE4E5441BED36C9562B050410E46F732DB4E5441B8D6314762B0504121357CC0D84E54412A8EF3F260B0504141950A08D74E544185EB51D85DB050411F85EB21D64E54418881FFD85DB05041C8C1FB1DD64E5441097D97AE59B05041BCC02725D54E54413A6918E555B05041A3A3523ED44E5441EF11993053B0504132EB598DD34E5441105A44AA50B050419258E8B5D24E5441E8707E4350B05041FB379828D24E5441E17A143E50B050411F85EB31D24E544152B81EA548B0504100000090C94E5441E17A14BE47B0504166666666C94E5441333333E343B05041F6285C9FCE4E54413D0AD7233FB0504114AE47F1D54E5441B81E85FB39B05041A4703D2ADE4E54410AD7A3E032B0504148E17A84E74E54415C8FC2B52EB050417B14AE57EE4E54417B14AEC72CB05041EC51B8BEF54E544185EB513831B05041AE47E1DAFB4E5441333333933CB05041AE47E13A004F5441C3F5286C56B05041C3F5284CF04E54416111EA7559B0504196AEDF3FEC4E544185EB51685AB0504185EB51A8EC4E54418FC2F5A87DB050417B14AE47FB4E5441E17A145E8AB05041295C8F42FF4E5441D7A3703D8CB05041A4703D2AFF4E5441666666A692B050417B14AE67FC4E5441D7A3707D98B050418FC2F5A8F94E54413D0AD7439CB05041AE47E15AF74E5441AE47E11AA5B050411F85EB91EF4E54418FC2F578AAB05041666666F6EB4E54415C8FC225A0B05041B81E850BEC4E54410AD7A38098B050417B14AE47EC4E544185EB51188CB05041C3F528BCEF4E5441B81E853B89B05041EC51B80EF04E54411F85EB4185B050418FC2F578EF4E54413D0AD7937FB05041B81E85FBEC4E54418C017A227BB05041EF761B65EA4E5441676C1BF178B050410D68F356E94E54417FC062AF6EB050417AD6C173E54E544122FC14F663B05041DDAFF2A3E24E54419E2A5A2A62B0504149DA21E4E14E54412E7F09E861B05041F42C0BFFE04E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>58660 - 1840484
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 8 </desc>
+<a>
+0106000000010000000103000000010000001100000085EB513843AB5041E17A142E444D544185EB511846AB50418FC2F558744D5441000000E048AB50415C8FC235A24D5441D7A3702D4AAB50413D0AD763A34D5441A4703DAA71AB5041B81E85BBA14D54418FC2F56894AB504185EB5148A04D54419A99998995AB5041AE47E1FA9E4D5441D7A370DD90AB50415C8FC2656D4D544114AE47818FAB5041295C8FE25E4D5441A4703D0A8EAB50410AD7A3B05C4D5441666666D686AB5041EC51B8DE584D5441000000507CAB5041D7A370BD534D54411F85EBE169AB5041AE47E19A4B4D5441CDCCCCCC60AB50415C8FC275484D5441D7A370BD5AAB50418FC2F5A8464D54411F85EB6144AB504100000020434D544185EB513843AB5041E17A142E444D5441
+</a>
+
+<b>
+01060000000100000001030000000100000005000000A71ED91F46AB5041445B27D5744D544119D6804047AB50412A522F6F874D54416A8BEA3C94AB5041E5379630914D5441DA5FF0F492AB504188DD3C98834D5441A71ED91F46AB5041445B27D5744D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>58660 - 3329596
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 8 </desc>
+<a>
+0106000000010000000103000000010000001100000085EB513843AB5041E17A142E444D544185EB511846AB50418FC2F558744D5441000000E048AB50415C8FC235A24D5441D7A3702D4AAB50413D0AD763A34D5441A4703DAA71AB5041B81E85BBA14D54418FC2F56894AB504185EB5148A04D54419A99998995AB5041AE47E1FA9E4D5441D7A370DD90AB50415C8FC2656D4D544114AE47818FAB5041295C8FE25E4D5441A4703D0A8EAB50410AD7A3B05C4D5441666666D686AB5041EC51B8DE584D5441000000507CAB5041D7A370BD534D54411F85EBE169AB5041AE47E19A4B4D5441CDCCCCCC60AB50415C8FC275484D5441D7A370BD5AAB50418FC2F5A8464D54411F85EB6144AB504100000020434D544185EB513843AB5041E17A142E444D5441
+</a>
+
+<b>
+01060000000100000001030000000100000005000000A71ED91F46AB5041445B27D5744D544119D6804047AB50412A522F6F874D54416A8BEA3C94AB5041E5379630914D5441DA5FF0F492AB504188DD3C98834D5441A71ED91F46AB5041445B27D5744D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>60052 - 57799
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+0106000000020000000103000000010000001C00000014AE47E1E9B450413333339338D95441333333F3E7B4504185EB514837D954410AD7A3E0E6B450417B14AEB735D954410AD7A300E5B45041CDCCCC7C35D9544114AE4781E0B450417B14AEE738D9544152B81EE5DEB450411F85EBC13CD954418FC2F5A8DBB450418FC2F5D840D95441CDCCCC1CD2B45041D7A3703D4AD9544114AE4711CCB45041713D0AB74FD95441CDCCCC5CC6B4504114AE473152D954415C8FC275C3B450411F85EB6154D95441AE47E15AC1B4504114AE479156D9544100000040BEB45041EC51B85E59D954413D0AD783B2B450413333339360D95441D7A3706DAFB4504148E17AA464D954418FC2F588AFB450410AD7A30066D954411F85EB41B0B45041E17A149E65D95441EC51B85EB3B4504148E17A8461D95441F6285CFFBEB450410AD7A3605AD95441AE47E10AC7B45041295C8F4253D95441EC51B8BECCB450418FC2F5C850D95441333333A3E6B4504185EB51183AD9544166666616F6B45041F6285C0F3DD954413D0AD733FEB4504185EB51983CD9544152B81E25FEB450418FC2F5583BD95441B81E852BF6B45041D7A370CD3BD954411F85EB31EEB450415C8FC2453AD9544114AE47E1E9B450413333339338D95441010300000001000000140000000AD7A3A05EB450418FC2F5486ED9544148E17A1467B450410AD7A3906ED954410000006069B45041F6285CFF6CD95441EC51B82E6FB45041A4703DBA63D95441AE47E13A7BB4504114AE47D162D95441C3F528EC79B45041A4703DBA61D954413333337374B450419A99993962D95441CDCCCCCC72B45041F6285C2F61D954419A99992970B4504152B81EF561D954415C8FC2756EB450416666668662D9544152B81EF56DB45041E17A140E64D95441C3F5280C6AB45041E17A149E6AD9544148E17A7468B45041CDCCCC1C6CD95441713D0AB766B45041CDCCCC4C6DD9544152B81E9564B4504152B81EF56CD95441CDCCCCCC62B45041EC51B8AE6AD9544148E17A3461B45041295C8F326AD95441B81E85EB5FB450411F85EBE16BD9544148E17A645EB45041E17A14FE6CD954410AD7A3A05EB450418FC2F5486ED95441
+</a>
+
+<b>
+0106000000010000000103000000010000001A0000003333337374B450419A99993962D954416737BA3F73B450416491CC7761D954414B3F157C71B45041993BFB9161D954419A99992970B4504152B81EF561D954415C8FC2756EB450416666668662D9544152B81EF56DB45041E17A140E64D95441C3F5280C6AB45041E17A149E6AD9544148E17A7468B45041CDCCCC1C6CD95441713D0AB766B45041CDCCCC4C6DD9544152B81E9564B4504152B81EF56CD95441CDCCCCCC62B45041EC51B8AE6AD9544148E17A3461B45041295C8F326AD95441B81E85EB5FB450411F85EBE16BD9544148E17A645EB45041E17A14FE6CD954410AD7A3A05EB450418FC2F5486ED9544140FE65AD62B4504194D04D6B6ED95441FC1F562367B45041E8327E866ED95441EB363C1868B45041D5B939DF6DD95441D9D9A02C69B45041127B72226DD9544166E1BA6469B450419D56CFF76CD95441BE6CE2606BB45041D210B0CC69D9544167FBF72D6FB45041257B8DB363D954412BA2CB9874B4504109308B5163D95441C94F27E47AB45041EBB0D4D762D9544120426ABD79B450416D527DBE61D954413333337374B450419A99993962D95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>468013 - 1728447
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -153 </desc>
+<a>
+0106000000010000000103000000010000000700000048E17A0483A35041C3F5287C301E5541713D0A4780A35041A4703D4A2F1E5541EC51B8FE7BA35041C3F5284C3E1E554114AE47117AA350413D0AD7D33D1E5541666666F676A35041A4703DCA481E5541EC51B89E7BA350417B14AE274A1E554148E17A0483A35041C3F5287C301E5541
+</a>
+
+<b>
+0106000000010000000103000000010000000900000048E17A0483A35041C3F5287C301E5541713D0A4780A35041A4703D4A2F1E5541EC51B8FE7BA35041C3F5284C3E1E554114AE47117AA350413D0AD7D33D1E5541666666F676A35041A4703DCA481E5541E548E6927AA35041F03630D9491E5541FD380A0B78A3504192982DC8521E55418FC2F53879A3504148E17A74521E554148E17A0483A35041C3F5287C301E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>468013 - 3368410
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -153 </desc>
+<a>
+0106000000010000000103000000010000000700000048E17A0483A35041C3F5287C301E5541713D0A4780A35041A4703D4A2F1E5541EC51B8FE7BA35041C3F5284C3E1E554114AE47117AA350413D0AD7D33D1E5541666666F676A35041A4703DCA481E5541EC51B89E7BA350417B14AE274A1E554148E17A0483A35041C3F5287C301E5541
+</a>
+
+<b>
+0106000000010000000103000000010000000900000048E17A0483A35041C3F5287C301E5541713D0A4780A35041A4703D4A2F1E5541EC51B8FE7BA35041C3F5284C3E1E554114AE47117AA350413D0AD7D33D1E5541666666F676A35041A4703DCA481E5541E548E6927AA35041F03630D9491E5541FD380A0B78A3504192982DC8521E55418FC2F53879A3504148E17A74521E554148E17A0483A35041C3F5287C301E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>65002 - 2998417
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000001E00000066666636D5E35041F6285C2F596054417B14AE47D2E35041F6285C5F5D60544152B81E25CCE35041CDCCCC2C61605441F6285C1FCBE3504148E17A6463605441B81E85BBCFE35041713D0A6765605441D7A3705DE2E350417B14AE876D6054418FC2F528F0E35041AE47E18A73605441AE47E11AF1E3504152B81EF573605441B81E855BE7E35041F6285C4F8A605441EC51B84EE7E35041F6285C6F8B60544166666666E8E35041E17A141E8D605441666666D6FAE35041CDCCCC0C9A605441666666B620E45041295C8FD2AE605441666666E621E45041295C8F92AE60544152B81EE521E4504185EB5188AC605441666666E621E45041333333F3A260544185EB51B821E450417B14AED798605441666666A621E4504185EB51E88C60544148E17A8421E450415C8FC295816054410000006021E45041295C8F927760544114AE472121E45041CDCCCCCC6C605441E17A14DE20E4504185EB514868605441C3F5286C20E450410AD7A3E063605441295C8F621FE45041AE47E13A5B60544152B81E351EE45041713D0AC751605441F6285CDF1DE450419A9999694F605441666666C600E45041333333333F605441B81E85DBE7E35041C3F528DC32605441D7A3704DE6E3504185EB51983760544166666636D5E35041F6285C2F59605441
+</a>
+
+<b>
+010600000001000000010300000001000000100000003F53FB00F5E350418A1CDA5E396054416B8E1FCBDBE35041CABC3B3468605441C14F7218DAE35041932D5F676860544146B85AC0CBE350415CB1540762605441F6285C1FCBE3504148E17A6463605441B81E85BBCFE35041713D0A67656054410E59CC5BE2E350419DBFF6866D6054411089D495E2E35041994F8EFF6C605441FBBC8595E3E35041B25FD5E76660544136DD79AEE5E3504152EB3BB661605441DBD72E79ECE3504149EBD56D53605441012CD491EFE35041200619094E60544154A92EF7F2E35041AAC530D7496054419F517928F9E35041D8A1C6BF4260544111501D77FDE35041E65D988F3D6054413F53FB00F5E350418A1CDA5E39605441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>65002 - 3590044
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000001E00000066666636D5E35041F6285C2F596054417B14AE47D2E35041F6285C5F5D60544152B81E25CCE35041CDCCCC2C61605441F6285C1FCBE3504148E17A6463605441B81E85BBCFE35041713D0A6765605441D7A3705DE2E350417B14AE876D6054418FC2F528F0E35041AE47E18A73605441AE47E11AF1E3504152B81EF573605441B81E855BE7E35041F6285C4F8A605441EC51B84EE7E35041F6285C6F8B60544166666666E8E35041E17A141E8D605441666666D6FAE35041CDCCCC0C9A605441666666B620E45041295C8FD2AE605441666666E621E45041295C8F92AE60544152B81EE521E4504185EB5188AC605441666666E621E45041333333F3A260544185EB51B821E450417B14AED798605441666666A621E4504185EB51E88C60544148E17A8421E450415C8FC295816054410000006021E45041295C8F927760544114AE472121E45041CDCCCCCC6C605441E17A14DE20E4504185EB514868605441C3F5286C20E450410AD7A3E063605441295C8F621FE45041AE47E13A5B60544152B81E351EE45041713D0AC751605441F6285CDF1DE450419A9999694F605441666666C600E45041333333333F605441B81E85DBE7E35041C3F528DC32605441D7A3704DE6E3504185EB51983760544166666636D5E35041F6285C2F59605441
+</a>
+
+<b>
+010600000001000000010300000001000000100000003F53FB00F5E350418A1CDA5E396054416B8E1FCBDBE35041CABC3B3468605441C14F7218DAE35041932D5F676860544146B85AC0CBE350415CB1540762605441F6285C1FCBE3504148E17A6463605441B81E85BBCFE35041713D0A67656054410E59CC5BE2E350419DBFF6866D6054411089D495E2E35041994F8EFF6C605441FBBC8595E3E35041B25FD5E76660544136DD79AEE5E3504152EB3BB661605441DBD72E79ECE3504149EBD56D53605441012CD491EFE35041200619094E60544154A92EF7F2E35041AAC530D7496054419F517928F9E35041D8A1C6BF4260544111501D77FDE35041E65D988F3D6054413F53FB00F5E350418A1CDA5E39605441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>67920 - 1441893
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -78 </desc>
+<a>
+010600000001000000010300000001000000110000008FC2F5A8D3F15041B81E85BB5010554166666626D5F150411F85EB41511055418FC2F578D8F15041D7A3706D52105541CDCCCC8CDEF150415C8FC2855310554152B81EE5E0F15041A4703D1A54105541AE47E16AE1F15041713D0AB73B1055417B14AE67E0F15041F6285C5F3A10554166666696DDF150413D0AD7B33510554152B81E35DBF15041B81E85DB3110554114AE47C1DBF15041295C8FB22D10554185EB5138D9F15041EC51B8FE2C10554152B81E15D4F15041713D0A272D105541295C8F22D3F15041F6285C2F2D1055410AD7A350D3F15041B81E85EB301055410AD7A3A0D3F150413D0AD7C335105541AE47E1FAD3F15041B81E851B3D1055418FC2F5A8D3F15041B81E85BB50105541
+</a>
+
+<b>
+01060000000100000001030000000100000012000000D8F4BA5CD3F15041A13802685010554166666626D5F150411F85EB41511055418FC2F578D8F15041D7A3706D52105541CDCCCC8CDEF150415C8FC2855310554152B81EE5E0F15041A4703D1A54105541AE47E16AE1F15041713D0AB73B1055417B14AE67E0F15041F6285C5F3A1055417D3E478EDDF150414A11B8A63510554144908009DCF15041332E32DC311055419F74BB93DCF150418196CDF12D10554185EB5138D9F15041EC51B8FE2C10554152B81E15D4F15041713D0A272D1055418707C0DDD1F15041A398CF3A2D10554154037A58D2F15041A5586B1431105541B834A6F5D2F15041E86D2F0236105541FE52D9BAD3F1504103FF45A93C105541925355C5D3F15041CDB104623D105541D8F4BA5CD3F15041A138026850105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>67920 - 3441998
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -78 </desc>
+<a>
+010600000001000000010300000001000000110000008FC2F5A8D3F15041B81E85BB5010554166666626D5F150411F85EB41511055418FC2F578D8F15041D7A3706D52105541CDCCCC8CDEF150415C8FC2855310554152B81EE5E0F15041A4703D1A54105541AE47E16AE1F15041713D0AB73B1055417B14AE67E0F15041F6285C5F3A10554166666696DDF150413D0AD7B33510554152B81E35DBF15041B81E85DB3110554114AE47C1DBF15041295C8FB22D10554185EB5138D9F15041EC51B8FE2C10554152B81E15D4F15041713D0A272D105541295C8F22D3F15041F6285C2F2D1055410AD7A350D3F15041B81E85EB301055410AD7A3A0D3F150413D0AD7C335105541AE47E1FAD3F15041B81E851B3D1055418FC2F5A8D3F15041B81E85BB50105541
+</a>
+
+<b>
+01060000000100000001030000000100000012000000D8F4BA5CD3F15041A13802685010554166666626D5F150411F85EB41511055418FC2F578D8F15041D7A3706D52105541CDCCCC8CDEF150415C8FC2855310554152B81EE5E0F15041A4703D1A54105541AE47E16AE1F15041713D0AB73B1055417B14AE67E0F15041F6285C5F3A1055417D3E478EDDF150414A11B8A63510554144908009DCF15041332E32DC311055419F74BB93DCF150418196CDF12D10554185EB5138D9F15041EC51B8FE2C10554152B81E15D4F15041713D0A272D1055418707C0DDD1F15041A398CF3A2D10554154037A58D2F15041A5586B1431105541B834A6F5D2F15041E86D2F0236105541FE52D9BAD3F1504103FF45A93C105541925355C5D3F15041CDB104623D105541D8F4BA5CD3F15041A138026850105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>471071 - 1061146
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000000F000000D7A3703DC8275141F6285C9F727A54413D0AD7E3C7275141333333C3707A5441E17A147EC82751417B14AED76E7A544166666686C92751410AD7A3E06C7A54418FC2F5C8C82751413D0AD7A36A7A5441C3F528FCC8275141CDCCCCBC697A5441B81E854B752751410AD7A3203A7A544148E17AF47027514148E17A24417A544185EB51F868275141E17A140E4E7A54419A9999797A2751417B14AE47587A544100000040BF2751417B14AE677F7A54419A9999D9C127514185EB51387F7A54415C8FC215C52751418FC2F548797A544114AE47E1C7275141295C8F62747A5441D7A3703DC8275141F6285C9F727A5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000572B5350712751417AC7BD95407A5441607B4BB76F275141A56CD825437A544185EB51F868275141E17A140E4E7A54419A9999797A2751417B14AE47587A544100000040BF2751417B14AE677F7A54419A9999D9C127514185EB51387F7A54415C8FC215C52751418FC2F548797A544114AE47E1C7275141295C8F62747A54419EF0C822C8275141D8683F31737A54410044A41FC8275141D8683F31737A54414134952BC82751415425C9F6727A5441572B5350712751417AC7BD95407A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>471071 - 3538369
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000000F000000D7A3703DC8275141F6285C9F727A54413D0AD7E3C7275141333333C3707A5441E17A147EC82751417B14AED76E7A544166666686C92751410AD7A3E06C7A54418FC2F5C8C82751413D0AD7A36A7A5441C3F528FCC8275141CDCCCCBC697A5441B81E854B752751410AD7A3203A7A544148E17AF47027514148E17A24417A544185EB51F868275141E17A140E4E7A54419A9999797A2751417B14AE47587A544100000040BF2751417B14AE677F7A54419A9999D9C127514185EB51387F7A54415C8FC215C52751418FC2F548797A544114AE47E1C7275141295C8F62747A5441D7A3703DC8275141F6285C9F727A5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000572B5350712751417AC7BD95407A5441607B4BB76F275141A56CD825437A544185EB51F868275141E17A140E4E7A54419A9999797A2751417B14AE47587A544100000040BF2751417B14AE677F7A54419A9999D9C127514185EB51387F7A54415C8FC215C52751418FC2F548797A544114AE47E1C7275141295C8F62747A54419EF0C822C8275141D8683F31737A54410044A41FC8275141D8683F31737A54414134952BC82751415425C9F6727A5441572B5350712751417AC7BD95407A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>960135 - 855352
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -29 </desc>
+<a>
+01060000000100000001030000000100000016000000695933E40B6451411738E76B87715441DE3168DEFE6351417D8A3D478B7154417BC1F000FF635141E99F42AC8B7154419050C4600F64514114654EEF867154416086131B13645141C9F5D2DA85715441D734C43D1664514153C5DAFB8471544199D0A8B81C6451419225670883715441EF4E13D520645141B9E13ED081715441FF62A7DF24645141D91185D680715441B300C1D828645141E2D2CDE17F715441D5C1F2EB296451415467D5977F71544199C06CD62E645141C676040D7E7154412B1877403264514182931ABA7C715441CECAE82932645141649364657C7154411A43241B326451414AE96B3B7C7154416A0F9B6F2A645141CA8D55EF7E715441B1961295276451417E33EB977F715441DA2CC9C0226451419B335BD680715441442704A71D6451410662D14182715441A51FD04F146451418DCED9F784715441628533310E645141F4069EC386715441695933E40B6451411738E76B87715441
+</a>
+
+<b>
+01060000000100000001030000000100000023000000A4703D4A3B6451418FC2F5F88571544185EB51284464514114AE470184715441AE47E17A60645141B81E85BB7D7154418FC2F5D8646451413D0AD7C37C715441A4703D6A60645141D7A3706D67715441CDCCCCEC5F645141EC51B88E67715441C3F5280C5464514114AE47516A71544185EB51E846645141000000606D715441F6285C6F3964514152B81E85707154419A9999692D6451413D0AD7C37371544148E17AD41C645141295C8F4278715441D7A370EDFC635141713D0A777E71544148E17AD4FB635141C3F528CC7E71544100000080FE635141333333638B7154419A9999790D6451413D0AD7F386715441713D0A0721645141713D0A4781715441000000302D6451410AD7A3F07D715441D7A3700D3264514148E17A147C71544166666656326451413D0AD7E37C715441C3F5283C2D6451413D0AD7B37E7154410000002023645141B81E856B8171544185EB51180E64514166666686877154415C8FC295F7635141295C8F028E715441713D0AF7F6635141B81E85EB91715441713D0A87F063514148E17AD49371544100000000EF6351417B14AEF7907154417B14AE97ED635141A4703D8A91715441A4703DEAEA63514114AE479192715441CDCCCC4CD2635141EC51B80E9A715441E17A14AED46351419A999959AA715441295C8FD2F36351415C8FC2059C71544114AE4771F86351411F85EB01997154413D0AD7831A6451419A9999998E715441D7A3708D2A645141000000B089715441A4703D4A3B6451418FC2F5F885715441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>960135 - 1256368
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -15 </desc>
+<a>
+01060000000100000001030000000100000016000000695933E40B6451411738E76B87715441DE3168DEFE6351417D8A3D478B7154417BC1F000FF635141E99F42AC8B7154419050C4600F64514114654EEF867154416086131B13645141C9F5D2DA85715441D734C43D1664514153C5DAFB8471544199D0A8B81C6451419225670883715441EF4E13D520645141B9E13ED081715441FF62A7DF24645141D91185D680715441B300C1D828645141E2D2CDE17F715441D5C1F2EB296451415467D5977F71544199C06CD62E645141C676040D7E7154412B1877403264514182931ABA7C715441CECAE82932645141649364657C7154411A43241B326451414AE96B3B7C7154416A0F9B6F2A645141CA8D55EF7E715441B1961295276451417E33EB977F715441DA2CC9C0226451419B335BD680715441442704A71D6451410662D14182715441A51FD04F146451418DCED9F784715441628533310E645141F4069EC386715441695933E40B6451411738E76B87715441
+</a>
+
+<b>
+0106000000010000000103000000010000003100000073FF49F0EE635141140712FE907154417B14AE97ED635141A4703D8A91715441A4703DEAEA63514114AE479192715441CDCCCC4CD2635141EC51B80E9A715441E17A14AED46351419A999959AA715441295C8FD2F36351415C8FC2059C71544114AE4771F86351411F85EB01997154413D0AD7831A6451419A9999998E715441D7A3708D2A645141000000B089715441A4703D4A3B6451418FC2F5F88571544185EB51284464514114AE470184715441AE47E17A60645141B81E85BB7D7154418FC2F5D8646451413D0AD7C37C715441A4703D6A60645141D7A3706D67715441CDCCCCEC5F645141EC51B88E67715441C3F5280C5464514114AE47516A71544185EB51E846645141000000606D715441F6285C6F3964514152B81E85707154419A9999692D6451413D0AD7C37371544148E17AD41C645141295C8F4278715441609015E9FB635141E0B31E9E7E715441D05AD7E9FB63514172228FA17E7154414F6D3AFBFB635141E0B31E9E7E71544105FF59FFFD635141893A24E187715441F12E5FD5FE635141BCD088328B71544174D8163DFF6351410404332B8B715441695933E40B6451411338E76B8771544176DC11FF0C645141C75B151B877154419A9999790D6451413D0AD7F386715441361BD04F14645141D5CFD9F7847154411F15392F1B645141643631F982715441713D0A0721645141713D0A47817154419E8CA87C2A64514139DF70D47E715441000000302D6451410AD7A3F07D715441D7A3700D3264514148E17A147C71544166666656326451413D0AD7E37C715441C3F5283C2D6451413D0AD7B37E715441A180526D29645141C9ACDEB97F715441B100C1D828645141E7D2CDE17F7154410000002023645141B81E856B81715441320E790E0E6451418F65C556877154415C8FC295F7635141295C8F028E715441713D0AF7F6635141B81E85EB917154415FE91D9BF0635141149C51E193715441B8C5A391F063514112C755D193715441713D0A87F063514148E17AD4937154410D4DDF16F0635141FABD47029371544173FF49F0EE635141679A72119171544173FF49F0EE635141140712FE90715441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>960135 - 3468357
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -15 </desc>
+<a>
+01060000000100000001030000000100000016000000695933E40B6451411738E76B87715441DE3168DEFE6351417D8A3D478B7154417BC1F000FF635141E99F42AC8B7154419050C4600F64514114654EEF867154416086131B13645141C9F5D2DA85715441D734C43D1664514153C5DAFB8471544199D0A8B81C6451419225670883715441EF4E13D520645141B9E13ED081715441FF62A7DF24645141D91185D680715441B300C1D828645141E2D2CDE17F715441D5C1F2EB296451415467D5977F71544199C06CD62E645141C676040D7E7154412B1877403264514182931ABA7C715441CECAE82932645141649364657C7154411A43241B326451414AE96B3B7C7154416A0F9B6F2A645141CA8D55EF7E715441B1961295276451417E33EB977F715441DA2CC9C0226451419B335BD680715441442704A71D6451410662D14182715441A51FD04F146451418DCED9F784715441628533310E645141F4069EC386715441695933E40B6451411738E76B87715441
+</a>
+
+<b>
+0106000000010000000103000000010000003100000073FF49F0EE635141140712FE907154417B14AE97ED635141A4703D8A91715441A4703DEAEA63514114AE479192715441CDCCCC4CD2635141EC51B80E9A715441E17A14AED46351419A999959AA715441295C8FD2F36351415C8FC2059C71544114AE4771F86351411F85EB01997154413D0AD7831A6451419A9999998E715441D7A3708D2A645141000000B089715441A4703D4A3B6451418FC2F5F88571544185EB51284464514114AE470184715441AE47E17A60645141B81E85BB7D7154418FC2F5D8646451413D0AD7C37C715441A4703D6A60645141D7A3706D67715441CDCCCCEC5F645141EC51B88E67715441C3F5280C5464514114AE47516A71544185EB51E846645141000000606D715441F6285C6F3964514152B81E85707154419A9999692D6451413D0AD7C37371544148E17AD41C645141295C8F4278715441609015E9FB635141E0B31E9E7E715441D05AD7E9FB63514172228FA17E7154414F6D3AFBFB635141E0B31E9E7E71544105FF59FFFD635141893A24E187715441F12E5FD5FE635141BCD088328B71544174D8163DFF6351410404332B8B715441695933E40B6451411338E76B8771544176DC11FF0C645141C75B151B877154419A9999790D6451413D0AD7F386715441361BD04F14645141D5CFD9F7847154411F15392F1B645141643631F982715441713D0A0721645141713D0A47817154419E8CA87C2A64514139DF70D47E715441000000302D6451410AD7A3F07D715441D7A3700D3264514148E17A147C71544166666656326451413D0AD7E37C715441C3F5283C2D6451413D0AD7B37E715441A180526D29645141C9ACDEB97F715441B100C1D828645141E7D2CDE17F7154410000002023645141B81E856B81715441320E790E0E6451418F65C556877154415C8FC295F7635141295C8F028E715441713D0AF7F6635141B81E85EB917154415FE91D9BF0635141149C51E193715441B8C5A391F063514112C755D193715441713D0A87F063514148E17AD4937154410D4DDF16F0635141FABD47029371544173FF49F0EE635141679A72119171544173FF49F0EE635141140712FE90715441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>971998 - 58524
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -35 </desc>
+<a>
+0106000000010000000103000000010000000A000000D20B5DDF04BD50412DD3D1E3B2CF54418F5529AC3FBD504107BB88F3BDCF5441B81E85AB3FBD5041A4703DCABDCF5441D7A3706D3FBD50417B14AEB7ADCF54418FC2F58839BD5041713D0AC7ABCF54417B14AE172CBD5041E17A14FEA7CF5441C3F5284C20BD5041AE47E16AA5CF54413D0AD70313BD50415C8FC225A3CF5441B81E859B04BD5041295C8F52A1CF5441D20B5DDF04BD50412DD3D1E3B2CF5441
+</a>
+
+<b>
+010600000001000000010300000001000000110000002405F2AD04BD504158DDF417A6CF544161AE40E004BD5041E97151E3B2CF5441CA4834EC1BBD5041FFF7E039B7CF544197B485562FBD5041BE9CE3E0BACF5441692C37AA3FBD50410BBB85F2BDCF5441B81E85AB3FBD5041A4703DCABDCF5441F7BCDD9D3FBD5041F74B4941BACF544120C9EC5A3FBD5041A9931BB4ADCF54418388831739BD504197D418A7ABCF54418623C09438BD5041E52C4782ABCF5441247B53BC37BD5041C6E75645ABCF54416E05C3CD2BBD5041BD71D9F4A7CF5441B47BC2111FBD5041F0032635A5CF54419B02F6C41EBD504184020628A5CF54417EBCE3FB10BD50418AB81AF1A2CF544140D5B09B04BD5041D20AE15DA1CF54412405F2AD04BD504158DDF417A6CF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>208500 - 1621857
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -145 </desc>
+<a>
+0106000000010000000103000000010000001A000000D7A370ED28935041B81E855B4144554148E17A0429935041713D0A37424455418FC2F5982893504152B81E9543445541B81E855B25935041A4703D3A434455416666660625935041A4703D3A434455413D0AD7C324935041EC51B8CE45445541713D0AF724935041C3F5287C48445541B81E853B269350419A9999B94944554148E17A44279350411F85EB014A44554148E17AC428935041713D0AE74944554114AE47512B93504152B81E9548445541E17A14FE2D935041C3F5281C46445541713D0A372D935041333333A33E445541A4703D7A2B935041F6285C5F3E445541F6285CBF29935041295C8F023E445541E17A149E279350417B14AE773D445541F6285CDF26935041EC51B85E3D44554148E17A6426935041A4703D7A3D445541E17A14FE25935041295C8FC23D44554114AE47C125935041000000203E445541EC51B86E25935041B81E85FB3D44554152B81E35259350410000003040445541AE47E15A279350418FC2F54840445541D7A3706D28935041D7A3705D40445541295C8F322893504148E17A4441445541D7A370ED28935041B81E855B41445541
+</a>
+
+<b>
+01060000000100000001030000000100000015000000576E5BEE28935041EAC82D5B414455418FC2F5982893504152B81E95434455411CE3BFBC279350414F92F86D434455414A57436027935041C5356E83444455417622B1F326935041AF0998604544554119C7E85E26935041C2FF19C1454455415ED69CC724935041B8EE390146445541713D0AF724935041C3F5287C48445541B81E853B269350419A9999B94944554148E17A44279350411F85EB014A44554148E17AC428935041713D0AE74944554114AE47512B93504152B81E9548445541E17A14FE2D935041C3F5281C46445541713D0A372D935041333333A33E445541A4703D7A2B935041F6285C5F3E44554103FF8C23299350412C4EE0DA3D44554154C545DE28935041E3907F9F3E44554107B7E999289350411278C4903F445541D7A3706D28935041D7A3705D40445541295C8F322893504148E17A4441445541576E5BEE28935041EAC82D5B41445541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>208500 - 4281603
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -145 </desc>
+<a>
+0106000000010000000103000000010000001A000000D7A370ED28935041B81E855B4144554148E17A0429935041713D0A37424455418FC2F5982893504152B81E9543445541B81E855B25935041A4703D3A434455416666660625935041A4703D3A434455413D0AD7C324935041EC51B8CE45445541713D0AF724935041C3F5287C48445541B81E853B269350419A9999B94944554148E17A44279350411F85EB014A44554148E17AC428935041713D0AE74944554114AE47512B93504152B81E9548445541E17A14FE2D935041C3F5281C46445541713D0A372D935041333333A33E445541A4703D7A2B935041F6285C5F3E445541F6285CBF29935041295C8F023E445541E17A149E279350417B14AE773D445541F6285CDF26935041EC51B85E3D44554148E17A6426935041A4703D7A3D445541E17A14FE25935041295C8FC23D44554114AE47C125935041000000203E445541EC51B86E25935041B81E85FB3D44554152B81E35259350410000003040445541AE47E15A279350418FC2F54840445541D7A3706D28935041D7A3705D40445541295C8F322893504148E17A4441445541D7A370ED28935041B81E855B41445541
+</a>
+
+<b>
+01060000000100000001030000000100000015000000576E5BEE28935041EAC82D5B414455418FC2F5982893504152B81E95434455411CE3BFBC279350414F92F86D434455414A57436027935041C5356E83444455417622B1F326935041AF0998604544554119C7E85E26935041C2FF19C1454455415ED69CC724935041B8EE390146445541713D0AF724935041C3F5287C48445541B81E853B269350419A9999B94944554148E17A44279350411F85EB014A44554148E17AC428935041713D0AE74944554114AE47512B93504152B81E9548445541E17A14FE2D935041C3F5281C46445541713D0A372D935041333333A33E445541A4703D7A2B935041F6285C5F3E44554103FF8C23299350412C4EE0DA3D44554154C545DE28935041E3907F9F3E44554107B7E999289350411278C4903F445541D7A3706D28935041D7A3705D40445541295C8F322893504148E17A4441445541576E5BEE28935041EAC82D5B41445541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>86154 - 56608
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 9 </desc>
+<a>
+01060000000100000001030000000100000014000000295C8FC2F1B45041E17A14FE6A085541713D0A17F3B450411F85EB516A085541B81E85FBF4B450418FC2F57865085541E17A142EF7B45041295C8F32610855417B14AEB7F9B45041333333335E0855410AD7A380FCB45041E17A14AE5B0855417B14AED70BB55041F6285C0F520855413D0AD7030CB55041D7A370CD50085541AE47E1FAFBB45041666666D63F0855418FC2F598F1B45041295C8FE234085541CDCCCC0CE9B45041EC51B8DE2B085541713D0AC7CDB450410AD7A3303B085541D7A370ADC9B450410AD7A3E03D08554148E17AF4C5B450415C8FC21541085541713D0A57BCB45041000000804A0855415C8FC215B2B45041E17A148E5508554152B81E05B1B450416666669658085541713D0A17B1B4504114AE47215908554185EB5128B1B45041EC51B8AE59085541295C8FC2F1B45041E17A14FE6A085541
+</a>
+
+<b>
+010600000001000000010300000001000000140000002501DDBAD1B450416770006962085541295C8FC2F1B45041E17A14FE6A085541713D0A17F3B450411F85EB516A085541B81E85FBF4B450418FC2F57865085541E17A142EF7B45041295C8F32610855417B14AEB7F9B45041333333335E0855410AD7A380FCB45041E17A14AE5B0855417B14AED70BB55041F6285C0F520855413D0AD7030CB55041D7A370CD50085541CDCCCC0CE9B45041EC51B8DE2B085541713D0AC7CDB450410AD7A3303B085541D7A370ADC9B450410AD7A3E03D08554148E17AF4C5B450415C8FC21541085541713D0A57BCB45041000000804A0855415C8FC215B2B45041E17A148E5508554152B81E05B1B45041666666965808554102B04243B1B450416AF6729A5908554155235E89B1B4504113B080BD59085541ECF0D8B2B1B450413D81D6D3590855412501DDBAD1B450416770006962085541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>91539 - 39658
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+01060000000100000001030000000100000008000000666666A6CCBB5041D7A3707D2B76544152B81EE5C8BB504185EB51682D765441D7A3700DC5BB5041EC51B85E2F76544185EB51D8C7BB50415C8FC235437654417B14AEA7CBBB5041CDCCCC5C43765441713D0AD7CFBB50417B14AE87437654418FC2F5B8CCBB50410AD7A3702B765441666666A6CCBB5041D7A3707D2B765441
+</a>
+
+<b>
+01060000000100000001030000000100000009000000D15BD25AC5BB504111517F84317654415F2CCD73C5BB5041E72A5F1F3276544134C7BB2CC9BB504116A83B8030765441E491CAF9CBBB504137E1D8913176544103C73517CFBB50411C0458BD3D7654415D015F82CEBB504116BA363F39765441666666A6CCBB5041D7A3707D2B765441D7A3700DC5BB5041EC51B85E2F765441D15BD25AC5BB504111517F8431765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>91539 - 78678
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+01060000000100000001030000000100000008000000666666A6CCBB5041D7A3707D2B76544152B81EE5C8BB504185EB51682D765441D7A3700DC5BB5041EC51B85E2F76544185EB51D8C7BB50415C8FC235437654417B14AEA7CBBB5041CDCCCC5C43765441713D0AD7CFBB50417B14AE87437654418FC2F5B8CCBB50410AD7A3702B765441666666A6CCBB5041D7A3707D2B765441
+</a>
+
+<b>
+01060000000100000001030000000100000009000000D15BD25AC5BB504111517F84317654415F2CCD73C5BB5041E72A5F1F3276544134C7BB2CC9BB504116A83B8030765441E491CAF9CBBB504137E1D8913176544103C73517CFBB50411C0458BD3D7654415D015F82CEBB504116BA363F39765441666666A6CCBB5041D7A3707D2B765441D7A3700DC5BB5041EC51B85E2F765441D15BD25AC5BB504111517F8431765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>92278 - 1796120
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000010000002A000000000000602BA7504114AE4741147854419A9999B92AA75041B81E853B117854418FC2F5482AA7504185EB51480E7854411F85EB6128A75041666666760C785441CDCCCC3C27A75041B81E856B0A7854413D0AD7C327A75041AE47E12A087854411F85EB412FA75041CDCCCC6CFF77544152B81E6531A7504152B81E45FF7754410AD7A30034A750415C8FC29500785441B81E85DB37A7504152B81E1504785441C3F5289C3AA750413333338304785441EC51B84E3EA750413D0AD783FA775441B81E852B3FA75041A4703D7AF87754410AD7A3C041A7504185EB5158F67754418FC2F5E842A7504152B81EA5F477544185EB51C842A75041713D0AA7F17754413333335342A75041AE47E18AEE77544185EB516841A75041000000D0ED775441D7A3708D3DA7504152B81E35ED775441333333733BA75041CDCCCC0CEB7754410AD7A3303DA7504148E17A84E4775441000000203BA75041C3F528CCE27754413D0AD73338A7504185EB5188E1775441EC51B86E37A75041E17A148EE1775441333333832AA75041F6285CEFE17754413D0AD7D329A750410AD7A340E977544152B81ED528A75041C3F5285CEE7754416666664627A75041AE47E1EAF27754419A9999F918A75041713D0A67087854417B14AE3718A75041295C8F120A785441666666D617A75041000000F00B785441295C8FD217A7504152B81EF5247854411F85EB311AA7504148E17A144678544114AE47211CA75041C3F528EC4A78544185EB51381CA75041B81E85EB4B785441A4703D6A22A7504100000040517854411F85EBD124A75041E17A146E427854410000004027A75041713D0AE7397854415C8FC25528A750418FC2F5382E785441B81E855B2AA75041713D0AC724785441295C8F122CA75041CDCCCC8C1A785441000000602BA7504114AE474114785441
+</a>
+
+<b>
+0106000000010000000103000000010000002B000000000000602BA7504114AE4741147854419A9999B92AA75041B81E853B117854418FC2F5482AA7504185EB51480E7854411F85EB6128A75041666666760C785441CDCCCC3C27A75041B81E856B0A7854413D0AD7C327A75041AE47E12A087854411F85EB412FA75041CDCCCC6CFF77544152B81E6531A7504152B81E45FF7754410AD7A30034A750415C8FC29500785441B81E85DB37A7504152B81E1504785441C3F5289C3AA750413333338304785441EC51B84E3EA750413D0AD783FA775441B81E852B3FA75041A4703D7AF87754410AD7A3C041A7504185EB5158F67754418FC2F5E842A7504152B81EA5F477544185EB51C842A75041713D0AA7F17754413333335342A75041AE47E18AEE77544185EB516841A75041000000D0ED775441D7A3708D3DA7504152B81E35ED775441333333733BA75041CDCCCC0CEB7754410AD7A3303DA7504148E17A84E4775441000000203BA75041C3F528CCE27754413D0AD73338A7504185EB5188E1775441EC51B86E37A75041E17A148EE1775441333333832AA75041F6285CEFE17754413D0AD7D329A750410AD7A340E977544152B81ED528A75041C3F5285CEE7754416666664627A75041AE47E1EAF27754419A9999F918A75041713D0A67087854417B14AE3718A75041295C8F120A785441666666D617A75041000000F00B785441295C8FD217A7504152B81EF5247854411F85EB311AA7504148E17A144678544114AE47211CA75041C3F528EC4A78544185EB51381CA75041B81E85EB4B785441A4703D6A22A750410000004051785441A07BDBCD24A75041735B1D87427854415FEA4BB325A75041ADDE2C573F7854415C637B1C27A750418A92AE633A7854415C8FC25528A750418FC2F5382E785441B81E855B2AA75041713D0AC724785441295C8F122CA75041CDCCCC8C1A785441000000602BA7504114AE474114785441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>92278 - 3401927
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000010000002A000000000000602BA7504114AE4741147854419A9999B92AA75041B81E853B117854418FC2F5482AA7504185EB51480E7854411F85EB6128A75041666666760C785441CDCCCC3C27A75041B81E856B0A7854413D0AD7C327A75041AE47E12A087854411F85EB412FA75041CDCCCC6CFF77544152B81E6531A7504152B81E45FF7754410AD7A30034A750415C8FC29500785441B81E85DB37A7504152B81E1504785441C3F5289C3AA750413333338304785441EC51B84E3EA750413D0AD783FA775441B81E852B3FA75041A4703D7AF87754410AD7A3C041A7504185EB5158F67754418FC2F5E842A7504152B81EA5F477544185EB51C842A75041713D0AA7F17754413333335342A75041AE47E18AEE77544185EB516841A75041000000D0ED775441D7A3708D3DA7504152B81E35ED775441333333733BA75041CDCCCC0CEB7754410AD7A3303DA7504148E17A84E4775441000000203BA75041C3F528CCE27754413D0AD73338A7504185EB5188E1775441EC51B86E37A75041E17A148EE1775441333333832AA75041F6285CEFE17754413D0AD7D329A750410AD7A340E977544152B81ED528A75041C3F5285CEE7754416666664627A75041AE47E1EAF27754419A9999F918A75041713D0A67087854417B14AE3718A75041295C8F120A785441666666D617A75041000000F00B785441295C8FD217A7504152B81EF5247854411F85EB311AA7504148E17A144678544114AE47211CA75041C3F528EC4A78544185EB51381CA75041B81E85EB4B785441A4703D6A22A7504100000040517854411F85EBD124A75041E17A146E427854410000004027A75041713D0AE7397854415C8FC25528A750418FC2F5382E785441B81E855B2AA75041713D0AC724785441295C8F122CA75041CDCCCC8C1A785441000000602BA7504114AE474114785441
+</a>
+
+<b>
+0106000000010000000103000000010000002B000000000000602BA7504114AE4741147854419A9999B92AA75041B81E853B117854418FC2F5482AA7504185EB51480E7854411F85EB6128A75041666666760C785441CDCCCC3C27A75041B81E856B0A7854413D0AD7C327A75041AE47E12A087854411F85EB412FA75041CDCCCC6CFF77544152B81E6531A7504152B81E45FF7754410AD7A30034A750415C8FC29500785441B81E85DB37A7504152B81E1504785441C3F5289C3AA750413333338304785441EC51B84E3EA750413D0AD783FA775441B81E852B3FA75041A4703D7AF87754410AD7A3C041A7504185EB5158F67754418FC2F5E842A7504152B81EA5F477544185EB51C842A75041713D0AA7F17754413333335342A75041AE47E18AEE77544185EB516841A75041000000D0ED775441D7A3708D3DA7504152B81E35ED775441333333733BA75041CDCCCC0CEB7754410AD7A3303DA7504148E17A84E4775441000000203BA75041C3F528CCE27754413D0AD73338A7504185EB5188E1775441EC51B86E37A75041E17A148EE1775441333333832AA75041F6285CEFE17754413D0AD7D329A750410AD7A340E977544152B81ED528A75041C3F5285CEE7754416666664627A75041AE47E1EAF27754419A9999F918A75041713D0A67087854417B14AE3718A75041295C8F120A785441666666D617A75041000000F00B785441295C8FD217A7504152B81EF5247854411F85EB311AA7504148E17A144678544114AE47211CA75041C3F528EC4A78544185EB51381CA75041B81E85EB4B785441A4703D6A22A750410000004051785441A07BDBCD24A75041735B1D87427854415FEA4BB325A75041ADDE2C573F7854415C637B1C27A750418A92AE633A7854415C8FC25528A750418FC2F5382E785441B81E855B2AA75041713D0AC724785441295C8F122CA75041CDCCCC8C1A785441000000602BA7504114AE474114785441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235506 - 272239
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -212 </desc>
+<a>
+0106000000010000000103000000010000001B0000005C8FC27522A151415C8FC2D563A054418FC2F5282BA15141E17A14CE5EA054419A9999792DA1514114AE47315DA054417B14AE072FA15141295C8FB25BA054415C8FC23530A15141E17A148E59A054411F85EB2131A15141295C8F9254A05441F6285C2F2BA15141D7A3709D51A054418FC2F53828A15141A4703DFA52A05441295C8F021BA1514185EB51B853A05441B81E85EB20A15141C3F528CC4CA05441AE47E16A20A1514152B81E954BA054419A9999E920A15141C3F5284C4BA05441E17A145E20A151419A9999994AA054415C8FC2951FA15141295C8F624AA05441C3F528BC1EA151419A9999B949A0544114AE47D11DA151415C8FC25549A05441666666361DA1514185EB517849A0544114AE47011BA15141AE47E1EA48A054410000005018A15141E17A14FE48A05441295C8F8213A15141D7A3703D48A054417B14AE9712A15141713D0A1749A05441E17A140E03A1514185EB517857A054415C8FC2750BA15141E17A14DE61A054411F85EBA114A15141713D0A376DA05441B81E858B17A15141B81E85CB6AA05441333333931CA151410000008067A054415C8FC27522A151415C8FC2D563A05441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000B36AC6E623A15141E3EF680063A054417F7241A426A15141135CD76A61A05441C4603AE727A15141DC35BAA160A054411BC632242BA15141685F58B05EA054417173288E2DA15141286A65195DA05441F972F6062FA15141A06A97A05BA054417516431630A151417E9E109159A05441A740F4A230A15141F53C504057A0544154441EC430A1514117F5308D56A05441DD465FEC30A15141ADBBC6B355A0544105C4811C2FA15141EA4BA3C454A054412244A66A2DA15141A0A376FD53A054411BF58E442BA15141692FAC1153A05441282569F229A1514152DE20FC52A054413ECDACCE28A151412A3F821D53A05441EE41A94128A1514160A0D8AD53A05441C4603AE727A151416BFC591754A054419662A25227A15141E2CA7A1954A0544114DC7E7D26A1514171DF30DD53A05441C3F4F98625A15141ECD935B353A05441D38A0A7D24A151418925C69E53A054412E62D07C23A15141A7AAB38F53A05441CFFD461B23A151414007D74353A054412B1ED86A21A15141792C245C53A05441393E46A01BA1514140FB74AF53A054419583F4091BA15141411BEBBC53A05441E4A2B73619A15141582F6FF954A054418018B8061BA151411EE25F8D57A05441D042616B1BA1514163A4E11B58A05441B36AC6E623A15141E3EF680063A05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235713 - 1176925
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -12 </desc>
+<a>
+0106000000010000000103000000010000000C000000666666560A9F51413D0AD79318A154415C8FC2E50B9F514152B81EE519A1544166666676129F51413D0AD7A315A1544166666616FF9E5141333333F304A154413D0AD7C3EB9E5141EC51B84EF4A05441000000A0DB9E5141B81E855BE3A054413D0AD713DA9E51410AD7A390E7A0544133333363D79E5141C3F528CCECA0544185EB5158E69E5141295C8F92FAA0544185EB5138EE9E5141AE47E14A02A154418FC2F598F69E5141C3F5281C09A15441666666560A9F51413D0AD79318A15441
+</a>
+
+<b>
+0106000000010000000103000000010000001400000077A647A80A9F514109E4FDD818A154418DCE9C35009F5141EC693BA410A15441668FC7F3F09E5141634D178404A154417ADC8BEEEF9E51418EBB80AF03A154412F1D0171EE9E5141CD4C027902A15441DDAACAC6EC9E514122FB9FE000A1544130D28284D79E5141FD68D6EAECA0544133333363D79E5141C3F528CCECA0544152B81EA5D69E5141E17A143EEEA0544152B81E35D59E51411F85EB41F1A05441295C8F62D39E51413D0AD713F5A05441E17A14EEDE9E5141666666B6FFA054410AD7A3B0E39E51417B14AE7704A15441C3F5282CF09E51415C8FC2D50EA15441CDCCCCCC039F5141C3F528DC1DA154418BA6F431049F51412045C2291EA154416CFF589C079F51419EF0E94D1CA1544163CBA0320A9F514188FA2F061BA15441211DBC090C9F51418D410C1E1AA1544177A647A80A9F514109E4FDD818A15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235713 - 3478977
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -12 </desc>
+<a>
+0106000000010000000103000000010000000C000000666666560A9F51413D0AD79318A154415C8FC2E50B9F514152B81EE519A1544166666676129F51413D0AD7A315A1544166666616FF9E5141333333F304A154413D0AD7C3EB9E5141EC51B84EF4A05441000000A0DB9E5141B81E855BE3A054413D0AD713DA9E51410AD7A390E7A0544133333363D79E5141C3F528CCECA0544185EB5158E69E5141295C8F92FAA0544185EB5138EE9E5141AE47E14A02A154418FC2F598F69E5141C3F5281C09A15441666666560A9F51413D0AD79318A15441
+</a>
+
+<b>
+0106000000010000000103000000010000001400000077A647A80A9F514109E4FDD818A154418DCE9C35009F5141EC693BA410A15441668FC7F3F09E5141634D178404A154417ADC8BEEEF9E51418EBB80AF03A154412F1D0171EE9E5141CD4C027902A15441DDAACAC6EC9E514122FB9FE000A1544130D28284D79E5141FD68D6EAECA0544133333363D79E5141C3F528CCECA0544152B81EA5D69E5141E17A143EEEA0544152B81E35D59E51411F85EB41F1A05441295C8F62D39E51413D0AD713F5A05441E17A14EEDE9E5141666666B6FFA054410AD7A3B0E39E51417B14AE7704A15441C3F5282CF09E51415C8FC2D50EA15441CDCCCCCC039F5141C3F528DC1DA154418BA6F431049F51412045C2291EA154416CFF589C079F51419EF0E94D1CA1544163CBA0320A9F514188FA2F061BA15441211DBC090C9F51418D410C1E1AA1544177A647A80A9F514109E4FDD818A15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>102830 - 2889953
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -44 </desc>
+<a>
+01060000000100000001030000000100000016000000A4703DAAC8575141000000A0069254410AD7A350AF57514152B81E05DF915441CDCCCC1CA0575141EC51B80ED09154417B14AE577B575141E17A14EEB39154410AD7A3B07B5751418FC2F578B891544148E17AF47A5751415C8FC285BD915441EC51B8BE78575141EC51B8FEC09154415C8FC2A576575141000000B0C69154419A9999E9755751411F85EB61C9915441AE47E15A735751417B14AEA7C991544148E17A847357514148E17A14D1915441666666C6735751419A9999B9D6915441C3F5285C8B575141C3F5284CDA915441B81E859B8B5751419A9999C9E2915441E17A14CE8B5751417B14AE57EF915441333333C38B575141295C8FF2F791544148E17AF48B575141713D0AD7FB915441E17A14AE8C5751413D0AD723FE915441F6285CDF8C575141295C8F02079254411F85EBE1BE57514152B81E950E92544166666666C55751410AD7A33009925441A4703DAAC8575141000000A006925441
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000006880E4527B575141420D1BFDB3915441A5BBCE6F8C5751413013A201C19154418D152D67A1575141A668E153D1915441A4EB9B4CA957514126613353D89154411F1A28DBAD57514128E89480D69154412DB11168A957514168E4F570D0915441161DE2DDA25751410D9C5E4EC8915441DF7DDF0C9F5751416067B9D5C3915441F274536D935751416DEE1EBCB791544101DE00C28E57514129579D97B3915441F85C3D398857514191B71E0DAF915441A2DB81D57E575141E00E37FDA89154417D2272D17D5751413C59222CAC9154416880E4527B575141420D1BFDB3915441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>102830 - 5230330
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -44 </desc>
+<a>
+01060000000100000001030000000100000016000000A4703DAAC8575141000000A0069254410AD7A350AF57514152B81E05DF915441CDCCCC1CA0575141EC51B80ED09154417B14AE577B575141E17A14EEB39154410AD7A3B07B5751418FC2F578B891544148E17AF47A5751415C8FC285BD915441EC51B8BE78575141EC51B8FEC09154415C8FC2A576575141000000B0C69154419A9999E9755751411F85EB61C9915441AE47E15A735751417B14AEA7C991544148E17A847357514148E17A14D1915441666666C6735751419A9999B9D6915441C3F5285C8B575141C3F5284CDA915441B81E859B8B5751419A9999C9E2915441E17A14CE8B5751417B14AE57EF915441333333C38B575141295C8FF2F791544148E17AF48B575141713D0AD7FB915441E17A14AE8C5751413D0AD723FE915441F6285CDF8C575141295C8F02079254411F85EBE1BE57514152B81E950E92544166666666C55751410AD7A33009925441A4703DAAC8575141000000A006925441
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000006880E4527B575141420D1BFDB3915441A5BBCE6F8C5751413013A201C19154418D152D67A1575141A668E153D1915441A4EB9B4CA957514121613353D89154411B1A28DBAD57514124E89480D69154412DB11168A957514168E4F570D0915441161DE2DDA25751410D9C5E4EC8915441DF7DDF0C9F5751416067B9D5C3915441F274536D935751416DEE1EBCB791544101DE00C28E57514129579D97B3915441F85C3D398857514191B71E0DAF915441A2DB81D57E575141E00E37FDA89154417D2272D17D5751413C59222CAC9154416880E4527B575141420D1BFDB3915441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>102830 - 5242399
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -44 </desc>
+<a>
+01060000000100000001030000000100000016000000A4703DAAC8575141000000A0069254410AD7A350AF57514152B81E05DF915441CDCCCC1CA0575141EC51B80ED09154417B14AE577B575141E17A14EEB39154410AD7A3B07B5751418FC2F578B891544148E17AF47A5751415C8FC285BD915441EC51B8BE78575141EC51B8FEC09154415C8FC2A576575141000000B0C69154419A9999E9755751411F85EB61C9915441AE47E15A735751417B14AEA7C991544148E17A847357514148E17A14D1915441666666C6735751419A9999B9D6915441C3F5285C8B575141C3F5284CDA915441B81E859B8B5751419A9999C9E2915441E17A14CE8B5751417B14AE57EF915441333333C38B575141295C8FF2F791544148E17AF48B575141713D0AD7FB915441E17A14AE8C5751413D0AD723FE915441F6285CDF8C575141295C8F02079254411F85EBE1BE57514152B81E950E92544166666666C55751410AD7A33009925441A4703DAAC8575141000000A006925441
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000006880E4527B575141420D1BFDB3915441A5BBCE6F8C5751413013A201C19154418D152D67A1575141A668E153D1915441A4EB9B4CA957514121613353D89154411B1A28DBAD57514124E89480D69154412DB11168A957514168E4F570D0915441161DE2DDA25751410D9C5E4EC8915441DF7DDF0C9F5751416067B9D5C3915441F274536D935751416DEE1EBCB791544101DE00C28E57514129579D97B3915441F85C3D398857514191B71E0DAF915441A2DB81D57E575141E00E37FDA89154417D2272D17D5751413C59222CAC9154416880E4527B575141420D1BFDB3915441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>102830 - 408824
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -44 </desc>
+<a>
+01060000000100000001030000000100000016000000A4703DAAC8575141000000A0069254410AD7A350AF57514152B81E05DF915441CDCCCC1CA0575141EC51B80ED09154417B14AE577B575141E17A14EEB39154410AD7A3B07B5751418FC2F578B891544148E17AF47A5751415C8FC285BD915441EC51B8BE78575141EC51B8FEC09154415C8FC2A576575141000000B0C69154419A9999E9755751411F85EB61C9915441AE47E15A735751417B14AEA7C991544148E17A847357514148E17A14D1915441666666C6735751419A9999B9D6915441C3F5285C8B575141C3F5284CDA915441B81E859B8B5751419A9999C9E2915441E17A14CE8B5751417B14AE57EF915441333333C38B575141295C8FF2F791544148E17AF48B575141713D0AD7FB915441E17A14AE8C5751413D0AD723FE915441F6285CDF8C575141295C8F02079254411F85EBE1BE57514152B81E950E92544166666666C55751410AD7A33009925441A4703DAAC8575141000000A006925441
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000006880E4527B575141420D1BFDB3915441A5BBCE6F8C5751413013A201C19154418D152D67A1575141A668E153D1915441A4EB9B4CA957514121613353D89154411B1A28DBAD57514124E89480D69154412DB11168A957514168E4F570D0915441161DE2DDA25751410D9C5E4EC8915441DF7DDF0C9F5751416067B9D5C3915441F274536D935751416DEE1EBCB791544101DE00C28E57514129579D97B3915441F85C3D398857514191B71E0DAF915441A2DB81D57E575141E00E37FDA89154417D2272D17D5751413C59222CAC9154416880E4527B575141420D1BFDB3915441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>102830 - 410373
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -44 </desc>
+<a>
+01060000000100000001030000000100000016000000A4703DAAC8575141000000A0069254410AD7A350AF57514152B81E05DF915441CDCCCC1CA0575141EC51B80ED09154417B14AE577B575141E17A14EEB39154410AD7A3B07B5751418FC2F578B891544148E17AF47A5751415C8FC285BD915441EC51B8BE78575141EC51B8FEC09154415C8FC2A576575141000000B0C69154419A9999E9755751411F85EB61C9915441AE47E15A735751417B14AEA7C991544148E17A847357514148E17A14D1915441666666C6735751419A9999B9D6915441C3F5285C8B575141C3F5284CDA915441B81E859B8B5751419A9999C9E2915441E17A14CE8B5751417B14AE57EF915441333333C38B575141295C8FF2F791544148E17AF48B575141713D0AD7FB915441E17A14AE8C5751413D0AD723FE915441F6285CDF8C575141295C8F02079254411F85EBE1BE57514152B81E950E92544166666666C55751410AD7A33009925441A4703DAAC8575141000000A006925441
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000006880E4527B575141420D1BFDB3915441A5BBCE6F8C5751413013A201C19154418D152D67A1575141A668E153D1915441A4EB9B4CA957514121613353D89154411B1A28DBAD57514124E89480D69154412DB11168A957514168E4F570D0915441161DE2DDA25751410D9C5E4EC8915441DF7DDF0C9F5751416067B9D5C3915441F274536D935751416DEE1EBCB791544101DE00C28E57514129579D97B3915441F85C3D398857514191B71E0DAF915441A2DB81D57E575141E00E37FDA89154417D2272D17D5751413C59222CAC9154416880E4527B575141420D1BFDB3915441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>103978 - 3806180
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+010600000001000000010300000001000000070000001F85EB919A6151415C8FC2B5739A544185EB5108976151413D0AD793709A5441EC51B87E78615141CDCCCCBCD09A5441333333837F615141666666F6D39A5441E17A144E8B6151411F85EB31D99A5441000000F0A76151417B14AE077F9A54411F85EB919A6151415C8FC2B5739A5441
+</a>
+
+<b>
+010600000001000000010300000001000000110000004EEFFFEFA76151410F49AE077F9A54411094D9779F615141AE1EA0DB779A5441BA2AB74D9F615141BD1424B5779A544138E9E8F79E615141B62D486F779A54411F85EB919A6151415C8FC2B5739A544185EB5108976151413D0AD793709A5441EC51B87E78615141CDCCCCBCD09A5441333333837F615141666666F6D39A5441BF7F587C81615141142484A2D49A5441572B4B6D81615141488CDCCFD49A54411CFEC5488B61514167BD902FD99A54414220B3D88B6151416183667DD79A5441599F28938C615141F2A23B32D59A5441AE5741B6906151419F63172BC89A5441A4D219C09C61514115613942A29A544124194829A5615141E06AC3C5879A54414EEFFFEFA76151410F49AE077F9A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>104861 - 2999544
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -633 </desc>
+<a>
+0106000000010000000103000000010000001300000052B81EB5E30D514148E17AA439445441EC51B84E920D51413D0AD7C3304454415C8FC235420D5141CDCCCCFC2D445441295C8F12410D51411F85EBF12E4454418FC2F598400D5141295C8FB23344544114AE4791400D5141A4703DAA3D4454410AD7A370400D5141E17A144E404454410AD7A320400D51419A99999943445441EC51B87E3F0D5141713D0A7747445441CDCCCCCC3C0D514148E17A6451445441F6285C9F3D0D5141EC51B8BE524454410AD7A3E05A0D51410AD7A34058445441EC51B88E660D514114AE47C15944544100000070900D51419A9999195F44544100000030AD0D51417B14AED765445441C3F5283CB70D514152B81EC56944544185EB5138DA0D51415C8FC2956D44544185EB51A8E00D5141A4703D6A6E44544152B81EB5E30D514148E17AA439445441
+</a>
+
+<b>
+0106000000010000000103000000010000001200000025489F6A610D51419898FA175944544123E133C4610D514174DE521A2F445441134EC5C2610D5141B4E2E1142F4454415C8FC235420D5141CDCCCCFC2D445441295C8F12410D51411F85EBF12E4454418FC2F598400D5141295C8FB23344544114AE4791400D5141A4703DAA3D4454410AD7A370400D5141E17A144E404454410AD7A320400D51419A99999943445441EC51B87E3F0D5141713D0A7747445441CDCCCCCC3C0D514148E17A6451445441F6285C9F3D0D5141EC51B8BE52445441980178004B0D5141EA8A864355445441EB536D354C0D51410F78FC655044544160248BDF530D5141F7C937FD514454414B3C51EA520D514165D0C8DB564454410AD7A3E05A0D51410AD7A3405844544125489F6A610D51419898FA1759445441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>104861 - 3375862
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -633 </desc>
+<a>
+0106000000010000000103000000010000001300000052B81EB5E30D514148E17AA439445441EC51B84E920D51413D0AD7C3304454415C8FC235420D5141CDCCCCFC2D445441295C8F12410D51411F85EBF12E4454418FC2F598400D5141295C8FB23344544114AE4791400D5141A4703DAA3D4454410AD7A370400D5141E17A144E404454410AD7A320400D51419A99999943445441EC51B87E3F0D5141713D0A7747445441CDCCCCCC3C0D514148E17A6451445441F6285C9F3D0D5141EC51B8BE524454410AD7A3E05A0D51410AD7A34058445441EC51B88E660D514114AE47C15944544100000070900D51419A9999195F44544100000030AD0D51417B14AED765445441C3F5283CB70D514152B81EC56944544185EB5138DA0D51415C8FC2956D44544185EB51A8E00D5141A4703D6A6E44544152B81EB5E30D514148E17AA439445441
+</a>
+
+<b>
+0106000000010000000103000000010000001200000025489F6A610D51419898FA175944544123E133C4610D514174DE521A2F445441134EC5C2610D5141B4E2E1142F4454415C8FC235420D5141CDCCCCFC2D445441295C8F12410D51411F85EBF12E4454418FC2F598400D5141295C8FB23344544114AE4791400D5141A4703DAA3D4454410AD7A370400D5141E17A144E404454410AD7A320400D51419A99999943445441EC51B87E3F0D5141713D0A7747445441CDCCCCCC3C0D514148E17A6451445441F6285C9F3D0D5141EC51B8BE52445441980178004B0D5141EA8A864355445441EB536D354C0D51410F78FC655044544160248BDF530D5141F7C937FD514454414B3C51EA520D514165D0C8DB564454410AD7A3E05A0D51410AD7A3405844544125489F6A610D51419898FA1759445441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>108202 - 960539
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000000C0000007B14AE17BE125141A4703D9A22495541713D0AD7C1125141713D0AE72C495541000000B0C41251413D0AD7A3374955418FC2F5C8C512514148E17AA43949554100000030CC1251418FC2F528374955411F85EB11CD12514185EB519835495541D7A370EDD61251419A9999A9204955410AD7A3B0D712514185EB51881E4955419A999959D8125141B81E85AB1B495541CDCCCC4CCC125141D7A370DD1D49554185EB51E8C7125141A4703DAA1E4955417B14AE17BE125141A4703D9A22495541
+</a>
+
+<b>
+01060000000100000001030000000100000016000000B89E7E61A812514191FA39F22F4955410B54ECAAA7125141606C15D931495541E9C73718A7125141BF10339133495541AD107388AA1251414803CE5C334955410EB59040AC125141B1CAD84733495541D820B9E3AD1251418359EE1D334955415A518B2EB0125141277719CA32495541CB3B0330B2125141277719CA32495541F1890027B4125141903E24B5324955414449E847B6125141CC94447632495541B5336049B81251415287DF41324955414449682BBA12514132FB2AAF31495541C6793A76BC125141B68CA1C83049554139C5D629BF12514186BA92EC2F49554170CB1C50C2125141591B96AF2E495541D63E7ECEBF1251414147515027495541A5B2B7C5BE1251419503957824495541B81E859BB412514114AE47E126495541E9C7B7FBAA125141B48CA10129495541ECBA580DA9125141055AF4272E4955411F85EB71A81251411F85EBF12F495541B89E7E61A812514191FA39F22F495541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>108638 - 55006
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+010600000001000000010300000001000000130000008FC2F5C8A54D51411F85EB51DC735441B81E85DBA44D5141F6285C6FDE735441666666A6A44D5141AE47E11ADF73544114AE47C1A44D5141EC51B89EDF73544185EB5178A84D514148E17AB4E07354419A999949AC4D5141D7A3706DE1735441D7A3702DAF4D5141B81E850BE2735441E17A14EEB04D5141B81E850BE2735441EC51B8CEB14D5141EC51B8FEE17354417B14AE87B24D5141295C8F52E17354411F85EBC1BE4D5141713D0A37CF7354410AD7A330BE4D5141000000C0CE73544185EB5168B34D5141A4703D0AD07354417B14AE47AF4D51415C8FC2B5D0735441D7A370CDAC4D514148E17A54D17354419A999949AC4D51418FC2F588D17354411F85EB21AC4D514185EB51D8D1735441B81E851BA84D514166666616D87354418FC2F5C8A54D51411F85EB51DC735441
+</a>
+
+<b>
+01060000000100000001030000000100000051000000937512CAAF4D51412F39C5BBCF735441BED3CDF0AB4D5141F7006175D073544120A10189AA4D5141335C93D2D0735441637E6CEDA94D514103BBF510D173544178EE5CB7A84D5141D41C498DD17354410934E925A54D51418B63936DD3735441B716B932A04D514169E70F82D6735441F728B3A49D4D5141B6801440D8735441996E4FD39B4D514135171091D9735441F02D25EC9A4D51414E76AB3EDA735441017AC8C29A4D51411390E184DA735441300E8F279A4D5141AA8DDE97DB735441E17A140E9B4D5141B81E858BDB735441EC51B8EE9B4D5141B81E858BDB735441B83E83F09B4D5141506AD68BDB73544120DC367C9C4D51410BC05487DB735441713D0AD79D4D5141295C8F02DC735441CDCCCCEC9E4D51413D0AD793DC735441000000F0A04D5141333333C3DD735441D7A3700DA34D51415C8FC2E5DE73544114AE47C1A44D5141EC51B89EDF735441666666A6A44D5141AE47E11ADF735441B81E85DBA44D5141F6285C6FDE7354418FC2F5C8A54D51411F85EB51DC735441B81E851BA84D514166666616D87354411F85EB21AC4D514185EB51D8D17354419A999949AC4D51418FC2F588D1735441D7A370CDAC4D514148E17A54D17354417B14AE47AF4D51415C8FC2B5D073544185EB5168B34D5141A4703D0AD0735441994E2405B84D51415FEEF77CCF7354417F07AFC9BA4D51416477FF03CF73544183BFC2D4BD4D51410006FECACE7354410F2261DABD4D514102F051CACE7354410A272FE5BD4D5141000407C9CE73544158A10E2EBE4D51416D25CFB6CE7354419D943445BE4D514117D7D9D0CE7354411F85EBC1BE4D5141713D0A37CF735441D1244BB3BE4D51415939B34CCF7354413D456FC8BE4D5141D2DD7B64CF735441CA9E691DBA4D51413EAB1417D6735441AE11187BB94D514188A07407D7735441399CFB82B64D5141D76A176DDB735441D3258E30B64D51417926D1E7DB7354411D8C9CAEB44D51418AA1073EDE7354415D0D5AF5B34D51413CF50A35DF7354417B14AE87B24D5141295C8F52E17354410DA3E3E0B14D5141BFE4CEEDE1735441713D0AE7B44D514152B81E95E17354412E07D304B74D514180C09E2EE1735441E91FAA35B94D5141CD635ABFE173544178B3087CB94D5141E2D276C2E1735441163F9BA8B94D51413B4A6FC4E1735441CBC1DDC5BB4D5141D88D98A4E1735441E17A14DEBB4D51411F85EBA1E173544158290003BC4D51412C05468BE1735441F6285C9FBD4D5141B81E85FBDF735441CDCCCCBCBF4D51417B14AE17DD735441C3F5283CC14D514148E17A14DB735441845B74D2C14D5141A3ED7143DA735441856EE3B3C24D51418E073AF7D873544134498F17C34D5141286F538DD8735441F6285C3FC34D514185EB5158D8735441CDCCCC2CC44D514133333343D7735441138FC760C44D5141445EFF12D773544128839DA9C44D5141F2A04FB4D67354414BE5CEBDC54D5141DFB42EFCD57354418FC2F5B8C64D5141AE47E1EAD373544133333353C84D514148E17AD4D0735441B3797D4BC94D5141500CFDF8CE735441A409C23ECA4D51418D573614CD7354417B14AE07CB4D5141A4703D6ACB735441F7FE6D97C74D5141879E9AF0CC73544126359541C64D51414DDA3388CD73544100000030C64D514100000090CD73544192495B4AC44D5141711AACB7CD73544190D70A71C04D5141630FEF09CE735441AE47E19ABC4D5141F6285C5FCE7354410AC2B2A5BA4D5141CB2F0389CE735441E156A874B44D5141CCD7A116CF735441937512CAAF4D51412F39C5BBCF735441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>108638 - 91689
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+010600000001000000010300000001000000130000008FC2F5C8A54D51411F85EB51DC735441B81E85DBA44D5141F6285C6FDE735441666666A6A44D5141AE47E11ADF73544114AE47C1A44D5141EC51B89EDF73544185EB5178A84D514148E17AB4E07354419A999949AC4D5141D7A3706DE1735441D7A3702DAF4D5141B81E850BE2735441E17A14EEB04D5141B81E850BE2735441EC51B8CEB14D5141EC51B8FEE17354417B14AE87B24D5141295C8F52E17354411F85EBC1BE4D5141713D0A37CF7354410AD7A330BE4D5141000000C0CE73544185EB5168B34D5141A4703D0AD07354417B14AE47AF4D51415C8FC2B5D0735441D7A370CDAC4D514148E17A54D17354419A999949AC4D51418FC2F588D17354411F85EB21AC4D514185EB51D8D1735441B81E851BA84D514166666616D87354418FC2F5C8A54D51411F85EB51DC735441
+</a>
+
+<b>
+010600000001000000010300000001000000510000008E7512CAAF4D51413039C5BBCF735441BED3CDF0AB4D5141F7006175D073544120A10189AA4D5141335C93D2D0735441637E6CEDA94D514103BBF510D173544178EE5CB7A84D5141D41C498DD17354410C34E925A54D51418A63936DD3735441B716B932A04D514169E70F82D6735441F728B3A49D4D5141B6801440D87354419D6E4FD39B4D51413A171091D9735441ED2D25EC9A4D51415076AB3EDA735441027AC8C29A4D51411390E184DA735441300E8F279A4D5141AA8DDE97DB735441E17A140E9B4D5141B81E858BDB735441EC51B8EE9B4D5141B81E858BDB735441B93E83F09B4D5141506AD68BDB73544120DC367C9C4D51410BC05487DB735441713D0AD79D4D5141295C8F02DC735441CDCCCCEC9E4D51413D0AD793DC735441000000F0A04D5141333333C3DD735441D7A3700DA34D51415C8FC2E5DE73544114AE47C1A44D5141EC51B89EDF735441666666A6A44D5141AE47E11ADF735441B81E85DBA44D5141F6285C6FDE7354418FC2F5C8A54D51411F85EB51DC735441B81E851BA84D514166666616D87354411F85EB21AC4D514185EB51D8D17354419A999949AC4D51418FC2F588D1735441D7A370CDAC4D514148E17A54D17354417B14AE47AF4D51415C8FC2B5D073544185EB5168B34D5141A4703D0AD0735441944E2405B84D514164EEF77CCF7354417F07AFC9BA4D51416477FF03CF73544183BFC2D4BD4D51410006FECACE7354410F2261DABD4D514102F051CACE7354410A272FE5BD4D5141000407C9CE73544158A10E2EBE4D51416D25CFB6CE7354419D943445BE4D514117D7D9D0CE7354411F85EBC1BE4D5141713D0A37CF735441CC244BB3BE4D51415E39B34CCF7354413D456FC8BE4D5141D2DD7B64CF735441CA9E691DBA4D51413EAB1417D6735441AF11187BB94D514186A07407D7735441389CFB82B64D5141D66A176DDB735441D3258E30B64D51417926D1E7DB7354411D8C9CAEB44D51418AA1073EDE7354415D0D5AF5B34D51413CF50A35DF7354417B14AE87B24D5141295C8F52E173544108A3E3E0B14D5141C0E4CEEDE1735441713D0AE7B44D514152B81E95E17354412E07D304B74D514180C09E2EE1735441E41FAA35B94D5141CF635ABFE173544178B3087CB94D5141E5D276C2E1735441163F9BA8B94D51413B4A6FC4E1735441C7C1DDC5BB4D5141D68D98A4E1735441E17A14DEBB4D51411F85EBA1E17354415B290003BC4D51412805468BE1735441F6285C9FBD4D5141B81E85FBDF735441CDCCCCBCBF4D51417B14AE17DD735441C3F5283CC14D514148E17A14DB735441875B74D2C14D5141A3ED7143DA735441856EE3B3C24D51418E073AF7D873544134498F17C34D5141286F538DD8735441F6285C3FC34D514185EB5158D8735441CDCCCC2CC44D514133333343D7735441168FC760C44D5141455EFF12D773544128839DA9C44D5141F2A04FB4D67354414BE5CEBDC54D5141DFB42EFCD57354418FC2F5B8C64D5141AE47E1EAD373544133333353C84D514148E17AD4D0735441B3797D4BC94D5141500CFDF8CE735441A509C23ECA4D51418B573614CD7354417B14AE07CB4D5141A4703D6ACB735441F7FE6D97C74D5141879E9AF0CC73544126359541C64D51414DDA3388CD73544100000030C64D514100000090CD73544192495B4AC44D5141701AACB7CD73544195D70A71C04D5141620FEF09CE735441AE47E19ABC4D5141F6285C5FCE7354410AC2B2A5BA4D5141CB2F0389CE735441E156A874B44D5141CCD7A116CF7354418E7512CAAF4D51413039C5BBCF735441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>108638 - 293737
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+010600000001000000010300000001000000130000008FC2F5C8A54D51411F85EB51DC735441B81E85DBA44D5141F6285C6FDE735441666666A6A44D5141AE47E11ADF73544114AE47C1A44D5141EC51B89EDF73544185EB5178A84D514148E17AB4E07354419A999949AC4D5141D7A3706DE1735441D7A3702DAF4D5141B81E850BE2735441E17A14EEB04D5141B81E850BE2735441EC51B8CEB14D5141EC51B8FEE17354417B14AE87B24D5141295C8F52E17354411F85EBC1BE4D5141713D0A37CF7354410AD7A330BE4D5141000000C0CE73544185EB5168B34D5141A4703D0AD07354417B14AE47AF4D51415C8FC2B5D0735441D7A370CDAC4D514148E17A54D17354419A999949AC4D51418FC2F588D17354411F85EB21AC4D514185EB51D8D1735441B81E851BA84D514166666616D87354418FC2F5C8A54D51411F85EB51DC735441
+</a>
+
+<b>
+010600000001000000010300000001000000510000008E7512CAAF4D51413039C5BBCF735441BED3CDF0AB4D5141F7006175D073544120A10189AA4D5141335C93D2D0735441637E6CEDA94D514103BBF510D173544178EE5CB7A84D5141D41C498DD17354410C34E925A54D51418A63936DD3735441B716B932A04D514169E70F82D6735441F728B3A49D4D5141B6801440D87354419D6E4FD39B4D51413A171091D9735441ED2D25EC9A4D51415076AB3EDA735441027AC8C29A4D51411390E184DA735441300E8F279A4D5141AA8DDE97DB735441E17A140E9B4D5141B81E858BDB735441EC51B8EE9B4D5141B81E858BDB735441B93E83F09B4D5141506AD68BDB73544120DC367C9C4D51410BC05487DB735441713D0AD79D4D5141295C8F02DC735441CDCCCCEC9E4D51413D0AD793DC735441000000F0A04D5141333333C3DD735441D7A3700DA34D51415C8FC2E5DE73544114AE47C1A44D5141EC51B89EDF735441666666A6A44D5141AE47E11ADF735441B81E85DBA44D5141F6285C6FDE7354418FC2F5C8A54D51411F85EB51DC735441B81E851BA84D514166666616D87354411F85EB21AC4D514185EB51D8D17354419A999949AC4D51418FC2F588D1735441D7A370CDAC4D514148E17A54D17354417B14AE47AF4D51415C8FC2B5D073544185EB5168B34D5141A4703D0AD0735441944E2405B84D514164EEF77CCF7354417F07AFC9BA4D51416477FF03CF73544183BFC2D4BD4D51410006FECACE7354410F2261DABD4D514102F051CACE7354410A272FE5BD4D5141000407C9CE73544158A10E2EBE4D51416D25CFB6CE7354419D943445BE4D514117D7D9D0CE7354411F85EBC1BE4D5141713D0A37CF735441CC244BB3BE4D51415E39B34CCF7354413D456FC8BE4D5141D2DD7B64CF735441CA9E691DBA4D51413EAB1417D6735441AF11187BB94D514186A07407D7735441389CFB82B64D5141D66A176DDB735441D3258E30B64D51417926D1E7DB7354411D8C9CAEB44D51418AA1073EDE7354415D0D5AF5B34D51413CF50A35DF7354417B14AE87B24D5141295C8F52E173544108A3E3E0B14D5141C0E4CEEDE1735441713D0AE7B44D514152B81E95E17354412E07D304B74D514180C09E2EE1735441E41FAA35B94D5141CF635ABFE173544178B3087CB94D5141E5D276C2E1735441163F9BA8B94D51413B4A6FC4E1735441C7C1DDC5BB4D5141D68D98A4E1735441E17A14DEBB4D51411F85EBA1E17354415B290003BC4D51412805468BE1735441F6285C9FBD4D5141B81E85FBDF735441CDCCCCBCBF4D51417B14AE17DD735441C3F5283CC14D514148E17A14DB735441875B74D2C14D5141A3ED7143DA735441856EE3B3C24D51418E073AF7D873544134498F17C34D5141286F538DD8735441F6285C3FC34D514185EB5158D8735441CDCCCC2CC44D514133333343D7735441168FC760C44D5141455EFF12D773544128839DA9C44D5141F2A04FB4D67354414BE5CEBDC54D5141DFB42EFCD57354418FC2F5B8C64D5141AE47E1EAD373544133333353C84D514148E17AD4D0735441B3797D4BC94D5141500CFDF8CE735441A509C23ECA4D51418B573614CD7354417B14AE07CB4D5141A4703D6ACB735441F7FE6D97C74D5141879E9AF0CC73544126359541C64D51414DDA3388CD73544100000030C64D514100000090CD73544192495B4AC44D5141701AACB7CD73544195D70A71C04D5141620FEF09CE735441AE47E19ABC4D5141F6285C5FCE7354410AC2B2A5BA4D5141CB2F0389CE735441E156A874B44D5141CCD7A116CF7354418E7512CAAF4D51413039C5BBCF735441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>110585 - 171476
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -168 </desc>
+<a>
+01060000000100000001030000000100000039000000E17A14AE423051411F85EB31C0D054410AD7A3D044305141295C8FF2BFD05441A4703DCA4130514166666616B4D054416666666641305141AE47E10AAFD05441AE47E1DA4230514148E17A44AED05441AE47E18A46305141D7A370CDB6D0544152B81EA549305141C3F5283CBCD054415C8FC2C54B305141E17A147EBED05441666666764D3051419A999999BDD0544148E17A944F3051418FC2F5F8BBD054411F85EB515030514100000010BAD054415C8FC23551305141295C8F32B8D05441333333A351305141EC51B8BEB6D05441295C8FE252305141A4703D6AADD05441F6285CCF53305141EC51B81EA6D0544114AE4751543051418FC2F598A5D05441B81E859B55305141C3F5285CA5D05441EC51B8CE57305141295C8FB2A4D05441D7A3707D58305141333333D3A2D05441EC51B8AE5730514152B81E559FD05441CDCCCC3C563051411F85EBF19CD0544152B81EA555305141AE47E1DA9BD0544185EB518854305141C3F5280C96D05441A4703D2A54305141D7A3706D91D0544100000010503051419A9999A98ED05441E17A145E4B3051415C8FC2858CD05441295C8F524430514185EB510888D0544185EB51F83F3051410000001085D0544185EB51A83E3051415C8FC20582D054410AD7A3603C305141295C8F9280D054415C8FC2A5383051411F85EBB180D05441666666C6373051415C8FC26580D05441A4703D9A3630514152B81E2580D0544152B81E4535305141F6285CCF7DD05441E17A142E34305141EC51B82E7AD054415C8FC275313051411F85EB3175D05441713D0AA72D305141A4703DAA6FD054419A9999792B3051418FC2F5D86ED054411F85EBC127305141F6285CEF6FD054415C8FC2C52130514148E17A3471D054413D0AD7831B305141A4703D7A71D0544114AE473117305141E17A148E70D05441AE47E15A19305141295C8F6272D05441B81E85EB1A305141B81E858B74D05441EC51B8BE1B3051416666662676D05441295C8F621E305141D7A3709D7DD05441AE47E17A203051413333332385D05441CDCCCC6C22305141B81E859B8DD05441A4703D6A25305141D7A370ED97D0544152B81EA526305141CDCCCC6C9ED05441AE47E15A27305141AE47E1DAA3D05441E17A140E29305141AE47E16AA9D0544185EB51282C305141713D0A67B0D0544114AE47112F3051415C8FC2C5B7D054419A9999D9323051411F85EBC1BED05441CDCCCCAC353051413D0AD753C1D05441E17A14AE423051411F85EB31C0D05441
+</a>
+
+<b>
+0106000000010000000103000000010000004C0000000AD7A37054305141000000C088D054414FDDDDC053305141845FF23786D054416794F40F53305141DE7F01FD83D054415EFC39DB503051417DDACEE980D05441FEE6B42E4E305141CA2F31C67ED0544199A071244E3051411D1802BF7ED05441AE47E1CA4C305141A4703D0A7ED05441569675C64B30514185AAD1167DD05441458C0ED74A30514111BD3C6F7CD054413C2CFD6E483051410C0D343B7BD05441E0FE29C34630514109EDD86D7AD05441B23E07F341305141898F69C37AD0544106D41F6A4130514133A24CB27AD054410444720341305141DEB42FA17AD05441ACFE50584030514133DAF57E7AD054414DB122DF3D305141DDECD86D7AD0544195567C873A3051412FBA9AB179D054418F16C6EC38305141D3C470D277D054418CBEC15238305141CFA4150577D054418CBEC15238305141CE14689E76D054418CBEC1523830514121AA801576D0544137C44C94373051412CE25D0972D054419A4662EB363051412B02AC4470D0544131CE88AF36305141BAB1C1CF6FD05441BBAA0BF8343051417D914BCB6CD054416B2B095A34305141255092B56BD05441B0DD5D993330514197E4ED626AD054418849146C33305141A49954136AD054417F54A47A313051418E05124668D05441000000E02D3051415C8FC20565D0544140D2571D2D305141412B82BA64D05441C75B35C22C305141F9B102A364D05441C05328F42A305141A16CE1F763D05441B2430E582730514147CFBBB262D054415BC187C32530514115A5241662D0544157AA4708253051412BA6D1E061D0544166B788CE243051410BD65FD061D05441F600B6FF22305141421FB37E61D05441C6402A7F183051411E8F34A35FD0544102450D82073051411E8F34A35FD05441599A01C0003051410C51C2DD60D0544177559E480130514100B7BA3F61D054411E3AD2A6013051414539498361D054417F6438DE023051419A6E9A6262D05441BC83B8BE0E30514152D85F236AD054410AD7A31010305141713D0AF76AD05441AC4AC64A12305141086C5B926CD05441CDFC3D5A18305141630575CD70D054413D0AD7831B305141A4703D7A71D054415C8FC2C52130514148E17A3471D054411F85EBC127305141F6285CEF6FD054419A9999792B3051418FC2F5D86ED05441713D0AA72D305141A4703DAA6FD054415C8FC275313051411F85EB3175D05441E17A142E34305141EC51B82E7AD0544152B81E4535305141F6285CCF7DD054414710B795353051410826975C7ED0544164A33DF13B305141391281847FD05441C286F1F03E305141828AD71D82D05441091767AE3F3051410F1FCB6484D05441EC75E8BF3F30514150D4568D84D0544182AE29CA3F305141615717A584D054412FB705E03F3051415DD2B8D784D05441B36A77254130514125047EDD85D05441295C8F524430514185EB510888D0544145D547AE483051417F6067CF8AD05441A4498FE94C305141037099368DD05441B585E1F14D3051412BFC7FB28DD0544100000010503051419A9999A98ED05441AC75323250305141A7ECA5C08ED054410A9FCA30513051410B40FD378FD05441BFA16CEE53305141BE22442891D05441171F376654305141A67A6F578BD05441FAD3076F543051415AB389AB8AD054410AD7A370543051417B14AE0789D054410AD7A37054305141000000C088D05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>110585 - 352992
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -168 </desc>
+<a>
+01060000000100000001030000000100000039000000E17A14AE423051411F85EB31C0D054410AD7A3D044305141295C8FF2BFD05441A4703DCA4130514166666616B4D054416666666641305141AE47E10AAFD05441AE47E1DA4230514148E17A44AED05441AE47E18A46305141D7A370CDB6D0544152B81EA549305141C3F5283CBCD054415C8FC2C54B305141E17A147EBED05441666666764D3051419A999999BDD0544148E17A944F3051418FC2F5F8BBD054411F85EB515030514100000010BAD054415C8FC23551305141295C8F32B8D05441333333A351305141EC51B8BEB6D05441295C8FE252305141A4703D6AADD05441F6285CCF53305141EC51B81EA6D0544114AE4751543051418FC2F598A5D05441B81E859B55305141C3F5285CA5D05441EC51B8CE57305141295C8FB2A4D05441D7A3707D58305141333333D3A2D05441EC51B8AE5730514152B81E559FD05441CDCCCC3C563051411F85EBF19CD0544152B81EA555305141AE47E1DA9BD0544185EB518854305141C3F5280C96D05441A4703D2A54305141D7A3706D91D0544100000010503051419A9999A98ED05441E17A145E4B3051415C8FC2858CD05441295C8F524430514185EB510888D0544185EB51F83F3051410000001085D0544185EB51A83E3051415C8FC20582D054410AD7A3603C305141295C8F9280D054415C8FC2A5383051411F85EBB180D05441666666C6373051415C8FC26580D05441A4703D9A3630514152B81E2580D0544152B81E4535305141F6285CCF7DD05441E17A142E34305141EC51B82E7AD054415C8FC275313051411F85EB3175D05441713D0AA72D305141A4703DAA6FD054419A9999792B3051418FC2F5D86ED054411F85EBC127305141F6285CEF6FD054415C8FC2C52130514148E17A3471D054413D0AD7831B305141A4703D7A71D0544114AE473117305141E17A148E70D05441AE47E15A19305141295C8F6272D05441B81E85EB1A305141B81E858B74D05441EC51B8BE1B3051416666662676D05441295C8F621E305141D7A3709D7DD05441AE47E17A203051413333332385D05441CDCCCC6C22305141B81E859B8DD05441A4703D6A25305141D7A370ED97D0544152B81EA526305141CDCCCC6C9ED05441AE47E15A27305141AE47E1DAA3D05441E17A140E29305141AE47E16AA9D0544185EB51282C305141713D0A67B0D0544114AE47112F3051415C8FC2C5B7D054419A9999D9323051411F85EBC1BED05441CDCCCCAC353051413D0AD753C1D05441E17A14AE423051411F85EB31C0D05441
+</a>
+
+<b>
+0106000000010000000103000000010000004C0000000AD7A37054305141000000C088D054414FDDDDC053305141845FF23786D054416794F40F53305141DE7F01FD83D054415EFC39DB503051417DDACEE980D05441FEE6B42E4E305141CA2F31C67ED0544199A071244E3051411D1802BF7ED05441AE47E1CA4C305141A4703D0A7ED05441569675C64B30514185AAD1167DD05441458C0ED74A30514111BD3C6F7CD054413C2CFD6E483051410C0D343B7BD05441E0FE29C34630514109EDD86D7AD05441B23E07F341305141898F69C37AD0544106D41F6A4130514133A24CB27AD054410444720341305141DEB42FA17AD05441ACFE50584030514133DAF57E7AD054414DB122DF3D305141DDECD86D7AD0544195567C873A3051412FBA9AB179D054418F16C6EC38305141D3C470D277D054418CBEC15238305141CFA4150577D054418CBEC15238305141CE14689E76D054418CBEC1523830514121AA801576D0544137C44C94373051412CE25D0972D054419A4662EB363051412B02AC4470D0544131CE88AF36305141BAB1C1CF6FD05441BBAA0BF8343051417D914BCB6CD054416B2B095A34305141255092B56BD05441B0DD5D993330514197E4ED626AD054418849146C33305141A49954136AD054417F54A47A313051418E05124668D05441000000E02D3051415C8FC20565D0544140D2571D2D305141412B82BA64D05441C75B35C22C305141F9B102A364D05441C05328F42A305141A16CE1F763D05441B2430E582730514147CFBBB262D054415BC187C32530514115A5241662D0544157AA4708253051412BA6D1E061D0544166B788CE243051410BD65FD061D05441F600B6FF22305141421FB37E61D05441C6402A7F183051411E8F34A35FD0544102450D82073051411E8F34A35FD05441599A01C0003051410C51C2DD60D0544177559E480130514100B7BA3F61D054411E3AD2A6013051414539498361D054417F6438DE023051419A6E9A6262D05441BC83B8BE0E30514152D85F236AD054410AD7A31010305141713D0AF76AD05441AC4AC64A12305141086C5B926CD05441CDFC3D5A18305141630575CD70D054413D0AD7831B305141A4703D7A71D054415C8FC2C52130514148E17A3471D054411F85EBC127305141F6285CEF6FD054419A9999792B3051418FC2F5D86ED05441713D0AA72D305141A4703DAA6FD054415C8FC275313051411F85EB3175D05441E17A142E34305141EC51B82E7AD0544152B81E4535305141F6285CCF7DD054414710B795353051410826975C7ED0544164A33DF13B305141391281847FD05441C286F1F03E305141828AD71D82D05441091767AE3F3051410F1FCB6484D05441EC75E8BF3F30514150D4568D84D0544182AE29CA3F305141615717A584D054412FB705E03F3051415DD2B8D784D05441B36A77254130514125047EDD85D05441295C8F524430514185EB510888D0544145D547AE483051417F6067CF8AD05441A4498FE94C305141037099368DD05441B585E1F14D3051412BFC7FB28DD0544100000010503051419A9999A98ED05441AC75323250305141A7ECA5C08ED054410A9FCA30513051410B40FD378FD05441BFA16CEE53305141BE22442891D05441171F376654305141A67A6F578BD05441FAD3076F543051415AB389AB8AD054410AD7A370543051417B14AE0789D054410AD7A37054305141000000C088D05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>115495 - 356539
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000000600000000000000F6D050413D0AD783CA9354411F85EBF1F8D0504148E17AE4CB935441295C8F0229D15041D7A370DD759354418FC2F53826D150410AD7A3C0749354416666660614D15041E17A141E9593544100000000F6D050413D0AD783CA935441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000026E399AF08D1504148A08448A99354419BA6EA8202D15041DB83A943B4935441468D0608F6D05041410A9887CA935441E8A1201DF6D05041D7D17691CA9354411FD01350F6D0504185A94BA9CA93544185440552F6D05041B55734AACA9354415AFC07F0F8D05041F4B598E3CB935441E1F3E72715D15041FE66746699935441295C8F0229D15041D7A370DD759354416EBEA19B28D15041ED6C5CB475935441D8FDDA6B28D1504107184BA1759354419AAB6BEC27D1504121066F6E75935441AFB8873327D150410EFB242A75935441BAE8569A0AD15041D6DD1F41A793544148CF23EC09D1504178179315A793544126E399AF08D1504148A08448A9935441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>122107 - 32561
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+0106000000010000000103000000010000001B00000014AE4751A6135141C3F528DCA1C154411F85EBB19E1351411F85EB91AAC15441295C8FA292135141AE47E15AB7C1544133333343861351411F85EBD1C3C154413D0AD7737B13514152B81EA5CDC15441295C8F027413514185EB51A8D3C15441333333436F13514133333333D8C154411F85EB417A1351410AD7A3E0DFC15441A4703DBA831351413D0AD723E7C15441F6285CDF8D135141EC51B84EF0C15441713D0AC78F13514148E17A34F0C15441B81E85CB93135141D7A3706DECC1544166666656A0135141A4703DDADEC15441000000B0A413514114AE4771DBC15441E17A14BEA8135141EC51B8FED8C1544100000020C113514133333333D0C154418FC2F528D0135141A4703D1ACBC15441D7A3705DD51351410AD7A330C5C15441295C8F52D71351418FC2F5A8C6C15441AE47E1BAD8135141295C8FE2C5C154417B14AE57D61351413D0AD7A3C3C154415C8FC295D0135141D7A3706DBFC15441B81E85ABC71351411F85EBC1B8C15441C3F528BCB7135141F6285CAFACC15441D7A3703DAB135141AE47E16AA3C15441C3F5284CA71351418FC2F518A1C1544114AE4751A6135141C3F528DCA1C15441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000295C8FC26E135141EC51B8AED8C154416C0B39A179135141C9052FEFE0C1544111E5E4D382135141C56048EBE7C15441F6285CDF8D135141EC51B84EF0C154419ADFED74871351417AC98A82EAC1544107B3FC6A81135141DD2C695EE5C154417C15C59F7E135141ABFAE939E3C15441A409CA1D7A1351419E2F69C7DFC154414A33D724751351413AEE8B4EDCC1544111677CD4721351410D05ECB0DAC15441FE84584D6F135141D8D5483AD8C15441295C8FC26E135141EC51B8AED8C15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>122107 - 72666
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+0106000000010000000103000000010000001B00000014AE4751A6135141C3F528DCA1C154411F85EBB19E1351411F85EB91AAC15441295C8FA292135141AE47E15AB7C1544133333343861351411F85EBD1C3C154413D0AD7737B13514152B81EA5CDC15441295C8F027413514185EB51A8D3C15441333333436F13514133333333D8C154411F85EB417A1351410AD7A3E0DFC15441A4703DBA831351413D0AD723E7C15441F6285CDF8D135141EC51B84EF0C15441713D0AC78F13514148E17A34F0C15441B81E85CB93135141D7A3706DECC1544166666656A0135141A4703DDADEC15441000000B0A413514114AE4771DBC15441E17A14BEA8135141EC51B8FED8C1544100000020C113514133333333D0C154418FC2F528D0135141A4703D1ACBC15441D7A3705DD51351410AD7A330C5C15441295C8F52D71351418FC2F5A8C6C15441AE47E1BAD8135141295C8FE2C5C154417B14AE57D61351413D0AD7A3C3C154415C8FC295D0135141D7A3706DBFC15441B81E85ABC71351411F85EBC1B8C15441C3F528BCB7135141F6285CAFACC15441D7A3703DAB135141AE47E16AA3C15441C3F5284CA71351418FC2F518A1C1544114AE4751A6135141C3F528DCA1C15441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000295C8FC26E135141EC51B8AED8C154416C0B39A179135141C9052FEFE0C1544111E5E4D382135141C56048EBE7C15441F6285CDF8D135141EC51B84EF0C154419ADFED74871351417AC98A82EAC1544107B3FC6A81135141DD2C695EE5C154417C15C59F7E135141ABFAE939E3C15441A409CA1D7A1351419E2F69C7DFC154414A33D724751351413AEE8B4EDCC1544111677CD4721351410D05ECB0DAC15441FE84584D6F135141D8D5483AD8C15441295C8FC26E135141EC51B8AED8C15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>124489 - 2993281
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+0106000000010000000103000000010000000D000000C3F5284CE1C85041000000608BF9544152B81EE5DFC850410AD7A35095F95441B81E85CBF5C8504185EB518896F95441B81E859B03C95041F6285C1F96F954417B14AE5711C950419A9999A996F95441CDCCCC2C1BC95041AE47E18A96F95441295C8FF224C95041713D0A1797F95441B81E85BB29C95041B81E850B98F95441295C8F922DC950411F85EB019AF95441295C8FB22DC9504148E17A9494F954413D0AD7B311C950413333333392F954418FC2F50812C950410AD7A3108EF95441C3F5284CE1C85041000000608BF95441
+</a>
+
+<b>
+0106000000010000000103000000010000001E0000005DB0006604C950417D1B522796F954414B75A5C90AC95041B287A06796F954414654911D0DC95041B75B0E7F96F954415D4681550FC950414688629596F95441E70C441F11C950417ECD61A796F95441725BF25B12C95041B5706CA696F9544199889B5A13C950418ACB50A396F95441CDCCCC2C1BC95041AE47E18A96F95441519C17091CC950413EC6389796F954413AB972B020C95041F58AF7D996F95441CA50F01422C95041E76EF0ED96F954419483364823C95041BB7227FF96F954415C39F46C24C9504140068E0F97F9544151B6C41125C9504167C5441D97F95441B0BCD3AB29C950419452630898F954412E2275052AC95041D29D4E3198F954418905347C2BC9504104D7D3F098F95441295C8F922DC950411F85EB019AF9544195019FA32DC95041B8CF922097F95441FBE911A82DC95041648D4D6096F95441E66DC0AB2DC950415EF92FC195F954415688FDAC2DC95041AE4E508695F9544196438B042DC950416891ED5496F95441333333E320C95041819543F394F95441D34D621812C95041FA7E6A6494F954411CA3890612C950418678126492F95441902AEC260BC95041AF5421B892F954413249E94C04C95041BE8D9A2293F954413271DCFE03C950411502442396F954415DB0006604C950417D1B522796F95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>124489 - 3785954
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+0106000000010000000103000000010000000D000000C3F5284CE1C85041000000608BF9544152B81EE5DFC850410AD7A35095F95441B81E85CBF5C8504185EB518896F95441B81E859B03C95041F6285C1F96F954417B14AE5711C950419A9999A996F95441CDCCCC2C1BC95041AE47E18A96F95441295C8FF224C95041713D0A1797F95441B81E85BB29C95041B81E850B98F95441295C8F922DC950411F85EB019AF95441295C8FB22DC9504148E17A9494F954413D0AD7B311C950413333333392F954418FC2F50812C950410AD7A3108EF95441C3F5284CE1C85041000000608BF95441
+</a>
+
+<b>
+0106000000010000000103000000010000001E0000005DB0006604C950417D1B522796F954414B75A5C90AC95041B287A06796F954414654911D0DC95041B75B0E7F96F954415D4681550FC950414688629596F95441E70C441F11C950417ECD61A796F95441725BF25B12C95041B5706CA696F9544199889B5A13C950418ACB50A396F95441CDCCCC2C1BC95041AE47E18A96F95441519C17091CC950413EC6389796F954413AB972B020C95041F58AF7D996F95441CA50F01422C95041E76EF0ED96F954419483364823C95041BB7227FF96F954415C39F46C24C9504140068E0F97F9544151B6C41125C9504167C5441D97F95441B0BCD3AB29C950419452630898F954412E2275052AC95041D29D4E3198F954418905347C2BC9504104D7D3F098F95441295C8F922DC950411F85EB019AF9544195019FA32DC95041B8CF922097F95441FBE911A82DC95041648D4D6096F95441E66DC0AB2DC950415EF92FC195F954415688FDAC2DC95041AE4E508695F9544196438B042DC950416891ED5496F95441333333E320C95041819543F394F95441D34D621812C95041FA7E6A6494F954411CA3890612C950418678126492F95441902AEC260BC95041AF5421B892F954413249E94C04C95041BE8D9A2293F954413271DCFE03C950411502442396F954415DB0006604C950417D1B522796F95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>132219 - 1224582
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000001400000048E17A943E815141F6285C5FAA8E544152B81E953D81514185EB5198AC8E5441333333E338815141EC51B85EAF8E544185EB51B833815141EC51B83EAE8E54411F85EBF11581514114AE4751C08E5441295C8FA2CE805141EC51B8FEEA8E5441AE47E13AAC8051410AD7A3E0FF8E5441F6285C6FAF8051415C8FC245058F54419A9999B9EC805141EC51B84EE08E5441D7A3701D34815141F6285CDFB48E54411F85EB814481514148E17A34AA8E5441B81E85FB49815141C3F528DCB28E544185EB51784A8151411F85EBF1B18E54411F85EB314B815141B81E850BB18E5441666666A64B815141713D0AB7B08E54410AD7A3A041815141AE47E1CA9F8E5441D7A3707D4081514185EB51E89D8E544185EB51283A815141CDCCCC0CA08E54417B14AEA73E815141E17A144EA88E544148E17A943E815141F6285C5FAA8E5441
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000C2F812C144815141C67DD9239B8E544181A1561C428151418ECBF9589C8E5441A820C33740815141FB8B434B9D8E5441F9782D99418151413A8783BE9F8E54418520F21A438151411F7DA149A28E5441D1ECB884458151410A5CB75CA68E54419E01BFB3488151417E0AD8BCAB8E5441666666A64B815141713D0AB7B08E54418B5D79FA4C81514175940639B08E5441B42291A44E8151415B8D5125AF8E544132164E465081514197295222AE8E5441586655D7518151417D229D0EAD8E5441259E963E538151411162531CAC8E544194D3F04954815141F4E58DEFAA8E5441F93409F154815141E13D0A27AA8E5441A77B741255815141204F1B3DA98E5441F2D5D7A5548151415701FB07A88E54417C414C4F5381514127DDB112A68E544199EC760651815141D3DD71A5A28E54417C70B1D94F815141AD8D6A14A18E54416269FCC54E8151413CE3FFEF9F8E54417D9F16644C8151414D45D8299D8E5441B7C606484B815141296AE1B19B8E544143A78B0A4A8151419DB8C179998E54412E8AF728498151413BCCB9EB988E5441C2F812C144815141C67DD9239B8E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>132219 - 3986060
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000001400000048E17A943E815141F6285C5FAA8E544152B81E953D81514185EB5198AC8E5441333333E338815141EC51B85EAF8E544185EB51B833815141EC51B83EAE8E54411F85EBF11581514114AE4751C08E5441295C8FA2CE805141EC51B8FEEA8E5441AE47E13AAC8051410AD7A3E0FF8E5441F6285C6FAF8051415C8FC245058F54419A9999B9EC805141EC51B84EE08E5441D7A3701D34815141F6285CDFB48E54411F85EB814481514148E17A34AA8E5441B81E85FB49815141C3F528DCB28E544185EB51784A8151411F85EBF1B18E54411F85EB314B815141B81E850BB18E5441666666A64B815141713D0AB7B08E54410AD7A3A041815141AE47E1CA9F8E5441D7A3707D4081514185EB51E89D8E544185EB51283A815141CDCCCC0CA08E54417B14AEA73E815141E17A144EA88E544148E17A943E815141F6285C5FAA8E5441
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000C2F812C144815141C67DD9239B8E544181A1561C428151418ECBF9589C8E5441A820C33740815141FB8B434B9D8E5441F9782D99418151413A8783BE9F8E54418520F21A438151411F7DA149A28E5441D1ECB884458151410A5CB75CA68E54419E01BFB3488151417E0AD8BCAB8E5441666666A64B815141713D0AB7B08E54418B5D79FA4C81514175940639B08E5441B42291A44E8151415B8D5125AF8E544132164E465081514197295222AE8E5441586655D7518151417D229D0EAD8E5441259E963E538151411162531CAC8E544194D3F04954815141F4E58DEFAA8E5441F93409F154815141E13D0A27AA8E5441A77B741255815141204F1B3DA98E5441F2D5D7A5548151415701FB07A88E54417C414C4F5381514127DDB112A68E544199EC760651815141D3DD71A5A28E54417C70B1D94F815141AD8D6A14A18E54416269FCC54E8151413CE3FFEF9F8E54417D9F16644C8151414D45D8299D8E5441B7C606484B815141296AE1B19B8E544143A78B0A4A8151419DB8C179998E54412E8AF728498151413BCCB9EB988E5441C2F812C144815141C67DD9239B8E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238023 - 396527
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000001800000085EB5148F5BD50413333332397D05441EC51B85E12BE5041C3F5289C9DD05441CDCCCC8C1DBE504114AE478195D054417B14AE3722BE504114AE472193D054416666662626BE5041295C8F2292D05441000000302BBE5041F6285C3F92D054415C8FC2952EBE504152B81EB591D05441295C8F9231BE504185EB511890D05441EC51B82E35BE5041CDCCCCEC8CD0544148E17A7438BE50410000006089D05441333333533ABE50418FC2F56886D05441295C8F123CBE50410AD7A3D07FD05441A4703DBA36BE50411F85EB417DD05441EC51B8FE2CBE50413D0AD79378D0544185EB51E826BE50411F85EBA175D05441F6285CCF22BE5041EC51B86E78D0544148E17A141FBE5041713D0AE778D05441333333E31CBE5041D7A370BD78D05441B81E856B04BE5041B81E854B73D05441CDCCCC6C01BE50413333334382D054419A999949F5BD5041F6285CBF7FD0544166666626EEBD50419A99998988D054417B14AE97E7BD50417B14AE1794D0544185EB5148F5BD50413333332397D05441
+</a>
+
+<b>
+0106000000010000000103000000010000001600000017E27A141FBE50415C3D0AE778D05441B808E7131EBE5041FAFE05D478D0544120C731121EBE50419496E5D378D05441E73233E31CBE5041FCA370BD78D054416274776B04BE5041A469C94B73D05441CDCCCC6C01BE50413333334382D054419E32C20B35BE5041590B800B8DD05441E508CD2035BE50416EC705F98CD05441EC51B82E35BE5041CDCCCCEC8CD054411089AAEE36BE5041D17DDE068BD0544105E17A7438BE50418BFFFF5F89D054417A3233533ABE504116C3F56886D05441245C8F123CBE504108D7A3D07FD05441AA475CB23BBE50418D299CA27FD054414BC1075C3BBE5041FB664D797FD0544124703DBA36BE50417C85EB417DD05441C451B8FE2CBE50419C0AD79378D0544199EB51E826BE5041EB85EBA175D054418D7600D223BE5041AC92FABD77D05441F6285CCF22BE5041EC51B86E78D0544119393DD91FBE5041844E3FCE78D0544117E27A141FBE50415C3D0AE778D05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>142742 - 969167
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000000700000014AE477132EE504185EB513823C1544185EB51682EEE50418FC2F5C81CC1544114AE476119EE504152B81EA501C154415C8FC2A5F5ED504185EB51F8DEC0544152B81E55E9ED5041D7A3704DEFC05441AE47E11A27EE50413D0AD7732AC1544114AE477132EE504185EB513823C15441
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000CAC1D0EE29EE504139C6770217C1544185EB51682EEE50418FC2F5C81CC1544144A9417132EE50413E52483823C15441CDCCCC2C33EE50410AD7A3C022C15441AE47E1CA33EE50413D0AD77321C15441F41A39D533EE5041D69B0C5521C15441DE4B75A933EE5041C48F093221C15441A4C42E4333EE50418231B2D620C15441398A28F633EE50416ECEF45721C15441002A847A2FEE5041EFD81FD11AC15441C8C9DFFE2AEE5041C64ED11415C15441BB6F638027EE50410DBF113111C154413CD9C4C91FEE50412B46CDC008C154411232D39C1DEE5041D6397DC606C154412F7F484B1CEE504157C8CEFE04C15441921F5BA51AEE50413A98FCC002C15441DA72F8501AEE5041E58BACC600C154418EF8ECAE1BEE5041B05063F6FEC0544185EB510821EE5041B81E85BBF8C05441713D0A7729EE504185EB5188EEC05441C3F5281C29EE50413D0AD7A3EDC05441713D0AE71FEE5041C3F5289CECC05441CDCCCC9C19EE5041D7A3703DEBC054411F85EB210EEE5041713D0A67E6C0544133333303F8ED5041E17A146EDDC05441C3F5287CF6ED5041B81E85DBDDC054415C8FC2A5F5ED504185EB51F8DEC05441AF6CD05319EE5041486E528001C15441D197A3C521EE50418DB6FC790CC154410D265C6826EE5041A348AD7512C15441CAC1D0EE29EE504139C6770217C15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238741 - 58142
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+01060000000100000001030000000100000023000000A4703D3AF2BB5041A4703DDA26CC54413D0AD793EDBB504114AE473126CC544152B81EE5E8BB504152B81ED525CC5441AE47E1AACBBB5041C3F528CC24CC54410AD7A3E0C2BB50415C8FC24524CC544100000070B4BB50410000001022CC5441AE47E12AB0BB50416666663621CC544152B81E15ACBB5041C3F528AC1FCC5441713D0A87A8BB5041AE47E13A1DCC5441D7A3700D9CBB5041AE47E1AA25CC5441295C8F328BBB50413D0AD7B331CC544152B81E5585BB50418FC2F5A836CC54413D0AD7D37FBB504148E17A343CCC54418FC2F5E87ABB50417B14AE2742CC5441A4703D3A76BB5041A4703D5A48CC54413333330371BB5041B81E850B51CC54413D0AD7F370BB5041CDCCCC2C51CC5441F6285C7FCFBB50415C8FC28554CC544148E17A74D8BB5041713D0AD754CC544148E17A34DDBB5041295C8F1255CC5441E17A14BEE0BB50418FC2F52855CC54418FC2F588E3BB5041E17A14CE53CC544148E17A54E6BB5041D7A3705D52CC544114AE4741E9BB50416666666650CC5441333333D3EABB5041AE47E1EA4ECC544100000070EBBB5041CDCCCCBC4DCC54415C8FC265ECBB50417B14AEE74BCC544152B81E25EEBB5041D7A370AD49CC5441C3F5284CF0BB50410000008047CC5441AE47E16AF2BB50417B14AEE743CC5441D7A3708DF5BB504185EB51583CCC54411F85EB51F8BB504148E17AE435CC5441F6285C8FFCBB5041713D0A472ACC5441B81E85CBFCBB5041000000B028CC5441A4703D3AF2BB5041A4703DDA26CC5441
+</a>
+
+<b>
+010600000002000000010300000001000000520000000EFE673176BB504176E1F66848CC5441F205A99972BB5041377405664ECC54410F58E1F770BB5041D5E4EE2B51CC5441E278CA8BCEBB5041B434FD7854CC5441EB984749D3BB50419D9223A854CC544148E17A74D8BB5041713D0AD754CC544116C78133DABB50410FB9EBEC54CC54414055205ADFBB50414BCE272055CC5441027313B8E0BB5041D7BDCF2855CC5441E2824DE1E1BB50417129289554CC544116B88E94E6BB50416B674C2C52CC54419EE3954AE9BB504111F59C5D50CC5441D1CAD3B6E9BB50415A6567F74FCC54418E5F7EC5EABB50419DD0BCE84ECC5441577DED51ECBB50418B77890D4CCC54415C8FC265ECBB50417B14AEE74BCC544173800068ECBB50412F7DD2E44BCC5441F2E3C470ECBB5041BDD6A6D44BCC54417E7A5B6DEDBB504158A1AD974ACC544152B81E25EEBB5041D7A370AD49CC544113BB0E34EEBB50413437549E49CC544140BE0355EEBB50419C97F87449CC544105EDF0EDEEBB5041D95549E248CC5441E31EC7E3EFBB5041913298E947CC5441F1C12E3EF0BB5041D7C2238E47CC5441E39DFD39F2BB504183FBAD3044CC54416ED3DC7DF2BB5041CF5DE7B943CC5441105052A0F2BB5041A77FCE6643CC544199F2B5DFF2BB50412FD4F1CD42CC54418967DC30F3BB50415E757EDA41CC544182D9D943F3BB50415E757EDA41CC5441593C9182F3BB50415CFC374541CC5441D7A3708DF5BB504185EB51583CCC5441C2E01CDEF6BB504114BF5B4739CC5441DD48BFC0F7BB50414659EE2B37CC54412A521FD9F8BB504106C51B7234CC5441A47D0034FABB50419104DFBB30CC5441462B430FFBBB504111613B632ECC544131551E6DFCBB5041E1F021862ACC5441CCF047BCFCBB5041B6361B1729CC5441B81E85CBFCBB5041000000B028CC54415995AAC7F6BB50419F759CA427CC544117611F0FF0BB5041D2FA728B26CC54413D0AD793EDBB504114AE473126CC54412F4674CAEBBB5041C2811D0E26CC5441D04F4DC3E4BB50419B00C8B325CC54417C5FDD47CABB5041F8EF67C624CC544194C68BF3C2BB504179A2E34624CC54410AD7A3E0C2BB50415C8FC24524CC54415C74CFDEC2BB5041FEDF7A4524CC54414784E4A3C2BB504129D2794124CC5441F0025F19BABB50410771D2ED22CC544100000070B4BB50410000001022CC544186EBFF23B4BB50418502DF0022CC5441DFCDF25BB3BB50410A93CBE121CC54417793E560B0BB5041F51A274121CC5441AE47E12AB0BB50416666663621CC544161062927B0BB50410B69FF3421CC54412928ECD5AFBB5041501FE52321CC5441D0C45A19AEBB5041A755C66E20CC544152B81E15ACBB5041C3F528AC1FCC5441ACD7F7DCABBB5041BE8C94851FCC5441A11D76D4ABBB5041E9531D821FCC544136F08069ABBB504182CB3F361FCC5441BBECAE14AABB504147C2154C1ECC5441D8823398A8BB504113B9AB461DCC54413401F1AAA1BB5041DD3C9FDE21CC54414537A175A1BB5041E5F4AD0222CC54417A95F4BC9ABB50411CFD239B26CC5441AD87521C97BB5041F8B8363229CC54410466B86D93BB504162E342D32BCC5441B14D0C748DBB5041DC0DE11F30CC5441DC8F05C88BBB5041EA9F1E4931CC5441295C8F328BBB50413D0AD7B331CC544123DA04FD85BB5041DC500A1B36CC5441700D75DB82BB5041EF1E3A2739CC544151F9C20280BB50417BAA37053CCC5441ABC0CFCB7BBB50419A9D321541CC54418FC2F5E87ABB50417B14AE2742CC5441622AD90678BB504150A89AF845CC5441B85A846277BB5041990252DC46CC54410EFE673176BB504176E1F66848CC54410103000000010000000600000050BC91F4E0BB5041C22F850E55CC54417B192D28E1BB5041B5A87AF554CC5441DC055ED8E5BB5041A832629D52CC54415E0AA8F2E5BB5041B2DAD68F52CC5441E2824DE1E1BB50417129289554CC544150BC91F4E0BB5041C22F850E55CC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238741 - 120643
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000100000023000000A4703D3AF2BB5041A4703DDA26CC54413D0AD793EDBB504114AE473126CC544152B81EE5E8BB504152B81ED525CC5441AE47E1AACBBB5041C3F528CC24CC54410AD7A3E0C2BB50415C8FC24524CC544100000070B4BB50410000001022CC5441AE47E12AB0BB50416666663621CC544152B81E15ACBB5041C3F528AC1FCC5441713D0A87A8BB5041AE47E13A1DCC5441D7A3700D9CBB5041AE47E1AA25CC5441295C8F328BBB50413D0AD7B331CC544152B81E5585BB50418FC2F5A836CC54413D0AD7D37FBB504148E17A343CCC54418FC2F5E87ABB50417B14AE2742CC5441A4703D3A76BB5041A4703D5A48CC54413333330371BB5041B81E850B51CC54413D0AD7F370BB5041CDCCCC2C51CC5441F6285C7FCFBB50415C8FC28554CC544148E17A74D8BB5041713D0AD754CC544148E17A34DDBB5041295C8F1255CC5441E17A14BEE0BB50418FC2F52855CC54418FC2F588E3BB5041E17A14CE53CC544148E17A54E6BB5041D7A3705D52CC544114AE4741E9BB50416666666650CC5441333333D3EABB5041AE47E1EA4ECC544100000070EBBB5041CDCCCCBC4DCC54415C8FC265ECBB50417B14AEE74BCC544152B81E25EEBB5041D7A370AD49CC5441C3F5284CF0BB50410000008047CC5441AE47E16AF2BB50417B14AEE743CC5441D7A3708DF5BB504185EB51583CCC54411F85EB51F8BB504148E17AE435CC5441F6285C8FFCBB5041713D0A472ACC5441B81E85CBFCBB5041000000B028CC5441A4703D3AF2BB5041A4703DDA26CC5441
+</a>
+
+<b>
+010600000001000000010300000001000000520000000BFE673176BB504173E1F66848CC5441F305A99972BB5041337405664ECC54410A58E1F770BB5041D0E4EE2B51CC5441E078CA8BCEBB5041B434FD7854CC5441E6984749D3BB5041A29223A854CC544148E17A74D8BB5041713D0AD754CC544115C78133DABB50410CB9EBEC54CC54414055205ADFBB504150CE272055CC5441047313B8E0BB5041D8BDCF2855CC5441E0824DE1E1BB50417529289554CC544114B88E94E6BB50416C674C2C52CC5441A2E3954AE9BB50410EF59C5D50CC5441CECAD3B6E9BB50415F6567F74FCC54418C5F7EC5EABB5041A1D0BCE84ECC54415C7DED51ECBB50418E77890D4CCC54415C8FC265ECBB50417B14AEE74BCC54416E800068ECBB5041307DD2E44BCC5441F5E3C470ECBB5041B9D6A6D44BCC54417A7A5B6DEDBB504159A1AD974ACC544152B81E25EEBB5041D7A370AD49CC54410FBB0E34EEBB50412F37549E49CC54413BBE0355EEBB5041A197F87449CC544108EDF0EDEEBB5041D55549E248CC5441E31EC7E3EFBB5041913298E947CC5441F5C12E3EF0BB5041D3C2238E47CC5441E69DFD39F2BB504186FBAD3044CC54416BD3DC7DF2BB5041D25DE7B943CC54410F5052A0F2BB5041AA7FCE6643CC544196F2B5DFF2BB50412ED4F1CD42CC54418A67DC30F3BB50415C757EDA41CC544185D9D943F3BB50415C757EDA41CC54415E3C9182F3BB50415BFC374541CC5441D7A3708DF5BB504185EB51583CCC5441C1E01CDEF6BB504119BF5B4739CC5441E048BFC0F7BB50414459EE2B37CC54412B521FD9F8BB504102C51B7234CC5441A97D0034FABB50419304DFBB30CC5441432B430FFBBB504115613B632ECC544135551E6DFCBB5041E1F021862ACC5441D0F047BCFCBB5041B2361B1729CC5441B81E85CBFCBB5041000000B028CC54415595AAC7F6BB5041A2759CA427CC544119611F0FF0BB5041D4FA728B26CC54413D0AD793EDBB504114AE473126CC54412E4674CAEBBB5041C6811D0E26CC5441D44F4DC3E4BB5041A000C8B325CC5441775FDD47CABB5041F4EF67C624CC544192C68BF3C2BB50417CA2E34624CC54410AD7A3E0C2BB50415C8FC24524CC54415C74CFDEC2BB5041FBDF7A4524CC54414484E4A3C2BB504129D2794124CC5441F0025F19BABB50410671D2ED22CC544100000070B4BB50410000001022CC544188EBFF23B4BB50418402DF0022CC5441DECDF25BB3BB50410693CBE121CC54417893E560B0BB5041F71A274121CC5441AE47E12AB0BB50416666663621CC54415F062927B0BB50410C69FF3421CC54412728ECD5AFBB5041541FE52321CC5441D2C45A19AEBB5041A555C66E20CC544152B81E15ACBB5041C3F528AC1FCC5441A8D7F7DCABBB5041BF8C94851FCC54419E1D76D4ABBB5041EE531D821FCC544135F08069ABBB50417DCB3F361FCC5441BDECAE14AABB50414AC2154C1ECC5441DA823398A8BB504116B9AB461DCC54413501F1AAA1BB5041DC3C9FDE21CC54414837A175A1BB5041E6F4AD0222CC54417E95F4BC9ABB504120FD239B26CC5441AD87521C97BB5041FAB8363229CC54410366B86D93BB50415FE342D32BCC5441AC4D0C748DBB5041D70DE11F30CC5441D78F05C88BBB5041E99F1E4931CC5441295C8F328BBB50413D0AD7B331CC544125DA04FD85BB5041DC500A1B36CC5441730D75DB82BB5041EA1E3A2739CC54414FF9C20280BB50417CAA37053CCC5441A8C0CFCB7BBB5041979D321541CC54418FC2F5E87ABB50417B14AE2742CC54415E2AD90678BB50414DA89AF845CC5441B85A846277BB5041970252DC46CC54410BFE673176BB504173E1F66848CC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238741 - 357511
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000100000023000000A4703D3AF2BB5041A4703DDA26CC54413D0AD793EDBB504114AE473126CC544152B81EE5E8BB504152B81ED525CC5441AE47E1AACBBB5041C3F528CC24CC54410AD7A3E0C2BB50415C8FC24524CC544100000070B4BB50410000001022CC5441AE47E12AB0BB50416666663621CC544152B81E15ACBB5041C3F528AC1FCC5441713D0A87A8BB5041AE47E13A1DCC5441D7A3700D9CBB5041AE47E1AA25CC5441295C8F328BBB50413D0AD7B331CC544152B81E5585BB50418FC2F5A836CC54413D0AD7D37FBB504148E17A343CCC54418FC2F5E87ABB50417B14AE2742CC5441A4703D3A76BB5041A4703D5A48CC54413333330371BB5041B81E850B51CC54413D0AD7F370BB5041CDCCCC2C51CC5441F6285C7FCFBB50415C8FC28554CC544148E17A74D8BB5041713D0AD754CC544148E17A34DDBB5041295C8F1255CC5441E17A14BEE0BB50418FC2F52855CC54418FC2F588E3BB5041E17A14CE53CC544148E17A54E6BB5041D7A3705D52CC544114AE4741E9BB50416666666650CC5441333333D3EABB5041AE47E1EA4ECC544100000070EBBB5041CDCCCCBC4DCC54415C8FC265ECBB50417B14AEE74BCC544152B81E25EEBB5041D7A370AD49CC5441C3F5284CF0BB50410000008047CC5441AE47E16AF2BB50417B14AEE743CC5441D7A3708DF5BB504185EB51583CCC54411F85EB51F8BB504148E17AE435CC5441F6285C8FFCBB5041713D0A472ACC5441B81E85CBFCBB5041000000B028CC5441A4703D3AF2BB5041A4703DDA26CC5441
+</a>
+
+<b>
+010600000001000000010300000001000000520000000BFE673176BB504173E1F66848CC5441F305A99972BB5041337405664ECC54410A58E1F770BB5041D0E4EE2B51CC5441E078CA8BCEBB5041B434FD7854CC5441E6984749D3BB5041A29223A854CC544148E17A74D8BB5041713D0AD754CC544115C78133DABB50410CB9EBEC54CC54414055205ADFBB504150CE272055CC5441047313B8E0BB5041D8BDCF2855CC5441E0824DE1E1BB50417529289554CC544114B88E94E6BB50416C674C2C52CC5441A2E3954AE9BB50410EF59C5D50CC5441CECAD3B6E9BB50415F6567F74FCC54418C5F7EC5EABB5041A1D0BCE84ECC54415C7DED51ECBB50418E77890D4CCC54415C8FC265ECBB50417B14AEE74BCC54416E800068ECBB5041307DD2E44BCC5441F5E3C470ECBB5041B9D6A6D44BCC54417A7A5B6DEDBB504159A1AD974ACC544152B81E25EEBB5041D7A370AD49CC54410FBB0E34EEBB50412F37549E49CC54413BBE0355EEBB5041A197F87449CC544108EDF0EDEEBB5041D55549E248CC5441E31EC7E3EFBB5041913298E947CC5441F5C12E3EF0BB5041D3C2238E47CC5441E69DFD39F2BB504186FBAD3044CC54416BD3DC7DF2BB5041D25DE7B943CC54410F5052A0F2BB5041AA7FCE6643CC544196F2B5DFF2BB50412ED4F1CD42CC54418A67DC30F3BB50415C757EDA41CC544185D9D943F3BB50415C757EDA41CC54415E3C9182F3BB50415BFC374541CC5441D7A3708DF5BB504185EB51583CCC5441C1E01CDEF6BB504119BF5B4739CC5441E048BFC0F7BB50414459EE2B37CC54412B521FD9F8BB504102C51B7234CC5441A97D0034FABB50419304DFBB30CC5441432B430FFBBB504115613B632ECC544135551E6DFCBB5041E1F021862ACC5441D0F047BCFCBB5041B2361B1729CC5441B81E85CBFCBB5041000000B028CC54415595AAC7F6BB5041A2759CA427CC544119611F0FF0BB5041D4FA728B26CC54413D0AD793EDBB504114AE473126CC54412E4674CAEBBB5041C6811D0E26CC5441D44F4DC3E4BB5041A000C8B325CC5441775FDD47CABB5041F4EF67C624CC544192C68BF3C2BB50417CA2E34624CC54410AD7A3E0C2BB50415C8FC24524CC54415C74CFDEC2BB5041FBDF7A4524CC54414484E4A3C2BB504129D2794124CC5441F0025F19BABB50410671D2ED22CC544100000070B4BB50410000001022CC544188EBFF23B4BB50418402DF0022CC5441DECDF25BB3BB50410693CBE121CC54417893E560B0BB5041F71A274121CC5441AE47E12AB0BB50416666663621CC54415F062927B0BB50410C69FF3421CC54412728ECD5AFBB5041541FE52321CC5441D2C45A19AEBB5041A555C66E20CC544152B81E15ACBB5041C3F528AC1FCC5441A8D7F7DCABBB5041BF8C94851FCC54419E1D76D4ABBB5041EE531D821FCC544135F08069ABBB50417DCB3F361FCC5441BDECAE14AABB50414AC2154C1ECC5441DA823398A8BB504116B9AB461DCC54413501F1AAA1BB5041DC3C9FDE21CC54414837A175A1BB5041E6F4AD0222CC54417E95F4BC9ABB504120FD239B26CC5441AD87521C97BB5041FAB8363229CC54410366B86D93BB50415FE342D32BCC5441AC4D0C748DBB5041D70DE11F30CC5441D78F05C88BBB5041E99F1E4931CC5441295C8F328BBB50413D0AD7B331CC544125DA04FD85BB5041DC500A1B36CC5441730D75DB82BB5041EA1E3A2739CC54414FF9C20280BB50417CAA37053CCC5441A8C0CFCB7BBB5041979D321541CC54418FC2F5E87ABB50417B14AE2742CC54415E2AD90678BB50414DA89AF845CC5441B85A846277BB5041970252DC46CC54410BFE673176BB504173E1F66848CC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>411593 - 1637645
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -47 </desc>
+<a>
+0106000000010000000103000000010000000F0000006565F6E573A15041D3F4428C775655413BA60BB873A15041009EF5427756554157F2BC7669A15041012C75947A5655419035B36185A1504171D72B31A6565541D8E9E5BC8EA1504118993B87B4565541E17A142E95A150411F85EB11AE565541E17A14DE8FA150419A9999B9A8565541EC51B8BE90A15041EC51B89EA75655412417B1A07EA1504134BD986D895655419A9999497EA15041295C8F9289565541B4D870D97DA1504172288D21885655414E8180067CA150416C53C27B83565541AD1578B07AA15041DF5D728581565541B81E851B78A1504148E17A447E5655416565F6E573A15041D3F4428C77565541
+</a>
+
+<b>
+01060000000100000001030000000900000066000000C9B088AC62A15041D5DD699580565541FA477C2464A150417D62974B855655419E969FD45EA15041701AAC4C8B565541DB60953A5CA15041A0F74A4E8E565541538705025BA150411FA976B78F565541295C8F8259A15041295C8F7291565541D7A370AD57A1504152B81EE58D565541C3F528CC55A15041E17A147E895655415C8FC2C548A150411F85EB118B56554152B81E8548A150410000007094565541B81E851B48A15041D7A3702D9E56554148E17A9447A150411F85EBC1A75655413D0AD7F346A15041713D0A67B65655410AD7A30046A150417B14AEB7C2565541713D0A0748A15041333333E3C15655415C8FC2454AA15041A4703D5AC15655418FC2F5F850A150410AD7A350BF5655417063B13054A150415F27F7A6CA5655411284EF7653A150411AE67A1ACC5655413D0AD76353A150411F85EBF1CB56554114AE47314EA15041B81E855BCC56554152B81E5554A15041D7A3707DDC5655413333330358A150413D0AD7C3DA5655418FC2F5E859A15041A4703DCAD9565541A4703D0A5DA150418FC2F518D856554148E17A4465A15041D7A3705DDE5655411F85EB0169A1504185EB51C8DA565541666666366DA1504148E17A14E0565541E17A145E6DA1504185EB5188E55655417B14AEA76BA15041D7A3706DE95655413333332367A150415C8FC2F5E8565541D7A3708D63A150410AD7A310E5565541713D0A8761A15041B81E852BE1565541666666E65BA150410AD7A3D0E156554148E17AF45EA150411F85EB51E85655413D0AD78362A1504185EB51A8F056554148E17AC464A15041F6285C1FF95655417B92E8B865A1504132120ECA025755414D1F51EE68A15041C93992D702575541509ABAB076A15041FA0543DB045755412EE5DB1781A15041498E2A6F095755414CBE5DEC82A15041E0EB92E201575541D7A370AD7CA150410AD7A340F6565541BEB5FEF47DA15041341BFD3DF5565541680692F282A150410DFA7775F256554101BC266586A15041F3DE7DE7EF565541DA1DB11488A15041D2448A08EB565541E99C40718EA15041591A1355D6565541C49429DC8CA150414BD5EA54D0565541E17A145E8FA15041295C8F02CE565541EC51B8DE94A15041713D0AF7C85655419A9999099CA150411F85EBD1C15655413D0AD7639CA15041D7A3702DC1565541C3C179A790A15041F62D6D9BB2565541D4E9E5BC8EA1504113993B87B45655410624CA9F8EA15041318FA15AB45655411306E9748EA15041C5138D86B4565541FB83561B7AA1504196A33494945655416C8714FB6DA15041D602DAA281565541AC4E330C6CA1504125E7C49D7E565541B872B8CA69A1504120E1A6177B56554159F2BC7669A15041FC2B75947A565541F8FE239D69A15041390908887A565541F6285C6F66A150413D0AD78370565541967BFF5264A150415A1E39D36C5655414BE0FF5061A15041FA02633768565541B25B343B61A150410A8C6B0468565541CC44D1E163A15041B42739E2665655410000002063A150415C8FC26564565541EC51B8DE62A15041000000106356554114AE478162A15041CDCCCCBC61565541F6285C1F62A1504148E17A44605655411F85EBA161A15041333333235E5655419A9999F95EA1504185EB51A85F5655418531986C59A15041350C5FD062565541BF61C53452A150415178BDEE6656554166F52FB246A1504172748F516D5655413C97141344A1504193B1F5FA69565541662E70E942A150419303512C68565541ED10FF623DA1504116B64DB9695655413F24D72633A150419E098FC46C5655410D42D0752CA1504143A2798F6D565541EF24BD2529A150417F9ECC1D6E565541AE633B5A2BA15041046D976E725655416ABD82BD2DA150417CC3107272565541026DE1492EA150412171B45C72565541AE3953DA3AA15041E8E37397725655412E94C8DF42A150414F8935BC72565541EF7512F545A15041619583B2725655411CFCED2648A150413212ADB872565541A4703D2A49A15041B81E85BB72565541CC3D873A49A15041A1276BD8725655419B3D505149A150413C06D80073565541D7A3708D49A15041B81E856B73565541BD084BE14CA1504123CC3E5679565541D75C60784FA150413B36A5967856554112B4914454A150416F6ABD1C77565541A1B140A258A15041C657D6C475565541C0C8726759A150416864298875565541EB0941835EA15041CB8BC2F5735655410C4B30B85EA15041E8ED78E573565541C9B088AC62A15041D5DD699580565541070000003333339352A15041295C8FB29B565541B81E858B50A150411F85EBF1975655411359527B59A15041C15ACE77915655417FB381C459A15041497F50159256554139D44C6F5EA15041188C7C679D5655411F85EB515CA150411F85EB61985655413333339352A15041295C8FB29B5655410A00000014AE478167A1504185EB5108B8565541713D0AB764A150415C8FC2E5B8565541E17A145E5DA15041C3F5284CBB565541C17A140E5BA1504197A3700DBC565541B81E851B64A15041B81E851BAD565541FE01E0F764A150414B1B50CCAF565541B795418865A15041C5D5548FB1565541B96BCFB37CA1504137F6914BA856554114AE479165A15041B81E85ABB156554114AE478167A1504185EB5108B85655410B00000087E4A3EC80A15041D1B6D89BDA56554120AE64B377A15041A1E65644E25655410505B50272A150418AED8739E7565541155CE8BD70A1504109C789AEE9565541D433521F70A15041593BC0E1EA565541D7A370ED6EA15041000000B0E55655411F85EB2173A15041C3F5283CE0565541B81E850B79A15041F6285C1FE156554185EB51A87BA15041666666F6DE565541A4703DDA7DA150415C8FC225DD56554187E4A3EC80A15041D1B6D89BDA5655410F000000B8E3A3EC80A15041BDB6D89BDA565541A4703D8A81A150419A999919DA5655416E482B8681A1504153F45512DA565541AD806B6585A15041252D49D4D6565541EC51B88E82A150415C8FC275D356554185EB513880A1504185EB51B8CF5655410000006080A15041B81E85ABCB5655415C8FC25583A1504152B81EF5C956554148E17A8485A15041333333D3CB5655413D0AD77386A150419A9999C9CE565541CDCCCC5C85A15041F6285CBFD15655413D0AD72386A15041D7A3709DD356554131AD53AC89A15041C8A41421D356554105CC114784A150418C4896DDD7565541B8E3A3EC80A15041BDB6D89BDA56554104000000FFBF7D9C7FA150418348CE21A756554101FC32BB84A15041997EEC00AE56554185EB514884A150418FC2F588AD565541FFBF7D9C7FA150418348CE21A75655410800000048E17A2462A15041295C8F02CB56554148E17A0457A15041666666A6D3565541E6771AA353A1504149754B78CC565541333333A354A1504185EB51D8CB565541C3F5286C5CA150418FC2F548C0565541333333735EA1504114AE4791C6565541C3F528DC5FA150410AD7A3F0CA56554148E17A2462A15041295C8F02CB565541060000007B14AE1776A150410AD7A390CF565541666666F677A15041C3F528BCCA565541295C8FF27CA150415C8FC2C5D3565541B81E852B7CA1504133333393D6565541D7A3705D79A15041CDCCCCDCD45655417B14AE1776A150410AD7A390CF56554104000000547375186CA15041BD651A00F3565541333333336CA15041A4703D7AF2565541BA79F4B86CA1504192404177F1565541547375186CA15041BD651A00F3565541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>411593 - 5286048
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -47 </desc>
+<a>
+0106000000010000000103000000010000000F0000006565F6E573A15041D3F4428C775655413BA60BB873A15041009EF5427756554157F2BC7669A15041012C75947A5655419035B36185A1504171D72B31A6565541D8E9E5BC8EA1504118993B87B4565541E17A142E95A150411F85EB11AE565541E17A14DE8FA150419A9999B9A8565541EC51B8BE90A15041EC51B89EA75655412417B1A07EA1504134BD986D895655419A9999497EA15041295C8F9289565541B4D870D97DA1504172288D21885655414E8180067CA150416C53C27B83565541AD1578B07AA15041DF5D728581565541B81E851B78A1504148E17A447E5655416565F6E573A15041D3F4428C77565541
+</a>
+
+<b>
+01060000000100000001030000000900000066000000C9B088AC62A15041D5DD699580565541FA477C2464A150417D62974B855655419E969FD45EA15041701AAC4C8B565541DB60953A5CA15041A0F74A4E8E565541538705025BA150411FA976B78F565541295C8F8259A15041295C8F7291565541D7A370AD57A1504152B81EE58D565541C3F528CC55A15041E17A147E895655415C8FC2C548A150411F85EB118B56554152B81E8548A150410000007094565541B81E851B48A15041D7A3702D9E56554148E17A9447A150411F85EBC1A75655413D0AD7F346A15041713D0A67B65655410AD7A30046A150417B14AEB7C2565541713D0A0748A15041333333E3C15655415C8FC2454AA15041A4703D5AC15655418FC2F5F850A150410AD7A350BF5655417063B13054A150415F27F7A6CA5655411284EF7653A150411AE67A1ACC5655413D0AD76353A150411F85EBF1CB56554114AE47314EA15041B81E855BCC56554152B81E5554A15041D7A3707DDC5655413333330358A150413D0AD7C3DA5655418FC2F5E859A15041A4703DCAD9565541A4703D0A5DA150418FC2F518D856554148E17A4465A15041D7A3705DDE5655411F85EB0169A1504185EB51C8DA565541666666366DA1504148E17A14E0565541E17A145E6DA1504185EB5188E55655417B14AEA76BA15041D7A3706DE95655413333332367A150415C8FC2F5E8565541D7A3708D63A150410AD7A310E5565541713D0A8761A15041B81E852BE1565541666666E65BA150410AD7A3D0E156554148E17AF45EA150411F85EB51E85655413D0AD78362A1504185EB51A8F056554148E17AC464A15041F6285C1FF95655417B92E8B865A1504132120ECA025755414D1F51EE68A15041C93992D702575541509ABAB076A15041FA0543DB045755412EE5DB1781A15041498E2A6F095755414CBE5DEC82A15041E0EB92E201575541D7A370AD7CA150410AD7A340F6565541BEB5FEF47DA15041341BFD3DF5565541680692F282A150410DFA7775F256554101BC266586A15041F3DE7DE7EF565541DA1DB11488A15041D2448A08EB565541E99C40718EA15041591A1355D6565541C49429DC8CA150414BD5EA54D0565541E17A145E8FA15041295C8F02CE565541EC51B8DE94A15041713D0AF7C85655419A9999099CA150411F85EBD1C15655413D0AD7639CA15041D7A3702DC1565541C3C179A790A15041F62D6D9BB2565541D4E9E5BC8EA1504113993B87B45655410624CA9F8EA15041318FA15AB45655411306E9748EA15041C5138D86B4565541FB83561B7AA1504196A33494945655416C8714FB6DA15041D602DAA281565541AC4E330C6CA1504125E7C49D7E565541B872B8CA69A1504120E1A6177B56554159F2BC7669A15041FC2B75947A565541F8FE239D69A15041390908887A565541F6285C6F66A150413D0AD78370565541967BFF5264A150415A1E39D36C5655414BE0FF5061A15041FA02633768565541B25B343B61A150410A8C6B0468565541CC44D1E163A15041B42739E2665655410000002063A150415C8FC26564565541EC51B8DE62A15041000000106356554114AE478162A15041CDCCCCBC61565541F6285C1F62A1504148E17A44605655411F85EBA161A15041333333235E5655419A9999F95EA1504185EB51A85F5655418531986C59A15041350C5FD062565541BF61C53452A150415178BDEE6656554166F52FB246A1504172748F516D5655413C97141344A1504193B1F5FA69565541662E70E942A150419303512C68565541ED10FF623DA1504116B64DB9695655413F24D72633A150419E098FC46C5655410D42D0752CA1504143A2798F6D565541EF24BD2529A150417F9ECC1D6E565541AE633B5A2BA15041046D976E725655416ABD82BD2DA150417CC3107272565541026DE1492EA150412171B45C72565541AE3953DA3AA15041E8E37397725655412E94C8DF42A150414F8935BC72565541EF7512F545A15041619583B2725655411CFCED2648A150413212ADB872565541A4703D2A49A15041B81E85BB72565541CC3D873A49A15041A1276BD8725655419B3D505149A150413C06D80073565541D7A3708D49A15041B81E856B73565541BD084BE14CA1504123CC3E5679565541D75C60784FA150413B36A5967856554112B4914454A150416F6ABD1C77565541A1B140A258A15041C657D6C475565541C0C8726759A150416864298875565541EB0941835EA15041CB8BC2F5735655410C4B30B85EA15041E8ED78E573565541C9B088AC62A15041D5DD699580565541070000003333339352A15041295C8FB29B565541B81E858B50A150411F85EBF1975655411359527B59A15041C15ACE77915655417FB381C459A15041497F50159256554139D44C6F5EA15041188C7C679D5655411F85EB515CA150411F85EB61985655413333339352A15041295C8FB29B5655410A00000014AE478167A1504185EB5108B8565541713D0AB764A150415C8FC2E5B8565541E17A145E5DA15041C3F5284CBB565541C17A140E5BA1504197A3700DBC565541B81E851B64A15041B81E851BAD565541FE01E0F764A150414B1B50CCAF565541B795418865A15041C5D5548FB1565541B96BCFB37CA1504137F6914BA856554114AE479165A15041B81E85ABB156554114AE478167A1504185EB5108B85655410B00000087E4A3EC80A15041D1B6D89BDA56554120AE64B377A15041A1E65644E25655410505B50272A150418AED8739E7565541155CE8BD70A1504109C789AEE9565541D433521F70A15041593BC0E1EA565541D7A370ED6EA15041000000B0E55655411F85EB2173A15041C3F5283CE0565541B81E850B79A15041F6285C1FE156554185EB51A87BA15041666666F6DE565541A4703DDA7DA150415C8FC225DD56554187E4A3EC80A15041D1B6D89BDA5655410F000000B8E3A3EC80A15041BDB6D89BDA565541A4703D8A81A150419A999919DA5655416E482B8681A1504153F45512DA565541AD806B6585A15041252D49D4D6565541EC51B88E82A150415C8FC275D356554185EB513880A1504185EB51B8CF5655410000006080A15041B81E85ABCB5655415C8FC25583A1504152B81EF5C956554148E17A8485A15041333333D3CB5655413D0AD77386A150419A9999C9CE565541CDCCCC5C85A15041F6285CBFD15655413D0AD72386A15041D7A3709DD356554131AD53AC89A15041C8A41421D356554105CC114784A150418C4896DDD7565541B8E3A3EC80A15041BDB6D89BDA56554104000000FFBF7D9C7FA150418348CE21A756554101FC32BB84A15041997EEC00AE56554185EB514884A150418FC2F588AD565541FFBF7D9C7FA150418348CE21A75655410800000048E17A2462A15041295C8F02CB56554148E17A0457A15041666666A6D3565541E6771AA353A1504149754B78CC565541333333A354A1504185EB51D8CB565541C3F5286C5CA150418FC2F548C0565541333333735EA1504114AE4791C6565541C3F528DC5FA150410AD7A3F0CA56554148E17A2462A15041295C8F02CB565541060000007B14AE1776A150410AD7A390CF565541666666F677A15041C3F528BCCA565541295C8FF27CA150415C8FC2C5D3565541B81E852B7CA1504133333393D6565541D7A3705D79A15041CDCCCCDCD45655417B14AE1776A150410AD7A390CF56554104000000547375186CA15041BD651A00F3565541333333336CA15041A4703D7AF2565541BA79F4B86CA1504192404177F1565541547375186CA15041BD651A00F3565541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>411593 - 243174
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -47 </desc>
+<a>
+0106000000010000000103000000010000000F0000006565F6E573A15041D3F4428C775655413BA60BB873A15041009EF5427756554157F2BC7669A15041012C75947A5655419035B36185A1504171D72B31A6565541D8E9E5BC8EA1504118993B87B4565541E17A142E95A150411F85EB11AE565541E17A14DE8FA150419A9999B9A8565541EC51B8BE90A15041EC51B89EA75655412417B1A07EA1504134BD986D895655419A9999497EA15041295C8F9289565541B4D870D97DA1504172288D21885655414E8180067CA150416C53C27B83565541AD1578B07AA15041DF5D728581565541B81E851B78A1504148E17A447E5655416565F6E573A15041D3F4428C77565541
+</a>
+
+<b>
+01060000000100000001030000000900000066000000C9B088AC62A15041D5DD699580565541FA477C2464A150417D62974B855655419E969FD45EA15041701AAC4C8B565541DB60953A5CA15041A0F74A4E8E565541538705025BA150411FA976B78F565541295C8F8259A15041295C8F7291565541D7A370AD57A1504152B81EE58D565541C3F528CC55A15041E17A147E895655415C8FC2C548A150411F85EB118B56554152B81E8548A150410000007094565541B81E851B48A15041D7A3702D9E56554148E17A9447A150411F85EBC1A75655413D0AD7F346A15041713D0A67B65655410AD7A30046A150417B14AEB7C2565541713D0A0748A15041333333E3C15655415C8FC2454AA15041A4703D5AC15655418FC2F5F850A150410AD7A350BF5655417063B13054A150415F27F7A6CA5655411284EF7653A150411AE67A1ACC5655413D0AD76353A150411F85EBF1CB56554114AE47314EA15041B81E855BCC56554152B81E5554A15041D7A3707DDC5655413333330358A150413D0AD7C3DA5655418FC2F5E859A15041A4703DCAD9565541A4703D0A5DA150418FC2F518D856554148E17A4465A15041D7A3705DDE5655411F85EB0169A1504185EB51C8DA565541666666366DA1504148E17A14E0565541E17A145E6DA1504185EB5188E55655417B14AEA76BA15041D7A3706DE95655413333332367A150415C8FC2F5E8565541D7A3708D63A150410AD7A310E5565541713D0A8761A15041B81E852BE1565541666666E65BA150410AD7A3D0E156554148E17AF45EA150411F85EB51E85655413D0AD78362A1504185EB51A8F056554148E17AC464A15041F6285C1FF95655417B92E8B865A1504132120ECA025755414D1F51EE68A15041C93992D702575541509ABAB076A15041FA0543DB045755412EE5DB1781A15041498E2A6F095755414CBE5DEC82A15041E0EB92E201575541D7A370AD7CA150410AD7A340F6565541BEB5FEF47DA15041341BFD3DF5565541680692F282A150410DFA7775F256554101BC266586A15041F3DE7DE7EF565541DA1DB11488A15041D2448A08EB565541E99C40718EA15041591A1355D6565541C49429DC8CA150414BD5EA54D0565541E17A145E8FA15041295C8F02CE565541EC51B8DE94A15041713D0AF7C85655419A9999099CA150411F85EBD1C15655413D0AD7639CA15041D7A3702DC1565541C3C179A790A15041F62D6D9BB2565541D4E9E5BC8EA1504113993B87B45655410624CA9F8EA15041318FA15AB45655411306E9748EA15041C5138D86B4565541FB83561B7AA1504196A33494945655416C8714FB6DA15041D602DAA281565541AC4E330C6CA1504125E7C49D7E565541B872B8CA69A1504120E1A6177B56554159F2BC7669A15041FC2B75947A565541F8FE239D69A15041390908887A565541F6285C6F66A150413D0AD78370565541967BFF5264A150415A1E39D36C5655414BE0FF5061A15041FA02633768565541B25B343B61A150410A8C6B0468565541CC44D1E163A15041B42739E2665655410000002063A150415C8FC26564565541EC51B8DE62A15041000000106356554114AE478162A15041CDCCCCBC61565541F6285C1F62A1504148E17A44605655411F85EBA161A15041333333235E5655419A9999F95EA1504185EB51A85F5655418531986C59A15041350C5FD062565541BF61C53452A150415178BDEE6656554166F52FB246A1504172748F516D5655413C97141344A1504193B1F5FA69565541662E70E942A150419303512C68565541ED10FF623DA1504116B64DB9695655413F24D72633A150419E098FC46C5655410D42D0752CA1504143A2798F6D565541EF24BD2529A150417F9ECC1D6E565541AE633B5A2BA15041046D976E725655416ABD82BD2DA150417CC3107272565541026DE1492EA150412171B45C72565541AE3953DA3AA15041E8E37397725655412E94C8DF42A150414F8935BC72565541EF7512F545A15041619583B2725655411CFCED2648A150413212ADB872565541A4703D2A49A15041B81E85BB72565541CC3D873A49A15041A1276BD8725655419B3D505149A150413C06D80073565541D7A3708D49A15041B81E856B73565541BD084BE14CA1504123CC3E5679565541D75C60784FA150413B36A5967856554112B4914454A150416F6ABD1C77565541A1B140A258A15041C657D6C475565541C0C8726759A150416864298875565541EB0941835EA15041CB8BC2F5735655410C4B30B85EA15041E8ED78E573565541C9B088AC62A15041D5DD699580565541070000003333339352A15041295C8FB29B565541B81E858B50A150411F85EBF1975655411359527B59A15041C15ACE77915655417FB381C459A15041497F50159256554139D44C6F5EA15041188C7C679D5655411F85EB515CA150411F85EB61985655413333339352A15041295C8FB29B5655410A00000014AE478167A1504185EB5108B8565541713D0AB764A150415C8FC2E5B8565541E17A145E5DA15041C3F5284CBB565541C17A140E5BA1504197A3700DBC565541B81E851B64A15041B81E851BAD565541FE01E0F764A150414B1B50CCAF565541B795418865A15041C5D5548FB1565541B96BCFB37CA1504137F6914BA856554114AE479165A15041B81E85ABB156554114AE478167A1504185EB5108B85655410D00000087E4A3EC80A15041D1B6D89BDA565541551FA3EC80A150418B5AD99BDA56554158E5A3EC80A15041E6B6D89BDA56554120AE64B377A15041A1E65644E25655410505B50272A150418AED8739E7565541155CE8BD70A1504109C789AEE9565541D433521F70A15041593BC0E1EA565541D7A370ED6EA15041000000B0E55655411F85EB2173A15041C3F5283CE0565541B81E850B79A15041F6285C1FE156554185EB51A87BA15041666666F6DE565541A4703DDA7DA150415C8FC225DD56554187E4A3EC80A15041D1B6D89BDA56554111000000B8E3A3EC80A15041BDB6D89BDA565541A4703D8A81A150419A999919DA5655416E482B8681A1504153F45512DA565541AD806B6585A15041252D49D4D6565541EC51B88E82A150415C8FC275D356554185EB513880A1504185EB51B8CF5655410000006080A15041B81E85ABCB5655415C8FC25583A1504152B81EF5C956554148E17A8485A15041333333D3CB5655413D0AD77386A150419A9999C9CE565541CDCCCC5C85A15041F6285CBFD15655413D0AD72386A15041D7A3709DD356554131AD53AC89A15041C8A41421D356554105CC114784A150418C4896DDD75655410DE5A3EC80A150411CB7D89BDA565541B693A4EC80A15041C426D89BDA565541B8E3A3EC80A15041BDB6D89BDA56554104000000FFBF7D9C7FA150418348CE21A756554101FC32BB84A15041997EEC00AE56554185EB514884A150418FC2F588AD565541FFBF7D9C7FA150418348CE21A75655410800000048E17A2462A15041295C8F02CB56554148E17A0457A15041666666A6D3565541E6771AA353A1504149754B78CC565541333333A354A1504185EB51D8CB565541C3F5286C5CA150418FC2F548C0565541333333735EA1504114AE4791C6565541C3F528DC5FA150410AD7A3F0CA56554148E17A2462A15041295C8F02CB565541060000007B14AE1776A150410AD7A390CF565541666666F677A15041C3F528BCCA565541295C8FF27CA150415C8FC2C5D3565541B81E852B7CA1504133333393D6565541D7A3705D79A15041CDCCCCDCD45655417B14AE1776A150410AD7A390CF56554104000000547375186CA15041BD651A00F3565541333333336CA15041A4703D7AF2565541BA79F4B86CA1504192404177F1565541547375186CA15041BD651A00F3565541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>411593 - 419661
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -47 </desc>
+<a>
+0106000000010000000103000000010000000F0000006565F6E573A15041D3F4428C775655413BA60BB873A15041009EF5427756554157F2BC7669A15041012C75947A5655419035B36185A1504171D72B31A6565541D8E9E5BC8EA1504118993B87B4565541E17A142E95A150411F85EB11AE565541E17A14DE8FA150419A9999B9A8565541EC51B8BE90A15041EC51B89EA75655412417B1A07EA1504134BD986D895655419A9999497EA15041295C8F9289565541B4D870D97DA1504172288D21885655414E8180067CA150416C53C27B83565541AD1578B07AA15041DF5D728581565541B81E851B78A1504148E17A447E5655416565F6E573A15041D3F4428C77565541
+</a>
+
+<b>
+01060000000100000001030000000900000066000000C9B088AC62A15041D5DD699580565541FA477C2464A150417D62974B855655419E969FD45EA15041701AAC4C8B565541DB60953A5CA15041A0F74A4E8E565541538705025BA150411FA976B78F565541295C8F8259A15041295C8F7291565541D7A370AD57A1504152B81EE58D565541C3F528CC55A15041E17A147E895655415C8FC2C548A150411F85EB118B56554152B81E8548A150410000007094565541B81E851B48A15041D7A3702D9E56554148E17A9447A150411F85EBC1A75655413D0AD7F346A15041713D0A67B65655410AD7A30046A150417B14AEB7C2565541713D0A0748A15041333333E3C15655415C8FC2454AA15041A4703D5AC15655418FC2F5F850A150410AD7A350BF5655417063B13054A150415F27F7A6CA5655411284EF7653A150411AE67A1ACC5655413D0AD76353A150411F85EBF1CB56554114AE47314EA15041B81E855BCC56554152B81E5554A15041D7A3707DDC5655413333330358A150413D0AD7C3DA5655418FC2F5E859A15041A4703DCAD9565541A4703D0A5DA150418FC2F518D856554148E17A4465A15041D7A3705DDE5655411F85EB0169A1504185EB51C8DA565541666666366DA1504148E17A14E0565541E17A145E6DA1504185EB5188E55655417B14AEA76BA15041D7A3706DE95655413333332367A150415C8FC2F5E8565541D7A3708D63A150410AD7A310E5565541713D0A8761A15041B81E852BE1565541666666E65BA150410AD7A3D0E156554148E17AF45EA150411F85EB51E85655413D0AD78362A1504185EB51A8F056554148E17AC464A15041F6285C1FF95655417B92E8B865A1504132120ECA025755414D1F51EE68A15041C93992D702575541509ABAB076A15041FA0543DB045755412EE5DB1781A15041498E2A6F095755414CBE5DEC82A15041E0EB92E201575541D7A370AD7CA150410AD7A340F6565541BEB5FEF47DA15041341BFD3DF5565541680692F282A150410DFA7775F256554101BC266586A15041F3DE7DE7EF565541DA1DB11488A15041D2448A08EB565541E99C40718EA15041591A1355D6565541C49429DC8CA150414BD5EA54D0565541E17A145E8FA15041295C8F02CE565541EC51B8DE94A15041713D0AF7C85655419A9999099CA150411F85EBD1C15655413D0AD7639CA15041D7A3702DC1565541C3C179A790A15041F62D6D9BB2565541D4E9E5BC8EA1504113993B87B45655410624CA9F8EA15041318FA15AB45655411306E9748EA15041C5138D86B4565541FB83561B7AA1504196A33494945655416C8714FB6DA15041D602DAA281565541AC4E330C6CA1504125E7C49D7E565541B872B8CA69A1504120E1A6177B56554159F2BC7669A15041FC2B75947A565541F8FE239D69A15041390908887A565541F6285C6F66A150413D0AD78370565541967BFF5264A150415A1E39D36C5655414BE0FF5061A15041FA02633768565541B25B343B61A150410A8C6B0468565541CC44D1E163A15041B42739E2665655410000002063A150415C8FC26564565541EC51B8DE62A15041000000106356554114AE478162A15041CDCCCCBC61565541F6285C1F62A1504148E17A44605655411F85EBA161A15041333333235E5655419A9999F95EA1504185EB51A85F5655418531986C59A15041350C5FD062565541BF61C53452A150415178BDEE6656554166F52FB246A1504172748F516D5655413C97141344A1504193B1F5FA69565541662E70E942A150419303512C68565541ED10FF623DA1504116B64DB9695655413F24D72633A150419E098FC46C5655410D42D0752CA1504143A2798F6D565541EF24BD2529A150417F9ECC1D6E565541AE633B5A2BA15041046D976E725655416ABD82BD2DA150417CC3107272565541026DE1492EA150412171B45C72565541AE3953DA3AA15041E8E37397725655412E94C8DF42A150414F8935BC72565541EF7512F545A15041619583B2725655411CFCED2648A150413212ADB872565541A4703D2A49A15041B81E85BB72565541CC3D873A49A15041A1276BD8725655419B3D505149A150413C06D80073565541D7A3708D49A15041B81E856B73565541BD084BE14CA1504123CC3E5679565541D75C60784FA150413B36A5967856554112B4914454A150416F6ABD1C77565541A1B140A258A15041C657D6C475565541C0C8726759A150416864298875565541EB0941835EA15041CB8BC2F5735655410C4B30B85EA15041E8ED78E573565541C9B088AC62A15041D5DD699580565541070000003333339352A15041295C8FB29B565541B81E858B50A150411F85EBF1975655411359527B59A15041C15ACE77915655417FB381C459A15041497F50159256554139D44C6F5EA15041188C7C679D5655411F85EB515CA150411F85EB61985655413333339352A15041295C8FB29B5655410A00000014AE478167A1504185EB5108B8565541713D0AB764A150415C8FC2E5B8565541E17A145E5DA15041C3F5284CBB565541C17A140E5BA1504197A3700DBC565541B81E851B64A15041B81E851BAD565541FE01E0F764A150414B1B50CCAF565541B795418865A15041C5D5548FB1565541B96BCFB37CA1504137F6914BA856554114AE479165A15041B81E85ABB156554114AE478167A1504185EB5108B85655410D00000087E4A3EC80A15041D1B6D89BDA565541551FA3EC80A150418B5AD99BDA56554158E5A3EC80A15041E6B6D89BDA56554120AE64B377A15041A1E65644E25655410505B50272A150418AED8739E7565541155CE8BD70A1504109C789AEE9565541D433521F70A15041593BC0E1EA565541D7A370ED6EA15041000000B0E55655411F85EB2173A15041C3F5283CE0565541B81E850B79A15041F6285C1FE156554185EB51A87BA15041666666F6DE565541A4703DDA7DA150415C8FC225DD56554187E4A3EC80A15041D1B6D89BDA56554111000000B8E3A3EC80A15041BDB6D89BDA565541A4703D8A81A150419A999919DA5655416E482B8681A1504153F45512DA565541AD806B6585A15041252D49D4D6565541EC51B88E82A150415C8FC275D356554185EB513880A1504185EB51B8CF5655410000006080A15041B81E85ABCB5655415C8FC25583A1504152B81EF5C956554148E17A8485A15041333333D3CB5655413D0AD77386A150419A9999C9CE565541CDCCCC5C85A15041F6285CBFD15655413D0AD72386A15041D7A3709DD356554131AD53AC89A15041C8A41421D356554105CC114784A150418C4896DDD75655410DE5A3EC80A150411CB7D89BDA565541B693A4EC80A15041C426D89BDA565541B8E3A3EC80A15041BDB6D89BDA56554104000000FFBF7D9C7FA150418348CE21A756554101FC32BB84A15041997EEC00AE56554185EB514884A150418FC2F588AD565541FFBF7D9C7FA150418348CE21A75655410800000048E17A2462A15041295C8F02CB56554148E17A0457A15041666666A6D3565541E6771AA353A1504149754B78CC565541333333A354A1504185EB51D8CB565541C3F5286C5CA150418FC2F548C0565541333333735EA1504114AE4791C6565541C3F528DC5FA150410AD7A3F0CA56554148E17A2462A15041295C8F02CB565541060000007B14AE1776A150410AD7A390CF565541666666F677A15041C3F528BCCA565541295C8FF27CA150415C8FC2C5D3565541B81E852B7CA1504133333393D6565541D7A3705D79A15041CDCCCCDCD45655417B14AE1776A150410AD7A390CF56554104000000547375186CA15041BD651A00F3565541333333336CA15041A4703D7AF2565541BA79F4B86CA1504192404177F1565541547375186CA15041BD651A00F3565541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>158936 - 158819
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+0106000000010000000103000000010000000B0000007B14AE67733E5141000000D0950C554114AE47E17E3E5141EC51B8DEA40C554152B81E05813E5141B81E85ABA70C55419A9999498E3E5141C3F5280CB90C55411F85EB01913E5141295C8F72B70C5541E17A141E963E514148E17A04B40C554148E17A64983E514185EB5128B20C55410AD7A3C08A3E51417B14AE47A00C554148E17A047D3E5141666666468E0C554152B81E857B3E514114AE47B18F0C55417B14AE67733E5141000000D0950C5541
+</a>
+
+<b>
+0106000000040000000103000000010000001B000000EAC5BC42673E5141C387E819A60C554139759E606D3E5141AB2B4E1BAD0C5541116019CB6E3E5141137FD8B9AE0C5541412896A1723E51412E3618BDB30C554151DB410B793E5141558D24CFBB0C554128396EA37B3E51412215B625BF0C554191DF62C07C3E5141BB8C5A94C00C55410C1E13C67D3E5141511E0FE5C10C55413CB77412803E514151447BD1C00C55417AB63DE3823E51415313AF52BF0C5541FF582FEC893E51416F223B96BB0C554168009F568E3E5141B3228004B90C5541E7D00F48803E5141857327B4A60C554161263240733E5141FC7DCBED950C554173801F84723E5141942EB77B960C554144EF6C1F723E5141B5CFB3C7960C55417DC9BCCD703E51413DF8FDDD970C55415D02B4696E3E51412A0E5E94990C55411A823DAD673E514159C2A7A99E0C55411B9F0FFB663E514112371C309F0C5541A86B1E87643E5141DF860B01A10C5541E0BD7385643E5141B7D64102A10C5541637DEF81643E51412026FFFDA00C55413BF680E2633E5141A9AD1193A10C5541A76967E6633E5141A9AD1193A10C554176B0EEDC633E5141B7464798A10C5541EAC5BC42673E5141C387E819A60C554101030000000100000005000000326D8AB1633E51411CD224B0A10C5541C3A85EA9633E5141BDA20AA6A10C55411EB93FA2633E5141B4F76DABA10C55416DE19BA9633E5141FB9E81B4A10C5541326D8AB1633E51411CD224B0A10C5541010300000001000000070000002EAB141D703E51418488F543980C55414AB30340733E51413BB28FED950C5541FCD8375D733E5141AAFDCBD7950C55417AB8D053733E5141B79B85CB950C55413233D7B66C3E5141639984CC9A0C554108A777D66F3E5141F5AF9578980C55412EAB141D703E51418488F543980C554101030000000100000005000000823BD54F7D3E51414C01C248C20C55413C3860DA7D3E51412A0C2EFFC10C5541A48DAC6C7D3E51418C38FF26C20C5541BE6A07767D3E514173E50333C20C5541823BD54F7D3E51414C01C248C20C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>159935 - 310830
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+0106000000010000000103000000010000005A0000009A9999F98040514114AE4701DC0E554152B81E557F405141E17A140EDC0E5541713D0A477F405141B81E85EBDC0E5541000000F07F4051410AD7A390EA0E55410AD7A300BC40514148E17AF4F40E5541A4703D6ABE405141E17A146EF50E5541713D0A77BE405141B81E854BEC0E5541D7A3702DC14051417B14AEA7E70E55418FC2F5C8C3405141295C8F82E80E5541C3F528BCC740514114AE4761EE0E55419A999949CC405141EC51B87EF20E5541A4703D0ACE405141F6285C7FF80E554100000080D1405141A4703DEAE70E5541CDCCCC3CD3405141EC51B81EE40E5541B81E854BD64051411F85EBB1E10E5541D7A3709DD9405141AE47E12AE10E5541AE47E18ADF4051413D0AD763E20E55415C8FC205F4405141B81E854BEF0E5541C3F528BC0341514166666606FC0E55418FC2F51820415141D7A370CD180F554114AE4781284151419A999999210F5541000000C035415141A4703D3A2E0F55417B14AEA73B4151411F85EB313B0F554185EB51B84441514100000000450F5541666666264B415141EC51B85E470F5541EC51B80E53415141A4703DCA460F554152B81E055E415141E17A14CE500F55410AD7A390664151413D0AD7035D0F5541333333736F415141AE47E1AA640F554166666646704151417B14AEF7620F5541295C8F8271415141A4703D2A5F0F5541713D0A377241514152B81E755B0F55410AD7A38072415141EC51B8BE560F5541B81E859B714151415C8FC2A5510F5541000000407041514114AE47E14D0F55418FC2F5086E415141CDCCCC1C490F55418FC2F58863415141AE47E12A390F55411F85EB415C41514114AE47712F0F554148E17A64554151413D0AD753270F554152B81E3554415141D7A370ED250F5541000000B04B415141F6285CAF1C0F5541000000A04741514152B81ED5180F5541666666F6424151419A999969140F554148E17A643D415141CDCCCC3C0F0F5541E17A145E3A415141295C8F020D0F554152B81E6539415141AE47E14A0C0F5541EC51B86E3541514133333373090F5541F6285CDF2E415141A4703DAA050F5541EC51B8CE23415141713D0A47000F55417B14AEB71A41514166666686FB0E5541EC51B8AE16415141C3F528CCF80E55411F85EBE112415141E17A141EF50E554114AE47810F415141C3F5281CF10E5541CDCCCC0C0A415141295C8FC2E80E554185EB51E80741514152B81EC5E30E55417B14AE5707415141C3F528CCE00E554166666636FF40514100000010E00E5541EC51B85EFB405141E17A144EDF0E5541713D0AC7F74051410AD7A3F0DD0E5541AE47E18AF44051413D0AD7E3DB0E55418FC2F548EE40514166666626D40E55418FC2F598EC405141295C8F12D30E5541D7A370ADEA40514114AE4771D20E5541EC51B8DEDF405141E17A146ED50E5541E17A146EDC405141B81E850BD50E55417B14AEE7D94051410AD7A370D30E5541F6285CDFD24051413D0AD703D20E55411F85EB21D040514185EB5128D50E554114AE4761CE405141AE47E12AD70E5541D7A370EDCB40514114AE4711D90E5541000000D0C74051411F85EB21DB0E5541AE47E1AAC240514185EB5198E00E55418FC2F5C8BD40514166666636E30E5541AE47E18AB440514152B81E95E30E554185EB5178B340514100000070E30E554152B81EE5B0405141713D0A17E30E554152B81E85AE40514152B81EC5E20E5541B81E857BAC40514185EB51C8E10E55419A999909AA4051419A999999E00E55410AD7A3E0A540514152B81E95DF0E5541C3F5287CA2405141000000C0DE0E5541AE47E16AA0405141EC51B83EDE0E554152B81EE59D40514100000090DC0E5541D7A3700D9C40514152B81E55DB0E55410000006098405141C3F5281CDB0E55410000003095405141A4703DEADA0E5541C3F5285C90405141E17A14CEDB0E55417B14AEC78840514148E17A34DD0E5541C3F5287C8440514152B81E55DC0E55419A9999F98040514114AE4701DC0E5541
+</a>
+
+<b>
+0106000000010000000103000000010000003C000000AE47E14A0541514162105821FD0E55414A0C02930B415141560E2D9A020F554108AC1C0211415141D578E9B6080F554154E3A56B124151414E621098090F554142FD178422415141B0264B551B0F554114AE4781284151419A999999210F5541C22E775D2B415141BA6AA653240F55414260E5882B41514148E17A74240F5541D62AE7CB3241514188AD64692B0F5541000000C035415141A4703D3A2E0F55417B14AEA73B4151411F85EB313B0F5541D521C29C43415141185A4ACD430F55418D976E3A49415141C520B09A460F554176B67B7D4D4151418644C732470F5541998BD4864C4151410950711D4A0F5541F6285C274F41514179E926714A0F554193AE930350415141FDA32BDD480F55412573182D504151416C53A192470F5541BE9F1ADF5241514160E5D0F2470F5541F2D24D3A5A41514185EB51704E0F5541F6285C7F5F41514166666626540F55419E9F21436441514182D77CB9590F5541190456CE64415141AC1C5A5C5A0F55416ABC74E36B415141C976BEDF600F5541986E122B704151417593180C5E0F554108AC1CB270415141B81E85835F0F55411D5A64DB6D415141643BDFAF620F5541EFC881996F4151418FC5F15B640F554166666646704151417B14AEF7620F554106B467D470415141F5C5BAD1620F5541D122DB41724151418B6CE7635F0F55415A643B47734151411F85EB995A0F554179E92661734151417F6ABC3C570F5541D9CEF73B73415141FA7E6AB4550F5541B072688972415141295C8F7A510F5541B4C8766E7041514114AE47914C0F5541AC1C5ABC6D415141B4C876FE470F554104560E056B415141AE47E1FA420F55418D976ECA66415141713D0AA73C0F5541986E12EB5F4151417F6ABCFC320F554123DBF90E5A41514123DBF98E2B0F5541E7FBA95156415141B81E855B270F5541713D0A9F454151418D976E82150F5541CFF753533F415141621058B90F0F5541355EBA813B4151416666667E0C0F5541C1CAA19D37415141666666C6090F55410000008829415141355EBA31020F55417D3F35C617415141B81E859BF80E5541AAF1D23D104151418D976E9AF00E554121B072800A415141BA490C2AE80E5541F2D24D920A4151418D976E12E80E55417242709A0A4151417A67E9FDE70E55412DB29DB7084151411283C0E2E20E554108AC1CD20841514152B81EFDE20E5541295C8FB207415141EC51B8F6E00E55413D0AD733054151418195433BE00E55419F5A1AD8024151416FF60C64E00E554160E5D0CAFF405141F4FDD498E00E5541F148B84104415141F563B03CFC0E5541AE47E14A0541514162105821FD0E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>164649 - 3096479
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -428 </desc>
+<a>
+0106000000010000000103000000010000001B000000713D0A375F3951413D0AD7C391095541CDCCCCFC5B395141A4703D6A920955411F85EBA15839514152B81EA593095541A4703D2A56395141EC51B80E950955411F85EB6153395141295C8F229709554148E17A0451395141AE47E1AA9909554148E17AB448395141F6285CAFA50955417B14AE6746395141F6285C9FA90955415C8FC2D54439514100000010AD09554185EB51E84239514133333303B30955411F85EBE14339514114AE4751B3095541A4703D9A443951418FC2F588B1095541CDCCCCAC45395141C3F528FCB10955419A99995945395141C3F528CCB209554185EB51184B39514114AE4731B5095541A4703D9A4E39514152B81E05B6095541A4703DCA523951415C8FC2F5B509554152B81E45543951415C8FC215B4095541D7A3708D553951418FC2F5F8B1095541A4703D7A65395141CDCCCC4CB0095541A4703D6A6539514133333363AF095541713D0A2767395141D7A3704DAF09554152B81E756A395141F6285C8FA1095541333333036E3951418FC2F5C892095541E17A146E66395141713D0AE791095541AE47E18A6239514148E17AA491095541713D0A375F3951413D0AD7C391095541
+</a>
+
+<b>
+0106000000010000000103000000010000002C0000002FE8D60C51395141C6AFEDA1990955417B69CC0251395141219D4FAD99095541DC42BC334F3951410796C44A9C095541F655810A4E395141ED527AF89D0955410186271E4C395141C2C546C0A009554192F9B0AA4A395141F3514ED9A209554148E17AB448395141F6285CAFA50955417B14AE6746395141F6285C9FA90955415C8FC2D54439514100000010AD0955413CD968C24339514109B3FA61B009554185EB51E84239514133333303B30955411F85EBE14339514114AE4751B3095541A4703D9A443951418FC2F588B1095541CDCCCCAC45395141C3F528FCB10955419A99995945395141C3F528CCB209554135BFB5F2463951416824B676B309554184B5955A473951418FE903A2B3095541073F21A649395141DE1CF496B409554189A48C954A395141EAF0E9D0B1095541F097032854395141F454A23AB409554152B81E45543951415C8FC215B4095541D7A3708D553951418FC2F5F8B1095541328A88DD553951417458066DAE0955413D68F07951395141A98CBB8EAE0955410E064BAA46395141B06EA32BAD095541C1DDDFFD45395141894B8415AD0955413C0E6AD84539514183E7B510AD095541A9E9E91B47395141E01B9CBFA9095541D9179A3247395141A02A0F84A9095541D221C1DA47395141F7E57D8FA8095541B479C39748395141CEF0967CA7095541EDE3F42A49395141978DADA5A609554191EAC3DC493951411A29C6A2A5095541B15C91C94B39514152C824D7A20955411742F1E94C3951416078B833A109554151A230584E395141D43A091F9F0955415EAD37084F395141BECE031F9E095541240AC3AA4F39514180A49A329D095541FE823D1050395141DD8D029F9C095541AC7F57B8513951410A312E369A095541B0E9BC0652395141D57628C49909554196FE2F2F52395141AAA2538999095541EF092B9A51395141331D970A990955412FE8D60C51395141C6AFEDA199095541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>164649 - 3289198
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -428 </desc>
+<a>
+0106000000010000000103000000010000001B000000713D0A375F3951413D0AD7C391095541CDCCCCFC5B395141A4703D6A920955411F85EBA15839514152B81EA593095541A4703D2A56395141EC51B80E950955411F85EB6153395141295C8F229709554148E17A0451395141AE47E1AA9909554148E17AB448395141F6285CAFA50955417B14AE6746395141F6285C9FA90955415C8FC2D54439514100000010AD09554185EB51E84239514133333303B30955411F85EBE14339514114AE4751B3095541A4703D9A443951418FC2F588B1095541CDCCCCAC45395141C3F528FCB10955419A99995945395141C3F528CCB209554185EB51184B39514114AE4731B5095541A4703D9A4E39514152B81E05B6095541A4703DCA523951415C8FC2F5B509554152B81E45543951415C8FC215B4095541D7A3708D553951418FC2F5F8B1095541A4703D7A65395141CDCCCC4CB0095541A4703D6A6539514133333363AF095541713D0A2767395141D7A3704DAF09554152B81E756A395141F6285C8FA1095541333333036E3951418FC2F5C892095541E17A146E66395141713D0AE791095541AE47E18A6239514148E17AA491095541713D0A375F3951413D0AD7C391095541
+</a>
+
+<b>
+0106000000010000000103000000010000002C0000002FE8D60C51395141C6AFEDA1990955417B69CC0251395141219D4FAD99095541DC42BC334F3951410796C44A9C095541F655810A4E395141ED527AF89D0955410186271E4C395141C2C546C0A009554192F9B0AA4A395141F3514ED9A209554148E17AB448395141F6285CAFA50955417B14AE6746395141F6285C9FA90955415C8FC2D54439514100000010AD0955413CD968C24339514109B3FA61B009554185EB51E84239514133333303B30955411F85EBE14339514114AE4751B3095541A4703D9A443951418FC2F588B1095541CDCCCCAC45395141C3F528FCB10955419A99995945395141C3F528CCB209554135BFB5F2463951416824B676B309554184B5955A473951418FE903A2B3095541073F21A649395141DE1CF496B409554189A48C954A395141EAF0E9D0B1095541F097032854395141F454A23AB409554152B81E45543951415C8FC215B4095541D7A3708D553951418FC2F5F8B1095541328A88DD553951417458066DAE0955413D68F07951395141A98CBB8EAE0955410E064BAA46395141B06EA32BAD095541C1DDDFFD45395141894B8415AD0955413C0E6AD84539514183E7B510AD095541A9E9E91B47395141E01B9CBFA9095541D9179A3247395141A02A0F84A9095541D221C1DA47395141F7E57D8FA8095541B479C39748395141CEF0967CA7095541EDE3F42A49395141978DADA5A609554191EAC3DC493951411A29C6A2A5095541B15C91C94B39514152C824D7A20955411742F1E94C3951416078B833A109554151A230584E395141D43A091F9F0955415EAD37084F395141BECE031F9E095541240AC3AA4F39514180A49A329D095541FE823D1050395141DD8D029F9C095541AC7F57B8513951410A312E369A095541B0E9BC0652395141D57628C49909554196FE2F2F52395141AAA2538999095541EF092B9A51395141331D970A990955412FE8D60C51395141C6AFEDA199095541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>165181 - 233035
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -501 </desc>
+<a>
+0106000000010000000103000000010000000E000000B81E85CBF2435141AE47E18ADD075541666666C6F24351413D0AD723E8075541E17A14FEF3435141C3F528ECEF075541B81E85BBF44351419A9999D9F10755419A9999E91E4451417B14AE27EE075541333333B31E445141B81E854BDD0755410AD7A3702144514152B81E35C70755417B14AE271E44514100000090C40755413D0AD7D31B445141C3F528CCC4075541A4703D2A1844514166666616C507554185EB5198FD4351418FC2F558CA075541CDCCCC0CF243514114AE47E1CC075541C3F5284CF24351411F85EBA1CF075541B81E85CBF2435141AE47E18ADD075541
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000000DDE5935F3435141F3953AA0CC075541C98556BCF34351415D15096ED4075541B37933F6F34351410A2A1D22D9075541589393251144514158AD28A1D50755414A68EFD31F4451411AEEB7E4D30755418635785E21445141C8577D26C70755414720D736214451417BC69406C7075541472DE00E21445141081267E6C6075541CFD009A620445141F07DFD91C60755414B8AF81D15445141AB9E63F3C607554148E17A141244514114AE47E1C6075541F36A8620F6435141E85854FCCB075541AE938496F4435141232EC252CC0755410DDE5935F3435141F3953AA0CC075541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>165187 - 214188
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -43 </desc>
+<a>
+01060000000100000001030000000100000034000000F6285C8F45445141F6285CDFC4075541C3F5285C4344514148E17A14C5075541B81E855B3E445141333333F3C507554148E17A543B445141B81E85BBC5075541713D0A37384451417B14AEE7C5075541666666B636445141713D0AD7C5075541EC51B88E344451413D0AD783C9075541F6285CAF33445141D7A370CDCA075541A4703D6A32445141AE47E12ACD075541C3F5284C3144514185EB5138D0075541AE47E13A3044514100000010D4075541EC51B80E2F445141295C8F42D9075541295C8F422E44514152B81E15DD075541000000D02C445141295C8F52E1075541AE47E12A2B44514133333353E507554152B81E452A44514114AE47A1E8075541EC51B84E29445141AE47E1FAEC0755415C8FC2D528445141333333C3EF07554185EB51B828445141C3F5281CF1075541000000A02844514152B81EB5F3075541C3F5280C28445141B81E858BF6075541CDCCCCCC26445141B81E85CBFB07554185EB51C82544514185EB5188FF0755416666660625445141AE47E1BA01085541AE47E1DA23445141713D0AA703085541F6285C9F22445141D7A3704D080855417B14AEF725445141EC51B86E0A0855417B14AE9729445141333333930B0855418FC2F5782D4451410AD7A3A00D0855415C8FC20530445141295C8F320F0855411F85EB3133445141D7A3704D100855417B14AE173744514148E17AB4FF0755418FC2F5D838445141B81E853BF8075541F6285C4F3B44514185EB5158F90755417B14AE673B4451413D0AD7D3F8075541AE47E1DA3E4451410AD7A370F8075541B81E852B3F4451413D0AD7D3F6075541713D0AE7414451419A9999A9F7075541CDCCCC8C43445141C3F528ECF807554114AE479143445141A4703D1AF60755413D0AD713444451419A9999C9F1075541D7A3706D45445141333333F3E807554152B81EA54644514114AE47A1E1075541A4703D4A48445141E17A14DED90755411F85EB414A4451413D0AD793D3075541E17A14BE4D445141D7A3700DC9075541B81E857B4A445141B81E858BC6075541B81E85CB4944514114AE4731C707554114AE47114944514114AE4781C6075541713D0AA747445141666666E6C5075541295C8FA2474451418FC2F5D8C4075541F6285C8F45445141F6285CDFC4075541
+</a>
+
+<b>
+0106000000010000000103000000010000004A000000AF44380A25445141677ECCAF010855416666660625445141AE47E1BA01085541AE47E1DA23445141713D0AA70308554182EC8E5023445141131FE7B00508554132795C9F22445141EDD6704D08085541BB2F6E122344514172AAB6960808554164A0A9E424445141DCC898BF090855417118AFF7254451416B51B86E0A08554167F508AA264451412EBDEEA60A0855417B14AE9729445141333333930B085541A7C7B80D2D445141E25AE9670D085541E8E6F4782D445141E535A3A00D085541F3C5C305304451415C748F320F0855415828A92B314451417465ED980F0855411F85EB3133445141D7A3704D10085541563F871B36445141DC8944E603085541784F20D9364451419980DDBE000855413261CD12374451415A3FB4C0FF075541D6D10A7D364451411C35DD5C000855412704DF2D37445141F1E67CFAFC0755418E19F4D83844514150308C3BF80755418FC2F5D838445141B81E853BF80755413E2AD7D93A445141C1383A23F9075541AC2B5C4F3B445141C0DC5158F90755412ADCC5523B445141DD8DBA45F907554177D036533B44514119405343F90755417BB388533B445141D72E9541F9075541F6A9D35E3B445141210B1104F9075541345FAD673B4451412A80D6D3F80755411A03E1DA3E445141F6D7A370F80755417FB511EF3E445141EE674A09F8075541B81E852B3F4451413D0AD7D3F6075541A7370AE741445141282D98A9F7075541B9CDCC8C43445141FD6028ECF8075541D594E68E43445141B753A599F7075541665C46914344514176BD3C1AF6075541366FA0DE43445141FB86D38BF30755413D0AD713444451419A9999C9F1075541D7A3706D45445141333333F3E807554152B81EA54644514114AE47A1E1075541595ABEDB464451416915859FE007554180843C4A48445141E16714DED9075541E4F7F430494451418A4E7DFCD60755411F85EB414A4451413D0AD793D3075541AA8AC2E74B445141B9DBD899CE075541E07613BE4D445141DBDB6F0DC9075541B81E85CB4944514114AE4731C707554114AE47114944514114AE4781C6075541713D0AA747445141666666E6C5075541D96BCDAC434451419E8B5208C6075541829BB9AE3E445141B21C99C9C6075541AD393C9A3644514104EE6F5DC607554171CA9AC936445141B3A151D8CA0755412BAB65A635445141B618153ECB0755419C3171CD35445141A03ED733D10755412EBD477135445141CDF7FE8FD6075541505DAF07354451413160851BDA0755411F85EBE13344514185EB5148DE075541016901B0304451417A0134A3DD0755418CF483DB2F445141CE1652C8DF0755412E18E22A2E4451417469158EDF075541029CFFCF2D445141D957C345E1075541587FB82E2D445141B48109C7E20755410EBDC3152C445141A60D850BE407554126E613CE2A445141135D3C5AEA07554144215B6F29445141FC41F668EF07554155E8327329445141DC2A0AC7EF0755414CA5E1C629445141D168BE90F107554156412F53294451419E249FBAF40755416BF7290C2844514181AB848BF6075541CB2ACDCC264451414AB784CBFB0755414C410CA82644514153C38452FC07554185EB51C82544514185EB5188FF075541AF44380A25445141677ECCAF01085541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>239735 - 255556
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+0106000000010000000103000000010000000C0000008FC2F588D0C05041295C8F72FCCE544148E17AA4D3C05041E17A14CEF6CE5441B81E858BD7C0504100000050EACE544114AE47B1B6C0504114AE4791BACE5441CDCCCCFCB1C05041AE47E16ABECE54418FC2F568A5C050419A9999F9C9CE5441A4703D5A9BC05041C3F5287CD4CE5441C3F5282CA0C050415C8FC285D6CE54413D0AD773A4C0504166666686D9CE544133333303A8C0504152B81E65DDCE54419A9999B9C6C0504185EB51080ACF54418FC2F588D0C05041295C8F72FCCE5441
+</a>
+
+<b>
+0106000000010000000103000000010000002100000076956D74D5C05041CDE65746E7CE544185DD9606D5C050419E92B6A6E6CE5441450FFEDAD1C05041000A03E1F0CE5441F39A11F7CFC05041CDC92A4AF5CE544136101EEACDC050413B6136DDF9CE5441C93CF05BCCC05041E69BE3B3FCCE544125E65BEAC5C05041A8B9A68605CF54418473992EC5C050417F317A8104CF5441CB220167A9C050416BD0FA22DCCE5441610DC2BAA5C0504144BB6F2AD8CE54418A4805E3A0C050413EA42DCCD4CE54411C6DC9D9A0C0504170223EC7D4CE5441A4F5C1E19CC050417B0707E3D2CE5441D97C9C659BC0504116F14670D4CE54412E4B663F9DC0504103DF3E49D5CE544118F6282CA0C05041E68EC285D6CE5441FD09D773A4C05041DB656686D9CE5441BF333303A8C0504125B71E65DDCE5441310BAB22B7C05041E8E2E75FF3CE54415C784A70BDC050415C832489FCCE5441309999B9C6C05041ECEA51080ACF54411F6F8D61C7C05041B5C9BC1F09CF54413888D27DC7C0504142EDF7F008CF5441F671DB11C8C050413EB2962B08CF54411AB106C3CCC050419F3C32AC01CF54418FC2F588D0C05041295C8F72FCCE5441B18719B8D1C05041E7E4204CFACE544100C0F905D3C050419123E3EDF7CE54414E1E3DC0D3C05041A9CBD669F6CE54410D188748D4C05041CF26F0C0F4CE5441ACB47F08D6C05041D6F7E926EFCE54415C5D8A85D7C050414A564F47EACE544176956D74D5C05041CDE65746E7CE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>239735 - 350872
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+0106000000010000000103000000010000000C0000008FC2F588D0C05041295C8F72FCCE544148E17AA4D3C05041E17A14CEF6CE5441B81E858BD7C0504100000050EACE544114AE47B1B6C0504114AE4791BACE5441CDCCCCFCB1C05041AE47E16ABECE54418FC2F568A5C050419A9999F9C9CE5441A4703D5A9BC05041C3F5287CD4CE5441C3F5282CA0C050415C8FC285D6CE54413D0AD773A4C0504166666686D9CE544133333303A8C0504152B81E65DDCE54419A9999B9C6C0504185EB51080ACF54418FC2F588D0C05041295C8F72FCCE5441
+</a>
+
+<b>
+0106000000010000000103000000010000002100000076956D74D5C05041CDE65746E7CE544185DD9606D5C050419E92B6A6E6CE5441450FFEDAD1C05041000A03E1F0CE5441F39A11F7CFC05041CDC92A4AF5CE544136101EEACDC050413B6136DDF9CE5441C93CF05BCCC05041E69BE3B3FCCE544125E65BEAC5C05041A8B9A68605CF54418473992EC5C050417F317A8104CF5441CB220167A9C050416BD0FA22DCCE5441610DC2BAA5C0504144BB6F2AD8CE54418A4805E3A0C050413EA42DCCD4CE54411C6DC9D9A0C0504170223EC7D4CE5441A4F5C1E19CC050417B0707E3D2CE5441D97C9C659BC0504116F14670D4CE54412E4B663F9DC0504103DF3E49D5CE544118F6282CA0C05041E68EC285D6CE5441FD09D773A4C05041DB656686D9CE5441BF333303A8C0504125B71E65DDCE5441310BAB22B7C05041E8E2E75FF3CE54415C784A70BDC050415C832489FCCE5441309999B9C6C05041ECEA51080ACF54411F6F8D61C7C05041B5C9BC1F09CF54413888D27DC7C0504142EDF7F008CF5441F671DB11C8C050413EB2962B08CF54411AB106C3CCC050419F3C32AC01CF54418FC2F588D0C05041295C8F72FCCE5441B18719B8D1C05041E7E4204CFACE544100C0F905D3C050419123E3EDF7CE54414E1E3DC0D3C05041A9CBD669F6CE54410D188748D4C05041CF26F0C0F4CE5441ACB47F08D6C05041D6F7E926EFCE54415C5D8A85D7C050414A564F47EACE544176956D74D5C05041CDE65746E7CE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>168472 - 3152614
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000000F000000295C8F62F9C1504148E17AF436945441C3F5285CFAC150411F85EBB136945441295C8F0233C25041CDCCCCAC2794544185EB51E832C2504152B81EC5269454418FC2F58830C25041F6285CDF1F945441295C8F222FC250418FC2F5C81C945441B81E85EB2BC25041A4703DFA1094544152B81EF52AC250411F85EB310B945441AE47E18A29C250417B14AE470A945441E17A14BEF9C15041F6285CDF16945441A4703D7AE1C150413D0AD7231A94544152B81E65E0C15041C3F5288C1B945441C3F528CCE3C1504114AE47913694544148E17A54E5C150417B14AE473C945441295C8F62F9C1504148E17AF436945441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000300A86C409C25041953E9BA6129454413C8BFB3A0DC250414C73C6581E94544187E3D4522DC2504107A2DB21169454413B3D0ADB2CC250415C6DE8691494544165988B252CC25041166858CF1194544171AE9FE92BC250419706D9EE10945441D9A0C6CA2BC25041F92B8535109454410DA9E0AB2BC2504165F7687C0F94544180F44D8B2BC25041F33744B90E9454419C4BF7142BC2504126193D180C945441AC2065E82AC25041727ED4380B9454417B329C6E2AC25041E9C450DE0A9454417EE7B26A29C25041D56828500A945441E5055C241CC250416FD46BCF0D945441300A86C409C25041953E9BA612945441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>168472 - 3543808
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000000F000000295C8F62F9C1504148E17AF436945441C3F5285CFAC150411F85EBB136945441295C8F0233C25041CDCCCCAC2794544185EB51E832C2504152B81EC5269454418FC2F58830C25041F6285CDF1F945441295C8F222FC250418FC2F5C81C945441B81E85EB2BC25041A4703DFA1094544152B81EF52AC250411F85EB310B945441AE47E18A29C250417B14AE470A945441E17A14BEF9C15041F6285CDF16945441A4703D7AE1C150413D0AD7231A94544152B81E65E0C15041C3F5288C1B945441C3F528CCE3C1504114AE47913694544148E17A54E5C150417B14AE473C945441295C8F62F9C1504148E17AF436945441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000300A86C409C25041953E9BA6129454413C8BFB3A0DC250414C73C6581E94544187E3D4522DC2504107A2DB21169454413B3D0ADB2CC250415C6DE8691494544165988B252CC25041166858CF1194544171AE9FE92BC250419706D9EE10945441D9A0C6CA2BC25041F92B8535109454410DA9E0AB2BC2504165F7687C0F94544180F44D8B2BC25041F33744B90E9454419C4BF7142BC2504126193D180C945441AC2065E82AC25041727ED4380B9454417B329C6E2AC25041E9C450DE0A9454417EE7B26A29C25041D56828500A945441E5055C241CC250416FD46BCF0D945441300A86C409C25041953E9BA612945441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>173005 - 2916661
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+0106000000010000000103000000020000003A0000005C8FC25568FE50410000007018525441EC51B84E63FE5041E17A140E16525441713D0A875FFE504185EB51F8135254419A9999F95EFE5041AE47E18A13525441EC51B89E5EFE50410AD7A31015525441CDCCCCAC5DFE5041D7A3709D14525441F6285C8F5DFE5041E17A14CE135254418FC2F5685DFE5041D7A370AD125254413D0AD7E351FE50417B14AE57185254418FC2F54859FE50418FC2F5A8205254419A9999A95CFE5041713D0AB723525441713D0A675FFE50419A9999492452544185EB515862FE5041333333732D52544148E17A9462FE50410AD7A310315254416666662662FE50411F85EB113352544152B81EF561FE50419A9999B93552544114AE471162FE5041E17A148E3B5254413333338362FE5041333333633F525441713D0AE762FE504133333363425254410AD7A3E062FE504148E17A7445525441F6285C1F66FE504152B81E454D525441EC51B81E6AFE504185EB512856525441000000906FFE50411F85EB515F5254410000001070FE5041C3F5287C645254411F85EB8170FE50419A9999096952544185EB514878FE5041295C8FB276525441295C8F727CFE5041295C8FB27C5254415C8FC25580FE5041333333A381525441D7A3700D86FE5041E17A14FE86525441E17A141E8CFE50417B14AE97855254415C8FC24590FE5041000000C0835254418FC2F52893FE5041AE47E1EA81525441C3F528FC89FE50413D0AD743765254410000003086FE5041C3F528BC6C52544185EB51B889FE50413D0AD7336C525441295C8F628DFE50418FC2F5886F525441C3F5280C93FE504114AE471171525441AE47E1FA95FE50411F85EB116D5254410AD7A3609DFE5041AE47E1AA6E525441CDCCCCBCA1FE50417B14AE37705254419A999979B1FE5041E17A144E6C525441D7A3707DB0FE5041F6285C1F6A525441C3F5281CAEFE50410AD7A38063525441C3F5286CADFE50411F85EB3160525441AE47E1DAACFE5041E17A144E5B5254418FC2F5E8ABFE5041295C8FE258525441C3F528FCA6FE504152B81E8552525441000000309EFE50417B14AED745525441B81E85DB94FE5041B81E852B3B525441EC51B84E8FFE5041295C8F8234525441CDCCCCBC89FE5041713D0A472D525441333333A385FE5041CDCCCC4C2852544185EB513882FE504133333303255254410AD7A3407EFE504148E17A342252544185EB51F879FE50415C8FC215205254419A9999696DFE5041B81E85BB1A5254419A9999196BFE5041000000C0195254415C8FC25568FE50410000007018525441050000007B14AE9779FE5041000000C04A52544185EB51A87FFE50411F85EBF1535254410000002078FE504166666636555254411F85EB3173FE5041713D0A374D5254417B14AE9779FE5041000000C04A525441
+</a>
+
+<b>
+010600000001000000010300000001000000160000000AF14CA395FE5041231C25A96B52544137C4A7DB99FE50415F4637816C5254418B76F46B9DFE5041E82E2D096C525441CE946F24A3FE504184E80EA16A52544161EB02FDA9FE50414681E2906852544140C35F4DAEFE5041A74DCC8867525441C3F5281CAEFE50410AD7A38063525441C3F5286CADFE50411F85EB3160525441379145FEACFE5041CC9E0A7F5C5254419757ABECACFE50415EA65DE75B525441AE47E1DAACFE5041E17A144E5B525441A3919E84ACFE5041940B2E715A52544159DEB307ACFE50411B804931595254418FC2F5E8ABFE5041295C8FE258525441556E4580AAFE504166336910575254417579B673A9FE5041147154B555525441BFA3823EA7FE50415CC5DEDA52525441E7B08337A1FE5041BF1239354A52544137F672828BFE5041786F22BF5352544137F672828BFE5041CAE4541756525441DD1DF26A91FE5041ED174758615254410AF14CA395FE5041231C25A96B525441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>173005 - 5249061
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+0106000000010000000103000000020000003A0000005C8FC25568FE50410000007018525441EC51B84E63FE5041E17A140E16525441713D0A875FFE504185EB51F8135254419A9999F95EFE5041AE47E18A13525441EC51B89E5EFE50410AD7A31015525441CDCCCCAC5DFE5041D7A3709D14525441F6285C8F5DFE5041E17A14CE135254418FC2F5685DFE5041D7A370AD125254413D0AD7E351FE50417B14AE57185254418FC2F54859FE50418FC2F5A8205254419A9999A95CFE5041713D0AB723525441713D0A675FFE50419A9999492452544185EB515862FE5041333333732D52544148E17A9462FE50410AD7A310315254416666662662FE50411F85EB113352544152B81EF561FE50419A9999B93552544114AE471162FE5041E17A148E3B5254413333338362FE5041333333633F525441713D0AE762FE504133333363425254410AD7A3E062FE504148E17A7445525441F6285C1F66FE504152B81E454D525441EC51B81E6AFE504185EB512856525441000000906FFE50411F85EB515F5254410000001070FE5041C3F5287C645254411F85EB8170FE50419A9999096952544185EB514878FE5041295C8FB276525441295C8F727CFE5041295C8FB27C5254415C8FC25580FE5041333333A381525441D7A3700D86FE5041E17A14FE86525441E17A141E8CFE50417B14AE97855254415C8FC24590FE5041000000C0835254418FC2F52893FE5041AE47E1EA81525441C3F528FC89FE50413D0AD743765254410000003086FE5041C3F528BC6C52544185EB51B889FE50413D0AD7336C525441295C8F628DFE50418FC2F5886F525441C3F5280C93FE504114AE471171525441AE47E1FA95FE50411F85EB116D5254410AD7A3609DFE5041AE47E1AA6E525441CDCCCCBCA1FE50417B14AE37705254419A999979B1FE5041E17A144E6C525441D7A3707DB0FE5041F6285C1F6A525441C3F5281CAEFE50410AD7A38063525441C3F5286CADFE50411F85EB3160525441AE47E1DAACFE5041E17A144E5B5254418FC2F5E8ABFE5041295C8FE258525441C3F528FCA6FE504152B81E8552525441000000309EFE50417B14AED745525441B81E85DB94FE5041B81E852B3B525441EC51B84E8FFE5041295C8F8234525441CDCCCCBC89FE5041713D0A472D525441333333A385FE5041CDCCCC4C2852544185EB513882FE504133333303255254410AD7A3407EFE504148E17A342252544185EB51F879FE50415C8FC215205254419A9999696DFE5041B81E85BB1A5254419A9999196BFE5041000000C0195254415C8FC25568FE50410000007018525441050000007B14AE9779FE5041000000C04A52544185EB51A87FFE50411F85EBF1535254410000002078FE504166666636555254411F85EB3173FE5041713D0A374D5254417B14AE9779FE5041000000C04A525441
+</a>
+
+<b>
+010600000001000000010300000001000000160000000AF14CA395FE5041231C25A96B52544137C4A7DB99FE50415F4637816C5254418B76F46B9DFE5041E82E2D096C525441CE946F24A3FE504184E80EA16A52544161EB02FDA9FE50414681E2906852544140C35F4DAEFE5041A74DCC8867525441C3F5281CAEFE50410AD7A38063525441C3F5286CADFE50411F85EB3160525441379145FEACFE5041CC9E0A7F5C5254419757ABECACFE50415EA65DE75B525441AE47E1DAACFE5041E17A144E5B525441A3919E84ACFE5041940B2E715A52544159DEB307ACFE50411B804931595254418FC2F5E8ABFE5041295C8FE258525441556E4580AAFE504166336910575254417579B673A9FE5041147154B555525441BFA3823EA7FE50415CC5DEDA52525441E7B08337A1FE5041BF1239354A52544137F672828BFE5041786F22BF5352544137F672828BFE5041CAE4541756525441DD1DF26A91FE5041ED174758615254410AF14CA395FE5041231C25A96B525441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>173295 - 3021751
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -94 </desc>
+<a>
+01060000000100000001030000000300000022000000B81E854B00F15041333333434E2154410000003005F15041666666B64F2154410000004006F15041713D0A0750215441000000300CF150411F85EBC152215441E17A146E16F1504152B81E9558215441CDCCCCDC1AF150411F85EBD1592154419A99992919F15041CDCCCC6C572154417B14AE5718F15041713D0AD755215441F6285C0F13F15041CDCCCCDC46215441F6285C1F0CF15041E17A140E332154413D0AD7530AF150411F85EB812E2154410000004009F15041000000202D215441A4703DEA04F15041713D0A272E215441333333A3F5F050411F85EB11312154410AD7A3A0F4F05041666666E6312154411F85EBE1F3F050413D0AD783322154415C8FC255F2F05041713D0A273421544114AE4741F1F05041A4703DEA35215441333333D3EFF05041000000D03921544148E17A04CDF0504114AE47F10221544166666656C9F050418FC2F5D808215441E17A147EC5F050418FC2F5C808215441F6285CDFC6F0504152B81E5500215441333333C3BFF05041CDCCCC2C032154417B14AE57BEF050413D0AD72303215441AE47E13ABEF0504148E17A240721544152B81EB5C3F050418FC2F5080E2154418FC2F5E8CAF05041295C8F1217215441EC51B8FED6F050415C8FC25526215441713D0AA7D9F050413D0AD7332A215441A4703DDADFF05041C3F5285C322154415C8FC2E5EDF050413333332344215441C3F5289CF3F0504114AE47C14C215441B81E854B00F15041333333434E2154410500000048E17AE407F15041B81E85AB31215441D7A3704D07F15041666666362F215441A4703D0A09F15041B81E85CB2E215441E17A149E09F15041F6285C3F3121544148E17AE407F15041B81E85AB31215441090000005C8FC24508F15041000000D03B215441713D0AC709F150415C8FC2F53A21544114AE47810CF150415C8FC2153B21544114AE47710CF15041F6285CFF3E215441EC51B8DE0AF15041C3F528CC3F2154417B14AEB708F15041666666063F215441A4703DEA07F15041F6285C1F3E215441F6285CDF07F15041EC51B8DE3C2154415C8FC24508F15041000000D03B215441
+</a>
+
+<b>
+01060000000100000001030000000200000034000000FD524C63D8F05041C62AD9DD14215441061F3CF3DEF05041D66D2E361F2154418CA95A30E0F050412F85BE631F215441014DCC42E1F05041E70CDBBA1E215441BE6821FEE2F050418347A2D21D215441212E5AE6E3F05041B9E14C511E2154412BBCCD25E3F050415E8C830D1F215441CBBFD90DE0F0504143DA95F320215441333333D3EFF05041000000D039215441F07012B3F0F050413ACFD46D37215441D97D9921F1F05041FEF495403621544114AE4741F1F05041A4703DEA3521544184E57A10F2F05041AF61A38A34215441CB4DF535F2F050415451F05A342154415C8FC255F2F05041713D0A2734215441051D008BF2F05041C503B4EE332154419BEB917AF3F0504191E5CBBD32215441B2957E26F5F050417469F4F030215441A54DD3A2F4F0504161ED1C242F215441862D2694F2F050411EDBD7E52A21544174B14EC7F0F05041F7A09432282154415591A1B8EEF05041B7188F91232154410AE6A48BEDF05041FDB6DEBB202154419A5A1DCEECF0504178966EFB1E215441288573E4EBF0504172BE9ECF1E21544100A75AEFE8F05041736274111F2154415E5C3DC9E6F05041AF72303C1E2154416237217AE4F050415E8B307E1D215441B9A894EBE3F050414B845B1C1C215441AC60E967E3F050411A8CAC82182154416237217AE4F050410BEBDB0C18215441E049AFA1E5F05041CCE1147917215441002B3D45E8F050414ECF86511621544116E45920E6F05041FB2E32E010215441B31E2138E5F05041E4BCC0510E21544186F392CEE4F0504181F787690D2154413E7BAF25E4F0504184D26B1A0B215441D2465A28E3F05041931C6CE0082154415ED63ADFE4F050411681C33008215441D4BA5845E3F050415B2C5D40042154418E403C59E1F05041F3EEBE31042154417EB0E551E0F05041E45E682A032154417D0C1010E0F05041C53EBB1B012154417C683ACEDFF05041AE94CE6FFF2054416B340E85DEF05041875A8BBCFC2054414F5C0CFADCF0504159AA87A6F92054416B7FC92DDCF050417217D0E1F820544120278F1DCBF050418434C8ACFE205441F1B3594AD6F05041A253A3CB1021544153038FCCD6F05041AFA6DB0712215441D2FC1430D7F050418ABB8EF912215441FD524C63D8F05041C62AD9DD1421544110000000F06E9318E1F05041BF9714B3192154412AE42148DFF05041DAE469F219215441ACD19320DEF0504189FD6934192154419AF35AF6DDF05041145AF8211821544191843EE1DDF05041C372F86317215441372E220EDDF050410FC6BFBD1521544191843EE1DDF05041C74DDC141521544121750533DFF05041AC0087D514215441A8F6AF6FE0F05041C74DDC1415215441C34305AFE0F050410FC6BFBD15215441A8F6AF6FE0F050414ECF865116215441A8F6AF6FE0F05041A825A32417215441D5213ED9E0F05041D550318E172154411D9A2182E1F0504138166A76182154412F785AACE1F05041926C864919215441F06E9318E1F05041BF9714B319215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>173295 - 5315226
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -94 </desc>
+<a>
+01060000000100000001030000000300000022000000B81E854B00F15041333333434E2154410000003005F15041666666B64F2154410000004006F15041713D0A0750215441000000300CF150411F85EBC152215441E17A146E16F1504152B81E9558215441CDCCCCDC1AF150411F85EBD1592154419A99992919F15041CDCCCC6C572154417B14AE5718F15041713D0AD755215441F6285C0F13F15041CDCCCCDC46215441F6285C1F0CF15041E17A140E332154413D0AD7530AF150411F85EB812E2154410000004009F15041000000202D215441A4703DEA04F15041713D0A272E215441333333A3F5F050411F85EB11312154410AD7A3A0F4F05041666666E6312154411F85EBE1F3F050413D0AD783322154415C8FC255F2F05041713D0A273421544114AE4741F1F05041A4703DEA35215441333333D3EFF05041000000D03921544148E17A04CDF0504114AE47F10221544166666656C9F050418FC2F5D808215441E17A147EC5F050418FC2F5C808215441F6285CDFC6F0504152B81E5500215441333333C3BFF05041CDCCCC2C032154417B14AE57BEF050413D0AD72303215441AE47E13ABEF0504148E17A240721544152B81EB5C3F050418FC2F5080E2154418FC2F5E8CAF05041295C8F1217215441EC51B8FED6F050415C8FC25526215441713D0AA7D9F050413D0AD7332A215441A4703DDADFF05041C3F5285C322154415C8FC2E5EDF050413333332344215441C3F5289CF3F0504114AE47C14C215441B81E854B00F15041333333434E2154410500000048E17AE407F15041B81E85AB31215441D7A3704D07F15041666666362F215441A4703D0A09F15041B81E85CB2E215441E17A149E09F15041F6285C3F3121544148E17AE407F15041B81E85AB31215441090000005C8FC24508F15041000000D03B215441713D0AC709F150415C8FC2F53A21544114AE47810CF150415C8FC2153B21544114AE47710CF15041F6285CFF3E215441EC51B8DE0AF15041C3F528CC3F2154417B14AEB708F15041666666063F215441A4703DEA07F15041F6285C1F3E215441F6285CDF07F15041EC51B8DE3C2154415C8FC24508F15041000000D03B215441
+</a>
+
+<b>
+01060000000100000001030000000200000034000000FD524C63D8F05041C62AD9DD14215441061F3CF3DEF05041D66D2E361F2154418CA95A30E0F050412F85BE631F215441014DCC42E1F05041E70CDBBA1E215441BE6821FEE2F050418347A2D21D215441212E5AE6E3F05041B9E14C511E2154412BBCCD25E3F050415E8C830D1F215441CBBFD90DE0F0504143DA95F320215441333333D3EFF05041000000D039215441F07012B3F0F050413ACFD46D37215441D97D9921F1F05041FEF495403621544114AE4741F1F05041A4703DEA3521544184E57A10F2F05041AF61A38A34215441CB4DF535F2F050415451F05A342154415C8FC255F2F05041713D0A2734215441051D008BF2F05041C503B4EE332154419BEB917AF3F0504191E5CBBD32215441B2957E26F5F050417469F4F030215441A54DD3A2F4F0504161ED1C242F215441862D2694F2F050411EDBD7E52A21544174B14EC7F0F05041F7A09432282154415591A1B8EEF05041B7188F91232154410AE6A48BEDF05041FDB6DEBB202154419A5A1DCEECF0504178966EFB1E215441288573E4EBF0504172BE9ECF1E21544100A75AEFE8F05041736274111F2154415E5C3DC9E6F05041AF72303C1E2154416237217AE4F050415E8B307E1D215441B9A894EBE3F050414B845B1C1C215441AC60E967E3F050411A8CAC82182154416237217AE4F050410BEBDB0C18215441E049AFA1E5F05041CCE1147917215441002B3D45E8F050414ECF86511621544116E45920E6F05041FB2E32E010215441B31E2138E5F05041E4BCC0510E21544186F392CEE4F0504181F787690D2154413E7BAF25E4F0504184D26B1A0B215441D2465A28E3F05041931C6CE0082154415ED63ADFE4F050411681C33008215441D4BA5845E3F050415B2C5D40042154418E403C59E1F05041F3EEBE31042154417EB0E551E0F05041E45E682A032154417D0C1010E0F05041C53EBB1B012154417C683ACEDFF05041AE94CE6FFF2054416B340E85DEF05041875A8BBCFC2054414F5C0CFADCF0504159AA87A6F92054416B7FC92DDCF050417217D0E1F820544120278F1DCBF050418434C8ACFE205441F1B3594AD6F05041A253A3CB1021544153038FCCD6F05041AFA6DB0712215441D2FC1430D7F050418ABB8EF912215441FD524C63D8F05041C62AD9DD1421544110000000F06E9318E1F05041BF9714B3192154412AE42148DFF05041DAE469F219215441ACD19320DEF0504189FD6934192154419AF35AF6DDF05041145AF8211821544191843EE1DDF05041C372F86317215441372E220EDDF050410FC6BFBD1521544191843EE1DDF05041C74DDC141521544121750533DFF05041AC0087D514215441A8F6AF6FE0F05041C74DDC1415215441C34305AFE0F050410FC6BFBD15215441A8F6AF6FE0F050414ECF865116215441A8F6AF6FE0F05041A825A32417215441D5213ED9E0F05041D550318E172154411D9A2182E1F0504138166A76182154412F785AACE1F05041926C864919215441F06E9318E1F05041BF9714B319215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>240587 - 5321530
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+010600000001000000010300000001000000080000005C8FC2E576D0504114AE47D1E0E35441333333837AD0504148E17AB407E454417B14AEC79DD05041B81E850B0AE45441713D0A47C1D050415C8FC2650CE454410AD7A390BDD0504114AE4781E5E354410AD7A330BCD0504100000030E4E354413D0AD70378D05041A4703DAADFE354415C8FC2E576D0504114AE47D1E0E35441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000E1F5E741BFD050412E6A373CF7E354410AD7A390BDD0504114AE4781E5E354410AD7A330BCD0504100000030E4E3544121930CB893D050416499B680E1E354418B28790593D050410DFEDD74E1E354413D0AD70378D05041A4703DAADFE354415C8FC2E576D0504114AE47D1E0E3544172EBA26677D05041681EA33BE6E35441580DBA7777D05041988F7BF3E6E35441ED37328B78D05041C96CC786F2E3544130291FA178D050416650A372F3E354418D6608A678D050412DC577A7F3E35441141DF95CBFD0504145E0C557F8E35441DAC2C04EBFD050415B33CDC2F7E35441CD7C503DBFD050419C0C1D0CF7E35441E1F5E741BFD050412E6A373CF7E35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>179779 - 4168981
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -163 </desc>
+<a>
+010600000001000000010300000001000000150000000AD7A3403D2D51411F85EB41022B55419A999919482D5141295C8F320A2B554166666636492D514152B81EA5052B554185EB51384B2D5141EC51B8DE012B5541AE47E18A4D2D514185EB51B8FE2A554148E17A744F2D5141AE47E13AFC2A554152B81ED54E2D5141333333C3FA2A55415C8FC2754D2D5141CDCCCCACF92A554114AE4711452D51415C8FC205F52A554148E17A942F2D51415C8FC2F5EF2A5541C3F5285C292D514148E17A04EC2A554152B81E95272D514185EB51D8EB2A55415C8FC295182D51410AD7A3B0F12A554114AE4771092D51417B14AE97F72A55415C8FC235FE2C5141C3F528FCFB2A55415C8FC2C5FD2C514152B81E75FD2A55413D0AD783042D51411F85EBE1062B55411F85EB011B2D51415C8FC2A5FB2A5541EC51B86E262D5141C3F528AC032B5541CDCCCC5C302D51413D0AD713032B55410AD7A3403D2D51411F85EB41022B5541
+</a>
+
+<b>
+01060000000100000001030000000100000019000000433F0909472D51412BB6DC820D2B5541D722400A3D2D51413E12A0BE022B5541DA917E8D3C2D5141D087CD5F022B554159A22D6A3C2D5141E8A7A361022B5541BB6E2595342D5141A274E6C9022B5541A7B6064E332D5141F41556E8022B55414C129ED42B2D514137545D9A032B55418159938E292D51415CE984D0032B554148E17AB4252D5141E9263150042B5541B4D373B6242D51416B904FCF032B554118DC06C51C2D5141D1DD9EE2FC2A5541BA490CF21A2D5141B81E854BFB2A5541B29DEF57122D5141A4703D5AFE2A55419CE58911032D5141763390D5042B55413D0AD783042D51411F85EBE1062B5541CDCCCC0C0F2D5141C3F5289C152B5541AE47E13A212D5141713D0A072F2B55413D0AD723232D5141E17A14FE2D2B5541F6285C7F282D51417B14AE47282B5541F6285C0F2F2D5141F6285C5F222B5541A4703D6A342D514152B81EE51E2B5541F6285C4F412D5141AE47E1BA162B55417B14AE07442D514100000050142B55411F85EB01462D51415C8FC2B5102B5541433F0909472D51412BB6DC820D2B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>961914 - 1197881
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -11 </desc>
+<a>
+0106000000010000000103000000010000003E000000C4340AF1CF3F51414792F498FC755441B5C1224FD03F514184DC635BF875544169C15F5BCA3F5141451B16C6F7755441642B89AEBE3F5141D412965EF7755441CC7EBF71B63F514125F819DBF6755441C8119A8BB03F5141A03EEA2AF6755441F03FE148AF3F5141B26D0FEFFA755441A4C6141CAF3F51411A2EECEDFA755441FE630E62A13F5141B57910B7FB755441E4153C51A13F5141E40B4603FE75544166D0E5E0993F5141D026A05FFE755441380BCFC2913F514184890BAAFF75544180B8A83A913F5141FE4EC62F15765441427763A5913F514126FB4A8A22765441E4968623923F5141A23FC67E2D76544163B878F2963F51417AA8C9F12E765441CAB7A196993F5141822EB45130765441887621F39B3F514124A9645E32765441E4DB243AA03F5141F66EF91A367654414E009720A63F51416CA5417D3976544156F4AA30AD3F51410588FAC63B7654416F30C3B8B23F5141F81568923E765441AE62C21CBA3F51410FA5A5EA3F765441FC8F2D37BF3F5141EAF8CE5D3F7654414936B111C73F5141E27F543F3E765441B6223F89CA3F5141C510BF73427654418AEB0C5CD03F5141D386AB204676544199FDD81DD33F5141B0ED1C904776544144C71489D53F51414BA88AE947765441448DFF6DD83F5141DAD2C68A47765441661B15EEDD3F5141D47392DF4576544180D97A4AE83F5141DCDFFE2442765441C09DEA6CEE3F51414B02B1FB3F765441CADAEEDEF53F514153C346493C76544155565821F73F5141D254E1363B765441393324FBF63F5141BCB4116837765441A65CFFFEF63F5141FCE2BFAF30765441C125E245F73F51418650BB362C765441F8C1606AF73F51417070EEB5277654415436F24CF73F5141D0B91A01237654419A7AAF5FF73F514102CF4AF31E7654410F9FFDB1F73F5141B09EAB1C1C7654414C49EEE4F83F5141EB75E561177654414F5B466DFA3F51414FC2587113765441CC307517FB3F5141403515E60F7654419191EAC2FB3F51417F76E71C0C765441DEA786C5FB3F5141E02B4AAB097654412AB95BDEF73F5141BFFF8D400A7654416A28607AF33F5141A84C97600A765441AB29375DE83F51415BE0903E0A7654413E888343E43F5141EE3AEB9D0A7654416E9FB53AE03F514182A042510C765441B893BF63DF3F5141709FD00412765441A17C5859DE3F5141326411B219765441F7896E07DD3F5141B6C6FE622376544128258940D23F51412F892CDA22765441C6526466CB3F5141EBEF318B21765441F87D5381CB3F51412480A9E6177654414B756199CB3F5141162A0F73157654419CA72167CE3F51411C47F8F60B765441EAF1DA4CCF3F51413C8F3F3D04765441C4340AF1CF3F51414792F498FC755441
+</a>
+
+<b>
+01060000000100000001030000000100000044000000AE47E1DA913F5141D7A370BDFF755441A8E9379F913F5141145D524A057654417BB8A83A913F5141FA4EC62F157654413E7763A5913F514126FB4A8A22765441E8968623923F5141A03FC67E2D76544163B878F2963F514175A8C9F12E765441CBB7A196993F5141862EB45130765441887621F39B3F514122A9645E32765441E2DB243AA03F5141F76EF91A367654414D009720A63F514167A5417D3976544155F4AA30AD3F51410688FAC63B7654416C30C3B8B23F5141F41568923E765441B162C21CBA3F51410BA5A5EA3F765441FB8F2D37BF3F5141ECF8CE5D3F7654414E36B111C73F5141DF7F543F3E765441B5223F89CA3F5141C210BF73427654418BEB0C5CD03F5141D786AB20467654419DFDD81DD33F5141ACED1C904776544142C71489D53F514150A88AE947765441498DFF6DD83F5141D8D2C68A47765441651B15EEDD3F5141D67392DF4576544185D97A4AE83F5141DADFFE2442765441C39DEA6CEE3F51414C02B1FB3F765441C9DAEEDEF53F514153C346493C76544158565821F73F5141CF54E1363B7654413B3324FBF63F5141BEB4116837765441A25CFFFEF63F5141FAE2BFAF30765441C525E245F73F51418350BB362C765441F7C1606AF73F51416B70EEB5277654415336F24CF73F5141D5B91A0123765441977AAF5FF73F514106CF4AF31E765441129FFDB1F73F5141B59EAB1C1C7654414949EEE4F83F5141E675E561177654414E5B466DFA3F51414EC2587113765441CF307517FB3F51413C3515E60F7654418F91EAC2FB3F51417C76E71C0C765441DAA786C5FB3F5141DE2B4AAB097654412FB95BDEF73F5141BDFF8D400A7654416A28607AF33F5141A34C97600A765441AD29375DE83F514158E0903E0A76544140888343E43F5141EC3AEB9D0A765441699FB53AE03F514184A042510C765441B493BF63DF3F5141759FD00412765441A47C5859DE3F5141366411B219765441F6896E07DD3F5141BAC6FE62237654412D258940D23F51412B892CDA22765441C6526466CB3F5141E7EF318B21765441F77D5381CB3F51412180A9E61776544146756199CB3F5141142A0F73157654419BA72167CE3F51411947F8F60B765441E9F1DA4CCF3F5141378F3F3D04765441C2340AF1CF3F51414392F498FC755441B6C1224FD03F514189DC635BF875544166C15F5BCA3F51414A1B16C6F7755441622B89AEBE3F5141D112965EF7755441D17EBF71B63F514124F819DBF6755441C4119A8BB03F5141A33EEA2AF6755441D7FF125FAF3F514124E7259BFA7554411F85EB51AF3F5141CDCCCCECFA755441AE2E5549AF3F51416C1C59EDFA755441EC3FE148AF3F5141B16D0FEFFA7554411C7F0336AF3F514130C694EEFA755441A4703D6AA13F5141000000D0FB755441DAE74460A13F514139AB8DF5FB755441475F0FD3A03F5141377D6409FE755441000000B0A03F5141D7A3708DFE755441A4703DDA993F514114AE4761FE755441AE47E1DA913F5141D7A370BDFF755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>961914 - 3823778
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -11 </desc>
+<a>
+0106000000010000000103000000010000003E000000C4340AF1CF3F51414792F498FC755441B5C1224FD03F514184DC635BF875544169C15F5BCA3F5141451B16C6F7755441642B89AEBE3F5141D412965EF7755441CC7EBF71B63F514125F819DBF6755441C8119A8BB03F5141A03EEA2AF6755441F03FE148AF3F5141B26D0FEFFA755441A4C6141CAF3F51411A2EECEDFA755441FE630E62A13F5141B57910B7FB755441E4153C51A13F5141E40B4603FE75544166D0E5E0993F5141D026A05FFE755441380BCFC2913F514184890BAAFF75544180B8A83A913F5141FE4EC62F15765441427763A5913F514126FB4A8A22765441E4968623923F5141A23FC67E2D76544163B878F2963F51417AA8C9F12E765441CAB7A196993F5141822EB45130765441887621F39B3F514124A9645E32765441E4DB243AA03F5141F66EF91A367654414E009720A63F51416CA5417D3976544156F4AA30AD3F51410588FAC63B7654416F30C3B8B23F5141F81568923E765441AE62C21CBA3F51410FA5A5EA3F765441FC8F2D37BF3F5141EAF8CE5D3F7654414936B111C73F5141E27F543F3E765441B6223F89CA3F5141C510BF73427654418AEB0C5CD03F5141D386AB204676544199FDD81DD33F5141B0ED1C904776544144C71489D53F51414BA88AE947765441448DFF6DD83F5141DAD2C68A47765441661B15EEDD3F5141D47392DF4576544180D97A4AE83F5141DCDFFE2442765441C09DEA6CEE3F51414B02B1FB3F765441CADAEEDEF53F514153C346493C76544155565821F73F5141D254E1363B765441393324FBF63F5141BCB4116837765441A65CFFFEF63F5141FCE2BFAF30765441C125E245F73F51418650BB362C765441F8C1606AF73F51417070EEB5277654415436F24CF73F5141D0B91A01237654419A7AAF5FF73F514102CF4AF31E7654410F9FFDB1F73F5141B09EAB1C1C7654414C49EEE4F83F5141EB75E561177654414F5B466DFA3F51414FC2587113765441CC307517FB3F5141403515E60F7654419191EAC2FB3F51417F76E71C0C765441DEA786C5FB3F5141E02B4AAB097654412AB95BDEF73F5141BFFF8D400A7654416A28607AF33F5141A84C97600A765441AB29375DE83F51415BE0903E0A7654413E888343E43F5141EE3AEB9D0A7654416E9FB53AE03F514182A042510C765441B893BF63DF3F5141709FD00412765441A17C5859DE3F5141326411B219765441F7896E07DD3F5141B6C6FE622376544128258940D23F51412F892CDA22765441C6526466CB3F5141EBEF318B21765441F87D5381CB3F51412480A9E6177654414B756199CB3F5141162A0F73157654419CA72167CE3F51411C47F8F60B765441EAF1DA4CCF3F51413C8F3F3D04765441C4340AF1CF3F51414792F498FC755441
+</a>
+
+<b>
+01060000000100000001030000000100000044000000AE47E1DA913F5141D7A370BDFF755441A8E9379F913F5141145D524A057654417BB8A83A913F5141FA4EC62F157654413E7763A5913F514126FB4A8A22765441E8968623923F5141A03FC67E2D76544163B878F2963F514175A8C9F12E765441CBB7A196993F5141862EB45130765441887621F39B3F514122A9645E32765441E2DB243AA03F5141F76EF91A367654414D009720A63F514167A5417D3976544155F4AA30AD3F51410688FAC63B7654416C30C3B8B23F5141F41568923E765441B162C21CBA3F51410BA5A5EA3F765441FB8F2D37BF3F5141ECF8CE5D3F7654414E36B111C73F5141DF7F543F3E765441B5223F89CA3F5141C210BF73427654418BEB0C5CD03F5141D786AB20467654419DFDD81DD33F5141ACED1C904776544142C71489D53F514150A88AE947765441498DFF6DD83F5141D8D2C68A47765441651B15EEDD3F5141D67392DF4576544185D97A4AE83F5141DADFFE2442765441C39DEA6CEE3F51414C02B1FB3F765441C9DAEEDEF53F514153C346493C76544158565821F73F5141CF54E1363B7654413B3324FBF63F5141BEB4116837765441A25CFFFEF63F5141FAE2BFAF30765441C525E245F73F51418350BB362C765441F7C1606AF73F51416B70EEB5277654415336F24CF73F5141D5B91A0123765441977AAF5FF73F514106CF4AF31E765441129FFDB1F73F5141B59EAB1C1C7654414949EEE4F83F5141E675E561177654414E5B466DFA3F51414EC2587113765441CF307517FB3F51413C3515E60F7654418F91EAC2FB3F51417C76E71C0C765441DAA786C5FB3F5141DE2B4AAB097654412FB95BDEF73F5141BDFF8D400A7654416A28607AF33F5141A34C97600A765441AD29375DE83F514158E0903E0A76544140888343E43F5141EC3AEB9D0A765441699FB53AE03F514184A042510C765441B493BF63DF3F5141759FD00412765441A47C5859DE3F5141366411B219765441F6896E07DD3F5141BAC6FE62237654412D258940D23F51412B892CDA22765441C6526466CB3F5141E7EF318B21765441F77D5381CB3F51412180A9E61776544146756199CB3F5141142A0F73157654419BA72167CE3F51411947F8F60B765441E9F1DA4CCF3F5141378F3F3D04765441C2340AF1CF3F51414392F498FC755441B6C1224FD03F514189DC635BF875544166C15F5BCA3F51414A1B16C6F7755441622B89AEBE3F5141D112965EF7755441D17EBF71B63F514124F819DBF6755441C4119A8BB03F5141A33EEA2AF6755441D7FF125FAF3F514124E7259BFA7554411F85EB51AF3F5141CDCCCCECFA755441AE2E5549AF3F51416C1C59EDFA755441EC3FE148AF3F5141B16D0FEFFA7554411C7F0336AF3F514130C694EEFA755441A4703D6AA13F5141000000D0FB755441DAE74460A13F514139AB8DF5FB755441475F0FD3A03F5141377D6409FE755441000000B0A03F5141D7A3708DFE755441A4703DDA993F514114AE4761FE755441AE47E1DA913F5141D7A370BDFF755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>873019 - 3988976
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -64 </desc>
+<a>
+01060000000100000001030000000100000015000000CDCCCCFC4E6B51419A99991925AC5441295C8F724A6B51419A99996925AC54418FC2F508456B51418FC2F5B825AC5441EC51B83E416B5141333333D325AC5441295C8FB23E6B51410000000026AC5441D7A3702D3D6B514114AE47E12EAC54415C8FC2A53A6B5141666666B63DAC544114AE47113E6B5141A4703DFA3EAC5441000000703F6B5141A4703D2A3FAC5441713D0A87466B5141AE47E1EA3EAC5441B81E856B506B5141AE47E17A3EAC5441AE47E1BA5D6B5141AE47E16A3EAC54419A9999195F6B5141C3F528AC3DAC54418FC2F5885F6B5141EC51B8AE3BAC54418FC2F5785F6B51411F85EB9138AC54418FC2F5585F6B5141713D0A7734AC54419A9999E95E6B5141C3F5284C30AC5441A4703D6A5E6B51410AD7A3802CAC5441AE47E11A5E6B514148E17AB429AC5441CDCCCCAC526B5141AE47E14A27AC5441CDCCCCFC4E6B51419A99991925AC5441
+</a>
+
+<b>
+01060000000100000001030000000100000067000000A3050D9E3A6B5141024E543F2FAC5441B70798E63A6B51416B6EB1602EAC5441E44C39463B6B51417780AE632DAC54414528D7FA3B6B5141F859DDE42BAC5441D599C8E23C6B514108DD04F229AC54414CA82ED53D6B514152B8AFE827AC5441586FF9633E6B51416B0B08BB26AC5441B6F3FD8C3E6B51413F355E7226AC5441C2946E7A416B5141AFC9AC3B26AC54410CB1AA17436B51419688922A26AC54419B073618456B514117B06B1426AC5441FBB44DAB456B5141C3C0710A26AC5441B3749703486B5141C42595CD25AC5441B0C1A48F4A6B5141C76C7C8025AC5441E9E3FFFF4A6B5141E68B9B7225AC544188C7B8564C6B5141591D464825AC54419B4A6DEC4C6B51413332C83525AC544184DE2F044D6B51419075553C25AC54419FC1229F4E6B5141C005A7AD25AC54413D0AD7634F6B5141AAF1D23525AC54410F1876DD4C6B51412FF4EDC422AC544185EB51B84B6B5141560E2D4221AC544196438BB44C6B5141B81E85F320AC5441190456464C6B51417B14AE371CAC54413880EBF2496B51419FB48B4A1CAC5441EA6D631A456B514193D8A12B1DAC5441E52C26CD436B51419A642E801DAC5441713D0A47436B5141A4703DBA1DAC54419A9999B9416B51418FC2F5281EAC5441FFECD1D13F6B5141855809051FAC54410D1097FD3D6B51419F96645D20AC5441DBEE8D5B3C6B51415AD2ECC921AC544101AF90EC3A6B514101AFE95D23AC54417B37D77C396B51417785921225AC5441F62B223F386B51417C2EA9A026AC54415A643B17376B5141713D0A4F28AC54413F355E6A386B5141D9CEF72B2CAC5441EE7C3F7D396B51410C022B472DAC5441CBB4754B396B514146C12B252FAC5441A11D34C0386B51416F74AC2330AC5441F74D1BD0376B5141C2DB5F1D31AC5441C4BC0536366B514101B149A131AC5441FC8A13A6336B5141C113DE0332AC5441E80B8CB3316B5141DA46E62F32AC5441D9D730992F6B51416F68AA5532AC54416F1283682D6B5141D122DB5132AC5441B73977752D6B5141BD93B6E833AC5441ADD9D4792D6B51415150AF3034AC5441A2B157B52D6B514196B9F1D834AC5441DCF3E5012E6B51418FF2A6B035AC54419D8580952E6B51411E44ADCA36AC5441273108542F6B5141EC51B83638AC5441C5A8A6EF2F6B514175F8390439AC54416DD6088E316B51418A0AEB533AAC544122ED9C8B326B5141F59298E83AAC544104AF1349346B5141B6B0FAE83BAC544193799AB0366B51417E9CE9203DAC5441F6285C7F3A6B51415C8FC2953EAC5441D124C2F73E6B51414123AE3740AC5441C14B2993416B51413A79A2F240AC5441D7A3703D426B514152B81E2541AC544185EB51B8496B51413D0AD79343AC5441EC51B85E4D6B51419A9999D944AC544114AE47F14D6B51410AD7A39045AC54415C06192C526B5141A209274A47AC5441FE520804546B514116EAE21147AC5441E5FA131F556B51413860590C47AC5441EC062A57596B5141884521D247AC544139F41CE55C6B5141894974FB46AC5441CCDFE9425F6B514186D9765446AC5441DDBCB1FD5E6B5141D36D6AE042AC5441F853E3BD5E6B5141000000683FAC5441C19A7A6B5D6B514113E84B863FAC544168379F315C6B51416E905F823FAC5441EF8B0886566B5141C0A95E1C3FAC5441A3F1DBFB506B5141582908143FAC5441A29197B24E6B5141EF2088173FAC5441B1969A17486B514152F9637D3FAC54413BDF4F95436B51410E2DB21540AC5441BFF110C63F6B5141914E3C273FAC544183C087B73F6B51413AB4C1183FAC5441154E91163E6B5141C11A6FB03EAC5441D4F985063D6B5141B3F876643EAC5441E159F07C3B6B514116BD47CA3DAC5441546472B03A6B51410F2EBF773DAC5441CC5037B13A6B51417FAF3C733DAC5441A347CE4E3A6B5141A6D9EB533DAC54418853B1C1376B5141516507EA3BAC54411ACA311B356B51410AC8127A3AAC5441E810D59C326B5141761607E738AC544192794CBC316B5141FC83FB5138AC5441D521AB7F316B51415834831338AC54413108AC542F6B5141986E12A335AC5441A245B63B2F6B5141AC1C5A4434AC5441CE8822E12F6B514121C9970934AC54415BAA7222316B51415797F9CC33AC544111CD3043336B514172399A6233AC54414EC6E3DF336B514195582B3533AC5441946AECB8356B5141E246D4C532AC5441C436E6A5376B5141432AB15132AC5441F0A7C60B396B51414260E55831AC544176C3753E3A6B514182DAB0C92FAC5441A3050D9E3A6B5141024E543F2FAC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>188845 - 56102
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000100000013000000713D0A172CE7504114AE47B1262E5541E17A140E38E75041C3F5281C1B2E55410AD7A37038E75041CDCCCCBC1A2E5541C3F5282C35E75041C3F5282C182E55410AD7A31033E7504185EB51D8152E55411F85EB912EE75041C3F5282C122E5541C3F5286C22E75041B81E851B092E55411F85EBB11DE75041CDCCCC4C0C2E5541666666E617E75041713D0A37102E5541666666F61AE750419A9999890F2E5541666666E61BE750418FC2F568122E5541A4703DBA18E75041CDCCCC2C132E55410AD7A3C019E75041666666D6162E5541A4703D2A1BE7504185EB51081C2E55411F85EB611CE75041000000001F2E55410AD7A31031E75041D7A3705D302E5541EC51B8FE32E7504152B81E652E2E554152B81E8534E75041713D0AD72C2E5541713D0A172CE7504114AE47B1262E5541
+</a>
+
+<b>
+01060000000100000001030000000100000021000000E17A140E38E75041C3F5281C1B2E554177AB343A38E75041958777F11A2E55412961586B38E7504123C2A4B81A2E5541C3F5282C35E75041C3F5282C182E5541527D53BA32E75041A9C8CC91152E5541CE759D9032E75041C6A1B86F152E5541E72326392EE750413F608CF6112E5541C6264FBE2AE75041049821510F2E5541F603705E22E75041FE6CC924092E55416AF6D8D31DE750413C7CE3350C2E5541A966FBB81DE7504141EE07480C2E55411F85EBB11DE75041CDCCCC4C0C2E5541E3767F2018E750416E42CA0F102E554135F2D31C19E7504155A15DF20F2E5541666666F61AE750419A9999890F2E554157B797491BE75041A4938088102E55412DA898DF1BE75041250F1D54122E5541666666E61BE750418FC2F568122E5541151170CC18E75041D37BD535132E55412EDD4B8F1AE750416FD874CE192E5541E90C135A1BE750411B06E97C1C2E554108ECDF711CE750413242650D1F2E55411028C2CE1CE75041E76E615B1F2E554180CD78561DE750414C5053CD1F2E5541A546AC801DE750414AE5C1F01F2E5541227C21351EE7504111034588202E55412033D4751EE75041B40B97BE202E554199F55E4826E750414CF4EB4F272E5541BBEFCA0D31E750414EA70C5B302E5541EC51B8FE32E7504152B81E652E2E554152B81E8534E75041713D0AD72C2E5541713D0A172CE7504114AE47B1262E5541E17A140E38E75041C3F5281C1B2E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>189143 - 56378
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+010600000001000000010300000001000000620000005C8FC205CBE65041713D0A477F2B5541EC51B8BECBE65041333333137F2B55418FC2F588CCE6504114AE47E17E2B554100000090CDE6504148E17AA47E2B5541D7A3707DCEE65041666666667E2B5541AE47E19ACFE65041B81E851B7E2B55411F85EBF1D0E65041295C8FC27D2B5541713D0A07D2E650415C8FC2757D2B554185EB5188D6E65041C3F5284C7C2B5541F6285C1FD7E6504148E17A147C2B554133333363D8E6504114AE47917B2B55410AD7A3B0D9E65041D7A3700D7B2B554152B81E05DBE65041000000807A2B5541EC51B80EDCE650411F85EB117A2B55415C8FC2D5DCE65041AE47E1CA792B5541F6285C5FDDE65041F6285C8F792B5541C3F5281CDEE6504133333363792B55419A9999D9DEE65041A4703D3A792B55413D0AD763DFE6504100000010792B55410AD7A3D0DFE6504152B81EE5782B554100000030E0E65041333333B3782B55418FC2F588E0E65041F6285C8F782B5541713D0A07E1E650410AD7A350782B5541295C8F82E1E65041C3F5280C782B5541D7A3701DE2E6504148E17AA4772B554185EB5198E2E6504166666656772B55410AD7A310E3E650418FC2F508772B5541713D0A97E3E65041713D0A97762B5541AE47E13AE3E650417B14AE97752B5541F6285CEFE2E65041000000E0742B5541B81E85BBE2E6504100000030742B55418FC2F578E2E65041EC51B87E732B5541B81E851BE2E650417B14AE87722B554114AE47C1E1E65041713D0AB7712B554185EB5178E1E65041713D0AE7702B5541E17A143EE1E65041713D0A27702B5541A4703D0AE1E65041EC51B85E6F2B55413D0AD733DFE65041E17A147E682B55415C8FC205DDE65041AE47E19A5E2B55413D0AD7D3DBE65041D7A3706D5E2B5541333333D3D4E6504114AE47D15E2B55413D0AD733D2E65041295C8F125F2B554185EB51D8CFE65041D7A3704D5F2B5541C3F5282CCDE650418FC2F5785F2B5541713D0A27C9E65041AE47E1BA5F2B55418FC2F5F8C4E650417B14AEF75F2B5541A4703D7AC1E6504152B81E15602B5541F6285C0FBEE65041295C8F12602B554114AE47F1B9E65041F6285CEF5F2B5541B81E850BB6E65041CDCCCCBC5F2B554148E17A04B6E65041A4703D3A612B55418FC2F5E8B5E6504152B81E05672B55418FC2F508B7E6504114AE4711672B55418FC2F518B9E65041A4703D2A672B5541E17A14FEBAE6504185EB5138672B5541A4703D7ABDE650410AD7A350672B5541713D0A47BFE650411F85EB61672B554185EB51D8C0E6504148E17A64672B554185EB5138C2E65041C3F5286C672B554133333343C4E65041AE47E16A672B554100000000C6E65041CDCCCC6C672B554114AE47E1C7E65041713D0A67672B55410AD7A380CAE65041A4703D6A672B55415C8FC2A5CCE6504133333373672B55419A9999A9CCE65041A4703D6A6D2B5541B81E858BCAE65041C3F528CC6E2B5541C3F5285CC6E650410AD7A3506F2B5541295C8FB2C3E65041C3F528BC6D2B55417B14AEA7C1E65041CDCCCCCC6D2B55419A999929C0E65041B81E85DB6D2B5541A4703DCABEE650413D0AD7E36D2B5541F6285C8FBDE65041AE47E1EA6D2B5541713D0A47BCE65041AE47E1FA6D2B554148E17AF4BAE65041000000106E2B55413D0AD713B9E65041295C8F326E2B5541AE47E12AB7E65041E17A145E6E2B5541666666D6B5E65041333333836E2B5541A4703DAAB4E650419A9999C96E2B5541E17A140EB4E650419A999999712B55413D0AD753B3E65041295C8FF2742B55417B14AEB7B2E6504133333303792B554100000030B4E650417B14AE27792B554114AE47B1B5E65041713D0A47792B5541C3F5288CB7E65041F6285C6F792B554185EB51E8B9E650410AD7A3A0792B5541F6285CAFBBE6504152B81ED5792B5541EC51B8CEBDE650410AD7A3107A2B5541F6285C2FC0E65041AE47E14A7A2B55411F85EBC1C1E65041AE47E17A7A2B55413D0AD783C3E6504114AE47B17A2B5541A4703DFAC4E65041C3F528DC7A2B5541C3F528CCC6E65041666666167B2B5541A4703DBAC8E6504148E17A547B2B5541000000C0C9E65041000000607B2B554185EB51A8C9E650413D0AD7B37B2B5541000000F0C8E65041EC51B83E7E2B5541713D0A77C8E65041EC51B8CE7F2B55415C8FC205CBE65041713D0A477F2B5541
+</a>
+
+<b>
+0106000000010000000103000000010000005800000063D3D1A5CCE6504113DFE98A672B55419A9999A9CCE65041A4703D6A6D2B554117AA28A9CCE65041C02C876A6D2B55414A172AA9CCE650418089096D6D2B554186567DCFCBE650412985A4F86D2B5541B81E858BCAE65041C3F528CC6E2B554178B54B84CAE6504190A60DCD6E2B554140771B68C6E650413EA3294F6F2B5541C3F5285CC6E650410AD7A3506F2B554106F8B6B2C3E65041097740BC6D2B554141BFBD9BB9E65041BAC3C9286E2B5541384D4C73B6E65041F23518726E2B5541F4A2BDA7B4E6504176831FD56E2B55416C437247B4E6504136821A91702B5541889C601CB4E6504173FEAD57712B5541E17A140EB4E650419A999999712B5541AD3F125AB3E650410235E3D5742B55417003DEB7B2E65041BBD83703792B554100000030B4E650417B14AE27792B554114AE47B1B5E65041713D0A47792B5541C3F5288CB7E65041F6285C6F792B554185EB51E8B9E650410AD7A3A0792B5541F6285CAFBBE6504152B81ED5792B5541EC51B8CEBDE650410AD7A3107A2B5541F6285C2FC0E65041AE47E14A7A2B55411F85EBC1C1E65041AE47E17A7A2B55413D0AD783C3E6504114AE47B17A2B5541A4703DFAC4E65041C3F528DC7A2B5541C3F528CCC6E65041666666167B2B5541A4703DBAC8E6504148E17A547B2B5541000000C0C9E65041000000607B2B554185EB51A8C9E650413D0AD7B37B2B5541000000F0C8E65041EC51B83E7E2B55416A80BE7EC8E65041754A3EB57F2B5541FE60B58DC8E65041E9B605CA7F2B5541A2AB540ECBE650411E48A3447F2B5541EC51B8BECBE65041333333137F2B55418FC2F588CCE6504114AE47E17E2B55418CFAFDB1CCE6504194B2CBD77E2B55418FFCFC06D2E65041A63BC6757D2B5541F70EBE07D2E65041902894757D2B55413F228496D6E65041893AED467C2B5541D668634ADAE65041632492CD7A2B554152B81E05DBE65041000000807A2B5541EC51B80EDCE650411F85EB117A2B55411EBA92C6DCE650411AE64CD0792B554154A3EBE7DCE65041924806C3792B5541F6285C5FDDE65041F6285C8F792B5541C3F5281CDEE6504133333363792B55418D11C27DDEE65041AE03194E792B554120F6618BDFE65041C6606A00792B55419B3303DBE1E6504196AFF2D0772B5541D7A3701DE2E6504148E17AA4772B554185EB5198E2E6504166666656772B55410AD7A310E3E650418FC2F508772B55414FE91A96E3E650417A19D597762B55413B3F5819E3E650419A881D46752B5541F6285CEFE2E65041000000E0742B5541EF4099DEE2E65041AA1B18A7742B554136D8A4F4E1E65041C6DACB2D722B554114AE47C1E1E65041713D0AB7712B554185EB5178E1E65041713D0AE7702B5541E17A143EE1E65041713D0A27702B5541A4703D0AE1E65041EC51B85E6F2B55413D0AD733DFE65041E17A147E682B5541355E8B64DEE650413D60E1D1642B55412820DC04DDE65041630DBF9A5E2B5541C0857A74DCE6504190F04C855E2B55418A68D167DCE65041DC846B835E2B55412BD5D39FD7E65041822C5EA95E2B5541DAA48A6BD1E650416BEF19265F2B554185EB51D8CFE65041D7A3704D5F2B5541C3F5282CCDE650418FC2F5785F2B5541713D0A27C9E65041AE47E1BA5F2B55418FC2F5F8C4E650417B14AEF75F2B5541A4703D7AC1E6504152B81E15602B554146D20CC3BEE6504198F61513602B55417D1B05C3BEE650413E29621D602B5541BE7E210BB6E65041A8A8E2D15F2B554148E17A04B6E65041A4703D3A612B55418FC2F5E8B5E6504152B81E05672B55418FC2F508B7E6504114AE4711672B5541BD27B3D9B8E650417AE03F27672B55416D87FB69C6E650416A16886B672B554114AE47E1C7E65041713D0A67672B55410AD7A380CAE65041A4703D6A672B55415C8FC2A5CCE6504133333373672B554163D3D1A5CCE6504113DFE98A672B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>189938 - 55033
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -25 </desc>
+<a>
+010600000001000000010300000001000000050000008FC2F598D9ED50417B14AEE7BF8E544100000050BEED5041AE47E17AF28E5441333333F3C4ED50417B14AE67F78E5441713D0A67E0ED5041F6285C0FC48E54418FC2F598D9ED50417B14AEE7BF8E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000333333F3C4ED50417B14AE67F78E5441257A35E2CDED504100F93CB2E68E544181E54B42D4ED50418A2FC9A2DA8E5441CF339A50DCED50413FE47D97CB8E54414DF6DB60E0ED5041530D960BC48E5441CD69AE9DDAED5041920FDF86C08E5441177CE298D9ED5041973ED8F1BF8E54416E33F5FFD5ED50419065D592C68E5441623778FFC9ED504190B3F1D1DC8E544130923F0DC8ED50411A3B706DE08E54417CEC7C70BEED5041F767FC92F28E5441333333F3C4ED50417B14AE67F78E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>127073 - 202508
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -122 </desc>
+<a>
+01060000000100000001030000000100000009000000EC51B86EC4B65041C3F528CC7D4455411F85EB71C7B65041B81E85EB7C445541333333B3C1B65041AE47E11A6A4455410AD7A3B0BBB6504166666636574455418FC2F508BAB65041333333C35744554100000080B8B65041A4703D3A58445541A4703DAABBB650415C8FC2F56144554152B81E95BEB650419A9999196B445541EC51B86EC4B65041C3F528CC7D445541
+</a>
+
+<b>
+01060000000100000001030000000100000044000000B7C8112FC7B65041F01DFEFE7C4455411E85EB71C7B65041B61E85EB7C445541E7DDD793C6B6504103B836147A445541077D2508C6B6504103B836147A445541CAECA23AC4B65041C46F752D79445541A7BCCCA0C3B6504154C707137744554187BCCCA0C3B65041EE665BDF7544554165875B07C4B6504192D13D1275445541ABA4E153C3B650416FA1677874445541FF26AFD3C2B65041B1D6D81174445541848CF606C3B650415059A69173445541848CF606C3B650413211E5AA724455415D740BBAC2B65041ADAB9D77724455419C79A6B9C1B6504118E6A910714455418B61BB6CC1B65041CC6D12906F445541BB7E41B9C0B650411B9033DC6D445541CC135F86C1B650410E95CEDB6C445541492C4AD3C1B650417BCA3F756C44554145010F39C0B650414BADB9286D445541FDB3B252C0B65041ED1C375B6B4455415619FA85C0B650415F6F2E416A44554138145F86C1B65041A1A49FDA694455417F98EBADBFB650410A40CEC063445541CE8877B8BEB650411C76E5F163445541CE8877B8BEB65041107B80F162445541FD708C6BBEB6504190B58C8A61445541E8A5FD04BEB65041749DA13D61445541178E12B8BDB65041CEBFC2895F445541444651D1BCB65041F5D7ADD65F4455410B93ADB7BCB65041462AA5BC5E44554190F8F4EABCB6504161472B095E445541CA5D3C1EBDB650416917556F5D445541AB157B37BCB65041C33976BB5B4455414A9848B7BBB6504159F1B4D45A44554119032BEABAB65041D25B97075A44554119032BEABAB65041B313D620594455415714A125BCB650418A2928A658445541C9D6A3B0BBB650417C6666365744554124644558BAB650410BC5D7A8574455416D85F869BAB650419E96A3A0584455413320B136BAB65041DA2BC16D59445541B1FEC50EB9B65041291E46F159445541D78FC653BBB6504180EFE0EB60445541B9703DAABBB65041928FC2F5614455410B8688C2BCB65041D642DE63654455416D0B4538BEB65041CA23EE0B65445541D658A11EBEB65041E96BAFF2654455414CD6D39EBEB650410ECC5B26674455415DEEBEEBBEB65041BFA93ADA684455412DD1389FBFB650412B276D5A694455411BB94D52BFB650414D5743F46944554147B81E95BEB650416F9999196B445541873680D2BFB65041104D0DF56B4455417906AA38BFB65041D2F24F246D445541214D8E0FC0B6504177A523D36F4455419B85F997C3B650412F0CCD1D7B445541D2BCCCA0C3B65041C4B29B147B445541D0048E87C4B65041E0CA86617B445541E37D72D8C3B650417178DDEB7B4455410C3669E2C3B6504146F6B50B7C445541389DC9E7C3B650411828E51C7C445541F3346421C5B650415D60A42E7C4455416C9F4654C4B650411EDED6AE7C445541F1048E87C4B6504191A865157D445541C21C79D4C4B65041B5907AC87C445541B2FFF287C5B65041E4F5C1FB7C445541769BFA21C5B6504169BFF1977D445541B7C8112FC7B65041F01DFEFE7C445541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>37432 - 2913192
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -11 </desc>
+<a>
+0106000000010000000103000000010000000C0000000AD7A3A02C9A5041666666F603FD5441295C8FE2299A5041E17A14CEC6FC544133333373279A5041F6285C5F8EFC5441A4703DBA269A50411F85EB318DFC54415C8FC275259A50413D0AD7A38CFC544148E17AF40F9A5041AE47E1DA8EFC5441AE47E1EA0D9A5041295C8F828FFC544152B81E05099A50416666667691FC5441F6285C6F0B9A504152B81E55C8FC5441C3F5282C0E9A50416666668606FD54410AD7A3302B9A50413333338305FD54410AD7A3A02C9A5041666666F603FD5441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000C3F5282C0E9A50416666668606FD5441B1843E80169A50418F78013C06FD5441DDF22E4A169A50411D22896302FD54419138B540139A5041DAC76D3DC6FC54413ABC967E109A504119F78D9C8FFC5441F036CA71109A50417F21F9CD8EFC544148E17AF40F9A5041AE47E1DA8EFC54415CB3FC0D0E9A5041032746778FFC5441DBB2CB05099A50418B6A367691FC544122830B21099A5041FF82DEF093FC5441F86254C1099A50415BCE9D2AA2FC544152A81F3D0A9A5041733A4727ADFC54415C9B60850A9A5041F91BEB90B3FC5441019AFAF20A9A5041D8B01E4BBDFC54410EEB6B820B9A504131962C06CAFC5441B196C8A60B9A50419FAD4540CDFC544122F7DDFF0B9A504100AE2228D5FC54414C6643780C9A5041534262D7DFFC54417A73F80C0D9A50419A6FD209EDFC5441C3F5282C0E9A50416666668606FD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>41613 - 1660281
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -12 </desc>
+<a>
+010600000001000000010300000001000000150000009A99998904BC504100000030BE2455416666665609BC5041A4703D7ABE2455411F85EB5109BC5041D7A3703DBA245541F6285C4F09BC504185EB5138B82455418FC2F54809BC5041EC51B8DEB324554152B81E15FDBB5041295C8FA2B32455411F85EB81FDBB50413D0AD773B0245541F6285CCFF3BB504166666656AD2455418FC2F518F3BB50419A9999D9AE2455410AD7A3B0E1BB5041EC51B8AEA62455418FC2F5C8DFBB50415C8FC2B5AA2455418FC2F5F8DBBB504100000020AA245541C3F5287CCEBB504152B81E55A4245541B81E856BCDBB50410AD7A370B02455413D0AD743CEBB5041C3F528CCB12455417B14AE77DCBB50413D0AD7F3B6245541713D0AD7E5BB5041AE47E1EAB9245541333333D3EDBB5041EC51B8BEBB245541713D0AE7FBBB5041CDCCCCACBD245541333333F301BC50419A999909BE2455419A99998904BC504100000030BE245541
+</a>
+
+<b>
+010600000001000000010300000001000000150000000AD7A3B0E1BB5041EC51B8AEA6245541A0C36BF6DFBB5041D5223B90AA2455414E6210A0DFBB504123DBF95EAB2455418FC2F5F8DBBB504100000020AA245541D122DB89CEBB5041D7A3700DA524554126C0E6A0CDBB5041FDCB65C6B02455414260E570CDBB5041C1CAA1A5B12455417B14AE77DCBB50413D0AD7F3B62455410F73C6A7E5BB5041CEE85097B92455414CDDA90CEEBB50412C5239E9BB245541713D0AE7FBBB5041CDCCCCACBD245541402254A8FCBB504190D962B8BD24554152B81E15FDBB5041295C8FA2B3245541D41AD932FDBB50410B02F3C3B224554109CDC980FDBB50414F86507CB024554114186204FBBB5041D86D0DA7AF245541933A1A27F6BB5041A21F0C17AE2455416836370EF4BB50415D58ABD7AD24554104E837B3F3BB5041B5B088C6AD2455418FC2F518F3BB50419A9999D9AE2455410AD7A3B0E1BB5041EC51B8AEA6245541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>41613 - 4313974
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -12 </desc>
+<a>
+010600000001000000010300000001000000150000009A99998904BC504100000030BE2455416666665609BC5041A4703D7ABE2455411F85EB5109BC5041D7A3703DBA245541F6285C4F09BC504185EB5138B82455418FC2F54809BC5041EC51B8DEB324554152B81E15FDBB5041295C8FA2B32455411F85EB81FDBB50413D0AD773B0245541F6285CCFF3BB504166666656AD2455418FC2F518F3BB50419A9999D9AE2455410AD7A3B0E1BB5041EC51B8AEA62455418FC2F5C8DFBB50415C8FC2B5AA2455418FC2F5F8DBBB504100000020AA245541C3F5287CCEBB504152B81E55A4245541B81E856BCDBB50410AD7A370B02455413D0AD743CEBB5041C3F528CCB12455417B14AE77DCBB50413D0AD7F3B6245541713D0AD7E5BB5041AE47E1EAB9245541333333D3EDBB5041EC51B8BEBB245541713D0AE7FBBB5041CDCCCCACBD245541333333F301BC50419A999909BE2455419A99998904BC504100000030BE245541
+</a>
+
+<b>
+010600000001000000010300000001000000150000000AD7A3B0E1BB5041EC51B8AEA6245541A0C36BF6DFBB5041D5223B90AA2455414E6210A0DFBB504123DBF95EAB2455418FC2F5F8DBBB504100000020AA245541D122DB89CEBB5041D7A3700DA524554126C0E6A0CDBB5041FDCB65C6B02455414260E570CDBB5041C1CAA1A5B12455417B14AE77DCBB50413D0AD7F3B62455410F73C6A7E5BB5041CEE85097B92455414CDDA90CEEBB50412C5239E9BB245541713D0AE7FBBB5041CDCCCCACBD245541402254A8FCBB504190D962B8BD24554152B81E15FDBB5041295C8FA2B3245541D41AD932FDBB50410B02F3C3B224554109CDC980FDBB50414F86507CB024554114186204FBBB5041D86D0DA7AF245541933A1A27F6BB5041A21F0C17AE2455416836370EF4BB50415D58ABD7AD24554104E837B3F3BB5041B5B088C6AD2455418FC2F518F3BB50419A9999D9AE2455410AD7A3B0E1BB5041EC51B8AEA6245541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>976052 - 976033
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+010600000001000000010300000001000000270000009196C89412695141D7F78ED01B645441E74549741269514169DDC0951B645441EB493473126951414B5C7D951B6454410739BE3C0769514190719749076454416285BAA0136951413A417150E9635441DEC1D7AB13695141D9A5F6B5E5635441F7968FCC0E6951411B88C2DBE5635441EB3FF5320C69514174EA11D0EA6354414583F1440769514125FDC5CDF5635441252805AF0269514149F50BF3FF6354415BA215D9FD6851418DF4266A0B645441AB65D9B6F96851411FC3B0DD15645441EC51B80EF96851415C8FC2C5166454415C8FC225F8685141C3F5288C16645441B81E855BF7685141CDCCCCDC18645441B81E85ABF7685141C3F528DC196454411F85EB61F8685141EC51B88E1A645441B81E856BF96851413D0AD7E31A64544114AE4771016951413D0AD7431C6454419A9999E90E695141D7A3706D1E64544167E3994726695141F1B7BDA61F6454410539D7942A695141E0F0475E20645441B9D62B102D695141D5AA73FB1F645441BE2381BC33695141013BA2571C645441CF721934386951419FC42BDE18645441788608B537695141173F28EE176454419E16371134695141FD756FDA1A64544105862C413169514134D494C81C645441988550CD2A695141A611818A1F64544162272BDF28695141A611818A1F645441556BE88C28695141D6EF1E7E1F645441217F87DD276951410EA1A88F1F645441D4804C5D24695141BFA8CDDC1E64544188F226BE236951419085D8C41E645441F3BE7F2D1D695141E6C898831D645441C19B25CF1A695141DBDAE9141D645441F6FF14AD156951414D11C45E1C645441FF1A748314695141DCF43A161C6454419196C89412695141D7F78ED01B645441
+</a>
+
+<b>
+01060000000100000001030000000100000023000000217F87DD276951410EA1A88F1F645441622C54AB2A69514121F6E0471F645441CDCCCCEC2E695141713D0A771D64544100000000336951411F85EB711A64544152B81E1537695141C3F528CC16645441EB870A203A695141FFFB320B15645441A26C5FF03D695141F539690812645441B84A1B9044695141964002390F6454416E2F706048695141EDC34ED10D64544129C815654D6951412FD18032086454413FA6D10454695141C5BB27C601645441F530FE3A576951410F31FB8FFE635441BA8B6D425F695141FF60B8BEF96354411BDFFCAB62695141F59EEEBBF6635441FFF2C73D5A6951411CC0EBAEE863544190291E9D526951419BCCD6A2DB6354412514C5304C69514127F5B333D2635441C97486FB4969514173C4AF97CF63544138B12E1E38695141988B84F0C0635441BF25BB7A2D6951411D33EA30CF6354411CC5F9AF2F69514143E1E8A1DA6354419A9999193269514148E17AA4EB635441C5D90BAF2E695141785F2AE4EA635441C3F5283C2C6951419A999999EA635441666666A629695141E17A14CEE9635441CDCCCCEC256951411F85EB41E9635441295C8F62246951415C8FC2B5E863544114AE47F11A695141E17A149EE7635441CDCCCC9C1769514152B81E45E7635441EC51B82E146951418FC2F5F8E76354410739BE3C0769514190719749076454419196C89412695141D7F78ED01B645441DE4F2C3718695141D040B69B1C645441821AE836226951413F02F76E1E645441217F87DD276951410EA1A88F1F645441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>48412 - 1701736
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000000B00000085EB5188608F5041F6285C3F9B2A5541295C8F724B8F504148E17A34932A5541295C8F62368F50419A9999398B2A5541EC51B8EE278F5041C3F5282C8D2A554114AE4741388F50419A999949962A554185EB51B8408F50410AD7A390992A5541B81E85EB4A8F5041A4703D0A9D2A554114AE47B1568F504148E17A84A12A554185EB5188618F504114AE47F1A52A55415C8FC245618F504100000030A02A554185EB5188608F5041F6285C3F9B2A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001900000034D51EC55C8F50419D1397FFA32A55411C7D5FB4578F5041AB933EEEA12A5541BB766B5C548F5041EC0C79A1A02A554127546B044F8F504162742C999E2A55419157C1004C8F504191B2AE739D2A55416DD2ADF8428F50419262FF549A2A5541C69BA6EC3E8F50414C04AADE982A5541BAC5E2553A8F504171CFD017972A5541FD34D472388F5041583C7033962A55414C88122D368F5041A4006620952A554108ECED70328F5041293D750A932A554165193F8F2D8F504168749850902A55416C677CEF2A8F5041009576D98E2A5541EC51B8EE278F5041C3F5282C8D2A55417B14AE67268F50411F85EB518C2A554114AE47A1218F50418FC2F5A88C2A554133333383168F5041C3F5289C8E2A554185EB51582F8F5041D7A3706D982A554114AE47E1408F5041295C8F829E2A5541F6285C5F4B8F504152B81EA5A12A5541CDCCCC6C4F8F5041B81E853BA32A5541A4703D9A5E8F504166666606AE2A5541A4703D2A608F5041333333F3AD2A554185EB5188618F504114AE47F1A52A554134D51EC55C8F50419D1397FFA32A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>48412 - 3414853
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000000B00000085EB5188608F5041F6285C3F9B2A5541295C8F724B8F504148E17A34932A5541295C8F62368F50419A9999398B2A5541EC51B8EE278F5041C3F5282C8D2A554114AE4741388F50419A999949962A554185EB51B8408F50410AD7A390992A5541B81E85EB4A8F5041A4703D0A9D2A554114AE47B1568F504148E17A84A12A554185EB5188618F504114AE47F1A52A55415C8FC245618F504100000030A02A554185EB5188608F5041F6285C3F9B2A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001900000034D51EC55C8F50419D1397FFA32A55411C7D5FB4578F5041AB933EEEA12A5541BB766B5C548F5041EC0C79A1A02A554127546B044F8F504162742C999E2A55419157C1004C8F504191B2AE739D2A55416DD2ADF8428F50419262FF549A2A5541C69BA6EC3E8F50414C04AADE982A5541BAC5E2553A8F504171CFD017972A5541FD34D472388F5041583C7033962A55414C88122D368F5041A4006620952A554108ECED70328F5041293D750A932A554165193F8F2D8F504168749850902A55416C677CEF2A8F5041009576D98E2A5541EC51B8EE278F5041C3F5282C8D2A55417B14AE67268F50411F85EB518C2A554114AE47A1218F50418FC2F5A88C2A554133333383168F5041C3F5289C8E2A554185EB51582F8F5041D7A3706D982A554114AE47E1408F5041295C8F829E2A5541F6285C5F4B8F504152B81EA5A12A5541CDCCCC6C4F8F5041B81E853BA32A5541A4703D9A5E8F504166666606AE2A5541A4703D2A608F5041333333F3AD2A554185EB5188618F504114AE47F1A52A554134D51EC55C8F50419D1397FFA32A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>72024 - 53861
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -14 </desc>
+<a>
+0106000000010000000103000000010000000B000000A4703DBA33BD50418FC2F558473155413333339326BD5041713D0AB7523155411F85EBE121BD504148E17AE4553155410000002024BD5041AE47E10A5A3155418FC2F55839BD50418FC2F5E848315541F6285C3F4EBD50410AD7A350373155410AD7A3804BBD5041E17A14CE323155418FC2F56848BD5041B81E851B35315541B81E851B45BD5041CDCCCC7C373155417B14AE173FBD50417B14AEE73C315541A4703DBA33BD50418FC2F55847315541
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000003333339326BD5041713D0AB752315541B0314A9224BD5041CEAF5A1254315541731D4B5624BD5041123D1D40543155417C6135E821BD50410C1C1EF055315541D0432E3E22BD50413D0A388F563155413B75F87C22BD504131276B03573155414577B73B24BD5041924081F4593155418C0FC98327BD5041178E554E57315541C532D03B2ABD5041BBDE711C55315541B1ECE95F31BD504172EDC33D4F31554193E50CFB39BD5041FB698060483155419CF767063BBD5041A0846C7F473155418C6891364CBD504145BC130739315541069B7B3C4EBD5041C0B0E94B37315541E305A75E4DBD5041FBC572DF35315541ACBA4E4D4CBD5041699D581E34315541640EB6704BBD5041FF90F0D9323155418FC2F56848BD5041B81E851B35315541C7FF86CC46BD5041050BBF44363155415F2D718C45BD5041AF6F8439373155418510F9A744BD50415285DEE4373155417B14AE173FBD50417B14AEE73C315541A4703DBA33BD50418FC2F558473155411171CC5F30BD5041C7C0E53E4A3155419BC7A70A2FBD504174B19C774B315541CE5DB66228BD5041FC0BA02951315541F12D4A4328BD504194719741513155413333339326BD5041713D0AB752315541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>72443 - 3086676
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000010000000B0000001F85EB1133C55041F6285C7F4331554152B81E352FC55041666666E6403155411F85EB812AC550415C8FC2A55E3155415C8FC24549C550413D0AD723673155410AD7A32067C5504114AE47316F315541A4703D6A69C550416666661646315541D7A370BD42C55041B81E853B40315541295C8FB241C5504148E17A14413155415C8FC22541C55041EC51B8FE4A3155416666662640C550410AD7A3F04A3155411F85EB1133C55041F6285C7F43315541
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000001DA5B9B62CC5504170DB4A9B503155411F85EB812AC550415C8FC2A55E315541317F43BE33C55041C86A6933613155415E4141E834C55041BB9FAE8461315541029D2AD136C550410FB1A40B62315541420DBA2D4DC550414D258D316831554139DC415760C55041512EAC5C6D3155413777CBF25FC550417D14C3426D315541DD2E6A4E61C550410641B0A06D315541FB773B2667C55041683DDB346F315541BD8EB83368C550419D8B18D1603155411DA5B9B62CC5504170DB4A9B50315541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>72443 - 3412372
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000010000000B0000001F85EB1133C55041F6285C7F4331554152B81E352FC55041666666E6403155411F85EB812AC550415C8FC2A55E3155415C8FC24549C550413D0AD723673155410AD7A32067C5504114AE47316F315541A4703D6A69C550416666661646315541D7A370BD42C55041B81E853B40315541295C8FB241C5504148E17A14413155415C8FC22541C55041EC51B8FE4A3155416666662640C550410AD7A3F04A3155411F85EB1133C55041F6285C7F43315541
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000001DA5B9B62CC5504170DB4A9B503155411F85EB812AC550415C8FC2A55E315541317F43BE33C55041C86A6933613155415E4141E834C55041BB9FAE8461315541029D2AD136C550410FB1A40B62315541420DBA2D4DC550414D258D316831554139DC415760C55041512EAC5C6D3155413777CBF25FC550417D14C3426D315541DD2E6A4E61C550410641B0A06D315541FB773B2667C55041683DDB346F315541BD8EB83368C550419D8B18D1603155411DA5B9B62CC5504170DB4A9B50315541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>79128 - 3181040
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+01060000000100000001030000000100000015000000F6285C2FCA9150416666664667245541AE47E15ACB915041A4703DFA7424554166666676CD91504148E17A947E245541E17A14CEDC915041C3F5280C8C24554185EB5148EB915041295C8F227F24554185EB5158E79150419A9999B9782455419A999989E29150410000006074245541CDCCCC7CDA91504148E17A04702455418FC2F588D79150417B14AEC76C24554185EB5138CF91504152B81EC56E24554148E17A84CE91504148E17A54682455413D0AD783DB915041EC51B8EE64245541C3F5281CDA9150411F85EB415E245541B81E85EBE29150418FC2F57859245541D7A3704DDB915041CDCCCCBC48245541A4703DFAC9915041E17A144E2424554148E17A24C19150411F85EB412724554166666656C2915041295C8F222C2455419A9999C9C6915041CDCCCCBC4224554152B81EE5C8915041A4703DAA52245541F6285C2FCA9150416666664667245541
+</a>
+
+<b>
+01060000000100000001030000000200000064000000A4703DFAC9915041E17A144E24245541CDCCCC3CCB9150415C8FC2E5232455417B14AEA7DC915041295C8F92472455411F85EB71DF915041F6285C7F49245541EC51B81EE8915041713D0A774A24554114AE47B1F5915041CDCCCCDC4E245541B81E851BFC9150410AD7A3D051245541D7A3706D1C925041F6285C2F67245541D7A370ED1E925041EC51B83E6824554148E17A0428925041713D0A176C2455410AD7A3E02A92504114AE47F16C24554114AE475134925041A4703DFA6D245541AE47E1FA4C925041295C8FA26D245541D7A3702D4E925041000000006D2455419A9999D93E925041E17A147E65245541AE47E16A3292504148E17AE45D245541C3F5289C3192504114AE47415D245541E17A147E28925041EC51B85E5724554185EB51281C92504185EB51684F245541C8F50B5F18925041B0F509164D245541B81E854B0D925041B81E854B46245541B2CF19D205925041FB68D692402455418FC2F5C8E8915041EC51B81E2B245541713D0A77E491504185EB5148272455411F85EBC1E1915041A4703D7A232455410AD7A360D8915041A4703D3A0524554100000030D69150411F85EB91FB235541F6285C5FD591504148E17A84F723554133333373D49150419A999919EE23554148E17A94D3915041A4703D6AEB235541A4703D7AD2915041333333D3E8235541E17A148ECF915041C3F5287CE52355410AD7A370CC9150411F85EBD1E22355411F85EB51C89150415C8FC245DF23554185EB5168BC91504185EB5168D7235541E17A143EB8915041000000B0D423554166666666B3915041C3F5282CD3235541CDCCCC9CB1915041295C8F12D3235541A4703DEAAE915041CDCCCCECD22355411F85EB81AE915041666666E6D223554152B81E25A2915041295C8F42D52355419A9999B9949150410AD7A340DA235541EC51B81E8E9150410AD7A300DF235541E14F45158C9150413DDB9B63E22355412DFE9D178991504153B1F372E7235541827D287D87915041C9948900EC23554176C3157B86915041F9862309F123554188B2BF82849150414F571879FF2355410719D6C98291504133BDA74D04245541E53B61C47F915041E65523BB08245541F6285C5F859150417B14AE07102455417B14AE678D915041713D0A371924554148E17A54959150418FC2F58822245541382C6E839A91504135FBEE9A28245541155282509E9150411BEEC8322D245541C33A1FCEA09150411F300FBE3124554160611A35A49150413AB44415382455411D14FB28A691504102173B283D245541A3FE5D6BA891504165E8330743245541F0420424AA915041316D2E764B245541CDCCCCFCAC915041295C8FF25A245541295C8F72AD915041A4703DFA69245541713D0A37AE91504185EB51C87524554114AE4771AF9150418FC2F5588124554145259AEAB09150419FDC7C4C8F245541DE7004D0B0915041AA1F82679224554133333343B0915041295C8F329C245541AE47E1CAAE915041F6285C2FA824554185EB51A8AD91504185EB5178AD245541666666A6B29150410AD7A330AD24554148E17AC4B69150419A9999C9AC2455410AD7A3B0B9915041F6285C2FAC24554133333323BB9150419A9999A9AB2455415C8FC215C291504166666646A7245541D7A3707DCB9150413D0AD713A0245541C3F5285CCB915041333333E39F245541EC51B84ED1915041E17A143E9B2455410AD7A360D6915041333333839624554185EB5198D9915041C3F528FC942455419A9999E9D8915041000000409424554100000040DD915041C3F528EC90245541AE47E12ADE915041D7A370ED8F245541E17A146EDC91504185EB51488E24554185EB5148EB915041295C8F227F245541E17A14CEDC915041C3F5280C8C24554166666676CD91504148E17A947E245541439B1226CD9150410D1D7B267D24554130FE4FE1CC91504164822FED7B2455418F86760DCC915041FD0BED277824554128E96768CB915041AC62DE3775245541AE47E15ACB915041A4703DFA74245541F6285C2FCA915041666666466724554166A8440DCA915041A054B9256524554165095F42C99150413E56177C5824554147A98A29C891504189479C204D245541569C6CF2C69150416CA754F14324554155F91CF9C291504157D5035D2F24554166666656C2915041295C8F222C24554148E17A24C19150411F85EB4127245541A4703DFAC9915041E17A144E24245541050000007B14AE77EA915041B81E85BB49245541713D0A17EB915041AE47E13A482455411F85EB81EE915041AE47E1CA492455411F85EBE1ED915041B81E854B4B2455417B14AE77EA915041B81E85BB49245541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>79128 - 5173014
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+01060000000100000001030000000100000015000000F6285C2FCA9150416666664667245541AE47E15ACB915041A4703DFA7424554166666676CD91504148E17A947E245541E17A14CEDC915041C3F5280C8C24554185EB5148EB915041295C8F227F24554185EB5158E79150419A9999B9782455419A999989E29150410000006074245541CDCCCC7CDA91504148E17A04702455418FC2F588D79150417B14AEC76C24554185EB5138CF91504152B81EC56E24554148E17A84CE91504148E17A54682455413D0AD783DB915041EC51B8EE64245541C3F5281CDA9150411F85EB415E245541B81E85EBE29150418FC2F57859245541D7A3704DDB915041CDCCCCBC48245541A4703DFAC9915041E17A144E2424554148E17A24C19150411F85EB412724554166666656C2915041295C8F222C2455419A9999C9C6915041CDCCCCBC4224554152B81EE5C8915041A4703DAA52245541F6285C2FCA9150416666664667245541
+</a>
+
+<b>
+01060000000100000001030000000200000063000000A4703DFAC9915041E17A144E24245541CDCCCC3CCB9150415C8FC2E5232455417B14AEA7DC915041295C8F92472455411F85EB71DF915041F6285C7F49245541EC51B81EE8915041713D0A774A24554114AE47B1F5915041CDCCCCDC4E245541B81E851BFC9150410AD7A3D051245541D7A3706D1C925041F6285C2F67245541D7A370ED1E925041EC51B83E6824554148E17A0428925041713D0A176C2455410AD7A3E02A92504114AE47F16C24554114AE475134925041A4703DFA6D245541AE47E1FA4C925041295C8FA26D245541D7A3702D4E925041000000006D2455419A9999D93E925041E17A147E65245541AE47E16A3292504148E17AE45D245541C3F5289C3192504114AE47415D245541E17A147E28925041EC51B85E5724554185EB51281C92504185EB51684F245541B81E854B0D925041B81E854B46245541E17A148E07925041AE47E1DA412455418FC2F5C8E8915041EC51B81E2B245541713D0A77E491504185EB5148272455411F85EBC1E1915041A4703D7A232455410AD7A360D8915041A4703D3A0524554100000030D69150411F85EB91FB235541F6285C5FD591504148E17A84F723554133333373D49150419A999919EE23554148E17A94D3915041A4703D6AEB235541A4703D7AD2915041333333D3E8235541E17A148ECF915041C3F5287CE52355410AD7A370CC9150411F85EBD1E22355411F85EB51C89150415C8FC245DF23554185EB5168BC91504185EB5168D7235541E17A143EB8915041000000B0D423554166666666B3915041C3F5282CD3235541CDCCCC9CB1915041295C8F12D3235541A4703DEAAE915041CDCCCCECD22355411F85EB81AE915041666666E6D223554152B81E25A2915041295C8F42D52355419A9999B9949150410AD7A340DA235541EC51B81E8E9150410AD7A300DF235541E14F45158C9150413DDB9B63E22355412DFE9D178991504153B1F372E7235541827D287D87915041C9948900EC23554176C3157B86915041F9862309F123554188B2BF82849150414F571879FF2355410719D6C98291504133BDA74D04245541E53B61C47F915041E65523BB08245541F6285C5F859150417B14AE07102455417B14AE678D915041713D0A371924554148E17A54959150418FC2F58822245541382C6E839A91504135FBEE9A28245541155282509E9150411BEEC8322D245541C33A1FCEA09150411F300FBE3124554160611A35A49150413AB44415382455411D14FB28A691504102173B283D245541A3FE5D6BA891504165E8330743245541F0420424AA915041316D2E764B245541CDCCCCFCAC915041295C8FF25A245541295C8F72AD915041A4703DFA69245541713D0A37AE91504185EB51C87524554114AE4771AF9150418FC2F5588124554145259AEAB09150419FDC7C4C8F245541DE7004D0B0915041AA1F82679224554133333343B0915041295C8F329C245541AE47E1CAAE915041F6285C2FA824554185EB51A8AD91504185EB5178AD245541666666A6B29150410AD7A330AD24554148E17AC4B69150419A9999C9AC2455410AD7A3B0B9915041F6285C2FAC24554133333323BB9150419A9999A9AB2455415C8FC215C291504166666646A7245541D7A3707DCB9150413D0AD713A0245541C3F5285CCB915041333333E39F245541EC51B84ED1915041E17A143E9B2455410AD7A360D6915041333333839624554185EB5198D9915041C3F528FC942455419A9999E9D8915041000000409424554100000040DD915041C3F528EC90245541AE47E12ADE915041D7A370ED8F245541E17A146EDC91504185EB51488E24554185EB5148EB915041295C8F227F245541E17A14CEDC915041C3F5280C8C24554166666676CD91504148E17A947E245541439B1226CD9150410D1D7B267D24554130FE4FE1CC91504164822FED7B2455418F86760DCC915041FD0BED277824554128E96768CB915041AC62DE3775245541AE47E15ACB915041A4703DFA74245541F6285C2FCA915041666666466724554166A8440DCA915041A054B9256524554165095F42C99150413E56177C5824554147A98A29C891504189479C204D245541569C6CF2C69150416CA754F14324554155F91CF9C291504157D5035D2F24554166666656C2915041295C8F222C24554148E17A24C19150411F85EB4127245541A4703DFAC9915041E17A144E24245541050000007B14AE77EA915041B81E85BB49245541713D0A17EB915041AE47E13A482455411F85EB81EE915041AE47E1CA492455411F85EBE1ED915041B81E854B4B2455417B14AE77EA915041B81E85BB49245541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>79128 - 52608
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+01060000000100000001030000000100000015000000F6285C2FCA9150416666664667245541AE47E15ACB915041A4703DFA7424554166666676CD91504148E17A947E245541E17A14CEDC915041C3F5280C8C24554185EB5148EB915041295C8F227F24554185EB5158E79150419A9999B9782455419A999989E29150410000006074245541CDCCCC7CDA91504148E17A04702455418FC2F588D79150417B14AEC76C24554185EB5138CF91504152B81EC56E24554148E17A84CE91504148E17A54682455413D0AD783DB915041EC51B8EE64245541C3F5281CDA9150411F85EB415E245541B81E85EBE29150418FC2F57859245541D7A3704DDB915041CDCCCCBC48245541A4703DFAC9915041E17A144E2424554148E17A24C19150411F85EB412724554166666656C2915041295C8F222C2455419A9999C9C6915041CDCCCCBC4224554152B81EE5C8915041A4703DAA52245541F6285C2FCA9150416666664667245541
+</a>
+
+<b>
+01060000000100000001030000000100000018000000439B1226CD9150410D1D7B267D24554130FE4FE1CC91504164822FED7B2455418F86760DCC915041FD0BED277824554128E96768CB915041AC62DE3775245541AE47E15ACB915041A4703DFA74245541F6285C2FCA915041666666466724554166A8440DCA915041A054B9256524554165095F42C99150413E56177C5824554147A98A29C891504189479C204D245541569C6CF2C69150416CA754F143245541E1DC5848C591504116A3D1523B245541A34C55CCC3915041D6C701343B245541E367CC8CC4915041E2DA9C07412455411A12F9D4C4915041A9F02B2A45245541B7107FADC5915041A9B0E79449245541EFBAABF5C59150411054B2174E2455412ED622B6C691504133BA2C54552455412ED622B6C69150417677F46F5B2455416B62E4EEC7915041B1832D7E6524554172D32E67C89150414411588977245541565E7678CA9150414391CF5E8024554149CB527ACD915041B2E528EF80245541D9DA0E3BCD9150413CF018867D245541439B1226CD9150410D1D7B267D245541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>79128 - 86055
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+01060000000100000001030000000100000015000000F6285C2FCA9150416666664667245541AE47E15ACB915041A4703DFA7424554166666676CD91504148E17A947E245541E17A14CEDC915041C3F5280C8C24554185EB5148EB915041295C8F227F24554185EB5158E79150419A9999B9782455419A999989E29150410000006074245541CDCCCC7CDA91504148E17A04702455418FC2F588D79150417B14AEC76C24554185EB5138CF91504152B81EC56E24554148E17A84CE91504148E17A54682455413D0AD783DB915041EC51B8EE64245541C3F5281CDA9150411F85EB415E245541B81E85EBE29150418FC2F57859245541D7A3704DDB915041CDCCCCBC48245541A4703DFAC9915041E17A144E2424554148E17A24C19150411F85EB412724554166666656C2915041295C8F222C2455419A9999C9C6915041CDCCCCBC4224554152B81EE5C8915041A4703DAA52245541F6285C2FCA9150416666664667245541
+</a>
+
+<b>
+01060000000100000001030000000100000018000000439B1226CD9150410D1D7B267D24554130FE4FE1CC91504164822FED7B2455418F86760DCC915041FD0BED277824554128E96768CB915041AC62DE3775245541AE47E15ACB915041A4703DFA74245541F6285C2FCA915041666666466724554166A8440DCA915041A054B9256524554165095F42C99150413E56177C5824554147A98A29C891504189479C204D245541569C6CF2C69150416CA754F143245541E1DC5848C591504116A3D1523B245541A34C55CCC3915041D6C701343B245541E367CC8CC4915041E2DA9C07412455411A12F9D4C4915041A9F02B2A45245541B7107FADC5915041A9B0E79449245541EFBAABF5C59150411054B2174E2455412ED622B6C691504133BA2C54552455412ED622B6C69150417677F46F5B2455416B62E4EEC7915041B1832D7E6524554172D32E67C89150414411588977245541565E7678CA9150414391CF5E8024554149CB527ACD915041B2E528EF80245541D9DA0E3BCD9150413CF018867D245541439B1226CD9150410D1D7B267D245541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>82958 - 425659
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -771 </desc>
+<a>
+0106000000010000000103000000010000000C000000333333235D8D5041F6285C7F68205541D7A370ED5B8D5041C3F5283C7420554114AE47E15B8D50411F85EBB1742055419A9999A95A8D5041D7A3706D7820554148E17AA45B8D50413D0AD7F378205541F6285CCF638D5041333333037B205541CDCCCC8C648D50419A99995978205541CDCCCC8C678D5041AE47E1EA7820554114AE47D1678D50415C8FC21577205541713D0AB7698D5041A4703D0A6A205541295C8FC2698D504185EB51B869205541333333235D8D5041F6285C7F68205541
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000D7A370ED5B8D5041C3F5283C7420554114AE47E15B8D50411F85EBB1742055419A9999A95A8D5041D7A3706D78205541F5F5757A5B8D50419A6754DD78205541590EFCD5638D504172695DEB7A205541426C02D6638D5041108146EB7A205541451F5CD6638D5041B1C403EA7A205541CED562EC648D50416FFCC3957520554114AE4791668D50418FC2F56869205541333333235D8D5041F6285C7F68205541D7A370ED5B8D5041C3F5283C74205541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>126796 - 10004
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000001700000014AE473145B95041C3F5288C4B4055411F85EB3141B95041A4703D2A53405541295C8FB23EB950416666663659405541E17A14FE3BB9504185EB5138624055419A9999D93AB95041295C8FD2664055411F85EBB13BB950418FC2F58868405541295C8FB25CB950419A9999F976405541713D0A5762B950411F85EB7179405541CDCCCC9C6CB95041000000F07D405541EC51B82E6EB950413D0AD7437D405541713D0A1771B950410000003075405541A4703DDA71B9504114AE471173405541AE47E12A72B950411F85EB3172405541CDCCCC6C7AB9504148E17A445B4055419A9999F979B950415C8FC2B55940554114AE477170B950413333334352405541E17A147E6CB95041D7A3702D4F4055418FC2F5586BB950417B14AE474E40554148E17A7453B95041666666663B405541D7A370AD51B950418FC2F5383A405541B81E85CB50B95041F6285C2F3A405541D7A3706D4AB950410AD7A3404340554114AE473145B95041C3F5288C4B405541
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000001F85EB3141B95041A4703D2A53405541B05495933EB950411DF58C9D5940554190775E023EB950413E311B815B405541799623B83DB95041FCB949785C4055417E63CE7F3FB950412F3A6C345D4055412E854D0543B9504162120FB054405541A1D9A8DE46B95041082A85944C405541ADB9A19E4BB950417174D7CC444055410CFD9FA952B95041E77412E43A405541D7A370AD51B950418FC2F5383A405541B81E85CB50B95041F6285C2F3A405541D7A3706D4AB950410AD7A3404340554114AE473145B95041C3F5288C4B4055411F85EB3141B95041A4703D2A53405541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>182846 - 1733918
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+01060000000100000001030000000100000016000000F6285C5FAF985041666666D68DFD5441333333D3B29850418FC2F5688FFD544100000050B898504148E17A4492FD544152B81EA5BB9850418FC2F53894FD54419A9999E9C09850410000005097FD54415C8FC2C5C7985041A4703D1A9CFD54411F85EBD1CB985041C3F5280C9FFD5441F6285C0FD6985041666666167DFD5441E17A14CEDF98504152B81EC55CFD544114AE47E1D198504152B81EA559FD5441295C8F42EA98504114AE475109FD544133333313AD985041B81E85AB1DFD54410AD7A310A2985041F6285CDF1CFD544133333333919850410AD7A3804DFD54419A9999D988985041A4703D9A68FD54411F85EB6182985041B81E85AB80FD5441295C8F2282985041EC51B84E82FD5441CDCCCCDC949850417B14AE9785FD5441D7A3708D99985041B81E857B86FD5441713D0AF7A0985041295C8F7288FD5441D7A370DDA99850410AD7A3808BFD5441F6285C5FAF985041666666D68DFD5441
+</a>
+
+<b>
+01060000000100000001030000000100000023000000D7A370DDA99850410AD7A3808BFD5441F6285C5FAF985041666666D68DFD5441333333D3B29850418FC2F5688FFD544100000050B898504148E17A4492FD544152B81EA5BB9850418FC2F53894FD54419A9999E9C09850410000005097FD54415C8FC2C5C7985041A4703D1A9CFD54411F85EBD1CB985041C3F5280C9FFD5441F6285C0FD6985041666666167DFD5441E17A14CEDF98504152B81EC55CFD5441A4703D9AFA98504148E17AE403FD5441295C8F42EA98504114AE475109FD544133333313AD985041B81E85AB1DFD54410AD7A310A2985041F6285CDF1CFD544181254C599E9850416B1D8B9627FD5441411F4AD19B98504136C310E32EFD5441036EE87B95985041C4274C2641FD544133333333919850410AD7A3804DFD5441497AEA8D909850410C2912994FFD544117986E588F985041D8F7808553FD54416EA76FEC8C985041B9B6B4615BFD5441DD6130AB89985041B95C04F265FD5441B8C96BFD86985041D0813E866FFD5441CF65A07383985041B1E3F9B07CFD5441295C8F2282985041EC51B84E82FD5441B264719C91985041C203AD0585FD54415D7738199698504122C7B9D385FD5441820386B19A985041C9FFF2C886FD5441985935259E9850414B2A35B387FD54410283D7439E98504166E3A6BC87FD54419433907E9E9850415A1FE5CA87FD5441718B96B79F98504197B2422F88FD5441C91F2FECA0985041FA9C7F9088FD544113E21A73A49850413AD2C4A489FD5441D7A370DDA99850410AD7A3808BFD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>182846 - 3445555
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+01060000000100000001030000000100000016000000F6285C5FAF985041666666D68DFD5441333333D3B29850418FC2F5688FFD544100000050B898504148E17A4492FD544152B81EA5BB9850418FC2F53894FD54419A9999E9C09850410000005097FD54415C8FC2C5C7985041A4703D1A9CFD54411F85EBD1CB985041C3F5280C9FFD5441F6285C0FD6985041666666167DFD5441E17A14CEDF98504152B81EC55CFD544114AE47E1D198504152B81EA559FD5441295C8F42EA98504114AE475109FD544133333313AD985041B81E85AB1DFD54410AD7A310A2985041F6285CDF1CFD544133333333919850410AD7A3804DFD54419A9999D988985041A4703D9A68FD54411F85EB6182985041B81E85AB80FD5441295C8F2282985041EC51B84E82FD5441CDCCCCDC949850417B14AE9785FD5441D7A3708D99985041B81E857B86FD5441713D0AF7A0985041295C8F7288FD5441D7A370DDA99850410AD7A3808BFD5441F6285C5FAF985041666666D68DFD5441
+</a>
+
+<b>
+01060000000100000001030000000100000023000000D7A370DDA99850410AD7A3808BFD5441F6285C5FAF985041666666D68DFD5441333333D3B29850418FC2F5688FFD544100000050B898504148E17A4492FD544152B81EA5BB9850418FC2F53894FD54419A9999E9C09850410000005097FD54415C8FC2C5C7985041A4703D1A9CFD54411F85EBD1CB985041C3F5280C9FFD5441F6285C0FD6985041666666167DFD5441E17A14CEDF98504152B81EC55CFD5441A4703D9AFA98504148E17AE403FD5441295C8F42EA98504114AE475109FD544133333313AD985041B81E85AB1DFD54410AD7A310A2985041F6285CDF1CFD544181254C599E9850416B1D8B9627FD5441411F4AD19B98504136C310E32EFD5441036EE87B95985041C4274C2641FD544133333333919850410AD7A3804DFD5441497AEA8D909850410C2912994FFD544117986E588F985041D8F7808553FD54416EA76FEC8C985041B9B6B4615BFD5441DD6130AB89985041B95C04F265FD5441B8C96BFD86985041D0813E866FFD5441CF65A07383985041B1E3F9B07CFD5441295C8F2282985041EC51B84E82FD5441B264719C91985041C203AD0585FD54415D7738199698504122C7B9D385FD5441820386B19A985041C9FFF2C886FD5441985935259E9850414B2A35B387FD54410283D7439E98504166E3A6BC87FD54419433907E9E9850415A1FE5CA87FD5441718B96B79F98504197B2422F88FD5441C91F2FECA0985041FA9C7F9088FD544113E21A73A49850413AD2C4A489FD5441D7A370DDA99850410AD7A3808BFD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>222544 - 2991521
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -28 </desc>
+<a>
+010600000001000000010300000001000000110000007B14AEC70C2A5141E17A142EACB8544133333373142A514148E17AA4B2B85441A4703DDA152A5141C3F528DCB1B85441713D0AD7222A514100000040ABB8544185EB51282E2A5141C3F5288CA3B8544148E17AC4322A5141D7A370BDA0B854413D0AD7C3392A51419A9999799CB85441F6285CFF482A51417B14AE3794B854411F85EB215D2A5141F6285CDF8AB8544166666676662A5141C3F528CC86B85441EC51B8CE6E2A5141295C8FA283B85441000000B06D2A51415C8FC2E580B8544114AE4781652A51417B14AE9782B85441333333135C2A51411F85EBB183B8544166666646532A51419A99991984B8544114AE47112D2A5141F6285C3F98B854417B14AEC70C2A5141E17A142EACB85441
+</a>
+
+<b>
+010600000001000000010300000001000000110000001326ADB1032A514153AC0BD3A3B85441467F8F510D2A5141A9FAE2E7ABB8544129C80642192A51413B9D117AA4B854418CED037D2A2A51413975F8D699B85441FF3C2888382A5141DD22BF3392B85441B170290F452A514142B2A2988BB854419FAFEF014E2A5141A34AABE086B854411382E12E502A5141E772FBBA85B85441E7A5181D532A51419DDF0C3484B85441133B9E5A462A5141DE5997ED84B854412EAFA9E93C2A5141FF4A4CE085B85441979D4409342A5141A41C8B9A87B85441F3CB390B242A5141D6D04D5F8DB85441EEC269E5142A5141D80C8A1296B85441267B883B0D2A5141781571A49BB85441926D88FA072A514171AF2F1BA0B854411326ADB1032A514153AC0BD3A3B85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>230510 - 150336
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000040000000103000000020000000800000085EB51685BFD5041B81E851B402954417B14AEA75EFD50410AD7A3A0512954410AD7A39061FD50418FC2F52861295441B81E85BB67FD50419A9999C97F2954419A99996970FD504114AE47F17E2954418FC2F50868FD50417B14AE875429544114AE471164FD50419A9999E93F29544185EB51685BFD5041B81E851B40295441050000005C8FC2A560FD504152B81EE540295441A4703D0A64FD50413D0AD79340295441C3F5281C64FD5041AE47E12A42295441C3F528DC60FD504152B81E85422954415C8FC2A560FD504152B81EE5402954410103000000010000000A000000A4703DFA17FE5041E17A14BE58295441A4703D9A1CFE5041295C8FD26D295441E17A145E24FE50417B14AE176D295441E17A141E27FE504152B81ED56C29544114AE473129FE5041333333A36C29544152B81EB529FE5041713D0A976C2954410AD7A3C024FE50411F85EBB157295441AE47E12A1EFE504152B81EB53B295441C3F528AC11FE5041D7A370FD3B295441A4703DFA17FE5041E17A14BE5829544101030000000100000006000000666666E612FE50417B14AE078D2954418FC2F50808FE5041A4703D1A8F2954418FC2F5E809FE5041295C8F8297295441E17A145E0CFE5041CDCCCC8CA4295441C3F5283C17FE5041666666A6A2295441666666E612FE50417B14AE078D2954410103000000010000000A000000713D0A2706FE5041000000403C295441295C8F42FBFD5041EC51B87E3C2954410AD7A350FFFD5041AE47E19A4F2954413333330306FE5041F6285C0F70295441A4703D7A0CFE5041E17A148E6F295441CDCCCCBC10FE5041D7A3701D6F29544185EB51A80DFE50413D0AD753602954413D0AD7C309FE50418FC2F5884D295441295C8F7208FE50416666662647295441713D0A2706FE5041000000403C295441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000F76E0E1E27FE5041AB4A1FD56C295441B9D0D3D428FE5041B268E3AB6C2954414EA7483129FE5041D1F232A36C295441C066954929FE5041175AF5A06C295441C6FAAB9729FE50418B8FC1996C2954418F151EB529FE5041744C0A976C29544105C4042527FE504109A54AC8612954410AD7A3C024FE50411F85EBB157295441AE47E12A1EFE504152B81EB53B2954414F2B29AC11FE5041A1A270FD3B29544146532D6F13FE50417509330644295441A4703DFA17FE5041E17A14BE58295441A4703D9A1CFE5041295C8FD26D295441E17A145E24FE50417B14AE176D295441F76E0E1E27FE5041AB4A1FD56C295441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>230510 - 290099
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000040000000103000000020000000800000085EB51685BFD5041B81E851B402954417B14AEA75EFD50410AD7A3A0512954410AD7A39061FD50418FC2F52861295441B81E85BB67FD50419A9999C97F2954419A99996970FD504114AE47F17E2954418FC2F50868FD50417B14AE875429544114AE471164FD50419A9999E93F29544185EB51685BFD5041B81E851B40295441050000005C8FC2A560FD504152B81EE540295441A4703D0A64FD50413D0AD79340295441C3F5281C64FD5041AE47E12A42295441C3F528DC60FD504152B81E85422954415C8FC2A560FD504152B81EE5402954410103000000010000000A000000A4703DFA17FE5041E17A14BE58295441A4703D9A1CFE5041295C8FD26D295441E17A145E24FE50417B14AE176D295441E17A141E27FE504152B81ED56C29544114AE473129FE5041333333A36C29544152B81EB529FE5041713D0A976C2954410AD7A3C024FE50411F85EBB157295441AE47E12A1EFE504152B81EB53B295441C3F528AC11FE5041D7A370FD3B295441A4703DFA17FE5041E17A14BE5829544101030000000100000006000000666666E612FE50417B14AE078D2954418FC2F50808FE5041A4703D1A8F2954418FC2F5E809FE5041295C8F8297295441E17A145E0CFE5041CDCCCC8CA4295441C3F5283C17FE5041666666A6A2295441666666E612FE50417B14AE078D2954410103000000010000000A000000713D0A2706FE5041000000403C295441295C8F42FBFD5041EC51B87E3C2954410AD7A350FFFD5041AE47E19A4F2954413333330306FE5041F6285C0F70295441A4703D7A0CFE5041E17A148E6F295441CDCCCCBC10FE5041D7A3701D6F29544185EB51A80DFE50413D0AD753602954413D0AD7C309FE50418FC2F5884D295441295C8F7208FE50416666662647295441713D0A2706FE5041000000403C295441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000F76E0E1E27FE5041AB4A1FD56C295441B9D0D3D428FE5041B268E3AB6C2954414EA7483129FE5041D1F232A36C295441C066954929FE5041175AF5A06C295441C6FAAB9729FE50418B8FC1996C2954418F151EB529FE5041744C0A976C29544105C4042527FE504109A54AC8612954410AD7A3C024FE50411F85EBB157295441AE47E12A1EFE504152B81EB53B2954414F2B29AC11FE5041A1A270FD3B29544146532D6F13FE50417509330644295441A4703DFA17FE5041E17A14BE58295441A4703D9A1CFE5041295C8FD26D295441E17A145E24FE50417B14AE176D295441F76E0E1E27FE5041AB4A1FD56C295441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>99455 - 3082006
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000010000000F000000AAC4C227788350416D0791EFF11B54417780D7447783504110D8543CF11B54411DEDE0BE73835041BC6CD80CF11B5441CDBD952172835041014004ACF01B54410AD7A360718350419A9999C9F01B54417B14AEC7718350419A999939F91B54410AD7A3F07183504133333343FA1B54413333334372835041CDCCCC5CFF1B5441A4703D2A7383504152B81EA5041C5441E17A141E75835041000000E0051C54417B14AE6777835041B81E853B061C54410AD7A3D07783504166666656031C5441A4703D5A7883504133333303FF1B5441A4703D7A78835041333333A3F91B5441AAC4C227788350416D0791EFF11B5441
+</a>
+
+<b>
+010600000001000000010300000001000000140000007B14AE6777835041B81E853B061C544189F2BB14788350413D27166A011C5441C811B85A7883504136229AEEFE1B5441B1C92C6D78835041133EFFD4FB1B54411305C67478835041EBE17921F91B5441578C1E457883504175099BB6F41B54411BEC9428788350410EEA6211F21B5441D1FE145C778350411E22B04EF11B5441215B5F1877835041997FFD39F11B54410BB901D976835041C078A736F11B5441CE4C93C775835041AD3C4228F11B54417BB0BCC873835041594B5D0DF11B5441CDBD952172835041014004ACF01B54410AD7A360718350419A9999C9F01B5441C1AEF59071835041B04E83BEF41B5441DEE3EEB0718350411AA0C35CF71B54414896782172835041A56E6947FD1B5441A4703D2A7383504152B81EA5041C5441E17A141E75835041000000E0051C54417B14AE6777835041B81E853B061C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>99455 - 3398618
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000010000000F000000AAC4C227788350416D0791EFF11B54417780D7447783504110D8543CF11B54411DEDE0BE73835041BC6CD80CF11B5441CDBD952172835041014004ACF01B54410AD7A360718350419A9999C9F01B54417B14AEC7718350419A999939F91B54410AD7A3F07183504133333343FA1B54413333334372835041CDCCCC5CFF1B5441A4703D2A7383504152B81EA5041C5441E17A141E75835041000000E0051C54417B14AE6777835041B81E853B061C54410AD7A3D07783504166666656031C5441A4703D5A7883504133333303FF1B5441A4703D7A78835041333333A3F91B5441AAC4C227788350416D0791EFF11B5441
+</a>
+
+<b>
+010600000001000000010300000001000000140000007B14AE6777835041B81E853B061C544189F2BB14788350413D27166A011C5441C811B85A7883504136229AEEFE1B5441B1C92C6D78835041133EFFD4FB1B54411305C67478835041EBE17921F91B5441578C1E457883504175099BB6F41B54411BEC9428788350410EEA6211F21B5441D1FE145C778350411E22B04EF11B5441215B5F1877835041997FFD39F11B54410BB901D976835041C078A736F11B5441CE4C93C775835041AD3C4228F11B54417BB0BCC873835041594B5D0DF11B5441CDBD952172835041014004ACF01B54410AD7A360718350419A9999C9F01B5441C1AEF59071835041B04E83BEF41B5441DEE3EEB0718350411AA0C35CF71B54414896782172835041A56E6947FD1B5441A4703D2A7383504152B81EA5041C5441E17A141E75835041000000E0051C54417B14AE6777835041B81E853B061C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>905702 - 1663649
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -16 </desc>
+<a>
+0106000000010000000103000000010000001F0000003D0AD763B8D650411F85EB31591F55418FC2F5C8C0D65041713D0A87631F55419A9999D9C3D65041EC51B80E671F5541C3F528CCC5D650417B14AEC7631F554148E17AC4C8D650417B14AED75E1F5541C3F5282CCAD650413D0AD7F35B1F554148E17AC4CDD65041AE47E15A551F5541333333F3CFD65041B81E855B511F554100000080D1D65041295C8FD24E1F5541B81E854BCDD650413D0AD7F34A1F5541F6285C1FC9D65041EC51B88E471F5541666666A6C4D6504148E17A64441F5541CDCCCC1CC3D650410AD7A370411F5541F6285C0FC1D65041F6285C5F3D1F5541B81E851BC0D65041AE47E10A3D1F554166666646B2D6504185EB5158371F5541295C8F52A2D65041713D0A57311F5541666666D6A0D65041A4703D6A341F55413D0AD7439ED650419A999919391F5541C3F5288C9CD65041295C8F123C1F5541333333D39CD65041A4703D0A3D1F554114AE47219DD650413D0AD7433E1F5541EC51B82E9ED65041295C8FE23F1F55410AD7A3D09FD6504100000060421F5541C3F528DCA0D6504114AE47A1431F5541D7A370CDA3D65041C3F528CC451F5541EC51B82EA7D650410AD7A360481F55410AD7A300ABD65041C3F5287C4B1F5541B81E858BAED65041F6285CEF4E1F5541D7A370DDB3D65041D7A3708D541F55413D0AD763B8D650411F85EB31591F5541
+</a>
+
+<b>
+01060000000100000001030000000100000024000000458576E4C9D65041CB6CE18E5C1F5541479E7461CAD65041865D08925B1F5541391F6A96CBD6504176EF085B591F55412A2ACA0DCCD65041DD84F57F581F55411690C961CED65041C7505C76541F55413E6B67E7CFD650414D6817C9511F55410DD02A7ED1D650412E8DDFD04E1F5541B81E854BCDD650413D0AD7F34A1F5541F6285C1FC9D65041EC51B88E471F5541666666A6C4D6504148E17A64441F5541CDCCCC1CC3D650410AD7A370411F5541F6285C0FC1D65041F6285C5F3D1F5541B81E851BC0D65041AE47E10A3D1F554166666646B2D6504185EB5158371F5541295C8F52A2D65041713D0A57311F5541666666D6A0D65041A4703D6A341F55413D0AD7439ED650419A999919391F5541C3F5288C9CD65041295C8F123C1F5541333333D39CD65041A4703D0A3D1F554114AE47219DD650413D0AD7433E1F5541EC51B82E9ED65041295C8FE23F1F55410AD7A3D09FD6504100000060421F5541C3F528DCA0D6504114AE47A1431F5541D7A370CDA3D65041C3F528CC451F5541EC51B82EA7D650410AD7A360481F55410AD7A300ABD65041C3F5287C4B1F5541B81E858BAED65041F6285CEF4E1F5541D7A370DDB3D65041D7A3708D541F55413D0AD763B8D650411F85EB31591F55418FC2F5C8C0D65041713D0A87631F5541D31268DCC3D6504123FF420A671F55414E4105E9C3D65041A25039F6661F554110334DECC3D65041BC53D4F9661F554127A751D1C6D650414AB07E0C621F5541BD1F7E74C8D6504138D3A75C5F1F5541458576E4C9D65041CB6CE18E5C1F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>905702 - 3307022
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -16 </desc>
+<a>
+0106000000010000000103000000010000001F0000003D0AD763B8D650411F85EB31591F55418FC2F5C8C0D65041713D0A87631F55419A9999D9C3D65041EC51B80E671F5541C3F528CCC5D650417B14AEC7631F554148E17AC4C8D650417B14AED75E1F5541C3F5282CCAD650413D0AD7F35B1F554148E17AC4CDD65041AE47E15A551F5541333333F3CFD65041B81E855B511F554100000080D1D65041295C8FD24E1F5541B81E854BCDD650413D0AD7F34A1F5541F6285C1FC9D65041EC51B88E471F5541666666A6C4D6504148E17A64441F5541CDCCCC1CC3D650410AD7A370411F5541F6285C0FC1D65041F6285C5F3D1F5541B81E851BC0D65041AE47E10A3D1F554166666646B2D6504185EB5158371F5541295C8F52A2D65041713D0A57311F5541666666D6A0D65041A4703D6A341F55413D0AD7439ED650419A999919391F5541C3F5288C9CD65041295C8F123C1F5541333333D39CD65041A4703D0A3D1F554114AE47219DD650413D0AD7433E1F5541EC51B82E9ED65041295C8FE23F1F55410AD7A3D09FD6504100000060421F5541C3F528DCA0D6504114AE47A1431F5541D7A370CDA3D65041C3F528CC451F5541EC51B82EA7D650410AD7A360481F55410AD7A300ABD65041C3F5287C4B1F5541B81E858BAED65041F6285CEF4E1F5541D7A370DDB3D65041D7A3708D541F55413D0AD763B8D650411F85EB31591F5541
+</a>
+
+<b>
+01060000000100000001030000000100000024000000458576E4C9D65041CB6CE18E5C1F5541479E7461CAD65041865D08925B1F5541391F6A96CBD6504176EF085B591F55412A2ACA0DCCD65041DD84F57F581F55411690C961CED65041C7505C76541F55413E6B67E7CFD650414D6817C9511F55410DD02A7ED1D650412E8DDFD04E1F5541B81E854BCDD650413D0AD7F34A1F5541F6285C1FC9D65041EC51B88E471F5541666666A6C4D6504148E17A64441F5541CDCCCC1CC3D650410AD7A370411F5541F6285C0FC1D65041F6285C5F3D1F5541B81E851BC0D65041AE47E10A3D1F554166666646B2D6504185EB5158371F5541295C8F52A2D65041713D0A57311F5541666666D6A0D65041A4703D6A341F55413D0AD7439ED650419A999919391F5541C3F5288C9CD65041295C8F123C1F5541333333D39CD65041A4703D0A3D1F554114AE47219DD650413D0AD7433E1F5541EC51B82E9ED65041295C8FE23F1F55410AD7A3D09FD6504100000060421F5541C3F528DCA0D6504114AE47A1431F5541D7A370CDA3D65041C3F528CC451F5541EC51B82EA7D650410AD7A360481F55410AD7A300ABD65041C3F5287C4B1F5541B81E858BAED65041F6285CEF4E1F5541D7A370DDB3D65041D7A3708D541F55413D0AD763B8D650411F85EB31591F55418FC2F5C8C0D65041713D0A87631F5541D31268DCC3D6504123FF420A671F55414E4105E9C3D65041A25039F6661F554110334DECC3D65041BC53D4F9661F554127A751D1C6D650414AB07E0C621F5541BD1F7E74C8D6504138D3A75C5F1F5541458576E4C9D65041CB6CE18E5C1F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>888719 - 585595
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+010600000001000000010300000001000000280000005224AB7F02E050412F4E728DA8ED5441902EFC1501E050415283BDA8A8ED5441C46EA5F1FEDF5041D6EDEDF2A8ED54414578FF6AFDDF5041849DF743A9ED54411360EC1CF8DF5041483DB15DAAED5441F7D03276EFDF504123DAED4CACED5441E0D48CEBEBDF504119F48722ADED54410E963056E9DF5041952758BEADED544168ECB47CE7DF5041C208E52DAEED5441D7A3703DE7DF5041CDCCCC3CAEED54413A15C287E5DF5041DFA43BC3A9ED5441829F385BE5DF5041E105AA4EA9ED5441326D2A71E4DF5041F0130FEAA6ED5441D183131CE4DF5041008E590BA6ED544135476981E2DF5041E8C14826A6ED544160024D08DADF5041EC4FCE2BA8ED5441CDAA1E66D7DF5041D222A8CCA8ED54417E0E9DD3D3DF5041BA9DD8A6A9ED54417C23416BD0DF5041ABD0FA76AAED544144A64055CEDF50410CBD62F6AAED5441FE9EE061CDDF50418AAC7330ABED5441F02EFE67CCDF50417531126CABED54416B66A8E3CBDF504184FEA48BABED5441E4AD7455CDDF5041636F9BFAAEED544152A89964CFDF504169AF9696B3ED54416A1EB821D1DF50417C01F67AB7ED5441D964ABEDD2DF5041F0E1D3FABAED5441CBBA1D9EE0DF5041EFEA95B8B7ED5441B345FAEAE7DF5041A3D6B2FBB5ED5441391B28D9EEDF5041BCD75955B4ED54419B138234F6DF50415EFD07A6B2ED5441C415E1FAFADF5041E6E980A9B1ED544196830C1EFEDF5041F1FB610BB1ED5441A9267B1504E0504124AA1796B0ED54415CDE78F705E0504167AA1471B0ED5441977A1C8906E0504104A60058B0ED5441D0C6DEF005E05041AE36366BACED5441258E869505E05041CA5D0A84AAED5441B4CAAA5205E050411501E356A8ED54415224AB7F02E050412F4E728DA8ED5441
+</a>
+
+<b>
+0106000000010000000103000000010000001500000052B81EF5C5DF50417B14AE779EED5441EC51B8CECBDF50410AD7A390ABED544133333303E4DF5041A4703DCAA5ED5441D7A3703DE7DF5041CDCCCC3CAEED5441E17A146EF4DF504114AE4721ABED5441A4703DEAFFDF5041F6285CBFA8ED5441295C8F7205E0504148E17A54A8ED544185EB518805E050418FC2F548A7ED5441E17A142E08E05041A4703DDA86ED5441AE47E12A07E050413D0AD72387ED54410AD7A3B0FCDF504114AE47C18AED544133333363F6DF5041A4703DBA8BED5441AE47E17AF3DF5041CDCCCC1C8DED5441E17A149EEEDF504114AE475190ED5441A4703DBAE7DF50418FC2F5D891ED5441A4703D8AE0DF50416666664694ED5441A4703DCADCDF50411F85EB6194ED5441000000C0D7DF50418FC2F58894ED54415C8FC295D2DF504152B81EC595ED5441F6285C3FC8DF5041E17A149E9AED544152B81EF5C5DF50417B14AE779EED5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>888719 - 1527177
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+010600000001000000010300000001000000280000005224AB7F02E050412F4E728DA8ED5441902EFC1501E050415283BDA8A8ED5441C46EA5F1FEDF5041D6EDEDF2A8ED54414578FF6AFDDF5041849DF743A9ED54411360EC1CF8DF5041483DB15DAAED5441F7D03276EFDF504123DAED4CACED5441E0D48CEBEBDF504119F48722ADED54410E963056E9DF5041952758BEADED544168ECB47CE7DF5041C208E52DAEED5441D7A3703DE7DF5041CDCCCC3CAEED54413A15C287E5DF5041DFA43BC3A9ED5441829F385BE5DF5041E105AA4EA9ED5441326D2A71E4DF5041F0130FEAA6ED5441D183131CE4DF5041008E590BA6ED544135476981E2DF5041E8C14826A6ED544160024D08DADF5041EC4FCE2BA8ED5441CDAA1E66D7DF5041D222A8CCA8ED54417E0E9DD3D3DF5041BA9DD8A6A9ED54417C23416BD0DF5041ABD0FA76AAED544144A64055CEDF50410CBD62F6AAED5441FE9EE061CDDF50418AAC7330ABED5441F02EFE67CCDF50417531126CABED54416B66A8E3CBDF504184FEA48BABED5441E4AD7455CDDF5041636F9BFAAEED544152A89964CFDF504169AF9696B3ED54416A1EB821D1DF50417C01F67AB7ED5441D964ABEDD2DF5041F0E1D3FABAED5441CBBA1D9EE0DF5041EFEA95B8B7ED5441B345FAEAE7DF5041A3D6B2FBB5ED5441391B28D9EEDF5041BCD75955B4ED54419B138234F6DF50415EFD07A6B2ED5441C415E1FAFADF5041E6E980A9B1ED544196830C1EFEDF5041F1FB610BB1ED5441A9267B1504E0504124AA1796B0ED54415CDE78F705E0504167AA1471B0ED5441977A1C8906E0504104A60058B0ED5441D0C6DEF005E05041AE36366BACED5441258E869505E05041CA5D0A84AAED5441B4CAAA5205E050411501E356A8ED54415224AB7F02E050412F4E728DA8ED5441
+</a>
+
+<b>
+0106000000010000000103000000010000001500000052B81EF5C5DF50417B14AE779EED5441EC51B8CECBDF50410AD7A390ABED544133333303E4DF5041A4703DCAA5ED5441D7A3703DE7DF5041CDCCCC3CAEED5441E17A146EF4DF504114AE4721ABED5441A4703DEAFFDF5041F6285CBFA8ED5441295C8F7205E0504148E17A54A8ED544185EB518805E050418FC2F548A7ED5441E17A142E08E05041A4703DDA86ED5441AE47E12A07E050413D0AD72387ED54410AD7A3B0FCDF504114AE47C18AED544133333363F6DF5041A4703DBA8BED5441AE47E17AF3DF5041CDCCCC1C8DED5441E17A149EEEDF504114AE475190ED5441A4703DBAE7DF50418FC2F5D891ED5441A4703D8AE0DF50416666664694ED5441A4703DCADCDF50411F85EB6194ED5441000000C0D7DF50418FC2F58894ED54415C8FC295D2DF504152B81EC595ED5441F6285C3FC8DF5041E17A149E9AED544152B81EF5C5DF50417B14AE779EED5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>888719 - 4200594
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+010600000001000000010300000001000000280000005224AB7F02E050412F4E728DA8ED5441902EFC1501E050415283BDA8A8ED5441C46EA5F1FEDF5041D6EDEDF2A8ED54414578FF6AFDDF5041849DF743A9ED54411360EC1CF8DF5041483DB15DAAED5441F7D03276EFDF504123DAED4CACED5441E0D48CEBEBDF504119F48722ADED54410E963056E9DF5041952758BEADED544168ECB47CE7DF5041C208E52DAEED5441D7A3703DE7DF5041CDCCCC3CAEED54413A15C287E5DF5041DFA43BC3A9ED5441829F385BE5DF5041E105AA4EA9ED5441326D2A71E4DF5041F0130FEAA6ED5441D183131CE4DF5041008E590BA6ED544135476981E2DF5041E8C14826A6ED544160024D08DADF5041EC4FCE2BA8ED5441CDAA1E66D7DF5041D222A8CCA8ED54417E0E9DD3D3DF5041BA9DD8A6A9ED54417C23416BD0DF5041ABD0FA76AAED544144A64055CEDF50410CBD62F6AAED5441FE9EE061CDDF50418AAC7330ABED5441F02EFE67CCDF50417531126CABED54416B66A8E3CBDF504184FEA48BABED5441E4AD7455CDDF5041636F9BFAAEED544152A89964CFDF504169AF9696B3ED54416A1EB821D1DF50417C01F67AB7ED5441D964ABEDD2DF5041F0E1D3FABAED5441CBBA1D9EE0DF5041EFEA95B8B7ED5441B345FAEAE7DF5041A3D6B2FBB5ED5441391B28D9EEDF5041BCD75955B4ED54419B138234F6DF50415EFD07A6B2ED5441C415E1FAFADF5041E6E980A9B1ED544196830C1EFEDF5041F1FB610BB1ED5441A9267B1504E0504124AA1796B0ED54415CDE78F705E0504167AA1471B0ED5441977A1C8906E0504104A60058B0ED5441D0C6DEF005E05041AE36366BACED5441258E869505E05041CA5D0A84AAED5441B4CAAA5205E050411501E356A8ED54415224AB7F02E050412F4E728DA8ED5441
+</a>
+
+<b>
+0106000000010000000103000000010000001500000052B81EF5C5DF50417B14AE779EED5441EC51B8CECBDF50410AD7A390ABED544133333303E4DF5041A4703DCAA5ED5441D7A3703DE7DF5041CDCCCC3CAEED5441E17A146EF4DF504114AE4721ABED5441A4703DEAFFDF5041F6285CBFA8ED5441295C8F7205E0504148E17A54A8ED544185EB518805E050418FC2F548A7ED5441E17A142E08E05041A4703DDA86ED5441AE47E12A07E050413D0AD72387ED54410AD7A3B0FCDF504114AE47C18AED544133333363F6DF5041A4703DBA8BED5441AE47E17AF3DF5041CDCCCC1C8DED5441E17A149EEEDF504114AE475190ED5441A4703DBAE7DF50418FC2F5D891ED5441A4703D8AE0DF50416666664694ED5441A4703DCADCDF50411F85EB6194ED5441000000C0D7DF50418FC2F58894ED54415C8FC295D2DF504152B81EC595ED5441F6285C3FC8DF5041E17A149E9AED544152B81EF5C5DF50417B14AE779EED5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>873759 - 181966
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -23 </desc>
+<a>
+0106000000010000000103000000010000000E0000008FC2F59866AE5041CDCCCC0CA5005541F6285C1F62AE5041EC51B88EAC005541EC51B8FE5AAE5041713D0A77B50055411F85EB3151AE5041713D0A87C000554185EB51C847AE5041AE47E1EACA005541F6285CEF4CAE5041295C8FA2CE0055417B14AEF751AE5041713D0A67C8005541EC51B89E56AE504166666676C3005541E17A14BE65AE50417B14AE37B5005541EC51B89E69AE5041EC51B85EB1005541295C8F426CAE504185EB5158AC00554114AE47416DAE5041CDCCCC0CAA005541AE47E1AA6CAE50413D0AD753A80055418FC2F59866AE5041CDCCCC0CA5005541
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000F6285C1F62AE5041EC51B88EAC0055417A07F0D65FAE504132201869AF00554100530A005DAE5041DECFC66CB30055411772DBAF5AAE50411EFA0FD0B50055411F85EB3151AE5041713D0A87C000554131BAA70B48AE5041FE4D8DA0CA005541E08EE6CD4CAE504108667B11CE00554169EED7154DAE5041C74EB4D3CD005541AAD4303151AE504191E9DB5CC90055417B14AEF751AE5041713D0A67C8005541EC51B89E56AE504166666676C30055413EDA2E845AAE5041C6581C04BF005541D5D8D6A15CAE504105704E8BBD005541387D666760AE504122AA4BDDB90055413000834464AE504160A1625EB600554152C04D8266AE5041ED75F974B40055415942E71367AE5041FC5580E4B30055417A56F4D067AE5041E6B3E928B30055411FE6A0F869AE5041D11F9E63B0005541C1A162456CAE50412344C110AC005541915AAEB56CAE50412E1CCA4EAB005541D513CAF96CAE5041400BB2B1AA005541E3CED40E6DAE5041AE5F2981AA005541FEE817396DAE5041FBC2AE1FAA005541AE47E1AA6CAE50413D0AD753A80055418FC2F59866AE5041CDCCCC0CA5005541F6285C1F62AE5041EC51B88EAC005541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>889276 - 999824
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -17 </desc>
+<a>
+0106000000010000000103000000010000004D000000CDCCCC7CD96851411F85EBA1CA335441295C8FC2D96851419A999979CD33544148E17AC4DA68514148E17A24CD3354417B14AE97E0685141E17A148ECA33544148E17A84E2685141713D0A07CA33544166666626E46851418FC2F518CA3354419A999939E56851419A9999E9CA33544185EB51F8E56851417B14AED7CB335441A4703D6AE6685141C3F528ECCC335441B81E859BE668514114AE4781CE33544114AE4781E668514100000090D03354419A999929E668514114AE4701D3335441000000B0E5685141A4703D2AD5335441EC51B8CEE46851411F85EB91D7335441666666F6E3685141F6285C2FD9335441C3F528FCE568514114AE4701DB335441AE47E13AEC685141AE47E1CADF33544133333323FA68514185EB5198EB335441713D0AA7F0685141E17A146EF233544114AE4771E76851411F85EB11F9335441B81E853BE868514152B81E55F93354418FC2F5A8EB6851418FC2F5A8FA33544166666636EF6851413D0AD7B3FB335441CDCCCC9CF268514133333373FC33544152B81E65F66851417B14AEE7FC335441AE47E13AFA6851410AD7A320FD33544148E17AB4FD6851418FC2F508FD33544152B81E3505695141E17A14BEFC33544148E17A94096951411F85EB91FC335441000000300D6951418FC2F518FB335441C3F528EC0F69514133333333F8335441C3F528DC12695141C3F528FCF3335441333333631E69514185EB51C8EA33544148E17A342269514185EB5168E63354415C8FC25524695141000000C0DF33544152B81E45296951411F85EBD1D8335441A4703DAA2F695141713D0A97D83354419A9999193169514148E17A54D83354415C8FC2F53469514114AE4721D5335441000000E0386951410AD7A360D3335441295C8F223B69514152B81EE5D333544148E17A343E695141A4703DDAD6335441713D0A373F695141E17A148ED6335441295C8F823C695141713D0AB7D3335441AE47E1DA326951419A9999E9CE335441333333B32B695141A4703D5ACB3354413D0AD74326695141666666A6C8335441EC51B89E1F695141666666C6C9335441295C8FD21A695141C3F528BCCA3354416666666614695141B81E859BC9335441A4703D1A106951415C8FC255C83354411F85EB610D69514152B81EE5C63354411F85EB610969514100000060C733544152B81E950469514133333393C63354419A9999A9FE685141F6285CEFC53354413D0AD7B3F96851419A9999F9C43354419A9999A9F6685141A4703D6AC2335441713D0AE7F46851417B14AEA7C033544133333343F0685141CDCCCC2CC03354417B14AE57EA685141E17A140EBB33544185EB51C8E768514114AE4741B63354415C8FC295E668514185EB51F8B3335441D7A3703DE36851419A9999A9B133544166666636E16851415C8FC2E5B1335441CDCCCC9CDF685141B81E858BB3335441666666C6DD685141B81E859BB633544152B81E05DD685141EC51B8AEB833544185EB5138DC685141A4703D6ABB335441713D0A77DB68514152B81E95BD335441D7A3700DDA685141000000C0BF33544100000040D96851418FC2F5C8C03354419A999949DA685141EC51B8DEC1335441295C8F22DB68514152B81ED5C03354419A999959DD6851410AD7A390C3335441713D0A77DB6851419A999919C733544152B81EF5D968514148E17A44C9335441CDCCCC7CD96851411F85EBA1CA335441
+</a>
+
+<b>
+0106000000010000000103000000010000005C000000790CA4BB35695141FFEE85CCD4335441000000E0386951410AD7A360D3335441666A78FA38695141E30F7468D33354413EB3E84539695141625E1F48D33354412A8C828C3B6951411388B02AD43354414C8D5F5B3E6951418B030BBBD6335441C610B4333F6951413BEECD92D63354411CFE50193F6951413779DF6ED6335441295C8F823C695141713D0AB7D3335441AE47E1DA326951419A9999E9CE335441333333B32B695141A4703D5ACB3354413D0AD74326695141666666A6C8335441EC51B89E1F695141666666C6C9335441295C8FD21A695141C3F528BCCA3354416666666614695141B81E859BC9335441A4703D1A106951415C8FC255C83354411F85EB610D69514152B81EE5C63354411F85EB610969514100000060C733544152B81E950469514133333393C63354419A9999A9FE685141F6285CEFC53354413D0AD7B3F96851419A9999F9C43354419A9999A9F6685141A4703D6AC2335441713D0AE7F46851417B14AEA7C033544133333343F0685141CDCCCC2CC03354417B14AE57EA685141E17A140EBB33544185EB51C8E768514114AE4741B63354415C8FC295E668514185EB51F8B3335441D7A3703DE36851419A9999A9B133544166666636E16851415C8FC2E5B1335441CDCCCC9CDF685141B81E858BB3335441666666C6DD685141B81E859BB633544152B81E05DD685141EC51B8AEB833544185EB5138DC685141A4703D6ABB335441713D0A77DB68514152B81E95BD335441D7A3700DDA685141000000C0BF33544100000040D96851418FC2F5C8C03354419A999949DA685141EC51B8DEC1335441295C8F22DB68514152B81ED5C03354419A999959DD6851410AD7A390C3335441713D0A77DB6851419A999919C733544152B81EF5D968514148E17A44C9335441CDCCCC7CD96851411F85EBA1CA335441295C8FC2D96851419A999979CD33544148E17AC4DA68514148E17A24CD3354417B14AE97E0685141E17A148ECA33544148E17A84E2685141713D0A07CA33544166666626E46851418FC2F518CA3354419A999939E56851419A9999E9CA33544185EB51F8E56851417B14AED7CB335441A4703D6AE6685141C3F528ECCC335441B81E859BE668514114AE4781CE33544114AE4781E668514100000090D03354419A999929E668514114AE4701D3335441000000B0E5685141A4703D2AD5335441EC51B8CEE46851411F85EB91D7335441666666F6E3685141F6285C2FD9335441C3F528FCE568514114AE4701DB335441AE47E13AEC685141AE47E1CADF33544133333323FA68514185EB5198EB335441713D0AA7F0685141E17A146EF233544114AE4771E76851411F85EB11F9335441B81E853BE868514152B81E55F93354418FC2F5A8EB6851418FC2F5A8FA33544166666636EF6851413D0AD7B3FB335441CDCCCC9CF268514133333373FC33544152B81E65F66851417B14AEE7FC335441AE47E13AFA6851410AD7A320FD33544148E17AB4FD6851418FC2F508FD33544152B81E3505695141E17A14BEFC335441E889745A09695141538A3594FC3354419245E8D3096951418FD6A58EFC3354413179F9F50C6951416B0FFD1FFB335441D83D97690E695141B3E4F8D7F9335441F4EA8B4210695141A5FF5CB5F73354417E6377AB1069514110C43A1DF7335441EC2C0FB61269514164467827F4335441001C8702176951419F9F339DF033544132AD1A97176951418876DA25F033544179A56FC81E69514125B04C54EA33544168AC2AE7216951415C8AECC0E6335441D5352C3824695141B3497A1CE03354413486DF3B24695141C22FBE16E0335441648D084924695141D968CBECDF335441E4DF3FFA25695141186DF862DD335441C6E02A0E26695141C5EB1745DD33544164E35537296951414E1B42D8D83354415C9C016D2B695141DFF1A9BFD8335441EB3376802B695141FD105FBDD83354419FA549A72E695141DC12BD9BD8335441A30ADC4E306951419763B16ED83354413D5D9B5734695141B11817AFD5335441790CA4BB35695141FFEE85CCD4335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>889276 - 3337306
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -17 </desc>
+<a>
+0106000000010000000103000000010000004D000000CDCCCC7CD96851411F85EBA1CA335441295C8FC2D96851419A999979CD33544148E17AC4DA68514148E17A24CD3354417B14AE97E0685141E17A148ECA33544148E17A84E2685141713D0A07CA33544166666626E46851418FC2F518CA3354419A999939E56851419A9999E9CA33544185EB51F8E56851417B14AED7CB335441A4703D6AE6685141C3F528ECCC335441B81E859BE668514114AE4781CE33544114AE4781E668514100000090D03354419A999929E668514114AE4701D3335441000000B0E5685141A4703D2AD5335441EC51B8CEE46851411F85EB91D7335441666666F6E3685141F6285C2FD9335441C3F528FCE568514114AE4701DB335441AE47E13AEC685141AE47E1CADF33544133333323FA68514185EB5198EB335441713D0AA7F0685141E17A146EF233544114AE4771E76851411F85EB11F9335441B81E853BE868514152B81E55F93354418FC2F5A8EB6851418FC2F5A8FA33544166666636EF6851413D0AD7B3FB335441CDCCCC9CF268514133333373FC33544152B81E65F66851417B14AEE7FC335441AE47E13AFA6851410AD7A320FD33544148E17AB4FD6851418FC2F508FD33544152B81E3505695141E17A14BEFC33544148E17A94096951411F85EB91FC335441000000300D6951418FC2F518FB335441C3F528EC0F69514133333333F8335441C3F528DC12695141C3F528FCF3335441333333631E69514185EB51C8EA33544148E17A342269514185EB5168E63354415C8FC25524695141000000C0DF33544152B81E45296951411F85EBD1D8335441A4703DAA2F695141713D0A97D83354419A9999193169514148E17A54D83354415C8FC2F53469514114AE4721D5335441000000E0386951410AD7A360D3335441295C8F223B69514152B81EE5D333544148E17A343E695141A4703DDAD6335441713D0A373F695141E17A148ED6335441295C8F823C695141713D0AB7D3335441AE47E1DA326951419A9999E9CE335441333333B32B695141A4703D5ACB3354413D0AD74326695141666666A6C8335441EC51B89E1F695141666666C6C9335441295C8FD21A695141C3F528BCCA3354416666666614695141B81E859BC9335441A4703D1A106951415C8FC255C83354411F85EB610D69514152B81EE5C63354411F85EB610969514100000060C733544152B81E950469514133333393C63354419A9999A9FE685141F6285CEFC53354413D0AD7B3F96851419A9999F9C43354419A9999A9F6685141A4703D6AC2335441713D0AE7F46851417B14AEA7C033544133333343F0685141CDCCCC2CC03354417B14AE57EA685141E17A140EBB33544185EB51C8E768514114AE4741B63354415C8FC295E668514185EB51F8B3335441D7A3703DE36851419A9999A9B133544166666636E16851415C8FC2E5B1335441CDCCCC9CDF685141B81E858BB3335441666666C6DD685141B81E859BB633544152B81E05DD685141EC51B8AEB833544185EB5138DC685141A4703D6ABB335441713D0A77DB68514152B81E95BD335441D7A3700DDA685141000000C0BF33544100000040D96851418FC2F5C8C03354419A999949DA685141EC51B8DEC1335441295C8F22DB68514152B81ED5C03354419A999959DD6851410AD7A390C3335441713D0A77DB6851419A999919C733544152B81EF5D968514148E17A44C9335441CDCCCC7CD96851411F85EBA1CA335441
+</a>
+
+<b>
+0106000000010000000103000000010000005C000000790CA4BB35695141FFEE85CCD4335441000000E0386951410AD7A360D3335441666A78FA38695141E30F7468D33354413EB3E84539695141625E1F48D33354412A8C828C3B6951411388B02AD43354414C8D5F5B3E6951418B030BBBD6335441C610B4333F6951413BEECD92D63354411CFE50193F6951413779DF6ED6335441295C8F823C695141713D0AB7D3335441AE47E1DA326951419A9999E9CE335441333333B32B695141A4703D5ACB3354413D0AD74326695141666666A6C8335441EC51B89E1F695141666666C6C9335441295C8FD21A695141C3F528BCCA3354416666666614695141B81E859BC9335441A4703D1A106951415C8FC255C83354411F85EB610D69514152B81EE5C63354411F85EB610969514100000060C733544152B81E950469514133333393C63354419A9999A9FE685141F6285CEFC53354413D0AD7B3F96851419A9999F9C43354419A9999A9F6685141A4703D6AC2335441713D0AE7F46851417B14AEA7C033544133333343F0685141CDCCCC2CC03354417B14AE57EA685141E17A140EBB33544185EB51C8E768514114AE4741B63354415C8FC295E668514185EB51F8B3335441D7A3703DE36851419A9999A9B133544166666636E16851415C8FC2E5B1335441CDCCCC9CDF685141B81E858BB3335441666666C6DD685141B81E859BB633544152B81E05DD685141EC51B8AEB833544185EB5138DC685141A4703D6ABB335441713D0A77DB68514152B81E95BD335441D7A3700DDA685141000000C0BF33544100000040D96851418FC2F5C8C03354419A999949DA685141EC51B8DEC1335441295C8F22DB68514152B81ED5C03354419A999959DD6851410AD7A390C3335441713D0A77DB6851419A999919C733544152B81EF5D968514148E17A44C9335441CDCCCC7CD96851411F85EBA1CA335441295C8FC2D96851419A999979CD33544148E17AC4DA68514148E17A24CD3354417B14AE97E0685141E17A148ECA33544148E17A84E2685141713D0A07CA33544166666626E46851418FC2F518CA3354419A999939E56851419A9999E9CA33544185EB51F8E56851417B14AED7CB335441A4703D6AE6685141C3F528ECCC335441B81E859BE668514114AE4781CE33544114AE4781E668514100000090D03354419A999929E668514114AE4701D3335441000000B0E5685141A4703D2AD5335441EC51B8CEE46851411F85EB91D7335441666666F6E3685141F6285C2FD9335441C3F528FCE568514114AE4701DB335441AE47E13AEC685141AE47E1CADF33544133333323FA68514185EB5198EB335441713D0AA7F0685141E17A146EF233544114AE4771E76851411F85EB11F9335441B81E853BE868514152B81E55F93354418FC2F5A8EB6851418FC2F5A8FA33544166666636EF6851413D0AD7B3FB335441CDCCCC9CF268514133333373FC33544152B81E65F66851417B14AEE7FC335441AE47E13AFA6851410AD7A320FD33544148E17AB4FD6851418FC2F508FD33544152B81E3505695141E17A14BEFC335441E889745A09695141538A3594FC3354419245E8D3096951418FD6A58EFC3354413179F9F50C6951416B0FFD1FFB335441D83D97690E695141B3E4F8D7F9335441F4EA8B4210695141A5FF5CB5F73354417E6377AB1069514110C43A1DF7335441EC2C0FB61269514164467827F4335441001C8702176951419F9F339DF033544132AD1A97176951418876DA25F033544179A56FC81E69514125B04C54EA33544168AC2AE7216951415C8AECC0E6335441D5352C3824695141B3497A1CE03354413486DF3B24695141C22FBE16E0335441648D084924695141D968CBECDF335441E4DF3FFA25695141186DF862DD335441C6E02A0E26695141C5EB1745DD33544164E35537296951414E1B42D8D83354415C9C016D2B695141DFF1A9BFD8335441EB3376802B695141FD105FBDD83354419FA549A72E695141DC12BD9BD8335441A30ADC4E306951419763B16ED83354413D5D9B5734695141B11817AFD5335441790CA4BB35695141FFEE85CCD4335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>501374 - 1261859
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -851 </desc>
+<a>
+01060000000100000001030000000100000063000000445481A95D5951414F8E696F13B15441B61E7201605951418C41AAD813B154419F8FC224625951417A7C643714B1544161A9846063595141C75D7E6114B15441295AB37C64595141C75D7E6114B15441F7A14E79655951411AD6046C14B15441A65F5E33675951412C9B4A0D14B15441EF760E2269595141F815E36413B15441BDBEA91E6A595141170902C712B15441D250F2646B595141E3839A1E12B15441E18688296D59514176E25EED10B154418616BF226F5951411306695D0FB154414299147E705951415D1A80E20DB15441064A439A71595141956951C60CB15441270A65A172595141C721B6C90BB154412340FB65745951410508F48D0AB154411348B8697659514143EE315209B15441A3A915A2785951411D97A36A08B154413F394C9B7A59514142212FAD07B15441695DDD277D595141C1BAADDA06B154413E727BC97F59514137BDBF2706B1544138DEA75283595141F6097FBE05B154417FF5574185595141B6563E5505B154416A66A864875951416E0C910B05B15441C0AB31148959514128C2E3C104B15441C60FA1998A5951413B87296304B154411D552A498C595141A0C4F50E04B154415674973B9059514192C919A902B15441E366C6E491595141EFFA8CE401B15441BF5D04D0925951419D0301EE00B154410B0B6E678E59514161146ACC02B1544164AAFE098C5951419308358403B1544138A50CC687595141D2CC3E6704B1544146B0545A84595141F2882BDE04B15441C6BFA17E825951410C91484A05B15441B587C33D8259514175B4E72203B1544134FFAF7780595141E7C65F6FFDB0544114ECD31E925951415DE41F50F4B054415BCF00F29D59514170921063EDB054411D84BDB0A0595141F8719CB2EBB0544160840DFBA1595141F044514BEDB054412919F372A45951416DCD19CCE9B0544100000000A9595141C3F5285CE3B05441D7A370FDAA595141EC51B8AEDDB05441EC51B8CEAC59514148E17A74D8B054413D0AD7D3AD59514185EB5158D1B0544133333323B4595141A4703D9AD5B0544185EB51E8B5595141D7A370CDD6B054410AD7A3B0BA59514166666646DAB054417B14AE17BB59514185EB5108DAB054410AD7A3D0BE59514185EB5168D7B05441295C8F32C05951413D0AD773D6B05441AE47E12AC1595141713D0AD7D5B0544114AE47C1C1595141C3F5286CD5B05441C3F5285CC2595141EC51B81ED5B054413D0AD743C059514148E17AD4BCB0544159D81C61BE59514124793174BDB05441713D0AF7BC595141000000F0BDB05441C3F5281CBC595141D7A3703DBEB05441EC51B86EBB5951410AD7A380BEB054418FC2F578BA595141A4703DBABEB0544114AE4701BA5951410AD7A3F0BEB0544100000020B9595141EC51B88EBFB05441EC51B84EB85951418FC2F508C0B05441A4703D9AB7595141B81E854BC0B05441AE47E1BAB6595141713D0A87C0B054410AD7A350B6595141C3F5289CC0B05441F6285CCFB5595141A4703D7AC0B054419A999939B559514100000050C0B054418FC2F5A8B4595141EC51B85EC0B0544133333313B3595141AE47E14AC1B05441CDCCCC9CAF5951413D0AD773C3B054413E7D615EAC5951411A7484B6C7B05441F58A0ECEA8595141FE252DA8CAB0544154C4B85DA15951418B5608F7D0B0544196C3CBA99E5951417FFF8F6DD4B05441AB9E52699B59514155EC2A6DD7B0544124EE1BD19459514102E374F4DEB054411AA0A329925951411BDFA464E1B054414967D8348F595141CAA7B3D7E3B0544182FE4B6B8C595141B934CC2DE7B0544194BD630A89595141C831A105EBB05441EA047B4086595141174D6AC2EEB0544156C17EAC805951415EE066DFF3B05441AF4906057B595141534177D1F7B0544112400F31755951410972255AFAB0544112C7488F715951417DDEC9FFFBB0544163B9314774595141EA48B33201B15441E905E0DA6E5951414CCBB0EA04B1544188E2389669595141613E58B809B15441746F91C86459514148AEAD9009B1544147CB95465E595141796FAC6C0BB15441D1CD6B2F575951417B1BAE250AB154419AF7EE8A58595141BFA3521612B154410CC12A2A54595141C95AE5F710B1544112C9C723555951412975B42412B1544123C4C393575951418D74A73312B154414DE854205A5951417418F5B112B15441445481A95D5951414F8E696F13B15441
+</a>
+
+<b>
+010600000001000000010300000001000000670000005B9DEC6D65595141426B8B6B14B15441FAA14E79655951411ED6046C14B15441A75F5E33675951412F9B4A0D14B15441F1760E2269595141FA15E36413B15441CDC66FDC695951410C4466F012B15441C0BEA91E6A5951411A0902C712B1544191B5F23F6B5951411916B33112B15441D550F2646B595141E5839A1E12B154411A059AFB6C5951415D0A590C11B15441E28688296D59514179E25EED10B154418116BF226F5951411306695D0FB154413F99147E70595141621A80E20DB15441024A439A71595141956951C60CB15441260A65A172595141C521B6C90BB154412840FB65745951410508F48D0AB154411048B8697659514144EE315209B1544103DCE5B476595141D79C832309B15441E32813907A5951416E80254207B15441CCAFC2F07C5951411A847E7D06B15441D712FD2B7F5951419EF4A9E705B154419630339980595141F01A058A05B154415624B5288359514184F975E104B154416868463884595141AD8CA3B204B154416709D3CA8859514180232ABF03B15441386B9A478B5951411CB93D0D03B154419BABD21B8D5951417F4DDE9C02B15441C5B5D8A192595141520E198700B154411B162B369359514149E74C7CFFB0544166E35A3B9159514131F83C2500B1544164FC893688595141489E624C03B15441A918906382595141A284326404B1544193AAEEAF81595141618D72A302B15441AC99FE06815951413FAC178300B154413137998380595141D9BF1CF2FDB05441ABA57D8B80595141C91407AFFDB0544137FFAF7780595141E5C65F6FFDB0544141FCBE9480595141D4B45B60FDB054419EE523A98059514141F501B3FCB054411DC12E918259514115D97199FBB05441030EECE39C59514143A0050EECB054416E738CD9A0595141130BD08FE9B05441063EA718A2595141B51020C8E9B054411F2DB76FA1595141AF4E9033ECB054414EE7B04CA159514197F19273ECB0544162840DFBA1595141EC44514BEDB054412719F372A459514171CD19CCE9B0544100000000A9595141C3F5285CE3B05441D7A370FDAA595141EC51B8AEDDB05441EC51B8CEAC59514148E17A74D8B054413D0AD7D3AD59514185EB5158D1B0544133333323B4595141A4703D9AD5B0544185EB51E8B5595141D7A370CDD6B054410AD7A3B0BA59514166666646DAB054417B14AE17BB59514185EB5108DAB054410AD7A3D0BE59514185EB5168D7B05441295C8F32C05951413D0AD773D6B05441AE47E12AC1595141713D0AD7D5B0544114AE47C1C1595141C3F5286CD5B05441C3F5285CC2595141EC51B81ED5B054413D0AD743C059514148E17AD4BCB054415ED81C61BE5951411F793174BDB05441713D0AF7BC595141000000F0BDB05441C3F5281CBC595141D7A3703DBEB05441EC51B86EBB5951410AD7A380BEB054418FC2F578BA595141A4703DBABEB0544114AE4701BA5951410AD7A3F0BEB0544100000020B9595141EC51B88EBFB05441E56042B3B359514147355DD1C2B05441C102D471B0595141CC512080C4B054413E7D615EAC595141197484B6C7B05441F38A0ECEA8595141FE252DA8CAB0544157C4B85DA1595141865608F7D0B0544198C3CBA99E5951417CFF8F6DD4B05441A99E52699B59514152EC2A6DD7B0544128EE1BD19459514101E374F4DEB0544118A0A329925951411DDFA464E1B054414A67D8348F595141CDA7B3D7E3B0544110CC9E438D595141FF74DD2AE6B0544125CD61C48D595141B43FA8E2E6B054417471D9FF8959514103079017EBB05441493214EA87595141CBB1B49DEDB05441D52F2E6D8859514113F7B86BEEB05441BEBD21B2815951415CB395EEF4B0544147C646E77F5951419E36EC13F8B054412368D8A57C595141D4D8EB64FCB05441312A864E7A595141C540F299FDB0544161B9314774595141ED48B33201B15441E505E0DA6E5951414FCBB0EA04B154418AE2389669595141653E58B809B15441746F91C86459514144AEAD9009B1544143CB95465E595141756FAC6C0BB15441CFCD6B2F575951417C1BAE250AB15441C339186F585951419C2BB85A11B154419AF7EE8A58595141BCA3521612B15441033AF86A5B595141972329F712B15441495481A95D5951414F8E696F13B1544168B1D29F5E5951415240A09A13B15441B61E7201605951418841AAD813B154419D8FC22462595141777C643714B154415DA9846063595141C95D7E6114B15441EBE12C7264595141C95D7E6114B154412A5AB37C64595141C95D7E6114B154415B9DEC6D65595141426B8B6B14B15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>501374 - 3400346
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -851 </desc>
+<a>
+01060000000100000001030000000100000063000000445481A95D5951414F8E696F13B15441B61E7201605951418C41AAD813B154419F8FC224625951417A7C643714B1544161A9846063595141C75D7E6114B15441295AB37C64595141C75D7E6114B15441F7A14E79655951411AD6046C14B15441A65F5E33675951412C9B4A0D14B15441EF760E2269595141F815E36413B15441BDBEA91E6A595141170902C712B15441D250F2646B595141E3839A1E12B15441E18688296D59514176E25EED10B154418616BF226F5951411306695D0FB154414299147E705951415D1A80E20DB15441064A439A71595141956951C60CB15441270A65A172595141C721B6C90BB154412340FB65745951410508F48D0AB154411348B8697659514143EE315209B15441A3A915A2785951411D97A36A08B154413F394C9B7A59514142212FAD07B15441695DDD277D595141C1BAADDA06B154413E727BC97F59514137BDBF2706B1544138DEA75283595141F6097FBE05B154417FF5574185595141B6563E5505B154416A66A864875951416E0C910B05B15441C0AB31148959514128C2E3C104B15441C60FA1998A5951413B87296304B154411D552A498C595141A0C4F50E04B154415674973B9059514192C919A902B15441E366C6E491595141EFFA8CE401B15441BF5D04D0925951419D0301EE00B154410B0B6E678E59514161146ACC02B1544164AAFE098C5951419308358403B1544138A50CC687595141D2CC3E6704B1544146B0545A84595141F2882BDE04B15441C6BFA17E825951410C91484A05B15441B587C33D8259514175B4E72203B1544134FFAF7780595141E7C65F6FFDB0544114ECD31E925951415DE41F50F4B054415BCF00F29D59514170921063EDB054411D84BDB0A0595141F8719CB2EBB0544160840DFBA1595141F044514BEDB054412919F372A45951416DCD19CCE9B0544100000000A9595141C3F5285CE3B05441D7A370FDAA595141EC51B8AEDDB05441EC51B8CEAC59514148E17A74D8B054413D0AD7D3AD59514185EB5158D1B0544133333323B4595141A4703D9AD5B0544185EB51E8B5595141D7A370CDD6B054410AD7A3B0BA59514166666646DAB054417B14AE17BB59514185EB5108DAB054410AD7A3D0BE59514185EB5168D7B05441295C8F32C05951413D0AD773D6B05441AE47E12AC1595141713D0AD7D5B0544114AE47C1C1595141C3F5286CD5B05441C3F5285CC2595141EC51B81ED5B054413D0AD743C059514148E17AD4BCB0544159D81C61BE59514124793174BDB05441713D0AF7BC595141000000F0BDB05441C3F5281CBC595141D7A3703DBEB05441EC51B86EBB5951410AD7A380BEB054418FC2F578BA595141A4703DBABEB0544114AE4701BA5951410AD7A3F0BEB0544100000020B9595141EC51B88EBFB05441EC51B84EB85951418FC2F508C0B05441A4703D9AB7595141B81E854BC0B05441AE47E1BAB6595141713D0A87C0B054410AD7A350B6595141C3F5289CC0B05441F6285CCFB5595141A4703D7AC0B054419A999939B559514100000050C0B054418FC2F5A8B4595141EC51B85EC0B0544133333313B3595141AE47E14AC1B05441CDCCCC9CAF5951413D0AD773C3B054413E7D615EAC5951411A7484B6C7B05441F58A0ECEA8595141FE252DA8CAB0544154C4B85DA15951418B5608F7D0B0544196C3CBA99E5951417FFF8F6DD4B05441AB9E52699B59514155EC2A6DD7B0544124EE1BD19459514102E374F4DEB054411AA0A329925951411BDFA464E1B054414967D8348F595141CAA7B3D7E3B0544182FE4B6B8C595141B934CC2DE7B0544194BD630A89595141C831A105EBB05441EA047B4086595141174D6AC2EEB0544156C17EAC805951415EE066DFF3B05441AF4906057B595141534177D1F7B0544112400F31755951410972255AFAB0544112C7488F715951417DDEC9FFFBB0544163B9314774595141EA48B33201B15441E905E0DA6E5951414CCBB0EA04B1544188E2389669595141613E58B809B15441746F91C86459514148AEAD9009B1544147CB95465E595141796FAC6C0BB15441D1CD6B2F575951417B1BAE250AB154419AF7EE8A58595141BFA3521612B154410CC12A2A54595141C95AE5F710B1544112C9C723555951412975B42412B1544123C4C393575951418D74A73312B154414DE854205A5951417418F5B112B15441445481A95D5951414F8E696F13B15441
+</a>
+
+<b>
+010600000001000000010300000001000000670000005B9DEC6D65595141426B8B6B14B15441FAA14E79655951411ED6046C14B15441A75F5E33675951412F9B4A0D14B15441F1760E2269595141FA15E36413B15441CDC66FDC695951410C4466F012B15441C0BEA91E6A5951411A0902C712B1544191B5F23F6B5951411916B33112B15441D550F2646B595141E5839A1E12B154411A059AFB6C5951415D0A590C11B15441E28688296D59514179E25EED10B154418116BF226F5951411306695D0FB154413F99147E70595141621A80E20DB15441024A439A71595141956951C60CB15441260A65A172595141C521B6C90BB154412840FB65745951410508F48D0AB154411048B8697659514144EE315209B1544103DCE5B476595141D79C832309B15441E32813907A5951416E80254207B15441CCAFC2F07C5951411A847E7D06B15441D712FD2B7F5951419EF4A9E705B154419630339980595141F01A058A05B154415624B5288359514184F975E104B154416868463884595141AD8CA3B204B154416709D3CA8859514180232ABF03B15441386B9A478B5951411CB93D0D03B154419BABD21B8D5951417F4DDE9C02B15441C5B5D8A192595141520E198700B154411B162B369359514149E74C7CFFB0544166E35A3B9159514131F83C2500B1544164FC893688595141489E624C03B15441A918906382595141A284326404B1544193AAEEAF81595141618D72A302B15441AC99FE06815951413FAC178300B154413137998380595141D9BF1CF2FDB05441ABA57D8B80595141C91407AFFDB0544137FFAF7780595141E5C65F6FFDB0544141FCBE9480595141D4B45B60FDB054419EE523A98059514141F501B3FCB054411DC12E918259514115D97199FBB05441030EECE39C59514143A0050EECB054416E738CD9A0595141130BD08FE9B05441063EA718A2595141B51020C8E9B054411F2DB76FA1595141AF4E9033ECB054414EE7B04CA159514197F19273ECB0544162840DFBA1595141EC44514BEDB054412719F372A459514171CD19CCE9B0544100000000A9595141C3F5285CE3B05441D7A370FDAA595141EC51B8AEDDB05441EC51B8CEAC59514148E17A74D8B054413D0AD7D3AD59514185EB5158D1B0544133333323B4595141A4703D9AD5B0544185EB51E8B5595141D7A370CDD6B054410AD7A3B0BA59514166666646DAB054417B14AE17BB59514185EB5108DAB054410AD7A3D0BE59514185EB5168D7B05441295C8F32C05951413D0AD773D6B05441AE47E12AC1595141713D0AD7D5B0544114AE47C1C1595141C3F5286CD5B05441C3F5285CC2595141EC51B81ED5B054413D0AD743C059514148E17AD4BCB054415ED81C61BE5951411F793174BDB05441713D0AF7BC595141000000F0BDB05441C3F5281CBC595141D7A3703DBEB05441EC51B86EBB5951410AD7A380BEB054418FC2F578BA595141A4703DBABEB0544114AE4701BA5951410AD7A3F0BEB0544100000020B9595141EC51B88EBFB05441E56042B3B359514147355DD1C2B05441C102D471B0595141CC512080C4B054413E7D615EAC595141197484B6C7B05441F38A0ECEA8595141FE252DA8CAB0544157C4B85DA1595141865608F7D0B0544198C3CBA99E5951417CFF8F6DD4B05441A99E52699B59514152EC2A6DD7B0544128EE1BD19459514101E374F4DEB0544118A0A329925951411DDFA464E1B054414A67D8348F595141CDA7B3D7E3B0544110CC9E438D595141FF74DD2AE6B0544125CD61C48D595141B43FA8E2E6B054417471D9FF8959514103079017EBB05441493214EA87595141CBB1B49DEDB05441D52F2E6D8859514113F7B86BEEB05441BEBD21B2815951415CB395EEF4B0544147C646E77F5951419E36EC13F8B054412368D8A57C595141D4D8EB64FCB05441312A864E7A595141C540F299FDB0544161B9314774595141ED48B33201B15441E505E0DA6E5951414FCBB0EA04B154418AE2389669595141653E58B809B15441746F91C86459514144AEAD9009B1544143CB95465E595141756FAC6C0BB15441CFCD6B2F575951417C1BAE250AB15441C339186F585951419C2BB85A11B154419AF7EE8A58595141BCA3521612B15441033AF86A5B595141972329F712B15441495481A95D5951414F8E696F13B1544168B1D29F5E5951415240A09A13B15441B61E7201605951418841AAD813B154419D8FC22462595141777C643714B154415DA9846063595141C95D7E6114B15441EBE12C7264595141C95D7E6114B154412A5AB37C64595141C95D7E6114B154415B9DEC6D65595141426B8B6B14B15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>875616 - 963350
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000000C000000B81E85DB75EB5041713D0A273FDE54413D0AD78379EB50419A9999F93ADE544185EB51987FEB50417B14AE8733DE5441A4703DEA78EB50410000000028DE544148E17AC477EB50417B14AEE725DE5441F6285CDF6AEB5041EC51B83E2EDE5441E17A14EE69EB5041333333C32EDE54418FC2F5586CEB5041D7A370BD34DE5441CDCCCC1C6FEB50415C8FC2F53ADE54415C8FC22572EB504114AE470140DE5441E17A142E74EB5041F6285C2F3EDE5441B81E85DB75EB5041713D0A273FDE5441
+</a>
+
+<b>
+0106000000010000000103000000010000002F000000713D0A674FEB504114AE4731FFDD5441666666A64CEB5041B81E85FBFFDD5441000000C04AEB504148E17A8400DE54411F85EBE144EB5041B81E85DB01DE5441333333A345EB504152B81E2504DE5441295C8F7248EB5041E17A14DE07DE54415C8FC28549EB5041F6285C6F09DE544172BCE4254FEB50418E968C4912DE54410C82075A50EB504115A5374F14DE544108FA8E3452EB5041A029B27C17DE5441EC51B8CE54EB50418FC2F5F81BDE5441A4703DCA57EB50411F85EB6120DE54419A9999D958EB50415C8FC2F521DE5441F6285CAF59EB5041E17A148E23DE544185EB51685AEB5041EC51B81E25DE5441295C8FF25AEB5041295C8FD226DE54417B14AE475BEB50413D0AD79328DE5441295C8F825BEB5041C3F5286C2ADE5441301E22E85BEB504138407E052CDE5441CD5914445EEB50416D74020432DE54412141A00B62EB504155CE5FFB3BDE5441DBEC397763EB5041E20DC2BC3FDE54417F6B8C8C64EB5041F66D788142DE5441ED09908267EB50411BDC67DE40DE54412A3C5CCE6CEB50417BE58DEE3DDE5441A6F76D1270EB5041B441108E3CDE54412CEFF0C96DEB50413B147BFB37DE54419B20B8B96CEB5041B7C41A9735DE544118326EF069EB5041A3D0E8C12EDE54417645B8CA6AEB504191AC3B192EDE5441D70690466AEB5041173D24242DDE5441E3FBBE1F69EB5041B4C60EBE2ADE5441C50565E866EB5041A4A2FAA725DE5441FF61831C65EB504153EB1E5E21DE544110EEEBA763EB50412ABF01D51DDE54417855DE905FEB50419DD8E61414DE5441564E2FA75CEB504125664F100EDE544175859C0C5CEB5041741872050DDE54410A9C2F745BEB5041C96A13E20BDE5441F6964CE55AEB50411406C2EB0ADE5441EA2235705AEB50411090F2C309DE544115C2DB885AEB504197B046C708DE5441B685460A5BEB5041C6D7650507DE54415849B18B5BEB5041B43297D404DE5441A4703D7A5AEB50418FC2F59803DE544161011AD655EB5041EAE3D624FDDD5441713D0A674FEB504114AE4731FFDD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>876215 - 1493949
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -764 </desc>
+<a>
+0106000000010000000103000000010000001C0000007B14AEB7A4E350415C8FC21580F054417B14AE77A6E35041EC51B87E7EF054418FC2F568A8E35041D7A3707D7CF054410AD7A330AAE35041A4703D2A7AF05441A4703D3AACE35041F6285CBF77F05441F6285C3FADE35041B81E85EB76F054413D0AD753AEE350410000004076F05441C3F5281CB0E35041D7A370AD75F054410AD7A3C0B2E35041B81E852B75F0544152B81E25B7E35041713D0A4774F0544152B81EF5B8E3504148E17AC473F05441CDCCCC9CBAE35041A4703D3A73F05441B81E85FBBBE35041F6285C8F72F054418FC2F528BDE350419A99996971F05441F6285CFFBDE350411F85EBD16FF054413D0AD7E3BDE35041CDCCCCCC67F05441B81E85DBBDE350411F85EB5165F0544114AE4791B4E35041E17A141E6DF05441CDCCCCECB1E35041AE47E13A6EF05441713D0AD7A9E35041000000406FF0544185EB51C8A3E35041B81E85DB6FF054415C8FC2959BE35041AE47E1EA7AF05441EC51B8FE9AE3504148E17A147CF054419A9999499EE35041713D0A977EF054413D0AD733A2E350410AD7A3C080F0544100000010A3E350419A9999E980F05441B81E85DBA3E350410AD7A3B080F054417B14AEB7A4E350415C8FC21580F05441
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000007B14AEB7A4E350415C8FC21580F054417B14AE77A6E35041EC51B87E7EF054418FC2F568A8E35041D7A3707D7CF054410AD7A330AAE35041A4703D2A7AF05441A4703D3AACE35041F6285CBF77F05441F6285C3FADE35041B81E85EB76F054413D0AD753AEE350410000004076F05441C3F5281CB0E35041D7A370AD75F054410AD7A3C0B2E35041B81E852B75F0544152B81E25B7E35041713D0A4774F0544152B81EF5B8E3504148E17AC473F05441CDCCCC9CBAE35041A4703D3A73F05441B81E85FBBBE35041F6285C8F72F054418FC2F528BDE350419A99996971F05441F6285CFFBDE350411F85EBD16FF054413D0AD7E3BDE35041CDCCCCCC67F05441B81E85DBBDE350411F85EB5165F05441F8109B05B6E35041B935BED96BF054413A5FE6DEACE350412F2C1EDE6EF05441560E2D7AABE3504160E5D05A6FF05441C976BEEFA7E350419CC4205870F054411D5A647BA5E350415C8FC26D71F05441F0A7C6A3A3E350417F6ABCBC72F05441F853E395A2E35041508D972E74F05441DD240671A1E350417B14AE2F7AF05441E77B5C9E9CE35041542ED62F7DF054419A9999499EE35041713D0A977EF054413D0AD733A2E350410AD7A3C080F0544100000010A3E350419A9999E980F05441B81E85DBA3E350410AD7A3B080F054417B14AEB7A4E350415C8FC21580F05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>876215 - 3397485
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -764 </desc>
+<a>
+0106000000010000000103000000010000001C0000007B14AEB7A4E350415C8FC21580F054417B14AE77A6E35041EC51B87E7EF054418FC2F568A8E35041D7A3707D7CF054410AD7A330AAE35041A4703D2A7AF05441A4703D3AACE35041F6285CBF77F05441F6285C3FADE35041B81E85EB76F054413D0AD753AEE350410000004076F05441C3F5281CB0E35041D7A370AD75F054410AD7A3C0B2E35041B81E852B75F0544152B81E25B7E35041713D0A4774F0544152B81EF5B8E3504148E17AC473F05441CDCCCC9CBAE35041A4703D3A73F05441B81E85FBBBE35041F6285C8F72F054418FC2F528BDE350419A99996971F05441F6285CFFBDE350411F85EBD16FF054413D0AD7E3BDE35041CDCCCCCC67F05441B81E85DBBDE350411F85EB5165F0544114AE4791B4E35041E17A141E6DF05441CDCCCCECB1E35041AE47E13A6EF05441713D0AD7A9E35041000000406FF0544185EB51C8A3E35041B81E85DB6FF054415C8FC2959BE35041AE47E1EA7AF05441EC51B8FE9AE3504148E17A147CF054419A9999499EE35041713D0A977EF054413D0AD733A2E350410AD7A3C080F0544100000010A3E350419A9999E980F05441B81E85DBA3E350410AD7A3B080F054417B14AEB7A4E350415C8FC21580F05441
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000007B14AEB7A4E350415C8FC21580F054417B14AE77A6E35041EC51B87E7EF054418FC2F568A8E35041D7A3707D7CF054410AD7A330AAE35041A4703D2A7AF05441A4703D3AACE35041F6285CBF77F05441F6285C3FADE35041B81E85EB76F054413D0AD753AEE350410000004076F05441C3F5281CB0E35041D7A370AD75F054410AD7A3C0B2E35041B81E852B75F0544152B81E25B7E35041713D0A4774F0544152B81EF5B8E3504148E17AC473F05441CDCCCC9CBAE35041A4703D3A73F05441B81E85FBBBE35041F6285C8F72F054418FC2F528BDE350419A99996971F05441F6285CFFBDE350411F85EBD16FF054413D0AD7E3BDE35041CDCCCCCC67F05441B81E85DBBDE350411F85EB5165F05441F8109B05B6E35041B935BED96BF054413A5FE6DEACE350412F2C1EDE6EF05441560E2D7AABE3504160E5D05A6FF05441C976BEEFA7E350419CC4205870F054411D5A647BA5E350415C8FC26D71F05441F0A7C6A3A3E350417F6ABCBC72F05441F853E395A2E35041508D972E74F05441DD240671A1E350417B14AE2F7AF05441E77B5C9E9CE35041542ED62F7DF054419A9999499EE35041713D0A977EF054413D0AD733A2E350410AD7A3C080F0544100000010A3E350419A9999E980F05441B81E85DBA3E350410AD7A3B080F054417B14AEB7A4E350415C8FC21580F05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>623189 - 1434609
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+0106000000010000000103000000020000001200000048E17AA4A9E25041EC51B8BE4A095541D7A370ADAAE25041333333C34A095541333333C3AAE25041EC51B8DE4909554166666636ABE250415C8FC22545095541CDCCCC9CAAE2504152B81E854309554114AE4711A6E25041D7A370ED41095541AE47E19AA2E250417B14AEF740095541333333E39EE2504152B81E65400955413D0AD7039BE2504148E17A9440095541E17A14EE96E25041D7A3703D41095541B81E859B78E250418FC2F588480955410AD7A3B077E25041D7A3706D490955410AD7A39076E25041A4703DCA55095541B81E85EB75E250410AD7A3E05C095541EC51B84E87E2504185EB51E8580955411F85EBB198E25041000000F054095541A4703D1AA9E2504114AE47315109554148E17AA4A9E25041EC51B8BE4A0955410C0000008FC2F5487AE25041E17A146E4B095541CDCCCC5C7EE25041666666A649095541295C8F428BE25041E17A145E46095541CDCCCC2C98E2504133333303440955417B14AE3798E25041C3F5289C48095541CDCCCC0C95E25041F6285C6F490955417B14AE978BE250418FC2F5784B0955411F85EB0181E25041AE47E14A4E095541E17A14EE7CE25041333333A34F095541AE47E16A78E250410AD7A3F050095541AE47E16A78E2504185EB5128500955418FC2F5487AE25041E17A146E4B095541
+</a>
+
+<b>
+0106000000010000000103000000020000001200000048E17AA4A9E25041EC51B8BE4A095541D7A370ADAAE25041333333C34A095541333333C3AAE25041EC51B8DE4909554166666636ABE250415C8FC22545095541CDCCCC9CAAE2504152B81E854309554114AE4711A6E25041D7A370ED41095541AE47E19AA2E250417B14AEF740095541333333E39EE2504152B81E65400955413D0AD7039BE2504148E17A9440095541E17A14EE96E25041D7A3703D41095541B81E859B78E250418FC2F588480955410AD7A3B077E25041D7A3706D490955410AD7A39076E25041A4703DCA55095541B81E85EB75E250410AD7A3E05C095541EC51B84E87E2504185EB51E8580955411F85EBB198E25041000000F054095541A4703D1AA9E2504114AE47315109554148E17AA4A9E25041EC51B8BE4A09554114000000B81657177AE250410DC6B0EB4B09554143060D667AE2504127261AA84A095541C6A2ED7983E250410E76F54348095541CD1F9B9287E250410B97524E47095541295C8F428BE25041E17A145E4609554192C85BB38CE25041EEBDD41A46095541C876844E8DE250417ACC7CF6450955411AB3DB8D98E25041E52204A943095541849FD74998E25041AB9651B548095541E1DBAEA195E2504162D15D8149095541E28302DD91E25041C59D1C1F4A0955415DD542978EE2504131261AA84A0955415A45D3368AE25041E1C626B14B095541D5C948E783E2504159269D664D095541EC7262D781E25041638802124E0955418D8006897FE25041BE58AFD14E095541538A48B778E250415302281F5109554193A1FDCB78E2504106159CD4500955418DCB009A79E250418417F7EE4D095541B81657177AE250410DC6B0EB4B095541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>623189 - 3467345
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+0106000000010000000103000000020000001200000048E17AA4A9E25041EC51B8BE4A095541D7A370ADAAE25041333333C34A095541333333C3AAE25041EC51B8DE4909554166666636ABE250415C8FC22545095541CDCCCC9CAAE2504152B81E854309554114AE4711A6E25041D7A370ED41095541AE47E19AA2E250417B14AEF740095541333333E39EE2504152B81E65400955413D0AD7039BE2504148E17A9440095541E17A14EE96E25041D7A3703D41095541B81E859B78E250418FC2F588480955410AD7A3B077E25041D7A3706D490955410AD7A39076E25041A4703DCA55095541B81E85EB75E250410AD7A3E05C095541EC51B84E87E2504185EB51E8580955411F85EBB198E25041000000F054095541A4703D1AA9E2504114AE47315109554148E17AA4A9E25041EC51B8BE4A0955410C0000008FC2F5487AE25041E17A146E4B095541CDCCCC5C7EE25041666666A649095541295C8F428BE25041E17A145E46095541CDCCCC2C98E2504133333303440955417B14AE3798E25041C3F5289C48095541CDCCCC0C95E25041F6285C6F490955417B14AE978BE250418FC2F5784B0955411F85EB0181E25041AE47E14A4E095541E17A14EE7CE25041333333A34F095541AE47E16A78E250410AD7A3F050095541AE47E16A78E2504185EB5128500955418FC2F5487AE25041E17A146E4B095541
+</a>
+
+<b>
+0106000000010000000103000000020000001200000048E17AA4A9E25041EC51B8BE4A095541D7A370ADAAE25041333333C34A095541333333C3AAE25041EC51B8DE4909554166666636ABE250415C8FC22545095541CDCCCC9CAAE2504152B81E854309554114AE4711A6E25041D7A370ED41095541AE47E19AA2E250417B14AEF740095541333333E39EE2504152B81E65400955413D0AD7039BE2504148E17A9440095541E17A14EE96E25041D7A3703D41095541B81E859B78E250418FC2F588480955410AD7A3B077E25041D7A3706D490955410AD7A39076E25041A4703DCA55095541B81E85EB75E250410AD7A3E05C095541EC51B84E87E2504185EB51E8580955411F85EBB198E25041000000F054095541A4703D1AA9E2504114AE47315109554148E17AA4A9E25041EC51B8BE4A09554114000000B81657177AE250410DC6B0EB4B09554143060D667AE2504127261AA84A095541C6A2ED7983E250410E76F54348095541CD1F9B9287E250410B97524E47095541295C8F428BE25041E17A145E4609554192C85BB38CE25041EEBDD41A46095541C876844E8DE250417ACC7CF6450955411AB3DB8D98E25041E52204A943095541849FD74998E25041AB9651B548095541E1DBAEA195E2504162D15D8149095541E28302DD91E25041C59D1C1F4A0955415DD542978EE2504131261AA84A0955415A45D3368AE25041E1C626B14B095541D5C948E783E2504159269D664D095541EC7262D781E25041638802124E0955418D8006897FE25041BE58AFD14E095541538A48B778E250415302281F5109554193A1FDCB78E2504106159CD4500955418DCB009A79E250418417F7EE4D095541B81657177AE250410DC6B0EB4B095541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>250078 - 2934137
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000100000025000000AE47E17ABA2D514114AE47D142755441EC51B82EB82D5141D7A3705D4A755441A4703D9ABE2D5141A4703D8A4C7554419A9999D9C42D5141CDCCCCCC4E755441E17A143ECC2D51413D0AD7835175544152B81EB5D12D5141AE47E1AA53755441B81E85CBCD2D51418FC2F5985A75544114AE47E1CC2D514148E17A245E755441B81E85ABC92D514148E17A5469755441E17A142EC82D5141333333036E7554417B14AE57C62D5141A4703DDA737554417B14AED7CC2D51419A9999B9757554417B14AEA7D22D5141666666667775544185EB5188D72D51415C8FC24579755441F6285C0FDE2D5141000000707C75544185EB5108E92D5141B81E857B80755441CDCCCC5CF62D5141A4703D8A8575544148E17AC4F82D5141713D0AD78575544152B81E15FA2D5141CDCCCC4C83755441F6285CAFFB2D51415C8FC2E57D755441333333C3FC2D5141A4703D4A7A755441C3F528CCFF2D5141A4703DEA71755441AE47E1AA022E51417B14AEA76B755441AE47E1DA042E5141D7A3709D667554415C8FC215082E5141E17A140E617554410AD7A3500D2E5141A4703D4A587554410AD7A3600D2E51419A9999B95675544152B81E550C2E5141333333B355755441EC51B89E022E5141C3F528DC50755441D7A370DDF42D51415C8FC2A54A75544148E17A04EA2D5141D7A3701D45755441B81E852BDD2D5141333333C33E755441000000C0D52D51419A9999E93B7554417B14AEE7CF2D5141CDCCCC1C3A755441CDCCCCACC32D5141666666A6357554417B14AE97BC2D51413D0AD7E33B755441AE47E17ABA2D514114AE47D142755441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000EE5F4AEAD12D51412D60DC10547554419F0E23ADCF2D5141C3DDE54357755441FF45C2C4CD2D5141B29B27B35A755441C56F6CA3CA2D5141ED5E7CF46575544198597377C72D51411732CE5F70755441D75DCD5EC62D51412990E80074755441F53D7B07CD2D5141226BD1E475755441EEE874D3D42D5141CB8B6375787554410F3837E5D82D5141E83359227A7554411EF4497ADD2D5141012592E97B7554410265C764E32D514109831B347E755441046578B3ED2D5141BE03F8408275544146C6029BF32D5141E759757E847554417F23675FF62D514113C1C47C85755441D8E2F4CCF82D5141099C8ECB85755441AAAE45FCF92D5141EE84CB7C83755441238856C2FC2D51414C3E204D7A75544180FC87EDFF2D51419E8573A171755441F084AFF2022E514193663D026B7554413BD0AC76032E5141F6DD22D269755441604A79C5022E5141BD64DDF168755441002AE2ABEE2D51414234AB3A60755441B79433B0DC2D5141F48B736E58755441707E032DD62D5141C661899B55755441EE5F4AEAD12D51412D60DC1054755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>250078 - 3801200
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000100000025000000AE47E17ABA2D514114AE47D142755441EC51B82EB82D5141D7A3705D4A755441A4703D9ABE2D5141A4703D8A4C7554419A9999D9C42D5141CDCCCCCC4E755441E17A143ECC2D51413D0AD7835175544152B81EB5D12D5141AE47E1AA53755441B81E85CBCD2D51418FC2F5985A75544114AE47E1CC2D514148E17A245E755441B81E85ABC92D514148E17A5469755441E17A142EC82D5141333333036E7554417B14AE57C62D5141A4703DDA737554417B14AED7CC2D51419A9999B9757554417B14AEA7D22D5141666666667775544185EB5188D72D51415C8FC24579755441F6285C0FDE2D5141000000707C75544185EB5108E92D5141B81E857B80755441CDCCCC5CF62D5141A4703D8A8575544148E17AC4F82D5141713D0AD78575544152B81E15FA2D5141CDCCCC4C83755441F6285CAFFB2D51415C8FC2E57D755441333333C3FC2D5141A4703D4A7A755441C3F528CCFF2D5141A4703DEA71755441AE47E1AA022E51417B14AEA76B755441AE47E1DA042E5141D7A3709D667554415C8FC215082E5141E17A140E617554410AD7A3500D2E5141A4703D4A587554410AD7A3600D2E51419A9999B95675544152B81E550C2E5141333333B355755441EC51B89E022E5141C3F528DC50755441D7A370DDF42D51415C8FC2A54A75544148E17A04EA2D5141D7A3701D45755441B81E852BDD2D5141333333C33E755441000000C0D52D51419A9999E93B7554417B14AEE7CF2D5141CDCCCC1C3A755441CDCCCCACC32D5141666666A6357554417B14AE97BC2D51413D0AD7E33B755441AE47E17ABA2D514114AE47D142755441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000EE5F4AEAD12D51412D60DC10547554419F0E23ADCF2D5141C3DDE54357755441FF45C2C4CD2D5141B29B27B35A755441C56F6CA3CA2D5141ED5E7CF46575544198597377C72D51411732CE5F70755441D75DCD5EC62D51412990E80074755441F53D7B07CD2D5141226BD1E475755441EEE874D3D42D5141CB8B6375787554410F3837E5D82D5141E83359227A7554411EF4497ADD2D5141012592E97B7554410265C764E32D514109831B347E755441046578B3ED2D5141BE03F8408275544146C6029BF32D5141E759757E847554417F23675FF62D514113C1C47C85755441D8E2F4CCF82D5141099C8ECB85755441AAAE45FCF92D5141EE84CB7C83755441238856C2FC2D51414C3E204D7A75544180FC87EDFF2D51419E8573A171755441F084AFF2022E514193663D026B7554413BD0AC76032E5141F6DD22D269755441604A79C5022E5141BD64DDF168755441002AE2ABEE2D51414234AB3A60755441B79433B0DC2D5141F48B736E58755441707E032DD62D5141C661899B55755441EE5F4AEAD12D51412D60DC1054755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>254667 - 1871449
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+01060000000100000001030000000200000053000000D7A370EDB29F50418FC2F528E03354417B14AED7BB9F50418FC2F5D8DE3354413D0AD7E3C19F5041E17A14CEDD335441A4703DDAC79F5041D7A3703DDC335441295C8F22CC9F5041000000F0DA33544152B81EF5D29F504166666656D9335441EC51B89ED79F5041CDCCCCBCD7335441295C8F42DB9F50418FC2F528D63354411F85EB71DE9F504114AE47E1D33354411F85EBA1E29F50411F85EB71D03354419A999909E69F50419A9999B9CC33544133333373E69F50411F85EB31CD335441713D0A47F29F5041CDCCCCACDA335441295C8F12FD9F504185EB5158DF3354419A9999F907A050413D0AD7A3E1335441F6285C7F19A050410AD7A3E0E23354413D0AD7A31BA05041B81E85BBEB335441295C8FC221A05041E17A146EE93354413D0AD7F32CA050413D0AD703E6335441EC51B85E36A05041295C8F62E33354410AD7A3803DA05041F6285C4FE23354418FC2F55845A0504114AE4761E233544185EB515845A050418FC2F528DE3354417B14AE5745A05041AE47E1AAD73354419A99995945A050415C8FC255CF3354418FC2F5B83FA050411F85EB51CE335441000000003AA05041D7A3707DCD3354416666664635A050418FC2F5E8CC335441F6285CFF31A05041E17A14BECC335441295C8F822FA05041E17A14DECC335441EC51B85E2AA05041295C8F72CD335441C3F5289C23A05041C3F5283CCE33544185EB51681AA050415C8FC245CF3354413D0AD76315A0504100000090CF3354417B14AE2712A05041AE47E15ACF335441AE47E1CA0FA05041B81E85FBCE3354419A9999590CA05041713D0A07CE335441333333F308A050418FC2F5C8CC335441C3F5280C06A050415C8FC235CB33544148E17AC403A05041D7A3706DC93354411F85EB9101A050410AD7A3D0C63354419A9999A9FF9F50413D0AD753C43354418FC2F56800A05041EC51B8FEC333544114AE473102A050410AD7A370C63354413D0AD76304A0504185EB51F8C833544114AE47A106A05041666666B6CA3354413333335309A0504148E17A34CC3354419A9999990CA0504185EB5168CD33544152B81EF50FA05041C3F5285CCE3354417B14AE4712A0504114AE47B1CE335441E17A146E15A05041B81E85DBCE33544185EB51681AA05041666666A6CE3354411F85EBB123A05041D7A3709DCD335441EC51B85E2AA05041E17A14DECC335441295C8F822FA05041EC51B83ECC335441F6285C1F32A05041F6285C1FCC3354415C8FC26535A05041EC51B83ECC335441AE47E12A3AA05041E17A14DECC335441E17A14EE3FA05041295C8FB2CD3354419A99995945A050413D0AD793CE3354419A99995945A050417B14AED7CC335441AE47E19A30A05041C3F5283CCA335441C3F5282C12A050411F85EB01C63354413D0AD7D305A050417B14AE87C3335441A4703D0A03A05041295C8F42C23354413333333300A05041B81E85EBBF3354410AD7A390FF9F50415C8FC265BF335441AE47E11AF69F5041A4703D9AB73354417B14AE67F59F50419A999929B7335441713D0A87E79F50415C8FC2F5A9335441F6285C4FDA9F504185EB51E8A03354410AD7A340D69F50419A9999C99A3354415C8FC275D59F504185EB51389C3354415C8FC275D59F5041F6285C1F9E33544185EB51C8D49F504148E17A149E33544185EB51C8D49F5041C3F528EC9B335441F6285CCFD39F504185EB51389C335441EC51B88ED39F5041B81E85AB9B3354418FC2F508D59F504185EB51E89A3354410AD7A3B0D59F5041000000F099335441CDCCCC9CC19F50410AD7A3009E33544152B81ED5AA9F50410AD7A360E1335441D7A370EDB29F50418FC2F528E03354410500000033333303C89F5041E17A142E9F335441C3F5286CCA9F5041EC51B8FE9D335441713D0AE7CB9F50419A9999E9A03354413D0AD793C99F50413D0AD723A233544133333303C89F5041E17A142E9F335441
+</a>
+
+<b>
+01060000000100000001030000000200000007010000AAF840043CA0504172265BABCB3354419A99995945A050417B14AED7CC3354414C17705945A05041FD10E709D03354413552A57745A0504198761E69E23354416A57F87D45A05041050FBC6AE23354411F85EBC14BA0504148E17A04E4335441A4703D6A4FA05041A4703D9AE53354410AD7A33055A050415C8FC295E7335441713D0AE758A0504185EB5198E93354415C8FC23560A05041666666D6EB3354419A99994969A05041A4703D6AEB335441EC51B87E6DA05041A4703DCAEE3354418FC2F5286FA050413D0AD7A3F0335441AE47E1AA6FA050413D0AD733F1335441E17A146E70A05041CDCCCC0CF2335441AE47E12A79A050417B14AEB7F9335441AE47E18A82A050413D0AD75302345441B81E856B87A05041295C8F02FE33544148E17A448AA05041295C8F42FC3354419A9999598EA05041D7A3705DF83354410AD7A3D08FA0504166666686F5335441CDCCCCAC8FA050417B14AE77F3335441C3F5286C90A050415C8FC2B5F13354418FC2F54890A050417B14AEC7EF3354411F85EB3190A05041C3F5282CEE3354411F85EB818EA0504185EB5128EC335441A4703D2A8CA0504152B81E65EB335441EC51B89E8BA05041D7A3700DE93354410AD7A3908BA0504114AE4741E7335441C3F5286C8AA050411F85EBB1E433544114AE479189A050417B14AE07E23354417B14AEB788A0504185EB51C8DE335441D7A3703D83A0504100000020D9335441F6285C1F83A05041713D0A27D6335441295C8F5284A05041EC51B8AED4335441A4703D1A84A05041666666C6D2335441A4703D8A84A050417B14AE77D133544185EB512884A050411F85EB81CF33544152B81E9583A050411F85EB91CF3354415C8FC2D581A0504114AE47A1CD335441333333F37FA0504185EB51F8CB3354410AD7A3407FA050417B14AE67CB335441295C8F627EA050418FC2F5D8C6335441B81E851B81A0504148E17AD4C4335441AE47E1AA83A0504166666616C333544148E17A3484A050413D0AD743C1335441EC51B82E84A0504114AE47D1BE335441C3F5284C84A05041E17A14CEBD3354415C8FC26585A05041E17A14EEBC335441CDCCCC6C83A0504152B81E75B83354413D0AD7E381A05041AE47E1CAB2335441EC51B86E81A050418FC2F5F8B1335441A4703D0A83A0504133333313AA33544185EB512883A050415C8FC235A93354411F85EBF184A050419A999979A03354413D0AD71384A050411F85EBC19F335441000000F082A05041295C8F129F335441F6285CAF83A050411F85EBB19D3354416666667685A05041666666C69A335441295C8F6287A050411F85EB9199335441AE47E16A88A0504166666646983354413D0AD75388A0504152B81E859633544114AE472189A050410000008094335441E17A141E89A0504114AE4731933354413D0AD70389A05041CDCCCC1C8F335441AE47E1EA89A05041713D0A278D335441713D0A9787A05041D7A3708D873354410AD7A31085A05041295C8FF287335441295C8F327EA05041D7A3701D8933544152B81E0576A05041295C8F828933544114AE479174A050415C8FC2D57F3354413333339370A050413D0AD7B3823354411F85EBF16FA0504152B81E1582335441000000206DA05041A4703D0A82335441713D0A8766A0504114AE4701823354410000002060A05041CDCCCCAC80335441CDCCCC3C5AA05041713D0A377E3354418FC2F51859A05041666666267933544114AE47F157A05041B81E85CB773354415C8FC24556A050418FC2F5E8763354419A99994953A05041AE47E1DA75335441EC51B80E48A050416666663674335441D7A370BD47A050410AD7A350793354410000009047A05041F6285CCF7A3354413D0AD77348A05041A4703DAA7C3354416666661649A0504185EB5128813354411F85EBD149A050411F85EB6186335441CDCCCCAC4BA050410AD7A3B094335441EC51B86E52A050411F85EB01943354413D0AD76353A05041C3F528CC9C33544114AE47E155A050413D0AD7239F335441EC51B8AE53A05041295C8F82A23354410000000053A050417B14AE57A5335441EC51B83E55A05041E17A147EA93354419A9999A956A05041C3F528DCAA335441F6285C3F57A0504152B81E15AC33544152B81EF558A05041CDCCCC4CAB335441CDCCCC4C5BA05041000000F0AD33544114AE47B15BA05041E17A144EAF3354417B14AE275BA0504114AE47D1B0335441CDCCCCBC59A050419A999999B13354415C8FC2F55AA05041F6285C6FB6335441F6285C7F5BA05041AE47E1BAB8335441C3F528FC5BA05041F6285CAFBC3354413D0AD7535CA0504185EB5178C1335441EC51B89E5CA050413D0AD7C3C333544114AE47415DA05041C3F5281CC63354419A9999795EA05041E17A14DEC7335441295C8F2260A0504148E17AE4C83354413333332362A0504185EB5148C933544152B81E7565A0504152B81E55C93354418FC2F5E86FA0504152B81E55C933544114AE47D175A050418FC2F5B8C9335441F6285C4F7AA0504148E17A74CA3354418FC2F5687CA05041713D0A17CB335441B81E851B7EA05041F6285C2FCC33544114AE47217FA05041B81E85EBCD335441D7A3705D7EA05041E17A146ECE335441000000B07DA0504133333313CD335441666666467CA0504100000000CC335441EC51B82E7AA050410AD7A360CB335441F6285C9F76A050411F85EBC1CA3354415C8FC2E56FA05041295C8F22CA3354410000008065A0504114AE4731CA335441000000F061A0504114AE4731CA3354418FC2F5D85FA05041B81E85CBC9335441EC51B8DE5DA05041D7A3708DC83354419A9999495CA0504114AE47A1C6335441A4703DAA5BA05041000000C0C333544185EB51C858A0504148E17A84C633544148E17A9456A05041E17A14EEC73354417B14AE1754A0504185EB5158C9335441E17A147E51A05041EC51B80ECC33544185EB51584FA05041713D0A17CE33544148E17A244DA050413D0AD763CF335441F6285C8F4BA050417B14AED7CF3354419A99996949A050411F85EB11D0335441241D31C845A05041B9FC0963CF335441A09A3FF945A0504108F2A296CE335441CDCCCC5C49A05041295C8F42CF3354419A9999094BA05041295C8F32CF335441666666A64CA050413D0AD7C3CE3354411F85EBA14EA050415C8FC2B5CD335441E17A14CE50A050419A9999B9CB33544185EB518853A05041F6285CEFC83354413333331356A0504133333313C7335441D7A3703D59A05041713D0AE7C43354419A9999E95AA05041AE47E10AC333544185EB51885BA05041F6285CCFC03354419A9999195BA050418FC2F518BC335441A4703D8A5AA0504100000050B8335441C3F5289C59A05041713D0AB7B4335441EC51B88E58A05041E17A146EB13354410AD7A37057A05041EC51B8EEB0335441713D0A3754A05041C3F5281CB233544114AE47114FA05041713D0AD7B433544152B81E054DA05041713D0AB7B4335441000000B047A0504100000060B0335441713D0AF743A050410AD7A300B0335441713D0A2744A0504185EB5148AC3354419A9999C942A0504185EB5148AC335441F6285CFF3FA050418FC2F5E8AB33544152B81E253DA05041A4703D2AAB335441B81E85EB39A05041B81E858BAA3354410000009037A05041B81E857BAA335441295C8F3236A05041713D0AB7AC3354413D0AD79335A0504114AE47A1AF335441E17A144E30A05041E17A146EB133544114AE47E126A05041B81E859BB23354411F85EB6126A05041E17A143EB1335441295C8F322EA05041333333D3AE33544152B81E0535A05041713D0AB7AC3354411F85EB9136A05041C3F5281CAA335441A4703D4A3AA05041CDCCCCDCA93354415C8FC2953CA05041B81E856BAA335441666666D641A050418FC2F578AB3354417B14AED743A050419A999969AB3354415C8FC2B544A05041CDCCCCFCA933544148E17A5445A05041295C8F22A73354411F85EBB146A050415C8FC275A5335441713D0A174CA050418FC2F598A33354417417367F4BA05041E3124BE1A2335441C402442F4BA050411800CF95A233544152B81ED54AA05041EC51B8BEA2335441B81E85EB42A05041A4703D9AA3335441CDCCCC0C3FA0504152B81E85A3335441000000003CA050419A999919A3335441EC51B80E3AA050413D0AD783A23354410000008038A05041333333C3A133544152B81EE535A050411F85EB419F335441A749216C33A050414E17B9169D33544122697F0731A050415516E49A9B3354414A988C702DA05041955F0CEE99335441B110C22C28A05041FD7F3F059933544152B81E5524A0504185EB51189A3354418FC2F56823A05041713D0AA79933544148E17AC421A0504114AE47E199335441713D0AE720A05041B81E850B9C3354418FC2F5A80FA05041B81E853B9C335441666666D60CA050410AD7A3209C335441295C8F920BA05041333333839B3354413D0AD7A30AA0504114AE47919A335441CDCCCC7C09A05041000000C09A3354417B14AEF708A0504148E17AD499335441000000E005A050418FC2F5789A335441CD64CFF204A050412FCB11509A3354410AD7A38003A0504148E17A249A33544185EB516802A050413D0AD7039A335441C3F5286C00A0504185EB51189A3354415C8FC285FF9F50417B14AEB799335441669AF488FE9F5041D94E88A49933544132C3E9C4FD9F5041D94E88A499335441EAD29892FC9F5041F0F3068C99335441C713FFC0FA9F50415688012A9933544196C82C76F99F5041283E045B9933544158D8DB43F89F5041BC1CFCC7983354417B14AE07F59F50417B14AEA797335441333333A3F29F5041713D0AE797335441713D0A87F19F5041295C8F329733544154A126FCEF9F50414055A0D196335441F60B57E2EE9F504157FA1EB996335441B51A3134EC9F50414DE1D84A963354416010C517E99F50410F0ACE8695335441A4703DFAE69F504185EB51889433544100000030E19F504114AE47B194335441F6285CDFDE9F504114AE47B1943354417B14AE97DD9F5041B81E85BB943354413D0AD783DC9F50418FC2F5F89433544148E17A84DB9F50418FC2F5689533544148E17A84DA9F5041CDCCCC0C96335441B81E857BD89F5041333333E397335441D7A370CDD79F50413D0AD7C398335441A352124DD69F5041066645C19A3354412F0E7C68D69F504135CE5B059B335441DFC20CABD69F50411D67C8699B335441565554F8D79F504172BD99609D335441578284E2D99F5041F878483BA033544181C89B0BDA9F5041F68CC578A033544167796289DA9F50411A74D90AA1335441C6E0BBCCDC9F5041AC0B3F97A233544109477BACE69F5041CC00C258A9335441E1E2307EE79F5041300CB3EFA9335441FF9D1E0EE89F5041CC09066AAA335441D87C576BE99F5041D4BAC0C5AB3354410525379BE99F5041D5EA0CF0AB3354416FBDE0E2EA9F50418585C627AD335441D44A3C01F69F5041DFBD2787B73354414EC9D10203A050410427723CC2335441381BDE5403A050417D8C8F64C2335441728AD0D805A050418CBC8B89C33354410B01F3B711A050417B0B99EAC533544143371C9713A05041FA869633C63354414EF314CF13A05041EB351D3CC63354416655D5D415A05041D07A0984C6335441255CD4E41BA05041278AA15BC73354414D9DAB1A23A050411A4C0B5CC8335441E2508F3123A05041B34A395FC8335441EFE9FD1F2BA050414A7A4779C9335441A4EC70592BA05041BA7C4281C93354414D327C652BA05041FECBEE82C93354419165F04930A05041198AEA30CA335441C2B642AC36A050415FB268FFCA335441AAF840043CA0504172265BABCB3354410C000000FB147015F79F5041AF0F827DB6335441518AB1BFF69F5041AEEF430FB6335441F9A491B9F69F5041A3CF05A1B5335441D4FFE8B5F89F50418F2FCA9FB4335441AF7A7E20FB9F504166BFF01DB33354412970B883FC9F504112CAB1E0B23354410FBBEB6EFF9F5041ECF9183AB13354419130236501A05041DD399AF0B0335441A720FF5302A050413ADF3840B1335441B2154D1FFF9F5041FDF91360B233544157955E1AFB9F5041303A8B62B4335441FB147015F79F5041AF0F827DB6335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>259069 - 303376
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -11 </desc>
+<a>
+01060000000100000001030000000100000058000000666666D6323C51418FC2F578E687544185EB51C82F3C5141D7A3709DE6875441AE47E1BA2C3C5141F6285C7FE78754418FC2F5282A3C5141713D0A77E8875441333333B3283C51410AD7A360EA875441AE47E11A283C5141000000A0EB87544114AE47D1273C5141F6285CCFEC8754410AD7A330283C5141D7A3700DEE8754418FC2F5B8293C5141CDCCCC2CF0875441C3F5289C2A3C51410AD7A370F28754419A9999B92B3C5141F6285CAFF387544185EB51482D3C5141B81E85ABF4875441E17A145E2E3C5141A4703DEAF4875441AE47E14A2F3C514152B81E75F5875441E17A142E343C5141D7A3708DFB875441295C8F823C3C51419A9999190288544148E17A843F3C51417B14AE67FF875441713D0A07423C51415C8FC2C5FF8754410AD7A350463C5141B81E857B04885441713D0AC7483C5141F6285C0F07885441EC51B85E4C3C51419A999989058854410AD7A350503C51417B14AEA7058854418FC2F5E8533C51415C8FC2B5068854418FC2F598583C5141D7A370AD09885441AE47E10A643C51419A9999690C885441295C8F12663C5141B81E85CB0E885441EC51B8BE693C51419A9999E90E8854418FC2F5D86D3C51417B14AE670E885441E17A148E703C514185EB51E80A88544148E17AF4743C51419A9999E90488544148E17AD47B3C51417B14AE17098854410AD7A3D07F3C51419A9999B9028854410AD7A350823C51411F85EB81FE875441AE47E1CA853C51415C8FC2B5F7875441EC51B8DE853C51417B14AEC7F4875441B81E851B843C51417B14AEF7EF875441CDCCCCEC813C51411F85EBE1E9875441713D0A977D3C51415C8FC295E08754418FC2F5F87A3C51417B14AEA7D8875441713D0A97783C5141F6285CEFD1875441AE47E10A783C51411F85EB01CF875441AE47E15A783C51415C8FC245CC87544148E17AA4793C5141B81E855BCA87544148E17A147D3C51413D0AD7A3C88754418FC2F5B87E3C5141F6285C5FC6875441AE47E15A7A3C5141F6285C5FC2875441E17A14AE783C5141666666D6C0875441000000306E3C5141B81E853BB78754417B14AE37533C51413D0AD783A2875441CDCCCCBC523C51411F85EBC1A087544185EB51684D3C5141D7A370ED9E87544185EB5128453C5141295C8F629C875441295C8F423B3C51411F85EB819A875441EC51B8CE363C51411F85EBF198875441713D0AF7363C51417B14AEB79B875441713D0AE72D3C51415C8FC2859B875441EC51B80E243C5141D7A3709D9C875441333333F31D3C5141A4703D7A9E875441AE47E1DA1B3C5141E17A149EA0875441D7A3703D1A3C514148E17A24A68754413D0AD7E3173C5141CDCCCC7CAC875441666666761C3C514100000050AE875441295C8F02213C5141295C8F52AF875441A4703D7A233C514133333343AF8754415C8FC275243C5141E17A143EAF875441000000D02D3C514148E17A34AE87544148E17A24323C5141D7A3705DAE8754415C8FC265353C5141CDCCCC5CAF8754415C8FC285373C5141713D0A17B1875441295C8F72393C514133333373B4875441A4703D4A3E3C5141A4703DDAC0875441CDCCCC0C413C51417B14AE47C887544148E17A54403C51418FC2F538C9875441666666A63E3C5141C3F5286CCB875441F6285C0F403C514148E17AF4CE875441EC51B8BE3A3C51418FC2F5F8D48754418FC2F5A83E3C5141713D0A07DD8754415C8FC2953F3C51418FC2F538E0875441D7A3703D3B3C514100000010E2875441D7A3709D3A3C514114AE47F1E38754419A999949363C5141666666F6E2875441AE47E18A343C5141D7A3709DE3875441EC51B89E343C5141B81E854BE587544100000050373C51411F85EB31E6875441295C8FA2393C5141C3F5287CE6875441713D0A27393C51415C8FC205E987544133333383383C5141AE47E1CAE8875441666666D6323C51418FC2F578E6875441
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000C7FD5CF7173C5141D6541648AC87544171F917011C3C5141A4192E21AE875441F7F3CD1B213C51410337F251AF875441A4703D7A233C514133333343AF8754415C8FC275243C5141E17A143EAF875441E9AF1FCB273C5141C8829BBEAE8754413488AC7C283C5141592524F1AC875441E3F613E82A3C51411964621DAD87544108E8FEFA2C3C51411964621DAD875441BD7048C1313C51415103FCE0AC875441F23C47E9343C5141FF01A736AF8754415C8FC265353C5141CDCCCC5CAF8754415C8FC285373C5141713D0A17B1875441295C8F72393C514133333373B487544104C83C4B3B3C5141E382CF2DB98754413E01B9233D3C51417FD1EDE7BD87544165EB51B33E3C5141DF0AB2C7C08754417A06A497533C5141B11DE7FAA2875441B20A3E95533C5141DE0353D3A2875441704F4692533C5141B1936EC9A28754417B14AE37533C51413D0AD783A2875441281651DB523C5141AC54F157A1875441672BEBBF523C51414814BDE8A08754415B2B94AC523C5141D9FE1DCAA0875441AB3B3BB64E3C51413FC215609F87544185EB51684D3C5141D7A370ED9E87544132B7B18B453C514147712F819C87544178216564453C5141905D90769C8754413F161958373C5141B691CBE999875441EE892811373C5141EA675FDA9B875441587E643E363C514128F7B4B39B875441E5F4B3D8333C51415C8280A69B875441CFF87CB3303C5141950D2D959B8754410F31B7F52A3C51416C3F5BD99B875441EC51B80E243C5141D7A3709D9C875441504D4DCF233C51416A8EC7B09C875441C0C1C746213C5141FA4F8C769D87544184AC3AF31D3C51412C293B7A9E875441DC1536021C3C51414B66E775A087544113DB95481A3C5141F2E059FEA5875441D7A3703D1A3C514148E17A24A6875441C7FD5CF7173C5141D6541648AC875441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262138 - 207329
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+0106000000010000000103000000010000001100000014AE47E17C6D51410AD7A390503B544114AE47F1896D51417B14AE275E3B54415C8FC2358A6D51419A9999895E3B5441333333E39F6D5141C3F5286C753B5441C3F5289CAF6D51418FC2F548853B5441F6285C1FB06D514148E17AE4853B544166666656B06D51415C8FC225863B5441CDCCCC6CB36D5141EC51B8EE833B5441D7A370BDB66D51413D0AD783813B5441F6285C7FB66D5141295C8F42813B544152B81E35B06D514152B81ED5853B5441CDCCCCACAF6D5141CDCCCC3C853B5441CDCCCCECB56D51417B14AEB7803B54417B14AEC7906D5141CDCCCC9C583B5441D7A3707D906D51411F85EB31583B5441000000C0856D5141000000704C3B544114AE47E17C6D51410AD7A390503B5441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000014AE47F1896D51417B14AE275E3B544176C0B5358A6D51410A4987895E3B5441C7C36B3A8A6D51410F45858E5E3B54418B95C5BB906D51416B04A88B583B544199F8806D906D5141824EF62D583B54415E5026AF8F6D514124FB1550573B544101775E938F6D5141425CAC31573B54413549A4F78E6D5141BA493187563B54415D37E25E8D6D5141A980B5C7543B5441BA1B166D896D5141F8843E76503B544147B9477F876D5141C3B9A7594E3B5441F401FDBF856D5141E2CE01704C3B544121B5C3F4806D51414F18DCE64E3B5441499BCF5F7E6D5141376642604F3B544114AE47E17C6D51410AD7A390503B544114AE47F1896D51417B14AE275E3B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262138 - 355829
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+0106000000010000000103000000010000001100000014AE47E17C6D51410AD7A390503B544114AE47F1896D51417B14AE275E3B54415C8FC2358A6D51419A9999895E3B5441333333E39F6D5141C3F5286C753B5441C3F5289CAF6D51418FC2F548853B5441F6285C1FB06D514148E17AE4853B544166666656B06D51415C8FC225863B5441CDCCCC6CB36D5141EC51B8EE833B5441D7A370BDB66D51413D0AD783813B5441F6285C7FB66D5141295C8F42813B544152B81E35B06D514152B81ED5853B5441CDCCCCACAF6D5141CDCCCC3C853B5441CDCCCCECB56D51417B14AEB7803B54417B14AEC7906D5141CDCCCC9C583B5441D7A3707D906D51411F85EB31583B5441000000C0856D5141000000704C3B544114AE47E17C6D51410AD7A390503B5441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000014AE47F1896D51417B14AE275E3B544176C0B5358A6D51410A4987895E3B5441C7C36B3A8A6D51410F45858E5E3B54418B95C5BB906D51416B04A88B583B544199F8806D906D5141824EF62D583B54415E5026AF8F6D514124FB1550573B544101775E938F6D5141425CAC31573B54413549A4F78E6D5141BA493187563B54415D37E25E8D6D5141A980B5C7543B5441BA1B166D896D5141F8843E76503B544147B9477F876D5141C3B9A7594E3B5441F401FDBF856D5141E2CE01704C3B544121B5C3F4806D51414F18DCE64E3B5441499BCF5F7E6D5141376642604F3B544114AE47E17C6D51410AD7A390503B544114AE47F1896D51417B14AE275E3B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>263819 - 142822
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -31 </desc>
+<a>
+0106000000010000000103000000010000000E000000C3F5286CE217514148E17AD4E9865441C3F528CCD8175141A4703D9AEA8654415C8FC205D1175141AE47E1FAEA8654415C8FC2D5CB175141713D0AD7EA865441F6285C6FCA1751417B14AEA7EB86544185EB5148C617514185EB5198EE865441666666E6C6175141EC51B85EF5865441C3F5281CD51751417B14AED7F3865441B81E85EBE517514114AE4751F186544166666606F91751411F85EBC1EF865441CDCCCC6CFA1751413D0AD763EF86544148E17AF4F31751419A9999D9E786544148E17AF4ED1751418FC2F5C8E8865441C3F5286CE217514148E17AD4E9865441
+</a>
+
+<b>
+010600000001000000010300000001000000160000001A84A559F6175141C7D42BA4EA86544148E17AF4F31751419A9999D9E786544148E17AF4ED1751418FC2F5C8E8865441C3F5286CE217514148E17AD4E98654419E557252DF17514188AD6515EA865441AD377131DF175141E007D516EA865441C3F528CCD8175141A4703D9AEA8654415C8FC205D1175141AE47E1FAEA8654415C8FC2D5CB175141713D0AD7EA865441D15515DACA175141C5408D69EB865441D2A8A1D9C8175141383863CBEC865441A0D7B949C61751416EDDBEA7EE86544124284D61C6175141864868AAEF8654412BA15774C61751413957517BF0865441452975E4C6175141FBC86849F58654413B31E690C71751418BC12524F58654415B22B267D01751416C0EA347F4865441C1CE82AFDA17514106B94701F3865441B81E85EBE517514114AE4751F1865441F9A24BEEF81751413B63E3C3EF86544128065B6CFA175141AB725263EF8654411A84A559F6175141C7D42BA4EA865441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>264367 - 3107727
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+0106000000010000000103000000010000001700000048E17A14D318514152B81E75478454417B14AE07D318514148E17AB44D845441C3F528BCD2185141C3F528FC5084544185EB51A8D218514148E17AD451845441AE47E10AD218514152B81EA558845441713D0A77D1185141F6285C3F6284544100000080D11851418FC2F588668454411F85EB81D61851413D0AD7B36A84544152B81EE5DC185141F6285C3F6D84544166666626E4185141AE47E1FA6E845441D7A370BDEB185141666666E66F84544148E17A44EC185141EC51B8DE6B84544148E17A54ED1851410000004062845441CDCCCC4CE618514148E17A9462845441B81E85BBDE185141666666B662845441C3F5280CDF185141333333D360845441A4703D9ADF185141F6285C7F5D8454413D0AD713E01851419A9999B9598454417B14AE47E11851418FC2F52850845441CDCCCCECE118514152B81E054A845441B81E851BE218514114AE47D143845441E17A14AEDB18514185EB51A84584544148E17A14D318514152B81E7547845441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000C316687BD1185141C394D459648454412327F67BD118514123B386ED61845441EBF3F3BDD118514146913DA45D84544195BD66A8D21851416ADE97D3518454418290C90AD31851410A1837304C845441C5806312D3185141C2431A4E47845441C340B354D218514186E782FB3D845441C203DF73C6185141ECED50C840845441EF852A3AC6185141C6D7F65550845441EA710D4DC8185141E6D3E3FE5D845441C316687BD1185141C394D45964845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>264367 - 3482630
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+0106000000010000000103000000010000001700000048E17A14D318514152B81E75478454417B14AE07D318514148E17AB44D845441C3F528BCD2185141C3F528FC5084544185EB51A8D218514148E17AD451845441AE47E10AD218514152B81EA558845441713D0A77D1185141F6285C3F6284544100000080D11851418FC2F588668454411F85EB81D61851413D0AD7B36A84544152B81EE5DC185141F6285C3F6D84544166666626E4185141AE47E1FA6E845441D7A370BDEB185141666666E66F84544148E17A44EC185141EC51B8DE6B84544148E17A54ED1851410000004062845441CDCCCC4CE618514148E17A9462845441B81E85BBDE185141666666B662845441C3F5280CDF185141333333D360845441A4703D9ADF185141F6285C7F5D8454413D0AD713E01851419A9999B9598454417B14AE47E11851418FC2F52850845441CDCCCCECE118514152B81E054A845441B81E851BE218514114AE47D143845441E17A14AEDB18514185EB51A84584544148E17A14D318514152B81E7547845441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000C316687BD1185141C394D459648454412327F67BD118514123B386ED61845441EBF3F3BDD118514146913DA45D84544195BD66A8D21851416ADE97D3518454418290C90AD31851410A1837304C845441C5806312D3185141C2431A4E47845441C340B354D218514186E782FB3D845441C203DF73C6185141ECED50C840845441EF852A3AC6185141C6D7F65550845441EA710D4DC8185141E6D3E3FE5D845441C316687BD1185141C394D45964845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>269232 - 3075369
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000010000001300000048E17A04A4985141000000F05193544152B81EB59C9851413D0AD763489354410000004093985141E17A149E439354410AD7A37089985141CDCCCC0C3E935441A4703D0A809851417B14AED739935441CDCCCC2C7C98514114AE47D1389354417B14AE4774985141713D0A8738935441A4703D5A78985141B81E851B4C935441C3F528AC80985141C3F5281C74935441C3F528AC89985141EC51B8FE7493544152B81E658C98514114AE47417593544185EB51988D985141F6285CCF7293544185EB5128909851411F85EB2171935441D7A3706D93985141EC51B8CE6F935441713D0A7798985141666666466F935441D7A3702D9C985141CDCCCC6C70935441D7A370DDA3985141F6285CDF73935441E17A143EAB9851411F85EB717893544148E17A04A4985141000000F051935441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000C5977B7D91985141DC66AE97709354414EA2A280939851411FE0B0CC6F9354410805C02E9798514178441A696F935441897CF57B989851413878EC476F9354412F53F8279C9851414A081B6B70935441ED7987789D985141195947017193544104BFD208A0985141D0E3982772935441B18176F9A19851412963510673935441892B24D2A39851413E044BDA7393544145CDE579A49851418BB4544074935441905394F5A5985141875EA72B759354410A25FB38A898514157D5C292769354419FD27EE4A99851417AEBBA9B77935441E17A143EAB9851411F85EB7178935441AA1A5A21AB985141667ACED877935441BF82432CA4985141689D09C45293544159360105A498514166F5CBF2519354416B6CA753A29851411DFCB0BA4F9354415AE0CF579D985141127C5438499354416DED18B89C985141B68CBA6748935441E1EF9E7E979851412FC66AC24593544156715C41939851413050C49E43935441BD6742FE8F985141EB92E7C441935441AD972FF18B985141FABD54783F935441BA3CA75389985141744AD3FF3D935441E1654DC0869851414A17B2D83C9354415073B9E286985141668860A93D935441B44A72FC8D985141B98A26BB60935441D09AED3791985141B6511AB270935441C5977B7D91985141DC66AE9770935441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>269232 - 3376497
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000010000001300000048E17A04A4985141000000F05193544152B81EB59C9851413D0AD763489354410000004093985141E17A149E439354410AD7A37089985141CDCCCC0C3E935441A4703D0A809851417B14AED739935441CDCCCC2C7C98514114AE47D1389354417B14AE4774985141713D0A8738935441A4703D5A78985141B81E851B4C935441C3F528AC80985141C3F5281C74935441C3F528AC89985141EC51B8FE7493544152B81E658C98514114AE47417593544185EB51988D985141F6285CCF7293544185EB5128909851411F85EB2171935441D7A3706D93985141EC51B8CE6F935441713D0A7798985141666666466F935441D7A3702D9C985141CDCCCC6C70935441D7A370DDA3985141F6285CDF73935441E17A143EAB9851411F85EB717893544148E17A04A4985141000000F051935441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000C5977B7D91985141DC66AE97709354414EA2A280939851411FE0B0CC6F9354410805C02E9798514178441A696F935441897CF57B989851413878EC476F9354412F53F8279C9851414A081B6B70935441ED7987789D985141195947017193544104BFD208A0985141D0E3982772935441B18176F9A19851412963510673935441892B24D2A39851413E044BDA7393544145CDE579A49851418BB4544074935441905394F5A5985141875EA72B759354410A25FB38A898514157D5C292769354419FD27EE4A99851417AEBBA9B77935441E17A143EAB9851411F85EB7178935441AA1A5A21AB985141667ACED877935441BF82432CA4985141689D09C45293544159360105A498514166F5CBF2519354416B6CA753A29851411DFCB0BA4F9354415AE0CF579D985141127C5438499354416DED18B89C985141B68CBA6748935441E1EF9E7E979851412FC66AC24593544156715C41939851413050C49E43935441BD6742FE8F985141EB92E7C441935441AD972FF18B985141FABD54783F935441BA3CA75389985141744AD3FF3D935441E1654DC0869851414A17B2D83C9354415073B9E286985141668860A93D935441B44A72FC8D985141B98A26BB60935441D09AED3791985141B6511AB270935441C5977B7D91985141DC66AE9770935441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>269997 - 55013
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+01060000000100000001030000000100000014000000B81E85DB608F5141A4703DEAD78E5441EC51B80E608F51410AD7A310CB8E5441AE47E14A588F5141A4703D7ACF8E544185EB51D8568F5141CDCCCC4CD08E5441713D0AE7548F5141F6285CDFD18E54410AD7A3C04F8F5141B81E850BD68E54417B14AEF74A8F51413D0AD743DB8E5441295C8F42468F51413D0AD7F3E18E5441AE47E13A448F51415C8FC205E68E544166666646418F51410AD7A3C0ED8E5441295C8FB23D8F514166666666F48E5441EC51B89E3F8F514152B81E25F48E544185EB51184C8F5141666666D6F28E544152B81EB55F8F514148E17A54F28E54411F85EB81608F5141D7A370ADEF8E5441D7A3704D628F5141E17A140EEB8E5441EC51B8EE618F51413D0AD763E28E5441B81E85DB618F5141713D0AA7E18E544166666656618F5141713D0A97DC8E5441B81E85DB608F5141A4703DEAD78E5441
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000CDCCCC1C408F5141A4703D5ADE8E544193E53E0B408F514199DE0575DE8E54418315E709408F514158C15C78DE8E54416DE2EECD3F8F5141448F91D2DE8E5441EC51B85E3C8F514100000010E48E544129E646733B8F514183D26CBEE48E54415C07E4783A8F51417736A481E58E54413DB79CF0388F5141A2160AB2E78E544185349857338F51411B90CEEAEB8E5441EC2DDDDF2B8F5141846B9054EA8E54418690837C2B8F5141B5D66C0CF08E54412D2073482B8F5141120E8F0BF38E5441BB0B81162B8F514111D0331EF68E5441E6633DFC2D8F51410C49B3E8F78E5441CA008D802E8F5141432D4A39F88E5441D7A3701D318F5141295C8F92F88E5441A4703D4A348F5141295C8F02F88E54419A999989368F5141295C8FD2F68E5441B9E05747388F514122EA7103F58E54411F2EAE50398F514174AE41E4F38E54417583E8923A8F5141732E1C15F38E544152B81E553C8F51419A9999E9F18E5441C05636593C8F5141E8B80EF1F18E54415CCE3C613C8F51414CFEE5EBF18E544176EAB7B83D8F5141C9EFF45AF48E544166666646418F51410AD7A3C0ED8E544110B68CAC438F5141E82B157AE78E5441661AAA3A448F5141150BBAF9E58E5441DF9C0B53468F5141081DF4B8E18E544135E79ABE4A8F5141C9C1EB94DB8E54417B14AEF74A8F51413D0AD743DB8E5441CC3ED51A4B8F5141CEC47D1DDB8E54414EDBBB9C4F8F5141222CD81ED68E5441DE0B0CD6568F5141CB04C845D08E5441E6A9D488578F514179BD80E8CF8E5441DD2ADD3D588F51410BD1A281CF8E5441B2AC19E94F8F514109C1288DCB8E5441D7A3700D4A8F5141EC51B8CEC88E5441CA17C6E4448F51413AFF0875D38E5441FAC7525A428F5141C1F750B7D88E5441E298820B428F5141CDC6487BD98E5441CDCCCC1C408F5141A4703D5ADE8E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>275046 - 3361837
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+0106000000010000000103000000010000000D000000B81E850BBF2D514152B81E858F3C5441E17A145EBE2D51419A9999295F3C5441CDCCCC4CBA2D5141E17A148E5B3C54410AD7A300B92D5141000000105C3C54417B14AE97B92D51418FC2F5F87B3C5441713D0A17BA2D5141AE47E16A963C5441D7A3704DBA2D5141EC51B84EA23C5441AE47E1DABA2D514148E17A54BD3C5441E17A14DEBA2D51419A9999E9BD3C54418FC2F5D8BA2D51411F85EB81BE3C54410AD7A3C0BE2D5141EC51B8FEC23C5441000000C0BF2D5141000000F0C13C5441B81E850BBF2D514152B81E858F3C5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000008FC2F5D8BA2D51411F85EB81BE3C54410AD7A3C0BE2D5141EC51B8FEC23C5441000000C0BF2D5141000000F0C13C5441B81E850BBF2D514152B81E858F3C5441E17A145EBE2D51419A9999295F3C5441CDCCCC4CBA2D5141E17A148E5B3C54410AD7A300B92D5141000000105C3C54415287AC97B92D514144D9A1F87B3C544136AB1718BA2D5141DA9CC4A5963C54414BDDE007B92D5141DFAC7E33953C5441028739EAB92D514174B3776DBD3C5441D8EE8E24BA2D5141CE1FC8B2BD3C54418FC2F5D8BA2D51411F85EB81BE3C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>275777 - 3142195
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -16 </desc>
+<a>
+0106000000010000000103000000010000000B000000A4703DDA792551411F85EBC1203D54410AD7A32079255141C3F5280C1B3D54418FC2F5C8722551413D0AD7031C3D5441AE47E1CA712551418FC2F5A8133D5441E17A145E70255141CDCCCC7C073D54413D0AD70370255141333333B3043D5441F6285CFF6125514148E17A74063D5441AE47E1FA63255141295C8F92163D544152B81EF565255141713D0AA7263D544114AE479173255141EC51B89E223D5441A4703DDA792551411F85EBC1203D5441
+</a>
+
+<b>
+0106000000010000000103000000010000000A0000003333333354255141295C8F422A3D5441CDCCCCDC61255141D7A370DD273D54414172F90E66255141522E619F263D544176581296632551416CE9FF5E133D54418113D6E961255141F7A32B77063D54411F85EB313F255141EC51B8CE0A3D5441EC51B84E3E255141CDCCCCEC0B3D5441B81E858B40255141A4703D0A1E3D54417B14AEC74225514185EB5128303D54413333333354255141295C8F422A3D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>275777 - 3397259
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -16 </desc>
+<a>
+0106000000010000000103000000010000000B000000A4703DDA792551411F85EBC1203D54410AD7A32079255141C3F5280C1B3D54418FC2F5C8722551413D0AD7031C3D5441AE47E1CA712551418FC2F5A8133D5441E17A145E70255141CDCCCC7C073D54413D0AD70370255141333333B3043D5441F6285CFF6125514148E17A74063D5441AE47E1FA63255141295C8F92163D544152B81EF565255141713D0AA7263D544114AE479173255141EC51B89E223D5441A4703DDA792551411F85EBC1203D5441
+</a>
+
+<b>
+0106000000010000000103000000010000000A0000003333333354255141295C8F422A3D5441CDCCCCDC61255141D7A370DD273D54414172F90E66255141522E619F263D544176581296632551416CE9FF5E133D54418113D6E961255141F7A32B77063D54411F85EB313F255141EC51B8CE0A3D5441EC51B84E3E255141CDCCCCEC0B3D5441B81E858B40255141A4703D0A1E3D54417B14AEC74225514185EB5128303D54413333333354255141295C8F422A3D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276956 - 2933548
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+0106000000010000000103000000010000001B000000CDCCCC7CC0AD50411F85EBE1B1D15441E17A141EC1AD5041B81E855BAFD15441D7A370BDC4AD5041713D0AE798D154417B14AE67C7AD504152B81E8589D154417B14AE17C3AD504152B81EC586D15441B81E85CBBBAD50413333332386D154413D0AD783BAAD5041F6285CEF85D15441AE47E1BABAAD50419A9999A984D1544166666656B6AD50418FC2F54884D1544114AE4791B6AD50415C8FC2E582D154417B14AEF7BAAD5041713D0A4783D1544114AE4771CCAD504185EB51C884D1544148E17A94D2AD50419A9999895FD1544148E17AB4D6AD50413333338346D15441EC51B88EC9AD5041D7A3709D48D15441F6285CAFBFAD50413D0AD7934BD154417B14AE27B4AD50419A9999094FD154419A999929A8AD5041C3F5286C4ED15441000000C08BAD5041CDCCCC9C54D15441AE47E1EA76AD504185EB518858D154413D0AD72370AD5041333333A381D1544185EB51886EAD504152B81E658BD15441C3F5282C66AD5041B81E851BBED1544152B81E756AAD50413D0AD703BFD1544114AE4761AAAD504148E17AD4CCD154413D0AD793BBAD5041C3F5288CD0D15441CDCCCC7CC0AD50411F85EBE1B1D15441
+</a>
+
+<b>
+01060000000100000001030000000100000018000000B81E85BBBBAD5041F6285C8F63D15441EC51B87EC0AD5041333333E362D15441CC9B6C63C3AD504195E1698561D1544149F31844C6AD5041C6A4598D60D15441A35889E1C7AD5041F8F70A0660D15441CBFA0977CAAD5041C484D6AB5FD1544170D4B30BCFAD50414C8DB36F5FD1544148E17A94D2AD50419A9999895FD1544158507609D3AD50415A80E8C35CD154413781F1F7D3AD5041CB461F1D57D15441411CDF5ED5AD504190EF9F9B4ED15441FFBC46DCD5AD504131EDD5A24BD154418CFCDB7FD6AD5041DC9E6EC247D1544148E17AB4D6AD50413333338346D15441BE8F9C30D5AD5041C0FB39C146D15441757545E9D0AD5041C5A8637047D154418FAF9B73CCAD5041EFBAF52648D15441EC51B88EC9AD5041D7A3709D48D154412CF15929C9AD50418CB9DBBB48D15441F195B294C1AD504168AC33024BD15441F6285CAFBFAD50413D0AD7934BD15441818F5D91BEAD504155B4295B52D154415244FA95BCAD5041A71DEA835ED15441B81E85BBBBAD5041F6285C8F63D15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276956 - 3787815
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+0106000000010000000103000000010000001B000000CDCCCC7CC0AD50411F85EBE1B1D15441E17A141EC1AD5041B81E855BAFD15441D7A370BDC4AD5041713D0AE798D154417B14AE67C7AD504152B81E8589D154417B14AE17C3AD504152B81EC586D15441B81E85CBBBAD50413333332386D154413D0AD783BAAD5041F6285CEF85D15441AE47E1BABAAD50419A9999A984D1544166666656B6AD50418FC2F54884D1544114AE4791B6AD50415C8FC2E582D154417B14AEF7BAAD5041713D0A4783D1544114AE4771CCAD504185EB51C884D1544148E17A94D2AD50419A9999895FD1544148E17AB4D6AD50413333338346D15441EC51B88EC9AD5041D7A3709D48D15441F6285CAFBFAD50413D0AD7934BD154417B14AE27B4AD50419A9999094FD154419A999929A8AD5041C3F5286C4ED15441000000C08BAD5041CDCCCC9C54D15441AE47E1EA76AD504185EB518858D154413D0AD72370AD5041333333A381D1544185EB51886EAD504152B81E658BD15441C3F5282C66AD5041B81E851BBED1544152B81E756AAD50413D0AD703BFD1544114AE4761AAAD504148E17AD4CCD154413D0AD793BBAD5041C3F5288CD0D15441CDCCCC7CC0AD50411F85EBE1B1D15441
+</a>
+
+<b>
+01060000000100000001030000000100000018000000B81E85BBBBAD5041F6285C8F63D15441EC51B87EC0AD5041333333E362D15441CC9B6C63C3AD504195E1698561D1544149F31844C6AD5041C6A4598D60D15441A35889E1C7AD5041F8F70A0660D15441CBFA0977CAAD5041C484D6AB5FD1544170D4B30BCFAD50414C8DB36F5FD1544148E17A94D2AD50419A9999895FD1544158507609D3AD50415A80E8C35CD154413781F1F7D3AD5041CB461F1D57D15441411CDF5ED5AD504190EF9F9B4ED15441FFBC46DCD5AD504131EDD5A24BD154418CFCDB7FD6AD5041DC9E6EC247D1544148E17AB4D6AD50413333338346D15441BE8F9C30D5AD5041C0FB39C146D15441757545E9D0AD5041C5A8637047D154418FAF9B73CCAD5041EFBAF52648D15441EC51B88EC9AD5041D7A3709D48D154412CF15929C9AD50418CB9DBBB48D15441F195B294C1AD504168AC33024BD15441F6285CAFBFAD50413D0AD7934BD15441818F5D91BEAD504155B4295B52D154415244FA95BCAD5041A71DEA835ED15441B81E85BBBBAD5041F6285C8F63D15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277031 - 2932220
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000100000017000000B81E852B6FAA5041C3F528DC8AD25441713D0AD75AAA5041F6285C1F73D25441295C8F8252AA5041713D0AC769D25441295C8F724FAA504148E17AE46BD25441D7A370FD49AA50416666668674D254415C8FC20548AA50410AD7A37078D254410000006046AA5041D7A3709D7CD25441CDCCCCBC44AA50411F85EB7181D254411F85EB5143AA5041713D0A4786D2544114AE478141AA5041D7A3700D8AD25441AE47E11A3CAA504152B81EF591D254410AD7A39036AA504185EB516899D254419A9999D942AA5041000000A0A9D2544185EB51D851AA50418FC2F5A8BBD25441000000C057AA5041D7A3705DC4D25441AE47E18A5EAA50415C8FC255C0D254419A9999F96BAA5041F6285CDFB7D25441C3F5287C6CAA504152B81E85B6D2544152B81EF568AA50417B14AEA7ACD25441CDCCCC2C60AA5041EC51B89EA1D254417B14AE2760AA50415C8FC2959DD254418FC2F5786CAA5041F6285C3F8ED25441B81E852B6FAA5041C3F528DC8AD25441
+</a>
+
+<b>
+010600000001000000010300000001000000240000000AD7A39036AA504185EB516899D25441239B021F3AAA504197B27D159ED25441D167252B41AA5041E51FEA2A95D254413CDAA9BE45AA5041E070C6DE8ED254414763BC2A47AA50411B92EC1F8CD25441210819B448AA504151A2EA2889D254414FA168EE48AA5041A51B037C88D25441701C85D949AA504182C8DFC585D254414E7310364BAA5041865A63C681D25441D8661CA54BAA5041C7FD27B87FD254415B1E57A24CAA5041684A72377BD254418E295ECC4CAA50415360F6717AD25441FA8A573D4DAA5041B5B3CDB477D25441609206A74DAA50412138E80576D25441091B2DC04EAA504168C7FA0973D254417DE6A31350AA5041510436D46FD25441FBB94E0551AA5041660EB9C56DD2544112AB74A052AA504155E4F2F769D254411F18DB8952AA50416FBEBFCA69D25441C4260FA04FAA5041A7E57AC36BD2544105C2BF744FAA5041415133E46BD2544126F8E37C4BAA504132C4DE2772D25441FC65ECAC49AA5041235B9D2675D2544129D4327248AA5041A17DDD9877D254412798A57E46AA5041EBC8C64F7CD25441541FF24F45AA50418765E5BF7FD25441E6EBFCE144AA504197CB3A0481D25441DF7A82FE43AA50418AF8A6FA83D254416369BD6943AA5041167BC81986D254412C770F2843AA5041D8731A9E86D254416F5B248F41AA50413543B6038AD254412BC9E19640AA50410E9A92648BD25441568B2EC93CAA5041A325F6F590D254417B578C2C3CAA5041C1591ADF91D254413246487F3BAA5041929DA2C892D254410AD7A39036AA504185EB516899D25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277031 - 3769154
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000100000017000000B81E852B6FAA5041C3F528DC8AD25441713D0AD75AAA5041F6285C1F73D25441295C8F8252AA5041713D0AC769D25441295C8F724FAA504148E17AE46BD25441D7A370FD49AA50416666668674D254415C8FC20548AA50410AD7A37078D254410000006046AA5041D7A3709D7CD25441CDCCCCBC44AA50411F85EB7181D254411F85EB5143AA5041713D0A4786D2544114AE478141AA5041D7A3700D8AD25441AE47E11A3CAA504152B81EF591D254410AD7A39036AA504185EB516899D254419A9999D942AA5041000000A0A9D2544185EB51D851AA50418FC2F5A8BBD25441000000C057AA5041D7A3705DC4D25441AE47E18A5EAA50415C8FC255C0D254419A9999F96BAA5041F6285CDFB7D25441C3F5287C6CAA504152B81E85B6D2544152B81EF568AA50417B14AEA7ACD25441CDCCCC2C60AA5041EC51B89EA1D254417B14AE2760AA50415C8FC2959DD254418FC2F5786CAA5041F6285C3F8ED25441B81E852B6FAA5041C3F528DC8AD25441
+</a>
+
+<b>
+010600000001000000010300000001000000240000000AD7A39036AA504185EB516899D25441239B021F3AAA504197B27D159ED25441D167252B41AA5041E51FEA2A95D254413CDAA9BE45AA5041E070C6DE8ED254414763BC2A47AA50411B92EC1F8CD25441210819B448AA504151A2EA2889D254414FA168EE48AA5041A51B037C88D25441701C85D949AA504182C8DFC585D254414E7310364BAA5041865A63C681D25441D8661CA54BAA5041C7FD27B87FD254415B1E57A24CAA5041684A72377BD254418E295ECC4CAA50415360F6717AD25441FA8A573D4DAA5041B5B3CDB477D25441609206A74DAA50412138E80576D25441091B2DC04EAA504168C7FA0973D254417DE6A31350AA5041510436D46FD25441FBB94E0551AA5041660EB9C56DD2544112AB74A052AA504155E4F2F769D254411F18DB8952AA50416FBEBFCA69D25441C4260FA04FAA5041A7E57AC36BD2544105C2BF744FAA5041415133E46BD2544126F8E37C4BAA504132C4DE2772D25441FC65ECAC49AA5041235B9D2675D2544129D4327248AA5041A17DDD9877D254412798A57E46AA5041EBC8C64F7CD25441541FF24F45AA50418765E5BF7FD25441E6EBFCE144AA504197CB3A0481D25441DF7A82FE43AA50418AF8A6FA83D254416369BD6943AA5041167BC81986D254412C770F2843AA5041D8731A9E86D254416F5B248F41AA50413543B6038AD254412BC9E19640AA50410E9A92648BD25441568B2EC93CAA5041A325F6F590D254417B578C2C3CAA5041C1591ADF91D254413246487F3BAA5041929DA2C892D254410AD7A39036AA504185EB516899D25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277181 - 2928641
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -14 </desc>
+<a>
+01060000000100000001030000000100000012000000000000506BAC5041D7A3700D52CF5441333333A384AC50417B14AE6748CF54417B14AE5799AC50413333331340CF54410AD7A3F096AC504185EB51983BCF54411F85EB6193AC50417B14AE8736CF54417B14AED78EAC50413333333331CF5441713D0A978BAC50411F85EB612DCF54418FC2F5C885AC50417B14AE2726CF54411F85EBC182AC5041A4703DEA21CF5441C3F5286C81AC5041F6285CDF1FCF5441C3F5285C4DAC5041C3F5288C29CF5441B81E858B44AC5041F6285C2F2BCF54410AD7A3B053AC5041333333833CCF5441E17A14CE58AC5041C3F5289C42CF54415C8FC29564AC504152B81E3550CF54413333337366AC5041EC51B8DE51CF5441AE47E1DA68AC5041295C8F9252CF5441000000506BAC5041D7A3700D52CF5441
+</a>
+
+<b>
+01060000000100000001030000000100000023000000A47E4EF95AAC504117BA2C6F3FCF5441CBAFA17460AC5041C2DC8D3E48CF5441FF9368AA61AC50414CDFD32F4ACF5441453537B762AC5041713A65C84BCF54413A4EB0B863AC5041C97E0C354DCF54418EF5A4A264AC5041AF44816B4ECF5441A100F45E65AC5041646363654FCF54417474BD0666AC5041798D543A50CF5441B5ADABB566AC50410D591C9750CF5441264456F568AC5041EAEE6DAA51CF5441C07293586AAC50410E04347B51CF5441A4703D3A85AC5041F6285CAF47CF544128ECC98E80AC5041729B836B3FCF5441726A3DE483AC5041CDCD04D63ACF54418D09481484AC5041FB09E49A3ACF5441229BFE4884AC50419E61A1533ACF5441EF121FEE84AC50411FB1959439CF5441FF818A3888AC5041F80A67F935CF5441D7569F9E8CAC5041460783C732CF544166F6A9DF8EAC50416DBC923C31CF5441676991AF8CAC504189483AAB2ECF544111AA38268BAC50410E9774D52CCF54416052A57588AC50411C70257C29CF5441BBDCD3ED86AC50419863509427CF544149E373B885AC5041E7F4A71726CF54413A54356684AC5041B414DA3624CF54417B8E2BF782AC5041A288AB4B22CF54411D3E166D81AC5041B63CFFE31FCF544130D6A3F673AC50410785606322CF5441CF5097D16AAC50411966081924CF544155BA75CC61AC504159967EC425CF5441C3F5285C4DAC5041C3F5288C29CF544101AE0A9653AC5041C9459E8E33CF5441E8DFE1A45AAC50413D7672E73ECF5441A47E4EF95AAC504117BA2C6F3FCF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277181 - 3807130
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -14 </desc>
+<a>
+01060000000100000001030000000100000012000000000000506BAC5041D7A3700D52CF5441333333A384AC50417B14AE6748CF54417B14AE5799AC50413333331340CF54410AD7A3F096AC504185EB51983BCF54411F85EB6193AC50417B14AE8736CF54417B14AED78EAC50413333333331CF5441713D0A978BAC50411F85EB612DCF54418FC2F5C885AC50417B14AE2726CF54411F85EBC182AC5041A4703DEA21CF5441C3F5286C81AC5041F6285CDF1FCF5441C3F5285C4DAC5041C3F5288C29CF5441B81E858B44AC5041F6285C2F2BCF54410AD7A3B053AC5041333333833CCF5441E17A14CE58AC5041C3F5289C42CF54415C8FC29564AC504152B81E3550CF54413333337366AC5041EC51B8DE51CF5441AE47E1DA68AC5041295C8F9252CF5441000000506BAC5041D7A3700D52CF5441
+</a>
+
+<b>
+01060000000100000001030000000100000023000000A47E4EF95AAC504117BA2C6F3FCF5441CBAFA17460AC5041C2DC8D3E48CF5441FF9368AA61AC50414CDFD32F4ACF5441453537B762AC5041713A65C84BCF54413A4EB0B863AC5041C97E0C354DCF54418EF5A4A264AC5041AF44816B4ECF5441A100F45E65AC5041646363654FCF54417474BD0666AC5041798D543A50CF5441B5ADABB566AC50410D591C9750CF5441264456F568AC5041EAEE6DAA51CF5441C07293586AAC50410E04347B51CF5441A4703D3A85AC5041F6285CAF47CF544128ECC98E80AC5041729B836B3FCF5441726A3DE483AC5041CDCD04D63ACF54418D09481484AC5041FB09E49A3ACF5441229BFE4884AC50419E61A1533ACF5441EF121FEE84AC50411FB1959439CF5441FF818A3888AC5041F80A67F935CF5441D7569F9E8CAC5041460783C732CF544166F6A9DF8EAC50416DBC923C31CF5441676991AF8CAC504189483AAB2ECF544111AA38268BAC50410E9774D52CCF54416052A57588AC50411C70257C29CF5441BBDCD3ED86AC50419863509427CF544149E373B885AC5041E7F4A71726CF54413A54356684AC5041B414DA3624CF54417B8E2BF782AC5041A288AB4B22CF54411D3E166D81AC5041B63CFFE31FCF544130D6A3F673AC50410785606322CF5441CF5097D16AAC50411966081924CF544155BA75CC61AC504159967EC425CF5441C3F5285C4DAC5041C3F5288C29CF544101AE0A9653AC5041C9459E8E33CF5441E8DFE1A45AAC50413D7672E73ECF5441A47E4EF95AAC504117BA2C6F3FCF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277275 - 2934060
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+0106000000010000000103000000010000001D0000007B14AEF792AC504148E17A042CD354418FC2F5589AAC50415C8FC2E52BD35441A4703D5AAAAC5041295C8F6229D35441295C8F52A8AC504114AE471126D354410AD7A3F0A1AC504114AE47A11BD3544100000090A0AC504114AE476119D354418FC2F5889AAC5041F6285C7F0ED354413D0AD7C394AC5041D7A370DD05D3544185EB51088DAC5041F6285C3FFBD254416666664684AC5041D7A3701DEED254418FC2F5F879AC504133333393E1D2544185EB516874AC5041CDCCCCCCDAD25441333333436AAC50413D0AD773CED2544148E17AA469AC5041D7A370ADCDD254413D0AD7F367AC50413D0AD7A3CDD2544114AE479166AC50410AD7A330CED2544152B81E7557AC5041E17A14FED7D254415C8FC2654AAC504114AE4741E1D25441000000F03EAC5041EC51B8CEE5D25441F6285CFF3FAC504100000000E8D2544185EB515849AC50410AD7A360F3D254413D0AD7F351AC5041C3F5289CFDD2544185EB51A852AC5041713D0A27FDD25441713D0A1770AC5041713D0AF720D35441F6285C8F76AC5041EC51B8FE26D35441AE47E17A78AC504114AE479128D35441666666267BAC504114AE47A129D35441295C8F827BAC50415C8FC2C529D354417B14AEF792AC504148E17A042CD35441
+</a>
+
+<b>
+010600000001000000010300000001000000110000000958416B7BAC5041152A48B629D35441295C8F827BAC50415C8FC2C529D35441D90DA28486AC50415BB376D32AD354417D936B228EAC5041086C118E2BD35441B94666E791AC5041A9E06BEA2BD3544171A2906E96AC504193210FF62BD354414C5002519AAC5041AB733EE52BD354412592F414A1AC5041164D19D92AD354410E40204BAAAC5041CF32EA4829D354415042755AA8AC5041A2012F1E26D35441D5AE7706A6AC5041CBA0C14F22D35441ECE31415A4AC50414C6C89221FD35441256710F9A1AC5041B5779DAF1BD354419E14317C8EAC50417FEFCFA622D3544182CB385881AC5041E4C0ED6427D35441CE2BF80281AC50415CBF048727D354410958416B7BAC5041152A48B629D35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277275 - 3799638
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+0106000000010000000103000000010000001D0000007B14AEF792AC504148E17A042CD354418FC2F5589AAC50415C8FC2E52BD35441A4703D5AAAAC5041295C8F6229D35441295C8F52A8AC504114AE471126D354410AD7A3F0A1AC504114AE47A11BD3544100000090A0AC504114AE476119D354418FC2F5889AAC5041F6285C7F0ED354413D0AD7C394AC5041D7A370DD05D3544185EB51088DAC5041F6285C3FFBD254416666664684AC5041D7A3701DEED254418FC2F5F879AC504133333393E1D2544185EB516874AC5041CDCCCCCCDAD25441333333436AAC50413D0AD773CED2544148E17AA469AC5041D7A370ADCDD254413D0AD7F367AC50413D0AD7A3CDD2544114AE479166AC50410AD7A330CED2544152B81E7557AC5041E17A14FED7D254415C8FC2654AAC504114AE4741E1D25441000000F03EAC5041EC51B8CEE5D25441F6285CFF3FAC504100000000E8D2544185EB515849AC50410AD7A360F3D254413D0AD7F351AC5041C3F5289CFDD2544185EB51A852AC5041713D0A27FDD25441713D0A1770AC5041713D0AF720D35441F6285C8F76AC5041EC51B8FE26D35441AE47E17A78AC504114AE479128D35441666666267BAC504114AE47A129D35441295C8F827BAC50415C8FC2C529D354417B14AEF792AC504148E17A042CD35441
+</a>
+
+<b>
+010600000001000000010300000001000000110000000958416B7BAC5041152A48B629D35441295C8F827BAC50415C8FC2C529D35441D90DA28486AC50415BB376D32AD354417D936B228EAC5041086C118E2BD35441B94666E791AC5041A9E06BEA2BD3544171A2906E96AC504193210FF62BD354414C5002519AAC5041AB733EE52BD354412592F414A1AC5041164D19D92AD354410E40204BAAAC5041CF32EA4829D354415042755AA8AC5041A2012F1E26D35441D5AE7706A6AC5041CBA0C14F22D35441ECE31415A4AC50414C6C89221FD35441256710F9A1AC5041B5779DAF1BD354419E14317C8EAC50417FEFCFA622D3544182CB385881AC5041E4C0ED6427D35441CE2BF80281AC50415CBF048727D354410958416B7BAC5041152A48B629D35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277999 - 1476711
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000200000016000000000000201EE55041E17A14DE2E2D55418FC2F5A821E550413D0AD713362D55413D0AD72323E550418FC2F518392D5541713D0AB726E550419A9999293B2D5541B81E85EB2BE55041AE47E17A392D5541B81E85AB2EE55041F6285CBF362D55415C8FC2C530E55041EC51B86E312D5541D7A3704D32E5504166666606272D55417B14AE3732E55041B81E856B1D2D5541295C8F5231E5504114AE47F1162D5541AE47E10A31E550419A9999E9142D5541666666B62EE5504152B81E450D2D5541CDCCCC4C2CE55041CDCCCC4C082D5541EC51B86E29E55041295C8F42042D554114AE472127E5504114AE47E1012D5541D7A3702D24E550415C8FC245002D55415C8FC2351DE55041EC51B89E0B2D55418FC2F5381CE55041A4703D3A0D2D5541B81E855B16E550417B14AEC7162D554114AE47F114E55041E17A14BE1A2D5541713D0A4718E55041C3F528BC1C2D5541000000201EE55041E17A14DE2E2D55410A000000F6285C5F21E550417B14AED7322D55417B14AE6724E5504185EB51682A2D5541B81E85BB29E550419A9999F91F2D5541E17A146E2FE55041A4703D8A172D554148E17A3431E55041AE47E12A1B2D554148E17AC42AE5504114AE47D1272D5541F6285C9F28E550413D0AD7B32C2D5541D7A370BD23E55041F6285C0F372D5541C3F5284C22E55041D7A3707D342D5541F6285C5F21E550417B14AED7322D5541
+</a>
+
+<b>
+0106000000010000000103000000010000001D0000004A4FA8981DE5504156B333100B2D554143A1ED491DE550413F7C4D8A0B2D554124954C021DE55041E08D7DF20B2D5541B79159391CE550413DF79A390D2D5541A629C24F2FE55041824CFA96172D55418D124D592FE5504112AF00A9172D5541E17A146E2FE55041A4703D8A172D55415FD5BA2231E55041F1C89A061B2D55416B0EEE2C31E55041E33D731B1B2D5541244138012EE55041EB23C474212D5541D75EA96C29E55041FBCF49E02A2D55415C4637B624E550419A679EFF342D55413F6486AF24E550415808D00D352D554111F5FCAB24E55041FAC65015352D55412382D5A824E5504116A9011C352D5541F96C27AB23E55041E5F8C7EE362D5541D7A370BD23E55041F6285C0F372D55413D0AD72323E550418FC2F518392D5541713D0AB726E550419A9999293B2D5541B81E85EB2BE55041AE47E17A392D5541B81E85AB2EE55041F6285CBF362D55415C8FC2C530E55041EC51B86E312D5541D7A3704D32E5504166666606272D55417B14AE3732E55041B81E856B1D2D5541295C8F5231E5504114AE47F1162D5541D157144D31E55041ABCE8BC9162D55411B47B04431E55041904D0FC4162D55416DAE580931E55041617607DD152D55414A4FA8981DE5504156B333100B2D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277999 - 3817424
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000200000016000000000000201EE55041E17A14DE2E2D55418FC2F5A821E550413D0AD713362D55413D0AD72323E550418FC2F518392D5541713D0AB726E550419A9999293B2D5541B81E85EB2BE55041AE47E17A392D5541B81E85AB2EE55041F6285CBF362D55415C8FC2C530E55041EC51B86E312D5541D7A3704D32E5504166666606272D55417B14AE3732E55041B81E856B1D2D5541295C8F5231E5504114AE47F1162D5541AE47E10A31E550419A9999E9142D5541666666B62EE5504152B81E450D2D5541CDCCCC4C2CE55041CDCCCC4C082D5541EC51B86E29E55041295C8F42042D554114AE472127E5504114AE47E1012D5541D7A3702D24E550415C8FC245002D55415C8FC2351DE55041EC51B89E0B2D55418FC2F5381CE55041A4703D3A0D2D5541B81E855B16E550417B14AEC7162D554114AE47F114E55041E17A14BE1A2D5541713D0A4718E55041C3F528BC1C2D5541000000201EE55041E17A14DE2E2D55410A000000F6285C5F21E550417B14AED7322D55417B14AE6724E5504185EB51682A2D5541B81E85BB29E550419A9999F91F2D5541E17A146E2FE55041A4703D8A172D554148E17A3431E55041AE47E12A1B2D554148E17AC42AE5504114AE47D1272D5541F6285C9F28E550413D0AD7B32C2D5541D7A370BD23E55041F6285C0F372D5541C3F5284C22E55041D7A3707D342D5541F6285C5F21E550417B14AED7322D5541
+</a>
+
+<b>
+0106000000010000000103000000010000001D0000004A4FA8981DE5504156B333100B2D554143A1ED491DE550413F7C4D8A0B2D554124954C021DE55041E08D7DF20B2D5541B79159391CE550413DF79A390D2D5541A629C24F2FE55041824CFA96172D55418D124D592FE5504112AF00A9172D5541E17A146E2FE55041A4703D8A172D55415FD5BA2231E55041F1C89A061B2D55416B0EEE2C31E55041E33D731B1B2D5541244138012EE55041EB23C474212D5541D75EA96C29E55041FBCF49E02A2D55415C4637B624E550419A679EFF342D55413F6486AF24E550415808D00D352D554111F5FCAB24E55041FAC65015352D55412382D5A824E5504116A9011C352D5541F96C27AB23E55041E5F8C7EE362D5541D7A370BD23E55041F6285C0F372D55413D0AD72323E550418FC2F518392D5541713D0AB726E550419A9999293B2D5541B81E85EB2BE55041AE47E17A392D5541B81E85AB2EE55041F6285CBF362D55415C8FC2C530E55041EC51B86E312D5541D7A3704D32E5504166666606272D55417B14AE3732E55041B81E856B1D2D5541295C8F5231E5504114AE47F1162D5541D157144D31E55041ABCE8BC9162D55411B47B04431E55041904D0FC4162D55416DAE580931E55041617607DD152D55414A4FA8981DE5504156B333100B2D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277999 - 146156
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+01060000000100000001030000000200000016000000000000201EE55041E17A14DE2E2D55418FC2F5A821E550413D0AD713362D55413D0AD72323E550418FC2F518392D5541713D0AB726E550419A9999293B2D5541B81E85EB2BE55041AE47E17A392D5541B81E85AB2EE55041F6285CBF362D55415C8FC2C530E55041EC51B86E312D5541D7A3704D32E5504166666606272D55417B14AE3732E55041B81E856B1D2D5541295C8F5231E5504114AE47F1162D5541AE47E10A31E550419A9999E9142D5541666666B62EE5504152B81E450D2D5541CDCCCC4C2CE55041CDCCCC4C082D5541EC51B86E29E55041295C8F42042D554114AE472127E5504114AE47E1012D5541D7A3702D24E550415C8FC245002D55415C8FC2351DE55041EC51B89E0B2D55418FC2F5381CE55041A4703D3A0D2D5541B81E855B16E550417B14AEC7162D554114AE47F114E55041E17A14BE1A2D5541713D0A4718E55041C3F528BC1C2D5541000000201EE55041E17A14DE2E2D55410A000000F6285C5F21E550417B14AED7322D55417B14AE6724E5504185EB51682A2D5541B81E85BB29E550419A9999F91F2D5541E17A146E2FE55041A4703D8A172D554148E17A3431E55041AE47E12A1B2D554148E17AC42AE5504114AE47D1272D5541F6285C9F28E550413D0AD7B32C2D5541D7A370BD23E55041F6285C0F372D5541C3F5284C22E55041D7A3707D342D5541F6285C5F21E550417B14AED7322D5541
+</a>
+
+<b>
+0106000000010000000103000000010000002500000043A1ED491DE550413F7C4D8A0B2D554124954C021DE55041E08D7DF20B2D5541B79159391CE550413DF79A390D2D5541A629C24F2FE55041824CFA96172D55418D124D592FE5504112AF00A9172D5541E17A146E2FE55041A4703D8A172D55415FD5BA2231E55041F1C89A061B2D55416B0EEE2C31E55041E33D731B1B2D5541244138012EE55041EB23C474212D5541D75EA96C29E55041FBCF49E02A2D55415C4637B624E550419A679EFF342D55413F6486AF24E550415808D00D352D554111F5FCAB24E55041FAC65015352D55412382D5A824E5504116A9011C352D5541F96C27AB23E55041E5F8C7EE362D5541D7A370BD23E55041F6285C0F372D55413D0AD72323E550418FC2F518392D5541860E794726E550417C0528E93A2D5541B6EB4C7E26E5504114F491043B2D55413D2EA47E2BE55041E11E139E392D5541C31FCC7F2BE550413475B39D392D554117CF598B2BE550413F65F799392D5541A214448D2BE55041A8EA5899392D5541437698932BE5504127224D97392D5541030C87A22BE55041A77E7992392D55413EB95C9A2EE55041F852D7B4362D55419390637330E5504157B68D30322D554198322E3C32E550414EEACD7B272D5541DD6CAD4B32E5504186B16312272D55415CF8494C32E550413BD43A0E272D55417FEA2D3232E55041A2A1B5431D2D5541A0BD9F2C32E55041D4BC801B1D2D5541B697FA1C31E550411E507629162D55416DAE580931E55041617607DD152D5541892AD74329E550417782BF8B112D5541BB5281941DE55041DE47A4160B2D554143A1ED491DE550413F7C4D8A0B2D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277999 - 352067
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+01060000000100000001030000000200000016000000000000201EE55041E17A14DE2E2D55418FC2F5A821E550413D0AD713362D55413D0AD72323E550418FC2F518392D5541713D0AB726E550419A9999293B2D5541B81E85EB2BE55041AE47E17A392D5541B81E85AB2EE55041F6285CBF362D55415C8FC2C530E55041EC51B86E312D5541D7A3704D32E5504166666606272D55417B14AE3732E55041B81E856B1D2D5541295C8F5231E5504114AE47F1162D5541AE47E10A31E550419A9999E9142D5541666666B62EE5504152B81E450D2D5541CDCCCC4C2CE55041CDCCCC4C082D5541EC51B86E29E55041295C8F42042D554114AE472127E5504114AE47E1012D5541D7A3702D24E550415C8FC245002D55415C8FC2351DE55041EC51B89E0B2D55418FC2F5381CE55041A4703D3A0D2D5541B81E855B16E550417B14AEC7162D554114AE47F114E55041E17A14BE1A2D5541713D0A4718E55041C3F528BC1C2D5541000000201EE55041E17A14DE2E2D55410A000000F6285C5F21E550417B14AED7322D55417B14AE6724E5504185EB51682A2D5541B81E85BB29E550419A9999F91F2D5541E17A146E2FE55041A4703D8A172D554148E17A3431E55041AE47E12A1B2D554148E17AC42AE5504114AE47D1272D5541F6285C9F28E550413D0AD7B32C2D5541D7A370BD23E55041F6285C0F372D5541C3F5284C22E55041D7A3707D342D5541F6285C5F21E550417B14AED7322D5541
+</a>
+
+<b>
+0106000000010000000103000000010000002500000043A1ED491DE550413F7C4D8A0B2D554124954C021DE55041E08D7DF20B2D5541B79159391CE550413DF79A390D2D5541A629C24F2FE55041824CFA96172D55418D124D592FE5504112AF00A9172D5541E17A146E2FE55041A4703D8A172D55415FD5BA2231E55041F1C89A061B2D55416B0EEE2C31E55041E33D731B1B2D5541244138012EE55041EB23C474212D5541D75EA96C29E55041FBCF49E02A2D55415C4637B624E550419A679EFF342D55413F6486AF24E550415808D00D352D554111F5FCAB24E55041FAC65015352D55412382D5A824E5504116A9011C352D5541F96C27AB23E55041E5F8C7EE362D5541D7A370BD23E55041F6285C0F372D55413D0AD72323E550418FC2F518392D5541860E794726E550417C0528E93A2D5541B6EB4C7E26E5504114F491043B2D55413D2EA47E2BE55041E11E139E392D5541C31FCC7F2BE550413475B39D392D554117CF598B2BE550413F65F799392D5541A214448D2BE55041A8EA5899392D5541437698932BE5504127224D97392D5541030C87A22BE55041A77E7992392D55413EB95C9A2EE55041F852D7B4362D55419390637330E5504157B68D30322D554198322E3C32E550414EEACD7B272D5541DD6CAD4B32E5504186B16312272D55415CF8494C32E550413BD43A0E272D55417FEA2D3232E55041A2A1B5431D2D5541A0BD9F2C32E55041D4BC801B1D2D5541B697FA1C31E550411E507629162D55416DAE580931E55041617607DD152D5541892AD74329E550417782BF8B112D5541BB5281941DE55041DE47A4160B2D554143A1ED491DE550413F7C4D8A0B2D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>278446 - 53700
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+0106000000010000000103000000010000002500000052B81E85F0F4504100000030682C554166666636EEF450417B14AEA7662C55418FC2F578ECF450419A999939692C554152B81E75EAF450419A9999A96C2C5541713D0A37E7F4504152B81E65722C554114AE4701E6F45041D7A3707D742C554114AE4771EBF450410AD7A3E0772C554152B81E55EAF450413D0AD7637A2C5541713D0A07E9F450413D0AD7437C2C55415C8FC265E6F450413D0AD7038A2C55419A9999D9E6F45041A4703D0A8F2C5541713D0A67EAF45041000000B08D2C5541EC51B8AEEFF45041F6285C2F842C554185EB5198F3F4504148E17A34812C55418FC2F5C8FCF45041D7A370DD712C55413D0AD723FFF45041666666E6732C554152B81E75F5F45041F6285C4F842C55410AD7A310F3F45041CDCCCC8C8B2C5541B81E853BF6F45041A4703DFA892C5541333333C3F6F45041E17A141E892C5541713D0A77F9F45041CDCCCC7C832C5541B81E85ABFDF4504152B81E357C2C554114AE47A107F55041B81E856B6C2C5541333333C30BF55041A4703DBA662C55417B14AE070CF55041C3F5285C662C554152B81EB509F55041F6285C6F632C55416666669607F55041713D0A57612C5541713D0A1705F55041EC51B84E5E2C5541713D0A2702F5504185EB51785B2C5541E17A145E01F550413D0AD7635C2C5541B81E856BFEF45041CDCCCC1C602C55410AD7A350FBF4504185EB5108642C5541EC51B8DEF9F45041B81E85DB652C5541E17A146EF8F45041CDCCCC1C682C554148E17AD4F5F45041EC51B82E6C2C5541C3F528ACF4F45041C3F5283C6B2C554152B81E85F0F4504100000030682C5541
+</a>
+
+<b>
+01060000000100000001030000000100000022000000F6285C1FF8F450410AD7A3B0892C55417F43FA3EF8F450419B0AD0B4892C5541EF82A660F9F45041228D6393892C554162ECB2DBF9F4504173D847EB892C55415C8FC2F5F9F45041EC51B8EE892C5541B81E85EBFAF450415C8FC2958A2C55410AD7A3A0FBF45041D7A3704D8B2C55412E1B83AFFBF450418EF39B6B8B2C5541F6942DEDFBF45041566D46A98B2C554100570AC810F55041FC826A866A2C55416B3C2BC015F55041DA0B9ED06F2C5541333333D315F55041333333B36F2C5541B600ECFC17F55041EB26BD21722C55418E71439D19F55041487B9A526F2C5541295C8F0222F55041E17A14AE602C5541AE1E1BAA20F55041378D88FC5D2C5541AB844B321DF55041C636AC04582C5541333333D317F5504185EB51585F2C5541B81E85FB13F550411F85EBA1642C5541863B28D312F55041F826EC09662C5541B918BD3310F55041571F2299692C55417F8FAD0510F55041BB4C7871692C55413333330310F5504148E17A74692C5541A4703DDA0FF550415C8FC2A5692C55417B14AE070CF55041C3F5285C662C5541333333C30BF55041A4703DBA662C55411B00238F09F550414C0F3CC3692C55410BA2887403F5504113559409732C5541B853A9DD02F5504127C3B9F8732C554154BA2846FCF45041A81F4C087F2C5541915DAB07F9F450418975FE97842C5541163F7B5DF6F4504180B25EEC892C5541133E714AF7F45041763C07D1892C5541F6285C1FF8F450410AD7A3B0892C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>280165 - 265548
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000001A00000014AE47B183F850417B14AE57617F5441A4703D0A7AF850413D0AD7B3657F5441CDCCCCDC7BF850410AD7A390717F54419A9999A979F85041E17A14BE737F5441B81E85DB77F85041AE47E14A747F544114AE47D175F85041295C8F22747F544148E17A8472F85041CDCCCC5C727F5441666666166CF850415C8FC295737F5441000000D069F85041CDCCCC1C6F7F5441EC51B81E65F85041333333C3717F544114AE47A165F8504166666676737F5441CDCCCC4C68F85041B81E857B777F54418FC2F5E869F850410AD7A380787F5441295C8F626CF85041666666A6787F544185EB51C87EF850418FC2F538797F54413D0AD71396F8504152B81E057A7F544114AE47619CF85041F6285C9F7A7F544100000030A9F85041EC51B85E7B7F5441E17A149EACF85041F6285CAF717F5441CDCCCC4CACF85041D7A3705D6D7F54419A999909ADF85041F6285CCF687F5441EC51B80EB0F85041D7A370CD5C7F5441F6285C3FA4F85041713D0AE75D7F54415C8FC2F596F850410AD7A3505E7F5441E17A14AE8BF85041666666865F7F544114AE47B183F850417B14AE57617F5441
+</a>
+
+<b>
+0106000000010000000103000000010000002F0000002336C51768F850414878AD2B777F544104C65F4068F85041B092AA58777F544154345A6968F850413AEC9B8D777F54412C1E284069F85041C540B215787F5441746268EC69F85041DC70D880787F5441381E05F76AF850412B07BC90787F54417FE302F96CF85041A308089D787F5441DBA6956C70F85041EFBF93C6787F54410425870074F85041CC6D14E3787F544151BBA1E277F850411AC20302797F5441058670EF7EF850413DBFA034797F5441C8A94BDD87F85041771B8E88797F54410FDAD76E8FF8504113FEE2CA797F54417275F82096F85041A8B2C1FE797F5441ABC9BA519CF850410A9FCC997A7F5441E3D9B684A5F85041A938E6277B7F5441996E0C2EA9F85041BD299B5E7B7F5441FAACAC46A9F850415426B21E7B7F5441E17A149EACF85041F6285CAF717F5441CDCCCC4CACF85041D7A3705D6D7F544102DF77CBACF8504147411A4F6A7F54419A999909ADF85041F6285CCF687F5441EC51B80EB0F85041D7A370CD5C7F5441F6285C3FA4F85041713D0AE75D7F54415C8FC2F596F850410AD7A3505E7F54411F37CB158EF8504195495A445F7F5441F4916FC58BF85041AA06E5835F7F544119F92AC589F850417F07A6F55F7F544114AE47B183F850417B14AE57617F5441A4703D0A7AF850413D0AD7B3657F5441CDCCCCDC7BF850410AD7A390717F5441B6AAEBFF7AF85041B1AB426B727F5441243B2F8C7AF85041A116D0DD727F54419A9999A979F85041E17A14BE737F5441B81E85DB77F85041AE47E14A747F54419A72402777F85041BF54F63C747F5441432E85C076F8504178DF0735747F544114AE47D175F85041295C8F22747F5441510F681075F85041C4AAF6BA737F54419CBFB4C174F85041671EB190737F544148E17A8472F85041CDCCCC5C727F5441666666166CF850415C8FC295737F5441000000D069F85041CDCCCC1C6F7F5441EC51B81E65F85041333333C3717F5441F25A6A8165F8504149512F0C737F544114F71D0366F850418589B409747F54412336C51768F850414878AD2B777F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>282525 - 398150
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000200000012000000E17A140EFEAC504152B81EC55CE1544148E17AE4F7AC50410AD7A38053E1544152B81EE5F5AC5041E17A14AE4EE15441AE47E1EAF0AC5041295C8FF247E15441CDCCCCACEEAC5041AE47E14A46E1544152B81E85E0AC5041295C8F323EE15441CDCCCC1CDFAC504185EB51083EE154410AD7A3F0D5AC50410AD7A3E037E154410AD7A3E0CCAC5041333333C32EE154418FC2F538CDAC5041295C8FA22BE15441D7A3702DC3AC5041EC51B87E31E15441EC51B87ED1AC504148E17AC43DE15441333333D3DCAC50410AD7A36047E15441CDCCCCFCE0AC5041E17A14AE4CE15441F6285C2FE4AC5041713D0A174FE1544152B81E35EFAC5041B81E85CB59E154410AD7A3D0FAAC5041E17A140E5EE15441E17A140EFEAC504152B81EC55CE154410D00000085EB51E8DEAC5041CDCCCC4C45E1544148E17A04E1AC50416666664644E15441CDCCCC6CE2AC5041E17A14EE41E15441CDCCCC7CE1AC50419A99993941E15441000000C0E1AC50418FC2F55840E1544100000020E4AC5041E17A14FE40E1544114AE4771E5AC504114AE473142E15441B81E856BE3AC5041CDCCCC5C44E154419A999989E3AC50417B14AE8746E154413D0AD773E2AC50415C8FC29547E154413D0AD793E0AC50415C8FC29547E154418FC2F558DFAC5041B81E85CB46E1544185EB51E8DEAC5041CDCCCC4C45E15441
+</a>
+
+<b>
+01060000000100000001030000000100000021000000554F621BCDAC50417F33ACAE2CE15441C629F538CDAC50414BB58FA22BE15441E5A3702DC3AC5041E451B87E31E154414AB99660C7AC50410E8B4D1835E15441EC51B87ED1AC504148E17AC43DE1544114E9A12EDCAC5041B22B0ED546E15441333333D3DCAC50410AD7A36047E1544154AC095ADDAC50416805680C48E15441988B9377DDAC504175E4083248E1544123889278DDAC50418CB64D3348E154418360F07DDDAC504192D1233A48E15441390DED39DEAC504198959C2949E15441D8CCCCFCE0AC5041CC7A14AE4CE154410B295C2FE4AC5041503D0A174FE154417DB81E35EFAC5041AE1E85CB59E15441D131A3D0FAAC5041393E140E5EE15441187C179EFBAC504181C998BC5DE15441E17A140EFEAC504152B81EC55CE15441CEB4CCB1FAAC5041C54B62B757E15441718F7AE4F7AC50412AE7A48053E15441037B1EE5F5AC5041789015AE4EE154413B04E1EAF0AC5041622A8FF247E15441CDCCCCACEEAC5041AE47E14A46E15441B876C18EE3AC504175C446EF3FE15441EF8FF57AE2AC5041989D8D513FE1544146214F32E2AC5041527E01283FE1544119338D43E0AC5041527E01283FE15441174CEBC0DEAC5041719EAEDA3EE15441B227DF8DDEAC5041D14269A83DE154410AD7A3F0D5AC50410AD7A3E037E15441E418A4FACCAC504183045ADD2EE154410AD7A3E0CCAC5041333333C32EE15441554F621BCDAC50417F33ACAE2CE15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>283969 - 3132607
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -17 </desc>
+<a>
+010600000001000000010300000001000000200000008FC2F568283E51419A9999E9460555419A999949263E51413D0AD7B34705554152B81E35243E5141A4703D7A480555413D0AD783253E5141CDCCCC5C4C055541CDCCCC4C273E51410AD7A32051055541B81E85CB283E51415C8FC2F55605554152B81E952E3E51418FC2F5F870055541A4703DDA343E51419A9999A9890555411F85EB91353E5141AE47E12A8E055541F6285C7F363E5141C3F528DC930555418FC2F558373E5141CDCCCCCC980555418FC2F5E8373E5141D7A370DD9B05554133333363393E51413D0AD723A1055541A4703DDA3A3E5141A4703D7AA0055541F6285C3F3C3E51413D0AD7C39F055541295C8F623D3E5141EC51B82E9F055541713D0A573E3E5141B81E859B9E0555417B14AE07403E51417B14AE979D0555410AD7A3D0403E51413D0AD7139D055541713D0A37403E5141E17A14DE9A055541B81E855B3F3E51413D0AD7B3970555419A9999093E3E51413D0AD73391055541EC51B88E3C3E5141295C8FE28805554185EB51483A3E5141295C8F727E055541C3F5282C383E5141295C8F227605554152B81EF5363E5141AE47E1BA71055541C3F528EC353E51415C8FC2456E055541B81E85BB313E5141C3F528EC5C055541CDCCCC1C2D3E51413D0AD7434A055541333333B32C3E5141F6285C8F480555417B14AEE72B3E514148E17A84450555418FC2F568283E51419A9999E946055541
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000000AD7A3D0403E51413D0AD7139D055541666666364D3E51418FC2F52895055541612D4431493E5141BA5F9FB3880555414834CA11463E51411A8898F17E05554156F96F1B453E5141092D952178055541BD5BB725433E5141C26FF8A972055541BB4DA165413E5141FAF5DF646B0555415681F0303E3E5141CC41E5515C055541F9CE95E83C3E5141F52625ED53055541AF2920303C3E51412A98E9134F0555410B2BC7083C3E5141762D240B4E055541C85CA6D43B3E514133170D3C4D055541873D0479373E5141E0E07CCC4C05554181E0B4C7383E5141DF70192B56055541BD126B13353E5141C86C3F07520555419DBADE46353E514168DF9FBC51055541F27F4361323E5141CD5FDB464D055541B5CEAC37303E51415A0B8F1E490555411FB29DB92F3E5141E16E342C480555419A9999692E3E51410AD7A300480555413718949C313E5141361445425405554132600278363E5141763D658D68055541000000B0373E51418FC2F5D86D055541C3F528EC353E51415C8FC2456E05554137BDF0C53A3E5141E931E5B28005554104FBC8B13D3E51413F7A53468F05554173FF6AF73E3E51415ACDE9C6950555410AD7A3D0403E51413D0AD7139D055541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>283969 - 3493779
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -17 </desc>
+<a>
+010600000001000000010300000001000000200000008FC2F568283E51419A9999E9460555419A999949263E51413D0AD7B34705554152B81E35243E5141A4703D7A480555413D0AD783253E5141CDCCCC5C4C055541CDCCCC4C273E51410AD7A32051055541B81E85CB283E51415C8FC2F55605554152B81E952E3E51418FC2F5F870055541A4703DDA343E51419A9999A9890555411F85EB91353E5141AE47E12A8E055541F6285C7F363E5141C3F528DC930555418FC2F558373E5141CDCCCCCC980555418FC2F5E8373E5141D7A370DD9B05554133333363393E51413D0AD723A1055541A4703DDA3A3E5141A4703D7AA0055541F6285C3F3C3E51413D0AD7C39F055541295C8F623D3E5141EC51B82E9F055541713D0A573E3E5141B81E859B9E0555417B14AE07403E51417B14AE979D0555410AD7A3D0403E51413D0AD7139D055541713D0A37403E5141E17A14DE9A055541B81E855B3F3E51413D0AD7B3970555419A9999093E3E51413D0AD73391055541EC51B88E3C3E5141295C8FE28805554185EB51483A3E5141295C8F727E055541C3F5282C383E5141295C8F227605554152B81EF5363E5141AE47E1BA71055541C3F528EC353E51415C8FC2456E055541B81E85BB313E5141C3F528EC5C055541CDCCCC1C2D3E51413D0AD7434A055541333333B32C3E5141F6285C8F480555417B14AEE72B3E514148E17A84450555418FC2F568283E51419A9999E946055541
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000000AD7A3D0403E51413D0AD7139D055541666666364D3E51418FC2F52895055541612D4431493E5141BA5F9FB3880555414834CA11463E51411A8898F17E05554156F96F1B453E5141092D952178055541BD5BB725433E5141C26FF8A972055541BB4DA165413E5141FAF5DF646B0555415681F0303E3E5141CC41E5515C055541F9CE95E83C3E5141F52625ED53055541AF2920303C3E51412A98E9134F0555410B2BC7083C3E5141762D240B4E055541C85CA6D43B3E514133170D3C4D055541873D0479373E5141E0E07CCC4C05554181E0B4C7383E5141DF70192B56055541BD126B13353E5141C86C3F07520555419DBADE46353E514168DF9FBC51055541F27F4361323E5141CD5FDB464D055541B5CEAC37303E51415A0B8F1E490555411FB29DB92F3E5141E16E342C480555419A9999692E3E51410AD7A300480555413718949C313E5141361445425405554132600278363E5141763D658D68055541000000B0373E51418FC2F5D86D055541C3F528EC353E51415C8FC2456E05554137BDF0C53A3E5141E931E5B28005554104FBC8B13D3E51413F7A53468F05554173FF6AF73E3E51415ACDE9C6950555410AD7A3D0403E51413D0AD7139D055541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>284951 - 3132607
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -12 </desc>
+<a>
+0106000000010000000103000000010000000D000000CDCCCCBC2D3E5141713D0A57440555411F85EBE12E3E51410AD7A3C0470555417B14AE772F3E5141D7A370AD47055541AE47E1CA333E5141E17A14FE4F0555417B14AEE7353E51419A99997952055541E17A14FE383E51418FC2F5F85405554133333343383E514148E17AE45005554185EB5178373E5141AE47E1FA4B05554133333303333E5141EC51B8FE4A055541C3F5286C323E514148E17A144905554148E17AA4303E51413D0AD7F34405554152B81ED52E3E5141EC51B87E40055541CDCCCCBC2D3E5141713D0A5744055541
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000000AD7A3D0403E51413D0AD7139D055541666666364D3E51418FC2F52895055541612D4431493E5141BA5F9FB3880555414834CA11463E51411A8898F17E05554156F96F1B453E5141092D952178055541BD5BB725433E5141C26FF8A972055541BB4DA165413E5141FAF5DF646B0555415681F0303E3E5141CC41E5515C055541F9CE95E83C3E5141F52625ED53055541AF2920303C3E51412A98E9134F0555410B2BC7083C3E5141762D240B4E055541C85CA6D43B3E514133170D3C4D055541873D0479373E5141E0E07CCC4C05554181E0B4C7383E5141DF70192B56055541BD126B13353E5141C86C3F07520555419DBADE46353E514168DF9FBC51055541F27F4361323E5141CD5FDB464D055541B5CEAC37303E51415A0B8F1E490555411FB29DB92F3E5141E16E342C480555419A9999692E3E51410AD7A300480555413718949C313E5141361445425405554132600278363E5141763D658D68055541000000B0373E51418FC2F5D86D055541C3F528EC353E51415C8FC2456E05554137BDF0C53A3E5141E931E5B28005554104FBC8B13D3E51413F7A53468F05554173FF6AF73E3E51415ACDE9C6950555410AD7A3D0403E51413D0AD7139D055541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>284951 - 3493779
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -12 </desc>
+<a>
+0106000000010000000103000000010000000D000000CDCCCCBC2D3E5141713D0A57440555411F85EBE12E3E51410AD7A3C0470555417B14AE772F3E5141D7A370AD47055541AE47E1CA333E5141E17A14FE4F0555417B14AEE7353E51419A99997952055541E17A14FE383E51418FC2F5F85405554133333343383E514148E17AE45005554185EB5178373E5141AE47E1FA4B05554133333303333E5141EC51B8FE4A055541C3F5286C323E514148E17A144905554148E17AA4303E51413D0AD7F34405554152B81ED52E3E5141EC51B87E40055541CDCCCCBC2D3E5141713D0A5744055541
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000000AD7A3D0403E51413D0AD7139D055541666666364D3E51418FC2F52895055541612D4431493E5141BA5F9FB3880555414834CA11463E51411A8898F17E05554156F96F1B453E5141092D952178055541BD5BB725433E5141C26FF8A972055541BB4DA165413E5141FAF5DF646B0555415681F0303E3E5141CC41E5515C055541F9CE95E83C3E5141F52625ED53055541AF2920303C3E51412A98E9134F0555410B2BC7083C3E5141762D240B4E055541C85CA6D43B3E514133170D3C4D055541873D0479373E5141E0E07CCC4C05554181E0B4C7383E5141DF70192B56055541BD126B13353E5141C86C3F07520555419DBADE46353E514168DF9FBC51055541F27F4361323E5141CD5FDB464D055541B5CEAC37303E51415A0B8F1E490555411FB29DB92F3E5141E16E342C480555419A9999692E3E51410AD7A300480555413718949C313E5141361445425405554132600278363E5141763D658D68055541000000B0373E51418FC2F5D86D055541C3F528EC353E51415C8FC2456E05554137BDF0C53A3E5141E931E5B28005554104FBC8B13D3E51413F7A53468F05554173FF6AF73E3E51415ACDE9C6950555410AD7A3D0403E51413D0AD7139D055541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>287019 - 4257022
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+010600000001000000010300000001000000100000007B14AE97A8D550410000006089C1544133333393ABD55041AE47E11A8CC1544152B81E35ADD55041CDCCCC3C73C15441B81E85DBA0D55041AE47E1BA6FC15441E17A146E93D55041A4703DFA6CC15441A4703D8A95D55041A4703D4A52C154417B14AEF78DD55041B81E85CB51C15441333333C383D55041D7A3702D52C154417B14AE7780D550417B14AED752C154418FC2F5487CD55041E17A147E54C15441F6285C1F7AD55041D7A3704D76C154413D0AD78386D550419A9999C978C15441C3F528DC9BD55041B81E855B80C1544148E17A44A0D5504114AE471183C1544114AE4771A4D5504185EB51F885C154417B14AE97A8D550410000006089C15441
+</a>
+
+<b>
+010600000001000000010300000001000000160000002366A23494D550414EEEE83352C154417B14AEF78DD55041B81E85CB51C15441333333C383D55041D7A3702D52C154417B14AE7780D550417B14AED752C154418FC2F5487CD55041E17A147E54C15441F6285C1F7AD55041D7A3704D76C154413D0AD78386D550419A9999C978C15441C3F528DC9BD55041B81E855B80C1544148E17A44A0D5504114AE471183C1544114AE4771A4D5504185EB51F885C154417B14AE97A8D550410000006089C1544133333393ABD55041AE47E11A8CC15441FCE04338ADD55041EFBB411073C15441DCA6DF00A8D5504128666EC271C15441DA7E06F3A0D55041F1D8FFFE6FC15441D145F6C29BD55041067F75AF6EC154410CF893B197D5504150A556BA6DC15441E7FBA92192D550410681959B6CC154410E2DB27593D55041273108CC5BC15441D924CF2D94D550418963EDEF52C154418195433B94D55041560E2D4A52C154412366A23494D550414EEEE83352C15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>287019 - 4257050
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+010600000001000000010300000001000000100000007B14AE97A8D550410000006089C1544133333393ABD55041AE47E11A8CC1544152B81E35ADD55041CDCCCC3C73C15441B81E85DBA0D55041AE47E1BA6FC15441E17A146E93D55041A4703DFA6CC15441A4703D8A95D55041A4703D4A52C154417B14AEF78DD55041B81E85CB51C15441333333C383D55041D7A3702D52C154417B14AE7780D550417B14AED752C154418FC2F5487CD55041E17A147E54C15441F6285C1F7AD55041D7A3704D76C154413D0AD78386D550419A9999C978C15441C3F528DC9BD55041B81E855B80C1544148E17A44A0D5504114AE471183C1544114AE4771A4D5504185EB51F885C154417B14AE97A8D550410000006089C15441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000A972BB3A94D5504120D5634852C154418195433B94D55041560E2D4A52C15441D924CF2D94D550418963EDEF52C154410E2DB27593D55041273108CC5BC15441E7FBA92192D550410681959B6CC154410CF893B197D5504150A556BA6DC1544127BC741099D5504126FAFF006EC15441D145F6C29BD55041067F75AF6EC15441DA7E06F3A0D55041F1D8FFFE6FC15441DCA6DF00A8D5504128666EC271C15441FCE04338ADD55041EFBB411073C154411F85EBF1AED55041C3F528CC58C154410000007098D55041B81E856B52C154414468BA5896D5504129A2F15A52C15441A972BB3A94D5504120D5634852C15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>287492 - 223353
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000100000028000000AE47E1CA85A65141E17A14BECDA7544114AE47317DA6514166666606DCA75441C3F5289C7AA65141B81E859BDBA754413D0AD71374A65141EC51B86ED3A754413D0AD7536BA65141295C8F52DFA75441000000506EA651418FC2F5D8E1A7544185EB51E870A6514148E17A84E0A75441EC51B80E77A65141C3F5287CE4A75441F6285C8F78A651419A9999D9E7A754411F85EB9176A65141CDCCCC6CEBA75441713D0A2779A6514100000010EDA75441E17A14BE7AA6514114AE4721EAA75441F6285C1F80A65141C3F5284CDFA75441000000108AA6514148E17A54CBA75441A4703D6A95A65141F6285CAFBEA754411F85EBE1A4A65141AE47E12AA9A75441B81E85BBA5A65141333333B3A6A7544100000050B6A65141EC51B80E94A75441B81E859BB7A65141CDCCCC9C92A754415C8FC2A5BDA65141333333738CA7544185EB51A8C6A65141D7A3702D82A7544114AE4711C5A65141EC51B80E81A75441713D0A77C2A651416666662681A7544114AE4721C0A651415C8FC2F580A754418FC2F5E8BCA65141CDCCCC8C83A754413D0AD743BBA65141D7A3708D82A754411F85EBD1B8A65141EC51B85E85A754419A999949B7A651411F85EBB186A754410AD7A310B5A65141EC51B83E85A754415C8FC2D5B1A65141C3F528AC88A7544148E17AC4A9A65141C3F5283C91A75441D7A3709D9AA65141F6285CAFA3A75441A4703D5A97A6514185EB51A8A7A75441EC51B86E95A65141713D0AF7ABA75441AE47E15A90A651410AD7A350B3A75441E17A144E89A651419A9999C9BCA754415C8FC2A585A65141295C8FF2BEA7544114AE47C17FA651417B14AE17C3A75441000000E086A65141EC51B8BEC7A75441AE47E1CA85A65141E17A14BECDA75441
+</a>
+
+<b>
+01060000000100000001030000000100000031000000B7E6936C8BA651410C47869EDCA754410799643A8CA65141FE729AF8DAA75441067FE01E8EA65141DDA5A22FD7A7544107BEBB1D8EA651416FD0FD2DD7A754415CD1F9588DA65141899746EDD6A75441EFDD6EBD8BA651418B30EA65D6A75441A0AB93A889A65141E60BA7B6D5A75441477C9F3789A65141A998757FD6A754419D89614588A65141887D86C1D6A75441E996235387A651411EDC80ABD6A754419301E04A86A65141D48A48CFD5A754416829911685A65141E8612C61D5A7544197FFEEF483A6514151495F98D7A75441F8BAB2A983A65141FA5D812FD8A75441F43EC62A83A65141845C782ED9A754411F709C9982A65141191B1352DAA75441F3337DDF80A65141278F5FFBDDA754417433123D7FA65141C6903540E1A75441ABD3EB207EA651419C8BEA4FE3A75441B27B23057DA65141D53A4E8BE5A754416AE711BF7CA65141B51C6318E6A75441C8EEE2BB7BA651417D303F22E8A754411459EDC37AA651417BE78448EAA75441C0D2D66B7AA65141BA96B70EEBA754414AEDC5297AA651411ABFD37CEBA754415552DFFE7AA65141E09AA1D1EBA75441EB32C44F7CA651416044CBC3EBA75441A4703D1A7DA6514152B81E35EBA75441E17A146E80A65141E17A149EE5A75441CDCCCCEC80A65141AE47E1CAE5A75441000000907DA6514185EB51D8EBA754410141C1ED7DA6514169584925ECA75441B35AC3087EA651417BCD002DECA75441F34D01FB7EA65141507D33F3ECA75441B81E858B7FA651418FC2F578EDA75441565178F27EA6514128672C07EFA754418BF001EA7EA6514173FF301DEFA75441713D0A777EA6514185EB5148F0A754413D0AD70381A65141E17A14EEF0A754418FC2F52885A651419A999969EFA7544195CCFEF085A65141CD022C9CEDA75441DD52182787A65141DB0FA1B6EAA75441C2F5DC8D88A65141D5D07ECDE7A75441295C8FD289A651413D0AD713E5A75441BA36C8588AA651411DCCC916E4A754419D89614588A651415033A6F8E2A754414B7F145588A651414FDF05D9E2A754410AD7A35088A65141666666D6E2A75441B7E6936C8BA651410C47869EDCA75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>287492 - 393512
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000100000028000000AE47E1CA85A65141E17A14BECDA7544114AE47317DA6514166666606DCA75441C3F5289C7AA65141B81E859BDBA754413D0AD71374A65141EC51B86ED3A754413D0AD7536BA65141295C8F52DFA75441000000506EA651418FC2F5D8E1A7544185EB51E870A6514148E17A84E0A75441EC51B80E77A65141C3F5287CE4A75441F6285C8F78A651419A9999D9E7A754411F85EB9176A65141CDCCCC6CEBA75441713D0A2779A6514100000010EDA75441E17A14BE7AA6514114AE4721EAA75441F6285C1F80A65141C3F5284CDFA75441000000108AA6514148E17A54CBA75441A4703D6A95A65141F6285CAFBEA754411F85EBE1A4A65141AE47E12AA9A75441B81E85BBA5A65141333333B3A6A7544100000050B6A65141EC51B80E94A75441B81E859BB7A65141CDCCCC9C92A754415C8FC2A5BDA65141333333738CA7544185EB51A8C6A65141D7A3702D82A7544114AE4711C5A65141EC51B80E81A75441713D0A77C2A651416666662681A7544114AE4721C0A651415C8FC2F580A754418FC2F5E8BCA65141CDCCCC8C83A754413D0AD743BBA65141D7A3708D82A754411F85EBD1B8A65141EC51B85E85A754419A999949B7A651411F85EBB186A754410AD7A310B5A65141EC51B83E85A754415C8FC2D5B1A65141C3F528AC88A7544148E17AC4A9A65141C3F5283C91A75441D7A3709D9AA65141F6285CAFA3A75441A4703D5A97A6514185EB51A8A7A75441EC51B86E95A65141713D0AF7ABA75441AE47E15A90A651410AD7A350B3A75441E17A144E89A651419A9999C9BCA754415C8FC2A585A65141295C8FF2BEA7544114AE47C17FA651417B14AE17C3A75441000000E086A65141EC51B8BEC7A75441AE47E1CA85A65141E17A14BECDA75441
+</a>
+
+<b>
+01060000000100000001030000000100000031000000B7E6936C8BA651410C47869EDCA754410799643A8CA65141FE729AF8DAA75441067FE01E8EA65141DDA5A22FD7A7544107BEBB1D8EA651416FD0FD2DD7A754415CD1F9588DA65141899746EDD6A75441EFDD6EBD8BA651418B30EA65D6A75441A0AB93A889A65141E60BA7B6D5A75441477C9F3789A65141A998757FD6A754419D89614588A65141887D86C1D6A75441E996235387A651411EDC80ABD6A754419301E04A86A65141D48A48CFD5A754416829911685A65141E8612C61D5A7544197FFEEF483A6514151495F98D7A75441F8BAB2A983A65141FA5D812FD8A75441F43EC62A83A65141845C782ED9A754411F709C9982A65141191B1352DAA75441F3337DDF80A65141278F5FFBDDA754417433123D7FA65141C6903540E1A75441ABD3EB207EA651419C8BEA4FE3A75441B27B23057DA65141D53A4E8BE5A754416AE711BF7CA65141B51C6318E6A75441C8EEE2BB7BA651417D303F22E8A754411459EDC37AA651417BE78448EAA75441C0D2D66B7AA65141BA96B70EEBA754414AEDC5297AA651411ABFD37CEBA754415552DFFE7AA65141E09AA1D1EBA75441EB32C44F7CA651416044CBC3EBA75441A4703D1A7DA6514152B81E35EBA75441E17A146E80A65141E17A149EE5A75441CDCCCCEC80A65141AE47E1CAE5A75441000000907DA6514185EB51D8EBA754410141C1ED7DA6514169584925ECA75441B35AC3087EA651417BCD002DECA75441F34D01FB7EA65141507D33F3ECA75441B81E858B7FA651418FC2F578EDA75441565178F27EA6514128672C07EFA754418BF001EA7EA6514173FF301DEFA75441713D0A777EA6514185EB5148F0A754413D0AD70381A65141E17A14EEF0A754418FC2F52885A651419A999969EFA7544195CCFEF085A65141CD022C9CEDA75441DD52182787A65141DB0FA1B6EAA75441C2F5DC8D88A65141D5D07ECDE7A75441295C8FD289A651413D0AD713E5A75441BA36C8588AA651411DCCC916E4A754419D89614588A651415033A6F8E2A754414B7F145588A651414FDF05D9E2A754410AD7A35088A65141666666D6E2A75441B7E6936C8BA651410C47869EDCA75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288768 - 150985
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+0106000000080000000103000000010000000F000000A4703D9A6E0E5141A4703DFA1F2E5441EC51B8DE6F0E5141AE47E1DA0E2E5441333333D3700E514148E17AA4052E5441E17A147E710E5141D7A370BD002E5441295C8F52700E5141B81E85CB002E544185EB51A8700E5141713D0AE7FE2D5441295C8F426D0E51413D0AD783FF2D5441AE47E16A6A0E5141295C8F92002E544114AE47B1680E514100000030022E54410AD7A3B0670E51410AD7A300102E544133333393660E5141D7A370ED1C2E544185EB51E8650E51410AD7A310262E5441713D0A37650E51419A999919312E544152B81E556D0E5141AE47E15A312E5441A4703D9A6E0E5141A4703DFA1F2E54410103000000010000001000000085EB5198280E51417B14AEA7DA2E5441D7A3704D2A0E5141D7A3705DDD2E54418FC2F5E82B0E5141CDCCCC3CDF2E54410AD7A3802D0E5141A4703D3AE02E54411F85EB412F0E5141A4703DAAE02E544100000020310E51411F85EB71E02E5441333333A3340E51419A9999C9DF2E54417B14AE37370E5141D7A370CDD02E54417B14AE67350E514133333333D02E5441EC51B8DE330E514185EB5128CF2E5441F6285C7F320E514152B81EE5CD2E5441E17A149E310E51411F85EBA1CC2E5441A4703D0A2F0E5141C3F5287CCF2E544114AE47512A0E5141B81E85EBD42E5441713D0A87260E514148E17A34D72E544185EB5198280E51417B14AEA7DA2E54410103000000010000000A0000009A999959300E51419A999919162E5441C3F528BC220E51417B14AE67112E5441CDCCCCBC220E5141000000D01F2E5441D7A370AD220E51411F85EBC1292E5441000000D0220E5141713D0A972B2E54411F85EB31230E5141713D0AF72C2E54417B14AE57240E51415C8FC2F52D2E5441B81E85CB250E5141AE47E16A2E2E54410AD7A3D02F0E5141295C8F922E2E54419A999959300E51419A999919162E54410103000000010000002B00000085EB5118840E51418FC2F5F8472E544185EB5138870E51417B14AE27472E5441C3F528BC8C0E5141000000D0432E544148E17A848E0E5141295C8FB2422E54410AD7A3208E0E5141AE47E1EA412E5441295C8F72890E514148E17A24432E5441E17A14EE820E5141D7A370DD422E5441000000D0800E51417B14AE07422E544185EB51787D0E5141000000C0412E5441B81E854B7A0E5141F6285CBF402E54415C8FC265770E5141D7A3704D402E5441D7A3709D750E5141CDCCCC4C3F2E54418FC2F5C8760E51410AD7A3E0472E544148E17AF4770E5141E17A14BE522E54413D0AD703790E5141F6285C5F5A2E5441D7A3703D7A0E514152B81ED55F2E54418FC2F5E87B0E5141AE47E1CA652E5441EC51B83E7C0E514166666676662E5441B81E85EB7E0E51417B14AEE7652E5441F6285CCF7F0E51417B14AE77682E544114AE47317D0E5141D7A3704D692E5441B81E856B7F0E5141CDCCCC7C6F2E54413D0AD7D3850E5141C3F5287C6E2E5441EC51B80E890E51410AD7A3D06D2E54415C8FC2E58A0E51411F85EB416D2E5441000000108B0E5141AE47E16A6A2E5441AE47E13A8B0E5141D7A370CD682E5441713D0AD78A0E51411F85EB01632E544148E17A64890E51411F85EBF15F2E5441EC51B87E860E5141F6285C8F612E5441CDCCCCFC830E5141CDCCCC8C5D2E5441713D0AA7820E5141000000E05A2E5441C3F528FC820E51411F85EB41582E54411F85EB51830E5141AE47E16A562E5441295C8F42810E5141000000C0552E544185EB51787D0E5141CDCCCC5C562E54413D0AD7137C0E51418FC2F5F8552E5441CDCCCC4C7C0E5141AE47E1DA532E54411F85EBC17C0E51418FC2F548512E54410AD7A3407F0E5141A4703DBA4D2E544152B81EA5800E5141F6285CFF4A2E5441295C8FC2810E514152B81EC5482E544185EB5118840E51418FC2F5F8472E544101030000000100000010000000A4703D5A1E0E514148E17AD4972E5441E17A14CE1D0E5141713D0A679F2E544185EB51E8190E51411F85EB51A62E5441713D0A97180E51413D0AD703AD2E5441EC51B85E180E5141AE47E1FAAF2E544148E17A041A0E5141E17A143EB12E54411F85EB211E0E51411F85EB21B12E5441333333B3210E5141EC51B8DEAF2E5441B81E853B280E5141333333F3AD2E544185EB51C8280E5141D7A3707DAA2E5441CDCCCC8C290E51418FC2F5589F2E544148E17A54290E51419A9999B99B2E54417B14AE17260E514152B81E25902E544148E17A54200E5141CDCCCC6C942E54411F85EBB11D0E5141666666F6952E5441A4703D5A1E0E514148E17AD4972E54410103000000010000000F00000000000060830E5141666666067D2E5441C3F5288C850E5141CDCCCCFC832E544148E17AD4860E51411F85EB71882E54411F85EBF1870E5141295C8F828C2E544100000080880E51415C8FC2758E2E544166666656890E5141C3F5284C902E5441EC51B81E8B0E5141AE47E1EA922E5441C3F5283C8D0E51410AD7A3D0952E5441D7A370BD8E0E5141CDCCCCFC972E54419A999969900E51410AD7A3F09A2E5441713D0A778F0E514185EB51688F2E5441666666F68E0E51411F85EBD1832E5441666666F68E0E514185EB51687B2E5441AE47E1AA880E5141CDCCCC4C7C2E544100000060830E5141666666067D2E544101030000000100000022000000295C8FC2310E5141000000F0BC2E54418FC2F5D8300E51418FC2F578BC2E5441CDCCCC0C2F0E514185EB5138BC2E5441C3F5283C2E0E51417B14AE07BC2E54413D0AD7F32B0E514152B81EE5B92E544185EB51082B0E514148E17A14B92E544185EB5168280E5141713D0AC7B52E5441A4703D3A270E5141EC51B8BEB42E54418FC2F538260E514148E17A74B42E544148E17A14260E51410AD7A380B52E544100000040260E51413D0AD723B72E5441713D0AC7250E51411F85EB91B92E5441C3F528AC240E51411F85EB91B92E54419A999989230E5141713D0AB7BB2E5441295C8FE2230E51411F85EB11BD2E5441C3F528AC240E514152B81E65BE2E5441C3F528BC240E5141A4703D5AC02E5441D7A3702D250E514152B81EA5C12E5441666666F6280E51415C8FC2E5C12E5441666666562C0E514166666656C22E54413D0AD7C32E0E5141000000F0C22E54418FC2F5E82F0E51411F85EBB1C42E54413D0AD753310E51411F85EBB1C42E544114AE47E1310E514100000040C32E544166666636320E5141D7A3701DC22E544185EB5188320E51417B14AE27C12E544185EB51B8320E514152B81E65C02E5441AE47E1DA320E5141AE47E1CABF2E5441E17A14DE320E5141E17A142EBF2E5441AE47E1DA320E5141D7A370BDBE2E5441F6285CBF320E5141CDCCCCECBD2E5441295C8F92320E5141C3F5287CBD2E54411F85EB21320E5141EC51B80EBD2E5441295C8FC2310E5141000000F0BC2E544101030000000100000013000000D7A3709D830E51417B14AE27FB2D544148E17A948B0E5141F6285C7FFB2D5441666666868B0E514100000090F92D5441295C8FF28C0E514114AE4781F92D54410AD7A3008D0E5141A4703D0AFB2D5441B81E854B920E514148E17AA4FA2D54419A999989950E51417B14AE87FA2D544185EB51C8980E51415C8FC295FA2D5441EC51B83E970E5141CDCCCCFCEC2D5441295C8FD2950E514133333393E22D5441000000C0920E5141F6285C7FCC2D5441E17A14EE900E51418FC2F598C22D54410AD7A3908F0E5141D7A3703DBF2D5441713D0A078E0E514152B81E05BD2D5441A4703DCA8A0E514100000030C32D5441A4703DAA790E514114AE4761C42D54417B14AE677B0E5141000000D0E92D54417B14AE977D0E5141000000D0FB2D5441D7A3709D830E51417B14AE27FB2D5441
+</a>
+
+<b>
+010600000001000000010300000001000000190000000AD7A3D02F0E5141295C8F922E2E544130F1BB10300E51417FB2B31E232E54416FD10F44300E51414A1ED7AC162E544194165457300E51416BB08181162E5441C8689859300E5141FF10D019162E5441815A7CB62E0E5141F2911289152E54412323BB442D0E5141B6F39009152E54412FF0C09C250E5141A0E8AF65122E5441433EF603250E51416796FF30122E5441D3CFD826240E5141A4C1BFE4112E5441A66790C2230E51418FE02AC2112E5441A84A9FD5220E5141F4DC7570112E5441C012DFBE220E51417706D7CB162E54411DC4F5BD220E5141D92E271D1B2E5441D5D0BDBC220E51412CB8AD7E1E2E5441CDCCCCBC220E5141000000D01F2E5441061C8BAE220E51417B34080B292E5441500F87C4220E514116FF4FFB2A2E5441000000D0220E5141713D0A972B2E54411F85EB31230E5141713D0AF72C2E54417B14AE57240E51415C8FC2F52D2E5441BCB6F46C250E5141CE41184D2E2E54418DAAF718290E5141C351F5772E2E5441ED3BF6692E0E514145F7028D2E2E54410AD7A3D02F0E5141295C8F922E2E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288768 - 392985
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+0106000000080000000103000000010000000F000000A4703D9A6E0E5141A4703DFA1F2E5441EC51B8DE6F0E5141AE47E1DA0E2E5441333333D3700E514148E17AA4052E5441E17A147E710E5141D7A370BD002E5441295C8F52700E5141B81E85CB002E544185EB51A8700E5141713D0AE7FE2D5441295C8F426D0E51413D0AD783FF2D5441AE47E16A6A0E5141295C8F92002E544114AE47B1680E514100000030022E54410AD7A3B0670E51410AD7A300102E544133333393660E5141D7A370ED1C2E544185EB51E8650E51410AD7A310262E5441713D0A37650E51419A999919312E544152B81E556D0E5141AE47E15A312E5441A4703D9A6E0E5141A4703DFA1F2E54410103000000010000001000000085EB5198280E51417B14AEA7DA2E5441D7A3704D2A0E5141D7A3705DDD2E54418FC2F5E82B0E5141CDCCCC3CDF2E54410AD7A3802D0E5141A4703D3AE02E54411F85EB412F0E5141A4703DAAE02E544100000020310E51411F85EB71E02E5441333333A3340E51419A9999C9DF2E54417B14AE37370E5141D7A370CDD02E54417B14AE67350E514133333333D02E5441EC51B8DE330E514185EB5128CF2E5441F6285C7F320E514152B81EE5CD2E5441E17A149E310E51411F85EBA1CC2E5441A4703D0A2F0E5141C3F5287CCF2E544114AE47512A0E5141B81E85EBD42E5441713D0A87260E514148E17A34D72E544185EB5198280E51417B14AEA7DA2E54410103000000010000000A0000009A999959300E51419A999919162E5441C3F528BC220E51417B14AE67112E5441CDCCCCBC220E5141000000D01F2E5441D7A370AD220E51411F85EBC1292E5441000000D0220E5141713D0A972B2E54411F85EB31230E5141713D0AF72C2E54417B14AE57240E51415C8FC2F52D2E5441B81E85CB250E5141AE47E16A2E2E54410AD7A3D02F0E5141295C8F922E2E54419A999959300E51419A999919162E54410103000000010000002B00000085EB5118840E51418FC2F5F8472E544185EB5138870E51417B14AE27472E5441C3F528BC8C0E5141000000D0432E544148E17A848E0E5141295C8FB2422E54410AD7A3208E0E5141AE47E1EA412E5441295C8F72890E514148E17A24432E5441E17A14EE820E5141D7A370DD422E5441000000D0800E51417B14AE07422E544185EB51787D0E5141000000C0412E5441B81E854B7A0E5141F6285CBF402E54415C8FC265770E5141D7A3704D402E5441D7A3709D750E5141CDCCCC4C3F2E54418FC2F5C8760E51410AD7A3E0472E544148E17AF4770E5141E17A14BE522E54413D0AD703790E5141F6285C5F5A2E5441D7A3703D7A0E514152B81ED55F2E54418FC2F5E87B0E5141AE47E1CA652E5441EC51B83E7C0E514166666676662E5441B81E85EB7E0E51417B14AEE7652E5441F6285CCF7F0E51417B14AE77682E544114AE47317D0E5141D7A3704D692E5441B81E856B7F0E5141CDCCCC7C6F2E54413D0AD7D3850E5141C3F5287C6E2E5441EC51B80E890E51410AD7A3D06D2E54415C8FC2E58A0E51411F85EB416D2E5441000000108B0E5141AE47E16A6A2E5441AE47E13A8B0E5141D7A370CD682E5441713D0AD78A0E51411F85EB01632E544148E17A64890E51411F85EBF15F2E5441EC51B87E860E5141F6285C8F612E5441CDCCCCFC830E5141CDCCCC8C5D2E5441713D0AA7820E5141000000E05A2E5441C3F528FC820E51411F85EB41582E54411F85EB51830E5141AE47E16A562E5441295C8F42810E5141000000C0552E544185EB51787D0E5141CDCCCC5C562E54413D0AD7137C0E51418FC2F5F8552E5441CDCCCC4C7C0E5141AE47E1DA532E54411F85EBC17C0E51418FC2F548512E54410AD7A3407F0E5141A4703DBA4D2E544152B81EA5800E5141F6285CFF4A2E5441295C8FC2810E514152B81EC5482E544185EB5118840E51418FC2F5F8472E544101030000000100000010000000A4703D5A1E0E514148E17AD4972E5441E17A14CE1D0E5141713D0A679F2E544185EB51E8190E51411F85EB51A62E5441713D0A97180E51413D0AD703AD2E5441EC51B85E180E5141AE47E1FAAF2E544148E17A041A0E5141E17A143EB12E54411F85EB211E0E51411F85EB21B12E5441333333B3210E5141EC51B8DEAF2E5441B81E853B280E5141333333F3AD2E544185EB51C8280E5141D7A3707DAA2E5441CDCCCC8C290E51418FC2F5589F2E544148E17A54290E51419A9999B99B2E54417B14AE17260E514152B81E25902E544148E17A54200E5141CDCCCC6C942E54411F85EBB11D0E5141666666F6952E5441A4703D5A1E0E514148E17AD4972E54410103000000010000000F00000000000060830E5141666666067D2E5441C3F5288C850E5141CDCCCCFC832E544148E17AD4860E51411F85EB71882E54411F85EBF1870E5141295C8F828C2E544100000080880E51415C8FC2758E2E544166666656890E5141C3F5284C902E5441EC51B81E8B0E5141AE47E1EA922E5441C3F5283C8D0E51410AD7A3D0952E5441D7A370BD8E0E5141CDCCCCFC972E54419A999969900E51410AD7A3F09A2E5441713D0A778F0E514185EB51688F2E5441666666F68E0E51411F85EBD1832E5441666666F68E0E514185EB51687B2E5441AE47E1AA880E5141CDCCCC4C7C2E544100000060830E5141666666067D2E544101030000000100000022000000295C8FC2310E5141000000F0BC2E54418FC2F5D8300E51418FC2F578BC2E5441CDCCCC0C2F0E514185EB5138BC2E5441C3F5283C2E0E51417B14AE07BC2E54413D0AD7F32B0E514152B81EE5B92E544185EB51082B0E514148E17A14B92E544185EB5168280E5141713D0AC7B52E5441A4703D3A270E5141EC51B8BEB42E54418FC2F538260E514148E17A74B42E544148E17A14260E51410AD7A380B52E544100000040260E51413D0AD723B72E5441713D0AC7250E51411F85EB91B92E5441C3F528AC240E51411F85EB91B92E54419A999989230E5141713D0AB7BB2E5441295C8FE2230E51411F85EB11BD2E5441C3F528AC240E514152B81E65BE2E5441C3F528BC240E5141A4703D5AC02E5441D7A3702D250E514152B81EA5C12E5441666666F6280E51415C8FC2E5C12E5441666666562C0E514166666656C22E54413D0AD7C32E0E5141000000F0C22E54418FC2F5E82F0E51411F85EBB1C42E54413D0AD753310E51411F85EBB1C42E544114AE47E1310E514100000040C32E544166666636320E5141D7A3701DC22E544185EB5188320E51417B14AE27C12E544185EB51B8320E514152B81E65C02E5441AE47E1DA320E5141AE47E1CABF2E5441E17A14DE320E5141E17A142EBF2E5441AE47E1DA320E5141D7A370BDBE2E5441F6285CBF320E5141CDCCCCECBD2E5441295C8F92320E5141C3F5287CBD2E54411F85EB21320E5141EC51B80EBD2E5441295C8FC2310E5141000000F0BC2E544101030000000100000013000000D7A3709D830E51417B14AE27FB2D544148E17A948B0E5141F6285C7FFB2D5441666666868B0E514100000090F92D5441295C8FF28C0E514114AE4781F92D54410AD7A3008D0E5141A4703D0AFB2D5441B81E854B920E514148E17AA4FA2D54419A999989950E51417B14AE87FA2D544185EB51C8980E51415C8FC295FA2D5441EC51B83E970E5141CDCCCCFCEC2D5441295C8FD2950E514133333393E22D5441000000C0920E5141F6285C7FCC2D5441E17A14EE900E51418FC2F598C22D54410AD7A3908F0E5141D7A3703DBF2D5441713D0A078E0E514152B81E05BD2D5441A4703DCA8A0E514100000030C32D5441A4703DAA790E514114AE4761C42D54417B14AE677B0E5141000000D0E92D54417B14AE977D0E5141000000D0FB2D5441D7A3709D830E51417B14AE27FB2D5441
+</a>
+
+<b>
+010600000001000000010300000001000000190000000AD7A3D02F0E5141295C8F922E2E544130F1BB10300E51417FB2B31E232E54416FD10F44300E51414A1ED7AC162E544194165457300E51416BB08181162E5441C8689859300E5141FF10D019162E5441815A7CB62E0E5141F2911289152E54412323BB442D0E5141B6F39009152E54412FF0C09C250E5141A0E8AF65122E5441433EF603250E51416796FF30122E5441D3CFD826240E5141A4C1BFE4112E5441A66790C2230E51418FE02AC2112E5441A84A9FD5220E5141F4DC7570112E5441C012DFBE220E51417706D7CB162E54411DC4F5BD220E5141D92E271D1B2E5441D5D0BDBC220E51412CB8AD7E1E2E5441CDCCCCBC220E5141000000D01F2E5441061C8BAE220E51417B34080B292E5441500F87C4220E514116FF4FFB2A2E5441000000D0220E5141713D0A972B2E54411F85EB31230E5141713D0AF72C2E54417B14AE57240E51415C8FC2F52D2E5441BCB6F46C250E5141CE41184D2E2E54418DAAF718290E5141C351F5772E2E5441ED3BF6692E0E514145F7028D2E2E54410AD7A3D02F0E5141295C8F922E2E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>290160 - 3105964
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000000D00000085EB51D8A39450416666663675FB5441295C8F82AC945041F6285CCF71FB544114AE4741B6945041E17A14EE69FB54411F85EBF1C09450410000008063FB5441666666D6CF945041EC51B88E56FB54413D0AD703CE9450418FC2F5B850FB5441D7A3703DB89450413D0AD7D356FB544185EB51A8B3945041E17A148E58FB544114AE4791739450419A9999F978FB544185EB512874945041D7A3703D7BFB544148E17A048994504152B81EB577FB54419A9999B98F945041713D0A1779FB544185EB51D8A39450416666663675FB5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000C0D9BA8CBB945041FC1B024266FB544111F872EDB594504155CED4DA68FB544109721D99A99450414F93708F6EFB54411EF60367A3945041E3E2718971FB5441F3FF6D089F945041F6FED7A273FB54411EEFDBDA9A945041D6C827C275FB544185D5F13897945041EC51F8A777FB544185EB51D8A39450416666663675FB5441295C8F82AC945041F6285CCF71FB5441E01EAD2CB6945041330750FC69FB544122A17295BE945041878B96EB64FB5441C0D9BA8CBB945041FC1B024266FB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>290160 - 3473207
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000000D00000085EB51D8A39450416666663675FB5441295C8F82AC945041F6285CCF71FB544114AE4741B6945041E17A14EE69FB54411F85EBF1C09450410000008063FB5441666666D6CF945041EC51B88E56FB54413D0AD703CE9450418FC2F5B850FB5441D7A3703DB89450413D0AD7D356FB544185EB51A8B3945041E17A148E58FB544114AE4791739450419A9999F978FB544185EB512874945041D7A3703D7BFB544148E17A048994504152B81EB577FB54419A9999B98F945041713D0A1779FB544185EB51D8A39450416666663675FB5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000C0D9BA8CBB945041FC1B024266FB544111F872EDB594504155CED4DA68FB544109721D99A99450414F93708F6EFB54411EF60367A3945041E3E2718971FB5441F3FF6D089F945041F6FED7A273FB54411EEFDBDA9A945041D6C827C275FB544185D5F13897945041EC51F8A777FB544185EB51D8A39450416666663675FB5441295C8F82AC945041F6285CCF71FB5441E01EAD2CB6945041330750FC69FB544122A17295BE945041878B96EB64FB5441C0D9BA8CBB945041FC1B024266FB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>302239 - 215920
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -124 </desc>
+<a>
+010600000001000000010300000001000000110000000AD7A3603A3D5141D7A3706D8F2355410AD7A380223D51415C8FC2759C2355413D0AD773123D5141EC51B85EA52355410AD7A3000D3D51418FC2F5D8A8235541AE47E11A083D51410AD7A340AC235541F6285C7F033D51410AD7A300B02355417B14AE670E3D514152B81E65B92355419A999949113D51410AD7A3E0BB235541B81E85AB173D5141D7A370EDB5235541F6285C9F393D5141E17A149EA0235541666666863C3D514148E17AA49E235541EC51B87E423D51419A9999599A23554185EB5198423D51410AD7A3809923554114AE47E13D3D5141713D0AD7912355417B14AE373D3D5141E17A145E9023554148E17AD43B3D51410AD7A3F08E2355410AD7A3603A3D5141D7A3706D8F235541
+</a>
+
+<b>
+0106000000010000000103000000010000003400000091ED61520B3D514121001904AA2355418FEAEA3E0B3D5141EE73A111AA23554141934E8E0A3D514142746B8CAA2355412CFC88820A3D514122A99A94AA2355416D09D87F0A3D51415EA77996AA235541B5A783B9033D51415788B732B0235541CE8110C5033D51411FB1A93CB0235541ABB271E5063D514192A2DFEDB22355418D3395ED063D5141F2BFE1F4B2235541F10B05F6063D5141519A25FCB223554143F9EB59113D5141F5B97BC8BB23554127CC2E28123D514112E22311BB235541B81E85AB173D5141D7A370EDB52355417B895005193D51411EAA6714B523554176A0B3F0193D514159AAC967B42355417B4DAE401C3D51417D7FFF33B2235541C96FB6031E3D5141BFD6651CB02355411521128C203D5141B8B8BE91AE2355411ACE0CDC223D51419318E7EAAC2355415F61C1D9233D514197FA3F60AB235541FC167E9A263D514100632A2AAA23554101C478EA283D5141D951A648A9235541266450912A3D5141FBB52FDAA7235541E40CEAA82C3D51413D0D96C2A52355410E5ABC9F303D5141EFEA8DFFA3235541F1A22D5E343D5141ACC8853CA22355410FE7A975393D5141661640B8A0235541526DD87F393D5141DF1FDCB1A0235541B372D687393D5141E9F4D7ACA0235541E0385F8B393D51413415A0AAA0235541292540343A3D514179780FFC8F235541EA8486D3323D5141AFAD82B39323554133FA9346323D51416BE56F9096235541E74838BE2F3D5141027D85C697235541748658542C3D5141099B2C519923554128D5FCCB293D5141000CD98B982355413821337F293D514177AE5BA49823554178B81D6E243D514156A463689B235541C5940412253D5141B50B9B109D23554102934252253D51410B74B58D9D2355418C90EC45263D514108F521F19D235541CDFBE81D233D5141ABD67CC99F235541E3205D9F213D514165CD1F29A02355416ED49493203D514108524EF99F23554185A7A3E0203D5141810A070B9F235541A89DCED0233D514124DE91CA9D235541287BAEE2243D5141A2ACA72B9D23554130713946243D5141E7272A7E9B2355410AD7A380223D51415C8FC2759C2355413D0AD773123D5141EC51B85EA52355410AD7A3000D3D51418FC2F5D8A823554191ED61520B3D514121001904AA235541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>302239 - 392516
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -45 </desc>
+<a>
+010600000001000000010300000001000000110000000AD7A3603A3D5141D7A3706D8F2355410AD7A380223D51415C8FC2759C2355413D0AD773123D5141EC51B85EA52355410AD7A3000D3D51418FC2F5D8A8235541AE47E11A083D51410AD7A340AC235541F6285C7F033D51410AD7A300B02355417B14AE670E3D514152B81E65B92355419A999949113D51410AD7A3E0BB235541B81E85AB173D5141D7A370EDB5235541F6285C9F393D5141E17A149EA0235541666666863C3D514148E17AA49E235541EC51B87E423D51419A9999599A23554185EB5198423D51410AD7A3809923554114AE47E13D3D5141713D0AD7912355417B14AE373D3D5141E17A145E9023554148E17AD43B3D51410AD7A3F08E2355410AD7A3603A3D5141D7A3706D8F235541
+</a>
+
+<b>
+010600000001000000010300000001000000320000008EED61520B3D514122001904AA2355418FEAEA3E0B3D5141E973A111AA2355413D934E8E0A3D51413F746B8CAA2355417909D87F0A3D514156A77996AA235541B0A783B9033D51415888B732B0235541CA8110C5033D51411CB1A93CB0235541A9B271E5063D514193A2DFEDB2235541200B05F6063D51419D9925FCB223554143F9EB59113D5141F5B97BC8BB2355417CCC2E28123D5141C3E12311BB235541B81E85AB173D5141D7A370EDB52355417F895005193D514121AA6714B523554176A0B3F0193D514159AAC967B42355417B4DAE401C3D51417D7FFF33B2235541C96FB6031E3D5141BFD6651CB02355411521128C203D5141B8B8BE91AE2355411ACE0CDC223D51419318E7EAAC2355415F61C1D9233D514197FA3F60AB235541FC167E9A263D514100632A2AAA23554101C478EA283D5141D951A648A9235541266450912A3D5141FBB52FDAA7235541E40CEAA82C3D51413D0D96C2A52355410E5ABC9F303D5141EFEA8DFFA3235541F1A22D5E343D5141ACC8853CA223554112E7A975393D5141681640B8A0235541F72C5F84393D514180D804AFA0235541AF72D687393D5141EBF4D7ACA0235541DC385F8B393D51413715A0AAA02355412C2540343A3D51417C780FFC8F235541EA8486D3323D5141AFAD82B39323554133FA9346323D51416BE56F9096235541E74838BE2F3D5141027D85C697235541748658542C3D5141099B2C519923554128D5FCCB293D5141000CD98B982355412721337F293D514181AE5BA4982355417CB81D6E243D514154A463689B235541C9940412253D5141B50B9B109D23554103934252253D51410A74B58D9D2355418C90EC45263D514108F521F19D235541CBFBE81D233D5141ACD67CC99F235541E2205D9F213D514166CD1F29A023554172D49493203D514109524EF99F23554185A7A3E0203D5141810A070B9F235541AA9DCED0233D514125DE91CA9D235541267BAEE2243D5141A4ACA72B9D23554130713946243D5141E3272A7E9B2355410AD7A380223D51415C8FC2759C2355413D0AD773123D5141EC51B85EA52355410AD7A3000D3D51418FC2F5D8A82355418EED61520B3D514122001904AA235541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>320455 - 3034982
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -530 </desc>
+<a>
+0106000000010000000103000000010000001C00000014AE4791B080514148E17A349B6D544185EB5128B68051410AD7A3309D6D544152B81E55B680514148E17AD49C6D5441295C8F02B780514148E17AF4996D54415C8FC265B98051419A9999D9936D544166666646BC80514148E17AF48D6D54419A999989BF805141295C8F72896D544152B81E75C08051419A999999876D54410AD7A3F0C080514152B81E85856D544152B81E55C1805141333333C3826D5441333333F3C2805141D7A3704D7E6D5441F6285CAFC5805141CDCCCC0C7A6D5441713D0AC7C280514185EB5148786D544148E17A84B8805141A4703DEA716D544185EB5168B08051419A9999196C6D5441AE47E14AA78051417B14AE47646D54410AD7A360A5805141000000E0626D5441C3F5285CA480514114AE4721626D54411F85EB019F805141E17A149E696D5441295C8F229F8051410AD7A3F0706D5441F6285C4F9C805141AE47E11A776D5441713D0AB797805141713D0AA77A6D54417B14AEB7958051418FC2F518796D5441000000608B805141295C8F92756D54418FC2F5288B80514133333383766D5441AE47E16A868051415C8FC2558C6D54410AD7A3A09B80514114AE47D1936D544114AE4791B080514148E17A349B6D5441
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000C3F5285CA480514114AE4721626D544114AE47F19C805141000000B05C6D5441E17A143E958051415C8FC2855A6D54410000002092805141E17A14FE5B6D5441BC61CF6491805141538AFA025F6D5441311F36EC9580514176B7E03D606D544133946C35978051410FA564D65D6D5441A9C609069D8051413447815A606D54410DEF18DB9C805141669488FE646D5441294825F1988051416F52CFB56C6D54410A05AC489A8051414F0F560D6E6D5441BB5E988E99805141EED0B3CA706D5441A3F22FE197805141D8D98166706D544105A6086D96805141D002716B736D544122FF1483928051417526A9DA716D54414FED784B9380514146C30EC96F6D5441A66A9D00918051412FCCDC646F6D544181C8807C8E805141907C7E1A766D544104BFD2B08B805141D277A7B4746D5441FAC227668B805141EF6BA894756D5441B2BE9B9B8D805141A91F6155766D54413E5821998E8051416603519B766D5441F70BA54C92805141E980B9EE776D54417B14AEB7958051418FC2F518796D5441B02BDFDB958051413E622235796D5441CDF6261796805141267D5E4A796D5441BA5CA331978051415AB3303F7A6D5441713D0AB797805141713D0AA77A6D54415B6A5EA59B8051417E7E1E9E776D54418CFBFD7C9780514115E80698746D5441DD8B7EC99A805141CCA3CD8F6F6D544137F30F119B80514152848C566F6D5441991B41E79E80514118151072716D5441F06A6F079F805141849CD52B716D54415D0A63DE9E80514199E18FA2696D544149FD9D0CA1805141A0B8A09D666D5441CBF3EF409E80514145DCD80C656D54418983905D9E805141C947618A636D5441730195429F80514164AA1B6C626D544154BE1B9AA08051417AA14DD0626D544140B156C8A2805141F735C552646D5441C3F5285CA480514114AE4721626D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>320455 - 3515640
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -530 </desc>
+<a>
+0106000000010000000103000000010000001C00000014AE4791B080514148E17A349B6D544185EB5128B68051410AD7A3309D6D544152B81E55B680514148E17AD49C6D5441295C8F02B780514148E17AF4996D54415C8FC265B98051419A9999D9936D544166666646BC80514148E17AF48D6D54419A999989BF805141295C8F72896D544152B81E75C08051419A999999876D54410AD7A3F0C080514152B81E85856D544152B81E55C1805141333333C3826D5441333333F3C2805141D7A3704D7E6D5441F6285CAFC5805141CDCCCC0C7A6D5441713D0AC7C280514185EB5148786D544148E17A84B8805141A4703DEA716D544185EB5168B08051419A9999196C6D5441AE47E14AA78051417B14AE47646D54410AD7A360A5805141000000E0626D5441C3F5285CA480514114AE4721626D54411F85EB019F805141E17A149E696D5441295C8F229F8051410AD7A3F0706D5441F6285C4F9C805141AE47E11A776D5441713D0AB797805141713D0AA77A6D54417B14AEB7958051418FC2F518796D5441000000608B805141295C8F92756D54418FC2F5288B80514133333383766D5441AE47E16A868051415C8FC2558C6D54410AD7A3A09B80514114AE47D1936D544114AE4791B080514148E17A349B6D5441
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000C3F5285CA480514114AE4721626D544114AE47F19C805141000000B05C6D5441E17A143E958051415C8FC2855A6D54410000002092805141E17A14FE5B6D5441BC61CF6491805141538AFA025F6D5441311F36EC9580514176B7E03D606D544133946C35978051410FA564D65D6D5441A9C609069D8051413447815A606D54410DEF18DB9C805141669488FE646D5441294825F1988051416F52CFB56C6D54410A05AC489A8051414F0F560D6E6D5441BB5E988E99805141EED0B3CA706D5441A3F22FE197805141D8D98166706D544105A6086D96805141D002716B736D544122FF1483928051417526A9DA716D54414FED784B9380514146C30EC96F6D5441A66A9D00918051412FCCDC646F6D544181C8807C8E805141907C7E1A766D544104BFD2B08B805141D277A7B4746D5441FAC227668B805141EF6BA894756D5441B2BE9B9B8D805141A91F6155766D54413E5821998E8051416603519B766D5441F70BA54C92805141E980B9EE776D54417B14AEB7958051418FC2F518796D5441B02BDFDB958051413E622235796D5441CDF6261796805141267D5E4A796D5441BA5CA331978051415AB3303F7A6D5441713D0AB797805141713D0AA77A6D54415B6A5EA59B8051417E7E1E9E776D54418CFBFD7C9780514115E80698746D5441DD8B7EC99A805141CCA3CD8F6F6D544137F30F119B80514152848C566F6D5441991B41E79E80514118151072716D5441F06A6F079F805141849CD52B716D54415D0A63DE9E80514199E18FA2696D544149FD9D0CA1805141A0B8A09D666D5441CBF3EF409E80514145DCD80C656D54418983905D9E805141C947618A636D5441730195429F80514164AA1B6C626D544154BE1B9AA08051417AA14DD0626D544140B156C8A2805141F735C552646D5441C3F5285CA480514114AE4721626D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>661056 - 51245
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+0106000000010000000103000000010000002C00000048E17A2478C25041713D0A4775CA5441713D0A1782C2504114AE476183CA54418FC2F54873C2504148E17A9484CA5441D7A3708D6CC25041713D0A0785CA54417B14AE7767C250411F85EBA185CA54418FC2F55866C25041666666A67ECA54413D0AD72365C25041B81E85DB75CA5441A4703D6A63C25041AE47E1AA6DCA5441A4703D3A60C25041B81E855B64CA54410AD7A3E05EC2504185EB514862CA5441F6285CAF5AC25041D7A3706D64CA5441CDCCCCAC53C2504114AE47D168CA5441F6285C7F4AC250419A9999796FCA5441295C8F4244C250415C8FC2D573CA54413333335343C2504185EB513874CA54417B14AE273EC25041EC51B83E76CA5441EC51B84E3EC250418FC2F54878CA5441F6285C4F40C2504148E17AB47FCA5441D7A3706D41C250413D0AD76385CA5441D7A370FD41C250415C8FC2858BCA5441D7A370CD41C2504114AE470191CA544148E17A3441C25041AE47E17A94CA5441333333433EC250418FC2F508A6CA5441666666D63EC2504166666656AACA5441D7A3708D40C250410AD7A300AECA5441295C8FE243C2504152B81EC5B2CA54410AD7A3A057C25041EC51B82ECDCA5441295C8F9259C2504166666676CDCA5441333333535BC250410AD7A380CCCA544114AE472171C25041713D0A479CCA544185EB514872C2504185EB51289CCA54411F85EBB195C250413D0AD77398CA5441295C8F3294C250418FC2F5F894CA5441D7A3708D84C2504152B81EA570CA54411F85EB118CC250410AD7A3F06DCA5441000000D082C25041F6285C8F5FCA54418FC2F51877C25041B81E85CB51CA54410AD7A30071C2504114AE47A157CA5441713D0A476CC25041EC51B80E5BCA544148E17A2468C25041F6285C8F5DCA544148F2E5F163C2504173B9CFCB5FCA5441CF5D0D366FC25041523184CD6DCA54410245A4C474C25041115F9B6776CA544148E17A2478C25041713D0A4775CA5441
+</a>
+
+<b>
+010600000002000000010300000001000000360000009820F1F05EC25041CC6A606162CA5441BBBD5E7A5DC2504189F29EFF62CA544119880C7259C250416FCD273465CA5441CDCCCCAC53C2504114AE47D168CA5441CC9051E54CC250419A9639BC6DCA5441F6285C7F4AC250419A9999796FCA5441295C8F4244C250415C8FC2D573CA54411398B1D043C25041A367A50474CA5441E8AC47D143C25041ED40E10674CA5441C3F6F2F844C250411D75D3A477CA54417D859CFC45C250415C1C571B7CCA544171DD7B0946C250410130E27B7CCA5441F662280347C250412CA8C12D83CA544162CA343447C250416D48926C84CA5441A94EA81347C25041D7035A7586CA54413D6FFA2547C250417C889D198ACA544162CA343447C25041406860048BCA54413614460047C2504178145D0F8ECA5441000360B246C25041D276484E91CA544195F72B9F46C250413F96178391CA54410350D6BF44C25041A6D9F6F196CA54414AD4265D44C25041C64C051A98CA54410DCB9B4F44C25041746A9D3798CA5441493910A041C25041214A07169ECA5441A4A873F73FC250416214007AA2CA5441420AFB0540C25041F32D7D7FA2CA5441828345E73FC25041CD94D4A4A2CA54410B2DA3E63FC25041764C82A6A2CA54410FA54DA43EC25041220C8D2DA4CA54415519538B3EC2504142DBA95AA4CA5441333333433EC250418FC2F508A6CA5441666666D63EC2504166666656AACA5441D7A3708D40C250410AD7A300AECA5441295C8FE243C2504152B81EC5B2CA54410AD7A3A057C25041EC51B82ECDCA54418B2F1EA058C2504150917F53CDCA54417170CDC659C250416C3AC859CDCA5441EB1835B75AC250410E4C17D6CCCA544108658C425BC2504112F5C289CCCA5441DD3E2EA46CC2504144B07134A6CA544114AE472171C25041713D0A479CCA54414A255BC56BC2504180FCFC2D93CA5441D402830668C25041872DE2DB8BCA54419EDFE69C66C25041FC504EB888CA54417BDD417E66C25041EDF6347488CA5441403F020167C25041B7E5C89486CA54419A53956E67C25041F96489B485CA54412CF75DEA66C250417C0EEC3082CA54418FC2F55866C25041666666A67ECA54413D0AD72365C25041B81E85DB75CA544120C355C463C25041BCABA2566FCA544128222AFA61C25041F2BE038369CA54415302E64860C25041AB90558664CA54419820F1F05EC25041CC6A606162CA544101030000000100000013000000D7A3708D84C2504152B81EA570CA544172D2C5A584C25041A94A5D9C70CA54411F85EB118CC250410AD7A3F06DCA5441000000D082C25041F6285C8F5FCA54418FC2F51877C25041B81E85CB51CA54410AD7A30071C2504114AE47A157CA5441713D0A476CC25041EC51B80E5BCA544148E17A2468C25041F6285C8F5DCA544114F7E5F163C2504161BFCFCB5FCA5441CC5D0D366FC25041533184CD6DCA54410445A4C474C250410C5F9B6776CA54413E76B87777C250411928C08075CA5441648F57DF77C25041B4BB225E75CA5441DED76DE077C25041ADC5C55D75CA54418BCE681478C25041A9D2DC4975CA54413750640778C25041E4E83B3775CA54410CF1027584C25041CD78789E70CA54412A84BE7A84C25041B345F1AB70CA5441D7A3708D84C2504152B81EA570CA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>729708 - 1619048
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -734 </desc>
+<a>
+01060000000100000001030000000100000008000000CDCCCCDC13AE50413D0AD763BC3955415C8FC28527AE5041F6285CEFC039554149BA3B862CAE50412D2C7C17C23955411ADACD1E2BAE5041E887ACADA73955412147D42526AE5041789DFE8FA63955418FC2F5D81CAE50410AD7A360A43955419A9999391BAE50410AD7A300AD395541CDCCCCDC13AE50413D0AD763BC395541
+</a>
+
+<b>
+010600000001000000010300000001000000080000008FC2F5D81CAE50410AD7A360A43955419A9999391BAE50410AD7A300AD395541CDCCCCDC13AE50413D0AD763BC3955416FAC78C027AE50418C0EF0FCC03955419BF7C1D22CAE50419D807F12A839554138D014C12AAE50415899FF97A73955411F47D42526AE5041759DFE8FA63955418FC2F5D81CAE50410AD7A360A4395541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>729708 - 3428028
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -734 </desc>
+<a>
+01060000000100000001030000000100000008000000CDCCCCDC13AE50413D0AD763BC3955415C8FC28527AE5041F6285CEFC039554149BA3B862CAE50412D2C7C17C23955411ADACD1E2BAE5041E887ACADA73955412147D42526AE5041789DFE8FA63955418FC2F5D81CAE50410AD7A360A43955419A9999391BAE50410AD7A300AD395541CDCCCCDC13AE50413D0AD763BC395541
+</a>
+
+<b>
+010600000001000000010300000001000000080000008FC2F5D81CAE50410AD7A360A43955419A9999391BAE50410AD7A300AD395541CDCCCCDC13AE50413D0AD763BC3955416FAC78C027AE50418C0EF0FCC03955419BF7C1D22CAE50419D807F12A839554138D014C12AAE50415899FF97A73955411F47D42526AE5041759DFE8FA63955418FC2F5D81CAE50410AD7A360A4395541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>618821 - 1563477
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -51 </desc>
+<a>
+0106000000010000000103000000010000000500000012EBB1D1F2BF5041AF561C13A8F55441D7A3706DE0BF5041B81E855BAAF5544100000040F2BF50418FC2F528ACF554417F167E8DF3BF5041F8DB8389ABF5544112EBB1D1F2BF5041AF561C13A8F55441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000985EFB6DDDBF5041E0F6C5D6A9F55441C62DEACED9BF50419E228D27A9F554415DE1F84DDABF504168A0C571AAF55441FAD66410DBBF50412EDFE19CABF55441FAD66410DBBF504127F4DBF4ACF554415254CB89DABF504149C558F1AEF554417EE08DE8D9BF5041EF461111B1F55441C62DEACED9BF5041FA8937F8B2F554414A98CC01D9BF504116E5482CB5F55441CD02AF34D8BF50412553AAADB8F55441A15EF658D8BF5041FEC5A064BAF5544196D1C894D8BF5041546DFB8DBCF554416A1E19D0DCBF504183E32C7BBAF55441565CA4B7DFBF504138946DF7B0F554417C2BD735E7BF50416D09220BABF5544189422636EBBF5041E948BA72ABF554414D352F58F1BF5041CB9589A8ABF55441ABC5B125F3BF5041FBB20FF5AAF5544114EBB1D1F2BF5041AE561C13A8F55441D7A3706DE0BF5041B81E855BAAF55441985EFB6DDDBF5041E0F6C5D6A9F55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>618821 - 3278742
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -51 </desc>
+<a>
+0106000000010000000103000000010000000500000012EBB1D1F2BF5041AF561C13A8F55441D7A3706DE0BF5041B81E855BAAF5544100000040F2BF50418FC2F528ACF554417F167E8DF3BF5041F8DB8389ABF5544112EBB1D1F2BF5041AF561C13A8F55441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000985EFB6DDDBF5041E0F6C5D6A9F55441C62DEACED9BF50419E228D27A9F554415DE1F84DDABF504168A0C571AAF55441FAD66410DBBF50412EDFE19CABF55441FAD66410DBBF504127F4DBF4ACF554415254CB89DABF504149C558F1AEF554417EE08DE8D9BF5041EF461111B1F55441C62DEACED9BF5041FA8937F8B2F554414A98CC01D9BF504116E5482CB5F55441CD02AF34D8BF50412553AAADB8F55441A15EF658D8BF5041FEC5A064BAF5544196D1C894D8BF5041546DFB8DBCF554416A1E19D0DCBF504183E32C7BBAF55441565CA4B7DFBF504138946DF7B0F554417C2BD735E7BF50416D09220BABF5544189422636EBBF5041E948BA72ABF554414D352F58F1BF5041CB9589A8ABF55441ABC5B125F3BF5041FBB20FF5AAF5544114EBB1D1F2BF5041AE561C13A8F55441D7A3706DE0BF5041B81E855BAAF55441985EFB6DDDBF5041E0F6C5D6A9F55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>466263 - 4372015
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -304 </desc>
+<a>
+0106000000010000000103000000010000000F000000A4703DBAC9A0504133333393E02E554148E17A64C8A0504166666646FD2E5541AE47E18AE0A05041295C8F92002F554185EB5128FAA0504148E17A14042F5541B81E85EBFAA0504166666636032F554114AE4791FAA05041C3F5289C012F5541295C8F02F9A050417B14AE57FD2E5541000000B0F6A050415C8FC255F82E55419A999949F4A05041CDCCCC6CF52E5541EC51B8FEF0A050410AD7A360F22E5541D7A370DDF1A05041EC51B82EEF2E554133333343EAA0504166666676E22E5541F6285CFFDDA05041AE47E14AE22E55413D0AD7C3CAA0504152B81EB5DF2E5541A4703DBAC9A0504133333393E02E5541
+</a>
+
+<b>
+01060000000100000001030000000100000019000000A4703DBAC9A0504133333393E02E554148E17A64C8A0504166666646FD2E5541A2D5EB86DEA0504130171C4C002F5541E55A2822DFA050417DBFF044FC2E5541A261BC58DFA050413F2B8B47FA2E5541D578E966DEA05041F6285C6FF92E5541FA7E6AECDEA0504191ED7C47F52E5541190ADEF9E1A0504148F597DFF52E5541754D5368E1A05041B5B8095BF92E554175931834E0A05041295C8FB2FA2E5541461E47EADFA0504131E1D455FD2E5541A261BC58DFA05041552B31AEFF2E55419BEB7291DFA050419D878070002F554185EB5128FAA0504148E17A14042F5541B81E85EBFAA0504166666636032F554114AE4791FAA05041C3F5289C012F5541295C8F02F9A050417B14AE57FD2E5541000000B0F6A050415C8FC255F82E55419A999949F4A05041CDCCCC6CF52E5541EC51B8FEF0A050410AD7A360F22E5541D7A370DDF1A05041EC51B82EEF2E554133333343EAA0504166666676E22E5541F6285CFFDDA05041AE47E14AE22E55413D0AD7C3CAA0504152B81EB5DF2E5541A4703DBAC9A0504133333393E02E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>321833 - 3088067
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+0106000000010000000103000000010000001B000000666666D6C71551418FC2F598418454418FC2F5A8BB155141333333F34A84544100000070AD155141AE47E1AA5484544152B81EF59B155141D7A3706D60845441B81E853B8F155141000000E068845441B81E859B8E155141A4703D4A69845441333333938F155141713D0AE76A8454413D0AD77390155141A4703D9A6C84544114AE4781901551413D0AD7B36C845441AE47E12A93155141295C8F026B845441295C8F529A1551413D0AD79366845441A4703D6A9E1551411F85EB416484544114AE4781A51551411F85EB3160845441A4703D2AAD155141F6285CFF5B84544133333313B31551418FC2F5E85884544166666626C01551413D0AD733528454418FC2F588D6155141713D0A0744845441F6285C5FE5155141295C8F123984544148E17A04F115514100000030308454415C8FC2050116514148E17A342284544185EB51F8FB155141B81E855B1D845441713D0AE7F7155141333333E318845441713D0AD7E5155141B81E85FB28845441B81E857BDC155141AE47E19A3084544152B81E55CE155141666666463C84544152B81E55C91551413D0AD77340845441666666D6C71551418FC2F59841845441
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000E29DF131E5155141F2582AC604845441F37986D0C715514181B051DF1F845441DCB9E7DFB7155141D3347E992E845441A79B7CD9B41551417AC16A693184544154D139A8B2155141D7D92E7333845441483FCAEAAB155141893FC3013A84544108BBB0B7A01551414EC7CFF44484544197213526951551412979284B50845441BCF4673690155141D2FD19CC54845441CFC947FD8C1551416F7787855784544174450DAF8A155141EA187632598454413AA9791486155141949E20EE5C845441445BBBAB83155141AF68468F5E845441730051B58A1551418CB975496B8454410C469E748D15514175C3C1E369845441BF4B3BDC8F155141FEBC4F756884544175AA951696155141D92DE65264845441D90B1CF7A1155141647EBA625C8454416291F8C0A615514132D0012A59845441D107A79DB2155141E44E212151845441AEA939A5B9155141C72E93534C845441A8A8A866BC155141062D82614A845441A1A9F32BC215514183F7ECF24584544126EFA0E4C715514136FE0F8E41845441BBF45825CE1551412A5E506E3C8454419D290680E115514139158A842C8454416E03C707E9155141D664BF2326845441AC9A0950F8155141B8D7C25518845441791C8C30E9155141AFD4F54307845441787A9164E7155141D84FA65105845441E29DF131E5155141F2582AC604845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>321833 - 3431620
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+0106000000010000000103000000010000001B000000666666D6C71551418FC2F598418454418FC2F5A8BB155141333333F34A84544100000070AD155141AE47E1AA5484544152B81EF59B155141D7A3706D60845441B81E853B8F155141000000E068845441B81E859B8E155141A4703D4A69845441333333938F155141713D0AE76A8454413D0AD77390155141A4703D9A6C84544114AE4781901551413D0AD7B36C845441AE47E12A93155141295C8F026B845441295C8F529A1551413D0AD79366845441A4703D6A9E1551411F85EB416484544114AE4781A51551411F85EB3160845441A4703D2AAD155141F6285CFF5B84544133333313B31551418FC2F5E85884544166666626C01551413D0AD733528454418FC2F588D6155141713D0A0744845441F6285C5FE5155141295C8F123984544148E17A04F115514100000030308454415C8FC2050116514148E17A342284544185EB51F8FB155141B81E855B1D845441713D0AE7F7155141333333E318845441713D0AD7E5155141B81E85FB28845441B81E857BDC155141AE47E19A3084544152B81E55CE155141666666463C84544152B81E55C91551413D0AD77340845441666666D6C71551418FC2F59841845441
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000E29DF131E5155141F2582AC604845441F37986D0C715514181B051DF1F845441DCB9E7DFB7155141D3347E992E845441A79B7CD9B41551417AC16A693184544154D139A8B2155141D7D92E7333845441483FCAEAAB155141893FC3013A84544108BBB0B7A01551414EC7CFF44484544197213526951551412979284B50845441BCF4673690155141D2FD19CC54845441CFC947FD8C1551416F7787855784544174450DAF8A155141EA187632598454413AA9791486155141949E20EE5C845441445BBBAB83155141AF68468F5E845441730051B58A1551418CB975496B8454410C469E748D15514175C3C1E369845441BF4B3BDC8F155141FEBC4F756884544175AA951696155141D92DE65264845441D90B1CF7A1155141647EBA625C8454416291F8C0A615514132D0012A59845441D107A79DB2155141E44E212151845441AEA939A5B9155141C72E93534C845441A8A8A866BC155141062D82614A845441A1A9F32BC215514183F7ECF24584544126EFA0E4C715514136FE0F8E41845441BBF45825CE1551412A5E506E3C8454419D290680E115514139158A842C8454416E03C707E9155141D664BF2326845441AC9A0950F8155141B8D7C25518845441791C8C30E9155141AFD4F54307845441787A9164E7155141D84FA65105845441E29DF131E5155141F2582AC604845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>323608 - 1851955
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+0106000000010000000103000000010000001C00000052B81EA588C850419A9999D9F2A6544114AE474183C8504114AE47E1FBA654410AD7A38081C85041C3F5289CFEA65441B81E850B75C850411F85EB8113A754410AD7A3B07AC8504185EB514814A754410AD7A3608FC85041713D0AA7F1A654410AD7A30093C8504152B81EC5ECA6544185EB51D896C85041A4703DCAE6A65441295C8F329BC850413D0AD7C3DDA654415C8FC2659DC850418FC2F5B8D6A65441E17A146E9EC85041E17A14FECFA65441000000609DC85041295C8FE2C8A65441B81E859B9CC8504114AE4781C5A65441A4703D6A9BC85041AE47E14AC2A65441295C8F3297C85041AE47E13ABAA65441E17A14EE92C850415C8FC245B3A6544114AE477195C8504114AE47A1BAA654417B14AEF797C850410AD7A3A0BFA65441333333F398C850413D0AD7C3C2A6544114AE479199C85041C3F5285CC7A6544152B81EE599C850419A999909CCA654419A99994999C850413D0AD763D3A654410AD7A3C097C8504152B81E75D9A65441D7A370AD95C850417B14AEE7DEA6544152B81EA592C850417B14AEB7E3A654415C8FC2658FC85041D7A3709DE8A654417B14AE378CC850419A999969EDA6544152B81EA588C850419A9999D9F2A65441
+</a>
+
+<b>
+0106000000010000000103000000010000002B000000C4CD303C97C85041D8694A4DBAA654418588712797C850414D99C128BAA65441E17A14EE92C850415C8FC245B3A65441FF4E8C5793C8504149BA9B7AB4A65441BB1D135A95C850414A865054BAA654416F20B95296C85041FCCC033DBDA654415C8FC22597C85041E17A14AEBFA65441218BB4E996C850418868033BC1A65441D3A43BF996C850418C399736C3A654414FCBAC2F97C8504109AA42D5C6A6544107996B4997C8504170365F7AC7A654411B38003797C85041B4E79D66C8A65441F104A7FE96C85041DE931499CAA654410000009096C850419A9999E9CEA654417B14AEB795C8504133333373D2A65441C3F528FC93C8504148E17A24D8A65441EC51B8DE91C8504133333323DDA65441A4703D4A8FC850417B14AEE7E1A654411F85EB718CC8504148E17A84E6A65441A4703D1A89C85041713D0AB7EAA65441ADA6C1A285C85041A5AA78B4EEA6544189EAF0647EC850413FB8AF56F8A6544152B81EF577C8504152B81E0503A754413D0AD72375C8504148E17AB407A754415C8FC2556FC850418FC2F5B812A75441C41AA0AC7AC8504194D2C44714A754419CDC1FDD82C85041D8B2018F06A75441ED19F4618BC85041F255D202F8A65441DD086C788FC8504158120287F1A654412D4FEE1F92C85041B1A8C7F3EDA654416050B0AD94C85041B9946629EAA65441BB9FC1CC96C85041297C3CDCE6A654419B69A03198C85041FF4F3DFEE3A6544177CC0EB29AC85041E2BF4ACEDEA65441B32210279BC85041B18BD1A9DDA65441A0C49F809BC850418239F2C9DCA6544153B702699DC850412DA2C5A3D6A65441E17A146E9EC85041E17A14FECFA65441D387516B9DC850415FEDCF2EC9A65441B81E859B9CC8504114AE4781C5A65441888E186E9BC85041727E4455C2A65441EFDC50B899C85041CB635B0DBFA65441C4CD303C97C85041D8694A4DBAA65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>323608 - 3479531
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+0106000000010000000103000000010000001C00000052B81EA588C850419A9999D9F2A6544114AE474183C8504114AE47E1FBA654410AD7A38081C85041C3F5289CFEA65441B81E850B75C850411F85EB8113A754410AD7A3B07AC8504185EB514814A754410AD7A3608FC85041713D0AA7F1A654410AD7A30093C8504152B81EC5ECA6544185EB51D896C85041A4703DCAE6A65441295C8F329BC850413D0AD7C3DDA654415C8FC2659DC850418FC2F5B8D6A65441E17A146E9EC85041E17A14FECFA65441000000609DC85041295C8FE2C8A65441B81E859B9CC8504114AE4781C5A65441A4703D6A9BC85041AE47E14AC2A65441295C8F3297C85041AE47E13ABAA65441E17A14EE92C850415C8FC245B3A6544114AE477195C8504114AE47A1BAA654417B14AEF797C850410AD7A3A0BFA65441333333F398C850413D0AD7C3C2A6544114AE479199C85041C3F5285CC7A6544152B81EE599C850419A999909CCA654419A99994999C850413D0AD763D3A654410AD7A3C097C8504152B81E75D9A65441D7A370AD95C850417B14AEE7DEA6544152B81EA592C850417B14AEB7E3A654415C8FC2658FC85041D7A3709DE8A654417B14AE378CC850419A999969EDA6544152B81EA588C850419A9999D9F2A65441
+</a>
+
+<b>
+0106000000010000000103000000010000002B000000C4CD303C97C85041D8694A4DBAA654418588712797C850414D99C128BAA65441E17A14EE92C850415C8FC245B3A65441FF4E8C5793C8504149BA9B7AB4A65441BB1D135A95C850414A865054BAA654416F20B95296C85041FCCC033DBDA654415C8FC22597C85041E17A14AEBFA65441218BB4E996C850418868033BC1A65441D3A43BF996C850418C399736C3A654414FCBAC2F97C8504109AA42D5C6A6544107996B4997C8504170365F7AC7A654411B38003797C85041B4E79D66C8A65441F104A7FE96C85041DE931499CAA654410000009096C850419A9999E9CEA654417B14AEB795C8504133333373D2A65441C3F528FC93C8504148E17A24D8A65441EC51B8DE91C8504133333323DDA65441A4703D4A8FC850417B14AEE7E1A654411F85EB718CC8504148E17A84E6A65441A4703D1A89C85041713D0AB7EAA65441ADA6C1A285C85041A5AA78B4EEA6544189EAF0647EC850413FB8AF56F8A6544152B81EF577C8504152B81E0503A754413D0AD72375C8504148E17AB407A754415C8FC2556FC850418FC2F5B812A75441C41AA0AC7AC8504194D2C44714A754419CDC1FDD82C85041D8B2018F06A75441ED19F4618BC85041F255D202F8A65441DD086C788FC8504158120287F1A654412D4FEE1F92C85041B1A8C7F3EDA654416050B0AD94C85041B9946629EAA65441BB9FC1CC96C85041297C3CDCE6A654419B69A03198C85041FF4F3DFEE3A6544177CC0EB29AC85041E2BF4ACEDEA65441B32210279BC85041B18BD1A9DDA65441A0C49F809BC850418239F2C9DCA6544153B702699DC850412DA2C5A3D6A65441E17A146E9EC85041E17A14FECFA65441D387516B9DC850415FEDCF2EC9A65441B81E859B9CC8504114AE4781C5A65441888E186E9BC85041727E4455C2A65441EFDC50B899C85041CB635B0DBFA65441C4CD303C97C85041D8694A4DBAA65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>326721 - 1354039
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -16 </desc>
+<a>
+01060000000100000001030000000100000013000000666666F686225141B81E850B01BC544185EB51D88422514148E17AB405BC54417B14AE6784225141C3F528AC06BC5441A4703DBA82225141CDCCCC5C0ABC5441C3F5289C802251415C8FC2050FBC54418FC2F51887225141B81E85AB12BC5441C3F5286C8B225141295C8F6215BC544114AE47619122514114AE47411ABC54419A9999199A225141CDCCCC5C20BC54415C8FC2059D22514148E17A5419BC5441713D0A479F2251417B14AEE713BC54415C8FC2B59F225141E17A14DE12BC5441D7A3706DA22251415C8FC2550CBC5441295C8F32A5225141B81E85AB05BC54410AD7A3A0A022514148E17AE403BC54411F85EB51972251413333332301BC5441D7A3703D8F2251410AD7A3C0FEBB544148E17A148922514133333363FCBB5441666666F686225141B81E850B01BC5441
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000666666F686225141B81E850B01BC544185EB51D88422514148E17AB405BC54417B14AE6784225141C3F528AC06BC5441A4703DBA82225141CDCCCC5C0ABC5441C3F5289C802251415C8FC2050FBC5441F14ACE1786225141002EF36B12BC54419EEC41FC892251418393A6C814BC544147B22B7A8B225141DB5C036E15BC5441B48731618E22514178FD66CD17BC54418994EF9B8F22514172CFB0CE18BC54416395710D91225141DC56BFFC19BC5441F7ED43FE92225141021789621BBC5441A4097A329522514154BDB5ED1CBC544100050D43972251418861068A1EBC54418083E40298225141E4F70B511FBC54410BC970039922514174FEEC0220BC54419A9999199A225141CDCCCC5C20BC5441B3F89F809A2251417F5AE3641FBC54415C8FC2059D22514148E17A5419BC5441713D0A479F2251417B14AEE713BC54415C8FC2B59F225141E17A14DE12BC5441D7A3706DA22251415C8FC2550CBC5441295C8F32A5225141B81E85AB05BC54410AD7A3A0A022514148E17AE403BC54411F85EB51972251413333332301BC5441D7A3703D8F2251410AD7A3C0FEBB544148E17A148922514133333363FCBB5441666666F686225141B81E850B01BC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>326721 - 3476552
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -16 </desc>
+<a>
+01060000000100000001030000000100000013000000666666F686225141B81E850B01BC544185EB51D88422514148E17AB405BC54417B14AE6784225141C3F528AC06BC5441A4703DBA82225141CDCCCC5C0ABC5441C3F5289C802251415C8FC2050FBC54418FC2F51887225141B81E85AB12BC5441C3F5286C8B225141295C8F6215BC544114AE47619122514114AE47411ABC54419A9999199A225141CDCCCC5C20BC54415C8FC2059D22514148E17A5419BC5441713D0A479F2251417B14AEE713BC54415C8FC2B59F225141E17A14DE12BC5441D7A3706DA22251415C8FC2550CBC5441295C8F32A5225141B81E85AB05BC54410AD7A3A0A022514148E17AE403BC54411F85EB51972251413333332301BC5441D7A3703D8F2251410AD7A3C0FEBB544148E17A148922514133333363FCBB5441666666F686225141B81E850B01BC5441
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000666666F686225141B81E850B01BC544185EB51D88422514148E17AB405BC54417B14AE6784225141C3F528AC06BC5441A4703DBA82225141CDCCCC5C0ABC5441C3F5289C802251415C8FC2050FBC5441F14ACE1786225141002EF36B12BC54419EEC41FC892251418393A6C814BC544147B22B7A8B225141DB5C036E15BC5441B48731618E22514178FD66CD17BC54418994EF9B8F22514172CFB0CE18BC54416395710D91225141DC56BFFC19BC5441F7ED43FE92225141021789621BBC5441A4097A329522514154BDB5ED1CBC544100050D43972251418861068A1EBC54418083E40298225141E4F70B511FBC54410BC970039922514174FEEC0220BC54419A9999199A225141CDCCCC5C20BC5441B3F89F809A2251417F5AE3641FBC54415C8FC2059D22514148E17A5419BC5441713D0A479F2251417B14AEE713BC54415C8FC2B59F225141E17A14DE12BC5441D7A3706DA22251415C8FC2550CBC5441295C8F32A5225141B81E85AB05BC54410AD7A3A0A022514148E17AE403BC54411F85EB51972251413333332301BC5441D7A3703D8F2251410AD7A3C0FEBB544148E17A148922514133333363FCBB5441666666F686225141B81E850B01BC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>327817 - 214526
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+01060000000100000001030000000100000082000000E17A14AEC322514148E17A74E41055415C8FC205C5225141D7A3709DE41055410AD7A300C8225141B81E85DBE4105541B81E85FBCA225141D7A3709DE41055419A999989D022514185EB51F8E310554133333373D5225141666666A6E31055418FC2F598D72251415C8FC275E3105541713D0AF7D8225141CDCCCCECE2105541CDCCCC1CDB22514114AE47A1E210554152B81E75DC225141AE47E11AE21055419A999939DD225141295C8FE2DF10554185EB5138DD225141A4703D5ADD105541AE47E17AD52251417B14AE27C51055410AD7A3C0D42251410AD7A3C0C11055418FC2F5A8D32251411F85EB61BB1055413D0AD743D22251418FC2F5E8B0105541B81E857BD2225141F6285CAFAE105541295C8F22D2225141333333A3AD105541D7A370DDCF22514185EB5118A8105541C3F5284CCF225141EC51B86EA5105541D7A370DDCF22514114AE4741A41055418FC2F558D12251418FC2F598A2105541AE47E17AD122514166666606A1105541E17A144ED1225141C3F5285C9D10554166666616D1225141666666A699105541666666A6D0225141B81E85DB961055415C8FC235CF2251419A999989921055410AD7A3E0CC2251418FC2F5888E1055411F85EBA1C92251410AD7A3708910554185EB51E8C32251410AD7A3408B105541C3F528CCC22251417B14AEC787105541D7A370BDBF225141B81E852B8410554152B81EA5BB2251417B14AEA77F105541A4703D7AB7225141295C8F527C1055410AD7A380B4225141AE47E14A781055418FC2F598B6225141F6285C5F7610554152B81E75B72251419A9999B9761055418FC2F5D8B7225141EC51B81E78105541295C8FA2B922514152B81E35781055417B14AE97BA2251413D0AD71379105541EC51B8DEBC2251418FC2F5E87B1055411F85EBA1BD22514114AE47217D10554114AE4771C422514185EB5158841055419A999949C7225141AE47E1AA82105541D7A370ADC6225141D7A3708D7E10554148E17A04C62251411F85EB917C105541E17A14AEC3225141295C8F627D1055417B14AE57C1225141713D0A677B10554114AE47B1BF225141295C8F927A1055413D0AD783BE225141713D0AC77A1055419A999939BE225141A4703D0A791055411F85EB21BE22514152B81E057710554133333313BE225141A4703DEA73105541713D0AF7BD225141B81E85AB72105541F6285CDFBE22514148E17A9472105541333333B3BE225141295C8F6270105541AE47E14ABD2251413D0AD7F36D10554133333393BB225141F6285CAF6B105541333333C3B7225141A4703D7A6D1055410AD7A3E0B722514114AE47C16E1055410AD7A380B62251415C8FC2D56F105541D7A3701DB5225141E17A14EE6E105541CDCCCCFCB3225141F6285CBF6F105541A4703DFAB622514114AE471174105541B81E851BB72251416666667675105541A4703D5AB42251416666661678105541AE47E15AB4225141666666367B1055418FC2F5F8B4225141F6285C2F7F10554152B81E05B62251413D0AD71383105541CDCCCC5CB72251415C8FC2A586105541AE47E12AB8225141295C8FD288105541CDCCCC1CB8225141A4703DEA8A105541AE47E15AB822514148E17AF48C1055417B14AE17B7225141A4703DDA8F1055410AD7A320B6225141B81E85EB911055419A999979B622514114AE4781931055415C8FC255B72251411F85EBD19410554148E17A44B9225141713D0A0796105541CDCCCCECBB225141713D0AF79610554185EB51F8BC225141D7A3700D9A1055418FC2F528BD22514114AE47719C10554114AE4761BC225141666666669E10554185EB5198BA225141A4703DBA9E1055419A999959B922514166666616A1105541E17A14FEB9225141AE47E14AA2105541713D0A27BA225141295C8FA2A3105541E17A14EEBA2251417B14AE47A41055417B14AE77BB225141CDCCCC7CA5105541333333F3BB2251418FC2F518A7105541666666B6BB225141D7A3703DA91055413D0AD743BB22514100000040AA10554114AE4711BB225141CDCCCCECAA105541295C8F42BA22514152B81E35AB10554152B81E25B8225141C3F5289CAB105541D7A370EDB6225141713D0A77AB10554185EB5168B4225141295C8FD2AA105541D7A370EDAE2251418FC2F578B51055418FC2F5C8A9225141AE47E17AC0105541713D0A97A6225141295C8F32C7105541EC51B8CEA5225141D7A370BDCA105541B81E857BA3225141B81E85BBCD105541000000709D2251411F85EBB1D7105541B81E85EB97225141AE47E1DADE1055418FC2F58896225141295C8F12E110554100000090962251413D0AD783E310554185EB51689522514100000050E510554133333373932251417B14AE37E71055415C8FC2C58D2251417B14AEC7EC105541B81E85FB8B2251417B14AE67F010554152B81E958B22514185EB5108F2105541333333438B2251415C8FC2D5F3105541E17A141E8B22514185EB51C8F5105541EC51B8CE8A22514152B81E55F81055410AD7A3D08A22514185EB5168FA10554152B81EF5A8225141C3F528DCFA105541F6285C1FA8225141A4703D7AF61055413D0AD7D3A62251415C8FC235F41055411F85EB11A7225141AE47E19AF110554185EB51B8A622514100000040EE10554166666656A7225141713D0AB7ED105541713D0AD7A8225141EC51B8CEEB10554185EB5178AB2251411F85EBE1E8105541B81E85EBAC225141A4703DBAE710554114AE47E1AE225141C3F528BCE610554152B81E05B1225141713D0A57E610554148E17AB4B42251419A999909E6105541295C8F42BA2251413D0AD743E4105541CDCCCCACBC2251413D0AD7E3E3105541295C8F42BE2251411F85EBF1E3105541E17A14AEC322514148E17A74E4105541
+</a>
+
+<b>
+010600000001000000010300000001000000A5000000696D3D6FC72251416D1DB0CFE410554119E2C89FC7225141DB68A3D3E410554156EF55ECC7225141D622DED9E4105541AF81C8D6C8225141CE0A18CAE4105541F07FB005CB225141B94A0196E4105541D5AA2576CD225141A19EC053E41055419A999989D022514185EB51F8E31055412632AC07D1225141F18D1BF0E3105541A9C87AABD52251417DB06BA1E31055418FC2F598D72251415C8FC275E3105541713D0AF7D8225141CDCCCCECE21055417B55DDCDDA2251415D8F1FACE21055416EB5BB27DB2251414E2B039DE210554113E29D73DC225141B567DC1AE210554151EC7437DD225141442AD2E3DF10554140B2C838DD225141DDA03D45DE10554185EB5138DD225141A4703D5ADD105541A3CDEF4BDB22514164D81965D710554166C318E8D5225141FD71B37EC6105541AE47E17AD52251417B14AE27C51055410AD7A3C0D42251410AD7A3C0C110554149B78C99D3225141E8EA7B82BB1055413D0AD743D22251418FC2F5E8B0105541B81E857BD2225141F6285CAFAE105541295C8F22D2225141333333A3AD105541D7A370DDCF22514185EB5118A8105541C3F5284CCF225141EC51B86EA5105541D7A370DDCF22514114AE4741A4105541D8C04E57D1225141B1843B90A2105541AE47E17AD122514166666606A1105541E17A144ED1225141C3F5285C9D10554166666616D1225141666666A699105541CDE7DA9AD02251411442C5DA961055415C8FC235CF2251419A999989921055410AD7A3E0CC2251418FC2F5888E1055411F85EBA1C92251410AD7A3708910554185EB51E8C32251410AD7A3408B105541C3F528CCC22251417B14AEC787105541D7A370BDBF225141B81E852B8410554152B81EA5BB2251417B14AEA77F105541A4703D7AB7225141295C8F527C1055410AD7A380B4225141AE47E14A781055418FC2F598B6225141F6285C5F7610554152B81E75B72251419A9999B9761055418FC2F5D8B7225141EC51B81E78105541295C8FA2B922514152B81E35781055417B14AE97BA2251413D0AD71379105541EC51B8DEBC2251418FC2F5E87B1055411F85EBA1BD22514114AE47217D10554114AE4771C422514185EB515884105541F5B12540C7225141792174B082105541A42390D2C4225141960A49E17D10554155D73373C4225141E3A5D41D7D105541E17A14AEC3225141295C8F627D1055417B14AE57C1225141713D0A677B1055415E8548B1BF22514175C88F927A105541F6F5D583BE2251413C900AC77A105541678E9939BE22514179E23D0A791055411F85EB21BE22514152B81E057710554133333313BE225141A4703DEA73105541713D0AF7BD225141B81E85AB72105541F6285CDFBE22514148E17A9472105541333333B3BE225141295C8F6270105541AE47E14ABD2251413D0AD7F36D10554133333393BB225141F6285CAF6B105541333333C3B7225141A4703D7A6D1055410AD7A3E0B722514114AE47C16E1055410AD7A380B62251415C8FC2D56F105541CC4C841DB5225141A34D21EE6E1055413F93CDFCB3225141AD475DBF6F105541A4703DFAB622514114AE471174105541B81E851BB72251416666667675105541A4703D5AB42251416666661678105541AE47E15AB4225141666666367B1055418FC2F5F8B4225141F6285C2F7F10554152B81E05B62251413D0AD71383105541CDCCCC5CB72251415C8FC2A586105541AE47E12AB8225141295C8FD288105541CDCCCC1CB8225141A4703DEA8A105541AE47E15AB822514148E17AF48C1055417B14AE17B7225141A4703DDA8F1055410AD7A320B6225141B81E85EB911055419A999979B622514114AE4781931055415C8FC255B72251411F85EBD19410554148E17A44B9225141713D0A0796105541CDCCCCECBB225141713D0AF79610554185EB51F8BC225141D7A3700D9A1055418FC2F528BD22514114AE47719C10554114AE4761BC225141666666669E1055419A7A5398BA2251416B273DBA9E105541C44A6E26BA225141495520929F1055419A999959B922514166666616A1105541E17A14FEB9225141AE47E14AA2105541713D0A27BA225141295C8FA2A3105541E17A14EEBA2251417B14AE47A41055417B14AE77BB225141CDCCCC7CA5105541333333F3BB2251418FC2F518A7105541666666B6BB225141D7A3703DA9105541E23B3570BB22514133BFDCDBA91055413D0AD743BB22514100000040AA1055416B07C827BB2251410F88E59FAA10554182AC4811BB2251416543CCECAA105541DABD4711BB225141E396CCECAA10554114AE4711BB225141CDCCCCECAA105541295C8F42BA22514152B81E35AB10554152B81E25B8225141C3F5289CAB105541EDAD71EDB622514109720A77AB105541111471EDB6225141CF4A0A77AB105541D7A370EDB6225141713D0A77AB105541B92A5268B4225141466C8FD2AA10554120046CB7B2225141A40BDE1BAE105541D7A370EDAE2251418FC2F578B51055418AD1ABE7AC225141FCF63DCDB9105541244DF6C8A92251416A68E27AC0105541C134F596A62251417E95EE32C7105541EC51B8CEA5225141D7A370BDCA10554156B5877BA3225141E4C981BBCD105541F09124E9A0225141A50490F8D1105541000000709D2251411F85EBB1D7105541D23DC41F9D22514104BE091AD810554185C218EB972251410BC68EDBDE1055418FC2F58896225141295C8F12E110554100000090962251413D0AD783E310554185EB51689522514100000050E510554133333373932251417B14AE37E7105541FFB3C3C58D225141CDF5ACC7EC105541464346EE8B2251412BCC929DF010554152B81E958B22514185EB5108F2105541333333438B2251415C8FC2D5F3105541E17A141E8B22514185EB51C8F5105541C5ABF3F68A2251419A402E0AF710554199F1B8CE8A225141A9631D55F8105541A8BB99D08A22514169A9655DFA1055419FC199D08A225141311B6C5DFA105541597A23F79522514191FB2B93FA105541C0EDE6EFA8225141098955CDFA10554145C6B8D5A822514171C75D37FA1055414AC65A1FA822514125943E7AF61055413D0AD7D3A62251415C8FC235F4105541E197DB09A72251417411994DF110554185EB51B8A622514100000040EE10554118098E53A7225141E34A81B9ED105541713D0AD7A8225141EC51B8CEEB10554185EB5178AB2251411F85EBE1E8105541B81E85EBAC225141A4703DBAE710554114AE47E1AE225141C3F528BCE6105541E7B9F0E4B02251410586F95CE6105541C559F2E4B02251414139F95CE6105541C659F2E4B02251414139F95CE6105541A2D5F706B1225141C87E414DE610554179F0A720B1225141CBD4AF54E610554198E372B7B4225141FB445806E61055419C889F8CB522514188F3A1C4E5105541D7889F8CB522514176F3A1C4E51055419E163044BA225141A4054140E4105541CDCCCCACBC2251413D0AD7E3E3105541D4EDAEE0BD225141CC0D86EEE3105541295C8F42BE2251411F85EBF1E3105541BCA50511C1225141B03C8635E4105541E17A14AEC322514148E17A74E4105541BAB5D2E8C322514150257B7BE410554196DA62C3C62251410005B4C1E4105541A6E810D6C6225141CD2939C3E410554132A2DDF8C6225141461E0EC6E4105541696D3D6FC72251416D1DB0CFE4105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>329646 - 1312752
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -486 </desc>
+<a>
+0106000000010000000103000000020000000F000000295C8F72910751417B14AE2713C05441D7A370DD92075141B81E85BB13C05441EC51B89EAD07514185EB51080BC05441EC51B8EEB807514114AE478106C0544133333373AB075141295C8FA2EBBF5441F6285C0FB50751419A999979E7BF54417B14AEE7B1075141AE47E1FAE3BF54415C8FC225B00751418FC2F538E2BF5441AE47E15AAC075141C3F528CCDEBF5441EC51B8AEAA075141E17A147EDEBF5441666666D693075141CDCCCC6CE7BF5441D7A370AD7F075141F6285C4FEFBF54415C8FC2357F075141F6285C8FF0BF54411F85EB2188075141C3F5287C01C05441295C8F72910751417B14AE2713C054410500000085EB5178A7075141295C8FC2E0BF5441A4703D3AA7075141F6285C2FE0BF5441E17A14EEA70751413D0AD7E3DFBF5441CDCCCC2CA8075141713D0A77E0BF544185EB5178A7075141295C8FC2E0BF5441
+</a>
+
+<b>
+01060000000100000001030000000100000011000000295C8F72910751417B14AE2713C05441D7A370DD92075141B81E85BB13C05441EC51B89EAD07514185EB51080BC05441EC51B8EEB807514114AE478106C0544133333373AB075141295C8FA2EBBF5441F6285C0FB50751419A999979E7BF54417B14AEE7B1075141AE47E1FAE3BF54415C8FC225B00751418FC2F538E2BF54413680AD00B007514158987817E2BF544135F3C775AE0751417A30D7B2E0BF5441F43E4C89A50751418AA7574AE4BF54416DF09D19A4075141A189F610E1BF5441666666D693075141CDCCCC6CE7BF5441D7A370AD7F075141F6285C4FEFBF54415C8FC2357F075141F6285C8FF0BF54411F85EB2188075141C3F5287C01C05441295C8F72910751417B14AE2713C05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>329646 - 3405437
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -486 </desc>
+<a>
+0106000000010000000103000000020000000F000000295C8F72910751417B14AE2713C05441D7A370DD92075141B81E85BB13C05441EC51B89EAD07514185EB51080BC05441EC51B8EEB807514114AE478106C0544133333373AB075141295C8FA2EBBF5441F6285C0FB50751419A999979E7BF54417B14AEE7B1075141AE47E1FAE3BF54415C8FC225B00751418FC2F538E2BF5441AE47E15AAC075141C3F528CCDEBF5441EC51B8AEAA075141E17A147EDEBF5441666666D693075141CDCCCC6CE7BF5441D7A370AD7F075141F6285C4FEFBF54415C8FC2357F075141F6285C8FF0BF54411F85EB2188075141C3F5287C01C05441295C8F72910751417B14AE2713C054410500000085EB5178A7075141295C8FC2E0BF5441A4703D3AA7075141F6285C2FE0BF5441E17A14EEA70751413D0AD7E3DFBF5441CDCCCC2CA8075141713D0A77E0BF544185EB5178A7075141295C8FC2E0BF5441
+</a>
+
+<b>
+01060000000100000001030000000100000011000000295C8F72910751417B14AE2713C05441D7A370DD92075141B81E85BB13C05441EC51B89EAD07514185EB51080BC05441EC51B8EEB807514114AE478106C0544133333373AB075141295C8FA2EBBF5441F6285C0FB50751419A999979E7BF54417B14AEE7B1075141AE47E1FAE3BF54415C8FC225B00751418FC2F538E2BF54413680AD00B007514158987817E2BF544135F3C775AE0751417A30D7B2E0BF5441F43E4C89A50751418AA7574AE4BF54416DF09D19A4075141A189F610E1BF5441666666D693075141CDCCCC6CE7BF5441D7A370AD7F075141F6285C4FEFBF54415C8FC2357F075141F6285C8FF0BF54411F85EB2188075141C3F5287C01C05441295C8F72910751417B14AE2713C05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>335003 - 1486491
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -332 </desc>
+<a>
+010600000001000000010300000001000000140000007B14AE67412E51417B14AE179D325541A4703D6A3E2E51415C8FC2C59A3255410AD7A3B03A2E514152B81EF597325541666666F6362E51410AD7A390953255410AD7A3F0332E514152B81E05943255411F85EBC1352E514114AE47E19D325541CDCCCCFC362E5141C3F5287CA53255418FC2F508382E51415C8FC255AC3255417B14AE37392E51413D0AD793B4325541E17A144E3A2E5141D7A370BDB9325541C3F5281C3C2E51417B14AE47C2325541000000703E2E5141A4703DEACB32554152B81E353F2E5141295C8F42CE325541C3F5287C4A2E514100000070CC32554152B81E05492E51415C8FC2A5C43255417B14AEB7452E51418FC2F5F8AB3255410AD7A340442E51411F85EB219F3255410AD7A320432E5141F6285C7F9E325541A4703D5A422E5141B81E85CB9D3255417B14AE67412E51417B14AE179D325541
+</a>
+
+<b>
+010600000001000000010300000001000000210000007B14AE47272E514185EB519890325541AE47E19A272E5141E17A14CE95325541A4703D7A292E51415C8FC225A0325541CF4739FB2C2E5141C090D353B0325541810E019D2F2E514184C8307BBC325541E0209034312E5141EAF3DEC3C3325541F6E68C74322E5141C4F74563C8325541F8A999E4332E5141A2EF96C2CD325541F42DB25D342E5141AD8390DACF325541F39ABE00352E514102774347D03255417B14AE773F2E51415C8FC235CE3255417A6301803C2E51411F5A3B82C0325541336C8CE0392E5141B840D865B4325541DBAF70C3372E5141E6BE248FAA32554126FF29B6362E51410B9CFCC6A5325541B81E850B352E514148E17A149E3255415526DD18352E5141649DBF759A32554100DC6741352E5141112B9B25903255412984D540382E5141C262B8D483325541C051F8883A2E514166E559A679325541FDBFF3C53D2E51411C895D106B3255417B14AEF73E2E51411F85EBB165325541D7A3700D402E5141C3F528CC60325541F6285CEF3A2E51411F85EB715F325541F6285CBF312E51413D0AD7C35D32554148E17AB4302E5141333333335E3255419A9999F92F2E5141295C8F425F3255416ED23AAD2D2E5141FCBD269D6932554103E736EB2A2E51413100BB09763255415AD1B13D2A2E514115BD6E17793255413E5788E1292E5141A14168097B325541D7A3705D282E51410AD7A370833255417B14AE47272E514185EB519890325541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>335003 - 3307764
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -332 </desc>
+<a>
+010600000001000000010300000001000000140000007B14AE67412E51417B14AE179D325541A4703D6A3E2E51415C8FC2C59A3255410AD7A3B03A2E514152B81EF597325541666666F6362E51410AD7A390953255410AD7A3F0332E514152B81E05943255411F85EBC1352E514114AE47E19D325541CDCCCCFC362E5141C3F5287CA53255418FC2F508382E51415C8FC255AC3255417B14AE37392E51413D0AD793B4325541E17A144E3A2E5141D7A370BDB9325541C3F5281C3C2E51417B14AE47C2325541000000703E2E5141A4703DEACB32554152B81E353F2E5141295C8F42CE325541C3F5287C4A2E514100000070CC32554152B81E05492E51415C8FC2A5C43255417B14AEB7452E51418FC2F5F8AB3255410AD7A340442E51411F85EB219F3255410AD7A320432E5141F6285C7F9E325541A4703D5A422E5141B81E85CB9D3255417B14AE67412E51417B14AE179D325541
+</a>
+
+<b>
+010600000001000000010300000001000000210000007B14AE47272E514185EB519890325541AE47E19A272E5141E17A14CE95325541A4703D7A292E51415C8FC225A0325541CF4739FB2C2E5141C090D353B0325541810E019D2F2E514184C8307BBC325541E0209034312E5141EAF3DEC3C3325541F6E68C74322E5141C4F74563C8325541F8A999E4332E5141A2EF96C2CD325541F42DB25D342E5141AD8390DACF325541F39ABE00352E514102774347D03255417B14AE773F2E51415C8FC235CE3255417A6301803C2E51411F5A3B82C0325541336C8CE0392E5141B840D865B4325541DBAF70C3372E5141E6BE248FAA32554126FF29B6362E51410B9CFCC6A5325541B81E850B352E514148E17A149E3255415526DD18352E5141649DBF759A32554100DC6741352E5141112B9B25903255412984D540382E5141C262B8D483325541C051F8883A2E514166E559A679325541FDBFF3C53D2E51411C895D106B3255417B14AEF73E2E51411F85EBB165325541D7A3700D402E5141C3F528CC60325541F6285CEF3A2E51411F85EB715F325541F6285CBF312E51413D0AD7C35D32554148E17AB4302E5141333333335E3255419A9999F92F2E5141295C8F425F3255416ED23AAD2D2E5141FCBD269D6932554103E736EB2A2E51413100BB09763255415AD1B13D2A2E514115BD6E17793255413E5788E1292E5141A14168097B325541D7A3705D282E51410AD7A370833255417B14AE47272E514185EB519890325541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>335468 - 3064338
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -644 </desc>
+<a>
+0106000000010000000103000000010000001A00000014AE47F1342D5141A4703D7A373255411F85EB61362D5141CDCCCC5C3C325541713D0AA7372D51413333333342325541A4703D5A382D5141C3F5280C45325541C3F528CC3B2D5141AE47E12A44325541713D0A273E2D51419A999949433255418FC2F5183D2D51418FC2F5383C325541000000803C2D514152B81E9537325541333333C33B2D51416666668634325541C3F5283C3B2D5141F6285C2F3132554152B81E95392D5141C3F528EC2832554166666636382D5141EC51B85E233255410AD7A3E0362D51417B14AE171C325541D7A370ED352D51416666666616325541EC51B81E352D51418FC2F52811325541A4703D6A342D5141666666D60C3255419A999919342D514148E17A640A325541CDCCCC8C302D51413D0AD74307325541713D0AA7302D5141EC51B82E0E325541B81E851B312D514133333323133255419A999999312D514148E17A6417325541B81E853B322D5141E17A14EE1B325541EC51B89E322D51411F85EB01203255410AD7A340332D51419A9999C924325541CDCCCC3C342D51413D0AD7D32F32554114AE47F1342D5141A4703D7A37325541
+</a>
+
+<b>
+0106000000010000000103000000010000005A000000262DDA33312D5141A9B76BF513325541F436BB8C312D51419CD1C2F31632554153BCD7A2312D5141AF4B22A01732554173DD8AAD312D51417E9B8BF317325541D3518932322D5141A420705F1C3255417132ADE6322D514156DEFD52223255419571156B332D51411A9C50A526325541210EE0AB332D5141535F817B29325541459701EB332D514155D5153F2C32554185565A3A342D5141C79369B82F325541879EE165342D5141BD464B9131325541E222ADF1342D5141A606D378373255418D725FFC342D5141EDF4DE9F3732554172D98824352D51414E2F1D2838325541B04D7446352D5141C0982E9B38325541528C6532362D51411B6E95BB3B325541A0267A0D372D514184E25A713F32554189EADCE0372D5141345F6A1E43325541B20BDE4E382D5141E7D2E5DD443255418436497C382D5141314F7BFF4532554111D1AA8A382D5141F326666946325541645303DA382D514105DAC6B1483255414B3DCAB3392D5141C6B5DF0C49325541022769E03A2D51414BDB658549325541A106B28A3E2D51416A8092FD4A325541F90F0F9A3F2D514112D45D6A4B325541B77F38EF402D514199D7CBF24B325541E26A8AD1402D5141D611C69C4B3255415E409192402D5141828E41E64A325541C3D96633402D5141C6326FD2493255417AA0953F3F2D51413347C50F47325541258764EF3D2D5141A765454143325541141F4771422D514166C978064232554198990E9B452D51418FB0502B41325541402B966F4C2D5141C3D1B826403255410EECC938522D51415353F8493F325541C2C82262522D5141C762D6443F3255410E980E29522D5141A21F00A33E32554162C69CF2512D5141CFE2CD083E325541467BEEB7512D51419709B8623D3255413D729A30512D5141C071B2E33B325541C8C9EFAF502D5141EC9B87773A325541E6BA911D502D5141E77943D938325541DDF67FAF4F2D51415979BBA1373255410FB4C22B4E2D514150AA4E5833325541A524E80D4C2D5141EC85B05A2D32554174D5C2664B2D51417C399D812B325541946C7C2A492D51416E00E52D25325541A4568270482D51410A61851F23325541709F7614482D5141A86989062232554198E09BC1472D51415A0782092132554125213058472D5141A04990C71F325541D2BA4FF6462D514131AEA89C1E32554143962558462D5141E10BA4B91C325541595538EB452D5141D36AFD6C1B325541877D757C452D51411CB6BC1A1A325541B7D8EB07452D514150E7D7B6183255415C118BA4442D51417E715A871732554172896E14442D51418F8940CF1532554186217772432D5141FEA89FE013325541E88AC419432D51412721C0D1123255413C1D99D3422D5141C3B575FB113255415BD96680422D5141D80C63FD10325541654344C1412D51417E8DA6751132554171BCD3F3402D51410D3082F811325541F790DECC3F2D51410BF062B4123255410FC58EC13E2D5141C9A4A75E13325541895311893D2D51411945B325143255413F06FBF13C2D51415B05F08514325541B04949123C2D514177546C14153255411F85EB313A2D5141666666461632554141134EAE392D5141525746AF14325541352AD2A5392D51418F14458014325541D1013786392D51410FCC28D1133255417F135154392D5141F90EB4BC12325541B93F4C20392D51417D747F9C113255419CD89AF3382D5141F675E1A4103255411B952FD3382D5141D02F44F10F32554103D090B2382D5141298C893C0F3255411F975599382D51416C63D3200F32554139E7797A332D51416A06091A0A3255413E74179A302D514182B1DCC40A3255417179609C302D51411D6E165F0B3255411663AB9E302D5141CFE0CFF90B325541EBCC23A7302D514151CE60D70D3255415B0246A9302D5141BCCE4C400E3255417AF367AE302D5141B8EBEF7E0E325541BC0D53C8302D5141BEEA30990F3255418E9FBD0B312D5141332A7D7412325541262DDA33312D5141A9B76BF513325541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>335468 - 3356971
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -644 </desc>
+<a>
+0106000000010000000103000000010000001A00000014AE47F1342D5141A4703D7A373255411F85EB61362D5141CDCCCC5C3C325541713D0AA7372D51413333333342325541A4703D5A382D5141C3F5280C45325541C3F528CC3B2D5141AE47E12A44325541713D0A273E2D51419A999949433255418FC2F5183D2D51418FC2F5383C325541000000803C2D514152B81E9537325541333333C33B2D51416666668634325541C3F5283C3B2D5141F6285C2F3132554152B81E95392D5141C3F528EC2832554166666636382D5141EC51B85E233255410AD7A3E0362D51417B14AE171C325541D7A370ED352D51416666666616325541EC51B81E352D51418FC2F52811325541A4703D6A342D5141666666D60C3255419A999919342D514148E17A640A325541CDCCCC8C302D51413D0AD74307325541713D0AA7302D5141EC51B82E0E325541B81E851B312D514133333323133255419A999999312D514148E17A6417325541B81E853B322D5141E17A14EE1B325541EC51B89E322D51411F85EB01203255410AD7A340332D51419A9999C924325541CDCCCC3C342D51413D0AD7D32F32554114AE47F1342D5141A4703D7A37325541
+</a>
+
+<b>
+0106000000010000000103000000010000005A000000262DDA33312D5141A9B76BF513325541F436BB8C312D51419CD1C2F31632554153BCD7A2312D5141AF4B22A01732554173DD8AAD312D51417E9B8BF317325541D3518932322D5141A420705F1C3255417132ADE6322D514156DEFD52223255419571156B332D51411A9C50A526325541210EE0AB332D5141535F817B29325541459701EB332D514155D5153F2C32554185565A3A342D5141C79369B82F325541879EE165342D5141BD464B9131325541E222ADF1342D5141A606D378373255418D725FFC342D5141EDF4DE9F3732554172D98824352D51414E2F1D2838325541B04D7446352D5141C0982E9B38325541528C6532362D51411B6E95BB3B325541A0267A0D372D514184E25A713F32554189EADCE0372D5141345F6A1E43325541B20BDE4E382D5141E7D2E5DD443255418436497C382D5141314F7BFF4532554111D1AA8A382D5141F326666946325541645303DA382D514105DAC6B1483255414B3DCAB3392D5141C6B5DF0C49325541022769E03A2D51414BDB658549325541A106B28A3E2D51416A8092FD4A325541F90F0F9A3F2D514112D45D6A4B325541B77F38EF402D514199D7CBF24B325541E26A8AD1402D5141D611C69C4B3255415E409192402D5141828E41E64A325541C3D96633402D5141C6326FD2493255417AA0953F3F2D51413347C50F47325541258764EF3D2D5141A765454143325541141F4771422D514166C978064232554198990E9B452D51418FB0502B41325541402B966F4C2D5141C3D1B826403255410EECC938522D51415353F8493F325541C2C82262522D5141C762D6443F3255410E980E29522D5141A21F00A33E32554162C69CF2512D5141CFE2CD083E325541467BEEB7512D51419709B8623D3255413D729A30512D5141C071B2E33B325541C8C9EFAF502D5141EC9B87773A325541E6BA911D502D5141E77943D938325541DDF67FAF4F2D51415979BBA1373255410FB4C22B4E2D514150AA4E5833325541A524E80D4C2D5141EC85B05A2D32554174D5C2664B2D51417C399D812B325541946C7C2A492D51416E00E52D25325541A4568270482D51410A61851F23325541709F7614482D5141A86989062232554198E09BC1472D51415A0782092132554125213058472D5141A04990C71F325541D2BA4FF6462D514131AEA89C1E32554143962558462D5141E10BA4B91C325541595538EB452D5141D36AFD6C1B325541877D757C452D51411CB6BC1A1A325541B7D8EB07452D514150E7D7B6183255415C118BA4442D51417E715A871732554172896E14442D51418F8940CF1532554186217772432D5141FEA89FE013325541E88AC419432D51412721C0D1123255413C1D99D3422D5141C3B575FB113255415BD96680422D5141D80C63FD10325541654344C1412D51417E8DA6751132554171BCD3F3402D51410D3082F811325541F790DECC3F2D51410BF062B4123255410FC58EC13E2D5141C9A4A75E13325541895311893D2D51411945B325143255413F06FBF13C2D51415B05F08514325541B04949123C2D514177546C14153255411F85EB313A2D5141666666461632554141134EAE392D5141525746AF14325541352AD2A5392D51418F14458014325541D1013786392D51410FCC28D1133255417F135154392D5141F90EB4BC12325541B93F4C20392D51417D747F9C113255419CD89AF3382D5141F675E1A4103255411B952FD3382D5141D02F44F10F32554103D090B2382D5141298C893C0F3255411F975599382D51416C63D3200F32554139E7797A332D51416A06091A0A3255413E74179A302D514182B1DCC40A3255417179609C302D51411D6E165F0B3255411663AB9E302D5141CFE0CFF90B325541EBCC23A7302D514151CE60D70D3255415B0246A9302D5141BCCE4C400E3255417AF367AE302D5141B8EBEF7E0E325541BC0D53C8302D5141BEEA30990F3255418E9FBD0B312D5141332A7D7412325541262DDA33312D5141A9B76BF513325541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>335974 - 184213
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -62 </desc>
+<a>
+01060000000100000001030000000200000065000000D7A3704D037B504148E17A44462B55415C8FC2C5FD7A504133333303492B55419A999909F97A5041CDCCCC5C4B2B5541C3F5280CF67A504114AE47D14D2B5541B81E856BF37A504114AE47C14E2B5541A4703D1AF37A5041000000D04E2B55411F85EB61F17A5041F6285C1F4F2B5541EC51B85EF17A504152B81E25532B55411F85EBD1F27A50413D0AD783522B5541D7A3701DF57A5041295C8FD2572B5541EC51B8FEF27A504100000080582B5541F6285C6FF37A50415C8FC2E5592B5541D7A370ADF67A50415C8FC2755B2B5541333333D3F87A50415C8FC2355A2B55419A9999E9FB7A5041F6285CCF562B5541F6285CBFFD7A50415C8FC2A5582B554148E17A84007B504133333363592B55410AD7A380017B5041AE47E10A592B5541C3F528AC017B5041B81E85FB582B554100000090027B504148E17AA4582B55410AD7A3F0037B5041D7A3701D582B554100000020067B5041713D0A47572B554148E17AE4057B5041666666B6552B5541713D0A77067B504133333373552B554114AE4781077B50418FC2F5F8542B5541C3F5282C097B504166666636542B55411F85EBD1087B5041295C8F82532B55418FC2F598077B504185EB5108512B55418FC2F5A8067B5041B81E850B4F2B55419A999959067B50410AD7A3804E2B55418FC2F538077B5041B81E851B4E2B55417B14AE97077B504114AE47F14D2B5541A4703D1A087B5041EC51B8AE4D2B55419A999969087B5041333333334E2B5541CDCCCCAC0A7B504148E17AA4522B5541D7A3700D0B7B504166666656532B5541295C8FC20B7B50413D0AD7D3542B55419A9999D90B7B504166666616552B5541D7A370ED0C7B504185EB5198542B554148E17AC40D7B50415C8FC235542B5541CDCCCC8C0E7B50419A9999D9532B55411F85EB610F7B504185EB5178532B55417B14AE17117B5041000000B0522B5541D7A3705D117B504100000090522B55418FC2F5C8147B50413D0AD7D3502B5541CDCCCC8C157B50410AD7A370502B5541F6285C6F167B5041E17A14FE4F2B5541C3F5281C187B5041666666264F2B554148E17A041B7B5041AE47E1AA4D2B5541EC51B8AE1C7B50411F85EBD14C2B5541295C8F021E7B5041666666264C2B5541E17A145E1E7B504185EB51F84B2B5541A4703D8A207B504148E17A544B2B55419A999919257B5041CDCCCCFC492B55417B14AE97277B504114AE4741492B5541713D0A97297B5041713D0A97482B554114AE47C12B7B5041EC51B8DE472B554152B81EA52E7B50419A999939462B554185EB5128357B504152B81E85422B5541C3F5289C357B504133333343422B5541D7A370DD377B50417B14AEE7402B5541333333C33A7B504185EB51283F2B5541D7A370BD417B5041AE47E13A3A2B55415C8FC2B5457B5041EC51B8AE372B55417B14AE27467B504133333363372B55418FC2F518507B5041E17A140E322B55418FC2F5E8527B5041D7A3700D302B5541E17A14DE587B50418FC2F598292B55417B14AED75D7B5041CDCCCCAC242B55418FC2F5485F7B504166666626232B5541F6285C7F5C7B5041A4703D9A202B5541D7A370ED557B5041EC51B86E282B55419A999959547B5041C3F528BC262B55410AD7A370537B50415C8FC2C5272B5541AE47E13A537B504133333303282B5541295C8F724F7B50419A9999A9262B554114AE47114B7B5041EC51B82E232B5541666666D6467B5041B81E857B262B554114AE4791407B5041333333032B2B55417B14AEF7407B5041CDCCCCEC2E2B5541713D0A87427B504185EB51E8322B554133333303427B5041713D0A67342B5541EC51B8EE377B50417B14AE473C2B55411F85EB41327B5041EC51B8EE3E2B55413D0AD7832F7B5041AE47E1BA3E2B554148E17A342F7B50418FC2F5E83D2B5541333333E32E7B5041AE47E10A3E2B55417B14AE672E7B5041666666D63C2B55415C8FC2A52C7B5041333333C33D2B5541EC51B80E2B7B5041CDCCCC9C3A2B5541333333A31D7B50415C8FC2753D2B55415C8FC2451B7B5041333333133D2B55411F85EB11157B50415C8FC2C53C2B5541A4703D2A147B504114AE47D13D2B55411F85EBE10E7B5041C3F528BC422B554114AE4701107B50411F85EB01442B554148E17A94107B5041E17A14AE442B55411F85EB71117B5041CDCCCCAC452B5541F6285CFF127B50415C8FC275472B554133333323077B504114AE47214D2B5541D7A3704D037B504148E17A44462B554105000000D7A3702D287B5041C3F528AC402B5541A4703DFA297B50413D0AD733452B55411F85EBC1247B5041F6285C1F472B5541EC51B88E237B50411F85EB61422B5541D7A3702D287B5041C3F528AC402B5541
+</a>
+
+<b>
+0106000000010000000103000000020000003D0000009A9999E9FB7A5041F6285CCF562B554115E6FD3BFD7A50411C7B3622582B55415B2B148EFD7A504112966506582B5541577B147AFF7A5041DA48E35E572B5541C023476AFF7A5041D094822F582B554113C2F8EAFD7A5041042969B1582B5541921C7B84007B50416F1E3363592B5541A9B9C089007B50415D695A61592B55416F7EA480017B5041950CE10A592B5541C3F528AC017B5041B81E85FB582B5541EBA7FF8F027B5041EB027BA4582B554136D4A2F0037B5041F406711D582B554181421C60057B504131229790572B55419667FC1F067B5041F509F246572B55414E68EB1F067B5041B5A07F46572B554177EA7AE4057B50417C1167B6552B55414B6E9889057B5041F74C3EDA552B5541C996A17F047B50419425E743562B554137559212047B5041394350A0552B5541C6BB273C057B5041656E3E2A552B5541E1703293057B50412C2BAE07552B5541879F853B067B50416580F6B8542B55412FAAFF2F077B5041189A6746542B5541DCA2EBD1087B5041353A9082532B5541E78DF498077B504139E45108512B554176C6F5A8067B5041A24D860B4F2B55413EE04B7E067B5041AFD2DBC04E2B554143045B79067B5041B35136B84E2B55419A999959067B50410AD7A3804E2B55416F479711077B5041E4DE572D4E2B55419E30F638077B5041F0A7841B4E2B5541A595AD97077B5041CAB447F14D2B554133333323077B504114AE47214D2B55410CE9704D037B5041235D7B44462B554127E8C2C5FD7A5041B39E3303492B554188318639FC7A50418E7CDAC7492B55419A999909F97A5041CDCCCC5C4B2B5541C3F5280CF67A504114AE47D14D2B5541B9215D2FF77A50416C9E3CFA502B5541FE3D3E8AF67A5041F2D9131E512B55411A5500F0F57A5041D2E6154E512B55419AC63E1AF57A50411844FF8F512B55414C690160F47A504151FE28DC512B55414B9D341AF37A50413A9701D04E2B55416884EB61F17A504163145D1F4F2B5541C030B95EF17A504181571E25532B55411710FC65F27A5041856EBCB2522B5541F1F1ECD1F27A50419AD2D583522B5541B023C8FAF47A5041847E6882572B5541D7A3701DF57A5041295C8FD2572B554112243B17F57A50412E538BD4572B554141EFCDFEF27A504198A64480582B5541F6285C6FF37A50415C8FC2E5592B554179E0665CF57A5041B0FE58D35A2B55412E931DA5F57A5041BAA31EA55A2B5541F9198F12F77A5041596D3C3A5A2B5541601A0A77F87A50416DCF47C1592B5541FFA1B095F97A504100B6955F592B5541D91313DCF97A504175891312592B5541EBC6DC33FA7A5041E92B67B1582B55419A9999E9FB7A5041F6285CCF562B55410E00000034B9984C047B50415F6C2D58562B55410497C155037B5041335A3DBA562B554139ABEC01027B5041C6C1A340572B5541907C6F1D017B5041F23D869B572B5541FB023CEA007B5041B5E813AE572B55418A3B3DFAFF7A504126E6B8FE572B5541A28E966BFF7A5041F1E8102F582B55418F3C487DFF7A5041E42FCC5D572B5541B4C9C2C5FF7A5041FE041F45572B554168891DD5007B50419090F5E8562B5541F4B27BC4017B50418A2B3E8A562B5541F96A4711037B504185B46506562B554108B239EC037B5041CF1F87AF552B554134B9984C047B50415F6C2D58562B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>335974 - 290543
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -62 </desc>
+<a>
+01060000000100000001030000000200000065000000D7A3704D037B504148E17A44462B55415C8FC2C5FD7A504133333303492B55419A999909F97A5041CDCCCC5C4B2B5541C3F5280CF67A504114AE47D14D2B5541B81E856BF37A504114AE47C14E2B5541A4703D1AF37A5041000000D04E2B55411F85EB61F17A5041F6285C1F4F2B5541EC51B85EF17A504152B81E25532B55411F85EBD1F27A50413D0AD783522B5541D7A3701DF57A5041295C8FD2572B5541EC51B8FEF27A504100000080582B5541F6285C6FF37A50415C8FC2E5592B5541D7A370ADF67A50415C8FC2755B2B5541333333D3F87A50415C8FC2355A2B55419A9999E9FB7A5041F6285CCF562B5541F6285CBFFD7A50415C8FC2A5582B554148E17A84007B504133333363592B55410AD7A380017B5041AE47E10A592B5541C3F528AC017B5041B81E85FB582B554100000090027B504148E17AA4582B55410AD7A3F0037B5041D7A3701D582B554100000020067B5041713D0A47572B554148E17AE4057B5041666666B6552B5541713D0A77067B504133333373552B554114AE4781077B50418FC2F5F8542B5541C3F5282C097B504166666636542B55411F85EBD1087B5041295C8F82532B55418FC2F598077B504185EB5108512B55418FC2F5A8067B5041B81E850B4F2B55419A999959067B50410AD7A3804E2B55418FC2F538077B5041B81E851B4E2B55417B14AE97077B504114AE47F14D2B5541A4703D1A087B5041EC51B8AE4D2B55419A999969087B5041333333334E2B5541CDCCCCAC0A7B504148E17AA4522B5541D7A3700D0B7B504166666656532B5541295C8FC20B7B50413D0AD7D3542B55419A9999D90B7B504166666616552B5541D7A370ED0C7B504185EB5198542B554148E17AC40D7B50415C8FC235542B5541CDCCCC8C0E7B50419A9999D9532B55411F85EB610F7B504185EB5178532B55417B14AE17117B5041000000B0522B5541D7A3705D117B504100000090522B55418FC2F5C8147B50413D0AD7D3502B5541CDCCCC8C157B50410AD7A370502B5541F6285C6F167B5041E17A14FE4F2B5541C3F5281C187B5041666666264F2B554148E17A041B7B5041AE47E1AA4D2B5541EC51B8AE1C7B50411F85EBD14C2B5541295C8F021E7B5041666666264C2B5541E17A145E1E7B504185EB51F84B2B5541A4703D8A207B504148E17A544B2B55419A999919257B5041CDCCCCFC492B55417B14AE97277B504114AE4741492B5541713D0A97297B5041713D0A97482B554114AE47C12B7B5041EC51B8DE472B554152B81EA52E7B50419A999939462B554185EB5128357B504152B81E85422B5541C3F5289C357B504133333343422B5541D7A370DD377B50417B14AEE7402B5541333333C33A7B504185EB51283F2B5541D7A370BD417B5041AE47E13A3A2B55415C8FC2B5457B5041EC51B8AE372B55417B14AE27467B504133333363372B55418FC2F518507B5041E17A140E322B55418FC2F5E8527B5041D7A3700D302B5541E17A14DE587B50418FC2F598292B55417B14AED75D7B5041CDCCCCAC242B55418FC2F5485F7B504166666626232B5541F6285C7F5C7B5041A4703D9A202B5541D7A370ED557B5041EC51B86E282B55419A999959547B5041C3F528BC262B55410AD7A370537B50415C8FC2C5272B5541AE47E13A537B504133333303282B5541295C8F724F7B50419A9999A9262B554114AE47114B7B5041EC51B82E232B5541666666D6467B5041B81E857B262B554114AE4791407B5041333333032B2B55417B14AEF7407B5041CDCCCCEC2E2B5541713D0A87427B504185EB51E8322B554133333303427B5041713D0A67342B5541EC51B8EE377B50417B14AE473C2B55411F85EB41327B5041EC51B8EE3E2B55413D0AD7832F7B5041AE47E1BA3E2B554148E17A342F7B50418FC2F5E83D2B5541333333E32E7B5041AE47E10A3E2B55417B14AE672E7B5041666666D63C2B55415C8FC2A52C7B5041333333C33D2B5541EC51B80E2B7B5041CDCCCC9C3A2B5541333333A31D7B50415C8FC2753D2B55415C8FC2451B7B5041333333133D2B55411F85EB11157B50415C8FC2C53C2B5541A4703D2A147B504114AE47D13D2B55411F85EBE10E7B5041C3F528BC422B554114AE4701107B50411F85EB01442B554148E17A94107B5041E17A14AE442B55411F85EB71117B5041CDCCCCAC452B5541F6285CFF127B50415C8FC275472B554133333323077B504114AE47214D2B5541D7A3704D037B504148E17A44462B554105000000D7A3702D287B5041C3F528AC402B5541A4703DFA297B50413D0AD733452B55411F85EBC1247B5041F6285C1F472B5541EC51B88E237B50411F85EB61422B5541D7A3702D287B5041C3F528AC402B5541
+</a>
+
+<b>
+0106000000010000000103000000020000003D0000009A9999E9FB7A5041F6285CCF562B554115E6FD3BFD7A50411C7B3622582B55415B2B148EFD7A504112966506582B5541577B147AFF7A5041DA48E35E572B5541C023476AFF7A5041D094822F582B554113C2F8EAFD7A5041042969B1582B5541921C7B84007B50416F1E3363592B5541A9B9C089007B50415D695A61592B55416F7EA480017B5041950CE10A592B5541C3F528AC017B5041B81E85FB582B5541EBA7FF8F027B5041EB027BA4582B554136D4A2F0037B5041F406711D582B554181421C60057B504131229790572B55419667FC1F067B5041F509F246572B55414E68EB1F067B5041B5A07F46572B554177EA7AE4057B50417C1167B6552B55414B6E9889057B5041F74C3EDA552B5541C996A17F047B50419425E743562B554137559212047B5041394350A0552B5541C6BB273C057B5041656E3E2A552B5541E1703293057B50412C2BAE07552B5541879F853B067B50416580F6B8542B55412FAAFF2F077B5041189A6746542B5541DCA2EBD1087B5041353A9082532B5541E78DF498077B504139E45108512B554176C6F5A8067B5041A24D860B4F2B55413EE04B7E067B5041AFD2DBC04E2B554143045B79067B5041B35136B84E2B55419A999959067B50410AD7A3804E2B55416F479711077B5041E4DE572D4E2B55419E30F638077B5041F0A7841B4E2B5541A595AD97077B5041CAB447F14D2B554133333323077B504114AE47214D2B55410CE9704D037B5041235D7B44462B554127E8C2C5FD7A5041B39E3303492B554188318639FC7A50418E7CDAC7492B55419A999909F97A5041CDCCCC5C4B2B5541C3F5280CF67A504114AE47D14D2B5541B9215D2FF77A50416C9E3CFA502B5541FE3D3E8AF67A5041F2D9131E512B55411A5500F0F57A5041D2E6154E512B55419AC63E1AF57A50411844FF8F512B55414C690160F47A504151FE28DC512B55414B9D341AF37A50413A9701D04E2B55416884EB61F17A504163145D1F4F2B5541C030B95EF17A504181571E25532B55411710FC65F27A5041856EBCB2522B5541F1F1ECD1F27A50419AD2D583522B5541B023C8FAF47A5041847E6882572B5541D7A3701DF57A5041295C8FD2572B554112243B17F57A50412E538BD4572B554141EFCDFEF27A504198A64480582B5541F6285C6FF37A50415C8FC2E5592B554179E0665CF57A5041B0FE58D35A2B55412E931DA5F57A5041BAA31EA55A2B5541F9198F12F77A5041596D3C3A5A2B5541601A0A77F87A50416DCF47C1592B5541FFA1B095F97A504100B6955F592B5541D91313DCF97A504175891312592B5541EBC6DC33FA7A5041E92B67B1582B55419A9999E9FB7A5041F6285CCF562B55410E00000034B9984C047B50415F6C2D58562B55410497C155037B5041335A3DBA562B554139ABEC01027B5041C6C1A340572B5541907C6F1D017B5041F23D869B572B5541FB023CEA007B5041B5E813AE572B55418A3B3DFAFF7A504126E6B8FE572B5541A28E966BFF7A5041F1E8102F582B55418F3C487DFF7A5041E42FCC5D572B5541B4C9C2C5FF7A5041FE041F45572B554168891DD5007B50419090F5E8562B5541F4B27BC4017B50418A2B3E8A562B5541F96A4711037B504185B46506562B554108B239EC037B5041CF1F87AF552B554134B9984C047B50415F6C2D58562B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>336930 - 233216
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -78 </desc>
+<a>
+0106000000010000000103000000030000003A000000000000707CB45041E17A141E7A305441CDCCCCFC7AB45041B81E853B7E30544148E17A247EB45041A4703D5A84305441E17A14EE7FB450411F85EBC183305441CDCCCCDC81B45041A4703DAA893054415C8FC2E580B45041F6285CDF8A305441713D0A5763B45041B81E850BA5305441D7A3702D5EB45041C3F5288C9E3054411F85EBF157B450417B14AEC79730544114AE474156B450410000000096305441713D0AA754B45041EC51B8EE94305441295C8FB251B45041AE47E15A93305441E17A144E50B450417B14AED792305441EC51B8FE4BB450417B14AEE79330544148E17AB44AB4504148E17AC494305441713D0A574BB45041B81E852B9830544152B81E254DB450415C8FC2E59A305441F6285C1F55B45041EC51B8AEA430544148E17AB45DB4504152B81EC5AE305441713D0AB760B450418FC2F588B2305441AE47E17A64B45041295C8F12B6305441B81E858B68B45041AE47E11AB8305441C3F528FC6CB45041295C8FC2B930544185EB51D86FB4504133333383BA3054410AD7A38071B45041F6285C5FB630544185EB51C887B4504148E17A64A03054415C8FC27588B450411F85EBC19D3054417B14AE578AB450419A9999599B30544148E17AF48DB450410AD7A3F0983054413D0AD78390B45041295C8FD29A3054418FC2F5D892B450410AD7A39098305441F6285C3F92B450410AD7A3A095305441C3F5283C8FB450418FC2F5A89030544185EB51C887B450410AD7A3A08E305441AE47E1CA83B450413D0AD7038B3054419A99999985B45041F6285CCF89305441E17A147E8AB4504114AE47B18B305441D7A3706D8DB450418FC2F5F885305441C3F528DC8EB450411F85EB7185305441EC51B88E8EB45041A4703D2A84305441AE47E10A91B45041B81E855B82305441E17A14CE94B4504185EB5198853054418FC2F52896B45041B81E854B85305441CDCCCCEC99B45041713D0AC787305441000000009AB4504185EB51E888305441E17A141E98B450415C8FC2E58C305441295C8F5299B45041AE47E13A8F305441295C8F5299B450417B14AE7792305441EC51B87E98B4504100000080943054417B14AE37A1B45041A4703D6A90305441AE47E12A9FB4504185EB51C88A305441EC51B86E9BB45041295C8F7281305441713D0A9797B4504100000060773054417B14AEA795B45041A4703D2A72305441333333138EB450418FC2F5387930544114AE476186B45041E17A145E783054410AD7A34084B450418FC2F54876305441000000707CB45041E17A141E7A305441060000005C8FC2E586B450413D0AD783793054419A9999A986B4504114AE47817A3054417B14AE5784B450411F85EBB17C305441A4703DBA82B450417B14AE377A30544152B81E1584B45041333333E3783054415C8FC2E586B450413D0AD78379305441080000000AD7A31086B450413D0AD7B37E305441295C8F6285B450411F85EBF17D305441E17A144E88B4504185EB51287B30544114AE47D189B450413D0AD7237A3054411F85EBC18AB45041EC51B83E7A305441AE47E15A8BB450417B14AED77A305441CDCCCC8C87B45041295C8FE27E3054410AD7A31086B450413D0AD7B37E305441
+</a>
+
+<b>
+01060000000100000001030000000100000021000000713D0A5763B45041B81E850BA5305441701FEFE173B45041B7E39D6596305441577BB7AD75B4504199F2A3F293305441D70CDD377FB45041F10F065C8C3054417C709D2880B4504189F8D7868B3054414E92EE7980B450419EDED63E8B3054413E292E7C80B45041AF32D93C8B3054417236328280B450415C8485378B3054412260B0DA80B45041A192F1C78A305441C0F2331F7FB450414EFDEC1D8730544161762B737EB45041B0E60EB2853054417B14AE777BB45041333333637F3054418A8CBA3C79B45041427B69257C3054411E8A71D473B45041BAEBDB2D80305441E17A14BE72B4504148E17A14813054415499B1AA72B4504116F9FF2381305441666666F670B4504114AE4781823054413D0AD7336EB450411F85EB31843054414D61E1426CB45041F86CA9108530544192A57F7D68B450417B2FBE6287305441E26DDBCF63B45041013B5A9089305441713D0A5763B45041E17A14CE893054411F85EB6161B450411F85EBB18A3054417B14AEC75FB450410AD7A3F08B305441336D21695EB4504181FC30B58C3054418BEAE1F859B450412659C1B68F30544148DBFAC452B450414844E533933054419C52C86952B45041DA11B1BC93305441713D0AA754B45041EC51B8EE9430544114AE474156B4504100000000963054411F85EBF157B450417B14AEC797305441D7A3702D5EB45041C3F5288C9E305441713D0A5763B45041B81E850BA5305441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>336930 - 358541
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -78 </desc>
+<a>
+0106000000010000000103000000030000003A000000000000707CB45041E17A141E7A305441CDCCCCFC7AB45041B81E853B7E30544148E17A247EB45041A4703D5A84305441E17A14EE7FB450411F85EBC183305441CDCCCCDC81B45041A4703DAA893054415C8FC2E580B45041F6285CDF8A305441713D0A5763B45041B81E850BA5305441D7A3702D5EB45041C3F5288C9E3054411F85EBF157B450417B14AEC79730544114AE474156B450410000000096305441713D0AA754B45041EC51B8EE94305441295C8FB251B45041AE47E15A93305441E17A144E50B450417B14AED792305441EC51B8FE4BB450417B14AEE79330544148E17AB44AB4504148E17AC494305441713D0A574BB45041B81E852B9830544152B81E254DB450415C8FC2E59A305441F6285C1F55B45041EC51B8AEA430544148E17AB45DB4504152B81EC5AE305441713D0AB760B450418FC2F588B2305441AE47E17A64B45041295C8F12B6305441B81E858B68B45041AE47E11AB8305441C3F528FC6CB45041295C8FC2B930544185EB51D86FB4504133333383BA3054410AD7A38071B45041F6285C5FB630544185EB51C887B4504148E17A64A03054415C8FC27588B450411F85EBC19D3054417B14AE578AB450419A9999599B30544148E17AF48DB450410AD7A3F0983054413D0AD78390B45041295C8FD29A3054418FC2F5D892B450410AD7A39098305441F6285C3F92B450410AD7A3A095305441C3F5283C8FB450418FC2F5A89030544185EB51C887B450410AD7A3A08E305441AE47E1CA83B450413D0AD7038B3054419A99999985B45041F6285CCF89305441E17A147E8AB4504114AE47B18B305441D7A3706D8DB450418FC2F5F885305441C3F528DC8EB450411F85EB7185305441EC51B88E8EB45041A4703D2A84305441AE47E10A91B45041B81E855B82305441E17A14CE94B4504185EB5198853054418FC2F52896B45041B81E854B85305441CDCCCCEC99B45041713D0AC787305441000000009AB4504185EB51E888305441E17A141E98B450415C8FC2E58C305441295C8F5299B45041AE47E13A8F305441295C8F5299B450417B14AE7792305441EC51B87E98B4504100000080943054417B14AE37A1B45041A4703D6A90305441AE47E12A9FB4504185EB51C88A305441EC51B86E9BB45041295C8F7281305441713D0A9797B4504100000060773054417B14AEA795B45041A4703D2A72305441333333138EB450418FC2F5387930544114AE476186B45041E17A145E783054410AD7A34084B450418FC2F54876305441000000707CB45041E17A141E7A305441060000005C8FC2E586B450413D0AD783793054419A9999A986B4504114AE47817A3054417B14AE5784B450411F85EBB17C305441A4703DBA82B450417B14AE377A30544152B81E1584B45041333333E3783054415C8FC2E586B450413D0AD78379305441080000000AD7A31086B450413D0AD7B37E305441295C8F6285B450411F85EBF17D305441E17A144E88B4504185EB51287B30544114AE47D189B450413D0AD7237A3054411F85EBC18AB45041EC51B83E7A305441AE47E15A8BB450417B14AED77A305441CDCCCC8C87B45041295C8FE27E3054410AD7A31086B450413D0AD7B37E305441
+</a>
+
+<b>
+01060000000100000001030000000100000021000000713D0A5763B45041B81E850BA5305441701FEFE173B45041B7E39D6596305441577BB7AD75B4504199F2A3F293305441D70CDD377FB45041F10F065C8C3054417C709D2880B4504189F8D7868B3054414E92EE7980B450419EDED63E8B3054413E292E7C80B45041AF32D93C8B3054417236328280B450415C8485378B3054412260B0DA80B45041A192F1C78A305441C0F2331F7FB450414EFDEC1D8730544161762B737EB45041B0E60EB2853054417B14AE777BB45041333333637F3054418A8CBA3C79B45041427B69257C3054411E8A71D473B45041BAEBDB2D80305441E17A14BE72B4504148E17A14813054415499B1AA72B4504116F9FF2381305441666666F670B4504114AE4781823054413D0AD7336EB450411F85EB31843054414D61E1426CB45041F86CA9108530544192A57F7D68B450417B2FBE6287305441E26DDBCF63B45041013B5A9089305441713D0A5763B45041E17A14CE893054411F85EB6161B450411F85EBB18A3054417B14AEC75FB450410AD7A3F08B305441336D21695EB4504181FC30B58C3054418BEAE1F859B450412659C1B68F30544148DBFAC452B450414844E533933054419C52C86952B45041DA11B1BC93305441713D0AA754B45041EC51B8EE9430544114AE474156B4504100000000963054411F85EBF157B450417B14AEC797305441D7A3702D5EB45041C3F5288C9E305441713D0A5763B45041B81E850BA5305441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>840163 - 3112698
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+0106000000010000000103000000010000002D000000FC13E8807F65514101E517133A705441B81E854B796551418FC2F5883E705441A4703DBA6665514185EB51284B705441C57F51BC63655141232D59274D705441AEFEFC9A62655141458CEEEA52705441F11896486365514145E9DA6B56705441FDF6D6EA67655141CB86717D5A705441AF2DB2886B6551417248702F5C70544199094AE86D6551415CC71B0E5B70544135CB489A6F655141C011959158705441D1176B606F655141245C0E1556705441406E5C196C6551415B0D430C54705441136CB3D669655141E1D810B152705441401170986865514192499B175070544140117098686551415B47F2D44D7054415692C4B96965514187E036614D705441AF2DB2886B6551410D1569BC4E7054411F4AF4786E6551414F2F026A4F70544109268CD8706551411821E1F14D705441A5DB125573655141A86D03B84D705441B050EF40756551411821E1F14D70544109ECDC0F776551419355134D4F705441C800F94F7F655141930FEC4E567054416F650B817D6551417DF7FBE35770544158E4B65F7C6551413B46C7EC5970544163F02E957B65514124225F4C5C705441908973217B6551415C3080C45D7054414263623E7B6551415D99E47A6070544115BEA57C7C6551411A73D39760705441D30C71857E6551417D54E8645B7054414E92172C8465514151BBA3D85B7054411F85EB5188655141B81E855B5E7054418FC2F5088A6551411F85EB915D705441F6285CCF96655141D7A3704D4F7054419A9999E99965514185EB51F84C705441AE47E15A9B6551413D0AD7E34B705441333333839D655141A4703DAA4970544114AE4701A065514114AE477147705441CDCCCCEC96655141C3F5287C3C7054419A99999995655141D7A370BD3B705441713D0AC7896551418FC2F5A83070544185EB513889655141CDCCCC2C31705441C3F5286C84655141D7A3709D35705441CDCCCC1C826551413D0AD7C337705441FC13E8807F65514101E517133A705441
+</a>
+
+<b>
+01060000000100000001030000000100000022000000CF6CD35690655141E7CB6F4846705441B5E24870906551415106BD6546705441673AD23792655141FB2006B448705441615399C992655141B248587249705441AAB681B19365514135031DA14A705441DEF2BB1C956551415AB5537B4C705441097F30629665514103173A244E705441A7752AD096655141A35DC7A54E70544147E4F579996551415477A3A34C70544123AFD95E9F655141356A1C9347705441328DD6D69F65514158EF0F3E4770544123640B619D65514191540B46447054413E8B7ACE99655141D6ED5EF63F7054411E88B31D97655141A13A2CB73C7054412595AE01966551419528F6F73B705441F7B1F5679565514194D7EA8E3B705441F378CDB491655141C3D63E17387054416EDF6BA68C655141A510285A33705441756152568B65514119522A1F3270544185EB513889655141CDCCCC2C317054416AD28A6787655141A784F1DA32705441CA72626A856551417EE428B2347054414AB24CFD83655141C82B9F04367054411185351C83655141C9211FD636705441A52784F285655141078A17513A705441AC4F746986655141124076DB3A7054414962903B89655141F1BA911A3E705441CA6747BD89655141E221DDAF3E7054411E9DC14E8B6551415108F17D40705441355FE89C8D655141AC212C2543705441BCBA14A88E655141B277AC5844705441A2C63F558F65514126FEFA1F457054418AF0B09E8F6551416611827445705441CF6CD35690655141E7CB6F4846705441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>840163 - 3487846
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+0106000000010000000103000000010000002D000000FC13E8807F65514101E517133A705441B81E854B796551418FC2F5883E705441A4703DBA6665514185EB51284B705441C57F51BC63655141232D59274D705441AEFEFC9A62655141458CEEEA52705441F11896486365514145E9DA6B56705441FDF6D6EA67655141CB86717D5A705441AF2DB2886B6551417248702F5C70544199094AE86D6551415CC71B0E5B70544135CB489A6F655141C011959158705441D1176B606F655141245C0E1556705441406E5C196C6551415B0D430C54705441136CB3D669655141E1D810B152705441401170986865514192499B175070544140117098686551415B47F2D44D7054415692C4B96965514187E036614D705441AF2DB2886B6551410D1569BC4E7054411F4AF4786E6551414F2F026A4F70544109268CD8706551411821E1F14D705441A5DB125573655141A86D03B84D705441B050EF40756551411821E1F14D70544109ECDC0F776551419355134D4F705441C800F94F7F655141930FEC4E567054416F650B817D6551417DF7FBE35770544158E4B65F7C6551413B46C7EC5970544163F02E957B65514124225F4C5C705441908973217B6551415C3080C45D7054414263623E7B6551415D99E47A6070544115BEA57C7C6551411A73D39760705441D30C71857E6551417D54E8645B7054414E92172C8465514151BBA3D85B7054411F85EB5188655141B81E855B5E7054418FC2F5088A6551411F85EB915D705441F6285CCF96655141D7A3704D4F7054419A9999E99965514185EB51F84C705441AE47E15A9B6551413D0AD7E34B705441333333839D655141A4703DAA4970544114AE4701A065514114AE477147705441CDCCCCEC96655141C3F5287C3C7054419A99999995655141D7A370BD3B705441713D0AC7896551418FC2F5A83070544185EB513889655141CDCCCC2C31705441C3F5286C84655141D7A3709D35705441CDCCCC1C826551413D0AD7C337705441FC13E8807F65514101E517133A705441
+</a>
+
+<b>
+01060000000100000001030000000100000022000000CF6CD35690655141E7CB6F4846705441B5E24870906551415106BD6546705441673AD23792655141FB2006B448705441615399C992655141B248587249705441AAB681B19365514135031DA14A705441DEF2BB1C956551415AB5537B4C705441097F30629665514103173A244E705441A7752AD096655141A35DC7A54E70544147E4F579996551415477A3A34C70544123AFD95E9F655141356A1C9347705441328DD6D69F65514158EF0F3E4770544123640B619D65514191540B46447054413E8B7ACE99655141D6ED5EF63F7054411E88B31D97655141A13A2CB73C7054412595AE01966551419528F6F73B705441F7B1F5679565514194D7EA8E3B705441F378CDB491655141C3D63E17387054416EDF6BA68C655141A510285A33705441756152568B65514119522A1F3270544185EB513889655141CDCCCC2C317054416AD28A6787655141A784F1DA32705441CA72626A856551417EE428B2347054414AB24CFD83655141C82B9F04367054411185351C83655141C9211FD636705441A52784F285655141078A17513A705441AC4F746986655141124076DB3A7054414962903B89655141F1BA911A3E705441CA6747BD89655141E221DDAF3E7054411E9DC14E8B6551415108F17D40705441355FE89C8D655141AC212C2543705441BCBA14A88E655141B277AC5844705441A2C63F558F65514126FEFA1F457054418AF0B09E8F6551416611827445705441CF6CD35690655141E7CB6F4846705441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>341646 - 1223605
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -104 </desc>
+<a>
+01060000000100000001030000000100000023000000295C8F32CD8E5141713D0AF7489A54411F85EB51D48E51419A999929439A54417B14AE47E08E5141AE47E16A399A5441CDCCCCBCE68E51411F85EB91329A5441AE47E14AE08E5141CDCCCCCC2F9A5441AE47E10ADD8E5141D7A3702D2C9A5441EC51B86EDA8E51417B14AEE7269A54411F85EB01DA8E51418FC2F558249A5441A4703D8ADA8E514114AE4701229A5441E17A140EDE8E5141295C8F321C9A5441A4703DBAE08E514148E17AA4169A54419A9999B9E18E5141295C8F020F9A5441C3F5286CE18E5141000000F0099A54418FC2F538DB8E5141295C8FA2099A544100000080D58E51418FC2F5480A9A544166666626D38E514148E17A540B9A54417B14AE37D38E5141713D0A370C9A54417B14AE57D38E51413D0AD7E30E9A5441C3F5286CD38E5141B81E857B119A5441A4703D2AD38E514114AE4761139A5441E17A14AED28E51419A999939159A54419A999999D18E5141F6285CBF179A5441713D0AD7CD8E51419A9999191E9A544114AE47E1C78E5141AE47E13A289A5441F6285CBFC38E5141B81E858B2F9A5441EC51B8BEC18E5141B81E853B339A54419A9999A9BE8E51413D0AD783389A54418FC2F588BC8E5141E17A140E3D9A5441A4703D9AC08E5141CDCCCC0C3E9A5441295C8FA2C48E5141295C8FD2419A5441E17A14AEC58E5141713D0A77459A54417B14AE67C88E514133333373489A544148E17AF4C98E51419A999939499A5441AE47E16ACB8E51413D0AD773499A5441295C8F32CD8E5141713D0AF7489A5441
+</a>
+
+<b>
+0106000000010000000103000000010000002C000000BAE959F4E08E514143B53348099A544152B901F1DA8E5141915E1C40099A5441BBC3BB4CD58E514190DEEF3A0A9A544148A86C06D48E51413DCDA0B60A9A5441705F901CD38E5141E1DBE3100B9A54417B14AE37D38E5141713D0A370C9A54417B14AE57D38E51413D0AD7E30E9A5441C3F5286CD38E5141B81E857B119A5441A4703D2AD38E514114AE4761139A5441E17A14AED28E51419A999939159A54419A999999D18E5141F6285CBF179A5441713D0AD7CD8E51419A9999191E9A544114AE47E1C78E5141AE47E13A289A5441F6285CBFC38E5141B81E858B2F9A5441EC51B8BEC18E5141B81E853B339A54419A9999A9BE8E51413D0AD783389A54418FC2F588BC8E5141E17A140E3D9A5441A147EAF3BC8E51415439128F3E9A5441CEC56318C38E5141CFDCB5A0429A5441E17A14AEC58E5141713D0A77459A54417B14AE67C88E514133333373489A544148E17AF4C98E51419A999939499A54416E54CB8BCB8E51415BAFC8414A9A54414D0B9176CD8E514193B45729499A5441854E6377D48E5141BFBC1A9B439A54417B14AE47E08E5141AE47E16A399A54416D6D48B0E88E5141F62B8077329A54411950E5A7DF8E514163E62A6C2D9A5441FFC533EFDD8E5141E0B5A1172C9A54415B46E0D3DD8E5141E81860E12B9A544145901BB3DD8E5141356E81C72B9A54412BEE8911DC8E51419B393A63289A5441FB5B1D3CDB8E5141D5EA78BB269A544157979323DB8E5141828C7EC5249A544171B6FE86DB8E5141AD1CAFF9229A544179C74DB4DB8E5141F2C99C1D229A5441BD93D15BDC8E51412082EFBA209A544163D9F3A7DC8E5141E495FA15209A5441737C1A71DE8E5141CBF0094B1C9A5441374BDD9FDF8E514135706BEF189A544154E82952E08E5141AE89FEA6169A54415FAD822EE18E5141A0221C7E0F9A54416AA47E24E18E5141C139B3790E9A5441BAE959F4E08E514143B53348099A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>341646 - 3312397
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -104 </desc>
+<a>
+01060000000100000001030000000100000023000000295C8F32CD8E5141713D0AF7489A54411F85EB51D48E51419A999929439A54417B14AE47E08E5141AE47E16A399A5441CDCCCCBCE68E51411F85EB91329A5441AE47E14AE08E5141CDCCCCCC2F9A5441AE47E10ADD8E5141D7A3702D2C9A5441EC51B86EDA8E51417B14AEE7269A54411F85EB01DA8E51418FC2F558249A5441A4703D8ADA8E514114AE4701229A5441E17A140EDE8E5141295C8F321C9A5441A4703DBAE08E514148E17AA4169A54419A9999B9E18E5141295C8F020F9A5441C3F5286CE18E5141000000F0099A54418FC2F538DB8E5141295C8FA2099A544100000080D58E51418FC2F5480A9A544166666626D38E514148E17A540B9A54417B14AE37D38E5141713D0A370C9A54417B14AE57D38E51413D0AD7E30E9A5441C3F5286CD38E5141B81E857B119A5441A4703D2AD38E514114AE4761139A5441E17A14AED28E51419A999939159A54419A999999D18E5141F6285CBF179A5441713D0AD7CD8E51419A9999191E9A544114AE47E1C78E5141AE47E13A289A5441F6285CBFC38E5141B81E858B2F9A5441EC51B8BEC18E5141B81E853B339A54419A9999A9BE8E51413D0AD783389A54418FC2F588BC8E5141E17A140E3D9A5441A4703D9AC08E5141CDCCCC0C3E9A5441295C8FA2C48E5141295C8FD2419A5441E17A14AEC58E5141713D0A77459A54417B14AE67C88E514133333373489A544148E17AF4C98E51419A999939499A5441AE47E16ACB8E51413D0AD773499A5441295C8F32CD8E5141713D0AF7489A5441
+</a>
+
+<b>
+0106000000010000000103000000010000002C000000BAE959F4E08E514143B53348099A544152B901F1DA8E5141915E1C40099A5441BBC3BB4CD58E514190DEEF3A0A9A544148A86C06D48E51413DCDA0B60A9A5441705F901CD38E5141E1DBE3100B9A54417B14AE37D38E5141713D0A370C9A54417B14AE57D38E51413D0AD7E30E9A5441C3F5286CD38E5141B81E857B119A5441A4703D2AD38E514114AE4761139A5441E17A14AED28E51419A999939159A54419A999999D18E5141F6285CBF179A5441713D0AD7CD8E51419A9999191E9A544114AE47E1C78E5141AE47E13A289A5441F6285CBFC38E5141B81E858B2F9A5441EC51B8BEC18E5141B81E853B339A54419A9999A9BE8E51413D0AD783389A54418FC2F588BC8E5141E17A140E3D9A5441A147EAF3BC8E51415439128F3E9A5441CEC56318C38E5141CFDCB5A0429A5441E17A14AEC58E5141713D0A77459A54417B14AE67C88E514133333373489A544148E17AF4C98E51419A999939499A54416E54CB8BCB8E51415BAFC8414A9A54414D0B9176CD8E514193B45729499A5441854E6377D48E5141BFBC1A9B439A54417B14AE47E08E5141AE47E16A399A54416D6D48B0E88E5141F62B8077329A54411950E5A7DF8E514163E62A6C2D9A5441FFC533EFDD8E5141E0B5A1172C9A54415B46E0D3DD8E5141E81860E12B9A544145901BB3DD8E5141356E81C72B9A54412BEE8911DC8E51419B393A63289A5441FB5B1D3CDB8E5141D5EA78BB269A544157979323DB8E5141828C7EC5249A544171B6FE86DB8E5141AD1CAFF9229A544179C74DB4DB8E5141F2C99C1D229A5441BD93D15BDC8E51412082EFBA209A544163D9F3A7DC8E5141E495FA15209A5441737C1A71DE8E5141CBF0094B1C9A5441374BDD9FDF8E514135706BEF189A544154E82952E08E5141AE89FEA6169A54415FAD822EE18E5141A0221C7E0F9A54416AA47E24E18E5141C139B3790E9A5441BAE959F4E08E514143B53348099A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>342860 - 407637
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+010600000005000000010300000003000000BE000000AE47E1FA18E950417B14AE975FA65441AE47E13A18E95041B81E85CB5EA65441EC51B80E17E95041B81E859B5EA65441EC51B8EE15E95041F6285C4F5CA65441295C8F5215E950417B14AE075CA65441EC51B8CE14E950417B14AE175BA65441295C8FA213E95041B81E852B5CA65441295C8FE212E95041333333135CA65441295C8FF211E95041333333F35AA65441713D0AC710E95041B81E85AB5AA65441713D0AA70FE950417B14AE9759A65441AE47E1FA0FE95041F6285CEF58A65441AE47E1FA0FE950417B14AEF756A65441EC51B89E0EE95041333333B355A65441AE47E1EA0DE95041333333E355A65441295C8FB20CE950417B14AE7755A65441EC51B88E0CE95041333333C354A65441713D0A870BE950413333339354A65441EC51B87E0AE95041333333F354A65441EC51B8DE0AE950417B14AE5754A65441EC51B87E0AE95041B81E85FB52A65441AE47E15A0AE95041B81E851B51A65441713D0A570BE95041B81E85EB50A65441AE47E13A0CE950413333331350A65441AE47E1BA0DE950417B14AED74FA65441AE47E11A0EE95041333333834FA65441EC51B8DE0DE95041333333F34EA65441295C8FF20BE95041B81E852B4DA65441AE47E14A0BE95041B81E859B4CA65441EC51B8AE0AE95041333333934BA65441EC51B8AE0AE95041F6285C4F4AA65441295C8F020BE950417B14AE074AA65441AE47E1AA0BE95041F6285C1F4AA65441AE47E1AA0BE950417B14AE2748A65441EC51B80E0BE95041F6285C1F47A65441295C8F020BE950413333332346A65441713D0A670AE950417B14AE8745A65441AE47E1CA09E95041B81E85AB45A65441EC51B8FE08E950413333330345A65441EC51B8CE08E95041B81E858B44A65441713D0AB708E950413333338343A65441295C8FB209E950417B14AE1743A65441AE47E1CA09E950417B14AE2742A65441AE47E1AA08E95041F6285CEF40A65441713D0AE708E950417B14AEA740A65441713D0AE708E950417B14AE573FA65441713D0AF707E95041F6285C3F3FA65441295C8F4207E95041F6285CDF3EA65441295C8F4207E95041B81E85FB3DA65441713D0A9707E95041B81E853B3DA65441AE47E14A08E95041333333533DA65441295C8F8209E950417B14AEB73CA65441AE47E16A09E950417B14AE073BA65441EC51B8FE08E95041B81E85DB39A65441AE47E11A0BE95041F6285C1F38A65441EC51B83E0BE950413D0AD78334A65441295C8FF20BE95041B81E85DB33A65441EC51B8BE0CE950413D0AD79333A65441AE47E12A0DE950417B14AEE733A65441295C8F620EE950413D0AD70333A65441EC51B81E0DE95041F6285C1F32A65441AE47E12A0DE95041333333F330A65441713D0A970DE95041F6285CAF2FA65441EC51B81E10E95041F6285CAF2CA65441713D0AD70FE950417B14AE472BA65441713D0A2711E950417B14AEC729A654413333335312E950417B14AE6729A654413333338312E95041333333E328A65441EC51B84E16E95041F6285C1F26A654413333330317E95041F6285C7F26A65441AE47E1DA17E950417B14AE0726A65441EC51B8EE18E95041B81E85FB25A65441713D0A6719E95041B81E855B26A65441AE47E1AA1AE95041F6285C1F26A65441EC51B81E1CE95041F6285C4F26A65441333333431CE950413333330327A65441EC51B8AE1CE950413333339327A65441AE47E1BA1CE950417B14AE1728A65441713D0A371CE95041B81E859B28A65441713D0AF71CE950417B14AE6729A65441713D0A871DE950417B14AE6729A65441EC51B82E1EE95041B81E85DB27A65441AE47E16A1EE95041B81E856B25A65441AE47E1DA1DE95041F6285C8F25A65441EC51B8DE1CE950417B14AE1725A65441713D0A371CE95041B81E85EB23A65441713D0AA71BE950417B14AE6723A65441333333B31BE95041333333F321A65441EC51B85E1BE950417B14AE5721A65441713D0A771EE95041333333B31FA65441713D0A071FE95041B81E851B21A65441333333B31EE95041B81E85DB21A65441EC51B8EE1EE95041F6285C5F22A65441333333E31EE950417B14AE3723A65441AE47E1FA1EE95041B81E851B24A65441AE47E19A1EE95041333333F324A65441AE47E14A20E950413333338325A65441AE47E1DA20E95041333333F324A65441AE47E1CA21E950417B14AE0723A65441EC51B8BE21E95041B81E850B22A65441713D0A7721E95041B81E85AB21A65441333333F320E950417B14AE1722A65441EC51B83E20E950417B14AEE721A65441713D0AC71FE950417B14AE3720A654413333339320E950417B14AE3720A654413333331322E95041333333F31EA65441333333D322E95041F6285C2F1FA65441333333C323E950417B14AE171FA65441EC51B87E25E95041B81E85FB1CA654413333330326E95041333333C31BA65441713D0AF725E95041F6285C0F1BA65441713D0A7727E95041B81E858B1AA65441AE47E1BA28E95041333333C318A65441AE47E1FA27E950417B14AE8718A65441AE47E19A27E950417B14AE2718A65441AE47E10A27E95041F6285C3F18A65441713D0A8726E95041F6285C0F18A65441EC51B8AE25E950417B14AE2718A65441AE47E12A25E95041F6285CDF17A654413333331325E95041F6285C7F17A654413333335324E95041B81E85FB16A65441713D0AE723E950413333332316A65441AE47E14A23E950413333339315A65441713D0A1721E95041B81E85DB15A65441333333A31FE950417B14AE6717A65441EC51B82E1EE95041F6285CDF17A65441713D0AC71CE95041B81E853B19A65441333333C31AE950417B14AE371AA65441EC51B81E19E95041F6285CCF1BA65441EC51B86E17E950417B14AE771CA65441AE47E12A16E95041F6285C7F1DA65441EC51B86E14E95041F6285C3F1EA65441333333D313E95041B81E853B1FA65441AE47E1DA11E95041F6285C1F20A65441EC51B84E10E95041B81E85DB21A65441EC51B82E0FE95041B81E853B22A65441333333630EE950417B14AE0723A65441333333D30DE95041B81E851B24A65441EC51B8BE0CE95041F6285C9F24A65441AE47E13A0CE95041F6285C9F24A65441713D0A170CE95041B81E858B26A65441EC51B86E0BE950417B14AE5727A65441713D0A970AE950417B14AE5727A65441713D0A4709E95041B81E859B28A65441713D0AB708E950417B14AEA728A654413333336308E950417B14AEE727A65441AE47E13A09E950417B14AE9726A65441713D0AE708E95041B81E853B25A65441713D0AF707E950417B14AE1725A654413333335306E950413333337326A65441AE47E17A05E950417B14AEC726A65441713D0A0704E950417B14AE1728A65441EC51B8CE02E950417B14AE7728A65441713D0AD700E950417B14AEC729A65441AE47E11A00E95041E17A141E2BA65441D7A3701DFDE850417B14AE8732A65441F6285C7FFCE850411F85EB5138A65441713D0A87FCE850413D0AD73339A65441EC51B82EFDE850413D0AD73339A65441EC51B85EFDE85041F6285C9F39A6544133333323FDE850413D0AD7533AA6544133333393FCE850413D0AD7533AA6544185EB51F8FDE85041AE47E1DA44A65441EC51B80EFFE850413D0AD7C348A65441713D0A87FFE85041B81E851B48A65441EC51B85E00E950413D0AD73348A65441EC51B81E01E950417B14AEB748A65441EC51B80E02E950413D0AD7C34BA65441333333D301E950417B14AE174CA65441AE47E12A01E95041F6285C2F4CA654413333332300E95041B81E85FB4CA65441713D0AA700E950413D0AD7D34DA65441AE47E1CA03E95041B81E858B50A65441EC51B85E06E950413D0AD72352A65441EC51B83E08E950417B14AE2754A65441EC51B8FE08E95041B81E850B55A65441333333B309E950417B14AE7755A65441333333E309E95041F6285C1F56A65441333333C30BE950413D0AD73357A65441EC51B88E0CE950413D0AD78358A65441333333030EE950413D0AD7635AA65441713D0A170FE95041F6285C9F5AA65441AE47E19A0FE95041F6285C8F5BA65441333333A310E950417B14AE075CA65441713D0A9710E95041B81E85EB5CA65441713D0A2714E95041F6285CDF5FA65441AE47E15A19E950417B14AE1764A65441AE47E13A1BE950417B14AE7761A65441713D0A9719E95041333333A35FA65441AE47E1FA18E950417B14AE975FA6544109000000295C8FA204E950417B14AEC74AA65441AE47E11A05E95041333333E349A65441AE47E17A05E95041B81E85AB48A65441295C8FC205E950413333339348A65441713D0A3707E95041F6285C4F4AA65441295C8FB206E950417B14AE274BA65441EC51B8FE05E950417B14AE274BA65441713D0AB705E950417B14AEC74AA65441295C8FA204E950417B14AEC74AA6544110000000AE47E1BA01E950413333332346A65441295C8FB200E950413333335346A65441295C8FC2FFE850413333338343A65441295C8F32FFE850413333339342A65441AE47E10A00E950417B14AE3741A65441295C8F1201E95041F6285CEF40A65441295C8F7201E95041B81E852B41A65441713D0A5702E950413333334341A65441EC51B8FE02E95041F6285CEF40A65441713D0A0704E95041B81E854B42A65441713D0AD703E95041F6285CCF42A65441295C8F4204E95041F6285C7F44A65441713D0AA703E950413333336345A65441AE47E10A03E95041F6285CFF45A65441295C8FC202E95041B81E856B46A65441AE47E1BA01E950413333332346A654410103000000010000000F0000007B14AE770FE95041E17A14EED5A65441295C8FD210E9504152B81E65D6A65441EC51B83E11E9504100000070D6A65441295C8FD210E95041333333E3D5A654418FC2F52811E9504148E17AD4D4A65441E17A146E12E95041C3F5281CD4A65441295C8F4212E95041F6285CAFD3A65441B81E857B10E9504133333343D3A654410000003010E95041713D0AF7D2A654418FC2F5D80FE95041D7A3702DD3A65441AE47E1EA0EE95041666666B6D2A65441EC51B89E0EE95041E17A144ED3A6544148E17AB40EE95041713D0A47D4A6544185EB51680EE9504148E17A24D6A654417B14AE770FE95041E17A14EED5A6544101030000000100000022000000295C8F3216E95041F6285C3FDAA65441EC51B87E16E95041295C8FB2D9A65441EC51B87E16E95041A4703DFAD8A654411F85EB6117E9504185EB5178D8A654417B14AE5717E9504166666646D9A654411F85EB4117E95041D7A370BDD9A654411F85EB6117E950413D0AD7F3D9A654413D0AD7C317E950411F85EB91D9A65441333333F318E950418FC2F5E8D9A6544185EB51E818E9504166666646D9A65441F6285CFF1BE9504152B81EB5D7A654415C8FC2351CE9504133333333D7A65441333333E31CE950411F85EBF1D6A65441AE47E17A1DE95041EC51B87ED7A65441C3F528DC1DE950411F85EBA1D5A65441295C8FC21CE95041B81E859BD6A65441666666561CE950411F85EBD1D6A65441EC51B8BE1BE95041EC51B80ED6A65441A4703DBA1AE95041EC51B82ED6A654413D0AD7631AE950411F85EBF1D6A6544152B81E7519E950415C8FC285D6A654410AD7A35018E95041AE47E17AD6A654417B14AE5717E950411F85EBF1D6A654416666661617E9504148E17A94D7A65441295C8F3216E950419A999989D7A65441EC51B82E15E95041CDCCCC4CD8A654416666662613E95041C3F5280CD8A65441B81E851B13E95041EC51B8AED8A65441D7A3709D13E9504114AE4771D9A65441A4703D2A14E95041B81E853BD9A6544152B81E1514E950413D0AD7F3D9A65441295C8FC214E95041295C8FB2D9A65441C3F528DC15E95041295C8FB2D9A65441295C8F3216E95041F6285C3FDAA6544101030000000A00000003020000295C8F024AE95041F6285C7FB3A65441AE47E12A49E95041F6285C4FB3A65441295C8FA249E95041B81E857BB1A65441295C8FB24BE9504133333323B2A65441AE47E1FA4EE95041B81E85FBAFA65441EC51B8AE4FE950417B14AE67ADA65441295C8FD24FE95041B81E855BAAA65441713D0A5750E950417B14AE37AAA65441295C8FC250E95041F6285C3FA8A65441AE47E17A50E950417B14AE37A7A65441295C8FD24FE95041B81E852BA7A65441AE47E1FA4EE95041F6285C0FA8A65441295C8F624DE95041F6285C3FA8A65441EC51B86E4DE95041F6285C4FA7A65441EC51B8FE4DE95041B81E85CBA6A65441295C8FC24DE95041B81E853BA6A65441EC51B84E4CE95041F6285CFFA5A65441713D0A474BE950417B14AEC7A4A65441AE47E10A4BE9504133333313A4A65441EC51B83E4AE95041B81E858BA4A65441AE47E18A49E95041F6285CAFA4A65441713D0AA748E950417B14AE07A4A65441295C8FF247E95041F6285CFFA2A65441713D0AD748E95041B81E85DBA2A65441295C8FE248E95041B81E85FBA0A65441AE47E10A48E950417B14AEB79FA65441713D0AE747E95041333333439EA65441EC51B8AE46E950417B14AE779DA65441295C8FA246E95041F6285C9F9CA65441713D0A3746E95041F6285CDF9BA65441713D0A3746E95041B81E856B9AA65441295C8FB245E95041B81E859B9AA65441EC51B80E44E950413333336399A65441295C8F9244E95041F6285CDF98A65441AE47E11A44E95041B81E855B98A65441EC51B8DE43E950417B14AEA797A65441295C8FB242E95041F6285C8F97A65441AE47E12A43E950417B14AEE796A65441713D0AE741E950413333339396A65441AE47E1EA40E95041B81E85FB94A65441295C8F7240E95041333333B394A65441EC51B81E40E95041B81E853B94A65441713D0A7742E95041F6285C1F92A65441AE47E16A42E950413333335391A65441EC51B82E45E95041F6285C6F90A65441EC51B85E45E95041B81E85BB8FA65441713D0A2747E95041F6285C1F8FA65441AE47E10A48E95041333333A38FA65441EC51B85E48E950417B14AE5790A65441295C8F1249E95041B81E857B90A65441295C8F024AE950413333330390A65441AE47E1CA48E95041B81E853B8EA65441713D0AD748E95041F6285C3F8DA65441EC51B8FE47E950417B14AEC78CA65441EC51B86E47E95041F6285CEF8BA65441713D0A2747E95041F6285C6F8AA65441295C8FA246E950417B14AE278AA65441EC51B87E46E950417B14AEC789A65441EC51B88E45E95041333333A389A65441295C8F2245E95041F6285C0F8AA65441AE47E17A44E95041B81E856B8BA65441AE47E1BA43E95041B81E859B8BA65441295C8F9241E95041F6285CDF8CA65441AE47E12A40E95041F6285CAF8CA65441AE47E1CA3FE95041B81E852B8CA65441AE47E1EA3DE95041F6285C7F8CA65441295C8F223CE95041333333438CA65441295C8FC23BE950417B14AEB78AA65441AE47E1EA3AE950417B14AE9789A65441713D0AF73AE95041B81E850B88A65441EC51B8AE3AE950417B14AE8787A65441EC51B8EE39E950413333333387A65441295C8FE239E95041F6285CAF86A65441EC51B88E39E95041B81E858B86A65441713D0A4739E95041B81E853B85A65441295C8F8239E95041B81E85DB84A65441EC51B8FE38E95041B81E854B84A65441713D0AB738E950417B14AE3783A65441295C8FA237E950413333330381A65441EC51B87E37E950417B14AEA77FA65441AE47E15A37E95041333333337EA65441295C8FB236E95041333333837CA65441713D0AF737E950417B14AE977AA65441295C8F6238E950417B14AE1779A65441AE47E19A39E950417B14AE5778A65441713D0A673AE950417B14AE5778A65441713D0AC73AE95041F6285C0F78A65441295C8FA23AE95041B81E855B77A65441295C8FD23AE95041F6285C2F76A65441AE47E1DA3BE950417B14AEB775A65441713D0AA73CE950417B14AE1773A65441713D0A973DE950417B14AEC771A65441713D0AE73EE950417B14AE6771A65441EC51B88E3FE95041F6285CAF71A65441AE47E16A3FE95041B81E85CB70A65441EC51B8AE3DE950417B14AED770A65441295C8F123DE95041F6285C5F70A65441EC51B85E3CE95041F6285C8F70A65441EC51B86E3BE950413333335370A65441295C8F423AE95041F6285C8F70A65441EC51B85E39E950413333335370A65441AE47E17A38E95041F6285C5F70A65441EC51B84E37E95041333333F36FA65441AE47E1EA34E95041333333F36FA65441EC51B86E35E95041333333536DA65441295C8FD234E95041333333536DA65441EC51B87E34E95041333333C36CA65441AE47E1FA33E95041333333236DA65441713D0A3734E95041F6285CBF6DA65441713D0AE732E950417B14AE676EA65441AE47E18A31E95041333333836DA65441295C8FE230E950417B14AEA76DA65441295C8F2230E95041F6285CFF6CA65441AE47E15A31E95041F6285C3F6CA65441713D0A6731E950417B14AE076BA65441713D0A1730E95041F6285C8F6AA65441EC51B8AE2EE95041333333E36AA65441295C8FE22DE95041F6285CAF6BA65441295C8F622CE950417B14AE376BA65441295C8F022CE950413333336369A65441713D0AB729E95041F6285C7F68A65441AE47E1BA28E95041333333A368A65441AE47E18A25E950417B14AEB766A65441AE47E18A25E95041B81E85BB65A65441713D0A7724E95041B81E853B64A65441713D0A8723E950417B14AEB763A65441295C8FA222E95041B81E855B65A65441713D0A1721E95041F6285C1F65A65441EC51B84E1FE95041B81E85AB63A65441EC51B8EE1EE95041333333C363A65441713D0AA71EE950413333335364A65441AE47E12A1FE95041B81E85FB64A65441713D0A671FE95041F6285C0F66A65441AE47E10A1EE950417B14AE8766A65441AE47E16A1EE95041F6285C5F67A65441713D0A671FE95041B81E855B68A65441AE47E12A22E950413333333369A65441EC51B85E24E95041333333B36AA65441EC51B8AE25E95041333333A36BA65441AE47E1AA26E95041B81E85EB6BA65441295C8F5227E95041F6285C4F6BA65441EC51B84E28E95041333333736BA65441295C8F9229E950417B14AE176DA65441AE47E16A2AE95041B81E859B6DA65441713D0A872FE950413333332370A65441295C8F1231E95041333333A371A65441713D0A9731E950417B14AEB772A65441AE47E13A33E95041F6285C1F74A65441713D0AF731E95041B81E85DB78A65441EC51B87E31E950417B14AE177CA65441AE47E12A31E950417B14AEA77CA65441EC51B84E31E950417B14AEF77DA65441EC51B85E30E95041333333037EA65441295C8FC22FE95041333333937EA65441EC51B87E2EE950417B14AE0780A65441713D0A572FE95041B81E85BB80A65441713D0A872FE95041B81E852B80A65441EC51B8EE30E95041333333237FA65441713D0A6731E95041333333937EA65441295C8F0232E950417B14AE777FA65441713D0AE732E95041333333E37FA65441295C8F8233E95041F6285C4F80A65441EC51B83E32E95041B81E85DB81A65441AE47E14A32E95041333333B382A65441AE47E11A32E95041F6285C4F83A65441295C8F9232E95041333333F384A65441713D0A7733E95041333333C384A65441EC51B8EE33E95041F6285C5F85A65441295C8F8233E95041333333E385A65441AE47E1CA33E95041F6285CAF86A65441AE47E1CA33E950413333339387A65441713D0A6734E950417B14AE1788A65441EC51B89E35E95041B81E85FB88A65441EC51B8EE36E95041B81E85FB88A65441713D0A7736E95041333333638AA65441AE47E1BA34E95041F6285CEF8BA65441AE47E1FA33E95041F6285CFF8DA65441713D0AE735E95041333333B391A65441295C8F8236E95041333333B391A65441EC51B8EE36E95041B81E85AB93A65441EC51B83E38E950417B14AE1794A65441AE47E11A3BE950417B14AEC798A65441EC51B80E3BE950417B14AE479AA65441713D0A673AE95041333333139BA65441AE47E1EA3AE950417B14AE679BA65441295C8F923BE95041F6285CCF9CA65441EC51B8FE3BE950417B14AEE79CA65441EC51B8EE3CE95041333333B39DA65441713D0A073DE950417B14AE379EA65441AE47E16A3CE950417B14AE579FA65441AE47E13A3CE950417B14AEF7A1A65441713D0AA73CE95041B81E854BA2A65441EC51B8EE3CE950417B14AE17A3A65441713D0A673DE950417B14AE77A3A65441EC51B87E3DE950417B14AE07A4A65441295C8F623EE95041B81E85EBA4A65441AE47E16A3FE95041F6285CDFA4A65441295C8F823FE95041F6285C6FA5A65441AE47E18A40E95041F6285C6FA5A65441EC51B89E41E950417B14AE47A6A65441EC51B82E42E9504133333353A6A65441EC51B8BE42E950417B14AE07A7A65441EC51B8BE42E95041F6285CCFA8A65441AE47E15A43E9504133333343AAA65441AE47E12A43E95041333333D3AAA65441295C8F4243E95041F6285C2FACA65441AE47E10A42E9504133333303AEA65441295C8F6241E950417B14AE27AEA65441AE47E14A41E95041F6285CDFADA65441295C8F823FE95041B81E85FBACA65441EC51B85E3FE95041B81E856BACA65441AE47E1DA3EE9504133333363ABA65441EC51B84E3DE95041333333B3ACA65441EC51B8BE3CE950417B14AE97ADA65441713D0AB73BE950417B14AEE7ABA65441EC51B82E39E950417B14AEB7ABA65441EC51B8FE38E95041F6285C6FABA65441295C8FD237E95041F6285CCFABA65441295C8FA237E95041B81E85BBAAA65441295C8FB236E950417B14AE37AAA65441713D0A7736E95041333333B3A9A65441AE47E17A35E950417B14AE37AAA65441295C8F0235E95041F6285CEFA9A65441713D0AC734E9504133333343AAA65441EC51B8AE34E9504133333333ABA65441713D0AD733E95041B81E854BABA65441713D0A4733E950417B14AEF7AAA65441713D0A5732E95041F6285C9FABA65441713D0A8732E950417B14AED7ACA65441EC51B82E33E95041F6285CAFADA65441713D0A1733E95041B81E850BAFA65441295C8F5233E9504133333313B0A65441AE47E17A35E95041F6285CAFB0A65441295C8F2236E9504133333383B2A65441295C8F1237E95041B81E852BB3A65441AE47E15A37E950417B14AE57B4A65441295C8FD237E95041F6285C6FB4A65441AE47E1DA38E95041B81E851BB4A65441EC51B82E39E95041333333D3B3A65441713D0A673AE95041B81E851BB4A65441713D0AF73AE95041F6285C0FB4A65441713D0A573BE95041B81E85ABB4A65441295C8FF23BE95041F6285C2FB5A65441AE47E19A3CE950417B14AE07B6A65441295C8F223FE950417B14AEB7B7A65441295C8F523FE95041B81E857BB7A65441713D0AD73FE950417B14AEE7B7A65441713D0AD73FE9504133333393BAA65441EC51B86E3EE95041B81E859BBBA65441EC51B86E3EE9504133333313BCA65441713D0AE73EE950417B14AE07BCA65441EC51B85E3FE95041B81E85EBBCA65441295C8F4240E950417B14AEB7BDA65441295C8FB23FE950417B14AE37BFA65441EC51B84E3DE950417B14AE27C0A65441295C8FD23AE950417B14AE67C2A65441EC51B88E39E95041B81E852BC2A65441AE47E1CA36E95041F6285C8FC1A65441EC51B88E36E95041F6285C4FC2A65441295C8FE236E95041333333D3C2A65441295C8FE236E95041F6285C6FC3A65441AE47E13A36E950417B14AEB7C3A65441713D0A2735E950417B14AED7C4A65441AE47E12A34E950417B14AE07C5A65441AE47E1FA33E950417B14AE97C5A65441AE47E10A33E950417B14AE57C6A65441EC51B89E32E950417B14AE67C5A65441AE47E11A32E950417B14AE37C5A65441EC51B8AE31E95041B81E85CBC4A65441295C8F5230E95041333333B3C4A65441AE47E1DA2FE950417B14AE97C5A65441AE47E1DA2FE950417B14AEF7C5A65441AE47E14A2FE95041333333C3C6A65441AE47E1BA2EE95041F6285CCFC6A65441EC51B81E2EE9504133333353C7A65441AE47E19A2DE9504133333353C7A65441295C8F122BE950417B14AEC7C8A65441AE47E19A2AE950417B14AE97C8A65441713D0A472AE95041F6285C0FC9A65441713D0A6728E9504133333373C8A65441AE47E17A26E95041333333A3C8A65441AE47E15A25E950417B14AE47C7A65441AE47E18A25E95041333333F3C6A65441AE47E1FA24E95041B81E856BC4A65441295C8FF223E9504133333393C3A65441713D0A2723E95041B81E85DBC3A65441713D0A9722E950417B14AEA7C4A65441AE47E1BA22E95041B81E858BC5A65441EC51B8FE20E95041B81E850BC7A65441AE47E1DA20E950417B14AEA7C7A65441713D0A471EE95041B81E85CBC7A65441713D0A271DE9504133333353C7A65441295C8F321DE95041B81E85ABC6A65441EC51B82E1BE95041B81E851BC6A65441295C8F321AE950417B14AE37C5A65441EC51B8FE17E95041F6285C5FC4A65441EC51B80E17E95041F6285C5FC4A65441713D0AA715E95041F6285CCFC3A65441AE47E19A15E95041F6285C0FC3A65441EC51B89E14E950417B14AEB7C3A65441295C8F3214E9504133333393C3A65441AE47E13A12E950417B14AE87C6A65441295C8F7213E95041F6285C9FC6A65441713D0A5714E95041F6285CFFC6A65441713D0AB714E95041B81E85ABC6A65441713D0A7715E95041B81E850BC7A65441713D0A7715E95041B81E85CBC7A65441EC51B88E15E95041F6285CAFC8A65441EC51B8CE14E95041F6285C9FC9A65441EC51B86E14E950417B14AE87C9A65441EC51B8DE13E95041B81E853BCAA65441295C8FD213E950417B14AE77CAA65441AE47E14A14E95041F6285C8FCAA65441295C8FC214E95041F6285C1FCBA65441AE47E13A15E95041333333B3CAA65441295C8FD216E95041B81E85FBCAA65441EC51B8DE16E9504133333383CAA65441AE47E14A17E950417B14AE47CAA65441AE47E11A17E95041B81E859BC7A65441713D0AA718E9504133333353C7A65441AE47E1EA19E95041333333C3C6A65441713D0A571AE950417B14AE37C8A65441713D0AF719E9504133333333C9A65441EC51B8AE19E95041333333C3C9A65441AE47E10A1BE95041B81E853BCAA65441EC51B81E1CE9504133333323CAA65441EC51B8DE1CE950417B14AE77CAA65441295C8F021DE95041F6285CEFCAA65441EC51B86E1DE95041B81E855BCBA65441EC51B86E1DE95041333333A3CBA65441EC51B81E1CE95041333333A3CBA65441EC51B8EE1BE9504133333313CBA65441713D0A271AE95041F6285C7FCBA65441295C8FA219E950417B14AEC7CBA65441AE47E14A1AE9504133333363CCA65441AE47E16A1BE9504133333363CCA65441EC51B87E1CE95041B81E859BCDA65441713D0A271DE95041333333E3CDA65441EC51B8FE1DE95041F6285CEFCDA65441713D0A471EE9504133333313CEA65441713D0AD71EE950417B14AED7CDA65441EC51B8BE21E95041F6285C8FCDA65441EC51B84E22E95041F6285C2FCDA65441713D0AC722E95041B81E856BCDA65441AE47E17A23E9504133333353CDA65441EC51B82E24E95041333333E3CDA65441295C8FC223E950417B14AEB7CFA65441AE47E1DA23E95041F6285C8FD0A65441295C8F7225E95041F6285CEFD0A65441AE47E1EA25E95041F6285C8FD0A65441EC51B8CE26E95041B81E85CBD0A65441713D0A4727E950417B14AE97D1A65441713D0AE726E950417B14AE77D3A65441EC51B85E27E95041B81E858BD4A65441EC51B8CE26E95041F6285C3FD5A65441AE47E1CA24E95041B81E851BD5A65441EC51B89E23E95041B81E85FBD3A65441AE47E14A23E95041F6285C1FD4A65441295C8F3223E95041F6285C0FD5A65441713D0A6722E950417B14AE87D5A65441295C8FD222E95041B81E850BD6A65441EC51B87E22E95041F6285C5FD6A65441AE47E19A21E95041F6285CCFD5A65441295C8F8221E9504133333323D6A65441295C8F6223E95041F6285CAFD7A65441EC51B89E23E950417B14AEC7D7A65441713D0AB723E9504133333313D7A65441AE47E1EA25E95041F6285C7FD7A65441AE47E14A26E95041B81E85FBD6A65441295C8F5227E95041B81E85CBD6A65441EC51B81E28E950417B14AE37D7A65441713D0A172AE95041B81E85CBD6A65441295C8FA22BE95041333333F3D5A65441713D0A772DE950417B14AE77D6A65441EC51B8EE2DE950417B14AEC7D7A65441EC51B80E2FE95041333333F3D8A65441EC51B8CE2FE950417B14AE17D9A65441EC51B82E30E95041F6285CCFD8A65441295C8F8230E9504133333323D9A65441AE47E12A31E95041F6285C2FD9A65441295C8FA231E950417B14AE07DAA65441AE47E17A32E950417B14AE37DAA65441713D0A4733E95041B81E85ABDBA65441EC51B89E32E950417B14AEA7DCA65441AE47E13A33E95041F6285C1FDDA65441713D0A7733E950417B14AEF7DDA65441AE47E1FA33E95041333333C3DEA65441AE47E1FA33E95041B81E859BDFA65441AE47E1EA34E950417B14AEF7E3A65441EC51B87E34E95041F6285CBFE5A65441AE47E1BA34E95041F6285C8FE8A65441713D0A0734E95041F6285C4FE9A65441EC51B8BE33E95041B81E857BEAA65441EC51B8FE32E95041F6285CCFEAA65441EC51B80E32E950417B14AE57EAA65441AE47E15A31E95041F6285CDFE9A65441EC51B87E31E95041F6285C7FE9A65441EC51B88E30E95041B81E859BE8A65441AE47E10A30E950417B14AE77E8A65441295C8FB22DE95041F6285C3FE7A65441AE47E13A2DE950417B14AE17E8A65441295C8FC22CE9504133333373ECA65441AE47E12A2EE950417B14AE37ECA65441EC51B81E2EE95041B81E856BEBA65441295C8F022FE950417B14AE17EBA65441295C8F2230E95041F6285CBFEBA65441295C8F7231E95041F6285C1FECA65441AE47E15A31E95041B81E856BEBA65441295C8F3232E95041B81E850BEBA65441295C8F8233E95041B81E858BECA65441295C8F6232E950417B14AEE7EDA65441295C8F6232E95041B81E859BEEA65441713D0AE732E95041B81E852BEFA65441295C8F9232E95041B81E85BBEFA65441713D0A9734E95041F6285C4FEFA65441295C8FD234E9504133333383EEA65441AE47E15A34E950417B14AE17EEA65441EC51B84E34E950417B14AE87EDA65441EC51B83E35E9504133333333EDA65441AE47E19A36E950417B14AE87EDA65441713D0AD736E95041B81E85CBEEA65441AE47E1BA37E950417B14AE57F0A65441AE47E17A38E9504133333373EFA65441AE47E1CA39E950417B14AED7EEA65441713D0A673AE95041333333A3EFA65441713D0A973AE9504133333393F0A65441AE47E13A3CE950417B14AEE7F0A65441713D0A773CE95041B81E856BF1A65441295C8F723DE95041F6285CAFECA65441EC51B88E3CE95041F6285C0FEDA65441295C8F023BE9504133333303EDA65441295C8F423AE950417B14AE37ECA65441EC51B81E3AE95041F6285C5FEBA65441713D0A673AE950417B14AEE7EAA65441EC51B8BE39E950417B14AE27EAA65441AE47E1DA38E95041B81E851BEAA65441AE47E11A38E95041F6285CAFE9A65441AE47E18A37E95041F6285C5FE8A65441713D0AA736E95041B81E85DBE7A65441713D0A2735E95041F6285C0FE7A65441EC51B89E35E950417B14AEF7E0A65441AE47E10A36E95041F6285C5FDFA65441AE47E19A36E95041F6285C9FDEA65441713D0A0737E95041F6285C1FDDA65441713D0A2738E950417B14AED7DCA65441295C8FF238E950417B14AE07DDA65441295C8F8239E950417B14AE07DDA65441295C8F123AE95041F6285C4FDDA65441295C8FD23AE95041F6285C1FDDA65441295C8F323BE9504133333383DCA65441713D0AE73BE9504133333323DCA65441EC51B8FE3BE95041B81E85BBDAA65441EC51B88E3CE9504133333313DAA65441EC51B8FE3BE95041B81E856BD9A65441713D0AE73BE9504133333393D8A65441AE47E1AA3BE950417B14AEC7D7A65441EC51B82E3CE950417B14AE67D7A65441713D0A473CE950417B14AEA7D6A65441AE47E18A3DE950417B14AE57D5A65441713D0A273EE95041B81E85ABD5A65441295C8F923EE950417B14AEC7D4A65441AE47E12A40E950417B14AE67D4A65441AE47E12A40E950417B14AEF7D4A65441EC51B84E40E95041F6285C9FD5A65441EC51B84E40E9504133333383D6A65441713D0A473FE950417B14AEA7D6A65441713D0A473FE95041B81E855BD7A65441EC51B8FE3EE9504133333303D8A65441295C8FB23FE95041B81E857BD8A65441295C8F7240E95041B81E854BD8A65441295C8F3241E95041F6285CAFD7A65441EC51B8FE41E95041B81E858BD7A65441295C8F1243E95041B81E857BD8A65441AE47E1FA42E95041F6285CFFD8A65441EC51B87E43E95041B81E85CBD9A65441713D0A9743E95041B81E858BDAA65441295C8F6244E95041F6285CDFDAA65441295C8F3244E95041333333C3DBA65441AE47E14A47E950417B14AE77DCA65441295C8F5248E95041F6285C5FDCA65441AE47E1CA48E9504133333313DDA65441EC51B83E4AE9504133333373DDA65441713D0A574AE95041B81E852BDDA65441713D0A374CE95041B81E858BDDA65441AE47E1CA4EE950417B14AEC7DDA65441AE47E18A4FE950417B14AE57DEA65441AE47E1BA52E950417B14AE47DFA65441AE47E1EA52E95041B81E850BDFA65441713D0AA754E95041F6285C8FDFA65441AE47E17A56E950417B14AEA7DFA65441EC51B81E58E95041F6285C7FE0A65441AE47E1CA5AE950417B14AE87E1A65441EC51B8CE5BE95041D7A370BDE1A65441713D0A175DE95041F6285CCFE1A65441EC51B87E5EE95041F6285C2FE2A65441AE47E11A62E95041F6285C2FD9A65441295C8F3259E95041B81E853BD6A65441AE47E1EA4FE95041F6285CEFD3A65441EC51B8AE4FE95041333333D3D4A65441295C8FC24DE95041F6285CAFD4A65441AE47E11A4DE95041B81E85FBD3A65441295C8F324DE95041F6285C8FD3A65441713D0AD74BE9504133333323D3A65441295C8F824BE950417B14AED7D3A65441EC51B8CE4AE950417B14AE07D4A65441713D0AF749E9504133333383D3A65441AE47E11A4AE95041333333C3D2A65441EC51B88E45E95041F6285C4FD1A65441AE47E1EA43E95041B81E852BD1A65441AE47E18A40E950417B14AEE7CFA65441713D0AE73EE950417B14AEB7CFA65441333333933EE950413D0AD7D3CEA65441295C8F323EE95041F6285CEFCDA65441713D0AB747E95041B81E850BB5A65441295C8F024AE95041F6285C7FB3A6544109000000EC51B80E3EE950417B14AE77D3A65441713D0AA73CE950417B14AEA7D3A65441295C8F223CE95041B81E856BD3A65441713D0A173CE95041B81E85BBD1A65441713D0AA73CE95041F6285C1FD1A65441295C8F423DE95041B81E852BD1A65441713D0AC73DE95041B81E85BBD1A65441AE47E14A3EE95041F6285CCFD2A65441EC51B80E3EE950417B14AE77D3A6544107000000713D0AB74AE950417B14AE77D6A65441295C8FE24BE95041F6285CCFD5A65441713D0A974CE95041F6285C5FD6A65441AE47E15A4CE95041B81E852BD7A65441AE47E1FA4BE95041F6285CBFD6A65441295C8F224BE95041B81E85CBD6A65441713D0AB74AE950417B14AE77D6A6544111000000EC51B82E48E95041333333A3D7A65441EC51B8BE48E95041B81E85FBD6A65441713D0AD748E9504133333353D6A65441713D0AC749E95041F6285C4FD7A65441AE47E1BA49E95041B81E85EBD7A65441713D0A874AE95041B81E851BD8A65441EC51B8FE4AE95041F6285CDFD7A65441295C8F524BE950417B14AE57D8A65441AE47E1CA4BE950417B14AE57D8A65441713D0A674CE95041333333C3D8A65441AE47E18A4CE95041F6285CEFD9A65441295C8FB24BE95041B81E85BBDAA65441713D0A574AE950417B14AE97DAA65441295C8FA249E95041333333F3D8A65441295C8FA249E95041B81E854BD8A65441EC51B8EE48E950417B14AE57D8A65441EC51B82E48E95041333333A3D7A6544108000000295C8FB254E95041333333E3D9A65441EC51B8EE54E950417B14AE97DAA65441EC51B82E54E95041B81E854BDBA65441EC51B89E53E95041F6285C3FDBA65441AE47E18A52E95041B81E858BDAA65441713D0A9752E950417B14AE37DAA65441EC51B83E53E95041333333B3D9A65441295C8FB254E95041333333E3D9A6544113000000295C8FB224E9504133333373CBA65441EC51B86E23E95041B81E855BCBA65441713D0A8723E950417B14AE97CBA65441EC51B87E22E950417B14AE97CBA65441713D0A7721E95041F6285C0FCCA65441AE47E1EA1FE95041F6285C4FCBA65441EC51B80E20E95041F6285C2FCAA65441EC51B8AE1FE95041F6285CFFC9A65441EC51B8AE1FE9504133333333C9A65441EC51B86E20E95041333333A3C8A65441295C8FB221E950417B14AEC7C8A65441295C8F4222E95041B81E854BC9A65441295C8FD222E950417B14AEE7C9A65441713D0AC722E95041B81E859BCAA65441713D0AB723E95041F6285CBFCAA65441713D0A4724E9504133333393C9A65441295C8F4225E95041F6285C5FCAA65441EC51B84E25E95041F6285CEFCAA65441295C8FB224E9504133333373CBA6544109000000AE47E1AA3EE95041B81E852BC2A65441713D0AA73FE95041B81E85BBC2A65441AE47E1CA3FE950417B14AE57C3A65441713D0A473FE9504133333383C4A65441AE47E1AA3EE9504133333323C4A65441295C8FD23DE950417B14AE17C4A65441AE47E1EA3DE950417B14AE27C3A65441295C8F323EE95041F6285C4FC2A65441AE47E1AA3EE95041B81E852BC2A654410D000000EC51B8AE31E950417B14AED77CA65441713D0AE732E950417B14AEF77AA65441713D0AE732E950417B14AE4779A65441AE47E17A32E950417B14AEE778A65441AE47E13A33E95041F6285C9F78A65441713D0AC734E95041B81E856B79A65441295C8FD234E95041333333D37AA65441295C8F4234E95041F6285C6F7BA65441295C8F4234E95041333333837CA65441713D0A6734E95041B81E855B7DA65441295C8FE233E95041333333D37DA65441EC51B82E33E950417B14AEF77DA65441EC51B8AE31E950417B14AED77CA6544107000000AE47E1EA49E95041B81E85BBADA65441295C8F024AE9504133333353ACA65441295C8F224BE95041F6285CFFABA65441AE47E1FA4BE950417B14AEE7ABA65441295C8F524BE950417B14AE67ADA65441295C8FC24AE950417B14AEC7ADA65441AE47E1EA49E95041B81E85BBADA654410A000000AE47E17A4DE950417B14AEE7AEA65441AE47E1AA4DE950417B14AED7AFA65441713D0AF74CE95041333333A3B0A65441295C8F824BE95041333333A3B0A65441EC51B8CE4AE95041B81E852BB0A65441713D0A874AE95041B81E857BAEA65441EC51B88E4BE95041F6285C6FAEA65441AE47E1BA4CE95041F6285CDFADA65441AE47E1AA4DE950417B14AEF7ADA65441AE47E17A4DE950417B14AEE7AEA6544101030000000B00000038030000666666F6BAE85041666666A6DBA75441F6285CAFB9E850417B14AEE7D9A75441A4703DEAB9E85041CDCCCCECD7A75441713D0AA7BAE850411F85EBD1D6A7544152B81E05BBE85041A4703DFAD4A7544148E17A14BCE8504152B81E75D3A75441A4703D6ABDE8504114AE4701D0A7544166666606BFE85041D7A3702DCFA7544100000080C0E85041AE47E1DACEA754413D0AD733C2E85041B81E85EBCCA754411F85EB91C6E8504185EB51F8BEA75441D7A3705DCBE85041E17A140EB0A75441000000D0CAE85041000000B0AFA75441F6285C3FC9E8504152B81E75AFA75441F6285C7FC7E8504148E17AC4AEA754413D0AD7B3C5E85041E17A146EADA75441CDCCCC8CC4E850415C8FC2A5ACA754413D0AD733C2E85041D7A370DDABA75441C3F5283CC1E85041EC51B8CEAAA75441E17A14FEBFE85041C3F5287CAAA75441333333E3BEE85041E17A143EA9A7544114AE4741BFE85041CDCCCC8CA8A75441F6285CBFC1E85041295C8F32A9A75441CDCCCC1CC2E850413D0AD703A8A75441295C8F42CAE85041E17A146E9BA754417B14AE07CAE850418FC2F5C89AA7544114AE4771CAE85041000000309AA7544166666616CBE85041AE47E18A99A754419A999939CBE8504148E17A6498A75441333333D3CBE8504185EB517897A754410AD7A3A0CAE850419A99996996A7544185EB51B8CAE8504148E17AC495A754418FC2F568CBE85041C3F528FC94A75441713D0AA7CCE8504114AE472192A75441A4703DAACDE85041B81E85AB91A7544114AE47D1CEE8504152B81E8590A75441A4703D6ACFE850415C8FC2758FA75441AE47E16AD1E85041E17A141E8EA75441AE47E10AD2E8504185EB51488CA75441AE47E16AD4E8504185EB512888A75441F6285CBFD5E850418FC2F54887A75441713D0AA7D6E850413D0AD72387A75441E17A145ED6E85041EC51B89E86A75441B81E85EBD6E85041713D0AF784A75441EC51B80ED7E85041333333F383A7544152B81E35D8E850411F85EB5184A754410AD7A370D8E850415C8FC22585A75441EC51B8AED9E85041E17A140E85A75441EC51B88EDAE850415C8FC20586A754411F85EB71DAE850418FC2F5E886A754411F85EBC1DBE85041A4703D2A86A754415C8FC285DDE85041295C8F6284A75441AE47E10ADDE85041D7A3705D84A7544152B81E95DCE85041C3F528FC82A7544133333313DCE85041CDCCCCEC81A75441A4703D7ADBE85041E17A14FE7FA7544148E17A04DBE850410AD7A3707FA75441666666C6D9E85041D7A3706D7EA754413D0AD793D8E85041333333237DA75441CDCCCC2CD9E85041D7A370AD7CA754411F85EBF1D8E85041D7A370CD7BA75441666666E6D8E85041B81E854B7BA754417B14AE87D8E85041F6285C8F7AA75441D7A370BDDAE850417B14AE377CA75441AE47E14ADBE85041333333437CA754410AD7A3C0DBE85041A4703D8A7CA75441CDCCCCCCDBE850415C8FC2757DA754411F85EB91DBE85041B81E85EB7DA75441F6285C1FDCE850410AD7A3907EA754419A999989DCE85041A4703DDA7FA7544185EB5178DEE850415C8FC21580A754410AD7A340DFE85041F6285C7F80A7544114AE47F1DFE850410AD7A3707FA75441295C8FC2DFE85041F6285CBF7EA75441C3F5282CE0E85041D7A3706D7EA75441E17A14AEE0E850419A9999697DA75441713D0A67E0E850410AD7A3F07BA75441AE47E1AADFE850418FC2F5F87AA754417B14AE87DFE850411F85EB017AA75441666666B6DFE850419A99993979A754411F85EB81E1E85041000000C077A754415C8FC2A5E1E8504148E17AD476A7544185EB51F8E1E850413333335376A754415C8FC2A5E1E850415C8FC2C575A75441CDCCCC9CE2E850416666669675A75441EC51B81EE3E850418FC2F5E875A75441295C8FF2E3E85041E17A148E76A7544148E17A74E4E850419A99999976A754411F85EB01E5E85041B81E853B76A75441A4703DCAE5E85041A4703D8A75A7544148E17A34E6E85041713D0A8774A75441333333A3EBE85041AE47E14A70A75441B81E856BECE850410000001070A75441713D0A57EDE85041295C8F6270A7544148E17AE4EDE85041000000D071A754411F85EB71EEE8504185EB519872A75441000000B0EFE85041000000D071A75441C3F528BCEFE850410AD7A3C070A75441A4703D1AF0E850417B14AE2770A75441B81E855BF2E85041CDCCCC0C6FA75441B81E853BF3E850417B14AE676EA754415C8FC2A5F3E85041CDCCCC4C6DA754413D0AD723F3E850411F85EB316CA7544100000030F3E8504185EB51E86AA754415C8FC2A5F3E850415C8FC2B569A75441D7A3709DF4E85041EC51B88E68A7544185EB51D8F4E850418FC2F51868A75441333333F3F5E8504185EB516867A754417B14AE77F7E850411F85EB2167A7544114AE47F1F8E85041EC51B85E64A75441EC51B89EF8E85041EC51B87E63A75441C3F5284CF8E850413D0AD72364A754418FC2F528F8E8504148E17AD464A75441EC51B8BEF7E85041E17A143E65A754410AD7A380F6E85041C3F528EC64A754415C8FC245F6E8504148E17AF463A7544185EB5198F6E85041EC51B87E63A75441666666F6F6E850417B14AE5762A75441333333D3F6E85041713D0AA761A754410AD7A380F6E85041E17A14EE61A75441EC51B8FEF5E85041333333B361A754411F85EB41F5E85041B81E859B61A75441B81E85FBF4E85041CDCCCC1C62A7544166666656F4E85041CDCCCC3C61A754418FC2F5A8F4E850419A99993960A754413D0AD7C3F5E850416666661660A7544114AE4751F6E850415C8FC2A55DA754413D0AD783F7E850418FC2F5A85EA7544114AE4711F8E8504114AE47915EA75441EC51B89EF8E85041D7A3707D5FA75441C3F5280CFAE850418FC2F5E85CA75441C3F5280CFAE85041000000505CA75441C3F528ECFAE850415C8FC2C55CA75441000000E0FAE850415C8FC2E55BA7544114AE47D1F9E85041713D0AD75AA75441A4703D8AF9E8504152B81E555AA75441A4703D8AF9E8504148E17AA459A75441713D0A87F8E85041713D0AF759A75441C3F5284CF8E8504185EB519859A754417B14AE77F7E850411F85EB115BA7544114AE4731F7E85041A4703D1A5AA7544185EB5198F6E85041333333B35AA7544166666656F4E85041B81E852B58A7544133333333F4E850411F85EB9157A75441E17A146EF4E85041EC51B86E57A7544133333353F3E85041C3F5283C56A7544100000030F3E85041333333A355A7544133333373F2E850410AD7A35055A754417B14AE47F3E850418FC2F55854A754415C8FC2A5F3E85041713D0AB754A754415C8FC285F4E85041EC51B8EE53A75441713D0AE7F5E850417B14AED753A75441E17A142EF6E85041295C8F1254A75441A4703DEAF6E85041AE47E1FA53A75441AE47E10AF6E8504152B81E8553A7544148E17A14F9E850410AD7A3B052A754417B14AE17FAE85041E17A143E53A75441713D0A87F8E850411F85EBA151A75441AE47E13AFAE85041D7A370AD51A75441AE47E13AFAE850415C8FC2B550A75441D7A370ADF9E85041A4703DAA50A75441CDCCCCFCF8E850419A9999F94FA754413D0AD783F7E85041000000604FA75441EC51B8DEF6E85041713D0AC74EA754413D0AD7A3F6E85041295C8FD24EA7544185EB5198F6E8504185EB51484FA75441D7A370BDF3E85041D7A3700D4FA754415C8FC2A5F3E85041CDCCCC5C4EA75441C3F528ECF3E850417B14AEB74DA7544152B81ED5F3E850418FC2F5C84BA7544114AE47D1F2E850419A9999994BA75441E17A14CEF1E85041333333734AA75441713D0AF7EFE85041AE47E1AA49A7544114AE4781EFE850410AD7A34049A754415C8FC245EFE85041E17A140E48A75441713D0AF7EFE85041333333D347A75441A4703DFAF0E85041D7A3707D46A754419A999969EFE85041D7A3709D45A754417B14AEC7EFE85041713D0A7744A7544148E17AA4EFE85041666666C643A75441713D0AF7EFE8504152B81E1543A75441E17A14EEF0E85041CDCCCC4C42A75441E17A14CEF1E850417B14AE8742A75441295C8FA2F2E8504114AE472143A754410AD7A300F3E85041F6285C5F44A75441F6285C7FF2E85041A4703D7A45A75441D7A370BDF3E85041E17A140E48A75441000000F0F4E85041B81E859B48A754413D0AD7A3F6E85041B81E859B48A754410AD7A360F7E8504152B81E3549A75441295C8FB2F7E85041D7A370FD49A75441C3F5286CF7E85041666666964AA754417B14AE77F7E85041713D0A274CA75441713D0AA7F7E85041666666364DA7544152B81EC5F9E850419A9999594DA75441EC51B85EFAE85041F6285CEF4CA7544133333303FBE850411F85EB414DA75441E17A141EFCE850413D0AD7E34CA7544185EB5188FCE85041B81E85FB4CA754410AD7A390FBE850419A9999394EA75441A4703D6AFAE8504152B81E454EA75441D7A3708DFAE850413D0AD7A34EA7544166666606FCE85041F6285CAF4EA75441AE47E1FAFBE850411F85EB014FA7544185EB51A8FBE85041000000604FA754413D0AD793FCE85041AE47E19A4FA7544100000080FDE850419A9999194FA75441D7A370EDFEE850419A9999194FA7544100000040FFE85041F6285C8F4FA754416666666600E95041CDCCCCFC50A75441F6285C1F00E950418FC2F5B851A7544185EB510800E950413333330353A75441C3F528DC00E95041295C8F1254A754411F85EB5101E95041C3F5283C56A75441E17A143E02E9504114AE47E156A754416666660603E95041B81E856B56A754415C8FC2E503E95041F6285C5F56A754415C8FC2E503E95041EC51B8AE55A75441A4703DFA02E95041CDCCCC0C56A75441EC51B8EE02E950418FC2F57853A754416666662602E95041B81E85EB52A75441713D0AD702E95041CDCCCCFC50A7544148E17A4404E9504114AE471150A754417B14AE4705E9504185EB512850A75441AE47E12A07E95041B81E852B51A754415C8FC26507E95041B81E850B52A75441EC51B8FE07E9504185EB51E851A754419A99991909E950411F85EB8152A75441713D0AA709E9504185EB51A853A75441AE47E1FA0DE95041CDCCCC3C4FA75441B81E851B0DE95041C3F5286C4FA75441C3F528EC0CE95041D7A3700D4FA75441A4703D4A0DE950411F85EB414DA75441666666760CE950410AD7A3C04CA75441E17A14CE0AE950418FC2F5884DA754411F85EBE109E95041EC51B81E4DA7544185EB517809E95041E17A146E4CA754410AD7A38008E950413D0AD7034CA75441333333F307E95041000000304BA75441000000D007E95041666666964AA754416666661608E95041AE47E1AA49A7544114AE477107E950413333339349A754413333331307E9504114AE471149A7544148E17A2405E9504152B81E3549A75441A4703DBA04E950417B14AEA748A75441CDCCCC2C04E950410000009048A75441C3F5287C03E950417B14AEC747A75441F6285CBF02E95041B81E85BB47A7544152B81E3503E950411F85EB5147A75441D7A3701D03E950417B14AEE746A75441C3F5289C02E95041000000D046A75441A4703D3A01E950411F85EB9145A7544114AE47A100E9504152B81EB545A75441F6285C1F00E9504148E17A0445A75441AE47E15A00E950417B14AE4744A754410AD7A3F0FFE850417B14AE8742A754419A9999A9FFE85041713D0AF740A7544148E17AE4FFE85041295C8F5240A7544185EB5128FFE850417B14AE373FA75441F6285C1F00E95041F6285C8F3DA754410AD7A3F0FFE8504152B81E253DA754413D0AD71300E95041A4703D0A3CA754411F85EB7100E9504114AE47713BA75441F6285CDF01E9504152B81E653BA754418FC2F55803E950411F85EB213CA75441AE47E1AA03E9504152B81E253DA75441CDCCCC2C04E95041F6285CAF3CA75441B81E851B06E95041E17A14DE3CA754413D0AD7E306E95041D7A370CD3EA75441CDCCCCAC07E950410AD7A3F03EA75441AE47E10A08E9504114AE47A13FA754419A99991909E950417B14AE373FA75441295C8F0209E950410AD7A3D03FA75441F6285C6F0AE950419A99996940A754413D0AD7630AE950413333330341A754410AD7A3200BE950411F85EB3141A7544148E17A140BE950418FC2F57841A754411F85EBA10BE9504114AE474142A754411F85EB810CE9504114AE474142A754413D0AD7030DE95041666666E642A75441333333C30EE9504148E17A4443A7544185EB51680FE95041666666A644A75441F6285C8F10E9504114AE47C145A754417B14AE7710E95041295C8F2247A7544114AE47A112E95041666666F647A75441295C8F5213E950417B14AEC747A754413D0AD79315E95041295C8F4246A75441F6285C7F16E95041C3F5285C43A75441CDCCCC2C16E95041E17A14FE42A754411F85EBD116E950417B14AE8742A75441C3F5283C17E95041AE47E11A41A75441CDCCCC0C17E9504114AE478140A75441F6285C5F17E9504152B81EC53FA754417B14AE6716E950413D0AD7133FA75441E17A14DE16E950415C8FC2F53CA75441295C8FA216E95041000000803CA7544148E17A6415E95041713D0A073BA75441B81E85AB15E95041AE47E11A3AA754416666660615E95041CDCCCCDC38A754418FC2F55815E950413D0AD74338A754415C8FC29512E95041D7A3703D36A75441CDCCCCFC11E950419A99991936A75441AE47E17A11E9504148E17A5436A75441E17A14BE10E9504152B81E7535A7544148E17A740FE9504152B81E9534A7544148E17A940EE950411F85EBB132A7544152B81EA50CE95041A4703D9A32A754413D0AD7230CE95041B81E853B32A754413D0AD7430BE9504185EB511832A75441333333930AE95041A4703DDA30A75441CDCCCCFC0AE950419A99992930A75441713D0AA709E95041C3F5289C2FA75441B81E85DB07E950410000005031A754410AD7A3C006E9504148E17A4431A75441D7A3709D06E950419A9999E931A754417B14AE4705E950417B14AE4732A754413333335305E95041E17A148E32A754419A99990904E9504152B81ED532A754410000007003E95041D7A370DD31A75441E17A143E02E950415C8FC2C531A754416666664601E95041AE47E18A31A75441F6285CFF00E9504148E17A6430A754411F85EB3102E95041EC51B80E2FA754415C8FC2A505E95041CDCCCC4C30A75441295C8F6206E95041AE47E1AA30A754417B14AE0707E950410000007030A7544152B81E9507E95041C3F5289C2FA75441AE47E1EA08E95041E17A143E2FA75441AE47E1CA09E95041F6285CDF2EA75441EC51B89E0AE95041B81E850B2EA75441A4703D8A0BE950410AD7A3D02DA75441B81E853B0CE950410AD7A3102CA7544114AE47B10CE950415C8FC2B52CA7544152B81E650EE950419A9999A92CA754415C8FC2350EE95041EC51B88E2BA754411F85EB0110E950417B14AEB729A75441EC51B8FE0EE950410AD7A37029A75441000000800FE95041000000C028A754413D0AD77316E95041333333E328A754417B14AE0719E95041B81E858B2AA75441E17A142E1AE9504185EB51682AA75441D7A3705D1AE950415C8FC2152AA75441F6285CDF1AE9504114AE47212AA754417B14AEA71BE950419A9999E92AA7544185EB51581CE95041D7A3700D2BA75441B81E855B1DE950410AD7A3102CA75441295C8FA21DE9504185EB51682AA75441333333531EE95041A4703D0A2AA75441295C8FF220E95041666666C62AA75441E17A142E21E95041295C8FB22BA75441C3F5288C21E9504148E17A042CA75441F6285C6F23E95041B81E854B2CA75441A4703DAA23E9504185EB51082DA754411F85EBA124E95041C3F528FC2CA754411F85EBA124E9504185EB51282CA75441E17A143E26E95041E17A14FE29A75441AE47E1FA26E95041F6285CCF29A75441666666E627E95041E17A141E29A75441000000A027E95041F6285C0F28A75441000000A027E950411F85EBC125A754411F85EB8125E95041AE47E15A26A7544148E17AF424E95041D7A370AD26A7544148E17A1424E950419A9999D925A75441713D0AA722E95041A4703DAA25A75441F6285C8F22E9504148E17A7423A7544114AE473122E95041333333F322A754417B14AE9721E95041333333F322A7544148E17A7421E950419A99991924A7544114AE477120E95041666666B625A75441713D0A271FE950410000002026A75441713D0A271FE9504152B81EC526A75441AE47E16A1EE95041CDCCCCDC26A75441AE47E18A1DE95041C3F5282C26A754415C8FC2E51CE95041E17A14EE24A7544114AE47F11CE95041F6285CAF23A754410AD7A3001EE950418FC2F5A821A75441713D0A671DE95041EC51B83E21A754417B14AE871CE95041B81E85DB22A75441CDCCCC6C1BE950410AD7A38023A75441333333D31AE950415C8FC24523A75441F6285C5F17E95041C3F5288C23A754419A9999E916E95041A4703D0A23A75441666666E615E95041333333F322A754418FC2F57814E9504148E17A9422A75441B81E850B13E9504114AE477122A7544152B81EC512E95041713D0A0722A75441295C8F9211E95041C3F528CC21A7544152B81E2510E950418FC2F5C820A75441C3F528CC0DE95041EC51B83E21A7544152B81EA50CE95041B81E851B21A754411F85EB810CE950415C8FC28521A75441B81E855B0BE950419A99997921A75441CDCCCCDC0BE950415C8FC2A520A75441CDCCCCDC0BE9504152B81EF51FA754413D0AD7430BE95041CDCCCC2C1FA7544148E17A140BE95041AE47E1EA1CA754417B14AE2706E950417B14AE671FA75441F6285C3F06E95041D7A370DD1FA7544148E17A4404E950410000003020A7544185EB513804E9504114AE477122A75441F6285C9F03E95041713D0AC723A754419A99994902E95041B81E859B24A754417B14AEC701E95041C3F5284C25A75441EC51B82E01E95041F6285C2F27A754413333334300E95041713D0A2728A75441F6285C1F00E95041F6285CEF28A75441D7A370CDFFE85041A4703D2A29A754415C8FC2D5FEE85041D7A3702D2AA75441EC51B88EFEE85041000000602BA75441AE47E1BAFDE850419A9999C92BA75441666666E6FCE85041713D0A772BA75441F6285CEFFBE85041666666A62BA75441B81E857BF8E85041713D0AD72FA75441666666D6F7E85041A4703DDA30A75441C3F528CCF4E85041E17A147E2DA75441C3F528ACF5E8504185EB51282CA75441295C8FB2F7E850410AD7A37029A75441A4703DCAF7E8504185EB51C827A75441C3F5284CF8E85041F6285C2F27A75441F6285C4FF9E85041A4703DCA24A75441A4703D8AF9E850416666661623A754410AD7A390FBE8504152B81E351EA754415C8FC235FCE85041000000B01CA754417B14AE97FDE85041666666861AA75441EC51B8AEFDE85041F6285C5F19A75441D7A370EDFEE85041D7A3708D15A754410AD7A310FFE850413D0AD7C313A75441E17A14BEFEE85041295C8FB212A75441AE47E17AFFE8504114AE475111A754416666666600E950418FC2F5C80EA754413D0AD7F300E95041000000D009A7544152B81E7501E9504152B81EF506A754410AD7A3B001E95041E17A14FE05A754411F85EB3102E950411F85EB1105A75441295C8F0202E95041AE47E15A02A75441B81E85CB02E95041295C8F9201A75441E17A146E02E9504148E17A5400A75441B81E85CB02E9504185EB5168FFA654413D0AD7B302E950413D0AD743FBA654416666662602E95041EC51B89EFAA654418FC2F57802E95041713D0AA7F9A65441CDCCCC6C02E950415C8FC245F8A65441713D0AF701E95041B81E85FBF6A65441EC51B80E02E95041E17A148EF5A65441D7A370CDFFE85041B81E853BF5A65441CDCCCC8C01E950417B14AE07F7A654413333332301E950418FC2F568F8A65441713D0A1701E950419A9999F9F9A6544152B81E7501E95041713D0A67FBA65441F6285CFF00E9504152B81EA5FCA65441AE47E15A00E950415C8FC2B501A75441AE47E15A00E95041713D0A1703A7544185EB510800E950419A99994904A75441C3F528FCFFE85041A4703DDA05A7544185EB5128FFE8504185EB511807A75441B81E856BFEE85041F6285CDF0AA7544114AE4701FEE850415C8FC2050CA754415C8FC2F5FDE85041713D0A870CA7544152B81E25FEE85041295C8FC20CA7544185EB5148FEE8504114AE47D10DA75441333333E3FBE8504148E17A7411A75441AE47E15AF9E8504185EB516818A75441E17A14EEF7E85041A4703D3A1CA754418FC2F548F7E85041D7A3703D1DA7544133333313F5E85041713D0AE722A7544185EB51F8F3E85041666666F623A75441B81E853BF3E85041F6285C2F27A75441A4703DDAF1E850410AD7A3302BA75441CDCCCC8CEFE85041D7A3701D30A754419A999989EEE8504152B81E1531A7544152B81EB5EDE8504148E17A2432A7544114AE4701ECE850413D0AD7A335A754415C8FC215EBE850415C8FC20537A754419A999909EBE85041A4703DAA37A754410AD7A330ECE850410000009036A7544114AE47E1ECE8504114AE475135A75441F6285CBFF0E8504152B81ED532A75441295C8FC2F1E850411F85EBD131A75441713D0A67F2E8504148E17A6430A75441295C8F82F3E8504148E17A842FA75441F6285C8FF7E85041AE47E18A31A75441713D0A07F5E85041333333F334A75441E17A14CEF1E85041713D0A6738A75441E17A149EEDE850417B14AE573EA754413D0AD733EDE85041295C8F923EA75441C3F5283CECE85041D7A370AD3FA754417B14AE27EDE850418FC2F59840A754417B14AE27EDE8504114AE476141A75441EC51B88EECE850410AD7A37042A75441D7A3702DEBE85041333333E341A75441E17A14FEEAE850419A99992942A754415C8FC215EBE85041D7A370BD44A75441333333A3EBE850413D0AD73345A754413D0AD773EBE85041295C8F4246A754413D0AD793EAE8504185EB51B846A7544166666626E9E85041B81E85DB46A7544185EB51C8E8E85041AE47E10A47A754417B14AE17E8E8504152B81E9546A75441F6285C4FE7E8504152B81E7547A75441CDCCCC3CE5E85041C3F5280C4BA75441713D0AA7E5E85041CDCCCCBC4BA754411F85EBE1E5E850417B14AED74CA754418FC2F5B8E7E8504148E17AD44BA75441AE47E11AE9E8504114AE47B14BA75441295C8F32E9E8504148E17AB44CA7544166666646E8E85041AE47E1BA4EA754417B14AE37E7E85041666666F64EA75441A4703DAAE6E8504114AE47514EA75441D7A370EDE5E85041713D0AE74DA754413D0AD7C3E3E8504114AE47314FA754413D0AD7E3E2E850413D0AD7834FA7544166666656E2E8504114AE47314FA75441F6285C2FE1E85041A4703DCA4FA75441E17A14EEDEE8504148E17AF451A754413D0AD783DEE85041AE47E11A53A754419A999989DCE85041B81E858B55A75441713D0A77DAE850418FC2F5D857A7544148E17A44D9E850418FC2F5B858A754413D0AD7F3D5E85041A4703DBA5CA75441713D0AE7D1E850419A99991961A75441000000C0D0E85041B81E857B62A75441A4703D5ACAE850410AD7A33068A75441C3F5287CC6E85041EC51B84E6AA75441EC51B82EC4E850419A9999496CA7544148E17A04C2E85041CDCCCC0C6FA75441D7A3700DC1E850410000001070A754411F85EB61BEE85041AE47E1CA73A754415C8FC275BDE8504185EB513875A7544114AE4751B9E85041E17A14BE7AA75441B81E85FBB7E8504185EB51287BA7544114AE4791B7E850411F85EBC17BA7544133333333B7E850417B14AE577BA754413D0AD7E3B7E85041333333837AA7544166666636B8E8504114AE477178A75441713D0AA7BAE85041295C8F3277A7544114AE47F1BBE850413D0AD74375A754419A9999B9BCE85041295C8F0273A7544185EB5188BFE850417B14AE2770A754410AD7A370BFE85041AE47E18A6EA754418FC2F538C0E850418FC2F5786CA754410AD7A330C1E85041666666466BA754411F85EB91C2E85041C3F528DC6AA75441C3F528DCC3E85041E17A149E69A75441B81E85EBC4E850413D0AD73369A75441333333B3C5E850418FC2F57868A75441713D0AB7C6E85041EC51B8AE67A75441713D0A97C7E850410AD7A35067A7544100000030C8E85041713D0A0766A754417B14AE07CAE85041F6285C2F64A75441E17A140ECCE85041F6285C4F63A754411F85EB81CFE85041333333F35FA7544148E17A94D1E85041000000F05EA754417B14AE97D2E850410AD7A3C05EA75441AE47E17AD4E850418FC2F5C85DA754415C8FC275D6E85041C3F5289C5AA75441C3F528BCD6E85041000000D058A7544114AE4761D7E85041C3F528FC57A7544100000050D9E85041EC51B88E56A754413D0AD773D9E85041333333C354A754413D0AD783DEE850413D0AD7C34DA7544114AE4711DFE85041A4703D4A4CA7544100000070DFE8504148E17AF44AA7544133333373E0E850419A9999D949A75441F6285CEFE2E85041F6285C1F46A75441D7A3702DE4E85041713D0A5745A75441713D0AC7E4E8504152B81EF543A75441CDCCCC7CE3E85041CDCCCC4C42A7544114AE4771E3E85041333333E341A754415C8FC2D5E2E85041EC51B87E41A7544133333393DFE850410AD7A3A03FA754410AD7A350D9E850417B14AE074AA75441CDCCCC1CD4E850410000002051A7544152B81E25D3E85041E17A143E53A754417B14AE77D3E85041B81E85AB54A7544185EB5148D3E85041F6285C5F56A75441E17A14DED2E850416666668657A75441CDCCCC5CD2E850417B14AE0758A754411F85EB41D1E850413D0AD7D359A7544148E17AD4CFE85041333333935BA75441A4703D8ACEE85041E17A14AE5CA75441E17A14EECCE8504152B81EB55EA75441EC51B8BECCE85041E17A144E5FA75441295C8F42CAE85041333333B361A754410AD7A3E0C8E85041666666B662A75441C3F5287CC6E850415C8FC25565A754413D0AD7D3C4E850413D0AD77367A754418FC2F5B8C3E850417B14AE7768A75441B81E854BC2E85041AE47E17A69A75441D7A3702DC0E8504114AE47816BA754410AD7A370BFE85041000000706DA75441EC51B87EBCE85041A4703D7A70A7544100000040BBE85041AE47E10A72A75441E17A140EBAE85041EC51B8DE72A7544100000010B7E850410AD7A3E076A75441295C8F82B6E850417B14AED777A75441295C8F82B4E850416666662678A75441A4703D1AB3E850419A9999197AA75441333333D3B2E8504148E17A347BA7544100000090B3E850415C8FC2B57BA75441000000B0B2E85041AE47E13A7DA75441C3F528BCB2E85041295C8F327EA7544114AE47F1B4E85041C3F5287C7FA7544152B81EF5B5E85041CDCCCC4C7FA7544185EB5118B6E85041713D0AB77FA754415C8FC205B4E850413D0AD73382A754415C8FC2E5B4E85041C3F528FC82A75441E17A14AEB5E850415C8FC26583A7544166666656B7E850415C8FC26583A7544166666636B8E85041F6285C1F83A75441E17A140EBAE85041333333F383A75441A4703DEAB9E85041713D0AF784A754417B14AE77BAE8504185EB515886A75441CDCCCCFCBBE850413333335388A75441EC51B87EBCE8504114AE47B188A754410AD7A3D0BCE85041C3F528CC89A754410AD7A3D0BCE8504148E17A948AA75441295C8F72BCE85041713D0AE78AA75441F6285CAFB9E85041A4703D2A8AA754415C8FC245B9E85041E17A146E89A75441E17A144EB8E8504148E17AD488A75441AE47E14AB7E85041713D0A2789A75441AE47E16AB6E85041EC51B85E88A7544166666676B6E85041C3F5282C87A75441D7A370DDB5E850417B14AE8786A7544166666676B6E8504148E17A8485A7544152B81E15B5E85041000000B084A754417B14AEA7B3E850417B14AEC784A75441CDCCCC8CB2E850410AD7A36085A7544148E17AC4B1E85041295C8F0285A7544166666666B1E850410AD7A38084A7544114AE47A1B1E8504148E17AC483A754417B14AEC7B2E850413D0AD71383A75441C3F528BCB2E850411F85EB9182A754415C8FC225B3E85041AE47E14A82A75441CDCCCC6CB3E85041B81E856B81A75441C3F528DCB1E850413D0AD73382A75441713D0A57B0E85041295C8F6282A75441C3F5283CAFE85041295C8F4283A75441F6285C7FAEE8504152B81EB582A754415C8FC2F5AEE85041B81E856B81A7544148E17A04B0E85041CDCCCC0C81A75441A4703D3AB2E85041B81E85AB7FA754417B14AEE7B1E85041333333E37EA7544148E17AE4B0E8504148E17A847EA7544114AE47E1AFE85041713D0AD77EA75441295C8F12AFE85041A4703DBA7FA754417B14AEF7ABE8504148E17AE482A75441D7A3706DACE85041F6285C1F83A75441D7A3708DABE85041295C8F2284A75441EC51B82EABE85041713D0AF784A75441A4703D8AAAE8504148E17A8485A7544166666666AAE850417B14AE8786A75441295C8F92A9E85041EC51B87E87A75441AE47E19AA8E85041B81E853B88A7544152B81E45A7E850411F85EB6189A75441EC51B85EA4E85041C3F5284C8DA7544185EB5118A4E85041713D0A678EA7544133333373A3E85041E17A145E8FA754413D0AD763A2E85041C3F5287C91A7544114AE47F1A2E85041333333A392A75441B81E859BA1E85041CDCCCCCC94A7544185EB5198A0E85041F6285CFF95A75441000000D09FE850416666664696A75441AE47E10AA0E850410000009097A7544152B81E959FE85041A4703DFA97A75441CDCCCCCC9EE850419A99992998A754417B14AE279EE850415C8FC2E598A75441CDCCCCEC9DE8504152B81EF599A75441C3F5283C9DE85041AE47E16A9AA754417B14AE479DE850418FC2F5C89AA75441EC51B8CE9BE850413D0AD7039BA75441295C8FE29AE850419A9999599CA75441295C8FE29AE850411F85EBE19EA75441E17A143E9AE85041F6285C4FA0A754411F85EB319AE8504100000000A1A754410AD7A3D098E85041295C8FF2A3A75441B81E854B97E850418FC2F598A8A75441AE47E19A96E85041E17A143EA9A75441B81E858B95E85041A4703DBAABA754411F85EB2195E8504148E17A24ACA754417B14AED793E85041E17A144EAEA75441A4703D2A94E85041B81E85DBAEA75441295C8F1294E85041B81E859BB0A7544148E17AB493E850418FC2F528B1A754413D0AD72392E850419A9999B9B2A75441EC51B85E92E85041CDCCCCBCB3A754418FC2F5E891E8504148E17AB4B4A75441E17A140E8FE85041713D0AC7B6A75441B81E859B8FE850410AD7A330B7A7544114AE471190E850419A999919B7A754419A9999598DE85041B81E85EBBAA75441B81E854B89E85041C3F528ACC4A754418FC2F5B886E85041295C8F72CBA75441F6285CDF87E8504185EB51A8CDA754418FC2F5F884E850419A9999E9CFA754418FC2F51884E85041A4703D5AD2A7544152B81E9586E850413D0AD713D2A754411F85EB5187E85041C3F528DCD2A754413D0AD7F386E85041C3F528BCD3A75441C3F5282C8BE85041EC51B89ED4A75441F6285C5F8BE8504166666606D5A75441295C8FA28AE85041333333B3DBA75441AE47E16A8BE85041B81E859BDBA754415C8FC2C58AE85041D7A3706DDFA7544114AE47718DE850411F85EB41E0A75441A4703D8A91E850415C8FC215E1A75441D7A3704D94E85041B81E859BDBA754410000008095E8504148E17A54DBA754410000006096E850418FC2F548DBA75441D7A370ED96E8504148E17A34DCA754410AD7A33096E850419A999989E4A75441666666A696E85041D7A3708DE5A7544152B81E2596E850418FC2F598E5A75441333333A395E850411F85EB51E5A7544152B81E4595E85041E17A141EE7A75441D7A3704D94E8504100000010EAA7544152B81E6594E85041295C8F42EBA75441F6285C0F93E850410AD7A340EEA75441713D0A4792E8504133333393EEA754411F85EBA191E8504166666696EFA75441B81E857B90E85041AE47E16AF0A754413D0AD7838FE85041AE47E16AF0A75441713D0AC78EE85041CDCCCC9CF1A754411F85EBE18FE85041713D0A07F2A754411F85EBE18FE850413D0AD7C3F2A7544148E17A548FE85041AE47E1BAF3A75441EC51B8DE8EE85041D7A370EDF4A75441EC51B8DE8EE85041A4703D8AF6A754413D0AD7E38CE85041000000A0F9A75441D7A3709D8CE8504114AE4701FBA75441E17A14AE8AE85041AE47E1EAFEA75441295C8F628CE850411F85EB1100A85441666666168EE850410000005001A8544148E17A248BE850411F85EB1100A85441AE47E18A8AE8504185EB515800A854417B14AE678AE85041AE47E14A03A8544185EB515889E85041B81E85FB03A854411F85EB3188E85041B81E859B06A85441C3F528BC87E85041A4703DAA07A85441B81E850B87E85041CDCCCC9C0AA854419A99998986E850417B14AEB70BA8544114AE47C185E85041CDCCCC8C10A854415C8FC2D584E850415C8FC26516A854411F85EBB184E8504185EB517818A854418FC2F51884E85041E17A14AE1AA85441AE47E1BA83E850418FC2F5F81FA854411F85EBD183E85041D7A3706D23A8544114AE470184E8504114AE472125A85441EC51B8AE83E850419A9999E925A8544148E17AC486E850411F85EB312AA854418FC2F51884E850410AD7A3C02EA85441C3F5283C84E85041295C8FF22FA85441CDCCCCCC85E850411F85EB2130A85441EC51B84E86E85041C3F5288C30A85441EC51B84E86E8504114AE473131A85441EC51B86E85E850419A9999F931A854410AD7A31085E85041713D0A6733A854418FC2F51884E85041CDCCCCDC33A85441EC51B88E84E8504114AE470138A854419A9999E983E85041F6285C3F39A85441B81E85AB82E8504114AE47A13AA85441C3F5285C83E85041F6285CFF3AA85441295C8F0287E85041713D0A473AA85441D7A3701D89E85041D7A3703D3CA854410000009088E85041C3F5289C3CA854416666662688E8504152B81E353DA8544148E17A8488E85041CDCCCC2C3EA854411F85EB3188E85041295C8F4241A85441295C8F2287E850418FC2F56842A854419A9999898AE8504152B81E8546A854415C8FC2858CE85041713D0A0748A85441C3F528AC8DE850415C8FC23548A85441000000D08DE85041000000C047A8544148E17A3490E85041C3F528CC47A854417B14AE3791E85041666666E648A854411F85EB8192E850413D0AD77349A85441EC51B85E92E850410AD7A37048A85441CDCCCC9C93E8504152B81EA546A85441CDCCCC9C93E850417B14AE1746A85441295C8F7291E85041C3F5282C45A85441CDCCCCFC90E8504114AE471144A854411F85EB6190E85041000000D043A85441B81E85FB8EE85041CDCCCCDC3EA8544185EB51788FE85041D7A3701D3DA85441B81E859B8FE85041295C8F223BA854415C8FC20590E85041B81E852B3AA854415C8FC2258FE85041A4703D5A3AA8544114AE47518EE8504114AE47C139A85441EC51B8DE8EE850410AD7A31039A85441B81E85BB8EE8504185EB518836A854410AD7A3608FE85041333333E335A85441EC51B89E90E85041B81E85AB36A85441C3F5282C91E85041333333E335A8544148E17AD492E85041AE47E11A35A85441EC51B83E93E85041E17A143E35A854416666669693E8504152B81EA534A85441D7A370ED94E850419A99997932A854413D0AD71398E85041B81E859B2AA85441713D0A3798E85041A4703D3A29A85441B81E854B97E850418FC2F5F826A854417B14AE9795E85041EC51B8CE24A8544114AE47E196E85041B81E850B22A85441B81E852B98E85041713D0AF722A85441713D0AF799E8504148E17A8423A85441EC51B8CE9BE850416666664622A8544185EB51789FE85041A4703D5A18A85441B81E855BA7E850413D0AD7B307A8544152B81EA5A9E85041295C8FC2FFA754410AD7A370AAE8504114AE4761FDA75441295C8FE2AEE850411F85EBE1F1A75441A4703D9AAFE8504148E17AF4EFA75441EC51B86EB0E85041295C8FE2EDA754417B14AE07B1E85041295C8F02EDA7544114AE47C1B0E85041A4703D5AEBA75441F6285CFFB1E8504185EB51F8E9A7544148E17AA4B2E85041CDCCCC2CE8A7544185EB5178B3E850410AD7A390E6A75441F6285C9FB4E85041713D0A17E5A754418FC2F508B5E8504152B81E05E3A75441C3F5280CB6E85041E17A14FEE0A7544100000010B7E85041F6285C2FDEA754411F85EB11BAE85041713D0AC7DEA754413D0AD793BAE85041C3F5285CDCA75441666666F6BAE85041666666A6DBA754410E0000009A9999A997E8504100000010EAA7544152B81EE597E85041F6285C5FE9A754410AD7A31097E85041C3F5283CE9A754417B14AE7796E85041EC51B8AEE8A754413333338396E85041B81E85ABE7A754410000004097E85041F6285CBFE6A75441B81E854B97E850413D0AD7D3E5A754415C8FC29598E850410AD7A3B0E5A75441EC51B82E99E8504133333323E5A754418FC2F59899E85041C3F528BCE5A75441A4703D1A9AE8504152B81E15E8A754415C8FC27599E85041000000F0EAA75441D7A370AD98E8504133333313EBA754419A9999A997E8504100000010EAA754410C0000001F85EB6193E85041B81E855B2CA85441CDCCCCBC92E85041E17A146E2EA8544114AE47D191E850411F85EB412FA85441C3F5284C90E8504148E17AB42EA854417B14AE5790E85041B81E853B2DA854417B14AE3791E850417B14AE872BA854417B14AE1792E8504185EB51782AA85441F6285C2F92E850411F85EB7128A85441D7A3706D93E850415C8FC26528A854419A99995994E85041B81E85BB29A85441A4703D2A94E85041D7A3701D2BA854411F85EB6193E85041B81E855B2CA854410D000000EC51B8AEEBE850411F85EBD143A754418FC2F5F8ECE850411F85EBD143A7544166666686EDE8504114AE472143A754410AD7A310EDE85041713D0AB742A75441F6285C3FEDE850415C8FC23542A7544166666666EEE85041C3F5289C41A754419A999989EEE85041A4703DFA41A7544148E17AA4EFE850413D0AD79342A7544148E17AA4EFE850411F85EBF142A754411F85EB51EFE85041713D0A9743A75441F6285CFFEEE85041AE47E14A45A754419A9999C9ECE8504185EB51F844A75441EC51B8AEEBE850411F85EBD143A7544112000000AE47E18AF2E8504114AE478140A75441A4703DDAF1E8504114AE47A13FA7544185EB5138F2E850410AD7A3F03EA7544185EB5118F3E850418FC2F5F83DA75441EC51B83EF4E8504185EB51483DA754419A999959F5E850418FC2F5183DA75441B81E859BF7E85041713D0A273AA7544114AE47F1F8E85041CDCCCC7C3BA7544152B81EE5F8E8504148E17A743CA754418FC2F528F8E850411F85EBE13DA754417B14AE57F8E850413D0AD7133FA75441CDCCCC1CF8E85041295C8F5240A75441B81E85BBF6E850410AD7A3B040A75441F6285CCFF5E850418FC2F59840A7544166666636F5E85041B81E85CB41A754410AD7A3C0F4E85041333333E341A75441E17A148EF3E8504114AE478140A75441AE47E18AF2E8504114AE478140A754410C0000001F85EBE1F7E85041B81E85BB35A75441AE47E15AF9E8504185EB519835A75441AE47E15AF9E85041D7A3703D36A754411F85EBA1F9E85041C3F5286C36A7544114AE47F1F8E850411F85EBE136A75441295C8F92F8E85041F6285C6F37A75441295C8F92F8E8504114AE47F137A7544114AE4731F7E850415C8FC2E537A75441C3F5288CF6E85041EC51B89E37A75441AE47E10AF6E85041B81E859B36A754413D0AD7A3F6E850419A99991936A754411F85EBE1F7E85041B81E85BB35A754410B000000C3F528BCB2E850411F85EBB1BEA75441E17A14EEB3E85041C3F528BCBAA75441CDCCCC4CB4E85041CDCCCCDCB9A7544152B81EF5B5E850417B14AE17BAA7544152B81EF5B5E850410AD7A3B0BAA7544185EB51F8B6E850418FC2F578BBA754419A999979B7E85041666666A6BEA7544133333353B6E85041EC51B82EC1A75441D7A3701DB4E8504114AE47A1C0A7544133333393B4E8504152B81EB5BFA75441C3F528BCB2E850411F85EBB1BEA75441110000000AD7A340A2E850415C8FC2F5FAA75441E17A14EEA1E8504148E17A04FCA75441E17A140EA1E85041C3F528FCFCA75441B81E85BBA0E8504185EB5148FBA75441666666F6A0E85041D7A3702DFAA7544100000090A1E850418FC2F578F8A75441EC51B89EA2E85041A4703DAAF5A7544185EB5138A3E850411F85EB41F2A75441666666B6A2E85041F6285C0FF1A754415C8FC2C5A3E8504166666696EFA754418FC2F5C8A4E85041EC51B87EEFA754419A999979A5E850417B14AEA7EDA75441CDCCCC7CA6E85041333333D3ECA75441333333A3A7E85041333333D3ECA7544166666616A7E8504185EB5118F0A7544133333393A3E85041B81E856BF8A754410AD7A340A2E850415C8FC2F5FAA7544109000000CDCCCCECAFE85041333333D3DAA754418FC2F538AEE850411F85EBE1DBA7544166666606ADE850413D0AD783DBA7544148E17A44AEE85041713D0A97D6A75441B81E856BAFE85041E17A14AED6A7544114AE47E1AFE85041295C8FA2D6A754418FC2F5D8B0E85041CDCCCCECD7A754411F85EB91B0E8504152B81E95D9A75441CDCCCCECAFE85041333333D3DAA754410E000000C3F5280CB6E8504100000010D8A754410AD7A300B6E8504152B81E15D6A75441E17A146EB7E85041CDCCCC8CD3A7544166666656B7E8504166666646D3A75441EC51B81EB8E85041295C8F22D3A7544166666636B8E850418FC2F518D0A75441E17A142EB9E850413D0AD793CEA7544148E17A54BAE85041295C8FF2CEA7544100000060BAE85041EC51B8AECFA75441713D0AE7B8E8504166666686D1A754419A999959B8E8504133333343D2A7544114AE4771B8E850413D0AD7D3D3A75441EC51B83EB7E850410AD7A300D7A75441C3F5280CB6E8504100000010D8A7544114000000A4703D8ABCE8504152B81E15C4A7544100000020BCE850410AD7A300C5A75441D7A370ADBCE85041E17A146EC6A7544148E17AD4BDE8504114AE47D1C4A75441713D0A27BEE85041295C8FC2C3A7544185EB51A8BEE850415C8FC2E5C3A754415C8FC255BEE850418FC2F5C8C5A75441A4703D4ABEE850418FC2F588C7A75441B81E85EBBDE85041C3F5286CC9A754417B14AE17BDE850419A9999D9CAA75441295C8F72BCE8504100000020CBA75441D7A370EDBAE85041C3F5282CCBA7544100000060BAE8504166666616C8A75441F6285C8FBAE850415C8FC285C6A75441C3F5284CBBE8504166666656C6A75441C3F5286CBAE8504133333373C4A754419A999919BAE85041713D0AD7C2A75441F6285C8FBAE85041B81E859BC2A754411F85EBE1BAE850411F85EB11C3A75441A4703D8ABCE8504152B81E15C4A75441
+</a>
+
+<b>
+0106000000010000000103000000060000007D06000085EB51789FE85041A4703D5A18A85441DE67662699E8504140F4287C16A85441516666F69DE850418990C25506A854418072C8DEA0E850419437D9F6FBA754414B8F28DCA0E85041704CC7DFFBA75441DB5F26CCA0E850415E9E1053FBA754410B25D710A1E85041F87C01B3F9A754417E6D208DA1E85041DF55EA3BF8A75441926A88ADA2E85041EF4EC6A7F5A754416FE3E6E4A2E8504112DE9A26F4A75441BA8B6C34A3E85041F256A368F2A75441EA25A3E6A2E850414159C281F1A7544174F2DEBEA2E850419275BA0BF1A75441111CD9B7A3E8504145355DAFEFA75441043B9DD8A4E85041D24B736BEFA75441A7B45B8AA5E85041DDAA94C0EDA75441B9A59575A6E8504167F079E7ECA75441DBD747A1A7E85041D51AD4C1ECA75441A86D68EFA9E8504108396FA2E7A754415A28DB9FADE850419052A4E0D8A75441C95A607DADE850415BD28FB8D8A754411B681BC8ADE850418C53A33FD8A754412CEB4635AEE850419C4BF58AD6A75441BC039D8CB3E850412FE6E15DC6A754416476F5E8B4E85041471780ECC0A7544178CB9B20B4E85041D2B777A1C0A75441CA59317BB4E85041A06E1EA7BFA75441D561BF1BB4E850413A189A49BFA7544105DFB2B3B2E8504133D2BDA0BEA754418789443BB3E850411DBAEEEDBCA7544107C08DEEB3E85041311EE9AEBAA7544105FDE224B4E8504170302986BAA75441B3F15E68B4E850411A5794CCB9A7544152CFA7ECB5E8504159F4D40EBAA754418B2D8CF7B5E8504143AC3EAFBAA7544176AB84F3B6E8504131BEA06CBBA75441BBF853FDB6E85041A06A191DBCA754411435C172B8E85041C7FE6A74BAA754412B7199C4BEE8504193C9E549B3A75441268479A8C4E8504151CA8CB8ACA75441CDCCCC8CC4E850415C8FC2A5ACA754413D0AD733C2E85041D7A370DDABA754415E20B3D2C1E85041A26E4373ABA754413B632917C1E850416EB005CAAAA75441F3769CECC0E85041D09012BAAAA75441E17A14FEBFE85041C3F5287CAAA75441333333E3BEE85041E17A143EA9A754418E8E8519BFE8504103FCB7D7A8A75441DEEB8132BFE8504162335F89A8A75441624B8440BFE85041B7F93C8EA8A7544114AE4741BFE85041CDCCCC8CA8A75441F6285CBFC1E85041295C8F32A9A75441A484BBD1C1E85041AFC409F7A8A75441DC0DE60DC2E850413B0B3127A8A7544100B28A05C2E850416412C124A8A754416CD3FE48C2E8504137E192BFA7A754419D70C0E3C5E8504173063E2EA2A754411DF2E65CC6E850415F89326FA1A75441234CF0D0C9E850416558411B9CA75441CD0A0BE1C9E85041EB80B5049CA75441768DC13DCAE85041BB1880759BA75441E71C7A22CAE8504155581F1C9BA754417150CA01CAE850415F7EE5C39AA7544149035E21CAE85041F59EC0A39AA7544114AE4771CAE85041000000309AA754418B2905C4CAE85041898442DD99A754419F6588FDCAE850419ED4F67A99A75441BEB02726CBE8504139928F6A98A75441531D99B6CBE85041838D467097A7544190D81CDECAE85041FAC9E29F96A754410AD7A3A0CAE850419A99996996A754410BF68EABCAE85041CD4B771D96A75441AF0BBBA5CAE85041F7B24AEA95A75441AE78CFD6CAE850410051517C95A7544132439B70CBE8504143D115B994A754410439AA29CCE85041971E090293A7544198BB9691CCE850410BFE915292A75441713D0AA7CCE8504114AE472192A75441EAEBA1B1CCE85041C7B4771C92A75441D77BBDB3CCE8504136B5E81892A75441C0B619E1CDE85041342A517191A75441075233A8CEE85041DAAB518C90A75441754BBE4FCFE85041CA41C4A48FA75441A4703D6ACFE850415C8FC2758FA754414AFBD578CFE85041A989F96B8FA75441ABE42784CFE85041987B545C8FA75441BDA89DB9D0E85041B42D797D8EA75441E1C77FE9D0E85041C29D705B8EA754411C265B4DD1E85041AD8ADF318EA75441E1FA6E50D1E85041C95ECF2F8EA7544165F0206FD1E85041F21C9B118EA75441AE47E10AD2E8504185EB51488CA75441AE47E16AD4E8504185EB512888A75441F6285CBFD5E850418FC2F54887A75441B8D68FA0D6E850412DC0E02487A754419DECF586D6E850416B2A4FE986A75441E17A145ED6E85041EC51B89E86A754418A7C1877D6E850412947C95386A75441547AE07CD6E85041BD0BA92586A75441AFB2B6EAD6E8504118EEF7C884A75441A591E20DD7E850416C68B9EE83A75441ECB43F28D8E850412E69D64584A75441B576632BD8E8504141FCC94E84A7544152B81E35D8E850411F85EB5184A754414900E257D8E85041334EA5CD84A754414CC7A176D8E85041065D502585A75441EC51B8AED9E85041E17A140E85A75441EB1287BED9E8504199088F1F85A7544196FA22D5D9E85041017C831E85A754413F14BB65DAE850419B0870D885A75441EC51B88EDAE850415C8FC20586A75441B550EA8DDAE8504166B51B0C86A75441E74A0C9EDAE85041312CDA2086A75441B3A07183DAE85041C65AB75E86A754411F85EB71DAE850418FC2F5E886A754411F85EBC1DBE85041A4703D2A86A754415C8FC285DDE85041295C8F6284A75441AE47E10ADDE85041D7A3705D84A754414E7C2600DDE85041B841403D84A754415C5642F6DCE8504106C8633B84A75441876491BDDCE8504162FA807583A754411B16A799DCE850411D0FC20983A7544127B64A8ADCE8504133268BE582A7544133333313DCE85041CDCCCCEC81A75441A4703D7ADBE85041E17A14FE7FA754418E74C516DBE8504126059C867FA75441B000EFFCDAE85041E3927D6A7FA75441ADEEA5CCDAE850415BAB24437FA75441A5032926DAE85041CAE18FC27EA754416E76F9BDD9E85041783F55747EA754410F63DBF5D8E8504165C9C98C7DA754413D0AD793D8E85041333333237DA7544168C2F7AFD8E85041C78C8B0D7DA75441F201C51BD9E85041A29ED79E7CA75441579F21FCD8E85041B8DCA81B7CA75441687C1DDCD8E85041243B1FAD7BA754412F390BE4D8E85041150C9B817BA754413D99A2E1D8E850416EEA534F7BA754418124C96DD8E850419AF965727AA75441D00275AAD9E85041B65B71697BA754417E5A5288DAE85041785DD70F7CA7544194848491DAE850417CD82A167CA75441045E98DFDAE85041213D763A7CA75441AE47E14ADBE85041333333437CA754410AD7A3C0DBE85041A4703D8A7CA7544162F5B8C1DBE85041CDC9349F7CA75441F76415CBDBE85041E93A41A57CA75441EDBA89C6DBE85041ECA079FC7CA75441CDCCCCCCDBE850415C8FC2757DA754414BC4C0BEDBE8504160A0DA917DA754419FB95EBEDBE85041E2D933997DA75441B79DB4A8DBE85041AC4086F57DA75441F03D17CFDBE85041F79AEE327EA75441F6285C1FDCE850410AD7A3907EA754413953EF7FDCE85041C33941BC7FA754418B8238A4DCE85041575871DD7FA7544185EB5178DEE850415C8FC21580A754410AD7A340DFE85041F6285C7F80A75441A20240C1DFE85041534A40BA7FA75441584750EFDFE8504164AC2D697FA7544123497CE5DFE85041B1AFE2437FA754418A1E17B9DFE8504152AC62C37EA75441DD9C6732E0E85041241F41477EA754414DD85F8DE0E85041B21CD9857DA754411C3624ACE0E8504124237A6D7DA75441E17A14AEE0E850419A9999697DA75441713D0A67E0E850410AD7A3F07BA75441AE47E1AADFE850418FC2F5F87AA754417B14AE87DFE850411F85EB017AA75441BAE9708DDFE85041C8EB37E979A754413B34CF89DFE85041699CFADD79A7544155A9F8A7DFE85041F022777779A75441666666B6DFE850419A99993979A75441CB7A60BBDFE8504182A7823579A754414CED39C1DFE85041152CA12179A75441C0B67A8FE0E850414FDD055278A7544127616EBEE0E85041E455EF4378A75441E678247EE1E850411F462DB077A7544116725DA5E1E85041CFAEF1C676A754411ADE23EDE1E8504172FE0B4076A75441EBCDF3A9E1E850410D38F1CC75A75441AE1D77A2E1E85041D8510BC375A75441F418D542E2E85041DACDA5A775A75441CDCCCC9CE2E850416666669675A75441D97DBDCEE2E8504182A922B675A75441A7823E4EE3E850418CB9ADE475A75441D0BD17ACE3E850413963275776A75441295C8FF2E3E85041E17A148E76A754413189A45EE4E850418BE7A99776A754413C415AC1E4E85041F8B2776676A754411F85EB01E5E85041B81E853B76A7544119F35880E5E85041593BA2CB75A754415C7799D6E5E8504177FA156C75A7544105A22521E6E85041DC3535B674A754412B998E3AE6E85041325E6D6D74A75441FCA10222E7E850417E0561B773A7544173BFFFBFE8E85041C9380A5272A7544155837612E9E8504125A88A1472A75441233BC668E9E85041172E8AD171A75441DD4342D5E9E850410BD9D47C71A754415A70D6D4EAE85041CB7B22E270A75441EF6CD3B1EBE85041B6D3FD2D70A75441E67AB611ECE8504194A39D2770A75441A2D6F271ECE850414C6B380A70A7544189C46F50EDE85041140C024E70A75441503DAD9CEDE85041EAF08C0A71A7544148DBFCFDEDE85041F3CB5CE271A754419E6AE27DEEE850411FF9C89072A75441A9B0810CEFE85041A4F3F63672A75441331C4DA1EFE850411A8DDBB471A7544136B86EB7EFE850418C4F232A71A75441C3F528BCEFE850410AD7A3C070A7544132B080CCEFE8504158B911A670A754413B15D3D0EFE8504191CDFA8A70A7544179F79713F0E85041C46B7C3270A75441A4703D1AF0E850417B14AE2770A7544110A7347CF0E85041B2B5ACF76FA75441606D332AF1E85041E612399D6FA754416A5EFE65F2E850411BD0B7F06EA75441770A6442F3E8504131B062556EA75441EA43EE4DF3E85041F19EA8366EA7544185084D9FF3E85041A382BC3E6DA754413D0AD723F3E850411F85EB316CA7544148902E24F3E85041742BA7286CA75441A5F53920F3E85041D687D8206CA754416B3D7F28F3E8504196A0B0B36BA7544100000030F3E8504185EB51E86AA754415C8FC2A5F3E850415C8FC2B569A7544131DA358AF4E850417B6AA0A568A7544141AF47EFF4E8504197936DE867A75441DC3A6CF5F5E85041A5200B6067A75441C5573D8FF6E85041B1DEA63967A7544104C3F279F7E85041D0F8AB1D67A754416743E8A6F8E850417AE302EA64A75441ED2A46EFF8E85041CD11475964A754411B9A0BE3F8E850416149193864A754417F5A9791F8E85041C540FA9863A754412CD81171F8E850416C4505DA63A7544129B7082AF8E850415CCEFEEA64A754414993BFC8F7E850416E03CE4665A75441757C8F47F7E85041B21A641F65A754410AD7A380F6E85041C3F528EC64A754415C8FC245F6E8504148E17AF463A7544190226E52F6E85041AA6268E263A75441F8F71F52F6E8504194F21EE163A7544192BA539FF6E85041C4B0036163A75441C5E705F0F6E85041CFECAD3762A75441333333D3F6E85041713D0AA761A754410AD7A380F6E85041E17A14EE61A75441603EB552F6E85041027643D961A754412418BF4BF6E8504105AC4DDC61A75441555F3E29F6E85041C7C778C661A75441EC51B8FEF5E85041333333B361A75441F742D0B6F5E8504186642EAA61A754417F8E6A34F5E85041A15C51B461A7544110D3B710F5E85041B365DFF561A7544126602A02F5E850413AB58E3362A75441CD9C4FECF4E85041F5E82A0862A7544166666656F4E85041CDCCCC3C61A754418FC2F5A8F4E850419A99993960A7544120476E03F5E8504197A2572E60A7544163D089B5F5E85041D67AB90E60A754414D40BA04F6E850416BCC92D45EA7544183F88249F6E85041DEFAD5A75DA75441A38DB14FF6E850411B22C4AC5DA7544114AE4751F6E850415C8FC2A55DA75441E17CA8FDF6E8504144F981375EA754416A2F838AF7E85041EBC7D7A75EA7544114AE4711F8E8504114AE47915EA75441F331603EF8E85041165D93DC5EA75441940E9C44F8E85041688CDEE25EA75441BA21B350F8E85041F0BD2BFB5EA75441D88F7A97F8E850417C7359715FA7544180430BFBF8E85041C901DCD35EA754415DF8E6CEF9E8504126161D4B5DA75441EAE984FDF9E85041BF8B2FED5CA75441C3F5280CFAE85041A7F441AA5CA75441C3F5280CFAE85041000000505CA75441C3F528ECFAE850415C8FC2C55CA75441E17267E7FAE8504199B8266E5CA75441C122B4D4FAE850411DB276DA5BA754413CF2551EFAE85041998118245BA75441C38341DDF9E85041A43D39EA5AA75441A5CEDCD3F9E85041025E9FD95AA7544114AE47D1F9E85041713D0AD75AA7544190FE10B1F9E85041B076209C5AA7544141387277F9E85041FF354B365AA75441BF4C0B7AF9E85041A080A3A959A7544184049DBAF8E850412CE99CE659A754411647AB92F8E85041D6917EFD59A75441229EF38AF8E850415D48CBF559A75441713D0A87F8E85041713D0AF759A75441F89A9C7EF8E8504133437BE959A75441AC810D41F8E850418E0B0FAC59A75441171A4714F8E8504127FBA0FB59A75441AF718507F8E850413D81AC265AA75441C16FE8EEF7E8504130D84D6B5AA75441877E35D1F7E8504177461DB05AA7544167DDD4B2F7E85041B08C11F75AA75441AE1C6F86F7E850418E1E43235BA75441ADE4547DF7E850413F60E0075BA754417B14AE77F7E850411F85EB115BA7544186D19942F7E85041998B2D575AA754413007142FF7E850418817711C5AA7544185EB5198F6E85041333333B35AA754410C92F919F5E8504103D6B30659A754416EF1FA5BF4E850410FD33E3858A75441DF4D2E58F4E85041490E842D58A7544166666656F4E85041B81E852B58A754412B036E54F4E85041E327EC2258A75441D9A8184FF4E850413259DC1358A75441925B3246F4E850417BB9D5EE57A75441A2B8F945F4E85041476ED9E357A7544133333333F4E850411F85EB9157A754412A54975EF4E8504175CAFA7757A754418A812067F4E85041FB572F6757A75441850707DCF3E85041B6FB70D056A75441586BAC39F3E850417BB0966556A754415AE7C873F3E850416CD6916156A75441CA861A4CF3E85041E05C6C4156A754411248F52AF3E85041BCC8FEA055A7544133333373F2E850410AD7A35055A75441EBA42F74F2E8504140937D4F55A75441D4D59F6EF2E850413BD5AF4D55A7544150EBC68FF2E85041EB2D542F55A754417B14AE47F3E850418FC2F55854A75441042B3D6DF3E8504119D9847E54A7544134A5D6BEF3E8504173D99CA054A75441BE6BFECFF3E85041E858459154A754414A24F47DF4E85041B4501BE753A75441B2D3B2E2F5E8504135D511D753A7544168E752E4F5E85041926DDBD753A75441713D0AE7F5E850417B14AED753A75441226960EBF5E85041B23846DB53A75441534E262FF6E850417A7D1CFC53A7544189D203E5F6E85041770F20F853A75441B83E3421F6E8504177C4E39053A75441E522440DF6E850411EEC038853A75441F7C44E0FF6E85041AA51748753A75441AE47E10AF6E8504152B81E8553A7544148E17A14F9E850410AD7A3B052A75441D5935E17F9E85041367A37B252A754417CA08F27F9E85041EB8BC4AD52A7544165D61C6BF9E85041F57FD0D452A754410CB90A9FF9E8504159BF9BF152A754411021E312FAE85041D93F263953A75441C37E18F3F8E85041EC2C151152A754417DF15E6EF8E850414283C59051A754418AFA9F2FFAE85041757B24AD51A75441AE47E13AFAE85041D7A370AD51A75441AE47E13AFAE85041CF72EED750A75441E13D6E20FAE850413612B4BB50A754414FE86608FAE850411F0FA6B150A75441D7A370ADF9E85041A4703DAA50A75441CDCCCCFCF8E850419A9999F94FA75441AA0562DEF7E850411DBFE4844FA754418F571EB9F7E850418B33A5774FA7544111BAF86EF7E850417BFF78624FA75441AB078EE9F6E85041BA9705D74EA75441559542A3F6E85041BEEA7CD84EA7544185EB5198F6E8504185EB51484FA7544177B09496F6E85041520D2E484FA754415B5D4E96F6E85041CEFF8A554FA75441B3031119F5E85041871C153F4FA75441B35D82EEF4E85041378F7F3A4FA75441A9D92410F4E850417AD63F1B4FA754410F6036EAF3E8504191000C114FA75441D7A370BDF3E85041D7A3700D4FA754415C8FC2A5F3E85041CDCCCC5C4EA75441A53B79E0F3E850412C0A17D34DA75441E094AEEBF3E85041B3576AAD4DA75441ECEEC3E0F3E85041C20803C34CA7544122C203C5F3E8504155A1E0D54BA75441F8C11FB2F3E850417FD894C24BA7544114AE47D1F2E850419A9999994BA7544127EB720AF2E85041B663C4B74AA75441B6C696D7F1E85041FC85647F4AA75441AB6B77C5F1E850415773896F4AA75441C0005C2FF0E8504143BFD4C249A75441372E27E7EFE85041FF0F87AE49A754417E969F63EFE85041DFE0682A49A75441D08E8636EFE850415A4A943F48A754418118464AEFE85041361C542548A754415C8FC245EFE85041E17A140E48A75441EC3F2B68EFE85041A7D9A60248A754415C963E10F0E8504119A9F7B147A754413FFFCBF2F0E850417600418746A75441DFFDB1C6EFE850419DDD75DB45A75441163C878CEFE85041DFF4F7B045A754419A999969EFE85041D7A3709D45A7544123E73D6FEFE85041840DC98B45A754410CF6305CEFE85041AC2D843B45A7544171269CC2EFE85041FBFD985D44A754419371EDC1EFE8504174482C5A44A75441177C5CB8EFE850419F3DF46644A75441654166C1EFE8504154E2855744A7544160A4F2B8EFE85041947A1C2D44A754413CDC6F8AEFE850419E1015B143A75441198D3CFDEFE85041776E35F542A754411FEDD566F0E85041AA9077BA42A75441E17A14EEF0E85041CDCCCC4C42A754414E401E18F1E85041C29BD95742A754415C3C7C25F1E85041480F6A5042A7544179BCBD26F1E8504127FA574E42A75441587E9DA9F1E85041E84F187E42A75441E17A14CEF1E850417B14AE8742A75441295C8FA2F2E8504114AE472143A754419666D2A7F2E85041E6F5113343A754418AA8CF1AF3E850417332EB4E44A75441349042DDF2E85041BB8EC6AC44A75441F6285C7FF2E85041A4703D7A45A75441870F8BB7F3E850412AF0D80148A754417A066BBEF3E850419200880E48A754415FC920E1F3E8504124B28B1E48A75441F0D554F6F3E85041B3C9E92048A754413D52AA7DF4E85041E9BCC46648A7544117CFF7DFF4E850417D891F9448A7544102510E2CF5E85041B81E859B48A754413D0AD7A3F6E85041B81E859B48A7544154131FDBF6E85041F2A37EC848A75441A2B68D02F7E85041C2B331E148A75441747EA535F7E85041BAB8F20C49A754410640D553F7E850418364B32A49A754410AD7A360F7E8504152B81E3549A75441C4502662F7E85041FBC5CF3849A754414D80466BF7E850417660CE4149A754418227C2C4F7E850415D3511134AA75441205B9C9EF7E8504148F4DB5E4AA7544192342873F7E85041F18C8BB24AA754417C2A8886F7E8504151A00F454BA7544122551483F7E85041FC92EA414CA75441287F98ABF7E850417C6C64594CA75441C7DC73B2F7E850410EC8F3334DA754416464419DF9E85041E7689D484DA75441CCD0444DFAE85041132F6EFB4CA75441EC51B85EFAE85041F6285CEF4CA7544133333303FBE850411F85EB414DA75441E17A141EFCE850413D0AD7E34CA7544192DD102AFCE850410EF582E64CA7544179319E42FCE85041365984DD4CA7544100C61B87FCE85041AEFD3FFB4CA7544185EB5188FCE85041B81E85FB4CA75441B1CB2B88FCE85041A814B6FB4CA75441D239BB8FFCE850412649FEFE4CA754413CB1FB41FCE850419A65D9554DA754410AD7A390FBE850419A9999394EA7544131CA2675FBE850417DF6AC3A4EA75441AF4A1A71FBE850415EE1323F4EA7544119C8C06DFAE850413CC4924E4EA75441D7A3708DFAE850413D0AD7A34EA75441BCBE5F9CFBE8504150AC1EAC4EA7544135A4C210FCE85041BA6933A54EA75441D986C027FCE8504122047BBD4EA754412F66F220FCE85041DD418D1F4FA754417E0446B9FBE850413E063D644FA754411BD23873FCE85041A5B9B9924FA75441A579DC98FCE850419C9921984FA75441CEDBAE11FDE850412D85FD554FA754412F16E774FDE85041158353194FA7544108EF049FFDE85041D0D024F94EA75441D07F8BBEFDE850416F078F114FA75441F57B63B4FEE850419A9999194FA75441D7A370EDFEE850419A9999194FA75441716CC7EEFEE850411A88821B4FA75441921D61F7FEE85041F58BCA1B4FA75441E147CA0EFFE85041F7512B494FA7544100000040FFE85041F6285C8F4FA75441572CA3B7FFE85041A3CDDD2350A7544158FBC1EAFFE85041ED889E5550A75441F410F47500E95041FFC5F70651A7544121B5551F00E95041D53E52B951A7544185EB510800E950413333330353A75441C3F528DC00E95041295C8F1254A75441A5E391DC00E9504136A47C1454A754415E1C09E100E95041A182221A54A754417F617CE400E95041CC5AB33954A75441516B8E2901E950419427687E55A754411E79D64F01E95041D3B116FF55A754411732B07001E95041BE3A9E5156A7544185EA663902E95041F94106D556A754413974E3ED02E95041D189AF7856A754411C6ECAF002E950410024397856A754416666660603E95041B81E856B56A754416FA0A85E03E95041D30FB76656A754415C8FC2E503E95041C5952F5156A754415C8FC2E503E95041EC51B8AE55A75441A4703DFA02E95041CDCCCC0C56A7544194750BFA02E9504119049E0156A754414BD03CF402E950412FDF3A0456A754414FAA21F802E95041E8B3079455A75441236F74F002E9504149A153DC53A75441C84460E902E95041D1D12F7553A754416666662602E95041B81E85EB52A75441713D0AD702E95041CDCCCCFC50A7544148E17A4404E9504114AE471150A75441E2AA465704E95041FA64F31250A75441A5F5B75A04E95041912B121050A75441B386AA9F04E95041B7AB621950A754417B14AE4705E9504185EB512850A754419B86637F05E950417B19344650A754410167AF2E06E95041E1178D8150A754411AF6603607E950417A27552951A754416F6B2C7B07E95041AB9A970652A75441EC51B8FE07E9504185EB51E851A754419A99991909E950411F85EB8152A754414812A84209E95041F28460D752A75441B2A21BBE09E950410D4CC29053A754417D191CAB0CE95041194FBF9350A754410271C9560DE95041095738D04FA754411CA36EA30DE95041ABF41D964FA75441058C10F60DE95041F4E1B7414FA75441DA00F2DB0DE950417EF55B434FA75441B81E851B0DE95041C3F5286C4FA75441F729B0170DE95041420C7F644FA75441F2E6F8070DE95041289DA7684FA754412C2C99DF0CE95041CCB0D3E74EA754412FAA00390DE950413F131D964DA75441A4703D4A0DE950411F85EB414DA75441AD1D5A270DE95041DEFBA02C4DA75441E656CB6C0CE9504103C12CC54CA75441E17A14CE0AE950418FC2F5884DA754411F85EBE109E95041EC51B81E4DA7544185EB517809E95041E17A146E4CA754415D3E5BD908E95041E3E1E4294CA7544129BEAF8208E95041AEAAC9084CA75441A9F7BC7B08E95041F9917FFC4BA75441333333F307E95041000000304BA75441000000D007E95041666666964AA75441402B79DF07E95041467DA2624AA754416CB70DF007E95041077661A549A75441C1E5D7AA07E950419488749B49A754417AB69AA007E95041E721AC9C49A75441E3214B9D07E950413013839949A7544114AE477107E950413333339349A75441DACD8D1D07E95041BE09941F49A75441C8AEE60E07E950413068971149A7544148E17A2405E9504152B81E3549A7544117AD190005E95041E8D0AF0449A754412E635AB104E95041B35C5BBC48A75441CE47420C04E950415F47779448A754410680847003E95041411EEEC647A75441F6285CBF02E95041B81E85BB47A7544152B81E3503E950411F85EB5147A75441BC6C762503E95041845BAC0B47A754419DDCD20B03E95041110874E446A75441C3F5289C02E95041000000D046A75441A4703D3A01E950411F85EB9145A75441EEBB7B0801E950418ECA5E9D45A754417C4111BE00E95041B37F5AC645A7544102C74DB100E9504103B96EB145A7544114AE47A100E9504152B81EB545A75441F6285C1F00E9504148E17A0445A754417584823100E95041396FE8CA44A75441FA1D995500E950413030683144A75441E08AE20300E95041DB54D5D842A754412B93D2ECFFE85041506D119842A754416C1BD3E3FFE85041C7ED673F42A754419A9999A9FFE85041713D0AF740A7544148E17AE4FFE85041295C8F5240A75441FB3882D3FFE850419B980B3940A75441DB4DB4CEFFE85041A8C0B03C40A75441E093C63CFFE85041D2E06E563FA7544185EB5128FFE850417B14AE373FA754417543C828FFE85041ADCFE2363FA75441579BDC27FFE850415DF96E353FA754418780C331FFE85041DA9975273FA75441F6285C1F00E95041F6285C8F3DA754410AD7A3F0FFE8504152B81E253DA75441698039F5FFE85041A5BF46003DA754416C4C1D0700E95041BE9BF4EE3BA7544197C3346C00E9504167AEDD6F3BA754417A0D8F4D01E9504199665B623BA75441C6217F9701E950415CE182673BA75441F6285CDF01E9504152B81E653BA754411A498FF001E950416448B86D3BA7544191D9B6FB01E950413A587F6E3BA75441C648492602E950413A4895883BA754418FC2F55803E950411F85EB213CA75441AE47E1AA03E9504152B81E253DA75441CDCCCC2C04E95041F6285CAF3CA7544182A76B8104E95041C8F059B73CA7544102D7F48304E9504182648DB63CA754410A6BA39304E95041A55F12B93CA75441B81E851B06E95041E17A14DE3CA754418D7EDEA706E95041B23224393EA7544104C273C906E95041C249E0683EA754413CAC6AE906E95041192F48B93EA75441D4B1C90A07E950419D1743D43EA754415EC8688E07E950411E1951EB3EA7544151AF46AA07E95041F4303AEC3EA75441F60320AC07E95041409385F03EA75441CDCCCCAC07E950410AD7A3F03EA754414F720F0908E95041CB0DDD9D3FA75441036D161F08E9504147C965993FA754419A99991909E950417B14AE373FA75441E69A411809E95041F9D299403FA75441C045612B09E9504137E7F9383FA7544153B29C2509E950415BAC4DD73FA75441D331D26709E95041343D19FB3FA75441F6285C6F0AE950419A99996940A75441361315680AE9504198BBA2CA40A754412EF923750AE95041602C7B0741A754410AD7A3200BE950411F85EB3141A754415A7ABB1A0BE95041FCE56E5441A75441B5C3DF220BE9504188071C7141A75441D378F5460BE95041ABBFAFB841A754411F9573BD0BE9504114AE474142A754417063F0BE0BE9504114AE474142A75441C78E1BD90BE950417B36652E42A75441D7BCFD590CE9504114AE474142A754411F85EB810CE9504114AE474142A75441D68B1F870CE950419C99E44742A75441B6A760A50CE950417073534C42A75441E243B40C0DE95041789E43E842A75441B4C19DA20DE95041056CCA0743A754412394291D0EE95041E78D911443A75441AC79E97B0EE950414E91092B43A75441949E13960EE95041E193FD3A43A75441333333C30EE9504148E17A4443A75441469BF3CE0EE950419921AB5D43A754418AA52FE20EE950410E6E656943A75441D7D5092F0FE950413B655C0444A7544159DC20830FE9504102FF6BBC44A75441724EBA8A0FE9504140C063C744A75441F6285C8F10E9504114AE47C145A75441C15BB28E10E95041A5EF2CCB45A754417E9F9AA310E9504153AA27DD45A75441BC2E939310E950414C58170A47A754412B0900B610E95041BD48683A47A754411B88062B11E95041C52B306747A7544157C5444511E95041D22B526C47A75441220327A212E95041228B2BF647A75441295C8F5213E950417B14AEC747A75441C850577B15E9504124DD125346A75441FFC922B715E95041871B4DD345A75441221D8FBE15E9504115F4E6BB45A754413C34660A16E95041E3563B8E44A754414AB7827816E95041527A2A6743A754418389336916E95041F2CEE84243A75441CDCCCC2C16E95041E17A14FE42A75441325B2E7916E95041E6844FC742A754417C3C1DD816E950411DA5FB7142A75441B4A736DA16E9504101CC336B42A75441CEFF983817E9504129B61C2741A7544189AA543517E950414523BB0441A75441CDCCCC0C17E9504114AE478140A75441867BC13D17E950417BD2B41140A75441CF40745917E95041F7E849C83FA754416535FC6C16E95041BA04D2183FA75441DD152A6D16E950415EF9C3173FA754417B14AE6716E950413D0AD7133FA75441B62F5D8316E95041DD9517953EA754415D66FD9E16E95041C4797AF23DA75441E2A15ACF16E950419FB78AF33CA7544145262C9F16E950417442FC7B3CA754419954356316E950411AD7EB343CA754416EB238A515E95041994E27683BA75441A3143C5C15E95041390A31FD3AA75441546238A915E950412A2A73163AA75441F2081F6115E9504183BA8F8B39A754410428BC3915E95041B33C175139A754412AD0FD2E15E95041005EFE2A39A75441B1FD5D1115E95041AF38EDF138A754410A6CE7F014E95041B9F89D2039A75441787A3D0D15E950415D00FAE938A754416666660615E95041CDCCCCDC38A754418FC2F55815E950413D0AD74338A7544184AB59F113E95041FE133C3C37A75441A787538513E9504131F5ED0B37A75441BA39DD8C13E95041D83E93F236A7544177BFEF4C13E9504101D5B6C336A7544163EAF48F12E95041C2F4E06436A7544103933C9C12E95041F6E2F85636A75441CD880A9D12E9504105FEC64236A754415C8FC29512E95041D7A3703D36A75441FB969E0F12E950415B74021E36A754412074EEAA11E95041C1F6B33E36A75441AE47E17A11E9504148E17A5436A7544143E1C87611E95041C591A24F36A75441A553516C11E95041C09E085336A75441B2A43F4011E9504176B71D0F36A75441E17A14BE10E9504152B81E7535A75441869B0BB710E950417AD3567035A75441449AA19810E9504108550D6D35A75441A38C5D7B0FE9504107EBBFA734A75441AD269C8F0FE95041A1CE8EA734A7544148E17A740FE9504152B81E9534A75441A1C97F690FE95041C8CA6E7D34A754418D5709670FE95041CE76DE7B34A75441875C5E640FE95041528B5D7234A75441B9FF44D60EE950416360D63F33A75441914B93800EE95041C0EEF7B032A754410D8A40E20DE95041766A66A932A7544195A5EDB30DE95041E798FFA932A75441603F01AF0CE950418B68B69A32A7544152B81EA50CE95041A4703D9A32A7544196D7DB8B0CE95041DB54BB8732A75441970C55280CE95041285F525032A7544163F1B83A0BE950412F7C0C1932A75441BEA55A010BE95041027533D231A754414E639CBB0AE950415646022331A75441333333930AE95041A4703DDA30A75441CDCCCCFC0AE950419A99992930A75441FC60A54F0AE950413E5BF0E12FA75441B3B4309009E95041E0360BB52FA754415B53ED7E09E9504145B234C22FA75441B81E85DB07E950410000005031A754412C2249D407E950416A94B44F31A75441623CD6CD07E95041004D295A31A754410CBE7EEC06E95041D1A73A4831A75441B81AD59D06E95041B054C2E731A75441D7A3709D06E950419A9999E931A754411B02D89C06E95041DB9DC3E931A7544125F0BF8C06E95041023B670A32A754412AFB556705E950413275785C32A754413A17D04D05E95041543821AA32A75441BD0EC71C04E950419CABA0D832A754413AD25B1404E950417C17CDD232A754419A99990904E9504152B81ED532A7544132BFFDFE03E95041246803C432A754417475AEE503E95041FC457FB232A754412C76F94B03E95041F2C2A6DA31A754410FF48FB802E9504145A83DCF31A75441176E2F5002E95041160699D331A754410C8340B501E95041717F3BA531A754416666664601E95041AE47E18A31A75441D53BA04401E950414326878331A754419276824301E9504138A1318331A75441E44A3D1401E95041FE43DB0131A75441BA54BD1801E95041CD17A8CD30A75441F6285CFF00E9504148E17A6430A754415531782501E9504181A2FE3930A754416089EC2601E9504122991F2930A75441CDDCEE1502E95041F9B7320D2FA754414572112C02E9504102683E152FA754411F85EB3102E95041EC51B80E2FA75441F1FB390805E95041622F1B1430A75441848FD6A905E95041F4EC074430A7544170B498F705E950411C5D947530A754414A911E1606E950411C0DCA8430A7544176AB427606E95041EBA3F89B30A754413C9786B206E9504116765D8E30A75441C2D44F0007E95041AB9DA07230A75441A003C40C07E95041590B626830A7544152B81E9507E95041C3F5289C2FA754411325C99707E95041FB196D9B2FA754416895F69B07E95041DC7FA8912FA7544138DDF0D508E950416C31AE3D2FA75441AC804CFC08E950410E5C4E1D2FA75441A37E2E1909E95041936A25102FA754419BFAE9AC09E9504188667DE42EA754412A94B6400AE950417ADC86692EA75441EC51B89E0AE95041B81E850B2EA7544177C72BE70AE95041554168F92DA7544172CD13920BE9504107E1FAAB2DA75441A5FC01B80BE950410D8A094E2DA754414C3A292D0CE95041F0E93D202CA754411DB60A330CE950418BA010262CA75441B81E853B0CE950410AD7A3102CA7544156AFE6830CE95041358321762CA75441575D64BC0CE95041E84E11AE2CA754411F4FF4110DE95041D21110B32CA7544152B81E650EE950419A9999A92CA754415C8FC2350EE95041EC51B88E2BA75441E3466E420EE95041A9E8BF812BA75441C4705C410EE950417F22A67C2BA7544179A9630010E9504190AE42B729A75441799BE4A30FE95041EDDDE89D29A75441B43E231B0EE950419BB7C16429A75441E0931ADE0EE95041A1B9B36F29A754416FE2B9890FE9504121AC2BA928A75441D169EB4C11E95041898533A928A754416FD40A5112E95041730D35BD28A75441F0FF9FC112E95041B4554BB828A754414199EB3813E95041B2EFCEBE28A754419DE719BC13E95041A6B970D528A754414BE893C713E950418BD4AAD528A75441094F681C15E9504103F57BC228A75441158D078B15E95041567F98DE28A754418AAE26F115E950411A889DE028A7544195CB100B16E95041C895BADB28A75441C30DA33016E95041ACF4DEE128A754413D0AD77316E95041333333E328A7544129F0F98716E950416E2226F028A754410F0E348E16E95041ADBC2AF128A754415D8CE2C116E950417D52631529A75441B664C0C018E950412B8CE85D2AA75441880037F518E95041B27C407D2AA754410AA0071519E950411F80EC892AA754418A9386B919E95041D57E41762AA75441FE40DCC719E950416E6447702AA7544106233C101AE9504198D60D5A2AA754410DB0DF521AE9504127F32D282AA75441D7A3705D1AE950415C8FC2152AA7544155D065A01AE950418F77B21B2AA754416551F7C41AE950412FA2EF172AA754414F1564CE1AE95041AD7DC61F2AA75441F6285CDF1AE9504114AE47212AA75441E92F502A1BE9504107B53B6C2AA754416971A3C01BE9504180CA44E92AA75441499108D21BE950411973B8EA2AA75441236B98F61BE950410EA09CF92AA7544185EB51581CE95041D7A3700D2BA75441600403691CE95041B2BC211E2BA754413714C06A1CE95041A571A01E2BA754414E32B9611DE95041494D96EB2BA75441295C8FA21DE9504185EB51682AA7544146EE6DAB1DE95041229898632AA75441B6F854AF1DE950410A121D4B2AA75441E9FBE15E1EE95041A7F33A012AA75441FE5188851FE95041B59C72432AA754412AB252F320E95041671B2EBF2AA7544117F2AB3521E950419AE943A72BA75441CB3FE38321E9504193B85AF02BA7544121369E0222E95041B8284EFD2BA75441F9F3715823E95041B72B0F442CA75441B4B7955A23E950410B3477482CA75441F6285C6F23E95041B81E854B2CA754418ED5FD9123E95041D71891BA2CA754418E533CB723E9504166D743072DA75441A6D0DC8424E95041172700F32CA754411F85EBA124E95041FE80B4772CA754411F85EBA124E9504185EB51282CA75441AAD758D124E950411F3C8BE82BA754410395147725E950411B2FB8F82AA754414895B63F26E950413BFE09FB29A75441AA747F2A27E95041B59935A229A75441A22BB0D527E950412BD9730529A754419EC1C2BC27E95041044EF57D28A75441000000A027E95041F6285C0F28A75441000000A027E95041889EA0E127A75441C44E069227E95041EADDA99527A754417E18469F27E9504147A7F27E26A754418D95F98727E95041F0AAC3E425A75441D983628826E95041B88B742B26A7544130DD9E9D25E95041D221EA5E26A7544164C9C8F924E95041080458AA26A7544148E17AF424E95041D7A370AD26A754417DCA03F424E950410C0400AD26A7544106056FF224E95041C15EBAAD26A75441528DE39024E950411858414F26A7544148E17A1424E950419A9999D925A75441713D0AA722E95041A4703DAA25A75441E46EF1A622E9504101C2ECA725A75441A3BE598F22E950411CA927A525A75441A0D59A9C22E950410282ECB024A754414A963C9922E9504144C9736024A75441DD01627E22E9504165D4886223A7544187255C2A22E95041333333F322A75441B16B41B421E95041333333F322A754410AEC586E21E95041BFEA8C3E24A754414E888EB820E95041DC17EB4D25A754410AA5DAA820E9504134A4E45D25A7544114AE477120E95041666666B625A75441C7DA2BE31FE95041D47BD7E325A75441A9DE1A311FE9504106A5622626A75441863710281FE95041102895CC26A7544104DBF38A1EE95041BD659AEC26A75441FC311F741EE950417C0CA3DB26A75441AE47E16A1EE95041CDCCCCDC26A75441A18E24BA1DE95041B11A6E5126A7544124EF5C881DE950410CEC6F2C26A754418B1130FA1CE950416899625325A75441DC57B1BF1CE9504104F3827A24A754411FBA01D21CE95041B465EDDD23A75441CE0D78F31DE9504103D48EB921A75441912B30E71DE95041A0165B9721A75441257461871DE95041B1C6165521A75441E836594F1DE95041223A619B21A75441A73892DE1CE9504190E99E4622A754413DC7F4961CE95041B8FFCAD622A75441BB46CB8D1BE95041209CEE7623A75441C6F752831BE950415B117E7323A75441CDCCCC6C1BE950410AD7A38023A75441A95F20EE1AE9504178F1145023A754411CC90CE31AE95041E7E4454E23A754414CC555A61AE95041FD66554923A75441A90692C319E95041565D655B23A754415C318AD918E950417C66647323A754418380C08218E950411C17447523A754416AA1617E18E950411E4D4C7523A7544171F931C017E950412364728423A754415ADECD5E17E950413034729823A754411D8B93CF16E95041D741ED0723A75441666666E615E95041333333F322A75441A242D2DE15E95041A0533CF122A75441ED3A84D715E950419CCEE5F022A75441E31C541B15E950413AC7A3C222A754412C395D5015E950419CCC8FCC22A75441DB9D0B4915E95041D8206ACA22A754418FC2F57814E9504148E17A9422A75441B81E850B13E9504114AE477122A75441CB99B20013E95041F0B6F26022A75441291649ED12E95041CD17055422A75441B3993FB612E95041A659C51822A754413E81EEB911E9504144D4B8D321A75441295C8F9211E95041C3F528CC21A754418AFB3D9910E9504167C5521B21A75441217C248210E950416D646C1121A754416C395C7E10E9504102AA410821A75441B6733F3810E9504175EC86D620A7544199CD691610E950411FECBDCE20A75441A2A04EF00EE9504192CFA90E21A754411295C6670EE9504144033A2021A75441C3F528CC0DE95041EC51B83E21A75441168BE9A10DE950413AFAAD3921A75441B7233D8D0DE95041B1C9563C21A754417ED3C9DB0CE950417CC3D42221A754414A401BA30CE9504116E6982121A754411F85EB810CE950415C8FC28521A754419CF72C720CE95041A5141C8521A754410621AC700CE9504178115E8821A75441F435885C0CE950412B39378421A75441B81E855B0BE950419A99997921A75441DE7DDEAA0BE95041DFD393F720A7544192FD5ADC0BE95041C4BCA08520A75441522A7EC00BE95041EF2B43D61FA7544134A2EBB30BE95041FA4A95BF1FA754413D0AD7430BE95041CDCCCC2C1FA7544148E17A140BE95041AE47E1EA1CA754410673FCA007E95041C3961CA91EA75441C824029D07E9504105F2B6AB1EA7544111FEA29807E95041D92A54AD1EA754419AA242F506E9504104A7D8FF1EA75441E4EE584606E950410F5DF15E1FA754418815494606E95041F873E7A71FA75441D603C14606E950410BBB62E21FA75441C49408CF05E950413EF6A7F91FA754417683891A05E950410A77220D20A75441792C2B5A04E950412DA6772C20A754412E15E35404E950414012197020A7544133ED2C4204E950415A50944621A75441290C873D04E95041B6340F7A21A7544185EB513804E9504114AE477122A75441885F2A0404E95041692BCFE522A75441594392E403E95041BF71845023A7544151847BB503E95041198C9C9523A75441F6285C9F03E95041713D0AC723A754417E6A1D5903E95041D685B6F223A75441FC4D0D3E02E95041D70409B224A75441864B56C201E95041E0F9C36B25A75441EEC2E23C01E950411A05B71327A7544101EEF13201E95041085C032227A75441EC51B82E01E95041F6285C2F27A7544141C2EB1B01E950412332214327A75441876F40FF00E95041F1A75D6C27A754412440CF5000E950419A34DB3F28A75441BAE6612000E95041D0C4C70B29A7544171789EBEFFE85041F914BC4629A754412D2269E1FEE850415BABE25E2AA754412402F19CFEE850412148A1222BA75441EC51B88EFEE85041000000602BA754417FDFF185FEE850417FD45F642BA75441286A6580FEE85041FEBB3C742BA7544193B85AC0FDE8504192CD15DA2BA7544177826EF7FCE850410661A87D2BA75441666666E6FCE85041713D0A772BA75441A7989B66FCE850416CFD898F2BA754418A4DB5F3FBE850417C2217BB2BA754413BAF8A18FBE85041DB36A9AC2CA754410CD9E201FBE850413FF999C62CA754410450A888F8E85041EC9F18C72FA754419540CE6BF8E8504180F708F02FA7544188B648D7F7E85041741D32EB30A75441F95384C5F5E85041465CAF912EA75441C3F528CCF4E85041E17A147E2DA75441C692B678F5E85041C62AD0762CA754416B2DCC97F5E85041A766853F2CA75441515D2DC4F5E85041B7E916082CA75441861DD239F7E850417D48AB122AA754410F5E5CA3F7E850412B27487129A75441EFAA32C0F7E850416161437C28A75441A4703DCAF7E8504185EB51C827A75441D1D72AD7F7E85041B5A019B927A754419BDB8CD8F7E85041B6B059AD27A754412559AA5AF8E85041CCEC370C27A75441C6578F5FF8E85041C184780127A75441512F5D15F9E850419FF36C5325A754410081F358F9E85041B68E3E8324A75441A4703D8AF9E850416666661623A754416703358CF9E85041BDD9A81123A754416CC95190F9E8504145FC9CED22A75441E4035019FAE85041E1FFF7B521A75441CE740C64FAE85041B3ED349620A75441FDDE24E7FAE850410AA3D56F1FA75441524B10A5FBE85041106D70F11DA754417FDC711BFCE850418BA103EE1CA754415C8FC235FCE85041000000B01CA75441B841BB93FDE850416886938C1AA7544145026BA4FDE85041EC6448E319A75441EC51B8AEFDE85041F6285C5F19A75441289397B2FDE8504133B87A5319A75441E6FDC7B5FDE8504178BF1F3319A75441A0DD3BCCFDE85041B0AECD0419A754413D04AA78FEE850413D82BDF316A754414C2EAD7CFEE850412A4F47E216A754410FBC4D9DFEE85041E3F8518316A75441D7A370EDFEE85041D7A3708D15A7544123FEE109FFE85041FF0DAF1B14A754414A19FDF7FEE8504155FF3D7213A754419F39FCDDFEE85041BA3A2B1C13A7544193878D67FEE850412418FD5714A754412A8C8C58FBE8504163EEBD6B1DA75441305B9B04F6E8504162A83D7529A754413BE54F77F2E85041D86FBB602FA75441D22ECF73F0E8504134FA8B0533A7544175F0EFBFF0E85041D3F08AD432A754419841E2DAF0E85041B09F98B932A754415E87E4C2F1E8504105D168B431A7544169FBD103F2E8504185EAEC4031A75441713D0A67F2E8504148E17A6430A75441295C8F82F3E8504148E17A842FA75441F6285C8FF7E85041AE47E18A31A75441FA86651BF7E85041BAE4E82632A75441D9239290F6E85041A4EDAB0133A75441091847C5F5E85041DECA3BF333A75441713D0A07F5E85041333333F334A754410C27BED8F2E850411B3B584937A7544143B02431F2E8504151CF2D1738A7544101CA4021F1E85041EA3E325C39A75441E17A149EEDE850417B14AE573EA75441674C3C93EDE85041C8AFB05D3EA754415009DF8CEDE85041E12BF6663EA754412496F51EEDE850419BBC73AD3EA7544181B63648ECE8504195647EB93FA7544160CC05C2ECE85041747A4D3340A75441A7651A33EDE85041BD184A9D40A75441F7C5EB35EDE85041FED330EC40A754410744692AEDE850413382D18141A754411A2450B7ECE85041B3BEF93942A754414BD5BB99ECE85041C6DB195D42A75441EC51B88EECE850410AD7A37042A7544188C9A68AECE850417AD9026F42A75441930C0C8AECE85041DA99BA6F42A75441F699D67FECE850417D92AE6A42A75441DF367A47EBE8504144D89FED41A754416A952A05EBE850415F6F8F2B42A75441A4DA1300EBE8504121F8426142A754410355F00CEBE85041A36CA3C743A75441EE4FD210EBE8504154349CFE43A7544124308E19EBE85041E5F7CFBE44A75441493D051FEBE85041372531C544A75441333333A3EBE850413D0AD73345A754418BA7C77CEBE850411325750F46A754412A6DB777EBE850416DA7B33D46A75441809E5974EBE85041FCF0A43F46A754413D0AD773EBE85041295C8F4246A754416E5AC140EBE850419C7C6A5D46A75441AE991F9DEAE850410E11D6BB46A75441194CCF86E9E850410E6057DF46A754411433D257E9E850416678C2D646A7544166666626E9E85041B81E85DB46A754411825DD06E9E85041253565EB46A754410AEDA6C7E8E850413D90481947A754413E0F4791E8E850417F5F2FE646A754417B14AE17E8E8504152B81E9546A75441325AAE0CE8E850411B4C6BA146A754415FB2F545E7E85041BB798D9247A75441706E5DCAE6E85041CEA0297648A754416F57C36EE6E8504194232BFA48A754411D7B2FA1E5E850414483455E4AA754412946EF4DE5E85041D52F66124BA75441A30CB8A1E5E85041F1F3F3B34BA75441713D0AA7E5E85041CDCCCCBC4BA75441A70388A7E5E85041361029BF4BA7544186FA06B2E5E85041041966D34BA75441A24DA7DFE5E850410AF082AF4CA75441A5CE101AE6E85041555689AA4CA75441218794B5E7E85041564133CF4BA75441AA0B3C37E8E85041B4ED2E974BA75441CEF159A9E8E85041589066964BA75441803DB912E9E85041E95917B24BA75441AE47E11AE9E8504114AE47B14BA75441DB14281BE9E8504147AB4EB44BA754412D58EE36E9E8504167299BBB4BA75441C0299C2BE9E8504101E367684CA75441295C8F32E9E8504148E17AB44CA75441E8159F24E9E8504173AD13D34CA7544173512724E9E85041DAC237DA4CA7544143E924BEE8E85041B1B7BFF64DA7544106127E56E8E85041DF198E974EA7544166666646E8E85041AE47E1BA4EA7544187D29E3EE8E85041032597BC4EA75441A141353DE8E85041CC14C8BE4EA7544173CF3D04E8E8504168ED6CC94EA754417B14AE37E7E85041666666F64EA75441A4703DAAE6E8504114AE47514EA75441D7A370EDE5E85041713D0AE74DA7544129871B0FE4E85041126A61044FA75441253BB6B9E3E85041CD2CFA474FA75441A2E60425E3E85041C01BD16B4FA754413D0AD7E3E2E850413D0AD7834FA7544141750766E2E85041A323673A4FA7544138150451E2E850415EFE5C344FA7544125879A48E2E85041C1BC6E384FA75441F6285C2FE1E85041A4703DCA4FA75441FF9607CFDFE85041A625821C51A7544128B6C4F8DEE850418C94F51252A75441C1FD84B3DEE850414B8FC19652A754413D0AD783DEE85041AE47E11A53A75441C201B7E3DDE85041D89374E053A75441A5669376DDE85041FF4E457054A754413AF91D85DCE85041B8B520A355A7544138838B9EDBE85041E926A99056A75441713D0A77DAE850418FC2F5D857A75441CCC9952FDAE8504122DA2B0D58A75441F129C251D9E85041FDFF4FBD58A75441CD29BDD2D8E850418E2D604259A7544129521EF8D7E850412F3A804A5AA75441AC9DF47CD7E850413314D8FD5AA754417C3F5CA7D6E850410B13E1F55BA754411A2BDAC7D5E850413BD2AC105DA754413A7C0CBED4E85041046B450F5EA75441731CF0DED3E85041993C8E105FA754414D6C3D03D3E85041DCF2C4E65FA75441713D0AE7D1E850419A99991961A754415A4AABB5D1E8504131DBD25461A754411148D52BD1E85041ADAEB90C62A754419543BAE2D0E85041FFA8DC5162A75441000000C0D0E85041B81E857B62A7544189BF6A1BD0E85041021B5A0E63A7544122FB010BD0E850410FD0DE1D63A754412220BA07CFE85041BE52F30A64A75441A85852F0CDE850417236D9FD64A75441890BFED5CCE850419472521566A75441994DBCB4CBE85041C86E930F67A75441C686F074CAE850414068C12268A75441329BCB59CAE850414F2AE23068A75441F3DC26B2C7E8504169F8FEA469A75441A0807799C6E85041CDF952466AA754416FCE6D63C5E8504155C5AD436BA75441BCD48046C4E85041AFFF5F396CA75441F9A77BDDC3E8504145C241B16CA7544148E17A04C2E85041CDCCCC0C6FA75441E6020727C1E850417A3327F56FA754411D2402C4C0E85041CC92957670A7544125C4FC8CBFE85041ADEE142972A754415C332068BFE85041E456985E72A75441064E3471BEE8504160C232BF73A75441D9A0E795BDE85041CDFC0F1275A7544136ED7B3DBDE85041CCDD578375A7544163FC2FB5BBE85041A795538E77A7544173FC0868BBE8504136E701FA77A75441A9510905BBE850414EBC287978A75441AB577A19BAE85041C49230B379A75441A3815073B9E85041333AB9AE7AA75441E9668A53B9E8504193F710BB7AA7544114AE4751B9E85041E17A14BE7AA75441A0FFC135B9E85041E7B5A2C67AA75441C8565D1CB8E8504128C4F1337BA75441236998A6B7E85041E7B98FCB7BA75441621B0F9AB7E850415D3A3AB57BA7544114AE4791B7E850411F85EBC17BA7544133333333B7E850417B14AE577BA754411132C48FB7E8504195FF54E87AA754419F98109FB7E850412CEE20C77AA754417BAE5FE8B7E85041278019667AA7544166666636B8E8504114AE477178A75441421D9836B8E8504140502E7178A7544171994D37B8E850419FE6836C78A754411DEBE04CB9E850412924F8CB77A75441F40A3699BAE8504178A5192277A7544190108A0FBBE850415D9DEB6A76A75441DFF2DAD4BBE85041E4086C6E75A7544114AE47F1BBE850413D0AD74375A754416A275417BCE85041460C31D674A7544155FFBB48BCE850416835AA3274A754410993C27BBCE85041AA09C5B473A754419A9999B9BCE85041295C8F0273A754419BF5EB17BFE85041C6DDFA9970A75441A2A1F969BFE850416CD15F3570A75441D62A0F72BFE85041C6A43FE66EA75441C6562B75BFE85041CC2AD6D96EA754410AD7A370BFE85041AE47E18A6EA75441E7880B81BFE85041558B7B5F6EA75441301ACBFDBEE85041A5F53BD86EA7544127EBA078BDE850415B4B9AFC70A754416DA0EB4ABAE850418B82A63375A754417042A15AB6E85041054EF83E7AA7544170C01B4DB3E85041FEFAD7817EA75441907E9FA9B3E8504198C40EBD7EA75441E2A436B0B3E8504184C7E6C07EA7544172F1E010B5E850419D4EAE707FA75441BA217AF8B5E8504134A3DD487FA75441E5539115B6E850412546C7A77FA75441C8DFF913B6E850412AE2EDA97FA7544185EB5118B6E85041713D0AB77FA7544174522345B4E850414569C5E781A754410B37EA0FB4E8504168C1953982A75441083F6FBBB4E850413FEE91B682A75441AC97A4D3B4E85041BA4AF5EB82A75441DAEA6CDBB4E85041E6FFEAF282A75441175003AEB5E85041BCB75E5983A75441AEC36A6AB7E850412E2DF65683A7544134298DB7B7E85041FE083A4783A7544166666636B8E85041F6285C1F83A7544163092558B8E8504179ED832E83A75441FAD76C58B8E8504129E5792E83A7544128763E12B9E8504148D6465583A75441499E8EABB9E85041549BF3C683A75441E17A140EBAE85041333333F383A754419C1DDCF8B9E850416CD70B8D84A75441B843BBF2B9E850419103610785A75441DEC96782BAE8504104D1C95B86A754412F2753FEBBE850419442C95388A754414039C905BCE850412506B55988A75441EC51B87EBCE8504114AE47B188A75441AD7DE081BCE850412B652EBC88A75441B6332788BCE85041806C29C188A75441AEF28390BCE8504132D5BAEE88A754410AD7A3D0BCE85041C3F528CC89A754410AD7A3D0BCE8504148E17A948AA75441295C8F72BCE85041713D0AE78AA75441F67220C5B9E850418F100D308AA75441C428DCC1B9E8504142CD2D2F8AA75441F6285CAFB9E85041A4703D2A8AA754415C8FC245B9E85041E17A146E89A7544146515F54B8E8504157D961D888A75441B985434CB8E8504146FA0ED588A75441410193F8B7E850414C15B7EF88A75441D67FC843B7E85041F7B8E93189A75441B15B19B9B6E85041EACD68E588A75441E1B6B6FAB6E85041E73359DF88A75441AE47E16AB6E85041EC51B85E88A75441B13BB06FB6E85041C749C3DE87A75441ACCB935FB6E85041AA539E1387A75441D7A370DDB5E850417B14AE8786A7544103E67B3DB6E85041937AEDE485A75441BFCFE063B6E85041180E577985A7544152B81E15B5E85041000000B084A7544105BFBDD7B3E85041D6D190C484A7544106103CBBB3E85041F65C87C884A75441A4E4D13EB3E850416A77FE1285A75441BB439AFEB2E8504152AD1A2385A75441CDCCCC8CB2E850410AD7A36085A7544194B7D3F0B1E850412134631785A754419AA2D2ABB1E850413DD3090285A7544171803580B1E85041D0EE47A484A7544166666666B1E850410AD7A38084A754417EA01C6AB1E85041C93EC77484A75441F594E865B1E850412C0DBE6B84A754413C291C97B1E8504128D2FAE483A7544114AE47A1B1E8504148E17AC483A75441428273A3B1E85041F9612DC383A754414231C7AAB1E85041F8E41BAF83A75441A42846A7B2E85041F080971F83A754413F8637B7B2E850411563AE7B82A75441411E1E35B3E85041F5E4971A82A75441CDCCCC6CB3E85041B81E856B81A75441C3F528DCB1E850413D0AD73382A75441516B980FB1E85041CFB5664C82A754414D03B170B0E850411A56A97382A7544135FD1C99AFE85041BD59F4F882A75441C3F5283CAFE85041295C8F4283A7544185E45C30AFE850416EDEB83983A75441512D2230AFE850414B2CDD3983A75441D3D94595AEE85041F33B89C582A75441BC5F5F7FAEE85041E5C515B582A75441646D1961AEE85041572F589E82A7544116448B7EAEE85041304BBB6182A7544186D3104AACE85041BA074B4883A7544109247F3FACE8504113E5855483A754410CC9CD06ACE8504147E971A283A75441E8F353D2ABE85041263A6AE083A754418B9FEF7DABE85041E9E3CC5384A754413E3BE22EABE85041A3CA510985A754419B34919BAAE85041034806A485A7544168C2E181AAE85041AD6BF69886A75441F6689ACBA9E8504105C8323C87A75441295C8F92A9E85041EC51B87E87A75441AE47E19AA8E85041B81E853B88A754410CAD09DAA7E850413E85A3E188A75441151EB012A7E85041AE047BAB89A75441C8077D09A7E850419A53B0B589A7544189CD8B98A4E850410E82B31D8DA7544174728B2EA4E850418AAFBC0D8EA7544185EB5118A4E85041713D0A678EA7544133333373A3E85041E17A145E8FA75441B420410FA3E85041AD47BC2590A754414EACFA04A3E85041DE1ABD3F90A754415F223D65A2E8504159EF137F91A7544114AE47F1A2E85041333333A392A75441D9207738A2E85041197292CE93A7544180483FA4A1E85041BA3EE0D594A7544102BD4D76A1E850419624CD0995A754419B4C04D2A0E85041D4FE1EBB95A7544185EB5198A0E85041F6285CFF95A75441246E58DA9FE850412A2EBB4296A75441503D2DE09FE850418E16525C96A7544194E34816A0E85041CB1DEC4697A75441E1D2F10BA0E85041E34831B497A754413362F09B9FE85041A9635B0898A7544172CD51BC9EE850419DB7D24298A754414433302E9EE85041E6DEAE0599A75441C14D0EF99DE85041881017F699A754413F19E3459DE8504181DD7C7D9AA75441C4C0B8459DE85041E796F7B89AA754417B14AE479DE850418FC2F5C89AA75441A771E2029DE85041CBA4B4D39AA75441896E4B749CE850419CC7DDF99AA754412420DD099CE85041AA179AFA9AA75441EC51B8CE9BE850413D0AD7039BA754418F724BFD9AE85041F025E9329CA75441295C8FE29AE85041F0F9F8159DA75441295C8FE29AE850411F85EBE19EA7544175DF8BCE9AE85041F5D4620E9FA75441D9405BC49AE850412D92BA829FA754415A32013E9AE850417DACA488A0A7544169FEB93B9AE850415AD168EFA0A754419AF48F309AE850413D5AE602A1A754410071935599E850415D4CA0D6A2A754413D96C41699E8504134B8337DA3A75441D35171DC98E85041A5DF59D9A3A754410AD7A3D098E85041295C8FF2A3A75441D3C71AA898E850412EF8906EA4A754417963186C98E8504108096C78A5A7544145FF84EE97E8504123664FA6A6A7544167CCF7E297E85041A517A6C9A6A75441234142A397E850417662BFBEA7A754410090347697E85041B1696016A8A75441B81E854B97E850418FC2F598A8A75441E0EA5C0F97E85041FA9931D1A8A7544135EEECF596E850415DA007F8A8A7544165F5549596E850412B304765A9A754417437781B96E85041F34D8395AAA754411CA919CB95E8504174B32F25ABA75441B81E858B95E85041A4703DBAABA754411F85EB2195E8504148E17A24ACA754412D4827EA94E850411DF2F681ACA75441923727B494E8504111B7F503ADA754416CC62F5194E8504142DEFE82ADA7544178C7316494E85041AC20A186ADA754415FCB71E993E85041EB1CC13EAEA754411E1A9A2394E85041DFD925D0AEA75441A4703D2A94E85041B81E85DBAEA75441E203FF2994E85041682122E0AEA75441559B073894E85041209A3703AFA7544111F5531694E8504169FB3B54B0A75441295C8F1294E85041B81E859BB0A7544151FB40EC93E85041DF0A1CD5B0A7544188E526C293E85041BD385029B1A75441CA7F067C93E850410D246A61B1A75441D662404792E8504101413096B2A7544172045F2992E8504188FAF2D1B2A75441EC51B85E92E85041CDCCCCBCB3A754417267DA5D92E850410D8C9FBEB3A75441AECC846092E85041EB8849C5B3A7544118AEC83D92E8504107BD1202B4A754418FC2F5E891E8504148E17AB4B4A75441FE16B3CB91E85041CC80B8C9B4A75441C22C59C391E850415DDA55D8B4A7544184D7EE1F8FE85041BBA422C0B6A75441C48984198FE85041C65894CFB6A75441C29417408FE85041CB1D61ECB6A7544102DFA75B8FE850418F0F46E7B6A754410A3FF6718FE850411ACA9C11B7A7544198AFA1908FE850415CB98228B7A754413FE8B6E38FE8504118618600B7A754415BA0950290E850411A0C4106B7A75441704A78EE8FE85041F7216920B7A7544114AE471190E850419A999919B7A75441825E88B28EE850419595A506B9A75441B166EA638DE85041C5745FF8BAA7544116ED7D3D8DE85041CE354C56BBA75441343204CA8BE85041C759C3CABEA754418A86334D89E8504169290BBCC4A75441E3252C3288E850419E96FEA2C7A754417AE0723F87E8504134FB5D10CAA754418FC2F5B886E85041295C8F72CBA75441F6285CDF87E8504185EB51A8CDA75441D7133BC287E85041CB71F8BECDA75441234460C587E850415762DACDCDA75441EB5DF41185E85041ED1C14E8CFA75441B062C6F284E85041F0F57734D0A754417101192B84E85041FB6AA927D2A754418FC2F51884E85041A4703D5AD2A75441B074FB7C84E85041CBCF2B4FD2A75441FB519E6285E85041D247CB1BD2A754413B47446E86E85041BCC02318D2A7544152B81E9586E850413D0AD713D2A754412095A09886E85041F6AF8F17D2A75441AA4EFF9986E850410DE68A17D2A75441FA6FA49F86E85041AD1E011FD2A754411F85EB5187E85041C3F528DCD2A754412C1A292587E8504134E8BA46D3A75441736F170F87E850416372B4AED3A75441CBCACD7A88E850419FB7260ED4A75441C3F5282C8BE85041EC51B89ED4A75441D42AC6408BE850412EAA76C8D4A754413907D15A8BE850414A334CCFD4A754415C5B2F578BE850414279D8F5D4A75441F6285C5F8BE8504166666606D5A7544108314A1D8BE850410826645CD7A75441A3A4D8B48AE850414DD209B1DBA754415E0B7AE48AE85041D36D68ABDBA754419F95EE208BE8504194CE709BDBA75441A95B13428BE8504102F157A0DBA75441AE47E16A8BE85041B81E859BDBA7544170DA42E48AE85041A52CCCB8DEA75441EA8A85E38AE850417916B176DFA7544114AE47718DE850411F85EB41E0A75441F692657A8FE850416D2929ABE0A75441EECCA98B91E85041A4347C05E1A75441B14492ED91E850417566AF49E0A75441CF4C912392E8504140C2BDE5DFA7544121DD99D692E85041D8B3C082DEA75441244670D992E85041B87A4C7CDEA7544101CCEDE893E8504148299148DCA754417FAC4D0794E850410F539626DCA75441D7A3704D94E85041B81E859BDBA754418F24BDFB94E8504145162173DBA754413FD65D3F95E850411892B45ADBA75441BD0482AC95E85041349ECA43DBA7544105DD814596E8504195460E49DBA754418153604696E850415A1D474ADBA754410000006096E850418FC2F548DBA75441D7A370ED96E8504148E17A34DCA75441F8E561ED96E85041A26F2135DCA7544139A18CEE96E850412887C536DCA754418EA962E996E85041B6444A62DCA754415363A2B496E8504111AE49B6DEA75441AB3E7A4D96E85041912D87A5E4A75441AA624BB296E85041CA32C89BE5A7544158B09C4596E850410B8E1096E5A7544152B81E2596E850418FC2F598E5A754414673CD1B96E85041CD7FDD93E5A75441BBD7280F96E85041E23B3393E5A754416699B9A195E85041AE6C2259E5A7544152B81E4595E85041E17A141EE7A75441B7924C4495E85041E6269420E7A754415116BC3D95E85041E332D37FE7A7544147E2E7D894E850410EC89680E8A754419328714E94E85041E2DFF81CEAA75441ED72B16194E850418F413216EBA754416E6F126794E8504161C2283EEBA75441150602F993E85041635EC758ECA75441DF556A9193E850411960D523EDA75441B6EA337893E850419A90A055EDA75441F6285C0F93E850410AD7A340EEA7544155310A7592E8504122DA3D80EEA75441A75E433992E85041ED90D3A8EEA754411F85EBA191E8504166666696EFA75441CF78108791E850412764C8A9EFA75441C806757A91E85041CC1FFCBCEFA75441B654738590E850415A564C6FF0A7544173AD1F5790E85041AE47E16AF0A754413D0AD7838FE85041AE47E16AF0A75441437B99338FE850416A91E5ECF0A754417FD6E7DB8EE85041A4EBA2A4F1A754411F85EBE18FE85041713D0A07F2A754411F85EBE18FE8504148C63822F2A75441B50328E38FE850417A5BC222F2A754411F85EBE18FE85041AAED842AF2A754411F85EBE18FE850413D0AD7C3F2A75441CC6513C08FE85041DCD9F3FEF2A75441542584BF8FE850416D037702F3A754411C35574A8FE85041277E46D5F3A75441C0C7C3378FE850413A1CA205F4A75441EC51B8DE8EE850414F973436F5A75441EC51B8DE8EE85041EB22FCB6F5A75441904119E58EE850419E456D79F6A75441EC51B8DE8EE850419894A381F6A75441EC51B8DE8EE85041A4703D8AF6A754419ACD25A88DE850419F04236EF8A75441D3126F588DE8504130D5EB04F9A75441E41181FA8CE85041F5F7AF7CF9A754413D0AD7E38CE85041000000A0F9A75441D7A3709D8CE8504114AE4701FBA754415B63168D8CE850413F215822FBA75441B7EF2E878CE850416ADC7C46FBA75441499129E78BE85041B77BB9CCFCA75441B2A38CFD8AE85041CFF81F51FEA754416E998BAF8AE85041D3D7DEEBFEA754414CF1F27C8BE8504142B7B676FFA75441F2D5C8E98BE85041C6AC8FB6FFA754414D6459438CE8504128ADD2FCFFA75441295C8F628CE850411F85EB1100A85441666666168EE850410000005001A85441198D2E0F8EE85041C763F44C01A854413BD77F4B8EE85041DC5C237601A85441780A394D8BE85041595ADB2E00A854412A7D29AA8AE85041AC7DFB4900A8544149A5C6968AE850419E20DE5200A85441A64A718D8AE85041ECFAC3C901A854414842DC718AE85041F347A67002A854417B14AE678AE85041AE47E14A03A85441D01B591E8AE85041F76B9D7A03A854419ED9646289E85041FF66B92204A854416F76D2DE88E850418AF40F5805A854419AADB76088E850415D1BB33006A854411F85EB3188E85041B81E859B06A85441AC4E961488E85041A225F4DE06A854412CB649CB87E850414D925DA007A8544117CAB66B87E850411611660F09A854413B636B1987E8504189BAEA680AA85441EBE1211587E850418610BD730AA85441B81E850B87E85041CDCCCC9C0AA854419BE917DB86E850410ABC3D060BA854415127079786E8504150860DB20BA854411CDEFF4486E85041209352820DA85441A3B8811B86E8504197CA955F0EA85441A045F0E085E85041581E49C90FA85441D65CAAC985E8504140E7A66910A85441021023BC85E8504124317DAD10A85441AB63AA6885E85041AB0308C012A8544199801F5985E850411B91BB4913A854411CD3112085E85041D27684E014A85441C27664DC84E85041452EB45816A8544176DFA4BF84E85041E3BF27AD17A854411F85EBB184E8504185EB517818A85441E3C3A28384E85041A070832319A85441A7B6CE7C84E85041BB85E64919A85441251E122884E85041E6E37F9B1AA85441E19BE4C683E85041FF9E8EB51FA854415D2AF2BD83E8504130A4A86E20A85441C59472C983E850418F7C312822A854410CFA9CCA83E850418F31DC4422A854414ECBD7D783E850415F26697423A85441A1D809F183E85041265FD08B24A8544114AE470184E8504114AE472125A8544127527FFB83E850411B8F4F2F25A8544177ECAFC683E85041F811640526A8544165DFFBEB84E850417C0704A227A85441FC64624C86E85041EBFD348B29A8544100A71CC486E85041E09E8A282AA8544169304DC186E85041D9FA812D2AA8544148E17AC486E850411F85EB312AA854410F4ACA1D86E850418198724E2BA85441F72C7EA184E85041110378EE2DA854418288773484E8504187467DC92EA854417C8B515784E85041263BC5F52FA85441CDCCCCCC85E850411F85EB2130A85441EC4B73E085E85041C720FD3130A85441A2339FF485E85041E99A893430A85441EE8FAF2886E85041D9E10E6D30A85441EC51B84E86E85041C3F5288C30A85441EC51B84E86E8504123FCF4B530A854410B6BBC5E86E8504180057ADB30A85441205C454F86E85041338AC64B31A854413D35CF7B85E85041512C581432A85441EDDD5B6885E850412B725F5E32A85441FC099D1885E8504162BCE66033A85441CCE3A51185E8504117E21F6333A854410AD7A31085E85041713D0A6733A85441C5825DA784E850414DD5179933A8544120AF8F2984E8504160E448F233A854411E51682584E850415021E54C34A85441EC51B88E84E8504114AE470138A8544141C7E95584E850410CCDB56E38A854411CAFE7F683E850416F371A5C39A854413CF53BB782E850411DE384A73AA8544116F55C0E83E850414CB9ECD53AA854418014306783E8504144452FFD3AA854415C373A5286E850415DCBD2693AA85441B3177C7286E8504178D0AC583AA8544133E12F9186E85041706B675D3AA85441295C8F0287E85041713D0A473AA85441B674BB3587E850412783BF763AA85441F352169A87E85041BC8D34863AA854412A796D6A87E8504120E978933AA85441E539144B88E850412FD151793BA85441D7A3701D89E85041D7A3703D3CA85441FA396B1A89E850410495763F3CA854412294ED2289E85041D88CDF463CA85441318B567288E8504165F71FC73CA85441756A536088E850417F1D37E13CA85441EC2C5D3488E85041A37E30343DA85441063A286D88E850417BE95AE03DA8544166DB827288E8504113897EFD3DA8544148E17A8488E85041CDCCCC2C3EA854414FAD1D8188E8504181F9FA4C3EA85441F15B5F9488E8504139A7C8B53EA8544158854F4888E8504165A95F6C40A854411F85EB3188E85041295C8F4241A8544116A94D1988E850417648445D41A8544141B8401888E850410290836241A85441F12C223F87E850415E245D6942A85441759EB2F588E85041C06F3B9D44A854419A9999898AE8504152B81E8546A854415C8FC2858CE85041713D0A0748A854412B67EDAB8DE85041CB1BB93548A854414DF350AC8DE85041BB293F3548A85441000000D08DE85041000000C047A8544118C3C65E8FE8504109CDEAC747A854415F626A0C90E85041D1D1E8BE47A85441A2CBDF2690E85041D0CEE3CB47A8544148E17A3490E85041C3F528CC47A85441265F2F3F90E850410A0DD1D747A8544153970C6B90E85041130756ED47A85441F358D46691E85041589F3AF748A85441F2CDD6B791E85041DB324A1D49A854411F85EB8192E850413D0AD77349A85441EC51B85E92E850410AD7A37048A854419E85FAA392E85041A195950C48A85441CDCCCC9C93E850414D0C3B9E46A85441CDCCCC9C93E850418B67971846A854417719FA6791E850418AB14A2C45A85441CFB836EC90E8504138045A0C44A854417737C75590E85041F9682FE743A85441A1B878F58FE85041FCAC8E5042A85441015837C38FE850417B60DE9E41A85441F4EE19628FE8504128A9C29340A85441755D365F8FE8504101AF453E40A85441AC212DF58EE850419A5B25CB3EA854416147CEF68EE85041F20A00C63EA85441A15AD6538FE85041526437A03DA854413C1729748FE85041AEA4592C3DA8544170E1277A8FE85041A2A8BFE03CA85441D5E7AA9B8FE850413F2A34F73AA85441C7BC79E18FE85041C48016333AA854415C8FC2258FE85041A4703D5A3AA8544114AE47518EE8504114AE47C139A854411F82B28C8EE85041F859137739A854410FA445DA8EE8504146E0FCE438A85441740716CB8EE85041892D16CF37A8544128E292C68EE850416904E95337A85441B81E85BB8EE8504185EB518836A854410717FDBE8EE8504136F3D98436A85441FE35ECBE8EE85041932F0D8336A854411FDBAE448FE85041D05033FC35A85441A962C5468FE8504194A711FD35A854410AD7A3608FE85041333333E335A8544168A0F10B90E850412561154F36A854412A5BD9AF90E8504195A3429336A85441C3F5282C91E85041333333E335A854411CDD163591E850416508FCDE35A85441C9DF244891E850411140C5C335A854417A2D4A9B92E85041D41AE13535A8544148E17AD492E85041AE47E11A35A85441FAEC93D892E85041FADA3C1C35A85441009797DC92E850412EE78E1A35A854414B7B3F4793E850413F80F92035A85441C878B98893E850410AA930B534A854416239B88A93E8504139703BB534A854418E981BB393E850410369A17634A85441D7A370ED94E850419A99997932A8544111E4064996E85041D6D575152FA85441D269024696E85041E065A9E12EA85441C6014F4496E85041E1843AD32EA8544159912A4596E850417ACC78D22EA85441FD4F526496E8504107EB49D12EA854413D0AD71398E85041B81E859B2AA85441713D0A3798E85041A4703D3A29A85441B81E854B97E850418FC2F5F826A854417B14AE9795E85041EC51B8CE24A85441FF96AF5496E85041EBDD2E3923A85441A224C9D296E85041C2966C1E22A8544105A348D796E85041F0E1F72022A8544114AE47E196E85041B81E850B22A854411EA8EF9897E85041E3E47F8E22A85441D569B03798E85041299E4AE822A85441FA1E0AFE99E85041E583C27F23A85441339189C69AE85041DF918DF822A854416E036F1C9BE85041EA0B7AB222A85441F5BF79BD9BE85041D2A5454522A85441AE5E2AC89BE85041CCE1053E22A8544108AD68D89CE85041E0A9594D1FA854415F21B92F9EE8504177BD93C01BA85441255E3D549FE8504156A2077A18A854417528F7729FE850410121BF6818A8544185EB51789FE85041A4703D5A18A854411C0000003570743FF2E85041BE9B55E43EA754413B7A7220F3E8504161736BFC3DA754416CF80A73F4E85041E12F7D3D3DA75441F2D26C66F5E850413B0427183DA75441149F75C9F5E850418761537D3CA75441AA0FE082F6E8504143E472843BA75441CB39C62BF7E85041DB82888B3AA75441246D5B30F7E85041B5AB29713AA7544123019B3FF7E850414EA61D723AA754412F40B2A8F7E8504115683D2F3AA7544157A32AA8F7E85041A49469313AA7544114C3DD6CF8E85041C27308FA3AA75441ABDA83EBF8E85041EE4FD67B3BA75441F11044DEF8E850417F25447E3CA7544110BDF72EF8E85041F2C4DCC63DA7544160249367F8E85041106A121A3FA754411322E42CF8E8504172022A4740A754411CF19EA6F6E850415DBA0FAA40A75441DFB941DEF5E850416E1F8B9840A754413B9B5F41F5E85041B534B7C841A75441B8FE00CAF4E850415EF1D4E241A754414AC99934F4E850418EF4792841A754415DC9CA99F3E8504132AE558E40A75441EF6D5DA0F2E850415030467740A754419D48AE62F2E850418C74144340A75441EBFF9A0CF2E850415A6FE9D03FA75441986F18E9F1E85041597E289F3FA754413570743FF2E85041BE9B55E43EA754410F000000554DF39290E85041B502FDBD2EA8544189C10F6790E850416FA91AAD2EA854414CC5A35C90E850416E991D692DA8544139D1CDCB90E850411AAA7F422CA85441276E6E2091E85041A517AF9C2BA854418796AB0E92E8504179C600672AA85441EF18644392E850411B808D7928A85441622FD4C492E85041535B097828A85441E103E46B93E85041995C147628A854418A0A2C5594E850419CD5A7BD29A85441DA0A2F2C94E850418B9392F52AA8544150CDFC6093E850413C514C6A2CA85441F172C3C492E85041560FF94D2EA85441251962F591E8504144E856462FA85441554DF39290E85041B502FDBD2EA85441130000003A257F6A99E850413265D282EAA7544199C4D17299E850414F9A7EDFEAA75441334039B698E85041543B8115EBA75441C82C354F98E85041B29DB1ACEAA75441851712AD97E85041D5A84F14EAA75441A540D1D197E85041FC357C7CE9A7544170B6F90897E850412BA65021E9A754411979729E96E850415AB571ACE8A754411F8A3C8E96E85041B87662D6E7A75441B95B0A4897E85041F7525FB3E6A754416EC7905097E85041BB92ACD0E5A75441595BC49A98E85041EBC99BAFE5A7544102FBE01499E85041D18D341CE5A75441FC61F69799E85041185E499CE5A75441E165231F9AE85041E2D509A2E7A75441C3776C1F9AE85041AA58A30DE8A75441A71E2FFD99E85041A1A86685E8A75441D3F527F599E85041795F8FEFE8A754413A257F6A99E850413265D282EAA7544118000000DC54D51FEDE85041FC98C7B942A7544150D2F04CEDE85041B3BEF93942A75441760214EEEDE850419A185EBB41A75441F30B084FEEE850415C1468A741A75441AAD8F37DEEE85041BA5E62D341A7544155492A8DEEE850412D9F9FE241A75441ADC88194EEE85041C8A647EE41A754418D57C797EEE8504178DA75F341A75441FDB03144EFE8504124F2BA4542A754419ECAEF9CEFE850411A93D78442A75441D30C71A3EFE8504171AD95E042A754411682FF69EFE850418093145043A754419055826AEFE850418AF1125243A754415C962969EFE8504192CB7F5243A75441A9E8DB04EFE85041F318084D45A754417FA07D02EFE8504101FBE44D45A75441DD73A4D7EEE850411507272C45A75441EB0E7530EEE85041D322CF2645A75441EE7022B2ECE850418CCA3AE444A7544111191AC5EBE85041FEE5A2EC43A75441F7A94DD4ECE85041530285D643A75441D5119773EDE8504184DA6D4043A75441096C1247EDE850416CA62DCD42A75441DC54D51FEDE85041FC98C7B942A7544112000000D2212A82F8E85041317E390138A75441E238B6B9F7E85041B4B8F3EA37A754419DAD7270F7E85041B4B8F3EA37A75441B4037050F7E8504188E62CF437A754415B9B44EDF6E850412FDC5AB637A75441C6A2CA9CF6E85041ADD19DA837A754415E258424F6E85041F8D2A7C136A75441C01191A2F6E85041B5232A2136A7544128BA2ECBF7E85041CD5302BB35A754410E0263ACF8E8504169991C9435A75441B5E83656F9E85041228A499E35A75441E8167652F9E8504153F7374136A75441D42D5A92F9E85041DE46BB6936A754415042613BF9E850413F6247D136A75441BE6F5708F9E85041715CA3E436A75441F852579EF8E8504144BF954B37A75441197BA9A9F8E8504144DBB1C437A75441D2212A82F8E85041317E390138A75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>342860 - 422978
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+010600000005000000010300000003000000BE000000AE47E1FA18E950417B14AE975FA65441AE47E13A18E95041B81E85CB5EA65441EC51B80E17E95041B81E859B5EA65441EC51B8EE15E95041F6285C4F5CA65441295C8F5215E950417B14AE075CA65441EC51B8CE14E950417B14AE175BA65441295C8FA213E95041B81E852B5CA65441295C8FE212E95041333333135CA65441295C8FF211E95041333333F35AA65441713D0AC710E95041B81E85AB5AA65441713D0AA70FE950417B14AE9759A65441AE47E1FA0FE95041F6285CEF58A65441AE47E1FA0FE950417B14AEF756A65441EC51B89E0EE95041333333B355A65441AE47E1EA0DE95041333333E355A65441295C8FB20CE950417B14AE7755A65441EC51B88E0CE95041333333C354A65441713D0A870BE950413333339354A65441EC51B87E0AE95041333333F354A65441EC51B8DE0AE950417B14AE5754A65441EC51B87E0AE95041B81E85FB52A65441AE47E15A0AE95041B81E851B51A65441713D0A570BE95041B81E85EB50A65441AE47E13A0CE950413333331350A65441AE47E1BA0DE950417B14AED74FA65441AE47E11A0EE95041333333834FA65441EC51B8DE0DE95041333333F34EA65441295C8FF20BE95041B81E852B4DA65441AE47E14A0BE95041B81E859B4CA65441EC51B8AE0AE95041333333934BA65441EC51B8AE0AE95041F6285C4F4AA65441295C8F020BE950417B14AE074AA65441AE47E1AA0BE95041F6285C1F4AA65441AE47E1AA0BE950417B14AE2748A65441EC51B80E0BE95041F6285C1F47A65441295C8F020BE950413333332346A65441713D0A670AE950417B14AE8745A65441AE47E1CA09E95041B81E85AB45A65441EC51B8FE08E950413333330345A65441EC51B8CE08E95041B81E858B44A65441713D0AB708E950413333338343A65441295C8FB209E950417B14AE1743A65441AE47E1CA09E950417B14AE2742A65441AE47E1AA08E95041F6285CEF40A65441713D0AE708E950417B14AEA740A65441713D0AE708E950417B14AE573FA65441713D0AF707E95041F6285C3F3FA65441295C8F4207E95041F6285CDF3EA65441295C8F4207E95041B81E85FB3DA65441713D0A9707E95041B81E853B3DA65441AE47E14A08E95041333333533DA65441295C8F8209E950417B14AEB73CA65441AE47E16A09E950417B14AE073BA65441EC51B8FE08E95041B81E85DB39A65441AE47E11A0BE95041F6285C1F38A65441EC51B83E0BE950413D0AD78334A65441295C8FF20BE95041B81E85DB33A65441EC51B8BE0CE950413D0AD79333A65441AE47E12A0DE950417B14AEE733A65441295C8F620EE950413D0AD70333A65441EC51B81E0DE95041F6285C1F32A65441AE47E12A0DE95041333333F330A65441713D0A970DE95041F6285CAF2FA65441EC51B81E10E95041F6285CAF2CA65441713D0AD70FE950417B14AE472BA65441713D0A2711E950417B14AEC729A654413333335312E950417B14AE6729A654413333338312E95041333333E328A65441EC51B84E16E95041F6285C1F26A654413333330317E95041F6285C7F26A65441AE47E1DA17E950417B14AE0726A65441EC51B8EE18E95041B81E85FB25A65441713D0A6719E95041B81E855B26A65441AE47E1AA1AE95041F6285C1F26A65441EC51B81E1CE95041F6285C4F26A65441333333431CE950413333330327A65441EC51B8AE1CE950413333339327A65441AE47E1BA1CE950417B14AE1728A65441713D0A371CE95041B81E859B28A65441713D0AF71CE950417B14AE6729A65441713D0A871DE950417B14AE6729A65441EC51B82E1EE95041B81E85DB27A65441AE47E16A1EE95041B81E856B25A65441AE47E1DA1DE95041F6285C8F25A65441EC51B8DE1CE950417B14AE1725A65441713D0A371CE95041B81E85EB23A65441713D0AA71BE950417B14AE6723A65441333333B31BE95041333333F321A65441EC51B85E1BE950417B14AE5721A65441713D0A771EE95041333333B31FA65441713D0A071FE95041B81E851B21A65441333333B31EE95041B81E85DB21A65441EC51B8EE1EE95041F6285C5F22A65441333333E31EE950417B14AE3723A65441AE47E1FA1EE95041B81E851B24A65441AE47E19A1EE95041333333F324A65441AE47E14A20E950413333338325A65441AE47E1DA20E95041333333F324A65441AE47E1CA21E950417B14AE0723A65441EC51B8BE21E95041B81E850B22A65441713D0A7721E95041B81E85AB21A65441333333F320E950417B14AE1722A65441EC51B83E20E950417B14AEE721A65441713D0AC71FE950417B14AE3720A654413333339320E950417B14AE3720A654413333331322E95041333333F31EA65441333333D322E95041F6285C2F1FA65441333333C323E950417B14AE171FA65441EC51B87E25E95041B81E85FB1CA654413333330326E95041333333C31BA65441713D0AF725E95041F6285C0F1BA65441713D0A7727E95041B81E858B1AA65441AE47E1BA28E95041333333C318A65441AE47E1FA27E950417B14AE8718A65441AE47E19A27E950417B14AE2718A65441AE47E10A27E95041F6285C3F18A65441713D0A8726E95041F6285C0F18A65441EC51B8AE25E950417B14AE2718A65441AE47E12A25E95041F6285CDF17A654413333331325E95041F6285C7F17A654413333335324E95041B81E85FB16A65441713D0AE723E950413333332316A65441AE47E14A23E950413333339315A65441713D0A1721E95041B81E85DB15A65441333333A31FE950417B14AE6717A65441EC51B82E1EE95041F6285CDF17A65441713D0AC71CE95041B81E853B19A65441333333C31AE950417B14AE371AA65441EC51B81E19E95041F6285CCF1BA65441EC51B86E17E950417B14AE771CA65441AE47E12A16E95041F6285C7F1DA65441EC51B86E14E95041F6285C3F1EA65441333333D313E95041B81E853B1FA65441AE47E1DA11E95041F6285C1F20A65441EC51B84E10E95041B81E85DB21A65441EC51B82E0FE95041B81E853B22A65441333333630EE950417B14AE0723A65441333333D30DE95041B81E851B24A65441EC51B8BE0CE95041F6285C9F24A65441AE47E13A0CE95041F6285C9F24A65441713D0A170CE95041B81E858B26A65441EC51B86E0BE950417B14AE5727A65441713D0A970AE950417B14AE5727A65441713D0A4709E95041B81E859B28A65441713D0AB708E950417B14AEA728A654413333336308E950417B14AEE727A65441AE47E13A09E950417B14AE9726A65441713D0AE708E95041B81E853B25A65441713D0AF707E950417B14AE1725A654413333335306E950413333337326A65441AE47E17A05E950417B14AEC726A65441713D0A0704E950417B14AE1728A65441EC51B8CE02E950417B14AE7728A65441713D0AD700E950417B14AEC729A65441AE47E11A00E95041E17A141E2BA65441D7A3701DFDE850417B14AE8732A65441F6285C7FFCE850411F85EB5138A65441713D0A87FCE850413D0AD73339A65441EC51B82EFDE850413D0AD73339A65441EC51B85EFDE85041F6285C9F39A6544133333323FDE850413D0AD7533AA6544133333393FCE850413D0AD7533AA6544185EB51F8FDE85041AE47E1DA44A65441EC51B80EFFE850413D0AD7C348A65441713D0A87FFE85041B81E851B48A65441EC51B85E00E950413D0AD73348A65441EC51B81E01E950417B14AEB748A65441EC51B80E02E950413D0AD7C34BA65441333333D301E950417B14AE174CA65441AE47E12A01E95041F6285C2F4CA654413333332300E95041B81E85FB4CA65441713D0AA700E950413D0AD7D34DA65441AE47E1CA03E95041B81E858B50A65441EC51B85E06E950413D0AD72352A65441EC51B83E08E950417B14AE2754A65441EC51B8FE08E95041B81E850B55A65441333333B309E950417B14AE7755A65441333333E309E95041F6285C1F56A65441333333C30BE950413D0AD73357A65441EC51B88E0CE950413D0AD78358A65441333333030EE950413D0AD7635AA65441713D0A170FE95041F6285C9F5AA65441AE47E19A0FE95041F6285C8F5BA65441333333A310E950417B14AE075CA65441713D0A9710E95041B81E85EB5CA65441713D0A2714E95041F6285CDF5FA65441AE47E15A19E950417B14AE1764A65441AE47E13A1BE950417B14AE7761A65441713D0A9719E95041333333A35FA65441AE47E1FA18E950417B14AE975FA6544109000000295C8FA204E950417B14AEC74AA65441AE47E11A05E95041333333E349A65441AE47E17A05E95041B81E85AB48A65441295C8FC205E950413333339348A65441713D0A3707E95041F6285C4F4AA65441295C8FB206E950417B14AE274BA65441EC51B8FE05E950417B14AE274BA65441713D0AB705E950417B14AEC74AA65441295C8FA204E950417B14AEC74AA6544110000000AE47E1BA01E950413333332346A65441295C8FB200E950413333335346A65441295C8FC2FFE850413333338343A65441295C8F32FFE850413333339342A65441AE47E10A00E950417B14AE3741A65441295C8F1201E95041F6285CEF40A65441295C8F7201E95041B81E852B41A65441713D0A5702E950413333334341A65441EC51B8FE02E95041F6285CEF40A65441713D0A0704E95041B81E854B42A65441713D0AD703E95041F6285CCF42A65441295C8F4204E95041F6285C7F44A65441713D0AA703E950413333336345A65441AE47E10A03E95041F6285CFF45A65441295C8FC202E95041B81E856B46A65441AE47E1BA01E950413333332346A654410103000000010000000F0000007B14AE770FE95041E17A14EED5A65441295C8FD210E9504152B81E65D6A65441EC51B83E11E9504100000070D6A65441295C8FD210E95041333333E3D5A654418FC2F52811E9504148E17AD4D4A65441E17A146E12E95041C3F5281CD4A65441295C8F4212E95041F6285CAFD3A65441B81E857B10E9504133333343D3A654410000003010E95041713D0AF7D2A654418FC2F5D80FE95041D7A3702DD3A65441AE47E1EA0EE95041666666B6D2A65441EC51B89E0EE95041E17A144ED3A6544148E17AB40EE95041713D0A47D4A6544185EB51680EE9504148E17A24D6A654417B14AE770FE95041E17A14EED5A6544101030000000100000022000000295C8F3216E95041F6285C3FDAA65441EC51B87E16E95041295C8FB2D9A65441EC51B87E16E95041A4703DFAD8A654411F85EB6117E9504185EB5178D8A654417B14AE5717E9504166666646D9A654411F85EB4117E95041D7A370BDD9A654411F85EB6117E950413D0AD7F3D9A654413D0AD7C317E950411F85EB91D9A65441333333F318E950418FC2F5E8D9A6544185EB51E818E9504166666646D9A65441F6285CFF1BE9504152B81EB5D7A654415C8FC2351CE9504133333333D7A65441333333E31CE950411F85EBF1D6A65441AE47E17A1DE95041EC51B87ED7A65441C3F528DC1DE950411F85EBA1D5A65441295C8FC21CE95041B81E859BD6A65441666666561CE950411F85EBD1D6A65441EC51B8BE1BE95041EC51B80ED6A65441A4703DBA1AE95041EC51B82ED6A654413D0AD7631AE950411F85EBF1D6A6544152B81E7519E950415C8FC285D6A654410AD7A35018E95041AE47E17AD6A654417B14AE5717E950411F85EBF1D6A654416666661617E9504148E17A94D7A65441295C8F3216E950419A999989D7A65441EC51B82E15E95041CDCCCC4CD8A654416666662613E95041C3F5280CD8A65441B81E851B13E95041EC51B8AED8A65441D7A3709D13E9504114AE4771D9A65441A4703D2A14E95041B81E853BD9A6544152B81E1514E950413D0AD7F3D9A65441295C8FC214E95041295C8FB2D9A65441C3F528DC15E95041295C8FB2D9A65441295C8F3216E95041F6285C3FDAA6544101030000000A00000003020000295C8F024AE95041F6285C7FB3A65441AE47E12A49E95041F6285C4FB3A65441295C8FA249E95041B81E857BB1A65441295C8FB24BE9504133333323B2A65441AE47E1FA4EE95041B81E85FBAFA65441EC51B8AE4FE950417B14AE67ADA65441295C8FD24FE95041B81E855BAAA65441713D0A5750E950417B14AE37AAA65441295C8FC250E95041F6285C3FA8A65441AE47E17A50E950417B14AE37A7A65441295C8FD24FE95041B81E852BA7A65441AE47E1FA4EE95041F6285C0FA8A65441295C8F624DE95041F6285C3FA8A65441EC51B86E4DE95041F6285C4FA7A65441EC51B8FE4DE95041B81E85CBA6A65441295C8FC24DE95041B81E853BA6A65441EC51B84E4CE95041F6285CFFA5A65441713D0A474BE950417B14AEC7A4A65441AE47E10A4BE9504133333313A4A65441EC51B83E4AE95041B81E858BA4A65441AE47E18A49E95041F6285CAFA4A65441713D0AA748E950417B14AE07A4A65441295C8FF247E95041F6285CFFA2A65441713D0AD748E95041B81E85DBA2A65441295C8FE248E95041B81E85FBA0A65441AE47E10A48E950417B14AEB79FA65441713D0AE747E95041333333439EA65441EC51B8AE46E950417B14AE779DA65441295C8FA246E95041F6285C9F9CA65441713D0A3746E95041F6285CDF9BA65441713D0A3746E95041B81E856B9AA65441295C8FB245E95041B81E859B9AA65441EC51B80E44E950413333336399A65441295C8F9244E95041F6285CDF98A65441AE47E11A44E95041B81E855B98A65441EC51B8DE43E950417B14AEA797A65441295C8FB242E95041F6285C8F97A65441AE47E12A43E950417B14AEE796A65441713D0AE741E950413333339396A65441AE47E1EA40E95041B81E85FB94A65441295C8F7240E95041333333B394A65441EC51B81E40E95041B81E853B94A65441713D0A7742E95041F6285C1F92A65441AE47E16A42E950413333335391A65441EC51B82E45E95041F6285C6F90A65441EC51B85E45E95041B81E85BB8FA65441713D0A2747E95041F6285C1F8FA65441AE47E10A48E95041333333A38FA65441EC51B85E48E950417B14AE5790A65441295C8F1249E95041B81E857B90A65441295C8F024AE950413333330390A65441AE47E1CA48E95041B81E853B8EA65441713D0AD748E95041F6285C3F8DA65441EC51B8FE47E950417B14AEC78CA65441EC51B86E47E95041F6285CEF8BA65441713D0A2747E95041F6285C6F8AA65441295C8FA246E950417B14AE278AA65441EC51B87E46E950417B14AEC789A65441EC51B88E45E95041333333A389A65441295C8F2245E95041F6285C0F8AA65441AE47E17A44E95041B81E856B8BA65441AE47E1BA43E95041B81E859B8BA65441295C8F9241E95041F6285CDF8CA65441AE47E12A40E95041F6285CAF8CA65441AE47E1CA3FE95041B81E852B8CA65441AE47E1EA3DE95041F6285C7F8CA65441295C8F223CE95041333333438CA65441295C8FC23BE950417B14AEB78AA65441AE47E1EA3AE950417B14AE9789A65441713D0AF73AE95041B81E850B88A65441EC51B8AE3AE950417B14AE8787A65441EC51B8EE39E950413333333387A65441295C8FE239E95041F6285CAF86A65441EC51B88E39E95041B81E858B86A65441713D0A4739E95041B81E853B85A65441295C8F8239E95041B81E85DB84A65441EC51B8FE38E95041B81E854B84A65441713D0AB738E950417B14AE3783A65441295C8FA237E950413333330381A65441EC51B87E37E950417B14AEA77FA65441AE47E15A37E95041333333337EA65441295C8FB236E95041333333837CA65441713D0AF737E950417B14AE977AA65441295C8F6238E950417B14AE1779A65441AE47E19A39E950417B14AE5778A65441713D0A673AE950417B14AE5778A65441713D0AC73AE95041F6285C0F78A65441295C8FA23AE95041B81E855B77A65441295C8FD23AE95041F6285C2F76A65441AE47E1DA3BE950417B14AEB775A65441713D0AA73CE950417B14AE1773A65441713D0A973DE950417B14AEC771A65441713D0AE73EE950417B14AE6771A65441EC51B88E3FE95041F6285CAF71A65441AE47E16A3FE95041B81E85CB70A65441EC51B8AE3DE950417B14AED770A65441295C8F123DE95041F6285C5F70A65441EC51B85E3CE95041F6285C8F70A65441EC51B86E3BE950413333335370A65441295C8F423AE95041F6285C8F70A65441EC51B85E39E950413333335370A65441AE47E17A38E95041F6285C5F70A65441EC51B84E37E95041333333F36FA65441AE47E1EA34E95041333333F36FA65441EC51B86E35E95041333333536DA65441295C8FD234E95041333333536DA65441EC51B87E34E95041333333C36CA65441AE47E1FA33E95041333333236DA65441713D0A3734E95041F6285CBF6DA65441713D0AE732E950417B14AE676EA65441AE47E18A31E95041333333836DA65441295C8FE230E950417B14AEA76DA65441295C8F2230E95041F6285CFF6CA65441AE47E15A31E95041F6285C3F6CA65441713D0A6731E950417B14AE076BA65441713D0A1730E95041F6285C8F6AA65441EC51B8AE2EE95041333333E36AA65441295C8FE22DE95041F6285CAF6BA65441295C8F622CE950417B14AE376BA65441295C8F022CE950413333336369A65441713D0AB729E95041F6285C7F68A65441AE47E1BA28E95041333333A368A65441AE47E18A25E950417B14AEB766A65441AE47E18A25E95041B81E85BB65A65441713D0A7724E95041B81E853B64A65441713D0A8723E950417B14AEB763A65441295C8FA222E95041B81E855B65A65441713D0A1721E95041F6285C1F65A65441EC51B84E1FE95041B81E85AB63A65441EC51B8EE1EE95041333333C363A65441713D0AA71EE950413333335364A65441AE47E12A1FE95041B81E85FB64A65441713D0A671FE95041F6285C0F66A65441AE47E10A1EE950417B14AE8766A65441AE47E16A1EE95041F6285C5F67A65441713D0A671FE95041B81E855B68A65441AE47E12A22E950413333333369A65441EC51B85E24E95041333333B36AA65441EC51B8AE25E95041333333A36BA65441AE47E1AA26E95041B81E85EB6BA65441295C8F5227E95041F6285C4F6BA65441EC51B84E28E95041333333736BA65441295C8F9229E950417B14AE176DA65441AE47E16A2AE95041B81E859B6DA65441713D0A872FE950413333332370A65441295C8F1231E95041333333A371A65441713D0A9731E950417B14AEB772A65441AE47E13A33E95041F6285C1F74A65441713D0AF731E95041B81E85DB78A65441EC51B87E31E950417B14AE177CA65441AE47E12A31E950417B14AEA77CA65441EC51B84E31E950417B14AEF77DA65441EC51B85E30E95041333333037EA65441295C8FC22FE95041333333937EA65441EC51B87E2EE950417B14AE0780A65441713D0A572FE95041B81E85BB80A65441713D0A872FE95041B81E852B80A65441EC51B8EE30E95041333333237FA65441713D0A6731E95041333333937EA65441295C8F0232E950417B14AE777FA65441713D0AE732E95041333333E37FA65441295C8F8233E95041F6285C4F80A65441EC51B83E32E95041B81E85DB81A65441AE47E14A32E95041333333B382A65441AE47E11A32E95041F6285C4F83A65441295C8F9232E95041333333F384A65441713D0A7733E95041333333C384A65441EC51B8EE33E95041F6285C5F85A65441295C8F8233E95041333333E385A65441AE47E1CA33E95041F6285CAF86A65441AE47E1CA33E950413333339387A65441713D0A6734E950417B14AE1788A65441EC51B89E35E95041B81E85FB88A65441EC51B8EE36E95041B81E85FB88A65441713D0A7736E95041333333638AA65441AE47E1BA34E95041F6285CEF8BA65441AE47E1FA33E95041F6285CFF8DA65441713D0AE735E95041333333B391A65441295C8F8236E95041333333B391A65441EC51B8EE36E95041B81E85AB93A65441EC51B83E38E950417B14AE1794A65441AE47E11A3BE950417B14AEC798A65441EC51B80E3BE950417B14AE479AA65441713D0A673AE95041333333139BA65441AE47E1EA3AE950417B14AE679BA65441295C8F923BE95041F6285CCF9CA65441EC51B8FE3BE950417B14AEE79CA65441EC51B8EE3CE95041333333B39DA65441713D0A073DE950417B14AE379EA65441AE47E16A3CE950417B14AE579FA65441AE47E13A3CE950417B14AEF7A1A65441713D0AA73CE95041B81E854BA2A65441EC51B8EE3CE950417B14AE17A3A65441713D0A673DE950417B14AE77A3A65441EC51B87E3DE950417B14AE07A4A65441295C8F623EE95041B81E85EBA4A65441AE47E16A3FE95041F6285CDFA4A65441295C8F823FE95041F6285C6FA5A65441AE47E18A40E95041F6285C6FA5A65441EC51B89E41E950417B14AE47A6A65441EC51B82E42E9504133333353A6A65441EC51B8BE42E950417B14AE07A7A65441EC51B8BE42E95041F6285CCFA8A65441AE47E15A43E9504133333343AAA65441AE47E12A43E95041333333D3AAA65441295C8F4243E95041F6285C2FACA65441AE47E10A42E9504133333303AEA65441295C8F6241E950417B14AE27AEA65441AE47E14A41E95041F6285CDFADA65441295C8F823FE95041B81E85FBACA65441EC51B85E3FE95041B81E856BACA65441AE47E1DA3EE9504133333363ABA65441EC51B84E3DE95041333333B3ACA65441EC51B8BE3CE950417B14AE97ADA65441713D0AB73BE950417B14AEE7ABA65441EC51B82E39E950417B14AEB7ABA65441EC51B8FE38E95041F6285C6FABA65441295C8FD237E95041F6285CCFABA65441295C8FA237E95041B81E85BBAAA65441295C8FB236E950417B14AE37AAA65441713D0A7736E95041333333B3A9A65441AE47E17A35E950417B14AE37AAA65441295C8F0235E95041F6285CEFA9A65441713D0AC734E9504133333343AAA65441EC51B8AE34E9504133333333ABA65441713D0AD733E95041B81E854BABA65441713D0A4733E950417B14AEF7AAA65441713D0A5732E95041F6285C9FABA65441713D0A8732E950417B14AED7ACA65441EC51B82E33E95041F6285CAFADA65441713D0A1733E95041B81E850BAFA65441295C8F5233E9504133333313B0A65441AE47E17A35E95041F6285CAFB0A65441295C8F2236E9504133333383B2A65441295C8F1237E95041B81E852BB3A65441AE47E15A37E950417B14AE57B4A65441295C8FD237E95041F6285C6FB4A65441AE47E1DA38E95041B81E851BB4A65441EC51B82E39E95041333333D3B3A65441713D0A673AE95041B81E851BB4A65441713D0AF73AE95041F6285C0FB4A65441713D0A573BE95041B81E85ABB4A65441295C8FF23BE95041F6285C2FB5A65441AE47E19A3CE950417B14AE07B6A65441295C8F223FE950417B14AEB7B7A65441295C8F523FE95041B81E857BB7A65441713D0AD73FE950417B14AEE7B7A65441713D0AD73FE9504133333393BAA65441EC51B86E3EE95041B81E859BBBA65441EC51B86E3EE9504133333313BCA65441713D0AE73EE950417B14AE07BCA65441EC51B85E3FE95041B81E85EBBCA65441295C8F4240E950417B14AEB7BDA65441295C8FB23FE950417B14AE37BFA65441EC51B84E3DE950417B14AE27C0A65441295C8FD23AE950417B14AE67C2A65441EC51B88E39E95041B81E852BC2A65441AE47E1CA36E95041F6285C8FC1A65441EC51B88E36E95041F6285C4FC2A65441295C8FE236E95041333333D3C2A65441295C8FE236E95041F6285C6FC3A65441AE47E13A36E950417B14AEB7C3A65441713D0A2735E950417B14AED7C4A65441AE47E12A34E950417B14AE07C5A65441AE47E1FA33E950417B14AE97C5A65441AE47E10A33E950417B14AE57C6A65441EC51B89E32E950417B14AE67C5A65441AE47E11A32E950417B14AE37C5A65441EC51B8AE31E95041B81E85CBC4A65441295C8F5230E95041333333B3C4A65441AE47E1DA2FE950417B14AE97C5A65441AE47E1DA2FE950417B14AEF7C5A65441AE47E14A2FE95041333333C3C6A65441AE47E1BA2EE95041F6285CCFC6A65441EC51B81E2EE9504133333353C7A65441AE47E19A2DE9504133333353C7A65441295C8F122BE950417B14AEC7C8A65441AE47E19A2AE950417B14AE97C8A65441713D0A472AE95041F6285C0FC9A65441713D0A6728E9504133333373C8A65441AE47E17A26E95041333333A3C8A65441AE47E15A25E950417B14AE47C7A65441AE47E18A25E95041333333F3C6A65441AE47E1FA24E95041B81E856BC4A65441295C8FF223E9504133333393C3A65441713D0A2723E95041B81E85DBC3A65441713D0A9722E950417B14AEA7C4A65441AE47E1BA22E95041B81E858BC5A65441EC51B8FE20E95041B81E850BC7A65441AE47E1DA20E950417B14AEA7C7A65441713D0A471EE95041B81E85CBC7A65441713D0A271DE9504133333353C7A65441295C8F321DE95041B81E85ABC6A65441EC51B82E1BE95041B81E851BC6A65441295C8F321AE950417B14AE37C5A65441EC51B8FE17E95041F6285C5FC4A65441EC51B80E17E95041F6285C5FC4A65441713D0AA715E95041F6285CCFC3A65441AE47E19A15E95041F6285C0FC3A65441EC51B89E14E950417B14AEB7C3A65441295C8F3214E9504133333393C3A65441AE47E13A12E950417B14AE87C6A65441295C8F7213E95041F6285C9FC6A65441713D0A5714E95041F6285CFFC6A65441713D0AB714E95041B81E85ABC6A65441713D0A7715E95041B81E850BC7A65441713D0A7715E95041B81E85CBC7A65441EC51B88E15E95041F6285CAFC8A65441EC51B8CE14E95041F6285C9FC9A65441EC51B86E14E950417B14AE87C9A65441EC51B8DE13E95041B81E853BCAA65441295C8FD213E950417B14AE77CAA65441AE47E14A14E95041F6285C8FCAA65441295C8FC214E95041F6285C1FCBA65441AE47E13A15E95041333333B3CAA65441295C8FD216E95041B81E85FBCAA65441EC51B8DE16E9504133333383CAA65441AE47E14A17E950417B14AE47CAA65441AE47E11A17E95041B81E859BC7A65441713D0AA718E9504133333353C7A65441AE47E1EA19E95041333333C3C6A65441713D0A571AE950417B14AE37C8A65441713D0AF719E9504133333333C9A65441EC51B8AE19E95041333333C3C9A65441AE47E10A1BE95041B81E853BCAA65441EC51B81E1CE9504133333323CAA65441EC51B8DE1CE950417B14AE77CAA65441295C8F021DE95041F6285CEFCAA65441EC51B86E1DE95041B81E855BCBA65441EC51B86E1DE95041333333A3CBA65441EC51B81E1CE95041333333A3CBA65441EC51B8EE1BE9504133333313CBA65441713D0A271AE95041F6285C7FCBA65441295C8FA219E950417B14AEC7CBA65441AE47E14A1AE9504133333363CCA65441AE47E16A1BE9504133333363CCA65441EC51B87E1CE95041B81E859BCDA65441713D0A271DE95041333333E3CDA65441EC51B8FE1DE95041F6285CEFCDA65441713D0A471EE9504133333313CEA65441713D0AD71EE950417B14AED7CDA65441EC51B8BE21E95041F6285C8FCDA65441EC51B84E22E95041F6285C2FCDA65441713D0AC722E95041B81E856BCDA65441AE47E17A23E9504133333353CDA65441EC51B82E24E95041333333E3CDA65441295C8FC223E950417B14AEB7CFA65441AE47E1DA23E95041F6285C8FD0A65441295C8F7225E95041F6285CEFD0A65441AE47E1EA25E95041F6285C8FD0A65441EC51B8CE26E95041B81E85CBD0A65441713D0A4727E950417B14AE97D1A65441713D0AE726E950417B14AE77D3A65441EC51B85E27E95041B81E858BD4A65441EC51B8CE26E95041F6285C3FD5A65441AE47E1CA24E95041B81E851BD5A65441EC51B89E23E95041B81E85FBD3A65441AE47E14A23E95041F6285C1FD4A65441295C8F3223E95041F6285C0FD5A65441713D0A6722E950417B14AE87D5A65441295C8FD222E95041B81E850BD6A65441EC51B87E22E95041F6285C5FD6A65441AE47E19A21E95041F6285CCFD5A65441295C8F8221E9504133333323D6A65441295C8F6223E95041F6285CAFD7A65441EC51B89E23E950417B14AEC7D7A65441713D0AB723E9504133333313D7A65441AE47E1EA25E95041F6285C7FD7A65441AE47E14A26E95041B81E85FBD6A65441295C8F5227E95041B81E85CBD6A65441EC51B81E28E950417B14AE37D7A65441713D0A172AE95041B81E85CBD6A65441295C8FA22BE95041333333F3D5A65441713D0A772DE950417B14AE77D6A65441EC51B8EE2DE950417B14AEC7D7A65441EC51B80E2FE95041333333F3D8A65441EC51B8CE2FE950417B14AE17D9A65441EC51B82E30E95041F6285CCFD8A65441295C8F8230E9504133333323D9A65441AE47E12A31E95041F6285C2FD9A65441295C8FA231E950417B14AE07DAA65441AE47E17A32E950417B14AE37DAA65441713D0A4733E95041B81E85ABDBA65441EC51B89E32E950417B14AEA7DCA65441AE47E13A33E95041F6285C1FDDA65441713D0A7733E950417B14AEF7DDA65441AE47E1FA33E95041333333C3DEA65441AE47E1FA33E95041B81E859BDFA65441AE47E1EA34E950417B14AEF7E3A65441EC51B87E34E95041F6285CBFE5A65441AE47E1BA34E95041F6285C8FE8A65441713D0A0734E95041F6285C4FE9A65441EC51B8BE33E95041B81E857BEAA65441EC51B8FE32E95041F6285CCFEAA65441EC51B80E32E950417B14AE57EAA65441AE47E15A31E95041F6285CDFE9A65441EC51B87E31E95041F6285C7FE9A65441EC51B88E30E95041B81E859BE8A65441AE47E10A30E950417B14AE77E8A65441295C8FB22DE95041F6285C3FE7A65441AE47E13A2DE950417B14AE17E8A65441295C8FC22CE9504133333373ECA65441AE47E12A2EE950417B14AE37ECA65441EC51B81E2EE95041B81E856BEBA65441295C8F022FE950417B14AE17EBA65441295C8F2230E95041F6285CBFEBA65441295C8F7231E95041F6285C1FECA65441AE47E15A31E95041B81E856BEBA65441295C8F3232E95041B81E850BEBA65441295C8F8233E95041B81E858BECA65441295C8F6232E950417B14AEE7EDA65441295C8F6232E95041B81E859BEEA65441713D0AE732E95041B81E852BEFA65441295C8F9232E95041B81E85BBEFA65441713D0A9734E95041F6285C4FEFA65441295C8FD234E9504133333383EEA65441AE47E15A34E950417B14AE17EEA65441EC51B84E34E950417B14AE87EDA65441EC51B83E35E9504133333333EDA65441AE47E19A36E950417B14AE87EDA65441713D0AD736E95041B81E85CBEEA65441AE47E1BA37E950417B14AE57F0A65441AE47E17A38E9504133333373EFA65441AE47E1CA39E950417B14AED7EEA65441713D0A673AE95041333333A3EFA65441713D0A973AE9504133333393F0A65441AE47E13A3CE950417B14AEE7F0A65441713D0A773CE95041B81E856BF1A65441295C8F723DE95041F6285CAFECA65441EC51B88E3CE95041F6285C0FEDA65441295C8F023BE9504133333303EDA65441295C8F423AE950417B14AE37ECA65441EC51B81E3AE95041F6285C5FEBA65441713D0A673AE950417B14AEE7EAA65441EC51B8BE39E950417B14AE27EAA65441AE47E1DA38E95041B81E851BEAA65441AE47E11A38E95041F6285CAFE9A65441AE47E18A37E95041F6285C5FE8A65441713D0AA736E95041B81E85DBE7A65441713D0A2735E95041F6285C0FE7A65441EC51B89E35E950417B14AEF7E0A65441AE47E10A36E95041F6285C5FDFA65441AE47E19A36E95041F6285C9FDEA65441713D0A0737E95041F6285C1FDDA65441713D0A2738E950417B14AED7DCA65441295C8FF238E950417B14AE07DDA65441295C8F8239E950417B14AE07DDA65441295C8F123AE95041F6285C4FDDA65441295C8FD23AE95041F6285C1FDDA65441295C8F323BE9504133333383DCA65441713D0AE73BE9504133333323DCA65441EC51B8FE3BE95041B81E85BBDAA65441EC51B88E3CE9504133333313DAA65441EC51B8FE3BE95041B81E856BD9A65441713D0AE73BE9504133333393D8A65441AE47E1AA3BE950417B14AEC7D7A65441EC51B82E3CE950417B14AE67D7A65441713D0A473CE950417B14AEA7D6A65441AE47E18A3DE950417B14AE57D5A65441713D0A273EE95041B81E85ABD5A65441295C8F923EE950417B14AEC7D4A65441AE47E12A40E950417B14AE67D4A65441AE47E12A40E950417B14AEF7D4A65441EC51B84E40E95041F6285C9FD5A65441EC51B84E40E9504133333383D6A65441713D0A473FE950417B14AEA7D6A65441713D0A473FE95041B81E855BD7A65441EC51B8FE3EE9504133333303D8A65441295C8FB23FE95041B81E857BD8A65441295C8F7240E95041B81E854BD8A65441295C8F3241E95041F6285CAFD7A65441EC51B8FE41E95041B81E858BD7A65441295C8F1243E95041B81E857BD8A65441AE47E1FA42E95041F6285CFFD8A65441EC51B87E43E95041B81E85CBD9A65441713D0A9743E95041B81E858BDAA65441295C8F6244E95041F6285CDFDAA65441295C8F3244E95041333333C3DBA65441AE47E14A47E950417B14AE77DCA65441295C8F5248E95041F6285C5FDCA65441AE47E1CA48E9504133333313DDA65441EC51B83E4AE9504133333373DDA65441713D0A574AE95041B81E852BDDA65441713D0A374CE95041B81E858BDDA65441AE47E1CA4EE950417B14AEC7DDA65441AE47E18A4FE950417B14AE57DEA65441AE47E1BA52E950417B14AE47DFA65441AE47E1EA52E95041B81E850BDFA65441713D0AA754E95041F6285C8FDFA65441AE47E17A56E950417B14AEA7DFA65441EC51B81E58E95041F6285C7FE0A65441AE47E1CA5AE950417B14AE87E1A65441EC51B8CE5BE95041D7A370BDE1A65441713D0A175DE95041F6285CCFE1A65441EC51B87E5EE95041F6285C2FE2A65441AE47E11A62E95041F6285C2FD9A65441295C8F3259E95041B81E853BD6A65441AE47E1EA4FE95041F6285CEFD3A65441EC51B8AE4FE95041333333D3D4A65441295C8FC24DE95041F6285CAFD4A65441AE47E11A4DE95041B81E85FBD3A65441295C8F324DE95041F6285C8FD3A65441713D0AD74BE9504133333323D3A65441295C8F824BE950417B14AED7D3A65441EC51B8CE4AE950417B14AE07D4A65441713D0AF749E9504133333383D3A65441AE47E11A4AE95041333333C3D2A65441EC51B88E45E95041F6285C4FD1A65441AE47E1EA43E95041B81E852BD1A65441AE47E18A40E950417B14AEE7CFA65441713D0AE73EE950417B14AEB7CFA65441333333933EE950413D0AD7D3CEA65441295C8F323EE95041F6285CEFCDA65441713D0AB747E95041B81E850BB5A65441295C8F024AE95041F6285C7FB3A6544109000000EC51B80E3EE950417B14AE77D3A65441713D0AA73CE950417B14AEA7D3A65441295C8F223CE95041B81E856BD3A65441713D0A173CE95041B81E85BBD1A65441713D0AA73CE95041F6285C1FD1A65441295C8F423DE95041B81E852BD1A65441713D0AC73DE95041B81E85BBD1A65441AE47E14A3EE95041F6285CCFD2A65441EC51B80E3EE950417B14AE77D3A6544107000000713D0AB74AE950417B14AE77D6A65441295C8FE24BE95041F6285CCFD5A65441713D0A974CE95041F6285C5FD6A65441AE47E15A4CE95041B81E852BD7A65441AE47E1FA4BE95041F6285CBFD6A65441295C8F224BE95041B81E85CBD6A65441713D0AB74AE950417B14AE77D6A6544111000000EC51B82E48E95041333333A3D7A65441EC51B8BE48E95041B81E85FBD6A65441713D0AD748E9504133333353D6A65441713D0AC749E95041F6285C4FD7A65441AE47E1BA49E95041B81E85EBD7A65441713D0A874AE95041B81E851BD8A65441EC51B8FE4AE95041F6285CDFD7A65441295C8F524BE950417B14AE57D8A65441AE47E1CA4BE950417B14AE57D8A65441713D0A674CE95041333333C3D8A65441AE47E18A4CE95041F6285CEFD9A65441295C8FB24BE95041B81E85BBDAA65441713D0A574AE950417B14AE97DAA65441295C8FA249E95041333333F3D8A65441295C8FA249E95041B81E854BD8A65441EC51B8EE48E950417B14AE57D8A65441EC51B82E48E95041333333A3D7A6544108000000295C8FB254E95041333333E3D9A65441EC51B8EE54E950417B14AE97DAA65441EC51B82E54E95041B81E854BDBA65441EC51B89E53E95041F6285C3FDBA65441AE47E18A52E95041B81E858BDAA65441713D0A9752E950417B14AE37DAA65441EC51B83E53E95041333333B3D9A65441295C8FB254E95041333333E3D9A6544113000000295C8FB224E9504133333373CBA65441EC51B86E23E95041B81E855BCBA65441713D0A8723E950417B14AE97CBA65441EC51B87E22E950417B14AE97CBA65441713D0A7721E95041F6285C0FCCA65441AE47E1EA1FE95041F6285C4FCBA65441EC51B80E20E95041F6285C2FCAA65441EC51B8AE1FE95041F6285CFFC9A65441EC51B8AE1FE9504133333333C9A65441EC51B86E20E95041333333A3C8A65441295C8FB221E950417B14AEC7C8A65441295C8F4222E95041B81E854BC9A65441295C8FD222E950417B14AEE7C9A65441713D0AC722E95041B81E859BCAA65441713D0AB723E95041F6285CBFCAA65441713D0A4724E9504133333393C9A65441295C8F4225E95041F6285C5FCAA65441EC51B84E25E95041F6285CEFCAA65441295C8FB224E9504133333373CBA6544109000000AE47E1AA3EE95041B81E852BC2A65441713D0AA73FE95041B81E85BBC2A65441AE47E1CA3FE950417B14AE57C3A65441713D0A473FE9504133333383C4A65441AE47E1AA3EE9504133333323C4A65441295C8FD23DE950417B14AE17C4A65441AE47E1EA3DE950417B14AE27C3A65441295C8F323EE95041F6285C4FC2A65441AE47E1AA3EE95041B81E852BC2A654410D000000EC51B8AE31E950417B14AED77CA65441713D0AE732E950417B14AEF77AA65441713D0AE732E950417B14AE4779A65441AE47E17A32E950417B14AEE778A65441AE47E13A33E95041F6285C9F78A65441713D0AC734E95041B81E856B79A65441295C8FD234E95041333333D37AA65441295C8F4234E95041F6285C6F7BA65441295C8F4234E95041333333837CA65441713D0A6734E95041B81E855B7DA65441295C8FE233E95041333333D37DA65441EC51B82E33E950417B14AEF77DA65441EC51B8AE31E950417B14AED77CA6544107000000AE47E1EA49E95041B81E85BBADA65441295C8F024AE9504133333353ACA65441295C8F224BE95041F6285CFFABA65441AE47E1FA4BE950417B14AEE7ABA65441295C8F524BE950417B14AE67ADA65441295C8FC24AE950417B14AEC7ADA65441AE47E1EA49E95041B81E85BBADA654410A000000AE47E17A4DE950417B14AEE7AEA65441AE47E1AA4DE950417B14AED7AFA65441713D0AF74CE95041333333A3B0A65441295C8F824BE95041333333A3B0A65441EC51B8CE4AE95041B81E852BB0A65441713D0A874AE95041B81E857BAEA65441EC51B88E4BE95041F6285C6FAEA65441AE47E1BA4CE95041F6285CDFADA65441AE47E1AA4DE950417B14AEF7ADA65441AE47E17A4DE950417B14AEE7AEA6544101030000000B00000038030000666666F6BAE85041666666A6DBA75441F6285CAFB9E850417B14AEE7D9A75441A4703DEAB9E85041CDCCCCECD7A75441713D0AA7BAE850411F85EBD1D6A7544152B81E05BBE85041A4703DFAD4A7544148E17A14BCE8504152B81E75D3A75441A4703D6ABDE8504114AE4701D0A7544166666606BFE85041D7A3702DCFA7544100000080C0E85041AE47E1DACEA754413D0AD733C2E85041B81E85EBCCA754411F85EB91C6E8504185EB51F8BEA75441D7A3705DCBE85041E17A140EB0A75441000000D0CAE85041000000B0AFA75441F6285C3FC9E8504152B81E75AFA75441F6285C7FC7E8504148E17AC4AEA754413D0AD7B3C5E85041E17A146EADA75441CDCCCC8CC4E850415C8FC2A5ACA754413D0AD733C2E85041D7A370DDABA75441C3F5283CC1E85041EC51B8CEAAA75441E17A14FEBFE85041C3F5287CAAA75441333333E3BEE85041E17A143EA9A7544114AE4741BFE85041CDCCCC8CA8A75441F6285CBFC1E85041295C8F32A9A75441CDCCCC1CC2E850413D0AD703A8A75441295C8F42CAE85041E17A146E9BA754417B14AE07CAE850418FC2F5C89AA7544114AE4771CAE85041000000309AA7544166666616CBE85041AE47E18A99A754419A999939CBE8504148E17A6498A75441333333D3CBE8504185EB517897A754410AD7A3A0CAE850419A99996996A7544185EB51B8CAE8504148E17AC495A754418FC2F568CBE85041C3F528FC94A75441713D0AA7CCE8504114AE472192A75441A4703DAACDE85041B81E85AB91A7544114AE47D1CEE8504152B81E8590A75441A4703D6ACFE850415C8FC2758FA75441AE47E16AD1E85041E17A141E8EA75441AE47E10AD2E8504185EB51488CA75441AE47E16AD4E8504185EB512888A75441F6285CBFD5E850418FC2F54887A75441713D0AA7D6E850413D0AD72387A75441E17A145ED6E85041EC51B89E86A75441B81E85EBD6E85041713D0AF784A75441EC51B80ED7E85041333333F383A7544152B81E35D8E850411F85EB5184A754410AD7A370D8E850415C8FC22585A75441EC51B8AED9E85041E17A140E85A75441EC51B88EDAE850415C8FC20586A754411F85EB71DAE850418FC2F5E886A754411F85EBC1DBE85041A4703D2A86A754415C8FC285DDE85041295C8F6284A75441AE47E10ADDE85041D7A3705D84A7544152B81E95DCE85041C3F528FC82A7544133333313DCE85041CDCCCCEC81A75441A4703D7ADBE85041E17A14FE7FA7544148E17A04DBE850410AD7A3707FA75441666666C6D9E85041D7A3706D7EA754413D0AD793D8E85041333333237DA75441CDCCCC2CD9E85041D7A370AD7CA754411F85EBF1D8E85041D7A370CD7BA75441666666E6D8E85041B81E854B7BA754417B14AE87D8E85041F6285C8F7AA75441D7A370BDDAE850417B14AE377CA75441AE47E14ADBE85041333333437CA754410AD7A3C0DBE85041A4703D8A7CA75441CDCCCCCCDBE850415C8FC2757DA754411F85EB91DBE85041B81E85EB7DA75441F6285C1FDCE850410AD7A3907EA754419A999989DCE85041A4703DDA7FA7544185EB5178DEE850415C8FC21580A754410AD7A340DFE85041F6285C7F80A7544114AE47F1DFE850410AD7A3707FA75441295C8FC2DFE85041F6285CBF7EA75441C3F5282CE0E85041D7A3706D7EA75441E17A14AEE0E850419A9999697DA75441713D0A67E0E850410AD7A3F07BA75441AE47E1AADFE850418FC2F5F87AA754417B14AE87DFE850411F85EB017AA75441666666B6DFE850419A99993979A754411F85EB81E1E85041000000C077A754415C8FC2A5E1E8504148E17AD476A7544185EB51F8E1E850413333335376A754415C8FC2A5E1E850415C8FC2C575A75441CDCCCC9CE2E850416666669675A75441EC51B81EE3E850418FC2F5E875A75441295C8FF2E3E85041E17A148E76A7544148E17A74E4E850419A99999976A754411F85EB01E5E85041B81E853B76A75441A4703DCAE5E85041A4703D8A75A7544148E17A34E6E85041713D0A8774A75441333333A3EBE85041AE47E14A70A75441B81E856BECE850410000001070A75441713D0A57EDE85041295C8F6270A7544148E17AE4EDE85041000000D071A754411F85EB71EEE8504185EB519872A75441000000B0EFE85041000000D071A75441C3F528BCEFE850410AD7A3C070A75441A4703D1AF0E850417B14AE2770A75441B81E855BF2E85041CDCCCC0C6FA75441B81E853BF3E850417B14AE676EA754415C8FC2A5F3E85041CDCCCC4C6DA754413D0AD723F3E850411F85EB316CA7544100000030F3E8504185EB51E86AA754415C8FC2A5F3E850415C8FC2B569A75441D7A3709DF4E85041EC51B88E68A7544185EB51D8F4E850418FC2F51868A75441333333F3F5E8504185EB516867A754417B14AE77F7E850411F85EB2167A7544114AE47F1F8E85041EC51B85E64A75441EC51B89EF8E85041EC51B87E63A75441C3F5284CF8E850413D0AD72364A754418FC2F528F8E8504148E17AD464A75441EC51B8BEF7E85041E17A143E65A754410AD7A380F6E85041C3F528EC64A754415C8FC245F6E8504148E17AF463A7544185EB5198F6E85041EC51B87E63A75441666666F6F6E850417B14AE5762A75441333333D3F6E85041713D0AA761A754410AD7A380F6E85041E17A14EE61A75441EC51B8FEF5E85041333333B361A754411F85EB41F5E85041B81E859B61A75441B81E85FBF4E85041CDCCCC1C62A7544166666656F4E85041CDCCCC3C61A754418FC2F5A8F4E850419A99993960A754413D0AD7C3F5E850416666661660A7544114AE4751F6E850415C8FC2A55DA754413D0AD783F7E850418FC2F5A85EA7544114AE4711F8E8504114AE47915EA75441EC51B89EF8E85041D7A3707D5FA75441C3F5280CFAE850418FC2F5E85CA75441C3F5280CFAE85041000000505CA75441C3F528ECFAE850415C8FC2C55CA75441000000E0FAE850415C8FC2E55BA7544114AE47D1F9E85041713D0AD75AA75441A4703D8AF9E8504152B81E555AA75441A4703D8AF9E8504148E17AA459A75441713D0A87F8E85041713D0AF759A75441C3F5284CF8E8504185EB519859A754417B14AE77F7E850411F85EB115BA7544114AE4731F7E85041A4703D1A5AA7544185EB5198F6E85041333333B35AA7544166666656F4E85041B81E852B58A7544133333333F4E850411F85EB9157A75441E17A146EF4E85041EC51B86E57A7544133333353F3E85041C3F5283C56A7544100000030F3E85041333333A355A7544133333373F2E850410AD7A35055A754417B14AE47F3E850418FC2F55854A754415C8FC2A5F3E85041713D0AB754A754415C8FC285F4E85041EC51B8EE53A75441713D0AE7F5E850417B14AED753A75441E17A142EF6E85041295C8F1254A75441A4703DEAF6E85041AE47E1FA53A75441AE47E10AF6E8504152B81E8553A7544148E17A14F9E850410AD7A3B052A754417B14AE17FAE85041E17A143E53A75441713D0A87F8E850411F85EBA151A75441AE47E13AFAE85041D7A370AD51A75441AE47E13AFAE850415C8FC2B550A75441D7A370ADF9E85041A4703DAA50A75441CDCCCCFCF8E850419A9999F94FA754413D0AD783F7E85041000000604FA75441EC51B8DEF6E85041713D0AC74EA754413D0AD7A3F6E85041295C8FD24EA7544185EB5198F6E8504185EB51484FA75441D7A370BDF3E85041D7A3700D4FA754415C8FC2A5F3E85041CDCCCC5C4EA75441C3F528ECF3E850417B14AEB74DA7544152B81ED5F3E850418FC2F5C84BA7544114AE47D1F2E850419A9999994BA75441E17A14CEF1E85041333333734AA75441713D0AF7EFE85041AE47E1AA49A7544114AE4781EFE850410AD7A34049A754415C8FC245EFE85041E17A140E48A75441713D0AF7EFE85041333333D347A75441A4703DFAF0E85041D7A3707D46A754419A999969EFE85041D7A3709D45A754417B14AEC7EFE85041713D0A7744A7544148E17AA4EFE85041666666C643A75441713D0AF7EFE8504152B81E1543A75441E17A14EEF0E85041CDCCCC4C42A75441E17A14CEF1E850417B14AE8742A75441295C8FA2F2E8504114AE472143A754410AD7A300F3E85041F6285C5F44A75441F6285C7FF2E85041A4703D7A45A75441D7A370BDF3E85041E17A140E48A75441000000F0F4E85041B81E859B48A754413D0AD7A3F6E85041B81E859B48A754410AD7A360F7E8504152B81E3549A75441295C8FB2F7E85041D7A370FD49A75441C3F5286CF7E85041666666964AA754417B14AE77F7E85041713D0A274CA75441713D0AA7F7E85041666666364DA7544152B81EC5F9E850419A9999594DA75441EC51B85EFAE85041F6285CEF4CA7544133333303FBE850411F85EB414DA75441E17A141EFCE850413D0AD7E34CA7544185EB5188FCE85041B81E85FB4CA754410AD7A390FBE850419A9999394EA75441A4703D6AFAE8504152B81E454EA75441D7A3708DFAE850413D0AD7A34EA7544166666606FCE85041F6285CAF4EA75441AE47E1FAFBE850411F85EB014FA7544185EB51A8FBE85041000000604FA754413D0AD793FCE85041AE47E19A4FA7544100000080FDE850419A9999194FA75441D7A370EDFEE850419A9999194FA7544100000040FFE85041F6285C8F4FA754416666666600E95041CDCCCCFC50A75441F6285C1F00E950418FC2F5B851A7544185EB510800E950413333330353A75441C3F528DC00E95041295C8F1254A754411F85EB5101E95041C3F5283C56A75441E17A143E02E9504114AE47E156A754416666660603E95041B81E856B56A754415C8FC2E503E95041F6285C5F56A754415C8FC2E503E95041EC51B8AE55A75441A4703DFA02E95041CDCCCC0C56A75441EC51B8EE02E950418FC2F57853A754416666662602E95041B81E85EB52A75441713D0AD702E95041CDCCCCFC50A7544148E17A4404E9504114AE471150A754417B14AE4705E9504185EB512850A75441AE47E12A07E95041B81E852B51A754415C8FC26507E95041B81E850B52A75441EC51B8FE07E9504185EB51E851A754419A99991909E950411F85EB8152A75441713D0AA709E9504185EB51A853A75441AE47E1FA0DE95041CDCCCC3C4FA75441B81E851B0DE95041C3F5286C4FA75441C3F528EC0CE95041D7A3700D4FA75441A4703D4A0DE950411F85EB414DA75441666666760CE950410AD7A3C04CA75441E17A14CE0AE950418FC2F5884DA754411F85EBE109E95041EC51B81E4DA7544185EB517809E95041E17A146E4CA754410AD7A38008E950413D0AD7034CA75441333333F307E95041000000304BA75441000000D007E95041666666964AA754416666661608E95041AE47E1AA49A7544114AE477107E950413333339349A754413333331307E9504114AE471149A7544148E17A2405E9504152B81E3549A75441A4703DBA04E950417B14AEA748A75441CDCCCC2C04E950410000009048A75441C3F5287C03E950417B14AEC747A75441F6285CBF02E95041B81E85BB47A7544152B81E3503E950411F85EB5147A75441D7A3701D03E950417B14AEE746A75441C3F5289C02E95041000000D046A75441A4703D3A01E950411F85EB9145A7544114AE47A100E9504152B81EB545A75441F6285C1F00E9504148E17A0445A75441AE47E15A00E950417B14AE4744A754410AD7A3F0FFE850417B14AE8742A754419A9999A9FFE85041713D0AF740A7544148E17AE4FFE85041295C8F5240A7544185EB5128FFE850417B14AE373FA75441F6285C1F00E95041F6285C8F3DA754410AD7A3F0FFE8504152B81E253DA754413D0AD71300E95041A4703D0A3CA754411F85EB7100E9504114AE47713BA75441F6285CDF01E9504152B81E653BA754418FC2F55803E950411F85EB213CA75441AE47E1AA03E9504152B81E253DA75441CDCCCC2C04E95041F6285CAF3CA75441B81E851B06E95041E17A14DE3CA754413D0AD7E306E95041D7A370CD3EA75441CDCCCCAC07E950410AD7A3F03EA75441AE47E10A08E9504114AE47A13FA754419A99991909E950417B14AE373FA75441295C8F0209E950410AD7A3D03FA75441F6285C6F0AE950419A99996940A754413D0AD7630AE950413333330341A754410AD7A3200BE950411F85EB3141A7544148E17A140BE950418FC2F57841A754411F85EBA10BE9504114AE474142A754411F85EB810CE9504114AE474142A754413D0AD7030DE95041666666E642A75441333333C30EE9504148E17A4443A7544185EB51680FE95041666666A644A75441F6285C8F10E9504114AE47C145A754417B14AE7710E95041295C8F2247A7544114AE47A112E95041666666F647A75441295C8F5213E950417B14AEC747A754413D0AD79315E95041295C8F4246A75441F6285C7F16E95041C3F5285C43A75441CDCCCC2C16E95041E17A14FE42A754411F85EBD116E950417B14AE8742A75441C3F5283C17E95041AE47E11A41A75441CDCCCC0C17E9504114AE478140A75441F6285C5F17E9504152B81EC53FA754417B14AE6716E950413D0AD7133FA75441E17A14DE16E950415C8FC2F53CA75441295C8FA216E95041000000803CA7544148E17A6415E95041713D0A073BA75441B81E85AB15E95041AE47E11A3AA754416666660615E95041CDCCCCDC38A754418FC2F55815E950413D0AD74338A754415C8FC29512E95041D7A3703D36A75441CDCCCCFC11E950419A99991936A75441AE47E17A11E9504148E17A5436A75441E17A14BE10E9504152B81E7535A7544148E17A740FE9504152B81E9534A7544148E17A940EE950411F85EBB132A7544152B81EA50CE95041A4703D9A32A754413D0AD7230CE95041B81E853B32A754413D0AD7430BE9504185EB511832A75441333333930AE95041A4703DDA30A75441CDCCCCFC0AE950419A99992930A75441713D0AA709E95041C3F5289C2FA75441B81E85DB07E950410000005031A754410AD7A3C006E9504148E17A4431A75441D7A3709D06E950419A9999E931A754417B14AE4705E950417B14AE4732A754413333335305E95041E17A148E32A754419A99990904E9504152B81ED532A754410000007003E95041D7A370DD31A75441E17A143E02E950415C8FC2C531A754416666664601E95041AE47E18A31A75441F6285CFF00E9504148E17A6430A754411F85EB3102E95041EC51B80E2FA754415C8FC2A505E95041CDCCCC4C30A75441295C8F6206E95041AE47E1AA30A754417B14AE0707E950410000007030A7544152B81E9507E95041C3F5289C2FA75441AE47E1EA08E95041E17A143E2FA75441AE47E1CA09E95041F6285CDF2EA75441EC51B89E0AE95041B81E850B2EA75441A4703D8A0BE950410AD7A3D02DA75441B81E853B0CE950410AD7A3102CA7544114AE47B10CE950415C8FC2B52CA7544152B81E650EE950419A9999A92CA754415C8FC2350EE95041EC51B88E2BA754411F85EB0110E950417B14AEB729A75441EC51B8FE0EE950410AD7A37029A75441000000800FE95041000000C028A754413D0AD77316E95041333333E328A754417B14AE0719E95041B81E858B2AA75441E17A142E1AE9504185EB51682AA75441D7A3705D1AE950415C8FC2152AA75441F6285CDF1AE9504114AE47212AA754417B14AEA71BE950419A9999E92AA7544185EB51581CE95041D7A3700D2BA75441B81E855B1DE950410AD7A3102CA75441295C8FA21DE9504185EB51682AA75441333333531EE95041A4703D0A2AA75441295C8FF220E95041666666C62AA75441E17A142E21E95041295C8FB22BA75441C3F5288C21E9504148E17A042CA75441F6285C6F23E95041B81E854B2CA75441A4703DAA23E9504185EB51082DA754411F85EBA124E95041C3F528FC2CA754411F85EBA124E9504185EB51282CA75441E17A143E26E95041E17A14FE29A75441AE47E1FA26E95041F6285CCF29A75441666666E627E95041E17A141E29A75441000000A027E95041F6285C0F28A75441000000A027E950411F85EBC125A754411F85EB8125E95041AE47E15A26A7544148E17AF424E95041D7A370AD26A7544148E17A1424E950419A9999D925A75441713D0AA722E95041A4703DAA25A75441F6285C8F22E9504148E17A7423A7544114AE473122E95041333333F322A754417B14AE9721E95041333333F322A7544148E17A7421E950419A99991924A7544114AE477120E95041666666B625A75441713D0A271FE950410000002026A75441713D0A271FE9504152B81EC526A75441AE47E16A1EE95041CDCCCCDC26A75441AE47E18A1DE95041C3F5282C26A754415C8FC2E51CE95041E17A14EE24A7544114AE47F11CE95041F6285CAF23A754410AD7A3001EE950418FC2F5A821A75441713D0A671DE95041EC51B83E21A754417B14AE871CE95041B81E85DB22A75441CDCCCC6C1BE950410AD7A38023A75441333333D31AE950415C8FC24523A75441F6285C5F17E95041C3F5288C23A754419A9999E916E95041A4703D0A23A75441666666E615E95041333333F322A754418FC2F57814E9504148E17A9422A75441B81E850B13E9504114AE477122A7544152B81EC512E95041713D0A0722A75441295C8F9211E95041C3F528CC21A7544152B81E2510E950418FC2F5C820A75441C3F528CC0DE95041EC51B83E21A7544152B81EA50CE95041B81E851B21A754411F85EB810CE950415C8FC28521A75441B81E855B0BE950419A99997921A75441CDCCCCDC0BE950415C8FC2A520A75441CDCCCCDC0BE9504152B81EF51FA754413D0AD7430BE95041CDCCCC2C1FA7544148E17A140BE95041AE47E1EA1CA754417B14AE2706E950417B14AE671FA75441F6285C3F06E95041D7A370DD1FA7544148E17A4404E950410000003020A7544185EB513804E9504114AE477122A75441F6285C9F03E95041713D0AC723A754419A99994902E95041B81E859B24A754417B14AEC701E95041C3F5284C25A75441EC51B82E01E95041F6285C2F27A754413333334300E95041713D0A2728A75441F6285C1F00E95041F6285CEF28A75441D7A370CDFFE85041A4703D2A29A754415C8FC2D5FEE85041D7A3702D2AA75441EC51B88EFEE85041000000602BA75441AE47E1BAFDE850419A9999C92BA75441666666E6FCE85041713D0A772BA75441F6285CEFFBE85041666666A62BA75441B81E857BF8E85041713D0AD72FA75441666666D6F7E85041A4703DDA30A75441C3F528CCF4E85041E17A147E2DA75441C3F528ACF5E8504185EB51282CA75441295C8FB2F7E850410AD7A37029A75441A4703DCAF7E8504185EB51C827A75441C3F5284CF8E85041F6285C2F27A75441F6285C4FF9E85041A4703DCA24A75441A4703D8AF9E850416666661623A754410AD7A390FBE8504152B81E351EA754415C8FC235FCE85041000000B01CA754417B14AE97FDE85041666666861AA75441EC51B8AEFDE85041F6285C5F19A75441D7A370EDFEE85041D7A3708D15A754410AD7A310FFE850413D0AD7C313A75441E17A14BEFEE85041295C8FB212A75441AE47E17AFFE8504114AE475111A754416666666600E950418FC2F5C80EA754413D0AD7F300E95041000000D009A7544152B81E7501E9504152B81EF506A754410AD7A3B001E95041E17A14FE05A754411F85EB3102E950411F85EB1105A75441295C8F0202E95041AE47E15A02A75441B81E85CB02E95041295C8F9201A75441E17A146E02E9504148E17A5400A75441B81E85CB02E9504185EB5168FFA654413D0AD7B302E950413D0AD743FBA654416666662602E95041EC51B89EFAA654418FC2F57802E95041713D0AA7F9A65441CDCCCC6C02E950415C8FC245F8A65441713D0AF701E95041B81E85FBF6A65441EC51B80E02E95041E17A148EF5A65441D7A370CDFFE85041B81E853BF5A65441CDCCCC8C01E950417B14AE07F7A654413333332301E950418FC2F568F8A65441713D0A1701E950419A9999F9F9A6544152B81E7501E95041713D0A67FBA65441F6285CFF00E9504152B81EA5FCA65441AE47E15A00E950415C8FC2B501A75441AE47E15A00E95041713D0A1703A7544185EB510800E950419A99994904A75441C3F528FCFFE85041A4703DDA05A7544185EB5128FFE8504185EB511807A75441B81E856BFEE85041F6285CDF0AA7544114AE4701FEE850415C8FC2050CA754415C8FC2F5FDE85041713D0A870CA7544152B81E25FEE85041295C8FC20CA7544185EB5148FEE8504114AE47D10DA75441333333E3FBE8504148E17A7411A75441AE47E15AF9E8504185EB516818A75441E17A14EEF7E85041A4703D3A1CA754418FC2F548F7E85041D7A3703D1DA7544133333313F5E85041713D0AE722A7544185EB51F8F3E85041666666F623A75441B81E853BF3E85041F6285C2F27A75441A4703DDAF1E850410AD7A3302BA75441CDCCCC8CEFE85041D7A3701D30A754419A999989EEE8504152B81E1531A7544152B81EB5EDE8504148E17A2432A7544114AE4701ECE850413D0AD7A335A754415C8FC215EBE850415C8FC20537A754419A999909EBE85041A4703DAA37A754410AD7A330ECE850410000009036A7544114AE47E1ECE8504114AE475135A75441F6285CBFF0E8504152B81ED532A75441295C8FC2F1E850411F85EBD131A75441713D0A67F2E8504148E17A6430A75441295C8F82F3E8504148E17A842FA75441F6285C8FF7E85041AE47E18A31A75441713D0A07F5E85041333333F334A75441E17A14CEF1E85041713D0A6738A75441E17A149EEDE850417B14AE573EA754413D0AD733EDE85041295C8F923EA75441C3F5283CECE85041D7A370AD3FA754417B14AE27EDE850418FC2F59840A754417B14AE27EDE8504114AE476141A75441EC51B88EECE850410AD7A37042A75441D7A3702DEBE85041333333E341A75441E17A14FEEAE850419A99992942A754415C8FC215EBE85041D7A370BD44A75441333333A3EBE850413D0AD73345A754413D0AD773EBE85041295C8F4246A754413D0AD793EAE8504185EB51B846A7544166666626E9E85041B81E85DB46A7544185EB51C8E8E85041AE47E10A47A754417B14AE17E8E8504152B81E9546A75441F6285C4FE7E8504152B81E7547A75441CDCCCC3CE5E85041C3F5280C4BA75441713D0AA7E5E85041CDCCCCBC4BA754411F85EBE1E5E850417B14AED74CA754418FC2F5B8E7E8504148E17AD44BA75441AE47E11AE9E8504114AE47B14BA75441295C8F32E9E8504148E17AB44CA7544166666646E8E85041AE47E1BA4EA754417B14AE37E7E85041666666F64EA75441A4703DAAE6E8504114AE47514EA75441D7A370EDE5E85041713D0AE74DA754413D0AD7C3E3E8504114AE47314FA754413D0AD7E3E2E850413D0AD7834FA7544166666656E2E8504114AE47314FA75441F6285C2FE1E85041A4703DCA4FA75441E17A14EEDEE8504148E17AF451A754413D0AD783DEE85041AE47E11A53A754419A999989DCE85041B81E858B55A75441713D0A77DAE850418FC2F5D857A7544148E17A44D9E850418FC2F5B858A754413D0AD7F3D5E85041A4703DBA5CA75441713D0AE7D1E850419A99991961A75441000000C0D0E85041B81E857B62A75441A4703D5ACAE850410AD7A33068A75441C3F5287CC6E85041EC51B84E6AA75441EC51B82EC4E850419A9999496CA7544148E17A04C2E85041CDCCCC0C6FA75441D7A3700DC1E850410000001070A754411F85EB61BEE85041AE47E1CA73A754415C8FC275BDE8504185EB513875A7544114AE4751B9E85041E17A14BE7AA75441B81E85FBB7E8504185EB51287BA7544114AE4791B7E850411F85EBC17BA7544133333333B7E850417B14AE577BA754413D0AD7E3B7E85041333333837AA7544166666636B8E8504114AE477178A75441713D0AA7BAE85041295C8F3277A7544114AE47F1BBE850413D0AD74375A754419A9999B9BCE85041295C8F0273A7544185EB5188BFE850417B14AE2770A754410AD7A370BFE85041AE47E18A6EA754418FC2F538C0E850418FC2F5786CA754410AD7A330C1E85041666666466BA754411F85EB91C2E85041C3F528DC6AA75441C3F528DCC3E85041E17A149E69A75441B81E85EBC4E850413D0AD73369A75441333333B3C5E850418FC2F57868A75441713D0AB7C6E85041EC51B8AE67A75441713D0A97C7E850410AD7A35067A7544100000030C8E85041713D0A0766A754417B14AE07CAE85041F6285C2F64A75441E17A140ECCE85041F6285C4F63A754411F85EB81CFE85041333333F35FA7544148E17A94D1E85041000000F05EA754417B14AE97D2E850410AD7A3C05EA75441AE47E17AD4E850418FC2F5C85DA754415C8FC275D6E85041C3F5289C5AA75441C3F528BCD6E85041000000D058A7544114AE4761D7E85041C3F528FC57A7544100000050D9E85041EC51B88E56A754413D0AD773D9E85041333333C354A754413D0AD783DEE850413D0AD7C34DA7544114AE4711DFE85041A4703D4A4CA7544100000070DFE8504148E17AF44AA7544133333373E0E850419A9999D949A75441F6285CEFE2E85041F6285C1F46A75441D7A3702DE4E85041713D0A5745A75441713D0AC7E4E8504152B81EF543A75441CDCCCC7CE3E85041CDCCCC4C42A7544114AE4771E3E85041333333E341A754415C8FC2D5E2E85041EC51B87E41A7544133333393DFE850410AD7A3A03FA754410AD7A350D9E850417B14AE074AA75441CDCCCC1CD4E850410000002051A7544152B81E25D3E85041E17A143E53A754417B14AE77D3E85041B81E85AB54A7544185EB5148D3E85041F6285C5F56A75441E17A14DED2E850416666668657A75441CDCCCC5CD2E850417B14AE0758A754411F85EB41D1E850413D0AD7D359A7544148E17AD4CFE85041333333935BA75441A4703D8ACEE85041E17A14AE5CA75441E17A14EECCE8504152B81EB55EA75441EC51B8BECCE85041E17A144E5FA75441295C8F42CAE85041333333B361A754410AD7A3E0C8E85041666666B662A75441C3F5287CC6E850415C8FC25565A754413D0AD7D3C4E850413D0AD77367A754418FC2F5B8C3E850417B14AE7768A75441B81E854BC2E85041AE47E17A69A75441D7A3702DC0E8504114AE47816BA754410AD7A370BFE85041000000706DA75441EC51B87EBCE85041A4703D7A70A7544100000040BBE85041AE47E10A72A75441E17A140EBAE85041EC51B8DE72A7544100000010B7E850410AD7A3E076A75441295C8F82B6E850417B14AED777A75441295C8F82B4E850416666662678A75441A4703D1AB3E850419A9999197AA75441333333D3B2E8504148E17A347BA7544100000090B3E850415C8FC2B57BA75441000000B0B2E85041AE47E13A7DA75441C3F528BCB2E85041295C8F327EA7544114AE47F1B4E85041C3F5287C7FA7544152B81EF5B5E85041CDCCCC4C7FA7544185EB5118B6E85041713D0AB77FA754415C8FC205B4E850413D0AD73382A754415C8FC2E5B4E85041C3F528FC82A75441E17A14AEB5E850415C8FC26583A7544166666656B7E850415C8FC26583A7544166666636B8E85041F6285C1F83A75441E17A140EBAE85041333333F383A75441A4703DEAB9E85041713D0AF784A754417B14AE77BAE8504185EB515886A75441CDCCCCFCBBE850413333335388A75441EC51B87EBCE8504114AE47B188A754410AD7A3D0BCE85041C3F528CC89A754410AD7A3D0BCE8504148E17A948AA75441295C8F72BCE85041713D0AE78AA75441F6285CAFB9E85041A4703D2A8AA754415C8FC245B9E85041E17A146E89A75441E17A144EB8E8504148E17AD488A75441AE47E14AB7E85041713D0A2789A75441AE47E16AB6E85041EC51B85E88A7544166666676B6E85041C3F5282C87A75441D7A370DDB5E850417B14AE8786A7544166666676B6E8504148E17A8485A7544152B81E15B5E85041000000B084A754417B14AEA7B3E850417B14AEC784A75441CDCCCC8CB2E850410AD7A36085A7544148E17AC4B1E85041295C8F0285A7544166666666B1E850410AD7A38084A7544114AE47A1B1E8504148E17AC483A754417B14AEC7B2E850413D0AD71383A75441C3F528BCB2E850411F85EB9182A754415C8FC225B3E85041AE47E14A82A75441CDCCCC6CB3E85041B81E856B81A75441C3F528DCB1E850413D0AD73382A75441713D0A57B0E85041295C8F6282A75441C3F5283CAFE85041295C8F4283A75441F6285C7FAEE8504152B81EB582A754415C8FC2F5AEE85041B81E856B81A7544148E17A04B0E85041CDCCCC0C81A75441A4703D3AB2E85041B81E85AB7FA754417B14AEE7B1E85041333333E37EA7544148E17AE4B0E8504148E17A847EA7544114AE47E1AFE85041713D0AD77EA75441295C8F12AFE85041A4703DBA7FA754417B14AEF7ABE8504148E17AE482A75441D7A3706DACE85041F6285C1F83A75441D7A3708DABE85041295C8F2284A75441EC51B82EABE85041713D0AF784A75441A4703D8AAAE8504148E17A8485A7544166666666AAE850417B14AE8786A75441295C8F92A9E85041EC51B87E87A75441AE47E19AA8E85041B81E853B88A7544152B81E45A7E850411F85EB6189A75441EC51B85EA4E85041C3F5284C8DA7544185EB5118A4E85041713D0A678EA7544133333373A3E85041E17A145E8FA754413D0AD763A2E85041C3F5287C91A7544114AE47F1A2E85041333333A392A75441B81E859BA1E85041CDCCCCCC94A7544185EB5198A0E85041F6285CFF95A75441000000D09FE850416666664696A75441AE47E10AA0E850410000009097A7544152B81E959FE85041A4703DFA97A75441CDCCCCCC9EE850419A99992998A754417B14AE279EE850415C8FC2E598A75441CDCCCCEC9DE8504152B81EF599A75441C3F5283C9DE85041AE47E16A9AA754417B14AE479DE850418FC2F5C89AA75441EC51B8CE9BE850413D0AD7039BA75441295C8FE29AE850419A9999599CA75441295C8FE29AE850411F85EBE19EA75441E17A143E9AE85041F6285C4FA0A754411F85EB319AE8504100000000A1A754410AD7A3D098E85041295C8FF2A3A75441B81E854B97E850418FC2F598A8A75441AE47E19A96E85041E17A143EA9A75441B81E858B95E85041A4703DBAABA754411F85EB2195E8504148E17A24ACA754417B14AED793E85041E17A144EAEA75441A4703D2A94E85041B81E85DBAEA75441295C8F1294E85041B81E859BB0A7544148E17AB493E850418FC2F528B1A754413D0AD72392E850419A9999B9B2A75441EC51B85E92E85041CDCCCCBCB3A754418FC2F5E891E8504148E17AB4B4A75441E17A140E8FE85041713D0AC7B6A75441B81E859B8FE850410AD7A330B7A7544114AE471190E850419A999919B7A754419A9999598DE85041B81E85EBBAA75441B81E854B89E85041C3F528ACC4A754418FC2F5B886E85041295C8F72CBA75441F6285CDF87E8504185EB51A8CDA754418FC2F5F884E850419A9999E9CFA754418FC2F51884E85041A4703D5AD2A7544152B81E9586E850413D0AD713D2A754411F85EB5187E85041C3F528DCD2A754413D0AD7F386E85041C3F528BCD3A75441C3F5282C8BE85041EC51B89ED4A75441F6285C5F8BE8504166666606D5A75441295C8FA28AE85041333333B3DBA75441AE47E16A8BE85041B81E859BDBA754415C8FC2C58AE85041D7A3706DDFA7544114AE47718DE850411F85EB41E0A75441A4703D8A91E850415C8FC215E1A75441D7A3704D94E85041B81E859BDBA754410000008095E8504148E17A54DBA754410000006096E850418FC2F548DBA75441D7A370ED96E8504148E17A34DCA754410AD7A33096E850419A999989E4A75441666666A696E85041D7A3708DE5A7544152B81E2596E850418FC2F598E5A75441333333A395E850411F85EB51E5A7544152B81E4595E85041E17A141EE7A75441D7A3704D94E8504100000010EAA7544152B81E6594E85041295C8F42EBA75441F6285C0F93E850410AD7A340EEA75441713D0A4792E8504133333393EEA754411F85EBA191E8504166666696EFA75441B81E857B90E85041AE47E16AF0A754413D0AD7838FE85041AE47E16AF0A75441713D0AC78EE85041CDCCCC9CF1A754411F85EBE18FE85041713D0A07F2A754411F85EBE18FE850413D0AD7C3F2A7544148E17A548FE85041AE47E1BAF3A75441EC51B8DE8EE85041D7A370EDF4A75441EC51B8DE8EE85041A4703D8AF6A754413D0AD7E38CE85041000000A0F9A75441D7A3709D8CE8504114AE4701FBA75441E17A14AE8AE85041AE47E1EAFEA75441295C8F628CE850411F85EB1100A85441666666168EE850410000005001A8544148E17A248BE850411F85EB1100A85441AE47E18A8AE8504185EB515800A854417B14AE678AE85041AE47E14A03A8544185EB515889E85041B81E85FB03A854411F85EB3188E85041B81E859B06A85441C3F528BC87E85041A4703DAA07A85441B81E850B87E85041CDCCCC9C0AA854419A99998986E850417B14AEB70BA8544114AE47C185E85041CDCCCC8C10A854415C8FC2D584E850415C8FC26516A854411F85EBB184E8504185EB517818A854418FC2F51884E85041E17A14AE1AA85441AE47E1BA83E850418FC2F5F81FA854411F85EBD183E85041D7A3706D23A8544114AE470184E8504114AE472125A85441EC51B8AE83E850419A9999E925A8544148E17AC486E850411F85EB312AA854418FC2F51884E850410AD7A3C02EA85441C3F5283C84E85041295C8FF22FA85441CDCCCCCC85E850411F85EB2130A85441EC51B84E86E85041C3F5288C30A85441EC51B84E86E8504114AE473131A85441EC51B86E85E850419A9999F931A854410AD7A31085E85041713D0A6733A854418FC2F51884E85041CDCCCCDC33A85441EC51B88E84E8504114AE470138A854419A9999E983E85041F6285C3F39A85441B81E85AB82E8504114AE47A13AA85441C3F5285C83E85041F6285CFF3AA85441295C8F0287E85041713D0A473AA85441D7A3701D89E85041D7A3703D3CA854410000009088E85041C3F5289C3CA854416666662688E8504152B81E353DA8544148E17A8488E85041CDCCCC2C3EA854411F85EB3188E85041295C8F4241A85441295C8F2287E850418FC2F56842A854419A9999898AE8504152B81E8546A854415C8FC2858CE85041713D0A0748A85441C3F528AC8DE850415C8FC23548A85441000000D08DE85041000000C047A8544148E17A3490E85041C3F528CC47A854417B14AE3791E85041666666E648A854411F85EB8192E850413D0AD77349A85441EC51B85E92E850410AD7A37048A85441CDCCCC9C93E8504152B81EA546A85441CDCCCC9C93E850417B14AE1746A85441295C8F7291E85041C3F5282C45A85441CDCCCCFC90E8504114AE471144A854411F85EB6190E85041000000D043A85441B81E85FB8EE85041CDCCCCDC3EA8544185EB51788FE85041D7A3701D3DA85441B81E859B8FE85041295C8F223BA854415C8FC20590E85041B81E852B3AA854415C8FC2258FE85041A4703D5A3AA8544114AE47518EE8504114AE47C139A85441EC51B8DE8EE850410AD7A31039A85441B81E85BB8EE8504185EB518836A854410AD7A3608FE85041333333E335A85441EC51B89E90E85041B81E85AB36A85441C3F5282C91E85041333333E335A8544148E17AD492E85041AE47E11A35A85441EC51B83E93E85041E17A143E35A854416666669693E8504152B81EA534A85441D7A370ED94E850419A99997932A854413D0AD71398E85041B81E859B2AA85441713D0A3798E85041A4703D3A29A85441B81E854B97E850418FC2F5F826A854417B14AE9795E85041EC51B8CE24A8544114AE47E196E85041B81E850B22A85441B81E852B98E85041713D0AF722A85441713D0AF799E8504148E17A8423A85441EC51B8CE9BE850416666664622A8544185EB51789FE85041A4703D5A18A85441B81E855BA7E850413D0AD7B307A8544152B81EA5A9E85041295C8FC2FFA754410AD7A370AAE8504114AE4761FDA75441295C8FE2AEE850411F85EBE1F1A75441A4703D9AAFE8504148E17AF4EFA75441EC51B86EB0E85041295C8FE2EDA754417B14AE07B1E85041295C8F02EDA7544114AE47C1B0E85041A4703D5AEBA75441F6285CFFB1E8504185EB51F8E9A7544148E17AA4B2E85041CDCCCC2CE8A7544185EB5178B3E850410AD7A390E6A75441F6285C9FB4E85041713D0A17E5A754418FC2F508B5E8504152B81E05E3A75441C3F5280CB6E85041E17A14FEE0A7544100000010B7E85041F6285C2FDEA754411F85EB11BAE85041713D0AC7DEA754413D0AD793BAE85041C3F5285CDCA75441666666F6BAE85041666666A6DBA754410E0000009A9999A997E8504100000010EAA7544152B81EE597E85041F6285C5FE9A754410AD7A31097E85041C3F5283CE9A754417B14AE7796E85041EC51B8AEE8A754413333338396E85041B81E85ABE7A754410000004097E85041F6285CBFE6A75441B81E854B97E850413D0AD7D3E5A754415C8FC29598E850410AD7A3B0E5A75441EC51B82E99E8504133333323E5A754418FC2F59899E85041C3F528BCE5A75441A4703D1A9AE8504152B81E15E8A754415C8FC27599E85041000000F0EAA75441D7A370AD98E8504133333313EBA754419A9999A997E8504100000010EAA754410C0000001F85EB6193E85041B81E855B2CA85441CDCCCCBC92E85041E17A146E2EA8544114AE47D191E850411F85EB412FA85441C3F5284C90E8504148E17AB42EA854417B14AE5790E85041B81E853B2DA854417B14AE3791E850417B14AE872BA854417B14AE1792E8504185EB51782AA85441F6285C2F92E850411F85EB7128A85441D7A3706D93E850415C8FC26528A854419A99995994E85041B81E85BB29A85441A4703D2A94E85041D7A3701D2BA854411F85EB6193E85041B81E855B2CA854410D000000EC51B8AEEBE850411F85EBD143A754418FC2F5F8ECE850411F85EBD143A7544166666686EDE8504114AE472143A754410AD7A310EDE85041713D0AB742A75441F6285C3FEDE850415C8FC23542A7544166666666EEE85041C3F5289C41A754419A999989EEE85041A4703DFA41A7544148E17AA4EFE850413D0AD79342A7544148E17AA4EFE850411F85EBF142A754411F85EB51EFE85041713D0A9743A75441F6285CFFEEE85041AE47E14A45A754419A9999C9ECE8504185EB51F844A75441EC51B8AEEBE850411F85EBD143A7544112000000AE47E18AF2E8504114AE478140A75441A4703DDAF1E8504114AE47A13FA7544185EB5138F2E850410AD7A3F03EA7544185EB5118F3E850418FC2F5F83DA75441EC51B83EF4E8504185EB51483DA754419A999959F5E850418FC2F5183DA75441B81E859BF7E85041713D0A273AA7544114AE47F1F8E85041CDCCCC7C3BA7544152B81EE5F8E8504148E17A743CA754418FC2F528F8E850411F85EBE13DA754417B14AE57F8E850413D0AD7133FA75441CDCCCC1CF8E85041295C8F5240A75441B81E85BBF6E850410AD7A3B040A75441F6285CCFF5E850418FC2F59840A7544166666636F5E85041B81E85CB41A754410AD7A3C0F4E85041333333E341A75441E17A148EF3E8504114AE478140A75441AE47E18AF2E8504114AE478140A754410C0000001F85EBE1F7E85041B81E85BB35A75441AE47E15AF9E8504185EB519835A75441AE47E15AF9E85041D7A3703D36A754411F85EBA1F9E85041C3F5286C36A7544114AE47F1F8E850411F85EBE136A75441295C8F92F8E85041F6285C6F37A75441295C8F92F8E8504114AE47F137A7544114AE4731F7E850415C8FC2E537A75441C3F5288CF6E85041EC51B89E37A75441AE47E10AF6E85041B81E859B36A754413D0AD7A3F6E850419A99991936A754411F85EBE1F7E85041B81E85BB35A754410B000000C3F528BCB2E850411F85EBB1BEA75441E17A14EEB3E85041C3F528BCBAA75441CDCCCC4CB4E85041CDCCCCDCB9A7544152B81EF5B5E850417B14AE17BAA7544152B81EF5B5E850410AD7A3B0BAA7544185EB51F8B6E850418FC2F578BBA754419A999979B7E85041666666A6BEA7544133333353B6E85041EC51B82EC1A75441D7A3701DB4E8504114AE47A1C0A7544133333393B4E8504152B81EB5BFA75441C3F528BCB2E850411F85EBB1BEA75441110000000AD7A340A2E850415C8FC2F5FAA75441E17A14EEA1E8504148E17A04FCA75441E17A140EA1E85041C3F528FCFCA75441B81E85BBA0E8504185EB5148FBA75441666666F6A0E85041D7A3702DFAA7544100000090A1E850418FC2F578F8A75441EC51B89EA2E85041A4703DAAF5A7544185EB5138A3E850411F85EB41F2A75441666666B6A2E85041F6285C0FF1A754415C8FC2C5A3E8504166666696EFA754418FC2F5C8A4E85041EC51B87EEFA754419A999979A5E850417B14AEA7EDA75441CDCCCC7CA6E85041333333D3ECA75441333333A3A7E85041333333D3ECA7544166666616A7E8504185EB5118F0A7544133333393A3E85041B81E856BF8A754410AD7A340A2E850415C8FC2F5FAA7544109000000CDCCCCECAFE85041333333D3DAA754418FC2F538AEE850411F85EBE1DBA7544166666606ADE850413D0AD783DBA7544148E17A44AEE85041713D0A97D6A75441B81E856BAFE85041E17A14AED6A7544114AE47E1AFE85041295C8FA2D6A754418FC2F5D8B0E85041CDCCCCECD7A754411F85EB91B0E8504152B81E95D9A75441CDCCCCECAFE85041333333D3DAA754410E000000C3F5280CB6E8504100000010D8A754410AD7A300B6E8504152B81E15D6A75441E17A146EB7E85041CDCCCC8CD3A7544166666656B7E8504166666646D3A75441EC51B81EB8E85041295C8F22D3A7544166666636B8E850418FC2F518D0A75441E17A142EB9E850413D0AD793CEA7544148E17A54BAE85041295C8FF2CEA7544100000060BAE85041EC51B8AECFA75441713D0AE7B8E8504166666686D1A754419A999959B8E8504133333343D2A7544114AE4771B8E850413D0AD7D3D3A75441EC51B83EB7E850410AD7A300D7A75441C3F5280CB6E8504100000010D8A7544114000000A4703D8ABCE8504152B81E15C4A7544100000020BCE850410AD7A300C5A75441D7A370ADBCE85041E17A146EC6A7544148E17AD4BDE8504114AE47D1C4A75441713D0A27BEE85041295C8FC2C3A7544185EB51A8BEE850415C8FC2E5C3A754415C8FC255BEE850418FC2F5C8C5A75441A4703D4ABEE850418FC2F588C7A75441B81E85EBBDE85041C3F5286CC9A754417B14AE17BDE850419A9999D9CAA75441295C8F72BCE8504100000020CBA75441D7A370EDBAE85041C3F5282CCBA7544100000060BAE8504166666616C8A75441F6285C8FBAE850415C8FC285C6A75441C3F5284CBBE8504166666656C6A75441C3F5286CBAE8504133333373C4A754419A999919BAE85041713D0AD7C2A75441F6285C8FBAE85041B81E859BC2A754411F85EBE1BAE850411F85EB11C3A75441A4703D8ABCE8504152B81E15C4A75441
+</a>
+
+<b>
+0106000000010000000103000000060000007D06000085EB51789FE85041A4703D5A18A85441DE67662699E8504140F4287C16A85441516666F69DE850418990C25506A854418072C8DEA0E850419437D9F6FBA754414B8F28DCA0E85041704CC7DFFBA75441DB5F26CCA0E850415E9E1053FBA754410B25D710A1E85041F87C01B3F9A754417E6D208DA1E85041DF55EA3BF8A75441926A88ADA2E85041EF4EC6A7F5A754416FE3E6E4A2E8504112DE9A26F4A75441BA8B6C34A3E85041F256A368F2A75441EA25A3E6A2E850414159C281F1A7544174F2DEBEA2E850419275BA0BF1A75441111CD9B7A3E8504145355DAFEFA75441043B9DD8A4E85041D24B736BEFA75441A7B45B8AA5E85041DDAA94C0EDA75441B9A59575A6E8504167F079E7ECA75441DBD747A1A7E85041D51AD4C1ECA75441A86D68EFA9E8504108396FA2E7A754415A28DB9FADE850419052A4E0D8A75441C95A607DADE850415BD28FB8D8A754411B681BC8ADE850418C53A33FD8A754412CEB4635AEE850419C4BF58AD6A75441BC039D8CB3E850412FE6E15DC6A754416476F5E8B4E85041471780ECC0A7544178CB9B20B4E85041D2B777A1C0A75441CA59317BB4E85041A06E1EA7BFA75441D561BF1BB4E850413A189A49BFA7544105DFB2B3B2E8504133D2BDA0BEA754418789443BB3E850411DBAEEEDBCA7544107C08DEEB3E85041311EE9AEBAA7544105FDE224B4E8504170302986BAA75441B3F15E68B4E850411A5794CCB9A7544152CFA7ECB5E8504159F4D40EBAA754418B2D8CF7B5E8504143AC3EAFBAA7544176AB84F3B6E8504131BEA06CBBA75441BBF853FDB6E85041A06A191DBCA754411435C172B8E85041C7FE6A74BAA754412B7199C4BEE8504193C9E549B3A75441268479A8C4E8504151CA8CB8ACA75441CDCCCC8CC4E850415C8FC2A5ACA754413D0AD733C2E85041D7A370DDABA754415E20B3D2C1E85041A26E4373ABA754413B632917C1E850416EB005CAAAA75441F3769CECC0E85041D09012BAAAA75441E17A14FEBFE85041C3F5287CAAA75441333333E3BEE85041E17A143EA9A754418E8E8519BFE8504103FCB7D7A8A75441DEEB8132BFE8504162335F89A8A75441624B8440BFE85041B7F93C8EA8A7544114AE4741BFE85041CDCCCC8CA8A75441F6285CBFC1E85041295C8F32A9A75441A484BBD1C1E85041AFC409F7A8A75441DC0DE60DC2E850413B0B3127A8A7544100B28A05C2E850416412C124A8A754416CD3FE48C2E8504137E192BFA7A754419D70C0E3C5E8504173063E2EA2A754411DF2E65CC6E850415F89326FA1A75441234CF0D0C9E850416558411B9CA75441CD0A0BE1C9E85041EB80B5049CA75441768DC13DCAE85041BB1880759BA75441E71C7A22CAE8504155581F1C9BA754417150CA01CAE850415F7EE5C39AA7544149035E21CAE85041F59EC0A39AA7544114AE4771CAE85041000000309AA754418B2905C4CAE85041898442DD99A754419F6588FDCAE850419ED4F67A99A75441BEB02726CBE8504139928F6A98A75441531D99B6CBE85041838D467097A7544190D81CDECAE85041FAC9E29F96A754410AD7A3A0CAE850419A99996996A754410BF68EABCAE85041CD4B771D96A75441AF0BBBA5CAE85041F7B24AEA95A75441AE78CFD6CAE850410051517C95A7544132439B70CBE8504143D115B994A754410439AA29CCE85041971E090293A7544198BB9691CCE850410BFE915292A75441713D0AA7CCE8504114AE472192A75441EAEBA1B1CCE85041C7B4771C92A75441D77BBDB3CCE8504136B5E81892A75441C0B619E1CDE85041342A517191A75441075233A8CEE85041DAAB518C90A75441754BBE4FCFE85041CA41C4A48FA75441A4703D6ACFE850415C8FC2758FA754414AFBD578CFE85041A989F96B8FA75441ABE42784CFE85041987B545C8FA75441BDA89DB9D0E85041B42D797D8EA75441E1C77FE9D0E85041C29D705B8EA754411C265B4DD1E85041AD8ADF318EA75441E1FA6E50D1E85041C95ECF2F8EA7544165F0206FD1E85041F21C9B118EA75441AE47E10AD2E8504185EB51488CA75441AE47E16AD4E8504185EB512888A75441F6285CBFD5E850418FC2F54887A75441B8D68FA0D6E850412DC0E02487A754419DECF586D6E850416B2A4FE986A75441E17A145ED6E85041EC51B89E86A754418A7C1877D6E850412947C95386A75441547AE07CD6E85041BD0BA92586A75441AFB2B6EAD6E8504118EEF7C884A75441A591E20DD7E850416C68B9EE83A75441ECB43F28D8E850412E69D64584A75441B576632BD8E8504141FCC94E84A7544152B81E35D8E850411F85EB5184A754414900E257D8E85041334EA5CD84A754414CC7A176D8E85041065D502585A75441EC51B8AED9E85041E17A140E85A75441EB1287BED9E8504199088F1F85A7544196FA22D5D9E85041017C831E85A754413F14BB65DAE850419B0870D885A75441EC51B88EDAE850415C8FC20586A75441B550EA8DDAE8504166B51B0C86A75441E74A0C9EDAE85041312CDA2086A75441B3A07183DAE85041C65AB75E86A754411F85EB71DAE850418FC2F5E886A754411F85EBC1DBE85041A4703D2A86A754415C8FC285DDE85041295C8F6284A75441AE47E10ADDE85041D7A3705D84A754414E7C2600DDE85041B841403D84A754415C5642F6DCE8504106C8633B84A75441876491BDDCE8504162FA807583A754411B16A799DCE850411D0FC20983A7544127B64A8ADCE8504133268BE582A7544133333313DCE85041CDCCCCEC81A75441A4703D7ADBE85041E17A14FE7FA754418E74C516DBE8504126059C867FA75441B000EFFCDAE85041E3927D6A7FA75441ADEEA5CCDAE850415BAB24437FA75441A5032926DAE85041CAE18FC27EA754416E76F9BDD9E85041783F55747EA754410F63DBF5D8E8504165C9C98C7DA754413D0AD793D8E85041333333237DA7544168C2F7AFD8E85041C78C8B0D7DA75441F201C51BD9E85041A29ED79E7CA75441579F21FCD8E85041B8DCA81B7CA75441687C1DDCD8E85041243B1FAD7BA754412F390BE4D8E85041150C9B817BA754413D99A2E1D8E850416EEA534F7BA754418124C96DD8E850419AF965727AA75441D00275AAD9E85041B65B71697BA754417E5A5288DAE85041785DD70F7CA7544194848491DAE850417CD82A167CA75441045E98DFDAE85041213D763A7CA75441AE47E14ADBE85041333333437CA754410AD7A3C0DBE85041A4703D8A7CA7544162F5B8C1DBE85041CDC9349F7CA75441F76415CBDBE85041E93A41A57CA75441EDBA89C6DBE85041ECA079FC7CA75441CDCCCCCCDBE850415C8FC2757DA754414BC4C0BEDBE8504160A0DA917DA754419FB95EBEDBE85041E2D933997DA75441B79DB4A8DBE85041AC4086F57DA75441F03D17CFDBE85041F79AEE327EA75441F6285C1FDCE850410AD7A3907EA754413953EF7FDCE85041C33941BC7FA754418B8238A4DCE85041575871DD7FA7544185EB5178DEE850415C8FC21580A754410AD7A340DFE85041F6285C7F80A75441A20240C1DFE85041534A40BA7FA75441584750EFDFE8504164AC2D697FA7544123497CE5DFE85041B1AFE2437FA754418A1E17B9DFE8504152AC62C37EA75441DD9C6732E0E85041241F41477EA754414DD85F8DE0E85041B21CD9857DA754411C3624ACE0E8504124237A6D7DA75441E17A14AEE0E850419A9999697DA75441713D0A67E0E850410AD7A3F07BA75441AE47E1AADFE850418FC2F5F87AA754417B14AE87DFE850411F85EB017AA75441BAE9708DDFE85041C8EB37E979A754413B34CF89DFE85041699CFADD79A7544155A9F8A7DFE85041F022777779A75441666666B6DFE850419A99993979A75441CB7A60BBDFE8504182A7823579A754414CED39C1DFE85041152CA12179A75441C0B67A8FE0E850414FDD055278A7544127616EBEE0E85041E455EF4378A75441E678247EE1E850411F462DB077A7544116725DA5E1E85041CFAEF1C676A754411ADE23EDE1E8504172FE0B4076A75441EBCDF3A9E1E850410D38F1CC75A75441AE1D77A2E1E85041D8510BC375A75441F418D542E2E85041DACDA5A775A75441CDCCCC9CE2E850416666669675A75441D97DBDCEE2E8504182A922B675A75441A7823E4EE3E850418CB9ADE475A75441D0BD17ACE3E850413963275776A75441295C8FF2E3E85041E17A148E76A754413189A45EE4E850418BE7A99776A754413C415AC1E4E85041F8B2776676A754411F85EB01E5E85041B81E853B76A7544119F35880E5E85041593BA2CB75A754415C7799D6E5E8504177FA156C75A7544105A22521E6E85041DC3535B674A754412B998E3AE6E85041325E6D6D74A75441FCA10222E7E850417E0561B773A7544173BFFFBFE8E85041C9380A5272A7544155837612E9E8504125A88A1472A75441233BC668E9E85041172E8AD171A75441DD4342D5E9E850410BD9D47C71A754415A70D6D4EAE85041CB7B22E270A75441EF6CD3B1EBE85041B6D3FD2D70A75441E67AB611ECE8504194A39D2770A75441A2D6F271ECE850414C6B380A70A7544189C46F50EDE85041140C024E70A75441503DAD9CEDE85041EAF08C0A71A7544148DBFCFDEDE85041F3CB5CE271A754419E6AE27DEEE850411FF9C89072A75441A9B0810CEFE85041A4F3F63672A75441331C4DA1EFE850411A8DDBB471A7544136B86EB7EFE850418C4F232A71A75441C3F528BCEFE850410AD7A3C070A7544132B080CCEFE8504158B911A670A754413B15D3D0EFE8504191CDFA8A70A7544179F79713F0E85041C46B7C3270A75441A4703D1AF0E850417B14AE2770A7544110A7347CF0E85041B2B5ACF76FA75441606D332AF1E85041E612399D6FA754416A5EFE65F2E850411BD0B7F06EA75441770A6442F3E8504131B062556EA75441EA43EE4DF3E85041F19EA8366EA7544185084D9FF3E85041A382BC3E6DA754413D0AD723F3E850411F85EB316CA7544148902E24F3E85041742BA7286CA75441A5F53920F3E85041D687D8206CA754416B3D7F28F3E8504196A0B0B36BA7544100000030F3E8504185EB51E86AA754415C8FC2A5F3E850415C8FC2B569A7544131DA358AF4E850417B6AA0A568A7544141AF47EFF4E8504197936DE867A75441DC3A6CF5F5E85041A5200B6067A75441C5573D8FF6E85041B1DEA63967A7544104C3F279F7E85041D0F8AB1D67A754416743E8A6F8E850417AE302EA64A75441ED2A46EFF8E85041CD11475964A754411B9A0BE3F8E850416149193864A754417F5A9791F8E85041C540FA9863A754412CD81171F8E850416C4505DA63A7544129B7082AF8E850415CCEFEEA64A754414993BFC8F7E850416E03CE4665A75441757C8F47F7E85041B21A641F65A754410AD7A380F6E85041C3F528EC64A754415C8FC245F6E8504148E17AF463A7544190226E52F6E85041AA6268E263A75441F8F71F52F6E8504194F21EE163A7544192BA539FF6E85041C4B0036163A75441C5E705F0F6E85041CFECAD3762A75441333333D3F6E85041713D0AA761A754410AD7A380F6E85041E17A14EE61A75441603EB552F6E85041027643D961A754412418BF4BF6E8504105AC4DDC61A75441555F3E29F6E85041C7C778C661A75441EC51B8FEF5E85041333333B361A75441F742D0B6F5E8504186642EAA61A754417F8E6A34F5E85041A15C51B461A7544110D3B710F5E85041B365DFF561A7544126602A02F5E850413AB58E3362A75441CD9C4FECF4E85041F5E82A0862A7544166666656F4E85041CDCCCC3C61A754418FC2F5A8F4E850419A99993960A7544120476E03F5E8504197A2572E60A7544163D089B5F5E85041D67AB90E60A754414D40BA04F6E850416BCC92D45EA7544183F88249F6E85041DEFAD5A75DA75441A38DB14FF6E850411B22C4AC5DA7544114AE4751F6E850415C8FC2A55DA75441E17CA8FDF6E8504144F981375EA754416A2F838AF7E85041EBC7D7A75EA7544114AE4711F8E8504114AE47915EA75441F331603EF8E85041165D93DC5EA75441940E9C44F8E85041688CDEE25EA75441BA21B350F8E85041F0BD2BFB5EA75441D88F7A97F8E850417C7359715FA7544180430BFBF8E85041C901DCD35EA754415DF8E6CEF9E8504126161D4B5DA75441EAE984FDF9E85041BF8B2FED5CA75441C3F5280CFAE85041A7F441AA5CA75441C3F5280CFAE85041000000505CA75441C3F528ECFAE850415C8FC2C55CA75441E17267E7FAE8504199B8266E5CA75441C122B4D4FAE850411DB276DA5BA754413CF2551EFAE85041998118245BA75441C38341DDF9E85041A43D39EA5AA75441A5CEDCD3F9E85041025E9FD95AA7544114AE47D1F9E85041713D0AD75AA7544190FE10B1F9E85041B076209C5AA7544141387277F9E85041FF354B365AA75441BF4C0B7AF9E85041A080A3A959A7544184049DBAF8E850412CE99CE659A754411647AB92F8E85041D6917EFD59A75441229EF38AF8E850415D48CBF559A75441713D0A87F8E85041713D0AF759A75441F89A9C7EF8E8504133437BE959A75441AC810D41F8E850418E0B0FAC59A75441171A4714F8E8504127FBA0FB59A75441AF718507F8E850413D81AC265AA75441C16FE8EEF7E8504130D84D6B5AA75441877E35D1F7E8504177461DB05AA7544167DDD4B2F7E85041B08C11F75AA75441AE1C6F86F7E850418E1E43235BA75441ADE4547DF7E850413F60E0075BA754417B14AE77F7E850411F85EB115BA7544186D19942F7E85041998B2D575AA754413007142FF7E850418817711C5AA7544185EB5198F6E85041333333B35AA754410C92F919F5E8504103D6B30659A754416EF1FA5BF4E850410FD33E3858A75441DF4D2E58F4E85041490E842D58A7544166666656F4E85041B81E852B58A754412B036E54F4E85041E327EC2258A75441D9A8184FF4E850413259DC1358A75441925B3246F4E850417BB9D5EE57A75441A2B8F945F4E85041476ED9E357A7544133333333F4E850411F85EB9157A754412A54975EF4E8504175CAFA7757A754418A812067F4E85041FB572F6757A75441850707DCF3E85041B6FB70D056A75441586BAC39F3E850417BB0966556A754415AE7C873F3E850416CD6916156A75441CA861A4CF3E85041E05C6C4156A754411248F52AF3E85041BCC8FEA055A7544133333373F2E850410AD7A35055A75441EBA42F74F2E8504140937D4F55A75441D4D59F6EF2E850413BD5AF4D55A7544150EBC68FF2E85041EB2D542F55A754417B14AE47F3E850418FC2F55854A75441042B3D6DF3E8504119D9847E54A7544134A5D6BEF3E8504173D99CA054A75441BE6BFECFF3E85041E858459154A754414A24F47DF4E85041B4501BE753A75441B2D3B2E2F5E8504135D511D753A7544168E752E4F5E85041926DDBD753A75441713D0AE7F5E850417B14AED753A75441226960EBF5E85041B23846DB53A75441534E262FF6E850417A7D1CFC53A7544189D203E5F6E85041770F20F853A75441B83E3421F6E8504177C4E39053A75441E522440DF6E850411EEC038853A75441F7C44E0FF6E85041AA51748753A75441AE47E10AF6E8504152B81E8553A7544148E17A14F9E850410AD7A3B052A75441D5935E17F9E85041367A37B252A754417CA08F27F9E85041EB8BC4AD52A7544165D61C6BF9E85041F57FD0D452A754410CB90A9FF9E8504159BF9BF152A754411021E312FAE85041D93F263953A75441C37E18F3F8E85041EC2C151152A754417DF15E6EF8E850414283C59051A754418AFA9F2FFAE85041757B24AD51A75441AE47E13AFAE85041D7A370AD51A75441AE47E13AFAE85041CF72EED750A75441E13D6E20FAE850413612B4BB50A754414FE86608FAE850411F0FA6B150A75441D7A370ADF9E85041A4703DAA50A75441CDCCCCFCF8E850419A9999F94FA75441AA0562DEF7E850411DBFE4844FA754418F571EB9F7E850418B33A5774FA7544111BAF86EF7E850417BFF78624FA75441AB078EE9F6E85041BA9705D74EA75441559542A3F6E85041BEEA7CD84EA7544185EB5198F6E8504185EB51484FA7544177B09496F6E85041520D2E484FA754415B5D4E96F6E85041CEFF8A554FA75441B3031119F5E85041871C153F4FA75441B35D82EEF4E85041378F7F3A4FA75441A9D92410F4E850417AD63F1B4FA754410F6036EAF3E8504191000C114FA75441D7A370BDF3E85041D7A3700D4FA754415C8FC2A5F3E85041CDCCCC5C4EA75441A53B79E0F3E850412C0A17D34DA75441E094AEEBF3E85041B3576AAD4DA75441ECEEC3E0F3E85041C20803C34CA7544122C203C5F3E8504155A1E0D54BA75441F8C11FB2F3E850417FD894C24BA7544114AE47D1F2E850419A9999994BA7544127EB720AF2E85041B663C4B74AA75441B6C696D7F1E85041FC85647F4AA75441AB6B77C5F1E850415773896F4AA75441C0005C2FF0E8504143BFD4C249A75441372E27E7EFE85041FF0F87AE49A754417E969F63EFE85041DFE0682A49A75441D08E8636EFE850415A4A943F48A754418118464AEFE85041361C542548A754415C8FC245EFE85041E17A140E48A75441EC3F2B68EFE85041A7D9A60248A754415C963E10F0E8504119A9F7B147A754413FFFCBF2F0E850417600418746A75441DFFDB1C6EFE850419DDD75DB45A75441163C878CEFE85041DFF4F7B045A754419A999969EFE85041D7A3709D45A7544123E73D6FEFE85041840DC98B45A754410CF6305CEFE85041AC2D843B45A7544171269CC2EFE85041FBFD985D44A754419371EDC1EFE8504174482C5A44A75441177C5CB8EFE850419F3DF46644A75441654166C1EFE8504154E2855744A7544160A4F2B8EFE85041947A1C2D44A754413CDC6F8AEFE850419E1015B143A75441198D3CFDEFE85041776E35F542A754411FEDD566F0E85041AA9077BA42A75441E17A14EEF0E85041CDCCCC4C42A754414E401E18F1E85041C29BD95742A754415C3C7C25F1E85041480F6A5042A7544179BCBD26F1E8504127FA574E42A75441587E9DA9F1E85041E84F187E42A75441E17A14CEF1E850417B14AE8742A75441295C8FA2F2E8504114AE472143A754419666D2A7F2E85041E6F5113343A754418AA8CF1AF3E850417332EB4E44A75441349042DDF2E85041BB8EC6AC44A75441F6285C7FF2E85041A4703D7A45A75441870F8BB7F3E850412AF0D80148A754417A066BBEF3E850419200880E48A754415FC920E1F3E8504124B28B1E48A75441F0D554F6F3E85041B3C9E92048A754413D52AA7DF4E85041E9BCC46648A7544117CFF7DFF4E850417D891F9448A7544102510E2CF5E85041B81E859B48A754413D0AD7A3F6E85041B81E859B48A7544154131FDBF6E85041F2A37EC848A75441A2B68D02F7E85041C2B331E148A75441747EA535F7E85041BAB8F20C49A754410640D553F7E850418364B32A49A754410AD7A360F7E8504152B81E3549A75441C4502662F7E85041FBC5CF3849A754414D80466BF7E850417660CE4149A754418227C2C4F7E850415D3511134AA75441205B9C9EF7E8504148F4DB5E4AA7544192342873F7E85041F18C8BB24AA754417C2A8886F7E8504151A00F454BA7544122551483F7E85041FC92EA414CA75441287F98ABF7E850417C6C64594CA75441C7DC73B2F7E850410EC8F3334DA754416464419DF9E85041E7689D484DA75441CCD0444DFAE85041132F6EFB4CA75441EC51B85EFAE85041F6285CEF4CA7544133333303FBE850411F85EB414DA75441E17A141EFCE850413D0AD7E34CA7544192DD102AFCE850410EF582E64CA7544179319E42FCE85041365984DD4CA7544100C61B87FCE85041AEFD3FFB4CA7544185EB5188FCE85041B81E85FB4CA75441B1CB2B88FCE85041A814B6FB4CA75441D239BB8FFCE850412649FEFE4CA754413CB1FB41FCE850419A65D9554DA754410AD7A390FBE850419A9999394EA7544131CA2675FBE850417DF6AC3A4EA75441AF4A1A71FBE850415EE1323F4EA7544119C8C06DFAE850413CC4924E4EA75441D7A3708DFAE850413D0AD7A34EA75441BCBE5F9CFBE8504150AC1EAC4EA7544135A4C210FCE85041BA6933A54EA75441D986C027FCE8504122047BBD4EA754412F66F220FCE85041DD418D1F4FA754417E0446B9FBE850413E063D644FA754411BD23873FCE85041A5B9B9924FA75441A579DC98FCE850419C9921984FA75441CEDBAE11FDE850412D85FD554FA754412F16E774FDE85041158353194FA7544108EF049FFDE85041D0D024F94EA75441D07F8BBEFDE850416F078F114FA75441F57B63B4FEE850419A9999194FA75441D7A370EDFEE850419A9999194FA75441716CC7EEFEE850411A88821B4FA75441921D61F7FEE85041F58BCA1B4FA75441E147CA0EFFE85041F7512B494FA7544100000040FFE85041F6285C8F4FA75441572CA3B7FFE85041A3CDDD2350A7544158FBC1EAFFE85041ED889E5550A75441F410F47500E95041FFC5F70651A7544121B5551F00E95041D53E52B951A7544185EB510800E950413333330353A75441C3F528DC00E95041295C8F1254A75441A5E391DC00E9504136A47C1454A754415E1C09E100E95041A182221A54A754417F617CE400E95041CC5AB33954A75441516B8E2901E950419427687E55A754411E79D64F01E95041D3B116FF55A754411732B07001E95041BE3A9E5156A7544185EA663902E95041F94106D556A754413974E3ED02E95041D189AF7856A754411C6ECAF002E950410024397856A754416666660603E95041B81E856B56A754416FA0A85E03E95041D30FB76656A754415C8FC2E503E95041C5952F5156A754415C8FC2E503E95041EC51B8AE55A75441A4703DFA02E95041CDCCCC0C56A7544194750BFA02E9504119049E0156A754414BD03CF402E950412FDF3A0456A754414FAA21F802E95041E8B3079455A75441236F74F002E9504149A153DC53A75441C84460E902E95041D1D12F7553A754416666662602E95041B81E85EB52A75441713D0AD702E95041CDCCCCFC50A7544148E17A4404E9504114AE471150A75441E2AA465704E95041FA64F31250A75441A5F5B75A04E95041912B121050A75441B386AA9F04E95041B7AB621950A754417B14AE4705E9504185EB512850A754419B86637F05E950417B19344650A754410167AF2E06E95041E1178D8150A754411AF6603607E950417A27552951A754416F6B2C7B07E95041AB9A970652A75441EC51B8FE07E9504185EB51E851A754419A99991909E950411F85EB8152A754414812A84209E95041F28460D752A75441B2A21BBE09E950410D4CC29053A754417D191CAB0CE95041194FBF9350A754410271C9560DE95041095738D04FA754411CA36EA30DE95041ABF41D964FA75441058C10F60DE95041F4E1B7414FA75441DA00F2DB0DE950417EF55B434FA75441B81E851B0DE95041C3F5286C4FA75441F729B0170DE95041420C7F644FA75441F2E6F8070DE95041289DA7684FA754412C2C99DF0CE95041CCB0D3E74EA754412FAA00390DE950413F131D964DA75441A4703D4A0DE950411F85EB414DA75441AD1D5A270DE95041DEFBA02C4DA75441E656CB6C0CE9504103C12CC54CA75441E17A14CE0AE950418FC2F5884DA754411F85EBE109E95041EC51B81E4DA7544185EB517809E95041E17A146E4CA754415D3E5BD908E95041E3E1E4294CA7544129BEAF8208E95041AEAAC9084CA75441A9F7BC7B08E95041F9917FFC4BA75441333333F307E95041000000304BA75441000000D007E95041666666964AA75441402B79DF07E95041467DA2624AA754416CB70DF007E95041077661A549A75441C1E5D7AA07E950419488749B49A754417AB69AA007E95041E721AC9C49A75441E3214B9D07E950413013839949A7544114AE477107E950413333339349A75441DACD8D1D07E95041BE09941F49A75441C8AEE60E07E950413068971149A7544148E17A2405E9504152B81E3549A7544117AD190005E95041E8D0AF0449A754412E635AB104E95041B35C5BBC48A75441CE47420C04E950415F47779448A754410680847003E95041411EEEC647A75441F6285CBF02E95041B81E85BB47A7544152B81E3503E950411F85EB5147A75441BC6C762503E95041845BAC0B47A754419DDCD20B03E95041110874E446A75441C3F5289C02E95041000000D046A75441A4703D3A01E950411F85EB9145A75441EEBB7B0801E950418ECA5E9D45A754417C4111BE00E95041B37F5AC645A7544102C74DB100E9504103B96EB145A7544114AE47A100E9504152B81EB545A75441F6285C1F00E9504148E17A0445A754417584823100E95041396FE8CA44A75441FA1D995500E950413030683144A75441E08AE20300E95041DB54D5D842A754412B93D2ECFFE85041506D119842A754416C1BD3E3FFE85041C7ED673F42A754419A9999A9FFE85041713D0AF740A7544148E17AE4FFE85041295C8F5240A75441FB3882D3FFE850419B980B3940A75441DB4DB4CEFFE85041A8C0B03C40A75441E093C63CFFE85041D2E06E563FA7544185EB5128FFE850417B14AE373FA754417543C828FFE85041ADCFE2363FA75441579BDC27FFE850415DF96E353FA754418780C331FFE85041DA9975273FA75441F6285C1F00E95041F6285C8F3DA754410AD7A3F0FFE8504152B81E253DA75441698039F5FFE85041A5BF46003DA754416C4C1D0700E95041BE9BF4EE3BA7544197C3346C00E9504167AEDD6F3BA754417A0D8F4D01E9504199665B623BA75441C6217F9701E950415CE182673BA75441F6285CDF01E9504152B81E653BA754411A498FF001E950416448B86D3BA7544191D9B6FB01E950413A587F6E3BA75441C648492602E950413A4895883BA754418FC2F55803E950411F85EB213CA75441AE47E1AA03E9504152B81E253DA75441CDCCCC2C04E95041F6285CAF3CA7544182A76B8104E95041C8F059B73CA7544102D7F48304E9504182648DB63CA754410A6BA39304E95041A55F12B93CA75441B81E851B06E95041E17A14DE3CA754418D7EDEA706E95041B23224393EA7544104C273C906E95041C249E0683EA754413CAC6AE906E95041192F48B93EA75441D4B1C90A07E950419D1743D43EA754415EC8688E07E950411E1951EB3EA7544151AF46AA07E95041F4303AEC3EA75441F60320AC07E95041409385F03EA75441CDCCCCAC07E950410AD7A3F03EA754414F720F0908E95041CB0DDD9D3FA75441036D161F08E9504147C965993FA754419A99991909E950417B14AE373FA75441E69A411809E95041F9D299403FA75441C045612B09E9504137E7F9383FA7544153B29C2509E950415BAC4DD73FA75441D331D26709E95041343D19FB3FA75441F6285C6F0AE950419A99996940A75441361315680AE9504198BBA2CA40A754412EF923750AE95041602C7B0741A754410AD7A3200BE950411F85EB3141A754415A7ABB1A0BE95041FCE56E5441A75441B5C3DF220BE9504188071C7141A75441D378F5460BE95041ABBFAFB841A754411F9573BD0BE9504114AE474142A754417063F0BE0BE9504114AE474142A75441C78E1BD90BE950417B36652E42A75441D7BCFD590CE9504114AE474142A754411F85EB810CE9504114AE474142A75441D68B1F870CE950419C99E44742A75441B6A760A50CE950417073534C42A75441E243B40C0DE95041789E43E842A75441B4C19DA20DE95041056CCA0743A754412394291D0EE95041E78D911443A75441AC79E97B0EE950414E91092B43A75441949E13960EE95041E193FD3A43A75441333333C30EE9504148E17A4443A75441469BF3CE0EE950419921AB5D43A754418AA52FE20EE950410E6E656943A75441D7D5092F0FE950413B655C0444A7544159DC20830FE9504102FF6BBC44A75441724EBA8A0FE9504140C063C744A75441F6285C8F10E9504114AE47C145A75441C15BB28E10E95041A5EF2CCB45A754417E9F9AA310E9504153AA27DD45A75441BC2E939310E950414C58170A47A754412B0900B610E95041BD48683A47A754411B88062B11E95041C52B306747A7544157C5444511E95041D22B526C47A75441220327A212E95041228B2BF647A75441295C8F5213E950417B14AEC747A75441C850577B15E9504124DD125346A75441FFC922B715E95041871B4DD345A75441221D8FBE15E9504115F4E6BB45A754413C34660A16E95041E3563B8E44A754414AB7827816E95041527A2A6743A754418389336916E95041F2CEE84243A75441CDCCCC2C16E95041E17A14FE42A75441325B2E7916E95041E6844FC742A754417C3C1DD816E950411DA5FB7142A75441B4A736DA16E9504101CC336B42A75441CEFF983817E9504129B61C2741A7544189AA543517E950414523BB0441A75441CDCCCC0C17E9504114AE478140A75441867BC13D17E950417BD2B41140A75441CF40745917E95041F7E849C83FA754416535FC6C16E95041BA04D2183FA75441DD152A6D16E950415EF9C3173FA754417B14AE6716E950413D0AD7133FA75441B62F5D8316E95041DD9517953EA754415D66FD9E16E95041C4797AF23DA75441E2A15ACF16E950419FB78AF33CA7544145262C9F16E950417442FC7B3CA754419954356316E950411AD7EB343CA754416EB238A515E95041994E27683BA75441A3143C5C15E95041390A31FD3AA75441546238A915E950412A2A73163AA75441F2081F6115E9504183BA8F8B39A754410428BC3915E95041B33C175139A754412AD0FD2E15E95041005EFE2A39A75441B1FD5D1115E95041AF38EDF138A754410A6CE7F014E95041B9F89D2039A75441787A3D0D15E950415D00FAE938A754416666660615E95041CDCCCCDC38A754418FC2F55815E950413D0AD74338A7544184AB59F113E95041FE133C3C37A75441A787538513E9504131F5ED0B37A75441BA39DD8C13E95041D83E93F236A7544177BFEF4C13E9504101D5B6C336A7544163EAF48F12E95041C2F4E06436A7544103933C9C12E95041F6E2F85636A75441CD880A9D12E9504105FEC64236A754415C8FC29512E95041D7A3703D36A75441FB969E0F12E950415B74021E36A754412074EEAA11E95041C1F6B33E36A75441AE47E17A11E9504148E17A5436A7544143E1C87611E95041C591A24F36A75441A553516C11E95041C09E085336A75441B2A43F4011E9504176B71D0F36A75441E17A14BE10E9504152B81E7535A75441869B0BB710E950417AD3567035A75441449AA19810E9504108550D6D35A75441A38C5D7B0FE9504107EBBFA734A75441AD269C8F0FE95041A1CE8EA734A7544148E17A740FE9504152B81E9534A75441A1C97F690FE95041C8CA6E7D34A754418D5709670FE95041CE76DE7B34A75441875C5E640FE95041528B5D7234A75441B9FF44D60EE950416360D63F33A75441914B93800EE95041C0EEF7B032A754410D8A40E20DE95041766A66A932A7544195A5EDB30DE95041E798FFA932A75441603F01AF0CE950418B68B69A32A7544152B81EA50CE95041A4703D9A32A7544196D7DB8B0CE95041DB54BB8732A75441970C55280CE95041285F525032A7544163F1B83A0BE950412F7C0C1932A75441BEA55A010BE95041027533D231A754414E639CBB0AE950415646022331A75441333333930AE95041A4703DDA30A75441CDCCCCFC0AE950419A99992930A75441FC60A54F0AE950413E5BF0E12FA75441B3B4309009E95041E0360BB52FA754415B53ED7E09E9504145B234C22FA75441B81E85DB07E950410000005031A754412C2249D407E950416A94B44F31A75441623CD6CD07E95041004D295A31A754410CBE7EEC06E95041D1A73A4831A75441B81AD59D06E95041B054C2E731A75441D7A3709D06E950419A9999E931A754411B02D89C06E95041DB9DC3E931A7544125F0BF8C06E95041023B670A32A754412AFB556705E950413275785C32A754413A17D04D05E95041543821AA32A75441BD0EC71C04E950419CABA0D832A754413AD25B1404E950417C17CDD232A754419A99990904E9504152B81ED532A7544132BFFDFE03E95041246803C432A754417475AEE503E95041FC457FB232A754412C76F94B03E95041F2C2A6DA31A754410FF48FB802E9504145A83DCF31A75441176E2F5002E95041160699D331A754410C8340B501E95041717F3BA531A754416666664601E95041AE47E18A31A75441D53BA04401E950414326878331A754419276824301E9504138A1318331A75441E44A3D1401E95041FE43DB0131A75441BA54BD1801E95041CD17A8CD30A75441F6285CFF00E9504148E17A6430A754415531782501E9504181A2FE3930A754416089EC2601E9504122991F2930A75441CDDCEE1502E95041F9B7320D2FA754414572112C02E9504102683E152FA754411F85EB3102E95041EC51B80E2FA75441F1FB390805E95041622F1B1430A75441848FD6A905E95041F4EC074430A7544170B498F705E950411C5D947530A754414A911E1606E950411C0DCA8430A7544176AB427606E95041EBA3F89B30A754413C9786B206E9504116765D8E30A75441C2D44F0007E95041AB9DA07230A75441A003C40C07E95041590B626830A7544152B81E9507E95041C3F5289C2FA754411325C99707E95041FB196D9B2FA754416895F69B07E95041DC7FA8912FA7544138DDF0D508E950416C31AE3D2FA75441AC804CFC08E950410E5C4E1D2FA75441A37E2E1909E95041936A25102FA754419BFAE9AC09E9504188667DE42EA754412A94B6400AE950417ADC86692EA75441EC51B89E0AE95041B81E850B2EA7544177C72BE70AE95041554168F92DA7544172CD13920BE9504107E1FAAB2DA75441A5FC01B80BE950410D8A094E2DA754414C3A292D0CE95041F0E93D202CA754411DB60A330CE950418BA010262CA75441B81E853B0CE950410AD7A3102CA7544156AFE6830CE95041358321762CA75441575D64BC0CE95041E84E11AE2CA754411F4FF4110DE95041D21110B32CA7544152B81E650EE950419A9999A92CA754415C8FC2350EE95041EC51B88E2BA75441E3466E420EE95041A9E8BF812BA75441C4705C410EE950417F22A67C2BA7544179A9630010E9504190AE42B729A75441799BE4A30FE95041EDDDE89D29A75441B43E231B0EE950419BB7C16429A75441E0931ADE0EE95041A1B9B36F29A754416FE2B9890FE9504121AC2BA928A75441D169EB4C11E95041898533A928A754416FD40A5112E95041730D35BD28A75441F0FF9FC112E95041B4554BB828A754414199EB3813E95041B2EFCEBE28A754419DE719BC13E95041A6B970D528A754414BE893C713E950418BD4AAD528A75441094F681C15E9504103F57BC228A75441158D078B15E95041567F98DE28A754418AAE26F115E950411A889DE028A7544195CB100B16E95041C895BADB28A75441C30DA33016E95041ACF4DEE128A754413D0AD77316E95041333333E328A7544129F0F98716E950416E2226F028A754410F0E348E16E95041ADBC2AF128A754415D8CE2C116E950417D52631529A75441B664C0C018E950412B8CE85D2AA75441880037F518E95041B27C407D2AA754410AA0071519E950411F80EC892AA754418A9386B919E95041D57E41762AA75441FE40DCC719E950416E6447702AA7544106233C101AE9504198D60D5A2AA754410DB0DF521AE9504127F32D282AA75441D7A3705D1AE950415C8FC2152AA7544155D065A01AE950418F77B21B2AA754416551F7C41AE950412FA2EF172AA754414F1564CE1AE95041AD7DC61F2AA75441F6285CDF1AE9504114AE47212AA75441E92F502A1BE9504107B53B6C2AA754416971A3C01BE9504180CA44E92AA75441499108D21BE950411973B8EA2AA75441236B98F61BE950410EA09CF92AA7544185EB51581CE95041D7A3700D2BA75441600403691CE95041B2BC211E2BA754413714C06A1CE95041A571A01E2BA754414E32B9611DE95041494D96EB2BA75441295C8FA21DE9504185EB51682AA7544146EE6DAB1DE95041229898632AA75441B6F854AF1DE950410A121D4B2AA75441E9FBE15E1EE95041A7F33A012AA75441FE5188851FE95041B59C72432AA754412AB252F320E95041671B2EBF2AA7544117F2AB3521E950419AE943A72BA75441CB3FE38321E9504193B85AF02BA7544121369E0222E95041B8284EFD2BA75441F9F3715823E95041B72B0F442CA75441B4B7955A23E950410B3477482CA75441F6285C6F23E95041B81E854B2CA754418ED5FD9123E95041D71891BA2CA754418E533CB723E9504166D743072DA75441A6D0DC8424E95041172700F32CA754411F85EBA124E95041FE80B4772CA754411F85EBA124E9504185EB51282CA75441AAD758D124E950411F3C8BE82BA754410395147725E950411B2FB8F82AA754414895B63F26E950413BFE09FB29A75441AA747F2A27E95041B59935A229A75441A22BB0D527E950412BD9730529A754419EC1C2BC27E95041044EF57D28A75441000000A027E95041F6285C0F28A75441000000A027E95041889EA0E127A75441C44E069227E95041EADDA99527A754417E18469F27E9504147A7F27E26A754418D95F98727E95041F0AAC3E425A75441D983628826E95041B88B742B26A7544130DD9E9D25E95041D221EA5E26A7544164C9C8F924E95041080458AA26A7544148E17AF424E95041D7A370AD26A754417DCA03F424E950410C0400AD26A7544106056FF224E95041C15EBAAD26A75441528DE39024E950411858414F26A7544148E17A1424E950419A9999D925A75441713D0AA722E95041A4703DAA25A75441E46EF1A622E9504101C2ECA725A75441A3BE598F22E950411CA927A525A75441A0D59A9C22E950410282ECB024A754414A963C9922E9504144C9736024A75441DD01627E22E9504165D4886223A7544187255C2A22E95041333333F322A75441B16B41B421E95041333333F322A754410AEC586E21E95041BFEA8C3E24A754414E888EB820E95041DC17EB4D25A754410AA5DAA820E9504134A4E45D25A7544114AE477120E95041666666B625A75441C7DA2BE31FE95041D47BD7E325A75441A9DE1A311FE9504106A5622626A75441863710281FE95041102895CC26A7544104DBF38A1EE95041BD659AEC26A75441FC311F741EE950417C0CA3DB26A75441AE47E16A1EE95041CDCCCCDC26A75441A18E24BA1DE95041B11A6E5126A7544124EF5C881DE950410CEC6F2C26A754418B1130FA1CE950416899625325A75441DC57B1BF1CE9504104F3827A24A754411FBA01D21CE95041B465EDDD23A75441CE0D78F31DE9504103D48EB921A75441912B30E71DE95041A0165B9721A75441257461871DE95041B1C6165521A75441E836594F1DE95041223A619B21A75441A73892DE1CE9504190E99E4622A754413DC7F4961CE95041B8FFCAD622A75441BB46CB8D1BE95041209CEE7623A75441C6F752831BE950415B117E7323A75441CDCCCC6C1BE950410AD7A38023A75441A95F20EE1AE9504178F1145023A754411CC90CE31AE95041E7E4454E23A754414CC555A61AE95041FD66554923A75441A90692C319E95041565D655B23A754415C318AD918E950417C66647323A754418380C08218E950411C17447523A754416AA1617E18E950411E4D4C7523A7544171F931C017E950412364728423A754415ADECD5E17E950413034729823A754411D8B93CF16E95041D741ED0723A75441666666E615E95041333333F322A75441A242D2DE15E95041A0533CF122A75441ED3A84D715E950419CCEE5F022A75441E31C541B15E950413AC7A3C222A754412C395D5015E950419CCC8FCC22A75441DB9D0B4915E95041D8206ACA22A754418FC2F57814E9504148E17A9422A75441B81E850B13E9504114AE477122A75441CB99B20013E95041F0B6F26022A75441291649ED12E95041CD17055422A75441B3993FB612E95041A659C51822A754413E81EEB911E9504144D4B8D321A75441295C8F9211E95041C3F528CC21A754418AFB3D9910E9504167C5521B21A75441217C248210E950416D646C1121A754416C395C7E10E9504102AA410821A75441B6733F3810E9504175EC86D620A7544199CD691610E950411FECBDCE20A75441A2A04EF00EE9504192CFA90E21A754411295C6670EE9504144033A2021A75441C3F528CC0DE95041EC51B83E21A75441168BE9A10DE950413AFAAD3921A75441B7233D8D0DE95041B1C9563C21A754417ED3C9DB0CE950417CC3D42221A754414A401BA30CE9504116E6982121A754411F85EB810CE950415C8FC28521A754419CF72C720CE95041A5141C8521A754410621AC700CE9504178115E8821A75441F435885C0CE950412B39378421A75441B81E855B0BE950419A99997921A75441DE7DDEAA0BE95041DFD393F720A7544192FD5ADC0BE95041C4BCA08520A75441522A7EC00BE95041EF2B43D61FA7544134A2EBB30BE95041FA4A95BF1FA754413D0AD7430BE95041CDCCCC2C1FA7544148E17A140BE95041AE47E1EA1CA754410673FCA007E95041C3961CA91EA75441C824029D07E9504105F2B6AB1EA7544111FEA29807E95041D92A54AD1EA754419AA242F506E9504104A7D8FF1EA75441E4EE584606E950410F5DF15E1FA754418815494606E95041F873E7A71FA75441D603C14606E950410BBB62E21FA75441C49408CF05E950413EF6A7F91FA754417683891A05E950410A77220D20A75441792C2B5A04E950412DA6772C20A754412E15E35404E950414012197020A7544133ED2C4204E950415A50944621A75441290C873D04E95041B6340F7A21A7544185EB513804E9504114AE477122A75441885F2A0404E95041692BCFE522A75441594392E403E95041BF71845023A7544151847BB503E95041198C9C9523A75441F6285C9F03E95041713D0AC723A754417E6A1D5903E95041D685B6F223A75441FC4D0D3E02E95041D70409B224A75441864B56C201E95041E0F9C36B25A75441EEC2E23C01E950411A05B71327A7544101EEF13201E95041085C032227A75441EC51B82E01E95041F6285C2F27A7544141C2EB1B01E950412332214327A75441876F40FF00E95041F1A75D6C27A754412440CF5000E950419A34DB3F28A75441BAE6612000E95041D0C4C70B29A7544171789EBEFFE85041F914BC4629A754412D2269E1FEE850415BABE25E2AA754412402F19CFEE850412148A1222BA75441EC51B88EFEE85041000000602BA754417FDFF185FEE850417FD45F642BA75441286A6580FEE85041FEBB3C742BA7544193B85AC0FDE8504192CD15DA2BA7544177826EF7FCE850410661A87D2BA75441666666E6FCE85041713D0A772BA75441A7989B66FCE850416CFD898F2BA754418A4DB5F3FBE850417C2217BB2BA754413BAF8A18FBE85041DB36A9AC2CA754410CD9E201FBE850413FF999C62CA754410450A888F8E85041EC9F18C72FA754419540CE6BF8E8504180F708F02FA7544188B648D7F7E85041741D32EB30A75441F95384C5F5E85041465CAF912EA75441C3F528CCF4E85041E17A147E2DA75441C692B678F5E85041C62AD0762CA754416B2DCC97F5E85041A766853F2CA75441515D2DC4F5E85041B7E916082CA75441861DD239F7E850417D48AB122AA754410F5E5CA3F7E850412B27487129A75441EFAA32C0F7E850416161437C28A75441A4703DCAF7E8504185EB51C827A75441D1D72AD7F7E85041B5A019B927A754419BDB8CD8F7E85041B6B059AD27A754412559AA5AF8E85041CCEC370C27A75441C6578F5FF8E85041C184780127A75441512F5D15F9E850419FF36C5325A754410081F358F9E85041B68E3E8324A75441A4703D8AF9E850416666661623A754416703358CF9E85041BDD9A81123A754416CC95190F9E8504145FC9CED22A75441E4035019FAE85041E1FFF7B521A75441CE740C64FAE85041B3ED349620A75441FDDE24E7FAE850410AA3D56F1FA75441524B10A5FBE85041106D70F11DA754417FDC711BFCE850418BA103EE1CA754415C8FC235FCE85041000000B01CA75441B841BB93FDE850416886938C1AA7544145026BA4FDE85041EC6448E319A75441EC51B8AEFDE85041F6285C5F19A75441289397B2FDE8504133B87A5319A75441E6FDC7B5FDE8504178BF1F3319A75441A0DD3BCCFDE85041B0AECD0419A754413D04AA78FEE850413D82BDF316A754414C2EAD7CFEE850412A4F47E216A754410FBC4D9DFEE85041E3F8518316A75441D7A370EDFEE85041D7A3708D15A7544123FEE109FFE85041FF0DAF1B14A754414A19FDF7FEE8504155FF3D7213A754419F39FCDDFEE85041BA3A2B1C13A7544193878D67FEE850412418FD5714A754412A8C8C58FBE8504163EEBD6B1DA75441305B9B04F6E8504162A83D7529A754413BE54F77F2E85041D86FBB602FA75441D22ECF73F0E8504134FA8B0533A7544175F0EFBFF0E85041D3F08AD432A754419841E2DAF0E85041B09F98B932A754415E87E4C2F1E8504105D168B431A7544169FBD103F2E8504185EAEC4031A75441713D0A67F2E8504148E17A6430A75441295C8F82F3E8504148E17A842FA75441F6285C8FF7E85041AE47E18A31A75441FA86651BF7E85041BAE4E82632A75441D9239290F6E85041A4EDAB0133A75441091847C5F5E85041DECA3BF333A75441713D0A07F5E85041333333F334A754410C27BED8F2E850411B3B584937A7544143B02431F2E8504151CF2D1738A7544101CA4021F1E85041EA3E325C39A75441E17A149EEDE850417B14AE573EA75441674C3C93EDE85041C8AFB05D3EA754415009DF8CEDE85041E12BF6663EA754412496F51EEDE850419BBC73AD3EA7544181B63648ECE8504195647EB93FA7544160CC05C2ECE85041747A4D3340A75441A7651A33EDE85041BD184A9D40A75441F7C5EB35EDE85041FED330EC40A754410744692AEDE850413382D18141A754411A2450B7ECE85041B3BEF93942A754414BD5BB99ECE85041C6DB195D42A75441EC51B88EECE850410AD7A37042A7544188C9A68AECE850417AD9026F42A75441930C0C8AECE85041DA99BA6F42A75441F699D67FECE850417D92AE6A42A75441DF367A47EBE8504144D89FED41A754416A952A05EBE850415F6F8F2B42A75441A4DA1300EBE8504121F8426142A754410355F00CEBE85041A36CA3C743A75441EE4FD210EBE8504154349CFE43A7544124308E19EBE85041E5F7CFBE44A75441493D051FEBE85041372531C544A75441333333A3EBE850413D0AD73345A754418BA7C77CEBE850411325750F46A754412A6DB777EBE850416DA7B33D46A75441809E5974EBE85041FCF0A43F46A754413D0AD773EBE85041295C8F4246A754416E5AC140EBE850419C7C6A5D46A75441AE991F9DEAE850410E11D6BB46A75441194CCF86E9E850410E6057DF46A754411433D257E9E850416678C2D646A7544166666626E9E85041B81E85DB46A754411825DD06E9E85041253565EB46A754410AEDA6C7E8E850413D90481947A754413E0F4791E8E850417F5F2FE646A754417B14AE17E8E8504152B81E9546A75441325AAE0CE8E850411B4C6BA146A754415FB2F545E7E85041BB798D9247A75441706E5DCAE6E85041CEA0297648A754416F57C36EE6E8504194232BFA48A754411D7B2FA1E5E850414483455E4AA754412946EF4DE5E85041D52F66124BA75441A30CB8A1E5E85041F1F3F3B34BA75441713D0AA7E5E85041CDCCCCBC4BA75441A70388A7E5E85041361029BF4BA7544186FA06B2E5E85041041966D34BA75441A24DA7DFE5E850410AF082AF4CA75441A5CE101AE6E85041555689AA4CA75441218794B5E7E85041564133CF4BA75441AA0B3C37E8E85041B4ED2E974BA75441CEF159A9E8E85041589066964BA75441803DB912E9E85041E95917B24BA75441AE47E11AE9E8504114AE47B14BA75441DB14281BE9E8504147AB4EB44BA754412D58EE36E9E8504167299BBB4BA75441C0299C2BE9E8504101E367684CA75441295C8F32E9E8504148E17AB44CA75441E8159F24E9E8504173AD13D34CA7544173512724E9E85041DAC237DA4CA7544143E924BEE8E85041B1B7BFF64DA7544106127E56E8E85041DF198E974EA7544166666646E8E85041AE47E1BA4EA7544187D29E3EE8E85041032597BC4EA75441A141353DE8E85041CC14C8BE4EA7544173CF3D04E8E8504168ED6CC94EA754417B14AE37E7E85041666666F64EA75441A4703DAAE6E8504114AE47514EA75441D7A370EDE5E85041713D0AE74DA7544129871B0FE4E85041126A61044FA75441253BB6B9E3E85041CD2CFA474FA75441A2E60425E3E85041C01BD16B4FA754413D0AD7E3E2E850413D0AD7834FA7544141750766E2E85041A323673A4FA7544138150451E2E850415EFE5C344FA7544125879A48E2E85041C1BC6E384FA75441F6285C2FE1E85041A4703DCA4FA75441FF9607CFDFE85041A625821C51A7544128B6C4F8DEE850418C94F51252A75441C1FD84B3DEE850414B8FC19652A754413D0AD783DEE85041AE47E11A53A75441C201B7E3DDE85041D89374E053A75441A5669376DDE85041FF4E457054A754413AF91D85DCE85041B8B520A355A7544138838B9EDBE85041E926A99056A75441713D0A77DAE850418FC2F5D857A75441CCC9952FDAE8504122DA2B0D58A75441F129C251D9E85041FDFF4FBD58A75441CD29BDD2D8E850418E2D604259A7544129521EF8D7E850412F3A804A5AA75441AC9DF47CD7E850413314D8FD5AA754417C3F5CA7D6E850410B13E1F55BA754411A2BDAC7D5E850413BD2AC105DA754413A7C0CBED4E85041046B450F5EA75441731CF0DED3E85041993C8E105FA754414D6C3D03D3E85041DCF2C4E65FA75441713D0AE7D1E850419A99991961A754415A4AABB5D1E8504131DBD25461A754411148D52BD1E85041ADAEB90C62A754419543BAE2D0E85041FFA8DC5162A75441000000C0D0E85041B81E857B62A7544189BF6A1BD0E85041021B5A0E63A7544122FB010BD0E850410FD0DE1D63A754412220BA07CFE85041BE52F30A64A75441A85852F0CDE850417236D9FD64A75441890BFED5CCE850419472521566A75441994DBCB4CBE85041C86E930F67A75441C686F074CAE850414068C12268A75441329BCB59CAE850414F2AE23068A75441F3DC26B2C7E8504169F8FEA469A75441A0807799C6E85041CDF952466AA754416FCE6D63C5E8504155C5AD436BA75441BCD48046C4E85041AFFF5F396CA75441F9A77BDDC3E8504145C241B16CA7544148E17A04C2E85041CDCCCC0C6FA75441E6020727C1E850417A3327F56FA754411D2402C4C0E85041CC92957670A7544125C4FC8CBFE85041ADEE142972A754415C332068BFE85041E456985E72A75441064E3471BEE8504160C232BF73A75441D9A0E795BDE85041CDFC0F1275A7544136ED7B3DBDE85041CCDD578375A7544163FC2FB5BBE85041A795538E77A7544173FC0868BBE8504136E701FA77A75441A9510905BBE850414EBC287978A75441AB577A19BAE85041C49230B379A75441A3815073B9E85041333AB9AE7AA75441E9668A53B9E8504193F710BB7AA7544114AE4751B9E85041E17A14BE7AA75441A0FFC135B9E85041E7B5A2C67AA75441C8565D1CB8E8504128C4F1337BA75441236998A6B7E85041E7B98FCB7BA75441621B0F9AB7E850415D3A3AB57BA7544114AE4791B7E850411F85EBC17BA7544133333333B7E850417B14AE577BA754411132C48FB7E8504195FF54E87AA754419F98109FB7E850412CEE20C77AA754417BAE5FE8B7E85041278019667AA7544166666636B8E8504114AE477178A75441421D9836B8E8504140502E7178A7544171994D37B8E850419FE6836C78A754411DEBE04CB9E850412924F8CB77A75441F40A3699BAE8504178A5192277A7544190108A0FBBE850415D9DEB6A76A75441DFF2DAD4BBE85041E4086C6E75A7544114AE47F1BBE850413D0AD74375A754416A275417BCE85041460C31D674A7544155FFBB48BCE850416835AA3274A754410993C27BBCE85041AA09C5B473A754419A9999B9BCE85041295C8F0273A754419BF5EB17BFE85041C6DDFA9970A75441A2A1F969BFE850416CD15F3570A75441D62A0F72BFE85041C6A43FE66EA75441C6562B75BFE85041CC2AD6D96EA754410AD7A370BFE85041AE47E18A6EA75441E7880B81BFE85041558B7B5F6EA75441301ACBFDBEE85041A5F53BD86EA7544127EBA078BDE850415B4B9AFC70A754416DA0EB4ABAE850418B82A63375A754417042A15AB6E85041054EF83E7AA7544170C01B4DB3E85041FEFAD7817EA75441907E9FA9B3E8504198C40EBD7EA75441E2A436B0B3E8504184C7E6C07EA7544172F1E010B5E850419D4EAE707FA75441BA217AF8B5E8504134A3DD487FA75441E5539115B6E850412546C7A77FA75441C8DFF913B6E850412AE2EDA97FA7544185EB5118B6E85041713D0AB77FA7544174522345B4E850414569C5E781A754410B37EA0FB4E8504168C1953982A75441083F6FBBB4E850413FEE91B682A75441AC97A4D3B4E85041BA4AF5EB82A75441DAEA6CDBB4E85041E6FFEAF282A75441175003AEB5E85041BCB75E5983A75441AEC36A6AB7E850412E2DF65683A7544134298DB7B7E85041FE083A4783A7544166666636B8E85041F6285C1F83A7544163092558B8E8504179ED832E83A75441FAD76C58B8E8504129E5792E83A7544128763E12B9E8504148D6465583A75441499E8EABB9E85041549BF3C683A75441E17A140EBAE85041333333F383A754419C1DDCF8B9E850416CD70B8D84A75441B843BBF2B9E850419103610785A75441DEC96782BAE8504104D1C95B86A754412F2753FEBBE850419442C95388A754414039C905BCE850412506B55988A75441EC51B87EBCE8504114AE47B188A75441AD7DE081BCE850412B652EBC88A75441B6332788BCE85041806C29C188A75441AEF28390BCE8504132D5BAEE88A754410AD7A3D0BCE85041C3F528CC89A754410AD7A3D0BCE8504148E17A948AA75441295C8F72BCE85041713D0AE78AA75441F67220C5B9E850418F100D308AA75441C428DCC1B9E8504142CD2D2F8AA75441F6285CAFB9E85041A4703D2A8AA754415C8FC245B9E85041E17A146E89A7544146515F54B8E8504157D961D888A75441B985434CB8E8504146FA0ED588A75441410193F8B7E850414C15B7EF88A75441D67FC843B7E85041F7B8E93189A75441B15B19B9B6E85041EACD68E588A75441E1B6B6FAB6E85041E73359DF88A75441AE47E16AB6E85041EC51B85E88A75441B13BB06FB6E85041C749C3DE87A75441ACCB935FB6E85041AA539E1387A75441D7A370DDB5E850417B14AE8786A7544103E67B3DB6E85041937AEDE485A75441BFCFE063B6E85041180E577985A7544152B81E15B5E85041000000B084A7544105BFBDD7B3E85041D6D190C484A7544106103CBBB3E85041F65C87C884A75441A4E4D13EB3E850416A77FE1285A75441BB439AFEB2E8504152AD1A2385A75441CDCCCC8CB2E850410AD7A36085A7544194B7D3F0B1E850412134631785A754419AA2D2ABB1E850413DD3090285A7544171803580B1E85041D0EE47A484A7544166666666B1E850410AD7A38084A754417EA01C6AB1E85041C93EC77484A75441F594E865B1E850412C0DBE6B84A754413C291C97B1E8504128D2FAE483A7544114AE47A1B1E8504148E17AC483A75441428273A3B1E85041F9612DC383A754414231C7AAB1E85041F8E41BAF83A75441A42846A7B2E85041F080971F83A754413F8637B7B2E850411563AE7B82A75441411E1E35B3E85041F5E4971A82A75441CDCCCC6CB3E85041B81E856B81A75441C3F528DCB1E850413D0AD73382A75441516B980FB1E85041CFB5664C82A754414D03B170B0E850411A56A97382A7544135FD1C99AFE85041BD59F4F882A75441C3F5283CAFE85041295C8F4283A7544185E45C30AFE850416EDEB83983A75441512D2230AFE850414B2CDD3983A75441D3D94595AEE85041F33B89C582A75441BC5F5F7FAEE85041E5C515B582A75441646D1961AEE85041572F589E82A7544116448B7EAEE85041304BBB6182A7544186D3104AACE85041BA074B4883A7544109247F3FACE8504113E5855483A754410CC9CD06ACE8504147E971A283A75441E8F353D2ABE85041263A6AE083A754418B9FEF7DABE85041E9E3CC5384A754413E3BE22EABE85041A3CA510985A754419B34919BAAE85041034806A485A7544168C2E181AAE85041AD6BF69886A75441F6689ACBA9E8504105C8323C87A75441295C8F92A9E85041EC51B87E87A75441AE47E19AA8E85041B81E853B88A754410CAD09DAA7E850413E85A3E188A75441151EB012A7E85041AE047BAB89A75441C8077D09A7E850419A53B0B589A7544189CD8B98A4E850410E82B31D8DA7544174728B2EA4E850418AAFBC0D8EA7544185EB5118A4E85041713D0A678EA7544133333373A3E85041E17A145E8FA75441B420410FA3E85041AD47BC2590A754414EACFA04A3E85041DE1ABD3F90A754415F223D65A2E8504159EF137F91A7544114AE47F1A2E85041333333A392A75441D9207738A2E85041197292CE93A7544180483FA4A1E85041BA3EE0D594A7544102BD4D76A1E850419624CD0995A754419B4C04D2A0E85041D4FE1EBB95A7544185EB5198A0E85041F6285CFF95A75441246E58DA9FE850412A2EBB4296A75441503D2DE09FE850418E16525C96A7544194E34816A0E85041CB1DEC4697A75441E1D2F10BA0E85041E34831B497A754413362F09B9FE85041A9635B0898A7544172CD51BC9EE850419DB7D24298A754414433302E9EE85041E6DEAE0599A75441C14D0EF99DE85041881017F699A754413F19E3459DE8504181DD7C7D9AA75441C4C0B8459DE85041E796F7B89AA754417B14AE479DE850418FC2F5C89AA75441A771E2029DE85041CBA4B4D39AA75441896E4B749CE850419CC7DDF99AA754412420DD099CE85041AA179AFA9AA75441EC51B8CE9BE850413D0AD7039BA754418F724BFD9AE85041F025E9329CA75441295C8FE29AE85041F0F9F8159DA75441295C8FE29AE850411F85EBE19EA7544175DF8BCE9AE85041F5D4620E9FA75441D9405BC49AE850412D92BA829FA754415A32013E9AE850417DACA488A0A7544169FEB93B9AE850415AD168EFA0A754419AF48F309AE850413D5AE602A1A754410071935599E850415D4CA0D6A2A754413D96C41699E8504134B8337DA3A75441D35171DC98E85041A5DF59D9A3A754410AD7A3D098E85041295C8FF2A3A75441D3C71AA898E850412EF8906EA4A754417963186C98E8504108096C78A5A7544145FF84EE97E8504123664FA6A6A7544167CCF7E297E85041A517A6C9A6A75441234142A397E850417662BFBEA7A754410090347697E85041B1696016A8A75441B81E854B97E850418FC2F598A8A75441E0EA5C0F97E85041FA9931D1A8A7544135EEECF596E850415DA007F8A8A7544165F5549596E850412B304765A9A754417437781B96E85041F34D8395AAA754411CA919CB95E8504174B32F25ABA75441B81E858B95E85041A4703DBAABA754411F85EB2195E8504148E17A24ACA754412D4827EA94E850411DF2F681ACA75441923727B494E8504111B7F503ADA754416CC62F5194E8504142DEFE82ADA7544178C7316494E85041AC20A186ADA754415FCB71E993E85041EB1CC13EAEA754411E1A9A2394E85041DFD925D0AEA75441A4703D2A94E85041B81E85DBAEA75441E203FF2994E85041682122E0AEA75441559B073894E85041209A3703AFA7544111F5531694E8504169FB3B54B0A75441295C8F1294E85041B81E859BB0A7544151FB40EC93E85041DF0A1CD5B0A7544188E526C293E85041BD385029B1A75441CA7F067C93E850410D246A61B1A75441D662404792E8504101413096B2A7544172045F2992E8504188FAF2D1B2A75441EC51B85E92E85041CDCCCCBCB3A754417267DA5D92E850410D8C9FBEB3A75441AECC846092E85041EB8849C5B3A7544118AEC83D92E8504107BD1202B4A754418FC2F5E891E8504148E17AB4B4A75441FE16B3CB91E85041CC80B8C9B4A75441C22C59C391E850415DDA55D8B4A7544184D7EE1F8FE85041BBA422C0B6A75441C48984198FE85041C65894CFB6A75441C29417408FE85041CB1D61ECB6A7544102DFA75B8FE850418F0F46E7B6A754410A3FF6718FE850411ACA9C11B7A7544198AFA1908FE850415CB98228B7A754413FE8B6E38FE8504118618600B7A754415BA0950290E850411A0C4106B7A75441704A78EE8FE85041F7216920B7A7544114AE471190E850419A999919B7A75441825E88B28EE850419595A506B9A75441B166EA638DE85041C5745FF8BAA7544116ED7D3D8DE85041CE354C56BBA75441343204CA8BE85041C759C3CABEA754418A86334D89E8504169290BBCC4A75441E3252C3288E850419E96FEA2C7A754417AE0723F87E8504134FB5D10CAA754418FC2F5B886E85041295C8F72CBA75441F6285CDF87E8504185EB51A8CDA75441D7133BC287E85041CB71F8BECDA75441234460C587E850415762DACDCDA75441EB5DF41185E85041ED1C14E8CFA75441B062C6F284E85041F0F57734D0A754417101192B84E85041FB6AA927D2A754418FC2F51884E85041A4703D5AD2A75441B074FB7C84E85041CBCF2B4FD2A75441FB519E6285E85041D247CB1BD2A754413B47446E86E85041BCC02318D2A7544152B81E9586E850413D0AD713D2A754412095A09886E85041F6AF8F17D2A75441AA4EFF9986E850410DE68A17D2A75441FA6FA49F86E85041AD1E011FD2A754411F85EB5187E85041C3F528DCD2A754412C1A292587E8504134E8BA46D3A75441736F170F87E850416372B4AED3A75441CBCACD7A88E850419FB7260ED4A75441C3F5282C8BE85041EC51B89ED4A75441D42AC6408BE850412EAA76C8D4A754413907D15A8BE850414A334CCFD4A754415C5B2F578BE850414279D8F5D4A75441F6285C5F8BE8504166666606D5A7544108314A1D8BE850410826645CD7A75441A3A4D8B48AE850414DD209B1DBA754415E0B7AE48AE85041D36D68ABDBA754419F95EE208BE8504194CE709BDBA75441A95B13428BE8504102F157A0DBA75441AE47E16A8BE85041B81E859BDBA7544170DA42E48AE85041A52CCCB8DEA75441EA8A85E38AE850417916B176DFA7544114AE47718DE850411F85EB41E0A75441F692657A8FE850416D2929ABE0A75441EECCA98B91E85041A4347C05E1A75441B14492ED91E850417566AF49E0A75441CF4C912392E8504140C2BDE5DFA7544121DD99D692E85041D8B3C082DEA75441244670D992E85041B87A4C7CDEA7544101CCEDE893E8504148299148DCA754417FAC4D0794E850410F539626DCA75441D7A3704D94E85041B81E859BDBA754418F24BDFB94E8504145162173DBA754413FD65D3F95E850411892B45ADBA75441BD0482AC95E85041349ECA43DBA7544105DD814596E8504195460E49DBA754418153604696E850415A1D474ADBA754410000006096E850418FC2F548DBA75441D7A370ED96E8504148E17A34DCA75441F8E561ED96E85041A26F2135DCA7544139A18CEE96E850412887C536DCA754418EA962E996E85041B6444A62DCA754415363A2B496E8504111AE49B6DEA75441AB3E7A4D96E85041912D87A5E4A75441AA624BB296E85041CA32C89BE5A7544158B09C4596E850410B8E1096E5A7544152B81E2596E850418FC2F598E5A754414673CD1B96E85041CD7FDD93E5A75441BBD7280F96E85041E23B3393E5A754416699B9A195E85041AE6C2259E5A7544152B81E4595E85041E17A141EE7A75441B7924C4495E85041E6269420E7A754415116BC3D95E85041E332D37FE7A7544147E2E7D894E850410EC89680E8A754419328714E94E85041E2DFF81CEAA75441ED72B16194E850418F413216EBA754416E6F126794E8504161C2283EEBA75441150602F993E85041635EC758ECA75441DF556A9193E850411960D523EDA75441B6EA337893E850419A90A055EDA75441F6285C0F93E850410AD7A340EEA7544155310A7592E8504122DA3D80EEA75441A75E433992E85041ED90D3A8EEA754411F85EBA191E8504166666696EFA75441CF78108791E850412764C8A9EFA75441C806757A91E85041CC1FFCBCEFA75441B654738590E850415A564C6FF0A7544173AD1F5790E85041AE47E16AF0A754413D0AD7838FE85041AE47E16AF0A75441437B99338FE850416A91E5ECF0A754417FD6E7DB8EE85041A4EBA2A4F1A754411F85EBE18FE85041713D0A07F2A754411F85EBE18FE8504148C63822F2A75441B50328E38FE850417A5BC222F2A754411F85EBE18FE85041AAED842AF2A754411F85EBE18FE850413D0AD7C3F2A75441CC6513C08FE85041DCD9F3FEF2A75441542584BF8FE850416D037702F3A754411C35574A8FE85041277E46D5F3A75441C0C7C3378FE850413A1CA205F4A75441EC51B8DE8EE850414F973436F5A75441EC51B8DE8EE85041EB22FCB6F5A75441904119E58EE850419E456D79F6A75441EC51B8DE8EE850419894A381F6A75441EC51B8DE8EE85041A4703D8AF6A754419ACD25A88DE850419F04236EF8A75441D3126F588DE8504130D5EB04F9A75441E41181FA8CE85041F5F7AF7CF9A754413D0AD7E38CE85041000000A0F9A75441D7A3709D8CE8504114AE4701FBA754415B63168D8CE850413F215822FBA75441B7EF2E878CE850416ADC7C46FBA75441499129E78BE85041B77BB9CCFCA75441B2A38CFD8AE85041CFF81F51FEA754416E998BAF8AE85041D3D7DEEBFEA754414CF1F27C8BE8504142B7B676FFA75441F2D5C8E98BE85041C6AC8FB6FFA754414D6459438CE8504128ADD2FCFFA75441295C8F628CE850411F85EB1100A85441666666168EE850410000005001A85441198D2E0F8EE85041C763F44C01A854413BD77F4B8EE85041DC5C237601A85441780A394D8BE85041595ADB2E00A854412A7D29AA8AE85041AC7DFB4900A8544149A5C6968AE850419E20DE5200A85441A64A718D8AE85041ECFAC3C901A854414842DC718AE85041F347A67002A854417B14AE678AE85041AE47E14A03A85441D01B591E8AE85041F76B9D7A03A854419ED9646289E85041FF66B92204A854416F76D2DE88E850418AF40F5805A854419AADB76088E850415D1BB33006A854411F85EB3188E85041B81E859B06A85441AC4E961488E85041A225F4DE06A854412CB649CB87E850414D925DA007A8544117CAB66B87E850411611660F09A854413B636B1987E8504189BAEA680AA85441EBE1211587E850418610BD730AA85441B81E850B87E85041CDCCCC9C0AA854419BE917DB86E850410ABC3D060BA854415127079786E8504150860DB20BA854411CDEFF4486E85041209352820DA85441A3B8811B86E8504197CA955F0EA85441A045F0E085E85041581E49C90FA85441D65CAAC985E8504140E7A66910A85441021023BC85E8504124317DAD10A85441AB63AA6885E85041AB0308C012A8544199801F5985E850411B91BB4913A854411CD3112085E85041D27684E014A85441C27664DC84E85041452EB45816A8544176DFA4BF84E85041E3BF27AD17A854411F85EBB184E8504185EB517818A85441E3C3A28384E85041A070832319A85441A7B6CE7C84E85041BB85E64919A85441251E122884E85041E6E37F9B1AA85441E19BE4C683E85041FF9E8EB51FA854415D2AF2BD83E8504130A4A86E20A85441C59472C983E850418F7C312822A854410CFA9CCA83E850418F31DC4422A854414ECBD7D783E850415F26697423A85441A1D809F183E85041265FD08B24A8544114AE470184E8504114AE472125A8544127527FFB83E850411B8F4F2F25A8544177ECAFC683E85041F811640526A8544165DFFBEB84E850417C0704A227A85441FC64624C86E85041EBFD348B29A8544100A71CC486E85041E09E8A282AA8544169304DC186E85041D9FA812D2AA8544148E17AC486E850411F85EB312AA854410F4ACA1D86E850418198724E2BA85441F72C7EA184E85041110378EE2DA854418288773484E8504187467DC92EA854417C8B515784E85041263BC5F52FA85441CDCCCCCC85E850411F85EB2130A85441EC4B73E085E85041C720FD3130A85441A2339FF485E85041E99A893430A85441EE8FAF2886E85041D9E10E6D30A85441EC51B84E86E85041C3F5288C30A85441EC51B84E86E8504123FCF4B530A854410B6BBC5E86E8504180057ADB30A85441205C454F86E85041338AC64B31A854413D35CF7B85E85041512C581432A85441EDDD5B6885E850412B725F5E32A85441FC099D1885E8504162BCE66033A85441CCE3A51185E8504117E21F6333A854410AD7A31085E85041713D0A6733A85441C5825DA784E850414DD5179933A8544120AF8F2984E8504160E448F233A854411E51682584E850415021E54C34A85441EC51B88E84E8504114AE470138A8544141C7E95584E850410CCDB56E38A854411CAFE7F683E850416F371A5C39A854413CF53BB782E850411DE384A73AA8544116F55C0E83E850414CB9ECD53AA854418014306783E8504144452FFD3AA854415C373A5286E850415DCBD2693AA85441B3177C7286E8504178D0AC583AA8544133E12F9186E85041706B675D3AA85441295C8F0287E85041713D0A473AA85441B674BB3587E850412783BF763AA85441F352169A87E85041BC8D34863AA854412A796D6A87E8504120E978933AA85441E539144B88E850412FD151793BA85441D7A3701D89E85041D7A3703D3CA85441FA396B1A89E850410495763F3CA854412294ED2289E85041D88CDF463CA85441318B567288E8504165F71FC73CA85441756A536088E850417F1D37E13CA85441EC2C5D3488E85041A37E30343DA85441063A286D88E850417BE95AE03DA8544166DB827288E8504113897EFD3DA8544148E17A8488E85041CDCCCC2C3EA854414FAD1D8188E8504181F9FA4C3EA85441F15B5F9488E8504139A7C8B53EA8544158854F4888E8504165A95F6C40A854411F85EB3188E85041295C8F4241A8544116A94D1988E850417648445D41A8544141B8401888E850410290836241A85441F12C223F87E850415E245D6942A85441759EB2F588E85041C06F3B9D44A854419A9999898AE8504152B81E8546A854415C8FC2858CE85041713D0A0748A854412B67EDAB8DE85041CB1BB93548A854414DF350AC8DE85041BB293F3548A85441000000D08DE85041000000C047A8544118C3C65E8FE8504109CDEAC747A854415F626A0C90E85041D1D1E8BE47A85441A2CBDF2690E85041D0CEE3CB47A8544148E17A3490E85041C3F528CC47A85441265F2F3F90E850410A0DD1D747A8544153970C6B90E85041130756ED47A85441F358D46691E85041589F3AF748A85441F2CDD6B791E85041DB324A1D49A854411F85EB8192E850413D0AD77349A85441EC51B85E92E850410AD7A37048A854419E85FAA392E85041A195950C48A85441CDCCCC9C93E850414D0C3B9E46A85441CDCCCC9C93E850418B67971846A854417719FA6791E850418AB14A2C45A85441CFB836EC90E8504138045A0C44A854417737C75590E85041F9682FE743A85441A1B878F58FE85041FCAC8E5042A85441015837C38FE850417B60DE9E41A85441F4EE19628FE8504128A9C29340A85441755D365F8FE8504101AF453E40A85441AC212DF58EE850419A5B25CB3EA854416147CEF68EE85041F20A00C63EA85441A15AD6538FE85041526437A03DA854413C1729748FE85041AEA4592C3DA8544170E1277A8FE85041A2A8BFE03CA85441D5E7AA9B8FE850413F2A34F73AA85441C7BC79E18FE85041C48016333AA854415C8FC2258FE85041A4703D5A3AA8544114AE47518EE8504114AE47C139A854411F82B28C8EE85041F859137739A854410FA445DA8EE8504146E0FCE438A85441740716CB8EE85041892D16CF37A8544128E292C68EE850416904E95337A85441B81E85BB8EE8504185EB518836A854410717FDBE8EE8504136F3D98436A85441FE35ECBE8EE85041932F0D8336A854411FDBAE448FE85041D05033FC35A85441A962C5468FE8504194A711FD35A854410AD7A3608FE85041333333E335A8544168A0F10B90E850412561154F36A854412A5BD9AF90E8504195A3429336A85441C3F5282C91E85041333333E335A854411CDD163591E850416508FCDE35A85441C9DF244891E850411140C5C335A854417A2D4A9B92E85041D41AE13535A8544148E17AD492E85041AE47E11A35A85441FAEC93D892E85041FADA3C1C35A85441009797DC92E850412EE78E1A35A854414B7B3F4793E850413F80F92035A85441C878B98893E850410AA930B534A854416239B88A93E8504139703BB534A854418E981BB393E850410369A17634A85441D7A370ED94E850419A99997932A8544111E4064996E85041D6D575152FA85441D269024696E85041E065A9E12EA85441C6014F4496E85041E1843AD32EA8544159912A4596E850417ACC78D22EA85441FD4F526496E8504107EB49D12EA854413D0AD71398E85041B81E859B2AA85441713D0A3798E85041A4703D3A29A85441B81E854B97E850418FC2F5F826A854417B14AE9795E85041EC51B8CE24A85441FF96AF5496E85041EBDD2E3923A85441A224C9D296E85041C2966C1E22A8544105A348D796E85041F0E1F72022A8544114AE47E196E85041B81E850B22A854411EA8EF9897E85041E3E47F8E22A85441D569B03798E85041299E4AE822A85441FA1E0AFE99E85041E583C27F23A85441339189C69AE85041DF918DF822A854416E036F1C9BE85041EA0B7AB222A85441F5BF79BD9BE85041D2A5454522A85441AE5E2AC89BE85041CCE1053E22A8544108AD68D89CE85041E0A9594D1FA854415F21B92F9EE8504177BD93C01BA85441255E3D549FE8504156A2077A18A854417528F7729FE850410121BF6818A8544185EB51789FE85041A4703D5A18A854411C0000003570743FF2E85041BE9B55E43EA754413B7A7220F3E8504161736BFC3DA754416CF80A73F4E85041E12F7D3D3DA75441F2D26C66F5E850413B0427183DA75441149F75C9F5E850418761537D3CA75441AA0FE082F6E8504143E472843BA75441CB39C62BF7E85041DB82888B3AA75441246D5B30F7E85041B5AB29713AA7544123019B3FF7E850414EA61D723AA754412F40B2A8F7E8504115683D2F3AA7544157A32AA8F7E85041A49469313AA7544114C3DD6CF8E85041C27308FA3AA75441ABDA83EBF8E85041EE4FD67B3BA75441F11044DEF8E850417F25447E3CA7544110BDF72EF8E85041F2C4DCC63DA7544160249367F8E85041106A121A3FA754411322E42CF8E8504172022A4740A754411CF19EA6F6E850415DBA0FAA40A75441DFB941DEF5E850416E1F8B9840A754413B9B5F41F5E85041B534B7C841A75441B8FE00CAF4E850415EF1D4E241A754414AC99934F4E850418EF4792841A754415DC9CA99F3E8504132AE558E40A75441EF6D5DA0F2E850415030467740A754419D48AE62F2E850418C74144340A75441EBFF9A0CF2E850415A6FE9D03FA75441986F18E9F1E85041597E289F3FA754413570743FF2E85041BE9B55E43EA754410F000000554DF39290E85041B502FDBD2EA8544189C10F6790E850416FA91AAD2EA854414CC5A35C90E850416E991D692DA8544139D1CDCB90E850411AAA7F422CA85441276E6E2091E85041A517AF9C2BA854418796AB0E92E8504179C600672AA85441EF18644392E850411B808D7928A85441622FD4C492E85041535B097828A85441E103E46B93E85041995C147628A854418A0A2C5594E850419CD5A7BD29A85441DA0A2F2C94E850418B9392F52AA8544150CDFC6093E850413C514C6A2CA85441F172C3C492E85041560FF94D2EA85441251962F591E8504144E856462FA85441554DF39290E85041B502FDBD2EA85441130000003A257F6A99E850413265D282EAA7544199C4D17299E850414F9A7EDFEAA75441334039B698E85041543B8115EBA75441C82C354F98E85041B29DB1ACEAA75441851712AD97E85041D5A84F14EAA75441A540D1D197E85041FC357C7CE9A7544170B6F90897E850412BA65021E9A754411979729E96E850415AB571ACE8A754411F8A3C8E96E85041B87662D6E7A75441B95B0A4897E85041F7525FB3E6A754416EC7905097E85041BB92ACD0E5A75441595BC49A98E85041EBC99BAFE5A7544102FBE01499E85041D18D341CE5A75441FC61F69799E85041185E499CE5A75441E165231F9AE85041E2D509A2E7A75441C3776C1F9AE85041AA58A30DE8A75441A71E2FFD99E85041A1A86685E8A75441D3F527F599E85041795F8FEFE8A754413A257F6A99E850413265D282EAA7544118000000DC54D51FEDE85041FC98C7B942A7544150D2F04CEDE85041B3BEF93942A75441760214EEEDE850419A185EBB41A75441F30B084FEEE850415C1468A741A75441AAD8F37DEEE85041BA5E62D341A7544155492A8DEEE850412D9F9FE241A75441ADC88194EEE85041C8A647EE41A754418D57C797EEE8504178DA75F341A75441FDB03144EFE8504124F2BA4542A754419ECAEF9CEFE850411A93D78442A75441D30C71A3EFE8504171AD95E042A754411682FF69EFE850418093145043A754419055826AEFE850418AF1125243A754415C962969EFE8504192CB7F5243A75441A9E8DB04EFE85041F318084D45A754417FA07D02EFE8504101FBE44D45A75441DD73A4D7EEE850411507272C45A75441EB0E7530EEE85041D322CF2645A75441EE7022B2ECE850418CCA3AE444A7544111191AC5EBE85041FEE5A2EC43A75441F7A94DD4ECE85041530285D643A75441D5119773EDE8504184DA6D4043A75441096C1247EDE850416CA62DCD42A75441DC54D51FEDE85041FC98C7B942A7544112000000D2212A82F8E85041317E390138A75441E238B6B9F7E85041B4B8F3EA37A754419DAD7270F7E85041B4B8F3EA37A75441B4037050F7E8504188E62CF437A754415B9B44EDF6E850412FDC5AB637A75441C6A2CA9CF6E85041ADD19DA837A754415E258424F6E85041F8D2A7C136A75441C01191A2F6E85041B5232A2136A7544128BA2ECBF7E85041CD5302BB35A754410E0263ACF8E8504169991C9435A75441B5E83656F9E85041228A499E35A75441E8167652F9E8504153F7374136A75441D42D5A92F9E85041DE46BB6936A754415042613BF9E850413F6247D136A75441BE6F5708F9E85041715CA3E436A75441F852579EF8E8504144BF954B37A75441197BA9A9F8E8504144DBB1C437A75441D2212A82F8E85041317E390138A75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>343273 - 226454
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+01060000000100000001030000000200000018000000C3F5288C61FA504166666686A3C45441333333F35FFA5041AE47E17AA2C45441666666865CFA5041CDCCCC3C9FC45441666666165CFA50411F85EB419EC45441333333435CFA5041EC51B8CE9DC4544114AE47A155FA5041A4703D8A9FC45441713D0AF74DFA5041AE47E18AA1C454411F85EBB14FFA50419A9999D9A2C454410AD7A3B051FA5041EC51B87EA3C45441D7A3701D54FA5041EC51B87EA3C454410000006058FA50417B14AE47A3C45441CDCCCCCC5AFA5041F6285CDFA3C45441333333D35BFA5041AE47E12AA5C45441713D0AF763FA5041D7A370ADA6C4544114AE471166FA50417B14AE07A6C45441B81E856B67FA5041F6285C5FA6C4544185EB51C86EFA504133333373A4C4544148E17A347EFA5041B81E856BA0C45441EC51B8AE7EFA504114AE47D194C454413D0AD7835EFA504185EB51389DC454417B14AE5762FA504185EB51A8A1C45441F6285C7F63FA5041713D0A47A3C454415C8FC2B562FA504114AE47B1A3C45441C3F5288C61FA504166666686A3C454410B000000A4703DEA75FA50411F85EB419CC45441333333C375FA5041333333339AC45441A4703D7A76FA504114AE478199C4544185EB518877FA5041E17A14FE98C45441C3F5288C78FA50410AD7A3E098C45441B81E85EB78FA5041AE47E19A99C45441F6285C3F79FA5041D7A370FD9BC454410000001079FA5041EC51B86E9DC454410000003078FA5041C3F528FC9DC45441F6285C0F77FA50419A9999A99DC45441A4703DEA75FA50411F85EB419CC45441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000BFB92E435CFA504167D3C3CE9DC45441583E02C858FA504105D387B79EC45441542755A155FA5041BBEB398A9FC454416CD013D259FA504152F2A85BA0C45441B95482EA5EFA50413C0B4C5AA1C454411B48D18B5EFA504157A7A526A1C45441D79BE0715DFA50416D8FDC8CA0C454410B9242355CFA50417382B4E69EC45441357DDE405CFA5041E4FF0CA19EC45441509370585CFA5041217CA0139EC454419A364ED55CFA5041CA5D99A89DC45441BFB92E435CFA504167D3C3CE9DC45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>345437 - 1234377
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -233 </desc>
+<a>
+01060000000100000001030000000100000031000000AE47E10A6F835141E17A141E28B754418FC2F5985D835141AE47E1EA1EB7544185EB51E85D8351419A9999B91FB75441AE47E14A62835141A4703D6A26B754419A999919658351411F85EB6129B7544114AE477167835141C3F5281C2EB75441E17A146E6C835141B81E85DB31B75441AE47E1EA6E835141C3F5285C2EB7544114AE47616E835141666666262DB75441295C8FE26E8351413D0AD7B32BB754419A999999708351419A9999C929B75441295C8F72728351413333330329B75441D7A3707D738351413D0AD7D326B75441EC51B8DE74835141E17A14BE24B754415C8FC2457583514185EB513822B75441F6285CAF768351411F85EBA11FB75441E17A14EE778351418FC2F5B81EB754413D0AD79379835141CDCCCC0C1EB754415C8FC2757B83514148E17A041EB75441E17A141E7E835141713D0A671CB75441E17A148E7E835141295C8F421BB75441C3F528DC7E8351413333337319B754419A9999E97E8351417B14AEB717B7544148E17A047F8351416666661616B754413D0AD73380835141295C8F3214B7544114AE478180835141E17A149E12B75441666666767F835141295C8FA210B75441CDCCCCEC7E8351413D0AD7F30EB754410AD7A3407E83514148E17AC40CB75441333333837E835141000000600BB754413D0AD7D37A835141B81E854B00B7544148E17AC47583514185EB5118F1B65441AE47E1BA738351415C8FC2F5EAB65441AE47E19A6A8351419A999929EDB6544114AE47C16883514100000010EEB65441713D0A17678351417B14AEB7EFB654410AD7A36066835141C3F528BCF0B65441D7A3708D628351411F85EB31F6B654416666663659835141E17A142E04B75441F6285CCF58835141EC51B8CE04B75441A4703D0A5983514152B81E4505B75441C3F528EC5983514185EB51A805B754411F85EB815B8351411F85EBF105B75441713D0A47628351417B14AE67F9B65441B81E85DB7A835141333333E303B75441EC51B80E7B835141AE47E15A06B75441E17A148E74835141A4703D6A14B75441CDCCCCAC798351413D0AD72317B75441AE47E10A6F835141E17A141E28B75441
+</a>
+
+<b>
+01060000000100000001030000000100000032000000AE47E10A6F835141E17A141E28B75441F9A4CD3A648351417E4A466A22B75441A109F52563835141BF1446D821B75441D0A9D6E561835141895655FE22B7544125966A7462835141EC59685025B754419A999919658351411F85EB6129B7544114AE477167835141C3F5281C2EB75441E17A146E6C835141B81E85DB31B75441AE47E1EA6E835141C3F5285C2EB7544114AE47616E835141666666262DB75441295C8FE26E8351413D0AD7B32BB754419A999999708351419A9999C929B75441295C8F72728351413333330329B75441D7A3707D738351413D0AD7D326B75441EC51B8DE74835141E17A14BE24B754415C8FC2457583514185EB513822B75441F6285CAF768351411F85EBA11FB75441E17A14EE778351418FC2F5B81EB754413D0AD79379835141CDCCCC0C1EB754415C8FC2757B83514148E17A041EB75441E17A141E7E835141713D0A671CB75441E17A148E7E835141295C8F421BB75441C3F528DC7E8351413333337319B754419A9999E97E8351417B14AEB717B7544148E17A047F8351416666661616B754413D0AD73380835141295C8F3214B7544114AE478180835141E17A149E12B75441666666767F835141295C8FA210B75441CDCCCCEC7E8351413D0AD7F30EB754410AD7A3407E83514148E17AC40CB75441333333837E835141000000600BB754413D0AD7D37A835141B81E854B00B7544148E17AC47583514185EB5118F1B65441AE47E1BA738351415C8FC2F5EAB65441AE47E19A6A8351419A999929EDB6544114AE47C16883514100000010EEB65441713D0A17678351417B14AEB7EFB654410AD7A36066835141C3F528BCF0B65441D7A3708D628351411F85EB31F6B654416666663659835141E17A142E04B75441F6285CCF58835141EC51B8CE04B75441A4703D0A5983514152B81E4505B75441C3F528EC5983514185EB51A805B754411F85EB815B8351411F85EBF105B75441713D0A47628351417B14AE67F9B65441B81E85DB7A835141333333E303B75441EC51B80E7B835141AE47E15A06B75441E17A148E74835141A4703D6A14B75441CDCCCCAC798351413D0AD72317B75441AE47E10A6F835141E17A141E28B75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>345437 - 3425819
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -233 </desc>
+<a>
+01060000000100000001030000000100000031000000AE47E10A6F835141E17A141E28B754418FC2F5985D835141AE47E1EA1EB7544185EB51E85D8351419A9999B91FB75441AE47E14A62835141A4703D6A26B754419A999919658351411F85EB6129B7544114AE477167835141C3F5281C2EB75441E17A146E6C835141B81E85DB31B75441AE47E1EA6E835141C3F5285C2EB7544114AE47616E835141666666262DB75441295C8FE26E8351413D0AD7B32BB754419A999999708351419A9999C929B75441295C8F72728351413333330329B75441D7A3707D738351413D0AD7D326B75441EC51B8DE74835141E17A14BE24B754415C8FC2457583514185EB513822B75441F6285CAF768351411F85EBA11FB75441E17A14EE778351418FC2F5B81EB754413D0AD79379835141CDCCCC0C1EB754415C8FC2757B83514148E17A041EB75441E17A141E7E835141713D0A671CB75441E17A148E7E835141295C8F421BB75441C3F528DC7E8351413333337319B754419A9999E97E8351417B14AEB717B7544148E17A047F8351416666661616B754413D0AD73380835141295C8F3214B7544114AE478180835141E17A149E12B75441666666767F835141295C8FA210B75441CDCCCCEC7E8351413D0AD7F30EB754410AD7A3407E83514148E17AC40CB75441333333837E835141000000600BB754413D0AD7D37A835141B81E854B00B7544148E17AC47583514185EB5118F1B65441AE47E1BA738351415C8FC2F5EAB65441AE47E19A6A8351419A999929EDB6544114AE47C16883514100000010EEB65441713D0A17678351417B14AEB7EFB654410AD7A36066835141C3F528BCF0B65441D7A3708D628351411F85EB31F6B654416666663659835141E17A142E04B75441F6285CCF58835141EC51B8CE04B75441A4703D0A5983514152B81E4505B75441C3F528EC5983514185EB51A805B754411F85EB815B8351411F85EBF105B75441713D0A47628351417B14AE67F9B65441B81E85DB7A835141333333E303B75441EC51B80E7B835141AE47E15A06B75441E17A148E74835141A4703D6A14B75441CDCCCCAC798351413D0AD72317B75441AE47E10A6F835141E17A141E28B75441
+</a>
+
+<b>
+01060000000100000001030000000100000032000000AE47E10A6F835141E17A141E28B75441F9A4CD3A648351417E4A466A22B75441A109F52563835141BF1446D821B75441D0A9D6E561835141895655FE22B7544125966A7462835141EC59685025B754419A999919658351411F85EB6129B7544114AE477167835141C3F5281C2EB75441E17A146E6C835141B81E85DB31B75441AE47E1EA6E835141C3F5285C2EB7544114AE47616E835141666666262DB75441295C8FE26E8351413D0AD7B32BB754419A999999708351419A9999C929B75441295C8F72728351413333330329B75441D7A3707D738351413D0AD7D326B75441EC51B8DE74835141E17A14BE24B754415C8FC2457583514185EB513822B75441F6285CAF768351411F85EBA11FB75441E17A14EE778351418FC2F5B81EB754413D0AD79379835141CDCCCC0C1EB754415C8FC2757B83514148E17A041EB75441E17A141E7E835141713D0A671CB75441E17A148E7E835141295C8F421BB75441C3F528DC7E8351413333337319B754419A9999E97E8351417B14AEB717B7544148E17A047F8351416666661616B754413D0AD73380835141295C8F3214B7544114AE478180835141E17A149E12B75441666666767F835141295C8FA210B75441CDCCCCEC7E8351413D0AD7F30EB754410AD7A3407E83514148E17AC40CB75441333333837E835141000000600BB754413D0AD7D37A835141B81E854B00B7544148E17AC47583514185EB5118F1B65441AE47E1BA738351415C8FC2F5EAB65441AE47E19A6A8351419A999929EDB6544114AE47C16883514100000010EEB65441713D0A17678351417B14AEB7EFB654410AD7A36066835141C3F528BCF0B65441D7A3708D628351411F85EB31F6B654416666663659835141E17A142E04B75441F6285CCF58835141EC51B8CE04B75441A4703D0A5983514152B81E4505B75441C3F528EC5983514185EB51A805B754411F85EB815B8351411F85EBF105B75441713D0A47628351417B14AE67F9B65441B81E85DB7A835141333333E303B75441EC51B80E7B835141AE47E15A06B75441E17A148E74835141A4703D6A14B75441CDCCCCAC798351413D0AD72317B75441AE47E10A6F835141E17A141E28B75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>351646 - 1281874
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+0106000000010000000103000000010000000B00000085EB51E8491E5141333333D38AED5441295C8FF2491E5141F6285C8F8AED5441713D0A57481E51417B14AE177CED5441713D0A17481E5141A4703D1A74ED5441295C8F52461E51417B14AE876DED54411F85EBC1441E5141E17A140E6CED54415C8FC265201E51415C8FC28564ED5441000000E0E71D5141E17A143E5FED5441A4703D7AE61D5141E17A145E60ED5441713D0A77E21D51411F85EBC180ED544185EB51E8491E5141333333D38AED5441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000048E17A24E41D5141295C8FE25EED5441D7A3709D9D1D5141AE47E1CA57ED54413D0AD7F39B1D51419A9999A958ED54413D0AD783991D51410AD7A3A05FED5441C3F5286C951D51419A9999296AED54419A9999A98F1D51415C8FC2B578ED54417DCC6F46F61D51416BDD7DAF82ED544123CE2C3AF71D5141DFD152057CED54419FF838A9F81D5141049FDDF876ED544169054431F91D51411CF6703574ED5441134DEF0AFA1D51410B1AD8516FED5441AF3A684AFA1D514169091C536AED544108B62426FA1D5141A7AEE8BA68ED544100000080FA1D51413D0AD7A367ED5441FFAA94C7FC1D51412C45FE3161ED544148E17A24E41D5141295C8FE25EED5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>351646 - 3588789
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+0106000000010000000103000000010000000B00000085EB51E8491E5141333333D38AED5441295C8FF2491E5141F6285C8F8AED5441713D0A57481E51417B14AE177CED5441713D0A17481E5141A4703D1A74ED5441295C8F52461E51417B14AE876DED54411F85EBC1441E5141E17A140E6CED54415C8FC265201E51415C8FC28564ED5441000000E0E71D5141E17A143E5FED5441A4703D7AE61D5141E17A145E60ED5441713D0A77E21D51411F85EBC180ED544185EB51E8491E5141333333D38AED5441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000048E17A24E41D5141295C8FE25EED5441D7A3709D9D1D5141AE47E1CA57ED54413D0AD7F39B1D51419A9999A958ED54413D0AD783991D51410AD7A3A05FED5441C3F5286C951D51419A9999296AED54419A9999A98F1D51415C8FC2B578ED54417DCC6F46F61D51416BDD7DAF82ED544123CE2C3AF71D5141DFD152057CED54419FF838A9F81D5141049FDDF876ED544169054431F91D51411CF6703574ED5441134DEF0AFA1D51410B1AD8516FED5441AF3A684AFA1D514169091C536AED544108B62426FA1D5141A7AEE8BA68ED544100000080FA1D51413D0AD7A367ED5441FFAA94C7FC1D51412C45FE3161ED544148E17A24E41D5141295C8FE25EED5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>350073 - 146036
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+0106000000010000000103000000010000001E0000000AD7A380A64751413D0AD7F3ABBB5441F6285C0FA84751417B14AE77ABBB54410AD7A3B0AA475141713D0AD7A9BB54411F85EB91AE47514114AE4761A9BB5441B81E858BB1475141713D0A47AABB54410AD7A3C0B447514152B81E85ABBB54417B14AE67B7475141CDCCCC2CADBB5441D7A3708DB4475141EC51B8AEA4BB54413D0AD7E3B1475141B81E85DBA1BB5441E17A149EAF4751410AD7A370A0BB54411F85EB51AC47514185EB51389FBB544148E17A14A9475141CDCCCC5CA3BB5441D7A3708D97475141AE47E1BAAABB5441D7A3709D994751417B14AE67AFBB5441295C8F028B475141713D0A57B8BB5441E17A140E8F4751410AD7A3D0BDBB5441000000D0914751419A999999BCBB54411F85EBC1944751415C8FC275BBBB54410AD7A3B0984751410AD7A380B9BB5441EC51B8DE9A475141713D0AD7B7BB5441A4703D2A9B475141F6285CCFB6BB5441F6285CDF9A4751419A999979B5BB544114AE47E19C4751417B14AE07B4BB5441D7A3701D9E47514166666666B3BB5441713D0A179F475141E17A141EB1BB5441713D0A27A14751413D0AD7C3AFBB5441F6285C1FA24751419A999979AFBB544185EB51D8A2475141C3F5285CAEBB5441D7A3707DA4475141F6285C8FACBB54410AD7A380A64751413D0AD7F3ABBB5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000D7A3709D994751417B14AE67AFBB5441A329375A924751414641E0DAB3BB5441295C8F028B475141713D0A57B8BB544175C4A7618E47514150134652BCBB5441000000D0914751419A999999BCBB544107F441199A475141B4580D72B7BB54419CE256339A475141B49E3EEFB7BB54416EA4971D9E4751418EC3777FB3BB5441862E1822A0475141A372E435B1BB5441F8CA817EA147514141BF232FB0BB5441BA968A16A24751414A5E4D82AFBB5441522A962BA3475141821187C6AEBB5441C937C0BAA447514156F09E0AADBB5441CEFB8F88A6475141B57B5FF1ABBB5441B12C198EAA47514108456AECA9BB54410AD7A3B0AA475141713D0AD7A9BB54411F85EB91AE47514114AE4761A9BB5441B81E858BB1475141713D0A47AABB54410AD7A3C0B447514152B81E85ABBB54417B14AE67B7475141CDCCCC2CADBB5441D7A3708DB4475141EC51B8AEA4BB54413D0AD7E3B1475141B81E85DBA1BB5441E17A149EAF4751410AD7A370A0BB54411F85EB51AC47514185EB51389FBB544148E17A14A9475141CDCCCC5CA3BB5441D7A3708D97475141AE47E1BAAABB5441D7A3709D994751417B14AE67AFBB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>350073 - 415616
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+0106000000010000000103000000010000001E0000000AD7A380A64751413D0AD7F3ABBB5441F6285C0FA84751417B14AE77ABBB54410AD7A3B0AA475141713D0AD7A9BB54411F85EB91AE47514114AE4761A9BB5441B81E858BB1475141713D0A47AABB54410AD7A3C0B447514152B81E85ABBB54417B14AE67B7475141CDCCCC2CADBB5441D7A3708DB4475141EC51B8AEA4BB54413D0AD7E3B1475141B81E85DBA1BB5441E17A149EAF4751410AD7A370A0BB54411F85EB51AC47514185EB51389FBB544148E17A14A9475141CDCCCC5CA3BB5441D7A3708D97475141AE47E1BAAABB5441D7A3709D994751417B14AE67AFBB5441295C8F028B475141713D0A57B8BB5441E17A140E8F4751410AD7A3D0BDBB5441000000D0914751419A999999BCBB54411F85EBC1944751415C8FC275BBBB54410AD7A3B0984751410AD7A380B9BB5441EC51B8DE9A475141713D0AD7B7BB5441A4703D2A9B475141F6285CCFB6BB5441F6285CDF9A4751419A999979B5BB544114AE47E19C4751417B14AE07B4BB5441D7A3701D9E47514166666666B3BB5441713D0A179F475141E17A141EB1BB5441713D0A27A14751413D0AD7C3AFBB5441F6285C1FA24751419A999979AFBB544185EB51D8A2475141C3F5285CAEBB5441D7A3707DA4475141F6285C8FACBB54410AD7A380A64751413D0AD7F3ABBB5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000D7A3709D994751417B14AE67AFBB5441A329375A924751414641E0DAB3BB5441295C8F028B475141713D0A57B8BB544175C4A7618E47514150134652BCBB5441000000D0914751419A999999BCBB544107F441199A475141B4580D72B7BB54419CE256339A475141B49E3EEFB7BB54416EA4971D9E4751418EC3777FB3BB5441862E1822A0475141A372E435B1BB5441F8CA817EA147514141BF232FB0BB5441BA968A16A24751414A5E4D82AFBB5441522A962BA3475141821187C6AEBB5441C937C0BAA447514156F09E0AADBB5441CEFB8F88A6475141B57B5FF1ABBB5441B12C198EAA47514108456AECA9BB54410AD7A3B0AA475141713D0AD7A9BB54411F85EB91AE47514114AE4761A9BB5441B81E858BB1475141713D0A47AABB54410AD7A3C0B447514152B81E85ABBB54417B14AE67B7475141CDCCCC2CADBB5441D7A3708DB4475141EC51B8AEA4BB54413D0AD7E3B1475141B81E85DBA1BB5441E17A149EAF4751410AD7A370A0BB54411F85EB51AC47514185EB51389FBB544148E17A14A9475141CDCCCC5CA3BB5441D7A3708D97475141AE47E1BAAABB5441D7A3709D994751417B14AE67AFBB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>350850 - 137641
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+0106000000010000000103000000010000001B0000000AD7A31092B55041AE47E11AF9915441D7A3709D92B5504114AE47A1F59154411F85EBB190B55041B81E855BF591544152B81EC58DB550417B14AEB7F4915441AE47E1AA8BB55041333333E3F2915441B81E854B8AB5504133333383F0915441C3F528BC87B550415C8FC235EB9154415C8FC21585B5504114AE4701E791544148E17A4485B5504148E17A44E5915441AE47E1BA86B55041F6285C6FE291544114AE473188B55041295C8FB2E0915441713D0A078BB55041EC51B80EE0915441666666E68DB55041C3F528ACDF915441E17A144E7BB55041E17A143ED2915441666666F678B55041E17A144ED2915441333333F377B55041713D0AB7D3915441000000D077B5504114AE4741D8915441B81E85BB77B55041B81E85DBDD9154413333339378B55041C3F5287CE3915441295C8F027AB55041CDCCCC9CE8915441D7A370FD7BB55041713D0AF7EC91544114AE47A17EB5504148E17AC4F0915441295C8FB283B55041B81E852BF6915441C3F5282C98B5504152B81E3505925441EC51B82E98B55041D7A3700D00925441EC51B89E93B55041713D0A97FE9154410AD7A31092B55041AE47E11AF9915441
+</a>
+
+<b>
+01060000000100000001030000000100000031000000B81E854B8AB5504133333383F0915441AED3CA3889B5504141D5284AEE9154416156C31D89B5504104922C12EE9154412376397E88B55041433DB9C7EC91544118C9450488B550410D4420CBEB9154418FDF1DD387B5504198584F65EB9154410742D35D86B5504102F7D909E99154415C8FC21585B5504114AE4701E791544148E17A4485B5504148E17A44E5915441AE47E1BA86B55041F6285C6FE291544114AE473188B55041295C8FB2E0915441713D0A078BB55041EC51B80EE0915441B4D2BFB18DB55041FA7C37B3DF91544120B509657BB55041ABD1A94ED291544138918B4679B550414310F14BD29154414C4AA6EE78B550416889DF58D2915441D4F0ABD678B55041ACC1437AD2915441F1F340F277B55041E3CC48D6D39154410F03C4F177B550418D1E66E6D391544133531AEE77B55041E7D6565FD491544167CDB6DC77B55041B5057C9DD69154419DC498C277B55041A711CA0ADE9154411936CCA478B5504183220ABBE3915441FE0C6F007AB55041D3FB028CE891544150A73E1A7BB5504177AE9C03EB915441FFEB1A047CB550414E6EE7EBEC915441B9D0EC977CB5504141188DD5ED91544114AE47A17EB5504148E17AC4F09154419D4AA5C47FB55041846D1BFBF1915441E1A079FE83B55041F5454663F691544143D4548886B5504135C58C40F89154419FABEFF28EB55041220DF66EFE9154419050B16B8FB550413007A6C7FE915441660C1AD491B550413BF95B8C0092544158C1F3FF92B55041DC3E94680192544148A645B896B550410857FE2304925441C1D9751D98B5504145562B1D05925441C1D9751D98B55041CD629816009254412FC292FD94B550411F5B8107FF915441EC51B89E93B55041713D0A97FE9154410AD7A31092B55041AE47E11AF9915441852FC46D92B5504130A47DCEF69154411EFDCE7B92B55041C4BC819CF59154411F85EBB190B55041B81E855BF59154412ED6A68E90B55041019DCD53F591544115A20B0090B5504155B69934F591544152B81EC58DB550417B14AEB7F4915441AE47E1AA8BB55041333333E3F2915441B81E854B8AB5504133333383F0915441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>350850 - 336075
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+0106000000010000000103000000010000001B0000000AD7A31092B55041AE47E11AF9915441D7A3709D92B5504114AE47A1F59154411F85EBB190B55041B81E855BF591544152B81EC58DB550417B14AEB7F4915441AE47E1AA8BB55041333333E3F2915441B81E854B8AB5504133333383F0915441C3F528BC87B550415C8FC235EB9154415C8FC21585B5504114AE4701E791544148E17A4485B5504148E17A44E5915441AE47E1BA86B55041F6285C6FE291544114AE473188B55041295C8FB2E0915441713D0A078BB55041EC51B80EE0915441666666E68DB55041C3F528ACDF915441E17A144E7BB55041E17A143ED2915441666666F678B55041E17A144ED2915441333333F377B55041713D0AB7D3915441000000D077B5504114AE4741D8915441B81E85BB77B55041B81E85DBDD9154413333339378B55041C3F5287CE3915441295C8F027AB55041CDCCCC9CE8915441D7A370FD7BB55041713D0AF7EC91544114AE47A17EB5504148E17AC4F0915441295C8FB283B55041B81E852BF6915441C3F5282C98B5504152B81E3505925441EC51B82E98B55041D7A3700D00925441EC51B89E93B55041713D0A97FE9154410AD7A31092B55041AE47E11AF9915441
+</a>
+
+<b>
+01060000000100000001030000000100000031000000B81E854B8AB5504133333383F0915441AED3CA3889B5504141D5284AEE9154416156C31D89B5504104922C12EE9154412376397E88B55041433DB9C7EC91544118C9450488B550410D4420CBEB9154418FDF1DD387B5504198584F65EB9154410742D35D86B5504102F7D909E99154415C8FC21585B5504114AE4701E791544148E17A4485B5504148E17A44E5915441AE47E1BA86B55041F6285C6FE291544114AE473188B55041295C8FB2E0915441713D0A078BB55041EC51B80EE0915441B4D2BFB18DB55041FA7C37B3DF91544120B509657BB55041ABD1A94ED291544138918B4679B550414310F14BD29154414C4AA6EE78B550416889DF58D2915441D4F0ABD678B55041ACC1437AD2915441F1F340F277B55041E3CC48D6D39154410F03C4F177B550418D1E66E6D391544133531AEE77B55041E7D6565FD491544167CDB6DC77B55041B5057C9DD69154419DC498C277B55041A711CA0ADE9154411936CCA478B5504183220ABBE3915441FE0C6F007AB55041D3FB028CE891544150A73E1A7BB5504177AE9C03EB915441FFEB1A047CB550414E6EE7EBEC915441B9D0EC977CB5504141188DD5ED91544114AE47A17EB5504148E17AC4F09154419D4AA5C47FB55041846D1BFBF1915441E1A079FE83B55041F5454663F691544143D4548886B5504135C58C40F89154419FABEFF28EB55041220DF66EFE9154419050B16B8FB550413007A6C7FE915441660C1AD491B550413BF95B8C0092544158C1F3FF92B55041DC3E94680192544148A645B896B550410857FE2304925441C1D9751D98B5504145562B1D05925441C1D9751D98B55041CD629816009254412FC292FD94B550411F5B8107FF915441EC51B89E93B55041713D0A97FE9154410AD7A31092B55041AE47E11AF9915441852FC46D92B5504130A47DCEF69154411EFDCE7B92B55041C4BC819CF59154411F85EBB190B55041B81E855BF59154412ED6A68E90B55041019DCD53F591544115A20B0090B5504155B69934F591544152B81EC58DB550417B14AEB7F4915441AE47E1AA8BB55041333333E3F2915441B81E854B8AB5504133333383F0915441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>354438 - 223463
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -448 </desc>
+<a>
+01060000000100000001030000000100000075000000D7A3702D88C15041B81E851BD3D55441000000B085C15041AE47E1CAD9D554415C8FC2B586C150411F85EB81DAD55441295C8F8288C150419A999939DBD55441A4703D3A89C15041295C8F82DBD55441CDCCCC5C8BC150417B14AE67DCD55441C3F5289C91C150417B14AE27DED554410000009097C15041C3F528DCDFD5544152B81E659DC15041000000B0E1D554419A9999A9A2C150419A999929E3D5544133333323A5C1504114AE47E1E3D55441EC51B8AEA7C15041EC51B89EE4D5544148E17A04ADC15041AE47E1EAE5D5544133333303B2C150419A999929E7D55441E17A14DEB1C15041A4703DEAE7D554418FC2F5C8ACC1504148E17A94E6D554415C8FC295A7C150413D0AD713E5D55441D7A3700DA5C150418FC2F558E4D5544133333393A2C1504114AE47A1E3D55441E17A143E9DC15041713D0A17E2D55441EC51B85E97C1504152B81E65E0D5544114AE478191C15041C3F528ECDED55441B81E859B8DC15041D7A370DDDDD5544148E17A348BC15041D7A370FDDCD554419A99991989C1504152B81EF5DBD554410AD7A39085C1504114AE4791DAD554415C8FC20583C15041C3F528BCD7D55441E17A141E7EC150411F85EBD1D0D554413D0AD7437EC150410AD7A3B0D2D55441D7A370BD77C15041A4703DFAD5D55441A4703DDA74C150419A999909D9D55441666666B67AC1504133333383E0D5544114AE476179C1504185EB51D8E1D55441D7A370CD77C1504114AE4761E3D554410AD7A3F073C15041AE47E1BAE6D5544185EB51B870C1504148E17A44E9D55441713D0A2773C150418FC2F5C8EBD554418FC2F5386DC15041F6285C7FEFD554415C8FC20573C1504152B81EC5F6D55441EC51B89E75C150410AD7A3B0F0D55441EC51B88E73C15041EC51B83EEED55441333333C373C15041F6285C1FECD554417B14AEA773C1504114AE4751EAD554419A99999974C1504148E17A34E8D55441CDCCCC8C7AC15041A4703D0AEDD55441CDCCCC0C7EC15041E17A14EEEFD5544114AE47F180C1504148E17AC4F3D55441C3F5289C85C1504152B81EC5F7D55441713D0AE787C15041E17A14FEF8D55441000000808BC150413D0AD783FAD5544152B81E3590C1504114AE47B1FBD5544148E17AC492C15041666666E6FBD554419A9999F992C150418FC2F548FDD5544185EB513894C15041A4703D5AFDD55441F6285C7F94C150418FC2F568F9D554418FC2F58895C15041295C8FF2F5D55441000000C097C15041E17A141EF5D554419A9999B99AC15041295C8F92F6D554417B14AE379CC1504100000080F8D55441CDCCCC7C9BC150419A999919FAD55441333333839DC15041EC51B8DEFCD55441F6285C1FA0C1504148E17A64FED55441C3F528DCA3C150419A99997902D65441A4703DCAA5C15041000000F006D654411F85EB41A6C150416666660608D65441E17A147EA6C150410AD7A3B009D654411F85EB51ADC15041A4703D8A09D65441F6285C6FADC15041F6285C2F06D654419A9999C9ADC150418FC2F5D8FBD55441713D0A17AFC15041295C8F82F4D5544152B81E65B2C15041D7A3700DE8D55441E17A148EB2C15041C3F5284CE7D554410AD7A310B8C1504148E17A94E8D554418FC2F518C3C1504100000040EBD55441295C8FF2C2C1504100000010ECD55441B81E85CBB8C1504166666696E9D5544185EB5148B8C15041AE47E17AE9D55441A4703D0AB5C15041333333F3FAD554418FC2F5C8B4C1504114AE4741FDD55441CDCCCC4CBFC1504114AE47C1F9D5544114AE4771C4C15041295C8FC2FAD554413D0AD763C9C150411F85EB91FBD55441C3F5288CCCC15041295C8FA2FCD55441713D0A27D0C15041C3F528BCF1D554419A999969D2C15041B81E853BECD554411F85EB71D6C150413D0AD703E2D5544152B81EF5D6C150411F85EB61DBD55441AE47E1CAD4C1504133333383D9D55441713D0A97D1C15041713D0A17D7D55441713D0AF7CBC1504133333373D5D55441A4703DAAC6C15041CDCCCC2CD5D55441B81E85DBC0C15041000000D0D4D554410AD7A3C0C0C150410AD7A3E0D5D5544133333313BBC150413D0AD723D6D55441CDCCCC5CBBC15041AE47E19AD4D55441AE47E10AB6C15041B81E854BD2D554417B14AE77B5C150419A999989D5D55441713D0AF7AFC150419A9999A9D4D5544133333333B0C150413D0AD7D3D2D5544166666686AAC15041EC51B83ECFD554413D0AD753A8C15041B81E85DBCDD5544148E17AD4A7C15041713D0A57D1D55441AE47E16AA5C1504166666656D1D55441E17A142EA0C15041D7A370DDD0D5544148E17A64A0C150410AD7A320CBD5544185EB5128A0C1504185EB5178C3D554410AD7A3C09FC15041666666B6BED5544114AE479199C15041D7A370CDBFD554415C8FC2459AC150418FC2F518C7D55441E17A14CE9AC1504166666616CCD55441E17A14CE9AC15041B81E85DBCDD55441713D0AA79AC15041F6285C9FCED554413333336395C150419A999989CDD55441B81E85DB91C15041A4703D0AD0D554411F85EB818EC150415C8FC2B5D0D55441B81E85AB8BC15041713D0A27D2D55441D7A3702D88C15041B81E851BD3D55441
+</a>
+
+<b>
+010600000001000000010300000001000000B900000033333313BBC150413D0AD723D6D554417A202C20BBC150419F2D94DED5D554415835CC5CBBC15041E47AE19AD4D55441E7FAE10AB6C150416B72864BD2D55441CE7B4CBEB5C15041C01F5FFBD3D554417B14AE77B5C150419A999989D5D55441713D0AF7AFC150419A9999A9D4D55441EA66A50CB0C150416E76E300D4D55441BDF63133B0C15041664ED7D3D2D5544166666686AAC15041EC51B83ECFD55441B40AD753A8C15041031F85DBCDD554411B23C2D6A8C150418FED485BCED554416365EE9EA8C150413F78A543D1D55441D5B212CFA7C15041A8CF087FD1D554414D5F7486A5C1504178240358D1D5544167489174A5C1504152F86856D1D55441AE47E16AA5C1504166666656D1D55441EC7A142EA0C1504102A470DDD0D55441FF143DAD9AC15041AC7A9480CED554419A901CA79AC150415CCE5F9FCED55441713D0AA79AC15041F6285C9FCED55441EABE157595C150411123498DCDD55441BD32336395C15041FA999989CDD55441B81E85DB91C15041A4703D0AD0D554418A83B6BD8EC150414929CDA9D0D554417860A1638EC15041DAC385CDD0D55441497443908DC15041DC659C30D1D55441B81E85AB8BC15041713D0A27D2D55441D00A0E9D8BC15041B5B6FE2AD2D5544120583A678BC15041F946B639D2D55441DA6B873D8BC15041A1F31C45D2D55441264FDF9489C1504145654302D3D554412A1664ED88C15041FB4EDF14D3D5544149DFDC9088C15041B37B4F00D3D5544137D5662D88C15041D629811BD3D554415B8B430388C1504100CFCF0CD3D55441593F2A1C87C1504149E0EA71D3D55441A81C136286C1504158452EF4D3D5544120C482AC86C15041497EA99BD4D5544177BF483D87C15041DDFF32A0D5D554413E8E09B187C1504182AD7322D6D55441AD1F150E88C15041B0C6D9BBD7D554419809B12088C150416287AF9FD9D55441907096B387C150411052FFE6DAD55441A4703D3A89C15041295C8F82DBD55441665F019E8AC1504174BBB217DCD55441C4115AA18AC15041D6DC1919DCD554418CCCCC5C8BC150415014AE67DCD554411FB86F538CC15041400DC4ACDCD55441F2318C8C8DC1504199D87804DDD55441C3F5289C91C150417B14AE27DED554411FF6958092C15041B5E51B69DED55441B5FFFF8F97C150418DF528DCDFD5544127B81E659DC15041EBFFFFAFE1D55441306E7AFAA0C150417DB2E0B0E2D55441849999A9A2C1504159999929E3D55441408934D2A3C15041D5E6957FE3D5544119909C0FA4C150411F1F6391E3D55441F3323323A5C15041D4AD47E1E3D55441442F0847A6C1504134872236E4D5544159C8F587A6C15041F3860349E4D55441F651B8AEA7C15041C151B89EE4D55441C7007B04ADC15041B373E0EAE5D554414B383603B2C15041697B8D29E7D55441E17A14DEB1C15041A4703DEAE7D554418FC2F5C8ACC1504148E17A94E6D554415C8FC295A7C150413D0AD713E5D55441534C30DDA5C150410518D894E4D55441C2A3700DA5C150418FC2F558E4D554417B10EE6BA4C1504151862F2AE4D5544133333393A2C1504114AE47A1E3D55441E17A143E9DC15041713D0A17E2D55441962D88E29CC1504135BD9DFCE1D554410C52B85E97C15041A8B81E65E0D554416FE345A994C15041BEEF04B7DFD554412AAE478191C15041CDF528ECDED55441C31E859B8DC15041F7A370DDDDD55441234177758CC15041C9245872DDD5544148E17A348BC15041D7A370FDDCD554419A99991989C1504152B81EF5DBD5544118D0EAB988C150413E1B7FCFDBD55441190F40B988C15041D1F63BCFDBD554410AD7A39085C1504135AE4791DAD55441A552E62085C15041845B672BDCD554417F9E694684C150416F6A9C3DDCD55441D891B67983C1504103ADC805DCD55441066F9FBF82C150418B0559BBDBD55441E7BA7CA881C15041E4E24101DBD55441B36D85E180C15041A8A7F0F1D9D55441318FC20583C15041ADF528BCD7D55441E77A141E7EC150416785EBD1D0D55441FC051F267EC15041CCA9DD37D1D55441CF5EC52C7EC15041A7F52B8CD1D55441F9322E3A7EC15041133F2D36D2D55441480AD7437EC150410AD7A3B0D2D55441EDA370BD77C15041A4703DFAD5D55441AF703DDA74C15041A4999909D9D55441FC1B74B875C1504176140E25DAD55441800A7E1E77C15041FEAFC4EDDBD55441F564AC2F78C15041F6C13C4ADDD55441666666B67AC1504133333383E0D5544114AE476179C1504185EB51D8E1D55441D7A370CD77C150413FAE4761E3D554415C6E971176C15041A5673CE2E4D554414757A4F073C1504175D8E0BAE6D55441C6E1EB4778C15041960A07DAEAD5544152F1A0C07AC150418B5CE81AEDD5544195DE0E727BC1504134AB8AC7EDD55441CDCCCC0C7EC15041E17A14EEEFD55441F65B9EC680C15041BD7CE18BF3D554413682010181C150419E68F0CAF3D554413023C2D683C15041F1E699E6F5D554411B98C1F485C1504123A51708F7D55441B61E91B48BC15041FD3A689EF9D5544173D08A5C8DC15041E0E4EDF3FAD554416BA7DE688DC15041BF511FFEFAD5544152B81E3590C1504114AE47B1FBD5544148E17AC492C15041666666E6FBD554419A9999F992C150418FC2F548FDD55441F31BCD8093C15041A0494A50FDD554410E3523C293C15041D5E4EDF3FAD554417F573A7C94C150416E3A7CFDF8D55441DE7468D494C15041C5FF1F4DF8D554418FC2F58895C15041295C8FF2F5D5544148D7545F97C150418AAE4D42F5D55441000000C097C15041E17A141EF5D554419A9999B99AC15041295C8F92F6D554417B14AE379CC1504100000080F8D55441D651DB349CC15041E7213086F8D55441A601CD2A9CC1504173763A9CF8D55441DAFE87299CC15041B8D0029FF8D554411A4206299CC15041CB2B1FA0F8D554413DE17A949EC15041FFAD47A1FAD55441120AD723A1C15041495C8FA2FCD554419B59E6EEA1C1504181FF5463FDD554416BA8C583A2C150419002570FFFD55441171ABCD2A3C15041E847858300D65441F6B1E373A4C15041E860A4E901D65441FD52377AA4C15041568DB3F701D65441A4754E34A5C150419AA6199103D654412B820101A6C150419EBF7F2A05D6544147BB7CA8A6C150414580550E07D65441754C8805A7C150419DC5838208D654419F62ECF2A6C15041C779A69909D654415063D099A6C15041D7E22EAB09D6544167D1209BA6C15041B37600B009D654411485EB51ADC1504199703D8A09D65441E20EED5BADC15041D858536608D65441F6285C6FADC15041EB285C2F06D654419A9999C9ADC150418FC2F5D8FBD55441713D0A17AFC15041295C8F82F4D5544152B81E65B2C15041D7A3700DE8D55441E17A148EB2C15041C3F5284CE7D5544175760FC5B6C15041334F4D47E8D554419AE6A310B8C1504125877A94E8D554418FC2F518C3C1504100000040EBD55441745C8FF2C2C15041EBFFFF0FECD55441E2CCCC4CBFC1504114AE47C1F9D554417F480D32C1C150417CE61C20FAD5544114AE4771C4C15041295C8FC2FAD554413D0AD763C9C150411F85EB91FBD55441FEF4FEABCBC15041CF82F356FCD554411254288CCCC15041D9A78EA2FCD554416D7F3C3DCFC15041A070157FF4D55441713D0A27D0C15041C3F528BCF1D554419A999969D2C15041B81E853BECD554413D61E869D4C15041F2D97029E7D55441D682EA71D6C15041B907D703E2D554411BB71EF5D6C150411284EB61DBD554412832CC32D6C15041421ABCD2DAD55441810FB578D5C150411DCBDC3DDAD554414CBE5D20D4C150415C6B3702D9D55441293863E1D1C15041688D474FD7D55441AF6DDB79D1C150416639C315D7D554418FC2F568D1C15041C2CCCCECD7D554412D5533A3D0C1504154D5D5F3DED55441941F0A17CBC150416DC648D1DCD55441F1B71E55CBC15041F484EB91DAD5544153D81AE1CBC15041CDD50F72D5D55441A4703DAAC6C15041CDCCCC2CD5D55441B81E85DBC0C15041000000D0D4D55441CB6A78CCC0C15041326AA568D5D5544120D7A3C0C0C150412AD7A3E0D5D55441895BAA63BDC15041C4807208D6D5544133333313BBC150413D0AD723D6D55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>354454 - 216868
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -11 </desc>
+<a>
+0106000000010000000103000000050000005B000000C3F5286CDDC25041A4703DBAE5D65441AE47E1DAE3C250413D0AD743ECD6544152B81EB5E4C250417B14AE77EBD6544114AE47C1E9C25041CDCCCCBCE6D6544114AE4721EBC2504114AE47F1E8D6544133333393EAC25041CDCCCC0CECD654419A9999A9EAC250417B14AE07EDD65441000000D0EAC250418FC2F578EDD65441CDCCCCFCEAC25041E17A14CEEDD65441AE47E12AEBC25041B81E850BEED654413D0AD773EBC250413D0AD743EED6544185EB51C8EBC250415C8FC275EED6544185EB5128ECC25041D7A3708DEED654413D0AD783ECC2504152B81EA5EED6544185EB51D8ECC25041EC51B8BEEED65441A4703D0AEDC25041B81E85DBEED6544148E17A34EDC250413D0AD743EFD65441E17A14DEEDC2504152B81E05F0D654418FC2F598E7C25041C3F5288CF7D654419A9999A9E6C2504152B81E85F8D65441D7A3707DEDC2504152B81EA5FDD65441D7A3702DFCC2504148E17AB401D75441295C8FF20EC350419A9999F90BD754416666665628C3504114AE476118D75441EC51B83E3CC350418FC2F5B823D754417B14AE174CC3504114AE473131D7544148E17A2451C350417B14AE4733D75441C3F528EC57C350417B14AE0735D754413333336361C350411F85EB5136D75441000000F062C35041295C8F0236D75441AE47E1EA65C3504114AE476132D754411F85EB1168C3504114AE475130D754413D0AD7636AC350411F85EBF12ED75441D7A370AD6DC350415C8FC2F52DD75441B81E858B77C35041713D0A772CD75441A4703D4A77C35041EC51B8AE2AD754415C8FC21574C35041EC51B85E2AD75441A4703D9A72C35041333333632BD75441A4703D3A69C35041AE47E1AA29D754415C8FC2B55BC35041AE47E1DA26D754411F85EB3158C35041713D0A9724D75441A4703D5A58C35041EC51B84E21D7544114AE47015AC35041EC51B8FE20D75441E17A147E5CC350413333334323D75441A4703D1A61C35041713D0A0723D75441E17A14FE63C35041AE47E11A23D75441E17A14EE63C35041F6285CCF21D75441000000304FC35041E17A143E1CD75441A4703D6A32C350415C8FC2450CD75441B81E850B32C350411F85EBA108D75441F6285C7F33C35041E17A149E03D75441F6285C8F37C35041F6285C9FFAD65441333333B337C35041C3F528CCF9D6544114AE476133C3504152B81ED5FAD65441F6285C7F2EC3504114AE47B1FBD65441E17A14FE2AC35041A4703D0AFBD65441A4703DAA22C350415C8FC285F8D65441CDCCCCDC17C3504152B81E75F5D654417B14AE5712C350417B14AE17F4D65441CDCCCCDC0FC35041C3F528FCF2D6544185EB51C80CC35041A4703D9AF0D654419A9999690AC35041D7A370DDEDD65441F6285CEF08C35041CDCCCC4CEAD654410AD7A33009C3504185EB5148E5D654411F85EB010AC3504185EB5158E2D654410AD7A3D00BC350413D0AD763E0D6544148E17A1404C35041D7A3701DDCD65441B81E859B01C35041E17A14CEDAD65441C3F528BCFAC25041AE47E12AD7D6544152B81E75F2C25041713D0A87D3D654410AD7A390EBC25041D7A3700DCED65441F6285C8FE0C250415C8FC235C2D65441000000E0DCC2504152B81EC5BCD6544166666626DDC250410AD7A3F0BBD65441CDCCCC1CD8C250417B14AE77B4D65441295C8F92D5C25041CDCCCC5CB0D65441E17A14BED2C25041CDCCCCCCAFD654413D0AD703BFC25041F6285CDFABD65441E17A145EBDC25041F6285CDFABD65441CDCCCC1CB9C250413D0AD7F3B4D654410AD7A300B5C250419A9999B9BDD65441CDCCCCDCB4C25041713D0A07BED65441AE47E1FAA7C25041295C8FA2BCD65441EC51B81EABC25041F6285C0FC5D65441E17A146EACC250418FC2F5A8C2D65441713D0AA7C6C25041CDCCCC2CCBD65441E17A146EC4C250410AD7A3F0CDD654411F85EB51CAC25041666666C6D1D654418FC2F568CFC2504114AE4741D6D65441C3F528ACD3C25041713D0AA7DAD65441C3F5286CDDC25041A4703DBAE5D654410900000048E17A8451C3504152B81EE524D754413D0AD73350C35041C3F528EC22D75441E17A145E50C35041C3F528FC20D75441333333B352C350416666668620D7544114AE471155C35041A4703DDA20D7544148E17AF455C350415C8FC26522D75441B81E853B55C3504148E17AD424D75441B81E855B53C35041A4703D4A25D7544148E17A8451C3504152B81EE524D754410900000048E17AF4C7C25041D7A3701DC7D654410AD7A340C7C250411F85EB41C8D654413D0AD793C3C250415C8FC205C4D65441F6285CBFB6C25041AE47E13ABED654418FC2F5A8B7C250417B14AE17BDD65441295C8F32BBC2504133333303BFD654411F85EBD1BEC250417B14AEB7C0D6544100000010C4C2504114AE4751C3D6544148E17AF4C7C25041D7A3701DC7D654410C0000007B14AE7747C3504185EB51181FD75441B81E859B46C350410000005021D75441CDCCCC6C45C35041CDCCCCAC21D75441EC51B8AE43C350419A9999C920D754419A99994942C350415C8FC2451FD754419A99994942C350417B14AE271ED7544114AE477143C3504148E17A941DD754413333333345C35041CDCCCC8C1BD75441666666D646C35041B81E853B1BD754419A9999B947C350411F85EB611CD7544152B81E0548C350419A9999991DD754417B14AE7747C3504185EB51181FD754410B000000F6285C7F1EC350410AD7A31006D754411F85EB1124C35041CDCCCC1C07D754410AD7A3E026C35041A4703D8A08D75441CDCCCC6C28C35041CDCCCC1C0BD754419A99995928C35041C3F5280C0DD75441B81E856B26C35041A4703D8A0FD75441F6285CFF24C35041E17A141E10D7544185EB51481BC35041295C8FE20DD754410AD7A3D01AC3504148E17AF40CD75441295C8F521CC350413D0AD71309D75441F6285C7F1EC350410AD7A31006D75441
+</a>
+
+<b>
+0106000000010000000103000000010000001E02000004C35C8FE0C250412935C335C2D65441569E337DDFC25041034608A1C0D6544148C5FFDFDCC2504108F81EC5BCD6544166666626DDC250410AD7A3F0BBD65441CDCCCC1CD8C250417B14AE77B4D65441295C8F92D5C25041CDCCCC5CB0D65441E17A14BED2C25041CDCCCCCCAFD654413D0AD703BFC25041F6285CDFABD65441E17A145EBDC25041F6285CDFABD65441CDCCCC1CB9C250413D0AD7F3B4D654410AD7A300B5C250419A9999B9BDD65441CDCCCCDCB4C25041713D0A07BED65441F6285CBFB6C25041AE47E13ABED654418FC2F5A8B7C250417B14AE17BDD65441295C8F32BBC2504133333303BFD654411F85EBD1BEC250417B14AEB7C0D6544100000010C4C2504114AE4751C3D6544148E17AF4C7C25041D7A3701DC7D6544130096145C7C250412875363AC8D6544148E17A04C8C2504133333323C9D654419815EB31C8C25041B539EB41C9D65441C3DBFFCFC7C25041B61A29BCC9D65441445F0BA7C6C25041410ECC2CCBD654419FC8156EC4C25041A64FA3F0CDD6544195CF8BC7C9C250418DE54D6CD1D654411F85EB51CAC25041666666C6D1D654418FC2F568CFC2504114AE4741D6D65441C3F528ACD3C25041713D0AA7DAD65441C3F5286CDDC25041A4703DBAE5D65441AE47E1DAE3C250413D0AD743ECD6544152B81EB5E4C250417B14AE77EBD6544170C51162E9C25041DF870516E7D6544172C6AA54E9C25041A0758700E7D654415BC26D52E9C2504182CCCCFCE6D6544173F47A4EE9C2504134B769F5E6D65441B2FE054BE9C25041F591C8EDE6D6544175AC1248E9C2504178BAF1E5E6D65441FA38A445E9C2504130C8EDDDE6D65441E04EBD43E9C250411A85C5D5E6D65441B6036042E9C25041ADE181CDE6D6544198D68D41E9C25041C5ED2BC5E6D6544198D68D41E9C250417FAB6DB4E6D65441B6036042E9C250418CB717ACE6D65441E04EBD43E9C250418A14D4A3E6D65441FA38A445E9C250416AD1AB9BE6D6544175AC1248E9C25041CCDEA793E6D65441B88ED248E9C250412E0CAA91E6D654413CE8C844E9C25041F1EDE18DE6D65441688C7D40E9C25041D7274C89E6D65441F74F813CE9C250417BFE7084E6D65441D090D838E9C250418DC4557FE6D65441B0528735E9C25041F512007AE6D654410C389132E9C25041BAC27574E6D65441D37FF92FE9C25041C6E6BC6EE6D654415302C32DE9C250412DC5DB68E6D654410AEF572CE9C250418F235064E6D65441442C666CE8C250418080D6C2E3D65441AC59866CE7C250418A7AFB79E1D65441B02028FFE5C25041E69696FADED6544119108E22E4C25041ED0C55C2DCD654414754EAFCE1C2504118CD0C78DAD654415FE36362DEC25041362748F2D7D654418B8FC938DBC25041673DE1B7D5D65441987CDE5AD8C25041D7025092D4D65441B1F4C859D8C25041EE07DF91D4D65441C7181054D8C250410B50478FD4D65441E2C8854ED8C250417235518CD4D654414A173049D8C25041F1F6FF88D4D654411D46B946D8C25041E1144C87D4D6544173CB98CAD7C25041A698A22ED4D65441AEDCA831D8C250412E995B8CD3D6544158E60E34D8C2504104E3038ED3D65441D484E9ACD8C250418CE656E4D3D65441919F898ADBC250417124CA09D5D6544178279F8BDBC250415B1F3B0AD5D654416C035891DBC250413DD7D20CD5D654414753E296DBC2504137F2C80FD5D65441EA04389CDBC2504158301A13D5D65441E2F52C9EDBC250411DF07114D5D65441DD72DAD0DEC25041B39F3D55D7D65441659C2F73E2C250414C3C79E0D9D65441011F9376E2C250417F3AF5E2D9D6544152486E7BE2C25041E676F1E6D9D654416D0E0480E2C25041B9D23CEBD9D65441A34E2B82E2C25041AA2476EDD9D654412BB670B0E4C25041E95FF340DCD6544180D294B2E4C25041D5D44F43DCD65441CC87F5B3E4C250413413EB44DCD654412848CB97E6C25041F364CC85DED65441A3CF669AE6C250413B500C89DED65441738E0F9EE6C25041288A278EDED654414F4D97A1E6C25041A61FDC93DED65441C792C515E8C25041E8182D1FE1D65441B02C8518E8C250419D855824E1D65441D11C5F1AE8C250416AAF5328E1D6544105E7E51EE9C250416AEBD07BE3D6544127AFA31FE9C25041279D8E7DE3D65441A72CDA21E9C2504120BF6F83E3D6544146404523E9C250416960FB87E3D65441DB97FDE4E9C250418501B02FE6D65441445B65E5E9C25041F0552731E6D65441DD8AD2E6E9C2504175884537E6D654412483D8E7E9C25041BD42783DE6D65441E25363E8E9C2504130AAF942E6D65441AA9B6CEAE9C2504138CB9743E6D65441887343F2E9C25041801D8B46E6D65441C698E4F9E9C25041E012004AE6D6544114AE4701EAC2504129E1F24DE6D65441DF9A6408EAC2504163345F52E6D65441FF92330FEAC250418B324057E6D65441B31FAD15EAC250415B83905CE6D654418127CA1BEAC2504100534A62E6D65441DCF78321EAC25041235B6768E6D654414C48D426EAC25041D7E7E06EE6D65441D446B52BEAC25041F7DFAF75E6D654419695E42DEAC25041FA231279E6D654418C95E48DEBC2504141058DADE8D65441A3992190EBC250410AAE47B1E8D65441E1671494EBC25041B8C3AAB8E8D654414C5D8997EBC2504197E84BC0E8D65441E9AF7C9AEBC2504114C022C8E8D654410423EB9CEBC25041B2B226D0E8D65441740DD29EEBC25041D2F54ED8E8D654419E582FA0EBC25041DF9892E0E8D65441668501A1EBC25041C78CE8E8E8D65441668501A1EBC250410CCFA6F9E8D654419E582FA0EBC25041FFC2FC01E9D654410D3E499FEBC2504172E2C807E9D6544147ED3614EBC2504119C87512ECD654410A5D5327EBC25041421181E8ECD65441A4F4B56CEBC250413505F68DEDD65441452BDA86EBC25041ECF8D0B0EDD6544176E1C7BBEBC25041E565ACD9EDD6544112F66F09ECC250413AB88F07EED6544170D86E0FECC25041B2F6540BEED6544117EEDE15ECC250410B6DED0FEED6544168FF0767ECC250418C3FBC4DEED6544109200CC6ECC250418AED0740EED6544145D69CC7ECC25041EEA7D03FEED654412DCAF2CFECC250416F7AFE3EEED65441720CB1E0ECC250416F7AFE3EEED65441650007E9ECC25041EEA7D03FEED65441C8A34AF1ECC25041C2F22D41EED65441E8E672F9ECC25041DCDC1443EED6544125D97601EDC250414C508345EED65441A2B04D09EDC25041EAA27648EED65441E1D5EE10EDC25041F497EB4BEED6544138D34818EDC250416226D94FEED654418E703D4AEDC25041DF32AB6CEED65441645D5A51EDC2504119861771EED6544184552958EDC250419684F875EED654412DE2A25EEDC2504167D5487BEED654415BEABF64EDC250410BA50281EED6544100BA796AEDC250413AAD1F87EED65441C60ACA6FEDC25041E339998DEED65441AE09AB74EDC25041A2316894EED65441885C1779EDC25041D91E859BEED65441712A0A7DEDC250417D34E8A2EED65441DB1F7F80EDC250415B5989AAEED654411717E280EDC25041ADFD7AABEED6544123EBFCA2EDC25041DB7DB5FFEED65441E17A14DEEDC2504152B81E05F0D654411444FB89EDC2504177CB156AF0D65441F0C2F598E7C2504182F5288CF7D65441D34B9004E7C25041C7108226F8D65441AB6BC2CAE6C250415370A162F8D6544139113DAEE6C2504185A04B80F8D65441A49999A9E6C2504147B81E85F8D654410DA4707DEDC2504147B81EA5FDD6544114ECBFE1F3C2504137127069FFD65441D7A3702DFCC2504148E17AB401D754414CD8282805C350414546399E06D75441495C8FF20EC350416F9999F90BD7544129396BFC19C35041A8C2405E11D754416666665628C3504114AE476118D75441EC51B83E3CC350418FC2F5B823D754417B14AE174CC3504114AE473131D75441E7E07A2451C350415014AE4733D75441A2F528EC57C350415B14AE0735D754419433336361C35041FF84EB5136D754419344232E62C35041DA1A552936D75441537D046460C35041C11DC59635D75441E45D81E35BC350411A6F2B4834D754411CB669DF5BC3504101B8E14634D75441E39388D95BC35041363AAB4434D75441A3B7CFD35BC350413382134234D75441886745CE5BC3504124671D3F34D754413DE06ECD5BC35041EE17A03E34D75441D6C33AB158C350410036246832D754412575A3E756C350410036246832D754410B1C5CE156C35041C897EF6732D754412DA51BDB56C350418BF5516732D754411BEBE8D456C350415AFD4B6632D754418BB8CACE56C350410CCEDE6432D7544138C3C7C856C35041EFF60B6332D7544191A759C756C35041F0758C6232D754412F9FF0CB52C35041773C79F630D75441B45E69FB4FC3504104858D6231D75441B391B3F94FC35041772BCB6231D75441D51A73F34FC3504129CD686331D75441AB68E4E64FC3504129CD686331D75441CDF1A3E04FC35041772BCB6231D75441BB3771DA4FC350415033C56131D754419F0453D44FC35041F803586031D75441D80F50CE4FC35041DB2C855E31D754419EED6EC84FC35041B1AF4E5C31D75441CD3BB1C64FC3504184E7905B31D754416D0034734DC35041111E0A5730D75441F5D5386F4DC350419A2D305530D75441E585AE694DC350418B123A5230D75441A6E35C654DC35041DD38944F30D754418058007D4AC350416178BE6B2ED754417249FC7B4AC350410F14136B2ED754416F0FE1764AC3504133556A672ED75441FEE505724AC350414C186E632ED75441F91F706D4AC35041E4BC225F2ED7544129AE8D6A4AC35041E87C1F5C2ED75441577CC13747C35041C9A3E3DE2AD7544171DE473747C3504135FC5DDE2AD75441C251722843C35041CDB13A6026D754417F6014AA3EC35041E1FE2F5122D75441AD2E48773BC350415C74D3681FD7544125EFF9733BC35041E38AAC651FD754419092AE6F3BC35041DEC416611FD754413E56B26B3BC350416C9B3B5C1FD75441639709683BC350416A6120571FD75441CC6173663BC35041F5F0AB541FD75441915DABF439C35041448405051DD7544150A0951338C350418F16E98F1AD754415A91051038C350416916EE8A1AD75441C352B40C38C350417B6498851AD754413F38BE0938C3504160140E801AD75441A67F260738C35041B738557A1AD754417C02F00438C350411E1774741AD75441308A160438C350416FD8D3711AD75441E47D227437C350414AB0FA9D18D7544103B9DDC635C35041BEFE9E6116D75441DEF96A6134C350413699A94315D75441701E77C32FC350414ECFE08512D75441A1947DF42FC3504153B5B83B12D7544101C4F86D2FC35041129BB61F12D754419F92B1682FC35041A22F751E12D75441AB9CAE622FC35041F058A21C12D754419E7BCD5C2FC3504145DB6B1A12D754410BA014572FC350410D23D41712D75441E34E8A512FC350410009DE1412D75441969D344C2FC35041DDC98C1112D75441896319472FC350416D0BE40D12D75441183A3E422FC35041BCCEE70912D754414874A83D2FC350411E739C0512D7544109185D392FC350414EAD060112D7544157DB60352FC350413C832BFC11D75441E71CB8312FC35041CF4910F711D7544107DF662E2FC35041E197BAF111D75441B7C3702B2FC350415B4730EC11D75441200CD9282FC35041C76B77E611D75441D48DA2262FC35041194A96E011D7544122B7CF242FC35041255493DA11D75441408862232FC35041D62175D411D75441638F5C222FC350411A6842CE11D754416C2CBA212FC35041BFC170C711D75441AB27719B2EC35041CCE82C8211D754419D2C73972EC35041C4B9FE7F11D75441517B1D922EC35041D97BAD7C11D754414341028D2EC35041D3BC047911D75441C71727882EC35041767F087511D75441025291832EC35041D823BD7011D75441C3F5457F2EC35041B45E276C11D7544107B9497B2EC3504197344C6711D75441A1FAA0772EC35041E8F9306211D75441C1BC4F742EC350413C49DB5C11D7544167A159712EC35041B6F8505711D75441DFA2D56E2EC350418497C75111D75441E2981F002DC35041414AACE10DD75441705E1C002BC350410784F1730BD754415CDF0DFE2AC35041754B5B710BD754414EDB56FA2AC3504197AF2A6C0BD75441011DA09129C350413191184F09D754411C4382D128C3504124FDA8600CD7544177F4A23C28C35041B7F3F73F0DD75441EB55E41227C35041DDE095FE0ED7544171FD41A426C350410D49F7400FD75441B81E856B26C35041A4703D8A0FD75441707052A125C3504197D053DC0FD75441BE10B69E25C35041CFD6E4DD0FD7544181A2769D25C35041CFD6E4DD0FD75441F6285CFF24C35041E17A141E10D7544164D70BE823C35041CFD6E4DD0FD754414E8659B622C35041CFD6E4DD0FD754410A3176C91EC3504189B4CD230FD7544181C9309B1CC350414365EE8E0ED754410341DFCE1BC350417ADF7A010ED7544185EB51481BC35041295C8FE20DD75441FEBB56181BC35041135C1C830DD75441BA085BB71AC35041B7F3F73F0DD75441BA085BB71AC350412B8201F10BD75441002B72711BC35041AEEDF3E709D7544181C9309B1CC350417D2D1E0408D754411F93B79F1DC350415740804506D75441FF5D3EA41EC3504111F1A0B005D754417ED3EA7321C35041E6A0970D06D75441B6583C1D1DC3504189BB742F05D75441D3B4F21B1DC350412774302F05D75441A3C7921617C35041910AE5E403D7544191CF2D4414C3504165487E9904D75441872DC5C20FC350412CAC25C305D75441FDB582BD0FC35041491159C405D7544137FC4FB70FC35041270A5FC505D754419A850FB10FC35041ADABFCC505D75441E134F1A30FC35041CBD5F2C505D7544163A0E39A0DC350417E01BBA005D75441B5C832950DC35041393527A005D75441B70D008F0DC350419D3D219F05D7544167DBE1880DC350411A0EB49D05D7544173E5DE820DC350416837E19B05D75441C5C3FD7C0DC35041BDB9AA9905D75441F5E2BA790DC3504154A33E9805D7544140BD5D020AC350413147890104D754419AB61EB106C350419CEC11FF02D75441690AF42F02C35041069947B001D7544189C6432E02C35041ACC8C5AF01D75441DF7A81F9FDC25041B4249B6100D7544115F3E056F9C250414B02F338FFD65441D0FF7E95F6C250412F9972A4FED65441332C6D90F6C25041195A3CA3FED65441E0366A8AF6C25041728369A1FED6544191148984F6C25041C705339FFED65441A939D07EF6C250412F4E9B9CFED6544123E94579F6C25041E032A599FED654413537F073F6C25041F5F45396FED654411DFDD46EF6C250419036AB92FED65441ACD3F969F6C25041DEF9AE8EFED6544195F11067F6C25041CB2C068CFED6544184937C59F3C25041BAA1A9A3FBD654412AAFCF57F3C250412F1307A2FBD65441EB528453F3C25041BF4C719DFBD65441DB16884FF3C25041EE239698FBD654418DCA764CF3C25041B1E35A94FBD65441BB09A168F1C250414C2C36D1F8D6544199970968F1C25041DB3156D0F8D654411859B864F1C250418E8000CBF8D65441C83DC261F1C25041A93076C5F8D65441D2862A5FF1C25041D353BDBFF8D654418608F45CF1C25041C632DCB9F8D65441D431215BF1C25041D23CD9B3F8D65441A6998F5AF1C25041569B9EB1F8D65441B3542835F0C25041CEA154F7F3D654419400EFD8EDC250412C69C3A3F0D65441258EC022EEC250419FC514C2EFD654419BB14126EEC250419AA2D2C5EFD654414DEE3D2AEEC25041B7CCADCAEFD6544184A65F2CEEC250414C3891CDEFD65441575768DCF0C25041A8B54097F3D65441865DEFDDF0C250412B847899F3D65441129C40E1F0C250417835CE9EF3D65441C1B636E4F0C25041FE8558A4F3D65441F96ECEE6F0C25041876111AAF3D65441A4EC04E9F0C250413583F2AFF3D65441AAC2D7EAF0C250412979F5B5F3D65441845B69EBF0C25041041A30B8F3D6544154BA0311F2C250412DE04C73F8D6544197A137E5F3C2504197BA981FFBD65441A9D8BBD7F6C250412B082FEEFDD65441B0893180F9C25041F13A707DFED654410A2EB383F9C2504158D83E7EFED65441A0A5AD2AFEC25041E476FDA7FFD6544136D43D2CFEC25041891865A8FFD654411866D92FFEC25041060870A9FFD654417DCA546602C35041489023F800D754411DC23EE706C35041CE1ADB4602D754411C4E6EE806C35041575B354702D75441C75472400AC350419525BC4B03D75441BA705A430AC35041F09BAB4C03D7544168923B490AC350419B19E24E03D7544138737E4C0AC35041632F4E5003D7544159B7EAB90DC35041652475E204D75441DA93FAA10FC350411DB4510505D7544136CF8D1414C3504172497EDF03D75441B941421514C35041D47250DF03D75441CACC9EFD16C350418E50392503D7544183D02C0217C350410FC2332403D75441E08A5F0817C35041D2C92D2303D754412902A00E17C35041AB27902203D75441F3B32E1B17C35041AB27902203D75441902A6F2117C35041D2C92D2303D75441EDE4A12717C350410FC2332403D7544115BE042917C3504197107D2403D75441A4F388431DC350419540507304D75441DEA76E9F21C3504149317E5205D75441F3A473A521C350411059E65305D754411885F6AA21C350416A1A8E5505D75441EAB729B724C35041F32A9F5906D7544105AE219E27C350418928833807D75441088467A127C3504135F18E3907D75441B6A548A727C35041E06EC53B07D75441E08101AD27C3504177265D3E07D75441C5D18BB227C35041C641534107D75441BD126DB527C35041304A0E4307D75441884EEA082AC35041688F3CB708D754417EBF5E0B2AC35041DEC4D2B808D754418BF979102AC350414E837BBC08D75441082355152AC35041A1C077C008D754412BE8EA192AC350413F1CC3C408D754417544361E2AC35041B0E258C908D75441278132222AC35041800B34CE08D754413585E9252AC350410BA864D308D75441EF4E67972BC350414756A1FD0AD754415FDC5F9D2DC35041304B98720DD75441735B6E9F2DC35041B7832E750DD75441E21917A32DC35041C4BD497A0DD75441C35768A62DC35041116F9F7F0DD7544112735EA92DC3504197BF29850DD754410471E2AB2DC350412820B38A0DD75441927597122FC3504111C498E710D754419D597B5930C35041EB5A359011D754415E53795D30C350415D89639211D75441FA91686230C35041B112759511D754410853792D30C3504105FA86E511D754414D422FC934C35041E6FFFAA114D754410CF481CD34C35041F897B4A414D754410E2E9DD234C35041D3565DA814D7544159C324D434C35041A22890A914D754417D09534836C3504157C64ED315D75441779CA64B36C35041D93018D615D7544112633C5036C35041D88C63DA15D7544186BE875436C35041DD52F9DE15D7544162FB835836C350414E7CD4E315D75441CE54275936C3504185CEABE415D754419E41C51738C35041860A293818D7544118A7CA1A38C3504151F26C3C18D7544119E51B1E38C3504135A4C24118D754419CFF112138C350414FF44C4718D7544135B8A92338C35041F9CF054D18D75441F635E02538C350419CF1E65218D75441ABADB92638C35041B52F875518D754418EE68AB638C350419728EF281AD75441C3A7EF8F3AC350413EC2FC931CD7544123B67F933AC3504164C2F7981CD754415BEC15953AC35041E4326C9B1CD75441ACF33D023CC35041423EACE31ED754412E5D1E2B3FC35041A7E403C321D75441BE93C3AC43C35041367904D525D75441437B4CB043C350414B8860D825D75441CC89A8B343C35041AF6EE9DB25D754416B1D87C547C35041E9FF685D2AD75441F8B4DAEF4AC35041CA1967D12DD75441C50F63C74DC35041E5884CAA2FD75441CA004CFA4FC35041317192A030D75441C5AE4AC752C35041C6D7053530D75441F37C00C952C350414731C83430D75441D1F340CF52C35041A18F2A3430D7544164A5CFDB52C35041A18F2A3430D75441421C10E252C350414731C83430D7544154D642E852C350417929CE3530D75441E40861EE52C350415D593B3730D75441CDFE63F452C35041E42F0E3930D75441DE19D2F552C35041EEB08D3930D75441FA5B44F856C350416B3624A831D75441A13579CB58C350416B3624A831D75441B18EC0D158C3504198D458A831D754418F0501D858C350414976F6A831D75441A0BF33DE58C35041076FFCA931D7544130F251E458C350415F9E69AB31D754418EE754EA58C35041DB743CAD31D75441260936F058C35041A6F272AF31D7544166E5EEF558C35041A9AA0AB231D75441813579FB58C35041C3C500B531D7544162BD4FFC58C35041F9147EB531D754410EEAAC245CC35041A280299333D754417916CC9A60C35041C1F0BEDE34D754416A8B489D60C35041901981DF34D75441217F400D63C35041DB0C20A735D75441F8B1DB0E63C35041259BA7A735D7544131D4BC1463C35041F018DEA935D75441DAAF751A63C350415CD075AC35D75441F5FFFF1F63C350416BEB6BAF35D7544142B1552563C35041022ABDB235D7544145EB702A63C3504147E865B635D75441D76CE12C63C35041DE6D66B835D75441A78E175C63C35041740FE47E35D75441AE47E1EA65C3504114AE476132D754411F85EB1168C3504114AE475130D754413D0AD7636AC350411F85EBF12ED75441F92318E06DC35041779261862DD754415792616673C35041049C12A72CD75441A276A43D6AC350410F6095532AD7544113AAC6A961C35041E7CB874A28D75441CF03AD9855C35041F18F0AF725D75441374080254CC350414E77A45D24D754419EAF1FE545C35041895D3EC422D754418A679AE13CC35041E7110CF81DD75441F25DE9C03DC3504117256E391CD7544180DF948841C35041E7110CF81DD75441AECC652A43C350411F8BC4B71DD7544114AE477143C3504148E17A941DD75441218CA5C944C350416F27B8061CD754419FB8D00545C35041DC02577F1BD75441BAC99E7845C35041DC02577F1BD75441666666D646C35041B81E853B1BD754412E636E7B47C35041B4FD5C111CD75441370403D249C350417F1BBD181DD7544136734C584FC350417F573A6C1FD75441E25539F651C3504163D2E1DB1FD75441EC5B3D4E55C350418821C17020D754418D2F757355C3504163D2E1DB1FD754419FF04A5757C35041467A512620D7544125C8805659C3504143E3031F21D7544114AE47015AC35041EC51B8FE20D754417803B5105BC350418D3724F621D754413A8A5CB85CC35041895D3EC422D75441136E49565FC35041895D3EC422D7544170BB782D61C3504119448E0723D754412BDBAE7E63C3504176B1761723D75441EC7A14EE63C350412D2A5CCF21D75441200000304FC35041F77A143E1CD75441D13D0A2730C3504148E17A040BD754419D965B8F37C35041FF6C5D9FFAD654417FD9A09937C35041ECAAD962FAD65441083333B337C35041CDF528CCF9D65441B8CA459437C35041CBD691D3F9D65441C6713D8A35C35041CAD6A350FAD654413FAE476133C3504152B81ED5FAD65441F6285C7F2EC350411FAE47B1FBD65441E17A14FE2AC35041A4703D0AFBD65441A4703DAA22C350415C8FC285F8D65441CDCCCCDC17C3504152B81E75F5D654417B14AE5712C350417B14AE17F4D65441CDCCCCDC0FC35041C3F528FCF2D6544185EB51C80CC35041A4703D9AF0D654419A9999690AC35041D7A370DDEDD65441F6285CEF08C35041CDCCCC4CEAD654410AD7A33009C3504185EB5148E5D654411F85EB010AC3504185EB5158E2D654410AD7A3D00BC350413D0AD763E0D6544148E17A1404C35041D7A3701DDCD65441B81E859B01C35041E17A14CEDAD65441C3F528BCFAC25041AE47E12AD7D6544167B81E75F2C25041B13D0A87D3D65441D8CC6AC3ECC250415C3B2001CFD654410AD7A390EBC25041D7A3700DCED6544143684E15E6C2504174624F27C8D6544104C35C8FE0C250412935C335C2D65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>354870 - 1347700
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000020000006E0000000AD7A3F0543351419A999949300D554114AE474155335141295C8F62300D5541713D0AA757335141A4703D1A300D5541AE47E1BA583351411F85EB01300D5541713D0A575A335141C3F528EC2F0D5541E17A14EE59335141C3F528FC2C0D5541295C8FB23E335141AE47E1FA2F0D5541333333233C3351411F85EB41290D55419A99999936335141000000601F0D5541713D0A1733335141B81E859B180D5541A4703D1A313351417B14AE87160D5541EC51B8FE2E335141000000E0130D5541666666B62C335141000000A0100D554114AE471127335141295C8FC2150D554148E17AB421335141333333231A0D55418FC2F5B81C33514152B81EA51C0D5541F6285CAF173351415C8FC255200D5541AE47E1BA143351411F85EBE1210D55410AD7A3C012335141E17A14BE220D55410AD7A3A00B335141C3F528DC310D5541713D0A370B335141CDCCCC3C320D5541713D0AF70A3351410AD7A3A0320D554185EB51F80A335141AE47E14A330D554185EB51C80A335141B81E85CB330D55419A9999C90A335141EC51B87E340D5541333333F302335141CDCCCCAC350D5541C3F528BCFC3251419A999989350D5541666666E6F632514185EB5118360D554100000010F13251413D0AD793360D55415C8FC205EE325141A4703D1A370D5541EC51B87EEB325141295C8F42230D5541CDCCCC4CE53251415C8FC255230D55413D0AD7E3E13251413D0AD763230D5541A4703DEADA32514166666626230D5541A4703D1AD932514133333333230D5541A4703D5AD53251410AD7A3D0230D5541A4703D7AD3325141713D0A57240D5541CDCCCCFCCF3251413D0AD763250D5541B81E85FBCD325141CDCCCC3C260D554152B81EE5CC325141AE47E16A260D554152B81EA5CA325141A4703DDA260D5541AE47E13AC83251415C8FC255270D5541AE47E10AC7325141713D0AD7250D55418FC2F538C5325141EC51B85E260D55417B14AE17C9325141F6285C7F2B0D554114AE4751CB3251411F85EBF12E0D5541C3F5281CCF325141E17A145E320D55415C8FC295D2325141B81E85EB360D5541CDCCCC3CD132514114AE47413A0D5541AE47E16ACE325141CDCCCC7C3D0D5541A4703D9ACA32514100000030410D554152B81E25B9325141C3F5287C460D5541B81E858BB8325141E17A142E480D554148E17A64BF325141333333734A0D554148E17A34C43251415C8FC2C54B0D554114AE47E1C6325141333333734C0D554133333393CA325141666666064D0D5541666666F6CF32514148E17AB44D0D554114AE4781D2325141CDCCCCBC4D0D5541CDCCCC6CD2325141713D0AB74E0D5541D7A370ADD232514152B81E654F0D554148E17A04D43251413D0AD7D3540D55417B14AEC7D432514114AE47B1570D554152B81E65D5325141333333035A0D5541295C8F72D73251418FC2F588600D5541D7A370DDD83251413D0AD7E3650D55418FC2F568DA3251413D0AD7C3650D5541000000C0DB3251410AD7A350650D55419A9999B9DD325141B81E858B630D5541713D0A77E032514152B81E05610D5541A4703DBAE1325141D7A370AD5F0D5541AE47E1CAE232514185EB51A85E0D5541A4703DEAE43251415C8FC2F55D0D554185EB5198E73251417B14AE775D0D554114AE4791E93251413D0AD7535D0D5541C3F5285CEC325141713D0A975D0D554114AE4771EF32514114AE47F15D0D5541295C8F12F132514114AE47415E0D5541666666B6F2325141EC51B86E5E0D5541C3F5281CF4325141B81E857B5E0D554166666616F5325141AE47E15A5E0D5541B81E85CBF5325141F6285CAF5E0D55415C8FC2E5F63251417B14AE775F0D554152B81EC5F8325141295C8F125F0D554100000000FC3251417B14AEB75D0D5541333333F305335141E17A144E5C0D5541D7A3709D0B335141000000F05A0D5541D7A3707D123351419A999919590D5541CDCCCC0C16335141333333D3570D554185EB51C81B335141E17A145E550D5541B81E858B20335141295C8F22540D554185EB51A825335141000000D0520D5541B81E853B2A335141666666B6510D5541B81E858B2C335141C3F528FC500D554185EB51A831335141D7A3700D4F0D554152B81E5535335141E17A143E4E0D55418FC2F52839335141E17A14AE4C0D5541AE47E17A3C335141E17A14CE4A0D554114AE4721413351413D0AD7A3470D5541AE47E1FA43335141B81E854B450D5541F6285CCF473351411F85EBD1410D5541F6285CFF493351415C8FC2653F0D5541333333434C3351417B14AED73B0D5541CDCCCCDC4D335141CDCCCC3C390D5541CDCCCCEC4D335141E17A14DE380D5541AE47E10A4E335141EC51B82E380D5541666666D6503351411F85EB31300D5541295C8FE25333514152B81E65300D55416666665654335141AE47E15A300D55410AD7A3F0543351419A999949300D55410F000000295C8F6235335141CDCCCC7C430D55419A99999928335141D7A370CD460D55413D0AD71310335141E17A14AE4D0D5541713D0A570F335141B81E853B4D0D5541E17A140E0F3351410AD7A3604C0D5541A4703DEA0D33514114AE47713B0D55410AD7A3300E335141E17A149E3A0D554185EB51882B335141E17A141E330D55419A9999793A33514185EB5188300D554148E17A343C335141333333C3300D55413D0AD7E33C33514114AE4721320D55413D0AD713403351417B14AEA73E0D5541000000303F335141713D0A97400D5541713D0A873D33514148E17A94410D5541295C8F6235335141CDCCCC7C430D5541
+</a>
+
+<b>
+0106000000010000000103000000020000007000000029092459C5325141F27C0275260D554199B42CC8C63251411C52A76F280D5541EE465636CA3251413A70843B2D0D554159008158CC325141E6A976DF2F0D5541A4232121D03251414900F8B3330D55415C8FC295D2325141B81E85EB360D5541E64EBC34D13251414277EA113A0D5541CDCCCC3CD132514114AE47413A0D5541AE47E16ACE325141CDCCCC7C3D0D5541A4703D9ACA32514100000030410D554152B81E25B9325141C3F5287C460D5541B81E858BB8325141E17A142E480D554148E17A64BF325141333333734A0D554148E17A34C43251415C8FC2C54B0D554114AE47E1C6325141333333734C0D554133333393CA325141666666064D0D5541666666F6CF32514148E17AB44D0D554114AE4781D2325141CDCCCCBC4D0D5541CDCCCC6CD2325141713D0AB74E0D5541D7A370ADD232514152B81E654F0D554148E17A04D43251413D0AD7D3540D55417B14AEC7D432514114AE47B1570D554152B81E65D5325141333333035A0D5541295C8F72D73251418FC2F588600D5541D7A370DDD83251413D0AD7E3650D55418FC2F568DA3251413D0AD7C3650D5541000000C0DB3251410AD7A350650D55419A9999B9DD325141B81E858B630D5541713D0A77E032514152B81E05610D5541A4703DBAE1325141D7A370AD5F0D5541AE47E1CAE232514185EB51A85E0D5541A4703DEAE43251415C8FC2F55D0D554185EB5198E73251417B14AE775D0D554114AE4791E93251413D0AD7535D0D5541C3F5285CEC325141713D0A975D0D554114AE4771EF32514114AE47F15D0D5541295C8F12F132514114AE47415E0D5541666666B6F2325141EC51B86E5E0D5541C3F5281CF4325141B81E857B5E0D554166666616F5325141AE47E15A5E0D5541B81E85CBF5325141F6285CAF5E0D55415C8FC2E5F63251417B14AE775F0D554152B81EC5F8325141295C8F125F0D554100000000FC3251417B14AEB75D0D5541333333F305335141E17A144E5C0D5541D7A3709D0B335141000000F05A0D5541D7A3707D123351419A999919590D5541CDCCCC0C16335141333333D3570D554185EB51C81B335141E17A145E550D5541B81E858B20335141295C8F22540D554185EB51A825335141000000D0520D5541B81E853B2A335141666666B6510D5541B81E858B2C335141C3F528FC500D554185EB51A831335141D7A3700D4F0D554152B81E5535335141E17A143E4E0D55418FC2F52839335141E17A14AE4C0D5541AE47E17A3C335141E17A14CE4A0D554114AE4721413351413D0AD7A3470D5541AE47E1FA43335141B81E854B450D5541F6285CCF473351411F85EBD1410D5541F6285CFF493351415C8FC2653F0D5541333333434C3351417B14AED73B0D5541CDCCCCDC4D335141CDCCCC3C390D5541CDCCCCEC4D335141E17A14DE380D5541AE47E10A4E335141EC51B82E380D5541666666D6503351411F85EB31300D5541295C8FE25333514152B81E65300D55416666665654335141AE47E15A300D55410AD7A3F0543351419A999949300D554114AE474155335141295C8F62300D5541713D0AA757335141A4703D1A300D5541AE47E1BA583351411F85EB01300D5541713D0A575A335141C3F528EC2F0D5541E17A14EE59335141C3F528FC2C0D5541295C8FB23E335141AE47E1FA2F0D5541333333233C3351411F85EB41290D55419A99999936335141000000601F0D5541713D0A1733335141B81E859B180D5541A4703D1A313351417B14AE87160D5541EC51B8FE2E335141000000E0130D5541666666B62C335141000000A0100D554114AE471127335141295C8FC2150D554148E17AB421335141333333231A0D55418FC2F5B81C33514152B81EA51C0D5541F6285CAF173351415C8FC255200D5541AE47E1BA143351411F85EBE1210D55410AD7A3C012335141E17A14BE220D55410AD7A3A00B335141C3F528DC310D5541713D0A370B335141CDCCCC3C320D5541713D0AF70A3351410AD7A3A0320D554185EB51F80A335141AE47E14A330D554185EB51C80A335141B81E85CB330D55419A9999C90A335141EC51B87E340D5541333333F302335141CDCCCCAC350D5541C3F528BCFC3251419A999989350D5541666666E6F632514185EB5118360D554100000010F13251413D0AD793360D55415C8FC205EE325141A4703D1A370D5541EC51B87EEB325141295C8F42230D5541CDCCCC4CE53251415C8FC255230D55413D0AD7E3E13251413D0AD763230D5541A4703DEADA32514166666626230D5541A4703D1AD932514133333333230D5541A4703D5AD53251410AD7A3D0230D5541A4703D7AD3325141713D0A57240D5541CDCCCCFCCF3251413D0AD763250D5541B81E85FBCD325141CDCCCC3C260D554152B81EE5CC325141AE47E16A260D554152B81EA5CA325141A4703DDA260D5541AE47E13AC83251415C8FC255270D5541AE47E10AC7325141713D0AD7250D554129092459C5325141F27C0275260D55410F000000295C8F6235335141CDCCCC7C430D55419A99999928335141D7A370CD460D55413D0AD71310335141E17A14AE4D0D5541713D0A570F335141B81E853B4D0D5541E17A140E0F3351410AD7A3604C0D5541A4703DEA0D33514114AE47713B0D55410AD7A3300E335141E17A149E3A0D554185EB51882B335141E17A141E330D55419A9999793A33514185EB5188300D554148E17A343C335141333333C3300D55413D0AD7E33C33514114AE4721320D55413D0AD713403351417B14AEA73E0D5541000000303F335141713D0A97400D5541713D0A873D33514148E17A94410D5541295C8F6235335141CDCCCC7C430D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>489573 - 53323
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000001000000010300000001000000D200000085EB5198F7235141000000F09A205541E17A144E0224514114AE47F1982055419A999979042451419A9999799A2055417B14AEA705245141000000A09B205541666666660B245141E17A14FE98205541B81E853B0B24514185EB515897205541C3F5289C0D2451411F85EB31982055413D0AD75315245141333333F39A2055419A9999890B2451411F85EB4196205541E17A145E0C24514152B81EA5932055413D0AD7830B2451418FC2F5589320554114AE47910A245141F6285CAF93205541000000100A24514166666606942055415C8FC2F5092451410AD7A390942055411F85EBF1082451411F85EBA19420554100000070082451410000002094205541F6285CAF0724514114AE471194205541EC51B89E0624514185EB51089420554148E17A8407245141A4703DFA942055417B14AE4707245141295C8F1296205541AE47E15A05245141CDCCCC1C972055415C8FC2B5032451410AD7A3F097205541D7A3702D02245141CDCCCC0C9820554185EB51B8022451417B14AEF795205541EC51B85E00245141E17A14BE9620554114AE47E1FF235141000000C098205541EC51B86EFF235141A4703D2A99205541333333A3FE2351419A9999F99820554114AE47D1FC235141A4703D2A992055415C8FC225FC23514152B81EA599205541A4703D7AFB235141CDCCCC9C992055419A999959FB2351419A9999F9982055419A999949FC235141713D0A6798205541B81E854BFC235141CDCCCC6C97205541A4703D7AFB2351419A99996997205541295C8F82FB2351413D0AD7639620554185EB5118FB235141D7A3702D95205541A4703D7AFB2351413333339391205541D7A3708DFD235141A4703D6A9120554152B81E85FD235141713D0AC790205541CDCCCC0CFF23514152B81E859020554148E17A840324514148E17A64902055419A999979042451410000001091205541D7A370ED05245141EC51B82E92205541CDCCCC0C07245141B81E855B93205541000000A008245141EC51B82E93205541EC51B82E0A245141C3F528DC92205541333333030D24514166666606922055413D0AD7C30F245141D7A3704D912055413D0AD7231224514185EB51A89020554148E17A5415245141EC51B8BE8F2055419A99995918245141295C8FF28E205541B81E85CB1C245141000000C08D205541295C8F4221245141666666368C2055417B14AEE7242451410AD7A3F08A20554148E17A5426245141D7A3706D8A205541D7A3700D27245141EC51B8EE89205541B81E85CB272451418FC2F548892055413D0AD74328245141F6285CCF832055418FC2F568292451415C8FC2957D205541F6285C8F29245141333333C37C205541E17A14DE2324514152B81E957E205541713D0A9723245141AE47E1BA7E205541EC51B86E23245141EC51B8CE7E2055411F85EB4123245141000000E07E205541295C8F222324514114AE47017F205541C3F5280C23245141000000207F2055419A9999F922245141CDCCCC4C7F205541C3F528EC222451417B14AE877F2055411F85EBE122245141EC51B8DE7F20554114AE47E1222451411F85EB41802055417B14AEE722245141F6285C7F80205541295C8FF2222451411F85EBC180205541CDCCCC0C232451411F85EB4181205541F6285C1F23245141295C8F8281205541B81E853B23245141EC51B8DE812055413333336323245141EC51B83E822055410000009023245141D7A3708D822055411F85EBC1232451419A9999D982205541000000C024245141A4703D5A84205541AE47E19A242451413D0AD733862055410AD7A31023245141F6285C1F87205541A4703DDA22245141F6285C4F8720554114AE476122245141A4703DBA872055418FC2F518222451411F85EBE1872055413D0AD7B3212451417B14AE0788205541D7A3704D2124514148E17A24882055415C8FC2F5202451419A9999298820554152B81E8520245141295C8F2288205541EC51B83E20245141E17A140E8820554114AE470120245141EC51B8EE87205541713D0AA71F245141F6285CAF87205541666666561F245141EC51B86E87205541E17A140E1F245141A4703D3A87205541000000C01E245141C3F528FC862055410AD7A3801E245141A4703DEA862055417B14AE271E245141295C8FE286205541713D0AC71D245141295C8FE286205541B81E857B1D245141CDCCCCEC86205541713D0A271D245141A4703D0A87205541D7A370CD1C245141F6285CFF862055418FC2F5681C24514148E17AE486205541D7A370FD1B2451411F85EBC1862055417B14AEA71B2451415C8FC2B586205541333333631B245141295C8FB28620554148E17A041B2451411F85EBC186205541D7A370BD1A24514152B81ED5862055418FC2F5381A245141AE47E1FA862055413D0AD7A3192451415C8FC2258720554114AE472119245141295C8FA287205541CDCCCC3C18245141CDCCCCDC872055411F85EBE117245141CDCCCC9C872055410AD7A330172451419A9999B98720554114AE4751162451418FC2F5C887205541713D0A771524514114AE47518820554148E17AB414245141A4703D7A89205541C3F5282C1424514148E17AB489205541333333E313245141B81E85FB8820554148E17AD41324514148E17A348820554185EB515813245141295C8FF287205541666666061324514114AE470188205541CDCCCCAC122451417B14AE1788205541CDCCCC5C1224514152B81E358820554152B81E05122451419A99995988205541C3F528BC112451413D0AD78388205541E17A146E11245141CDCCCCBC88205541CDCCCC2C11245141333333F388205541C3F528FC10245141AE47E12A89205541F6285CDF10245141F6285C5F89205541E17A14CE102451411F85EB9189205541B81E85CB1024514185EB51B88920554114AE47D1102451410AD7A3E089205541295C8FE210245141713D0A078A2055419A9999F910245141CDCCCC2C8A205541D7A3700D11245141AE47E16A8A20554166666616112451410AD7A3A08A205541B81E850B112451415C8FC2E58A205541AE47E1EA10245141D7A3702D8B205541AE47E1BA102451411F85EB618B205541666666761024514114AE47918B205541CDCCCC2C10245141A4703DBA8B205541666666860F245141666666068C2055418FC2F5480E245141713D0AA78C2055419A9999190C24514185EB51488D205541B81E85CB0B2451410AD7A3908D2055415C8FC2D509245141713D0A078E205541295C8FC208245141EC51B8BE8E2055413D0AD793072451418FC2F5988E2055413D0AD7F306245141E17A140E8E205541CDCCCC0C07245141C3F528CC8B2055418FC2F5F8052451419A9999A989205541EC51B8FE0324514114AE47A1892055418FC2F5E8022451413D0AD7038A2055413D0AD7E3012451413D0AD7138A205541F6285CFF00245141A4703DBA89205541D7A3709D002451417B14AE478920554166666646FF235141295C8FE289205541F6285C7FFE2351410AD7A3808920554114AE4701FE235141E17A14CE892055419A9999B9FC23514114AE47218A2055417B14AE77FC2351410AD7A3008B20554133333393FB235141295C8F528B205541B81E85FBFA23514114AE47B18A20554100000060FA235141F6285CEF8B205541713D0AD7FA235141AE47E1EA8C205541D7A3707DFA235141E17A149E8D205541EC51B83EF92351413D0AD7B38E20554114AE4731F82351415C8FC2158F205541C3F5282CF7235141D7A370FD8E2055418FC2F598F623514114AE47B18F20554166666626F62351410AD7A3A08F20554166666626F623514148E17AC48E2055419A999929F52351418FC2F5188E205541CDCCCC3CF4235141EC51B8BE8D205541F6285C3FF3235141333333038D205541C3F5289CF2235141713D0A478C205541666666E6F1235141F6285CAF8B205541A4703DAAF02351417B14AE678C205541F6285C1FF02351413D0AD7338D2055413D0AD753EF235141295C8F528D205541CDCCCC5CED2351413D0AD7738E205541F6285C8FEC2351411F85EB218E20554185EB5158E823514114AE47A19020554133333303E7235141F6285C2F9120554148E17AD4E5235141295C8F829120554148E17A84E4235141AE47E14A92205541295C8F32E3235141E17A149E93205541C3F5289CE22351416666667694205541713D0A17E223514114AE47F194205541CDCCCC2CE2235141CDCCCCAC952055413D0AD7E3DF235141D7A370ED952055418FC2F5E8DE23514114AE47419620554114AE47A1DE235141B81E85EB95205541713D0A17D9235141713D0AC79A2055413D0AD703DA235141EC51B80E9B205541AE47E18ADC235141EC51B87E9A205541AE47E13ADE235141713D0A579B20554152B81ED5DE235141A4703D1A9C2055417B14AEB7E223514148E17AE49C205541713D0A07DE2351418FC2F508A02055419A999969D9235141F6285CCFA32055419A9999E9DE2351413D0AD7B3A7205541F6285C8FE1235141C3F528DCA620554185EB51F8E323514114AE4741A520554148E17A04E6235141E17A14EEA3205541D7A3704DE7235141D7A3705DA22055410AD7A360E6235141D7A3703DA1205541AE47E16AE6235141EC51B88EA020554148E17AA4F2235141A4703D7A9B20554185EB5198F7235141000000F09A205541
+</a>
+
+<b>
+0106000000010000000103000000010000007E01000029E0C82D07245141AEE3DA57932055411C8A0659092451412E7B680893205541E1BB083D0C2451418E93DE4092205541333333030D24514166666606922055416B68EDC20F2451413DF7AD4D91205541991E0BED1424514111DC4EDC8F20554148E17A5415245141EC51B8BE8F205541D2F48F811524514197A2D0B28F205541281E52C519245141D97D92908E205541B31EBC541D2451415132C0908D205541300733A01F24514185DA75C68C205541DE45FAEB22245141DD15E2A18B2055417A025B3F252451416D8A1BD18A2055416463635526245141FC57D16C8A205541B0956E6A262451413176665E8A205541CFCAEC9926245141FA9DDC3D8A205541AC699DA526245141414FDA358A205541875362CB26245141D0EEF91B8A205541853B75D026245141590680188A20554145DF367127245141181EB697892055417816AFD7272451411E5943BB882055419B7223EE272451410812B1B5872055413D0AD74328245141F6285CCF832055414F824C892824514133FBBB5582205541B1500E3F29245141F64194797E2055410BAA785D292451412F5C38D47D2055410B70817D29245141E48BE8C87C205541817EE93C292451418D668FDD7C2055417C9ABC7C272451416EADD96C7D20554199A2D79E26245141124DCBB37D2055417FC101DD25245141EA5AC4F17D205541D6E0958B2424514114A3A55D7E205541A6F51CD623245141F22187997E205541CCC11D99232451410FC3C6B97E205541713D0A9723245141AE47E1BA7E2055414230213323245141D125B2EF7E2055414C4C0814232451419C1B34157F205541C3F5280C23245141000000207F2055418D16A20123245141FEDC68397F205541BEA130F6222451416E3BBD5B7F205541CC025BF4222451416D9EC6637F205541E72711E6222451414C6A78BB7F205541311598E422245141CA2FBC6180205541967558E5222451415E00F3688020554148AAAF0A232451417CD69B37812055412041C64E2324514128A54D0D82205541F55F8CAD232451410A4F5EB6822055413E54AEA02424514189DBD32A84205541000000C024245141A4703D5A84205541AE47E19A242451413D0AD73386205541F0A1A84623245141ACCD16FF862055410AD7A31023245141F6285C1F87205541A4703DDA22245141F6285C4F87205541D029769922245141B11B99888720554114AE476122245141A4703DBA87205541258ABE4C2224514182E381C5872055418FC2F518222451411F85EBE1872055413D0AD7B3212451417B14AE0788205541D7A3704D2124514148E17A24882055415C8FC2F5202451419A9999298820554152B81E8520245141295C8F2288205541D408E648202451418B810A1188205541EC51B83E20245141E17A140E8820554114AE470120245141EC51B8EE87205541E5A402C11F2451413D3098C187205541713D0AA71F245141F6285CAF872055412FE7EA841F2451415C060294872055413CF4B2191F2451416CE8AB428720554166504DAD1E2451415C26DFF6862055419F817DA81E24514181C282F5862055412D8ACBA71E245141016D50F5862055418C419F541E245141D49C70E68620554116B3D2241E245141295C8FE286205541C18782CB1D245141295C8FE2862055416282F9A91D245141CC4580E686205541B81E857B1D245141CDCCCCEC86205541713D0A271D245141A4703D0A87205541D7A370CD1C245141F6285CFF862055418FC2F5681C24514148E17AE486205541A92764231C245141355D1ECE86205541DBD9DCF51B245141AD79D8C086205541C1FAEA611B245141BF95C4B28620554173B45A371B245141648CABB9862055416F8BE2C81A24514198DA06D28620554164722AA11924514155F3502887205541CA985F8C192451410AF8303C8720554114AE472119245141295C8FA287205541CDCCCC3C18245141CDCCCCDC872055411F85EBE117245141CDCCCC9C872055410AD7A330172451419A9999B987205541E30E5A10172451414205D2BB872055416F55515216245141D67DE3C8872055410196C60D16245141EC1B20F3872055415A550BA3152451414520CB3588205541D0036A1D1524514125D013DA8820554148E17AB414245141A4703D7A8920554187AB8E7314245141D517FA9589205541C3F5282C1424514148E17AB489205541333333E313245141B81E85FB88205541D598E8DF1324514182A903CF8820554148E17AD41324514148E17A348820554185EB515813245141295C8FF2872055412599AE3613245141F6B49AF88720554160C303E812245141D656E00888205541CDCCCCAC122451417B14AE1788205541F75D6D5D122451419FA1E334882055414B3B430612245141951E1B5A8820554120A939B111245141DE26D18B88205541BF8E945F112451419411E2C8882055413FD60F3B1124514154AB50E788205541028B3FFD102451413460A229892055418D0764D210245141AE9D4E85892055417CA6EACC10245141DFA118C28920554114AE47D1102451410AD7A3E089205541ABC7DCDA10245141592CEFF5892055416E914CEC10245141BE5400178A2055419A9999F910245141CDCCCC2C8A20554110F960FC1024514170B57E358A205541D7A3700D11245141AE47E16A8A20554166666616112451410AD7A3A08A205541B81E850B112451415C8FC2E58A205541AE47E1EA10245141D7A3702D8B205541AE47E1BA102451411F85EB618B205541666666761024514114AE47918B205541CDCCCC2C10245141A4703DBA8B2055416BD4F722102451411C70BDBE8B2055418D98260C0F245141589743448C2055418FC2F5480E245141713D0AA78C205541484CD4FA0C245141203761078D2055418397C34C0C245141DF6191398D20554171A20A110C245141C2413F508D205541B81E85CB0B2451410AD7A3908D205541926544C30A24514129DEFECE8D205541161511D409245141E228F40C8E2055410C8B3B55092451413E17D35C8E205541295C8FC208245141EC51B8BE8E205541BA222E8108245141129790B68E205541E5D440C307245141BBC6DF9E8E2055413D0AD793072451418FC2F5988E2055413D0AD7F306245141E17A140E8E20554146EA8305072451419E37D4748C2055412A40C608072451412A245E298C205541BB83040907245141E77DBC238C205541ED0E0E09072451418584DF228C205541D5D9750907245141DD517C198C2055412F8A7A090724514121C10F198C205541B5BAC309072451418A2271128C20554126B3620A072451414DC5C7C78B20554142A7CEA206245141185124FA8A205541A8504E6306245141C961517C8A2055415454E2570624514127AFAF658A205541A191545506245141404CA0608A205541D8E2FFF8052451410FAAADA989205541D26E64C9052451418A77D1A88920554126668F17052451419544E5A589205541361050F30424514155C34CA58920554189BA4BD004245141656FB9A4892055418E0E4CA7042451419DF00CA4892055414490CF0504245141B4D94FA28920554183D6E356032451413124D5DC892055418FC2F5E8022451413D0AD7038A2055413D0AD7E3012451413D0AD7138A205541F194B87101245141C56316E789205541F6285CFF00245141A4703DBA892055419321519F002451412639E049892055417D8A9D5F00245141A9E5976389205541E669F35900245141679E26668920554197B1505800245141EEAAE36689205541DC430D57002451417DB175678920554125CD81500024514116276A6A89205541B5CEFF4C002451411997FF6B89205541FBE9154700245141111AAB6E892055413A30891D002451410A816D8189205541CE84C8BDFF2351419DCAA8AC89205541A728E4A3FF2351414F7259B8892055411AF7FC63FF235141158033D58920554166666646FF235141295C8FE289205541FB5FA5F4FE235141541657BA89205541942D937FFE2351410766F782892055410453BD3CFE2351412B258FA98920554114AE4701FE235141E17A14CE8920554101BF5CC1FC2351412CAF89218A2055417B14AE77FC2351410AD7A3008B205541100BB1DBFB235141469191388B2055414ACE7DACFB235141C6EE7D498B20554133333393FB235141295C8F528B2055415D947E71FB235141D49FB82E8B2055413735C6FBFA2351417FCF0BB58A2055419FD4BEDEFA2351415BB621EC8A2055415FE17374FA235141576287C58B205541D3251B61FA2351417E6CB2F18B2055418FDA5294FA2351418E30EA5D8C205541713D0AD7FA235141AE47E1EA8C205541D7A3707DFA235141E17A149E8D205541D709E03BFA2351413B0638D78D205541EC51B83EF92351413D0AD7B38E20554114AE4731F82351415C8FC2158F205541B847C62CF7235141D94A7FFD8E20554165D17BF1F62351419A8E20458F2055418FC2F598F623514114AE47B18F20554166666626F62351410AD7A3A08F20554133E2F524F62351413FD980C38E2055412C858A11F62351417ADF53B68E2055414D8C99F2F5235141CDA455A18E205541861047D0F5235141782E0C8A8E2055417C43C8BBF5235141A353247C8E205541B315EDB1F5235141D46574758E205541F7979BACF5235141E1A6D8718E2055416F00B09DF4235141D659A4E38D205541CDCCCC3CF4235141EC51B8BE8D205541F6285C3FF3235141333333038D2055417FB73CE4F2235141B907249A8C2055412DD48757F223514122ADC40D8C2055414AAC49ECF12351416DFD45B48B205541CBA9B4A7F12351417017E9D38B205541C2F8DDFFF0235141AF7FC2358C205541DC3402FEF023514133DED7368C2055415A1CE3EAF02351415FB0FD418C205541BC54DDC2F0235141E4EF52598C205541C7F5583FF02351416520D1048D205541F6285C1FF02351413D0AD7338D20554170066518F02351414331E4348D2055413AE1D322EF23514179C6BE6E8D205541ECF83C4BEE235141D50EB9EA8D20554101463EF6ED235141A6B1991B8E205541CDCCCC5CED2351413D0AD7738E205541F6285C8FEC2351411F85EB218E20554106AD16E5EB235141E973CF868E20554167257726EB235141057AC2F78E2055414389E25DEA23514106E69B6E8F205541B844792FEA235141E6DD1B8A8F20554185EB5158E823514114AE47A19020554133333303E7235141F6285C2F91205541976DCEABE6235141F31F61479120554148E17AD4E5235141295C8F82912055410A4C13C5E4235141F86C5E249220554192E1BF71E323514126AFA65E93205541E17A61ACE2235141DFD6115F94205541C3F5289CE22351416666667694205541162D258EE22351415533568394205541FAB9641AE22351413BD02D0E95205541CDCCCC2CE2235141CDCCCCAC952055417653D040E023514110852AE39520554120953D73DF23514124A31113962055418FC2F5E8DE23514114AE4741962055416F9588E5DE23514185332E3D9620554172D141A1DE235141F5C380EE9520554163B37F05DD235141276292549720554175FE35A8DA235141A0934A6799205541935669A2DA2351419354606C9920554193C8FC18D9235141541D55C59A205541DFA919DBD9235141CF5163029B2055410B0EB316DB2351413BAC8CD19A205541AE47E18ADC235141EC51B87E9A205541AE47E13ADE235141713D0A579B20554166D1714CDE2351411CE1446D9B205541D86D13D1DE23514190371F159C2055414EB2BF1DDF2351414D4002299C20554193760CBBDF23514183C0FE489C2055414695F4BFDF235141E12DFE499C2055415EEDEBD2E0235141E6FDE7819C20554119C9A619E1235141E3F349909C20554193878267E123514146FF1EA09C2055415849E7A1E123514127C5FEAB9C205541D4B60FB6E2235141CB9E26E49C2055417B14AEB7E223514148E17AE49C20554157138942E2235141B6CAF8329D205541C9E9BAE8DF235141AA0235C69E20554145329F83DD23514168427574A0205541607F7F14DD235141A80B5BCFA02055413AACE0C0DC235141E780C113A1205541EE7C8652DC235141E5B9056EA1205541D1857DEEDB235141A978D9BFA1205541B7C39C67DA235141FFEC94FFA2205541B87F3A67DA235141384EE5FFA2205541C5CF7385D92351414CC193B8A32055415F4319A8D9235141D78E97FBA320554173E08F0CDC235141238D0CADA520554135A4D149DE2351416531C242A72055417390FA02DF235141948BC3ABA720554156FF0C01E0235141106FE95AA7205541CCFAA882E1235141E79033E0A6205541454BA420E32351418D94EAD0A520554185EB51F8E323514114AE4741A5205541549CEC9CE523514177161831A42055410963BD82E6235141C7EF4E54A320554149BB0C1FE7235141854BF095A22055416B68E83CE72351410F129371A2205541E16DCA3EE7235141A5929F4BA22055410AD7A360E6235141D7A3703DA1205541EADA3367E6235141B46177CDA0205541AE47E16AE6235141EC51B88EA02055419C7DE973E6235141E27FF78AA020554183A5DF6CE82351419A5422B99F205541C9DB2F90EA23514123D5B3D59E20554148E17AA4F2235141A4703D7A9B2055416360E50DF52351412466EB369B2055415A8BA414F523514167132F369B20554155DB40B0F723514136B58AEB9A205541295B04C0F723514148FF9AE89A205541EFAC32CAF92351413F2256879A205541D1C65E02FA235141CC7CDF7C9A205541011E3BACFC2351413917DCFD99205541E17A144E0224514114AE47F1982055419A999979042451419A9999799A2055417AD0F04105245141F2E6D83C9B205541A7ADB9AA052451413B5C629A9B2055412A450D0106245141FA8B03779B205541DDCD31FE072451419180B98D9A2055419E2221920A24514109A7575F99205541638CBF640B245141D3E74BF898205541D2F69B350B245141B8A50B509720554129FDAABA0B245141DC18C78597205541863962090E2451413728E95898205541259EEB0A152451417B492BD99A2055413D0AD75315245141333333F39A2055415D6F33A90B245141B71A1151962055419A9999890B2451411F85EB4196205541CB6AD5070C245141BC9096B494205541126705240C2451415E99DD5B9420554116CD524C0C245141AFA702DD93205541E17A145E0C24514152B81EA59320554130DC0BB20B245141BEB415699320554178346B830B2451414EB4AB5993205541F812EA540B245141E8C8AC6993205541EC9D7F8A0A245141B20105B493205541D7CC54410A2451416BD72FE59320554151F0D30B0A2451416242611C942055415C8FC2F5092451410AD7A390942055411F85EBF1082451411F85EBA1942055419322FCDA082451419322FC8A94205541BBC68F6A082451412193CE2094205541C604EFE00624514137FC7E0A942055413008C6C406245141F611920994205541464489A4062451413FDA82089420554148E17A8407245141A4703DFA9420554128A71F8407245141740BE2FB942055412AC3667D072451418AAB3B2D952055417B14AE4707245141295C8F1296205541AE47E15A05245141CDCCCC1C972055415C8FC2B5032451410AD7A3F0972055413BCEF0A6032451410D26B4F197205541D7A3702D02245141CDCCCC0C98205541B73452AD02245141F7C9E621962055410588177602245141C36B850D96205541F7FA115B00245141976908CD9620554114AE47E1FF235141000000C0982055412B4F14DFFF2351419F740AC298205541EC51B86EFF235141A4703D2A9920554193EAF16AFF235141C179562999205541C5E5CF05FF23514188EC2A11992055419AFE53E6FE23514167A8A409992055417468F4E3FE235141CF7213099920554102E96DDDFE235141C2358407992055412F5E8EDCFE235141E8C84E079920554102319B46FD23514159DDFD1D9920554116C753ADFC235141CD47FF43992055415C8FC225FC23514152B81EA599205541714134FFFB235141C4EF3FA399205541A4703D7AFB235141CDCCCC9C992055415BF6815FFB23514162692317992055419A999959FB2351419A9999F998205541BE0F84EBFB235141BC797EA0982055416A5D353DFC235141F5642A66982055414F04EC4AFC235141CC3EBFBA97205541BCB2584BFC23514163716A839720554102FD6A4BFC2351411BA11A7A97205541A4703D7AFB2351419A999969972055415B71677EFB235141168397E69620554123323382FB2351417CAA2A6F96205541BD51C918FB235141C27CCD2E9520554185EB5118FB235141D7A3702D952055413B663E70FB235141AD0359F191205541A4703D7AFB2351413333339391205541666D4F7DFD2351414ED67B6B9120554152B81E85FD235141713D0AC790205541CDCCCC0CFF23514152B81E859020554148E17A840324514148E17A64902055419A999979042451410000001091205541D7A370ED05245141EC51B82E92205541B3A47E1006245141FB0A6A539220554129E0C82D07245141AEE3DA5793205541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>758399 - 405515
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+010600000001000000010300000001000000B00000007475023398E6504197E3F46A65AC5441BE21E3249AE6504129E038126CAC54412843EEF199E650417A7007706CAC54413D0AD7939EE650417B14AED76FAC5441AEE6E1BDA5E65041DC8EA70973AC544152B81ED5AAE650415C8FC2C578AC5441AE47E1EAACE65041666666D678AC544160E2A965AFE6504129B968D978AC54418FC2F5B8B7E65041C3F528BC7CAC5441AE47E18ABBE65041666666E67DAC5441713D0AF7BBE6504114AE47417EAC54418FC2F508C7E650413D0AD7E381AC54418A6DE025CEE650415FA8564883AC54417B14AE97D7E65041C3F528EC84AC544152B81E15E1E6504185EB518885AC5441F6285C6FE6E650418FC2F50886AC544148E17AF4E8E650410000000086AC54415C8FC275EBE650413D0AD77386AC544166666616F6E65041F6285C8F89AC5441AE47E1CAF8E65041295C8FC289AC5441A4703D2AFBE6504185EB51D88AAC54415C8FC2F5FFE65041D7A3709D8BAC5441EC51B8EE01E75041AE47E16A8CAC54417B14AEA703E7504185EB51288EAC54418E69D27C05E750419B0A73B08CAC544171A8D16007E75041623082778CAC5441295C8FD209E75041CDCCCC1C8EAC5441666666460AE750410AD7A3308FAC54419A9999E90AE7504148E17AB490AC54419A9999390CE75041C3F528BC92AC5441A5672A790CE750412E8FBBEE92AC54417B14AEA70CE750417B14AEF793AC54419A9999E90BE75041E17A145E95AC5441420296480BE75041191E2F3A96AC544185EB51F808E750417B14AE5797AC54411F85EB3106E75041F6285CDF98AC54410000005004E7504148E17A5499AC5441333333C302E75041666666969BAC544185EB51F807E75041F6285CDF9BAC544152B81EE50AE75041EC51B8CE9BAC54410000006017E75041EC51B84E9BAC54411F85EB6129E75041000000909AAC5441E17A142E29E75041CDCCCC5CA2AC5441C3F528CC25E750418FC2F5E8B0AC544152B81EE51EE750417B14AE87BAAC5441000000801BE75041EC51B8AEC4AC5441333333C319E75041295C8FB2CCAC5441B81E854B17E75041C3F5285CDCAC5441713D0AB717E7504148E17A44E8AC5441A4703D7A18E750415C8FC205EBAC5441C3F5289C19E750417B14AE77EDAC5441666666261BE75041AE47E1CAF0AC5441C3F5284C1DE750415C8FC2E5F2AC544148E17AE41EE75041B81E859BF4AC5441333333931FE750415C8FC245F3AC5441EC51B89E21E75041295C8F42EEAC5441333333D323E750413D0AD7C3E7AC5441CDCCCC3C29E7504185EB51D8D6AC5441D7A370FD29E7504148E17AE4D3AC5441CDCCCC7C28E75041B81E85ABD3AC5441F6285C9F26E750417B14AE97D2AC544185EB519824E750418FC2F5F8D1AC54410000003023E75041EC51B8AED1AC5441A4703D4A23E75041E17A148ED0AC5441D7A3700D25E75041C3F5288CCAAC54415C8FC2E526E750411F85EB41C4AC544114AE47E128E75041295C8F82BDAC5441CDCCCCEC29E75041295C8FF2B9AC54418FC2F5482BE75041AE47E1BAB6AC54411F85EB512EE75041EC51B88EAFAC544185EB51D831E75041B81E853BA7AC5441E17A143E31E75041AE47E1BA9FAC54418FC2F5C830E7504148E17A049AAC54413333336330E75041713D0A0795AC5441EC51B80E30E7504185EB51E890AC5441AE47E13A2CE750415C8FC2158FAC5441A4703D4A29E75041EC51B8AE8DAC5441CDCCCC0C30E750419A99997983AC54415C8FC2F527E75041D7A370BD81AC5441E17A14AE27E75041B81E85EB80AC5441B81E858B23E75041EC51B8AE80AC544185EB512818E7504114AE470181AC5441AE47E14A0DE75041AE47E12A82AC5441666666B604E750418FC2F56883AC5441EC51B8EEFBE65041295C8F9284AC54415C8FC285F7E65041F6285CCF83AC5441B81E856BEEE65041D7A370CD80AC544185EB5168E9E65041713D0AD77FAC5441F6285C8FE5E65041CDCCCCCC7FAC5441CDCCCCCCD4E65041295C8FC27FAC54418FC2F518CBE65041D7A3703D7FAC5441F6285CAFC5E6504185EB51987DAC5441295C8FD2BBE650417B14AEE778AC5441CDCCCC8CAEE650413333337372AC5441B81E850BA4E65041000000706DAC5441D7A370FD9CE65041B81E85AB69AC5441D7A370DD9AE650411F85EBF167AC54410AD7A3F098E65041333333B365AC54416666663696E65041D7A370ED60AC544185EB516893E65041333333835AAC5441EC51B8AE91E650410000008054AC544148E17A1491E65041666666A650AC5441713D0AA790E65041713D0AE749AC5441AE47E18A91E65041CDCCCCCC4AAC54415C8FC2B591E65041295C8F424BAC54410AD7A3C091E65041713D0A474EAC5441E17A14DE91E650410AD7A3C050AC544185EB519892E65041E17A145E54AC54413333330394E650413D0AD78359AC54410AD7A3C096E65041713D0AA75FAC5441B81E85EB99E650411F85EB7165AC5441CDCCCC8C9DE65041713D0A1769AC5441295C8FA29DE650418FC2F5C867AC5441D7A3708D9DE650418FC2F59866AC5441D7A370AD9EE650410000006067AC5441AE47E16A9EE65041EC51B8FE65AC5441D7A3708D9DE650416666668664AC54418FC2F5089DE65041666666C65FAC54411F85EB419CE65041E17A144E5EAC544152B81E559CE650418FC2F5885BAC5441C3F5280C9BE650410AD7A3D059AC544185EB51389BE650410000000058AC5441A4703DFA98E650415C8FC22555AC5441A4703DFA98E650418FC2F52853AC54413333331397E650416666661651AC54411F85EB6196E65041C3F5285C4FAC54413333332394E650418FC2F5784BAC5441C3F5285C93E65041D7A3700D49AC54410AD7A31092E6504185EB51D847AC544185EB519890E650419A99996947AC54417B14AEC78EE65041713D0A9740AC5441C3F5286C90E65041B81E85DB3EAC54410AD7A3208FE650411F85EB213DAC54419A9999398DE650417B14AE673BAC5441CDCCCC8C8AE650418FC2F50838AC54415C8FC2B585E6504114AE47A133AC54410AD7A35082E65041E17A14EE32AC5441A4703D7A81E65041B81E856B32AC54419A9999A97FE65041E17A14AE32AC54413D0AD7A37CE65041D7A370FD31AC54410AD7A3B07BE65041713D0AE731AC5441333333237BE650410000005031AC5441D7A3701D78E6504152B81E3531AC5441AE47E16A78E65041B81E85AB31AC54415C8FC2857AE650410AD7A3D032AC5441D7A370CD7EE65041F6285CFF33AC544114AE47B17EE65041713D0A6734AC5441333333437AE650418FC2F53833AC5441EC51B84E78E650418FC2F56832AC54418FC2F5E877E65041F6285CCF31AC544148E17A4473E65041B81E851B32AC54413333339370E650418FC2F50831AC54419A9999796EE650411F85EBE12DAC54418FC2F5186CE65041B81E85CB2BAC5441D7A3707D68E65041666666962AAC54415C8FC2A564E6504148E17A7428AC5441B81E85AB61E650413D0AD76325AC54417F461BFF5EE650412C8F48DC28AC5441333333535FE65041C3F5285C2AAC5441CDCCCC2C60E65041A4703DBA2CAC54411E8812C964E650411666F4EE2AAC54410CF545346FE6504161D1CFB134AC5441B81E852B74E650413333330339AC54413333337376E650417B14AEB739AC5441EC51B8BE77E650413D0AD7833AAC54417B14AEE77AE650415C8FC2753CAC54410AD7A3807CE65041000000703DAC5441E17A14BE7DE65041713D0A173EAC54413943D30D87E65041AA2048F942AC5441706D1C3489E6504111108C9C44AC5441FD608F6E8AE65041CD1ABBB546AC5441FC0412328DE65041A3BA0EE249AC5441332F5B588FE650418063337B52AC5441741A706491E65041A053EA5C5AAC5441F34C17B992E65041FE2FA1B85AAC54417475023398E6504197E3F46A65AC5441
+</a>
+
+<b>
+0106000000010000000103000000010000009E000000295C8FD209E75041CDCCCC1C8EAC544129ED4B460AE75041F4CC64308FAC5441B1FDFF3F18E75041E4D9A39091AC54411E33332318E750417CA070CD96AC5441D142805D17E75041D55585369BAC54414D87EB6129E750419AFCFF8F9AAC54412C7B142E29E7504101CCCC5CA2AC5441165B33FE28E750412E66B82AA3AC5441C3F528CC25E750418FC2F5E8B0AC5441A2B2A1EE21E75041FC4A104CB6AC5441C8B81EE51EE750410816AE87BAAC54417CF183EC1DE75041122A1D6FBDAC5441000000801BE75041EC51B8AEC4AC54419CE7BD7F1AE75041567BD34CC9AC5441A23533C319E75041865A8FB2CCAC5441DC20854B17E7504190F7285CDCAC54412DB1B29717E75041A1BEE5CBE4AC5441713D0AB717E7504148E17A44E8AC54414340194518E750415610C145EAAC5441C4703D7A18E75041858EC205EBAC5441F3F8289C19E750410514AE77EDAC544178FB439C19E75041666CE877EDAC5441666666261BE75041AE47E1CAF0AC5441D4FF284C1DE75041249AC2E5F2AC5441A9017B091FE7504160392553F4AC5441333333931FE750415C8FC245F3AC5441EC51B89E21E75041295C8F42EEAC5441019C262D23E750414C6BF3ACE9AC5441DD3233D323E750417A08D7C3E7AC5441B0D1CD3C29E75041DCEB4DD8D6AC5441D7A370FD29E7504148E17AE4D3AC5441CDCCCC7C28E75041B81E85ABD3AC5441F6285C9F26E750417B14AE97D2AC544185EB519824E750418FC2F5F8D1AC54410000003023E75041EC51B8AED1AC544138703D4A23E750412979148ED0AC5441AF051EF623E7504102073C44CEAC5441D7A3700D25E75041C3F5288CCAAC54415C8FC2E526E750411F85EB41C4AC5441DB9E877627E75041350E3155C2AC544192AC47E128E750411D5B8F82BDAC5441217D8B8B29E75041A18E1C3EBBAC5441CDCCCCEC29E75041295C8FF2B9AC54418FC2F5482BE75041AE47E1BAB6AC54417F7A7F302CE75041E5F4B197B4AC5441CD80EB512EE750414554B88EAFAC54414FD7687530E75041057AB681AAAC544185EB51D831E75041B81E853BA7AC5441E17A143E31E75041AE47E1BA9FAC54418FC2F5C830E7504148E17A049AAC54416A7EE47A30E750416CA8763096AC5441E832336330E750411E3F0A0795AC5441FF50B80E30E7504146EC51E890AC5441E017891B2FE75041A182867490AC5441AE47E13A2CE750415C8FC2158FAC5441A4703D4A29E75041EC51B8AE8DAC54418A0C654A29E75041C8827CAE8DAC54412B0000A030E750416347E19A82AC544139BBF12B31E7504140EC1AE381AC54411F85EB212FE750416666668681AC54412E7E85892DE750410D17146181AC54410F713FE129E75041E4A6840B81AC5441E17A14AE27E75041B81E85EB80AC54418816D39723E75041473E6DAF80AC544126EC512818E75041E0AE470181AC54415474FDF614E7504132ECBA5881AC5441AE47E14A0DE75041AE47E12A82AC5441654D112508E75041DB90B7E982AC5441DD6666B604E75041DCC3F56883AC5441ED3380B1FCE650410F39C57884AC54419F50B8EEFBE65041345C8F9284AC54415C8FC285F7E65041F6285CCF83AC5441B81E856BEEE65041D7A370CD80AC544185EB5168E9E65041713D0AD77FAC5441AE77EAE3E8E65041C3D9A9D57FAC5441D02B5C8FE5E650413ACECCCC7FAC54417CF9FB65D5E65041CAF3ECC27FAC544152C9CCCCD4E650411E5C8FC27FAC544152C4F518CBE65041A3A4703D7FAC544195285CAFC5E6504126EC51987DAC54412C231E1DC3E65041E9E34C5F7CAC5441295C8FD2BBE650417B14AEE778AC5441CDCCCC8CAEE650413333337372AC5441877FB746ACE650413EF2745D71AC54419F1C850BA4E65041AD0100706DAC5441DF30A87C9EE6504151392A786AAC5441D7A370FD9CE65041B81E85AB69AC5441B53861089CE65041B2B896E468AC5441C2A370DD9AE650414B86EBF167AC5441B3D5A3F098E65041A93333B365AC54416E64663696E65041AFA570ED60AC544145EB516893E65041D43333835AAC5441D964453693E650412F0CC1D459AC5441EC51B8AE91E650410000008054AC544148E17A1491E65041666666A650AC5441B2516DC690E65041D0EB70D64BAC5441E53C0AA790E65041073E0AE749AC544118EA51F88DE65041ADAF473147AC5441BD15AE8789E65041530AD78339AC54411B3D0A577AE65041525B8F8235AC54418FC2F5E877E65041F6285CCF31AC5441D0DF7A4473E65041221E851B32AC54414135339370E65041D5C5F50831AC544138D751256EE650411481EB972DAC5441F0FF790F6CE65041708058C82BAC54414C5EC7446CE6504164B3BFF131AC5441BC4746296EE65041713EAAB733AC5441260B4C2071E650418941A45D36AC54413708D04073E650413F5D1D3738AC54415F1B1AB275E65041E5D8F87B39AC54413333337376E650417B14AEB739AC5441DC50CCBB77E650417F650A823AAC5441583B0A677AE650410192C2C53BAC544125DAA35080E650411A82EBB13EAC54410CD8A3E083E65041FBDF7A7440AC54418709D77386E65041D92A5C9F41AC5441841F850B88E6504125D4A31043AC544142D6AEB588E65041AB90383C44AC5441746D1C3489E650410E108C9C44AC5441FC608F6E8AE65041C91ABBB546AC5441FB0412328DE65041A3BA0EE249AC5441302F5B588FE650418563337B52AC5441FAD18C6A90E650410CE3D89A56AC54412ADE23E191E65041B12F7D7E5AAC5441EE4C17B992E65041FB2FA1B85AAC54417075023398E6504197E3F46A65AC5441C321E3249AE6504126E038126CAC54412A43EEF199E65041777007706CAC54410BB613629DE65041ED35F1F66EAC544110A6707D9EE650413183EBB16FAC5441571CEEFC9FE65041747BB97870AC5441B0E6E1BDA5E65041DA8EA70973AC54416A356063A7E65041E23278E474AC54412DA4702DABE65041089C992977AC5441D624CF5DAEE65041BE8728D878AC54415CE2A965AFE6504127B968D978AC544159EE14BEB6E65041ADF910477CAC54411FF60762B8E65041FDE5B8EF7CAC5441AE47E18ABBE65041666666E67DAC5441713D0AF7BBE6504114AE47417EAC54418FC2F508C7E650413D0AD7E381AC5441EE170386C7E65041C19952FC81AC5441CFEA5188CFE650410DEA511883AC5441873233F3D8E65041E599996984AC54417EB94171DCE65041935FF73B85AC544152B81E15E1E6504185EB518885AC5441F6285C6FE6E650418FC2F50886AC544148E17AF4E8E650410000000086AC54415C8FC275EBE650413D0AD77386AC544166666616F6E65041F6285C8F89AC5441AE47E1CAF8E65041295C8FC289AC5441A4703D2AFBE6504185EB51D88AAC54415C8FC2F5FFE65041D7A3709D8BAC5441EC51B8EE01E75041AE47E16A8CAC54417B14AEA703E7504185EB51288EAC54418F69D27C05E75041990A73B08CAC544174A8D16007E75041673082778CAC5441295C8FD209E75041CDCCCC1C8EAC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>758399 - 410251
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+010600000001000000010300000001000000B00000007475023398E6504197E3F46A65AC5441BE21E3249AE6504129E038126CAC54412843EEF199E650417A7007706CAC54413D0AD7939EE650417B14AED76FAC5441AEE6E1BDA5E65041DC8EA70973AC544152B81ED5AAE650415C8FC2C578AC5441AE47E1EAACE65041666666D678AC544160E2A965AFE6504129B968D978AC54418FC2F5B8B7E65041C3F528BC7CAC5441AE47E18ABBE65041666666E67DAC5441713D0AF7BBE6504114AE47417EAC54418FC2F508C7E650413D0AD7E381AC54418A6DE025CEE650415FA8564883AC54417B14AE97D7E65041C3F528EC84AC544152B81E15E1E6504185EB518885AC5441F6285C6FE6E650418FC2F50886AC544148E17AF4E8E650410000000086AC54415C8FC275EBE650413D0AD77386AC544166666616F6E65041F6285C8F89AC5441AE47E1CAF8E65041295C8FC289AC5441A4703D2AFBE6504185EB51D88AAC54415C8FC2F5FFE65041D7A3709D8BAC5441EC51B8EE01E75041AE47E16A8CAC54417B14AEA703E7504185EB51288EAC54418E69D27C05E750419B0A73B08CAC544171A8D16007E75041623082778CAC5441295C8FD209E75041CDCCCC1C8EAC5441666666460AE750410AD7A3308FAC54419A9999E90AE7504148E17AB490AC54419A9999390CE75041C3F528BC92AC5441A5672A790CE750412E8FBBEE92AC54417B14AEA70CE750417B14AEF793AC54419A9999E90BE75041E17A145E95AC5441420296480BE75041191E2F3A96AC544185EB51F808E750417B14AE5797AC54411F85EB3106E75041F6285CDF98AC54410000005004E7504148E17A5499AC5441333333C302E75041666666969BAC544185EB51F807E75041F6285CDF9BAC544152B81EE50AE75041EC51B8CE9BAC54410000006017E75041EC51B84E9BAC54411F85EB6129E75041000000909AAC5441E17A142E29E75041CDCCCC5CA2AC5441C3F528CC25E750418FC2F5E8B0AC544152B81EE51EE750417B14AE87BAAC5441000000801BE75041EC51B8AEC4AC5441333333C319E75041295C8FB2CCAC5441B81E854B17E75041C3F5285CDCAC5441713D0AB717E7504148E17A44E8AC5441A4703D7A18E750415C8FC205EBAC5441C3F5289C19E750417B14AE77EDAC5441666666261BE75041AE47E1CAF0AC5441C3F5284C1DE750415C8FC2E5F2AC544148E17AE41EE75041B81E859BF4AC5441333333931FE750415C8FC245F3AC5441EC51B89E21E75041295C8F42EEAC5441333333D323E750413D0AD7C3E7AC5441CDCCCC3C29E7504185EB51D8D6AC5441D7A370FD29E7504148E17AE4D3AC5441CDCCCC7C28E75041B81E85ABD3AC5441F6285C9F26E750417B14AE97D2AC544185EB519824E750418FC2F5F8D1AC54410000003023E75041EC51B8AED1AC5441A4703D4A23E75041E17A148ED0AC5441D7A3700D25E75041C3F5288CCAAC54415C8FC2E526E750411F85EB41C4AC544114AE47E128E75041295C8F82BDAC5441CDCCCCEC29E75041295C8FF2B9AC54418FC2F5482BE75041AE47E1BAB6AC54411F85EB512EE75041EC51B88EAFAC544185EB51D831E75041B81E853BA7AC5441E17A143E31E75041AE47E1BA9FAC54418FC2F5C830E7504148E17A049AAC54413333336330E75041713D0A0795AC5441EC51B80E30E7504185EB51E890AC5441AE47E13A2CE750415C8FC2158FAC5441A4703D4A29E75041EC51B8AE8DAC5441CDCCCC0C30E750419A99997983AC54415C8FC2F527E75041D7A370BD81AC5441E17A14AE27E75041B81E85EB80AC5441B81E858B23E75041EC51B8AE80AC544185EB512818E7504114AE470181AC5441AE47E14A0DE75041AE47E12A82AC5441666666B604E750418FC2F56883AC5441EC51B8EEFBE65041295C8F9284AC54415C8FC285F7E65041F6285CCF83AC5441B81E856BEEE65041D7A370CD80AC544185EB5168E9E65041713D0AD77FAC5441F6285C8FE5E65041CDCCCCCC7FAC5441CDCCCCCCD4E65041295C8FC27FAC54418FC2F518CBE65041D7A3703D7FAC5441F6285CAFC5E6504185EB51987DAC5441295C8FD2BBE650417B14AEE778AC5441CDCCCC8CAEE650413333337372AC5441B81E850BA4E65041000000706DAC5441D7A370FD9CE65041B81E85AB69AC5441D7A370DD9AE650411F85EBF167AC54410AD7A3F098E65041333333B365AC54416666663696E65041D7A370ED60AC544185EB516893E65041333333835AAC5441EC51B8AE91E650410000008054AC544148E17A1491E65041666666A650AC5441713D0AA790E65041713D0AE749AC5441AE47E18A91E65041CDCCCCCC4AAC54415C8FC2B591E65041295C8F424BAC54410AD7A3C091E65041713D0A474EAC5441E17A14DE91E650410AD7A3C050AC544185EB519892E65041E17A145E54AC54413333330394E650413D0AD78359AC54410AD7A3C096E65041713D0AA75FAC5441B81E85EB99E650411F85EB7165AC5441CDCCCC8C9DE65041713D0A1769AC5441295C8FA29DE650418FC2F5C867AC5441D7A3708D9DE650418FC2F59866AC5441D7A370AD9EE650410000006067AC5441AE47E16A9EE65041EC51B8FE65AC5441D7A3708D9DE650416666668664AC54418FC2F5089DE65041666666C65FAC54411F85EB419CE65041E17A144E5EAC544152B81E559CE650418FC2F5885BAC5441C3F5280C9BE650410AD7A3D059AC544185EB51389BE650410000000058AC5441A4703DFA98E650415C8FC22555AC5441A4703DFA98E650418FC2F52853AC54413333331397E650416666661651AC54411F85EB6196E65041C3F5285C4FAC54413333332394E650418FC2F5784BAC5441C3F5285C93E65041D7A3700D49AC54410AD7A31092E6504185EB51D847AC544185EB519890E650419A99996947AC54417B14AEC78EE65041713D0A9740AC5441C3F5286C90E65041B81E85DB3EAC54410AD7A3208FE650411F85EB213DAC54419A9999398DE650417B14AE673BAC5441CDCCCC8C8AE650418FC2F50838AC54415C8FC2B585E6504114AE47A133AC54410AD7A35082E65041E17A14EE32AC5441A4703D7A81E65041B81E856B32AC54419A9999A97FE65041E17A14AE32AC54413D0AD7A37CE65041D7A370FD31AC54410AD7A3B07BE65041713D0AE731AC5441333333237BE650410000005031AC5441D7A3701D78E6504152B81E3531AC5441AE47E16A78E65041B81E85AB31AC54415C8FC2857AE650410AD7A3D032AC5441D7A370CD7EE65041F6285CFF33AC544114AE47B17EE65041713D0A6734AC5441333333437AE650418FC2F53833AC5441EC51B84E78E650418FC2F56832AC54418FC2F5E877E65041F6285CCF31AC544148E17A4473E65041B81E851B32AC54413333339370E650418FC2F50831AC54419A9999796EE650411F85EBE12DAC54418FC2F5186CE65041B81E85CB2BAC5441D7A3707D68E65041666666962AAC54415C8FC2A564E6504148E17A7428AC5441B81E85AB61E650413D0AD76325AC54417F461BFF5EE650412C8F48DC28AC5441333333535FE65041C3F5285C2AAC5441CDCCCC2C60E65041A4703DBA2CAC54411E8812C964E650411666F4EE2AAC54410CF545346FE6504161D1CFB134AC5441B81E852B74E650413333330339AC54413333337376E650417B14AEB739AC5441EC51B8BE77E650413D0AD7833AAC54417B14AEE77AE650415C8FC2753CAC54410AD7A3807CE65041000000703DAC5441E17A14BE7DE65041713D0A173EAC54413943D30D87E65041AA2048F942AC5441706D1C3489E6504111108C9C44AC5441FD608F6E8AE65041CD1ABBB546AC5441FC0412328DE65041A3BA0EE249AC5441332F5B588FE650418063337B52AC5441741A706491E65041A053EA5C5AAC5441F34C17B992E65041FE2FA1B85AAC54417475023398E6504197E3F46A65AC5441
+</a>
+
+<b>
+0106000000010000000103000000010000009E000000295C8FD209E75041CDCCCC1C8EAC544129ED4B460AE75041F4CC64308FAC5441B1FDFF3F18E75041E4D9A39091AC54411E33332318E750417CA070CD96AC5441D142805D17E75041D55585369BAC54414D87EB6129E750419AFCFF8F9AAC54412C7B142E29E7504101CCCC5CA2AC5441165B33FE28E750412E66B82AA3AC5441C3F528CC25E750418FC2F5E8B0AC5441A2B2A1EE21E75041FC4A104CB6AC5441C8B81EE51EE750410816AE87BAAC54417CF183EC1DE75041122A1D6FBDAC5441000000801BE75041EC51B8AEC4AC54415137977D1AE75041E2C7BF56C9AC5441A23533C319E75041865A8FB2CCAC5441DC20854B17E7504190F7285CDCAC54412DB1B29717E75041A1BEE5CBE4AC5441713D0AB717E7504148E17A44E8AC54414340194518E750415610C145EAAC5441C4703D7A18E75041858EC205EBAC5441F3F8289C19E750410514AE77EDAC544178FB439C19E75041666CE877EDAC5441666666261BE75041AE47E1CAF0AC5441D4FF284C1DE75041249AC2E5F2AC5441A9017B091FE7504160392553F4AC5441333333931FE750415C8FC245F3AC5441EC51B89E21E75041295C8F42EEAC5441019C262D23E75041476BF3ACE9AC5441DD3233D323E750417A08D7C3E7AC5441B0D1CD3C29E75041DCEB4DD8D6AC5441D7A370FD29E7504148E17AE4D3AC5441CDCCCC7C28E75041B81E85ABD3AC5441F6285C9F26E750417B14AE97D2AC544185EB519824E750418FC2F5F8D1AC54410000003023E75041EC51B8AED1AC544138703D4A23E750412979148ED0AC5441AF051EF623E7504102073C44CEAC5441D7A3700D25E75041C3F5288CCAAC54415C8FC2E526E750411F85EB41C4AC5441DB9E877627E75041350E3155C2AC544192AC47E128E750411D5B8F82BDAC5441217D8B8B29E75041A18E1C3EBBAC5441CDCCCCEC29E75041295C8FF2B9AC54418FC2F5482BE75041AE47E1BAB6AC54417F7A7F302CE75041E5F4B197B4AC5441CD80EB512EE750414554B88EAFAC54414FD7687530E75041057AB681AAAC544185EB51D831E75041B81E853BA7AC5441E17A143E31E75041AE47E1BA9FAC54418FC2F5C830E7504148E17A049AAC544140CECF7930E75041BF43E52296AC5441E832336330E750411E3F0A0795AC5441FF50B80E30E7504146EC51E890AC5441E117891B2FE75041A682867490AC5441AE47E13A2CE750415C8FC2158FAC5441A4703D4A29E75041EC51B8AE8DAC54418A0C654A29E75041C8827CAE8DAC54412B0000A030E750416347E19A82AC544139BBF12B31E7504140EC1AE381AC54411F85EB212FE750416666668681AC54412F7E85892DE750410E17146181AC54410F713FE129E75041E4A6840B81AC5441E17A14AE27E75041B81E85EB80AC54418816D39723E75041473E6DAF80AC544126EC512818E75041E0AE470181AC5441CC9DFEFF14E750412F48C45781AC5441AE47E14A0DE75041AE47E12A82AC5441654D112508E75041DB90B7E982AC5441DD6666B604E75041DCC3F56883AC5441ED3380B1FCE650410F39C57884AC54419F50B8EEFBE65041345C8F9284AC54415C8FC285F7E65041F6285CCF83AC5441B81E856BEEE65041D7A370CD80AC544185EB5168E9E65041713D0AD77FAC5441AE77EAE3E8E65041C3D9A9D57FAC5441D02B5C8FE5E650413ACECCCC7FAC544180F9FB65D5E65041CAF3ECC27FAC544152C9CCCCD4E650411E5C8FC27FAC544152C4F518CBE65041A3A4703D7FAC544195285CAFC5E6504126EC51987DAC54412C231E1DC3E65041E9E34C5F7CAC5441295C8FD2BBE650417B14AEE778AC5441CDCCCC8CAEE650413333337372AC5441AF434B3AACE65041607C875771AC54419F1C850BA4E65041AD0100706DAC54418A8C8D839EE6504128F5D87B6AAC5441D7A370FD9CE65041B81E85AB69AC5441B53861089CE65041B4B896E468AC5441C2A370DD9AE650414B86EBF167AC5441B3D5A3F098E65041A93333B365AC54416E64663696E65041AFA570ED60AC544145EB516893E65041D43333835AAC5441D964453693E650412F0CC1D459AC5441EC51B8AE91E650410000008054AC544148E17A1491E65041666666A650AC5441B2516DC690E65041D0EB70D64BAC5441E53C0AA790E65041073E0AE749AC544118EA51F88DE65041ADAF473147AC5441BD15AE8789E65041530AD78339AC54411B3D0A577AE65041525B8F8235AC54418FC2F5E877E65041F6285CCF31AC5441D0DF7A4473E65041221E851B32AC54414135339370E65041D5C5F50831AC544138D751256EE650411881EB972DAC5441ECFF790F6CE65041758058C82BAC54414E5EC7446CE650415FB3BFF131AC5441B84746296EE650416D3EAAB733AC5441260B4C2071E650418941A45D36AC54413608D04073E650413E5D1D3738AC54415F1B1AB275E65041E5D8F87B39AC54413333337376E650417B14AEB739AC5441DC50CCBB77E650417F650A823AAC5441583B0A677AE650410192C2C53BAC544125DAA35080E650411A82EBB13EAC54410CD8A3E083E65041FBDF7A7440AC54418709D77386E65041D92A5C9F41AC5441841F850B88E6504125D4A31043AC544142D6AEB588E65041AB90383C44AC5441746D1C3489E650410E108C9C44AC5441FC608F6E8AE65041C91ABBB546AC5441FB0412328DE65041A3BA0EE249AC5441302F5B588FE650418563337B52AC544105D28C6A90E6504139E3D89A56AC54412ADE23E191E65041B12F7D7E5AAC5441EE4C17B992E65041FB2FA1B85AAC54417075023398E6504197E3F46A65AC5441C321E3249AE6504126E038126CAC54412A43EEF199E65041777007706CAC54410BB613629DE65041ED35F1F66EAC544110A6707D9EE650413183EBB16FAC54410A1CEEFC9FE65041517BB97870AC5441B0E6E1BDA5E65041DA8EA70973AC54416A356063A7E65041E23278E474AC54412DA4702DABE65041089C992977AC5441D624CF5DAEE65041BE8728D878AC54415CE2A965AFE6504127B968D978AC544159EE14BEB6E65041ADF910477CAC544123F60762B8E65041FBE5B8EF7CAC5441AE47E18ABBE65041666666E67DAC5441713D0AF7BBE6504114AE47417EAC54418FC2F508C7E650413D0AD7E381AC5441ED170386C7E65041C09952FC81AC5441CFEA5188CFE650410DEA511883AC5441873233F3D8E65041E599996984AC54417EB94171DCE65041935FF73B85AC544152B81E15E1E6504185EB518885AC5441F6285C6FE6E650418FC2F50886AC544148E17AF4E8E650410000000086AC54415C8FC275EBE650413D0AD77386AC544166666616F6E65041F6285C8F89AC5441AE47E1CAF8E65041295C8FC289AC5441A4703D2AFBE6504185EB51D88AAC54415C8FC2F5FFE65041D7A3709D8BAC5441EC51B8EE01E75041AE47E16A8CAC54417B14AEA703E7504185EB51288EAC54418F69D27C05E75041990A73B08CAC544174A8D16007E75041673082778CAC5441295C8FD209E75041CDCCCC1C8EAC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>362634 - 4440008
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -670 </desc>
+<a>
+01060000000100000001030000000200000017000000000000F00EA45041C3F528AC7A5E5441CDCCCC6C0EA450417B14AE77865E54417B14AED70FA450418FC2F5B8985E5441A4703D0A10A45041CDCCCCBC9F5E5441C3F528CC0FA450411F85EB81A75E54410AD7A3A00FA45041CDCCCC6CB45E5441D7A3705D0FA45041AE47E10ABD5E5441F6285CFF16A4504185EB5138C05E54417B14AEB713A45041B81E85BBC75E54410AD7A32011A450415C8FC225CF5E54411F85EB111BA450410AD7A3C0D25E5441F6285C2F1EA45041AE47E18AD25E544148E17A2421A45041CDCCCCECCD5E5441EC51B89E29A4504152B81E75BB5E5441EC51B8BE2DA4504148E17AC4AF5E5441C3F5283C31A4504148E17AC4A65E5441A4703DDA37A450415C8FC2B5955E5441F6285CFF3AA4504185EB51D88F5E54417B14AE073EA45041333333B38B5E5441D7A3706D44A450411F85EBA1855E54413D0AD7D344A4504114AE4731845E5441000000000FA45041E17A144E7A5E5441000000F00EA45041C3F528AC7A5E544105000000F6285C5F25A450419A9999B9A65E5441A4703D0A26A45041B81E85FBA65E5441D7A370CD25A450419A999999A75E5441295C8F2225A4504185EB5158A75E5441F6285C5F25A450419A9999B9A65E5441
+</a>
+
+<b>
+0106000000010000000103000000020000001B0000005F90B0FE28A45041446EBBD1BC5E5441EC51B89E29A4504152B81E75BB5E5441EC51B8BE2DA4504148E17AC4AF5E5441C3F5283C31A4504148E17AC4A65E5441A4703DDA37A450415C8FC2B5955E5441F6285CFF3AA4504185EB51D88F5E54417B14AE073EA45041333333B38B5E5441D7A3706D44A450411F85EBA1855E54413D0AD7D344A4504114AE4731845E5441000000000FA45041E17A144E7A5E5441000000F00EA45041C3F528AC7A5E5441CDCCCC6C0EA450417B14AE77865E54417B14AED70FA450418FC2F5B8985E5441A4703D0A10A45041CDCCCCBC9F5E5441C3F528CC0FA450411F85EB81A75E54410AD7A3A00FA45041CDCCCC6CB45E5441D7A3705D0FA45041AE47E10ABD5E5441F6285CFF16A4504185EB5138C05E54417B14AEB713A45041B81E85BBC75E54410AD7A32011A450415C8FC225CF5E54411F85EB111BA450410AD7A3C0D25E5441F6285C2F1EA45041AE47E18AD25E544148E17A2421A45041CDCCCCECCD5E5441A1BE46E727A4504172F36832BF5E54410A232FA718A45041C1F7870FBA5E544193D2F28719A4504109D56DA5B75E54415F90B0FE28A45041446EBBD1BC5E5441050000000AD7A38024A450418FC2F568A35E5441C3F5282C29A4504114AE4741A55E5441E17A145E27A45041295C8FF2A95E5441C3F528BC22A450418FC2F518A85E54410AD7A38024A450418FC2F568A35E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>371416 - 354253
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+010600000001000000010300000002000000460000001F85EB1159C95041D7A3705DC6A1544152B81E7561C95041D7A370EDC3A154419A99991979C95041AE47E1EABFA154413333337382C9504133333383B9A1544148E17AD499C950411F85EB01B1A15441000000A0A4C9504152B81E15ADA154413D0AD703BBC950418FC2F528A3A15441713D0AC7C4C950411F85EB319EA1544185EB5108DCC950417B14AE9792A154419A9999F9E9C95041F6285CCF89A15441EC51B86EEDC950417B14AE3788A154418FC2F588EEC950413D0AD76381A15441E17A143EEFC95041333333737CA15441D7A3705DE5C95041B81E85AB86A1544100000040DFC950419A9999E98BA154411F85EB71DCC9504152B81ED588A154417B14AE57E9C95041F6285C6F7AA15441CDCCCC4CEAC950418FC2F5E877A1544166666696E2C950417B14AE8774A154413D0AD7B3D9C950410AD7A3A070A15441EC51B85ECEC950419A9999F96CA15441E17A146EC8C95041B81E858B7BA1544114AE4731CBC950410000000086A1544152B81E65C7C95041EC51B8CE8AA15441AE47E14AC1C950413D0AD79395A154411F85EB11BAC950410AD7A3B09BA1544166666656B4C95041AE47E1AA9EA15441333333A3A9C95041000000009FA15441AE47E12A9FC95041713D0A47A2A15441F6285C9F99C9504185EB5188A1A154419A9999F999C9504152B81E05A0A154418FC2F5F897C950411F85EBB19FA15441000000F09BC95041C3F528FC96A154411F85EB119FC9504148E17AC48DA154413D0AD713A1C950417B14AE6785A15441B81E858BA0C950415C8FC21585A1544166666616A4C95041C3F528DC78A15441E17A149EA8C95041D7A370DD61A15441B81E852BA5C95041A4703D4A5DA15441295C8F6283C95041CDCCCCFC53A15441B81E85BB7EC95041713D0A2752A154413D0AD72378C95041E17A148E4FA1544152B81E5575C95041C3F5283C4CA1544114AE47416EC95041C3F528CC4BA15441B81E854B69C9504114AE47814BA1544148E17AF467C9504185EB51A84CA15441295C8FE267C950411F85EBF14DA15441E17A14CE66C950413333338359A1544152B81EB570C95041333333335AA15441295C8F8271C95041713D0A576CA1544152B81E4570C950417B14AE476CA154416666667664C95041E17A14CE6BA15441D7A370AD5CC95041295C8FD26AA1544114AE47615CC950416666669668A15441F6285CFF52C95041B81E856B68A154413D0AD75346C95041E17A143E69A154417B14AE8737C950413D0AD7D372A1544148E17A5438C950417B14AE3776A154418FC2F5283AC95041295C8F6282A154417B14AE573BC95041C3F5287C85A1544148E17A044BC95041295C8FF29AA15441333333F352C95041AE47E12AA1A15441333333435FC95041EC51B86EB0A1544148E17A445FC95041C3F528ECB2A154411F85EBA158C950418FC2F5E8B4A154419A9999D958C95041666666D6BFA15441AE47E15A5DC950415C8FC215BFA15441B81E850B5DC950411F85EB61C2A154413D0AD7035CC95041F6285C5FC5A154411F85EB1159C95041D7A3705DC6A154410A000000D7A3703DD0C95041A4703DCA8FA154413D0AD7B3D2C9504185EB514890A15441713D0A07D4C950411F85EBB18FA15441E17A146ED4C95041E17A144E90A15441333333E3CEC95041C3F5287C94A1544166666686CEC95041F6285CEF93A154417B14AE97CFC950417B14AE0793A1544100000040CDC95041000000008FA154413D0AD723CFC95041666666E68DA15441D7A3703DD0C95041A4703DCA8FA15441
+</a>
+
+<b>
+0106000000010000000103000000020000006900000042660040DFC95041938299E98BA154418C7F186DDEC9504151D004028BA1544121A6EB71DCC95041F42120D588A154417B14AE57E9C95041F6285C6F7AA15441B770B6FDE9C950418DF184B978A15441502ECC4CEAC950411A7DF5E877A1544166666696E2C950417B14AE8774A15441C04A93C5E0C9504193A484BB73A1544135A0D6B3D9C950415A3FA4A070A154413376B85ECEC95041CEA599F96CA15441A70F156EC8C95041638D868B7BA15441F1D44831CBC95041CC4FFFFF85A1544192072065C7C95041A06DB7CE8AA15441FD03DD5DC3C9504139DABBEA91A15441AE47E14AC1C950413D0AD79395A15441F8554F0ABEC95041E094745498A154411F85EB11BAC950410AD7A3B09BA1544106F1E5F9B7C9504164AC0DC79CA15441DCF76656B4C95041C4DFE1AA9EA154419D72487AAFC95041B8678AD19EA15441333333A3A9C95041000000009FA15441C37A0FFFA4C950410B93EE73A0A15441E3FEDF2A9FC95041847E0B47A2A15441F6285C9F99C9504185EB5188A1A154419A9999F999C9504152B81E05A0A154418FC2F5F897C950411F85EBB19FA15441000000F09BC95041C3F528FC96A154411F85EB119FC9504148E17AC48DA154413D0AD713A1C950417B14AE6785A15441B81E858BA0C950415C8FC21585A1544166666616A4C95041C3F528DC78A15441E17A149EA8C95041D7A370DD61A15441B81E852BA5C95041A4703D4A5DA15441182D8BD093C950411E8AE48258A154411F66906283C950415BFECDFC53A15441A16C84BB7EC95041F40F0B2752A15441DCB77F2D7AC9504186329E5B50A154413D0AD72378C95041E17A148E4FA154410CF24C8975C95041A9AFDD794CA15441AB711F5575C95041E1E4293C4CA15441D7EB46416EC9504122EF28CC4BA15441D425864B69C95041770B49814BA154419FDA7AF467C95041066652A84CA1544105AD1CF067C95041A3E3A8F84CA15441824871E967C950411EB854734DA1544140E28FE267C950419D80EAF14DA154412982329067C9504170F2136451A154415ADBFE7867C95041F776955C52A1544101B9E04F67C95041242FFB1454A15441DEFB802B67C9504144F1919A55A15441D37A960F67C9504104A291C556A15441F78514CE66C9504176BC328359A15441348A1FB570C950413F8932335AA1544145DD010471C95041FD89652A61A15441295C8F8271C95041713D0A576CA1544175941E4570C95041C952AF476CA154416CE9FA3D65C950411CDD1BD66BA154416666667664C95041E17A14CE6BA15441D7A370AD5CC95041295C8FD26AA154416022C07A5CC950416AFFBF5569A15441657247615CC95041823A679668A15441E806347B58C95041A4FA948468A15441F6285CFF52C95041B81E856B68A154413D0AD75346C95041E17A143E69A154410E8E8A6C3AC950413580F3F370A15441731AAE8737C950418623D7D372A15441ED42410738C95041405270F074A1544124617A2E38C95041158FA59675A154412C497B5438C950414900AF3776A15441ACF924A538C9504129A5025078A154418FC2F5283AC95041295C8F6282A154417B14AE573BC95041C3F5287C85A1544148E17A044BC95041295C8FF29AA15441333333F352C95041AE47E12AA1A15441333333435FC95041EC51B86EB0A1544148E17A445FC95041C3F528ECB2A154417AEAC62B5AC950414E21FB72B4A154412AF4ECA158C95041A154F5E8B4A154419A9999D958C95041666666D6BFA15441AE47E15A5DC950415C8FC215BFA15441B81E850B5DC950411F85EB61C2A15441DB71C73F5CC95041736FEC70C5A1544152B81E7561C95041D7A370EDC3A154414421EAA067C950415EC87DE1C2A15441DCB0981979C950412941E0EABFA15441933C327382C9504122B13283B9A154417F515FAE82C9504155BBAC6DB9A1544148E17AD499C950411F85EB01B1A15441B88C71D499C95041AED8E100B1A1544117632A92A4C950411C6E261AADA15441000000A0A4C9504152B81E15ADA154412B61230BB0C9504149CCAE05A8A1544144ACD503BBC950412700F528A3A1544110760AC7C4C950419663EA319EA15441EA38C1A4CFC9504163950DC698A1544185EB5108DCC950417B14AE9792A154419A9999F9E9C95041F6285CCF89A15441719AC66AEBC9504198FB512589A154416DC7B76EEDC9504125EEAD3788A1544188B726F3EDC950410E39910385A154418FC2F588EEC950413D0AD76381A15441E17A143EEFC95041333333737CA15441D7A3705DE5C95041B81E85AB86A1544157499690E1C950410E7D90ED89A1544142660040DFC95041938299E98BA154410C0000005E6934E3CEC95041B2412A7C94A1544166666686CEC95041F6285CEF93A15441264DFE87CEC95041F25902EE93A15441E7ACAC97CFC95041E0A8AC0793A15441249AFE3FCDC95041DB3500008FA1544158CED623CFC95041341965E68DA154410AEB713DD0C950415E4D3DCA8FA15441B39BD5B3D2C95041A8AA504890A1544199E90907D4C95041E088EAB18FA154416BE68420D4C950412CCB88D88FA15441E17A146ED4C95041E17A144E90A154415E6934E3CEC95041B2412A7C94A15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>371485 - 190524
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+010600000001000000010300000001000000110000003D0AD75339D8504148E17A246DA95441000000503AD85041666666866CA954413D0AD7A340D85041CDCCCC4C6AA95441713D0AC74CD850415C8FC28566A954419A9999D948D85041AE47E12A57A95441F6285C4F47D85041713D0A4755A95441B81E85AB44D85041D7A3704D54A95441A4703DBA41D8504185EB51E853A95441F6285C9F3FD85041EC51B86E54A95441AE47E11A3DD850411F85EB1156A954416666660639D8504152B81E955BA95441D7A3703D32D85041B81E856B62A9544152B81EB52BD850418FC2F5186CA95441333333032BD85041713D0A576DA954419A99999930D85041295C8F826EA954411F85EB7137D8504114AE47F16BA954413D0AD75339D8504148E17A246DA95441
+</a>
+
+<b>
+0106000000010000000103000000010000004600000014AE47D14DD850411F85EBB16AA95441332415A84DD85041B89AA20C6AA95441B34A88E23ED85041125D95656FA954416C7388803AD85041607855756CA95441000000503AD85041666666866CA954413D0AD75339D8504148E17A246DA9544172FBC4A938D85041558911B86CA95441F2BD791837D850410470D4126CA95441885E8AA436D8504187E9503E6CA954410C31E66536D850416FF1CF556CA954410457CE5936D850418D2B595A6CA95441D367FD3036D850417D79A8696CA9544152EF752D36D85041CC5BFB6A6CA954418458C72C36D850416ED83C6B6CA95441F09B542A36D85041CCED276C6CA954412B393C0936D85041DFD891786CA95441FD736FFE35D8504171E39E7C6CA95441C9AFFCFC35D85041B2F5297D6CA954415ECDD9FB35D850416411977D6CA954417C06EBFA35D850418EA1F07D6CA95441A9CED5AB30D85041B10FFAD96EA95441D5A795AF2FD85041B0E08E516EA95441ADCD48AC2FD8504113F8DD506EA9544105B8689B2FD850415E5C554D6EA95441F77D53312FD8504133BF1E376EA95441AEB9C49D2BD8504174F067776DA95441CAA0DA982BD85041B07F60766DA95441B47A1F652BD85041CF6F8B6B6DA95441EF9619582BD850416B55D1686DA95441D868EB502BD85041196D50676DA95441A1DB5EF327D85041D334FC7E73A95441240182FC1FD850412EE9578687A954415472AD001FD85041349D00F68AA95441BD0D7F001FD850416AB91AF78AA954416511F3FF1ED85041FDF56DFA8AA954419DEBA4FD1ED85041479472088BA954419F0ED9F61ED850417F7BC6318BA95441AEF4CCD61ED850414EA8A6F48BA95441161AE59B1ED85041A479D95A8DA95441DB34743B22D85041FD70CA548FA95441B92A3D4022D85041DF14FB578FA954413D0AD78322D85041AE47E17A8FA95441CDCCCC8C26D850416666669692A954419A9999A928D85041295C8FB289A95441F6285C4F2CD850410000004086A954418FC2F5A82FD85041C3F528AC84A954415C8FC2C535D850410AD7A38082A954418FC2F53839D85041AE47E14A83A95441AE47E1DA3DD85041333333D387A95441F9A7BF2A42D8504110135BD387A95441153FF55341D850411F54D15485A954413CD2C90E3DD850413938A46A82A95441328AA9A63AD85041E4BDAA2A7FA95441C4F89D4E3AD850410FA142127CA954412B84FA0E3DD850414F55651A7DA954414A55852F41D850419A0988227EA95441BBE0E1EF43D850416E26F03A81A9544140A2856F47D85041A7F7378482A954411CE2E8684AD85041636CDE027FA954410DF0491945D8504157699C6A77A95441A6854F9847D850414E58F92175A95441B596F2E049D85041E81DA6E276A95441832DDFF04AD85041B21CBF5178A95441857E472951D8504189E8601E78A95441EBA8EA1C51D85041788DBDEC77A9544170FB3C0851D850413086B69977A95441A6EB915450D85041DE6B50C874A9544185EB511850D85041666666D673A95441F441263B4FD850414CC98F5E70A9544114AE47D14DD850411F85EBB16AA95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>371485 - 398162
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+010600000001000000010300000001000000110000003D0AD75339D8504148E17A246DA95441000000503AD85041666666866CA954413D0AD7A340D85041CDCCCC4C6AA95441713D0AC74CD850415C8FC28566A954419A9999D948D85041AE47E12A57A95441F6285C4F47D85041713D0A4755A95441B81E85AB44D85041D7A3704D54A95441A4703DBA41D8504185EB51E853A95441F6285C9F3FD85041EC51B86E54A95441AE47E11A3DD850411F85EB1156A954416666660639D8504152B81E955BA95441D7A3703D32D85041B81E856B62A9544152B81EB52BD850418FC2F5186CA95441333333032BD85041713D0A576DA954419A99999930D85041295C8F826EA954411F85EB7137D8504114AE47F16BA954413D0AD75339D8504148E17A246DA95441
+</a>
+
+<b>
+0106000000010000000103000000010000004600000014AE47D14DD850411F85EBB16AA95441332415A84DD85041B89AA20C6AA95441B34A88E23ED85041125D95656FA954416C7388803AD85041607855756CA95441000000503AD85041666666866CA954413D0AD75339D8504148E17A246DA9544172FBC4A938D85041558911B86CA95441F2BD791837D850410470D4126CA95441885E8AA436D8504187E9503E6CA954410C31E66536D850416FF1CF556CA954410457CE5936D850418D2B595A6CA95441D367FD3036D850417D79A8696CA9544152EF752D36D85041CC5BFB6A6CA954418458C72C36D850416ED83C6B6CA95441F09B542A36D85041CCED276C6CA954412B393C0936D85041DFD891786CA95441FD736FFE35D8504171E39E7C6CA95441C9AFFCFC35D85041B2F5297D6CA954415ECDD9FB35D850416411977D6CA954417C06EBFA35D850418EA1F07D6CA95441A9CED5AB30D85041B10FFAD96EA95441D5A795AF2FD85041B0E08E516EA95441ADCD48AC2FD8504113F8DD506EA9544105B8689B2FD850415E5C554D6EA95441F77D53312FD8504133BF1E376EA95441AEB9C49D2BD8504174F067776DA95441CAA0DA982BD85041B07F60766DA95441B47A1F652BD85041CF6F8B6B6DA95441EF9619582BD850416B55D1686DA95441D868EB502BD85041196D50676DA95441A1DB5EF327D85041D334FC7E73A95441240182FC1FD850412EE9578687A954415472AD001FD85041349D00F68AA95441BD0D7F001FD850416AB91AF78AA954416511F3FF1ED85041FDF56DFA8AA954419DEBA4FD1ED85041479472088BA954419F0ED9F61ED850417F7BC6318BA95441AEF4CCD61ED850414EA8A6F48BA95441161AE59B1ED85041A479D95A8DA95441DB34743B22D85041FD70CA548FA95441B92A3D4022D85041DF14FB578FA954413D0AD78322D85041AE47E17A8FA95441CDCCCC8C26D850416666669692A954419A9999A928D85041295C8FB289A95441F6285C4F2CD850410000004086A954418FC2F5A82FD85041C3F528AC84A954415C8FC2C535D850410AD7A38082A954418FC2F53839D85041AE47E14A83A95441AE47E1DA3DD85041333333D387A95441F9A7BF2A42D8504110135BD387A95441153FF55341D850411F54D15485A954413CD2C90E3DD850413938A46A82A95441328AA9A63AD85041E4BDAA2A7FA95441C4F89D4E3AD850410FA142127CA954412B84FA0E3DD850414F55651A7DA954414A55852F41D850419A0988227EA95441BBE0E1EF43D850416E26F03A81A9544140A2856F47D85041A7F7378482A954411CE2E8684AD85041636CDE027FA954410DF0491945D8504157699C6A77A95441A6854F9847D850414E58F92175A95441B596F2E049D85041E81DA6E276A95441832DDFF04AD85041B21CBF5178A95441857E472951D8504189E8601E78A95441EBA8EA1C51D85041788DBDEC77A9544170FB3C0851D850413086B69977A95441A6EB915450D85041DE6B50C874A9544185EB511850D85041666666D673A95441F441263B4FD850414CC98F5E70A9544114AE47D14DD850411F85EBB16AA95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>373327 - 1856190
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000010000001D0000008FC2F5A824CF5041C3F5283C179F5441713D0AB725CF50419A999979229F54415C8FC26525CF5041EC51B89E289F5441E17A147E25CF504152B81EF52D9F5441E17A14CE1ECF50415C8FC2A52F9F544148E17AD41FCF5041AE47E19A349F5441A4703D6A21CF5041713D0AD73A9F5441666666D625CF5041333333E3399F544148E17A4436CF504114AE4731379F5441C3F5284C42CF5041A4703D4A369F5441CDCCCC3C4DCF50413D0AD7F3359F5441EC51B8FE63CF5041CDCCCCAC369F54419A99997969CF504114AE4751349F54418FC2F5E865CF50417B14AE172D9F5441EC51B81E66CF504114AE47C12A9F5441F6285C2F6CCF5041CDCCCC6C289F5441CDCCCCAC6FCF50410AD7A3B0219F5441333333336DCF5041B81E85AB159F5441CDCCCC0C6ECF5041295C8FD2129F54410AD7A33071CF50419A9999190B9F5441CDCCCC9C76CF5041000000F0019F5441EC51B89E79CF504152B81E25F69E5441D7A370AD78CF504114AE47F1F49E5441D7A3701D12CF5041A4703D3AF59E5441713D0AE710CF5041AE47E17AF69E54415C8FC2D511CF5041D7A3703D169F54410AD7A32019CF504166666696179F54418FC2F5681ECF5041D7A370BD179F54418FC2F5A824CF5041C3F5283C179F5441
+</a>
+
+<b>
+0106000000010000000103000000010000002B0000008FC2F5A824CF5041C3F5283C179F5441B115BA1125CF5041D9F2AE611C9F5441E102D0B824CF50418943CDC0229F5441A70DFDB824CF50418F4987E1229F5441704FBECD24CF5041D5315031249F54414AAA142B25CF504162FBC9F8289F5441BADFF94825CF504194B40AFB2B9F5441BF1D776A25CF50418384D9182E9F544143E57F6223CF5041803E7A7D2E9F54415B1909501FCF504115CE434C2F9F54412B5CB9571FCF50418639229B2F9F544181BE5F561FCF504163DE7E9B2F9F5441B85FD85F1FCF504152BF70EE2F9F54414BB252601FCF5041368857F32F9F54416963F5BE1FCF5041EE15672F339F544192C5183821CF50414285F8F4399F5441FE12B92D38CF50414D15C34C369F544163EAF16D42CF50417E02600D369F5441B94C4BE151CF5041D959AADA359F5441ED7DE60D64CF5041C653CB72369F544152E91F2A68CF5041FB406833369F54413885518567CF5041AC14FD44349F5441AC656A6E66CF50415D8AA219319F54418A7EAC1566CF5041E4188A952D9F5441DE52072F66CF5041BFF8DC762A9F5441D76017166BCF504195B32FE1289F54418567BC856CCF5041CF48BCCC269F54410281C4346ECF504194EF1FE8209F5441E19906DC6DCF5041CDA9AC4A1D9F5441F822D5F76CCF5041AB89FF2B1A9F5441333333336DCF5041B81E85AB159F54414EF72F116DCF5041999A1054149F5441743CDDA66ECF5041CA73BEC50F9F54410ABAB3FA70CF5041760E64110B9F5441569C1EFB75CF5041F02A6D01029F54417939DC6579CF5041BDE8C0ACF59E5441D7A370AD78CF504114AE47F1F49E5441D7A3701D12CF5041A4703D3AF59E5441713D0AE710CF5041AE47E17AF69E5441646BD53E12CF5041C25CCE35169F54410AD7A32019CF504166666696179F54418FC2F5681ECF5041D7A370BD179F54418FC2F5A824CF5041C3F5283C179F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>373327 - 1856191
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000001D0000008FC2F5A824CF5041C3F5283C179F5441713D0AB725CF50419A999979229F54415C8FC26525CF5041EC51B89E289F5441E17A147E25CF504152B81EF52D9F5441E17A14CE1ECF50415C8FC2A52F9F544148E17AD41FCF5041AE47E19A349F5441A4703D6A21CF5041713D0AD73A9F5441666666D625CF5041333333E3399F544148E17A4436CF504114AE4731379F5441C3F5284C42CF5041A4703D4A369F5441CDCCCC3C4DCF50413D0AD7F3359F5441EC51B8FE63CF5041CDCCCCAC369F54419A99997969CF504114AE4751349F54418FC2F5E865CF50417B14AE172D9F5441EC51B81E66CF504114AE47C12A9F5441F6285C2F6CCF5041CDCCCC6C289F5441CDCCCCAC6FCF50410AD7A3B0219F5441333333336DCF5041B81E85AB159F5441CDCCCC0C6ECF5041295C8FD2129F54410AD7A33071CF50419A9999190B9F5441CDCCCC9C76CF5041000000F0019F5441EC51B89E79CF504152B81E25F69E5441D7A370AD78CF504114AE47F1F49E5441D7A3701D12CF5041A4703D3AF59E5441713D0AE710CF5041AE47E17AF69E54415C8FC2D511CF5041D7A3703D169F54410AD7A32019CF504166666696179F54418FC2F5681ECF5041D7A370BD179F54418FC2F5A824CF5041C3F5283C179F5441
+</a>
+
+<b>
+010600000001000000010300000001000000210000005C8FC2D511CF5041D7A3703D169F5441AE47E13A12CF504152B81EA5239F544152B81E5512CF5041F6285C4F259F54416666660613CF50415C8FC2A5269F54411F85EB2114CF5041AE47E16A269F5441000000A013CF50413D0AD7E3219F5441E17A142E17CF5041E17A146E219F54418FC2F5B81CCF5041A4703D2A1F9F544185EB51F81DCF50419A9999491E9F54411F85EB911ECF5041A4703D3A1D9F544185EB51081FCF504148E17A941C9F5441CDCCCC0C20CF5041D7A3704D1C9F5441E17A14BE20CF5041CDCCCC7C1C9F54413D0AD73321CF5041333333F31C9F5441666666B621CF5041C3F528BC1D9F5441666666C622CF50419A999979219F5441295C8FB223CF5041B81E859B2C9F54417B14AE471CCF504185EB51E82D9F54417B14AE771CCF504133333303349F544148E17AD41FCF5041AE47E19A349F5441B85FD85F1FCF504152BF70EE2F9F544181BE5F561FCF504163DE7E9B2F9F54412B5CB9571FCF50418639229B2F9F54415B1909501FCF504115CE434C2F9F544143E57F6223CF5041803E7A7D2E9F54419274F15C25CF5041B1777EFD2D9F54414AAA142B25CF504162FBC9F8289F54411ABBD1B524CF5041948BB6F7229F5441B115BA1125CF5041D9F2AE611C9F54418FC2F5A824CF5041C3F5283C179F54418FC2F5681ECF5041D7A370BD179F54410AD7A32019CF504166666696179F54415C8FC2D511CF5041D7A3703D169F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>373327 - 3612840
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000010000001D0000008FC2F5A824CF5041C3F5283C179F5441713D0AB725CF50419A999979229F54415C8FC26525CF5041EC51B89E289F5441E17A147E25CF504152B81EF52D9F5441E17A14CE1ECF50415C8FC2A52F9F544148E17AD41FCF5041AE47E19A349F5441A4703D6A21CF5041713D0AD73A9F5441666666D625CF5041333333E3399F544148E17A4436CF504114AE4731379F5441C3F5284C42CF5041A4703D4A369F5441CDCCCC3C4DCF50413D0AD7F3359F5441EC51B8FE63CF5041CDCCCCAC369F54419A99997969CF504114AE4751349F54418FC2F5E865CF50417B14AE172D9F5441EC51B81E66CF504114AE47C12A9F5441F6285C2F6CCF5041CDCCCC6C289F5441CDCCCCAC6FCF50410AD7A3B0219F5441333333336DCF5041B81E85AB159F5441CDCCCC0C6ECF5041295C8FD2129F54410AD7A33071CF50419A9999190B9F5441CDCCCC9C76CF5041000000F0019F5441EC51B89E79CF504152B81E25F69E5441D7A370AD78CF504114AE47F1F49E5441D7A3701D12CF5041A4703D3AF59E5441713D0AE710CF5041AE47E17AF69E54415C8FC2D511CF5041D7A3703D169F54410AD7A32019CF504166666696179F54418FC2F5681ECF5041D7A370BD179F54418FC2F5A824CF5041C3F5283C179F5441
+</a>
+
+<b>
+0106000000010000000103000000010000002B0000008FC2F5A824CF5041C3F5283C179F5441B115BA1125CF5041D9F2AE611C9F5441E102D0B824CF50418943CDC0229F5441A70DFDB824CF50418F4987E1229F5441704FBECD24CF5041D5315031249F54414AAA142B25CF504162FBC9F8289F5441BADFF94825CF504194B40AFB2B9F5441BF1D776A25CF50418384D9182E9F544143E57F6223CF5041803E7A7D2E9F54415B1909501FCF504115CE434C2F9F54412B5CB9571FCF50418639229B2F9F544181BE5F561FCF504163DE7E9B2F9F5441B85FD85F1FCF504152BF70EE2F9F54414BB252601FCF5041368857F32F9F54416963F5BE1FCF5041EE15672F339F544192C5183821CF50414285F8F4399F5441FE12B92D38CF50414D15C34C369F544163EAF16D42CF50417E02600D369F5441B94C4BE151CF5041D959AADA359F5441ED7DE60D64CF5041C653CB72369F544152E91F2A68CF5041FB406833369F54413885518567CF5041AC14FD44349F5441AC656A6E66CF50415D8AA219319F54418A7EAC1566CF5041E4188A952D9F5441DE52072F66CF5041BFF8DC762A9F5441D76017166BCF504195B32FE1289F54418567BC856CCF5041CF48BCCC269F54410281C4346ECF504194EF1FE8209F5441E19906DC6DCF5041CDA9AC4A1D9F5441F822D5F76CCF5041AB89FF2B1A9F5441333333336DCF5041B81E85AB159F54414EF72F116DCF5041999A1054149F5441743CDDA66ECF5041CA73BEC50F9F54410ABAB3FA70CF5041760E64110B9F5441569C1EFB75CF5041F02A6D01029F54417939DC6579CF5041BDE8C0ACF59E5441D7A370AD78CF504114AE47F1F49E5441D7A3701D12CF5041A4703D3AF59E5441713D0AE710CF5041AE47E17AF69E5441646BD53E12CF5041C25CCE35169F54410AD7A32019CF504166666696179F54418FC2F5681ECF5041D7A370BD179F54418FC2F5A824CF5041C3F5283C179F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>373327 - 3617778
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000001D0000008FC2F5A824CF5041C3F5283C179F5441713D0AB725CF50419A999979229F54415C8FC26525CF5041EC51B89E289F5441E17A147E25CF504152B81EF52D9F5441E17A14CE1ECF50415C8FC2A52F9F544148E17AD41FCF5041AE47E19A349F5441A4703D6A21CF5041713D0AD73A9F5441666666D625CF5041333333E3399F544148E17A4436CF504114AE4731379F5441C3F5284C42CF5041A4703D4A369F5441CDCCCC3C4DCF50413D0AD7F3359F5441EC51B8FE63CF5041CDCCCCAC369F54419A99997969CF504114AE4751349F54418FC2F5E865CF50417B14AE172D9F5441EC51B81E66CF504114AE47C12A9F5441F6285C2F6CCF5041CDCCCC6C289F5441CDCCCCAC6FCF50410AD7A3B0219F5441333333336DCF5041B81E85AB159F5441CDCCCC0C6ECF5041295C8FD2129F54410AD7A33071CF50419A9999190B9F5441CDCCCC9C76CF5041000000F0019F5441EC51B89E79CF504152B81E25F69E5441D7A370AD78CF504114AE47F1F49E5441D7A3701D12CF5041A4703D3AF59E5441713D0AE710CF5041AE47E17AF69E54415C8FC2D511CF5041D7A3703D169F54410AD7A32019CF504166666696179F54418FC2F5681ECF5041D7A370BD179F54418FC2F5A824CF5041C3F5283C179F5441
+</a>
+
+<b>
+010600000001000000010300000001000000210000005C8FC2D511CF5041D7A3703D169F5441AE47E13A12CF504152B81EA5239F544152B81E5512CF5041F6285C4F259F54416666660613CF50415C8FC2A5269F54411F85EB2114CF5041AE47E16A269F5441000000A013CF50413D0AD7E3219F5441E17A142E17CF5041E17A146E219F54418FC2F5B81CCF5041A4703D2A1F9F544185EB51F81DCF50419A9999491E9F54411F85EB911ECF5041A4703D3A1D9F544185EB51081FCF504148E17A941C9F5441CDCCCC0C20CF5041D7A3704D1C9F5441E17A14BE20CF5041CDCCCC7C1C9F54413D0AD73321CF5041333333F31C9F5441666666B621CF5041C3F528BC1D9F5441666666C622CF50419A999979219F5441295C8FB223CF5041B81E859B2C9F54417B14AE471CCF504185EB51E82D9F54417B14AE771CCF504133333303349F544148E17AD41FCF5041AE47E19A349F5441B85FD85F1FCF504152BF70EE2F9F544181BE5F561FCF504163DE7E9B2F9F54412B5CB9571FCF50418639229B2F9F54415B1909501FCF504115CE434C2F9F544143E57F6223CF5041803E7A7D2E9F54419274F15C25CF5041B1777EFD2D9F54414AAA142B25CF504162FBC9F8289F54411ABBD1B524CF5041948BB6F7229F5441B115BA1125CF5041D9F2AE611C9F54418FC2F5A824CF5041C3F5283C179F54418FC2F5681ECF5041D7A370BD179F54410AD7A32019CF504166666696179F54415C8FC2D511CF5041D7A3703D169F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>968022 - 1145905
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -25 </desc>
+<a>
+0106000000010000000103000000010000002000000076BE616FB857514197A3C4F5A4485441AB5806969F5751411C56E061A2485441584ACC6B9F57514171AE8863A2485441A0034BA89B57514166B9D51AA34854413A6DC9F996575141AF705637A5485441317648219457514149D6F090A74854410E9A142F92575141041AA5B4AA48544144647A629057514159C4F241AD4854418D7ECCE08D575141151482BCAF485441360ACEE68B57514149C01AECB048544143C143248E575141D80D6F3DB248544191AB89088C57514186F66B31B6485441A6BC79958A5751411A717DAAB5485441F07902528A57514198DA9E96B6485441763D9E8D875751411AA1BB70BD4854412D8015D187575141980ADD5CBE485441068BF2DE88575141EF7EDB56C0485441F07902528A575141D96DEBC9C1485441CDB19C878957514169BB3F1BC3485441068BF2DE8857514153AA4F8EC448544169862850855751410E1A84F9C2485441E7EF493C865751416DE8FC42C14854414ABB41E77A5751411AA1BB70BD485441160FA9B779575141980ADD5CBE4854418264597872575141F7D855A6BC485441869116A07057514160318705BF485441A4703D6A9257514185EB5168CB4854418FC2F588A95751410AD7A3B0D44854411205E2D3B3575141B2488A11BB4854411FBC5711B6575141BAA20461B74854415368F040B7575141FBD5D407B348544176BE616FB857514197A3C4F5A4485441
+</a>
+
+<b>
+010600000001000000010300000001000000260000008FC2F588A95751410AD7A3B0D4485441D7A370CDAC5751413D0AD7B3CB4854415C8FC2F5B157514185EB51F8BE4854418E816EA0B357514175109E91BB4854410E05E2D3B3575141AE488A11BB485441D660850EB457514184B1F5B0BA4854412A3AF98DB657514194D40998B54854412272A7A8B657514104B23536B5485441F6285CCFB7575141713D0A17AC485441A6E306D6B7575141EDC33518AC48544176BE616FB857514193A3C4F5A4485441AA5806969F5751412156E061A24854415B4ACC6B9F57514170AE8863A24854419F034BA89B57514165B9D51AA34854413C6DC9F996575141B0705637A548544131764821945751414CD6F090A74854410B9A142F92575141001AA5B4AA4854413F647A629057514158C4F241AD485441897ECCE08D575141171482BCAF4854413A0ACEE68B5751414BC01AECB048544140C143248E575141D50D6F3DB248544190AB89088C57514189F66B31B6485441A5BC79958A5751411A717DAAB5485441ED7902528A57514196DA9E96B6485441783D9E8D8757514116A1BB70BD4854412F8015D1875751419D0ADD5CBE485441028BF2DE88575141EC7EDB56C0485441ED7902528A575141D76DEBC9C1485441D2B19C87895751416CBB3F1BC3485441028BF2DE8857514158AA4F8EC448544167862850855751410B1A84F9C2485441E3EF493C8657514169E8FC42C14854414CBB41E77A57514116A1BB70BD485441180FA9B7795751419D0ADD5CBE4854418064597872575141FBD855A6BC485441879116A07057514162318705BF485441A4703D6A9257514185EB5168CB4854418FC2F588A95751410AD7A3B0D4485441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>968022 - 3429800
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -25 </desc>
+<a>
+0106000000010000000103000000010000002000000076BE616FB857514197A3C4F5A4485441AB5806969F5751411C56E061A2485441584ACC6B9F57514171AE8863A2485441A0034BA89B57514166B9D51AA34854413A6DC9F996575141AF705637A5485441317648219457514149D6F090A74854410E9A142F92575141041AA5B4AA48544144647A629057514159C4F241AD4854418D7ECCE08D575141151482BCAF485441360ACEE68B57514149C01AECB048544143C143248E575141D80D6F3DB248544191AB89088C57514186F66B31B6485441A6BC79958A5751411A717DAAB5485441F07902528A57514198DA9E96B6485441763D9E8D875751411AA1BB70BD4854412D8015D187575141980ADD5CBE485441068BF2DE88575141EF7EDB56C0485441F07902528A575141D96DEBC9C1485441CDB19C878957514169BB3F1BC3485441068BF2DE8857514153AA4F8EC448544169862850855751410E1A84F9C2485441E7EF493C865751416DE8FC42C14854414ABB41E77A5751411AA1BB70BD485441160FA9B779575141980ADD5CBE4854418264597872575141F7D855A6BC485441869116A07057514160318705BF485441A4703D6A9257514185EB5168CB4854418FC2F588A95751410AD7A3B0D44854411205E2D3B3575141B2488A11BB4854411FBC5711B6575141BAA20461B74854415368F040B7575141FBD5D407B348544176BE616FB857514197A3C4F5A4485441
+</a>
+
+<b>
+010600000001000000010300000001000000260000008FC2F588A95751410AD7A3B0D4485441D7A370CDAC5751413D0AD7B3CB4854415C8FC2F5B157514185EB51F8BE4854418E816EA0B357514175109E91BB4854410E05E2D3B3575141AE488A11BB485441D660850EB457514184B1F5B0BA4854412A3AF98DB657514194D40998B54854412272A7A8B657514104B23536B5485441F6285CCFB7575141713D0A17AC485441A6E306D6B7575141EDC33518AC48544176BE616FB857514193A3C4F5A4485441AA5806969F5751412156E061A24854415B4ACC6B9F57514170AE8863A24854419F034BA89B57514165B9D51AA34854413C6DC9F996575141B0705637A548544131764821945751414CD6F090A74854410B9A142F92575141001AA5B4AA4854413F647A629057514158C4F241AD485441897ECCE08D575141171482BCAF4854413A0ACEE68B5751414BC01AECB048544140C143248E575141D50D6F3DB248544190AB89088C57514189F66B31B6485441A5BC79958A5751411A717DAAB5485441ED7902528A57514196DA9E96B6485441783D9E8D8757514116A1BB70BD4854412F8015D1875751419D0ADD5CBE485441028BF2DE88575141EC7EDB56C0485441ED7902528A575141D76DEBC9C1485441D2B19C87895751416CBB3F1BC3485441028BF2DE8857514158AA4F8EC448544167862850855751410B1A84F9C2485441E3EF493C8657514169E8FC42C14854414CBB41E77A57514116A1BB70BD485441180FA9B7795751419D0ADD5CBE4854418064597872575141FBD855A6BC485441879116A07057514162318705BF485441A4703D6A9257514185EB5168CB4854418FC2F588A95751410AD7A3B0D4485441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>976072 - 1018944
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000001000000010300000001000000350000008EC6C4114E1E51417F4E3BAFFE465441CDCCCC4C4F1E51410AD7A320FE465441E17A14DE551E5141E17A14CEFD465441333333335D1E5141B81E855BFF465441C3F5282C621E514166666606004754415C8FC2A5651E5141713D0A870047544189B258806A1E514139D2C79701475441000000606B1E514185EB51A8FB465441713D0A076C1E514185EB5168F6465441E17A140E6C1E514185EB51B8F5465441000000B0701E514166666646F646544185EB5158761E5141F6285C6FF64654411F85EB917B1E51417B14AE77F64654419A999979811E51411F85EBB1F6465441B81E853B881E5141AE47E12AF74654411F85EBE18D1E5141F6285C3FF8465441666666F6921E51410AD7A380F8465441A4703DCA911E5141EC51B8CEE9465441A4703D9A901E51411F85EBF1DA4654419A9999698F1E5141B81E850BCC46544152B81EF58E1E5141713D0A57C6465441333333338E1E51419A9999D9BC465441C3F528DC8C1E5141D7A370CDBC465441E17A14FE771E5141AE47E10ABC4654418FC2F5386B1E5141B81E859BBB465441CDCCCCFC5E1E514114AE47F1B946544166666696531E514114AE47B1B746544133333313501E5141E17A143EB746544148E17A244D1E5141713D0A87B6465441666666C64A1E514148E17AD4BE465441F6285CDF481E5141AE47E1AAC4465441C3F5281C471E5141713D0A17C9465441000000D0431E514152B81EC5CF465441BED6D749441E5141ED381915D04654416BA07290441E5141D05B8764D0465441A65856AF441E5141528A6FCED046544171FF82A6441E5141F393A9A6D1465441410700F6431E514105B1DAE8D1465441C43728A2431E51410B122B41D1465441A1FDC51D431E51418E4253EDD04654411ECFDDB3421E5141528A6FCED046544114AE4781411E514152B81EE5D1465441666666C6381E51413D0AD733F94654416B00D97E381E5141BBFCE45EFA46544143241AD03A1E514101BB6EC9FC465441D65788663D1E514168FE3674FE4654417B1E577A411E5141A5FC97E1FF46544140E12466431E5141C089485D0047544164586A00461E5141E49FA63F00475441550D5BAA461E514169B8763500475441737CB5954B1E51411E6777E9FE46544143861AEB4C1E51417F4E3BAFFE4654418EC6C4114E1E51417F4E3BAFFE465441
+</a>
+
+<b>
+0106000000010000000103000000010000003A00000048E17A244D1E5141713D0A87B6465441666666C64A1E514148E17AD4BE465441F6285CDF481E5141AE47E1AAC4465441C3F5281C471E5141713D0A17C9465441000000D0431E514152B81EC5CF465441C1D6D749441E5141EC381915D046544166A07290441E5141D45B8764D0465441A75856AF441E5141518A6FCED04654416FFF82A6441E5141F893A9A6D1465441420700F6431E514106B1DAE8D1465441C23728A2431E514107122B41D1465441A6FDC51D431E5141924253EDD04654411ECFDDB3421E5141518A6FCED046544114AE4781411E514152B81EE5D1465441666666C6381E51413D0AD733F946544155FFD1F4381E5141E2EC4CEEF9465441BEC37CB53B1E5141B21AA916FC465441AC21A0113D1E51415F62D622FD4654412003B19B3D1E514100290562FD465441035419583E1E5141406C9DB7FD465441470E610F401E5141504CEE6DFE465441DCC2A140411E514142871FCDFE4654417DF9F39F431E514131C6E285FF4654411EA13C3A441E5141E5BDB9A8FF4654411758E9D6451E5141BEF7BEB5FF465441BB60CF09481E5141D6FE38F1FE46544179ACD09D491E514124864257FE4654419D3210264C1E5141078565E1FD465441990C29114E1E514182AFC0CDFD465441CDCCCC4C4F1E51410AD7A320FE465441E17A14DE551E5141E17A14CEFD465441333333335D1E5141B81E855BFF465441C3F5282C621E514166666606004754415C8FC2A5651E5141713D0A870047544189B258806A1E51413CD2C79701475441000000606B1E514185EB51A8FB465441713D0A076C1E514185EB5168F6465441E17A140E6C1E514185EB51B8F5465441000000B0701E514166666646F646544185EB5158761E5141F6285C6FF64654411F85EB917B1E51417B14AE77F64654419A999979811E51411F85EBB1F6465441B81E853B881E5141AE47E12AF74654411F85EBE18D1E5141F6285C3FF8465441666666F6921E51410AD7A380F8465441A4703DCA911E5141EC51B8CEE9465441A4703D9A901E51411F85EBF1DA4654419A9999698F1E5141B81E850BCC46544152B81EF58E1E5141713D0A57C6465441333333338E1E51419A9999D9BC465441C3F528DC8C1E5141D7A370CDBC465441E17A14FE771E5141AE47E10ABC4654418FC2F5386B1E5141B81E859BBB465441C3F528BC651E5141D7A370DDBA465441CDCCCCFC5E1E514114AE47F1B946544166666696531E514114AE47B1B746544133333313501E5141E17A143EB746544148E17A244D1E5141713D0A87B6465441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>976072 - 3329488
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000001000000010300000001000000350000008EC6C4114E1E51417F4E3BAFFE465441CDCCCC4C4F1E51410AD7A320FE465441E17A14DE551E5141E17A14CEFD465441333333335D1E5141B81E855BFF465441C3F5282C621E514166666606004754415C8FC2A5651E5141713D0A870047544189B258806A1E514139D2C79701475441000000606B1E514185EB51A8FB465441713D0A076C1E514185EB5168F6465441E17A140E6C1E514185EB51B8F5465441000000B0701E514166666646F646544185EB5158761E5141F6285C6FF64654411F85EB917B1E51417B14AE77F64654419A999979811E51411F85EBB1F6465441B81E853B881E5141AE47E12AF74654411F85EBE18D1E5141F6285C3FF8465441666666F6921E51410AD7A380F8465441A4703DCA911E5141EC51B8CEE9465441A4703D9A901E51411F85EBF1DA4654419A9999698F1E5141B81E850BCC46544152B81EF58E1E5141713D0A57C6465441333333338E1E51419A9999D9BC465441C3F528DC8C1E5141D7A370CDBC465441E17A14FE771E5141AE47E10ABC4654418FC2F5386B1E5141B81E859BBB465441CDCCCCFC5E1E514114AE47F1B946544166666696531E514114AE47B1B746544133333313501E5141E17A143EB746544148E17A244D1E5141713D0A87B6465441666666C64A1E514148E17AD4BE465441F6285CDF481E5141AE47E1AAC4465441C3F5281C471E5141713D0A17C9465441000000D0431E514152B81EC5CF465441BED6D749441E5141ED381915D04654416BA07290441E5141D05B8764D0465441A65856AF441E5141528A6FCED046544171FF82A6441E5141F393A9A6D1465441410700F6431E514105B1DAE8D1465441C43728A2431E51410B122B41D1465441A1FDC51D431E51418E4253EDD04654411ECFDDB3421E5141528A6FCED046544114AE4781411E514152B81EE5D1465441666666C6381E51413D0AD733F94654416B00D97E381E5141BBFCE45EFA46544143241AD03A1E514101BB6EC9FC465441D65788663D1E514168FE3674FE4654417B1E577A411E5141A5FC97E1FF46544140E12466431E5141C089485D0047544164586A00461E5141E49FA63F00475441550D5BAA461E514169B8763500475441737CB5954B1E51411E6777E9FE46544143861AEB4C1E51417F4E3BAFFE4654418EC6C4114E1E51417F4E3BAFFE465441
+</a>
+
+<b>
+0106000000010000000103000000010000003A00000048E17A244D1E5141713D0A87B6465441666666C64A1E514148E17AD4BE465441F6285CDF481E5141AE47E1AAC4465441C3F5281C471E5141713D0A17C9465441000000D0431E514152B81EC5CF465441C1D6D749441E5141EC381915D046544166A07290441E5141D45B8764D0465441A75856AF441E5141518A6FCED04654416FFF82A6441E5141F893A9A6D1465441420700F6431E514106B1DAE8D1465441C23728A2431E514107122B41D1465441A6FDC51D431E5141924253EDD04654411ECFDDB3421E5141518A6FCED046544114AE4781411E514152B81EE5D1465441666666C6381E51413D0AD733F946544155FFD1F4381E5141E2EC4CEEF9465441BEC37CB53B1E5141B21AA916FC465441AC21A0113D1E51415F62D622FD4654412003B19B3D1E514100290562FD465441035419583E1E5141406C9DB7FD465441470E610F401E5141504CEE6DFE465441DCC2A140411E514142871FCDFE4654417DF9F39F431E514131C6E285FF4654411EA13C3A441E5141E5BDB9A8FF4654411758E9D6451E5141BEF7BEB5FF465441BB60CF09481E5141D6FE38F1FE46544179ACD09D491E514124864257FE4654419D3210264C1E5141078565E1FD465441990C29114E1E514182AFC0CDFD465441CDCCCC4C4F1E51410AD7A320FE465441E17A14DE551E5141E17A14CEFD465441333333335D1E5141B81E855BFF465441C3F5282C621E514166666606004754415C8FC2A5651E5141713D0A870047544189B258806A1E51413CD2C79701475441000000606B1E514185EB51A8FB465441713D0A076C1E514185EB5168F6465441E17A140E6C1E514185EB51B8F5465441000000B0701E514166666646F646544185EB5158761E5141F6285C6FF64654411F85EB917B1E51417B14AE77F64654419A999979811E51411F85EBB1F6465441B81E853B881E5141AE47E12AF74654411F85EBE18D1E5141F6285C3FF8465441666666F6921E51410AD7A380F8465441A4703DCA911E5141EC51B8CEE9465441A4703D9A901E51411F85EBF1DA4654419A9999698F1E5141B81E850BCC46544152B81EF58E1E5141713D0A57C6465441333333338E1E51419A9999D9BC465441C3F528DC8C1E5141D7A370CDBC465441E17A14FE771E5141AE47E10ABC4654418FC2F5386B1E5141B81E859BBB465441C3F528BC651E5141D7A370DDBA465441CDCCCCFC5E1E514114AE47F1B946544166666696531E514114AE47B1B746544133333313501E5141E17A143EB746544148E17A244D1E5141713D0A87B6465441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>389275 - 959778
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -23 </desc>
+<a>
+0106000000010000000103000000010000007900000052B81E45FE995041E17A149E18225441000000D0FC99504185EB514818225441CDCCCC4CFD995041713D0A471A225441A4703DCAFC995041A4703D6A21225441C3F5288CFB99504152B81EF5212254417B14AEA7FA995041A4703DBA242254418FC2F538F9995041F6285C4F2722544114AE4711F699504148E17A64282254418FC2F5E8F5995041C3F5289C2B22544152B81EF5F09950411F85EB113022544185EB5148EF9950411F85EB513322544148E17A24EB995041F6285C4F352254413D0AD7D3ED995041D7A3709D382254419A999989EF995041333333233A225441F6285CCFF0995041AE47E13A3D22544185EB5138F29950418FC2F5D84122544114AE4791EF9950415C8FC2554422544152B81EF5EF995041295C8F5246225441AE47E1DAF099504166666626452254419A9999C9F29950413D0AD763422254415C8FC2B5F39950415C8FC225412254413D0AD7F3F4995041F6285CDF3F2254411F85EB01F7995041EC51B85E3F22544100000010F9995041F6285C3F3E225441AE47E13AFB995041295C8F323D225441D7A3700DFF99504185EB51B83C225441F6285C0F019A5041295C8F323D225441CDCCCC5C039A5041295C8FE23D2254411F85EB91069A50419A9999E93E2254411F85EBE1099A5041B81E85DB3F2254419A9999090D9A50418FC2F5E840225441000000900F9A50413333330342225441AE47E17A139A504114AE476144225441D7A3708D199A5041F6285C0F482254410AD7A3A0209A50419A9999A94B225441CDCCCC2C269A50419A9999794E2254415C8FC275299A5041F6285C2F50225441000000102D9A50418FC2F5785122544133333323319A50415C8FC2B5522254410AD7A380359A5041295C8FC2532254415C8FC2B5399A504114AE47215422544185EB51F83C9A504148E17AE454225441B81E858B409A504114AE47715622544148E17A54469A5041295C8F9259225441CDCCCCFC459A5041F6285C1F5A2254413D0AD733409A5041A4703DEA56225441295C8FC23C9A5041AE47E16A55225441AE47E19A399A50419A9999C954225441713D0A87359A5041713D0A575422544133333323319A50419A999949532254418FC2F5082D9A504114AE472152225441713D0A47299A50410AD7A3D050225441AE47E10A269A504148E17A144F225441B81E858B229A5041AE47E14A4D22544152B81E85209A50411F85EB514C2254418FC2F5A8199A5041C3F528CC48225441D7A370FD179A5041F6285CBF47225441295C8F52139A504114AE47E144225441000000100F9A5041295C8FB2422254417B14AE170D9A5041AE47E1DA4122544148E17AD40A9A5041B81E85DB402254417B14AEC7069A504114AE47913F2254411F85EBC1029A50419A9999693E22544133333343FF995041F6285C9F3D2254413D0AD783FB995041D7A370CD3D2254419A999959F99950411F85EBC13E225441CDCCCCCCF6995041F6285CDF3F22544152B81E35F5995041B81E859B402254419A999909F4995041AE47E1EA412254410AD7A3A0F29950413D0AD70344225441CDCCCC3CF0995041D7A3708D472254419A9999F9EE9950413D0AD7E34822544185EB5198EF995041713D0A4749225441F6285C0FF4995041333333534C225441C3F528FCF099504148E17A2450225441A4703D4AF4995041B81E850B52225441666666B6F2995041333333D3542254419A9999E9F19950415C8FC2F5552254419A9999A9F7995041B81E855B5822544114AE47D1F999504100000090592254413D0AD793009A5041EC51B87E5C2254418FC2F5C8039A5041CDCCCCFC5D225441666666360D9A50415C8FC2D562225441AE47E12A129A50415C8FC2B56522544133333383189A5041E17A14CE6D225441F6285C9F199A5041CDCCCCFC6E22544148E17A14229A5041C3F5286C77225441D7A370ED2D9A50410AD7A3107F225441E17A14FE2E9A5041000000C07F225441E17A14EE369A50417B14AE9782225441000000703B9A50411F85EB617922544114AE47913F9A504148E17A2471225441D7A3701D449A5041A4703D0A68225441AE47E16A459A504148E17A44652254418FC2F508479A504185EB51D862225441333333934E9A50410000003069225441B81E850B569A5041295C8F626F225441666666065B9A5041E17A147E74225441666666065D9A504148E17AD47F2254419A999929689A50418FC2F5B88022544148E17A94689A504185EB51587E225441C3F528BC689A50417B14AE777D225441AE47E16A6A9A5041AE47E1EA73225441C3F5286C6C9A5041A4703D8A68225441A4703D1A6E9A504185EB51785E225441C3F528CC569A50419A9999395622544100000050499A5041AE47E13A4E2254410AD7A3B0439A504185EB514845225441000000F03F9A5041B81E85BB3F2254417B14AEE7389A5041EC51B8DE39225441B81E85BB379A50416666660635225441F6285C8F369A5041E17A14CE30225441C3F5288C339A50413D0AD7732A2254411F85EBE1289A50411F85EBC1272254413D0AD7231E9A50415C8FC2F5202254418FC2F5081E9A504185EB51081E22544148E17AE4199A5041333333C31B22544185EB5188119A5041A4703D5A1A225441333333C3079A5041D7A370AD19225441713D0AB7019A504185EB51681922544152B81E45FE995041E17A149E18225441
+</a>
+
+<b>
+01060000000100000001030000000100000034000000B04FACCED29950411A6A988EAB2154416B565A12D299504146D58A57AF215441A4711FCCD199504143B14CBDB1215441333333B3D5995041C3F5283CB22154418ECF08F9D4995041308E11FEB72154413706DD49D4995041B77FF1C2BE215441114CD369D69950410F024D29BF215441FB8064C6DF99504169BCB125C12154415CE8F214EE995041C4507ACFC4215441410F58C2109A50411B8CE223D12154417033C7FA0A9A50418E1F957AE221544129F10214169A5041DCC8CA9EE621544110EF9F30109A50419368B4A9FA2154414CE5996A109A504118298D22FC2154417A07AF9F0F9A50417FEE687EFD2154414F38CD7D0E9A5041C66514AA002254419802ACBC0F9A50412AD8BCF2032254417086FDAD0C9A5041F96274AA06225441A44E7909089A50417BD019100A22544168587FCF079A504118E6887F0F2254417BD2CAFA049A5041C975431A12225441BD6E2B5B019A50417C5831C8122254412D2DA1F0FC99504156649A7118225441E6EAD969049A504163387F76192254417608DBAE109A50410131374B1A2254414EB1B7761A9A50418CC255131C22544173962C1E1E9A5041197506FE1D2254415A582B5E319A50413FE83FD4EB215441A7753DB0309A5041473B73E7E921544107745414349A50413E6669FCE62154415093FB8A379A5041BC5C4ACCE2215441D7CC368A3A9A50412E5EC538DD2154415C8D0F033C9A50419BC907BBDA215441AEEA3B843E9A5041AA0A404ED4215441F3ED692B439A5041B0BED9DACF2154417C1024D8449A5041DBDD5063CE2154412A9A3977469A504181688064CB2154417E82FA9D469A504129572B82C62154411FCCF96D469A5041FBA369DBC32154411A25451A419A50419C346B13C2215441DD4A81C62A9A50414C3EF6F5B9215441BCFF9B4A269A50416F1C0452B821544114317355229A50411D107357B92154415E9B2F011E9A504195A9A9DAB72154413D0AD7531A9A5041A4703DEAB5215441F92887B81A9A50419B4F1001B421544154F2F4D9149A504166CE46C5B221544173F3B693F39950419115C0BCAC215441CE75E592DD9950416DF81627AA215441CC925436D3995041C3C84179A9215441472DF561D3995041C7E90D7EAA215441B04FACCED29950411A6A988EAB215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>395265 - 1371051
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -23 </desc>
+<a>
+0106000000010000000103000000010000001D000000666666969438514114AE47A167EB5441CDCCCC3C88385141E17A140E67EB54419A999919813851413D0AD71367EB544148E17A248138514152B81E1568EB544152B81EC581385141C3F5283C84EB5441295C8FD281385141E17A145E86EB5441D7A3701D83385141A4703D4A86EB5441F6285CCF8338514152B81E657EEB5441B81E85EB823851418FC2F5D87DEB54413D0AD71383385141000000B07BEB5441C3F528EC843851410AD7A3A07AEB54417B14AE9787385141AE47E19A79EB5441C3F5285C893851413D0AD7B378EB544185EB51088E38514114AE479179EB5441EC51B8BE92385141D7A3702D7BEB5441713D0AF7953851410AD7A3507CEB5441295C8FA2983851410AD7A3B07DEB5441CDCCCC0C9C385141F6285C0F7DEB54411F85EBB1B73851415C8FC2E585EB54419A999949C83851418FC2F5588BEB5441B81E858BCE385141000000507DEB54410AD7A300D13851415C8FC2D577EB54417B14AE87C7385141CDCCCCDC79EB5441333333F3C13851410000006079EB5441B81E852BBC385141D7A3708D77EB544100000020B738514148E17A2475EB5441CDCCCC0CA6385141713D0A776CEB54419A9999099F385141B81E857B69EB5441666666969438514114AE47A167EB5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000295C8FD281385141E17A145E86EB5441E17A144E82385141F6285C1F9AEB54410AD7A36082385141295C8F729DEB54411F85EB71B938514148E17AA4ACEB5441295C8F12BD3851411F85EB81A4EB54419A999949C83851418FC2F5588BEB5441212834EAA3385141BC4100937FEB54412C07D0939D385141E8AF5B8C7DEB5441DE5EC8279D38514163BFB36682EB5441C439BDED9A38514172EFA4BF86EB5441AE47E10A963851411F85EBC184EB5441047C2CEE93385141C061051984EB544190F524D08338514140E3A46E7FEB5441D7A3701D83385141A4703D4A86EB5441295C8FD281385141E17A145E86EB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>395265 - 3457104
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -23 </desc>
+<a>
+0106000000010000000103000000010000001D000000666666969438514114AE47A167EB5441CDCCCC3C88385141E17A140E67EB54419A999919813851413D0AD71367EB544148E17A248138514152B81E1568EB544152B81EC581385141C3F5283C84EB5441295C8FD281385141E17A145E86EB5441D7A3701D83385141A4703D4A86EB5441F6285CCF8338514152B81E657EEB5441B81E85EB823851418FC2F5D87DEB54413D0AD71383385141000000B07BEB5441C3F528EC843851410AD7A3A07AEB54417B14AE9787385141AE47E19A79EB5441C3F5285C893851413D0AD7B378EB544185EB51088E38514114AE479179EB5441EC51B8BE92385141D7A3702D7BEB5441713D0AF7953851410AD7A3507CEB5441295C8FA2983851410AD7A3B07DEB5441CDCCCC0C9C385141F6285C0F7DEB54411F85EBB1B73851415C8FC2E585EB54419A999949C83851418FC2F5588BEB5441B81E858BCE385141000000507DEB54410AD7A300D13851415C8FC2D577EB54417B14AE87C7385141CDCCCCDC79EB5441333333F3C13851410000006079EB5441B81E852BBC385141D7A3708D77EB544100000020B738514148E17A2475EB5441CDCCCC0CA6385141713D0A776CEB54419A9999099F385141B81E857B69EB5441666666969438514114AE47A167EB5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000295C8FD281385141E17A145E86EB5441E17A144E82385141F6285C1F9AEB54410AD7A36082385141295C8F729DEB54411F85EB71B938514148E17AA4ACEB5441295C8F12BD3851411F85EB81A4EB54419A999949C83851418FC2F5588BEB5441212834EAA3385141BC4100937FEB54412C07D0939D385141E8AF5B8C7DEB5441DE5EC8279D38514163BFB36682EB5441C439BDED9A38514172EFA4BF86EB5441AE47E10A963851411F85EBC184EB5441047C2CEE93385141C061051984EB544190F524D08338514140E3A46E7FEB5441D7A3701D83385141A4703D4A86EB5441295C8FD281385141E17A145E86EB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>943734 - 187174
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000100000029000000AE47E15AC6BC50413D0AD7B3923754415C8FC2F5C5BC50418FC2F50892375441F6285C5FBFBC504114AE47219337544133333373BFBC50417B14AE97953754418FC2F588BFBC50419A9999199C3754413D0AD783BFBC50413D0AD7E3B1375441CDCCCC5CBFBC50411F85EB81C4375441EC51B8AED1BC5041EC51B8FECC375441295C8F92D5BC5041EC51B84ECE375441333333C3DBBC504133333353CF3754418FC2F5C8E2BC5041713D0AE7CF3754417B14AE97EDBC504133333333D03754410AD7A370F1BC5041295C8FA2D037544100000000F7BC50418FC2F548D237544185EB51D8FCBC5041AE47E17AD437544114AE47B108BD5041A4703D4AD93754418FC2F57811BD504166666666DC3754413D0AD76319BD5041333333C3DD3754418FC2F54827BD5041713D0AF7DD375441B81E856B2FBD5041295C8FD2DD3754418FC2F5F836BD5041666666E6DC37544114AE470146BD5041C3F5287CD9375441C3F528CC48BD504100000010A437544152B81EE537BD50413D0AD773A63754415C8FC2E51EBD504185EB5138AA375441295C8F0217BD5041F6285C5FAB375441333333E30ABD50418FC2F508AD375441B81E851BFCBC504114AE4771AE3754419A999999F3BC50411F85EBA1B43754419A9999B9EBBC504114AE4771AF375441F6285CCFE5BC5041D7A3701DAB3754410AD7A3D0E4BC50413D0AD703AB375441B81E852BDFBC5041333333B3AA3754413D0AD7C3DDBC504185EB5168AA3754410AD7A360DCBC504133333343AA37544185EB5178D5BC5041B81E85ABA9375441C3F528CCD3BC5041295C8FD2A8375441A4703D3AD3BC50419A999939A837544152B81ED5D1BC504114AE47E1A63754411F85EB41CBBC504152B81E859B375441AE47E15AC6BC50413D0AD7B392375441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000A4B6CB54CABC50412F8BA2DA9937544164632E6BC6BC5041304CCBDB923754410F90FA26C5BC504113D9EDB39337544185E61DDDC2BC504166A0558693375441EF4BA79DC0BC5041093C5FEC92375441F6285C5FBFBC504114AE472193375441BA4A4872BFBC50419410867A95375441002BF4F5BFBC50417ECCE24996375441CEF49CF4BFBC504114B2338696375441BA95311BC6BC5041CEDAB3209D375441559D8D1BCEBC504192393CB4A537544144E487DCCEBC504124AFA684A637544113FC2839CFBC5041893BE007A7375441EACE7328D0BC5041CBDC44EAA537544159590958CFBC50413967DA19A537544118FB568FCEBC504100C4D1E3A437544118FB568FCEBC50417A083FFCA3375441763DC9FBCEBC50413B704CDAA2375441A5B44523CEBC50413FEC6CA3A03754418DC6C99DCDBC50410F1075989F375441D8654002CCBC504134106CD19C3754414D2596A2CBBC50414471FF2C9C37544190934B92CBBC50416D23FD0F9C3754411F85EB41CBBC504152B81E859B375441A4B6CB54CABC50412F8BA2DA99375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>943734 - 187177
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000100000029000000AE47E15AC6BC50413D0AD7B3923754415C8FC2F5C5BC50418FC2F50892375441F6285C5FBFBC504114AE47219337544133333373BFBC50417B14AE97953754418FC2F588BFBC50419A9999199C3754413D0AD783BFBC50413D0AD7E3B1375441CDCCCC5CBFBC50411F85EB81C4375441EC51B8AED1BC5041EC51B8FECC375441295C8F92D5BC5041EC51B84ECE375441333333C3DBBC504133333353CF3754418FC2F5C8E2BC5041713D0AE7CF3754417B14AE97EDBC504133333333D03754410AD7A370F1BC5041295C8FA2D037544100000000F7BC50418FC2F548D237544185EB51D8FCBC5041AE47E17AD437544114AE47B108BD5041A4703D4AD93754418FC2F57811BD504166666666DC3754413D0AD76319BD5041333333C3DD3754418FC2F54827BD5041713D0AF7DD375441B81E856B2FBD5041295C8FD2DD3754418FC2F5F836BD5041666666E6DC37544114AE470146BD5041C3F5287CD9375441C3F528CC48BD504100000010A437544152B81EE537BD50413D0AD773A63754415C8FC2E51EBD504185EB5138AA375441295C8F0217BD5041F6285C5FAB375441333333E30ABD50418FC2F508AD375441B81E851BFCBC504114AE4771AE3754419A999999F3BC50411F85EBA1B43754419A9999B9EBBC504114AE4771AF375441F6285CCFE5BC5041D7A3701DAB3754410AD7A3D0E4BC50413D0AD703AB375441B81E852BDFBC5041333333B3AA3754413D0AD7C3DDBC504185EB5168AA3754410AD7A360DCBC504133333343AA37544185EB5178D5BC5041B81E85ABA9375441C3F528CCD3BC5041295C8FD2A8375441A4703D3AD3BC50419A999939A837544152B81ED5D1BC504114AE47E1A63754411F85EB41CBBC504152B81E859B375441AE47E15AC6BC50413D0AD7B392375441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000C5D5955DBCBC50411893D9A8913754417FEA6664BBBC5041DEE89DA88F37544142F1EB57BBBC5041E2F46D928F375441B9CAE53FBBBC50411BA0935D8F37544121E29D7FBABC5041A0D6D1E18D37544100D34FA7B9BC5041DEA6AC528E3754419B0749EAB7BC50411C207B768E3754418CEF326BB4BC5041DE2B0636903754413DBB3A89B2BC50414C460227913754419DC9ABBAB1BC5041AC1BAF9293375441604E3B9EB1BC504136EFF00A98375441B9036D9EB1BC5041333806449837544116F127ABB1BC5041EAA91B44983754411D1869AAB1BC5041ECA9D12898375441ED2511BFB3BC5041B79E9B4798375441A1FDA39CB3BC5041C66C89D79337544121E1C139B5BC5041EA0F24D3913754411CEB6687B9BC50410A1E950491375441C698A6D0BBBC5041BD94F6F993375441E9DA0FE4BCBC5041B9273A529537544116F50BD5BDBC5041ABBA7DAA9637544161448DD6BEBC5041236271AE97375441E9C1A47CBFBC5041506FAB6A98375441DF2E2374BFBC504154E772DF95375441B6107473BFBC5041F51614AB953754415F8F6633BFBC5041BAAA596095375441DFA0EF11BDBC50418599132C93375441375AAB70BCBC5041517A14D091375441C5D5955DBCBC50411893D9A891375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>943734 - 393249
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000100000029000000AE47E15AC6BC50413D0AD7B3923754415C8FC2F5C5BC50418FC2F50892375441F6285C5FBFBC504114AE47219337544133333373BFBC50417B14AE97953754418FC2F588BFBC50419A9999199C3754413D0AD783BFBC50413D0AD7E3B1375441CDCCCC5CBFBC50411F85EB81C4375441EC51B8AED1BC5041EC51B8FECC375441295C8F92D5BC5041EC51B84ECE375441333333C3DBBC504133333353CF3754418FC2F5C8E2BC5041713D0AE7CF3754417B14AE97EDBC504133333333D03754410AD7A370F1BC5041295C8FA2D037544100000000F7BC50418FC2F548D237544185EB51D8FCBC5041AE47E17AD437544114AE47B108BD5041A4703D4AD93754418FC2F57811BD504166666666DC3754413D0AD76319BD5041333333C3DD3754418FC2F54827BD5041713D0AF7DD375441B81E856B2FBD5041295C8FD2DD3754418FC2F5F836BD5041666666E6DC37544114AE470146BD5041C3F5287CD9375441C3F528CC48BD504100000010A437544152B81EE537BD50413D0AD773A63754415C8FC2E51EBD504185EB5138AA375441295C8F0217BD5041F6285C5FAB375441333333E30ABD50418FC2F508AD375441B81E851BFCBC504114AE4771AE3754419A999999F3BC50411F85EBA1B43754419A9999B9EBBC504114AE4771AF375441F6285CCFE5BC5041D7A3701DAB3754410AD7A3D0E4BC50413D0AD703AB375441B81E852BDFBC5041333333B3AA3754413D0AD7C3DDBC504185EB5168AA3754410AD7A360DCBC504133333343AA37544185EB5178D5BC5041B81E85ABA9375441C3F528CCD3BC5041295C8FD2A8375441A4703D3AD3BC50419A999939A837544152B81ED5D1BC504114AE47E1A63754411F85EB41CBBC504152B81E859B375441AE47E15AC6BC50413D0AD7B392375441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000A4B6CB54CABC50412F8BA2DA9937544164632E6BC6BC5041304CCBDB923754410F90FA26C5BC504113D9EDB39337544185E61DDDC2BC504166A0558693375441EF4BA79DC0BC5041093C5FEC92375441F6285C5FBFBC504114AE472193375441BA4A4872BFBC50419410867A95375441002BF4F5BFBC50417ECCE24996375441CEF49CF4BFBC504114B2338696375441BA95311BC6BC5041CEDAB3209D375441559D8D1BCEBC504192393CB4A537544144E487DCCEBC504124AFA684A637544113FC2839CFBC5041893BE007A7375441EACE7328D0BC5041CBDC44EAA537544159590958CFBC50413967DA19A537544118FB568FCEBC504100C4D1E3A437544118FB568FCEBC50417A083FFCA3375441763DC9FBCEBC50413B704CDAA2375441A5B44523CEBC50413FEC6CA3A03754418DC6C99DCDBC50410F1075989F375441D8654002CCBC504134106CD19C3754414D2596A2CBBC50414471FF2C9C37544190934B92CBBC50416D23FD0F9C3754411F85EB41CBBC504152B81E859B375441A4B6CB54CABC50412F8BA2DA99375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>419166 - 2630836
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+01060000000100000001030000000200000020000000E17A144E5DBC5041000000C0EC345441A4703D8A41BC5041D7A3708DE6345441F6285CEF3CBC50419A999959E5345441C3F5285C3FBC5041295C8F82E63454419A99994941BC5041D7A3703DE8345441F6285C7F43BC504114AE47C1EA345441F6285C5F45BC50410AD7A340ED34544114AE477146BC50410AD7A3E0EE345441C3F528CC47BC50418FC2F5E8F0345441000000104ABC504114AE47D1F33454418FC2F5F84ABC504114AE4711F5345441F6285CCF4CBC5041E17A14FEF7345441A4703D2A4EBC5041AE47E1AAFA3454417B14AED74EBC504114AE47C1FC345441295C8F124FBC50418FC2F548FE3454419A9999F955BC5041D7A370FDFC34544185EB519857BC5041713D0AB7FC3454417B14AEF758BC50413D0AD733FE34544185EB514859BC50411F85EB21003554418FC2F5C859BC5041000000E0023554411F85EB3164BC50419A99997904355441666666F688BC5041000000A00C3554413D0AD78389BC50415C8FC2C50C3554419A9999C98ABC50410AD7A3100D3554410AD7A3508ABC5041EC51B8DE09355441B81E853B8ABC50415C8FC2050835544185EB51788ABC50413D0AD783033554411F85EBC18ABC504185EB51B8FE34544185EB51388BBC504114AE47F1F5345441F6285C5F5FBC504114AE4741ED345441EC51B8AE5EBC5041295C8F02ED345441E17A144E5DBC5041000000C0EC345441080000005C8FC2F566BC50418FC2F588FA34544148E17A0467BC504148E17A24FA345441C3F5283C67BC5041E17A145EF8345441E17A14BE6ABC50413D0AD713F93454411F85EBB16ABC5041B81E859BF934544114AE47716ABC504114AE4721FB345441E17A14AE69BC5041295C8F02FB3454415C8FC2F566BC50418FC2F588FA345441
+</a>
+
+<b>
+01060000000100000001030000000200000044000000F6285C5F5FBC504114AE4741ED34544185EB510864BC5041D7A3702DEE345441F6285C2F6ABC5041A4703DEAD234544148E17AF46CBC5041D7A3706DC53454415C8FC2D563BC50419A9999E9C5345441333333E35BBC5041CDCCCC2CC93454419A99999951BC50415C8FC215C7345441295C8F723CBC504133333393BE34544185EB51683FBC504133333353C2345441B81E85FB41BC5041EC51B80EC5345441EC51B89E44BC504114AE4791C7345441CDCCCCFC47BC504152B81E65CA345441666666564ABC5041F6285CBFCC345441C3F528AC4BBC50415C8FC265CE345441295C8F224DBC5041CDCCCC0CD0345441A4703D0A4FBC5041E17A141ED234544148E17A7451BC5041F6285C5FD43454410000002054BC5041A4703DEAD63454419A99995956BC504152B81E95D934544148E17A1457BC50410AD7A360DA34544185EB51C859BC5041F6285CBFDD345441A4703D2A5CBC50413D0AD7C3E034544185EB51B85BBC504152B81E15E1345441B81E85CB56BC50413D0AD713DB345441F6285C3F54BC5041EC51B80ED8345441295C8FE252BC50410AD7A3A0D6345441A4703DDA50BC50410AD7A3B0D4345441713D0A274EBC50415C8FC225D23454417B14AEA74ABC5041CDCCCC1CCE3454418FC2F50849BC5041CDCCCC2CCC3454410AD7A31047BC504152B81E55CA345441D7A3705D44BC50413D0AD733C83454415C8FC2A542BC50415C8FC2C5C6345441A4703DDA3FBC50418FC2F5B8C3345441713D0A573BBC5041AE47E18ABE34544148E17AE438BC504166666696BB345441B81E85AB36BC5041AE47E1DAB8345441E17A147E35BC50419A9999A9B63454419A99996934BC5041D7A370DDB3345441E17A148E33BC5041EC51B82EB23454411F85EBB132BC5041CDCCCC6CB1345441C3F5289C28BC50410AD7A3B0B13454416666668611BC5041C3F5284CB2345441B81E851B12BC5041295C8F12B43454411F85EB3113BC504114AE4791B6345441CDCCCC9C15BC5041F6285C6FBB345441B81E85AB16BC50417B14AEA7BD345441713D0A7717BC5041E17A145EBF345441C3F528CC18BC50410AD7A3A0C23454410AD7A3301ABC5041333333B3C634544114AE47911BBC50410AD7A3A0CB3454415C8FC2651EBC50415C8FC2C5D6345441A4703D0A1FBC5041F6285C5FD9345441713D0AA71FBC50413D0AD7E3DA345441000000B020BC5041C3F5283CDD345441713D0AE721BC5041AE47E1BADE3454419A9999A923BC504166666696DF3454419A9999C925BC5041B81E85CBDF34544148E17AB428BC504166666616E03454419A9999F92EBC5041295C8FE2E1345441295C8F4233BC50418FC2F5E8E23454419A99993937BC50417B14AEE7E3345441A17919073DBC5041D3AFF464E5345441F6285CEF3CBC50419A999959E5345441A4703D8A41BC5041D7A3708DE6345441E17A144E5DBC5041000000C0EC345441EC51B8AE5EBC5041295C8F02ED345441F6285C5F5FBC504114AE4741ED34544105000000666666C621BC504133333393B9345441C3F528BC21BC50415C8FC225B8345441A4703D9A22BC50419A999929B8345441F6285CAF22BC5041713D0A97B9345441666666C621BC504133333393B9345441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>419166 - 3428931
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+01060000000100000001030000000200000020000000E17A144E5DBC5041000000C0EC345441A4703D8A41BC5041D7A3708DE6345441F6285CEF3CBC50419A999959E5345441C3F5285C3FBC5041295C8F82E63454419A99994941BC5041D7A3703DE8345441F6285C7F43BC504114AE47C1EA345441F6285C5F45BC50410AD7A340ED34544114AE477146BC50410AD7A3E0EE345441C3F528CC47BC50418FC2F5E8F0345441000000104ABC504114AE47D1F33454418FC2F5F84ABC504114AE4711F5345441F6285CCF4CBC5041E17A14FEF7345441A4703D2A4EBC5041AE47E1AAFA3454417B14AED74EBC504114AE47C1FC345441295C8F124FBC50418FC2F548FE3454419A9999F955BC5041D7A370FDFC34544185EB519857BC5041713D0AB7FC3454417B14AEF758BC50413D0AD733FE34544185EB514859BC50411F85EB21003554418FC2F5C859BC5041000000E0023554411F85EB3164BC50419A99997904355441666666F688BC5041000000A00C3554413D0AD78389BC50415C8FC2C50C3554419A9999C98ABC50410AD7A3100D3554410AD7A3508ABC5041EC51B8DE09355441B81E853B8ABC50415C8FC2050835544185EB51788ABC50413D0AD783033554411F85EBC18ABC504185EB51B8FE34544185EB51388BBC504114AE47F1F5345441F6285C5F5FBC504114AE4741ED345441EC51B8AE5EBC5041295C8F02ED345441E17A144E5DBC5041000000C0EC345441080000005C8FC2F566BC50418FC2F588FA34544148E17A0467BC504148E17A24FA345441C3F5283C67BC5041E17A145EF8345441E17A14BE6ABC50413D0AD713F93454411F85EBB16ABC5041B81E859BF934544114AE47716ABC504114AE4721FB345441E17A14AE69BC5041295C8F02FB3454415C8FC2F566BC50418FC2F588FA345441
+</a>
+
+<b>
+01060000000100000001030000000200000044000000F6285C5F5FBC504114AE4741ED34544185EB510864BC5041D7A3702DEE345441F6285C2F6ABC5041A4703DEAD234544148E17AF46CBC5041D7A3706DC53454415C8FC2D563BC50419A9999E9C5345441333333E35BBC5041CDCCCC2CC93454419A99999951BC50415C8FC215C7345441295C8F723CBC504133333393BE34544185EB51683FBC504133333353C2345441B81E85FB41BC5041EC51B80EC5345441EC51B89E44BC504114AE4791C7345441CDCCCCFC47BC504152B81E65CA345441666666564ABC5041F6285CBFCC345441C3F528AC4BBC50415C8FC265CE345441295C8F224DBC5041CDCCCC0CD0345441A4703D0A4FBC5041E17A141ED234544148E17A7451BC5041F6285C5FD43454410000002054BC5041A4703DEAD63454419A99995956BC504152B81E95D934544148E17A1457BC50410AD7A360DA34544185EB51C859BC5041F6285CBFDD345441A4703D2A5CBC50413D0AD7C3E034544185EB51B85BBC504152B81E15E1345441B81E85CB56BC50413D0AD713DB345441F6285C3F54BC5041EC51B80ED8345441295C8FE252BC50410AD7A3A0D6345441A4703DDA50BC50410AD7A3B0D4345441713D0A274EBC50415C8FC225D23454417B14AEA74ABC5041CDCCCC1CCE3454418FC2F50849BC5041CDCCCC2CCC3454410AD7A31047BC504152B81E55CA345441D7A3705D44BC50413D0AD733C83454415C8FC2A542BC50415C8FC2C5C6345441A4703DDA3FBC50418FC2F5B8C3345441713D0A573BBC5041AE47E18ABE34544148E17AE438BC504166666696BB345441B81E85AB36BC5041AE47E1DAB8345441E17A147E35BC50419A9999A9B63454419A99996934BC5041D7A370DDB3345441E17A148E33BC5041EC51B82EB23454411F85EBB132BC5041CDCCCC6CB1345441C3F5289C28BC50410AD7A3B0B13454416666668611BC5041C3F5284CB2345441B81E851B12BC5041295C8F12B43454411F85EB3113BC504114AE4791B6345441CDCCCC9C15BC5041F6285C6FBB345441B81E85AB16BC50417B14AEA7BD345441713D0A7717BC5041E17A145EBF345441C3F528CC18BC50410AD7A3A0C23454410AD7A3301ABC5041333333B3C634544114AE47911BBC50410AD7A3A0CB3454415C8FC2651EBC50415C8FC2C5D6345441A4703D0A1FBC5041F6285C5FD9345441713D0AA71FBC50413D0AD7E3DA345441000000B020BC5041C3F5283CDD345441713D0AE721BC5041AE47E1BADE3454419A9999A923BC504166666696DF3454419A9999C925BC5041B81E85CBDF34544148E17AB428BC504166666616E03454419A9999F92EBC5041295C8FE2E1345441295C8F4233BC50418FC2F5E8E23454419A99993937BC50417B14AEE7E3345441A17919073DBC5041D3AFF464E5345441F6285CEF3CBC50419A999959E5345441A4703D8A41BC5041D7A3708DE6345441E17A144E5DBC5041000000C0EC345441EC51B8AE5EBC5041295C8F02ED345441F6285C5F5FBC504114AE4741ED34544105000000666666C621BC504133333393B9345441C3F528BC21BC50415C8FC225B8345441A4703D9A22BC50419A999929B8345441F6285CAF22BC5041713D0A97B9345441666666C621BC504133333393B9345441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>399981 - 3009966
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+0106000000010000000103000000010000001B000000EC51B86E3E4D5141D7A3708D526C54417B14AE273E4D51418FC2F558556C5441000000A04F4D5141666666C6546C544185EB5118514D514152B81E65506C544166666656524D5141B81E85FB4A6C5441CDCCCC0C524D5141333333E3436C5441CDCCCCBC524D5141AE47E18A406C54410AD7A370544D5141000000A0396C5441EC51B84E574D514152B81EF52F6C5441C3F528FC534D5141D7A370ED2D6C5441A4703D5A514D514185EB51F82C6C5441A4703DBA4E4D5141F6285C0F2C6C5441B81E859B474D5141000000102A6C5441713D0A27404D51415C8FC245296C5441D7A3707D404D5141A4703DAA1F6C544148E17A74414D5141F6285CDF1D6C5441B81E859B374D5141F6285CDF1E6C544114AE47C1314D5141295C8FC2216C5441AE47E15A2F4D514114AE47B1236C54413D0AD7632F4D514100000090256C5441A4703DAA2F4D5141713D0AD7336C544185EB51682F4D514114AE47913D6C5441000000F0374D5141F6285C3F3E6C5441713D0AF73F4D5141CDCCCCAC3E6C54411F85EB613F4D5141333333B3456C5441D7A3700D3F4D51418FC2F5D84C6C5441EC51B86E3E4D5141D7A3708D526C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000009CD8EA95414D5141B2FA5FAB1D6C54410B2B7481414D514170A589B41D6C5441490B7EE1404D5141F75049EE1D6C5441B81E859B374D5141F6285CDF1E6C544114AE47C1314D5141295C8FC2216C544168A907902F4D514141B57B86236C5441CAFFB45D2F4D51413AF65248246C5441B5FD557D2F4D5141626EB3BB2A6C544110BD31892F4D514112D665B7386C544127F566822F4D5141E0F65B933D6C5441AAC91DFF3E4D514148A7AC883E6C5441713D0AF73F4D5141CDCCCCAC3E6C5441C2DB22EC3F4D514150A28C6F456C544100917EAB3F4D51411AE810974C6C5441E8A90AC13F4D5141FCBEE6A3516C5441920D3B17404D514185BC5617556C5441000000A04F4D5141666666C6546C544185EB5118514D514152B81E65506C544166666656524D5141B81E85FB4A6C5441CDCCCC0C524D5141333333E3436C5441CDCCCCBC524D5141AE47E18A406C54410AD7A370544D5141000000A0396C5441EC51B84E574D514152B81EF52F6C5441C3F528FC534D5141D7A370ED2D6C5441A4703D5A514D514185EB51F82C6C5441A4703DBA4E4D5141F6285C0F2C6C5441B81E859B474D5141000000102A6C5441713D0A27404D51415C8FC245296C54418B938E42404D514121C97136266C5441766F457D404D5141B7540BAF1F6C54419CD8EA95414D5141B2FA5FAB1D6C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>399981 - 3826712
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+0106000000010000000103000000010000001B000000EC51B86E3E4D5141D7A3708D526C54417B14AE273E4D51418FC2F558556C5441000000A04F4D5141666666C6546C544185EB5118514D514152B81E65506C544166666656524D5141B81E85FB4A6C5441CDCCCC0C524D5141333333E3436C5441CDCCCCBC524D5141AE47E18A406C54410AD7A370544D5141000000A0396C5441EC51B84E574D514152B81EF52F6C5441C3F528FC534D5141D7A370ED2D6C5441A4703D5A514D514185EB51F82C6C5441A4703DBA4E4D5141F6285C0F2C6C5441B81E859B474D5141000000102A6C5441713D0A27404D51415C8FC245296C5441D7A3707D404D5141A4703DAA1F6C544148E17A74414D5141F6285CDF1D6C5441B81E859B374D5141F6285CDF1E6C544114AE47C1314D5141295C8FC2216C5441AE47E15A2F4D514114AE47B1236C54413D0AD7632F4D514100000090256C5441A4703DAA2F4D5141713D0AD7336C544185EB51682F4D514114AE47913D6C5441000000F0374D5141F6285C3F3E6C5441713D0AF73F4D5141CDCCCCAC3E6C54411F85EB613F4D5141333333B3456C5441D7A3700D3F4D51418FC2F5D84C6C5441EC51B86E3E4D5141D7A3708D526C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000009CD8EA95414D5141B2FA5FAB1D6C54410B2B7481414D514170A589B41D6C5441490B7EE1404D5141F75049EE1D6C5441B81E859B374D5141F6285CDF1E6C544114AE47C1314D5141295C8FC2216C544168A907902F4D514141B57B86236C5441CAFFB45D2F4D51413AF65248246C5441B5FD557D2F4D5141626EB3BB2A6C544110BD31892F4D514112D665B7386C544127F566822F4D5141E0F65B933D6C5441AAC91DFF3E4D514148A7AC883E6C5441713D0AF73F4D5141CDCCCCAC3E6C5441C2DB22EC3F4D514150A28C6F456C544100917EAB3F4D51411AE810974C6C5441E8A90AC13F4D5141FCBEE6A3516C5441920D3B17404D514185BC5617556C5441000000A04F4D5141666666C6546C544185EB5118514D514152B81E65506C544166666656524D5141B81E85FB4A6C5441CDCCCC0C524D5141333333E3436C5441CDCCCCBC524D5141AE47E18A406C54410AD7A370544D5141000000A0396C5441EC51B84E574D514152B81EF52F6C5441C3F528FC534D5141D7A370ED2D6C5441A4703D5A514D514185EB51F82C6C5441A4703DBA4E4D5141F6285C0F2C6C5441B81E859B474D5141000000102A6C5441713D0A27404D51415C8FC245296C54418B938E42404D514121C97136266C5441766F457D404D5141B7540BAF1F6C54419CD8EA95414D5141B2FA5FAB1D6C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>401990 - 59475
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -25 </desc>
+<a>
+010600000001000000010300000001000000140000005C8FC235B00C5141C3F5281C38F15441713D0AE7B00C51418FC2F5D838F15441E17A14DEB10C5141E17A143E39F15441CDCCCCECB80C51413D0AD7D338F15441EC51B8EEC30C51410000000038F154413D0AD7B3C50C51417B14AEE737F15441E17A14DEC70C514152B81E2536F15441713D0A57C80C51419A9999D931F1544100000070C80C51410AD7A33027F15441D7A3705DC80C5141E17A14BE23F1544114AE47F1BC0C5141F6285C3F23F1544152B81EA5B70C51415C8FC22523F15441B81E859BB30C51419A99996923F1544185EB51B8B10C5141F6285CCF23F1544152B81ED5AF0C51418FC2F57824F154415C8FC235AD0C5141333333C325F154415C8FC2C5AD0C514152B81E5529F1544185EB51B8AE0C5141CDCCCCEC2FF15441000000C0AF0C514152B81E1537F154415C8FC235B00C5141C3F5281C38F15441
+</a>
+
+<b>
+0106000000010000000103000000010000001800000085EB51B8AE0C5141CDCCCCEC2FF15441FB5545B8AF0C5141DBEC68DF36F15441B67BC117B00C5141B3C523D937F154415C8FC235B00C5141C3F5281C38F15441713D0AE7B00C51418FC2F5D838F15441E17A14DEB10C5141E17A143E39F154414D837AC4B50C514114195F0339F1544143EE26B0C50C5141AF89B0D737F15441918127DFC70C514144BF5A1B36F154412DD40813C80C5141003AC44334F1544155C9BE20C80C5141B7E522C733F1544165ECD23CC80C5141215F586532F154410F0BC96CC80C51414CD3C69726F15441704EB15DC80C51419D7A17CA23F15441357FF871BE0C514188DEA55423F15441AF0FF5D6B70C51417024FB3623F15441987891B7B40C5141CDE2F45623F15441B81E859BB30C51419A99996923F15441910B7EDBB20C51414B4E0A9223F15441E8C24269B00C514132ACF64424F1544152B81ED5AF0C51418FC2F57824F154415C8FC235AD0C5141333333C325F154415C8FC2C5AD0C514152B81E5529F1544185EB51B8AE0C5141CDCCCCEC2FF15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>420861 - 37167
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+0106000000010000000103000000010000000B000000333333D35DA750411F85EB719A5855413333331354A7504148E17A849958554152B81E6552A7504152B81E65995855419A9999294BA75041D7A3701DB058554152B81EF54CA750410AD7A320B0585541EC51B8DE4DA750411F85EBE1AF5855415C8FC25550A75041B81E853BAF585541CDCCCC3C4FA75041C3F5280CB5585541D7A370FD53A7504185EB5118B558554152B81E7557A750410AD7A350AD585541333333D35DA750411F85EB719A585541
+</a>
+
+<b>
+010600000001000000010300000001000000110000003333331354A7504148E17A84995855410AAA617752A750415DC8D77899585541F496284452A75041D20EAACC99585541F6234E0452A75041906540959A585541A296C7B251A750417FA45A959B58554196B1ECF94FA75041FAD53EFEA05855413BD780464BA750415A6F4DFFAF5855410B649BCC4BA75041695AAF17B0585541863EA91A4CA7504107631E1FB058554152B81EF54CA750410AD7A320B0585541EC51B8DE4DA750411F85EBE1AF5855415C8FC25550A75041B81E853BAF585541CDCCCC3C4FA75041C3F5280CB5585541D7A370FD53A7504185EB5118B558554152B81E7557A750410AD7A350AD585541333333D35DA750411F85EB719A5855413333331354A7504148E17A8499585541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>895338 - 3574466
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -62 </desc>
+<a>
+0106000000010000000103000000010000001C0000005C8FC205257F514152B81E45E7A55441EC51B8CE227F51418FC2F568ECA55441D7A3708D217F5141D7A3705DF0A55441B81E854B207F5141B81E853BF5A554415C8FC225227F514148E17AD4F5A554418FC2F5C8247F514152B81E55F6A554417B14AE37317F5141F6285C5FF8A55441713D0A17377F514100000020F9A554413D0AD7D3417F51410AD7A3A0F9A554418FC2F5184D7F51411F85EB71FAA554415C8FC225517F51419A999989FAA55441F6285C7F527F51410AD7A360F9A5544114AE4721547F514166666666F7A5544133333373557F51413D0AD753F5A55441D7A3703D577F5141EC51B86EF1A554410AD7A3E0567F5141B81E856BF0A554413D0AD7D3557F5141CDCCCCCCEFA554417B14AE374F7F5141B81E85DBECA55441D7A370CD467F51415C8FC2D5EBA55441A4703DAA437F51417B14AE67EBA55441333333F33A7F51417B14AE07EAA55441295C8F02377F51417B14AE77E9A5544133333323327F51415C8FC2C5E8A55441666666A62F7F5141713D0A67E8A5544185EB51682E7F51419A999939E8A55441B81E85BB2C7F5141C3F528FCE7A55441A4703D7A287F5141CDCCCC9CE7A554415C8FC205257F514152B81E45E7A55441
+</a>
+
+<b>
+01060000000100000001030000000100000040000000332DC408527F5141CD2E5124FAA55441CB88DB94527F5141C0503B95F9A5544160A53E03537F51415D387C24F9A554411D5A646B537F514108AC1CBAF8A55441AD387BA3537F5141C5BF8B63F8A554416DE331D5537F514177E7D116F8A5544154E7BF22547F514168FC1F9FF7A554418E9BD254557F5141D65EBEC6F5A55441CB171CC2557F5141D100131EF5A554411700DF51567F5141A05CED29F4A554410B059F47577F514183D76E6DF1A55441553A3B5D577F5141AAA6D52FF1A554411904567E577F5141FED478D1F0A554410AD7A3E0567F5141B81E856BF0A55441AA12C0DE557F5141F821F8E6EFA55441B18E4CDC4E7F514102E9B71AEDA554419FD254CE4D7F514119E19CAFECA55441B6E16F8F4D7F51415413A996ECA554418FC2F5384D7F5141AC1C5A74ECA55441F2F4F0DE4C7F5141D2E2F963ECA55441B556C551467F5141A416DF32EBA554419149259F447F51413B57CEE3EAA5544178B872EE437F5141652161D9EAA55441BC1B2DF2437F51419C0D57C4EAA55441A4703DAA437F51417B14AE67EBA55441333333F33A7F51417B14AE07EAA55441295C8F02377F51417B14AE77E9A5544133333323327F51415C8FC2C5E8A55441666666A62F7F5141713D0A67E8A5544185EB51682E7F51419A999939E8A55441B81E85BB2C7F5141C3F528FCE7A55441A4703D7A287F5141CDCCCC9CE7A554411F984D5A257F51410B3B804DE7A5544197E8402B247F5141BCE7D975E9A5544110207623237F5141A6E6C112ECA554414836CF8F227F514199943A7CEDA55441BD862D27227F51417719DD8CEEA554412F31CEE7217F51413C0C5888EFA55441E078DDA5217F514198D53293F0A554413D0AD77B207F514114AE4749F5A55441CF810D0A227F51417FA5179AF5A55441BA16A48D247F5141665EB31CF6A5544122ED2ED3267F514157AEB792F6A55441BAC225C9287F514119BF95F8F6A55441E970E0502A7F514136E11448F7A554416C385F412B7F51412B19E378F7A55441DFB189672C7F51415C9E95B4F7A5544134C729182D7F514142AA6DD8F7A5544116F455DC2D7F514123DBACF3F7A554417B14AE37317F5141F6285C5FF8A55441B34CF013377F5141BCA3CB0FF9A55441BADFABCE377F514136FC9728F9A5544183B39590387F5141390FA13DF9A55441203CC347397F514143658350F9A554414D5380773B7F5141D41CA973F9A554411F409EC53F7F5141317BDDB8F9A554419FEF29DA417F514130134EDAF9A5544117521B82447F5141E70E0005FAA554418D79C8C7457F514137427319FAA5544192A424B4477F5141DDDF5D38FAA5544178F208A44A7F5141086D9467FAA5544123D1381F4D7F5141DCF6768FFAA55441E336803B507F5141170877C1FAA55441332DC408527F5141CD2E5124FAA55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>896330 - 1170011
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000004A000000B81E851BEE6751413333339394AA54410AD7A320ED6751419A99990995AA5441E17A146EEC67514185EB51B897AA5441666666F6E9675141A4703D5A9AAA544100000000E76751419A9999099CAA544152B81EF5E36751419A9999099CAA544148E17A64DF6751418FC2F5B89AAA5441EC51B82EDC675141666666C699AA5441B81E855BD86751411F85EB9199AA5441B81E853BD567514185EB51F89AAA54410AD7A310D26751417B14AE579EAA5441AE47E1DACE675141E17A14DEA2AA5441A4703DFACB6751417B14AE47A6AA54418FC2F518C9675141666666C6A6AA544133333373C46751415C8FC255A5AA54411F85EB71C167514114AE47B1A6AA5441C3F5287CBE67514152B81E25A7AA544114AE47D1BB6751410AD7A3D0A6AA5441AE47E1DAB8675141B81E855BA6AA544133333373B667514166666656A8AA54417B14AE67B4675141F6285C7FA9AA54411F85EB71B1675141000000F0AAAA5441CDCCCCACAD67514133333363ACAA5441E17A143EAA6751419A999959ACAA544185EB51F8A6675141AE47E13AACAA5441295C8F12A4675141295C8F92ACAA5441C3F5281CA067514100000020AEAA5441AE47E1CA9E6751410AD7A3E0ACAA54417B14AEF79F675141295C8FF2B2AA5441C3F5285CA5675141666666A6B6AA544166666676A96751410AD7A3C0B7AA5441F6285CAFAD675141E17A14FEB4AA544166666606B467514100000040B4AA544100000060B46751410AD7A3C0B8AA54413D0AD713B76751410AD7A300B9AA5441E17A142EBA6751417B14AEA7BAAA5441713D0AB7BB675141CDCCCC5CBCAA54417B14AE97BC6751418FC2F518BEAA5441713D0AD7BC675141C3F5285CC0AA544148E17AE4BB67514166666616C2AA5441EC51B8EEB867514133333333C6AA5441AE47E13AB5675141295C8F92C9AA54417B14AE97B3675141D7A370CDCAAA5441F6285C1FB5675141A4703D1ACCAA5441A4703D2AC1675141666666A6DAAA5441D7A370DDC5675141333333D3DFAA544152B81E45C86751411F85EBA1DFAA5441CDCCCC4CCC67514185EB5108DFAA5441F6285C7FCF67514152B81E35DEAA5441F6285CDFD267514152B81E35DDAA544152B81E95D7675141CDCCCC9CDBAA5441EC51B8FEDC675141295C8F62DAAA54410AD7A370DF675141666666F6D8AA544100000000E0675141713D0A67D5AA544100000010DF675141295C8F52D3AA5441295C8F92E1675141F6285CEFD0AA54413D0AD753E4675141CDCCCC8CCEAA5441A4703D4AE7675141EC51B8EECDAA544133333363E9675141CDCCCC4CCBAA5441A4703D6AEA6751413D0AD7A3C7AA54410AD7A3B0EB6751413D0AD783C4AA5441CDCCCC9CEF67514152B81E35B7AA544185EB5168EE675141E17A145EB5AA54415C8FC2C5ED675141295C8F82B2AA5441666666C6ED6751413D0AD7F3AFAA54410AD7A3F0ED67514148E17A84AEAA54417B14AEB7EE6751418FC2F578ACAA5441000000E0EF675141E17A14EEA9AA5441D7A370DDEF67514185EB5168A6AA54413D0AD723F06751415C8FC2A59DAA54413D0AD703F067514114AE47A199AA5441CDCCCCDCEF6751410AD7A31098AA5441B81E85FBEE675141AE47E1FA95AA5441B81E851BEE6751413333339394AA5441
+</a>
+
+<b>
+01060000000100000001030000000200000051000000B81E85FBEE675141AE47E1FA95AA5441B81E851BEE6751413333339394AA54410AD7A320ED6751419A99990995AA5441005484C7EA6751413ECEA55297AA5441EB7A69E5E867514152F1BCD998AA544198EC581BE7675141821F74079AAA54410C3242F6E56751411F2DAC029BAA5441C2C3B029E4675141A8D6BCED9AAA5441465CBBDAE267514172CC52319AAA5441424BB5A0E16751412C6FC79E99AA544125C5811CDE6751418F618FA398AA54414A8BD3F0D9675141B007D24F98AA5441ECB81A14D7675141D5BE1A3699AA5441A87FEB36D5675141BCC137FD9AAA54416355D761D4675141CF4416E09BAA54415BBF5DF2D0675141595B3AEB9FAA54419DA5DFCCCD6751417C92491EA4AA5441A7AD6ED1CB675141FF9DB14EA6AA54417FAE7C47C9675141D93567BEA6AA5441A1E14A8CC46751412EE6885DA5AA5441092DA583C1675141A1CE45A9A6AA54413671F745BE67514195686A1EA7AA544190B3A650BB675141F79AC6BCA6AA5441F13CF0ECB8675141900B4F5EA6AA5441975899C8B7675141A89877D5A1AA5441E76DAE75B567514141500726A1AA54412160C8DDAC675141AA100FC3A3AA5441516D2C11A76751418504EF5BA7AA54411BF1492AA46751419CC0366BA9AA544130AEC2D1A0675141230EBEC7ABAA5441AE47E1CA9E6751410AD7A3E0ACAA54417B14AEF79F675141295C8FF2B2AA5441C3F5285CA5675141666666A6B6AA544166666676A96751410AD7A3C0B7AA5441F6285CAFAD675141E17A14FEB4AA544166666606B467514100000040B4AA544100000060B46751410AD7A3C0B8AA54413D0AD713B76751410AD7A300B9AA5441E17A142EBA6751417B14AEA7BAAA5441713D0AB7BB675141CDCCCC5CBCAA54417B14AE97BC6751418FC2F518BEAA5441713D0AD7BC675141C3F5285CC0AA544148E17AE4BB67514166666616C2AA5441EC51B8EEB867514133333333C6AA5441AE47E13AB5675141295C8F92C9AA54417B14AE97B3675141D7A370CDCAAA5441F6285C1FB5675141A4703D1ACCAA5441A4703D2AC1675141666666A6DAAA5441D7A370DDC5675141333333D3DFAA544152B81E45C86751411F85EBA1DFAA5441CDCCCC4CCC67514185EB5108DFAA5441F6285C7FCF67514152B81E35DEAA5441F6285CDFD267514152B81E35DDAA544152B81E95D7675141CDCCCC9CDBAA5441EC51B8FEDC675141295C8F62DAAA54410AD7A370DF675141666666F6D8AA54412FCA7B27E0675141133D8352D5AA544145023626DF675141E4B7D683D3AA5441AE7F1605E26751416C9E368CD0AA5441A2298D3EE46751417DC03A9FCEAA5441E87DDC2FE767514184E537F4CDAA54419BBC0C09E9675141C7C8F1BDCBAA5441B288CA7BEA675141068ED278C7AA5441BF85D00AEC67514156CAE951C3AA5441E1438FD4ED67514169D3F640BDAA54415060B572EF675141B702BADDBCAA54418B820E0EF0675141C27772BDBAAA5441CDCCCC9CEF67514152B81E35B7AA544185EB5168EE675141E17A145EB5AA54415C8FC2C5ED675141295C8F82B2AA5441666666C6ED6751413D0AD7F3AFAA54410AD7A3F0ED67514148E17A84AEAA54417B14AEB7EE6751418FC2F578ACAA544190AF31D6EF6751411C7F9E03AAAA5441E898BDDFEF675141AE26B692A9AA54410F95CADDEF675141121314E4A6AA5441D7A370DDEF67514185EB5168A6AA54413D0AD723F06751415C8FC2A59DAA54413D0AD703F067514114AE47A199AA5441CDCCCCDCEF6751410AD7A31098AA5441B81E85FBEE675141AE47E1FA95AA54410700000029F29CE6CE6751417AE54C9BB4AA544174602EB3D06751411F249AF8B2AA54417C823A27D36751413CB9D66AB1AA54415FEDFDB4D46751411B1394BEB1AA54412DF49932D56751412335A032B4AA5441787134EDD1675141B400BD91B6AA544129F29CE6CE6751417AE54C9BB4AA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>896330 - 3328873
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000004A000000B81E851BEE6751413333339394AA54410AD7A320ED6751419A99990995AA5441E17A146EEC67514185EB51B897AA5441666666F6E9675141A4703D5A9AAA544100000000E76751419A9999099CAA544152B81EF5E36751419A9999099CAA544148E17A64DF6751418FC2F5B89AAA5441EC51B82EDC675141666666C699AA5441B81E855BD86751411F85EB9199AA5441B81E853BD567514185EB51F89AAA54410AD7A310D26751417B14AE579EAA5441AE47E1DACE675141E17A14DEA2AA5441A4703DFACB6751417B14AE47A6AA54418FC2F518C9675141666666C6A6AA544133333373C46751415C8FC255A5AA54411F85EB71C167514114AE47B1A6AA5441C3F5287CBE67514152B81E25A7AA544114AE47D1BB6751410AD7A3D0A6AA5441AE47E1DAB8675141B81E855BA6AA544133333373B667514166666656A8AA54417B14AE67B4675141F6285C7FA9AA54411F85EB71B1675141000000F0AAAA5441CDCCCCACAD67514133333363ACAA5441E17A143EAA6751419A999959ACAA544185EB51F8A6675141AE47E13AACAA5441295C8F12A4675141295C8F92ACAA5441C3F5281CA067514100000020AEAA5441AE47E1CA9E6751410AD7A3E0ACAA54417B14AEF79F675141295C8FF2B2AA5441C3F5285CA5675141666666A6B6AA544166666676A96751410AD7A3C0B7AA5441F6285CAFAD675141E17A14FEB4AA544166666606B467514100000040B4AA544100000060B46751410AD7A3C0B8AA54413D0AD713B76751410AD7A300B9AA5441E17A142EBA6751417B14AEA7BAAA5441713D0AB7BB675141CDCCCC5CBCAA54417B14AE97BC6751418FC2F518BEAA5441713D0AD7BC675141C3F5285CC0AA544148E17AE4BB67514166666616C2AA5441EC51B8EEB867514133333333C6AA5441AE47E13AB5675141295C8F92C9AA54417B14AE97B3675141D7A370CDCAAA5441F6285C1FB5675141A4703D1ACCAA5441A4703D2AC1675141666666A6DAAA5441D7A370DDC5675141333333D3DFAA544152B81E45C86751411F85EBA1DFAA5441CDCCCC4CCC67514185EB5108DFAA5441F6285C7FCF67514152B81E35DEAA5441F6285CDFD267514152B81E35DDAA544152B81E95D7675141CDCCCC9CDBAA5441EC51B8FEDC675141295C8F62DAAA54410AD7A370DF675141666666F6D8AA544100000000E0675141713D0A67D5AA544100000010DF675141295C8F52D3AA5441295C8F92E1675141F6285CEFD0AA54413D0AD753E4675141CDCCCC8CCEAA5441A4703D4AE7675141EC51B8EECDAA544133333363E9675141CDCCCC4CCBAA5441A4703D6AEA6751413D0AD7A3C7AA54410AD7A3B0EB6751413D0AD783C4AA5441CDCCCC9CEF67514152B81E35B7AA544185EB5168EE675141E17A145EB5AA54415C8FC2C5ED675141295C8F82B2AA5441666666C6ED6751413D0AD7F3AFAA54410AD7A3F0ED67514148E17A84AEAA54417B14AEB7EE6751418FC2F578ACAA5441000000E0EF675141E17A14EEA9AA5441D7A370DDEF67514185EB5168A6AA54413D0AD723F06751415C8FC2A59DAA54413D0AD703F067514114AE47A199AA5441CDCCCCDCEF6751410AD7A31098AA5441B81E85FBEE675141AE47E1FA95AA5441B81E851BEE6751413333339394AA5441
+</a>
+
+<b>
+01060000000100000001030000000200000051000000B81E85FBEE675141AE47E1FA95AA5441B81E851BEE6751413333339394AA54410AD7A320ED6751419A99990995AA5441005484C7EA6751413ECEA55297AA5441EB7A69E5E867514152F1BCD998AA544198EC581BE7675141821F74079AAA54410C3242F6E56751411F2DAC029BAA5441C2C3B029E4675141A8D6BCED9AAA5441465CBBDAE267514172CC52319AAA5441424BB5A0E16751412C6FC79E99AA544125C5811CDE6751418F618FA398AA54414A8BD3F0D9675141B007D24F98AA5441ECB81A14D7675141D5BE1A3699AA5441A87FEB36D5675141BCC137FD9AAA54416355D761D4675141CF4416E09BAA54415BBF5DF2D0675141595B3AEB9FAA54419DA5DFCCCD6751417C92491EA4AA5441A7AD6ED1CB675141FF9DB14EA6AA54417FAE7C47C9675141D93567BEA6AA5441A1E14A8CC46751412EE6885DA5AA5441092DA583C1675141A1CE45A9A6AA54413671F745BE67514195686A1EA7AA544190B3A650BB675141F79AC6BCA6AA5441F13CF0ECB8675141900B4F5EA6AA5441975899C8B7675141A89877D5A1AA5441E76DAE75B567514141500726A1AA54412160C8DDAC675141AA100FC3A3AA5441516D2C11A76751418504EF5BA7AA54411BF1492AA46751419CC0366BA9AA544130AEC2D1A0675141230EBEC7ABAA5441AE47E1CA9E6751410AD7A3E0ACAA54417B14AEF79F675141295C8FF2B2AA5441C3F5285CA5675141666666A6B6AA544166666676A96751410AD7A3C0B7AA5441F6285CAFAD675141E17A14FEB4AA544166666606B467514100000040B4AA544100000060B46751410AD7A3C0B8AA54413D0AD713B76751410AD7A300B9AA5441E17A142EBA6751417B14AEA7BAAA5441713D0AB7BB675141CDCCCC5CBCAA54417B14AE97BC6751418FC2F518BEAA5441713D0AD7BC675141C3F5285CC0AA544148E17AE4BB67514166666616C2AA5441EC51B8EEB867514133333333C6AA5441AE47E13AB5675141295C8F92C9AA54417B14AE97B3675141D7A370CDCAAA5441F6285C1FB5675141A4703D1ACCAA5441A4703D2AC1675141666666A6DAAA5441D7A370DDC5675141333333D3DFAA544152B81E45C86751411F85EBA1DFAA5441CDCCCC4CCC67514185EB5108DFAA5441F6285C7FCF67514152B81E35DEAA5441F6285CDFD267514152B81E35DDAA544152B81E95D7675141CDCCCC9CDBAA5441EC51B8FEDC675141295C8F62DAAA54410AD7A370DF675141666666F6D8AA54412FCA7B27E0675141133D8352D5AA544145023626DF675141E4B7D683D3AA5441AE7F1605E26751416C9E368CD0AA5441A2298D3EE46751417DC03A9FCEAA5441E87DDC2FE767514184E537F4CDAA54419BBC0C09E9675141C7C8F1BDCBAA5441B288CA7BEA675141068ED278C7AA5441BF85D00AEC67514156CAE951C3AA5441E1438FD4ED67514169D3F640BDAA54415060B572EF675141B702BADDBCAA54418B820E0EF0675141C27772BDBAAA5441CDCCCC9CEF67514152B81E35B7AA544185EB5168EE675141E17A145EB5AA54415C8FC2C5ED675141295C8F82B2AA5441666666C6ED6751413D0AD7F3AFAA54410AD7A3F0ED67514148E17A84AEAA54417B14AEB7EE6751418FC2F578ACAA544190AF31D6EF6751411C7F9E03AAAA5441E898BDDFEF675141AE26B692A9AA54410F95CADDEF675141121314E4A6AA5441D7A370DDEF67514185EB5168A6AA54413D0AD723F06751415C8FC2A59DAA54413D0AD703F067514114AE47A199AA5441CDCCCCDCEF6751410AD7A31098AA5441B81E85FBEE675141AE47E1FA95AA54410700000029F29CE6CE6751417AE54C9BB4AA544174602EB3D06751411F249AF8B2AA54417C823A27D36751413CB9D66AB1AA54415FEDFDB4D46751411B1394BEB1AA54412DF49932D56751412335A032B4AA5441787134EDD1675141B400BD91B6AA544129F29CE6CE6751417AE54C9BB4AA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>943963 - 1823202
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -175 </desc>
+<a>
+01060000000100000001030000000100000032000000F6285CFF92BC50418FC2F548E536544148E17A6498BC504185EB5178E5365441A4703D1A9BBC50419A999999E536544185EB51F896BC504152B81EB5D6365441AE47E1BA8BBC50411F85EBF1D536544185EB517888BC50419A9999F9C63654411F85EB6187BC50413D0AD753C7365441E17A149E86BC5041F6285C5FC7365441295C8FC285BC50415C8FC2E5C636544185EB51C884BC5041F6285CAFC636544148E17AF483BC5041A4703DDAC6365441CDCCCC2C83BC5041C3F5284CC7365441F6285C9F82BC5041CDCCCCECC7365441E17A146E81BC504166666656C8365441EC51B87E80BC5041295C8F52C8365441A4703DEA7FBC504148E17AF4C73654417B14AE977FBC5041295C8F82C73654413D0AD7837FBC5041713D0AB7C6365441295C8F027FBC50410AD7A360C6365441E17A145E7EBC50419A999939C6365441C3F528FC7DBC504152B81E55C63654415C8FC2C57DBC5041B81E85ABC6365441A4703D9A7DBC50410AD7A330C7365441F6285C5F7DBC5041B81E856BC736544152B81E157DBC504100000040C7365441EC51B8BE7CBC5041AE47E1BAC63654419A9999397CBC504166666616C6365441AE47E1FA7BBC50415C8FC275C5365441295C8F027CBC5041E17A149EC43654418FC2F5587CBC504100000090C3365441A4703D2A7CBC5041E17A141EC3365441D7A3708D7BBC5041CDCCCCACC2365441B81E851B7BBC50411F85EB61C2365441EC51B88E7ABC5041CDCCCCDCC1365441B81E850B71BC504114AE47E1C5365441CDCCCCEC6ABC5041713D0A77C8365441B81E85FB63BC50415C8FC265CB36544185EB51086CBC5041713D0AE7D13654413D0AD76371BC50419A999939D836544152B81E9575BC504100000040E236544114AE47D177BC50417B14AE17E9365441F6285C2F7EBC5041295C8FC2E4365441B81E850B80BC5041D7A3705DE3365441F6285CAF83BC50418FC2F588E33654415C8FC2B584BC50418FC2F588E336544114AE47E185BC50411F85EBB1E33654411F85EBC186BC50410AD7A3E0E3365441B81E85AB88BC50410AD7A310E4365441666666268BBC5041CDCCCC6CE4365441F6285CFF92BC50418FC2F548E5365441
+</a>
+
+<b>
+0106000000010000000103000000010000003400000026A4BA3366BC504168DDBF75CA36544177CF24AF65BC504183E46F99CB3654417DB4E5F265BC5041CA88CC7FCC365441B88EC05166BC5041A642F52FCD36544185EB51086CBC5041713D0AE7D13654413D0AD76371BC50419A999939D836544152B81E9575BC504100000040E236544114AE47D177BC50417B14AE17E93654413D0AD7D372BC504100000000F13654416666669672BC5041666666F6F1365441666666E66DBC5041A4703DDAF33654411F85EB316CBC5041A4703D2AF4365441333333036CBC50417B14AE770037544152B81E2571BC50415C8FC245153754413D0AD75373BC504152B81E65153754418FC2F5D874BC504148E17AA4153754416666661678BC504185EB517816375441C3F5283C7ABC50416666664617375441B81E856B7BBC50419A99997917375441A4703DCA7DBC504185EB516817375441D7A370CD7FBC504152B81E35173754413D0AD7B381BC5041A4703D9A16375441295C8FB284BC5041295C8FA2143754417B14AE0788BC5041AE47E10A123754413D0AD7A389BC5041D7A3705D10375441666666568BBC5041EC51B80E0D3754413D0AD7B38CBC504166666686093754410AD7A3608EBC50410000003005375441000000C08FBC5041B81E85AB0237544185EB519892BC504133333313FD3654418FC2F5A899BC5041EC51B87EEB365441CDCCCC1C9ABC5041C3F5284CEA365441F6285C6F9BBC5041B81E85CBE6365441A4703D1A9BBC50419A999999E536544185EB51F896BC504152B81EB5D636544164CEF09A96BC5041030BC9AED63654418939711395BC5041816137E5D6365441BA0D642E95BC504137120E96D63654411DF3AD9E92BC5041ECA09269D63654410BCA9E9D92BC5041CD3B8069D6365441483D8DA78CBC5041D4B0F901D63654411A5EB09F8CBC50417F4922E0D5365441C03FE7898CBC5041FAD72EDED5365441750194328BBC5041224CB2BCCF365441C204E6EC89BC50419F83F842CA36544122DBB48C89BC504185996947C8365441CCDC12AB7EBC50415CA129BFC936544167C282E779BC5041C9435321C336544135C86D6379BC50417FCC335BC2365441B81E850B71BC504114AE47E1C5365441CDCCCCEC6ABC5041713D0A77C836544126A4BA3366BC504168DDBF75CA365441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>943963 - 3473755
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -175 </desc>
+<a>
+01060000000100000001030000000100000032000000F6285CFF92BC50418FC2F548E536544148E17A6498BC504185EB5178E5365441A4703D1A9BBC50419A999999E536544185EB51F896BC504152B81EB5D6365441AE47E1BA8BBC50411F85EBF1D536544185EB517888BC50419A9999F9C63654411F85EB6187BC50413D0AD753C7365441E17A149E86BC5041F6285C5FC7365441295C8FC285BC50415C8FC2E5C636544185EB51C884BC5041F6285CAFC636544148E17AF483BC5041A4703DDAC6365441CDCCCC2C83BC5041C3F5284CC7365441F6285C9F82BC5041CDCCCCECC7365441E17A146E81BC504166666656C8365441EC51B87E80BC5041295C8F52C8365441A4703DEA7FBC504148E17AF4C73654417B14AE977FBC5041295C8F82C73654413D0AD7837FBC5041713D0AB7C6365441295C8F027FBC50410AD7A360C6365441E17A145E7EBC50419A999939C6365441C3F528FC7DBC504152B81E55C63654415C8FC2C57DBC5041B81E85ABC6365441A4703D9A7DBC50410AD7A330C7365441F6285C5F7DBC5041B81E856BC736544152B81E157DBC504100000040C7365441EC51B8BE7CBC5041AE47E1BAC63654419A9999397CBC504166666616C6365441AE47E1FA7BBC50415C8FC275C5365441295C8F027CBC5041E17A149EC43654418FC2F5587CBC504100000090C3365441A4703D2A7CBC5041E17A141EC3365441D7A3708D7BBC5041CDCCCCACC2365441B81E851B7BBC50411F85EB61C2365441EC51B88E7ABC5041CDCCCCDCC1365441B81E850B71BC504114AE47E1C5365441CDCCCCEC6ABC5041713D0A77C8365441B81E85FB63BC50415C8FC265CB36544185EB51086CBC5041713D0AE7D13654413D0AD76371BC50419A999939D836544152B81E9575BC504100000040E236544114AE47D177BC50417B14AE17E9365441F6285C2F7EBC5041295C8FC2E4365441B81E850B80BC5041D7A3705DE3365441F6285CAF83BC50418FC2F588E33654415C8FC2B584BC50418FC2F588E336544114AE47E185BC50411F85EBB1E33654411F85EBC186BC50410AD7A3E0E3365441B81E85AB88BC50410AD7A310E4365441666666268BBC5041CDCCCC6CE4365441F6285CFF92BC50418FC2F548E5365441
+</a>
+
+<b>
+0106000000010000000103000000010000003400000026A4BA3366BC504168DDBF75CA36544177CF24AF65BC504183E46F99CB3654417DB4E5F265BC5041CA88CC7FCC365441B88EC05166BC5041A642F52FCD36544185EB51086CBC5041713D0AE7D13654413D0AD76371BC50419A999939D836544152B81E9575BC504100000040E236544114AE47D177BC50417B14AE17E93654413D0AD7D372BC504100000000F13654416666669672BC5041666666F6F1365441666666E66DBC5041A4703DDAF33654411F85EB316CBC5041A4703D2AF4365441333333036CBC50417B14AE770037544152B81E2571BC50415C8FC245153754413D0AD75373BC504152B81E65153754418FC2F5D874BC504148E17AA4153754416666661678BC504185EB517816375441C3F5283C7ABC50416666664617375441B81E856B7BBC50419A99997917375441A4703DCA7DBC504185EB516817375441D7A370CD7FBC504152B81E35173754413D0AD7B381BC5041A4703D9A16375441295C8FB284BC5041295C8FA2143754417B14AE0788BC5041AE47E10A123754413D0AD7A389BC5041D7A3705D10375441666666568BBC5041EC51B80E0D3754413D0AD7B38CBC504166666686093754410AD7A3608EBC50410000003005375441000000C08FBC5041B81E85AB0237544185EB519892BC504133333313FD3654418FC2F5A899BC5041EC51B87EEB365441CDCCCC1C9ABC5041C3F5284CEA365441F6285C6F9BBC5041B81E85CBE6365441A4703D1A9BBC50419A999999E536544185EB51F896BC504152B81EB5D636544164CEF09A96BC5041030BC9AED63654418939711395BC5041816137E5D6365441BA0D642E95BC504137120E96D63654411DF3AD9E92BC5041ECA09269D63654410BCA9E9D92BC5041CD3B8069D6365441483D8DA78CBC5041D4B0F901D63654411A5EB09F8CBC50417F4922E0D5365441C03FE7898CBC5041FAD72EDED5365441750194328BBC5041224CB2BCCF365441C204E6EC89BC50419F83F842CA36544122DBB48C89BC504185996947C8365441CCDC12AB7EBC50415CA129BFC936544167C282E779BC5041C9435321C336544135C86D6379BC50417FCC335BC2365441B81E850B71BC504114AE47E1C5365441CDCCCCEC6ABC5041713D0A77C836544126A4BA3366BC504168DDBF75CA365441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>161756 - 978070
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+010600000001000000010300000001000000400000005C8FC2C5304851417B14AEF76C4B5441666666B627485141CDCCCC2C7D4B544185EB51A82048514114AE47018A4B5441C3F5289C1C485141E17A145E884B5441666666C61B4851413D0AD793884B54419A9999691648514148E17AF4914B5441C3F528EC13485141A4703D0A914B54418FC2F558124851411F85EBF1904B5441295C8FD208485141713D0A97834B54413D0AD703FD475141F6285C0FA24B5441333333B3FF475141AE47E1FAA24B54419A99995906485141A4703D2AA54B5441E17A14CE09485141EC51B83EA64B544114AE47910A485141F6285CFFA54B54410AD7A3400B48514166666636A54B5441000000900C48514152B81EA5A14B54419A9999A90C485141C3F528CCA04B544152B81E950C485141E17A14AE9E4B54418FC2F5C80C485141333333839D4B5441AE47E1CA0D485141B81E854B9B4B5441C3F5283C0E485141EC51B8AE994B5441A4703D7A0E4851410AD7A340984B5441EC51B88E0E485141713D0A37964B54415C8FC2050F485141333333D3944B5441EC51B80E1148514148E17A34924B5441C3F528FC11485141EC51B89E914B5441AE47E14A1348514133333383914B544167A6C63D15485141ADB8368A924B5441333333231B4851419A999989944B5441AE47E1FA1A485141D7A3705D964B5441AE47E1CA1A48514114AE4721984B5441333333E31A48514133333323994B5441C3F5289C1B485141D7A3704D9A4B544185EB51581D485141F6285C0F9B4B54415C8FC225204851418FC2F5E89B4B54418FC2F5B8214851418FC2F5E89B4B544166666646244851411F85EB419C4B5441AE47E13A264851411F85EB519C4B5441E17A14CE274851411F85EB419C4B54411F85EBE1294851410AD7A3D09B4B5441D7A3706D2B485141F6285C0F9B4B5441000000B02C485141D7A3702D9A4B54415C8FC2852D485141295C8F42994B544114AE47112F48514148E17A64974B5441295C8FD230485141713D0AA7954B5441C3F5280C33485141B81E85CB934B54416666660637485141EC51B82E914B544152B81E753A485141AE47E1FA8E4B54419A9999E93D485141B81E856B8C4B5441713D0AA7404851417B14AE77894B54410706DE6D3F485141000C4F49884B54411CC187763C485141429EAF02874B544105F1EFEB3B485141A44E57AE864B5441CB1B612B3B485141998A339B864B5441295C8F123848514185EB5128864B544152B81E253B4851411F85EB71784B5441719B6DA34648514158C6D31C7B4B5441C10AC8B9494851414691DA08704B5441719B6DA34648514166D3E7F16E4B5441D061955E4348514166D3E7F16E4B54418F93C1BC3F485141F6C65CDA6F4B54417EA881783A485141F62180F26C4B54410DAD60A93248514115BFB0F3684B54415C8FC2C5304851417B14AEF76C4B5441
+</a>
+
+<b>
+0106000000010000000103000000010000002D0000003D0AD7533F4851410AD7A3903D4B54417B14AE77334851413D0AD703384B5441E17A14CE3048514152B81E75364B5441000000C02B485141666666563B4B54417B14AEF73D4851417B14AE274A4B544130DADFAE3A485141047AB0E0524B54419176CE46374851419EF90DDF5B4B54416904194B334851413DA73563664B5441A9568F6932485141B20C8EFB684B5441A69CFE2C37485141C1B0EF426B4B5441A70CC3D03C485141C609AD3D6E4B54416B3A7DED3F48514140DD2DCE6F4B54413EB3AA0343485141CEF0831A6F4B544116C3DFC846485141AD2C1FFF6E4B544134FFD4BC494851419B1E51F96F4B5441F69AFB964A4851412247EE8B6C4B5441F83E767C4B485141BFB9FBF0684B54412CA53DD64B485141AF38DB7A674B5441AF3FB0054C485141000B869B664B5441D8B4F47E4A485141515755F2654B5441D6B99F92484851413E228042654B54414107A0EC46485141C7BC6A9A654B5441AD54A04645485141D2D47FE8664B54418F07B64843485141BF9FAA38664B544171BACB4A41485141EB2BC00D654B5441BB93CB1D42485141DE1856D3614B544158638B254348514162BD96525E4B5441E1FD757D4348514105AFC1CF5C4B5441F4324B2D44485141427557685A4B544189E54AD3454851415DC7EC795A4B54414402F5D848485141395897065B4B5441073C5F404B485141291E17435C4B5441238EF4514B485141892741B25F4B5441E1D1B4E0494851415779C067634B5441A110CA5B4A485141D8F6EA5D644B5441DBAF496B4C4851417DE36AC7644B5441787F09734D485141414996CB604B54412589493E4D485141FC91016E5D4B5441EC51B81E4D485141A4703DFA584B54410AD7A3004C48514100000020534B544114AE47B14B485141EC51B87E514B5441333333134B485141295C8FA24D4B544114AE47F14A485141A4703D0A494B5441F6285C6F4B48514148E17AD4424B54413D0AD7533F4851410AD7A3903D4B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>897377 - 1166563
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -24 </desc>
+<a>
+01060000000100000001030000000100000049000000E17A14BE927251413D0AD73308A654417B14AE17927251415C8FC2D508A65441295C8F2292725141295C8F4209A654413333336392725141295C8F320AA65441AE47E16A927251415C8FC2D50AA654418FC2F518927251413D0AD7A30BA65441F6285C1F92725141CDCCCCBC0DA65441A4703DFA91725141C3F528AC0EA654410000009091725141A4703D8A0FA654418FC2F508917251419A99995910A65441A4703D9A8F72514148E17A6417A65441F6285C3F8E725141AE47E17A1CA65441CDCCCC1C8C72514114AE470123A6544185EB5158897251415C8FC2952CA654416666667687725141C3F528BC2EA6544148E17AA4877251418FC2F52832A65441AE47E10A8772514148E17A8438A654418FC2F51882725141F6285CCF37A65441B81E85EB7E7251413D0AD7C337A65441E17A143E7E725141CDCCCCAC35A654411F85EB1174725141E17A14DE39A65441000000B070725141A4703D9A3BA65441B81E856B70725141666666C63AA65441C3F5284C6D725141C3F528AC3BA654410AD7A3F0707251410000003045A654410AD7A38070725141EC51B85E45A654417B14AE4772725141A4703DFA48A654419A9999198A725141713D0A473EA65441A4703DCA89725141E17A14DE3CA654419A9999A996725141713D0A3736A65441713D0AA79772514152B81E353AA654419A999979987251416666664643A65441AE47E1FA9E725141A4703D2A43A6544185EB51789E7251417B14AEB72EA65441B81E858B9C7251415C8FC2A52EA654411F85EB21997251417B14AE772FA654418FC2F5D898725141666666662DA65441CDCCCCEC97725141C3F528BC2BA65441E17A148E987251417B14AEF72AA6544114AE47C19D725141A4703D9A2AA65441E17A143EA2725141333333332BA654419A9999A9A67251415C8FC2052CA654410AD7A330AB7251410AD7A3102DA654417B14AEF7AD72514152B81EB529A654413D0AD703AD7251419A99990929A65441F6285CAFAA725141333333E328A654417B14AE97A67251418FC2F56827A654410AD7A3B0A4725141D7A3700D27A65441D7A3701DA0725141E17A14EE25A65441AE47E14AA07251419A99993925A65441A4703D1AA5725141666666461EA6544152B81EF5A872514114AE47411EA65441666666A6AB725141333333A31FA65441CDCCCC4CAB725141F6285C1F1EA654418FC2F5F8AA725141EC51B8EE1CA65441E17A140EAB7251413D0AD7931BA65441295C8F42AB7251417B14AE971AA65441EC51B83EAC72514114AE479119A654418FC2F598AD725141EC51B8DE18A6544133333313AF72514114AE472118A65441CDCCCCCCB07251418FC2F59817A654417B14AE57B3725141713D0A1718A65441713D0A27B2725141713D0AA716A6544148E17AB4AE725141295C8F6212A6544152B81ED5AB725141B81E85DB0EA65441EC51B8CEAA725141333333C30CA654410AD7A350AA72514185EB51A80AA654417B14AE07A3725141EC51B8DE09A65441295C8F029F72514185EB513809A654417B14AEF794725141A4703DDA05A654410AD7A37093725141F6285C2F06A6544152B81E9592725141D7A3705D07A65441E17A14BE927251413D0AD73308A65441
+</a>
+
+<b>
+0106000000010000000103000000010000004F000000E17A14BE927251413D0AD73308A654417B14AE17927251415C8FC2D508A65441295C8F2292725141295C8F4209A654413333336392725141295C8F320AA65441AE47E16A927251415C8FC2D50AA654418FC2F518927251413D0AD7A30BA65441F6285C1F92725141CDCCCCBC0DA65441A4703DFA91725141C3F528AC0EA654410000009091725141A4703D8A0FA654418FC2F508917251419A99995910A65441A4703D9A8F72514148E17A6417A65441F6285C3F8E725141AE47E17A1CA65441CDCCCC1C8C72514114AE470123A6544185EB5158897251415C8FC2952CA654416666667687725141C3F528BC2EA6544148E17AA4877251418FC2F52832A65441AE47E10A8772514148E17A8438A654418FC2F51882725141F6285CCF37A65441B81E85EB7E7251413D0AD7C337A65441E17A143E7E725141CDCCCCAC35A654411C52488179725141719FA4A037A6544110AC70AE787251417D2D8AF737A654411D5F332278725141FDE4A63C38A65441E64FB256777251412363EEA138A65441755C351175725141463DEED639A65441A4703DF273725141448B6C6F3AA654417438AE5F727251417A115ABE3AA65441000000B070725141A4703D9A3BA65441241A148770725141C312D2193BA654417F669A586D7251418F930ECB3BA654410AD7A3F0707251410000003045A654410AD7A38070725141EC51B85E45A654417B14AE4772725141A4703DFA48A654419A9999198A725141713D0A473EA65441A4703DCA89725141E17A14DE3CA654419A9999A996725141713D0A3736A65441713D0AA79772514152B81E353AA654419A999979987251416666664643A65441AE47E1FA9E725141A4703D2A43A6544185EB51789E7251417B14AEB72EA65441B81E858B9C7251415C8FC2A52EA654411F85EB21997251417B14AE772FA654418FC2F5D898725141666666662DA65441CDCCCCEC97725141C3F528BC2BA65441E17A148E987251417B14AEF72AA6544114AE47C19D725141A4703D9A2AA65441E17A143EA2725141333333332BA654419A9999A9A67251415C8FC2052CA654410AD7A330AB7251410AD7A3102DA654417B14AEF7AD72514152B81EB529A654413D0AD703AD7251419A99990929A65441F6285CAFAA725141333333E328A654417B14AE97A67251418FC2F56827A654410AD7A3B0A4725141D7A3700D27A65441D7A3701DA0725141E17A14EE25A65441AE47E14AA07251419A99993925A65441A4703D1AA5725141666666461EA6544152B81EF5A872514114AE47411EA65441666666A6AB725141333333A31FA65441CDCCCC4CAB725141F6285C1F1EA654418FC2F5F8AA725141EC51B8EE1CA65441E17A140EAB7251413D0AD7931BA65441295C8F42AB7251417B14AE971AA65441EC51B83EAC72514114AE479119A654418FC2F598AD725141EC51B8DE18A6544133333313AF72514114AE472118A65441CDCCCCCCB07251418FC2F59817A654417B14AE57B3725141713D0A1718A65441713D0A27B2725141713D0AA716A6544148E17AB4AE725141295C8F6212A6544152B81ED5AB725141B81E85DB0EA65441EC51B8CEAA725141333333C30CA654410AD7A350AA72514185EB51A80AA654417B14AE07A3725141EC51B8DE09A65441295C8F029F72514185EB513809A654417B14AEF794725141A4703DDA05A654410AD7A37093725141F6285C2F06A6544152B81E9592725141D7A3705D07A65441E17A14BE927251413D0AD73308A65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>897377 - 3669980
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -24 </desc>
+<a>
+01060000000100000001030000000100000049000000E17A14BE927251413D0AD73308A654417B14AE17927251415C8FC2D508A65441295C8F2292725141295C8F4209A654413333336392725141295C8F320AA65441AE47E16A927251415C8FC2D50AA654418FC2F518927251413D0AD7A30BA65441F6285C1F92725141CDCCCCBC0DA65441A4703DFA91725141C3F528AC0EA654410000009091725141A4703D8A0FA654418FC2F508917251419A99995910A65441A4703D9A8F72514148E17A6417A65441F6285C3F8E725141AE47E17A1CA65441CDCCCC1C8C72514114AE470123A6544185EB5158897251415C8FC2952CA654416666667687725141C3F528BC2EA6544148E17AA4877251418FC2F52832A65441AE47E10A8772514148E17A8438A654418FC2F51882725141F6285CCF37A65441B81E85EB7E7251413D0AD7C337A65441E17A143E7E725141CDCCCCAC35A654411F85EB1174725141E17A14DE39A65441000000B070725141A4703D9A3BA65441B81E856B70725141666666C63AA65441C3F5284C6D725141C3F528AC3BA654410AD7A3F0707251410000003045A654410AD7A38070725141EC51B85E45A654417B14AE4772725141A4703DFA48A654419A9999198A725141713D0A473EA65441A4703DCA89725141E17A14DE3CA654419A9999A996725141713D0A3736A65441713D0AA79772514152B81E353AA654419A999979987251416666664643A65441AE47E1FA9E725141A4703D2A43A6544185EB51789E7251417B14AEB72EA65441B81E858B9C7251415C8FC2A52EA654411F85EB21997251417B14AE772FA654418FC2F5D898725141666666662DA65441CDCCCCEC97725141C3F528BC2BA65441E17A148E987251417B14AEF72AA6544114AE47C19D725141A4703D9A2AA65441E17A143EA2725141333333332BA654419A9999A9A67251415C8FC2052CA654410AD7A330AB7251410AD7A3102DA654417B14AEF7AD72514152B81EB529A654413D0AD703AD7251419A99990929A65441F6285CAFAA725141333333E328A654417B14AE97A67251418FC2F56827A654410AD7A3B0A4725141D7A3700D27A65441D7A3701DA0725141E17A14EE25A65441AE47E14AA07251419A99993925A65441A4703D1AA5725141666666461EA6544152B81EF5A872514114AE47411EA65441666666A6AB725141333333A31FA65441CDCCCC4CAB725141F6285C1F1EA654418FC2F5F8AA725141EC51B8EE1CA65441E17A140EAB7251413D0AD7931BA65441295C8F42AB7251417B14AE971AA65441EC51B83EAC72514114AE479119A654418FC2F598AD725141EC51B8DE18A6544133333313AF72514114AE472118A65441CDCCCCCCB07251418FC2F59817A654417B14AE57B3725141713D0A1718A65441713D0A27B2725141713D0AA716A6544148E17AB4AE725141295C8F6212A6544152B81ED5AB725141B81E85DB0EA65441EC51B8CEAA725141333333C30CA654410AD7A350AA72514185EB51A80AA654417B14AE07A3725141EC51B8DE09A65441295C8F029F72514185EB513809A654417B14AEF794725141A4703DDA05A654410AD7A37093725141F6285C2F06A6544152B81E9592725141D7A3705D07A65441E17A14BE927251413D0AD73308A65441
+</a>
+
+<b>
+0106000000010000000103000000010000004F000000E17A14BE927251413D0AD73308A654417B14AE17927251415C8FC2D508A65441295C8F2292725141295C8F4209A654413333336392725141295C8F320AA65441AE47E16A927251415C8FC2D50AA654418FC2F518927251413D0AD7A30BA65441F6285C1F92725141CDCCCCBC0DA65441A4703DFA91725141C3F528AC0EA654410000009091725141A4703D8A0FA654418FC2F508917251419A99995910A65441A4703D9A8F72514148E17A6417A65441F6285C3F8E725141AE47E17A1CA65441CDCCCC1C8C72514114AE470123A6544185EB5158897251415C8FC2952CA654416666667687725141C3F528BC2EA6544148E17AA4877251418FC2F52832A65441AE47E10A8772514148E17A8438A654418FC2F51882725141F6285CCF37A65441B81E85EB7E7251413D0AD7C337A65441E17A143E7E725141CDCCCCAC35A654411C52488179725141719FA4A037A6544110AC70AE787251417D2D8AF737A654411D5F332278725141FDE4A63C38A65441E64FB256777251412363EEA138A65441755C351175725141463DEED639A65441A4703DF273725141448B6C6F3AA654417438AE5F727251417A115ABE3AA65441000000B070725141A4703D9A3BA65441241A148770725141C312D2193BA654417F669A586D7251418F930ECB3BA654410AD7A3F0707251410000003045A654410AD7A38070725141EC51B85E45A654417B14AE4772725141A4703DFA48A654419A9999198A725141713D0A473EA65441A4703DCA89725141E17A14DE3CA654419A9999A996725141713D0A3736A65441713D0AA79772514152B81E353AA654419A999979987251416666664643A65441AE47E1FA9E725141A4703D2A43A6544185EB51789E7251417B14AEB72EA65441B81E858B9C7251415C8FC2A52EA654411F85EB21997251417B14AE772FA654418FC2F5D898725141666666662DA65441CDCCCCEC97725141C3F528BC2BA65441E17A148E987251417B14AEF72AA6544114AE47C19D725141A4703D9A2AA65441E17A143EA2725141333333332BA654419A9999A9A67251415C8FC2052CA654410AD7A330AB7251410AD7A3102DA654417B14AEF7AD72514152B81EB529A654413D0AD703AD7251419A99990929A65441F6285CAFAA725141333333E328A654417B14AE97A67251418FC2F56827A654410AD7A3B0A4725141D7A3700D27A65441D7A3701DA0725141E17A14EE25A65441AE47E14AA07251419A99993925A65441A4703D1AA5725141666666461EA6544152B81EF5A872514114AE47411EA65441666666A6AB725141333333A31FA65441CDCCCC4CAB725141F6285C1F1EA654418FC2F5F8AA725141EC51B8EE1CA65441E17A140EAB7251413D0AD7931BA65441295C8F42AB7251417B14AE971AA65441EC51B83EAC72514114AE479119A654418FC2F598AD725141EC51B8DE18A6544133333313AF72514114AE472118A65441CDCCCCCCB07251418FC2F59817A654417B14AE57B3725141713D0A1718A65441713D0A27B2725141713D0AA716A6544148E17AB4AE725141295C8F6212A6544152B81ED5AB725141B81E85DB0EA65441EC51B8CEAA725141333333C30CA654410AD7A350AA72514185EB51A80AA654417B14AE07A3725141EC51B8DE09A65441295C8F029F72514185EB513809A654417B14AEF794725141A4703DDA05A654410AD7A37093725141F6285C2F06A6544152B81E9592725141D7A3705D07A65441E17A14BE927251413D0AD73308A65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>402670 - 2906034
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -69 </desc>
+<a>
+0106000000010000000103000000010000001600000014AE47D13B265141D7A3705D70D35441B81E853B362651416666668670D354413333334339265141AE47E12A7FD35441A4703DDA3B2651410AD7A3B08BD35441A4703D2A4926514114AE473189D3544114AE47814E2651413D0AD7E384D35441713D0A274E265141333333438AD35441713D0A1750265141295C8F428DD354411F85EBF15126514152B81E758DD35441333333936C2651413D0AD7937FD354410000002068265141D7A3708D76D3544185EB511866265141713D0AA771D35441295C8FB25B265141666666F674D3544114AE4761562651411F85EBA176D35441713D0A875326514114AE47D177D354411F85EBF151265141333333637DD35441E17A149E4D265141EC51B82E83D35441295C8F824B26514148E17AC46DD354415C8FC2354B2651410AD7A3C06CD354413D0AD7734A2651417B14AE476CD3544185EB51083F2651415C8FC2356FD3544114AE47D13B265141D7A3705D70D35441
+</a>
+
+<b>
+01060000000100000001030000000100000029000000A4703D2A4926514114AE473189D35441366F81124A2651411305E1B588D354419FD214744A265141C1AB8E7588D35441D1D3FE1D4B2651415821F90488D354416F32278E4C2651416078917286D354413CE8BEF54D2651419EC7E6EC87D35441713D0A274E265141333333438AD35441713D0A1750265141295C8F428DD354410A95C46350265141CB2EC1DA8DD3544131D85C13512651412212FE398ED3544118463E9F51265141FC2341198ED354414C90F923522651412B41BAD68DD354411C9441A5532651415EFF60918CD35441C360E980672651412690873882D354416FC931B768265141CC89881982D354411A285A276A265141813F49F781D354416A0EDF566C26514102726DBE81D35441F1EDA1956B26514191ED3E2780D35441867267756B265141F24175DA7FD35441428D27DA6A2651413F1B8F687ED35441968AFF7069265141AC9C100C7BD354416FE102DC682651418F5716A979D35441F97048D36726514171E7573277D3544196031F94672651416A7CDA9B76D3544133710A6F67265141DD66814376D3544116B840E96626514150DBAF7674D3544185EB511866265141713D0AA771D35441295C8FB25B265141666666F674D3544114AE4761562651411F85EBA176D35441713D0A875326514114AE47D177D354411F85EBF151265141333333637DD35441E17A149E4D265141EC51B82E83D35441295C8F824B26514148E17AC46DD354415C8FC2354B2651410AD7A3C06CD354413D0AD7734A2651417B14AE476CD3544185EB51083F2651415C8FC2356FD3544114AE47D13B265141D7A3705D70D35441B81E853B362651416666668670D354413333334339265141AE47E12A7FD35441A4703DDA3B2651410AD7A3B08BD35441A4703D2A4926514114AE473189D35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>402670 - 3568670
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -69 </desc>
+<a>
+0106000000010000000103000000010000001600000014AE47D13B265141D7A3705D70D35441B81E853B362651416666668670D354413333334339265141AE47E12A7FD35441A4703DDA3B2651410AD7A3B08BD35441A4703D2A4926514114AE473189D3544114AE47814E2651413D0AD7E384D35441713D0A274E265141333333438AD35441713D0A1750265141295C8F428DD354411F85EBF15126514152B81E758DD35441333333936C2651413D0AD7937FD354410000002068265141D7A3708D76D3544185EB511866265141713D0AA771D35441295C8FB25B265141666666F674D3544114AE4761562651411F85EBA176D35441713D0A875326514114AE47D177D354411F85EBF151265141333333637DD35441E17A149E4D265141EC51B82E83D35441295C8F824B26514148E17AC46DD354415C8FC2354B2651410AD7A3C06CD354413D0AD7734A2651417B14AE476CD3544185EB51083F2651415C8FC2356FD3544114AE47D13B265141D7A3705D70D35441
+</a>
+
+<b>
+01060000000100000001030000000100000029000000A4703D2A4926514114AE473189D35441366F81124A2651411305E1B588D354419FD214744A265141C1AB8E7588D35441D1D3FE1D4B2651415821F90488D354416F32278E4C2651416078917286D354413CE8BEF54D2651419EC7E6EC87D35441713D0A274E265141333333438AD35441713D0A1750265141295C8F428DD354410A95C46350265141CB2EC1DA8DD3544131D85C13512651412212FE398ED3544118463E9F51265141FC2341198ED354414C90F923522651412B41BAD68DD354411C9441A5532651415EFF60918CD35441C360E980672651412690873882D354416FC931B768265141CC89881982D354411A285A276A265141813F49F781D354416A0EDF566C26514102726DBE81D35441F1EDA1956B26514191ED3E2780D35441867267756B265141F24175DA7FD35441428D27DA6A2651413F1B8F687ED35441968AFF7069265141AC9C100C7BD354416FE102DC682651418F5716A979D35441F97048D36726514171E7573277D3544196031F94672651416A7CDA9B76D3544133710A6F67265141DD66814376D3544116B840E96626514150DBAF7674D3544185EB511866265141713D0AA771D35441295C8FB25B265141666666F674D3544114AE4761562651411F85EBA176D35441713D0A875326514114AE47D177D354411F85EBF151265141333333637DD35441E17A149E4D265141EC51B82E83D35441295C8F824B26514148E17AC46DD354415C8FC2354B2651410AD7A3C06CD354413D0AD7734A2651417B14AE476CD3544185EB51083F2651415C8FC2356FD3544114AE47D13B265141D7A3705D70D35441B81E853B362651416666668670D354413333334339265141AE47E12A7FD35441A4703DDA3B2651410AD7A3B08BD35441A4703D2A4926514114AE473189D35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>406308 - 284805
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -276 </desc>
+<a>
+01060000000100000001030000000100000015000000E17A14BED4195141AE47E17A1FD85441C3F5286CCD195141A4703D4A19D85441A4703D7ACC195141EC51B81E18D8544133333363C8195141F6285C0F13D854417B14AE87B91951415C8FC2F51FD8544152B81ED5B41951410000006024D854415C8FC2D5B1195141A4703D9A27D85441AE47E13AAF19514152B81E752BD854418FC2F588AD19514185EB51C82ED854410AD7A3F0AC195141CDCCCCEC2FD854419A999969AB19514185EB514833D8544152B81ED5AF19514152B81E6538D8544185EB5118B21951418FC2F5483BD85441E17A147EBC1951418FC2F5D846D8544133333313BE195141E17A149E47D854419A999929C6195141713D0AD73ED85441D7A370ADC71951411F85EBB13CD8544114AE4741CE1951415C8FC26533D8544100000070D2195141A4703D8A2CD854415C8FC245D51951413333332323D85441E17A14BED4195141AE47E17A1FD85441
+</a>
+
+<b>
+01060000000100000001030000000100000026000000E36D296CCD1951413AD63D4A19D85441354DABE3CC195141D05640A118D854414A613D7ACC195141DD7BB81E18D85441EDE33263C8195141CA6D5C0F13D85441D63A7D64C7195141FA2283EC13D854419A80FC72BA1951410FA674291FD854412DDDAE87B91951412C07C2F51FD854416DAF0574B81951417E3E3A2521D85441D92064D6AF195141794EB24B2CD854415EB29A69AB195141D2C6514833D85441BC44D0FCAD1951411FB8D04236D85441F1258A3DAE195141F7ABAE8D36D8544152B81ED5AF19514152B81E6538D85441567A3313BE195141AA2D149E47D8544131DCC545BE1951416C40316747D8544163B14F99BF195141AB85AFF645D8544134BF9829C6195141082209D73ED85441DEB76FADC7195141BE0CEBB13CD854416F90D2B0CC195141C8ADD19B35D8544114AE4741CE1951415C8FC26533D854413E43D582CF195141A4268D5631D854413487FF6FD2195141CDFD3C8A2CD85441A81C07A8D4195141F3ABB5D928D85441662AEB5DD61951411DFD920126D85441C682E563D6195141E441A3F725D85441001C7BA4D71951415CA390E223D85441799A63A5D7195141522D41E123D85441E61FA0A5D9195141DE52B30121D85441A50F232EDA19514140B5AC3D20D85441A349B73EDD195141F5C709D71BD8544123B4D706E01951414CEFC40019D8544108640604E1195141E6898EFE17D85441818FC91EE0195141EEC9072D17D85441DFAF3829DF195141940DD44E16D8544156FD82FCDD195141728DAC3F15D85441F2CEA343DC195141357EFE3617D85441E17A14BED4195141AE47E17A1FD85441E36D296CCD1951413AD63D4A19D85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>406836 - 408461
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -64 </desc>
+<a>
+010600000001000000010300000002000000510000005C8FC2054DA8504133333323904E5541000000C03AA85041AE47E15A814E5541D7A3704D35A8504133333313824E5541C3F5283C2DA850413D0AD723834E554114AE47712BA850410AD7A360834E55419A99998923A850415C8FC2D5844E5541295C8F8222A85041295C8F02864E5541000000A01DA8504133333343884E55415C8FC2551AA8504133333343884E5541295C8F0216A85041CDCCCC3C8A4E5541E17A142E15A85041E17A14CE8A4E55417B14AE9717A85041A4703DBA8D4E5541F6285C3F1DA850419A999949914E5541C3F528BC23A850415C8FC265974E554185EB518829A850418FC2F5589B4E55411F85EB312DA85041B81E857B9D4E5541AE47E12A2DA8504114AE47C19E4E5541AE47E17A35A85041000000B0A44E5541CDCCCC5C3CA850419A999999A84E55419A9999A943A850411F85EB31AD4E55413333332346A85041C3F528ECAC4E5541AE47E17A45A8504133333353AB4E554148E17A744CA85041AE47E1CAAE4E554152B81E754DA8504166666646AD4E55413333339345A850410AD7A390A74E55410000007041A85041713D0A37A54E554152B81E753CA8504148E17AA4A14E554114AE47D136A85041A4703D5A9E4E5541E17A14EE2FA85041333333D3994E55419A9999E92BA85041D7A3701D974E5541F6285C6F28A850413D0AD733944E554148E17AC424A8504114AE4731914E5541295C8FF221A85041000000C08E4E554185EB51481EA85041E17A14EE8B4E5541B81E85FB1CA85041D7A370DD894E55413D0AD74323A85041AE47E10A874E55410000003029A85041666666F68C4E5541EC51B88E2EA85041295C8FC2914E5541713D0AB733A8504148E17A84954E5541333333A337A85041E17A14DE974E5541EC51B8BE3AA850413D0AD713994E5541D7A370ED3CA850419A9999A99C4E55419A99990948A85041713D0A47A44E55411F85EBA150A850410AD7A3A0AA4E55413D0AD77353A85041713D0A47A84E5541A4703D7A50A850417B14AEC7A54E5541295C8FC24DA850418FC2F578A34E5541D7A3700D49A85041333333939F4E55410AD7A36042A850418FC2F5B89B4E5541666666563EA85041EC51B8FE984E55419A99994937A85041C3F528DC944E5541F6285C8F34A85041295C8F82924E5541B81E857B2FA8504185EB51388E4E554148E17A1430A85041A4703D6A8D4E55418FC2F56833A8504152B81E95904E55418FC2F5D842A85041000000509A4E5541CDCCCCDC49A85041A4703DBA9E4E5541C3F528DC4EA85041713D0A57A14E55419A9999A954A8504148E17A44A74E55419A9999C958A85041333333D3A34E5541D7A3706D54A85041B81E85AB9F4E554185EB51484DA85041713D0AA7994E5541D7A370AD48A850415C8FC205974E554114AE472143A85041295C8FB2924E55417B14AE6740A8504114AE4701914E5541CDCCCC5C3CA850417B14AEA78E4E55410AD7A35033A850417B14AE47884E5541D7A370BD31A8504133333383874E5541AE47E19A2DA850419A999959854E5541AE47E1CA2DA850418FC2F568844E5541000000B035A8504100000000834E55419A9999B93DA8504114AE4751894E554148E17A443CA8504152B81E558A4E5541CDCCCC8C3CA850415C8FC2A58B4E5541F6285C1F40A85041666666C68C4E55418FC2F5D842A85041F6285C5F8E4E55410AD7A3604DA8504152B81E15964E5541CDCCCC7C53A850410AD7A3A09B4E5541E17A148E5AA85041AE47E15AA24E5541AE47E1FA5EA85041A4703DAA9E4E55415C8FC2054DA8504133333323904E5541090000000AD7A38041A8504114AE47F1884E5541A4703DAA41A85041E17A14DE894E55419A9999F93FA850415C8FC2B5884E5541295C8FB23BA85041713D0A97854E55410000001039A850410AD7A340834E55411F85EB313AA8504152B81E35834E5541AE47E1DA3CA850410AD7A320854E55413D0AD7533FA85041295C8FE2864E55410AD7A38041A8504114AE47F1884E5541
+</a>
+
+<b>
+01060000000100000001030000000100000031000000E4FFFFBF3AA85041B247E15A814E5541D7A3704D35A8504133333313824E5541851E811933A85041C352A55D824E5541DB4A48712BA8504144C2A360834E55419E98998923A850417D90C2D5844E55417F6ADDAA22A850411AA88C64864E55419D461A7427A850418D0D19B98A4E55411CEA79F92EA85041C157F4E6914E5541FB8A5E8833A85041F5B2F334954E5541F37C4F1136A85041040E4EED964E5541E88284F336A8504114CCD374974E554159E8D8CC39A850411F0EF382984E55410859F7EF39A85041518755C3984E5541EC51B8BE3AA850413D0AD713994E554129AD607F3CA85041D36ECFF49B4E5541AB59CCF14CA85041C754B28DA74E5541690D509750A85041DB562D84AA4E55418641B40F58A85041B3AB566EA44E5541C916F12058A8504104F6F35FA44E5541FE6EE23258A850412E9BFA50A44E5541A8E98C6055A850413D9EB3F1A04E5541A9A12C2951A850417ECC032F9D4E5541F5E21B7D4CA85041B52B1FA0984E55418BAD5A5C47A850410B0C788C954E5541E345531140A85041F6FE6F8F914E55417A54FC3A39A85041CD2233C68C4E5541BB62A56432A850411964221A884E5541463AEC4031A850410E518303894E55413C5EAF772CA85041AFCDCA91844E5541F1559D672EA850411A1CC2E2834E5541FBB09CB531A85041D9C23D8B834E5541854F064E33A85041FA87E550834E554166E4FE3435A8504136FB6ACA834E554138C6DD7936A85041E549FA92844E55418D7E30553DA8504158DAD28E884E554163AFFB883CA85041F883C92D8B4E5541A278993B42A85041F7374DD38E4E55415AA5FCC747A850417709254B924E554185FA86274BA85041EF5A0570944E55410677A7D34FA8504157BBC933984E55416A92F3BA52A85041489D02C89A4E554108DFFF5954A850417E91ABF49C4E5541FA0C26FE59A85041C0D595D2A24E5541E17A148E5AA85041AE47E15AA24E55416047E1FA5EA8504165703DAA9E4E55414A654C6257A85041E9121685984E5541D56F6CD954A850410C962678964E5541FC8EC2054DA8504149333323904E5541E4FFFFBF3AA85041B247E15A814E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>408004 - 3010237
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+01060000000100000001030000000100000008000000000000704615514114AE47111EEA54411F85EBE149155141E17A14FE1DEA5441295C8F124A155141C3F5286C1CEA54410AD7A34041155141EC51B87E15EA5441000000B040155141295C8F721CEA5441295C8F424015514148E17AB421EA54413D0AD7C345155141666666D621EA5441000000704615514114AE47111EEA5441
+</a>
+
+<b>
+010600000001000000010300000001000000100000008BD342643A1551412C55D2781CEA54410D96BF873C155141B9D2B1761CEA54416D9C83A5401551416345726D1CEA54410F91BE4540155141C344518D21EA5441B36CD60F4815514111B9E3DC21EA5441BD45A80E49155141DC99C61E1CEA5441081DA2FE451551410C304C0D19EA54410521E43E41155141F38A3D9415EA5441F8D8F1363F155141157C83C114EA54413E1FF8453E1551419860919B14EA5441F6192BBF3C155141004D068C14EA5441545517493B155141BF0B7E8014EA544191937F483A15514163FD947814EA5441554978403A1551418FD75E581AEA5441CBBC7F483A1551410808FA6D1CEA54418BD342643A1551412C55D2781CEA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>408004 - 3827248
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+01060000000100000001030000000100000008000000000000704615514114AE47111EEA54411F85EBE149155141E17A14FE1DEA5441295C8F124A155141C3F5286C1CEA54410AD7A34041155141EC51B87E15EA5441000000B040155141295C8F721CEA5441295C8F424015514148E17AB421EA54413D0AD7C345155141666666D621EA5441000000704615514114AE47111EEA5441
+</a>
+
+<b>
+010600000001000000010300000001000000100000008BD342643A1551412C55D2781CEA54410D96BF873C155141B9D2B1761CEA54416D9C83A5401551416345726D1CEA54410F91BE4540155141C344518D21EA5441B36CD60F4815514111B9E3DC21EA5441BD45A80E49155141DC99C61E1CEA5441081DA2FE451551410C304C0D19EA54410521E43E41155141F38A3D9415EA5441F8D8F1363F155141157C83C114EA54413E1FF8453E1551419860919B14EA5441F6192BBF3C155141004D068C14EA5441545517493B155141BF0B7E8014EA544191937F483A15514163FD947814EA5441554978403A1551418FD75E581AEA5441CBBC7F483A1551410808FA6D1CEA54418BD342643A1551412C55D2781CEA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>408453 - 2957276
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000001E000000D7A370CD8515514114AE47310BEA5441CDCCCC4C8A15514114AE47910CEA54419A9999C98B155141713D0AC708EA54417B14AE178E15514114AE479104EA544152B81EA58F155141000000A001EA5441A4703DAA901551418FC2F578FFE954417B14AE979115514152B81E75FDE954411F85EB6191155141B81E85EBFBE95441AE47E1AA901551418FC2F5A8F9E95441F6285CFF8F1551413D0AD733F8E9544152B81EA58E155141EC51B85EF6E954418FC2F5988C1551417B14AE87F4E9544148E17A7489155141A4703DCAF2E95441EC51B8EE80155141E17A144EF0E9544152B81EA56E155141666666F6EEE9544152B81EA56D155141F6285CDFEEE95441EC51B8CE51155141CDCCCC5CECE954418FC2F5C8511551413D0AD733EFE954419A9999F9511551410AD7A3E0F3E95441CDCCCC1C521551417B14AE27FAE954411F85EB11521551413333331301EA544166666646561551410000009001EA5441713D0AF75815514114AE47E101EA5441666666D659155141B81E85FB01EA5441AE47E1BA5B155141713D0A2702EA5441713D0AF75E15514114AE477102EA54418FC2F538631551415C8FC2D502EA5441713D0A476915514148E17A6403EA544166666656731551411F85EB9105EA5441D7A370CD8515514114AE47310BEA5441
+</a>
+
+<b>
+01060000000100000001030000000100000017000000EC51B8CE51155141CDCCCC5CECE95441F410680B521551411C8B960DF7E95441CDCCCC1C521551417B14AE27FAE95441F255EF11521551411EE9C51001EA54410379EFCF6315514138C197E302EA5441713D0A476915514148E17A6403EA544166666656731551411F85EB9105EA5441D7A370CD8515514114AE47310BEA5441CDCCCC4C8A15514114AE47910CEA5441C667E83B8A15514116BF7ABB0CEA54419F1D18DE8A155141BC88C0EE0CEA54416942E9168E15514184A361010FEA5441B81E851B8E155141D7A370ED0EEA54411075DAED8E155141A8FCA88B0FEA54413333330396155141A4703D1A14EA54411122BA6C941551414F4816940BEA544100CA6AB19015514109D154A2FAE954418E7BD2288F1551412FC02911F7E954418B9C6CEC8B15514175F0C88FF4E95441AE40512D88155141ECFBE9A7F2E9544129DEE7F87F1551411CDA083CF0E954410CE8BD8F6B155141DB7044AFEEE95441EC51B8CE51155141CDCCCC5CECE95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>408453 - 3420123
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000001E000000D7A370CD8515514114AE47310BEA5441CDCCCC4C8A15514114AE47910CEA54419A9999C98B155141713D0AC708EA54417B14AE178E15514114AE479104EA544152B81EA58F155141000000A001EA5441A4703DAA901551418FC2F578FFE954417B14AE979115514152B81E75FDE954411F85EB6191155141B81E85EBFBE95441AE47E1AA901551418FC2F5A8F9E95441F6285CFF8F1551413D0AD733F8E9544152B81EA58E155141EC51B85EF6E954418FC2F5988C1551417B14AE87F4E9544148E17A7489155141A4703DCAF2E95441EC51B8EE80155141E17A144EF0E9544152B81EA56E155141666666F6EEE9544152B81EA56D155141F6285CDFEEE95441EC51B8CE51155141CDCCCC5CECE954418FC2F5C8511551413D0AD733EFE954419A9999F9511551410AD7A3E0F3E95441CDCCCC1C521551417B14AE27FAE954411F85EB11521551413333331301EA544166666646561551410000009001EA5441713D0AF75815514114AE47E101EA5441666666D659155141B81E85FB01EA5441AE47E1BA5B155141713D0A2702EA5441713D0AF75E15514114AE477102EA54418FC2F538631551415C8FC2D502EA5441713D0A476915514148E17A6403EA544166666656731551411F85EB9105EA5441D7A370CD8515514114AE47310BEA5441
+</a>
+
+<b>
+01060000000100000001030000000100000017000000EC51B8CE51155141CDCCCC5CECE95441F410680B521551411C8B960DF7E95441CDCCCC1C521551417B14AE27FAE95441F255EF11521551411EE9C51001EA54410379EFCF6315514138C197E302EA5441713D0A476915514148E17A6403EA544166666656731551411F85EB9105EA5441D7A370CD8515514114AE47310BEA5441CDCCCC4C8A15514114AE47910CEA5441C667E83B8A15514116BF7ABB0CEA54419F1D18DE8A155141BC88C0EE0CEA54416942E9168E15514184A361010FEA5441B81E851B8E155141D7A370ED0EEA54411075DAED8E155141A8FCA88B0FEA54413333330396155141A4703D1A14EA54411122BA6C941551414F4816940BEA544100CA6AB19015514109D154A2FAE954418E7BD2288F1551412FC02911F7E954418B9C6CEC8B15514175F0C88FF4E95441AE40512D88155141ECFBE9A7F2E9544129DEE7F87F1551411CDA083CF0E954410CE8BD8F6B155141DB7044AFEEE95441EC51B8CE51155141CDCCCC5CECE95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>408455 - 2957535
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+0106000000010000000103000000010000000C0000009A999979C4155141333333D342EA54417B14AEE7CB1551413333332341EA5441B81E85CBCB155141333333333DEA54419A999909D1155141AE47E1DA3CEA5441713D0AF7CE155141333333F334EA5441CDCCCC5CCE155141E17A148E2CEA544148E17A54C01551415C8FC29530EA5441E17A144EBB15514152B81EF531EA544100000070BA155141295C8FE233EA54419A999959C0155141713D0AA743EA5441B81E857BC0155141000000F043EA54419A999979C4155141333333D342EA5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000000D9D88D6C0155141B00F2F3E44EA5441E5713A09CC155141840EC0C544EA5441B81E85CBCB155141333333333DEA5441E974FAFED0155141E23894DB3CEA5441CA9E9F61CF1551418C06BC8936EA54418302E8CCCE1551415B1320A832EA5441F628AE1ACE1551413DA611A12CEA544165E3DA2AC715514158AA119F2EEA54415CE8638FBF155141848B97CB30EA5441D7D7BE2BBB155141926E684132EA5441F5AA4D66BA15514167764BE233EA5441ABD868C5BD155141614FCEAC3CEA54410D9D88D6C0155141B00F2F3E44EA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>408455 - 3476745
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+0106000000010000000103000000010000000C0000009A999979C4155141333333D342EA54417B14AEE7CB1551413333332341EA5441B81E85CBCB155141333333333DEA54419A999909D1155141AE47E1DA3CEA5441713D0AF7CE155141333333F334EA5441CDCCCC5CCE155141E17A148E2CEA544148E17A54C01551415C8FC29530EA5441E17A144EBB15514152B81EF531EA544100000070BA155141295C8FE233EA54419A999959C0155141713D0AA743EA5441B81E857BC0155141000000F043EA54419A999979C4155141333333D342EA5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000000D9D88D6C0155141B00F2F3E44EA5441E5713A09CC155141840EC0C544EA5441B81E85CBCB155141333333333DEA5441E974FAFED0155141E23894DB3CEA5441CA9E9F61CF1551418C06BC8936EA54418302E8CCCE1551415B1320A832EA5441F628AE1ACE1551413DA611A12CEA544165E3DA2AC715514158AA119F2EEA54415CE8638FBF155141848B97CB30EA5441D7D7BE2BBB155141926E684132EA5441F5AA4D66BA15514167764BE233EA5441ABD868C5BD155141614FCEAC3CEA54410D9D88D6C0155141B00F2F3E44EA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>408612 - 3008346
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -120 </desc>
+<a>
+010600000001000000010300000001000000360000008FC2F528461551415C8FC27542EA54410AD7A3C0451551410000005042EA5441000000E0441551410000001042EA544152B81EB53D155141666666D63FEA5441F6285C7F3E155141333333333DEA5441CDCCCCCC3E1551410AD7A3003CEA5441A4703D2A3C15514148E17A443BEA5441EC51B83E3D155141295C8F8237EA5441CDCCCCEC3F15514148E17A5438EA54413D0AD7A340155141D7A3700D36EA544152B81E55421551413D0AD79336EA54418FC2F50843155141000000B036EA5441E17A14FE42155141EC51B82E34EA5441C3F528DC41155141B81E851B34EA5441C3F528DC40155141713D0AA733EA5441A4703D2A41155141AE47E1FA32EA5441CDCCCC2C421551410000007033EA54417B14AEE7421551417B14AE6733EA5441A4703DBA4315514114AE47E133EA544114AE47F143155141A4703D0A36EA54417B14AE0744155141CDCCCCDC36EA544185EB51A8471551413333333338EA54410000004049155141E17A14CE3BEA5441D7A370FD49155141666666463AEA54411F85EB114B1551416666666638EA54415C8FC2954A155141713D0A7736EA5441AE47E16A491551418FC2F5A834EA54416666666645155141666666B630EA54418FC2F5D8441551419A9999892DEA5441295C8F124415514185EB51382EEA544152B81EC543155141EC51B8AE30EA5441EC51B8AE4315514114AE475133EA5441CDCCCCDC421551411F85EBC132EA54418FC2F508431551410AD7A3902EEA54415C8FC265421551411F85EB912EEA544114AE47B1341551413D0AD75332EA5441C3F528FC2D155141EC51B83E34EA544152B81EB52D155141EC51B85E37EA5441B81E851B311551418FC2F5183EEA54413D0AD7C3331551419A99992944EA54419A999939311551410AD7A3F047EA54415C8FC2E52E155141A4703D0A4CEA544185EB51682D155141713D0A074FEA544152B81EF52F155141713D0AA74DEA5441EC51B81E33155141333333934CEA54418FC2F54835155141D7A3701D4CEA5441F6285C7F37155141333333D34BEA54415C8FC2353E155141713D0A674BEA5441666666B63F155141713D0A374BEA5441666666D640155141C3F528EC4AEA5441CDCCCCEC41155141D7A3706D4AEA54417B14AED7421551418FC2F5A849EA54415C8FC27543155141B81E85AB48EA54418FC2F528461551415C8FC27542EA5441
+</a>
+
+<b>
+0106000000010000000103000000010000001900000018242B7F321551411BEF3AE04BEA544159165C70371551414AE76AB74BEA5441545BF2533C155141EF8465734BEA5441F409659E40155141348EADC64AEA544166CB15F142155141D305E53E49EA5441C561D61B44155141A7368DF546EA5441A24C05C4451551415B92472143EA54418EA3130643155141C774AE6A42EA5441C256ADF93D1551418C71239C40EA5441A6858DEE3E15514177E9C7173CEA544141A6871D3C15514105D2579D3BEA5441DF27CD043D155141481EA7F237EA544189B46DE33F1551411926771B38EA5441E18818BD401551413C134CFB35EA544149F678F8421551417F328C9E36EA5441EA05194A43155141ADF67F6F2EEA54414A40F5123E155141B2355FC12FEA54415DC5740537155141F0E962B031EA5441E419F29C311551415406393533EA54418C494BE12E155141B2BBB44E34EA5441565F2D112F15514115D8B3D635EA54414C84DD1F30155141E268B27E3EEA5441DB92454631155141C1B9444E47EA5441935750CE311551410AC82A144BEA544118242B7F321551411BEF3AE04BEA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>408612 - 3825269
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -120 </desc>
+<a>
+010600000001000000010300000001000000360000008FC2F528461551415C8FC27542EA54410AD7A3C0451551410000005042EA5441000000E0441551410000001042EA544152B81EB53D155141666666D63FEA5441F6285C7F3E155141333333333DEA5441CDCCCCCC3E1551410AD7A3003CEA5441A4703D2A3C15514148E17A443BEA5441EC51B83E3D155141295C8F8237EA5441CDCCCCEC3F15514148E17A5438EA54413D0AD7A340155141D7A3700D36EA544152B81E55421551413D0AD79336EA54418FC2F50843155141000000B036EA5441E17A14FE42155141EC51B82E34EA5441C3F528DC41155141B81E851B34EA5441C3F528DC40155141713D0AA733EA5441A4703D2A41155141AE47E1FA32EA5441CDCCCC2C421551410000007033EA54417B14AEE7421551417B14AE6733EA5441A4703DBA4315514114AE47E133EA544114AE47F143155141A4703D0A36EA54417B14AE0744155141CDCCCCDC36EA544185EB51A8471551413333333338EA54410000004049155141E17A14CE3BEA5441D7A370FD49155141666666463AEA54411F85EB114B1551416666666638EA54415C8FC2954A155141713D0A7736EA5441AE47E16A491551418FC2F5A834EA54416666666645155141666666B630EA54418FC2F5D8441551419A9999892DEA5441295C8F124415514185EB51382EEA544152B81EC543155141EC51B8AE30EA5441EC51B8AE4315514114AE475133EA5441CDCCCCDC421551411F85EBC132EA54418FC2F508431551410AD7A3902EEA54415C8FC265421551411F85EB912EEA544114AE47B1341551413D0AD75332EA5441C3F528FC2D155141EC51B83E34EA544152B81EB52D155141EC51B85E37EA5441B81E851B311551418FC2F5183EEA54413D0AD7C3331551419A99992944EA54419A999939311551410AD7A3F047EA54415C8FC2E52E155141A4703D0A4CEA544185EB51682D155141713D0A074FEA544152B81EF52F155141713D0AA74DEA5441EC51B81E33155141333333934CEA54418FC2F54835155141D7A3701D4CEA5441F6285C7F37155141333333D34BEA54415C8FC2353E155141713D0A674BEA5441666666B63F155141713D0A374BEA5441666666D640155141C3F528EC4AEA5441CDCCCCEC41155141D7A3706D4AEA54417B14AED7421551418FC2F5A849EA54415C8FC27543155141B81E85AB48EA54418FC2F528461551415C8FC27542EA5441
+</a>
+
+<b>
+0106000000010000000103000000010000001900000018242B7F321551411BEF3AE04BEA544159165C70371551414AE76AB74BEA5441545BF2533C155141EF8465734BEA5441F409659E40155141348EADC64AEA544166CB15F142155141D305E53E49EA5441C561D61B44155141A7368DF546EA5441A24C05C4451551415B92472143EA54418EA3130643155141C774AE6A42EA5441C256ADF93D1551418C71239C40EA5441A6858DEE3E15514177E9C7173CEA544141A6871D3C15514105D2579D3BEA5441DF27CD043D155141481EA7F237EA544189B46DE33F1551411926771B38EA5441E18818BD401551413C134CFB35EA544149F678F8421551417F328C9E36EA5441EA05194A43155141ADF67F6F2EEA54414A40F5123E155141B2355FC12FEA54415DC5740537155141F0E962B031EA5441E419F29C311551415406393533EA54418C494BE12E155141B2BBB44E34EA5441565F2D112F15514115D8B3D635EA54414C84DD1F30155141E268B27E3EEA5441DB92454631155141C1B9444E47EA5441935750CE311551410AC82A144BEA544118242B7F321551411BEF3AE04BEA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>449921 - 232002
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -642 </desc>
+<a>
+01060000000100000001030000000100000032000000AE47E11A9A1B51410AD7A340A32E5541D7A3701DA31B51417B14AE57A72E5541B81E85EBA31B5141D7A3704DA42E5541B81E855BA51B51413D0AD713A02E5541F6285C7FA61B5141EC51B80E9D2E554114AE47C1A91B5141713D0A77942E5541C3F5284CAF1B5141C3F528CC8A2E5541F6285C8FB71B51417B14AE877E2E5541F6285CFFC01B51419A9999A9722E55418FC2F5C8C61B5141D7A370AD6A2E55410AD7A3F0C91B5141F6285C8F6A2E5541F6285CDFCC1B514114AE47516A2E554152B81EE5CD1B514114AE47016A2E5541666666D6CF1B51419A999919692E554114AE4721D21B5141713D0A87672E5541B81E850BD51B5141CDCCCCAC692E5541B81E85BBD51B514152B81E65652E5541EC51B84ED61B5141B81E85CB602E554100000040D71B514185EB51E8572E554166666676D81B514100000040542E55417B14AE87DD1B5141A4703D1A4D2E55415C8FC235DB1B5141333333A34C2E5541CDCCCCACD71B514114AE4711542E554100000050D51B5141E17A14EE562E5541D7A3706DD01B5141A4703DFA552E554114AE47A1C81B5141C3F5282C532E5541E17A144EC71B51415C8FC2A5582E554148E17A84C41B5141C3F5285C612E5541AE47E11AC51B51418FC2F568612E5541C3F5286CC61B5141295C8F22622E5541000000A0C81B5141B81E856B642E5541B81E857BC51B514185EB5118682E5541D7A3703DC31B514133333373662E5541AE47E19AC11B5141F6285C9F672E554185EB5138C01B5141295C8F12692E55411F85EB61BE1B51417B14AE276B2E554114AE4791BF1B51417B14AE276D2E5541D7A3703DBF1B5141CDCCCC1C6F2E5541EC51B86EBC1B5141CDCCCCAC702E5541713D0AF7B11B514114AE47216F2E5541F6285CDFAC1B514166666616732E5541A4703D0AA91B5141295C8FE2752E55411F85EBC1A01B5141D7A370FD722E5541713D0AD79A1B514185EB51E8702E55415C8FC225991B5141F6285C8F702E55410AD7A3B0961B51415C8FC285782E554133333383941B5141D7A370FD812E5541CDCCCCEC931B51417B14AE87842E55418FC2F518A91B5141D7A3706D8A2E5541AE47E11A9A1B51410AD7A340A32E5541
+</a>
+
+<b>
+0106000000010000000103000000010000003600000028CAF5C8C61B5141799470AD6A2E55418893C75CC71B51413151EFA76A2E5541B526AB9EC81B51418667F29B6A2E55416BE4A3F0C91B514108EE5B8F6A2E554127955BDFCC1B51419C7947516A2E554154A8AE1ACD1B51417354263F6A2E554152B81EE5CD1B514114AE47016A2E5541666666D6CF1B51419A999919692E554114AE4721D21B5141713D0A87672E55419140850BD51B514109FACBAC692E5541E040CEADD51B5141EC757FBA652E5541802985BBD51B514100621E65652E554176148CBDD51B5141700AE754652E5541E39026BED51B5141F9261350652E55418D16B74ED61B5141578686CB602E554181B4FF3FD71B5141C7C950E8572E554111003D1AD01B514149D6C295562E55416C6D0AC7C91B51414DE565B6542E5541633E66F6C71B514123DC83DB582E5541DD92E21AC51B5141EFDBF568612E5541C3F5286CC61B5141295C8F22622E554159501A88C61B5141FBA88C3F622E554198A53CFAC61B5141BD98B9BE612E554128EC47D1C91B5141975D0987622E554188AFFF7FC51B5141A17E3C0A6A2E5541C6D47155BF1B5141F661528D6E2E5541D7A3703DBF1B5141CDCCCC1C6F2E5541EC51B86EBC1B5141CDCCCCAC702E5541713D0AF7B11B514114AE47216F2E5541F6285CDFAC1B514166666616732E55416D5C027EAC1B5141A1D9755D732E5541B0283E0AA91B5141A2A38FE2752E55411F85EBC1A01B5141D7A370FD722E5541713D0AD79A1B514185EB51E8702E55415C8FC225991B5141F6285C8F702E5541E9B6A3B0961B514181F4C385782E554133333383941B5141D7A370FD812E5541E2DCCCEC931B5141F2CEAD87842E554198EAF618A91B5141E01D706D8A2E5541068FE11A9A1B51416CF7A340A32E5541B5B86F1DA31B5141BCA9AD57A72E5541928984EBA31B5141BBFB714DA42E5541EC00845BA51B51412C29D613A02E55419E53B31EA61B5141246CC80E9E2E5541F6285C7FA61B5141EC51B80E9D2E5541EDCC6D20A81B5141EBBC97C2982E5541083B47C1A91B51411F880977942E5541735BAE7BAB1B514153E26173912E5541C3F5284CAF1B5141C3F528CC8A2E5541F6285C8FB71B51417B14AE877E2E55418260FABBBA1B5141C086D3897A2E554150C05BFFC01B514120AD98A9722E55412D93FD14C41B5141220D26686E2E554128CAF5C8C61B5141799470AD6A2E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>449921 - 276784
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -642 </desc>
+<a>
+01060000000100000001030000000100000032000000AE47E11A9A1B51410AD7A340A32E5541D7A3701DA31B51417B14AE57A72E5541B81E85EBA31B5141D7A3704DA42E5541B81E855BA51B51413D0AD713A02E5541F6285C7FA61B5141EC51B80E9D2E554114AE47C1A91B5141713D0A77942E5541C3F5284CAF1B5141C3F528CC8A2E5541F6285C8FB71B51417B14AE877E2E5541F6285CFFC01B51419A9999A9722E55418FC2F5C8C61B5141D7A370AD6A2E55410AD7A3F0C91B5141F6285C8F6A2E5541F6285CDFCC1B514114AE47516A2E554152B81EE5CD1B514114AE47016A2E5541666666D6CF1B51419A999919692E554114AE4721D21B5141713D0A87672E5541B81E850BD51B5141CDCCCCAC692E5541B81E85BBD51B514152B81E65652E5541EC51B84ED61B5141B81E85CB602E554100000040D71B514185EB51E8572E554166666676D81B514100000040542E55417B14AE87DD1B5141A4703D1A4D2E55415C8FC235DB1B5141333333A34C2E5541CDCCCCACD71B514114AE4711542E554100000050D51B5141E17A14EE562E5541D7A3706DD01B5141A4703DFA552E554114AE47A1C81B5141C3F5282C532E5541E17A144EC71B51415C8FC2A5582E554148E17A84C41B5141C3F5285C612E5541AE47E11AC51B51418FC2F568612E5541C3F5286CC61B5141295C8F22622E5541000000A0C81B5141B81E856B642E5541B81E857BC51B514185EB5118682E5541D7A3703DC31B514133333373662E5541AE47E19AC11B5141F6285C9F672E554185EB5138C01B5141295C8F12692E55411F85EB61BE1B51417B14AE276B2E554114AE4791BF1B51417B14AE276D2E5541D7A3703DBF1B5141CDCCCC1C6F2E5541EC51B86EBC1B5141CDCCCCAC702E5541713D0AF7B11B514114AE47216F2E5541F6285CDFAC1B514166666616732E5541A4703D0AA91B5141295C8FE2752E55411F85EBC1A01B5141D7A370FD722E5541713D0AD79A1B514185EB51E8702E55415C8FC225991B5141F6285C8F702E55410AD7A3B0961B51415C8FC285782E554133333383941B5141D7A370FD812E5541CDCCCCEC931B51417B14AE87842E55418FC2F518A91B5141D7A3706D8A2E5541AE47E11A9A1B51410AD7A340A32E5541
+</a>
+
+<b>
+0106000000010000000103000000010000003600000028CAF5C8C61B5141799470AD6A2E55418893C75CC71B51413151EFA76A2E5541B526AB9EC81B51418667F29B6A2E55416BE4A3F0C91B514108EE5B8F6A2E554127955BDFCC1B51419C7947516A2E554154A8AE1ACD1B51417354263F6A2E554152B81EE5CD1B514114AE47016A2E5541666666D6CF1B51419A999919692E554114AE4721D21B5141713D0A87672E55419140850BD51B514109FACBAC692E5541E040CEADD51B5141EC757FBA652E5541802985BBD51B514100621E65652E554176148CBDD51B5141700AE754652E5541E39026BED51B5141F9261350652E55418D16B74ED61B5141578686CB602E554181B4FF3FD71B5141C7C950E8572E554111003D1AD01B514149D6C295562E55416C6D0AC7C91B51414DE565B6542E5541633E66F6C71B514123DC83DB582E5541DD92E21AC51B5141EFDBF568612E5541C3F5286CC61B5141295C8F22622E554159501A88C61B5141FBA88C3F622E554198A53CFAC61B5141BD98B9BE612E554128EC47D1C91B5141975D0987622E554188AFFF7FC51B5141A17E3C0A6A2E5541C6D47155BF1B5141F661528D6E2E5541D7A3703DBF1B5141CDCCCC1C6F2E5541EC51B86EBC1B5141CDCCCCAC702E5541713D0AF7B11B514114AE47216F2E5541F6285CDFAC1B514166666616732E55416D5C027EAC1B5141A1D9755D732E5541B0283E0AA91B5141A2A38FE2752E55411F85EBC1A01B5141D7A370FD722E5541713D0AD79A1B514185EB51E8702E55415C8FC225991B5141F6285C8F702E5541E9B6A3B0961B514181F4C385782E554133333383941B5141D7A370FD812E5541E2DCCCEC931B5141F2CEAD87842E554198EAF618A91B5141E01D706D8A2E5541068FE11A9A1B51416CF7A340A32E5541B5B86F1DA31B5141BCA9AD57A72E5541928984EBA31B5141BBFB714DA42E5541EC00845BA51B51412C29D613A02E55419E53B31EA61B5141246CC80E9E2E5541F6285C7FA61B5141EC51B80E9D2E5541EDCC6D20A81B5141EBBC97C2982E5541083B47C1A91B51411F880977942E5541735BAE7BAB1B514153E26173912E5541C3F5284CAF1B5141C3F528CC8A2E5541F6285C8FB71B51417B14AE877E2E55418260FABBBA1B5141C086D3897A2E554150C05BFFC01B514120AD98A9722E55412D93FD14C41B5141220D26686E2E554128CAF5C8C61B5141799470AD6A2E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>899175 - 1173819
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -65 </desc>
+<a>
+0106000000010000000103000000010000002300000048087C8CA7695141C77121C830A45441B81E858BB369514185EB519834A45441F6285C2FB36951417B14AEF71CA4544133333363B2695141AE47E16AE8A35441CDCCCCDCA7695141A4703DBAE8A35441BF2AF4C9A769514165202C95F8A35441295C8FC2A769514152B81EA5FEA35441382317C1A76951412790170A00A45441E75422BEA769514126B6C98602A454411016F9BAA7695141B7D3992F05A454417A85C4B1A76951414FDB29EE0CA45441FB3F7BACA76951410578A96011A4544194C0B4A8A7695141FA2AC58D14A454413D198DA0A769514161B4A7681BA4544174382C9FA7695141D048E97B1CA45441335B889DA769514105386BC31DA454415D9FE29AA769514106A312D41FA45441C3EA6B98A7695141A09BB51022A4544105E94397A76951414E93F91023A454413A500E96A7695141397ABD1B24A454415B795B94A76951411BCA6B9225A454417AA10293A769514158788EBB26A454419B999991A76951414AE5C1EF27A454410AD7A390A7695141666666C628A45441713D0A87A7695141666666C630A454415C8FC285A76951410AD7A3B031A45441889DF57AA7695141170106AC3AA45441713D0A77A7695141AE47E12A3EA454413D0AD7B3AF69514114AE47513FA45441E538D085B1695141B61E4C923FA45441D362E9A8B3695141F02C093E3CA45441F6285C8FB3695141000000A035A454419C6D9CC7A769514193FC44C631A45441C5C92B8AA76951414B1BCAB131A4544148087C8CA7695141C77121C830A45441
+</a>
+
+<b>
+0106000000010000000103000000010000000E00000010C6F37CB36951418572C87B34A45441F6285C2FB36951417B14AEF71CA4544133333363B2695141AE47E16AE8A35441CDCCCCDCA7695141A4703DBAE8A35441BF2AF4C9A769514165202C95F8A35441295C8FC2A769514152B81EA5FEA354413D2317C1A76951412A90170A00A45441EA5422BEA769514122B6C98602A454410C16F9BAA7695141BCD3992F05A45441C8921387A7695141A268C89630A45441869DF57AA7695141160106AC3AA45441713D0A77A7695141AE47E12A3EA45441713D0AB7B36951410AD7A3E03FA4544110C6F37CB36951418572C87B34A45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>899175 - 3298988
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -65 </desc>
+<a>
+0106000000010000000103000000010000002300000048087C8CA7695141C77121C830A45441B81E858BB369514185EB519834A45441F6285C2FB36951417B14AEF71CA4544133333363B2695141AE47E16AE8A35441CDCCCCDCA7695141A4703DBAE8A35441BF2AF4C9A769514165202C95F8A35441295C8FC2A769514152B81EA5FEA35441382317C1A76951412790170A00A45441E75422BEA769514126B6C98602A454411016F9BAA7695141B7D3992F05A454417A85C4B1A76951414FDB29EE0CA45441FB3F7BACA76951410578A96011A4544194C0B4A8A7695141FA2AC58D14A454413D198DA0A769514161B4A7681BA4544174382C9FA7695141D048E97B1CA45441335B889DA769514105386BC31DA454415D9FE29AA769514106A312D41FA45441C3EA6B98A7695141A09BB51022A4544105E94397A76951414E93F91023A454413A500E96A7695141397ABD1B24A454415B795B94A76951411BCA6B9225A454417AA10293A769514158788EBB26A454419B999991A76951414AE5C1EF27A454410AD7A390A7695141666666C628A45441713D0A87A7695141666666C630A454415C8FC285A76951410AD7A3B031A45441889DF57AA7695141170106AC3AA45441713D0A77A7695141AE47E12A3EA454413D0AD7B3AF69514114AE47513FA45441E538D085B1695141B61E4C923FA45441D362E9A8B3695141F02C093E3CA45441F6285C8FB3695141000000A035A454419C6D9CC7A769514193FC44C631A45441C5C92B8AA76951414B1BCAB131A4544148087C8CA7695141C77121C830A45441
+</a>
+
+<b>
+0106000000010000000103000000010000000E00000010C6F37CB36951418572C87B34A45441F6285C2FB36951417B14AEF71CA4544133333363B2695141AE47E16AE8A35441CDCCCCDCA7695141A4703DBAE8A35441BF2AF4C9A769514165202C95F8A35441295C8FC2A769514152B81EA5FEA354413D2317C1A76951412A90170A00A45441EA5422BEA769514122B6C98602A454410C16F9BAA7695141BCD3992F05A45441C8921387A7695141A268C89630A45441869DF57AA7695141160106AC3AA45441713D0A77A7695141AE47E12A3EA45441713D0AB7B36951410AD7A3E03FA4544110C6F37CB36951418572C87B34A45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>899175 - 231143
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -65 </desc>
+<a>
+0106000000010000000103000000010000002300000048087C8CA7695141C77121C830A45441B81E858BB369514185EB519834A45441F6285C2FB36951417B14AEF71CA4544133333363B2695141AE47E16AE8A35441CDCCCCDCA7695141A4703DBAE8A35441BF2AF4C9A769514165202C95F8A35441295C8FC2A769514152B81EA5FEA35441382317C1A76951412790170A00A45441E75422BEA769514126B6C98602A454411016F9BAA7695141B7D3992F05A454417A85C4B1A76951414FDB29EE0CA45441FB3F7BACA76951410578A96011A4544194C0B4A8A7695141FA2AC58D14A454413D198DA0A769514161B4A7681BA4544174382C9FA7695141D048E97B1CA45441335B889DA769514105386BC31DA454415D9FE29AA769514106A312D41FA45441C3EA6B98A7695141A09BB51022A4544105E94397A76951414E93F91023A454413A500E96A7695141397ABD1B24A454415B795B94A76951411BCA6B9225A454417AA10293A769514158788EBB26A454419B999991A76951414AE5C1EF27A454410AD7A390A7695141666666C628A45441713D0A87A7695141666666C630A454415C8FC285A76951410AD7A3B031A45441889DF57AA7695141170106AC3AA45441713D0A77A7695141AE47E12A3EA454413D0AD7B3AF69514114AE47513FA45441E538D085B1695141B61E4C923FA45441D362E9A8B3695141F02C093E3CA45441F6285C8FB3695141000000A035A454419C6D9CC7A769514193FC44C631A45441C5C92B8AA76951414B1BCAB131A4544148087C8CA7695141C77121C830A45441
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000000BC6F37CB36951418072C87B34A45441F6285C2FB36951417B14AEF71CA4544133333363B2695141AE47E16AE8A35441CDCCCCDCA7695141A4703DBAE8A35441BF2AF4C9A769514165202C95F8A35441295C8FC2A769514152B81EA5FEA354413D2317C1A76951412A90170A00A45441EA5422BEA769514122B6C98602A454410C16F9BAA7695141BCD3992F05A45441C4921387A7695141A568C89630A45441869DF57AA7695141160106AC3AA45441713D0A77A7695141AE47E12A3EA45441713D0AB7B36951410AD7A3E03FA454410BC6F37CB36951418072C87B34A45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>899175 - 332895
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -65 </desc>
+<a>
+0106000000010000000103000000010000002300000048087C8CA7695141C77121C830A45441B81E858BB369514185EB519834A45441F6285C2FB36951417B14AEF71CA4544133333363B2695141AE47E16AE8A35441CDCCCCDCA7695141A4703DBAE8A35441BF2AF4C9A769514165202C95F8A35441295C8FC2A769514152B81EA5FEA35441382317C1A76951412790170A00A45441E75422BEA769514126B6C98602A454411016F9BAA7695141B7D3992F05A454417A85C4B1A76951414FDB29EE0CA45441FB3F7BACA76951410578A96011A4544194C0B4A8A7695141FA2AC58D14A454413D198DA0A769514161B4A7681BA4544174382C9FA7695141D048E97B1CA45441335B889DA769514105386BC31DA454415D9FE29AA769514106A312D41FA45441C3EA6B98A7695141A09BB51022A4544105E94397A76951414E93F91023A454413A500E96A7695141397ABD1B24A454415B795B94A76951411BCA6B9225A454417AA10293A769514158788EBB26A454419B999991A76951414AE5C1EF27A454410AD7A390A7695141666666C628A45441713D0A87A7695141666666C630A454415C8FC285A76951410AD7A3B031A45441889DF57AA7695141170106AC3AA45441713D0A77A7695141AE47E12A3EA454413D0AD7B3AF69514114AE47513FA45441E538D085B1695141B61E4C923FA45441D362E9A8B3695141F02C093E3CA45441F6285C8FB3695141000000A035A454419C6D9CC7A769514193FC44C631A45441C5C92B8AA76951414B1BCAB131A4544148087C8CA7695141C77121C830A45441
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000000BC6F37CB36951418072C87B34A45441F6285C2FB36951417B14AEF71CA4544133333363B2695141AE47E16AE8A35441CDCCCCDCA7695141A4703DBAE8A35441BF2AF4C9A769514165202C95F8A35441295C8FC2A769514152B81EA5FEA354413D2317C1A76951412A90170A00A45441EA5422BEA769514122B6C98602A454410C16F9BAA7695141BCD3992F05A45441C4921387A7695141A568C89630A45441869DF57AA7695141160106AC3AA45441713D0A77A7695141AE47E12A3EA45441713D0AB7B36951410AD7A3E03FA454410BC6F37CB36951418072C87B34A45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>423057 - 1285862
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+010600000001000000010300000001000000310000007B14AE678E0F5141EC51B8BE01F65441666666E68E0F51413D0AD7C301F65441CDCCCC9C9D0F5141CDCCCC4C06F65441666666069E0F514148E17A5406F6544114AE47919E0F51413D0AD7D305F654418FC2F5C89B0F51410000004002F6544152B81E959A0F5141000000F000F65441CDCCCCDC960F51417B14AE87FDF5544166666686940F51411F85EBA1FBF55441E17A145E930F5141C3F5289CFAF5544148E17A74910F5141C3F5287CF9F554410AD7A3108E0F51417B14AE57F7F55441333333338D0F51419A9999C9F6F55441713D0A178B0F51413D0AD7A3F5F55441295C8F72880F51410AD7A380F4F55441713D0A07870F51413D0AD7E3F3F55441EC51B8BE850F5141713D0A57F3F55441AE47E16A830F51417B14AE57F2F554410AD7A3C0800F5141295C8F32F1F554413D0AD7337E0F514152B81E25F0F5544185EB51A87B0F5141AE47E1FAEEF55441666666967A0F5141E17A147EEEF55441EC51B8DE7A0F5141295C8F22EEF55441AE47E17A7A0F51419A9999E9EDF554415C8FC215780F5141EC51B88EECF554415C8FC2C5750F51419A999919EBF55441AE47E1AA730F51410AD7A3A0E9F554410AD7A3F0700F514185EB51B8E7F554419A9999A96E0F51410AD7A320E6F5544148E17A246D0F514114AE4711E5F55441C3F5287C6D0F51413D0AD743E3F554411F85EB916D0F51411F85EB81E1F55441E17A14DE6B0F514114AE4771E0F554413D0AD7C3690F514185EB51D8E1F55441B81E855B670F514166666606E4F55441E17A14DE650F5141333333F3E6F55441295C8F92630F5141333333D3EBF5544148E17AB4600F514166666656F3F554411F85EB515E0F51410AD7A360F9F55441713D0AA7610F51415C8FC215FAF554417B14AE37680F51415C8FC215FAF55441333333036A0F51411F85EB71F8F55441713D0AA7750F5141666666F6FAF55441713D0AA77B0F51410AD7A300FCF5544148E17A847D0F5141EC51B88EFCF554417B14AE47820F514100000030FEF55441333333B3820F514185EB5198FEF55441E17A14BE880F51418FC2F51800F654417B14AE678E0F5141EC51B8BE01F65441
+</a>
+
+<b>
+0106000000010000000103000000010000002F00000058E17AC4480F5141A4666606FDF55441A4703DCA470F5141713D0AF700F654415C8FC235460F514148E17AE404F65441F6285C7F460F51418FC2F50805F65441713D0A574E0F51413333330309F654410AD7A340510F5141000000600AF65441295C8FA2540F5141A4703DCA0BF654413D0AD7D3590F5141D7A370ED0CF65441E40C18245B0F514134BA45110DF65441FBD374E25E0F5141F40549690DF6544166666676600F5141AE47E14A0DF65441125CD191650F514108DD98D60CF65441AE47E1FA660F51411F85EBC10CF6544185EB5118690F514148E17AD40CF654415C8FC2C56A0F51410AD7A3100DF65441A4703D4A6D0F51417B14AEA70DF6544185EB5188760F514152B81E4510F65441713D0A77790F5141AE47E1BA10F654413D0AD7237B0F5141333333E310F654415C8FC2357D0F5141AE47E1BA10F654410AD7A3207F0F5141713D0A7710F65441295C8F627F0F5141CDCCCC1C10F654417B14AE47870F5141AE47E19A13F6544152B81E15880F5141D7A3704D14F65441D7A3701D8C0F51413D0AD73307F6544114AE47F18D0F51418FC2F5D802F65441B81E859B890F51411F85EBB101F65441E17A14BE880F51418FC2F51800F65441333333B3820F514185EB5198FEF554417B14AE47820F514100000030FEF554417AA7FE237B0F5141D5ECECE9FBF554413A5ED955750F5141E50BD7E4FAF554417F77A3E9700F5141AF27F7EFF9F55441C5ECD60F6C0F51419E9A63E3F8F55441333333036A0F51411F85EB71F8F5544100000060690F514185EB5188FBF55441333333D3670F5141C3F5287CFBF554415C8FC2255D0F514166666626FBF5544133333373590F5141C3F5280CFAF5544133333323580F51413D0AD783F9F55441295C8F82540F514133333323F7F55441295C8FC2510F51415C8FC2A5F5F5544185EB51784E0F5141713D0AF7F4F55441D7A3703D4B0F5141000000F0F5F554418FC2F5084A0F514148E17AA4F6F554413D0AD753490F5141B81E853BF8F5544158E17AC4480F5141A4666606FDF55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>423057 - 3576640
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+010600000001000000010300000001000000310000007B14AE678E0F5141EC51B8BE01F65441666666E68E0F51413D0AD7C301F65441CDCCCC9C9D0F5141CDCCCC4C06F65441666666069E0F514148E17A5406F6544114AE47919E0F51413D0AD7D305F654418FC2F5C89B0F51410000004002F6544152B81E959A0F5141000000F000F65441CDCCCCDC960F51417B14AE87FDF5544166666686940F51411F85EBA1FBF55441E17A145E930F5141C3F5289CFAF5544148E17A74910F5141C3F5287CF9F554410AD7A3108E0F51417B14AE57F7F55441333333338D0F51419A9999C9F6F55441713D0A178B0F51413D0AD7A3F5F55441295C8F72880F51410AD7A380F4F55441713D0A07870F51413D0AD7E3F3F55441EC51B8BE850F5141713D0A57F3F55441AE47E16A830F51417B14AE57F2F554410AD7A3C0800F5141295C8F32F1F554413D0AD7337E0F514152B81E25F0F5544185EB51A87B0F5141AE47E1FAEEF55441666666967A0F5141E17A147EEEF55441EC51B8DE7A0F5141295C8F22EEF55441AE47E17A7A0F51419A9999E9EDF554415C8FC215780F5141EC51B88EECF554415C8FC2C5750F51419A999919EBF55441AE47E1AA730F51410AD7A3A0E9F554410AD7A3F0700F514185EB51B8E7F554419A9999A96E0F51410AD7A320E6F5544148E17A246D0F514114AE4711E5F55441C3F5287C6D0F51413D0AD743E3F554411F85EB916D0F51411F85EB81E1F55441E17A14DE6B0F514114AE4771E0F554413D0AD7C3690F514185EB51D8E1F55441B81E855B670F514166666606E4F55441E17A14DE650F5141333333F3E6F55441295C8F92630F5141333333D3EBF5544148E17AB4600F514166666656F3F554411F85EB515E0F51410AD7A360F9F55441713D0AA7610F51415C8FC215FAF554417B14AE37680F51415C8FC215FAF55441333333036A0F51411F85EB71F8F55441713D0AA7750F5141666666F6FAF55441713D0AA77B0F51410AD7A300FCF5544148E17A847D0F5141EC51B88EFCF554417B14AE47820F514100000030FEF55441333333B3820F514185EB5198FEF55441E17A14BE880F51418FC2F51800F654417B14AE678E0F5141EC51B8BE01F65441
+</a>
+
+<b>
+0106000000010000000103000000010000002F00000058E17AC4480F5141A4666606FDF55441A4703DCA470F5141713D0AF700F654415C8FC235460F514148E17AE404F65441F6285C7F460F51418FC2F50805F65441713D0A574E0F51413333330309F654410AD7A340510F5141000000600AF65441295C8FA2540F5141A4703DCA0BF654413D0AD7D3590F5141D7A370ED0CF65441E40C18245B0F514134BA45110DF65441FBD374E25E0F5141F40549690DF6544166666676600F5141AE47E14A0DF65441125CD191650F514108DD98D60CF65441AE47E1FA660F51411F85EBC10CF6544185EB5118690F514148E17AD40CF654415C8FC2C56A0F51410AD7A3100DF65441A4703D4A6D0F51417B14AEA70DF6544185EB5188760F514152B81E4510F65441713D0A77790F5141AE47E1BA10F654413D0AD7237B0F5141333333E310F654415C8FC2357D0F5141AE47E1BA10F654410AD7A3207F0F5141713D0A7710F65441295C8F627F0F5141CDCCCC1C10F654417B14AE47870F5141AE47E19A13F6544152B81E15880F5141D7A3704D14F65441D7A3701D8C0F51413D0AD73307F6544114AE47F18D0F51418FC2F5D802F65441B81E859B890F51411F85EBB101F65441E17A14BE880F51418FC2F51800F65441333333B3820F514185EB5198FEF554417B14AE47820F514100000030FEF554417AA7FE237B0F5141D5ECECE9FBF554413A5ED955750F5141E50BD7E4FAF554417F77A3E9700F5141AF27F7EFF9F55441C5ECD60F6C0F51419E9A63E3F8F55441333333036A0F51411F85EB71F8F5544100000060690F514185EB5188FBF55441333333D3670F5141C3F5287CFBF554415C8FC2255D0F514166666626FBF5544133333373590F5141C3F5280CFAF5544133333323580F51413D0AD783F9F55441295C8F82540F514133333323F7F55441295C8FC2510F51415C8FC2A5F5F5544185EB51784E0F5141713D0AF7F4F55441D7A3703D4B0F5141000000F0F5F554418FC2F5084A0F514148E17AA4F6F554413D0AD753490F5141B81E853BF8F5544158E17AC4480F5141A4666606FDF55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>423057 - 1283
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+010600000001000000010300000001000000310000007B14AE678E0F5141EC51B8BE01F65441666666E68E0F51413D0AD7C301F65441CDCCCC9C9D0F5141CDCCCC4C06F65441666666069E0F514148E17A5406F6544114AE47919E0F51413D0AD7D305F654418FC2F5C89B0F51410000004002F6544152B81E959A0F5141000000F000F65441CDCCCCDC960F51417B14AE87FDF5544166666686940F51411F85EBA1FBF55441E17A145E930F5141C3F5289CFAF5544148E17A74910F5141C3F5287CF9F554410AD7A3108E0F51417B14AE57F7F55441333333338D0F51419A9999C9F6F55441713D0A178B0F51413D0AD7A3F5F55441295C8F72880F51410AD7A380F4F55441713D0A07870F51413D0AD7E3F3F55441EC51B8BE850F5141713D0A57F3F55441AE47E16A830F51417B14AE57F2F554410AD7A3C0800F5141295C8F32F1F554413D0AD7337E0F514152B81E25F0F5544185EB51A87B0F5141AE47E1FAEEF55441666666967A0F5141E17A147EEEF55441EC51B8DE7A0F5141295C8F22EEF55441AE47E17A7A0F51419A9999E9EDF554415C8FC215780F5141EC51B88EECF554415C8FC2C5750F51419A999919EBF55441AE47E1AA730F51410AD7A3A0E9F554410AD7A3F0700F514185EB51B8E7F554419A9999A96E0F51410AD7A320E6F5544148E17A246D0F514114AE4711E5F55441C3F5287C6D0F51413D0AD743E3F554411F85EB916D0F51411F85EB81E1F55441E17A14DE6B0F514114AE4771E0F554413D0AD7C3690F514185EB51D8E1F55441B81E855B670F514166666606E4F55441E17A14DE650F5141333333F3E6F55441295C8F92630F5141333333D3EBF5544148E17AB4600F514166666656F3F554411F85EB515E0F51410AD7A360F9F55441713D0AA7610F51415C8FC215FAF554417B14AE37680F51415C8FC215FAF55441333333036A0F51411F85EB71F8F55441713D0AA7750F5141666666F6FAF55441713D0AA77B0F51410AD7A300FCF5544148E17A847D0F5141EC51B88EFCF554417B14AE47820F514100000030FEF55441333333B3820F514185EB5198FEF55441E17A14BE880F51418FC2F51800F654417B14AE678E0F5141EC51B8BE01F65441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000B81E859B890F51411F85EBB101F65441E17A14BE880F51418FC2F51800F65441333333B3820F514185EB5198FEF554417B14AE47820F514100000030FEF554417AA7FE237B0F5141D5ECECE9FBF554413A5ED955750F5141E50BD7E4FAF554417F77A3E9700F5141AF27F7EFF9F55441C5ECD60F6C0F51419E9A63E3F8F55441333333036A0F51411F85EB71F8F554416A7CADCD690F514134CD2275F9F554410AD7A3D06B0F51417B14AE97F9F554411F85EBE1700F514114AE47E1FAF5544148E17A74750F5141666666D6FBF554411F85EBF1780F51415C8FC295FCF55441666666B6810F51413D0AD753FFF55441B81E859B890F51411F85EBB101F65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>423057 - 55274
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+010600000001000000010300000001000000310000007B14AE678E0F5141EC51B8BE01F65441666666E68E0F51413D0AD7C301F65441CDCCCC9C9D0F5141CDCCCC4C06F65441666666069E0F514148E17A5406F6544114AE47919E0F51413D0AD7D305F654418FC2F5C89B0F51410000004002F6544152B81E959A0F5141000000F000F65441CDCCCCDC960F51417B14AE87FDF5544166666686940F51411F85EBA1FBF55441E17A145E930F5141C3F5289CFAF5544148E17A74910F5141C3F5287CF9F554410AD7A3108E0F51417B14AE57F7F55441333333338D0F51419A9999C9F6F55441713D0A178B0F51413D0AD7A3F5F55441295C8F72880F51410AD7A380F4F55441713D0A07870F51413D0AD7E3F3F55441EC51B8BE850F5141713D0A57F3F55441AE47E16A830F51417B14AE57F2F554410AD7A3C0800F5141295C8F32F1F554413D0AD7337E0F514152B81E25F0F5544185EB51A87B0F5141AE47E1FAEEF55441666666967A0F5141E17A147EEEF55441EC51B8DE7A0F5141295C8F22EEF55441AE47E17A7A0F51419A9999E9EDF554415C8FC215780F5141EC51B88EECF554415C8FC2C5750F51419A999919EBF55441AE47E1AA730F51410AD7A3A0E9F554410AD7A3F0700F514185EB51B8E7F554419A9999A96E0F51410AD7A320E6F5544148E17A246D0F514114AE4711E5F55441C3F5287C6D0F51413D0AD743E3F554411F85EB916D0F51411F85EB81E1F55441E17A14DE6B0F514114AE4771E0F554413D0AD7C3690F514185EB51D8E1F55441B81E855B670F514166666606E4F55441E17A14DE650F5141333333F3E6F55441295C8F92630F5141333333D3EBF5544148E17AB4600F514166666656F3F554411F85EB515E0F51410AD7A360F9F55441713D0AA7610F51415C8FC215FAF554417B14AE37680F51415C8FC215FAF55441333333036A0F51411F85EB71F8F55441713D0AA7750F5141666666F6FAF55441713D0AA77B0F51410AD7A300FCF5544148E17A847D0F5141EC51B88EFCF554417B14AE47820F514100000030FEF55441333333B3820F514185EB5198FEF55441E17A14BE880F51418FC2F51800F654417B14AE678E0F5141EC51B8BE01F65441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000B81E859B890F51411F85EBB101F65441E17A14BE880F51418FC2F51800F65441333333B3820F514185EB5198FEF554417B14AE47820F514100000030FEF554417AA7FE237B0F5141D5ECECE9FBF554413A5ED955750F5141E50BD7E4FAF554417F77A3E9700F5141AF27F7EFF9F55441C5ECD60F6C0F51419E9A63E3F8F55441333333036A0F51411F85EB71F8F554416A7CADCD690F514134CD2275F9F554410AD7A3D06B0F51417B14AE97F9F554411F85EBE1700F514114AE47E1FAF5544148E17A74750F5141666666D6FBF554411F85EBF1780F51415C8FC295FCF55441666666B6810F51413D0AD753FFF55441B81E859B890F51411F85EBB101F65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>423088 - 194582
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -450 </desc>
+<a>
+010600000001000000010300000001000000100000008FC2F538D90F5141D7A3700D94F6544152B81EE5D60F5141CDCCCC0C98F65441295C8FD2D40F51418FC2F5189CF65441D7A370FDD30F514148E17A149EF65441EC51B82ED30F5141713D0AB7A0F65441C3F528DCD20F51411F85EB31A2F6544133333383D50F5141333333C3A3F6544185EB51D8D60F5141333333C3A0F65441EC51B85ED80F514148E17A249DF65441000000C0D90F5141C3F5280C9AF65441C3F528BCDB0F5141295C8FE297F6544114AE4771E00F5141D7A3703D91F65441AE47E11AE10F51419A9999E98FF654413D0AD7F3DD0F5141B81E852B8DF65441A4703DFADA0F5141C3F5283C91F654418FC2F538D90F5141D7A3700D94F65441
+</a>
+
+<b>
+0106000000010000000103000000010000001400000052B81EE5D60F5141CDCCCC0C98F654410D99D055D50F5141CC0AA0189BF65441F26C9DE5D30F51416A9439629EF654413D057993D30F5141FD95446E9FF654412893658CD30F5141769E5B859FF65441DFD6F58BD30F5141C33AC8869FF654413ABB87E0D20F5141FCA88034A2F6544176A54646D30F51418422A170A2F654415C765D94D30F514105BFC69EA2F6544156D994F3D30F5141916D0BD7A2F65441D52F0251D50F5141B141B3FCA0F654418669559FD60F514138E2A1BC9EF654413C753ADED70F5141EBA041BE9BF65441F03A4422D90F51417A2B2F5A99F654416C6CE752DB0F51412AA4F36096F6544176B5CF33E00F5141DC4695208FF65441736DCAD4DD0F514147FFF1558DF65441A4703DFADA0F5141C3F5283C91F654418FC2F538D90F5141D7A3700D94F6544152B81EE5D60F5141CDCCCC0C98F65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>423088 - 365354
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -450 </desc>
+<a>
+010600000001000000010300000001000000100000008FC2F538D90F5141D7A3700D94F6544152B81EE5D60F5141CDCCCC0C98F65441295C8FD2D40F51418FC2F5189CF65441D7A370FDD30F514148E17A149EF65441EC51B82ED30F5141713D0AB7A0F65441C3F528DCD20F51411F85EB31A2F6544133333383D50F5141333333C3A3F6544185EB51D8D60F5141333333C3A0F65441EC51B85ED80F514148E17A249DF65441000000C0D90F5141C3F5280C9AF65441C3F528BCDB0F5141295C8FE297F6544114AE4771E00F5141D7A3703D91F65441AE47E11AE10F51419A9999E98FF654413D0AD7F3DD0F5141B81E852B8DF65441A4703DFADA0F5141C3F5283C91F654418FC2F538D90F5141D7A3700D94F65441
+</a>
+
+<b>
+0106000000010000000103000000010000001400000052B81EE5D60F5141CDCCCC0C98F654410D99D055D50F5141CC0AA0189BF65441F26C9DE5D30F51416A9439629EF654413D057993D30F5141FD95446E9FF654412893658CD30F5141769E5B859FF65441DFD6F58BD30F5141C33AC8869FF654413ABB87E0D20F5141FCA88034A2F6544176A54646D30F51418422A170A2F654415C765D94D30F514105BFC69EA2F6544156D994F3D30F5141916D0BD7A2F65441D52F0251D50F5141B141B3FCA0F654418669559FD60F514138E2A1BC9EF654413C753ADED70F5141EBA041BE9BF65441F03A4422D90F51417A2B2F5A99F654416C6CE752DB0F51412AA4F36096F6544176B5CF33E00F5141DC4695208FF65441736DCAD4DD0F514147FFF1558DF65441A4703DFADA0F5141C3F5283C91F654418FC2F538D90F5141D7A3700D94F6544152B81EE5D60F5141CDCCCC0C98F65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>424914 - 3339665
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -304 </desc>
+<a>
+01060000000200000001030000000100000020000000F6285C2FD1125141D7A3701DED395441F6285CDFCE125141295C8FC2EF3954415C8FC2C5CC12514114AE47F1F1395441A4703DEACA1251419A9999C9F3395441D7A3709DC8125141CDCCCCECF53954410AD7A3B0C61251419A9999D9F7395441B81E85EBC5125141295C8F32F9395441333333D3C512514133333373FA3954417B14AEF7C6125141B81E85BBFB395441F6285C0FCA125141A4703D4AFD395441C3F528ECCE12514152B81EB5003A5441333333C3D0125141F6285C0F023A5441A4703DBAD212514166666626FF395441B81E853BD5125141666666D6FB3954413D0AD723D81251411F85EB51F839544148E17A74DB1251413D0AD773F43954411F85EB71DF1251411F85EB81EF395441B81E85EBE1125141295C8F42EC395441333333E3E6125141713D0A27E4395441EC51B82EEA1251413D0AD7E3E539544152B81EC5EB125141EC51B8CEE2395441AE47E17AE712514100000070E039544166666666E1125141B81E851BDD395441B81E859BDD125141295C8F02DB395441D7A3708DDC12514148E17A84DA395441EC51B8CEDA125141AE47E1EADB39544133333383D9125141CDCCCCECDF39544166666636D8125141E17A14AEE33954415C8FC255D6125141F6285CCFE6395441AE47E12AD4125141666666A6E93954411F85EBD1D2125141CDCCCC3CEB395441F6285C2FD1125141D7A3701DED39544101030000000100000037000000A4703D2A0B135141E17A144E843954410AD7A3F009135141000000B084395441EC51B8EE06135141666666D68B39544133333373031351419A9999699339544185EB51A802135141F6285C0F9539544100000070011351411F85EB4197395441CDCCCC5CFF125141AE47E1FA9A395441333333B3FB125141F6285C1FA2395441666666A6F9125141713D0A47A63954415C8FC245F81251413D0AD773A83954413D0AD763F612514166666666AB395441B81E851BF512514152B81E35AE395441EC51B89EF4125141295C8FE2B0395441713D0AB7F212514114AE4791B439544114AE4741F0125141713D0A27B93954411F85EBD1EE1251419A999909BC3954415C8FC235EA125141F6285C7FC439544100000060E7125141333333E3C9395441D7A3700DE5125141333333F3CD395441A4703D9AE3125141295C8F32D0395441F6285CDFDE1251411F85EBD1D63954418FC2F598E0125141713D0AB7D739544152B81EC5E412514114AE4721DA3954410AD7A330EA1251413D0AD733DD39544185EB51A8ED1251419A999929DF3954413D0AD7D3F2125141F6285CAFE1395441F6285C9FF81251413D0AD753D639544148E17A64FA12514185EB5118D33954410AD7A320FE125141666666D6CC395441D7A370AD06135141C3F5281CBE39544148E17A440C1351410AD7A360B439544166666686101351419A9999E9AC395441B81E851B1113514152B81EB5AB3954417B14AE67141351415C8FC295A4395441713D0AE71A135141666666E69639544148E17A14201351418FC2F5188D395441295C8F822A1351419A999939773954411F85EB2135135141EC51B84E5C395441CDCCCCFC3D135141B81E85DB45395441A4703D7A3C135141C3F528BC45395441713D0A07371351419A99994945395441000000C02F13514114AE471144395441B81E854B2713514114AE4741453954417B14AE87221351411F85EBD147395441A4703D1A201351410AD7A3E04D3954418FC2F5D81E13514114AE4721523954413D0AD7531D135141F6285CDF58395441B81E851B1C135141295C8F125E39544185EB51681A1351413333331363395441AE47E1FA1713514152B81EB56839544148E17AE4141351415C8FC2E56F395441333333B311135141713D0A0776395441C3F5288C10135141000000B078395441000000400D13514114AE47017F395441A4703D2A0B135141E17A144E84395441
+</a>
+
+<b>
+0106000000010000000103000000010000006500000032E9A81E22135141EB9E8D53893954415871E06B24135141768DAA7B843954415BCF197524135141F622806A8439544177F72392251351412D07C01082395441FC16DFD5261351411759535C7F3954415BCE8AA92A135141542DEB2C7739544182F6AF652B13514151DC53B175395441C8980E773013514105CD1D6F6A39544191F3DEF733135141500314F6613954417DE6B2B337135141EF2229F0583954416A14CF843E135141793AB0F0443954416C052D933E1351414D2658EB44395441EAD6BB983E1351419EA041DB44395441A4703D7A3C135141C3F528BC45395441713D0A07371351419A99994945395441000000C02F13514114AE4711443954414B1582BA291351413D2C8D8444395441B81E854B2713514114AE4741453954411BD9253123135141736DAF2347395441F507B65F201351419A06E1FB51395441125B3C421E1351415E31C7EE59395441F30A879E1B1351413DD3D85B6239544105E7F043191351410EF3EBAA693954418F111357161351413F1F2C5B6F395441E54DFDBA1313514160507E6574395441BC1084081213514174959BB4773954417729DECA0E135141996B85137E395441950FEF000C1351413CE67D3183395441623F29270A13514159DC597D84395441EC51B8EE06135141666666D68B39544133333373031351419A9999699339544185EB51A802135141F6285C0F9539544100000070011351411F85EB419739544167000FFBFE12514166CCD6E49A3954417ECA2D73FB1251418EBEB201A2395441AE13CECDF9125141254D7664A53954415C8FC245F81251413D0AD773A839544167E078CFF61251415FC0537BAB395441C3DDEC45F6125141E509FA8EAB395441B81E851BF512514152B81E35AE3954415A29AB6CF412514161DCF983B0395441713D0AB7F212514114AE4791B43954412A8744D5EF1251411D91AD76BA395441B0BB5C93ED1251414C33140EBF395441D7C08640E9125141C81D29A0C7395441FDB1F79DE41251410643B55FD0395441B98DEB87DF125141CDBB9E55D8395441E2FB4807DD125141404D67C8DA395441132DBBF3DA125141C69B91D1DC39544133333383D9125141CDCCCCECDF39544166666636D8125141E17A14AEE33954415C8FC255D6125141F6285CCFE6395441AE47E12AD4125141666666A6E93954411F85EBD1D2125141CDCCCC3CEB395441F6285C2FD1125141D7A3701DED395441F6285CDFCE125141295C8FC2EF3954415C8FC2C5CC12514114AE47F1F1395441A4703DEACA1251419A9999C9F3395441D7A3709DC8125141CDCCCCECF53954410AD7A3B0C61251419A9999D9F7395441B81E85EBC5125141295C8F32F9395441333333D3C512514133333373FA3954417B14AEF7C6125141B81E85BBFB395441F6285C0FCA125141A4703D4AFD395441C3F528ECCE12514152B81EB5003A5441333333C3D0125141F6285C0F023A544188B86FB2D1125141D377FFF1023A5441F62C2415D41251411ED20DACFF395441CA2E04EDD612514151A1469FFB3954411B231B1ADA1251416253D2F9F6395441A68595E0DB125141CACA8D4CF43954417F348464DD125141F8FB130DF2395441E8E5B9F8DD125141549E3731F139544196ABE2B9DF1251410C4DB98DEE39544104ABAE85E1125141EA813BDAEB395441A464F5AAE612514186077119E43954417374189CE8125141CDC2C60FE1395441A5727637EA12514162514F32DE395441E9BAE439EA1251410BC35833DE395441BE1CD660EA125141935AF543DE395441A7597F64EA1251413F822B3EDE3954418BE00766EA12514199730B46DE39544117524C3CF01251413FA193C3E03954415B91FBC2F2125141AB096ED7E1395441DD18DD24F3125141E801A326E13954410DACB506F4125141D18CD67EDF395441E34F2644F5125141B207EB4CDD3954412831A1B8F6125141B607EBACDA3954414F8D307BF81251411397AD82D739544192B18980F812514109B81C79D7395441EA7A9BF7F81251417E5E0CA2D63954412A888B91FD1251416B62F147CE395441D7A370AD06135141C3F5281CBE395441378DA2070C135141BF350F4CB4395441686ACAFB0F135141980AF715AD395441D2C9FB61161351413E519DA7A039544188AD397A1913514103284B8A9A39544115C883801B135141C3A157879639544165F4395A1E13514183EC33F790395441C1DB533220135141EBDF3B448D39544132E9A81E22135141EB9E8D5389395441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>425658 - 1708273
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -909 </desc>
+<a>
+01060000000100000001030000000100000006000000CDCCCC6CF4835041D7A3707DC81E5541A4703D9AF3835041AE47E1BACA1E5541713D0A97108450411F85EBB1CF1E5541295C8F0212845041B81E855BC61E5541F6285C5FF983504148E17AE4BA1E5541CDCCCC6CF4835041D7A3707DC81E5541
+</a>
+
+<b>
+01060000000100000001030000000100000005000000057E0ED7108450416B38F70CCE1E5541295C8F0212845041B81E855BC61E5541F6285C5FF983504148E17AE4BA1E5541E7797A61F48350418BF2459CC81E5541057E0ED7108450416B38F70CCE1E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>425658 - 3273491
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -909 </desc>
+<a>
+01060000000100000001030000000100000006000000CDCCCC6CF4835041D7A3707DC81E5541A4703D9AF3835041AE47E1BACA1E5541713D0A97108450411F85EBB1CF1E5541295C8F0212845041B81E855BC61E5541F6285C5FF983504148E17AE4BA1E5541CDCCCC6CF4835041D7A3707DC81E5541
+</a>
+
+<b>
+01060000000100000001030000000100000005000000057E0ED7108450416B38F70CCE1E5541295C8F0212845041B81E855BC61E5541F6285C5FF983504148E17AE4BA1E5541E7797A61F48350418BF2459CC81E5541057E0ED7108450416B38F70CCE1E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>429198 - 52908
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000100000090000000A4703D2A02705141713D0A772BB15441295C8F820770514152B81EA529B15441B81E85EB0B705141D7A370AD27B15441B81E858B13705141C3F5288C24B154418FC2F5681D7051410AD7A3E020B15441C3F528FC1F70514152B81E851FB154410AD7A3D0287051419A9999D91DB154411F85EB11327051417B14AE171CB154413D0AD7F3347051417B14AE971BB1544133333353377051413D0AD7D31AB15441E17A143E3E7051411F85EB311AB1544100000080457051411F85EB7119B154415C8FC2C54A7051418FC2F50819B15441000000C0547051411F85EB7119B1544114AE47E158705141CDCCCCEC17B15441B81E85BB5970514185EB513816B154410000009059705141C3F5283C13B1544114AE47E158705141EC51B8EE10B1544114AE47F157705141B81E857B0FB154413D0AD7A355705141A4703D4A0EB15441295C8FA25270514152B81EF50CB154410AD7A3404F7051418FC2F5280DB15441295C8F324A705141666666760DB154418FC2F5F840705141333333030EB154410AD7A3F03E705141295C8F420EB154411F85EBD139705141A4703D5A0EB154418FC2F5B835705141CDCCCC9C0EB1544152B81E15337051411F85EBB10EB154413D0AD75331705141AE47E1DA0EB15441A4703D6A30705141E17A14BE0EB15441295C8FE22D705141F6285C0F0DB15441D7A3708D2C70514152B81E550CB154419A9999E9287051410AD7A3800DB15441C3F5285C25705141333333630DB15441CDCCCCDC1E705141295C8FB20FB15441666666961B705141666666A611B15441C3F5289C157051411F85EBB113B1544148E17A94127051410000000016B154417B14AE470F705141295C8FD219B1544148E17A540C705141713D0A371DB15441F6285CBF087051410AD7A3401FB154415C8FC2F504705141CDCCCC8C20B15441F6285C5F007051413D0AD75320B15441A4703D1AFC6F51410AD7A30020B154417B14AE97F96F51410000007020B1544114AE47E1F76F51415C8FC2F520B154410AD7A340F46F51419A99994922B15441D7A3701DF16F51413D0AD7C322B15441F6285C8FEC6F514148E17A0423B15441F6285CEFE86F51417B14AEB720B1544148E17A04E66F5141A4703D1A1FB15441CDCCCC3CE76F5141333333831CB1544185EB5198E86F514152B81E0519B15441E17A14EEE96F51418FC2F50817B154413D0AD793EB6F5141AE47E14A14B154415C8FC2E5EE6F5141F6285CEF0CB1544114AE47E1F06F5141CDCCCC2C09B15441B81E858BF36F51419A99996904B1544185EB5118F66F51417B14AED7FDB05441AE47E16AF76F5141B81E85ABF9B0544114AE4721FA6F5141B81E85EBF9B05441295C8F52FC6F5141B81E854BF9B054415C8FC2D5FE6F5141000000E0F5B05441B81E853B00705141F6285CFFF3B05441666666460370514114AE47B1F2B05441295C8F8204705141D7A3709DF2B0544148E17AF40470514133333393F4B054417B14AE670770514185EB5168F8B0544148E17A7409705141C3F5289CF9B054410AD7A3D00B70514148E17A24FAB054413D0AD7A30D705141E17A14BEF9B054410AD7A3600F705141E17A146EF9B05441D7A370BD11705141B81E853BFAB05441295C8F1214705141C3F5280CFCB0544185EB51F8177051417B14AEA7FBB054418FC2F5A81970514185EB5178FBB0544152B81E252270514114AE4791FAB05441EC51B88E2B705141CDCCCCCCF8B054418FC2F51830705141AE47E12AF9B05441713D0A97337051415C8FC2F5F9B05441333333B333705141333333D3F8B05441D7A3706D347051419A999999F6B054411F85EBB135705141A4703D6AF4B05441CDCCCC0C377051415C8FC255F0B054411F85EBB138705141C3F5280CEFB054417B14AED73A70514114AE4751ECB054411F85EB913D705141A4703D7AEAB054411F85EBA1417051419A999969E8B05441666666D64670514114AE47D1E7B0544148E17A544E7051415C8FC295E9B0544152B81E155070514114AE4761E8B05441E17A149E50705141713D0A47E4B054419A99995950705141A4703D5AE0B0544152B81E754F705141B81E859BDCB054410AD7A3F04D705141E17A148EDAB0544148E17A044C705141AE47E15AD9B05441295C8FF248705141000000A0DAB054411F85EBB14570514148E17A14DCB0544114AE47E13F705141713D0A57DEB05441AE47E17A387051411F85EBE1D9B05441CDCCCC0C35705141A4703D1AD8B05441000000C02F705141E17A14FED4B0544114AE47C12D7051415C8FC225D4B05441333333D32B70514185EB5108D7B0544185EB519829705141A4703D6AD8B05441E17A14BE2670514152B81E15D9B05441F6285C0F2270514114AE4711DAB054417B14AE971E7051419A9999F9E4B05441A4703DDA1B7051417B14AE77F1B05441EC51B88E1A7051410AD7A330F1B054416666666619705141D7A3706DEEB05441B81E856B1870514148E17A04EAB054419A99999918705141EC51B81EE5B05441E17A147E15705141713D0AE7E2B05441295C8F1210705141295C8FF2E1B05441A4703D1A097051419A999919E0B0544114AE473104705141B81E856BE0B054418FC2F558F36F5141C3F528FCE3B054411F85EBE1E66F51411F85EB61E7B0544166666686E06F514152B81E45EDB0544133333363D56F5141B81E859BF3B05441C3F528DCD36F5141713D0A97FAB05441D7A3700DD36F5141CDCCCC0CFDB05441EC51B81ED16F5141F6285C5F00B154415C8FC225CD6F5141EC51B8CE04B1544152B81E65C86F5141A4703DCA0AB15441B81E853BC66F51411F85EB810DB154417B14AE57C36F5141D7A370DD0FB154417B14AE97C66F514114AE471112B1544133333363C86F514114AE47E10FB154410AD7A360CA6F51416666666611B1544100000000CA6F514114AE47F113B154413D0AD733D76F5141EC51B81E16B15441B81E85CBD56F5141EC51B84E1AB1544166666676D36F5141B81E85FB1DB1544152B81EC5D16F5141666666D623B15441666666A6CF6F51410AD7A3302BB15441B81E854BD66F5141333333932AB15441EC51B89ED66F5141A4703D8A31B15441F6285C9FE46F514152B81E7530B15441713D0A27F06F51410AD7A3902FB15441B81E852BF36F51417B14AE372FB15441B81E852BFC6F51419A9999E92CB15441A4703D2A02705141713D0A772BB15441
+</a>
+
+<b>
+0106000000010000000103000000010000004E0000007ABA069C50705141EFF0E728E4B05441ADA175C84F7051411A1538F9DDB054415CB7F94F4F705141EDAE4769DCB054410112E49D4E705141083F6978DBB054413B706D514E7051412C82FD10DBB0544154F4CFBA4D70514148407B6CDAB054412CCB63AD4B7051412CC60E7FD9B05441EAC7AC2C49705141ADB1F887DAB054419244C83E46705141702B77D5DBB054411F85EBB14570514148E17A14DCB0544114AE47E13F705141713D0A57DEB05441D64D44933C705141F96E6E59DCB054414BE09E4E3B705141F53BE095DBB054413490D7393970514141E6F254DAB05441C98B62A638705141BF3720FCD9B054416D8F8E313670514138932AB2D8B05441CDCCCC0C35705141A4703D1AD8B05441E725531731705141A4578AC7D5B05441C3503D872E705141FEC9A979D4B0544114AE47C12D7051415C8FC225D4B05441333333D32B70514185EB5108D7B0544185EB519829705141A4703D6AD8B0544164C7AC51287051410C3AADB6D8B054410CF566F821705141430F8859DAB054419DF5468A1E7051417521B536E5B05441A4703DDA1B7051417B14AE77F1B0544117F093D31B705141744E0396F1B054416B5AF3AF197051412D646658FBB0544153848C691C7051412182602DFBB05441710AE300237051412CFE0268FAB05441CB8EB83D24705141AB11842CFAB05441EC51B88E2B705141CDCCCCCCF8B05441B4D55D8F2C705141432693E1F8B05441BB82B58D2D705141D2C029F6F8B054418FC2F51830705141AE47E12AF9B05441C5CFE3A9307051410749C44BF9B05441FE7216A1317051413E84C669F9B05441713D0A97337051415C8FC2F5F9B05441333333B333705141333333D3F8B05441D7A3706D347051419A999999F6B05441CF61658D347051410F198362F6B05441CB4459E534705141AABAE4CAF5B0544102E55F37357051411BEA7D3DF5B054412EABB95B357051411902D4FEF4B054417413628235705141E7ED2FBCF4B0544150C678DA3570514120C122F0F3B054415F9D7CF735705141D201C598F3B054416FA0DD22367051419A092716F3B054414892D8433670514130BDD8B2F2B05441E190804F36705141EEB8BF8FF2B05441CDCCCC0C377051415C8FC255F0B05441DF7BAC5B37705141D5090718F0B05441C268E3C7377051415CA854C3EFB0544167CB3310387051410F7BBB8AEFB05441221165ED38705141CA8C8DC0EEB054417B14AED73A70514114AE4751ECB054415D1FB14F3B7051412E985100ECB0544168A9E2F93B705141C920818DEBB054411F85EB913D705141A4703D7AEAB05441E7F2AEE34070514196794CCAE8B0544193D9AA7C41705141AA29897CE8B054411F85EBA1417051419A999969E8B0544173F7525442705141ABC03455E8B054419DAAF38A427051410A1EF64EE8B05441187291F5427051414114C642E8B05441D93677D54370514164E72D29E8B05441DA70131F44705141C6C2C320E8B05441666666D64670514114AE47D1E7B05441FA7A79E548705141BE449E4DE8B05441DC6A9262497051418E08216BE8B054418BADFBDE4A7051416F77DEC4E8B05441E93F4EB64B705141D805AAF7E8B05441557B246C4E705141306B7D85E9B05441C369A320507051418E70F408E8B054410CC97C2E50705141FBBAC19EE7B05441E33A404150705141AAD6DF0EE7B0544146DC504E507051417576B0AAE6B054417ABA069C50705141EFF0E728E4B05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>429418 - 3048935
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+010600000001000000010300000001000000800000001F85EBB12762514148E17A7436C154415C8FC2A5256251410AD7A3D039C154410AD7A32026625141E17A149E3EC154417B14AE07256251415C8FC2D53FC154411F85EBE122625141AE47E13A40C154418FC2F5D8216251410AD7A33043C1544148E17A54196251410AD7A3C04AC1544152B81E05176251410AD7A3F04BC15441E17A14CE16625141EC51B80E4DC15441AE47E16A15625141D7A3709D4EC15441B81E85AB126251417B14AE674EC15441A4703DCA0C625141295C8F1250C15441295C8F420C6251417B14AE2751C15441EC51B81E0A62514152B81EA552C15441F6285C5F09625141D7A370DD5EC154416666663604625141AE47E1BA64C15441F6285CDF00625141295C8FF269C15441B81E85BBFF6151419A9999B96BC154413D0AD783FE6151410AD7A3C06CC1544152B81E75FD615141713D0A076FC15441295C8FA2FD61514152B81EF570C1544152B81E95FC6151417B14AED772C15441EC51B8FEF9615141AE47E1AA77C15441F6285CCFF86151411F85EB717CC154413D0AD7E3F7615141713D0AC77FC154411F85EBC1F76151413D0AD7E382C154418FC2F548F8615141B81E85AB87C154413D0AD753F8615141EC51B8DE8AC15441F6285C5FF86151411F85EBA18DC15441713D0A27F8615141AE47E12A94C154410AD7A320F9615141295C8F5298C1544148E17A44F8615141EC51B87E9CC1544148E17A24F861514166666666A2C15441F6285CDFF86151418FC2F5A8A7C1544152B81ED5FA61514166666676ACC15441333333F3FC615141F6285C3FAFC15441F6285C4FFE61514114AE4701B2C15441CDCCCC6C00625141C3F5286CB9C154419A99999904625141AE47E19AC1C1544148E17A24086251410AD7A3E0C7C154411F85EBB109625141C3F528BCC9C15441295C8F1210625141666666A6CEC1544185EB513813625141C3F528CCCCC15441A4703D3A166251410AD7A3C0CBC15441E17A146E136251417B14AE97C6C15441295C8F320F625141CDCCCCECBCC15441713D0A470A625141713D0AA7B1C1544152B81E650862514148E17A34AAC15441E17A147E06625141CDCCCCECA1C15441295C8F2205625141713D0A479AC15441C3F528DC0A625141F6285C8F99C15441C3F5288C09625141E17A144E92C154418FC2F51809625141000000508DC1544152B81E1509625141D7A3703D83C154417B14AE770962514148E17A347FC1544148E17A940A625141E17A148E78C15441713D0AF70B625141F6285C8F71C154410AD7A36012625141713D0A3773C15441F6285CCF1662514185EB516874C15441AE47E1BA1F62514114AE47216FC154411F85EBF11F6251410AD7A3006FC15441D7A3707D20625141333333B372C15441CDCCCC7C206251411F85EB0175C15441A4703D3A20625141E17A145E77C1544148E17A64236251410AD7A3B075C154415C8FC23527625141A4703DEA73C15441B81E855B2D625141295C8F6271C15441713D0AB733625141713D0AB76EC154411F85EBC13362514114AE47C16AC154411F85EB6138625141295C8F526AC15441C3F528CC386251410AD7A3A06EC15441C3F5289C3962514148E17A2475C15441000000B03A6251411F85EB217BC15441AE47E19A42625141C3F528BC79C15441C3F5280C4162514152B81E3570C154419A99999941625141295C8F0270C15441C3F528BC51625141E17A147E6BC154418FC2F51850625141E17A142E61C15441D7A3704D4962514185EB51E841C1544133333323526251411F85EBD141C15441333333E352625141000000D041C154418FC2F568556251415C8FC2F540C154413D0AD7F355625141666666C640C1544133333323576251410000006040C15441B81E858B5862514114AE47313FC15441EC51B88E5B625141000000203DC15441E17A14CE5A62514114AE47D136C15441CDCCCCBC5A6251419A99995936C15441F6285C2F596251415C8FC27536C15441EC51B84E58625141C3F5280C37C1544148E17A84576251415C8FC24537C1544114AE4781566251417B14AE3737C1544148E17AD455625141E17A14FE36C15441B81E856B54625141295C8FD236C15441713D0A7753625141E17A14FE36C1544152B81E655262514114AE47E136C15441C3F528FC506251417B14AE3737C15441F6285C4F50625141C3F5289C37C154410AD7A3B04F625141AE47E13A38C15441F6285C2F4F6251413333338338C154411F85EBF14D6251413333338338C15441A4703DAA4D625141E17A14AE38C15441666666A64C6251411F85EB2139C1544114AE47B14B6251413333331339C15441295C8F824A625141333333A339C15441C3F5289C49625141333333A339C154410AD7A350486251416666668639C1544100000030476251410000003039C15441AE47E1AA4562514114AE479138C15441F6285CEF4462514148E17AE437C154415C8FC225446251415C8FC2D537C154415C8FC20543625141E17A148E37C154410AD7A310426251418FC2F5B837C154411F85EBE1406251416666666638C15441000000D03F625141295C8FF237C15441F6285C3F3F625141AE47E13A38C154418FC2F5583E6251417B14AEE738C154413D0AD7F33D625141E17A14AE38C154418FC2F5383D625141AE47E13A38C15441EC51B86E3C625141000000A038C154419A9999793B6251410000003039C15441CDCCCCCC3A625141CDCCCCBC38C154417B14AEE739625141333333D338C154411F85EBA137625141C3F5288C39C15441A4703DEA346251413D0AD7433CC15441EC51B88E2A6251416666662639C154417B14AE6729625141EC51B86E36C154411F85EBB12762514148E17A7436C15441
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000002F870ED34F625141AF975DEC5FC154419D9F39394F625141A09963285DC15441BCD3BA5F4E625141DC206A3F59C154416F8015964D6251415B47629F55C15441C7F9505A4D6251410CF5508C54C15441582ED94A4C62514195C6F1AA4FC15441996164D24B625141BA2792804DC15441DC04A14D4B625141B5C28E1D4BC15441B51D130F4B6251412747AAFD49C1544131B87B1342625141769562A84BC15441F3D6CDC23A625141973E696C4DC15441FD15575D38625141E3CFFF8E4EC15441890D90133462514190E6748350C15441232BE7152E6251412FD7CB2B54C15441A1FC01802B62514121B1ADDF55C154415B4D2ACC22625141CC56C39C5BC15441122DF3E01D625141239D18D45EC15441ACC07F5D1C6251416F2EAFF65FC15441D045953120625141A21597D05FC15441C98A76362462514143AB286D60C15441DC5ACDF5256251414C13D44C61C1544127EE9B0E28625141888A211662C15441B5D3B5152A625141162E73A563C154415733351C2C625141DD3D4FE264C15441CA42F4252F6251417ACD9C0567C154417C1209D6306251410CBD866269C154414DC248D931625141E80C2A2C6AC154412F870ED34F625141AF975DEC5FC15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>429418 - 3302365
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+010600000001000000010300000001000000800000001F85EBB12762514148E17A7436C154415C8FC2A5256251410AD7A3D039C154410AD7A32026625141E17A149E3EC154417B14AE07256251415C8FC2D53FC154411F85EBE122625141AE47E13A40C154418FC2F5D8216251410AD7A33043C1544148E17A54196251410AD7A3C04AC1544152B81E05176251410AD7A3F04BC15441E17A14CE16625141EC51B80E4DC15441AE47E16A15625141D7A3709D4EC15441B81E85AB126251417B14AE674EC15441A4703DCA0C625141295C8F1250C15441295C8F420C6251417B14AE2751C15441EC51B81E0A62514152B81EA552C15441F6285C5F09625141D7A370DD5EC154416666663604625141AE47E1BA64C15441F6285CDF00625141295C8FF269C15441B81E85BBFF6151419A9999B96BC154413D0AD783FE6151410AD7A3C06CC1544152B81E75FD615141713D0A076FC15441295C8FA2FD61514152B81EF570C1544152B81E95FC6151417B14AED772C15441EC51B8FEF9615141AE47E1AA77C15441F6285CCFF86151411F85EB717CC154413D0AD7E3F7615141713D0AC77FC154411F85EBC1F76151413D0AD7E382C154418FC2F548F8615141B81E85AB87C154413D0AD753F8615141EC51B8DE8AC15441F6285C5FF86151411F85EBA18DC15441713D0A27F8615141AE47E12A94C154410AD7A320F9615141295C8F5298C1544148E17A44F8615141EC51B87E9CC1544148E17A24F861514166666666A2C15441F6285CDFF86151418FC2F5A8A7C1544152B81ED5FA61514166666676ACC15441333333F3FC615141F6285C3FAFC15441F6285C4FFE61514114AE4701B2C15441CDCCCC6C00625141C3F5286CB9C154419A99999904625141AE47E19AC1C1544148E17A24086251410AD7A3E0C7C154411F85EBB109625141C3F528BCC9C15441295C8F1210625141666666A6CEC1544185EB513813625141C3F528CCCCC15441A4703D3A166251410AD7A3C0CBC15441E17A146E136251417B14AE97C6C15441295C8F320F625141CDCCCCECBCC15441713D0A470A625141713D0AA7B1C1544152B81E650862514148E17A34AAC15441E17A147E06625141CDCCCCECA1C15441295C8F2205625141713D0A479AC15441C3F528DC0A625141F6285C8F99C15441C3F5288C09625141E17A144E92C154418FC2F51809625141000000508DC1544152B81E1509625141D7A3703D83C154417B14AE770962514148E17A347FC1544148E17A940A625141E17A148E78C15441713D0AF70B625141F6285C8F71C154410AD7A36012625141713D0A3773C15441F6285CCF1662514185EB516874C15441AE47E1BA1F62514114AE47216FC154411F85EBF11F6251410AD7A3006FC15441D7A3707D20625141333333B372C15441CDCCCC7C206251411F85EB0175C15441A4703D3A20625141E17A145E77C1544148E17A64236251410AD7A3B075C154415C8FC23527625141A4703DEA73C15441B81E855B2D625141295C8F6271C15441713D0AB733625141713D0AB76EC154411F85EBC13362514114AE47C16AC154411F85EB6138625141295C8F526AC15441C3F528CC386251410AD7A3A06EC15441C3F5289C3962514148E17A2475C15441000000B03A6251411F85EB217BC15441AE47E19A42625141C3F528BC79C15441C3F5280C4162514152B81E3570C154419A99999941625141295C8F0270C15441C3F528BC51625141E17A147E6BC154418FC2F51850625141E17A142E61C15441D7A3704D4962514185EB51E841C1544133333323526251411F85EBD141C15441333333E352625141000000D041C154418FC2F568556251415C8FC2F540C154413D0AD7F355625141666666C640C1544133333323576251410000006040C15441B81E858B5862514114AE47313FC15441EC51B88E5B625141000000203DC15441E17A14CE5A62514114AE47D136C15441CDCCCCBC5A6251419A99995936C15441F6285C2F596251415C8FC27536C15441EC51B84E58625141C3F5280C37C1544148E17A84576251415C8FC24537C1544114AE4781566251417B14AE3737C1544148E17AD455625141E17A14FE36C15441B81E856B54625141295C8FD236C15441713D0A7753625141E17A14FE36C1544152B81E655262514114AE47E136C15441C3F528FC506251417B14AE3737C15441F6285C4F50625141C3F5289C37C154410AD7A3B04F625141AE47E13A38C15441F6285C2F4F6251413333338338C154411F85EBF14D6251413333338338C15441A4703DAA4D625141E17A14AE38C15441666666A64C6251411F85EB2139C1544114AE47B14B6251413333331339C15441295C8F824A625141333333A339C15441C3F5289C49625141333333A339C154410AD7A350486251416666668639C1544100000030476251410000003039C15441AE47E1AA4562514114AE479138C15441F6285CEF4462514148E17AE437C154415C8FC225446251415C8FC2D537C154415C8FC20543625141E17A148E37C154410AD7A310426251418FC2F5B837C154411F85EBE1406251416666666638C15441000000D03F625141295C8FF237C15441F6285C3F3F625141AE47E13A38C154418FC2F5583E6251417B14AEE738C154413D0AD7F33D625141E17A14AE38C154418FC2F5383D625141AE47E13A38C15441EC51B86E3C625141000000A038C154419A9999793B6251410000003039C15441CDCCCCCC3A625141CDCCCCBC38C154417B14AEE739625141333333D338C154411F85EBA137625141C3F5288C39C15441A4703DEA346251413D0AD7433CC15441EC51B88E2A6251416666662639C154417B14AE6729625141EC51B86E36C154411F85EBB12762514148E17A7436C15441
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000002F870ED34F625141AF975DEC5FC154419D9F39394F625141A09963285DC15441BCD3BA5F4E625141DC206A3F59C154416F8015964D6251415B47629F55C15441C7F9505A4D6251410CF5508C54C15441582ED94A4C62514195C6F1AA4FC15441996164D24B625141BA2792804DC15441DC04A14D4B625141B5C28E1D4BC15441B51D130F4B6251412747AAFD49C1544131B87B1342625141769562A84BC15441F3D6CDC23A625141973E696C4DC15441FD15575D38625141E3CFFF8E4EC15441890D90133462514190E6748350C15441232BE7152E6251412FD7CB2B54C15441A1FC01802B62514121B1ADDF55C154415B4D2ACC22625141CC56C39C5BC15441122DF3E01D625141239D18D45EC15441ACC07F5D1C6251416F2EAFF65FC15441D045953120625141A21597D05FC15441C98A76362462514143AB286D60C15441DC5ACDF5256251414C13D44C61C1544127EE9B0E28625141888A211662C15441B5D3B5152A625141162E73A563C154415733351C2C625141DD3D4FE264C15441CA42F4252F6251417ACD9C0567C154417C1209D6306251410CBD866269C154414DC248D931625141E80C2A2C6AC154412F870ED34F625141AF975DEC5FC15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>431999 - 208318
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000100000024000000C3F5281CD8285141E17A14BEAB855441B81E854BDB2851417B14AE37A98554419A999989DD285141D7A370BDA6855441D7A3706DDF285141000000E0A4855441C3F528FCE0285141B81E85ABA3855441000000A0E228514148E17AC4A1855441E17A14AEE428514185EB51089D8554419A999909E52851411F85EB3198855441C3F5285CE22851419A999979948554410AD7A380DE285141D7A370DD8F85544133333303DE28514148E17A748E855441CDCCCCCCDC2851411F85EBD188855441B81E85FBD7285141EC51B82E87855441F6285CAFD7285141AE47E14A8D8554410AD7A360D72851410AD7A38090855441B81E85DBD6285141B81E853B94855441EC51B83ED6285141EC51B81E998554415C8FC2D5D6285141F6285CCF9B855441B81E85EBD728514152B81E65A2855441333333A3D7285141F6285C7FA48554418FC2F508D5285141C3F5286CA7855441F6285C2FD12851410AD7A300AB855441EC51B89ECE28514114AE4781AE855441B81E85CBCA2851410AD7A3B0B485544185EB51E8C828514114AE4731B785544185EB51A8C72851411F85EBF1BA8554419A999959C7285141A4703D9ABE855441AE47E1EACA2851417B14AE67C2855441EC51B84ECC2851418FC2F568C48554411F85EB81D02851411F85EBE1B9855441EC51B8FED128514185EB51E8B6855441D7A3702DD22851417B14AEF7B48554415C8FC2E5D228514166666666B285544100000030D5285141AE47E1EAAE855441713D0A17D6285141CDCCCCFCAD855441C3F5281CD8285141E17A14BEAB855441
+</a>
+
+<b>
+010600000001000000010300000001000000270000009A999909E52851411F85EB319885544107075C8DE22851411CA1F4BD94855441A5E5195CE228514104924D7A9485544173FFF6E1DE2851414B1CC05190855441949C57D9DE285141961E7247908554413DDF0793DD2851410C9D2E6B8C85544151E5288ADC28514102BF44BB888554410F6863F9D72851411915805A878554417BD164B4D72851415461E4CC8B855441818F097ED7285141A7A8C24D8F855441D8F82732D72851413EFEB9A2918554412391CD4BD6285141066FDF0199855441132F89D9D7285141D4DBF8F7A18554412854C5CDD728514111148742A3855441333333A3D7285141F6285C7FA48554413410EE0DD52851416AFE9266A7855441F9A3249FD1285141C53AB298AA8554410DEF87B7CE285141E591665FAE85544137B7556CCA2851418AD2D62EB5855441378DCEC8C828514178EBE18FB78554413A329EE1C7285141D85AE945BA855441CEA64499C7285141397CF3A4BB85544125DA828CC7285141713981D0BE855441351ACC8ACA28514138A04401C2855441D7947DE3CA2851416469C773C2855441CDCCCCBCCF2851418FC2F528B885544119BD8716D228514138DAB415B58554415BE507B2D22851417D0F6B4FB48554417EA15169D3285141F4EE5BDCB28554410EF2BE6ED5285141BE179F7BB0855441D8A0EBEDD72851411B334364AD85544169F158F3D9285141020B6640AB85544129B3FD9CDC285141E618D8C2A78554410C22D2C9DE285141E5737481A58554416747C7E0E02851412057B4C0A385544105C4A2E0E2285141A4E08C2FA1855441F877112DE428514177A794319E8554415CF84BC9E42851418F8B09989B8554419A999909E52851411F85EB3198855441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>432389 - 93370
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -36 </desc>
+<a>
+01060000000100000001030000000200000056000000333333A3A14C51411F85EBD185435441D7A3709DA24C51419A9999A9864354413D0AD723A24C51419A9999F987435441666666F6A04C5141C3F528CC8C4354419A999919A04C5141A4703D3A934354413D0AD7439F4C514185EB516899435441C3F5288C9D4C5141333333B3A243544152B81ED5AE4C514166666606A84354415C8FC275B04C5141EC51B81E9B4354413D0AD733B24C5141B81E854B8D4354413D0AD7D3B94C514152B81EC58E4354417B14AE57C04C514152B81EA58F43544114AE47F1C34C5141C3F5286C9043544185EB5158C74C5141000000B091435441C3F5287CC94C51410000009092435441A4703DEACB4C51410000007093435441A4703D8AC74C514148E17A24C14354418FC2F5A8CE4C51411F85EB21C2435441B81E850BD24C514114AE47B1B0435441EC51B86ED54C51413D0AD7939E43544166666606D34C51411F85EB619A435441CDCCCCBCD04C5141E17A141E954354419A999949D04C514148E17A1494435441CDCCCC3CD34C5141E17A140E954354418FC2F568D44C5141F6285CFF95435441EC51B83ED64C5141EC51B82E97435441E17A146ED74C5141E17A14BE974354419A9999A9D84C5141E17A141E9843544185EB5148DB4C51417B14AE879943544148E17A04E24C514148E17AD481435441333333F3DE4C5141E17A144E8043544148E17A34DC4C5141D7A3702D7F435441295C8FE2D94C514152B81E057E435441B81E854BD54C5141A4703DFA7B4354413D0AD7A3D14C51410AD7A3A07A43544152B81E25CE4C5141B81E852B7943544166666636C64C51416666661676435441E17A14BEC44C5141295C8F22764354419A9999E9C34C5141F6285CDF75435441E17A144EC24C5141AE47E1BA7543544114AE4751BF4C51418FC2F55876435441F6285CEFBB4C51417B14AE0776435441295C8FB2B54C514148E17AD474435441295C8F02B54C5141F6285CEF764354419A999999AE4C51419A999969884354415C8FC2E5A84C51415C8FC23586435441EC51B89E9D4C51419A999969814354419A9999C9974C5141A4703DBA7F435441F6285C6F834C5141713D0A5778435441295C8F82854C5141F6285CBF6E43544148E17AF4834C5141CDCCCC7C6E4354413D0AD7D3604C5141B81E850B69435441C3F5283C504C5141AE47E13A6743544185EB51884A4C51418FC2F548654354415C8FC245484C5141F6285C1F654354419A9999794B4C51411F85EB216C435441B81E85AB4C4C5141666666C66D435441AE47E16A4D4C5141EC51B83E6E435441A4703D6A4E4C51411F85EB616E435441E17A146E4F4C5141666666266E43544152B81EE5544C514148E17A146E4354418FC2F558594C5141EC51B83E6E435441666666065B4C51410AD7A3506E435441EC51B89E5C4C514152B81EB56E4354413D0AD7335E4C514152B81E456F435441000000C05F4C51415C8FC2E56E4354410AD7A3E0604C5141713D0AF76E435441E17A143E624C514185EB51686F4354418FC2F528644C51411F85EB3170435441C3F5286C664C514114AE470171435441E17A146E674C5141295C8F4271435441295C8F72684C51418FC2F51871435441AE47E14A6A4C514114AE47717043544152B81E856D4C5141E17A144E7143544114AE4741704C514152B81EB5734354410AD7A340714C5141EC51B83E74435441AE47E1BA734C5141CDCCCC7C7443544148E17A44764C51410AD7A3A074435441B81E85BB774C51415C8FC2D5744354411F85EB71784C5141295C8F4275435441666666667B4C5141713D0A57784354417B14AE57844C5141000000107B435441295C8F02904C51415C8FC2357F435441F6285C6F984C51413333337382435441A4703DEA9E4C51416666668684435441333333A3A14C51411F85EBD18543544106000000CDCCCC7CB24C5141666666D6894354418FC2F548B04C514133333373894354413D0AD773B14C5141A4703DBA864354418FC2F5C8B34C5141B81E85DB864354418FC2F5C8B34C5141AE47E18A88435441CDCCCC7CB24C5141666666D689435441
+</a>
+
+<b>
+010600000001000000010300000001000000550000009A999949D04C514148E17A1494435441D7A3709DCE4C5141D7A3704D9343544114AE4771CB4C5141333333C391435441EC51B8FEC94C5141000000F090435441D7A3704DC74C514185EB517890435441AE47E1DAC54C5141CDCCCC5C8F435441E17A14AEC44C5141713D0AA78E435441713D0A47C24C51419A9999E98D43544114AE47A1BF4C51419A9999698D43544152B81E55B94C5141713D0AE78C4354413D0AD7E3B84C5141EC51B86E8C435441A4703D1AB84C514185EB51388C4354417B14AEB7B64C5141EC51B86E8C43544133333373B24C5141AE47E12A8C435441F5CC1CD8AF4C51411DAA2DD98B435441DAB895A1AC4C5141B913138A8A435441E177D9CCA64C514124CE2F84884354410E4BA42EA44C51417750C39C86435441843B44299D4C51410855EACD82435441B8321136974C5141399FF40481435441BD5B5581824C5141AB18552A794354416AF33F70834C51410E30ED527843544170FDC313814C5141F49AE84277435441E7042704674C51412FB6B7FA6D4354414F875122694C514128B9FC546A435441883716F3674C5141647D01266A435441751344BF674C5141A917FA1D6A435441C3F5283C504C5141AE47E13A6743544185EB51884A4C51418FC2F548654354415C8FC245484C5141F6285C1F654354419A9999794B4C51411F85EB216C435441B81E85AB4C4C5141666666C66D435441AE47E16A4D4C5141EC51B83E6E435441A4703D6A4E4C51411F85EB616E435441E17A146E4F4C5141666666266E43544152B81EE5544C514148E17A146E4354418FC2F558594C5141EC51B83E6E435441666666065B4C51410AD7A3506E435441EC51B89E5C4C514152B81EB56E4354413D0AD7335E4C514152B81E456F435441000000C05F4C51415C8FC2E56E4354410AD7A3E0604C5141713D0AF76E435441E17A143E624C514185EB51686F4354418FC2F528644C51411F85EB3170435441C3F5286C664C514114AE470171435441E17A146E674C5141295C8F4271435441295C8F72684C51418FC2F51871435441AE47E14A6A4C514114AE47717043544152B81E856D4C5141E17A144E7143544114AE4741704C514152B81EB5734354410AD7A340714C5141EC51B83E74435441AE47E1BA734C5141CDCCCC7C7443544148E17A44764C51410AD7A3A074435441B81E85BB774C51415C8FC2D5744354411F85EB71784C5141295C8F4275435441666666667B4C5141713D0A57784354417B14AE57844C5141000000107B435441295C8F02904C51415C8FC2357F435441F6285C6F984C51413333337382435441A4703DEA9E4C51416666668684435441333333A3A14C51411F85EBD185435441D7A3709DA24C51419A9999A9864354413D0AD723A24C51419A9999F987435441666666F6A04C5141C3F528CC8C4354419A999919A04C5141A4703D3A934354413D0AD7439F4C514185EB516899435441C3F5288C9D4C5141333333B3A243544152B81ED5AE4C514166666606A84354415C8FC275B04C5141EC51B81E9B4354413D0AD733B24C5141B81E854B8D4354413D0AD7D3B94C514152B81EC58E4354417B14AE57C04C514152B81EA58F43544114AE47F1C34C5141C3F5286C9043544185EB5158C74C5141000000B091435441C3F5287CC94C51410000009092435441A4703DEACB4C51410000007093435441DFD421E7CB4C5141AE9B77909343544151F2EE85CC4C51417DF843D293435441A40FC41EC84C51417B2F7C66BC435441B9FF48AACE4C5141A2DE441DBD435441707DB591D04C514172757ADBB043544165E27311D34C51412A402DB99A43544166666606D34C51411F85EB619A435441CDCCCCBCD04C5141E17A141E954354419A999949D04C514148E17A1494435441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>432389 - 342148
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -36 </desc>
+<a>
+01060000000100000001030000000200000056000000333333A3A14C51411F85EBD185435441D7A3709DA24C51419A9999A9864354413D0AD723A24C51419A9999F987435441666666F6A04C5141C3F528CC8C4354419A999919A04C5141A4703D3A934354413D0AD7439F4C514185EB516899435441C3F5288C9D4C5141333333B3A243544152B81ED5AE4C514166666606A84354415C8FC275B04C5141EC51B81E9B4354413D0AD733B24C5141B81E854B8D4354413D0AD7D3B94C514152B81EC58E4354417B14AE57C04C514152B81EA58F43544114AE47F1C34C5141C3F5286C9043544185EB5158C74C5141000000B091435441C3F5287CC94C51410000009092435441A4703DEACB4C51410000007093435441A4703D8AC74C514148E17A24C14354418FC2F5A8CE4C51411F85EB21C2435441B81E850BD24C514114AE47B1B0435441EC51B86ED54C51413D0AD7939E43544166666606D34C51411F85EB619A435441CDCCCCBCD04C5141E17A141E954354419A999949D04C514148E17A1494435441CDCCCC3CD34C5141E17A140E954354418FC2F568D44C5141F6285CFF95435441EC51B83ED64C5141EC51B82E97435441E17A146ED74C5141E17A14BE974354419A9999A9D84C5141E17A141E9843544185EB5148DB4C51417B14AE879943544148E17A04E24C514148E17AD481435441333333F3DE4C5141E17A144E8043544148E17A34DC4C5141D7A3702D7F435441295C8FE2D94C514152B81E057E435441B81E854BD54C5141A4703DFA7B4354413D0AD7A3D14C51410AD7A3A07A43544152B81E25CE4C5141B81E852B7943544166666636C64C51416666661676435441E17A14BEC44C5141295C8F22764354419A9999E9C34C5141F6285CDF75435441E17A144EC24C5141AE47E1BA7543544114AE4751BF4C51418FC2F55876435441F6285CEFBB4C51417B14AE0776435441295C8FB2B54C514148E17AD474435441295C8F02B54C5141F6285CEF764354419A999999AE4C51419A999969884354415C8FC2E5A84C51415C8FC23586435441EC51B89E9D4C51419A999969814354419A9999C9974C5141A4703DBA7F435441F6285C6F834C5141713D0A5778435441295C8F82854C5141F6285CBF6E43544148E17AF4834C5141CDCCCC7C6E4354413D0AD7D3604C5141B81E850B69435441C3F5283C504C5141AE47E13A6743544185EB51884A4C51418FC2F548654354415C8FC245484C5141F6285C1F654354419A9999794B4C51411F85EB216C435441B81E85AB4C4C5141666666C66D435441AE47E16A4D4C5141EC51B83E6E435441A4703D6A4E4C51411F85EB616E435441E17A146E4F4C5141666666266E43544152B81EE5544C514148E17A146E4354418FC2F558594C5141EC51B83E6E435441666666065B4C51410AD7A3506E435441EC51B89E5C4C514152B81EB56E4354413D0AD7335E4C514152B81E456F435441000000C05F4C51415C8FC2E56E4354410AD7A3E0604C5141713D0AF76E435441E17A143E624C514185EB51686F4354418FC2F528644C51411F85EB3170435441C3F5286C664C514114AE470171435441E17A146E674C5141295C8F4271435441295C8F72684C51418FC2F51871435441AE47E14A6A4C514114AE47717043544152B81E856D4C5141E17A144E7143544114AE4741704C514152B81EB5734354410AD7A340714C5141EC51B83E74435441AE47E1BA734C5141CDCCCC7C7443544148E17A44764C51410AD7A3A074435441B81E85BB774C51415C8FC2D5744354411F85EB71784C5141295C8F4275435441666666667B4C5141713D0A57784354417B14AE57844C5141000000107B435441295C8F02904C51415C8FC2357F435441F6285C6F984C51413333337382435441A4703DEA9E4C51416666668684435441333333A3A14C51411F85EBD18543544106000000CDCCCC7CB24C5141666666D6894354418FC2F548B04C514133333373894354413D0AD773B14C5141A4703DBA864354418FC2F5C8B34C5141B81E85DB864354418FC2F5C8B34C5141AE47E18A88435441CDCCCC7CB24C5141666666D689435441
+</a>
+
+<b>
+010600000001000000010300000001000000550000009A999949D04C514148E17A1494435441D7A3709DCE4C5141D7A3704D9343544114AE4771CB4C5141333333C391435441EC51B8FEC94C5141000000F090435441D7A3704DC74C514185EB517890435441AE47E1DAC54C5141CDCCCC5C8F435441E17A14AEC44C5141713D0AA78E435441713D0A47C24C51419A9999E98D43544114AE47A1BF4C51419A9999698D43544152B81E55B94C5141713D0AE78C4354413D0AD7E3B84C5141EC51B86E8C435441A4703D1AB84C514185EB51388C4354417B14AEB7B64C5141EC51B86E8C43544133333373B24C5141AE47E12A8C435441F5CC1CD8AF4C51411DAA2DD98B435441DAB895A1AC4C5141B913138A8A435441E177D9CCA64C514124CE2F84884354410E4BA42EA44C51417750C39C86435441843B44299D4C51410855EACD82435441B8321136974C5141399FF40481435441BD5B5581824C5141AB18552A794354416AF33F70834C51410E30ED527843544170FDC313814C5141F49AE84277435441E7042704674C51412FB6B7FA6D4354414F875122694C514128B9FC546A435441883716F3674C5141647D01266A435441751344BF674C5141A917FA1D6A435441C3F5283C504C5141AE47E13A6743544185EB51884A4C51418FC2F548654354415C8FC245484C5141F6285C1F654354419A9999794B4C51411F85EB216C435441B81E85AB4C4C5141666666C66D435441AE47E16A4D4C5141EC51B83E6E435441A4703D6A4E4C51411F85EB616E435441E17A146E4F4C5141666666266E43544152B81EE5544C514148E17A146E4354418FC2F558594C5141EC51B83E6E435441666666065B4C51410AD7A3506E435441EC51B89E5C4C514152B81EB56E4354413D0AD7335E4C514152B81E456F435441000000C05F4C51415C8FC2E56E4354410AD7A3E0604C5141713D0AF76E435441E17A143E624C514185EB51686F4354418FC2F528644C51411F85EB3170435441C3F5286C664C514114AE470171435441E17A146E674C5141295C8F4271435441295C8F72684C51418FC2F51871435441AE47E14A6A4C514114AE47717043544152B81E856D4C5141E17A144E7143544114AE4741704C514152B81EB5734354410AD7A340714C5141EC51B83E74435441AE47E1BA734C5141CDCCCC7C7443544148E17A44764C51410AD7A3A074435441B81E85BB774C51415C8FC2D5744354411F85EB71784C5141295C8F4275435441666666667B4C5141713D0A57784354417B14AE57844C5141000000107B435441295C8F02904C51415C8FC2357F435441F6285C6F984C51413333337382435441A4703DEA9E4C51416666668684435441333333A3A14C51411F85EBD185435441D7A3709DA24C51419A9999A9864354413D0AD723A24C51419A9999F987435441666666F6A04C5141C3F528CC8C4354419A999919A04C5141A4703D3A934354413D0AD7439F4C514185EB516899435441C3F5288C9D4C5141333333B3A243544152B81ED5AE4C514166666606A84354415C8FC275B04C5141EC51B81E9B4354413D0AD733B24C5141B81E854B8D4354413D0AD7D3B94C514152B81EC58E4354417B14AE57C04C514152B81EA58F43544114AE47F1C34C5141C3F5286C9043544185EB5158C74C5141000000B091435441C3F5287CC94C51410000009092435441A4703DEACB4C51410000007093435441DFD421E7CB4C5141AE9B77909343544151F2EE85CC4C51417DF843D293435441A40FC41EC84C51417B2F7C66BC435441B9FF48AACE4C5141A2DE441DBD435441707DB591D04C514172757ADBB043544165E27311D34C51412A402DB99A43544166666606D34C51411F85EB619A435441CDCCCCBCD04C5141E17A141E954354419A999949D04C514148E17A1494435441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>944505 - 400476
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000B00000001030000000100000015000000295C8F12E07951410AD7A3C0A392544100000080D87951418FC2F588A6925441AE47E1CACC7951410AD7A340A892544114AE4731C579514185EB5108A9925441E17A14AEBF795141EC51B8EEA7925441295C8FE2C37951419A999919AC925441C3F528ACCB795141713D0AC7AA9254413D0AD783D6795141B81E850BAA925441D7A3700DE0795141666666C6A89254410AD7A3E0EB79514114AE4711A4925441000000B0F3795141000000F09F92544166666686FB795141F6285CCF9A925441B81E85DB737A5141A4703DFA42925441CDCCCC9C757A51410AD7A3B04192544185EB51D8747A5141F6285C8F3F9254418FC2F548757A5141713D0A473F925441D7A370FD737A51418FC2F5383D92544133333303FB7951410AD7A3A095925441666666B6F5795141F6285C1F99925441CDCCCC6CE879514100000030A0925441295C8F12E07951410AD7A3C0A39254410103000000010000000F000000AE47E1BA6C7A514114AE47615C93544114AE47716C7A5141A4703DBA5C93544148E17A246C7A5141E17A14BE609354413D0AD7236C7A51413D0AD77363935441F6285C3F6C7A5141713D0AC76693544114AE47216C7A51410AD7A3606993544185EB5168687A5141000000B08C93544152B81E45647A5141CDCCCC5CB89354413D0AD753617A51413D0AD743D393544152B81EB5647A51415C8FC295D39354413D0AD7936E7A514114AE47D16D9354410AD7A3906E7A5141CDCCCCAC6993544185EB51686E7A51419A9999796693544148E17A446D7A5141CDCCCC0C62935441AE47E1BA6C7A514114AE47615C9354410103000000010000001A000000F6285CEF727A5141AE47E18A27935441CDCCCC7C6F7A514148E17A2449935441D7A3702D6E7A5141EC51B8AE4D935441295C8FB26D7A5141B81E852B50935441F6285C5F6D7A5141295C8F82539354419A9999996D7A5141AE47E1FA53935441F6285C9F6E7A51418FC2F5B84F935441EC51B85E6F7A514114AE47B14D93544114AE47F1707A5141713D0AA74A9354415C8FC295717A514152B81EF548935441CDCCCC3C737A514185EB51C8419354417B14AE97737A514185EB51283D9354410AD7A3C0777A514114AE478114935441A4703D5A787A5141AE47E1BA0A93544100000060787A514152B81E5505935441C3F5283C787A5141F6285C2F02935441295C8FE2777A51417B14AE7701935441713D0A57777A5141EC51B81E02935441295C8F92767A5141F6285C5F05935441295C8F22767A51419A99995908935441F6285C1F757A51410AD7A3D0129354417B14AE67747A5141713D0A271893544185EB51E8737A5141000000301A93544185EB51D8727A5141C3F528CC239354410AD7A300737A51413D0AD71326935441F6285CEF727A5141AE47E18A279354410103000000010000000F000000C3F5281C8E7A514152B81EB587925441EC51B8AE8F7A51418FC2F5F88792544185EB51D8917A51418FC2F5A87B925441000000F0937A51415C8FC2556F925441EC51B8EE957A5141EC51B8FE62925441C3F5283C977A5141666666165A9254415C8FC255977A5141D7A3708D56925441B81E85EB967A51411F85EBF15392544166666606967A5141AE47E11A51925441B81E85DB957A51419A999929519254415C8FC275947A51411F85EBA151925441D7A3709D957A5141CDCCCCEC54925441295C8FC2957A51419A9999B9589254419A9999B9927A514185EB51786D925441C3F5281C8E7A514152B81EB5879254410103000000010000000F000000666666E6717A51415C8FC2A5109354411F85EB41737A51419A99991918935441D7A3708D737A5141F6285CEF17935441295C8F42747A51417B14AEB7129354417B14AE47757A5141B81E85FB07935441D7A370AD757A51417B14AEF7049354410AD7A360767A5141AE47E17A0193544100000000767A5141E17A144E00935441713D0A47757A51418FC2F53800935441CDCCCC5C737A51411F85EB6100935441F6285CCF727A51410AD7A3A000935441D7A3708D737A5141333333A3009354418FC2F558727A51413D0AD75306935441295C8FD2717A51413D0AD7430B935441666666E6717A51415C8FC2A51093544101030000000100000019000000333333E3987A514148E17A245092544166666616977A5141F6285CBF50925441AE47E1FA977A514100000020549254411F85EB51987A51418FC2F5B85692544185EB5138987A514114AE47415A925441AE47E1EA967A5141A4703D2A639254418FC2F5F8947A51413D0AD7836F92544114AE47E1927A5141666666D67B925441333333B3907A514152B81E258892544114AE4761947A514148E17AC48892544133333343957A5141295C8FF2889254418FC2F5F8967A51418FC2F5287F92544185EB51589A7A5141B81E856B70925441A4703D6A9C7A5141B81E856B6A925441713D0AD79C7A5141D7A3701D69925441B81E859B9F7A5141AE47E1EA55925441D7A370DD9C7A514152B81E355592544185EB51589D7A5141B81E859B51925441E17A146E9D7A5141666666965192544114AE4761A07A5141C3F5288C3C925441E17A14FE9F7A51410AD7A3403D925441713D0AE79C7A5141D7A3705D4392544152B81EA59B7A514148E17AD444925441666666469A7A51413D0AD73346925441333333E3987A514148E17A245092544101030000000100000009000000000000207B7A5141AE47E1BAFB925441000000F07B7A5141EC51B88EF6925441A4703DAA797A514133333323FE925441C3F5281C797A5141EC51B82E02935441CDCCCC0C797A514148E17A5405935441A4703D1A797A51419A9999B90A935441AE47E10A797A5141F6285C2F0D935441C3F5285C7A7A5141713D0A5701935441000000207B7A5141AE47E1BAFB9254410103000000010000000E0000003D0AD7037A7A5141B81E85FBEA92544185EB51B87A7A51415C8FC245E892544114AE47517B7A5141713D0A97E5925441CDCCCCAC7C7A5141B81E851BDF9254417B14AEC77E7A5141D7A3707DD6925441295C8FC2807A5141E17A144ECE925441666666367F7A5141CDCCCCECCD92544185EB51B8777A5141295C8F12EB92544100000080757A5141AE47E1EAF0925441713D0AE7727A51415C8FC295F5925441333333B3757A51411F85EB01F792544114AE47E1757A51417B14AE17F79254410AD7A330787A5141C3F5285CF19254413D0AD7037A7A5141B81E85FBEA925441010300000001000000150000007B14AEC7767A51415C8FC285F7925441B81E853B747A5141AE47E1DAFC9254411F85EBA1747A5141CDCCCCBCFD9254413D0AD723757A514185EB5178FE9254415C8FC2E5757A5141F6285C0FFF92544185EB51C8767A514133333373FF925441713D0A97777A5141295C8F92FF92544185EB5128787A514166666666FF925441295C8FA2787A5141E17A14DEFE9254418FC2F5F8787A5141D7A370EDFD925441EC51B83E7B7A514185EB5158F692544148E17AF47C7A514114AE4721F2925441EC51B84E857A5141AE47E16ACF925441295C8FC2817A5141CDCCCC8CCE9254419A9999B97F7A514185EB51B8D69254415C8FC2A57D7A51417B14AE57DF925441666666467C7A5141295C8FD2E5925441EC51B89E7B7A5141D7A3707DE8925441CDCCCCFC7A7A5141713D0A37EB925441A4703D3A797A51417B14AE87F19254417B14AEC7767A51415C8FC285F792544101030000000100000014000000295C8F22707A51417B14AE877093544114AE4711717A5141D7A370FD6B935441AE47E16A717A514185EB51886593544100000000717A514114AE47B1609354411F85EB81727A5141295C8F92519354415C8FC215747A51411F85EBC14B93544114AE4771757A51418FC2F5984193544148E17A74747A51410AD7A3C041935441295C8F82727A5141CDCCCC3C49935441333333C3717A5141F6285C2F4B9354411F85EBD16F7A5141D7A3707D4E935441295C8F126F7A5141EC51B89E5093544148E17A446E7A5141A4703D0A54935441F6285C8F6D7A514152B81E555C93544114AE47116E7A514185EB51D861935441B81E850B6F7A5141CDCCCCDC649354417B14AE776F7A5141E17A140E679354415C8FC2956F7A5141295C8FF26D935441666666566F7A51410AD7A38071935441295C8F22707A51417B14AE877093544101030000000100000014000000EC51B83E797A514148E17A143F925441B81E855B7B7A51417B14AEF73B925441713D0A679F7A51413D0AD7B321925441EC51B8AE9A7A5141713D0A4743925441713D0A779A7A514152B81ED544925441EC51B83E9B7A514114AE47F1439254410AD7A3509C7A5141E17A148E4292544152B81E159E7A5141F6285CEF3E925441CDCCCCFC9F7A5141CDCCCC4C3B92544152B81E95A17A5141D7A3702D37925441B81E859BA37A5141713D0A172E925441000000E0A67A514148E17A741F925441000000C0A67A5141666666E6189254419A999929A47A514152B81E551A925441CDCCCC6CA17A5141D7A3704D1C925441F6285C4F777A5141B81E85CB3A9254413D0AD7B3767A5141D7A3703D3B925441EC51B80E787A5141333333233D925441295C8FD2777A5141F6285C4F3D925441EC51B83E797A514148E17A143F925441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000C6A012B97C7A5141B87627B5E3925441666666467C7A5141295C8FD2E5925441EC51B89E7B7A5141D7A3707DE8925441CDCCCCFC7A7A5141713D0A37EB925441A4703D3A797A51417B14AE87F19254417B14AEC7767A51415C8FC285F7925441B81E853B747A5141AE47E1DAFC9254411F85EBA1747A5141CDCCCCBCFD9254413D0AD723757A514185EB5178FE9254415C8FC2E5757A5141F6285C0FFF92544185EB51C8767A514133333373FF925441713D0A97777A5141295C8F92FF92544185EB5128787A514166666666FF925441295C8FA2787A5141E17A14DEFE9254418FC2F5F8787A5141D7A370EDFD925441EC51B83E7B7A514185EB5158F692544148E17AF47C7A514114AE4721F2925441EC51B84E857A5141AE47E16ACF925441295C8FC2817A5141CDCCCC8CCE9254413B05A9B2807A5141C54B68D0D2925441C6A012B97C7A5141B87627B5E3925441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>944505 - 400502
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000B00000001030000000100000015000000295C8F12E07951410AD7A3C0A392544100000080D87951418FC2F588A6925441AE47E1CACC7951410AD7A340A892544114AE4731C579514185EB5108A9925441E17A14AEBF795141EC51B8EEA7925441295C8FE2C37951419A999919AC925441C3F528ACCB795141713D0AC7AA9254413D0AD783D6795141B81E850BAA925441D7A3700DE0795141666666C6A89254410AD7A3E0EB79514114AE4711A4925441000000B0F3795141000000F09F92544166666686FB795141F6285CCF9A925441B81E85DB737A5141A4703DFA42925441CDCCCC9C757A51410AD7A3B04192544185EB51D8747A5141F6285C8F3F9254418FC2F548757A5141713D0A473F925441D7A370FD737A51418FC2F5383D92544133333303FB7951410AD7A3A095925441666666B6F5795141F6285C1F99925441CDCCCC6CE879514100000030A0925441295C8F12E07951410AD7A3C0A39254410103000000010000000F000000AE47E1BA6C7A514114AE47615C93544114AE47716C7A5141A4703DBA5C93544148E17A246C7A5141E17A14BE609354413D0AD7236C7A51413D0AD77363935441F6285C3F6C7A5141713D0AC76693544114AE47216C7A51410AD7A3606993544185EB5168687A5141000000B08C93544152B81E45647A5141CDCCCC5CB89354413D0AD753617A51413D0AD743D393544152B81EB5647A51415C8FC295D39354413D0AD7936E7A514114AE47D16D9354410AD7A3906E7A5141CDCCCCAC6993544185EB51686E7A51419A9999796693544148E17A446D7A5141CDCCCC0C62935441AE47E1BA6C7A514114AE47615C9354410103000000010000001A000000F6285CEF727A5141AE47E18A27935441CDCCCC7C6F7A514148E17A2449935441D7A3702D6E7A5141EC51B8AE4D935441295C8FB26D7A5141B81E852B50935441F6285C5F6D7A5141295C8F82539354419A9999996D7A5141AE47E1FA53935441F6285C9F6E7A51418FC2F5B84F935441EC51B85E6F7A514114AE47B14D93544114AE47F1707A5141713D0AA74A9354415C8FC295717A514152B81EF548935441CDCCCC3C737A514185EB51C8419354417B14AE97737A514185EB51283D9354410AD7A3C0777A514114AE478114935441A4703D5A787A5141AE47E1BA0A93544100000060787A514152B81E5505935441C3F5283C787A5141F6285C2F02935441295C8FE2777A51417B14AE7701935441713D0A57777A5141EC51B81E02935441295C8F92767A5141F6285C5F05935441295C8F22767A51419A99995908935441F6285C1F757A51410AD7A3D0129354417B14AE67747A5141713D0A271893544185EB51E8737A5141000000301A93544185EB51D8727A5141C3F528CC239354410AD7A300737A51413D0AD71326935441F6285CEF727A5141AE47E18A279354410103000000010000000F000000C3F5281C8E7A514152B81EB587925441EC51B8AE8F7A51418FC2F5F88792544185EB51D8917A51418FC2F5A87B925441000000F0937A51415C8FC2556F925441EC51B8EE957A5141EC51B8FE62925441C3F5283C977A5141666666165A9254415C8FC255977A5141D7A3708D56925441B81E85EB967A51411F85EBF15392544166666606967A5141AE47E11A51925441B81E85DB957A51419A999929519254415C8FC275947A51411F85EBA151925441D7A3709D957A5141CDCCCCEC54925441295C8FC2957A51419A9999B9589254419A9999B9927A514185EB51786D925441C3F5281C8E7A514152B81EB5879254410103000000010000000F000000666666E6717A51415C8FC2A5109354411F85EB41737A51419A99991918935441D7A3708D737A5141F6285CEF17935441295C8F42747A51417B14AEB7129354417B14AE47757A5141B81E85FB07935441D7A370AD757A51417B14AEF7049354410AD7A360767A5141AE47E17A0193544100000000767A5141E17A144E00935441713D0A47757A51418FC2F53800935441CDCCCC5C737A51411F85EB6100935441F6285CCF727A51410AD7A3A000935441D7A3708D737A5141333333A3009354418FC2F558727A51413D0AD75306935441295C8FD2717A51413D0AD7430B935441666666E6717A51415C8FC2A51093544101030000000100000019000000333333E3987A514148E17A245092544166666616977A5141F6285CBF50925441AE47E1FA977A514100000020549254411F85EB51987A51418FC2F5B85692544185EB5138987A514114AE47415A925441AE47E1EA967A5141A4703D2A639254418FC2F5F8947A51413D0AD7836F92544114AE47E1927A5141666666D67B925441333333B3907A514152B81E258892544114AE4761947A514148E17AC48892544133333343957A5141295C8FF2889254418FC2F5F8967A51418FC2F5287F92544185EB51589A7A5141B81E856B70925441A4703D6A9C7A5141B81E856B6A925441713D0AD79C7A5141D7A3701D69925441B81E859B9F7A5141AE47E1EA55925441D7A370DD9C7A514152B81E355592544185EB51589D7A5141B81E859B51925441E17A146E9D7A5141666666965192544114AE4761A07A5141C3F5288C3C925441E17A14FE9F7A51410AD7A3403D925441713D0AE79C7A5141D7A3705D4392544152B81EA59B7A514148E17AD444925441666666469A7A51413D0AD73346925441333333E3987A514148E17A245092544101030000000100000009000000000000207B7A5141AE47E1BAFB925441000000F07B7A5141EC51B88EF6925441A4703DAA797A514133333323FE925441C3F5281C797A5141EC51B82E02935441CDCCCC0C797A514148E17A5405935441A4703D1A797A51419A9999B90A935441AE47E10A797A5141F6285C2F0D935441C3F5285C7A7A5141713D0A5701935441000000207B7A5141AE47E1BAFB9254410103000000010000000E0000003D0AD7037A7A5141B81E85FBEA92544185EB51B87A7A51415C8FC245E892544114AE47517B7A5141713D0A97E5925441CDCCCCAC7C7A5141B81E851BDF9254417B14AEC77E7A5141D7A3707DD6925441295C8FC2807A5141E17A144ECE925441666666367F7A5141CDCCCCECCD92544185EB51B8777A5141295C8F12EB92544100000080757A5141AE47E1EAF0925441713D0AE7727A51415C8FC295F5925441333333B3757A51411F85EB01F792544114AE47E1757A51417B14AE17F79254410AD7A330787A5141C3F5285CF19254413D0AD7037A7A5141B81E85FBEA925441010300000001000000150000007B14AEC7767A51415C8FC285F7925441B81E853B747A5141AE47E1DAFC9254411F85EBA1747A5141CDCCCCBCFD9254413D0AD723757A514185EB5178FE9254415C8FC2E5757A5141F6285C0FFF92544185EB51C8767A514133333373FF925441713D0A97777A5141295C8F92FF92544185EB5128787A514166666666FF925441295C8FA2787A5141E17A14DEFE9254418FC2F5F8787A5141D7A370EDFD925441EC51B83E7B7A514185EB5158F692544148E17AF47C7A514114AE4721F2925441EC51B84E857A5141AE47E16ACF925441295C8FC2817A5141CDCCCC8CCE9254419A9999B97F7A514185EB51B8D69254415C8FC2A57D7A51417B14AE57DF925441666666467C7A5141295C8FD2E5925441EC51B89E7B7A5141D7A3707DE8925441CDCCCCFC7A7A5141713D0A37EB925441A4703D3A797A51417B14AE87F19254417B14AEC7767A51415C8FC285F792544101030000000100000014000000295C8F22707A51417B14AE877093544114AE4711717A5141D7A370FD6B935441AE47E16A717A514185EB51886593544100000000717A514114AE47B1609354411F85EB81727A5141295C8F92519354415C8FC215747A51411F85EBC14B93544114AE4771757A51418FC2F5984193544148E17A74747A51410AD7A3C041935441295C8F82727A5141CDCCCC3C49935441333333C3717A5141F6285C2F4B9354411F85EBD16F7A5141D7A3707D4E935441295C8F126F7A5141EC51B89E5093544148E17A446E7A5141A4703D0A54935441F6285C8F6D7A514152B81E555C93544114AE47116E7A514185EB51D861935441B81E850B6F7A5141CDCCCCDC649354417B14AE776F7A5141E17A140E679354415C8FC2956F7A5141295C8FF26D935441666666566F7A51410AD7A38071935441295C8F22707A51417B14AE877093544101030000000100000014000000EC51B83E797A514148E17A143F925441B81E855B7B7A51417B14AEF73B925441713D0A679F7A51413D0AD7B321925441EC51B8AE9A7A5141713D0A4743925441713D0A779A7A514152B81ED544925441EC51B83E9B7A514114AE47F1439254410AD7A3509C7A5141E17A148E4292544152B81E159E7A5141F6285CEF3E925441CDCCCCFC9F7A5141CDCCCC4C3B92544152B81E95A17A5141D7A3702D37925441B81E859BA37A5141713D0A172E925441000000E0A67A514148E17A741F925441000000C0A67A5141666666E6189254419A999929A47A514152B81E551A925441CDCCCC6CA17A5141D7A3704D1C925441F6285C4F777A5141B81E85CB3A9254413D0AD7B3767A5141D7A3703D3B925441EC51B80E787A5141333333233D925441295C8FD2777A5141F6285C4F3D925441EC51B83E797A514148E17A143F925441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000BC3C683E977A51418459F6C6599254415C8FC255977A5141D7A3708D56925441B81E85EB967A51411F85EBF15392544166666606967A5141AE47E11A51925441B81E85DB957A51419A999929519254415C8FC275947A51411F85EBA151925441D7A3709D957A5141CDCCCCEC54925441295C8FC2957A51419A9999B9589254419A9999B9927A514185EB51786D925441C3F5281C8E7A514152B81EB587925441EC51B8AE8F7A51418FC2F5F88792544185EB51D8917A51418FC2F5A87B925441000000F0937A51415C8FC2556F925441EC51B8EE957A5141EC51B8FE62925441E6777FDC967A51419A709CA45C925441BC3C683E977A51418459F6C659925441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>194765 - 237297
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -14 </desc>
+<a>
+0106000000010000000103000000010000003300000081B19569EE1751414D5E4FFDADF85441E053F59DED17514154CF852EACF854410CF75A15ED17514133DE3730ABF854416E43C453EB17514171233FF7A6F8544141EED936E91751419022D9A2A1F85441B7BDB411E717514181759DC19BF85441F073E079E61751417A75ABFF99F85441452ECF6BE517514159BC81FC95F85441A53BEDCBE4175141174B47AA92F8544184110578E517514178DA248588F85441934298FAE51751410AFD2D0184F85441523E0C73E6175141F76A2B517DF85441299CB569E6175141C58EEFFF78F854416AFE2B87E91751411367EC337AF85441F6285C8FEA1751419A9999E97AF854416856CE92E917514183307C4979F854417444A3EEE71751417E53349576F854411CFA7119E7175141D6F24F1274F854415EA89A76E61751411B1BACD871F85441E3242F6BE6175141CAD8F14071F85441961736A0E2175141E24842E671F854413825B0E5E1175141E5F2F29B75F85441B352E15DE1175141CEC675807AF85441AF8D1E0CE217514142E8ECAC82F854410EFA3BC5E217514196CB24578AF85441941736A0E21751411B0C640A8FF854419F522A56E2175141860CFDCC92F85441D54833C3E11751412BDB198D94F854411847E159E0175141F7DAD0BD94F85441A813F81AE21751412A71D3A49AF85441F8CFB91CE6175141BA0E4D0CA8F854416D8939B6E7175141C39EC50BADF8544172ACE32EED17514191C00841ACF854410305D2BFEC1751418A4FD20FAEF854411F85EB21EB175141EC51B85EB1F854415C8FC295EF1751415C8FC2A5B3F854411D68BD88F217514149105EA4B4F854416E28B05AF5175141FCE3E6DBB4F854415C8FC275F8175141CDCCCCFCB4F85441C67C1E36FB175141F1A8F225B5F854414429E2DFFC17514139D569EEB4F85441AB5FBD1DFF175141135ACF47B4F854415BC20F24011851418A7217E8B2F8544189D125D4041851419D1E42CFB0F85441A7DB8949071851415C630138AFF85441573EDC4F09185141D27B49D8ADF85441BE74B78D0B18514117DE021CACF85441FF2FF8240D185141ED98AAF0A9F85441485C6FED0C18514132FB6334A8F85441CDCCCC5CEF175141CDCCCCACB0F8544181B19569EE1751414D5E4FFDADF85441
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000A4703D4A08185141D7A3703D96F85441713D0A7705185141CDCCCC5C92F85441666666C60318514114AE47D18FF8544152B81EF501185141000000B08CF8544133333373FF1751413D0AD7F387F85441666666F6F9175141713D0AE77CF85441B81E850BE7175141F6285C2F6DF8544100000060E61751419A99998971F85441713D0AB7E71751419A99993976F85441F6285C8FEA1751419A9999E97AF8544152B81E35E61751417B14AEE778F85441AE47E18AE61751413D0AD7037FF85441EC51B85EE517514152B81E6589F854418FC2F5C8E4175141A4703DDA92F85441F6285CDFE51751415C8FC23598F854411F85EB21E817514185EB51E89EF85441666666A6EB1751417B14AEC7A7F8544133333373ED175141F6285C0FACF85441CDCCCC5CEF175141CDCCCCACB0F85441713D0A070D185141713D0A47A8F854413D0AD7E30C18514166666666A7F854413D0AD7F30B1851419A9999B9A2F85441F6285CCF0A185141EC51B8FE9EF85441AE47E16A0A1851411F85EB419CF85441E17A149E09185141B81E859B99F85441A4703D4A08185141D7A3703D96F85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>910123 - 1273883
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000000C0000008FC2F5F8387151411F85EBF189645441CDCCCCEC23715141C3F528BCB06454417B14AE271771514114AE47D1C6645441B81E85DB15715141F6285C0FC96454418FC2F5D82171514185EB5178D0645441B81E85CB34715141C3F5285CAE645441C3F528BC4771514148E17A448C645441295C8F6244715141666666E68A645441A4703D2A427151417B14AE078A6454411F85EB213E715141EC51B86E88645441A4703DDA3A7151415C8FC215876454418FC2F5F8387151411F85EBF189645441
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000000C16234139715141101B3855A6645441B5A635A14771514169D1FD748C645441D683C8693171514141B8A60484645441C470E95A24715141A1B080CB7E645441FCD6189D1F715141E2D9B9C77D6454411D361C890E71514103164E409B64544144E4DE92FE7051419307FF56BA645441328A01FE2171514129DDA035D0645441219CD7D427715141D37391B2C5645441BFF61E0A2A71514185A5EEB8C1645441E6D7EC8A307151414D5622D0B56454410C16234139715141101B3855A6645441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>910123 - 4026201
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000000C0000008FC2F5F8387151411F85EBF189645441CDCCCCEC23715141C3F528BCB06454417B14AE271771514114AE47D1C6645441B81E85DB15715141F6285C0FC96454418FC2F5D82171514185EB5178D0645441B81E85CB34715141C3F5285CAE645441C3F528BC4771514148E17A448C645441295C8F6244715141666666E68A645441A4703D2A427151417B14AE078A6454411F85EB213E715141EC51B86E88645441A4703DDA3A7151415C8FC215876454418FC2F5F8387151411F85EBF189645441
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000000C16234139715141101B3855A6645441B5A635A14771514169D1FD748C645441D683C8693171514141B8A60484645441C470E95A24715141A1B080CB7E645441FCD6189D1F715141E2D9B9C77D6454411D361C890E71514103164E409B64544144E4DE92FE7051419307FF56BA645441328A01FE2171514129DDA035D0645441219CD7D427715141D37391B2C5645441BFF61E0A2A71514185A5EEB8C1645441E6D7EC8A307151414D5622D0B56454410C16234139715141101B3855A6645441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>434909 - 59021
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -63 </desc>
+<a>
+010600000001000000010300000001000000110000006666667676B5504166666676E9E454418FC2F59872B550411F85EB51E6E45441D7A3703D6CB55041A4703D3AE1E45441666666666AB55041CDCCCCBCDBE45441E17A148E66B55041EC51B81EDBE454419A99991966B55041D7A370DDD7E45441C3F528AC64B55041A4703D9AC7E454413D0AD70364B5504114AE47F1B5E45441B81E85FB62B55041A4703D0AB5E4544114AE47C154B550417B14AE57B6E45441333333434EB55041CDCCCC1CB7E454417B14AE4747B5504114AE47F1B7E454410AD7A31049B55041B81E85EBF6E454416666662650B55041CDCCCCACF9E4544185EB51485EB55041B81E852BFFE45441A4703DCA65B5504152B81EF500E554416666667676B5504166666676E9E45441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000C3F528AC64B55041A4703D9AC7E45441F9437EA364B550411CD374B1C6E45441B81E85FB62B55041A4703D0AB5E454417B14AE4747B5504114AE47F1B7E454410AD7A31049B55041B81E85EBF6E454416666662650B55041CDCCCCACF9E4544133D094C658B55041B5A06207FDE45441F3233C3F5EB550417174D6C9FEE45441EFAC2F2A62B550411BA2271800E554416820E08165B550415CEEE3E300E554416666667676B5504166666676E9E45441D7A3703D6CB55041A4703D3AE1E45441666666666AB55041CDCCCCBCDBE45441E17A148E66B55041EC51B81EDBE454419A99991966B55041D7A370DDD7E45441C3F528AC64B55041A4703D9AC7E45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>436963 - 3013887
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000010000002600000048E17A9478115141000000D002F854417B14AE577A115141F6285CEF00F85441333333537B115141AE47E18AFFF75441666666767C115141F6285CDFFDF75441D7A370FD7C1151411F85EB11FDF754419A9999C97D11514185EB5188FAF754411F85EB117E1151415C8FC215F9F75441A4703D3A7E1151418FC2F5B8F7F75441B81E851B7E1151419A999999F5F75441E17A14DE7D115141333333A3F3F754418FC2F5987D115141EC51B8CEF2F75441EC51B8CE7C115141E17A145EF1F754411F85EB417B115141295C8F82EFF7544133333383791151411F85EBD1EDF7544148E17A747711514100000030ECF7544148E17AC473115141F6285CEFE9F754411F85EB6170115141B81E85FBE7F75441EC51B8EE6E115141E17A144EEBF75441C3F528FC6C11514185EB5188EEF75441AE47E17A6A115141000000D0F1F754411F85EBA167115141A4703D0AF6F7544185EB51F865115141E17A14FEF7F7544133333353631151411F85EB11FBF754417B14AE77611151418FC2F5F8FDF75441295C8F42611151419A99996901F854410000006061115141713D0A4703F85441CDCCCC6C621151415C8FC23504F8544152B81EF561115141713D0A9707F85441C3F5289C611151418FC2F55808F8544133333313621151413D0AD7A308F854413D0AD7A3641151410000000008F85441EC51B89E661151419A99997907F854410AD7A3006A1151417B14AEB706F85441713D0A676D115141C3F5286C06F854411F85EB7171115141CDCCCCEC05F85441713D0AE773115141D7A370ED04F85441D7A3702D7611514152B81E1504F8544148E17A9478115141000000D002F85441
+</a>
+
+<b>
+010600000001000000010300000001000000180000001F85EB6170115141B81E85FBE7F754411F85EB716B115141CDCCCC0CE5F7544170E4FAF969115141CFB900D8E7F75441C27FA09E67115141667AC790EBF75441B165529964115141EEBA61A0EFF75441D1496F9061115141BBC5CCB4F3F754415B1920595F115141372C78AFF6F75441DE8C57AB5C1151414094DFD2FAF754415C5132C15A115141C298432BFEF75441BA90D9A759115141C284443A00F85441C29645E0581151411D481BB001F8544142DB3DFC59115141E75CED0E02F854412E3DFBC75B11514192E5FE0002F85441C7C1FE5B5D115141EB9056BB01F85441B9F159AA5E115141AEEB138EFFF75441F9CA0584601151411133A74DFEF75441C077AE4C611151414B2AC744FEF754416705B44E651151419D8E6EC3F8F7544191626EA2681151414C126A8DF4F7544197396DDE6B1151411C3174FEEFF75441889D4BEC6D115141AFDE5AFAECF7544118232DB56F1151418E5F5787E9F754414E3EB5DC6F115141AB8AA3DCE8F754411F85EB6170115141B81E85FBE7F75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>436963 - 3292433
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000010000002600000048E17A9478115141000000D002F854417B14AE577A115141F6285CEF00F85441333333537B115141AE47E18AFFF75441666666767C115141F6285CDFFDF75441D7A370FD7C1151411F85EB11FDF754419A9999C97D11514185EB5188FAF754411F85EB117E1151415C8FC215F9F75441A4703D3A7E1151418FC2F5B8F7F75441B81E851B7E1151419A999999F5F75441E17A14DE7D115141333333A3F3F754418FC2F5987D115141EC51B8CEF2F75441EC51B8CE7C115141E17A145EF1F754411F85EB417B115141295C8F82EFF7544133333383791151411F85EBD1EDF7544148E17A747711514100000030ECF7544148E17AC473115141F6285CEFE9F754411F85EB6170115141B81E85FBE7F75441EC51B8EE6E115141E17A144EEBF75441C3F528FC6C11514185EB5188EEF75441AE47E17A6A115141000000D0F1F754411F85EBA167115141A4703D0AF6F7544185EB51F865115141E17A14FEF7F7544133333353631151411F85EB11FBF754417B14AE77611151418FC2F5F8FDF75441295C8F42611151419A99996901F854410000006061115141713D0A4703F85441CDCCCC6C621151415C8FC23504F8544152B81EF561115141713D0A9707F85441C3F5289C611151418FC2F55808F8544133333313621151413D0AD7A308F854413D0AD7A3641151410000000008F85441EC51B89E661151419A99997907F854410AD7A3006A1151417B14AEB706F85441713D0A676D115141C3F5286C06F854411F85EB7171115141CDCCCCEC05F85441713D0AE773115141D7A370ED04F85441D7A3702D7611514152B81E1504F8544148E17A9478115141000000D002F85441
+</a>
+
+<b>
+010600000001000000010300000001000000180000001F85EB6170115141B81E85FBE7F754411F85EB716B115141CDCCCC0CE5F7544170E4FAF969115141CFB900D8E7F75441C27FA09E67115141667AC790EBF75441B165529964115141EEBA61A0EFF75441D1496F9061115141BBC5CCB4F3F754415B1920595F115141372C78AFF6F75441DE8C57AB5C1151414094DFD2FAF754415C5132C15A115141C298432BFEF75441BA90D9A759115141C284443A00F85441C29645E0581151411D481BB001F8544142DB3DFC59115141E75CED0E02F854412E3DFBC75B11514192E5FE0002F85441C7C1FE5B5D115141EB9056BB01F85441B9F159AA5E115141AEEB138EFFF75441F9CA0584601151411133A74DFEF75441C077AE4C611151414B2AC744FEF754416705B44E651151419D8E6EC3F8F7544191626EA2681151414C126A8DF4F7544197396DDE6B1151411C3174FEEFF75441889D4BEC6D115141AFDE5AFAECF7544118232DB56F1151418E5F5787E9F754414E3EB5DC6F115141AB8AA3DCE8F754411F85EB6170115141B81E85FBE7F75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>437037 - 194860
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+010600000001000000010300000001000000730000007B14AEB79E0F5141F6285C5F96F85441EC51B87EA10F514148E17AB494F854411F85EB41A20F51411F85EB6193F85441B81E85CBA30F51413D0AD79393F85441F6285CEFA80F5141AE47E1DA98F854411F85EBA1AD0F514152B81E1594F8544114AE47D1B20F5141713D0A678DF8544100000000B50F514152B81E458AF8544185EB5178B80F514148E17A8485F85441295C8F12BB0F51411F85EB3182F85441000000A0BF0F5141666666667CF85441C3F5283CC30F5141D7A3700D78F854419A999979C60F51410AD7A39074F854415C8FC235C20F51413D0AD7036BF854413D0AD7F3C00F5141AE47E1DA6BF85441EC51B8CEBE0F51411F85EB816DF85441A4703DBABC0F5141713D0A376FF85441E17A143EBB0F51410AD7A3E070F8544152B81E55B60F5141E17A145E77F85441F6285C3FB20F51413D0AD7F37CF854411F85EB51AE0F514114AE478182F8544114AE47C1AC0F51419A99990985F85441295C8F92AA0F5141713D0A3788F85441713D0A17A70F5141000000F08CF854411F85EBC1A20F51413333338392F854413D0AD7039F0F5141EC51B82E8FF8544148E17AE4A20F5141B81E85CB89F85441333333B3A50F51413D0AD7E384F854411F85EB61A90F5141000000807DF8544114AE4761AA0F514148E17A747BF85441B81E859BAA0F51415C8FC2357BF854410AD7A3B0AB0F51415C8FC2057AF85441E17A14BEAD0F5141E17A147E77F854410AD7A360AF0F5141EC51B84E75F85441295C8FD2B00F51413333337372F85441CDCCCC4CB10F51416666663671F85441D7A370BDB10F514185EB51A86FF854415C8FC2D5B20F51417B14AE676CF85441EC51B81EB30F5141E17A14FE6BF85441D7A3707DAF0F5141A4703DDA6AF85441F6285CEFA60F51413333333368F8544133333313A30F5141A4703D0A67F85441295C8F42960F5141EC51B85E6FF85441A4703DCA950F514152B81E6570F854417B14AE97940F5141713D0A3773F8544100000050930F51410AD7A32078F85441713D0A97920F51415C8FC2F579F85441D7A370ED910F5141CDCCCC9C7AF8544114AE47A1900F5141A4703D5A7CF85441E17A149E8F0F5141333333037EF85441AE47E1EA8E0F5141CDCCCC3C7FF85441666666F68B0F5141EC51B85E85F85441E17A14EE880F51410AD7A3908BF85441C3F528BC870F5141000000308DF8544114AE47E1860F51410AD7A3208EF85441B81E852B850F5141EC51B87E8FF8544114AE4781830F51413333334390F85441CDCCCCDC800F5141B81E85FB8FF85441D7A370CD7D0F51419A9999998FF85441AE47E1DA7C0F5141CDCCCCBC8FF85441EC51B83E7B0F5141713D0AF78FF85441B81E85CB770F5141713D0A5790F8544152B81EC5750F5141666666A690F854417B14AE37740F51415C8FC2C590F854419A9999A9720F51417B14AED790F854419A9999F9710F51410AD7A3F090F85441D7A3707D6C0F51410000001090F8544114AE4731690F5141D7A3700D8BF8544152B81EA5680F5141D7A3705D8AF854413D0AD7C3630F5141713D0A5791F854415C8FC2D55F0F5141D7A370CD96F854415C8FC2555D0F5141000000509AF854419A9999195C0F5141666666469DF854418FC2F5A85B0F51415C8FC225A0F854418FC2F5485C0F5141000000D0A1F854418FC2F5685D0F5141F6285C8FA4F85441A4703D4A5E0F514185EB5128A7F854413D0AD7E3610F5141AE47E1DAA6F8544152B81E75670F5141295C8F32A6F85441333333B3670F5141A4703D9AA5F854413D0AD723680F5141713D0AC7A4F8544114AE4701690F5141A4703D6AA3F8544166666696690F51413D0AD7A3A2F85441666666A66D0F51413D0AD7739DF8544114AE47416E0F51415C8FC2B59CF85441333333E36E0F51411F85EB219CF854415C8FC2556F0F5141AE47E1AA9BF854415C8FC235700F51411F85EBC19AF85441E17A141E710F514152B81EB599F8544152B81E35720F51411F85EB7198F85441C3F5289C730F5141B81E85AB96F8544133333353740F5141A4703DCA95F85441295C8FD2740F51410AD7A35095F854413D0AD773770F51411F85EBB193F854417B14AEA7790F51418FC2F57892F85441B81E85DB7C0F5141713D0AC791F854417B14AE27810F51415C8FC27591F854417B14AED77E0F514148E17A7492F854411F85EBE17C0F5141C3F5284C93F85441C3F5286C790F514148E17A8495F85441B81E85BB760F5141E17A14DE97F854418FC2F5C8730F5141B81E850B9AF85441D7A3708D6F0F514148E17A949CF8544152B81EE5740F5141F6285C4F9CF8544133333303780F5141F6285C7F9BF85441AE47E1BA7B0F5141000000E099F85441713D0A37800F5141B81E857B97F854418FC2F538820F51417B14AED796F8544148E17AD4840F51415C8FC29596F854410AD7A380880F51418FC2F51897F85441E17A141E8D0F51419A99990998F85441CDCCCC2C910F51410AD7A34098F8544166666616960F51419A99990998F85441E17A149E9A0F51416666668697F854417B14AEB79E0F5141F6285C5F96F85441
+</a>
+
+<b>
+01060000000100000001030000000100000029000000DE016339710F5141EDBC2A949BF85441002CFB21710F514136C7EFA39BF8544167F5310A700F5141D471C2499CF854418E281000700F51418FF7D34F9CF8544152B81EE5740F5141F6285C4F9CF854418D1D4B30760F5141B4101AC09BF854418517C16A770F5141AC6E795B9BF854416739F98E780F51415CD4F6FD9AF85441643C41A47B0F5141AA63EB9A99F854413FDF15E77D0F514139C13A6898F8544144C6103B800F51416455EC3097F85441D5ED805C820F5141C5D5F03E96F854412A7D95FD820F5141DC2559FB95F8544183920EDD840F5141F7B4E7B295F85441094247DD870F514151B98DBA95F85441439F48188D0F514157D85E4797F854419D288D2E8E0F5141F6824B9397F854413C52D818900F5141B5FE436297F8544131E4A063910F5141B71A02FE96F85441B44EE4D9960F51418644B9F495F85441B7D366C1980F5141642B0DDD95F854412C761EAA9A0F5141FF812DDC95F85441FE0D748C9E0F51413D3D9DFB95F85441E6E0A4BF9F0F51411169CAC894F854418B2585DDA00F51412DFB81C593F854411D5995D5A10F51417818A9C692F8544154196788A10F5141894B480892F85441846CB96CA00F51412275717A91F8544152ACE6AD880F5141495850048CF85441C3F528BC870F5141000000308DF8544114AE47E1860F51410AD7A3208EF85441B81E852B850F5141EC51B87E8FF8544114AE4781830F51413333334390F854417B14AE27810F51415C8FC27591F854417B14AED77E0F514148E17A7492F854411F85EBE17C0F5141C3F5284C93F854415CDD9B91790F514150790F9D95F85441DA7299EE770F51414E4951D796F85441B81E85BB760F5141E17A14DE97F854418FC2F5C8730F5141B81E850B9AF85441DE016339710F5141EDBC2A949BF85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>437037 - 302266
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+010600000001000000010300000001000000730000007B14AEB79E0F5141F6285C5F96F85441EC51B87EA10F514148E17AB494F854411F85EB41A20F51411F85EB6193F85441B81E85CBA30F51413D0AD79393F85441F6285CEFA80F5141AE47E1DA98F854411F85EBA1AD0F514152B81E1594F8544114AE47D1B20F5141713D0A678DF8544100000000B50F514152B81E458AF8544185EB5178B80F514148E17A8485F85441295C8F12BB0F51411F85EB3182F85441000000A0BF0F5141666666667CF85441C3F5283CC30F5141D7A3700D78F854419A999979C60F51410AD7A39074F854415C8FC235C20F51413D0AD7036BF854413D0AD7F3C00F5141AE47E1DA6BF85441EC51B8CEBE0F51411F85EB816DF85441A4703DBABC0F5141713D0A376FF85441E17A143EBB0F51410AD7A3E070F8544152B81E55B60F5141E17A145E77F85441F6285C3FB20F51413D0AD7F37CF854411F85EB51AE0F514114AE478182F8544114AE47C1AC0F51419A99990985F85441295C8F92AA0F5141713D0A3788F85441713D0A17A70F5141000000F08CF854411F85EBC1A20F51413333338392F854413D0AD7039F0F5141EC51B82E8FF8544148E17AE4A20F5141B81E85CB89F85441333333B3A50F51413D0AD7E384F854411F85EB61A90F5141000000807DF8544114AE4761AA0F514148E17A747BF85441B81E859BAA0F51415C8FC2357BF854410AD7A3B0AB0F51415C8FC2057AF85441E17A14BEAD0F5141E17A147E77F854410AD7A360AF0F5141EC51B84E75F85441295C8FD2B00F51413333337372F85441CDCCCC4CB10F51416666663671F85441D7A370BDB10F514185EB51A86FF854415C8FC2D5B20F51417B14AE676CF85441EC51B81EB30F5141E17A14FE6BF85441D7A3707DAF0F5141A4703DDA6AF85441F6285CEFA60F51413333333368F8544133333313A30F5141A4703D0A67F85441295C8F42960F5141EC51B85E6FF85441A4703DCA950F514152B81E6570F854417B14AE97940F5141713D0A3773F8544100000050930F51410AD7A32078F85441713D0A97920F51415C8FC2F579F85441D7A370ED910F5141CDCCCC9C7AF8544114AE47A1900F5141A4703D5A7CF85441E17A149E8F0F5141333333037EF85441AE47E1EA8E0F5141CDCCCC3C7FF85441666666F68B0F5141EC51B85E85F85441E17A14EE880F51410AD7A3908BF85441C3F528BC870F5141000000308DF8544114AE47E1860F51410AD7A3208EF85441B81E852B850F5141EC51B87E8FF8544114AE4781830F51413333334390F85441CDCCCCDC800F5141B81E85FB8FF85441D7A370CD7D0F51419A9999998FF85441AE47E1DA7C0F5141CDCCCCBC8FF85441EC51B83E7B0F5141713D0AF78FF85441B81E85CB770F5141713D0A5790F8544152B81EC5750F5141666666A690F854417B14AE37740F51415C8FC2C590F854419A9999A9720F51417B14AED790F854419A9999F9710F51410AD7A3F090F85441D7A3707D6C0F51410000001090F8544114AE4731690F5141D7A3700D8BF8544152B81EA5680F5141D7A3705D8AF854413D0AD7C3630F5141713D0A5791F854415C8FC2D55F0F5141D7A370CD96F854415C8FC2555D0F5141000000509AF854419A9999195C0F5141666666469DF854418FC2F5A85B0F51415C8FC225A0F854418FC2F5485C0F5141000000D0A1F854418FC2F5685D0F5141F6285C8FA4F85441A4703D4A5E0F514185EB5128A7F854413D0AD7E3610F5141AE47E1DAA6F8544152B81E75670F5141295C8F32A6F85441333333B3670F5141A4703D9AA5F854413D0AD723680F5141713D0AC7A4F8544114AE4701690F5141A4703D6AA3F8544166666696690F51413D0AD7A3A2F85441666666A66D0F51413D0AD7739DF8544114AE47416E0F51415C8FC2B59CF85441333333E36E0F51411F85EB219CF854415C8FC2556F0F5141AE47E1AA9BF854415C8FC235700F51411F85EBC19AF85441E17A141E710F514152B81EB599F8544152B81E35720F51411F85EB7198F85441C3F5289C730F5141B81E85AB96F8544133333353740F5141A4703DCA95F85441295C8FD2740F51410AD7A35095F854413D0AD773770F51411F85EBB193F854417B14AEA7790F51418FC2F57892F85441B81E85DB7C0F5141713D0AC791F854417B14AE27810F51415C8FC27591F854417B14AED77E0F514148E17A7492F854411F85EBE17C0F5141C3F5284C93F85441C3F5286C790F514148E17A8495F85441B81E85BB760F5141E17A14DE97F854418FC2F5C8730F5141B81E850B9AF85441D7A3708D6F0F514148E17A949CF8544152B81EE5740F5141F6285C4F9CF8544133333303780F5141F6285C7F9BF85441AE47E1BA7B0F5141000000E099F85441713D0A37800F5141B81E857B97F854418FC2F538820F51417B14AED796F8544148E17AD4840F51415C8FC29596F854410AD7A380880F51418FC2F51897F85441E17A141E8D0F51419A99990998F85441CDCCCC2C910F51410AD7A34098F8544166666616960F51419A99990998F85441E17A149E9A0F51416666668697F854417B14AEB79E0F5141F6285C5F96F85441
+</a>
+
+<b>
+01060000000100000001030000000100000029000000DE016339710F5141EDBC2A949BF85441002CFB21710F514136C7EFA39BF8544167F5310A700F5141D471C2499CF854418E281000700F51418FF7D34F9CF8544152B81EE5740F5141F6285C4F9CF854418D1D4B30760F5141B4101AC09BF854418517C16A770F5141AC6E795B9BF854416739F98E780F51415CD4F6FD9AF85441643C41A47B0F5141AA63EB9A99F854413FDF15E77D0F514139C13A6898F8544144C6103B800F51416455EC3097F85441D5ED805C820F5141C5D5F03E96F854412A7D95FD820F5141DC2559FB95F8544183920EDD840F5141F7B4E7B295F85441094247DD870F514151B98DBA95F85441439F48188D0F514157D85E4797F854419D288D2E8E0F5141F6824B9397F854413C52D818900F5141B5FE436297F8544131E4A063910F5141B71A02FE96F85441B44EE4D9960F51418644B9F495F85441B7D366C1980F5141642B0DDD95F854412C761EAA9A0F5141FF812DDC95F85441FE0D748C9E0F51413D3D9DFB95F85441E6E0A4BF9F0F51411169CAC894F854418B2585DDA00F51412DFB81C593F854411D5995D5A10F51417818A9C692F8544154196788A10F5141894B480892F85441846CB96CA00F51412275717A91F8544152ACE6AD880F5141495850048CF85441C3F528BC870F5141000000308DF8544114AE47E1860F51410AD7A3208EF85441B81E852B850F5141EC51B87E8FF8544114AE4781830F51413333334390F854417B14AE27810F51415C8FC27591F854417B14AED77E0F514148E17A7492F854411F85EBE17C0F5141C3F5284C93F854415CDD9B91790F514150790F9D95F85441DA7299EE770F51414E4951D796F85441B81E85BB760F5141E17A14DE97F854418FC2F5C8730F5141B81E850B9AF85441DE016339710F5141EDBC2A949BF85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>437258 - 52695
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000004A000000E17A14DEC75D5141B81E855BE0D3544185EB5148C75D5141EC51B83EE0D3544148E17A84C85D5141666666D6DDD3544166666696C95D514185EB5158DBD354418FC2F5A8CA5D5141CDCCCCCCD7D35441295C8F22CB5D5141D7A3708DD4D354417B14AE77CB5D51417B14AEB7D1D35441B81E859BCB5D5141C3F5284CCFD35441295C8F92CB5D514148E17AA4CDD3544152B81E75C65D51411F85EBB1CED35441295C8F62BF5D5141F6285C1FD0D354419A999969BF5D5141666666C6D1D354413D0AD703BF5D51415C8FC205D5D3544148E17AB4BC5D5141E17A14FEDBD35441B81E85BBBA5D51415C8FC2D5E1D354419A999939B95D5141CDCCCC8CE6D354419A999949B85D514185EB51C8EBD354410AD7A3D0B65D5141666666A6F1D35441666666C6B45D5141AE47E13AF8D35441333333F3B65D5141666666F6FFD35441295C8FC2B85D5141C3F528EC03D45441E17A14DEBB5D514148E17A040AD45441CDCCCC4CBC5D5141713D0AD70AD4544185EB51E8BE5D5141F6285C3F0CD454415C8FC285C05D5141A4703DFA0CD45441AE47E15AC15D5141A4703DAA0CD4544133333383C15D5141C3F5281C0AD454415C8FC2C5C15D51419A9999E908D45441333333C3C25D5141EC51B83E07D45441713D0A17C45D5141EC51B8CE05D4544114AE4751C55D51413D0AD7F304D454418FC2F5E8C65D5141713D0A3704D45441C3F5286CC85D51415C8FC26503D45441295C8F32C95D5141295C8FF202D45441AE47E1BAC95D514185EB51F803D45441CDCCCC3CC75D5141C3F5283C05D45441B81E853BC55D514114AE476106D454413D0AD703C45D5141C3F5284C07D454410AD7A310C45D51419A99994908D45441E17A146EC45D5141713D0A370AD4544166666656C35D51417B14AE070DD454410AD7A320C35D5141CDCCCC7C0ED45441B81E856BC45D5141333333F30FD454415C8FC215C35D51419A9999A910D45441713D0AC7C65D514185EB512817D45441B81E859BC85D514148E17A041BD4544166666606CA5D51418FC2F5C81ED454410AD7A370CB5D514148E17A1422D4544152B81EF5D35D5141333333131ED45441F6285CEFDA5D5141C3F528CC1AD45441C3F5281CDE5D5141D7A370ED14D454415C8FC2D5DB5D5141295C8F7212D4544166666616DC5D5141E17A14AE09D4544114AE4761DD5D51413D0AD7330AD45441713D0A77E55D5141CDCCCC8CFED3544100000050E95D51411F85EB41F8D354411F85EB31D85D514185EB5188E9D35441AE47E14AD75D5141EC51B84EE9D354413D0AD7A3D65D514133333383E9D3544185EB51F8D55D514185EB5138E9D35441EC51B88ED55D5141295C8F92E8D354419A999989D55D51410AD7A310E8D3544185EB5148D55D514100000080E7D354411F85EB31D55D514185EB51E8E6D35441713D0A67D55D514148E17A44E6D354417B14AED7D55D5141295C8FF2E5D3544166666606D65D5141F6285C5FE5D354413D0AD743D65D514152B81EE5E4D35441B81E851BD65D514148E17A24E4D35441E17A14BED55D514148E17A64E3D354415C8FC245D55D5141EC51B8DEE2D354410AD7A350D45D51411F85EBA1E2D35441666666A6D05D51415C8FC2F5E1D35441E17A14DEC75D5141B81E855BE0D35441
+</a>
+
+<b>
+0106000000010000000103000000010000007A00000014AE4761DD5D51413D0AD7330AD45441D546788DE45D5141ACCD6EDDFFD3544163FEC285E65D5141CF6D0AD2FCD354418F6FDFBBE65D514109128B79FCD3544100000050E95D51411F85EB41F8D354415B8A3354D85D51419E52CFA5E9D354412CD0B63CD85D514162FD9A91E9D354417E4F6969D75D514135EA5456E9D35441654F6D5AD75D514140929852E9D35441717B1A4DD75D5141F439464FE9D3544197AA9AF4D65D5141CB68D369E9D354413D0AD7A3D65D514133333383E9D35441A0A949A2D65D5141D4B78582E9D3544185EB51F8D55D514185EB5138E9D35441EC51B88ED55D5141295C8F92E8D354414257888ED55D51419CE3CD8DE8D35441000B1685D55D5141F77CA306E8D3544175C4CC48D55D5141FB301081E7D3544185EB5148D55D514100000080E7D354411F85EB31D55D514185EB51E8E6D35441227F1333D55D51413E07C1E4E6D35441713D0A67D55D514148E17A44E6D354419CBE216AD55D5141853D3B42E6D35441105667D9D55D5141CE1921EDE5D3544166666606D65D5141F6285C5FE5D35441B170F311D65D5141D0E16048E5D354414DEAFC42D65D514184910CE1E4D354414036C917D65D514172AFCE1CE4D354411654ADEFD55D51416F4B64CAE3D354415107ADC2D55D51411272EC6DE3D354411916DA48D55D5141F24228E2E2D3544187470FD5D25D51419215455CE2D35441666666A6D05D51415C8FC2F5E1D35441AD2676B5CA5D51414AE43DE0E0D3544105118BE1C75D514120E4265CE0D354418FF2203DC55D5141C8E723DAE6D3544132BDBBF1C35D5141BDE4C51BEAD35441A5EEE6A1C35D51418CDF56E5EAD354411CA00350C35D5141043719B4EBD354411FB8EE12C35D5141C1E7524EECD35441661D59B3C15D51410F9BE449EFD3544108322A19C15D51410C531698F0D354410F3841AFC05D51416015D949F2D35441B743166AC05D51412665631FF3D35441C10F024CC05D51412734F0E5F3D354419A4B9C61C05D5141D5D7A044F5D35441601E3EADC05D5141B70B38C6F6D3544138295BAAC05D5141A77AFC4FF7D35441DDF3C89FC05D5141F163E524F8D354414FC02FCABF5D5141F496F337FBD3544175CF8CCFBE5D51419E311323FFD35441D27A3D32BE5D5141BAFAE26901D454412B7209CFBD5D5141F01E05D902D4544151F59F94BD5D5141416032B103D45441A33E18FABC5D5141A60D6BEE05D4544153D3D9D0BC5D51413EF4688706D4544176176CB1BC5D5141432EFEFB06D4544198A87016BC5D51414540C03809D45441B4D201FBBB5D5141C852079C09D454417D1F85F3BB5D514197B41FB709D45441B296CBF0BB5D51419206FCC009D45441B2E215DEBB5D51418F8D7D040AD4544176E88AF0BB5D5141184A97270AD454415DEDCFF3BB5D5141C913CF2D0AD454411F545209BC5D5141E2C9B6560AD4544194F3C023BC5D5141291BFB880AD45441FD57D738BC5D5141A76915B10AD454418B0B2A4CBC5D514133B9D4D50AD454418D694AECBC5D5141539E212D0BD45441D06CC5FEBD5D5141E2FB4AC10BD45441FDA9AF78BE5D514106EE19030CD454411F0E71F6BE5D5141F13EBE450CD454415C8FC285C05D5141A4703DFA0CD45441AE47E15AC15D5141A4703DAA0CD4544133333383C15D5141C3F5281C0AD45441ECC8B58BC15D5141A2E6F6F409D454415C8FC2C5C15D51419A9999E908D45441333333C3C25D5141EC51B83E07D4544165252ADCC25D5141D3CDAF2307D45441713D0A17C45D5141EC51B8CE05D4544166F2081CC45D51410AA73DCB05D45441D27F9521C45D5141282F60C705D4544114AE4751C55D51413D0AD7F304D454416E71FA78C55D5141719474E104D45441D460DA20C75D5141B07DD41804D454414C642B0BC85D5141CAD62E9A03D4544179E93CFAC85D5141B05C431303D45441295C8F32C95D5141295C8FF202D45441AE47E1BAC95D514185EB51F803D4544183110E3BC75D51417913283D05D45441AE4B56E3C65D514141F23F6F05D4544175E0DFF9C55D5141CAE492F405D45441B81E853BC55D514114AE476106D454413D0AD703C45D5141C3F5284C07D4544129CC120FC45D51415EF5942A08D45441AAF3F46CC45D5141D8DA1B310AD45441E17A146EC45D5141713D0A370AD45441C338FB63C35D5141F17EAFE40CD4544150454B4FC35D514105B4FF380DD454410AD7A320C35D5141CDCCCC7C0ED454419AAF0363C45D51414F5F93E90FD45441B81E856BC45D5141333333F30FD454410D46E718C35D5141361EECA710D45441D757D115C35D5141659AB3A910D45441713D0AC7C65D514185EB512817D454414FA938F0C75D51412358299B19D454415826DE39C85D5141CACF80361AD45441B81E859BC85D514148E17A041BD4544176AFA3C9C95D514117B077271ED4544100DC7958CB5D5141EC1136DC21D454410AD7A370CB5D514148E17A1422D4544152B81EF5D35D5141333333131ED45441389923DED55D51410EF77E2D1DD4544148B8F2F3DA5D51415C69ADC31AD45441F7FC321ADE5D51417E6F4DEB14D454413000CFA9DD5D5141B7CEC87014D454415C8FC2D5DB5D5141295C8F7212D4544169BF7DECDB5D5141CB07455D0FD45441E320B50EDC5D5141598175AD09D4544167095416DC5D5141721A92B009D4544166666616DC5D5141E17A14AE09D4544114AE4761DD5D51413D0AD7330AD45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>437258 - 102907
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000004A000000E17A14DEC75D5141B81E855BE0D3544185EB5148C75D5141EC51B83EE0D3544148E17A84C85D5141666666D6DDD3544166666696C95D514185EB5158DBD354418FC2F5A8CA5D5141CDCCCCCCD7D35441295C8F22CB5D5141D7A3708DD4D354417B14AE77CB5D51417B14AEB7D1D35441B81E859BCB5D5141C3F5284CCFD35441295C8F92CB5D514148E17AA4CDD3544152B81E75C65D51411F85EBB1CED35441295C8F62BF5D5141F6285C1FD0D354419A999969BF5D5141666666C6D1D354413D0AD703BF5D51415C8FC205D5D3544148E17AB4BC5D5141E17A14FEDBD35441B81E85BBBA5D51415C8FC2D5E1D354419A999939B95D5141CDCCCC8CE6D354419A999949B85D514185EB51C8EBD354410AD7A3D0B65D5141666666A6F1D35441666666C6B45D5141AE47E13AF8D35441333333F3B65D5141666666F6FFD35441295C8FC2B85D5141C3F528EC03D45441E17A14DEBB5D514148E17A040AD45441CDCCCC4CBC5D5141713D0AD70AD4544185EB51E8BE5D5141F6285C3F0CD454415C8FC285C05D5141A4703DFA0CD45441AE47E15AC15D5141A4703DAA0CD4544133333383C15D5141C3F5281C0AD454415C8FC2C5C15D51419A9999E908D45441333333C3C25D5141EC51B83E07D45441713D0A17C45D5141EC51B8CE05D4544114AE4751C55D51413D0AD7F304D454418FC2F5E8C65D5141713D0A3704D45441C3F5286CC85D51415C8FC26503D45441295C8F32C95D5141295C8FF202D45441AE47E1BAC95D514185EB51F803D45441CDCCCC3CC75D5141C3F5283C05D45441B81E853BC55D514114AE476106D454413D0AD703C45D5141C3F5284C07D454410AD7A310C45D51419A99994908D45441E17A146EC45D5141713D0A370AD4544166666656C35D51417B14AE070DD454410AD7A320C35D5141CDCCCC7C0ED45441B81E856BC45D5141333333F30FD454415C8FC215C35D51419A9999A910D45441713D0AC7C65D514185EB512817D45441B81E859BC85D514148E17A041BD4544166666606CA5D51418FC2F5C81ED454410AD7A370CB5D514148E17A1422D4544152B81EF5D35D5141333333131ED45441F6285CEFDA5D5141C3F528CC1AD45441C3F5281CDE5D5141D7A370ED14D454415C8FC2D5DB5D5141295C8F7212D4544166666616DC5D5141E17A14AE09D4544114AE4761DD5D51413D0AD7330AD45441713D0A77E55D5141CDCCCC8CFED3544100000050E95D51411F85EB41F8D354411F85EB31D85D514185EB5188E9D35441AE47E14AD75D5141EC51B84EE9D354413D0AD7A3D65D514133333383E9D3544185EB51F8D55D514185EB5138E9D35441EC51B88ED55D5141295C8F92E8D354419A999989D55D51410AD7A310E8D3544185EB5148D55D514100000080E7D354411F85EB31D55D514185EB51E8E6D35441713D0A67D55D514148E17A44E6D354417B14AED7D55D5141295C8FF2E5D3544166666606D65D5141F6285C5FE5D354413D0AD743D65D514152B81EE5E4D35441B81E851BD65D514148E17A24E4D35441E17A14BED55D514148E17A64E3D354415C8FC245D55D5141EC51B8DEE2D354410AD7A350D45D51411F85EBA1E2D35441666666A6D05D51415C8FC2F5E1D35441E17A14DEC75D5141B81E855BE0D35441
+</a>
+
+<b>
+0106000000010000000103000000010000007A00000014AE4761DD5D51413D0AD7330AD45441D946788DE45D5141A9CD6EDDFFD3544162FEC285E65D5141CD6D0AD2FCD35441926FDFBBE65D51410D128B79FCD3544100000050E95D51411F85EB41F8D354415C8A3354D85D51419952CFA5E9D354412BD0B63CD85D514167FD9A91E9D354417A4F6969D75D514132EA5456E9D35441644F6D5AD75D51413D929852E9D354416C7B1A4DD75D5141F639464FE9D354419BAA9AF4D65D5141C868D369E9D354413D0AD7A3D65D514133333383E9D35441A2A949A2D65D5141D0B78582E9D3544185EB51F8D55D514185EB5138E9D35441EC51B88ED55D5141295C8F92E8D354414757888ED55D514198E3CD8DE8D35441040B1685D55D5141F27CA306E8D3544174C4CC48D55D5141FB301081E7D3544185EB5148D55D514100000080E7D354411F85EB31D55D514185EB51E8E6D35441237F1333D55D51413C07C1E4E6D35441713D0A67D55D514148E17A44E6D3544197BE216AD55D5141833D3B42E6D35441105667D9D55D5141CB1921EDE5D3544166666606D65D5141F6285C5FE5D35441B070F311D65D5141CDE16048E5D354414CEAFC42D65D514189910CE1E4D354413F36C917D65D514170AFCE1CE4D354411654ADEFD55D51416F4B64CAE3D354415507ADC2D55D51410E72EC6DE3D354411616DA48D55D5141F54228E2E2D3544186470FD5D25D51419415455CE2D35441666666A6D05D51415C8FC2F5E1D35441AE2676B5CA5D514147E43DE0E0D3544100118BE1C75D514125E4265CE0D3544194F2203DC55D5141C6E723DAE6D3544130BDBBF1C35D5141BCE4C51BEAD35441A2EEE6A1C35D51418BDF56E5EAD354411EA00350C35D5141093719B4EBD3544124B8EE12C35D5141C4E7524EECD35441681D59B3C15D51410A9BE449EFD3544103322A19C15D514108531698F0D354410E3841AFC05D51416515D949F2D35441B943166AC05D51412A65631FF3D35441C50F024CC05D51412534F0E5F3D354419B4B9C61C05D5141D1D7A044F5D354415E1E3EADC05D5141B50B38C6F6D354413C295BAAC05D5141A57AFC4FF7D35441DAF3C89FC05D5141F263E524F8D354414DC02FCABF5D5141F196F337FBD3544171CF8CCFBE5D5141A1311323FFD35441D57A3D32BE5D5141B7FAE26901D454412F7209CFBD5D5141EE1E05D902D4544153F59F94BD5D5141456032B103D45441A63E18FABC5D5141AB0D6BEE05D4544150D3D9D0BC5D514140F4688706D4544176176CB1BC5D5141442EFEFB06D4544194A87016BC5D51414240C03809D45441B3D201FBBB5D5141C552079C09D454417A1F85F3BB5D51419BB41FB709D45441B796CBF0BB5D51419606FCC009D45441B6E215DEBB5D51418A8D7D040AD4544171E88AF0BB5D5141144A97270AD454415EEDCFF3BB5D5141C413CF2D0AD4544120545209BC5D5141E1C9B6560AD4544190F3C023BC5D5141291BFB880AD454410158D738BC5D5141A96915B10AD454418C0B2A4CBC5D514135B9D4D50AD4544190694AECBC5D5141569E212D0BD45441D16CC5FEBD5D5141E7FB4AC10BD45441FCA9AF78BE5D514108EE19030CD45441200E71F6BE5D5141F53EBE450CD454415C8FC285C05D5141A4703DFA0CD45441AE47E15AC15D5141A4703DAA0CD4544133333383C15D5141C3F5281C0AD45441EFC8B58BC15D5141A7E6F6F409D454415C8FC2C5C15D51419A9999E908D45441333333C3C25D5141EC51B83E07D4544163252ADCC25D5141CECDAF2307D45441713D0A17C45D5141EC51B8CE05D4544162F2081CC45D51410AA73DCB05D45441CF7F9521C45D51412A2F60C705D4544114AE4751C55D51413D0AD7F304D454416B71FA78C55D5141729474E104D45441D460DA20C75D5141B17DD41804D4544147642B0BC85D5141CDD62E9A03D4544175E93CFAC85D5141AC5C431303D45441295C8F32C95D5141295C8FF202D45441AE47E1BAC95D514185EB51F803D4544186110E3BC75D51417A13283D05D45441B14B56E3C65D51413EF23F6F05D4544170E0DFF9C55D5141CAE492F405D45441B81E853BC55D514114AE476106D454413D0AD703C45D5141C3F5284C07D454412BCC120FC45D51415BF5942A08D45441A8F3F46CC45D5141DDDA1B310AD45441E17A146EC45D5141713D0A370AD45441C638FB63C35D5141F47EAFE40CD454414E454B4FC35D514100B4FF380DD454410AD7A320C35D5141CDCCCC7C0ED4544198AF0363C45D51414E5F93E90FD45441B81E856BC45D5141333333F30FD454410A46E718C35D5141361EECA710D45441D757D115C35D5141619AB3A910D45441713D0AC7C65D514185EB512817D4544154A938F0C75D51411E58299B19D454415C26DE39C85D5141C9CF80361AD45441B81E859BC85D514148E17A041BD4544172AFA3C9C95D51411BB077271ED4544104DC7958CB5D5141EB1136DC21D454410AD7A370CB5D514148E17A1422D4544152B81EF5D35D5141333333131ED45441379923DED55D51410CF77E2D1DD4544144B8F2F3DA5D51415A69ADC31AD45441F8FC321ADE5D51417F6F4DEB14D454412E00CFA9DD5D5141BBCEC87014D454415C8FC2D5DB5D5141295C8F7212D4544169BF7DECDB5D5141C707455D0FD45441DF20B50EDC5D5141578175AD09D4544162095416DC5D5141741A92B009D4544166666616DC5D5141E17A14AE09D4544114AE4761DD5D51413D0AD7330AD45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>437258 - 304394
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000004A000000E17A14DEC75D5141B81E855BE0D3544185EB5148C75D5141EC51B83EE0D3544148E17A84C85D5141666666D6DDD3544166666696C95D514185EB5158DBD354418FC2F5A8CA5D5141CDCCCCCCD7D35441295C8F22CB5D5141D7A3708DD4D354417B14AE77CB5D51417B14AEB7D1D35441B81E859BCB5D5141C3F5284CCFD35441295C8F92CB5D514148E17AA4CDD3544152B81E75C65D51411F85EBB1CED35441295C8F62BF5D5141F6285C1FD0D354419A999969BF5D5141666666C6D1D354413D0AD703BF5D51415C8FC205D5D3544148E17AB4BC5D5141E17A14FEDBD35441B81E85BBBA5D51415C8FC2D5E1D354419A999939B95D5141CDCCCC8CE6D354419A999949B85D514185EB51C8EBD354410AD7A3D0B65D5141666666A6F1D35441666666C6B45D5141AE47E13AF8D35441333333F3B65D5141666666F6FFD35441295C8FC2B85D5141C3F528EC03D45441E17A14DEBB5D514148E17A040AD45441CDCCCC4CBC5D5141713D0AD70AD4544185EB51E8BE5D5141F6285C3F0CD454415C8FC285C05D5141A4703DFA0CD45441AE47E15AC15D5141A4703DAA0CD4544133333383C15D5141C3F5281C0AD454415C8FC2C5C15D51419A9999E908D45441333333C3C25D5141EC51B83E07D45441713D0A17C45D5141EC51B8CE05D4544114AE4751C55D51413D0AD7F304D454418FC2F5E8C65D5141713D0A3704D45441C3F5286CC85D51415C8FC26503D45441295C8F32C95D5141295C8FF202D45441AE47E1BAC95D514185EB51F803D45441CDCCCC3CC75D5141C3F5283C05D45441B81E853BC55D514114AE476106D454413D0AD703C45D5141C3F5284C07D454410AD7A310C45D51419A99994908D45441E17A146EC45D5141713D0A370AD4544166666656C35D51417B14AE070DD454410AD7A320C35D5141CDCCCC7C0ED45441B81E856BC45D5141333333F30FD454415C8FC215C35D51419A9999A910D45441713D0AC7C65D514185EB512817D45441B81E859BC85D514148E17A041BD4544166666606CA5D51418FC2F5C81ED454410AD7A370CB5D514148E17A1422D4544152B81EF5D35D5141333333131ED45441F6285CEFDA5D5141C3F528CC1AD45441C3F5281CDE5D5141D7A370ED14D454415C8FC2D5DB5D5141295C8F7212D4544166666616DC5D5141E17A14AE09D4544114AE4761DD5D51413D0AD7330AD45441713D0A77E55D5141CDCCCC8CFED3544100000050E95D51411F85EB41F8D354411F85EB31D85D514185EB5188E9D35441AE47E14AD75D5141EC51B84EE9D354413D0AD7A3D65D514133333383E9D3544185EB51F8D55D514185EB5138E9D35441EC51B88ED55D5141295C8F92E8D354419A999989D55D51410AD7A310E8D3544185EB5148D55D514100000080E7D354411F85EB31D55D514185EB51E8E6D35441713D0A67D55D514148E17A44E6D354417B14AED7D55D5141295C8FF2E5D3544166666606D65D5141F6285C5FE5D354413D0AD743D65D514152B81EE5E4D35441B81E851BD65D514148E17A24E4D35441E17A14BED55D514148E17A64E3D354415C8FC245D55D5141EC51B8DEE2D354410AD7A350D45D51411F85EBA1E2D35441666666A6D05D51415C8FC2F5E1D35441E17A14DEC75D5141B81E855BE0D35441
+</a>
+
+<b>
+0106000000010000000103000000010000007A00000014AE4761DD5D51413D0AD7330AD45441D946788DE45D5141A9CD6EDDFFD3544162FEC285E65D5141CD6D0AD2FCD35441926FDFBBE65D51410D128B79FCD3544100000050E95D51411F85EB41F8D354415C8A3354D85D51419952CFA5E9D354412BD0B63CD85D514167FD9A91E9D354417A4F6969D75D514132EA5456E9D35441644F6D5AD75D51413D929852E9D354416C7B1A4DD75D5141F639464FE9D354419BAA9AF4D65D5141C868D369E9D354413D0AD7A3D65D514133333383E9D35441A2A949A2D65D5141D0B78582E9D3544185EB51F8D55D514185EB5138E9D35441EC51B88ED55D5141295C8F92E8D354414757888ED55D514198E3CD8DE8D35441040B1685D55D5141F27CA306E8D3544174C4CC48D55D5141FB301081E7D3544185EB5148D55D514100000080E7D354411F85EB31D55D514185EB51E8E6D35441237F1333D55D51413C07C1E4E6D35441713D0A67D55D514148E17A44E6D3544197BE216AD55D5141833D3B42E6D35441105667D9D55D5141CB1921EDE5D3544166666606D65D5141F6285C5FE5D35441B070F311D65D5141CDE16048E5D354414CEAFC42D65D514189910CE1E4D354413F36C917D65D514170AFCE1CE4D354411654ADEFD55D51416F4B64CAE3D354415507ADC2D55D51410E72EC6DE3D354411616DA48D55D5141F54228E2E2D3544186470FD5D25D51419415455CE2D35441666666A6D05D51415C8FC2F5E1D35441AE2676B5CA5D514147E43DE0E0D3544100118BE1C75D514125E4265CE0D3544194F2203DC55D5141C6E723DAE6D3544130BDBBF1C35D5141BCE4C51BEAD35441A2EEE6A1C35D51418BDF56E5EAD354411EA00350C35D5141093719B4EBD3544124B8EE12C35D5141C4E7524EECD35441681D59B3C15D51410A9BE449EFD3544103322A19C15D514108531698F0D354410E3841AFC05D51416515D949F2D35441B943166AC05D51412A65631FF3D35441C50F024CC05D51412534F0E5F3D354419B4B9C61C05D5141D1D7A044F5D354415E1E3EADC05D5141B50B38C6F6D354413C295BAAC05D5141A57AFC4FF7D35441DAF3C89FC05D5141F263E524F8D354414DC02FCABF5D5141F196F337FBD3544171CF8CCFBE5D5141A1311323FFD35441D57A3D32BE5D5141B7FAE26901D454412F7209CFBD5D5141EE1E05D902D4544153F59F94BD5D5141456032B103D45441A63E18FABC5D5141AB0D6BEE05D4544150D3D9D0BC5D514140F4688706D4544176176CB1BC5D5141442EFEFB06D4544194A87016BC5D51414240C03809D45441B3D201FBBB5D5141C552079C09D454417A1F85F3BB5D51419BB41FB709D45441B796CBF0BB5D51419606FCC009D45441B6E215DEBB5D51418A8D7D040AD4544171E88AF0BB5D5141144A97270AD454415EEDCFF3BB5D5141C413CF2D0AD4544120545209BC5D5141E1C9B6560AD4544190F3C023BC5D5141291BFB880AD454410158D738BC5D5141A96915B10AD454418C0B2A4CBC5D514135B9D4D50AD4544190694AECBC5D5141569E212D0BD45441D16CC5FEBD5D5141E7FB4AC10BD45441FCA9AF78BE5D514108EE19030CD45441200E71F6BE5D5141F53EBE450CD454415C8FC285C05D5141A4703DFA0CD45441AE47E15AC15D5141A4703DAA0CD4544133333383C15D5141C3F5281C0AD45441EFC8B58BC15D5141A7E6F6F409D454415C8FC2C5C15D51419A9999E908D45441333333C3C25D5141EC51B83E07D4544163252ADCC25D5141CECDAF2307D45441713D0A17C45D5141EC51B8CE05D4544162F2081CC45D51410AA73DCB05D45441CF7F9521C45D51412A2F60C705D4544114AE4751C55D51413D0AD7F304D454416B71FA78C55D5141729474E104D45441D460DA20C75D5141B17DD41804D4544147642B0BC85D5141CDD62E9A03D4544175E93CFAC85D5141AC5C431303D45441295C8F32C95D5141295C8FF202D45441AE47E1BAC95D514185EB51F803D4544186110E3BC75D51417A13283D05D45441B14B56E3C65D51413EF23F6F05D4544170E0DFF9C55D5141CAE492F405D45441B81E853BC55D514114AE476106D454413D0AD703C45D5141C3F5284C07D454412BCC120FC45D51415BF5942A08D45441A8F3F46CC45D5141DDDA1B310AD45441E17A146EC45D5141713D0A370AD45441C638FB63C35D5141F47EAFE40CD454414E454B4FC35D514100B4FF380DD454410AD7A320C35D5141CDCCCC7C0ED4544198AF0363C45D51414E5F93E90FD45441B81E856BC45D5141333333F30FD454410A46E718C35D5141361EECA710D45441D757D115C35D5141619AB3A910D45441713D0AC7C65D514185EB512817D4544154A938F0C75D51411E58299B19D454415C26DE39C85D5141C9CF80361AD45441B81E859BC85D514148E17A041BD4544172AFA3C9C95D51411BB077271ED4544104DC7958CB5D5141EB1136DC21D454410AD7A370CB5D514148E17A1422D4544152B81EF5D35D5141333333131ED45441379923DED55D51410CF77E2D1DD4544144B8F2F3DA5D51415A69ADC31AD45441F8FC321ADE5D51417F6F4DEB14D454412E00CFA9DD5D5141BBCEC87014D454415C8FC2D5DB5D5141295C8F7212D4544169BF7DECDB5D5141C707455D0FD45441DF20B50EDC5D5141578175AD09D4544162095416DC5D5141741A92B009D4544166666616DC5D5141E17A14AE09D4544114AE4761DD5D51413D0AD7330AD45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>440670 - 1472685
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+01060000000100000001030000000100000011000000E17A145E03FE50411F85EB71451D5541D7A3702D05FE50410AD7A3D04B1D55413333333307FE504152B81E85541D5541CDCCCCEC07FE5041C3F5285C5C1D5541A4703DFA07FE504152B81E25621D55418FC2F5B80FFE50418FC2F588611D55411F85EB4110FE504148E17AF4681D55419A9999A917FE50413D0AD753671D554152B81E8517FE504133333313611D5541713D0A8717FE504133333363521D5541B81E85EB16FE5041CDCCCC7C4C1D55410AD7A39015FE5041713D0A37461D55410000009013FE5041EC51B8BE401D5541AE47E1AA10FE504114AE4731411D5541CDCCCCEC08FE50411F85EBE1421D554148E17AC403FE504114AE47A1441D5541E17A145E03FE50411F85EB71451D5541
+</a>
+
+<b>
+010600000001000000010300000001000000180000009A9999A917FE50413D0AD753671D5541E433F68217FE5041CF3C82FC631D55417D1E518717FE50419AB19773611D554152B81E8517FE504133333313611D55411E170A8717FE5041FB5F5864521D5541B5AFDE8617FE5041B3358C61521D5541F3EE573517FE5041D4D4C4494F1D554179A941A916FE5041F4620E4A4B1D5541D0BEA04E16FE504154D585A6491D55419249051015FE5041EE4CEA3C451D5541D1D6E39013FE50411034F0D0401D5541CC11449613FE50411BF9D5CF401D55410000009013FE5041EC51B8BE401D5541AE47E1AA10FE504114AE4731411D5541CDCCCCEC08FE50411F85EBE1421D554148E17AC403FE504114AE47A1441D5541E17A145E03FE50411F85EB71451D5541D7A3702D05FE50410AD7A3D04B1D55413333333307FE504152B81E85541D5541CDCCCCEC07FE5041C3F5285C5C1D5541A4703DFA07FE504152B81E25621D55418FC2F5B80FFE50418FC2F588611D55411F85EB4110FE504148E17AF4681D55419A9999A917FE50413D0AD753671D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>440670 - 3276568
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+01060000000100000001030000000100000011000000E17A145E03FE50411F85EB71451D5541D7A3702D05FE50410AD7A3D04B1D55413333333307FE504152B81E85541D5541CDCCCCEC07FE5041C3F5285C5C1D5541A4703DFA07FE504152B81E25621D55418FC2F5B80FFE50418FC2F588611D55411F85EB4110FE504148E17AF4681D55419A9999A917FE50413D0AD753671D554152B81E8517FE504133333313611D5541713D0A8717FE504133333363521D5541B81E85EB16FE5041CDCCCC7C4C1D55410AD7A39015FE5041713D0A37461D55410000009013FE5041EC51B8BE401D5541AE47E1AA10FE504114AE4731411D5541CDCCCCEC08FE50411F85EBE1421D554148E17AC403FE504114AE47A1441D5541E17A145E03FE50411F85EB71451D5541
+</a>
+
+<b>
+010600000001000000010300000001000000180000009A9999A917FE50413D0AD753671D5541E433F68217FE5041CF3C82FC631D55417D1E518717FE50419AB19773611D554152B81E8517FE504133333313611D55411E170A8717FE5041FB5F5864521D5541B5AFDE8617FE5041B3358C61521D5541F3EE573517FE5041D4D4C4494F1D554179A941A916FE5041F4620E4A4B1D5541D0BEA04E16FE504154D585A6491D55419249051015FE5041EE4CEA3C451D5541D1D6E39013FE50411034F0D0401D5541CC11449613FE50411BF9D5CF401D55410000009013FE5041EC51B8BE401D5541AE47E1AA10FE504114AE4731411D5541CDCCCCEC08FE50411F85EBE1421D554148E17AC403FE504114AE47A1441D5541E17A145E03FE50411F85EB71451D5541D7A3702D05FE50410AD7A3D04B1D55413333333307FE504152B81E85541D5541CDCCCCEC07FE5041C3F5285C5C1D5541A4703DFA07FE504152B81E25621D55418FC2F5B80FFE50418FC2F588611D55411F85EB4110FE504148E17AF4681D55419A9999A917FE50413D0AD753671D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>463875 - 243760
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -63 </desc>
+<a>
+01060000000200000001030000000100000023000000000000B071F25041EC51B86E21AA5441713D0A576DF25041000000901BAA5441C3F5286C68F25041B81E850B16AA54417B14AEC760F25041EC51B8EE0FAA54410AD7A3405AF25041333333330CAA544114AE474154F25041EC51B8AE09AA5441F6285C5F51F250410000001009AA5441E17A147E51F250417B14AE270AAA54417B14AE974BF25041D7A370CD09AA54417B14AE874AF25041AE47E1FA09AA54416666669649F25041295C8F820AAA5441295C8FC248F2504114AE47B10CAA54419A99993946F25041AE47E10A0CAA5441E17A14DE44F25041C3F528FC0BAA5441713D0A4744F25041666666660DAA54419A99990943F25041F6285CDF0DAA5441F6285C8F40F25041333333A30DAA54415C8FC22540F2504185EB51580EAA5441B81E85DB41F25041EC51B80E11AA54419A99992945F25041EC51B81E12AA54419A99992945F250415C8FC2C513AA544148E17AC44AF250419A9999A916AA5441295C8FF24BF250419A9999B917AA5441EC51B82E4CF250419A9999C918AA54418FC2F5984DF2504114AE475119AA5441295C8F124FF25041E17A148E1AAA54416666661654F25041713D0A071BAA544152B81E3555F2504152B81E351CAA5441D7A370FD5AF25041713D0A371EAA5441B81E857B62F250415C8FC2451EAA544148E17A1466F25041D7A370ED20AA5441D7A3709D67F25041D7A370ED20AA5441C3F528EC6BF25041D7A370FD21AA54410AD7A3F071F25041E17A14EE21AA5441000000B071F25041EC51B86E21AA5441010300000001000000880100007B14AEF795F2504148E17AE42BAA54417B14AEE796F2504148E17A942AAA54413D0AD7A398F25041C3F5283C2BAA54413D0AD76399F2504185EB51082CAA54413D0AD7639CF25041C3F5284C2DAA54417B14AEB79FF2504185EB51F82CAA54413D0AD7B3A0F25041C3F528DC2DAA54413D0AD7E3A0F2504148E17AD432AA5441B81E85DB9FF25041C3F5286C34AA54417B14AEE79FF250410AD7A3F037AA54417B14AEB79FF2504185EB515839AA54417B14AE379EF2504185EB51D83AAA5441F6285C8F9DF2504185EB51383EAA54417B14AE079EF250410AD7A3403FAA5441B81E858B9EF250410AD7A31042AA5441F6285CCF9CF2504185EB51C844AA54417B14AE279CF250410AD7A37045AA5441B81E855B9BF2504148E17A5449AA5441F6285CAF9BF250410AD7A3204AAA54417B14AE579CF2504148E17AD44AAA54413D0AD7439EF2504148E17AC44BAA54413D0AD723A0F250410AD7A3E04AAA5441B81E85BBA1F250410AD7A3404BAA54417B14AEB7A2F2504148E17A244CAA5441F6285C1FA4F25041C3F5287C4BAA54413D0AD7B3A5F250415C8FC20542AA5441B81E852BA7F2504185EB51683BAA5441F6285C2FA6F250410AD7A3203BAA5441F6285C2FA6F2504148E17AC436AA54413D0AD713A7F2504185EB518833AA54417B14AE07A7F250410AD7A3902EAA54413D0AD793A8F250410AD7A3602BAA54417B14AE47A9F25041C3F528AC2AAA54413D0AD713AAF250410AD7A3D02AAA5441F6285CDFAAF2504185EB51C829AA54413D0AD793ABF250410AD7A3102AAA5441B81E852BADF25041C3F528DC27AA54413D0AD743ADF250410AD7A34024AA5441F6285C8FACF250410AD7A35023AA54417B14AE27AEF25041C3F5283C22AA54417B14AE87B1F25041C3F5283C22AA5441C3F528BCB4F25041333333F31DAA5441F6285CCFB4F2504185EB51381DAA54413D0AD713B3F250410AD7A3001CAA5441F6285C6FB1F2504148E17A641BAA54413D0AD763AEF2504148E17AC418AA54417B14AEF7ADF25041C3F5284C18AA54417B14AE37ADF25041C3F5289C16AA5441F6285C1FAAF25041C3F5284C12AA54413D0AD793A8F250410AD7A3C00DAA54417B14AEC7A7F25041C3F5285C08AA54413D0AD773A7F2504148E17A4402AA5441B81E852BA7F2504148E17A14FFA95441F6285CCFA5F2504185EB5188FDA954417B14AEB7A5F250410AD7A350FCA954417B14AE77A3F250410AD7A340F7A954413D0AD743A1F2504185EB5158F4A954417B14AE579FF2504185EB51A8F2A954417B14AED79DF2504185EB5108F0A954417B14AE379BF25041C3F5286CECA95441F6285C5F9AF2504148E17AF4EBA95441F6285C2F9AF2504185EB5158EBA95441B81E85EB98F250410AD7A350EAA954413D0AD77398F250410AD7A3D0E8A95441F6285C2F97F25041C3F5281CE8A95441B81E85AB96F2504185EB5148E6A95441B81E850B97F25041C3F528BCE4A95441B81E85AB96F250410AD7A390E0A954417B14AE3795F250410AD7A3C0DDA95441B81E85DB93F2504148E17A84DDA954413D0AD74392F250410AD7A320DBA95441F6285C5F91F2504148E17A54D7A954417B14AE5790F2504148E17A24D7A954413D0AD7738FF2504185EB5198D8A954413D0AD7738FF2504148E17A34DCA95441B81E857B8DF25041C3F528BCDEA95441F6285CBF8BF2504148E17AA4E1A95441B81E85EB89F2504148E17AF4E2A954417B14AE3786F250410AD7A340E5A95441B81E85DB84F25041C3F5287CE5A954417B14AE0783F2504185EB51A8E6A954413D0AD79381F25041C3F5289CE6A954417B14AED77FF25041C3F528ECE7A95441F6285CDF7DF2504148E17A34E8A954417B14AE177CF250410AD7A330E9A95441B81E858B7AF250410AD7A370EBA954417B14AE6777F250410AD7A300ECA95441F6285C2F76F2504148E17AB4ECA954417B14AEE775F2504185EB5128EEA95441B81E85AB72F2504148E17A94EEA954413D0AD7E370F2504185EB5158EEA95441B81E85FB6DF2504185EB51D8ECA954417B14AED76DF25041C3F5281CEBA95441F6285C3F6FF2504148E17A44EAA95441F6285C2F70F250410AD7A380EAA954417B14AE3771F250410AD7A360E9A95441B81E85BB71F2504148E17A74E7A95441F6285CDF71F2504185EB5128E2A95441F6285CAF71F2504185EB51A8E0A95441B81E850B73F250410AD7A390DDA95441B81E855B74F2504148E17A34DCA95441B81E855B74F2504148E17AA4D8A95441F6285C9F75F25041C3F5286CD7A95441B81E85DB75F2504148E17A04D6A954413D0AD7A377F2504148E17A54D1A954413D0AD7E379F2504148E17A24CEA954417B14AED77CF25041C3F5289CCBA954413D0AD7037EF250410AD7A320CCA95441F6285C9F7EF25041C3F5288CCFA95441B81E85CB79F25041C3F5283CD7A95441B81E857B78F2504185EB51A8D7A95441B81E858B77F25041C3F528BCD8A95441F6285C9F75F25041C3F5286CDDA954417B14AE3774F250410AD7A340E5A954417B14AEB772F2504148E17AB4E6A954417B14AE6771F25041C3F5289CE9A95441F6285C4F71F2504185EB51F8EAA95441F6285C3F75F2504148E17A44EAA95441F6285C8F76F250410AD7A350EAA95441F6285C3F78F2504185EB5118E9A95441F6285C0F78F25041C3F5281CE8A95441B81E857B78F2504148E17AB4E6A954413D0AD72379F2504185EB5118E6A954417B14AED779F2504185EB5168E4A954417B14AEB778F2504148E17AD4E1A954413D0AD78379F25041C3F528CCE0A954413D0AD7D37AF250410AD7A300E0A95441F6285CCF7BF250410AD7A3D0DFA95441B81E85FB7CF25041C3F5281CDFA95441F6285C2F7FF2504185EB51C8DBA954417B14AE2781F2504148E17A54DAA954417B14AEA782F2504148E17AC4D9A954413D0AD7C384F2504185EB51B8D9A954413D0AD7B385F25041C3F528DCD9A95441F6285C9F87F2504148E17A64DCA954413D0AD7638AF250410AD7A320DBA954417B14AE1791F2504148E17A64D6A95441B81E85CB91F250410AD7A350D5A95441B81E85CB91F25041C3F528CCD4A95441B81E854B90F250410AD7A350D2A954413D0AD70390F2504185EB5148D1A95441B81E851B90F2504148E17AD4CFA954417B14AEF792F2504185EB51E8CDA95441F6285C6F93F25041C3F528CCC8A954417B14AE0792F2504148E17A34C7A954413D0AD77392F2504148E17A74C6A95441B81E858B92F2504148E17AC4C4A95441F6285C0F93F250410AD7A3B0C3A95441B81E85EB92F2504185EB5148C2A954417B14AE4791F25041C3F5289CC2A95441B81E850B91F2504148E17AF4C1A954413D0AD77392F25041C3F5281CBEA95441F6285C4F92F250410AD7A390BCA954417B14AE0792F2504148E17A64BBA95441F6285CAF92F25041C3F5284CBBA954417B14AEB793F2504185EB51C8BAA954417B14AE8793F2504185EB51E8B8A954417B14AE1794F25041C3F5288CB7A954413D0AD71395F25041C3F5288CB7A95441F6285CBF94F250410AD7A340B5A95441F6285C3F96F2504148E17AE4B3A95441B81E859B97F2504148E17A54B3A954417B14AED797F2504148E17AA4B1A954417B14AE6795F2504100000030B0A95441B81E850B94F25041C3F528BCAEA954417B14AE7794F2504148E17AC4ACA95441B81E852B95F2504148E17A14ABA954417B14AE0795F2504148E17A74A8A95441B81E855B98F2504100000000AAA95441F6285CFF99F25041C3F528DCA9A954413D0AD7C39CF25041C3F528ECA8A954413D0AD7E39DF25041C3F528ECA8A95441333333D3A0F2504100000060A4A954417B14AE97A1F2504148E17A64A3A95441F6285CCF9CF2504148E17A94A3A95441B81E856B9DF2504185EB5138A2A95441B81E850B9DF2504100000070A0A954413D0AD7739EF25041C3F5282C9FA954417B14AE779DF25041000000309EA95441F6285C0F9FF25041000000209CA95441F6285C8FA0F25041000000A097A954417B14AEB7A5F2504148E17A7493A95441F6285CDFA7F2504185EB51C890A95441F6285C2FA9F2504185EB510890A954417B14AE27ABF2504185EB51D88CA954413D0AD763ABF2504148E17A048BA954413D0AD753B8F25041C3F528DC82A954417B14AED7B8F25041C3F528AC7FA95441F6285CAFB9F2504185EB51087EA95441F6285CBFBBF2504185EB51387BA954417B14AED7BEF2504185EB51E879A95441F6285C3FC0F250410000006077A95441F6285C5FC1F2504185EB51E876A95441F6285C4FC2F2504185EB51F875A95441B81E855BC2F2504148E17A3473A95441F6285CBFC1F25041000000F071A95441F6285C3FC9F2504148E17A1475A954413D0AD723CAF2504148E17A9473A95441F6285C1FCBF25041C3F5285C72A954413D0AD7C3CFF250410000009071A954413D0AD7B3D0F25041000000B06FA954413D0AD793D2F25041C3F5282C6FA954417B14AE27D5F25041C3F5283C6EA954413D0AD7F3D5F2504185EB51F86CA95441F6285CAFD7F25041C3F528CC6BA954413D0AD7A3DAF2504185EB51486BA954417B14AE27DEF25041C3F5280C6BA95441F6285CEFDFF25041000000E069A954417B14AE37E0F2504185EB513869A954413D0AD7E3E2F2504148E17A046AA9544152B81EF5E5F25041A4703DFA68A95441E17A148EEBF250413D0AD70367A954413D0AD723EEF2504185EB51F869A95441B81E857BF0F25041C3F5287C6AA95441B81E852BF5F2504148E17A346DA954413D0AD7A3F5F25041C3F5282C6CA95441B81E859BFAF2504148E17A246EA9544100000020FBF25041000000206FA95441B81E85BBFBF2504185EB51786EA95441B81E858BFBF25041C3F5280C6BA954417B14AEE7F9F25041000000F068A9544100000020F8F2504148E17A7466A954413D0AD723F7F2504185EB518864A954417B14AE07F8F2504185EB518861A954417B14AE77F7F25041C3F5285C60A95441B81E855BF8F25041C3F5280C5FA95441000000D0F9F2504185EB51E85EA95441B81E85FBFAF250410000000059A954417B14AE57FCF2504148E17A3455A9544100000050FEF25041C3F5284C52A954413D0AD77301F35041000000704FA954413D0AD75303F35041000000F04DA954413D0AD78303F3504148E17A544DA95441B81E85FB00F3504148E17A844DA95441D7A370EDFAF250411F85EB814CA9544152B81EA5F9F250418FC2F5984CA95441B81E85EBF5F2504185EB51784DA9544100000080F2F2504185EB51784DA954417B14AE27F0F25041C3F528FC4DA954413D0AD723EEF25041000000B04EA954417B14AE37ECF25041000000E04EA95441F6285C4FECF250410000002051A95441B81E852BECF2504148E17A7451A954417B14AE67E9F2504148E17A3452A954417B14AE67E6F25041C3F528BC51A954417B14AEE7E4F25041C3F528EC51A954413D0AD773E3F25041C3F528AC52A95441F6285C9FE1F25041C3F528DC52A95441B81E856BDFF25041C3F5281C52A954417B14AE17DFF25041C3F5285C51A95441B81E851BD5F25041C3F528EC51A954417B14AE77CDF25041C3F528FC53A954417B14AE87C9F250410000002054A95441F6285C7FC5F2504185EB512855A954417B14AE77C1F250410000007055A954417B14AEA7BEF2504185EB51A856A95441B81E853BBEF25041C3F5281C58A95441F6285CFFBAF2504148E17A8459A95441B81E856BB8F25041C3F5289C59A954417B14AE67B3F25041000000405BA954413D0AD723B2F2504185EB51285BA954417B14AE47AFF2504185EB51185CA95441B81E85DBAEF2504148E17A845CA954413D0AD743ADF25041C3F5286C5CA95441F6285CBFACF2504185EB51E85BA95441F6285CBFACF2504185EB51285BA954413D0AD7F3ABF25041C3F5282C5AA95441B81E85DBA8F2504185EB51F85AA954413D0AD753A6F25041C3F5286C5CA954417B14AEF7A4F25041000000605CA95441B81E852BA1F2504148E17AD45DA95441B81E859BA0F2504148E17AA45DA954417B14AEF79EF2504148E17AD45DA95441F6285C8F9DF25041000000305FA954417B14AE6798F2504148E17A0461A95441F6285CAF95F25041C3F5281C61A954413D0AD7F393F2504148E17AA460A95441F6285C6F93F2504185EB510860A95441C3F5284C8FF25041C3F5285C61A954413D0AD7A38CF2504185EB510863A95441F6285CDF89F2504148E17AD463A954413D0AD7038AF2504185EB518864A95441F6285CFF8AF2504185EB514865A95441F6285CDF89F2504148E17A7466A95441F6285CCF84F25041C3F5280C68A95441F6285C9F83F25041B81E85BB65A95441C3F5285C7AF2504114AE477169A95441D7A370CD69F250419A9999E970A95441F6285CCF60F25041C3F528FC74A95441B81E857B60F2504185EB51F875A954413D0AD7635DF2504148E17AB477A954413D0AD7635DF25041C3F528EC78A954413D0AD7735CF25041C3F5283C7AA954417B14AEF759F2504148E17AE47AA95441B81E857B57F2504148E17AE47AA954413D0AD75355F25041000000607AA95441F6285C9F54F25041C3F528DC79A95441C3F528BC4EF250417B14AEC77BA954411F85EBC146F250418FC2F5487EA954417B14AED746F25041000000407FA954413D0AD7F345F2504185EB514880A954413D0AD7A344F2504148E17A5480A95441F6285C2F43F2504148E17AF47FA95441F6285CAF41F2504148E17AE480A954413D0AD7B340F25041000000F080A95441F6285CDF3BF2504185EB518882A954413D0AD73339F25041C3F5284C85A954413D0AD79333F25041000000B087A954413D0AD78334F25041000000108BA954417B14AE2736F2504185EB51988DA95441B81E856B34F25041C3F528CC8FA954417B14AE3732F2504185EB512891A95441F6285C2F31F250410000006092A95441F6285CEF31F250410000006095A954417B14AE1731F250410000007097A95441666666C632F250411F85EB919AA95441F6285CBF35F25041AE47E1FAA0A95441C3F5281C38F25041CDCCCCFCA6A95441666666F63BF250413D0AD783AEA95441F6285C9F3CF25041C3F5281CAFA95441F6285C1F3EF2504148E17AF4AFA954417B14AE873FF250410AD7A370B2A95441B81E85DB42F2504148E17A64B8A954413D0AD75346F2504148E17A94BEA95441F6285CCF48F2504148E17AC4C1A95441B81E854B4BF2504148E17A74C3A95441B81E85AB51F2504185EB51F8C6A95441B81E856B52F2504185EB5138C6A95441F6285C3F54F25041C3F5282CC6A95441F6285CEF55F25041C3F5288CC6A954417B14AEC756F2504148E17A14C6A95441F6285C5F58F25041C3F528BCC6A954417B14AED75BF2504185EB5128CDA954413D0AD7135CF25041C3F528FCCEA95441B81E85AB5AF25041C3F5284CD0A954417B14AEC756F25041C3F528DCD0A95441F6285C7F54F25041EC51B87ED1A954417B14AEE752F2504185EB5108D2A954419A9999C951F250413D0AD753D3A95441295C8FF251F250413D0AD763D5A95441CDCCCC7C52F250419A999959DCA95441F6285CBF52F2504148E17A14E1A95441F6285CFF54F2504148E17AF4E2A954413D0AD75355F25041C3F5285CEAA954417B14AEE754F250410AD7A300ECA954413D0AD75355F2504148E17A04F1A954413D0AD74356F2504185EB5178F2A954417B14AE6759F25041C3F5285CF3A95441F6285C2F5BF250410AD7A3B0F6A954413D0AD7F35AF25041C3F528BCFFA954413D0AD75358F25041C3F5285C02AA54417B14AE5757F25041C3F5288C02AA5441713D0A7754F25041B81E852B04AA54418FC2F5785CF250413333333307AA54411F85EB3163F25041666666F60AAA54413D0AD7C363F2504148E17AB40AAA5441B81E85FB64F250410AD7A3500BAA54413D0AD76366F250410AD7A3B00BAA54413D0AD73369F2504185EB51980EAA5441F6285C1F6BF250410AD7A30010AA5441F6285C0F6CF25041C3F528FC10AA5441B81E85CB6DF2504148E17AA411AA5441B81E858B6EF250410AD7A30013AA5441B81E85AB6FF2504185EB513814AA5441B81E856B70F25041C3F528AC15AA5441B81E853B73F25041C3F5284C18AA54417B14AE7773F250410AD7A3F019AA5441F6285C0F75F25041C3F528EC1AAA54417B14AEB775F250410AD7A3601CAA5441B81E852B77F25041C3F528BC1DAA5441F6285C7F77F2504185EB51481FAA5441F6285C9F78F2504185EB516820AA54413D0AD75379F2504185EB51B821AA54413D0AD72379F2504148E17A4423AA54417B14AE977AF2504148E17A3424AA5441F6285C9F7BF2504185EB510826AA5441B81E850B7CF250410AD7A3D027AA54417B14AE277EF2504148E17AD426AA5441F6285C2F7FF25041C3F5287C27AA5441B81E855B80F2504148E17AB428AA5441F6285C4F83F25041C3F5287C27AA54413D0AD72385F2504185EB518827AA54413D0AD70387F250410AD7A3D027AA5441B81E85CB88F2504185EB51B827AA5441F6285C1F8CF250410AD7A39028AA54413D0AD7638DF250410AD7A32029AA5441B81E852B8FF250410AD7A38029AA5441B81E85EB8FF2504185EB51582AAA54417B14AE1791F25041C3F528AC2AAA54417B14AE5793F2504185EB51D82BAA54417B14AE7794F2504148E17A442CAA54417B14AEF795F2504148E17AE42BAA5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B040000C7AF1E0E93F2504146192CA4C3A954416FB483EB92F25041DE335248C2A9544165A65EE492F25041B874BF49C2A95441A718D00492F250419EAA2BA3C2A95441071E481E91F250419EAA2BA3C2A954417F833A0791F25041177ACC01C2A954417020DD0B91F25041E12C70F5C1A95441B81E850B91F2504148E17AF4C1A95441C75E6A5991F25041387EAF1FC1A954418E4EA7BF91F25041C11A86D8BFA954415BE6F84992F25041C1ED9E50BEA95441A899747292F250412E16260DBEA95441F6285C4F92F250410AD7A390BCA954417B14AE0792F2504148E17A64BBA95441626A5F2192F2504151EAC060BBA954412FB3DD1B92F250413190D040BBA95441730D1BC692F250413190D040BBA9544179CE1B7A93F250415DF907E7BAA954418DBD3DB693F250413786EEB9BAA954417B14AE8793F2504185EB51E8B8A954417547B78C93F250414AEC24DCB8A954417547B78C93F25041593546A4B8A9544142DF081794F250412C6B9578B7A95441AAD95FEE94F25041C3F5288CB7A954413D0AD71395F25041C3F5288CB7A9544133AC2F1395F250410CFF9C87B7A954411A775AA194F25041F03F260AB5A95441100EF09E95F25041690FC768B4A954418E8DA1CD95F25041AD1F984BB4A95441F6285C3F96F2504148E17AE4B3A95441086B568596F250417C7D89C7B3A95441F23B93B396F25041AAAB4C99B3A954412E3A1B9A97F25041C4DF2354B3A954418F6640D397F250411E29D6A1B1A95441298393C497F250415A961399B1A95441E5A16B4997F25041554C0670B1A954414A27E2F896F25041BAD17C1FB1A954412848C3A595F25041DB040F55B0A95441C775404E95F2504146EB472DB0A95441D779F6C794F2504105706B85AFA95441B81E850B94F25041C3F528BCAEA954417B14AE7794F2504148E17AC4ACA95441B9D7F48694F2504100B3C89FACA95441C2AAD39594F25041C52BFF4DACA95441BAB0610895F25041561EE368ABA95441950C982195F2504134E0522CABA95441DAF3282995F250418CBD3AE8AAA954417B14AE0795F2504148E17A74A8A95441A3C9041195F2504162EAD078A8A9544112A8170995F25041849E8D29A8A95441EF0AD64B96F25041100408F9A8A95441E5A16B4997F2504160014C6CA9A954415D9EF32F98F25041890090DFA9A95441D9C4076098F25041B26E9DFFA9A95441EEF4FBA898F25041AA1F63F9A9A9544168F467FF98F250415E7D02F2A9A95441BD66A45B99F25041890090DFA9A95441449703FD99F2504152CD74B1A9A95441DB92CF569BF25041E3663E55A9A954414DC4726B9CF250419369FAE1A8A95441C6564CDC9DF25041D9D0ECCAA8A954412A81FFBDA0F25041617A0EEEA3A95441B3C85516A1F25041E10F8D69A3A95441F6285CCF9CF2504148E17A94A3A954410CC540E89CF250412C18FB5CA3A954412127A9C79CF25041DA49AF4CA3A954413E26ED3A9DF25041351A0C38A2A954418A7D75329DF25041BDFC1629A1A95441B81E850B9DF2504100000070A0A95441EBFC151E9DF250410954505FA0A954412DC158189DF2504149ECE03CA0A954412258EE159EF2504167BE3D289FA95441435AF1A99DF25041C84543629EA954417B14AE779DF25041000000309EA9544129408AEF9DF2504194E7C3949DA95441C3BC24729EF25041B32DDCD09CA954414AED83139FF250416D2F54EA9BA95441821ABF0AA0F250415C2BD72D99A9544106F15B88A0F25041D1A700B597A95441B35B8FF299F25041E783EBE19CA954419E6766C690F2504192EC51F8A4A95441827B144E88F25041295C8F32ABA954415536AA5884F250418DABF8D4B3A954419D95DFBB85F25041A1D2EDE4ACA95441BA5287BF87F25041A7777302A9A95441603D6CB48BF25041A3BC22D8A5A954418CB564E290F25041A961A8F5A1A95441A5CD86C896F25041E5AA057E9CA95441FC83D2669DF25041B9320D5097A954416BBBC971A3F2504182F7BE6B92A95441F139C72BA5F25041FABA6BFB90A954410F3114EDAAF2504170811D178CA9544130B94263ABF250413A47FC088BA954413D0AD763ABF2504148E17A048BA954413610C365ABF25041D3A444038BA95441A91EFE6DABF25041958374F08AA954419FFAB123ACF25041645E828B8AA954414F82C4B4ACF25041FE5B09308AA95441FB7E10D5ACF250414822AC1B8AA9544174C2BBEDACF2504174291E0C8AA954419A1F6654AEF250414B621EFF88A954413A2BDC8EB2F25041D1A17EE484A9544165788727B8F25041B01BD90A80A954414F8884D6B8F25041BA935AB37FA954417B14AED7B8F25041C3F528AC7FA954410A3D8207B9F2504140A20E4F7FA954418DB8BC85B9F25041E0159EED7DA9544155FA07F3B9F2504132880AAC7DA95441491DAF82BBF2504188580F8B7BA954410B56A4E2BBF25041E1FD86F17AA95441058BCEDBBCF25041DEBFB1BF7AA954418C90A6AEBEF250413928B8F979A95441DE503E3EBFF250415C8EF81379A9544133AEF03CC0F25041606B405677A95441880BA33BC1F25041663DE7D676A954417B700EDBC1F2504100A49F6C76A95441B2FCCB24C2F25041C917E22276A95441BCFB8B4FC2F250411F1972ED75A954413F20E250C2F25041C2CBA59F75A95441ACBB1252C2F250416074625A75A9544178EA2B52C2F25041F18CA85475A954417BDF5952C2F25041685D354A75A954411FC55C52C2F2504120BA8C4975A95441406B6F52C2F250419F294F4575A954412FB77E52C2F2504116BDD44175A954417067553AC2F25041E2CD58F974A954417067553AC2F250418D70A6FA73A95441CCDF2C59C2F25041C080F7BC73A95441B81E855BC2F2504148E17A3473A9544198D4C3EBC1F250414287444C72A954415CEE259BC1F25041BD6A6BDD71A95441AA793119C3F250413EE59A7C72A95441707F6C36C5F2504178F7765B73A954417A978332C8F250410EEBD59974A9544176BA3BF0C9F250416725D0DA73A95441D2E9946FCAF25041C05FCA1B73A954417629C8DDCAF25041212097AD72A95441F6285C1FCBF25041C3F5285C72A954419152DB57CBF250414D71745272A95441CE0C4D2DCCF250416B02181D72A9544168077D8ECCF250416B02181D72A95441D738AC72CEF25041D65EEBC971A954413C20F82AD0F2504102D4BDC170A954413D0AD7B3D0F25041000000B06FA95441F0037AB5D0F25041E3EB8CAF6FA95441B2DFCFBBD0F25041C316149F6FA95441DD62B850D4F250415440716D6EA95441B6F17C78D5F250413950FBBB6DA954413D0AD7F3D5F2504185EB51F86CA95441C76BDF02D6F25041CA7525EE6CA9544190ECBC39D6F2504142E6CC986CA954416F207F4AD7F25041FCCC6B106CA95441F6285CAFD7F25041C3F528CC6BA95441BAE2591AD9F2504164C8E58C6BA95441E098E98EDBF25041E2D8C60C6AA95441AC139DC1E3F25041EC9B606C67A9544190824A68E9F250413FB09B5A65A95441687D2330EDF25041B24FDB3165A9544108770672EDF25041FBE190FD64A954417D028B45F7F25041DE78D4FE63A9544171B6F860F7F25041E23642BA63A954417B14AE07F8F2504185EB518861A954417B14AE77F7F25041C3F5285C60A954411FD16A86F7F250419D3B6D4660A95441101C3A85F7F2504176EF914360A95441101C3A85F7F25041E3D5E20360A95441E0C072EAF7F250413FB8E8B25FA95441B81E855BF8F25041C3F5280C5FA954416794B36DF8F25041B41B690A5FA954412D85F683F8F25041F7DF4EE55EA95441D9A73116F9F2504119C032FA5EA9544116A127B0F9F250412E5762EB5EA95441CBE799D1F9F25041723F3CE05EA95441B81E85FBFAF250410000000059A954417B14AE57FCF2504148E17A3455A9544100000050FEF25041C3F5284C52A954412CE90DCBFEF25041032314DC51A954416FA1661900F350413E2AC35E4DA95441AF2240CFFFF25041A6CD64524DA95441D3221102FAF2504197D8889C4CA95441A3033434F9F250417B8668B34CA9544107DDF90AF9F25041DD9A10BD4CA95441DB325BB0F8F25041DA624AD24CA9544199509804F8F25041200DE71B4DA95441E53A77F5F6F25041B52B073A4DA95441E642D3D2F6F250418A4C24424DA9544113BDE967F5F2504178CE1CBB4DA95441DEB5CCB5F4F2504185EB51784DA954416D9EE8D6F2F2504185EB51784DA95441BD9C63ABF2F25041E4B46D7B4DA9544134183EEBF1F25041D452FD984DA9544151A56370F0F250418D1E31EC4DA954419ED8C86CEFF25041907E513D4EA954413D0AD723EEF25041000000B04EA95441F290E040EDF25041F3B022C64EA954417F42A8F2ECF2504159C4B0D94EA95441409A5F78ECF2504159C4B0D94EA954417B14AE37ECF25041000000E04EA954412E7DAB38ECF250418A0014F84EA9544127817253ECF250418012BE984FA9544127817253ECF25041E93CB03651A954416BF00A42ECF250414705643F51A95441B81E852BECF2504148E17A7451A954417B14AE67E9F2504148E17A3452A954418DF136D7E7F25041738CBDF551A95441671B4BB9E7F25041738CBDF551A95441EEC8087AE7F25041A96524E751A954417B14AE67E6F25041C3F528BC51A954410C94C94EE5F25041D18545DF51A95441BA398F5DE4F2504106A66C3552A954413458CB4FE4F250419D1A963A52A954413D0AD773E3F25041C3F528AC52A95441F44B6C32E2F25041A79117CD52A95441A08C3181E1F250418FF579F452A95441565D4EA8E0F25041E65D088852A954418515C73FE0F250414F3D706452A9544166BAB883DFF2504106A66C3552A95441F1A17679DFF250414375E82052A95441B81E856BDFF25041C3F5281C52A9544135791023DFF25041BD243B7651A954416C25C18FDEF250415A3AD16351A9544105CBCF15DDF25041A6C71B7951A95441926A8AB8DBF25041AEE4369651A954414B402611DBF25041AEE4369651A954412B77C4A7D8F25041998CFEB851A954415C5470DDD7F25041A4FFE5D551A954416804B0A6D6F25041A4FFE5D551A95441B81E851BD5F25041C3F528EC51A954417B14AE77CDF25041C3F528FC53A954416CC050BDCCF25041AC4AC90254A9544125DDC3CCCBF250413F78E53254A954418405F993CAF250419BF0751654A954417B14AE87C9F250410000002054A95441BE0DD338C6F250413234D5F854A95441B5F430F4C5F250418D54CA1155A95441AA6879C7C5F250412804DB1555A95441F6285C7FC5F2504185EB512855A95441E383DE4EC4F25041B6C6793D55A95441B795E0D6C3F25041206E795155A954412E11082FC3F25041206E795155A954417B14AE77C1F250410000007055A954414E2CF719BFF25041DBD7BE7656A95441D1FC5ABDBEF25041F77EBCAF56A95441DBE1AB7DBEF25041A70128EE57A9544169DD6241BEF250411428FE0758A95441B81E853BBEF25041C3F5281C58A954419B8D452CBCF2504139CE8E0159A954415F731802BBF25041E0B8F1AB59A95441F5482664B9F25041AF45C9CB59A954414FCB7096B7F2504173D2A0EB59A95441DAE7F76CB6F25041A5BB1E435AA954417B14AE67B3F25041000000405BA9544195A0C5BDB2F25041EA6D93335BA9544137A4135DB2F2504154E3E3495BA95441F5E20187B1F2504140B3BA5B5BA95441713A2921B1F25041A13E1D7D5BA95441744F14D7B0F2504146E465955BA954418EB8C98CB0F25041D221C0AD5BA954414E3F3E22B0F25041C1F4ACD05BA954411DF7B580AFF25041A2BFC8285CA9544185E57712AFF250417B1A884D5CA95441B81E85DBAEF2504148E17A845CA954410A2B4E7EAEF250412C58EB7E5CA954413C012262AEF2504104664F885CA954412FA0F88AADF25041023F67705CA954413D0AD743ADF25041C3F5286C5CA95441F6285CBFACF2504185EB51E85BA95441F6285CBFACF25041D9D6F4945BA95441964858A4ACF250412370BB695BA954414669316CACF25041F1D046C15AA954412730292DACF2504120232E735AA954410089F2E8ABF25041F97BF72E5AA95441CCE1FFC4ABF2504102C43A385AA9544122391546ABF250410707FF6A5AA954417D9BFAC7A9F25041CBAE85CA5AA9544191C015E9A8F25041C1C9340A5BA95441EB074C2BA7F25041714CA0485CA95441CFB93E6CA6F2504135D977685CA954412542455AA6F2504135D977685CA954413D0AD753A6F25041C3F5286C5CA954411C0123EAA5F2504135D977685CA95441EC1194E1A4F2504135D977685CA954417CD4176EA2F25041661CE3585DA95441056FC611A2F2504121CF0B875DA954419B500EA3A1F250414121AEA65DA95441B81E852BA1F2504148E17AD45DA9544125394502A1F2504117EABAC65DA95441D69C4D14A0F2504117EABAC65DA954417A683DCB9FF2504137E24ABC5DA954417B14AEF79EF2504148E17AD45DA954419B7E57FA9DF250419392D1C85EA9544193E583569EF250418BF9FD245FA954412343C3619DF2504175D22F405FA95441F6D974579BF25041975E9AF95FA95441F003C8FA9AF25041A762BA2360A954417A84E9A29AF250414702B23960A95441355D0EA099F25041E886969560A954415F8BC89D98F25041C4CB762261A95441F5658C7096F25041C4CB762261A95441492F653096F250412398C51761A95441F6285CAF95F25041C3F5281C61A954412829B85095F25041F53E9F0261A954414FC871F294F25041F53E9F0261A95441337A643394F25041C4B0C7E260A9544169E6EF0894F2504144412CAA60A954413D0AD7F393F2504148E17AA460A95441F6285C6F93F2504185EB510860A954416B7ABE5693F25041F6C9371060A95441048D3CF691F250413B9718A360A95441540AD1B790F25041F53E9F0261A9544138BCC3F88FF2504188584E4261A95441FEE94AFB8DF25041A5C10A4162A954414E67DFBC8CF25041CC0F180063A954413801F7A68CF2504122765A0663A954413D0AD7A38CF2504185EB510863A954411EADCB1F8AF25041F56DE9C163A954413D0AD7038AF2504185EB518864A954417E050E398AF250417A24F1B064A95441E53CED1E8BF25041FBE190FD64A954417F4AD4ED8AF25041D810F03A65A95441F6285CFF8AF2504185EB514865A9544129DF7C558AF2504197565DF965A95441C8D330208AF25041AA64FC3B66A954411394F20E8AF25041C317E24266A95441F6285CDF89F2504148E17A7466A954419B69BA9388F250417BFCCCDC66A95441CA74E00288F25041F840E11A67A9544191BD164586F250418C753F9A67A95441E11FFCC684F2504115AA9D1968A95441945EC62784F25041C7CDB83A67A95441945EC62784F2504134B409FB66A95441014517E883F250416FF1D35B66A95441E4C0ABA982F250416F0C839B66A95441D257EFAA81F25041C7CDB83A67A954415348AC4C80F25041500217BA67A95441E91DBAAE7EF25041D936753968A95441C8CDB1B47DF25041332D341A68A95441E0881C6D7DF25041292DE03668A9544193E284B27BF25041008582F868A95441793527D678F25041A6229D766AA95441983F93B777F250412F57FBF56AA95441AC49FF9876F25041C28B59756BA9544130D6B5AC73F25041062874F36CA9544145E0218E72F25041179130F26DA954413377658F71F2504118ACDF316EA95441DB9A80B070F25041ABC58E716EA95441C931C4B16FF25041706D15D16EA95441DD3B30936EF25041F9A173506FA95441C1ED22D46DF25041BD2E4B706FA954419A9F15156DF250418CBB22906FA95441871BAAD66BF2504115F0800F70A954419C40C5F76AF250419E3F8ECE70A954414F7F8F586AF2504132593D0E71A95441C62F829969F2504159A74ACD71A954416E6E4CFA68F250414EC2F90C72A9544116AD165B68F25041E2DBA84C72A954418D78B8DB67F25041136A806C72A95441F9435A5C67F25041A6832FAC72A95441A18224BD66F250416B1007CC72A954418F1968BE65F250412FB88D2B73A95441100A256064F25041C2D13C6B73A954413C9A91E460F25041688A062975A954416D632C8E60F2504195A937C075A95441B81E857B60F2504185EB51F875A95441680ECA6760F2504109BE630376A95441A865336560F250415465EB0776A95441F8E2C7265FF25041D2B4F8C676A9544153605CE85DF25041BE8FDDA577A954415345ADA85DF25041BEAA8CE577A954413D0AD7635DF25041465B0FB478A954413D0AD7635DF25041C3F528EC78A954417409C7405DF25041435D3F1D79A95441CA104F295DF250410147A76379A95441724F198A5CF250418096B4227AA95441B3FC8E855CF2504151A25A237AA954413D0AD7735CF25041C3F5283C7AA95441E8C83DAB5AF250411566F8B47AA95441EBBB6AED59F250419DFF70217BA95441C393229C59F2504148E17AE47AA95441B81E857B57F2504148E17AE47AA954413D0AD75355F25041000000607AA95441514F782B55F250412A8482427AA9544186F33CC553F25041BEF06FDB7FA9544131D3B60851F25041434401CB8CA9544159C7291B4FF25041421F935D97A95441162B0F9D4DF25041060DFDB29FA954415C83883D4DF2504123BC9CA7A8A954416EEC443C4EF25041749AC39EAFA95441953A52FB4EF250413EE53BF9B3A954418B55013B4FF25041560C9932B9A95441186AD00E50F250411EEBC314C6A95441B05D296F50F25041E17EE349C6A95441D5038EE350F25041C88C108AC6A954411C57FA3851F25041EA242AB9C6A95441EB7A3D6851F25041019388A1C6A95441F50CBF5E52F2504148FD1745C6A95441B81E856B52F2504185EB5138C6A95441BE4D00AB52F25041CA85AB36C6A954412E32072653F25041DB5F2A22C6A95441409BC32454F25041DB5F2A22C6A95441CFC5854954F250419E186B2EC6A95441F0E6EFE755F2504133AE828AC6A954419E821C0256F250411B25C981C6A954417B14AEC756F2504148E17A14C6A954413996DFF456F25041E2731127C6A954416548210157F25041DB5F2A22C6A95441E348416057F25041EBB3BFE2C5A95441B8ABFC8557F250412D60DD3BC6A954419626E1A058F25041D40DF3A5C6A954413D86600F59F2504163ECC6A7C7A95441509B067E59F250413655BDCEC8A954417B14AED75BF2504185EB5128CDA95441DCEAD4FC5BF250419ADB3B49CEA95441F521DC145CF25041B82167D9CEA954411F567E105CF25041FCB822E2CEA954413D0AD7135CF25041C3F528FCCEA9544103F630F55BF25041AA76BD18CFA95441F00007F05BF250415A601123CFA9544103EE6CC65BF25041936F5944CFA95441B81E85AB5AF25041C3F5284CD0A9544185F7C5CA57F2504163D8B1B6D0A954415367E2C357F250418ABF39B8D0A95441224A647856F250412CFEE301D1A95441F70B110855F25041C85D6370D1A95441640C68E153F25041BBDCB703D2A954417E0EBFBA52F25041AE5B0C97D2A95441926E950252F250419AFB354FD3A95441926E950252F2504180F9DE75D4A9544183FCEA2152F250416A628B70D5A954418859DC1A52F250416F95D071D5A95441E9E8BE3F52F250419F466F2CD7A9544101A34D2D52F250414D82F9BFD7A954412A679E2652F25041EFD0D102D8A95441CDCCCC7C52F250419A999959DCA95441F6285CBF52F2504148E17A14E1A95441A5A0B8D152F25041AFEFC723E1A954416C5ED36653F250412475278CE1A95441B9F21BDE53F250416A097003E2A95441F6285CFF54F2504148E17AF4E2A954410E57760355F25041AF488850E3A954414313722155F25041C38CFCA2E3A95441D7A0544655F25041BD742EA5E4A9544182E8C55855F25041AC7925F1E5A9544182E8C55855F2504108F13918E7A95441D7A0544655F25041549DE186E7A95441D7A0544655F25041AD20DD2CE8A95441588CFE6155F25041AF14F6ADE8A954417A468D4F55F25041156F458BE9A954417A468D4F55F250411BC9EFFBE9A954413D0AD75355F25041C3F5285CEAA95441A162BB4B55F25041A538AE7BEAA95441F6FC1B3D55F250414E2CCBC4EAA95441B727C80555F25041C15D6ED9EBA954416D6F391855F25041FC0E0D94EDA95441F6FC1B3D55F25041B721EB5EEEA954417A468D4F55F25041526E53BDEFA95441588CFE6155F25041F79DF6D1F0A95441B91BE18655F25041E1BABB1BF1A954416078122656F25041021E334AF2A954413D0AD74356F2504185EB5178F2A95441463B9C7656F250415CD6B586F2A95441650A0AD557F250411D6C5AD6F2A954410057723359F25041371A0245F3A95441E23BFD5959F25041588C4758F3A954417B14AE6759F25041C3F5285CF3A95441D9C8D76959F25041B2D23460F3A954414C031AA259F2504176EF557CF3A954417A61776D5AF25041CD05E845F5A95441F6285C2F5BF250410AD7A3B0F6A954410FA2680D5BF25041954674D9FBA954411E839D2E5BF250410C191790FCA9544106C90E415BF250415AB9D77FFDA954411E839D2E5BF2504122A30982FEA954411E839D2E5BF25041BAFB585FFFA954411E839D2E5BF2504104D1AC96FFA95441C5FFA1885AF250415D54A83C00AA5441833635D059F25041941D15F500AA5441E0713D8959F25041208EC22601AA54413D0AD75358F25041C3F5285C02AA54414958FA7957F25041FD96A18502AA544169E1D52557F250416AD2B3AF02AA544116B72BEB54F25041C19C765704AA54418FC2F5785CF250413333333307AA54410844574E5FF2504159CB2FC908AA5441AFC2987D60F250417053EC6A09AA544151EE65B262F250414DB6AAAD0AAA54417EB816DE63F250414DB6AAAD0AAA544129B39EC464F250419DB3EE200BAA54419D73E02065F2504102CC975A0BAA54413D0AD76366F250410AD7A3B00BAA5441E9D98D9466F2504166CDF4E20BAA544165DE0D3367F25041FC7B9F4C0CAA5441EC0E6DD467F2504183ACFEED0CAA5441743FCC7568F2504193776BA60DAA5441AB72E7A368F25041F6DDA1020EAA544119D91D0069F250411AA8CA470EAA5441F5BD592C6AF2504144117F4E0FAA5441F6285C1F6BF250410AD7A30010AA5441A2B287836BF2504181449E6910AA5441A501D1E16BF2504123D539B610AA5441A0DBBE556CF25041185FD51611AA5441D0A9164B6DF250413B2DCF7311AA5441FA60170B6EF250414B6ACFB311AA5441E12C40506EF2504150353C6C12AA544118605B7E6EF25041AB3280DF12AA54415A29C8366FF25041AFFDEC9713AA5441FA8DFE926FF250410AFB300B14AA5441E68E420670F25041A594829514AA5441B9F1786270F250412CC5E13615AA5441F024949070F25041CD29189315AA54414557F33171F25041DCF4844B16AA54414F244AAD71F2504172727AD816AA54418892E93B72F2504140C8975D17AA544154B8B17472F25041EB55438E17AA544190B6395B73F25041FA20B04618AA54413046338973F25041280073FB19AA5441BEB3D39373F250417C6101021AAA544139B4569C73F25041CBB941071AAA544176AF492875F250416D7F3AE31AAA54414E479BB275F250410E7AC2C91BAA544109E0A8C975F25041B31314541CAA5441C743239976F25041A4758E231DAA544194DB742377F250419076D2961DAA544186A79D6877F2504181D84C661EAA544178C8C99577F25041078BBF5E1FAA5441103A6EA577F250419FFC636E1FAA5441440B183878F25041C66C26D71FAA5441E56F4E9478F2504167D15C3320AA54418009A01E79F25041A3CFE41921AA544168FAB82F79F25041C981147521AA54413D0AD75379F2504185EB51B821AA5441926E344179F25041B3561F5222AA5441926E344179F2504139CBB07322AA5441926E344179F25041F82E2B4323AA54419639A1F979F25041D0C67CCD23AA5441B69759FD79F25041C090DED023AA54417B14AE977AF2504148E17A3424AA544131C0B5C67AF250416187EC8724AA5441BECE36F77AF250413EC304B424AA544146FF95987BF25041EEF2A7C825AA54417D32B1C67BF25041F2BD148126AA5441B465CCF47BF25041EE1F8F5027AA54414F06052D7CF25041786500C127AA54417B14AE277EF2504148E17AD426AA544107F4413F7EF25041003A79E326AA544173F62D4C7EF2504193224BDD26AA5441FA268DED7EF250410289813927AA5441412515D47FF2504189B9E0DA27AA5441C855747580F25041CA824D9328AA5441451D691482F250410C1FD3C327AA5441547E275783F250416BBA9C6727AA54416349940F84F250416BBA9C6727AA5441EF44606985F25041EE1F8F5027AA54413543E84F86F25041A2EDB79527AA54415DD87D4D87F250410C1FD3C327AA54418A38800389F250415286C5AC27AA5441035490E489F25041C482B0FF27AA5441F6285C1F8CF250410AD7A39028AA5441A2EBFBE68CF250410C063BE928AA54419E2828848DF25041981A9F1D29AA544194BFBD818EF25041014CBA4B29AA544161570F0C8FF2504189E6C76229AA5441B2EBE87C90F250417F7D5D602AAA5441574D791091F250414FAE25AA2AAA54417B14AE1791F25041C3F528AC2AAA5441813A026391F25041E2246AD32AAA5441571B8C9191F250414C15AFEA2AAA5441DE170A9791F25041084687EE2AAA5441A7F26B4993F25041ABCBE3D02BAA544172AD8F2294F25041ABDD5F162CAA544112A8170995F25041ABDD5F162CAA544167DA76AA95F250410B7929BA2BAA5441C2D7BA1D96F250415BE01BA32BAA54415D710CA896F25041CF7AA1D32AAA5441DC1FF2CF96F25041C037B5B52AAA54417B14AEE796F2504148E17A942AAA5441C9C75CF596F25041A139A5992AAA5441FED5420497F25041E8AE788E2AAA54418506A2A597F2504115E293BC2AAA54410D37014798F250414C15AFEA2AAA54411C026EFF98F25041DE450E8C2BAA5441DA65E8CE99F25041ABDD5F162CAA5441DF3055879AF250414C4296722CAA5441F89113CA9BF25041F2DBE7FC2CAA5441D02965549CF250418E0B032B2DAA5441668E9BB09CF250410BA610422DAA5441AD8C23979DF25041F2DBE7FC2CAA5441D521B9949EF25041F2DBE7FC2CAA5441EC7067F89EF250418453250B2DAA54417B14AEB79FF2504185EB51F82CAA54413030B229A0F2504177EE565F2DAA5441D9190DD5A0F25041E33D62CC2DAA5441D9190DD5A0F250411907CF842EAA544157B41AECA0F250416005576B2FAA5441C0E5351AA1F25041BFCD079730AA5441C0E5351AA1F250410FCB4B0A31AA5441E58A66DEA0F25041276A4C4432AA54413D0AD7E3A0F2504148E17AD432AA5441AFC2FD94A0F25041941B184E33AA544139B5D678A0F25041C890C88F33AA5441B3C9500EA0F250418E74D01D34AA5441611D85EE9FF25041CBDDDA4E34AA5441611D85EE9FF25041C34C995538AA5441E8196ECE9FF250418096D8AD38AA54417B14AEB79FF2504185EB515839AA5441968AC7129FF250416A7538FD39AA5441F320FD079FF25041FAAC9B0B3AAA5441D521B9949EF25041C744ED953AAA544195764E689EF250416B89B1A73AAA54417B14AE379EF2504185EB51D83AAA54410CE6778F9DF250411489C3373EAA5441EB24D3E79DF2504171037AE83EAA54410FEFFB2C9EF250418F02BE5B3FAA54414622175B9EF250414E66382B40AA54414622175B9EF25041D59697CC40AA54417D5532899EF2504194FA119C41AA54417D5532899EF250417C9DF30342AA5441B81E858B9EF250410AD7A31042AA54417D5532899EF250416571471442AA54417D5532899EF25041E92C713D42AA54414622175B9EF25041525E8C6B42AA54416ACCFD319EF250416AF8DD9C42AA5441DDF7191A9DF25041F9F8405344AA5441F58D3DEA9CF25041DFF0EDC244AA5441987D4DB89CF25041621E77DF44AA54417B14AE279CF250410AD7A37045AA5441D1F7EC6C9BF25041116694FF48AA5441006156629BF25041A279A35A49AA54411FB002699BF25041A6B6547549AA5441BF3EEDAD9BF25041375C261D4AAA5441CD5276FC9EF25041060DC13E4BAA5441DB53B5E09FF25041285381004BAA54413D0AD723A0F250410AD7A3E04AAA5441BB855B29A0F250411D73F0E14AAA5441644E4256A0F25041E80D7DCB4AAA5441B980A1F7A0F25041D9D9A5104BAA5441B816F381A1F250415674B3274BAA544151D92CA1A1F2504103B56F3A4BAA5441B81E85BBA1F250410AD7A3404BAA54417CF027DBA1F25041138E395D4BAA5441A41737F5A1F250416F3EDC6C4BAA5441FF147B68A2F25041A771F79A4BAA54418645DA09A3F2504147D62DF74BAA54418F3FEB2CA3F250415C929DED4BAA54418124345BA3F2504163A0F4D74BAA5441D299C003A4F25041606014894BAA5441BE78F537A3F25041442AB5B042AA544130D77FD4A5F25041C762C01141AA544167090964A6F25041A4C987EB3EAA5441AEEE5985A6F25041C05F5A553EAA54414D4EF7AEA6F25041FC85C4993DAA54411AB432C1A6F25041037495473DAA5441B9337FC6A6F250418FCFB22F3DAA544168ECA3CBA6F25041637883183DAA5441C07D6AD4A6F2504169B1F4F03CAA5441F75F32DAA6F2504126DFE5D63CAA54419ED307BBA6F250416D0B26A83CAA5441596C15D2A6F250415E40B9EF3BAA5441909F3000A7F2504186A867653BAA544147E572DFA6F250419119B2523BAA5441F6285C2FA6F250410AD7A3203BAA5441F6285C2FA6F25041F237A38A3AAA544149A1A819A6F25041AE7AC4503AAA54419A089B02A6F25041D217060E39AA5441F6285C2FA6F250418B9AF8F436AA5441F6285C2FA6F2504148E17AC436AA5441F63C57EBA6F2504152921D1B34AA5441DB289611A7F25041E45FA89C32AA5441AC7CE20FA7F250418F31AEEA31AA5441080523E9A6F250416005576B2FAA54412B90DC07A7F25041FEFFA0A32EAA54417B14AE07A7F250410AD7A3902EAA54413AED380CA7F250418DA348872EAA54413F383E17A7F25041013DA63F2EAA5441293524C4A7F250416A41DAE52CAA54417DF1BA58A8F25041668964DA2BAA54413D0AD793A8F250410AD7A3602BAA544108A71EA7A8F25041BEA94A4D2BAA54416533ACAAA8F25041ED79E5462BAA54415695267AA9F250412E166B772AAA5441FB2E7804AAF25041984786A52AAA5441AE63008CAAF2504182C794342AAA5441F6285CDFAAF2504185EB51C829AA5441FF8CCD63ABF25041681F64FD29AA5441F15B5F8CABF25041101727042AAA54416E23542BADF250415286C5AC27AA54416E23542BADF250416B8DB5DF25AA54416E23542BADF2504120C4C04024AA5441B983BC0AADF25041BD4FB4F423AA5441F6285C8FACF250410AD7A35023AA54412CF07CB8ACF25041CFA2CA3423AA5441A18B02A1ACF25041116302FE22AA54411E53F73FAEF2504199667A1722AA54410D54E08AB0F25041C3F5283C22AA544165592C28B1F25041C3F5283C22AA54414FD834BEB3F250413B715A7D1EAA5441A40A945FB4F250419076D2961DAA544195D6BCA4B4F25041DBA8A9511DAA544103A65D03B4F2504154784AB01CAA544179D2A3E4B3F25041D3565F931CAA54413D0AD713B3F250410AD7A3001CAA5441EADD1998B2F250411069AFD21BAA5441E8AAEF6FB2F250410E7AC2C91BAA544124E8BA55B2F25041A63809BA1BAA5441F6285C6FB1F2504148E17A641BAA544186942433B1F25041499691301BAA5441981616FFB0F25041CCB055111BAA5441D9B29B2FB0F2504195E7E8581AAA5441BD250BF5AFF25041175A581E1AAA54413D0AD763AEF2504148E17AC418AA54417B14AEF7ADF25041C3F5284C18AA5441184F76E5ADF25041A4792B2318AA544158203AD8ADF25041C3ED941818AA54411657CD1FADF25041F5BEAD9016AA5441128C6067ACF250414AC425AA15AA5441162AE697ABF250416E61676714AA5441C1F786F6AAF250413263DF8013AA544102940C27AAF2504150353C6C12AA5441D36F1C16AAF2504150B7F33012AA5441909A94AFA9F250418637550311AA544144309257A9F25041ECA11E8810AA5441AECB5BFBA8F25041140ACDFD0FAA544185CC1788A8F25041F6DDA1020EAA5441BF995A20A8F25041837F17660BAA5441293524C4A7F250417053EC6A09AA5441A7CB5CDAA7F250414C837CDA08AA54417B14AEC7A7F25041C3F5285C08AA544189FDFEA4A7F2504107C8EED605AA54413869FB7EA7F25041FDC77A4605AA54413869FB7EA7F25041C1B0C11303AA54413D0AD773A7F2504148E17A4402AA54418AC6ED41A7F2504175A1521100AA5441E86BB70BA7F25041BD77D00FFFA9544177E01AD0A6F25041813976ACFEA95441F2A21716A6F25041E9D4CDD8FDA954410B09F9C8A5F25041A9E1F69EFDA954418F493CCBA5F250414F5A0852FDA954417B14AEB7A5F250410AD7A350FCA95441021DEDBDA3F250413AAAB1DEF7A95441DB7739ABA3F2504109F682C4F7A95441EF59AF62A3F25041C7B5EC24F7A9544147B9757EA2F250418893A5F7F5A9544132E36CA2A1F25041BF652ED5F4A954416819AF0EA1F25041EB9C7041F4A95441304AB0A3A0F2504175B8BECBF3A954414570BB65A0F250419FA55C95F3A954412CA682E29FF25041D6202E22F3A954410EFE18A69FF2504123F126EDF2A954413CB9AC589FF25041286E89B9F2A95441FAEF3FA09EF2504100D9F3BBF1A9544111B6CB6A9EF250414CC6C509F1A954417B14AED79DF2504185EB5108F0A95441FAD4B5BC9CF25041CC542B83EEA954418791B5039CF25041A617ABDCEDA95441D9842C919BF25041B7443CE7ECA954417B14AE379BF25041C3F5286CECA95441F6285C5F9AF2504148E17AF4EBA95441471B3F389AF2504156143B75EBA954411746460A9AF250415CB81F3AEBA95441B81E85EB98F250410AD7A350EAA95441FC950E8098F250411FBFD6F7E8A95441322D016698F2504138CFF1C8E8A954416880CC4C98F2504165BFECBAE8A954416EF8863698F25041567B89AEE8A954413C04B63198F2504160B2DBABE8A95441086C948E97F2504157297B75E8A95441651ECB5F97F25041196C1937E8A95441F6285C2F97F25041C3F5281CE8A9544191775E1E97F2504171E2DDDFE7A95441FED5420497F2504120600EBDE7A95441A5CF44F796F25041E12E1E55E7A95441B81E85AB96F2504185EB5148E6A95441F06A53C796F25041FB1393D5E5A954414A081ABF96F250419802C893E5A9544189CEB6F696F2504114E10412E5A9544146BBEB0297F250413B5BA5DFE4A95441813B35ED96F250412A6FAAAFE3A954414A081ABF96F2504108A5F983E2A95441D2AEC6CA96F25041313835ECE1A95441599A9BAF96F25041ECBA18BEE0A95441049B6A9D96F2504196BD5475E0A954417B14AE3795F250410AD7A3C0DDA954412C94537294F2504157D9899EDDA95441EA12820B94F25041904E1BA7DDA9544163E2226A93F250413551D733DDA954411A4A731993F2504168B985A9DCA954412E492FA692F2504113872608DCA95441D545355E92F25041D67C3648DBA954413D0AD74392F250410AD7A320DBA95441A3DE7B3092F250417C1348CEDAA954412FB3DD1B92F2504190F44C97DAA954416A79811892F2504132CE4168DAA95441D8F5788591F25041DF1BA5F6D7A95441F7E1683A91F2504197ECC04DD7A95441B3552CC290F250414AABDD37D7A95441FA1D0C5290F250412432AC2DD7A954416F6E19C88FF25041798ECE0ED8A95441BDD09FBC8FF25041D6CF8821D8A95441F3876EAD8FF250414160EB3FD8A9544139EF60968FF250412C612FB3D8A95441BC54537F8FF25041452B58F8D8A9544139EF60968FF25041048FD2C7D9A95441F3876EAD8FF250414A8D5AAEDAA95441BC54537F8FF25041B889E294DBA95441BC54537F8FF25041F9524F4DDCA9544161570F0C8FF250414F85AEEEDCA954415C8CA2538EF25041904E1BA7DDA954416BC0790E8EF25041AE4D5F1ADEA954414DC1359B8DF25041357EBEBBDEA95441FDC3F1278DF25041BDAE1D5DDFA95441C690D6F98CF25041CC798A15E0A95441769392868CF2504153AAE9B6E0A954419EFB40FC8BF25041DF0F6486E1A9544162FDB8158BF2504116D9D03EE2A954415867678B8AF25041B73D079BE2A95441E4951A178AF2504103A72DD5E2A95441B81E85EB89F2504148E17AF4E2A95441CA76649889F2504139181028E3A954417B04A94889F2504176A1816AE3A95441BDA02E7988F250419EA0C5DDE3A95441FC33BA4A88F250415C671CF7E3A954414349873287F25041CF59FBA4E4A95441BD7347F186F2504189375BDBE4A954413543E84F86F25041E4349F4EE5A95441E01089AE85F250411B68BA7CE5A9544159E0290D85F25041489BD5AAE5A954419A7CAF3D84F250416B65FEEFE5A95441084C509C83F25041DACB344CE6A95441F950608583F2504143C9AC57E6A954417B14AE0783F2504185EB51A8E6A95441A56C45E682F25041A13A3AA7E6A954410481E3E382F2504170306BA8E6A954417C50844282F2504170306BA8E6A954416D85178A81F25041F8CA78BFE6A95441E654B8E880F2504148C8BC32E7A95441C855747580F25041B62EF38EE7A95441AA56300280F25041579329EBE7A95441315AA81B7FF250418EC64419E8A954413CC3121E7EF250413E5F5230E8A95441B492B37C7DF2504157297B75E8A95441C33039AD7CF250417F28BFE8E8A95441D82FF5397CF2504166F4E72DE9A95441B465CCF47BF250413E8C39B8E9A95441CE99A3AF7BF2504175BF54E6E9A9544119CC7A6A7BF25041FCEFB387EAA95441BECE36F77AF25041CA870512EBA954416A7E00B17AF25041CC91243AEBA95441B81E858B7AF250410AD7A370EBA9544192CE0FBF78F250419A6520C3EBA954412BD7407D78F2504188EB7FE1EBA95441BDDAB89677F2504110868DF8EBA954412BAA59F576F25041B1EAC354ECA95441D677FA5376F25041474FFAB0ECA954419F44DF2576F250416F4E3E24EDA954417211C4F775F250412EB2B8F3EDA95441415715F175F2504122418AF7EDA954417B14AEE775F2504185EB5128EEA9544157A4368575F25041E0142E35EEA95441E0E0645675F25041C416EF4FEEA95441B38062A073F25041FB490A7EEEA95441299129FF72F25041D85A8E89EEA95441B81E85AB72F2504148E17A94EEA95441B541319372F250417FA94491EEA954419A1FA45D72F25041B5E21795EEA9544159245C4672F250419FE51F87EEA954414DF5366171F250416E4DDF68EEA954418689CAEC70F25041FB490A7EEEA954419527501D70F2504197E3D321EEA95441B9C491DA6EF2504188186769EDA95441E12C40506EF250416F4E3E24EDA954411495EEC56DF25041474FFAB0ECA9544134EC22E36DF250419D4223AAEBA954417B14AED76DF25041C3F5281CEBA954419D4DD7026FF25041A414C568EAA95441915CE3646FF250415C8B7D2BEAA9544150C05D3470F250414257A670EAA9544154F8683A71F2504171E07256E9A95441709430A771F250419C7A5FC0E7A95441E5BA18C071F25041EFFD4DC7E6A9544163FAF8C671F25041DF761FC3E5A95441965437A571F25041F3687609E5A95441CD8752D371F25041C6087453E3A95441F97315D871F25041E66BA53BE3A95441F6285CDF71F2504185EB5128E2A95441AD8663B771F250413FD98CE8E0A95441965437A571F250419911DC9FE0A954411D85964672F250410D161046DFA95441D54B9C6072F25041DF414515DFA95441B81E850B73F250410AD7A390DDA95441B81E855B74F2504148E17A34DCA95441B81E855B74F250418A482C63D9A95441607F484D74F25041F52D1485D8A95441C047F97875F25041FF967E87D7A95441D86303B675F25041C1F7B8E4D6A95441C26177D875F2504111ADBC16D6A95441DD463DEC75F25041E16A538CD5A954417EAB734876F25041A0A1E6D3D4A954419CAAB7BB76F250417DD735A8D3A95441B150F32C77F25041C7B9208DD2A954413D0AD7A377F2504148E17A54D1A95441952FAF0E78F25041B6011EBDD0A9544133A6831578F250416A1475AFD0A954410AD4262A79F25041BA4E8010CFA954412431479D79F25041D6547188CEA954413D0AD7E379F2504148E17A24CEA95441279BF9167AF25041397A9EF8CDA95441006BBC277AF250418D84CFE4CDA95441F60152257BF250411F8847FECCA9544155CA02517CF2504129F1B100CCA954415A7368B97CF25041C42F20B6CBA954417B14AED77CF25041C3F5289CCBA95441C81D70DB7CF250419D91D19DCBA95441DCFA61F27CF25041CEF36D8DCBA954413D0AD7037EF250410AD7A320CCA954413CC3121E7EF250416124CD2ECCA9544173F62D4C7EF250419C225515CDA95441F0903B637EF25041471DDDFBCDA954415AC256917EF25041BA4E8010CFA954415AC256917EF250417BF6393DCFA95441F6285C9F7EF25041C3F5288CCFA9544122287D6F7EF25041944E64D8CFA95441B95D20357EF25041514A4C6AD0A95441642BC1937DF25041A512FD95D1A9544164956F097DF25041CDA79293D2A954413C962B967CF25041DD72FF4BD3A954411E97E7227CF2504164A35EEDD3A9544146FF95987BF250412307D9BCD4A95441BECE36F77AF25041E16A538CD5A954418AA264BB7AF25041A63A2DBED5A95441D2BB6C357AF250416E5D8393D6A95441006BBC277AF250410E3504B8D6A954417C6FCBF779F2504195C0A7F5D6A95441B81E85CB79F25041C3F5283CD7A95441BD0E6EBD79F250413017B240D7A95441AB385D8679F25041FF967E87D7A95441D643BC1979F25041C7C36375D7A95441F36E7C0479F2504159DF3A7CD7A95441D97AE9C178F250419214A991D7A954419D6A205D78F25041BD8A40CBD7A954411F1C462578F25041F50F720BD8A954412F2BE30878F250413633122CD8A954417ED85AD077F250417893066ED8A9544123DB165D77F2504104F9803DD9A95441F7A7FB2E77F250413BC2EDF5D9A9544105DCD2E976F250414A8D5AAEDAA95441E6E4B58576F250413719833ADBA95441F6285C9F75F25041C3F5286CDDA95441B8499D5575F250415D0A2407DFA954418814DE4A75F25041BDAE1D5DDFA95441B104493A75F2504172ED719FDFA9544151E1C21C75F25041F914FB43E0A9544151E1C21C75F25041D044F7CDE0A95441B5B1A7EE74F2504149417FB4E1A954416B68A3BF74F25041A45BF34AE2A95441106E217D74F250416A5898BDE3A95441474B719274F250419E361768E4A95441474B719274F2504143D068F2E4A95441F21812F173F25041489BD5AAE5A954416AE8B24F73F2504120332735E6A95441E3B753AE72F250412FFE93EDE6A95441C7FEFB7272F2504166BF864CE7A954419B00B0DE71F25041F1B7C194E8A95441BB22BEB071F2504166F4E72DE9A954410755956B71F250413E8C39B8E9A954410755956B71F2504188DB48F3EAA95441F2D7369471F25041881809ECEAA954411388910172F25041ED7C86D8EAA95441787AF21873F250412D3EAEA6EAA95441607F484D74F25041C5BC9859EAA95441CB9E922D75F25041104AA747EAA95441F6285C3F75F2504148E17A44EAA954414AFC6C4E75F25041DA750645EAA9544165779C8D76F250415C8B7D2BEAA954410DC5BEC276F250415C8B7D2BEAA954413EC5C31378F25041E177D637E9A95441FB7268E777F25041579329EBE7A95441E23E912C78F25041CB2DAF1BE7A9544183A3C78878F2504143FD4F7AE6A954410AD4262A79F250416B65FEEFE5A954415F0686CB79F25041BC9F0951E4A954413771F0CD78F250419E73DE55E2A954413771F0CD78F2504108767A07E2A954417B14AEB778F2504148E17AD4E1A954413771F0CD78F250416560A9B7E1A954413771F0CD78F25041DF0F6486E1A95441C9A14F6F79F25041D044F7CDE0A95441379ED7557AF2504103ADA543E0A95441DC19DA857AF2504185E3E02FE0A954413D0AD7D37AF250410AD7A300E0A954416B374E187BF2504180F592F3DFA9544137CBBEDD7BF25041717C46A2DFA9544118996B847CF25041D1ADC563DFA95441757F7AA77CF25041DF41B14EDFA954415FBE4E187DF25041710EABF0DEA954410A964E7C7DF25041963E9759DEA95441518A65F87DF2504183431E9EDDA954415AC256917EF25041AE207892DCA95441E012A21D7FF2504108FC19E3DBA95441F6285C2F7FF2504185EB51C8DBA95441837C60387FF25041FDF7ABC1DBA9544109F2F9A57FF250411725AC38DBA9544132878FA380F2504190F44C97DAA95441BD825BFD81F250418B29E0DED9A95441547E275783F25041312C9C6BD9A954419F471CF684F2504154F6C4B0D9A95441E6F20C2185F25041634C3DC6D9A954413D0AD7B385F25041C3F528DCD9A9544101E76AE085F250414953F516DAA95441FE0FCD2186F25041A4F30824DAA9544108A61EAC86F25041EBF1900ADBA95441D63D703687F250417222F0ABDBA95441F0DF347A87F250414C657933DCA954413C1BA89B87F250412C63985FDCA9544144D18D1A89F25041B889E294DBA9544121344C5D8AF250419A8A9E21DBA95441600693968AF250410571CCFCDAA95441E2AEA6158CF25041A6442CEED9A95441E48F1A6D8DF25041DBF93CCAD8A9544196A245298EF25041289B9B76D8A954418A29900B8FF250410A6CBED6D7A95441B267BAC68FF2504131458552D7A954411B1D04AB90F25041919AF6A0D6A95441EABD782591F25041F185534FD6A9544103B9757A91F25041E27EF8CCD5A95441E61A2ECB91F250415A3AF4EAD4A95441FF4E058691F25041B4A0A260D4A95441E14FC11291F25041E13D6C04D4A9544186527D9F90F25041A53FE41DD3A954410F283D6790F25041C7C7837ED2A95441B81E854B90F250410AD7A350D2A95441B20D482590F2504145A8A2C3D1A95441B9BA2B1590F25041A512FD95D1A9544130AA451490F2504155D9E984D1A954413D0AD70390F2504185EB5148D1A954413A34170B90F25041D92077D6D0A9544131201EFE8FF25041ABB0FADFCFA954410E83DC4091F25041831B65E2CEA95441867F642792F25041FCEA0541CEA95441F280CDBE92F2504183948D0ECEA954417B14AEF792F2504185EB51E8CDA95441834B5A6693F25041B42C9D2EC9A954415D06056A93F25041C5601BC6C8A95441BDFFFB5A93F250412DB110B5C8A95441C57F3C5093F25041C9FFE1A8C8A95441A47EA89A92F2504133004EF3C7A95441A0B33BE291F250412F35E13AC7A95441E880F27392F2504111DB8572C6A95441B81E858B92F2504148E17AC4C4A95441A47EA89A92F2504172B1CEA4C4A95441A47EA89A92F250418AD8569EC4A95441C7AF1E0E93F2504146192CA4C3A95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>463875 - 349559
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -63 </desc>
+<a>
+01060000000200000001030000000100000023000000000000B071F25041EC51B86E21AA5441713D0A576DF25041000000901BAA5441C3F5286C68F25041B81E850B16AA54417B14AEC760F25041EC51B8EE0FAA54410AD7A3405AF25041333333330CAA544114AE474154F25041EC51B8AE09AA5441F6285C5F51F250410000001009AA5441E17A147E51F250417B14AE270AAA54417B14AE974BF25041D7A370CD09AA54417B14AE874AF25041AE47E1FA09AA54416666669649F25041295C8F820AAA5441295C8FC248F2504114AE47B10CAA54419A99993946F25041AE47E10A0CAA5441E17A14DE44F25041C3F528FC0BAA5441713D0A4744F25041666666660DAA54419A99990943F25041F6285CDF0DAA5441F6285C8F40F25041333333A30DAA54415C8FC22540F2504185EB51580EAA5441B81E85DB41F25041EC51B80E11AA54419A99992945F25041EC51B81E12AA54419A99992945F250415C8FC2C513AA544148E17AC44AF250419A9999A916AA5441295C8FF24BF250419A9999B917AA5441EC51B82E4CF250419A9999C918AA54418FC2F5984DF2504114AE475119AA5441295C8F124FF25041E17A148E1AAA54416666661654F25041713D0A071BAA544152B81E3555F2504152B81E351CAA5441D7A370FD5AF25041713D0A371EAA5441B81E857B62F250415C8FC2451EAA544148E17A1466F25041D7A370ED20AA5441D7A3709D67F25041D7A370ED20AA5441C3F528EC6BF25041D7A370FD21AA54410AD7A3F071F25041E17A14EE21AA5441000000B071F25041EC51B86E21AA5441010300000001000000880100007B14AEF795F2504148E17AE42BAA54417B14AEE796F2504148E17A942AAA54413D0AD7A398F25041C3F5283C2BAA54413D0AD76399F2504185EB51082CAA54413D0AD7639CF25041C3F5284C2DAA54417B14AEB79FF2504185EB51F82CAA54413D0AD7B3A0F25041C3F528DC2DAA54413D0AD7E3A0F2504148E17AD432AA5441B81E85DB9FF25041C3F5286C34AA54417B14AEE79FF250410AD7A3F037AA54417B14AEB79FF2504185EB515839AA54417B14AE379EF2504185EB51D83AAA5441F6285C8F9DF2504185EB51383EAA54417B14AE079EF250410AD7A3403FAA5441B81E858B9EF250410AD7A31042AA5441F6285CCF9CF2504185EB51C844AA54417B14AE279CF250410AD7A37045AA5441B81E855B9BF2504148E17A5449AA5441F6285CAF9BF250410AD7A3204AAA54417B14AE579CF2504148E17AD44AAA54413D0AD7439EF2504148E17AC44BAA54413D0AD723A0F250410AD7A3E04AAA5441B81E85BBA1F250410AD7A3404BAA54417B14AEB7A2F2504148E17A244CAA5441F6285C1FA4F25041C3F5287C4BAA54413D0AD7B3A5F250415C8FC20542AA5441B81E852BA7F2504185EB51683BAA5441F6285C2FA6F250410AD7A3203BAA5441F6285C2FA6F2504148E17AC436AA54413D0AD713A7F2504185EB518833AA54417B14AE07A7F250410AD7A3902EAA54413D0AD793A8F250410AD7A3602BAA54417B14AE47A9F25041C3F528AC2AAA54413D0AD713AAF250410AD7A3D02AAA5441F6285CDFAAF2504185EB51C829AA54413D0AD793ABF250410AD7A3102AAA5441B81E852BADF25041C3F528DC27AA54413D0AD743ADF250410AD7A34024AA5441F6285C8FACF250410AD7A35023AA54417B14AE27AEF25041C3F5283C22AA54417B14AE87B1F25041C3F5283C22AA5441C3F528BCB4F25041333333F31DAA5441F6285CCFB4F2504185EB51381DAA54413D0AD713B3F250410AD7A3001CAA5441F6285C6FB1F2504148E17A641BAA54413D0AD763AEF2504148E17AC418AA54417B14AEF7ADF25041C3F5284C18AA54417B14AE37ADF25041C3F5289C16AA5441F6285C1FAAF25041C3F5284C12AA54413D0AD793A8F250410AD7A3C00DAA54417B14AEC7A7F25041C3F5285C08AA54413D0AD773A7F2504148E17A4402AA5441B81E852BA7F2504148E17A14FFA95441F6285CCFA5F2504185EB5188FDA954417B14AEB7A5F250410AD7A350FCA954417B14AE77A3F250410AD7A340F7A954413D0AD743A1F2504185EB5158F4A954417B14AE579FF2504185EB51A8F2A954417B14AED79DF2504185EB5108F0A954417B14AE379BF25041C3F5286CECA95441F6285C5F9AF2504148E17AF4EBA95441F6285C2F9AF2504185EB5158EBA95441B81E85EB98F250410AD7A350EAA954413D0AD77398F250410AD7A3D0E8A95441F6285C2F97F25041C3F5281CE8A95441B81E85AB96F2504185EB5148E6A95441B81E850B97F25041C3F528BCE4A95441B81E85AB96F250410AD7A390E0A954417B14AE3795F250410AD7A3C0DDA95441B81E85DB93F2504148E17A84DDA954413D0AD74392F250410AD7A320DBA95441F6285C5F91F2504148E17A54D7A954417B14AE5790F2504148E17A24D7A954413D0AD7738FF2504185EB5198D8A954413D0AD7738FF2504148E17A34DCA95441B81E857B8DF25041C3F528BCDEA95441F6285CBF8BF2504148E17AA4E1A95441B81E85EB89F2504148E17AF4E2A954417B14AE3786F250410AD7A340E5A95441B81E85DB84F25041C3F5287CE5A954417B14AE0783F2504185EB51A8E6A954413D0AD79381F25041C3F5289CE6A954417B14AED77FF25041C3F528ECE7A95441F6285CDF7DF2504148E17A34E8A954417B14AE177CF250410AD7A330E9A95441B81E858B7AF250410AD7A370EBA954417B14AE6777F250410AD7A300ECA95441F6285C2F76F2504148E17AB4ECA954417B14AEE775F2504185EB5128EEA95441B81E85AB72F2504148E17A94EEA954413D0AD7E370F2504185EB5158EEA95441B81E85FB6DF2504185EB51D8ECA954417B14AED76DF25041C3F5281CEBA95441F6285C3F6FF2504148E17A44EAA95441F6285C2F70F250410AD7A380EAA954417B14AE3771F250410AD7A360E9A95441B81E85BB71F2504148E17A74E7A95441F6285CDF71F2504185EB5128E2A95441F6285CAF71F2504185EB51A8E0A95441B81E850B73F250410AD7A390DDA95441B81E855B74F2504148E17A34DCA95441B81E855B74F2504148E17AA4D8A95441F6285C9F75F25041C3F5286CD7A95441B81E85DB75F2504148E17A04D6A954413D0AD7A377F2504148E17A54D1A954413D0AD7E379F2504148E17A24CEA954417B14AED77CF25041C3F5289CCBA954413D0AD7037EF250410AD7A320CCA95441F6285C9F7EF25041C3F5288CCFA95441B81E85CB79F25041C3F5283CD7A95441B81E857B78F2504185EB51A8D7A95441B81E858B77F25041C3F528BCD8A95441F6285C9F75F25041C3F5286CDDA954417B14AE3774F250410AD7A340E5A954417B14AEB772F2504148E17AB4E6A954417B14AE6771F25041C3F5289CE9A95441F6285C4F71F2504185EB51F8EAA95441F6285C3F75F2504148E17A44EAA95441F6285C8F76F250410AD7A350EAA95441F6285C3F78F2504185EB5118E9A95441F6285C0F78F25041C3F5281CE8A95441B81E857B78F2504148E17AB4E6A954413D0AD72379F2504185EB5118E6A954417B14AED779F2504185EB5168E4A954417B14AEB778F2504148E17AD4E1A954413D0AD78379F25041C3F528CCE0A954413D0AD7D37AF250410AD7A300E0A95441F6285CCF7BF250410AD7A3D0DFA95441B81E85FB7CF25041C3F5281CDFA95441F6285C2F7FF2504185EB51C8DBA954417B14AE2781F2504148E17A54DAA954417B14AEA782F2504148E17AC4D9A954413D0AD7C384F2504185EB51B8D9A954413D0AD7B385F25041C3F528DCD9A95441F6285C9F87F2504148E17A64DCA954413D0AD7638AF250410AD7A320DBA954417B14AE1791F2504148E17A64D6A95441B81E85CB91F250410AD7A350D5A95441B81E85CB91F25041C3F528CCD4A95441B81E854B90F250410AD7A350D2A954413D0AD70390F2504185EB5148D1A95441B81E851B90F2504148E17AD4CFA954417B14AEF792F2504185EB51E8CDA95441F6285C6F93F25041C3F528CCC8A954417B14AE0792F2504148E17A34C7A954413D0AD77392F2504148E17A74C6A95441B81E858B92F2504148E17AC4C4A95441F6285C0F93F250410AD7A3B0C3A95441B81E85EB92F2504185EB5148C2A954417B14AE4791F25041C3F5289CC2A95441B81E850B91F2504148E17AF4C1A954413D0AD77392F25041C3F5281CBEA95441F6285C4F92F250410AD7A390BCA954417B14AE0792F2504148E17A64BBA95441F6285CAF92F25041C3F5284CBBA954417B14AEB793F2504185EB51C8BAA954417B14AE8793F2504185EB51E8B8A954417B14AE1794F25041C3F5288CB7A954413D0AD71395F25041C3F5288CB7A95441F6285CBF94F250410AD7A340B5A95441F6285C3F96F2504148E17AE4B3A95441B81E859B97F2504148E17A54B3A954417B14AED797F2504148E17AA4B1A954417B14AE6795F2504100000030B0A95441B81E850B94F25041C3F528BCAEA954417B14AE7794F2504148E17AC4ACA95441B81E852B95F2504148E17A14ABA954417B14AE0795F2504148E17A74A8A95441B81E855B98F2504100000000AAA95441F6285CFF99F25041C3F528DCA9A954413D0AD7C39CF25041C3F528ECA8A954413D0AD7E39DF25041C3F528ECA8A95441333333D3A0F2504100000060A4A954417B14AE97A1F2504148E17A64A3A95441F6285CCF9CF2504148E17A94A3A95441B81E856B9DF2504185EB5138A2A95441B81E850B9DF2504100000070A0A954413D0AD7739EF25041C3F5282C9FA954417B14AE779DF25041000000309EA95441F6285C0F9FF25041000000209CA95441F6285C8FA0F25041000000A097A954417B14AEB7A5F2504148E17A7493A95441F6285CDFA7F2504185EB51C890A95441F6285C2FA9F2504185EB510890A954417B14AE27ABF2504185EB51D88CA954413D0AD763ABF2504148E17A048BA954413D0AD753B8F25041C3F528DC82A954417B14AED7B8F25041C3F528AC7FA95441F6285CAFB9F2504185EB51087EA95441F6285CBFBBF2504185EB51387BA954417B14AED7BEF2504185EB51E879A95441F6285C3FC0F250410000006077A95441F6285C5FC1F2504185EB51E876A95441F6285C4FC2F2504185EB51F875A95441B81E855BC2F2504148E17A3473A95441F6285CBFC1F25041000000F071A95441F6285C3FC9F2504148E17A1475A954413D0AD723CAF2504148E17A9473A95441F6285C1FCBF25041C3F5285C72A954413D0AD7C3CFF250410000009071A954413D0AD7B3D0F25041000000B06FA954413D0AD793D2F25041C3F5282C6FA954417B14AE27D5F25041C3F5283C6EA954413D0AD7F3D5F2504185EB51F86CA95441F6285CAFD7F25041C3F528CC6BA954413D0AD7A3DAF2504185EB51486BA954417B14AE27DEF25041C3F5280C6BA95441F6285CEFDFF25041000000E069A954417B14AE37E0F2504185EB513869A954413D0AD7E3E2F2504148E17A046AA9544152B81EF5E5F25041A4703DFA68A95441E17A148EEBF250413D0AD70367A954413D0AD723EEF2504185EB51F869A95441B81E857BF0F25041C3F5287C6AA95441B81E852BF5F2504148E17A346DA954413D0AD7A3F5F25041C3F5282C6CA95441B81E859BFAF2504148E17A246EA9544100000020FBF25041000000206FA95441B81E85BBFBF2504185EB51786EA95441B81E858BFBF25041C3F5280C6BA954417B14AEE7F9F25041000000F068A9544100000020F8F2504148E17A7466A954413D0AD723F7F2504185EB518864A954417B14AE07F8F2504185EB518861A954417B14AE77F7F25041C3F5285C60A95441B81E855BF8F25041C3F5280C5FA95441000000D0F9F2504185EB51E85EA95441B81E85FBFAF250410000000059A954417B14AE57FCF2504148E17A3455A9544100000050FEF25041C3F5284C52A954413D0AD77301F35041000000704FA954413D0AD75303F35041000000F04DA954413D0AD78303F3504148E17A544DA95441B81E85FB00F3504148E17A844DA95441D7A370EDFAF250411F85EB814CA9544152B81EA5F9F250418FC2F5984CA95441B81E85EBF5F2504185EB51784DA9544100000080F2F2504185EB51784DA954417B14AE27F0F25041C3F528FC4DA954413D0AD723EEF25041000000B04EA954417B14AE37ECF25041000000E04EA95441F6285C4FECF250410000002051A95441B81E852BECF2504148E17A7451A954417B14AE67E9F2504148E17A3452A954417B14AE67E6F25041C3F528BC51A954417B14AEE7E4F25041C3F528EC51A954413D0AD773E3F25041C3F528AC52A95441F6285C9FE1F25041C3F528DC52A95441B81E856BDFF25041C3F5281C52A954417B14AE17DFF25041C3F5285C51A95441B81E851BD5F25041C3F528EC51A954417B14AE77CDF25041C3F528FC53A954417B14AE87C9F250410000002054A95441F6285C7FC5F2504185EB512855A954417B14AE77C1F250410000007055A954417B14AEA7BEF2504185EB51A856A95441B81E853BBEF25041C3F5281C58A95441F6285CFFBAF2504148E17A8459A95441B81E856BB8F25041C3F5289C59A954417B14AE67B3F25041000000405BA954413D0AD723B2F2504185EB51285BA954417B14AE47AFF2504185EB51185CA95441B81E85DBAEF2504148E17A845CA954413D0AD743ADF25041C3F5286C5CA95441F6285CBFACF2504185EB51E85BA95441F6285CBFACF2504185EB51285BA954413D0AD7F3ABF25041C3F5282C5AA95441B81E85DBA8F2504185EB51F85AA954413D0AD753A6F25041C3F5286C5CA954417B14AEF7A4F25041000000605CA95441B81E852BA1F2504148E17AD45DA95441B81E859BA0F2504148E17AA45DA954417B14AEF79EF2504148E17AD45DA95441F6285C8F9DF25041000000305FA954417B14AE6798F2504148E17A0461A95441F6285CAF95F25041C3F5281C61A954413D0AD7F393F2504148E17AA460A95441F6285C6F93F2504185EB510860A95441C3F5284C8FF25041C3F5285C61A954413D0AD7A38CF2504185EB510863A95441F6285CDF89F2504148E17AD463A954413D0AD7038AF2504185EB518864A95441F6285CFF8AF2504185EB514865A95441F6285CDF89F2504148E17A7466A95441F6285CCF84F25041C3F5280C68A95441F6285C9F83F25041B81E85BB65A95441C3F5285C7AF2504114AE477169A95441D7A370CD69F250419A9999E970A95441F6285CCF60F25041C3F528FC74A95441B81E857B60F2504185EB51F875A954413D0AD7635DF2504148E17AB477A954413D0AD7635DF25041C3F528EC78A954413D0AD7735CF25041C3F5283C7AA954417B14AEF759F2504148E17AE47AA95441B81E857B57F2504148E17AE47AA954413D0AD75355F25041000000607AA95441F6285C9F54F25041C3F528DC79A95441C3F528BC4EF250417B14AEC77BA954411F85EBC146F250418FC2F5487EA954417B14AED746F25041000000407FA954413D0AD7F345F2504185EB514880A954413D0AD7A344F2504148E17A5480A95441F6285C2F43F2504148E17AF47FA95441F6285CAF41F2504148E17AE480A954413D0AD7B340F25041000000F080A95441F6285CDF3BF2504185EB518882A954413D0AD73339F25041C3F5284C85A954413D0AD79333F25041000000B087A954413D0AD78334F25041000000108BA954417B14AE2736F2504185EB51988DA95441B81E856B34F25041C3F528CC8FA954417B14AE3732F2504185EB512891A95441F6285C2F31F250410000006092A95441F6285CEF31F250410000006095A954417B14AE1731F250410000007097A95441666666C632F250411F85EB919AA95441F6285CBF35F25041AE47E1FAA0A95441C3F5281C38F25041CDCCCCFCA6A95441666666F63BF250413D0AD783AEA95441F6285C9F3CF25041C3F5281CAFA95441F6285C1F3EF2504148E17AF4AFA954417B14AE873FF250410AD7A370B2A95441B81E85DB42F2504148E17A64B8A954413D0AD75346F2504148E17A94BEA95441F6285CCF48F2504148E17AC4C1A95441B81E854B4BF2504148E17A74C3A95441B81E85AB51F2504185EB51F8C6A95441B81E856B52F2504185EB5138C6A95441F6285C3F54F25041C3F5282CC6A95441F6285CEF55F25041C3F5288CC6A954417B14AEC756F2504148E17A14C6A95441F6285C5F58F25041C3F528BCC6A954417B14AED75BF2504185EB5128CDA954413D0AD7135CF25041C3F528FCCEA95441B81E85AB5AF25041C3F5284CD0A954417B14AEC756F25041C3F528DCD0A95441F6285C7F54F25041EC51B87ED1A954417B14AEE752F2504185EB5108D2A954419A9999C951F250413D0AD753D3A95441295C8FF251F250413D0AD763D5A95441CDCCCC7C52F250419A999959DCA95441F6285CBF52F2504148E17A14E1A95441F6285CFF54F2504148E17AF4E2A954413D0AD75355F25041C3F5285CEAA954417B14AEE754F250410AD7A300ECA954413D0AD75355F2504148E17A04F1A954413D0AD74356F2504185EB5178F2A954417B14AE6759F25041C3F5285CF3A95441F6285C2F5BF250410AD7A3B0F6A954413D0AD7F35AF25041C3F528BCFFA954413D0AD75358F25041C3F5285C02AA54417B14AE5757F25041C3F5288C02AA5441713D0A7754F25041B81E852B04AA54418FC2F5785CF250413333333307AA54411F85EB3163F25041666666F60AAA54413D0AD7C363F2504148E17AB40AAA5441B81E85FB64F250410AD7A3500BAA54413D0AD76366F250410AD7A3B00BAA54413D0AD73369F2504185EB51980EAA5441F6285C1F6BF250410AD7A30010AA5441F6285C0F6CF25041C3F528FC10AA5441B81E85CB6DF2504148E17AA411AA5441B81E858B6EF250410AD7A30013AA5441B81E85AB6FF2504185EB513814AA5441B81E856B70F25041C3F528AC15AA5441B81E853B73F25041C3F5284C18AA54417B14AE7773F250410AD7A3F019AA5441F6285C0F75F25041C3F528EC1AAA54417B14AEB775F250410AD7A3601CAA5441B81E852B77F25041C3F528BC1DAA5441F6285C7F77F2504185EB51481FAA5441F6285C9F78F2504185EB516820AA54413D0AD75379F2504185EB51B821AA54413D0AD72379F2504148E17A4423AA54417B14AE977AF2504148E17A3424AA5441F6285C9F7BF2504185EB510826AA5441B81E850B7CF250410AD7A3D027AA54417B14AE277EF2504148E17AD426AA5441F6285C2F7FF25041C3F5287C27AA5441B81E855B80F2504148E17AB428AA5441F6285C4F83F25041C3F5287C27AA54413D0AD72385F2504185EB518827AA54413D0AD70387F250410AD7A3D027AA5441B81E85CB88F2504185EB51B827AA5441F6285C1F8CF250410AD7A39028AA54413D0AD7638DF250410AD7A32029AA5441B81E852B8FF250410AD7A38029AA5441B81E85EB8FF2504185EB51582AAA54417B14AE1791F25041C3F528AC2AAA54417B14AE5793F2504185EB51D82BAA54417B14AE7794F2504148E17A442CAA54417B14AEF795F2504148E17AE42BAA5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B040000C7AF1E0E93F2504146192CA4C3A954416FB483EB92F25041DE335248C2A9544165A65EE492F25041B874BF49C2A95441A718D00492F250419EAA2BA3C2A95441071E481E91F250419EAA2BA3C2A954417F833A0791F25041177ACC01C2A954417020DD0B91F25041E12C70F5C1A95441B81E850B91F2504148E17AF4C1A95441C75E6A5991F25041387EAF1FC1A954418E4EA7BF91F25041C11A86D8BFA954415BE6F84992F25041C1ED9E50BEA95441A899747292F250412E16260DBEA95441F6285C4F92F250410AD7A390BCA954417B14AE0792F2504148E17A64BBA95441626A5F2192F2504151EAC060BBA954412FB3DD1B92F250413190D040BBA95441730D1BC692F250413190D040BBA9544179CE1B7A93F250415DF907E7BAA954418DBD3DB693F250413786EEB9BAA954417B14AE8793F2504185EB51E8B8A954417547B78C93F250414AEC24DCB8A954417547B78C93F25041593546A4B8A9544142DF081794F250412C6B9578B7A95441AAD95FEE94F25041C3F5288CB7A954413D0AD71395F25041C3F5288CB7A9544133AC2F1395F250410CFF9C87B7A954411A775AA194F25041F03F260AB5A95441100EF09E95F25041690FC768B4A954418E8DA1CD95F25041AD1F984BB4A95441F6285C3F96F2504148E17AE4B3A95441086B568596F250417C7D89C7B3A95441F23B93B396F25041AAAB4C99B3A954412E3A1B9A97F25041C4DF2354B3A954418F6640D397F250411E29D6A1B1A95441298393C497F250415A961399B1A95441E5A16B4997F25041554C0670B1A954414A27E2F896F25041BAD17C1FB1A954412848C3A595F25041DB040F55B0A95441C775404E95F2504146EB472DB0A95441D779F6C794F2504105706B85AFA95441B81E850B94F25041C3F528BCAEA954417B14AE7794F2504148E17AC4ACA95441B9D7F48694F2504100B3C89FACA95441C2AAD39594F25041C52BFF4DACA95441BAB0610895F25041561EE368ABA95441950C982195F2504134E0522CABA95441DAF3282995F250418CBD3AE8AAA954417B14AE0795F2504148E17A74A8A95441A3C9041195F2504162EAD078A8A9544112A8170995F25041849E8D29A8A95441EF0AD64B96F25041100408F9A8A95441E5A16B4997F2504160014C6CA9A954415D9EF32F98F25041890090DFA9A95441D9C4076098F25041B26E9DFFA9A95441EEF4FBA898F25041AA1F63F9A9A9544168F467FF98F250415E7D02F2A9A95441BD66A45B99F25041890090DFA9A95441449703FD99F2504152CD74B1A9A95441DB92CF569BF25041E3663E55A9A954414DC4726B9CF250419369FAE1A8A95441C6564CDC9DF25041D9D0ECCAA8A954412A81FFBDA0F25041617A0EEEA3A95441B3C85516A1F25041E10F8D69A3A95441F6285CCF9CF2504148E17A94A3A954410CC540E89CF250412C18FB5CA3A954412127A9C79CF25041DA49AF4CA3A954413E26ED3A9DF25041351A0C38A2A954418A7D75329DF25041BDFC1629A1A95441B81E850B9DF2504100000070A0A95441EBFC151E9DF250410954505FA0A954412DC158189DF2504149ECE03CA0A954412258EE159EF2504167BE3D289FA95441435AF1A99DF25041C84543629EA954417B14AE779DF25041000000309EA9544129408AEF9DF2504194E7C3949DA95441C3BC24729EF25041B32DDCD09CA954414AED83139FF250416D2F54EA9BA95441821ABF0AA0F250415C2BD72D99A9544106F15B88A0F25041D1A700B597A95441B35B8FF299F25041E783EBE19CA954419E6766C690F2504192EC51F8A4A95441827B144E88F25041295C8F32ABA954415536AA5884F250418DABF8D4B3A954419D95DFBB85F25041A1D2EDE4ACA95441BA5287BF87F25041A7777302A9A95441603D6CB48BF25041A3BC22D8A5A954418CB564E290F25041A961A8F5A1A95441A5CD86C896F25041E5AA057E9CA95441FC83D2669DF25041B9320D5097A954416BBBC971A3F2504182F7BE6B92A95441F139C72BA5F25041FABA6BFB90A954410F3114EDAAF2504170811D178CA9544130B94263ABF250413A47FC088BA954413D0AD763ABF2504148E17A048BA954413610C365ABF25041D3A444038BA95441A91EFE6DABF25041958374F08AA954419FFAB123ACF25041645E828B8AA954414F82C4B4ACF25041FE5B09308AA95441FB7E10D5ACF250414822AC1B8AA9544174C2BBEDACF2504174291E0C8AA954419A1F6654AEF250414B621EFF88A954413A2BDC8EB2F25041D1A17EE484A9544165788727B8F25041B01BD90A80A954414F8884D6B8F25041BA935AB37FA954417B14AED7B8F25041C3F528AC7FA954410A3D8207B9F2504140A20E4F7FA954418DB8BC85B9F25041E0159EED7DA9544155FA07F3B9F2504132880AAC7DA95441491DAF82BBF2504188580F8B7BA954410B56A4E2BBF25041E1FD86F17AA95441058BCEDBBCF25041DEBFB1BF7AA954418C90A6AEBEF250413928B8F979A95441DE503E3EBFF250415C8EF81379A9544133AEF03CC0F25041606B405677A95441880BA33BC1F25041663DE7D676A954417B700EDBC1F2504100A49F6C76A95441B2FCCB24C2F25041C917E22276A95441BCFB8B4FC2F250411F1972ED75A954413F20E250C2F25041C2CBA59F75A95441ACBB1252C2F250416074625A75A9544178EA2B52C2F25041F18CA85475A954417BDF5952C2F25041685D354A75A954411FC55C52C2F2504120BA8C4975A95441406B6F52C2F250419F294F4575A954412FB77E52C2F2504116BDD44175A954417067553AC2F25041E2CD58F974A954417067553AC2F250418D70A6FA73A95441CCDF2C59C2F25041C080F7BC73A95441B81E855BC2F2504148E17A3473A9544198D4C3EBC1F250414287444C72A954415CEE259BC1F25041BD6A6BDD71A95441AA793119C3F250413EE59A7C72A95441707F6C36C5F2504178F7765B73A954417A978332C8F250410EEBD59974A9544176BA3BF0C9F250416725D0DA73A95441D2E9946FCAF25041C05FCA1B73A954417629C8DDCAF25041212097AD72A95441F6285C1FCBF25041C3F5285C72A954419152DB57CBF250414D71745272A95441CE0C4D2DCCF250416B02181D72A9544168077D8ECCF250416B02181D72A95441D738AC72CEF25041D65EEBC971A954413C20F82AD0F2504102D4BDC170A954413D0AD7B3D0F25041000000B06FA95441F0037AB5D0F25041E3EB8CAF6FA95441B2DFCFBBD0F25041C316149F6FA95441DD62B850D4F250415440716D6EA95441B6F17C78D5F250413950FBBB6DA954413D0AD7F3D5F2504185EB51F86CA95441C76BDF02D6F25041CA7525EE6CA9544190ECBC39D6F2504142E6CC986CA954416F207F4AD7F25041FCCC6B106CA95441F6285CAFD7F25041C3F528CC6BA95441BAE2591AD9F2504164C8E58C6BA95441E098E98EDBF25041E2D8C60C6AA95441AC139DC1E3F25041EC9B606C67A9544190824A68E9F250413FB09B5A65A95441687D2330EDF25041B24FDB3165A9544108770672EDF25041FBE190FD64A954417D028B45F7F25041DE78D4FE63A9544171B6F860F7F25041E23642BA63A954417B14AE07F8F2504185EB518861A954417B14AE77F7F25041C3F5285C60A954411FD16A86F7F250419D3B6D4660A95441101C3A85F7F2504176EF914360A95441101C3A85F7F25041E3D5E20360A95441E0C072EAF7F250413FB8E8B25FA95441B81E855BF8F25041C3F5280C5FA954416794B36DF8F25041B41B690A5FA954412D85F683F8F25041F7DF4EE55EA95441D9A73116F9F2504119C032FA5EA9544116A127B0F9F250412E5762EB5EA95441CBE799D1F9F25041723F3CE05EA95441B81E85FBFAF250410000000059A954417B14AE57FCF2504148E17A3455A9544100000050FEF25041C3F5284C52A954412CE90DCBFEF25041032314DC51A954416FA1661900F350413E2AC35E4DA95441AF2240CFFFF25041A6CD64524DA95441D3221102FAF2504197D8889C4CA95441A3033434F9F250417B8668B34CA9544107DDF90AF9F25041DD9A10BD4CA95441DB325BB0F8F25041DA624AD24CA9544199509804F8F25041200DE71B4DA95441E53A77F5F6F25041B52B073A4DA95441E642D3D2F6F250418A4C24424DA9544113BDE967F5F2504178CE1CBB4DA95441DEB5CCB5F4F2504185EB51784DA954416D9EE8D6F2F2504185EB51784DA95441BD9C63ABF2F25041E4B46D7B4DA9544134183EEBF1F25041D452FD984DA9544151A56370F0F250418D1E31EC4DA954419ED8C86CEFF25041907E513D4EA954413D0AD723EEF25041000000B04EA95441F290E040EDF25041F3B022C64EA954417F42A8F2ECF2504159C4B0D94EA95441409A5F78ECF2504159C4B0D94EA954417B14AE37ECF25041000000E04EA954412E7DAB38ECF250418A0014F84EA9544127817253ECF250418012BE984FA9544127817253ECF25041E93CB03651A954416BF00A42ECF250414705643F51A95441B81E852BECF2504148E17A7451A954417B14AE67E9F2504148E17A3452A954418DF136D7E7F25041738CBDF551A95441671B4BB9E7F25041738CBDF551A95441EEC8087AE7F25041A96524E751A954417B14AE67E6F25041C3F528BC51A954410C94C94EE5F25041D18545DF51A95441BA398F5DE4F2504106A66C3552A954413458CB4FE4F250419D1A963A52A954413D0AD773E3F25041C3F528AC52A95441F44B6C32E2F25041A79117CD52A95441A08C3181E1F250418FF579F452A95441565D4EA8E0F25041E65D088852A954418515C73FE0F250414F3D706452A9544166BAB883DFF2504106A66C3552A95441F1A17679DFF250414375E82052A95441B81E856BDFF25041C3F5281C52A9544135791023DFF25041BD243B7651A954416C25C18FDEF250415A3AD16351A9544105CBCF15DDF25041A6C71B7951A95441926A8AB8DBF25041AEE4369651A954414B402611DBF25041AEE4369651A954412B77C4A7D8F25041998CFEB851A954415C5470DDD7F25041A4FFE5D551A954416804B0A6D6F25041A4FFE5D551A95441B81E851BD5F25041C3F528EC51A954417B14AE77CDF25041C3F528FC53A954416CC050BDCCF25041AC4AC90254A9544125DDC3CCCBF250413F78E53254A954418405F993CAF250419BF0751654A954417B14AE87C9F250410000002054A95441BE0DD338C6F250413234D5F854A95441B5F430F4C5F250418D54CA1155A95441AA6879C7C5F250412804DB1555A95441F6285C7FC5F2504185EB512855A95441E383DE4EC4F25041B6C6793D55A95441B795E0D6C3F25041206E795155A954412E11082FC3F25041206E795155A954417B14AE77C1F250410000007055A954414E2CF719BFF25041DBD7BE7656A95441D1FC5ABDBEF25041F77EBCAF56A95441DBE1AB7DBEF25041A70128EE57A9544169DD6241BEF250411428FE0758A95441B81E853BBEF25041C3F5281C58A954419B8D452CBCF2504139CE8E0159A954415F731802BBF25041E0B8F1AB59A95441F5482664B9F25041AF45C9CB59A954414FCB7096B7F2504173D2A0EB59A95441DAE7F76CB6F25041A5BB1E435AA954417B14AE67B3F25041000000405BA9544195A0C5BDB2F25041EA6D93335BA9544137A4135DB2F2504154E3E3495BA95441F5E20187B1F2504140B3BA5B5BA95441713A2921B1F25041A13E1D7D5BA95441744F14D7B0F2504146E465955BA954418EB8C98CB0F25041D221C0AD5BA954414E3F3E22B0F25041C1F4ACD05BA954411DF7B580AFF25041A2BFC8285CA9544185E57712AFF250417B1A884D5CA95441B81E85DBAEF2504148E17A845CA954410A2B4E7EAEF250412C58EB7E5CA954413C012262AEF2504104664F885CA954412FA0F88AADF25041023F67705CA954413D0AD743ADF25041C3F5286C5CA95441F6285CBFACF2504185EB51E85BA95441F6285CBFACF25041D9D6F4945BA95441964858A4ACF250412370BB695BA954414669316CACF25041F1D046C15AA954412730292DACF2504120232E735AA954410089F2E8ABF25041F97BF72E5AA95441CCE1FFC4ABF2504102C43A385AA9544122391546ABF250410707FF6A5AA954417D9BFAC7A9F25041CBAE85CA5AA9544191C015E9A8F25041C1C9340A5BA95441EB074C2BA7F25041714CA0485CA95441CFB93E6CA6F2504135D977685CA954412542455AA6F2504135D977685CA954413D0AD753A6F25041C3F5286C5CA954411C0123EAA5F2504135D977685CA95441EC1194E1A4F2504135D977685CA954417CD4176EA2F25041661CE3585DA95441056FC611A2F2504121CF0B875DA954419B500EA3A1F250414121AEA65DA95441B81E852BA1F2504148E17AD45DA9544125394502A1F2504117EABAC65DA95441D69C4D14A0F2504117EABAC65DA954417A683DCB9FF2504137E24ABC5DA954417B14AEF79EF2504148E17AD45DA954419B7E57FA9DF250419392D1C85EA9544193E583569EF250418BF9FD245FA954412343C3619DF2504175D22F405FA95441F6D974579BF25041975E9AF95FA95441F003C8FA9AF25041A762BA2360A954417A84E9A29AF250414702B23960A95441355D0EA099F25041E886969560A954415F8BC89D98F25041C4CB762261A95441F5658C7096F25041C4CB762261A95441492F653096F250412398C51761A95441F6285CAF95F25041C3F5281C61A954412829B85095F25041F53E9F0261A954414FC871F294F25041F53E9F0261A95441337A643394F25041C4B0C7E260A9544169E6EF0894F2504144412CAA60A954413D0AD7F393F2504148E17AA460A95441F6285C6F93F2504185EB510860A954416B7ABE5693F25041F6C9371060A95441048D3CF691F250413B9718A360A95441540AD1B790F25041F53E9F0261A9544138BCC3F88FF2504188584E4261A95441FEE94AFB8DF25041A5C10A4162A954414E67DFBC8CF25041CC0F180063A954413801F7A68CF2504122765A0663A954413D0AD7A38CF2504185EB510863A954411EADCB1F8AF25041F56DE9C163A954413D0AD7038AF2504185EB518864A954417E050E398AF250417A24F1B064A95441E53CED1E8BF25041FBE190FD64A954417F4AD4ED8AF25041D810F03A65A95441F6285CFF8AF2504185EB514865A9544129DF7C558AF2504197565DF965A95441C8D330208AF25041AA64FC3B66A954411394F20E8AF25041C317E24266A95441F6285CDF89F2504148E17A7466A954419B69BA9388F250417BFCCCDC66A95441CA74E00288F25041F840E11A67A9544191BD164586F250418C753F9A67A95441E11FFCC684F2504115AA9D1968A95441945EC62784F25041C7CDB83A67A95441945EC62784F2504134B409FB66A95441014517E883F250416FF1D35B66A95441E4C0ABA982F250416F0C839B66A95441D257EFAA81F25041C7CDB83A67A954415348AC4C80F25041500217BA67A95441E91DBAAE7EF25041D936753968A95441C8CDB1B47DF25041332D341A68A95441E0881C6D7DF25041292DE03668A9544193E284B27BF25041008582F868A95441793527D678F25041A6229D766AA95441983F93B777F250412F57FBF56AA95441AC49FF9876F25041C28B59756BA9544130D6B5AC73F25041062874F36CA9544145E0218E72F25041179130F26DA954413377658F71F2504118ACDF316EA95441DB9A80B070F25041ABC58E716EA95441C931C4B16FF25041706D15D16EA95441DD3B30936EF25041F9A173506FA95441C1ED22D46DF25041BD2E4B706FA954419A9F15156DF250418CBB22906FA95441871BAAD66BF2504115F0800F70A954419C40C5F76AF250419E3F8ECE70A954414F7F8F586AF2504132593D0E71A95441C62F829969F2504159A74ACD71A954416E6E4CFA68F250414EC2F90C72A9544116AD165B68F25041E2DBA84C72A954418D78B8DB67F25041136A806C72A95441F9435A5C67F25041A6832FAC72A95441A18224BD66F250416B1007CC72A954418F1968BE65F250412FB88D2B73A95441100A256064F25041C2D13C6B73A954413C9A91E460F25041688A062975A954416D632C8E60F2504195A937C075A95441B81E857B60F2504185EB51F875A95441680ECA6760F2504109BE630376A95441A865336560F250415465EB0776A95441F8E2C7265FF25041D2B4F8C676A9544153605CE85DF25041BE8FDDA577A954415345ADA85DF25041BEAA8CE577A954413D0AD7635DF25041465B0FB478A954413D0AD7635DF25041C3F528EC78A954417409C7405DF25041435D3F1D79A95441CA104F295DF250410147A76379A95441724F198A5CF250418096B4227AA95441B3FC8E855CF2504151A25A237AA954413D0AD7735CF25041C3F5283C7AA95441E8C83DAB5AF250411566F8B47AA95441EBBB6AED59F250419DFF70217BA95441C393229C59F2504148E17AE47AA95441B81E857B57F2504148E17AE47AA954413D0AD75355F25041000000607AA95441514F782B55F250412A8482427AA9544186F33CC553F25041BEF06FDB7FA9544131D3B60851F25041434401CB8CA9544159C7291B4FF25041421F935D97A95441162B0F9D4DF25041060DFDB29FA954415C83883D4DF2504123BC9CA7A8A954416EEC443C4EF25041749AC39EAFA95441953A52FB4EF250413EE53BF9B3A954418B55013B4FF25041560C9932B9A95441186AD00E50F250411EEBC314C6A95441B05D296F50F25041E17EE349C6A95441D5038EE350F25041C88C108AC6A954411C57FA3851F25041EA242AB9C6A95441EB7A3D6851F25041019388A1C6A95441F50CBF5E52F2504148FD1745C6A95441B81E856B52F2504185EB5138C6A95441BE4D00AB52F25041CA85AB36C6A954412E32072653F25041DB5F2A22C6A95441409BC32454F25041DB5F2A22C6A95441CFC5854954F250419E186B2EC6A95441F0E6EFE755F2504133AE828AC6A954419E821C0256F250411B25C981C6A954417B14AEC756F2504148E17A14C6A954413996DFF456F25041E2731127C6A954416548210157F25041DB5F2A22C6A95441E348416057F25041EBB3BFE2C5A95441B8ABFC8557F250412D60DD3BC6A954419626E1A058F25041D40DF3A5C6A954413D86600F59F2504163ECC6A7C7A95441509B067E59F250413655BDCEC8A954417B14AED75BF2504185EB5128CDA95441DCEAD4FC5BF250419ADB3B49CEA95441F521DC145CF25041B82167D9CEA954411F567E105CF25041FCB822E2CEA954413D0AD7135CF25041C3F528FCCEA9544103F630F55BF25041AA76BD18CFA95441F00007F05BF250415A601123CFA9544103EE6CC65BF25041936F5944CFA95441B81E85AB5AF25041C3F5284CD0A9544185F7C5CA57F2504163D8B1B6D0A954415367E2C357F250418ABF39B8D0A95441224A647856F250412CFEE301D1A95441F70B110855F25041C85D6370D1A95441640C68E153F25041BBDCB703D2A954417E0EBFBA52F25041AE5B0C97D2A95441926E950252F250419AFB354FD3A95441926E950252F2504180F9DE75D4A9544183FCEA2152F250416A628B70D5A954418859DC1A52F250416F95D071D5A95441E9E8BE3F52F250419F466F2CD7A9544101A34D2D52F250414D82F9BFD7A954412A679E2652F25041EFD0D102D8A95441CDCCCC7C52F250419A999959DCA95441F6285CBF52F2504148E17A14E1A95441A5A0B8D152F25041AFEFC723E1A954416C5ED36653F250412475278CE1A95441B9F21BDE53F250416A097003E2A95441F6285CFF54F2504148E17AF4E2A954410E57760355F25041AF488850E3A954414313722155F25041C38CFCA2E3A95441D7A0544655F25041BD742EA5E4A9544182E8C55855F25041AC7925F1E5A9544182E8C55855F2504108F13918E7A95441D7A0544655F25041549DE186E7A95441D7A0544655F25041AD20DD2CE8A95441588CFE6155F25041AF14F6ADE8A954417A468D4F55F25041156F458BE9A954417A468D4F55F250411BC9EFFBE9A954413D0AD75355F25041C3F5285CEAA95441A162BB4B55F25041A538AE7BEAA95441F6FC1B3D55F250414E2CCBC4EAA95441B727C80555F25041C15D6ED9EBA954416D6F391855F25041FC0E0D94EDA95441F6FC1B3D55F25041B721EB5EEEA954417A468D4F55F25041526E53BDEFA95441588CFE6155F25041F79DF6D1F0A95441B91BE18655F25041E1BABB1BF1A954416078122656F25041021E334AF2A954413D0AD74356F2504185EB5178F2A95441463B9C7656F250415CD6B586F2A95441650A0AD557F250411D6C5AD6F2A954410057723359F25041371A0245F3A95441E23BFD5959F25041588C4758F3A954417B14AE6759F25041C3F5285CF3A95441D9C8D76959F25041B2D23460F3A954414C031AA259F2504176EF557CF3A954417A61776D5AF25041CD05E845F5A95441F6285C2F5BF250410AD7A3B0F6A954410FA2680D5BF25041954674D9FBA954411E839D2E5BF250410C191790FCA9544106C90E415BF250415AB9D77FFDA954411E839D2E5BF2504122A30982FEA954411E839D2E5BF25041BAFB585FFFA954411E839D2E5BF2504104D1AC96FFA95441C5FFA1885AF250415D54A83C00AA5441833635D059F25041941D15F500AA5441E0713D8959F25041208EC22601AA54413D0AD75358F25041C3F5285C02AA54414958FA7957F25041FD96A18502AA544169E1D52557F250416AD2B3AF02AA544116B72BEB54F25041C19C765704AA54418FC2F5785CF250413333333307AA54410844574E5FF2504159CB2FC908AA5441AFC2987D60F250417053EC6A09AA544151EE65B262F250414DB6AAAD0AAA54417EB816DE63F250414DB6AAAD0AAA544129B39EC464F250419DB3EE200BAA54419D73E02065F2504102CC975A0BAA54413D0AD76366F250410AD7A3B00BAA5441E9D98D9466F2504166CDF4E20BAA544165DE0D3367F25041FC7B9F4C0CAA5441EC0E6DD467F2504183ACFEED0CAA5441743FCC7568F2504193776BA60DAA5441AB72E7A368F25041F6DDA1020EAA544119D91D0069F250411AA8CA470EAA5441F5BD592C6AF2504144117F4E0FAA5441F6285C1F6BF250410AD7A30010AA5441A2B287836BF2504181449E6910AA5441A501D1E16BF2504123D539B610AA5441A0DBBE556CF25041185FD51611AA5441D0A9164B6DF250413B2DCF7311AA5441FA60170B6EF250414B6ACFB311AA5441E12C40506EF2504150353C6C12AA544118605B7E6EF25041AB3280DF12AA54415A29C8366FF25041AFFDEC9713AA5441FA8DFE926FF250410AFB300B14AA5441E68E420670F25041A594829514AA5441B9F1786270F250412CC5E13615AA5441F024949070F25041CD29189315AA54414557F33171F25041DCF4844B16AA54414F244AAD71F2504172727AD816AA54418892E93B72F2504140C8975D17AA544154B8B17472F25041EB55438E17AA544190B6395B73F25041FA20B04618AA54413046338973F25041280073FB19AA5441BEB3D39373F250417C6101021AAA544139B4569C73F25041CBB941071AAA544176AF492875F250416D7F3AE31AAA54414E479BB275F250410E7AC2C91BAA544109E0A8C975F25041B31314541CAA5441C743239976F25041A4758E231DAA544194DB742377F250419076D2961DAA544186A79D6877F2504181D84C661EAA544178C8C99577F25041078BBF5E1FAA5441103A6EA577F250419FFC636E1FAA5441440B183878F25041C66C26D71FAA5441E56F4E9478F2504167D15C3320AA54418009A01E79F25041A3CFE41921AA544168FAB82F79F25041C981147521AA54413D0AD75379F2504185EB51B821AA5441926E344179F25041B3561F5222AA5441926E344179F2504139CBB07322AA5441926E344179F25041F82E2B4323AA54419639A1F979F25041D0C67CCD23AA5441B69759FD79F25041C090DED023AA54417B14AE977AF2504148E17A3424AA544131C0B5C67AF250416187EC8724AA5441BECE36F77AF250413EC304B424AA544146FF95987BF25041EEF2A7C825AA54417D32B1C67BF25041F2BD148126AA5441B465CCF47BF25041EE1F8F5027AA54414F06052D7CF25041786500C127AA54417B14AE277EF2504148E17AD426AA544107F4413F7EF25041003A79E326AA544173F62D4C7EF2504193224BDD26AA5441FA268DED7EF250410289813927AA5441412515D47FF2504189B9E0DA27AA5441C855747580F25041CA824D9328AA5441451D691482F250410C1FD3C327AA5441547E275783F250416BBA9C6727AA54416349940F84F250416BBA9C6727AA5441EF44606985F25041EE1F8F5027AA54413543E84F86F25041A2EDB79527AA54415DD87D4D87F250410C1FD3C327AA54418A38800389F250415286C5AC27AA5441035490E489F25041C482B0FF27AA5441F6285C1F8CF250410AD7A39028AA5441A2EBFBE68CF250410C063BE928AA54419E2828848DF25041981A9F1D29AA544194BFBD818EF25041014CBA4B29AA544161570F0C8FF2504189E6C76229AA5441B2EBE87C90F250417F7D5D602AAA5441574D791091F250414FAE25AA2AAA54417B14AE1791F25041C3F528AC2AAA5441813A026391F25041E2246AD32AAA5441571B8C9191F250414C15AFEA2AAA5441DE170A9791F25041084687EE2AAA5441A7F26B4993F25041ABCBE3D02BAA544172AD8F2294F25041ABDD5F162CAA544112A8170995F25041ABDD5F162CAA544167DA76AA95F250410B7929BA2BAA5441C2D7BA1D96F250415BE01BA32BAA54415D710CA896F25041CF7AA1D32AAA5441DC1FF2CF96F25041C037B5B52AAA54417B14AEE796F2504148E17A942AAA5441C9C75CF596F25041A139A5992AAA5441FED5420497F25041E8AE788E2AAA54418506A2A597F2504115E293BC2AAA54410D37014798F250414C15AFEA2AAA54411C026EFF98F25041DE450E8C2BAA5441DA65E8CE99F25041ABDD5F162CAA5441DF3055879AF250414C4296722CAA5441F89113CA9BF25041F2DBE7FC2CAA5441D02965549CF250418E0B032B2DAA5441668E9BB09CF250410BA610422DAA5441AD8C23979DF25041F2DBE7FC2CAA5441D521B9949EF25041F2DBE7FC2CAA5441EC7067F89EF250418453250B2DAA54417B14AEB79FF2504185EB51F82CAA54413030B229A0F2504177EE565F2DAA5441D9190DD5A0F25041E33D62CC2DAA5441D9190DD5A0F250411907CF842EAA544157B41AECA0F250416005576B2FAA5441C0E5351AA1F25041BFCD079730AA5441C0E5351AA1F250410FCB4B0A31AA5441E58A66DEA0F25041276A4C4432AA54413D0AD7E3A0F2504148E17AD432AA5441AFC2FD94A0F25041941B184E33AA544139B5D678A0F25041C890C88F33AA5441B3C9500EA0F250418E74D01D34AA5441611D85EE9FF25041CBDDDA4E34AA5441611D85EE9FF25041C34C995538AA5441E8196ECE9FF250418096D8AD38AA54417B14AEB79FF2504185EB515839AA5441968AC7129FF250416A7538FD39AA5441F320FD079FF25041FAAC9B0B3AAA5441D521B9949EF25041C744ED953AAA544195764E689EF250416B89B1A73AAA54417B14AE379EF2504185EB51D83AAA54410CE6778F9DF250411489C3373EAA5441EB24D3E79DF2504171037AE83EAA54410FEFFB2C9EF250418F02BE5B3FAA54414622175B9EF250414E66382B40AA54414622175B9EF25041D59697CC40AA54417D5532899EF2504194FA119C41AA54417D5532899EF250417C9DF30342AA5441B81E858B9EF250410AD7A31042AA54417D5532899EF250416571471442AA54417D5532899EF25041E92C713D42AA54414622175B9EF25041525E8C6B42AA54416ACCFD319EF250416AF8DD9C42AA5441DDF7191A9DF25041F9F8405344AA5441F58D3DEA9CF25041DFF0EDC244AA5441987D4DB89CF25041621E77DF44AA54417B14AE279CF250410AD7A37045AA5441D1F7EC6C9BF25041116694FF48AA5441006156629BF25041A279A35A49AA54411FB002699BF25041A6B6547549AA5441BF3EEDAD9BF25041375C261D4AAA5441CD5276FC9EF25041060DC13E4BAA5441DB53B5E09FF25041285381004BAA54413D0AD723A0F250410AD7A3E04AAA5441BB855B29A0F250411D73F0E14AAA5441644E4256A0F25041E80D7DCB4AAA5441B980A1F7A0F25041D9D9A5104BAA5441B816F381A1F250415674B3274BAA544151D92CA1A1F2504103B56F3A4BAA5441B81E85BBA1F250410AD7A3404BAA54417CF027DBA1F25041138E395D4BAA5441A41737F5A1F250416F3EDC6C4BAA5441FF147B68A2F25041A771F79A4BAA54418645DA09A3F2504147D62DF74BAA54418F3FEB2CA3F250415C929DED4BAA54418124345BA3F2504163A0F4D74BAA5441D299C003A4F25041606014894BAA5441BE78F537A3F25041442AB5B042AA544130D77FD4A5F25041C762C01141AA544167090964A6F25041A4C987EB3EAA5441AEEE5985A6F25041C05F5A553EAA54414D4EF7AEA6F25041FC85C4993DAA54411AB432C1A6F25041037495473DAA5441B9337FC6A6F250418FCFB22F3DAA544168ECA3CBA6F25041637883183DAA5441C07D6AD4A6F2504169B1F4F03CAA5441F75F32DAA6F2504126DFE5D63CAA54419ED307BBA6F250416D0B26A83CAA5441596C15D2A6F250415E40B9EF3BAA5441909F3000A7F2504186A867653BAA544147E572DFA6F250419119B2523BAA5441F6285C2FA6F250410AD7A3203BAA5441F6285C2FA6F25041F237A38A3AAA544149A1A819A6F25041AE7AC4503AAA54419A089B02A6F25041D217060E39AA5441F6285C2FA6F250418B9AF8F436AA5441F6285C2FA6F2504148E17AC436AA5441F63C57EBA6F2504152921D1B34AA5441DB289611A7F25041E45FA89C32AA5441AC7CE20FA7F250418F31AEEA31AA5441080523E9A6F250416005576B2FAA54412B90DC07A7F25041FEFFA0A32EAA54417B14AE07A7F250410AD7A3902EAA54413AED380CA7F250418DA348872EAA54413F383E17A7F25041013DA63F2EAA5441293524C4A7F250416A41DAE52CAA54417DF1BA58A8F25041668964DA2BAA54413D0AD793A8F250410AD7A3602BAA544108A71EA7A8F25041BEA94A4D2BAA54416533ACAAA8F25041ED79E5462BAA54415695267AA9F250412E166B772AAA5441FB2E7804AAF25041984786A52AAA5441AE63008CAAF2504182C794342AAA5441F6285CDFAAF2504185EB51C829AA5441FF8CCD63ABF25041681F64FD29AA5441F15B5F8CABF25041101727042AAA54416E23542BADF250415286C5AC27AA54416E23542BADF250416B8DB5DF25AA54416E23542BADF2504120C4C04024AA5441B983BC0AADF25041BD4FB4F423AA5441F6285C8FACF250410AD7A35023AA54412CF07CB8ACF25041CFA2CA3423AA5441A18B02A1ACF25041116302FE22AA54411E53F73FAEF2504199667A1722AA54410D54E08AB0F25041C3F5283C22AA544165592C28B1F25041C3F5283C22AA54414FD834BEB3F250413B715A7D1EAA5441A40A945FB4F250419076D2961DAA544195D6BCA4B4F25041DBA8A9511DAA544103A65D03B4F2504154784AB01CAA544179D2A3E4B3F25041D3565F931CAA54413D0AD713B3F250410AD7A3001CAA5441EADD1998B2F250411069AFD21BAA5441E8AAEF6FB2F250410E7AC2C91BAA544124E8BA55B2F25041A63809BA1BAA5441F6285C6FB1F2504148E17A641BAA544186942433B1F25041499691301BAA5441981616FFB0F25041CCB055111BAA5441D9B29B2FB0F2504195E7E8581AAA5441BD250BF5AFF25041175A581E1AAA54413D0AD763AEF2504148E17AC418AA54417B14AEF7ADF25041C3F5284C18AA5441184F76E5ADF25041A4792B2318AA544158203AD8ADF25041C3ED941818AA54411657CD1FADF25041F5BEAD9016AA5441128C6067ACF250414AC425AA15AA5441162AE697ABF250416E61676714AA5441C1F786F6AAF250413263DF8013AA544102940C27AAF2504150353C6C12AA5441D36F1C16AAF2504150B7F33012AA5441909A94AFA9F250418637550311AA544144309257A9F25041ECA11E8810AA5441AECB5BFBA8F25041140ACDFD0FAA544185CC1788A8F25041F6DDA1020EAA5441BF995A20A8F25041837F17660BAA5441293524C4A7F250417053EC6A09AA5441A7CB5CDAA7F250414C837CDA08AA54417B14AEC7A7F25041C3F5285C08AA544189FDFEA4A7F2504107C8EED605AA54413869FB7EA7F25041FDC77A4605AA54413869FB7EA7F25041C1B0C11303AA54413D0AD773A7F2504148E17A4402AA54418AC6ED41A7F2504175A1521100AA5441E86BB70BA7F25041BD77D00FFFA9544177E01AD0A6F25041813976ACFEA95441F2A21716A6F25041E9D4CDD8FDA954410B09F9C8A5F25041A9E1F69EFDA954418F493CCBA5F250414F5A0852FDA954417B14AEB7A5F250410AD7A350FCA95441021DEDBDA3F250413AAAB1DEF7A95441DB7739ABA3F2504109F682C4F7A95441EF59AF62A3F25041C7B5EC24F7A9544147B9757EA2F250418893A5F7F5A9544132E36CA2A1F25041BF652ED5F4A954416819AF0EA1F25041EB9C7041F4A95441304AB0A3A0F2504175B8BECBF3A954414570BB65A0F250419FA55C95F3A954412CA682E29FF25041D6202E22F3A954410EFE18A69FF2504123F126EDF2A954413CB9AC589FF25041286E89B9F2A95441FAEF3FA09EF2504100D9F3BBF1A9544111B6CB6A9EF250414CC6C509F1A954417B14AED79DF2504185EB5108F0A95441FAD4B5BC9CF25041CC542B83EEA954418791B5039CF25041A617ABDCEDA95441D9842C919BF25041B7443CE7ECA954417B14AE379BF25041C3F5286CECA95441F6285C5F9AF2504148E17AF4EBA95441471B3F389AF2504156143B75EBA954411746460A9AF250415CB81F3AEBA95441B81E85EB98F250410AD7A350EAA95441FC950E8098F250411FBFD6F7E8A95441322D016698F2504138CFF1C8E8A954416880CC4C98F2504165BFECBAE8A954416EF8863698F25041567B89AEE8A954413C04B63198F2504160B2DBABE8A95441086C948E97F2504157297B75E8A95441651ECB5F97F25041196C1937E8A95441F6285C2F97F25041C3F5281CE8A9544191775E1E97F2504171E2DDDFE7A95441FED5420497F2504120600EBDE7A95441A5CF44F796F25041E12E1E55E7A95441B81E85AB96F2504185EB5148E6A95441F06A53C796F25041FB1393D5E5A954414A081ABF96F250419802C893E5A9544189CEB6F696F2504114E10412E5A9544146BBEB0297F250413B5BA5DFE4A95441813B35ED96F250412A6FAAAFE3A954414A081ABF96F2504108A5F983E2A95441D2AEC6CA96F25041313835ECE1A95441599A9BAF96F25041ECBA18BEE0A95441049B6A9D96F2504196BD5475E0A954417B14AE3795F250410AD7A3C0DDA954412C94537294F2504157D9899EDDA95441EA12820B94F25041904E1BA7DDA9544163E2226A93F250413551D733DDA954411A4A731993F2504168B985A9DCA954412E492FA692F2504113872608DCA95441D545355E92F25041D67C3648DBA954413D0AD74392F250410AD7A320DBA95441A3DE7B3092F250417C1348CEDAA954412FB3DD1B92F2504190F44C97DAA954416A79811892F2504132CE4168DAA95441D8F5788591F25041DF1BA5F6D7A95441F7E1683A91F2504197ECC04DD7A95441B3552CC290F250414AABDD37D7A95441FA1D0C5290F250412432AC2DD7A954416F6E19C88FF25041798ECE0ED8A95441BDD09FBC8FF25041D6CF8821D8A95441F3876EAD8FF250414160EB3FD8A9544139EF60968FF250412C612FB3D8A95441BC54537F8FF25041452B58F8D8A9544139EF60968FF25041048FD2C7D9A95441F3876EAD8FF250414A8D5AAEDAA95441BC54537F8FF25041B889E294DBA95441BC54537F8FF25041F9524F4DDCA9544161570F0C8FF250414F85AEEEDCA954415C8CA2538EF25041904E1BA7DDA954416BC0790E8EF25041AE4D5F1ADEA954414DC1359B8DF25041357EBEBBDEA95441FDC3F1278DF25041BDAE1D5DDFA95441C690D6F98CF25041CC798A15E0A95441769392868CF2504153AAE9B6E0A954419EFB40FC8BF25041DF0F6486E1A9544162FDB8158BF2504116D9D03EE2A954415867678B8AF25041B73D079BE2A95441E4951A178AF2504103A72DD5E2A95441B81E85EB89F2504148E17AF4E2A95441CA76649889F2504139181028E3A954417B04A94889F2504176A1816AE3A95441BDA02E7988F250419EA0C5DDE3A95441FC33BA4A88F250415C671CF7E3A954414349873287F25041CF59FBA4E4A95441BD7347F186F2504189375BDBE4A954413543E84F86F25041E4349F4EE5A95441E01089AE85F250411B68BA7CE5A9544159E0290D85F25041489BD5AAE5A954419A7CAF3D84F250416B65FEEFE5A95441084C509C83F25041DACB344CE6A95441F950608583F2504143C9AC57E6A954417B14AE0783F2504185EB51A8E6A95441A56C45E682F25041A13A3AA7E6A954410481E3E382F2504170306BA8E6A954417C50844282F2504170306BA8E6A954416D85178A81F25041F8CA78BFE6A95441E654B8E880F2504148C8BC32E7A95441C855747580F25041B62EF38EE7A95441AA56300280F25041579329EBE7A95441315AA81B7FF250418EC64419E8A954413CC3121E7EF250413E5F5230E8A95441B492B37C7DF2504157297B75E8A95441C33039AD7CF250417F28BFE8E8A95441D82FF5397CF2504166F4E72DE9A95441B465CCF47BF250413E8C39B8E9A95441CE99A3AF7BF2504175BF54E6E9A9544119CC7A6A7BF25041FCEFB387EAA95441BECE36F77AF25041CA870512EBA954416A7E00B17AF25041CC91243AEBA95441B81E858B7AF250410AD7A370EBA9544192CE0FBF78F250419A6520C3EBA954412BD7407D78F2504188EB7FE1EBA95441BDDAB89677F2504110868DF8EBA954412BAA59F576F25041B1EAC354ECA95441D677FA5376F25041474FFAB0ECA954419F44DF2576F250416F4E3E24EDA954417211C4F775F250412EB2B8F3EDA95441415715F175F2504122418AF7EDA954417B14AEE775F2504185EB5128EEA9544157A4368575F25041E0142E35EEA95441E0E0645675F25041C416EF4FEEA95441B38062A073F25041FB490A7EEEA95441299129FF72F25041D85A8E89EEA95441B81E85AB72F2504148E17A94EEA95441B541319372F250417FA94491EEA954419A1FA45D72F25041B5E21795EEA9544159245C4672F250419FE51F87EEA954414DF5366171F250416E4DDF68EEA954418689CAEC70F25041FB490A7EEEA954419527501D70F2504197E3D321EEA95441B9C491DA6EF2504188186769EDA95441E12C40506EF250416F4E3E24EDA954411495EEC56DF25041474FFAB0ECA9544134EC22E36DF250419D4223AAEBA954417B14AED76DF25041C3F5281CEBA954419D4DD7026FF25041A414C568EAA95441915CE3646FF250415C8B7D2BEAA9544150C05D3470F250414257A670EAA9544154F8683A71F2504171E07256E9A95441709430A771F250419C7A5FC0E7A95441E5BA18C071F25041EFFD4DC7E6A9544163FAF8C671F25041DF761FC3E5A95441965437A571F25041F3687609E5A95441CD8752D371F25041C6087453E3A95441F97315D871F25041E66BA53BE3A95441F6285CDF71F2504185EB5128E2A95441AD8663B771F250413FD98CE8E0A95441965437A571F250419911DC9FE0A954411D85964672F250410D161046DFA95441D54B9C6072F25041DF414515DFA95441B81E850B73F250410AD7A390DDA95441B81E855B74F2504148E17A34DCA95441B81E855B74F250418A482C63D9A95441607F484D74F25041F52D1485D8A95441C047F97875F25041FF967E87D7A95441D86303B675F25041C1F7B8E4D6A95441C26177D875F2504111ADBC16D6A95441DD463DEC75F25041E16A538CD5A954417EAB734876F25041A0A1E6D3D4A954419CAAB7BB76F250417DD735A8D3A95441B150F32C77F25041C7B9208DD2A954413D0AD7A377F2504148E17A54D1A95441952FAF0E78F25041B6011EBDD0A9544133A6831578F250416A1475AFD0A954410AD4262A79F25041BA4E8010CFA954412431479D79F25041D6547188CEA954413D0AD7E379F2504148E17A24CEA95441279BF9167AF25041397A9EF8CDA95441006BBC277AF250418D84CFE4CDA95441F60152257BF250411F8847FECCA9544155CA02517CF2504129F1B100CCA954415A7368B97CF25041C42F20B6CBA954417B14AED77CF25041C3F5289CCBA95441C81D70DB7CF250419D91D19DCBA95441DCFA61F27CF25041CEF36D8DCBA954413D0AD7037EF250410AD7A320CCA954413CC3121E7EF250416124CD2ECCA9544173F62D4C7EF250419C225515CDA95441F0903B637EF25041471DDDFBCDA954415AC256917EF25041BA4E8010CFA954415AC256917EF250417BF6393DCFA95441F6285C9F7EF25041C3F5288CCFA9544122287D6F7EF25041944E64D8CFA95441B95D20357EF25041514A4C6AD0A95441642BC1937DF25041A512FD95D1A9544164956F097DF25041CDA79293D2A954413C962B967CF25041DD72FF4BD3A954411E97E7227CF2504164A35EEDD3A9544146FF95987BF250412307D9BCD4A95441BECE36F77AF25041E16A538CD5A954418AA264BB7AF25041A63A2DBED5A95441D2BB6C357AF250416E5D8393D6A95441006BBC277AF250410E3504B8D6A954417C6FCBF779F2504195C0A7F5D6A95441B81E85CB79F25041C3F5283CD7A95441BD0E6EBD79F250413017B240D7A95441AB385D8679F25041FF967E87D7A95441D643BC1979F25041C7C36375D7A95441F36E7C0479F2504159DF3A7CD7A95441D97AE9C178F250419214A991D7A954419D6A205D78F25041BD8A40CBD7A954411F1C462578F25041F50F720BD8A954412F2BE30878F250413633122CD8A954417ED85AD077F250417893066ED8A9544123DB165D77F2504104F9803DD9A95441F7A7FB2E77F250413BC2EDF5D9A9544105DCD2E976F250414A8D5AAEDAA95441E6E4B58576F250413719833ADBA95441F6285C9F75F25041C3F5286CDDA95441B8499D5575F250415D0A2407DFA954418814DE4A75F25041BDAE1D5DDFA95441B104493A75F2504172ED719FDFA9544151E1C21C75F25041F914FB43E0A9544151E1C21C75F25041D044F7CDE0A95441B5B1A7EE74F2504149417FB4E1A954416B68A3BF74F25041A45BF34AE2A95441106E217D74F250416A5898BDE3A95441474B719274F250419E361768E4A95441474B719274F2504143D068F2E4A95441F21812F173F25041489BD5AAE5A954416AE8B24F73F2504120332735E6A95441E3B753AE72F250412FFE93EDE6A95441C7FEFB7272F2504166BF864CE7A954419B00B0DE71F25041F1B7C194E8A95441BB22BEB071F2504166F4E72DE9A954410755956B71F250413E8C39B8E9A954410755956B71F2504188DB48F3EAA95441F2D7369471F25041881809ECEAA954411388910172F25041ED7C86D8EAA95441787AF21873F250412D3EAEA6EAA95441607F484D74F25041C5BC9859EAA95441CB9E922D75F25041104AA747EAA95441F6285C3F75F2504148E17A44EAA954414AFC6C4E75F25041DA750645EAA9544165779C8D76F250415C8B7D2BEAA954410DC5BEC276F250415C8B7D2BEAA954413EC5C31378F25041E177D637E9A95441FB7268E777F25041579329EBE7A95441E23E912C78F25041CB2DAF1BE7A9544183A3C78878F2504143FD4F7AE6A954410AD4262A79F250416B65FEEFE5A954415F0686CB79F25041BC9F0951E4A954413771F0CD78F250419E73DE55E2A954413771F0CD78F2504108767A07E2A954417B14AEB778F2504148E17AD4E1A954413771F0CD78F250416560A9B7E1A954413771F0CD78F25041DF0F6486E1A95441C9A14F6F79F25041D044F7CDE0A95441379ED7557AF2504103ADA543E0A95441DC19DA857AF2504185E3E02FE0A954413D0AD7D37AF250410AD7A300E0A954416B374E187BF2504180F592F3DFA9544137CBBEDD7BF25041717C46A2DFA9544118996B847CF25041D1ADC563DFA95441757F7AA77CF25041DF41B14EDFA954415FBE4E187DF25041710EABF0DEA954410A964E7C7DF25041963E9759DEA95441518A65F87DF2504183431E9EDDA954415AC256917EF25041AE207892DCA95441E012A21D7FF2504108FC19E3DBA95441F6285C2F7FF2504185EB51C8DBA95441837C60387FF25041FDF7ABC1DBA9544109F2F9A57FF250411725AC38DBA9544132878FA380F2504190F44C97DAA95441BD825BFD81F250418B29E0DED9A95441547E275783F25041312C9C6BD9A954419F471CF684F2504154F6C4B0D9A95441E6F20C2185F25041634C3DC6D9A954413D0AD7B385F25041C3F528DCD9A9544101E76AE085F250414953F516DAA95441FE0FCD2186F25041A4F30824DAA9544108A61EAC86F25041EBF1900ADBA95441D63D703687F250417222F0ABDBA95441F0DF347A87F250414C657933DCA954413C1BA89B87F250412C63985FDCA9544144D18D1A89F25041B889E294DBA9544121344C5D8AF250419A8A9E21DBA95441600693968AF250410571CCFCDAA95441E2AEA6158CF25041A6442CEED9A95441E48F1A6D8DF25041DBF93CCAD8A9544196A245298EF25041289B9B76D8A954418A29900B8FF250410A6CBED6D7A95441B267BAC68FF2504131458552D7A954411B1D04AB90F25041919AF6A0D6A95441EABD782591F25041F185534FD6A9544103B9757A91F25041E27EF8CCD5A95441E61A2ECB91F250415A3AF4EAD4A95441FF4E058691F25041B4A0A260D4A95441E14FC11291F25041E13D6C04D4A9544186527D9F90F25041A53FE41DD3A954410F283D6790F25041C7C7837ED2A95441B81E854B90F250410AD7A350D2A95441B20D482590F2504145A8A2C3D1A95441B9BA2B1590F25041A512FD95D1A9544130AA451490F2504155D9E984D1A954413D0AD70390F2504185EB5148D1A954413A34170B90F25041D92077D6D0A9544131201EFE8FF25041ABB0FADFCFA954410E83DC4091F25041831B65E2CEA95441867F642792F25041FCEA0541CEA95441F280CDBE92F2504183948D0ECEA954417B14AEF792F2504185EB51E8CDA95441834B5A6693F25041B42C9D2EC9A954415D06056A93F25041C5601BC6C8A95441BDFFFB5A93F250412DB110B5C8A95441C57F3C5093F25041C9FFE1A8C8A95441A47EA89A92F2504133004EF3C7A95441A0B33BE291F250412F35E13AC7A95441E880F27392F2504111DB8572C6A95441B81E858B92F2504148E17AC4C4A95441A47EA89A92F2504172B1CEA4C4A95441A47EA89A92F250418AD8569EC4A95441C7AF1E0E93F2504146192CA4C3A95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>441941 - 246783
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -397 </desc>
+<a>
+0106000000010000000103000000010000000800000085EB511869F0504114AE4781662B55413D0AD77368F050410AD7A300632B55411F85EB3160F05041EC51B81E652B5541AE47E1CA61F050411F85EBF16E2B5541666666E662F05041E17A143E742B5541EC51B8AE65F05041EC51B87E732B5541713D0A3769F05041B81E855B722B554185EB511869F0504114AE4781662B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000F00000017909ECF68F05041F56FF6F4642B5541FF8F9ECF68F05041756FF6F4642B554132D052D660F050415AD274DE682B5541AE47E1CA61F050411F85EBF16E2B55412F80F6E962F0504143731F3D742B5541C662180663F0504145B99035742B55412AA0147564F050417125FAD2732B5541F690B8D565F05041334B2972732B5541216A005568F050411E7E4EA4722B5541C5FA2DD768F05041B753637A722B5541713D0A3769F05041B81E855B722B55415582682A69F05041A413CD846D2B554128EB1C2169F0504180B1C4E5692B55418FC2F51869F050415C8FC2D5662B554117909ECF68F05041F56FF6F4642B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>441941 - 282026
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -397 </desc>
+<a>
+0106000000010000000103000000010000000800000085EB511869F0504114AE4781662B55413D0AD77368F050410AD7A300632B55411F85EB3160F05041EC51B81E652B5541AE47E1CA61F050411F85EBF16E2B5541666666E662F05041E17A143E742B5541EC51B8AE65F05041EC51B87E732B5541713D0A3769F05041B81E855B722B554185EB511869F0504114AE4781662B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000F00000017909ECF68F05041F56FF6F4642B5541FF8F9ECF68F05041756FF6F4642B554132D052D660F050415AD274DE682B5541AE47E1CA61F050411F85EBF16E2B55412F80F6E962F0504143731F3D742B5541C662180663F0504145B99035742B55412AA0147564F050417125FAD2732B5541F690B8D565F05041334B2972732B5541216A005568F050411E7E4EA4722B5541C5FA2DD768F05041B753637A722B5541713D0A3769F05041B81E855B722B55415582682A69F05041A413CD846D2B554128EB1C2169F0504180B1C4E5692B55418FC2F51869F050415C8FC2D5662B554117909ECF68F05041F56FF6F4642B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>442442 - 1467077
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000100000008000000EC51B81EE60751417B14AE6717265541EC51B81EE707514114AE47F11F26554133333363E707514114AE47D1282655410AD7A370F1075141EC51B84E2226554148E17A04EE07514114AE47E1182655413D0AD7B3E90751418FC2F508102655411F85EB01E6075141B81E853B0F265541EC51B81EE60751417B14AE6717265541
+</a>
+
+<b>
+0106000000010000000103000000010000001E0000003765986BC907514157C15C1F2C2655413519DF58C9075141C608F42A2C265541A4703D7AC70751417B14AE3729265541C409AD78C707514101CBFE42292655419A9999E9C6075141E17A144E2D2655411F85EBF1C4075141295C8F823B2655419A999939D8075141EC51B81E47265541295C8F92EB075141295C8FF23A265541F6285C8FEC075141A4703D9A3926554185EB51F8E807514152B81EC533265541C3F5286CE707514185EB51482E26554133333363E707514114AE47D12826554151FDBD67ED075141CAEF9FEB2426554136BB857CF107514150F2D36F222655411E3D769FEE075141B9E5408C1A26554195E7E83FED0751418A60584E1726554150B84751EB075141EAC17058132655413D0AD7B3E90751418FC2F50810265541D30FEE01E6075141BC6B793B0F26554133333353E1075141666666360E2655419A999989D807514152B81E450D265541F701E184CE0751419E7DCC3B0F26554105B65D09D007514166D57C8C10265541BE5991D5CF0751419AAEA764142655411090D05CCE075141B4505F1B272655412F909C3ECE075141EB8338EB282655417AA6FD37CE075141E10F9EEF28265541C8BF0734CE075141B0A0FA21292655411DE2C078CB07514105B143DA2A2655413765986BC907514157C15C1F2C265541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>442442 - 3304144
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000100000008000000EC51B81EE60751417B14AE6717265541EC51B81EE707514114AE47F11F26554133333363E707514114AE47D1282655410AD7A370F1075141EC51B84E2226554148E17A04EE07514114AE47E1182655413D0AD7B3E90751418FC2F508102655411F85EB01E6075141B81E853B0F265541EC51B81EE60751417B14AE6717265541
+</a>
+
+<b>
+0106000000010000000103000000010000001E0000003765986BC907514157C15C1F2C2655413519DF58C9075141C608F42A2C265541A4703D7AC70751417B14AE3729265541C409AD78C707514101CBFE42292655419A9999E9C6075141E17A144E2D2655411F85EBF1C4075141295C8F823B2655419A999939D8075141EC51B81E47265541295C8F92EB075141295C8FF23A265541F6285C8FEC075141A4703D9A3926554185EB51F8E807514152B81EC533265541C3F5286CE707514185EB51482E26554133333363E707514114AE47D12826554151FDBD67ED075141CAEF9FEB2426554136BB857CF107514150F2D36F222655411E3D769FEE075141B9E5408C1A26554195E7E83FED0751418A60584E1726554150B84751EB075141EAC17058132655413D0AD7B3E90751418FC2F50810265541D30FEE01E6075141BC6B793B0F26554133333353E1075141666666360E2655419A999989D807514152B81E450D265541F701E184CE0751419E7DCC3B0F26554105B65D09D007514166D57C8C10265541BE5991D5CF0751419AAEA764142655411090D05CCE075141B4505F1B272655412F909C3ECE075141EB8338EB282655417AA6FD37CE075141E10F9EEF28265541C8BF0734CE075141B0A0FA21292655411DE2C078CB07514105B143DA2A2655413765986BC907514157C15C1F2C265541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>443058 - 2316132
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+01060000000100000001030000000100000015000000F6285C0FC8F55041C3F5285C002A5541C3F5282CCCF55041C3F528ACFD2955418FC2F598D3F5504185EB5128FA2955418FC2F5B8CCF55041B81E852BF0295541B81E85BBCAF55041295C8FB2F1295541E17A146EC4F550419A9999D9F529554133333353BFF550413D0AD7A3F9295541AE47E1BABAF55041F6285C6FFC2955419A999989B5F550411F85EB31002A5541A4703D5AADF55041AE47E18A092A55415C8FC275ABF550415C8FC2850D2A55413D0AD7D3A9F5504133333343122A554133333303AEF5504152B81EB5112A5541713D0A27B4F55041C3F5280C102A5541CDCCCC0CB7F55041713D0A570F2A55411F85EB71B9F55041C3F5287C0E2A5541EC51B86EBCF5504152B81EE50C2A5541D7A3705DC0F55041295C8FF2092A5541713D0A07C4F55041666666A6062A55419A999969C4F550410AD7A310062A5541F6285C0FC8F55041C3F5285C002A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000344358E3AAF550417B42629B0B2A5541FB885F36AEF5504172E5AD2C072A554155A78059B4F55041D3403135012A554100191950BBF55041C15C9814FC29554140A630A0C5F550416826EA0FF5295541D4A821F0CAF5504157BEE79BF129554133333303C7F55041A4703D4AEE295541F6285CFFC4F55041E17A14BEEC2955417B14AE67B8F550418FC2F5A8F0295541CDCCCC4CB4F550413D0AD763F2295541295C8FF2B0F550417B14AE37F3295541E17A143EACF550413D0AD7E3F4295541C3F5284CA9F5504166666686F62955419A999929A7F5504100000040F8295541D7A3701DA7F5504148E17AA4FA295541CDCCCCFCA5F55041A4703DBAFE295541F6285C4FA5F55041295C8F72FF295541F6285CAFA4F55041295C8FA2002A5541333333E3A4F550419A9999E9012A5541F6285CCFA5F550415C8FC255062A5541B81E85ABA5F5504185EB51F8072A55411F85EBA1A4F55041295C8F220B2A5541211A414DA3F55041A8D1F2AC0E2A554143DD6E37A3F550412F6FFB9C0F2A5541211A414DA3F550417186A8B8102A554131C400E6A3F5504191DA27EA112A5541EACEF658A5F550415CFE8BAE122A55418016BFE1A6F55041C347156D122A55412A77F5BBA7F55041A084E782122A55419EFB8F5AA9F550411FC53B040F2A5541344358E3AAF550417B42629B0B2A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>443058 - 3301634
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+01060000000100000001030000000100000015000000F6285C0FC8F55041C3F5285C002A5541C3F5282CCCF55041C3F528ACFD2955418FC2F598D3F5504185EB5128FA2955418FC2F5B8CCF55041B81E852BF0295541B81E85BBCAF55041295C8FB2F1295541E17A146EC4F550419A9999D9F529554133333353BFF550413D0AD7A3F9295541AE47E1BABAF55041F6285C6FFC2955419A999989B5F550411F85EB31002A5541A4703D5AADF55041AE47E18A092A55415C8FC275ABF550415C8FC2850D2A55413D0AD7D3A9F5504133333343122A554133333303AEF5504152B81EB5112A5541713D0A27B4F55041C3F5280C102A5541CDCCCC0CB7F55041713D0A570F2A55411F85EB71B9F55041C3F5287C0E2A5541EC51B86EBCF5504152B81EE50C2A5541D7A3705DC0F55041295C8FF2092A5541713D0A07C4F55041666666A6062A55419A999969C4F550410AD7A310062A5541F6285C0FC8F55041C3F5285C002A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000344358E3AAF550417B42629B0B2A5541FB885F36AEF5504172E5AD2C072A554155A78059B4F55041D3403135012A554100191950BBF55041C15C9814FC29554140A630A0C5F550416826EA0FF5295541D4A821F0CAF5504157BEE79BF129554133333303C7F55041A4703D4AEE295541F6285CFFC4F55041E17A14BEEC2955417B14AE67B8F550418FC2F5A8F0295541CDCCCC4CB4F550413D0AD763F2295541295C8FF2B0F550417B14AE37F3295541E17A143EACF550413D0AD7E3F4295541C3F5284CA9F5504166666686F62955419A999929A7F5504100000040F8295541D7A3701DA7F5504148E17AA4FA295541CDCCCCFCA5F55041A4703DBAFE295541F6285C4FA5F55041295C8F72FF295541F6285CAFA4F55041295C8FA2002A5541333333E3A4F550419A9999E9012A5541F6285CCFA5F550415C8FC255062A5541B81E85ABA5F5504185EB51F8072A55411F85EBA1A4F55041295C8F220B2A5541211A414DA3F55041A8D1F2AC0E2A554143DD6E37A3F550412F6FFB9C0F2A5541211A414DA3F550417186A8B8102A554131C400E6A3F5504191DA27EA112A5541EACEF658A5F550415CFE8BAE122A55418016BFE1A6F55041C347156D122A55412A77F5BBA7F55041A084E782122A55419EFB8F5AA9F550411FC53B040F2A5541344358E3AAF550417B42629B0B2A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>443058 - 9533
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+01060000000100000001030000000100000015000000F6285C0FC8F55041C3F5285C002A5541C3F5282CCCF55041C3F528ACFD2955418FC2F598D3F5504185EB5128FA2955418FC2F5B8CCF55041B81E852BF0295541B81E85BBCAF55041295C8FB2F1295541E17A146EC4F550419A9999D9F529554133333353BFF550413D0AD7A3F9295541AE47E1BABAF55041F6285C6FFC2955419A999989B5F550411F85EB31002A5541A4703D5AADF55041AE47E18A092A55415C8FC275ABF550415C8FC2850D2A55413D0AD7D3A9F5504133333343122A554133333303AEF5504152B81EB5112A5541713D0A27B4F55041C3F5280C102A5541CDCCCC0CB7F55041713D0A570F2A55411F85EB71B9F55041C3F5287C0E2A5541EC51B86EBCF5504152B81EE50C2A5541D7A3705DC0F55041295C8FF2092A5541713D0A07C4F55041666666A6062A55419A999969C4F550410AD7A310062A5541F6285C0FC8F55041C3F5285C002A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000D4A821F0CAF5504157BEE79BF1295541639FEB69CAF550410FDA702EF129554160C67833CAF550416249240AF12955417B14AE17CAF55041C3F5281CF1295541CDCCCC2CC5F5504152B81E05F4295541EC51B85EBDF550410AD7A3C0F9295541DED8B1FAB3F55041C5E039A8002A554148E17AA4ADF55041D7A3709D062A5541333333D3AAF55041333333230A2A55411F85EB31A8F5504152B81E350F2A5541B3D659BFA3F5504199E8607D0D2A55414E3C9FAAA3F550416EDD87B40D2A5541A4D13EA8A3F5504167A4DABA0D2A5541FF561363A3F55041A8D1F2AC0E2A5541C56BEF3AA3F55041CBAB82CA0F2A5541211A414DA3F550417186A8B8102A554131C400E6A3F5504191DA27EA112A5541EACEF658A5F550415CFE8BAE122A55418016BFE1A6F55041C347156D122A55412A77F5BBA7F55041A084E782122A55419EFB8F5AA9F550411FC53B040F2A5541344358E3AAF550417B42629B0B2A5541FB885F36AEF5504172E5AD2C072A554155A78059B4F55041D3403135012A554100191950BBF55041C15C9814FC29554140A630A0C5F550416826EA0FF5295541D4A821F0CAF5504157BEE79BF1295541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>443058 - 54820
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+01060000000100000001030000000100000015000000F6285C0FC8F55041C3F5285C002A5541C3F5282CCCF55041C3F528ACFD2955418FC2F598D3F5504185EB5128FA2955418FC2F5B8CCF55041B81E852BF0295541B81E85BBCAF55041295C8FB2F1295541E17A146EC4F550419A9999D9F529554133333353BFF550413D0AD7A3F9295541AE47E1BABAF55041F6285C6FFC2955419A999989B5F550411F85EB31002A5541A4703D5AADF55041AE47E18A092A55415C8FC275ABF550415C8FC2850D2A55413D0AD7D3A9F5504133333343122A554133333303AEF5504152B81EB5112A5541713D0A27B4F55041C3F5280C102A5541CDCCCC0CB7F55041713D0A570F2A55411F85EB71B9F55041C3F5287C0E2A5541EC51B86EBCF5504152B81EE50C2A5541D7A3705DC0F55041295C8FF2092A5541713D0A07C4F55041666666A6062A55419A999969C4F550410AD7A310062A5541F6285C0FC8F55041C3F5285C002A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000D4A821F0CAF5504157BEE79BF1295541639FEB69CAF550410FDA702EF129554160C67833CAF550416249240AF12955417B14AE17CAF55041C3F5281CF1295541CDCCCC2CC5F5504152B81E05F4295541EC51B85EBDF550410AD7A3C0F9295541DED8B1FAB3F55041C5E039A8002A554148E17AA4ADF55041D7A3709D062A5541333333D3AAF55041333333230A2A55411F85EB31A8F5504152B81E350F2A5541B3D659BFA3F5504199E8607D0D2A55414E3C9FAAA3F550416EDD87B40D2A5541A4D13EA8A3F5504167A4DABA0D2A5541FF561363A3F55041A8D1F2AC0E2A5541C56BEF3AA3F55041CBAB82CA0F2A5541211A414DA3F550417186A8B8102A554131C400E6A3F5504191DA27EA112A5541EACEF658A5F550415CFE8BAE122A55418016BFE1A6F55041C347156D122A55412A77F5BBA7F55041A084E782122A55419EFB8F5AA9F550411FC53B040F2A5541344358E3AAF550417B42629B0B2A5541FB885F36AEF5504172E5AD2C072A554155A78059B4F55041D3403135012A554100191950BBF55041C15C9814FC29554140A630A0C5F550416826EA0FF5295541D4A821F0CAF5504157BEE79BF1295541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>444165 - 1076195
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+0106000000020000000103000000010000000900000014AE4771AED55041713D0AA75E5054415C8FC2F5AED5504185EB511858505441295C8F92B1D55041CDCCCCCC26505441F6285C3FAFD55041B81E853B26505441E17A14CEACD550413D0AD7A32550544148E17AB4A7D550416666661660505441C3F528BCAAD55041CDCCCC6C5F505441E17A146EACD55041713D0A375F50544114AE4771AED55041713D0AA75E50544101030000000100000010000000D7A3705DADD550415C8FC2A569505441CDCCCC4CAED550411F85EB815F505441AE47E1AAACD55041F6285CCF5F50544185EB51A8AAD55041EC51B81E605054410AD7A3B0A7D5504185EB51C8605054410AD7A3E0A3D550411F85EB41875054413D0AD743A3D55041CDCCCCEC8C50544133333333A3D55041713D0A878D5054418FC2F508A1D55041B81E859BA1505441A4703D6AA4D55041000000D0A1505441713D0AA7A6D5504148E17A948D505441295C8FD2A6D55041B81E850B8D5054413D0AD7E3A8D550415C8FC2A573505441D7A370FDA8D55041CDCCCC6C72505441666666B6A9D55041EC51B88E69505441D7A3705DADD550415C8FC2A569505441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000D7A3705DADD550415C8FC2A569505441CE2BC509AED550419D51DA5862505441B0B55D23AED550413A90444361505441CDCCCC4CAED550411F85EB815F5054413FB2F060AED55041742414095F5054415220D47BAED55041B78A5F215E50544181F6929EAED5504103A418695C5054411599C4D8AED55041344BB18759505441295C8F92B1D55041CDCCCCCC26505441E311E810AFD55041C39E13D925505441E17A14CEACD550413D0AD7A32550544148E17AB4A7D550416666661660505441E8BEF471A5D550414712EB3677505441F0AD2A38A6D55041DE5C09C8755054413588A31BA7D55041683DD993745054419CBEFBFDA8D550412E85216672505441666666B6A9D55041EC51B88E69505441D7A3705DADD550415C8FC2A569505441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>444165 - 3584895
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+0106000000020000000103000000010000000900000014AE4771AED55041713D0AA75E5054415C8FC2F5AED5504185EB511858505441295C8F92B1D55041CDCCCCCC26505441F6285C3FAFD55041B81E853B26505441E17A14CEACD550413D0AD7A32550544148E17AB4A7D550416666661660505441C3F528BCAAD55041CDCCCC6C5F505441E17A146EACD55041713D0A375F50544114AE4771AED55041713D0AA75E50544101030000000100000010000000D7A3705DADD550415C8FC2A569505441CDCCCC4CAED550411F85EB815F505441AE47E1AAACD55041F6285CCF5F50544185EB51A8AAD55041EC51B81E605054410AD7A3B0A7D5504185EB51C8605054410AD7A3E0A3D550411F85EB41875054413D0AD743A3D55041CDCCCCEC8C50544133333333A3D55041713D0A878D5054418FC2F508A1D55041B81E859BA1505441A4703D6AA4D55041000000D0A1505441713D0AA7A6D5504148E17A948D505441295C8FD2A6D55041B81E850B8D5054413D0AD7E3A8D550415C8FC2A573505441D7A370FDA8D55041CDCCCC6C72505441666666B6A9D55041EC51B88E69505441D7A3705DADD550415C8FC2A569505441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000D7A3705DADD550415C8FC2A569505441CE2BC509AED550419D51DA5862505441B0B55D23AED550413A90444361505441CDCCCC4CAED550411F85EB815F5054413FB2F060AED55041742414095F5054415220D47BAED55041B78A5F215E50544181F6929EAED5504103A418695C5054411599C4D8AED55041344BB18759505441295C8F92B1D55041CDCCCCCC26505441E311E810AFD55041C39E13D925505441E17A14CEACD550413D0AD7A32550544148E17AB4A7D550416666661660505441E8BEF471A5D550414712EB3677505441F0AD2A38A6D55041DE5C09C8755054413588A31BA7D55041683DD993745054419CBEFBFDA8D550412E85216672505441666666B6A9D55041EC51B88E69505441D7A3705DADD550415C8FC2A569505441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>447281 - 31051
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+01060000000200000001030000000200000052000000EC51B8FED93E51417B14AEA780445441666666D6C73E5141D7A3708D774454410AD7A3C0C73E514114AE47C1784454415C8FC2F5C53E5141C3F528DC7D44544148E17AF4B73E51413333338377445441A4703D3AB43E51410AD7A3107C4454411F85EB31B33E514152B81E957B445441D7A3705DB23E514148E17AE47C445441B81E854BAE3E51419A9999197B445441295C8F42AF3E5141E17A144E794454419A999939AA3E5141F6285CAF76445441333333F3AF3E51411F85EB816B445441C3F5284CB43E5141F6285CBF6844544148E17AC4B73E514152B81E25684454417B14AE07BE3E5141CDCCCC0C61445441D7A3705DC43E514114AE4781644454413D0AD7F3C83E51413D0AD79366445441CDCCCC7CC73E5141295C8FD26944544166666666CD3E5141666666366F445441B81E857BD13E51410AD7A340714454415C8FC2B5D73E5141F6285C7F74445441D7A3707DD93E5141A4703D9A7444544166666646DA3E51410AD7A3807344544148E17A74DA3E51419A9999497244544166666696DA3E5141C3F5289C6F445441AE47E1CADA3E51410AD7A3806B445441AE47E1DAD93E514185EB51D86A44544148E17A54CC3E51413D0AD7C36244544100000000CA3E51418FC2F5F86144544148E17A54C83E5141333333B35F445441D7A3700DC53E51410AD7A3305D44544152B81E15C43E51415C8FC2655C44544148E17AD4C33E5141D7A3700D5C4454419A999999C33E51419A9999B95B4454417B14AE47C33E5141B81E850B5B445441F6285CDFBF3E51415C8FC285584454411F85EBB1BE3E51413D0AD77359445441CDCCCC4CB83E51416666664659445441295C8F32B63E51419A9999095A4454419A999929B43E51413D0AD7635B445441F6285C6FAF3E514152B81E35614454417B14AE17AE3E5141AE47E15A6244544148E17AE4AD3E5141295C8F226344544148E17AC4A73E5141333333E37A445441D7A3702DA13E51417B14AE1789445441295C8FE29E3E51411F85EB71964454417B14AEC79B3E514148E17A84A844544152B81E659A3E51419A9999B9AE44544166666656983E5141AE47E1BAB4445441713D0A97913E5141295C8F72C5445441E17A142E913E514114AE4781C6445441F6285C7F8C3E5141D7A3708DD244544185EB51D8883E5141C3F5286CDB4454411F85EBC1823E51419A9999C9EE4454410AD7A320813E5141C3F5282CF6445441000000F0803E5141666666A6FA445441B81E85CB823E51413D0AD7631645544185EB51488A3E5141000000C019455441A4703D8A9F3E5141000000C0D9445441D7A3705DAF3E514114AE4791E2445441000000C0B73E514148E17A34E744544152B81E55B93E5141C3F5284CE84454411F85EB51BD3E5141CDCCCCCCE3445441AE47E1DABE3E514152B81EB5E14454410AD7A300C13E5141B81E854BDD445441CDCCCC4CC73E51410AD7A310C4445441333333B3CA3E514148E17A44B54454417B14AE77CB3E514114AE4771B5445441295C8F72CF3E514148E17AC4AB4454410AD7A3D0D23E514185EB51B8A24454411F85EBD1D43E5141F6285C3F9C445441666666B6D53E5141713D0A87974454417B14AED7D53E5141D7A370DD964454411F85EB61D63E51419A9999499644544166666646D73E514166666636954454415C8FC205D93E5141C3F528DC92445441D7A3701DDA3E5141C3F5280C9144544185EB51F8DA3E5141666666268F445441C3F5287CDB3E5141666666A68D445441AE47E11ADB3E5141B81E852B8A4454417B14AE57DA3E5141E17A144E84445441EC51B8FED93E51417B14AEA7804454410500000033333343CA3E514185EB51586A4454418FC2F5C8CA3E5141713D0A6769445441CDCCCCFCCB3E5141AE47E1FA69445441713D0A77CB3E5141666666066B44544133333343CA3E514185EB51586A4454410103000000010000000A000000713D0AF7DB3E5141295C8FC27544544166666626E53E5141E17A14EE7A4454418FC2F588E23E514152B81EC57644544152B81E25E03E51415C8FC235734454411F85EB71DE3E51418FC2F52871445441EC51B83EDD3E5141F6285C1F71445441A4703D0ADC3E5141333333037244544114AE4701DC3E514185EB517872445441A4703DCADB3E5141F6285C5F74445441713D0AF7DB3E5141295C8FC275445441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000202087ABD93E514143A0F97D80445441B9DE2883D93E514128FBBC69804454410990BAECD83E5141039B6F7B80445441E54227F9D93E5141D3699D1B88445441D126C35ADA3E514173C8DD4C8A4454414AA3F666DA3E51412235504D8C4454415EBF5A05DA3E51414E092BA38E4454417CF72242D93E51417B00037F90445441B667B3BBD73E514198C6AB05934454416E3FAC8AD63E5141D7D24E98944454415D2AE1D3D63E51413B10218095445441AD4B4F1DD83E51417F9C15989344544175E2578BD93E51415BC1A15A91445441489C5D7FDA3E5141B16261298F4454413A72C711DB3E51418D87EDEB8C445441B8FC2CEDDA3E5141F236DF898A445441CC18918BDA3E5141651067958744544118405BC0D93E5141B7A96A8880445441202087ABD93E514143A0F97D80445441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>447281 - 72782
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+01060000000200000001030000000200000052000000EC51B8FED93E51417B14AEA780445441666666D6C73E5141D7A3708D774454410AD7A3C0C73E514114AE47C1784454415C8FC2F5C53E5141C3F528DC7D44544148E17AF4B73E51413333338377445441A4703D3AB43E51410AD7A3107C4454411F85EB31B33E514152B81E957B445441D7A3705DB23E514148E17AE47C445441B81E854BAE3E51419A9999197B445441295C8F42AF3E5141E17A144E794454419A999939AA3E5141F6285CAF76445441333333F3AF3E51411F85EB816B445441C3F5284CB43E5141F6285CBF6844544148E17AC4B73E514152B81E25684454417B14AE07BE3E5141CDCCCC0C61445441D7A3705DC43E514114AE4781644454413D0AD7F3C83E51413D0AD79366445441CDCCCC7CC73E5141295C8FD26944544166666666CD3E5141666666366F445441B81E857BD13E51410AD7A340714454415C8FC2B5D73E5141F6285C7F74445441D7A3707DD93E5141A4703D9A7444544166666646DA3E51410AD7A3807344544148E17A74DA3E51419A9999497244544166666696DA3E5141C3F5289C6F445441AE47E1CADA3E51410AD7A3806B445441AE47E1DAD93E514185EB51D86A44544148E17A54CC3E51413D0AD7C36244544100000000CA3E51418FC2F5F86144544148E17A54C83E5141333333B35F445441D7A3700DC53E51410AD7A3305D44544152B81E15C43E51415C8FC2655C44544148E17AD4C33E5141D7A3700D5C4454419A999999C33E51419A9999B95B4454417B14AE47C33E5141B81E850B5B445441F6285CDFBF3E51415C8FC285584454411F85EBB1BE3E51413D0AD77359445441CDCCCC4CB83E51416666664659445441295C8F32B63E51419A9999095A4454419A999929B43E51413D0AD7635B445441F6285C6FAF3E514152B81E35614454417B14AE17AE3E5141AE47E15A6244544148E17AE4AD3E5141295C8F226344544148E17AC4A73E5141333333E37A445441D7A3702DA13E51417B14AE1789445441295C8FE29E3E51411F85EB71964454417B14AEC79B3E514148E17A84A844544152B81E659A3E51419A9999B9AE44544166666656983E5141AE47E1BAB4445441713D0A97913E5141295C8F72C5445441E17A142E913E514114AE4781C6445441F6285C7F8C3E5141D7A3708DD244544185EB51D8883E5141C3F5286CDB4454411F85EBC1823E51419A9999C9EE4454410AD7A320813E5141C3F5282CF6445441000000F0803E5141666666A6FA445441B81E85CB823E51413D0AD7631645544185EB51488A3E5141000000C019455441A4703D8A9F3E5141000000C0D9445441D7A3705DAF3E514114AE4791E2445441000000C0B73E514148E17A34E744544152B81E55B93E5141C3F5284CE84454411F85EB51BD3E5141CDCCCCCCE3445441AE47E1DABE3E514152B81EB5E14454410AD7A300C13E5141B81E854BDD445441CDCCCC4CC73E51410AD7A310C4445441333333B3CA3E514148E17A44B54454417B14AE77CB3E514114AE4771B5445441295C8F72CF3E514148E17AC4AB4454410AD7A3D0D23E514185EB51B8A24454411F85EBD1D43E5141F6285C3F9C445441666666B6D53E5141713D0A87974454417B14AED7D53E5141D7A370DD964454411F85EB61D63E51419A9999499644544166666646D73E514166666636954454415C8FC205D93E5141C3F528DC92445441D7A3701DDA3E5141C3F5280C9144544185EB51F8DA3E5141666666268F445441C3F5287CDB3E5141666666A68D445441AE47E11ADB3E5141B81E852B8A4454417B14AE57DA3E5141E17A144E84445441EC51B8FED93E51417B14AEA7804454410500000033333343CA3E514185EB51586A4454418FC2F5C8CA3E5141713D0A6769445441CDCCCCFCCB3E5141AE47E1FA69445441713D0A77CB3E5141666666066B44544133333343CA3E514185EB51586A4454410103000000010000000A000000713D0AF7DB3E5141295C8FC27544544166666626E53E5141E17A14EE7A4454418FC2F588E23E514152B81EC57644544152B81E25E03E51415C8FC235734454411F85EB71DE3E51418FC2F52871445441EC51B83EDD3E5141F6285C1F71445441A4703D0ADC3E5141333333037244544114AE4701DC3E514185EB517872445441A4703DCADB3E5141F6285C5F74445441713D0AF7DB3E5141295C8FC275445441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000202087ABD93E514143A0F97D80445441B9DE2883D93E514128FBBC69804454410990BAECD83E5141039B6F7B80445441E54227F9D93E5141D3699D1B88445441D126C35ADA3E514173C8DD4C8A4454414AA3F666DA3E51412235504D8C4454415EBF5A05DA3E51414E092BA38E4454417CF72242D93E51417B00037F90445441B667B3BBD73E514198C6AB05934454416E3FAC8AD63E5141D7D24E98944454415D2AE1D3D63E51413B10218095445441AD4B4F1DD83E51417F9C15989344544175E2578BD93E51415BC1A15A91445441489C5D7FDA3E5141B16261298F4454413A72C711DB3E51418D87EDEB8C445441B8FC2CEDDA3E5141F236DF898A445441CC18918BDA3E5141651067958744544118405BC0D93E5141B7A96A8880445441202087ABD93E514143A0F97D80445441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>448986 - 3133552
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -727 </desc>
+<a>
+0106000000010000000103000000010000002B0000003333332328365141D7A3709DE8525441F6285C8F273651418FC2F548EE525441C3F5285C2636514133333353F3525441295C8FB22436514133333333F95254413D0AD71322365141713D0A8701535441AE47E16A1E365141B81E850B0C535441CDCCCCBC25365141D7A3709D0D535441333333332D365141333333030F5354413D0AD7A32C365141A4703DEA155354410000006029365141713D0A371E5354419A9999091A365141713D0AF71A535441AE47E1BA1936514152B81E251C5354415C8FC2C5183651418FC2F5C821535441E17A147E18365141AE47E1DA2453544148E17AD43C365141EC51B8BE23535441C3F5289C3D365141295C8FB228535441713D0A373F3651413D0AD7F3315354411F85EBA140365141B81E850B39535441713D0A373F3651413D0AD71339535441713D0A373F36514100000090395354417B14AE7740365141B81E858B3953544185EB5158583651411F85EB31395354411F85EBD175365141333333C3385354415C8FC2557636514114AE47C138535441D7A370ED73365141713D0A77365354418FC2F5E86F365141666666B63153544148E17A246E3651410AD7A3602F53544152B81E356D365141000000E02D535441CDCCCCCC6B365141EC51B80E2B5354417B14AE676A365141C3F5282C285354419A9999B9693651419A9999B9265354418FC2F53869365141A4703D2A255354418FC2F5A868365141CDCCCCBC1E535441CDCCCC7C5E365141000000D0125354410AD7A39055365141333333630853544166666676543651418FC2F588F852544148E17A34433651410AD7A320F05254418FC2F5B840365141D7A3700DEF525441713D0A8731365141E17A149EEC52544148E17A642F365141EC51B81EE7525441AE47E1BA2936514100000040E552544114AE47312836514166666676E55254413333332328365141D7A3709DE8525441
+</a>
+
+<b>
+01060000000100000001030000000100000017000000E17A147E18365141AE47E1DA24535441BDB3D6233A3651416482C1D323535441EC51B8BE33365141EC51B83E0E5354414993BED829365141D81987FC0D5354410CB969272B365141694E1CA10E5354416F099C822B365141E6779990115354410002EB2C2C3651417EBFD00712535441B885C3D72B365141D88EC51714535441DF104DD82A36514170D6FC8E145354419EE30D502A365141200BED6C145354416605B7942936514162ED28161753544105E7D9B727365141B422327A1B535441D3A26EA824365141451B81241C5354416880ACDD203651416CA60A251B53544167CBAFBC1E36514174F5F2F11A535441B5E1C2BD1C3651410C3D2A691B5354419C3F0D361B36514105EE419C1B535441409FF9001A3651413A72C9171B535441EDF2065B19365141A7D1B9591E5354410D8DE920193651411FBE0AB01F5354415D5C2DDA183651411021B250215354419E9D76C3183651413B2624E221535441E17A147E18365141AE47E1DA24535441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>511853 - 938646
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -16 </desc>
+<a>
+0106000000010000000103000000010000003F000000AE47E1FA78A75041666666B629335441AE47E17A7CA750417B14AEF72A33544148E17A747DA750410AD7A3602B33544152B81EA57FA750418FC2F5D82C3354419A99996986A75041295C8F523133544152B81EB587A75041713D0A5732335441B81E851B89A7504152B81EE533335441000000A08AA75041713D0A5736335441A4703D1A8CA75041295C8FE239335441AE47E14A8EA75041713D0AD73F3354413D0AD76393A750415C8FC2B538335441000000509BA75041D7A370FD2A335441000000F0A3A75041D7A3708D20335441D7A3708DB2A7504185EB5108043354410AD7A370B5A75041295C8F32043354417B14AEC7B9A7504148E17AD4023354417B14AE77BEA75041F6285C2F01335441AE47E1DABCA75041F6285C8FFB325441295C8F62BBA750417B14AEF7F53254411F85EB61B4A75041B81E85BBE23254411F85EBA1B3A750413D0AD7B3E2325441B81E85EBADA75041A4703DAAE23254419A9999C9A8A75041AE47E14AE2325441AE47E1FAA5A750411F85EB51E23254413D0AD703A3A75041D7A370DDE2325441EC51B81EA0A75041EC51B8AEE3325441C3F5285C99A75041A4703DCAE3325441EC51B87E93A750418FC2F5E8E3325441000000308EA75041713D0A47E33254410AD7A31089A75041295C8FF2E2325441295C8FF285A75041E17A14CEE23254413333338384A75041A4703D9AE33254411F85EB1184A75041D7A3705DE732544152B81E0584A7504166666666ED3254415C8FC29583A750415C8FC295EF325441295C8FC282A75041666666C6F0325441CDCCCC4C80A7504152B81E65F2325441F6285CCF7EA7504133333363F3325441B81E858B7DA75041A4703DAAF432544185EB51987CA750415C8FC225F63254410AD7A3C07BA750415C8FC295F8325441000000307AA750410AD7A3B001335441666666C678A750411F85EB81073354410AD7A35077A7504152B81E350D335441713D0A7776A75041A4703D6A123354413D0AD74376A75041F6285C7F15335441C3F5285C77A750419A999999183354411F85EBA178A750419A9999A9183354413D0AD77378A7504148E17AC41C33544185EB51387AA75041000000701E3354418FC2F5387BA75041F6285CDF1E3354410AD7A3D07AA75041AE47E15A213354417B14AEB77BA75041295C8FC22533544114AE47C17BA750419A999969263354411F85EB617BA750415C8FC2352733544148E17A847AA750417B14AE9727335441EC51B88E79A750415C8FC23527335441CDCCCC1C79A750415C8FC205263354416666666678A750417B14AEF7253354416666666678A75041C3F5282C27335441EC51B82E78A750418FC2F52828335441C3F5283C78A750415C8FC22529335441AE47E1FA78A75041666666B629335441
+</a>
+
+<b>
+0106000000010000000103000000010000002B0000005C70C512B6A75041090973F0043354412BF9B779B5A750411A67313D043354414A12CA62B3A7504184EA821404335441B860787EB2A75041AF458825043354417B467287A9A75041C80071A415335441EB32C78AA6A750414DA746781B335441BE66C44BA4A75041801A5DDA1F335441F17DF48CA0A7504142A7B0A624335441DC0CB5CE9BA75041B31B1B642A33544158262E8793A75041B3FC8E7838335441E3173E3191A7504189D5ADC83B33544189B2D1A78FA75041855CF8EE3D33544111ABF84D8EA750413C4EB7D23F335441D329A5FB8EA750411FF82A5242335441F747603F8FA75041395ECBA243335441096767998FA7504165801AB645335441FFB6A1CF8FA7504119806BD8493354416864064690A75041C489EB0B4F3354416262AB6C94A750414236D8554F33544148E17A4495A75041EC51B87E4C3354412CEDCE8797A75041C29E1B3148335441511AEEB2A0A75041CA3CFAC13633544161AE7B27A4A75041B469F82F3033544120C068E0A5A7504105E688E92C3354410327D0FDA5A750413DA805D22C3354413EEBACFBA9A75041633E619B2A335441B67CA429ACA750412EF8F965293354418471A8A9ADA75041875308912833544133333313B0A750413D0AD7B3283354411A80ADBFB3A7504113B8852B2133544107D20A89B4A75041F336CA9C1F33544102589B5CB5A750415FDB3F131E335441FC563B0FB7A7504135D5C8EA1A3354414FF6DBAAB7A75041938C4BC919335441873E3652B8A7504133BFFE9118335441046C17C8B8A7504185ED59B11733544121325C0DB9A75041F4257DC9163354412980125EBAA750414D376A62123354410C4EE124BBA75041736CF2C80F33544185D587F6BBA75041D6772F0B0D335441CA6A6038BCA7504107D177230C3354411054D205BCA750416AF141E80B3354415C70C512B6A75041090973F004335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>452568 - 236950
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -19 </desc>
+<a>
+010600000001000000010300000001000000170000009A9999D985325141CDCCCC2CFC2E5541B81E85EB86325141AE47E1FAFE2E5541A4703D5A87325141F6285C2F002F5541EC51B82E8C3251413D0AD7F3FC2E5541F6285C4F95325141295C8FC2F72E5541295C8F42A23251415C8FC295F12E554148E17AB4A5325141E17A14BEEE2E554152B81EE5A032514114AE4701E92E5541B81E853B9D325141D7A3705DE72E554166666626983251411F85EB61E62E5541D7A370ED943251417B14AEC7E52E55419A999989913251415C8FC245E62E5541295C8FD28D3251415C8FC275E82E5541295C8FA28B325141713D0A27EA2E5541713D0AC789325141713D0A57EC2E55415C8FC21588325141666666F6EE2E554100000080863251417B14AE87F12E55415C8FC27585325141B81E859BF32E554185EB51F884325141F6285CCFF42E5541E17A143E843251413D0AD7D3F52E554185EB5148843251419A999969F72E5541295C8FA28432514185EB5128F92E55419A9999D985325141CDCCCC2CFC2E5541
+</a>
+
+<b>
+0106000000010000000103000000010000003B000000E64751899132514183B8FA55E62E5541F787D633923251416081FBFBE52E5541A08727FC943251410035F82DE62E554166666626983251411F85EB61E62E5541EC18444E983251412163A069E62E5541889190DF99325141F6AEC985E62E554162E71AE99D325141B87EF276E72E5541796D7C01A1325141E092D036E92E554191F3DD19A43251415FA4A571EC2E5541E8F0D494A53251414641EECEEF2E5541E6CF24ADA23251418717D13DF12E55415742849FA2325141841C8A44F12E554106037D97A23251418D088048F12E5541481AFB7C9B325141E366A1C9F42E55418CB5A4BD92325141F55E863AF92E554106ACEA118B32514194CBF788FD2E554159F8BA6F873251417EAFFE39002F5541578DD4BE8832514107A4BE7F032F5541AE47E19A8A325141F6285C7F012F55412CB7162D8B3251418BD2A4F6002F554185BDBF4C8E32514194CBF788FD2E55415985CDAE93325141B72EAF2BFA2E55417452ED1A963251415F31B8B0F82E5541EE852F099D3251411F5D7CD4F52E5541D861CE549D3251414CFE46B5F52E55415FA05C959E3251411009FC30F52E5541A4C471FDA3325141C6FE824BF22E5541E17A142EA4325141CDCCCC2CF22E55417E1EA31EA632514136B37127F12E554131410B8FA73251415C820097EF2E5541A0A40437A93251414F1629CAED2E5541D1F785BBAE325141B3F075CFE82E55417EABB55DB2325141CB532D72E52E5541688FBC0EB5325141B1860D06E32E5541D43E440FAE32514136265FE8E42E554138199114A9325141CB532D72E52E55412621ACA3A43251419B6A14B7E52E5541D0000BB39C3251419B6A14B7E52E554112497F689A325141D43DF182E52E5541AE47E1DA973251411F85EB71E52E554191A8B68F96325141997FE42DE52E55419AFC6211923251416EC8B94FE52E5541F3D6AF168D325141C80C6F1EE62E5541F54FBC6A89325141C10D15A0E62E554185EB515889325141666666A6E62E5541EC055C4C8932514135A545A4E62E5541810C992F893251415E3A3DA8E62E554102FBC3F4853251416081FBFBE52E55412C56600887325141854E1B68E82E5541E17A141E87325141AE47E1DAE82E554149CCFF52873251413FE5B740EA2E554159F8BA6F8732514107A7AEF6EA2E554159F8BA6F873251416BC0398BEB2E554159F8BA6F873251415FA4A571EC2E5541DE970C5289325141F4D173FBEC2E5541D967E3EC8A325141C8868737EB2E5541A1CCD0D28B3251414EFE9B3AEA2E5541C3ED965B8D325141E3D98E8AE82E5541E64751899132514183B8FA55E62E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>464545 - 21168
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000000700000014AE47A18CD05041333333838E495441D7A3707D6FD050417B14AE97B449544114AE47A170D0504185EB5198B8495441AE47E12A76D05041B81E85FBCB495441AE47E10AA6D05041C3F5286C8D4954415C8FC2F590D05041B81E855B8E49544114AE47A18CD05041333333838E495441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000D91B0B2CA7D05041281F67688D495441BA2928F9A5D0504185C651838D49544177A4B04D9BD05041B170C5699B495441291C43E693D05041CD617321A54954411E5F93278DD050410D4CC6F1AD49544165F6294476D05041D67EB2F3CB49544134CA556D76D050412416E0BACC4954417E27429476D050410F2E586CCD495441A08BA6177CD05041CFC0DE0DC6495441503367C387D050417FE9DDC6B64954415624F9E694D0504165FBE993A5495441F6845A22A3D05041A1A8AFF292495441D91B0B2CA7D05041281F67688D495441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>464545 - 66347
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000000700000014AE47A18CD05041333333838E495441D7A3707D6FD050417B14AE97B449544114AE47A170D0504185EB5198B8495441AE47E12A76D05041B81E85FBCB495441AE47E10AA6D05041C3F5286C8D4954415C8FC2F590D05041B81E855B8E49544114AE47A18CD05041333333838E495441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000D91B0B2CA7D05041281F67688D495441BA2928F9A5D0504185C651838D49544177A4B04D9BD05041B170C5699B495441291C43E693D05041CD617321A54954411E5F93278DD050410D4CC6F1AD49544165F6294476D05041D67EB2F3CB49544134CA556D76D050412416E0BACC4954417E27429476D050410F2E586CCD495441A08BA6177CD05041CFC0DE0DC6495441503367C387D050417FE9DDC6B64954415624F9E694D0504165FBE993A5495441F6845A22A3D05041A1A8AFF292495441D91B0B2CA7D05041281F67688D495441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>464563 - 21168
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000000D000000C3F5288C76D0504100000050CD4954419A9999897DD05041713D0AC7E5495441CDCCCC2C84D0504152B81E05FD495441C3F528BC97D050415C8FC275E3495441C3F5284CABD0504152B81EE5C94954417B14AEE7ABD050419A999919C9495441E17A14CEC1D05041CDCCCC7CAC4954418FC2F548D7D05041CDCCCC6C904954415C8FC245BFD05041333333038E4954418FC2F508B4D05041666666568D495441713D0AD7A9D05041E17A145E8D495441F6285C5FA7D05041666666668D495441C3F5288C76D0504100000050CD495441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000D91B0B2CA7D05041281F67688D495441BA2928F9A5D0504185C651838D49544177A4B04D9BD05041B170C5699B495441291C43E693D05041CD617321A54954411E5F93278DD050410D4CC6F1AD49544165F6294476D05041D67EB2F3CB49544134CA556D76D050412416E0BACC4954417E27429476D050410F2E586CCD495441A08BA6177CD05041CFC0DE0DC6495441503367C387D050417FE9DDC6B64954415624F9E694D0504165FBE993A5495441F6845A22A3D05041A1A8AFF292495441D91B0B2CA7D05041281F67688D495441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>464563 - 66347
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000000D000000C3F5288C76D0504100000050CD4954419A9999897DD05041713D0AC7E5495441CDCCCC2C84D0504152B81E05FD495441C3F528BC97D050415C8FC275E3495441C3F5284CABD0504152B81EE5C94954417B14AEE7ABD050419A999919C9495441E17A14CEC1D05041CDCCCC7CAC4954418FC2F548D7D05041CDCCCC6C904954415C8FC245BFD05041333333038E4954418FC2F508B4D05041666666568D495441713D0AD7A9D05041E17A145E8D495441F6285C5FA7D05041666666668D495441C3F5288C76D0504100000050CD495441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000D91B0B2CA7D05041281F67688D495441BA2928F9A5D0504185C651838D49544177A4B04D9BD05041B170C5699B495441291C43E693D05041CD617321A54954411E5F93278DD050410D4CC6F1AD49544165F6294476D05041D67EB2F3CB49544134CA556D76D050412416E0BACC4954417E27429476D050410F2E586CCD495441A08BA6177CD05041CFC0DE0DC6495441503367C387D050417FE9DDC6B64954415624F9E694D0504165FBE993A5495441F6845A22A3D05041A1A8AFF292495441D91B0B2CA7D05041281F67688D495441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>453066 - 365139
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000010000002000000052B81E4591AD5041E17A14EE16C85441AE47E1CA8EAD50411F85EB010BC854417B14AE5794AD504114AE47B109C854419A99992993AD5041E17A147E03C85441666666B694AD5041A4703DEAFDC754419A99997983AD5041713D0AE7F5C754419A9999997BAD5041C3F528BCF2C7544152B81EE577AD504114AE4721F2C75441F6285C8F71AD50411F85EBE1F1C754417B14AE276CAD50411F85EB11F3C754413D0AD7C339AD504148E17A7403C85441E17A14EE31AD50417B14AE0706C85441333333732CAD5041E17A14DE06C854413333336326AD50413333334307C8544152B81EC525AD5041666666E608C85441CDCCCC9C26AD50411F85EB510AC85441E17A14BE39AD50419A9999790AC854410AD7A39044AD5041E17A14EE07C8544148E17A746AAD5041D7A370BD11C85441AE47E13A76AD5041333333D314C85441B81E859B73AD5041333333B321C85441CDCCCC0C71AD5041AE47E19A23C85441AE47E19A66AD50410AD7A3C022C854413D0AD70365AD504185EB51A82BC854410AD7A3206AAD5041C3F5281C2FC85441AE47E17A72AD5041295C8F8232C85441333333737AAD5041A4703D6A3BC854413D0AD7237EAD5041C3F528BC3AC85441A4703DFA85AD5041C3F528FC2EC854411F85EBA190AD5041C3F528BC23C8544152B81E658CAD50411F85EB1121C8544152B81E4591AD5041E17A14EE16C85441
+</a>
+
+<b>
+010600000001000000010300000001000000330000007253A61D30AD5041C77DA84E06C85441178E33732CAD5041988B15DE06C854411AA73E3D28AD50414C54502407C85441EDFF336326AD5041DD25334307C854410FE4B70426AD50419BA2BF3D08C854417CD11EC525AD5041AB2366E608C854417506375D26AD504191FBBFE609C85441CDCCCC9C26AD50411F85EB510AC85441FA9745F731AD5041463578690AC85441F51A14BE39AD5041F0CF98790AC8544175A4A39044AD504173C713EE07C854415A01132F62AD5041F1613A990FC8544148E17A746AAD5041D7A370BD11C85441B0AAE23A76AD504184BB33D314C85441B81E859B73AD5041333333B321C85441E99E75C472AD50411448645322C8544179CDCC0C71AD5041460DE29A23C854419EFBE19A66AD50418E3BA5C022C85441AADD276665AD504162AAB08129C854410143D70365AD50419AAD50A82BC854413D4AA3206AAD5041D59E271C2FC85441F5266BF570AD5041D03C06E431C85441065D8CF570AD5041B7C113E431C8544175D0E17A72AD504172D38F8232C854416DAEA9F272AD50414A27650833C85441333333737AAD5041A4703D6A3BC854419AAA04A47BAD5041FD4911323BC854419B64D6237EAD5041CE8A28BC3AC85441C4733CFA85AD50416C2A28FC2EC854413741EBA190AD504110CB28BC23C854416EF9CFA190AD5041E5A217BC23C85441C04E1E658CAD504157F5EA1121C85441D43A392B8EAD5041AB7562611DC8544152B81E4591AD5041E17A14EE16C85441AE47E1CA8EAD50411F85EB010BC854417B14AE5794AD504114AE47B109C85441F83C37B993AD5041EFDDAB7006C8544165CF982993AD5041A60E137E03C854411E1C66B694AD50411F4E3DEAFDC75441FC4FC2B98FAD504139CBD198FBC754412866987983AD5041D1A50BE7F5C754416A5498997BAD50411CF529BCF2C7544164CF1EE577AD504112904821F2C75441A9475E3E75AD50416417C306F2C75441F6285C8F71AD50411F85EBE1F1C754417B14AE276CAD50411F85EB11F3C75441730281FC5DAD5041119858ADF7C754416E56D6C339AD504151EA7B7403C85441E977E58435AD5041DD32B5D904C85441E17A14EE31AD50417B14AE0706C854417253A61D30AD5041C77DA84E06C85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>455774 - 4178754
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -125 </desc>
+<a>
+0106000000010000000103000000010000000E000000295C8FE223B350415C8FC28598D254413D0AD7E320B350410AD7A34096D254410AD7A3C01BB35041A4703D1A9CD254419A99996915B350415C8FC2B5A3D25441A4703DBA0FB35041C3F5287CABD254410AD7A3900BB350417B14AE17B3D254411F85EB310AB35041E17A148EB6D254415C8FC2A517B35041D7A370CDB8D25441EC51B88E18B35041EC51B8FEB7D254415C8FC2251EB350419A999929AED25441A4703DBA22B350413D0AD713A9D25441713D0AC727B350410AD7A300A5D254418FC2F5282CB350417B14AE579FD25441295C8FE223B350415C8FC28598D25441
+</a>
+
+<b>
+010600000001000000010300000002000000560000001D5A64D309B35041355EBA41B6D254410AD7A3900BB350417B14AE17B3D254415F95E2550DB35041C959CF83AFD25441A4703DBA0FB35041C3F5287CABD25441F2E42C6113B350418B2C321FA6D254419A99996915B350415C8FC2B5A3D254415ED0F77E1AB3504118BA81EC9CD2544131B8348420B350418C233DE895D254419539DAAE20B35041A51A89B695D25441C15A4B3519B350415A76ECF78FD2544183BFAA7C12B3504124867D1B8AD25441952430390DB350415987233386D254418196AAFA0BB35041D239A67086D2544152B81EBD08B35041F6285CA786D2544196438BFC06B350414260E5A085D254411283C09206B350411D5A641384D25441921A641705B35041C480D14183D25441B6F3FDCC02B35041AC1C5A0482D25441B6F3FDA400B350419EEFA7B681D254411B2FDD2401B3504196438BC484D25441378941B800B35041931804F685D25441666666D6FFB25041022B877E86D25441378941F0FEB250413BDF4F8D87D25441448B6CDFFDB250414C37891989D2544121B07250FCB250410E2DB2958CD2544114AE4761FBB25041508D97EE8FD254411283C0FAFAB250418941609D93D25441C1CAA11DFBB2504114AE479996D25441C520B05AFBB25041C3F528DC97D25441D4146687FBB250418CFDB54E9AD2544157DB5520FCB2504190209DE0A0D25441295C8F8AFCB25041CFF753A3A8D25441CFF75383FEB2504108AC1C6AA9D2544123DBF946FFB2504117D9CEFFA9D254418960BBEA01B35041D18BED6AB5D25441B81E853BFFB2504166666626B5D2544148E17AC4FCB2504185EB5138B5D254417B14AEC7FCB25041CDCCCC5CBBD25441713D0A17FDB2504148E17AB4C0D25441B81E854BFFB2504166666616C2D25441B81E85EB01B35041D7A3704DC2D254419A9999B908B3504133333343C2D25441CDCCCC7C0DB35041EC51B84EC3D254410000007019B3504185EB51D8C8D2544114AE47E119B350419A9999E9C7D254410AD7A36017B350418FC2F5A8C6D25441AE47E11A12B35041EC51B86EC4D25441A4703D3A11B35041713D0A67C3D25441295C8F6212B35041EC51B8EEBFD25441AE47E15A14B35041A4703DCABDD25441EC51B89E15B350417B14AE77BDD25441CDCCCC5C18B3504152B81E95BED25441931804E61AB350414260E5B0C0D25441A69BC4B01CB350413F355EFAC0D25441B4C876F61EB35041E5D022E3BBD25441B81E85AB1FB35041C3F5282CBBD25441CDCCCC2C24B350419A999909BCD25441F6285C6F26B3504114AE4791BBD254414A0C02DB27B35041736891BDBAD254419A9999092AB3504114AE4721B9D25441D122DB992CB35041F6285CC7B6D2544192D8064430B350410CBDAB56B2D25441D34D62A834B35041A69BC4F8ADD25441168FE40434B35041E0106109ADD2544196438B1C37B35041000000E0A9D25441A245B64B37B3504146B6F32DA8D25441018DCB672CB35041AC745E069FD25441833C90262CB35041C86EB4559FD25441DB2D85F72AB35041195745C6A0D2544186154C8027B350410D738FF7A4D25441313A4A0526B350419F2C321FA6D2544107B8547A23B35041C727B91EA9D254410559EC6323B35041DE82AB35A9D254418875B04223B350415B08AF5CA9D254410C5C7B2820B350414F795A61ACD25441F3C9A0C91FB35041287C26E6ACD2544174E3E8BD1FB35041900AFDF4ACD25441362D1CB41EB3504100208D45AED25441C5DDE48E1EB35041F9DDAC74AED25441129493AB1DB350419ECE8294AFD2544131D7C46A1DB350415A4622E6AFD25441967FBEDA18B350410F7E47E9B7D2544196438B0418B350413D0AD75BB9D2544183554E5215B350414439F569B8D25441508D97D611B35041FED47831B7D254411D5A64D309B35041355EBA41B6D254411300000033333323FEB250419A9999B9BDD2544133333323FEB250411F85EB51BAD25441EC51B8FEFEB25041CDCCCC5CB7D25441000000E0FFB25041D7A370ADB6D25441C3F5282C03B3504148E17AF4B6D25441713D0A3709B35041295C8F22B8D254419A9999190EB3504133333303B9D2544148E17A3411B35041D7A3706DBAD25441E17A147E12B35041666666B6BBD254413333337312B35041295C8F72BDD25441F6285CEF11B35041E17A140EBFD25441666666F60FB3504166666646C0D254418FC2F5480DB35041713D0A17C1D254413333336309B350417B14AE37C1D25441F6285C8F03B35041C3F5280CC1D254419A99998900B35041E17A148EC0D254410AD7A340FFB25041E17A14CEBFD2544166666686FEB25041CDCCCCECBED2544133333323FEB250419A9999B9BDD25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>455774 - 4178760
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -124 </desc>
+<a>
+0106000000010000000103000000010000000E000000295C8FE223B350415C8FC28598D254413D0AD7E320B350410AD7A34096D254410AD7A3C01BB35041A4703D1A9CD254419A99996915B350415C8FC2B5A3D25441A4703DBA0FB35041C3F5287CABD254410AD7A3900BB350417B14AE17B3D254411F85EB310AB35041E17A148EB6D254415C8FC2A517B35041D7A370CDB8D25441EC51B88E18B35041EC51B8FEB7D254415C8FC2251EB350419A999929AED25441A4703DBA22B350413D0AD713A9D25441713D0AC727B350410AD7A300A5D254418FC2F5282CB350417B14AE579FD25441295C8FE223B350415C8FC28598D25441
+</a>
+
+<b>
+0106000000010000000103000000010000001B00000086154C8027B350410D738FF7A4D25441DB2D85F72AB35041195745C6A0D25441833C90262CB35041C86EB4559FD25441295C8FE223B350415C8FC28598D2544131B8348420B350418C233DE895D254415ED0F77E1AB3504118BA81EC9CD254419A99996915B350415C8FC2B5A3D25441F2E42C6113B350418B2C321FA6D25441A4703DBA0FB35041C3F5287CABD254415F95E2550DB35041C959CF83AFD254410AD7A3900BB350417B14AE17B3D254411D5A64D309B35041355EBA41B6D25441508D97D611B35041FED47831B7D2544183554E5215B350414439F569B8D2544196438B0418B350413D0AD75BB9D25441967FBEDA18B350410F7E47E9B7D2544131D7C46A1DB350415A4622E6AFD25441129493AB1DB350419ECE8294AFD25441C5DDE48E1EB35041F9DDAC74AED25441362D1CB41EB3504100208D45AED2544174E3E8BD1FB35041900AFDF4ACD25441F3C9A0C91FB35041287C26E6ACD254410C5C7B2820B350414F795A61ACD254418875B04223B350415B08AF5CA9D254410559EC6323B35041DE82AB35A9D25441313A4A0526B350419F2C321FA6D2544186154C8027B350410D738FF7A4D25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>71977 - 2928848
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -17 </desc>
+<a>
+01060000000100000001030000000100000015000000713D0A77F1BD5041C3F5289C2D2E55413D0AD7E3ECBD5041AE47E15A2E2E5541EC51B8CEE8BD5041E17A143E2F2E5541A4703D4AE7BD5041295C8F922F2E55418FC2F578E7BD5041AE47E1BA302E554148E17A24DABD5041295C8F42342E5541295C8F62D3BD504166666606362E5541CDCCCC3CCDBD504152B81E95382E55419A9999B9CDBD5041C3F528DC392E554133333353C5BD5041C3F5288C3E2E5541B81E850BC4BD504152B81E953F2E554100000010C1BD5041D7A370FD422E5541713D0AF7BFBD5041295C8FA2442E554185EB5148C1BD5041B81E85CB472E55417B14AEE7C4BD5041F6285C7F502E5541AE47E13AC6BD504133333313512E554100000030D8BD5041EC51B87E4A2E554133333343EABD5041F6285CDF432E5541A4703D7AEBBD50410AD7A390422E55410AD7A330EFBD50411F85EB91352E5541713D0A77F1BD5041C3F5289C2D2E5541
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000295C8F62D3BD504166666606362E554194335E5AD6BD5041C0FA942E352E55414A4CB1B5DDBD50417B82F045332E5541BBA7B85FE7BD5041887FF0B0302E55417C58505FE7BD5041AE7D91BD302E5541C4176C74E7BD50412172199E302E55416CC8E96DE7BD5041A0EED074302E55412C9E4598E7BD5041135BA768302E5541EC51B8CEE8BD5041E17A143E2F2E55413D0AD7E3ECBD5041AE47E15A2E2E5541713D0A77F1BD5041C3F5289C2D2E55416BE213F5F4BD504146244C6F212E554139326682E5BD504154A832CF272E55412B72A346E3BD504155DC57C9282E5541278624E7E0BD50415794B12E2A2E55418A5100CDC7BD5041273CB499392E55418A273553C5BD5041E214A5663B2E5541C94D7D37C3BD50419E0883C53D2E5541B8512C2BBFBD5041B138F9CB422E5541713D0AF7BFBD5041295C8FA2442E554100000010C1BD5041D7A370FD422E5541B81E850BC4BD504152B81E953F2E554133333353C5BD5041C3F5288C3E2E55419A9999B9CDBD5041C3F528DC392E5541CDCCCC3CCDBD504152B81E95382E5541295C8F62D3BD504166666606362E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>71977 - 3806749
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -17 </desc>
+<a>
+01060000000100000001030000000100000015000000713D0A77F1BD5041C3F5289C2D2E55413D0AD7E3ECBD5041AE47E15A2E2E5541EC51B8CEE8BD5041E17A143E2F2E5541A4703D4AE7BD5041295C8F922F2E55418FC2F578E7BD5041AE47E1BA302E554148E17A24DABD5041295C8F42342E5541295C8F62D3BD504166666606362E5541CDCCCC3CCDBD504152B81E95382E55419A9999B9CDBD5041C3F528DC392E554133333353C5BD5041C3F5288C3E2E5541B81E850BC4BD504152B81E953F2E554100000010C1BD5041D7A370FD422E5541713D0AF7BFBD5041295C8FA2442E554185EB5148C1BD5041B81E85CB472E55417B14AEE7C4BD5041F6285C7F502E5541AE47E13AC6BD504133333313512E554100000030D8BD5041EC51B87E4A2E554133333343EABD5041F6285CDF432E5541A4703D7AEBBD50410AD7A390422E55410AD7A330EFBD50411F85EB91352E5541713D0A77F1BD5041C3F5289C2D2E5541
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000295C8F62D3BD504166666606362E554194335E5AD6BD5041C0FA942E352E55414A4CB1B5DDBD50417B82F045332E5541BBA7B85FE7BD5041887FF0B0302E55417C58505FE7BD5041AE7D91BD302E5541C4176C74E7BD50412172199E302E55416CC8E96DE7BD5041A0EED074302E55412C9E4598E7BD5041135BA768302E5541EC51B8CEE8BD5041E17A143E2F2E55413D0AD7E3ECBD5041AE47E15A2E2E5541713D0A77F1BD5041C3F5289C2D2E55416BE213F5F4BD504146244C6F212E554139326682E5BD504154A832CF272E55412B72A346E3BD504155DC57C9282E5541278624E7E0BD50415794B12E2A2E55418A5100CDC7BD5041273CB499392E55418A273553C5BD5041E214A5663B2E5541C94D7D37C3BD50419E0883C53D2E5541B8512C2BBFBD5041B138F9CB422E5541713D0AF7BFBD5041295C8FA2442E554100000010C1BD5041D7A370FD422E5541B81E850BC4BD504152B81E953F2E554133333353C5BD5041C3F5288C3E2E55419A9999B9CDBD5041C3F528DC392E5541CDCCCC3CCDBD504152B81E95382E5541295C8F62D3BD504166666606362E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>457557 - 3088512
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -99 </desc>
+<a>
+01060000000100000001030000000100000013000000295C8F2256265141D7A3700D952A55415C8FC20552265141A4703D6A932A55417B14AE074C2651418FC2F5A88E2A5541A4703DBA4A2651411F85EB81902A5541CDCCCC0C46265141666666B6962A55417B14AED749265141D7A3706D9F2A55419A9999594C2651411F85EBE1A62A554148E17A644F265141AE47E11AAC2A5541666666364F26514133333343B92A5541E17A147E4E265141CDCCCC4CC42A5541295C8FC25926514166666666C12A5541C3F528EC5B2651418FC2F578BE2A5541EC51B88E58265141333333D3AD2A5541AE47E1BA5F265141CDCCCC2C9F2A5541F6285CEF6126514148E17AC4972A554100000000602651419A9999E9972A5541333333F35E265141333333F3972A554185EB51885D26514148E17A04982A5541295C8F2256265141D7A3700D952A5541
+</a>
+
+<b>
+01060000000100000001030000000100000011000000713C164246265141A0D3D930972A55417B14AED749265141D7A3706D9F2A55419A9999594C2651411F85EBE1A62A554148E17A644F265141AE47E11AAC2A5541666666364F26514133333343B92A5541E17A147E4E265141CDCCCC4CC42A5541295C8FC25926514166666666C12A5541C3F528EC5B2651418FC2F578BE2A5541EC51B88E58265141333333D3AD2A5541AE47E1BA5F265141CDCCCC2C9F2A554164CC50CB602651418870010E9A2A55411323721E5F265141322646DF982A554185EB51885D26514148E17A04982A5541295C8F2256265141D7A3700D952A5541472D0121522651412C911675932A5541276541AB4C2651415D7BC12A8F2A5541713C164246265141A0D3D930972A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>457557 - 3433777
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -99 </desc>
+<a>
+01060000000100000001030000000100000013000000295C8F2256265141D7A3700D952A55415C8FC20552265141A4703D6A932A55417B14AE074C2651418FC2F5A88E2A5541A4703DBA4A2651411F85EB81902A5541CDCCCC0C46265141666666B6962A55417B14AED749265141D7A3706D9F2A55419A9999594C2651411F85EBE1A62A554148E17A644F265141AE47E11AAC2A5541666666364F26514133333343B92A5541E17A147E4E265141CDCCCC4CC42A5541295C8FC25926514166666666C12A5541C3F528EC5B2651418FC2F578BE2A5541EC51B88E58265141333333D3AD2A5541AE47E1BA5F265141CDCCCC2C9F2A5541F6285CEF6126514148E17AC4972A554100000000602651419A9999E9972A5541333333F35E265141333333F3972A554185EB51885D26514148E17A04982A5541295C8F2256265141D7A3700D952A5541
+</a>
+
+<b>
+01060000000100000001030000000100000011000000713C164246265141A0D3D930972A55417B14AED749265141D7A3706D9F2A55419A9999594C2651411F85EBE1A62A554148E17A644F265141AE47E11AAC2A5541666666364F26514133333343B92A5541E17A147E4E265141CDCCCC4CC42A5541295C8FC25926514166666666C12A5541C3F528EC5B2651418FC2F578BE2A5541EC51B88E58265141333333D3AD2A5541AE47E1BA5F265141CDCCCC2C9F2A554164CC50CB602651418870010E9A2A55411323721E5F265141322646DF982A554185EB51885D26514148E17A04982A5541295C8F2256265141D7A3700D952A5541472D0121522651412C911675932A5541276541AB4C2651415D7BC12A8F2A5541713C164246265141A0D3D930972A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>466996 - 2979601
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -39 </desc>
+<a>
+0106000000010000000103000000010000000F000000C3F528BCC89C5041CDCCCC7CE32A5541C3F5289CC79C50413D0AD7F3E42A5541666666F6BF9C504152B81EF5EE2A554114AE4781CC9C5041333333E3FB2A55419A999939D09C5041E17A148EFF2A5541B81E854BD49C504114AE4701032B554185EB51E8D79C50415C8FC2A5052B5541EC51B81EDC9C504114AE4771FE2A55410AD7A340D99C5041CDCCCC1CFB2A5541AE47E13AD79C5041E17A143EF82A5541D7A370FDD59C5041B81E850BF52A55418FC2F518D49C5041333333D3EF2A5541EC51B89ED19C504114AE4731EB2A5541295C8F02CF9C5041666666A6E82A5541C3F528BCC89C5041CDCCCC7CE32A5541
+</a>
+
+<b>
+010600000001000000010300000001000000110000002D5AD0B1C89C50411359C373E32A5541AEE513C9CA9C50414762F91FE52A554117B3CACFCA9C50414EA82D32E52A55416A313DC0CF9C5041506D2C5FE92A5541BC7B94D8D19C50416EE2779DEB2A55417305B532D69C5041E749E094F52A5541B029074AD79C5041B3559353F82A554143C48D71DA9C5041FEB6E47EFC2A55417B0EC50DDC9C50418F7E458EFE2A55419985D4BDE09C5041C81A9714F92A554115466CA2DF9C50416B6AD439F72A55418FE6BD84DF9C50419C1697BBF52A55417A2ACA9DDA9C5041C1E863F3EC2A55410A36C305DA9C50412BBABC93EB2A55417E696814D69C5041F07D9F46E72A5541DBCF74A2CC9C50414B66B368DE2A55412D5AD0B1C89C50411359C373E32A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>470642 - 1094125
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -20 </desc>
+<a>
+01060000000100000001030000000100000020000000F6285CCFCB345141E17A14AE3E6F5441E17A140ECC345141666666163D6F5441D7A3705DCF345141E17A148E3B6F544133333383D1345141713D0AA7396F544133333383D1345141E17A144E386F54419A999939D0345141295C8F72376F544152B81E25D2345141666666D62C6F5441B81E854BD4345141F6285CDF1F6F544114AE4771CB345141F6285C8F1E6F54411F85EB31C8345141333333D3406F5441333333A3C4345141E17A146E5B6F54413D0AD763C134514148E17A047A6F54418FC2F568C0345141EC51B8BE846F544100000000BF34514148E17AD4866F54411F85EB81BE3451413D0AD7138A6F544148E17A04BE345141B81E85FB8E6F54418FC2F528BD345141333333A3906F5441D7A3704DBC3451418FC2F5A8926F5441D7A3703DBC345141A4703DAA956F54410AD7A3A0BB34514166666666966F54417B14AED7BA345141295C8F829C6F54417B14AE37BE3451419A9999F9976F54411F85EB61C23451410AD7A3D08B6F54419A999969C63451419A9999E97F6F5441000000E0C83451413D0AD7037A6F544133333393CC34514152B81E05756F5441AE47E16ACE34514185EB51E8596F54411F85EB91CE34514148E17AB4536F5441EC51B81ECF345141A4703D5A4F6F54411F85EB91CE345141666666D6496F5441EC51B81ECF3451411F85EB21416F5441F6285CCFCB345141E17A14AE3E6F5441
+</a>
+
+<b>
+01060000000100000001030000000100000026000000B6547D9ECC3451411F3151F2746F54416C6452D1CC3451415246FE72716F5441380D6E08CD345141AD3413486E6F54414CBCB4E8CD34514161A0D663616F5441FC62F25CCE34514128F958B55A6F5441F3456E91CE345141DFEE60C8536F5441C47ABF1CCF3451415290D8694F6F5441932F0597CE3451414D45AD85496F54416CF7AEB3CE345141133704C0476F544113B6B808CF345141EEDA9E11416F5441AC27A8CFCB345141438326AC3E6F5441E17A140ECC345141666666163D6F544126DFD470CF3451412F99E67C3B6F544133333383D1345141713D0AA7396F544133333383D1345141E17A144E386F54419A999939D0345141295C8F72376F5441D0E892DED2345141CB944421286F5441B81E854BD4345141F6285CDF1F6F54412C563490CB3451412E7DAE2E1E6F54413B22A060C83451418DA866E63E6F5441CBF30296C5345141F4A43256546F5441F4446BA3C43451415E29716C5B6F5441322E2F6DC134514196D377AC796F54418FC2F568C0345141EC51B8BE846F5441E166990ABF3451415882CEC4866F5441C2DC1603BE345141973E34FE8E6F54415E5F3059BC34514165B83F8D926F5441D7A3703DBC345141A4703DAA956F5441013465B7BB345141D7F6174B966F54417B14AED7BA345141295C8F829C6F54411022A41ABE345141E7A5D946986F54419A0EAB54C23451419F5D54F78B6F54419F749978C3345141CB4A9199886F5441CD221402C534514124DA6F0F846F5441C4C3299CC6345141A64F81707F6F5441C1498695C8345141E2F733B67A6F5441C1BF91B0CA3451413219F78F776F5441B6547D9ECC3451411F3151F2746F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>470642 - 3815071
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -20 </desc>
+<a>
+01060000000100000001030000000100000020000000F6285CCFCB345141E17A14AE3E6F5441E17A140ECC345141666666163D6F5441D7A3705DCF345141E17A148E3B6F544133333383D1345141713D0AA7396F544133333383D1345141E17A144E386F54419A999939D0345141295C8F72376F544152B81E25D2345141666666D62C6F5441B81E854BD4345141F6285CDF1F6F544114AE4771CB345141F6285C8F1E6F54411F85EB31C8345141333333D3406F5441333333A3C4345141E17A146E5B6F54413D0AD763C134514148E17A047A6F54418FC2F568C0345141EC51B8BE846F544100000000BF34514148E17AD4866F54411F85EB81BE3451413D0AD7138A6F544148E17A04BE345141B81E85FB8E6F54418FC2F528BD345141333333A3906F5441D7A3704DBC3451418FC2F5A8926F5441D7A3703DBC345141A4703DAA956F54410AD7A3A0BB34514166666666966F54417B14AED7BA345141295C8F829C6F54417B14AE37BE3451419A9999F9976F54411F85EB61C23451410AD7A3D08B6F54419A999969C63451419A9999E97F6F5441000000E0C83451413D0AD7037A6F544133333393CC34514152B81E05756F5441AE47E16ACE34514185EB51E8596F54411F85EB91CE34514148E17AB4536F5441EC51B81ECF345141A4703D5A4F6F54411F85EB91CE345141666666D6496F5441EC51B81ECF3451411F85EB21416F5441F6285CCFCB345141E17A14AE3E6F5441
+</a>
+
+<b>
+01060000000100000001030000000100000026000000B6547D9ECC3451411F3151F2746F54416C6452D1CC3451415246FE72716F5441380D6E08CD345141AD3413486E6F54414CBCB4E8CD34514161A0D663616F5441FC62F25CCE34514128F958B55A6F5441F3456E91CE345141DFEE60C8536F5441C47ABF1CCF3451415290D8694F6F5441932F0597CE3451414D45AD85496F54416CF7AEB3CE345141133704C0476F544113B6B808CF345141EEDA9E11416F5441AC27A8CFCB345141438326AC3E6F5441E17A140ECC345141666666163D6F544126DFD470CF3451412F99E67C3B6F544133333383D1345141713D0AA7396F544133333383D1345141E17A144E386F54419A999939D0345141295C8F72376F5441D0E892DED2345141CB944421286F5441B81E854BD4345141F6285CDF1F6F54412C563490CB3451412E7DAE2E1E6F54413B22A060C83451418DA866E63E6F5441CBF30296C5345141F4A43256546F5441F4446BA3C43451415E29716C5B6F5441322E2F6DC134514196D377AC796F54418FC2F568C0345141EC51B8BE846F5441E166990ABF3451415882CEC4866F5441C2DC1603BE345141973E34FE8E6F54415E5F3059BC34514165B83F8D926F5441D7A3703DBC345141A4703DAA956F5441013465B7BB345141D7F6174B966F54417B14AED7BA345141295C8F829C6F54411022A41ABE345141E7A5D946986F54419A0EAB54C23451419F5D54F78B6F54419F749978C3345141CB4A9199886F5441CD221402C534514124DA6F0F846F5441C4C3299CC6345141A64F81707F6F5441C1498695C8345141E2F733B67A6F5441C1BF91B0CA3451413219F78F776F5441B6547D9ECC3451411F3151F2746F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>480212 - 408910
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 10 </desc>
+<a>
+010600000001000000010300000001000000470000001F85EBC1270A5141713D0A4739A554419A9999492C0A51418FC2F5F83AA55441A4703DAA330A5141713D0A6743A55441295C8FE2470A5141E17A14BE43A55441E17A148E470A51411F85EB2151A554415C8FC215510A51411F85EBB152A5544185EB5168520A5141295C8F7256A554418FC2F5D8540A5141D7A3709D56A554410AD7A3305A0A5141AE47E1AA55A55441333333535E0A51416666662655A55441F6285CEF5F0A5141AE47E1BA50A55441B81E857B620A5141CDCCCC3C4CA5544114AE4731650A51416666663648A55441295C8FB26B0A51419A9999D93FA55441F6285CDF6E0A5141C3F5285C3BA55441F6285C1F720A51410AD7A3F035A5544166666676750A5141A4703D4A30A554413D0AD743790A51413D0AD7832BA5544148E17AA4720A5141CDCCCC2C2EA5544114AE47A1640A514185EB51182DA5544133333353640A5141C3F528CC2BA554410AD7A370630A514114AE47A127A5544166666686610A5141AE47E1BA21A554411F85EB615E0A5141AE47E1EA1BA55441333333135C0A5141EC51B83E14A55441C3F5280C590A5141EC51B81E0AA554415C8FC2C5560A51411F85EB9107A5544166666626540A5141CDCCCC1C07A554413D0AD7B34F0A5141713D0A3700A55441295C8F024C0A51417B14AE77FCA45441EC51B8BE480A5141E17A147EF8A45441CDCCCC2C440A5141C3F5280CF2A45441713D0AC7430A514185EB5118F8A4544100000070430A5141AE47E11AFBA454415C8FC295420A5141EC51B86EFDA454410AD7A3103F0A514148E17AE403A5544152B81E853D0A5141EC51B80E06A55441F6285C4F3B0A514185EB518808A55441A4703DDA390A5141AE47E16A09A55441C3F5282C380A5141AE47E12A0AA554417B14AEA7350A514114AE47110CA554415C8FC2552F0A5141295C8F6212A55441B81E859B2A0A5141E17A148E17A554415C8FC2E5260A514148E17A041CA55441295C8FC2230A51418FC2F55820A5544185EB5158220A5141A4703D9A22A554418FC2F548210A5141AE47E1DA24A55441B81E855B200A5141C3F528DC27A55441333333331C0A514185EB51B837A5544114AE47E11D0A51411F85EB1138A55441AE47E16A240A5141000000C02EA55441B81E85BB2F0A5141713D0AC720A55441CDCCCCEC2E0A51410AD7A31020A55441295C8F122B0A5141333333B31CA5544133333343430A5141713D0A470AA55441AE47E18A450A5141F6285C2F0CA554411F85EBE14D0A5141000000A010A55441A4703D3A4B0A51417B14AE6713A55441A4703DFA4A0A51419A99997916A55441666666A6490A5141295C8F6218A55441666666D6470A51411F85EBF119A55441F6285C2F420A514152B81EE51EA55441713D0A873F0A514148E17A6420A55441713D0A973A0A514185EB51B821A55441A4703D7A370A51410AD7A3E023A5544166666656360A514185EB519826A554418FC2F5D8350A51419A99992926A5544185EB5158340A5141CDCCCCEC2BA554418FC2F5882F0A51417B14AEE734A554410AD7A3702B0A51416666668636A554411F85EBC1270A5141713D0A4739A55441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000B81E855B200A5141C3F528DC27A55441940841AE1C0A5141DCF5E4E235A554418FC2F5181E0A514148E17A8434A55441295C8F12210A51417B14AE1732A55441B81E852B230A514114AE471130A554410AD7A3A0230A5141CDCCCC6C2FA554411F85EB71250A51415C8FC2452BA5544152B81ED5260A5141295C8FA226A5544100000060280A514185EB51F820A554415C8FC265290A5141EC51B8EE1DA55441B81E85DB2A0A5141B81E855B1AA5544148E17A842C0A5141B81E857B16A55441DC8CCEDF2D0A5141E30184FB13A55441B81E859B2A0A5141E17A148E17A554415C8FC2E5260A514148E17A041CA55441295C8FC2230A51418FC2F55820A5544185EB5158220A5141A4703D9A22A554418FC2F548210A5141AE47E1DA24A55441B81E855B200A5141C3F528DC27A55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>487482 - 180588
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000020000002B000000B81E851B3EBF504114AE476143FF544148E17A343CBF50416666668647FF5441B81E850B48BF5041D7A3708D4FFF5441AE47E1DA4DBF5041CDCCCC3C53FF5441333333334DBF5041000000104EFF5441333333134CBF50413333333345FF5441666666864BBF5041713D0AD740FF5441713D0A9778BF5041EC51B88E59FF5441E17A142E75BF5041B81E851B51FF5441F6285C8F73BF50417B14AEF747FF544148E17A8474BF50417B14AEF73BFF5441F6285CBF75BF504185EB514823FF5441AE47E1FA76BF5041F6285C0F08FF5441F6285CAF78BF504166666676E2FE5441D7A3707D79BF504166666636D4FE5441295C8F321BBF5041295C8FB29BFE54416666667619BF504148E17AE49AFE544114AE47610EBF5041EC51B89EA8FE54410AD7A3100ABF50415C8FC245B0FE5441A4703D1A08BF5041D7A3702DB3FE5441A4703DAA06BF5041A4703D3AB7FE5441295C8FD205BF50419A999999B9FE5441F6285C0F05BF5041AE47E1EABBFE5441CDCCCC4C05BF504148E17A64C1FE5441D7A3709D09BF504114AE4791C7FE54410AD7A3E013BF50410AD7A320CEFE54410000007015BF5041B81E85EBD3FE5441713D0AF714BF50411F85EB61D9FE54416666668614BF5041F6285CEFDAFE5441295C8F1213BF5041B81E850BE0FE544185EB51F80EBF50418FC2F508EDFE54413D0AD7D30BBF50417B14AE17F6FE544152B81E1509BF50410AD7A3B0FCFE5441C3F5285C04BF5041EC51B84E08FF5441EC51B8DEFFBE5041AE47E1BA14FF5441CDCCCCFC05BF5041295C8FA21AFF54417B14AE0714BF5041F6285C4F23FF5441295C8F021EBF5041C3F5289C26FF5441000000C025BF50410AD7A31029FF5441000000002ABF504114AE47412EFF5441B81E850B32BF50413D0AD75339FF54418FC2F5A83EBF50410000003042FF5441B81E851B3EBF504114AE476143FF5441050000005C8FC2E54ABF504148E17AE43BFF5441666666F642BF5041000000E037FF5441E17A146E45BF5041713D0A7733FF54419A9999B94CBF50417B14AEA736FF54415C8FC2E54ABF504148E17AE43BFF5441
+</a>
+
+<b>
+010600000001000000010300000001000000180000008777CC7C11BF5041514E512898FE54410B14EBD10EBF50410878713D93FE544179963DDF0DBF504155F28DDC8FFE5441713D0A970CBF5041AE47E14A8BFE5441BB6C0AB70ABF504148A79A9980FE54416C74714DFFBE5041900172AD82FE544111DCF5A8F9BE50419AF9B8AE82FE5441DB5AF3BEF9BE50411F86453F83FE5441C2F6F6D8F9BE504155FF3DEA83FE544118119B3CF6BE5041C62B63E083FE5441000000B0F4BE5041C3F528DC83FE5441333333F3F7BE5041000000A08CFE544152B81EA5F8BE5041EC51B87E8EFE5441E17A140EFBBE5041A4703DBA96FE5441E38D6B34FABE5041BC278A899AFE54411EB600C0F9BE5041A33C33939CFE544122C18C4BF9BE504122ADD2789DFE5441A7FD21FE0DBF504132388D4EA9FE544126A246610EBF5041E2FCB69EA8FE544175EF6F4518BF504170FF395E9CFE5441A9BC657619BF504188B37BE49AFE5441275CB8FE16BF5041456F0AC798FE5441737910A115BF5041018EAD9F98FE54418777CC7C11BF5041514E512898FE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>487482 - 387460
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000020000002B000000B81E851B3EBF504114AE476143FF544148E17A343CBF50416666668647FF5441B81E850B48BF5041D7A3708D4FFF5441AE47E1DA4DBF5041CDCCCC3C53FF5441333333334DBF5041000000104EFF5441333333134CBF50413333333345FF5441666666864BBF5041713D0AD740FF5441713D0A9778BF5041EC51B88E59FF5441E17A142E75BF5041B81E851B51FF5441F6285C8F73BF50417B14AEF747FF544148E17A8474BF50417B14AEF73BFF5441F6285CBF75BF504185EB514823FF5441AE47E1FA76BF5041F6285C0F08FF5441F6285CAF78BF504166666676E2FE5441D7A3707D79BF504166666636D4FE5441295C8F321BBF5041295C8FB29BFE54416666667619BF504148E17AE49AFE544114AE47610EBF5041EC51B89EA8FE54410AD7A3100ABF50415C8FC245B0FE5441A4703D1A08BF5041D7A3702DB3FE5441A4703DAA06BF5041A4703D3AB7FE5441295C8FD205BF50419A999999B9FE5441F6285C0F05BF5041AE47E1EABBFE5441CDCCCC4C05BF504148E17A64C1FE5441D7A3709D09BF504114AE4791C7FE54410AD7A3E013BF50410AD7A320CEFE54410000007015BF5041B81E85EBD3FE5441713D0AF714BF50411F85EB61D9FE54416666668614BF5041F6285CEFDAFE5441295C8F1213BF5041B81E850BE0FE544185EB51F80EBF50418FC2F508EDFE54413D0AD7D30BBF50417B14AE17F6FE544152B81E1509BF50410AD7A3B0FCFE5441C3F5285C04BF5041EC51B84E08FF5441EC51B8DEFFBE5041AE47E1BA14FF5441CDCCCCFC05BF5041295C8FA21AFF54417B14AE0714BF5041F6285C4F23FF5441295C8F021EBF5041C3F5289C26FF5441000000C025BF50410AD7A31029FF5441000000002ABF504114AE47412EFF5441B81E850B32BF50413D0AD75339FF54418FC2F5A83EBF50410000003042FF5441B81E851B3EBF504114AE476143FF5441050000005C8FC2E54ABF504148E17AE43BFF5441666666F642BF5041000000E037FF5441E17A146E45BF5041713D0A7733FF54419A9999B94CBF50417B14AEA736FF54415C8FC2E54ABF504148E17AE43BFF5441
+</a>
+
+<b>
+010600000001000000010300000001000000180000008777CC7C11BF5041514E512898FE54410B14EBD10EBF50410878713D93FE544179963DDF0DBF504155F28DDC8FFE5441713D0A970CBF5041AE47E14A8BFE5441BB6C0AB70ABF504148A79A9980FE54416C74714DFFBE5041900172AD82FE544111DCF5A8F9BE50419AF9B8AE82FE5441DB5AF3BEF9BE50411F86453F83FE5441C2F6F6D8F9BE504155FF3DEA83FE544118119B3CF6BE5041C62B63E083FE5441000000B0F4BE5041C3F528DC83FE5441333333F3F7BE5041000000A08CFE544152B81EA5F8BE5041EC51B87E8EFE5441E17A140EFBBE5041A4703DBA96FE5441E38D6B34FABE5041BC278A899AFE54411EB600C0F9BE5041A33C33939CFE544122C18C4BF9BE504122ADD2789DFE5441A7FD21FE0DBF504132388D4EA9FE544126A246610EBF5041E2FCB69EA8FE544175EF6F4518BF504170FF395E9CFE5441A9BC657619BF504188B37BE49AFE5441275CB8FE16BF5041456F0AC798FE5441737910A115BF5041018EAD9F98FE54418777CC7C11BF5041514E512898FE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>489246 - 3038533
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+010600000001000000010300000002000000200000000AD7A340652E51417B14AEC7EC2255419A999999652E514185EB51D8ED225541EC51B84E672E5141CDCCCC6CF3225541A4703D1A6F2E514133333373EE225541D7A370DD762E5141C3F5283CE92255418FC2F508802E5141E17A146EE3225541A4703DAA862E5141F6285C9FE42255413D0AD713872E51410AD7A340DD22554185EB51587F2E5141D7A3701DE122554185EB51387E2E5141EC51B8EEDE225541AE47E1AA7D2E51415C8FC205DD225541666666667D2E514152B81E05DC2255410AD7A3F07C2E514100000060D9225541333333637B2E51415C8FC2F5CF225541F6285CFF792E51411F85EBD1C222554114AE4781792E51418FC2F508BE2255417B14AEE7782E51415C8FC205B822554100000030792E5141333333D3B222554185EB5168762E51411F85EB31AF2255411F85EB616F2E5141F6285CCFA3225541EC51B86E6D2E5141000000F0AA22554185EB51C86A2E5141CDCCCC1CB52255417B14AE37692E5141713D0A87BB22554114AE4701692E5141C3F5287CBE2255418FC2F518692E51415C8FC245C22255413D0AD7736C2E5141D7A3705DC3225541E17A142E6C2E514166666606C4225541B81E857B692E5141333333F3D1225541C3F528BC672E514114AE4751E12255419A999909672E5141E17A140EE82255413D0AD7A3662E51413D0AD753EB2255410AD7A340652E51417B14AEC7EC2255410E0000000AD7A3A0722E5141EC51B8EEC5225541713D0A77742E5141E17A146EBB22554114AE47F1742E5141E17A140EC6225541713D0A57762E5141E17A142ECE2255417B14AE77782E51415C8FC225DB225541A4703D9A7A2E514152B81ED5E22255413D0AD703762E5141C3F528ECE422554100000080712E514114AE47A1E52255419A9999E96F2E51413D0AD7D3DD225541333333A36F2E51418FC2F5B8D9225541AE47E10A702E514166666606D52255415C8FC235712E51415C8FC2E5CD22554133333343722E5141A4703D5AC72255410AD7A3A0722E5141EC51B8EEC5225541
+</a>
+
+<b>
+0106000000010000000103000000010000006B000000369243C66F2E5141CEEF4222D82255414023FDF66F2E5141CFF61CEDD5225541AE47E10A702E514166666606D52255418E71B642702E514126B58BB1D322554175867985702E51415CEFF719D22255419212B75E712E5141145514E7CC22554133333343722E5141A4703D5AC72255413082EF88722E5141899FF04AC622554120FB04D9722E514186C32F7FC0225541D9CEF76B732E5141FA7E6AA4B92255413F355E72742E5141BA490CBAAF22554110583944722E51415A643B37AA22554154E3A5C36F2E5141B0726819A622554150FB45036F2E51419A3A4E29A5225541D779C7EF6C2E5141479E67D7AC225541F9031D876C2E5141353C4869AE225541B6DFFA5E6C2E5141E00F6103AF2255411C066A4E6C2E51416453FC42AF2255416A077B41692E51413AF4DD5EBB2255417B14AE37692E5141713D0A87BB22554114AE4701692E5141C3F5287CBE22554199E07B0D692E5141E52CDC6FC02255418FC2F518692E51415C8FC245C22255410631A5146C2E5141F800713EC32255413D0AD7736C2E5141D7A3705DC3225541E17A142E6C2E514166666606C42255418869A7B2692E5141C69496D6D0225541B81E857B692E5141333333F3D1225541FE264B0A692E5141118DE9D6D5225541FF8C99FF682E5141D8FEF334D6225541DA7E83E4682E514197042623D72255415D6AC1D6682E5141D728239CD7225541C3C997BC682E514173093682D8225541B8D8BDAC682E51414E8A9B0DD92255418221F99F682E51410E99E47DD92255414428A780682E5141BC965291DA225541789EF176682E51411764B4E6DA225541E6AD4A65682E514184E8EF81DB22554123061939682E514196189406DD22554137A89D18682E51416E5C3924DE225541656A51FE672E514188A27C0BDF2255415262E4D1672E514103FA2A92E022554162E65EAF672E51411B75D1CCE1225541FA749BA4672E51416EA7C934E222554122F4352D672E5141101419B6E6225541AE9ED826672E514115A093F3E62255419A999909672E5141E17A140EE82255413D0AD7A3662E51413D0AD753EB22554149DD2F4D662E51416C6D8DAEEB225541972DB48E652E5141E93C06ECEC225541D7A370B5652E51417B14AE77EE225541F853E3D5652E51415839B408EF225541EC51B84E672E5141CDCCCC6CF3225541A4703D1A6F2E514133333373EE225541D7A370DD762E5141C3F5283CE9225541DAD6238D7E2E5141EBAF855EE4225541C46A24FC7F2E5141B8A5A56FE3225541D2AE06F5802E5141AEAF1194E32255414C3083CE822E5141298B850EE3225541690BCCEF852E5141F6691D95E22255417D4A78D6862E5141BB5994B1DE2255416DBECA58822E514187A2939DDF2255414B32D2A9802E51412967DA74E022554185EB51587F2E5141D7A3701DE1225541CB98C8797E2E51413127B86DDF2255414174A0457E2E514107FF8808DF22554185EB51387E2E5141EC51B8EEDE22554147D30F367E2E5141BDD6E9E6DE225541AE47E1AA7D2E51415C8FC205DD225541666666667D2E514152B81E05DC2255410AD7A3F07C2E514100000060D9225541179E119C7C2E51413F20205FD72255414B4D5DF37B2E514150600860D3225541DE94E96D7B2E5141F77DB936D0225541333333637B2E51415C8FC2F5CF225541CBA25E767A2E51418D59F236C7225541F6285CFF792E51411F85EBD1C2225541E892E4AF792E5141609BD6CDBF225541796120A9792E51417413198CBF22554114AE4781792E51418FC2F508BE2255417B14AEE7782E51415C8FC205B82255419F34A1EE782E51417DCCE585B7225541681FC326792E5141206E16C3B2225541231CEBA4782E51413DE49DE0B1225541C141AD61782E5141E4D8556BB1225541CB7E48EC772E51412172949EB0225541C28BEBCA762E5141DCF8E0A5AE225541E5D02243752E51413BDF4F0DB4225541EF24D099742E51416F80D373BE2255411E770FBB742E514104899F57C122554156AF31DA742E51418D5A630CC4225541D675E105752E51414EFED985C6225541713D0A57762E5141E17A142ECE225541EB64079A762E5141CBB263C6CF2255417993EEDE762E51417DB95D6AD12255417B14AE77782E51415C8FC225DB22554187A9E279792E51413207E868DE225541A4703D9A7A2E514152B81ED5E22255413D0AD703762E5141C3F528ECE422554169994D4D742E514130F1E030E5225541380D4DD1732E5141E7C8EB46E522554100000080712E514114AE47A1E52255419A9999E96F2E51413D0AD7D3DD225541BF612DD76F2E5141D5C3D6C0DC2255417BDD82D16F2E5141D581426CDC225541333333A36F2E51418FC2F5B8D9225541369243C66F2E5141CEEF4222D8225541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>489246 - 3274697
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+010600000001000000010300000002000000200000000AD7A340652E51417B14AEC7EC2255419A999999652E514185EB51D8ED225541EC51B84E672E5141CDCCCC6CF3225541A4703D1A6F2E514133333373EE225541D7A370DD762E5141C3F5283CE92255418FC2F508802E5141E17A146EE3225541A4703DAA862E5141F6285C9FE42255413D0AD713872E51410AD7A340DD22554185EB51587F2E5141D7A3701DE122554185EB51387E2E5141EC51B8EEDE225541AE47E1AA7D2E51415C8FC205DD225541666666667D2E514152B81E05DC2255410AD7A3F07C2E514100000060D9225541333333637B2E51415C8FC2F5CF225541F6285CFF792E51411F85EBD1C222554114AE4781792E51418FC2F508BE2255417B14AEE7782E51415C8FC205B822554100000030792E5141333333D3B222554185EB5168762E51411F85EB31AF2255411F85EB616F2E5141F6285CCFA3225541EC51B86E6D2E5141000000F0AA22554185EB51C86A2E5141CDCCCC1CB52255417B14AE37692E5141713D0A87BB22554114AE4701692E5141C3F5287CBE2255418FC2F518692E51415C8FC245C22255413D0AD7736C2E5141D7A3705DC3225541E17A142E6C2E514166666606C4225541B81E857B692E5141333333F3D1225541C3F528BC672E514114AE4751E12255419A999909672E5141E17A140EE82255413D0AD7A3662E51413D0AD753EB2255410AD7A340652E51417B14AEC7EC2255410E0000000AD7A3A0722E5141EC51B8EEC5225541713D0A77742E5141E17A146EBB22554114AE47F1742E5141E17A140EC6225541713D0A57762E5141E17A142ECE2255417B14AE77782E51415C8FC225DB225541A4703D9A7A2E514152B81ED5E22255413D0AD703762E5141C3F528ECE422554100000080712E514114AE47A1E52255419A9999E96F2E51413D0AD7D3DD225541333333A36F2E51418FC2F5B8D9225541AE47E10A702E514166666606D52255415C8FC235712E51415C8FC2E5CD22554133333343722E5141A4703D5AC72255410AD7A3A0722E5141EC51B8EEC5225541
+</a>
+
+<b>
+0106000000010000000103000000010000006B000000369243C66F2E5141CEEF4222D82255414023FDF66F2E5141CFF61CEDD5225541AE47E10A702E514166666606D52255418E71B642702E514126B58BB1D322554175867985702E51415CEFF719D22255419212B75E712E5141145514E7CC22554133333343722E5141A4703D5AC72255413082EF88722E5141899FF04AC622554120FB04D9722E514186C32F7FC0225541D9CEF76B732E5141FA7E6AA4B92255413F355E72742E5141BA490CBAAF22554110583944722E51415A643B37AA22554154E3A5C36F2E5141B0726819A622554150FB45036F2E51419A3A4E29A5225541D779C7EF6C2E5141479E67D7AC225541F9031D876C2E5141353C4869AE225541B6DFFA5E6C2E5141E00F6103AF2255411C066A4E6C2E51416453FC42AF2255416A077B41692E51413AF4DD5EBB2255417B14AE37692E5141713D0A87BB22554114AE4701692E5141C3F5287CBE22554199E07B0D692E5141E52CDC6FC02255418FC2F518692E51415C8FC245C22255410631A5146C2E5141F800713EC32255413D0AD7736C2E5141D7A3705DC3225541E17A142E6C2E514166666606C42255418869A7B2692E5141C69496D6D0225541B81E857B692E5141333333F3D1225541FE264B0A692E5141118DE9D6D5225541FF8C99FF682E5141D8FEF334D6225541DA7E83E4682E514197042623D72255415D6AC1D6682E5141D728239CD7225541C3C997BC682E514173093682D8225541B8D8BDAC682E51414E8A9B0DD92255418221F99F682E51410E99E47DD92255414428A780682E5141BC965291DA225541789EF176682E51411764B4E6DA225541E6AD4A65682E514184E8EF81DB22554123061939682E514196189406DD22554137A89D18682E51416E5C3924DE225541656A51FE672E514188A27C0BDF2255415262E4D1672E514103FA2A92E022554162E65EAF672E51411B75D1CCE1225541FA749BA4672E51416EA7C934E222554122F4352D672E5141101419B6E6225541AE9ED826672E514115A093F3E62255419A999909672E5141E17A140EE82255413D0AD7A3662E51413D0AD753EB22554149DD2F4D662E51416C6D8DAEEB225541972DB48E652E5141E93C06ECEC225541D7A370B5652E51417B14AE77EE225541F853E3D5652E51415839B408EF225541EC51B84E672E5141CDCCCC6CF3225541A4703D1A6F2E514133333373EE225541D7A370DD762E5141C3F5283CE9225541DAD6238D7E2E5141EBAF855EE4225541C46A24FC7F2E5141B8A5A56FE3225541D2AE06F5802E5141AEAF1194E32255414C3083CE822E5141298B850EE3225541690BCCEF852E5141F6691D95E22255417D4A78D6862E5141BB5994B1DE2255416DBECA58822E514187A2939DDF2255414B32D2A9802E51412967DA74E022554185EB51587F2E5141D7A3701DE1225541CB98C8797E2E51413127B86DDF2255414174A0457E2E514107FF8808DF22554185EB51387E2E5141EC51B8EEDE22554147D30F367E2E5141BDD6E9E6DE225541AE47E1AA7D2E51415C8FC205DD225541666666667D2E514152B81E05DC2255410AD7A3F07C2E514100000060D9225541179E119C7C2E51413F20205FD72255414B4D5DF37B2E514150600860D3225541DE94E96D7B2E5141F77DB936D0225541333333637B2E51415C8FC2F5CF225541CBA25E767A2E51418D59F236C7225541F6285CFF792E51411F85EBD1C2225541E892E4AF792E5141609BD6CDBF225541796120A9792E51417413198CBF22554114AE4781792E51418FC2F508BE2255417B14AEE7782E51415C8FC205B82255419F34A1EE782E51417DCCE585B7225541681FC326792E5141206E16C3B2225541231CEBA4782E51413DE49DE0B1225541C141AD61782E5141E4D8556BB1225541CB7E48EC772E51412172949EB0225541C28BEBCA762E5141DCF8E0A5AE225541E5D02243752E51413BDF4F0DB4225541EF24D099742E51416F80D373BE2255411E770FBB742E514104899F57C122554156AF31DA742E51418D5A630CC4225541D675E105752E51414EFED985C6225541713D0A57762E5141E17A142ECE225541EB64079A762E5141CBB263C6CF2255417993EEDE762E51417DB95D6AD12255417B14AE77782E51415C8FC225DB22554187A9E279792E51413207E868DE225541A4703D9A7A2E514152B81ED5E22255413D0AD703762E5141C3F528ECE422554169994D4D742E514130F1E030E5225541380D4DD1732E5141E7C8EB46E522554100000080712E514114AE47A1E52255419A9999E96F2E51413D0AD7D3DD225541BF612DD76F2E5141D5C3D6C0DC2255417BDD82D16F2E5141D581426CDC225541333333A36F2E51418FC2F5B8D9225541369243C66F2E5141CEEF4222D8225541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>492837 - 1367982
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -19 </desc>
+<a>
+01060000000100000001030000000100000044000000000000D00B3E5141F6285CAF35DF544114AE47B1093E5141E17A14CE33DF544133333343073E5141CDCCCCFC30DF5441EC51B89E053E5141B81E854B2FDF544114AE4731043E5141AE47E1DA2DDF5441AE47E1DA023E5141E17A147E2CDF544152B81E15013E514185EB51B82ADF544133333343003E5141000000202ADF54418FC2F558FF3D5141713D0AA729DF5441C3F5280CFE3D5141295C8F0229DF5441713D0A67F93D5141713D0AE72EDF5441C3F5287CF73D51417B14AE7731DF5441B81E858BF53D51417B14AEA733DF54411F85EBB1F13D5141295C8FF236DF544185EB5108EE3D5141D7A3700D3ADF5441F6285CFFEA3D51418FC2F5083DDF54417B14AEE7E83D5141713D0AE73FDF544114AE4761E73D514152B81E6542DF5441D7A3700DE73D514148E17A6444DF5441AE47E14AE73D51415C8FC27546DF5441713D0AC7E73D51416666669648DF544148E17AB4E83D51417B14AEA74ADF544133333363E93D51419A9999994BDF54411F85EBE1EB3D5141CDCCCCDC4DDF54410AD7A390EB3D5141CDCCCC7C4EDF5441EC51B8BEEA3D5141C3F5286C4FDF544185EB5158E83D51418FC2F57851DF544148E17AD4E73D514185EB51F852DF544114AE4711E73D514185EB515854DF54410AD7A3B0E63D51417B14AEB754DF544185EB5128E43D514152B81E1558DF544133333383E23D5141333333635ADF5441F6285CDFE13D5141295C8F425CDF5441AE47E1BAE13D5141333333735EDF5441AE47E1CAE13D5141333333235FDF54418FC2F518E23D514148E17AF45FDF544185EB5178E23D514152B81E8560DF5441713D0A07E53D514185EB51D862DF544152B81E45E83D5141D7A370CD65DF544133333393EA3D51410AD7A34068DF54410AD7A300ED3D51413D0AD7336BDF5441D7A370EDEE3D51415C8FC2256EDF5441AE47E1AAF03D514185EB51E870DF54413D0AD753F63D5141EC51B8DE77DF5441C3F5284CFC3D514148E17A147FDF5441333333E3023E5141B81E85FB87DF5441000000C0043E5141D7A3706D8ADF5441F6285C4F053E5141E17A14EE8ADF5441F6285C6F063E5141EC51B87E8BDF544100000080093E514114AE47318DDF544148E17A540B3E5141333333338EDF5441E17A149E153E51411F85EB4185DF5441EC51B8CE1A3E514114AE477180DF5441F6285CDF1E3E51410AD7A3207CDF5441F6285C2F203E51410AD7A3E079DF5441F6285CAF203E51410AD7A37078DF5441F6285CAF203E5141000000B076DF5441F6285C3F213E51410000002073DF5441F6285C8F213E5141F6285C7F70DF5441F6285C4F223E5141F6285CDF6DDF5441CDCCCC4C263E5141713D0AF763DF54411F85EBA1173E51410AD7A3505BDF5441B81E854B0B3E5141CDCCCC3C53DF544152B81EF5163E5141AE47E19A44DF5441C3F528CC153E514152B81E2542DF5441A4703DEA133E51411F85EB513FDF544148E17A74113E514148E17AA43CDF5441000000D00B3E5141F6285CAF35DF5441
+</a>
+
+<b>
+0106000000010000000103000000010000004D000000000000D00B3E5141F6285CAF35DF544114AE47B1093E5141E17A14CE33DF544133333343073E5141CDCCCCFC30DF5441EC51B89E053E5141B81E854B2FDF544114AE4731043E5141AE47E1DA2DDF5441AE47E1DA023E5141E17A147E2CDF544152B81E15013E514185EB51B82ADF544133333343003E5141000000202ADF54418FC2F558FF3D5141713D0AA729DF5441C3F5280CFE3D5141295C8F0229DF5441713D0A67F93D5141713D0AE72EDF5441C3F5287CF73D51417B14AE7731DF5441B81E858BF53D51417B14AEA733DF54411F85EBB1F13D5141295C8FF236DF544185EB5108EE3D5141D7A3700D3ADF5441F6285CFFEA3D51418FC2F5083DDF54417B14AEE7E83D5141713D0AE73FDF544114AE4761E73D514152B81E6542DF5441D7A3700DE73D514148E17A6444DF5441AE47E14AE73D51415C8FC27546DF5441713D0AC7E73D51416666669648DF544148E17AB4E83D51417B14AEA74ADF544133333363E93D51419A9999994BDF54411F85EBE1EB3D5141CDCCCCDC4DDF54410AD7A390EB3D5141CDCCCC7C4EDF5441EC51B8BEEA3D5141C3F5286C4FDF544185EB5158E83D51418FC2F57851DF544148E17AD4E73D514185EB51F852DF544114AE4711E73D514185EB515854DF54410AD7A3B0E63D51417B14AEB754DF544185EB5128E43D514152B81E1558DF544133333383E23D5141333333635ADF5441F6285CDFE13D5141295C8F425CDF5441AE47E1BAE13D5141333333735EDF5441AE47E1CAE13D5141333333235FDF54418FC2F518E23D514148E17AF45FDF544185EB5178E23D514152B81E8560DF5441713D0A07E53D514185EB51D862DF544152B81E45E83D5141D7A370CD65DF544133333393EA3D51410AD7A34068DF54410AD7A300ED3D51413D0AD7336BDF5441D7A370EDEE3D51415C8FC2256EDF5441AE47E1AAF03D514185EB51E870DF54413D0AD753F63D5141EC51B8DE77DF5441C3F5284CFC3D514148E17A147FDF5441333333E3023E5141B81E85FB87DF5441000000C0043E5141D7A3706D8ADF5441F6285C4F053E5141E17A14EE8ADF5441F6285C6F063E5141EC51B87E8BDF544100000080093E514114AE47318DDF544148E17A540B3E5141333333338EDF54418C17E9CF0B3E51418502B36F8EDF544129F0F69C153E5141DA2FCEA885DF54410AF9F1901A3E514188C0A24A81DF5441F6285CDF1E3E51410AD7A3207CDF5441B34FF51C203E51417C920ED179DF54416F82EBCA203E5141C0F39DE476DF54417E704589213E514107E6644974DF5441F39BBFC5213E51411BD0424E73DF54415A5BC801223E5141E58D2BD071DF5441379F0637223E5141B3E8007270DF5441F6F740E3223E5141C73A09656EDF54419553A01D233E514199CB33BE6DDF544139C2FD3D233E5141D7BEC9406DDF5441A91739AB233E5141663351B46BDF54419E7C9DB1243E5141B1C00BF467DF544157CC84D9253E5141910B99D563DF5441F8C74F05213E514156FC71AA60DF544146D027C0173E51410526D7895ADF54414C3B88420D3E5141AC6CC94553DF544152958A54103E5141D2E986684FDF5441C6DDF7AF103E51411B60C5004FDF5441FB86D06D183E5141DCCEFF5B45DF5441B235C424163E51417C0AAAF641DF54410B68F21B143E514193D927FA3EDF544107012FBB113E51417891E85C3CDF5441000000D00B3E5141F6285CAF35DF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>492837 - 1367993
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -19 </desc>
+<a>
+01060000000100000001030000000100000044000000000000D00B3E5141F6285CAF35DF544114AE47B1093E5141E17A14CE33DF544133333343073E5141CDCCCCFC30DF5441EC51B89E053E5141B81E854B2FDF544114AE4731043E5141AE47E1DA2DDF5441AE47E1DA023E5141E17A147E2CDF544152B81E15013E514185EB51B82ADF544133333343003E5141000000202ADF54418FC2F558FF3D5141713D0AA729DF5441C3F5280CFE3D5141295C8F0229DF5441713D0A67F93D5141713D0AE72EDF5441C3F5287CF73D51417B14AE7731DF5441B81E858BF53D51417B14AEA733DF54411F85EBB1F13D5141295C8FF236DF544185EB5108EE3D5141D7A3700D3ADF5441F6285CFFEA3D51418FC2F5083DDF54417B14AEE7E83D5141713D0AE73FDF544114AE4761E73D514152B81E6542DF5441D7A3700DE73D514148E17A6444DF5441AE47E14AE73D51415C8FC27546DF5441713D0AC7E73D51416666669648DF544148E17AB4E83D51417B14AEA74ADF544133333363E93D51419A9999994BDF54411F85EBE1EB3D5141CDCCCCDC4DDF54410AD7A390EB3D5141CDCCCC7C4EDF5441EC51B8BEEA3D5141C3F5286C4FDF544185EB5158E83D51418FC2F57851DF544148E17AD4E73D514185EB51F852DF544114AE4711E73D514185EB515854DF54410AD7A3B0E63D51417B14AEB754DF544185EB5128E43D514152B81E1558DF544133333383E23D5141333333635ADF5441F6285CDFE13D5141295C8F425CDF5441AE47E1BAE13D5141333333735EDF5441AE47E1CAE13D5141333333235FDF54418FC2F518E23D514148E17AF45FDF544185EB5178E23D514152B81E8560DF5441713D0A07E53D514185EB51D862DF544152B81E45E83D5141D7A370CD65DF544133333393EA3D51410AD7A34068DF54410AD7A300ED3D51413D0AD7336BDF5441D7A370EDEE3D51415C8FC2256EDF5441AE47E1AAF03D514185EB51E870DF54413D0AD753F63D5141EC51B8DE77DF5441C3F5284CFC3D514148E17A147FDF5441333333E3023E5141B81E85FB87DF5441000000C0043E5141D7A3706D8ADF5441F6285C4F053E5141E17A14EE8ADF5441F6285C6F063E5141EC51B87E8BDF544100000080093E514114AE47318DDF544148E17A540B3E5141333333338EDF5441E17A149E153E51411F85EB4185DF5441EC51B8CE1A3E514114AE477180DF5441F6285CDF1E3E51410AD7A3207CDF5441F6285C2F203E51410AD7A3E079DF5441F6285CAF203E51410AD7A37078DF5441F6285CAF203E5141000000B076DF5441F6285C3F213E51410000002073DF5441F6285C8F213E5141F6285C7F70DF5441F6285C4F223E5141F6285CDF6DDF5441CDCCCC4C263E5141713D0AF763DF54411F85EBA1173E51410AD7A3505BDF5441B81E854B0B3E5141CDCCCC3C53DF544152B81EF5163E5141AE47E19A44DF5441C3F528CC153E514152B81E2542DF5441A4703DEA133E51411F85EB513FDF544148E17A74113E514148E17AA43CDF5441000000D00B3E5141F6285CAF35DF5441
+</a>
+
+<b>
+0106000000010000000103000000020000005B000000F6285CDF1E3E51410AD7A3207CDF54410AF9F1901A3E514188C0A24A81DF544129F0F69C153E5141DA2FCEA885DF544121B7E9CE0B3E514109B497708EDF5441EC51B88E0F3E5141713D0A8790DF5441D7A3708D153E5141B81E852B94DF5441B81E854B1B3E514114AE47E197DF54419A999999203E51415C8FC2959BDF54413D0AD7D3273E5141D7A3709DA1DF5441E17A14FE353E51417B14AED7A1DF54418FC2F558333E51411F85EB219BDF54418FC2F5483C3E5141295C8FF296DF5441E17A14DE463E51416666669697DF544114AE47D1543E51419A9999D998DF5441666666A66D3E5141CDCCCC6C9CDF5441A4703D0A703E5141D7A3706D97DF5441D7A370BD6F3E514152B81E8594DF54410AD7A3406D3E51415C8FC2D593DF5441295C8F826B3E51417B14AEB793DF54413D0AD7E3693E51418FC2F58893DF544152B81EE5683E51419A99995993DF5441666666E6673E5141B81E857B93DF54417B14AE97663E5141B81E854B93DF544185EB5188653E5141CDCCCC6C93DF544185EB5148643E5141EC51B89E93DF54418FC2F5A8633E5141EC51B87E93DF5441CDCCCC0C643E5141AE47E14A91DF54410AD7A360643E51418FC2F5388FDF5441D7A370BD5A3E5141C3F5284C8BDF544114AE4711533E5141C3F5288C89DF5441D7A370DD4E3E5141CDCCCCFC8ADF5441B81E854B4C3E5141D7A3705D8BDF5441C3F528CC4A3E5141CDCCCCDC8ADF5441EC51B83E453E5141A4703DEA87DF544148E17A44403E51417B14AEF783DF5441B81E851B393E5141333333237EDF54410AD7A3D0313E5141EC51B82E78DF54411F85EB91313E5141E17A148E77DF54415C8FC205313E5141D7A3705D75DF5441EC51B8AE303E5141C3F528EC70DF5441295C8FB2303E5141AE47E12A6FDF5441C3F5289C313E5141A4703D0A6BDF5441B81E850B333E51418FC2F52864DF544114AE4731333E514185EB518861DF544133333333353E514185EB51C861DF5441CDCCCCFC353E514185EB51285DDF544148E17AB4363E51417B14AEA759DF54417B14AE27393E5141713D0A3750DF5441F6285C1F3C3E514185EB512844DF5441666666E63C3E51419A99990940DF544148E17AD43D3E5141E17A14FE37DF544114AE47813A3E5141CDCCCC1C38DF5441C3F5285C353E5141C3F5287C38DF54417B14AE77313E5141B81E85CB38DF54413D0AD7532F3E5141B81E853B39DF5441F6285CEF2C3E5141AE47E1FA39DF5441C3F5282C2B3E5141A4703DFA3ADF5441666666A6283E51419A9999C93CDF5441F6285C3F263E514185EB51383FDF5441B81E85AB243E51417B14AE6740DF54418FC2F568233E51417B14AE1741DF544166666626223E51417B14AE7741DF54413D0AD713203E5141713D0A9741DF544114AE47711D3E51416666663641DF5441000000B01B3E51415C8FC2A540DF5441EC51B8DE193E514152B81EC53FDF5441F6285C9F173E514152B81E653EDF5441F6285C6F143E51413D0AD7F33BDF5441F6285C9F103E5141295C8F0239DF5441000000800E3E514114AE477137DF5441000000D00B3E5141F6285CAF35DF544107012FBB113E51417891E85C3CDF54410B68F21B143E514193D927FA3EDF5441B235C424163E51417C0AAAF641DF5441FB86D06D183E5141DCCEFF5B45DF54414C3B88420D3E5141AC6CC94553DF544146D027C0173E51410526D7895ADF5441F8C74F05213E514156FC71AA60DF544157CC84D9253E5141910B99D563DF54419E7C9DB1243E5141B1C00BF467DF5441A91739AB233E5141663351B46BDF544139C2FD3D233E5141D7BEC9406DDF54419553A01D233E514199CB33BE6DDF5441F6F740E3223E5141C73A09656EDF5441379F0637223E5141B3E8007270DF54415A5BC801223E5141E58D2BD071DF5441F39BBFC5213E51411BD0424E73DF54417E704589213E514107E6644974DF54416F82EBCA203E5141C0F39DE476DF5441B34FF51C203E51417C920ED179DF5441F6285CDF1E3E51410AD7A3207CDF54410D00000066666666293E51418FC2F5683DDF54417B14AEB72A3E51418FC2F5783DDF54418FC2F5382C3E51419A9999F93DDF54417B14AE572D3E514185EB51F83EDF5441E17A14FE313E51416666664648DF5441666666662F3E51415C8FC2254BDF544148E17AE42E3E51415C8FC2454BDF54411F85EBF1253E5141666666A646DF544152B81E25243E5141713D0AE743DF5441713D0A77243E5141666666E642DF5441D7A3703D263E514185EB517840DF54413D0AD773283E51418FC2F5383EDF544166666666293E51418FC2F5683DDF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>492837 - 3650447
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -19 </desc>
+<a>
+01060000000100000001030000000100000044000000000000D00B3E5141F6285CAF35DF544114AE47B1093E5141E17A14CE33DF544133333343073E5141CDCCCCFC30DF5441EC51B89E053E5141B81E854B2FDF544114AE4731043E5141AE47E1DA2DDF5441AE47E1DA023E5141E17A147E2CDF544152B81E15013E514185EB51B82ADF544133333343003E5141000000202ADF54418FC2F558FF3D5141713D0AA729DF5441C3F5280CFE3D5141295C8F0229DF5441713D0A67F93D5141713D0AE72EDF5441C3F5287CF73D51417B14AE7731DF5441B81E858BF53D51417B14AEA733DF54411F85EBB1F13D5141295C8FF236DF544185EB5108EE3D5141D7A3700D3ADF5441F6285CFFEA3D51418FC2F5083DDF54417B14AEE7E83D5141713D0AE73FDF544114AE4761E73D514152B81E6542DF5441D7A3700DE73D514148E17A6444DF5441AE47E14AE73D51415C8FC27546DF5441713D0AC7E73D51416666669648DF544148E17AB4E83D51417B14AEA74ADF544133333363E93D51419A9999994BDF54411F85EBE1EB3D5141CDCCCCDC4DDF54410AD7A390EB3D5141CDCCCC7C4EDF5441EC51B8BEEA3D5141C3F5286C4FDF544185EB5158E83D51418FC2F57851DF544148E17AD4E73D514185EB51F852DF544114AE4711E73D514185EB515854DF54410AD7A3B0E63D51417B14AEB754DF544185EB5128E43D514152B81E1558DF544133333383E23D5141333333635ADF5441F6285CDFE13D5141295C8F425CDF5441AE47E1BAE13D5141333333735EDF5441AE47E1CAE13D5141333333235FDF54418FC2F518E23D514148E17AF45FDF544185EB5178E23D514152B81E8560DF5441713D0A07E53D514185EB51D862DF544152B81E45E83D5141D7A370CD65DF544133333393EA3D51410AD7A34068DF54410AD7A300ED3D51413D0AD7336BDF5441D7A370EDEE3D51415C8FC2256EDF5441AE47E1AAF03D514185EB51E870DF54413D0AD753F63D5141EC51B8DE77DF5441C3F5284CFC3D514148E17A147FDF5441333333E3023E5141B81E85FB87DF5441000000C0043E5141D7A3706D8ADF5441F6285C4F053E5141E17A14EE8ADF5441F6285C6F063E5141EC51B87E8BDF544100000080093E514114AE47318DDF544148E17A540B3E5141333333338EDF5441E17A149E153E51411F85EB4185DF5441EC51B8CE1A3E514114AE477180DF5441F6285CDF1E3E51410AD7A3207CDF5441F6285C2F203E51410AD7A3E079DF5441F6285CAF203E51410AD7A37078DF5441F6285CAF203E5141000000B076DF5441F6285C3F213E51410000002073DF5441F6285C8F213E5141F6285C7F70DF5441F6285C4F223E5141F6285CDF6DDF5441CDCCCC4C263E5141713D0AF763DF54411F85EBA1173E51410AD7A3505BDF5441B81E854B0B3E5141CDCCCC3C53DF544152B81EF5163E5141AE47E19A44DF5441C3F528CC153E514152B81E2542DF5441A4703DEA133E51411F85EB513FDF544148E17A74113E514148E17AA43CDF5441000000D00B3E5141F6285CAF35DF5441
+</a>
+
+<b>
+0106000000010000000103000000010000004D000000000000D00B3E5141F6285CAF35DF544114AE47B1093E5141E17A14CE33DF544133333343073E5141CDCCCCFC30DF5441EC51B89E053E5141B81E854B2FDF544114AE4731043E5141AE47E1DA2DDF5441AE47E1DA023E5141E17A147E2CDF544152B81E15013E514185EB51B82ADF544133333343003E5141000000202ADF54418FC2F558FF3D5141713D0AA729DF5441C3F5280CFE3D5141295C8F0229DF5441713D0A67F93D5141713D0AE72EDF5441C3F5287CF73D51417B14AE7731DF5441B81E858BF53D51417B14AEA733DF54411F85EBB1F13D5141295C8FF236DF544185EB5108EE3D5141D7A3700D3ADF5441F6285CFFEA3D51418FC2F5083DDF54417B14AEE7E83D5141713D0AE73FDF544114AE4761E73D514152B81E6542DF5441D7A3700DE73D514148E17A6444DF5441AE47E14AE73D51415C8FC27546DF5441713D0AC7E73D51416666669648DF544148E17AB4E83D51417B14AEA74ADF544133333363E93D51419A9999994BDF54411F85EBE1EB3D5141CDCCCCDC4DDF54410AD7A390EB3D5141CDCCCC7C4EDF5441EC51B8BEEA3D5141C3F5286C4FDF544185EB5158E83D51418FC2F57851DF544148E17AD4E73D514185EB51F852DF544114AE4711E73D514185EB515854DF54410AD7A3B0E63D51417B14AEB754DF544185EB5128E43D514152B81E1558DF544133333383E23D5141333333635ADF5441F6285CDFE13D5141295C8F425CDF5441AE47E1BAE13D5141333333735EDF5441AE47E1CAE13D5141333333235FDF54418FC2F518E23D514148E17AF45FDF544185EB5178E23D514152B81E8560DF5441713D0A07E53D514185EB51D862DF544152B81E45E83D5141D7A370CD65DF544133333393EA3D51410AD7A34068DF54410AD7A300ED3D51413D0AD7336BDF5441D7A370EDEE3D51415C8FC2256EDF5441AE47E1AAF03D514185EB51E870DF54413D0AD753F63D5141EC51B8DE77DF5441C3F5284CFC3D514148E17A147FDF5441333333E3023E5141B81E85FB87DF5441000000C0043E5141D7A3706D8ADF5441F6285C4F053E5141E17A14EE8ADF5441F6285C6F063E5141EC51B87E8BDF544100000080093E514114AE47318DDF544148E17A540B3E5141333333338EDF54418C17E9CF0B3E51418502B36F8EDF544129F0F69C153E5141DA2FCEA885DF54410AF9F1901A3E514188C0A24A81DF5441F6285CDF1E3E51410AD7A3207CDF5441B34FF51C203E51417C920ED179DF54416F82EBCA203E5141C0F39DE476DF54417E704589213E514107E6644974DF5441F39BBFC5213E51411BD0424E73DF54415A5BC801223E5141E58D2BD071DF5441379F0637223E5141B3E8007270DF5441F6F740E3223E5141C73A09656EDF54419553A01D233E514199CB33BE6DDF544139C2FD3D233E5141D7BEC9406DDF5441A91739AB233E5141663351B46BDF54419E7C9DB1243E5141B1C00BF467DF544157CC84D9253E5141910B99D563DF5441F8C74F05213E514156FC71AA60DF544146D027C0173E51410526D7895ADF54414C3B88420D3E5141AC6CC94553DF544152958A54103E5141D2E986684FDF5441C6DDF7AF103E51411B60C5004FDF5441FB86D06D183E5141DCCEFF5B45DF5441B235C424163E51417C0AAAF641DF54410B68F21B143E514193D927FA3EDF544107012FBB113E51417891E85C3CDF5441000000D00B3E5141F6285CAF35DF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>492837 - 3653884
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -19 </desc>
+<a>
+01060000000100000001030000000100000044000000000000D00B3E5141F6285CAF35DF544114AE47B1093E5141E17A14CE33DF544133333343073E5141CDCCCCFC30DF5441EC51B89E053E5141B81E854B2FDF544114AE4731043E5141AE47E1DA2DDF5441AE47E1DA023E5141E17A147E2CDF544152B81E15013E514185EB51B82ADF544133333343003E5141000000202ADF54418FC2F558FF3D5141713D0AA729DF5441C3F5280CFE3D5141295C8F0229DF5441713D0A67F93D5141713D0AE72EDF5441C3F5287CF73D51417B14AE7731DF5441B81E858BF53D51417B14AEA733DF54411F85EBB1F13D5141295C8FF236DF544185EB5108EE3D5141D7A3700D3ADF5441F6285CFFEA3D51418FC2F5083DDF54417B14AEE7E83D5141713D0AE73FDF544114AE4761E73D514152B81E6542DF5441D7A3700DE73D514148E17A6444DF5441AE47E14AE73D51415C8FC27546DF5441713D0AC7E73D51416666669648DF544148E17AB4E83D51417B14AEA74ADF544133333363E93D51419A9999994BDF54411F85EBE1EB3D5141CDCCCCDC4DDF54410AD7A390EB3D5141CDCCCC7C4EDF5441EC51B8BEEA3D5141C3F5286C4FDF544185EB5158E83D51418FC2F57851DF544148E17AD4E73D514185EB51F852DF544114AE4711E73D514185EB515854DF54410AD7A3B0E63D51417B14AEB754DF544185EB5128E43D514152B81E1558DF544133333383E23D5141333333635ADF5441F6285CDFE13D5141295C8F425CDF5441AE47E1BAE13D5141333333735EDF5441AE47E1CAE13D5141333333235FDF54418FC2F518E23D514148E17AF45FDF544185EB5178E23D514152B81E8560DF5441713D0A07E53D514185EB51D862DF544152B81E45E83D5141D7A370CD65DF544133333393EA3D51410AD7A34068DF54410AD7A300ED3D51413D0AD7336BDF5441D7A370EDEE3D51415C8FC2256EDF5441AE47E1AAF03D514185EB51E870DF54413D0AD753F63D5141EC51B8DE77DF5441C3F5284CFC3D514148E17A147FDF5441333333E3023E5141B81E85FB87DF5441000000C0043E5141D7A3706D8ADF5441F6285C4F053E5141E17A14EE8ADF5441F6285C6F063E5141EC51B87E8BDF544100000080093E514114AE47318DDF544148E17A540B3E5141333333338EDF5441E17A149E153E51411F85EB4185DF5441EC51B8CE1A3E514114AE477180DF5441F6285CDF1E3E51410AD7A3207CDF5441F6285C2F203E51410AD7A3E079DF5441F6285CAF203E51410AD7A37078DF5441F6285CAF203E5141000000B076DF5441F6285C3F213E51410000002073DF5441F6285C8F213E5141F6285C7F70DF5441F6285C4F223E5141F6285CDF6DDF5441CDCCCC4C263E5141713D0AF763DF54411F85EBA1173E51410AD7A3505BDF5441B81E854B0B3E5141CDCCCC3C53DF544152B81EF5163E5141AE47E19A44DF5441C3F528CC153E514152B81E2542DF5441A4703DEA133E51411F85EB513FDF544148E17A74113E514148E17AA43CDF5441000000D00B3E5141F6285CAF35DF5441
+</a>
+
+<b>
+0106000000010000000103000000020000005B000000F6285CDF1E3E51410AD7A3207CDF54410AF9F1901A3E514188C0A24A81DF544129F0F69C153E5141DA2FCEA885DF544121B7E9CE0B3E514109B497708EDF5441EC51B88E0F3E5141713D0A8790DF5441D7A3708D153E5141B81E852B94DF5441B81E854B1B3E514114AE47E197DF54419A999999203E51415C8FC2959BDF54413D0AD7D3273E5141D7A3709DA1DF5441E17A14FE353E51417B14AED7A1DF54418FC2F558333E51411F85EB219BDF54418FC2F5483C3E5141295C8FF296DF5441E17A14DE463E51416666669697DF544114AE47D1543E51419A9999D998DF5441666666A66D3E5141CDCCCC6C9CDF5441A4703D0A703E5141D7A3706D97DF5441D7A370BD6F3E514152B81E8594DF54410AD7A3406D3E51415C8FC2D593DF5441295C8F826B3E51417B14AEB793DF54413D0AD7E3693E51418FC2F58893DF544152B81EE5683E51419A99995993DF5441666666E6673E5141B81E857B93DF54417B14AE97663E5141B81E854B93DF544185EB5188653E5141CDCCCC6C93DF544185EB5148643E5141EC51B89E93DF54418FC2F5A8633E5141EC51B87E93DF5441CDCCCC0C643E5141AE47E14A91DF54410AD7A360643E51418FC2F5388FDF5441D7A370BD5A3E5141C3F5284C8BDF544114AE4711533E5141C3F5288C89DF5441D7A370DD4E3E5141CDCCCCFC8ADF5441B81E854B4C3E5141D7A3705D8BDF5441C3F528CC4A3E5141CDCCCCDC8ADF5441EC51B83E453E5141A4703DEA87DF544148E17A44403E51417B14AEF783DF5441B81E851B393E5141333333237EDF54410AD7A3D0313E5141EC51B82E78DF54411F85EB91313E5141E17A148E77DF54415C8FC205313E5141D7A3705D75DF5441EC51B8AE303E5141C3F528EC70DF5441295C8FB2303E5141AE47E12A6FDF5441C3F5289C313E5141A4703D0A6BDF5441B81E850B333E51418FC2F52864DF544114AE4731333E514185EB518861DF544133333333353E514185EB51C861DF5441CDCCCCFC353E514185EB51285DDF544148E17AB4363E51417B14AEA759DF54417B14AE27393E5141713D0A3750DF5441F6285C1F3C3E514185EB512844DF5441666666E63C3E51419A99990940DF544148E17AD43D3E5141E17A14FE37DF544114AE47813A3E5141CDCCCC1C38DF5441C3F5285C353E5141C3F5287C38DF54417B14AE77313E5141B81E85CB38DF54413D0AD7532F3E5141B81E853B39DF5441F6285CEF2C3E5141AE47E1FA39DF5441C3F5282C2B3E5141A4703DFA3ADF5441666666A6283E51419A9999C93CDF5441F6285C3F263E514185EB51383FDF5441B81E85AB243E51417B14AE6740DF54418FC2F568233E51417B14AE1741DF544166666626223E51417B14AE7741DF54413D0AD713203E5141713D0A9741DF544114AE47711D3E51416666663641DF5441000000B01B3E51415C8FC2A540DF5441EC51B8DE193E514152B81EC53FDF5441F6285C9F173E514152B81E653EDF5441F6285C6F143E51413D0AD7F33BDF5441F6285C9F103E5141295C8F0239DF5441000000800E3E514114AE477137DF5441000000D00B3E5141F6285CAF35DF544107012FBB113E51417891E85C3CDF54410B68F21B143E514193D927FA3EDF5441B235C424163E51417C0AAAF641DF5441FB86D06D183E5141DCCEFF5B45DF54414C3B88420D3E5141AC6CC94553DF544146D027C0173E51410526D7895ADF5441F8C74F05213E514156FC71AA60DF544157CC84D9253E5141910B99D563DF54419E7C9DB1243E5141B1C00BF467DF5441A91739AB233E5141663351B46BDF544139C2FD3D233E5141D7BEC9406DDF54419553A01D233E514199CB33BE6DDF5441F6F740E3223E5141C73A09656EDF5441379F0637223E5141B3E8007270DF54415A5BC801223E5141E58D2BD071DF5441F39BBFC5213E51411BD0424E73DF54417E704589213E514107E6644974DF54416F82EBCA203E5141C0F39DE476DF5441B34FF51C203E51417C920ED179DF5441F6285CDF1E3E51410AD7A3207CDF54410D00000066666666293E51418FC2F5683DDF54417B14AEB72A3E51418FC2F5783DDF54418FC2F5382C3E51419A9999F93DDF54417B14AE572D3E514185EB51F83EDF5441E17A14FE313E51416666664648DF5441666666662F3E51415C8FC2254BDF544148E17AE42E3E51415C8FC2454BDF54411F85EBF1253E5141666666A646DF544152B81E25243E5141713D0AE743DF5441713D0A77243E5141666666E642DF5441D7A3703D263E514185EB517840DF54413D0AD773283E51418FC2F5383EDF544166666666293E51418FC2F5683DDF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>494347 - 1378349
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -89 </desc>
+<a>
+0106000000010000000103000000010000001C0000003D0AD7F3354C5141C3F528AC2EE35441333333B33B4C51410000001031E354417B14AE47444C5141F6285C9F31E354415C8FC215454C5141000000702DE3544166666646454C514185EB511829E35441EC51B87E494C51411F85EB5129E3544148E17A444D4C514152B81E8529E354411F85EB61554C5141EC51B83E2BE3544133333393534C5141295C8F9226E3544166666606534C51410AD7A30024E354418FC2F528534C51417B14AE371FE3544152B81ED5514C514114AE47211FE3544148E17A94504C51411F85EBF119E354411F85EB11504C5141CDCCCC0C15E35441F6285C7F4E4C5141B81E85EB12E35441D7A3706D4B4C514185EB514811E35441713D0A774A4C5141713D0A8710E3544152B81E054A4C51411F85EBC110E35441C3F5287C454C5141E17A140E13E354411F85EBB1444C5141D7A3705D1BE35441B81E855B444C514185EB51681EE354413D0AD773194C51418FC2F59817E354419A9999A91C4C51410AD7A3F021E3544152B81EF51D4C514148E17A7429E35441C3F528FC1E4C5141F6285C4F2BE35441D7A3700D214C51411F85EB512BE35441D7A3709D284C51419A9999F92BE354413D0AD7F3354C5141C3F528AC2EE35441
+</a>
+
+<b>
+0106000000010000000103000000010000002D00000052B81ED5514C514114AE47211FE3544148E17A94504C51411F85EBF119E354411F85EB11504C5141CDCCCC0C15E35441F6285C7F4E4C5141B81E85EB12E35441D7A3706D4B4C514185EB514811E35441713D0A774A4C5141713D0A8710E3544152B81E054A4C51411F85EBC110E35441C3F5287C454C5141E17A140E13E354411F85EBB1444C5141D7A3705D1BE35441B81E855B444C514185EB51681EE354413D0AD773194C51418FC2F59817E3544169EE81F1194C5141116DFD5D1BE35441F6E20BA81C4C5141F05A5B5C22E354411347F4321D4C5141E63C806F25E354418E6331061D4C5141D82528E326E35441082325991D4C5141AA9E621C29E3544152B81EF51D4C514148E17A7429E35441C3F528FC1E4C5141F6285C4F2BE35441D7A3700D214C51411F85EB512BE35441D7A3709D284C51419A9999F92BE354413D0AD7F3354C5141C3F528AC2EE35441333333B33B4C51410000001031E354417B14AE47444C5141F6285C9F31E354415C8FC215454C5141000000702DE3544166666646454C514185EB511829E354415C8D3A47454C51413F3B5D1829E35441674FD94D454C5141F939341629E35441506C617E454C5141CC034E1B29E35441791E718F464C51418D1BDD2929E354411F3EDDC8474C51419819933A29E3544198E5E565484C5141EF7FF24229E3544142A561344C4C51412BD3B17629E354410629AFFE4C4C514161756B8129E35441B175A13F4D4C5141E2E7DC8429E3544148E17A444D4C514152B81E8529E35441EB6E299E4E4C514159F299CE29E35441AE364E594F4C514122E261F629E354414AE5BD7F504C5141C670F8342AE35441A5624615524C514103A42C8B2AE354415D742CD2544C5141C0F729202BE35441CECEC9D4544C51417240B8202BE35441CDCCCCEC524C514114AE47A126E35441333333A3524C51411F85EB911FE35441F0516DA4524C5141DEE8602E1FE3544152B81ED5514C514114AE47211FE35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>494347 - 3341642
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -89 </desc>
+<a>
+0106000000010000000103000000010000001C0000003D0AD7F3354C5141C3F528AC2EE35441333333B33B4C51410000001031E354417B14AE47444C5141F6285C9F31E354415C8FC215454C5141000000702DE3544166666646454C514185EB511829E35441EC51B87E494C51411F85EB5129E3544148E17A444D4C514152B81E8529E354411F85EB61554C5141EC51B83E2BE3544133333393534C5141295C8F9226E3544166666606534C51410AD7A30024E354418FC2F528534C51417B14AE371FE3544152B81ED5514C514114AE47211FE3544148E17A94504C51411F85EBF119E354411F85EB11504C5141CDCCCC0C15E35441F6285C7F4E4C5141B81E85EB12E35441D7A3706D4B4C514185EB514811E35441713D0A774A4C5141713D0A8710E3544152B81E054A4C51411F85EBC110E35441C3F5287C454C5141E17A140E13E354411F85EBB1444C5141D7A3705D1BE35441B81E855B444C514185EB51681EE354413D0AD773194C51418FC2F59817E354419A9999A91C4C51410AD7A3F021E3544152B81EF51D4C514148E17A7429E35441C3F528FC1E4C5141F6285C4F2BE35441D7A3700D214C51411F85EB512BE35441D7A3709D284C51419A9999F92BE354413D0AD7F3354C5141C3F528AC2EE35441
+</a>
+
+<b>
+0106000000010000000103000000010000002D00000052B81ED5514C514114AE47211FE3544148E17A94504C51411F85EBF119E354411F85EB11504C5141CDCCCC0C15E35441F6285C7F4E4C5141B81E85EB12E35441D7A3706D4B4C514185EB514811E35441713D0A774A4C5141713D0A8710E3544152B81E054A4C51411F85EBC110E35441C3F5287C454C5141E17A140E13E354411F85EBB1444C5141D7A3705D1BE35441B81E855B444C514185EB51681EE354413D0AD773194C51418FC2F59817E3544169EE81F1194C5141116DFD5D1BE35441F6E20BA81C4C5141F05A5B5C22E354411347F4321D4C5141E63C806F25E354418E6331061D4C5141D82528E326E35441082325991D4C5141AA9E621C29E3544152B81EF51D4C514148E17A7429E35441C3F528FC1E4C5141F6285C4F2BE35441D7A3700D214C51411F85EB512BE35441D7A3709D284C51419A9999F92BE354413D0AD7F3354C5141C3F528AC2EE35441333333B33B4C51410000001031E354417B14AE47444C5141F6285C9F31E354415C8FC215454C5141000000702DE3544166666646454C514185EB511829E354415C8D3A47454C51413F3B5D1829E35441674FD94D454C5141F939341629E35441506C617E454C5141CC034E1B29E35441791E718F464C51418D1BDD2929E354411F3EDDC8474C51419819933A29E3544198E5E565484C5141EF7FF24229E3544142A561344C4C51412BD3B17629E354410629AFFE4C4C514161756B8129E35441B175A13F4D4C5141E2E7DC8429E3544148E17A444D4C514152B81E8529E35441EB6E299E4E4C514159F299CE29E35441AE364E594F4C514122E261F629E354414AE5BD7F504C5141C670F8342AE35441A5624615524C514103A42C8B2AE354415D742CD2544C5141C0F729202BE35441CECEC9D4544C51417240B8202BE35441CDCCCCEC524C514114AE47A126E35441333333A3524C51411F85EB911FE35441F0516DA4524C5141DEE8602E1FE3544152B81ED5514C514114AE47211FE35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>498794 - 2099466
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000000D000000295C8F2276FE5041713D0AA7B42A544148E17AF477FE504133333333B02A5441B81E857B3AFE50410AD7A320B12A54419A9999C90BFE5041AE47E11AB22A5441CDCCCC5C09FE504166666626B92A544148E17A5408FE504100000070BD2A544185EB511807FE504114AE47D1C62A5441713D0AE706FE504166666626CD2A54410AD7A3902BFE504152B81ED5CC2A544185EB51A838FE5041C3F5289CCC2A54410AD7A3006CFE504148E17AD4CB2A5441666666066EFE504185EB5188C62A5441295C8F2276FE5041713D0AA7B42A5441
+</a>
+
+<b>
+0106000000010000000103000000010000003D00000065CD585729FE5041BCD40CDACC2A544165A1DF7415FE5041A01B650DCD2A5441AE47E17A1CFE50419A999919D92A5441000000F020FE50411F85EB01E42A5441CDCCCC8C22FE5041333333E3F42A5441EC51B8BE20FE5041F6285C9FF52A544185EB519822FE504185EB5168032B5441295C8FC226FE5041CDCCCC5C102B5441713D0A8727FE5041B81E85DB112B54411F85EB1128FE50411F85EBB1142B5441D7A3703D68FE504133333303062B5441713D0AB76AFE5041295C8F32062B54417B14AEB76CFE504152B81E35072B5441EC51B8CE6DFE5041F6285C5F082B5441B81E855B6EFE50419A999959092B54413D0AD78374FE5041713D0AD7072B544148E17A647FFE5041AE47E14A032B544148E17A5485FE5041AE47E1CA0F2B5441CDCCCC0C96FE504185EB51B8072B544152B81ED597FE5041B81E858B0C2B54413D0AD7639DFE504114AE47610C2B5441333333139FFE5041000000B00A2B5441AE47E14AA1FE5041CDCCCC1C092B54419A999989A3FE5041A4703DCA082B5441E17A14CEA7FE504185EB51F8042B5441AE47E15AA8FE50413D0AD7A3FF2A5441C3F528ECAAFE5041333333D3FC2A54418FC2F5E8ABFE5041713D0AD7FB2A5441D7A370FDAEFE5041F6285CCFF72A54417B14AE87B0FE50411F85EB81F62A544185EB51D8B3FE5041713D0A27F52A54411F85EB91ACFE50419A999989EC2A5441CDCCCC2CA7FE50419A999929E92A544185EB5148A5FE5041B81E85EBE72A5441E17A142E9FFE50413D0AD733ED2A544114AE47C199FE504100000060F22A5441EC51B81E95FE5041C3F528CCF62A5441D7A3707D90FE50411F85EBA1FA2A54411F85EB318BFE5041EC51B8EEFC2A54411F85EBA187FE5041A4703D1AE42A54411F85EB6184FE5041F6285C6FCD2A5441CDCCCC3C89FE50411F85EBC1CC2A5441B81E85EB8DFE5041AE47E11ACC2A5441EC51B8DE92FE5041A4703D6ACB2A54410AD7A3F094FE50410AD7A320CB2A5441E17A14CE98FE5041713D0A97CA2A544114AE47619FFE5041C3F528ACC92A54419A999949A7FE50411F85EB91C82A544185EB5198A6FE50419A999919C82A5441E17A148EA4FE5041CDCCCCBCB82A54419A999939A7FE504114AE4711AF2A5441000000308FFE50417B14AE87AF2A544148E17A6479FE504148E17AF4AF2A544152B81E556CFE50415C8FC2C5CC2A5441B73DD8CA6BFE5041956461DFCB2A5441F0D649225CFE504152E6A868CC2A5441A73B0CF64FFE50416F4D929FCC2A54415E020FAC3AFE504135A74CADCC2A54413A5A30062CFE50415E501FD3CC2A54410AD7A3902BFE504152B81ED5CC2A544165CD585729FE5041BCD40CDACC2A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>498794 - 3340292
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000000D000000295C8F2276FE5041713D0AA7B42A544148E17AF477FE504133333333B02A5441B81E857B3AFE50410AD7A320B12A54419A9999C90BFE5041AE47E11AB22A5441CDCCCC5C09FE504166666626B92A544148E17A5408FE504100000070BD2A544185EB511807FE504114AE47D1C62A5441713D0AE706FE504166666626CD2A54410AD7A3902BFE504152B81ED5CC2A544185EB51A838FE5041C3F5289CCC2A54410AD7A3006CFE504148E17AD4CB2A5441666666066EFE504185EB5188C62A5441295C8F2276FE5041713D0AA7B42A5441
+</a>
+
+<b>
+0106000000010000000103000000010000003D00000065CD585729FE5041BCD40CDACC2A544165A1DF7415FE5041A01B650DCD2A5441AE47E17A1CFE50419A999919D92A5441000000F020FE50411F85EB01E42A5441CDCCCC8C22FE5041333333E3F42A5441EC51B8BE20FE5041F6285C9FF52A544185EB519822FE504185EB5168032B5441295C8FC226FE5041CDCCCC5C102B5441713D0A8727FE5041B81E85DB112B54411F85EB1128FE50411F85EBB1142B5441D7A3703D68FE504133333303062B5441713D0AB76AFE5041295C8F32062B54417B14AEB76CFE504152B81E35072B5441EC51B8CE6DFE5041F6285C5F082B5441B81E855B6EFE50419A999959092B54413D0AD78374FE5041713D0AD7072B544148E17A647FFE5041AE47E14A032B544148E17A5485FE5041AE47E1CA0F2B5441CDCCCC0C96FE504185EB51B8072B544152B81ED597FE5041B81E858B0C2B54413D0AD7639DFE504114AE47610C2B5441333333139FFE5041000000B00A2B5441AE47E14AA1FE5041CDCCCC1C092B54419A999989A3FE5041A4703DCA082B5441E17A14CEA7FE504185EB51F8042B5441AE47E15AA8FE50413D0AD7A3FF2A5441C3F528ECAAFE5041333333D3FC2A54418FC2F5E8ABFE5041713D0AD7FB2A5441D7A370FDAEFE5041F6285CCFF72A54417B14AE87B0FE50411F85EB81F62A544185EB51D8B3FE5041713D0A27F52A54411F85EB91ACFE50419A999989EC2A5441CDCCCC2CA7FE50419A999929E92A544185EB5148A5FE5041B81E85EBE72A5441E17A142E9FFE50413D0AD733ED2A544114AE47C199FE504100000060F22A5441EC51B81E95FE5041C3F528CCF62A5441D7A3707D90FE50411F85EBA1FA2A54411F85EB318BFE5041EC51B8EEFC2A54411F85EBA187FE5041A4703D1AE42A54411F85EB6184FE5041F6285C6FCD2A5441CDCCCC3C89FE50411F85EBC1CC2A5441B81E85EB8DFE5041AE47E11ACC2A5441EC51B8DE92FE5041A4703D6ACB2A54410AD7A3F094FE50410AD7A320CB2A5441E17A14CE98FE5041713D0A97CA2A544114AE47619FFE5041C3F528ACC92A54419A999949A7FE50411F85EB91C82A544185EB5198A6FE50419A999919C82A5441E17A148EA4FE5041CDCCCCBCB82A54419A999939A7FE504114AE4711AF2A5441000000308FFE50417B14AE87AF2A544148E17A6479FE504148E17AF4AF2A544152B81E556CFE50415C8FC2C5CC2A5441B73DD8CA6BFE5041956461DFCB2A5441F0D649225CFE504152E6A868CC2A5441A73B0CF64FFE50416F4D929FCC2A54415E020FAC3AFE504135A74CADCC2A54413A5A30062CFE50415E501FD3CC2A54410AD7A3902BFE504152B81ED5CC2A544165CD585729FE5041BCD40CDACC2A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>515328 - 1441242
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -222 </desc>
+<a>
+0106000000010000000103000000010000001F000000C3F528CCA9EB5041E17A14FE9E025541E17A14EEA6EB5041F6285CDF9E02554100000040A7EB50419A999969A0025541F6285C7FA7EB504133333353A50255419A9999D9A7EB50418FC2F528AA0255418FC2F518A8EB5041EC51B8FEAE02554152B81E15A8EB5041713D0AF7B30255417B14AEF7A7EB50413D0AD763B9025541000000B0A7EB5041F6285C4FBE0255419A999999A7EB504185EB51F8C3025541F6285C7FA7EB504133333363C802554148E17A84A7EB50419A9999E9CD025541666666E6A7EB5041A4703D0AD3025541CDCCCC4CA8EB5041713D0A87D7025541A4703D7AA8EB5041295C8FD2D8025541295C8F62ABEB50418FC2F5C8D8025541713D0A07AEEB5041295C8FB2D8025541A4703DDAB0EB504114AE4751D8025541EC51B8AEB4EB5041D7A370EDD70255419A999919B5EB5041B81E85DBD7025541A4703DDAB4EB50413D0AD773D6025541B81E854BB4EB5041C3F528FCD0025541B81E854BB4EB5041D7A3703DCA02554114AE4791B4EB50411F85EB61C2025541E17A148EB5EB504166666656B8025541000000B0B6EB504148E17A94A90255410AD7A370B6EB504152B81E55A90255418FC2F548B2EB5041D7A3702DA50255417B14AE97ADEB5041C3F5287CA0025541A4703D3AABEB5041E17A140E9F025541C3F528CCA9EB5041E17A14FE9E025541
+</a>
+
+<b>
+01060000000100000001030000000100000028000000000000B0A7EB5041F6285C4FBE0255419A999999A7EB504185EB51F8C3025541F6285C7FA7EB504133333363C802554148E17A84A7EB50419A9999E9CD025541666666E6A7EB5041A4703D0AD3025541BD42A647A8EB50418BE0414DD7025541A4703D7AA8EB5041295C8FD2D8025541F3EE3568ABEB504137DCC5C8D80255414F27B942AEEB5041A6163CAFD80255416A949B6AB1EB5041A3CD0093D8025541EA6DB7AFB4EB5041FFDD45EDD7025541C85650AFB4EB5041B736F4E6D70255418518F9ADB4EB504155072DE7D70255414BF9F71DB4EB50414C5F9BFCD202554124596CE6B3EB50415E2289EBCB0255416C0DDDF1B3EB50411270632ACB025541A7C52614B4EB5041B50C80E7C8025541917B8A92B4EB5041F9A64755C00255413E73C1B8B4EB5041587CB4D8BD0255415D6728DEB4EB504170EEAD15BB025541CA460E16B5EB50413DC25DAAB8025541A4703DDAB5EB50410AD7A340B10255410AD7A370B6EB504152B81E55A90255418FC2F548B2EB5041D7A3702DA50255417B14AE97ADEB5041C3F5287CA00255410FA69547ABEB5041341826169F025541B0EB0B07ABEB5041B3AFD70B9F025541C3F528CCA9EB5041E17A14FE9E025541E17A14EEA6EB5041F6285CDF9E02554100000040A7EB50419A999969A0025541BC3B3143A7EB50418671F6A8A0025541E1E4B459A7EB50414960D667A2025541F6285C7FA7EB504133333353A50255419A9999D9A7EB50418FC2F528AA0255418FC2F518A8EB5041EC51B8FEAE025541C7515517A8EB504163F4B419B10255419C120315A8EB5041C17822FCB302554111571205A8EB50419F981AECB60255412C40F6F7A7EB5041A6778A56B9025541000000B0A7EB5041F6285C4FBE025541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>515328 - 3569705
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -222 </desc>
+<a>
+0106000000010000000103000000010000001F000000C3F528CCA9EB5041E17A14FE9E025541E17A14EEA6EB5041F6285CDF9E02554100000040A7EB50419A999969A0025541F6285C7FA7EB504133333353A50255419A9999D9A7EB50418FC2F528AA0255418FC2F518A8EB5041EC51B8FEAE02554152B81E15A8EB5041713D0AF7B30255417B14AEF7A7EB50413D0AD763B9025541000000B0A7EB5041F6285C4FBE0255419A999999A7EB504185EB51F8C3025541F6285C7FA7EB504133333363C802554148E17A84A7EB50419A9999E9CD025541666666E6A7EB5041A4703D0AD3025541CDCCCC4CA8EB5041713D0A87D7025541A4703D7AA8EB5041295C8FD2D8025541295C8F62ABEB50418FC2F5C8D8025541713D0A07AEEB5041295C8FB2D8025541A4703DDAB0EB504114AE4751D8025541EC51B8AEB4EB5041D7A370EDD70255419A999919B5EB5041B81E85DBD7025541A4703DDAB4EB50413D0AD773D6025541B81E854BB4EB5041C3F528FCD0025541B81E854BB4EB5041D7A3703DCA02554114AE4791B4EB50411F85EB61C2025541E17A148EB5EB504166666656B8025541000000B0B6EB504148E17A94A90255410AD7A370B6EB504152B81E55A90255418FC2F548B2EB5041D7A3702DA50255417B14AE97ADEB5041C3F5287CA0025541A4703D3AABEB5041E17A140E9F025541C3F528CCA9EB5041E17A14FE9E025541
+</a>
+
+<b>
+01060000000100000001030000000100000028000000000000B0A7EB5041F6285C4FBE0255419A999999A7EB504185EB51F8C3025541F6285C7FA7EB504133333363C802554148E17A84A7EB50419A9999E9CD025541666666E6A7EB5041A4703D0AD3025541BD42A647A8EB50418BE0414DD7025541A4703D7AA8EB5041295C8FD2D8025541F3EE3568ABEB504137DCC5C8D80255414F27B942AEEB5041A6163CAFD80255416A949B6AB1EB5041A3CD0093D8025541EA6DB7AFB4EB5041FFDD45EDD7025541C85650AFB4EB5041B736F4E6D70255418518F9ADB4EB504155072DE7D70255414BF9F71DB4EB50414C5F9BFCD202554124596CE6B3EB50415E2289EBCB0255416C0DDDF1B3EB50411270632ACB025541A7C52614B4EB5041B50C80E7C8025541917B8A92B4EB5041F9A64755C00255413E73C1B8B4EB5041587CB4D8BD0255415D6728DEB4EB504170EEAD15BB025541CA460E16B5EB50413DC25DAAB8025541A4703DDAB5EB50410AD7A340B10255410AD7A370B6EB504152B81E55A90255418FC2F548B2EB5041D7A3702DA50255417B14AE97ADEB5041C3F5287CA00255410FA69547ABEB5041341826169F025541B0EB0B07ABEB5041B3AFD70B9F025541C3F528CCA9EB5041E17A14FE9E025541E17A14EEA6EB5041F6285CDF9E02554100000040A7EB50419A999969A0025541BC3B3143A7EB50418671F6A8A0025541E1E4B459A7EB50414960D667A2025541F6285C7FA7EB504133333353A50255419A9999D9A7EB50418FC2F528AA0255418FC2F518A8EB5041EC51B8FEAE025541C7515517A8EB504163F4B419B10255419C120315A8EB5041C17822FCB302554111571205A8EB50419F981AECB60255412C40F6F7A7EB5041A6778A56B9025541000000B0A7EB5041F6285C4FBE025541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>900653 - 244137
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+010600000002000000010300000002000000100000003D0AD7235FEA5041C3F5287C152E54418FC2F5B867EA5041C3F528AC202E544114AE47E176EA5041333333C3142E5441B81E856B7BEA5041B81E858B112E5441B81E852B75EA504166666616072E54411F85EBE168EA5041000000D0EE2D5441B81E853B5CEA50410AD7A350EE2D54417B14AE3751EA50418FC2F5E8ED2D5441D7A3703D46EA5041295C8FB2F12D5441333333034EEA5041EC51B8DEFC2D544114AE476150EA5041CDCCCC5CF92D54413333334355EA5041F6285CCFF82D5441F6285CBF58EA504185EB5108FD2D5441713D0A8759EA50413D0AD793012E54416666660656EA5041295C8F62082E54413D0AD7235FEA5041C3F5287C152E544105000000D7A370DD66EA504114AE47B1F92D5441E17A148E66EA5041D7A370EDFA2D5441713D0AB765EA5041EC51B8BEFA2D54415C8FC20566EA50413D0AD783F92D5441D7A370DD66EA504114AE47B1F92D54410103000000020000004A00000014AE47E1ABEA50417B14AEF7CD2D5441C3F528ECA6EA5041B81E859BCE2D544166666656A2EA5041EC51B8DECF2D5441295C8F8299EA504166666686CF2D54415C8FC2759BEA50415C8FC235C52D5441B81E850BA0EA5041CDCCCCACBE2D5441E17A148E9EEA50419A9999A9BA2D5441E17A142E9DEA50411F85EBF1B82D544152B81E9594EA50411F85EB51BA2D5441CDCCCC2C92EA504114AE4791B72D5441D7A370AD97EA5041B81E85FBB22D5441000000F098EA504166666676B02D54415C8FC2659AEA5041E17A146EAD2D54419A99990990EA5041B81E85FBAE2D54419A9999D97FEA504185EB51D8B12D5441E17A14DE76EA5041C3F528ACB32D5441D7A370ED6EEA5041666666B6B72D5441C3F528DC65EA5041E17A141EC22D5441000000105AEA5041A4703D1ACC2D5441000000405CEA50413D0AD763D12D544114AE47C168EA50418FC2F5B8D62D5441295C8FA26EEA5041CDCCCC8CD92D5441B81E859B75EA504166666666DC2D54413D0AD7F378EA504152B81E55DD2D54419A9999E97FEA5041C3F5281CDB2D54413333339389EA5041000000A0DA2D5441A4703D5A90EA504148E17AB4D42D544148E17A0493EA50415C8FC245D62D5441EC51B8AE95EA504148E17A04D52D54419A99995998EA5041AE47E14ADB2D54419A9999A998EA50418FC2F558E22D54419A99995998EA5041EC51B89EE82D5441F6285C1F9CEA5041295C8F82EC2D5441EC51B85E9EEA504133333383F12D544100000040A1EA5041295C8FD2EE2D5441AE47E1BAA4EA5041CDCCCC1CEF2D54413D0AD753A7EA5041295C8F72F02D544166666626A8EA504185EB5108F02D5441B81E85CBA8EA50417B14AE37F02D5441C3F528BCA9EA5041EC51B82EF12D54418FC2F5A8AAEA5041B81E85CBF12D54419A999999ABEA5041A4703D0AF22D5441713D0A57ACEA5041EC51B8EEF12D54418FC2F5A8ACEA5041EC51B84EF12D544152B81E45ACEA5041E17A145EF02D54415C8FC255ACEA5041CDCCCC7CEF2D54411F85EB31ADEA5041EC51B81EEF2D54413D0AD733AEEA5041B81E85BBEE2D5441713D0A17AFEA5041333333C3ED2D5441295C8FB2B0EA5041295C8F72EC2D544166666676B1EA504166666676EB2D544185EB51A8B1EA5041AE47E1BAEA2D544133333343B1EA5041CDCCCCFCE92D544148E17AA4B0EA504100000040E92D544185EB5188B0EA50417B14AE37E82D544152B81E05B1EA5041CDCCCCECE72D54410AD7A380B1EA5041B81E85CBE82D544114AE4771B2EA5041AE47E12AE82D54417B14AE07B3EA50410AD7A3F0E72D54413D0AD713B4EA504166666656E82D54418FC2F5C8B4EA5041D7A3709DE72D544133333343B5EA504114AE4741E72D544114AE4741B5EA5041B81E855BE22D5441EC51B82EBCEA50419A999909E02D544148E17AF4BAEA50411F85EBE1DB2D54411F85EBC1BDEA50413D0AD7F3D62D5441B81E850BC1EA504114AE4791D62D5441AE47E1AAC3EA5041295C8F22D02D5441AE47E1BABBEA50415C8FC235CA2D5441A4703D8AB8EA5041CDCCCC9CCC2D544114AE4731B4EA5041F6285C2FD32D5441295C8F52B3EA5041000000A0DA2D5441D7A3707DAEEA504133333303DB2D544114AE47E1ABEA50417B14AEF7CD2D54410B000000F6285C6F76EA5041CDCCCCBCC02D5441D7A3704D79EA504152B81EC5C12D5441AE47E18A7DEA504185EB5118C52D54415C8FC29582EA5041E17A145ECA2D54415C8FC2757EEA504114AE4761CE2D5441295C8FC279EA5041EC51B88ED02D5441F6285C0F75EA504114AE4771D02D5441CDCCCCBC71EA5041C3F528FCCF2D5441C3F528EC6CEA50410AD7A350CC2D5441D7A3709D6FEA5041CDCCCCCCC42D5441F6285C6F76EA5041CDCCCCBCC02D5441
+</a>
+
+<b>
+0106000000010000000103000000020000007700000016FBCBF099EA5041A6A71DFBAF2D54412920386098EA5041BADCA2BBAD2D54419A99990990EA5041B81E85FBAE2D544109F6EE8786EA5041CBFBDFA9B02D54410A8D40067CEA504188C7919FB22D544186604F9D7BEA5041B387EBB4B22D54413A73211C7AEA504112054903B32D54410899212C78EA504154673268B32D5441E17A14DE76EA5041C3F528ACB32D5441D7A370ED6EEA5041666666B6B72D5441C3F528DC65EA5041E17A141EC22D5441000000105AEA5041A4703D1ACC2D5441000000405CEA50413D0AD763D12D54419A9999F95BEA50419A999929D52D54410000003071EA5041C3F528ECE62D54415D4DE02972EA5041B9DDCDC0E32D5441355E7C2073EA5041CAACF9DCE02D544198FBE41775EA504162154A7EDC2D5441B81E859B75EA504166666666DC2D54417EE4B7CD77EA5041675E2003DD2D5441411532FE77EA5041C402A410DD2D544118FC0B1578EA504121D00217DD2D5441A4CB961C78EA5041CA121D19DD2D5441BD26DF1F78EA5041CF57071ADD2D5441F97AB93178EA5041E96E011FDD2D5441A58700F87CEA5041BE9E10D9DB2D5441BC3345A180EA50416F1AD3D2D92D5441AE7AE34D87EA5041A4470036DD2D54413333339389EA5041000000A0DA2D544181476F7290EA5041A39C1E56D32D5441A0E512BD92EA5041498957A5D42D54412F35210396EA5041562682AED22D5441EABFFD9C99EA5041F7760936DA2D5441BD842F4999EA50414051F415E12D5441700E93A198EA5041A1C809FFE52D5441DD22D3939BEA5041F73F1FE8EA2D5441A44ADA369DEA5041BE67268BEC2D544157D43D8F9CEA50411FDF3B74F12D54414A3713869EEA5041BACB74C3F22D5441339AE87CA0EA50411FDF3B74F12D5441AC4B5378A1EA5041DE05CAD5EE2D544177050D88A1EA5041F37190D8EE2D54414D1ADB9CA5EA5041320CF190EF2D54415B390509A7EA504157B734D1EF2D544159BD64DEA7EA504151CBA62CF02D544166666626A8EA504185EB5108F02D5441B81E85CBA8EA50417B14AE37F02D54412BAF0D60A9EA504193EF29D0F02D54418F754C9EABEA50411FDF3B74F12D5441BBB01AF2ABEA5041DE05CAD5EE2D5441A413F0E8ADEA5041908F2D2EEE2D5441FC898C90AEEA5041908F2D2EEE2D5441295C8FB2B0EA5041295C8F72EC2D544124B14F05B1EA504146CD0208EC2D544183863E2AB1EA504169EE74D8EB2D544166666676B1EA504166666676EB2D544185EB51A8B1EA5041AE47E1BAEA2D544133333343B1EA5041CDCCCCFCE92D5441A6DDD0A8B0EA504195582845E92D544148E17AA4B0EA504100000040E92D544185EB5188B0EA50417B14AE37E82D544152B81E05B1EA5041CDCCCCECE72D54410AD7A380B1EA5041B81E85CBE82D544114AE4771B2EA5041AE47E12AE82D54417B14AE07B3EA50410AD7A3F0E72D54413D0AD713B4EA504166666656E82D54418FC2F5C8B4EA5041D7A3709DE72D544133333343B5EA504114AE4741E72D54416C3A475AB5EA5041732679F9E62D5441F97E701DB6EA5041D3333D9AE42D5441F8EDDAC8B4EA50418EC790BDE12D5441D4B385B6B8EA5041C79F891AE02D5441208DF754BBEA50416D8CC269E12D544141C8C5A8BBEA5041D33CB423DE2D54417AA0BE05BAEA5041BE9E10D9DB2D5441BB7930A4BCEA5041304F0293D82D544182A13747BEEA5041C33AC2A0D52D544179A89404C1EA5041B8583411D22D54419DF7BDC1C1EA5041E29070B5CE2D54415B269BF9BDEA5041D5A2C4E2CB2D54416D0394FCBBEA50412E876522CC2D5441B278B762B8EA5041E91142BCCF2D54412C2A225EB9EA504182615002D32D5441EB50B0BFB6EA5041CFD7ECA9D32D5441F8EDDAC8B4EA5041A39C1E56D32D5441AA773E21B4EA5041304F0293D82D54411863FBECB2EA504141574DCCDA2D54414A002938AFEA504145EDA5DDDA2D5441356285EDACEA5041304F0293D82D5441569D5341ADEA5041498957A5D42D5441A413F0E8ADEA5041DC7417B3D12D5441FC898C90AEEA504162C3ACB7D02D544182D82195ADEA5041154D1010D02D544141FFAFF6AAEA5041E91142BCCF2D544115C4E1A2AAEA50416F60D7C0CE2D544100263E58A8EA50416F60D7C0CE2D54412EFE36B5A6EA50419B9BA514CF2D5441469B61BEA4EA504173FAD3CDD02D54416D3EE8BF9AEA50412CBB5E3CD02D5441700E93A198EA5041C7D67368CF2D5441637168989AEA5041F5AE6CC5CD2D5441B1E704409BEA5041B4D5FA26CB2D5441780F0CE39CEA5041CB722530C92D5441D085A88A9DEA5041ACD481E5C62D5441FE5DA1E79BEA5041B871ACEEC42D5441FE5DA1E79BEA5041F149A54BC32D54414A3713869EEA504184356559C02D5441A44ADA369DEA504191D28F62BE2D54411EFC44329EEA50417C34EC17BC2D5441780F0CE39CEA5041B50CE574BA2D5441700E93A198EA5041D647B3C8BA2D54417CABBDAA96EA5041D647B3C8BA2D54412F35210396EA5041A86FBA6BBC2D5441680D1A6094EA5041B50CE574BA2D5441486F761592EA50410F20AC25B92D5441AD823DC690EA5041CE463A87B62D54418948E8B394EA5041335A0138B52D5441CA215A5297EA5041C645C145B22D544116FBCBF099EA5041A6A71DFBAF2D54410B000000F6285C6F76EA5041CDCCCCBCC02D5441D7A3704D79EA504152B81EC5C12D5441AE47E18A7DEA504185EB5118C52D54415C8FC29582EA5041E17A145ECA2D54415C8FC2757EEA504114AE4761CE2D5441295C8FC279EA5041EC51B88ED02D5441F6285C0F75EA504114AE4771D02D5441CDCCCCBC71EA5041C3F528FCCF2D5441C3F528EC6CEA50410AD7A350CC2D5441D7A3709D6FEA5041CDCCCCCCC42D5441F6285C6F76EA5041CDCCCCBCC02D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>900653 - 280150
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+010600000002000000010300000002000000100000003D0AD7235FEA5041C3F5287C152E54418FC2F5B867EA5041C3F528AC202E544114AE47E176EA5041333333C3142E5441B81E856B7BEA5041B81E858B112E5441B81E852B75EA504166666616072E54411F85EBE168EA5041000000D0EE2D5441B81E853B5CEA50410AD7A350EE2D54417B14AE3751EA50418FC2F5E8ED2D5441D7A3703D46EA5041295C8FB2F12D5441333333034EEA5041EC51B8DEFC2D544114AE476150EA5041CDCCCC5CF92D54413333334355EA5041F6285CCFF82D5441F6285CBF58EA504185EB5108FD2D5441713D0A8759EA50413D0AD793012E54416666660656EA5041295C8F62082E54413D0AD7235FEA5041C3F5287C152E544105000000D7A370DD66EA504114AE47B1F92D5441E17A148E66EA5041D7A370EDFA2D5441713D0AB765EA5041EC51B8BEFA2D54415C8FC20566EA50413D0AD783F92D5441D7A370DD66EA504114AE47B1F92D54410103000000020000004A00000014AE47E1ABEA50417B14AEF7CD2D5441C3F528ECA6EA5041B81E859BCE2D544166666656A2EA5041EC51B8DECF2D5441295C8F8299EA504166666686CF2D54415C8FC2759BEA50415C8FC235C52D5441B81E850BA0EA5041CDCCCCACBE2D5441E17A148E9EEA50419A9999A9BA2D5441E17A142E9DEA50411F85EBF1B82D544152B81E9594EA50411F85EB51BA2D5441CDCCCC2C92EA504114AE4791B72D5441D7A370AD97EA5041B81E85FBB22D5441000000F098EA504166666676B02D54415C8FC2659AEA5041E17A146EAD2D54419A99990990EA5041B81E85FBAE2D54419A9999D97FEA504185EB51D8B12D5441E17A14DE76EA5041C3F528ACB32D5441D7A370ED6EEA5041666666B6B72D5441C3F528DC65EA5041E17A141EC22D5441000000105AEA5041A4703D1ACC2D5441000000405CEA50413D0AD763D12D544114AE47C168EA50418FC2F5B8D62D5441295C8FA26EEA5041CDCCCC8CD92D5441B81E859B75EA504166666666DC2D54413D0AD7F378EA504152B81E55DD2D54419A9999E97FEA5041C3F5281CDB2D54413333339389EA5041000000A0DA2D5441A4703D5A90EA504148E17AB4D42D544148E17A0493EA50415C8FC245D62D5441EC51B8AE95EA504148E17A04D52D54419A99995998EA5041AE47E14ADB2D54419A9999A998EA50418FC2F558E22D54419A99995998EA5041EC51B89EE82D5441F6285C1F9CEA5041295C8F82EC2D5441EC51B85E9EEA504133333383F12D544100000040A1EA5041295C8FD2EE2D5441AE47E1BAA4EA5041CDCCCC1CEF2D54413D0AD753A7EA5041295C8F72F02D544166666626A8EA504185EB5108F02D5441B81E85CBA8EA50417B14AE37F02D5441C3F528BCA9EA5041EC51B82EF12D54418FC2F5A8AAEA5041B81E85CBF12D54419A999999ABEA5041A4703D0AF22D5441713D0A57ACEA5041EC51B8EEF12D54418FC2F5A8ACEA5041EC51B84EF12D544152B81E45ACEA5041E17A145EF02D54415C8FC255ACEA5041CDCCCC7CEF2D54411F85EB31ADEA5041EC51B81EEF2D54413D0AD733AEEA5041B81E85BBEE2D5441713D0A17AFEA5041333333C3ED2D5441295C8FB2B0EA5041295C8F72EC2D544166666676B1EA504166666676EB2D544185EB51A8B1EA5041AE47E1BAEA2D544133333343B1EA5041CDCCCCFCE92D544148E17AA4B0EA504100000040E92D544185EB5188B0EA50417B14AE37E82D544152B81E05B1EA5041CDCCCCECE72D54410AD7A380B1EA5041B81E85CBE82D544114AE4771B2EA5041AE47E12AE82D54417B14AE07B3EA50410AD7A3F0E72D54413D0AD713B4EA504166666656E82D54418FC2F5C8B4EA5041D7A3709DE72D544133333343B5EA504114AE4741E72D544114AE4741B5EA5041B81E855BE22D5441EC51B82EBCEA50419A999909E02D544148E17AF4BAEA50411F85EBE1DB2D54411F85EBC1BDEA50413D0AD7F3D62D5441B81E850BC1EA504114AE4791D62D5441AE47E1AAC3EA5041295C8F22D02D5441AE47E1BABBEA50415C8FC235CA2D5441A4703D8AB8EA5041CDCCCC9CCC2D544114AE4731B4EA5041F6285C2FD32D5441295C8F52B3EA5041000000A0DA2D5441D7A3707DAEEA504133333303DB2D544114AE47E1ABEA50417B14AEF7CD2D54410B000000F6285C6F76EA5041CDCCCCBCC02D5441D7A3704D79EA504152B81EC5C12D5441AE47E18A7DEA504185EB5118C52D54415C8FC29582EA5041E17A145ECA2D54415C8FC2757EEA504114AE4761CE2D5441295C8FC279EA5041EC51B88ED02D5441F6285C0F75EA504114AE4771D02D5441CDCCCCBC71EA5041C3F528FCCF2D5441C3F528EC6CEA50410AD7A350CC2D5441D7A3709D6FEA5041CDCCCCCCC42D5441F6285C6F76EA5041CDCCCCBCC02D5441
+</a>
+
+<b>
+0106000000010000000103000000020000007700000016FBCBF099EA5041A6A71DFBAF2D54412920386098EA5041BADCA2BBAD2D54419A99990990EA5041B81E85FBAE2D544109F6EE8786EA5041CBFBDFA9B02D54410A8D40067CEA504188C7919FB22D544186604F9D7BEA5041B387EBB4B22D54413A73211C7AEA504112054903B32D54410899212C78EA504154673268B32D5441E17A14DE76EA5041C3F528ACB32D5441D7A370ED6EEA5041666666B6B72D5441C3F528DC65EA5041E17A141EC22D5441000000105AEA5041A4703D1ACC2D5441000000405CEA50413D0AD763D12D54419A9999F95BEA50419A999929D52D54410000003071EA5041C3F528ECE62D54415D4DE02972EA5041B9DDCDC0E32D5441355E7C2073EA5041CAACF9DCE02D544198FBE41775EA504162154A7EDC2D5441B81E859B75EA504166666666DC2D54417EE4B7CD77EA5041675E2003DD2D5441411532FE77EA5041C402A410DD2D544118FC0B1578EA504121D00217DD2D5441A4CB961C78EA5041CA121D19DD2D5441BD26DF1F78EA5041CF57071ADD2D5441F97AB93178EA5041E96E011FDD2D5441A58700F87CEA5041BE9E10D9DB2D5441BC3345A180EA50416F1AD3D2D92D5441AE7AE34D87EA5041A4470036DD2D54413333339389EA5041000000A0DA2D544181476F7290EA5041A39C1E56D32D5441A0E512BD92EA5041498957A5D42D54412F35210396EA5041562682AED22D5441EABFFD9C99EA5041F7760936DA2D5441BD842F4999EA50414051F415E12D5441700E93A198EA5041A1C809FFE52D5441DD22D3939BEA5041F73F1FE8EA2D5441A44ADA369DEA5041BE67268BEC2D544157D43D8F9CEA50411FDF3B74F12D54414A3713869EEA5041BACB74C3F22D5441339AE87CA0EA50411FDF3B74F12D5441AC4B5378A1EA5041DE05CAD5EE2D544177050D88A1EA5041F37190D8EE2D54414D1ADB9CA5EA5041320CF190EF2D54415B390509A7EA504157B734D1EF2D544159BD64DEA7EA504151CBA62CF02D544166666626A8EA504185EB5108F02D5441B81E85CBA8EA50417B14AE37F02D54412BAF0D60A9EA504193EF29D0F02D54418F754C9EABEA50411FDF3B74F12D5441BBB01AF2ABEA5041DE05CAD5EE2D5441A413F0E8ADEA5041908F2D2EEE2D5441FC898C90AEEA5041908F2D2EEE2D5441295C8FB2B0EA5041295C8F72EC2D544124B14F05B1EA504146CD0208EC2D544183863E2AB1EA504169EE74D8EB2D544166666676B1EA504166666676EB2D544185EB51A8B1EA5041AE47E1BAEA2D544133333343B1EA5041CDCCCCFCE92D5441A6DDD0A8B0EA504195582845E92D544148E17AA4B0EA504100000040E92D544185EB5188B0EA50417B14AE37E82D544152B81E05B1EA5041CDCCCCECE72D54410AD7A380B1EA5041B81E85CBE82D544114AE4771B2EA5041AE47E12AE82D54417B14AE07B3EA50410AD7A3F0E72D54413D0AD713B4EA504166666656E82D54418FC2F5C8B4EA5041D7A3709DE72D544133333343B5EA504114AE4741E72D54416C3A475AB5EA5041732679F9E62D5441F97E701DB6EA5041D3333D9AE42D5441F8EDDAC8B4EA50418EC790BDE12D5441D4B385B6B8EA5041C79F891AE02D5441208DF754BBEA50416D8CC269E12D544141C8C5A8BBEA5041D33CB423DE2D54417AA0BE05BAEA5041BE9E10D9DB2D5441BB7930A4BCEA5041304F0293D82D544182A13747BEEA5041C33AC2A0D52D544179A89404C1EA5041B8583411D22D54419DF7BDC1C1EA5041E29070B5CE2D54415B269BF9BDEA5041D5A2C4E2CB2D54416D0394FCBBEA50412E876522CC2D5441B278B762B8EA5041E91142BCCF2D54412C2A225EB9EA504182615002D32D5441EB50B0BFB6EA5041CFD7ECA9D32D5441F8EDDAC8B4EA5041A39C1E56D32D5441AA773E21B4EA5041304F0293D82D54411863FBECB2EA504141574DCCDA2D54414A002938AFEA504145EDA5DDDA2D5441356285EDACEA5041304F0293D82D5441569D5341ADEA5041498957A5D42D5441A413F0E8ADEA5041DC7417B3D12D5441FC898C90AEEA504162C3ACB7D02D544182D82195ADEA5041154D1010D02D544141FFAFF6AAEA5041E91142BCCF2D544115C4E1A2AAEA50416F60D7C0CE2D544100263E58A8EA50416F60D7C0CE2D54412EFE36B5A6EA50419B9BA514CF2D5441469B61BEA4EA504173FAD3CDD02D54416D3EE8BF9AEA50412CBB5E3CD02D5441700E93A198EA5041C7D67368CF2D5441637168989AEA5041F5AE6CC5CD2D5441B1E704409BEA5041B4D5FA26CB2D5441780F0CE39CEA5041CB722530C92D5441D085A88A9DEA5041ACD481E5C62D5441FE5DA1E79BEA5041B871ACEEC42D5441FE5DA1E79BEA5041F149A54BC32D54414A3713869EEA504184356559C02D5441A44ADA369DEA504191D28F62BE2D54411EFC44329EEA50417C34EC17BC2D5441780F0CE39CEA5041B50CE574BA2D5441700E93A198EA5041D647B3C8BA2D54417CABBDAA96EA5041D647B3C8BA2D54412F35210396EA5041A86FBA6BBC2D5441680D1A6094EA5041B50CE574BA2D5441486F761592EA50410F20AC25B92D5441AD823DC690EA5041CE463A87B62D54418948E8B394EA5041335A0138B52D5441CA215A5297EA5041C645C145B22D544116FBCBF099EA5041A6A71DFBAF2D54410B000000F6285C6F76EA5041CDCCCCBCC02D5441D7A3704D79EA504152B81EC5C12D5441AE47E18A7DEA504185EB5118C52D54415C8FC29582EA5041E17A145ECA2D54415C8FC2757EEA504114AE4761CE2D5441295C8FC279EA5041EC51B88ED02D5441F6285C0F75EA504114AE4771D02D5441CDCCCCBC71EA5041C3F528FCCF2D5441C3F528EC6CEA50410AD7A350CC2D5441D7A3709D6FEA5041CDCCCCCCC42D5441F6285C6F76EA5041CDCCCCBCC02D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>911967 - 399949
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000001000000010300000001000000D7000000C3F528BC34E25041E17A140EFDA65441CDCCCC9C24E250418FC2F54800A75441C3F528FC25E2504114AE47D105A754417B14AE1726E250417B14AEA70AA754411F85EB7125E25041666666260DA75441295C8F7222E25041D7A3703D14A754415C8FC21520E250413333333316A7544114AE47911CE25041E17A146E16A754410AD7A3F019E25041E17A145E16A7544185EB51F818E25041A4703DBA17A75441713D0AC71DE25041B81E851B24A7544185EB51B81FE25041EC51B84E26A75441295C8F4223E250410000006028A754411F85EBF126E25041D7A370FD28A754410000006036E25041333333D327A7544114AE472141E25041295C8FC226A75441666666C64BE250419A99993924A754413D0AD7634CE25041E17A140E24A7544152B81EF54BE25041F6285CFF22A754415C8FC2654DE2504152B81E4521A75441333333834DE250418FC2F55820A75441E17A14FE4FE25041295C8FE21FA75441295C8F4251E2504114AE47B120A7544185EB513853E25041CDCCCC2C20A7544185EB51B854E25041E17A149E1EA75441333333B355E25041F6285C8F1EA754415C8FC2C557E2504152B81E551FA7544114AE47C159E250415C8FC2751AA75441295C8FC25FE2504114AE473114A754413333332361E2504114AE47C112A754419A99997962E25041C3F5285C11A7544185EB51D863E250411F85EB910FA75441AE47E1EA64E250411F85EBE10DA75441295C8F9264E25041EC51B8FE0BA754413D0AD74365E250413D0AD7030BA75441AE47E16A66E250413D0AD7030BA754417B14AE6767E25041295C8F9208A754419A9999E967E250417B14AE3707A754411F85EB1169E25041295C8FC202A75441333333636AE25041F6285CAFFDA6544152B81E456EE25041E17A147EF6A65441000000D06EE25041C3F528DCF3A65441F6285C1F6FE25041D7A370DDECA6544148E17AA46FE25041D7A3709DEAA65441B81E85FB70E250413D0AD753E9A65441E17A141E72E25041A4703D4AE6A65441C3F5284C6FE25041D7A370ADE4A65441A4703D1A70E25041A4703D9AE2A65441F6285C5F71E25041CDCCCCFCE0A65441EC51B8DE72E250411F85EB01E0A65441C3F528BC73E250413D0AD7B3DDA65441713D0AB774E25041EC51B82EDDA65441AE47E18A74E2504148E17AB4DAA65441AE47E14A75E25041000000F0D7A654416666663679E250418FC2F518D0A65441C3F528AC79E250411F85EB71CDA654411F85EB617CE25041000000A0C4A65441713D0A277CE250410AD7A3A0C1A654411F85EBA17BE2504148E17AF4BFA65441E17A148E7AE250417B14AE17BFA65441C3F5284C76E2504148E17AE4BEA654413D0AD7A372E2504152B81E65C1A654410AD7A35071E2504114AE4751C2A65441CDCCCCDC6DE250411F85EB11C2A65441A4703DEA6AE25041E17A14FEC0A65441A4703DEA6AE250419A9999B9BCA654413D0AD7336BE2504114AE4761BCA65441A4703D2A6AE250415C8FC235B9A654415C8FC22568E25041333333D3B7A654419A99993967E2504166666676B5A6544114AE472166E250418FC2F5D8B3A65441E17A14CE64E250417B14AE27B3A65441A4703D7A63E25041EC51B85EB1A65441F6285CBF61E250418FC2F568AFA654418FC2F5185FE250415C8FC2D5ABA65441666666B65DE2504133333373AAA65441F6285C4F5DE250413D0AD7F3A8A65441333333635CE25041C3F5284CA9A654411F85EBB15BE250415C8FC255AAA65441E17A141E5BE250415C8FC255AAA65441D7A3706D5AE25041713D0A07ABA65441A4703D5A58E250419A9999A9ABA654417B14AEB757E250411F85EB41ABA65441666666C657E250410AD7A390AAA6544114AE474157E25041000000E0A9A654415C8FC29555E250417B14AEC7A8A654410AD7A3D055E25041000000A0A7A65441F6285C1F55E25041F6285C2FA6A6544185EB51B854E25041A4703D2AA7A6544185EB51F853E250410AD7A320A6A654416666669652E250417B14AEC7A5A65441D7A3707D51E2504133333383A4A6544152B81E2551E25041CDCCCCCCA4A654418FC2F5B851E25041E17A143EA6A6544114AE475151E25041CDCCCC0CA7A65441F6285C2F4FE25041A4703D2AA7A65441AE47E12A4DE2504152B81E25A8A654410AD7A3604EE2504166666616A8A65441333333434EE25041295C8F02A9A65441713D0AD74EE25041D7A3703DA9A6544152B81EE551E25041295C8F82A7A65441D7A3703D52E2504185EB5178A9A654413333337353E250411F85EB41ABA6544148E17A2454E250418FC2F528ADA6544148E17AE454E250410AD7A390ADA654411F85EBC155E25041CDCCCC7CAEA65441E17A14EE55E2504114AE4781B0A654418FC2F5E856E250410AD7A300B2A6544152B81E9558E25041CDCCCCECB2A654418FC2F5E856E250413D0AD713B4A65441B81E85CB56E25041EC51B80EB5A654418FC2F56855E2504100000000B5A654415C8FC2D554E25041C3F528ACB6A65441AE47E1DA53E25041295C8F22B7A654419A99996952E2504114AE4731B7A65441000000A053E25041D7A3701DB8A654415C8FC21554E2504148E17AC4B7A65441D7A3707D54E25041EC51B80EB8A65441D7A3707D54E25041CDCCCC9CB9A654415C8FC29555E2504133333313BAA654410AD7A3D055E2504166666666BBA65441B81E85CB56E250417B14AE17BCA6544152B81ED557E25041B81E85EBBBA654410000001058E25041295C8F52BCA65441EC51B8DE58E2504166666626BCA6544185EB512859E250418FC2F548BBA65441713D0AF759E250410AD7A3F0BAA654411F85EB315AE250417B14AED7B9A6544185EB51E859E25041713D0A67B8A654411F85EB715CE250415C8FC275B8A654418FC2F5D85CE25041713D0A27B9A65441CDCCCC6C5DE25041F6285CBFB8A654418FC2F5585EE25041CDCCCCDCB8A65441333333235DE25041EC51B88EB6A65441333333A35BE2504114AE47B1B5A65441AE47E18A5AE250413D0AD793B5A65441333333235AE250419A999909B6A654410000009059E2504114AE47B1B5A654419A99991959E250413D0AD7D3B4A654419A9999995AE25041F6285C4FB4A654415C8FC2855BE2504114AE47F1B4A654417B14AEE75CE2504152B81EC5B4A6544152B81E055DE25041B81E85BBB3A65441666666B65DE25041713D0A77B2A6544114AE47B15EE25041F6285C0FB2A654413D0AD7535FE2504133333323B1A654410000004060E250415C8FC205B1A654415C8FC2B560E250419A999999B1A654413333339361E25041E17A141EB2A654411F85EB2163E2504114AE47F1B4A65441B81E85EB64E25041CDCCCC2CB5A65441F6285CBF64E250413D0AD713B7A65441EC51B87E65E25041EC51B80EB8A65441295C8FD266E2504133333393B8A65441EC51B8BE67E250410AD7A3F0BAA65441713D0A9766E25041000000B0BBA654410000003066E250419A999939BEA654413D0AD74365E25041713D0A17BFA6544152B81EF565E25041A4703D6AC0A65441295C8F5265E2504152B81E65C1A6544114AE472166E25041295C8F82C1A65441713D0A9766E250413D0AD733C2A65441AE47E16A66E25041D7A3703DC3A654411F85EBE163E250413D0AD773C4A654418FC2F58863E25041C3F5280CC4A654410AD7A37062E25041295C8F82C4A654418FC2F5C862E250419A9999E9C4A65441E17A148E62E25041E17A142EC6A6544148E17A0463E2504148E17AA4C6A65441A4703DBA62E250411F85EB81C7A654413333331363E250413D0AD7E3C8A65441713D0A2762E2504114AE47C1C9A6544185EB515861E250413D0AD7A3C9A6544152B81E0560E25041295C8F72CAA6544114AE47B15EE250410AD7A300CCA65441713D0A375CE250419A999919CDA65441AE47E14A58E2504100000000D2A65441D7A370AD59E2504100000070D6A65441C3F528AC5FE250411F85EB01E0A65441B81E85BB5CE25041EC51B86EDFA65441AE47E1CA59E25041EC51B88EEAA65441333333235AE250411F85EBA1EFA6544114AE47415AE25041EC51B83EF4A65441295C8F7259E250417B14AE07F6A6544114AE478159E2504152B81EA5F7A654417B14AE7758E25041D7A370FDF7A654417B14AEF756E250413D0AD733F9A65441EC51B81E58E25041C3F5288CF9A654419A99991959E250415C8FC295FAA654416666668658E250411F85EB81FBA6544152B81E5556E2504185EB51F8FBA65441A4703D5A55E250410AD7A38001A75441713D0A8752E2504152B81E0505A7544114AE475151E2504152B81E0505A7544114AE479150E250417B14AEA705A75441B81E855B4FE2504114AE477107A75441000000F04CE250419A99994909A754418FC2F5084BE2504185EB515809A75441B81E856B49E2504185EB51D807A75441333333D346E250419A9999C907A75441EC51B82E47E25041CDCCCC3C06A75441AE47E18A45E25041E17A14DE02A754418FC2F55844E25041A4703D0A04A75441CDCCCC6C43E25041CDCCCCEC03A75441A4703D0A42E250417B14AEE704A7544185EB51F839E25041713D0A2707A75441295C8FC238E250419A99990907A754417B14AE0737E25041AE47E1BA07A75441B81E859B34E250415C8FC2F507A7544114AE47E12FE25041F6285CBF09A754419A9999492AE250410AD7A3300BA754417B14AEA729E2504185EB515809A754416666662631E250413D0AD79306A7544114AE473136E25041713D0A1706A75441C3F528BC34E25041E17A140EFDA65441
+</a>
+
+<b>
+01060000000100000001030000000100000076010000C3F528FC25E2504114AE47D105A754410721E6FE25E25041CF48884C06A754419C40E42826E25041619D55BA0AA754412622F61525E25041CA27F91F14A75441917CC84325E250410BDD190116A75441698404213FE25041AD70E8280CA75441AA75091D40E250414845EF2712A75441B91567AD2DE25041DB3860BF1AA754418A41DC3329E25041E6DE09171CA7544112407D0626E2504181448D331CA75441F1C0520324E25041A2B92B8028A754411F85EBF126E25041D7A370FD28A75441B29D92A52EE250412B64936828A754410000006036E25041333333D327A7544114AE472141E25041295C8FC226A75441666666C64BE250419A99993924A754413D0AD7634CE25041E17A140E24A7544152B81EF54BE25041F6285CFF22A754415C8FC2654DE2504152B81E4521A75441333333834DE250418FC2F55820A75441E17A14FE4FE25041295C8FE21FA754417591D2B850E2504143B4875920A75441149E784851E250413922B8AF20A75441A8C3E07851E25041433AF0A220A754414918C0D351E2504101FFF18A20A7544185EB513853E25041CDCCCC2C20A7544185EB51B854E25041E17A149E1EA75441CC6436EF54E25041FAF8DB9A1EA7544136DDBA0F55E25041CABC998A1EA75441749C785A55E2504159E790941EA75441333333B355E25041F6285C8F1EA754415C8FC2C557E2504152B81E551FA754412F9F938459E250419738F40A1BA7544114AE47C159E250415C8FC2751AA75441295C8FC25FE2504114AE473114A75441F71448C65FE25041D175652D14A754413333332361E2504114AE47C112A754419A99997962E25041C3F5285C11A7544185EB51D863E250411F85EB910FA75441AE47E1EA64E250411F85EBE10DA75441295C8F9264E25041EC51B8FE0BA754413D0AD74365E250413D0AD7030BA75441AE47E16A66E250413D0AD7030BA754417B14AE6767E25041295C8F9208A75441F9A1B38067E250418FD9C04F08A754417B5E9C4669E25041A30248DEFFA65441C47399356BE250411AD84D00FCA654414C4218006CE2504135D5CFAEFAA65441739B15C26DE250418310568DF6A654414901967E6DE250418651D80EF5A65441BDF49FEF6EE2504148A18F12F1A65441B9FDB01C6FE25041C003A819EDA65441F6285C1F6FE25041D7A370DDECA65441012E4A486FE25041F90D572CECA65441B89D91656FE25041CCE0A6ADEBA654417BB849896FE25041880A1913EBA6544148E17AA46FE25041D7A3709DEAA65441B81E85FB70E250413D0AD753E9A65441E17A141E72E25041A4703D4AE6A65441C3F5284C6FE25041D7A370ADE4A654410B8156FB6FE25041A2FBE4E9E2A65441A4703D1A70E25041A4703D9AE2A65441669F0FB470E25041D608A2D6E1A65441AF6F902F71E250417148F631E1A654419609FD3E71E250411226F725E1A65441F6285C5F71E25041CDCCCCFCE0A65441EC51B8DE72E250411F85EB01E0A65441C3F528BC73E250413D0AD7B3DDA65441713D0AB774E25041EC51B82EDDA65441A342928E74E2504121FD7EE9DAA65441E5658B8674E250414CD4FFDDDAA654412F3E568C74E25041F87D67C9DAA65441AE47E18A74E2504148E17AB4DAA65441AE47E14A75E25041000000F0D7A654416666663679E250418FC2F518D0A65441F6A2EEA479E25041560C999BCDA65441C3F528AC79E250411F85EB71CDA654412240FED57BE250415C5A6867C6A654418BB5EC5D7CE250417C1BEE6BC4A65441713D0A277CE250410AD7A3A0C1A6544199D59ED37BE2504195765594C0A65441B5CEACA17BE2504111BB3E1AC0A65441B98E6DE37AE25041157BFF5BBFA65441E17A148E7AE250417B14AE17BFA654414B4924327AE2504111725C13BFA654412E6E8AC779E25041A3993E1CBFA654419602351E79E250417FA84F0BBFA65441C3F5284C76E2504148E17AE4BEA654413D0AD7A372E2504152B81E65C1A654410AD7A35071E2504114AE4751C2A65441CDCCCCDC6DE250411F85EB11C2A654418529C6F16BE2504102286B5EC1A65441A4703DEA6AE25041E17A14FEC0A65441A4703DEA6AE250419595EED6C0A65441D57888E56AE25041D81783D4C0A65441A4703DEA6AE25041E30B64B5BFA65441A4703DEA6AE250419A9999B9BCA654413D0AD7336BE2504114AE4761BCA65441C8FFCB536AE2504133D8BBB4B9A65441A4703D2A6AE250415C8FC235B9A654415C8FC22568E25041333333D3B7A654414F6B480368E250412BABE77AB7A654416D7CFF7467E25041264F1B50B6A65441A1C6542067E25041AE7B4E1DB6A654416ED0184E67E250413463E4AAB5A654419A99993967E2504166666676B5A654412CEAFAEC66E2504176FA6405B5A65441FF5AFF7666E25041F2D0D697B4A654417883241E66E25041EFFD51D7B3A654414F4750B265E2504171DFF69EB3A65441E1C0BC7465E250414533C87EB3A6544129BF98E064E25041B9F92B45B3A65441BB9D98E263E25041F7F54D25B2A6544160854C7863E250412E56855CB1A65441F32696B462E250418DF5C97EB0A65441F6285CBF61E250418FC2F568AFA65441B695C9FA5FE25041F2FB6906ADA65441E27DB0A65FE25041D404F694ACA654418FC2F5185FE250415C8FC2D5ABA65441666666B65DE2504133333373AAA65441F6285C4F5DE250413D0AD7F3A8A65441333333635CE25041C3F5284CA9A654411F85EBB15BE250415C8FC255AAA65441E17A141E5BE250415C8FC255AAA65441D7A3706D5AE25041713D0A07ABA65441A4703D5A58E250419A9999A9ABA6544149677F5158E25041DC3006A4ABA6544149D1523E58E2504121A4D5A9ABA65441FA47DBB657E2504156EE2A55ABA6544125F2D5BB57E25041720C9244ABA654417B14AEB757E250411F85EB41ABA65441666666C657E250410AD7A390AAA65441DFA1A86257E25041927E4A0CAAA654413902133857E25041E7C1F6D9A9A654416153F21157E25041E5C9F6C0A9A654411D0BC20157E25041106E59B6A9A654413944FD9656E25041CE8D087BA9A65441200E4C0D56E25041DC210F16A9A654415C8FC29555E250417B14AEC7A8A654410AD7A3D055E25041000000A0A7A65441307AB47E55E25041875C9FF5A6A65441F6285C1F55E25041F6285C2FA6A65441EF8C38D254E25041D34B2DEBA6A65441BCE3DABC54E2504156864C3BA7A65441516B85A754E25041F6690013A7A6544185EB51F853E250410AD7A320A6A654416666669652E250417B14AEC7A5A654417DEE61F351E25041595B690BA5A65441D7A3707D51E2504133333383A4A654411930D23351E25041AC938CC0A4A6544161D4DE2751E25041CC8CABD3A4A654418FC2F5B851E25041E17A143EA6A6544114AE475151E25041CDCCCC0CA7A65441F6285C2F4FE25041A4703D2AA7A65441AE47E12A4DE2504152B81E25A8A654410AD7A3604EE2504166666616A8A65441333333434EE25041295C8F02A9A65441713D0AD74EE25041D7A3703DA9A6544152B81EE551E25041295C8F82A7A65441D7A3703D52E2504185EB5178A9A654413333337353E250411F85EB41ABA65441C5D304DD53E25041BDA5A264ACA654414969742454E25041AE5D5E1EADA65441AC8A742255E25041FDE6D5A5ADA65441766113A955E250417BE04D62AEA654411F85EBC155E25041CDCCCC7CAEA65441418EB9C255E250418E853686AEA654414EF6C9CB55E250413B17E792AEA65441E17A14EE55E2504114AE4781B0A654418FC2F5E856E250410AD7A300B2A654414478ECA358E25041ED4381F0B2A654418FC2F5E856E250413D0AD713B4A65441E008B9DA56E25041ED7770FDB4A65441767969CD56E250412CC798FEB4A65441B81E85CB56E25041EC51B80EB5A654414D324D4F56E250414B1B9009B5A654416FFE785E55E25041EE2A811EB5A65441119B7A1D55E25041CF2C8DDBB5A654415C8FC2D554E25041C3F528ACB6A65441AE47E1DA53E25041295C8F22B7A654419D983B7952E25041657F2C3DB7A65441585F572353E250412AB998BEB7A65441D8E9EE9353E250410264280EB8A65441F586960254E25041B308A4C4B7A65441A098270D54E250415113FBCAB7A654415C8FC21554E2504148E17AC4B7A65441D7A3707D54E25041EC51B80EB8A65441D7A3707D54E25041CDCCCC9CB9A654415C8FC29555E2504133333313BAA654410AD7A3D055E2504166666666BBA654418F0C66C056E25041283FD20FBCA65441BC17CAC956E2504136444F11BCA65441550B157C57E2504171E952FABBA6544152B81ED557E25041B81E85EBBBA65441C1BEE3D657E25041F6E99DEEBBA654415A67BCDA57E2504169F81EEEBBA65441F7B3A32958E25041EC34154DBCA65441EC51B8DE58E2504166666626BCA6544185EB512859E250418FC2F548BBA65441DA66F44B59E25041A43ABC39BBA65441DBE3414D59E250411C052D35BBA654413F1028AB59E250418E910F11BBA65441713D0AF759E250410AD7A3F0BAA654411F85EB315AE250417B14AED7B9A6544185EB51E859E25041713D0A67B8A654411F85EB715CE250415C8FC275B8A654418FC2F5D85CE25041713D0A27B9A65441CDCCCC6C5DE25041F6285CBFB8A65441F1FED13F5EE250417582AAD9B8A654416CAC294C5EE250419FFD6BC4B8A65441EA45E5BD5DE2504100A268B5B7A65441392EFE885DE25041E852F96FB7A65441FBE0B5085DE2504115C2717FB6A654417D440B215CE25041BE9CD9F9B5A65441D8C843AE5BE250411A23A9B7B5A65441978EB9D25AE2504184E3C5A6B5A654412414533A5AE250415B9970FBB5A65441C78948335AE25041FF1D55F7B5A65441333333235AE250419A999909B6A654410000009059E2504114AE47B1B5A65441A5EF6B7C59E2504112C4A98CB5A654412EC61F6F59E250413B01E884B5A65441A7BB166759E2504113D7C364B5A654419A99991959E250413D0AD7D3B4A6544101E6943F59E250418480BCC6B4A65441B6F2523C59E2504146B3B4B9B4A65441F0C9FD8E5AE25041261B2C43B4A65441DFC7F5B95AE2504182198C65B4A654415C8FC2855BE2504114AE47F1B4A65441F4A2BCB55CE25041AB025ACBB4A6544108A338EA5CE25041DD9031AEB4A6544152B81E055DE25041B81E85BBB3A65441FA9A86065DE25041AA69F2B8B3A65441EC340E045DE250418394CE8AB3A654415C5631875DE25041CAD471CDB2A65441666666B65DE25041713D0A77B2A65441D3ED17C85DE25041C057BA6FB2A65441E0F2B9CC5DE250419FBA0969B2A65441017170BB5EE250416BE39900B2A654413D0AD7535FE2504133333323B1A65441D62F7F675FE25041E4E2BF20B1A654410A71FE845FE25041120181F4B0A65441FFBE315060E25041E20F92E3B0A65441A258D3E860E25041F1EDA59DB1A654416887CBB361E25041F7F54D25B2A654411F85EB2163E2504114AE47F1B4A65441B81E85EB64E25041CDCCCC2CB5A6544137B282D764E2504146F07B09B6A6544129BF98E064E25041408E3D2CB7A65441F01BDD9A65E250415BCD5F08B8A65441F5826EF665E25041F123633DB8A65441295C8FD266E2504133333393B8A65441EC51B8BE67E250410AD7A3F0BAA65441EA9D32A167E25041AE14BF03BBA654414431C09066E25041C14CA6D7BBA654410000003066E250419A999939BEA65441CEEDF95965E2504162924802BFA65441AF6EFCA265E250410EA316CDBFA6544152B81EF565E25041A4703D6AC0A654410579B0E465E25041A2F89883C0A65441BBD187EF65E250416044B6A1C0A65441DA83136765E250412B087545C1A65441295C8F5265E2504152B81E65C1A6544114AE472166E25041295C8F82C1A65441BAFA4E4E66E2504119F558C6C1A65441822ECCA966E2504165D10B49C2A65441A3BF9F9366E250418EA96248C2A65441AE47E16A66E25041D7A3703DC3A654411F85EBE163E250413D0AD773C4A65441818E25DE63E25041B13D716FC4A6544168BBBAC063E25041B8E7D877C4A65441C1F6FE7C63E25041BD403F12C4A65441CA92D07362E25041878C4386C4A654418FC2F5C862E250419A9999E9C4A6544106F993C762E25041934637F1C4A654411F8BA9D362E25041077150FFC4A65441C1683DB162E250419E88516CC5A65441E17A148E62E25041E17A142EC6A65441BFE6C7E062E25041BFE6C780C6A65441A15E760663E25041E70CB795C6A65441C3BC450363E25041C3BC45A3C6A6544148E17A0463E2504148E17AA4C6A6544172257AFF62E25041E6FF66B3C6A65441642FE7C462E25041BE9557ACC7A654413333331363E250413D0AD7E3C8A65441713D0A2762E2504114AE47C1C9A6544185EB515861E250413D0AD7A3C9A6544152B81E0560E25041295C8F72CAA654419F6720455FE2504186CC7453CBA6544114AE47B15EE250410AD7A300CCA65441543C0D6F5DE250415A06628FCCA65441713D0A375CE250419A999919CDA65441AE47E14A58E2504100000000D2A65441D7A370AD59E2504100000070D6A65441C3F528AC5FE250411F85EB01E0A65441608B0C965FE25041487798FDDFA65441539DA79D5FE250414E63DC09E0A65441D0F681C05CE250410D546580DFA654418EC1EB9D5CE25041102BB9DEDFA65441AE47E1CA59E25041EC51B88EEAA65441333333235AE250411F85EBA1EFA6544114AE47415AE25041EC51B83EF4A654412CE4803F5AE2504175A4A542F4A65441295C8F7259E250417B14AE07F6A65441951F237459E250410990FA33F6A654410AE75B7759E250417D19788EF6A6544114AE478159E2504152B81EA5F7A654417B14AE7758E25041D7A370FDF7A65441164B36E357E25041D6997375F8A6544102CCC46157E250416EBE15DEF8A65441E20E6BFA56E25041846AA031F9A65441EC51B81E58E25041C3F5288CF9A654419ADFBA3D58E25041BB4BFDACF9A654419A99991959E250415C8FC295FAA6544126D3F89858E25041D7C41F64FBA654416666668658E250411F85EB81FBA654414E75126158E25041CA4FCB89FBA654410C7DC97458E25041FDC5669AFBA654413F1A0F4458E25041EA15EA8FFBA6544152B81E5556E2504185EB51F8FBA6544156CF2EEC55E250414DA8BB48FEA65441BFD4917455E25041EB94FFEB00A754411F7CD16955E250416D6D848201A75441AF34FA3354E25041F03909EF02A75441713D0A8752E2504152B81E0505A754414289016E52E2504152B81E0505A75441317BD95E52E25041917DF31605A75441C8C689AC51E2504152B81E0505A7544136A8C17251E2504152B81E0505A754412500628F50E25041A38F7BAA05A75441B81E855B4FE2504114AE477107A75441000000F04CE250419A99994909A75441F88628D44CE250413304714A09A754418C8860D24CE250412ACAC24B09A75441F3A280A84CE250412ACAC24B09A754418FC2F5084BE2504185EB515809A75441E82270FB4AE250412ACAC24B09A7544114A656DA4AE250412ACAC24B09A75441A5ACDDD34AE250411FB1012709A75441B81E856B49E2504185EB51D807A754411E03AE1048E25041AD7CA2D007A75441333333D346E250419A9999C907A75441D03CA7F446E25041D0CE8E3807A75441EC51B82E47E25041CDCCCC3C06A75441208BB1F545E25041539B91B903A75441E8B4D9AE45E2504183ACFE2703A75441DA0DB07B45E25041AF4017F102A75441A41CAB7F44E25041255F050404A7544137614C5F44E25041255F050404A754418FC2F55844E25041A4703D0A04A75441619A122744E25041255F050404A754410A8BFB4B43E25041255F050404A75441A4703D0A42E250417B14AEE704A75441642329A541E2504165A5D40305A75441E0A2F23340E250416632987205A75441355AD4CE3FE250411B74D18605A7544185EB51F839E25041713D0A2707A75441295C8FC238E250419A99990907A754417B14AE0737E25041AE47E1BA07A7544191FC58C634E25041719DB1F107A754415FAE899134E250414951020B08A7544130DAFE1730E250412AAC50BE09A75441B72449432AE25041EDB15D400BA75441A0BEC1C629E25041EF8FF8B209A754417B14AEA729E2504185EB515809A7544137C012AA29E2504193B16F5709A754418A236AA629E250411FCAC24B09A75441828DADDA2DE25041019261CB07A754416666662631E250413D0AD79306A75441E8D4FCB731E25041E9CCC38506A75441C17BBF2536E25041F6A88DCF05A75441C3F528BC34E25041E17A140EFDA65441CDCCCC9C24E250418FC2F54800A75441C3F528FC25E2504114AE47D105A75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>911973 - 400097
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -17 </desc>
+<a>
+0106000000020000000103000000010000001F000000C3F5281CE7E650418FC2F54821AA5441295C8F02F2E650410AD7A3B027AA544185EB51C8F4E650410AD7A3E029AA5441C3F528FCF7E6504148E17AE42AAA5441C3F5281CFBE650410AD7A3702BAA544185EB5178F9E650410AD7A3502DAA5441EC51B89EFBE650416666661630AA5441295C8F92FDE650410AD7A3C030AA544185EB51B8FFE65041AE47E11A31AA5441F6285CEF00E750411F85EBC131AA544148E17A2403E7504114AE472132AA54416666669603E75041666666362EAA54416666668604E75041AE47E1BA2CAA544148E17AA404E750410AD7A3102CAA5441295C8F6205E75041295C8FA22BAA5441666666D604E7504148E17A942AAA5441C3F5282C04E75041AE47E13A2AAA5441295C8F8203E75041295C8FE227AA5441666666A602E750418FC2F58827AA54416666664603E75041CDCCCCFC26AA544185EB51C803E750418FC2F51824AA5441295C8F0201E750410AD7A3B022AA5441666666D6FFE6504148E17AF424AA544148E17AC4FDE65041EC51B8AE24AA5441EC51B8FEFAE6504148E17A4425AA5441295C8FD2F9E65041EC51B8AE24AA544185EB5188F8E65041CDCCCCCC24AA5441EC51B88EF7E65041CDCCCCBC25AA5441295C8F62F1E650410AD7A33025AA544185EB51A8E7E65041295C8F0221AA5441C3F5281CE7E650418FC2F54821AA544101030000000100000080010000A4703D1A94E65041666666263EAA5441C3F5288C95E6504148E17A643CAA54410AD7A31094E650418FC2F5183DAA5441A4703D7A93E65041EC51B84E39AA544185EB512895E65041295C8F7238AA5441666666D696E6504148E17A5438AA5441A4703D4A96E65041CDCCCC6C34AA54416666660699E650418FC2F55834AA544148E17AC499E65041EC51B85E33AA544148E17A549BE65041EC51B80E33AA5441E17A145E9BE65041295C8FA235AA54410AD7A3609EE65041CDCCCC4C36AA54410AD7A3F09FE6504148E17A3435AA5441A4703DAA9FE650416666662634AA54410AD7A3F09FE650410AD7A34033AA5441A4703D3AA1E65041666666F631AA544185EB51E8A2E650410AD7A31031AA544185EB51D8A3E65041AE47E11A31AA5441295C8F32A4E65041CDCCCC5C30AA544185EB51A8A6E65041666666A631AA544148E17A84A7E650410AD7A36031AA5441C3F5284CA8E650410AD7A32030AA5441A4703D0AA9E650410AD7A32030AA5441295C8F32A9E650418FC2F5B82EAA5441295C8F72AAE65041295C8FD22DAA54410AD7A320ACE65041EC51B8DE2BAA5441295C8FC2AAE6504148E17AB428AA54410AD7A3C0ACE65041CDCCCCDC28AA544148E17A04AFE6504148E17A1428AA544185EB5158B0E65041AE47E11A27AA5441EC51B8EEB0E6504148E17A4425AA54410AD7A350B3E650410AD7A30028AA5441EC51B81EB3E65041CDCCCC3C28AA5441C3F5281CB5E65041EC51B84E2AAA544166666656B7E650418FC2F5482BAA5441C3F5289CB7E65041AE47E13A2AAA54410AD7A3C0B6E650416666669628AA544166666606B7E65041EC51B82E27AA5441A4703D4AB9E65041666666A627AA544166666646B8E65041AE47E1CA26AA544148E17AA4B9E650416666669623AA544185EB5148BBE650410AD7A34024AA5441A4703D6AB7E65041AE47E12A21AA5441666666E6B8E6504148E17A141EAA54410AD7A330BAE65041AE47E1AA1EAA544148E17AC4BCE65041EC51B81E1EAA54410AD7A300BDE6504148E17AD41CAA5441295C8F72BEE65041295C8FB21BAA5441C3F5286CBFE65041EC51B8DE1CAA5441295C8F42C1E6504148E17A441BAA544185EB5188C1E65041EC51B87E18AA54410AD7A3A0C2E65041AE47E11A18AA544166666616C5E65041EC51B87E18AA544185EB51D8C6E650416666669619AA5441A4703DFAC7E6504148E17AB419AA5441A4703D3AC9E65041EC51B8AE1AAA5441A4703D1ACBE65041295C8F121BAA544185EB51A8CEE65041295C8F721AAA544185EB5188D0E650416666669619AA5441EC51B84ED3E6504148E17A941BAA5441A4703DEAD2E650410AD7A3001EAA5441A4703D0AD6E650410AD7A3201CAA5441C3F528CCD7E65041AE47E1CA1CAA544185EB5108DDE65041CDCCCC0C1CAA54410AD7A3F0D6E650410AD7A3A019AA5441295C8F92D5E65041CDCCCC7C1AAA544166666676D3E65041EC51B80E1AAA544148E17AA4D2E65041AE47E15A19AA5441295C8F22D2E650418FC2F58818AA54410AD7A350D1E65041AE47E18A16AA544148E17A34CFE650410AD7A39015AA5441713D0A77CBE650416666664613AA544185EB5168C8E650410AD7A32012AA544166666616C5E65041EC51B85E10AA5441295C8FB2BFE65041CDCCCCEC0EAA54410AD7A370BBE650418FC2F5D80EAA5441295C8F12BAE65041295C8F6211AA54410AD7A390B9E65041295C8FB211AA5441295C8F82B8E650416666660613AA5441EC51B86EB8E6504148E17A7413AA5441A4703D0AB8E65041AE47E10A14AA5441A4703D6AB7E65041295C8F3214AA5441EC51B89EB5E6504148E17A4416AA544185EB51C8B3E65041AE47E17A17AA544185EB5198B1E650418FC2F52819AA5441295C8FB2B0E650418FC2F52819AA5441EC51B8FEAFE65041EC51B8BE19AA5441C3F5283CAEE65041295C8F521CAA544148E17AD4ACE65041AE47E1CA1CAA5441295C8FB2ABE65041EC51B86E1EAA5441A4703D8AABE6504148E17A041FAA5441295C8F22AAE65041AE47E1DA20AA5441295C8F82A9E6504148E17AA424AA5441295C8F12A6E65041666666D629AA5441295C8F32A4E65041EC51B8DE2BAA5441E17A149EA1E650418FC2F5382CAA5441666666969FE650410AD7A3B02CAA5441C3F5286C9CE65041295C8F222EAA54410AD7A38097E650410AD7A3002DAA5441A4703D3A97E65041EC51B87E2CAA544185EB512895E65041CDCCCC4C2CAA544185EB51E893E650410AD7A3502DAA5441A4703D3A92E65041666666762FAA54410AD7A30090E65041295C8FA230AA5441C3F5289C8FE6504148E17A2431AA5441E17A145E8CE65041EC51B8AE33AA544185EB51888AE65041CDCCCC1C34AA544148E17A1486E650418FC2F5D836AA5441C3F5280C84E65041EC51B86E37AA544185EB51C881E65041295C8F7238AA5441295C8FF27FE6504148E17AA438AA5441E17A14AE7DE650418FC2F55839AA544185EB51287CE65041AE47E17A3AAA544185EB515879E65041666666563BAA5441666666E677E650410AD7A3103BAA5441295C8F5275E65041295C8F923BAA54410AD7A35072E65041EC51B8BE3CAA5441E17A148E70E65041295C8FC23DAA5441A4703D5A6DE650418FC2F5A83EAA54410AD7A3C06BE6504148E17A543DAA5441295C8F2269E65041EC51B83E3FAA5441C3F528EC67E650410AD7A3D03EAA5441C3F528AC66E65041CDCCCC5C3FAA544148E17A4465E6504148E17A943EAA5441295C8FE262E65041666666163FAA5441A4703DEA5FE65041EC51B87E40AA5441A4703D5A5EE65041666666A640AA5441666666565DE650410AD7A3203FAA5441C3F528EC53E65041AE47E19A3DAA5441E17A144E51E65041295C8F723DAA544148E17AB44FE65041666666663AAA5441295C8F124CE65041AE47E13A39AA5441C3F5283C4AE650410AD7A34038AA54416666666648E65041295C8F2238AA544148E17A9447E65041AE47E14A38AA5441295C8FB247E65041666666B635AA544185EB510847E65041AE47E1CA35AA5441E17A14AE46E650418FC2F53836AA5441A4703DDA42E65041295C8F8237AA5441E17A145E41E65041666666A636AA544185EB51C83BE65041CDCCCC3C37AA544148E17A0437E65041666666B635AA5441295C8F3236E650416666663633AA544148E17A8434E65041295C8F1234AA544148E17AE433E6504148E17A5433AA544185EB51C831E65041AE47E15A32AA5441C3F5286C2EE65041AE47E1AA32AA5441666666E62CE6504148E17AA42EAA54410AD7A3702AE65041EC51B82E2CAA5441666666E627E65041295C8FF22BAA54416666666625E65041CDCCCCFC2BAA5441E17A14EE24E650418FC2F5F82AAA544185EB518821E65041666666162BAA5441C3F5283C1DE65041666666A627AA544185EB51D817E65041EC51B84E25AA5441A4703DBA17E650410AD7A39024AA54410AD7A37016E650410AD7A35023AA5441C3F5280C16E650416666665622AA5441A4703DEA14E65041295C8FF221AA5441E17A144E15E65041EC51B81E1EAA5441E17A140E14E650410AD7A3D01BAA5441C3F5288C0EE65041AE47E11A1DAA544185EB51880DE65041666666661CAA54410AD7A3100DE650410AD7A3F019AA5441A4703D5A0EE650416666661617AA5441E17A14DE0CE65041CDCCCC6C16AA544185EB511800E65041CDCCCCEC13AA544166666656FEE55041295C8F2215AA5441C3F5284CFEE55041666666D615AA5441A4703D2A02E65041EC51B8FE15AA5441C3F528CC05E65041295C8F4218AA544148E17AA40AE65041666666361AAA544185EB51680AE650418FC2F5981CAA5441A4703D2A0CE65041CDCCCC1C1BAA544148E17A340CE65041295C8F021CAA5441666666560DE65041666666561DAA544148E17AB40EE65041666666B621AA544148E17A640EE65041295C8FA221AA5441C3F5282C0AE65041666666061DAA544166666676F7E5504148E17AE41BAA544185EB51B8F6E55041295C8FE222AA5441295C8F72F6E5504148E17A6423AA5441E17A146EF5E55041295C8FE222AA544148E17A54F6E5504148E17A3421AA5441C3F528FCF3E550418FC2F5C81EAA54410AD7A370F3E55041666666E61EAA5441666666D6F1E5504148E17A241DAA544166666686F1E55041666666261BAA544166666666EEE550416666668615AA54410AD7A320EEE550410AD7A3B013AA5441A4703D4AECE55041295C8F1211AA5441666666F6EAE550418FC2F5E80DAA544148E17AC4EAE55041EC51B86E0AAA544185EB5168E7E55041295C8FC206AA544148E17AD4E4E5504148E17AE402AA544185EB5108E3E55041295C8F2201AA544185EB5128E1E55041295C8FA2FEA95441C3F528ECE0E55041EC51B84EFDA95441666666D6DDE55041CDCCCC3CFBA95441C3F528CCDDE5504166666666F9A9544148E17A64DCE55041EC51B82EF5A95441A4703DAADCE55041666666D6F2A9544185EB51D8DBE550418FC2F528F1A95441295C8F42DBE550410AD7A310F0A95441666666D6D8E55041CDCCCC1CEEA95441C3F528BCD9E55041AE47E1BAEBA95441E17A14EED9E55041AE47E1DAE9A954415C8FC2D5DDE5504152B81E25E8A95441295C8FE2DBE55041AE47E1AAE5A95441333333F3D7E5504133333363DDA954410AD7A350D9E5504166666606DCA95441E17A149ED9E550419A999999D9A9544185EB5128D7E5504148E17AA4D4A9544166666606D6E55041CDCCCC8CD3A95441A4703D3AD4E5504148E17AE4D0A9544185EB5198D0E550410AD7A350CEA9544148E17A54CFE55041295C8F72CAA9544133333353CFE5504114AE47B1CBA9544148E17A64D0E5504114AE4731D0A9544185EB5198D0E55041EC51B8CED7A9544148E17AE4CFE5504148E17A14D8A9544166666636CEE5504166666676DAA95441A4703D1ACCE5504148E17A94DAA954410AD7A3D0CAE55041AE47E12ADBA95441C3F528ACCBE55041666666E6DDA9544166666676CAE550418FC2F5A8DFA95441C3F528BCC5E55041AE47E1FAE2A95441E17A145EC4E55041EC51B8AEE3A95441295C8FD2C3E55041EC51B88EE5A95441C3F5287CBFE55041AE47E18AE9A9544148E17AE4BBE55041AE47E10AECA95441295C8FC2BAE5504166666646ECA954410AD7A390BAE55041EC51B85EEDA95441A4703DDAB6E55041CDCCCC5CEFA954415C8FC2D5B4E5504100000020EFA9544133333383B0E55041D7A370EDF0A95441E17A145EB0E55041295C8F62F3A95441C3F5283CB1E55041295C8F92F4A95441295C8F02B2E55041AE47E1AAF6A95441666666A6B8E55041AE47E1BAFFA95441C3F528DCB9E55041AE47E1BAFFA95441E17A145EBAE55041EC51B8BE00AA54419A999969BAE55041713D0AF701AA54415C8FC275BCE5504185EB51F804AA54418FC2F558C0E55041E17A14DE0AAA5441AE47E1DAC5E55041CDCCCC9C05AA544100000040C7E55041666666B605AA5441A4703DAAD2E550410AD7A3F0FBA95441A4703D6AD1E55041CDCCCC5CF9A9544148E17A74D6E5504148E17A54F7A9544148E17A44D9E55041EC51B8FEF7A9544185EB5198DAE55041666666A6FAA95441A4703DAADCE55041CDCCCC6CFDA9544166666606E0E55041666666E600AA5441C3F528FCDFE55041EC51B8EE02AA5441295C8FA2E0E550413333338307AA5441F6285C4FE7E55041EC51B89E12AA54410AD7A3D0E8E550416666668615AA5441295C8F82E1E55041EC51B84E16AA5441295C8F42E5E55041666666D61AAA5441295C8F12E8E5504148E17A841CAA5441C3F5286CE8E55041666666561DAA54410AD7A3C0E4E550410AD7A3901FAA5441295C8F22E2E55041666666461EAA5441A4703D1AD6E55041AE47E1EA29AA544148E17AC4D6E55041295C8FB22AAA54411F85EB81D6E55041C3F528DC2BAA5441CDCCCC3CD4E55041AE47E1FA2CAA5441D7A3704DD2E5504114AE47A12EAA5441295C8FD2D2E55041D7A370AD2FAA5441295C8FC2D3E55041EC51B84E2FAA544166666666D5E55041CDCCCC8C32AA5441E17A149ED4E55041CDCCCC2C33AA5441295C8F52D5E55041CDCCCCBC34AA544148E17A84DFE550418FC2F5D82CAA544185EB51C8E1E5504148E17AF429AA544185EB5158E3E550410AD7A3302AAA544166666676E8E55041EC51B8FE24AA5441C3F5282CECE550418FC2F54826AA5441295C8F12EDE5504148E17A1428AA5441666666D6ECE55041AE47E14A29AA54410AD7A330E8E55041666666462DAA544148E17A94E8E55041295C8FC22EAA5441C3F528DCE6E550410AD7A3802FAA5441A4703DCAE4E550418FC2F58831AA544185EB51A8E3E550416666665631AA54410AD7A330DEE55041295C8FE236AA5441295C8F12DEE55041CDCCCC1C39AA5441E17A145EDDE55041EC51B8EE39AA54410AD7A3D0D8E55041000000803CAA544114AE47C1DBE5504114AE475144AA5441A4703DBADBE55041EC51B85E42AA5441A4703D9ADDE550410AD7A3A041AA544166666656E0E55041AE47E13A3EAA5441D7A370CDE1E55041B81E859B3EAA5441B81E85EBE9E5504114AE47F136AA544185EB5198E9E550418FC2F58836AA5441666666F6EAE55041666666E632AA544148E17A84EEE5504148E17A2431AA5441666666C6EDE55041AE47E18A2FAA5441295C8FF2EEE5504148E17AE42FAA54410AD7A3B0F4E55041666666662BAA5441E17A140EF6E55041CDCCCC5C2BAA5441666666D6F6E55041EC51B87E2CAA5441C3F528CCFBE55041295C8F622FAA5441A4703D7AFDE55041AE47E1AA32AA544185EB5178FFE55041CDCCCC3C32AA5441A4703D1AFEE55041295C8F9231AA5441295C8F42FEE55041666666B630AA5441C3F5285CFDE55041AE47E1EA2EAA544166666676FCE55041295C8FD22DAA5441E17A146EFAE55041666666062CAA544148E17AA4FBE55041CDCCCCBC2AAA544148E17AC4F9E550416666669628AA5441E17A143EF8E5504148E17A5424AA5441A4703DEAF6E550416666669623AA5441666666E60EE650418FC2F53822AA5441666666D60FE650410AD7A38025AA5441C3F528BC10E65041CDCCCC1C25AA5441295C8F2214E65041CDCCCC9C27AA5441C3F5287C14E650410AD7A3302AAA5441A4703DDA15E65041295C8F422CAA5441E17A14DE16E6504148E17A542EAA5441A4703DFA18E65041AE47E13A2FAA5441666666661BE650418FC2F5B82EAA54410AD7A3D01AE65041AE47E13A2FAA5441E17A14BE1DE65041AE47E10A32AA54410AD7A3C020E650410AD7A35032AA5441A4703D1A21E65041EC51B84E34AA544148E17A8425E65041295C8F1234AA544185EB518826E65041AE47E18A34AA54410AD7A3202AE65041295C8F6234AA54410AD7A3602BE65041295C8F023AAA54410AD7A3202FE650418FC2F5E83AAA544185EB51F833E65041AE47E14A3DAA5441A4703D8A33E65041295C8F523FAA54416666666634E65041295C8F4240AA54410AD7A3103AE65041CDCCCC6C3EAA5441E17A144E3DE65041EC51B8EE3EAA5441C3F5287C3CE65041295C8F7242AA54410AD7A3D03DE650410AD7A32044AA5441C3F5280C3EE65041CDCCCCBC43AA5441C3F528FC3EE6504148E17AD444AA544185EB51A842E65041CDCCCC1C43AA544148E17AD443E6504148E17A4443AA54410AD7A33047E650416666666644AA5441E17A142E49E650410AD7A35046AA544185EB51184BE650418FC2F51847AA5441A4703D4A4BE65041AE47E19A47AA5441E17A149E4CE650410AD7A33048AA5441C3F5284C4EE650418FC2F57841AA5441C3F5289C53E650418FC2F5B842AA5441C3F5281C56E65041CDCCCC0C44AA544148E17A2458E65041295C8F8241AA54410AD7A35059E65041AE47E14A42AA5441666666765BE650418FC2F51842AA5441295C8FF25CE65041AE47E13A43AA544148E17AF464E65041295C8FD241AA5441E17A144E65E6504148E17A5442AA54410AD7A3C066E65041CDCCCCDC41AA5441A4703DCA66E6504148E17A1441AA5441C3F528EC67E65041CDCCCCAC3FAA544185EB512868E65041EC51B81E41AA5441A4703DEA69E65041EC51B80E42AA5441295C8FA26BE650410AD7A3B040AA5441E17A141E6DE650416666668642AA544148E17AB46DE650410AD7A34042AA5441C3F5282C6EE650410AD7A3B040AA5441295C8FE271E6504148E17AB441AA54410AD7A39078E65041EC51B81E41AA5441A4703DEA78E65041CDCCCC2C42AA54410AD7A3207AE65041EC51B85E42AA5441295C8F027FE65041AE47E1CA3FAA5441666666B67FE65041CDCCCC9C40AA54416666662683E65041EC51B86E3CAA54410AD7A31085E650410AD7A3603BAA5441E17A14AE87E65041CDCCCC4C3BAA544148E17A8489E65041666666863DAA5441C3F528AC8EE650410AD7A3F03CAA5441A4703D6A8FE65041CDCCCC2C3DAA5441E17A146E90E650418FC2F5B83DAA5441A4703D8A92E650410AD7A3003CAA54410AD7A32093E650418FC2F5B83DAA5441A4703D1A94E65041666666263EAA5441
+</a>
+
+<b>
+010600000001000000010300000001000000AE010000110CCB00A1E65041EEB52E5D2CAA5441A29F656D9FE65041C6DAA5E32CAA5441A4AE92589CE650412D13532C2EAA5441682098459BE65041AC7B7DEC2DAA5441CC6F838D97E650417BAD780F2DAA54411D1FD78097E65041E6A4AF002DAA54410AD7A38097E650410AD7A3002DAA544105175D8097E65041224621002DAA5441E467DB0D97E65041C4FB897A2CAA5441F6AD3AB296E65041B64AE8712CAA5441653CE53D95E65041465D2D602CAA54410B6C210B94E6504193ED34512DAA54419EBE275E92E65041AD8F7D482FAA5441A4703D3A92E65041666666762FAA5441B6E1663492E650415BFB79792FAA54419A6B031B92E65041C64C43972FAA5441CBEA460590E65041F91BC4A730AA544126C5282A8FE650419D19B5AE31AA5441B7E991B28CE650417BFC886C33AA5441E17A145E8CE65041EC51B8AE33AA54415B4D33508CE65041DDF1F8B133AA5441E8A628418CE65041ED0C97BC33AA544166C6D5A08AE65041BA1F262A34AA5441BD073F5986E65041389380BB36AA544147DF8C2F86E650417BEE54C836AA544148E17A1486E650418FC2F5D836AA5441C7C0CE7284E6504151F82C5137AA5441593C8A1F84E6504112E6CB6A37AA54411714E12B82E6504191069E6638AA5441A5D72ACF81E6504187D57D6F38AA544185EB51C881E65041295C8F7238AA5441295C8FF27FE6504148E17AA438AA5441168D14C27DE6504140DABD5239AA5441DCA1BE297CE6504110D79E7F3AAA5441A85B916C79E65041ABFCBC5A3BAA5441257B3ECC77E6504193BC00193BAA54418D0CE6B976E65041C6BDCE4B3BAA5441EFF0C46975E65041337CFD8D3BAA5441339489A972E6504113356AA33CAA54410A23F40271E65041D18E287F3DAA5441E17A148E70E65041295C8FC23DAA5441FE1BE1A96DE65041473494923EAA54418BDA015B6DE65041112B4CB13EAA5441685F98D06BE650419FF29E683DAA5441F8C4908569E650419D4249F63EAA5441295C8F2269E65041EC51B83E3FAA5441EB141C7668E6504134F78F013FAA544181B390F667E650416C001FDD3EAA54411DE3CCC366E65041EB7D97603FAA5441B2752DB566E6504157ADD9583FAA5441C3F528AC66E65041CDCCCC5C3FAA54415DC8406F65E6504137504DAC3EAA54415BD54C4F65E650415FC0629B3EAA54415FA66D9263E65041F121F0F03EAA54417F829F0B63E65041D630A70D3FAA54410419C50060E65041EEE0717D40AA5441CFCD884A5EE6504153B644A940AA544174D597435DE65041D43DDB1E3FAA54415C603B855CE65041B3BFD0FE3EAA54418017FD2354E650410F76E8A33DAA54416924DB5D51E65041515D887E3DAA54417179AB5751E65041EC1423733DAA5441E17A144E51E65041295C8F723DAA5441B454063D50E650413E9C796A3BAA5441374188BD4FE6504110D79E7F3AAA5441CC438D7B4CE65041B271B25C39AA5441295C8F124CE65041AE47E13A39AA5441ED8EFAFA4BE65041A3DD552E39AA54415D9F9ED549E65041AD0BEA4538AA54415164F18C48E6504105A1003038AA54411DF43DCD47E650412940FA3F38AA544148E17A9447E65041AE47E14A38AA5441C91DC39447E650417D27AF4438AA5441F66B008647E65041AD0BEA4538AA5441DA872DAC47E65041E11E894236AA54416CAF9EAF47E650414637F5F635AA54411C19B5D646E65041B915083836AA54412ACD87F343E650410369F02337AA5441A4703DDA42E65041295C8F8237AA54412EFDD7D442E65041E8536F7F37AA5441D197DAD042E65041204EB58037AA5441048A5A5C41E65041389380BB36AA544193252DB63BE65041B810F93E37AA544103051ED439E65041389380BB36AA54412474E01137E65041ED01B0BA35AA544148E17A0437E65041666666B635AA54411333430437E6504175A4BCB535AA54416E51070137E6504139988FB435AA5441D32BE92536E650417BF7074F33AA54415FB37F9B34E6504107B53C1434AA54411B84989234E65041C385550B34AA544148E17A8434E65041295C8F1234AA5441C1D9F51234E6504169DBB28B33AA54414B373CD433E65041F338F94C33AA54412ABC135832E65041A8DB4E9D32AA544146D66E6F31E650415FA3256332AA5441AEE2980F2FE65041FAEAAD9B32AA544187FEA6672EE65041FB7351AD32AA5441C9FC86A02DE65041F7688A9030AA5441666666E62CE6504148E17AA42EAA5441B56302962BE6504197DE16542DAA5441D152FF6B2AE65041E1875A342CAA5441DCE1F5A327E650410D7F9FF32BAA5441DEE8DF6A27E65041E15189F42BAA544147A9068B25E6504187B287082CAA5441A5CAC78225E65041C28D58FC2BAA54416666666625E65041CDCCCCFC2BAA5441BA683C2825E65041FF598D762BAA5441E9C9D7D324E65041001CD9F92AAA54412095FFB721E65041F441C9142BAA5441FAD5D88921E65041C88DEA162BAA544136F72A8921E65041A80D5F162BAA544185EB518821E65041666666162BAA5441C3F5283C1DE65041666666A627AA544168B64E1B1AE65041CE3D594A26AA5441732F8FF217E65041DCDF745D25AA5441CB57D1F017E650412CE35D5925AA544185EB51D817E65041EC51B84E25AA5441B86883CC17E650418B9F1C0425AA54414EC40D8B17E650418613646A24AA5441D8985D7E16E6504127697E6723AA54412D3D487716E6504179B6165723AA54410AD7A37016E650410AD7A35023AA54414F286E3D16E65041A7E21AD122AA54415D9E120A16E650417F78295A22AA54411CC2958F15E65041D8FF7F2B22AA5441A4703DEA14E65041295C8FF221AA54410A0C231F15E65041C3A36CEB1FAA54418AE4AD3C15E65041F6AFCF341EAA5441DFDF83B414E650411DE08B031DAA54416C70907B14E650418E65879A1CAA544168810D4713E65041178171061CAA5441155EF8EB11E650412C3A237A1CAA5441011CD6810EE65041A75C40211DAA5441620CD17D0DE65041ECC2AC5E1CAA5441A2D3204B0DE65041272D68241BAA54410AD7A3100DE650410AD7A3F019AA544174AE28170DE650410D7732E219AA544195F941100DE6504117E268B719AA54413B297EDD0BE6504117E268B719AA5441713F3B9E09E65041A739B7CC19AA544148E17AA40AE65041666666361AAA5441C96448A40AE6504149C866381AAA54417B5BBAAA0AE650413B62E13A1AAA54410DC755850AE6504170E87C721BAA544101B3776E0AE650413193915A1CAA544148693A1F0CE65041D587FF151BAA54419540C4210CE65041D7A7F5231BAA5441A4703D2A0CE65041CDCCCC1C1BAA5441D4096A2D0CE65041FB7905641BAA5441AD3E0D4B0CE65041D11A07071CAA5441B0A1E7670DE65041ECBD9D651DAA5441985C1C2D0EE65041ADC60EE11FAA54417CAA58E30FE65041BA55695B25AA5441F19EA6A610E65041DA86252625AA5441C3F528BC10E65041CDCCCC1C25AA544112DE9CBF10E6504161BB561F25AA54416D3D60D410E65041AD15AD1925AA5441312285C313E6504179EDEA5627AA5441295C8F2214E65041CDCCCC9C27AA54416FBE0B6414E650413D830E7F29AA544133AA268214E65041166DB5392AAA54415D2A3D9214E650417EA50F522AAA5441A0796F9F15E650411475CBC62BAA5441ACB41CE816E6504192E825582EAA5441AE12E80B19E650412D0E44332FAA5441BA48865B1BE65041AD90CBAF2EAA54416A7D0C4D1BE65041FD5B45BE2EAA5441666666661BE650418FC2F5B82EAA5441401CB3D81AE650415059E3332FAA54415FCA86C81DE650413ED1520832AA5441E1541B601EE65041DA6C8C1932AA54410AD7A3C020E650410AD7A35032AA5441ABFA28C320E650417286FC5E32AA5441A15EB6C420E65041E6AE295F32AA54413E3C8D1B21E65041396BC73C34AA54412E0B7F2523E65041554A53FE33AA5441FA13F0A025E65041554A53FE33AA5441259E22C826E650412F8E158834AA5441101827A629E650412A20ED6734AA5441DF247A212AE65041CDC2835F34AA5441264A7FA22AE6504125E2EAAA36AA5441126B575F2BE650414B76B7FC39AA54411F37B48E2FE65041905417033BAA5441D1CD1D0234E65041451DCC3C3DAA544104BB8E9433E650413913AE4A3FAA5441E056A04234E650414E02901B40AA54416666666634E65041295C8F4240AA54410263867E36E650412928E6943FAA5441C3AFC32B3AE650413918BD433EAA54411AE23F243DE6504169F82AE83EAA5441E17A144E3DE65041EC51B8EE3EAA544114C9864D3DE65041ABB417F13EAA5441C40880563DE650417A6808F33EAA5441DC4D4B913CE65041EDD6538B42AA5441DFB025AE3DE65041AB7CEAE943AA5441ACC3B41B3EE650419F3C2EA843AA54419D56BC0C3FE6504146A208C544AA54411BC507A542E650416C54CC0E43AA5441F8CFD18D43E650411F93233B43AA544148E17AD443E6504148E17A4443AA54412C3293F043E650416713F34D43AA5441037B2D7144E6504187FC716643AA5441BFD7EF6146E65041C8DFBA2044AA54410AD7A33047E650416666666644AA5441BCA86F7D47E650416B454DB044AA5441908C0F6849E65041C51A724F46AA544169DA4B1E4BE65041A96DBDFE46AA5441DC1708604BE650412C531F9847AA544136E8CB924CE65041ACD0971B48AA54416B3308494EE65041EDDB628441AA544100DB49494EE650419215718441AA5441C3F5284C4EE650418FC2F57841AA544181BCF2D550E6504152F1D91142AA54415D1ABD6B53E650419F413DA142AA54419160EA2856E65041AB7CEAE943AA5441DA83F90A58E65041EDDB628441AA544158FFB51C58E6504104DA448C41AA544148E17A2458E65041295C8F8241AA54413106855F58E65041BF32F6A941AA5441AAF9629559E65041D22EAE3342AA5441844CAE445AE650416AF1F1F141AA5441E81C72775BE650411C5CDB0742AA54411E064FFF5CE65041F09DA33843AA54413E51F55B5EE65041CB255BFB42AA5441362DA7F764E65041051C1FC641AA5441C43DA21665E65041DD3B150442AA5441676A1B4465E65041CAEF044642AA54416773B1C166E65041EEEBD2C641AA54411DE3CCC366E65041BBAEDA9A41AA54411DE3CCC366E6504153B644A940AA544181B390F667E6504153BB53A23FAA54419C5B364E68E65041CFCBD31641AA5441CE3E89EE69E650416AF1F1F141AA5441F521DC8E6BE6504153B644A940AA5441BB8DA79A6BE650413CE2ECB640AA5441295C8FA26BE650410AD7A3B040AA5441C1F6D6636CE65041A168E09F41AA5441DCDF40276DE650410A25258242AA54412553B5A66DE65041F718074742AA54418BC903B56DE650412243DA3E42AA5441ABFCF2DC6DE6504162D061B941AA5441C12A4D0A6EE6504153B644A940AA5441101E2F1870E65041CFCBD31641AA54411D7214D071E65041F3156CAB41AA54415BCB897B78E650416E5EEA0041AA5441C25D948978E65041F89B561F41AA54410AD7A39078E65041EC51B81E41AA5441FED06AA378E6504194EB515741AA5441DB4802FF78E65041C4C6C41D42AA5441AAD487247AE65041DE87AA5C42AA5441EDFADC997CE650411D14701041AA54411AC0BE127FE6504106263DB83FAA54417A1F61A27FE650412D456E8540AA54411F0A33AD7FE65041837B0F9240AA5441CD7E555A83E6504193B7F11F3CAA54413848A19484E650414375F5A43BAA54410AD7A31085E650410AD7A3603BAA5441BA175E4785E65041479F045F3BAA5441BE0C4E5285E65041ABFCBC5A3BAA5441F3578A0887E65041F891D3443BAA54415B95464A87E6504179145BC13AAA54410CF6116E89E650419FF29E683DAA54417E5A3F148FE650412A7526E53CAA5441FF016D3B90E6504192FDA29D3DAA5441E17A146E90E650418FC2F5B83DAA5441006CFE1292E650416A6CD8613CAA54413F5EA19692E650412B7A35DE3BAA5441569E5DD892E6504113356AA33CAA544163DE191A93E6504104C871943DAA544130665D0294E650415381EE1B3EAA5441A4703D1A94E65041666666263EAA5441FBE1F44994E6504192355DEC3DAA54418BE9998E94E65041515D887E3DAA5441FB7B670895E65041E1CABA043DAA54410AB5587895E65041C512947C3CAA54410B6C210B94E65041451DCC3C3DAA54417E86BF7193E65041FA9BF13639AA5441BDD1FB2795E6504112E1BC7138AA5441E4B44EC896E65041AD0BEA4538AA54416128AF4D96E65041CE945D8534AA5441A4703D4A96E65041CDCCCC6C34AA5441DB0C8C4A96E650418E92CA6C34AA54416437D64496E650416C8A0F4034AA54414BE8EC1799E650416C8A0F4034AA5441064B4E2B99E65041EC9F5F2834AA544148E17AC499E65041EC51B85E33AA544183529BD299E650411308E55B33AA5441E2A521DD99E650417BF7074F33AA5441E041E31F9BE65041670B3D1933AA544148E17A549BE65041EC51B80E33AA5441C66481549BE650411E06781033AA5441571E8B679BE65041B7BC4B0D33AA5441571E8B679BE650412B30A69E35AA5441F3A174669EE65041B915083836AA544110C2EBEF9FE65041BDACB83135AA5441A4703DAA9FE650416666662634AA54418ABBF2B79FE650415B58A9F933AA54414CE6B1CB9FE650410AEE0D8D33AA5441C0AFF4DA9FE650416D8F1E3933AA5441A402408AA0E650413BA7BC9F32AA544131C0744FA1E6504153EC87DA31AA5441150EB105A3E65041B8C669FF30AA5441C33A267BA3E650419D9BE71631AA544185EB51D8A3E65041AE47E11A31AA54414750A4ECA3E65041F50B13F030AA54411409A20CA4E65041DE731E5030AA544128A19430A4E65041212BF86030AA5441295C8F32A4E65041CDCCCC5C30AA54417419E08FA4E65041738BA38D30AA5441494FCFC9A6E6504146ACCB9831AA5441310A048FA7E650412B04264131AA54412D068F47A8E65041265A0D1430AA544118DE32EAA8E650410AD7A32030AA5441A4703D0AA9E650410AD7A32030AA544128ADC028A9E65041E4A672102FAA544157ED562FA9E65041FA25E2992EAA54416E280478AAE650416000C4BE2DAA5441F1085718ACE65041C6DFB4DC2BAA5441B1475FA7ABE6504148790DC62AAA5441295C8FC2AAE6504148E17AB428AA5441BEE825D1AAE650413015A2B528AA544189D0A9CFAAE650412084F8B128AA54412A4DF0C3ACE650415E0FA9DB28AA54415A317351AEE650417F90545228AA54417CBC6DEBAEE65041EE9B961828AA5441965F044AB0E65041EFA0A51127AA5441C84766E3B0E6504107EB7F4525AA54414DD586EBB0E650414FB3774E25AA5441EC51B8EEB0E6504148E17A4425AA544154174E1EB2E65041034BFBA026AA54418950D75EB3E650413C31AD0228AA54412F7B0433B3E65041AF6E694428AA5441D6DBCF56B5E6504104D234682AAA5441466C1A59B7E65041498D7E3E2BAA5441C3F5289CB7E65041AE47E13A2AAA54410AD7A3C0B6E650416666669628AA54418D8C75DDB6E65041F633CF0128AA544107BF22F7B6E65041A10B8F2727AA54418478A5F4B7E6504116FCE45F27AA54410283643EB9E65041F465F4A327AA5441BC8CE629B8E65041D4F8FFB926AA54417B327D88B9E6504120355A7923AA54418B11A315BBE650410427361824AA5441B8B1018DB9E65041285B05DF22AA544107BF22F7B6E65041ACC1FFE720AA54418AA48490B7E65041555416D220AA5441A4471BEFB8E65041BC3816E91DAA5441F4AC5C68BAE6504198E8E2951EAA54417923509DBCE65041210EE9141EAA5441482F9FF7BCE650418DECFB051DAA54410AD7A300BDE6504148E17AD41CAA5441D1FAC40ABDE65041568A8ACC1CAA5441F9A0C820BDE6504151987F8A1CAA5441C7AE522ABEE6504180C12CEB1BAA5441295C8F72BEE65041295C8FB21BAA5441E56FF5FBBEE650414471CA571CAA544155D46670BFE65041B9D53BCC1CAA54413D8A8C3CC1E650413A5DD2411BAA5441794EB65DC1E6504120C839301AAA544185EB5188C1E65041EC51B87E18AA544132E9B492C1E650413B48057B18AA544162323294C1E6504154ACBB6E18AA5441BC02F6C6C2E65041E2962C0118AA54416D63C1EAC4E6504154ACBB6E18AA5441F6C11D07C5E65041E7054C7C18AA544166666616C5E65041EC51B87E18AA5441F7657C38C5E65041D796E89318AA5441AEEEB9E2C6E65041FC39C35F19AA54417B19EEF3C7E65041B348D3B319AA5441A4703DFAC7E6504148E17AB419AA54414DFEF3FCC7E650414F059AB619AA5441605494FFC7E65041BBE468B719AA544130CAFD89C9E65041087570A81AAA544114183A40CBE65041D21F16001BAA5441BA73F66ACEE6504152A29D7C1AAA5441EF852A67D0E6504137499BA519AA544185EB5188D0E650416666669619AA544141A25A89D0E650412378249719AA54416F3CABA4D0E65041610F968B19AA5441441DEF4BD3E65041529D8E831BAA54417225004AD3E65041B66317911BAA5441EC51B84ED3E6504148E17A941BAA5441D2E8BA22D3E65041E004FCA31CAA54417A7249F4D2E65041BC3816E91DAA544178631C09D6E65041D582F01C1CAA54416D59FE16D8E65041540069A01CAA5441CA38C201DAE650412EB3A87A1CAA54415F57B748DAE65041954598701CAA54419306B367D7E65041D21F16001BAA54412BCE051FD6E650413B62E13A1AAA54413015D9E0D5E650415BDD904B1AAA5441295C8F92D5E65041CDCCCC7C1AAA5441B0657B56D5E65041AB7E8E701AAA54417F3FAB28D4E65041D8EFCDBE1AAA5441FC09FC69D2E650417F6B675219AA5441D6B46067D1E6504132CA14A218AA5441BE39F5CBCFE650414300F25817AA5441A3333A29CEE65041631EC37616AA5441B047760DCAE650419610430215AA544122E2E6E4C0E65041229DE87012AA5441D643F3BEBAE650411843AD2210AA54414C4F2A82BAE650418CCB779310AA54410918DF21BAE65041203A0E5411AA54410B370F13BAE65041861DA26111AA5441295C8F12BAE65041295C8F6211AA5441C7690011BAE650415404856311AA54413E7B941FB9E650411B9CD24012AA544186D5C918B9E65041C9565E4912AA54416FF7CF3FB8E65041A11552FB13AA54412267C84EB7E65041132BE16814AA5441BA2E1B06B6E65041960B340916AA5441C74257EAB1E6504194FC061E19AA5441F9278EA6B1E6504194FC061E19AA544185EB5198B1E650418FC2F52819AA5441295C8FB2B0E650418FC2F52819AA54415475C0A9B0E65041DF814B3019AA54414AD40B52AEE650413A58C3481CAA544105A9233DAEE650415E3620511CAA5441C3F5283CAEE65041295C8F521CAA5441276E3D2CAEE6504158B4E2571CAA5441E29B5E09ADE65041B9D53BCC1CAA54410953314CAAE65041ACC1FFE720AA54417295FC86A9E65041E0021EAC24AA5441AE29B1EEA5E650413A278F102AAA54417D465E4EA4E65041C6DFB4DC2BAA5441150EB105A3E65041DE1F711E2CAA5441FCBDBEEEA1E65041A05BF02D2CAA5441E17A149EA1E650418FC2F5382CAA5441110CCB00A1E65041EEB52E5D2CAA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>911973 - 410318
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000020000000103000000010000001F000000C3F5281CE7E650418FC2F54821AA5441295C8F02F2E650410AD7A3B027AA544185EB51C8F4E650410AD7A3E029AA5441C3F528FCF7E6504148E17AE42AAA5441C3F5281CFBE650410AD7A3702BAA544185EB5178F9E650410AD7A3502DAA5441EC51B89EFBE650416666661630AA5441295C8F92FDE650410AD7A3C030AA544185EB51B8FFE65041AE47E11A31AA5441F6285CEF00E750411F85EBC131AA544148E17A2403E7504114AE472132AA54416666669603E75041666666362EAA54416666668604E75041AE47E1BA2CAA544148E17AA404E750410AD7A3102CAA5441295C8F6205E75041295C8FA22BAA5441666666D604E7504148E17A942AAA5441C3F5282C04E75041AE47E13A2AAA5441295C8F8203E75041295C8FE227AA5441666666A602E750418FC2F58827AA54416666664603E75041CDCCCCFC26AA544185EB51C803E750418FC2F51824AA5441295C8F0201E750410AD7A3B022AA5441666666D6FFE6504148E17AF424AA544148E17AC4FDE65041EC51B8AE24AA5441EC51B8FEFAE6504148E17A4425AA5441295C8FD2F9E65041EC51B8AE24AA544185EB5188F8E65041CDCCCCCC24AA5441EC51B88EF7E65041CDCCCCBC25AA5441295C8F62F1E650410AD7A33025AA544185EB51A8E7E65041295C8F0221AA5441C3F5281CE7E650418FC2F54821AA544101030000000100000080010000A4703D1A94E65041666666263EAA5441C3F5288C95E6504148E17A643CAA54410AD7A31094E650418FC2F5183DAA5441A4703D7A93E65041EC51B84E39AA544185EB512895E65041295C8F7238AA5441666666D696E6504148E17A5438AA5441A4703D4A96E65041CDCCCC6C34AA54416666660699E650418FC2F55834AA544148E17AC499E65041EC51B85E33AA544148E17A549BE65041EC51B80E33AA5441E17A145E9BE65041295C8FA235AA54410AD7A3609EE65041CDCCCC4C36AA54410AD7A3F09FE6504148E17A3435AA5441A4703DAA9FE650416666662634AA54410AD7A3F09FE650410AD7A34033AA5441A4703D3AA1E65041666666F631AA544185EB51E8A2E650410AD7A31031AA544185EB51D8A3E65041AE47E11A31AA5441295C8F32A4E65041CDCCCC5C30AA544185EB51A8A6E65041666666A631AA544148E17A84A7E650410AD7A36031AA5441C3F5284CA8E650410AD7A32030AA5441A4703D0AA9E650410AD7A32030AA5441295C8F32A9E650418FC2F5B82EAA5441295C8F72AAE65041295C8FD22DAA54410AD7A320ACE65041EC51B8DE2BAA5441295C8FC2AAE6504148E17AB428AA54410AD7A3C0ACE65041CDCCCCDC28AA544148E17A04AFE6504148E17A1428AA544185EB5158B0E65041AE47E11A27AA5441EC51B8EEB0E6504148E17A4425AA54410AD7A350B3E650410AD7A30028AA5441EC51B81EB3E65041CDCCCC3C28AA5441C3F5281CB5E65041EC51B84E2AAA544166666656B7E650418FC2F5482BAA5441C3F5289CB7E65041AE47E13A2AAA54410AD7A3C0B6E650416666669628AA544166666606B7E65041EC51B82E27AA5441A4703D4AB9E65041666666A627AA544166666646B8E65041AE47E1CA26AA544148E17AA4B9E650416666669623AA544185EB5148BBE650410AD7A34024AA5441A4703D6AB7E65041AE47E12A21AA5441666666E6B8E6504148E17A141EAA54410AD7A330BAE65041AE47E1AA1EAA544148E17AC4BCE65041EC51B81E1EAA54410AD7A300BDE6504148E17AD41CAA5441295C8F72BEE65041295C8FB21BAA5441C3F5286CBFE65041EC51B8DE1CAA5441295C8F42C1E6504148E17A441BAA544185EB5188C1E65041EC51B87E18AA54410AD7A3A0C2E65041AE47E11A18AA544166666616C5E65041EC51B87E18AA544185EB51D8C6E650416666669619AA5441A4703DFAC7E6504148E17AB419AA5441A4703D3AC9E65041EC51B8AE1AAA5441A4703D1ACBE65041295C8F121BAA544185EB51A8CEE65041295C8F721AAA544185EB5188D0E650416666669619AA5441EC51B84ED3E6504148E17A941BAA5441A4703DEAD2E650410AD7A3001EAA5441A4703D0AD6E650410AD7A3201CAA5441C3F528CCD7E65041AE47E1CA1CAA544185EB5108DDE65041CDCCCC0C1CAA54410AD7A3F0D6E650410AD7A3A019AA5441295C8F92D5E65041CDCCCC7C1AAA544166666676D3E65041EC51B80E1AAA544148E17AA4D2E65041AE47E15A19AA5441295C8F22D2E650418FC2F58818AA54410AD7A350D1E65041AE47E18A16AA544148E17A34CFE650410AD7A39015AA5441713D0A77CBE650416666664613AA544185EB5168C8E650410AD7A32012AA544166666616C5E65041EC51B85E10AA5441295C8FB2BFE65041CDCCCCEC0EAA54410AD7A370BBE650418FC2F5D80EAA5441295C8F12BAE65041295C8F6211AA54410AD7A390B9E65041295C8FB211AA5441295C8F82B8E650416666660613AA5441EC51B86EB8E6504148E17A7413AA5441A4703D0AB8E65041AE47E10A14AA5441A4703D6AB7E65041295C8F3214AA5441EC51B89EB5E6504148E17A4416AA544185EB51C8B3E65041AE47E17A17AA544185EB5198B1E650418FC2F52819AA5441295C8FB2B0E650418FC2F52819AA5441EC51B8FEAFE65041EC51B8BE19AA5441C3F5283CAEE65041295C8F521CAA544148E17AD4ACE65041AE47E1CA1CAA5441295C8FB2ABE65041EC51B86E1EAA5441A4703D8AABE6504148E17A041FAA5441295C8F22AAE65041AE47E1DA20AA5441295C8F82A9E6504148E17AA424AA5441295C8F12A6E65041666666D629AA5441295C8F32A4E65041EC51B8DE2BAA5441E17A149EA1E650418FC2F5382CAA5441666666969FE650410AD7A3B02CAA5441C3F5286C9CE65041295C8F222EAA54410AD7A38097E650410AD7A3002DAA5441A4703D3A97E65041EC51B87E2CAA544185EB512895E65041CDCCCC4C2CAA544185EB51E893E650410AD7A3502DAA5441A4703D3A92E65041666666762FAA54410AD7A30090E65041295C8FA230AA5441C3F5289C8FE6504148E17A2431AA5441E17A145E8CE65041EC51B8AE33AA544185EB51888AE65041CDCCCC1C34AA544148E17A1486E650418FC2F5D836AA5441C3F5280C84E65041EC51B86E37AA544185EB51C881E65041295C8F7238AA5441295C8FF27FE6504148E17AA438AA5441E17A14AE7DE650418FC2F55839AA544185EB51287CE65041AE47E17A3AAA544185EB515879E65041666666563BAA5441666666E677E650410AD7A3103BAA5441295C8F5275E65041295C8F923BAA54410AD7A35072E65041EC51B8BE3CAA5441E17A148E70E65041295C8FC23DAA5441A4703D5A6DE650418FC2F5A83EAA54410AD7A3C06BE6504148E17A543DAA5441295C8F2269E65041EC51B83E3FAA5441C3F528EC67E650410AD7A3D03EAA5441C3F528AC66E65041CDCCCC5C3FAA544148E17A4465E6504148E17A943EAA5441295C8FE262E65041666666163FAA5441A4703DEA5FE65041EC51B87E40AA5441A4703D5A5EE65041666666A640AA5441666666565DE650410AD7A3203FAA5441C3F528EC53E65041AE47E19A3DAA5441E17A144E51E65041295C8F723DAA544148E17AB44FE65041666666663AAA5441295C8F124CE65041AE47E13A39AA5441C3F5283C4AE650410AD7A34038AA54416666666648E65041295C8F2238AA544148E17A9447E65041AE47E14A38AA5441295C8FB247E65041666666B635AA544185EB510847E65041AE47E1CA35AA5441E17A14AE46E650418FC2F53836AA5441A4703DDA42E65041295C8F8237AA5441E17A145E41E65041666666A636AA544185EB51C83BE65041CDCCCC3C37AA544148E17A0437E65041666666B635AA5441295C8F3236E650416666663633AA544148E17A8434E65041295C8F1234AA544148E17AE433E6504148E17A5433AA544185EB51C831E65041AE47E15A32AA5441C3F5286C2EE65041AE47E1AA32AA5441666666E62CE6504148E17AA42EAA54410AD7A3702AE65041EC51B82E2CAA5441666666E627E65041295C8FF22BAA54416666666625E65041CDCCCCFC2BAA5441E17A14EE24E650418FC2F5F82AAA544185EB518821E65041666666162BAA5441C3F5283C1DE65041666666A627AA544185EB51D817E65041EC51B84E25AA5441A4703DBA17E650410AD7A39024AA54410AD7A37016E650410AD7A35023AA5441C3F5280C16E650416666665622AA5441A4703DEA14E65041295C8FF221AA5441E17A144E15E65041EC51B81E1EAA5441E17A140E14E650410AD7A3D01BAA5441C3F5288C0EE65041AE47E11A1DAA544185EB51880DE65041666666661CAA54410AD7A3100DE650410AD7A3F019AA5441A4703D5A0EE650416666661617AA5441E17A14DE0CE65041CDCCCC6C16AA544185EB511800E65041CDCCCCEC13AA544166666656FEE55041295C8F2215AA5441C3F5284CFEE55041666666D615AA5441A4703D2A02E65041EC51B8FE15AA5441C3F528CC05E65041295C8F4218AA544148E17AA40AE65041666666361AAA544185EB51680AE650418FC2F5981CAA5441A4703D2A0CE65041CDCCCC1C1BAA544148E17A340CE65041295C8F021CAA5441666666560DE65041666666561DAA544148E17AB40EE65041666666B621AA544148E17A640EE65041295C8FA221AA5441C3F5282C0AE65041666666061DAA544166666676F7E5504148E17AE41BAA544185EB51B8F6E55041295C8FE222AA5441295C8F72F6E5504148E17A6423AA5441E17A146EF5E55041295C8FE222AA544148E17A54F6E5504148E17A3421AA5441C3F528FCF3E550418FC2F5C81EAA54410AD7A370F3E55041666666E61EAA5441666666D6F1E5504148E17A241DAA544166666686F1E55041666666261BAA544166666666EEE550416666668615AA54410AD7A320EEE550410AD7A3B013AA5441A4703D4AECE55041295C8F1211AA5441666666F6EAE550418FC2F5E80DAA544148E17AC4EAE55041EC51B86E0AAA544185EB5168E7E55041295C8FC206AA544148E17AD4E4E5504148E17AE402AA544185EB5108E3E55041295C8F2201AA544185EB5128E1E55041295C8FA2FEA95441C3F528ECE0E55041EC51B84EFDA95441666666D6DDE55041CDCCCC3CFBA95441C3F528CCDDE5504166666666F9A9544148E17A64DCE55041EC51B82EF5A95441A4703DAADCE55041666666D6F2A9544185EB51D8DBE550418FC2F528F1A95441295C8F42DBE550410AD7A310F0A95441666666D6D8E55041CDCCCC1CEEA95441C3F528BCD9E55041AE47E1BAEBA95441E17A14EED9E55041AE47E1DAE9A954415C8FC2D5DDE5504152B81E25E8A95441295C8FE2DBE55041AE47E1AAE5A95441333333F3D7E5504133333363DDA954410AD7A350D9E5504166666606DCA95441E17A149ED9E550419A999999D9A9544185EB5128D7E5504148E17AA4D4A9544166666606D6E55041CDCCCC8CD3A95441A4703D3AD4E5504148E17AE4D0A9544185EB5198D0E550410AD7A350CEA9544148E17A54CFE55041295C8F72CAA9544133333353CFE5504114AE47B1CBA9544148E17A64D0E5504114AE4731D0A9544185EB5198D0E55041EC51B8CED7A9544148E17AE4CFE5504148E17A14D8A9544166666636CEE5504166666676DAA95441A4703D1ACCE5504148E17A94DAA954410AD7A3D0CAE55041AE47E12ADBA95441C3F528ACCBE55041666666E6DDA9544166666676CAE550418FC2F5A8DFA95441C3F528BCC5E55041AE47E1FAE2A95441E17A145EC4E55041EC51B8AEE3A95441295C8FD2C3E55041EC51B88EE5A95441C3F5287CBFE55041AE47E18AE9A9544148E17AE4BBE55041AE47E10AECA95441295C8FC2BAE5504166666646ECA954410AD7A390BAE55041EC51B85EEDA95441A4703DDAB6E55041CDCCCC5CEFA954415C8FC2D5B4E5504100000020EFA9544133333383B0E55041D7A370EDF0A95441E17A145EB0E55041295C8F62F3A95441C3F5283CB1E55041295C8F92F4A95441295C8F02B2E55041AE47E1AAF6A95441666666A6B8E55041AE47E1BAFFA95441C3F528DCB9E55041AE47E1BAFFA95441E17A145EBAE55041EC51B8BE00AA54419A999969BAE55041713D0AF701AA54415C8FC275BCE5504185EB51F804AA54418FC2F558C0E55041E17A14DE0AAA5441AE47E1DAC5E55041CDCCCC9C05AA544100000040C7E55041666666B605AA5441A4703DAAD2E550410AD7A3F0FBA95441A4703D6AD1E55041CDCCCC5CF9A9544148E17A74D6E5504148E17A54F7A9544148E17A44D9E55041EC51B8FEF7A9544185EB5198DAE55041666666A6FAA95441A4703DAADCE55041CDCCCC6CFDA9544166666606E0E55041666666E600AA5441C3F528FCDFE55041EC51B8EE02AA5441295C8FA2E0E550413333338307AA5441F6285C4FE7E55041EC51B89E12AA54410AD7A3D0E8E550416666668615AA5441295C8F82E1E55041EC51B84E16AA5441295C8F42E5E55041666666D61AAA5441295C8F12E8E5504148E17A841CAA5441C3F5286CE8E55041666666561DAA54410AD7A3C0E4E550410AD7A3901FAA5441295C8F22E2E55041666666461EAA5441A4703D1AD6E55041AE47E1EA29AA544148E17AC4D6E55041295C8FB22AAA54411F85EB81D6E55041C3F528DC2BAA5441CDCCCC3CD4E55041AE47E1FA2CAA5441D7A3704DD2E5504114AE47A12EAA5441295C8FD2D2E55041D7A370AD2FAA5441295C8FC2D3E55041EC51B84E2FAA544166666666D5E55041CDCCCC8C32AA5441E17A149ED4E55041CDCCCC2C33AA5441295C8F52D5E55041CDCCCCBC34AA544148E17A84DFE550418FC2F5D82CAA544185EB51C8E1E5504148E17AF429AA544185EB5158E3E550410AD7A3302AAA544166666676E8E55041EC51B8FE24AA5441C3F5282CECE550418FC2F54826AA5441295C8F12EDE5504148E17A1428AA5441666666D6ECE55041AE47E14A29AA54410AD7A330E8E55041666666462DAA544148E17A94E8E55041295C8FC22EAA5441C3F528DCE6E550410AD7A3802FAA5441A4703DCAE4E550418FC2F58831AA544185EB51A8E3E550416666665631AA54410AD7A330DEE55041295C8FE236AA5441295C8F12DEE55041CDCCCC1C39AA5441E17A145EDDE55041EC51B8EE39AA54410AD7A3D0D8E55041000000803CAA544114AE47C1DBE5504114AE475144AA5441A4703DBADBE55041EC51B85E42AA5441A4703D9ADDE550410AD7A3A041AA544166666656E0E55041AE47E13A3EAA5441D7A370CDE1E55041B81E859B3EAA5441B81E85EBE9E5504114AE47F136AA544185EB5198E9E550418FC2F58836AA5441666666F6EAE55041666666E632AA544148E17A84EEE5504148E17A2431AA5441666666C6EDE55041AE47E18A2FAA5441295C8FF2EEE5504148E17AE42FAA54410AD7A3B0F4E55041666666662BAA5441E17A140EF6E55041CDCCCC5C2BAA5441666666D6F6E55041EC51B87E2CAA5441C3F528CCFBE55041295C8F622FAA5441A4703D7AFDE55041AE47E1AA32AA544185EB5178FFE55041CDCCCC3C32AA5441A4703D1AFEE55041295C8F9231AA5441295C8F42FEE55041666666B630AA5441C3F5285CFDE55041AE47E1EA2EAA544166666676FCE55041295C8FD22DAA5441E17A146EFAE55041666666062CAA544148E17AA4FBE55041CDCCCCBC2AAA544148E17AC4F9E550416666669628AA5441E17A143EF8E5504148E17A5424AA5441A4703DEAF6E550416666669623AA5441666666E60EE650418FC2F53822AA5441666666D60FE650410AD7A38025AA5441C3F528BC10E65041CDCCCC1C25AA5441295C8F2214E65041CDCCCC9C27AA5441C3F5287C14E650410AD7A3302AAA5441A4703DDA15E65041295C8F422CAA5441E17A14DE16E6504148E17A542EAA5441A4703DFA18E65041AE47E13A2FAA5441666666661BE650418FC2F5B82EAA54410AD7A3D01AE65041AE47E13A2FAA5441E17A14BE1DE65041AE47E10A32AA54410AD7A3C020E650410AD7A35032AA5441A4703D1A21E65041EC51B84E34AA544148E17A8425E65041295C8F1234AA544185EB518826E65041AE47E18A34AA54410AD7A3202AE65041295C8F6234AA54410AD7A3602BE65041295C8F023AAA54410AD7A3202FE650418FC2F5E83AAA544185EB51F833E65041AE47E14A3DAA5441A4703D8A33E65041295C8F523FAA54416666666634E65041295C8F4240AA54410AD7A3103AE65041CDCCCC6C3EAA5441E17A144E3DE65041EC51B8EE3EAA5441C3F5287C3CE65041295C8F7242AA54410AD7A3D03DE650410AD7A32044AA5441C3F5280C3EE65041CDCCCCBC43AA5441C3F528FC3EE6504148E17AD444AA544185EB51A842E65041CDCCCC1C43AA544148E17AD443E6504148E17A4443AA54410AD7A33047E650416666666644AA5441E17A142E49E650410AD7A35046AA544185EB51184BE650418FC2F51847AA5441A4703D4A4BE65041AE47E19A47AA5441E17A149E4CE650410AD7A33048AA5441C3F5284C4EE650418FC2F57841AA5441C3F5289C53E650418FC2F5B842AA5441C3F5281C56E65041CDCCCC0C44AA544148E17A2458E65041295C8F8241AA54410AD7A35059E65041AE47E14A42AA5441666666765BE650418FC2F51842AA5441295C8FF25CE65041AE47E13A43AA544148E17AF464E65041295C8FD241AA5441E17A144E65E6504148E17A5442AA54410AD7A3C066E65041CDCCCCDC41AA5441A4703DCA66E6504148E17A1441AA5441C3F528EC67E65041CDCCCCAC3FAA544185EB512868E65041EC51B81E41AA5441A4703DEA69E65041EC51B80E42AA5441295C8FA26BE650410AD7A3B040AA5441E17A141E6DE650416666668642AA544148E17AB46DE650410AD7A34042AA5441C3F5282C6EE650410AD7A3B040AA5441295C8FE271E6504148E17AB441AA54410AD7A39078E65041EC51B81E41AA5441A4703DEA78E65041CDCCCC2C42AA54410AD7A3207AE65041EC51B85E42AA5441295C8F027FE65041AE47E1CA3FAA5441666666B67FE65041CDCCCC9C40AA54416666662683E65041EC51B86E3CAA54410AD7A31085E650410AD7A3603BAA5441E17A14AE87E65041CDCCCC4C3BAA544148E17A8489E65041666666863DAA5441C3F528AC8EE650410AD7A3F03CAA5441A4703D6A8FE65041CDCCCC2C3DAA5441E17A146E90E650418FC2F5B83DAA5441A4703D8A92E650410AD7A3003CAA54410AD7A32093E650418FC2F5B83DAA5441A4703D1A94E65041666666263EAA5441
+</a>
+
+<b>
+010600000001000000010300000001000000B4010000E17A149EA1E650418FC2F5382CAA5441E50BCB00A1E65041F8B52E5D2CAA5441A29F656D9FE65041C6DAA5E32CAA5441A4AE92589CE650412D13532C2EAA5441682098459BE65041AC7B7DEC2DAA5441CC6F838D97E650417BAD780F2DAA5441211FD78097E65041E7A4AF002DAA54410AD7A38097E650410AD7A3002DAA544106175D8097E65041214621002DAA5441E567DB0D97E65041C3FB897A2CAA5441F1AD3AB296E65041B74AE8712CAA5441653CE53D95E65041465D2D602CAA54410B6C210B94E6504193ED34512DAA54419FBE275E92E65041AD8F7D482FAA5441A4703D3A92E65041666666762FAA5441B6E1663492E6504159FB79792FAA54419A6B031B92E65041C64C43972FAA5441CBEA460590E65041F91BC4A730AA544126C5282A8FE650419D19B5AE31AA5441B6E991B28CE650417DFC886C33AA5441E17A145E8CE65041EC51B8AE33AA5441584D33508CE65041DEF1F8B133AA5441E8A628418CE65041ED0C97BC33AA544166C6D5A08AE65041BA1F262A34AA5441BD073F5986E65041389380BB36AA54414CDF8C2F86E6504179EE54C836AA544148E17A1486E650418FC2F5D836AA5441C3C0CE7284E6504151F82C5137AA5441593C8A1F84E6504112E6CB6A37AA54411714E12B82E6504191069E6638AA5441AFD72ACF81E6504182D57D6F38AA544185EB51C881E65041295C8F7238AA5441295C8FF27FE6504148E17AA438AA5441158D14C27DE6504141DABD5239AA5441DCA1BE297CE6504110D79E7F3AAA5441A85B916C79E65041ABFCBC5A3BAA5441257B3ECC77E6504193BC00193BAA54418F0CE6B976E65041C8BDCE4B3BAA5441EBF0C46975E65041377CFD8D3BAA5441339489A972E6504113356AA33CAA54410723F40271E65041D48E287F3DAA5441E17A148E70E65041295C8FC23DAA5441FA1BE1A96DE650414A3494923EAA54418BDA015B6DE65041112B4CB13EAA5441685F98D06BE650419FF29E683DAA5441F4C4908569E650419F4249F63EAA5441295C8F2269E65041EC51B83E3FAA5441E9141C7668E6504139F78F013FAA544181B390F667E650416C001FDD3EAA54411DE3CCC366E65041EB7D97603FAA5441AF752DB566E650415AADD9583FAA5441C3F528AC66E65041CDCCCC5C3FAA54415DC8406F65E6504135504DAC3EAA54415BD54C4F65E650415FC0629B3EAA544161A66D9263E65041F121F0F03EAA544167829F0B63E65041DB30A70D3FAA54410419C50060E65041EEE0717D40AA5441CFCD884A5EE6504153B644A940AA544174D597435DE65041D43DDB1E3FAA54415E603B855CE65041B6BFD0FE3EAA54419DAA281059E650417DB2B06F3EAA54415D17FD2354E650410976E8A33DAA54416924DB5D51E65041515D887E3DAA54417679AB5751E65041ED1423733DAA5441E17A144E51E65041295C8F723DAA5441CD53063D50E65041879A796A3BAA5441374188BD4FE6504110D79E7F3AAA544166448D7B4CE65041E371B25C39AA5441295C8F124CE65041AE47E13A39AA5441D48EFAFA4BE6504195DD552E39AA54415D9F9ED549E65041AD0BEA4538AA54415164F18C48E6504105A1003038AA544122F43DCD47E650412D40FA3F38AA544148E17A9447E65041AE47E14A38AA5441C91DC39447E650418027AF4438AA5441F66B008647E65041AD0BEA4538AA5441D9872DAC47E65041E31E894236AA54416EAF9EAF47E650414437F5F635AA54411C19B5D646E65041B915083836AA544170CE87F343E650419668F02337AA5441A4703DDA42E65041295C8F8237AA54412DFDD7D442E65041EB536F7F37AA5441D197DAD042E65041204EB58037AA5441048A5A5C41E65041389380BB36AA544193252DB63BE65041B810F93E37AA544103051ED439E65041389380BB36AA54412974E01137E65041EF01B0BA35AA544148E17A0437E65041666666B635AA54411033430437E6504176A4BCB535AA54416E51070137E6504139988FB435AA5441D32BE92536E650417BF7074F33AA54415FB37F9B34E6504107B53C1434AA54411B84989234E65041C385550B34AA544148E17A8434E65041295C8F1234AA5441C1D9F51234E650416ADBB28B33AA544149373CD433E65041F238F94C33AA54412ABC135832E65041A7DB4E9D32AA544142D66E6F31E650415FA3256332AA5441FDE0980F2FE6504123EBAD9B32AA544187FEA6672EE65041FB7351AD32AA5441C9FC86A02DE65041FA688A9030AA5441666666E62CE6504148E17AA42EAA5441B36302962BE6504194DE16542DAA5441D152FF6B2AE65041E1875A342CAA5441D9E1F5A327E650410C7F9FF32BAA5441DEE8DF6A27E65041E35189F42BAA544147A9068B25E6504187B287082CAA5441A5CAC78225E65041C18D58FC2BAA54416666666625E65041CDCCCCFC2BAA5441AF683C2825E65041E8598D762BAA5441EEC9D7D324E65041FF1BD9F92AAA54412195FFB721E65041F341C9142BAA5441FAD5D88921E65041C88DEA162BAA54413AF72A8921E65041AD0D5F162BAA544185EB518821E65041666666162BAA5441C3F5283C1DE65041666666A627AA544153B34E1B1AE65041773C594A26AA5441732F8FF217E65041DCDF745D25AA5441CB57D1F017E650412CE35D5925AA544185EB51D817E65041EC51B84E25AA5441B56883CC17E65041889F1C0425AA54414EC40D8B17E650418613646A24AA5441D8985D7E16E6504127697E6723AA5441313D487716E650417BB6165723AA54410AD7A37016E650410AD7A35023AA544117286E3D16E650411CE21AD122AA54415D9E120A16E650417F78295A22AA54418CC2958F15E65041FFFF7F2B22AA5441A4703DEA14E65041295C8FF221AA5441090C231F15E65041C2A36CEB1FAA54418AE4AD3C15E65041F6AFCF341EAA5441DEDF83B414E650411EE08B031DAA54417070907B14E650418F65879A1CAA544168810D4713E65041178171061CAA5441155EF8EB11E650412C3A237A1CAA5441011CD6810EE65041A75C40211DAA5441620CD17D0DE65041ECC2AC5E1CAA5441A1D3204B0DE65041252D68241BAA54410AD7A3100DE650410AD7A3F019AA544175AE28170DE650410B7732E219AA544195F941100DE6504117E268B719AA54413B297EDD0BE6504117E268B719AA5441713F3B9E09E65041A839B7CC19AA544148E17AA40AE65041666666361AAA5441C96448A40AE650414CC866381AAA54417B5BBAAA0AE650413B62E13A1AAA544112C755850AE6504173E87C721BAA5441FFB2776E0AE650413093915A1CAA544148693A1F0CE65041D587FF151BAA54419740C4210CE65041D7A7F5231BAA5441A4703D2A0CE65041CDCCCC1C1BAA5441D4096A2D0CE65041FD7905641BAA5441AD3E0D4B0CE65041D11A07071CAA5441B0A1E7670DE65041ECBD9D651DAA5441985C1C2D0EE65041ADC60EE11FAA54417CAA58E30FE65041BA55695B25AA5441F09EA6A610E65041D986252625AA5441C3F528BC10E65041CDCCCC1C25AA544112DE9CBF10E6504163BB561F25AA54416D3D60D410E65041AD15AD1925AA5441342285C313E6504174EDEA5627AA5441295C8F2214E65041CDCCCC9C27AA54416FBE0B6414E650413B830E7F29AA54412CAA268214E650410B6DB5392AAA5441582A3D9214E650417AA50F522AAA5441A0796F9F15E650411475CBC62BAA5441ACB41CE816E6504192E825582EAA5441AE12E80B19E650412D0E44332FAA5441BA48865B1BE65041AD90CBAF2EAA5441677D0C4D1BE65041FE5B45BE2EAA5441666666661BE650418FC2F5B82EAA5441421CB3D81AE650414B59E3332FAA54415FCA86C81DE650413ED1520832AA5441E5541B601EE65041D66C8C1932AA54410AD7A3C020E650410AD7A35032AA5441ABFA28C320E650416E86FC5E32AA5441A15EB6C420E65041E6AE295F32AA54413E3C8D1B21E65041396BC73C34AA54412E0B7F2523E65041554A53FE33AA5441FA13F0A025E65041554A53FE33AA5441259E22C826E65041308E158834AA5441121827A629E650412920ED6734AA5441DF247A212AE65041CDC2835F34AA5441234A7FA22AE6504121E2EAAA36AA5441166B575F2BE650414E76B7FC39AA54411F37B48E2FE65041905417033BAA5441D1CD1D0234E65041451DCC3C3DAA544104BB8E9433E650413913AE4A3FAA5441E356A04234E650414C02901B40AA54416666666634E65041295C8F4240AA54410663867E36E650412828E6943FAA5441C3AFC32B3AE650413918BD433EAA544118E23F243DE6504168F82AE83EAA5441E17A144E3DE65041EC51B8EE3EAA544112C9864D3DE65041A8B417F13EAA5441C40880563DE650417A6808F33EAA5441DC4D4B913CE65041EDD6538B42AA5441DFB025AE3DE65041AB7CEAE943AA5441ACC3B41B3EE650419F3C2EA843AA54419D56BC0C3FE6504146A208C544AA54411BC507A542E650416C54CC0E43AA5441BFCFD18D43E650411793233B43AA544148E17AD443E6504148E17A4443AA54412C3293F043E650416813F34D43AA5441037B2D7144E6504187FC716643AA5441BFD7EF6146E65041C7DFBA2044AA54410AD7A33047E650416666666644AA5441E7A86F7D47E6504194454DB044AA5441908C0F6849E65041C51A724F46AA544169DA4B1E4BE65041A96DBDFE46AA5441DC1708604BE650412C531F9847AA544136E8CB924CE65041ACD0971B48AA54416B3308494EE65041EDDB628441AA5441FFDA49494EE650419715718441AA5441C3F5284C4EE650418FC2F57841AA544180BCF2D550E650414EF1D91142AA54415D1ABD6B53E650419F413DA142AA54419160EA2856E65041AB7CEAE943AA5441DA83F90A58E65041EDDB628441AA544157FFB51C58E6504104DA448C41AA544148E17A2458E65041295C8F8241AA54414206855F58E65041CA32F6A941AA5441AAF9629559E65041D22EAE3342AA5441844CAE445AE650416AF1F1F141AA5441E81C72775BE650411C5CDB0742AA54411D064FFF5CE65041F09DA33843AA54413B51F55B5EE65041CB255BFB42AA5441362DA7F764E65041051C1FC641AA5441C33DA21665E65041DC3B150442AA54416A6A1B4465E65041C9EF044642AA54416773B1C166E65041ECEBD2C641AA54411DE3CCC366E65041B8AEDA9A41AA54411DE3CCC366E6504153B644A940AA544181B390F667E6504153BB53A23FAA54419C5B364E68E65041CFCBD31641AA5441CE3E89EE69E650416AF1F1F141AA5441F521DC8E6BE6504153B644A940AA5441B78DA79A6BE650413FE2ECB640AA5441295C8FA26BE650410AD7A3B040AA5441BDF6D6636CE65041A068E09F41AA5441DADF40276DE650410825258242AA544193E195676DE650412E544E6442AA54414A53B5A66DE65041E618074742AA54418AC903B56DE650412443DA3E42AA5441ADFCF2DC6DE650415FD061B941AA5441C12A4D0A6EE6504153B644A940AA5441101E2F1870E65041CFCBD31641AA54411D7214D071E65041F3156CAB41AA54415BCB897B78E650416E5EEA0041AA5441C65D948978E65041F89B561F41AA54410AD7A39078E65041EC51B81E41AA5441FAD06AA378E6504190EB515741AA5441DB4802FF78E65041C4C6C41D42AA5441ABD487247AE65041DE87AA5C42AA5441EDFADC997CE650411A14701041AA54411AC0BE127FE6504106263DB83FAA54415F1F61A27FE650410E456E8540AA54417C4F96A67FE65041BEA0578A40AA5441230A33AD7FE650417E7B0F9240AA5441CD7E555A83E6504193B7F11F3CAA54413A48A19484E650414275F5A43BAA54410AD7A31085E650410AD7A3603BAA5441C5175E4785E65041479F045F3BAA5441BE0C4E5285E65041ABFCBC5A3BAA5441F3578A0887E65041F891D3443BAA54415B95464A87E6504179145BC13AAA54410CF6116E89E650419FF29E683DAA54417E5A3F148FE650412A7526E53CAA544101026D3B90E6504192FDA29D3DAA5441E17A146E90E650418FC2F5B83DAA5441016CFE1292E65041686CD8613CAA54413F5EA19692E650412B7A35DE3BAA5441569E5DD892E6504113356AA33CAA544163DE191A93E6504104C871943DAA54412D665D0294E650415281EE1B3EAA5441A4703D1A94E65041666666263EAA5441FFE1F44994E6504190355DEC3DAA54418BE9998E94E65041515D887E3DAA5441FB7B670895E65041E2CABA043DAA544105B5587895E65041CB12947C3CAA54410B6C210B94E65041451DCC3C3DAA54417E86BF7193E65041FA9BF13639AA5441BDD1FB2795E6504112E1BC7138AA5441E4B44EC896E65041AD0BEA4538AA54416228AF4D96E65041D1945D8534AA5441A4703D4A96E65041CDCCCC6C34AA5441DE0C8C4A96E650418B92CA6C34AA54416437D64496E650416C8A0F4034AA54414BE8EC1799E650416C8A0F4034AA5441064B4E2B99E65041ED9F5F2834AA544148E17AC499E65041EC51B85E33AA544184529BD299E650411308E55B33AA5441E2A521DD99E650417BF7074F33AA5441E441E31F9BE65041660B3D1933AA544148E17A549BE65041EC51B80E33AA5441C46481549BE650412106781033AA5441571E8B679BE65041B7BC4B0D33AA5441571E8B679BE650412B30A69E35AA5441F3A174669EE65041B915083836AA544110C2EBEF9FE65041BAACB83135AA5441A4703DAA9FE650416666662634AA544189BBF2B79FE650415E58A9F933AA54414CE6B1CB9FE650410AEE0D8D33AA5441C0AFF4DA9FE650416D8F1E3933AA5441A402408AA0E650413BA7BC9F32AA544131C0744FA1E6504153EC87DA31AA5441150EB105A3E65041B8C669FF30AA5441C73A267BA3E650419D9BE71631AA544185EB51D8A3E65041AE47E11A31AA54415050A4ECA3E65041E20B13F030AA54411409A20CA4E65041DE731E5030AA54412AA19430A4E650411D2BF86030AA5441295C8F32A4E65041CDCCCC5C30AA5441BD19E08FA4E65041998BA38D30AA5441494FCFC9A6E6504146ACCB9831AA5441310A048FA7E650412B04264131AA54412D068F47A8E65041265A0D1430AA544119DE32EAA8E650410AD7A32030AA5441A4703D0AA9E650410AD7A32030AA544124ADC028A9E65041E7A672102FAA544157ED562FA9E65041FA25E2992EAA54416E280478AAE650416000C4BE2DAA5441F1085718ACE65041C6DFB4DC2BAA5441AF475FA7ABE6504145790DC62AAA5441295C8FC2AAE6504148E17AB428AA5441BCE825D1AAE650413015A2B528AA544189D0A9CFAAE650412084F8B128AA54411C4DF0C3ACE65041620FA9DB28AA5441FE90318AADE650416D182B9728AA54415B317351AEE650417B90545228AA54417CBC6DEBAEE65041EE9B961828AA5441965F044AB0E65041EFA0A51127AA5441C84766E3B0E6504107EB7F4525AA54414FD586EBB0E6504148B3774E25AA5441EC51B8EEB0E6504148E17A4425AA5441D9174E1EB2E650419C4BFBA026AA54418950D75EB3E650413C31AD0228AA54412F7B0433B3E65041AF6E694428AA5441D6DBCF56B5E6504104D234682AAA5441486C1A59B7E65041448D7E3E2BAA5441C3F5289CB7E65041AE47E13A2AAA54410AD7A3C0B6E650416666669628AA54418A8C75DDB6E65041FB33CF0128AA544107BF22F7B6E65041A10B8F2727AA5441AF77A5F4B7E65041EBFBE45F27AA5441F982643EB9E65041F265F4A327AA5441BC8CE629B8E65041D4F8FFB926AA54417B327D88B9E6504120355A7923AA54418811A315BBE650410227361824AA5441BCB1018DB9E65041295B05DF22AA544107BF22F7B6E65041ACC1FFE720AA54418AA48490B7E65041555416D220AA5441A4471BEFB8E65041BC3816E91DAA5441F4AC5C68BAE6504198E8E2951EAA54417923509DBCE65041210EE9141EAA5441452F9FF7BCE650418BECFB051DAA54410AD7A300BDE6504148E17AD41CAA5441D1FAC40ABDE65041528A8ACC1CAA5441F9A0C820BDE6504151987F8A1CAA5441C5AE522ABEE6504180C12CEB1BAA5441295C8F72BEE65041295C8FB21BAA5441FD6FF5FBBEE650416171CA571CAA544155D46670BFE65041B9D53BCC1CAA54413D8A8C3CC1E650413A5DD2411BAA5441794EB65DC1E6504123C839301AAA544185EB5188C1E65041EC51B87E18AA544137E9B492C1E650413948057B18AA544162323294C1E6504154ACBB6E18AA5441BC02F6C6C2E65041E2962C0118AA54416D63C1EAC4E6504154ACBB6E18AA5441F2C11D07C5E65041E7054C7C18AA544166666616C5E65041EC51B87E18AA5441F7657C38C5E65041D896E89318AA5441AEEEB9E2C6E65041FC39C35F19AA54417919EEF3C7E65041B248D3B319AA5441A4703DFAC7E6504148E17AB419AA54414AFEF3FCC7E650414F059AB619AA5441605494FFC7E65041BBE468B719AA544130CAFD89C9E65041087570A81AAA544114183A40CBE65041D21F16001BAA5441BA73F66ACEE6504152A29D7C1AAA5441F0852A67D0E6504132499BA519AA544185EB5188D0E650416666669619AA544143A25A89D0E650412578249719AA54416F3CABA4D0E65041610F968B19AA5441441DEF4BD3E65041529D8E831BAA54417525004AD3E65041B46317911BAA5441EC51B84ED3E6504148E17A941BAA5441D4E8BA22D3E65041DE04FCA31CAA54417A7249F4D2E65041BC3816E91DAA544178631C09D6E65041D582F01C1CAA54416D59FE16D8E65041540069A01CAA54418D38C201DAE6504137B3A87A1CAA5441ABD7B721DAE65041FD4420761CAA54415A57B748DAE65041914598701CAA54419306B367D7E65041D21F16001BAA54412BCE051FD6E650413B62E13A1AAA54412F15D9E0D5E650415CDD904B1AAA5441295C8F92D5E65041CDCCCC7C1AAA5441B2657B56D5E65041A97E8E701AAA54417F3FAB28D4E65041D8EFCDBE1AAA5441FC09FC69D2E650417F6B675219AA5441D6B46067D1E6504132CA14A218AA5441BE39F5CBCFE650414300F25817AA5441A3333A29CEE65041631EC37616AA5441B047760DCAE650419610430215AA544122E2E6E4C0E65041229DE87012AA5441DA43F3BEBAE650411A43AD2210AA54413720E89DBAE6504128D6FD5F10AA5441114F2A82BAE65041FACB779310AA54410918DF21BAE65041203A0E5411AA544111370F13BAE650417A1DA26111AA5441295C8F12BAE65041295C8F6211AA5441C8690011BAE650415604856311AA5441427B941FB9E650411A9CD24012AA544181D5C918B9E65041CD565E4912AA54416FF7CF3FB8E65041A11552FB13AA54412267C84EB7E65041132BE16814AA5441BA2E1B06B6E65041960B340916AA5441C74257EAB1E6504194FC061E19AA5441F7278EA6B1E6504195FC061E19AA544185EB5198B1E650418FC2F52819AA5441295C8FB2B0E650418FC2F52819AA54415175C0A9B0E65041DF814B3019AA54414AD40B52AEE650413A58C3481CAA544107A9233DAEE65041613620511CAA5441C3F5283CAEE65041295C8F521CAA54412A6E3D2CAEE6504155B4E2571CAA5441E29B5E09ADE65041B9D53BCC1CAA54410953314CAAE65041ACC1FFE720AA54417295FC86A9E65041E0021EAC24AA5441AE29B1EEA5E650413A278F102AAA54417D465E4EA4E65041C6DFB4DC2BAA5441150EB105A3E65041DE1F711E2CAA544101BEBEEEA1E650419E5BF02D2CAA5441E17A149EA1E650418FC2F5382CAA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>13600 - 56288
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000002A000000CDCCCC3C0B1F5141C3F5287C672155417B14AEA70A1F5141A4703DAA5C215541A0E0F5AD0B1F514139E2E462572155415DC753A60A1F5141143AB1B556215541A7C9DA5BFD1E5141EAC2332E5C2155419F9825ACFE1E5141E3917E7E5D2155416A9A7C32031F51417347C3335D2155412520463C071F514161E8E95E672155419350DE69041F514102A74D1F69215541093FBDD5011F5141CB8E81886A215541D0AD9D95FF1E51418CE1242068215541A68D170EFB1E51415FB01F4E5F215541C3F5284CF91E514152B81E455D215541CDCCCCCCF31E51418FC2F5A85F2155418FC2F5A8EE1E51411F85EB916221554166666616E81E5141F6285C7F66215541B81E85BBE11E51413D0AD753692155413D0AD7A3DD1E5141CDCCCCAC6A215541D7A3707DD71E5141C3F5280C6D21554185EB5158D11E51410AD7A3207021554133333383C81E51410AD7A3707721554114AE4731CA1E5141CDCCCC5C792155418FC2F538D51E514114AE47F187215541EC51B80EDA1E5141A4703DBA86215541EC51B83EDF1E5141713D0AF788215541666666B6E01E51418FC2F5D8892155410AD7A320FA1E514148E17A34A421554185EB5108FC1E514148E17A94A321554185EB5138FF1E514152B81E95A2215541D7A370ED051F5141CDCCCCFC9E2155417B14AEA70A1F5141B81E859B9C215541F6285CEF0C1F5141C3F5281C9B2155410AD7A340091F51410AD7A340952155419A999959051F5141D7A3703D8F2155411F85EB61011F5141333333D389215541EC51B80E091F5141333333C381215541AE47E19A0B1F5141713D0AE77E215541CDCCCC6C0C1F5141000000007D215541713D0AF70C1F51415C8FC2F579215541DD3CD9B90B1F5141E1E8F0D56A2155416D81EB8C0B1F5141D4C96D3469215541CDCCCC3C0B1F5141C3F5287C67215541
+</a>
+
+<b>
+01060000000100000001030000000100000050000000CAAB8744D81E5141CC495BBF6C215541CCED7CF3D41E51417BE4ED516E215541D8E72DC1D31E51412A1C75EB6E215541594BBE96D31E5141BD2CBA006F215541F6577268D31E5141909DEE176F215541BA086A9BD21E51411BD5B27E6F2155417BA66D56D21E5141349446A16F2155413FD0508FD01E5141F29A0DC77021554133333383C81E51410AD7A37077215541F1F8AD5EC91E5141CDE7CC6B78215541CF52E057CD1E514117C05EC774215541B505D5BAD11E5141B3A0A36C712155419AB8C91DD61E5141C47E00806E2155411504C8ACDA1E5141ED88A0C76C2155415DAF045AE01E5141352E32CD6A21554164245E8BE61E514127719D22682155411864AFC4F51E5141DC9EED64602155417A5CF70EF71E514140BEA8BF63215541AD026498FD1E514142EBC6776D215541EE6565CC061F51415D6B9B747A215541590AAB020B1F5141B670EC917F215541F59E254C0B1F51411C616E3F7F21554135C29CC50B1F5141C550E5837E215541F1F60AA20C1F5141AF3843D47B2155414DE226ED0C1F514145630F7D7921554135F2B4A10C1F5141287822E4752155419CA768970C1F514163656E6675215541BD40D2930C1F514149DCA33A752155411C8B9E810C1F514154CB745C74215541CF71947D0C1F5141D1FE252B74215541282CD6380C1F51415A7807E4702155419E9EA0110C1F5141F6626B056F215541659D42A30B1F5141543D08046A215541E64DBA850B1F5141AB29E80C69215541CDCCCC3C0B1F5141C3F5287C672155412C1D7B0C0B1F5141E6B6A0FA6321554115B1EEF80A1F5141E008838F62215541DFD301F50A1F514179939946622155417B14AEA70A1F5141A4703DAA5C2155411858CC040B1F514176B477CA5A21554196D6BB750B1F51410E339784582155416CE23BA60B1F51418D15B48A57215541A7E9B9150B1F51415213E1FE562155415DC753A60A1F5141143AB1B556215541401AD71B081F51413E5671C157215541D4DC6D3C051F51413E3226F05821554165F3210D031F51414A3E5DD65921554136B19DD1021F514190B8DCEE59215541E2354156011F5141995A038B5A2155411F88BD39FF1E51412C427F695B21554141692EB1FE1E5141F2F7B4A15B215541958958D4FD1E5141832D9BFC5B215541A5C9DA5BFD1E5141E6C2332E5C215541A0C0428DFE1E5141E0B99B5F5D215541261376D5FF1E51415D16506B5D215541659A7C32031F51417347C3335D21554165EB4A6E041F5141E825FC4E60215541781BCF58061F514191FE2322652155412020463C071F51415CE8E95E672155419850DE69041F5141FDA64D1F69215541DF2CCC00041F51419380CB5869215541053FBDD5011F5141CB8E81886A215541D0AD9D95FF1E51418CE124206821554136E6274DFE1E514196E382A065215541EAF35BA0FD1E51412A34035064215541DCBF9C3EFB1E514185559CAC5F2155419A3A2730FA1E51419D97204D5E215541BF443C16F91E5141C136905C5D2155415C7C8DB5F61E51418B162F655E2155415ABD688CF41E5141F8C4A8555F215541E8CD9A96F31E5141337EA4C75F2155410747A66EF01E5141CD8C109161215541C15C5507ED1E51414EB17A8B6321554166666616E81E5141F6285C7F66215541E1EE2597E61E51419278072A6721554130708496E41E51417E31500E682155416C00F36EE41E51413305EF1F68215541B81E85BBE11E51413D0AD753692155418D07A7CCDD1E5141A9AF5C9F6A215541CAAB8744D81E5141CC495BBF6C215541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>899881 - 2048078
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -41 </desc>
+<a>
+01060000000100000001030000000100000035000000E17A141EEFE75041E17A149E77335441713D0AA7F1E7504148E17A3476335441000000E0F5E750413D0AD73374335441295C8F92F7E75041A4703D6A733354413D0AD753F9E750413D0AD7E37133544185EB51C8FBE7504152B81E35703354417B14AEA7F8E750417B14AEE758335441AE47E11AF3E75041666666965833544100000010F3E7504114AE47D1563354415C8FC2E5E9E750417B14AE17553354415C8FC2C5E9E75041E17A142E4B335441E17A14AEF5E75041C3F5284C4B335441E17A14FEF8E7504114AE47F148335441AE47E19AF9E750411F85EB81483354415C8FC265F6E750413D0AD74348335441CDCCCC8CF1E75041C3F528CC473354417B14AE87ECE75041D7A3704D47335441E17A144EE8E750413D0AD7D3463354413D0AD753E4E750419A99995946335441A4703DCAE0E75041A4703DAA45335441EC51B85EDDE750410AD7A3D044335441E17A148EDAE75041713D0A7743335441295C8F92D7E75041AE47E19A413354419A9999C9D4E750419A9999494233544148E17A14D1E75041EC51B86E4333544152B81E85CDE75041CDCCCC5C443354413D0AD7D3D3E75041666666A64C3354415C8FC2C5D4E75041666666464E3354418FC2F548D5E750417B14AE4750335441A4703D3AD6E75041B81E853B5333544100000000D7E75041E17A14EE5533544152B81ED5D7E75041B81E85EB5733544148E17AF4D8E75041000000505A3354418FC2F5D8D9E75041EC51B82E5D3354411F85EB31DAE750418FC2F508603354410AD7A340C3E75041A4703D8A633354418FC2F5F8B7E750415C8FC2A564335441AE47E11AA9E75041B81E851B66335441CDCCCC2CAFE75041333333E36F335441EC51B88EB1E75041B81E854B6F335441E17A146EB3E75041666666666D335441CDCCCCECB4E75041666666166D3354415C8FC2D5B7E75041E17A149E6B33544166666636BCE750411F85EB516A335441D7A370FDBCE75041333333236C33544114AE4771BDE75041AE47E13A6D335441E17A149EC9E75041B81E852B69335441A4703D9ACCE75041B81E856B713354417B14AE47DDE7504148E17A446B335441E17A14AEE4E750417B14AE477D3354417B14AE47E9E75041D7A3707D7B3354415C8FC225EBE75041666666667A335441E17A141EEFE75041E17A149E77335441
+</a>
+
+<b>
+0106000000010000000103000000020000005700000052B81E4594E750413D0AD7E39B3354417B14AE9795E750415C8FC2959F3354419A99990996E75041295C8F02A233544148E17A649BE75041CDCCCC8CA1335441713D0AE79EE75041000000F0A0335441295C8F42A2E75041CDCCCC1CA0335441AE47E14AA5E75041000000509F335441C3F528BCA8E75041A4703D2A9E33544185EB5148A7E75041B81E85EB99335441D7A3701DA5E7504185EB51A8943354417B14AEE7A4E75041C3F528AC903354413D0AD763A5E75041713D0A778E335441AE47E18AA7E75041F6285C5F84335441C3F5286CA9E75041C3F5287C75335441C3F5286CAAE75041EC51B8DE7033544148E17AF4ABE750410000001070335441CDCCCC2CAFE75041333333E36F335441AE47E11AA9E75041B81E851B663354418FC2F5F8B7E750415C8FC2A5643354410AD7A340C3E75041A4703D8A633354419955AE73DAE7504117F5B8F15F3354418FC2F5D8D9E75041EC51B82E5D33544106584C83D8E7504151D834B65933544122115FB6D6E750412ADD70D555335441DF5C88A2D4E750418D9D5D374E33544197C00D62D3E750413E14E5104C33544160CECBB9CBE750414D74559B41335441203BC02EC9E7504142E6042B3D33544101DAF44EC8E75041A6496F9439335441106FA917C6E75041A8BAC5F2363354414536F99CC4E75041F7CD574937335441D31B418AC1E75041B4BADC0D3833544192BE8758BEE750417D846FA736335441240E7AFCB9E75041DE4F496C343354416BFC427DB8E75041E64AF91233335441CDCCCC1CB8E75041000000503033544152B81E05B8E75041F6285C4F2D335441000000C0B7E75041333333532B3354419A999939B6E750419A99990929335441C3F5288CB1E750413D0AD78323335441B81E854BB1E750410AD7A3102233544185EB51A8AFE75041EC51B8FE1F3354415C8FC245AEE750418FC2F5C81E335441295C8F32ACE7504114AE47211A335441713D0A57A3E7504114AE47211A3354419A999949A8E75041000000C024335441713D0A37A8E750415C8FC2A5253354415C8FC245A8E750419A9999F92633544185EB5168A7E75041AE47E1EA26335441713D0A77A7E75041EC51B8FE2533544114AE4701A7E75041D7A3708D24335441A4703D1AA2E750410AD7A33019335441B81E854BA1E750413333339317335441295C8FF2A0E750411F85EB2116335441CDCCCC7CA0E750415C8FC23515335441B81E85CB9FE750419A999909153354411F85EB819CE75041A4703DFA143354415C8FC2D59AE75041E17A140E1433544148E17A748FE75041D7A3706D0C33544114AE476192E75041E17A149E15335441D7A3704D94E75041333333E31C3354413D0AD76396E750413D0AD713263354410000002098E7504152B81E452F3354415C8FC2B598E75041295C8F8235335441B81E854B99E75041E17A141E3D335441F6285CAF99E75041AE47E1EA44335441B81E85BB99E75041B81E85EB483354418FC2F5689AE750418FC2F5F85533544185EB51A89CE7504152B81EA55F3354413D0AD7539EE75041D7A370FD63335441F6285C3F9FE75041000000806733544100000040A0E750413D0AD7C36C3354415C8FC2D5A0E750411F85EBB171335441B81E856BA1E750415C8FC2B577335441AE47E14AA1E7504114AE47817C335441AE47E1EAA0E75041AE47E1BA7F3354415C8FC295A0E750417B14AE2782335441A4703D6A9FE7504152B81E95863354418FC2F5E89DE75041C3F528EC88335441713D0AE79AE75041CDCCCCAC893354411F85EB5198E75041CDCCCCFC88335441713D0A9795E75041B81E853B87335441A4703D1A91E75041F6285C9F873354415C8FC2C591E75041000000908E3354416666666692E7504166666666933354416666668693E75041EC51B82E9833544152B81E4594E750413D0AD7E39B33544105000000F6285CAFA2E75041A4703D1A53335441D7A370FDA1E75041000000E0513354413D0AD753A3E75041E17A141E513354413D0AD703A4E750419A99995952335441F6285CAFA2E75041A4703D1A53335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>899881 - 4586384
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -41 </desc>
+<a>
+01060000000100000001030000000100000035000000E17A141EEFE75041E17A149E77335441713D0AA7F1E7504148E17A3476335441000000E0F5E750413D0AD73374335441295C8F92F7E75041A4703D6A733354413D0AD753F9E750413D0AD7E37133544185EB51C8FBE7504152B81E35703354417B14AEA7F8E750417B14AEE758335441AE47E11AF3E75041666666965833544100000010F3E7504114AE47D1563354415C8FC2E5E9E750417B14AE17553354415C8FC2C5E9E75041E17A142E4B335441E17A14AEF5E75041C3F5284C4B335441E17A14FEF8E7504114AE47F148335441AE47E19AF9E750411F85EB81483354415C8FC265F6E750413D0AD74348335441CDCCCC8CF1E75041C3F528CC473354417B14AE87ECE75041D7A3704D47335441E17A144EE8E750413D0AD7D3463354413D0AD753E4E750419A99995946335441A4703DCAE0E75041A4703DAA45335441EC51B85EDDE750410AD7A3D044335441E17A148EDAE75041713D0A7743335441295C8F92D7E75041AE47E19A413354419A9999C9D4E750419A9999494233544148E17A14D1E75041EC51B86E4333544152B81E85CDE75041CDCCCC5C443354413D0AD7D3D3E75041666666A64C3354415C8FC2C5D4E75041666666464E3354418FC2F548D5E750417B14AE4750335441A4703D3AD6E75041B81E853B5333544100000000D7E75041E17A14EE5533544152B81ED5D7E75041B81E85EB5733544148E17AF4D8E75041000000505A3354418FC2F5D8D9E75041EC51B82E5D3354411F85EB31DAE750418FC2F508603354410AD7A340C3E75041A4703D8A633354418FC2F5F8B7E750415C8FC2A564335441AE47E11AA9E75041B81E851B66335441CDCCCC2CAFE75041333333E36F335441EC51B88EB1E75041B81E854B6F335441E17A146EB3E75041666666666D335441CDCCCCECB4E75041666666166D3354415C8FC2D5B7E75041E17A149E6B33544166666636BCE750411F85EB516A335441D7A370FDBCE75041333333236C33544114AE4771BDE75041AE47E13A6D335441E17A149EC9E75041B81E852B69335441A4703D9ACCE75041B81E856B713354417B14AE47DDE7504148E17A446B335441E17A14AEE4E750417B14AE477D3354417B14AE47E9E75041D7A3707D7B3354415C8FC225EBE75041666666667A335441E17A141EEFE75041E17A149E77335441
+</a>
+
+<b>
+0106000000010000000103000000020000005700000052B81E4594E750413D0AD7E39B3354417B14AE9795E750415C8FC2959F3354419A99990996E75041295C8F02A233544148E17A649BE75041CDCCCC8CA1335441713D0AE79EE75041000000F0A0335441295C8F42A2E75041CDCCCC1CA0335441AE47E14AA5E75041000000509F335441C3F528BCA8E75041A4703D2A9E33544185EB5148A7E75041B81E85EB99335441D7A3701DA5E7504185EB51A8943354417B14AEE7A4E75041C3F528AC903354413D0AD763A5E75041713D0A778E335441AE47E18AA7E75041F6285C5F84335441C3F5286CA9E75041C3F5287C75335441C3F5286CAAE75041EC51B8DE7033544148E17AF4ABE750410000001070335441CDCCCC2CAFE75041333333E36F335441AE47E11AA9E75041B81E851B663354418FC2F5F8B7E750415C8FC2A5643354410AD7A340C3E75041A4703D8A633354419955AE73DAE7504117F5B8F15F3354418FC2F5D8D9E75041EC51B82E5D33544106584C83D8E7504151D834B65933544122115FB6D6E750412ADD70D555335441DF5C88A2D4E750418D9D5D374E33544197C00D62D3E750413E14E5104C33544160CECBB9CBE750414D74559B41335441203BC02EC9E7504142E6042B3D33544101DAF44EC8E75041A6496F9439335441106FA917C6E75041A8BAC5F2363354414536F99CC4E75041F7CD574937335441D31B418AC1E75041B4BADC0D3833544192BE8758BEE750417D846FA736335441240E7AFCB9E75041DE4F496C343354416BFC427DB8E75041E64AF91233335441CDCCCC1CB8E75041000000503033544152B81E05B8E75041F6285C4F2D335441000000C0B7E75041333333532B3354419A999939B6E750419A99990929335441C3F5288CB1E750413D0AD78323335441B81E854BB1E750410AD7A3102233544185EB51A8AFE75041EC51B8FE1F3354415C8FC245AEE750418FC2F5C81E335441295C8F32ACE7504114AE47211A335441713D0A57A3E7504114AE47211A3354419A999949A8E75041000000C024335441713D0A37A8E750415C8FC2A5253354415C8FC245A8E750419A9999F92633544185EB5168A7E75041AE47E1EA26335441713D0A77A7E75041EC51B8FE2533544114AE4701A7E75041D7A3708D24335441A4703D1AA2E750410AD7A33019335441B81E854BA1E750413333339317335441295C8FF2A0E750411F85EB2116335441CDCCCC7CA0E750415C8FC23515335441B81E85CB9FE750419A999909153354411F85EB819CE75041A4703DFA143354415C8FC2D59AE75041E17A140E1433544148E17A748FE75041D7A3706D0C33544114AE476192E75041E17A149E15335441D7A3704D94E75041333333E31C3354413D0AD76396E750413D0AD713263354410000002098E7504152B81E452F3354415C8FC2B598E75041295C8F8235335441B81E854B99E75041E17A141E3D335441F6285CAF99E75041AE47E1EA44335441B81E85BB99E75041B81E85EB483354418FC2F5689AE750418FC2F5F85533544185EB51A89CE7504152B81EA55F3354413D0AD7539EE75041D7A370FD63335441F6285C3F9FE75041000000806733544100000040A0E750413D0AD7C36C3354415C8FC2D5A0E750411F85EBB171335441B81E856BA1E750415C8FC2B577335441AE47E14AA1E7504114AE47817C335441AE47E1EAA0E75041AE47E1BA7F3354415C8FC295A0E750417B14AE2782335441A4703D6A9FE7504152B81E95863354418FC2F5E89DE75041C3F528EC88335441713D0AE79AE75041CDCCCCAC893354411F85EB5198E75041CDCCCCFC88335441713D0A9795E75041B81E853B87335441A4703D1A91E75041F6285C9F873354415C8FC2C591E75041000000908E3354416666666692E7504166666666933354416666668693E75041EC51B82E9833544152B81E4594E750413D0AD7E39B33544105000000F6285CAFA2E75041A4703D1A53335441D7A370FDA1E75041000000E0513354413D0AD753A3E75041E17A141E513354413D0AD703A4E750419A99995952335441F6285CAFA2E75041A4703D1A53335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>507883 - 215271
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -56 </desc>
+<a>
+0106000000010000000103000000010000002700000033333383E53A51415C8FC235001255419A999979E33A514166666666FE1155413D0AD763E13A514185EB5168FB1155418FC2F568E13A5141713D0A47FC1155417B14AE57DF3A5141B81E850BFF115541F6285C9FDE3A51419A999939FF115541C3F5283CE73A51417B14AE5708125541E17A145EE83A5141A4703D4A0A125541B81E853BE83A5141000000B00D125541A4703D6AE53A5141D7A3706D141255419A999949E53A5141B81E851B181255413D0AD733E33A5141EC51B80E1A1255410AD7A3A0E33A51417B14AEE71D1255411F85EBD1E83A5141000000902C1255413D0AD733E83A5141000000C02D125541F6285C1FEB3A5141CDCCCCAC341255418FC2F5C8ED3A514114AE473136125541E17A148EEE3A51418FC2F548381255417B14AEA7EF3A5141EC51B89E3A12554152B81E05F23A51413D0AD7733E1255418FC2F548F33A5141295C8FE23F1255415C8FC275F53A5141F6285C3F4012554185EB5168F73A514152B81E054012554185EB5138F93A514148E17A343F125541AE47E12AFB3A5141CDCCCCCC3D125541000000F0FB3A5141713D0A373C125541AE47E14AFC3A5141CDCCCCFC39125541F6285CCFF93A51418FC2F5483212554152B81E05F63A5141CDCCCC1C281255418FC2F538F53A5141F6285C6F23125541D7A3704DF23A5141713D0A571D125541AE47E1BAEF3A5141D7A3700D1B12554114AE4751ED3A51417B14AED717125541AE47E15AEC3A51410AD7A3A012125541666666B6ED3A51418FC2F5980D1255419A9999D9ED3A51417B14AEE709125541CDCCCCFCEC3A51413D0AD7530612554114AE47D1EA3A5141666666360312554133333383E53A51415C8FC23500125541
+</a>
+
+<b>
+0106000000010000000103000000010000003B000000CDCCCCFCEC3A51413D0AD753061255413E61C7E9EB3A5141ED310DC9041255411B08CFD1EA3A5141174CF65803125541523CB5A0EA3A514127CFE81A0312554133333383E53A51415C8FC235001255419A999979E33A514166666666FE1155413D0AD763E13A514185EB5168FB1155418FC2F568E13A5141713D0A47FC1155417B14AE57DF3A5141B81E850BFF115541F6285C9FDE3A51419A999939FF115541C3F5283CE73A51417B14AE5708125541E17A145EE83A5141A4703D4A0A125541B81E853BE83A5141000000B00D1255419906BD90E63A51417184F1AC1112554119967F63E53A5141D5830530151255419A999949E53A5141B81E851B1812554128D89A68E33A51412A1F5FDD191255415B100238E33A5141420674341A12554120AABC3EE33A514174A05E711A1255415E50973FE33A5141050C1A791A125541A80B634EE33A514182280CFF1A1255410AD7A3A0E33A51417B14AEE71D125541F5AFB481E63A5141E0FD480826125541656C81B8E63A5141A49BF9A2261255415CBA16CAE63A514195FC9BD426125541FFDBF897E93A514124F005E82C1255411F537DB2E83A514113E45BEC2E125541F6285C1FEB3A5141CDCCCCAC341255414ED55AD2EC3A5141FD03BAA435125541BF3E04C3ED3A51412494A5BB3512554132067575F03A51414BBF4EC7391255415C48364CF23A5141912DE6D73C125541D00520BAF33A5141B4BC6BF53F12554174E452E1F43A5141CDE19E26401255415C8FC275F53A5141F6285C3F4012554185EB5168F73A514152B81E054012554185EB5138F93A514148E17A343F1255416EAEEFB8F93A51413AFEB0D73E125541D7F76105FA3A51410A225AF23D125541997185FBFB3A5141B69DD7443A1255416119D987F93A5141FC68FCAF311255417735D237F83A51413A511C032E1255419CE43E0DF83A5141A126D6902D125541DF8FFE93F73A514181C1644B2C125541723E2B75F73A5141B72AA8F82B12554187418B30F73A5141C20977402B12554152B81E05F63A5141CDCCCC1C28125541B9DD1C57F53A51414D4A3620241255410A7F6B3DF53A5141F5DCA1D5231255415C48364CF23A51413891AE751D125541F198E6E5F03A51416E4655171C125541AE47E1BAEF3A5141D7A3700D1B12554114AE4751ED3A51417B14AED717125541AE47E15AEC3A51410AD7A3A012125541666666B6ED3A51418FC2F5980D125541851F2DC1ED3A5141218191770C1255410FBE2AD1ED3A5141DF132FF009125541806502B1ED3A5141C92C513F09125541CDCCCCFCEC3A51413D0AD75306125541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>507883 - 366452
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -56 </desc>
+<a>
+0106000000010000000103000000010000002700000033333383E53A51415C8FC235001255419A999979E33A514166666666FE1155413D0AD763E13A514185EB5168FB1155418FC2F568E13A5141713D0A47FC1155417B14AE57DF3A5141B81E850BFF115541F6285C9FDE3A51419A999939FF115541C3F5283CE73A51417B14AE5708125541E17A145EE83A5141A4703D4A0A125541B81E853BE83A5141000000B00D125541A4703D6AE53A5141D7A3706D141255419A999949E53A5141B81E851B181255413D0AD733E33A5141EC51B80E1A1255410AD7A3A0E33A51417B14AEE71D1255411F85EBD1E83A5141000000902C1255413D0AD733E83A5141000000C02D125541F6285C1FEB3A5141CDCCCCAC341255418FC2F5C8ED3A514114AE473136125541E17A148EEE3A51418FC2F548381255417B14AEA7EF3A5141EC51B89E3A12554152B81E05F23A51413D0AD7733E1255418FC2F548F33A5141295C8FE23F1255415C8FC275F53A5141F6285C3F4012554185EB5168F73A514152B81E054012554185EB5138F93A514148E17A343F125541AE47E12AFB3A5141CDCCCCCC3D125541000000F0FB3A5141713D0A373C125541AE47E14AFC3A5141CDCCCCFC39125541F6285CCFF93A51418FC2F5483212554152B81E05F63A5141CDCCCC1C281255418FC2F538F53A5141F6285C6F23125541D7A3704DF23A5141713D0A571D125541AE47E1BAEF3A5141D7A3700D1B12554114AE4751ED3A51417B14AED717125541AE47E15AEC3A51410AD7A3A012125541666666B6ED3A51418FC2F5980D1255419A9999D9ED3A51417B14AEE709125541CDCCCCFCEC3A51413D0AD7530612554114AE47D1EA3A5141666666360312554133333383E53A51415C8FC23500125541
+</a>
+
+<b>
+0106000000010000000103000000010000003B000000CDCCCCFCEC3A51413D0AD753061255413E61C7E9EB3A5141ED310DC9041255411B08CFD1EA3A5141174CF65803125541523CB5A0EA3A514127CFE81A0312554133333383E53A51415C8FC235001255419A999979E33A514166666666FE1155413D0AD763E13A514185EB5168FB1155418FC2F568E13A5141713D0A47FC1155417B14AE57DF3A5141B81E850BFF115541F6285C9FDE3A51419A999939FF115541C3F5283CE73A51417B14AE5708125541E17A145EE83A5141A4703D4A0A125541B81E853BE83A5141000000B00D1255419906BD90E63A51417184F1AC1112554119967F63E53A5141D5830530151255419A999949E53A5141B81E851B1812554128D89A68E33A51412A1F5FDD191255415B100238E33A5141420674341A12554120AABC3EE33A514174A05E711A1255415E50973FE33A5141050C1A791A125541A80B634EE33A514182280CFF1A1255410AD7A3A0E33A51417B14AEE71D125541F5AFB481E63A5141E0FD480826125541656C81B8E63A5141A49BF9A2261255415CBA16CAE63A514195FC9BD426125541FFDBF897E93A514124F005E82C1255411F537DB2E83A514113E45BEC2E125541F6285C1FEB3A5141CDCCCCAC341255414ED55AD2EC3A5141FD03BAA435125541BF3E04C3ED3A51412494A5BB3512554132067575F03A51414BBF4EC7391255415C48364CF23A5141912DE6D73C125541D00520BAF33A5141B4BC6BF53F12554174E452E1F43A5141CDE19E26401255415C8FC275F53A5141F6285C3F4012554185EB5168F73A514152B81E054012554185EB5138F93A514148E17A343F1255416EAEEFB8F93A51413AFEB0D73E125541D7F76105FA3A51410A225AF23D125541997185FBFB3A5141B69DD7443A1255416119D987F93A5141FC68FCAF311255417735D237F83A51413A511C032E1255419CE43E0DF83A5141A126D6902D125541DF8FFE93F73A514181C1644B2C125541723E2B75F73A5141B72AA8F82B12554187418B30F73A5141C20977402B12554152B81E05F63A5141CDCCCC1C28125541B9DD1C57F53A51414D4A3620241255410A7F6B3DF53A5141F5DCA1D5231255415C48364CF23A51413891AE751D125541F198E6E5F03A51416E4655171C125541AE47E1BAEF3A5141D7A3700D1B12554114AE4751ED3A51417B14AED717125541AE47E15AEC3A51410AD7A3A012125541666666B6ED3A51418FC2F5980D125541851F2DC1ED3A5141218191770C1255410FBE2AD1ED3A5141DF132FF009125541806502B1ED3A5141C92C513F09125541CDCCCCFCEC3A51413D0AD75306125541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>520501 - 230678
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000100000013000000CDCCCC3C286751411F85EB71876D544152B81E45296751419A999909846D5441C3F5288C29675141F6285C8F816D5441713D0A57296751415C8FC2C57E6D544114AE47C1286751411F85EB917C6D5441F6285CFF27675141C3F5289C796D5441CDCCCC2C26675141F6285C9F746D544114AE47F120675141666666F6756D5441000000201C67514133333383776D5441E17A149E176751410AD7A370796D544166666636136751419A9999897C6D54417B14AE170A675141EC51B83E846D544148E17AB40D67514152B81E45896D5441CDCCCCDC1167514114AE47618F6D54410AD7A3D01A67514152B81E758E6D544152B81E451C6751417B14AE978E6D54413D0AD73320675141333333D38E6D5441295C8F12256751419A9999E98E6D5441CDCCCC3C286751411F85EB71876D5441
+</a>
+
+<b>
+0106000000010000000103000000010000003B0000008A86F65629675141B58F4C6A836D54416119BE852967514113672639816D5441BD5DA97C29675141598E28BF806D5441A3A453672967514152378DA07F6D54418A074A4829675141E449398E7E6D5441C462AD1429675141FF3FE8CB7D6D544114AE47C1286751411F85EB917C6D5441125C679C28675141879CD2017C6D544155E32E532867514128E3B4E37A6D5441E552051D28675141CFEF0F107A6D5441D020B1BE276751419B0930EB786D54412F2CD8232767514149966D43776D5441D00E93A226675141FC1FAAE1756D5441CDCCCC2C26675141F6285C9F746D5441CE1BFFF82067514151826CF4756D54414CD7366E1F675141A29AEF72766D54412CC18A1B1F675141A903898D766D5441043472991E675141C08A64B7766D5441EE814D371D675141630B5629776D5441E84A402E1D675141FA973F2C776D544169BA10821B6751412F72BCC6776D5441D209DAB8196751418906408A786D54412D3C43BE186751418B3B68F5786D54419B3198711867514110293116796D5441844025C116675141770EFF0B7A6D5441F246824115675141AADFC2197B6D54412DFE64A813675141640971397C6D54417EA125D2116751410340ADB67D6D544140BE991011675141F9303F5A7E6D5441970A31D30F675141AFE77E667F6D5441F03350210E675141B9D92CD5806D5441BCAE01C10C675141E9B7EAFE816D5441A6476C980C6751414B043721826D544110FE29B20A675141619029BC836D54417B14AE170A675141EC51B83E846D5441E37E8D730B67514119B69C22866D5441AFBFE9990B675141A7B7F857866D544148E17AB40D67514152B81E45896D5441FD8FEFDC1067514119E340E98D6D544197BC8AE41167514121747B608F6D544174FFAC1318675141B59C59BD8E6D54410AD7A3D01A67514152B81E758E6D544181FB42011C675141F14462918E6D544198D66FE11D67514135AA0EB08E6D544153C6DE411E6751411D39C2B58E6D54412ED7DB691E6751414D771FB88E6D544114A6D8D91F675141B31BE1CD8E6D5441F0CA348C2267514158A3FCDD8E6D5441C6AA621A236751419E9A8AE08E6D544110928B3F24675141C104CFE58E6D5441AEA2BAFB24675141459630E98E6D544145B1F512256751412528A8E88E6D5441DC788DA125675141922639988D6D54414A2131F3256751411D819AD78C6D5441A6CEBC76266751414B1F3CA18B6D5441CCFEB6C3276751410ABB9B8F886D5441420A566628675141CD40D7E8866D5441313F61FA28675141B9B14200856D54418A86F65629675141B58F4C6A836D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>520501 - 343602
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000100000013000000CDCCCC3C286751411F85EB71876D544152B81E45296751419A999909846D5441C3F5288C29675141F6285C8F816D5441713D0A57296751415C8FC2C57E6D544114AE47C1286751411F85EB917C6D5441F6285CFF27675141C3F5289C796D5441CDCCCC2C26675141F6285C9F746D544114AE47F120675141666666F6756D5441000000201C67514133333383776D5441E17A149E176751410AD7A370796D544166666636136751419A9999897C6D54417B14AE170A675141EC51B83E846D544148E17AB40D67514152B81E45896D5441CDCCCCDC1167514114AE47618F6D54410AD7A3D01A67514152B81E758E6D544152B81E451C6751417B14AE978E6D54413D0AD73320675141333333D38E6D5441295C8F12256751419A9999E98E6D5441CDCCCC3C286751411F85EB71876D5441
+</a>
+
+<b>
+0106000000010000000103000000010000003B0000008A86F65629675141B58F4C6A836D54416119BE852967514113672639816D5441BD5DA97C29675141598E28BF806D5441A3A453672967514152378DA07F6D54418A074A4829675141E449398E7E6D5441C462AD1429675141FF3FE8CB7D6D544114AE47C1286751411F85EB917C6D5441125C679C28675141879CD2017C6D544155E32E532867514128E3B4E37A6D5441E552051D28675141CFEF0F107A6D5441D020B1BE276751419B0930EB786D54412F2CD8232767514149966D43776D5441D00E93A226675141FC1FAAE1756D5441CDCCCC2C26675141F6285C9F746D5441CE1BFFF82067514151826CF4756D54414CD7366E1F675141A29AEF72766D54412CC18A1B1F675141A903898D766D5441043472991E675141C08A64B7766D5441EE814D371D675141630B5629776D5441E84A402E1D675141FA973F2C776D544169BA10821B6751412F72BCC6776D5441D209DAB8196751418906408A786D54412D3C43BE186751418B3B68F5786D54419B3198711867514110293116796D5441844025C116675141770EFF0B7A6D5441F246824115675141AADFC2197B6D54412DFE64A813675141640971397C6D54417EA125D2116751410340ADB67D6D544140BE991011675141F9303F5A7E6D5441970A31D30F675141AFE77E667F6D5441F03350210E675141B9D92CD5806D5441BCAE01C10C675141E9B7EAFE816D5441A6476C980C6751414B043721826D544110FE29B20A675141619029BC836D54417B14AE170A675141EC51B83E846D5441E37E8D730B67514119B69C22866D5441AFBFE9990B675141A7B7F857866D544148E17AB40D67514152B81E45896D5441FD8FEFDC1067514119E340E98D6D544197BC8AE41167514121747B608F6D544174FFAC1318675141B59C59BD8E6D54410AD7A3D01A67514152B81E758E6D544181FB42011C675141F14462918E6D544198D66FE11D67514135AA0EB08E6D544153C6DE411E6751411D39C2B58E6D54412ED7DB691E6751414D771FB88E6D544114A6D8D91F675141B31BE1CD8E6D5441F0CA348C2267514158A3FCDD8E6D5441C6AA621A236751419E9A8AE08E6D544110928B3F24675141C104CFE58E6D5441AEA2BAFB24675141459630E98E6D544145B1F512256751412528A8E88E6D5441DC788DA125675141922639988D6D54414A2131F3256751411D819AD78C6D5441A6CEBC76266751414B1F3CA18B6D5441CCFEB6C3276751410ABB9B8F886D5441420A566628675141CD40D7E8866D5441313F61FA28675141B9B14200856D54418A86F65629675141B58F4C6A836D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>523939 - 263820
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+010600000002000000010300000002000000E9000000B81E855BF7B85041EC51B8DEBB2F5441295C8F42F8B850411F85EBC1BB2F544152B81E35F9B85041EC51B8AEBB2F5441F6285C7F03B95041AE47E1DABA2F544114AE47F113B950410AD7A3E0B82F5441EC51B89E16B950413D0AD793E22F54413D0AD73321B95041D7A3705DE62F5441000000902DB95041F6285CEFF32F5441333333A338B950418FC2F5A8FB2F5441AE47E14A3DB95041295C8F32FF2F5441A4703DCA3EB9504148E17A64FF2F54413333334343B95041EC51B82E02305441B81E854B47B9504114AE47610730544185EB51784BB95041A4703D1A18305441C3F528EC4BB95041713D0A47163054411F85EBC14BB95041AE47E12A153054413D0AD7A34CB95041713D0A8714305441A4703D6A4DB95041E17A143E1430544152B81E354DB9504133333363133054415C8FC2854DB950410AD7A38012305441666666864DB950413D0AD7B311305441CDCCCCAC4DB95041B81E852B1130544148E17A244EB95041000000A01030544148E17A944CB950417B14AEB7103054418FC2F5E84BB9504148E17A640F30544152B81EC54AB950418FC2F5680F305441F6285C5F4AB95041E17A148E0F3054415C8FC2054AB95041C3F528AC0E305441C3F5285C4AB9504185EB51480E305441CDCCCCEC4BB95041E17A142E0D305441CDCCCC0C4CB95041333333930C305441A4703DAA4BB9504152B81E650C305441F6285CAF4AB9504185EB51680C305441A4703D5A4AB950413D0AD7130C305441F6285C0F4AB95041295C8F920B3054415C8FC2F549B950413D0AD7130B305441295C8F124AB9504152B81E950A305441000000F04AB95041A4703D9A09305441295C8F024CB95041D7A370FD09305441AE47E17A4CB9504114AE47C109305441A4703DEA4DB950411F85EBD1083054410AD7A3204EB950417B14AEE7073054419A9999294DB950418FC2F5380630544185EB51084CB95041295C8F720630544185EB51584BB95041B81E85CB06305441F6285C3F4AB95041EC51B8BE07305441AE47E14A49B950410AD7A3800730544185EB51F848B95041666666060730544148E17A0449B95041AE47E1CA0530544148E17AD449B950413D0AD7F30330544152B81E354AB95041295C8F420330544185EB51F84AB95041F6285C9F02305441D7A370DD4BB950418FC2F52802305441C3F5281C4DB95041333333C30130544114AE47714DB95041CDCCCC6C01305441333333734DB95041C3F528FC00305441000000204DB95041E17A14AE00305441CDCCCCDC4BB95041295C8F1200305441E17A149E4BB95041D7A3701DFF2F544114AE47214CB95041C3F5284CFE2F5441EC51B8FE4CB950413D0AD7B3FD2F54417B14AE274EB9504185EB5138FD2F54417B14AEE74EB95041666666F6FB2F544114AE47214FB950415C8FC2D5FB2F54417B14AEA74FB950410AD7A3B0FB2F544148E17A9450B9504152B81ED5FB2F54415C8FC2A551B95041713D0A97FB2F5441EC51B8DE51B95041D7A3702DFB2F544185EB51D851B95041F6285C7FFA2F544114AE470152B95041CDCCCCECF92F54410AD7A38052B95041E17A144EF92F544114AE479153B950413D0AD7D3F82F5441295C8FC254B95041F6285C7FF82F54418FC2F57856B95041D7A3703DF82F5441333333B356B95041B81E85EBF72F54411F85EB9156B95041F6285C9FF72F5441CDCCCCBC55B95041D7A3705DF72F54413D0AD76355B950413D0AD7F3F62F544152B81E6555B95041E17A146EF62F5441F6285CAF55B95041D7A3701DF62F54410000006056B950413D0AD703F52F5441333333C356B95041C3F528ECF32F5441D7A370FD57B95041E17A146EF22F5441C3F5286C58B950415C8FC235F22F5441EC51B81E59B950415C8FC275F22F54413D0AD7C359B95041CDCCCCCCF22F54418FC2F5685AB950415C8FC265F32F5441F6285C4F5BB950417B14AE77F42F5441CDCCCC6C5BB95041EC51B83EF52F5441F6285C1F5BB9504148E17AE4F52F5441E17A141E5BB9504166666656F62F54411F85EB515BB95041CDCCCCFCF62F54419A9999C95BB95041CDCCCCFCF72F5441000000005CB95041F6285C7FF92F544148E17AF45BB9504148E17AE4FA2F5441AE47E12A5CB95041C3F528CCFB2F544114AE47D15CB950413D0AD7F3FB2F54418FC2F5985DB9504148E17A14FC2F5441295C8F125FB9504152B81EF5FB2F54410AD7A3B060B9504148E17AB4FB2F54417B14AE3761B95041666666C6FB2F5441000000B061B95041E17A141EFC2F544185EB51F861B9504114AE4791FC2F5441713D0A2762B950417B14AE67FD2F544152B81E9562B950411F85EBB1FD2F5441713D0A0763B950410AD7A380FD2F544152B81E5563B95041F6285CEFFC2F544185EB51F863B95041F6285CBFFC2F54410AD7A3D064B95041AE47E1AAFC2F544185EB51D865B95041666666B6FC2F5441F6285C6F66B950419A999979FC2F5441000000A066B95041000000F0FB2F54419A99997966B9504114AE4741FB2F5441CDCCCC2C66B9504114AE4721FA2F5441295C8F6266B95041333333A3F92F54410000000066B950417B14AED7F82F5441D7A3704D66B950419A999919F82F54419A9999F966B950413D0AD773F72F5441A4703D7A67B95041B81E85ABF62F5441C3F5289C68B950411F85EB61F52F5441AE47E14A69B9504100000000F52F5441C3F5289C69B950418FC2F5F8F42F5441D7A370FD69B95041295C8F22F52F54413D0AD7636AB95041C3F5287CF52F5441333333836AB9504114AE4701F62F54419A9999A96AB9504133333363F62F5441333333036BB9504148E17A94F62F54411F85EB716BB95041AE47E15AF62F54413D0AD7E36BB9504133333313F62F5441CDCCCC1C6CB9504148E17AA4F52F5441666666E66BB95041CDCCCCBCF42F54417B14AE976BB950410AD7A3F0F22F5441713D0A476CB95041AE47E16AF22F5441333333036DB9504114AE4711F22F5441A4703DDA6DB9504148E17A84F22F5441666666466EB9504148E17A94F22F5441A4703DEA6EB9504133333373F22F5441713D0A576FB9504133333343F22F54419A9999A96FB9504114AE47D1F12F5441AE47E19A6FB950410AD7A300F12F544148E17AC470B950419A9999E9EF2F544152B81E8571B95041295C8F72EF2F5441AE47E14A72B9504148E17AC4EF2F54419A99994973B950419A9999F9EF2F54411F85EBD173B9504114AE47E1F02F5441AE47E11A74B950411F85EB11F12F5441F6285C4F76B950419A999909F12F54416666662677B95041C3F5287CF12F54417B14AEC777B950413D0AD763F12F5441E17A142E78B95041B81E856BF12F5441713D0A8778B95041E17A149EF12F5441713D0A0779B95041C3F5285CF22F5441CDCCCC8C79B95041AE47E1EAF22F5441E17A14CE7AB950415C8FC2A5F22F544148E17A947BB95041C3F5285CF22F54415C8FC2857BB950415C8FC2C5F12F54415C8FC2457CB95041D7A3709DF02F5441EC51B84E7DB9504114AE47F1EF2F5441A4703DFA7EB9504133333363EF2F5441E17A143E80B9504148E17A94EF2F54410000006081B95041AE47E16AEF2F54410AD7A3E081B95041295C8F72EF2F5441D7A3703D82B950413D0AD7A3EF2F54417B14AED782B950410AD7A310F02F544152B81E7583B95041C3F5288CF02F5441AE47E12A84B95041CDCCCCACF02F5441666666C684B9504148E17AA4F02F5441AE47E19A86B950410AD7A310F12F5441CDCCCCDC86B95041C3F528BCF02F5441666666C686B950410AD7A300F02F5441D7A370FD86B95041A4703DAAEE2F5441AE47E1EA87B9504100000050ED2F544152B81E358CB9504152B81EC5E92F544185EB51C88DB9504185EB51D8E82F54416666669687B950418FC2F568E02F544114AE475182B950410AD7A330DA2F544148E17A347EB95041AE47E11AD62F5441F6285CBF6EB95041CDCCCCECC92F5441AE47E11A6AB9504152B81E95C52F54411F85EBB158B95041D7A370CDB02F5441D7A3706D4FB95041C3F5281CA42F5441333333334BB9504152B81E959F2F5441333333C346B950410AD7A3609B2F54411F85EB813DB950410AD7A310942F54413D0AD76334B95041000000508D2F544152B81ED52BB9504185EB5138872F54413D0AD7832CB95041A4703DDA882F5441295C8FB22FB950413D0AD7138B2F544185EB51E82EB9504185EB51788F2F5441CDCCCC9C2DB9504185EB51788F2F54411F85EBF12DB950410AD7A3E0912F5441E17A145E2DB95041CDCCCC9C932F54417B14AEB72CB9504100000090952F544152B81EE52BB95041F6285C0F962F5441D7A3708D2AB9504166666636962F5441D7A370CD27B950411F85EB11962F54411F85EB3126B95041E17A14FE9B2F5441E17A14FE24B950410AD7A300A42F54417B14AEC724B95041EC51B8AEA52F5441666666C624B950415C8FC265A72F5441B81E85EB24B9504114AE4721A92F5441295C8F0226B9504100000070AC2F544185EB51F826B95041713D0AD7AE2F54415C8FC2252AB95041295C8F72B62F5441E17A146E2CB950410AD7A3A0BC2F54418FC2F5E82BB9504148E17AD4BC2F5441F6285CAF29B9504100000090B62F5441F6285C6F26B950415C8FC2D5AE2F54419A99997925B95041000000A0AC2F54413D0AD75324B950419A999949A92F5441295C8F3224B95041AE47E18AA72F54416666661624B95041333333C3A52F54417B14AE5724B95041EC51B8EEA32F54410000008025B95041E17A141E9C2F5441713D0A4721B95041CDCCCC4C9B2F54410000006022B95041D7A370DD952F5441A4703D2A21B9504100000080962F544152B81E551FB95041C3F5280C972F544152B81E551DB950419A999969972F5441E17A14BE1AB95041713D0A37972F544148E17A0414B95041AE47E19A932F54413D0AD7230AB950419A9999A9A02F5441CDCCCC5C06B9504185EB5168A42F5441D7A3705D03B950415C8FC2E5A52F54418FC2F5C8FBB85041713D0A97A82F5441C3F5284CF3B85041713D0AF7AB2F54413D0AD7D3EFB85041713D0A07AD2F5441295C8FF2ECB85041AE47E1BAB12F5441CDCCCC3CEEB850419A999979B52F544166666636EFB85041333333F3B72F5441C3F528FCF0B85041CDCCCC2CB72F54419A999969F5B8504152B81EE5B82F5441B81E855BF7B85041EC51B8DEBB2F54410500000048E17A645CB950415C8FC275D22F54413D0AD7D361B950417B14AE07CF2F5441E17A14AE65B950417B14AE77D52F54419A99995960B95041CDCCCCBCD82F544148E17A645CB950415C8FC275D22F54410103000000010000001E000000C3F528EC21B95041666666168E2F5441C3F528EC21B95041B81E85BB8E2F54419A99992923B9504148E17AE48F2F54415C8FC29525B9504152B81E75842F54418FC2F5E826B95041A4703DDA842F54418FC2F55827B950418FC2F528842F54411F85EB2123B9504185EB5138802F54410AD7A3D021B95041D7A370FD802F5441295C8F4220B95041AE47E16A832F54415C8FC21515B9504114AE4731922F5441AE47E11A15B950413D0AD7E3922F544148E17AF417B95041E17A14AE942F5441000000D019B95041A4703D8A942F54419A99990920B950417B14AE37932F5441295C8F0220B9504152B81E75922F5441A4703D2A1FB950410AD7A350922F5441B81E85DB1EB9504148E17AA4912F5441B81E85DB1EB9504100000000912F5441A4703D1A1FB95041A4703D7A902F544185EB51881FB9504148E17A04902F5441AE47E1FA1FB9504148E17AE48F2F54410AD7A31020B95041295C8F628F2F5441F6285CBF1FB9504185EB51488F2F544114AE47511FB950413D0AD7B38E2F54419A9999391FB95041000000308E2F54419A9999791FB95041333333638D2F54410AD7A31020B95041713D0AF78C2F54417B14AEF720B95041A4703DDA8C2F5441CDCCCCCC21B950411F85EB718D2F5441C3F528EC21B95041666666168E2F5441
+</a>
+
+<b>
+0106000000010000000103000000010000009900000052B81E9562B950411F85EBB1FD2F54411BB6B1E362B950415517EE8FFD2F5441713D0A0763B950410AD7A380FD2F5441AB21BA0263B95041504D916EFD2F544131D7460263B950410333AE6CFD2F54415992BDFF62B9504183920D62FD2F54419C0F7FF162B95041D59F5D26FD2F54418141D2E862B95041F4CC0302FD2F5441563D61E662B9504193CCC8F7FC2F5441013CF9C962B9504197F7C080FC2F544185EB51F863B95041F6285CBFFC2F544122CA912D65B950417669281DFA2F5441FC4A6BA164B95041C06B6CA7F82F5441AE4CB65564B950419CC589DDF72F54411E4B3B0167B95041C706E6DCF52F5441F5EA6B0267B95041E18E01DCF52F54418C6154C564B950412E797847F42F544137AB1B9E62B95041A9D92665F22F54417A696F5460B95041278193D6EF2F5441F9C989565DB95041996F146AEE2F5441FDF9B40958B95041552491D1EE2F5441C073D42C54B95041F3927FF9F02F54418C44F0C250B950417CBBDFE1F42F5441EC2F1C5F4BB95041B5283FE1F82F5441AFAAE6E948B95041D59E2B42F92F5441088533EF43B95041FE8F5F8CF42F5441E8DE208640B95041E37624EFFB2F5441146289793DB95041ACADF7F7FD2F5441EB70552F42B950419691FEA800305441A8981ABC43B950413FA88DCA02305441A73AE8C643B95041E8497AD802305441AD4A052244B950412306EA4D03305441ADD40C3C44B9504165AD766F033054410389958444B9504113EEF3CC03305441B29193A444B95041271630F603305441F15C819345B9504165D7242A053054415610438E46B95041FD45586D06305441B81E854B47B9504114AE476107305441219F65CE4AB950413FD0A1711530544185EB51784BB95041A4703D1A18305441C3F528EC4BB95041713D0A47163054411F85EBC14BB95041AE47E12A153054413D0AD7A34CB95041713D0A8714305441A4703D6A4DB95041E17A143E1430544152B81E354DB9504133333363133054415C8FC2854DB950410AD7A3801230544101F0DC854DB950418108AB5F12305441666666864DB950413D0AD7B311305441D4E5E09C4DB95041AB920A6411305441CDCCCCAC4DB95041B81E852B1130544148E17A244EB95041000000A01030544148E17A944CB950417B14AEB7103054418FC2F5E84BB9504148E17A640F30544152B81EC54AB950418FC2F5680F305441F6285C5F4AB95041E17A148E0F3054415C8FC2054AB95041C3F528AC0E305441C3F5285C4AB9504185EB51480E305441CDCCCCEC4BB95041E17A142E0D305441CDCCCC0C4CB95041333333930C305441A4703DAA4BB9504152B81E650C305441F6285CAF4AB9504185EB51680C305441A4703D5A4AB950413D0AD7130C305441F6285C0F4AB95041295C8F920B3054415C8FC2F549B950413D0AD7130B305441295C8F124AB9504152B81E950A305441000000F04AB95041A4703D9A09305441295C8F024CB95041D7A370FD09305441AE47E17A4CB9504114AE47C109305441A4703DEA4DB950411F85EBD1083054410AD7A3204EB950417B14AEE707305441717B7E2C4DB950415F81013E06305441CC88261F4DB95041E3670A3B0630544185EB51084CB95041295C8F720630544185EB51584BB95041B81E85CB06305441F6285C3F4AB95041EC51B8BE07305441AE47E14A49B950410AD7A3800730544185EB51F848B95041666666060730544148E17A0449B95041AE47E1CA0530544148E17AD449B950413D0AD7F30330544152B81E354AB95041295C8F420330544185EB51F84AB95041F6285C9F02305441C9DC93AC4BB9504108CB354202305441D7A370DD4BB950418FC2F52802305441C3F5281C4DB95041333333C30130544114AE47714DB95041CDCCCC6C01305441BE40BD724DB950417985301701305441333333734DB95041C3F528FC00305441000000204DB95041E17A14AE00305441CC0BD1034DB95041DBBA84A000305441CDCCCCDC4BB95041295C8F1200305441E17A149E4BB95041D7A3701DFF2F544114AE47214CB95041C3F5284CFE2F5441EC51B8FE4CB950413D0AD7B3FD2F54417B14AE274EB9504185EB5138FD2F54417B14AEE74EB95041666666F6FB2F544114AE47214FB950415C8FC2D5FB2F5441773577A34FB950415ED0CDB1FB2F544173E477A44FB95041EF6B4BAEFB2F544162B89DBF4FB95041E8D353B4FB2F544148E17A9450B9504152B81ED5FB2F54415C8FC2A551B95041713D0A97FB2F5441EC51B8DE51B95041D7A3702DFB2F54410717C0DA51B95041012F77C1FA2F544185EB51D851B95041F6285C7FFA2F5441252624EE51B950412DEF4731FA2F544114AE470152B95041CDCCCCECF92F5441EE6F5A6052B9504111155176F92F54410AD7A38052B95041E17A144EF92F54416532C1B552B950412F034436F92F544114AE479153B950413D0AD7D3F82F54410D44773654B95041A3D020A6F82F5441295C8FC254B95041F6285C7FF82F54418FC2F57856B95041D7A3703DF82F5441333333B356B95041B81E85EBF72F54411F85EB9156B95041F6285C9FF72F5441FB74BC3E56B950411766A185F72F54417207221A56B95041AD8A4D82F72F5441CC5ED70956B95041C0034575F72F5441CDCCCCBC55B95041D7A3705DF72F54413D0AD76355B950413D0AD7F3F62F544152B81E6555B95041E17A146EF62F5441F6285CAF55B95041D7A3701DF62F54418F01B83056B950411843374FF52F54410000006056B950413D0AD703F52F5441333333C356B95041C3F528ECF32F54416589906157B9504180519B2BF32F5441D7A370FD57B95041E17A146EF22F5441C3F5286C58B950415C8FC235F22F5441EC51B81E59B950415C8FC275F22F54413D0AD7C359B95041CDCCCCCCF22F54418FC2F5685AB950415C8FC265F32F5441F6285C4F5BB950417B14AE77F42F5441CDCCCC6C5BB95041EC51B83EF52F5441CAF5FE5E5BB95041687D445CF52F5441FFB3AE2C5BB9504168A0F6C7F52F5441F6285C1F5BB9504148E17AE4F52F5441E17A141E5BB9504166666656F62F54411F85EB515BB95041CDCCCCFCF62F54419A9999C95BB95041CDCCCCFCF72F5441000000005CB95041F6285C7FF92F544171EF94F55BB950419F2A53C2FA2F544148E17AF45BB9504148E17AE4FA2F5441AE47E12A5CB95041C3F528CCFB2F54418036A6415CB95041B1EF96D1FB2F544114AE47D15CB950413D0AD7F3FB2F54418FC2F5985DB9504148E17A14FC2F5441295C8F125FB9504152B81EF5FB2F54410AD7A3B060B9504148E17AB4FB2F54417B14AE3761B95041666666C6FB2F5441000000B061B95041E17A141EFC2F544185EB51F861B9504114AE4791FC2F5441713D0A2762B950417B14AE67FD2F544152B81E9562B950411F85EBB1FD2F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>524030 - 2626388
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+010600000001000000010300000002000000A5000000D7A370CDF7AB504100000080C82054418FC2F588F7AB5041295C8FF2CA2054413D0AD7D3F7AB504152B81E55D520544100000030FDAB5041295C8FF2D6205441000000F003AC5041A4703DAAD9205441AE47E1FA09AC5041CDCCCC0CDC20544185EB51580CAC50418FC2F5F8DC205441000000500DAC504152B81EE5DC205441295C8F120EAC5041EC51B87EDC205441AE47E19A0FAC50413D0AD713DB2054410000003016AC5041B81E852BD5205441A4703D3A16AC5041B81E85DBD42054411F85EB1116AC50419A999959D4205441C3F528CC15AC504100000000D42054413D0AD75315AC504100000000D4205441000000F014AC50415C8FC2E5D420544148E17AC413AC504100000040D520544148E17AD412AC50411F85EB21D52054410000002012AC5041B81E858BD4205441A4703DEA10AC50415C8FC2E5D4205441295C8F6211AC5041000000E0D52054410000003011AC50413D0AD7E3D6205441295C8F2210AC50411F85EBA1D720544185EB51D80EAC50417B14AE97D7205441295C8FF20DAC50415C8FC2C5D6205441666666060EAC50411F85EB71D5205441C3F5285C0DAC50411F85EB21D5205441295C8FC20BAC50417B14AE27D4205441EC51B8BE0AAC50413D0AD723D320544148E17A640AAC50417B14AEF7D1205441666666460AAC5041A4703DAACF2054410AD7A3A00AAC50411F85EBF1CD205441295C8F220BAC50413D0AD793CC205441295C8FC20BAC504100000090CB205441EC51B84E0CAC50411F85EBD1CA20544185EB51580CAC504100000000CA2054410AD7A3300CAC504148E17A74C92054413D0AD7630BAC50419A9999C9C7205441295C8FC20AAC50415C8FC255C5205441F6285C8F0EAC504114AE4761C4205441A4703D5A0EAC504100000090C3205441F6285C7F11AC5041333333C3C2205441D7A3704D10AC5041F6285C1FC0205441333333A30FAC504185EB5118BD2054417B14AE670AAC5041F6285CAFB32054413D0AD7F30AAC50419A999959B320544152B81EC50AAC504114AE4711B32054417B14AE7708AC50413D0AD763AF205441A4703D9A06AC5041C3F528FCAB2054416666661605AC5041EC51B8AEA82054411F85EBE102AC5041A4703D2AA2205441D7A3704D01AC504185EB51B89F20544100000040FFAB50419A9999399D205441B81E85DBFAAB50418FC2F5A897205441EC51B82EF9AB5041713D0AB7932054419A999989F9AB50417B14AE979120544114AE4711FBAB5041666666168F20544133333393FCAB5041E17A14CE8C2054418FC2F518FCAB5041666666968B2054418FC2F5D8FAAB50418FC2F5588820544152B81E75F5AB5041333333037A205441B81E859BF2AB5041B81E85AB722054415C8FC2F5EDAB5041C3F5282C662054415C8FC285EAAB5041E17A14EE5D2054413D0AD773E4AB504148E17A644F2054415C8FC285E1AB5041000000E0472054413D0AD733E2AB5041F6285CBF47205441C3F5282CE5AB5041EC51B83E4F2054419A999939EBAB5041666666C65D205441F6285C9FEEAB5041A4703DFA65205441F6285C4FF3AB50413D0AD7837220544114AE4701F6AB5041B81E85DB79205441AE47E1AAFBAB5041CDCCCC1C8820544114AE47E1FCAB5041295C8F828B20544166666616FDAB5041A4703D0A8C2054413D0AD7C3FEAB5041D7A370CD892054410AD7A31000AC5041C3F528CC882054415C8FC28503AC5041E17A14AE85205441B81E855BFEAB50415C8FC2D578205441C3F528CCFBAB504185EB51E871205441D7A370BDF9AB5041E17A149E6B20544114AE4741F7AB5041295C8F12632054419A999969F6AB504185EB51E85E2054411F85EB81F4AB5041000000E0552054413D0AD7B3FBAB5041333333234F205441C3F5287CFDAB504148E17AC44E205441AE47E11A00AC5041333333434B2054416666669601AC5041F6285C3F4C2054415C8FC2C503AC5041713D0A274D205441D7A3703D06AC50411F85EBF14D205441CDCCCCDC09AC5041295C8F324F205441AE47E1FA0AAC5041B81E857B4F205441CDCCCCFC0CAC5041333333834F2054413333334310AC5041713D0A874F2054418FC2F5D812AC5041B81E850B512054415C8FC25515AC50419A9999A95220544152B81E5517AC5041E17A14BE532054417B14AEA715AC50413333335348205441C3F5285C14AC5041A4703D0A41205441D7A370AD0CAC50411F85EBB13E2054410AD7A31005AC5041EC51B85E3B205441B81E853B01AC5041AE47E12A392054413D0AD7F3F7AB504148E17A14332054415C8FC2B5F3AB5041000000803020544185EB5188F0AB50418FC2F5B82D205441AE47E13AEEAB5041EC51B8FE2A2054410AD7A3F0EAAB504148E17AC42820544148E17AB4E6AB5041EC51B8BE25205441F6285CEFE4AB5041D7A370ED2520544152B81E75E2AB50410AD7A34025205441B81E859BDFAB5041713D0A6722205441713D0A17DEAB50411F85EBF11F20544185EB51D8D2AB5041000000F024205441EC51B81ED2AB5041295C8FF22420544166666686C5AB50415C8FC295242054417B14AE97C3AB5041C3F5289C242054418FC2F5E8C2AB5041AE47E13A29205441295C8FB2C1AB504185EB51E82F20544114AE47F1BFAB50413D0AD76332205441CDCCCCBCBFAB50415C8FC27533205441F6285CCFBEAB5041AE47E1CA362054415C8FC295BDAB5041666666363B20544133333313BDAB50410AD7A3E03C2054413D0AD743BCAB50417B14AEA73F20544152B81EE5BBAB5041AE47E10A4120544148E17A74BBAB50418FC2F5D842205441A4703D0ABBAB50419A99992945205441C3F528ECBAAB5041E17A140E48205441E17A14FEBAAB5041333333234A2054411F85EB21BBAB5041666666E64A205441C3F5288CBBAB50418FC2F5A84C2054418FC2F578BCAB5041D7A370ED4E20544148E17A54BDAB5041A4703DEA50205441000000E0CFAB5041CDCCCC5C49205441A4703D4AD6AB5041B81E855B4B2054413D0AD733E1AB5041AE47E15A492054418FC2F578E6AB5041B81E85EB5520544185EB5188EAAB5041A4703D9A5F20544152B81EA5EFAB5041AE47E1CA6B2054415C8FC2F5EFAB5041333333C373205441F6285CFFE7AB5041C3F5284C7520544185EB5158D6AB504148E17AB478205441295C8F12DDAB5041295C8FC27D2054415C8FC2B5E5AB5041D7A370DD802054418FC2F598F0AB504114AE471183205441295C8FE2F1AB50413D0AD793872054410AD7A3C0F1AB5041CDCCCC4C8A205441295C8F02F2AB5041F6285CDF8C20544133333343F3AB5041CDCCCC5C9020544114AE4751F3AB5041295C8F6293205441B81E85EBF3AB5041CDCCCC3C96205441A4703D8AF4AB5041CDCCCC5C98205441AE47E1CAF4AB5041A4703D9A9B20544133333373F5AB504148E17A649D2054411F85EB51F5AB504148E17A549F2054410AD7A370F6AB5041F6285CAFA5205441B81E854BF7AB504100000050A82054419A999999F7AB50413D0AD783AC205441A4703D4AF8AB504148E17AF4B02054418FC2F538F8AB504148E17AC4B220544185EB5158F8AB504148E17A84B420544152B81E15F8AB50410AD7A320BA205441333333D3F7AB5041295C8F92BE205441E17A142EF7AB504114AE4711C2205441D7A370CDF7AB504100000080C8205441060000007B14AEC7EFAB50418FC2F54834205441AE47E15AEFAB504114AE477135205441A4703D5AEEAB5041F6285C8F35205441F6285C4FEDAB5041A4703D4A352054413D0AD763EEAB50417B14AE17342054417B14AEC7EFAB50418FC2F54834205441
+</a>
+
+<b>
+0106000000010000000103000000010000003F000000B4E55A27E1AB5041DE16CC848520544111205694ECAB50416A87CA1F86205441F8625F97ECAB5041B9CCDF1F86205441C54310AEECAB5041CA166F938620544195A25D31F0AB5041AD5DC75D96205441F258C6C7F2AB50413C6005B9A120544162730590F3AB5041E1BB9F93A720544105BDEFEBF3AB504181F5EB12AA205441CB3DBABAF5AB5041FBA75EC9B72054412DD9A4BAF5AB5041B2D34DCAB720544104AC26C8F5AB5041DD74632FB82054410C04B98DF4AB5041F1538EEEC420544142095B76F4AB504198EBCBF3C52054410DA8BE0AF4AB5041B14E4952D02054415D9D5601F4AB50411D2B4506D22054415834C3F6F3AB50413BA674F0D3205441D8FB74D2F7AB5041F8350424D520544122DCCBABF7AB50418B0466C7CF205441FCB53794F7AB5041ADEE4082CC2054410F8053CBF7AB5041122D5793C8205441522DBC84F7AB50414E37B790C52054412A0E0354F7AB50414CE9BD43C120544189C1F504F8AB5041D0AC9837BB2054414A79FC4DF8AB50413AD85361B52054413DDD943BF8AB5041DEDE2796B0205441B4EFEA95F7AB5041FB5E1A51AC205441F673AA4CF7AB504167BEC95FA8205441CB4024B7F5AB50410181D292A1205441D4A9CD63F5AB504164EFF2499E205441F20C9CB5F4AB504129FB4D899A2054414DE68363F4AB504198F012D897205441A3200BC0F3AB50412785F66E952054411A9FDF46F3AB5041533CAD2691205441780720C6F2AB504195B649008F20544179936125F2AB50413FF962408D2054415B949BD4F1AB50410A9148148B205441295C8FE2F1AB50413D0AD793872054412406DB45F1AB50413005EB6E852054418FC2F598F0AB504114AE47118320544180B3DE7DE8AB504193447F6D812054415C8FC2B5E5AB5041D7A370DD80205441295C8F12DDAB5041295C8FC27D205441F6285C7FDBAB50417B14AEC77E205441C3F528FCCCAB5041AE47E18A7F205441A4703D5AC8AB5041CDCCCCEC7E20544152B81EE5C9AB50417B14AE2781205441D7A370FDCCAB504185EB51A886205441000000B0CFAB5041295C8F628C20544152B81E85D2AB5041333333B3932054413D0AD763D5AB50411F85EBF19C20544148E17AE4D7AB5041E17A14CEA62054413D0AD753DAAB504148E17AD4AF2054417AF1F116DCAB50416A6DA63CB42054418428E569E6AB5041CF82DB24B1205441177BD2D4E5AB5041232E9A09AE2054418F546FCAE5AB50419A845AD4AD205441AA45CC6EE5AB5041D82056E9AB205441744FA9B0E4AB504154AA87EEA7205441BB87D698E2AB5041AF7AEBDA9D205441B1AA04ADE1AB5041887FA45D9A2054413B093ED5DEAB50410431DA988F205441A87A2C01DCAB5041A509422085205441B4E55A27E1AB5041DE16CC8485205441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>526595 - 187804
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 8 </desc>
+<a>
+01060000000100000001030000000200000048000000E17A14BE26D15041B81E857BAC5154415C8FC22527D150419A999919AC5154417B14AE7727D15041EC51B8CEAB5154418FC2F5F827D15041C3F528ECAB515441EC51B86E28D15041713D0A87AC5154411F85EBB128D150415C8FC225AD515441F6285C3F29D15041666666E6AD515441333333132AD15041C3F528ECAD5154415C8FC2E52AD15041EC51B8BEAD5154410AD7A3F02BD15041A4703D5AAD51544152B81EB52CD1504166666696AD5154415C8FC2B52DD15041B81E855BAE5154418FC2F5282FD15041AE47E18AAF51544148E17AE430D1504100000080B05154411F85EB1132D15041A4703DAAB051544148E17AB433D1504166666626B15154417B14AEB735D15041666666D6B1515441A4703D5A37D150411F85EBC1B25154415C8FC20538D15041A4703DFAB3515441295C8F0239D15041AE47E13AB551544148E17A143AD15041EC51B8DEB5515441A4703DFA3BD150417B14AE77B65154410AD7A3803DD15041295C8F22B7515441D7A3700D40D15041CDCCCC2CAE515441D7A3701D46D15041F6285CBF8E5154411F85EB2148D15041F6285CCF8451544152B81E054FD150411F85EBB162515441295C8F5252D15041F6285C9F56515441B81E85CB56D15041D7A3700D45515441A4703D5A58D150415C8FC2B53F515441AE47E1CA58D15041CDCCCC7C3E51544152B81E455BD1504114AE4791385154418FC2F5185DD15041F6285CBF355154418FC2F5985ED15041EC51B8CE31515441333333735ED150415C8FC2A52F51544114AE47715DD15041CDCCCC6C2D5154410AD7A3403AD15041F6285CFF25515441EC51B8CE39D15041E17A14EE26515441295C8F6237D15041333333A3285154410AD7A37033D150419A9999692B515441CDCCCC1C1FD15041713D0A172751544185EB51181ED150418FC2F5B82B515441EC51B83E1DD15041333333A32F5154417B14AEE71AD1504148E17A543A515441A4703D4A1DD150419A9999993A5154413D0AD70319D150415C8FC2B541515441000000A017D150417B14AE1744515441AE47E19A13D1504148E17A844F5154413333332313D15041AE47E15A525154413D0AD75318D150413D0AD72353515441C3F5281C1DD150410000003053515441CDCCCC1C25D150413D0AD7E35C5154415C8FC25521D15041713D0A6764515441B81E859B24D1504148E17A3468515441F6285C4F2AD150418FC2F5B86D515441AE47E15A2AD15041295C8FE273515441713D0AF727D15041713D0A67755154411F85EBF11BD15041AE47E1EA76515441EC51B88E21D15041A4703D1A855154410000006016D15041713D0AF78C515441B81E856B19D15041000000E094515441333333631DD150418FC2F5289F5154411F85EB711ED15041EC51B8EEA45154411F85EBC11CD15041713D0A47A9515441A4703DEA1DD15041D7A370DDA95154419A99997920D150411F85EB61AB5154419A99999922D15041EC51B80EAC5154418FC2F5A823D15041A4703D5AAC515441EC51B8BE24D1504185EB51C8AC515441CDCCCC9C25D150413D0AD703AD515441CDCCCC3C26D1504114AE47E1AC515441E17A14BE26D15041B81E857BAC515441050000009A99999950D15041EC51B8EE3B5154419A9999D951D15041AE47E16A385154419A9999A954D15041AE47E15A395154415C8FC25553D15041EC51B8DE3C5154419A99999950D15041EC51B8EE3B515441
+</a>
+
+<b>
+01060000000100000001030000000200000081000000A4703D5A58D150415C8FC2B53F515441078CC1A358D15041859A80E93E515441DC8B22B758D1504189F648B13E515441CF0A31BD58D150418401D5A23E515441AE47E1CA58D15041CDCCCC7C3E51544152B81E455BD1504114AE4791385154418FC2F5185DD15041F6285CBF35515441281AF78B5ED150415A57DAF031515441EE4B9E985ED150410E80B7C931515441333333735ED150415C8FC2A52F5154412127290A5ED1504127510CBE2E515441479C25EA5DD1504177F140792E515441890909D25DD1504159E53C422E51544114AE47715DD15041CDCCCC6C2D515441BCB75E754FD15041FD9D31792A51544177269B374ED15041F9E222372A515441AC8FA8E34CD1504191235FEE295154413C103E154AD150419D95BC56295154412050CD2343D15041183393DF275154417105EFEF3FD1504160D1863227515441A5F6604A3CD150415E8C7B6D2651544146E80A403AD15041ACA19C0026515441EC51B8CE39D15041E17A14EE26515441295C8F6237D15041333333A3285154410AD7A37033D150419A9999692B5154415853596D33D15041FA71E6682B5154413EEBF9EB31D15041B8F2C8782C515441EDCC8AC52FD1504173DF22F82D515441E2EE43EC2AD15041DB649CCD315154417E3910BB29D15041CD78D9A33251544140F3205829D1504173BD69D1325154415968CA1627D15041C1EFF20E34515441D0E1504123D15041F931C5253651544123F2E3DA20D15041262CDA6F375154415330D5AA1FD150417E3E063B38515441A67F49061FD150413EEACEA838515441F4AC1E651FD1504125F0E0A538515441543AF7C515D15041DA5656A5505154419DE0D1C82AD150413995504E555154419FF0690D2BD1504104466AEC6351544130B3158A2AD15041DB1F22B76D515441796445AD2AD150412C231CF8735154418482D2E029D15041839FFECC755154413D86C17326D15041024B8BF6A95154416633666B26D1504112D53EF5A95154415AC5748626D150416C21AB99AC51544140EE49B926D1504175924A7FAC515441E17A14BE26D15041B81E857BAC515441B407F7C426D150413D7D0475AC51544151E912FB26D15041B0888639AC5154419CB8A62027D15041F5C76C1EAC5154415C8FC22527D150419A999919AC5154417B14AE7727D15041EC51B8CEAB515441E03F888927D150413A0DC9D2AB51544196E2F28D27D15041C2A499CFAB51544169D2B9FD27D15041069177ECAB51544115C7413A28D1504138280A42AC515441EC51B86E28D15041713D0A87AC5154411F85EBB128D150415C8FC225AD515441F6285C3F29D15041666666E6AD515441F94184012AD15041F6DEADEBAD515441B3D17B0C2AD15041F6DEADEBAD5154410706D42D2AD1504124DA69E6AD515441E607B0352AD1504167A6B7E4AD51544112A5FE572AD15041595050DDAD515441DDB0D2602AD15041609568DBAD5154416015B76E2AD15041321869D8AD515441E3CFA8802AD1504125BE89D4AD5154411E1774CA2AD15041CBE69CC4AD515441089DE3E22AD15041ECEC56BFAD515441BAC16DE32BD15041CD421656AD515441ADF093AB2CD150419BFE2E8EAD515441710E0F362DD1504196AA9BF2AD515441D1F8B0A32DD150419B4CA44DAE5154415C8FC2B52DD15041B81E855BAE5154418FC2F5282FD15041AE47E18AAF51544182F2EBBA30D150418F2F0869B0515441FF8AA7D530D150414C0B8977B0515441785DA0DD31D150416F88E9A2B05154411F85EB1132D15041A4703DAAB0515441F1B07B1B32D15041E8A713ADB05154413935256132D15041222186B8B05154413A6D348533D1504128606018B151544148E17AB433D1504166666626B1515441F85DA82334D15041A944614CB15154416BFB0DB135D15041F5C1CDCEB151544163BBF95537D150417E9021BEB251544104181A5737D15041F07B27C0B2515441A4703D5A37D150411F85EBC1B251544179292FF637D1504101CEE0DDB3515441C8E20A0038D15041D29A95EFB3515441FCCBC9E438D15041C26F1E15B5515441295C8F0239D15041AE47E13AB55154412A1431D639D15041F8A476B9B5515441334DDA153AD150414B2303DEB551544131F6F70F3BD150419526E92DB6515441A4703DFA3BD150417B14AE77B6515441814D69BA3CD15041DB59CBCBB65154415DC4F5D53CD150417CE099D7B6515441532D39DB3CD150416B0428DAB65154410AD7A3803DD15041295C8F22B7515441A5DAC8A53FD1504168440499AF515441D7A3700D40D15041CDCCCC2CAE515441892BA10E40D150412D24A226AE515441D79C073840D150415EB00450AD515441D7A3701D46D15041F6285CBF8E515441317E795346D15041285C34B58D5154417F06885A46D1504133F771908D515441FEC9677346D1504140A2EC178D5154411F85EB2148D15041F6285CCF845154413E066D5A48D1504149F879B783515441D766062D4AD1504198AB38987A515441D4004E334BD15041EC18369D75515441DAE606994BD1504148F15CA57351544146AA1AD34BD15041214BB285725154416F3DB92F4CD1504162A4EFBA7051544133A9FC334CD1504142A4D1A5705154416F17540F4DD15041F2F185626C515441185183C74DD15041A4C920D0685154411B6B39CB4ED150413D09B0D06351544152B81E054FD150411F85EBB1625154414982726D51D15041A568E5E459515441188B8F9251D150419EFC885C59515441AF79158C52D15041E35361BD55515441B81E85CB56D15041D7A3700D455154412D1336E856D15041C92506AB44515441F63ED7F956D15041D1DB0A66445154412D45EE9457D1504173CA905A42515441A4703D5A58D150415C8FC2B53F515441050000007DCC68374FD15041332A19053D515441F650B02950D150418511F1F83751544115EC9A8655D15041E898BD8C3951544154E815E554D1504183AF60F73D5154417DCC68374FD15041332A19053D515441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>526595 - 283182
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+01060000000100000001030000000200000048000000E17A14BE26D15041B81E857BAC5154415C8FC22527D150419A999919AC5154417B14AE7727D15041EC51B8CEAB5154418FC2F5F827D15041C3F528ECAB515441EC51B86E28D15041713D0A87AC5154411F85EBB128D150415C8FC225AD515441F6285C3F29D15041666666E6AD515441333333132AD15041C3F528ECAD5154415C8FC2E52AD15041EC51B8BEAD5154410AD7A3F02BD15041A4703D5AAD51544152B81EB52CD1504166666696AD5154415C8FC2B52DD15041B81E855BAE5154418FC2F5282FD15041AE47E18AAF51544148E17AE430D1504100000080B05154411F85EB1132D15041A4703DAAB051544148E17AB433D1504166666626B15154417B14AEB735D15041666666D6B1515441A4703D5A37D150411F85EBC1B25154415C8FC20538D15041A4703DFAB3515441295C8F0239D15041AE47E13AB551544148E17A143AD15041EC51B8DEB5515441A4703DFA3BD150417B14AE77B65154410AD7A3803DD15041295C8F22B7515441D7A3700D40D15041CDCCCC2CAE515441D7A3701D46D15041F6285CBF8E5154411F85EB2148D15041F6285CCF8451544152B81E054FD150411F85EBB162515441295C8F5252D15041F6285C9F56515441B81E85CB56D15041D7A3700D45515441A4703D5A58D150415C8FC2B53F515441AE47E1CA58D15041CDCCCC7C3E51544152B81E455BD1504114AE4791385154418FC2F5185DD15041F6285CBF355154418FC2F5985ED15041EC51B8CE31515441333333735ED150415C8FC2A52F51544114AE47715DD15041CDCCCC6C2D5154410AD7A3403AD15041F6285CFF25515441EC51B8CE39D15041E17A14EE26515441295C8F6237D15041333333A3285154410AD7A37033D150419A9999692B515441CDCCCC1C1FD15041713D0A172751544185EB51181ED150418FC2F5B82B515441EC51B83E1DD15041333333A32F5154417B14AEE71AD1504148E17A543A515441A4703D4A1DD150419A9999993A5154413D0AD70319D150415C8FC2B541515441000000A017D150417B14AE1744515441AE47E19A13D1504148E17A844F5154413333332313D15041AE47E15A525154413D0AD75318D150413D0AD72353515441C3F5281C1DD150410000003053515441CDCCCC1C25D150413D0AD7E35C5154415C8FC25521D15041713D0A6764515441B81E859B24D1504148E17A3468515441F6285C4F2AD150418FC2F5B86D515441AE47E15A2AD15041295C8FE273515441713D0AF727D15041713D0A67755154411F85EBF11BD15041AE47E1EA76515441EC51B88E21D15041A4703D1A855154410000006016D15041713D0AF78C515441B81E856B19D15041000000E094515441333333631DD150418FC2F5289F5154411F85EB711ED15041EC51B8EEA45154411F85EBC11CD15041713D0A47A9515441A4703DEA1DD15041D7A370DDA95154419A99997920D150411F85EB61AB5154419A99999922D15041EC51B80EAC5154418FC2F5A823D15041A4703D5AAC515441EC51B8BE24D1504185EB51C8AC515441CDCCCC9C25D150413D0AD703AD515441CDCCCC3C26D1504114AE47E1AC515441E17A14BE26D15041B81E857BAC515441050000009A99999950D15041EC51B8EE3B5154419A9999D951D15041AE47E16A385154419A9999A954D15041AE47E15A395154415C8FC25553D15041EC51B8DE3C5154419A99999950D15041EC51B8EE3B515441
+</a>
+
+<b>
+0106000000010000000103000000020000007F000000A4703D5A58D150415C8FC2B53F515441078CC1A358D15041859A80E93E515441DC8B22B758D1504189F648B13E515441CF0A31BD58D150418401D5A23E515441AE47E1CA58D15041CDCCCC7C3E51544152B81E455BD1504114AE4791385154418FC2F5185DD15041F6285CBF35515441281AF78B5ED150415A57DAF031515441EE4B9E985ED150410680B7C931515441333333735ED150415C8FC2A52F5154411F27290A5ED1504125510CBE2E515441479C25EA5DD1504177F140792E515441890909D25DD1504159E53C422E51544114AE47715DD15041CDCCCC6C2D515441BCB75E754FD15041FD9D31792A51544177269B374ED15041F9E222372A515441AC8FA8E34CD1504191235FEE2951544138103E154AD150419A95BC56295154412150CD2343D15041143393DF275154417105EFEF3FD1504160D1863227515441A5F6604A3CD150415E8C7B6D2651544146E80A403AD15041ACA19C0026515441EC51B8CE39D15041E17A14EE26515441295C8F6237D15041333333A3285154410AD7A37033D150419A9999692B5154415753596D33D15041FB71E6682B5154413EEBF9EB31D15041B8F2C8782C515441EDCC8AC52FD1504173DF22F82D515441E2EE43EC2AD15041DB649CCD315154417E3910BB29D15041CD78D9A33251544140F3205829D1504173BD69D1325154415968CA1627D15041C1EFF20E34515441D0E1504123D15041F931C5253651544123F2E3DA20D15041262CDA6F375154415330D5AA1FD150417E3E063B38515441A67F49061FD150413EEACEA838515441F4AC1E651FD1504125F0E0A538515441543AF7C515D15041DA5656A5505154419DE0D1C82AD150413995504E555154419FF0690D2BD1504104466AEC6351544130B3158A2AD15041DB1F22B76D515441796445AD2AD150412C231CF8735154418482D2E029D15041839FFECC755154413D86C17326D15041024B8BF6A95154416633666B26D1504112D53EF5A95154415AC5748626D150416C21AB99AC51544140EE49B926D1504175924A7FAC515441E17A14BE26D15041B81E857BAC515441AC07F7C426D150414E7D0475AC51544151E912FB26D15041B0888639AC515441A0B8A62027D15041F7C76C1EAC5154415C8FC22527D150419A999919AC5154417B14AE7727D15041EC51B8CEAB515441E03F888927D150413A0DC9D2AB51544196E2F28D27D15041C2A499CFAB51544169D2B9FD27D15041069177ECAB51544115C7413A28D1504138280A42AC515441EC51B86E28D15041713D0A87AC5154411F85EBB128D150415C8FC225AD515441F6285C3F29D15041666666E6AD515441F94184012AD15041F6DEADEBAD515441B3D17B0C2AD15041F6DEADEBAD5154410706D42D2AD1504124DA69E6AD515441A49D87432AD15041CCECBAE1AD515441DEB0D2602AD15041649568DBAD5154416015B76E2AD15041321869D8AD515441CE4091932AD150412E2675D0AD5154410B9DE3E22AD15041EDEC56BFAD515441BAC16DE32BD15041CD421656AD515441ADF093AB2CD150419BFE2E8EAD515441710E0F362DD1504196AA9BF2AD515441D1F8B0A32DD150419B4CA44DAE5154415C8FC2B52DD15041B81E855BAE5154418FC2F5282FD15041AE47E18AAF51544182F2EBBA30D150418F2F0869B0515441FF8AA7D530D150414C0B8977B0515441785DA0DD31D150416F88E9A2B05154411F85EB1132D15041A4703DAAB0515441F1B07B1B32D15041E8A713ADB05154413935256132D15041222186B8B05154413A6D348533D1504128606018B151544148E17AB433D1504166666626B1515441F85DA82334D15041A944614CB15154416BFB0DB135D15041F5C1CDCEB151544163BBF95537D150417E9021BEB251544104181A5737D15041F07B27C0B2515441A4703D5A37D150411F85EBC1B251544179292FF637D1504101CEE0DDB3515441C8E20A0038D15041D29A95EFB3515441FCCBC9E438D15041C26F1E15B5515441295C8F0239D15041AE47E13AB55154412A1431D639D15041F8A476B9B5515441334DDA153AD150414B2303DEB551544131F6F70F3BD150419526E92DB6515441A4703DFA3BD150417B14AE77B6515441814D69BA3CD15041DB59CBCBB65154415DC4F5D53CD150417CE099D7B6515441532D39DB3CD150416B0428DAB65154410AD7A3803DD15041295C8F22B7515441A0D9C8A53FD1504107480499AF515441882BA10E40D150413024A226AE515441D89C073840D150415CB00450AD515441C8C5AE7641D15041A8C925DCA6515441D7A3701D46D15041F6285CBF8E515441317E795346D15041285C34B58D5154417F06885A46D1504133F771908D515441FEC9677346D1504140A2EC178D5154411F85EB2148D15041F6285CCF845154413E066D5A48D1504149F879B783515441D766062D4AD1504198AB38987A515441D4004E334BD15041EC18369D75515441DAE606994BD1504148F15CA57351544146AA1AD34BD150411F4BB28572515441AE9E75224CD1504113BFA2FC7051544133A9FC334CD1504142A4D1A5705154416F17540F4DD15041F2F185626C515441185183C74DD15041A4C920D0685154411B6B39CB4ED150413D09B0D06351544152B81E054FD150411F85EBB1625154414982726D51D15041A568E5E459515441188B8F9251D150419EFC885C59515441B479158C52D15041E35361BD55515441B81E85CB56D15041D7A3700D455154412D1336E856D15041C92506AB44515441F63ED7F956D15041D1DB0A66445154412D45EE9457D1504173CA905A42515441A4703D5A58D150415C8FC2B53F515441050000007DCC68374FD15041332A19053D515441F650B02950D150418511F1F83751544115EC9A8655D15041E898BD8C3951544154E815E554D1504183AF60F73D5154417DCC68374FD15041332A19053D515441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>527413 - 187174
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+0106000000010000000103000000020000003D000000AE47E18AF7BC5041F6285CDF57375441AE47E18AEABC50413D0AD76358375441C3F5282CD6BC50418FC2F5285937544148E17AB4D1BC5041713D0A6759375441B81E85EBCFBC5041AE47E19A593754415C8FC2B5C3BC504148E17A545A3754413D0AD743C3BC5041295C8F025D3754415C8FC255C1BC50418FC2F5C85D375441D7A3708DC1BC5041F6285CBF6037544166666696C1BC50410AD7A35064375441F6285C8FC1BC504152B81EE56737544148E17A64C1BC504185EB51386A3754417B14AE67C1BC5041713D0A976B375441C3F528ECC0BC5041C3F528EC6E375441AE47E1BABFBC50418FC2F53874375441D7A370CDBFBC5041713D0A1775375441B81E852BC0BC5041000000C07637544114AE4751C0BC50413D0AD793783754417B14AE87C0BC5041333333C379375441AE47E19AC0BC5041295C8FF27A375441EC51B8AEC0BC50411F85EBC17C3754417B14AEC7C0BC50418FC2F5287E37544100000000C1BC5041A4703D2A813754418FC2F588C3BC5041000000E08D3754410AD7A320C5BC5041295C8FA290375441AE47E15AC6BC50413D0AD7B3923754411F85EB41CBBC504152B81E859B37544152B81ED5D1BC504114AE47E1A6375441A4703D3AD3BC50419A999939A8375441C3F528CCD3BC5041295C8FD2A837544185EB5178D5BC5041B81E85ABA93754410AD7A360DCBC504133333343AA3754413D0AD7C3DDBC504185EB5168AA375441B81E852BDFBC5041333333B3AA3754410AD7A3D0E4BC50413D0AD703AB375441F6285CCFE5BC5041D7A3701DAB3754419A9999B9EBBC504114AE4771AF3754419A999999F3BC50411F85EBA1B4375441B81E851BFCBC504114AE4771AE375441333333E30ABD50418FC2F508AD375441295C8F0217BD5041F6285C5FAB3754415C8FC2E51EBD504185EB5138AA375441E17A149E14BD5041333333839837544114AE47413CBD50415C8FC2F56937544114AE478137BD5041F6285CAF6A3754411F85EB0137BD5041E17A14BE6A375441E17A14EE29BD504152B81EF56D375441713D0AB727BD5041000000806E3754410AD7A3D024BD50411F85EB716F37544114AE47811EBD50418FC2F5E87037544152B81E251FBD504114AE474174375441000000801BBD5041B81E859B75375441295C8F421ABD5041CDCCCC4C723754419A99993911BD50410AD7A3D075375441D7A3707D0BBD50419A9999C9773754417B14AE7707BD5041666666D678375441F6285C3FFDBC504148E17A347B375441EC51B80EFDBC504114AE47C17A3754417B14AE07FDBC5041A4703D3A7A37544152B81E15FABC5041666666C667375441AE47E18AF7BC5041F6285CDF5737544105000000CDCCCCCCD6BC5041AE47E15A91375441C3F528DCD7BC50411F85EBA190375441CDCCCCDCD8BC504185EB51F891375441295C8FA2D7BC5041000000C092375441CDCCCCCCD6BC5041AE47E15A91375441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000A4B6CB54CABC50412F8BA2DA9937544164632E6BC6BC5041304CCBDB923754410F90FA26C5BC504113D9EDB39337544185E61DDDC2BC504166A0558693375441EF4BA79DC0BC5041093C5FEC92375441F6285C5FBFBC504114AE472193375441BA4A4872BFBC50419410867A95375441002BF4F5BFBC50417ECCE24996375441CEF49CF4BFBC504114B2338696375441BA95311BC6BC5041CEDAB3209D375441559D8D1BCEBC504192393CB4A537544144E487DCCEBC504124AFA684A637544113FC2839CFBC5041893BE007A7375441EACE7328D0BC5041CBDC44EAA537544159590958CFBC50413967DA19A537544118FB568FCEBC504100C4D1E3A437544118FB568FCEBC50417A083FFCA3375441763DC9FBCEBC50413B704CDAA2375441A5B44523CEBC50413FEC6CA3A03754418DC6C99DCDBC50410F1075989F375441D8654002CCBC504134106CD19C3754414D2596A2CBBC50414471FF2C9C37544190934B92CBBC50416D23FD0F9C3754411F85EB41CBBC504152B81E859B375441A4B6CB54CABC50412F8BA2DA99375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>527413 - 393249
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+0106000000010000000103000000020000003D000000AE47E18AF7BC5041F6285CDF57375441AE47E18AEABC50413D0AD76358375441C3F5282CD6BC50418FC2F5285937544148E17AB4D1BC5041713D0A6759375441B81E85EBCFBC5041AE47E19A593754415C8FC2B5C3BC504148E17A545A3754413D0AD743C3BC5041295C8F025D3754415C8FC255C1BC50418FC2F5C85D375441D7A3708DC1BC5041F6285CBF6037544166666696C1BC50410AD7A35064375441F6285C8FC1BC504152B81EE56737544148E17A64C1BC504185EB51386A3754417B14AE67C1BC5041713D0A976B375441C3F528ECC0BC5041C3F528EC6E375441AE47E1BABFBC50418FC2F53874375441D7A370CDBFBC5041713D0A1775375441B81E852BC0BC5041000000C07637544114AE4751C0BC50413D0AD793783754417B14AE87C0BC5041333333C379375441AE47E19AC0BC5041295C8FF27A375441EC51B8AEC0BC50411F85EBC17C3754417B14AEC7C0BC50418FC2F5287E37544100000000C1BC5041A4703D2A813754418FC2F588C3BC5041000000E08D3754410AD7A320C5BC5041295C8FA290375441AE47E15AC6BC50413D0AD7B3923754411F85EB41CBBC504152B81E859B37544152B81ED5D1BC504114AE47E1A6375441A4703D3AD3BC50419A999939A8375441C3F528CCD3BC5041295C8FD2A837544185EB5178D5BC5041B81E85ABA93754410AD7A360DCBC504133333343AA3754413D0AD7C3DDBC504185EB5168AA375441B81E852BDFBC5041333333B3AA3754410AD7A3D0E4BC50413D0AD703AB375441F6285CCFE5BC5041D7A3701DAB3754419A9999B9EBBC504114AE4771AF3754419A999999F3BC50411F85EBA1B4375441B81E851BFCBC504114AE4771AE375441333333E30ABD50418FC2F508AD375441295C8F0217BD5041F6285C5FAB3754415C8FC2E51EBD504185EB5138AA375441E17A149E14BD5041333333839837544114AE47413CBD50415C8FC2F56937544114AE478137BD5041F6285CAF6A3754411F85EB0137BD5041E17A14BE6A375441E17A14EE29BD504152B81EF56D375441713D0AB727BD5041000000806E3754410AD7A3D024BD50411F85EB716F37544114AE47811EBD50418FC2F5E87037544152B81E251FBD504114AE474174375441000000801BBD5041B81E859B75375441295C8F421ABD5041CDCCCC4C723754419A99993911BD50410AD7A3D075375441D7A3707D0BBD50419A9999C9773754417B14AE7707BD5041666666D678375441F6285C3FFDBC504148E17A347B375441EC51B80EFDBC504114AE47C17A3754417B14AE07FDBC5041A4703D3A7A37544152B81E15FABC5041666666C667375441AE47E18AF7BC5041F6285CDF5737544105000000CDCCCCCCD6BC5041AE47E15A91375441C3F528DCD7BC50411F85EBA190375441CDCCCCDCD8BC504185EB51F891375441295C8FA2D7BC5041000000C092375441CDCCCCCCD6BC5041AE47E15A91375441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000A4B6CB54CABC50412F8BA2DA9937544164632E6BC6BC5041304CCBDB923754410F90FA26C5BC504113D9EDB39337544185E61DDDC2BC504166A0558693375441EF4BA79DC0BC5041093C5FEC92375441F6285C5FBFBC504114AE472193375441BA4A4872BFBC50419410867A95375441002BF4F5BFBC50417ECCE24996375441CEF49CF4BFBC504114B2338696375441BA95311BC6BC5041CEDAB3209D375441559D8D1BCEBC504192393CB4A537544144E487DCCEBC504124AFA684A637544113FC2839CFBC5041893BE007A7375441EACE7328D0BC5041CBDC44EAA537544159590958CFBC50413967DA19A537544118FB568FCEBC504100C4D1E3A437544118FB568FCEBC50417A083FFCA3375441763DC9FBCEBC50413B704CDAA2375441A5B44523CEBC50413FEC6CA3A03754418DC6C99DCDBC50410F1075989F375441D8654002CCBC504134106CD19C3754414D2596A2CBBC50414471FF2C9C37544190934B92CBBC50416D23FD0F9C3754411F85EB41CBBC504152B81E859B375441A4B6CB54CABC50412F8BA2DA99375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>528429 - 3143523
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+010600000001000000010300000001000000160000005C8FC2150D115141A4703DFA73895441295C8F220711514152B81E657F895441666666B60911514148E17A447D895441EC51B8CE0E1151419A99992974895441713D0A671311514152B81E256B8954419A9999D9171151415C8FC265638954413D0AD7F319115141EC51B8BE5E895441EC51B81E1C1151413D0AD7B3598954415C8FC2051F11514185EB51E85389544185EB517822115141295C8F624F895441295C8F52251151415C8FC2C54A895441E17A14AE29115141CDCCCC5C4389544152B81E552D1151415C8FC2953B89544185EB51782A1151418FC2F5983B8954415C8FC20528115141CDCCCCAC41895441713D0A97241151413D0AD71347895441D7A3707D20115141C3F5281C4D895441AE47E16A1D115141CDCCCC5C5289544114AE47411A115141F6285C0F59895441713D0AB7161151411F85EB3161895441713D0AC710115141AE47E1FA6C8954415C8FC2150D115141A4703DFA73895441
+</a>
+
+<b>
+01060000000100000001030000000100000018000000CFA860442D1151410A2469B93B89544185EB51782A1151418FC2F5983B8954415C8FC20528115141CDCCCCAC41895441713D0A97241151413D0AD71347895441D7A3707D20115141C3F5281C4D895441AE47E16A1D115141CDCCCC5C5289544114AE47411A115141F6285C0F59895441713D0AB7161151411F85EB3161895441713D0AC710115141AE47E1FA6C8954415C8FC2150D115141A4703DFA73895441295C8F220711514152B81E657F895441666666B60911514148E17A447D895441EC51B8CE0E1151419A999929748954412182B17112115141034B9A066D895441A50BC5391411514142EE07B6698954419A9999D9171151415C8FC265638954413D0AD7F319115141EC51B8BE5E895441EC51B81E1C1151413D0AD7B3598954412AAFDB351E1151416D4D688755895441848F8E7020115141604F650C528954416D2D53A62411514131BC43DC4B895441E3B685552711514103E30E5A478954418F2CCD352A115141E8B7CC3B42895441CFA860442D1151410A2469B93B895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>528429 - 3525838
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+010600000001000000010300000001000000160000005C8FC2150D115141A4703DFA73895441295C8F220711514152B81E657F895441666666B60911514148E17A447D895441EC51B8CE0E1151419A99992974895441713D0A671311514152B81E256B8954419A9999D9171151415C8FC265638954413D0AD7F319115141EC51B8BE5E895441EC51B81E1C1151413D0AD7B3598954415C8FC2051F11514185EB51E85389544185EB517822115141295C8F624F895441295C8F52251151415C8FC2C54A895441E17A14AE29115141CDCCCC5C4389544152B81E552D1151415C8FC2953B89544185EB51782A1151418FC2F5983B8954415C8FC20528115141CDCCCCAC41895441713D0A97241151413D0AD71347895441D7A3707D20115141C3F5281C4D895441AE47E16A1D115141CDCCCC5C5289544114AE47411A115141F6285C0F59895441713D0AB7161151411F85EB3161895441713D0AC710115141AE47E1FA6C8954415C8FC2150D115141A4703DFA73895441
+</a>
+
+<b>
+01060000000100000001030000000100000018000000CFA860442D1151410A2469B93B89544185EB51782A1151418FC2F5983B8954415C8FC20528115141CDCCCCAC41895441713D0A97241151413D0AD71347895441D7A3707D20115141C3F5281C4D895441AE47E16A1D115141CDCCCC5C5289544114AE47411A115141F6285C0F59895441713D0AB7161151411F85EB3161895441713D0AC710115141AE47E1FA6C8954415C8FC2150D115141A4703DFA73895441295C8F220711514152B81E657F895441666666B60911514148E17A447D895441EC51B8CE0E1151419A999929748954412182B17112115141034B9A066D895441A50BC5391411514142EE07B6698954419A9999D9171151415C8FC265638954413D0AD7F319115141EC51B8BE5E895441EC51B81E1C1151413D0AD7B3598954412AAFDB351E1151416D4D688755895441848F8E7020115141604F650C528954416D2D53A62411514131BC43DC4B895441E3B685552711514103E30E5A478954418F2CCD352A115141E8B7CC3B42895441CFA860442D1151410A2469B93B895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>529783 - 990564
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000001700000066666636281651418FC2F5E891695441F6285CCF3E1651419A9999A99569544152B81ED56C165141CDCCCC4C9D69544185EB5118A9165141D7A3704DA769544100000050A916514148E17AF4A0695441AE47E1AAA9165141713D0A77976954415C8FC2A5A91651415C8FC2358E6954419A9999F9A8165141F6285C1F84695441F6285CBFA916514114AE47F17B695441D7A3702DAA165141666666E6736954418FC2F5F8AA1651417B14AEB76A6954415C8FC2F5AA1651413333335361695441666666B6AA1651419A999959616954415C8FC255AA1651410AD7A3905C6954419A9999797E1651416666665652695441D7A3709D52165141B81E851B486954417B14AE9731165141EC51B8DE426954411F85EB9110165141295C8FA23D695441666666F604165141AE47E1AA6B695441CDCCCCFC05165141AE47E1BA6C695441333333C3FD155141D7A370DD8A695441713D0A77171651411F85EB218F69544166666636281651418FC2F5E891695441
+</a>
+
+<b>
+010600000001000000010300000001000000390000003F355E2AAA1651413108AC0461695441FA7E6A54A8165141BE9F1AC75F695441CFF7532BA6165141EC51B87E5E6954416891ED24A416514123DBF9765D695441E3A59BACA1165141E17A14AE5C695441B4C8765697165141E17A141E5A6954415A643BA78B165141560E2D7257695441508D97E683165141A8C64BAF556954411058391C691651412DB29D2F4F695441B07268C15D1651414260E5504C6954415A643B7755165141FED478214A6954411F85EB994A1651413108AC4447695441AAF1D24D4616514185EB51504669544181954313411651416DE7FB5145695441BA490CDA311651413BDF4F0D43695441295C8FBA1E16514152B81E5D40695441D6BB429E131651415C0773DB3E695441E030E8CC111651415C0773DB3E695441607A26D9101651412EEC526A40695441B13BC18C0F165141BD5E4443456954415EA01F0A0D165141F30779214F6954415C339C220B165141D7150C7D56695441A1120EC0091651417EB9D2695D69544139B31A1107165141D508828A676954419F3807F105165141FC88039C6B695441EC51B83606165141C976BEEF6C6954411283C03A03165141986E12BB776954417B14AEBF00165141105839F480695441DF4F8D87FE15514114AE47A98769544108AC1C1AFE155141CFF753C38A6954412DB29D870C165141A69BC4188D695441E17A14C61D165141894160758F6954410AD7A39021165141621058498F695441C3F5283C24165141713D0ACF8D6954413108ACBC261651414A0C02038E6954410000006029165141EE7C3F959069544104560EBD2A16514177BE9F52916954419A9999792D1651416210580992695441E5D022EB3F1651413BDF4F6D95695441A8C64B3F4E165141AAF1D2ED97695441AA27EDE565165141575A31199C69544116E0058E6C165141FB5700419D695441F2746A4779165141D713AB5D9F6954418EC433DC8016514146DFCD9FA069544151645A70851651412F3E5C62A16954411B47F9CC8E165141DF1628F0A269544113EC0EE297165141AE431472A4695441EA9C00DBA416514178F04B99A66954419ACFA88BA8165141F31E261BA76954419EEFA77EA8165141AE47E1AAA269544183C0CA91A81651419318044698695441DD2406B1A8165141B81E85F38F6954415EBA49C4A816514139B4C87E826954413BDF4F05A91651419EEFA73E76695441BA490C8AA9165141986E122B6A695441B81E85EBA91651416891ED6C636954413F355E2AAA1651413108AC0461695441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>529783 - 3586734
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000001700000066666636281651418FC2F5E891695441F6285CCF3E1651419A9999A99569544152B81ED56C165141CDCCCC4C9D69544185EB5118A9165141D7A3704DA769544100000050A916514148E17AF4A0695441AE47E1AAA9165141713D0A77976954415C8FC2A5A91651415C8FC2358E6954419A9999F9A8165141F6285C1F84695441F6285CBFA916514114AE47F17B695441D7A3702DAA165141666666E6736954418FC2F5F8AA1651417B14AEB76A6954415C8FC2F5AA1651413333335361695441666666B6AA1651419A999959616954415C8FC255AA1651410AD7A3905C6954419A9999797E1651416666665652695441D7A3709D52165141B81E851B486954417B14AE9731165141EC51B8DE426954411F85EB9110165141295C8FA23D695441666666F604165141AE47E1AA6B695441CDCCCCFC05165141AE47E1BA6C695441333333C3FD155141D7A370DD8A695441713D0A77171651411F85EB218F69544166666636281651418FC2F5E891695441
+</a>
+
+<b>
+010600000001000000010300000001000000390000003F355E2AAA1651413108AC0461695441FA7E6A54A8165141BE9F1AC75F695441CFF7532BA6165141EC51B87E5E6954416891ED24A416514123DBF9765D695441E3A59BACA1165141E17A14AE5C695441B4C8765697165141E17A141E5A6954415A643BA78B165141560E2D7257695441508D97E683165141A8C64BAF556954411058391C691651412DB29D2F4F695441B07268C15D1651414260E5504C6954415A643B7755165141FED478214A6954411F85EB994A1651413108AC4447695441AAF1D24D4616514185EB51504669544181954313411651416DE7FB5145695441BA490CDA311651413BDF4F0D43695441295C8FBA1E16514152B81E5D40695441D6BB429E131651415C0773DB3E695441E030E8CC111651415C0773DB3E695441607A26D9101651412EEC526A40695441B13BC18C0F165141BD5E4443456954415EA01F0A0D165141F30779214F6954415C339C220B165141D7150C7D56695441A1120EC0091651417EB9D2695D69544139B31A1107165141D508828A676954419F3807F105165141FC88039C6B695441EC51B83606165141C976BEEF6C6954411283C03A03165141986E12BB776954417B14AEBF00165141105839F480695441DF4F8D87FE15514114AE47A98769544108AC1C1AFE155141CFF753C38A6954412DB29D870C165141A69BC4188D695441E17A14C61D165141894160758F6954410AD7A39021165141621058498F695441C3F5283C24165141713D0ACF8D6954413108ACBC261651414A0C02038E6954410000006029165141EE7C3F959069544104560EBD2A16514177BE9F52916954419A9999792D1651416210580992695441E5D022EB3F1651413BDF4F6D95695441A8C64B3F4E165141AAF1D2ED97695441AA27EDE565165141575A31199C69544116E0058E6C165141FB5700419D695441F2746A4779165141D713AB5D9F6954418EC433DC8016514146DFCD9FA069544151645A70851651412F3E5C62A16954411B47F9CC8E165141DF1628F0A269544113EC0EE297165141AE431472A4695441EA9C00DBA416514178F04B99A66954419ACFA88BA8165141F31E261BA76954419EEFA77EA8165141AE47E1AAA269544183C0CA91A81651419318044698695441DD2406B1A8165141B81E85F38F6954415EBA49C4A816514139B4C87E826954413BDF4F05A91651419EEFA73E76695441BA490C8AA9165141986E122B6A695441B81E85EBA91651416891ED6C636954413F355E2AAA1651413108AC0461695441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>532559 - 2936634
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -22 </desc>
+<a>
+01060000000100000001030000000100000071000000295C8F12FD2351415C8FC295F0425441295C8FA201245141295C8F82EC4254415C8FC2B50524514166666606E8425441AE47E1BA0A245141333333C3E0425441295C8FA20D24514133333313DC42544148E17A141024514100000070D742544185EB512811245141E17A140ED642544133333313122451417B14AEF7D44254418FC2F5D813245141D7A370FDD3425441295C8F8215245141AE47E1CAD34254410AD7A3F017245141666666C6D34254415C8FC2C52724514185EB5188D642544152B81E152E2451419A999969D74254413D0AD7C33B245141333333B3D94254411F85EB613C245141295C8F72D9425441666666A63D2451411F85EB11D842544185EB51483C245141A4703D6AD54254415C8FC2C53B24514148E17A04CF4254415C8FC265382451418FC2F588BD4254419A9999F93A245141CDCCCC8CB94254411F85EBB13D2451410AD7A380B94254411F85EB214E2451411F85EB81C7425441D7A370BD5E24514148E17AF4BA4254411F85EB416524514148E17A74B94254415C8FC2456D2451418FC2F578B5425441C3F5289C6F2451413D0AD7A3A0425441E17A14BE70245141000000D09C425441C3F528DC75245141333333739A42544185EB51787A2451418FC2F5A8994254411F85EB4176245141C3F5282C96425441D7A370BD73245141CDCCCCDC934254419A9999A9722451418FC2F56892425441D7A3700D722451418FC2F5B8904254419A9999B971245141CDCCCCCC8E4254419A99992971245141CDCCCCBC89425441D7A3708D702451418FC2F588874254419A9999D96F2451418FC2F50886425441B81E856B6E245141CDCCCC3C834254415C8FC2756D24514148E17A04814254411F85EB716B2451417B14AE377A4254415C8FC2756A2451418FC2F5E875425441A4703D1A6A245141C3F528DC72425441A4703D4A6A2451413D0AD733714254411F85EB116B2451413D0AD7F36F425441EC51B88E722451417B14AEB76B425441A4703D5A78245141C3F5285C68425441713D0AB77A245141B81E851B66425441C3F528FC7C2451418FC2F53864425441AE47E10A7E245141A4703DCA63425441E17A14DE7F2451411F85EB7163425441C3F5286C83245141295C8F9263425441666666C6852451417B14AEC762425441A4703D1A88245141C3F5282C624254411F85EB418B2451413D0AD713624254411F85EBE18E245141A4703D6A6042544148E17AF493245141AE47E17A5F4254418FC2F5D8932451410AD7A3D05E425441295C8F4292245141CDCCCC7C51425441D7A3708D902451419A999969454254410AD7A350902451417B14AEF741425441333333738E2451419A999919424254410AD7A3908B2451413D0AD7D34242544185EB51F8842451415C8FC2F545425441D7A370FD812451419A99998947425441F6285C2F81245141B81E855B48425441D7A3703D80245141295C8F5249425441E17A146E79245141D7A3703D514254417B14AEC776245141A4703D0A55425441F6285C1F74245141AE47E1DA584254415C8FC2E567245141AE47E19A6B425441295C8F5261245141C3F5289C7242544152B81E955B245141713D0A277642544114AE47A156245141000000F07E4254410AD7A35054245141EC51B8BE85425441AE47E18A512451419A99991988425441C3F5286C45245141D7A370BD8A4254413D0AD7B33F24514148E17AE48E425441A4703D9A3724514114AE475197425441333333A331245141713D0AA79942544185EB51482C2451410AD7A3409D4254413D0AD7F32924514152B81E05A24254415C8FC2A527245141E17A14CEA7425441F6285C1F25245141A4703DCAAB42544148E17A0422245141D7A3702DAE425441A4703DEA1A2451413D0AD753B2425441A4703DBA152451413D0AD753B7425441713D0A17122451419A999989BA425441A4703D6A0F2451415C8FC2D5BF425441CDCCCC2C0F24514148E17A74C242544114AE47F10F2451413D0AD763C44254410AD7A31011245141AE47E13AC5425441D7A370ED2424514185EB5198B2425441B81E850B2424514148E17A44B54254417B14AE3722245141295C8F82C2425441333333931B2451413D0AD703C44254413333337313245141333333D3C6425441A4703D3A11245141D7A3703DC94254418FC2F5A80C245141AE47E1FAD242544185EB51E80424514152B81E15DC42544152B81EE5FF235141C3F5286CDF425441E17A142EF9235141A4703D7AE742544166666606F8235141295C8FA2E7425441C3F5282CF7235141B81E85CBE7425441B81E853BF52351413D0AD783E942544152B81E55EE2351419A9999F9F04254410AD7A3F0ED235141666666A6F2425441E17A149EEC23514114AE47C1F442544152B81E85EA235141CDCCCCACF6425441D7A370CDE923514185EB5118F742544114AE4781EC235141E17A149E03435441EC51B8CEF1235141295C8F42FD425441A4703D2AFA23514185EB5128F3425441295C8F12FD2351415C8FC295F0425441
+</a>
+
+<b>
+0106000000010000000103000000010000002900000019C29C548724514168DE192CA44254410010C878862451414E2C4550A3425441B3F949E583245141EE0A0F63A44254415A8AE1E380245141EE0A0F63A4425441A7AB10E17A2451417537049AA4425441A7AB10E17A24514154D361D2A7425441E1C18784782451414E2194E6AB425441BBB6C83A77245141476FC6FAAF4254415BA043B76F24514167C8B758B5425441690F90F85E24514119A7885BBB4254410B04BCDE4E24514165B25585C6425441AAE285F14F2451419816FF3CC84254418B8994934A245141584EBAADCE425441F80E665841245141FFE90216C3425441B6860A9C44245141AA63CF64BF4254412B204F5B422451416DF76C79BD425441D9D2E0C63E2451413BD49C6CBA425441EE5987043C245141BC782388B942544116D4CEEB382451418D58B6B9BC425441E4BF35323924514112C302ACC142544191F2E44F3A2451416016DB73C7425441F82723E83B245141E397B6B3D0425441DD301C673C24514198DC04A6D542544178406B6B3D245141A389689FD7425441F80E665841245141DD6FFE7AD742544138C148144C24514197009D69D94254414BCC006E4824514183EA33A6E54254419E899B834F24514136C904A9EB42544149ABED3062245141D6B27F25E44254410F95768D64245141297BCBA4E242544142F91F456624514123D4AE22DE425441E2D7E9576724514197009D69D9425441B51A5D226A245141FED3A042D44254414E4759496F245141F82C84C0CF42544187521F8375245141F285673ECB425441F4C18E747D2451418516F84CC3425441CDAB1EC184245141F39BC911BA425441C6F950D588245141DAF4A59FB0425441F95DFA8C8A245141E1A6738BAC425441AC477CF987245141D44D891DAC42544119C29C548724514168DE192CA4425441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>532559 - 3569065
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -22 </desc>
+<a>
+01060000000100000001030000000100000071000000295C8F12FD2351415C8FC295F0425441295C8FA201245141295C8F82EC4254415C8FC2B50524514166666606E8425441AE47E1BA0A245141333333C3E0425441295C8FA20D24514133333313DC42544148E17A141024514100000070D742544185EB512811245141E17A140ED642544133333313122451417B14AEF7D44254418FC2F5D813245141D7A370FDD3425441295C8F8215245141AE47E1CAD34254410AD7A3F017245141666666C6D34254415C8FC2C52724514185EB5188D642544152B81E152E2451419A999969D74254413D0AD7C33B245141333333B3D94254411F85EB613C245141295C8F72D9425441666666A63D2451411F85EB11D842544185EB51483C245141A4703D6AD54254415C8FC2C53B24514148E17A04CF4254415C8FC265382451418FC2F588BD4254419A9999F93A245141CDCCCC8CB94254411F85EBB13D2451410AD7A380B94254411F85EB214E2451411F85EB81C7425441D7A370BD5E24514148E17AF4BA4254411F85EB416524514148E17A74B94254415C8FC2456D2451418FC2F578B5425441C3F5289C6F2451413D0AD7A3A0425441E17A14BE70245141000000D09C425441C3F528DC75245141333333739A42544185EB51787A2451418FC2F5A8994254411F85EB4176245141C3F5282C96425441D7A370BD73245141CDCCCCDC934254419A9999A9722451418FC2F56892425441D7A3700D722451418FC2F5B8904254419A9999B971245141CDCCCCCC8E4254419A99992971245141CDCCCCBC89425441D7A3708D702451418FC2F588874254419A9999D96F2451418FC2F50886425441B81E856B6E245141CDCCCC3C834254415C8FC2756D24514148E17A04814254411F85EB716B2451417B14AE377A4254415C8FC2756A2451418FC2F5E875425441A4703D1A6A245141C3F528DC72425441A4703D4A6A2451413D0AD733714254411F85EB116B2451413D0AD7F36F425441EC51B88E722451417B14AEB76B425441A4703D5A78245141C3F5285C68425441713D0AB77A245141B81E851B66425441C3F528FC7C2451418FC2F53864425441AE47E10A7E245141A4703DCA63425441E17A14DE7F2451411F85EB7163425441C3F5286C83245141295C8F9263425441666666C6852451417B14AEC762425441A4703D1A88245141C3F5282C624254411F85EB418B2451413D0AD713624254411F85EBE18E245141A4703D6A6042544148E17AF493245141AE47E17A5F4254418FC2F5D8932451410AD7A3D05E425441295C8F4292245141CDCCCC7C51425441D7A3708D902451419A999969454254410AD7A350902451417B14AEF741425441333333738E2451419A999919424254410AD7A3908B2451413D0AD7D34242544185EB51F8842451415C8FC2F545425441D7A370FD812451419A99998947425441F6285C2F81245141B81E855B48425441D7A3703D80245141295C8F5249425441E17A146E79245141D7A3703D514254417B14AEC776245141A4703D0A55425441F6285C1F74245141AE47E1DA584254415C8FC2E567245141AE47E19A6B425441295C8F5261245141C3F5289C7242544152B81E955B245141713D0A277642544114AE47A156245141000000F07E4254410AD7A35054245141EC51B8BE85425441AE47E18A512451419A99991988425441C3F5286C45245141D7A370BD8A4254413D0AD7B33F24514148E17AE48E425441A4703D9A3724514114AE475197425441333333A331245141713D0AA79942544185EB51482C2451410AD7A3409D4254413D0AD7F32924514152B81E05A24254415C8FC2A527245141E17A14CEA7425441F6285C1F25245141A4703DCAAB42544148E17A0422245141D7A3702DAE425441A4703DEA1A2451413D0AD753B2425441A4703DBA152451413D0AD753B7425441713D0A17122451419A999989BA425441A4703D6A0F2451415C8FC2D5BF425441CDCCCC2C0F24514148E17A74C242544114AE47F10F2451413D0AD763C44254410AD7A31011245141AE47E13AC5425441D7A370ED2424514185EB5198B2425441B81E850B2424514148E17A44B54254417B14AE3722245141295C8F82C2425441333333931B2451413D0AD703C44254413333337313245141333333D3C6425441A4703D3A11245141D7A3703DC94254418FC2F5A80C245141AE47E1FAD242544185EB51E80424514152B81E15DC42544152B81EE5FF235141C3F5286CDF425441E17A142EF9235141A4703D7AE742544166666606F8235141295C8FA2E7425441C3F5282CF7235141B81E85CBE7425441B81E853BF52351413D0AD783E942544152B81E55EE2351419A9999F9F04254410AD7A3F0ED235141666666A6F2425441E17A149EEC23514114AE47C1F442544152B81E85EA235141CDCCCCACF6425441D7A370CDE923514185EB5118F742544114AE4781EC235141E17A149E03435441EC51B8CEF1235141295C8F42FD425441A4703D2AFA23514185EB5128F3425441295C8F12FD2351415C8FC295F0425441
+</a>
+
+<b>
+0106000000010000000103000000010000002900000019C29C548724514168DE192CA44254410010C878862451414E2C4550A3425441B3F949E583245141EE0A0F63A44254415A8AE1E380245141EE0A0F63A4425441A7AB10E17A2451417537049AA4425441A7AB10E17A24514154D361D2A7425441E1C18784782451414E2194E6AB425441BBB6C83A77245141476FC6FAAF4254415BA043B76F24514167C8B758B5425441690F90F85E24514119A7885BBB4254410B04BCDE4E24514165B25585C6425441AAE285F14F2451419816FF3CC84254418B8994934A245141584EBAADCE425441F80E665841245141FFE90216C3425441B6860A9C44245141AA63CF64BF4254412B204F5B422451416DF76C79BD425441D9D2E0C63E2451413BD49C6CBA425441EE5987043C245141BC782388B942544116D4CEEB382451418D58B6B9BC425441E4BF35323924514112C302ACC142544191F2E44F3A2451416016DB73C7425441F82723E83B245141E397B6B3D0425441DD301C673C24514198DC04A6D542544178406B6B3D245141A389689FD7425441F80E665841245141DD6FFE7AD742544138C148144C24514197009D69D94254414BCC006E4824514183EA33A6E54254419E899B834F24514136C904A9EB42544149ABED3062245141D6B27F25E44254410F95768D64245141297BCBA4E242544142F91F456624514123D4AE22DE425441E2D7E9576724514197009D69D9425441B51A5D226A245141FED3A042D44254414E4759496F245141F82C84C0CF42544187521F8375245141F285673ECB425441F4C18E747D2451418516F84CC3425441CDAB1EC184245141F39BC911BA425441C6F950D588245141DAF4A59FB0425441F95DFA8C8A245141E1A6738BAC425441AC477CF987245141D44D891DAC42544119C29C548724514168DE192CA4425441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>533957 - 3096711
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -174 </desc>
+<a>
+0106000000010000000103000000010000000F000000EC51B80E5E275141295C8F325A5B54410AD7A3005B275141C3F5280C485B544114AE47E15A27514133333353475B5441E17A146E57275141666666D6325B5441666666E655275141F6285CBF295B5441666666A642275141295C8F12365B54410AD7A3A0332751410AD7A3B03F5B5441CDCCCCBC3727514166666656585B5441AE47E1AA252751417B14AEC75C5B5441666666E625275141F6285C2F5F5B54419A9999492B275141CDCCCC5C7A5B54411F85EBB1372751410AD7A380725B544148E17AF443275141C3F528BC6A5B5441CDCCCC0C4E27514166666656645B5441EC51B80E5E275141295C8F325A5B5441
+</a>
+
+<b>
+01060000000100000001030000000100000025000000CDCCCCBC3727514166666656585B5441B733E6B435275141DD9993284C5B5441BC751AA1342751414C3A7AED4B5B544177615A5B34275141049FF0544A5B544192F5C7E3332751416CAC39054A5B5441F089E59E332751413CE61272495B5441C71DA3F4322751419209EFE1445B5441EA46B9603427514167E88E30445B5441CE8A985234275141B07FD5DB435B5441A6DD65F233275141CD56F09A415B5441EC51B84E3027514114AE47D1415B5441CDCCCC5C2227514148E17AC44A5B54410472035C242751416F578FA8555B5441763A233D2527514155AC104A555B5441661A312A24275141BA48B20D505B544165F971292727514181FE288C4F5B5441B3E057A525275141C6C740F7495B544105C0597029275141C8D4197C495B5441C89FF6022B275141343B3556495B5441686C1B322C275141C701CD2B485B544143AA4FF22E2751416668DD23475B54411E6E591631275141FD1816724D5B544135BF592D3227514150F70C7C4D5B5441DB7B4741322751416EAD28754E5B54415D1DFE79312751416EAD28754E5B5441174CABA52F2751413C4F84284F5B544174B16B0231275141658D58E4555B5441DD0033B42A2751416E142237575B5441C6AF329D2927514139EC4626585B5441561B209A282751416AD1B4C5585B5441386504A1272751416AD1B4C5585B54416728C4CF26275141EC726BFE575B5441E2645F2626275141229B460F575B54411EF2551925275141DFA8343A585B5441CF135F0F25275141BD3675225A5B5441AE47E1AA252751417B14AEC75C5B5441CDCCCCBC3727514166666656585B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>533957 - 3442763
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -174 </desc>
+<a>
+0106000000010000000103000000010000000F000000EC51B80E5E275141295C8F325A5B54410AD7A3005B275141C3F5280C485B544114AE47E15A27514133333353475B5441E17A146E57275141666666D6325B5441666666E655275141F6285CBF295B5441666666A642275141295C8F12365B54410AD7A3A0332751410AD7A3B03F5B5441CDCCCCBC3727514166666656585B5441AE47E1AA252751417B14AEC75C5B5441666666E625275141F6285C2F5F5B54419A9999492B275141CDCCCC5C7A5B54411F85EBB1372751410AD7A380725B544148E17AF443275141C3F528BC6A5B5441CDCCCC0C4E27514166666656645B5441EC51B80E5E275141295C8F325A5B5441
+</a>
+
+<b>
+01060000000100000001030000000100000025000000CDCCCCBC3727514166666656585B5441B733E6B435275141DD9993284C5B5441BC751AA1342751414C3A7AED4B5B544177615A5B34275141049FF0544A5B544192F5C7E3332751416CAC39054A5B5441F089E59E332751413CE61272495B5441C71DA3F4322751419209EFE1445B5441EA46B9603427514167E88E30445B5441CE8A985234275141B07FD5DB435B5441A6DD65F233275141CD56F09A415B5441EC51B84E3027514114AE47D1415B5441CDCCCC5C2227514148E17AC44A5B54410472035C242751416F578FA8555B5441763A233D2527514155AC104A555B5441661A312A24275141BA48B20D505B544165F971292727514181FE288C4F5B5441B3E057A525275141C6C740F7495B544105C0597029275141C8D4197C495B5441C89FF6022B275141343B3556495B5441686C1B322C275141C701CD2B485B544143AA4FF22E2751416668DD23475B54411E6E591631275141FD1816724D5B544135BF592D3227514150F70C7C4D5B5441DB7B4741322751416EAD28754E5B54415D1DFE79312751416EAD28754E5B5441174CABA52F2751413C4F84284F5B544174B16B0231275141658D58E4555B5441DD0033B42A2751416E142237575B5441C6AF329D2927514139EC4626585B5441561B209A282751416AD1B4C5585B5441386504A1272751416AD1B4C5585B54416728C4CF26275141EC726BFE575B5441E2645F2626275141229B460F575B54411EF2551925275141DFA8343A585B5441CF135F0F25275141BD3675225A5B5441AE47E1AA252751417B14AEC75C5B5441CDCCCCBC3727514166666656585B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>626860 - 2133956
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+010600000001000000010300000001000000260000008FC2F518DDFF5041666666167B0B55419A9999B9DDFF5041666666B6790B5541F6285C6FDFFF504133333363780B554133333343E4FF504166666676760B5541713D0A97E3FF5041E17A14BE730B5541E17A145EE2FF5041AE47E1CA720B5541AE47E1FACDFF5041C3F5280C740B5541AE47E1FAC4FF50411F85EBD1740B5541E17A140EBDFF50410AD7A320740B5541D7A3707DB3FF50418FC2F588720B5541D7A3702DA4FF5041C3F528DC700B5541EC51B87E9CFF50417B14AE476F0B5541CDCCCC2C98FF50411F85EB916E0B5541713D0AB796FF5041A4703D8A6E0B5541E17A147E94FF50413D0AD7B36E0B55415C8FC26592FF5041295C8F126F0B554114AE47C190FF50418FC2F598720B554185EB51D894FF504114AE4701750B55418FC2F54898FF504114AE4721760B55417B14AE079DFF5041713D0A17780B5541295C8F92A8FF5041AE47E1AA7E0B5541295C8F02B8FF5041295C8F42870B55410AD7A3E0BEFF50410AD7A3508B0B55419A999959C7FF50413D0AD7D3900B5541A4703DCAC9FF50410AD7A3F08D0B5541713D0AD7C4FF504152B81E358A0B554133333393C5FF5041D7A3709D880B5541B81E85DBBFFF50418FC2F5A8840B554148E17AE4C0FF504185EB5178820B5541CDCCCC5CC6FF504148E17A54820B5541B81E85EBCAFF504152B81E75810B5541666666A6CFFF5041E17A144E810B55410AD7A300D4FF5041CDCCCCDC810B5541D7A3701DD3FF5041AE47E1FA7C0B554166666646D6FF5041AE47E11A7D0B554114AE4771D8FF5041C3F528BC7B0B5541B81E851BDBFF50413D0AD7337B0B55418FC2F518DDFF5041666666167B0B5541
+</a>
+
+<b>
+010600000001000000010300000001000000190000000AD7A330A2FF504152B81E25950B5541B81E854BA3FF5041295C8F02960B554185EB51C8A5FF50411F85EB21980B5541EC51B84EA9FF50417B14AE779B0B55417B14AE97AFFF5041CDCCCC8CA10B554133333363B3FF5041000000D09A0B5541666666E6B9FF5041E17A147E8F0B5541E17A14BEB1FF5041A4703DEA880B55417B14AEE7ACFF504166666616850B5541E17A14BEA9FF50417B14AED7820B5541713D0A77A7FF50413D0AD783810B55416348E4B5A8FF50413BAD8BBE7E0B55417418BA36A1FF50419D6E60797A0B5541886625699CFF5041B9128ED5770B554193D8F22C98FF50417D8A1E18760B55415001072E92FF5041F136E221740B55416666666690FF5041E17A14BE770B5541A4703DFA8FFF5041E17A14DE7A0B5541713D0AB78FFF5041666666667D0B55419A9999F992FF50415C8FC2D58B0B5541B81E850B95FF5041AE47E15A8D0B55410000003097FF5041295C8FD28E0B55410AD7A38099FF5041AE47E1FA8F0B55410AD7A3709DFF504166666616920B55410AD7A330A2FF504152B81E25950B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>626860 - 4645918
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+010600000001000000010300000001000000260000008FC2F518DDFF5041666666167B0B55419A9999B9DDFF5041666666B6790B5541F6285C6FDFFF504133333363780B554133333343E4FF504166666676760B5541713D0A97E3FF5041E17A14BE730B5541E17A145EE2FF5041AE47E1CA720B5541AE47E1FACDFF5041C3F5280C740B5541AE47E1FAC4FF50411F85EBD1740B5541E17A140EBDFF50410AD7A320740B5541D7A3707DB3FF50418FC2F588720B5541D7A3702DA4FF5041C3F528DC700B5541EC51B87E9CFF50417B14AE476F0B5541CDCCCC2C98FF50411F85EB916E0B5541713D0AB796FF5041A4703D8A6E0B5541E17A147E94FF50413D0AD7B36E0B55415C8FC26592FF5041295C8F126F0B554114AE47C190FF50418FC2F598720B554185EB51D894FF504114AE4701750B55418FC2F54898FF504114AE4721760B55417B14AE079DFF5041713D0A17780B5541295C8F92A8FF5041AE47E1AA7E0B5541295C8F02B8FF5041295C8F42870B55410AD7A3E0BEFF50410AD7A3508B0B55419A999959C7FF50413D0AD7D3900B5541A4703DCAC9FF50410AD7A3F08D0B5541713D0AD7C4FF504152B81E358A0B554133333393C5FF5041D7A3709D880B5541B81E85DBBFFF50418FC2F5A8840B554148E17AE4C0FF504185EB5178820B5541CDCCCC5CC6FF504148E17A54820B5541B81E85EBCAFF504152B81E75810B5541666666A6CFFF5041E17A144E810B55410AD7A300D4FF5041CDCCCCDC810B5541D7A3701DD3FF5041AE47E1FA7C0B554166666646D6FF5041AE47E11A7D0B554114AE4771D8FF5041C3F528BC7B0B5541B81E851BDBFF50413D0AD7337B0B55418FC2F518DDFF5041666666167B0B5541
+</a>
+
+<b>
+010600000001000000010300000001000000190000000AD7A330A2FF504152B81E25950B5541B81E854BA3FF5041295C8F02960B554185EB51C8A5FF50411F85EB21980B5541EC51B84EA9FF50417B14AE779B0B55417B14AE97AFFF5041CDCCCC8CA10B554133333363B3FF5041000000D09A0B5541666666E6B9FF5041E17A147E8F0B5541E17A14BEB1FF5041A4703DEA880B55417B14AEE7ACFF504166666616850B5541E17A14BEA9FF50417B14AED7820B5541713D0A77A7FF50413D0AD783810B55416348E4B5A8FF50413BAD8BBE7E0B55417418BA36A1FF50419D6E60797A0B5541886625699CFF5041B9128ED5770B554193D8F22C98FF50417D8A1E18760B55415001072E92FF5041F136E221740B55416666666690FF5041E17A14BE770B5541A4703DFA8FFF5041E17A14DE7A0B5541713D0AB78FFF5041666666667D0B55419A9999F992FF50415C8FC2D58B0B5541B81E850B95FF5041AE47E15A8D0B55410000003097FF5041295C8FD28E0B55410AD7A38099FF5041AE47E1FA8F0B55410AD7A3709DFF504166666616920B55410AD7A330A2FF504152B81E25950B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>536780 - 998533
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+010600000001000000010300000001000000180000001F85EBF1E75D5141E17A143E8C525441EC51B83EE95D5141B81E85CB8852544166666636E75D5141333333838752544148E17A94E65D5141D7A3701D875254410AD7A3A0DD5D51416666660681525441666666C6D95D51417B14AE677E52544152B81E65D35D51418FC2F5687A525441C3F528CCCC5D5141CDCCCC6C78525441C3F5286CCB5D51417B14AE977B525441C3F5284CC75D51413D0AD713815254413D0AD7A3C05D514185EB5148865254411F85EB91B85D5141AE47E14A8B525441333333E3B05D514148E17A4490525441713D0A87B65D514185EB51A8945254417B14AE97C25D514148E17A849C525441C3F528DCCD5D51418FC2F5C8A35254410AD7A3B0DD5D51418FC2F5E8AC525441C3F5281CDE5D514185EB51C8A652544152B81EF5DC5D5141A4703D6A9D52544185EB5148E35D514152B81EE59952544185EB51A8E55D51413D0AD7439752544114AE4781E65D51417B14AE47935254418FC2F518E75D5141EC51B80E905254411F85EBF1E75D5141E17A143E8C525441
+</a>
+
+<b>
+0106000000010000000103000000010000006500000016B2535ECB5D514174E312AA7B52544160250BC6CC5D5141863A8978785254418F9C7780CA5D514123BE68FD7B5254419A60D256C75D514132F686168052544130D5E4B0C55D5141861343D381525441A531EF0EC15D514165E1B61385525441CAFE84B6BB5D51415A1D5C3D885254416B37F2E6B65D5141DEA4C2D28A52544141DA09F0B25D5141EC77EAD38C525441AD0DC35FAF5D51417A28A2578E5254417EA31887AE5D5141132BFCB78D52544117A672E7AD5D5141CE5220F68C5254412D14A4D0AD5D5141D57B71E48B52544185EB51F8AE5D5141B81E85BB86525441EC51B86EAC5D5141D7A3707D85525441F6285C7FA25D51411F85EB217C525441A4703D3A9F5D5141F6285C0F7752544185EB5158955D51418FC2F58873525441A4703DDA7C5D51419A9999A9735254417B14AEB77D5D5141E17A14CE76525441AE47E15A7F5D514185EB51D87A52544114AE4781855D514148E17AD48852544185EB5118875D5141F6285CDF8D525441295C8F22875D5141295C8F728F5254410AD7A3F0865D5141B81E856B91525441AE47E15A865D51415C8FC2E593525441713D0AC7845D5141B81E859B97525441E17A141E835D5141333333139B5254418FC2F508835D5141C3F5283C9C525441D7A370CD895D514185EB51B8A1525441AE47E1AA8E5D5141B81E852BA6525441EC51B86E935D5141B81E856BAB5254419A999929985D5141EC51B8EEB15254418FC2F5489E5D5141B81E853BBB52544133333373A35D514152B81E15C352544148E17AF4A45D5141295C8F32C5525441A4703D8AA95D5141D7A3700DC2525441D7A3700DAA5D5141295C8F42BF525441F6285CDFA95D51419A9999F9BD525441295C8FF2A95D5141F6285C1FBD525441D7A3709DAA5D51415C8FC215BC5254413D0AD7C3AC5D51410AD7A390B9525441EC51B86EB05D514185EB51F8B5525441CDCCCC5CB45D5141B81E853BB952544152B81EF5B95D514152B81EE5B152544100000000C25D514185EB5128B852544148E17A54BE5D5141000000F0BC52544148E17A54BC5D5141713D0AB7BC525441295C8FE2BA5D514114AE47C1BE525441AE47E14ABC5D51413D0AD703C0525441B81E85EBBA5D5141B81E859BC15254417B14AE07B95D514152B81E75C052544114AE4711B85D514166666616C152544185EB51A8B55D5141F6285C7FC35254418FC2F578B35D514114AE4721C752544133333373B35D514114AE4791C85254415C8FC265B45D51413D0AD763CA5254417B14AE07B65D51418FC2F5E8CB5254410AD7A340B95D5141333333C3CD52544152B81E65B75D51417B14AED7CF5254418FC2F5F8B55D5141D7A370BDD15254413D0AD743AE5D514185EB51E8CB5254410AD7A3E0AB5D514148E17AD4C9525441AE47E17AA85D514152B81EA5C4525441AE47E1FAA55D5141333333A3C6525441EC51B88EA65D514133333373C752544114AE4781AB5D5141295C8F22CD525441AE47E1DAAF5D514133333323D1525441CDCCCCECBA5D5141295C8FE2D85254413D0AD793C15D51419A9999F9DC52544166666606C95D5141F6285CFFDF525441AE47E12AD05D51419A9999D9E1525441EC51B80ED65D5141C3F528ACE252544114AE47A1DB5D5141EC51B8DEE252544166666606E45D5141F6285CEFE152544152B81E35E55D5141D7A370CDE15254411F85EBE1E55D5141A4703DBAE1525441B81E856BE65D5141AE47E19AE152544114AE4761E45D5141F6285C6FDD525441E17A14CEE25D51419A9999F9D7525441AE47E15AE25D5141AE47E1CAD55254411F85EB31E25D514152B81E85D2525441295C8FB2E15D5141CDCCCC2CCF525441295C8F52E15D514185EB51D8CD525441295C8F72DD5D51418FC2F5F8BF525441A4703D3ADD5D5141000000A0B35254410AD7A3B0DD5D51418FC2F5E8AC525441C3F528DCCD5D51418FC2F5C8A35254417B14AE97C25D514148E17A849C525441713D0A87B65D514185EB51A894525441333333E3B05D514148E17A44905254411F85EB91B85D5141AE47E14A8B52544146497846BA5D514173AFDC3B8A525441084CA8C3BE5D51411406435987525441357DB07AC05D514133DC02538652544162C13781C15D514114C63D9B8552544183295CC8C25D5141C32C799B8452544169884A05C45D51419A615A9B83525441A5176B4BC75D5141413B671181525441D77E9603C85D514154BFEF1F8052544116B2535ECB5D514174E312AA7B525441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>536780 - 3490947
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+010600000001000000010300000001000000180000001F85EBF1E75D5141E17A143E8C525441EC51B83EE95D5141B81E85CB8852544166666636E75D5141333333838752544148E17A94E65D5141D7A3701D875254410AD7A3A0DD5D51416666660681525441666666C6D95D51417B14AE677E52544152B81E65D35D51418FC2F5687A525441C3F528CCCC5D5141CDCCCC6C78525441C3F5286CCB5D51417B14AE977B525441C3F5284CC75D51413D0AD713815254413D0AD7A3C05D514185EB5148865254411F85EB91B85D5141AE47E14A8B525441333333E3B05D514148E17A4490525441713D0A87B65D514185EB51A8945254417B14AE97C25D514148E17A849C525441C3F528DCCD5D51418FC2F5C8A35254410AD7A3B0DD5D51418FC2F5E8AC525441C3F5281CDE5D514185EB51C8A652544152B81EF5DC5D5141A4703D6A9D52544185EB5148E35D514152B81EE59952544185EB51A8E55D51413D0AD7439752544114AE4781E65D51417B14AE47935254418FC2F518E75D5141EC51B80E905254411F85EBF1E75D5141E17A143E8C525441
+</a>
+
+<b>
+0106000000010000000103000000010000006500000016B2535ECB5D514174E312AA7B52544160250BC6CC5D5141863A8978785254418F9C7780CA5D514123BE68FD7B5254419A60D256C75D514132F686168052544130D5E4B0C55D5141861343D381525441A531EF0EC15D514165E1B61385525441CAFE84B6BB5D51415A1D5C3D885254416B37F2E6B65D5141DEA4C2D28A52544141DA09F0B25D5141EC77EAD38C525441AD0DC35FAF5D51417A28A2578E5254417EA31887AE5D5141132BFCB78D52544117A672E7AD5D5141CE5220F68C5254412D14A4D0AD5D5141D57B71E48B52544185EB51F8AE5D5141B81E85BB86525441EC51B86EAC5D5141D7A3707D85525441F6285C7FA25D51411F85EB217C525441A4703D3A9F5D5141F6285C0F7752544185EB5158955D51418FC2F58873525441A4703DDA7C5D51419A9999A9735254417B14AEB77D5D5141E17A14CE76525441AE47E15A7F5D514185EB51D87A52544114AE4781855D514148E17AD48852544185EB5118875D5141F6285CDF8D525441295C8F22875D5141295C8F728F5254410AD7A3F0865D5141B81E856B91525441AE47E15A865D51415C8FC2E593525441713D0AC7845D5141B81E859B97525441E17A141E835D5141333333139B5254418FC2F508835D5141C3F5283C9C525441D7A370CD895D514185EB51B8A1525441AE47E1AA8E5D5141B81E852BA6525441EC51B86E935D5141B81E856BAB5254419A999929985D5141EC51B8EEB15254418FC2F5489E5D5141B81E853BBB52544133333373A35D514152B81E15C352544148E17AF4A45D5141295C8F32C5525441A4703D8AA95D5141D7A3700DC2525441D7A3700DAA5D5141295C8F42BF525441F6285CDFA95D51419A9999F9BD525441295C8FF2A95D5141F6285C1FBD525441D7A3709DAA5D51415C8FC215BC5254413D0AD7C3AC5D51410AD7A390B9525441EC51B86EB05D514185EB51F8B5525441CDCCCC5CB45D5141B81E853BB952544152B81EF5B95D514152B81EE5B152544100000000C25D514185EB5128B852544148E17A54BE5D5141000000F0BC52544148E17A54BC5D5141713D0AB7BC525441295C8FE2BA5D514114AE47C1BE525441AE47E14ABC5D51413D0AD703C0525441B81E85EBBA5D5141B81E859BC15254417B14AE07B95D514152B81E75C052544114AE4711B85D514166666616C152544185EB51A8B55D5141F6285C7FC35254418FC2F578B35D514114AE4721C752544133333373B35D514114AE4791C85254415C8FC265B45D51413D0AD763CA5254417B14AE07B65D51418FC2F5E8CB5254410AD7A340B95D5141333333C3CD52544152B81E65B75D51417B14AED7CF5254418FC2F5F8B55D5141D7A370BDD15254413D0AD743AE5D514185EB51E8CB5254410AD7A3E0AB5D514148E17AD4C9525441AE47E17AA85D514152B81EA5C4525441AE47E1FAA55D5141333333A3C6525441EC51B88EA65D514133333373C752544114AE4781AB5D5141295C8F22CD525441AE47E1DAAF5D514133333323D1525441CDCCCCECBA5D5141295C8FE2D85254413D0AD793C15D51419A9999F9DC52544166666606C95D5141F6285CFFDF525441AE47E12AD05D51419A9999D9E1525441EC51B80ED65D5141C3F528ACE252544114AE47A1DB5D5141EC51B8DEE252544166666606E45D5141F6285CEFE152544152B81E35E55D5141D7A370CDE15254411F85EBE1E55D5141A4703DBAE1525441B81E856BE65D5141AE47E19AE152544114AE4761E45D5141F6285C6FDD525441E17A14CEE25D51419A9999F9D7525441AE47E15AE25D5141AE47E1CAD55254411F85EB31E25D514152B81E85D2525441295C8FB2E15D5141CDCCCC2CCF525441295C8F52E15D514185EB51D8CD525441295C8F72DD5D51418FC2F5F8BF525441A4703D3ADD5D5141000000A0B35254410AD7A3B0DD5D51418FC2F5E8AC525441C3F528DCCD5D51418FC2F5C8A35254417B14AE97C25D514148E17A849C525441713D0A87B65D514185EB51A894525441333333E3B05D514148E17A44905254411F85EB91B85D5141AE47E14A8B52544146497846BA5D514173AFDC3B8A525441084CA8C3BE5D51411406435987525441357DB07AC05D514133DC02538652544162C13781C15D514114C63D9B8552544183295CC8C25D5141C32C799B8452544169884A05C45D51419A615A9B83525441A5176B4BC75D5141413B671181525441D77E9603C85D514154BFEF1F8052544116B2535ECB5D514174E312AA7B525441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>537636 - 3153532
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -51 </desc>
+<a>
+0106000000010000000103000000030000002B00000000000050FE5651410AD7A3B03D63544152B81EA5FD565141E17A141E3E635441333333C3FC565141E17A142E3F63544114AE4731FC5651418FC2F5484163544152B81E45FB5651410AD7A3A04563544185EB51F8F95651417B14AE1747635441295C8F22F6565141000000204D6354413D0AD703F7565141295C8F624D635441666666E6F9565141C3F5283C4E635441AE47E1AAFA565141666666764E6354413D0AD713FE5651417B14AE774F635441F6285C3FFE56514114AE47314F63544166666676045751419A99991945635441D7A3709D0657514152B81E753D635441D7A3707D07575141000000603863544148E17A84085751411F85EB4133635441295C8F6209575141CDCCCC6C2B635441295C8F220A5751411F85EBC127635441000000400D5751415C8FC2D51D635441B81E85FB06575141D7A3701D1C6354418FC2F51801575141000000801A6354417B14AE67DC565141D7A3706D10635441666666A6E5565141F6285C9F1D635441C3F5282CE7565141E17A141E2163544114AE47D1E65651419A999949246354418FC2F558E55651413D0AD7D3276354418FC2F538E5565141C3F5284C296354418FC2F5D8E7565141B81E85CB2D63544148E17A54EA565141713D0A573163544148E17AA4ED565141A4703DBA336354419A999959F15651411F85EB81356354417B14AEC7F35651418FC2F54837635441A4703DEAF65651411F85EBB13A635441AE47E1DAF8565141CDCCCC4C3D63544148E17A44F9565141E17A14CE3B635441713D0AE7F856514148E17AF43A635441000000C0F85651415C8FC2953963544148E17A44F95651415C8FC28538635441713D0A170457514114AE47813C635441713D0A2704575141333333533D6354411F85EBB1035751411F85EBA13E635441000000D00257514148E17A643F63544100000050FE5651410AD7A3B03D63544105000000B81E857B035751411F85EB01396354413333338303575141B81E85AB376354419A9999D904575141B81E85AB376354411F85EBD1045751419A99990939635441B81E857B035751411F85EB0139635441050000007B14AEC7FC565141295C8F02276354415C8FC2D5FC565141B81E85AB25635441E17A141EFE5651410AD7A3B025635441B81E850BFE565141B81E850B276354417B14AEC7FC565141295C8F0227635441
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000FAA2897EF8565141804F100735635441FE06CDE807575141140A494936635441160390D10857514145A7F489306354417A9F30520957514139349A002C635441FB38D5350A575141363A878427635441520CB9750B575141F38E8D89236354418772F9330D575141F4F510FC1D635441E12B9DD9F0565141A192360A16635441E818B681DF565141BE3806F91063544186AF0E7DDC565141C675F38B106354410142BB10E056514177ACDAA61563544118D7853CE356514139677D2D1A63544182A5EF77E556514139470B5D1D635441B5C94B26E75651418C709E102163544163A653E3E65651416E3873A823635441DA2BA0E8E5565141F69EDE792663544113132B46E55651418CB3D4B0286354414647E764E7565141450AB2CF2D6354412A394A64EA565141BC616F62316354416DF0277EEC565141E8C61AE6326354413E538BFDF256514194F719B536635441A761A694F5565141B6AA5D3E396354418947F0F3F6565141F3B30BBF3A635441FC51D4E9F6565141E92D79B13A6354419975714BF8565141549B6A0135635441FAA2897EF8565141804F100735635441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>537636 - 3538595
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -51 </desc>
+<a>
+0106000000010000000103000000030000002B00000000000050FE5651410AD7A3B03D63544152B81EA5FD565141E17A141E3E635441333333C3FC565141E17A142E3F63544114AE4731FC5651418FC2F5484163544152B81E45FB5651410AD7A3A04563544185EB51F8F95651417B14AE1747635441295C8F22F6565141000000204D6354413D0AD703F7565141295C8F624D635441666666E6F9565141C3F5283C4E635441AE47E1AAFA565141666666764E6354413D0AD713FE5651417B14AE774F635441F6285C3FFE56514114AE47314F63544166666676045751419A99991945635441D7A3709D0657514152B81E753D635441D7A3707D07575141000000603863544148E17A84085751411F85EB4133635441295C8F6209575141CDCCCC6C2B635441295C8F220A5751411F85EBC127635441000000400D5751415C8FC2D51D635441B81E85FB06575141D7A3701D1C6354418FC2F51801575141000000801A6354417B14AE67DC565141D7A3706D10635441666666A6E5565141F6285C9F1D635441C3F5282CE7565141E17A141E2163544114AE47D1E65651419A999949246354418FC2F558E55651413D0AD7D3276354418FC2F538E5565141C3F5284C296354418FC2F5D8E7565141B81E85CB2D63544148E17A54EA565141713D0A573163544148E17AA4ED565141A4703DBA336354419A999959F15651411F85EB81356354417B14AEC7F35651418FC2F54837635441A4703DEAF65651411F85EBB13A635441AE47E1DAF8565141CDCCCC4C3D63544148E17A44F9565141E17A14CE3B635441713D0AE7F856514148E17AF43A635441000000C0F85651415C8FC2953963544148E17A44F95651415C8FC28538635441713D0A170457514114AE47813C635441713D0A2704575141333333533D6354411F85EBB1035751411F85EBA13E635441000000D00257514148E17A643F63544100000050FE5651410AD7A3B03D63544105000000B81E857B035751411F85EB01396354413333338303575141B81E85AB376354419A9999D904575141B81E85AB376354411F85EBD1045751419A99990939635441B81E857B035751411F85EB0139635441050000007B14AEC7FC565141295C8F02276354415C8FC2D5FC565141B81E85AB25635441E17A141EFE5651410AD7A3B025635441B81E850BFE565141B81E850B276354417B14AEC7FC565141295C8F0227635441
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000FAA2897EF8565141804F100735635441FE06CDE807575141140A494936635441160390D10857514145A7F489306354417A9F30520957514139349A002C635441FB38D5350A575141363A878427635441520CB9750B575141F38E8D89236354418772F9330D575141F4F510FC1D635441E12B9DD9F0565141A192360A16635441E818B681DF565141BE3806F91063544186AF0E7DDC565141C675F38B106354410142BB10E056514177ACDAA61563544118D7853CE356514139677D2D1A63544182A5EF77E556514139470B5D1D635441B5C94B26E75651418C709E102163544163A653E3E65651416E3873A823635441DA2BA0E8E5565141F69EDE792663544113132B46E55651418CB3D4B0286354414647E764E7565141450AB2CF2D6354412A394A64EA565141BC616F62316354416DF0277EEC565141E8C61AE6326354413E538BFDF256514194F719B536635441A761A694F5565141B6AA5D3E396354418947F0F3F6565141F3B30BBF3A635441FC51D4E9F6565141E92D79B13A6354419975714BF8565141549B6A0135635441FAA2897EF8565141804F100735635441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>537736 - 1242419
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000003B0000005C8FC2B5785D51415C8FC295A96D5441E17A148E785D514148E17AE4AA6D5441000000B0795D51417B14AE97A86D544152B81E757A5D51419A9999D9A66D5441D7A3706D7F5D5141AE47E10A8C6D544148E17A948C5D51417B14AEE7886D5441333333638F5D514152B81EC5886D54411F85EB71935D514114AE4771886D54415C8FC275985D51410AD7A340886D5441B81E850B9E5D514185EB5178886D5441A4703D9AA35D51410AD7A3E0886D5441713D0A57AB5D514152B81E65896D54415C8FC285B45D51413D0AD7A3896D544148E17A84B75D5141713D0AC7896D544100000080B85D514152B81EE58A6D54410AD7A3B0B85D5141666666C68C6D54418FC2F598BB5D514152B81EF58A6D544100000060BC5D51417B14AE77896D544152B81E15BC5D5141EC51B84E886D544166666656B95D51417B14AEB7866D54410AD7A320B85D514114AE4771856D54413D0AD7E3B65D514114AE4781856D5441333333F3B55D51413D0AD7B3846D54417B14AE97B55D5141E17A14DE846D5441295C8FF2B45D51410AD7A3D0846D5441AE47E11AB45D5141713D0A97846D5441CDCCCC7CB35D514148E17AF4846D5441D7A370DDB25D51413D0AD713856D5441000000C0B15D514148E17AE4846D5441295C8F52B05D5141E17A143E856D5441AE47E15AAF5D5141CDCCCC0C856D54413D0AD793AD5D5141000000B0846D544100000090AB5D51417B14AEB7846D5441E17A143EAB5D5141D7A3703D856D5441B81E85ABAA5D51413D0AD753856D54418FC2F5D8A95D5141EC51B81E846D5441333333F3A85D5141E17A144E846D54411F85EB71A85D514114AE4701856D5441295C8FE2A75D5141AE47E1CA846D54419A999929A75D5141F6285C9F846D544148E17AC4A55D514148E17AD4846D5441E17A145EA55D5141713D0AD7856D5441CDCCCC8CA45D5141713D0A17856D5441D7A370BDA35D5141295C8FE2846D5441B81E855BA25D514152B81E05856D5441A4703D4AA05D5141D7A3709D846D54410AD7A3309E5D51410AD7A3E0846D5441CDCCCCCC995D51413D0AD703856D5441CDCCCC6C955D51415C8FC205856D5441B81E85BB8E5D5141C3F5282C856D54413D0AD7738D5D51417B14AE27866D5441713D0AA78C5D514152B81E05876D54410AD7A3A0875D514148E17AE4876D5441CDCCCCDC7E5D514114AE47F1896D54410AD7A3F07D5D51418FC2F5188E6D54411F85EBA17C5D5141F6285C4F956D5441B81E855B7A5D514152B81E55A06D544185EB51D8785D514148E17AD4A86D54415C8FC2B5785D51415C8FC295A96D5441
+</a>
+
+<b>
+01060000000100000001030000000100000029000000641957F0AD5D5141EB501F68896D5441BBC23029A75D514105D9840F896D5441F6285C6F985D5141EC51B83E886D544166666686905D5141713D0AB7886D544155B80E56875D5141ADAB0F4A896D54413A0A677F865D5141127E9A84896D5441BA04F192825D51412B1E23D28A6D544192A562887F5D51418EE8A7D58B6D5441C5082C437F5D5141F3B54A2B8C6D5441295C8FF27B5D5141EC51B86E9E6D5441A7A750A37B5D514171E8997BA06D5441C3F528AC7A5D51410AD7A3E0A66D54419F56A5B17A5D5141FBE140DDA66D54413D0AD7F37C5D514185EB5178A56D5441713D0AE77F5D5141C3F528DCA36D5441E17A141E835D51413D0AD773A26D544148E17A14885D5141295C8F82A06D5441666666D68C5D5141F6285C7F9E6D54419A9999B9905D5141CDCCCC7C9C6D5441A4703D8A935D514148E17A149B6D5441AE47E11A995D5141AE47E1AA986D5441A4703DCA9C5D5141295C8F42976D5441CBA97384A45D514131D3449E956D544191B53AB9A85D5141C25EB0CC946D544150760653AA5D514170551E6B946D5441F29685A8AB5D5141244C8C09946D54411D3F86DDAB5D5141EF6F20E2936D5441B7B704FEAC5D514114A77694936D5441A5181DDCAE5D5141B4C690C7926D54410C399C31B05D5141B886F73E926D5441208DBE9FB35D514165BC9943906D544105571C9BB55D514100D321158F6D5441FC72D2BFB65D514149F704798E6D54410E3D30BBB85D514100D2BCF28C6D54412E7A135EB85D514171E788BE8A6D5441EA97BE34B85D51418F13B1DB896D54411ABE9B90B75D514195B9D5D4896D5441452D0723B15D5141EC8F958F896D544123AAB468B05D51416846BE87896D5441920FB7F7AE5D514164EDE57D896D5441641957F0AD5D5141EB501F68896D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>537736 - 3278201
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000003B0000005C8FC2B5785D51415C8FC295A96D5441E17A148E785D514148E17AE4AA6D5441000000B0795D51417B14AE97A86D544152B81E757A5D51419A9999D9A66D5441D7A3706D7F5D5141AE47E10A8C6D544148E17A948C5D51417B14AEE7886D5441333333638F5D514152B81EC5886D54411F85EB71935D514114AE4771886D54415C8FC275985D51410AD7A340886D5441B81E850B9E5D514185EB5178886D5441A4703D9AA35D51410AD7A3E0886D5441713D0A57AB5D514152B81E65896D54415C8FC285B45D51413D0AD7A3896D544148E17A84B75D5141713D0AC7896D544100000080B85D514152B81EE58A6D54410AD7A3B0B85D5141666666C68C6D54418FC2F598BB5D514152B81EF58A6D544100000060BC5D51417B14AE77896D544152B81E15BC5D5141EC51B84E886D544166666656B95D51417B14AEB7866D54410AD7A320B85D514114AE4771856D54413D0AD7E3B65D514114AE4781856D5441333333F3B55D51413D0AD7B3846D54417B14AE97B55D5141E17A14DE846D5441295C8FF2B45D51410AD7A3D0846D5441AE47E11AB45D5141713D0A97846D5441CDCCCC7CB35D514148E17AF4846D5441D7A370DDB25D51413D0AD713856D5441000000C0B15D514148E17AE4846D5441295C8F52B05D5141E17A143E856D5441AE47E15AAF5D5141CDCCCC0C856D54413D0AD793AD5D5141000000B0846D544100000090AB5D51417B14AEB7846D5441E17A143EAB5D5141D7A3703D856D5441B81E85ABAA5D51413D0AD753856D54418FC2F5D8A95D5141EC51B81E846D5441333333F3A85D5141E17A144E846D54411F85EB71A85D514114AE4701856D5441295C8FE2A75D5141AE47E1CA846D54419A999929A75D5141F6285C9F846D544148E17AC4A55D514148E17AD4846D5441E17A145EA55D5141713D0AD7856D5441CDCCCC8CA45D5141713D0A17856D5441D7A370BDA35D5141295C8FE2846D5441B81E855BA25D514152B81E05856D5441A4703D4AA05D5141D7A3709D846D54410AD7A3309E5D51410AD7A3E0846D5441CDCCCCCC995D51413D0AD703856D5441CDCCCC6C955D51415C8FC205856D5441B81E85BB8E5D5141C3F5282C856D54413D0AD7738D5D51417B14AE27866D5441713D0AA78C5D514152B81E05876D54410AD7A3A0875D514148E17AE4876D5441CDCCCCDC7E5D514114AE47F1896D54410AD7A3F07D5D51418FC2F5188E6D54411F85EBA17C5D5141F6285C4F956D5441B81E855B7A5D514152B81E55A06D544185EB51D8785D514148E17AD4A86D54415C8FC2B5785D51415C8FC295A96D5441
+</a>
+
+<b>
+01060000000100000001030000000100000029000000641957F0AD5D5141EB501F68896D5441BBC23029A75D514105D9840F896D5441F6285C6F985D5141EC51B83E886D544166666686905D5141713D0AB7886D544155B80E56875D5141ADAB0F4A896D54413A0A677F865D5141127E9A84896D5441BA04F192825D51412B1E23D28A6D544192A562887F5D51418EE8A7D58B6D5441C5082C437F5D5141F3B54A2B8C6D5441295C8FF27B5D5141EC51B86E9E6D5441A7A750A37B5D514171E8997BA06D5441C3F528AC7A5D51410AD7A3E0A66D54419F56A5B17A5D5141FBE140DDA66D54413D0AD7F37C5D514185EB5178A56D5441713D0AE77F5D5141C3F528DCA36D5441E17A141E835D51413D0AD773A26D544148E17A14885D5141295C8F82A06D5441666666D68C5D5141F6285C7F9E6D54419A9999B9905D5141CDCCCC7C9C6D5441A4703D8A935D514148E17A149B6D5441AE47E11A995D5141AE47E1AA986D5441A4703DCA9C5D5141295C8F42976D5441CBA97384A45D514131D3449E956D544191B53AB9A85D5141C25EB0CC946D544150760653AA5D514170551E6B946D5441F29685A8AB5D5141244C8C09946D54411D3F86DDAB5D5141EF6F20E2936D5441B7B704FEAC5D514114A77694936D5441A5181DDCAE5D5141B4C690C7926D54410C399C31B05D5141B886F73E926D5441208DBE9FB35D514165BC9943906D544105571C9BB55D514100D321158F6D5441FC72D2BFB65D514149F704798E6D54410E3D30BBB85D514100D2BCF28C6D54412E7A135EB85D514171E788BE8A6D5441EA97BE34B85D51418F13B1DB896D54411ABE9B90B75D514195B9D5D4896D5441452D0723B15D5141EC8F958F896D544123AAB468B05D51416846BE87896D5441920FB7F7AE5D514164EDE57D896D5441641957F0AD5D5141EB501F68896D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>542277 - 2926261
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+010600000001000000010300000001000000130000003D0AD7933D41514152B81E454AFE5441000000A03B415141F6285CAF53FE54418FC2F5983B415141AE47E10A56FE5441C3F5281C3C4151419A99998958FE544148E17A943D4151411F85EB215AFE544152B81E8540415141333333635BFE5441000000004741514114AE47F15CFE5441CDCCCC9C494151417B14AE6737FE5441666666864C415141E17A148E0DFE544185EB51384B415141713D0AD70BFE5441D7A3705D47415141D7A370AD0AFE5441D7A3701D374151411F85EB110AFE5441E17A142E31415141C3F528BC0AFE5441CDCCCC7C2E4151417B14AE7731FE5441D7A3701D2D4151416666663645FE5441713D0A273341514185EB517845FE54415C8FC2553D4151413D0AD74346FE54413D0AD7A33E41514185EB519847FE54413D0AD7933D41514152B81E454AFE5441
+</a>
+
+<b>
+01060000000100000001030000000100000011000000CE194FD83741514140F1E7180AFE5441D77EDB08344151419862F38945FE54415C8FC2553D4151413D0AD74346FE54413D0AD7A33E41514185EB519847FE54413D0AD7933D41514152B81E454AFE5441000000A03B415141F6285CAF53FE54418FC2F5983B415141AE47E10A56FE5441C3F5281C3C4151419A99998958FE544148E17A943D4151411F85EB215AFE544152B81E8540415141333333635BFE5441000000004741514114AE47F15CFE5441CDCCCC9C494151417B14AE6737FE5441666666864C415141E17A148E0DFE544185EB51384B415141713D0AD70BFE5441D7A3705D47415141D7A370AD0AFE5441A9E1571938415141C959561B0AFE5441CE194FD83741514140F1E7180AFE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>546469 - 1459050
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -50 </desc>
+<a>
+0106000000010000000103000000010000000F000000333333432EF35041AE47E12A7E41554152B81E6523F35041333333736C415541A4703DAA1DF3504148E17AE470415541E17A148E1BF350419A99996971415541D7A370AD13F35041F6285C3F78415541666666F60EF35041713D0AF77C415541F6285C2F0DF3504185EB51A87E415541295C8FE21BF3504152B81EF58C415541E17A143E1FF35041C3F5285C8A41554185EB51D82CF35041EC51B8EE9A415541B81E852B32F350419A9999E996415541E17A141E33F35041295C8F22964155415C8FC2853AF350417B14AEC790415541B81E85DB33F350410000007086415541333333432EF35041AE47E12A7E415541
+</a>
+
+<b>
+01060000000100000001030000000100000012000000E17A141E33F35041295C8F22964155415C8FC2853AF350417B14AEC790415541B81E85DB33F350410000007086415541333333432EF35041AE47E12A7E41554152B81E6523F35041333333736C415541A4703DAA1DF3504148E17AE470415541E17A148E1BF350419A99996971415541D7A370AD13F35041F6285C3F78415541666666F60EF35041713D0AF77C41554194410F700DF350419CE40A817E4155413B95136B18F350411524C99589415541E461E62919F35041BDAA6A4F8A415541E1041C421CF35041AECE008C8D415541DC8C35A91FF35041B314AEDE8A415541EF0EB6BD1FF35041319B1ACE8A41554185EB51D82CF35041EC51B8EE9A415541B81E852B32F350419A9999E996415541E17A141E33F35041295C8F2296415541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>546469 - 1459053
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -52 </desc>
+<a>
+0106000000010000000103000000010000000F000000333333432EF35041AE47E12A7E41554152B81E6523F35041333333736C415541A4703DAA1DF3504148E17AE470415541E17A148E1BF350419A99996971415541D7A370AD13F35041F6285C3F78415541666666F60EF35041713D0AF77C415541F6285C2F0DF3504185EB51A87E415541295C8FE21BF3504152B81EF58C415541E17A143E1FF35041C3F5285C8A41554185EB51D82CF35041EC51B8EE9A415541B81E852B32F350419A9999E996415541E17A141E33F35041295C8F22964155415C8FC2853AF350417B14AEC790415541B81E85DB33F350410000007086415541333333432EF35041AE47E12A7E415541
+</a>
+
+<b>
+0106000000010000000103000000010000003700000052B81E6523F35041333333736C41554152B81E451CF35041EC51B8CE61415541713D0A1717F3504185EB51A85A415541B81E85DB13F350411F85EBC1564155410000002012F35041C3F528DC57415541D7A3708D0CF35041CDCCCC2C54415541713D0AF704F35041666666365F415541333333F302F35041295C8FC2664155417B14AE27FBF25041713D0A677141554133333373F7F2504114AE47317541554100000030F5F250417B14AEA77741554152B81EF5F5F2504152B81EF582415541AE47E14AF7F25041F6285C6F9041554148E17A64F6F25041295C8F42954155410AD7A330F2F25041000000109D415541713D0AE7EBF25041AE47E1BAA7415541E17A14FEE1F250417B14AEA7B84155411F85EB31DEF250413D0AD783BC415541EC51B86ED9F25041C3F528CCBF415541C3F5280CD9F25041AE47E1CAC1415541A4703D7AD9F2504133333303C44155417B14AE77D8F250419A999919C84155418FC2F5B8D7F2504148E17A24C9415541D7A370BDDDF250419A9999C9D04155415C8FC215E3F2504152B81EE5D8415541F6285C4FE4F25041713D0A77DD4155413D0AD7F3E4F25041B81E853BE04155410AD7A340E5F250415C8FC235E7415541333333B3E7F25041F6285CFFE441554114AE47F1EFF250419A9999B9DE415541295C8FE2F0F250413D0AD733DE4155411F85EB51FEF25041C3F528ECD24155411F85EBA10AF35041C3F528FCC641554114AE47210DF35041B81E85ABC4415541CDCCCC5C1AF35041A4703D0AB94155418FC2F5282AF35041D7A3707DAB41554185EB51C82AF3504114AE47E1AA41554185EB51C839F350418FC2F5A89E415541713D0A773FF35041CDCCCCCC9A415541713D0A8740F3504114AE4781994155418FC2F5783AF35041000000C09141554185EB51A833F35041333333D396415541E17A141E33F35041295C8F2296415541B81E852B32F350419A9999E99641554185EB51D82CF35041EC51B8EE9A415541AEACBDAA1FF3504172FD12E18A415541E1041C421CF35041AECE008C8D415541E461E62919F35041BDAA6A4F8A4155413B95136B18F350411524C9958941554194410F700DF350419CE40A817E415541666666F60EF35041713D0AF77C415541D7A370AD13F35041F6285C3F78415541E17A148E1BF350419A99996971415541A4703DAA1DF3504148E17AE47041554152B81E6523F35041333333736C415541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>546469 - 3466023
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -50 </desc>
+<a>
+0106000000010000000103000000010000000F000000333333432EF35041AE47E12A7E41554152B81E6523F35041333333736C415541A4703DAA1DF3504148E17AE470415541E17A148E1BF350419A99996971415541D7A370AD13F35041F6285C3F78415541666666F60EF35041713D0AF77C415541F6285C2F0DF3504185EB51A87E415541295C8FE21BF3504152B81EF58C415541E17A143E1FF35041C3F5285C8A41554185EB51D82CF35041EC51B8EE9A415541B81E852B32F350419A9999E996415541E17A141E33F35041295C8F22964155415C8FC2853AF350417B14AEC790415541B81E85DB33F350410000007086415541333333432EF35041AE47E12A7E415541
+</a>
+
+<b>
+01060000000100000001030000000100000012000000E17A141E33F35041295C8F22964155415C8FC2853AF350417B14AEC790415541B81E85DB33F350410000007086415541333333432EF35041AE47E12A7E41554152B81E6523F35041333333736C415541A4703DAA1DF3504148E17AE470415541E17A148E1BF350419A99996971415541D7A370AD13F35041F6285C3F78415541666666F60EF35041713D0AF77C41554194410F700DF350419CE40A817E4155413B95136B18F350411524C99589415541E461E62919F35041BDAA6A4F8A415541E1041C421CF35041AECE008C8D415541DC8C35A91FF35041B314AEDE8A415541EF0EB6BD1FF35041319B1ACE8A41554185EB51D82CF35041EC51B8EE9A415541B81E852B32F350419A9999E996415541E17A141E33F35041295C8F2296415541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>546469 - 3467213
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -52 </desc>
+<a>
+0106000000010000000103000000010000000F000000333333432EF35041AE47E12A7E41554152B81E6523F35041333333736C415541A4703DAA1DF3504148E17AE470415541E17A148E1BF350419A99996971415541D7A370AD13F35041F6285C3F78415541666666F60EF35041713D0AF77C415541F6285C2F0DF3504185EB51A87E415541295C8FE21BF3504152B81EF58C415541E17A143E1FF35041C3F5285C8A41554185EB51D82CF35041EC51B8EE9A415541B81E852B32F350419A9999E996415541E17A141E33F35041295C8F22964155415C8FC2853AF350417B14AEC790415541B81E85DB33F350410000007086415541333333432EF35041AE47E12A7E415541
+</a>
+
+<b>
+0106000000010000000103000000010000003700000052B81E6523F35041333333736C41554152B81E451CF35041EC51B8CE61415541713D0A1717F3504185EB51A85A415541B81E85DB13F350411F85EBC1564155410000002012F35041C3F528DC57415541D7A3708D0CF35041CDCCCC2C54415541713D0AF704F35041666666365F415541333333F302F35041295C8FC2664155417B14AE27FBF25041713D0A677141554133333373F7F2504114AE47317541554100000030F5F250417B14AEA77741554152B81EF5F5F2504152B81EF582415541AE47E14AF7F25041F6285C6F9041554148E17A64F6F25041295C8F42954155410AD7A330F2F25041000000109D415541713D0AE7EBF25041AE47E1BAA7415541E17A14FEE1F250417B14AEA7B84155411F85EB31DEF250413D0AD783BC415541EC51B86ED9F25041C3F528CCBF415541C3F5280CD9F25041AE47E1CAC1415541A4703D7AD9F2504133333303C44155417B14AE77D8F250419A999919C84155418FC2F5B8D7F2504148E17A24C9415541D7A370BDDDF250419A9999C9D04155415C8FC215E3F2504152B81EE5D8415541F6285C4FE4F25041713D0A77DD4155413D0AD7F3E4F25041B81E853BE04155410AD7A340E5F250415C8FC235E7415541333333B3E7F25041F6285CFFE441554114AE47F1EFF250419A9999B9DE415541295C8FE2F0F250413D0AD733DE4155411F85EB51FEF25041C3F528ECD24155411F85EBA10AF35041C3F528FCC641554114AE47210DF35041B81E85ABC4415541CDCCCC5C1AF35041A4703D0AB94155418FC2F5282AF35041D7A3707DAB41554185EB51C82AF3504114AE47E1AA41554185EB51C839F350418FC2F5A89E415541713D0A773FF35041CDCCCCCC9A415541713D0A8740F3504114AE4781994155418FC2F5783AF35041000000C09141554185EB51A833F35041333333D396415541E17A141E33F35041295C8F2296415541B81E852B32F350419A9999E99641554185EB51D82CF35041EC51B8EE9A415541AEACBDAA1FF3504172FD12E18A415541E1041C421CF35041AECE008C8D415541E461E62919F35041BDAA6A4F8A4155413B95136B18F350411524C9958941554194410F700DF350419CE40A817E415541666666F60EF35041713D0AF77C415541D7A370AD13F35041F6285C3F78415541E17A148E1BF350419A99996971415541A4703DAA1DF3504148E17AE47041554152B81E6523F35041333333736C415541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>546931 - 3128298
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000001100000085EB5198BA005141C3F528CC115255419A999909BE005141B81E851B1352554114AE4791C2005141AE47E19A14525541F6285CDFC60051416666660616525541CDCCCCFCCA005141295C8F4217525541AE47E11ACF005141F6285C7F18525541C3F5287CD20051418FC2F5A819525541D7A3701DD5005141713D0AA71352554114AE4731CF005141C3F5286C125255418FC2F598CA005141295C8F2211525541000000B0C40051413D0AD7130F5255419A9999C9BB005141000000C00B52554185EB5178B30051416666661609525541333333C3B10051413D0AD7D30D525541EC51B84EB40051410AD7A3100F5255413D0AD713B7005141000000601052554185EB5198BA005141C3F528CC11525541
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000356146D6B1005141EB63E39E0D5255416CDE2251B6005141AC946DF30F525541955DF6BABC00514148FA1DAB12525541B5623C46C70051419F5D9925165255410A1F1289D20051414DCE848B19525541F2108C0CD5005141C7D8A0CD13525541EA179951CF0051412834DF72125255412F2A312DC80051418475CB4A105255419F6BD1E7C2005141FDC948690E5255415AA51430BF005141BBC173050D5255413303F083BB0051418352B3A90B5255417ADA609EB70051416DA35F6A0A525541B59D9E7DB300514119A94A1A09525541356146D6B1005141EB63E39E0D525541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>546931 - 3511621
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000001100000085EB5198BA005141C3F528CC115255419A999909BE005141B81E851B1352554114AE4791C2005141AE47E19A14525541F6285CDFC60051416666660616525541CDCCCCFCCA005141295C8F4217525541AE47E11ACF005141F6285C7F18525541C3F5287CD20051418FC2F5A819525541D7A3701DD5005141713D0AA71352554114AE4731CF005141C3F5286C125255418FC2F598CA005141295C8F2211525541000000B0C40051413D0AD7130F5255419A9999C9BB005141000000C00B52554185EB5178B30051416666661609525541333333C3B10051413D0AD7D30D525541EC51B84EB40051410AD7A3100F5255413D0AD713B7005141000000601052554185EB5198BA005141C3F528CC11525541
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000356146D6B1005141EB63E39E0D5255416CDE2251B6005141AC946DF30F525541955DF6BABC00514148FA1DAB12525541B5623C46C70051419F5D9925165255410A1F1289D20051414DCE848B19525541F2108C0CD5005141C7D8A0CD13525541EA179951CF0051412834DF72125255412F2A312DC80051418475CB4A105255419F6BD1E7C2005141FDC948690E5255415AA51430BF005141BBC173050D5255413303F083BB0051418352B3A90B5255417ADA609EB70051416DA35F6A0A525541B59D9E7DB300514119A94A1A09525541356146D6B1005141EB63E39E0D525541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>548701 - 248871
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000200000001030000000100000010000000A4703D2A4D0C5141CDCCCC0CA72455415C8FC285510C5141C3F528BCAE2455417B14AED7510C514133333343AF24554185EB51085A0C5141CDCCCC1CBD245541713D0AE75B0C51418FC2F508BC245541F6285CFF610C51417B14AE77B924554185EB5198640C514166666646B92455410AD7A300670C5141EC51B84EB924554114AE47016C0C51410AD7A3F0B52455415C8FC2F56D0C5141295C8F42B5245541CDCCCCBC690C5141713D0A57AC245541D7A3700D660C5141000000B0A42455418FC2F568650C51418FC2F578A324554166666686620C514148E17A749D245541713D0AD75E0C51419A9999F995245541A4703D2A4D0C5141CDCCCC0CA7245541010300000001000000140000007B14AE073C0C5141A4703DFA6B245541D7A3706D380C5141F6285C2F6F245541C3F5287C340C514100000040722455419A999959300C5141333333F37424554114AE47D1320C51411F85EB017924554148E17AB4360C51415C8FC2557F2455418FC2F5383A0C5141295C8F2285245541B81E857B3E0C514185EB51D88C245541C3F528BC420C51415C8FC2A594245541C3F528CC4C0C514166666666A62455415C8FC2855E0C514152B81E5595245541EC51B88E5D0C514100000060932455419A9999195B0C514114AE47418E2455410AD7A340570C514114AE47B181245541CDCCCC3C4F0C514114AE47F17124554148E17A444D0C5141333333D36C245541333333934A0C514185EB512869245541B81E851B480C514114AE471166245541A4703DCA450C514185EB51F8622455417B14AE073C0C5141A4703DFA6B245541
+</a>
+
+<b>
+010600000001000000010300000001000000720000003B586DB1290C51411440CCB577245541B864AC001F0C51415376298F80245541123731531E0C51411ECC503381245541A387185C1E0C514160AFDE368124554191EDB76F1E0C514142FEB33E812455419A230C7A1E0C5141928BD34281245541DE9F88F91E0C5141D2D1B7758124554152B81E851F0C5141D7A370AD812455412AC97E0B220C51411BDCDDC7832455413D0AD733230C5141EC51B8BE84245541D7A3700D220C51410AD7A3D087245541AE47E16A1B0C51419A9999D98B245541333333A31F0C5141CDCCCCEC94245541666666F6210C5141C3F528EC99245541AE47E16A290C51413D0AD7F3A9245541EC51B8BE2A0C5141000000B0AC245541E17A14FE300C51411F85EB01BA24554114AE4701260C51419A999999BC2455419A999939230C51413D0AD7F3B6245541333333E31D0C5141F6285CDFAC245541B81E853B1C0C5141D7A370DDA9245541ADA1F1B41B0C514181FFEF00AA2455415C8FC235FB0B5141AE47E1DAB0245541C9EFF3FEF90B51413A20A7D1AF245541B01056EDF60B5141861C784BB52455419C637412F10B5141A02C9CD6C0245541FD5559FBED0B51411B3DA90BC724554165C63618F00B51417E5A002AC824554174B9C54FF00B51412D56853CC8245541707E0251F00B51410BDA1148C8245541EDE527C5F00B5141D5108F85C824554156F24EA9F00B5141B2F77F3ECA2455418052CDA9F00B5141ED3FCC84CB245541E37214AAF00B5141DF186487CB2455411F8E4528F10B5141097CB04BCC2455419BFD22A4F20B5141D53F6B8ECC24554121509BF0F30B5141BAF2738FCD245541B2C47444F40B51415E3196C4CD2455419A9999E9F60B514148E17A64CD245541A4703DFAF90B51415C8FC245CD24554129F0374FFE0B5141BE5AA8E7CC245541543C8F75000C514141C7B7B1CC2455413978E2D4010C51413CD1D171CC245541CC8E24CF030C51414AE14E05CC245541479F127C040C51417B9368DDCB2455410AD7A3E0070C514185EB5108CB245541EC51B8EE080C51413D0AD7C3CA2455413D0AD7330A0C51419A999999CA2455417B14AE870C0C514114AE47B1CA245541A4703D3A0F0C514133333393CA24554114AE47D1110C5141D7A3709DCA24554114AE47F1150C5141F6285C6FCA245541AE47E1CA170C51411F85EB51CA245541D7A370CD190C514148E17A34CA245541EB76D3631A0C51415148178BC9245541C516DDB81B0C514101EBCD21C92455410D0B0BC41B0C51412F383A15C92455414F7AE1B41C0C5141B82400D4C8245541FA9ECBBC1D0C514113128682C8245541081B4136200C5141469CCADFC72455413319AFB3220C5141A1CCD06CC7245541250F5D26250C5141EA0262EEC6245541AC638B6A260C51419FE06A75C6245541182F4E27280C51413BC8C8DCC52455415D4A40D3290C51416EBFBC52C52455410FEF70EB2A0C51417B7A95DAC4245541AE12076A2C0C51410E1F8536C4245541D097034F2E0C5141792E63B9C3245541BB9FAEA6300C5141C20CF450C32455410333B45A320C51416F56920FC32455416A27F54A350C5141536A6552C22455412CEA3853360C5141B84F7521C2245541AC80AFA4370C51417733A1E2C12455415AB1A8BE380C514128141AAEC1245541CBE5947D390C5141B11A898AC12455410AD7A3203A0C5141C3F5286CC12455418AAF768E3A0C5141BB294615C3245541063557DF3B0C5141683A623FC3245541CE77C7873C0C5141257DD2E7C3245541D5FC5830400C51419CEEFCF8C42455413D65F5B3400C5141AA8841DEC4245541BE40BBE2410C5141D495F6DFC3245541E17A143E450C5141713D0AE7C224554180F8165B480C51410420EC45C32455417622FDA4490C5141FFD4A904C4245541270EEB514A0C514162DEF941C4245541D8654AF64A0C5141BDBD9E4EC4245541049BD3B94B0C5141AC4BA95DC424554108A62F0B4C0C5141F3F8F55BC4245541E83B31554C0C514131A76622C42455412DF398214D0C5141AFB16B83C3245541A76066F74D0C514156080EC1C22455417CA5A2EA4E0C5141C83409A2C124554136798864500C5141B1D614FAC0245541E4337892520C5141DB822D70C12455418C1D01E0540C514134A465C4C1245541D38FE1D3550C5141344001EFC024554108A3E130560C5141652FA19DC02455415384089C570C5141D1754084BE24554101272E395A0C514107E5C970BD245541FA4A28E2590C5141FDAB9FDCBC2455417B14AED7510C514133333343AF2455415C8FC285510C5141C3F528BCAE245541A4703D2A4D0C5141CDCCCC0CA7245541C3F528CC4C0C514166666666A6245541C3F528BC420C51415C8FC2A594245541B81E857B3E0C514185EB51D88C2455419BD15CD33A0C5141EAC4013A862455413C523116320C5141902447CE77245541F23B69E5310C51415B05107E772455419A999959300C5141333333F374245541445053BD2D0C5141EAE52D11762455418FC2F5482B0C5141E17A141E772455413B586DB1290C51411440CCB577245541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>548701 - 382182
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000200000001030000000100000010000000A4703D2A4D0C5141CDCCCC0CA72455415C8FC285510C5141C3F528BCAE2455417B14AED7510C514133333343AF24554185EB51085A0C5141CDCCCC1CBD245541713D0AE75B0C51418FC2F508BC245541F6285CFF610C51417B14AE77B924554185EB5198640C514166666646B92455410AD7A300670C5141EC51B84EB924554114AE47016C0C51410AD7A3F0B52455415C8FC2F56D0C5141295C8F42B5245541CDCCCCBC690C5141713D0A57AC245541D7A3700D660C5141000000B0A42455418FC2F568650C51418FC2F578A324554166666686620C514148E17A749D245541713D0AD75E0C51419A9999F995245541A4703D2A4D0C5141CDCCCC0CA7245541010300000001000000140000007B14AE073C0C5141A4703DFA6B245541D7A3706D380C5141F6285C2F6F245541C3F5287C340C514100000040722455419A999959300C5141333333F37424554114AE47D1320C51411F85EB017924554148E17AB4360C51415C8FC2557F2455418FC2F5383A0C5141295C8F2285245541B81E857B3E0C514185EB51D88C245541C3F528BC420C51415C8FC2A594245541C3F528CC4C0C514166666666A62455415C8FC2855E0C514152B81E5595245541EC51B88E5D0C514100000060932455419A9999195B0C514114AE47418E2455410AD7A340570C514114AE47B181245541CDCCCC3C4F0C514114AE47F17124554148E17A444D0C5141333333D36C245541333333934A0C514185EB512869245541B81E851B480C514114AE471166245541A4703DCA450C514185EB51F8622455417B14AE073C0C5141A4703DFA6B245541
+</a>
+
+<b>
+010600000001000000010300000001000000720000003B586DB1290C51411440CCB577245541B864AC001F0C51415376298F80245541123731531E0C51411ECC503381245541A387185C1E0C514160AFDE368124554191EDB76F1E0C514142FEB33E812455419A230C7A1E0C5141928BD34281245541DE9F88F91E0C5141D2D1B7758124554152B81E851F0C5141D7A370AD812455412AC97E0B220C51411BDCDDC7832455413D0AD733230C5141EC51B8BE84245541D7A3700D220C51410AD7A3D087245541AE47E16A1B0C51419A9999D98B245541333333A31F0C5141CDCCCCEC94245541666666F6210C5141C3F528EC99245541AE47E16A290C51413D0AD7F3A9245541EC51B8BE2A0C5141000000B0AC245541E17A14FE300C51411F85EB01BA24554114AE4701260C51419A999999BC2455419A999939230C51413D0AD7F3B6245541333333E31D0C5141F6285CDFAC245541B81E853B1C0C5141D7A370DDA9245541ADA1F1B41B0C514181FFEF00AA2455415C8FC235FB0B5141AE47E1DAB0245541C9EFF3FEF90B51413A20A7D1AF245541B01056EDF60B5141861C784BB52455419C637412F10B5141A02C9CD6C0245541FD5559FBED0B51411B3DA90BC724554165C63618F00B51417E5A002AC824554174B9C54FF00B51412D56853CC8245541707E0251F00B51410BDA1148C8245541EDE527C5F00B5141D5108F85C824554156F24EA9F00B5141B2F77F3ECA2455418052CDA9F00B5141ED3FCC84CB245541E37214AAF00B5141DF186487CB2455411F8E4528F10B5141097CB04BCC2455419BFD22A4F20B5141D53F6B8ECC24554121509BF0F30B5141BAF2738FCD245541B2C47444F40B51415E3196C4CD2455419A9999E9F60B514148E17A64CD245541A4703DFAF90B51415C8FC245CD24554129F0374FFE0B5141BE5AA8E7CC245541543C8F75000C514141C7B7B1CC2455413978E2D4010C51413CD1D171CC245541CC8E24CF030C51414AE14E05CC245541479F127C040C51417B9368DDCB2455410AD7A3E0070C514185EB5108CB245541EC51B8EE080C51413D0AD7C3CA2455413D0AD7330A0C51419A999999CA2455417B14AE870C0C514114AE47B1CA245541A4703D3A0F0C514133333393CA24554114AE47D1110C5141D7A3709DCA24554114AE47F1150C5141F6285C6FCA245541AE47E1CA170C51411F85EB51CA245541D7A370CD190C514148E17A34CA245541EB76D3631A0C51415148178BC9245541C516DDB81B0C514101EBCD21C92455410D0B0BC41B0C51412F383A15C92455414F7AE1B41C0C5141B82400D4C8245541FA9ECBBC1D0C514113128682C8245541081B4136200C5141469CCADFC72455413319AFB3220C5141A1CCD06CC7245541250F5D26250C5141EA0262EEC6245541AC638B6A260C51419FE06A75C6245541182F4E27280C51413BC8C8DCC52455415D4A40D3290C51416EBFBC52C52455410FEF70EB2A0C51417B7A95DAC4245541AE12076A2C0C51410E1F8536C4245541D097034F2E0C5141792E63B9C3245541BB9FAEA6300C5141C20CF450C32455410333B45A320C51416F56920FC32455416A27F54A350C5141536A6552C22455412CEA3853360C5141B84F7521C2245541AC80AFA4370C51417733A1E2C12455415AB1A8BE380C514128141AAEC1245541CBE5947D390C5141B11A898AC12455410AD7A3203A0C5141C3F5286CC12455418AAF768E3A0C5141BB294615C3245541063557DF3B0C5141683A623FC3245541CE77C7873C0C5141257DD2E7C3245541D5FC5830400C51419CEEFCF8C42455413D65F5B3400C5141AA8841DEC4245541BE40BBE2410C5141D495F6DFC3245541E17A143E450C5141713D0AE7C224554180F8165B480C51410420EC45C32455417622FDA4490C5141FFD4A904C4245541270EEB514A0C514162DEF941C4245541D8654AF64A0C5141BDBD9E4EC4245541049BD3B94B0C5141AC4BA95DC424554108A62F0B4C0C5141F3F8F55BC4245541E83B31554C0C514131A76622C42455412DF398214D0C5141AFB16B83C3245541A76066F74D0C514156080EC1C22455417CA5A2EA4E0C5141C83409A2C124554136798864500C5141B1D614FAC0245541E4337892520C5141DB822D70C12455418C1D01E0540C514134A465C4C1245541D38FE1D3550C5141344001EFC024554108A3E130560C5141652FA19DC02455415384089C570C5141D1754084BE24554101272E395A0C514107E5C970BD245541FA4A28E2590C5141FDAB9FDCBC2455417B14AED7510C514133333343AF2455415C8FC285510C5141C3F528BCAE245541A4703D2A4D0C5141CDCCCC0CA7245541C3F528CC4C0C514166666666A6245541C3F528BC420C51415C8FC2A594245541B81E857B3E0C514185EB51D88C2455419BD15CD33A0C5141EAC4013A862455413C523116320C5141902447CE77245541F23B69E5310C51415B05107E772455419A999959300C5141333333F374245541445053BD2D0C5141EAE52D11762455418FC2F5482B0C5141E17A141E772455413B586DB1290C51411440CCB577245541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>551868 - 1470839
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -41 </desc>
+<a>
+010600000001000000010300000001000000280000008FC2F508E8F65041333333639D215541713D0AF7E1F65041000000E0982155418FC2F518DDF6504114AE47E19F215541000000A0D6F65041295C8FB2AA2155413D0AD7F3CFF650413D0AD753B8215541295C8FC2D0F65041D7A3707DB82155415C8FC235D5F650417B14AE87B8215541713D0AD7DDF65041C3F5280CBD2155413D0AD773EBF65041E17A145EC3215541713D0A77F2F65041D7A3703DC621554148E17AF402F75041E17A143ECB215541713D0A3707F7504152B81E65CB215541666666A608F750419A999929D22155413D0AD7830EF7504148E17AB4D42155418FC2F57816F75041A4703D9AD8215541333333831EF75041713D0A47DD215541E17A147E20F75041D7A370FDDD215541E17A14BE20F750415C8FC2A5DB215541295C8F821FF75041000000C0DA215541C3F528CC1EF75041AE47E13ADA2155411F85EB011CF750410AD7A390D7215541666666B619F75041C3F5284CD3215541A4703DBA18F750417B14AED7CD2155419A9999D918F75041CDCCCCACC8215541000000E019F750415C8FC2E5C221554152B81E951CF7504152B81E45BB215541D7A3705D0DF7504166666616BB21554148E17A6406F75041C3F5289CB92155410AD7A3D0F8F65041C3F5285CB4215541713D0AD7F1F65041333333A3B52155417B14AE77ECF650418FC2F5D8B221554100000090E6F65041A4703DDAB72155410AD7A390D8F65041C3F5289CB8215541295C8F22DAF6504100000060B52155413D0AD7B3DDF650415C8FC285B0215541AE47E12AE4F650411F85EB21AA2155415C8FC205E9F650419A999919A72155411F85EBB1EFF65041B81E851BA42155410AD7A340E8F650419A9999299E2155418FC2F508E8F65041333333639D215541
+</a>
+
+<b>
+010600000001000000010300000001000000340000003D0AD7F3CFF650413D0AD753B821554123D55842D5F65041D3175683B8215541778BD98FD7F65041E6BEDBD5B9215541AD115457E8F6504147F98CFFC12155414BA45E94F0F650410724E852C52155419EFBD6D8F2F65041F546183BC6215541AF22AEF0FEF65041EC2A32EFC9215541A706C8A402F7504196566E11CB2155414DB5B82D07F7504190B7D35ECB215541666666A608F750419A999929D22155413D0AD7830EF7504148E17AB4D42155418FC2F57816F75041A4703D9AD8215541333333831EF75041713D0A47DD215541E17A147E20F75041D7A370FDDD215541E17A14BE20F750415C8FC2A5DB215541295C8F821FF75041000000C0DA2155411969CB151DF75041E6932798D8215541AB9240C71BF7504193738C23D7215541C9F9FAF71AF7504116A021A2D52155412556AF3419F75041E8E1C97DD0215541E89B8AD018F7504119DD2F53CE215541749DB6C418F750415E44E01DCC21554175E3D8D418F7504112294A75C9215541117FB23B19F75041E0D0DD83C6215541DA70C5D619F750419253C719C321554152B81E951CF7504152B81E45BB215541556C3A9F14F750416A16AE2CBB215541623DA0490EF75041B0863B19BB215541F18EE0E609F75041F4AB885ABA21554182901BE105F75041CEC45C69B92155411370DC0F04F75041734477B5B82155418B95754900F750411BC5C93FB7215541490B7D27FCF650419F18B4A6B5215541CC11EFD8F8F6504182F25D5FB4215541880D8CD5F4F6504131A2CF16B52155414CDAB90FF2F650419C56D198B52155415AFF258AECF6504160058DE2B22155410C3A5233E8F650413732D476B62155416D1D8863E6F65041E07FA5DCB7215541325BAD39DEF65041EC23BE4DB82155418207A726D8F65041D6F11D6DB9215541DCBF21ECD8F6504150706FCBB7215541BEAEED62DAF650417B3F7208B5215541C5E04FD7DDF650417211B362B02155412A92054DE4F65041B236980CAA215541BD61DD9AEFF650414C20DC25A42155410AD7A340E8F650419A9999299E2155418FC2F508E8F65041333333639D215541713D0AF7E1F65041000000E0982155418FC2F518DDF6504114AE47E19F215541000000A0D6F65041295C8FB2AA2155413D0AD7F3CFF650413D0AD753B8215541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>551868 - 3572536
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -41 </desc>
+<a>
+010600000001000000010300000001000000280000008FC2F508E8F65041333333639D215541713D0AF7E1F65041000000E0982155418FC2F518DDF6504114AE47E19F215541000000A0D6F65041295C8FB2AA2155413D0AD7F3CFF650413D0AD753B8215541295C8FC2D0F65041D7A3707DB82155415C8FC235D5F650417B14AE87B8215541713D0AD7DDF65041C3F5280CBD2155413D0AD773EBF65041E17A145EC3215541713D0A77F2F65041D7A3703DC621554148E17AF402F75041E17A143ECB215541713D0A3707F7504152B81E65CB215541666666A608F750419A999929D22155413D0AD7830EF7504148E17AB4D42155418FC2F57816F75041A4703D9AD8215541333333831EF75041713D0A47DD215541E17A147E20F75041D7A370FDDD215541E17A14BE20F750415C8FC2A5DB215541295C8F821FF75041000000C0DA215541C3F528CC1EF75041AE47E13ADA2155411F85EB011CF750410AD7A390D7215541666666B619F75041C3F5284CD3215541A4703DBA18F750417B14AED7CD2155419A9999D918F75041CDCCCCACC8215541000000E019F750415C8FC2E5C221554152B81E951CF7504152B81E45BB215541D7A3705D0DF7504166666616BB21554148E17A6406F75041C3F5289CB92155410AD7A3D0F8F65041C3F5285CB4215541713D0AD7F1F65041333333A3B52155417B14AE77ECF650418FC2F5D8B221554100000090E6F65041A4703DDAB72155410AD7A390D8F65041C3F5289CB8215541295C8F22DAF6504100000060B52155413D0AD7B3DDF650415C8FC285B0215541AE47E12AE4F650411F85EB21AA2155415C8FC205E9F650419A999919A72155411F85EBB1EFF65041B81E851BA42155410AD7A340E8F650419A9999299E2155418FC2F508E8F65041333333639D215541
+</a>
+
+<b>
+010600000001000000010300000001000000340000003D0AD7F3CFF650413D0AD753B821554123D55842D5F65041D3175683B8215541778BD98FD7F65041E6BEDBD5B9215541AD115457E8F6504147F98CFFC12155414BA45E94F0F650410724E852C52155419EFBD6D8F2F65041F546183BC6215541AF22AEF0FEF65041EC2A32EFC9215541A706C8A402F7504196566E11CB2155414DB5B82D07F7504190B7D35ECB215541666666A608F750419A999929D22155413D0AD7830EF7504148E17AB4D42155418FC2F57816F75041A4703D9AD8215541333333831EF75041713D0A47DD215541E17A147E20F75041D7A370FDDD215541E17A14BE20F750415C8FC2A5DB215541295C8F821FF75041000000C0DA2155411969CB151DF75041E6932798D8215541AB9240C71BF7504193738C23D7215541C9F9FAF71AF7504116A021A2D52155412556AF3419F75041E8E1C97DD0215541E89B8AD018F7504119DD2F53CE215541749DB6C418F750415E44E01DCC21554175E3D8D418F7504112294A75C9215541117FB23B19F75041E0D0DD83C6215541DA70C5D619F750419253C719C321554152B81E951CF7504152B81E45BB215541556C3A9F14F750416A16AE2CBB215541623DA0490EF75041B0863B19BB215541F18EE0E609F75041F4AB885ABA21554182901BE105F75041CEC45C69B92155411370DC0F04F75041734477B5B82155418B95754900F750411BC5C93FB7215541490B7D27FCF650419F18B4A6B5215541CC11EFD8F8F6504182F25D5FB4215541880D8CD5F4F6504131A2CF16B52155414CDAB90FF2F650419C56D198B52155415AFF258AECF6504160058DE2B22155410C3A5233E8F650413732D476B62155416D1D8863E6F65041E07FA5DCB7215541325BAD39DEF65041EC23BE4DB82155418207A726D8F65041D6F11D6DB9215541DCBF21ECD8F6504150706FCBB7215541BEAEED62DAF650417B3F7208B5215541C5E04FD7DDF650417211B362B02155412A92054DE4F65041B236980CAA215541BD61DD9AEFF650414C20DC25A42155410AD7A340E8F650419A9999299E2155418FC2F508E8F65041333333639D215541713D0AF7E1F65041000000E0982155418FC2F518DDF6504114AE47E19F215541000000A0D6F65041295C8FB2AA2155413D0AD7F3CFF650413D0AD753B8215541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>614349 - 614351
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000000F0000009A9999494BDB5041D7A3700D5F39544185EB51B84ADB5041666666E65F395441295C8F923CDB5041AE47E19A7639544148E17A442EDB5041EC51B88E8D3954415B3E44103EDB5041929F5E3B973954416A16DC183EDB504117C0492D9739544151D8AFE943DB5041067306B69A39544149816FF143DB5041D96573A99A39544152A93B6647DB504191615FC09C39544155EC722B65DB5041FB73E5966C39544162708F7C61DB50418E5222B86A39544131E7527D61DB50416220E5B66A3954413D0AD7135BDB5041713D0A7767395441CDCCCCDC51DB5041D7A3707D623954419A9999494BDB5041D7A3700D5F395441
+</a>
+
+<b>
+0106000000010000000103000000020000006200000000000040AADB504148E17A748A3954410AD7A3C0B0DB504114AE47E18539544148E17A84B5DB50416666663677395441CDCCCC8CB8DB5041EC51B87E6C39544152B81E35BADB50419A999969673954411F85EBC1BBDB50415C8FC24560395441AE47E1CABDDB5041AE47E1BA5739544114AE47D1BEDB5041295C8F6252395441333333A3BFDB504185EB51A84D39544114AE4781BCDB50413D0AD7434F3954413080EF77BADB5041103A31F94F395441ADC7C2B8B7DB5041C9CAD42C51395441D20854D5B5DB5041622DADB051395441E7B2FF99B3DB5041835B7860523954417491B832B1DB5041A489431053395441E96732F5A8DB5041A489431053395441B81E85CBA7DB5041333333B3553954411F85EB31A6DB50419A999999583954415C8FC205A4DB5041EC51B88E5C395441EC51B86EA1DB5041E17A147E61395441F6285C3F9FDB5041E17A146E6539544152B81E859EDB504114AE47C16639544152B81E159DDB5041A4703D3A693954417B14AE879CDB5041AE47E17A6A39544185EB51D89ADB5041000000906D395441CDCCCC1C99DB5041CDCCCCFC6F395441000000B096DB50419A99998972395441295C8F2292DB5041AE47E1AA763954418FC2F5F88FDB5041333333D378395441A4703D0A8FDB504152B81E457939544148E17A948CDB50418FC2F5087C39544148E17A248BDB50410AD7A3707B3954418FC2F5A889DB5041713D0A377B395441D7A3704D88DB5041295C8F027B395441C3F5283C86DB504152B81E257839544114AE47A183DB50419A999989743954417B14AE8783DB5041F6285C6F743954419A99991981DB5041F6285CEF713954415C8FC2D57EDB5041AE47E19A6F395441666666667EDB504185EB51286F395441666666867BDB5041666666266D395441F6285CCF78DB504114AE47416B395441AE47E1EA77DB5041C3F5285C6A39544148E17A5477DB504152B81EC569395441AE47E1CA75DB50419A99993968395441AE47E17A74DB5041AE47E18A673954419A99995971DB5041A4703DEA6539544185EB51E870DB5041F6285CAF653954410AD7A3C066DB5041713D0A475F39544152B81E7560DB5041E17A14AE603954419A9999495FDB5041A4703DDA5D3954418FC2F5085EDB5041A4703D8A5B395441F6285C8F59DB504152B81E055A39544148E17A9457DB50418FC2F508593954413D0AD7F350DB5041D7A370BD553954419A9999494BDB5041D7A3700D5F395441CDCCCCDC51DB5041D7A3707D623954413D0AD7135BDB5041713D0A7767395441C747FF8361DB5041A6CC10AC6A39544162708F7C61DB50418E5222B86A39544128919FF964DB50416734A1786C39544116C856F764DB5041DAD86F7C6C39544155EC722B65DB5041FB73E5966C39544196787E1D5CDB5041595DD83C7B395441081807A559DB5041F1A8F45A7F3954419809D87F53DB50416FF91B2D8939544152A93B6647DB504191615FC09C39544149816FF143DB5041D96573A99A39544151D8AFE943DB5041067306B69A3954416A16DC183EDB504117C0492D973954415B3E44103EDB5041929F5E3B9739544114AEE8FB3DDB50411FC9BA5C9739544148E17A442EDB5041EC51B88E8D395441CDCCCC8C2ADB50415C8FC28593395441666666962DDB5041C3F528CC95395441D7A370CD30DB5041B81E857B973954419A9999F94BDB5041713D0AB7A5395441000000404FDB5041295C8F42A639544152B81EC552DB504100000050A8395441666666F65ADB5041295C8F12AF395441CDCCCC9C5CDB5041E17A146EB03954411F85EB4164DB5041A4703D3AB6395441000000D065DB50413D0AD743B7395441333333536BDB5041666666F6BA39544148E17A146DDB504133333383BA39544114AE47917ADB5041AE47E1EAA439544185EB513888DB5041666666168F3954411F85EBE188DB5041713D0A078E3954415C8FC20588DB5041E17A141E8D39544148E17A7488DB50411F85EBF18B395441333333738ADB5041CDCCCC3C8E3954413333332391DB5041EC51B8AE83395441F6285C1F92DB5041B81E851B85395441295C8F2296DB50415C8FC2058A395441AE47E13A99DB5041B81E85FB8C395441EC51B84E9FDB504114AE4721923954415C8FC295A3DB50415C8FC2B58F39544100000040AADB504148E17A748A39544105000000A4703D1A65DB5041A4703D2AB3395441F6285CDF63DB50411F85EB81B43954410AD7A3C062DB5041CDCCCC9CB339544148E17AF463DB5041A4703D5AB2395441A4703D1A65DB5041A4703D2AB3395441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>556200 - 1553547
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -39 </desc>
+<a>
+01060000000100000001030000000100000014000000AE47E17A81C150410AD7A36048F35441EC51B86E81C15041EC51B89E49F35441000000307FC15041A4703DEA4CF354417B14AEC785C15041295C8F8254F35441AE47E13A8CC15041CDCCCC7C4DF3544148E17A3493C150411F85EB2146F35441713D0A9794C15041666666A644F35441E17A14BE97C15041EC51B8DE3EF3544148E17AE499C15041C3F5280C3BF354419A9999D99BC150416666664637F35441B81E85FB97C1504185EB51D836F35441F6285C0F93C15041CDCCCC2C36F35441A4703D1A91C15041AE47E19A36F35441666666868FC1504148E17A8438F35441E17A14CE8DC150418FC2F5B83DF35441333333C38EC150417B14AEC740F35441AE47E13A8CC150413333331343F35441B81E858B86C150416666667645F35441CDCCCCAC82C15041EC51B82E47F35441AE47E17A81C150410AD7A36048F35441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000A4703DA29BC150413D0AD7DB36F354413EA4380394C1504168F90FAA3AF3544110A7695B90C15041FC1D18983EF3544154E3A50391C1504146B6F3BD3EF35441FCA9F12A92C15041250681D540F354415A643B1F91C15041105839F441F35441A69BC42890C15041355EBA5942F35441CBA145AE8FC15041B4C8765E43F354417F6ABC248EC15041BA490C7243F3544139B4C8968DC15041BC74935042F35441A69BC4D08BC150416DE7FB7943F3544139B4C86E89C1504160E5D04A44F35441759318DC86C150416891ED2C45F354412DB29DEF83C15041022B87A646F35441022B87D681C15041F2D24D7A48F35441BA490C8A81C15041FA7E6ADC49F354417368918D7FC15041643BDF874CF3544188550F5580C150410154DD3B4EF354413E63B95C81C1504140979F6B4FF354418941604D82C15041F2D24DEA4FF3544146B6F39585C150415A643B1F54F35441D9CEF7438AC1504121B072D04FF3544154E3A5938DC15041B4C876E64BF35441CDCCCC4491C1504160E5D0A247F354415EBA497494C150418B6CE74B44F3544148E17A2C97C15041448B6C273FF35441A4703DA29BC150413D0AD7DB36F35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>556200 - 3474378
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -39 </desc>
+<a>
+01060000000100000001030000000100000014000000AE47E17A81C150410AD7A36048F35441EC51B86E81C15041EC51B89E49F35441000000307FC15041A4703DEA4CF354417B14AEC785C15041295C8F8254F35441AE47E13A8CC15041CDCCCC7C4DF3544148E17A3493C150411F85EB2146F35441713D0A9794C15041666666A644F35441E17A14BE97C15041EC51B8DE3EF3544148E17AE499C15041C3F5280C3BF354419A9999D99BC150416666664637F35441B81E85FB97C1504185EB51D836F35441F6285C0F93C15041CDCCCC2C36F35441A4703D1A91C15041AE47E19A36F35441666666868FC1504148E17A8438F35441E17A14CE8DC150418FC2F5B83DF35441333333C38EC150417B14AEC740F35441AE47E13A8CC150413333331343F35441B81E858B86C150416666667645F35441CDCCCCAC82C15041EC51B82E47F35441AE47E17A81C150410AD7A36048F35441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000A4703DA29BC150413D0AD7DB36F354413EA4380394C1504168F90FAA3AF3544110A7695B90C15041FC1D18983EF3544154E3A50391C1504146B6F3BD3EF35441FCA9F12A92C15041250681D540F354415A643B1F91C15041105839F441F35441A69BC42890C15041355EBA5942F35441CBA145AE8FC15041B4C8765E43F354417F6ABC248EC15041BA490C7243F3544139B4C8968DC15041BC74935042F35441A69BC4D08BC150416DE7FB7943F3544139B4C86E89C1504160E5D04A44F35441759318DC86C150416891ED2C45F354412DB29DEF83C15041022B87A646F35441022B87D681C15041F2D24D7A48F35441BA490C8A81C15041FA7E6ADC49F354417368918D7FC15041643BDF874CF3544188550F5580C150410154DD3B4EF354413E63B95C81C1504140979F6B4FF354418941604D82C15041F2D24DEA4FF3544146B6F39585C150415A643B1F54F35441D9CEF7438AC1504121B072D04FF3544154E3A5938DC15041B4C876E64BF35441CDCCCC4491C1504160E5D0A247F354415EBA497494C150418B6CE74B44F3544148E17A2C97C15041448B6C273FF35441A4703DA29BC150413D0AD7DB36F35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>557085 - 366199
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000005D0000005C8FC24572AC5041333333736DCB5441713D0A7776AC5041EC51B87E75CB5441666666A678AC5041F6285CAF79CB54411F85EB117BAC504148E17A547ECB5441295C8FB287AC50411F85EB1179CB5441666666B68FAC5041D7A3708D76CB54413D0AD7939BAC5041CDCCCC1C74CB5441CDCCCC1C9EAC5041EC51B8CE7ECB5441CDCCCC4CABAC5041000000007ECB544166666666AFAC5041000000407FCB544100000020BCAC50419A9999197DCB5441333333F3C1AC5041000000407BCB544100000070D0AC50417B14AE4774CB5441000000C0DEAC5041000000A06CCB544133333353ECAC5041333333B368CB544100000060F7AC5041000000A066CB5441295C8FA205AD5041C3F5284C65CB5441333333A306AD50411F85EBD161CB5441C3F5282C08AD504152B81EA55FCB5441333333730AAD504185EB51E85DCB5441295C8F421AAD50410AD7A3A052CB544148E17A1418AD50411F85EBD13FCB54415C8FC20518AD5041295C8F523FCB544185EB518816AD50418FC2F5E83DCB5441000000C013AD50419A9999993CCB5441A4703D9A10AD5041713D0A673ACB5441B81E858B0FAD5041333333D33ACB5441295C8FD20DAD5041A4703D1A3DCB5441C3F528EC0BAD5041E17A145E3DCB5441A4703D8A08AD5041A4703D0A3ACB5441F6285C5F06AD504148E17A2439CB5441295C8F2206AD50418FC2F5983DCB54413D0AD70305AD504148E17A643ECB544152B81E2503AD5041E17A148E3DCB54418FC2F56801AD504152B81E353ECB544133333393FDAC504152B81EE53FCB54413D0AD733FDAC504114AE478142CB5441F6285CFFFBAC5041CDCCCC9C44CB5441C3F528ECF9AC50417B14AE2745CB544185EB5118F6AC504152B81EB542CB5441F6285C2FF5AC5041666666E642CB54411F85EB91F3AC504152B81E2545CB544185EB5158F2AC5041295C8FC245CB5441F6285CAFEFAC50413D0AD77344CB544114AE4771ECAC50415C8FC23545CB5441CDCCCCCCE9AC50415C8FC27548CB5441C3F5280CE8AC504148E17A1449CB54413D0AD783E6AC50415C8FC2D547CB5441CDCCCC2CE5AC5041E17A14FE48CB5441E17A140EDFAC5041000000904BCB5441E17A149EDBAC50413D0AD7934DCB5441D7A3703DD7AC5041CDCCCC5C52CB5441C3F5283CD5AC504185EB517852CB54415C8FC2A5D5AC5041C3F528DC53CB54419A9999B9D7AC50411F85EBC156CB5441E17A14DED6AC5041A4703D6A58CB54411F85EB11D5AC5041F6285CBF58CB54417B14AE67D3AC50415C8FC2F559CB5441E17A141ED3AC5041713D0AE75CCB544152B81E95D5AC50415C8FC2155FCB544148E17A44D5AC50413D0AD78360CB54413D0AD753CEAC5041C3F5285C63CB544100000020CDAC5041AE47E18A62CB54417B14AED7CDAC5041B81E85EB5ECB54418FC2F578CEAC50417B14AE775DCB544152B81EC5CCAC504114AE47F15CCB54418FC2F518C8AC5041CDCCCCCC5ACB5441D7A370FDC4AC5041D7A3707D5ACB54419A9999F9C3AC5041B81E859B5CCB5441B81E856BC5AC5041666666965FCB5441C3F528ECC1AC50411F85EB7163CB5441F6285CBFBFAC5041666666A665CB54419A999929BBAC5041713D0A7765CB5441B81E85DBB5AC5041B81E851B64CB5441295C8FC2AFAC5041EC51B8BE63CB54413D0AD723ABAC5041713D0A7764CB54415C8FC245A5AC5041A4703DEA66CB5441F6285CEFA2AC50419A99998967CB54411F85EB319DAC5041EC51B87E68CB5441C3F5281C9AAC50416666662669CB54413333336398AC50413D0AD70364CB5441E17A14AE96AC504185EB512863CB54415C8FC26595AC50410000002065CB544185EB51B893AC50411F85EB2166CB54410AD7A38092AC5041E17A143E65CB5441F6285C8F90AC5041666666D662CB5441CDCCCCAC8EAC504114AE478160CB54411F85EB818BAC50418FC2F58861CB5441CDCCCC4C86AC504148E17A6465CB5441C3F5288C84AC50410AD7A32068CB544148E17AC481AC504114AE47A169CB5441E17A146E7DAC5041333333A368CB54415C8FC24572AC5041333333736DCB5441
+</a>
+
+<b>
+010600000001000000010300000001000000860000000DD6473397AC504139513D0375CB54413D0AD7939BAC5041CDCCCC1C74CB5441280BBA969BAC5041A79BFA2874CB5441E2BBBF969BAC5041719D122974CB54419BF67FA39BAC504162CF472174CB544159D48E999BAC50414C09F7F773CB5441487E2DCC9AAC5041A11B31EE6ECB54419D5EF13C9AAC5041708E44786BCB54412E447F0AC0AC50410C84D1E967CB544191FDA290CFAC5041468F698665CB544128CA9079D7AC50415FBE2D5F61CB544196CE8903DAAC5041BF35648353CB5441DD65F94ADEAC5041609A3B2150CB5441349E8CE4EFAC50414264C90F4ACB5441F73B355209AD50415D501D8441CB5441EFC1B33718AD504115C5CA0141CB544186E07A1418AD50411485EBD13FCB54415BB4FD0918AD50412CEA2A773FCB54415C8FC20518AD5041295C8F523FCB544185EB518816AD50418FC2F5E83DCB544141EA055C15AD50418390945B3DCB54413FFFFFBF13AD5041E59999993CCB5441E4703D9A10AD5041723E0A673ACB5441F2A583BA0FAD504149AD6CC03ACB5441B81E858B0FAD5041333333D33ACB5441295C8FD20DAD5041A4703D1A3DCB5441C3F528EC0BAD5041E17A145E3DCB5441A4703D8A08AD5041A4703D0A3ACB5441D94D7E4508AD5041A623C6ED39CB5441F6285C5F06AD504193E17A2439CB5441F525AA5806AD5041B42112A239CB5441BB36704E06AD50412C12E5613ACB544160E2B24806AD504196998ECD3ACB54416B5D8F2206AD5041F0C2F5983DCB544184BECD5005AD5041757AD92D3ECB54413D0AD70305AD504148E17A643ECB54411E78EDA203AD504132A06CC63DCB544147B81E2503AD5041787B148E3DCB5441AEC1F56801AD5041D3B81E353ECB54413BE6176B00AD504113F4D3A43ECB544133333393FDAC504152B81EE53FCB54413D0AD733FDAC504114AE478142CB5441F6285CFFFBAC5041CDCCCC9C44CB5441C3F528ECF9AC50417B14AE2745CB544185EB5118F6AC504152B81EB542CB5441F6285C2FF5AC5041666666E642CB5441C5134993F4AC50411AAD5BBF43CB5441D585EB91F3AC50411CB81E2545CB54414CBFAB76F3AC5041BFD7CC3245CB544185EB5158F2AC5041295C8FC245CB544115BA9EBBF1AC50417315897545CB5441A0285CAFEFAC50419E0AD77344CB5441FFAD4771ECAC50414890C23545CB544139C279B8EBAC5041FED60C1946CB5441CDCCCCCCE9AC50415C8FC27548CB54410511CE4CE8AC5041CA219CFD48CB5441D8F5280CE8AC50417DE17A1449CB54413D0AD783E6AC50415C8FC2D547CB5441CDCCCC2CE5AC5041E17A14FE48CB5441F77A140EDFAC50416B0000904BCB544134ECDC15DEAC5041F61380214CCB5441E17A149EDBAC50413D0AD7934DCB544144FC3FFFD8AC5041FD0D1E7150CB54414DA4703DD7AC504143CDCC5C52CB5441C6F5283CD5AC504190EB517852CB54415C8FC2A5D5AC5041C3F528DC53CB54419A9999B9D7AC50411F85EBC156CB544138B2FC56D7AC50415585888057CB5441E17A14DED6AC5041A4703D6A58CB54411F85EB11D5AC5041F6285CBF58CB54417B14AE67D3AC50415C8FC2F559CB54412704BE46D3AC504160E6DE465BCB54414E7C141ED3AC50419C3D0AE75CCB544133B91E95D5AC5041A78FC2155FCB54412D19366BD5AC5041AE1803D45FCB544148E17A44D5AC50413D0AD78360CB5441072F5305D5AC504116DDBA9D60CB54413D0AD753CEAC5041C3F5285C63CB544100000020CDAC5041AE47E18A62CB5441E312AED7CDAC5041D71D85EB5ECB54415A6F8A5FCEAC5041511449B25DCB54418FC2F578CEAC50417B14AE775DCB5441642ACAE0CCAC50419F00D0F95CCB5441E5B61EC5CCAC5041BFAD47F15CCB5441DCC3F518C8AC50417ACECCCC5ACB544158A470FDC4AC504138A4707D5ACB5441E3EC0A06C4AC50415CDF8F815CCB54419A9999F9C3AC5041B81E859B5CCB54419E0BA3BFC4AC50411CA3ED335ECB5441B81E856BC5AC5041666666965FCB5441C3F528ECC1AC50411F85EB7163CB5441F6285CBFBFAC5041666666A665CB54419A999929BBAC5041713D0A7765CB5441632CCDABB8AC50416F53D5D364CB5441A31E85DBB5AC5041AF1F851B64CB5441008968EEAFAC5041D6A953C163CB54418624CCD8AFAC504166C20AC063CB5441838920C7AFAC50410CD4FDBE63CB5441745C8FC2AFAC5041F651B8BE63CB5441680AD723ABAC50417B3D0A7764CB5441BD8FC245A5AC5041FA703DEA66CB544155D44952A4AC5041D936142B67CB5441F6285CEFA2AC50419A99998967CB54418AA8A70BA1AC50413AA949DA67CB54414B86EB319DAC50412353B87E68CB54418295BF739BAC5041F63A73DD68CB5441C3F5281C9AAC50416666662669CB54413333336398AC50413D0AD70364CB5441192A2F5E98AC5041C533520164CB5441567A14AE96AC5041C7EC512863CB54415E90C26595AC5041CC00002065CB544166C6F69C94AC504107EA989865CB544185EB51B893AC50411F85EB2166CB54410AD7A38092AC5041E17A143E65CB5441EB285C8F90AC50417C6666D662CB544177CCCCAC8EAC5041A0AE478160CB54414A34D49A8DAC504160875EDA60CB54411F85EB818BAC50418FC2F58861CB5441CDCCCC4C86AC504148E17A6465CB5441C3F5288C84AC50410AD7A32068CB5441546BF96882AC5041FD4B604869CB544188E17AC481AC5041A0AE47A169CB54416550D2337EAC5041C76872D068CB5441E17A146E7DAC5041333333A368CB5441DE75348277AC5041719C08316BCB5441928FC24572AC5041943333736DCB5441713D0A7776AC5041EC51B87E75CB54412FD7269477AC5041E8BA74A177CB5441466666A678AC5041E9275CAF79CB5441AA85EB117BAC5041C7E07A547ECB54410A5D8FB287AC5041A984EB1179CB54410E9D439C89AC5041B0C91A7878CB5441666666B68FAC5041D7A3708D76CB54410DD6473397AC504139513D0375CB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>558036 - 242061
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+01060000000B0000000103000000010000002A0000005C8FC26529F050411F85EB4168B8544114AE47012CF0504152B81E756BB85441713D0A9724F0504114AE47B174B854417B14AE072CF05041AE47E12A7BB85441295C8F922CF0504185EB511880B85441713D0A6731F050410000002075B854419A9999A933F05041AE47E1DA6FB8544185EB519834F050413D0AD7036BB85441C3F5284C34F05041EC51B80E66B85441000000A032F0504114AE47D15FB85441F6285C9F2FF050411F85EB115AB854413D0AD7832DF050418FC2F50857B854417B14AE672AF050413D0AD70355B85441A4703DBA26F050418FC2F54854B85441B81E85BB16F0504185EB516857B85441A4703DEAF5EF5041A4703D7A6AB854415C8FC2C5ECEF5041CDCCCC4C71B854417B14AEE7E2EF50410AD7A31076B854417B14AE67D3EF50419A9999B97BB854410AD7A330C0EF5041E17A144E7DB854417B14AE57B1EF50419A9999C97AB854413D0AD753B0EF504114AE47317CB85441000000A0B7EF5041CDCCCC8C81B85441D7A370CDB9EF50416666669684B8544100000040BAEF50415C8FC24588B85441A4703DFABBEF50417B14AE2788B85441AE47E1AAC6EF5041B81E850B85B854413D0AD7E3D3EF50413333334387B854410AD7A370DCEF5041AE47E1CA86B85441F6285C5FE5EF5041D7A3706D84B85441F6285C2FE2EF504148E17A347CB85441E17A140EE4EF50417B14AE677BB854418FC2F5A8EAEF50413333339378B85441D7A3707DF7EF5041C3F5282C73B85441E17A146E05F05041A4703DAA6CB85441333333C307F050419A9999396FB85441F6285C6F10F0504185EB51886CB85441295C8FD211F050413D0AD7A36FB85441CDCCCC9C1DF05041EC51B8FE6AB8544148E17A741BF0504148E17A8465B85441CDCCCC9C24F05041713D0AB762B854415C8FC26529F050411F85EB4168B854410103000000010000000C0000003D0AD7F3A3EF5041EC51B8DE8FB85441F6285C8FA9EF50415C8FC2258DB85441295C8F22B7EF50418FC2F5088AB854411F85EB11B9EF504148E17AE487B854413D0AD7A3B8EF50411F85EB0185B854413D0AD7C3B6EF504148E17A6482B85441B81E85ABACEF5041295C8FF27AB854419A999949A6EF50419A9999697FB85441000000B09CEF50418FC2F5288BB854415C8FC2F59BEF50411F85EB718CB854410AD7A3B0A4EF5041C3F528FC8BB854413D0AD7F3A3EF5041EC51B8DE8FB8544101030000000100000009000000295C8F229BEF50417B14AEE789B8544152B81E25A6EF5041000000E07AB85441295C8FF2A9EF50419A99997976B85441C3F528ACA9EF5041B81E85FB72B854410AD7A30096EF50418FC2F5687DB8544114AE470191EF5041D7A3700D80B854419A9999E98EEF50417B14AE2781B8544185EB51E898EF504114AE47518AB85441295C8F229BEF50417B14AEE789B854410103000000010000002F0000008FC2F598EDEF5041713D0AE7D1B85441E17A148EDCEF5041666666E6D2B8544152B81EF5DCEF504185EB51E8CBB85441E17A14FEEEEF504114AE47E1CAB85441E17A149E05F0504114AE4741C6B85441EC51B81E1AF050417B14AEF7C3B85441C3F528AC21F0504148E17AD4C2B854415C8FC29504F050415C8FC275C0B8544166666606F8EF50417B14AEB7BFB85441C3F528FCF6EF50419A9999F9BEB85441E17A149ED9EF50415C8FC2B5BCB85441000000D0D0EF5041E17A146EBDB85441B81E855BC6EF504185EB51E8C2B85441EC51B8AEBFEF5041713D0AD7CCB85441F6285C1FBDEF5041B81E85EBCCB85441B81E85CBBDEF5041713D0AD7D0B854410AD7A370C2EF504152B81E35D7B854411F85EB71C4EF5041AE47E12AD9B854411F85EB61C9EF504133333383DCB8544148E17A44D8EF504114AE4731E4B854419A999979E5EF504114AE4701EBB8544100000080F5EF504114AE47F1F1B85441713D0AF7F5EF5041CDCCCCBCF0B854410AD7A3D0F3EF5041713D0AD7EEB854418FC2F578EFEF504152B81E35EEB8544133333363EFEF50417B14AE97EBB854419A9999D9F6EF50410AD7A3D0ECB854411F85EB21FDEF504133333333F1B85441000000A0FCEF5041CDCCCC2CF6B854418FC2F5B8FDEF5041CDCCCCFCF7B85441666666F603F05041F6285CEFF6B854413333336308F05041A4703DBAFAB8544114AE47F105F05041EC51B8BEFFB85441EC51B83E03F050418FC2F588FFB8544152B81E9503F05041D7A3706DFDB854410AD7A31002F0504148E17A64FAB854410AD7A330FDEF50413D0AD763F9B8544185EB5138FEEF5041AE47E15AFBB85441B81E858B02F050415C8FC2350CB954415C8FC2C503F05041B81E859B0FB95441B81E85EB05F05041F6285C7F12B9544185EB51A815F05041713D0A9706B95441A4703DAA0BF05041EC51B80EF8B85441AE47E1CAFFEF5041000000E0ECB85441D7A370FDF7EF504166666636E7B85441E17A141EEFEF50417B14AEB7E2B854418FC2F598EDEF5041713D0AE7D1B854410103000000010000003100000014AE47E157F050415C8FC2E547B854410AD7A36058F05041AE47E1CA4AB854413D0AD72359F05041000000A058B854417B14AE6755F05041D7A370FD69B854418FC2F5C850F050411F85EB8177B85441B81E856B4EF05041C3F528FC76B85441CDCCCC4C4DF05041B81E85AB7AB854411F85EB5141F05041AE47E12A8CB8544114AE47C13AF05041F6285CFF93B854417B14AED736F05041B81E855B98B85441A4703D9A2DF0504100000050A4B85441295C8F122BF05041AE47E12AA6B85441F6285C2F28F05041A4703D7AA7B854417B14AE671CF050419A999959ABB854411F85EBD1F0EF504100000080B2B85441295C8FC2D9EF504152B81EF5B6B85441AE47E13AD0EF50413D0AD7E3BAB85441EC51B8AED9EF5041EC51B81EBAB85441295C8F52F7EF50410AD7A390BBB854415C8FC29504F0504152B81E05BDB8544152B81EE521F0504114AE4761BFB85441A4703DDA32F0504166666676C0B854413D0AD7F33FF05041D7A370EDC1B854417B14AEB74AF05041AE47E1EAC1B854410000003052F05041D7A3703DBCB85441295C8F0251F05041A4703D1AB9B8544185EB51084DF050410AD7A3D0B2B85441666666F64CF05041B81E85FBADB854417B14AE674FF05041F6285CCFA9B85441000000C058F05041AE47E11A9CB8544148E17AB45BF050415C8FC27598B85441B81E85DB67F05041333333338FB85441666666166FF05041B81E85AB8BB85441CDCCCCAC7AF0504185EB51B888B8544152B81E057FF0504148E17A0487B85441B81E85DB8BF05041EC51B87E7EB854410AD7A3808EF05041000000407BB854419A9999998DF0504148E17A3477B85441D7A3702D7BF05041D7A370FD7AB8544152B81EE565F05041C3F5287C7BB85441F6285C3F53F0504185EB513876B85441E17A14CE56F0504114AE47516CB85441713D0AD759F0504152B81ED55FB8544148E17AD45AF050413333334356B85441B81E857B55F05041000000D038B854419A99991950F05041CDCCCC6C3CB8544185EB51F84CF05041E17A149E3EB854413D0AD7D353F05041F6285C4F48B8544114AE47E157F050415C8FC2E547B8544101030000000100000017000000333333F3D9EF5041D7A370DD8DB854413D0AD713D7EF5041713D0A1788B85441713D0AD7D3EF504148E17A4488B85441333333B3C6EF5041295C8F0286B854413D0AD743BCEF5041D7A3701D89B85441A4703DCAB7EF50418FC2F5188BB8544148E17A14AAEF5041000000908EB854419A9999999FEF5041F6285C9F93B85441713D0A179BEF50415C8FC28599B8544152B81E2590EF5041A4703DAAA9B854413333337392EF5041E17A14EEAAB854413D0AD73399EF504114AE47A1AEB85441C3F5288C99EF50411F85EBD1AEB85441EC51B84E9EEF504152B81E65ABB8544148E17AF4ADEF50413D0AD783A0B854418FC2F5F8B2EF504185EB51E89EB854418FC2F558B8EF504148E17AD49BB854411F85EB01BAEF5041CDCCCCEC9BB85441D7A370EDBBEF5041E17A14BE9AB85441C3F5289CBCEF50419A99997998B85441C3F5284CC8EF5041CDCCCCDC92B85441C3F5287CCEEF50410000003092B85441333333F3D9EF5041D7A370DD8DB854410103000000020000001200000066666666DAEF5041CDCCCC9C65B8544166666676DFEF504114AE47D162B8544114AE4771EFEF5041B81E85FB55B85441B81E850BF0EF504148E17A0454B854411F85EBB1EBEF504152B81E9545B854415C8FC285E6EF504148E17A8434B854415C8FC2C5E3EF5041713D0A8738B8544114AE47A1DEEF5041A4703D1A2EB85441B81E85DBD8EF5041EC51B80E2FB85441E17A149ED9EF50413333336334B854415C8FC2C5D4EF50413333333337B85441E17A142ED2EF5041A4703D2A30B85441D7A3703DCFEF5041713D0AA730B85441E17A148ED5EF50413333330344B854415C8FC2C5D4EF5041B81E850B46B854419A9999C9D5EF5041333333934AB854411F85EB81D7EF5041B81E85AB55B8544166666666DAEF5041CDCCCC9C65B854410B0000001F85EB01DAEF5041713D0A0736B854415C8FC245DCEF5041F6285C3F3AB85441E17A14FEDDEF5041713D0A2739B854411F85EB61E3EF5041F6285C6F3CB854415C8FC265E4EF5041F6285CDF3FB85441E17A14EEE3EF50413333335344B854419A999919E0EF5041B81E85AB46B8544133333303E0EF50410AD7A3E049B854411F85EBE1DBEF5041713D0AC743B854419A999959D7EF5041F6285CBF37B854411F85EB01DAEF5041713D0A0736B854410103000000010000001A00000085EB5138E5EF5041333333032DB85441666666A6ECEF5041295C8F5245B85441E17A148EF1EF5041B81E858B55B8544100000000E0EF5041A4703DAA63B8544148E17A24D2EF50411F85EB516BB85441CDCCCC3CCBEF5041333333636DB8544148E17AE4C6EF5041AE47E1BA6FB85441A4703D5AC3EF5041C3F5284C73B85441CDCCCCFCBEEF50417B14AE7775B8544148E17AF4AEEF504185EB515879B85441D7A3703DC0EF5041D7A3704D7CB854411F85EB31D3EF504114AE47C17AB85441AE47E18AE2EF5041295C8F2275B854413D0AD7F3EBEF504152B81E0570B85441E17A145EF5EF5041333333B369B85441CDCCCC5C12F05041EC51B8CE58B8544148E17A8413F050415C8FC2E556B854413333338311F05041A4703D5A54B85441295C8F120AF050419A9999893CB85441F6285C6FFEEF50415C8FC2052BB85441F6285C2FFBEF50419A9999E927B8544185EB51F8F6EF5041D7A3705D26B85441D7A3709DF1EF50415C8FC24526B85441A4703DEAEBEF50418FC2F53829B85441295C8F12E6EF5041B81E856B2BB8544185EB5138E5EF5041333333032DB8544101030000000100000005000000713D0A87C8EF5041AE47E11A61B85441A4703D0AC3EF5041EC51B8AE32B85441D7A3703DBCEF50410AD7A3D033B85441F6285C4FBBEF50413333333335B85441713D0A87C8EF5041AE47E11A61B8544101030000000100000015000000B81E85DB9CEF50417B14AE574FB85441000000909DEF5041C3F528FC50B854417B14AE07A0EF5041C3F528EC51B85441AE47E11AA2EF5041D7A370ED5AB85441AE47E11AA0EF5041000000905DB85441295C8FD2A0EF50418FC2F53865B85441333333A3A3EF504148E17A346AB854410AD7A3F0ACEF504114AE471173B85441F6285C7FB0EF5041B81E858B74B85441D7A3709DBDEF50417B14AE1772B854419A999959C1EF5041AE47E18A70B854411F85EBA1C4EF5041333333F36DB8544166666606C7EF50410AD7A3B06AB854417B14AE57C7EF5041000000A066B8544133333363C6EF504185EB519861B854410AD7A360BEEF504148E17AE446B854415C8FC2C5BCEF5041A4703D9A45B85441295C8FD2A2EF5041666666A643B85441E17A143E96EF50419A99999939B854413D0AD79391EF50418FC2F56840B85441B81E85DB9CEF50417B14AE574FB854410103000000010000000A000000E17A149ECFEF5041713D0AF759B85441F6285CBFD2EF5041666666D669B85441666666D6D5EF50411F85EB2168B854411F85EB91D1EF50413333333355B85441E17A144ECFEF5041F6285CBF46B8544100000050CAEF504185EB517831B85441AE47E1BAC8EF5041C3F528BC31B854411F85EBC1C9EF5041F6285C5F38B854411F85EB21CEEF5041B81E85BB4FB85441E17A149ECFEF5041713D0AF759B85441
+</a>
+
+<b>
+0106000000010000000103000000010000002B0000008A317C24D2EF5041A114EB516BB85441ADC7F1F4D1EF5041583327606BB8544185F1CD3CCBEF5041E68634636DB85441D9A279E4C6EF5041A899E2BA6FB85441C043E0A9C6EF5041EC70F0F56FB85441A4703D5AC3EF5041C3F5284C73B85441C708F672C1EF5041C66F673E74B854412FE1CCFCBEEF50417A0AAF7775B85441030A7DF4AEEF5041184A525879B854415283528DB1EF5041C56F13CA79B85441A770889BB1EF5041319E82CC79B85441B16C2507BBEF504107B723697BB8544110A6703DC0EF5041A03D704D7CB85441292B263AC4EF504100CB1BFA7BB854411F85EB31D3EF504114AE47C17AB854418570C1B9E0EF5041547EE1CC75B854410231E28AE2EF5041D2C98E2275B8544137107A5DE3EF5041C8F315B074B854413D0AD7F3EBEF504152B81E0570B85441E17A145EF5EF5041333333B369B8544152D61A97FEEF5041B576AA5364B85441067ACD5C12F05041DB2BB7CE58B85441BF1F9A6812F050419A0434BB58B85441CEC9BBBF12F0504143981D2B58B854419EBF7A8413F0504107C7C2E556B85441950D29B812F05041CF6069E255B854413333338311F05041A4703D5A54B85441041F10150CF05041E85B7EF842B85441FDD58E120AF05041ABCF98893CB85441F6285C6FFEEF50415C8FC2052BB85441F6285C2FFBEF50419A9999E927B8544185EB51F8F6EF5041D7A3705D26B854415918E9D5F2EF5041D650284B26B854417A66709DF1EF5041F3EEC24526B8544133F83DEAEBEF5041DBE2F53829B854419B498F12E6EF50416141856B2BB8544185EB5138E5EF5041333333032DB85441666666A6ECEF5041295C8F5245B85441E17A148EF1EF5041B81E858B55B85441ABA40000E0EF5041D53B3DAA63B854413FAF9108D3EF5041557424D46AB85441258AA225D2EF5041347B48516BB854418A317C24D2EF5041A114EB516BB85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>558036 - 362398
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+01060000000B0000000103000000010000002A0000005C8FC26529F050411F85EB4168B8544114AE47012CF0504152B81E756BB85441713D0A9724F0504114AE47B174B854417B14AE072CF05041AE47E12A7BB85441295C8F922CF0504185EB511880B85441713D0A6731F050410000002075B854419A9999A933F05041AE47E1DA6FB8544185EB519834F050413D0AD7036BB85441C3F5284C34F05041EC51B80E66B85441000000A032F0504114AE47D15FB85441F6285C9F2FF050411F85EB115AB854413D0AD7832DF050418FC2F50857B854417B14AE672AF050413D0AD70355B85441A4703DBA26F050418FC2F54854B85441B81E85BB16F0504185EB516857B85441A4703DEAF5EF5041A4703D7A6AB854415C8FC2C5ECEF5041CDCCCC4C71B854417B14AEE7E2EF50410AD7A31076B854417B14AE67D3EF50419A9999B97BB854410AD7A330C0EF5041E17A144E7DB854417B14AE57B1EF50419A9999C97AB854413D0AD753B0EF504114AE47317CB85441000000A0B7EF5041CDCCCC8C81B85441D7A370CDB9EF50416666669684B8544100000040BAEF50415C8FC24588B85441A4703DFABBEF50417B14AE2788B85441AE47E1AAC6EF5041B81E850B85B854413D0AD7E3D3EF50413333334387B854410AD7A370DCEF5041AE47E1CA86B85441F6285C5FE5EF5041D7A3706D84B85441F6285C2FE2EF504148E17A347CB85441E17A140EE4EF50417B14AE677BB854418FC2F5A8EAEF50413333339378B85441D7A3707DF7EF5041C3F5282C73B85441E17A146E05F05041A4703DAA6CB85441333333C307F050419A9999396FB85441F6285C6F10F0504185EB51886CB85441295C8FD211F050413D0AD7A36FB85441CDCCCC9C1DF05041EC51B8FE6AB8544148E17A741BF0504148E17A8465B85441CDCCCC9C24F05041713D0AB762B854415C8FC26529F050411F85EB4168B854410103000000010000000C0000003D0AD7F3A3EF5041EC51B8DE8FB85441F6285C8FA9EF50415C8FC2258DB85441295C8F22B7EF50418FC2F5088AB854411F85EB11B9EF504148E17AE487B854413D0AD7A3B8EF50411F85EB0185B854413D0AD7C3B6EF504148E17A6482B85441B81E85ABACEF5041295C8FF27AB854419A999949A6EF50419A9999697FB85441000000B09CEF50418FC2F5288BB854415C8FC2F59BEF50411F85EB718CB854410AD7A3B0A4EF5041C3F528FC8BB854413D0AD7F3A3EF5041EC51B8DE8FB8544101030000000100000009000000295C8F229BEF50417B14AEE789B8544152B81E25A6EF5041000000E07AB85441295C8FF2A9EF50419A99997976B85441C3F528ACA9EF5041B81E85FB72B854410AD7A30096EF50418FC2F5687DB8544114AE470191EF5041D7A3700D80B854419A9999E98EEF50417B14AE2781B8544185EB51E898EF504114AE47518AB85441295C8F229BEF50417B14AEE789B854410103000000010000002F0000008FC2F598EDEF5041713D0AE7D1B85441E17A148EDCEF5041666666E6D2B8544152B81EF5DCEF504185EB51E8CBB85441E17A14FEEEEF504114AE47E1CAB85441E17A149E05F0504114AE4741C6B85441EC51B81E1AF050417B14AEF7C3B85441C3F528AC21F0504148E17AD4C2B854415C8FC29504F050415C8FC275C0B8544166666606F8EF50417B14AEB7BFB85441C3F528FCF6EF50419A9999F9BEB85441E17A149ED9EF50415C8FC2B5BCB85441000000D0D0EF5041E17A146EBDB85441B81E855BC6EF504185EB51E8C2B85441EC51B8AEBFEF5041713D0AD7CCB85441F6285C1FBDEF5041B81E85EBCCB85441B81E85CBBDEF5041713D0AD7D0B854410AD7A370C2EF504152B81E35D7B854411F85EB71C4EF5041AE47E12AD9B854411F85EB61C9EF504133333383DCB8544148E17A44D8EF504114AE4731E4B854419A999979E5EF504114AE4701EBB8544100000080F5EF504114AE47F1F1B85441713D0AF7F5EF5041CDCCCCBCF0B854410AD7A3D0F3EF5041713D0AD7EEB854418FC2F578EFEF504152B81E35EEB8544133333363EFEF50417B14AE97EBB854419A9999D9F6EF50410AD7A3D0ECB854411F85EB21FDEF504133333333F1B85441000000A0FCEF5041CDCCCC2CF6B854418FC2F5B8FDEF5041CDCCCCFCF7B85441666666F603F05041F6285CEFF6B854413333336308F05041A4703DBAFAB8544114AE47F105F05041EC51B8BEFFB85441EC51B83E03F050418FC2F588FFB8544152B81E9503F05041D7A3706DFDB854410AD7A31002F0504148E17A64FAB854410AD7A330FDEF50413D0AD763F9B8544185EB5138FEEF5041AE47E15AFBB85441B81E858B02F050415C8FC2350CB954415C8FC2C503F05041B81E859B0FB95441B81E85EB05F05041F6285C7F12B9544185EB51A815F05041713D0A9706B95441A4703DAA0BF05041EC51B80EF8B85441AE47E1CAFFEF5041000000E0ECB85441D7A370FDF7EF504166666636E7B85441E17A141EEFEF50417B14AEB7E2B854418FC2F598EDEF5041713D0AE7D1B854410103000000010000003100000014AE47E157F050415C8FC2E547B854410AD7A36058F05041AE47E1CA4AB854413D0AD72359F05041000000A058B854417B14AE6755F05041D7A370FD69B854418FC2F5C850F050411F85EB8177B85441B81E856B4EF05041C3F528FC76B85441CDCCCC4C4DF05041B81E85AB7AB854411F85EB5141F05041AE47E12A8CB8544114AE47C13AF05041F6285CFF93B854417B14AED736F05041B81E855B98B85441A4703D9A2DF0504100000050A4B85441295C8F122BF05041AE47E12AA6B85441F6285C2F28F05041A4703D7AA7B854417B14AE671CF050419A999959ABB854411F85EBD1F0EF504100000080B2B85441295C8FC2D9EF504152B81EF5B6B85441AE47E13AD0EF50413D0AD7E3BAB85441EC51B8AED9EF5041EC51B81EBAB85441295C8F52F7EF50410AD7A390BBB854415C8FC29504F0504152B81E05BDB8544152B81EE521F0504114AE4761BFB85441A4703DDA32F0504166666676C0B854413D0AD7F33FF05041D7A370EDC1B854417B14AEB74AF05041AE47E1EAC1B854410000003052F05041D7A3703DBCB85441295C8F0251F05041A4703D1AB9B8544185EB51084DF050410AD7A3D0B2B85441666666F64CF05041B81E85FBADB854417B14AE674FF05041F6285CCFA9B85441000000C058F05041AE47E11A9CB8544148E17AB45BF050415C8FC27598B85441B81E85DB67F05041333333338FB85441666666166FF05041B81E85AB8BB85441CDCCCCAC7AF0504185EB51B888B8544152B81E057FF0504148E17A0487B85441B81E85DB8BF05041EC51B87E7EB854410AD7A3808EF05041000000407BB854419A9999998DF0504148E17A3477B85441D7A3702D7BF05041D7A370FD7AB8544152B81EE565F05041C3F5287C7BB85441F6285C3F53F0504185EB513876B85441E17A14CE56F0504114AE47516CB85441713D0AD759F0504152B81ED55FB8544148E17AD45AF050413333334356B85441B81E857B55F05041000000D038B854419A99991950F05041CDCCCC6C3CB8544185EB51F84CF05041E17A149E3EB854413D0AD7D353F05041F6285C4F48B8544114AE47E157F050415C8FC2E547B8544101030000000100000017000000333333F3D9EF5041D7A370DD8DB854413D0AD713D7EF5041713D0A1788B85441713D0AD7D3EF504148E17A4488B85441333333B3C6EF5041295C8F0286B854413D0AD743BCEF5041D7A3701D89B85441A4703DCAB7EF50418FC2F5188BB8544148E17A14AAEF5041000000908EB854419A9999999FEF5041F6285C9F93B85441713D0A179BEF50415C8FC28599B8544152B81E2590EF5041A4703DAAA9B854413333337392EF5041E17A14EEAAB854413D0AD73399EF504114AE47A1AEB85441C3F5288C99EF50411F85EBD1AEB85441EC51B84E9EEF504152B81E65ABB8544148E17AF4ADEF50413D0AD783A0B854418FC2F5F8B2EF504185EB51E89EB854418FC2F558B8EF504148E17AD49BB854411F85EB01BAEF5041CDCCCCEC9BB85441D7A370EDBBEF5041E17A14BE9AB85441C3F5289CBCEF50419A99997998B85441C3F5284CC8EF5041CDCCCCDC92B85441C3F5287CCEEF50410000003092B85441333333F3D9EF5041D7A370DD8DB854410103000000020000001200000066666666DAEF5041CDCCCC9C65B8544166666676DFEF504114AE47D162B8544114AE4771EFEF5041B81E85FB55B85441B81E850BF0EF504148E17A0454B854411F85EBB1EBEF504152B81E9545B854415C8FC285E6EF504148E17A8434B854415C8FC2C5E3EF5041713D0A8738B8544114AE47A1DEEF5041A4703D1A2EB85441B81E85DBD8EF5041EC51B80E2FB85441E17A149ED9EF50413333336334B854415C8FC2C5D4EF50413333333337B85441E17A142ED2EF5041A4703D2A30B85441D7A3703DCFEF5041713D0AA730B85441E17A148ED5EF50413333330344B854415C8FC2C5D4EF5041B81E850B46B854419A9999C9D5EF5041333333934AB854411F85EB81D7EF5041B81E85AB55B8544166666666DAEF5041CDCCCC9C65B854410B0000001F85EB01DAEF5041713D0A0736B854415C8FC245DCEF5041F6285C3F3AB85441E17A14FEDDEF5041713D0A2739B854411F85EB61E3EF5041F6285C6F3CB854415C8FC265E4EF5041F6285CDF3FB85441E17A14EEE3EF50413333335344B854419A999919E0EF5041B81E85AB46B8544133333303E0EF50410AD7A3E049B854411F85EBE1DBEF5041713D0AC743B854419A999959D7EF5041F6285CBF37B854411F85EB01DAEF5041713D0A0736B854410103000000010000001A00000085EB5138E5EF5041333333032DB85441666666A6ECEF5041295C8F5245B85441E17A148EF1EF5041B81E858B55B8544100000000E0EF5041A4703DAA63B8544148E17A24D2EF50411F85EB516BB85441CDCCCC3CCBEF5041333333636DB8544148E17AE4C6EF5041AE47E1BA6FB85441A4703D5AC3EF5041C3F5284C73B85441CDCCCCFCBEEF50417B14AE7775B8544148E17AF4AEEF504185EB515879B85441D7A3703DC0EF5041D7A3704D7CB854411F85EB31D3EF504114AE47C17AB85441AE47E18AE2EF5041295C8F2275B854413D0AD7F3EBEF504152B81E0570B85441E17A145EF5EF5041333333B369B85441CDCCCC5C12F05041EC51B8CE58B8544148E17A8413F050415C8FC2E556B854413333338311F05041A4703D5A54B85441295C8F120AF050419A9999893CB85441F6285C6FFEEF50415C8FC2052BB85441F6285C2FFBEF50419A9999E927B8544185EB51F8F6EF5041D7A3705D26B85441D7A3709DF1EF50415C8FC24526B85441A4703DEAEBEF50418FC2F53829B85441295C8F12E6EF5041B81E856B2BB8544185EB5138E5EF5041333333032DB8544101030000000100000005000000713D0A87C8EF5041AE47E11A61B85441A4703D0AC3EF5041EC51B8AE32B85441D7A3703DBCEF50410AD7A3D033B85441F6285C4FBBEF50413333333335B85441713D0A87C8EF5041AE47E11A61B8544101030000000100000015000000B81E85DB9CEF50417B14AE574FB85441000000909DEF5041C3F528FC50B854417B14AE07A0EF5041C3F528EC51B85441AE47E11AA2EF5041D7A370ED5AB85441AE47E11AA0EF5041000000905DB85441295C8FD2A0EF50418FC2F53865B85441333333A3A3EF504148E17A346AB854410AD7A3F0ACEF504114AE471173B85441F6285C7FB0EF5041B81E858B74B85441D7A3709DBDEF50417B14AE1772B854419A999959C1EF5041AE47E18A70B854411F85EBA1C4EF5041333333F36DB8544166666606C7EF50410AD7A3B06AB854417B14AE57C7EF5041000000A066B8544133333363C6EF504185EB519861B854410AD7A360BEEF504148E17AE446B854415C8FC2C5BCEF5041A4703D9A45B85441295C8FD2A2EF5041666666A643B85441E17A143E96EF50419A99999939B854413D0AD79391EF50418FC2F56840B85441B81E85DB9CEF50417B14AE574FB854410103000000010000000A000000E17A149ECFEF5041713D0AF759B85441F6285CBFD2EF5041666666D669B85441666666D6D5EF50411F85EB2168B854411F85EB91D1EF50413333333355B85441E17A144ECFEF5041F6285CBF46B8544100000050CAEF504185EB517831B85441AE47E1BAC8EF5041C3F528BC31B854411F85EBC1C9EF5041F6285C5F38B854411F85EB21CEEF5041B81E85BB4FB85441E17A149ECFEF5041713D0AF759B85441
+</a>
+
+<b>
+0106000000010000000103000000010000002B0000008A317C24D2EF5041A114EB516BB85441ADC7F1F4D1EF5041583327606BB8544185F1CD3CCBEF5041E68634636DB85441D9A279E4C6EF5041A899E2BA6FB85441C043E0A9C6EF5041EC70F0F56FB85441A4703D5AC3EF5041C3F5284C73B85441C708F672C1EF5041C66F673E74B854412FE1CCFCBEEF50417A0AAF7775B85441030A7DF4AEEF5041184A525879B854415283528DB1EF5041C56F13CA79B85441A770889BB1EF5041319E82CC79B85441B16C2507BBEF504107B723697BB8544110A6703DC0EF5041A03D704D7CB85441292B263AC4EF504100CB1BFA7BB854411F85EB31D3EF504114AE47C17AB854418570C1B9E0EF5041547EE1CC75B854410231E28AE2EF5041D2C98E2275B8544137107A5DE3EF5041C8F315B074B854413D0AD7F3EBEF504152B81E0570B85441E17A145EF5EF5041333333B369B8544152D61A97FEEF5041B576AA5364B85441067ACD5C12F05041DB2BB7CE58B85441BF1F9A6812F050419A0434BB58B85441CEC9BBBF12F0504143981D2B58B854419EBF7A8413F0504107C7C2E556B85441950D29B812F05041CF6069E255B854413333338311F05041A4703D5A54B85441041F10150CF05041E85B7EF842B85441FDD58E120AF05041ABCF98893CB85441F6285C6FFEEF50415C8FC2052BB85441F6285C2FFBEF50419A9999E927B8544185EB51F8F6EF5041D7A3705D26B854415918E9D5F2EF5041D650284B26B854417A66709DF1EF5041F3EEC24526B8544133F83DEAEBEF5041DBE2F53829B854419B498F12E6EF50416141856B2BB8544185EB5138E5EF5041333333032DB85441666666A6ECEF5041295C8F5245B85441E17A148EF1EF5041B81E858B55B85441ABA40000E0EF5041D53B3DAA63B854413FAF9108D3EF5041557424D46AB85441258AA225D2EF5041347B48516BB854418A317C24D2EF5041A114EB516BB85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>559968 - 217989
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 8 </desc>
+<a>
+0106000000010000000103000000010000007C0000009A999919DFD2504152B81EC527AF544148E17A84E6D25041C3F528AC31AF5441B81E85DBEED250413D0AD7F33EAF54415C8FC2E5F0D25041E17A140E40AF54417B14AE47F2D250419A99994942AF5441CDCCCC9CF4D250413D0AD7D347AF54419A999959F5D25041C3F528DC47AF54410AD7A3D0F6D250410AD7A3304CAF5441E17A146EF6D25041000000904CAF54415C8FC2D5F7D2504114AE478150AF54413D0AD7C3F8D250417B14AEA752AF5441AE47E12AFAD250417B14AE1755AF5441D7A3704DFCD2504152B81E1558AF54411F85EB11FED2504152B81E855AAF5441666666E6FFD25041666666765CAF5441F6285C2F07D350416666661666AF544152B81E250AD35041E17A14BE6AAF5441F6285CBF0BD350415C8FC2256DAF5441295C8F8213D35041CDCCCC5C7EAF5441333333C314D3504152B81E457FAF5441EC51B8AE15D3504148E17A0480AF54418FC2F5A816D3504148E17A3482AF5441B81E851B16D3504148E17A8484AF54416666665615D35041713D0AF784AF5441B81E858B16D350419A99990987AF54410AD7A3C017D350418FC2F53889AF54415C8FC2F518D3504114AE47C18BAF54410AD7A3F019D35041CDCCCCAC8CAF544148E17A341BD350413D0AD7138DAF5441E17A145E1ED35041333333D38DAF54418FC2F5C820D350417B14AE578EAF544185EB51F822D350413D0AD7838EAF54419A9999292AD35041C3F528DC8EAF544152B81E3535D35041000000B08EAF54410AD7A3A03DD35041A4703D1A8FAF544185EB51283FD35041295C8F0290AF5441000000D03ED350415C8FC29590AF5441000000603DD35041295C8F0290AF5441AE47E12A3CD350417B14AEC78FAF5441E17A14AE37D35041CDCCCC8C8FAF54410AD7A38032D350411F85EB518FAF54418FC2F5582CD35041E17A147E8FAF5441D7A370CD27D35041E17A147E8FAF5441D7A3704D21D35041713D0A178FAF5441B81E853B1FD35041D7A370CD8EAF5441AE47E1CA1DD3504152B81E758EAF5441666666D61BD35041333333D38DAF54419A9999391AD3504148E17AC48DAF5441333333A31FD35041EC51B89E8FAF54417B14AEF732D350417B14AEB791AF5441713D0AD735D350417B14AE0792AF5441F6285CEF43D35041295C8FC297AF5441B81E85CB4CD35041C3F5285C9BAF54419A9999C954D350411F85EBB1A2AF54419A99993960D35041713D0AF7B0AF54419A99998961D3504185EB51C8B4AF5441EC51B84E5FD35041000000D0C3AF5441AE47E13A5CD35041E17A145ED8AF54410AD7A3D05AD3504185EB5138E2AF5441EC51B87E59D35041AE47E1EAEAAF544185EB51A85DD35041E17A141EE9AF54410AD7A3E05DD35041EC51B89EE2AF54419A9999895FD35041CDCCCCCCD8AF54417B14AEC761D35041CDCCCC1CC4AF5441295C8FC264D350418FC2F528B3AF5441CDCCCCEC56D35041F6285CAFA0AF5441D7A370FD4ED3504185EB51E897AF5441713D0A5749D35041333333A391AF5441CDCCCC1C47D350419A9999298FAF54415C8FC2C545D35041D7A370AD8DAF54417B14AEF736D35041333333638DAF5441E17A14EE20D35041333333F389AF5441D7A370DD1DD350411F85EB5189AF5441333333431AD3504148E17A9488AF54413D0AD7F31BD35041713D0A8783AF54411F85EB2119D35041713D0AA780AF54410AD7A33019D35041666666C67DAF54411F85EBB117D35041000000A07CAF5441E17A14FE14D3504148E17A8479AF54415C8FC2A514D350410AD7A34078AF54413D0AD77315D350415C8FC20578AF5441B81E851B15D350419A99996976AF54411F85EBD114D350410AD7A3A074AF5441A4703D2A15D350415C8FC2F572AF5441D7A3704D14D350416666663672AF54410AD7A3B012D35041EC51B88E72AF54419A9999D910D35041713D0A0770AF54415C8FC2950FD35041A4703DDA6FAF54417B14AE070ED35041713D0AD76DAF5441CDCCCCCC0DD35041E17A14CE6CAF5441666666A60CD35041CDCCCC6C6BAF5441AE47E12A0DD35041AE47E1CA6AAF5441E17A14BE0DD350418FC2F5F867AF5441666666A60CD350415C8FC2F565AF54415C8FC2850AD3504114AE477165AF544148E17A6408D35041CDCCCC2C64AF54410000007006D350411F85EB1161AF54418FC2F57807D35041333333935FAF5441E17A143E07D350413D0AD7A35CAF5441AE47E10A03D350413333335358AF54415C8FC2D501D35041D7A370DD57AF5441A4703D7AFFD2504148E17A4458AF54415C8FC255FBD2504114AE47A152AF5441713D0AD7F9D25041F6285C8F50AF5441333333D3F7D250410AD7A3E04CAF544152B81E05F6D25041EC51B87E47AF5441B81E852BF8D250413333334346AF544100000040F7D250410AD7A3C042AF54417B14AE77F5D250417B14AEB741AF54410AD7A3A0F3D25041C3F5285C3FAF544100000030F2D25041000000903BAF54413D0AD713EED25041000000803BAF5441CDCCCC8CE7D2504152B81EF530AF54419A999949E0D250413333331327AF544114AE4781D9D250416666665616AF544114AE4781D3D250411F85EBA106AF54413D0AD763D7D250410AD7A3B005AF544185EB51E8D4D2504185EB515801AF5441295C8F32D1D2504152B81E15FDAE5441000000F0CED25041EC51B84EFBAE54410AD7A300CED25041F6285CAFFBAE544100000050D2D25041666666F606AF5441000000E0D7D250415C8FC23517AF54419A999919DFD2504152B81EC527AF5441
+</a>
+
+<b>
+010600000001000000010300000001000000780000000EA55E0834D35041469258D591AF5441223E0BD735D350410D2FAD0792AF54416D2D5DEF43D35041822B8FC297AF5441B81E85CB4CD35041C3F5285C9BAF54419A9999C954D350411F85EBB1A2AF5441D019E4285AD35041F75DCD65A9AF5441CEC89A3960D35041B68F09F7B0AF5441BECB9A8961D35041721C51C8B4AF5441D05A7ABC5FD3504111C43DECC0AF5441EC51B84E5FD35041000000D0C3AF5441DDF47E475ED35041DA1B1BAECAAF544102FEE13A5CD35041321C135ED8AF544121C2A4D05AD35041F8D35038E2AF544180CADF395AD350411FDFB719E6AF5441786CB87E59D35041DD98E0EAEAAF544196A650A85DD35041959F141EE9AF54417EDFA2E05DD3504121C7B79EE2AF5441229A329A5ED350412C010655DEAF54419A9999895FD35041CDCCCCCCD8AF54417B14AEC761D35041CDCCCC1CC4AF5441D8F7BCD263D350411D9F3F7DB8AF544109E48EC264D3504196F2F528B3AF544161ACCCEC56D35041660C5CAFA0AF54419CB4DBA256D350410044915DA0AF5441D7A370FD4ED3504185EB51E897AF544143E06DF14CD3504157A0CEA295AF5441975D095749D35041988E33A391AF544120516E0348D350411249DB2990AF5441CDCCCC1C47D350419A9999298FAF54417623C3C545D35041F74771AD8DAF544102C2DE8C40D35041BAC640938DAF54417B14AEF736D35041333333638DAF5441E17A14EE20D35041333333F389AF544101E4400B1FD350416DEAF48F89AF5441FE846FDD1DD35041CF8EEB5189AF5441834A01181DD3504188435D2989AF5441333333431AD3504148E17A9488AF5441D518DFB717D350412291910082AF544168E08D4A15D35041E23236D17BAF54417694BB900AD35041E7F82E5769AF5441CCBB811505D3504118344CD260AF54419F678F6303D35041D3B30B3D5EAF5441AF16AD3F01D3504152A647C75AAF54414260408DFED25041C1C3F60157AF54415C8FC255FBD2504114AE47A152AF5441713D0AD7F9D25041F6285C8F50AF5441EFE98783F9D250412957BEF64FAF5441964116CBF8D250415A0FDDF44EAF54414C359609F8D25041FFBD08444DAF5441333333D3F7D250410AD7A3E04CAF544152B81E05F6D25041EC51B87E47AF54416528BA49F6D250412653E4CB45AF5441BED60C5BF1D250415FD5D57A3CAF5441B10A483BEFD250410B237E843BAF54413D0AD713EED25041000000803BAF5441CDCCCC8CE7D2504152B81EF530AF54416C989D14E2D250417F10CF8329AF5441A3859949E0D250413BB6331327AF5441ED3D4781D9D25041CE7D665616AF54415544E934D5D2504117462F160BAF544114AE4781D3D250411F85EBA106AF54413AD61E32D1D250413458C614FDAE5441C30140F0CED250414E97EA4EFBAE54417928A500CED2504165D35BAFFBAE5441B444FE69D1D25041E916919C04AF544100000050D2D25041666666F606AF5441000000E0D7D250415C8FC23517AF54419A999919DFD2504152B81EC527AF5441A6860F93E0D25041617609BD29AF544100327C84E6D25041920E2AAC31AF5441426D86DBEED250416F50D6F33EAF54415C8FC2E5F0D25041E17A140E40AF54417B14AE47F2D250419A99994942AF5441CDCCCC9CF4D250413D0AD7D347AF54419A999959F5D25041C3F528DC47AF54410AD7A3D0F6D250410AD7A3304CAF5441E17A146EF6D25041000000904CAF54415C8FC2D5F7D2504114AE478150AF54413D0AD7C3F8D250417B14AEA752AF5441AE47E12AFAD250417B14AE1755AF5441D7A3704DFCD2504152B81E1558AF54411F85EB11FED2504152B81E855AAF5441666666E6FFD25041666666765CAF5441F6285C2F07D350416666661666AF544152B81E250AD35041E17A14BE6AAF5441F6285CBF0BD350415C8FC2256DAF5441295C8F8213D35041CDCCCC5C7EAF5441333333C314D3504152B81E457FAF5441EC51B8AE15D3504148E17A0480AF54418FC2F5A816D3504148E17A3482AF5441B81E851B16D3504148E17A8484AF54416666665615D35041713D0AF784AF5441B81E858B16D350419A99990987AF54410AD7A3C017D350418FC2F53889AF54415C8FC2F518D3504114AE47C18BAF54410AD7A3F019D35041CDCCCCAC8CAF544148E17A341BD350413D0AD7138DAF5441E17A145E1ED35041333333D38DAF54418FC2F5C820D350417B14AE578EAF544185EB51F822D350413D0AD7838EAF54419A9999292AD35041C3F528DC8EAF544152B81E3535D35041000000B08EAF54410AD7A3A03DD35041A4703D1A8FAF544185EB51283FD35041295C8F0290AF5441000000D03ED350415C8FC29590AF5441000000603DD35041295C8F0290AF5441AE47E12A3CD350417B14AEC78FAF5441E17A14AE37D35041CDCCCC8C8FAF54410AD7A38032D350411F85EB518FAF54418FC2F5582CD35041E17A147E8FAF5441D7A370CD27D35041E17A147E8FAF5441D7A3704D21D35041713D0A178FAF5441B81E853B1FD35041D7A370CD8EAF5441AE47E1CA1DD3504152B81E758EAF5441666666D61BD35041333333D38DAF544141529B391AD3504102F17AC48DAF54416F14E7DD1DD35041CBAD92038FAF5441333333A31FD35041EC51B89E8FAF54417B14AEF732D350417B14AEB791AF54410EA55E0834D35041469258D591AF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>945944 - 3140125
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -11 </desc>
+<a>
+010600000001000000010300000001000000190000003D0AD7C348785141E17A146E0A885441D7A3704D4878514114AE470105885441EC51B8FE47785141A4703D4A048854413333336347785141E17A14AE03885441E17A149E467851416666666603885441C3F5284C4278514148E17A84038854410AD7A3C04078514148E17A94038854411F85EBD13D7851413D0AD79303885441B81E85DB3978514166666666038854417B14AE7736785141D7A3700D0388544185EB5128317851410000005002885441CDCCCC5C2B785141CDCCCC9C018854419A99996926785141D7A3702D018854413D0AD7F3237851415C8FC2050188544133333383217851418FC2F5E8008854417B14AE271D785141C3F5281C01885441C3F528BC09785141F6285CDF02885441EC51B87E09785141D7A370FD0A8854410AD7A3B015785141AE47E1CA0A8854411F85EB611F78514114AE47C10A88544185EB51D824785141333333E30A8854413D0AD703327851411F85EB010B885441C3F5281C417851419A9999090B8854410AD7A390487851411F85EB710A8854413D0AD7C348785141E17A146E0A885441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000B97BE0BB09785141A188EFE80288544121DC388B0978514186CE3CFD0A8854414730C28F1D785141856415C30A885441C5B9C27C2C7851411EBE06F50A88544117FDEB2A4178514132416D080B885441521E1BC2487851417066BD590A885441FB61BF4A487851414B0405FB04885441BA70AAF747785141F5202843048854419A4763654778514153DD46B0038854413E6B7089467851411F1FF666038854415049352442785141F09E1886038854411144CEFD3D785141279EE09303885441CEF473013A7851417D65196803885441FD377FBC3578514193AE5AF30288544191CEF5D5307851418D2B0D4602885441C8CFC81D2978514123B1446A018854419F3FA83A23785141CACB38FD00885441856B2EB01F785141942965FE00885441634EDDB11A7851417EF4515501885441B97BE0BB09785141A188EFE802885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>945944 - 3518542
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -11 </desc>
+<a>
+010600000001000000010300000001000000190000003D0AD7C348785141E17A146E0A885441D7A3704D4878514114AE470105885441EC51B8FE47785141A4703D4A048854413333336347785141E17A14AE03885441E17A149E467851416666666603885441C3F5284C4278514148E17A84038854410AD7A3C04078514148E17A94038854411F85EBD13D7851413D0AD79303885441B81E85DB3978514166666666038854417B14AE7736785141D7A3700D0388544185EB5128317851410000005002885441CDCCCC5C2B785141CDCCCC9C018854419A99996926785141D7A3702D018854413D0AD7F3237851415C8FC2050188544133333383217851418FC2F5E8008854417B14AE271D785141C3F5281C01885441C3F528BC09785141F6285CDF02885441EC51B87E09785141D7A370FD0A8854410AD7A3B015785141AE47E1CA0A8854411F85EB611F78514114AE47C10A88544185EB51D824785141333333E30A8854413D0AD703327851411F85EB010B885441C3F5281C417851419A9999090B8854410AD7A390487851411F85EB710A8854413D0AD7C348785141E17A146E0A885441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000B97BE0BB09785141A188EFE80288544121DC388B0978514186CE3CFD0A8854414730C28F1D785141856415C30A885441C5B9C27C2C7851411EBE06F50A88544117FDEB2A4178514132416D080B885441521E1BC2487851417066BD590A885441FB61BF4A487851414B0405FB04885441BA70AAF747785141F5202843048854419A4763654778514153DD46B0038854413E6B7089467851411F1FF666038854415049352442785141F09E1886038854411144CEFD3D785141279EE09303885441CEF473013A7851417D65196803885441FD377FBC3578514193AE5AF30288544191CEF5D5307851418D2B0D4602885441C8CFC81D2978514123B1446A018854419F3FA83A23785141CACB38FD00885441856B2EB01F785141942965FE00885441634EDDB11A7851417EF4515501885441B97BE0BB09785141A188EFE802885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>563780 - 169592
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000000900000014AE47F18D655141000000A087A85441E17A143E8D655141EC51B87E81A854419A9999B98C65514148E17AF47CA85441E17A148E7965514185EB51287FA85441C3F5280C4965514152B81EA585A85441B81E855B4A655141D7A3702D90A854417B14AEC760655141713D0A578DA85441D7A3705D77655141B81E857B8AA8544114AE47F18D655141000000A087A85441
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000ED959D92496551417F2D27DE89A854416E51855B4A6551418B796F2D90A8544101EE39705D655141778B4BC38DA854417B14AEC760655141713D0A578DA85441D15C018264655141B8FC4BDE8CA85441E965715D776551419003847B8AA854418BFA35508765514181B7C97688A8544114AE47F18D655141000000A087A854414D7234768D655141B9A7366A83A85441901E143E8D6551416C68B77E81A85441ED5898B98C65514120067BF47CA854417A7A5660786551419595DD787FA85441A404290C49655141F32F1FA585A85441ED959D92496551417F2D27DE89A85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>563780 - 285891
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+0106000000010000000103000000010000000900000014AE47F18D655141000000A087A85441E17A143E8D655141EC51B87E81A854419A9999B98C65514148E17AF47CA85441E17A148E7965514185EB51287FA85441C3F5280C4965514152B81EA585A85441B81E855B4A655141D7A3702D90A854417B14AEC760655141713D0A578DA85441D7A3705D77655141B81E857B8AA8544114AE47F18D655141000000A087A85441
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000ED959D92496551417F2D27DE89A854416E51855B4A6551418B796F2D90A8544101EE39705D655141778B4BC38DA854417B14AEC760655141713D0A578DA85441D15C018264655141B8FC4BDE8CA85441E965715D776551419003847B8AA854418BFA35508765514181B7C97688A8544114AE47F18D655141000000A087A854414D7234768D655141B9A7366A83A85441901E143E8D6551416C68B77E81A85441ED5898B98C65514120067BF47CA854417A7A5660786551419595DD787FA85441A404290C49655141F32F1FA585A85441ED959D92496551417F2D27DE89A85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>571181 - 343058
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -17 </desc>
+<a>
+0106000000010000000103000000010000000A000000295C8F2247535141666666A62B8354417B14AE07495351418FC2F51828835441E17A14AE3C535141A4703D6A1D8354419A9999893C535141AE47E14A1D8354413D0AD79339535141295C8F821E8354410000000038535141D7A3700D1F8354415C8FC20537535141295C8FC21F8354410000004036535141AE47E1EA208354415C8FC2A545535141F6285C6F2E835441295C8F2247535141666666A62B835441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000A69999893C535141B847E14A1D8354413D0AD79339535141295C8F821E8354410000000038535141D7A3700D1F8354415C8FC20537535141295C8FC21F83544108BD4DA236535141C7649557208354410000004036535141AE47E1EA20835441A3BC38F438535141E33A954A23835441BD38AFE03E53514151476E482883544135F244A242535141250C11CA2B835441D8D59FA545535141D6AC3D6F2E8354416907AE07495351410FDBF51828835441E17A14AE3C535141A4703D6A1D835441A69999893C535141B847E14A1D835441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>571627 - 53353
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -15 </desc>
+<a>
+0106000000010000000103000000010000003F000000EC51B88E42465141C3F528EC6A8F5441000000304A4651411F85EB416C8F5441AE47E1AA56465141D7A370ED6E8F5441295C8FC268465141666666E6728F544114AE476180465141C3F5283C788F5441F6285CCF94465141666666167C8F5441F6285C9FAB4651410AD7A360808F544185EB5178C7465141E17A147E848F5441295C8F12DC465141D7A3709D878F54418FC2F518F1465141B81E851B8B8F5441295C8F82FD4651413D0AD7F38C8F544148E17A5400475141713D0A678B8F54410AD7A32000475141E17A145E8A8F544100000050FF46514152B81EB5898F5441713D0AD7FD4651419A999949898F5441CDCCCCCCDC46514114AE4731848F5441B81E850BC8465141E17A14EE808F544166666636AC4651417B14AE977C8F5441EC51B85E9B465141AE47E1FA798F54417B14AE479546514152B81EE5788F5441E17A144E8C465141A4703D1A778F5441713D0A77694651411F85EB816F8F5441AE47E1DA4A465141AE47E1DA688F5441EC51B82E3C465141C3F528CC658F5441666666C6354651410AD7A350648F54418FC2F5A830465141CDCCCC0C638F54410AD7A3902846514114AE47B1608F54417B14AEB700465141C3F528CC548F54411F85EBB1FE4551410AD7A350558F5441CDCCCCFCFC455141295C8FE2548F544114AE47F1FB4551410AD7A360538F544166666626EC455141295C8F924E8F5441CDCCCCFCDC455141F6285CFF498F54411F85EB11CB45514166666696448F544152B81EF5C24551410AD7A310428F54411F85EB31BB45514152B81E853F8F54418FC2F568B94551419A999909408F544185EB5158B545514152B81E653E8F544133333353B3455141EC51B8AE3C8F5441713D0A37A345514185EB5158378F54419A9999299A4551415C8FC2E5348F5441B81E850B8845514185EB5138308F544152B81E257E455141B81E85BB2D8F5441F6285C4F76455141C3F528DC2B8F544114AE47B1744551419A9999692B8F5441E17A14EE72455141EC51B87E2B8F544114AE4771724551418FC2F5A82C8F5441B81E85CB71455141D7A3702D2E8F5441333333A3734551411F85EB912E8F544148E17A148A455141EC51B86E348F5441AE47E17A9B455141C3F528BC388F54410AD7A350A2455141C3F5288C3A8F5441295C8F82B545514152B81E65418F544100000040C945514114AE4751488F54419A9999C9DB4551411F85EBB14D8F54417B14AEE7EA455141E17A14FE518F544148E17A04FB4551413D0AD793568F54419A999979FD45514100000030578F54413D0AD73311465141F6285C6F5D8F54417B14AE17254651411F85EB91638F5441EC51B8EE3246514114AE47A1678F5441713D0A17374651411F85EB81688F5441EC51B88E42465141C3F528EC6A8F5441
+</a>
+
+<b>
+010600000001000000010300000001000000770000007EE01C5FB345514166C0D1B83C8F5441D6F8C78BAA45514168411DC6398F5441B5EF76F0A8455141F4AAD63D398F544129263188A7455141CA7779C6388F54413AD4C80CA3455141EB3EE54C378F5441828B0E589D455141DE65F6C1358F5441F3248FF88C4551413DC9E37D318F5441C5DD975B834551415FC0D20A2F8F54412CAD4F427C45514157F921482D8F5441A304518277455141182285252C8F5441F6285C4F76455141C3F528DC2B8F54418A10F40875455141F318DB812B8F54413AC5F2C474455141A29D0A6F2B8F5441FC33BB1974455141F69AB1702B8F5441E17A14EE72455141EC51B87E2B8F544114AE4771724551418FC2F5A82C8F5441B81E85CB71455141D7A3702D2E8F5441FFB5EA06734551412FAEA0702E8F5441333333A3734551411F85EB912E8F5441AAD87F16744551415CF309B02E8F5441AE559A8C854551419FB7BB3F338F54412DE472228A4551418C8F2C72348F54415DEE2EDD934551415FEB0EDA368F5441AE47E17A9B455141C3F528BC388F54413F13FF8B9B455141CAEBB2C0388F544180602078A145514193BFBE523A8F54410AD7A350A2455141C3F5288C3A8F5441B52E95ADAD4551411A9DE0993E8F544115E7FE04B7455141FB03A3EC418F54416753AB2EB94551413C19CDAE428F54412BCEE761BB455141F2AC5174438F544197795FEFC4455141DBB3E7CD468F5441763F0016C845514156CBC6E8478F5441A3D9E22EC94551410448474B488F5441C1DB37C0CE4551419866C9E9498F5441EF30CE82D7455141356755744C8F54418DEE82C6DE45514163235D8B4E8F5441B647EA9DE1455141802B255A4F8F54411AB33843E2455141842923894F8F5441DDDC493BE8455141209E863B518F54417B14AEE7EA455141E17A14FE518F5441328D8243F9455141D6901414568F5441CBC842D4FB45514107526AC7568F54419A999979FD45514100000030578F54411B26673C03465141FB200E03598F54416B11E1FF0C465141E5339D1A5C8F5441A5E40BDA0D4651414D98B45F5C8F5441E64FB41D10465141A9F946175D8F5441724976741D4651415D07D736618F5441E88B43FF26465141CD38F420648F5441B4EED8712C465141FC060FBA658F54414176173E2E465141A2921241668F544186224CF93146514153DE4859678F5441BC7F170833465141A694A2A6678F544185F80D4D3346514165CF30B5678F5441EBAD2E9733465141DC1DD6C4678F544176EFBAC933465141DF5781CF678F544100DC77CE3B46514137D33280698F5441A5650139414651417C5232A46A8F54415307D09642465141EE7093ED6A8F5441AD858C5B4746514123302AC36B8F54415CBDFDDD48465141458FC7066C8F5441000000304A4651411F85EB416C8F54415031BB854B46514149E0078B6C8F54415470F468544651419D1FCC716E8F5441AE47E1AA56465141D7A370ED6E8F5441295C8FC268465141666666E6728F5441A61ECB0A724651418C681DFF748F5441D2126EB87E465141133433DC778F5441F338C75D80465141A17A5E3B788F5441B3C976268B4651412C8E15447A8F54416473030A9A46514179E423127D8F5441BB5BE0E29F4651417FE8A12B7E8F5441F575BD47A446514159202BFF7E8F54417EEE5AB6AB46514112B90964808F5441007F26B8BF465141EA8BE158838F544185EB5178C7465141E17A147E848F544160669715D646514135B91AB5868F5441295C8F12DC465141D7A3709D878F54410498F28CE0465141BF54DE5B888F5441FD94FC3BF1465141E7F3B9208B8F5441A45D2989F54651414FD267C48B8F5441925D98BCF94651417D2E42648C8F54413A34958BFD465141D5DFBCEE8C8F54415057035000475141A239A5658B8F54414EDE8E49004751419183372F8B8F54410AD7A32000475141E17A145E8A8F544100000050FF46514152B81EB5898F54416449B5D9FD465141C46C5C4A898F54411605133CE7465141A59135CD858F5441CDCCCCCCDC46514114AE4731848F5441B81E850BC8465141E17A14EE808F544166666636AC4651417B14AE977C8F5441EC51B85E9B465141AE47E1FA798F54417B14AE479546514152B81EE5788F5441E17A144E8C465141A4703D1A778F5441713D0A77694651411F85EB816F8F5441AE47E1DA4A465141AE47E1DA688F5441EC51B82E3C465141C3F528CC658F5441666666C6354651410AD7A350648F54418FC2F5A830465141CDCCCC0C638F54410AD7A3902846514114AE47B1608F54417B14AEB700465141C3F528CC548F54411F85EBB1FE4551410AD7A350558F5441CDCCCCFCFC455141295C8FE2548F544114AE47F1FB4551410AD7A360538F544166666626EC455141295C8F924E8F54415333AF0DE245514158A8AB864B8F54415D686565E04551419846A6064B8F5441CDCCCCFCDC455141F6285CFF498F544132F950ADDB455141F271109A498F54411F85EB11CB45514166666696448F544152B81EF5C24551410AD7A310428F5441208ED07CC2455141006832E9418F5441ABBD0A9DBF4551411ABCF7F7408F54412C078A3FBB455141F2CC95893F8F54418FC2F568B94551419A999909408F544185EB5158B545514152B81E653E8F54417EE01C5FB345514166C0D1B83C8F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>571627 - 170516
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000003F000000EC51B88E42465141C3F528EC6A8F5441000000304A4651411F85EB416C8F5441AE47E1AA56465141D7A370ED6E8F5441295C8FC268465141666666E6728F544114AE476180465141C3F5283C788F5441F6285CCF94465141666666167C8F5441F6285C9FAB4651410AD7A360808F544185EB5178C7465141E17A147E848F5441295C8F12DC465141D7A3709D878F54418FC2F518F1465141B81E851B8B8F5441295C8F82FD4651413D0AD7F38C8F544148E17A5400475141713D0A678B8F54410AD7A32000475141E17A145E8A8F544100000050FF46514152B81EB5898F5441713D0AD7FD4651419A999949898F5441CDCCCCCCDC46514114AE4731848F5441B81E850BC8465141E17A14EE808F544166666636AC4651417B14AE977C8F5441EC51B85E9B465141AE47E1FA798F54417B14AE479546514152B81EE5788F5441E17A144E8C465141A4703D1A778F5441713D0A77694651411F85EB816F8F5441AE47E1DA4A465141AE47E1DA688F5441EC51B82E3C465141C3F528CC658F5441666666C6354651410AD7A350648F54418FC2F5A830465141CDCCCC0C638F54410AD7A3902846514114AE47B1608F54417B14AEB700465141C3F528CC548F54411F85EBB1FE4551410AD7A350558F5441CDCCCCFCFC455141295C8FE2548F544114AE47F1FB4551410AD7A360538F544166666626EC455141295C8F924E8F5441CDCCCCFCDC455141F6285CFF498F54411F85EB11CB45514166666696448F544152B81EF5C24551410AD7A310428F54411F85EB31BB45514152B81E853F8F54418FC2F568B94551419A999909408F544185EB5158B545514152B81E653E8F544133333353B3455141EC51B8AE3C8F5441713D0A37A345514185EB5158378F54419A9999299A4551415C8FC2E5348F5441B81E850B8845514185EB5138308F544152B81E257E455141B81E85BB2D8F5441F6285C4F76455141C3F528DC2B8F544114AE47B1744551419A9999692B8F5441E17A14EE72455141EC51B87E2B8F544114AE4771724551418FC2F5A82C8F5441B81E85CB71455141D7A3702D2E8F5441333333A3734551411F85EB912E8F544148E17A148A455141EC51B86E348F5441AE47E17A9B455141C3F528BC388F54410AD7A350A2455141C3F5288C3A8F5441295C8F82B545514152B81E65418F544100000040C945514114AE4751488F54419A9999C9DB4551411F85EBB14D8F54417B14AEE7EA455141E17A14FE518F544148E17A04FB4551413D0AD793568F54419A999979FD45514100000030578F54413D0AD73311465141F6285C6F5D8F54417B14AE17254651411F85EB91638F5441EC51B8EE3246514114AE47A1678F5441713D0A17374651411F85EB81688F5441EC51B88E42465141C3F528EC6A8F5441
+</a>
+
+<b>
+010600000001000000010300000001000000580000002ED70F1CD04551411D1FB14E4A8F5441E71F9AC9DB4551417361EAB14D8F54415CCCACE7EA455141C5DE13FE518F54416CE07904FB4551418047D693568F54410A779979FD455141CCA4FE2F578F54411BBE7AAF0C465141F6FC26015C8F54413D0AD73311465141F6285C6F5D8F54417B14AE17254651411F85EB91638F5441EC51B8EE3246514114AE47A1678F5441AE764DEF35465141D2188043688F5441ECB5091737465141BF06EB81688F5441378F2A173B46514181959859698F5441EC51B88E42465141C3F528EC6A8F5441000000304A4651411F85EB416C8F5441BCD9664150465141B423428E6D8F54412A7EE1AA56465141E15D70ED6E8F5441BA5C8E2D5E4651410E339893708F5441295C8FC268465141666666E6728F54417F3BDAAD7646514145C13B0B768F544156F1486180465141B7EE283C788F5441702CC1B5854651416EC0753D798F5441F6285CCF94465141666666167C8F54410BDBD7BAA0465141B5FC3E547E8F544107465C9FAB4651418B2CA360808F544168F35178C74651417F73147E848F5441BBF1C70EC8465141703EE294848F5441295C8F12DC465141D7A3709D878F54418FC2F518F1465141B81E851B8B8F5441CB568F82FD4651417109D7F38C8F54412FDA7A54004751412B190A678B8F54410AD7A32000475141E17A145E8A8F54414ECC7468FF4651416CD0ECC8898F5441C9DEFF4FFF465141D9AE1EB5898F5441713D0AD7FD4651419A999949898F5441CDCCCCCCDC46514114AE4731848F5441BEA0FEE0D8465141A0A47D93838F544145CA830BC846514125A615EE808F5441F5E36536AC46514122AAAE977C8F5441F86E3514A6465141ED3E1FA47B8F5441EC51B85E9B465141AE47E1FA798F5441A21C8E78974651417CC80B49798F5441DB63AF47954651418E991FE5788F54416C35144E8C465141FEA53D1A778F544132D60A7769465141410BEC816F8F5441832136786146514166B114C56D8F5441AE47E1DA4A465141AE47E1DA688F54414C01AB533F46514197C2E573668F54410343B72E3C4651411C0B29CC658F5441D63666C635465141BA1CA550648F54413C6EF6A830465141EE0CCD0C638F5441CDD644F12F465141A7C54DD7628F54410AD7A3902846514114AE47B1608F54417B14AEB700465141C3F528CC548F54412CA9CC73004651416B5887DD548F5441A231EAB1FE4551411092A450558F544142BA36F2FD455141CED25C20558F5441CDCCCCFCFC455141295C8FE2548F54417E6FDF61FC45514154851003548F5441283B47F1FB455141B96AA460538F5441D51C6626EC4551410BC98F924E8F544115E73161E54551417E0E99874C8F5441CDCCCCFCDC455141F6285CFF498F54411F85EB11CB45514166666696448F544152B81EF5C24551410AD7A310428F54411F85EB31BB45514152B81E853F8F54418FC2F568B94551419A999909408F544160965158B5455141AB7E1F653E8F544180F53253B34551418888B8AE3C8F54418C5D0937A3455141DF0A5358378F54418CA9E2509E455141A7D33C05368F54419A9999299A4551415C8FC2E5348F54416CF4EBAF8D45514169C43AAD318F54413A9E850B88455141E8915238308F544150F31F257E4551415E4B86BB2D8F544143605D4F76455141625A29DC2B8F5441715046B17445514120749A692B8F5441443B14EE72455141F1E9B87E2B8F544114AE4771724551418FC2F5A82C8F54412497FE0C7245514155F7FD932D8F54419C9085CB714551411ABC702D2E8F5441F5971E9173455141EC81118E2E8F5441FF8832A3734551410556EB912E8F544136067C148A4551414B3BB76E348F54415487E07A9B455141DFB027BC388F5441B198A450A2455141C263288C3A8F544186898E82B5455141D3E11D65418F54418C7F0040C94551410F654751488F54412ED70F1CD04551411D1FB14E4A8F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>571627 - 389203
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000003F000000EC51B88E42465141C3F528EC6A8F5441000000304A4651411F85EB416C8F5441AE47E1AA56465141D7A370ED6E8F5441295C8FC268465141666666E6728F544114AE476180465141C3F5283C788F5441F6285CCF94465141666666167C8F5441F6285C9FAB4651410AD7A360808F544185EB5178C7465141E17A147E848F5441295C8F12DC465141D7A3709D878F54418FC2F518F1465141B81E851B8B8F5441295C8F82FD4651413D0AD7F38C8F544148E17A5400475141713D0A678B8F54410AD7A32000475141E17A145E8A8F544100000050FF46514152B81EB5898F5441713D0AD7FD4651419A999949898F5441CDCCCCCCDC46514114AE4731848F5441B81E850BC8465141E17A14EE808F544166666636AC4651417B14AE977C8F5441EC51B85E9B465141AE47E1FA798F54417B14AE479546514152B81EE5788F5441E17A144E8C465141A4703D1A778F5441713D0A77694651411F85EB816F8F5441AE47E1DA4A465141AE47E1DA688F5441EC51B82E3C465141C3F528CC658F5441666666C6354651410AD7A350648F54418FC2F5A830465141CDCCCC0C638F54410AD7A3902846514114AE47B1608F54417B14AEB700465141C3F528CC548F54411F85EBB1FE4551410AD7A350558F5441CDCCCCFCFC455141295C8FE2548F544114AE47F1FB4551410AD7A360538F544166666626EC455141295C8F924E8F5441CDCCCCFCDC455141F6285CFF498F54411F85EB11CB45514166666696448F544152B81EF5C24551410AD7A310428F54411F85EB31BB45514152B81E853F8F54418FC2F568B94551419A999909408F544185EB5158B545514152B81E653E8F544133333353B3455141EC51B8AE3C8F5441713D0A37A345514185EB5158378F54419A9999299A4551415C8FC2E5348F5441B81E850B8845514185EB5138308F544152B81E257E455141B81E85BB2D8F5441F6285C4F76455141C3F528DC2B8F544114AE47B1744551419A9999692B8F5441E17A14EE72455141EC51B87E2B8F544114AE4771724551418FC2F5A82C8F5441B81E85CB71455141D7A3702D2E8F5441333333A3734551411F85EB912E8F544148E17A148A455141EC51B86E348F5441AE47E17A9B455141C3F528BC388F54410AD7A350A2455141C3F5288C3A8F5441295C8F82B545514152B81E65418F544100000040C945514114AE4751488F54419A9999C9DB4551411F85EBB14D8F54417B14AEE7EA455141E17A14FE518F544148E17A04FB4551413D0AD793568F54419A999979FD45514100000030578F54413D0AD73311465141F6285C6F5D8F54417B14AE17254651411F85EB91638F5441EC51B8EE3246514114AE47A1678F5441713D0A17374651411F85EB81688F5441EC51B88E42465141C3F528EC6A8F5441
+</a>
+
+<b>
+010600000001000000010300000001000000580000002ED70F1CD04551411D1FB14E4A8F5441E71F9AC9DB4551417361EAB14D8F54415CCCACE7EA455141C5DE13FE518F54416CE07904FB4551418047D693568F54410A779979FD455141CCA4FE2F578F54411BBE7AAF0C465141F6FC26015C8F54413D0AD73311465141F6285C6F5D8F54417B14AE17254651411F85EB91638F5441EC51B8EE3246514114AE47A1678F5441AE764DEF35465141D2188043688F5441ECB5091737465141BF06EB81688F5441378F2A173B46514181959859698F5441EC51B88E42465141C3F528EC6A8F5441000000304A4651411F85EB416C8F5441BCD9664150465141B423428E6D8F54412A7EE1AA56465141E15D70ED6E8F5441BA5C8E2D5E4651410E339893708F5441295C8FC268465141666666E6728F54417F3BDAAD7646514145C13B0B768F544156F1486180465141B7EE283C788F5441702CC1B5854651416EC0753D798F5441F6285CCF94465141666666167C8F54410BDBD7BAA0465141B5FC3E547E8F544107465C9FAB4651418B2CA360808F544168F35178C74651417F73147E848F5441BBF1C70EC8465141703EE294848F5441295C8F12DC465141D7A3709D878F54418FC2F518F1465141B81E851B8B8F5441CB568F82FD4651417109D7F38C8F54412FDA7A54004751412B190A678B8F54410AD7A32000475141E17A145E8A8F54414ECC7468FF4651416CD0ECC8898F5441C9DEFF4FFF465141D9AE1EB5898F5441713D0AD7FD4651419A999949898F5441CDCCCCCCDC46514114AE4731848F5441BEA0FEE0D8465141A0A47D93838F544145CA830BC846514125A615EE808F5441F5E36536AC46514122AAAE977C8F5441F86E3514A6465141ED3E1FA47B8F5441EC51B85E9B465141AE47E1FA798F5441A21C8E78974651417CC80B49798F5441DB63AF47954651418E991FE5788F54416C35144E8C465141FEA53D1A778F544132D60A7769465141410BEC816F8F5441832136786146514166B114C56D8F5441AE47E1DA4A465141AE47E1DA688F54414C01AB533F46514197C2E573668F54410343B72E3C4651411C0B29CC658F5441D63666C635465141BA1CA550648F54413C6EF6A830465141EE0CCD0C638F5441CDD644F12F465141A7C54DD7628F54410AD7A3902846514114AE47B1608F54417B14AEB700465141C3F528CC548F54412CA9CC73004651416B5887DD548F5441A231EAB1FE4551411092A450558F544142BA36F2FD455141CED25C20558F5441CDCCCCFCFC455141295C8FE2548F54417E6FDF61FC45514154851003548F5441283B47F1FB455141B96AA460538F5441D51C6626EC4551410BC98F924E8F544115E73161E54551417E0E99874C8F5441CDCCCCFCDC455141F6285CFF498F54411F85EB11CB45514166666696448F544152B81EF5C24551410AD7A310428F54411F85EB31BB45514152B81E853F8F54418FC2F568B94551419A999909408F544160965158B5455141AB7E1F653E8F544180F53253B34551418888B8AE3C8F54418C5D0937A3455141DF0A5358378F54418CA9E2509E455141A7D33C05368F54419A9999299A4551415C8FC2E5348F54416CF4EBAF8D45514169C43AAD318F54413A9E850B88455141E8915238308F544150F31F257E4551415E4B86BB2D8F544143605D4F76455141625A29DC2B8F5441715046B17445514120749A692B8F5441443B14EE72455141F1E9B87E2B8F544114AE4771724551418FC2F5A82C8F54412497FE0C7245514155F7FD932D8F54419C9085CB714551411ABC702D2E8F5441F5971E9173455141EC81118E2E8F5441FF8832A3734551410556EB912E8F544136067C148A4551414B3BB76E348F54415487E07A9B455141DFB027BC388F5441B198A450A2455141C263288C3A8F544186898E82B5455141D3E11D65418F54418C7F0040C94551410F654751488F54412ED70F1CD04551411D1FB14E4A8F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>571829 - 3006808
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+01060000000100000001030000000100000027000000D7A3706D704E5141EC51B82E3189544133333303604E514114AE47914D8954415C8FC2155C4E51413D0AD76355895441B81E85CB494E5141713D0A277489544148E17A343A4E51418FC2F5688E89544152B81EA5254E51417B14AEE7B0895441CDCCCCAC274E51413D0AD7E3B1895441CDCCCC1C424E5141B81E85ABB989544114AE47D14F4E5141E17A140E9E8954419A9999894F4E5141713D0A779A895441000000C04F4E5141E17A14EE96895441CDCCCCEC4F4E5141666666869389544133333303504E5141D7A370CD91895441C3F5289C504E5141F6285C7F8F89544100000000514E51417B14AE978D895441C3F5287C514E5141F6285C6F8C895441F6285CFF514E51419A9999798B895441295C8FD2524E514185EB51288A895441A4703D5A544E51418FC2F52888895441AE47E12A584E51413D0AD733838954418FC2F5885A4E5141713D0A277F895441AE47E14A604E5141C3F5288C7589544148E17AD4634E51413333331371895441AE47E1BA654E51410000004070895441EC51B8DE684E5141333333136E895441333333D36B4E5141E17A14FE6B8954411F85EBB16D4E514185EB51A86A89544152B81EB56F4E5141000000B068895441A4703D4A724E5141AE47E1AA65895441AE47E1FA734E5141333333E35F895441713D0A67774E514114AE47015789544185EB5108794E5141713D0A9753895441EC51B8AE7A4E5141EC51B8EE508954413D0AD713844E51415C8FC23543895441D7A370DD854E5141CDCCCCAC3F895441F6285C5F854E514185EB51383D8954418FC2F5A8774E51418FC2F5F83489544185EB51C8714E51411F85EBE130895441D7A3706D704E5141EC51B82E31895441
+</a>
+
+<b>
+01060000000100000001030000000100000067000000E9B89F34824E51410B413C5E3F895441F2566772814E514107D4908140895441575171397F4E514113A585584489544173AE915F7C4E5141D8C8C34749895441626523377C4E514167C1798A4989544103E50A86784E5141C92EE2A14F8954418E5FA3A1774E51418DD0F840518954418D2B3465754E5141C9A7D2545589544199D4D02E754E5141574600B8558954416EDF5B6C744E5141707B86E45689544159BA640F734E514152E3D5FF5889544133E964AE724E51411C6E17C15989544179799F79724E5141904DA22A5A89544116D566D3704E5141559613775D895441B5E6AD1C6E4E514103D46A0462895441B639227C6B4E5141FA74CE8566895441873AC95F6B4E5141D27D90B666895441AB5E188C6A4E5141B988762168895441E2DCD148694E51413442A64B6A895441AF866542694E51414BF542526A895441600DE9E4654E5141A3EA15C96D89544113AA224C624E51415768E70371895441C60CBA2A614E514194F5C707728954414D079F3E604E5141180881147389544140A4DD325F4E5141DF9D824674895441B29C37DB5E4E5141120133E774895441DFC9C07B5D4E5141F7D88C6B77895441776258865B4E51418983DFA67A89544173EEB8E5594E514136ABBE2A7D895441657F798B584E51416570AE677F8954418F229527584E51411DE77E138089544155D0FCF5564E5141C67E1E21828954417FD440E7564E514186527E378289544147A84F94544E51411E8CECBE858954419BD84F4A544E51414F134B2F868954419E4C4DBB514E5141817DD9F988895441225FAB1D514E5141F2F4CFA58989544190454889504E5141DDF21F978A8954418A52A2914F4E5141BB19042F8C895441B97EDE7F4F4E51416E5DD38D8C8954413CD2A6344F4E5141249D0C418E8954413C4A50294F4E51413D1D75F68E895441F22CC9DA4E4E5141CAC5961C948954415E9DC2BE4E4E514186050BE897895441FF027EBA4E4E514147594C9B9889544113A13C514F4E5141362EC0D59A895441E55D5D574F4E5141174B97EC9A89544178012DA64F4E5141FC6657129C8954415D7CB4894F4E5141B0FC4A759A89544133A23C984F4E5141F93B8D83998954416BC246BC4F4E5141C4EA052C9789544136F9ACD54F4E5141714F554895895441C920E9F04F4E5141FD917A3593895441B5B86004504E5141BE72E5C891895441F3136D4C504E5141EBE7F3B290895441AB849890504E5141C0C6F8AB8F895441D5A2E4D3504E5141CE0C206F8E895441E9CF7503514E5141A8006C8F8D89544147F7CF92514E5141C0A1ED448C895441119EB6F6514E514172F1CB898B8954418603AE8F524E5141ED3020938A89544104ADCFD1524E5141A60884298A8954416373A689544E514143025AEB87895441A4A404D9574E514176AE379E838954416593C82A584E51417F24F73383895441549F86605A4E51414F92356C7F895441D66E54355C4E51418785685C7C8954411E8438D95E4E514187E6D8F477895441A2729043604E51412D545D9875895441EB0483A3604E5141FE121A1C758954419898FA0C624E5141A954185373895441550074E8624E5141E7819C3D7289544148E17AD4634E5141333333137189544132964FBD654E514190F1503E708954410B7F30DD654E514193153C287089544108B0DAD3684E5141B8F7B91A6E89544159F52A326D4E514136D485036B8954411F85EBB16D4E514185EB51A86A8954410408555F6E4E514152E991FE69895441738D0FAF6F4E5141EF68EEB568895441574CBB96704E5141D6E82AA867895441A4703D4A724E5141AE47E1AA6589544148ECAE63724E5141BB65DC53658954412F4E00F2734E5141C70A9101608954411303EC34744E5141E5F58F4C5F895441FE71D741764E514188A639FA5989544162DA3F69774E514128ABA6FC56895441FE619691774E514178A323A856895441003A3DDB784E5141060E7DF5538954413FCC9607794E5141354792985389544186BE94E0794E51412E8ABA3A528954414F09B2B97A4E51414966B0DE50895441C6A1D6FB7C4E5141C7513E924D8954412AA4049E7E4E51414460712F4B89544138F4A0C7814E51410D5EE990468954413D0AD713844E51415C8FC2354389544177038552844E514104AFCDB942895441FB959ADC854E5141FFC9A1A83F8954416DC690C9854E5141A7F4BA493F8954412910EF5E854E5141814D10383D895441C4D98222844E5141F5A0BF793C89544193F9091E844E5141F5DF1C803C895441E9B89F34824E51410B413C5E3F895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>571829 - 3823328
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+01060000000100000001030000000100000027000000D7A3706D704E5141EC51B82E3189544133333303604E514114AE47914D8954415C8FC2155C4E51413D0AD76355895441B81E85CB494E5141713D0A277489544148E17A343A4E51418FC2F5688E89544152B81EA5254E51417B14AEE7B0895441CDCCCCAC274E51413D0AD7E3B1895441CDCCCC1C424E5141B81E85ABB989544114AE47D14F4E5141E17A140E9E8954419A9999894F4E5141713D0A779A895441000000C04F4E5141E17A14EE96895441CDCCCCEC4F4E5141666666869389544133333303504E5141D7A370CD91895441C3F5289C504E5141F6285C7F8F89544100000000514E51417B14AE978D895441C3F5287C514E5141F6285C6F8C895441F6285CFF514E51419A9999798B895441295C8FD2524E514185EB51288A895441A4703D5A544E51418FC2F52888895441AE47E12A584E51413D0AD733838954418FC2F5885A4E5141713D0A277F895441AE47E14A604E5141C3F5288C7589544148E17AD4634E51413333331371895441AE47E1BA654E51410000004070895441EC51B8DE684E5141333333136E895441333333D36B4E5141E17A14FE6B8954411F85EBB16D4E514185EB51A86A89544152B81EB56F4E5141000000B068895441A4703D4A724E5141AE47E1AA65895441AE47E1FA734E5141333333E35F895441713D0A67774E514114AE47015789544185EB5108794E5141713D0A9753895441EC51B8AE7A4E5141EC51B8EE508954413D0AD713844E51415C8FC23543895441D7A370DD854E5141CDCCCCAC3F895441F6285C5F854E514185EB51383D8954418FC2F5A8774E51418FC2F5F83489544185EB51C8714E51411F85EBE130895441D7A3706D704E5141EC51B82E31895441
+</a>
+
+<b>
+01060000000100000001030000000100000067000000E9B89F34824E51410B413C5E3F895441F2566772814E514107D4908140895441575171397F4E514113A585584489544173AE915F7C4E5141D8C8C34749895441626523377C4E514167C1798A4989544103E50A86784E5141C92EE2A14F8954418E5FA3A1774E51418DD0F840518954418D2B3465754E5141C9A7D2545589544199D4D02E754E5141574600B8558954416EDF5B6C744E5141707B86E45689544159BA640F734E514152E3D5FF5889544133E964AE724E51411C6E17C15989544179799F79724E5141904DA22A5A89544116D566D3704E5141559613775D895441B5E6AD1C6E4E514103D46A0462895441B639227C6B4E5141FA74CE8566895441873AC95F6B4E5141D27D90B666895441AB5E188C6A4E5141B988762168895441E2DCD148694E51413442A64B6A895441AF866542694E51414BF542526A895441600DE9E4654E5141A3EA15C96D89544113AA224C624E51415768E70371895441C60CBA2A614E514194F5C707728954414D079F3E604E5141180881147389544140A4DD325F4E5141DF9D824674895441B29C37DB5E4E5141120133E774895441DFC9C07B5D4E5141F7D88C6B77895441776258865B4E51418983DFA67A89544173EEB8E5594E514136ABBE2A7D895441657F798B584E51416570AE677F8954418F229527584E51411DE77E138089544155D0FCF5564E5141C67E1E21828954417FD440E7564E514186527E378289544147A84F94544E51411E8CECBE858954419BD84F4A544E51414F134B2F868954419E4C4DBB514E5141817DD9F988895441225FAB1D514E5141F2F4CFA58989544190454889504E5141DDF21F978A8954418A52A2914F4E5141BB19042F8C895441B97EDE7F4F4E51416E5DD38D8C8954413CD2A6344F4E5141249D0C418E8954413C4A50294F4E51413D1D75F68E895441F22CC9DA4E4E5141CAC5961C948954415E9DC2BE4E4E514186050BE897895441FF027EBA4E4E514147594C9B9889544113A13C514F4E5141362EC0D59A895441E55D5D574F4E5141174B97EC9A89544178012DA64F4E5141FC6657129C8954415D7CB4894F4E5141B0FC4A759A89544133A23C984F4E5141F93B8D83998954416BC246BC4F4E5141C4EA052C9789544136F9ACD54F4E5141714F554895895441C920E9F04F4E5141FD917A3593895441B5B86004504E5141BE72E5C891895441F3136D4C504E5141EBE7F3B290895441AB849890504E5141C0C6F8AB8F895441D5A2E4D3504E5141CE0C206F8E895441E9CF7503514E5141A8006C8F8D89544147F7CF92514E5141C0A1ED448C895441119EB6F6514E514172F1CB898B8954418603AE8F524E5141ED3020938A89544104ADCFD1524E5141A60884298A8954416373A689544E514143025AEB87895441A4A404D9574E514176AE379E838954416593C82A584E51417F24F73383895441549F86605A4E51414F92356C7F895441D66E54355C4E51418785685C7C8954411E8438D95E4E514187E6D8F477895441A2729043604E51412D545D9875895441EB0483A3604E5141FE121A1C758954419898FA0C624E5141A954185373895441550074E8624E5141E7819C3D7289544148E17AD4634E5141333333137189544132964FBD654E514190F1503E708954410B7F30DD654E514193153C287089544108B0DAD3684E5141B8F7B91A6E89544159F52A326D4E514136D485036B8954411F85EBB16D4E514185EB51A86A8954410408555F6E4E514152E991FE69895441738D0FAF6F4E5141EF68EEB568895441574CBB96704E5141D6E82AA867895441A4703D4A724E5141AE47E1AA6589544148ECAE63724E5141BB65DC53658954412F4E00F2734E5141C70A9101608954411303EC34744E5141E5F58F4C5F895441FE71D741764E514188A639FA5989544162DA3F69774E514128ABA6FC56895441FE619691774E514178A323A856895441003A3DDB784E5141060E7DF5538954413FCC9607794E5141354792985389544186BE94E0794E51412E8ABA3A528954414F09B2B97A4E51414966B0DE50895441C6A1D6FB7C4E5141C7513E924D8954412AA4049E7E4E51414460712F4B89544138F4A0C7814E51410D5EE990468954413D0AD713844E51415C8FC2354389544177038552844E514104AFCDB942895441FB959ADC854E5141FFC9A1A83F8954416DC690C9854E5141A7F4BA493F8954412910EF5E854E5141814D10383D895441C4D98222844E5141F5A0BF793C89544193F9091E844E5141F5DF1C803C895441E9B89F34824E51410B413C5E3F895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>571829 - 432151
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+01060000000100000001030000000100000027000000D7A3706D704E5141EC51B82E3189544133333303604E514114AE47914D8954415C8FC2155C4E51413D0AD76355895441B81E85CB494E5141713D0A277489544148E17A343A4E51418FC2F5688E89544152B81EA5254E51417B14AEE7B0895441CDCCCCAC274E51413D0AD7E3B1895441CDCCCC1C424E5141B81E85ABB989544114AE47D14F4E5141E17A140E9E8954419A9999894F4E5141713D0A779A895441000000C04F4E5141E17A14EE96895441CDCCCCEC4F4E5141666666869389544133333303504E5141D7A370CD91895441C3F5289C504E5141F6285C7F8F89544100000000514E51417B14AE978D895441C3F5287C514E5141F6285C6F8C895441F6285CFF514E51419A9999798B895441295C8FD2524E514185EB51288A895441A4703D5A544E51418FC2F52888895441AE47E12A584E51413D0AD733838954418FC2F5885A4E5141713D0A277F895441AE47E14A604E5141C3F5288C7589544148E17AD4634E51413333331371895441AE47E1BA654E51410000004070895441EC51B8DE684E5141333333136E895441333333D36B4E5141E17A14FE6B8954411F85EBB16D4E514185EB51A86A89544152B81EB56F4E5141000000B068895441A4703D4A724E5141AE47E1AA65895441AE47E1FA734E5141333333E35F895441713D0A67774E514114AE47015789544185EB5108794E5141713D0A9753895441EC51B8AE7A4E5141EC51B8EE508954413D0AD713844E51415C8FC23543895441D7A370DD854E5141CDCCCCAC3F895441F6285C5F854E514185EB51383D8954418FC2F5A8774E51418FC2F5F83489544185EB51C8714E51411F85EBE130895441D7A3706D704E5141EC51B82E31895441
+</a>
+
+<b>
+01060000000100000001030000000100000067000000EDB89F34824E51410E413C5E3F895441F1566772814E514103D49081408954415C5171397F4E514110A585584489544173AE915F7C4E5141D8C8C34749895441606523377C4E514162C1798A4989544101E50A86784E5141C92EE2A14F8954418B5FA3A1774E51418CD0F840518954418B2B3465754E5141CDA7D2545589544199D4D02E754E5141574600B8558954416FDF5B6C744E51416F7B86E45689544154BA640F734E514157E3D5FF588954412EE964AE724E51411B6E17C15989544178799F79724E5141934DA22A5A89544116D566D3704E5141559613775D895441B8E6AD1C6E4E5141FFD36A0462895441B139227C6B4E5141F874CE8566895441873AC95F6B4E5141D27D90B666895441A65E188C6A4E5141BE88762168895441E2DCD148694E51413442A64B6A895441AD866542694E514148F542526A895441600DE9E4654E5141A3EA15C96D8954410FAA224C624E51415A68E70371895441C10CBA2A614E514198F5C707728954414C079F3E604E5141130881147389544140A4DD325F4E5141DF9D824674895441AF9C37DB5E4E5141140133E774895441DFC9C07B5D4E5141F7D88C6B77895441776258865B4E51418983DFA67A89544174EEB8E5594E514136ABBE2A7D895441687F798B584E51416170AE677F89544191229527584E51411CE77E138089544155D0FCF5564E5141C67E1E21828954417CD440E7564E514181527E378289544149A84F94544E51411A8CECBE858954419BD84F4A544E51414F134B2F868954419A4C4DBB514E5141807DD9F9888954411F5FAB1D514E5141F5F4CFA58989544194454889504E5141DAF21F978A8954418652A2914F4E5141C019042F8C895441BB7EDE7F4F4E51416A5DD38D8C8954413CD2A6344F4E5141279D0C418E8954413B4A50294F4E5141381D75F68E895441F02CC9DA4E4E5141CAC5961C948954415E9DC2BE4E4E514182050BE897895441FB027EBA4E4E51414A594C9B9889544110A13C514F4E5141392EC0D59A895441EA5D5D574F4E5141154B97EC9A89544176012DA64F4E5141FA6657129C8954415E7CB4894F4E5141B3FC4A759A89544132A23C984F4E5141FE3B8D839989544167C246BC4F4E5141C6EA052C9789544132F9ACD54F4E5141734F554895895441CB20E9F04F4E514102927A3593895441B2B86004504E5141C172E5C891895441F5136D4C504E5141EFE7F3B290895441A6849890504E5141BBC6F8AB8F895441D7A2E4D3504E5141D00C206F8E895441E6CF7503514E5141A4006C8F8D89544144F7CF92514E5141C4A1ED448C8954410C9EB6F6514E514170F1CB898B8954418903AE8F524E5141ED3020938A89544107ADCFD1524E5141A30884298A8954416773A689544E51413F025AEB87895441A0A404D9574E514178AE379E838954416293C82A584E51417A24F73383895441569F86605A4E51415392356C7F895441D86E54355C4E51418585685C7C895441208438D95E4E51418CE6D8F4778954419F729043604E51412F545D9875895441ED0483A3604E5141FC121A1C758954419898FA0C624E5141AB54185373895441580074E8624E5141EC819C3D7289544148E17AD4634E5141333333137189544136964FBD654E514195F1503E708954410E7F30DD654E514190153C287089544105B0DAD3684E5141B3F7B91A6E89544157F52A326D4E514135D485036B8954411F85EBB16D4E514185EB51A86A8954410508555F6E4E514157E991FE69895441718D0FAF6F4E5141F468EEB5688954415C4CBB96704E5141D7E82AA867895441A4703D4A724E5141AE47E1AA6589544147ECAE63724E5141BC65DC53658954412F4E00F2734E5141CA0A9101608954411303EC34744E5141E2F58F4C5F8954410272D741764E51418AA639FA5989544161DA3F69774E514125ABA6FC5689544102629691774E514173A323A856895441FD393DDB784E5141080E7DF55389544140CC9607794E5141354792985389544189BE94E0794E51412A8ABA3A528954415209B2B97A4E51414566B0DE50895441C3A1D6FB7C4E5141CA513E924D8954412AA4049E7E4E51414060712F4B89544137F4A0C7814E5141085EE990468954413D0AD713844E51415C8FC2354389544175038552844E514100AFCDB942895441F9959ADC854E5141FFC9A1A83F8954416CC690C9854E5141A8F4BA493F8954412E10EF5E854E5141804D10383D895441C4D98222844E5141F5A0BF793C89544193F9091E844E5141F5DF1C803C895441EDB89F34824E51410E413C5E3F895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>572505 - 2306685
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -27 </desc>
+<a>
+010600000001000000010300000001000000110000009A999989AB7C51410AD7A3F0957454419A9999F9AE7C5141713D0AD79674544185EB51A8BB7C514152B81E359974544148E17A34C67C5141666666769A745441E17A14AECD7C5141EC51B8FE9A745441C3F5286CD17C5141295C8FC2987454417B14AE37CD7C5141713D0A779374544114AE47B1CA7C51410AD7A340927454411F85EB11C87C5141000000808E7454413D0AD753BF7C51415C8FC2358974544114AE47C1BE7C514185EB51188A7454410AD7A330BC7C5141333333438C7454419A9999D9B67C51411F85EB1190745441B81E852BB47C51411F85EBC1917454411F85EB71B17C51418FC2F56893745441CDCCCC7CAC7C5141D7A370DD957454419A999989AB7C51410AD7A3F095745441
+</a>
+
+<b>
+0106000000010000000103000000010000004F00000071720595C77C5141E7BE65DE8E74544153B541DBC87C5141B86F6EDF8F745441DD4BF543C97C514107C9C7369074544148493678C97C51419EFF89609074544180F440E0CA7C5141F2B7E67F917454416F266416CD7C5141B2060E67937454412A986A53CD7C5141D850F79993745441B24BF806CF7C51418166A50895745441010F2D3BD07C514100228630967454413CE2FE6DD07C51419F904F61967454413CE2FE6DD07C51416A608FE2967454413CE2FE6DD07C5141A19C2B7297745441806B0325D07C5141B6C4BFC99774544105A662DECF7C5141B0B1801E987454415FF18D2FCE7C51413A48878599745441F2C79E23CE7C5141A710DE8A9974544130D457FFCB7C5141C40F09E09A74544100000020D17C5141D7A3703D9B745441AE47E1FADA7C514152B81EC59B7454419A999999DB7C5141B81E85CB9B745441000000B0E07C514148E17A24977454417B14AE67E27C514100000030967454419A999989E67C5141000000909474544185EB5178E67C514133333313947454413D0AD733F47C51415C8FC2C594745441B81E852BF47C51410000003093745441C3F5281CF47C51413D0AD7238B745441713D0A07F47C51418FC2F57887745441713D0AF7F37C51411F85EBB18674544114AE47D1E27C51411F85EB318874544185EB5178DC7C51419A9999F989745441FD90BC1BD67C51416ACE37CB8A74544177C7E0A1D57C514108BE822C8D745441EDCCC7D6D47C5141A7ADCD8D8F7454415FA171BAD37C5141AF0F483090745441424AC581D17C5141F05B9744907454412A24569ACF7C5141569D89348E745441534A36C7CD7C51417EC369618C745441B45AEB65CB7C5141A7E9498E8A745441123A63B3C87C51418B929D5588745441ED803CD8C57C5141F0D38F458674544180194C46C27C51414EB3079383745441D1650CA0BE7C5141A330053E80745441C40ED1ACB87C5141E28793017B74544122EE48FAB57C514184E497B478745441B4865868B27C514195E408FA74745441C8B706FFAE7C51416067EDD970745441F1DDE62BAD7C514179C9D8C16D745441D6863AF3AA7C5141D17713BE6A745441CE603C51A57C5141023CEA8D64745441EC51B89EA47C51413D0AD7836474544114AE47C1A37C5141B81E859B64745441F6285CDFA27C51411F85EB91647454415C8FC285A27C5141C3F5286C64745441000000D0A07C51416666660663745441EC51B8CE9E7C5141EC51B85E61745441D7A3701D9D7C51419A999919607454415C8FC2F5987C514152B81E95627454418FC2F568957C51411F85EB91647454419A999959907C5141F6285C6F657454419A9999498C7C5141D7A370BD6674544114AE47518A7C5141D7A370AD67745441E17A145E887C51413D0AD713697454413D0AD7A38B7C5141713D0A476B74544114AE47F18C7C51413D0AD7936E7454418FC2F5688E7C514148E17AC4747454417B14AE87917C51419A9999F976745441295C8F72927C5141713D0A677B745441295C8FC2927C5141B81E857B7C745441D7A3701D997C5141000000307B745441666666D6A67C5141E17A143E78745441C3F5289CAC7C51410000002077745441C3F5289CAD7C5141EC51B82E7774544133333343B17C51413D0AD7F37A745441000000A0B97C514100000060837454413D0AD753BF7C51415C8FC235897454411E52AEA3C37C51410DA3E10E8C74544169BB5701C77C5141C26C0B6A8E74544171720595C77C5141E7BE65DE8E745441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>572505 - 2306687
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -27 </desc>
+<a>
+010600000001000000010300000001000000110000009A999989AB7C51410AD7A3F0957454419A9999F9AE7C5141713D0AD79674544185EB51A8BB7C514152B81E359974544148E17A34C67C5141666666769A745441E17A14AECD7C5141EC51B8FE9A745441C3F5286CD17C5141295C8FC2987454417B14AE37CD7C5141713D0A779374544114AE47B1CA7C51410AD7A340927454411F85EB11C87C5141000000808E7454413D0AD753BF7C51415C8FC2358974544114AE47C1BE7C514185EB51188A7454410AD7A330BC7C5141333333438C7454419A9999D9B67C51411F85EB1190745441B81E852BB47C51411F85EBC1917454411F85EB71B17C51418FC2F56893745441CDCCCC7CAC7C5141D7A370DD957454419A999989AB7C51410AD7A3F095745441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000295C8FC2927C5141B81E857B7C7454415C8FC235957C5141E17A14EE84745441E17A14FE8C7C51413D0AD7D3877454413D0AD7A3947C51417B14AEA78C745441295C8F029D7C5141A4703D2A9174544152B81E55A47C5141D7A3700D947454419A999989AB7C51410AD7A3F0957454415C19653BB67C5141B0B1801E98745441F3A80A99BC7C51414E2CC35199745441FF743A7DC17C51417527C1E69974544152D271F3C77C51417A993D969A7454415AD9D50DCC7C5141657BAA799A7454415FF18D2FCE7C51413A4887859974544105A662DECF7C5141B0B1801E987454413CE2FE6DD07C5141A19C2B72977454413CE2FE6DD07C51419F904F6196745441B24BF806CF7C51418166A508957454412A986A53CD7C5141D850F799937454416F266416CD7C5141B2060E679374544180F440E0CA7C5141F2B7E67F91745441A4856C45C97C5141DDD200389074544153B541DBC87C5141B86F6EDF8F74544169BB5701C77C5141C26C0B6A8E7454411E52AEA3C37C51410DA3E10E8C7454413D0AD753BF7C51415C8FC23589745441000000A0B97C5141000000608374544133333343B17C51413D0AD7F37A745441C3F5289CAD7C5141EC51B82E77745441C3F5289CAC7C51410000002077745441666666D6A67C5141E17A143E78745441D7A3701D997C5141000000307B745441295C8FC2927C5141B81E857B7C745441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>572505 - 3448789
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -27 </desc>
+<a>
+010600000001000000010300000001000000110000009A999989AB7C51410AD7A3F0957454419A9999F9AE7C5141713D0AD79674544185EB51A8BB7C514152B81E359974544148E17A34C67C5141666666769A745441E17A14AECD7C5141EC51B8FE9A745441C3F5286CD17C5141295C8FC2987454417B14AE37CD7C5141713D0A779374544114AE47B1CA7C51410AD7A340927454411F85EB11C87C5141000000808E7454413D0AD753BF7C51415C8FC2358974544114AE47C1BE7C514185EB51188A7454410AD7A330BC7C5141333333438C7454419A9999D9B67C51411F85EB1190745441B81E852BB47C51411F85EBC1917454411F85EB71B17C51418FC2F56893745441CDCCCC7CAC7C5141D7A370DD957454419A999989AB7C51410AD7A3F095745441
+</a>
+
+<b>
+0106000000010000000103000000010000004F00000071720595C77C5141E7BE65DE8E74544153B541DBC87C5141B86F6EDF8F745441DD4BF543C97C514107C9C7369074544148493678C97C51419EFF89609074544180F440E0CA7C5141F2B7E67F917454416F266416CD7C5141B2060E67937454412A986A53CD7C5141D850F79993745441B24BF806CF7C51418166A50895745441010F2D3BD07C514100228630967454413CE2FE6DD07C51419F904F61967454413CE2FE6DD07C51416A608FE2967454413CE2FE6DD07C5141A19C2B7297745441806B0325D07C5141B6C4BFC99774544105A662DECF7C5141B0B1801E987454415FF18D2FCE7C51413A48878599745441F2C79E23CE7C5141A710DE8A9974544130D457FFCB7C5141C40F09E09A74544100000020D17C5141D7A3703D9B745441AE47E1FADA7C514152B81EC59B7454419A999999DB7C5141B81E85CB9B745441000000B0E07C514148E17A24977454417B14AE67E27C514100000030967454419A999989E67C5141000000909474544185EB5178E67C514133333313947454413D0AD733F47C51415C8FC2C594745441B81E852BF47C51410000003093745441C3F5281CF47C51413D0AD7238B745441713D0A07F47C51418FC2F57887745441713D0AF7F37C51411F85EBB18674544114AE47D1E27C51411F85EB318874544185EB5178DC7C51419A9999F989745441FD90BC1BD67C51416ACE37CB8A74544177C7E0A1D57C514108BE822C8D745441EDCCC7D6D47C5141A7ADCD8D8F7454415FA171BAD37C5141AF0F483090745441424AC581D17C5141F05B9744907454412A24569ACF7C5141569D89348E745441534A36C7CD7C51417EC369618C745441B45AEB65CB7C5141A7E9498E8A745441123A63B3C87C51418B929D5588745441ED803CD8C57C5141F0D38F458674544180194C46C27C51414EB3079383745441D1650CA0BE7C5141A330053E80745441C40ED1ACB87C5141E28793017B74544122EE48FAB57C514184E497B478745441B4865868B27C514195E408FA74745441C8B706FFAE7C51416067EDD970745441F1DDE62BAD7C514179C9D8C16D745441D6863AF3AA7C5141D17713BE6A745441CE603C51A57C5141023CEA8D64745441EC51B89EA47C51413D0AD7836474544114AE47C1A37C5141B81E859B64745441F6285CDFA27C51411F85EB91647454415C8FC285A27C5141C3F5286C64745441000000D0A07C51416666660663745441EC51B8CE9E7C5141EC51B85E61745441D7A3701D9D7C51419A999919607454415C8FC2F5987C514152B81E95627454418FC2F568957C51411F85EB91647454419A999959907C5141F6285C6F657454419A9999498C7C5141D7A370BD6674544114AE47518A7C5141D7A370AD67745441E17A145E887C51413D0AD713697454413D0AD7A38B7C5141713D0A476B74544114AE47F18C7C51413D0AD7936E7454418FC2F5688E7C514148E17AC4747454417B14AE87917C51419A9999F976745441295C8F72927C5141713D0A677B745441295C8FC2927C5141B81E857B7C745441D7A3701D997C5141000000307B745441666666D6A67C5141E17A143E78745441C3F5289CAC7C51410000002077745441C3F5289CAD7C5141EC51B82E7774544133333343B17C51413D0AD7F37A745441000000A0B97C514100000060837454413D0AD753BF7C51415C8FC235897454411E52AEA3C37C51410DA3E10E8C74544169BB5701C77C5141C26C0B6A8E74544171720595C77C5141E7BE65DE8E745441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>572505 - 3450838
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -27 </desc>
+<a>
+010600000001000000010300000001000000110000009A999989AB7C51410AD7A3F0957454419A9999F9AE7C5141713D0AD79674544185EB51A8BB7C514152B81E359974544148E17A34C67C5141666666769A745441E17A14AECD7C5141EC51B8FE9A745441C3F5286CD17C5141295C8FC2987454417B14AE37CD7C5141713D0A779374544114AE47B1CA7C51410AD7A340927454411F85EB11C87C5141000000808E7454413D0AD753BF7C51415C8FC2358974544114AE47C1BE7C514185EB51188A7454410AD7A330BC7C5141333333438C7454419A9999D9B67C51411F85EB1190745441B81E852BB47C51411F85EBC1917454411F85EB71B17C51418FC2F56893745441CDCCCC7CAC7C5141D7A370DD957454419A999989AB7C51410AD7A3F095745441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000295C8FC2927C5141B81E857B7C7454415C8FC235957C5141E17A14EE84745441E17A14FE8C7C51413D0AD7D3877454413D0AD7A3947C51417B14AEA78C745441295C8F029D7C5141A4703D2A9174544152B81E55A47C5141D7A3700D947454419A999989AB7C51410AD7A3F0957454415C19653BB67C5141B0B1801E98745441F3A80A99BC7C51414E2CC35199745441FF743A7DC17C51417527C1E69974544152D271F3C77C51417A993D969A7454415AD9D50DCC7C5141657BAA799A7454415FF18D2FCE7C51413A4887859974544105A662DECF7C5141B0B1801E987454413CE2FE6DD07C5141A19C2B72977454413CE2FE6DD07C51419F904F6196745441B24BF806CF7C51418166A508957454412A986A53CD7C5141D850F799937454416F266416CD7C5141B2060E679374544180F440E0CA7C5141F2B7E67F91745441A4856C45C97C5141DDD200389074544153B541DBC87C5141B86F6EDF8F74544169BB5701C77C5141C26C0B6A8E7454411E52AEA3C37C51410DA3E10E8C7454413D0AD753BF7C51415C8FC23589745441000000A0B97C5141000000608374544133333343B17C51413D0AD7F37A745441C3F5289CAD7C5141EC51B82E77745441C3F5289CAC7C51410000002077745441666666D6A67C5141E17A143E78745441D7A3701D997C5141000000307B745441295C8FC2927C5141B81E857B7C745441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>574365 - 245064
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+0106000000010000000103000000010000000C000000F6285C4F14BC5041B81E854B21265441666666C614BC50410000008022265441CDCCCCEC0EBC50413D0AD7C32D26544114AE475124BC50413333330340265441CDCCCCDC2BBC504185EB51683F26544114AE470125BC50411F85EB0133265441295C8F6222BC504152B81EC52D2654419A9999A91FBC5041666666962726544148E17A541CBC5041F6285CFF1F265441E17A140E18BC5041713D0AB715265441D7A3705D11BC50418FC2F5A819265441F6285C4F14BC5041B81E854B21265441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000666666C614BC50410000008022265441769A03B114BC5041367E2EA922265441A5D213A313BC5041BBEAC36D25265441FDCF0A1E15BC504159EDCCF22326544142F8C69D18BC5041E4DBF7B7202654418620831D1CBC50417F9742E91F26544105E332481CBC50416B07D2E11F265441F4CD3F821BBC5041DA1EB3051E265441E17A140E18BC5041713D0AB715265441483E1DCD15BC504111C9440B1726544178732F3E15BC5041FA468D5F17265441954497FB14BC5041F98D883D182654413B00E22C14BC5041EB46CAE9182654416E30B93B13BC50418EBB56C718265441274A73AF12BC5041BBD6A3E118265441D7A3705D11BC50418FC2F5A819265441F6285C4F14BC5041B81E854B21265441666666C614BC50410000008022265441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>574365 - 325892
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -18 </desc>
+<a>
+0106000000010000000103000000010000000C000000F6285C4F14BC5041B81E854B21265441666666C614BC50410000008022265441CDCCCCEC0EBC50413D0AD7C32D26544114AE475124BC50413333330340265441CDCCCCDC2BBC504185EB51683F26544114AE470125BC50411F85EB0133265441295C8F6222BC504152B81EC52D2654419A9999A91FBC5041666666962726544148E17A541CBC5041F6285CFF1F265441E17A140E18BC5041713D0AB715265441D7A3705D11BC50418FC2F5A819265441F6285C4F14BC5041B81E854B21265441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000666666C614BC50410000008022265441769A03B114BC5041367E2EA922265441A5D213A313BC5041BBEAC36D25265441FDCF0A1E15BC504159EDCCF22326544142F8C69D18BC5041E4DBF7B7202654418620831D1CBC50417F9742E91F26544105E332481CBC50416B07D2E11F265441F4CD3F821BBC5041DA1EB3051E265441E17A140E18BC5041713D0AB715265441483E1DCD15BC504111C9440B1726544178732F3E15BC5041FA468D5F17265441954497FB14BC5041F98D883D182654413B00E22C14BC5041EB46CAE9182654416E30B93B13BC50418EBB56C718265441274A73AF12BC5041BBD6A3E118265441D7A3705D11BC50418FC2F5A819265441F6285C4F14BC5041B81E854B21265441666666C614BC50410000008022265441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>585595 - 1527178
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000001500000052B81EF5C5DF50417B14AE779EED5441EC51B8CECBDF50410AD7A390ABED544133333303E4DF5041A4703DCAA5ED5441D7A3703DE7DF5041CDCCCC3CAEED5441E17A146EF4DF504114AE4721ABED5441A4703DEAFFDF5041F6285CBFA8ED5441295C8F7205E0504148E17A54A8ED544185EB518805E050418FC2F548A7ED5441E17A142E08E05041A4703DDA86ED5441AE47E12A07E050413D0AD72387ED54410AD7A3B0FCDF504114AE47C18AED544133333363F6DF5041A4703DBA8BED5441AE47E17AF3DF5041CDCCCC1C8DED5441E17A149EEEDF504114AE475190ED5441A4703DBAE7DF50418FC2F5D891ED5441A4703D8AE0DF50416666664694ED5441A4703DCADCDF50411F85EB6194ED5441000000C0D7DF50418FC2F58894ED54415C8FC295D2DF504152B81EC595ED5441F6285C3FC8DF5041E17A149E9AED544152B81EF5C5DF50417B14AE779EED5441
+</a>
+
+<b>
+010600000001000000010300000001000000280000005124AB7F02E05041314E728DA8ED54418F2EFC1501E050414E83BDA8A8ED5441C56EA5F1FEDF5041DAEDEDF2A8ED54414678FF6AFDDF5041869DF743A9ED54411060EC1CF8DF5041453DB15DAAED5441F8D03276EFDF504123DAED4CACED5441E5D48CEBEBDF504115F48722ADED54410A963056E9DF5041942758BEADED544166ECB47CE7DF5041C308E52DAEED5441D7A3703DE7DF5041CDCCCC3CAEED54413915C287E5DF5041DCA43BC3A9ED5441849F385BE5DF5041E305AA4EA9ED5441316D2A71E4DF5041EF130FEAA6ED5441D683131CE4DF5041FB8D590BA6ED544137476981E2DF5041E6C14826A6ED54415C024D08DADF5041EF4FCE2BA8ED5441D0AA1E66D7DF5041D422A8CCA8ED5441790E9DD3D3DF5041BB9DD8A6A9ED54418123416BD0DF5041ACD0FA76AAED544143A64055CEDF50410FBD62F6AAED5441FC9EE061CDDF50418BAC7330ABED5441F02EFE67CCDF50417031126CABED54416666A8E3CBDF504187FEA48BABED5441E7AD7455CDDF5041676F9BFAAEED544152A89964CFDF504164AF9696B3ED54416A1EB821D1DF50417901F67AB7ED5441DE64ABEDD2DF5041F5E1D3FABAED5441C6BA1D9EE0DF5041EEEA95B8B7ED5441B745FAEAE7DF5041A2D6B2FBB5ED54413D1B28D9EEDF5041B8D75955B4ED544196138234F6DF50415AFD07A6B2ED5441C515E1FAFADF5041EBE980A9B1ED544191830C1EFEDF5041F4FB610BB1ED5441A7267B1504E0504120AA1796B0ED544158DE78F705E0504167AA1471B0ED5441957A1C8906E0504103A60058B0ED5441D5C6DEF005E05041B336366BACED5441248E869505E05041C75D0A84AAED5441AFCAAA5205E050411701E356A8ED54415124AB7F02E05041314E728DA8ED5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>585595 - 4200595
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000001500000052B81EF5C5DF50417B14AE779EED5441EC51B8CECBDF50410AD7A390ABED544133333303E4DF5041A4703DCAA5ED5441D7A3703DE7DF5041CDCCCC3CAEED5441E17A146EF4DF504114AE4721ABED5441A4703DEAFFDF5041F6285CBFA8ED5441295C8F7205E0504148E17A54A8ED544185EB518805E050418FC2F548A7ED5441E17A142E08E05041A4703DDA86ED5441AE47E12A07E050413D0AD72387ED54410AD7A3B0FCDF504114AE47C18AED544133333363F6DF5041A4703DBA8BED5441AE47E17AF3DF5041CDCCCC1C8DED5441E17A149EEEDF504114AE475190ED5441A4703DBAE7DF50418FC2F5D891ED5441A4703D8AE0DF50416666664694ED5441A4703DCADCDF50411F85EB6194ED5441000000C0D7DF50418FC2F58894ED54415C8FC295D2DF504152B81EC595ED5441F6285C3FC8DF5041E17A149E9AED544152B81EF5C5DF50417B14AE779EED5441
+</a>
+
+<b>
+010600000001000000010300000001000000280000005124AB7F02E05041314E728DA8ED54418F2EFC1501E050414E83BDA8A8ED5441C56EA5F1FEDF5041DAEDEDF2A8ED54414678FF6AFDDF5041869DF743A9ED54411060EC1CF8DF5041453DB15DAAED5441F8D03276EFDF504123DAED4CACED5441E5D48CEBEBDF504115F48722ADED54410A963056E9DF5041942758BEADED544166ECB47CE7DF5041C308E52DAEED5441D7A3703DE7DF5041CDCCCC3CAEED54413915C287E5DF5041DCA43BC3A9ED5441849F385BE5DF5041E305AA4EA9ED5441316D2A71E4DF5041EF130FEAA6ED5441D683131CE4DF5041FB8D590BA6ED544137476981E2DF5041E6C14826A6ED54415C024D08DADF5041EF4FCE2BA8ED5441D0AA1E66D7DF5041D422A8CCA8ED5441790E9DD3D3DF5041BB9DD8A6A9ED54418123416BD0DF5041ACD0FA76AAED544143A64055CEDF50410FBD62F6AAED5441FC9EE061CDDF50418BAC7330ABED5441F02EFE67CCDF50417031126CABED54416666A8E3CBDF504187FEA48BABED5441E7AD7455CDDF5041676F9BFAAEED544152A89964CFDF504164AF9696B3ED54416A1EB821D1DF50417901F67AB7ED5441DE64ABEDD2DF5041F5E1D3FABAED5441C6BA1D9EE0DF5041EEEA95B8B7ED5441B745FAEAE7DF5041A2D6B2FBB5ED54413D1B28D9EEDF5041B8D75955B4ED544196138234F6DF50415AFD07A6B2ED5441C515E1FAFADF5041EBE980A9B1ED544191830C1EFEDF5041F4FB610BB1ED5441A7267B1504E0504120AA1796B0ED544158DE78F705E0504167AA1471B0ED5441957A1C8906E0504103A60058B0ED5441D5C6DEF005E05041B336366BACED5441248E869505E05041C75D0A84AAED5441AFCAAA5205E050411701E356A8ED54415124AB7F02E05041314E728DA8ED5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>591518 - 1824296
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000001000000010300000001000000230000005C8FC2D575C75041D7A3700D473654410AD7A350AAC75041D7A3706D363654410AD7A3C0D3C75041CDCCCC4C293654413D0AD753D5C75041E17A142E26365441295C8F22D3C75041CDCCCCBC1F3654413D0AD7A3CFC75041CDCCCCCC14365441D7A3701DCFC750415C8FC205133654418FC2F568CCC750417B14AED7093654419A999959CBC75041C3F5280C06365441B81E854BC8C7504152B81E65043654413333337380C750415C8FC2251B365441000000A080C75041CDCCCC2C1C3654413D0AD7F37EC750417B14AED71C3654417B14AE1781C7504185EB518822365441B81E85AB81C75041A4703D9A23365441F6285C0F85C75041E17A144E2336544114AE477185C75041000000A0243654415C8FC29588C7504166666696233654413333330389C750419A9999E92436544114AE47E185C75041295C8FF2253654410AD7A3807DC75041000000302836544148E17A247DC7504152B81E5527365441713D0AF77BC7504148E17AB42336544152B81E857AC75041F6285C4F24365441D7A3705D79C75041B81E851B21365441D7A370ED7AC7504114AE47812036544114AE474179C75041E17A144E1B3654418FC2F5F87BC75041CDCCCC6C1A365441713D0AC770C750418FC2F578143654411F85EB1164C75041CDCCCC9C0D36544148E17AD462C75041B81E856B0F36544185EB51F868C75041B81E856B20365441E17A14BE6FC75041333333933336544148E17A3475C750410AD7A300453654415C8FC2D575C75041D7A3700D47365441
+</a>
+
+<b>
+01060000000100000001030000000100000007000000965CE0EA80C75041F01DDCFF1A3654418DF7D7BB97C750419C4F55CB26365441A7B80DE6CFC75041842EE5CA15365441BCD06358CBC750417364810B063654413C95470DC8C750419F6DBC8504365441A9EBE4F4C0C75041A53F0FB806365441965CE0EA80C75041F01DDCFF1A365441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>591518 - 3196606
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000001000000010300000001000000230000005C8FC2D575C75041D7A3700D473654410AD7A350AAC75041D7A3706D363654410AD7A3C0D3C75041CDCCCC4C293654413D0AD753D5C75041E17A142E26365441295C8F22D3C75041CDCCCCBC1F3654413D0AD7A3CFC75041CDCCCCCC14365441D7A3701DCFC750415C8FC205133654418FC2F568CCC750417B14AED7093654419A999959CBC75041C3F5280C06365441B81E854BC8C7504152B81E65043654413333337380C750415C8FC2251B365441000000A080C75041CDCCCC2C1C3654413D0AD7F37EC750417B14AED71C3654417B14AE1781C7504185EB518822365441B81E85AB81C75041A4703D9A23365441F6285C0F85C75041E17A144E2336544114AE477185C75041000000A0243654415C8FC29588C7504166666696233654413333330389C750419A9999E92436544114AE47E185C75041295C8FF2253654410AD7A3807DC75041000000302836544148E17A247DC7504152B81E5527365441713D0AF77BC7504148E17AB42336544152B81E857AC75041F6285C4F24365441D7A3705D79C75041B81E851B21365441D7A370ED7AC7504114AE47812036544114AE474179C75041E17A144E1B3654418FC2F5F87BC75041CDCCCC6C1A365441713D0AC770C750418FC2F578143654411F85EB1164C75041CDCCCC9C0D36544148E17AD462C75041B81E856B0F36544185EB51F868C75041B81E856B20365441E17A14BE6FC75041333333933336544148E17A3475C750410AD7A300453654415C8FC2D575C75041D7A3700D47365441
+</a>
+
+<b>
+01060000000100000001030000000100000007000000965CE0EA80C75041F01DDCFF1A3654418DF7D7BB97C750419C4F55CB26365441A7B80DE6CFC75041842EE5CA15365441BCD06358CBC750417364810B063654413C95470DC8C750419F6DBC8504365441A9EBE4F4C0C75041A53F0FB806365441965CE0EA80C75041F01DDCFF1A365441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>631192 - 64873
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -23 </desc>
+<a>
+010600000001000000010300000001000000480000001F6E78EF2A51514181C78426E879544101431F0E2B5151416D5BC613E8795441943C24AC2A5151411BC3D76AE779544104C137982951514119B91C8FE5795441B050D26729515141279FAB3BE57954415E4B345424515141F5674C9CE9795441A5E145101D515141A558407AEF795441FFC05EC516515141FF2DEB20F4795441200192111551514132601339F57954419C5967F014515141A7F4699CF57954411C990B48155151414D221598F779544172B4547F165151418565B14CFA795441D407311317515141C067E6F7FA795441FF694C9818515141490C6A74FB795441C8788B89195151418DDEABB2FB79544121FC5A8A1A515141017B8F3FFD795441F3DAA60E1B515141960094EBFE79544115C4C72D1B515141F4EBE9B5FF795441047BC0341A51514139BE2BF4FF795441C2B9F2921B5151411827E67A037A5441B267CB391C5151413875FA50037A5441734E8AA11B515141DA97A456057A5441EB54F95E195151414FCEDC51067A54411D11A22B17515141DD2D2E10077A5441D5FB165E1651514158CA2687067A544149BABFC31451514131970C34027A54413871B8CA1351514198526F91027A54410DB88A1814515141FAA54B25037A5441CCCAA1E70F5151416C0637F8037A5441D5CB00910F51514165C9344C037A5441320E69880E51514107DEDE81027A54413F46FCE40D515141469FAC23017A54418780C4EC0D515141F12C51BF017A5441E9D3A0800E51514165C9344C037A54415D416E970E5151417A4598D6037A5441EE5D2F990F5151416C0637F8037A544191CE1C6E105151412DF5E689047A5441A00D7E4C10515141CB50096A057A5441B2E2DF710F5151414C02FC65067A54418C02E1781051514139927CE9067A5441EDCEB6BC10515141441485F8067A544104BDAC0412515141FBDA24EC067A54411F85EBA11551514133333333067A5441E17A140E175151418FC2F548077A5441EC51B8EE1B51514185EB51A8057A5441AE47E18A1C515141F6285C8F037A5441302AD6F71D5151413BC06697027A544163C53FFA2051514181B46E79017A5441B725168223515141C817DA58097A544189563DAC275151412D0A36B1167A54412BBDC2872A51514137D0D435217A54411A1DA9612B515141E358424A277A54412396A3C72C51514121FF2D412F7A54416989425C2D515141A77B812B2F7A544174A1A55C2B515141A601FA67247A5441032D56492A5151412A47B3581D7A5441A698EB282951514197135914187A544106AD2583285151415E3D011D167A5441934AC52527515141A2EE1F79117A544159E2F8CC2551514157A65E500D7A54410C6BB62C255151413B480E0F0B7A54418E7EEE63225151414FD672A1027A54419C4A5D782151514121DF8B52007A5441F362FD6A1F515141F8D7557BFB7954412A9A07371F515141782A9B22FB795441641A6C2A1F5151413AEDE1FFFA795441A10908D51D51514105092573F8795441EE1F91CB1C515141B359E196F8795441A09752A91A51514173118D29F47954411BAE3D531F5151416E57A94BF0795441FCA9CE8E2551514140F05C70EB7954411F6E78EF2A51514181C78426E8795441
+</a>
+
+<b>
+01060000000100000001030000000100000018000000A92AD6F71D5151410EC06697027A5441AE47E18A1C515141F6285C8F037A5441EC51B8EE1B51514185EB51A8057A5441E17A140E175151418FC2F548077A54411F85EBA11551514133333333067A5441AE47E13A1151514148E17A14077A5441713D0A670F515141CDCCCCAC067A544185EB51A80E51514133333393047A5441CDCCCC2C0B51514166666636FC7954413D0AD7C3095151417B14AE07FD7954417B14AE970A515141295C8FE2FE795441C3F528EC055151411F85EBE1017A544152B81ED50C515141B81E855B1B7A54413D0AD75314515141E17A14FE367A544148E17AD419515141C3F5287C357A5441AE47E11A27515141713D0A87317A54410AD7A3C02C51514114AE4791307A544148E17A042B5151410AD7A390257A54415C8FC2D52951514152B81ED51E7A5441DDF0A6EB28515141F6C4EB481B7A544189563DAC275151412D0A36B1167A5441CC5EB4D223515141F5CA2E5B0A7A5441A25691B12051514100376994017A5441A92AD6F71D5151410EC06697027A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>596305 - 1240672
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -17 </desc>
+<a>
+0106000000010000000103000000010000003D00000085EB517881595141CDCCCC4CBB7A54413D0AD7C380595141B81E85EBBB7A5441E17A140E8059514152B81E75BC7A54415C8FC2857F59514166666676BC7A54419A9999197F59514152B81E85BC7A54411F85EBB17E59514166666626BD7A54411F85EB217E5951413D0AD793BD7A5441295C8FB27D59514152B81EB5BD7A5441D7A370FD7C595141333333B3BD7A5441666666567C595141D7A370FDBD7A5441666666667B5951411F85EB31BE7A544114AE47517B5951413D0AD7E3BE7A54410AD7A3907A5951410AD7A370BF7A5441A4703DCA79595141D7A3701DC07A544114AE4751785951411F85EB61C07A5441D7A3708D7759514114AE4731C07A5441A4703D9A7659514166666626C07A5441F6285CBF75595141E17A14BEC07A54413D0AD763745951417B14AE37C17A54415C8FC2A57359514166666666C17A544152B81E2573595141C3F528ECC17A544114AE474172595141E17A142EC27A5441666666B66F5951411F85EB51C37A5441A4703DBA6E595141666666B6C37A5441AE47E1CA6D595141000000E0C37A5441EC51B8FE6C595141CDCCCC3CC47A5441713D0A076C5951418FC2F588C57A5441A4703D5A6B59514148E17A14C67A54417B14AEC7715951413D0AD703D47A54413D0AD74373595141A4703D5AD37A54419A9999098C5951411F85EBF1C67A5441D7A3705D8F595141C3F528BCCB7A54415C8FC2C591595141CDCCCC5CC87A5441333333C39359514114AE4731C77A5441713D0A47975951419A999959C57A544114AE4731965951413D0AD773C37A5441295C8F3294595141CDCCCC9CBF7A54411F85EB81925951418FC2F5B8BC7A544114AE47C191595141E17A144EBB7A5441CDCCCCDC905951417B14AE67B97A54410000001090595141713D0AD7B77A5441333333238F5951411F85EBA1B67A5441A4703DEA8D59514100000040B77A5441B81E858B8C595141E17A14EEB77A544152B81EE58B5951411F85EBE1B77A544152B81E258B59514148E17AD4B77A54418FC2F5D8895951417B14AE17B87A5441D7A3706D89595141C3F5285CB87A5441C3F528DC8859514185EB5118B97A5441B81E857B885951411F85EB61B97A544152B81EA5875951411F85EB91B97A54415C8FC2D586595141AE47E1CAB97A5441AE47E16A865951418FC2F598B97A54415C8FC2C5855951411F85EB41B97A5441333333238559514100000020B97A54413D0AD763845951413D0AD783B97A5441AE47E1BA83595141713D0A47BA7A54410000005083595141EC51B8BEBA7A544148E17AE48259514185EB51F8BA7A544148E17A0482595141B81E851BBB7A544185EB517881595141CDCCCC4CBB7A5441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000DFCBD93B8B595141261F19A4B77A544161BE87D98C5951414770A0BCB67A5441AE47E16A8B595141F6285C8FB47A544152B81EE5875951410AD7A320B07A5441F6285C9F86595141D7A3701DAE7A5441295C8F2286595141B81E859BAF7A544179AD30867A595141602E7DD2B67A5441BC008B54745951410B904649B97A5441E4D9D2826D595141B7C2629DBB7A54414294FFC5695951419CF2A97DBD7A5441666666F666595141E17A142EC17A54417B68CB04685951415BD33928C67A54410E71E2376B595141D444C2B1C47A5441F42D79236D59514118DB67ECC37A544111FD90DB6D595141B8EE7FA2C37A544119B4ADB873595141010CDD47C17A54419B40206674595141C3343B02C17A5441D9E68EC575595141CDB1FB70C07A5441507F85A076595141207C2012C07A544168761452795951418656A1EBBE7A544133D5C46A7B5951411010F012BE7A54419368FF977F595141375EE964BC7A54414D55E92B80595141AE516C29BC7A54413D0AD7C380595141B81E85EBBB7A544170028CEC82595141440F020CBB7A5441AE47E16A865951418FC2F598B97A54412B50D45789595141202D2678B87A54412331355C8959514126777A72B87A54417896CA7B8A595141BDBBBCF6B77A5441E71C7C9C8A595141117A1FF0B77A54418CAD34138B5951415C3BD7BAB77A5441DFCBD93B8B595141261F19A4B77A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>596305 - 3573848
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -17 </desc>
+<a>
+0106000000010000000103000000010000003D00000085EB517881595141CDCCCC4CBB7A54413D0AD7C380595141B81E85EBBB7A5441E17A140E8059514152B81E75BC7A54415C8FC2857F59514166666676BC7A54419A9999197F59514152B81E85BC7A54411F85EBB17E59514166666626BD7A54411F85EB217E5951413D0AD793BD7A5441295C8FB27D59514152B81EB5BD7A5441D7A370FD7C595141333333B3BD7A5441666666567C595141D7A370FDBD7A5441666666667B5951411F85EB31BE7A544114AE47517B5951413D0AD7E3BE7A54410AD7A3907A5951410AD7A370BF7A5441A4703DCA79595141D7A3701DC07A544114AE4751785951411F85EB61C07A5441D7A3708D7759514114AE4731C07A5441A4703D9A7659514166666626C07A5441F6285CBF75595141E17A14BEC07A54413D0AD763745951417B14AE37C17A54415C8FC2A57359514166666666C17A544152B81E2573595141C3F528ECC17A544114AE474172595141E17A142EC27A5441666666B66F5951411F85EB51C37A5441A4703DBA6E595141666666B6C37A5441AE47E1CA6D595141000000E0C37A5441EC51B8FE6C595141CDCCCC3CC47A5441713D0A076C5951418FC2F588C57A5441A4703D5A6B59514148E17A14C67A54417B14AEC7715951413D0AD703D47A54413D0AD74373595141A4703D5AD37A54419A9999098C5951411F85EBF1C67A5441D7A3705D8F595141C3F528BCCB7A54415C8FC2C591595141CDCCCC5CC87A5441333333C39359514114AE4731C77A5441713D0A47975951419A999959C57A544114AE4731965951413D0AD773C37A5441295C8F3294595141CDCCCC9CBF7A54411F85EB81925951418FC2F5B8BC7A544114AE47C191595141E17A144EBB7A5441CDCCCCDC905951417B14AE67B97A54410000001090595141713D0AD7B77A5441333333238F5951411F85EBA1B67A5441A4703DEA8D59514100000040B77A5441B81E858B8C595141E17A14EEB77A544152B81EE58B5951411F85EBE1B77A544152B81E258B59514148E17AD4B77A54418FC2F5D8895951417B14AE17B87A5441D7A3706D89595141C3F5285CB87A5441C3F528DC8859514185EB5118B97A5441B81E857B885951411F85EB61B97A544152B81EA5875951411F85EB91B97A54415C8FC2D586595141AE47E1CAB97A5441AE47E16A865951418FC2F598B97A54415C8FC2C5855951411F85EB41B97A5441333333238559514100000020B97A54413D0AD763845951413D0AD783B97A5441AE47E1BA83595141713D0A47BA7A54410000005083595141EC51B8BEBA7A544148E17AE48259514185EB51F8BA7A544148E17A0482595141B81E851BBB7A544185EB517881595141CDCCCC4CBB7A5441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000DFCBD93B8B595141261F19A4B77A544161BE87D98C5951414770A0BCB67A5441AE47E16A8B595141F6285C8FB47A544152B81EE5875951410AD7A320B07A5441F6285C9F86595141D7A3701DAE7A5441295C8F2286595141B81E859BAF7A544179AD30867A595141602E7DD2B67A5441BC008B54745951410B904649B97A5441E4D9D2826D595141B7C2629DBB7A54414294FFC5695951419CF2A97DBD7A5441666666F666595141E17A142EC17A54417B68CB04685951415BD33928C67A54410E71E2376B595141D444C2B1C47A5441F42D79236D59514118DB67ECC37A544111FD90DB6D595141B8EE7FA2C37A544119B4ADB873595141010CDD47C17A54419B40206674595141C3343B02C17A5441D9E68EC575595141CDB1FB70C07A5441507F85A076595141207C2012C07A544168761452795951418656A1EBBE7A544133D5C46A7B5951411010F012BE7A54419368FF977F595141375EE964BC7A54414D55E92B80595141AE516C29BC7A54413D0AD7C380595141B81E85EBBB7A544170028CEC82595141440F020CBB7A5441AE47E16A865951418FC2F598B97A54412B50D45789595141202D2678B87A54412331355C8959514126777A72B87A54417896CA7B8A595141BDBBBCF6B77A5441E71C7C9C8A595141117A1FF0B77A54418CAD34138B5951415C3BD7BAB77A5441DFCBD93B8B595141261F19A4B77A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>596455 - 3998640
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -157 </desc>
+<a>
+0106000000010000000103000000010000000E000000D7A3700D7E515141D7A370DDAF7A544114AE47617E515141F6285C2FAA7A54417B14AE477E515141C3F528FCA37A54410AD7A3907C51514166666656A37A5441C3F5282C6F515141295C8F22A47A54418FC2F51861515141295C8F02A47A544148E17A2463515141A4703D8AB17A54418FC2F5A86451514148E17A14BB7A5441D7A370BD6E51514185EB5138BA7A54418FC2F5A879515141D7A3703DB97A544114AE47D17A51514100000070B97A5441E17A144E7D515141B81E85DBB37A5441000000F07D51514166666606B27A5441D7A3700D7E515141D7A370DDAF7A5441
+</a>
+
+<b>
+0106000000010000000103000000010000001700000038F009356551514173618708BB7A5441000000B065515141AE47E13ABE7A5441CDCCCCDC66515141713D0A47C57A54413D0AD76367515141295C8F62CC7A544161E3B97B67515141799914FACE7A54410F9C9AC768515141E93D651FD17A54411E5447D767515141883E995BD37A54417B14AEF767515141C3F528ACD57A5441529CC07E6E5151417E85F338D37A544100C696A86D515141EAC21934D07A5441C887EC5E735151413AD1EC85CC7A544162AB7C9F785151412D175AFDCA7A5441D8FEE3D77B51514196529F1BCA7A5441F44EC9797C515141A701289AC87A54411397FFA47B515141B707D264C67A5441C5618BC97A515141CBF05CAEC37A5441431C19657A5151410C75983FC17A544150643B837A51514151A04894BC7A544126CA8E327B515141A64198C9B97A544190B5E4ED7A515141CEA7B6E4B87A544126919127655151417EAD1669BA7A5441AB4BB63D6551514107F2C907BB7A544138F009356551514173618708BB7A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>597524 - 1767955
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000001E0000000000000052D55041EC51B8CE097A54415C8FC2E54FD5504100000030057A544185EB51284CD5504152B81E85FB795441A4703D8A4AD55041AE47E18AF779544114AE473144D5504100000040F8795441A4703D2A23D55041F6285C0FF179544114AE472123D550415C8FC275EE795441F6285CDF21D550419A999909EE79544152B81E05FFD4504166666646E279544148E17AF4EDD450411F85EB81DC795441B81E858BE0D45041EC51B8DED97954413D0AD7B3D3D45041B81E854BD77954415C8FC245CDD4504133333323D679544148E17A24C6D4504166666646D5795441713D0A47BCD45041713D0A97DB79544114AE4701B9D4504148E17A84DD795441EC51B8EEACD45041E17A14BEE37954413D0AD773B4D4504185EB5168E57954417B14AEE7C1D450417B14AEE7E7795441E17A144ED7D45041C3F528FCEB7954418FC2F598DCD45041000000A0ED795441D7A3707DFCD4504152B81E95F87954415C8FC2551ED55041295C8F22047A5441CDCCCCFC20D55041F6285CDF047A544148E17AA424D550419A9999E9057A5441AE47E10A33D5504185EB5158097A5441E17A14DE37D55041F6285C3F0A7A5441F6285CEF3CD550415C8FC2C50A7A5441A4703D3A51D550411F85EBF10A7A54410000000052D55041EC51B8CE097A5441
+</a>
+
+<b>
+010600000001000000010300000001000000140000008C50DE1809D55041A4840CADE579544152B81E05FFD4504166666646E279544148E17AF4EDD450411F85EB81DC795441B81E858BE0D45041EC51B8DED97954413D0AD7B3D3D45041B81E854BD77954415C8FC245CDD4504133333323D679544148E17A24C6D4504166666646D5795441713D0A47BCD45041713D0A97DB79544114AE4701B9D4504148E17A84DD795441EC51B8EEACD45041E17A14BEE37954413D0AD773B4D4504185EB5168E57954417B14AEE7C1D450417B14AEE7E7795441E17A144ED7D45041C3F528FCEB7954418FC2F598DCD45041000000A0ED795441D7A3707DFCD4504152B81E95F87954413C4583B702D55041AABDCAC6FA795441CA0B8E9C08D55041CAD60967E87954410E7661A208D5504192943B54E87954419080507A09D5504129B3EFCDE57954418C50DE1809D55041A4840CADE5795441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>597524 - 3288871
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000001E0000000000000052D55041EC51B8CE097A54415C8FC2E54FD5504100000030057A544185EB51284CD5504152B81E85FB795441A4703D8A4AD55041AE47E18AF779544114AE473144D5504100000040F8795441A4703D2A23D55041F6285C0FF179544114AE472123D550415C8FC275EE795441F6285CDF21D550419A999909EE79544152B81E05FFD4504166666646E279544148E17AF4EDD450411F85EB81DC795441B81E858BE0D45041EC51B8DED97954413D0AD7B3D3D45041B81E854BD77954415C8FC245CDD4504133333323D679544148E17A24C6D4504166666646D5795441713D0A47BCD45041713D0A97DB79544114AE4701B9D4504148E17A84DD795441EC51B8EEACD45041E17A14BEE37954413D0AD773B4D4504185EB5168E57954417B14AEE7C1D450417B14AEE7E7795441E17A144ED7D45041C3F528FCEB7954418FC2F598DCD45041000000A0ED795441D7A3707DFCD4504152B81E95F87954415C8FC2551ED55041295C8F22047A5441CDCCCCFC20D55041F6285CDF047A544148E17AA424D550419A9999E9057A5441AE47E10A33D5504185EB5158097A5441E17A14DE37D55041F6285C3F0A7A5441F6285CEF3CD550415C8FC2C50A7A5441A4703D3A51D550411F85EBF10A7A54410000000052D55041EC51B8CE097A5441
+</a>
+
+<b>
+010600000001000000010300000001000000140000008C50DE1809D55041A4840CADE579544152B81E05FFD4504166666646E279544148E17AF4EDD450411F85EB81DC795441B81E858BE0D45041EC51B8DED97954413D0AD7B3D3D45041B81E854BD77954415C8FC245CDD4504133333323D679544148E17A24C6D4504166666646D5795441713D0A47BCD45041713D0A97DB79544114AE4701B9D4504148E17A84DD795441EC51B8EEACD45041E17A14BEE37954413D0AD773B4D4504185EB5168E57954417B14AEE7C1D450417B14AEE7E7795441E17A144ED7D45041C3F528FCEB7954418FC2F598DCD45041000000A0ED795441D7A3707DFCD4504152B81E95F87954413C4583B702D55041AABDCAC6FA795441CA0B8E9C08D55041CAD60967E87954410E7661A208D5504192943B54E87954419080507A09D5504129B3EFCDE57954418C50DE1809D55041A4840CADE5795441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>891792 - 405791
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+0106000000010000000103000000010000001600000085EB5138A4EF5041B81E853B0BE2544114AE47C1A3EF5041B81E85CB0AE2544152B81E9598EF50411F85EBD119E2544148E17A348FEF5041EC51B88E26E254415C8FC28584EF50413D0AD74334E25441713D0A7789EF5041F6285CEF37E25441A4703DAA94EF504185EB51D82DE25441D7A3709DA1EF50419A99996921E25441C3F5284CAFEF50416666661614E2544133333343BBEF5041C3F5282C08E2544148E17A04C7EF5041E17A14AEFCE15441AE47E14AD3EF50418FC2F538F0E15441CDCCCC3CE2EF5041D7A370EDE0E154419A999909E3EF50411F85EB41E0E15441E17A140ECFEF504185EB5158D1E154411F85EBF1CEEF5041295C8F82D1E154415C8FC245CEEF5041E17A147ED2E15441E17A149EBBEF50413D0AD723EBE154417B14AE77AEEF5041C3F5281CFDE1544148E17AE4ADEF504152B81EE5FDE1544152B81E75A7EF5041C3F5285C06E2544185EB5138A4EF5041B81E853B0BE25441
+</a>
+
+<b>
+01060000000100000001030000000100000028000000E17A140ECFEF504185EB5158D1E154411F85EBF1CEEF5041295C8F82D1E154415C8FC245CEEF5041E17A147ED2E1544170A937FFCDEF5041CF6448DBD2E154414EA86DCCCCEF50411DF89E70D4E15441B68A1AFFCBEF504148CEE67FD5E154411E6ED169CBEF5041874E2445D6E15441EAEA894ECBEF5041AB1D2F69D6E15441A6EF4095C4EF504101B1644BDFE15441EF5815E5BAEF50417A2FA520ECE154417B14AE77AEEF5041C3F5281CFDE1544148E17AE4ADEF504152B81EE5FDE15441AB35D332AAEF50416AED17C102E2544152B81E75A7EF5041C3F5285C06E2544185EB5138A4EF5041B81E853B0BE2544114AE47C1A3EF5041B81E85CB0AE25441E85D1D5AA0EF50413894145F0FE254418B2EB50C9CEF5041073D462815E254415709A16199EF50411965E4BE18E254413DB1911895EF5041E49D468E1EE2544148E17A348FEF5041EC51B88E26E25441B5031BB688EF5041EBB0D5E32EE254415C8FC28584EF50413D0AD74334E25441713D0A7789EF5041F6285CEF37E25441BE0514558EEF5041A725D08C33E25441512CE2C392EF50419EA0798E2FE2544153F372E395EF5041FA92A0AB2CE25441EB872A999AEF5041909E172628E254414B9D0550A0EF504159B8B1A922E254415150994CACEF5041ABF4E70117E2544100271ED5B3EF5041602F4B920FE2544133333343BBEF5041C3F5282C08E25441E46ECBB4BEEF5041AB8D40CE04E2544194F58F41C6EF50419C1CA56CFDE15441BD622BB0CEEF5041C9F431E5F4E1544139A6D72FD7EF50413949A63CECE15441CDCCCC3CE2EF5041D7A370EDE0E154419A999909E3EF50411F85EB41E0E154414B8E4E98D8EF5041D7E43C72D8E15441E17A140ECFEF504185EB5158D1E15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>916942 - 293047
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -34 </desc>
+<a>
+01060000000100000001030000000100000016000000AE47E15A7FE35041AE47E12AB7605441C3F5286C6BE35041B81E854BC060544148E17AE466E3504152B81EA5C16054415C8FC23556E35041EC51B8DEC3605441000000704CE3504114AE4761C56054419A99994945E35041C3F528ECC76054419A99997941E350417B14AEB7C86054411F85EB5135E35041713D0A27CF6054410AD7A35030E3504100000060D1605441295C8F122BE350413D0AD713D46054415C8FC29520E35041295C8F42DC6054417B14AE271FE3504100000090DE605441AE47E11A1BE35041E17A143EEA60544148E17A941BE35041EC51B84EEC605441E17A14FE2AE350411F85EB61F8605441CDCCCC0C34E35041295C8F52EA6054419A99991938E35041E17A14AEE46054410AD7A3803DE35041A4703D0ADF605441E17A143E46E35041AE47E19AD86054415C8FC26563E350415C8FC225CA605441E17A14FE80E35041E17A146EBB605441AE47E15A7FE35041AE47E12AB7605441
+</a>
+
+<b>
+0106000000010000000103000000020000001B000000E17A149E40E35041C3F528FCE0605441D7A370ED49E35041713D0A77DA60544114AE4771A6E35041666666B6AB605441C3F528FCA5E350415C8FC2C5AA60544152B81EA59AE35041295C8FA2AB605441666666F696E35041D7A370BDAC605441AE47E11A85E35041D7A3705DB36054413D0AD7E37BE35041AE47E17AB660544148E17A746AE3504100000010BF605441295C8F9266E35041D7A3700DC0605441D7A370CD55E3504185EB51F8C160544152B81EF54BE350418FC2F558C360544185EB514845E35041F6285C2FC56054410AD7A33040E350410AD7A3B0C6605441AE47E1AA38E35041EC51B86ECA6054411F85EBA134E350418FC2F598CD6054415C8FC26532E3504152B81EA5CE6054416666661629E35041713D0A07D1605441CDCCCC6C21E3504100000050D5605441E17A14EE1FE350411F85EBC1D7605441F6285CDF17E3504114AE4761EB605441CDCCCC3C17E35041D7A3706DEC605441666666A627E3504185EB51D8F960544148E17AB42AE3504148E17A94FC6054417B14AE0739E35041CDCCCC8CE8605441A4703DAA3CE35041E17A148EE4605441E17A149E40E35041C3F528FCE06054412A000000A8F930264EE35041852C03B8D46054411B8E9B0849E35041460B313AD7605441CB54FBEF46E35041434EA942D86054416ABC74533DE35041F0A7C67BDF6054416ABC74F338E3504193180406E460544129430FBB34E350414977046AEA605441DEE0F2E332E35041AF6337EDEC605441D74D29492FE35041A8BD4EBDF1605441EB44D82F2FE35041DA1D1CDFF1605441AA08FBF62CE35041F1FAA5D6F460544125170A902AE35041AE49B50BF860544177BE9F422AE35041986E1273F86054411160A4C926E35041D595CD69F56054412C13BC7A25E35041313FFB44F4605441D6F74AC723E350417D4A42C8F26054416B1DE63523E35041D1C12249F26054411ED72DA121E35041A44E46E7F0605441065D8CAE1EE35041B5477953EE6054413D175D611BE35041BD927F70EB6054419EEFA7F61AE3504133333313EB6054417CD45F2C1BE350412263228AEA6054415398168E1DE35041004D6976E4605441401A4CA71FE350413EDEB51BDF605441E4FCE88020E35041337F33F1DC6054419814E3D920E350412903680DDC6054410E2DB21521E35041CDCCCC74DB605441F23FFD8427E35041BC242B70D6605441AC1C5A642EE35041DF4F8D87D16054411A5504BE36E35041C82F536FCD605441053731A53AE35041FA7C5286CB605441D99DE8EF3FE35041CF54C0F0C860544183C0CA0946E35041508D9766C66054415A5778384CE3504151B00675C5605441000000704CE3504114AE4761C56054415C8FC23556E35041EC51B8DEC3605441EF9DC57359E3504125C10470C36054413981E53A5DE35041DBC167DCC26054413108ACA460E35041713D0A57C26054413BDF4F2D64E3504146B6F3D5CA60544106BC0ACB5EE35041BDDB4435CD605441C3F528B451E3504183C0CAF9D2605441A8F930264EE35041852C03B8D4605441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>376994 - 377247
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -15 </desc>
+<a>
+010600000001000000010300000001000000140000006C5FD7E406315141141EEB53B4E654411F85EBE106315141E17A144EB4E6544103484F55FB305141D6A6FE92C5E65441D7A3700DF230514114AE4771D0E654411F85EB91003151411F85EBA1EEE65441295C8F220F315141C3F528EC0CE754415C8FC27511315141295C8F1208E75441E17A140E16315141CDCCCC1CFFE65441333333931B31514148E17AD4F5E65441A53FDA5023315141E33444FFE4E654410BF7AA01103151410B0659D1BAE65441817AA9C50E31514100AF97FDB7E65441F7FDA7890D3151414CBFA41FB5E6544110AE01950C31514178B38173B3E65441396C73070B315141EF216B48B5E6544149D4750409315141FD6A98B8B7E65441A2D6CC1D08315141A95E3050B6E654414AD0290307315141CAAA8296B4E65441BCCBCFE00631514123320D5AB4E654416C5FD7E406315141141EEB53B4E65441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000A03FA7EB0C3151413472230BB4E65441E46A7E4C0D315141EAFD9BB4B4E65441EEC73CA80D31514199BA9C52B5E65441D2E177BB0E315141ADB39FCAB7E65441ED98BEA4143151414A8167F2C4E654419DE5644523315141E7933CE6E4E654418FC2F5B82831514148E17AF4D8E654415C8FC2E5243151411F85EB01D2E65441000000401F315141A4703D5AC7E65441B81E859B1B315141C3F528ECBDE6544185EB517818315141B81E852BB4E65441333333F315315141666666D6A8E6544114AE47E114315141E17A14AEA2E65441AE47E14A103151417B14AE37A6E65441D7A3703D0A315141C3F5283CAFE654416C5FD7E406315141141EEB53B4E65441BCCBCFE00631514123320D5AB4E654414AD0290307315141CAAA8296B4E65441A2D6CC1D08315141A95E3050B6E65441E15174F8083151413A0FD6A5B7E654415C2AE57909315141C0F72213B7E6544146B0F64F0A315141D9A77C1EB6E65441D798CE4E0B3151414F2B7BE2B4E65441B446339F0C31514121821E5FB3E65441A03FA7EB0C3151413472230BB4E65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>455593 - 1501657
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000001700000085EB51A870B2504152B81EC5F7D054411F85EBB17CB25041CDCCCC6CFCD05441295C8FA284B25041295C8F3200D1544114AE47018AB25041295C8F6203D154417B14AE6790B25041AE47E1AA07D1544148E17AB4AEB25041666666A6C7D0544114AE47B1ABB25041C3F528BCC5D054415C8FC2E59CB2504148E17A34D7D054415C8FC20594B25041A4703D5ACFD05441249A545E8DB25041125FBA0DC9D0544100909A9E86B25041AEE3D54FCDD054416268DA9277B25041869FA46DD6D05441850FE50276B25041267C808ED7D0544129811EC271B25041C095FA81DAD054417B1B6CB86EB2504118E722F0DCD05441A75A1F986CB25041891D5AA8DED05441FCA8FC346AB2504134F9CFC1E0D0544192BF639A67B25041B72EA172E3D05441300A2A7A5DB250412CBB16AFEFD054414C4FD1E05FB250416F02096CF1D05441361D152962B250410AB39D6BF2D054419B58F49865B25041F1AE47C5F3D0544185EB51A870B2504152B81EC5F7D05441
+</a>
+
+<b>
+010600000001000000010300000001000000460000001DF21F399BB250417953C20C94D05441E5E1A8DA9CB250412DC69C6794D05441EC3BC0E29CB25041AAF1326894D05441A669FFEC9CB25041AB47886894D05441A769FFEC9CB25041C0F5CF6994D054414DA3A87995B25041474BB16FA2D0544184E4519D90B25041ECF8EDFBABD05441B2F143138EB25041D91A1BD5B2D05441A354960E88B2504122F34E1ABFD05441136353DC86B25041E6EA83B6C1D05441E64323BC86B25041AAA55ACCC1D05441E34AE6B886B250410ECBF4D2C1D05441EFCFBFF075B250413CBA570FCDD0544194803FB06EB25041C744ADA1D1D054410F5F497D68B2504198F1DF88D5D054416496187B62B25041D8FEE10ADBD05441532CADC961B25041707584ADDBD05441CBD37FD660B2504199066E8CDCD05441801321E95FB25041F0F70828DDD054419B70C5DD5FB25041B50A6430DDD0544131BB18D05FB250410F57FE3BDDD05441B298D8845FB250410EFD2280DDD05441467029635FB250410118EDCBDDD054411AF71B2E5CB250416B409C2DE4D05441AECE6C2C5AB250416B409C8DE8D054416670292359B2504130ACC4FCEAD05441EFB394E659B250412057210DECD054415BDC43085AB2504199640633ECD05441EF62443D5AB250419CD4735EECD0544132DC51525AB2504108FD2280ECD05441A03348E15AB25041750EF33DEDD05441C6B3A2C05BB25041E04D8153EED05441E17D0E695CB250419CD4732EEFD054414A8612715DB250411F61BDCDEFD0544108E607845DB2504105323BB6EFD05441350A2A7A5DB250412DBB16AFEFD05441A79777DF5FB250410E60F8C9ECD054418DBF639A67B25041B92EA172E3D05441FEA8FC346AB2504132F9CFC1E0D05441A45A1F986CB250418E1D5AA8DED054417C1B6CB86EB2504115E722F0DCD05441CF7DA0416FB2504136655F82DCD054412A811EC271B25041BE95FA81DAD054415AB1C5AA75B2504183ECA5CBD7D054419A5247697AB25041EFF5A04ED4D05441C076D1118DB25041A8B79003C9D054418281B3378DB2504116E31926C9D05441219A545E8DB25041175FBA0DC9D054415C8FC20594B25041A4703D5ACFD054415C8FC2E59CB2504148E17A34D7D0544114AE47B1ABB25041C3F528BCC5D0544148E17AB4AEB25041666666A6C7D05441EC51B83EC0B2504185EB5198A2D054411F9D1D79AEB250418F3D563C99D05441171122549EB25041950FA01391D05441E1945A0D8FB250416C21AD9C89D054410854B5C688B2504141A2906586D05441AF9A883385B25041B908F3808ED05441ACE23E2F84B2504159E9FDA690D054417510A82784B25041409B24C990D0544106F9157A86B250412E471BE390D054416656E92087B25041EBA764EA90D0544102F5C6D48AB25041171FEA4991D05441BD29D7608CB25041CEF0D37191D054417ED907838FB250413707809B91D054416CA760C98FB25041CC85F8A891D054418AB65D2193B250413977E22192D054412CD2A72C93B250412550EF2292D0544158A802BF96B250415650761193D054411DF21F399BB250417953C20C94D05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>455593 - 5235930
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000001700000085EB51A870B2504152B81EC5F7D054411F85EBB17CB25041CDCCCC6CFCD05441295C8FA284B25041295C8F3200D1544114AE47018AB25041295C8F6203D154417B14AE6790B25041AE47E1AA07D1544148E17AB4AEB25041666666A6C7D0544114AE47B1ABB25041C3F528BCC5D054415C8FC2E59CB2504148E17A34D7D054415C8FC20594B25041A4703D5ACFD05441249A545E8DB25041125FBA0DC9D0544100909A9E86B25041AEE3D54FCDD054416268DA9277B25041869FA46DD6D05441850FE50276B25041267C808ED7D0544129811EC271B25041C095FA81DAD054417B1B6CB86EB2504118E722F0DCD05441A75A1F986CB25041891D5AA8DED05441FCA8FC346AB2504134F9CFC1E0D0544192BF639A67B25041B72EA172E3D05441300A2A7A5DB250412CBB16AFEFD054414C4FD1E05FB250416F02096CF1D05441361D152962B250410AB39D6BF2D054419B58F49865B25041F1AE47C5F3D0544185EB51A870B2504152B81EC5F7D05441
+</a>
+
+<b>
+0106000000010000000103000000010000004600000019F21F399BB250417753C20C94D05441E1E1A8DA9CB250412AC69C6794D05441F03BC0E29CB25041AFF1326894D05441A269FFEC9CB25041AD47886894D05441A269FFEC9CB25041C1F5CF6994D054414DA3A87995B25041474BB16FA2D0544184E4519D90B25041ECF8EDFBABD05441B2F143138EB25041D91A1BD5B2D05441A054960E88B2504122F34E1ABFD05441146353DC86B25041E6EA83B6C1D05441E74323BC86B25041A8A55ACCC1D05441E34AE6B886B250410ECBF4D2C1D05441EFCFBFF075B250413CBA570FCDD0544194803FB06EB25041C744ADA1D1D054410F5F497D68B2504198F1DF88D5D054416496187B62B25041D8FEE10ADBD05441532CADC961B25041707584ADDBD05441CBD37FD660B2504199066E8CDCD05441811321E95FB25041ECF70828DDD054419870C5DD5FB25041B70A6430DDD054412DBB18D05FB250411357FE3BDDD05441B398D8845FB2504110FD2280DDD05441477029635FB250410618EDCBDDD0544117F71B2E5CB2504168409C2DE4D05441ABCE6C2C5AB2504168409C8DE8D054416770292359B250412CACC4FCEAD05441ECB394E659B250411D57210DECD0544159DC43085AB250419E640633ECD05441F162443D5AB2504199D4735EECD0544136DC51525AB2504105FD2280ECD05441A03348E15AB25041750EF33DEDD05441CAB3A2C05BB25041DE4D8153EED05441DD7D0E695CB2504199D4732EEFD054414A8612715DB250411F61BDCDEFD0544108E607845DB2504105323BB6EFD05441350A2A7A5DB250412DBB16AFEFD05441A79777DF5FB250410E60F8C9ECD054418DBF639A67B25041B92EA172E3D05441FEA8FC346AB2504132F9CFC1E0D05441A45A1F986CB250418E1D5AA8DED054417C1B6CB86EB2504115E722F0DCD05441CF7DA0416FB2504136655F82DCD054412A811EC271B25041BE95FA81DAD054415AB1C5AA75B2504183ECA5CBD7D054419A5247697AB25041EFF5A04ED4D05441C076D1118DB25041A8B79003C9D054418281B3378DB2504116E31926C9D05441219A545E8DB25041175FBA0DC9D054415C8FC20594B25041A4703D5ACFD054415C8FC2E59CB2504148E17A34D7D0544114AE47B1ABB25041C3F528BCC5D0544148E17AB4AEB25041666666A6C7D05441EC51B83EC0B2504185EB5198A2D054411F9D1D79AEB250418F3D563C99D05441171122549EB25041950FA01391D05441E1945A0D8FB250416C21AD9C89D054410A54B5C688B2504144A2906586D05441AE9A883385B25041B608F3808ED05441A9E23E2F84B250415AE9FDA690D054417510A82784B25041409B24C990D0544106F9157A86B250412E471BE390D054416656E92087B25041EBA764EA90D0544107F5C6D48AB25041181FEA4991D05441BD29D7608CB25041CEF0D37191D054417ED907838FB250413707809B91D054416AA760C98FB25041CE85F8A891D054418AB65D2193B250413977E22192D054412CD2A72C93B250412550EF2292D054415CA802BF96B250415450761193D0544119F21F399BB250417753C20C94D05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>955414 - 112389
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+01060000000100000001030000000100000024000000B0716414EA3F51417703082331EB5441DDE251DFDD3F5141302957112DEB5441C7D9607DDD3F5141228DB24631EB5441B1D06F1BDD3F5141AF95C23A35EB54416FB59CF5DB3F5141118CF06A38EB5441D6C99E6FDA3F51415C457B143CEB5441FEF3B8F5E43F5141DDDF0AF240EB54415DA00FF8E53F514103D505BD41EB544162FA7DBEE83F51418876578A43EB544188EF7889E93F5141599165FB44EB5441AA6C7872EB3F51411272171E48EB5441A6D7DCC5EB3F5141AB097C7C48EB544190FAC69AEC3F5141423E70DD49EB5441DE49646DF03F5141CBC9CC9750EB54418C56F809F13F5141446C515054EB54419EB998B3F13F514166088CBA57EB5441C27FD906F33F51419DF03ED05EEB54412EE9C3FEF33F51414A6CE2C664EB5441F6CC481AF63F51416F72C0A469EB5441B25DF8BAFD3F5141BFD182AB69EB54418D832549FD3F5141E6A70F0A67EB54415031F296FB3F51419EA07C115FEB54419D38989AFA3F51416CACCEED59EB5441E3E2E188FA3F51412E48389759EB544108532D29F73F5141958144984DEB54413AEC3530F63F514164CBF5EA4BEB54419FA88492F43F5141D71B5E4049EB544128CD259DF23F51413A2610C145EB5441CDCCCC0CF13F5141EC51B80E43EB54416BC60166EF3F5141524DF03741EB5441FEB7BD64E93F514106AE13AD3AEB5441BE45EB38E93F51411B5E5A133AEB544170F39059E93F51411DC3772437EB5441295C8F62E93F5141F02B996736EB5441295C8F62E93F5141F6285CDF34EB5441B0716414EA3F51417703082331EB5441
+</a>
+
+<b>
+010600000001000000010300000001000000170000001F85EBF1DD3F514148E17AF42CEB544148E17A14EA3F5141295C8F2231EB5441295C8F62E93F5141F6285CDF34EB5441295C8F62E93F51415C8FC2853AEB5441CDCCCC0CF13F5141EC51B80E43EB5441A4703D4AF73F514114AE47D14DEB5441B81E856BFA3F51417B14AE0759EB5441A4703DDAFD3F5141F6285CCF69EB5441CDCCCC9C0040514152B81ED569EB54417B14AE77FF3F51417B14AE6764EB5441B81E854B014051413D0AD71364EB544152B81E250740514185EB51E862EB54413D0AD7C309405141713D0AA762EB54410AD7A32007405141666666B659EB54415C8FC26504405141C3F5286C51EB5441B81E858B00405141D7A370DD4AEB5441E17A140EFB3F5141AE47E1FA43EB5441C3F5286CF63F51413D0AD7433FEB5441CDCCCCFCED3F5141CDCCCC2C36EB54415C8FC285F13F51417B14AE672EEB5441AE47E1EAE83F51415C8FC2052BEB54417B14AE57DE3F51413333331329EB54411F85EBF1DD3F514148E17AF42CEB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>955414 - 1365324
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+01060000000100000001030000000100000024000000B0716414EA3F51417703082331EB5441DDE251DFDD3F5141302957112DEB5441C7D9607DDD3F5141228DB24631EB5441B1D06F1BDD3F5141AF95C23A35EB54416FB59CF5DB3F5141118CF06A38EB5441D6C99E6FDA3F51415C457B143CEB5441FEF3B8F5E43F5141DDDF0AF240EB54415DA00FF8E53F514103D505BD41EB544162FA7DBEE83F51418876578A43EB544188EF7889E93F5141599165FB44EB5441AA6C7872EB3F51411272171E48EB5441A6D7DCC5EB3F5141AB097C7C48EB544190FAC69AEC3F5141423E70DD49EB5441DE49646DF03F5141CBC9CC9750EB54418C56F809F13F5141446C515054EB54419EB998B3F13F514166088CBA57EB5441C27FD906F33F51419DF03ED05EEB54412EE9C3FEF33F51414A6CE2C664EB5441F6CC481AF63F51416F72C0A469EB5441B25DF8BAFD3F5141BFD182AB69EB54418D832549FD3F5141E6A70F0A67EB54415031F296FB3F51419EA07C115FEB54419D38989AFA3F51416CACCEED59EB5441E3E2E188FA3F51412E48389759EB544108532D29F73F5141958144984DEB54413AEC3530F63F514164CBF5EA4BEB54419FA88492F43F5141D71B5E4049EB544128CD259DF23F51413A2610C145EB5441CDCCCC0CF13F5141EC51B80E43EB54416BC60166EF3F5141524DF03741EB5441FEB7BD64E93F514106AE13AD3AEB5441BE45EB38E93F51411B5E5A133AEB544170F39059E93F51411DC3772437EB5441295C8F62E93F5141F02B996736EB5441295C8F62E93F5141F6285CDF34EB5441B0716414EA3F51417703082331EB5441
+</a>
+
+<b>
+010600000001000000010300000001000000170000001F85EBF1DD3F514148E17AF42CEB544148E17A14EA3F5141295C8F2231EB5441295C8F62E93F5141F6285CDF34EB5441295C8F62E93F51415C8FC2853AEB5441CDCCCC0CF13F5141EC51B80E43EB5441A4703D4AF73F514114AE47D14DEB5441B81E856BFA3F51417B14AE0759EB5441A4703DDAFD3F5141F6285CCF69EB5441CDCCCC9C0040514152B81ED569EB54417B14AE77FF3F51417B14AE6764EB5441B81E854B014051413D0AD71364EB544152B81E250740514185EB51E862EB54413D0AD7C309405141713D0AA762EB54410AD7A32007405141666666B659EB54415C8FC26504405141C3F5286C51EB5441B81E858B00405141D7A370DD4AEB5441E17A140EFB3F5141AE47E1FA43EB5441C3F5286CF63F51413D0AD7433FEB5441CDCCCCFCED3F5141CDCCCC2C36EB54415C8FC285F13F51417B14AE672EEB5441AE47E1EAE83F51415C8FC2052BEB54417B14AE57DE3F51413333331329EB54411F85EBF1DD3F514148E17AF42CEB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>955414 - 4085105
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+01060000000100000001030000000100000024000000B0716414EA3F51417703082331EB5441DDE251DFDD3F5141302957112DEB5441C7D9607DDD3F5141228DB24631EB5441B1D06F1BDD3F5141AF95C23A35EB54416FB59CF5DB3F5141118CF06A38EB5441D6C99E6FDA3F51415C457B143CEB5441FEF3B8F5E43F5141DDDF0AF240EB54415DA00FF8E53F514103D505BD41EB544162FA7DBEE83F51418876578A43EB544188EF7889E93F5141599165FB44EB5441AA6C7872EB3F51411272171E48EB5441A6D7DCC5EB3F5141AB097C7C48EB544190FAC69AEC3F5141423E70DD49EB5441DE49646DF03F5141CBC9CC9750EB54418C56F809F13F5141446C515054EB54419EB998B3F13F514166088CBA57EB5441C27FD906F33F51419DF03ED05EEB54412EE9C3FEF33F51414A6CE2C664EB5441F6CC481AF63F51416F72C0A469EB5441B25DF8BAFD3F5141BFD182AB69EB54418D832549FD3F5141E6A70F0A67EB54415031F296FB3F51419EA07C115FEB54419D38989AFA3F51416CACCEED59EB5441E3E2E188FA3F51412E48389759EB544108532D29F73F5141958144984DEB54413AEC3530F63F514164CBF5EA4BEB54419FA88492F43F5141D71B5E4049EB544128CD259DF23F51413A2610C145EB5441CDCCCC0CF13F5141EC51B80E43EB54416BC60166EF3F5141524DF03741EB5441FEB7BD64E93F514106AE13AD3AEB5441BE45EB38E93F51411B5E5A133AEB544170F39059E93F51411DC3772437EB5441295C8F62E93F5141F02B996736EB5441295C8F62E93F5141F6285CDF34EB5441B0716414EA3F51417703082331EB5441
+</a>
+
+<b>
+010600000001000000010300000001000000170000001F85EBF1DD3F514148E17AF42CEB544148E17A14EA3F5141295C8F2231EB5441295C8F62E93F5141F6285CDF34EB5441295C8F62E93F51415C8FC2853AEB5441CDCCCC0CF13F5141EC51B80E43EB5441A4703D4AF73F514114AE47D14DEB5441B81E856BFA3F51417B14AE0759EB5441A4703DDAFD3F5141F6285CCF69EB5441CDCCCC9C0040514152B81ED569EB54417B14AE77FF3F51417B14AE6764EB5441B81E854B014051413D0AD71364EB544152B81E250740514185EB51E862EB54413D0AD7C309405141713D0AA762EB54410AD7A32007405141666666B659EB54415C8FC26504405141C3F5286C51EB5441B81E858B00405141D7A370DD4AEB5441E17A140EFB3F5141AE47E1FA43EB5441C3F5286CF63F51413D0AD7433FEB5441CDCCCCFCED3F5141CDCCCC2C36EB54415C8FC285F13F51417B14AE672EEB5441AE47E1EAE83F51415C8FC2052BEB54417B14AE57DE3F51413333331329EB54411F85EBF1DD3F514148E17AF42CEB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>955414 - 8353
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+01060000000100000001030000000100000024000000B0716414EA3F51417703082331EB5441DDE251DFDD3F5141302957112DEB5441C7D9607DDD3F5141228DB24631EB5441B1D06F1BDD3F5141AF95C23A35EB54416FB59CF5DB3F5141118CF06A38EB5441D6C99E6FDA3F51415C457B143CEB5441FEF3B8F5E43F5141DDDF0AF240EB54415DA00FF8E53F514103D505BD41EB544162FA7DBEE83F51418876578A43EB544188EF7889E93F5141599165FB44EB5441AA6C7872EB3F51411272171E48EB5441A6D7DCC5EB3F5141AB097C7C48EB544190FAC69AEC3F5141423E70DD49EB5441DE49646DF03F5141CBC9CC9750EB54418C56F809F13F5141446C515054EB54419EB998B3F13F514166088CBA57EB5441C27FD906F33F51419DF03ED05EEB54412EE9C3FEF33F51414A6CE2C664EB5441F6CC481AF63F51416F72C0A469EB5441B25DF8BAFD3F5141BFD182AB69EB54418D832549FD3F5141E6A70F0A67EB54415031F296FB3F51419EA07C115FEB54419D38989AFA3F51416CACCEED59EB5441E3E2E188FA3F51412E48389759EB544108532D29F73F5141958144984DEB54413AEC3530F63F514164CBF5EA4BEB54419FA88492F43F5141D71B5E4049EB544128CD259DF23F51413A2610C145EB5441CDCCCC0CF13F5141EC51B80E43EB54416BC60166EF3F5141524DF03741EB5441FEB7BD64E93F514106AE13AD3AEB5441BE45EB38E93F51411B5E5A133AEB544170F39059E93F51411DC3772437EB5441295C8F62E93F5141F02B996736EB5441295C8F62E93F5141F6285CDF34EB5441B0716414EA3F51417703082331EB5441
+</a>
+
+<b>
+010600000001000000010300000001000000170000000AD7A32007405141666666B659EB54415C8FC26504405141C3F5286C51EB5441B81E858B00405141D7A370DD4AEB5441E17A140EFB3F5141AE47E1FA43EB5441C3F5286CF63F51413D0AD7433FEB5441CDCCCCFCED3F5141CDCCCC2C36EB54415C8FC285F13F51417B14AE672EEB5441AE47E1EAE83F51415C8FC2052BEB54417B14AE57DE3F51413333331329EB54411F85EBF1DD3F514148E17AF42CEB544148E17A14EA3F5141295C8F2231EB5441295C8F62E93F5141F6285CDF34EB5441295C8F62E93F51415C8FC2853AEB5441CDCCCC0CF13F5141EC51B80E43EB5441A4703D4AF73F514114AE47D14DEB5441B81E856BFA3F51417B14AE0759EB5441A4703DDAFD3F5141F6285CCF69EB5441CDCCCC9C0040514152B81ED569EB54417B14AE77FF3F51417B14AE6764EB5441B81E854B014051413D0AD71364EB544152B81E250740514185EB51E862EB54413D0AD7C309405141713D0AA762EB54410AD7A32007405141666666B659EB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>955414 - 107747
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+01060000000100000001030000000100000024000000B0716414EA3F51417703082331EB5441DDE251DFDD3F5141302957112DEB5441C7D9607DDD3F5141228DB24631EB5441B1D06F1BDD3F5141AF95C23A35EB54416FB59CF5DB3F5141118CF06A38EB5441D6C99E6FDA3F51415C457B143CEB5441FEF3B8F5E43F5141DDDF0AF240EB54415DA00FF8E53F514103D505BD41EB544162FA7DBEE83F51418876578A43EB544188EF7889E93F5141599165FB44EB5441AA6C7872EB3F51411272171E48EB5441A6D7DCC5EB3F5141AB097C7C48EB544190FAC69AEC3F5141423E70DD49EB5441DE49646DF03F5141CBC9CC9750EB54418C56F809F13F5141446C515054EB54419EB998B3F13F514166088CBA57EB5441C27FD906F33F51419DF03ED05EEB54412EE9C3FEF33F51414A6CE2C664EB5441F6CC481AF63F51416F72C0A469EB5441B25DF8BAFD3F5141BFD182AB69EB54418D832549FD3F5141E6A70F0A67EB54415031F296FB3F51419EA07C115FEB54419D38989AFA3F51416CACCEED59EB5441E3E2E188FA3F51412E48389759EB544108532D29F73F5141958144984DEB54413AEC3530F63F514164CBF5EA4BEB54419FA88492F43F5141D71B5E4049EB544128CD259DF23F51413A2610C145EB5441CDCCCC0CF13F5141EC51B80E43EB54416BC60166EF3F5141524DF03741EB5441FEB7BD64E93F514106AE13AD3AEB5441BE45EB38E93F51411B5E5A133AEB544170F39059E93F51411DC3772437EB5441295C8F62E93F5141F02B996736EB5441295C8F62E93F5141F6285CDF34EB5441B0716414EA3F51417703082331EB5441
+</a>
+
+<b>
+010600000001000000010300000001000000170000000AD7A32007405141666666B659EB54415C8FC26504405141C3F5286C51EB5441B81E858B00405141D7A370DD4AEB5441E17A140EFB3F5141AE47E1FA43EB5441C3F5286CF63F51413D0AD7433FEB5441CDCCCCFCED3F5141CDCCCC2C36EB54415C8FC285F13F51417B14AE672EEB5441AE47E1EAE83F51415C8FC2052BEB54417B14AE57DE3F51413333331329EB54411F85EBF1DD3F514148E17AF42CEB544148E17A14EA3F5141295C8F2231EB5441295C8F62E93F5141F6285CDF34EB5441295C8F62E93F51415C8FC2853AEB5441CDCCCC0CF13F5141EC51B80E43EB5441A4703D4AF73F514114AE47D14DEB5441B81E856BFA3F51417B14AE0759EB5441A4703DDAFD3F5141F6285CCF69EB5441CDCCCC9C0040514152B81ED569EB54417B14AE77FF3F51417B14AE6764EB5441B81E854B014051413D0AD71364EB544152B81E250740514185EB51E862EB54413D0AD7C309405141713D0AA762EB54410AD7A32007405141666666B659EB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>955414 - 308776
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+01060000000100000001030000000100000024000000B0716414EA3F51417703082331EB5441DDE251DFDD3F5141302957112DEB5441C7D9607DDD3F5141228DB24631EB5441B1D06F1BDD3F5141AF95C23A35EB54416FB59CF5DB3F5141118CF06A38EB5441D6C99E6FDA3F51415C457B143CEB5441FEF3B8F5E43F5141DDDF0AF240EB54415DA00FF8E53F514103D505BD41EB544162FA7DBEE83F51418876578A43EB544188EF7889E93F5141599165FB44EB5441AA6C7872EB3F51411272171E48EB5441A6D7DCC5EB3F5141AB097C7C48EB544190FAC69AEC3F5141423E70DD49EB5441DE49646DF03F5141CBC9CC9750EB54418C56F809F13F5141446C515054EB54419EB998B3F13F514166088CBA57EB5441C27FD906F33F51419DF03ED05EEB54412EE9C3FEF33F51414A6CE2C664EB5441F6CC481AF63F51416F72C0A469EB5441B25DF8BAFD3F5141BFD182AB69EB54418D832549FD3F5141E6A70F0A67EB54415031F296FB3F51419EA07C115FEB54419D38989AFA3F51416CACCEED59EB5441E3E2E188FA3F51412E48389759EB544108532D29F73F5141958144984DEB54413AEC3530F63F514164CBF5EA4BEB54419FA88492F43F5141D71B5E4049EB544128CD259DF23F51413A2610C145EB5441CDCCCC0CF13F5141EC51B80E43EB54416BC60166EF3F5141524DF03741EB5441FEB7BD64E93F514106AE13AD3AEB5441BE45EB38E93F51411B5E5A133AEB544170F39059E93F51411DC3772437EB5441295C8F62E93F5141F02B996736EB5441295C8F62E93F5141F6285CDF34EB5441B0716414EA3F51417703082331EB5441
+</a>
+
+<b>
+010600000001000000010300000001000000170000000AD7A32007405141666666B659EB54415C8FC26504405141C3F5286C51EB5441B81E858B00405141D7A370DD4AEB5441E17A140EFB3F5141AE47E1FA43EB5441C3F5286CF63F51413D0AD7433FEB5441CDCCCCFCED3F5141CDCCCC2C36EB54415C8FC285F13F51417B14AE672EEB5441AE47E1EAE83F51415C8FC2052BEB54417B14AE57DE3F51413333331329EB54411F85EBF1DD3F514148E17AF42CEB544148E17A14EA3F5141295C8F2231EB5441295C8F62E93F5141F6285CDF34EB5441295C8F62E93F51415C8FC2853AEB5441CDCCCC0CF13F5141EC51B80E43EB5441A4703D4AF73F514114AE47D14DEB5441B81E856BFA3F51417B14AE0759EB5441A4703DDAFD3F5141F6285CCF69EB5441CDCCCC9C0040514152B81ED569EB54417B14AE77FF3F51417B14AE6764EB5441B81E854B014051413D0AD71364EB544152B81E250740514185EB51E862EB54413D0AD7C309405141713D0AA762EB54410AD7A32007405141666666B659EB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>918799 - 3237526
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000300000001030000000200000026010000CDCCCCFCD59F5041A4703DEAAA1954415C8FC275D69F5041666666D6AB1954410AD7A360DA9F5041713D0AE7B4195441AE47E10ADD9F50418FC2F508BD195441E17A14BEDD9F5041C3F5288CC619544148E17AC4DD9F504166666666C7195441D7A3702DDC9F504114AE47E1CF195441F6285CAFD89F504148E17A34D5195441713D0AA7D69F504148E17A14D91954418FC2F548D39F504152B81EE5E1195441713D0AB7D29F504185EB51E8EA195441C3F528DCD19F50411F85EB21F0195441EC51B86ED09F5041AE47E1AAF2195441C3F5288CD09F50417B14AE07F81954417B14AE07D29F5041CDCCCC6CFA1954413D0AD713D89F50410AD7A3A0F91954413D0AD743DF9F5041E17A14AEFB195441B81E853BE29F5041666666C6F619544148E17A74E69F504152B81EE5F2195441666666A6E99F50410AD7A330ED19544185EB51C8EE9F5041CDCCCC6CE9195441AE47E15AEF9F5041B81E858BE519544185EB5128F89F504148E17A64E61954415C8FC295FB9F5041B81E851BE819544133333333FA9F5041713D0A77EB1954413D0AD723F69F50413D0AD783EF195441D7A370ADF79F5041CDCCCC8CF119544152B81E65FC9F504152B81EC5F5195441E17A141E00A05041C3F5281CF7195441B81E85DB03A0504148E17AA4F6195441713D0A1707A0504185EB51C8F21954419A99993906A05041EC51B83EF2195441AE47E12A07A05041A4703D1AF11954413D0AD78307A05041666666F6EF19544148E17A0407A0504148E17A04EF19544148E17AA403A05041C3F5280CEB195441C3F5285C01A05041666666B6E8195441EC51B82EFE9F50418FC2F5C8E5195441C3F528CCFB9F5041333333B3E31954411F85EB51FA9F5041713D0A47E319544166666626F79F5041EC51B86EE21954411F85EB51F49F504166666696E1195441F6285C8FF39F5041AE47E14AE119544148E17AD4F19F5041A4703D0AE1195441EC51B8BEEE9F504152B81E35E11954413D0AD703ED9F504148E17AF4E019544133333353EB9F5041AE47E1DADF195441D7A370ADE99F5041EC51B8DEDD195441D7A3703DE89F5041F6285C6FDC195441B81E859BE49F50418FC2F518D91954417B14AE77E39F504185EB5168D719544185EB5108E29F50413D0AD793D419544100000030E19F50411F85EB61D2195441295C8F62E09F504133333353D11954413D0AD733DF9F5041F6285C9FCE1954417B14AEC7DE9F50410AD7A3E0CB195441AE47E1AADF9F5041B81E855BC719544148E17AE4E09F504100000010C419544185EB5108E29F5041E17A146EC31954415C8FC2D5E29F5041B81E85ABC2195441CDCCCC4CE39F50410AD7A330C1195441CDCCCC6CE39F50413D0AD7D3BB195441F6285C0FE49F5041B81E85DBB7195441713D0AC7E49F504185EB51D8B3195441AE47E15AE49F504114AE47F1B1195441C3F5282CE39F504152B81E65B11954419A9999F9E09F504114AE4761B019544166666666DE9F504114AE47D1AE19544152B81E95DC9F5041CDCCCC8CAD195441B81E855BDB9F5041CDCCCCFCAB195441E17A148EDA9F5041000000E0A9195441666666D6D99F504166666616A719544166666646D89F5041B81E85EBA6195441666666B6D69F50419A9999F9A7195441CDCCCC0CD49F5041C3F5284CAA1954418FC2F558D19F5041D7A370ADAA195441333333B3CF9F5041C3F5284CAA1954417B14AE67CC9F5041666666A6A819544148E17AD4C99F50419A999989A6195441295C8F52C69F5041A4703D8AA31954417B14AE97C49F5041D7A370DDA2195441333333E3C19F50411F85EBB1A219544133333353C09F504100000030A219544152B81E25BC9F504133333383A1195441E17A14AEB89F5041295C8F62A1195441E17A14AEB89F504152B81E95A019544152B81E45BC9F504114AE47E1A0195441EC51B87EC09F504133333383A1195441EC51B80EC29F5041F6285CEFA11954419A9999A9C39F5041F6285CEFA11954418FC2F5F8C49F50415C8FC245A2195441EC51B8BEC69F5041295C8FF2A219544166666676CA9F5041EC51B85EA6195441EC51B8DECC9F504100000050A81954413D0AD7D3CF9F5041A4703DCAA9195441F6285C8FD19F504114AE4721AA1954410AD7A3A0D39F5041F6285C9FA919544152B81E75D69F504114AE4721A719544114AE4751D89F5041E17A141EA6195441AE47E18AD99F5041D7A370FDA5195441F6285CEFDA9F50410AD7A3E0A619544166666646DB9F50417B14AE07A9195441295C8FD2DB9F5041B81E859BAB1954411F85EB21DD9F5041AE47E10AAD195441C3F5289CDE9F5041F6285C4FAE19544152B81E25E19F504148E17AB4AF195441CDCCCC6CE39F50417B14AEB7B0195441CDCCCCDCE49F504100000090B11954413D0AD753E59F504166666676B31954410AD7A390E49F5041B81E85FBB7195441EC51B8EEE39F50413D0AD7D3BB1954418FC2F5D8E39F504114AE4751C1195441F6285C2FE49F50415C8FC295C2195441B81E850BE39F50413D0AD7A3C319544114AE4791E19F5041D7A370BDC41954418FC2F5B8E09F5041295C8F42C6195441666666F6DF9F5041B81E85EBC8195441AE47E1AADF9F50410AD7A3E0CB19544114AE4701E09F5041F6285C9FCE195441A4703D1AE19F5041CDCCCCDCD0195441CDCCCCDCE19F50410AD7A300D2195441EC51B8EEE39F504185EB5148D71954417B14AEE7E49F5041713D0A97D8195441333333E3E99F5041713D0A27DD195441EC51B89EEB9F504133333323DF195441E17A14EEEC9F5041CDCCCC3CE01954418FC2F5A8EE9F5041D7A3707DE01954419A9999C9F19F5041295C8F72E0195441CDCCCC3CF49F5041E17A14BEE0195441C3F5283CF79F50411F85EBC1E1195441713D0A67FA9F504152B81EA5E21954418FC2F558FC9F50410AD7A3F0E2195441F6285C5FFF9F5041295C8FA2E5195441A4703D1A02A050413D0AD783E8195441C3F528BC04A05041EC51B83EEB1954416666660606A05041C3F528BCEC19544148E17A4407A05041295C8F52EE195441666666F607A05041AE47E12AEF1954411F85EB8108A05041E17A141EEF195441AE47E1CA0AA05041F6285CAFEC195441A4703D1A10A05041A4703DBAE6195441713D0A1712A0504185EB5158E419544148E17A5413A050413D0AD733E3195441EC51B8DE14A0504152B81EB5E21954410AD7A39015A0504152B81E75E2195441B81E859B1DA05041666666F6E11954419A9999F921A05041CDCCCCDCE11954410AD7A30025A05041A4703D6AE11954419A99990927A050419A999939E0195441D7A3705D2AA05041333333B3DC195441D7A3700D2CA05041000000D0DA1954410AD7A3A02FA05041B81E859BD4195441D7A3705D31A0504185EB5108D119544152B81E7532A05041CDCCCC8CCE19544185EB516832A0504133333303CD1954410000009031A050413D0AD7D3CA195441B81E85DB2FA05041295C8FE2C6195441295C8FE22EA0504166666666C41954418FC2F5B82EA0504100000090C2195441333333432FA05041B81E857BC11954415C8FC26530A05041A4703DBAC01954413D0AD7A331A0504114AE47F1C0195441C3F5286C33A05041B81E857BC1195441C3F5286C35A05041C3F528DCC119544148E17A3437A050419A999989C119544114AE47E138A0504148E17A74C019544185EB51E839A05041F6285CFFBE19544152B81E953BA0504185EB51C8BC195441E17A14BE3DA0504133333353B91954419A9999A93EA05041D7A370DDB519544114AE47413FA05041666666A6B3195441A4703D3A40A0504114AE4731AE1954417B14AE1741A0504152B81E85AA1954416666668641A050419A999969A8195441000000B041A05041A4703DCAA6195441A4703D0A41A050415C8FC2B5A51954413D0AD7333FA05041C3F5285CA4195441A4703D0A3DA0504148E17A24A4195441295C8F7238A05041C3F5285CA41954419A99991931A050415C8FC285A41954417B14AE272DA050410AD7A340A41954410AD7A3F028A05041AE47E1CAA2195441AE47E1AA25A05041E17A140EA2195441EC51B81E24A050413D0AD7D3A1195441AE47E18A21A050413D0AD7D3A1195441000000401FA050418FC2F598A1195441713D0AE71CA05041B81E857BA1195441B81E85AB1AA05041E17A14AEA01954418FC2F55817A050413D0AD7139F1954417B14AEF713A05041295C8F129D1954413D0AD71312A0504152B81E959B195441B81E85BB11A05041AE47E1AA9A195441F6285CEF12A05041D7A3708D9A1954418FC2F5E813A05041AE47E19A981954417B14AE5715A05041295C8F9297195441B81E853B17A050410000000097195441F6285CCF19A050415C8FC27597195441E17A148E1AA05041000000F09419544148E17AB41DA0504185EB51F8951954410AD7A3901EA05041713D0A07961954415C8FC2F51CA05041C3F5281C951954411F85EB111BA0504185EB513893195441B81E85AB1AA05041333333C392195441F6285CCF19A05041E17A149E911954410AD7A3C019A050410AD7A320901954415C8FC2351AA05041B81E85FB8E19544185EB51781BA050411F85EB018E195441C3F5285C1DA050410AD7A3608D195441AE47E13A22A05041A4703DEA8A195441C3F5289C25A05041F6285C4F891954416666668626A05041295C8F82881954416666668626A05041295C8F2287195441EC51B87E25A05041A4703D6A85195441C3F5283C24A050413D0AD7A38319544185EB510823A050413D0AD74382195441D7A3706D21A0504185EB51B880195441C3F528CC20A050419A9999F97F19544185EB51981FA05041AE47E12A7D195441AE47E11A1EA0504148E17A047A1954410AD7A3301DA050413333335377195441AE47E1BA1CA050418FC2F508751954411F85EB211DA050416666661673195441AE47E11A1EA050411F85EBE171195441C3F5286C1FA050418FC2F53870195441C3F5287C21A050413D0AD7636E1954419A9999A923A050417B14AED76C19544114AE47B124A05041000000D06B195441AE47E1AA25A050417B14AE176A19544152B81EE525A05041295C8F4268195441AE47E1AA25A0504185EB519864195441C3F528EC24A050419A9999B95F195441295C8FA224A050415C8FC2755C19544185EB516824A050411F85EB3159195441AE47E14A24A05041000000E05519544185EB51B823A05041D7A3708D5219544185EB510823A05041295C8F924F19544148E17AD421A0504185EB51984C195441EC51B8AE20A0504185EB51884A1954415C8FC2051FA0504185EB517848195441C3F528AC1DA05041713D0A1747195441000000801CA05041713D0AF744195441000000801CA050413333335342195441CDCCCCFC1BA050419A9999193F195441F6285C6F1AA05041CDCCCC1C3D1954415C8FC2E519A05041AE47E10A3E1954413D0AD75319A05041F6285C0F3F1954415C8FC2B517A05041713D0A97401954413333330315A0504114AE47D141195441EC51B83E13A0504114AE47D141195441C3F5285C11A050417B14AE9741195441AE47E1FA0CA050418FC2F568401954411F85EB5109A05041295C8F023F195441E17A14DE05A05041333333C34319544185EB51B801A050411F85EBB1451954411F85EB81FE9F5041B81E85AB45195441295C8F52E49F5041295C8FB2441954410AD7A390D49F5041F6285CAF43195441C3F528ECEA9F504114AE47015A1954413D0AD7A3D19F504152B81E356F195441AE47E14AC29F5041A4703DBA7F1954418FC2F558BE9F50419A99997983195441A4703D6AB89F50411F85EBC1821954415C8FC2A5B79F5041B81E850B84195441AE47E1AAB69F504148E17A7486195441A4703DBAB59F504185EB51D8891954417B14AE47B59F5041666666A68C19544152B81ED5B59F5041D7A3704D8D1954418FC2F548B89F504185EB51D88F19544100000030BC9F50419A9999699419544185EB5198BC9F5041C3F5281C95195441713D0AB7BC9F5041A4703DEA95195441C3F528ACBC9F50417B14AE179719544148E17A74BC9F5041EC51B80E98195441666666F6BB9F5041295C8FE2981954413D0AD733BA9F5041EC51B8DE9A1954419A999969B69F5041AE47E1AA9A195441A4703D3AB29F50415C8FC245A4195441666666E6B19F50411F85EBE1A419544100000030B29F504148E17A14A51954419A9999E9B69F5041295C8FE2A6195441E17A145EB99F50411F85EBC1A8195441000000C0BB9F5041F6285C3FAA1954410AD7A370BC9F5041666666B6AA195441E17A147EC19F5041A4703D9AAE1954419A999929C39F5041000000B0AF19544114AE4791C49F504114AE4781B019544152B81E25C59F5041AE47E1AAB0195441713D0A27C89F504148E17A74B1195441666666B6CA9F5041C3F5285CB219544185EB5138CB9F504114AE4771B2195441295C8F52CC9F50411F85EB71B2195441AE47E12ACD9F50417B14AE77B2195441F6285CAFD19F5041295C8F22B1195441CDCCCCFCD59F5041A4703DEAAA1954410F000000C3F5289C01A050413D0AD7E36A195441295C8F4202A050413333334364195441A4703DFA07A05041666666965A195441EC51B86E11A05041CDCCCC8C5319544152B81E2514A05041B81E85AB52195441AE47E1DA16A050418FC2F5B8541954418FC2F57816A0504148E17A54581954413D0AD7030EA05041E17A14FE6519544148E17A0408A05041D7A3700D6E19544148E17A5407A050419A9999B972195441B81E857B05A0504114AE47917A19544152B81E3503A05041F6285C6F7B195441295C8F12FE9F50417B14AE5779195441A4703D0AFD9F5041AE47E12A6D195441C3F5289C01A050413D0AD7E36A195441010300000001000000210000000AD7A39039A05041EC51B83EC9195441295C8FE23AA05041CDCCCC4CC619544185EB51183EA0504185EB51A8BF1954419A9999D93EA05041C3F5284CBD195441EC51B80E40A0504148E17A94BA19544148E17AA441A05041AE47E1BAB619544148E17A7442A05041CDCCCC3CB1195441B81E85DB42A0504100000070AF195441AE47E19A43A05041AE47E11AAC195441B81E85FB44A050411F85EBA1A619544152B81ED543A05041333333A3A61954419A99990943A0504152B81E55A7195441AE47E14A42A05041295C8F92A81954418FC2F5D841A05041F6285C4FAA1954410AD7A30041A0504152B81E55AE1954415C8FC2F53FA0504148E17AE4B31954410AD7A3503FA0504133333353B61954415C8FC2453EA05041A4703D9AB91954419A9999093CA0504133333353BD1954417B14AEA739A05041CDCCCCCCC01954411F85EB9137A050413D0AD723C21954410000003035A050419A999989C2195441CDCCCC4C33A05041D7A3703DC2195441666666B631A050417B14AED7C1195441C3F5286C30A05041A4703D0AC2195441666666C62FA05041EC51B82EC31954416666660630A05041AE47E12AC519544185EB51B830A050417B14AEE7C6195441666666B631A0504166666656C91954417B14AEA732A0504100000020CB1954416666667634A050417B14AE87CD19544185EB514838A0504148E17AA4CB1954410AD7A39039A05041EC51B83EC9195441010300000001000000650000008FC2F5A81BA05041AE47E17A35195441A4703DCA1AA05041EC51B80E35195441295C8FB217A050410000001033195441713D0A2718A05041EC51B85E2F1954410AD7A3B017A050411F85EBD12B195441EC51B81E10A05041B81E853B351954416666669609A0504148E17AA43E19544152B81E350DA05041F6285CEF3F1954413D0AD76311A050416666660641195441A4703D2A13A050410AD7A3404119544152B81E7515A050418FC2F5E8401954410AD7A30017A05041CDCCCC0C401954418FC2F5B818A05041A4703DCA3E195441CDCCCCEC19A05041295C8F623C19544185EB51381AA05041C3F5285C3A195441295C8FC21AA050417B14AE8738195441E17A140E1DA05041333333D33819544148E17A041DA050413D0AD7F33A195441C3F5285C1DA050418FC2F5C83C195441AE47E16A1DA0504114AE47813E195441AE47E16A1DA05041666666B6411954411F85EBD11DA0504148E17A8444195441713D0A471EA05041713D0A774619544185EB51981FA050413333330348195441AE47E1DA20A050411F85EB71491954419A99994922A05041C3F528BC4B195441AE47E19A23A05041AE47E13A4F1954419A99995924A0504152B81E3552195441AE47E1FA24A05041EC51B83E551954413D0AD74325A05041E17A14AE58195441295C8F5225A05041713D0A175D195441D7A3703D26A0504133333373631954416666668626A0504100000050661954416666668626A050419A99995969195441666666D625A05041000000206B1954410000001024A05041EC51B83E6D19544148E17AD421A050417B14AEE76E195441713D0AA71FA05041295C8F3271195441713D0A971DA050418FC2F5A87319544185EB51881DA05041E17A147E75195441D7A370FD1DA050415C8FC235771954419A9999D91EA050410AD7A38079195441713D0A5720A050419A9999397D1954419A99999921A0504114AE47A17F1954419A99994922A050413D0AD7E380195441713D0A1723A05041295C8FA281195441EC51B8CE24A050410000002083195441EC51B82E26A0504114AE472185195441295C8F6227A0504100000040871954413D0AD75327A05041B81E85CB881954410000007025A05041A4703D3A8A1954419A99994922A050418FC2F5A88B1954415C8FC2A51DA050415C8FC2D58D195441333333031BA0504185EB51188F19544148E17A441AA05041E17A143E901954410AD7A3701AA050410AD7A380911954411F85EB111BA05041AE47E16A92195441F6285C3F1DA050415C8FC2B5941954419A9999D91EA050413333338395195441333333D31FA050415C8FC2C59619544185EB514820A050419A99995999195441D7A3700D20A05041AE47E15A9B195441333333231FA0504152B81E059F195441D7A3705D1FA0504166666656A0195441AE47E12A20A05041CDCCCCBCA019544114AE474121A050418FC2F5E8A0195441000000B022A0504152B81E15A11954416666663625A05041C3F5282CA1195441CDCCCC3C28A050411F85EBD1A1195441666666662AA050413D0AD793A2195441D7A3709D2CA05041713D0A47A31954413D0AD7732EA05041CDCCCC8CA31954415C8FC29531A050413D0AD7C3A319544185EB51B836A0504185EB51A8A3195441A4703DDA3BA0504133333363A3195441EC51B8EE3EA05041CDCCCC8CA3195441D7A3708D40A050418FC2F508A4195441B81E85CB41A050413D0AD7F3A41954410AD7A31043A050413D0AD7A3A519544185EB512845A0504148E17AD4A5195441C3F528DC45A05041000000A0A2195441EC51B81E46A05041F6285C6FA1195441EC51B8AE46A05041000000E09E195441D7A370BD49A05041AE47E16A921954410AD7A3504FA05041B81E85CB771954419A9999F953A0504152B81E255E19544152B81EE558A0504185EB511842195441333333234EA050415C8FC2953E19544185EB51E845A05041713D0AB73B195441F6285CAF42A0504133333343361954410AD7A3F041A05041A4703DAA32195441713D0A5741A05041333333C32F195441B81E859B43A050411F85EBF127195441C3F528AC3AA05041E17A146E24195441B81E85DB2FA05041C3F5284C1F19544148E17A942EA050411F85EBC11E195441000000D025A0504152B81EF524195441295C8F4221A0504152B81EE5341954411F85EBC11DA05041A4703DEA361954418FC2F5381DA05041C3F5288C361954418FC2F5A81BA05041AE47E17A35195441
+</a>
+
+<b>
+010600000001000000010300000002000000B5010000C879E75025A0504152280C985C195441295C8F5225A05041713D0A175D195441D7A3703D26A0504133333373631954416666668626A0504100000050661954416666668626A050419A99995969195441666666D625A05041000000206B1954410000001024A05041EC51B83E6D19544148E17AD421A050417B14AEE76E195441713D0AA71FA05041295C8F3271195441713D0A971DA050418FC2F5A87319544185EB51881DA05041E17A147E75195441D7A370FD1DA050415C8FC235771954419A9999D91EA050410AD7A38079195441713D0A5720A050419A9999397D1954419A99999921A0504114AE47A17F1954419A99994922A050413D0AD7E380195441713D0A1723A05041295C8FA281195441EC51B8CE24A050410000002083195441EC51B82E26A0504114AE472185195441295C8F6227A0504100000040871954413D0AD75327A05041B81E85CB881954410000007025A05041A4703D3A8A1954419A99994922A050418FC2F5A88B1954415C8FC2A51DA050415C8FC2D58D195441333333031BA0504185EB51188F19544148E17A441AA05041E17A143E901954410AD7A3701AA050410AD7A380911954411F85EB111BA05041AE47E16A92195441F6285C3F1DA050415C8FC2B5941954419A9999D91EA050413333338395195441333333D31FA050415C8FC2C59619544185EB514820A050419A99995999195441D7A3700D20A05041AE47E15A9B195441333333231FA0504152B81E059F195441D7A3705D1FA0504166666656A0195441AE47E12A20A05041CDCCCCBCA019544114AE474121A050418FC2F5E8A0195441000000B022A0504152B81E15A11954416666663625A05041C3F5282CA1195441CDCCCC3C28A050411F85EBD1A1195441666666662AA050413D0AD793A2195441D7A3709D2CA05041713D0A47A31954413D0AD7732EA05041CDCCCC8CA31954415C8FC29531A050413D0AD7C3A319544185EB51B836A0504185EB51A8A3195441A4703DDA3BA0504133333363A3195441EC51B8EE3EA05041CDCCCC8CA3195441D7A3708D40A050418FC2F508A4195441B81E85CB41A050413D0AD7F3A41954410AD7A31043A050413D0AD7A3A519544185EB512845A0504148E17AD4A5195441C3F528DC45A05041000000A0A2195441EC51B81E46A05041F6285C6FA1195441EC51B8AE46A05041000000E09E195441D7A370BD49A05041AE47E16A921954410AD7A3504FA05041B81E85CB771954419A9999F953A0504152B81E255E19544152B81EE558A0504185EB511842195441333333234EA050415C8FC2953E19544185EB51E845A05041713D0AB73B195441F6285CAF42A0504133333343361954410AD7A3F041A05041A4703DAA32195441713D0A5741A05041333333C32F195441B81E859B43A050411F85EBF127195441C3F528AC3AA05041E17A146E24195441B81E85DB2FA05041C3F5284C1F19544148E17A942EA050411F85EBC11E195441000000D025A0504152B81EF524195441295C8F4221A0504152B81EE5341954411F85EBC11DA05041A4703DEA361954418FC2F5381DA05041C3F5288C361954418FC2F5A81BA05041AE47E17A35195441A4703DCA1AA05041EC51B80E35195441295C8FB217A050410000001033195441713D0A2718A05041EC51B85E2F1954410AD7A3B017A050411F85EBD12B195441EC51B81E10A05041B81E853B351954416666669609A0504148E17AA43E19544152B81E350DA05041F6285CEF3F1954413D0AD76311A050416666660641195441A4703D2A13A050410AD7A3404119544152B81E7515A050418FC2F5E8401954410AD7A30017A05041CDCCCC0C401954418FC2F5B818A05041A4703DCA3E195441CDCCCCEC19A05041295C8F623C19544185EB51381AA05041C3F5285C3A195441295C8FC21AA050417B14AE8738195441E17A140E1DA05041333333D33819544148E17A041DA050413D0AD7F33A195441C3F5285C1DA050418FC2F5C83C195441AE47E16A1DA0504114AE47813E195441AE47E16A1DA05041666666B6411954411F85EBD11DA0504148E17A8444195441713D0A471EA05041713D0A774619544185EB51981FA050413333330348195441AE47E1DA20A050411F85EB71491954419A99994922A05041C3F528BC4B195441AE47E19A23A05041AE47E13A4F1954419A99995924A0504152B81E3552195441AE47E1FA24A05041EC51B83E551954413D0AD74325A05041E17A14AE58195441CEE43D5025A05041D3F53D655C195441295C8FA224A050415C8FC2755C19544185EB516824A050411F85EB3159195441AE47E14A24A05041000000E05519544185EB51B823A05041D7A3708D5219544185EB510823A05041295C8F924F19544148E17AD421A0504185EB51984C195441EC51B8AE20A0504185EB51884A1954415C8FC2051FA0504185EB517848195441C3F528AC1DA05041713D0A1747195441000000801CA05041713D0AF744195441000000801CA050413333335342195441CDCCCCFC1BA050419A9999193F195441F6285C6F1AA05041CDCCCC1C3D1954415C8FC2E519A05041AE47E10A3E1954413D0AD75319A05041F6285C0F3F1954415C8FC2B517A05041713D0A97401954413333330315A0504114AE47D141195441EC51B83E13A0504114AE47D141195441C3F5285C11A050417B14AE9741195441AE47E1FA0CA050418FC2F568401954411F85EB5109A05041295C8F023F195441E17A14DE05A05041333333C34319544185EB51B801A050411F85EBB1451954411F85EB81FE9F5041B81E85AB45195441295C8F52E49F5041295C8FB2441954410AD7A390D49F5041F6285CAF43195441C3F528ECEA9F504114AE47015A1954413D0AD7A3D19F504152B81E356F195441AE47E14AC29F5041A4703DBA7F1954418FC2F558BE9F50419A99997983195441A4703D6AB89F50411F85EBC1821954415C8FC2A5B79F5041B81E850B84195441AE47E1AAB69F504148E17A7486195441A4703DBAB59F504185EB51D8891954417B14AE47B59F5041666666A68C19544152B81ED5B59F5041D7A3704D8D1954418FC2F548B89F504185EB51D88F19544100000030BC9F50419A9999699419544185EB5198BC9F5041C3F5281C95195441713D0AB7BC9F5041A4703DEA95195441C3F528ACBC9F50417B14AE179719544148E17A74BC9F5041EC51B80E98195441666666F6BB9F5041295C8FE2981954413D0AD733BA9F5041EC51B8DE9A1954419A999969B69F5041AE47E1AA9A195441A4703D3AB29F50415C8FC245A4195441666666E6B19F50411F85EBE1A419544100000030B29F504148E17A14A51954419A9999E9B69F5041295C8FE2A6195441E17A145EB99F50411F85EBC1A8195441000000C0BB9F5041F6285C3FAA1954410AD7A370BC9F5041666666B6AA195441E17A147EC19F5041A4703D9AAE1954419A999929C39F5041000000B0AF19544114AE4791C49F504114AE4781B019544152B81E25C59F5041AE47E1AAB0195441713D0A27C89F504148E17A74B1195441666666B6CA9F5041C3F5285CB219544185EB5138CB9F504114AE4771B2195441295C8F52CC9F50411F85EB71B2195441AE47E12ACD9F50417B14AE77B2195441F6285CAFD19F5041295C8F22B1195441CDCCCCFCD59F5041A4703DEAAA1954415C8FC275D69F5041666666D6AB1954410AD7A360DA9F5041713D0AE7B4195441AE47E10ADD9F50418FC2F508BD195441E17A14BEDD9F5041C3F5288CC619544148E17AC4DD9F504166666666C7195441D7A3702DDC9F504114AE47E1CF195441F6285CAFD89F504148E17A34D5195441713D0AA7D69F504148E17A14D91954418FC2F548D39F504152B81EE5E1195441713D0AB7D29F504185EB51E8EA195441C3F528DCD19F50411F85EB21F0195441EC51B86ED09F5041AE47E1AAF2195441C3F5288CD09F50417B14AE07F81954417B14AE07D29F5041CDCCCC6CFA1954413D0AD713D89F50410AD7A3A0F91954413D0AD743DF9F5041E17A14AEFB195441B81E853BE29F5041666666C6F619544148E17A74E69F504152B81EE5F2195441666666A6E99F50410AD7A330ED19544185EB51C8EE9F5041CDCCCC6CE9195441AE47E15AEF9F5041B81E858BE519544185EB5128F89F504148E17A64E61954415C8FC295FB9F5041B81E851BE819544133333333FA9F5041713D0A77EB1954413D0AD723F69F50413D0AD783EF195441D7A370ADF79F5041CDCCCC8CF119544152B81E65FC9F504152B81EC5F5195441E17A141E00A05041C3F5281CF7195441B81E85DB03A0504148E17AA4F6195441713D0A1707A0504185EB51C8F21954419A99993906A05041EC51B83EF2195441AE47E12A07A05041A4703D1AF11954413D0AD78307A05041666666F6EF19544148E17A0407A0504148E17A04EF19544148E17AA403A05041C3F5280CEB195441C3F5285C01A05041666666B6E8195441EC51B82EFE9F50418FC2F5C8E5195441C3F528CCFB9F5041333333B3E31954411F85EB51FA9F5041713D0A47E319544166666626F79F5041EC51B86EE21954411F85EB51F49F504166666696E1195441F6285C8FF39F5041AE47E14AE119544148E17AD4F19F5041A4703D0AE1195441EC51B8BEEE9F504152B81E35E11954413D0AD703ED9F504148E17AF4E019544133333353EB9F5041AE47E1DADF195441D7A370ADE99F5041EC51B8DEDD195441D7A3703DE89F5041F6285C6FDC195441B81E859BE49F50418FC2F518D91954417B14AE77E39F504185EB5168D719544185EB5108E29F50413D0AD793D419544100000030E19F50411F85EB61D2195441295C8F62E09F504133333353D11954413D0AD733DF9F5041F6285C9FCE1954417B14AEC7DE9F50410AD7A3E0CB195441AE47E1AADF9F5041B81E855BC719544148E17AE4E09F504100000010C419544185EB5108E29F5041E17A146EC31954415C8FC2D5E29F5041B81E85ABC2195441CDCCCC4CE39F50410AD7A330C1195441CDCCCC6CE39F50413D0AD7D3BB195441F6285C0FE49F5041B81E85DBB7195441713D0AC7E49F504185EB51D8B3195441AE47E15AE49F504114AE47F1B1195441C3F5282CE39F504152B81E65B11954419A9999F9E09F504114AE4761B019544166666666DE9F504114AE47D1AE19544152B81E95DC9F5041CDCCCC8CAD195441B81E855BDB9F5041CDCCCCFCAB195441E17A148EDA9F5041000000E0A9195441666666D6D99F504166666616A719544166666646D89F5041B81E85EBA6195441666666B6D69F50419A9999F9A7195441CDCCCC0CD49F5041C3F5284CAA1954418FC2F558D19F5041D7A370ADAA195441333333B3CF9F5041C3F5284CAA1954417B14AE67CC9F5041666666A6A819544148E17AD4C99F50419A999989A6195441295C8F52C69F5041A4703D8AA31954417B14AE97C49F5041D7A370DDA2195441333333E3C19F50411F85EBB1A219544133333353C09F504100000030A219544152B81E25BC9F504133333383A1195441E17A14AEB89F5041295C8F62A1195441E17A14AEB89F504152B81E95A019544152B81E45BC9F504114AE47E1A0195441EC51B87EC09F504133333383A1195441EC51B80EC29F5041F6285CEFA11954419A9999A9C39F5041F6285CEFA11954418FC2F5F8C49F50415C8FC245A2195441EC51B8BEC69F5041295C8FF2A219544166666676CA9F5041EC51B85EA6195441EC51B8DECC9F504100000050A81954413D0AD7D3CF9F5041A4703DCAA9195441F6285C8FD19F504114AE4721AA1954410AD7A3A0D39F5041F6285C9FA919544152B81E75D69F504114AE4721A719544114AE4751D89F5041E17A141EA6195441AE47E18AD99F5041D7A370FDA5195441F6285CEFDA9F50410AD7A3E0A619544166666646DB9F50417B14AE07A9195441295C8FD2DB9F5041B81E859BAB1954411F85EB21DD9F5041AE47E10AAD195441C3F5289CDE9F5041F6285C4FAE19544152B81E25E19F504148E17AB4AF195441CDCCCC6CE39F50417B14AEB7B0195441CDCCCCDCE49F504100000090B11954413D0AD753E59F504166666676B31954410AD7A390E49F5041B81E85FBB7195441EC51B8EEE39F50413D0AD7D3BB1954418FC2F5D8E39F504114AE4751C1195441F6285C2FE49F50415C8FC295C2195441B81E850BE39F50413D0AD7A3C319544114AE4791E19F5041D7A370BDC41954418FC2F5B8E09F5041295C8F42C6195441666666F6DF9F5041B81E85EBC8195441AE47E1AADF9F50410AD7A3E0CB19544114AE4701E09F5041F6285C9FCE195441A4703D1AE19F5041CDCCCCDCD0195441CDCCCCDCE19F50410AD7A300D2195441EC51B8EEE39F504185EB5148D71954417B14AEE7E49F5041713D0A97D8195441333333E3E99F5041713D0A27DD195441EC51B89EEB9F504133333323DF195441E17A14EEEC9F5041CDCCCC3CE01954418FC2F5A8EE9F5041D7A3707DE01954419A9999C9F19F5041295C8F72E0195441CDCCCC3CF49F5041E17A14BEE0195441C3F5283CF79F50411F85EBC1E1195441713D0A67FA9F504152B81EA5E21954418FC2F558FC9F50410AD7A3F0E2195441F6285C5FFF9F5041295C8FA2E5195441A4703D1A02A050413D0AD783E8195441C3F528BC04A05041EC51B83EEB1954416666660606A05041C3F528BCEC19544148E17A4407A05041295C8F52EE195441666666F607A05041AE47E12AEF1954411F85EB8108A05041E17A141EEF195441AE47E1CA0AA05041F6285CAFEC195441A4703D1A10A05041A4703DBAE6195441713D0A1712A0504185EB5158E419544148E17A5413A050413D0AD733E3195441EC51B8DE14A0504152B81EB5E21954410AD7A39015A0504152B81E75E2195441B81E859B1DA05041666666F6E11954419A9999F921A05041CDCCCCDCE11954410AD7A30025A05041A4703D6AE11954419A99990927A050419A999939E0195441D7A3705D2AA05041333333B3DC195441D7A3700D2CA05041000000D0DA1954410AD7A3A02FA05041B81E859BD4195441D7A3705D31A0504185EB5108D119544152B81E7532A05041CDCCCC8CCE19544185EB516832A0504133333303CD1954410000009031A050413D0AD7D3CA195441B81E85DB2FA05041295C8FE2C6195441295C8FE22EA0504166666666C41954418FC2F5B82EA0504100000090C2195441333333432FA05041B81E857BC11954415C8FC26530A05041A4703DBAC01954413D0AD7A331A0504114AE47F1C0195441C3F5286C33A05041B81E857BC1195441C3F5286C35A05041C3F528DCC119544148E17A3437A050419A999989C119544114AE47E138A0504148E17A74C019544185EB51E839A05041F6285CFFBE19544152B81E953BA0504185EB51C8BC195441E17A14BE3DA0504133333353B91954419A9999A93EA05041D7A370DDB519544114AE47413FA05041666666A6B319544114E2EC1040A05041E8772119AF195441CEACA9D640A050419099FF34AF1954415C8FC2F53FA0504148E17AE4B31954410AD7A3503FA0504133333353B61954415C8FC2453EA05041A4703D9AB91954419A9999093CA0504133333353BD1954417B14AEA739A05041CDCCCCCCC01954411F85EB9137A050413D0AD723C21954410000003035A050419A999989C2195441CDCCCC4C33A05041D7A3703DC2195441666666B631A050417B14AED7C1195441C3F5286C30A05041A4703D0AC2195441666666C62FA05041EC51B82EC31954416666660630A05041AE47E12AC519544185EB51B830A050417B14AEE7C6195441666666B631A0504166666656C91954417B14AEA732A0504100000020CB1954416666667634A050417B14AE87CD19544185EB514838A0504148E17AA4CB1954410AD7A39039A05041EC51B83EC9195441295C8FE23AA05041CDCCCC4CC619544185EB51183EA0504185EB51A8BF1954419A9999D93EA05041C3F5284CBD195441EC51B80E40A0504148E17A94BA19544148E17AA441A05041AE47E1BAB619544148E17A7442A05041CDCCCC3CB1195441B81E85DB42A0504100000070AF195441AE47E19A43A05041AE47E11AAC195441B81E85FB44A050411F85EBA1A619544152B81ED543A05041333333A3A61954419A99990943A0504152B81E55A7195441AE47E14A42A05041295C8F92A81954418FC2F5D841A05041F6285C4FAA1954410AD7A30041A0504152B81E55AE1954418B887DDC40A05041A305EB15AF195441190991D840A050410558D82AAF195441336D111340A0504172231B0DAF195441EDD2912040A05041CF7056C1AE195441A4703D3A40A0504114AE4731AE1954417B14AE1741A0504152B81E85AA1954416666668641A050419A999969A8195441000000B041A05041A4703DCAA6195441A4703D0A41A050415C8FC2B5A51954413D0AD7333FA05041C3F5285CA4195441A4703D0A3DA0504148E17A24A4195441295C8F7238A05041C3F5285CA41954419A99991931A050415C8FC285A41954417B14AE272DA050410AD7A340A41954410AD7A3F028A05041AE47E1CAA2195441AE47E1AA25A05041E17A140EA2195441EC51B81E24A050413D0AD7D3A1195441AE47E18A21A050413D0AD7D3A1195441000000401FA050418FC2F598A1195441713D0AE71CA05041B81E857BA1195441B81E85AB1AA05041E17A14AEA01954418FC2F55817A050413D0AD7139F1954417B14AEF713A05041295C8F129D1954413D0AD71312A0504152B81E959B195441B81E85BB11A05041AE47E1AA9A195441F6285CEF12A05041D7A3708D9A1954418FC2F5E813A05041AE47E19A981954417B14AE5715A05041295C8F9297195441B81E853B17A050410000000097195441F6285CCF19A050415C8FC27597195441E17A148E1AA05041000000F09419544148E17AB41DA0504185EB51F8951954410AD7A3901EA05041713D0A07961954415C8FC2F51CA05041C3F5281C951954411F85EB111BA0504185EB513893195441B81E85AB1AA05041333333C392195441F6285CCF19A05041E17A149E911954410AD7A3C019A050410AD7A320901954415C8FC2351AA05041B81E85FB8E19544185EB51781BA050411F85EB018E195441C3F5285C1DA050410AD7A3608D195441AE47E13A22A05041A4703DEA8A195441C3F5289C25A05041F6285C4F891954416666668626A05041295C8F82881954416666668626A05041295C8F2287195441EC51B87E25A05041A4703D6A85195441C3F5283C24A050413D0AD7A38319544185EB510823A050413D0AD74382195441D7A3706D21A0504185EB51B880195441C3F528CC20A050419A9999F97F19544185EB51981FA05041AE47E12A7D195441AE47E11A1EA0504148E17A047A1954410AD7A3301DA050413333335377195441AE47E1BA1CA050418FC2F508751954411F85EB211DA050416666661673195441AE47E11A1EA050411F85EBE171195441C3F5286C1FA050418FC2F53870195441C3F5287C21A050413D0AD7636E1954419A9999A923A050417B14AED76C19544114AE47B124A05041000000D06B195441AE47E1AA25A050417B14AE176A19544152B81EE525A05041295C8F4268195441AE47E1AA25A0504185EB519864195441C3F528EC24A050419A9999B95F195441FED0D5A924A050411C9661C85C1954418F4359A324A050416D7CB77E5C1954413D955B5025A05041EEFD226E5C195441C879E75025A0504152280C985C1954410F000000C3F5289C01A050413D0AD7E36A195441295C8F4202A050413333334364195441A4703DFA07A05041666666965A195441EC51B86E11A05041CDCCCC8C5319544152B81E2514A05041B81E85AB52195441AE47E1DA16A050418FC2F5B8541954418FC2F57816A0504148E17A54581954413D0AD7030EA05041E17A14FE6519544148E17A0408A05041D7A3700D6E19544148E17A5407A050419A9999B972195441B81E857B05A0504114AE47917A19544152B81E3503A05041F6285C6F7B195441295C8F12FE9F50417B14AE5779195441A4703D0AFD9F5041AE47E12A6D195441C3F5289C01A050413D0AD7E36A195441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>599242 - 145994
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000001D00000000000070C63051415C8FC215196A5441713D0AA7C7305141EC51B8CE136A5441D7A370CDBD3051418FC2F548106A544133333343BD30514166666616F96954419A999949B7305141A4703D0AF769544152B81E35B8305141666666360A6A5441666666F6B73051419A9999590B6A54415C8FC255B73051417B14AE370B6A544185EB5188B7305141A4703D3A0A6A5441CDCCCCBCB6305141D7A3700DF7695441333333D3B63051419A9999C9F569544148E17AD4AD3051413D0AD7F3F269544114AE4791A83051419A9999E9F46954419A999929A9305141EC51B85E096A5441CDCCCC2CB23051413D0AD7730B6A544100000010B730514148E17A940C6A54413D0AD733B73051410AD7A3E00B6A54415C8FC2C5B7305141A4703D3A0C6A5441AE47E1AAB730514185EB51B80C6A54413D0AD723B830514148E17AD40C6A544166666626B830514148E17A040F6A54411F85EB81B5305141EC51B8DE136A544166666636B430514152B81EB5156A54411F85EBA1B130514185EB51881B6A54419A999949AF305141C3F528AC206A5441295C8F22B830514100000000266A5441713D0A47BF305141D7A3704D2A6A5441B81E851BC3305141666666E6216A544100000070C63051415C8FC215196A5441
+</a>
+
+<b>
+01060000000100000001030000000100000025000000D7A370CDBD3051418FC2F548106A54419BF44FCDBD30514126B07943106A54416A075CCCBD305141D8028B1A106A544119B48FC3BD305141E6DC96A00E6A5441239EC5B0BD3051413E986D790B6A5441273766A4BD3051419A45EB65096A544129103631BD3051415C523C10F9695441658519C1BA3051418BD05D3AF8695441EF50344DB730514166A2790BF7695441595F7951B7305141F77A55AEF76954417438FE61B7305141934B9506F96954411BD65884B7305141AF3882D2FB6954418902058BB73051414800905DFC6954411DD7BFC5B7305141ADF67825016A5441008965F0B7305141282A3A9E046A544152B81E35B8305141666666360A6A5441666666F6B73051419A9999590B6A5441365A06EDB73051412AD19E570B6A54418CBFC5EBB7305141BA9DFD8A0B6A54413D0AD723B830514148E17AD40C6A544166666626B830514148E17A040F6A54416D914616B83051413EF016220F6A54411F85EB81B5305141EC51B8DE136A5441B0EB33A1B4305141AF51931D156A5441943655F7B3305141FB8B8243166A54411F85EBA1B130514185EB51881B6A544134333B62AF305141EABA2B76206A5441D4C0137BB4305141898BB3CC236A5441D84226A5B7305141B7FE7BB4256A5441B6EBD8C9B83051410F65A244266A5441CE385659BC305141169DC7511D6A5441CD7410BDBF305141118193B6136A54413C5B3688C2305141A7074312146A5441551662C1C5305141A8C64BB7146A5441A2A20359C7305141D970A221156A5441713D0AA7C7305141EC51B8CE136A5441D7A370CDBD3051418FC2F548106A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>599242 - 341412
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000001D00000000000070C63051415C8FC215196A5441713D0AA7C7305141EC51B8CE136A5441D7A370CDBD3051418FC2F548106A544133333343BD30514166666616F96954419A999949B7305141A4703D0AF769544152B81E35B8305141666666360A6A5441666666F6B73051419A9999590B6A54415C8FC255B73051417B14AE370B6A544185EB5188B7305141A4703D3A0A6A5441CDCCCCBCB6305141D7A3700DF7695441333333D3B63051419A9999C9F569544148E17AD4AD3051413D0AD7F3F269544114AE4791A83051419A9999E9F46954419A999929A9305141EC51B85E096A5441CDCCCC2CB23051413D0AD7730B6A544100000010B730514148E17A940C6A54413D0AD733B73051410AD7A3E00B6A54415C8FC2C5B7305141A4703D3A0C6A5441AE47E1AAB730514185EB51B80C6A54413D0AD723B830514148E17AD40C6A544166666626B830514148E17A040F6A54411F85EB81B5305141EC51B8DE136A544166666636B430514152B81EB5156A54411F85EBA1B130514185EB51881B6A54419A999949AF305141C3F528AC206A5441295C8F22B830514100000000266A5441713D0A47BF305141D7A3704D2A6A5441B81E851BC3305141666666E6216A544100000070C63051415C8FC215196A5441
+</a>
+
+<b>
+01060000000100000001030000000100000025000000D7A370CDBD3051418FC2F548106A54419BF44FCDBD30514126B07943106A54416A075CCCBD305141D8028B1A106A544119B48FC3BD305141E6DC96A00E6A5441239EC5B0BD3051413E986D790B6A5441273766A4BD3051419A45EB65096A544129103631BD3051415C523C10F9695441658519C1BA3051418BD05D3AF8695441EF50344DB730514166A2790BF7695441595F7951B7305141F77A55AEF76954417438FE61B7305141934B9506F96954411BD65884B7305141AF3882D2FB6954418902058BB73051414800905DFC6954411DD7BFC5B7305141ADF67825016A5441008965F0B7305141282A3A9E046A544152B81E35B8305141666666360A6A5441666666F6B73051419A9999590B6A5441365A06EDB73051412AD19E570B6A54418CBFC5EBB7305141BA9DFD8A0B6A54413D0AD723B830514148E17AD40C6A544166666626B830514148E17A040F6A54416D914616B83051413EF016220F6A54411F85EB81B5305141EC51B8DE136A5441B0EB33A1B4305141AF51931D156A5441943655F7B3305141FB8B8243166A54411F85EBA1B130514185EB51881B6A544134333B62AF305141EABA2B76206A5441D4C0137BB4305141898BB3CC236A5441D84226A5B7305141B7FE7BB4256A5441B6EBD8C9B83051410F65A244266A5441CE385659BC305141169DC7511D6A5441CD7410BDBF305141118193B6136A54413C5B3688C2305141A7074312146A5441551662C1C5305141A8C64BB7146A5441A2A20359C7305141D970A221156A5441713D0AA7C7305141EC51B8CE136A5441D7A370CDBD3051418FC2F548106A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>600325 - 1040786
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -11 </desc>
+<a>
+0106000000010000000103000000010000000D000000A4703D8A7D2351417B14AE57446C5441F6285C0F7F2351411F85EB11406C544185EB512883235141E17A14AE366C5441C3F528BC8523514114AE4771316C54417B14AE077A235141B81E858B2F6C5441AE47E13A6A2351419A9999992D6C54410AD7A3C06923514185EB5148306C54410AD7A34068235141E17A14BE386C544148E17A0464235141713D0A17386C544114AE47F15E235141F6285C3F376C5441713D0AF75D2351411F85EB11376C5441713D0AC75C235141295C8FE2416C5441A4703D8A7D2351417B14AE57446C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000A4703D8A7D2351417B14AE57446C5441C462996566235141B3AC729C426C5441B02661536223514142A37475426C54417CC36CB060235141AEB4E746426C544148A0DDC85E23514192111A09426C54411456D5FC5C235141D65298E6416C5441CF7212C95C2351413CA10DD0416C5441D16DEBC95C235141298255C8416C544122B5BA625C235141F2E840BB416C544101D5A5845B235141D5EAE043416C5441413121D95A2351419AB81C8C436C5441DBFCB03D5A235141B76C8B3F466C54415C8FC20558235141295C8FF2456C5441EC51B8CE54235141B81E857B456C5441B81E852B55235141713D0AF7426C5441000000105023514148E17A84426C5441295C8FD24F235141F6285C0F456C54418FC2F5284F235141333333134C6C54417B14AEA750235141E17A146E4C6C544152B81E55532351410AD7A3104D6C5441A4703D0A5C235141713D0A274E6C5441F6285C0F5C235141666666764E6C544152B81E1568235141CDCCCC5C4F6C5441AE47E11A74235141295C8F42506C54411F85EBA173235141EC51B88E4D6C5441D7A370CD73235141713D0A574C6C5441333333A378235141A4703D2A4D6C5441D7A370ED792351415C8FC2F54C6C5441A4703D1A7B235141000000304B6C5441A4703D8A7D2351417B14AE57446C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>600325 - 3561284
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -11 </desc>
+<a>
+0106000000010000000103000000010000000D000000A4703D8A7D2351417B14AE57446C5441F6285C0F7F2351411F85EB11406C544185EB512883235141E17A14AE366C5441C3F528BC8523514114AE4771316C54417B14AE077A235141B81E858B2F6C5441AE47E13A6A2351419A9999992D6C54410AD7A3C06923514185EB5148306C54410AD7A34068235141E17A14BE386C544148E17A0464235141713D0A17386C544114AE47F15E235141F6285C3F376C5441713D0AF75D2351411F85EB11376C5441713D0AC75C235141295C8FE2416C5441A4703D8A7D2351417B14AE57446C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000A4703D8A7D2351417B14AE57446C5441C462996566235141B3AC729C426C5441B02661536223514142A37475426C54417CC36CB060235141AEB4E746426C544148A0DDC85E23514192111A09426C54411456D5FC5C235141D65298E6416C5441CF7212C95C2351413CA10DD0416C5441D16DEBC95C235141298255C8416C544122B5BA625C235141F2E840BB416C544101D5A5845B235141D5EAE043416C5441413121D95A2351419AB81C8C436C5441DBFCB03D5A235141B76C8B3F466C54415C8FC20558235141295C8FF2456C5441EC51B8CE54235141B81E857B456C5441B81E852B55235141713D0AF7426C5441000000105023514148E17A84426C5441295C8FD24F235141F6285C0F456C54418FC2F5284F235141333333134C6C54417B14AEA750235141E17A146E4C6C544152B81E55532351410AD7A3104D6C5441A4703D0A5C235141713D0A274E6C5441F6285C0F5C235141666666764E6C544152B81E1568235141CDCCCC5C4F6C5441AE47E11A74235141295C8F42506C54411F85EBA173235141EC51B88E4D6C5441D7A370CD73235141713D0A574C6C5441333333A378235141A4703D2A4D6C5441D7A370ED792351415C8FC2F54C6C5441A4703D1A7B235141000000304B6C5441A4703D8A7D2351417B14AE57446C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>962513 - 321884
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -35 </desc>
+<a>
+0106000000010000000103000000010000001B000000053362C557205141DDBFAFC4FB7F5441DC943B03622051414C97678DFD7F5441ED68A3B7672051416414CEC7FE7F54416E9CC9FD6E2051416AD44583008054417BCF729674205141EC6775D801805441BA04CB8E78205141D5D87FCA02805441809396A07820514199BA77C4F67F54418F24BCB178205141695DC1E0F17F5441809396A078205141CE7FA500F07F544162714B7E782051417C774576EE7F5441E75B004978205141333BDD33EA7F5441EEDD982578205141B067F1CCE17F5441D7BACB0078205141A0832511D97F54416D89DF6873205141C2D1861CD87F5441C1D419C76E20514139475F2FD77F54417AB4A85A68205141594F8139D67F5441D56CE08B642051418CF0C1B6D57F54419AFD161A602051414170251ED57F5441214F169C5D2051413F2A92C8D47F5441B42E96415920514106411533D47F5441F7CA8FC458205141E00B366BD47F54414A429F7B58205141C122D4ADDF7F54418B59624958205141648D306FE77F54415F265E1D5820514142663F8FEF7F544163582B2358205141AF1029A1F37F544142001D2A582051411A5D3E80F87F5441053362C557205141DDBFAFC4FB7F5441
+</a>
+
+<b>
+010600000001000000010300000001000000150000000AD7A31038205141713D0A37D37F5441EC51B8DE2E2051418FC2F518D57F544148E17A942C205141AE47E13AD57F5441D7A3708D2B205141B81E853BE47F544114AE47312B20514185EB5138ED7F54413D0AD7232B2051415C8FC235F57F5441F6285C0F2B205141E17A142EF97F54413D0AD7F32A205141C3F528CC00805441CDCCCC6C362051418FC2F5F8008054415C8FC2B53C205141CDCCCCAC00805441A4703D0A43205141333333C3FF7F5441D7A3705D48205141713D0A67FE7F54417B14AE774D2051419A999919FD7F544185EB51685220514100000020FC7F544148E17AC45720514185EB51E8FB7F5441A4703D4A58205141D7A3704DE77F5441666666C658205141295C8F22D47F54418FC2F5784920514152B81E15D27F5441A4703D3A47205141000000D0D17F544148E17AF43F2051413D0AD7F3D17F54410AD7A31038205141713D0A37D37F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>962513 - 1062375
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -35 </desc>
+<a>
+0106000000010000000103000000010000001B000000053362C557205141DDBFAFC4FB7F5441DC943B03622051414C97678DFD7F5441ED68A3B7672051416414CEC7FE7F54416E9CC9FD6E2051416AD44583008054417BCF729674205141EC6775D801805441BA04CB8E78205141D5D87FCA02805441809396A07820514199BA77C4F67F54418F24BCB178205141695DC1E0F17F5441809396A078205141CE7FA500F07F544162714B7E782051417C774576EE7F5441E75B004978205141333BDD33EA7F5441EEDD982578205141B067F1CCE17F5441D7BACB0078205141A0832511D97F54416D89DF6873205141C2D1861CD87F5441C1D419C76E20514139475F2FD77F54417AB4A85A68205141594F8139D67F5441D56CE08B642051418CF0C1B6D57F54419AFD161A602051414170251ED57F5441214F169C5D2051413F2A92C8D47F5441B42E96415920514106411533D47F5441F7CA8FC458205141E00B366BD47F54414A429F7B58205141C122D4ADDF7F54418B59624958205141648D306FE77F54415F265E1D5820514142663F8FEF7F544163582B2358205141AF1029A1F37F544142001D2A582051411A5D3E80F87F5441053362C557205141DDBFAFC4FB7F5441
+</a>
+
+<b>
+010600000001000000010300000001000000150000000AD7A31038205141713D0A37D37F5441EC51B8DE2E2051418FC2F518D57F544148E17A942C205141AE47E13AD57F5441D7A3708D2B205141B81E853BE47F544114AE47312B20514185EB5138ED7F54413D0AD7232B2051415C8FC235F57F5441F6285C0F2B205141E17A142EF97F54413D0AD7F32A205141C3F528CC00805441CDCCCC6C362051418FC2F5F8008054415C8FC2B53C205141CDCCCCAC00805441A4703D0A43205141333333C3FF7F5441D7A3705D48205141713D0A67FE7F54417B14AE774D2051419A999919FD7F544185EB51685220514100000020FC7F544148E17AC45720514185EB51E8FB7F5441A4703D4A58205141D7A3704DE77F5441666666C658205141295C8F22D47F54418FC2F5784920514152B81E15D27F5441A4703D3A47205141000000D0D17F544148E17AF43F2051413D0AD7F3D17F54410AD7A31038205141713D0A37D37F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>962513 - 3216792
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -35 </desc>
+<a>
+0106000000010000000103000000010000001B000000053362C557205141DDBFAFC4FB7F5441DC943B03622051414C97678DFD7F5441ED68A3B7672051416414CEC7FE7F54416E9CC9FD6E2051416AD44583008054417BCF729674205141EC6775D801805441BA04CB8E78205141D5D87FCA02805441809396A07820514199BA77C4F67F54418F24BCB178205141695DC1E0F17F5441809396A078205141CE7FA500F07F544162714B7E782051417C774576EE7F5441E75B004978205141333BDD33EA7F5441EEDD982578205141B067F1CCE17F5441D7BACB0078205141A0832511D97F54416D89DF6873205141C2D1861CD87F5441C1D419C76E20514139475F2FD77F54417AB4A85A68205141594F8139D67F5441D56CE08B642051418CF0C1B6D57F54419AFD161A602051414170251ED57F5441214F169C5D2051413F2A92C8D47F5441B42E96415920514106411533D47F5441F7CA8FC458205141E00B366BD47F54414A429F7B58205141C122D4ADDF7F54418B59624958205141648D306FE77F54415F265E1D5820514142663F8FEF7F544163582B2358205141AF1029A1F37F544142001D2A582051411A5D3E80F87F5441053362C557205141DDBFAFC4FB7F5441
+</a>
+
+<b>
+010600000001000000010300000001000000150000000AD7A31038205141713D0A37D37F5441EC51B8DE2E2051418FC2F518D57F544148E17A942C205141AE47E13AD57F5441D7A3708D2B205141B81E853BE47F544114AE47312B20514185EB5138ED7F54413D0AD7232B2051415C8FC235F57F5441F6285C0F2B205141E17A142EF97F54413D0AD7F32A205141C3F528CC00805441CDCCCC6C362051418FC2F5F8008054415C8FC2B53C205141CDCCCCAC00805441A4703D0A43205141333333C3FF7F5441D7A3705D48205141713D0A67FE7F54417B14AE774D2051419A999919FD7F544185EB51685220514100000020FC7F544148E17AC45720514185EB51E8FB7F5441A4703D4A58205141D7A3704DE77F5441666666C658205141295C8F22D47F54418FC2F5784920514152B81E15D27F5441A4703D3A47205141000000D0D17F544148E17AF43F2051413D0AD7F3D17F54410AD7A31038205141713D0A37D37F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>954430 - 3566902
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -28 </desc>
+<a>
+0106000000010000000103000000010000002C000000B1F8DD07105A51414C04569FA6865441FC6040C5125A514146C62615A3865441E891719D195A5141A32705629E865441E75950B31D5A51417F51E1939B865441AD66797D1D5A51416C1AE40399865441354C80071E5A514197DCD2AA978654411A559F74205A5141C29EC151968654414CB6C8B0235A5141D369CF6597865441980ED37F245A5141E334DD7998865441FB83BFD82C5A5141545ACBA994865441E7E0DEBA515A5141C32C702A8B86544101967877615A5141FBDEF12381865441023DF6A8685A51415B36E44C7686544186C25EC86C5A5141A5C0D8ED6E865441828DCDDB425A5141A528BE766F865441828DCDDB425A5141144AE49169865441B6722827435A5141CE5BDEF75C8654411762C4713F5A5141F3891FA95B8654417A04E0AB3D5A5141F824DE335B86544124D50E143B5A51417A0DFC835A8654410A1902EF375A51412FC32E12598654410AB5D68F375A51413C05B3E758865441C12F22DB325A5141AE33989258865441BE55832E305A5141B890346558865441CD4A2C902B5A51413BF8A01158865441472930C72B5A514188F50F6760865441FBD025F82A5A5141749D6969678654419EAD0D15295A51418A07B2126D865441C96FFCBB275A514123B8C6B06E865441C75D5A101B5A51417A3CA4FE6B865441A6C73EE8185A51413EAFA7436C86544198C76F1C165A51410B862CBD6A865441D8F6546E145A5141BD3402616A865441D031068D125A5141A233E3046D865441536081A1125A5141ADC8E256728654419B54B5D4125A514122F396197C865441E0EBF2DE125A51410B9D3B2E87865441F6ACE1A0115A5141BCFF86BC9186544140E1456E105A5141E22B36769B8654412ECA62F30F5A5141D941FA949E8654415EFCCC02105A51417858592EA28654412ECA62F30F5A5141C5052A1AA3865441EC3225E90F5A514173BF614DA4865441B1F8DD07105A51414C04569FA6865441
+</a>
+
+<b>
+010600000001000000010300000001000000510000000D62DEA7115A5141C524E6D1A3865441D32ACC08105A51416044331DA08654419266EA42115A5141B5E281529F86544180E901AC155A5141AD9341C89C865441453B422A185A5141465D4F3B9F865441E991719D195A5141A72705629E8654410139B8F01B5A5141AB9E42C99C865441A469B7251D5A5141FDB419F59B865441461522521D5A5141E1CDF2A99B865441BE608B341C5A5141CEB896F299865441DA9CDD2B1D5A5141A1D6962198865441EBA27F331E5A51419A26FA669786544132425920205A51419759C72E96865441514AA439225A5141C92F0B2B9686544162C31CF3225A51417017B212998654414EA1AB63245A5141234CD15F988654416B7F0ACE2B5A5141AFBACAE694865441667E5E17515A51419CE6B8798B865441FD6EB477585A51415386BF2E878654413AEFDA04615A514179C1B3A181865441EEDF48A4685A514100D9544F7686544148C3E59E6B5A514174DB724271865441E3659E2D635A5141A2F0BFE1708654411F63F66C595A5141604EB5497086544141256C01505A51412EBC76946F86544155A32CFC4A5A51413010ACE56E865441D8042351475A514120AF35696E8654416F3B57E7425A5141CFBF59D96D865441878DCDDB425A5141174AE49169865441BB722827435A5141CB5BDEF75C8654411A62C4713F5A5141F4891FA95B8654417804E0AB3D5A5141F924DE335B86544125D50E143B5A5141770DFC835A8654410A1902EF375A51412CC32E12598654410EB5D68F375A51413B05B3E758865441C02F22DB325A5141B333989258865441C055832E305A5141B69034655886544178869F3A2B5A5141A4B11E14588654411A9D5797295A5141784A80CE58865441F38D214E2A5A5141A6558EFA59865441DAAF6F0C2B5A5141C43BDC935B865441CD0F64B32B5A51417FE657675D8654415DB592142C5A5141CD726E1F6186544121204D7B2B5A5141E76DD1AE648654411695C09E2A5A514151098A4567865441336221D9285A514103691D3C6C86544105473785285A5141D2B543296D865441109AC5291F5A5141D36B4E0F6D865441015362991E5A51419DB918426C8654416FDDD5241A5A5141F751C7026C865441D28EC4F2185A51411CA65ABF6B865441971DE51B165A51415763BB866B865441532000D7145A51410825E8836B8654410A854C87135A5141FFD7FC806B865441D331068D125A5141A133E3046D865441526081A1125A5141ADC8E256728654419654B5D4125A514121F396197C865441254975C6125A5141B755E0857D8654412BA66BEF125A5141E2E09CA47E865441DD544193125A5141E9A5EB8580865441A4BA0614125A5141CAA81EF387865441D387F930115A514126A0719E918654415779340A115A514156F8814993865441D023B306105A51413934AF3B938654413EC0EAB80E5A5141990439D89986544125E482830D5A5141B1712B169C865441D8635CBE0B5A51415C33260D9E8654415EECB2FC0A5A5141562285D59E86544143277A050A5A51418E59E7F79F8654418123E7360A5A51416CC9416CA186544196546E58095A51419B264ABEA2865441E81C347C085A514135AE4209A48654411D11C20A085A5141548870AAA48654412E20CB79075A514105E42066A58654411204CF5B0A5A51417C60A31EA6865441ED01D0EE0C5A5141F5F964C3A68654414C6D03200F5A514174FBB24FA78654411898B7A70F5A5141B0388E6FA7865441AA4E5A62105A514148455F27A6865441FCD1C54B115A514122838174A48654410D62DEA7115A5141C524E6D1A3865441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>791514 - 1278198
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+010600000001000000010300000001000000170000009A99992953CA5041F6285C5FBB5554415C8FC2054ECA5041AE47E18ABB555441DCAE759F4ACA504194B892D0455554412C38A0AA4FCA50418CF2A1D945555441D7A3707D4ECA50418FC2F5581D5554413D0AD7334DCA50418FC2F5181C555441666666B624CA5041F6285C0F1C55544148E17A5423CA5041D7A3704D1D555441C3F528CC21CA504152B81EB52B555441EC51B87E1CCA50418FC2F5B8605554410000001014CA504166666606B355544152B81EB511CA50419A9999A9CD5554410AD7A3000FCA50417B14AED7E7555441AE47E19A0FCA5041CDCCCCECF05554418FC2F5B819CA50413D0AD7831E5654415C8FC2B51DCA5041E17A142E20565441F6285C2F3ACA504185EB51D818565441EC51B88E47CA5041D7A3707D1556544152B81EC558CA5041295C8F3210565441AE47E13A5ECA5041000000200E5654415C8FC2355FCA504114AE47710C5654410AD7A34058CA50417B14AEF7DE5554419A99992953CA5041F6285C5FBB555441
+</a>
+
+<b>
+010600000001000000010300000001000000160000009A99992953CA5041F6285C5FBB5554411685FE9E4CCA504139A541AFBB5554411ABFDADE47CA504191DB737643555441470F67A74FCA5041A9DDAA6A455554416F79D9B44ECA504185207B661C555441666666B624CA5041F6285C0F1C55544148E17A5423CA5041D7A3704D1D555441C3F528CC21CA504152B81EB52B555441EC51B87E1CCA50418FC2F5B8605554410000001014CA504166666606B355544152B81EB511CA50419A9999A9CD5554410AD7A3000FCA50417B14AED7E7555441AE47E19A0FCA5041CDCCCCECF05554418FC2F5B819CA50413D0AD7831E5654415C8FC2B51DCA5041E17A142E20565441F6285C2F3ACA504185EB51D818565441EC51B88E47CA5041D7A3707D1556544152B81EC558CA5041295C8F3210565441AE47E13A5ECA5041000000200E5654415C8FC2355FCA504114AE47710C5654410AD7A34058CA50417B14AEF7DE5554419A99992953CA5041F6285C5FBB555441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>791514 - 5255342
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+010600000001000000010300000001000000170000009A99992953CA5041F6285C5FBB5554415C8FC2054ECA5041AE47E18ABB555441DCAE759F4ACA504194B892D0455554412C38A0AA4FCA50418CF2A1D945555441D7A3707D4ECA50418FC2F5581D5554413D0AD7334DCA50418FC2F5181C555441666666B624CA5041F6285C0F1C55544148E17A5423CA5041D7A3704D1D555441C3F528CC21CA504152B81EB52B555441EC51B87E1CCA50418FC2F5B8605554410000001014CA504166666606B355544152B81EB511CA50419A9999A9CD5554410AD7A3000FCA50417B14AED7E7555441AE47E19A0FCA5041CDCCCCECF05554418FC2F5B819CA50413D0AD7831E5654415C8FC2B51DCA5041E17A142E20565441F6285C2F3ACA504185EB51D818565441EC51B88E47CA5041D7A3707D1556544152B81EC558CA5041295C8F3210565441AE47E13A5ECA5041000000200E5654415C8FC2355FCA504114AE47710C5654410AD7A34058CA50417B14AEF7DE5554419A99992953CA5041F6285C5FBB555441
+</a>
+
+<b>
+010600000001000000010300000001000000160000009A99992953CA5041F6285C5FBB5554411685FE9E4CCA504139A541AFBB5554411ABFDADE47CA504191DB737643555441470F67A74FCA5041A9DDAA6A455554416F79D9B44ECA504185207B661C555441666666B624CA5041F6285C0F1C55544148E17A5423CA5041D7A3704D1D555441C3F528CC21CA504152B81EB52B555441EC51B87E1CCA50418FC2F5B8605554410000001014CA504166666606B355544152B81EB511CA50419A9999A9CD5554410AD7A3000FCA50417B14AED7E7555441AE47E19A0FCA5041CDCCCCECF05554418FC2F5B819CA50413D0AD7831E5654415C8FC2B51DCA5041E17A142E20565441F6285C2F3ACA504185EB51D818565441EC51B88E47CA5041D7A3707D1556544152B81EC558CA5041295C8F3210565441AE47E13A5ECA5041000000200E5654415C8FC2355FCA504114AE47710C5654410AD7A34058CA50417B14AEF7DE5554419A99992953CA5041F6285C5FBB555441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>604163 - 360352
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -11 </desc>
+<a>
+0106000000010000000103000000010000000D0000008FC2F5A869DD5041A4703DCA1D2155413D0AD7D369DD504185EB51481F215541333333B369DD50415C8FC225212155418FC2F52869DD50417B14AED723215541CDCCCC1C67DD5041EC51B8AE2A2155418FC2F56870DD5041B81E85DB2B215541E17A14FE6FDD50417B14AEC72F2155419A9999D96EDD5041295C8F323521554148E17A6472DD50410AD7A3D034215541295C8F0279DD5041000000B01921554152B81EA574DD5041666666261921554114AE476174DD504152B81EF51A2155418FC2F5A869DD5041A4703DCA1D215541
+</a>
+
+<b>
+01060000000100000001030000000100000012000000295C8F0279DD5041000000B019215541560B05B574DD5041329D5B281921554175ACF57D74DD504139C880311A21554114AE476174DD504152B81EF51A215541C4CEA95474DD5041AB2274F81A215541C3A5991B74DD50417D5F1F531B2155415980DCA172DD50413F8CFBD123215541EC496C7C70DD504176EDE3042B21554168CBBD6C70DD504148F540002C215541FFD1874270DD504118A092442D215541E17A14FE6FDD50417B14AEC72F215541BCA2716A6FDD50413175BD83322155419B03F7DF6EDD5041B86CDF3135215541C1905F1771DD504151689BF434215541BCF5E42171DD5041DD9678F3342155418B792E5D72DD5041D538CFB83421554104C6D8B277DD5041C06835101F215541295C8F0279DD5041000000B019215541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>607926 - 401649
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000003000000010300000001000000CF00000085EB51786CA7504148E17A34F05355411F85EB516CA75041713D0A37EF5355410000009073A750413D0AD7A3ED535541333333B378A7504148E17A64E75355418FC2F5D86AA750419A9999E9E7535541295C8F4262A7504148E17A34F25355410AD7A3905AA750411F85EBD1FC535541E17A14FE57A75041E17A145EFF535541C3F528CC54A7504152B81E250154554185EB519851A750417B14AE9701545541D7A3707D3EA75041713D0A17FD535541A4703D8A30A75041713D0AB7FF53554114AE47C130A7504166666626045455411F85EBD12FA7504148E17A2408545541000000902DA7504185EB51D80B54554114AE470129A750418FC2F5E80E545541E17A145E28A75041B81E85AB0D545541A4703DBA2BA750410AD7A3700A545541333333932DA750410AD7A33007545541B81E856B2EA750419A999909045455411F85EB212EA75041295C8FE200545541000000B02CA750418FC2F55801545541713D0AF72BA7504148E17A9401545541B81E852B2AA7504185EB5128025455418FC2F50829A750415C8FC28502545541713D0A0728A7504185EB51D8025455419A99995927A750410000001003545541295C8FE226A75041C3F5282C03545541F6285C1F26A750419A99995903545541E17A14EE23A75041CDCCCCDC03545541CDCCCC4C22A75041E17A143E045455418FC2F53821A75041E17A147E0454554152B81EF51FA750419A9999C9045455410AD7A3E01EA75041A4703D0A055455413D0AD7831DA75041B81E855B055455419A9999491CA7504152B81EA50554554185EB51B819A7504100000080065455417B14AE0718A750410AD7A31007545541D7A3707D15A750418FC2F5E8075455418FC2F58813A7504100000090085455417B14AE9711A750415C8FC23509545541B81E857B0FA75041A4703DEA09545541D7A370ED0CA750413D0AD70304545541333333730BA750413D0AD7830454554152B81E450AA750419A9999E90454554185EB519809A750413D0AD7230554554114AE47C108A75041CDCCCC6C0554554148E17AC406A750418FC2F51806545541C3F528FC05A750416666665606545541A4703DDA04A75041EC51B8AE06545541713D0AF702A75041295C8F42075455410AD7A37001A75041A4703DBA07545541C3F528FCFCA65041713D0A1709545541333333D3FAA65041000000C00954554148E17AA4F8A65041AE47E16A0A545541EC51B8FEF6A65041C3F528EC0A5455417B14AE87B6A65041A4703DAA0F5455415C8FC2F574A65041713D0AA737545541666666F657A65041000000F03F545541B81E85FB27A650415C8FC275455455411F85EB011FA65041AE47E14A4A545541AE47E15A02A650418FC2F5784F545541666666D6E5A55041C3F5280C4C54554185EB5178E6A55041295C8F7255545541B81E851BE8A55041333333F3555455417B14AE57EAA550418FC2F598565455415C8FC265EBA550413D0AD7E356545541AE47E13AEDA550416666663657545541C3F528BCF1A550415C8FC2055854554166666666F5A55041000000B0585455417B14AE27F8A55041C3F5281C59545541CDCCCC4CFBA5504148E17A94595455411F85EBE1FEA550418FC2F5085A545541B81E853B01A65041295C8F425A5455410AD7A36004A6504148E17A745A5455410AD7A39009A65041AE47E1BA5A54554148E17AC411A65041713D0A275B5455413333331315A650418FC2F5585B5455413D0AD7C317A650417B14AEA75B5455410AD7A3701AA65041333333035C54554185EB51281FA650418FC2F5A85C5455418FC2F59823A650413D0AD7635D545541666666A628A65041000000405E545541EC51B8DE2CA65041EC51B84E5D545541000000E030A65041AE47E17A5C54554185EB514835A650419A9999895B545541C3F5283C3BA65041D7A3703D5A545541D7A3707D3FA650410000005059545541D7A3708D40A65041AE47E12A5954554152B81E1545A65041E17A14DE58545541713D0A074AA65041A4703DAA58545541CDCCCC7C4CA65041AE47E18A58545541D7A3709D4EA6504185EB5148585455418FC2F5E853A6504166666676575455415C8FC2E556A650411F85EB0157545541713D0A4759A650417B14AEC756545541713D0A675DA65041713D0A87565455418FC2F5F861A6504166666636565455415C8FC2B56AA65041713D0AC7555455416666664671A6504148E17AC45554554148E17A4473A65041666666B65554554148E17A0475A6504166666696555455417B14AEE776A650415C8FC255555455410000009077A650410AD7A33055545541333333E378A6504148E17AD454545541C3F5289C79A650415C8FC285545455410AD7A3507AA65041000000205454554185EB51A87BA65041713D0A3753545541E17A14CE7CA65041D7A3705D52545541E17A14AE7EA65041B81E85AB5054554114AE478181A65041000000F04D545541CDCCCC4C84A65041F6285C3F4B545541A4703D7A87A6504185EB517848545541CDCCCC1C8BA6504148E17A44455455418FC2F5E88EA65041AE47E1CA41545541EC51B8DE91A65041F6285CFF3E54554148E17A3493A650410AD7A3E03D5455417B14AE3795A650411F85EB913C545541295C8FE296A650411F85EBA13B54554148E17A2499A6504185EB51B83A54554148E17A549EA65041CDCCCCFC3854554185EB51E89FA65041D7A3705D38545541CDCCCC7CA2A65041C3F528FC36545541295C8F72A5A650411F85EBB1355455411F85EBD1A7A65041333333833454554166666636ABA65041EC51B8AE325455413D0AD713ACA6504148E17A5432545541D7A3708DAFA65041EC51B81E31545541C3F528DCB0A650419A9999B9305455410AD7A3B0B2A65041CDCCCC4C30545541713D0AF7B4A650417B14AE07305455411F85EB31B8A65041000000C02F545541E17A140EBBA6504185EB51982F54554152B81ED5BCA65041666666862F545541A4703DBABFA65041B81E85DB2E5455413D0AD793C2A6504152B81E452E54554152B81EE5C3A650411F85EBE12D5455413D0AD7F3C4A650417B14AE872D545541CDCCCCCCC6A650415C8FC2C52C54554133333313C9A65041333333C32B545541C3F5284CCDA65041295C8FD2295455418FC2F538D2A650415C8FC28527545541666666E6D3A650415C8FC2D526545541B81E85BBD6A650417B14AEC725545541B81E854BD9A65041B81E855B25545541E17A14EEDBA650417B14AEF7245455415C8FC2B5DFA650413D0AD75324545541713D0AD7E2A65041B81E85AB2354554114AE4791E6A65041D7A3709D225455410AD7A310E8A65041333333332254554148E17A44EBA6504133333373215455415C8FC245EFA65041D7A370FD20545541D7A3704DF1A65041A4703D9A205455417B14AE37F4A65041AE47E10A20545541A4703D3AF6A65041333333A31F54554148E17A34F9A650415C8FC2E51E54554152B81ED5FCA650410AD7A3001E5455417B14AEB7FEA65041000000901D545541E17A14EE01A75041D7A3707D1D5455419A99997905A75041AE47E16A1D54554185EB51C806A75041D7A3707D1D54554185EB51080BA75041C3F528FC1D5455415C8FC2650EA7504148E17A641E545541333333C311A75041AE47E11A1F545541CDCCCCCC12A75041B81E854B1F545541000000A015A7504152B81EA51F545541EC51B89E18A75041713D0A3720545541AE47E16A1CA7504100000010215455415C8FC2D51EA750415C8FC295215455413333330322A750413333336322545541B81E857B23A75041B81E85BB22545541B81E854B25A75041295C8FE222545541AE47E16A28A750415C8FC235235455410AD7A3802BA75041AE47E17A23545541B81E853B2CA75041CDCCCC6C23545541E17A148E30A750419A9999E9225455417B14AE7732A750418FC2F5B822545541EC51B80E35A75041713D0AD722545541666666A639A7504133333343235455419A9999593EA75041E17A14DE23545541EC51B80E42A750416666664624545541B81E853B44A7504148E17A8424545541A4703D5A46A75041C3F528EC2454554185EB511849A750419A99997925545541E17A142E4CA750413D0AD713265455419A9999C94EA750415C8FC29526545541F6285CBF51A7504148E17A24275455410AD7A36053A7504152B81E85275455417B14AE8754A7504114AE4761275455419A9999F955A750418FC2F518275455415C8FC22557A750411F85EBC1265455411F85EBF159A75041E17A14CE255455413D0AD7E35CA75041333333D324545541AE47E16A61A750416666661623545541D7A3705D64A750410AD7A3D0215455411F85EB616BA75041CDCCCC2C1D545541F6285CDF6EA750415C8FC2251A545541295C8FC279A750410AD7A3700C545541F6285CCF7CA750417B14AE170A545541000000C07FA750413D0AD74309545541AE47E1DA82A75041C3F528DC08545541295C8FE27FA75041A4703D1A06545541CDCCCC1C7AA7504185EB51C8005455413D0AD79377A750419A9999F900545541295C8F726FA750417B14AEE703545541C3F5284C6FA75041A4703DEA0254554185EB51786CA7504148E17A34F05355410103000000010000001600000085EB51A802A65041666666266654554114AE47E106A65041E17A14DE645455417B14AE5708A65041B81E856B645455419A99992909A650410000004064545541F6285C0F0CA65041295C8FE2635455419A9999F90EA650413333338363545541A4703DFA12A65041C3F528CC62545541AE47E12A18A650410AD7A3D061545541E17A14DE1CA65041EC51B8CE60545541D7A370BD21A65041295C8FC25F545541D7A3701D27A650417B14AE975E545541CDCCCC8C23A6504152B81EF55D5455411F85EBC11FA650413D0AD7635D54554152B81E651BA6504114AE47B15C54554148E17AB418A65041666666665C545541AE47E10A15A65041713D0A075C545541295C8F0212A650418FC2F5C85B545541AE47E1CA09A6504114AE47615B545541295C8F9204A65041EC51B81E5B545541295C8FD2FFA55041AE47E1BA5A545541A4703D7AFBA55041F6285C4F5A54554185EB51A802A650416666662666545541010300000001000000AB000000A4703D2A8AA65041F6285C3F47545541D7A370FD8BA650411F85EBF146545541C3F528AC8DA65041A4703D9A465455415C8FC2C58FA65041EC51B80E46545541E17A143E92A650413D0AD763455455413333336394A6504152B81EC544545541EC51B8FE96A65041EC51B8FE435455413D0AD7A399A650410AD7A3304354554185EB51389CA65041295C8F624254554152B81EF59EA650418FC2F58841545541B81E857BA0A650419A9999194154554152B81E65A3A650415C8FC265405455411F85EB61A6A65041D7A370BD3F5455410AD7A390A7A65041B81E857B3F545541713D0AD7A9A65041EC51B8DE3E545541A4703D7AABA650411F85EB713E54554152B81EC5ADA65041D7A3706D3D545541D7A3706DAFA65041295C8FB23C545541F6285C3FB1A6504185EB51C83B54554185EB5188B3A65041B81E859B3A54554133333383B4A65041E17A141E3A54554133333393B5A650418FC2F5C839545541666666F6B6A65041CDCCCC6C395455419A999919B8A65041F6285C2F39545541713D0A17BAA65041D7A370FD385455417B14AEC7BCA650413D0AD7B338545541000000C0BEA65041CDCCCC6C385455418FC2F5C8BFA65041D7A3703D38545541A4703D7AC2A65041295C8F8237545541B81E85EBC3A65041F6285C1F3754554114AE4771C6A6504185EB51583654554185EB5108C9A650415C8FC28535545541B81E853BCBA65041EC51B8BE34545541EC51B86ECEA650410000009033545541713D0AB7D1A6504148E17A8432545541B81E85CBD5A6504148E17A743054554148E17A54D6A650419A99994930545541CDCCCC9CD9A65041666666662F5455413D0AD7E3DAA65041A4703D0A2F545541AE47E1FADBA65041EC51B8CE2E545541A4703DAADDA650415C8FC2852E545541713D0A67DFA65041713D0A272E545541B81E853BE1A650410AD7A3B02D545541A4703D5AE2A650418FC2F5582D54554185EB51B8E4A65041666666862C545541A4703D0AE8A65041D7A3708D2B545541295C8F12ECA6504152B81E552A5455419A999979EFA65041AE47E16A29545541AE47E12AF1A65041AE47E1EA28545541D7A3704DF4A65041A4703D9A28545541A4703DCAF6A650415C8FC25528545541295C8F82F8A650415C8FC2952854554152B81E65FAA65041E17A14FE28545541F6285C0FFCA65041EC51B85E29545541AE47E15AFDA65041B81E858B29545541A4703D9AFEA6504114AE47A129545541AE47E1CA01A750417B14AED72954554185EB511804A750413D0AD7F329545541CDCCCC9C06A7504152B81E152A545541333333E307A75041295C8F122A545541D7A3700D0AA750413D0AD7F329545541000000600BA750410AD7A3D029545541D7A3702D0DA7504152B81E9529545541713D0AD70FA7504185EB51282954554152B81EF512A75041F6285CAF2854554114AE47A115A750419A99994928545541CDCCCCBC18A7504152B81E052854554148E17AE419A75041D7A370ED27545541333333231DA75041000000F0275455411F85EB9120A750411F85EB21285455411F85EB7124A75041C3F5284C28545541666666C626A7504185EB516828545541666666E629A75041EC51B8CE28545541B81E850B2DA750415C8FC225295455413D0AD7532FA75041EC51B85E2954554185EB519830A750416666667629545541E17A144E32A750411F85EB31295455410000005034A75041AE47E1EA28545541A4703DBA35A75041F6285CAF285455419A9999B937A75041CDCCCC5C28545541AE47E1FA3AA75041295C8F4228545541000000D03BA750419A999949285455417B14AE473FA750417B14AE9728545541295C8F0241A75041AE47E1AA2854554185EB514844A75041EC51B8CE28545541C3F528FC45A75041D7A370ED285455415C8FC25547A750413D0AD7E328545541666666B648A75041333333D328545541295C8F524AA750411F85EBB128545541666666264DA750410AD7A3502854554148E17A4451A750419A9999C927545541295C8F224FA75041B81E855B275455418FC2F5884CA75041EC51B8DE26545541713D0A0749A75041EC51B82E265455411F85EBC145A7504185EB518825545541CDCCCC8C43A750419A99993925545541713D0A273FA750410AD7A3B0245455413D0AD7933BA750418FC2F53824545541A4703D2A38A750415C8FC2C523545541EC51B8DE35A7504152B81E95235455419A9999F932A750418FC2F56823545541295C8FD230A7504152B81E9523545541C3F528CC2EA750415C8FC2E5235455410AD7A3D02BA7504152B81E4524545541713D0A3727A750415C8FC2C52354554148E17AE424A7504166666686235455418FC2F5B822A750411F85EB4123545541F6285CEF20A7504114AE47D122545541713D0A871EA7504148E17A342254554185EB51D81AA75041713D0A87215455413333334317A75041295C8FE2205455415C8FC2E513A75041A4703D3A20545541A4703D8A10A750413D0AD7731F54554152B81E750EA75041CDCCCC0C1F5455415C8FC2550CA75041295C8FB21E54554148E17AF409A750410AD7A3701E5455415C8FC2C506A75041713D0A471E5455410AD7A38003A75041713D0A271E545541666666D601A7504185EB51381E545541C3F528BCFFA65041E17A144E1E5455413D0AD7D3FEA65041666666661E5455417B14AEB7FDA65041A4703D9A1E545541000000F0FAA65041B81E853B1F5455410AD7A380F9A65041D7A3709D1F5455417B14AE77F7A650417B14AE3720545541D7A370DDF6A650419A99995920545541713D0A87F5A65041C3F5289C205455419A999959F1A650411F85EB6121545541EC51B8AEEEA65041EC51B8DE21545541295C8F42EBA65041F6285C2F22545541D7A3706DEAA6504148E17A54225455411F85EB81E8A65041AE47E1FA22545541A4703D2AE6A6504114AE47A123545541AE47E16AE2A6504148E17AA4245455410AD7A320E1A650415C8FC2D524545541CDCCCCDCDCA65041CDCCCC8C25545541E17A148ED9A65041C3F5280C2654554152B81E85D7A650411F85EB6126545541295C8FD2D6A650410AD7A39026545541E17A142ED6A65041666666C626545541EC51B87ED3A650415C8FC2F52754554152B81E25CFA650418FC2F5E829545541F6285CCFCBA650417B14AE772B545541713D0A07C9A6504185EB51B82C5455411F85EBA1C7A650413D0AD7432D545541E17A14FEC4A65041666666362E5455418FC2F518C2A65041C3F5281C2F545541CDCCCCACBEA65041D7A370FD2F545541713D0AB7BCA6504148E17A6430545541295C8FE2B9A65041F6285C7F30545541E17A143EB6A6504152B81EB530545541000000A0B3A65041C3F528FC305455417B14AEC7B1A65041F6285C4F3154554185EB5178B0A65041713D0AA731545541CDCCCC4CAEA65041AE47E14A3254554114AE4781ADA650410AD7A3A032545541A4703D6AA9A65041000000C034545541CDCCCCDCA6A65041333333033654554133333333A3A65041333333C3375455418FC2F528A0A650411F85EB3139545541713D0A179FA65041000000A0395455419A9999599DA65041B81E852B3A545541A4703D7A9BA65041EC51B8BE3A54554114AE476198A650418FC2F5E83B545541EC51B8DE96A650417B14AEA73C5455418FC2F5B895A65041AE47E15A3D5455411F85EBD193A6504185EB51B83E545541713D0AF791A65041000000404054554152B81EF58FA650410000000042545541EC51B81E8DA650410AD7A3C044545541A4703D2A8AA65041F6285C3F47545541
+</a>
+
+<b>
+01060000000100000001030000000100000037000000E651BDF08CA65041C37776E744545541AC4B376A8AA650417DD157094754554110F34B688AA65041966F50344754554109D650638BA65041C7D0CA0A47545541DD6E18228FA65041F941727E455455411FF49DFA91A650414E99B14C445455416389507093A65041F844D1B3435455417D5ECCF2A4A650412FE95E343C545541143B9199A6A65041EF1C2F7F3B5455418865DCEFA8A650411720C2DE3A545541938A1FEFB2A6504141BB182A385455413C65D7F2BDA65041B33F9A2F35545541DA7CCAA0C4A6504171EE32613354554107BCC304D0A650411925484C30545541DA548BC3D3A650419D99B6492F54554178C355EBD6A65041CE82C76E2E5455417D146FFAD6A65041166CF2282E545541120BDFBFD7A6504135983F582654554152B81E85D7A650411F85EB6126545541295C8FD2D6A650410AD7A39026545541E17A142ED6A65041666666C626545541EC51B87ED3A650415C8FC2F52754554176054629D3A65041B447101C2854554152B81E25CFA650418FC2F5E829545541F6285CCFCBA650417B14AE772B545541713D0A07C9A6504185EB51B82C5455411F85EBA1C7A650413D0AD7432D545541E17A14FEC4A65041666666362E5455418FC2F518C2A65041C3F5281C2F545541CDCCCCACBEA65041D7A370FD2F545541713D0AB7BCA6504148E17A6430545541295C8FE2B9A65041F6285C7F30545541E17A143EB6A6504152B81EB530545541000000A0B3A65041C3F528FC3054554169FC6FECB2A65041814ECA1B315455417B14AEC7B1A65041F6285C4F31545541B39DE2BAB0A650418BF1A2953154554185EB5178B0A65041713D0AA731545541CDCCCC4CAEA65041AE47E14A3254554114AE4781ADA650410AD7A3A032545541A4703D6AA9A65041000000C034545541CDCCCCDCA6A65041333333033654554133333333A3A65041333333C3375455418FC2F528A0A650411F85EB3139545541713D0A179FA65041000000A0395455419A9999599DA65041B81E852B3A545541A4703D7A9BA65041EC51B8BE3A54554114AE476198A650418FC2F5E83B545541EC51B8DE96A650417B14AEA73C5455418FC2F5B895A65041AE47E15A3D5455411F85EBD193A6504185EB51B83E545541713D0AF791A65041000000404054554152B81EF58FA650410000000042545541EC51B81E8DA650410AD7A3C044545541E651BDF08CA65041C37776E744545541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>607926 - 419809
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000003000000010300000001000000CF00000085EB51786CA7504148E17A34F05355411F85EB516CA75041713D0A37EF5355410000009073A750413D0AD7A3ED535541333333B378A7504148E17A64E75355418FC2F5D86AA750419A9999E9E7535541295C8F4262A7504148E17A34F25355410AD7A3905AA750411F85EBD1FC535541E17A14FE57A75041E17A145EFF535541C3F528CC54A7504152B81E250154554185EB519851A750417B14AE9701545541D7A3707D3EA75041713D0A17FD535541A4703D8A30A75041713D0AB7FF53554114AE47C130A7504166666626045455411F85EBD12FA7504148E17A2408545541000000902DA7504185EB51D80B54554114AE470129A750418FC2F5E80E545541E17A145E28A75041B81E85AB0D545541A4703DBA2BA750410AD7A3700A545541333333932DA750410AD7A33007545541B81E856B2EA750419A999909045455411F85EB212EA75041295C8FE200545541000000B02CA750418FC2F55801545541713D0AF72BA7504148E17A9401545541B81E852B2AA7504185EB5128025455418FC2F50829A750415C8FC28502545541713D0A0728A7504185EB51D8025455419A99995927A750410000001003545541295C8FE226A75041C3F5282C03545541F6285C1F26A750419A99995903545541E17A14EE23A75041CDCCCCDC03545541CDCCCC4C22A75041E17A143E045455418FC2F53821A75041E17A147E0454554152B81EF51FA750419A9999C9045455410AD7A3E01EA75041A4703D0A055455413D0AD7831DA75041B81E855B055455419A9999491CA7504152B81EA50554554185EB51B819A7504100000080065455417B14AE0718A750410AD7A31007545541D7A3707D15A750418FC2F5E8075455418FC2F58813A7504100000090085455417B14AE9711A750415C8FC23509545541B81E857B0FA75041A4703DEA09545541D7A370ED0CA750413D0AD70304545541333333730BA750413D0AD7830454554152B81E450AA750419A9999E90454554185EB519809A750413D0AD7230554554114AE47C108A75041CDCCCC6C0554554148E17AC406A750418FC2F51806545541C3F528FC05A750416666665606545541A4703DDA04A75041EC51B8AE06545541713D0AF702A75041295C8F42075455410AD7A37001A75041A4703DBA07545541C3F528FCFCA65041713D0A1709545541333333D3FAA65041000000C00954554148E17AA4F8A65041AE47E16A0A545541EC51B8FEF6A65041C3F528EC0A5455417B14AE87B6A65041A4703DAA0F5455415C8FC2F574A65041713D0AA737545541666666F657A65041000000F03F545541B81E85FB27A650415C8FC275455455411F85EB011FA65041AE47E14A4A545541AE47E15A02A650418FC2F5784F545541666666D6E5A55041C3F5280C4C54554185EB5178E6A55041295C8F7255545541B81E851BE8A55041333333F3555455417B14AE57EAA550418FC2F598565455415C8FC265EBA550413D0AD7E356545541AE47E13AEDA550416666663657545541C3F528BCF1A550415C8FC2055854554166666666F5A55041000000B0585455417B14AE27F8A55041C3F5281C59545541CDCCCC4CFBA5504148E17A94595455411F85EBE1FEA550418FC2F5085A545541B81E853B01A65041295C8F425A5455410AD7A36004A6504148E17A745A5455410AD7A39009A65041AE47E1BA5A54554148E17AC411A65041713D0A275B5455413333331315A650418FC2F5585B5455413D0AD7C317A650417B14AEA75B5455410AD7A3701AA65041333333035C54554185EB51281FA650418FC2F5A85C5455418FC2F59823A650413D0AD7635D545541666666A628A65041000000405E545541EC51B8DE2CA65041EC51B84E5D545541000000E030A65041AE47E17A5C54554185EB514835A650419A9999895B545541C3F5283C3BA65041D7A3703D5A545541D7A3707D3FA650410000005059545541D7A3708D40A65041AE47E12A5954554152B81E1545A65041E17A14DE58545541713D0A074AA65041A4703DAA58545541CDCCCC7C4CA65041AE47E18A58545541D7A3709D4EA6504185EB5148585455418FC2F5E853A6504166666676575455415C8FC2E556A650411F85EB0157545541713D0A4759A650417B14AEC756545541713D0A675DA65041713D0A87565455418FC2F5F861A6504166666636565455415C8FC2B56AA65041713D0AC7555455416666664671A6504148E17AC45554554148E17A4473A65041666666B65554554148E17A0475A6504166666696555455417B14AEE776A650415C8FC255555455410000009077A650410AD7A33055545541333333E378A6504148E17AD454545541C3F5289C79A650415C8FC285545455410AD7A3507AA65041000000205454554185EB51A87BA65041713D0A3753545541E17A14CE7CA65041D7A3705D52545541E17A14AE7EA65041B81E85AB5054554114AE478181A65041000000F04D545541CDCCCC4C84A65041F6285C3F4B545541A4703D7A87A6504185EB517848545541CDCCCC1C8BA6504148E17A44455455418FC2F5E88EA65041AE47E1CA41545541EC51B8DE91A65041F6285CFF3E54554148E17A3493A650410AD7A3E03D5455417B14AE3795A650411F85EB913C545541295C8FE296A650411F85EBA13B54554148E17A2499A6504185EB51B83A54554148E17A549EA65041CDCCCCFC3854554185EB51E89FA65041D7A3705D38545541CDCCCC7CA2A65041C3F528FC36545541295C8F72A5A650411F85EBB1355455411F85EBD1A7A65041333333833454554166666636ABA65041EC51B8AE325455413D0AD713ACA6504148E17A5432545541D7A3708DAFA65041EC51B81E31545541C3F528DCB0A650419A9999B9305455410AD7A3B0B2A65041CDCCCC4C30545541713D0AF7B4A650417B14AE07305455411F85EB31B8A65041000000C02F545541E17A140EBBA6504185EB51982F54554152B81ED5BCA65041666666862F545541A4703DBABFA65041B81E85DB2E5455413D0AD793C2A6504152B81E452E54554152B81EE5C3A650411F85EBE12D5455413D0AD7F3C4A650417B14AE872D545541CDCCCCCCC6A650415C8FC2C52C54554133333313C9A65041333333C32B545541C3F5284CCDA65041295C8FD2295455418FC2F538D2A650415C8FC28527545541666666E6D3A650415C8FC2D526545541B81E85BBD6A650417B14AEC725545541B81E854BD9A65041B81E855B25545541E17A14EEDBA650417B14AEF7245455415C8FC2B5DFA650413D0AD75324545541713D0AD7E2A65041B81E85AB2354554114AE4791E6A65041D7A3709D225455410AD7A310E8A65041333333332254554148E17A44EBA6504133333373215455415C8FC245EFA65041D7A370FD20545541D7A3704DF1A65041A4703D9A205455417B14AE37F4A65041AE47E10A20545541A4703D3AF6A65041333333A31F54554148E17A34F9A650415C8FC2E51E54554152B81ED5FCA650410AD7A3001E5455417B14AEB7FEA65041000000901D545541E17A14EE01A75041D7A3707D1D5455419A99997905A75041AE47E16A1D54554185EB51C806A75041D7A3707D1D54554185EB51080BA75041C3F528FC1D5455415C8FC2650EA7504148E17A641E545541333333C311A75041AE47E11A1F545541CDCCCCCC12A75041B81E854B1F545541000000A015A7504152B81EA51F545541EC51B89E18A75041713D0A3720545541AE47E16A1CA7504100000010215455415C8FC2D51EA750415C8FC295215455413333330322A750413333336322545541B81E857B23A75041B81E85BB22545541B81E854B25A75041295C8FE222545541AE47E16A28A750415C8FC235235455410AD7A3802BA75041AE47E17A23545541B81E853B2CA75041CDCCCC6C23545541E17A148E30A750419A9999E9225455417B14AE7732A750418FC2F5B822545541EC51B80E35A75041713D0AD722545541666666A639A7504133333343235455419A9999593EA75041E17A14DE23545541EC51B80E42A750416666664624545541B81E853B44A7504148E17A8424545541A4703D5A46A75041C3F528EC2454554185EB511849A750419A99997925545541E17A142E4CA750413D0AD713265455419A9999C94EA750415C8FC29526545541F6285CBF51A7504148E17A24275455410AD7A36053A7504152B81E85275455417B14AE8754A7504114AE4761275455419A9999F955A750418FC2F518275455415C8FC22557A750411F85EBC1265455411F85EBF159A75041E17A14CE255455413D0AD7E35CA75041333333D324545541AE47E16A61A750416666661623545541D7A3705D64A750410AD7A3D0215455411F85EB616BA75041CDCCCC2C1D545541F6285CDF6EA750415C8FC2251A545541295C8FC279A750410AD7A3700C545541F6285CCF7CA750417B14AE170A545541000000C07FA750413D0AD74309545541AE47E1DA82A75041C3F528DC08545541295C8FE27FA75041A4703D1A06545541CDCCCC1C7AA7504185EB51C8005455413D0AD79377A750419A9999F900545541295C8F726FA750417B14AEE703545541C3F5284C6FA75041A4703DEA0254554185EB51786CA7504148E17A34F05355410103000000010000001600000085EB51A802A65041666666266654554114AE47E106A65041E17A14DE645455417B14AE5708A65041B81E856B645455419A99992909A650410000004064545541F6285C0F0CA65041295C8FE2635455419A9999F90EA650413333338363545541A4703DFA12A65041C3F528CC62545541AE47E12A18A650410AD7A3D061545541E17A14DE1CA65041EC51B8CE60545541D7A370BD21A65041295C8FC25F545541D7A3701D27A650417B14AE975E545541CDCCCC8C23A6504152B81EF55D5455411F85EBC11FA650413D0AD7635D54554152B81E651BA6504114AE47B15C54554148E17AB418A65041666666665C545541AE47E10A15A65041713D0A075C545541295C8F0212A650418FC2F5C85B545541AE47E1CA09A6504114AE47615B545541295C8F9204A65041EC51B81E5B545541295C8FD2FFA55041AE47E1BA5A545541A4703D7AFBA55041F6285C4F5A54554185EB51A802A650416666662666545541010300000001000000AB000000A4703D2A8AA65041F6285C3F47545541D7A370FD8BA650411F85EBF146545541C3F528AC8DA65041A4703D9A465455415C8FC2C58FA65041EC51B80E46545541E17A143E92A650413D0AD763455455413333336394A6504152B81EC544545541EC51B8FE96A65041EC51B8FE435455413D0AD7A399A650410AD7A3304354554185EB51389CA65041295C8F624254554152B81EF59EA650418FC2F58841545541B81E857BA0A650419A9999194154554152B81E65A3A650415C8FC265405455411F85EB61A6A65041D7A370BD3F5455410AD7A390A7A65041B81E857B3F545541713D0AD7A9A65041EC51B8DE3E545541A4703D7AABA650411F85EB713E54554152B81EC5ADA65041D7A3706D3D545541D7A3706DAFA65041295C8FB23C545541F6285C3FB1A6504185EB51C83B54554185EB5188B3A65041B81E859B3A54554133333383B4A65041E17A141E3A54554133333393B5A650418FC2F5C839545541666666F6B6A65041CDCCCC6C395455419A999919B8A65041F6285C2F39545541713D0A17BAA65041D7A370FD385455417B14AEC7BCA650413D0AD7B338545541000000C0BEA65041CDCCCC6C385455418FC2F5C8BFA65041D7A3703D38545541A4703D7AC2A65041295C8F8237545541B81E85EBC3A65041F6285C1F3754554114AE4771C6A6504185EB51583654554185EB5108C9A650415C8FC28535545541B81E853BCBA65041EC51B8BE34545541EC51B86ECEA650410000009033545541713D0AB7D1A6504148E17A8432545541B81E85CBD5A6504148E17A743054554148E17A54D6A650419A99994930545541CDCCCC9CD9A65041666666662F5455413D0AD7E3DAA65041A4703D0A2F545541AE47E1FADBA65041EC51B8CE2E545541A4703DAADDA650415C8FC2852E545541713D0A67DFA65041713D0A272E545541B81E853BE1A650410AD7A3B02D545541A4703D5AE2A650418FC2F5582D54554185EB51B8E4A65041666666862C545541A4703D0AE8A65041D7A3708D2B545541295C8F12ECA6504152B81E552A5455419A999979EFA65041AE47E16A29545541AE47E12AF1A65041AE47E1EA28545541D7A3704DF4A65041A4703D9A28545541A4703DCAF6A650415C8FC25528545541295C8F82F8A650415C8FC2952854554152B81E65FAA65041E17A14FE28545541F6285C0FFCA65041EC51B85E29545541AE47E15AFDA65041B81E858B29545541A4703D9AFEA6504114AE47A129545541AE47E1CA01A750417B14AED72954554185EB511804A750413D0AD7F329545541CDCCCC9C06A7504152B81E152A545541333333E307A75041295C8F122A545541D7A3700D0AA750413D0AD7F329545541000000600BA750410AD7A3D029545541D7A3702D0DA7504152B81E9529545541713D0AD70FA7504185EB51282954554152B81EF512A75041F6285CAF2854554114AE47A115A750419A99994928545541CDCCCCBC18A7504152B81E052854554148E17AE419A75041D7A370ED27545541333333231DA75041000000F0275455411F85EB9120A750411F85EB21285455411F85EB7124A75041C3F5284C28545541666666C626A7504185EB516828545541666666E629A75041EC51B8CE28545541B81E850B2DA750415C8FC225295455413D0AD7532FA75041EC51B85E2954554185EB519830A750416666667629545541E17A144E32A750411F85EB31295455410000005034A75041AE47E1EA28545541A4703DBA35A75041F6285CAF285455419A9999B937A75041CDCCCC5C28545541AE47E1FA3AA75041295C8F4228545541000000D03BA750419A999949285455417B14AE473FA750417B14AE9728545541295C8F0241A75041AE47E1AA2854554185EB514844A75041EC51B8CE28545541C3F528FC45A75041D7A370ED285455415C8FC25547A750413D0AD7E328545541666666B648A75041333333D328545541295C8F524AA750411F85EBB128545541666666264DA750410AD7A3502854554148E17A4451A750419A9999C927545541295C8F224FA75041B81E855B275455418FC2F5884CA75041EC51B8DE26545541713D0A0749A75041EC51B82E265455411F85EBC145A7504185EB518825545541CDCCCC8C43A750419A99993925545541713D0A273FA750410AD7A3B0245455413D0AD7933BA750418FC2F53824545541A4703D2A38A750415C8FC2C523545541EC51B8DE35A7504152B81E95235455419A9999F932A750418FC2F56823545541295C8FD230A7504152B81E9523545541C3F528CC2EA750415C8FC2E5235455410AD7A3D02BA7504152B81E4524545541713D0A3727A750415C8FC2C52354554148E17AE424A7504166666686235455418FC2F5B822A750411F85EB4123545541F6285CEF20A7504114AE47D122545541713D0A871EA7504148E17A342254554185EB51D81AA75041713D0A87215455413333334317A75041295C8FE2205455415C8FC2E513A75041A4703D3A20545541A4703D8A10A750413D0AD7731F54554152B81E750EA75041CDCCCC0C1F5455415C8FC2550CA75041295C8FB21E54554148E17AF409A750410AD7A3701E5455415C8FC2C506A75041713D0A471E5455410AD7A38003A75041713D0A271E545541666666D601A7504185EB51381E545541C3F528BCFFA65041E17A144E1E5455413D0AD7D3FEA65041666666661E5455417B14AEB7FDA65041A4703D9A1E545541000000F0FAA65041B81E853B1F5455410AD7A380F9A65041D7A3709D1F5455417B14AE77F7A650417B14AE3720545541D7A370DDF6A650419A99995920545541713D0A87F5A65041C3F5289C205455419A999959F1A650411F85EB6121545541EC51B8AEEEA65041EC51B8DE21545541295C8F42EBA65041F6285C2F22545541D7A3706DEAA6504148E17A54225455411F85EB81E8A65041AE47E1FA22545541A4703D2AE6A6504114AE47A123545541AE47E16AE2A6504148E17AA4245455410AD7A320E1A650415C8FC2D524545541CDCCCCDCDCA65041CDCCCC8C25545541E17A148ED9A65041C3F5280C2654554152B81E85D7A650411F85EB6126545541295C8FD2D6A650410AD7A39026545541E17A142ED6A65041666666C626545541EC51B87ED3A650415C8FC2F52754554152B81E25CFA650418FC2F5E829545541F6285CCFCBA650417B14AE772B545541713D0A07C9A6504185EB51B82C5455411F85EBA1C7A650413D0AD7432D545541E17A14FEC4A65041666666362E5455418FC2F518C2A65041C3F5281C2F545541CDCCCCACBEA65041D7A370FD2F545541713D0AB7BCA6504148E17A6430545541295C8FE2B9A65041F6285C7F30545541E17A143EB6A6504152B81EB530545541000000A0B3A65041C3F528FC305455417B14AEC7B1A65041F6285C4F3154554185EB5178B0A65041713D0AA731545541CDCCCC4CAEA65041AE47E14A3254554114AE4781ADA650410AD7A3A032545541A4703D6AA9A65041000000C034545541CDCCCCDCA6A65041333333033654554133333333A3A65041333333C3375455418FC2F528A0A650411F85EB3139545541713D0A179FA65041000000A0395455419A9999599DA65041B81E852B3A545541A4703D7A9BA65041EC51B8BE3A54554114AE476198A650418FC2F5E83B545541EC51B8DE96A650417B14AEA73C5455418FC2F5B895A65041AE47E15A3D5455411F85EBD193A6504185EB51B83E545541713D0AF791A65041000000404054554152B81EF58FA650410000000042545541EC51B81E8DA650410AD7A3C044545541A4703D2A8AA65041F6285C3F47545541
+</a>
+
+<b>
+01060000000100000001030000000100000037000000E651BDF08CA65041C37776E744545541AC4B376A8AA650417DD157094754554110F34B688AA65041966F50344754554109D650638BA65041C7D0CA0A47545541DD6E18228FA65041F941727E455455411FF49DFA91A650414E99B14C445455416389507093A65041F844D1B3435455417D5ECCF2A4A650412FE95E343C545541143B9199A6A65041EF1C2F7F3B5455418865DCEFA8A650411720C2DE3A545541938A1FEFB2A6504141BB182A385455413C65D7F2BDA65041B33F9A2F35545541DA7CCAA0C4A6504171EE32613354554107BCC304D0A650411925484C30545541DA548BC3D3A650419D99B6492F54554178C355EBD6A65041CE82C76E2E5455417D146FFAD6A65041166CF2282E545541120BDFBFD7A6504135983F582654554152B81E85D7A650411F85EB6126545541295C8FD2D6A650410AD7A39026545541E17A142ED6A65041666666C626545541EC51B87ED3A650415C8FC2F52754554176054629D3A65041B447101C2854554152B81E25CFA650418FC2F5E829545541F6285CCFCBA650417B14AE772B545541713D0A07C9A6504185EB51B82C5455411F85EBA1C7A650413D0AD7432D545541E17A14FEC4A65041666666362E5455418FC2F518C2A65041C3F5281C2F545541CDCCCCACBEA65041D7A370FD2F545541713D0AB7BCA6504148E17A6430545541295C8FE2B9A65041F6285C7F30545541E17A143EB6A6504152B81EB530545541000000A0B3A65041C3F528FC3054554169FC6FECB2A65041814ECA1B315455417B14AEC7B1A65041F6285C4F31545541B39DE2BAB0A650418BF1A2953154554185EB5178B0A65041713D0AA731545541CDCCCC4CAEA65041AE47E14A3254554114AE4781ADA650410AD7A3A032545541A4703D6AA9A65041000000C034545541CDCCCCDCA6A65041333333033654554133333333A3A65041333333C3375455418FC2F528A0A650411F85EB3139545541713D0A179FA65041000000A0395455419A9999599DA65041B81E852B3A545541A4703D7A9BA65041EC51B8BE3A54554114AE476198A650418FC2F5E83B545541EC51B8DE96A650417B14AEA73C5455418FC2F5B895A65041AE47E15A3D5455411F85EBD193A6504185EB51B83E545541713D0AF791A65041000000404054554152B81EF58FA650410000000042545541EC51B81E8DA650410AD7A3C044545541E651BDF08CA65041C37776E744545541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>607988 - 2916194
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000010000009C0000007B14AE074CAE50419A999979954F554148E17A3450AE5041713D0A07934F5541000000C053AE50411F85EBF1904F55410000003055AE5041B81E851B904F5541CDCCCC5C5BAE5041CDCCCC7C8C4F55410AD7A3905DAE50411F85EB318B4F55411F85EB3160AE504152B81EA5894F55411F85EBA166AE50417B14AED7854F554148E17AC46CAE5041000000508F4F554114AE47B16FAE504185EB51C8934F55413333336372AE5041C3F528BC974F554148E17A748AAE5041EC51B8AEAB4F55410000002096AE504166666616B94F5541EC51B88E97AE5041295C8F52B64F5541D7A370CD98AE5041D7A3703DB44F554114AE47119BAE50418FC2F528B04F5541E17A142E9CAE5041EC51B84EAE4F55413D0AD7139EAE504148E17AC4AA4F5541713D0AE7A7AE5041B81E851BB04F55410AD7A3F0B4AE50419A9999D9B74F5541AE47E12AB4AE50411F85EBD1B84F5541C3F528ACB2AE50419A999959BA4F5541713D0A57AAAE5041B81E85FBC24F5541A4703D2AAEAE504152B81EE5C34F554100000020B9AE5041D7A3705DB94F5541A4703DBABEAE504152B81EA5B24F5541CDCCCC1CC2AE5041EC51B81EAD4F5541EC51B8BEC3AE504148E17A74AB4F5541CDCCCC7CCAAE504148E17AD4A24F554152B81E95D1AE5041B81E858BA44F5541E17A143ED4AE5041AE47E1CAA24F554100000040DCAE504114AE47D1A44F554166666636E2AE5041713D0A57A64F5541295C8F02E4AE50419A9999B9A64F5541B81E85CBE2AE5041B81E855B9F4F5541F6285C0FE1AE504114AE47A1934F554148E17A24E3AE504114AE4781924F55418FC2F558E5AE50411F85EB51914F554185EB5128EBAE5041666666868F4F554152B81E05F1AE5041B81E85CB8F4F5541666666D6F7AE5041AE47E12A8F4F5541295C8FD2F6AE5041C3F5282C874F554185EB5178EFAE5041333333F3824F5541295C8F22F3AE50415C8FC205794F554148E17A44F9AE5041AE47E1FA794F554133333323FAAE5041E17A143E7A4F55413D0AD7D3FBAE50410AD7A3C07A4F5541713D0A77FFAE50419A9999D97B4F554152B81E2501AF5041A4703D5A7C4F55418FC2F5A803AF5041CDCCCC1C7D4F5541F6285C8F06AF5041C3F528FC7D4F5541000000C006AF5041000000807A4F5541000000B006AF5041B81E852B7A4F55413333333306AF5041CDCCCC1C794F55418FC2F5C805AF50417B14AE37784F55411F85EB5105AF50410AD7A310774F55415C8FC26504AF5041C3F528AC744F5541C3F528AC03AF50419A9999E9724F5541000000000BAF5041A4703DAA6E4F5541EC51B8CE08AF50413D0AD7536B4F55419A99996901AF5041D7A370FD6C4F554166666666FCAE5041666666066F4F5541333333E3F7AE5041F6285C5F714F554166666686F5AE5041666666F6734F5541333333C3F1AE50415C8FC2B5744F5541C3F528BCEDAE5041E17A148E734F5541AE47E1DAE6AE504185EB5118714F55415C8FC275E6AE5041CDCCCC5C6E4F554152B81E05E6AE5041C3F5285C6B4F55415C8FC265E5AE50411F85EB01674F5541CDCCCCCCECAE50410AD7A390664F5541F6285CFFFAAE5041A4703DCA634F554152B81E0505AF5041EC51B8BE604F5541000000D006AF504152B81E75604F5541F6285C7F02AF5041AE47E11A554F5541B81E857BF2AE5041A4703D6A5B4F5541295C8F12DCAE50415C8FC295644F5541EC51B84EDBAE5041D7A3704D634F5541295C8FA2D7AE50419A9999D95C4F5541AE47E1EAD4AE5041EC51B82E584F5541E17A140ED2AE504152B81E05534F5541B81E85BBD1AE5041000000E0524F55410AD7A3C0CDAE504148E17A94554F5541EC51B8CEC4AE504148E17A24514F5541295C8F82BDAE50410AD7A3204C4F554148E17A94BEAE5041F6285CBF4A4F55419A9999A9BDAE50413D0AD7434A4F554185EB5148AEAE5041D7A3702D424F554114AE47D1A8AE50417B14AE273F4F5541AE47E15A9CAE504148E17A34384F5541E17A140E9AAE5041333333E3274F55418FC2F5C892AE5041B81E85AB1E4F5541AE47E1BA96AE504114AE47511B4F5541AE47E1FA9DAE50417B14AE27154F554148E17A6496AE50415C8FC2650C4F554114AE479190AE5041C3F528AC054F554152B81ED58BAE5041A4703DCA124F5541F6285C7F83AE5041D7A3701D1E4F55411F85EB517DAE5041295C8FA2274F5541EC51B81E7FAE5041295C8FB2284F5541B81E853B89AE50415C8FC235304F554114AE476188AE50410AD7A340324F5541713D0AB787AE5041713D0AD7334F554114AE47E184AE50411F85EB013B4F55415C8FC27584AE50417B14AE473C4F5541CDCCCCFC83AE5041EC51B86E3D4F55410000004083AE5041333333433F4F554185EB517882AE50415C8FC255414F554148E17A647FAE504133333383494F5541EC51B81E7FAE5041C3F5283C4A4F5541F6285C5F7EAE50417B14AE374C4F5541333333137EAE5041EC51B8EE4C4F55410AD7A3F07DAE5041A4703D2A4D4F5541A4703D4A7DAE5041B81E854B4E4F5541C3F5286C7CAE5041D7A370CD4F4F5541AE47E1AA7AAE50419A9999D9524F5541B81E85FB79AE5041AE47E10A544F55413333339377AE5041A4703D3A584F5541EC51B80E77AE50410AD7A320594F5541E17A145E76AE50413D0AD7535A4F55413333339375AE50413D0AD7B35B4F55410000006074AE5041AE47E1CA5D4F5541713D0AB773AE5041000000F05E4F55413333334372AE504166666676614F5541CDCCCC5C71AE50419A999909634F55419A9999E970AE5041F6285CCF634F554114AE47D16EAE50413D0AD773674F55411F85EB616DAE5041295C8FF2694F5541A4703D1A6DAE5041C3F5281C6B4F554148E17A646CAE50418FC2F5086E4F5541A4703D6A6AAE50411F85EB31764F554148E17A2464AE504148E17A84754F554152B81E3563AE5041713D0A87794F55418FC2F59862AE5041000000A07B4F5541D7A3704D62AE50417B14AEF77C4F5541666666A661AE504185EB51587F4F5541EC51B83E61AE50415C8FC265814F554148E17A0461AE5041A4703DAA824F55417B14AE175FAE504166666646824F55415C8FC20557AE5041333333C3804F5541E17A140E50AE5041B81E859B7E4F554185EB51F847AE50418FC2F5C8794F55418FC2F52847AE504148E17A047B4F55410000005045AE50411F85EB417E4F5541D7A3706D44AE5041666666E6804F55413333334344AE5041B81E85AB834F5541D7A3706D45AE5041000000C0884F5541AE47E1DA45AE5041A4703D3A8C4F5541AE47E16A46AE5041CDCCCCDC8F4F5541000000D045AE5041A4703D5A924F55413333331344AE5041E17A145E944F55417B14AE0742AE5041295C8FA2954F55413333330341AE5041C3F528FC954F55419A99998947AE5041F6285C6F984F55418FC2F5584AAE50415C8FC275964F55417B14AE074CAE50419A999979954F5541
+</a>
+
+<b>
+0106000000010000000103000000010000000F0000007FABC6D792AE50411FDEED9E1E4F554170BB00C69DAE50414925A054154F554142A49CD997AE504127DF6D140E4F5541A5BD989690AE5041899C6E9D054F554152B81ED58BAE5041A4703DCA124F5541E34BD4B78AAE5041F65FDF4D144F5541D42CC19A86AE50417B03B7E4194F554107E0DBDF82AE50416D503E131F4F554150E3EA887EAE50410BFD49C3254F554157AEDA5F8FAE5041E9B75DBD1F4F55411792B3D190AE5041CCBAF2F8214F554140D3C0A094AE5041F068128A284F5541EBBB6B5699AE5041298757FA264F554198A116DC92AE504100C6C5C31E4F55417FABC6D792AE50411FDEED9E1E4F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>607988 - 5286268
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000010000009C0000007B14AE074CAE50419A999979954F554148E17A3450AE5041713D0A07934F5541000000C053AE50411F85EBF1904F55410000003055AE5041B81E851B904F5541CDCCCC5C5BAE5041CDCCCC7C8C4F55410AD7A3905DAE50411F85EB318B4F55411F85EB3160AE504152B81EA5894F55411F85EBA166AE50417B14AED7854F554148E17AC46CAE5041000000508F4F554114AE47B16FAE504185EB51C8934F55413333336372AE5041C3F528BC974F554148E17A748AAE5041EC51B8AEAB4F55410000002096AE504166666616B94F5541EC51B88E97AE5041295C8F52B64F5541D7A370CD98AE5041D7A3703DB44F554114AE47119BAE50418FC2F528B04F5541E17A142E9CAE5041EC51B84EAE4F55413D0AD7139EAE504148E17AC4AA4F5541713D0AE7A7AE5041B81E851BB04F55410AD7A3F0B4AE50419A9999D9B74F5541AE47E12AB4AE50411F85EBD1B84F5541C3F528ACB2AE50419A999959BA4F5541713D0A57AAAE5041B81E85FBC24F5541A4703D2AAEAE504152B81EE5C34F554100000020B9AE5041D7A3705DB94F5541A4703DBABEAE504152B81EA5B24F5541CDCCCC1CC2AE5041EC51B81EAD4F5541EC51B8BEC3AE504148E17A74AB4F5541CDCCCC7CCAAE504148E17AD4A24F554152B81E95D1AE5041B81E858BA44F5541E17A143ED4AE5041AE47E1CAA24F554100000040DCAE504114AE47D1A44F554166666636E2AE5041713D0A57A64F5541295C8F02E4AE50419A9999B9A64F5541B81E85CBE2AE5041B81E855B9F4F5541F6285C0FE1AE504114AE47A1934F554148E17A24E3AE504114AE4781924F55418FC2F558E5AE50411F85EB51914F554185EB5128EBAE5041666666868F4F554152B81E05F1AE5041B81E85CB8F4F5541666666D6F7AE5041AE47E12A8F4F5541295C8FD2F6AE5041C3F5282C874F554185EB5178EFAE5041333333F3824F5541295C8F22F3AE50415C8FC205794F554148E17A44F9AE5041AE47E1FA794F554133333323FAAE5041E17A143E7A4F55413D0AD7D3FBAE50410AD7A3C07A4F5541713D0A77FFAE50419A9999D97B4F554152B81E2501AF5041A4703D5A7C4F55418FC2F5A803AF5041CDCCCC1C7D4F5541F6285C8F06AF5041C3F528FC7D4F5541000000C006AF5041000000807A4F5541000000B006AF5041B81E852B7A4F55413333333306AF5041CDCCCC1C794F55418FC2F5C805AF50417B14AE37784F55411F85EB5105AF50410AD7A310774F55415C8FC26504AF5041C3F528AC744F5541C3F528AC03AF50419A9999E9724F5541000000000BAF5041A4703DAA6E4F5541EC51B8CE08AF50413D0AD7536B4F55419A99996901AF5041D7A370FD6C4F554166666666FCAE5041666666066F4F5541333333E3F7AE5041F6285C5F714F554166666686F5AE5041666666F6734F5541333333C3F1AE50415C8FC2B5744F5541C3F528BCEDAE5041E17A148E734F5541AE47E1DAE6AE504185EB5118714F55415C8FC275E6AE5041CDCCCC5C6E4F554152B81E05E6AE5041C3F5285C6B4F55415C8FC265E5AE50411F85EB01674F5541CDCCCCCCECAE50410AD7A390664F5541F6285CFFFAAE5041A4703DCA634F554152B81E0505AF5041EC51B8BE604F5541000000D006AF504152B81E75604F5541F6285C7F02AF5041AE47E11A554F5541B81E857BF2AE5041A4703D6A5B4F5541295C8F12DCAE50415C8FC295644F5541EC51B84EDBAE5041D7A3704D634F5541295C8FA2D7AE50419A9999D95C4F5541AE47E1EAD4AE5041EC51B82E584F5541E17A140ED2AE504152B81E05534F5541B81E85BBD1AE5041000000E0524F55410AD7A3C0CDAE504148E17A94554F5541EC51B8CEC4AE504148E17A24514F5541295C8F82BDAE50410AD7A3204C4F554148E17A94BEAE5041F6285CBF4A4F55419A9999A9BDAE50413D0AD7434A4F554185EB5148AEAE5041D7A3702D424F554114AE47D1A8AE50417B14AE273F4F5541AE47E15A9CAE504148E17A34384F5541E17A140E9AAE5041333333E3274F55418FC2F5C892AE5041B81E85AB1E4F5541AE47E1BA96AE504114AE47511B4F5541AE47E1FA9DAE50417B14AE27154F554148E17A6496AE50415C8FC2650C4F554114AE479190AE5041C3F528AC054F554152B81ED58BAE5041A4703DCA124F5541F6285C7F83AE5041D7A3701D1E4F55411F85EB517DAE5041295C8FA2274F5541EC51B81E7FAE5041295C8FB2284F5541B81E853B89AE50415C8FC235304F554114AE476188AE50410AD7A340324F5541713D0AB787AE5041713D0AD7334F554114AE47E184AE50411F85EB013B4F55415C8FC27584AE50417B14AE473C4F5541CDCCCCFC83AE5041EC51B86E3D4F55410000004083AE5041333333433F4F554185EB517882AE50415C8FC255414F554148E17A647FAE504133333383494F5541EC51B81E7FAE5041C3F5283C4A4F5541F6285C5F7EAE50417B14AE374C4F5541333333137EAE5041EC51B8EE4C4F55410AD7A3F07DAE5041A4703D2A4D4F5541A4703D4A7DAE5041B81E854B4E4F5541C3F5286C7CAE5041D7A370CD4F4F5541AE47E1AA7AAE50419A9999D9524F5541B81E85FB79AE5041AE47E10A544F55413333339377AE5041A4703D3A584F5541EC51B80E77AE50410AD7A320594F5541E17A145E76AE50413D0AD7535A4F55413333339375AE50413D0AD7B35B4F55410000006074AE5041AE47E1CA5D4F5541713D0AB773AE5041000000F05E4F55413333334372AE504166666676614F5541CDCCCC5C71AE50419A999909634F55419A9999E970AE5041F6285CCF634F554114AE47D16EAE50413D0AD773674F55411F85EB616DAE5041295C8FF2694F5541A4703D1A6DAE5041C3F5281C6B4F554148E17A646CAE50418FC2F5086E4F5541A4703D6A6AAE50411F85EB31764F554148E17A2464AE504148E17A84754F554152B81E3563AE5041713D0A87794F55418FC2F59862AE5041000000A07B4F5541D7A3704D62AE50417B14AEF77C4F5541666666A661AE504185EB51587F4F5541EC51B83E61AE50415C8FC265814F554148E17A0461AE5041A4703DAA824F55417B14AE175FAE504166666646824F55415C8FC20557AE5041333333C3804F5541E17A140E50AE5041B81E859B7E4F554185EB51F847AE50418FC2F5C8794F55418FC2F52847AE504148E17A047B4F55410000005045AE50411F85EB417E4F5541D7A3706D44AE5041666666E6804F55413333334344AE5041B81E85AB834F5541D7A3706D45AE5041000000C0884F5541AE47E1DA45AE5041A4703D3A8C4F5541AE47E16A46AE5041CDCCCCDC8F4F5541000000D045AE5041A4703D5A924F55413333331344AE5041E17A145E944F55417B14AE0742AE5041295C8FA2954F55413333330341AE5041C3F528FC954F55419A99998947AE5041F6285C6F984F55418FC2F5584AAE50415C8FC275964F55417B14AE074CAE50419A999979954F5541
+</a>
+
+<b>
+0106000000010000000103000000010000000F0000007FABC6D792AE50411FDEED9E1E4F554170BB00C69DAE50414925A054154F554142A49CD997AE504127DF6D140E4F5541A5BD989690AE5041899C6E9D054F554152B81ED58BAE5041A4703DCA124F5541E34BD4B78AAE5041F65FDF4D144F5541D42CC19A86AE50417B03B7E4194F554107E0DBDF82AE50416D503E131F4F554150E3EA887EAE50410BFD49C3254F554157AEDA5F8FAE5041E9B75DBD1F4F55411792B3D190AE5041CCBAF2F8214F554140D3C0A094AE5041F068128A284F5541EBBB6B5699AE5041298757FA264F554198A116DC92AE504100C6C5C31E4F55417FABC6D792AE50411FDEED9E1E4F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608044 - 1637677
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000200000014000000F6285C1FA3A35041A4703D2A9D5755417B14AEB7A0A35041B81E854B9D575541AE47E16A9EA350410AD7A3809D57554185EB51F89CA35041666666D69D575541AE47E16A9BA35041000000909E575541F6285C7F95A35041C3F5284C975755419A99992992A3504114AE47B1985755417B14AEE78EA3504114AE47B19B575541AE47E15A8FA3504114AE47819C5755419A99998991A3504152B81E559B575541295C8F8298A3504185EB5178A55755411F85EB61A5A350410AD7A3E0BD575541333333A3B3A35041713D0A37D657554148E17A04B7A350419A9999E9D3575541E17A148EBDA350415C8FC275CE5755410AD7A310BEA350415C8FC215CE575541713D0AC7B3A35041C3F528DCBA5755413D0AD763AAA3504166666616A85755419A9999B9A4A350411F85EB219C575541F6285C1FA3A35041A4703D2A9D5755410700000066666606AFA350411F85EB41BD5755417B14AEE7B1A3504166666626BD575541295C8F92B4A3504114AE4731C45755418FC2F5F8B2A3504133333383C45755413D0AD743B1A350411F85EBA1C1575541E17A14EEABA350411F85EB71C357554166666606AFA350411F85EB41BD575541
+</a>
+
+<b>
+01060000000100000001030000000100000018000000DC6C7484C4A3504199680F0BC95755410F439B98C2A3504161FFF824C557554123D585CEC2A35041E7F11C96C45755418A731183BFA3504126155F27BE57554137CE7726BCA3504165C0C109B85755415CADE090B9A35041E09F91D2B35755419A999929B9A35041E17A14DEB3575541C96BA190B7A350419440B907B1575541AA93F929B3A35041CFBBB536A9575541A70D9ED7B0A350410E9F1717A5575541B179EADEAFA35041E8DB615DA35755410B40259FADA350414BCBC65E9F5755417F4465BAA7A35041513D19AA98575541377217BAA4A3504115B7DDF99B5755416707C3A5A8A35041630EFE14A45755419FBEA7B3ACA350419BF960F8AC575541182D3640AEA35041104AE1CEAF57554127BEDE80AFA35041BA8F1C50B2575541DF853190B0A35041C39FAF6EB4575541F15B115BB4A35041C653CAF0BB5755411F58E929B8A350418412B463C35755413435506ABBA35041F130A970C9575541DF5FA8F9BDA35041C78F25D7CD575541DC6C7484C4A3504199680F0BC9575541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608044 - 5286050
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000200000014000000F6285C1FA3A35041A4703D2A9D5755417B14AEB7A0A35041B81E854B9D575541AE47E16A9EA350410AD7A3809D57554185EB51F89CA35041666666D69D575541AE47E16A9BA35041000000909E575541F6285C7F95A35041C3F5284C975755419A99992992A3504114AE47B1985755417B14AEE78EA3504114AE47B19B575541AE47E15A8FA3504114AE47819C5755419A99998991A3504152B81E559B575541295C8F8298A3504185EB5178A55755411F85EB61A5A350410AD7A3E0BD575541333333A3B3A35041713D0A37D657554148E17A04B7A350419A9999E9D3575541E17A148EBDA350415C8FC275CE5755410AD7A310BEA350415C8FC215CE575541713D0AC7B3A35041C3F528DCBA5755413D0AD763AAA3504166666616A85755419A9999B9A4A350411F85EB219C575541F6285C1FA3A35041A4703D2A9D5755410700000066666606AFA350411F85EB41BD5755417B14AEE7B1A3504166666626BD575541295C8F92B4A3504114AE4731C45755418FC2F5F8B2A3504133333383C45755413D0AD743B1A350411F85EBA1C1575541E17A14EEABA350411F85EB71C357554166666606AFA350411F85EB41BD575541
+</a>
+
+<b>
+01060000000100000001030000000100000018000000DC6C7484C4A3504199680F0BC95755410F439B98C2A3504161FFF824C557554123D585CEC2A35041E7F11C96C45755418A731183BFA3504126155F27BE57554137CE7726BCA3504165C0C109B85755415CADE090B9A35041E09F91D2B35755419A999929B9A35041E17A14DEB3575541C96BA190B7A350419440B907B1575541AA93F929B3A35041CFBBB536A9575541A70D9ED7B0A350410E9F1717A5575541B179EADEAFA35041E8DB615DA35755410B40259FADA350414BCBC65E9F5755417F4465BAA7A35041513D19AA98575541377217BAA4A3504115B7DDF99B5755416707C3A5A8A35041630EFE14A45755419FBEA7B3ACA350419BF960F8AC575541182D3640AEA35041104AE1CEAF57554127BEDE80AFA35041BA8F1C50B2575541DF853190B0A35041C39FAF6EB4575541F15B115BB4A35041C653CAF0BB5755411F58E929B8A350418412B463C35755413435506ABBA35041F130A970C9575541DF5FA8F9BDA35041C78F25D7CD575541DC6C7484C4A3504199680F0BC9575541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608091 - 201118
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000150000000103000000010000000F0000005C8FC275B7A250418FC2F5587F57554100000010ACA250417B14AEE7885755415C8FC225A2A25041C3F5282C91575541C3F528BC98A250417B14AE2799575541D7A3707D99A25041D7A3705D9A575541000000809AA25041AE47E1FA9B57554114AE4721A5A250416666666693575541C3F5285CB3A25041333333038857554166666686D3A250415C8FC2D56E575541C3F528FCD1A25041E17A146E6F5755419A9999E9CDA25041AE47E15A6F575541666666D6CDA250413D0AD7A36C5755415C8FC235C1A250419A99992977575541C3F5283CBAA25041A4703D0A7D5755415C8FC275B7A250418FC2F5587F5755410103000000010000002F0000005C8FC275B3A35041B81E850B7C575541F6285C3FB1A350418FC2F5587D575541E17A148EB5A35041A4703DAA855755418FC2F5D8B9A35041295C8F728D575541B81E854BBEA3504185EB5178965755410AD7A320C3A35041EC51B87E9F575541A4703D0AC8A350411F85EB01A95755413D0AD753CCA350415C8FC235B0575541E17A145ED0A35041666666C6AF575541E17A14AED1A3504166666686B05755415C8FC2C5D1A3504166666636B25755415C8FC285CFA35041666666F6B2575541CDCCCCACD0A35041B81E851BB5575541E17A142ED3A35041E17A14DEB55755411F85EB11D6A350410AD7A370BC5755417B14AE87D7A35041D7A3705DBB575541D7A3708DD8A35041CDCCCC9CBA575541CDCCCC5CD3A350411F85EB41AE57554152B81E45D1A3504185EB5178AB57554166666696CDA3504114AE4781A35755418FC2F548CEA35041F6285CCFA25755415C8FC245CDA35041E17A14FE9E575541E17A14AECEA35041666666469F5755415C8FC2B5CFA3504166666626A1575541E17A14AED7A3504166666636A3575541CDCCCCECDAA3504148E17A64A557554114AE47E1D6A35041295C8F929C5755419A999949D3A35041B81E852B94575541713D0A87D1A35041B81E85EB945755413D0AD733CFA35041EC51B8DE8E5755418FC2F5E8CAA35041CDCCCCFC83575541B81E854BC6A350419A9999B97F575541000000B0C4A35041D7A3703D7E5755415C8FC2B5C3A35041666666567D575541E17A14BEC1A35041E17A144E7F575541E17A143EC0A350416666665680575541E17A149EBDA35041E17A14DE7F575541E17A143EBDA35041E17A144E7F5755415C8FC2E5BDA35041666666167E5755415C8FC235BFA35041E17A14CE7D575541E17A141EBFA35041E17A144E7C575541E17A146EBDA35041666666D67B575541E17A147EBCA35041666666667C575541C3F5283CBAA3504114AE478181575541B81E856BB6A35041E17A145E7A5755419A999909B5A35041E17A141E7B5755415C8FC275B3A35041B81E850B7C5755410103000000010000002B000000EC51B8DEC2A25041B81E856B0D5755415C8FC265C4A250417B14AEB70E5755417B14AED7CAA250418FC2F5380E5755410AD7A380CEA25041CDCCCCDC0F575541E17A149ECEA2504148E17AE41057554100000000CFA2504185EB51D811575541D7A370FDCFA250413D0AD7431257554185EB51E8D0A2504148E17A74125755415C8FC285D5A2504148E17AE410575541295C8FE2D7A250417B14AE670F5755418FC2F5C8DAA25041A4703D4A0F5755418FC2F5E8DBA25041E17A14BE0F575541EC51B80EDDA25041A4703D3A0B575541E17A14FEDEA25041D7A3705D03575541713D0A27E0A250410AD7A3A0FE565541EC51B82EE1A2504185EB5178FA565541295C8F22E2A2504166666696F6565541CDCCCC1CE1A25041AE47E1DAF6565541333333B3DDA2504148E17AE4F45655415C8FC295D9A2504100000050F5565541EC51B89ED7A2504152B81EC5F3565541D7A370EDD3A2504166666686F1565541AE47E18AD1A25041295C8F62F15655417B14AE47D0A25041EC51B80EF156554185EB5188CFA25041C3F5283CEF5655419A999939D1A250418FC2F528EE5655418FC2F558CFA2504114AE4731ED5655417B14AE67CEA25041CDCCCC5CEB565541000000A0CCA25041000000A0EB56554166666656CCA2504166666626E95655411F85EB81CBA2504100000030E85655415C8FC225CBA25041713D0AC7E6565541B81E851BCAA250419A9999B9E65655419A999919C9A25041295C8F22E756554100000080C8A25041295C8F72EB565541AE47E19AC7A25041F6285C1FF4565541333333E3C6A2504133333303FA565541CDCCCC1CC6A2504166666626FE565541EC51B87EC5A250419A9999F900575541AE47E1BAC2A250419A999959095755417B14AE27C2A2504185EB51A80B575541B81E85CBC2A250418FC2F5F80B575541EC51B8DEC2A25041B81E856B0D57554101030000000100000014000000AE47E14AF6A2504133333353125755411F85EB41F7A2504114AE4711125755418FC2F548F8A250410AD7A30012575541CDCCCCDCF8A25041333333531257554114AE4781F9A250410AD7A3F011575541295C8FB2F9A250413333331310575541E17A14FEF8A25041D7A3703D0F575541E17A140EF9A2504148E17AE40D575541F6285C2FF9A25041AE47E12A0A57554185EB5128F8A25041E17A14BE035755418FC2F548F8A25041EC51B88E0157554148E17AA4F7A250418FC2F558FE565541666666A6F5A25041A4703D3AFC5655413D0AD7B3F3A25041EC51B8CEFA565541E17A14EEF3A250410AD7A360FC5655410AD7A3C0F4A25041EC51B84E03575541EC51B82EF5A250418FC2F5C8085755413D0AD773F5A2504114AE47F10D575541666666A6F5A250413333332312575541AE47E14AF6A2504133333353125755410103000000010000000E0000000AD7A38074A35041EC51B8EE345755410000000074A350413D0AD70335575541000000B073A35041CDCCCC8C35575541E17A146E73A35041B81E856B3657554148E17A4473A350413D0AD7D3375755419A99992973A35041AE47E1BA38575541295C8F0273A3504148E17AF438575541E17A146E72A35041E17A142E39575541295C8F9270A350411F85EBA1395755415C8FC2656FA3504185EB51D83957554152B81E3572A350417B14AEA743575541CDCCCCFC72A350413D0AD7F345575541713D0AC775A35041A4703D8A395755410AD7A38074A35041EC51B8EE3457554101030000000100000009000000C3F528DCE4A25041F6285C8F3F575541A4703D6AEBA25041713D0A574557554152B81EF5F2A2504148E17AA44A5755413D0AD713F8A25041A4703D7A3E57554148E17AF4F2A25041E17A14CE3D575541F6285CFFF1A250417B14AEC73D5755419A9999E9EEA25041295C8FB23D575541D7A3705DE2A2504148E17AA43C575541C3F528DCE4A25041F6285C8F3F5755410103000000010000001C0000009A9999C9C1A250417B14AEE7E0565541C3F528FCC1A250417B14AE67E05655415C8FC245C2A2504100000010E05655417B14AE37C2A25041295C8FA2DF565541EC51B80EC2A2504166666646DF5655417B14AE17C2A25041AE47E1AADE5655410AD7A340C2A25041CDCCCCFCDD5655417B14AE77C2A25041C3F528FCDC565541F6285CAFC2A25041C3F528BCDB565541B81E85DBBEA25041F6285C3FDB565541AE47E1AABDA2504185EB5118DB565541D7A3709DBDA25041AE47E1EADD5655413D0AD733BCA250415C8FC295EE56554114AE47E1BBA25041A4703DEAF15655419A999949BBA2504185EB5108FD565541295C8FD2BAA250419A999959025755418FC2F5C8BAA250410AD7A32005575541B81E85BBBAA25041713D0AE708575541713D0A57BAA25041295C8FC20F575541F6285C4FBCA250418FC2F5180F575541B81E850BBDA25041666666760A5755419A9999F9BDA25041666666960457554185EB51C8BFA2504148E17AE4F6565541295C8FF2C0A2504185EB5178EC565541333333F3C1A250418FC2F5C8E2565541EC51B8EEC1A25041F6285CBFE15655410AD7A3E0C1A250417B14AE47E15655419A9999C9C1A250417B14AEE7E056554101030000000100000018000000713D0A67A3A35041C3F528FC56575541000000709EA35041EC51B8DE5257554148E17AE49CA3504114AE47B1535755418FC2F5D897A35041E17A144E56575541F6285CEF97A35041E17A148E565755419A9999199CA350415C8FC2055E575541F6285C7F9EA35041B81E856B62575541F6285CAFA1A35041AE47E12A68575541C3F5285CA4A350415C8FC2F56C575541F6285C0FA8A350415C8FC28573575541000000E0ABA350416666662672575541EC51B8CEAFA35041E17A140E70575541AE47E1AAADA35041333333436C575541000000E0A9A3504148E17A54665755413D0AD7D3A6A35041CDCCCCAC6157554152B81E75A4A3504152B81EC55D57554148E17A24A6A35041000000405E575541D7A370CDACA350413333333368575541713D0A37B1A350418FC2F578655755415C8FC2B5A8A350415C8FC2855B575541713D0AE7A5A3504185EB51485B575541295C8FB2A4A35041D7A3701D595755410AD7A3B0A6A350410AD7A3C059575541713D0A67A3A35041C3F528FC565755410103000000010000000A000000AE47E16A73A35041713D0A37475755410000005076A35041CDCCCCBC4F57554185EB518878A350415C8FC2B5565755413D0AD79379A35041713D0A175A5755419A9999697DA35041713D0A375A575541C3F5283C7FA3504152B81E155A5755411F85EBF17BA35041713D0A574F575541A4703D0A7AA35041EC51B8EE485755418FC2F51876A35041295C8FB23A575541AE47E16A73A35041713D0A3747575541010300000001000000370000009A9999D9CFA3504166666676235755410AD7A380D2A3504148E17AF423575541EC51B8DED2A35041EC51B8CE2657554185EB5148D1A3504114AE47D127575541295C8FF2D2A350417B14AEB72C575541B81E852BD5A35041AE47E16A2C575541F6285C4FD9A350413D0AD7932A575541AE47E1BADAA35041666666662A575541C3F5287CDBA35041AE47E11A2A57554152B81EC5DDA35041AE47E11A2A575541AE47E1EADFA350419A9999092A575541E17A149EE2A35041C3F528DC285755413D0AD733E2A350419A999979275755419A9999B9E3A3504148E17AA42657554185EB5198E5A35041CDCCCCAC2557554114AE4771EAA35041C3F528BC23575541713D0A97ECA350411F85EB51235755419A999959EDA35041CDCCCC1C23575541E17A14CEEEA3504148E17A2422575541E17A14CEEEA35041333333E31E57554100000040EEA35041AE47E1FA1B575541AE47E1AAEEA35041B81E85BB1A575541CDCCCCACF0A350417B14AEA7185755413D0AD7F3F9A35041B81E853B165755417B14AE47FCA35041CDCCCCFC15575541713D0A07FDA35041AE47E16A15575541D7A370ADFCA35041A4703DCA1357554152B81E45FBA35041333333C310575541000000F0F5A350419A9999890C575541C3F528DCF3A35041666666660C5755418FC2F518F3A35041CDCCCC4C0D5755417B14AE77F0A35041CDCCCC4C0D575541B81E85FBEFA35041295C8F420C57554100000040EEA35041000000700D575541F6285CFFEAA35041713D0AB70D575541713D0A27E8A35041333333A30E5755413D0AD7B3E6A3504114AE47C10E575541E17A14FEE4A35041B81E857B0E575541B81E85CBE3A35041333333330E5755419A999969E2A350413D0AD7030F575541A4703D8AE0A35041713D0A471057554100000020E0A35041C3F528FC14575541713D0A47DBA35041D7A370AD155755415C8FC205D8A3504114AE47D11557554185EB5158D5A35041D7A3705D16575541295C8FB2D3A35041D7A3709D16575541EC51B88ECFA35041B81E85BB1857554166666616CEA35041E17A14DE14575541295C8FE2CAA35041666666861457554166666636CDA35041F6285C7F1B5755415C8FC265D1A35041333333B31D575541AE47E10AD2A35041D7A370CD1E5755417B14AE77CFA35041EC51B89E1E575541666666B6CEA3504114AE4701205755419A9999D9CFA3504166666676235755410103000000010000000C0000003333332365A35041E17A149E5C57554152B81ED55BA35041E17A148E5E5755418FC2F56857A35041F6285C6F5F575541B81E852B53A35041F6285C9F605755410AD7A30053A3504152B81EA5605755417B14AED753A35041E17A14AE63575541E17A143E5CA350411F85EB8162575541EC51B8CE5DA35041CDCCCC4C62575541295C8FA25EA3504114AE47816557554148E17AF467A350410AD7A3306457554148E17AC466A350413D0AD723615755413333332365A35041E17A149E5C5755410103000000010000001F000000295C8F6234A35041C3F5289C9D57554185EB510836A35041C3F528BC9C57554114AE47E131A3504185EB518894575541D7A3701D2EA350415C8FC2A58D5755413D0AD7B32BA350411F85EBC18957554148E17A2429A350413333331386575541A4703D9A27A350419A99997983575541AE47E1EA25A35041AE47E1CA7F575541B81E851B24A35041CDCCCC2C7B575541CDCCCCBC21A350410000009071575541295C8FD220A350417B14AE776B575541D7A3706D20A350413333332369575541CDCCCC1C20A3504185EB519867575541F6285CBF1FA350413333339366575541EC51B8CE1CA35041666666F6685755411F85EB411DA350413333339369575541C3F5280C1EA35041295C8FD26A575541E17A142E1EA35041B81E85EB6B575541CDCCCCDC1FA350410AD7A3A07357554148E17A3421A35041D7A370FD7A5755413D0AD7E321A350411F85EBC17D57554152B81ED522A350419A999919805755413D0AD78324A350411F85EB6183575541333333D327A350413333334388575541D7A3705D2BA3504114AE47F18D5755410AD7A3E02DA35041C3F5281C92575541EC51B81E2FA35041CDCCCC3C945755419A9999C931A350417B14AEE7965755419A99992933A3504133333393995755418FC2F5F832A350419A9999299B575541295C8F6234A35041C3F5289C9D5755410103000000010000000C000000AE47E1AA80A35041A4703DEA325755417B14AE677EA35041EC51B89E32575541666666367CA35041F6285C1F32575541F6285C5F7CA35041B81E85CB32575541713D0A2782A35041295C8FB245575541E17A146E88A350415C8FC2455857554148E17A8488A3504148E17A9458575541666666A689A3504148E17A94585755415C8FC2A58BA3504100000040585755411F85EB018DA35041C3F528CC575755410AD7A3D080A350411F85EB5133575541AE47E1AA80A35041A4703DEA32575541010300000001000000210000009A9999392AA35041CDCCCC7C57575541666666B62AA350410000000058575541B81E85DB2AA3504114AE47C1585755419A9999A92AA35041AE47E1DA595755410AD7A39029A35041AE47E14A595755410AD7A32029A3504185EB51A859575541A4703D1A29A350419A9999F95957554114AE477128A35041000000905A575541CDCCCC2C28A35041666666765A575541295C8F3228A35041713D0A775B575541EC51B85E28A3504148E17A6463575541E17A14EE27A35041E17A140E69575541E17A145E27A35041E17A14FE6D575541E17A143E28A35041E17A142E75575541E17A149E2AA35041E17A14FE7C575541E17A14FE2CA35041E17A14CE82575541E17A14FE30A35041E17A145E8B575541E17A14BE35A35041E17A146E93575541E17A149E39A35041E17A147E99575541E17A147E3CA35041E17A14FE97575541E17A145E3FA35041E17A147E96575541E17A143E36A35041E17A14DE87575541E17A149E31A35041E17A148E7E575541E17A148E2EA35041E17A146E75575541E17A14AE2CA35041E17A14EE695755413D0AD7A32DA35041CDCCCC9C5F5755411F85EB812FA35041E17A14EE58575541A4703DAA2FA35041D7A3705D5857554148E17A842CA350413D0AD76354575541333333332CA3504185EB51A854575541B81E856B2BA35041E17A14CE54575541AE47E18A2AA35041F6285C1F575755419A9999392AA35041CDCCCC7C5757554101030000000100000035000000333333834BA35041E17A144E545755415C8FC24556A35041A4703D5A525755410AD7A3905AA35041AE47E19A51575541C3F528BC5FA35041F6285C9F50575541000000505EA350411F85EB31485755413D0AD7335DA35041A4703DCA42575541CDCCCCFC5BA35041E17A14AE41575541D7A3705D5BA350413333339341575541295C8FA259A350413333339341575541A4703D4A58A35041295C8FE2415755415C8FC20557A350418FC2F5384257554152B81E6555A35041CDCCCC4C42575541AE47E15A54A3504133333353425755413333337352A350415C8FC2954257554148E17A7451A3504100000010435755417B14AED74FA35041AE47E1CA445755415C8FC2C54EA35041C3F5289C4657554148E17A144EA350415C8FC21547575541333333634DA35041C3F5282C4757554148E17AF44CA3504185EB51C846575541B81E852B4DA350419A99995946575541A4703D0A4DA350419A99993945575541713D0AA74CA350413333332345575541B81E857B4BA3504148E17AD445575541713D0A674AA3504148E17A84475755410AD7A33049A35041000000B048575541A4703D8A48A35041000000B0485755417B14AEB747A35041295C8FD2475755419A99995947A35041000000D0465755418FC2F52847A350413333331346575541A4703D9A46A3504148E17AE445575541E17A14AE46A35041EC51B84E4657554148E17A3446A35041713D0AC7475755411F85EB8146A35041295C8F6248575541CDCCCC8C46A3504185EB51084957554152B81E5546A350415C8FC2E549575541B81E85DB45A350419A9999494A575541A4703DBA45A3504152B81EE54A5755411F85EBF145A3504185EB51484B575541F6285CAF45A350419A9999F94B575541E17A14FE44A35041666666B64C575541B81E852B44A350413D0AD7734C575541333333F344A3504114AE47E14D5755417B14AEE73BA3504152B81EE553575541E17A14EE3BA350419A99999954575541666666563CA35041D7A370ED5F5755419A9999693CA350419A999999635755416666666643A35041C3F528BC62575541D7A370DD46A35041E17A144E62575541333333934BA350415C8FC2A561575541CDCCCC8C4BA350415C8FC2955B57554152B81E854BA350419A9999D954575541333333834BA35041E17A144E545755410103000000010000000D00000048E17AB4E3A35041333333E33D5755413D0AD753E4A35041713D0A4734575541AE47E1BAE2A350411F85EB613457554166666686DDA35041AE47E1BA345755411F85EB01DCA3504152B81ED53457554185EB5178D8A35041CDCCCCFC34575541CDCCCC6CD8A3504148E17A6438575541713D0AF7D8A35041E17A140E48575541C3F528ACDAA350413D0AD7C347575541E17A145EE0A35041CDCCCCAC465755413D0AD743E1A3504114AE4771465755419A999909E3A35041C3F528FC4557554148E17AB4E3A35041333333E33D57554101030000000100000009000000EC51B82E95A350419A9999B90E575541CDCCCCDC91A350417B14AE970D575541C3F5281C90A350411F85EBF113575541A4703DCA8FA350416666661615575541EC51B83E92A3504166666696175755415C8FC28594A3504148E17A64195755410AD7A3B094A3504185EB51D8185755410AD7A33097A350413D0AD73310575541EC51B82E95A350419A9999B90E57554101030000000100000011000000295C8F32A6A35041000000008F57554148E17A84A4A350419A9999698C5755418FC2F5C8A2A350413D0AD7A388575541C3F5287CA0A3504114AE4731845755415C8FC2759DA35041B81E859B7E5755415C8FC2F59BA35041333333137C5755419A9999299AA35041333333137A5755411F85EBD197A35041000000307B57554148E17AF496A350418FC2F5987B575541EC51B87E9BA35041EC51B8BE825755419A99998999A3504148E17AB483575541333333039CA35041AE47E19A875755411F85EB61A0A35041333333538E5755417B14AE77A4A35041E17A141E94575541B81E85CBA7A350413D0AD793985755410AD7A3D0AAA350411F85EB2195575541295C8F32A6A35041000000008F5755410103000000010000000A0000001F85EBA1B6A350418FC2F5F812575541AE47E17AB7A3504114AE47811257554152B81E25B8A35041F6285CBF11575541000000D0B8A350411F85EBF10F575541713D0AD7B9A35041A4703D8A0C5755411F85EB91B7A350418FC2F5080E57554148E17AB4B6A3504114AE47910F57554133333313B6A3504185EB51B8105755417B14AE37B6A3504133333373125755411F85EBA1B6A350418FC2F5F812575541010300000001000000120000005C8FC255C2A350410AD7A3903357554114AE4701C5A35041F6285CDF345755410AD7A3A0C7A35041F6285C2F3457554148E17AD4C9A35041333333C333575541F6285C1FCDA3504114AE47A13357554148E17AB4D0A350413D0AD773335755417B14AE07D1A3504148E17AD432575541EC51B87EC9A35041333333F32D575541B81E85BBC6A350418FC2F5A824575541D7A370CDC3A35041333333F31C5755418FC2F568C0A3504114AE47E11C575541D7A3704DBFA350415C8FC235195755417B14AE27BDA350413D0AD7231957554148E17A74BAA35041D7A370CD1A5755419A999989B8A350415C8FC2B51C575541D7A3704DBDA35041F6285C9F275755413D0AD7C3C0A35041666666A62F5755415C8FC255C2A350410AD7A39033575541010300000001000000330000001F85EB917AA3504185EB5158275755416666667678A350418FC2F5782D575541CDCCCC5C77A35041295C8FD2305755416666667678A35041B81E854B305755411F85EB2179A35041CDCCCC7C30575541D7A3707D79A350410AD7A300315755417B14AE477AA35041AE47E16A31575541A4703DCA7DA35041EC51B8CE31575541333333737FA35041D7A3703D32575541295C8F0281A35041EC51B8CE31575541C3F528AC82A35041AE47E11A3057554114AE47D182A35041EC51B82E2F575541CDCCCCAC84A35041CDCCCCAC2A575541666666C684A350418FC2F51829575541295C8F9284A3504185EB51D828575541713D0A9785A35041A4703DBA27575541CDCCCC4C86A35041C3F5286C275755413333330387A35041C3F5286C2757554114AE475187A35041EC51B85E2757554185EB514888A350418FC2F57827575541333333B388A350410000001028575541B81E850B89A350417B14AED728575541713D0A6789A3504114AE47E1285755417B14AE278AA350410AD7A3D028575541666666668AA3504185EB517828575541000000908AA35041E17A143E285755415C8FC2658BA35041000000D027575541B81E853B8CA35041E17A146E27575541EC51B8BE8CA3504114AE472127575541666666E68CA35041E17A14DE26575541C3F5283C8DA350417B14AE97255755410AD7A3608DA350417B14AEC724575541E17A149E8DA350418FC2F5682457554185EB51288FA35041A4703DCA23575541A4703D0A90A350410AD7A34023575541C3F5287C91A350413333338322575541000000E091A35041F6285C4F225755413D0AD76392A35041EC51B84E20575541B81E852B94A350418FC2F5881A575541D7A3702D92A350418FC2F5D818575541E17A147E8FA350416666662616575541D7A3701D8EA3504114AE47111B575541A4703DDA8AA35041F6285C9F1A5755413D0AD7B388A350418FC2F5A822575541E17A145E84A350417B14AEB72257554152B81EF580A35041295C8FB2225755411F85EB917CA35041E17A14DE22575541EC51B87E7CA35041333333232357554185EB51187CA35041A4703D9A245755411F85EB217BA35041A4703D2A275755411F85EB917AA3504185EB515827575541
+</a>
+
+<b>
+0106000000010000000103000000010000001400000007242AD7CFA25041C6A764FCEF5655415DDF8981CFA250411C63C4A6EF56554156A864FECDA250416FFBB725EF5655413CB66BABCCA250415CFA40C6EE565541281670E5CBA25041BD4514EDEE56554189333373CAA2504127B81E65F95655418FC2F5F8C9A25041E5999919FC565541A2F528ECC7A25041F651B84E025755417DE17A74C5A250419947E13A095755417DE17AB4C3A25041AE47E11A0E5755415BC6327EC4A25041EAAF419A0E575541A7DA98FBC5A25041809C82980E57554111F26157C9A250417EB879560E5755415B3D0A07CBA25041B67A148E085755418CA3701DCDA25041831E85CB005755418051B83ECFA2504198F528ECF7565541345C8F42D0A250414514AE67F3565541EEC2D096D0A25041D68A3F23F15655417B14AE47D0A25041EC51B80EF156554107242AD7CFA25041C6A764FCEF565541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608091 - 253763
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -46 </desc>
+<a>
+0106000000150000000103000000010000000F0000005C8FC275B7A250418FC2F5587F57554100000010ACA250417B14AEE7885755415C8FC225A2A25041C3F5282C91575541C3F528BC98A250417B14AE2799575541D7A3707D99A25041D7A3705D9A575541000000809AA25041AE47E1FA9B57554114AE4721A5A250416666666693575541C3F5285CB3A25041333333038857554166666686D3A250415C8FC2D56E575541C3F528FCD1A25041E17A146E6F5755419A9999E9CDA25041AE47E15A6F575541666666D6CDA250413D0AD7A36C5755415C8FC235C1A250419A99992977575541C3F5283CBAA25041A4703D0A7D5755415C8FC275B7A250418FC2F5587F5755410103000000010000002F0000005C8FC275B3A35041B81E850B7C575541F6285C3FB1A350418FC2F5587D575541E17A148EB5A35041A4703DAA855755418FC2F5D8B9A35041295C8F728D575541B81E854BBEA3504185EB5178965755410AD7A320C3A35041EC51B87E9F575541A4703D0AC8A350411F85EB01A95755413D0AD753CCA350415C8FC235B0575541E17A145ED0A35041666666C6AF575541E17A14AED1A3504166666686B05755415C8FC2C5D1A3504166666636B25755415C8FC285CFA35041666666F6B2575541CDCCCCACD0A35041B81E851BB5575541E17A142ED3A35041E17A14DEB55755411F85EB11D6A350410AD7A370BC5755417B14AE87D7A35041D7A3705DBB575541D7A3708DD8A35041CDCCCC9CBA575541CDCCCC5CD3A350411F85EB41AE57554152B81E45D1A3504185EB5178AB57554166666696CDA3504114AE4781A35755418FC2F548CEA35041F6285CCFA25755415C8FC245CDA35041E17A14FE9E575541E17A14AECEA35041666666469F5755415C8FC2B5CFA3504166666626A1575541E17A14AED7A3504166666636A3575541CDCCCCECDAA3504148E17A64A557554114AE47E1D6A35041295C8F929C5755419A999949D3A35041B81E852B94575541713D0A87D1A35041B81E85EB945755413D0AD733CFA35041EC51B8DE8E5755418FC2F5E8CAA35041CDCCCCFC83575541B81E854BC6A350419A9999B97F575541000000B0C4A35041D7A3703D7E5755415C8FC2B5C3A35041666666567D575541E17A14BEC1A35041E17A144E7F575541E17A143EC0A350416666665680575541E17A149EBDA35041E17A14DE7F575541E17A143EBDA35041E17A144E7F5755415C8FC2E5BDA35041666666167E5755415C8FC235BFA35041E17A14CE7D575541E17A141EBFA35041E17A144E7C575541E17A146EBDA35041666666D67B575541E17A147EBCA35041666666667C575541C3F5283CBAA3504114AE478181575541B81E856BB6A35041E17A145E7A5755419A999909B5A35041E17A141E7B5755415C8FC275B3A35041B81E850B7C5755410103000000010000002B000000EC51B8DEC2A25041B81E856B0D5755415C8FC265C4A250417B14AEB70E5755417B14AED7CAA250418FC2F5380E5755410AD7A380CEA25041CDCCCCDC0F575541E17A149ECEA2504148E17AE41057554100000000CFA2504185EB51D811575541D7A370FDCFA250413D0AD7431257554185EB51E8D0A2504148E17A74125755415C8FC285D5A2504148E17AE410575541295C8FE2D7A250417B14AE670F5755418FC2F5C8DAA25041A4703D4A0F5755418FC2F5E8DBA25041E17A14BE0F575541EC51B80EDDA25041A4703D3A0B575541E17A14FEDEA25041D7A3705D03575541713D0A27E0A250410AD7A3A0FE565541EC51B82EE1A2504185EB5178FA565541295C8F22E2A2504166666696F6565541CDCCCC1CE1A25041AE47E1DAF6565541333333B3DDA2504148E17AE4F45655415C8FC295D9A2504100000050F5565541EC51B89ED7A2504152B81EC5F3565541D7A370EDD3A2504166666686F1565541AE47E18AD1A25041295C8F62F15655417B14AE47D0A25041EC51B80EF156554185EB5188CFA25041C3F5283CEF5655419A999939D1A250418FC2F528EE5655418FC2F558CFA2504114AE4731ED5655417B14AE67CEA25041CDCCCC5CEB565541000000A0CCA25041000000A0EB56554166666656CCA2504166666626E95655411F85EB81CBA2504100000030E85655415C8FC225CBA25041713D0AC7E6565541B81E851BCAA250419A9999B9E65655419A999919C9A25041295C8F22E756554100000080C8A25041295C8F72EB565541AE47E19AC7A25041F6285C1FF4565541333333E3C6A2504133333303FA565541CDCCCC1CC6A2504166666626FE565541EC51B87EC5A250419A9999F900575541AE47E1BAC2A250419A999959095755417B14AE27C2A2504185EB51A80B575541B81E85CBC2A250418FC2F5F80B575541EC51B8DEC2A25041B81E856B0D57554101030000000100000014000000AE47E14AF6A2504133333353125755411F85EB41F7A2504114AE4711125755418FC2F548F8A250410AD7A30012575541CDCCCCDCF8A25041333333531257554114AE4781F9A250410AD7A3F011575541295C8FB2F9A250413333331310575541E17A14FEF8A25041D7A3703D0F575541E17A140EF9A2504148E17AE40D575541F6285C2FF9A25041AE47E12A0A57554185EB5128F8A25041E17A14BE035755418FC2F548F8A25041EC51B88E0157554148E17AA4F7A250418FC2F558FE565541666666A6F5A25041A4703D3AFC5655413D0AD7B3F3A25041EC51B8CEFA565541E17A14EEF3A250410AD7A360FC5655410AD7A3C0F4A25041EC51B84E03575541EC51B82EF5A250418FC2F5C8085755413D0AD773F5A2504114AE47F10D575541666666A6F5A250413333332312575541AE47E14AF6A2504133333353125755410103000000010000000E0000000AD7A38074A35041EC51B8EE345755410000000074A350413D0AD70335575541000000B073A35041CDCCCC8C35575541E17A146E73A35041B81E856B3657554148E17A4473A350413D0AD7D3375755419A99992973A35041AE47E1BA38575541295C8F0273A3504148E17AF438575541E17A146E72A35041E17A142E39575541295C8F9270A350411F85EBA1395755415C8FC2656FA3504185EB51D83957554152B81E3572A350417B14AEA743575541CDCCCCFC72A350413D0AD7F345575541713D0AC775A35041A4703D8A395755410AD7A38074A35041EC51B8EE3457554101030000000100000009000000C3F528DCE4A25041F6285C8F3F575541A4703D6AEBA25041713D0A574557554152B81EF5F2A2504148E17AA44A5755413D0AD713F8A25041A4703D7A3E57554148E17AF4F2A25041E17A14CE3D575541F6285CFFF1A250417B14AEC73D5755419A9999E9EEA25041295C8FB23D575541D7A3705DE2A2504148E17AA43C575541C3F528DCE4A25041F6285C8F3F5755410103000000010000001C0000009A9999C9C1A250417B14AEE7E0565541C3F528FCC1A250417B14AE67E05655415C8FC245C2A2504100000010E05655417B14AE37C2A25041295C8FA2DF565541EC51B80EC2A2504166666646DF5655417B14AE17C2A25041AE47E1AADE5655410AD7A340C2A25041CDCCCCFCDD5655417B14AE77C2A25041C3F528FCDC565541F6285CAFC2A25041C3F528BCDB565541B81E85DBBEA25041F6285C3FDB565541AE47E1AABDA2504185EB5118DB565541D7A3709DBDA25041AE47E1EADD5655413D0AD733BCA250415C8FC295EE56554114AE47E1BBA25041A4703DEAF15655419A999949BBA2504185EB5108FD565541295C8FD2BAA250419A999959025755418FC2F5C8BAA250410AD7A32005575541B81E85BBBAA25041713D0AE708575541713D0A57BAA25041295C8FC20F575541F6285C4FBCA250418FC2F5180F575541B81E850BBDA25041666666760A5755419A9999F9BDA25041666666960457554185EB51C8BFA2504148E17AE4F6565541295C8FF2C0A2504185EB5178EC565541333333F3C1A250418FC2F5C8E2565541EC51B8EEC1A25041F6285CBFE15655410AD7A3E0C1A250417B14AE47E15655419A9999C9C1A250417B14AEE7E056554101030000000100000018000000713D0A67A3A35041C3F528FC56575541000000709EA35041EC51B8DE5257554148E17AE49CA3504114AE47B1535755418FC2F5D897A35041E17A144E56575541F6285CEF97A35041E17A148E565755419A9999199CA350415C8FC2055E575541F6285C7F9EA35041B81E856B62575541F6285CAFA1A35041AE47E12A68575541C3F5285CA4A350415C8FC2F56C575541F6285C0FA8A350415C8FC28573575541000000E0ABA350416666662672575541EC51B8CEAFA35041E17A140E70575541AE47E1AAADA35041333333436C575541000000E0A9A3504148E17A54665755413D0AD7D3A6A35041CDCCCCAC6157554152B81E75A4A3504152B81EC55D57554148E17A24A6A35041000000405E575541D7A370CDACA350413333333368575541713D0A37B1A350418FC2F578655755415C8FC2B5A8A350415C8FC2855B575541713D0AE7A5A3504185EB51485B575541295C8FB2A4A35041D7A3701D595755410AD7A3B0A6A350410AD7A3C059575541713D0A67A3A35041C3F528FC565755410103000000010000000A000000AE47E16A73A35041713D0A37475755410000005076A35041CDCCCCBC4F57554185EB518878A350415C8FC2B5565755413D0AD79379A35041713D0A175A5755419A9999697DA35041713D0A375A575541C3F5283C7FA3504152B81E155A5755411F85EBF17BA35041713D0A574F575541A4703D0A7AA35041EC51B8EE485755418FC2F51876A35041295C8FB23A575541AE47E16A73A35041713D0A3747575541010300000001000000370000009A9999D9CFA3504166666676235755410AD7A380D2A3504148E17AF423575541EC51B8DED2A35041EC51B8CE2657554185EB5148D1A3504114AE47D127575541295C8FF2D2A350417B14AEB72C575541B81E852BD5A35041AE47E16A2C575541F6285C4FD9A350413D0AD7932A575541AE47E1BADAA35041666666662A575541C3F5287CDBA35041AE47E11A2A57554152B81EC5DDA35041AE47E11A2A575541AE47E1EADFA350419A9999092A575541E17A149EE2A35041C3F528DC285755413D0AD733E2A350419A999979275755419A9999B9E3A3504148E17AA42657554185EB5198E5A35041CDCCCCAC2557554114AE4771EAA35041C3F528BC23575541713D0A97ECA350411F85EB51235755419A999959EDA35041CDCCCC1C23575541E17A14CEEEA3504148E17A2422575541E17A14CEEEA35041333333E31E57554100000040EEA35041AE47E1FA1B575541AE47E1AAEEA35041B81E85BB1A575541CDCCCCACF0A350417B14AEA7185755413D0AD7F3F9A35041B81E853B165755417B14AE47FCA35041CDCCCCFC15575541713D0A07FDA35041AE47E16A15575541D7A370ADFCA35041A4703DCA1357554152B81E45FBA35041333333C310575541000000F0F5A350419A9999890C575541C3F528DCF3A35041666666660C5755418FC2F518F3A35041CDCCCC4C0D5755417B14AE77F0A35041CDCCCC4C0D575541B81E85FBEFA35041295C8F420C57554100000040EEA35041000000700D575541F6285CFFEAA35041713D0AB70D575541713D0A27E8A35041333333A30E5755413D0AD7B3E6A3504114AE47C10E575541E17A14FEE4A35041B81E857B0E575541B81E85CBE3A35041333333330E5755419A999969E2A350413D0AD7030F575541A4703D8AE0A35041713D0A471057554100000020E0A35041C3F528FC14575541713D0A47DBA35041D7A370AD155755415C8FC205D8A3504114AE47D11557554185EB5158D5A35041D7A3705D16575541295C8FB2D3A35041D7A3709D16575541EC51B88ECFA35041B81E85BB1857554166666616CEA35041E17A14DE14575541295C8FE2CAA35041666666861457554166666636CDA35041F6285C7F1B5755415C8FC265D1A35041333333B31D575541AE47E10AD2A35041D7A370CD1E5755417B14AE77CFA35041EC51B89E1E575541666666B6CEA3504114AE4701205755419A9999D9CFA3504166666676235755410103000000010000000C0000003333332365A35041E17A149E5C57554152B81ED55BA35041E17A148E5E5755418FC2F56857A35041F6285C6F5F575541B81E852B53A35041F6285C9F605755410AD7A30053A3504152B81EA5605755417B14AED753A35041E17A14AE63575541E17A143E5CA350411F85EB8162575541EC51B8CE5DA35041CDCCCC4C62575541295C8FA25EA3504114AE47816557554148E17AF467A350410AD7A3306457554148E17AC466A350413D0AD723615755413333332365A35041E17A149E5C5755410103000000010000001F000000295C8F6234A35041C3F5289C9D57554185EB510836A35041C3F528BC9C57554114AE47E131A3504185EB518894575541D7A3701D2EA350415C8FC2A58D5755413D0AD7B32BA350411F85EBC18957554148E17A2429A350413333331386575541A4703D9A27A350419A99997983575541AE47E1EA25A35041AE47E1CA7F575541B81E851B24A35041CDCCCC2C7B575541CDCCCCBC21A350410000009071575541295C8FD220A350417B14AE776B575541D7A3706D20A350413333332369575541CDCCCC1C20A3504185EB519867575541F6285CBF1FA350413333339366575541EC51B8CE1CA35041666666F6685755411F85EB411DA350413333339369575541C3F5280C1EA35041295C8FD26A575541E17A142E1EA35041B81E85EB6B575541CDCCCCDC1FA350410AD7A3A07357554148E17A3421A35041D7A370FD7A5755413D0AD7E321A350411F85EBC17D57554152B81ED522A350419A999919805755413D0AD78324A350411F85EB6183575541333333D327A350413333334388575541D7A3705D2BA3504114AE47F18D5755410AD7A3E02DA35041C3F5281C92575541EC51B81E2FA35041CDCCCC3C945755419A9999C931A350417B14AEE7965755419A99992933A3504133333393995755418FC2F5F832A350419A9999299B575541295C8F6234A35041C3F5289C9D5755410103000000010000000C000000AE47E1AA80A35041A4703DEA325755417B14AE677EA35041EC51B89E32575541666666367CA35041F6285C1F32575541F6285C5F7CA35041B81E85CB32575541713D0A2782A35041295C8FB245575541E17A146E88A350415C8FC2455857554148E17A8488A3504148E17A9458575541666666A689A3504148E17A94585755415C8FC2A58BA3504100000040585755411F85EB018DA35041C3F528CC575755410AD7A3D080A350411F85EB5133575541AE47E1AA80A35041A4703DEA32575541010300000001000000210000009A9999392AA35041CDCCCC7C57575541666666B62AA350410000000058575541B81E85DB2AA3504114AE47C1585755419A9999A92AA35041AE47E1DA595755410AD7A39029A35041AE47E14A595755410AD7A32029A3504185EB51A859575541A4703D1A29A350419A9999F95957554114AE477128A35041000000905A575541CDCCCC2C28A35041666666765A575541295C8F3228A35041713D0A775B575541EC51B85E28A3504148E17A6463575541E17A14EE27A35041E17A140E69575541E17A145E27A35041E17A14FE6D575541E17A143E28A35041E17A142E75575541E17A149E2AA35041E17A14FE7C575541E17A14FE2CA35041E17A14CE82575541E17A14FE30A35041E17A145E8B575541E17A14BE35A35041E17A146E93575541E17A149E39A35041E17A147E99575541E17A147E3CA35041E17A14FE97575541E17A145E3FA35041E17A147E96575541E17A143E36A35041E17A14DE87575541E17A149E31A35041E17A148E7E575541E17A148E2EA35041E17A146E75575541E17A14AE2CA35041E17A14EE695755413D0AD7A32DA35041CDCCCC9C5F5755411F85EB812FA35041E17A14EE58575541A4703DAA2FA35041D7A3705D5857554148E17A842CA350413D0AD76354575541333333332CA3504185EB51A854575541B81E856B2BA35041E17A14CE54575541AE47E18A2AA35041F6285C1F575755419A9999392AA35041CDCCCC7C5757554101030000000100000035000000333333834BA35041E17A144E545755415C8FC24556A35041A4703D5A525755410AD7A3905AA35041AE47E19A51575541C3F528BC5FA35041F6285C9F50575541000000505EA350411F85EB31485755413D0AD7335DA35041A4703DCA42575541CDCCCCFC5BA35041E17A14AE41575541D7A3705D5BA350413333339341575541295C8FA259A350413333339341575541A4703D4A58A35041295C8FE2415755415C8FC20557A350418FC2F5384257554152B81E6555A35041CDCCCC4C42575541AE47E15A54A3504133333353425755413333337352A350415C8FC2954257554148E17A7451A3504100000010435755417B14AED74FA35041AE47E1CA445755415C8FC2C54EA35041C3F5289C4657554148E17A144EA350415C8FC21547575541333333634DA35041C3F5282C4757554148E17AF44CA3504185EB51C846575541B81E852B4DA350419A99995946575541A4703D0A4DA350419A99993945575541713D0AA74CA350413333332345575541B81E857B4BA3504148E17AD445575541713D0A674AA3504148E17A84475755410AD7A33049A35041000000B048575541A4703D8A48A35041000000B0485755417B14AEB747A35041295C8FD2475755419A99995947A35041000000D0465755418FC2F52847A350413333331346575541A4703D9A46A3504148E17AE445575541E17A14AE46A35041EC51B84E4657554148E17A3446A35041713D0AC7475755411F85EB8146A35041295C8F6248575541CDCCCC8C46A3504185EB51084957554152B81E5546A350415C8FC2E549575541B81E85DB45A350419A9999494A575541A4703DBA45A3504152B81EE54A5755411F85EBF145A3504185EB51484B575541F6285CAF45A350419A9999F94B575541E17A14FE44A35041666666B64C575541B81E852B44A350413D0AD7734C575541333333F344A3504114AE47E14D5755417B14AEE73BA3504152B81EE553575541E17A14EE3BA350419A99999954575541666666563CA35041D7A370ED5F5755419A9999693CA350419A999999635755416666666643A35041C3F528BC62575541D7A370DD46A35041E17A144E62575541333333934BA350415C8FC2A561575541CDCCCC8C4BA350415C8FC2955B57554152B81E854BA350419A9999D954575541333333834BA35041E17A144E545755410103000000010000000D00000048E17AB4E3A35041333333E33D5755413D0AD753E4A35041713D0A4734575541AE47E1BAE2A350411F85EB613457554166666686DDA35041AE47E1BA345755411F85EB01DCA3504152B81ED53457554185EB5178D8A35041CDCCCCFC34575541CDCCCC6CD8A3504148E17A6438575541713D0AF7D8A35041E17A140E48575541C3F528ACDAA350413D0AD7C347575541E17A145EE0A35041CDCCCCAC465755413D0AD743E1A3504114AE4771465755419A999909E3A35041C3F528FC4557554148E17AB4E3A35041333333E33D57554101030000000100000009000000EC51B82E95A350419A9999B90E575541CDCCCCDC91A350417B14AE970D575541C3F5281C90A350411F85EBF113575541A4703DCA8FA350416666661615575541EC51B83E92A3504166666696175755415C8FC28594A3504148E17A64195755410AD7A3B094A3504185EB51D8185755410AD7A33097A350413D0AD73310575541EC51B82E95A350419A9999B90E57554101030000000100000011000000295C8F32A6A35041000000008F57554148E17A84A4A350419A9999698C5755418FC2F5C8A2A350413D0AD7A388575541C3F5287CA0A3504114AE4731845755415C8FC2759DA35041B81E859B7E5755415C8FC2F59BA35041333333137C5755419A9999299AA35041333333137A5755411F85EBD197A35041000000307B57554148E17AF496A350418FC2F5987B575541EC51B87E9BA35041EC51B8BE825755419A99998999A3504148E17AB483575541333333039CA35041AE47E19A875755411F85EB61A0A35041333333538E5755417B14AE77A4A35041E17A141E94575541B81E85CBA7A350413D0AD793985755410AD7A3D0AAA350411F85EB2195575541295C8F32A6A35041000000008F5755410103000000010000000A0000001F85EBA1B6A350418FC2F5F812575541AE47E17AB7A3504114AE47811257554152B81E25B8A35041F6285CBF11575541000000D0B8A350411F85EBF10F575541713D0AD7B9A35041A4703D8A0C5755411F85EB91B7A350418FC2F5080E57554148E17AB4B6A3504114AE47910F57554133333313B6A3504185EB51B8105755417B14AE37B6A3504133333373125755411F85EBA1B6A350418FC2F5F812575541010300000001000000120000005C8FC255C2A350410AD7A3903357554114AE4701C5A35041F6285CDF345755410AD7A3A0C7A35041F6285C2F3457554148E17AD4C9A35041333333C333575541F6285C1FCDA3504114AE47A13357554148E17AB4D0A350413D0AD773335755417B14AE07D1A3504148E17AD432575541EC51B87EC9A35041333333F32D575541B81E85BBC6A350418FC2F5A824575541D7A370CDC3A35041333333F31C5755418FC2F568C0A3504114AE47E11C575541D7A3704DBFA350415C8FC235195755417B14AE27BDA350413D0AD7231957554148E17A74BAA35041D7A370CD1A5755419A999989B8A350415C8FC2B51C575541D7A3704DBDA35041F6285C9F275755413D0AD7C3C0A35041666666A62F5755415C8FC255C2A350410AD7A39033575541010300000001000000330000001F85EB917AA3504185EB5158275755416666667678A350418FC2F5782D575541CDCCCC5C77A35041295C8FD2305755416666667678A35041B81E854B305755411F85EB2179A35041CDCCCC7C30575541D7A3707D79A350410AD7A300315755417B14AE477AA35041AE47E16A31575541A4703DCA7DA35041EC51B8CE31575541333333737FA35041D7A3703D32575541295C8F0281A35041EC51B8CE31575541C3F528AC82A35041AE47E11A3057554114AE47D182A35041EC51B82E2F575541CDCCCCAC84A35041CDCCCCAC2A575541666666C684A350418FC2F51829575541295C8F9284A3504185EB51D828575541713D0A9785A35041A4703DBA27575541CDCCCC4C86A35041C3F5286C275755413333330387A35041C3F5286C2757554114AE475187A35041EC51B85E2757554185EB514888A350418FC2F57827575541333333B388A350410000001028575541B81E850B89A350417B14AED728575541713D0A6789A3504114AE47E1285755417B14AE278AA350410AD7A3D028575541666666668AA3504185EB517828575541000000908AA35041E17A143E285755415C8FC2658BA35041000000D027575541B81E853B8CA35041E17A146E27575541EC51B8BE8CA3504114AE472127575541666666E68CA35041E17A14DE26575541C3F5283C8DA350417B14AE97255755410AD7A3608DA350417B14AEC724575541E17A149E8DA350418FC2F5682457554185EB51288FA35041A4703DCA23575541A4703D0A90A350410AD7A34023575541C3F5287C91A350413333338322575541000000E091A35041F6285C4F225755413D0AD76392A35041EC51B84E20575541B81E852B94A350418FC2F5881A575541D7A3702D92A350418FC2F5D818575541E17A147E8FA350416666662616575541D7A3701D8EA3504114AE47111B575541A4703DDA8AA35041F6285C9F1A5755413D0AD7B388A350418FC2F5A822575541E17A145E84A350417B14AEB72257554152B81EF580A35041295C8FB2225755411F85EB917CA35041E17A14DE22575541EC51B87E7CA35041333333232357554185EB51187CA35041A4703D9A245755411F85EB217BA35041A4703D2A275755411F85EB917AA3504185EB515827575541
+</a>
+
+<b>
+01060000000100000001030000000100000016000000BF6B7BE49CA350415D6447B15357554133B69D6399A350417326B68155575541A884D76299A350415AC81C8255575541D351FE6199A35041B1418D8255575541782A313298A3504163E3EA22565755411F4BB45A98A350415645749C56575541BEA93AEA9BA35041F63039565D575541D584A9AA9CA35041D056D5C25E575541F6285C7F9EA35041B81E856B62575541F6285CAFA1A35041AE47E12A68575541C3F5285CA4A350415C8FC2F56C575541F6285C0FA8A350415C8FC28573575541000000E0ABA350416666662672575541EC51B8CEAFA35041E17A140E70575541AE47E1AAADA35041333333436C575541000000E0A9A3504148E17A54665755413BEC1BD1A7A3504114F1A92F635755419B08D7D3A6A350412E65CDAC615755410B9E5BDFA4A35041B823B78E5E575541E9E0709DA3A3504114D8F5585C5755417628D673A0A350417CC73C6A58575541BF6B7BE49CA350415D6447B153575541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608091 - 419403
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000150000000103000000010000000F0000005C8FC275B7A250418FC2F5587F57554100000010ACA250417B14AEE7885755415C8FC225A2A25041C3F5282C91575541C3F528BC98A250417B14AE2799575541D7A3707D99A25041D7A3705D9A575541000000809AA25041AE47E1FA9B57554114AE4721A5A250416666666693575541C3F5285CB3A25041333333038857554166666686D3A250415C8FC2D56E575541C3F528FCD1A25041E17A146E6F5755419A9999E9CDA25041AE47E15A6F575541666666D6CDA250413D0AD7A36C5755415C8FC235C1A250419A99992977575541C3F5283CBAA25041A4703D0A7D5755415C8FC275B7A250418FC2F5587F5755410103000000010000002F0000005C8FC275B3A35041B81E850B7C575541F6285C3FB1A350418FC2F5587D575541E17A148EB5A35041A4703DAA855755418FC2F5D8B9A35041295C8F728D575541B81E854BBEA3504185EB5178965755410AD7A320C3A35041EC51B87E9F575541A4703D0AC8A350411F85EB01A95755413D0AD753CCA350415C8FC235B0575541E17A145ED0A35041666666C6AF575541E17A14AED1A3504166666686B05755415C8FC2C5D1A3504166666636B25755415C8FC285CFA35041666666F6B2575541CDCCCCACD0A35041B81E851BB5575541E17A142ED3A35041E17A14DEB55755411F85EB11D6A350410AD7A370BC5755417B14AE87D7A35041D7A3705DBB575541D7A3708DD8A35041CDCCCC9CBA575541CDCCCC5CD3A350411F85EB41AE57554152B81E45D1A3504185EB5178AB57554166666696CDA3504114AE4781A35755418FC2F548CEA35041F6285CCFA25755415C8FC245CDA35041E17A14FE9E575541E17A14AECEA35041666666469F5755415C8FC2B5CFA3504166666626A1575541E17A14AED7A3504166666636A3575541CDCCCCECDAA3504148E17A64A557554114AE47E1D6A35041295C8F929C5755419A999949D3A35041B81E852B94575541713D0A87D1A35041B81E85EB945755413D0AD733CFA35041EC51B8DE8E5755418FC2F5E8CAA35041CDCCCCFC83575541B81E854BC6A350419A9999B97F575541000000B0C4A35041D7A3703D7E5755415C8FC2B5C3A35041666666567D575541E17A14BEC1A35041E17A144E7F575541E17A143EC0A350416666665680575541E17A149EBDA35041E17A14DE7F575541E17A143EBDA35041E17A144E7F5755415C8FC2E5BDA35041666666167E5755415C8FC235BFA35041E17A14CE7D575541E17A141EBFA35041E17A144E7C575541E17A146EBDA35041666666D67B575541E17A147EBCA35041666666667C575541C3F5283CBAA3504114AE478181575541B81E856BB6A35041E17A145E7A5755419A999909B5A35041E17A141E7B5755415C8FC275B3A35041B81E850B7C5755410103000000010000002B000000EC51B8DEC2A25041B81E856B0D5755415C8FC265C4A250417B14AEB70E5755417B14AED7CAA250418FC2F5380E5755410AD7A380CEA25041CDCCCCDC0F575541E17A149ECEA2504148E17AE41057554100000000CFA2504185EB51D811575541D7A370FDCFA250413D0AD7431257554185EB51E8D0A2504148E17A74125755415C8FC285D5A2504148E17AE410575541295C8FE2D7A250417B14AE670F5755418FC2F5C8DAA25041A4703D4A0F5755418FC2F5E8DBA25041E17A14BE0F575541EC51B80EDDA25041A4703D3A0B575541E17A14FEDEA25041D7A3705D03575541713D0A27E0A250410AD7A3A0FE565541EC51B82EE1A2504185EB5178FA565541295C8F22E2A2504166666696F6565541CDCCCC1CE1A25041AE47E1DAF6565541333333B3DDA2504148E17AE4F45655415C8FC295D9A2504100000050F5565541EC51B89ED7A2504152B81EC5F3565541D7A370EDD3A2504166666686F1565541AE47E18AD1A25041295C8F62F15655417B14AE47D0A25041EC51B80EF156554185EB5188CFA25041C3F5283CEF5655419A999939D1A250418FC2F528EE5655418FC2F558CFA2504114AE4731ED5655417B14AE67CEA25041CDCCCC5CEB565541000000A0CCA25041000000A0EB56554166666656CCA2504166666626E95655411F85EB81CBA2504100000030E85655415C8FC225CBA25041713D0AC7E6565541B81E851BCAA250419A9999B9E65655419A999919C9A25041295C8F22E756554100000080C8A25041295C8F72EB565541AE47E19AC7A25041F6285C1FF4565541333333E3C6A2504133333303FA565541CDCCCC1CC6A2504166666626FE565541EC51B87EC5A250419A9999F900575541AE47E1BAC2A250419A999959095755417B14AE27C2A2504185EB51A80B575541B81E85CBC2A250418FC2F5F80B575541EC51B8DEC2A25041B81E856B0D57554101030000000100000014000000AE47E14AF6A2504133333353125755411F85EB41F7A2504114AE4711125755418FC2F548F8A250410AD7A30012575541CDCCCCDCF8A25041333333531257554114AE4781F9A250410AD7A3F011575541295C8FB2F9A250413333331310575541E17A14FEF8A25041D7A3703D0F575541E17A140EF9A2504148E17AE40D575541F6285C2FF9A25041AE47E12A0A57554185EB5128F8A25041E17A14BE035755418FC2F548F8A25041EC51B88E0157554148E17AA4F7A250418FC2F558FE565541666666A6F5A25041A4703D3AFC5655413D0AD7B3F3A25041EC51B8CEFA565541E17A14EEF3A250410AD7A360FC5655410AD7A3C0F4A25041EC51B84E03575541EC51B82EF5A250418FC2F5C8085755413D0AD773F5A2504114AE47F10D575541666666A6F5A250413333332312575541AE47E14AF6A2504133333353125755410103000000010000000E0000000AD7A38074A35041EC51B8EE345755410000000074A350413D0AD70335575541000000B073A35041CDCCCC8C35575541E17A146E73A35041B81E856B3657554148E17A4473A350413D0AD7D3375755419A99992973A35041AE47E1BA38575541295C8F0273A3504148E17AF438575541E17A146E72A35041E17A142E39575541295C8F9270A350411F85EBA1395755415C8FC2656FA3504185EB51D83957554152B81E3572A350417B14AEA743575541CDCCCCFC72A350413D0AD7F345575541713D0AC775A35041A4703D8A395755410AD7A38074A35041EC51B8EE3457554101030000000100000009000000C3F528DCE4A25041F6285C8F3F575541A4703D6AEBA25041713D0A574557554152B81EF5F2A2504148E17AA44A5755413D0AD713F8A25041A4703D7A3E57554148E17AF4F2A25041E17A14CE3D575541F6285CFFF1A250417B14AEC73D5755419A9999E9EEA25041295C8FB23D575541D7A3705DE2A2504148E17AA43C575541C3F528DCE4A25041F6285C8F3F5755410103000000010000001C0000009A9999C9C1A250417B14AEE7E0565541C3F528FCC1A250417B14AE67E05655415C8FC245C2A2504100000010E05655417B14AE37C2A25041295C8FA2DF565541EC51B80EC2A2504166666646DF5655417B14AE17C2A25041AE47E1AADE5655410AD7A340C2A25041CDCCCCFCDD5655417B14AE77C2A25041C3F528FCDC565541F6285CAFC2A25041C3F528BCDB565541B81E85DBBEA25041F6285C3FDB565541AE47E1AABDA2504185EB5118DB565541D7A3709DBDA25041AE47E1EADD5655413D0AD733BCA250415C8FC295EE56554114AE47E1BBA25041A4703DEAF15655419A999949BBA2504185EB5108FD565541295C8FD2BAA250419A999959025755418FC2F5C8BAA250410AD7A32005575541B81E85BBBAA25041713D0AE708575541713D0A57BAA25041295C8FC20F575541F6285C4FBCA250418FC2F5180F575541B81E850BBDA25041666666760A5755419A9999F9BDA25041666666960457554185EB51C8BFA2504148E17AE4F6565541295C8FF2C0A2504185EB5178EC565541333333F3C1A250418FC2F5C8E2565541EC51B8EEC1A25041F6285CBFE15655410AD7A3E0C1A250417B14AE47E15655419A9999C9C1A250417B14AEE7E056554101030000000100000018000000713D0A67A3A35041C3F528FC56575541000000709EA35041EC51B8DE5257554148E17AE49CA3504114AE47B1535755418FC2F5D897A35041E17A144E56575541F6285CEF97A35041E17A148E565755419A9999199CA350415C8FC2055E575541F6285C7F9EA35041B81E856B62575541F6285CAFA1A35041AE47E12A68575541C3F5285CA4A350415C8FC2F56C575541F6285C0FA8A350415C8FC28573575541000000E0ABA350416666662672575541EC51B8CEAFA35041E17A140E70575541AE47E1AAADA35041333333436C575541000000E0A9A3504148E17A54665755413D0AD7D3A6A35041CDCCCCAC6157554152B81E75A4A3504152B81EC55D57554148E17A24A6A35041000000405E575541D7A370CDACA350413333333368575541713D0A37B1A350418FC2F578655755415C8FC2B5A8A350415C8FC2855B575541713D0AE7A5A3504185EB51485B575541295C8FB2A4A35041D7A3701D595755410AD7A3B0A6A350410AD7A3C059575541713D0A67A3A35041C3F528FC565755410103000000010000000A000000AE47E16A73A35041713D0A37475755410000005076A35041CDCCCCBC4F57554185EB518878A350415C8FC2B5565755413D0AD79379A35041713D0A175A5755419A9999697DA35041713D0A375A575541C3F5283C7FA3504152B81E155A5755411F85EBF17BA35041713D0A574F575541A4703D0A7AA35041EC51B8EE485755418FC2F51876A35041295C8FB23A575541AE47E16A73A35041713D0A3747575541010300000001000000370000009A9999D9CFA3504166666676235755410AD7A380D2A3504148E17AF423575541EC51B8DED2A35041EC51B8CE2657554185EB5148D1A3504114AE47D127575541295C8FF2D2A350417B14AEB72C575541B81E852BD5A35041AE47E16A2C575541F6285C4FD9A350413D0AD7932A575541AE47E1BADAA35041666666662A575541C3F5287CDBA35041AE47E11A2A57554152B81EC5DDA35041AE47E11A2A575541AE47E1EADFA350419A9999092A575541E17A149EE2A35041C3F528DC285755413D0AD733E2A350419A999979275755419A9999B9E3A3504148E17AA42657554185EB5198E5A35041CDCCCCAC2557554114AE4771EAA35041C3F528BC23575541713D0A97ECA350411F85EB51235755419A999959EDA35041CDCCCC1C23575541E17A14CEEEA3504148E17A2422575541E17A14CEEEA35041333333E31E57554100000040EEA35041AE47E1FA1B575541AE47E1AAEEA35041B81E85BB1A575541CDCCCCACF0A350417B14AEA7185755413D0AD7F3F9A35041B81E853B165755417B14AE47FCA35041CDCCCCFC15575541713D0A07FDA35041AE47E16A15575541D7A370ADFCA35041A4703DCA1357554152B81E45FBA35041333333C310575541000000F0F5A350419A9999890C575541C3F528DCF3A35041666666660C5755418FC2F518F3A35041CDCCCC4C0D5755417B14AE77F0A35041CDCCCC4C0D575541B81E85FBEFA35041295C8F420C57554100000040EEA35041000000700D575541F6285CFFEAA35041713D0AB70D575541713D0A27E8A35041333333A30E5755413D0AD7B3E6A3504114AE47C10E575541E17A14FEE4A35041B81E857B0E575541B81E85CBE3A35041333333330E5755419A999969E2A350413D0AD7030F575541A4703D8AE0A35041713D0A471057554100000020E0A35041C3F528FC14575541713D0A47DBA35041D7A370AD155755415C8FC205D8A3504114AE47D11557554185EB5158D5A35041D7A3705D16575541295C8FB2D3A35041D7A3709D16575541EC51B88ECFA35041B81E85BB1857554166666616CEA35041E17A14DE14575541295C8FE2CAA35041666666861457554166666636CDA35041F6285C7F1B5755415C8FC265D1A35041333333B31D575541AE47E10AD2A35041D7A370CD1E5755417B14AE77CFA35041EC51B89E1E575541666666B6CEA3504114AE4701205755419A9999D9CFA3504166666676235755410103000000010000000C0000003333332365A35041E17A149E5C57554152B81ED55BA35041E17A148E5E5755418FC2F56857A35041F6285C6F5F575541B81E852B53A35041F6285C9F605755410AD7A30053A3504152B81EA5605755417B14AED753A35041E17A14AE63575541E17A143E5CA350411F85EB8162575541EC51B8CE5DA35041CDCCCC4C62575541295C8FA25EA3504114AE47816557554148E17AF467A350410AD7A3306457554148E17AC466A350413D0AD723615755413333332365A35041E17A149E5C5755410103000000010000001F000000295C8F6234A35041C3F5289C9D57554185EB510836A35041C3F528BC9C57554114AE47E131A3504185EB518894575541D7A3701D2EA350415C8FC2A58D5755413D0AD7B32BA350411F85EBC18957554148E17A2429A350413333331386575541A4703D9A27A350419A99997983575541AE47E1EA25A35041AE47E1CA7F575541B81E851B24A35041CDCCCC2C7B575541CDCCCCBC21A350410000009071575541295C8FD220A350417B14AE776B575541D7A3706D20A350413333332369575541CDCCCC1C20A3504185EB519867575541F6285CBF1FA350413333339366575541EC51B8CE1CA35041666666F6685755411F85EB411DA350413333339369575541C3F5280C1EA35041295C8FD26A575541E17A142E1EA35041B81E85EB6B575541CDCCCCDC1FA350410AD7A3A07357554148E17A3421A35041D7A370FD7A5755413D0AD7E321A350411F85EBC17D57554152B81ED522A350419A999919805755413D0AD78324A350411F85EB6183575541333333D327A350413333334388575541D7A3705D2BA3504114AE47F18D5755410AD7A3E02DA35041C3F5281C92575541EC51B81E2FA35041CDCCCC3C945755419A9999C931A350417B14AEE7965755419A99992933A3504133333393995755418FC2F5F832A350419A9999299B575541295C8F6234A35041C3F5289C9D5755410103000000010000000C000000AE47E1AA80A35041A4703DEA325755417B14AE677EA35041EC51B89E32575541666666367CA35041F6285C1F32575541F6285C5F7CA35041B81E85CB32575541713D0A2782A35041295C8FB245575541E17A146E88A350415C8FC2455857554148E17A8488A3504148E17A9458575541666666A689A3504148E17A94585755415C8FC2A58BA3504100000040585755411F85EB018DA35041C3F528CC575755410AD7A3D080A350411F85EB5133575541AE47E1AA80A35041A4703DEA32575541010300000001000000210000009A9999392AA35041CDCCCC7C57575541666666B62AA350410000000058575541B81E85DB2AA3504114AE47C1585755419A9999A92AA35041AE47E1DA595755410AD7A39029A35041AE47E14A595755410AD7A32029A3504185EB51A859575541A4703D1A29A350419A9999F95957554114AE477128A35041000000905A575541CDCCCC2C28A35041666666765A575541295C8F3228A35041713D0A775B575541EC51B85E28A3504148E17A6463575541E17A14EE27A35041E17A140E69575541E17A145E27A35041E17A14FE6D575541E17A143E28A35041E17A142E75575541E17A149E2AA35041E17A14FE7C575541E17A14FE2CA35041E17A14CE82575541E17A14FE30A35041E17A145E8B575541E17A14BE35A35041E17A146E93575541E17A149E39A35041E17A147E99575541E17A147E3CA35041E17A14FE97575541E17A145E3FA35041E17A147E96575541E17A143E36A35041E17A14DE87575541E17A149E31A35041E17A148E7E575541E17A148E2EA35041E17A146E75575541E17A14AE2CA35041E17A14EE695755413D0AD7A32DA35041CDCCCC9C5F5755411F85EB812FA35041E17A14EE58575541A4703DAA2FA35041D7A3705D5857554148E17A842CA350413D0AD76354575541333333332CA3504185EB51A854575541B81E856B2BA35041E17A14CE54575541AE47E18A2AA35041F6285C1F575755419A9999392AA35041CDCCCC7C5757554101030000000100000035000000333333834BA35041E17A144E545755415C8FC24556A35041A4703D5A525755410AD7A3905AA35041AE47E19A51575541C3F528BC5FA35041F6285C9F50575541000000505EA350411F85EB31485755413D0AD7335DA35041A4703DCA42575541CDCCCCFC5BA35041E17A14AE41575541D7A3705D5BA350413333339341575541295C8FA259A350413333339341575541A4703D4A58A35041295C8FE2415755415C8FC20557A350418FC2F5384257554152B81E6555A35041CDCCCC4C42575541AE47E15A54A3504133333353425755413333337352A350415C8FC2954257554148E17A7451A3504100000010435755417B14AED74FA35041AE47E1CA445755415C8FC2C54EA35041C3F5289C4657554148E17A144EA350415C8FC21547575541333333634DA35041C3F5282C4757554148E17AF44CA3504185EB51C846575541B81E852B4DA350419A99995946575541A4703D0A4DA350419A99993945575541713D0AA74CA350413333332345575541B81E857B4BA3504148E17AD445575541713D0A674AA3504148E17A84475755410AD7A33049A35041000000B048575541A4703D8A48A35041000000B0485755417B14AEB747A35041295C8FD2475755419A99995947A35041000000D0465755418FC2F52847A350413333331346575541A4703D9A46A3504148E17AE445575541E17A14AE46A35041EC51B84E4657554148E17A3446A35041713D0AC7475755411F85EB8146A35041295C8F6248575541CDCCCC8C46A3504185EB51084957554152B81E5546A350415C8FC2E549575541B81E85DB45A350419A9999494A575541A4703DBA45A3504152B81EE54A5755411F85EBF145A3504185EB51484B575541F6285CAF45A350419A9999F94B575541E17A14FE44A35041666666B64C575541B81E852B44A350413D0AD7734C575541333333F344A3504114AE47E14D5755417B14AEE73BA3504152B81EE553575541E17A14EE3BA350419A99999954575541666666563CA35041D7A370ED5F5755419A9999693CA350419A999999635755416666666643A35041C3F528BC62575541D7A370DD46A35041E17A144E62575541333333934BA350415C8FC2A561575541CDCCCC8C4BA350415C8FC2955B57554152B81E854BA350419A9999D954575541333333834BA35041E17A144E545755410103000000010000000D00000048E17AB4E3A35041333333E33D5755413D0AD753E4A35041713D0A4734575541AE47E1BAE2A350411F85EB613457554166666686DDA35041AE47E1BA345755411F85EB01DCA3504152B81ED53457554185EB5178D8A35041CDCCCCFC34575541CDCCCC6CD8A3504148E17A6438575541713D0AF7D8A35041E17A140E48575541C3F528ACDAA350413D0AD7C347575541E17A145EE0A35041CDCCCCAC465755413D0AD743E1A3504114AE4771465755419A999909E3A35041C3F528FC4557554148E17AB4E3A35041333333E33D57554101030000000100000009000000EC51B82E95A350419A9999B90E575541CDCCCCDC91A350417B14AE970D575541C3F5281C90A350411F85EBF113575541A4703DCA8FA350416666661615575541EC51B83E92A3504166666696175755415C8FC28594A3504148E17A64195755410AD7A3B094A3504185EB51D8185755410AD7A33097A350413D0AD73310575541EC51B82E95A350419A9999B90E57554101030000000100000011000000295C8F32A6A35041000000008F57554148E17A84A4A350419A9999698C5755418FC2F5C8A2A350413D0AD7A388575541C3F5287CA0A3504114AE4731845755415C8FC2759DA35041B81E859B7E5755415C8FC2F59BA35041333333137C5755419A9999299AA35041333333137A5755411F85EBD197A35041000000307B57554148E17AF496A350418FC2F5987B575541EC51B87E9BA35041EC51B8BE825755419A99998999A3504148E17AB483575541333333039CA35041AE47E19A875755411F85EB61A0A35041333333538E5755417B14AE77A4A35041E17A141E94575541B81E85CBA7A350413D0AD793985755410AD7A3D0AAA350411F85EB2195575541295C8F32A6A35041000000008F5755410103000000010000000A0000001F85EBA1B6A350418FC2F5F812575541AE47E17AB7A3504114AE47811257554152B81E25B8A35041F6285CBF11575541000000D0B8A350411F85EBF10F575541713D0AD7B9A35041A4703D8A0C5755411F85EB91B7A350418FC2F5080E57554148E17AB4B6A3504114AE47910F57554133333313B6A3504185EB51B8105755417B14AE37B6A3504133333373125755411F85EBA1B6A350418FC2F5F812575541010300000001000000120000005C8FC255C2A350410AD7A3903357554114AE4701C5A35041F6285CDF345755410AD7A3A0C7A35041F6285C2F3457554148E17AD4C9A35041333333C333575541F6285C1FCDA3504114AE47A13357554148E17AB4D0A350413D0AD773335755417B14AE07D1A3504148E17AD432575541EC51B87EC9A35041333333F32D575541B81E85BBC6A350418FC2F5A824575541D7A370CDC3A35041333333F31C5755418FC2F568C0A3504114AE47E11C575541D7A3704DBFA350415C8FC235195755417B14AE27BDA350413D0AD7231957554148E17A74BAA35041D7A370CD1A5755419A999989B8A350415C8FC2B51C575541D7A3704DBDA35041F6285C9F275755413D0AD7C3C0A35041666666A62F5755415C8FC255C2A350410AD7A39033575541010300000001000000330000001F85EB917AA3504185EB5158275755416666667678A350418FC2F5782D575541CDCCCC5C77A35041295C8FD2305755416666667678A35041B81E854B305755411F85EB2179A35041CDCCCC7C30575541D7A3707D79A350410AD7A300315755417B14AE477AA35041AE47E16A31575541A4703DCA7DA35041EC51B8CE31575541333333737FA35041D7A3703D32575541295C8F0281A35041EC51B8CE31575541C3F528AC82A35041AE47E11A3057554114AE47D182A35041EC51B82E2F575541CDCCCCAC84A35041CDCCCCAC2A575541666666C684A350418FC2F51829575541295C8F9284A3504185EB51D828575541713D0A9785A35041A4703DBA27575541CDCCCC4C86A35041C3F5286C275755413333330387A35041C3F5286C2757554114AE475187A35041EC51B85E2757554185EB514888A350418FC2F57827575541333333B388A350410000001028575541B81E850B89A350417B14AED728575541713D0A6789A3504114AE47E1285755417B14AE278AA350410AD7A3D028575541666666668AA3504185EB517828575541000000908AA35041E17A143E285755415C8FC2658BA35041000000D027575541B81E853B8CA35041E17A146E27575541EC51B8BE8CA3504114AE472127575541666666E68CA35041E17A14DE26575541C3F5283C8DA350417B14AE97255755410AD7A3608DA350417B14AEC724575541E17A149E8DA350418FC2F5682457554185EB51288FA35041A4703DCA23575541A4703D0A90A350410AD7A34023575541C3F5287C91A350413333338322575541000000E091A35041F6285C4F225755413D0AD76392A35041EC51B84E20575541B81E852B94A350418FC2F5881A575541D7A3702D92A350418FC2F5D818575541E17A147E8FA350416666662616575541D7A3701D8EA3504114AE47111B575541A4703DDA8AA35041F6285C9F1A5755413D0AD7B388A350418FC2F5A822575541E17A145E84A350417B14AEB72257554152B81EF580A35041295C8FB2225755411F85EB917CA35041E17A14DE22575541EC51B87E7CA35041333333232357554185EB51187CA35041A4703D9A245755411F85EB217BA35041A4703D2A275755411F85EB917AA3504185EB515827575541
+</a>
+
+<b>
+0106000000010000000103000000010000001400000007242AD7CFA25041C6A764FCEF5655415DDF8981CFA250411C63C4A6EF56554156A864FECDA250416FFBB725EF5655413CB66BABCCA250415CFA40C6EE565541281670E5CBA25041BD4514EDEE56554189333373CAA2504127B81E65F95655418FC2F5F8C9A25041E5999919FC565541A2F528ECC7A25041F651B84E025755417DE17A74C5A250419947E13A095755417DE17AB4C3A25041AE47E11A0E5755415BC6327EC4A25041EAAF419A0E575541A7DA98FBC5A25041809C82980E57554111F26157C9A250417EB879560E5755415B3D0A07CBA25041B67A148E085755418CA3701DCDA25041831E85CB005755418051B83ECFA2504198F528ECF7565541345C8F42D0A250414514AE67F3565541EEC2D096D0A25041D68A3F23F15655417B14AE47D0A25041EC51B80EF156554107242AD7CFA25041C6A764FCEF565541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608372 - 201065
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -25 </desc>
+<a>
+01060000000100000001030000000100000006000000AE47E18A57A45041295C8F72825155415C8FC21557A4504148E17A7486515541C3F5284C58A4504185EB51288651554152B81E555BA4504114AE47216C5155418FC2F5F859A450419A9999796C515541AE47E18A57A45041295C8F7282515541
+</a>
+
+<b>
+0106000000010000000103000000010000000700000098F2E08A57A450417945927282515541D3E8324257A450412B0837EF84515541DC8C0C6E58A45041E4F1B1058551554152B81E555BA4504117AE47216C515541B0C2F5F859A45041BA9999796C515541C447E18A57A45041295C8F728251554198F2E08A57A450417945927282515541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608372 - 419287
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -25 </desc>
+<a>
+01060000000100000001030000000100000006000000AE47E18A57A45041295C8F72825155415C8FC21557A4504148E17A7486515541C3F5284C58A4504185EB51288651554152B81E555BA4504114AE47216C5155418FC2F5F859A450419A9999796C515541AE47E18A57A45041295C8F7282515541
+</a>
+
+<b>
+0106000000010000000103000000010000000700000098F2E08A57A450417945927282515541D3E8324257A450412B0837EF84515541DC8C0C6E58A45041E4F1B1058551554152B81E555BA4504117AE47216C515541B0C2F5F859A45041BA9999796C515541C447E18A57A45041295C8F728251554198F2E08A57A450417945927282515541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>200533 - 1095564
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -158 </desc>
+<a>
+0106000000010000000103000000010000000600000014AE47F178195141333333E3C33B54415C8FC2155619514114AE47D1C93B544148E17A9430195141295C8F32D03B5441EC694947341951414EC008CDDA3B5441449C567F78195141188CFCD6CE3B544114AE47F178195141333333E3C33B5441
+</a>
+
+<b>
+0106000000010000000103000000010000000600000071A836D977195141E459BB9DE03B54410AD7A31078195141C3F528ECDA3B544114AE47F178195141333333E3C33B544154503B89311951414DD5EC08D03B5441423F46A73A195141E56E6359EB3B544171A836D977195141E459BB9DE03B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>200533 - 3217832
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -158 </desc>
+<a>
+0106000000010000000103000000010000000600000014AE47F178195141333333E3C33B54415C8FC2155619514114AE47D1C93B544148E17A9430195141295C8F32D03B5441EC694947341951414EC008CDDA3B5441449C567F78195141188CFCD6CE3B544114AE47F178195141333333E3C33B5441
+</a>
+
+<b>
+0106000000010000000103000000010000000600000071A836D977195141E459BB9DE03B54410AD7A31078195141C3F528ECDA3B544114AE47F178195141333333E3C33B544154503B89311951414DD5EC08D03B5441423F46A73A195141E56E6359EB3B544171A836D977195141E459BB9DE03B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>636082 - 181114
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+010600000001000000010300000002000000460000008FC2F5B8DAFD5041F6285C1FDDBE5441AE47E14ADCFD50411F85EB71DFBE5441D7A370ADE1FD5041666666D6D7BE54410AD7A3D0E9FD504100000040D1BE5441EC51B84EF1FD5041EC51B84ECCBE54416666666602FE5041C3F5283CD9BE5441AE47E19A05FE50413D0AD753E0BE5441295C8FF210FE50410AD7A300E0BE5441666666361AFE504100000040DEBE5441295C8F621AFE5041E17A143EDDBE54415C8FC2A50EFE5041713D0AD7D6BE5441E17A145E08FE5041C3F5282CD1BE5441D7A3700D04FE5041E17A141ECFBE54410AD7A31002FE5041E17A149ECDBE5441295C8F3201FE5041713D0AA7CCBE544114AE47A100FE50415C8FC205CCBE54416666663600FE50417B14AEF7C8BE54413D0AD73302FE504166666626BABE544114AE473102FE50418FC2F528B8BE5441F6285C2F02FE5041A4703D4AB7BE54413333338301FE50418FC2F5B8B4BE54411F85EBD1FFFD50413D0AD713B0BE5441EC51B85EFEFD5041EC51B8CEADBE5441EC51B89EFBFD5041B81E85BBAABE54419A999919F9FD5041EC51B82EAFBE5441333333E3FAFD50410AD7A380B5BE544166666616FAFD5041713D0A97BBBE54415C8FC205F8FD50418FC2F528C0BE54415C8FC2C5F4FD50413D0AD773C3BE54411F85EB01F0FD5041D7A370ADBBBE54419A999909EFFD504185EB5118BABE5441666666B6E8FD5041EC51B80EB2BE5441000000D0E2FD50418FC2F5A8ACBE544185EB5118DDFD5041713D0AE7AABE544152B81EE5D7FD504185EB5108A6BE54411F85EBA1D6FD504185EB5138A9BE54415C8FC295D8FD504185EB51E8ADBE54417B14AE57DAFD5041E17A142EB3BE54415C8FC245DDFD50413D0AD703BABE54413D0AD713DDFD504185EB5118BFBE5441C3F5280CD6FD504185EB5178C8BE5441000000C0D1FD5041E17A14BECDBE544100000010CDFD50411F85EBD1D2BE5441E17A149EC6FD5041E17A14AED8BE54417B14AEC7BFFD5041E17A14EEDEBE544100000070BDFD5041E17A145EDDBE544166666696BCFD50410AD7A300D8BE5441A4703D4AB3FD504100000000DBBE5441E17A14BEB2FD5041E17A143EDEBE5441F6285CDFB8FD5041AE47E15ADFBE544148E17AF4B7FD5041333333A3E4BE544148E17A04B7FD50411F85EB11EABE54411F85EB11B6FD50413D0AD773EFBE544152B81ED5B2FD5041295C8F32F6BE544185EB51E8ADFD5041E17A148EF4BE5441AE47E1AAACFD50418FC2F508F8BE544152B81EE5AAFD504148E17AD4FBBE54415C8FC2D5A8FD5041C3F5289CFFBE5441D7A3708DA5FD5041CDCCCC9C04BF54413D0AD71397FD5041D7A370BD18BF54410AD7A3C094FD5041D7A370FD1BBF54415C8FC25596FD5041CDCCCCEC1CBF5441CDCCCC2CB3FD504148E17AC408BF5441C3F528CCBCFD5041EC51B8FE01BF5441F6285C3FCBFD5041F6285C8FF5BE5441E17A142EC8FD5041C3F5287CF1BE5441A4703DCAC7FD504185EB51F8EDBE5441E17A144ECBFD5041C3F528ACE9BE54411F85EB61D0FD5041A4703DEAE7BE54418FC2F5B8DAFD5041F6285C1FDDBE54411000000000000000D8FD5041A4703DFADCBE5441A4703D6AD7FD5041E17A14AED8BE54411F85EBC1D9FD5041E17A14FED3BE54411F85EB71DEFD5041A4703D7AD0BE5441A4703D5AE2FD504185EB5198CBBE5441E17A14DEE5FD5041000000B0C7BE54411F85EB61E9FD5041E17A14CEC2BE54413D0AD7B3ECFD5041000000C0BCBE54415C8FC205F0FD5041C3F5287CBFBE54411F85EB31F1FD50411F85EBC1C4BE54413D0AD763F1FD504166666646C8BE5441E17A141EECFD504166666666CBBE544100000010E6FD5041E17A14DED0BE5441C3F5286CDFFD504185EB5188D6BE54418FC2F5B8DAFD5041F6285C1FDDBE544100000000D8FD5041A4703DFADCBE5441
+</a>
+
+<b>
+0106000000010000000103000000010000002F000000846B5CFEEEFD50419BBD090ABABE54415F284AFBEEFD5041D9982206BABE5441DC1AC5FAEEFD504127857905BABE544176FF35F7EEFD5041E3BAF300BABE54414CD886F6EEFD50417A271500BABE544168B922F6EEFD5041FCEC95FFB9BE5441EA10AEF3EEFD5041CA0E77FCB9BE5441A99BF4E7EEFD5041B8F390EDB9BE54413F078EBAEEFD5041228CDFB3B9BE54419C478F89EEFD504150D69C75B9BE5441E7D1A280EEFD50418CDB456AB9BE5441BC4BD87EEEFD50410C30FF67B9BE5441EB1CE2D1EDFD5041A2A4348CB8BE544131BB029FEDFD5041F62A8F4BB8BE544170762D29EDFD50417F9FD2B5B7BE54415736BBA4ECFD5041CA38840DB7BE5441A76CA0E9E9FD504191EA2095B3BE5441666666B6E8FD5041EC51B80EB2BE5441000000D0E2FD50418FC2F5A8ACBE5441F4015A2DE1FD50415D8624FBABBE544150D42503DFFD50413C5F1C8AAEBE5441A1A6F1D8DCFD50413333338EADBE5441D325CC41DCFD504186D91568AABE5441797291F5D5FD504153A5B584A3BE5441AAD2DAD4DDFD5041AFC2FBC5B8BE54410ED18FA6DCFD5041C772A0B5BCBE544136506A0FDCFD5041AF778140C0BE5441DC51B53DDDFD5041F17A179DC2BE5441B2493E56D7FD5041D97FF827C6BE54418ACA63EDD7FD504122DB607CCABE5441671ABFFDD3FD504133333374CCBE5441FCC33734D3FD5041961257BCD3BE5441D48FD750CCFD5041EA6DBF10D8BE544115DEE732C7FD5041F9F17A04DBBE5441A32F8E71C4FD5041BFB0C294E9BE5441043B9BB5CCFD50415CD19E4CE2BE5441FE974E38D2FD5041F17A1783E1BE5441A2C58262D4FD5041977C62B1E2BE54414F1FA088D7FD5041D9CA7293DDBE5441797291F5D5FD5041349D3E69DBBE5441E4C818BFD6FD50417E173847D7BE544159000FFFDFFD50416C0AE0D4CDBE54419B03A55BE2FD5041545A3BE5C9BE5441CB63EE3AEAFD5041C1CF5338C2BE5441316C0170EAFD5041CFBFDB69BFBE54413D0AD7B3ECFD5041000000C0BCBE5441846B5CFEEEFD50419BBD090ABABE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>636082 - 391506
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+010600000001000000010300000002000000460000008FC2F5B8DAFD5041F6285C1FDDBE5441AE47E14ADCFD50411F85EB71DFBE5441D7A370ADE1FD5041666666D6D7BE54410AD7A3D0E9FD504100000040D1BE5441EC51B84EF1FD5041EC51B84ECCBE54416666666602FE5041C3F5283CD9BE5441AE47E19A05FE50413D0AD753E0BE5441295C8FF210FE50410AD7A300E0BE5441666666361AFE504100000040DEBE5441295C8F621AFE5041E17A143EDDBE54415C8FC2A50EFE5041713D0AD7D6BE5441E17A145E08FE5041C3F5282CD1BE5441D7A3700D04FE5041E17A141ECFBE54410AD7A31002FE5041E17A149ECDBE5441295C8F3201FE5041713D0AA7CCBE544114AE47A100FE50415C8FC205CCBE54416666663600FE50417B14AEF7C8BE54413D0AD73302FE504166666626BABE544114AE473102FE50418FC2F528B8BE5441F6285C2F02FE5041A4703D4AB7BE54413333338301FE50418FC2F5B8B4BE54411F85EBD1FFFD50413D0AD713B0BE5441EC51B85EFEFD5041EC51B8CEADBE5441EC51B89EFBFD5041B81E85BBAABE54419A999919F9FD5041EC51B82EAFBE5441333333E3FAFD50410AD7A380B5BE544166666616FAFD5041713D0A97BBBE54415C8FC205F8FD50418FC2F528C0BE54415C8FC2C5F4FD50413D0AD773C3BE54411F85EB01F0FD5041D7A370ADBBBE54419A999909EFFD504185EB5118BABE5441666666B6E8FD5041EC51B80EB2BE5441000000D0E2FD50418FC2F5A8ACBE544185EB5118DDFD5041713D0AE7AABE544152B81EE5D7FD504185EB5108A6BE54411F85EBA1D6FD504185EB5138A9BE54415C8FC295D8FD504185EB51E8ADBE54417B14AE57DAFD5041E17A142EB3BE54415C8FC245DDFD50413D0AD703BABE54413D0AD713DDFD504185EB5118BFBE5441C3F5280CD6FD504185EB5178C8BE5441000000C0D1FD5041E17A14BECDBE544100000010CDFD50411F85EBD1D2BE5441E17A149EC6FD5041E17A14AED8BE54417B14AEC7BFFD5041E17A14EEDEBE544100000070BDFD5041E17A145EDDBE544166666696BCFD50410AD7A300D8BE5441A4703D4AB3FD504100000000DBBE5441E17A14BEB2FD5041E17A143EDEBE5441F6285CDFB8FD5041AE47E15ADFBE544148E17AF4B7FD5041333333A3E4BE544148E17A04B7FD50411F85EB11EABE54411F85EB11B6FD50413D0AD773EFBE544152B81ED5B2FD5041295C8F32F6BE544185EB51E8ADFD5041E17A148EF4BE5441AE47E1AAACFD50418FC2F508F8BE544152B81EE5AAFD504148E17AD4FBBE54415C8FC2D5A8FD5041C3F5289CFFBE5441D7A3708DA5FD5041CDCCCC9C04BF54413D0AD71397FD5041D7A370BD18BF54410AD7A3C094FD5041D7A370FD1BBF54415C8FC25596FD5041CDCCCCEC1CBF5441CDCCCC2CB3FD504148E17AC408BF5441C3F528CCBCFD5041EC51B8FE01BF5441F6285C3FCBFD5041F6285C8FF5BE5441E17A142EC8FD5041C3F5287CF1BE5441A4703DCAC7FD504185EB51F8EDBE5441E17A144ECBFD5041C3F528ACE9BE54411F85EB61D0FD5041A4703DEAE7BE54418FC2F5B8DAFD5041F6285C1FDDBE54411000000000000000D8FD5041A4703DFADCBE5441A4703D6AD7FD5041E17A14AED8BE54411F85EBC1D9FD5041E17A14FED3BE54411F85EB71DEFD5041A4703D7AD0BE5441A4703D5AE2FD504185EB5198CBBE5441E17A14DEE5FD5041000000B0C7BE54411F85EB61E9FD5041E17A14CEC2BE54413D0AD7B3ECFD5041000000C0BCBE54415C8FC205F0FD5041C3F5287CBFBE54411F85EB31F1FD50411F85EBC1C4BE54413D0AD763F1FD504166666646C8BE5441E17A141EECFD504166666666CBBE544100000010E6FD5041E17A14DED0BE5441C3F5286CDFFD504185EB5188D6BE54418FC2F5B8DAFD5041F6285C1FDDBE544100000000D8FD5041A4703DFADCBE5441
+</a>
+
+<b>
+0106000000010000000103000000010000002F000000846B5CFEEEFD50419BBD090ABABE54415F284AFBEEFD5041D9982206BABE5441DC1AC5FAEEFD504127857905BABE544176FF35F7EEFD5041E3BAF300BABE54414CD886F6EEFD50417A271500BABE544168B922F6EEFD5041FCEC95FFB9BE5441EA10AEF3EEFD5041CA0E77FCB9BE5441A99BF4E7EEFD5041B8F390EDB9BE54413F078EBAEEFD5041228CDFB3B9BE54419C478F89EEFD504150D69C75B9BE5441E7D1A280EEFD50418CDB456AB9BE5441BC4BD87EEEFD50410C30FF67B9BE5441EB1CE2D1EDFD5041A2A4348CB8BE544131BB029FEDFD5041F62A8F4BB8BE544170762D29EDFD50417F9FD2B5B7BE54415736BBA4ECFD5041CA38840DB7BE5441A76CA0E9E9FD504191EA2095B3BE5441666666B6E8FD5041EC51B80EB2BE5441000000D0E2FD50418FC2F5A8ACBE5441F4015A2DE1FD50415D8624FBABBE544150D42503DFFD50413C5F1C8AAEBE5441A1A6F1D8DCFD50413333338EADBE5441D325CC41DCFD504186D91568AABE5441797291F5D5FD504153A5B584A3BE5441AAD2DAD4DDFD5041AFC2FBC5B8BE54410ED18FA6DCFD5041C772A0B5BCBE544136506A0FDCFD5041AF778140C0BE5441DC51B53DDDFD5041F17A179DC2BE5441B2493E56D7FD5041D97FF827C6BE54418ACA63EDD7FD504122DB607CCABE5441671ABFFDD3FD504133333374CCBE5441FCC33734D3FD5041961257BCD3BE5441D48FD750CCFD5041EA6DBF10D8BE544115DEE732C7FD5041F9F17A04DBBE5441A32F8E71C4FD5041BFB0C294E9BE5441043B9BB5CCFD50415CD19E4CE2BE5441FE974E38D2FD5041F17A1783E1BE5441A2C58262D4FD5041977C62B1E2BE54414F1FA088D7FD5041D9CA7293DDBE5441797291F5D5FD5041349D3E69DBBE5441E4C818BFD6FD50417E173847D7BE544159000FFFDFFD50416C0AE0D4CDBE54419B03A55BE2FD5041545A3BE5C9BE5441CB63EE3AEAFD5041C1CF5338C2BE5441316C0170EAFD5041CFBFDB69BFBE54413D0AD7B3ECFD5041000000C0BCBE5441846B5CFEEEFD50419BBD090ABABE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>614437 - 3075842
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+010600000003000000010300000001000000180000005C8FC275C7DC5041E17A148E9C275441B81E85CBC7DC5041A4703DCA9D275441D7A3707DC8DC5041EC51B8AE9E275441C3F5280CCADC504114AE47619F275441F6285CEFCBDC5041AE47E10AA027544133333383CFDC50410AD7A390A12754410AD7A390D1DC5041000000A0A22754410AD7A340D3DC5041C3F5287CA3275441D7A370ADD4DC504152B81EA5A42754410AD7A370D5DC5041666666D6A5275441C3F5285CD8DC504166666676A5275441B81E850BE3DC50419A9999A9A5275441713D0A47E3DC5041B81E85DB8A275441B81E854BE3DC5041295C8FD28727544166666616D9DC5041AE47E1BA862754411F85EBF1D3DC504152B81E558627544166666616D0DC50419A999909862754417B14AE47CCDC50410AD7A3B08527544148E17AF4C9DC5041E17A147E85275441E17A14DEC8DC5041B81E854B85275441F6285C2FC7DC5041666666E684275441AE47E1DAC6DC50418FC2F5E8852754419A999929C6DC5041EC51B8FE882754415C8FC275C7DC5041E17A148E9C27544101030000000100000028000000D7A3704DD1DC50413D0AD7730D285441713D0A07D5DC50415C8FC2351028544185EB5148D9DC504114AE47A112285441AE47E1CADADC50417B14AEE711285441A4703D0ADEDC5041B81E859B11285441713D0A07E0DC50411F85EB310E285441F6285CBFE1DC5041F6285CCF0828544185EB5188E2DC50413333337304285441AE47E1DAE4DC50413D0AD733EF2754419A9999A9E5DC5041AE47E18AE82754410AD7A310E6DC504114AE4781E4275441AE47E12AE6DC50417B14AE07E22754411F85EB91E6DC50410AD7A3D0DA275441AE47E12AE7DC5041E17A145ECF27544114AE47A1E7DC5041AE47E17ACD27544166666646E8DC5041B81E853BCB275441E17A140EE9DC5041E17A143ECB275441AE47E1AAEDDC5041E17A149EB92754417B14AE97F1DC5041EC51B83EA8275441E17A14AEF1DC5041D7A370ADA7275441D7A3705DE8DC50415C8FC295A6275441F6285C4FE4DC504133333383A62754417B14AEF7DFDC504166666666A62754410AD7A3B0DBDC5041F6285C4FA627544152B81E25D8DC50418FC2F538A62754418FC2F5C8D4DC50417B14AEA7A6275441CDCCCCBCD4DC5041D7A3702DA7275441E17A148ECCDC5041AE47E1DAFF275441295C8FE2B3DC504148E17A54FC275441D7A370DDB1DC504185EB5108072854411F85EBA1B3DC5041CDCCCC5C07285441295C8F52B8DC504148E17A14082854418FC2F5F8BBDC50418FC2F5D80928544185EB5168BDDC5041AE47E13A0B2854415C8FC2F5BDDC50418FC2F5380C2854413D0AD763C0DC50418FC2F5980E2854418FC2F5C8C8DC50419A99997910285441B81E859BCADC50410AD7A3600E2854410AD7A340CEDC50419A9999C90A285441D7A3704DD1DC50413D0AD7730D2854410103000000010000002A0000009A9999E9C3DC5041AE47E13A83275441295C8F72C9DC5041CDCCCC9C84275441F6285CFFCADC5041295C8FD284275441C3F5283CD6DC50413D0AD7B385275441AE47E15AE3DC50415C8FC2F5862754419A999979E3DC5041713D0A8786275441CDCCCC6CE4DC504148E17A247F275441E17A148EE4DC5041295C8F227E275441713D0A07E8DC5041E17A14AE64275441CDCCCC5CD0DC504185EB51E8662754410AD7A320D1DC5041D7A370ED6D27544114AE4721CEDC5041B81E85AB702754417B14AE57CFDC504114AE47C17127544148E17AD4D1DC5041A4703DCA79275441C3F5284CD0DC5041F6285CCF7A275441F6285CAFCDDC504114AE47C1712754415C8FC2B5C8DC5041EC51B85E7427544185EB5148C9DC5041C3F5289C6D275441D7A3701DC7DC50417B14AEC76C27544100000090C7DC5041D7A370BD67275441E17A14EEC2DC5041CDCCCC2C6827544114AE472190DC504152B81EF56C275441B81E856B89DC5041A4703D2A6F2754411F85EBF186DC50413D0AD713702754411F85EB7185DC5041A4703DAA702754419A9999A984DC50413D0AD7937127544185EB518884DC5041AE47E13A722754410AD7A36088DC504152B81E3573275441EC51B85E8DDC50419A999919752754418FC2F5689ADC5041B81E85CB7927544133333363A4DC50410AD7A3F07C27544114AE47E1A9DC5041333333B37E275441A4703D5AACDC504148E17A547F275441AE47E1BAAFDC5041295C8F228027544166666686B3DC5041295C8FC2802754411F85EBB1B6DC5041B81E854B8127544166666676B9DC50419A9999C9812754411F85EB01BCDC5041000000308227544185EB5148BEDC504152B81E7582275441AE47E19AC0DC5041E17A14AE82275441CDCCCC4CC2DC5041B81E85DB822754419A9999E9C3DC5041AE47E13A83275441
+</a>
+
+<b>
+0106000000010000000103000000010000002900000049DAC7B4D4DC5041BF211EA8A6275441FBCFE8ECCEDC504112484BCEE627544107C44F8FCCDC5041586288CDFF275441EAEE48E3B3DC504156659554FC275441B32E5E28B2DC504103FB547B05285441EB2680FAB1DC5041D6E8BE0D0728544102920A94B5DC5041BA4F01A90728544102310E45B8DC50411DFC69120828544144201FACB9DC5041DF27D1BB08285441CC353365BBDC5041FD61689109285441A7B7E78DBCDC50410DB874680A285441CD73486CBDDC50411847FE270B2854415C8FC2F5BDDC50418FC2F5380C2854413D0AD763C0DC50418FC2F5980E2854418FC2F5C8C8DC50419A999979102854410AD7A340CEDC50419A9999C90A28544164AE1083D0DC5041A89385B40E2854416213B493D3DC5041F608917211285441D07DCF88D6DC5041E4E2483312285441D6F51639D9DC50419CE58425122854410F89B65FDBDC5041C4ED38FC112854411201FE0FDEDC5041B500DD9B11285441EC51B8EEDEDC5041D7A3701D10285441144A7519E0DC5041E49341F80D2854417B357B5EE1DC5041E152ABFE092854418C3AE1FCE1DC5041A7EF86D2072854413AE69CA7E3DC5041F19C9945FA2754410274C4E9E5DC5041DC8D9152E62754416053F48EE6DC50413E82B36DDC275441DAF8F1BBE6DC5041537A85FAD52754419B034B31E7DC5041AE62DFFDCE275441E7A5676AE8DC5041334AFB3BCB275441DED0B323E9DC504184E8B638CB27544157241236E9DC50416DF544A5CA27544187673AD2EADC504157055C7EC42754411D4FA6DBEDDC5041614F38C6B8275441895AB6A9F1DC50419612BBC8A7275441D229E6FBE7DC5041DB1B0494A62754410997D928E0DC5041582F4A63A62754410E240B9BD8DC5041E9E3DE3BA627544149DAC7B4D4DC5041BF211EA8A6275441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>614437 - 5260909
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+010600000003000000010300000001000000180000005C8FC275C7DC5041E17A148E9C275441B81E85CBC7DC5041A4703DCA9D275441D7A3707DC8DC5041EC51B8AE9E275441C3F5280CCADC504114AE47619F275441F6285CEFCBDC5041AE47E10AA027544133333383CFDC50410AD7A390A12754410AD7A390D1DC5041000000A0A22754410AD7A340D3DC5041C3F5287CA3275441D7A370ADD4DC504152B81EA5A42754410AD7A370D5DC5041666666D6A5275441C3F5285CD8DC504166666676A5275441B81E850BE3DC50419A9999A9A5275441713D0A47E3DC5041B81E85DB8A275441B81E854BE3DC5041295C8FD28727544166666616D9DC5041AE47E1BA862754411F85EBF1D3DC504152B81E558627544166666616D0DC50419A999909862754417B14AE47CCDC50410AD7A3B08527544148E17AF4C9DC5041E17A147E85275441E17A14DEC8DC5041B81E854B85275441F6285C2FC7DC5041666666E684275441AE47E1DAC6DC50418FC2F5E8852754419A999929C6DC5041EC51B8FE882754415C8FC275C7DC5041E17A148E9C27544101030000000100000028000000D7A3704DD1DC50413D0AD7730D285441713D0A07D5DC50415C8FC2351028544185EB5148D9DC504114AE47A112285441AE47E1CADADC50417B14AEE711285441A4703D0ADEDC5041B81E859B11285441713D0A07E0DC50411F85EB310E285441F6285CBFE1DC5041F6285CCF0828544185EB5188E2DC50413333337304285441AE47E1DAE4DC50413D0AD733EF2754419A9999A9E5DC5041AE47E18AE82754410AD7A310E6DC504114AE4781E4275441AE47E12AE6DC50417B14AE07E22754411F85EB91E6DC50410AD7A3D0DA275441AE47E12AE7DC5041E17A145ECF27544114AE47A1E7DC5041AE47E17ACD27544166666646E8DC5041B81E853BCB275441E17A140EE9DC5041E17A143ECB275441AE47E1AAEDDC5041E17A149EB92754417B14AE97F1DC5041EC51B83EA8275441E17A14AEF1DC5041D7A370ADA7275441D7A3705DE8DC50415C8FC295A6275441F6285C4FE4DC504133333383A62754417B14AEF7DFDC504166666666A62754410AD7A3B0DBDC5041F6285C4FA627544152B81E25D8DC50418FC2F538A62754418FC2F5C8D4DC50417B14AEA7A6275441CDCCCCBCD4DC5041D7A3702DA7275441E17A148ECCDC5041AE47E1DAFF275441295C8FE2B3DC504148E17A54FC275441D7A370DDB1DC504185EB5108072854411F85EBA1B3DC5041CDCCCC5C07285441295C8F52B8DC504148E17A14082854418FC2F5F8BBDC50418FC2F5D80928544185EB5168BDDC5041AE47E13A0B2854415C8FC2F5BDDC50418FC2F5380C2854413D0AD763C0DC50418FC2F5980E2854418FC2F5C8C8DC50419A99997910285441B81E859BCADC50410AD7A3600E2854410AD7A340CEDC50419A9999C90A285441D7A3704DD1DC50413D0AD7730D2854410103000000010000002A0000009A9999E9C3DC5041AE47E13A83275441295C8F72C9DC5041CDCCCC9C84275441F6285CFFCADC5041295C8FD284275441C3F5283CD6DC50413D0AD7B385275441AE47E15AE3DC50415C8FC2F5862754419A999979E3DC5041713D0A8786275441CDCCCC6CE4DC504148E17A247F275441E17A148EE4DC5041295C8F227E275441713D0A07E8DC5041E17A14AE64275441CDCCCC5CD0DC504185EB51E8662754410AD7A320D1DC5041D7A370ED6D27544114AE4721CEDC5041B81E85AB702754417B14AE57CFDC504114AE47C17127544148E17AD4D1DC5041A4703DCA79275441C3F5284CD0DC5041F6285CCF7A275441F6285CAFCDDC504114AE47C1712754415C8FC2B5C8DC5041EC51B85E7427544185EB5148C9DC5041C3F5289C6D275441D7A3701DC7DC50417B14AEC76C27544100000090C7DC5041D7A370BD67275441E17A14EEC2DC5041CDCCCC2C6827544114AE472190DC504152B81EF56C275441B81E856B89DC5041A4703D2A6F2754411F85EBF186DC50413D0AD713702754411F85EB7185DC5041A4703DAA702754419A9999A984DC50413D0AD7937127544185EB518884DC5041AE47E13A722754410AD7A36088DC504152B81E3573275441EC51B85E8DDC50419A999919752754418FC2F5689ADC5041B81E85CB7927544133333363A4DC50410AD7A3F07C27544114AE47E1A9DC5041333333B37E275441A4703D5AACDC504148E17A547F275441AE47E1BAAFDC5041295C8F228027544166666686B3DC5041295C8FC2802754411F85EBB1B6DC5041B81E854B8127544166666676B9DC50419A9999C9812754411F85EB01BCDC5041000000308227544185EB5148BEDC504152B81E7582275441AE47E19AC0DC5041E17A14AE82275441CDCCCC4CC2DC5041B81E85DB822754419A9999E9C3DC5041AE47E13A83275441
+</a>
+
+<b>
+0106000000010000000103000000010000002900000049DAC7B4D4DC5041BF211EA8A6275441FBCFE8ECCEDC504112484BCEE627544107C44F8FCCDC5041586288CDFF275441EAEE48E3B3DC504156659554FC275441B32E5E28B2DC504103FB547B05285441EB2680FAB1DC5041D6E8BE0D0728544102920A94B5DC5041BA4F01A90728544102310E45B8DC50411DFC69120828544144201FACB9DC5041DF27D1BB08285441CC353365BBDC5041FD61689109285441A7B7E78DBCDC50410DB874680A285441CD73486CBDDC50411847FE270B2854415C8FC2F5BDDC50418FC2F5380C2854413D0AD763C0DC50418FC2F5980E2854418FC2F5C8C8DC50419A999979102854410AD7A340CEDC50419A9999C90A28544164AE1083D0DC5041A89385B40E2854416213B493D3DC5041F608917211285441D07DCF88D6DC5041E4E2483312285441D6F51639D9DC50419CE58425122854410F89B65FDBDC5041C4ED38FC112854411201FE0FDEDC5041B500DD9B11285441EC51B8EEDEDC5041D7A3701D10285441144A7519E0DC5041E49341F80D2854417B357B5EE1DC5041E152ABFE092854418C3AE1FCE1DC5041A7EF86D2072854413AE69CA7E3DC5041F19C9945FA2754410274C4E9E5DC5041DC8D9152E62754416053F48EE6DC50413E82B36DDC275441DAF8F1BBE6DC5041537A85FAD52754419B034B31E7DC5041AE62DFFDCE275441E7A5676AE8DC5041334AFB3BCB275441DED0B323E9DC504184E8B638CB27544157241236E9DC50416DF544A5CA27544187673AD2EADC504157055C7EC42754411D4FA6DBEDDC5041614F38C6B8275441895AB6A9F1DC50419612BBC8A7275441D229E6FBE7DC5041DB1B0494A62754410997D928E0DC5041582F4A63A62754410E240B9BD8DC5041E9E3DE3BA627544149DAC7B4D4DC5041BF211EA8A6275441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>411592 - 291471
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000030000006E00000085EB51D899A15041A4703D3A9D565541295C8F028AA15041CDCCCC8C85565541CDCCCCEC8EA150415C8FC2E583565541666666B69DA150410AD7A3A098565541B81E855B9EA15041000000509956554166666686A0A15041C3F5286C985655418FC2F568A3A1504114AE47B1965655411C62379BB0A1504196412CF58E56554141CB6600A6A15041DF2301537E5655411CC2FE62A3A15041040D16EC7F565541AED68F22A1A150414D1F4D047D565541EC51B83E9CA15041A4703DFA7E565541333333839AA15041F6285C8F7B565541EC51B87EA6A15041EC51B82E75565541EC51B8AEF1A15041D7A3701D4956554133333313F5A150410AD7A3F04D56554185EB51D8F7A15041295C8F72525655419A999949EAA15041000000505E565541713D0A37DEA150413333332368565541D7A370FDDEA15041D7A370CD6B565541E17A14CEDFA1504152B81EA56F56554185EB5118E1A15041D7A370BD75565541AE47E13AE8A15041666666866E56554114AE47B1ECA150417B14AED769565541000000B0F1A15041713D0A97645655415C8FC215FCA15041B81E858B59565541A4703D7AFDA15041333333635B565541CDCCCC4CF4A1504152B81E2567565541E17A145EEDA15041A4703D7A6F56554133333383E2A15041000000707C56554148E17AF4E3A15041EC51B83E83565541000000E0EDA15041D7A3703D765655410AD7A3B0F2A15041713D0A37705655415C8FC2A5F8A150417B14AE1769565541713D0A97FDA15041D7A3702D63565541333333D3FEA15041713D0AF75F565541D7A3704DFEA15041E17A149E57565541D7A3703DFFA15041CDCCCC3C53565541EC51B81E01A25041B81E85BB5056554152B81E7504A2504152B81E554E565541B81E85DB06A2504148E17A244C56554114AE47B107A25041333333F3495655418FC2F508F8A15041333333131B5655417B14AE37F5A150410AD7A3B01B565541C3F528ACE7A15041713D0AA71E56554152B81E55E7A150417B14AE371F565541AE47E1EAE3A15041AE47E1BA17565541295C8FB2DDA15041F6285C3F18565541000000D0D9A15041D7A3703D1856554185EB5128D5A15041EC51B81E19565541C6B5C2B5D7A150412192B45A1E565541A62E35AFBDA1504140D846A22B565541AE47E11AB8A15041713D0A672E565541D7A3709D95A150419A9999D93F565541C3F5280C95A15041E17A146E3A56554148E17AD494A15041C3F5284C395655413D0AD7F394A1504114AE4711335655419A9999B992A150410AD7A350345655413333331386A15041C3F5282C3B5655411F85EB6166A150413D0AD7734E5655410AD7A36063A150410000008050565541708DE00743A150416282FB3066565541708DE00743A1504163F9F68968565541F0BF598D46A15041514BDB666D565541CFB60B045CA1504198683CFE605655411F85EBA161A15041333333235E565541C3F528FC6AA150419A9999C95856554185EB516878A15041B81E85AB51565541CDCCCCAC8BA1504185EB519847565541713D0A8795A150411F85EB91425655417B14AE7795A150418FC2F558435655419A99994995A15041CDCCCCBC4556554148E17A748DA15041E17A146E49565541EC51B8CE7DA15041B81E856B51565541295C8FF26FA15041E17A148E58565541F6285C1F62A1504148E17A446056554114AE478162A15041CDCCCCBC61565541EC51B8DE62A1504100000010635655410000002063A150415C8FC265645655411F85EBE163A15041295C8FE266565541F6285C6F66A150413D0AD78370565541A4703DCA92A15041AE47E16A625655411F85EB3194A150411F85EBF161565541D7A370BD93A15041A4703D6A5E5655410000004093A15041C3F528FC5B5655416666665693A150415C8FC2355B5655410AD7A3E093A15041713D0A975656554152B81E7594A1504148E17A3451565541F6285C9FA6A15041333333F34756554148E17AA4DEA150417B14AED72B56554114AE4711E0A15041713D0AA72E565541C3F5286CE1A150413333335331565541E17A14EEE2A15041C3F528CC335655418FC2F578E6A15041713D0AA739565541000000B0BAA1504185EB5148525655418FC2F558B8A150411F85EB014F565541CDCCCCAC93A15041A4703DBA64565541E17A148E94A15041713D0A1768565541295C8F2295A1504114AE47C16A565541CDCCCCAC95A15041E17A14CE6C56554148E17A8473A150410AD7A3F076565541B81E851B78A1504148E17A447E565541E17A148E7CA15041F6285CDF835655419A9999497EA15041295C8F92895655410000007080A150418FC2F5A88856554185EB51888BA1504114AE47D19A56554185EB514892A1504100000090A556554114AE471196A1504152B81E35A15655413D0AD77399A1504114AE47919D56554185EB51D899A15041A4703D3A9D56554105000000000000A0EDA15041F6285C1F435655413D0AD7C397A150416666666675565541000000A096A150417B14AE6770565541C3F5281CEBA1504152B81EA53F565541000000A0EDA15041F6285C1F4356554109000000713D0AA7BCA150415C8FC235385655413D0AD743A7A150413D0AD7C3425655415C8FC2D594A150411F85EBC14B5655413D0AD7E394A15041666666064B5655415C8FC21595A150419A999969485655410AD7A34095A1504114AE473146565541CDCCCCCCA6A15041F6285CDF3D5655417B14AE47BAA1504152B81E4534565541713D0AA7BCA150415C8FC23538565541
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000004A94AEF2EBA150410385BDCD40565541C3F5281CEBA1504152B81EA53F565541000000A096A150417B14AE6770565541A0790E9397A1504175ACB11274565541754AD558A3A15041FB85A8526D565541183ABE4FADA15041CB515760675655417E0DD2EFBBA15041BD46DE045F565541902AF1A2C7A150419738B4C75756554111C1FC6FDBA15041F28157894C565541356F09E4ECA1504193AA4C83425655414A94AEF2EBA150410385BDCD40565541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>411592 - 432241
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+0106000000010000000103000000030000006E00000085EB51D899A15041A4703D3A9D565541295C8F028AA15041CDCCCC8C85565541CDCCCCEC8EA150415C8FC2E583565541666666B69DA150410AD7A3A098565541B81E855B9EA15041000000509956554166666686A0A15041C3F5286C985655418FC2F568A3A1504114AE47B1965655411C62379BB0A1504196412CF58E56554141CB6600A6A15041DF2301537E5655411CC2FE62A3A15041040D16EC7F565541AED68F22A1A150414D1F4D047D565541EC51B83E9CA15041A4703DFA7E565541333333839AA15041F6285C8F7B565541EC51B87EA6A15041EC51B82E75565541EC51B8AEF1A15041D7A3701D4956554133333313F5A150410AD7A3F04D56554185EB51D8F7A15041295C8F72525655419A999949EAA15041000000505E565541713D0A37DEA150413333332368565541D7A370FDDEA15041D7A370CD6B565541E17A14CEDFA1504152B81EA56F56554185EB5118E1A15041D7A370BD75565541AE47E13AE8A15041666666866E56554114AE47B1ECA150417B14AED769565541000000B0F1A15041713D0A97645655415C8FC215FCA15041B81E858B59565541A4703D7AFDA15041333333635B565541CDCCCC4CF4A1504152B81E2567565541E17A145EEDA15041A4703D7A6F56554133333383E2A15041000000707C56554148E17AF4E3A15041EC51B83E83565541000000E0EDA15041D7A3703D765655410AD7A3B0F2A15041713D0A37705655415C8FC2A5F8A150417B14AE1769565541713D0A97FDA15041D7A3702D63565541333333D3FEA15041713D0AF75F565541D7A3704DFEA15041E17A149E57565541D7A3703DFFA15041CDCCCC3C53565541EC51B81E01A25041B81E85BB5056554152B81E7504A2504152B81E554E565541B81E85DB06A2504148E17A244C56554114AE47B107A25041333333F3495655418FC2F508F8A15041333333131B5655417B14AE37F5A150410AD7A3B01B565541C3F528ACE7A15041713D0AA71E56554152B81E55E7A150417B14AE371F565541AE47E1EAE3A15041AE47E1BA17565541295C8FB2DDA15041F6285C3F18565541000000D0D9A15041D7A3703D1856554185EB5128D5A15041EC51B81E19565541C6B5C2B5D7A150412192B45A1E565541A62E35AFBDA1504140D846A22B565541AE47E11AB8A15041713D0A672E565541D7A3709D95A150419A9999D93F565541C3F5280C95A15041E17A146E3A56554148E17AD494A15041C3F5284C395655413D0AD7F394A1504114AE4711335655419A9999B992A150410AD7A350345655413333331386A15041C3F5282C3B5655411F85EB6166A150413D0AD7734E5655410AD7A36063A150410000008050565541708DE00743A150416282FB3066565541708DE00743A1504163F9F68968565541F0BF598D46A15041514BDB666D565541CFB60B045CA1504198683CFE605655411F85EBA161A15041333333235E565541C3F528FC6AA150419A9999C95856554185EB516878A15041B81E85AB51565541CDCCCCAC8BA1504185EB519847565541713D0A8795A150411F85EB91425655417B14AE7795A150418FC2F558435655419A99994995A15041CDCCCCBC4556554148E17A748DA15041E17A146E49565541EC51B8CE7DA15041B81E856B51565541295C8FF26FA15041E17A148E58565541F6285C1F62A1504148E17A446056554114AE478162A15041CDCCCCBC61565541EC51B8DE62A1504100000010635655410000002063A150415C8FC265645655411F85EBE163A15041295C8FE266565541F6285C6F66A150413D0AD78370565541A4703DCA92A15041AE47E16A625655411F85EB3194A150411F85EBF161565541D7A370BD93A15041A4703D6A5E5655410000004093A15041C3F528FC5B5655416666665693A150415C8FC2355B5655410AD7A3E093A15041713D0A975656554152B81E7594A1504148E17A3451565541F6285C9FA6A15041333333F34756554148E17AA4DEA150417B14AED72B56554114AE4711E0A15041713D0AA72E565541C3F5286CE1A150413333335331565541E17A14EEE2A15041C3F528CC335655418FC2F578E6A15041713D0AA739565541000000B0BAA1504185EB5148525655418FC2F558B8A150411F85EB014F565541CDCCCCAC93A15041A4703DBA64565541E17A148E94A15041713D0A1768565541295C8F2295A1504114AE47C16A565541CDCCCCAC95A15041E17A14CE6C56554148E17A8473A150410AD7A3F076565541B81E851B78A1504148E17A447E565541E17A148E7CA15041F6285CDF835655419A9999497EA15041295C8F92895655410000007080A150418FC2F5A88856554185EB51888BA1504114AE47D19A56554185EB514892A1504100000090A556554114AE471196A1504152B81E35A15655413D0AD77399A1504114AE47919D56554185EB51D899A15041A4703D3A9D56554105000000000000A0EDA15041F6285C1F435655413D0AD7C397A150416666666675565541000000A096A150417B14AE6770565541C3F5281CEBA1504152B81EA53F565541000000A0EDA15041F6285C1F4356554109000000713D0AA7BCA150415C8FC235385655413D0AD743A7A150413D0AD7C3425655415C8FC2D594A150411F85EBC14B5655413D0AD7E394A15041666666064B5655415C8FC21595A150419A999969485655410AD7A34095A1504114AE473146565541CDCCCCCCA6A15041F6285CDF3D5655417B14AE47BAA1504152B81E4534565541713D0AA7BCA150415C8FC23538565541
+</a>
+
+<b>
+01060000000100000001030000000100000010000000BF4BAE47BAA1504119141F45345655419EBDCCCCA6A15041228C5DDF3D5655417FBDA34095A15041DB004931465655419E927C3E95A150414107D24D46565541B114D33C95A150413B62D96346565541043FC31595A150414444986948565541F08956F394A15041E616C4364A5655413D0AD7E394A15041666666064B56554164A0C2D594A150416BA2EAC14B565541E8AEBC4FA0A15041D69B6628465655413D0AD743A7A150413D0AD7C3425655412A0717A9B1A150411DCE7AA23D565541A5BE09A7BCA150413A42C235385655417A330B09BCA150418558602F37565541E883E48CBBA15041C0FB326136565541BF4BAE47BAA1504119141F4534565541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>538333 - 91693
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+010600000001000000010300000001000000170000005D31CC661C5751411858392C1C6754413DE307EA1B5751411C2028391A67544156ABF6F61957514161C6B8DC14675441B0E94CF4175751412A32B6220F6754411F17F43C1457514172087079046754414BF595D31057514129B54527FB66544143C147800C575141988B617EFC66544146F17033075751414AB18287FD665441890C289202575141B8603CA0FE6654415B55E8390657514179155C8E0867544110FD1B130C575141F623EBD817675441858573ED0C5751415F48CBAC196754412CAB94F60D575141351C65991C675441D1E527540E575141FF8F4A1F1E67544114AE47D10F575141E17A141E1E675441A4703D0A1157514114AE47911D6754415006458812575141836B6A4B1C675441B92A255C14575141E0825E0A1A6754412428A3F115575141B222AAA3186754417A36D03B19575141E90D384F1967544168201DB21A575141550BB6E41A675441FC453EBB1B5751416A2E55831D6754415D31CC661C5751411858392C1C675441
+</a>
+
+<b>
+010600000001000000010300000001000000310000006D201DB21A575141550BB6E41A6754411EBE10121B5751413F8B69D71B6754413CCFC8B61B575141C609BE0F1D6754412BC49D201C575141463296B81C675441DB884A641C57514115B632221C675441C964A5601C575141D0259E131C67544196AD965A1C575141FB4863FB1B6754412514CD591C57514155E33CF81B675441D85A65C51A5751410E2969141767544150CC55B61A5751410F61FEEA16675441794D1D991A5751414704A39A16675441A3D7361C1A5751412B40294315675441A1636A001A5751413E01B7F61467544112358F061A575141D5004C3A156754410BDADE741557514179EEF94F086754415F6B675514575141ED1F95BF046754411E17F43C145751417108707904675441A9BA6AFA115751413007CB4CFE6654414AF595D310575141E53EDE36FB66544133558BE00F575141E8B79472FB6654413FC147800C575141968B617EFC665441E5466E3108575141D75FE155FD66544164A8501A05575141287FB906FE665441840C289202575141B9603CA0FE6654419069AD0005575141BDF26A3B0567544129B70AA2075751418EFAF53B0C6754414FA9962E08575141AF8B6EAB0D67544160229EAE0957514184158297116754414B4C21C50B57514146FEC9CF16675441BAFBDADD0C575141A897D05E19675441898573ED0C5751415E48CBAC196754412BCF8D050D5751417645D9F019675441B2499F5A0D575141CCF784C51A675441EC342D060E575141B72F96B81C675441676FC0630E5751412206B20F1E67544114AE47D10F575141E17A141E1E675441A4703D0A1157514114AE47911D67544161755EB5115751411F634FFF1C675441808A17B1135751416DB755DD1A675441BD2A255C14575141E2825E0A1A6754419872D7E91457514173B9058D19675441CB8AD9C215575141A922AAA318675441249760E915575141ABB6F8AA186754412328A3F115575141B422AAA31867544161E80BBF18575141A1706E20196754419FAC372C195751411F849F3F1967544161B8633A195751414FCEED4E196754417936D03B19575141EE0D384F196754416D201DB21A575141550BB6E41A675441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>538333 - 293741
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+010600000001000000010300000001000000170000005D31CC661C5751411858392C1C6754413DE307EA1B5751411C2028391A67544156ABF6F61957514161C6B8DC14675441B0E94CF4175751412A32B6220F6754411F17F43C1457514172087079046754414BF595D31057514129B54527FB66544143C147800C575141988B617EFC66544146F17033075751414AB18287FD665441890C289202575141B8603CA0FE6654415B55E8390657514179155C8E0867544110FD1B130C575141F623EBD817675441858573ED0C5751415F48CBAC196754412CAB94F60D575141351C65991C675441D1E527540E575141FF8F4A1F1E67544114AE47D10F575141E17A141E1E675441A4703D0A1157514114AE47911D6754415006458812575141836B6A4B1C675441B92A255C14575141E0825E0A1A6754412428A3F115575141B222AAA3186754417A36D03B19575141E90D384F1967544168201DB21A575141550BB6E41A675441FC453EBB1B5751416A2E55831D6754415D31CC661C5751411858392C1C675441
+</a>
+
+<b>
+010600000001000000010300000001000000310000006D201DB21A575141550BB6E41A6754411EBE10121B5751413F8B69D71B6754413CCFC8B61B575141C609BE0F1D6754412BC49D201C575141463296B81C675441DB884A641C57514115B632221C675441C964A5601C575141D0259E131C67544196AD965A1C575141FB4863FB1B6754412514CD591C57514155E33CF81B675441D85A65C51A5751410E2969141767544150CC55B61A5751410F61FEEA16675441794D1D991A5751414704A39A16675441A3D7361C1A5751412B40294315675441A1636A001A5751413E01B7F61467544112358F061A575141D5004C3A156754410BDADE741557514179EEF94F086754415F6B675514575141ED1F95BF046754411E17F43C145751417108707904675441A9BA6AFA115751413007CB4CFE6654414AF595D310575141E53EDE36FB66544133558BE00F575141E8B79472FB6654413FC147800C575141968B617EFC665441E5466E3108575141D75FE155FD66544164A8501A05575141287FB906FE665441840C289202575141B9603CA0FE6654419069AD0005575141BDF26A3B0567544129B70AA2075751418EFAF53B0C6754414FA9962E08575141AF8B6EAB0D67544160229EAE0957514184158297116754414B4C21C50B57514146FEC9CF16675441BAFBDADD0C575141A897D05E19675441898573ED0C5751415E48CBAC196754412BCF8D050D5751417645D9F019675441B2499F5A0D575141CCF784C51A675441EC342D060E575141B72F96B81C675441676FC0630E5751412206B20F1E67544114AE47D10F575141E17A141E1E675441A4703D0A1157514114AE47911D67544161755EB5115751411F634FFF1C675441808A17B1135751416DB755DD1A675441BD2A255C14575141E2825E0A1A6754419872D7E91457514173B9058D19675441CB8AD9C215575141A922AAA318675441249760E915575141ABB6F8AA186754412328A3F115575141B422AAA31867544161E80BBF18575141A1706E20196754419FAC372C195751411F849F3F1967544161B8633A195751414FCEED4E196754417936D03B19575141EE0D384F196754416D201DB21A575141550BB6E41A675441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>499110 - 226669
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000006000000010300000002000000CD0000000AD7A33081065141B81E85BBAF315441CDCCCCAC890651411F85EB01B3315441EC51B81E96065141B81E859BB831544114AE47F1A40651415C8FC225C0315441F6285C7FB0065141B81E852BC631544152B81EB5B5065141A4703DDAC1315441713D0AE7B60651415C8FC225C1315441295C8FF2B70651417B14AE17C03154417B14AE67BA06514166666606BE315441D7A370EDC0065141B81E85DBB831544100000010C40651410AD7A330B631544185EB5188CC065141E17A146EB0315441295C8FE2D0065141B81E85FBAB315441713D0AE7D10651418FC2F5C8AA315441B81E856BD70651418FC2F5F8A53154411F85EBE1D7065141713D0A97A0315441D7A370DDD6065141B81E852B9B31544148E17A04D6065141CDCCCC9C97315441B81E857BD6065141EC51B82E9431544148E17AB4D406514152B81E458F315441E17A145ED406514185EB51188C3154410AD7A3D0D30651419A9999D98931544185EB51E8D206514148E17A4485315441295C8FC2CD06514185EB5128833154418FC2F578CB0651410AD7A34081315441B81E85ABC5065141F6285C5F7E31544148E17A44C1065141AE47E10A7C31544166666626BF065141CDCCCC9C78315441295C8F12C20651415C8FC2D576315441D7A3707DC3065141A4703D8A76315441A4703DAAC3065141EC51B8CE7531544185EB51E8C30651419A99994975315441F6285C3FC4065141333333937431544185EB5128C40651410AD7A3D072315441713D0A97C3065141F6285CDF70315441295C8F02C306514114AE4771703154410AD7A320C1065141AE47E19A6F315441C3F5286CC0065141D7A3703D6F31544114AE47E1BF065141B81E85DB6E315441E17A149EBF0651411F85EB016E315441A4703D5ABF065141AE47E1FA6C3154415C8FC255BF065141000000106C315441AE47E17ABF0651418FC2F5786931544148E17A74BF065141A4703DFA67315441666666E6BE06514166666686653154410AD7A380BE0651419A9999296431544185EB51F8BD06514148E17AF46231544148E17AC4BD065141AE47E11A62315441C3F528ACBD065141295C8F7260315441C3F5288CBC065141A4703D7A5F315441C3F5284CBB065141C3F5288C5E3154417B14AE87BA0651415C8FC2255E31544185EB5158B90651413D0AD7335D315441EC51B8DEB70651410AD7A3405C315441A4703DBAB2065141F6285C3F5A3154417B14AEF7AE065141295C8F525831544148E17AF4A90651411F85EB6154315441295C8F22A70651413333335352315441EC51B8CEA10651413D0AD7434D315441000000709C06514185EB51484C3154418FC2F51898065141D7A3705D4A31544148E17A74950651413D0AD7534C3154415C8FC2E592065141A4703DFA4D3154415C8FC25590065141713D0A674F315441EC51B8DE8D0651416666668650315441F6285CAF8B065141EC51B8DE50315441C3F5289C8806514152B81EE550315441AE47E12A87065141F6285CAF50315441C3F528AC8706514152B81E4551315441EC51B8AE92065141333333D3593154413D0AD71399065141333333F35E315441666666D69E0651410AD7A39063315441666666C6A2065141D7A3709D663154418FC2F538A7065141666666166A31544148E17A54AB0651410AD7A3D06D315441F6285C9FB0065141EC51B8DE7331544166666616B606514152B81EA57A315441713D0A57B6065141D7A3705D7B31544166666636B60651411F85EB617C31544152B81ED5B506514148E17A047D315441295C8F32B5065141C3F5289C7D315441EC51B84EB40651419A9999497E31544166666646B2065141E17A144E7F31544114AE47B1AF0651413D0AD7B380315441E17A146EAC06514114AE47B182315441713D0A27A80651417B14AE878531544152B81E55A6065141295C8FE286315441E17A14AEA40651418FC2F56888315441000000C0A3065141D7A3708D89315441D7A3701DA30651417B14AEC78A3154415C8FC2A5A2065141E17A144E8C315441A4703D5AA20651417B14AE978E31544100000090A2065141A4703D0A93315441AE47E19AA20651413D0AD7739531544152B81E65A20651419A9999D9963154418FC2F518A20651417B14AEA797315441713D0AB7A1065141000000609831544148E17A14A1065141A4703D7A99315441EC51B88E9F065141B81E852B9B315441333333E39C0651419A9999499D31544152B81EC59A0651415C8FC2E59E3154418FC2F5589A0651418FC2F5789E3154419A9999699E065141CDCCCC6C9B31544166666626A00651410AD7A3D09931544148E17AF4A006514114AE47A1983154411F85EBC1A1065141F6285CEF9631544133333303A206514148E17A94953154417B14AED7A10651411F85EB21913154417B14AED7A1065141A4703DEA8D31544133333303A2065141EC51B86E8C315441A4703D5AA206514148E17A348B315441CDCCCCFCA2065141A4703DFA89315441000000E0A306514148E17A948831544152B81E05A50651413D0AD74387315441B81E85ABA60651418FC2F5E8853154417B14AEE7AA0651417B14AE078331544148E17A74B006514148E17AA47F315441E17A142EB4065141713D0AA77D3154417B14AE27B5065141E17A14CE7C315441E17A147EB506514152B81ED57B315441E17A145EB50651415C8FC2C57A31544185EB51C8B20651411F85EB417731544185EB5158AC065141D7A370AD6F315441713D0A57A90651415C8FC2956C3154418FC2F568A4065141CDCCCC9C68315441A4703DBAA206514133333323673154410AD7A39095065141A4703DCA5C315441333333138B0651410AD7A3E054315441AE47E14A850651419A99996950315441AE47E1BA83065141A4703D6A4F3154410AD7A3907F065141B81E85AB4D315441C3F528BC7A06514152B81EC54C31544152B81E757A0651419A9999294D3154413333330376065141CDCCCC9C4C315441B81E858B75065141A4703DEA4F315441F6285CAF7606514185EB516850315441AE47E19A76065141A4703D8A52315441A4703D8A72065141C3F5289C5131544148E17AD47206514185EB5188543154418FC2F5C8720651419A9999E9543154410AD7A3D076065141CDCCCCFC56315441713D0AB775065141713D0A8759315441A4703DBA72065141EC51B81E58315441713D0A97720651417B14AE9758315441F6285CFF71065141B81E85CB5A315441CDCCCC3C7106514185EB51185C3154419A99994970065141C3F5281C5D315441B81E85BB6E065141A4703D1A5E315441713D0AF76D06514152B81E255E315441666666366B065141AE47E18A5F315441EC51B81E68065141333333936131544152B81EB565065141A4703D5A633154417B14AE876206514185EB51A86631544148E17AA461065141295C8FE2673154417B14AED76306514148E17A9469315441666666666706514185EB51E86B3154418FC2F53869065141E17A144E6D315441295C8F826B065141B81E854B6F315441EC51B88E6E0651417B14AE37723154413D0AD753720651413D0AD723753154418FC2F538760651413D0AD7A377315441B81E853B740651411F85EB91783154418FC2F5D86B0651415C8FC2B571315441B81E85BB640651419A9999296C315441A4703D8A6006514185EB514869315441A4703D3A5F06514185EB51986A3154415C8FC2155E065141B81E85AB6C315441F6285C8F5C0651410AD7A3206F315441AE47E18A5B0651413D0AD73371315441CDCCCCBC5A0651411F85EB5173315441F6285C0F5A06514148E17A44753154410AD7A30059065141A4703DFA77315441EC51B84E57065141F6285C6F7A31544185EB51C8550651415C8FC2157C315441C3F5280C5406514114AE47917D315441F6285C2F52065141666666D67E315441D7A3707D500651411F85EB5180315441E17A144E4F06514114AE476181315441333333F34D065141295C8F128331544148E17A044D06514185EB517884315441CDCCCC6C4C0651410000004086315441295C8F824C065141AE47E19A87315441A4703D1A4D0651411F85EB4189315441B81E85AB4E065141B81E85AB8B315441E17A146E4F06514185EB51688D3154410AD7A3F04F0651418FC2F5F88E3154415C8FC2E54F065141AE47E1AA903154418FC2F5784F0651415C8FC205923154415C8FC2954E065141B81E856B9331544148E17AB44B065141AE47E11A973154415C8FC235510651415C8FC27598315441D7A3703D580651419A9999A99A315441CDCCCC8C5E0651417B14AEC79C315441B81E859B5F06514152B81EF59A315441E17A146E6106514148E17AB49A315441666666C6640651418FC2F5D89B3154410AD7A3E065065141000000809D31544185EB516865065141C3F5289C9E315441CDCCCC5C66065141000000109F3154419A9999696E065141F6285C2FA43154411F85EB11770651410AD7A310AA315441CDCCCC7C7B065141C3F5281CAD315441D7A370BD7E065141666666B6AE3154415C8FC27580065141CDCCCC5CAF3154410AD7A33081065141B81E85BBAF3154410B000000C3F5289C9806514148E17AE4A8315441A4703D6A99065141B81E852BAD315441B81E85AB99065141E17A141EAF3154419A999929990651417B14AE67B1315441666666E6950651418FC2F578B0315441B81E853B930651410AD7A3C0AF315441AE47E11A93065141E17A14EEAD315441E17A14DE93065141A4703D9AAB315441E17A147E96065141E17A144EAB315441C3F5284C97065141333333A3A8315441C3F5289C9806514148E17AE4A83154410103000000020000003C000000A4703DCA4B06514185EB51987C315441EC51B83E4E0651410AD7A3707D3154413333339350065141295C8FD27D315441666666A652065141CDCCCCBC7D31544152B81EB55306514152B81E257D3154415C8FC22555065141000000E07B3154411F85EBC1560651413D0AD7437A3154413333335358065141B81E853B783154411F85EB6159065141713D0AE775315441A4703D1A5A0651418FC2F5C8733154417B14AEC75A0651415C8FC2B571315441B81E85AB5B065141E17A14CE6F3154413D0AD7635C065141333333936E3154417B14AE475D065141CDCCCCEC6C315441C3F5286C5E065141A4703DFA6A315441B81E853B6006514114AE47D1673154415C8FC2F56206514185EB51D8643154417B14AEB7650651410AD7A3306231544114AE476168065141E17A143E60315441666666B66A065141F6285CCF5E315441B81E85BB6D065141D7A370ED5C3154418FC2F5186F0651419A9999E95B315441C3F5282C700651419A9999A95A3154417B14AE9770065141C3F5285C593154415C8FC20571065141C3F5286C57315441B81E859B71065141F6285C7F52315441F6285CFF6F065141C3F5288C55315441000000306C065141A4703DBA53315441C3F5284C6B065141713D0AF7523154417B14AE976A0651410AD7A3305231544152B81E6568065141713D0AF751315441F6285CEF66065141713D0AC7513154415C8FC2F5650651410AD7A370513154418FC2F5686506514114AE474150315441B81E850B66065141295C8F524F3154413333335365065141E17A144E4E31544148E17AE466065141D7A370BD4C31544114AE47D164065141713D0A074A3154417B14AE1764065141D7A3704D4A315441000000106306514114AE47A149315441CDCCCCAC60065141713D0A8746315441F6285CBF5E06514185EB51C84831544152B81E155D065141EC51B84E4B315441D7A3700D5C065141333333334D315441713D0A875706514152B81EE55131544148E17AA45106514152B81E15583154419A9999F94F065141C3F5283C5A315441B81E854B3C0651413D0AD7334C315441EC51B89E2D0651419A9999A95C31544152B81E65320651413D0AD7436031544185EB511835065141295C8F026331544148E17A6438065141B81E85DB66315441713D0A373B065141A4703D2A693154415C8FC285440651418FC2F518703154416666669649065141E17A146E723154418FC2F5884B065141D7A370ED743154413D0AD7934B06514114AE472177315441713D0A074B065141A4703D4A793154419A99990949065141295C8F527B315441A4703DCA4B06514185EB51987C31544105000000295C8F526A06514148E17AF4543154418FC2F5886A065141713D0A9755315441000000B069065141D7A370CD553154419A99997969065141AE47E12A55315441295C8F526A06514148E17AF4543154410103000000010000002200000085EB515860065141B81E850BA631544148E17AD460065141295C8FD2A4315441333333C35E065141000000C0A23154410AD7A3C06006514166666656A0315441D7A3705D5D065141666666B69D31544133333303570651417B14AE779B315441CDCCCCEC4906514185EB51C897315441A4703D2A44065141295C8F229E315441D7A3700D3D06514185EB51F8A53154419A9999A939065141F6285CEFA83154411F85EB71360651417B14AE17AB31544152B81E9534065141713D0A47B1315441AE47E17A330651418FC2F5B8B5315441A4703D5A330651413D0AD7F3B63154413D0AD7A33506514152B81EF5B9315441713D0AD73C065141295C8F12C13154419A9999093706514152B81E65D231544114AE47213A065141B81E850BD43154418FC2F5A83E065141F6285C3FD6315441D7A3709D43065141713D0A07D83154417B14AE7748065141E17A14EED83154415C8FC2A54A0651419A999909D4315441000000504D0651415C8FC2A5CE3154413333335350065141713D0A07C93154419A999999510651411F85EB71C63154410000001050065141333333C3C43154416666662651065141000000F0C1315441333333E35206514166666606C0315441666666D6530651419A9999E9C13154411F85EB3155065141A4703D2ABF3154418FC2F53858065141CDCCCCBCB8315441C3F528BC5B065141D7A3701DB23154415C8FC2655E0651417B14AED7AC31544185EB515860065141B81E850BA63154410103000000010000001D000000A4703D4A9406514152B81EF54B315441295C8FA2920651418FC2F5E8493154415C8FC20594065141C3F528FC47315441D7A3706D8E065141713D0A17443154411F85EB718706514152B81EF53D3154410AD7A3E084065141EC51B8DE3F3154415C8FC2E57E0651413D0AD793463154411F85EB417C065141CDCCCC0C493154411F85EB017A0651415C8FC2054B315441713D0AB7770651419A9999294B315441AE47E18A7A06514148E17AD44B315441295C8F927B065141C3F5282C4C3154411F85EB317D06514114AE47314C31544148E17AF4800651411F85EB714D315441EC51B8BE8206514148E17A344E31544148E17A348506514114AE47814F315441713D0A6786065141713D0A1750315441E17A147E8706514148E17A5450315441B81E85BB880651411F85EB5150315441EC51B89E890651410000005050315441B81E85BB8A065141D7A3704D503154417B14AE378C065141A4703D3A50315441D7A370DD8D065141CDCCCCBC4F3154418FC2F5F88E065141713D0A374F31544148E17A14900651410AD7A3904E3154418FC2F568910651413D0AD7A34D3154413D0AD7C392065141D7A370ED4C3154415C8FC2959306514185EB51584C315441A4703D4A9406514152B81EF54B315441010300000001000000210000009A9999594A06514133333353953154417B14AE474B0651418FC2F59896315441333333C34C065141C3F528DC9431544148E17A544E0651418FC2F5C892315441295C8F224F0651418FC2F578913154413D0AD7634F0651413D0AD733903154418FC2F5584F0651413D0AD7E38E31544114AE47E14E065141333333938D315441E17A14FE4D065141713D0AD78B315441E17A14CE4C065141F6285CEF89315441A4703DCA4B06514114AE47D18731544152B81EF54B0651419A9999098631544114AE47414C06514148E17AC48431544152B81E254D06514185EB5128833154419A9999494E0651417B14AEB781315441E17A146E4F0651417B14AE6780315441713D0A9751065141B81E85AB7E3154417B14AE174F0651419A9999497E3154415C8FC2454D065141D7A370DD7D315441AE47E1BA4A065141E17A14CE7C315441D7A370BD48065141AE47E1EA7B315441B81E850B470651411F85EBB17D31544100000090450651417B14AE67803154419A9999894606514152B81E458231544133333383470651410AD7A3E083315441EC51B8FE480651418FC2F538873154419A9999594A065141295C8FE286315441C3F528FC4A065141CDCCCC6C893154410AD7A3C048065141B81E853B8A3154413D0AD73349065141295C8FC28B31544114AE47A149065141A4703DEA8D315441F6285C6F4A065141F6285CFF923154419A9999594A06514133333353953154410103000000020000001F00000085EB51E8630651413D0AD793C73154410AD7A3C0640651417B14AEB7C13154419A999909640651415C8FC2F5BE315441C3F5289C6306514185EB5188BC3154410AD7A3C0630651411F85EBD1BA3154413D0AD7836406514133333303B9315441AE47E16A65065141666666C6B7315441F6285C8F66065141D7A3707DB6315441713D0A77670651413D0AD703B531544114AE47516B065141CDCCCC4CB53154418FC2F5687006514100000040B73154416666663677065141C3F5284CB93154418FC2F5687B065141CDCCCC9CBA315441E17A14BE7D0651415C8FC285B531544152B81EA57F0651415C8FC2A5B0315441F6285C5F7B065141A4703DAAAE315441F6285C6F78065141C3F5284CAD315441AE47E19A740651413D0AD7C3AB3154418FC2F56872065141E17A144EAB31544185EB51586E0651410AD7A370AB315441295C8FE26B06514185EB51A8AA315441EC51B84E690651410AD7A330A9315441B81E853B67065141D7A370FDA73154417B14AEB7630651417B14AE97A6315441295C8F82600651419A9999F9B231544152B81E755E0651410AD7A370BC315441AE47E1AA5A065141713D0AF7C7315441AE47E12A60065141AE47E12ACB315441CDCCCC1C60065141C3F528FCC731544152B81E85600651417B14AE57C731544185EB51E8630651413D0AD793C731544105000000713D0A776F0651411F85EB51B331544185EB51A86F06514152B81E35B2315441E17A149E700651415C8FC265B23154413333336370065141CDCCCC8CB3315441713D0A776F0651411F85EB51B3315441
+</a>
+
+<b>
+010600000001000000010300000001000000100000005C8FC27580065141CDCCCC5CAF315441EF2265A17C065141CF2B52ACAD315441CF1D7FEC790651414BB13A08AC3154413CC042E26F0651413D2F2E2FA5315441CDCCCC5C66065141000000109F3154411A06A44963065141A25ACA3CA2315441F8ED77EF65065141C6B56D01A5315441D7D54B9568065141D904FB18A931544164B075616A065141905A7A91AA315441B0B1098E6C065141122DDC58AC31544168C0890B70065141D63B5CD6AF3154410BB7DD2E76065141E4C9C11FB23154413C1D1F847D065141FBC63C04B63154418CCA99B27E0651414A173213B331544152B81EA57F0651415C8FC2A5B03154415C8FC27580065141CDCCCC5CAF315441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>499110 - 364997
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+010600000006000000010300000002000000CD0000000AD7A33081065141B81E85BBAF315441CDCCCCAC890651411F85EB01B3315441EC51B81E96065141B81E859BB831544114AE47F1A40651415C8FC225C0315441F6285C7FB0065141B81E852BC631544152B81EB5B5065141A4703DDAC1315441713D0AE7B60651415C8FC225C1315441295C8FF2B70651417B14AE17C03154417B14AE67BA06514166666606BE315441D7A370EDC0065141B81E85DBB831544100000010C40651410AD7A330B631544185EB5188CC065141E17A146EB0315441295C8FE2D0065141B81E85FBAB315441713D0AE7D10651418FC2F5C8AA315441B81E856BD70651418FC2F5F8A53154411F85EBE1D7065141713D0A97A0315441D7A370DDD6065141B81E852B9B31544148E17A04D6065141CDCCCC9C97315441B81E857BD6065141EC51B82E9431544148E17AB4D406514152B81E458F315441E17A145ED406514185EB51188C3154410AD7A3D0D30651419A9999D98931544185EB51E8D206514148E17A4485315441295C8FC2CD06514185EB5128833154418FC2F578CB0651410AD7A34081315441B81E85ABC5065141F6285C5F7E31544148E17A44C1065141AE47E10A7C31544166666626BF065141CDCCCC9C78315441295C8F12C20651415C8FC2D576315441D7A3707DC3065141A4703D8A76315441A4703DAAC3065141EC51B8CE7531544185EB51E8C30651419A99994975315441F6285C3FC4065141333333937431544185EB5128C40651410AD7A3D072315441713D0A97C3065141F6285CDF70315441295C8F02C306514114AE4771703154410AD7A320C1065141AE47E19A6F315441C3F5286CC0065141D7A3703D6F31544114AE47E1BF065141B81E85DB6E315441E17A149EBF0651411F85EB016E315441A4703D5ABF065141AE47E1FA6C3154415C8FC255BF065141000000106C315441AE47E17ABF0651418FC2F5786931544148E17A74BF065141A4703DFA67315441666666E6BE06514166666686653154410AD7A380BE0651419A9999296431544185EB51F8BD06514148E17AF46231544148E17AC4BD065141AE47E11A62315441C3F528ACBD065141295C8F7260315441C3F5288CBC065141A4703D7A5F315441C3F5284CBB065141C3F5288C5E3154417B14AE87BA0651415C8FC2255E31544185EB5158B90651413D0AD7335D315441EC51B8DEB70651410AD7A3405C315441A4703DBAB2065141F6285C3F5A3154417B14AEF7AE065141295C8F525831544148E17AF4A90651411F85EB6154315441295C8F22A70651413333335352315441EC51B8CEA10651413D0AD7434D315441000000709C06514185EB51484C3154418FC2F51898065141D7A3705D4A31544148E17A74950651413D0AD7534C3154415C8FC2E592065141A4703DFA4D3154415C8FC25590065141713D0A674F315441EC51B8DE8D0651416666668650315441F6285CAF8B065141EC51B8DE50315441C3F5289C8806514152B81EE550315441AE47E12A87065141F6285CAF50315441C3F528AC8706514152B81E4551315441EC51B8AE92065141333333D3593154413D0AD71399065141333333F35E315441666666D69E0651410AD7A39063315441666666C6A2065141D7A3709D663154418FC2F538A7065141666666166A31544148E17A54AB0651410AD7A3D06D315441F6285C9FB0065141EC51B8DE7331544166666616B606514152B81EA57A315441713D0A57B6065141D7A3705D7B31544166666636B60651411F85EB617C31544152B81ED5B506514148E17A047D315441295C8F32B5065141C3F5289C7D315441EC51B84EB40651419A9999497E31544166666646B2065141E17A144E7F31544114AE47B1AF0651413D0AD7B380315441E17A146EAC06514114AE47B182315441713D0A27A80651417B14AE878531544152B81E55A6065141295C8FE286315441E17A14AEA40651418FC2F56888315441000000C0A3065141D7A3708D89315441D7A3701DA30651417B14AEC78A3154415C8FC2A5A2065141E17A144E8C315441A4703D5AA20651417B14AE978E31544100000090A2065141A4703D0A93315441AE47E19AA20651413D0AD7739531544152B81E65A20651419A9999D9963154418FC2F518A20651417B14AEA797315441713D0AB7A1065141000000609831544148E17A14A1065141A4703D7A99315441EC51B88E9F065141B81E852B9B315441333333E39C0651419A9999499D31544152B81EC59A0651415C8FC2E59E3154418FC2F5589A0651418FC2F5789E3154419A9999699E065141CDCCCC6C9B31544166666626A00651410AD7A3D09931544148E17AF4A006514114AE47A1983154411F85EBC1A1065141F6285CEF9631544133333303A206514148E17A94953154417B14AED7A10651411F85EB21913154417B14AED7A1065141A4703DEA8D31544133333303A2065141EC51B86E8C315441A4703D5AA206514148E17A348B315441CDCCCCFCA2065141A4703DFA89315441000000E0A306514148E17A948831544152B81E05A50651413D0AD74387315441B81E85ABA60651418FC2F5E8853154417B14AEE7AA0651417B14AE078331544148E17A74B006514148E17AA47F315441E17A142EB4065141713D0AA77D3154417B14AE27B5065141E17A14CE7C315441E17A147EB506514152B81ED57B315441E17A145EB50651415C8FC2C57A31544185EB51C8B20651411F85EB417731544185EB5158AC065141D7A370AD6F315441713D0A57A90651415C8FC2956C3154418FC2F568A4065141CDCCCC9C68315441A4703DBAA206514133333323673154410AD7A39095065141A4703DCA5C315441333333138B0651410AD7A3E054315441AE47E14A850651419A99996950315441AE47E1BA83065141A4703D6A4F3154410AD7A3907F065141B81E85AB4D315441C3F528BC7A06514152B81EC54C31544152B81E757A0651419A9999294D3154413333330376065141CDCCCC9C4C315441B81E858B75065141A4703DEA4F315441F6285CAF7606514185EB516850315441AE47E19A76065141A4703D8A52315441A4703D8A72065141C3F5289C5131544148E17AD47206514185EB5188543154418FC2F5C8720651419A9999E9543154410AD7A3D076065141CDCCCCFC56315441713D0AB775065141713D0A8759315441A4703DBA72065141EC51B81E58315441713D0A97720651417B14AE9758315441F6285CFF71065141B81E85CB5A315441CDCCCC3C7106514185EB51185C3154419A99994970065141C3F5281C5D315441B81E85BB6E065141A4703D1A5E315441713D0AF76D06514152B81E255E315441666666366B065141AE47E18A5F315441EC51B81E68065141333333936131544152B81EB565065141A4703D5A633154417B14AE876206514185EB51A86631544148E17AA461065141295C8FE2673154417B14AED76306514148E17A9469315441666666666706514185EB51E86B3154418FC2F53869065141E17A144E6D315441295C8F826B065141B81E854B6F315441EC51B88E6E0651417B14AE37723154413D0AD753720651413D0AD723753154418FC2F538760651413D0AD7A377315441B81E853B740651411F85EB91783154418FC2F5D86B0651415C8FC2B571315441B81E85BB640651419A9999296C315441A4703D8A6006514185EB514869315441A4703D3A5F06514185EB51986A3154415C8FC2155E065141B81E85AB6C315441F6285C8F5C0651410AD7A3206F315441AE47E18A5B0651413D0AD73371315441CDCCCCBC5A0651411F85EB5173315441F6285C0F5A06514148E17A44753154410AD7A30059065141A4703DFA77315441EC51B84E57065141F6285C6F7A31544185EB51C8550651415C8FC2157C315441C3F5280C5406514114AE47917D315441F6285C2F52065141666666D67E315441D7A3707D500651411F85EB5180315441E17A144E4F06514114AE476181315441333333F34D065141295C8F128331544148E17A044D06514185EB517884315441CDCCCC6C4C0651410000004086315441295C8F824C065141AE47E19A87315441A4703D1A4D0651411F85EB4189315441B81E85AB4E065141B81E85AB8B315441E17A146E4F06514185EB51688D3154410AD7A3F04F0651418FC2F5F88E3154415C8FC2E54F065141AE47E1AA903154418FC2F5784F0651415C8FC205923154415C8FC2954E065141B81E856B9331544148E17AB44B065141AE47E11A973154415C8FC235510651415C8FC27598315441D7A3703D580651419A9999A99A315441CDCCCC8C5E0651417B14AEC79C315441B81E859B5F06514152B81EF59A315441E17A146E6106514148E17AB49A315441666666C6640651418FC2F5D89B3154410AD7A3E065065141000000809D31544185EB516865065141C3F5289C9E315441CDCCCC5C66065141000000109F3154419A9999696E065141F6285C2FA43154411F85EB11770651410AD7A310AA315441CDCCCC7C7B065141C3F5281CAD315441D7A370BD7E065141666666B6AE3154415C8FC27580065141CDCCCC5CAF3154410AD7A33081065141B81E85BBAF3154410B000000C3F5289C9806514148E17AE4A8315441A4703D6A99065141B81E852BAD315441B81E85AB99065141E17A141EAF3154419A999929990651417B14AE67B1315441666666E6950651418FC2F578B0315441B81E853B930651410AD7A3C0AF315441AE47E11A93065141E17A14EEAD315441E17A14DE93065141A4703D9AAB315441E17A147E96065141E17A144EAB315441C3F5284C97065141333333A3A8315441C3F5289C9806514148E17AE4A83154410103000000020000003C000000A4703DCA4B06514185EB51987C315441EC51B83E4E0651410AD7A3707D3154413333339350065141295C8FD27D315441666666A652065141CDCCCCBC7D31544152B81EB55306514152B81E257D3154415C8FC22555065141000000E07B3154411F85EBC1560651413D0AD7437A3154413333335358065141B81E853B783154411F85EB6159065141713D0AE775315441A4703D1A5A0651418FC2F5C8733154417B14AEC75A0651415C8FC2B571315441B81E85AB5B065141E17A14CE6F3154413D0AD7635C065141333333936E3154417B14AE475D065141CDCCCCEC6C315441C3F5286C5E065141A4703DFA6A315441B81E853B6006514114AE47D1673154415C8FC2F56206514185EB51D8643154417B14AEB7650651410AD7A3306231544114AE476168065141E17A143E60315441666666B66A065141F6285CCF5E315441B81E85BB6D065141D7A370ED5C3154418FC2F5186F0651419A9999E95B315441C3F5282C700651419A9999A95A3154417B14AE9770065141C3F5285C593154415C8FC20571065141C3F5286C57315441B81E859B71065141F6285C7F52315441F6285CFF6F065141C3F5288C55315441000000306C065141A4703DBA53315441C3F5284C6B065141713D0AF7523154417B14AE976A0651410AD7A3305231544152B81E6568065141713D0AF751315441F6285CEF66065141713D0AC7513154415C8FC2F5650651410AD7A370513154418FC2F5686506514114AE474150315441B81E850B66065141295C8F524F3154413333335365065141E17A144E4E31544148E17AE466065141D7A370BD4C31544114AE47D164065141713D0A074A3154417B14AE1764065141D7A3704D4A315441000000106306514114AE47A149315441CDCCCCAC60065141713D0A8746315441F6285CBF5E06514185EB51C84831544152B81E155D065141EC51B84E4B315441D7A3700D5C065141333333334D315441713D0A875706514152B81EE55131544148E17AA45106514152B81E15583154419A9999F94F065141C3F5283C5A315441B81E854B3C0651413D0AD7334C315441EC51B89E2D0651419A9999A95C31544152B81E65320651413D0AD7436031544185EB511835065141295C8F026331544148E17A6438065141B81E85DB66315441713D0A373B065141A4703D2A693154415C8FC285440651418FC2F518703154416666669649065141E17A146E723154418FC2F5884B065141D7A370ED743154413D0AD7934B06514114AE472177315441713D0A074B065141A4703D4A793154419A99990949065141295C8F527B315441A4703DCA4B06514185EB51987C31544105000000295C8F526A06514148E17AF4543154418FC2F5886A065141713D0A9755315441000000B069065141D7A370CD553154419A99997969065141AE47E12A55315441295C8F526A06514148E17AF4543154410103000000010000002200000085EB515860065141B81E850BA631544148E17AD460065141295C8FD2A4315441333333C35E065141000000C0A23154410AD7A3C06006514166666656A0315441D7A3705D5D065141666666B69D31544133333303570651417B14AE779B315441CDCCCCEC4906514185EB51C897315441A4703D2A44065141295C8F229E315441D7A3700D3D06514185EB51F8A53154419A9999A939065141F6285CEFA83154411F85EB71360651417B14AE17AB31544152B81E9534065141713D0A47B1315441AE47E17A330651418FC2F5B8B5315441A4703D5A330651413D0AD7F3B63154413D0AD7A33506514152B81EF5B9315441713D0AD73C065141295C8F12C13154419A9999093706514152B81E65D231544114AE47213A065141B81E850BD43154418FC2F5A83E065141F6285C3FD6315441D7A3709D43065141713D0A07D83154417B14AE7748065141E17A14EED83154415C8FC2A54A0651419A999909D4315441000000504D0651415C8FC2A5CE3154413333335350065141713D0A07C93154419A999999510651411F85EB71C63154410000001050065141333333C3C43154416666662651065141000000F0C1315441333333E35206514166666606C0315441666666D6530651419A9999E9C13154411F85EB3155065141A4703D2ABF3154418FC2F53858065141CDCCCCBCB8315441C3F528BC5B065141D7A3701DB23154415C8FC2655E0651417B14AED7AC31544185EB515860065141B81E850BA63154410103000000010000001D000000A4703D4A9406514152B81EF54B315441295C8FA2920651418FC2F5E8493154415C8FC20594065141C3F528FC47315441D7A3706D8E065141713D0A17443154411F85EB718706514152B81EF53D3154410AD7A3E084065141EC51B8DE3F3154415C8FC2E57E0651413D0AD793463154411F85EB417C065141CDCCCC0C493154411F85EB017A0651415C8FC2054B315441713D0AB7770651419A9999294B315441AE47E18A7A06514148E17AD44B315441295C8F927B065141C3F5282C4C3154411F85EB317D06514114AE47314C31544148E17AF4800651411F85EB714D315441EC51B8BE8206514148E17A344E31544148E17A348506514114AE47814F315441713D0A6786065141713D0A1750315441E17A147E8706514148E17A5450315441B81E85BB880651411F85EB5150315441EC51B89E890651410000005050315441B81E85BB8A065141D7A3704D503154417B14AE378C065141A4703D3A50315441D7A370DD8D065141CDCCCCBC4F3154418FC2F5F88E065141713D0A374F31544148E17A14900651410AD7A3904E3154418FC2F568910651413D0AD7A34D3154413D0AD7C392065141D7A370ED4C3154415C8FC2959306514185EB51584C315441A4703D4A9406514152B81EF54B315441010300000001000000210000009A9999594A06514133333353953154417B14AE474B0651418FC2F59896315441333333C34C065141C3F528DC9431544148E17A544E0651418FC2F5C892315441295C8F224F0651418FC2F578913154413D0AD7634F0651413D0AD733903154418FC2F5584F0651413D0AD7E38E31544114AE47E14E065141333333938D315441E17A14FE4D065141713D0AD78B315441E17A14CE4C065141F6285CEF89315441A4703DCA4B06514114AE47D18731544152B81EF54B0651419A9999098631544114AE47414C06514148E17AC48431544152B81E254D06514185EB5128833154419A9999494E0651417B14AEB781315441E17A146E4F0651417B14AE6780315441713D0A9751065141B81E85AB7E3154417B14AE174F0651419A9999497E3154415C8FC2454D065141D7A370DD7D315441AE47E1BA4A065141E17A14CE7C315441D7A370BD48065141AE47E1EA7B315441B81E850B470651411F85EBB17D31544100000090450651417B14AE67803154419A9999894606514152B81E458231544133333383470651410AD7A3E083315441EC51B8FE480651418FC2F538873154419A9999594A065141295C8FE286315441C3F528FC4A065141CDCCCC6C893154410AD7A3C048065141B81E853B8A3154413D0AD73349065141295C8FC28B31544114AE47A149065141A4703DEA8D315441F6285C6F4A065141F6285CFF923154419A9999594A06514133333353953154410103000000020000001F00000085EB51E8630651413D0AD793C73154410AD7A3C0640651417B14AEB7C13154419A999909640651415C8FC2F5BE315441C3F5289C6306514185EB5188BC3154410AD7A3C0630651411F85EBD1BA3154413D0AD7836406514133333303B9315441AE47E16A65065141666666C6B7315441F6285C8F66065141D7A3707DB6315441713D0A77670651413D0AD703B531544114AE47516B065141CDCCCC4CB53154418FC2F5687006514100000040B73154416666663677065141C3F5284CB93154418FC2F5687B065141CDCCCC9CBA315441E17A14BE7D0651415C8FC285B531544152B81EA57F0651415C8FC2A5B0315441F6285C5F7B065141A4703DAAAE315441F6285C6F78065141C3F5284CAD315441AE47E19A740651413D0AD7C3AB3154418FC2F56872065141E17A144EAB31544185EB51586E0651410AD7A370AB315441295C8FE26B06514185EB51A8AA315441EC51B84E690651410AD7A330A9315441B81E853B67065141D7A370FDA73154417B14AEB7630651417B14AE97A6315441295C8F82600651419A9999F9B231544152B81E755E0651410AD7A370BC315441AE47E1AA5A065141713D0AF7C7315441AE47E12A60065141AE47E12ACB315441CDCCCC1C60065141C3F528FCC731544152B81E85600651417B14AE57C731544185EB51E8630651413D0AD793C731544105000000713D0A776F0651411F85EB51B331544185EB51A86F06514152B81E35B2315441E17A149E700651415C8FC265B23154413333336370065141CDCCCC8CB3315441713D0A776F0651411F85EB51B3315441
+</a>
+
+<b>
+010600000001000000010300000001000000100000005C8FC27580065141CDCCCC5CAF315441EF2265A17C065141CF2B52ACAD315441CF1D7FEC790651414BB13A08AC3154413CC042E26F0651413D2F2E2FA5315441CDCCCC5C66065141000000109F3154411A06A44963065141A25ACA3CA2315441F8ED77EF65065141C6B56D01A5315441D7D54B9568065141D904FB18A931544164B075616A065141905A7A91AA315441B0B1098E6C065141122DDC58AC31544168C0890B70065141D63B5CD6AF3154410BB7DD2E76065141E4C9C11FB23154413C1D1F847D065141FBC63C04B63154418CCA99B27E0651414A173213B331544152B81EA57F0651415C8FC2A5B03154415C8FC27580065141CDCCCC5CAF315441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>615477 - 43640
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -715 </desc>
+<a>
+0106000000010000000103000000010000003C000000F6285C1F17FC50417B14AE4726F154418FC2F5A814FC5041295C8FA223F1544185EB512813FC50413333337322F15441C3F528DC11FC504152B81EE521F15441AE47E1AA10FC50413D0AD71321F1544114AE47C10BFC5041E17A145E24F154417B14AE0702FC5041EC51B88E27F1544114AE4721FEFB5041F6285C3F29F1544152B81EA5FAFB50411F85EBC12AF15441333333F3F9FB5041D7A370DD2FF1544152B81E35F6FB50410AD7A36035F15441E17A147EF3FB5041D7A3703D42F15441B81E85ABF9FB5041713D0AD744F15441EC51B83EFDFB50418FC2F55846F1544148E17A94FFFB5041000000204AF1544185EB51B8FFFB504114AE47914BF15441AE47E18A00FC50413D0AD70354F1544148E17A8400FC50410AD7A3905BF15441AE47E17A00FC5041000000705CF154413D0AD77300FC5041A4703D1A5DF154411F85EBF1FDFB5041D7A3705D5CF154418FC2F528FCFB5041E17A14FE5DF15441D7A3703DFBFB5041C3F528DC5DF1544148E17AA4F7FB5041E17A140E5BF154419A999919F4FB5041AE47E10A58F1544100000050F1FB504185EB513855F15441333333D3EFFB50410AD7A3A053F15441AE47E1CAECFB5041C3F5284C51F154418FC2F5D8EBFB5041666666E650F15441EC51B8DEE9FB5041000000B04DF1544114AE47F1E6FB5041713D0A474AF154413D0AD773E6FB504152B81EB549F1544152B81E35E5FB504185EB51C84CF1544114AE4791E2FB5041713D0AE753F15441C3F5281CE2FB50419A99996956F15441C3F5282CE2FB50410000001059F154415C8FC265E2FB5041CDCCCCBC5AF15441A4703D8AE2FB5041E17A146E5BF15441AE47E11AE4FB5041D7A370FD62F15441EC51B8CEE4FB50411F85EB6166F15441D7A3706DE5FB504152B81E7566F154417B14AE77F2FB5041713D0A0768F1544152B81EB500FC5041A4703DAA68F154417B14AE9700FC5041A4703D5A65F154419A99995911FC504148E17AB460F15441CDCCCCBC17FC5041A4703D5A59F154410AD7A3D01DFC5041C3F5286C54F15441E17A146E1EFC5041295C8F224AF15441F6285CAF1DFC5041D7A370AD43F15441F6285C2F1DFC50413D0AD71340F154417B14AE171DFC504114AE47913CF154415C8FC2C51CFC50417B14AE4737F154417B14AE171DFC504114AE475134F154413D0AD7A31DFC5041A4703D8A32F15441000000B01EFC504148E17A1430F1544185EB51181EFC5041AE47E17A2DF15441E17A142E1CFC50411F85EB912CF15441E17A14FE19FC5041AE47E14A2BF15441333333C318FC5041295C8F3229F15441F6285C1F17FC50417B14AE4726F15441
+</a>
+
+<b>
+0106000000010000000103000000010000004D0000000AD7A3D01DFC5041C3F5286C54F15441FF9502531AFC5041C52743945AF15441D4F136DB18FC5041D5B4E7215DF154411058392C17FC5041DF4F8D0F60F1544169A5F5A011FC5041E4A85C4F61F154413F8817A40EFC504154A1B6FB61F15441F09988F30CFC5041F1152F5D62F154411F5CC03208FC504147175E6F63F15441E436EDDF04FC5041AD90162F64F15441A0BCD7FA01FC5041165DBDF764F154418A93AE2501FC5041367EDB3265F1544152B81EB500FC5041A4703DAA68F154413D0AD76300FC50412DB29DBF69F15441B0D030A1FEFB5041DEE4297F69F15441A3223BCAFBFB5041506E311769F1544130FC0EDBF9FB50413F7C5FD068F15441437FAEE1F7FB50419FEB178868F154419490B837F5FB504125068F2668F154417B14AE77F2FB5041713D0A0768F154418D139A2FE8FB5041FE1924CA66F15441673F268EE6FB50419958E19766F154415A7CBA07E6FB50415136B28766F15441ABBDD69AE7FB5041951D80C86AF15441D1A8A6EBE8FB5041BF38F4AF6EF15441120054BCE9FB5041AD4B090171F1544180071081F4FB5041E8260E437FF15441DA2AE3FEF9FB5041B8DBAC1C86F1544177722CCCFBFB5041DFF38D1988F1544126E56BE701FC5041DF8BBB1090F1544183240D760FFC504129FA88A99AF15441AB7AF91118FC5041AE169380A5F1544133A846841BFC50413E1A6231AAF15441F481354C1DFC5041317F8257ACF154417B14AEC720FC50411F85EB11ABF1544148E17AB42AFC50413D0AD7B3A5F1544114AE472132FC504166666646A2F15441C3F528FC30FC50413D0AD7739FF15441713D0A5730FC50411F85EB719DF154415C8FC2A530FC50411F85EBE19AF154410000007030FC50415C8FC27599F154410000007030FC504114AE477197F154419A9999A930FC5041E17A141E96F15441713D0A1731FC504114AE471195F15441295C8FB231FC5041D7A370CD93F154413AEC305932FC50410A3844D892F15441EAB6FB0933FC50410B3B5C9C90F15441E17A14FE32FC50415C8FC2658DF154410000001033FC50416666668688F154416B40D4FC31FC50413D09953586F15441C976BE972DFC5041F853E3A583F15441BA490C0A2CFC50412FDD24BE7DF15441B29DEFF72CFC504179E926197CF15441E80E2FE22FFC50416F51704C79F154410000002030FC5041333333C378F154417B14AED730FC504185EB517876F154419C975A3D32FC504107BEF61D75F1544114D12F5532FC5041410E4DF174F154418EB040E233FC5041384B571372F15441370F6DB833FC50411236D61F72F154411356068633FC50414FEAE42E72F15441333333532DFC50418FC2F50874F15441A4703D1A2CFC5041713D0A176FF15441CDCCCC4C34FC5041C3F5281C6EF15441A08E318632FC50413037361867F1544178ED541232FC5041643EB84765F15441666666562FFC50419A9999F960F154412C81180B2FFC5041BA7FB22560F1544118C7E3872EFC50417FEFC6A95FF1544119E9547F2DFC50414F16548F5EF15441E3F91DC52CFC5041F6F7AB6E5DF154413C65F0CF2AFC50410C63995B5AF15441ED0F581529FC50417C2887A457F1544181081FA828FC504110E6FFF856F1544183C0CA5926FC50411F85EB5953F154415029345023FC5041843E96BE51F15441C3F5284C22FC504152B81E2552F154410AD7A3D01DFC5041C3F5286C54F15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>616482 - 51566
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000100000025000000A4703D5ACE055141F6285CFF484754415C8FC265D1055141D7A3702D4147544152B81E05D5055141713D0A673C47544114AE47A1D905514152B81E853947544100000040E4055141666666E635475441C3F5284CE705514166666616344754411F85EB41F1055141F6285C5F2A475441A4703DFAEC0551419A9999C9234754417B14AE57EA055141666666961F4754415C8FC245E9055141666666361C475441B81E851BE9055141295C8FE21447544148E17A94EA0551418FC2F50807475441CDCCCC9CE9055141B81E856B04475441713D0A97E8055141B81E858B02475441666666D6E4055141295C8F02014754413D0AD743DF055141F6285C9FFE4654410AD7A3C0B7055141B81E85FBEB465441E17A14FE99055141666666B63E47544148E17AC4970551411F85EB01464754411F85EB0197055141D7A3700D4947544148E17AC495055141AE47E1FA4F47544114AE47B194055141E17A149E594754413D0AD7D397055141A4703DFA58475441C3F528DC9A0551411F85EB01584754413D0AD7039D0551411F85EB515747544152B81E959F05514114AE47D1684754419A9999D9A1055141F6285C3F78475441EC51B8DEA3055141713D0AB77447544114AE4781A6055141E17A140E744754415C8FC295AD0551419A99995970475441B81E859BB2055141295C8FA26D475441AE47E16AB40551419A9999F96C475441B81E852BBB055141E17A141E6847544166666676BE055141A4703DFA654754419A999939C4055141C3F5281C5B475441B81E85ABC80551417B14AE7752475441A4703D5ACE055141F6285CFF48475441
+</a>
+
+<b>
+010600000001000000010300000001000000600000001553D43DF1055141F7FE10592A475441B0E6B500EB05514126A92E7930475441C542FF46E7055141F67A7819344754416FE74A63E405514186E468D135475441FD7D286BE20551412A5E368636475441A204FA68D9055141BD2A53A83947544157222CFED40551410BAF32703C475441C0A1F844D30551410D7CC4B53E47544191508F77D1055141D826FA154147544158AB8BBDCE0551419F335400484754417D0F972ECE055141B47C1A48494754410B7921D1C9055141702E5F8E50475441BF0F5D26C505514177EAD04F5947544166666676BE055141A4703DFA65475441ABDBEE80BB055141949490E667475441E56031A6B8055141D1F84DEE69475441D2F5249FB40551411CC000D46C47544152DE32FFB2055141B08B367E6D4754419CD74209AF0551412E52C7906F475441B8DDD748A9055141DE20B799724754417ACFB8AAA605514107AB64F873475441BF8E5C18A4055141352E9AA87447544135414D68A3055141CED0D71973475441B12B321F9C0551415ED0969D614754411B63F7149A0551410C72208C4F47544181D647F3A1055141DB172FF137475441D6CB25809C0551416C2A83BD37475441E17A14FE99055141666666B63E475441D80E8BFF98055141724EE4BC3D47544195DAD1869805514188286F273F47544121A4FE03980551414E0150B040475441E15CC284970551418637692E424754413B10B63D97055141780DD412434754415B4B1B14960551416E7BD31047475441D3EA526395055141C87BE96F494754419B8DB1A6940551414A90E6D04C4754416DEB1F4E940551418D06F6694E4754416D5BD82994055141DC2885114F475441325AAA1094055141960B7BA74F475441E323248493055141A47310FE524754419749B35F9305514137F781D454475441CD25E72C93055141E9772F78574754419F86E30293055141ED62CABC59475441B20C190093055141A6EE5BE359475441488B925393055141EC9227E559475441F6C88DA293055141F0015F895A475441208CF30194055141F63CB84F5B47544157C47416950551418A6C9F8E5D47544114D378E0950551419665A6325F4754411A31837B970551413EEA468962475441CAE0B98298055141BBE80A5C64475441D58B4C199A055141C0D70C27674754415DD1C5549B0551417488C850694754410CE83C399D0551410AB5C09B6C4754412C4B74339E0551419FD413506E475441B4EA429A9E055141A05CC12D6F4754415B1A58C99F0551416C0B47BB7147544176A84C88A0055141C1748E5973475441D59B1552A10551410B751A127547544104AF4E69A105514147AC394375475441D257EEC9A20551415A42751E7847544164CDFCE6A50551411B515DA477475441BB178643A8055141FDDCC9FD76475441EEC6E03AAB0551419A7A38F6754754410FF9F64FAC0551419C960B96754754412CB3F8F2AC055141DB4AE16175475441A53A3415AD055141C48B1B94754754418C163CB5AD0551419F42D53075475441715F28E8B00551417E188136734754416492AD2FB40551417EFB723671475441C01A6472B5055141DA31E884704754414D9BC6FEB80551415547AC0E6F47544145C9ADA4BB055141DEBB31096E475441CDB9E45AC0055141174B01D669475441193A3C93C205514159E65FBC66475441404F819DC5055141CE04F7AC614754413D98871DC8055141F7E41C605C475441D9BE9C74CC055141FAAFFD0854475441040FA8F4D00551417F690E654A475441A7F3D650D3055141E72D997E444754418BC03C29D4055141EEFE79EE42475441C5A0CF79D4055141D998C63142475441A535BD4BD5055141DF8366A240475441000901D6D7055141D2EE93553E4754414655B21DD90551417E839CAC3D4754412E1006D6D9055141E606BA313D475441CDC08E41DB05514187755CA23C47544162C85D37E005514169C143F43A4754415AD69D41E105514128A9389D3A475441DC4FBA6FE40551417BD969D039475441B334CE46E805514170783D7438475441E76F7937EB0551417B63DDE436475441045F585BEE055141A7B98F8334475441BC8F5384F005514113F4A68831475441946D47D6F30551417AF3F7172D4754411553D43DF1055141F7FE10592A475441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>616482 - 85289
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000100000025000000A4703D5ACE055141F6285CFF484754415C8FC265D1055141D7A3702D4147544152B81E05D5055141713D0A673C47544114AE47A1D905514152B81E853947544100000040E4055141666666E635475441C3F5284CE705514166666616344754411F85EB41F1055141F6285C5F2A475441A4703DFAEC0551419A9999C9234754417B14AE57EA055141666666961F4754415C8FC245E9055141666666361C475441B81E851BE9055141295C8FE21447544148E17A94EA0551418FC2F50807475441CDCCCC9CE9055141B81E856B04475441713D0A97E8055141B81E858B02475441666666D6E4055141295C8F02014754413D0AD743DF055141F6285C9FFE4654410AD7A3C0B7055141B81E85FBEB465441E17A14FE99055141666666B63E47544148E17AC4970551411F85EB01464754411F85EB0197055141D7A3700D4947544148E17AC495055141AE47E1FA4F47544114AE47B194055141E17A149E594754413D0AD7D397055141A4703DFA58475441C3F528DC9A0551411F85EB01584754413D0AD7039D0551411F85EB515747544152B81E959F05514114AE47D1684754419A9999D9A1055141F6285C3F78475441EC51B8DEA3055141713D0AB77447544114AE4781A6055141E17A140E744754415C8FC295AD0551419A99995970475441B81E859BB2055141295C8FA26D475441AE47E16AB40551419A9999F96C475441B81E852BBB055141E17A141E6847544166666676BE055141A4703DFA654754419A999939C4055141C3F5281C5B475441B81E85ABC80551417B14AE7752475441A4703D5ACE055141F6285CFF48475441
+</a>
+
+<b>
+010600000001000000010300000001000000600000001553D43DF1055141F7FE10592A475441B0E6B500EB05514126A92E7930475441C542FF46E7055141F67A7819344754416FE74A63E405514186E468D135475441FD7D286BE20551412A5E368636475441A204FA68D9055141BD2A53A83947544157222CFED40551410BAF32703C475441C0A1F844D30551410D7CC4B53E47544191508F77D1055141D826FA154147544158AB8BBDCE0551419F335400484754417D0F972ECE055141B47C1A48494754410B7921D1C9055141702E5F8E50475441BF0F5D26C505514177EAD04F5947544166666676BE055141A4703DFA65475441ABDBEE80BB055141949490E667475441E56031A6B8055141D1F84DEE69475441D2F5249FB40551411CC000D46C47544152DE32FFB2055141B08B367E6D4754419CD74209AF0551412E52C7906F475441B8DDD748A9055141DE20B799724754417ACFB8AAA605514107AB64F873475441BF8E5C18A4055141352E9AA87447544135414D68A3055141CED0D71973475441B12B321F9C0551415ED0969D614754411B63F7149A0551410C72208C4F47544181D647F3A1055141DB172FF137475441D6CB25809C0551416C2A83BD37475441E17A14FE99055141666666B63E475441D80E8BFF98055141724EE4BC3D47544195DAD1869805514188286F273F47544121A4FE03980551414E0150B040475441E15CC284970551418637692E424754413B10B63D97055141780DD412434754415B4B1B14960551416E7BD31047475441D3EA526395055141C87BE96F494754419B8DB1A6940551414A90E6D04C4754416DEB1F4E940551418D06F6694E4754416D5BD82994055141DC2885114F475441325AAA1094055141960B7BA74F475441E323248493055141A47310FE524754419749B35F9305514137F781D454475441CD25E72C93055141E9772F78574754419F86E30293055141ED62CABC59475441B20C190093055141A6EE5BE359475441488B925393055141EC9227E559475441F6C88DA293055141F0015F895A475441208CF30194055141F63CB84F5B47544157C47416950551418A6C9F8E5D47544114D378E0950551419665A6325F4754411A31837B970551413EEA468962475441CAE0B98298055141BBE80A5C64475441D58B4C199A055141C0D70C27674754415DD1C5549B0551417488C850694754410CE83C399D0551410AB5C09B6C4754412C4B74339E0551419FD413506E475441B4EA429A9E055141A05CC12D6F4754415B1A58C99F0551416C0B47BB7147544176A84C88A0055141C1748E5973475441D59B1552A10551410B751A127547544104AF4E69A105514147AC394375475441D257EEC9A20551415A42751E7847544164CDFCE6A50551411B515DA477475441BB178643A8055141FDDCC9FD76475441EEC6E03AAB0551419A7A38F6754754410FF9F64FAC0551419C960B96754754412CB3F8F2AC055141DB4AE16175475441A53A3415AD055141C48B1B94754754418C163CB5AD0551419F42D53075475441715F28E8B00551417E188136734754416492AD2FB40551417EFB723671475441C01A6472B5055141DA31E884704754414D9BC6FEB80551415547AC0E6F47544145C9ADA4BB055141DEBB31096E475441CDB9E45AC0055141174B01D669475441193A3C93C205514159E65FBC66475441404F819DC5055141CE04F7AC614754413D98871DC8055141F7E41C605C475441D9BE9C74CC055141FAAFFD0854475441040FA8F4D00551417F690E654A475441A7F3D650D3055141E72D997E444754418BC03C29D4055141EEFE79EE42475441C5A0CF79D4055141D998C63142475441A535BD4BD5055141DF8366A240475441000901D6D7055141D2EE93553E4754414655B21DD90551417E839CAC3D4754412E1006D6D9055141E606BA313D475441CDC08E41DB05514187755CA23C47544162C85D37E005514169C143F43A4754415AD69D41E105514128A9389D3A475441DC4FBA6FE40551417BD969D039475441B334CE46E805514170783D7438475441E76F7937EB0551417B63DDE436475441045F585BEE055141A7B98F8334475441BC8F5384F005514113F4A68831475441946D47D6F30551417AF3F7172D4754411553D43DF1055141F7FE10592A475441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>617303 - 234645
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -19 </desc>
+<a>
+01060000000100000001030000000100000022000000A4703DFAB6FC50415C8FC295C133544133333303B7FC5041EC51B84EC333544152B81E05B9FC5041D7A3708DC33354419A999919BAFC50413D0AD773C4335441A4703DEABFFC504152B81E55C4335441E17A140EC1FC504114AE4721C63354411F85EBB1C0FC5041AE47E1AAC93354415C8FC2E5BEFC5041295C8FF2C833544166666656BDFC5041CDCCCC6CCC33544152B81EF5BBFC50418FC2F548CB335441295C8FC2BAFC504185EB5158CB335441AE47E17ABBFC5041AE47E11ACE33544166666666BAFC50419A9999A9CF3354413D0AD723B9FC5041295C8F52D03354415C8FC255B7FC5041F6285C9FD03354415C8FC2B5B7FC504133333303DC335441F6285C8FB9FC5041713D0A27DD33544148E17AF4C2FC5041A4703D1AE433544185EB51B8CCFC5041295C8FB2E7335441A4703DAACBFC504114AE4721DF33544148E17AD4C7FC5041D7A3708DDC335441295C8F92C3FC5041D7A3707DDF33544185EB5198C1FC50419A9999F9D933544114AE47C1C0FC504166666656D4335441EC51B86EC2FC504114AE47F1CE335441A4703DBAC8FC504166666676CE335441295C8FF2C6FC5041C3F5286CC13354418FC2F5F8C2FC50418FC2F508C133544185EB5198C1FC5041A4703DDAC3335441F6285CEFC0FC5041295C8F12C3335441F6285CEFC0FC50411F85EBB1C1335441D7A370EDBFFC50417B14AE57C1335441B81E85FBB6FC504185EB5118C1335441A4703DFAB6FC50415C8FC295C1335441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000406C867EC1FC5041A020AB7EC5335441979190C1C0FC5041DE1EF04ECA335441A49E5557C1FC504157B0F430D0335441AF367C6AC1FC5041A01F1973D0335441D5FCC08BC2FC5041A7B71A0ED0335441519F87ADC4FC50412EA301A4CF33544183691851C6FC50418CD20886CF335441CCD7FE5EC7FC50413C7E3581CF3354419ABD039DC8FC5041E0D3E20FCF3354414D35AB07C9FC5041D0E62374CE335441186532B4C8FC5041BCFD204ACE335441C439302CC8FC50415C8FC065CA3354410CC15A34C8FC5041E5480486C83354411E7B2CFCC6FC50417EBE96B2C1335441A0615EEFC3FC504139AE2FE7C13354416E4E6398C2FC50412E607CCEC133544185EB5198C1FC5041A4703DDAC3335441F6285CEFC0FC5041295C8F12C3335441F6285CEFC0FC50411F85EBB1C1335441DB9AB6F2BFFC504175668659C13354414813AC31C0FC5041C736DC42C4335441406C867EC1FC5041A020AB7EC5335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>617303 - 387428
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -19 </desc>
+<a>
+01060000000100000001030000000100000022000000A4703DFAB6FC50415C8FC295C133544133333303B7FC5041EC51B84EC333544152B81E05B9FC5041D7A3708DC33354419A999919BAFC50413D0AD773C4335441A4703DEABFFC504152B81E55C4335441E17A140EC1FC504114AE4721C63354411F85EBB1C0FC5041AE47E1AAC93354415C8FC2E5BEFC5041295C8FF2C833544166666656BDFC5041CDCCCC6CCC33544152B81EF5BBFC50418FC2F548CB335441295C8FC2BAFC504185EB5158CB335441AE47E17ABBFC5041AE47E11ACE33544166666666BAFC50419A9999A9CF3354413D0AD723B9FC5041295C8F52D03354415C8FC255B7FC5041F6285C9FD03354415C8FC2B5B7FC504133333303DC335441F6285C8FB9FC5041713D0A27DD33544148E17AF4C2FC5041A4703D1AE433544185EB51B8CCFC5041295C8FB2E7335441A4703DAACBFC504114AE4721DF33544148E17AD4C7FC5041D7A3708DDC335441295C8F92C3FC5041D7A3707DDF33544185EB5198C1FC50419A9999F9D933544114AE47C1C0FC504166666656D4335441EC51B86EC2FC504114AE47F1CE335441A4703DBAC8FC504166666676CE335441295C8FF2C6FC5041C3F5286CC13354418FC2F5F8C2FC50418FC2F508C133544185EB5198C1FC5041A4703DDAC3335441F6285CEFC0FC5041295C8F12C3335441F6285CEFC0FC50411F85EBB1C1335441D7A370EDBFFC50417B14AE57C1335441B81E85FBB6FC504185EB5118C1335441A4703DFAB6FC50415C8FC295C1335441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000406C867EC1FC5041A020AB7EC5335441979190C1C0FC5041DE1EF04ECA335441A49E5557C1FC504157B0F430D0335441AF367C6AC1FC5041A01F1973D0335441D5FCC08BC2FC5041A7B71A0ED0335441519F87ADC4FC50412EA301A4CF33544183691851C6FC50418CD20886CF335441CCD7FE5EC7FC50413C7E3581CF3354419ABD039DC8FC5041E0D3E20FCF3354414D35AB07C9FC5041D0E62374CE335441186532B4C8FC5041BCFD204ACE335441C439302CC8FC50415C8FC065CA3354410CC15A34C8FC5041E5480486C83354411E7B2CFCC6FC50417EBE96B2C1335441A0615EEFC3FC504139AE2FE7C13354416E4E6398C2FC50412E607CCEC133544185EB5198C1FC5041A4703DDAC3335441F6285CEFC0FC5041295C8F12C3335441F6285CEFC0FC50411F85EBB1C1335441DB9AB6F2BFFC504175668659C13354414813AC31C0FC5041C736DC42C4335441406C867EC1FC5041A020AB7EC5335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>637748 - 57157
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -7 </desc>
+<a>
+0106000000010000000103000000010000000F000000C3F5282C6CF2504148E17AD4D23455410AD7A3106BF25041A4703DCAD4345541E17A141E79F2504148E17A34F9345541B81E859BA6F250413D0AD7B3EB3455418FC2F5F8A5F250417B14AEF7E73455411F85EBD1A4F25041295C8FD2E4345541F6285C9FA3F2504100000000E434554148E17AA49EF25041713D0A07E234554114AE47E198F25041AE47E10AE0345541AE47E12A96F25041C3F528CCDE3455417B14AEC78CF2504148E17AA4D83455416666669684F250411F85EB81D33455411F85EB1181F25041000000E0D0345541D7A3700D7FF250415C8FC285CF345541C3F5282C6CF2504148E17AD4D2345541
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000000AD7A3106BF25041A4703DCAD43455410CE9220079F2504132ADE2E6F8345541C56F361E79F2504107CD7034F93455414B11C7387BF2504193F79494F83455416C878C168BF2504158EBF3DEF334554191E928278FF2504182AC269CF23455416B98E51496F250412199969BF0345541B81E859BA6F250413D0AD7B3EB345541150CF908A6F25041ABA2DD55E834554182AAFCD5A4F25041AF509E14E534554160EE8D98A2F250410D067FD3E3345541CE80B7FF9FF250413A379390E2345541B98DF0269FF250411289B63AE2345541CDEAAEB09EF25041499FDF0BE23455414D5FD1809CF25041C9704051E1345541AD31134799F2504155F2E06BE0345541510F0C7897F25041B23F1465DF345541AE47E12A96F25041C3F528CCDE345541F3EC389D93F250415A5A951FDD3455412741585190F25041AAEE9322DB345541B28D6D1D8DF250415790B3DCD83455417B14AEC78CF2504148E17AA4D83455416666669684F250411F85EB81D3345541D2B6BCC781F2504187761268D1345541B86908F580F250410370A2CCD0345541D7A3700D7FF250415C8FC285CF345541C3F5282C6CF2504148E17AD4D23455410AD7A3106BF25041A4703DCAD4345541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>621105 - 1570990
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -16 </desc>
+<a>
+0106000000010000000103000000010000000A0000000000007028C45041E17A145E0AEA544152B81E5511C450415C8FC24522EA544148E17AB41DC45041B81E859B2BEA54416666663627C45041C3F528EC24EA5441000000E029C4504152B81EB524EA5441EC51B80E34C4504152B81E451BEA54416666663633C450411F85EB5118EA54417B14AEB731C45041B81E85AB15EA5441713D0AA72EC450418FC2F5C811EA54410000007028C45041E17A145E0AEA5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000006317DDEE26C450419594751E25EA544190E7F98723C45041FF34CC2E27EA54410CE8FA6720C45041C45F4EB529EA54416E37230D1EC450411C568DDE2BEA54411F85EBD122C450417B14AE772FEA5441F6285C3F2AC45041F6285C0F28EA54418FC2F5182EC45041CDCCCC8C24EA54410AD7A37031C45041EC51B87E20EA5441333333D334C4504148E17AF41DEA5441C6070E1134C4504136D0FD1E1BEA5441000000E029C4504152B81EB524EA544115D2183D27C45041B56CFFEE24EA54416317DDEE26C450419594751E25EA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>621105 - 3288810
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -16 </desc>
+<a>
+0106000000010000000103000000010000000A0000000000007028C45041E17A145E0AEA544152B81E5511C450415C8FC24522EA544148E17AB41DC45041B81E859B2BEA54416666663627C45041C3F528EC24EA5441000000E029C4504152B81EB524EA5441EC51B80E34C4504152B81E451BEA54416666663633C450411F85EB5118EA54417B14AEB731C45041B81E85AB15EA5441713D0AA72EC450418FC2F5C811EA54410000007028C45041E17A145E0AEA5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000006317DDEE26C450419594751E25EA544190E7F98723C45041FF34CC2E27EA54410CE8FA6720C45041C45F4EB529EA54416E37230D1EC450411C568DDE2BEA54411F85EBD122C450417B14AE772FEA5441F6285C3F2AC45041F6285C0F28EA54418FC2F5182EC45041CDCCCC8C24EA54410AD7A37031C45041EC51B87E20EA5441333333D334C4504148E17AF41DEA5441C6070E1134C4504136D0FD1E1BEA5441000000E029C4504152B81EB524EA544115D2183D27C45041B56CFFEE24EA54416317DDEE26C450419594751E25EA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>652626 - 240834
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+010600000002000000010300000001000000140000009A999929E52B5141D7A3702D1530554133333313E72B5141CDCCCCFC15305541D7A3700DE92B5141A4703D6A13305541295C8F02EA2B51410AD7A320123055418FC2F568E42B51417B14AE770F3055417B14AE97E52B51418FC2F5480D30554152B81EE5D12B514114AE47A104305541AE47E11ABD2B514152B81EB5F82F55413D0AD733B92B5141AE47E1AAF52F5541295C8F92AD2B5141000000C0E82F554114AE47B1A92B5141EC51B80EE52F5541B81E857BA22B5141CDCCCC4CEC2F5541713D0A47A32B5141295C8F92ED2F5541B81E85EBAA2B5141000000D0F92F5541D7A3701DAD2B5141295C8F32FC2F5541713D0A77BF2B5141666666960D3055410AD7A360C32B51411F85EB1110305541B81E853BC62B5141C3F528EC103055419A999959C92B51419A999959113055419A999929E52B5141D7A3702D153055410103000000010000002300000014AE4711D62B5141000000B01D3055411F85EB11DB2B5141666666361E30554152B81E75E62B5141B81E857B213055410AD7A310E72B514185EB51982230554114AE47A1EB2B5141C3F5280C1F305541C3F5288CEC2B5141E17A14CE1E3055413D0AD753E72B514152B81E45183055413D0AD7C3E42B5141713D0A7716305541A4703D3AC92B5141A4703DEA1230554152B81ED5C52B51411F85EBE11230554152B81EB5C22B5141AE47E15A1130554114AE47A1BE2B5141EC51B8DE0E305541AE47E1FAAB2B514100000060FD2F55417B14AE87A92B51411F85EBD1FA2F55415C8FC245A12B5141F6285CDFEC2F55413D0AD7539F2B514152B81EA5E82F5541A4703DBA942B5141CDCCCCDCD62F5541D7A3703D942B514133333323D72F5541000000B0922B5141B81E850BD82F554100000060952B514133333393DE2F55411F85EB21972B514152B81ED5E12F554166666666992B5141C3F528FCE42F5541D7A370CD9C2B514148E17A04EB2F5541CDCCCCDCA12B514100000090F42F55410AD7A3D0A22B5141EC51B82EF82F5541C3F5283CA92B51419A9999D90430554133333323AA2B514100000010073055415C8FC265AD2B5141295C8F720A305541E17A144EB22B51410AD7A3800D305541CDCCCC0CB72B51419A9999B90F30554133333383BB2B514114AE47211230554185EB51E8C22B514100000060183055417B14AEC7C52B514185EB515819305541295C8FC2CA2B514114AE47211A30554114AE4711D62B5141000000B01D305541
+</a>
+
+<b>
+010600000001000000010300000001000000250000002783ECCF9D2B5141BAA65A1AE62F5541D24962129A2B51413A93FDD3DF2F5541F5DA46BA942B51415698DCDCD62F5541000000B0922B5141B81E850BD82F554100000060952B514133333393DE2F55411F85EB21972B514152B81ED5E12F554166666666992B5141C3F528FCE42F5541D7A370CD9C2B514148E17A04EB2F5541CDCCCCDCA12B514100000090F42F55410AD7A3D0A22B5141EC51B82EF82F5541C3F5283CA92B51419A9999D90430554133333323AA2B514100000010073055415C8FC265AD2B5141295C8F720A305541E17A144EB22B51410AD7A3800D305541CDCCCC0CB72B51419A9999B90F30554133333383BB2B514114AE47211230554185EB51E8C22B514100000060183055417B14AEC7C52B514185EB515819305541295C8FC2CA2B514114AE47211A30554114AE4711D62B5141000000B01D3055411F85EB11DB2B5141666666361E30554152B81E75E62B5141B81E857B213055410AD7A310E72B514185EB51982230554114AE47A1EB2B5141C3F5280C1F305541C3F5288CEC2B5141E17A14CE1E3055413D0AD753E72B514152B81E45183055413D0AD7C3E42B5141713D0A7716305541A4703D3AC92B5141A4703DEA1230554152B81ED5C52B51411F85EBE11230554152B81EB5C22B5141AE47E15A1130554114AE47A1BE2B5141EC51B8DE0E305541AE47E1FAAB2B514100000060FD2F55417B14AE87A92B51411F85EBD1FA2F55415C8FC245A12B5141F6285CDFEC2F554165CE51AA9F2B5141EACF1561E92F55413D0AD7539F2B514152B81EA5E82F55412783ECCF9D2B5141BAA65A1AE62F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>915685 - 975678
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+01060000000100000001030000000200000018000000C3F5289C1CE55041E17A14FEB8645441CDCCCC1C15E55041295C8FC2BC64544185EB51181FE5504166666676B9645441333333C323E55041B81E85ABB7645441F6285CEF26E55041333333E3B664544185EB516826E5504100000030BF645441F6285CEF26E5504148E17A64C464544148E17A0431E55041E17A14CEC4645441AE47E1BA42E55041F6285C6FC5645441AE47E1EA48E5504185EB51C8C8645441AE47E1BA58E55041A4703DDACB6454419A99999959E55041333333A3CB6454413D0AD7635BE5504166666666C86454411F85EB6160E55041C3F528BCC16454410AD7A33067E55041AE47E15AB764544185EB51686BE5504185EB51C8B06454411F85EBF16BE550419A9999D9AF64544152B81E256AE55041295C8F12AF645441EC51B85E57E5504114AE4781AD645441E17A148E45E55041295C8FD2AA6454413D0AD72340E55041C3F528ECAA64544148E17A443AE550417B14AE97AC64544114AE470135E5504148E17A84AE645441C3F5289C1CE55041E17A14FEB864544105000000CDCCCC0C5DE55041E17A14BEC06454411F85EBD15BE55041EC51B81EC3645441AE47E11A59E55041AE47E19AC1645441295C8F625AE55041E17A144EBF645441CDCCCC0C5DE55041E17A14BEC0645441
+</a>
+
+<b>
+0106000000020000000103000000010000000A00000035E49E3B43E550413C5C59A7C5645441BCA6E68549E55041BAD76AE6C8645441ED9C085C58E55041FD57D3C7CB6454410C7DD5C059E55041833A3D5CCB645441E62FACF75AE5504161B7092AC9645441DAC7345F5BE5504192D06164C8645441540645E24CE550411C703C15C26454414C5FBA4A46E550417E4C6F44BF6454416CC0EFC542E550418AE93693BE64544135E49E3B43E550413C5C59A7C564544101030000000100000005000000E92D5A0943E550410ACC678DC5645441F0355A2F43E5504119DC67D9C56454411A478A3C43E5504135E881B5C564544135E49E3B43E550413C5C59A7C5645441E92D5A0943E550410ACC678DC5645441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>63619 - 3996899
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -58 </desc>
+<a>
+0106000000010000000103000000010000001E000000A12F5CFF44545141DF1BC3E5748054410AD7A32045545141713D0A9777805441AE47E1DA4A545141F6285C0F77805441C3F5280C4B54514152B81E1583805441000000204B54514148E17AE48A80544185EB51684A545141CDCCCCFC91805441F6285C9F67545141F6285C0F968054410AD7A3506954514114AE4711958054411F85EBA17554514152B81E8575805441295C8FF2775451415C8FC25571805441295C8FF26E54514148E17A246F8054417B14AE876B545141713D0AC76080544185EB511875545141295C8FB254805441CDCCCCEC86545141000000C0518054417B14AE67885451410000005044805441CDCCCC3C88545141EC51B8CE3F805441295C8FF28654514114AE47C13E80544148E17A9472545141B81E851B4280544185EB515860545141A4703DAA4C805441CDCCCC5C5954514148E17A1450805441EC51B8FE4C545141B81E85EB4E80544152B81E653D545141EC51B83E4E805441A4703DDA365451415C8FC2C54B8054418FC2F5C833545141D7A3708D49805441C3F528DC2F545141C3F5283C4880544114AE470130545141AE47E18A4E8054413D0AD75331545141CDCCCCFC5B805441713D0AE733545141000000707180544152B81E953F545141F6285C7F73805441A12F5CFF44545141DF1BC3E574805441
+</a>
+
+<b>
+0106000000010000000103000000020000002C00000097FAD14170545141AF3227766F8054416BA98F167354514183AC65F06E805441251FC53676545141AD54B6A66D805441E14E31177A545141A212D3A26B805441B81E85FB7954514148E17A346B80544169B0E42B785451412A1B9DFB6A805441EFC5BE7B775451415E84529C6A805441DBFA49B17654514174B40BCD698054410AD7A33077545141CDCCCC9C69805441B2FE4BCF77545141E9B01BFE698054410AD7A3F078545141CDCCCC9C6A8054410AD7A3307A545141CDCCCC3C6A8054410AD7A3707B545141CDCCCC6C698054410AD7A3D07C545141CDCCCC7C688054410AD7A3007F545141CDCCCC3C68805441713D0A27805451413D0AD75368805441CDCCCC6C81545141E17A14EE668054410AD7A3A0845451419A99990961805441B81E85DB81545141AE47E16A618054410AD7A3B081545141CDCCCCBC63805441666666067C545141CDCCCCCC65805441D7A3701D7B545141000000D06280544185EB51587A5451410000001063805441E17A14EE7754514148E17AB463805441295C8F4276545141000000D05D8054410AD7A3B074545141CDCCCC1C5E805441295C8F8274545141713D0AE75980544185EB51F8775451419A99992959805441713D0AD777545141D7A3702D5880544148E17AD47654514114AE47E1578054411F85EBD1755451411F85EBA156805441333333B37554514152B81E25558054410705C9EA745451416AD2BFF154805441C9FAF126745451414176304F56805441E09867737254514145D6DA3159805441C644E04070545141BF6918445D805441D6D195F76F5451418B57AB635D805441346027BA6E545141A5704DD15D8054416A31C9A16D545141387DCA2C5E8054412001E0066C545141644E4AAF5E8054412001E0266C545141AC2FC5036080544154AEF4AE6D54514116DC40D469805441C9B6C09E6E5451417FB27EC36F80544197FAD14170545141AF3227766F8054410600000082A178A46F5451413279815B68805441C3F5286C71545141A4703D6A68805441F6285C7F715451411F85EB116D805441FD6FB47D705451411697031C6D805441C1CF31BA6F545141EB22880D6D80544182A178A46F5451413279815B68805441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>242187 - 1419829
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000001E000000E54343661B075141F8EB433A5CFE5441A2F5CB9C1E075141E3E0AEC05BFE54412D04B280240751416935E96C5BFE544128F80F282B075141F08923195BFE5441166C74072C075141F08923195BFE544145DB298036075141E7C3D5885BFE54418BE21C72390751416552C2A45BFE544175735A893A07514113A25A5A59FE5441E658D24C3B075141AB82302758FE5441332613CF3D075141A2BCE29658FE544104656735400751411785812259FE5441496C5A27430751418387D21D5AFE5441BA51D2EA43075141F46C4AE15AFE544155EC53EF48075141423A8B635DFE544166666666500751415C8FC21553FE5441C3F5288C540751413333332355FE5441AE47E1BA540751410000009055FE5441AE47E16A57075141AE47E19A51FE544114AE47215507514152B81EB54FFE5441CDCCCC3C520751410AD7A3F04DFE5441AE47E10A4C075141AE47E14A4CFE54411F85EBB1450751413D0AD7C34BFE54418FC2F5C83B0751413D0AD7C34BFE5441A4703D4A36075141D7A370BD4BFE544114AE4711310751415C8FC2A54CFE54411F85EB51260751410AD7A3D04DFE5441D7A3707D16075141D7A370ED4FFE5441E17A14EE0E075141E17A14CE51FE5441713D0AE71A07514114AE47115BFE5441E54343661B075141F8EB433A5CFE5441
+</a>
+
+<b>
+0106000000010000000103000000020000002900000025F80F282B075141F38923195BFE544149DC80BA2A075141A6E7861E5BFE5441959E0A3A290751415F903A335BFE5441687B703F260751417079EE575BFE54417062863423075141F95FB6805BFE54416511548320075141BB4774A75BFE54410016FF8D1E07514181EDDEC25BFE5441E24343661B075141F3EB433A5CFE5441DEF351651B075141A49B10385CFE5441264539641B07514141ED39385CFE5441D7A370AD220751415C8FC2756DFE54410AD7A3D0270751417B14AE076DFE544152B81E9534075141B81E85EB70FE5441C3F5289C34075141EC51B8FE71FE54418FC2F5E83B0751410000007074FE544114AE472148075141713D0A8778FE5441F6285C4F4C07514152B81EF56DFE54415C8FC2554B07514114AE47316EFE5441C3F528BC48075141CDCCCCEC69FE5441EC51B80E4A075141B81E850B67FE5441A4703D5A400751413D0AD79363FE54413AAC9101430751415C5BF2905CFE54410D7A639443075141DDC0700E5CFE5441667CA7DA44075141DDC0700E5CFE5441B0696F0E45075141EBF818735BFE5441BC51D2EA43075141F66C4AE15AFE5441E19E407E430751411BBAB8745AFE54417F79D242430751414F57FB555AFE54414E00305A3E0751411F9180B658FE5441382613CF3D075141A3BCE29658FE5441F52FC7543B07514153BE922858FE5441C975B07939075141C64774A75BFE5441E3A2A0FE35075141675DCA845BFE5441E3927A3434075141E32059705BFE54418A0EF91B33075141B010A9645BFE5441F2959F6C32075141B3AB5A5D5BFE5441F8B9483332075141320DF75A5BFE5441AA4AF82530075141A4839E475BFE544123C941C22D07514135941C2D5BFE544193D733912B075141F38923195BFE544125F80F282B075141F38923195BFE5441050000009A9999993F075141D7A3704D67FE5441F6285C8F40075141C3F528FC64FE54411F85EB314207514185EB51A865FE5441CDCCCC3C41075141B81E85FB67FE54419A9999993F075141D7A3704D67FE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>242187 - 4110570
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+0106000000010000000103000000010000001E000000E54343661B075141F8EB433A5CFE5441A2F5CB9C1E075141E3E0AEC05BFE54412D04B280240751416935E96C5BFE544128F80F282B075141F08923195BFE5441166C74072C075141F08923195BFE544145DB298036075141E7C3D5885BFE54418BE21C72390751416552C2A45BFE544175735A893A07514113A25A5A59FE5441E658D24C3B075141AB82302758FE5441332613CF3D075141A2BCE29658FE544104656735400751411785812259FE5441496C5A27430751418387D21D5AFE5441BA51D2EA43075141F46C4AE15AFE544155EC53EF48075141423A8B635DFE544166666666500751415C8FC21553FE5441C3F5288C540751413333332355FE5441AE47E1BA540751410000009055FE5441AE47E16A57075141AE47E19A51FE544114AE47215507514152B81EB54FFE5441CDCCCC3C520751410AD7A3F04DFE5441AE47E10A4C075141AE47E14A4CFE54411F85EBB1450751413D0AD7C34BFE54418FC2F5C83B0751413D0AD7C34BFE5441A4703D4A36075141D7A370BD4BFE544114AE4711310751415C8FC2A54CFE54411F85EB51260751410AD7A3D04DFE5441D7A3707D16075141D7A370ED4FFE5441E17A14EE0E075141E17A14CE51FE5441713D0AE71A07514114AE47115BFE5441E54343661B075141F8EB433A5CFE5441
+</a>
+
+<b>
+0106000000010000000103000000020000002900000025F80F282B075141F38923195BFE544149DC80BA2A075141A6E7861E5BFE5441959E0A3A290751415F903A335BFE5441687B703F260751417079EE575BFE54417062863423075141F95FB6805BFE54416511548320075141BB4774A75BFE54410016FF8D1E07514181EDDEC25BFE5441E24343661B075141F3EB433A5CFE5441DEF351651B075141A49B10385CFE5441264539641B07514141ED39385CFE5441D7A370AD220751415C8FC2756DFE54410AD7A3D0270751417B14AE076DFE544152B81E9534075141B81E85EB70FE5441C3F5289C34075141EC51B8FE71FE54418FC2F5E83B0751410000007074FE544114AE472148075141713D0A8778FE5441F6285C4F4C07514152B81EF56DFE54415C8FC2554B07514114AE47316EFE5441C3F528BC48075141CDCCCCEC69FE5441EC51B80E4A075141B81E850B67FE5441A4703D5A400751413D0AD79363FE54413AAC9101430751415C5BF2905CFE54410D7A639443075141DDC0700E5CFE5441667CA7DA44075141DDC0700E5CFE5441B0696F0E45075141EBF818735BFE5441BC51D2EA43075141F66C4AE15AFE5441E19E407E430751411BBAB8745AFE54417F79D242430751414F57FB555AFE54414E00305A3E0751411F9180B658FE5441382613CF3D075141A3BCE29658FE5441F52FC7543B07514153BE922858FE5441C975B07939075141C64774A75BFE5441E3A2A0FE35075141675DCA845BFE5441E3927A3434075141E32059705BFE54418A0EF91B33075141B010A9645BFE5441F2959F6C32075141B3AB5A5D5BFE5441F8B9483332075141320DF75A5BFE5441AA4AF82530075141A4839E475BFE544123C941C22D07514135941C2D5BFE544193D733912B075141F38923195BFE544125F80F282B075141F38923195BFE5441050000009A9999993F075141D7A3704D67FE5441F6285C8F40075141C3F528FC64FE54411F85EB314207514185EB51A865FE5441CDCCCC3C41075141B81E85FB67FE54419A9999993F075141D7A3704D67FE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>923207 - 791530
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -22 </desc>
+<a>
+0106000000010000000103000000010000005700000066666656A2C35041713D0AD728475441EC51B85E9EC35041B81E85EB3F475441DEBA84F99DC35041D83AF08B414754419B4E5E1498C35041FDCA40EE624754411ED40B3698C35041D8E297FF6C4754419AC32AFD49C35041B7A316346C4754413D0AD7C34AC35041F6285C9F6E475441F6285CBF48C3504148E17A14704754413B45372949C35041370A34E66F475441AF938FD048C350412977D43470475441DAB25B254AC35041D51D2EDF724754419F7F0C824BC35041E494065276475441F43A11DA4BC3504189E420A2774754411F85EB314CC350413333334378475441120E354D4CC35041C44414FA78475441133C2F6F4CC350413B268ADB79475441A4703DDA4CC350411F85EBA17C475441258902A94CC350416EAA041D8147544132D1BB8B4CC35041323E2DC78347544177892FFD4BC35041DDE2458289475441B0BEB7DE4BC35041825325C98C475441DDFCC1E34DC35041B3A38B968C47544170D4BF725CC35041F546CD298B4754414F9DB5DA7BC35041CEE99B04884754413A64660486C3504146A70DAC85475441E17A14BE9BC3504148E17A94804754418FC2F568ADC35041B81E85BB87475441465662B9AEC35041338ED7F184475441286748E6B5C35041918C1CB97547544148E17A54BEC3504114AE479166475441AE47E10ABFC350418FC2F53865475441B81E854BC0C35041A4703D6A634754417B14AEB7C1C35041CDCCCC5C61475441E17A14FEC3C35041333333135E475441A4703D6AC5C350415C8FC2055C4754418FC2F5A8C5C35041B81E85AB5B475441A4703D1AC6C35041F6285CBF5A475441B81E853BC7C35041295C8F6258475441CDCCCCFCC7C35041000000D056475441E17A143EC8C35041713D0A47564754413D0AD733C9C350410000000054475441713D0A77CAC35041295C8F0251475441C3F5280CCBC3504114AE47A14F475441295C8FF2CBC35041000000904D475441B81E858BCDC350413D0AD7E34947544152B81E65D0C35041D7A3709D434754418FC2F518D2C35041CDCCCCDC3F4754415C8FC285D2C35041E17A148E3E475441666666D6D4C35041295C8F7237475441EC51B88ED4C35041D7A3705D3647544166666646D4C350417B14AE4735475441333333C3D1C350419A9999992B4754415C8FC235D1C3504185EB51782947544114AE47B1CFC350415C8FC285244754417B14AE47CEC3504185EB51E81F475441A4703DCACDC35041F6285CEF1B4754415C8FC205CDC35041AE47E1BA15475441EC51B81ECCC35041333333130E475441F6285CFFCBC350417B14AE070D47544114AE47E1CBC350418FC2F5080C4754413D0AD773CBC3504148E17AE408475441295C8F52CBC35041295C8FF2074754411F85EBA1CAC35041EC51B8DE02475441713D0AB7CAC3504148E17A740147544114AE4701CBC3504114AE4761FC46544114AE4761CBC35041CDCCCCDCF54654411F85EBD1CAC35041EC51B8CEF5465441B81E853BC9C350419A9999C9F4465441295C8FE2C7C35041AE47E14AF346544166666696B8C35041EC51B8DEEB465441F6285CAFB5C350413D0AD7E3ED46544166666686B3C35041E17A149EF34654411F85EB21B3C35041666666F6F5465441B81E851BB3C35041AE47E1BAF746544152B81E05B3C3504166666676F946544114AE47F1B2C35041666666A6FB465441D7A370BDB2C35041F6285C2FFE465441713D0A77B2C350411F85EB6101475441333333C3B1C35041A4703DFA034754415C8FC2A5B0C3504185EB513807475441D7A370FDADC35041333333A30F475441EC51B86EAAC3504148E17A4415475441295C8FD2A6C350413D0AD7C31B475441333333C3A3C35041C3F5286C22475441EC51B80EA3C35041C3F5288C2547544133333393A2C35041E17A14AE2747544166666656A2C35041713D0AD728475441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000C3F5280C4AC35041333333B39B475441B81E852B4AC3504152B81EA5A1475441AE47E18A9FC35041000000109947544152B81ED59DC35041C3F5280C9447544100000000A1C3504148E17A848D4754410AD7A350A7C350413D0AD74385475441E17A14BE9BC3504148E17A94804754411F85EB718DC3504152B81EF5834754410AD7A3507BC3504148E17A24884754415C8FC2A54BC35041EC51B8CE8C4754419A9999F94AC3504152B81E058F475441666666364AC3504114AE475196475441C3F5280C4AC35041333333B39B475441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>923207 - 943282
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -21 </desc>
+<a>
+0106000000010000000103000000010000005700000066666656A2C35041713D0AD728475441EC51B85E9EC35041B81E85EB3F475441DEBA84F99DC35041D83AF08B414754419B4E5E1498C35041FDCA40EE624754411ED40B3698C35041D8E297FF6C4754419AC32AFD49C35041B7A316346C4754413D0AD7C34AC35041F6285C9F6E475441F6285CBF48C3504148E17A14704754413B45372949C35041370A34E66F475441AF938FD048C350412977D43470475441DAB25B254AC35041D51D2EDF724754419F7F0C824BC35041E494065276475441F43A11DA4BC3504189E420A2774754411F85EB314CC350413333334378475441120E354D4CC35041C44414FA78475441133C2F6F4CC350413B268ADB79475441A4703DDA4CC350411F85EBA17C475441258902A94CC350416EAA041D8147544132D1BB8B4CC35041323E2DC78347544177892FFD4BC35041DDE2458289475441B0BEB7DE4BC35041825325C98C475441DDFCC1E34DC35041B3A38B968C47544170D4BF725CC35041F546CD298B4754414F9DB5DA7BC35041CEE99B04884754413A64660486C3504146A70DAC85475441E17A14BE9BC3504148E17A94804754418FC2F568ADC35041B81E85BB87475441465662B9AEC35041338ED7F184475441286748E6B5C35041918C1CB97547544148E17A54BEC3504114AE479166475441AE47E10ABFC350418FC2F53865475441B81E854BC0C35041A4703D6A634754417B14AEB7C1C35041CDCCCC5C61475441E17A14FEC3C35041333333135E475441A4703D6AC5C350415C8FC2055C4754418FC2F5A8C5C35041B81E85AB5B475441A4703D1AC6C35041F6285CBF5A475441B81E853BC7C35041295C8F6258475441CDCCCCFCC7C35041000000D056475441E17A143EC8C35041713D0A47564754413D0AD733C9C350410000000054475441713D0A77CAC35041295C8F0251475441C3F5280CCBC3504114AE47A14F475441295C8FF2CBC35041000000904D475441B81E858BCDC350413D0AD7E34947544152B81E65D0C35041D7A3709D434754418FC2F518D2C35041CDCCCCDC3F4754415C8FC285D2C35041E17A148E3E475441666666D6D4C35041295C8F7237475441EC51B88ED4C35041D7A3705D3647544166666646D4C350417B14AE4735475441333333C3D1C350419A9999992B4754415C8FC235D1C3504185EB51782947544114AE47B1CFC350415C8FC285244754417B14AE47CEC3504185EB51E81F475441A4703DCACDC35041F6285CEF1B4754415C8FC205CDC35041AE47E1BA15475441EC51B81ECCC35041333333130E475441F6285CFFCBC350417B14AE070D47544114AE47E1CBC350418FC2F5080C4754413D0AD773CBC3504148E17AE408475441295C8F52CBC35041295C8FF2074754411F85EBA1CAC35041EC51B8DE02475441713D0AB7CAC3504148E17A740147544114AE4701CBC3504114AE4761FC46544114AE4761CBC35041CDCCCCDCF54654411F85EBD1CAC35041EC51B8CEF5465441B81E853BC9C350419A9999C9F4465441295C8FE2C7C35041AE47E14AF346544166666696B8C35041EC51B8DEEB465441F6285CAFB5C350413D0AD7E3ED46544166666686B3C35041E17A149EF34654411F85EB21B3C35041666666F6F5465441B81E851BB3C35041AE47E1BAF746544152B81E05B3C3504166666676F946544114AE47F1B2C35041666666A6FB465441D7A370BDB2C35041F6285C2FFE465441713D0A77B2C350411F85EB6101475441333333C3B1C35041A4703DFA034754415C8FC2A5B0C3504185EB513807475441D7A370FDADC35041333333A30F475441EC51B86EAAC3504148E17A4415475441295C8FD2A6C350413D0AD7C31B475441333333C3A3C35041C3F5286C22475441EC51B80EA3C35041C3F5288C2547544133333393A2C35041E17A14AE2747544166666656A2C35041713D0AD728475441
+</a>
+
+<b>
+010600000001000000010300000001000000520000005C8FC205CDC35041AE47E1BA15475441EC51B81ECCC35041333333130E475441F6285CFFCBC350417B14AE070D47544114AE47E1CBC350418FC2F5080C4754413D0AD773CBC3504148E17AE408475441295C8F52CBC35041295C8FF2074754411F85EBA1CAC35041EC51B8DE02475441713D0AB7CAC3504148E17A740147544114AE4701CBC3504114AE4761FC46544114AE4761CBC35041CDCCCCDCF54654411F85EBD1CAC35041EC51B8CEF5465441B81E853BC9C350419A9999C9F4465441295C8FE2C7C35041AE47E14AF346544166666696B8C35041EC51B8DEEB465441F6285CAFB5C350413D0AD7E3ED46544166666686B3C35041E17A149EF34654411F85EB21B3C35041666666F6F5465441B81E851BB3C35041AE47E1BAF746544152B81E05B3C3504166666676F946544114AE47F1B2C35041666666A6FB465441D7A370BDB2C35041F6285C2FFE465441713D0A77B2C350411F85EB6101475441333333C3B1C35041A4703DFA034754415C8FC2A5B0C3504185EB513807475441D7A370FDADC35041333333A30F475441EC51B86EAAC3504148E17A4415475441295C8FD2A6C350413D0AD7C31B475441333333C3A3C35041C3F5286C22475441EC51B80EA3C35041C3F5288C2547544133333393A2C35041E17A14AE2747544166666656A2C35041713D0AD728475441EC51B85E9EC35041B81E85EB3F475441A4703D2A9AC350418FC2F53851475441295C8F8242C35041713D0A674D4754413D0AD71344C3504152B81E254F4754419A99997944C3504152B81E45514754417B14AEF747C350413D0AD7F363475441EC51B8AE46C35041C3F528AC68475441C3F5281C48C350417B14AEA76A4754413D0AD7C34AC35041F6285C9F6E475441F6285CBF48C3504148E17A147047544148E17AC449C350419A9999F971475441666666064BC3504148E17AF4744754411F85EB314CC350413333334378475441C3F5283C4CC350418FC2F58878475441A4703DDA4CC350411F85EBA17C47544152B81E854CC3504114AE4761844754415C8FC2A54BC35041EC51B8CE8C4754410AD7A3507BC3504148E17A24884754411F85EB718DC3504152B81EF583475441E17A14BE9BC3504148E17A94804754410AD7A350A7C350413D0AD743854754418FC2F568ADC35041B81E85BB8747544152B81EE5B7C35041D7A3707D7147544148E17A54BEC3504114AE479166475441AE47E10ABFC350418FC2F53865475441B81E854BC0C35041A4703D6A634754417B14AEB7C1C35041CDCCCC5C61475441E17A14FEC3C35041333333135E475441A4703D6AC5C350415C8FC2055C4754418FC2F5A8C5C35041B81E85AB5B475441A4703D1AC6C35041F6285CBF5A475441B81E853BC7C35041295C8F6258475441CDCCCCFCC7C35041000000D056475441E17A143EC8C35041713D0A47564754413D0AD733C9C350410000000054475441713D0A77CAC35041295C8F0251475441C3F5280CCBC3504114AE47A14F475441295C8FF2CBC35041000000904D475441B81E858BCDC350413D0AD7E34947544152B81E65D0C35041D7A3709D434754418FC2F518D2C35041CDCCCCDC3F4754415C8FC285D2C35041E17A148E3E475441666666D6D4C35041295C8F7237475441EC51B88ED4C35041D7A3705D3647544166666646D4C350417B14AE4735475441333333C3D1C350419A9999992B4754415C8FC235D1C3504185EB51782947544114AE47B1CFC350415C8FC285244754417B14AE47CEC3504185EB51E81F475441A4703DCACDC35041F6285CEF1B4754415C8FC205CDC35041AE47E1BA15475441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>923207 - 1824992
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -22 </desc>
+<a>
+0106000000010000000103000000010000005700000066666656A2C35041713D0AD728475441EC51B85E9EC35041B81E85EB3F475441DEBA84F99DC35041D83AF08B414754419B4E5E1498C35041FDCA40EE624754411ED40B3698C35041D8E297FF6C4754419AC32AFD49C35041B7A316346C4754413D0AD7C34AC35041F6285C9F6E475441F6285CBF48C3504148E17A14704754413B45372949C35041370A34E66F475441AF938FD048C350412977D43470475441DAB25B254AC35041D51D2EDF724754419F7F0C824BC35041E494065276475441F43A11DA4BC3504189E420A2774754411F85EB314CC350413333334378475441120E354D4CC35041C44414FA78475441133C2F6F4CC350413B268ADB79475441A4703DDA4CC350411F85EBA17C475441258902A94CC350416EAA041D8147544132D1BB8B4CC35041323E2DC78347544177892FFD4BC35041DDE2458289475441B0BEB7DE4BC35041825325C98C475441DDFCC1E34DC35041B3A38B968C47544170D4BF725CC35041F546CD298B4754414F9DB5DA7BC35041CEE99B04884754413A64660486C3504146A70DAC85475441E17A14BE9BC3504148E17A94804754418FC2F568ADC35041B81E85BB87475441465662B9AEC35041338ED7F184475441286748E6B5C35041918C1CB97547544148E17A54BEC3504114AE479166475441AE47E10ABFC350418FC2F53865475441B81E854BC0C35041A4703D6A634754417B14AEB7C1C35041CDCCCC5C61475441E17A14FEC3C35041333333135E475441A4703D6AC5C350415C8FC2055C4754418FC2F5A8C5C35041B81E85AB5B475441A4703D1AC6C35041F6285CBF5A475441B81E853BC7C35041295C8F6258475441CDCCCCFCC7C35041000000D056475441E17A143EC8C35041713D0A47564754413D0AD733C9C350410000000054475441713D0A77CAC35041295C8F0251475441C3F5280CCBC3504114AE47A14F475441295C8FF2CBC35041000000904D475441B81E858BCDC350413D0AD7E34947544152B81E65D0C35041D7A3709D434754418FC2F518D2C35041CDCCCCDC3F4754415C8FC285D2C35041E17A148E3E475441666666D6D4C35041295C8F7237475441EC51B88ED4C35041D7A3705D3647544166666646D4C350417B14AE4735475441333333C3D1C350419A9999992B4754415C8FC235D1C3504185EB51782947544114AE47B1CFC350415C8FC285244754417B14AE47CEC3504185EB51E81F475441A4703DCACDC35041F6285CEF1B4754415C8FC205CDC35041AE47E1BA15475441EC51B81ECCC35041333333130E475441F6285CFFCBC350417B14AE070D47544114AE47E1CBC350418FC2F5080C4754413D0AD773CBC3504148E17AE408475441295C8F52CBC35041295C8FF2074754411F85EBA1CAC35041EC51B8DE02475441713D0AB7CAC3504148E17A740147544114AE4701CBC3504114AE4761FC46544114AE4761CBC35041CDCCCCDCF54654411F85EBD1CAC35041EC51B8CEF5465441B81E853BC9C350419A9999C9F4465441295C8FE2C7C35041AE47E14AF346544166666696B8C35041EC51B8DEEB465441F6285CAFB5C350413D0AD7E3ED46544166666686B3C35041E17A149EF34654411F85EB21B3C35041666666F6F5465441B81E851BB3C35041AE47E1BAF746544152B81E05B3C3504166666676F946544114AE47F1B2C35041666666A6FB465441D7A370BDB2C35041F6285C2FFE465441713D0A77B2C350411F85EB6101475441333333C3B1C35041A4703DFA034754415C8FC2A5B0C3504185EB513807475441D7A370FDADC35041333333A30F475441EC51B86EAAC3504148E17A4415475441295C8FD2A6C350413D0AD7C31B475441333333C3A3C35041C3F5286C22475441EC51B80EA3C35041C3F5288C2547544133333393A2C35041E17A14AE2747544166666656A2C35041713D0AD728475441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000C3F5280C4AC35041333333B39B475441B81E852B4AC3504152B81EA5A1475441AE47E18A9FC35041000000109947544152B81ED59DC35041C3F5280C9447544100000000A1C3504148E17A848D4754410AD7A350A7C350413D0AD74385475441E17A14BE9BC3504148E17A94804754411F85EB718DC3504152B81EF5834754410AD7A3507BC3504148E17A24884754415C8FC2A54BC35041EC51B8CE8C4754419A9999F94AC3504152B81E058F475441666666364AC3504114AE475196475441C3F5280C4AC35041333333B39B475441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>923207 - 4454255
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -22 </desc>
+<a>
+0106000000010000000103000000010000005700000066666656A2C35041713D0AD728475441EC51B85E9EC35041B81E85EB3F475441DEBA84F99DC35041D83AF08B414754419B4E5E1498C35041FDCA40EE624754411ED40B3698C35041D8E297FF6C4754419AC32AFD49C35041B7A316346C4754413D0AD7C34AC35041F6285C9F6E475441F6285CBF48C3504148E17A14704754413B45372949C35041370A34E66F475441AF938FD048C350412977D43470475441DAB25B254AC35041D51D2EDF724754419F7F0C824BC35041E494065276475441F43A11DA4BC3504189E420A2774754411F85EB314CC350413333334378475441120E354D4CC35041C44414FA78475441133C2F6F4CC350413B268ADB79475441A4703DDA4CC350411F85EBA17C475441258902A94CC350416EAA041D8147544132D1BB8B4CC35041323E2DC78347544177892FFD4BC35041DDE2458289475441B0BEB7DE4BC35041825325C98C475441DDFCC1E34DC35041B3A38B968C47544170D4BF725CC35041F546CD298B4754414F9DB5DA7BC35041CEE99B04884754413A64660486C3504146A70DAC85475441E17A14BE9BC3504148E17A94804754418FC2F568ADC35041B81E85BB87475441465662B9AEC35041338ED7F184475441286748E6B5C35041918C1CB97547544148E17A54BEC3504114AE479166475441AE47E10ABFC350418FC2F53865475441B81E854BC0C35041A4703D6A634754417B14AEB7C1C35041CDCCCC5C61475441E17A14FEC3C35041333333135E475441A4703D6AC5C350415C8FC2055C4754418FC2F5A8C5C35041B81E85AB5B475441A4703D1AC6C35041F6285CBF5A475441B81E853BC7C35041295C8F6258475441CDCCCCFCC7C35041000000D056475441E17A143EC8C35041713D0A47564754413D0AD733C9C350410000000054475441713D0A77CAC35041295C8F0251475441C3F5280CCBC3504114AE47A14F475441295C8FF2CBC35041000000904D475441B81E858BCDC350413D0AD7E34947544152B81E65D0C35041D7A3709D434754418FC2F518D2C35041CDCCCCDC3F4754415C8FC285D2C35041E17A148E3E475441666666D6D4C35041295C8F7237475441EC51B88ED4C35041D7A3705D3647544166666646D4C350417B14AE4735475441333333C3D1C350419A9999992B4754415C8FC235D1C3504185EB51782947544114AE47B1CFC350415C8FC285244754417B14AE47CEC3504185EB51E81F475441A4703DCACDC35041F6285CEF1B4754415C8FC205CDC35041AE47E1BA15475441EC51B81ECCC35041333333130E475441F6285CFFCBC350417B14AE070D47544114AE47E1CBC350418FC2F5080C4754413D0AD773CBC3504148E17AE408475441295C8F52CBC35041295C8FF2074754411F85EBA1CAC35041EC51B8DE02475441713D0AB7CAC3504148E17A740147544114AE4701CBC3504114AE4761FC46544114AE4761CBC35041CDCCCCDCF54654411F85EBD1CAC35041EC51B8CEF5465441B81E853BC9C350419A9999C9F4465441295C8FE2C7C35041AE47E14AF346544166666696B8C35041EC51B8DEEB465441F6285CAFB5C350413D0AD7E3ED46544166666686B3C35041E17A149EF34654411F85EB21B3C35041666666F6F5465441B81E851BB3C35041AE47E1BAF746544152B81E05B3C3504166666676F946544114AE47F1B2C35041666666A6FB465441D7A370BDB2C35041F6285C2FFE465441713D0A77B2C350411F85EB6101475441333333C3B1C35041A4703DFA034754415C8FC2A5B0C3504185EB513807475441D7A370FDADC35041333333A30F475441EC51B86EAAC3504148E17A4415475441295C8FD2A6C350413D0AD7C31B475441333333C3A3C35041C3F5286C22475441EC51B80EA3C35041C3F5288C2547544133333393A2C35041E17A14AE2747544166666656A2C35041713D0AD728475441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000C3F5280C4AC35041333333B39B475441B81E852B4AC3504152B81EA5A1475441AE47E18A9FC35041000000109947544152B81ED59DC35041C3F5280C9447544100000000A1C3504148E17A848D4754410AD7A350A7C350413D0AD74385475441E17A14BE9BC3504148E17A94804754411F85EB718DC3504152B81EF5834754410AD7A3507BC3504148E17A24884754415C8FC2A54BC35041EC51B8CE8C4754419A9999F94AC3504152B81E058F475441666666364AC3504114AE475196475441C3F5280C4AC35041333333B39B475441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>660093 - 407932
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+01060000000100000001030000000700000059000000B81E859BBFB7504148E17AE412D8544166666646ADB750415C8FC2350ED85441295C8F529AB750418FC2F5C809D85441CDCCCC2C94B750410AD7A36006D8544148E17AE492B75041AE47E19A05D854417B14AE378DB7504185EB517801D85441EC51B8DE88B7504100000080FED754413D0AD7B387B75041EC51B81EFDD75441333333C388B75041713D0A97FCD75441E17A14EE89B750410AD7A320FED7544114AE47518CB75041F6285C8FFFD75441666666A68EB75041E17A14FE00D854419A99990991B75041EC51B85E02D854410AD7A3A092B75041F6285C0F03D854413D0AD74393B75041B81E85CB02D85441666666E693B75041E17A14EEFFD75441EC51B81E95B75041B81E85FBF8D75441E17A147E95B7504148E17AA4F5D754410000007095B750413D0AD7F3F4D7544185EB513894B75041EC51B85EF4D754418FC2F55890B750418FC2F5C8F3D75441000000B08CB750410AD7A3A0F3D754410AD7A3E089B75041F6285C4FF3D75441AE47E19A88B75041E17A14AEF3D754418FC2F54888B7504152B81E45F5D75441E17A142E88B750411F85EB71F7D7544148E17A6488B75041AE47E15AF9D754418FC2F54888B7504185EB5128FBD754419A99993987B75041F6285C0FFCD754418FC2F58886B75041713D0A97FCD75441CDCCCC1C86B75041295C8FA2FBD754411F85EBB186B75041EC51B89EF9D754413333330387B75041CDCCCCDCF6D754419A99993987B7504185EB5128F4D754413D0AD7B387B75041EC51B89EF2D75441AE47E19A88B750411F85EB31F2D75441666666268BB75041713D0A17F2D75441B81E853B8FB7504185EB5168F2D754413D0AD73392B75041295C8FE2F2D7544114AE471195B750417B14AE77F3D7544114AE470197B750419A999919F4D754418FC2F5B89AB75041713D0A17DCD75441A4703D6A72B75041E17A148EDED754419A99992963B75041CDCCCC7CDFD754419A99991964B75041666666E6E0D75441F6285CEF65B750419A9999A9E2D754413333336369B75041D7A3708DE5D75441713D0A476CB750418FC2F528E8D75441D7A370CD6FB7504148E17A84EDD754413333333372B75041F6285CBFF1D75441F6285CCF74B7504185EB51E8F5D75441F6285CCF75B7504133333303FAD75441B81E85DB75B750411F85EB31FDD754418FC2F52875B75041666666B601D8544185EB51E873B7504185EB512804D8544185EB51E871B75041713D0AF705D85441CDCCCC2C6FB75041713D0A0707D85441F6285CBF6CB7504185EB517807D85441EC51B88E6AB75041295C8FA209D8544152B81EF568B75041E17A148E0BD8544114AE471166B75041CDCCCC3C0DD85441EC51B89E5FB75041F6285CFF15D85441295C8F025FB7504152B81E1518D8544185EB512861B750410000006028D85441E17A144E62B75041D7A370CD2CD854411F85EBC164B750417B14AE872FD8544185EB51486CB75041C3F528CC3BD8544114AE478172B75041713D0A9744D854410000004078B75041B81E85FB3FD85441C3F528BC79B750413D0AD75340D85441E17A146E7AB750417B14AEB73ED8544152B81E957EB750413333337340D85441C3F528CC7DB750418FC2F54842D85441713D0A9777B750419A99993949D85441A4703DCA7BB75041A4703DBA4CD85441AE47E1DA7DB750410AD7A3E04DD8544114AE47417FB750410AD7A3504DD8544114AE47E182B75041A4703DBA4BD8544185EB512885B75041C3F5286C49D85441666666368EB75041C3F5280C43D85441F6285C7F93B7504185EB51D83FD85441CDCCCCDCB8B750417B14AED726D85441CDCCCCCCBAB750418FC2F5F824D85441333333A3BCB750415C8FC20523D854413D0AD703BEB750415C8FC2E520D85441AE47E1FABEB750411F85EB811ED85441AE47E1AABFB7504148E17AD41BD85441E17A14FEC0B75041713D0AF711D85441B81E859BBFB7504148E17AE412D854410A000000A4703DBA82B75041EC51B8BEFCD7544185EB519880B750410AD7A380FCD754413D0AD7237FB75041F6285C4FFCD754411F85EB817EB75041F6285CDFFBD754411F85EB817EB750418FC2F518FBD75441A4703DEA7FB75041E17A143EFBD754413D0AD76382B75041E17A143EFBD7544185EB516883B75041F6285CDFFBD7544114AE478183B7504185EB5168FCD75441A4703DBA82B75041EC51B8BEFCD754410A0000000AD7A3C08AB75041B81E857B20D85441AE47E1BA87B7504114AE475120D8544185EB519884B75041CDCCCCFC1FD85441D7A370CD80B75041EC51B8EE1FD85441C3F528EC7FB75041666666B61FD854415C8FC2A57FB750419A9999291FD85441295C8F3280B750418FC2F5B81ED85441A4703D4A87B750419A9999291FD85441B81E855B8BB7504148E17AC41FD854410AD7A3C08AB75041B81E857B20D8544116000000A4703DFA94B75041333333E31ED85441F6285C8F92B750418FC2F5B81ED85441C3F5285C90B75041333333E31ED85441B81E851B8EB75041F6285CFF1ED85441A4703D3A8DB7504152B81ED51ED8544185EB51488DB75041C3F5282C1ED854413D0AD7538EB750419A9999C91DD85441CDCCCC1C98B75041D7A370AD1DD85441295C8FF297B75041666666B61FD85441C3F528AC97B750418FC2F58821D854416666666697B7504185EB517823D854418FC2F51897B7504114AE473125D85441E17A148E96B750417B14AE4727D85441295C8F0296B7504114AE47F128D85441EC51B87E95B7504152B81E7529D85441C3F528EC94B750417B14AE2729D854418FC2F53895B7504185EB511828D854413D0AD7E395B750415C8FC2A525D854415C8FC29596B75041B81E850B23D854411F85EB0197B750413D0AD73321D85441F6285C1F97B750417B14AE371FD85441A4703DFA94B75041333333E31ED85441100000003333338379B75041AE47E19AF7D7544152B81E4579B7504185EB5148F8D754411F85EB7178B75041E17A14FEF7D754415C8FC2F577B750413D0AD743F7D754410AD7A3F076B7504166666626F6D7544185EB51F875B750418FC2F598F4D75441E17A143E75B75041EC51B86EF3D754415C8FC2B574B75041C3F528BCF1D754417B14AE7774B75041AE47E1AAF0D75441EC51B8CE74B75041EC51B82EF0D754410000007075B75041CDCCCCFCEFD7544185EB51F875B75041A4703D8AF1D754419A99990977B75041713D0AF7F3D754418FC2F5E877B7504114AE4791F5D75441E17A14EE78B75041CDCCCCECF6D754413333338379B75041AE47E19AF7D75441250000001F85EB41B2B75041AE47E1FA21D85441333333A3B1B750418FC2F55823D8544152B81E95B0B7504185EB51A823D854415C8FC215B0B750416666669624D85441713D0A87AFB750413D0AD72326D85441F6285C6FAAB750410AD7A33028D85441295C8F62A8B75041E17A14CE29D85441713D0AE7A5B75041C3F528FC2AD85441B81E856BA3B75041EC51B85E29D85441B81E853BA3B75041295C8F3227D85441B81E855BA3B750415C8FC2F524D85441C3F528DCA2B75041AE47E12A22D8544100000080A0B750415C8FC2A51BD85441C3F528ACA8B750415C8FC26517D85441E17A141EA9B750419A99994918D85441CDCCCC5CA2B7504148E17A541CD85441D7A3701DA2B75041295C8FB21DD85441B81E852BA3B75041D7A3707D20D85441A4703D2AA4B750418FC2F54823D854418FC2F5E8A4B750415C8FC23525D854417B14AE67A5B7504152B81EB525D85441713D0AF7A5B7504148E17A0426D85441333333E3A7B750410AD7A3C025D8544166666636AAB7504148E17AD424D8544114AE4731ACB750413D0AD7B323D85441AE47E13AADB750419A9999C922D85441E17A147EADB75041F6285CAF21D8544166666626ADB750415C8FC22520D85441295C8FE2ABB750417B14AED71BD85441AE47E12AABB750415C8FC23519D854411F85EBC1AAB750417B14AED717D8544100000090A9B750411F85EBF117D854413D0AD763A9B750415C8FC20517D85441F6285CFFAAB75041713D0A5716D854415C8FC2F5AEB75041666666C621D8544133333393B1B75041E17A143E20D854411F85EB41B2B75041AE47E1FA21D85441160000000000003079B750417B14AEC72AD8544114AE478176B75041295C8F622BD8544185EB512874B7504148E17AC428D85441C3F528DC6EB750411F85EBC126D854419A9999F96EB75041CDCCCC6C24D8544114AE47816BB750410000004020D85441000000C067B7504148E17A941FD85441F6285CDF65B750411F85EB811ED85441B81E85AB65B75041EC51B8BE19D854417B14AE4767B750413333339313D85441D7A3700D6CB75041A4703DFA0BD85441CDCCCCDC75B750411F85EBB10AD854416666660679B7504185EB51F80AD854410AD7A3107BB75041295C8FD20BD8544185EB51987AB75041C3F5282C13D854418FC2F5B879B750410000001017D85441713D0AC777B750419A9999591AD85441AE47E1EA78B7504114AE47911DD85441000000707CB75041666666D61FD85441EC51B8CE7CB75041C3F5289C24D8544152B81E557BB75041F6285C8F27D854410000003079B750417B14AEC72AD85441
+</a>
+
+<b>
+0106000000010000000103000000010000002A0000002D41254B66B75041EFC5FC5A17D854411014AE4767B75041C832339313D85441ACA3700D6CB75041A4703DFA0BD85441478FC22576B750415E90C24509D85441330AD7A376B75041AC7A14EE05D8544160AE471166B7504118CDCC3C0DD854412B51721C63B750414580154111D85441EC51B89E5FB75041F6285CFF15D85441345C8F025FB750412BB81E1518D854411509A4C35FB750416CACF8CD1DD8544185EB512861B750410000006028D85441ACA11E3461B750418513878D28D85441E88859AA61B750413583B4552AD85441EE7B144E62B75041E0A270CD2CD85441745D3CB664B750418086AF7A2FD854411F85EBC164B750417B14AE872FD85441B31A1E1766B750415653E9B331D854415FEE51486CB75041CBF928CC3BD8544114AE478172B75041713D0A9744D854414B46441C76B750417595CDB241D854410000004078B75041B81E85FB3FD854414CF528BC79B750411D0AD75340D85441A168684C7AB75041D5E0AE053FD85441227B146E7AB750411014AEB73ED854413B8DCE827EB7504191358F6B40D8544133B81E957EB750412633337340D854413752B8AE7EB750413AEB513840D85441878FC2F583B7504179703D5A2CD8544196195F027AB7504179A9E08B29D854410000003079B750417B14AEC72AD8544114AE478176B75041295C8F622BD8544185EB512874B7504148E17AC428D85441C3F528DC6EB750411F85EBC126D854419A9999F96EB75041D8CCCC6C24D8544141D1027E6EB750410DF719D823D8544114AE47816BB750410000004020D85441000000C067B7504148E17A941FD854414EBB567666B7504173352AD81ED85441A0285CDF65B750413485EB811ED85441F01A17CC65B750414861B9BC1CD85441B81E85AB65B75041EC51B8BE19D854412D41254B66B75041EFC5FC5A17D85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>660093 - 430003
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 7 </desc>
+<a>
+01060000000100000001030000000700000059000000B81E859BBFB7504148E17AE412D8544166666646ADB750415C8FC2350ED85441295C8F529AB750418FC2F5C809D85441CDCCCC2C94B750410AD7A36006D8544148E17AE492B75041AE47E19A05D854417B14AE378DB7504185EB517801D85441EC51B8DE88B7504100000080FED754413D0AD7B387B75041EC51B81EFDD75441333333C388B75041713D0A97FCD75441E17A14EE89B750410AD7A320FED7544114AE47518CB75041F6285C8FFFD75441666666A68EB75041E17A14FE00D854419A99990991B75041EC51B85E02D854410AD7A3A092B75041F6285C0F03D854413D0AD74393B75041B81E85CB02D85441666666E693B75041E17A14EEFFD75441EC51B81E95B75041B81E85FBF8D75441E17A147E95B7504148E17AA4F5D754410000007095B750413D0AD7F3F4D7544185EB513894B75041EC51B85EF4D754418FC2F55890B750418FC2F5C8F3D75441000000B08CB750410AD7A3A0F3D754410AD7A3E089B75041F6285C4FF3D75441AE47E19A88B75041E17A14AEF3D754418FC2F54888B7504152B81E45F5D75441E17A142E88B750411F85EB71F7D7544148E17A6488B75041AE47E15AF9D754418FC2F54888B7504185EB5128FBD754419A99993987B75041F6285C0FFCD754418FC2F58886B75041713D0A97FCD75441CDCCCC1C86B75041295C8FA2FBD754411F85EBB186B75041EC51B89EF9D754413333330387B75041CDCCCCDCF6D754419A99993987B7504185EB5128F4D754413D0AD7B387B75041EC51B89EF2D75441AE47E19A88B750411F85EB31F2D75441666666268BB75041713D0A17F2D75441B81E853B8FB7504185EB5168F2D754413D0AD73392B75041295C8FE2F2D7544114AE471195B750417B14AE77F3D7544114AE470197B750419A999919F4D754418FC2F5B89AB75041713D0A17DCD75441A4703D6A72B75041E17A148EDED754419A99992963B75041CDCCCC7CDFD754419A99991964B75041666666E6E0D75441F6285CEF65B750419A9999A9E2D754413333336369B75041D7A3708DE5D75441713D0A476CB750418FC2F528E8D75441D7A370CD6FB7504148E17A84EDD754413333333372B75041F6285CBFF1D75441F6285CCF74B7504185EB51E8F5D75441F6285CCF75B7504133333303FAD75441B81E85DB75B750411F85EB31FDD754418FC2F52875B75041666666B601D8544185EB51E873B7504185EB512804D8544185EB51E871B75041713D0AF705D85441CDCCCC2C6FB75041713D0A0707D85441F6285CBF6CB7504185EB517807D85441EC51B88E6AB75041295C8FA209D8544152B81EF568B75041E17A148E0BD8544114AE471166B75041CDCCCC3C0DD85441EC51B89E5FB75041F6285CFF15D85441295C8F025FB7504152B81E1518D8544185EB512861B750410000006028D85441E17A144E62B75041D7A370CD2CD854411F85EBC164B750417B14AE872FD8544185EB51486CB75041C3F528CC3BD8544114AE478172B75041713D0A9744D854410000004078B75041B81E85FB3FD85441C3F528BC79B750413D0AD75340D85441E17A146E7AB750417B14AEB73ED8544152B81E957EB750413333337340D85441C3F528CC7DB750418FC2F54842D85441713D0A9777B750419A99993949D85441A4703DCA7BB75041A4703DBA4CD85441AE47E1DA7DB750410AD7A3E04DD8544114AE47417FB750410AD7A3504DD8544114AE47E182B75041A4703DBA4BD8544185EB512885B75041C3F5286C49D85441666666368EB75041C3F5280C43D85441F6285C7F93B7504185EB51D83FD85441CDCCCCDCB8B750417B14AED726D85441CDCCCCCCBAB750418FC2F5F824D85441333333A3BCB750415C8FC20523D854413D0AD703BEB750415C8FC2E520D85441AE47E1FABEB750411F85EB811ED85441AE47E1AABFB7504148E17AD41BD85441E17A14FEC0B75041713D0AF711D85441B81E859BBFB7504148E17AE412D854410A000000A4703DBA82B75041EC51B8BEFCD7544185EB519880B750410AD7A380FCD754413D0AD7237FB75041F6285C4FFCD754411F85EB817EB75041F6285CDFFBD754411F85EB817EB750418FC2F518FBD75441A4703DEA7FB75041E17A143EFBD754413D0AD76382B75041E17A143EFBD7544185EB516883B75041F6285CDFFBD7544114AE478183B7504185EB5168FCD75441A4703DBA82B75041EC51B8BEFCD754410A0000000AD7A3C08AB75041B81E857B20D85441AE47E1BA87B7504114AE475120D8544185EB519884B75041CDCCCCFC1FD85441D7A370CD80B75041EC51B8EE1FD85441C3F528EC7FB75041666666B61FD854415C8FC2A57FB750419A9999291FD85441295C8F3280B750418FC2F5B81ED85441A4703D4A87B750419A9999291FD85441B81E855B8BB7504148E17AC41FD854410AD7A3C08AB75041B81E857B20D8544116000000A4703DFA94B75041333333E31ED85441F6285C8F92B750418FC2F5B81ED85441C3F5285C90B75041333333E31ED85441B81E851B8EB75041F6285CFF1ED85441A4703D3A8DB7504152B81ED51ED8544185EB51488DB75041C3F5282C1ED854413D0AD7538EB750419A9999C91DD85441CDCCCC1C98B75041D7A370AD1DD85441295C8FF297B75041666666B61FD85441C3F528AC97B750418FC2F58821D854416666666697B7504185EB517823D854418FC2F51897B7504114AE473125D85441E17A148E96B750417B14AE4727D85441295C8F0296B7504114AE47F128D85441EC51B87E95B7504152B81E7529D85441C3F528EC94B750417B14AE2729D854418FC2F53895B7504185EB511828D854413D0AD7E395B750415C8FC2A525D854415C8FC29596B75041B81E850B23D854411F85EB0197B750413D0AD73321D85441F6285C1F97B750417B14AE371FD85441A4703DFA94B75041333333E31ED85441100000003333338379B75041AE47E19AF7D7544152B81E4579B7504185EB5148F8D754411F85EB7178B75041E17A14FEF7D754415C8FC2F577B750413D0AD743F7D754410AD7A3F076B7504166666626F6D7544185EB51F875B750418FC2F598F4D75441E17A143E75B75041EC51B86EF3D754415C8FC2B574B75041C3F528BCF1D754417B14AE7774B75041AE47E1AAF0D75441EC51B8CE74B75041EC51B82EF0D754410000007075B75041CDCCCCFCEFD7544185EB51F875B75041A4703D8AF1D754419A99990977B75041713D0AF7F3D754418FC2F5E877B7504114AE4791F5D75441E17A14EE78B75041CDCCCCECF6D754413333338379B75041AE47E19AF7D75441250000001F85EB41B2B75041AE47E1FA21D85441333333A3B1B750418FC2F55823D8544152B81E95B0B7504185EB51A823D854415C8FC215B0B750416666669624D85441713D0A87AFB750413D0AD72326D85441F6285C6FAAB750410AD7A33028D85441295C8F62A8B75041E17A14CE29D85441713D0AE7A5B75041C3F528FC2AD85441B81E856BA3B75041EC51B85E29D85441B81E853BA3B75041295C8F3227D85441B81E855BA3B750415C8FC2F524D85441C3F528DCA2B75041AE47E12A22D8544100000080A0B750415C8FC2A51BD85441C3F528ACA8B750415C8FC26517D85441E17A141EA9B750419A99994918D85441CDCCCC5CA2B7504148E17A541CD85441D7A3701DA2B75041295C8FB21DD85441B81E852BA3B75041D7A3707D20D85441A4703D2AA4B750418FC2F54823D854418FC2F5E8A4B750415C8FC23525D854417B14AE67A5B7504152B81EB525D85441713D0AF7A5B7504148E17A0426D85441333333E3A7B750410AD7A3C025D8544166666636AAB7504148E17AD424D8544114AE4731ACB750413D0AD7B323D85441AE47E13AADB750419A9999C922D85441E17A147EADB75041F6285CAF21D8544166666626ADB750415C8FC22520D85441295C8FE2ABB750417B14AED71BD85441AE47E12AABB750415C8FC23519D854411F85EBC1AAB750417B14AED717D8544100000090A9B750411F85EBF117D854413D0AD763A9B750415C8FC20517D85441F6285CFFAAB75041713D0A5716D854415C8FC2F5AEB75041666666C621D8544133333393B1B75041E17A143E20D854411F85EB41B2B75041AE47E1FA21D85441160000000000003079B750417B14AEC72AD8544114AE478176B75041295C8F622BD8544185EB512874B7504148E17AC428D85441C3F528DC6EB750411F85EBC126D854419A9999F96EB75041CDCCCC6C24D8544114AE47816BB750410000004020D85441000000C067B7504148E17A941FD85441F6285CDF65B750411F85EB811ED85441B81E85AB65B75041EC51B8BE19D854417B14AE4767B750413333339313D85441D7A3700D6CB75041A4703DFA0BD85441CDCCCCDC75B750411F85EBB10AD854416666660679B7504185EB51F80AD854410AD7A3107BB75041295C8FD20BD8544185EB51987AB75041C3F5282C13D854418FC2F5B879B750410000001017D85441713D0AC777B750419A9999591AD85441AE47E1EA78B7504114AE47911DD85441000000707CB75041666666D61FD85441EC51B8CE7CB75041C3F5289C24D8544152B81E557BB75041F6285C8F27D854410000003079B750417B14AEC72AD85441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000D7A3700D6CB75041A4703DFA0BD85441B8E8C32576B75041DA77C34509D85441E245D7A376B75041FA0414EE05D8544114AE471166B75041CDCCCC3C0DD854411734C42A62B750417C54728912D85441A875B89E5FB7504142A25CFF15D85441871890025FB750413D791E1518D85441685F809060B7504174A231E023D8544185EB512861B750410000006028D85441F22C39B461B750412225CD7B2AD85441D6B9144E62B75041B73170CD2CD8544175A463BA63B750410C7299622ED854411F85EBC164B750417B14AE872FD8544185EB51486CB75041C3F528CC3BD85441DD5A478172B75041D5C7099744D8544149655C0875B750414579149042D854415503014078B75041653985FB3FD85441C3F528BC79B750413D0AD75340D85441E17A146E7AB750417B14AEB73ED8544152B81E957EB750413333337340D8544107E5C3F583B7504159CF3D5A2CD85441A1195F027AB7504163A9E08B29D85441C151B8CE78B7504192B81E3529D85441CDCCCC3C73B7504185EB51F826D854413C9E98F96EB75041B4F3CB6C24D85441AE47E15A6FB75041A4703D5A21D854419A1349E168B7504140B3B73E1CD85441F13FFF2F6AB75041000CB8EE14D85441D7A3700D6CB75041A4703DFA0BD85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>660145 - 177208
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000200000062000000713D0A07E7C050413D0AD72358DA5441F6285C2FE9C050415C8FC2755BDA54413D0AD793E8C050417B14AE975FDA5441CDCCCC6CE5C05041AE47E1AA6ADA5441CDCCCC1CE3C05041A4703DFA70DA544185EB5158DDC05041B81E85BB75DA544148E17AC4E0C05041A4703D2A78DA5441AE47E1CAE2C050413D0AD7337BDA544133333373E6C05041CDCCCCFC83DA544185EB51B8E7C0504152B81EB583DA544152B81EB5E6C05041A4703D3A7DDA54418FC2F5E8E6C05041B81E853B78DA5441EC51B80EE8C05041AE47E16A71DA54417B14AE37EAC0504114AE47016BDA544114AE4791EBC050410AD7A3C066DA54415C8FC2A5ECC05041333333A362DA5441AE47E1EAECC05041333333435FDA544133333313EDC05041713D0A575DDA5441295C8F72EDC050413D0AD7635ADA5441CDCCCC5CF2C05041713D0A3758DA5441713D0A67F9C050419A99997955DA54415C8FC2F5FDC050417B14AEB752DA5441295C8FA206C15041E17A14FE4CDA5441295C8F620DC150411F85EBF146DA54417B14AE970CC150411F85EBA145DA5441295C8FB223C15041713D0AC745DA544152B81EE52DC15041B81E859B46DA5441E17A141E32C15041CDCCCC5C47DA5441B81E85BB49C15041295C8F324DDA544148E17A8449C150413D0AD7734BDA54418FC2F5F841C15041B81E85DB49DA54417B14AE473EC15041A4703D5A48DA544185EB51383BC150415C8FC21546DA544185EB515838C150419A9999B945DA5441713D0A972EC15041E17A142E46DA5441CDCCCCBC27C1504114AE476145DA54418FC2F5A823C1504148E17A1444DA5441F6285CBF1FC15041E17A148E41DA54417B14AE471BC150419A99991941DA5441F6285C7F15C150416666662641DA54410AD7A3800BC150410AD7A30044DA5441AE47E1CA04C15041F6285C0F45DA544185EB51B800C150417B14AE8744DA54417B14AEA7FCC050413D0AD70342DA5441713D0AA7F9C050410AD7A37040DA544152B81E35F8C050417B14AE474ADA544114AE4741F7C05041713D0A974ADA544152B81E45F0C05041000000E04CDA5441AE47E1AAEDC05041F6285C0F4DDA54419A999949EBC05041A4703D7A4CDA5441A4703DDAE7C05041666666D649DA544148E17AD4DFC050410000001046DA54413D0AD7D3D5C0504114AE477143DA54411F85EB31CEC05041333333B33FDA54410AD7A3E0CAC05041713D0A173FDA5441AE47E10ACCC050419A99997940DA544114AE4751BFC05041295C8FB243DA54415C8FC245BEC050413D0AD78341DA5441000000C0BBC05041E17A14AE42DA544148E17AA4BFC0504114AE47A153DA544166666606B1C050418FC2F58856DA544148E17A94ACC050419A9999E952DA5441AE47E1DAA3C05041C3F528CC54DA5441C3F5286C9FC05041A4703D5A55DA5441666666C69AC0504185EB514855DA5441A4703DDA94C05041EC51B8AE58DA54410000005091C05041B81E85BB5ADA5441EC51B8DE8BC05041B81E85DB5DDA5441E17A14DE8BC05041CDCCCC4C5EDA544114AE47E18BC05041295C8F425FDA544185EB51088CC050418FC2F53876DA5441CDCCCC4C92C0504152B81EB578DA54411F85EB219AC050413D0AD7237BDA54419A9999F99DC05041333333937DDA544100000080A2C0504148E17AF484DA5441F6285C0FA6C05041295C8FE28CDA544100000030A7C050413333336391DA5441B81E850BA9C050413333330397DA5441F6285C0FAFC05041713D0A3796DA544148E17A34AEC0504114AE47518EDA54410AD7A3C0ABC050415C8FC2658ADA5441713D0A87AAC050415C8FC28585DA544114AE4751A8C050413333339380DA5441D7A370EDA7C050413D0AD7437BDA544114AE47C1A5C05041F6285CEF7ADA54413D0AD743A2C05041F6285CFF70DA544148E17AB49FC050415C8FC21568DA5441666666369FC05041EC51B8BE61DA5441713D0A87A3C05041333333435EDA5441CDCCCC7CABC050411F85EBB164DA544152B81E75B0C050413D0AD74364DA54419A9999A9BDC0504148E17AF45FDA5441EC51B82EC0C05041E17A143E62DA54417B14AEF7C5C05041AE47E15A5FDA54413D0AD713CCC050413D0AD7435DDA5441C3F5282CD3C050415C8FC2D55ADA5441295C8F92E0C05041AE47E17A57DA5441713D0A07E7C050413D0AD72358DA54411C0000003D0AD773A1C050419A9999E95ADA54415C8FC2B5A2C050410AD7A3705BDA54418FC2F538A2C05041F6285C5F5CDA5441AE47E1FAA1C05041C3F528DC5CDA54413D0AD743A2C050413D0AD7135EDA54413D0AD773A1C05041CDCCCC0C5FDA544114AE4751A0C050413D0AD7935FDA5441E17A142E9FC0504114AE47C160DA5441EC51B85E9EC05041C3F5284C62DA54418FC2F5689EC0504185EB519863DA544152B81E359EC05041AE47E18A65DA54410AD7A3509DC05041D7A3702D65DA5441C3F5281C9DC05041AE47E1BA64DA5441333333F39CC050410000000064DA5441C3F5286C9CC05041EC51B86E63DA54415C8FC2C59BC05041E17A14BE62DA54410AD7A3B09BC050418FC2F5F861DA5441E17A140E9CC0504114AE47C160DA5441713D0A579CC050416666660660DA5441A4703DDA9BC0504114AE47715EDA5441EC51B83E9BC05041AE47E14A5CDA5441E17A148E9AC0504152B81E855BDA5441000000509AC050418FC2F5385ADA5441EC51B83E9BC05041A4703D4A59DA544185EB51E89CC05041AE47E12A59DA544152B81E359EC05041295C8F9259DA5441713D0A779FC050413D0AD7235ADA54413D0AD773A1C050419A9999E95ADA5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000228CEB950EC15041EA9D621F43DA5441C0D3A3800BC150418FD7A30044DA5441D2F214EF05C15041A80E4FE144DA54418D8D8A1809C15041031311F746DA54417B14AE970CC150411F85EBA145DA5441C927500D13C1504130364CAC45DA5441745C8FB223C150413B3D0AC745DA5441CAD0483428C15041ACCBF12446DA544152B81EE52DC15041B81E859B46DA5441E17A141E32C15041CDCCCC5C47DA5441AE1E85BB49C15041275C8F324DDA544123E17A8449C15041350AD7734BDA54418FC2F5F841C15041B81E85DB49DA5441F75046EA3FC15041BD1FDA0449DA54412514AE473EC15041B9703D5A48DA54412FEB51383BC15041518FC21546DA54413AEB515838C15041BA9999B945DA544112CEE78C35C15041B809F8DA45DA5441713D0A972EC15041E17A142E46DA5441C2CCCCBC27C1504114AE476145DA544139C2F5A823C1504173E17A1444DA5441467741A921C1504104243ECA42DA5441F6285CBF1FC15041E17A148E41DA5441A6274F5C1DC15041E9B4D84F41DA54418614AE471BC15041CF99991941DA544136295C7F15C150418766662641DA5441228CEB950EC15041EA9D621F43DA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>660145 - 351464
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000200000062000000713D0A07E7C050413D0AD72358DA5441F6285C2FE9C050415C8FC2755BDA54413D0AD793E8C050417B14AE975FDA5441CDCCCC6CE5C05041AE47E1AA6ADA5441CDCCCC1CE3C05041A4703DFA70DA544185EB5158DDC05041B81E85BB75DA544148E17AC4E0C05041A4703D2A78DA5441AE47E1CAE2C050413D0AD7337BDA544133333373E6C05041CDCCCCFC83DA544185EB51B8E7C0504152B81EB583DA544152B81EB5E6C05041A4703D3A7DDA54418FC2F5E8E6C05041B81E853B78DA5441EC51B80EE8C05041AE47E16A71DA54417B14AE37EAC0504114AE47016BDA544114AE4791EBC050410AD7A3C066DA54415C8FC2A5ECC05041333333A362DA5441AE47E1EAECC05041333333435FDA544133333313EDC05041713D0A575DDA5441295C8F72EDC050413D0AD7635ADA5441CDCCCC5CF2C05041713D0A3758DA5441713D0A67F9C050419A99997955DA54415C8FC2F5FDC050417B14AEB752DA5441295C8FA206C15041E17A14FE4CDA5441295C8F620DC150411F85EBF146DA54417B14AE970CC150411F85EBA145DA5441295C8FB223C15041713D0AC745DA544152B81EE52DC15041B81E859B46DA5441E17A141E32C15041CDCCCC5C47DA5441B81E85BB49C15041295C8F324DDA544148E17A8449C150413D0AD7734BDA54418FC2F5F841C15041B81E85DB49DA54417B14AE473EC15041A4703D5A48DA544185EB51383BC150415C8FC21546DA544185EB515838C150419A9999B945DA5441713D0A972EC15041E17A142E46DA5441CDCCCCBC27C1504114AE476145DA54418FC2F5A823C1504148E17A1444DA5441F6285CBF1FC15041E17A148E41DA54417B14AE471BC150419A99991941DA5441F6285C7F15C150416666662641DA54410AD7A3800BC150410AD7A30044DA5441AE47E1CA04C15041F6285C0F45DA544185EB51B800C150417B14AE8744DA54417B14AEA7FCC050413D0AD70342DA5441713D0AA7F9C050410AD7A37040DA544152B81E35F8C050417B14AE474ADA544114AE4741F7C05041713D0A974ADA544152B81E45F0C05041000000E04CDA5441AE47E1AAEDC05041F6285C0F4DDA54419A999949EBC05041A4703D7A4CDA5441A4703DDAE7C05041666666D649DA544148E17AD4DFC050410000001046DA54413D0AD7D3D5C0504114AE477143DA54411F85EB31CEC05041333333B33FDA54410AD7A3E0CAC05041713D0A173FDA5441AE47E10ACCC050419A99997940DA544114AE4751BFC05041295C8FB243DA54415C8FC245BEC050413D0AD78341DA5441000000C0BBC05041E17A14AE42DA544148E17AA4BFC0504114AE47A153DA544166666606B1C050418FC2F58856DA544148E17A94ACC050419A9999E952DA5441AE47E1DAA3C05041C3F528CC54DA5441C3F5286C9FC05041A4703D5A55DA5441666666C69AC0504185EB514855DA5441A4703DDA94C05041EC51B8AE58DA54410000005091C05041B81E85BB5ADA5441EC51B8DE8BC05041B81E85DB5DDA5441E17A14DE8BC05041CDCCCC4C5EDA544114AE47E18BC05041295C8F425FDA544185EB51088CC050418FC2F53876DA5441CDCCCC4C92C0504152B81EB578DA54411F85EB219AC050413D0AD7237BDA54419A9999F99DC05041333333937DDA544100000080A2C0504148E17AF484DA5441F6285C0FA6C05041295C8FE28CDA544100000030A7C050413333336391DA5441B81E850BA9C050413333330397DA5441F6285C0FAFC05041713D0A3796DA544148E17A34AEC0504114AE47518EDA54410AD7A3C0ABC050415C8FC2658ADA5441713D0A87AAC050415C8FC28585DA544114AE4751A8C050413333339380DA5441D7A370EDA7C050413D0AD7437BDA544114AE47C1A5C05041F6285CEF7ADA54413D0AD743A2C05041F6285CFF70DA544148E17AB49FC050415C8FC21568DA5441666666369FC05041EC51B8BE61DA5441713D0A87A3C05041333333435EDA5441CDCCCC7CABC050411F85EBB164DA544152B81E75B0C050413D0AD74364DA54419A9999A9BDC0504148E17AF45FDA5441EC51B82EC0C05041E17A143E62DA54417B14AEF7C5C05041AE47E15A5FDA54413D0AD713CCC050413D0AD7435DDA5441C3F5282CD3C050415C8FC2D55ADA5441295C8F92E0C05041AE47E17A57DA5441713D0A07E7C050413D0AD72358DA54411C0000003D0AD773A1C050419A9999E95ADA54415C8FC2B5A2C050410AD7A3705BDA54418FC2F538A2C05041F6285C5F5CDA5441AE47E1FAA1C05041C3F528DC5CDA54413D0AD743A2C050413D0AD7135EDA54413D0AD773A1C05041CDCCCC0C5FDA544114AE4751A0C050413D0AD7935FDA5441E17A142E9FC0504114AE47C160DA5441EC51B85E9EC05041C3F5284C62DA54418FC2F5689EC0504185EB519863DA544152B81E359EC05041AE47E18A65DA54410AD7A3509DC05041D7A3702D65DA5441C3F5281C9DC05041AE47E1BA64DA5441333333F39CC050410000000064DA5441C3F5286C9CC05041EC51B86E63DA54415C8FC2C59BC05041E17A14BE62DA54410AD7A3B09BC050418FC2F5F861DA5441E17A140E9CC0504114AE47C160DA5441713D0A579CC050416666660660DA5441A4703DDA9BC0504114AE47715EDA5441EC51B83E9BC05041AE47E14A5CDA5441E17A148E9AC0504152B81E855BDA5441000000509AC050418FC2F5385ADA5441EC51B83E9BC05041A4703D4A59DA544185EB51E89CC05041AE47E12A59DA544152B81E359EC05041295C8F9259DA5441713D0A779FC050413D0AD7235ADA54413D0AD773A1C050419A9999E95ADA5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000228CEB950EC15041EA9D621F43DA5441C0D3A3800BC150418FD7A30044DA5441D2F214EF05C15041A80E4FE144DA54418D8D8A1809C15041031311F746DA54417B14AE970CC150411F85EBA145DA5441C927500D13C1504130364CAC45DA5441745C8FB223C150413B3D0AC745DA5441CAD0483428C15041ACCBF12446DA544152B81EE52DC15041B81E859B46DA5441E17A141E32C15041CDCCCC5C47DA5441AE1E85BB49C15041275C8F324DDA544123E17A8449C15041350AD7734BDA54418FC2F5F841C15041B81E85DB49DA5441F75046EA3FC15041BD1FDA0449DA54412514AE473EC15041B9703D5A48DA54412FEB51383BC15041518FC21546DA54413AEB515838C15041BA9999B945DA544112CEE78C35C15041B809F8DA45DA5441713D0A972EC15041E17A142E46DA5441C2CCCCBC27C1504114AE476145DA544139C2F5A823C1504173E17A1444DA5441467741A921C1504104243ECA42DA5441F6285CBF1FC15041E17A148E41DA5441A6274F5C1DC15041E9B4D84F41DA54418614AE471BC15041CF99991941DA544136295C7F15C150418766662641DA5441228CEB950EC15041EA9D621F43DA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>660268 - 177308
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -6 </desc>
+<a>
+01060000000100000001030000000100000028000000E17A147E88B65041000000C09DE254417B14AE7788B65041F6285CFFB7E254410000008089B65041A4703DAAB7E2544114AE4701CDB650419A9999E9A1E254417B14AE87CCB65041EC51B81EA1E25441713D0A37ADB650419A9999C96CE254413D0AD7E3AAB650410000003068E25441F6285C2FAAB65041713D0A3765E254418FC2F578AAB65041A4703D1A62E25441CDCCCCCCA7B650413D0AD7A35EE2544152B81E15A6B65041A4703DCA5DE25441F6285C0FA5B650411F85EBC15DE2544148E17A54A4B650417B14AEA75FE25441A4703D1AA5B6504148E17A0463E25441AE47E1CAA4B650411F85EB4164E25441D7A3707DA3B65041000000F065E25441AE47E13AA2B650411F85EB0169E25441A4703D1A9FB65041C3F528FC6CE25441B81E85BB9DB6504152B81EF56DE25441EC51B86E9CB65041000000C06DE2544148E17A749BB65041666666B66BE254418FC2F58899B650415C8FC2756AE25441D7A370CD98B650418FC2F5C868E254410AD7A3E096B65041E17A147E69E25441A4703D8A94B650413D0AD7036AE25441E17A143E97B65041E17A144E6BE25441EC51B80E98B6504185EB51786CE254418FC2F5D897B6504185EB51986DE2544114AE471197B6504152B81E956EE254418FC2F54895B65041AE47E11A6FE25441A4703DCA91B65041000000906FE2544185EB518893B65041AE47E18A71E254410AD7A35094B650417B14AEF772E25441A4703DCA93B65041333333F374E254418FC2F5C892B650418FC2F51875E2544114AE47618EB65041295C8F1276E2544152B81E058AB6504148E17A3479E25441E17A149E8AB65041B81E857B7DE2544148E17A8488B650413333332382E25441E17A147E88B65041000000C09DE25441
+</a>
+
+<b>
+0106000000010000000103000000010000003A000000FE73607B88B650419D0B1FD6A8E25441C914AE7788B6504139E95AFFB7E25441534DFC1189B65041FE1AABCDB7E254410000008089B65041A4703DAAB7E2544114AE4701CDB650419A9999E9A1E254417B14AE87CCB65041EC51B81EA1E254412EC1084BBDB65041E8EA19A887E2544140A80937ADB65041F70F9AC96CE25441B5D8D6E3AAB650412AE0FF2F68E25441EBB65B2FAAB65041BEB00A3765E2544154A2F478AAB65041D6453E1A62E25441F2B9644BA8B65041C8DBDA475FE25441CDCCCCCCA7B650413D0AD7A35EE2544152B81E15A6B65041A4703DCA5DE254411C783DD5A5B650418FA735C85DE25441F4A55B0FA5B65041A6D9ECC15DE2544148E17A54A4B650417B14AEA75FE25441A4703D1AA5B6504148E17A0463E25441AE47E1CAA4B650411F85EB4164E25441C316C946A4B65041A0904CEC64E254414BBF717DA3B65041BF1501F065E25441F508D361A2B65041032208A368E25441C0A7E03AA2B65041D085EC0169E25441C2A5D86EA0B65041559DFB4A6BE25441BD753C1A9FB65041650D2AFC6CE254413924A9669EB65041A694A27B6DE25441DAB083BB9DB65041455B1FF56DE25441D5F8B76E9CB65041486D01C06DE25441A249CCA89BB65041EA9A73236CE25441F64C7B749BB65041DA4667B66BE254418FC2F58899B650415C8FC2756AE254412914AD5899B650415E8559076AE25441C39A6FCD98B65041C2D0F6C868E2544156BEA3E096B65041B26E157E69E25441930E3F8A94B65041D3CFD7036AE2544146D88A3296B65041D9EC5FCE6AE25441102B143E97B650415E43134E6BE254413A8B528297B650417706A1AF6BE25441EC51B80E98B6504185EB51786CE254411A90F5D897B65041B16A52986DE25441866C0DAB97B65041C7AD70D26DE254412669461197B65041AD7F1F956EE254416544F54895B650411A6BE21A6FE254410E74534293B650418715C55E6FE25441DCC63DCA91B65041B7F4FF8F6FE254411F2AB6B892B65041C091F99E70E2544185EB518893B65041AE47E18A71E254410AD7A35094B650417B14AEF772E25441A4703DCA93B65041333333F374E254418FC2F5C892B650418FC2F51875E254411A3F943490B65041AFD820AB75E25441610447618EB650415365901276E25441F9B81E058AB65041F3E57A3479E25441AED503918AB650417AD1FC1D7DE2544172BD149E8AB650418C4D867B7DE254411B1F7B8488B65041EFE4322382E254417B67157E88B650414292FEBF9DE25441FE73607B88B650419D0B1FD6A8E25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>956655 - 2836872
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+01060000000100000001030000000100000018000000FD533DCBFD5051414F75B2EAF59D544147D57AE724515141B3E6961BEF9D5441A03DBAFF28515141DFC0D16CEE9D544147AA6D602C515141109710D5ED9D5441110E868E2D51514145180CA0ED9D544118D655FD2D5151413B9B6060EC9D5441AE0CEF812E5151412045563FEB9D5441D687292A2F5151414E3EA1D0E99D5441228A540932515141E6259326E59D5441E707FFA828515141FB6F6FB7C69D5441E1781CBF275151414F2EFD37C69D5441882F573926515141EC328A5CC59D54417279D98C2351514115925323C39D5441D8F4BF8D21515141299E84EAC09D54413D0AD7C31E515141000000D0BD9D544178200F811B51514138F467F3B89D54410818810E185151419AE01135B09D5441A8D060B5155151414F981CF5A99D544113D3BC2B145151415A8BABDAA99D544177590D2D125151417E6288B7A99D54412398ACD210515141231317EBA99D5441264C1E460F515141E9614B39AA9D54416EC69E0BE6505141DD442A53B29D5441FD533DCBFD5051414F75B2EAF59D5441
+</a>
+
+<b>
+010600000001000000010300000001000000210000007FFE9AC032515141C4C8B5EFE39D544116031ADB32515141F99B923EE49D544114AE473135515141C3F528CCDF9D544185EB51D836515141713D0A37DB9D5441713D0AF73651514114AE47A1DA9D54410000008037515141E17A140ED89D54418FC2F538375151410AD7A300D49D5441000000A03551514185EB51D8CF9D5441E17A14FE3351514148E17A04CE9D54410AD7A3302C5151413D0AD7A3C89D5441C46AE2FA285151411092A4D9C69D5441DEE22AFF28515141C01364E6C69D544185EB51582651514148E17A74C59D54413333330324515141713D0AA7C39D54413D0AD7C31E515141000000D0BD9D54415C8FC2751B515141295C8FE2B89D5441EC51B8CE155151418FC2F578AA9D5441C3F528AC1551514152B81EF5A99D5441E17A14EE11515141333333B3A99D5441713D0A07ED505141A4703DFAB09D544146D642CCE5505141B0595267B29D5441D7A3708DC8505141C3F5282CB89D544185EB51E8C7505141EC51B84EB99D5441C3F528ECD2505141C3F5287CD89D5441E17A14EEDE505141C3F5286CFA9D5441F6285C3FE050514114AE4731FB9D54416F47C80AFE5051412792C4F6F59D5441C3F528FC00515141295C8F72F59D544185EB51A82D515141B81E859BED9D5441000000D02D515141333333C3EC9D5441CDCCCC2C2F515141AE47E1CAE99D5441713D0A2731515141666666A6E69D54417FFE9AC032515141C4C8B5EFE39D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>956655 - 3490242
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -13 </desc>
+<a>
+01060000000100000001030000000100000018000000FD533DCBFD5051414F75B2EAF59D544147D57AE724515141B3E6961BEF9D5441A03DBAFF28515141DFC0D16CEE9D544147AA6D602C515141109710D5ED9D5441110E868E2D51514145180CA0ED9D544118D655FD2D5151413B9B6060EC9D5441AE0CEF812E5151412045563FEB9D5441D687292A2F5151414E3EA1D0E99D5441228A540932515141E6259326E59D5441E707FFA828515141FB6F6FB7C69D5441E1781CBF275151414F2EFD37C69D5441882F573926515141EC328A5CC59D54417279D98C2351514115925323C39D5441D8F4BF8D21515141299E84EAC09D54413D0AD7C31E515141000000D0BD9D544178200F811B51514138F467F3B89D54410818810E185151419AE01135B09D5441A8D060B5155151414F981CF5A99D544113D3BC2B145151415A8BABDAA99D544177590D2D125151417E6288B7A99D54412398ACD210515141231317EBA99D5441264C1E460F515141E9614B39AA9D54416EC69E0BE6505141DD442A53B29D5441FD533DCBFD5051414F75B2EAF59D5441
+</a>
+
+<b>
+010600000001000000010300000001000000210000007FFE9AC032515141C4C8B5EFE39D544116031ADB32515141F99B923EE49D544114AE473135515141C3F528CCDF9D544185EB51D836515141713D0A37DB9D5441713D0AF73651514114AE47A1DA9D54410000008037515141E17A140ED89D54418FC2F538375151410AD7A300D49D5441000000A03551514185EB51D8CF9D5441E17A14FE3351514148E17A04CE9D54410AD7A3302C5151413D0AD7A3C89D5441C46AE2FA285151411092A4D9C69D5441DEE22AFF28515141C01364E6C69D544185EB51582651514148E17A74C59D54413333330324515141713D0AA7C39D54413D0AD7C31E515141000000D0BD9D54415C8FC2751B515141295C8FE2B89D5441EC51B8CE155151418FC2F578AA9D5441C3F528AC1551514152B81EF5A99D5441E17A14EE11515141333333B3A99D5441713D0A07ED505141A4703DFAB09D544146D642CCE5505141B0595267B29D5441D7A3708DC8505141C3F5282CB89D544185EB51E8C7505141EC51B84EB99D5441C3F528ECD2505141C3F5287CD89D5441E17A14EEDE505141C3F5286CFA9D5441F6285C3FE050514114AE4731FB9D54416F47C80AFE5051412792C4F6F59D5441C3F528FC00515141295C8F72F59D544185EB51A82D515141B81E859BED9D5441000000D02D515141333333C3EC9D5441CDCCCC2C2F515141AE47E1CAE99D5441713D0A2731515141666666A6E69D54417FFE9AC032515141C4C8B5EFE39D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>663919 - 2976404
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+010600000001000000010300000001000000180000005C8FC2B54CF45041C3F5284CDA4B5441666666564CF45041AE47E11AD34B54417B14AEA74BF45041295C8FD2CC4B5441EC51B87E49F4504114AE4731C04B5441713D0A4749F45041EC51B89EC04B544185EB519845F450411F85EB21BE4B54418FC2F5E840F45041CDCCCC1CBB4B5441713D0AC73DF4504166666626B94B5441333333D33BF4504166666626B84B5441A4703D5A33F4504185EB51D8B24B5441CDCCCCFC1EF450418FC2F5C8A44B54413D0AD7E30CF4504166666686984B5441EC51B89EF1F350418FC2F568874B5441D7A370FDE7F350419A9999A9804B5441AE47E18AD9F3504152B81EF5934B5441F6285CCFE4F35041295C8F829A4B544166666666F5F350410AD7A3D0A04B54410AD7A34001F45041A4703D0AA64B5441F6285CDF0AF4504152B81E35AB4B5441E17A146E18F45041F6285C5FB44B544148E17AC421F450419A999909BD4B544152B81E6531F45041666666D6C84B5441295C8FD23FF45041D7A370ADD24B54415C8FC2B54CF45041C3F5284CDA4B5441
+</a>
+
+<b>
+010600000001000000010300000001000000530000007FB11C390FF450419B58041B9A4B5441192AFF4710F450416E8886D29A4B544172E6E13C14F45041E54AB2809D4B5441E223901F15F45041AC64421A9E4B54413755512E16F450413009AED19E4B5441D78E53A71CF4504194DD3434A34B5441568515E21DF4504185BB6F09A44B5441CDCCCCFC1EF450418FC2F5C8A44B5441C2EDA1AC20F4504173E618F3A54B54416E31523621F450410E4F2852A64B544125CC471C24F450419F076852A84B54410AF9C88D25F45041372D8351A94B5441DA69628428F45041B0E33F5DAB4B5441721299852AF45041B08092BFAC4B5441A3BF9D852BF4504174CC5370AD4B5441055B113B2DF450418210589EAE4B54415A4FA44B33F450414FBEC7CDB24B5441350640A837F450413E1B568AB54B5441990DE3DB3BF450419460D92AB84B544141331F913DF45041E1128900B94B54417F0E24E53EF450410D2F9DD5B94B5441FD83596F40F45041898F9CD0BA4B54418FC2F5E840F45041CDCCCC1CBB4B5441BEE3408641F45041B5693182BB4B544121CB425743F450414CD844AABC4B544139A1D20144F45041183CE31BBD4B544185EB519845F450411F85EB21BE4B544186BEA44049F450415334669AC04B54416A8FEE5949F4504103739679C04B54418E4FAF7E49F4504148635931C04B5441FD8FC8D748F450418862A56EBC4B5441BA3BEC6648F4504101BF04FAB94B5441331CF32448F4504171333F8BB84B5441DDAC685947F45041ACEC7550B44B54412B7901C746F45041C271F5EDB04B54417288EE6446F45041121D37D4AE4B5441773664B945F4504158CC492BAB4B544157904C4E45F450417500B502A94B54415C8FC2D544F4504100000050A64B54410AD7A37044F4504185EB5128A44B54419A99995942F450410AD7A390984B5441713D0A7741F4504114AE47C1914B5441B035F92D41F450411A9DD7228D4B5441EAD413203FF45041332B9FB38B4B54413FABE9ED3CF45041F58BFF0D8A4B5441C3F5289C3BF45041C3F5281C894B54418EE3073137F450411BA88E2F874B5441B81E85CB2FF45041666666E6834B54418597A8212BF45041EBC75A55824B5441992570B229F450414AA9F196814B544132A621E626F450414000FE4B804B5441504AE6AA24F450416CEBE8327F4B5441820F691723F45041B46F5C1E7E4B54416B1F4FAA20F450413D9EAB6F7C4B5441E199E93C1CF45041BD230776794B5441176AA86918F45041396DFDCD764B54411568277816F450416CC6507A754B54414E6A7CF610F450418AC241B4714B5441037E5EA80AF450410F8A5FBF6D4B544168C0085D05F45041879858346A4B5441178694A2FBF35041384252FF634B5441D1B91047F9F350417BCF6ADB664B54410C8FAD70F5F3504198CF1C0B6B4B5441F94EDED2F2F35041AA0FECA86D4B5441B7F9549DF5F35041BC4FBB46704B54414AA44020F2F350418C3A01AF754B54416BB921A0EAF35041CE8F8AE4724B544114AE47D1E3F35041C3F528DC7D4B5441D7A370FDE7F350419A9999A9804B54414A7E10F9EDF350411FCFA6CD844B5441E4BB9FE5EFF3504158EEC928864B5441C9EF5F47F1F3504163D54920874B544164C5DD7CF1F3504191371844874B544171120A3EF2F35041739D66C5874B5441075210B1F4F35041462C3353894B544101912C61F7F35041A5A058068B4B544157FAFAF9F9F35041364D96A78C4B544106472793FCF35041ABE60E498E4B5441A641B97B03F450417413099F924B54410AF1F13D07F450412C1AF0FA944B5441F900578009F45041A022F265964B54413D0AD7E30CF4504166666686984B54417FB11C390FF450419B58041B9A4B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>663919 - 5248536
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -9 </desc>
+<a>
+010600000001000000010300000001000000180000005C8FC2B54CF45041C3F5284CDA4B5441666666564CF45041AE47E11AD34B54417B14AEA74BF45041295C8FD2CC4B5441EC51B87E49F4504114AE4731C04B5441713D0A4749F45041EC51B89EC04B544185EB519845F450411F85EB21BE4B54418FC2F5E840F45041CDCCCC1CBB4B5441713D0AC73DF4504166666626B94B5441333333D33BF4504166666626B84B5441A4703D5A33F4504185EB51D8B24B5441CDCCCCFC1EF450418FC2F5C8A44B54413D0AD7E30CF4504166666686984B5441EC51B89EF1F350418FC2F568874B5441D7A370FDE7F350419A9999A9804B5441AE47E18AD9F3504152B81EF5934B5441F6285CCFE4F35041295C8F829A4B544166666666F5F350410AD7A3D0A04B54410AD7A34001F45041A4703D0AA64B5441F6285CDF0AF4504152B81E35AB4B5441E17A146E18F45041F6285C5FB44B544148E17AC421F450419A999909BD4B544152B81E6531F45041666666D6C84B5441295C8FD23FF45041D7A370ADD24B54415C8FC2B54CF45041C3F5284CDA4B5441
+</a>
+
+<b>
+010600000001000000010300000001000000530000007FB11C390FF450419B58041B9A4B5441192AFF4710F450416E8886D29A4B544172E6E13C14F45041E54AB2809D4B5441E223901F15F45041AC64421A9E4B54413755512E16F450413009AED19E4B5441D78E53A71CF4504194DD3434A34B5441568515E21DF4504185BB6F09A44B5441CDCCCCFC1EF450418FC2F5C8A44B5441C2EDA1AC20F4504173E618F3A54B54416E31523621F450410E4F2852A64B544125CC471C24F450419F076852A84B54410AF9C88D25F45041372D8351A94B5441DA69628428F45041B0E33F5DAB4B5441721299852AF45041B08092BFAC4B5441A3BF9D852BF4504174CC5370AD4B5441055B113B2DF450418210589EAE4B54415A4FA44B33F450414FBEC7CDB24B5441350640A837F450413E1B568AB54B5441990DE3DB3BF450419460D92AB84B544141331F913DF45041E1128900B94B54417F0E24E53EF450410D2F9DD5B94B5441FD83596F40F45041898F9CD0BA4B54418FC2F5E840F45041CDCCCC1CBB4B5441BEE3408641F45041B5693182BB4B544121CB425743F450414CD844AABC4B544139A1D20144F45041183CE31BBD4B544185EB519845F450411F85EB21BE4B544186BEA44049F450415334669AC04B54416A8FEE5949F4504103739679C04B54418E4FAF7E49F4504148635931C04B5441FD8FC8D748F450418862A56EBC4B5441BA3BEC6648F4504101BF04FAB94B5441331CF32448F4504171333F8BB84B5441DDAC685947F45041ACEC7550B44B54412B7901C746F45041C271F5EDB04B54417288EE6446F45041121D37D4AE4B5441773664B945F4504158CC492BAB4B544157904C4E45F450417500B502A94B54415C8FC2D544F4504100000050A64B54410AD7A37044F4504185EB5128A44B54419A99995942F450410AD7A390984B5441713D0A7741F4504114AE47C1914B5441B035F92D41F450411A9DD7228D4B5441EAD413203FF45041332B9FB38B4B54413FABE9ED3CF45041F58BFF0D8A4B5441C3F5289C3BF45041C3F5281C894B54418EE3073137F450411BA88E2F874B5441B81E85CB2FF45041666666E6834B54418597A8212BF45041EBC75A55824B5441992570B229F450414AA9F196814B544132A621E626F450414000FE4B804B5441504AE6AA24F450416CEBE8327F4B5441820F691723F45041B46F5C1E7E4B54416B1F4FAA20F450413D9EAB6F7C4B5441E199E93C1CF45041BD230776794B5441176AA86918F45041396DFDCD764B54411568277816F450416CC6507A754B54414E6A7CF610F450418AC241B4714B5441037E5EA80AF450410F8A5FBF6D4B544168C0085D05F45041879858346A4B5441178694A2FBF35041384252FF634B5441D1B91047F9F350417BCF6ADB664B54410C8FAD70F5F3504198CF1C0B6B4B5441F94EDED2F2F35041AA0FECA86D4B5441B7F9549DF5F35041BC4FBB46704B54414AA44020F2F350418C3A01AF754B54416BB921A0EAF35041CE8F8AE4724B544114AE47D1E3F35041C3F528DC7D4B5441D7A370FDE7F350419A9999A9804B54414A7E10F9EDF350411FCFA6CD844B5441E4BB9FE5EFF3504158EEC928864B5441C9EF5F47F1F3504163D54920874B544164C5DD7CF1F3504191371844874B544171120A3EF2F35041739D66C5874B5441075210B1F4F35041462C3353894B544101912C61F7F35041A5A058068B4B544157FAFAF9F9F35041364D96A78C4B544106472793FCF35041ABE60E498E4B5441A641B97B03F450417413099F924B54410AF1F13D07F450412C1AF0FA944B5441F900578009F45041A022F265964B54413D0AD7E30CF4504166666686984B54417FB11C390FF450419B58041B9A4B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>434855 - 434987
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -15 </desc>
+<a>
+0106000000010000000103000000010000001A000000295C8FE21AB05041000000B0E4E35441A4703DCA1DB050419A999909E5E35441A4703DBA36B050419A9999D9CCE35441333333F302B05041AE47E14AB9E35441295C8FA2F4AF5041E17A14BEAFE3544133333323EEAF50417B14AEC7ADE35441EC51B82EECAF5041AE47E19AADE35441EC51B85EEAAF5041EC51B85EAEE35441295C8FE2E8AF5041713D0A97AFE354417B14AE67E8AF50413D0AD753B2E35441A4703D8AE8AF5041713D0A07B6E35441C3F528CCE8AF504185EB5108BDE3544114AE47E1E8AF5041E17A14FEC4E3544114AE4751EBAF5041713D0A67C5E354411F85EB51ECAF504114AE47D1BEE35441295C8F52EDAF504114AE47E1BEE35441DF83BAB9F0AF504136297D94BFE3544135EF95E0FCAF5041B6EBAF4BC4E35441178661D809B05041BEF05031C9E35441A46954B817B05041C6F5F116CEE35441E3E0100420B050416F771EDFD1E354418D179E0D24B05041F57F6F59D3E354413EFE5C0224B050411EBF3D83D3E354410480A5F42BB0504156116C5DD6E354411F85EB7120B050410AD7A3C0E0E35441295C8FE21AB05041000000B0E4E35441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000EE570C2424B05041F9FD548FD3E354413EFE5C0224B050411EBF3D83D3E354418D179E0D24B05041F57F6F59D3E35441E3E0100420B050416F771EDFD1E35441E41C2DD016B05041C6F5F116CEE3544135EF95E0FCAF5041B6EBAF4BC4E35441DF83BAB9F0AF504136297D94BFE35441295C8F52EDAF504114AE47E1BEE354411F85EB51ECAF504114AE47D1BEE3544114AE4751EBAF5041713D0A67C5E3544114AE47E1E8AF5041E17A14FEC4E35441A4703D5AE4AF5041333333D3E2E35441E17A147EE2AF504185EB51B8EBE354413D0AD773E0AF50419A999979F5E354411F85EBF1DEAF50417B14AE77FBE35441F6285CEFDBAF50413D0AD74301E4544148E17AD4E9AF504185EB51E8FEE35441713D0AD7F6AF504114AE4771FAE354413D0AD7B3FDAF5041EC51B85EF7E354417B14AEF70BB050418FC2F518EFE35441295C8FE21AB05041000000B0E4E3544129BA20B220B050414764B286E0E35441E034AF0322B0504165451356DFE3544172C1FED52BB0504149936B52D6E35441EE570C2424B05041F9FD548FD3E35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>664016 - 208956
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -648 </desc>
+<a>
+01060000000100000001030000000100000013000000E17A14CEED2A51411F85EBB1853354419A9999D9EB2A5141EC51B87E853354417B14AE17EA2A5141E17A140E863354419A9999F9E82A51410AD7A340873354418FC2F518E82A5141A4703DBA883354410AD7A360E72A51417B14AE678A3354419A999919E72A51410AD7A3008C33544185EB5138E72A5141F6285C8F8D3354413D0AD793E72A5141AE47E15A8F335441D7A3702DE82A5141713D0A279133544114AE4741E92A51413D0AD7D392335441295C8F52EA2A51416666662694335441000000F0F12A5141713D0A179E335441D7A3702DF42A5141000000E09B33544152B81ED5F42A5141EC51B83E8A335441A4703D5AF42A5141A4703DBA88335441D7A3701DF32A5141D7A3707D873354419A999999F02A5141E17A147E86335441E17A14CEED2A51411F85EBB185335441
+</a>
+
+<b>
+010600000001000000010300000001000000160000009A999919E72A51410AD7A3008C335441306FFE3BE72A51417376CEA18D3354418B3A024FE72A51415B8E47018E3354410C0BE05CE72A51419B19E7468E33544135886A95E72A514131139A5F8F335441E43E5235E82A51413CA84A3391335441BD76219AEB2A5141B4AAC66C9333544147AB7B64F02A5141785726809933544174092625F22A514176811A309C335441BA0E5932F32A51418F7181089933544116A1B903F42A514162CF870F953354419767D0E5F32A5141670D5CC78A33544145D56F14F32A514168563A5388335441C6A427EBF02A5141AE226D9E863354412E2426A6F02A514197A30E8386335441E17A14CEED2A51411F85EBB1853354419A9999D9EB2A5141EC51B87E853354417B14AE17EA2A5141E17A140E863354419A9999F9E82A51410AD7A340873354418FC2F518E82A5141A4703DBA883354410AD7A360E72A51417B14AE678A3354419A999919E72A51410AD7A3008C335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>664016 - 395330
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -648 </desc>
+<a>
+01060000000100000001030000000100000013000000E17A14CEED2A51411F85EBB1853354419A9999D9EB2A5141EC51B87E853354417B14AE17EA2A5141E17A140E863354419A9999F9E82A51410AD7A340873354418FC2F518E82A5141A4703DBA883354410AD7A360E72A51417B14AE678A3354419A999919E72A51410AD7A3008C33544185EB5138E72A5141F6285C8F8D3354413D0AD793E72A5141AE47E15A8F335441D7A3702DE82A5141713D0A279133544114AE4741E92A51413D0AD7D392335441295C8F52EA2A51416666662694335441000000F0F12A5141713D0A179E335441D7A3702DF42A5141000000E09B33544152B81ED5F42A5141EC51B83E8A335441A4703D5AF42A5141A4703DBA88335441D7A3701DF32A5141D7A3707D873354419A999999F02A5141E17A147E86335441E17A14CEED2A51411F85EBB185335441
+</a>
+
+<b>
+010600000001000000010300000001000000160000009A999919E72A51410AD7A3008C335441306FFE3BE72A51417376CEA18D3354418B3A024FE72A51415B8E47018E3354410C0BE05CE72A51419B19E7468E33544135886A95E72A514131139A5F8F335441E43E5235E82A51413CA84A3391335441BD76219AEB2A5141B4AAC66C9333544147AB7B64F02A5141785726809933544174092625F22A514176811A309C335441BA0E5932F32A51418F7181089933544116A1B903F42A514162CF870F953354419767D0E5F32A5141670D5CC78A33544145D56F14F32A514168563A5388335441C6A427EBF02A5141AE226D9E863354412E2426A6F02A514197A30E8386335441E17A14CEED2A51411F85EBB1853354419A9999D9EB2A5141EC51B87E853354417B14AE17EA2A5141E17A140E863354419A9999F9E82A51410AD7A340873354418FC2F518E82A5141A4703DBA883354410AD7A360E72A51417B14AE678A3354419A999919E72A51410AD7A3008C335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>664198 - 1735577
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000000B00000048E17A040D965041E17A144E47175541CDCCCC9CE0955041B81E856B54175541A4703D1AE89550418FC2F538731755413D0AD743F095504152B81E259017554133333383F19550417B14AEF790175541AE47E1EA0896504148E17AF48C1755413D0AD7A321965041713D0AB7881755419A9999391B965041666666566E175541CDCCCC2C16965041295C8F9259175541F6285CBF0F965041F6285C9F4D17554148E17A040D965041E17A144E47175541
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000363EA4DEE495504155AC79ED65175541A4703D1AE89550418FC2F538731755413D0AD743F095504152B81E259017554133333383F19550417B14AEF790175541AE47E1EA0896504148E17AF48C1755413D0AD7A321965041713D0AB7881755419A9999391B965041666666566E175541CDCCCC2C16965041295C8F92591755419E46D88013965041998EF39A5417554154B067A0109650414E71C3414F175541CCF3549EE2955041A14069AB5C175541363EA4DEE495504155AC79ED65175541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>664198 - 3428598
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -8 </desc>
+<a>
+0106000000010000000103000000010000000B00000048E17A040D965041E17A144E47175541CDCCCC9CE0955041B81E856B54175541A4703D1AE89550418FC2F538731755413D0AD743F095504152B81E259017554133333383F19550417B14AEF790175541AE47E1EA0896504148E17AF48C1755413D0AD7A321965041713D0AB7881755419A9999391B965041666666566E175541CDCCCC2C16965041295C8F9259175541F6285CBF0F965041F6285C9F4D17554148E17A040D965041E17A144E47175541
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000363EA4DEE495504155AC79ED65175541A4703D1AE89550418FC2F538731755413D0AD743F095504152B81E259017554133333383F19550417B14AEF790175541AE47E1EA0896504148E17AF48C1755413D0AD7A321965041713D0AB7881755419A9999391B965041666666566E175541CDCCCC2C16965041295C8F92591755419E46D88013965041998EF39A5417554154B067A0109650414E71C3414F175541CCF3549EE2955041A14069AB5C175541363EA4DEE495504155AC79ED65175541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>665959 - 1009120
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+0106000000010000000103000000010000001D00000085EB511847FE5041F6285C4F133B5441295C8F0255FE50410AD7A330173B544152B81E7554FE5041713D0AE7133B5441D7A3707D57FE504152B81E35123B5441CDCCCCDC5BFE50410AD7A330133B5441295C8FD25CFE50417B14AE77153B544148E17AB45CFE50415C8FC255193B54410000002067FE5041D7A3703D1C3B54419A9999A974FE5041EC51B8AE1A3B5441713D0AD774FE504185EB51A80D3B54410AD7A34072FE50418FC2F5680C3B5441D7A370BD72FE5041E17A148E0A3B54419A9999B954FE50417B14AEC7023B54419A99991954FE504114AE4761043B54410AD7A34056FE50413D0AD743053B5441E17A14FE54FE5041295C8F92083B5441B81E852B55FE5041000000400B3B5441D7A3706D56FE5041F6285C2F0C3B5441AE47E14A58FE504114AE47310E3B544148E17A6457FE5041333333F30F3B5441333333E353FE50413D0AD7B3113B5441295C8F124FFE50419A999979103B5441EC51B87E4DFE5041F6285C0F0D3B5441000000804DFE50418FC2F5880A3B54416666666646FE504148E17A94063B544114AE470146FE50415C8FC2A5043B54418FC2F5F842FE5041EC51B82E053B5441C3F5287C44FE50418FC2F5680A3B544185EB511847FE5041F6285C4F133B5441
+</a>
+
+<b>
+0106000000010000000103000000010000003C0000009B240F2347FE504174AE9773133B5441AF34A71854FE50417BF321EF163B5441BAAC2DA554FE504150ABD225163B54413373B58E54FE5041C6904C7F143B5441E86EAE4A56FE504120602623133B5441307F24A257FE50414BC277A5123B54414A7943B15BFE5041BDD05C8F133B544167AE19115DFE50419236E41D153B54410ED00A305DFE504162EBAF2F163B5441FC2EA3A55DFE50418BADDA69193B54417C36F98D65FE5041274C5F861B3B54414E61783267FE5041311461351B3B54412BA96FA068FE504116EB288B1A3B54419298958A69FE504160A8610C1B3B5441BDE9CE126FFE5041E1279B2A1B3B5441FBA70C1471FE5041E0EE18601A3B5441F547558571FE5041564A4EE21A3B54410DCD6BDA73FE5041F026601D1B3B54413BA653E275FE50413761286B1A3B54417DFDA24076FE504112DA649E193B54411F81542876FE50416B790374133B5441546DB53675FE5041762B4A08103B544160555A5975FE50419CDDBAF40D3B54417AF201E474FE5041228947330D3B544166AD172072FE5041F675C5FB0B3B5441B5979B6F72FE50411CC0EB9B0A3B544161B7529F55FE5041977BE902033B54410A2AE52555FE5041646DA00E043B54410381690057FE50417F9C55F6043B5441E4E3100F57FE50413B8CF08D053B5441B2DFDEF956FE50415541F52E063B544131DDD5D756FE5041473CFFE2063B5441E009C4FE55FE50412332169A073B54419E1C8A8655FE504154E5AAC3083B544126B18F6055FE5041632916B00A3B5441EB287FBA56FE5041F43924440C3B54419634029D58FE5041A6606E8D0D3B54416C87CC1459FE5041ED0CB8510E3B54418445EBE158FE5041DAA489790F3B544161F8EB0B57FE50412BC9B423113B54415BB8B2A155FE5041E2AF2EF2103B544106D0F04E54FE504174978F71123B54413638571451FE504165813610113B54410688911E50FE5041C49E6C6B103B544140EE081A4FFE504103E6A8BA0F3B5441F9F61EF14DFE5041F43F683D0D3B544140CA30D44DFE504131C8BAFA0C3B54416F662ECF4DFE5041538459A70C3B5441E15CBF5B4EFE5041FA0113500B3B544102F9CAA54DFE50418BFB05530A3B54417CC484C44CFE5041265149CA093B5441AEFA70EB4AFE50411D8E1A2E093B54413F3B99A447FE50411BE4BA45073B544114AE470146FE50415C8FC2A5043B54419ED7B9FB44FE50419E482F84043B54413A61BCF643FE5041DDC5F201053B544138AD2EB843FE5041222B3EA1053B5441FFE8A15943FE5041D610C686063B5441C3F5287C44FE50418FC2F5680A3B54419B240F2347FE504174AE9773133B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>665959 - 3441985
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -10 </desc>
+<a>
+0106000000010000000103000000010000001D00000085EB511847FE5041F6285C4F133B5441295C8F0255FE50410AD7A330173B544152B81E7554FE5041713D0AE7133B5441D7A3707D57FE504152B81E35123B5441CDCCCCDC5BFE50410AD7A330133B5441295C8FD25CFE50417B14AE77153B544148E17AB45CFE50415C8FC255193B54410000002067FE5041D7A3703D1C3B54419A9999A974FE5041EC51B8AE1A3B5441713D0AD774FE504185EB51A80D3B54410AD7A34072FE50418FC2F5680C3B5441D7A370BD72FE5041E17A148E0A3B54419A9999B954FE50417B14AEC7023B54419A99991954FE504114AE4761043B54410AD7A34056FE50413D0AD743053B5441E17A14FE54FE5041295C8F92083B5441B81E852B55FE5041000000400B3B5441D7A3706D56FE5041F6285C2F0C3B5441AE47E14A58FE504114AE47310E3B544148E17A6457FE5041333333F30F3B5441333333E353FE50413D0AD7B3113B5441295C8F124FFE50419A999979103B5441EC51B87E4DFE5041F6285C0F0D3B5441000000804DFE50418FC2F5880A3B54416666666646FE504148E17A94063B544114AE470146FE50415C8FC2A5043B54418FC2F5F842FE5041EC51B82E053B5441C3F5287C44FE50418FC2F5680A3B544185EB511847FE5041F6285C4F133B5441
+</a>
+
+<b>
+0106000000010000000103000000010000003C0000009B240F2347FE504174AE9773133B5441AF34A71854FE50417BF321EF163B5441BAAC2DA554FE504150ABD225163B54413373B58E54FE5041C6904C7F143B5441E86EAE4A56FE504120602623133B5441307F24A257FE50414BC277A5123B54414A7943B15BFE5041BDD05C8F133B544167AE19115DFE50419236E41D153B54410ED00A305DFE504162EBAF2F163B5441FC2EA3A55DFE50418BADDA69193B54417C36F98D65FE5041274C5F861B3B54414E61783267FE5041311461351B3B54412BA96FA068FE504116EB288B1A3B54419298958A69FE504160A8610C1B3B5441BDE9CE126FFE5041E1279B2A1B3B5441FBA70C1471FE5041E0EE18601A3B5441F547558571FE5041564A4EE21A3B54410DCD6BDA73FE5041F026601D1B3B54413BA653E275FE50413761286B1A3B54417DFDA24076FE504112DA649E193B54411F81542876FE50416B790374133B5441546DB53675FE5041762B4A08103B544160555A5975FE50419CDDBAF40D3B54417AF201E474FE5041228947330D3B544166AD172072FE5041F675C5FB0B3B5441B5979B6F72FE50411CC0EB9B0A3B544161B7529F55FE5041977BE902033B54410A2AE52555FE5041646DA00E043B54410381690057FE50417F9C55F6043B5441E4E3100F57FE50413B8CF08D053B5441B2DFDEF956FE50415541F52E063B544131DDD5D756FE5041473CFFE2063B5441E009C4FE55FE50412332169A073B54419E1C8A8655FE504154E5AAC3083B544126B18F6055FE5041632916B00A3B5441EB287FBA56FE5041F43924440C3B54419634029D58FE5041A6606E8D0D3B54416C87CC1459FE5041ED0CB8510E3B54418445EBE158FE5041DAA489790F3B544161F8EB0B57FE50412BC9B423113B54415BB8B2A155FE5041E2AF2EF2103B544106D0F04E54FE504174978F71123B54413638571451FE504165813610113B54410688911E50FE5041C49E6C6B103B544140EE081A4FFE504103E6A8BA0F3B5441F9F61EF14DFE5041F43F683D0D3B544140CA30D44DFE504131C8BAFA0C3B54416F662ECF4DFE5041538459A70C3B5441E15CBF5B4EFE5041FA0113500B3B544102F9CAA54DFE50418BFB05530A3B54417CC484C44CFE5041265149CA093B5441AEFA70EB4AFE50411D8E1A2E093B54413F3B99A447FE50411BE4BA45073B544114AE470146FE50415C8FC2A5043B54419ED7B9FB44FE50419E482F84043B54413A61BCF643FE5041DDC5F201053B544138AD2EB843FE5041222B3EA1053B5441FFE8A15943FE5041D610C686063B5441C3F5287C44FE50418FC2F5680A3B54419B240F2347FE504174AE9773133B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>665965 - 2909660
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+01060000000100000001030000000100000016000000D7A3709D7A655141E17A148EC6625441A4703D5A7465514185EB51D8C9625441E17A14AE6A6551417B14AEE7CE6254413D0AD7E35B65514152B81EA5D6625441C3F5281C54655141000000D0DA625441295C8F624A6551418FC2F5E8DF625441E17A146E39655141295C8FE2E86254415C8FC2D526655141A4703DBAF2625441E17A146E0F655141E17A141EFF625441C3F5283C0C6551419A9999C905635441EC51B83E0A655141EC51B87E0C635441295C8F5208655141F6285CCF14635441C3F5288C1A655141713D0A270B635441B81E85FB2D655141CDCCCCDC00635441E17A14BE406551419A9999E9F6625441B81E859B54655141295C8F62EC6254410AD7A3807565514148E17AF4DA625441E17A140E85655141713D0AB7D2625441C3F528FC8D655141B81E85FBCD6254413D0AD7F388655141E17A144EC76254418FC2F57884655141C3F5285CC1625441D7A3709D7A655141E17A148EC6625441
+</a>
+
+<b>
+0106000000010000000103000000010000000C00000069F87DF15D655141D1689F9CD56254413D0AD7E35B65514152B81EA5D6625441C3F5281C54655141000000D0DA6254416BBEA8BE4A65514124C0FAC2DF6254416A879C2840655141EB48C052E5625441D833AC7B3965514139655DDBE86254416AE5176735655141693D4504EB62544108228D1326655141768E0C21F3625441E17A146E0F655141E17A141EFF625441EDF45EDD0D65514128175D470263544132FE038C5E6551411480B706D862544169F87DF15D655141D1689F9CD5625441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>665965 - 3634951
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 6 </desc>
+<a>
+01060000000100000001030000000100000016000000D7A3709D7A655141E17A148EC6625441A4703D5A7465514185EB51D8C9625441E17A14AE6A6551417B14AEE7CE6254413D0AD7E35B65514152B81EA5D6625441C3F5281C54655141000000D0DA625441295C8F624A6551418FC2F5E8DF625441E17A146E39655141295C8FE2E86254415C8FC2D526655141A4703DBAF2625441E17A146E0F655141E17A141EFF625441C3F5283C0C6551419A9999C905635441EC51B83E0A655141EC51B87E0C635441295C8F5208655141F6285CCF14635441C3F5288C1A655141713D0A270B635441B81E85FB2D655141CDCCCCDC00635441E17A14BE406551419A9999E9F6625441B81E859B54655141295C8F62EC6254410AD7A3807565514148E17AF4DA625441E17A140E85655141713D0AB7D2625441C3F528FC8D655141B81E85FBCD6254413D0AD7F388655141E17A144EC76254418FC2F57884655141C3F5285CC1625441D7A3709D7A655141E17A148EC6625441
+</a>
+
+<b>
+0106000000010000000103000000010000000C00000069F87DF15D655141D1689F9CD56254413D0AD7E35B65514152B81EA5D6625441C3F5281C54655141000000D0DA6254416BBEA8BE4A65514124C0FAC2DF6254416A879C2840655141EB48C052E5625441D833AC7B3965514139655DDBE86254416AE5176735655141693D4504EB62544108228D1326655141768E0C21F3625441E17A146E0F655141E17A141EFF625441EDF45EDD0D65514128175D470263544132FE038C5E6551411480B706D862544169F87DF15D655141D1689F9CD5625441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>667836 - 2951182
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -23 </desc>
+<a>
+0106000000010000000103000000010000001E0000003D0AD733D4FA5041F6285C0F6138554185EB51E8CEFA50415C8FC20568385541D7A3708DCDFA5041F6285CCF6A385541A4703D8ACCFA50419A9999896E3855417B14AED7CBFA5041A4703D8A7538554148E17A64CBFA5041713D0A478D38554133333363CBFA5041D7A370ED92385541E17A143ECBFA5041C3F528AC9838554166666616CBFA50410AD7A3C09E3855417B14AE27CBFA5041000000D0A0385541A4703DFACBFA5041C3F5287CA3385541CDCCCC7CE8FA50417B14AEA79F385541CDCCCC1CF1FA50419A9999799E385541713D0AC7F3FA5041F6285C5F9E38554152B81E05F5FA50413D0AD7039D38554166666626F6FA5041B81E851B9B385541B81E85BBF8FA50411F85EB0195385541295C8FE2F9FA504114AE47619238554185EB51C8FEFA50413D0AD73387385541C3F528CCDCFA504185EB518875385541E17A145ED7FA5041CDCCCCEC743855417B14AE77D7FA504152B81E75703855413D0AD7B3D9FA5041666666D66B38554185EB5168F7FA5041666666A64F385541000000F0F6FA5041333333534F385541AE47E19AEAFA50419A9999C94638554152B81EB5E8FA5041D7A370FD46385541AE47E1FAE4FA50415C8FC2C54B385541CDCCCC0CDCFA5041C3F528EC563855413D0AD733D4FA5041F6285C0F61385541
+</a>
+
+<b>
+0106000000010000000103000000010000001E0000003D0AD7B3D9FA5041666666D66B38554185EB5168F7FA5041666666A64F385541C74D5F7CF7FA5041F0D048B44F385541EB410785F5FA50419393AC494E385541D3E89A09F1FA5041C2CF963D4B385541AE47E19AEAFA50419A9999C946385541476BA674E9FA50414F9676E645385541456F65E1E2FA504169C3DC644E385541E22161ABDAFA50411A93B6B458385541A2D0C359D2FA50414C0FBB7E63385541C3552767CFFA504160771CCA6638554177B801D3CDFA5041F8653F406A385541E076BB83CCFA5041440AEFCA6E385541D93320B5CBFA50418D110DB572385541DCEA1AD2CBFA50411E4450B0763855412B2D81A1CBFA50415D1AFEB38038554179B81B6FCBFA504107E665168B385541E17A143ECBFA5041C3F528AC98385541D4606CC8DFFA5041B833AAE695385541FE5017DCF1FA5041F2DD687693385541295C8FE2F9FA504114AE47619238554185EB51C8FEFA50413D0AD733873855418BCFEC15F6FA5041313D42AE823855410BAA0485EFFA504164C74B447F38554179BAEB44EAFA504180CE73897C385541C974239CE5FA50415464481D7A38554143E9AA16DCFA50415FD1037475385541E17A145ED7FA5041CDCCCCEC743855417B14AE77D7FA504152B81E75703855413D0AD7B3D9FA5041666666D66B385541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>832664 - 803459
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -340 </desc>
+<a>
+01060000000100000001030000000100000045000000B591E4FDB5A6504163C4F460F6345441AEE127ECB1A650416B46604BF4345441295C8F72B0A65041295C8F12F8345441C3F5283CAFA65041A4703DBA02355441A4703DBAADA65041AE47E16A0735544152B81EA5ACA650410AD7A3A009355441E17A146EAAA65041CDCCCC3C0C35544185EB5118A7A650419A9999F90F355441D7A370DDA4A65041F6285CFF0F35544148E17AC4A1A650417B14AE0710355441AE47E11AA0A65041D7A370BD123554418FC2F5589FA65041E17A141E14355441EC51B8DE98A650418FC2F548213554419A9999599BA650413D0AD7B322355441EC51B81E9DA65041C3F5280C25355441B81E85AB99A650418FC2F5F828355441F6285C1F9DA65041333333A32D35544141EE35879EA650414428A3172B3554419F615760A1A65041271567DF27355441ABAAAABAA3A65041B6D75C282435544121B07248ABA650413B0AD7C318355441DF96B5FAB0A65041424444F411355441D9152077B2A6504183A429951135544155555535B3A65041354219ED1435544155555535B3A650412940EEE5173554417421691AB1A65041B2C876FE1A355441BB02E43EAFA65041358941401A355441A938FB60AEA650412E08ACBC1B355441B0B990E4ACA650419F45B6731F35544174DA40C7ABA65041AB8E09CE21355441F1197685ACA650414B62104824355441048CDE88ACA65041A289238F2635544157EE9B83AEA650413F0E3B5B23355441EB019B95AFA650419F1EE79F2135544170AB8911B1A6504146862B391F35544107A94057B3A650414E6175611B35544136CA58AAB4A65041AC27F41B193554419B622339B6A6504159D7966B16355441B5AD7ABDB7A65041595074F613355441746C1C42B7A650416BB689F910355441BC4D9766B5A6504159D25F380A3554410D21A7EBB6A65041D6953A600935544179E566F2B8A65041F435178A0F355441F1A653E8BAA6504166684811133554413A1B2E1EBDA650415FAFA80412355441390877F9BFA650418785125E0E3554417B14AEE7C1A6504185EB51180A355441EC51B89EC3A65041000000400635544114AE4741C6A65041C3F5285C0235544167C8DB03C8A65041E18E7BB8FF3454417B14AEB7C1A65041295C8F32FB3454419A999999BCA650418FC2F5C8F73454419A9999A9BAA65041A4703D4AF9345441713D0A57BBA6504148E17A34FA345441F6285CBFBBA6504100000030FB34544100000030BCA650418FC2F508FC34544166666686BCA65041295C8F52FD345441CDCCCC6CBCA650418FC2F5D8FE345441E17A144EBBA6504152B81E45003554419A999979B9A65041C3F5289C0035544114AE4771B7A65041C3F5289C00355441F6285CBFB5A65041CDCCCC3C003554417B14AE87B4A65041EC51B8EEFF345441713D0AB7B3A650410AD7A3D0FE3454411F85EB41B4A6504185EB5168FA345441E17A14DEB4A650411F85EB41F9345441713D0AB7B5A6504133333323F834544133333323B7A65041E17A14DEF7345441B591E4FDB5A6504163C4F460F6345441
+</a>
+
+<b>
+0106000000010000000103000000010000008E0000007B14AE07A8A65041F6285C3F3D355441D7A3700DA2A65041AE47E11A45355441CDCCCC1CA1A65041E17A146E4635544185EB51C8A0A65041EC51B83E49355441E17A149EA0A65041000000A04A355441AE47E13AA0A6504114AE47014C3554417B14AEE79EA650419A9999A94D355441000000309EA650419A9999994F3554418FC2F5E89DA6504185EB519851355441E17A146EA1A65041666666565935544100000030A3A65041000000A05D355441A4703D3AA4A650419A999929603554417B14AE47A5A650419A999949623554415C8FC235A6A6504152B81EC56135544114AE4711A7A65041F6285CCF61355441713D0AF7A7A65041295C8F4262355441713D0A07A9A650410AD7A3B06335544185EB51D8A9A65041AE47E1CA64355441A4703D7AABA650419A99991966355441713D0A27ADA6504114AE47A166355441E17A14FEAEA65041AE47E1CA663554415C8FC295B0A650411F85EB8166355441E17A140EB2A65041000000D065355441C3F5287CB3A65041A4703DEA64355441D7A3705DB5A6504148E17AE46335544185EB5158B6A65041295C8F5263355441D7A3705DB7A6504148E17AF46235544114AE47D1B9A650418FC2F50863355441CDCCCCBCBBA6504185EB512863355441CDCCCCACBCA65041713D0A67633554410AD7A310BEA650413333333363355441CDCCCCCCBEA65041B81E859B63355441B81E850BBFA65041295C8F4264355441713D0AF7C0A65041AE47E1BA63355441D7A370DDC3A65041C3F5286C62355441C3F5284CC7A650410AD7A380603554415C8FC235CFA650415C8FC2D55A35544152B81EE5CEA650410AD7A3405A3554411F85EB81CFA650419A9999995935544148E17AF4D0A65041000000805935544133333333D6A65041D7A3707D553554419A9999D9D9A65041F6285C4F51355441295C8FB2D8A65041295C8FA25135544133333393D8A6504100000010513554410AD7A320DAA65041F6285C1F50355441C3F5284CDBA650413D0AD7334F35544114AE4721DAA650410AD7A3204E355441295C8F82DDA65041E17A145E4A355441713D0A07DFA65041EC51B8FE48355441CDCCCC0CE1A650410AD7A3D045355441713D0AE7E6A65041000000603E35544100000030EDA65041713D0A773335544166666686F0A65041713D0AF72E3554418FC2F558EFA65041666666162F35544148E17A24EEA650418FC2F5D82D355441295C8F62ECA65041666666062D355441D7A370EDE9A6504114AE47012C355441EC51B8CEE6A65041AE47E12A2B355441E17A14EEE3A65041CDCCCCFC2A3554410AD7A330E2A65041CDCCCCFC2A3554418FC2F568E1A65041C3F5280C2B355441CDCCCC9CDFA65041713D0A772B355441A4703D5ADEA650415C8FC2952B35544166666636DDA65041713D0A772B35544148E17AE4DBA65041B81E851B2B355441C3F528BCD9A650411F85EB812A3554411F85EB31D6A650410AD7A3202935544100000070D3A65041CDCCCCFC2735544166666656D1A650418FC2F5D8263554419A999999CFA650415C8FC2B5253554415C8FC275CEA6504114AE47A124355441C3F5285CCCA650417B14AE87223554410AD7A380CAA65041A4703DDA20355441C3F5286CC9A6504114AE4731203554417B14AED7C9A65041713D0AA71F355441C3F528ECCAA65041F6285C5F20355441713D0AD7CCA65041C3F5281C2235544100000000CFA650415C8FC235243554415C8FC2F5CFA65041B81E852B253554413D0AD793D1A65041EC51B84E26355441CDCCCCBCD3A650413333336327355441EC51B87ED6A65041713D0A872835544185EB5118DAA650418FC2F5D8293554411F85EB21DCA6504114AE47912A35544152B81E55DDA65041EC51B8CE2A355441AE47E14ADEA65041E17A14DE2A355441E17A147EDFA65041EC51B8CE2A355441295C8F82E0A650410AD7A3A02A355441EC51B87EE1A650413D0AD7632A355441A4703D2AE2A65041AE47E14A2A35544133333383E2A6504148E17A042A355441AE47E1EAE1A65041EC51B8DE29355441EC51B87EE1A6504152B81EC52935544185EB5158E1A65041295C8F722935544152B81E65E1A650410000000029355441E17A14BEE1A65041666666C628355441713D0A17E2A65041333333D3283554418FC2F5C8DEA65041C3F5286C25355441A4703D8AE2A650415C8FC2F521355441CDCCCC4CE4A65041F6285C8F233554418FC2F528E8A650417B14AE471F35544152B81E75E9A65041295C8F021D35544114AE4721ECA65041D7A3709D183554410AD7A300EBA650410AD7A3E017355441AE47E10AEDA65041F6285C0F14355441EC51B8FEEDA65041B81E855B11355441CDCCCCACEEA6504185EB51C80E355441CDCCCCFCF1A65041C3F5281C103554411F85EBC1F2A65041713D0AB70B355441713D0A07F2A6504148E17A540B3554415C8FC265F8A65041713D0A77FD34544114AE4761FFA65041A4703D6AF0345441295C8F32F8A65041C3F5283CED34544166666686F4A65041E17A14FEEB3454418FC2F5E8EEA65041B81E857BEA345441AE47E17AEBA65041EC51B85EE9345441EC51B8EEE6A65041EC51B88EE7345441713D0AF7E2A65041EC51B88EE5345441EC51B83EDAA650419A9999B9EF34544152B81E05D8A6504114AE4731EE34544133333323D2A65041F6285CEFF4345441D7A370CDCEA65041F6285CBFF73454417B14AEF7CBA6504185EB5178FA34544166666636C9A65041CDCCCCECFD34544114AE4741C6A65041C3F5285C02355441EC51B89EC3A6504100000040063554417B14AEE7C1A6504185EB51180A355441AE47E11AC0A6504114AE47310E355441CDCCCC6CBDA650418FC2F5C8113554413D0AD703BBA65041D7A3709D133554418FC2F5C8B8A6504152B81E451235544114AE4731B6A6504185EB5178163554413D0AD733B4A65041713D0A271A35544114AE47A1ACA650417B14AE672635544166666666ABA6504152B81E65283554415C8FC285A9A65041D7A3709D2A355441D7A370FDA5A65041E17A146E2F35544133333363ACA65041713D0AA731355441D7A3701DAFA650410AD7A34031355441CDCCCCDCAFA6504148E17AB431355441AE47E1CAAFA6504148E17A44323554417B14AE07A8A65041F6285C3F3D355441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>832664 - 3104794
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -340 </desc>
+<a>
+01060000000100000001030000000100000045000000B591E4FDB5A6504163C4F460F6345441AEE127ECB1A650416B46604BF4345441295C8F72B0A65041295C8F12F8345441C3F5283CAFA65041A4703DBA02355441A4703DBAADA65041AE47E16A0735544152B81EA5ACA650410AD7A3A009355441E17A146EAAA65041CDCCCC3C0C35544185EB5118A7A650419A9999F90F355441D7A370DDA4A65041F6285CFF0F35544148E17AC4A1A650417B14AE0710355441AE47E11AA0A65041D7A370BD123554418FC2F5589FA65041E17A141E14355441EC51B8DE98A650418FC2F548213554419A9999599BA650413D0AD7B322355441EC51B81E9DA65041C3F5280C25355441B81E85AB99A650418FC2F5F828355441F6285C1F9DA65041333333A32D35544141EE35879EA650414428A3172B3554419F615760A1A65041271567DF27355441ABAAAABAA3A65041B6D75C282435544121B07248ABA650413B0AD7C318355441DF96B5FAB0A65041424444F411355441D9152077B2A6504183A429951135544155555535B3A65041354219ED1435544155555535B3A650412940EEE5173554417421691AB1A65041B2C876FE1A355441BB02E43EAFA65041358941401A355441A938FB60AEA650412E08ACBC1B355441B0B990E4ACA650419F45B6731F35544174DA40C7ABA65041AB8E09CE21355441F1197685ACA650414B62104824355441048CDE88ACA65041A289238F2635544157EE9B83AEA650413F0E3B5B23355441EB019B95AFA650419F1EE79F2135544170AB8911B1A6504146862B391F35544107A94057B3A650414E6175611B35544136CA58AAB4A65041AC27F41B193554419B622339B6A6504159D7966B16355441B5AD7ABDB7A65041595074F613355441746C1C42B7A650416BB689F910355441BC4D9766B5A6504159D25F380A3554410D21A7EBB6A65041D6953A600935544179E566F2B8A65041F435178A0F355441F1A653E8BAA6504166684811133554413A1B2E1EBDA650415FAFA80412355441390877F9BFA650418785125E0E3554417B14AEE7C1A6504185EB51180A355441EC51B89EC3A65041000000400635544114AE4741C6A65041C3F5285C0235544167C8DB03C8A65041E18E7BB8FF3454417B14AEB7C1A65041295C8F32FB3454419A999999BCA650418FC2F5C8F73454419A9999A9BAA65041A4703D4AF9345441713D0A57BBA6504148E17A34FA345441F6285CBFBBA6504100000030FB34544100000030BCA650418FC2F508FC34544166666686BCA65041295C8F52FD345441CDCCCC6CBCA650418FC2F5D8FE345441E17A144EBBA6504152B81E45003554419A999979B9A65041C3F5289C0035544114AE4771B7A65041C3F5289C00355441F6285CBFB5A65041CDCCCC3C003554417B14AE87B4A65041EC51B8EEFF345441713D0AB7B3A650410AD7A3D0FE3454411F85EB41B4A6504185EB5168FA345441E17A14DEB4A650411F85EB41F9345441713D0AB7B5A6504133333323F834544133333323B7A65041E17A14DEF7345441B591E4FDB5A6504163C4F460F6345441
+</a>
+
+<b>
+010600000001000000010300000001000000320000005C8FC285A9A65041D7A3709D2A355441D7A370FDA5A65041E17A146E2F35544166666676ADA650416666660632355441295C8FD2AEA650411F85EBF131355441CDCCCCDCAFA6504148E17AB4313554411F85EBF1B3A6504133333363333554417B14AE77B7A650415C8FC22535355441333333F3BBA65041C3F5281C363554410C826A1FC5A650415D982CFD3C355441C5C7D07FD1A65041516C996926355441C5DD03FAD3A6504186B7D38127355441BDA779EFD5A6504126834F5028355441AC3B65DAD9A650412FB4C7CF2935544147EC9BA3DBA65041B2CC838F2A355441346A5414DDA65041FC525A3D26355441E297C0E1E0A6504197C1F797203554416BF7279BE5A65041378D7366213554415375E00BE7A6504197C1F79720355441B9DADCBCE7A65041D842BCBA1F3554410CEF095EEBA650410200A0DF183554410AD7A300EBA650410AD7A3E017355441AE47E10AEDA65041F6285C0F1435544166666636EEA65041D7A370CD11355441C3F5284CEFA65041713D0A970F3554410AD7A320EDA6504152B81EC50C3554417B14AE17E9A650418FC2F5980B35544133333313E2A650417B14AE370A35544148E17AD4DCA650416666663608355441C3F528ECD6A650413D0AD793053554419A999929CDA65041333333730135544133333363D4A65041C3F528ACF534544133333363D5A65041295C8F22F43454419A999909D7A65041E17A149EF2345441EC51B83EDAA650419A9999B9EF34544152B81E05D8A6504114AE4731EE34544133333323D2A65041F6285CEFF4345441D7A370CDCEA65041F6285CBFF73454417B14AEF7CBA6504185EB5178FA34544166666636C9A65041CDCCCCECFD34544114AE4741C6A65041C3F5285C02355441EC51B89EC3A6504100000040063554417B14AEE7C1A6504185EB51180A355441AE47E11AC0A6504114AE47310E355441CDCCCC6CBDA650418FC2F5C8113554413D0AD703BBA65041D7A3709D133554418FC2F5C8B8A6504152B81E451235544114AE4731B6A6504185EB5178163554413D0AD733B4A65041713D0A271A35544166666666ABA6504152B81E65283554415C8FC285A9A65041D7A3709D2A355441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>832664 - 3426474
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -340 </desc>
+<a>
+01060000000100000001030000000100000045000000B591E4FDB5A6504163C4F460F6345441AEE127ECB1A650416B46604BF4345441295C8F72B0A65041295C8F12F8345441C3F5283CAFA65041A4703DBA02355441A4703DBAADA65041AE47E16A0735544152B81EA5ACA650410AD7A3A009355441E17A146EAAA65041CDCCCC3C0C35544185EB5118A7A650419A9999F90F355441D7A370DDA4A65041F6285CFF0F35544148E17AC4A1A650417B14AE0710355441AE47E11AA0A65041D7A370BD123554418FC2F5589FA65041E17A141E14355441EC51B8DE98A650418FC2F548213554419A9999599BA650413D0AD7B322355441EC51B81E9DA65041C3F5280C25355441B81E85AB99A650418FC2F5F828355441F6285C1F9DA65041333333A32D35544141EE35879EA650414428A3172B3554419F615760A1A65041271567DF27355441ABAAAABAA3A65041B6D75C282435544121B07248ABA650413B0AD7C318355441DF96B5FAB0A65041424444F411355441D9152077B2A6504183A429951135544155555535B3A65041354219ED1435544155555535B3A650412940EEE5173554417421691AB1A65041B2C876FE1A355441BB02E43EAFA65041358941401A355441A938FB60AEA650412E08ACBC1B355441B0B990E4ACA650419F45B6731F35544174DA40C7ABA65041AB8E09CE21355441F1197685ACA650414B62104824355441048CDE88ACA65041A289238F2635544157EE9B83AEA650413F0E3B5B23355441EB019B95AFA650419F1EE79F2135544170AB8911B1A6504146862B391F35544107A94057B3A650414E6175611B35544136CA58AAB4A65041AC27F41B193554419B622339B6A6504159D7966B16355441B5AD7ABDB7A65041595074F613355441746C1C42B7A650416BB689F910355441BC4D9766B5A6504159D25F380A3554410D21A7EBB6A65041D6953A600935544179E566F2B8A65041F435178A0F355441F1A653E8BAA6504166684811133554413A1B2E1EBDA650415FAFA80412355441390877F9BFA650418785125E0E3554417B14AEE7C1A6504185EB51180A355441EC51B89EC3A65041000000400635544114AE4741C6A65041C3F5285C0235544167C8DB03C8A65041E18E7BB8FF3454417B14AEB7C1A65041295C8F32FB3454419A999999BCA650418FC2F5C8F73454419A9999A9BAA65041A4703D4AF9345441713D0A57BBA6504148E17A34FA345441F6285CBFBBA6504100000030FB34544100000030BCA650418FC2F508FC34544166666686BCA65041295C8F52FD345441CDCCCC6CBCA650418FC2F5D8FE345441E17A144EBBA6504152B81E45003554419A999979B9A65041C3F5289C0035544114AE4771B7A65041C3F5289C00355441F6285CBFB5A65041CDCCCC3C003554417B14AE87B4A65041EC51B8EEFF345441713D0AB7B3A650410AD7A3D0FE3454411F85EB41B4A6504185EB5168FA345441E17A14DEB4A650411F85EB41F9345441713D0AB7B5A6504133333323F834544133333323B7A65041E17A14DEF7345441B591E4FDB5A6504163C4F460F6345441
+</a>
+
+<b>
+010600000001000000010300000001000000320000005C8FC285A9A65041D7A3709D2A355441D7A370FDA5A65041E17A146E2F35544166666676ADA650416666660632355441295C8FD2AEA650411F85EBF131355441CDCCCCDCAFA6504148E17AB4313554411F85EBF1B3A6504133333363333554417B14AE77B7A650415C8FC22535355441333333F3BBA65041C3F5281C363554410C826A1FC5A650415D982CFD3C355441C5C7D07FD1A65041516C996926355441C5DD03FAD3A6504186B7D38127355441BDA779EFD5A6504126834F5028355441AC3B65DAD9A650412FB4C7CF2935544147EC9BA3DBA65041B2CC838F2A355441346A5414DDA65041FC525A3D26355441E297C0E1E0A6504197C1F797203554416BF7279BE5A65041378D7366213554415375E00BE7A6504197C1F79720355441B9DADCBCE7A65041D842BCBA1F3554410CEF095EEBA650410200A0DF183554410AD7A300EBA650410AD7A3E017355441AE47E10AEDA65041F6285C0F1435544166666636EEA65041D7A370CD11355441C3F5284CEFA65041713D0A970F3554410AD7A320EDA6504152B81EC50C3554417B14AE17E9A650418FC2F5980B35544133333313E2A650417B14AE370A35544148E17AD4DCA650416666663608355441C3F528ECD6A650413D0AD793053554419A999929CDA65041333333730135544133333363D4A65041C3F528ACF534544133333363D5A65041295C8F22F43454419A999909D7A65041E17A149EF2345441EC51B83EDAA650419A9999B9EF34544152B81E05D8A6504114AE4731EE34544133333323D2A65041F6285CEFF4345441D7A370CDCEA65041F6285CBFF73454417B14AEF7CBA6504185EB5178FA34544166666636C9A65041CDCCCCECFD34544114AE4741C6A65041C3F5285C02355441EC51B89EC3A6504100000040063554417B14AEE7C1A6504185EB51180A355441AE47E11AC0A6504114AE47310E355441CDCCCC6CBDA650418FC2F5C8113554413D0AD703BBA65041D7A3709D133554418FC2F5C8B8A6504152B81E451235544114AE4731B6A6504185EB5178163554413D0AD733B4A65041713D0A271A35544166666666ABA6504152B81E65283554415C8FC285A9A65041D7A3709D2A355441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>670862 - 216590
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -425 </desc>
+<a>
+0106000000010000000103000000010000000A000000713D0A577EE350415C8FC2952D235541666666467BE3504148E17A742B235541295C8F3278E35041AE47E1AA2A235541E17A14DE76E350418FC2F5482C235541C3F528CC75E35041EC51B8BE2C2355417B14AE276AE350419A99998932235541D7A3700D79E35041AE47E10A3A235541C3F5286C7AE35041713D0AA73A235541A4703D0A81E350411F85EB712F235541713D0A577EE350415C8FC2952D235541
+</a>
+
+<b>
+0106000000010000000103000000010000001900000099A6591D7AE3504158D377282B235541F68ABD6879E35041757D40FA2A23554150F4864078E35041A513C9C12A23554130C1A3D877E35041683700482B235541493347D777E35041AF41614A2B235541C3CCB1BF77E35041929C96732B2355417D87CD3777E350414770CA172C235541C395BAEA76E3504192705D7B2C2355412057CC4D76E35041757471792D2355411C57CC4D76E35041827471792D235541E455CC4D76E35041477571792D2355415E2DD4FD75E350416B5C6CAD2D23554173A982D874E3504191C45E282F235541E79C163673E3504151FA0D7C2F235541A1EF08AD6CE3504158118ABB33235541A200D95079E3504111C5E4283A2355411AE449DD79E3504184FD6C673A235541F68334127AE35041EEB2FC7E3A2355411A6F25C380E35041F3BCF1402F235541F4AB47EB7FE3504128863CAC2E235541C64793997EE35041AC6E98C32D2355417C30C2B77DE3504167B3CD352D2355417340DC207BE350416CBEDF6A2B2355418C962E307AE35041F273492D2B23554199A6591D7AE3504158D377282B235541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>677423 - 1198153
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -30 </desc>
+<a>
+01060000000100000001030000000100000019000000B81E851B2F3551410AD7A3A0D49554411F85EB512E355141E17A148ED3955441CDCCCCDC183551410AD7A390D195544148E17A04F2345141D7A370FDCD9554417B14AE07EB345141295C8F12CE9554415C8FC275E2345141F6285C0FCF9554411F85EB61DE345141EC51B83ED1955441CDCCCC4CDD345141295C8FB2D2955441D7A3707DDA345141F6285C6FE0955441E17A14CED7345141295C8F82ED9554417B14AE07D834514152B81E65EF9554415C8FC2F5DC34514152B81EE5F995544100000000E5345141EC51B83E05965441E17A149EE23451418FC2F5E80D96544152B81E05DF345141333333731896544100000020D834514185EB51182496544133333333D63451417B14AED72B96544152B81EF5D63451411F85EBE12C965441AE47E1CAFA345141C3F5287C2F96544185EB51781A3551418FC2F5C8319654417B14AEA71B3551410AD7A3E030965441F6285CDF203551410AD7A320189654410000000025355141000000900496544185EB51282A355141AE47E11AEC955441B81E851B2F3551410AD7A3A0D4955441
+</a>
+
+<b>
+0106000000010000000103000000010000003A0000007B4CE502E9345141F30820EB049654418BDB4552E7345141B90707F600965441EE94AC20E4345141997283F5FA955441557592A3E0345141C87B180CF595544122E206BEDD345141E6C88B44F0955441078F3695DD3451410A28F790EF955441136EA3DEDC34514171FDA26DEC9554412770DF58DD345141368BE6B4E9955441FAF5F3B9DD345141032A8B8BE79554419AFF39ADDE345141FBFFF60EE29554410535A88EDF3451414DE8850ADC955441DF477BA9DF3451417CE73853DB955441CB205A68E03451414391D12BD995544160B2943BE134514194259AC9D6955441A8215374E23451412ECE14D2D3955441AF26D49CE23451412DB194CDD3955441ABF68598E5345141F5D2B978D3955441CCB37F7BEA345141E65E5699D2955441C3E981E4EF34514182DC03C6D2955441E07B79BEF0345141C5C2A3D6D2955441F3CF797C0435514104471D58D4955441A14B58821735514185B136EAD59554411CC1A6A12135514194259AC9D69554418EA9E1A225355141DDC5FE57D795544175978C562E35514109D0DB46D8955441840776B32E355141CF292F8ED69554419517CB182F355141F75E62A0D39554418ED50C1F29355141AB36A712D3955441843F010421355141DA12F0F7D1955441620B93DC163551412AA67F61D1955441EF7D36DD083551411690B617D095544162804F59F934514184562BAACE955441DE69C874EF345141D0822E05CE95544152736D90E8345141E2334C5BCE9554415C8FC275E2345141F6285C0FCF9554416F88A02EDD345141E0723A5AD29554417A83DB73D83451413A48485BEA9554410597F7D9D7345141D1DB25E6ED955441FE2D1392DC3451413D19CF10F995544187003AB8DE34514176330A61FC955441657767D1E13451412B0FC3C0009654415B786875E4345141F32A127B04965441E2B44F82E33451414F29252A0B965441382B9DC1E1345141438A46E71096544152B81E05DF345141333333731896544100000020D834514185EB51182496544133333333D63451417B14AED72B96544152B81EF5D63451411F85EBE12C965441AE47E1CAFA345141C3F5287C2F96544185EB51781A3551418FC2F5C8319654417B14AEA71B3551410AD7A3E030965441F6285CDF203551410AD7A320189654412D350A812235514125A27F280F965441EC7E9D91E9345141BCF187C40A9654412E619F2AE73451413DE0E09E0A965441D904B52DE73451412C2C58950A965441C084F3F8E634514106B646910A9654417B4CE502E9345141F30820EB04965441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>678878 - 58375
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -36 </desc>
+<a>
+0106000000010000000103000000010000001800000066666666813F51419A99997906915441666666D67F3F514152B81E7503915441713D0A577A3F514114AE4721F89054415C8FC295743F5141A4703D8AF390544114AE4791673F514185EB5198E990544152B81E05603F514148E17AF4E0905441CDCCCCCC5C3F5141C3F528BCDE90544152B81E95573F514152B81E75DC90544185EB5108533F51410AD7A3A0DA905441000000D04F3F514148E17A84D9905441D7A3706D4C3F514185EB5168D89054415C8FC235483F5141000000B0D6905441F6285C6F453F51413D0AD793D59054413D0AD793403F51418FC2F518D4905441B81E85FB383F5141333333C3D2905441333333432F3F5141A4703DDAD2905441A4703DCA193F5141AE47E1EAD6905441295C8F420A3F5141EC51B8DED9905441713D0AA7093F5141C3F528FCDA90544166666606143F51419A999989F490544133333363153F5141000000A0F5905441F6285C6F303F5141D7A3700DFA905441AE47E17A583F5141AE47E19A0091544166666666813F51419A99997906915441
+</a>
+
+<b>
+0106000000010000000103000000010000003A0000004A270153313F51410C595AD5D2905441823710FF2C3F5141A3393155D39054414B4F93C5253F5141555E4BD8D4905441E0FA372C0A3F51414B9EB907DA9054410717A9240A3F5141E1E59815DA9054418B75C8190A3F5141BCC88F29DA905441DA03B40C0A3F5141F57C9141DA905441DA03B40C0A3F5141393AAB63DA9054419634AEB6093F51411FF1B3E4DA905441F1E67BF2093F51415DE103B6DB905441B7B993160A3F5141530CEE0EDC90544155BB369C113F51415383A2E2D990544177B04A92213F5141AA6A6886D6905441792B30D82E3F5141118F4582D4905441CB5CA490353F51412BD83C01D49054412FA6D896383F5141118F4582D49054412DCB2FA13D3F5141555E4BD8D4905441911464A7403F5141DEFC5684D59054418C5E12BC4A3F51410FB49C8CD99054417946526E4E3F514163C0B93ADB905441CD526F1C503F5141EB5EC5E6DB905441CA77C626553F51419E83DF69DD90544184CD17DB593F5141AEC0F6C1DE905441462F49B65C3F514160E51045E0905441C5C1743B5F3F51417122289DE19054416EDAAE97623F514100F26A7AE590544117F3E8F3653F5141D390B3ADE990544151B60E23683F51416B6CD6B1EB905441141840FE6A3F51410448F9B5ED9054416F5594DD6F3F5141AD603312F19054410E62EE12753F5141DE17791AF59054419D3131F0783F51412918B6A1F8905441BEAB5FA07B3F51414086042BFD9054413D3E8B257E3F5141817A618B02915441CAEFE0EC7F3F514134BF714306915441457F3D5E813F514111F26D7806915441F4A2F11D803F5141D51A49FF03915441666666D67F3F514152B81E7503915441A5EC7CAF7F3F51414A47F12403915441AE6E48487A3F51418730B376F890544132B7C5B8723F51411BB6473FF2905441A4A94C42693F5141AD7222E3EA90544114AE4791673F514185EB5198E990544152B81E05603F514148E17AF4E0905441CDCCCCCC5C3F5141C3F528BCDE90544152B81E95573F514152B81E75DC9054417C390C76523F5141908A376EDA905441000000D04F3F514148E17A84D9905441D7A3706D4C3F514185EB5168D8905441DDFA2A2A4B3F5141B8507BE4D7905441EA760F914A3F514118C07CB3D7905441EC51B886453F514180E459AFD5905441DDEE1B47403F51418B05790BD49054414116AB08403F5141094F7F00D490544135F84F9E3F3F51418780CDEDD390544184B2F5443A3F514101522E2AD3905441AB5BBD74313F51410B620AD5D29054414A270153313F51410C595AD5D2905441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>183455 - 334180
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001D0000003D0AD713B29B5041C3F5282C2EF054418FC2F508B29B504152B81E652CF05441713D0A27B39B5041295C8FF22AF05441A4703D3AB49B5041000000A029F05441295C8F42B59B5041D7A370ED27F054415C8FC295B69B5041295C8F7225F05441333333D3B79B5041C3F5282C23F05441666666C6B89B5041A4703D9A21F054417B14AED7BA9B504152B81EB51EF05441F90AAFCFBB9B50416ECF5ECC1EF05441D807D021BD9B5041343083241DF05441DE47893BBE9B50417E268FA11BF054411BA6D3EDBF9B5041249E196719F05441E88A4010C19B5041042C9DE917F05441EC51B8FEC19B50415C8FC24516F0544114AE47C1C09B50413D0AD7D314F05441E42424C6BF9B5041D20E549114F054410AD7A390BE9B5041F6285C3F14F0544164FF6B24BC9B50412E34B02217F054415547268FBB9B5041E33B677B18F05441B81E859BBA9B5041666666A61AF05441C3F5289CB79B504148E17AA41EF05441D7A3709DB09B5041C3F528CC28F054417B14AE97AE9B5041EC51B89E2CF05441F6285CAFAB9B5041A4703D9A32F05441000000A0AF9B50415C8FC28534F0544114AE4781B09B5041EC51B84E32F054410AD7A300B19B504185EB51E82FF054413D0AD713B29B5041C3F5282C2EF05441
+</a>
+
+<b>
+010600000001000000010300000001000000200000007B14AE97AE9B5041EC51B89E2CF05441F6285CAFAB9B5041A4703D9A32F05441000000A0AF9B50415C8FC28534F0544114AE4781B09B5041EC51B84E32F054410AD7A300B19B504185EB51E82FF054413D0AD713B29B5041C3F5282C2EF054418FC2F508B29B504152B81E652CF05441713D0A27B39B5041295C8FF22AF05441A4703D3AB49B5041000000A029F05441295C8F42B59B5041D7A370ED27F054415C8FC295B69B5041295C8F7225F05441333333D3B79B5041C3F5282C23F05441666666C6B89B5041A4703D9A21F054417B14AED7BA9B504152B81EB51EF05441CF965AD0BB9B5041DA2D15B51EF05441291B3F05BC9B5041582613B51EF05441B4C76C06BD9B504165879D4B1DF054413BFA4013BE9B504106CD78D61BF05441DD94F425BF9B5041B7BEA36D1AF054413CA02C39C09B504113B9200419F05441F3E0F2FBC09B50418286480418F054411D843028C19B5041E7B493D017F05441B767AFF6C19B5041E627EEBA16F05441EC51B8FEC19B50415C8FC24516F0544114AE47C1C09B50413D0AD7D314F054410AD7A390BE9B5041F6285C3F14F05441F6285C3FBC9B504148E17AE416F05441C3F5282CBB9B50410000006019F05441B81E859BBA9B5041666666A61AF05441C3F5289CB79B504148E17AA41EF05441D7A3709DB09B5041C3F528CC28F054417B14AE97AE9B5041EC51B89E2CF05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>579059 - 1201706
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001A000000666666A65A3F5141A4703D7A486C5441713D0AF75E3F51415C8FC2953E6C544100000050603F5141295C8F523B6C544148E17AE4623F514148E17A94316C5441E17A14CE663F5141C3F5284C266C54410AD7A320673F5141E17A148E246C5441333333B3543F514185EB51D8276C5441CDCCCC0C473F514148E17A642A6C5441666666862E3F5141A4703DDA326C5441295C8F122A3F514100000070336C5441E17A145E293F5141C3F528AC336C544114AE47B1233F5141C3F528CC356C544185EB5168203F51413D0AD773366C5441AE47E1CA1F3F514166666666366C544148E17A441E3F514133333363366C544185EB51881D3F514100000040366C5441E17A142E1D3F5141000000003A6C5441333333831E3F51410AD7A3903F6C54411F85EB611F3F51413D0AD743446C5441AE47E18A1F3F51411F85EBC1456C54411F85EB21233F5141713D0A77466C5441CDCCCC5C333F514152B81E454A6C5441295C8F92363F514185EB51184B6C544152B81E05443F51419A9999B94D6C54419A999929573F51411F85EBE1536C5441666666A65A3F5141A4703D7A486C5441
+</a>
+
+<b>
+0106000000010000000103000000010000004D00000085EB5148BD3E5141C3F5283C306C5441A4703D8ABB3E51418FC2F558376C5441A4703D0ABA3E5141AE47E1DA3E6C5441AE47E10AB93E5141295C8FE2446C54418FC2F568B83E5141D7A3705D4C6C54410AD7A3C0B63E5141E17A14AE526C5441E17A141EB53E514185EB51C8596C5441AE47E1BAB33E5141B81E858B5E6C5441D7A3705DB13E514100000010646C5441C3F5286CAC3E5141B81E851B6E6C5441295C8FC2A83E5141AE47E1AA756C54418FC2F558A73E5141E17A142E7B6C54413D0AD7C3A63E51410AD7A360816C54411F85EBB1A63E5141295C8F72866C54411F85EBA1A63E5141EC51B88E8A6C5441AE47E18AA73E51415C8FC2458F6C5441295C8FC2A83E5141EC51B83E926C5441AE47E1CAA93E514114AE4771946C5441D7A3704DAB3E51411F85EB51936C544100000060B03E5141295C8F02916C544114AE47F1B53E5141C3F5287C8F6C54413D0AD7B3BB3E514152B81E958E6C5441295C8F02CB3E5141713D0AD78B6C544100000060D93E51411F85EB31886C5441A4703DCAE33E5141E17A14FE846C5441EC51B8DEE03E51419A999959786C54411F85EB81DF3E514148E17A74726C544100000000DF3E514133333343706C5441A4703D2AEA3E5141A4703DEA6D6C544148E17AD4F33E51418FC2F5686C6C544133333393083F514152B81E856A6C544156F9FBED093F51410BCE1895726C5441B0D5FD67123F51419F86FC55736C544128A6F54E183F5141522D1947746C54411F85EBC11D3F5141E17A148E746C5441295C8F02233F51411F85EB11736C5441C3F5281C283F51415C8FC2E5716C54418FC2F568303F514152B81EA5706C5441E17A141E333F5141E17A146E706C54413D0AD7B3343F51415C8FC245706C5441E570B092363F51418A8CB992706C544180A635B5383F5141B9F79324726C5441AB172DEA3C3F5141BF7A5229766C5441A3236730423F5141284B1A5D796C5441BF1DDAA6473F51414ABCE1DE7A6C5441127D0A0C4C3F5141C3809F7F7B6C544158DC0ABE4D3F51410C5D11E07B6C5441CDA6E501513F51416D2DA9607C6C5441CDA6E501513F5141C5FD102E7A6C5441AB351E804F3F5141D76E7849766C54417B14AE274E3F5141295C8FE2726C5441C3F5284C4D3F5141000000A06F6C544148E17AF44C3F5141A4703DAA6C6C544148E17AF44C3F51415C8FC2D5696C54411F85EB614D3F514166666646666C544152B81E954E3F51415C8FC295626C5441D7A370CD523F5141666666A65C6C54419A999929573F51411F85EBE1536C544152B81E05443F51419A9999B94D6C5441713D0A773A3F5141A4703D2A4D6C54413D0AD753323F5141666666D64B6C54410AD7A3D01F3F51415C8FC2C5466C5441AE47E18A1F3F51411F85EBC1456C54411F85EB611F3F51413D0AD743446C5441AEE35A101E3F5141578D01B13D6C5441D4AF126B1D3F5141678DBAFE3A6C5441C3F5289C0E3F5141AE47E15A3B6C5441000000C0053F514152B81E85376C5441863B683D033F51410E140330346C54411F85EB71023F51415C8FC225346C54419CA2D207FE3E5141321B35B9346C5441596D6FBCFC3E5141E5A946E5346C54415C8FC285F43E51410AD7A370366C54415C8FC2A5E83E51410AD7A3C0376C5441A4703D9ADD3E5141713D0AA7376C5441713D0AD7D73E514185EB5188366C544185EB5148BD3E5141C3F5283C306C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>579059 - 3469938
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001A000000666666A65A3F5141A4703D7A486C5441713D0AF75E3F51415C8FC2953E6C544100000050603F5141295C8F523B6C544148E17AE4623F514148E17A94316C5441E17A14CE663F5141C3F5284C266C54410AD7A320673F5141E17A148E246C5441333333B3543F514185EB51D8276C5441CDCCCC0C473F514148E17A642A6C5441666666862E3F5141A4703DDA326C5441295C8F122A3F514100000070336C5441E17A145E293F5141C3F528AC336C544114AE47B1233F5141C3F528CC356C544185EB5168203F51413D0AD773366C5441AE47E1CA1F3F514166666666366C544148E17A441E3F514133333363366C544185EB51881D3F514100000040366C5441E17A142E1D3F5141000000003A6C5441333333831E3F51410AD7A3903F6C54411F85EB611F3F51413D0AD743446C5441AE47E18A1F3F51411F85EBC1456C54411F85EB21233F5141713D0A77466C5441CDCCCC5C333F514152B81E454A6C5441295C8F92363F514185EB51184B6C544152B81E05443F51419A9999B94D6C54419A999929573F51411F85EBE1536C5441666666A65A3F5141A4703D7A486C5441
+</a>
+
+<b>
+0106000000010000000103000000010000004D00000085EB5148BD3E5141C3F5283C306C5441A4703D8ABB3E51418FC2F558376C5441A4703D0ABA3E5141AE47E1DA3E6C5441AE47E10AB93E5141295C8FE2446C54418FC2F568B83E5141D7A3705D4C6C54410AD7A3C0B63E5141E17A14AE526C5441E17A141EB53E514185EB51C8596C5441AE47E1BAB33E5141B81E858B5E6C5441D7A3705DB13E514100000010646C5441C3F5286CAC3E5141B81E851B6E6C5441295C8FC2A83E5141AE47E1AA756C54418FC2F558A73E5141E17A142E7B6C54413D0AD7C3A63E51410AD7A360816C54411F85EBB1A63E5141295C8F72866C54411F85EBA1A63E5141EC51B88E8A6C5441AE47E18AA73E51415C8FC2458F6C5441295C8FC2A83E5141EC51B83E926C5441AE47E1CAA93E514114AE4771946C5441D7A3704DAB3E51411F85EB51936C544100000060B03E5141295C8F02916C544114AE47F1B53E5141C3F5287C8F6C54413D0AD7B3BB3E514152B81E958E6C5441295C8F02CB3E5141713D0AD78B6C544100000060D93E51411F85EB31886C5441A4703DCAE33E5141E17A14FE846C5441EC51B8DEE03E51419A999959786C54411F85EB81DF3E514148E17A74726C544100000000DF3E514133333343706C5441A4703D2AEA3E5141A4703DEA6D6C544148E17AD4F33E51418FC2F5686C6C544133333393083F514152B81E856A6C544156F9FBED093F51410BCE1895726C5441B0D5FD67123F51419F86FC55736C544128A6F54E183F5141522D1947746C54411F85EBC11D3F5141E17A148E746C5441295C8F02233F51411F85EB11736C5441C3F5281C283F51415C8FC2E5716C54418FC2F568303F514152B81EA5706C5441E17A141E333F5141E17A146E706C54413D0AD7B3343F51415C8FC245706C5441E570B092363F51418A8CB992706C544180A635B5383F5141B9F79324726C5441AB172DEA3C3F5141BF7A5229766C5441A3236730423F5141284B1A5D796C5441BF1DDAA6473F51414ABCE1DE7A6C5441127D0A0C4C3F5141C3809F7F7B6C544158DC0ABE4D3F51410C5D11E07B6C5441CDA6E501513F51416D2DA9607C6C5441CDA6E501513F5141C5FD102E7A6C5441AB351E804F3F5141D76E7849766C54417B14AE274E3F5141295C8FE2726C5441C3F5284C4D3F5141000000A06F6C544148E17AF44C3F5141A4703DAA6C6C544148E17AF44C3F51415C8FC2D5696C54411F85EB614D3F514166666646666C544152B81E954E3F51415C8FC295626C5441D7A370CD523F5141666666A65C6C54419A999929573F51411F85EBE1536C544152B81E05443F51419A9999B94D6C5441713D0A773A3F5141A4703D2A4D6C54413D0AD753323F5141666666D64B6C54410AD7A3D01F3F51415C8FC2C5466C5441AE47E18A1F3F51411F85EBC1456C54411F85EB611F3F51413D0AD743446C5441AEE35A101E3F5141578D01B13D6C5441D4AF126B1D3F5141678DBAFE3A6C5441C3F5289C0E3F5141AE47E15A3B6C5441000000C0053F514152B81E85376C5441863B683D033F51410E140330346C54411F85EB71023F51415C8FC225346C54419CA2D207FE3E5141321B35B9346C5441596D6FBCFC3E5141E5A946E5346C54415C8FC285F43E51410AD7A370366C54415C8FC2A5E83E51410AD7A3C0376C5441A4703D9ADD3E5141713D0AA7376C5441713D0AD7D73E514185EB5188366C544185EB5148BD3E5141C3F5283C306C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979265 - 52900
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000140000009ABA4B446BE650418B7EFA42DA0E554143CAF00D77E6504128B5FCBAAD0E5541295C8F3276E650410AD7A3F0AD0E554152B81E1574E6504114AE4751AD0E55416666667669E65041AE47E11AA70E55411F85EBC15DE650418FC2F5F89F0E5541A4703D6A51E65041B81E858B980E554114AE47914DE6504148E17AA4950E5541295C8F224AE650410AD7A320980E55411F85EB7146E65041D7A3704DA40E55418FC2F50843E6504114AE47C1AE0E55419A99997943E65041D7A3708DB40E5541EC51B8AE44E65041C3F5289CB60E5541C3F528CC48E650419A999909BA0E554185EB514852E65041CDCCCC7CC00E554152B81E955CE65041000000E0CA0E5541713D0AA75FE6504148E17A54CE0E55413D0AD71361E65041E17A14FED00E55418FC2F5B866E65041B81E858BD60E55419ABA4B446BE650418B7EFA42DA0E5541
+</a>
+
+<b>
+0106000000010000000103000000010000003E00000052B81E1574E6504114AE4751AD0E5541E3A3C1CD71E65041F4F505FCAB0E5541C24E2F556EE6504197C239F4A90E55414352A4376CE6504169E76EB7A80E55416666667669E65041AE47E11AA70E55415D94E04F5EE65041905D764FA00E5541EDEDC4B259E6504102089E879D0E554108B5138856E6504177C5C19F9B0E5541809A9FAE54E650419044D7829A0E554188A1ABE852E65041F4F0A871990E5541ED995ADE52E65041AA9D736B990E5541A4703D6A51E65041B81E858B980E55414ACD871051E650413A2AD847980E55410B761EA250E6504145308DF4970E5541D08266F94FE65041A0C94575970E554188F4B0D34FE65041D547D358970E55410DCE52314FE65041355C56DE960E5541478A449D4EE65041736CA56E960E55418805C94F4EE650416EC93134960E554114AE47914DE6504148E17AA4950E5541C36636554CE650417D074D89960E55416F696D2D4AE65041A990CC1A980E5541D339BC054AE65041ACFBBE7F980E55412647EDFC49E65041D116CF9C980E55417155512247E6504195546C07A20E55411D57977646E65041CC14073EA40E55411F85EB7146E65041D7A3704DA40E55412DE2BCE244E65041E3690815A90E5541FE19201243E65041EF8E2FA5AE0E5541B06C441543E6504114447163AF0E5541AB2CDD5643E6504125D4C0C3B20E5541DF5D9F6143E65041CF708251B30E5541CA710B7D43E650412FA66B89B40E5541F3A7F7A643E65041D738BEDAB40E5541C422DCB643E6504159A4D2F5B40E55410593135B44E650415A0FA30DB60E554126FDFEB144E65041D17EF49DB60E554175059A8C46E65041B47E332AB80E5541A4C4276A49E650414A480A75BA0E55411BA914954FE65041DD21BEA6BE0E554185EB514852E65041CDCCCC7CC00E554104E67AFB55E650412C9F0138C40E5541F25096305AE65041687C4376C80E554152B81E955CE65041000000E0CA0E5541713D0AA75FE6504148E17A54CE0E554152C36E8E60E6504187A5D104D00E554149D208A861E65041249BD88FD10E5541F8586BB761E650413F98FA9ED10E55414EF66D5166E65041429EAF25D60E55417BA34D5A66E6504110126A2ED60E5541118A92F568E650418ED0D75FD80E55419ABA4B446BE650418B7EFA42DA0E55418A3A50136CE65041C77EE934D70E554139D0D0986EE650416A1059AECD0E55414B3C213670E65041B55BF094C70E5541C15F570B76E6504130F2EA8BB10E55418B606B0C76E650418944D887B10E55416450962976E65041E4D6A719B10E55413A7EC12B76E65041117F7611B10E554143CAF00D77E6504128B5FCBAAD0E5541295C8F3276E650410AD7A3F0AD0E554152B81E1574E6504114AE4751AD0E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>724689 - 129951
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000013000000AEB1C8B55EB150418BDD748EB54A55410DC8BB625EB1504176EC1657B54A554123B9199A5EB15041EBF3673BB54A5541FA4BCB9F4DB15041997C57F6B64A55418991E15350B150418563F3E2C94A5541813F668451B15041D51D4352D24A5541EDF43B9952B1504131777529DC4A5541868CCD1C54B150415EE4C323ED4A554151E3286A65B15041D4EB1408ED4A5541815A9FD26EB15041330208B5EC4A5541E170927F6EB1504179DA3592E94A5541C732CDAF6BB150412E25FA59DD4A554192B6421066B150418E68071AC64A55410E100FC464B150412E5728A4C24A554135A5639A62B1504191722F88BE4A55413DF7DE6961B15041D64A5D65BB4A554146495A3960B15041E7EE5304B94A55417A7D91775FB15041997C57F6B64A5541AEB1C8B55EB150418BDD748EB54A5541
+</a>
+
+<b>
+0106000000010000000103000000010000002C000000853F668451B15041D71D4352D24A55414CE0988752B150419C3BF688DB4A5541EEF43B9952B1504130777529DC4A5541E468CEF553B15041EA1D726EEB4A5541041F3F2054B1504198687521ED4A55410AE6DA8D55B1504198687521ED4A55414EE3286A65B15041D5EB1408ED4A5541904BFF9C6EB15041D363E1B6EC4A554156FE0AB46EB1504167DC6D8DEB4A55416FB4CA9A6EB15041C0BC5599EA4A5541DB8441856EB150414F9B27C9E94A55415025585A6EB150416DB969F0E84A55411C9E5ACA6DB1504106DA9B7EE64A55411CEFCE9D6DB150414FB001BDE54A5541CAC596886DB15041EFADC860E54A5541DD1CD9536DB150416563907BE44A5541A113A3486CB150414B3B39F2DF4A5541B1D8AA726BB15041BBF5355DDC4A554172C4DAAE69B15041837A2311D54A5541A24B0FDA68B15041B65A50A1D14A55418894F06B66B1504110BC4EDBC74A554124BA823866B15041028B72C0C64A554194B6421066B150418A68071AC64A5541A38C3EC564B150414BA351A7C24A5541AEF32DBB64B15041136E4993C24A5541EEB2DD2164B15041D4BFFD6FC14A554146491F6F63B15041DAC3601CC04A5541EBE535BC62B1504148E85DFBBE4A55417852D15C62B15041553BDCE5BD4A55413CF7DE6961B15041D44A5D65BB4A554142495A3960B15041EBEE5304B94A55415538DDA15FB15041100A2569B74A55414E377B0C5FB150410D08613EB64A5541AAB1C8B55EB150418DDD748EB54A55410DC8BB625EB1504176EC1657B54A5541041C42725EB1504175C2534FB54A55411F338EDA59B15041088448B7B54A55417537B2BA4DB1504189A299F3B64A5541C642808D4EB15041243C4A76BD4A554114F0068E4EB150415BF9F879BD4A5541C878942B50B1504140B6D7C8C84A5541E57C904D50B150419819B2A1C94A554102C0A96750B15041380A396FCA4A5541853F668451B15041D71D4352D24A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>724689 - 329208
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000013000000AEB1C8B55EB150418BDD748EB54A55410DC8BB625EB1504176EC1657B54A554123B9199A5EB15041EBF3673BB54A5541FA4BCB9F4DB15041997C57F6B64A55418991E15350B150418563F3E2C94A5541813F668451B15041D51D4352D24A5541EDF43B9952B1504131777529DC4A5541868CCD1C54B150415EE4C323ED4A554151E3286A65B15041D4EB1408ED4A5541815A9FD26EB15041330208B5EC4A5541E170927F6EB1504179DA3592E94A5541C732CDAF6BB150412E25FA59DD4A554192B6421066B150418E68071AC64A55410E100FC464B150412E5728A4C24A554135A5639A62B1504191722F88BE4A55413DF7DE6961B15041D64A5D65BB4A554146495A3960B15041E7EE5304B94A55417A7D91775FB15041997C57F6B64A5541AEB1C8B55EB150418BDD748EB54A5541
+</a>
+
+<b>
+0106000000010000000103000000010000002C000000853F668451B15041D71D4352D24A55414CE0988752B150419C3BF688DB4A5541EEF43B9952B1504130777529DC4A5541E468CEF553B15041EA1D726EEB4A5541041F3F2054B1504198687521ED4A55410AE6DA8D55B1504198687521ED4A55414EE3286A65B15041D5EB1408ED4A5541904BFF9C6EB15041D363E1B6EC4A554156FE0AB46EB1504167DC6D8DEB4A55416FB4CA9A6EB15041C0BC5599EA4A5541DB8441856EB150414F9B27C9E94A55415025585A6EB150416DB969F0E84A55411C9E5ACA6DB1504106DA9B7EE64A55411CEFCE9D6DB150414FB001BDE54A5541CAC596886DB15041EFADC860E54A5541DD1CD9536DB150416563907BE44A5541A113A3486CB150414B3B39F2DF4A5541B1D8AA726BB15041BBF5355DDC4A554172C4DAAE69B15041837A2311D54A5541A24B0FDA68B15041B65A50A1D14A55418894F06B66B1504110BC4EDBC74A554124BA823866B15041028B72C0C64A554194B6421066B150418A68071AC64A5541A38C3EC564B150414BA351A7C24A5541AEF32DBB64B15041136E4993C24A5541EEB2DD2164B15041D4BFFD6FC14A554146491F6F63B15041DAC3601CC04A5541EBE535BC62B1504148E85DFBBE4A55417852D15C62B15041553BDCE5BD4A55413CF7DE6961B15041D44A5D65BB4A554142495A3960B15041EBEE5304B94A55415538DDA15FB15041100A2569B74A55414E377B0C5FB150410D08613EB64A5541AAB1C8B55EB150418DDD748EB54A55410DC8BB625EB1504176EC1657B54A5541041C42725EB1504175C2534FB54A55411F338EDA59B15041088448B7B54A55417537B2BA4DB1504189A299F3B64A5541C642808D4EB15041243C4A76BD4A554114F0068E4EB150415BF9F879BD4A5541C878942B50B1504140B6D7C8C84A5541E57C904D50B150419819B2A1C94A554102C0A96750B15041380A396FCA4A5541853F668451B15041D71D4352D24A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>685457 - 685722
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000140000002A25F2AC9B4251413E4CD03333815441D089A231994251418DE556B83381544159C15DBB94425141CE14E7AB348154415C6760069742514166C068C5358154413E20AB7E974251416B1B442F368154410A6D9500984251414DD48EA736815441E1EFAF7D98425141F67EE8373781544113234CD498425141FBD9C3A137815441AC3C9AFF9842514122D72FFD37815441A79B214999425141318BE35B38815441CDCCCCCC9A42514148E17A743E8154415C8FC265A242514148E17A345E8154415C8FC255AA4251413D0AD7237A815441295C8FC2AB425141B81E85BB7A815441E17A14FEAC4251418FC2F5087A815441713D0AD7B24251415C8FC235788154416FB1C92AC64251419C2D4A91728154416BA98231B442514158CAD2EA2D815441713D0AD7B04251419A9999C92E8154412A25F2AC9B4251413E4CD03333815441
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000333333B39442514185EB51A834815441713D0AD7B04251419A9999C92E815441D7A3702DC3425141C3F528CC29815441AE47E1EAC44251411F85EBC127815441B81E855BC542514152B81EB52581544185EB5148C342514152B81E15228154417B14AE07C2425141333333632181544166666646A0425141B81E85EB248154417B14AE8790425141CDCCCC6C22815441A4703DCA8D42514185EB518821815441666666F68C4251411F85EB51228154418FC2F5B890425141AE47E1DA318154419A999929924251410AD7A39033815441333333B39442514185EB51A834815441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>685457 - 1191562
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000140000002A25F2AC9B4251413E4CD03333815441D089A231994251418DE556B83381544159C15DBB94425141CE14E7AB348154415C6760069742514166C068C5358154413E20AB7E974251416B1B442F368154410A6D9500984251414DD48EA736815441E1EFAF7D98425141F67EE8373781544113234CD498425141FBD9C3A137815441AC3C9AFF9842514122D72FFD37815441A79B214999425141318BE35B38815441CDCCCCCC9A42514148E17A743E8154415C8FC265A242514148E17A345E8154415C8FC255AA4251413D0AD7237A815441295C8FC2AB425141B81E85BB7A815441E17A14FEAC4251418FC2F5087A815441713D0AD7B24251415C8FC235788154416FB1C92AC64251419C2D4A91728154416BA98231B442514158CAD2EA2D815441713D0AD7B04251419A9999C92E8154412A25F2AC9B4251413E4CD03333815441
+</a>
+
+<b>
+010600000001000000010300000001000000400000000EE1B116B44251417D444AE72D815441713D0AD7B04251419A9999C92E815441333333B39442514185EB51A834815441C6662661954251418F0B1ACF34815441E58367829742514152DDFFA93581544103E61489984251419F77046D3681544112976B0C9942514150B8AC77378154418D69C78B99425141689FF8C9388154410C6BD59B9A425141F9586E883D8154410E3B848CBD425141E040127F368154411621486FC5425141D586B9814D815441C76AAF99BE42514152E60F9C4F815441DE00B758CA425141019B18567181544148E17AF4CC42514185EB51A870815441C3F5289CC64251415C8FC2655F81544148E17A94D0425141AE47E1FA5C81544152B81EF5D84251410AD7A3C059815441C3F5288CDA425141B81E85FB58815441CDCCCCDCE34251411F85EBF16A815441666666D6EC42514152B81EB568815441F6285C0FE6425141E17A143E59815441D7A3709DE04251411F85EBF15981544166666666DE42514148E17A145981544133333363DD4251413D0AD78355815441E17A14FEDB425141333333A35381544152B81E55D842514148E17A74548154417B14AE97D7425141D7A370BD548154418FC2F538D842514185EB5168588154410AD7A3E0CC4251410AD7A3505B815441295C8F22C9425141EC51B8EE58815441D7A370DDC6425141CDCCCCEC5281544148E17AA4C5425141000000705081544100000070C74251415C8FC2C54D8154413D0AD743CB4251418FC2F54849815441F6285C2FCD425141CDCCCC9C4A815441713D0A27D242514185EB51084C815441713D0A27D2425141CDCCCC6C4E8154419A999919D7425141EC51B85E4E815441F6285C5FD7425141000000605381544133333363DE425141000000B051815441F6285CFFE04251411F85EB615081544133333343E442514152B81E55508154411F85EB31E5425141B81E855B4E81544185EB5108ED425141000000004481544114AE4751EA425141E17A141E44815441A4703DAAE3425141E17A14DE3E815441F6285C4FDD42514114AE479138815441295C8F72D94251413D0AD77330815441A4703DCADD425141A4703D0A3C815441713D0A17E34251410000004049815441295C8F42E3425141000000104A81544100000040DC4251410AD7A3A04C8154419A999969DA425141333333034D8154417B14AE87D3425141000000C03D81544148E17AF4CE42514114AE473133815441295C8FB2C9425141333333532681544100000010D54251418FC2F5D8258154419A9999B9D442514185EB510825815441295C8F42D44251415C8FC26523815441C3F528DCC5425141C3F528BC23815441B81E855BC542514152B81EB525815441AE47E1EAC44251411F85EBC127815441D7A3702DC3425141C3F528CC298154410EE1B116B44251417D444AE72D815441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>685457 - 1191594
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000140000002A25F2AC9B4251413E4CD03333815441D089A231994251418DE556B83381544159C15DBB94425141CE14E7AB348154415C6760069742514166C068C5358154413E20AB7E974251416B1B442F368154410A6D9500984251414DD48EA736815441E1EFAF7D98425141F67EE8373781544113234CD498425141FBD9C3A137815441AC3C9AFF9842514122D72FFD37815441A79B214999425141318BE35B38815441CDCCCCCC9A42514148E17A743E8154415C8FC265A242514148E17A345E8154415C8FC255AA4251413D0AD7237A815441295C8FC2AB425141B81E85BB7A815441E17A14FEAC4251418FC2F5087A815441713D0AD7B24251415C8FC235788154416FB1C92AC64251419C2D4A91728154416BA98231B442514158CAD2EA2D815441713D0AD7B04251419A9999C92E8154412A25F2AC9B4251413E4CD03333815441
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000333333B39442514185EB51A834815441713D0AD7B04251419A9999C92E815441D7A3702DC3425141C3F528CC29815441AE47E1EAC44251411F85EBC127815441B81E855BC542514152B81EB52581544185EB5148C342514152B81E15228154417B14AE07C2425141333333632181544166666646A0425141B81E85EB248154417B14AE8790425141CDCCCC6C22815441A4703DCA8D42514185EB518821815441666666F68C4251411F85EB51228154418FC2F5B890425141AE47E1DA318154419A999929924251410AD7A39033815441333333B39442514185EB51A834815441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>685457 - 3958529
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000140000002A25F2AC9B4251413E4CD03333815441D089A231994251418DE556B83381544159C15DBB94425141CE14E7AB348154415C6760069742514166C068C5358154413E20AB7E974251416B1B442F368154410A6D9500984251414DD48EA736815441E1EFAF7D98425141F67EE8373781544113234CD498425141FBD9C3A137815441AC3C9AFF9842514122D72FFD37815441A79B214999425141318BE35B38815441CDCCCCCC9A42514148E17A743E8154415C8FC265A242514148E17A345E8154415C8FC255AA4251413D0AD7237A815441295C8FC2AB425141B81E85BB7A815441E17A14FEAC4251418FC2F5087A815441713D0AD7B24251415C8FC235788154416FB1C92AC64251419C2D4A91728154416BA98231B442514158CAD2EA2D815441713D0AD7B04251419A9999C92E8154412A25F2AC9B4251413E4CD03333815441
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000333333B39442514185EB51A834815441713D0AD7B04251419A9999C92E815441D7A3702DC3425141C3F528CC29815441AE47E1EAC44251411F85EBC127815441B81E855BC542514152B81EB52581544185EB5148C342514152B81E15228154417B14AE07C2425141333333632181544166666646A0425141B81E85EB248154417B14AE8790425141CDCCCC6C22815441A4703DCA8D42514185EB518821815441666666F68C4251411F85EB51228154418FC2F5B890425141AE47E1DA318154419A999929924251410AD7A39033815441333333B39442514185EB51A834815441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>685457 - 5307794
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000140000002A25F2AC9B4251413E4CD03333815441D089A231994251418DE556B83381544159C15DBB94425141CE14E7AB348154415C6760069742514166C068C5358154413E20AB7E974251416B1B442F368154410A6D9500984251414DD48EA736815441E1EFAF7D98425141F67EE8373781544113234CD498425141FBD9C3A137815441AC3C9AFF9842514122D72FFD37815441A79B214999425141318BE35B38815441CDCCCCCC9A42514148E17A743E8154415C8FC265A242514148E17A345E8154415C8FC255AA4251413D0AD7237A815441295C8FC2AB425141B81E85BB7A815441E17A14FEAC4251418FC2F5087A815441713D0AD7B24251415C8FC235788154416FB1C92AC64251419C2D4A91728154416BA98231B442514158CAD2EA2D815441713D0AD7B04251419A9999C92E8154412A25F2AC9B4251413E4CD03333815441
+</a>
+
+<b>
+010600000001000000010300000001000000400000000EE1B116B44251417D444AE72D815441713D0AD7B04251419A9999C92E815441333333B39442514185EB51A834815441C7662661954251418F0B1ACF34815441E88367829742514150DDFFA93581544101E61489984251419E77046D3681544112976B0C9942514150B8AC77378154418C69C78B99425141649FF8C9388154410C6BD59B9A425141F9586E883D8154410E3B848CBD425141E040127F368154411621486FC5425141D586B9814D815441C76AAF99BE42514152E60F9C4F815441DE00B758CA425141019B18567181544148E17AF4CC42514185EB51A870815441C3F5289CC64251415C8FC2655F81544148E17A94D0425141AE47E1FA5C81544152B81EF5D84251410AD7A3C059815441C3F5288CDA425141B81E85FB58815441CDCCCCDCE34251411F85EBF16A815441666666D6EC42514152B81EB568815441F6285C0FE6425141E17A143E59815441D7A3709DE04251411F85EBF15981544166666666DE42514148E17A145981544133333363DD4251413D0AD78355815441E17A14FEDB425141333333A35381544152B81E55D842514148E17A74548154417B14AE97D7425141D7A370BD548154418FC2F538D842514185EB5168588154410AD7A3E0CC4251410AD7A3505B815441295C8F22C9425141EC51B8EE58815441D7A370DDC6425141CDCCCCEC5281544148E17AA4C5425141000000705081544100000070C74251415C8FC2C54D8154413D0AD743CB4251418FC2F54849815441F6285C2FCD425141CDCCCC9C4A815441713D0A27D242514185EB51084C815441713D0A27D2425141CDCCCC6C4E8154419A999919D7425141EC51B85E4E815441F6285C5FD7425141000000605381544133333363DE425141000000B051815441F6285CFFE04251411F85EB615081544133333343E442514152B81E55508154411F85EB31E5425141B81E855B4E81544185EB5108ED425141000000004481544114AE4751EA425141E17A141E44815441A4703DAAE3425141E17A14DE3E815441F6285C4FDD42514114AE479138815441295C8F72D94251413D0AD77330815441A4703DCADD425141A4703D0A3C815441713D0A17E34251410000004049815441295C8F42E3425141000000104A81544100000040DC4251410AD7A3A04C8154419A999969DA425141333333034D8154417B14AE87D3425141000000C03D81544148E17AF4CE42514114AE473133815441295C8FB2C9425141333333532681544100000010D54251418FC2F5D8258154419A9999B9D442514185EB510825815441295C8F42D44251415C8FC26523815441C3F528DCC5425141C3F528BC23815441B81E855BC542514152B81EB525815441AE47E1EAC44251411F85EBC127815441D7A3702DC3425141C3F528CC298154410EE1B116B44251417D444AE72D815441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>3168668 - 3108485
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000080000003D0AD713CBCA5041E17A144ED1AD544185EB5158CCCA504114AE4781D0AD54419A9999C9CDCA5041D7A3704DBBAD544185EB518894CA5041333333B3A5AD54413333330391CA5041333333B3AFAD5441000000708ECA50410AD7A320B9AD5441295C8F528FCA5041A4703DCABAAD54413D0AD713CBCA5041E17A144ED1AD5441
+</a>
+
+<b>
+010600000001000000010300000001000000100000008BF173B991CA504116A26FADADAD5441001D061591CA5041CE609080AFAD54411EBD6ED890CA5041DC52C74FB0AD54410FBB91E890CA504142E5455BB0AD5441E5247BBE91CA5041744B96A9B0AD5441C5E9C68B9BCA5041E2933D2CB4AD5441F5E2BEC5A8CA50416F43FAEAB8AD5441545F6345C8CA50412F5ECA45C4AD5441F991EE12CDCA50417CE22B01C6AD544101AD3A90CDCA50417284B398BEAD54418B795BC9CDCA5041ACC80151BBAD5441E7EFF84EABCA504173D51F4BAEAD5441419C63E696CA5041BC32DF97A6AD5441B1E9AEA094CA50411C7064BCA5AD54416B9AE18994CA50418448C3AEA5AD54418BF173B991CA504116A26FADADAD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>3168668 - 3487010
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000080000003D0AD713CBCA5041E17A144ED1AD544185EB5158CCCA504114AE4781D0AD54419A9999C9CDCA5041D7A3704DBBAD544185EB518894CA5041333333B3A5AD54413333330391CA5041333333B3AFAD5441000000708ECA50410AD7A320B9AD5441295C8F528FCA5041A4703DCABAAD54413D0AD713CBCA5041E17A144ED1AD5441
+</a>
+
+<b>
+010600000001000000010300000001000000100000008BF173B991CA504116A26FADADAD5441001D061591CA5041CE609080AFAD54411EBD6ED890CA5041DC52C74FB0AD54410FBB91E890CA504142E5455BB0AD5441E5247BBE91CA5041744B96A9B0AD5441C5E9C68B9BCA5041E2933D2CB4AD5441F5E2BEC5A8CA50416F43FAEAB8AD5441545F6345C8CA50412F5ECA45C4AD5441F991EE12CDCA50417CE22B01C6AD544101AD3A90CDCA50417284B398BEAD54418B795BC9CDCA5041ACC80151BBAD5441E7EFF84EABCA504173D51F4BAEAD5441419C63E696CA5041BC32DF97A6AD5441B1E9AEA094CA50411C7064BCA5AD54416B9AE18994CA50418448C3AEA5AD54418BF173B991CA504116A26FADADAD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979214 - 1730667
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000030000003F000000379E7625A1965041D81A9F99BB2F55418C636677A196504189C346E5C12F55411217008AA0965041BCB45FECC72F5541D45780389E9650418DEC6B41CD2F554159D98095999650415F56114CD62F5541C5C727B7949650414AECDC6CE12F5541DF8C1AA89896504163B1CF5DE52F554135DFF3349B9650411C568277EA2F55411C4C9AF99A965041BACE0E7BED2F55411CB3CD1E99965041A5CB0DC1F62F5541A1CD9A5696965041F2E84CDEFE2F5541D0958E0191965041CE878C58023055418346B62E859650412F41990A03305541A3E5847D7496504153D4F24503305541295C8FA25E9650410000009004305541A4703DEA5B965041E17A14DE093055417B14AEE7589650413D0AD77316305541F6285C1F56965041C3F5283C2030554180387CB34E96504152233C4423305541EC8D56FA479650418FE2BB952530554195D4494847965041A8A7AE862930554195A2B09243965041FF9254EE2D305541012A248F40965041B79E3A2D31305541F6C2F06942965041D1632D1E3530554158AE96D14696504170DCB921383055415CD7BB2D5296504189A1AC123C3055417AF76C3065965041E0251F55423055414CC845606C965041BC2B92F443305541987E515876965041989838B94330554137F7DD5B7996504198FF6BDE413055411D991E90739650410487DFDA3E305541F9375E0A7796504128E89F603B30554113648420799650414C4960E6373055417F522B4274965041AD69A0BD363055415BF16ABC779650417A115491323055415B8A37977996504185DFBADB2E305541F2C4BFD5779650418DE13F28263055410B448DD178965041F039E8E0223055414058C0C0909650415F9290991F3055419A82AF14919650412D663C3D2130554126D9F2C48F965041B08EC688233055419A82AF149196504164E3A4302430554145A9D45795965041193883D82430554122FC4DF79796504164E3A43024305541C8D15EA3979650413CE509392230554145A9D45795965041B9BC7FED1F3055415233DC18B89650411D1528A61C3055416BB2A914B99650419AEC9D5A1A3055418F5F3075B6965041C7C7DD1F14305541EAFD8E92C396504130CF71410C30554135A9B0EAC2965041EE51094E09305541CB2DADFFBD9650418985F1CBFF2F554194B0440CBB9650419CE16395F82F5541B75DCB6CB896504123E792AEF22F554134354121B6965041F1BA3E52F42F55418DEBC0ABA996504164F08BD8E82F554133C1D157A99650414520AA45E32F554133C1D157A9965041E05392C3D92F554133C1D157A99650418A06483DD12F554197197A10A696504174641F0FC82F55411A42045CA8965041BABE2CD0C22F5541CE96E203A9965041C4ECE534BF2F5541379E7625A1965041D81A9F99BB2F55410600000042DC5E4D839650412E21CC7A16305541784F1C33839650415CE1E5F014305541A8A786338F965041F0D4D6C2113055412C8158EB8F9650417B614CEA13305541A0F4E2C38D965041172E758E1530554142DC5E4D839650412E21CC7A16305541070000005B8D9A269596504173AEA87A123055415B8D9A26959650410E553DBC10305541DF8C0041999650416448619B0F3055418ABF70C49D965041EFAE42600E305541D0987589A09650413D1557320F30554154724741A1965041B1AE756D103055415B8D9A269596504173AEA87A12305541
+</a>
+
+<b>
+0106000000010000000103000000030000003F000000379E7625A1965041D81A9F99BB2F55418C636677A196504189C346E5C12F55411217008AA0965041BCB45FECC72F5541D45780389E9650418DEC6B41CD2F554159D98095999650415F56114CD62F5541C5C727B7949650414AECDC6CE12F5541DF8C1AA89896504163B1CF5DE52F554135DFF3349B9650411C568277EA2F55411C4C9AF99A965041BACE0E7BED2F55411CB3CD1E99965041A5CB0DC1F62F5541A1CD9A5696965041F2E84CDEFE2F5541D0958E0191965041CE878C58023055418346B62E859650412F41990A03305541A3E5847D7496504153D4F24503305541295C8FA25E9650410000009004305541A4703DEA5B965041E17A14DE093055417B14AEE7589650413D0AD77316305541F6285C1F56965041C3F5283C2030554180387CB34E96504152233C4423305541EC8D56FA479650418FE2BB952530554195D4494847965041A8A7AE862930554195A2B09243965041FF9254EE2D305541012A248F40965041B79E3A2D31305541F6C2F06942965041D1632D1E3530554158AE96D14696504170DCB921383055415CD7BB2D5296504189A1AC123C3055417AF76C3065965041E0251F55423055414CC845606C965041BC2B92F443305541987E515876965041989838B94330554137F7DD5B7996504198FF6BDE413055411D991E90739650410487DFDA3E305541F9375E0A7796504128E89F603B30554113648420799650414C4960E6373055417F522B4274965041AD69A0BD363055415BF16ABC779650417A115491323055415B8A37977996504185DFBADB2E305541F2C4BFD5779650418DE13F28263055410B448DD178965041F039E8E0223055414058C0C0909650415F9290991F3055419A82AF14919650412D663C3D2130554126D9F2C48F965041B08EC688233055419A82AF149196504164E3A4302430554145A9D45795965041193883D82430554122FC4DF79796504164E3A43024305541C8D15EA3979650413CE509392230554145A9D45795965041B9BC7FED1F3055415233DC18B89650411D1528A61C3055416BB2A914B99650419AEC9D5A1A3055418F5F3075B6965041C7C7DD1F14305541EAFD8E92C396504130CF71410C30554135A9B0EAC2965041EE51094E09305541CB2DADFFBD9650418985F1CBFF2F554194B0440CBB9650419CE16395F82F5541B75DCB6CB896504123E792AEF22F554134354121B6965041F1BA3E52F42F55418DEBC0ABA996504164F08BD8E82F554133C1D157A99650414520AA45E32F554133C1D157A9965041E05392C3D92F554133C1D157A99650418A06483DD12F554197197A10A696504174641F0FC82F55411A42045CA8965041BABE2CD0C22F5541CE96E203A9965041C4ECE534BF2F5541379E7625A1965041D81A9F99BB2F55410600000044DC5E4D839650412B21CC7A16305541774F1C33839650415BE1E5F014305541A4A786338F965041EED4D6C2113055412B8158EB8F96504178614CEA13305541A2F4E2C38D965041152E758E1530554144DC5E4D839650412B21CC7A16305541070000005F8D9A269596504175AEA87A123055415F8D9A26959650410B553DBC10305541E38C0041999650416548619B0F30554186BF70C49D965041F1AE42600E305541D4987589A09650413B1557320F30554150724741A1965041AEAE756D103055415F8D9A269596504175AEA87A12305541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979214 - 3485438
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000030000003F000000379E7625A1965041D81A9F99BB2F55418C636677A196504189C346E5C12F55411217008AA0965041BCB45FECC72F5541D45780389E9650418DEC6B41CD2F554159D98095999650415F56114CD62F5541C5C727B7949650414AECDC6CE12F5541DF8C1AA89896504163B1CF5DE52F554135DFF3349B9650411C568277EA2F55411C4C9AF99A965041BACE0E7BED2F55411CB3CD1E99965041A5CB0DC1F62F5541A1CD9A5696965041F2E84CDEFE2F5541D0958E0191965041CE878C58023055418346B62E859650412F41990A03305541A3E5847D7496504153D4F24503305541295C8FA25E9650410000009004305541A4703DEA5B965041E17A14DE093055417B14AEE7589650413D0AD77316305541F6285C1F56965041C3F5283C2030554180387CB34E96504152233C4423305541EC8D56FA479650418FE2BB952530554195D4494847965041A8A7AE862930554195A2B09243965041FF9254EE2D305541012A248F40965041B79E3A2D31305541F6C2F06942965041D1632D1E3530554158AE96D14696504170DCB921383055415CD7BB2D5296504189A1AC123C3055417AF76C3065965041E0251F55423055414CC845606C965041BC2B92F443305541987E515876965041989838B94330554137F7DD5B7996504198FF6BDE413055411D991E90739650410487DFDA3E305541F9375E0A7796504128E89F603B30554113648420799650414C4960E6373055417F522B4274965041AD69A0BD363055415BF16ABC779650417A115491323055415B8A37977996504185DFBADB2E305541F2C4BFD5779650418DE13F28263055410B448DD178965041F039E8E0223055414058C0C0909650415F9290991F3055419A82AF14919650412D663C3D2130554126D9F2C48F965041B08EC688233055419A82AF149196504164E3A4302430554145A9D45795965041193883D82430554122FC4DF79796504164E3A43024305541C8D15EA3979650413CE509392230554145A9D45795965041B9BC7FED1F3055415233DC18B89650411D1528A61C3055416BB2A914B99650419AEC9D5A1A3055418F5F3075B6965041C7C7DD1F14305541EAFD8E92C396504130CF71410C30554135A9B0EAC2965041EE51094E09305541CB2DADFFBD9650418985F1CBFF2F554194B0440CBB9650419CE16395F82F5541B75DCB6CB896504123E792AEF22F554134354121B6965041F1BA3E52F42F55418DEBC0ABA996504164F08BD8E82F554133C1D157A99650414520AA45E32F554133C1D157A9965041E05392C3D92F554133C1D157A99650418A06483DD12F554197197A10A696504174641F0FC82F55411A42045CA8965041BABE2CD0C22F5541CE96E203A9965041C4ECE534BF2F5541379E7625A1965041D81A9F99BB2F55410600000042DC5E4D839650412E21CC7A16305541784F1C33839650415CE1E5F014305541A8A786338F965041F0D4D6C2113055412C8158EB8F9650417B614CEA13305541A0F4E2C38D965041172E758E1530554142DC5E4D839650412E21CC7A16305541070000005B8D9A269596504173AEA87A123055415B8D9A26959650410E553DBC10305541DF8C0041999650416448619B0F3055418ABF70C49D965041EFAE42600E305541D0987589A09650413D1557320F30554154724741A1965041B1AE756D103055415B8D9A269596504173AEA87A12305541
+</a>
+
+<b>
+0106000000010000000103000000030000003F000000379E7625A1965041D81A9F99BB2F55418C636677A196504189C346E5C12F55411217008AA0965041BCB45FECC72F5541D45780389E9650418DEC6B41CD2F554159D98095999650415F56114CD62F5541C5C727B7949650414AECDC6CE12F5541DF8C1AA89896504163B1CF5DE52F554135DFF3349B9650411C568277EA2F55411C4C9AF99A965041BACE0E7BED2F55411CB3CD1E99965041A5CB0DC1F62F5541A1CD9A5696965041F2E84CDEFE2F5541D0958E0191965041CE878C58023055418346B62E859650412F41990A03305541A3E5847D7496504153D4F24503305541295C8FA25E9650410000009004305541A4703DEA5B965041E17A14DE093055417B14AEE7589650413D0AD77316305541F6285C1F56965041C3F5283C2030554180387CB34E96504152233C4423305541EC8D56FA479650418FE2BB952530554195D4494847965041A8A7AE862930554195A2B09243965041FF9254EE2D305541012A248F40965041B79E3A2D31305541F6C2F06942965041D1632D1E3530554158AE96D14696504170DCB921383055415CD7BB2D5296504189A1AC123C3055417AF76C3065965041E0251F55423055414CC845606C965041BC2B92F443305541987E515876965041989838B94330554137F7DD5B7996504198FF6BDE413055411D991E90739650410487DFDA3E305541F9375E0A7796504128E89F603B30554113648420799650414C4960E6373055417F522B4274965041AD69A0BD363055415BF16ABC779650417A115491323055415B8A37977996504185DFBADB2E305541F2C4BFD5779650418DE13F28263055410B448DD178965041F039E8E0223055414058C0C0909650415F9290991F3055419A82AF14919650412D663C3D2130554126D9F2C48F965041B08EC688233055419A82AF149196504164E3A4302430554145A9D45795965041193883D82430554122FC4DF79796504164E3A43024305541C8D15EA3979650413CE509392230554145A9D45795965041B9BC7FED1F3055415233DC18B89650411D1528A61C3055416BB2A914B99650419AEC9D5A1A3055418F5F3075B6965041C7C7DD1F14305541EAFD8E92C396504130CF71410C30554135A9B0EAC2965041EE51094E09305541CB2DADFFBD9650418985F1CBFF2F554194B0440CBB9650419CE16395F82F5541B75DCB6CB896504123E792AEF22F554134354121B6965041F1BA3E52F42F55418DEBC0ABA996504164F08BD8E82F554133C1D157A99650414520AA45E32F554133C1D157A9965041E05392C3D92F554133C1D157A99650418A06483DD12F554197197A10A696504174641F0FC82F55411A42045CA8965041BABE2CD0C22F5541CE96E203A9965041C4ECE534BF2F5541379E7625A1965041D81A9F99BB2F55410600000044DC5E4D839650412B21CC7A16305541774F1C33839650415BE1E5F014305541A4A786338F965041EED4D6C2113055412B8158EB8F96504178614CEA13305541A2F4E2C38D965041152E758E1530554144DC5E4D839650412B21CC7A16305541070000005F8D9A269596504175AEA87A123055415F8D9A26959650410B553DBC10305541E38C0041999650416548619B0F30554186BF70C49D965041F1AE42600E305541D4987589A09650413B1557320F30554150724741A1965041AEAE756D103055415F8D9A269596504175AEA87A12305541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979214 - 406674
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000030000003F000000379E7625A1965041D81A9F99BB2F55418C636677A196504189C346E5C12F55411217008AA0965041BCB45FECC72F5541D45780389E9650418DEC6B41CD2F554159D98095999650415F56114CD62F5541C5C727B7949650414AECDC6CE12F5541DF8C1AA89896504163B1CF5DE52F554135DFF3349B9650411C568277EA2F55411C4C9AF99A965041BACE0E7BED2F55411CB3CD1E99965041A5CB0DC1F62F5541A1CD9A5696965041F2E84CDEFE2F5541D0958E0191965041CE878C58023055418346B62E859650412F41990A03305541A3E5847D7496504153D4F24503305541295C8FA25E9650410000009004305541A4703DEA5B965041E17A14DE093055417B14AEE7589650413D0AD77316305541F6285C1F56965041C3F5283C2030554180387CB34E96504152233C4423305541EC8D56FA479650418FE2BB952530554195D4494847965041A8A7AE862930554195A2B09243965041FF9254EE2D305541012A248F40965041B79E3A2D31305541F6C2F06942965041D1632D1E3530554158AE96D14696504170DCB921383055415CD7BB2D5296504189A1AC123C3055417AF76C3065965041E0251F55423055414CC845606C965041BC2B92F443305541987E515876965041989838B94330554137F7DD5B7996504198FF6BDE413055411D991E90739650410487DFDA3E305541F9375E0A7796504128E89F603B30554113648420799650414C4960E6373055417F522B4274965041AD69A0BD363055415BF16ABC779650417A115491323055415B8A37977996504185DFBADB2E305541F2C4BFD5779650418DE13F28263055410B448DD178965041F039E8E0223055414058C0C0909650415F9290991F3055419A82AF14919650412D663C3D2130554126D9F2C48F965041B08EC688233055419A82AF149196504164E3A4302430554145A9D45795965041193883D82430554122FC4DF79796504164E3A43024305541C8D15EA3979650413CE509392230554145A9D45795965041B9BC7FED1F3055415233DC18B89650411D1528A61C3055416BB2A914B99650419AEC9D5A1A3055418F5F3075B6965041C7C7DD1F14305541EAFD8E92C396504130CF71410C30554135A9B0EAC2965041EE51094E09305541CB2DADFFBD9650418985F1CBFF2F554194B0440CBB9650419CE16395F82F5541B75DCB6CB896504123E792AEF22F554134354121B6965041F1BA3E52F42F55418DEBC0ABA996504164F08BD8E82F554133C1D157A99650414520AA45E32F554133C1D157A9965041E05392C3D92F554133C1D157A99650418A06483DD12F554197197A10A696504174641F0FC82F55411A42045CA8965041BABE2CD0C22F5541CE96E203A9965041C4ECE534BF2F5541379E7625A1965041D81A9F99BB2F55410600000042DC5E4D839650412E21CC7A16305541784F1C33839650415CE1E5F014305541A8A786338F965041F0D4D6C2113055412C8158EB8F9650417B614CEA13305541A0F4E2C38D965041172E758E1530554142DC5E4D839650412E21CC7A16305541070000005B8D9A269596504173AEA87A123055415B8D9A26959650410E553DBC10305541DF8C0041999650416448619B0F3055418ABF70C49D965041EFAE42600E305541D0987589A09650413D1557320F30554154724741A1965041B1AE756D103055415B8D9A269596504173AEA87A12305541
+</a>
+
+<b>
+010600000001000000010300000003000000380000003ABE6AA77A9650417DC38AA0223055414058C0C0909650415F9290991F3055419A82AF14919650412D663C3D2130554126D9F2C48F965041B08EC688233055419A82AF149196504164E3A4302430554145A9D45795965041193883D82430554122FC4DF79796504164E3A43024305541C8D15EA3979650413CE509392230554145A9D45795965041B9BC7FED1F3055415233DC18B89650411D1528A61C3055416BB2A914B99650419AEC9D5A1A3055418F5F3075B6965041C7C7DD1F14305541EAFD8E92C396504130CF71410C30554135A9B0EAC2965041EE51094E09305541CB2DADFFBD9650418985F1CBFF2F554194B0440CBB9650419CE16395F82F5541B75DCB6CB896504123E792AEF22F554134354121B6965041F1BA3E52F42F55418DEBC0ABA996504164F08BD8E82F554133C1D157A99650414520AA45E32F554133C1D157A9965041E05392C3D92F554133C1D157A99650418A06483DD12F554197197A10A696504174641F0FC82F55411A42045CA8965041BABE2CD0C22F5541CE96E203A9965041C4ECE534BF2F5541379E7625A1965041D81A9F99BB2F55418C636677A196504189C346E5C12F55411217008AA0965041BCB45FECC72F5541D45780389E9650418DEC6B41CD2F554159D98095999650415F56114CD62F5541C5C727B7949650414AECDC6CE12F5541DF8C1AA89896504163B1CF5DE52F554135DFF3349B9650411C568277EA2F55411C4C9AF99A965041BACE0E7BED2F55411CB3CD1E99965041A5CB0DC1F62F5541A1CD9A5696965041F2E84CDEFE2F5541D0958E0191965041CE878C58023055418346B62E859650412F41990A03305541A3E5847D7496504153D4F24503305541295C8FA25E9650410000009004305541A4703DEA5B965041E17A14DE093055417B14AEE7589650413D0AD77316305541F6285C1F56965041C3F5283C2030554180387CB34E96504152233C4423305541EC8D56FA479650418FE2BB9525305541666666964F96504114AE4791233055413217FC3952965041ACC0B9DD223055410DC53A565696504189196D51223055419361C90E589650411502182E223055415E75320B5E965041AC5770E821305541E13BF6246B965041DCC4E1A3203055416240FE526C9650416435A786203055412CAEB9F277965041A75C1F921F305541BE5F941B7B965041C6F5565A1F305541D13E58257B965041C836BC50213055413ABE6AA77A9650417DC38AA0223055410600000044DC5E4D839650412B21CC7A16305541774F1C33839650415BE1E5F014305541A4A786338F965041EED4D6C2113055412B8158EB8F96504178614CEA13305541A2F4E2C38D965041152E758E1530554144DC5E4D839650412B21CC7A16305541070000005F8D9A269596504175AEA87A123055415F8D9A26959650410B553DBC10305541E38C0041999650416548619B0F30554186BF70C49D965041F1AE42600E305541D4987589A09650413B1557320F30554150724741A1965041AEAE756D103055415F8D9A269596504175AEA87A12305541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979375 - 1749311
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000009000000A9EDFF315BE0504101F5F104CA8354414BC4BF225AE050411F27ECA6E3835441529CEA9A64E0504128C1CE48E383544153A2210A66E05041EB5CC649CA83544108E6AE6067E0504106FE71E4B08354411F85EBE162E05041F6285CBFB1835441212F7B785FE0504175BC971BB28354419B45AD9F5CE050417F0D1343B2835441A9EDFF315BE0504101F5F104CA835441
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000003D0AD7B35DE050410AD7A330C38354415C8FC2555DE05041F6285C8FCA835441713D0A275DE050418FC2F538CE835441346AAE155CE05041CAFE6695E3835441569CEA9A64E0504123C1CE48E38354417498A4A066E0504162D7D22AE3835441B81E85FB67E050415C8FC245C983544185EB514869E050417B14AE87B083544107E6AE6067E050410AFE71E4B08354411F85EBE162E05041F6285CBFB1835441202F7B785FE0504175BC971BB2835441CDCCCC8C5EE0504148E17A34B2835441000000005EE0504148E17A34BD8354413D0AD7B35DE050410AD7A330C3835441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979375 - 3393860
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000009000000A9EDFF315BE0504101F5F104CA8354414BC4BF225AE050411F27ECA6E3835441529CEA9A64E0504128C1CE48E383544153A2210A66E05041EB5CC649CA83544108E6AE6067E0504106FE71E4B08354411F85EBE162E05041F6285CBFB1835441212F7B785FE0504175BC971BB28354419B45AD9F5CE050417F0D1343B2835441A9EDFF315BE0504101F5F104CA835441
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000003D0AD7B35DE050410AD7A330C38354415C8FC2555DE05041F6285C8FCA835441713D0A275DE050418FC2F538CE835441346AAE155CE05041CAFE6695E3835441569CEA9A64E0504123C1CE48E38354417498A4A066E0504162D7D22AE3835441B81E85FB67E050415C8FC245C983544185EB514869E050417B14AE87B083544107E6AE6067E050410AFE71E4B08354411F85EBE162E05041F6285CBFB1835441202F7B785FE0504175BC971BB2835441CDCCCC8C5EE0504148E17A34B2835441000000005EE0504148E17A34BD8354413D0AD7B35DE050410AD7A330C3835441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>970040 - 967065
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000009000000F5100F52265E5141F8E84DE3B398544128D5347E2A5E5141FC2A20E867985441A5123F35155E5141CC49A5F3629854416CBD245C105E51413DFFD4A7B39854417D3AAB8E145E5141CE608DC9B398544166DEB54E1C5E5141B7B39A84B4985441F36C53A5225E5141298BC113B698544113E1BF25265E51416D838E0BB7985441F5100F52265E5141F8E84DE3B3985441
+</a>
+
+<b>
+01060000000100000001030000000100000007000000713D0A37335E5141295C8F32BB98544152B81E95355E5141EC51B8CE929854418FC2F5E8375E51415C8FC2056B985441EC51B87E2A5E5141713D0AE767985441295C8F42285E5141295C8F829098544152B81E25265E5141713D0A17B7985441713D0A37335E5141295C8F32BB985441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>970040 - 2933475
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000009000000F5100F52265E5141F8E84DE3B398544128D5347E2A5E5141FC2A20E867985441A5123F35155E5141CC49A5F3629854416CBD245C105E51413DFFD4A7B39854417D3AAB8E145E5141CE608DC9B398544166DEB54E1C5E5141B7B39A84B4985441F36C53A5225E5141298BC113B698544113E1BF25265E51416D838E0BB7985441F5100F52265E5141F8E84DE3B3985441
+</a>
+
+<b>
+01060000000100000001030000000100000007000000713D0A37335E5141295C8F32BB98544152B81E95355E5141EC51B8CE929854418FC2F5E8375E51415C8FC2056B985441EC51B87E2A5E5141713D0AE767985441295C8F42285E5141295C8F829098544152B81E25265E5141713D0A17B7985441713D0A37335E5141295C8F32BB985441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>970040 - 3788619
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000009000000F5100F52265E5141F8E84DE3B398544128D5347E2A5E5141FC2A20E867985441A5123F35155E5141CC49A5F3629854416CBD245C105E51413DFFD4A7B39854417D3AAB8E145E5141CE608DC9B398544166DEB54E1C5E5141B7B39A84B4985441F36C53A5225E5141298BC113B698544113E1BF25265E51416D838E0BB7985441F5100F52265E5141F8E84DE3B3985441
+</a>
+
+<b>
+01060000000100000001030000000100000007000000713D0A37335E5141295C8F32BB98544152B81E95355E5141EC51B8CE929854418FC2F5E8375E51415C8FC2056B985441EC51B87E2A5E5141713D0AE767985441295C8F42285E5141295C8F829098544152B81E25265E5141713D0A17B7985441713D0A37335E5141295C8F32BB985441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>978656 - 393829
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000015000000295F3A72E5D95041C8A6C5D24C7D5441E747C28AEFD95041775AC6864C7D544152B81E850ADA5041B81E85FB4B7D5441F9BF218C0FDA5041292B5FDE4B7D5441F79D6CBD2DDA50417197512F4B7D5441713D0A4740DA50413D0AD7C34A7D5441BD7019EC5FDA50410B016E0C4A7D54418EB5F5CF66DA5041FF892BDA497D544109A2050666DA504119C7F3823E7D5441E862875663DA5041F65D408D3E7D5441E096D30641DA50411C4331543F7D5441EC1E6DA32EDA5041AB8D9FBE3F7D5441073E57B921DA50414E5E5C09407D54419B1B190212DA5041007B4F64407D544108FCEE02FFD95041E2C858D2407D5441195A8022F3D95041DB852A17417D5441A5A93ECFECD95041DF47D13B417D544186B0A52AE7D95041137F0841417D5441D87F0139E7D9504198A30010427D54417E441C72E5D950418B4C96CD4C7D5441295F3A72E5D95041C8A6C5D24C7D5441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000F6285C8F0CDA50413D0AD783407D5441713D0AA73FDA5041C3F5285C3F7D54410AD7A31066DA5041D7A3707D3E7D544185EB515865DA504148E17A94337D54415C8FC2153FDA50411F85EB71347D544185EB51880EDA5041AE47E18A357D544185EB51C8E8D950415C8FC265367D54413D0AD783E8D950417B14AE27387D5441E17A141EE7D95041CDCCCC5C417D5441F6285C8F0CDA50413D0AD783407D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>978656 - 1759464
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000015000000295F3A72E5D95041C8A6C5D24C7D5441E747C28AEFD95041775AC6864C7D544152B81E850ADA5041B81E85FB4B7D5441F9BF218C0FDA5041292B5FDE4B7D5441F79D6CBD2DDA50417197512F4B7D5441713D0A4740DA50413D0AD7C34A7D5441BD7019EC5FDA50410B016E0C4A7D54418EB5F5CF66DA5041FF892BDA497D544109A2050666DA504119C7F3823E7D5441E862875663DA5041F65D408D3E7D5441E096D30641DA50411C4331543F7D5441EC1E6DA32EDA5041AB8D9FBE3F7D5441073E57B921DA50414E5E5C09407D54419B1B190212DA5041007B4F64407D544108FCEE02FFD95041E2C858D2407D5441195A8022F3D95041DB852A17417D5441A5A93ECFECD95041DF47D13B417D544186B0A52AE7D95041137F0841417D5441D87F0139E7D9504198A30010427D54417E441C72E5D950418B4C96CD4C7D5441295F3A72E5D95041C8A6C5D24C7D5441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000F6285C8F0CDA50413D0AD783407D5441713D0AA73FDA5041C3F5285C3F7D54410AD7A31066DA5041D7A3707D3E7D544185EB515865DA504148E17A94337D54415C8FC2153FDA50411F85EB71347D544185EB51880EDA5041AE47E18A357D544185EB51C8E8D950415C8FC265367D54413D0AD783E8D950417B14AE27387D5441E17A141EE7D95041CDCCCC5C417D5441F6285C8F0CDA50413D0AD783407D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>978656 - 4398522
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000015000000295F3A72E5D95041C8A6C5D24C7D5441E747C28AEFD95041775AC6864C7D544152B81E850ADA5041B81E85FB4B7D5441F9BF218C0FDA5041292B5FDE4B7D5441F79D6CBD2DDA50417197512F4B7D5441713D0A4740DA50413D0AD7C34A7D5441BD7019EC5FDA50410B016E0C4A7D54418EB5F5CF66DA5041FF892BDA497D544109A2050666DA504119C7F3823E7D5441E862875663DA5041F65D408D3E7D5441E096D30641DA50411C4331543F7D5441EC1E6DA32EDA5041AB8D9FBE3F7D5441073E57B921DA50414E5E5C09407D54419B1B190212DA5041007B4F64407D544108FCEE02FFD95041E2C858D2407D5441195A8022F3D95041DB852A17417D5441A5A93ECFECD95041DF47D13B417D544186B0A52AE7D95041137F0841417D5441D87F0139E7D9504198A30010427D54417E441C72E5D950418B4C96CD4C7D5441295F3A72E5D95041C8A6C5D24C7D5441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000F6285C8F0CDA50413D0AD783407D5441713D0AA73FDA5041C3F5285C3F7D54410AD7A31066DA5041D7A3707D3E7D544185EB515865DA504148E17A94337D54415C8FC2153FDA50411F85EB71347D544185EB51880EDA5041AE47E18A357D544185EB51C8E8D950415C8FC265367D54413D0AD783E8D950417B14AE27387D5441E17A141EE7D95041CDCCCC5C417D5441F6285C8F0CDA50413D0AD783407D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>16579 - 3185678
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000200000008FC2F558ADF85041A4703D4AF46F5441A4703D9AABF85041AE47E1AAF56F544148E17A64A7F85041E17A14BEF76F54415C8FC245A6F85041B81E854BF86F54419A999949A5F85041F6285C3FF96F54413D0AD793AAF850411F85EB21FB6F544114AE47A1A8F85041D7A3703DFF6F544148E17A84B6F8504100000030047054415C8FC2A5C4F850418FC2F538097054413D0AD793C5F85041F6285C3F097054413D0AD733C5F850410AD7A3E0057054418FC2F508C5F850411F85EB41037054413D0AD7F3C4F8504133333383007054413D0AD7B3C4F8504148E17A44FD6F54419A999929C4F85041713D0A67F76F544148E17A14C3F85041AE47E1EAEF6F5441F6285C1FC3F850411F85EB21EB6F54419A9999A9C3F8504148E17AE4E56F544148E17A64C5F850419A999999DD6F5441CDCCCCDCBDF85041295C8F72DB6F54419A9999D9B7F85041A4703DBAD96F544148E17A94B1F85041F6285CEFD76F544100000050B1F85041E17A149ED96F54418FC2F5F8B0F85041EC51B8DEDC6F544166666606B4F8504133333353DD6F544114AE47B1B3F85041CDCCCCDCDF6F5441B81E85ABB0F85041666666C6DF6F5441E17A148EB0F8504114AE4741E96F544100000040B0F85041AE47E1CAEC6F5441713D0A97AFF8504166666646F06F54413D0AD7C3AEF8504148E17A74F26F54418FC2F558ADF85041A4703D4AF46F5441
+</a>
+
+<b>
+0106000000010000000103000000010000002700000048E17A64C5F850419A999999DD6F544148E17A94B1F85041F6285CEFD76F54418FC2F5F8B0F85041EC51B8DEDC6F544166666606B4F8504133333353DD6F544114AE47B1B3F85041CDCCCCDCDF6F5441B81E85ABB0F85041666666C6DF6F544175781790B0F85041DC8B729BE86F54415D277887B0F85041D9E3F38DE96F5441CE6DFF3DB0F8504177DE71D5EC6F5441AA1B64B8AFF85041B7356C96EF6F544182939397AFF8504154BE9143F06F5441479EC552AFF85041870CCBFAF06F5441E7F245E9AEF85041F5C49011F26F544123137BC3AEF8504198EEF174F26F5441FD081BEDADF8504117EF758AF36F5441D514145AADF85041A3C9CA48F46F5441EDB97835ADF8504166264166F46F54419A8C2198ABF85041D160EBABF56F5441F3D0A12AAAF85041C27D1060F66F54414941A4F3A7F85041B2F38477F76F544176169873A6F85041CAEDE834F86F54419A999949A5F85041F6285C3FF96F54413D0AD793AAF850411F85EB21FB6F544114AE47A1A8F85041D7A3703DFF6F54415C8FC2A5C4F850418FC2F538097054413D0AD793C5F85041F6285C3F097054414C7FF867C5F8504116041FB50770544183C9F434C5F8504124C1ABEA0570544145AB5A09C5F8504100EB154803705441B346ECF4C4F850419A9A3BA700705441AAC8C7BDC4F85041BDA781C5FD6F5441BD1186D3C3F85041FD77DC13F56F544198550E15C3F85041C6A707AAEF6F544149664F19C3F85041EBB90FCBED6F54418FCB4222C3F850410F189920EB6F544105B6896FC3F8504198A7E517E86F5441608BF4A8C3F85041C987BCEAE56F5441396ABEC4C3F8504187C25E62E56F544148E17A64C5F850419A999999DD6F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>16579 - 3404185
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000200000008FC2F558ADF85041A4703D4AF46F5441A4703D9AABF85041AE47E1AAF56F544148E17A64A7F85041E17A14BEF76F54415C8FC245A6F85041B81E854BF86F54419A999949A5F85041F6285C3FF96F54413D0AD793AAF850411F85EB21FB6F544114AE47A1A8F85041D7A3703DFF6F544148E17A84B6F8504100000030047054415C8FC2A5C4F850418FC2F538097054413D0AD793C5F85041F6285C3F097054413D0AD733C5F850410AD7A3E0057054418FC2F508C5F850411F85EB41037054413D0AD7F3C4F8504133333383007054413D0AD7B3C4F8504148E17A44FD6F54419A999929C4F85041713D0A67F76F544148E17A14C3F85041AE47E1EAEF6F5441F6285C1FC3F850411F85EB21EB6F54419A9999A9C3F8504148E17AE4E56F544148E17A64C5F850419A999999DD6F5441CDCCCCDCBDF85041295C8F72DB6F54419A9999D9B7F85041A4703DBAD96F544148E17A94B1F85041F6285CEFD76F544100000050B1F85041E17A149ED96F54418FC2F5F8B0F85041EC51B8DEDC6F544166666606B4F8504133333353DD6F544114AE47B1B3F85041CDCCCCDCDF6F5441B81E85ABB0F85041666666C6DF6F5441E17A148EB0F8504114AE4741E96F544100000040B0F85041AE47E1CAEC6F5441713D0A97AFF8504166666646F06F54413D0AD7C3AEF8504148E17A74F26F54418FC2F558ADF85041A4703D4AF46F5441
+</a>
+
+<b>
+0106000000010000000103000000010000002700000048E17A64C5F850419A999999DD6F544148E17A94B1F85041F6285CEFD76F54418FC2F5F8B0F85041EC51B8DEDC6F544166666606B4F8504133333353DD6F544114AE47B1B3F85041CDCCCCDCDF6F5441B81E85ABB0F85041666666C6DF6F544175781790B0F85041DC8B729BE86F54415D277887B0F85041D9E3F38DE96F5441CE6DFF3DB0F8504177DE71D5EC6F5441AA1B64B8AFF85041B7356C96EF6F544182939397AFF8504154BE9143F06F5441479EC552AFF85041870CCBFAF06F5441E7F245E9AEF85041F5C49011F26F544123137BC3AEF8504198EEF174F26F5441FD081BEDADF8504117EF758AF36F5441D514145AADF85041A3C9CA48F46F5441EDB97835ADF8504166264166F46F54419A8C2198ABF85041D160EBABF56F5441F3D0A12AAAF85041C27D1060F66F54414941A4F3A7F85041B2F38477F76F544176169873A6F85041CAEDE834F86F54419A999949A5F85041F6285C3FF96F54413D0AD793AAF850411F85EB21FB6F544114AE47A1A8F85041D7A3703DFF6F54415C8FC2A5C4F850418FC2F538097054413D0AD793C5F85041F6285C3F097054414C7FF867C5F8504116041FB50770544183C9F434C5F8504124C1ABEA0570544145AB5A09C5F8504100EB154803705441B346ECF4C4F850419A9A3BA700705441AAC8C7BDC4F85041BDA781C5FD6F5441BD1186D3C3F85041FD77DC13F56F544198550E15C3F85041C6A707AAEF6F544149664F19C3F85041EBB90FCBED6F54418FCB4222C3F850410F189920EB6F544105B6896FC3F8504198A7E517E86F5441608BF4A8C3F85041C987BCEAE56F5441396ABEC4C3F8504187C25E62E56F544148E17A64C5F850419A999999DD6F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>263055 - 1096924
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000250000007B14AE571C075141000000E086455441000000001E0751419A9999598F455441EC51B82E1F07514152B81EC594455441E17A14FE200751419A9999F99C4554413D0AD7632207514100000050A3455441B81E850B23075141666666F6AA455441AE47E14A23075141295C8FD2AD4554419A9999592607514148E17A54AD455441000000402707514166666636AD4554417D5A6C002A0751413B9841B3AC455441D7FFC7C72E075141ACFC5CE7AB455441809326FE300751412E9C04FEAB4554415CD829DC35075141ACFC5CE7AB4554410474A1213707514172114230AC455441321975B33807514172114230AC455441E17A144E3C075141E17A141EAC45544114AE47A13E07514100000040AC455441FA86DB5B43075141B218ED98AC4554418CF2314148075141B08780C6AC455441F6E1681A4B07514139612382AC4554413DA23A704C07514139612382AC455441000000304C07514100000010AC45544152B81E7548075141A4703DDA9F45544114AE47E13F0751418FC2F56885455441EC51B88E3C075141666666567A455441E17A144E3B0751411F85EB417645544185EB51C8310751419A9999A976455441000000D0290751415C8FC22575455441EC51B8EE28075141CDCCCCFC744554418FC2F58820075141A4703DDA724554417B14AE77180751418FC2F5B874455441A4703D2A19075141EC51B8BE774554417B14AEF7190751415C8FC2357B45544152B81E751A07514148E17A547D45544114AE47911A075141D7A370CD7D4554410AD7A3301B075141D7A370FD804554417B14AE571C075141000000E086455441
+</a>
+
+<b>
+010600000001000000010300000001000000290000006F679D0B230751411C1CCEF7AA45544111A2610D230751411DC6E80BAB45544106513D2E23075141DF729A87AC4554418F62746023075141FCAA4A28AD45544182EE4D2024075141333B30ACAD4554419A9999592607514148E17A54AD455441000000402707514166666636AD4554417C5A6C002A0751413B9841B3AC455441AC6F60712D0751419E91AB81AC455441568B9F5E3307514175584449AC4554417B14AEC7360751417B14AE37AC455441E17A144E3C075141E17A141EAC45544114AE47A13E07514100000040AC45544193422E9D410751412B451D78AC45544164D003CF43075141591B1D9DAC4554419C9726D147075141C9B76E74AC455441763BB3104A0751410CBC7A38AC4554415D5366904B0751418E8A7F20AC45544169F669294C0751419810B910AC4554413E1ED52F4C075141C4A0730FAC45544152B81E7548075141A4703DDA9F45544114AE47E13F0751418FC2F56885455441EC51B88E3C075141666666567A455441E17A144E3B0751411F85EB417645544185EB51C8310751419A9999A976455441000000D0290751415C8FC22575455441EC51B8EE28075141CDCCCCFC744554418FC2F58820075141A4703DDA724554417B14AE77180751418FC2F5B874455441A4703D2A19075141EC51B8BE774554417B14AEF7190751415C8FC2357B45544152B81E751A07514148E17A547D45544114AE47911A075141D7A370CD7D4554410AD7A3301B075141D7A370FD804554417B14AE571C075141000000E086455441000000001E0751419A9999598F455441EC51B82E1F07514152B81EC594455441E17A14FE200751419A9999F99C4554413D0AD7632207514100000050A3455441B81E850B23075141666666F6AA4554416F679D0B230751411C1CCEF7AA455441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>263055 - 3555793
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000250000007B14AE571C075141000000E086455441000000001E0751419A9999598F455441EC51B82E1F07514152B81EC594455441E17A14FE200751419A9999F99C4554413D0AD7632207514100000050A3455441B81E850B23075141666666F6AA455441AE47E14A23075141295C8FD2AD4554419A9999592607514148E17A54AD455441000000402707514166666636AD4554417D5A6C002A0751413B9841B3AC455441D7FFC7C72E075141ACFC5CE7AB455441809326FE300751412E9C04FEAB4554415CD829DC35075141ACFC5CE7AB4554410474A1213707514172114230AC455441321975B33807514172114230AC455441E17A144E3C075141E17A141EAC45544114AE47A13E07514100000040AC455441FA86DB5B43075141B218ED98AC4554418CF2314148075141B08780C6AC455441F6E1681A4B07514139612382AC4554413DA23A704C07514139612382AC455441000000304C07514100000010AC45544152B81E7548075141A4703DDA9F45544114AE47E13F0751418FC2F56885455441EC51B88E3C075141666666567A455441E17A144E3B0751411F85EB417645544185EB51C8310751419A9999A976455441000000D0290751415C8FC22575455441EC51B8EE28075141CDCCCCFC744554418FC2F58820075141A4703DDA724554417B14AE77180751418FC2F5B874455441A4703D2A19075141EC51B8BE774554417B14AEF7190751415C8FC2357B45544152B81E751A07514148E17A547D45544114AE47911A075141D7A370CD7D4554410AD7A3301B075141D7A370FD804554417B14AE571C075141000000E086455441
+</a>
+
+<b>
+010600000001000000010300000001000000290000006F679D0B230751411C1CCEF7AA45544111A2610D230751411DC6E80BAB45544106513D2E23075141DF729A87AC4554418F62746023075141FCAA4A28AD45544182EE4D2024075141333B30ACAD4554419A9999592607514148E17A54AD455441000000402707514166666636AD4554417C5A6C002A0751413B9841B3AC455441AC6F60712D0751419E91AB81AC455441568B9F5E3307514175584449AC4554417B14AEC7360751417B14AE37AC455441E17A144E3C075141E17A141EAC45544114AE47A13E07514100000040AC45544193422E9D410751412B451D78AC45544164D003CF43075141591B1D9DAC4554419C9726D147075141C9B76E74AC455441763BB3104A0751410CBC7A38AC4554415D5366904B0751418E8A7F20AC45544169F669294C0751419810B910AC4554413E1ED52F4C075141C4A0730FAC45544152B81E7548075141A4703DDA9F45544114AE47E13F0751418FC2F56885455441EC51B88E3C075141666666567A455441E17A144E3B0751411F85EB417645544185EB51C8310751419A9999A976455441000000D0290751415C8FC22575455441EC51B8EE28075141CDCCCCFC744554418FC2F58820075141A4703DDA724554417B14AE77180751418FC2F5B874455441A4703D2A19075141EC51B8BE774554417B14AEF7190751415C8FC2357B45544152B81E751A07514148E17A547D45544114AE47911A075141D7A370CD7D4554410AD7A3301B075141D7A370FD804554417B14AE571C075141000000E086455441000000001E0751419A9999598F455441EC51B82E1F07514152B81EC594455441E17A14FE200751419A9999F99C4554413D0AD7632207514100000050A3455441B81E850B23075141666666F6AA4554416F679D0B230751411C1CCEF7AA455441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>132442 - 1215066
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000001F000000FCE9BFA82E8551414541D77C1D8554419E9D8EE52F855141C867DCD6208554419CE65A573185514140B35E732585544116CA4B10358551412ACBE3C832855441261ED00535855141B73D00BA338554416666661640855141CDCCCCEC3085544152B81EB549855141000000602F85544185EB51D84F855141E17A145E2F855441A4703D9A5B855141333333033085544185EB51885D855141666666D61C855441666666B65D855141F6285C0F1B8554413D0AD7435E855141713D0A6712855441A4703D9A5F8551413D0AD7F30A855441A4703D7A6585514185EB5148F2845441B81E850B698551418FC2F508E98454417B14AE976B8551419A999929E5845441666666365D8551419A9999C9D48454413D0AD703508551411F85EBC1C5845441295C8F524A855141A4703D5AC8845441AE47E1FA3D855141295C8FA2CC845441AE47E10A36855141CDCCCCDCCE84544114AE471138855141F6285CDFCF845441E17A14AE398551415C8FC2D5D084544185EB51583B855141D7A3701DD2845441000000503D85514114AE47C1D38454410000006042855141AE47E1DAD88454417B14AE3745855141A4703DEADB8454418FC2F51848855141AE47E12ADF845441E17A145E4F8551415C8FC2C5EA845441E17A149E468551417B14AE271D855441FCE9BFA82E8551414541D77C1D855441
+</a>
+
+<b>
+01060000000100000001030000000100000079000000AE47E10A36855141CDCCCCDCCE845441E17A149E3485514133333343CF8454417B14AE0737855141666666D6D78454410AD7A33033855141C3F5283CD984544114AE47E13085514100000050D0845441AE47E1EA2A855141CDCCCCFCD184544114AE47D1238551415C8FC225D4845441D7A3702D258551417B14AEF7D88454410AD7A3F02485514148E17A74DA8454413333331324855141295C8FD2DB84544152B81E4523855141333333A3DC845441666666F621855141F6285CEFDD84544185EB51382185514166666646DF845441713D0A472085514152B81E15E184544148E17AF41F85514152B81E55E38454419A99993920855141EC51B8FEE48454419A9999C920855141EC51B8AEE6845441E17A149E21855141EC51B82EE8845441000000B0228551419A999929EA845441295C8FD21F8551411F85EB41EE84544185EB5198208551419A999929EF8454417B14AEE721855141E17A140EF084544148E17A6423855141F6285C2FF1845441295C8FC224855141EC51B87EF28454417B14AE372685514133333303F4845441AE47E17A28855141EC51B8DEF6845441713D0AA72A85514152B81E15FA845441CDCCCC4C2D8551419A999979FD84544152B81E65308551419A9999C9018554415C8FC23532855141A4703DDA04855441AE47E1AA33855141D7A370BD078554417B14AE87348551415C8FC2F508855441B81E857B35855141EC51B81E0A8554419A9999F93485514114AE47210B855441713D0A3735855141F6285C2F0D855441F6285C0F378551417B14AE7711855441D7A370ED3585514100000010128554417B14AE87348551419A99995911855441EC51B88E32855141E17A14DE0F85544114AE47A1318551417B14AE170E855441713D0A17318551410AD7A3C00B855441AE47E1BA30855141F6285C6F098554418FC2F5E830855141B81E852B07855441F6285CCF31855141E17A14AE05855441F6285C2F30855141666666A602855441A4703D1A2E85514166666696FF845441666666862C85514100000090FD845441C3F5283C2A855141EC51B88EFA845441C3F5285C2885514152B81E35F884544152B81E75268551411F85EBD1F7845441295C8F82238551413D0AD793F9845441C3F528CC22855141666666B6F88454419A9999F92285514152B81E95F7845441295C8FE22285514185EB5118F684544114AE476122855141F6285CEFF484544114AE472121855141713D0A57F484544185EB51581F855141A4703DBAF4845441713D0A971D855141F6285C0FF3845441CDCCCC4C1B855141AE47E12AF2845441295C8FF2188551418FC2F518F1845441333333A316855141A4703D1AF0845441C3F528DC1585514148E17A44EF845441CDCCCC1C168551415C8FC255EE845441A4703D8A14855141295C8FA2ED84544185EB51E814855141295C8F12EB8454418FC2F5081485514166666666E984544152B81E15138551411F85EBA1E98454418FC2F548128551417B14AE57E98454413D0AD7B3118551415C8FC295E88454413D0AD7B311855141713D0AA7E7845441B81E852B1285514152B81EE5E68454415C8FC29511855141EC51B85EE4845441295C8F32118551410AD7A3D0E4845441000000C010855141295C8F02E5845441B81E85DB0F85514148E17AE4E4845441C3F5283C0F855141F6285C4FE4845441F6285C0F0F85514114AE47A1E3845441295C8F320F85514114AE4711E38454419A9999A90F85514152B81E95E28454417B14AE5710855141F6285C4FE28454410000001011855141C3F5287CE2845441C3F5288C1185514148E17AE4E28454411F85EBD111855141E17A143EE38454413333330312855141713D0A07E18454413D0AD7931285514152B81EB5DF84544100000010138551410AD7A380DE845441C3F528FC128551419A999949DE8454419A999989128551419A999949DE845441AE47E19A118551411F85EB01DF845441D7A370BD0F8551413D0AD753E0845441B81E851B0E8551417B14AE47E1845441000000E00C855141A4703DEAE1845441D7A370FD0C85514100000020E28454413333335317855141A4703D7AF584544152B81E951B855141295C8F32FA8454413D0AD70327855141AE47E17A048554419A99998928855141000000D006855441E17A148E29855141E17A143E0B8554410AD7A360288551418FC2F56811855441F6285C4F29855141E17A144E158554413D0AD7D329855141F6285C5F1685544148E17A542C85514152B81E851D855441F6285C3F2E855141E17A149E22855441EC51B82E3385514114AE473134855441261ED00535855141B33D00BA338554410FB7A025358551417FBE4CD932855441A1E65A57318551413FB35E73258554412EFED7133085514144C91C3921855441F8D7AEB32E8551415C64B07C1D85544192544CB62E855141A418A77C1D855441F75DB4B42E855141D2C94A781D855441E17A149E468551417B14AE271D855441E17A145E4F8551415C8FC2C5EA8454418FC2F51848855141AE47E12ADF8454417B14AE3745855141A4703DEADB8454410000006042855141AE47E1DAD8845441000000503D85514114AE47C1D384544185EB51583B855141D7A3701DD2845441E17A14AE398551415C8FC2D5D084544114AE471138855141F6285CDFCF845441AE47E10A36855141CDCCCCDCCE845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>132442 - 3978034
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000001F000000FCE9BFA82E8551414541D77C1D8554419E9D8EE52F855141C867DCD6208554419CE65A573185514140B35E732585544116CA4B10358551412ACBE3C832855441261ED00535855141B73D00BA338554416666661640855141CDCCCCEC3085544152B81EB549855141000000602F85544185EB51D84F855141E17A145E2F855441A4703D9A5B855141333333033085544185EB51885D855141666666D61C855441666666B65D855141F6285C0F1B8554413D0AD7435E855141713D0A6712855441A4703D9A5F8551413D0AD7F30A855441A4703D7A6585514185EB5148F2845441B81E850B698551418FC2F508E98454417B14AE976B8551419A999929E5845441666666365D8551419A9999C9D48454413D0AD703508551411F85EBC1C5845441295C8F524A855141A4703D5AC8845441AE47E1FA3D855141295C8FA2CC845441AE47E10A36855141CDCCCCDCCE84544114AE471138855141F6285CDFCF845441E17A14AE398551415C8FC2D5D084544185EB51583B855141D7A3701DD2845441000000503D85514114AE47C1D38454410000006042855141AE47E1DAD88454417B14AE3745855141A4703DEADB8454418FC2F51848855141AE47E12ADF845441E17A145E4F8551415C8FC2C5EA845441E17A149E468551417B14AE271D855441FCE9BFA82E8551414541D77C1D855441
+</a>
+
+<b>
+010600000001000000010300000001000000770000003D0AD7D329855141F6285C5F1685544148E17A542C85514152B81E851D855441F6285C3F2E855141E17A149E22855441EC51B82E3385514114AE473134855441261ED00535855141B33D00BA338554410FB7A025358551417FBE4CD932855441A1E65A57318551413FB35E73258554412EFED7133085514144C91C3921855441F65DB4B42E855141D3C94A781D855441E17A149E468551417B14AE271D855441E17A145E4F8551415C8FC2C5EA8454418FC2F51848855141AE47E12ADF8454417B14AE3745855141A4703DEADB8454410000006042855141AE47E1DAD8845441000000503D85514114AE47C1D384544185EB51583B855141D7A3701DD2845441E17A14AE398551415C8FC2D5D084544114AE471138855141F6285CDFCF845441AE47E10A36855141CDCCCCDCCE845441E17A149E3485514133333343CF8454417B14AE0737855141666666D6D78454410AD7A33033855141C3F5283CD984544114AE47E13085514100000050D0845441AE47E1EA2A855141CDCCCCFCD184544114AE47D1238551415C8FC225D4845441D7A3702D258551417B14AEF7D88454410AD7A3F02485514148E17A74DA8454413333331324855141295C8FD2DB84544152B81E4523855141333333A3DC845441666666F621855141F6285CEFDD84544185EB51382185514166666646DF845441713D0A472085514152B81E15E184544148E17AF41F85514152B81E55E38454419A99993920855141EC51B8FEE48454419A9999C920855141EC51B8AEE6845441E17A149E21855141EC51B82EE8845441000000B0228551419A999929EA845441295C8FD21F8551411F85EB41EE84544185EB5198208551419A999929EF8454417B14AEE721855141E17A140EF084544148E17A6423855141F6285C2FF1845441295C8FC224855141EC51B87EF28454417B14AE372685514133333303F4845441AE47E17A28855141EC51B8DEF6845441713D0AA72A85514152B81E15FA845441CDCCCC4C2D8551419A999979FD84544152B81E65308551419A9999C9018554415C8FC23532855141A4703DDA04855441AE47E1AA33855141D7A370BD078554417B14AE87348551415C8FC2F508855441B81E857B35855141EC51B81E0A8554419A9999F93485514114AE47210B855441713D0A3735855141F6285C2F0D855441F6285C0F378551417B14AE7711855441D7A370ED3585514100000010128554417B14AE87348551419A99995911855441EC51B88E32855141E17A14DE0F85544114AE47A1318551417B14AE170E855441713D0A17318551410AD7A3C00B855441AE47E1BA30855141F6285C6F098554418FC2F5E830855141B81E852B07855441F6285CCF31855141E17A14AE05855441F6285C2F30855141666666A602855441A4703D1A2E85514166666696FF845441666666862C85514100000090FD845441C3F5283C2A855141EC51B88EFA845441C3F5285C2885514152B81E35F884544152B81E75268551411F85EBD1F7845441295C8F82238551413D0AD793F9845441C3F528CC22855141666666B6F88454419A9999F92285514152B81E95F7845441295C8FE22285514185EB5118F684544114AE476122855141F6285CEFF484544114AE472121855141713D0A57F484544185EB51581F855141A4703DBAF4845441713D0A971D855141F6285C0FF3845441CDCCCC4C1B855141AE47E12AF2845441295C8FF2188551418FC2F518F1845441333333A316855141A4703D1AF0845441C3F528DC1585514148E17A44EF845441CDCCCC1C168551415C8FC255EE845441A4703D8A14855141295C8FA2ED84544185EB51E814855141295C8F12EB8454418FC2F5081485514166666666E984544152B81E15138551411F85EBA1E98454418FC2F548128551417B14AE57E98454413D0AD7B3118551415C8FC295E88454413D0AD7B311855141713D0AA7E7845441B81E852B1285514152B81EE5E68454415C8FC29511855141EC51B85EE4845441295C8F32118551410AD7A3D0E4845441000000C010855141295C8F02E5845441B81E85DB0F85514148E17AE4E4845441C3F5283C0F855141F6285C4FE4845441F6285C0F0F85514114AE47A1E3845441295C8F320F85514114AE4711E38454419A9999A90F85514152B81E95E28454417B14AE5710855141F6285C4FE28454410000001011855141C3F5287CE2845441C3F5288C1185514148E17AE4E28454411F85EBD111855141E17A143EE38454413333330312855141713D0A07E18454413D0AD7931285514152B81EB5DF84544100000010138551410AD7A380DE845441C3F528FC128551419A999949DE8454419A999989128551419A999949DE845441AE47E19A118551411F85EB01DF845441D7A370BD0F8551413D0AD753E0845441B81E851B0E8551417B14AE47E1845441000000E00C855141A4703DEAE1845441D7A370FD0C85514100000020E28454413333335317855141A4703D7AF584544152B81E951B855141295C8F32FA8454413D0AD70327855141AE47E17A048554419A99998928855141000000D006855441E17A148E29855141E17A143E0B8554410AD7A360288551418FC2F56811855441F6285C4F29855141E17A144E158554413D0AD7D329855141F6285C5F16855441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>132442 - 399756
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000001F000000FCE9BFA82E8551414541D77C1D8554419E9D8EE52F855141C867DCD6208554419CE65A573185514140B35E732585544116CA4B10358551412ACBE3C832855441261ED00535855141B73D00BA338554416666661640855141CDCCCCEC3085544152B81EB549855141000000602F85544185EB51D84F855141E17A145E2F855441A4703D9A5B855141333333033085544185EB51885D855141666666D61C855441666666B65D855141F6285C0F1B8554413D0AD7435E855141713D0A6712855441A4703D9A5F8551413D0AD7F30A855441A4703D7A6585514185EB5148F2845441B81E850B698551418FC2F508E98454417B14AE976B8551419A999929E5845441666666365D8551419A9999C9D48454413D0AD703508551411F85EBC1C5845441295C8F524A855141A4703D5AC8845441AE47E1FA3D855141295C8FA2CC845441AE47E10A36855141CDCCCCDCCE84544114AE471138855141F6285CDFCF845441E17A14AE398551415C8FC2D5D084544185EB51583B855141D7A3701DD2845441000000503D85514114AE47C1D38454410000006042855141AE47E1DAD88454417B14AE3745855141A4703DEADB8454418FC2F51848855141AE47E12ADF845441E17A145E4F8551415C8FC2C5EA845441E17A149E468551417B14AE271D855441FCE9BFA82E8551414541D77C1D855441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000A04077A6298551414B17C301168554413D0AD7D329855141F6285C5F1685544148E17A542C85514152B81E851D855441F6285C3F2E855141E17A149E22855441EC51B82E3385514114AE473134855441261ED00535855141B33D00BA338554410FB7A025358551417FBE4CD932855441A1E65A57318551413FB35E732585544143F8D8C1308551411B891896238554412EFED7133085514144C91C3921855441F8D7AEB32E8551415C64B07C1D85544192544CB62E855141A418A77C1D855441F75DB4B42E855141D2C94A781D85544182F1C22A2D85514105D5D0C51885544125FB0E3F2C855141E9E2654516855441A04077A6298551414B17C30116855441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>254956 - 965992
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000C70000001F85EBF15DA0504100000070643254419A9999B960A050415C8FC275633254417B14AE8762A050418FC2F528633254411F85EBE163A050415C8FC27563325441B81E856B64A05041C3F5280C64325441B81E85DB64A050419A9999A9643254418FC2F58865A0504114AE47B16632544114AE47C165A050419A9999196932544152B81E1566A05041666666266D325441C3F528CC67A05041D7A3708D6D325441CDCCCC3C68A05041C3F5282C6E3254417B14AEF768A05041000000506E3254413D0AD7A368A05041A4703D9A6F3254413D0AD76368A050410AD7A33072325441C3F5280C67A05041F6285C1F72325441D7A370AD66A050417B14AE1775325441713D0A3766A05041B81E85BB77325441EC51B8BE67A050410AD7A3007732544152B81E0569A05041A4703D7A7632544114AE47616AA05041CDCCCCBC75325441AE47E16A6BA050418FC2F5F8743254410AD7A3A06CA050415C8FC2F5733254419A9999C96DA050419A9999B972325441D7A3708D6EA05041000000707132544114AE47E170A050411F85EB016E32544148E17AF473A05041333333636932544185EB517876A050419A9999F969325441C3F5282C77A05041CDCCCCAC6B3254411F85EB5178A05041CDCCCC0C6B325441E17A14AE7CA050418FC2F578693254415C8FC22586A05041AE47E18A66325441713D0A8797A050411F85EB6161325441F6285C9F9FA05041CDCCCC6C5E32544114AE47B1A9A05041295C8F525C32544100000040BBA050411F85EB4158325441A4703DEABDA050413D0AD7A357325441A4703DCACAA0504185EB5148533254413D0AD7E3D3A05041C3F5285C50325441D7A3704DD3A050416666664648325441D7A370EDD2A05041AE47E19A403254415C8FC225D3A05041C3F5285C3C325441D7A3703DD3A0504185EB51983A32544185EB5108D2A050418FC2F5A83932544152B81EF5CFA05041CDCCCC8C3832544100000030CEA05041B81E851B38325441B81E85ABCCA05041A4703D9A373254417B14AE37CBA050418FC2F538373254413D0AD7E3C9A050418FC2F5283732544100000070C8A050417B14AED7363254413D0AD723C4A05041E17A141E3932544114AE4711C3A05041EC51B85E39325441EC51B81EC2A05041EC51B83E39325441AE47E1EAC0A05041E17A14FE383254418FC2F518C0A05041C3F5286C3832544166666636BFA05041B81E852B383254411F85EBA1BDA05041B81E853B38325441C3F5287CBBA05041CDCCCCAC383254413D0AD773B8A05041D7A370DD38325441E17A147EB6A05041D7A370BD38325441A4703D1AB5A05041C3F5285C383254417B14AE07B4A05041B81E850B3832544133333383B2A05041A4703D9A3732544148E17A74B1A050411F85EBA13632544114AE4771ADA050413D0AD77336325441A4703DBAAAA0504152B81E7537325441D7A3705DA8A05041CDCCCCDC37325441713D0A57A6A050418FC2F5183832544166666696A4A05041E17A145E383254410AD7A300A3A050411F85EB9138325441AE47E16AA1A05041EC51B8CE38325441EC51B8EE9FA05041C3F528AC38325441A4703DDA9EA05041F6285C6F3832544185EB51E89DA05041666666F637325441A4703DBA9CA0504114AE474137325441666666269CA050413D0AD79336325441295C8F629AA050419A999949363254417B14AE3799A0504152B81E553632544152B81E1598A05041D7A3701D363254416666666696A050410AD7A3E035325441AE47E1EA94A050410000008035325441AE47E12A94A0504185EB51D83532544152B81ED593A0504185EB51D8353254415C8FC26593A0504114AE47E1353254410AD7A3A092A050419A9999E9353254411F85EB4192A050419A9999E9353254416666669691A050419A9999E935325441A4703DDA90A0504114AE47E135325441EC51B82E90A0504133333303363254417B14AEC78FA05041713D0A3736325441AE47E10A8FA05041B81E857B36325441C3F5282C8EA0504185EB51C836325441713D0A678DA05041E17A141E373254418FC2F5988CA050411F85EB5137325441A4703DBA8BA05041D7A3708D373254413D0AD7E38AA05041000000B03732544185EB51B889A050413D0AD7F337325441A4703D3A89A05041E17A14BE37325441C3F5289C88A05041713D0AC7373254419A99991988A0504148E17AB43732544185EB51D887A05041C3F528EC373254410AD7A33087A05041C3F528EC37325441666666E686A050419A9999D937325441C3F5289C86A050411F85EBA13732544185EB514886A05041713D0AC7373254415C8FC2C585A050415C8FC2F537325441E17A141E85A05041AE47E11A383254410000008084A05041713D0A373832544185EB51E883A05041E17A143E3832544185EB512883A0504114AE475138325441AE47E1EA81A0504185EB517838325441B81E850B81A050410000008038325441E17A14AE80A05041295C8F52383254413333336380A050410000004038325441F6285C0F80A05041295C8F5238325441295C8FB27FA050413D0AD7933832544152B81E557FA05041666666A638325441AE47E10A7FA05041C3F528CC38325441D7A370AD7EA05041EC51B8DE38325441CDCCCC6C7EA05041D7A3700D39325441F6285C0F7EA05041666666163932544152B81EC57DA05041EC51B8DE3832544152B81E557DA05041EC51B8DE38325441F6285CDF7CA050419A9999F93832544114AE47517CA05041D7A3706D39325441E17A147E7BA05041A4703D2A39325441F6285CDF7AA050418FC2F568393254418FC2F5D878A05041295C8FC23932544114AE473177A05041C3F5280C3A325441EC51B87E73A050415C8FC2A53A3254411F85EB1172A05041E17A14EE3A325441295C8FE270A050415C8FC2353B3254417B14AE2770A050415C8FC2053B325441A4703DAA6FA050415C8FC2653B325441A4703D5A6EA050415C8FC2653B325441000000606DA050415C8FC2653B325441AE47E16A6CA05041666666963B32544152B81E856BA05041EC51B8EE3B325441F6285C1F6BA05041AE47E12A3C325441AE47E15A6AA0504148E17A643C325441D7A3704D69A05041000000903C32544148E17AF466A05041666666463D3254415C8FC2E563A050410AD7A3703E3254413333332361A050410AD7A3003F325441AE47E1BA5BA05041000000D04332544185EB511859A050411F85EBA146325441EC51B89E58A05041E17A144E4732544185EB51D856A05041295C8F8247325441000000B04FA050419A9999B9473254419A9999694BA05041713D0A474832544185EB51E848A050417B14AEE74732544185EB51E846A0504148E17A644732544114AE478145A05041AE47E18A46325441A4703D3A44A05041CDCCCCDC433254418FC2F5E842A05041B81E858B423254418FC2F5D841A05041CDCCCCDC413254410AD7A35040A0504185EB51F840325441F6285CFF3CA05041F6285C2F3F3254411F85EB713CA05041EC51B81E403254418FC2F5D83BA05041C3F528BC41325441713D0A773BA050417B14AED742325441D7A3709D3AA05041EC51B83E44325441713D0A4738A05041713D0A774532544148E17A3435A0504166666656473254418FC2F5E832A05041A4703D1A4932544185EB51B830A0504148E17A144B32544152B81E752BA050413D0AD7F34F325441A4703D8A27A050419A99993954325441C3F5285C1FA05041AE47E17A5E3254411F85EBD115A05041D7A3703D6C3254410AD7A38014A05041EC51B8FE6E3254419A99992914A050417B14AEB76F325441333333F313A050411F85EBB170325441713D0AF713A050410000002071325441713D0A1714A05041B81E85BB71325441F6285C4F14A0504133333333723254411F85EBC114A050416666668672325441F6285C4F15A05041CDCCCCBC723254410000006016A05041CDCCCCBC723254413333331318A05041C3F5289C72325441295C8FB222A0504148E17A8471325441CDCCCCEC2AA050418FC2F5C870325441333333D335A0504185EB517871325441666666A639A050415C8FC2D5713254410AD7A3D03AA05041713D0AA771325441295C8F923DA05041E17A14BE71325441EC51B8CE40A0504152B81E0572325441A4703D3A44A05041F6285C6F723254416666667647A05041E17A14CE72325441CDCCCC1C4BA050410000005073325441EC51B8DE4CA05041713D0A977332544148E17A244FA050413D0AD7936B3254411F85EB5151A050419A999949643254416666664653A05041C3F5283C63325441EC51B87E54A050413D0AD7F3623254413D0AD75357A0504114AE4721633254419A99993959A05041E17A144E633254413D0AD7135BA05041713D0A876332544148E17A245CA05041F6285CAF633254411F85EBF15DA050410000007064325441
+</a>
+
+<b>
+0106000000010000000103000000010000003D000000EC51B80E80A0504100000010133254414DB4A28D80A050415862B6C313325441EC51B8FE80A050413D0AD763143254413D0AD74381A05041713D0A571532544114AE471181A05041D7A370ED17325441A3673ADF80A05041BFE518B1183254418F84B18781A050412B696ADA18325441E393350F7FA05041768B8F401C325441D7A370ED7DA05041666666561E32544148E17A047DA050417B14AE771F325441C3F528EC7BA0504185EB5128213254411F85EB617AA0504152B81E65233254414F2C709279A05041A55F4184243254416666662677A0504114AE471128325441711E0A8D77A0504145AAD4372D325441EC51B8FE77A050417B14AEF7303254418FC2F5D878A05041295C8FC2393254416BAB180E7BA0504154D97D5639325441E94BB8277CA05041E71C3FD93832544152B81EC57DA05041EC51B8DE38325441582AD33D7FA0504156963FB23832544152B81E557FA05041666666A638325441DCD223637FA05041EF7E9DA338325441FBB9EEE37FA0504142E61B7138325441F6285C0F80A05041295C8F52383254418636855E80A0504107340941383254413333336380A050410000004038325441940BC37680A05041C342D94438325441E54311C681A0504174F4957938325441315ABB4682A050418011066D3832544185EB512883A0504114AE47513832544185EB51E883A05041E17A143E38325441BB51D56084A05041FB8E7C3838325441C3F5289C86A050411F85EBA1373254419A99991988A0504148E17AB437325441FEDC96488BA050411783C29F37325441837421248EA05041B732D0CB36325441C3F5282C8EA0504185EB51C83632544162A9AE368EA05041AF0EB1C436325441EC51B82E90A050413333330336325441A4703DDA90A0504114AE47E1353254416666669691A050419A9999E9353254411F85EB4192A050419A9999E935325441FE7B169692A050419A9999E93532544164BFFA6D93A05041A6609EE035325441AE47E1EA94A0504100000080353254417B14AE3799A0504152B81E5536325441AA6898989AA05041A122D8733532544182D681EA9AA05041B738D02F34325441BF23463F9BA05041E1157DE032325441E939B6E39BA0504182AC504431325441445097D69EA050416AB836FB2C32544163307568A1A050419EF11A3F29325441DB4B8F9D9CA050417B2535C72532544195C9747B95A050413B46AB9D20325441BB62FD0888A05041F43A61E216325441713D0A9779A050410AD7A3400C325441A4703D9A78A0504152B81E550B3254413333334378A05041713D0A170A325441B81E852B76A050411F85EB310B325441EC51B80E80A050410000001013325441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>294747 - 2877325
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B0000009A999929B3C750418FC2F5987B3E5541B81E85DBCAC75041F6285CCF763E55417B14AED7CBC75041295C8F92763E5541A4703D3AD6C7504152B81EE5733E5541000000D0E8C7504152B81E45703E5541F6285CEF01C850415C8FC2056A3E5541AE47E11AFAC7504100000060583E5541035374A8F5C750416EE2081C503E5541F6285C9F87C750411F85EBE17A3E5541295C8FE28CC75041333333D3833E55419A999929B3C750418FC2F5987B3E5541
+</a>
+
+<b>
+01060000000100000001030000000100000028000000C3F528FCD3C7504152B81ED5313E5541713D0A27D1C75041CDCCCC9C2E3E5541713D0AE7CEC750419A9999392B3E5541F6285CCFCEC75041666666162B3E554100000060C7C75041F6285CEF1D3E554133333353C0C75041F6285C9F113E5541AE47E17ABFC7504148E17AE4103E554152B81E55BEC75041EC51B8AE103E55419A9999D9B9C750419A999989123E5541C3F5289C95C7504152B81E15223E5541713D0A8770C750419A9999F9313E5541000000606AC750410AD7A3A0343E55412BFCDC876AC75041CCD2A68A353E554173B9BC8D6BC750415CA6C0EF363E5541295C8FE275C75041B81E85CB473E5541A4703D1A7AC75041713D0A974F3E55416156FC327EC750415C013470573E5541295C8FA27EC75041EC51B86E5B3E5541D7A3709D7FC75041AE47E19A653E554148E17AA480C75041713D0A076A3E5541E17A144E83C75041C3F5287C753E55410AD7A31087C75041D7A3701D7B3E5541F6285C9F87C750411F85EBE17A3E5541FCF7617B88C75041D28F648C7A3E5541D78DE6D88DC75041D6AB7A76783E5541CA81F58393C75041A38C6C42763E5541C20A63D799C750417C99EBCC733E5541CFC254A9A1C750412094B9C2703E55415527FBD4ACC75041BA4E1F6B6C3E5541169D2BA0BAC7504195A17A0E673E5541B18A5F50CBC75041890BF38F603E55418FC2F5B8F5C750419A9999F94F3E55418FC2F588F5C75041D7A3709D4F3E5541713D0A77F4C75041EC51B8DE4D3E554152B81E35EEC75041295C8FA2473E55411F85EBD1E7C75041F6285C5F423E5541713D0A27E4C7504114AE47613F3E5541713D0AB7D7C75041AE47E13A353E5541AE47E1FAD6C7504114AE47A1343E5541C3F528FCD3C7504152B81ED5313E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>294747 - 5268669
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B0000009A999929B3C750418FC2F5987B3E5541B81E85DBCAC75041F6285CCF763E55417B14AED7CBC75041295C8F92763E5541A4703D3AD6C7504152B81EE5733E5541000000D0E8C7504152B81E45703E5541F6285CEF01C850415C8FC2056A3E5541AE47E11AFAC7504100000060583E5541035374A8F5C750416EE2081C503E5541F6285C9F87C750411F85EBE17A3E5541295C8FE28CC75041333333D3833E55419A999929B3C750418FC2F5987B3E5541
+</a>
+
+<b>
+01060000000100000001030000000100000028000000C3F528FCD3C7504152B81ED5313E5541713D0A27D1C75041CDCCCC9C2E3E5541713D0AE7CEC750419A9999392B3E5541F6285CCFCEC75041666666162B3E554100000060C7C75041F6285CEF1D3E554133333353C0C75041F6285C9F113E5541AE47E17ABFC7504148E17AE4103E554152B81E55BEC75041EC51B8AE103E55419A9999D9B9C750419A999989123E5541C3F5289C95C7504152B81E15223E5541713D0A8770C750419A9999F9313E5541000000606AC750410AD7A3A0343E55412BFCDC876AC75041CCD2A68A353E554173B9BC8D6BC750415CA6C0EF363E5541295C8FE275C75041B81E85CB473E5541A4703D1A7AC75041713D0A974F3E55416156FC327EC750415C013470573E5541295C8FA27EC75041EC51B86E5B3E5541D7A3709D7FC75041AE47E19A653E554148E17AA480C75041713D0A076A3E5541E17A144E83C75041C3F5287C753E55410AD7A31087C75041D7A3701D7B3E5541F6285C9F87C750411F85EBE17A3E5541FCF7617B88C75041D28F648C7A3E5541D78DE6D88DC75041D6AB7A76783E5541CA81F58393C75041A38C6C42763E5541C20A63D799C750417C99EBCC733E5541CFC254A9A1C750412094B9C2703E55415527FBD4ACC75041BA4E1F6B6C3E5541169D2BA0BAC7504195A17A0E673E5541B18A5F50CBC75041890BF38F603E55418FC2F5B8F5C750419A9999F94F3E55418FC2F588F5C75041D7A3709D4F3E5541713D0A77F4C75041EC51B8DE4D3E554152B81E35EEC75041295C8FA2473E55411F85EBD1E7C75041F6285C5F423E5541713D0A27E4C7504114AE47613F3E5541713D0AB7D7C75041AE47E13A353E5541AE47E1FAD6C7504114AE47A1343E5541C3F528FCD3C7504152B81ED5313E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>23777 - 98870
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001100000014AE4781465951410AD7A320777E544166666686455951417B14AE87727E544185EB5158445951418FC2F5C8717E54411F85EB513E595141B81E853B737E544185EB51183E59514114AE4721727E5441A4703D0A3759514148E17A74737E5441295C8F323059514148E17A44747E544114AE479128595141E17A149E747E5441333333D3195951419A999989747E54419A99995913595141CDCCCC7C747E5441295C8F1205595141AE47E14A767E544166666666FF58514148E17A54767E5441B81E85DBF1585141CDCCCC0C787E5441713D0A67EE585141A4703D3A787E54419A999989EF585141D7A3709D7D7E54413D0AD7F3195951415C8FC2657B7E544114AE4781465951410AD7A320777E5441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000F4B9834D4559514181D9C363727E5441E47572A84459514161798CFB717E5441D4CB98A241595141E752A06F727E54411F85EB513E595141B81E853B737E5441BD40812D3E595141E1021689727E5441DB905AC63D5951410EDCE05C727E5441F956F9833A5951416B0661CD727E5441A4703D0A3759514148E17A74737E5441295C8F323059514148E17A44747E544114AE479128595141E17A149E747E5441333333D3195951419A999989747E54419A99995913595141CDCCCC7C747E5441295C8F1205595141AE47E14A767E544166666666FF58514148E17A54767E5441B81E85DBF1585141CDCCCC0C787E5441713D0A67EE585141A4703D3A787E5441195CCE83EF5851412326F0817D7E54410B60ABA1EF585141F97E2E9C7D7E54418F46300F04595141ABE4C68A7C7E544161A73B8A18595141A049AA787B7E54416880E4792B59514138CDCEB7797E544114AE4781465951410AD7A320777E5441C32A3F8945595141D4F60895727E5441086270854559514179C11287727E5441F4B9834D4559514181D9C363727E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>23777 - 300582
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001100000014AE4781465951410AD7A320777E544166666686455951417B14AE87727E544185EB5158445951418FC2F5C8717E54411F85EB513E595141B81E853B737E544185EB51183E59514114AE4721727E5441A4703D0A3759514148E17A74737E5441295C8F323059514148E17A44747E544114AE479128595141E17A149E747E5441333333D3195951419A999989747E54419A99995913595141CDCCCC7C747E5441295C8F1205595141AE47E14A767E544166666666FF58514148E17A54767E5441B81E85DBF1585141CDCCCC0C787E5441713D0A67EE585141A4703D3A787E54419A999989EF585141D7A3709D7D7E54413D0AD7F3195951415C8FC2657B7E544114AE4781465951410AD7A320777E5441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000F4B9834D4559514181D9C363727E5441E47572A84459514161798CFB717E5441D4CB98A241595141E752A06F727E54411F85EB513E595141B81E853B737E5441BD40812D3E595141E1021689727E5441DB905AC63D5951410EDCE05C727E5441F956F9833A5951416B0661CD727E5441A4703D0A3759514148E17A74737E5441295C8F323059514148E17A44747E544114AE479128595141E17A149E747E5441333333D3195951419A999989747E54419A99995913595141CDCCCC7C747E5441295C8F1205595141AE47E14A767E544166666666FF58514148E17A54767E5441B81E85DBF1585141CDCCCC0C787E5441713D0A67EE585141A4703D3A787E5441195CCE83EF5851412326F0817D7E54410B60ABA1EF585141F97E2E9C7D7E54418F46300F04595141ABE4C68A7C7E544161A73B8A18595141A049AA787B7E54416880E4792B59514138CDCEB7797E544114AE4781465951410AD7A320777E5441C32A3F8945595141D4F60895727E5441086270854559514179C11287727E5441F4B9834D4559514181D9C363727E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2626704 - 3165582
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000002A0000008FC2F5B8FED15041AE47E16AA62A54416666665600D25041CDCCCCDCA62A54419A99994902D250418FC2F578A62A544148E17A9406D250411F85EB11A42A544185EB51B80AD25041295C8F429E2A5441EC51B8BE11D2504148E17A84922A54410AD7A32016D25041CDCCCC5C8D2A54418FC2F5F819D25041D7A3706D8B2A5441EC51B83E22D25041C3F528AC872A54417B14AE3722D25041D7A3707D862A5441295C8F321ED250415C8FC245862A5441F6285CAF1BD25041CDCCCCFC842A5441CDCCCC5C16D25041D7A3700D7B2A5441D7A3701D0AD25041CDCCCC1C7D2A54418FC2F5F800D25041EC51B88E7D2A5441295C8FC2FAD150411F85EB417D2A5441295C8F02F0D15041295C8FD27C2A5441AE47E15AE0D1504148E17AE4772A5441AE47E16AD9D150417B14AEF7752A54417B14AE67D7D150411F85EBE17B2A5441F6285C9FD6D15041AE47E15A7D2A544152B81E35D8D150411F85EB118C2A54417B14AE77D9D1504148E17A848F2A5441EC51B88ED9D15041C3F5285C922A54418FC2F548DAD15041666666E6972A544100000090D8D15041EC51B8FEA32A54417B14AE07D9D1504148E17AC4A82A54419A9999F9D8D1504114AE47F1AC2A54410AD7A3C0D8D1504114AE47F1B02A54418FC2F5C8D8D15041295C8F32B82A5441713D0A77DFD1504148E17A84B52A5441A4703DAAE1D150411F85EB31B62A5441000000D0E4D15041E17A142EB42A5441A4703D3AE8D15041AE47E1DAB02A5441333333D3ECD150413D0AD7E3AE2A544166666676F1D1504114AE4741AA2A5441AE47E12AF4D150419A999949A72A5441D7A370CDF7D150417B14AED7A52A54413D0AD7F3F8D150413D0AD7C3A32A54417B14AED7FAD15041B81E855BA32A5441EC51B8FEFCD1504185EB5178A52A54418FC2F5B8FED15041AE47E16AA62A5441
+</a>
+
+<b>
+0106000000010000000103000000010000002C0000008FC2F5B8FED15041AE47E16AA62A54416666665600D25041CDCCCCDCA62A54419A99994902D250418FC2F578A62A544148E17A9406D250411F85EB11A42A544185EB51B80AD25041295C8F429E2A5441EC51B8BE11D2504148E17A84922A54410AD7A32016D25041CDCCCC5C8D2A54418FC2F5F819D25041D7A3706D8B2A5441EC51B83E22D25041C3F528AC872A54417B14AE3722D25041D7A3707D862A5441295C8F321ED250415C8FC245862A5441F6285CAF1BD25041CDCCCCFC842A5441CDCCCC5C16D25041D7A3700D7B2A5441D7A3701D0AD25041CDCCCC1C7D2A54418FC2F5F800D25041EC51B88E7D2A5441295C8FC2FAD150411F85EB417D2A5441295C8F02F0D15041295C8FD27C2A5441000000F0E4D150415C8FC2C57A2A5441AE47E16AD9D150417B14AEF7752A54419B1A2F8FD8D15041839AD0387B2A54418F8945A4D6D150413729A3517D2A5441AEAAA811D8D15041DAACB3C88A2A54416EA20959D9D15041029BA3308F2A54413C7C36A3D9D15041BD2337F8922A54418FC2F548DAD15041666666E6972A5441BDAF2C49D9D15041787B77EA9E2A544144AA95EAD8D1504136CFA782A12A54419A08E282D8D15041F3B1A7C7A32A54417B14AE07D9D1504148E17AC4A82A54419A9999F9D8D1504114AE47F1AC2A54410AD7A3C0D8D1504114AE47F1B02A54418FC2F5C8D8D15041295C8F32B82A5441713D0A77DFD1504148E17A84B52A54415B6BF374E1D15041E0E6817BB52A544143679DDEE4D15041F4D7DAADB22A54412B2C7B67E8D150410CA56463AF2A54410DA78FABECD1504115CB5E2BAE2A5441E9D7DAAAF1D150413863474BA92A5441D31D4E59F4D150414D8B6C5EA62A5441BEF52846F7D150415AC4638AA42A5441B4F3FDFAF8D150416558F613A32A5441ABA260FEFAD15041DB947F81A32A54415586C151FDD15041DD14DDA5A52A54418FC2F5B8FED15041AE47E16AA62A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2905028 - 991912
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000010000000000000104E33514152B81E05D53C5441A4703D6A51335141AE47E18AD93C5441F48DF30152335141D70B188AD93C54415C8FC2754E335141AE47E1BAD43C544114AE47D148335141CDCCCCFCCD3C544185EB51D842335141B81E85CBC73C5441D7A3709D3C335141EC51B8EEC13C5441F6285CBF33335141F6285C4FBA3C54417B14AEB72F33514133333303B73C54411F85EB612C33514114AE47A1B43C54415C8FC2852F3351418FC2F548B73C54413D0AD77333335141295C8FA2BA3C544152B81E553C3351413D0AD733C23C5441713D0A9742335141A4703D1AC83C5441EC51B86E4833514148E17A54CE3C5441000000104E33514152B81E05D53C5441
+</a>
+
+<b>
+0106000000010000000103000000010000004F0000000262764F423351418473C0D6C73C5441FDB92BF74033514191482192C63C544122076C773F33514115294E28C53C5441D43813EC3D335141448F8BB3C33C54415BD593E23C335141FB3E37B9C23C544187AD4A533C335141262D4832C23C54410B038BE93B335141F8CF29D8C13C54416FF489C73A33514171E205E1C03C544178A7FD453A335141E8669F72C03C544153CD22023A3351413F08CC38C03C5441442CA52939335141CEF14D80BF3C54417BB2141B38335141050ABB99BE3C54414E2D7093373351411CC55325BE3C544178EA6B2437335141015087C7BD3C5441FAFA8DBA36335141E248866DBD3C54411D56B3633633514125E14A23BD3C5441F8CDB31E36335141DA167EE8BC3C544137879FE135335141FDEA70B4BC3C544120B2426E353351416B282152BC3C5441708D1E2935335141E32A3517BC3C5441F17A61DF34335141FD335ED8BB3C5441ED852769343351415AAD9D73BB3C544156DB36133433514168CC602ABB3C54417ED356BF33335141C76BE6E2BA3C54414A38E79033335141E4D953BBBA3C5441EE0F282D333351414BE34E66BA3C54418D4269A232335141D60B0AF0B93C54415B091742323351412FF3EE9DB93C5441C9421AB131335141D7F75722B93C5441C8FF2C4E31335141DE4604CEB83C544185DC072A31335141FBBD34AFB83C54412C6B7AEA30335141D554167BB83C5441DFDBB794303351414C922032B83C544140CD651A30335141FF4BA9C7B73C5441954CF5BE2F335141EA54167BB73C5441A14CF55E2F335141D5CF2A29B73C5441D03DD71B2F335141288CFBEEB63C544142F27AE32E33514118D81ABFB63C5441F99E948A2E33514169DB9573B63C5441713FEB512E33514137AD7343B63C54412FAEB7FD2D335141DB6BECFBB53C5441477C4CE82C33514185454210B53C54410AC5B8592C335141AF192497B43C5441D7A3708D2A335141F6285CEFB33C5441713D0AD7273351411F85EB01B43C5441D7A370AD2533514114AE47A1B43C5441000000A02333514100000080B63C5441333333832033514114AE4791BA3C544152B81E051E33514114AE47B1BC3C54419A99996918335141713D0A37C33C54417B14AEA71633514148E17A44C53C54413333330311335141295C8FF2CA3C5441F6285C2F0B335141A4703D0AD03C54410AD7A3E001335141E17A145ED73C544148E17A04FF325141000000D0D93C54418FC2F5D800335141666666D6D93C5441295C8F22303351418FC2F578DA3C544114AE477152335141E17A14EEDA3C54411F1E6D6751335141EB911587D93C5441E129772A51335141213ED934D93C5441242C54425033514164A1B2FBD73C54410261E0A94F33514123660A2ED73C5441451A4EF44E335141C31E1A39D63C5441FB8DE7B74E335141273F9FE7D53C5441ACCE3D1E4E335141BDE35418D53C5441953A32DB4D335141BDDC5FC6D43C54410B47909B4C3351418CF58F4AD33C5441770634004B3351417093C061D13C5441F99A9C2A49335141D458BF33CF3C5441FA08609C48335141BE1FBB8ACE3C5441B5127073483351417A06165ACE3C5441C2BF3E5B4833514112C7B83FCE3C5441F4BFF0314833514149FDB113CE3C5441FB84F4F54733514187D6C1D3CD3C54410180BF5045335141F3ADEC01CB3C54418E71F4B2433351418524DD48C93C54412256170443335141892C7A8EC83C5441706BA8B3423351418F63BE38C83C54410262764F423351418473C0D6C73C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2905028 - 3586923
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000010000000000000104E33514152B81E05D53C5441A4703D6A51335141AE47E18AD93C5441F48DF30152335141D70B188AD93C54415C8FC2754E335141AE47E1BAD43C544114AE47D148335141CDCCCCFCCD3C544185EB51D842335141B81E85CBC73C5441D7A3709D3C335141EC51B8EEC13C5441F6285CBF33335141F6285C4FBA3C54417B14AEB72F33514133333303B73C54411F85EB612C33514114AE47A1B43C54415C8FC2852F3351418FC2F548B73C54413D0AD77333335141295C8FA2BA3C544152B81E553C3351413D0AD733C23C5441713D0A9742335141A4703D1AC83C5441EC51B86E4833514148E17A54CE3C5441000000104E33514152B81E05D53C5441
+</a>
+
+<b>
+0106000000010000000103000000010000004F0000000262764F423351418473C0D6C73C5441FDB92BF74033514191482192C63C544122076C773F33514115294E28C53C5441D43813EC3D335141448F8BB3C33C54415BD593E23C335141FB3E37B9C23C544187AD4A533C335141262D4832C23C54410B038BE93B335141F8CF29D8C13C54416FF489C73A33514171E205E1C03C544178A7FD453A335141E8669F72C03C544153CD22023A3351413F08CC38C03C5441442CA52939335141CEF14D80BF3C54417BB2141B38335141050ABB99BE3C54414E2D7093373351411CC55325BE3C544178EA6B2437335141015087C7BD3C5441FAFA8DBA36335141E248866DBD3C54411D56B3633633514125E14A23BD3C5441F8CDB31E36335141DA167EE8BC3C544137879FE135335141FDEA70B4BC3C544120B2426E353351416B282152BC3C5441708D1E2935335141E32A3517BC3C5441F17A61DF34335141FD335ED8BB3C5441ED852769343351415AAD9D73BB3C544156DB36133433514168CC602ABB3C54417ED356BF33335141C76BE6E2BA3C54414A38E79033335141E4D953BBBA3C5441EE0F282D333351414BE34E66BA3C54418D4269A232335141D60B0AF0B93C54415B091742323351412FF3EE9DB93C5441C9421AB131335141D7F75722B93C5441C8FF2C4E31335141DE4604CEB83C544185DC072A31335141FBBD34AFB83C54412C6B7AEA30335141D554167BB83C5441DFDBB794303351414C922032B83C544140CD651A30335141FF4BA9C7B73C5441954CF5BE2F335141EA54167BB73C5441A14CF55E2F335141D5CF2A29B73C5441D03DD71B2F335141288CFBEEB63C544142F27AE32E33514118D81ABFB63C5441F99E948A2E33514169DB9573B63C5441713FEB512E33514137AD7343B63C54412FAEB7FD2D335141DB6BECFBB53C5441477C4CE82C33514185454210B53C54410AC5B8592C335141AF192497B43C5441D7A3708D2A335141F6285CEFB33C5441713D0AD7273351411F85EB01B43C5441D7A370AD2533514114AE47A1B43C5441000000A02333514100000080B63C5441333333832033514114AE4791BA3C544152B81E051E33514114AE47B1BC3C54419A99996918335141713D0A37C33C54417B14AEA71633514148E17A44C53C54413333330311335141295C8FF2CA3C5441F6285C2F0B335141A4703D0AD03C54410AD7A3E001335141E17A145ED73C544148E17A04FF325141000000D0D93C54418FC2F5D800335141666666D6D93C5441295C8F22303351418FC2F578DA3C544114AE477152335141E17A14EEDA3C54411F1E6D6751335141EB911587D93C5441E129772A51335141213ED934D93C5441242C54425033514164A1B2FBD73C54410261E0A94F33514123660A2ED73C5441451A4EF44E335141C31E1A39D63C5441FB8DE7B74E335141273F9FE7D53C5441ACCE3D1E4E335141BDE35418D53C5441953A32DB4D335141BDDC5FC6D43C54410B47909B4C3351418CF58F4AD33C5441770634004B3351417093C061D13C5441F99A9C2A49335141D458BF33CF3C5441FA08609C48335141BE1FBB8ACE3C5441B5127073483351417A06165ACE3C5441C2BF3E5B4833514112C7B83FCE3C5441F4BFF0314833514149FDB113CE3C5441FB84F4F54733514187D6C1D3CD3C54410180BF5045335141F3ADEC01CB3C54418E71F4B2433351418524DD48C93C54412256170443335141892C7A8EC83C5441706BA8B3423351418F63BE38C83C54410262764F423351418473C0D6C73C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>3014593 - 247477
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000170000007B14AE2706AE50411F85EBF170D45441295C8FC205AE5041713D0A976ED45441AE47E1AA04AE5041E17A146E6BD454417B14AE0702AE50410AD7A32065D45441A4703D2A00AE50415C8FC2C560D45441713D0A07FEAD5041CDCCCC9C5CD4544185EB5188FCAD5041F6285C2F5AD4544185EB51B8F6AD50413D0AD7D353D4544148E17AF4F3AD5041E17A147E50D4544185EB5128F1AD5041000000504CD4544152B81E05EFAD50418FC2F50848D454418FC2F5B8EBAD504114AE473149D454411F85EB81E9AD5041666666364FD45441B81E859BE6AD504114AE475154D454417B14AEE7E3AD5041EC51B8AE59D45441295C8F52E3AD5041713D0A475CD4544114AE4771E9AD50415C8FC2657AD454410AD7A3D0ECAD5041000000B079D454410AD7A3F0F6AD50415C8FC22578D45441D7A3704D01AE504185EB51D876D4544185EB51D805AE50410000006076D454410000003006AE5041C3F528FC72D454417B14AE2706AE50411F85EBF170D45441
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000003B634005AE50413DE9851E6DD454414FF7629EFFAD5041BBD393B55FD45441713D0A07FEAD5041CDCCCC9C5CD4544185EB5188FCAD5041F6285C2F5AD4544185EB51B8F6AD50413D0AD7D353D4544148E17AF4F3AD5041E17A147E50D4544185EB5128F1AD5041000000504CD4544152B81E05EFAD50418FC2F50848D454418FC2F5B8EBAD504114AE473149D454411F85EB81E9AD5041666666364FD45441B81E859BE6AD504114AE475154D454417B14AEE7E3AD5041EC51B8AE59D454417BDE28AEE3AD5041D22FF8AE5AD45441295C8F52E3AD5041713D0A475CD454418214A57FE3AD50416FBBEF245DD454410F18D8EDE5AD5041B9573F1B69D4544160D01D4DE8AD50410A7D17C874D4544114AE4771E9AD50415C8FC2657AD454410AD7A3D0ECAD5041000000B079D45441C2F7FEEEEFAD50415B83D02879D454419BF72AE9F6AD5041DBB0DA1B78D45441FEC6494801AE5041D50AEEC976D454412D09EDC104AE5041ABC4467076D4544185EB51D805AE50410000006076D454410000003006AE5041C3F528FC72D454417B14AE2706AE50411F85EBF170D45441295C8FC205AE5041713D0A976ED45441003B634005AE50413DE9851E6DD45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>3014593 - 275081
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000170000007B14AE2706AE50411F85EBF170D45441295C8FC205AE5041713D0A976ED45441AE47E1AA04AE5041E17A146E6BD454417B14AE0702AE50410AD7A32065D45441A4703D2A00AE50415C8FC2C560D45441713D0A07FEAD5041CDCCCC9C5CD4544185EB5188FCAD5041F6285C2F5AD4544185EB51B8F6AD50413D0AD7D353D4544148E17AF4F3AD5041E17A147E50D4544185EB5128F1AD5041000000504CD4544152B81E05EFAD50418FC2F50848D454418FC2F5B8EBAD504114AE473149D454411F85EB81E9AD5041666666364FD45441B81E859BE6AD504114AE475154D454417B14AEE7E3AD5041EC51B8AE59D45441295C8F52E3AD5041713D0A475CD4544114AE4771E9AD50415C8FC2657AD454410AD7A3D0ECAD5041000000B079D454410AD7A3F0F6AD50415C8FC22578D45441D7A3704D01AE504185EB51D876D4544185EB51D805AE50410000006076D454410000003006AE5041C3F528FC72D454417B14AE2706AE50411F85EBF170D45441
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000003B634005AE50413DE9851E6DD454414FF7629EFFAD5041BBD393B55FD45441713D0A07FEAD5041CDCCCC9C5CD4544185EB5188FCAD5041F6285C2F5AD4544185EB51B8F6AD50413D0AD7D353D4544148E17AF4F3AD5041E17A147E50D4544185EB5128F1AD5041000000504CD4544152B81E05EFAD50418FC2F50848D454418FC2F5B8EBAD504114AE473149D454411F85EB81E9AD5041666666364FD45441B81E859BE6AD504114AE475154D454417B14AEE7E3AD5041EC51B8AE59D454417BDE28AEE3AD5041D22FF8AE5AD45441295C8F52E3AD5041713D0A475CD454418214A57FE3AD50416FBBEF245DD454410F18D8EDE5AD5041B9573F1B69D4544160D01D4DE8AD50410A7D17C874D4544114AE4771E9AD50415C8FC2657AD454410AD7A3D0ECAD5041000000B079D45441C2F7FEEEEFAD50415B83D02879D454419BF72AE9F6AD5041DBB0DA1B78D45441FEC6494801AE5041D50AEEC976D454412D09EDC104AE5041ABC4467076D4544185EB51D805AE50410000006076D454410000003006AE5041C3F528FC72D454417B14AE2706AE50411F85EBF170D45441295C8FC205AE5041713D0A976ED45441003B634005AE50413DE9851E6DD45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986361 - 408826
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000040000006B0000007B14AE1789FA50417B14AE271EC454413D0AD76386FA5041A4703DDA1EC454411F85EBD183FA5041713D0A6721C454413D0AD7337BFA50413D0AD7F329C4544114AE47517AFA504148E17AD42AC454417B14AE1779FA50418FC2F5582AC454413333334377FA504148E17AA429C45441EC51B87E6AFA5041295C8F7219C45441713D0AE767FA5041A4703D2A16C4544114AE479166FA5041C3F5281C16C454418FC2F5B861FA50410000006018C4544114AE47515BFA50417B14AE871DC45441D7A370FD59FA50417B14AEC71EC45441D7A3705D59FA50413D0AD7E320C4544152B81E755AFA50417B14AEC723C4544114AE47415CFA50413D0AD7E325C45441D7A3700D5EFA50417B14AE1729C45441D7A3703D60FA50413D0AD7032EC45441D7A3708D60FA5041000000D02FC45441CDCCCCCC5FFA50415C8FC20531C45441C3F5288C5DFA5041E17A149E31C45441295C8F925BFA5041333333F330C454410000007050FA504148E17AD422C4544148E17A444EFA50413D0AD71320C45441C3F5283C3EFA504152B81E650DC454410AD7A3502EFA50418FC2F558F9C35441EC51B80E26FA5041666666F6EEC35441A4703DDA25FA504133333333EEC354410AD7A39025FA504100000020EDC354413333330322FA5041B81E85DBDFC35441CDCCCCEC1DFA50415C8FC295D0C35441295C8F420FFA50413D0AD753DAC35441E17A143E0FFA504166666656DCC35441E17A140E0FFA50410AD7A3B0DFC35441333333A310FA504133333323E3C35441000000E012FA504152B81E95E6C35441F6285C3F13FA50410AD7A390E9C354415C8FC21514FA5041A4703D1AEDC3544185EB512817FA504133333363F1C35441000000301CFA5041A4703D9AF6C35441D7A370AD1DFA5041666666D6F8C354413D0AD7831EFA50417B14AE07FDC35441295C8F721FFA5041B81E854B04C45441E17A14EE1FFA5041A4703D1A0CC45441713D0A9720FA5041333333C30CC454410AD7A30022FA5041B81E850B0DC45441A4703D0A23FA5041333333930CC45441713D0AE726FA5041000000200AC4544114AE475128FA5041F6285C8F09C45441295C8F7229FA50417B14AED709C45441666666462CFA5041666666360FC45441713D0AD72CFA504114AE470111C45441713D0AA72CFA5041B81E85FB12C45441CDCCCC0C2BFA504185EB51A816C45441F6285CBF29FA504185EB51681BC45441295C8F4229FA504114AE47711DC4544148E17AC42AFA5041000000A022C45441A4703D7A2FFA5041F6285CEF2DC45441E17A14EE31FA50416666663633C454410AD7A30034FA504114AE47C135C45441333333C336FA50419A9999F936C45441AE47E10A37FA50416666667638C454413D0AD7B337FA50418FC2F5983BC45441B81E85DB37FA50415C8FC2953CC454418FC2F51839FA50417B14AEB73DC4544152B81E953AFA5041C3F5286C43C45441E17A147E3CFA50419A99991947C454418FC2F5783DFA50417B14AED74AC45441CDCCCC2C3EFA50413D0AD7C34FC45441CDCCCCAC40FA5041C3F5288C55C45441CDCCCC8C42FA50413D0AD7C359C45441CDCCCC7C43FA50413D0AD7135AC45441CDCCCCCC48FA50410000006059C454418FC2F5F849FA50410000002058C4544152B81ED54AFA50417B14AEC755C4544152B81E154CFA5041000000C053C454418FC2F5084EFA5041C3F5280C53C4544152B81E7550FA50417B14AE4753C454418FC2F5A853FA5041000000B054C4544152B81E6556FA5041C3F5283C55C454418FC2F59859FA5041C3F528EC54C4544114AE473167FA50410000009051C454418FC2F5F867FA50410000005050C4544152B81EE567FA50417B14AEA74DC4544114AE473167FA5041C3F528BC48C4544114AE47A165FA5041C3F528EC45C4544152B81E4562FA50417B14AEF743C454418FC2F52860FA50413D0AD74343C4544114AE47C15EFA5041000000F041C45441D7A370AD5EFA50413D0AD77340C4544114AE47B15FFA50413D0AD7E33EC4544114AE479161FA50413D0AD7933EC454418FC2F5186BFA5041C3F528BC3EC45441D7A3705D6DFA50417B14AE9744C45441D7A370ED6EFA5041C3F5287C47C4544152B81EA570FA50417B14AEE749C4544114AE478171FA50417B14AEB74CC4544152B81E8572FA5041C3F528BC4DC454418FC2F5D873FA50413D0AD7334EC45441CDCCCC2C78FA50415C8FC2154DC454411F85EB7179FA50411F85EB114DC45441E17A144E79FA5041CDCCCCBC52C4544148E17A847AFA5041B81E851B54C454416666668682FA5041D7A370BD54C45441666666F68AFA50417B14AE6755C45441295C8F528CFA50410AD7A3701FC454417B14AE1789FA50417B14AE271EC454410C000000333333434CFA5041666666362DC45441EC51B87E48FA5041CDCCCC5C2EC454417B14AE2743FA50413D0AD7532CC454411F85EB3141FA5041AE47E1BA2AC45441F6285C4F3FFA5041E17A140E27C45441F6285C1F3FFA50419A9999A923C454413333339341FA504152B81E8522C45441C3F528CC44FA50413D0AD73323C4544114AE471146FA5041A4703DAA24C4544114AE47D147FA50411F85EB7129C45441713D0A374CFA5041C3F5289C2BC45441333333434CFA5041666666362DC45441070000000AD7A3905BFA50415C8FC26534C45441E17A14CE5CFA50413D0AD7D332C45441B81E85DB77FA5041C3F528AC2BC4544185EB510879FA5041A4703D9A2CC454410AD7A3F078FA5041B81E851B30C454419A9999795BFA5041E17A14CE37C454410AD7A3905BFA50415C8FC26534C4544115000000D7A3707D36FA5041C3F5281C14C45441713D0AE736FA504114AE47E114C45441EC51B84E38FA50413D0AD75317C454410000008038FA50418FC2F52818C45441295C8F3238FA5041A4703D2A19C45441000000E037FA50413D0AD7931AC4544114AE471138FA50417B14AE671DC45441333333333AFA504148E17A9425C454411F85EBC138FA5041333333632AC45441CDCCCCBC37FA5041713D0A872AC45441713D0A7734FA5041D7A3704D23C454417B14AED734FA50411F85EB711FC45441C3F528DC33FA5041CDCCCC2C1DC454410AD7A37031FA50411F85EB211BC4544185EB51E82DFA504185EB519818C45441333333732DFA5041CDCCCC3C18C454418FC2F5482EFA5041EC51B83E17C45441AE47E11A30FA504114AE478115C454419A99999934FA504152B81EC513C454410AD7A3F034FA5041666666D613C45441D7A3707D36FA5041C3F5281C14C45441
+</a>
+
+<b>
+0106000000010000000103000000020000008600000018CDCC2C78FA50415B8FC2154DC454416D29375378FA504182231A6747C4544136DA5C8F78FA50414000846B3EC45441010EA5F078FA50415F32861B30C45441C45098795BFA50410C0615CE37C454413AFB52185BFA5041C7576F1D46C4544165D724DC5AFA50416B20E5184FC454419A777FD459FA50414B736F5D4FC4544132E17A045AFA5041B7CCCC3C48C454414ED8382A5AFA504130E148B142C45441E7B71E455AFA50417AC2F5A83EC454412E5E246C5AFA504105E148E138C454418FC2F5885AFA50411652B8AE34C45441C3F5285C59FA50410AD7A3C033C4544114AE47115AFA50418FC2F58832C45441874FB8BE44FA5041DC14AE2738C45441EC51B87E56FA5041466666262CC454417AEB519850FA5041C31E85AB24C45441ADCCCC5C4AFA504167B81EC51CC4544116295CDF44FA5041F6285CCF15C454419947E17A41FA50413E5C8F8211C45441AFF5283C3EFA504160B81E650DC454419A9999F936FA50415C8FC27512C454415FFCCF6E36FA504149B4B4D312C45441148D1AF934FA50416052E3D713C45441D7A3707D36FA5041C3F5281C14C45441713D0AE736FA504114AE47E114C45441EC51B84E38FA50413D0AD75317C454410000008038FA50418FC2F52818C45441295C8F3238FA5041A4703D2A19C45441000000E037FA50413D0AD7931AC4544114AE471138FA50417B14AE671DC45441C4ED0E4E38FA504136E8AC501EC45441B0C18A4E38FA5041B49A87521EC45441333333333AFA504148E17A9425C454418DA51D4239FA50414667F4B728C454411F85EBC138FA5041333333632AC45441CDCCCCBC37FA5041713D0A872AC45441713D0A7734FA5041D7A3704D23C454412A6610B134FA5041AEC684FC20C454417B14AED734FA50411F85EB711FC45441C3F528DC33FA5041CDCCCC2C1DC454419763473F32FA5041392D53D01BC454410AD7A37031FA50411F85EB211BC4544186E855322FFA5041E29804A419C4544190C602242FFA50414913177B19C454419C4CB5E82DFA50419D4E999818C45441F21428BA2AFA504131C6CDBF1AC45441666EFAC62BFA5041B44673561DC454411298588F2CFA5041DF38674E1FC454418F32C7AB2CFA5041CCEBE9951FC454412A7630DD2CFA5041F293301220C4544165FFDD232DFA5041A82D1EC520C45441D35FB9782EFA5041250A082424C45441520480BB2EFA5041BB7D18CB24C454413E1BFF7630FA504169B7A92029C45441BA496D0531FA5041482BE5862AC45441BD85DEEB31FA50419D597DCA2CC454413960F6F432FA5041C05E3C652FC454419665022034FA50414C66615532C454414A08F55235FA50416F008B5535C45441C1719B9735FA5041CA5EC4FF35C4544189F38BFE35FA5041C7E3F70837C4544129EFFC5836FA50418BFB0D0638C454411532FCEF36FA5041AF6AFBC839C454417008389B37FA50411E91E7BE3BC454412A81C1E337FA5041D0A186933CC454418098E70A38FA5041A18247063DC454415260A26E38FA5041ACFA221A3EC454419BFB2F9838FA5041792F8A943EC4544111493EC938FA5041B18B41263FC45441DC59C5E838FA504125F4E7833FC4544195BFD45339FA5041AB46EBC140C45441560D23A139FA50414E4808AD41C45441279CC4B839FA50414BD24CF241C45441A56759683BFA504161131DB946C45441A741EEC03BFA504131E401E747C45441AE4F50713CFA5041710406EC49C45441D86D0AA23CFA5041604EDA7A4AC4544140945AC03CFA504106985C834AC45441A3D9277A3DFA5041DEDD54F44CC45441CEB87CE13DFA50414CDA37234EC4544193F9C9503EFA50416B3E57634FC45441B5CBB1573EFA5041278D6A774FC454415353D8703EFA5041014788C04FC454417CD86A973EFA50416C8ED83050C454413D41A4A63EFA50411BE52C5D50C454413B19BFD23EFA5041ED2C99DD50C45441EA8189F93EFA5041F28BFB3B51C4544101FBE6223FFA50413E17559651C454415482CDF13FFA504120632C7353C454414DA85A4840FA50413D2DDC3A54C4544157C5E56240FA504160E4277954C45441E04A952A41FA5041BDEA5C4A56C4544151A49AAE42FA50414F6E02CC59C454418F728A4D43FA5041E07360035AC45441E7E9587E43FA50414C7838105AC45441CDCCCCCC48FA50410000006059C454418FC2F5F849FA50410000002058C4544152B81ED54AFA50417B14AEC755C45441A8171D8D4BFA5041C5D3DF9C54C4544152B81E154CFA5041000000C053C454418FC2F5084EFA5041C3F5280C53C4544152B81E7550FA50417B14AE4753C45441D5854A9A53FA50415A928DA954C4544152B81E6556FA5041C3F5283C55C454413EC1D16557FA5041627C1C2355C454418FC2F59859FA5041C3F528EC54C4544114AE473167FA50410000009051C454418FC2F5F867FA50410000005050C4544152B81EE567FA50417B14AEA74DC45441695622A967FA5041F7C090034CC454412019FC9F67FA5041F4718AC34BC4544114AE473167FA5041C3F528BC48C4544114AE47A165FA5041C3F528EC45C4544152B81E4562FA50417B14AEF743C454418FC2F52860FA50413D0AD74343C4544114AE47C15EFA5041000000F041C45441D7A370AD5EFA50413D0AD77340C4544114AE47B15FFA50413D0AD7E33EC4544114AE479161FA50413D0AD7933EC454418FC2F5186BFA5041C3F528BC3EC454411FBB09396CFA504191C655A441C45441D7A3705D6DFA50417B14AE9744C45441D7A370ED6EFA5041C3F5287C47C45441E889025970FA5041EA62707C49C4544152B81EA570FA50417B14AEE749C454410B1C58C370FA5041F10A864A4AC4544114AE478171FA50417B14AEB74CC4544152B81E8572FA5041C3F528BC4DC45441DC13BFD573FA5041C651B5324EC4544132F30FD973FA5041E046D0334EC454417508A80874FA504132F485274EC4544118CDCC2C78FA50415B8FC2154DC4544113000000F6285C4F3FFA5041E17A140E27C45441BCC5B22B3FFA50414E6DD78824C454411A841E293FFA504170302D5A24C45441F6285C1F3FFA50419A9999A923C454413333339341FA504152B81E8522C4544113CA2BCD41FA5041DFD6659122C45441C3F528CC44FA50413D0AD73323C4544103C814D944FA5041603EB84223C4544114AE471146FA5041A4703DAA24C4544119ED3FCF47FA50417CD95F6C29C454413904F5D148FA504180F48DEF29C45441C7169B3149FA5041C7FD601F2AC45441713D0A374CFA5041C3F5289C2BC45441333333434CFA5041666666362DC45441EC51B87E48FA5041CDCCCC5C2EC454417B14AE2743FA50413D0AD7532CC454411F85EB3141FA5041AE47E1BA2AC454417A824AC340FA5041079432E329C45441F6285C4F3FFA5041E17A140E27C45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>7921 - 57904
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000000B000000A4BBA2D485B050415820D3BDE3E05441666666A689B05041EC51B89EDEE054415C8FC2B591B05041C3F528ACD7E054416666660694B05041B81E856BD6E05441666666A684B0504152B81E25C6E054415C8FC2457DB050415C8FC255BEE054413D0AD7E36FB05041C3F5282CB0E05441000000B06EB05041713D0AA7B0E05441C3F5289C60B05041AE47E19AB5E0544134DF19A668B05041FBC7757AC2E05441A4BBA2D485B050415820D3BDE3E05441
+</a>
+
+<b>
+0106000000010000000103000000010000001100000043E9A94093B05041C0A980D6D6E05441035B37D193B05041E55B4B88D6E05441A66B68DF93B05041C7BC9D80D6E05441DF274CFB93B05041E5E08671D6E054411B7BAC9888B05041691F8852CAE05441666666A684B0504152B81E25C6E054415C8FC2457DB050415C8FC255BEE05441FD83F2E36FB050417A09462CB0E05441000000B06EB05041713D0AA7B0E05441FD8DEE9E60B050415E9F519FB5E0544134DF19A668B05041FBC7757AC2E054418E186EC685B0504164DEA1ADE3E05441906439B589B05041F2C86C55DEE0544104DCEE6E91B05041E20BF6E8D7E054414960D96F91B0504111D86BE8D7E054415C8FC2B591B05041C3F528ACD7E0544143E9A94093B05041C0A980D6D6E05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>987365 - 60215
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000120000007B14AE177DDC504185EB51F8ABC25441333333E37EDC5041C3F5282CA9C254415C8FC2B581DC50419A999929A9C2544114AE470184DC504100000090A9C25441D7A370ED8EDC504166666676ABC25441713D0AB790DC504133333343ABC2544148E17AC490DC5041333333639CC25441F6285C4F6FDC50417B14AEE798C254411F85EBC165DC50418FC2F53898C25441C3F528BC65DC504148E17A44A5C2544185EB51A866DC5041295C8F52A6C2544148E17A046BDC504100000040ADC25441B81E852B6CDC5041C3F528BCAEC2544152B81E156EDC50415C8FC265AFC25441333333B379DC504133333353B0C2544114AE47F17ADC5041000000D0AFC25441666666D67BDC5041713D0A07AFC254417B14AE177DDC504185EB51F8ABC25441
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000007C4E36657EDC5041ABF582F0A9C25441CC169E667EDC50417959CED6A9C254414E7BD9CD7EDC5041DBF85F2EA9C25441987ADCE17EDC5041E5163F2EA9C25441333333E37EDC5041C3F5282CA9C254415C8FC2B581DC50419A999929A9C2544114AE470184DC504100000090A9C254419B6F994384DC50413B54899BA9C254417755ED0C8FDC50411281E072ABC25441EE1197AF90DC5041F3960844ABC25441F3F135B790DC50417816D412ABC2544160B441B790DC5041DA3BD005ABC254413A2242B790DC5041FDA65605ABC254411459B8B790DC5041469C8082AAC254410E7B06B890DC50410402072CAAC2544142469DBA90DC5041BB70774EA7C254412C543DC290DC5041D15FFDDD9EC25441BEFFDFC390DC5041BE269E0E9DC25441867359C490DC5041B8AC32889CC2544153956AC490DC50415E993C759CC25441C41175C490DC5041A689A1699CC25441102E78C490DC5041023830669CC25441709279C490DC5041BCCBA5649CC254415D056D3C7FDC5041FAB323909AC254415BCBB3267EDC50419DB9163FAAC25441CDCBA0537EDC5041C8EEC9F5A9C254417C4E36657EDC5041ABF582F0A9C25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>987365 - 127702
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000120000007B14AE177DDC504185EB51F8ABC25441333333E37EDC5041C3F5282CA9C254415C8FC2B581DC50419A999929A9C2544114AE470184DC504100000090A9C25441D7A370ED8EDC504166666676ABC25441713D0AB790DC504133333343ABC2544148E17AC490DC5041333333639CC25441F6285C4F6FDC50417B14AEE798C254411F85EBC165DC50418FC2F53898C25441C3F528BC65DC504148E17A44A5C2544185EB51A866DC5041295C8F52A6C2544148E17A046BDC504100000040ADC25441B81E852B6CDC5041C3F528BCAEC2544152B81E156EDC50415C8FC265AFC25441333333B379DC504133333353B0C2544114AE47F17ADC5041000000D0AFC25441666666D67BDC5041713D0A07AFC254417B14AE177DDC504185EB51F8ABC25441
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000007B4E36657EDC5041A9F582F0A9C25441CC169E667EDC50417559CED6A9C25441517BD9CD7EDC5041D9F85F2EA9C25441957ADCE17EDC5041E1163F2EA9C25441333333E37EDC5041C3F5282CA9C254415C8FC2B581DC50419A999929A9C2544114AE470184DC504100000090A9C254419D6F994384DC50413D54899BA9C254417955ED0C8FDC50411481E072ABC25441EA1197AF90DC5041F3960844ABC25441F5F135B790DC50417816D412ABC2544160B441B790DC5041D83BD005ABC25441392242B790DC504101A75605ABC254411859B8B790DC5041489C8082AAC254410F7B06B890DC50410802072CAAC2544142469DBA90DC5041BA70774EA7C2544129543DC290DC5041D25FFDDD9EC25441BAFFDFC390DC5041BC269E0E9DC25441847359C490DC5041BBAC32889CC2544155956AC490DC504159993C759CC25441C51175C490DC5041A889A1699CC254410F2E78C490DC5041013830669CC25441739279C490DC5041B7CBA5649CC254415C056D3C7FDC5041FAB323909AC254415FCBB3267EDC5041A0B9163FAAC25441C8CBA0537EDC5041CCEEC9F5A9C254417B4E36657EDC5041A9F582F0A9C25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>987365 - 327229
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000120000007B14AE177DDC504185EB51F8ABC25441333333E37EDC5041C3F5282CA9C254415C8FC2B581DC50419A999929A9C2544114AE470184DC504100000090A9C25441D7A370ED8EDC504166666676ABC25441713D0AB790DC504133333343ABC2544148E17AC490DC5041333333639CC25441F6285C4F6FDC50417B14AEE798C254411F85EBC165DC50418FC2F53898C25441C3F528BC65DC504148E17A44A5C2544185EB51A866DC5041295C8F52A6C2544148E17A046BDC504100000040ADC25441B81E852B6CDC5041C3F528BCAEC2544152B81E156EDC50415C8FC265AFC25441333333B379DC504133333353B0C2544114AE47F17ADC5041000000D0AFC25441666666D67BDC5041713D0A07AFC254417B14AE177DDC504185EB51F8ABC25441
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000007B4E36657EDC5041A9F582F0A9C25441CC169E667EDC50417559CED6A9C25441517BD9CD7EDC5041D9F85F2EA9C25441957ADCE17EDC5041E1163F2EA9C25441333333E37EDC5041C3F5282CA9C254415C8FC2B581DC50419A999929A9C2544114AE470184DC504100000090A9C254419D6F994384DC50413D54899BA9C254417955ED0C8FDC50411481E072ABC25441EA1197AF90DC5041F3960844ABC25441F5F135B790DC50417816D412ABC2544160B441B790DC5041D83BD005ABC25441392242B790DC504101A75605ABC254411859B8B790DC5041489C8082AAC254410F7B06B890DC50410802072CAAC2544142469DBA90DC5041BA70774EA7C2544129543DC290DC5041D25FFDDD9EC25441BAFFDFC390DC5041BC269E0E9DC25441847359C490DC5041BBAC32889CC2544155956AC490DC504159993C759CC25441C51175C490DC5041A889A1699CC254410F2E78C490DC5041013830669CC25441739279C490DC5041B7CBA5649CC254415C056D3C7FDC5041FAB323909AC254415FCBB3267EDC5041A0B9163FAAC25441C8CBA0537EDC5041CCEEC9F5A9C254417B4E36657EDC5041A9F582F0A9C25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979561 - 44638
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000016000000AE47E1EA8DA4504133333333077A54419A9999A98DA45041C3F528FC057A54415C8FC24593A4504114AE4751067A5441295C8F5292A45041C3F5281C037A54413D0AD7A386A45041C3F5285C027A544185EB517888A4504114AE47F1067A5441F6285C0F89A45041D7A370BD0A7A54419A99992989A450415C8FC2650B7A5441000000E089A450413D0AD7F30B7A5441E17A144E8BA45041CDCCCC3C0D7A544114AE47818EA450415C8FC2B5117A5441295C8F3290A45041F6285CDF157A54415C8FC29592A45041000000101A7A54416666660695A45041EC51B85E1E7A5441E17A14CE96A4504114AE47D1207A54415C8FC25597A45041B81E858B217A54417B14AEF798A4504148E17A54237A5441295C8FC29AA4504148E17AA4257A5441AE47E15A9DA4504166666666287A5441C3F528DC9CA450418FC2F5B8267A54413333338393A45041AE47E18A077A5441AE47E1EA8DA4504133333333077A5441
+</a>
+
+<b>
+0106000000010000000103000000010000000900000033BF8FFF97A4504136FB2E45227A54417B14AEF798A4504148E17A54237A544199D9279F9AA450413011CE76257A5441295C8FC29AA4504148E17AA4257A5441AE47E15A9DA4504166666666287A54411EE9C59D9BA450415AABEE92227A544100E8C59D9BA450419DA7EE92227A5441E17A14CE96A4504114AE47D1207A544133BF8FFF97A4504136FB2E45227A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979561 - 82473
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000016000000AE47E1EA8DA4504133333333077A54419A9999A98DA45041C3F528FC057A54415C8FC24593A4504114AE4751067A5441295C8F5292A45041C3F5281C037A54413D0AD7A386A45041C3F5285C027A544185EB517888A4504114AE47F1067A5441F6285C0F89A45041D7A370BD0A7A54419A99992989A450415C8FC2650B7A5441000000E089A450413D0AD7F30B7A5441E17A144E8BA45041CDCCCC3C0D7A544114AE47818EA450415C8FC2B5117A5441295C8F3290A45041F6285CDF157A54415C8FC29592A45041000000101A7A54416666660695A45041EC51B85E1E7A5441E17A14CE96A4504114AE47D1207A54415C8FC25597A45041B81E858B217A54417B14AEF798A4504148E17A54237A5441295C8FC29AA4504148E17AA4257A5441AE47E15A9DA4504166666666287A5441C3F528DC9CA450418FC2F5B8267A54413333338393A45041AE47E18A077A5441AE47E1EA8DA4504133333333077A5441
+</a>
+
+<b>
+0106000000010000000103000000010000000900000033BF8FFF97A4504136FB2E45227A54417B14AEF798A4504148E17A54237A544199D9279F9AA450413011CE76257A5441295C8FC29AA4504148E17AA4257A5441AE47E15A9DA4504166666666287A54411EE9C59D9BA450415AABEE92227A544100E8C59D9BA450419DA7EE92227A5441E17A14CE96A4504114AE47D1207A544133BF8FFF97A4504136FB2E45227A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>735324 - 3097528
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000F0000007B14AE97617C50419A999959741555410AD7A3005D7C50415C8FC2957315554100000090537C5041A4703D8A7C155541E17A149E727C50410AD7A340B1155541713D0AE7757C50418FC2F538B01555418FC2F548767C50411F85EB91AE155541713D0A97757C5041E17A14DEAA15554148E17A346F7C50411F85EB719F15554114AE47D16C7C5041C3F528BC9A15554185EB51C86C7C5041333333D3991555411F85EBA16F7C504114AE479197155541F6285C3F6D7C504114AE474192155541B81E859B697C504152B81E258A155541A4703D4A667C5041EC51B86E821555417B14AE97617C50419A99995974155541
+</a>
+
+<b>
+0106000000010000000103000000010000001700000058D6D65E6D7C504171F02354921555414A13A1D26C7C5041E77F064F911555411A762AE06B7C5041B3CECF328F155541FC00B7FD6A7C50414420463A8D1555416521B23B6A7C5041D5C8FE898B1555411F30C23C697C5041F8BAD14889155541CCA582AA687C5041CD8ED2F4871555418BFBB3A2677C50410375868F851555417E863DA9667C50417F7A934B8315554126EB8620667C5041ED7CABF181155541447CCC3D657C5041B4BFF7497F155541DBC3D7BB647C5041F56860C47D15554159CDA86B647C50410838FFD37C15554141C0C3F4637C50410ADC906F7B155541801C5678637C504115C08BFA79155541846F61C7627C5041AE280EE8771555417420E43F627C5041F711E051761555417B14AE97617C50419A99995974155541B195FFD55F7C5041232FA70E74155541CF975F615E7C504142542D0C7415554113548B996D7C50414256AB5098155541B2B5A9536F7C5041593FFA579715554158D6D65E6D7C504171F0235492155541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>735324 - 3381157
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000F0000007B14AE97617C50419A999959741555410AD7A3005D7C50415C8FC2957315554100000090537C5041A4703D8A7C155541E17A149E727C50410AD7A340B1155541713D0AE7757C50418FC2F538B01555418FC2F548767C50411F85EB91AE155541713D0A97757C5041E17A14DEAA15554148E17A346F7C50411F85EB719F15554114AE47D16C7C5041C3F528BC9A15554185EB51C86C7C5041333333D3991555411F85EBA16F7C504114AE479197155541F6285C3F6D7C504114AE474192155541B81E859B697C504152B81E258A155541A4703D4A667C5041EC51B86E821555417B14AE97617C50419A99995974155541
+</a>
+
+<b>
+0106000000010000000103000000010000001700000058D6D65E6D7C504171F02354921555414A13A1D26C7C5041E77F064F911555411A762AE06B7C5041B3CECF328F155541FC00B7FD6A7C50414420463A8D1555416521B23B6A7C5041D5C8FE898B1555411F30C23C697C5041F8BAD14889155541CCA582AA687C5041CD8ED2F4871555418BFBB3A2677C50410375868F851555417E863DA9667C50417F7A934B8315554126EB8620667C5041ED7CABF181155541447CCC3D657C5041B4BFF7497F155541DBC3D7BB647C5041F56860C47D15554159CDA86B647C50410838FFD37C15554141C0C3F4637C50410ADC906F7B155541801C5678637C504115C08BFA79155541846F61C7627C5041AE280EE8771555417420E43F627C5041F711E051761555417B14AE97617C50419A99995974155541B195FFD55F7C5041232FA70E74155541CF975F615E7C504142542D0C7415554113548B996D7C50414256AB5098155541B2B5A9536F7C5041593FFA579715554158D6D65E6D7C504171F0235492155541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>873359 - 233688
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000004E000000D47CD5904D9450417A571A1F4F2C554126A840EB4494504165DDA46E512C5541E0CFF5A836945041A646AB8A5E2C554102B25F352B94504133EE38D4692C55419DA6870B1A945041AF36901D7A2C5541EDABDDC00F945041CE049CE1832C5541D8D41C78F8935041BEBB76FC932C5541D1385A46EB9350410170EAF4A12C5541A46D9D1CDA935041DB5B2157BB2C5541546FAE3ACC935041E9712DF5C82C5541CCB8E5B0A99350419AAC197BE52C55413C7C9F55E9935041CE4C743E2E2D55414AA9769E0D9450415500C414612D5541DDD96E8B209450411D57C46C502D5541308DD3F422945041CF341F464F2D554156DC135E32945041EFE349EB472D554198E15C503B9450414585689C522D55418E9DA4613C9450414E6401E3532D554188273F562C9450412498CD185E2D5541F5DAAAA027945041C66BFD17612D55411247A6FE24945041B90FE9C4622D55418902434621945041BAAFF922652D5541E2DB07AD1F94504169256527662D55418170CD181894504160F515FA6A2D554141FA1C2C2A9450417897CD8B822D55415FBE0A903A945041BE13960B912D5541A907F9DB3B945041E3F5074B8F2D5541F0DA694B3E9450416D2B8B008C2D55410B1E112342945041554648CF862D5541EBB7C41C45945041B3B4F4C9822D5541762F9E3F479450415658F8E67F2D5541259A9B6F4A945041B1F147987B2D5541419A962C4E945041176E108B762D55414CDF2BE351945041C7107E86712D554170BA4098A2945041F82E2B13662D55418AAA6379D39450411895968F6E2D5541ABFB8FE1D394504172F849B16E2D55411626C050D8945041FD708A19682D5541569EDFB5DB94504167A6A8C0612D55411DA74B54EF945041CB9ADE38092D554133737D1DF5945041F85C7B1BF52C5541FCF4E51BF6945041CE237730F12C55413B51751EF8945041F8D1BEB1E92C554164AD0481F894504154618147E82C5541D748DAA4F8945041C7116BC4E72C5541CC7136D4F89450414CFDBCDCE62C55413C86E43BF9945041F09656D6E42C55410232F032FA945041F09E8BFEDF2C5541A148DA64FB9450411A1C42A8DA2C55419A822BE6FB9450417F71E346D92C5541AFA70A5BFD9450413D87C92FD52C5541355DB04AFD9450417770CBD3D42C55413352AF90FC9450416F856CBDD02C5541FCE33973FB94504131879177CA2C5541BC34ECBAFA945041EBBAC36AC62C5541970B4908FA9450412DE4D57DC22C55411A1C802EF99450410E4CAEB4BD2C554107CF84B3F8945041592AD800BB2C55418F675F40F7945041A0594CBFB22C55414E9B9213ED945041306EFA86792C55417849DAF4EB945041083BC733732C554184D6C12BE89450413882F5025E2C5541C8659415E194504134106AD9612C554135849DF7DF945041063C9930622C5541FFC8598EDD9450418EE06DE9622C55419B7D5428D7945041CC96AE52642C5541B98275A3BC94504113D55D765D2C554110C2AFCBB29450414B2A4B0F5F2C55410BF9D8C1B19450410D3F2ED85E2C5541C716FE22B19450418CD100BB5E2C5541FD418FDC97945041786F56D3442C5541410A24E493945041BB3E7B1A422C55416A8E47E08D945041014C7EC64C2C55410A2D6D0278945041F5F1D007602C55412E0948F95B9450412A1DAA69402C55414425BFED52945041A927DC98492C554187A0CF56509450417685A5A44B2C5541D47CD5904D9450417A571A1F4F2C5541
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000F5DAAAA027945041C66BFD17612D5541669E6944289450416892D318622D55413B6EF5702594504115121695652D554134B2D87032945041DA893D9E732D5541BE12258026945041E1F824C27D2D554141FA1C2C2A9450417897CD8B822D55415FBE0A903A945041BE13960B912D5541A907F9DB3B945041E3F5074B8F2D5541AD41E9173E945041E33124468C2D5541B876597C4094504100A5850A892D554144D0EBCC419450416309B243872D554118DE01073E94504167960C5F812D5541D437C54940945041F520BF7C7F2D554105A672C04594504148A17C007C2D55411122E5064B94504199829D32772D554135E6CE874C945041BF98AFC3782D55410432010A50945041BB65A2E6732D55414CDF2BE351945041C7107E86712D55414E8C5E6C5B94504157C3242C702D554106691D355D94504137E47BE86E2D55418B57882F5F9450418D03D6BD6C2D5541482F2FCF51945041EA6069366D2D55417376DD1252945041F378B91F6C2D55416E2B05E34E945041EDFA9C1D682D5541F6DCD7DD3E9450412C725DA2522D55418E9DA4613C9450414E6401E3532D554188273F562C9450412498CD185E2D5541F5DAAAA027945041C66BFD17612D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2905854 - 249924
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000200000001245081C167A5141B73C6F12A289544152B81EE50D7A514185EB51E89F895441AE47E17A067A5141E17A141E9F8954413D0AD7D3027A5141E17A145E9F8954413D0AD793017A51417B14AE97A1895441295C8F42017A5141F6285C6FA289544185EB51080E7A514100000030A5895441C3F5280C197A51411F85EB41A7895441713D0A071C7A51411F85EB81A7895441295C8F021F7A5141295C8F02A7895441F6285C9F277A5141D7A3705DA389544133333343397A51418FC2F548B089544152B81EE53E7A51411F85EBC1B48954419A999919467A5141EC51B89EBD8954413D0AD7D34B7A51418FC2F548C48954417B14AE17537A5141CDCCCCFCCE8954413D0AD7335A7A5141CDCCCC5CD8895441C3F5284C667A514148E17A94E889544148E17A04697A514152B81EC5E5895441E17A14EE667A5141B81E85ABE2895441AE47E15A587A514166666696CE895441CDCCCCAC4D7A514166666636BF895441B81E85EB447A51419A999909B4895441AE47E19A3F7A51410AD7A3E0AE895441E17A144E2B7A514148E17A84A0895441AE47E1BA277A5141000000C09E89544185EB5158257A51417B14AE079F895441B81E85CB227A5141713D0AC79F89544114AE47E1207A5141C3F5280CA189544114AE47911D7A5141295C8F62A289544133333353197A5141CDCCCCDCA28954411245081C167A5141B73C6F12A2895441
+</a>
+
+<b>
+010600000001000000010300000001000000720000009945D43D1A7A5141CEB93B17A789544123A117321D7A51414474CFEDA689544131216942207A51417969580EA68954411EA95430257A514196E629FCA3895441FD17D514287A5141278D97D6A2895441B7DC6AD42B7A5141E7EA468FA5895441A8AE5A3B307A5141DDFBFAE8A8895441ABCCF541307A51413579AFEDA8895441E0FACB9B307A5141B8F9312BA9895441CBF5F678317A5141CB6332CBA9895441FC7CCAB2327A51410FCFB7AAAA8954413067E51C357A51412F68CB6CAC895441DDAD3A7D397A514141E7E297AF895441F28C49533A7A51413A94BE32B0895441110A9D623A7A514170A69540B089544113A33E733A7A5141D9BF9F4CB089544115996D193F7A5141693E6382B48954415B9D621C3F7A5141E41A7385B4895441F3A6356A407A5141D39A1CDFB589544162EB0472407A5141A3C432E7B5895441C6DA85AC417A5141CC74043EB78954418923136A437A514172ECAE23B989544170CF7395467A5141453F032BBD895441C54EC36E477A514106C1F451BE8954414B6568DE497A514163EC64A0C18954413D0AD7D34B7A51418FC2F548C489544119E0D5B94D7A51419897E814C7895441F610BED54D7A5141011F053EC789544102909FC74E7A51415A5459A2C8895441617F8441517A5141C80D2D48CC8954413E932E34537A5141C1B46122CF8954414CAA8D47557A5141499807DFD1895441E8999315577A5141F6C93C40D4895441B714B728597A5141DD1394FCD68954413D0AD7335A7A5141CDCCCC5CD8895441906E88535B7A51416D188DDED9895441489DDAB1617A514130648E68E2895441B25E2615637A514114CFF344E48954416173ECC5637A5141E670FA31E589544133DC6EC5647A5141458D9388E68954419E034ED9647A5141D6A038A3E6895441EBF3B301667A5141DA69B92CE889544175F7304C667A5141D2AA8091E8895441279452E1687A5141737870E9E589544148E17A04697A514152B81EC5E5895441BA3E7D8D697A5141AA831752E5895441E65FDFDE667A51416C8BE195E1895441BE9578F0637A51418415C08CDD895441729280E1627A51419F8B0915DC89544103436559617A5141BFF9A5F6D989544120CFD1B55F7A51410FB185B7D7895441334C91355F7A51410194A503D7895441E4791A4E5D7A5141C3B08562D4895441B266A4EE5C7A5141002E12E1D3895441CA1B3F105C7A51418DD3B1AAD2895441107D14125B7A51415695C54AD18954410743D24E5A7A5141FAD26036D0895441E351D384577A51413D177B4ACC895441828B950C567A51415B32B93CCA89544116E951D1547A5141A40C2876C8895441EDA7A0F4537A51418BA7DB1FC7895441CC54634B537A514115D7702AC6895441D723FFA8527A5141B5D00041C58954412BE162A8517A514194CE15CBC3895441FA713F9A517A5141682B56B6C389544169209AFA4E7A5141064428E4BF8954418E432A1F4E7A5141EE2CBBACBE8954417895848A4D7A5141455A3BEEBD8954414441BE4C4B7A5141C9ADE80EBB8954411E005013497A514178252E34B8895441E310F675477A514136C2C61CB689544143356B69457A514129BAD187B3895441C3EC5886447A5141F7BC53A2B2895441C0194617437A514125EED645B18954412BBB58B9427A51413F0CABECB08954413AADFC3D3D7A5141F8F1F0E7AC895441C82BBF1C3A7A5141D60C06BEAA895441C146F146387A5141C7713C79A9895441CCC86F01357A5141C14B3F36A78954416E8D5F17317A514124DF7E81A48954416F38E564307A5141B6FE1B06A48954412FA3B73A2F7A5141E1AAF837A38954419C85162F2B7A5141DAD6A76CA089544109664F4F287A51415BEE76CB9E8954414D32553C257A5141C2CD37229F895441F9D30AFC227A5141DE9750E29F895441DA2725C8207A5141AF4CC10BA1895441D0E893A21D7A514133719260A289544111778E2A1B7A5141491564A3A2895441AEF8271E1B7A5141D6932CA4A289544168C1365A197A51411EC5B7C0A2895441906FBF39177A5141D5932B7DA2895441DA104B0D167A5141112BE557A289544166666606167A5141713D0A57A2895441D2F368E6147A51418CC0D7FEA18954412A657BC00D7A5141E41238D69F8954417F89D386067A5141A4A1EB249F8954416962EEAD027A51418F7995339F895441749C197F017A514157A3F3CCA18954414B958322017A51417A97C3BAA2895441C4AF1C3A047A514107870B13A389544108F0EF8C047A51419B78241BA3895441ACF7C0D1087A51411136DF9DA38954417E2C2D94097A5141FF4421B5A389544180A56DA8097A5141D8778DB7A3895441E167DDC2097A5141A4D4C0BCA3895441893F0E510E7A5141B9F62AA2A4895441E452FAA2127A5141818B2DA3A5895441F9034F50157A5141259FA53FA68954419125B85B157A514165BABA41A689544185C485E4167A51416E7E6A89A689544135093C05187A51412E1E1BBEA6895441DF185B29187A5141E1B4B2C4A68954419945D43D1A7A5141CEB93B17A7895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2905854 - 337552
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000200000001245081C167A5141B73C6F12A289544152B81EE50D7A514185EB51E89F895441AE47E17A067A5141E17A141E9F8954413D0AD7D3027A5141E17A145E9F8954413D0AD793017A51417B14AE97A1895441295C8F42017A5141F6285C6FA289544185EB51080E7A514100000030A5895441C3F5280C197A51411F85EB41A7895441713D0A071C7A51411F85EB81A7895441295C8F021F7A5141295C8F02A7895441F6285C9F277A5141D7A3705DA389544133333343397A51418FC2F548B089544152B81EE53E7A51411F85EBC1B48954419A999919467A5141EC51B89EBD8954413D0AD7D34B7A51418FC2F548C48954417B14AE17537A5141CDCCCCFCCE8954413D0AD7335A7A5141CDCCCC5CD8895441C3F5284C667A514148E17A94E889544148E17A04697A514152B81EC5E5895441E17A14EE667A5141B81E85ABE2895441AE47E15A587A514166666696CE895441CDCCCCAC4D7A514166666636BF895441B81E85EB447A51419A999909B4895441AE47E19A3F7A51410AD7A3E0AE895441E17A144E2B7A514148E17A84A0895441AE47E1BA277A5141000000C09E89544185EB5158257A51417B14AE079F895441B81E85CB227A5141713D0AC79F89544114AE47E1207A5141C3F5280CA189544114AE47911D7A5141295C8F62A289544133333353197A5141CDCCCCDCA28954411245081C167A5141B73C6F12A2895441
+</a>
+
+<b>
+010600000001000000010300000001000000720000009945D43D1A7A5141CEB93B17A789544123A117321D7A51414474CFEDA689544131216942207A51417969580EA68954411EA95430257A514196E629FCA3895441FD17D514287A5141278D97D6A2895441B7DC6AD42B7A5141E7EA468FA5895441A8AE5A3B307A5141DDFBFAE8A8895441ABCCF541307A51413579AFEDA8895441E0FACB9B307A5141B8F9312BA9895441CBF5F678317A5141CB6332CBA9895441FC7CCAB2327A51410FCFB7AAAA8954413067E51C357A51412F68CB6CAC895441DDAD3A7D397A514141E7E297AF895441F28C49533A7A51413A94BE32B0895441110A9D623A7A514170A69540B089544113A33E733A7A5141D9BF9F4CB089544115996D193F7A5141693E6382B48954415B9D621C3F7A5141E41A7385B4895441F3A6356A407A5141D39A1CDFB589544162EB0472407A5141A3C432E7B5895441C6DA85AC417A5141CC74043EB78954418923136A437A514172ECAE23B989544170CF7395467A5141453F032BBD895441C54EC36E477A514106C1F451BE8954414B6568DE497A514163EC64A0C18954413D0AD7D34B7A51418FC2F548C489544119E0D5B94D7A51419897E814C7895441F610BED54D7A5141011F053EC789544102909FC74E7A51415A5459A2C8895441617F8441517A5141C80D2D48CC8954413E932E34537A5141C1B46122CF8954414CAA8D47557A5141499807DFD1895441E8999315577A5141F6C93C40D4895441B714B728597A5141DD1394FCD68954413D0AD7335A7A5141CDCCCC5CD8895441906E88535B7A51416D188DDED9895441489DDAB1617A514130648E68E2895441B25E2615637A514114CFF344E48954416173ECC5637A5141E670FA31E589544133DC6EC5647A5141458D9388E68954419E034ED9647A5141D6A038A3E6895441EBF3B301667A5141DA69B92CE889544175F7304C667A5141D2AA8091E8895441279452E1687A5141737870E9E589544148E17A04697A514152B81EC5E5895441BA3E7D8D697A5141AA831752E5895441E65FDFDE667A51416C8BE195E1895441BE9578F0637A51418415C08CDD895441729280E1627A51419F8B0915DC89544103436559617A5141BFF9A5F6D989544120CFD1B55F7A51410FB185B7D7895441334C91355F7A51410194A503D7895441E4791A4E5D7A5141C3B08562D4895441B266A4EE5C7A5141002E12E1D3895441CA1B3F105C7A51418DD3B1AAD2895441107D14125B7A51415695C54AD18954410743D24E5A7A5141FAD26036D0895441E351D384577A51413D177B4ACC895441828B950C567A51415B32B93CCA89544116E951D1547A5141A40C2876C8895441EDA7A0F4537A51418BA7DB1FC7895441CC54634B537A514115D7702AC6895441D723FFA8527A5141B5D00041C58954412BE162A8517A514194CE15CBC3895441FA713F9A517A5141682B56B6C389544169209AFA4E7A5141064428E4BF8954418E432A1F4E7A5141EE2CBBACBE8954417895848A4D7A5141455A3BEEBD8954414441BE4C4B7A5141C9ADE80EBB8954411E005013497A514178252E34B8895441E310F675477A514136C2C61CB689544143356B69457A514129BAD187B3895441C3EC5886447A5141F7BC53A2B2895441C0194617437A514125EED645B18954412BBB58B9427A51413F0CABECB08954413AADFC3D3D7A5141F8F1F0E7AC895441C82BBF1C3A7A5141D60C06BEAA895441C146F146387A5141C7713C79A9895441CCC86F01357A5141C14B3F36A78954416E8D5F17317A514124DF7E81A48954416F38E564307A5141B6FE1B06A48954412FA3B73A2F7A5141E1AAF837A38954419C85162F2B7A5141DAD6A76CA089544109664F4F287A51415BEE76CB9E8954414D32553C257A5141C2CD37229F895441F9D30AFC227A5141DE9750E29F895441DA2725C8207A5141AF4CC10BA1895441D0E893A21D7A514133719260A289544111778E2A1B7A5141491564A3A2895441AEF8271E1B7A5141D6932CA4A289544168C1365A197A51411EC5B7C0A2895441906FBF39177A5141D5932B7DA2895441DA104B0D167A5141112BE557A289544166666606167A5141713D0A57A2895441D2F368E6147A51418CC0D7FEA18954412A657BC00D7A5141E41238D69F8954417F89D386067A5141A4A1EB249F8954416962EEAD027A51418F7995339F895441749C197F017A514157A3F3CCA18954414B958322017A51417A97C3BAA2895441C4AF1C3A047A514107870B13A389544108F0EF8C047A51419B78241BA3895441ACF7C0D1087A51411136DF9DA38954417E2C2D94097A5141FF4421B5A389544180A56DA8097A5141D8778DB7A3895441E167DDC2097A5141A4D4C0BCA3895441893F0E510E7A5141B9F62AA2A4895441E452FAA2127A5141818B2DA3A5895441F9034F50157A5141259FA53FA68954419125B85B157A514165BABA41A689544185C485E4167A51416E7E6A89A689544135093C05187A51412E1E1BBEA6895441DF185B29187A5141E1B4B2C4A68954419945D43D1A7A5141CEB93B17A7895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>3170132 - 1132600
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000050000003201000033333303CC4251410AD7A310FC295441F6285C0FC642514114AE47D1F72954417B14AE37C34251417B14AE07F6295441000000D0C04251417B14AEF7F5295441E17A148EBF4251418FC2F538F6295441C3F5285CBD425141666666C6F62954415C8FC215B9425141F6285C0FFF2954419A999949B042514148E17A24FE295441713D0AE7AE425141EC51B8BE102A54415C8FC215B8425141333333C31A2A5441333333F3B542514185EB5138212A544133333303B4425141C3F528AC272A5441666666D6B5425141713D0A57292A5441AE47E18AB6425141333333332A2A54417B14AEF7B74251411F85EB812A2A5441E17A141EBA42514148E17A24252A544114AE4761BC4251413D0AD7831F2A5441EC51B85EBE425141000000601E2A5441B81E859BBF425141F6285C4F1E2A5441F6285C5FC0425141F6285C8F1E2A544133333343C14251411F85EBF11E2A54419A9999C9C1425141295C8F721D2A5441AE47E10AC3425141333333F31A2A54413D0AD783C7425141E17A149E1A2A54417B14AE67DC42514152B81E75062A54410AD7A3A0EE425141A4703D6AF8295441E17A142E1E4351419A999989CF295441666666B60943514100000060B92954419A999929FE42514100000000B8295441EC51B8CEF7425141713D0A27B3295441F6285C2FF94251410AD7A340AE2954411F85EB51F7425141295C8F62AC29544100000000F442514114AE47A1AD295441F6285C0FF0425141A4703D1AAA295441D7A370BDEC4251411F85EB01AD295441E17A14FEE24251417B14AED7A229544114AE47E1DF42514114AE47C19A295441AE47E10ACE425141C3F5283C8C295441AE47E17AC4425141000000908029544148E17A74B2425141A4703DEA75295441AE47E1BAB242514185EB51D871295441A4703D8AB34251417B14AE076E295441C3F5281C9B425141F6285CAF62295441C3F5286C96425141333333B35E2954413D0AD7D397425141D7A3703D5C29544166666616844251419A9999D9412954415C8FC265834251411F85EB4141295441E17A14FE824251417B14AED73F295441E17A146E82425141333333A33D295441CDCCCC3C8242514185EB51B83B295441A4703D9A8242514114AE47F13A295441C3F528DC82425141B81E854B3A2954411F85EB61834251410AD7A36039295441713D0A578442514148E17A8438295441295C8F1287425141000000503729544114AE4781884251411F85EB7136295441AE47E1DA894251413D0AD7733529544148E17A948B4251415C8FC2A5342954417B14AEA78C425141AE47E1FA33295441EC51B88E8D4251413D0AD773322954410AD7A3B08E425141F6285C1F312954411F85EB718F42514148E17A2430295441B81E85BB8F42514152B81EC52E2954411F85EB0190425141295C8F522D295441F6285C7F90425141A4703D9A2C2954417B14AE7791425141713D0A072C295441713D0A7792425141000000402B295441713D0AE7924251415C8FC2452A295441B81E85BB924251419A99990929295441EC51B80E92425141EC51B82E27295441AE47E1CA90425141E17A147E232954413D0AD7A38F425141D7A3703D21295441B81E85EB8E4251419A9999B92029544148E17A548E4251419A99995920295441333333538C425141713D0A172029544152B81E9589425141A4703DAA1F2954415C8FC2458942514152B81EF51E2954410000007088425141295C8F221C295441295C8F62884251418FC2F5D81A29544185EB51E887425141C3F528FC192954419A999969864251417B14AE2719295441B81E853B854251417B14AE37172954411F85EB81844251413333331316295441713D0A57844251419A9999C91829544148E17A04834251411F85EBC11929544185EB51A8824251415C8FC2F51A295441EC51B8BE81425141B81E850B1C29544100000060754251418FC2F598232954415C8FC2E567425141713D0AE716295441CDCCCC0C5B425141EC51B8AE112954413D0AD7D35A42514114AE472113295441666666C65942514148E17A34172954418FC2F52859425141D7A3708D1929544185EB51B8584251419A9999491B29544185EB515858425141000000601F295441B81E85BB57425141CDCCCCDC202954410000009057425141E17A14EE222954410AD7A310564251413D0AD77327295441333333835542514185EB51B827295441A4703DFA544251410AD7A35028295441295C8F9254425141C3F528BC29295441AE47E13A544251413D0AD7532A2954411F85EBD1534251415C8FC2752A2954415C8FC2E5524251417B14AE972F2954415C8FC235524251410AD7A3B033295441CDCCCCDC514251410AD7A3D03429544114AE471151425141B81E85DB34295441666666564B425141AE47E1AA3C2954411F85EBD14B425141295C8F62422954417B14AE574C425141AE47E1CA45295441333333B34C4251415C8FC2154729544148E17A2450425141CDCCCC5C462954413D0AD7E351425141000000D046295441CDCCCCDC53425141C3F528AC482954413D0AD7C3544251413D0AD7234A2954415C8FC24555425141E17A140E4C29544148E17A54554251418FC2F5F84D295441CDCCCC9C5542514148E17A04512954417B14AEC75542514148E17A5453295441CDCCCC2C564251418FC2F5785529544185EB51E8564251417B14AEA756295441713D0A8757425141713D0AD7572954410000006058425141295C8F925829544185EB5138594251415C8FC27558295441666666B65842514100000080572954410AD7A330574251415C8FC2955529544185EB51E856425141333333F3532954410AD7A3305742514114AE472151295441F6285CCF57425141713D0AE74C295441F6285CCF57425141D7A3700D482954411F85EBE1584251419A999999432954417B14AEA758425141B81E85CB412954415C8FC29557425141B81E857B3F295441A4703D8A5442514185EB51B83C295441EC51B8CE53425141CDCCCC6C3B29544114AE47915242514152B81EF5392954417B14AE97504251413D0AD7B337295441B81E850B514251410AD7A34037295441E17A143E5342514133333373392954417B14AE37554251413D0AD7533C29544114AE47515842514185EB51083F2954419A99992959425141F6285C7F4029544152B81EE5594251413D0AD7A3422954419A999929594251415C8FC2054629544148E17AC45842514114AE471149295441666666B65842514152B81EF54C29544148E17A34584251413333331351295441AE47E1FA5742514114AE477153295441295C8F42584251411F85EB21552954410AD7A38059425141666666B65629544148E17A845A4251411F85EB7157295441000000D05B425141CDCCCC9C5729544114AE47815D425141CDCCCC9C57295441D7A3705D5F425141EC51B81E58295441CDCCCC1C614251415C8FC205592954413D0AD79362425141EC51B8DE59295441713D0A57654251410AD7A3605A2954419A9999F966425141F6285CFF5A295441713D0AF769425141000000B05C295441A4703DBA6C4251418FC2F5185E295441AE47E16A6E4251419A9999395F295441C3F5281C70425141B81E854B60295441CDCCCCCC71425141295C8FA26029544114AE47F173425141D7A370CD602954410AD7A3B075425141F6285CBF60295441B81E850B774251417B14AE475F2954410AD7A34078425141AE47E16A602954415C8FC2A57A425141D7A3707D62295441E17A144E78425141F6285C3F6429544100000060754251418FC2F518622954417B14AEE76F425141F6285C1F612954415C8FC2056E425141B81E85BB5F295441666666466C425141E17A147E5E295441B81E85CB6942514185EB51885D295441C3F5289C68425141000000B05C295441B81E85EB66425141C3F528AC5B295441713D0A5765425141C3F5281C5B295441CDCCCC6C6342514152B81EC55A29544185EB51D861425141333333435A295441CDCCCCCC5E425141295C8F92582954410AD7A3F05C425141D7A3702D58295441333333035E425141CDCCCC5C59295441A4703DEA5E4251418FC2F5385B2954411F85EB315F425141D7A3705D5D295441A4703DBA5F42514152B81ED55E29544152B81E4560425141D7A3700D612954411F85EBF160425141CDCCCCCC61295441B81E851B63425141AE47E15A642954415C8FC2F5634251410AD7A32066295441C3F5287C644251415C8FC2E567295441CDCCCC8C64425141C3F528CC6929544185EB512864425141C3F5287C6C295441333333C36342514114AE47916F29544148E17AD46342514152B81E9572295441CDCCCC8C64425141B81E851B772954413D0AD77362425141666666067C2954413D0AD7C35F425141295C8F627E295441F6285C0F5E425141295C8F1281295441B81E85BB5D425141666666B682295441295C8F525E42514185EB5138842954411F85EBA15F4251410AD7A3F0842954413D0AD77362425141000000E08429544152B81E5564425141E17A149E852954410AD7A390654251415C8FC2158629544185EB515867425141333333C386295441C3F5287C68425141C3F5283C87295441A4703D5A6842514114AE470189295441F6285C1F6A425141000000408A295441CDCCCC8C6C425141B81E852B8B295441713D0AC76A42514148E17A448D29544114AE47F168425141295C8F728E295441CDCCCC3C674251413D0AD7938E29544185EB51D8624251417B14AE378C2954417B14AE1760425141C3F5283C87295441666666A65E4251417B14AE878529544152B81E355D42514185EB5138842954410AD7A3D05C42514152B81EA5822954411F85EBF15C4251413333332381295441295C8F525E425141295C8F627E295441000000D0604251417B14AE277C2954410AD7A33062425141666666B67A295441F6285C6F63425141C3F5282C772954410AD7A38063425141AE47E1BA7529544185EB51D8624251413D0AD773722954418FC2F5E862425141EC51B85E6F2954411F85EBA163425141333333636A295441295C8FB263425141295C8FA2672954413D0AD7736242514148E17A2465295441C3F5287C604251415C8FC2956229544148E17AC45F425141713D0A67612954417B14AE875E425141C3F5285C5F29544152B81E855E4251410AD7A3D05D295441CDCCCC3C5E4251413D0AD7635B2954415C8FC2555D42514114AE47C159295441EC51B8DE5B425141F6285CAF582954413D0AD7F35942514114AE473159295441EC51B8FE584251416666669659295441713D0A87574251417B14AEF75829544114AE47015642514114AE47E1562954413D0AD7C354425141E17A148E53295441EC51B85E54425141EC51B87E4F2954410AD7A35054425141333333E34B295441AE47E1CA524251413333330349295441CDCCCC6C5042514185EB511847295441A4703D5A4F42514185EB5118472954413D0AD7F34C42514114AE4701482954418FC2F5084E425141E17A14DE4A2954410AD7A3904E425141D7A370CD4C29544152B81EA54E42514148E17A744F295441333333734E4251410AD7A3D051295441AE47E12A4D425141E17A14DE532954411F85EBC14A425141666666A655295441E17A147E47425141333333735729544114AE47114542514152B81E9558295441E17A141E43425141EC51B81E5F2954410AD7A3F043425141000000C060295441A4703DCA44425141E17A14BE61295441666666D6454251418FC2F56862295441000000E046425141713D0AC76229544152B81E6547425141F6285CDF63295441E17A14AE47425141CDCCCC4C6529544152B81E4548425141713D0AD766295441CDCCCCFC474251411F85EBD168295441F6285C6F4642514185EB51F867295441EC51B8AE45425141B81E85DB672954415C8FC215444251417B14AE87662954415C8FC205434251415C8FC205662954415C8FC2E541425141AE47E10A662954410AD7A3303F425141AE47E11A672954418FC2F5E83D425141EC51B8FE67295441D7A3703D3C425141E17A148E69295441A4703DEA3A4251413D0AD7736B29544166666676394251415C8FC2956E2954418FC2F5F837425141C3F5285C72295441EC51B82E374251418FC2F528752954413D0AD7A338425141CDCCCC9C76295441C3F528CC38425141295C8F42782954411F85EBC13842514152B81EA57929544114AE4741384251410AD7A3007B295441D7A3708D374251410AD7A3607C295441E17A14EE35425141EC51B85E7D295441666666F63442514152B81E057E29544148E17A4434425141F6285C8F7E295441EC51B89E334251410AD7A3607F295441666666463342514185EB51188029544100000040334251410AD7A330812954417B14AE073342514148E17A74842954410AD7A36032425141CDCCCC0C8829544148E17AE4314251417B14AEA78A29544152B81E65314251417B14AE278F2954419A999919324251411F85EBA1902954419A9999A93242514185EB51589229544148E17A143342514185EB515894295441CDCCCC3C33425141295C8FC29529544148E17AB433425141F6285CFF96295441F6285C3F34425141295C8F9298295441EC51B8DE344251410AD7A36099295441713D0A0733425141295C8FD29B295441A4703D4A314251418FC2F5989D295441A4703DCA2F4251418FC2F5589D2954417CAC924ED542514145AAC115DF295441A4703D0AD642514185EB5128EE29544148E17A94D74251418FC2F5B8F1295441F6285C7FD3425141C3F5280CF5295441E17A146ECE42514152B81E25FC29544133333303CC4251410AD7A310FC29544107000000436E72E2AE425141C55EEF9682295441467A5920B2425141D42500DA7D2954418A23DD9ABA425141D42500DA7D2954416C95BB14C4425141C55EEF9682295441EAC30D50CB4251416B3F18128A2954418A23DD9ABA425141C4C77A4B94295441436E72E2AE425141C55EEF96822954410700000028E9B2F035425141FD4C490C932954415B864F2D3B42514134DB6A928929544119523EA54742514161309D5B7B29544176E6871C554251416E60395388295441AC5F6F9F5042514151D217CD912954417A5947AE39425141A22D72879A29544128E9B2F035425141FD4C490C9329544109000000AA773D1B574251416DA43D053B295441C66EEA555F425141E85D1D4E2D295441E265979067425141437DF4D225295441A13186087442514192E1A152262954411B54F10578425141F281D20737295441088A4C4A714251412AD145843C295441EC929F0F69425141F3575E01412954413A7987D75C42514100B26EFF43295441AA773D1B574251416DA43D053B29544108000000526DA099594251414125973553295441FEE7D1D85A4251411F9D34FC48295441A63D6D46774251411B914DBE452954412060D8437B42514129C1E9B5522954416AC1F14A70425141A66823745529544138EB655166425141208B8E71592954410615DA575C42514145317E7356295441526DA099594251414125973553295441
+</a>
+
+<b>
+01060000000100000001030000000500000064010000C7E5834C9D425141910F95B3632954411B1561EFA6425141DF172A2D68295441A4703D8AB34251417B14AE076E295441C4E7B78FB6425141ED28C63B71295441105C15FFB94251415B4E79AE712954413617953CBC4251410ED879336D2954413515F330BB4251417AF746836A295441ECA81DF0BB4251410ACCADED66295441EFB0A51EC042514176EB7A3D64295441F2B82D4DC4425141BB4D26445E2954415FDA9CA8C24251412363C95956295441D413A48FCD4251418D7E529251295441B770BCDDD74251411D555B084F29544100DD911ED74251418870E4404A2954413F2F2DC8C8425141876E42354929544161E082CBC5425141153F658843295441713D0AE7C1425141333333A34029544100000030C2425141D7A3705D40295441713D0AC7BB4251416666664630295441EC51B89EBB425141D7A370AD2C295441AE47E11ABF425141D7A3706D262954411F85EBD1C3425141D7A3706D262954413D0AD7A3C642514148E17A6429295441713D0A37C742514152B81E752D2954411F85EBC1CD4251413D0AD7F32D295441CDCCCC9CD742514148E17A442A29544114AE4791EF4251413D0AD72331295441EC51B8CEFE4251417B14AEA73229544166666656FF425141AE47E15A2B295441666666960043514185EB51D8202954417B14AEC700435141713D0A771F29544185EB5128E3425141000000E01B295441CDCCCCBCDF425141713D0A871A295441713D0A07DC425141B81E857B17295441C3F5282CD74251413D0AD7D314295441A4703D1AD2425141295C8F3213295441CDCCCCCCCE425141000000F012295441EC51B8DEC742514148E17A441129544185EB5128C5425141666666B60F2954419A9999F9C342514114AE47410C2954417B14AEE7BE4251411F85EBF108295441713D0A37BD425141666666C608295441E17A14CEB9425141D7A370FD032954415C8FC295B6425141D7A370EDFA28544148E17A24B9425141D7A370ADFB28544148E17A74BE42514114AE4781FE285441AE47E11AC342514114AE47D1FF2854419A9999A9C5425141AE47E1CA00295441EC51B86EC642514152B81ED5FF2854411F85EB71C6425141713D0A07FE2854413D0AD723CB4251419A9999190329544114AE4701CC425141C3F5286C072954419A999949CC4251413D0AD7930C2954417B14AE07CF4251418FC2F5B80E295441B81E851BD64251410AD7A3300F295441CDCCCC4CE2425141B81E850B142954418FC2F578E74251411F85EBF113295441CDCCCCECEE425141713D0A7715295441AE47E1CAF44251419A9999B90D295441666666F6EC4251417B14AE17072954411F85EBC1EC4251415C8FC27506295441295C8F52ED4251411F85EBE105295441295C8FB2EF425141295C8F82062954419A999989F6425141B81E854B0B29544185EB51E8FC425141295C8F02032954415C8FC215E74251415C8FC235F728544185EB5168CC4251410AD7A340E728544152B81E45CF425141EC51B89EDF28544114AE4781CF4251413D0AD7A3DB2854417B14AEC7D342514148E17A84D82854419A9999A9D6425141E17A142ED9285441C3F5282CDB42514100000060D6285441295C8FD2E242514133333353DA285441000000B0E8425141000000B0D8285441F6285CDFF7425141666666C6DD285441AE47E15AFA425141713D0A17E3285441F6285CCFFC425141295C8F52E42854417B14AE37164351418FC2F558E5285441295C8FD2184351410AD7A320DE2854411F85EB611B435141A4703D4AD928544148E17A341C435141B81E856BD72854418FC2F5381D435141666666A6D42854410AD7A3001E435141666666C6D22854415C8FC255204351410AD7A350CE2854419A9999292143514148E17AA4CC285441AE47E1EA21435141B81E855BCA28544185EB511822435141AE47E17AC82854419A9999591743514148E17AE4C4285441A4703DFA0F435141713D0AE7C4285441EC51B8FE0643514152B81ED5C12854417B14AEB70243514114AE4701BE285441B81E857BE8425141F6285C3FB528544185EB51D8B0425141EC51B81E98285441CDCCCCEC9C4251417B14AE57AA28544114AE47F190425141D7A3704DB5285441D7A370BD814251415C8FC235C3285441E17A147E804251419A999959C42854413333333382425141EC51B8EEC9285441B81E857B81425141C3F5283CCD2854418FC2F518804251418FC2F578CE2854411F85EBA17E4251411F85EB61CE28544114AE47717C425141EC51B80EC8285441C3F5286C77425141666666A6CC285441CDCCCCBC62425141295C8F92DF285441B81E852B6A42514152B81EB5E9285441B81E85EB794251410AD7A330FF2854415C8FC2457B42514100000040002954418FC2F5887F425141713D0A97032954415C8FC2E580425141B81E85EB032954418FC2F50882425141333333A30329544148E17A248442514185EB511802295441C3F5285C88425141E17A148EFD285441AE47E19A8E425141EC51B89EF928544152B81E7592425141A4703D0AF8285441295C8F2295425141A4703D0AF82854413D0AD75399425141F6285C9FF928544185EB51C89B425141E17A148EF9285441000000609D42514148E17AE4F82854410AD7A3809E425141333333C3F7285441F6285C7F9F425141A4703DEAF328544148E17AD49F425141A4703D9AEF2854413D0AD7E3A0425141713D0A37ED285441EC51B8BEA3425141F6285C5FE8285441C3F528ACA44251417B14AEB7E528544152B81E45A5425141295C8F92DA285441713D0A57A4425141EC51B83ED9285441A4703DCAA642514152B81E15D62854417B14AED7AA425141F6285CDFD328544114AE47A1AD42514152B81E35D3285441000000E0B14251410AD7A3E0D2285441295C8F32B4425141C3F528ACD32854415C8FC2A5B74251419A9999A9D528544100000080BA4251415C8FC265D528544148E17AE4BB42514133333363D72854419A999939BC4251410AD7A360D9285441295C8FD2BC4251419A9999F9D9285441C3F5287CBD4251417B14AED7D9285441CDCCCCACBF425141F6285C2FD82854415C8FC245C0425141E17A140ED7285441CDCCCCECC2425141EC51B86ECE285441A4703DEAC24251410AD7A370C9285441EC51B80EC34251417B14AE97C8285441713D0A97C342514152B81E55C7285441713D0AE7C7425141C3F5286CC2285441D7A3706DC94251417B14AEF7BF285441000000B0CA42514133333353BB2854417B14AE37CB425141B81E856BB5285441333333E3CA42514114AE47C1B428544185EB5128CA42514166666616B52854410AD7A390C8425141F6285CBFB62854411F85EB81C64251417B14AE77B9285441295C8F72C542514114AE4721BA2854410AD7A340C442514152B81E65BA2854415C8FC245C04251417B14AE77B92854411F85EBB1BB425141295C8F12B8285441EC51B86EBA425141295C8F12B8285441A4703D0AB94251418FC2F578B8285441C3F528DCB4425141E17A14FEBA285441713D0A07AE425141295C8FB2C028544185EB5108AD425141AE47E13AC128544185EB51F8AB425141B81E854BC12854418FC2F5E8AA4251413D0AD7C3C0285441295C8F82AA42514114AE4781BF285441713D0AC7AA425141AE47E1DABB285441CDCCCC1CAA4251410AD7A300B92854411F85EB71AA4251418FC2F568B72854415C8FC2C5AB425141A4703D5AB5285441295C8FA2AC425141D7A3707DB4285441000000A0AE425141C3F5284CB3285441F6285CAFAF425141A4703D1AB2285441C3F5288CB0425141666666C6B0285441E17A14BEB1425141713D0A97AD28544148E17A44B34251417B14AE77AB285441EC51B8BEB6425141A4703DEAA82854415C8FC2A5B7425141EC51B84EA728544185EB5188B84251415C8FC2E5A028544100000090B642514185EB51A8A0285441295C8FE2B6425141C3F5285C9D285441AE47E12AB9425141F6285C7F9D28544114AE4741B9425141666666D6A02854410AD7A360B8425141CDCCCC7CA72854411F85EB61B7425141713D0A47A928544114AE4731B5425141295C8F22AB285441D7A370DDB3425141295C8F32AC285441AE47E19AB2425141E17A140EAE2854418FC2F568B1425141B81E851BB1285441E17A14AEB0425141F6285C6FB2285441D7A3708DAF425141295C8FC2B3285441D7A3705DAD42514148E17AF4B4285441666666D6AB425141CDCCCC9CB6285441D7A3703DAB425141B81E859BB7285441AE47E10AAB425141B81E85ABB8285441295C8F92AB4251419A9999C9BB285441D7A3703DAB425141CDCCCC3CBF2854413D0AD7A3AB4251417B14AEF7BF285441EC51B85EAC425141EC51B86EC0285441D7A3705DAD425141AE47E12AC02854413D0AD7F3AF425141A4703DFABD28544148E17A94B7425141295C8F12B82854418FC2F508BA4251413D0AD713B7285441295C8FC2BB42514152B81E25B728544166666676C242514166666666B928544148E17A84C4425141A4703DAAB9285441295C8F72C542514152B81E55B928544152B81EB5C64251411F85EB01B82854419A999919C8425141000000C0B5285441713D0A17CA42514148E17AE4B3285441713D0A27CB425141295C8FC2B328544152B81E15CC425141B81E855BB4285441AE47E17ACC42514152B81E15B6285441C3F5287CCB4251417B14AEA7BB28544185EB5128CA425141CDCCCC4CC02854411F85EBA1C842514114AE47C1C22854419A999959C4425141C3F5282CC82854419A9999C9C3425141D7A3700DCA28544148E17AF4C342514185EB5198CE28544133333323C1425141B81E850BD8285441295C8FB2BF425141C3F528CCD92854411F85EBA1BD425141C3F528CCDA2854410AD7A3D0B8425141CDCCCC1CDD28544100000000B7425141D7A370DDDE285441000000C0B6425141E17A142EE028544100000040B7425141EC51B80EE328544114AE47D1BB42514133333393EF28544114AE47B1BB4251413D0AD763F128544114AE4701BB42514148E17A34F32854410AD7A3E0B942514152B81EA5F42854410AD7A370B842514152B81EA5F5285441CDCCCC0CB44251417B14AE87F72854411F85EB11B342514166666646F8285441A4703D6AB24251418FC2F548F92854417B14AE07B2425141E17A14BEFA28544100000000B2425141333333D3FD285441295C8F92B142514185EB51E80429544133333303B34251419A9999C90529544114AE47D1B24251415C8FC26507295441B81E85ABB24251418FC2F57808295441713D0A67B1425141C3F5286C08295441A4703D5AB1425141333333730C295441EC51B8BEB2425141C3F5281C11295441666666F6B242514185EB514813295441CDCCCCFCB34251410AD7A310172954417B14AED7B3425141333333431B295441EC51B82EB3425141AE47E1BA20295441EC51B82EB342514114AE47C12229544114AE4761B44251416666669626295441295C8FB2B54251419A999919292954417B14AED7B54251411F85EBE129295441EC51B8BEB54251417B14AE772A29544185EB5148B542514114AE47712B295441EC51B82EB442514114AE47912C295441D7A3706DB2425141295C8F522E295441E17A147EAF425141AE47E10A33295441666666D6AD425141A4703D5A3529544152B81EF5AB425141CDCCCC2C3929544100000070AB42514148E17A543A295441713D0A47AB425141C3F5283C3B295441CDCCCC4CAB4251415C8FC2453D295441EC51B81EAB425141713D0AC73E2954411F85EB91AA425141295C8F4241295441B81E85CBA9425141A4703D8A43295441AE47E14AA8425141713D0AF7462954418FC2F5F8A74251415C8FC20549295441AE47E12AA84251411F85EB614D29544166666616A84251411F85EBD14E29544148E17AC4A7425141B81E85DB4F2954418FC2F568A6425141C3F5282C52295441AE47E14AA5425141295C8FE25429544152B81EE5A44251417B14AE4757295441E17A140EA44251413333332357295441295C8F82A44251410AD7A3B05429544148E17AA4A54251415C8FC2D551295441F6285C0FA742514148E17AA44F2954415C8FC265A7425141666666B64E2954413D0AD783A7425141333333434D29544166666636A742514152B81EF54829544114AE4761A74251415C8FC2E546295441666666E6A8425141295C8F92432954413D0AD7D3A9425141EC51B80E412954415C8FC265AA425141CDCCCCAC3E295441B81E858BAA425141F6285C2F3D295441EC51B87EAA425141000000103B295441713D0AB7AA425141666666163A295441A4703D3AAD42514148E17A34352954418FC2F508AF425141D7A370BD32295441A4703DEAB1425141B81E85FB2D29544100000080B2425141333333332D29544148E17A54B4425141E17A147E2B29544114AE47D1B44251418FC2F5C82A295441C3F5281CB5425141713D0A072A29544100000010B54251415C8FC24529295441AE47E1CAB34251418FC2F538272954419A999909B3425141A4703D6A25295441E17A144EB24251419A9999F922295441EC51B82EB24251413D0AD7D32129544152B81E35B2425141E17A143E2029544114AE47D1B2425141D7A3703D1B2954417B14AED7B2425141E17A14FE1629544133333303B2425141666666A613295441713D0A67B1425141000000A01229544133333373AF4251413D0AD77312295441CDCCCC6CAF425141713D0AF70F2954413D0AD753AF42514148E17AC40E2954415C8FC235AE425141C3F5284C0B295441AE47E15AA6425141C3F528BC0D2954415C8FC255A3425141F6285CDF032954410AD7A330AD4251415C8FC2D500295441295C8F02AF425141AE47E1BA06295441AE47E1EAAF42514114AE472106295441F6285C2FB0425141713D0A17052954417B14AEC7B0425141B81E854B0229544148E17A04B14251417B14AE67F928544148E17AA4B14251417B14AE27F8285441F6285C9FB2425141E17A140EF72854410AD7A370B74251413D0AD7C3F42854410AD7A370B942514148E17A74F328544114AE4771BA4251413D0AD7B3F128544114AE47C1BA42514133333313F0285441000000C0B7425141000000E0E6285441000000F0B6425141000000C0E5285441EC51B89EB4425141F6285C0FE4285441E17A14DEB1425141F6285C3FE3285441C3F528DCAC425141EC51B83EE2285441B81E85ABAA425141EC51B85EE2285441A4703D0AA7425141F6285C3FE4285441A4703DFAA542514100000020E62854419A999949A54251410AD7A3A0E82854418FC2F508A2425141295C8FB2ED28544185EB5108A1425141333333D3EF28544185EB51E8A042514148E17AF4F32854417B14AE479F42514166666676F92854417B14AE579E425141713D0A77FA285441713D0A479C425141713D0AF7FA2854415C8FC21599425141713D0AD7FA28544152B81EC594425141295C8F22F928544148E17A949242514114AE4741F9285441000000608F42514133333383FA285441295C8F0289425141CDCCCC7CFE28544152B81ED5844251410AD7A33003295441333333B3814251418FC2F54805295441CDCCCC2C8C425141D7A3707D0D295441A4703D9A95425141000000E014295441AE47E1AA984251416666664617295441D7A370CD9942514185EB51082A29544166666616844251419A9999D94129544171EAE5D197425141B40CD7405C295441B52D748896425141CAE640CB5E295441128EFA989A4251412BFB344162295441ABAD5D3E98425141FBB9FB845D29544101E18F649E425141373710B65B29544155ACC07B9F425141201916C25C295441A877F192A042514174E446D95D295441BE95EB869F4251410AECD1CF5F2954416549102C9D4251416CE9D83163295441CFA349ED9C42514136092F8463295441C7E5834C9D425141910F95B36329544126000000C3F5281C7B425141EC51B8BEFB285441C3F5281C7B425141EC51B84EFA285441EC51B89E7A42514152B81E75F9285441AE47E1CA774251410AD7A380F828544152B81E2576425141AE47E1DAF728544148E17A6475425141000000E0F6285441666666D674425141713D0A07F1285441D7A3708D72425141000000D0EC2854413D0AD7936F425141A4703D1AEA285441D7A370DD6E42514100000080E728544148E17AA46F42514133333373E4285441CDCCCC5C70425141CDCCCC2CE3285441713D0A077242514148E17AB4E12854410AD7A320724251413D0AD7F3E028544152B81EF56E425141295C8F12DB285441CDCCCC5C7042514148E17AA4D7285441CDCCCC1C714251417B14AE37D72854411F85EB4172425141E17A140ED7285441C3F528EC73425141CDCCCC3CD62854411F85EB017842514152B81E45D1285441295C8FF27A425141B81E85FBD3285441AE47E18A79425141A4703D7AD7285441333333B37942514185EB51D8D82854419A9999297A4251413D0AD7C3D92854413333336372425141A4703DAAE32854415C8FC275704251418FC2F528E7285441666666867042514133333383E92854413D0AD72373425141295C8F52EC2854417B14AEA775425141D7A370DDF0285441CDCCCC1C7642514100000020F62854413D0AD7C376425141A4703D0AF7285441CDCCCC6C7A42514100000050F82854410AD7A3807B425141A4703D3AF9285441C3F528CC7B42514152B81E35FA285441C3F528CC7B425141F6285CCFFB28544114AE47D17A42514152B81E85FE28544114AE47217A425141AE47E14AFE285441C3F5281C7B425141EC51B8BEFB2854410500000085EB51A8C1425141E17A144EDD285441C3F5280CC1425141AE47E16ADF285441B81E85CBBF425141AE47E10ADF285441C3F5286CC0425141713D0AF7DC28544185EB51A8C1425141E17A144EDD2854410A00000048E17AE4A8425141295C8F82232954410AD7A380A64251413D0AD71328295441F6285C7FA242514148E17A142A2954410AD7A300A04251410AD7A39026295441666666F69B425141EC51B8EE25295441C3F528BC9C4251413D0AD7C31E295441C3F528ACA24251419A9999691C29544166666676AF42514148E17A74222954418FC2F5D8AD42514152B81E052529544148E17AE4A8425141295C8F82232954410A0000000AD7A3D09C42514166666676E3285441AE47E18A9B425141713D0AA7E4285441D7A370BD9842514185EB5158E328544152B81E258A4251413D0AD7F3D42854417B14AE17894251413D0AD743D328544185EB5198894251419A999979D2285441C3F528AC8B42514152B81EF5D2285441B81E859B934251413D0AD763D8285441AE47E18A9B425141D7A3705DE02854410AD7A3D09C42514166666676E3285441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>974276 - 974251
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000021000000310BED16EE8E50416A98EB27CB2754413421B78AF28E5041BD94F469CA27544119C42C32F58E5041F14EB6F8C927544125AC9104F98E50413AD25345C9275441CC908FB3F98E504174B4EA75C6275441D34216A7F68E50415E12E22CC3275441EF074A5AF18E5041E87813AFBE275441A5DC1014F08E50412841B99EBD27544144602762EA8E504182BCB80BBA275441D6B8295FE38E5041C8493C38B52754415B3067F9DE8E5041CBEE0FA4B52754419F40D4CDDC8E5041FF4D1E28C727544122DBE0C3D78E5041E806F736C92754416C00DD80A68E5041A037937CC82754417988AFD3928E50419BF70923C8275441353F2128968E504172830419D3275441ECECF72DA58E50415E8B1051D0275441F3616C8CA78E5041C50906E2CF275441AF8E6DA6AE8E504113D324FBCF275441A6B56BA4C28E5041CA0F6242D0275441BF835D54CF8E50410FA6976FD02754411C9712DBD08E5041DFE00775D02754418FBF9B63CE8E5041E34BEE75C92754411532FA90CF8E50413D05A77FC92754413DB260B8D18E504142144027D0275441628B3694D68E50410E030A13CF27544124897503E28E5041112E2A2BCD275441281F4A53E58E50411415DC9DCC2754413CD0162FE88E504141A2E423CC275441A57C920AEB8E50412AB0FAA9CB2754415DFAF866EC8E50413A9BE96FCB2754419A16082CED8E504133C1114FCB275441310BED16EE8E50416A98EB27CB275441
+</a>
+
+<b>
+01060000000100000001030000000100000035000000DA53960BD38E50410587CEA9D3275441295C8FC2D38E5041AE47E13AD5275441CDCCCC3CD78E504185EB5158D4275441F6285CFFDE8E504148E17AE4D227544114AE4731E08E50415C8FC2A5D22754413D0AD7B3E58E504152B81E85D127544100000000F18E504185EB5138D12754418FC2F508F88E504114AE4791D0275441E17A143EF98E5041CDCCCC4CD02754419A9999A9F58E5041B81E852BCD275441EE660D4BF58E504178DE90F4C9275441254DB8D1D48E50416F0D1F5ECF27544140B260B8D18E504140144027D027544185EB5108D28E504166666636D127544100000030D58E504166666676D02754419A999979D58E5041C3F528CCD127544133333393D28E50411F85EBA1D227544160DACBF2D28E504194297773D327544161364A33D28E5041ADB0496DD32754415C8FC225D18E504152B81E15D12754410DCC650DD18E5041354AD3C8D0275441CF2B6CFAD08E5041E7967775D0275441E7095D8DA78E504171F9D9E1CF27544154C31FEF968E504155F4CBECD2275441353F2128968E504172830419D3275441A4703D1A988E50410AD7A380D9275441C3F528FC9C8E5041D7A370ADD8275441A4703DAA9D8E50418FC2F5E8DA275441EC51B83EA28E5041000000A0D92754413D0AD7D3A18E50410AD7A320D72754417B14AE17A28E504100000080D5275441295C8FF2A38E504185EB5188D3275441CDCCCC9CA58E50415C8FC265D227544133333373A88E5041D7A370ADD1275441E17A147EAA8E5041D7A3705DDB2754411F85EBA1A68E50418FC2F558DC2754411F85EB71A68E504148E17AF4DC275441713D0A97A48E504185EB5168DD27544100000070A48E50413D0AD733DE2754411F85EB31A58E5041F6285CDFE12754411F85EB31A58E5041E17A14BEE2275441CDCCCC8CA68E5041F6285C1FE3275441B81E85FBAA8E504152B81E15E2275441F6285CFFAC8E50417B14AE97E1275441AE47E10AB68E5041333333F3DE2754418FC2F5C8C18E5041B81E85FBDA2754411F85EB71C48E5041AE47E1CAD9275441E17A149EC48E5041B81E850BDA2754411F85EB31CA8E5041C3F528FCD7275441B81E85EBD08E50413D0AD7F3D527544184B7CF54D28E50413C43CE90D52754412337A349D28E504138B55FF3D3275441DA53960BD38E50410587CEA9D3275441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>974276 - 1822773
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000021000000310BED16EE8E50416A98EB27CB2754413421B78AF28E5041BD94F469CA27544119C42C32F58E5041F14EB6F8C927544125AC9104F98E50413AD25345C9275441CC908FB3F98E504174B4EA75C6275441D34216A7F68E50415E12E22CC3275441EF074A5AF18E5041E87813AFBE275441A5DC1014F08E50412841B99EBD27544144602762EA8E504182BCB80BBA275441D6B8295FE38E5041C8493C38B52754415B3067F9DE8E5041CBEE0FA4B52754419F40D4CDDC8E5041FF4D1E28C727544122DBE0C3D78E5041E806F736C92754416C00DD80A68E5041A037937CC82754417988AFD3928E50419BF70923C8275441353F2128968E504172830419D3275441ECECF72DA58E50415E8B1051D0275441F3616C8CA78E5041C50906E2CF275441AF8E6DA6AE8E504113D324FBCF275441A6B56BA4C28E5041CA0F6242D0275441BF835D54CF8E50410FA6976FD02754411C9712DBD08E5041DFE00775D02754418FBF9B63CE8E5041E34BEE75C92754411532FA90CF8E50413D05A77FC92754413DB260B8D18E504142144027D0275441628B3694D68E50410E030A13CF27544124897503E28E5041112E2A2BCD275441281F4A53E58E50411415DC9DCC2754413CD0162FE88E504141A2E423CC275441A57C920AEB8E50412AB0FAA9CB2754415DFAF866EC8E50413A9BE96FCB2754419A16082CED8E504133C1114FCB275441310BED16EE8E50416A98EB27CB275441
+</a>
+
+<b>
+01060000000100000001030000000100000035000000DF53960BD38E50410187CEA9D3275441295C8FC2D38E5041AE47E13AD5275441CDCCCC3CD78E504185EB5158D4275441F6285CFFDE8E504148E17AE4D227544114AE4731E08E50415C8FC2A5D22754413D0AD7B3E58E504152B81E85D127544100000000F18E504185EB5138D12754418FC2F508F88E504114AE4791D0275441E17A143EF98E5041CDCCCC4CD02754419A9999A9F58E5041B81E852BCD275441F1660D4BF58E504175DE90F4C9275441234DB8D1D48E50416C0D1F5ECF2754413DB260B8D18E504142144027D027544185EB5108D28E504166666636D127544100000030D58E504166666676D02754419A999979D58E5041C3F528CCD127544133333393D28E50411F85EBA1D22754415FDACBF2D28E504198297773D327544165364A33D28E5041AEB0496DD32754415C8FC225D18E504152B81E15D12754410DCC650DD18E5041354AD3C8D0275441CD2B6CFAD08E5041E5967775D0275441E7095D8DA78E504171F9D9E1CF27544154C31FEF968E504155F4CBECD2275441353F2128968E504172830419D3275441A4703D1A988E50410AD7A380D9275441C3F528FC9C8E5041D7A370ADD8275441A4703DAA9D8E50418FC2F5E8DA275441EC51B83EA28E5041000000A0D92754413D0AD7D3A18E50410AD7A320D72754417B14AE17A28E504100000080D5275441295C8FF2A38E504185EB5188D3275441CDCCCC9CA58E50415C8FC265D227544133333373A88E5041D7A370ADD1275441E17A147EAA8E5041D7A3705DDB2754411F85EBA1A68E50418FC2F558DC2754411F85EB71A68E504148E17AF4DC275441713D0A97A48E504185EB5168DD27544100000070A48E50413D0AD733DE2754411F85EB31A58E5041F6285CDFE12754411F85EB31A58E5041E17A14BEE2275441CDCCCC8CA68E5041F6285C1FE3275441B81E85FBAA8E504152B81E15E2275441F6285CFFAC8E50417B14AE97E1275441AE47E10AB68E5041333333F3DE2754418FC2F5C8C18E5041B81E85FBDA2754411F85EB71C48E5041AE47E1CAD9275441E17A149EC48E5041B81E850BDA2754411F85EB31CA8E5041C3F528FCD7275441B81E85EBD08E50413D0AD7F3D527544183B7CF54D28E50413A43CE90D52754412737A349D28E50413DB55FF3D3275441DF53960BD38E50410187CEA9D3275441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>974276 - 4452545
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000021000000310BED16EE8E50416A98EB27CB2754413421B78AF28E5041BD94F469CA27544119C42C32F58E5041F14EB6F8C927544125AC9104F98E50413AD25345C9275441CC908FB3F98E504174B4EA75C6275441D34216A7F68E50415E12E22CC3275441EF074A5AF18E5041E87813AFBE275441A5DC1014F08E50412841B99EBD27544144602762EA8E504182BCB80BBA275441D6B8295FE38E5041C8493C38B52754415B3067F9DE8E5041CBEE0FA4B52754419F40D4CDDC8E5041FF4D1E28C727544122DBE0C3D78E5041E806F736C92754416C00DD80A68E5041A037937CC82754417988AFD3928E50419BF70923C8275441353F2128968E504172830419D3275441ECECF72DA58E50415E8B1051D0275441F3616C8CA78E5041C50906E2CF275441AF8E6DA6AE8E504113D324FBCF275441A6B56BA4C28E5041CA0F6242D0275441BF835D54CF8E50410FA6976FD02754411C9712DBD08E5041DFE00775D02754418FBF9B63CE8E5041E34BEE75C92754411532FA90CF8E50413D05A77FC92754413DB260B8D18E504142144027D0275441628B3694D68E50410E030A13CF27544124897503E28E5041112E2A2BCD275441281F4A53E58E50411415DC9DCC2754413CD0162FE88E504141A2E423CC275441A57C920AEB8E50412AB0FAA9CB2754415DFAF866EC8E50413A9BE96FCB2754419A16082CED8E504133C1114FCB275441310BED16EE8E50416A98EB27CB275441
+</a>
+
+<b>
+01060000000100000001030000000100000035000000DF53960BD38E50410187CEA9D3275441295C8FC2D38E5041AE47E13AD5275441CDCCCC3CD78E504185EB5158D4275441F6285CFFDE8E504148E17AE4D227544114AE4731E08E50415C8FC2A5D22754413D0AD7B3E58E504152B81E85D127544100000000F18E504185EB5138D12754418FC2F508F88E504114AE4791D0275441E17A143EF98E5041CDCCCC4CD02754419A9999A9F58E5041B81E852BCD275441F1660D4BF58E504175DE90F4C9275441234DB8D1D48E50416C0D1F5ECF2754413DB260B8D18E504142144027D027544185EB5108D28E504166666636D127544100000030D58E504166666676D02754419A999979D58E5041C3F528CCD127544133333393D28E50411F85EBA1D22754415FDACBF2D28E504198297773D327544165364A33D28E5041AEB0496DD32754415C8FC225D18E504152B81E15D12754410DCC650DD18E5041354AD3C8D0275441CD2B6CFAD08E5041E5967775D0275441E7095D8DA78E504171F9D9E1CF27544154C31FEF968E504155F4CBECD2275441353F2128968E504172830419D3275441A4703D1A988E50410AD7A380D9275441C3F528FC9C8E5041D7A370ADD8275441A4703DAA9D8E50418FC2F5E8DA275441EC51B83EA28E5041000000A0D92754413D0AD7D3A18E50410AD7A320D72754417B14AE17A28E504100000080D5275441295C8FF2A38E504185EB5188D3275441CDCCCC9CA58E50415C8FC265D227544133333373A88E5041D7A370ADD1275441E17A147EAA8E5041D7A3705DDB2754411F85EBA1A68E50418FC2F558DC2754411F85EB71A68E504148E17AF4DC275441713D0A97A48E504185EB5168DD27544100000070A48E50413D0AD733DE2754411F85EB31A58E5041F6285CDFE12754411F85EB31A58E5041E17A14BEE2275441CDCCCC8CA68E5041F6285C1FE3275441B81E85FBAA8E504152B81E15E2275441F6285CFFAC8E50417B14AE97E1275441AE47E10AB68E5041333333F3DE2754418FC2F5C8C18E5041B81E85FBDA2754411F85EB71C48E5041AE47E1CAD9275441E17A149EC48E5041B81E850BDA2754411F85EB31CA8E5041C3F528FCD7275441B81E85EBD08E50413D0AD7F3D527544183B7CF54D28E50413A43CE90D52754412737A349D28E50413DB55FF3D3275441DF53960BD38E50410187CEA9D3275441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>282489 - 180364
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000020000002E0000003D0AD753CDB35041EC51B87EACE254418FC2F558E7B3504148E17A04A9E25441A4703DEAE8B350417B14AE17A8E25441C3F5280CF9B350419A99997991E2544148E17A94F2B35041D7A3705D97E25441D7A3709DEDB35041EC51B84E96E2544152B81E25EEB35041EC51B8CE92E2544133333333F6B350415C8FC21589E25441666666B6F5B35041A4703D9A86E254415C8FC205EEB350417B14AEB788E25441713D0AF7ECB350413D0AD79387E2544148E17A94F2B3504114AE473184E254410AD7A390E6B35041713D0A577FE25441AE47E14ADFB350411F85EB6185E25441A4703D5AD9B35041EC51B8DE85E25441EC51B8CED7B35041D7A3701D7FE25441A4703D4ADAB350415C8FC2A578E2544114AE4771E3B350410AD7A38072E25441E17A142EE9B350417B14AEF773E25441E17A14FEF0B350413D0AD76369E254418FC2F548FBB35041333333236BE25441AE47E1AA01B45041333333E363E2544152B81E2504B4504114AE47F151E254419A9999C901B450411F85EBF14FE25441AE47E17AFCB35041A4703D0A52E2544114AE4791F9B35041F6285C8F54E254418FC2F5C8E4B3504148E17AE46AE254419A999939D0B350418FC2F52881E25441E17A145ED1B350410000006082E25441295C8F12D0B35041666666D683E254413D0AD703CFB350417B14AEA784E25441AE47E1DACCB35041F6285C8F84E254415C8FC2B5CCB350411F85EB6183E25441A4703D1ACBB35041EC51B88E81E254413D0AD7C3CDB35041CDCCCC8C80E254417B14AED7CCB35041666666C67FE25441CDCCCC2CCBB35041CDCCCCEC7FE25441B81E855BC7B350411F85EB817BE25441C3F528DCC7B35041C3F5289C7AE2544114AE4731C7B350419A99998979E25441333333C3B9B35041666666B66AE25441EC51B80EBBB35041666666167EE254413D0AD773B5B35041000000C08FE25441AE47E12AB3B35041713D0A0799E2544133333313B0B35041EC51B80EAFE254413D0AD753CDB35041EC51B87EACE254411B0000001F85EB91BEB35041C3F528CC7BE254415C8FC285C1B35041B81E856B79E2544166666646C3B35041000000D07AE254413D0AD773C4B350419A9999C97AE2544166666636C7B350410AD7A3307DE25441F6285C0FC6B35041EC51B88E7EE25441AE47E14AC5B3504185EB51887EE25441CDCCCCECC3B35041CDCCCCFC7BE25441B81E851BC3B35041B81E851B7CE25441CDCCCCFCC2B3504114AE47617DE2544152B81EB5C0B35041666666867DE25441A4703D8AC0B35041295C8F827EE254413D0AD773C1B350411F85EBD17EE25441713D0A67C1B35041CDCCCC2C81E25441E17A142EC3B350413D0AD7B381E254417B14AEC7C3B3504185EB516883E254411F85EB21C3B3504114AE47A184E254417B14AED7C2B35041AE47E1DA85E25441EC51B8FEC0B3504185EB517885E2544185EB5148C1B350410AD7A38083E25441F6285CBFBFB35041CDCCCC8C83E25441EC51B8FEBDB35041EC51B8CE82E25441295C8FA2BDB35041A4703DCA80E25441C3F528FCBCB35041B81E855B80E25441295C8F62BCB35041333333B37EE25441666666F6BCB350418FC2F5987DE254411F85EB91BEB35041C3F528CC7BE25441
+</a>
+
+<b>
+01060000000100000001030000000100000050000000C3F528DCC7B35041C3F5289C7AE254416EE2A24CC7B3504199F08DB579E25441D4925648C2B3504190E2181E74E25441C21234B7C1B350414013E37D73E25441D6D47412BCB35041864112436DE25441BFEE6F39BAB350414834EB386BE254415009C0DAB9B350419D7665D06AE2544101FD1B1ABBB3504193569D017EE25441743246A0B5B3504125D7015C8FE25441CDA478CCB3B350417680F37696E25441AE47E12AB3B35041713D0A0799E25441D1D5AD15B0B35041C6600FFDAEE25441DE87AC50B7B35041DD5C5B6CAEE254413D0AD753CDB35041EC51B87EACE254416DBA90EAE3B35041C3FEDF79A9E254414F230E15E7B35041D45EA705A9E254415876A2ACE7B3504131461AD3A8E25441A4703DEAE8B350417B14AE17A8E25441A72EECA8EBB350417DD2873EA4E254415C4E7072F5B35041848FD68596E2544118A0E347F3B3504115FE0CBA96E2544148E17A94F2B35041D7A3705D97E25441D7A3709DEDB35041EC51B84E96E25441BE075822EEB35041DD8D0DE192E2544152B81E25EEB35041EC51B8CE92E25441C7EC53D3EEB350415FDB72FC91E2544133333333F6B350415C8FC21589E25441666666B6F5B35041A4703D9A86E25441DC11CAC3F4B35041FD3FF7DC86E25441F2340B8DF2B35041A2DAD67887E254415C8FC205EEB350417B14AEB788E25441713D0AF7ECB350413D0AD79387E2544148E17A94F2B3504114AE473184E25441CD93A9DBEDB35041A309507682E254410AD7A390E6B35041713D0A577FE25441E6B26E94E0B350413FD91A5084E25441AE47E14ADFB350411F85EB6185E2544197084231DCB350417E990DA385E25441222BC700DBB3504104C10ABC85E25441A4703D5AD9B35041EC51B8DE85E25441CABEF149D9B35041F9F7789785E25441EC51B8CED7B35041D7A3701D7FE25441515131DBD9B35041D48B10C779E25441A4703D4ADAB350415C8FC2A578E25441A6FFB80EDBB35041835FD72178E25441E1404ACDDBB35041854AD21C77E25441B3687FA5E0B350419496376174E2544114AE4771E3B350410AD7A38072E2544130992E16E5B35041EEB51CEC72E2544146BA99C6E5B35041AFB041D072E25441D29F070BE9B35041FA6464D873E2544187560070F0B35041275A098769E25441A017CFD7F0B350414CEBA79769E25441E17A14FEF0B350413D0AD76369E254410B6C0663FAB350414D2829FC6AE254415F517C94FFB3504182282F8265E254412666459601B45041BA2B9CFA63E25441C280EB9601B45041897DDFF963E25441FB0FC29801B4504123F9C8F763E25441CA784C9B01B450413D29E6F463E2544171D0561A04B450412A3925E851E254419A9999C901B450411F85EBF14FE25441CEF4B7A3FDB35041F80F129551E254412F903B75FCB350418853200F52E2544114AE4791F9B35041F6285C8F54E254412185DDA7F5B350414B5176C358E2544141E73D27E5B35041172ECA9E6AE254418625858BDAB350414324A1FB75E254419A999939D0B350418FC2F52881E25441E17A145ED1B350410000006082E25441295C8F12D0B35041666666D683E254413D0AD703CFB350417B14AEA784E25441AE47E1DACCB35041F6285C8F84E254415C8FC2B5CCB350411F85EB6183E25441A4703D1ACBB35041EC51B88E81E254413D0AD7C3CDB35041CDCCCC8C80E254417B14AED7CCB35041666666C67FE25441CDCCCC2CCBB35041CDCCCCEC7FE25441B81E855BC7B350411F85EB817BE25441C3F528DCC7B35041C3F5289C7AE25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>952374 - 1315095
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C000000713D0A37E2035141F6285C5FF3DD5441C3F5284CEC035141EC51B80E13DE5441CDCCCCBCF4035141333333932DDE5441713D0AE71004514148E17A3424DE5441000000400F04514185EB51981DDE5441A4703D5A0C0451413333337315DE544114AE47210104514152B81E25F2DD5441E17A14CEFC03514152B81E95E4DD5441295C8F12EC03514114AE4761FBDD544133333323E7035141F6285C8FFDDD5441EC51B82EE303514152B81E05F2DD5441713D0A37E2035141F6285C5FF3DD5441
+</a>
+
+<b>
+0106000000010000000103000000010000000900000050E8F992E90351414DBBC47F0ADE54414A1D4B97E90351410EED558D0ADE5441C3F5284CEC035141EC51B80E13DE5441A284ABB5EF03514146DD2FC71DDE544112F61D1EF903514136E6BCDB1ADE54417232C1BE06045141CD4F5DA616DE5441B19705300C04514117A962EE14DE5441BF41FE1806045141AB6DD1C501DE544150E8F992E90351414DBBC47F0ADE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>952374 - 3187436
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C000000713D0A37E2035141F6285C5FF3DD5441C3F5284CEC035141EC51B80E13DE5441CDCCCCBCF4035141333333932DDE5441713D0AE71004514148E17A3424DE5441000000400F04514185EB51981DDE5441A4703D5A0C0451413333337315DE544114AE47210104514152B81E25F2DD5441E17A14CEFC03514152B81E95E4DD5441295C8F12EC03514114AE4761FBDD544133333323E7035141F6285C8FFDDD5441EC51B82EE303514152B81E05F2DD5441713D0A37E2035141F6285C5FF3DD5441
+</a>
+
+<b>
+0106000000010000000103000000010000000900000050E8F992E90351414DBBC47F0ADE54414A1D4B97E90351410EED558D0ADE5441C3F5284CEC035141EC51B80E13DE5441A284ABB5EF03514146DD2FC71DDE544112F61D1EF903514136E6BCDB1ADE54417232C1BE06045141CD4F5DA616DE5441B19705300C04514117A962EE14DE5441BF41FE1806045141AB6DD1C501DE544150E8F992E90351414DBBC47F0ADE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985344 - 277260
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000026000000A7228B9603AA50410A1D75F15AD15441947C217503AA50414E2392B55AD154412CD32F2803AA50411765A92B5AD1544110B3CD2503AA504106D963275AD154413B827E6D00AA5041696C5F4755D15441AD2FFAE9FFA95041965DB66054D154413818C8F5FEA9504141B3CDA752D154411E7AA2CCFEA950415891BC6552D154414EEA7BBCFEA95041C2F9CD4B52D15441ACFF8DB9FEA9504160E2194752D154416EFACC5CFCA950416471167C4ED15441675275D7FAA950412643F20A4CD1544160BD5E5BF9A950418AE361294AD15441BE440135F8A9504174BFA99648D15441D520DCD4F7A95041ED85785947D1544100073345F7A95041F408234E46D15441217B3E3CF2A9504140A2F8763DD15441835AC047F1A950416ED0EE2F3CD154418E592CDEF0A950413ECFF5AB3BD15441BBDFAE77EEA950418DAF8D3B3BD15441A5D69AE4EBA95041C5D7BDF53AD15441B3077F0BE6A95041A951626B3AD15441C2C36022E4A95041AB3642443AD15441E6921AB4DFA95041A2AA2D6139D15441C577997BD9A950410539BC2A38D1544198D9D43AD6A95041BAD6D78337D15441EEE86FBBD5A95041BAD6D78337D154413A11C343DBA95041B62F938065D1544116EE8D56DCA950411CFAE53E6DD1544188A9E7FADDA950412DDCF4AA6CD15441011AAE5BE0A95041095E3BD36BD154412C33285DE3A95041AF6A5A486AD15441AD81D1C4E6A95041663C6F8468D154418BE4F1CBEEA95041B97ADA1865D154416D65001DF4A95041CBA6BAB462D15441237551D0FCA95041459E9AAC5ED15441075F89B903AA5041463E2D305BD15441A7228B9603AA50410A1D75F15AD15441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000E17A14BE03AA504185EB51385BD1544152B81E5507AA5041E17A146E59D15441C3F5282C0AAA504185EB51D856D1544152B81EF509AA5041AE47E19A56D15441F6285CFF06AA5041D7A370DD52D15441713D0A0706AA50415C8FC2E553D15441B81E857B04AA50411F85EB7152D15441B81E854B06AA5041713D0A8750D1544152B81E6506AA50417B14AE6750D15441EC51B80E06AA50417B14AE3750D154416666661605AA504148E17A444FD15441AE47E15A03AA5041EC51B87E4FD15441F6285C6F02AA50418FC2F5584FD15441295C8F4201AA504185EB51984ED15441B81E853B00AA5041EC51B84E4DD15441D7A3709DFEA9504114AE47A14ED15441344AC942F9A95041C0329AE148D154410AD7A320FCA95041333333F345D154417B14AEF7F4A95041713D0A273ED154417B14AE37F3A95041EC51B85E3CD1544185EB51D8F0A95041AE47E19A3BD15441217B3E3CF2A9504140A2F8763DD1544100073345F7A95041F408234E46D1544159EB2FDDF7A950419C83F76847D15441BE440135F8A9504174BFA99648D15441648E5B6AF9A9504190B45E384AD15441675275D7FAA950412643F20A4CD15441638498FFFEA9504112BB8FB752D15441E17A14BE03AA504185EB51385BD15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>963990 - 334073
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000054000000FDF97286D45C51419BF8B213428C544126FC54E4D25C5141B9D17437418C544162BE5BA1C65C51415C72FBD93A8C5441217A4C65C05C51416571FDB0378C5441C7FFDC4FBF5C5141B3806E26378C5441F05B6CF2BD5C5141396CC09E368C5441060AB473BC5C5141C92EB607368C544150EB2E08BA5C5141ACA9CA15358C5441F5F8DA70B75C51419530B012348C5441AC7AF1FDB65C5141A4D226E5338C5441106E5966B15C5141B2F61205328C544139664336B05C5141747697A2318C54414BFF3328AD5C514141440FBE308C54418047BE2AA95C51416AC84F912F8C54416D9976A9A85C514130BE786D2F8C5441A418A419A75C51414326932C2F8C54418F8D9F5EA55C51410CD45856318C544154E1F0D3A25C51412BEA61CC348C54413EE963EFA05C5141D96E0A0B388C544140CBE75D9F5C5141208841BF3A8C54410FAA3D8E9E5C51419B112FDB3C8C54410FAA3D8E9E5C5141F1E6FA503E8C5441DB3987269F5C514164526CDB3E8C5441FE0B255EA15C5141EF0477E23F8C5441A02BB88EA25C514114B99888408C544173591A57A05C5141E1534A3D478C5441423870879F5C514182FEE1284A8C5441591281DA9F5C5141CD6625754B8C5441591281DA9F5C51416319307C4C8C54418E8237429F5C5141BDAA90B34C8C544145877C1F9E5C5141B0D07F604C8C5441D5FD8E039C5C5141BF8C14224B8C54410CBD51039A5C514185E06597488C5441C2540EB7985C5141CB5BBD58458C5441FA13D1B6965C5141A8891F21438C544131D393B6945C51419C1C97F7428C544133B51725935C51411C6219D5438C5441504BBD39925C5141E4A256D5458C5441C498B232915C5141213189CE468C54417D7F7B7E8E5C51413EC72EE3458C5441C8BEDA1C885C514186EBCDB34E8C5441EA4B279D775C514121F2EFA0658C5441695B87656B5C51415D1F6FC6768C54418484A4506A5C5141663DEB57788C5441A11A4A65695C51413D3ABD19798C54415C45B72C5F5C5141A5430E977F8C5441A8F19EF4585C514136C58897838C544189A749B4475C5141AD284EC98E8C5441B10F1B865A5C51416BE10995A88C5441F995DA635D5C51419A825003A58C5441C8121087625C51415BE9B5ED9D8C54415A0113B1665C51418BFFF7A0988C5441DBC6F8EF6B5C5141CB3E573F928C5441C66C4BFE6F5C5141FCC1211C8D8C54413BC5A813755C51413194F890868C54418F56D00D7E5C514147C5C1D47A8C5441D3E43B44765C5141B64347D4768C5441C715930D7C5C51412DD5E0486E8C54415CF181C2845C51412C2C9939628C5441B082A9BC8D5C5141FBA8CE5C678C544148A23CED8E5C5141D4122948688C5441CB49A69A925C5141FEF7DAF4658C54410AE340B0995C51416F58E462608C54419F2050729C5C5141C240C44D5D8C5441CDF2EDA99E5C51412203B58B5A8C544196A0B3D3A05C51415D118423578C5441B0852C43A75C51410A29A4385A8C544162CEDC5EA75C514161736BF3598C5441B8A3A8D4A85C51419C813A8B568C5441B5549C3CAA5C5141F2B8260E528C5441A698077BAB5C51416137AC0D4E8C5441B0230C36AD5C5141A1760BAC478C5441541DB0B9AE5C514144654713438C54415B59A8DCB15C51418D600236448C5441CA750DCFB35C5141B381AC05458C544124A54DF9B95C5141949CFA58478C54418E9022E5BE5C5141EBDE4EF8488C5441350A2ACAC45C51415B683C144B8C5441D6B4C1B5C75C5141F387CF444C8C5441B20B082CCD5C5141BBC80C454E8C5441F9243FE0CF5C514153E89F754F8C5441853F4355D45C5141A5025F7F518C544174C226CFDA5C514189481470458C5441FDF97286D45C51419BF8B213428C5441
+</a>
+
+<b>
+0106000000010000000103000000010000003B000000D5FD8E039C5C5141BF8C14224B8C54410CBD51039A5C514185E06597488C5441C2540EB7985C5141CB5BBD58458C5441FA13D1B6965C5141A8891F21438C544131D393B6945C51419C1C97F7428C544133B51725935C51411C6219D5438C5441504BBD39925C5141E4A256D5458C5441C498B232915C5141213189CE468C54417D7F7B7E8E5C51413EC72EE3458C5441C8BEDA1C885C514186EBCDB34E8C5441EA4B279D775C514121F2EFA0658C5441695B87656B5C51415D1F6FC6768C54418484A4506A5C5141663DEB57788C5441A11A4A65695C51413D3ABD19798C54415C45B72C5F5C5141A5430E977F8C54412047F10B5B5C5141F001113F828C54413ECDC7E9515C5141F9086729888C544189A749B4475C5141AD284EC98E8C54416FD27A60525C514186EE4A6A9D8C54419F99376A525C51413B5A11619D8C544116374B31545C5141FC9268E79F8C544174F7F3CC585C514127EA5A38A68C5441E49D6493595C5141709ADB33A58C5441AAF8F9065B5C5141C61E124CA38C54419EF5615E5C5C5141C1CE4589A18C54417E037057615C5141DDDA19029B8C5441B718AE48645C5141908EE352978C54413C55D957655C5141D39E54FF958C544185DF5B7B675C51414EBFBC51938C544100B653F5685C5141E9D77178918C5441C7A884E8695C51419D8AEB47908C5441E5496F9C6D5C514147C5017A8B8C54412A042EDA705C51415A40B043878C54418275F9D8735C51419CBB6355838C5441FCBC522B745C5141F6922BE9828C5441FBA704CD775C5141512467237E8C5441805AF10B785C51416ABFB5D07D8C54412071F84A785C5141B277D0887D8C5441C75D8C487B5C5141B8152DDD798C5441B53988E7755C51417A747E1E768C544127B7D4E6755C5141CA7A011E768C5441A398B8A57C5C5141AB46A7746C8C5441A69E60127F5C5141799FB6FB688C5441246053D5815C51412B572E07658C54410F66D187845C514142C7372A618C5441CC36E48F845C5141CFE34530618C54411657CFA78A5C5141073C36C2658C54417010A5138D5C51410B871693678C54416BD163B08D5C5141C597A508688C5441923987BC8E5C514131E8EB1F678C5441D7A370ED905C5141E17A14FE648C54419A999959935C5141F6285CAF618C5441C3F528BC945C514185EB51C85F8C54410AD7A320975C5141F6285CCF5B8C544185EB5148995C514133333343568C544185EB51089A5C5141A4703D2A548C5441AE47E1EA9A5C514185EB5118528C5441486D76A19C5C5141FD02347F4B8C5441D5FD8E039C5C5141BF8C14224B8C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>817699 - 59860
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000006D0000000AD7A3C05C4E51419A9999C9D3685441A4703D7A5E4E5141C3F5282CD5685441A4703D3A5F4E514185EB51A8D568544114AE47415E4E5141A4703D0ADC68544114AE47215E4E5141C3F528ECDF685441EC51B8AE5F4E514148E17AE4E368544152B81E85654E5141AE47E16ADD685441713D0A87694E51417B14AEE7D66854417B14AE476B4E51413D0AD783CF685441CDCCCCDC6D4E5141C3F5289CA76854417B14AE076F4E5141295C8F82956854418FC2F5A86D4E5141E17A143E9468544152B81EF56C4E5141EC51B8CE936854413D0AD7F36A4E5141713D0A67936854411F85EBA15D4E51411F85EBF192685441000000905B4E5141E17A14FE9968544114AE4711534E5141A4703DDA9A685441CDCCCC5C514E5141CDCCCCDC98685441666666B6494E5141000000E09D685441AE47E14A464E5141666666A69E6854411F85EB81444E51413D0AD703A268544152B81E853E4E51418FC2F508A4685441D7A3701D3E4E5141E17A14BEA0685441F6285CEF3D4E5141D7A3701D9C685441F6285C2F3E4E5141D7A3707D9A685441000000B03E4E5141000000B09A685441333333033F4E5141E17A14DE97685441666666A63D4E51413333336390685441333333933B4E51410AD7A3E0876854418FC2F5483A4E51415C8FC2C5816854415C8FC2453A4E5141D7A3700D80685441CDCCCCCC3A4E51413D0AD7037F68544114AE47313C4E5141666666C67D685441D02549F2454E5141F935FF597B6854414C987CC64A4E5141B8DFE7187A685441C16673084D4E51411A2C6A887968544164734E9D524E514191454058796854413B43E8C0564E5141EDA2A6A7786854418FC2F598584E5141D7A3702D78685441B81E852B5B4E5141CDCCCC5C77685441E17A14CE5D4E51415C8FC2D576685441B81E85BB604E514114AE47C17668544114AE47A1674E5141A4703DEA76685441333333136C4E51413D0AD75377685441666666566F4E5141CDCCCC3C786854417B14AEE7704E5141666666A679685441EC51B89E714E5141E17A142E7A685441CDCCCC8C714E51410AD7A3A076685441B81E85BB724E5141EC51B80E6468544148E17A94734E51419A9999095A6854410AD7A340684E514152B81EC559685441295C8F22634E5141295C8FD2596854418FC2F5F8624E51410AD7A3005D685441AE47E10A634E5141F6285C7F5E685441EC51B8AE634E51415C8FC2056068544152B81E25644E51413D0AD7736168544133333333644E514114AE47D16368544152B81E85644E51410000003065685441CDCCCCEC644E5141333333136768544100000010654E514185EB5168686854411F85EB01654E5141EC51B8BE696854411F85EB31644E5141295C8FC26B685441C3F528CC624E51418FC2F5986D685441EC51B82E614E514114AE47B16F685441F6285C6F5E4E5141333333D3726854411F85EBD15C4E5141713D0AA774685441D7A3707D5A4E5141E17A147E766854415C8FC2555A4E5141B81E854B766854411F85EB015A4E5141C3F5283C766854417B14AE07594E5141D7A3700D76685441A4703D9A574E51415C8FC2F57568544152B81EE5544E5141713D0A4775685441666666D6514E5141C3F528CC746854410AD7A3E04E4E51413D0AD7F373685441F6285CCF4C4E51417B14AEA773685441EC51B83E484E514185EB51B872685441EC51B8CE454E5141EC51B8EE7268544185EB5168444E51410AD7A3507368544100000040424E51415C8FC22574685441E17A14DE3F4E51418FC2F5F873685441EC51B85E3E4E514148E17A7474685441F6285C5F3C4E51419A999919756854418FC2F5E8384E5141000000E075685441F6285CDF354E5141CDCCCC7C76685441F6285C2F324E51413333334377685441CDCCCCBC2F4E514185EB51087868544114AE47D12D4E5141000000B0786854413D0AD7E32D4E5141EC51B8DE87685441A4703D9A2A4E51415C8FC2058968544100000050274E5141CDCCCC7C8B68544152B81ED5254E514148E17AD48A6854419A999909234E51417B14AEF78C68544100000010214E5141F6285C4F8C685441EC51B86E1E4E5141CDCCCC9C8E6854418FC2F5781B4E514152B81E458F685441713D0AD7184E514114AE471192685441C3F5283C144E5141333333E3926854413D0AD773104E5141D7A3700D9368544148E17A840E4E5141B81E850B93685441CDCCCCDC0E4E514148E17A149C685441E17A149E104E5141713D0AB79F6854418FC2F5881D4E51413D0AD723A768544152B81EC5244E5141F6285C6FAA6854410AD7A340274E5141D7A3700DAC6854411F85EBA1344E5141666666B6B868544148E17AC43B4E51419A9999C9BE68544114AE4741444E5141C3F5280CC5685441666666264C4E51410AD7A3D0C96854410AD7A3C05C4E51419A9999C9D3685441
+</a>
+
+<b>
+010600000001000000010300000001000000980000008FC2F5881D4E51413D0AD723A76854415E9710D2214E5141972D7D17A968544152B81EC5244E5141F6285C6FAA6854410AD7A340274E5141D7A3700DAC6854411F85EBA1344E5141666666B6B868544148E17AC43B4E51419A9999C9BE68544114AE4741444E5141C3F5280CC5685441666666264C4E51410AD7A3D0C96854410AD7A3C05C4E51419A9999C9D3685441A4703D7A5E4E5141C3F5282CD5685441A4703D3A5F4E514185EB51A8D568544114AE47415E4E5141A4703D0ADC68544114AE47215E4E5141C3F528ECDF685441EC51B8AE5F4E514148E17AE4E368544152B81E85654E5141AE47E16ADD68544150FDEE45694E514169A97B51D7685441C134C8F0694E5141714028E6D46854417B14AE476B4E51413D0AD783CF685441CDCCCCDC6D4E5141C3F5289CA76854417B14AE076F4E5141295C8F82956854418FC2F5A86D4E5141E17A143E94685441211D073F6D4E5141AA267CFC9368544105154A1B6C4E51412B24B8A293685441FC615B7D6B4E51417757D18293685441E9FB0C68694E5141992572599368544197C0CFF3654E51410537133B93685441E54CDC81654E51417DA5514993685441A909FF1C634E51418A7A1C22936854411F85EBA15D4E51411F85EBF192685441000000905B4E5141E17A14FE9968544114AE4711534E5141A4703DDA9A685441CDCCCC5C514E5141CDCCCCDC98685441F00D497D504E5141A5D2406F99685441666666B6494E5141000000E09D6854414FD7BF18494E51417394B9039E685441AE47E14A464E5141666666A69E685441FE718A39454E51416FBEAFA9A06854411F85EB81444E51413D0AD703A2685441303C949C404E51410BFC4F54A368544152B81E853E4E51418FC2F508A4685441D7A3701D3E4E5141E17A14BEA0685441F6285CEF3D4E5141D7A3701D9C685441C47E8CFB3D4E51411C7636CE9B685441F6285C2F3E4E5141D7A3707D9A6854417795AE663E4E51413EF72E939A685441000000B03E4E5141000000B09A6854415AC15EC03E4E51418523F5219A685441333333033F4E5141E17A14DE97685441666666A63D4E51413333336390685441F435405E3C4E5141A19C64218B685441333333933B4E51410AD7A3E0876854418FC2F5483A4E51415C8FC2C5816854415C8FC2453A4E5141D7A3700D80685441CDCCCCCC3A4E51413D0AD7037F68544114AE47313C4E5141666666C67D6854410C121F4F424E514125BFC23A7C685441D02549F2454E5141F935FF597B6854414C987CC64A4E5141B8DFE7187A685441C16673084D4E51411A2C6A88796854411ABE4DE44F4E51417FDBBE6F79685441E8A4575B504E5141123D4E6879685441C7AEEC2C524E51418F45405879685441FB280B05534E51414D27F6467968544158A68F1B544E514113BD8A18796854413B43E8C0564E5141EDA2A6A77868544170DACBE1564E514108DE229F786854414A103C21574E514160BC7C77786854416FAAE3E1574E5141D8D55247786854418FC2F598584E5141D7A3702D78685441B81E852B5B4E5141CDCCCC5C77685441E17A14CE5D4E51415C8FC2D576685441B81E85BB604E514114AE47C176685441DCDB2E23624E51413F7F9FC9766854410DE704AD644E5141079911D67668544139C783E3644E5141C116F6D97668544114AE47A1674E5141A4703DEA7668544130135A8D6A4E5141E167A92F77685441D78D87026B4E51411A666536776854418B2FBA2E6B4E5141F334A33E77685441333333136C4E51413D0AD753776854414256A7FA6C4E5141A512669477685441302D3A206F4E51414193B02D78685441666666566F4E5141CDCCCC3C786854414E819CE4704E51416B81A2A37968544169C80BEA704E5141ED6127A879685441967D0F98714E5141A1C224297A685441CDCCCC8C714E51410AD7A3A076685441B81E85BB724E5141EC51B80E6468544148E17A94734E51419A9999095A6854410AD7A340684E514152B81EC5596854418D936966664E5141F22CFCC9596854410EFCEF21634E5141DB36BEDE596854418FC2F5F8624E51410AD7A3005D68544184F409FB624E5141F2010A2D5D68544164E53425634E5141C16617BE5E685441EC51B8AE634E51415C8FC2056068544152B81E25644E51413D0AD7736168544133333333644E514114AE47D16368544152B81E85644E51410000003065685441CDCCCCEC644E5141333333136768544100000010654E514185EB5168686854411F85EB01654E5141EC51B8BE696854411F85EB31644E5141295C8FC26B685441C3F528CC624E51418FC2F5986D685441EC51B82E614E514114AE47B16F685441F6285C6F5E4E5141333333D3726854411F85EBD15C4E5141713D0AA774685441D7A3707D5A4E5141E17A147E766854415C8FC2555A4E5141B81E854B766854411F85EB015A4E5141C3F5283C766854417B14AE07594E5141D7A3700D766854415094FADA574E5141E979F4F975685441A4703D9A574E51415C8FC2F575685441B1912B03574E5141B2BEADCF7568544152B81EE5544E5141713D0A4775685441666666D6514E5141C3F528CC746854410AD7A3E04E4E51413D0AD7F373685441F6285CCF4C4E51417B14AEA773685441EC51B83E484E514185EB51B8726854417A025E6C464E514113F5F9E072685441432E3BE2454E514141A7AFF272685441BFD9D840444E5141DE03DF5F7368544100000040424E51415C8FC22574685441E17A14DE3F4E51418FC2F5F873685441EC51B85E3E4E514148E17A7474685441F6285C5F3C4E51419A999919756854418FC2F5E8384E5141000000E075685441F6285CDF354E5141CDCCCC7C76685441F6285C2F324E5141333333437768544114AE47D12D4E5141000000B0786854418D2FA9DA2D4E5141A06D7C5C806854413D0AD7E32D4E5141EC51B8DE876854412C7D9CD52D4E5141564AB5E387685441A4703D9A2A4E51415C8FC20589685441ADC67D0C284E51418C2293EF8A68544100000050274E5141CDCCCC7C8B68544120B25CE2254E514150E65CDA8A6854412B6A43A3244E514166F062BE8B6854419A999909234E51417B14AEF78C685441F3581212214E5141FEB70C508C68544146A83455204E51410CD0E4F28C685441EC51B86E1E4E5141CDCCCC9C8E6854418DB692A91C4E5141F6EF74018F68544153C5B0861B4E5141B5EF11428F685441B749E0C51A4E51418BB26D0390685441713D0AD7184E514114AE471192685441C3F5283C144E5141333333E3926854413D0AD773104E5141D7A3700D9368544148E17A840E4E5141B81E850B93685441CDCCCCDC0E4E514148E17A149C685441E17A149E104E5141713D0AB79F6854418FC2F5881D4E51413D0AD723A7685441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608311 - 252435
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000019000000295C8F820BB15041295C8F92D3495541D7A3708D09B15041F6285C5FDC4955410781F27004B1504159C48F69E54955415CDA47A3FCB05041406F2517F149554116E1D7A6F8B05041CB855CAFFB4955415A59573AF4B05041099729D4F849554179B55363F0B05041FF198EED014A5541F79C3283F6B050418C3A556D054A5541B1BB9A83FFB050412437467DF74955414788415FFDB050411FAA1E20F6495541A91A2556FDB05041BB7CAC5AF5495541CF4D4DD3FDB05041CA574800F5495541CC77C427FFB05041D9B0AE23F249554109922E93FFB050414B067D69EF4955419760B7EC04B15041C8AAF4C2E549554114AE473109B15041C3F528CCE749554159D9062F15B15041989428FCD24955412E92C18C16B1504106C7D6D3D0495541713D0AA71CB1504152B81E55C6495541A99327B92DB15041276DD904B8495541FD8A001E23B150419B1584D9AF495541BDD517451CB15041EBA919ACAD495541295C8FA212B15041A4703DFABF4955411F85EBF109B15041713D0A77CF495541295C8F820BB15041295C8F92D3495541
+</a>
+
+<b>
+0106000000010000000103000000010000002900000012E1D7A6F8B05041C8855CAFFB495541C4C43604F6B05041464A323EFB4955416EF7FCCCF4B0504117039D96FA495541CFBC1E3CF4B05041759C4FD5F8495541012D8468F0B05041901985F0014A5541F69C3283F6B050418F3A556D054A5541AEBB9A83FFB050412737467DF74955414B88415FFDB050411AAA1E20F6495541AC1A2556FDB05041B67CAC5AF5495541D14D4DD3FDB05041C8574800F5495541C977C427FFB05041D8B0AE23F249554104922E93FFB0504146067D69EF4955419460B7EC04B15041CDAAF4C2E549554114AE473109B15041C3F528CCE749554158D9062F15B15041949428FCD24955413192C18C16B1504101C7D6D3D0495541713D0AA71CB1504152B81E55C64955415642EC4A2AB150415DC73ACFBA495541E03A7B692BB15041D4A51D3DB6495541A659FC372BB1504164F6FD16B6495541DEAFFE9B28B150418CFF6543B449554152DA3EA526B1504132D9E899B6495541098FE69D25B15041CB308AC0B8495541EB22769821B150414DDDABF9B6495541A2D71D9120B15041F04E81AAB54955415633821723B15041002AA64CB2495541F9A457C821B15041460D51AEAF495541BFD517451CB15041EAA919ACAD495541295C8FA212B15041A4703DFABF4955416BC5A3BF10B15041381EE956C349554116A57A4B10B15041BE8D6D0FC74955417D4DD9240EB150415DA6FF4DC949554105BBEB750CB15041D538EDFCCA495541B5AEA2560BB150416E908E23CD495541EBB628160CB1504100273F32CF4955413402811D0DB15041A03FD170D1495541295C8F820BB15041295C8F92D3495541D7A3708D09B15041F6285C5FDC4955410781F27004B1504159C48F69E54955415FDA47A3FCB050413B6F2517F149554112E1D7A6F8B05041C8855CAFFB495541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608311 - 419087
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000019000000295C8F820BB15041295C8F92D3495541D7A3708D09B15041F6285C5FDC4955410781F27004B1504159C48F69E54955415CDA47A3FCB05041406F2517F149554116E1D7A6F8B05041CB855CAFFB4955415A59573AF4B05041099729D4F849554179B55363F0B05041FF198EED014A5541F79C3283F6B050418C3A556D054A5541B1BB9A83FFB050412437467DF74955414788415FFDB050411FAA1E20F6495541A91A2556FDB05041BB7CAC5AF5495541CF4D4DD3FDB05041CA574800F5495541CC77C427FFB05041D9B0AE23F249554109922E93FFB050414B067D69EF4955419760B7EC04B15041C8AAF4C2E549554114AE473109B15041C3F528CCE749554159D9062F15B15041989428FCD24955412E92C18C16B1504106C7D6D3D0495541713D0AA71CB1504152B81E55C6495541A99327B92DB15041276DD904B8495541FD8A001E23B150419B1584D9AF495541BDD517451CB15041EBA919ACAD495541295C8FA212B15041A4703DFABF4955411F85EBF109B15041713D0A77CF495541295C8F820BB15041295C8F92D3495541
+</a>
+
+<b>
+01060000000100000001030000000100000019000000D0BC1E3CF4B05041769C4FD5F8495541012D8468F0B05041931985F0014A5541F69C3283F6B050418F3A556D054A5541AEBB9A83FFB050412737467DF74955414B88415FFDB050411AAA1E20F6495541AC1A2556FDB05041B67CAC5AF5495541D14D4DD3FDB05041C8574800F5495541C977C427FFB05041D8B0AE23F249554104922E93FFB0504146067D69EF4955419460B7EC04B15041CDAAF4C2E549554114AE473109B15041C3F528CCE749554158D9062F15B15041949428FCD24955413192C18C16B1504101C7D6D3D0495541713D0AA71CB1504152B81E55C6495541AD9327B92DB15041246DD904B8495541008B001E23B15041991584D9AF495541BFD517451CB15041EAA919ACAD495541295C8FA212B15041A4703DFABF4955411F85EBF109B15041713D0A77CF495541295C8F820BB15041295C8F92D3495541D7A3708D09B15041F6285C5FDC4955410781F27004B1504159C48F69E54955415FDA47A3FCB050413B6F2517F149554112E1D7A6F8B05041C8855CAFFB495541D0BC1E3CF4B05041769C4FD5F8495541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986152 - 1322085
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000020000000B000000F6285C7FA4FF50411F85EBE1BBC7544152B81EE5B4FF5041713D0A07BDC7544114AE4761B4FF5041666666C6ADC75441713D0A17B3FF5041D7A3707DACC7544100000070B0FF5041A4703D6AACC7544166666696AEFF5041CDCCCC3CADC75441F6285C3FA9FF5041A4703D3AB2C754411F85EB11A2FF5041713D0A77B8C75441333333539DFF50411F85EB31BCC7544166666646A0FF504185EB51C8BBC75441F6285C7FA4FF50411F85EBE1BBC754411100000048E17A84A9FF5041B81E850BBAC75441295C8F82AAFF504152B81EF5B7C754411F85EBD1B0FF50417B14AE67B8C7544152B81EC5B0FF50419A999909B3C754419A9999E9B1FF5041D7A370BDB2C754419A9999E9B1FF50417B14AE67B0C75441AE47E16AB1FF50411F85EB11AEC754411F85EBC1B2FF5041B81E85EBADC754417B14AE27B3FF5041AE47E15AB0C75441D7A3708DB3FF504100000030BBC754413D0AD7B3ABFF5041000000F0BAC754417B14AE57A5FF50417B14AE57BAC754417B14AE77A1FF5041713D0A97BAC75441295C8FA2A6FF50418FC2F578B5C754413D0AD7D3A7FF504114AE4751B6C7544152B81EE5A4FF50415C8FC2A5B9C7544148E17A84A9FF5041B81E850BBAC75441
+</a>
+
+<b>
+0106000000010000000103000000010000002E000000334E4ABCB1FF50414CDD79DDAFC75441775B5AF7B0FF5041A51B31E6ADC75441778E3B89B1FF50412F213172ACC754413A1535C6AEFF504155605D79ADC754418EDC4215AEFF5041C88379B5ADC75441785A6C19ABFF504100913F7FB0C75441F6285C3FA9FF5041A4703D3AB2C75441F1F8C5B5A8FF504196C2CEB1B2C7544118422F17A7FF5041FEA41416B4C75441E5EE9556A7FF50413DD5D539B4C75441A5697472A8FF50411FE6EBD9B4C7544154E0D27BA8FF5041DCC065FFB4C75441CC3683A5A8FF5041BB1A27A6B5C754413F3FD80CA8FF50414EFEC41FB6C75441CDBB1DD1A7FF50416892594FB6C754413D0AD7D3A7FF504114AE4751B6C75441F0072BF7A6FF50410B33F8FCB6C75441413788C5A4FF5041D9C14F27B9C754416E5C942EA5FF504114D15752B9C754414BC4D643A6FF5041E64EEBC3B9C754413693EE22A7FF5041BC814E1FBAC75441E97684ADA7FF5041FAFDB710BAC7544173906DECA7FF5041E03C6EE8B9C7544112C246D1A8FF5041E1D0A961B9C75441EE5A3817AAFF5041D6862954B7C75441245EAE36AAFF5041707C7021B7C7544156B377C4ACFF50414F15F979B7C754418712E7F2ACFF5041DED44280B7C75441F401423BADFF50414CDE699AB7C754419B1894F1ADFF5041540550DCB7C754418B248A1DAFFF50419875BB48B8C754417C6E4D50AFFF50413C8D145BB8C75441319BBE65AFFF5041BD5CDA4DB8C75441AB4AB6BDAFFF5041533C6F19B8C754413724E90DB0FF50417E77C2B4B7C75441A8B56E38B0FF5041CA9A617FB7C7544191C901CEB0FF5041DC149EC3B6C75441FB628714B1FF5041770D176BB6C7544105EEDBCBB0FF50415FDE0ADDB5C75441ED8AA8B9B0FF5041BAA0E532B5C75441FA2025AAB0FF504153C0DFA1B4C75441A5B90F74B0FF5041701549A8B2C7544139DFF005B1FF5041EC0D1C8BB2C7544157A7BF25B1FF5041F6318313B2C75441AAEBE048B1FF5041FD826C8FB1C75441334E4ABCB1FF50414CDD79DDAFC75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986152 - 5308140
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000020000000B000000F6285C7FA4FF50411F85EBE1BBC7544152B81EE5B4FF5041713D0A07BDC7544114AE4761B4FF5041666666C6ADC75441713D0A17B3FF5041D7A3707DACC7544100000070B0FF5041A4703D6AACC7544166666696AEFF5041CDCCCC3CADC75441F6285C3FA9FF5041A4703D3AB2C754411F85EB11A2FF5041713D0A77B8C75441333333539DFF50411F85EB31BCC7544166666646A0FF504185EB51C8BBC75441F6285C7FA4FF50411F85EBE1BBC754411100000048E17A84A9FF5041B81E850BBAC75441295C8F82AAFF504152B81EF5B7C754411F85EBD1B0FF50417B14AE67B8C7544152B81EC5B0FF50419A999909B3C754419A9999E9B1FF5041D7A370BDB2C754419A9999E9B1FF50417B14AE67B0C75441AE47E16AB1FF50411F85EB11AEC754411F85EBC1B2FF5041B81E85EBADC754417B14AE27B3FF5041AE47E15AB0C75441D7A3708DB3FF504100000030BBC754413D0AD7B3ABFF5041000000F0BAC754417B14AE57A5FF50417B14AE57BAC754417B14AE77A1FF5041713D0A97BAC75441295C8FA2A6FF50418FC2F578B5C754413D0AD7D3A7FF504114AE4751B6C7544152B81EE5A4FF50415C8FC2A5B9C7544148E17A84A9FF5041B81E850BBAC75441
+</a>
+
+<b>
+0106000000010000000103000000010000002E000000334E4ABCB1FF50414CDD79DDAFC75441775B5AF7B0FF5041A51B31E6ADC75441778E3B89B1FF50412F213172ACC754413A1535C6AEFF504155605D79ADC754418EDC4215AEFF5041C88379B5ADC75441785A6C19ABFF504100913F7FB0C75441F6285C3FA9FF5041A4703D3AB2C75441F1F8C5B5A8FF504196C2CEB1B2C7544118422F17A7FF5041FEA41416B4C75441E5EE9556A7FF50413DD5D539B4C75441A5697472A8FF50411FE6EBD9B4C7544154E0D27BA8FF5041DCC065FFB4C75441CC3683A5A8FF5041BB1A27A6B5C754413F3FD80CA8FF50414EFEC41FB6C75441CDBB1DD1A7FF50416892594FB6C754413D0AD7D3A7FF504114AE4751B6C75441F0072BF7A6FF50410B33F8FCB6C75441413788C5A4FF5041D9C14F27B9C754416E5C942EA5FF504114D15752B9C754414BC4D643A6FF5041E64EEBC3B9C754413693EE22A7FF5041BC814E1FBAC75441E97684ADA7FF5041FAFDB710BAC7544173906DECA7FF5041E03C6EE8B9C7544112C246D1A8FF5041E1D0A961B9C75441EE5A3817AAFF5041D6862954B7C75441245EAE36AAFF5041707C7021B7C7544156B377C4ACFF50414F15F979B7C754418712E7F2ACFF5041DED44280B7C75441F401423BADFF50414CDE699AB7C754419B1894F1ADFF5041540550DCB7C754418B248A1DAFFF50419875BB48B8C754417C6E4D50AFFF50413C8D145BB8C75441319BBE65AFFF5041BD5CDA4DB8C75441AB4AB6BDAFFF5041533C6F19B8C754413724E90DB0FF50417E77C2B4B7C75441A8B56E38B0FF5041CA9A617FB7C7544191C901CEB0FF5041DC149EC3B6C75441FB628714B1FF5041770D176BB6C7544105EEDBCBB0FF50415FDE0ADDB5C75441ED8AA8B9B0FF5041BAA0E532B5C75441FA2025AAB0FF504153C0DFA1B4C75441A5B90F74B0FF5041701549A8B2C7544139DFF005B1FF5041EC0D1C8BB2C7544157A7BF25B1FF5041F6318313B2C75441AAEBE048B1FF5041FD826C8FB1C75441334E4ABCB1FF50414CDD79DDAFC75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981118 - 130702
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000C0000004AA58A1B2BA95041366C54AF044855416D1FCF0A2BA95041EC7E13A104485541E92018CE1BA950415BF0B2B2024855411ECF963EEFA85041220EA7BBFE475541D7A3702DEDA85041D7A370AD05485541EC51B8DEEDA8504152B81EB5064855417B14AE2701A95041295C8F6208485541295C8F6208A950413D0AD7B308485541E17A14AE1AA950418FC2F58809485541A4703DBA1FA95041B81E857B0A48554114AE471128A9504185EB51D80D4855414AA58A1B2BA95041366C54AF04485541
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000295C8F6208A950413D0AD7B3084855418510C4C809A950417DCF23C4084855411EC7EED70AA95041DDB7543001485541404029B908A95041A7E80800014855413DAEF66E08A95041CCC26EF9004855418A07336106A95041560B4FCB00485541CB1FC21802A950418764F16C00485541CB0F6090FAA85041CC397EC2FF475541945EA32CF4A850416A27B132FF4755410667EE85F0A85041E6FBD0D8FE4755418BF1ED3DEFA85041FB64DEBDFE475541D7A3702DEDA85041D7A370AD05485541EC51B8DEEDA8504152B81EB5064855417B14AE2701A95041295C8F6208485541295C8F6208A950413D0AD7B308485541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981118 - 418126
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000C0000004AA58A1B2BA95041366C54AF044855416D1FCF0A2BA95041EC7E13A104485541E92018CE1BA950415BF0B2B2024855411ECF963EEFA85041220EA7BBFE475541D7A3702DEDA85041D7A370AD05485541EC51B8DEEDA8504152B81EB5064855417B14AE2701A95041295C8F6208485541295C8F6208A950413D0AD7B308485541E17A14AE1AA950418FC2F58809485541A4703DBA1FA95041B81E857B0A48554114AE471128A9504185EB51D80D4855414AA58A1B2BA95041366C54AF04485541
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000295C8F6208A950413D0AD7B3084855418510C4C809A950417DCF23C4084855411EC7EED70AA95041DDB7543001485541404029B908A95041A7E80800014855413DAEF66E08A95041CCC26EF9004855418A07336106A95041560B4FCB00485541CB1FC21802A950418764F16C00485541CB0F6090FAA85041CC397EC2FF475541945EA32CF4A850416A27B132FF4755410667EE85F0A85041E6FBD0D8FE4755418BF1ED3DEFA85041FB64DEBDFE475541D7A3702DEDA85041D7A370AD05485541EC51B8DEEDA8504152B81EB5064855417B14AE2701A95041295C8F6208485541295C8F6208A950413D0AD7B308485541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>787671 - 1803165
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000000E000000713D0A2709A950418FC2F5F8F06954416666667609A9504166666676F0695441AE47E12A0EA9504185EB51B8E8695441C3F528BC0EA950418FC2F5C8E7695441B81E857B0EA95041D7A3708DE7695441295C8F520CA950413D0AD773E669544192D2ADCE09A950416B0DFC2BE56954417B14AEB7F0A85041000000100F6A5441333333C3F5A8504152B81E350F6A5441D7A3707DFFA850415C8FC235FF6954411F85EBD101A950418FC2F508FD6954419A99991903A95041D7A370EDFA695441B81E852B05A950415C8FC285F7695441713D0A2709A950418FC2F5F8F0695441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000713D0A2709A950418FC2F5F8F06954416666667609A9504166666676F0695441AE47E12A0EA9504185EB51B8E8695441C3F528BC0EA950418FC2F5C8E7695441B81E857B0EA95041D7A3708DE7695441295C8F520CA950413D0AD773E6695441568B72F9F3A8504168ADF6270F6A5441C653F2ADF6A850410E9AFD3B0F6A54411F85EBD101A950418FC2F508FD6954419A99991903A95041D7A370EDFA695441B81E852B05A950415C8FC285F7695441713D0A2709A950418FC2F5F8F0695441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>787671 - 3502083
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000000E000000713D0A2709A950418FC2F5F8F06954416666667609A9504166666676F0695441AE47E12A0EA9504185EB51B8E8695441C3F528BC0EA950418FC2F5C8E7695441B81E857B0EA95041D7A3708DE7695441295C8F520CA950413D0AD773E669544192D2ADCE09A950416B0DFC2BE56954417B14AEB7F0A85041000000100F6A5441333333C3F5A8504152B81E350F6A5441D7A3707DFFA850415C8FC235FF6954411F85EBD101A950418FC2F508FD6954419A99991903A95041D7A370EDFA695441B81E852B05A950415C8FC285F7695441713D0A2709A950418FC2F5F8F0695441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000713D0A2709A950418FC2F5F8F06954416666667609A9504166666676F0695441AE47E12A0EA9504185EB51B8E8695441C3F528BC0EA950418FC2F5C8E7695441B81E857B0EA95041D7A3708DE7695441295C8F520CA950413D0AD773E6695441568B72F9F3A8504168ADF6270F6A5441C653F2ADF6A850410E9AFD3B0F6A54411F85EBD101A950418FC2F508FD6954419A99991903A95041D7A370EDFA695441B81E852B05A950415C8FC285F7695441713D0A2709A950418FC2F5F8F0695441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>399440 - 13616
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000002000000B0000000666666B6B58250419A9999B9F6105541A4703D4AB68250413D0AD713F51055418FC2F5B8B68250418FC2F5D8F3105541295C8F22B7825041B81E85ABF2105541A4703D7AB78250410AD7A3B0F1105541000000E0B78250419A999999F010554185EB5178B88250415C8FC2F5EE10554166666626B9825041713D0A17ED105541AE47E1AAB9825041AE47E1AAEB10554152B81ED5B98250415C8FC215E910554100000050BA8250413D0AD703E7105541A4703D8ABB825041295C8FE2E3105541C3F5280CBC825041295C8FD2E2105541A4703DCABD8250418FC2F548E010554100000070BE82504100000090DE10554152B81EB5BE825041E17A14BEDA1055417B14AE57B9825041295C8FA2D71055410AD7A390B58250418FC2F558D510554185EB5158AD82504166666606D0105541E17A142EAB82504185EB5148CE105541295C8FF2AB82504100000030CD1055411F85EB71AE825041C3F5286CCE105541666666F6B3825041666666D6D110554185EB5128B48250415C8FC295D1105541713D0AB7B8825041A4703D4AD410554185EB5138BA825041CDCCCC3CD5105541E17A14DEBD825041EC51B83ED7105541C3F5286CBF82504148E17AD4D21055410AD7A380C1825041295C8F02CD105541295C8F82C28250413D0AD7F3C91055418FC2F5D8C3825041B81E859BC71055410AD7A3D0C682504185EB51A8C310554133333333C88250411F85EB51C1105541B81E851BC9825041B81E850BC010554133333353CA8250417B14AE37BE10554100000050CC82504133333343BC105541CDCCCC9CCE825041713D0AA7B81055417B14AE87D0825041713D0A97B6105541000000E0D1825041713D0A47B510554114AE4721D4825041A4703DEAB3105541B81E850BDA825041000000E0AF105541E17A149EDF825041C3F5284CAC1055417B14AEF7E682504133333393A710554114AE47A1E5825041CDCCCC7CA41055410AD7A350E68250417B14AE47A1105541AE47E15AE4825041AE47E1AAA11055415C8FC255E28250410AD7A300A3105541F6285C0FE182504133333303A410554185EB51C8DF8250417B14AE47A41055410AD7A3D0DC825041000000A0A6105541D7A3703DDB825041B81E85EBA61055410AD7A3E0D8825041C3F5289CA810554148E17A04D8825041F6285C1FA9105541295C8FF2D482504148E17A04AB1055417B14AEE7D38250419A999999AA1055411F85EB31D38250417B14AE67AB105541295C8F92D2825041EC51B83EAD1055417B14AE67D08250411F85EB31AE10554100000000CE825041CDCCCC5CB01055410AD7A3C0CC825041AE47E17AB0105541B81E858BCC8250411F85EBF1AF105541EC51B8AECE825041CDCCCCFCAD105541CDCCCCCCD18250411F85EB31AB105541D7A370BDD48250415C8FC2F5A81055418FC2F508D8825041666666B6A610554114AE47F1DA825041E17A14FEA4105541D7A3703DDE8250418FC2F5F8A21055413D0AD753DE825041AE47E1AAA1105541C3F5281CDD825041A4703DEA9F105541C3F528ECD9825041333333B39E105541713D0A57D98250413D0AD7339F10554152B81EB5D7825041E17A140E9F105541B81E850BD6825041E17A140E9F1055417B14AE57D3825041B81E859B9E1055415C8FC225D182504152B81E859E105541F6285CCFCF825041AE47E1AA9E10554152B81EB5CE8250410AD7A3C09F10554166666666CD82504133333343A2105541F6285CFFCB82504100000090A4105541AE47E1DACA8250419A9999D9A610554148E17A64CA82504166666626A610554148E17A94C982504166666676A71055418FC2F508C982504166666626A810554114AE4771C8825041E17A14BEA81055410AD7A3E0C7825041AE47E13AA910554185EB5188C782504114AE4781A91055413D0AD723C78250410AD7A3D0A9105541713D0A37C68250410AD7A390AA105541A4703DAAC48250411F85EBD1AB1055410AD7A340C28250417B14AEC7AD105541E17A14AEC1825041E17A143EAE1055418FC2F578C282504100000040AF1055419A9999F9BF825041B81E859BB1105541B81E854BBF825041F6285CBFB0105541B81E856BBE825041A4703DAAB110554152B81E95BD8250413D0AD793B2105541CDCCCC5CBC82504185EB51E8B310554148E17AE4BC8250417B14AE67B4105541A4703D6ABC8250418FC2F568B510554185EB5158BB8250418FC2F5A8B61055417B14AEA7BA8250411F85EB11B6105541295C8F82BA82504133333343B6105541D7A3705DBA82504152B81E75B6105541B81E857BB9825041AE47E16AB710554114AE4791B8825041AE47E16AB8105541CDCCCCECB782504100000020B9105541E17A148EB58250413D0AD783BB10554152B81E65B4825041295C8FB2BC105541D7A3703DB5825041B81E857BBD105541713D0AF7B382504185EB51E8BE105541B81E856BB28250415C8FC2B5BF105541A4703DAAB1825041C3F5287CBF1055413D0AD773B182504148E17AB4BF105541CDCCCC5CB0825041CDCCCCFCC01055418FC2F528AF825041713D0A67C210554166666656AE82504100000060C31055417B14AE87AD825041295C8F52C41055410AD7A300AD825041C3F5285CC510554114AE4711AC8250413D0AD733C710554100000060AB82504148E17A34C8105541D7A3704DAA825041295C8FC2C910554185EB5158A98250415C8FC225CB1055411F85EB71A88250413D0AD773CC105541E17A143EA8825041000000C0CC10554148E17AF4A6825041A4703D9ACE1055418FC2F578A5825041CDCCCCBCD0105541CDCCCC8CA48250410AD7A310D210554152B81E35A48250413D0AD793D210554114AE47A1A382504100000070D3105541D7A370ADA2825041B81E85DBD41055417B14AE27A2825041333333A3D51055410AD7A3F0A182504152B81EF5D510554133333393A18250413D0AD773D6105541666666D6A082504148E17A74D71055419A9999A99F825041C3F5280CD91055413D0AD7639E8250415C8FC2C5DA1055419A9999499D82504152B81E45DC105541F6285C6F9C825041D7A3706DDD1055411F85EB819B825041F6285CAFDE10554114AE47B19882504114AE4781E210554152B81ED595825041A4703DFAE51055419A9999699582504100000030E6105541B81E85DB93825041EC51B87EE7105541713D0A9792825041F6285C8FE810554152B81E2591825041666666C6E9105541CDCCCC5C90825041EC51B86EEA105541B81E859B8F8250410AD7A310EB105541E17A148E8D8250418FC2F5C8EC105541666666A68D8250417B14AEF7EC105541000000608F825041B81E855BF01055418FC2F59890825041713D0AD7F0105541AE47E10A9282504166666696F31055419A99998993825041F6285CBFF5105541E17A144E97825041C3F5284CF91055413D0AD7A39882504148E17A04F81055413D0AD7539A8250410AD7A370F71055418FC2F5C89D825041AE47E14AF7105541B81E853B9F82504185EB5138F71055411F85EB71A082504185EB51F8F7105541D7A3709D9E825041333333D3FB105541295C8F729C825041C3F528DCFE105541D7A3704D9F8250417B14AE87011155419A9999E9A5825041666666F6051155413D0AD7A3A8825041C3F528BC08115541AE47E11AAB8250419A999989061155413D0AD773AE825041F6285C9F03115541E17A141EB1825041D7A3705D0111554133333373B2825041333333F3FF105541B81E850BB38250413D0AD743FE1055411F85EB51B3825041CDCCCC7CFD10554148E17A64B3825041713D0A47FD1055410AD7A3D0B38250415C8FC215FC1055411F85EB71B4825041F6285C4FFA105541AE47E1EAB48250419A9999F9F810554114AE4791B58250413D0AD723F7105541666666B6B58250419A9999B9F61055410C0000009A999919B9825041666666D6C31055415C8FC265B6825041F6285C8FC2105541295C8FA2B68250417B14AEC7C01055411F85EBE1B7825041B81E857BC0105541CDCCCCDCB88250411F85EB31C1105541713D0A07B98250411F85EB21C210554166666626BA8250419A9999E9C21055415C8FC255BC8250419A999999C31055415C8FC255BC825041F6285CEFC4105541713D0AA7BB825041CDCCCCBCC51055418FC2F5B8BA82504185EB5158C51055419A999919B9825041666666D6C3105541
+</a>
+
+<b>
+01060000000100000001030000000100000021000000910F884FE68250412F2FE647A110554150D8B750E6825041A0502E47A11055410AD7A380E682504152B81E15A0105541D7A370FDE0825041713D0A879F105541476CC4A6DE825041669606419F1055410AD7A390DC825041295C8F029F105541D6E6BDEFD9825041F2C49EB39E1055412AAB9DEFD98250411B6E84B49E105541C3F5281CDD825041A4703DEA9F1055413D0AD753DE825041AE47E1AAA1105541D7A3703DDE8250418FC2F5F8A210554114AE47F1DA825041E17A14FEA41055418FC2F508D8825041666666B6A6105541D7A370BDD48250415C8FC2F5A8105541CDCCCCCCD18250411F85EB31AB105541EC51B8AECE825041CDCCCCFCAD105541B81E858BCC8250411F85EBF1AF1055410AD7A3C0CC825041AE47E17AB010554100000000CE825041CDCCCC5CB01055417B14AE67D08250411F85EB31AE105541295C8F92D2825041EC51B83EAD1055411F85EB31D38250417B14AE67AB1055417B14AEE7D38250419A999999AA105541295C8FF2D482504148E17A04AB10554148E17A04D8825041F6285C1FA91055410AD7A3E0D8825041C3F5289CA8105541D7A3703DDB825041B81E85EBA61055410AD7A3D0DC825041000000A0A610554185EB51C8DF8250417B14AE47A4105541F6285C0FE182504133333303A41055415C8FC255E28250410AD7A300A3105541AE47E15AE4825041AE47E1AAA1105541910F884FE68250412F2FE647A1105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>399440 - 61862
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000002000000B0000000666666B6B58250419A9999B9F6105541A4703D4AB68250413D0AD713F51055418FC2F5B8B68250418FC2F5D8F3105541295C8F22B7825041B81E85ABF2105541A4703D7AB78250410AD7A3B0F1105541000000E0B78250419A999999F010554185EB5178B88250415C8FC2F5EE10554166666626B9825041713D0A17ED105541AE47E1AAB9825041AE47E1AAEB10554152B81ED5B98250415C8FC215E910554100000050BA8250413D0AD703E7105541A4703D8ABB825041295C8FE2E3105541C3F5280CBC825041295C8FD2E2105541A4703DCABD8250418FC2F548E010554100000070BE82504100000090DE10554152B81EB5BE825041E17A14BEDA1055417B14AE57B9825041295C8FA2D71055410AD7A390B58250418FC2F558D510554185EB5158AD82504166666606D0105541E17A142EAB82504185EB5148CE105541295C8FF2AB82504100000030CD1055411F85EB71AE825041C3F5286CCE105541666666F6B3825041666666D6D110554185EB5128B48250415C8FC295D1105541713D0AB7B8825041A4703D4AD410554185EB5138BA825041CDCCCC3CD5105541E17A14DEBD825041EC51B83ED7105541C3F5286CBF82504148E17AD4D21055410AD7A380C1825041295C8F02CD105541295C8F82C28250413D0AD7F3C91055418FC2F5D8C3825041B81E859BC71055410AD7A3D0C682504185EB51A8C310554133333333C88250411F85EB51C1105541B81E851BC9825041B81E850BC010554133333353CA8250417B14AE37BE10554100000050CC82504133333343BC105541CDCCCC9CCE825041713D0AA7B81055417B14AE87D0825041713D0A97B6105541000000E0D1825041713D0A47B510554114AE4721D4825041A4703DEAB3105541B81E850BDA825041000000E0AF105541E17A149EDF825041C3F5284CAC1055417B14AEF7E682504133333393A710554114AE47A1E5825041CDCCCC7CA41055410AD7A350E68250417B14AE47A1105541AE47E15AE4825041AE47E1AAA11055415C8FC255E28250410AD7A300A3105541F6285C0FE182504133333303A410554185EB51C8DF8250417B14AE47A41055410AD7A3D0DC825041000000A0A6105541D7A3703DDB825041B81E85EBA61055410AD7A3E0D8825041C3F5289CA810554148E17A04D8825041F6285C1FA9105541295C8FF2D482504148E17A04AB1055417B14AEE7D38250419A999999AA1055411F85EB31D38250417B14AE67AB105541295C8F92D2825041EC51B83EAD1055417B14AE67D08250411F85EB31AE10554100000000CE825041CDCCCC5CB01055410AD7A3C0CC825041AE47E17AB0105541B81E858BCC8250411F85EBF1AF105541EC51B8AECE825041CDCCCCFCAD105541CDCCCCCCD18250411F85EB31AB105541D7A370BDD48250415C8FC2F5A81055418FC2F508D8825041666666B6A610554114AE47F1DA825041E17A14FEA4105541D7A3703DDE8250418FC2F5F8A21055413D0AD753DE825041AE47E1AAA1105541C3F5281CDD825041A4703DEA9F105541C3F528ECD9825041333333B39E105541713D0A57D98250413D0AD7339F10554152B81EB5D7825041E17A140E9F105541B81E850BD6825041E17A140E9F1055417B14AE57D3825041B81E859B9E1055415C8FC225D182504152B81E859E105541F6285CCFCF825041AE47E1AA9E10554152B81EB5CE8250410AD7A3C09F10554166666666CD82504133333343A2105541F6285CFFCB82504100000090A4105541AE47E1DACA8250419A9999D9A610554148E17A64CA82504166666626A610554148E17A94C982504166666676A71055418FC2F508C982504166666626A810554114AE4771C8825041E17A14BEA81055410AD7A3E0C7825041AE47E13AA910554185EB5188C782504114AE4781A91055413D0AD723C78250410AD7A3D0A9105541713D0A37C68250410AD7A390AA105541A4703DAAC48250411F85EBD1AB1055410AD7A340C28250417B14AEC7AD105541E17A14AEC1825041E17A143EAE1055418FC2F578C282504100000040AF1055419A9999F9BF825041B81E859BB1105541B81E854BBF825041F6285CBFB0105541B81E856BBE825041A4703DAAB110554152B81E95BD8250413D0AD793B2105541CDCCCC5CBC82504185EB51E8B310554148E17AE4BC8250417B14AE67B4105541A4703D6ABC8250418FC2F568B510554185EB5158BB8250418FC2F5A8B61055417B14AEA7BA8250411F85EB11B6105541295C8F82BA82504133333343B6105541D7A3705DBA82504152B81E75B6105541B81E857BB9825041AE47E16AB710554114AE4791B8825041AE47E16AB8105541CDCCCCECB782504100000020B9105541E17A148EB58250413D0AD783BB10554152B81E65B4825041295C8FB2BC105541D7A3703DB5825041B81E857BBD105541713D0AF7B382504185EB51E8BE105541B81E856BB28250415C8FC2B5BF105541A4703DAAB1825041C3F5287CBF1055413D0AD773B182504148E17AB4BF105541CDCCCC5CB0825041CDCCCCFCC01055418FC2F528AF825041713D0A67C210554166666656AE82504100000060C31055417B14AE87AD825041295C8F52C41055410AD7A300AD825041C3F5285CC510554114AE4711AC8250413D0AD733C710554100000060AB82504148E17A34C8105541D7A3704DAA825041295C8FC2C910554185EB5158A98250415C8FC225CB1055411F85EB71A88250413D0AD773CC105541E17A143EA8825041000000C0CC10554148E17AF4A6825041A4703D9ACE1055418FC2F578A5825041CDCCCCBCD0105541CDCCCC8CA48250410AD7A310D210554152B81E35A48250413D0AD793D210554114AE47A1A382504100000070D3105541D7A370ADA2825041B81E85DBD41055417B14AE27A2825041333333A3D51055410AD7A3F0A182504152B81EF5D510554133333393A18250413D0AD773D6105541666666D6A082504148E17A74D71055419A9999A99F825041C3F5280CD91055413D0AD7639E8250415C8FC2C5DA1055419A9999499D82504152B81E45DC105541F6285C6F9C825041D7A3706DDD1055411F85EB819B825041F6285CAFDE10554114AE47B19882504114AE4781E210554152B81ED595825041A4703DFAE51055419A9999699582504100000030E6105541B81E85DB93825041EC51B87EE7105541713D0A9792825041F6285C8FE810554152B81E2591825041666666C6E9105541CDCCCC5C90825041EC51B86EEA105541B81E859B8F8250410AD7A310EB105541E17A148E8D8250418FC2F5C8EC105541666666A68D8250417B14AEF7EC105541000000608F825041B81E855BF01055418FC2F59890825041713D0AD7F0105541AE47E10A9282504166666696F31055419A99998993825041F6285CBFF5105541E17A144E97825041C3F5284CF91055413D0AD7A39882504148E17A04F81055413D0AD7539A8250410AD7A370F71055418FC2F5C89D825041AE47E14AF7105541B81E853B9F82504185EB5138F71055411F85EB71A082504185EB51F8F7105541D7A3709D9E825041333333D3FB105541295C8F729C825041C3F528DCFE105541D7A3704D9F8250417B14AE87011155419A9999E9A5825041666666F6051155413D0AD7A3A8825041C3F528BC08115541AE47E11AAB8250419A999989061155413D0AD773AE825041F6285C9F03115541E17A141EB1825041D7A3705D0111554133333373B2825041333333F3FF105541B81E850BB38250413D0AD743FE1055411F85EB51B3825041CDCCCC7CFD10554148E17A64B3825041713D0A47FD1055410AD7A3D0B38250415C8FC215FC1055411F85EB71B4825041F6285C4FFA105541AE47E1EAB48250419A9999F9F810554114AE4791B58250413D0AD723F7105541666666B6B58250419A9999B9F61055410C0000009A999919B9825041666666D6C31055415C8FC265B6825041F6285C8FC2105541295C8FA2B68250417B14AEC7C01055411F85EBE1B7825041B81E857BC0105541CDCCCCDCB88250411F85EB31C1105541713D0A07B98250411F85EB21C210554166666626BA8250419A9999E9C21055415C8FC255BC8250419A999999C31055415C8FC255BC825041F6285CEFC4105541713D0AA7BB825041CDCCCCBCC51055418FC2F5B8BA82504185EB5158C51055419A999919B9825041666666D6C3105541
+</a>
+
+<b>
+01060000000100000001030000000100000021000000910F884FE68250412F2FE647A110554150D8B750E6825041A0502E47A11055410AD7A380E682504152B81E15A0105541D7A370FDE0825041713D0A879F105541476CC4A6DE825041669606419F1055410AD7A390DC825041295C8F029F105541D6E6BDEFD9825041F2C49EB39E1055412AAB9DEFD98250411B6E84B49E105541C3F5281CDD825041A4703DEA9F1055413D0AD753DE825041AE47E1AAA1105541D7A3703DDE8250418FC2F5F8A210554114AE47F1DA825041E17A14FEA41055418FC2F508D8825041666666B6A6105541D7A370BDD48250415C8FC2F5A8105541CDCCCCCCD18250411F85EB31AB105541EC51B8AECE825041CDCCCCFCAD105541B81E858BCC8250411F85EBF1AF1055410AD7A3C0CC825041AE47E17AB010554100000000CE825041CDCCCC5CB01055417B14AE67D08250411F85EB31AE105541295C8F92D2825041EC51B83EAD1055411F85EB31D38250417B14AE67AB1055417B14AEE7D38250419A999999AA105541295C8FF2D482504148E17A04AB10554148E17A04D8825041F6285C1FA91055410AD7A3E0D8825041C3F5289CA8105541D7A3703DDB825041B81E85EBA61055410AD7A3D0DC825041000000A0A610554185EB51C8DF8250417B14AE47A4105541F6285C0FE182504133333303A41055415C8FC255E28250410AD7A300A3105541AE47E15AE4825041AE47E1AAA1105541910F884FE68250412F2FE647A1105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>978599 - 133496
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000500000000AD7A39024AD5041AE47E15A6B085541B93315771FAD5041B30911086A0855418536E1EEF8AC50418A43F8A5600855416AAA4231E3AC5041D59318AD570855416A1927FFD4AC50414980FDB75408554165A4FB06C5AC50415A258F7A4D085541B916C83FB7AC5041D9670E98470855418F223225A7AC504195B36BCE3F08554176B1E144A6AC50416F3E1E213F0855415148C9E589AC5041451FE6BA25085541F7D0A1FF8CAC5041FE65E84313085541EA185F948EAC50412937B674050855413E8B34A48FAC504130EF69EAFA075541DDB976C191AC50418C6D16D9E2075541092D12F191AC5041074CDA5FDB075541395B71B891AC50410D597767D9075541CFD8FE498FAC5041712DADB7D4075541DC3BFD8E88AC50412E2564CCC607554171529E3387AC5041E180145AC507554139E06FF385AC5041F84EC10CC4075541BE4F3A8F80AC504151999D74C0075541A71468AD71AC504107C50149B6075541FCB1609262AC5041156D7153AA07554141975B7558AC50411C76D99BA2075541D0A1066B56AC50414991AB33A1075541F7AF7D5255AC5041EACC815AA007554190BD7FDE52AC504109AD24A79D07554103AA64E94FAC50413BD88950A007554110F571C54BAC5041AFC46E5B9D0755411257F2534AAC5041AE232A199E075541BA8E9CB944AC5041701A4C00A00755413EFE66553FAC504179A12D7BA1075541DE845C2F35AC50411EFDBA16A40755412A6FB2BF35AC504103BCBCC7A50755415C180A0138AC5041AB71E05FA9075541F843D4B03CAC5041C95DA35FB1075541A8538E4541AC5041224ADC2FBF0755417901559342AC5041022DC116C90755411D605A9C42AC5041A8DF6C41CF0755419C77718840AC504189B9A088DD0755415D01FF0242AC50416FB571C9E00755413C3B0C8350AC5041A2B06F16E60755411EADC3E15FAC5041FC834E2FBE0755411039E08D84AC5041D4E904B8C907554191DEE67B82AC5041C99D2715E1075541508C4BE879AC5041621E874AFC075541BAE531094DAC5041E86357A1EC0755411622629D4CAC5041DEA94DACED07554112BA74FB47AC5041DA275307EC075541A364BB5248AC5041A09B3AF7EA0755419DE5858F45AC50416ED878F4E9075541EB75A20C47AC5041F3356485E5075541F761107A42AC504155D1BC13E407554177C2C93A3FAC504162A9E8FAE30755417A9B0A483CAC504101CFE802E8075541A7F0D8663CAC5041739F1AECEB075541BB3D2D0543AC5041439363ABF5075541D0B5B37642AC5041923FDA99FA07554144DAC8183CAC5041896CF31E0808554183503B9E3AAC50417D21E6420C0855416B26CDF63AAC5041763A1E940E0855414EB883293CAC50415F266BC3100855415DB451996CAC5041BCB98F2C270855411152D85004AD50411677CF726E0855413C2C6EA80AAD50419A45DBE56D0855416A5D95C70DAD5041BD8E19276E0855411BE57F7E11AD5041E459048771085541903DED9414AD50413D572740750855413B7A24EF15AD5041210B2FE37B085541616F4F3716AD50413A7388D57F085541BC3D95AC16AD5041F4366F63860855418AE8E38C1AAD5041696D0ECB8A085541034DD9CA1AAD5041EFDBB5348D0855415D358F161BAD5041A16114F091085541D18F88281DAD504162EBA16A930855416AEEB0F91BAD5041FCB7DE42970855412100FE2A23AD504143F263239A085541C3F5288C27AD50417B14AE978A0855419A9999D91CAD5041295C8FD2860855410AD7A39024AD5041AE47E15A6B085541
+</a>
+
+<b>
+0106000000010000000103000000010000005A0000005DB451996CAC5041BCB98F2C27085541834678976FAC5041EEEA7C9428085541E2AE5C3C76AC504110E78AB32B085541DE8D47BEAAAC5041328C5C5E440855411152D85004AD50411677CF726E085541382C6EA80AAD50419645DBE56D0855416A5D95C70DAD5041BD8E19276E0855411DE57F7E11AD5041E259048771085541903DED9414AD50413D572740750855413E7A24EF15AD5041260B2FE37B0855415F6F4F3716AD5041367388D57F085541BF3D95AC16AD5041F0366F638608554188E8E38C1AAD50416C6D0ECB8A085541034DD9CA1AAD5041EFDBB5348D0855415D358F161BAD5041A16114F091085541D18F88281DAD504162EBA16A930855410908A9671BAD50413875D7F59708554117B70DF722AD5041D398C0DB9A085541C3F5288C27AD50417B14AE978A0855419A9999D91CAD5041295C8FD2860855410AD7A39024AD5041AE47E15A6B085541D5703AC51FAD504180B9581C6A085541A616E82A1EAD5041BF172DB7690855418636E1EEF8AC50418943F8A5600855416AAA4231E3AC5041D59318AD570855416A1927FFD4AC50414980FDB75408554166A4FB06C5AC504157258F7A4D085541BA16C83FB7AC5041D7670E984708554192223225A7AC504198B36BCE3F08554176B1E144A6AC50416F3E1E213F0855415348C9E589AC5041441FE6BA25085541F6D0A1FF8CAC5041FB65E84313085541EA185F948EAC50412937B67405085541119F26628FAC50413E8C167AFD075541428B34A48FAC504132EF69EAFA075541DBB976C191AC50418A6D16D9E2075541092D12F191AC5041074CDA5FDB075541375B71B891AC504108597767D9075541CED8FE498FAC5041752DADB7D4075541E03BFD8E88AC50412E2564CCC607554138E06FF385AC5041F54EC10CC4075541BD4F3A8F80AC50414E999D74C0075541A71468AD71AC504107C50149B6075541FCB1609262AC5041156D7153AA07554181785DCA56AC5041618D6975A1075541D0A1066B56AC50414991AB33A1075541F9AF7D5255AC5041E9CC815AA007554190BD7FDE52AC504109AD24A79D07554103AA64E94FAC50413BD88950A007554110F571C54BAC5041AFC46E5B9D0755411557F2534AAC5041AA232A199E075541B78E9CB944AC5041751A4C00A00755413CFE66553FAC504179A12D7BA1075541DB845C2F35AC504121FDBA16A4075541296FB2BF35AC5041FEBBBCC7A50755415D180A0138AC5041B071E05FA90755418E78F20439AC504170877A1BAB075541EA6037823AAC504127B58088AD075541FC9041753AAC5041C99F1890AD075541FA43D4B03CAC5041C85DA35FB10755415A3905B73EAC50413B1E2F7AB7075541AB538E4541AC5041234ADC2FBF0755417A01559342AC5041062DC116C90755411E605A9C42AC5041A7DF6C41CF0755419C77718840AC504189B9A088DD0755415D01FF0242AC50416FB571C9E0075541373B0C8350AC50419DB06F16E60755411EADC3E15FAC5041FC834E2FBE0755411039E08D84AC5041D4E904B8C907554191DEE67B82AC5041C99D2715E1075541508C4BE879AC5041621E874AFC075541B6E531094DAC5041EA6357A1EC0755411422629D4CAC5041E2A94DACED07554111BA74FB47AC5041DB275307EC075541A564BB5248AC50419D9B3AF7EA0755419DE5858F45AC50416ED878F4E9075541EC75A20C47AC5041F5356485E5075541F861107A42AC504157D1BC13E407554177C2C93A3FAC504162A9E8FAE30755417A9B0A483CAC504101CFE802E8075541A7F0D8663CAC5041739F1AECEB075541BB3D2D0543AC5041439363ABF5075541D0B5B37642AC5041923FDA99FA07554144DAC8183CAC5041896CF31E0808554183503B9E3AAC50417D21E6420C0855416F26CDF63AAC5041733A1E940E08554151B883293CAC50415F266BC31008554181F1887141AC5041C6B3F834130855410F8914BC56AC50413C91D40E1D0855415DB451996CAC5041BCB98F2C27085541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>967165 - 3517568
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000001C0000008A490B105A4B5141D5DD29B85C0155415E4A1B03544B51415584BC635C015541123A22B8424B51418127E93D5B01554103B21505424B5141381D98315B015541883B68B53C4B514122A5195F5A015541446CEE3D3B4B51411366B7F85C01554152642BD43A4B51413164710A5E015541F3746E5B384B514142DBE0F8630155418B1CFD08364B514132DCA9566A01554111A06CC6344B51418CC671ED6D015541B7F88EE8344B514120306ADC73015541307D5615444B5141F0E16D2A7301554179350A10454B5141ECD9B71E73015541D567BF6F524B5141774AC97E72015541ABE272DD5F4B51413D6217E2710155411A81BCC6664B5141792011877101554165A7FE2F6A4B514103ADE3CB64015541B5A7C1B76B4B51416B96EEEC5E015541A0C3FA736C4B51412E1502045C015541B79D15AC784B5141A63E353645015541633E644F7A4B5141409CAE1A42015541DD2DE28D6C4B514115ACB175400155411BE975696C4B51419DF694E740015541729FFFA76B4B5141C26D6D26440155411347E060694B51417320B7EE4D015541500D07D6684B5141E246044350015541101258C9654B514196FDC05B5D0155418A490B105A4B5141D5DD29B85C015541
+</a>
+
+<b>
+010600000001000000010300000001000000110000005E4A1B03544B51415584BC635C0155418A490B105A4B5141D5DD29B85C015541101258C9654B514196FDC05B5D015541020797DE664B514115D808575D015541A001163C684B51411AE71F88590155418FF8B5886A4B5141B7149BF64D0155410FF08BB06C4B5141FB381BC444015541950925D96D4B5141C82B98984001554181B693876C4B51412A9B097040015541B81E856B4D4B5141333333B33C0155410AD7A320434B5141AE47E10A4F01554185EB51C8414B51410AD7A37051015541666666563F4B5141CDCCCCCC5501554128E793C73C4B5141C570565B5A015541D08FB18D424B51417AC9FD3A5B015541FD3322B8424B51411627E93D5B0155415E4A1B03544B51415584BC635C015541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>967165 - 3517987
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001C0000008A490B105A4B5141D5DD29B85C0155415E4A1B03544B51415584BC635C015541123A22B8424B51418127E93D5B01554103B21505424B5141381D98315B015541883B68B53C4B514122A5195F5A015541446CEE3D3B4B51411366B7F85C01554152642BD43A4B51413164710A5E015541F3746E5B384B514142DBE0F8630155418B1CFD08364B514132DCA9566A01554111A06CC6344B51418CC671ED6D015541B7F88EE8344B514120306ADC73015541307D5615444B5141F0E16D2A7301554179350A10454B5141ECD9B71E73015541D567BF6F524B5141774AC97E72015541ABE272DD5F4B51413D6217E2710155411A81BCC6664B5141792011877101554165A7FE2F6A4B514103ADE3CB64015541B5A7C1B76B4B51416B96EEEC5E015541A0C3FA736C4B51412E1502045C015541B79D15AC784B5141A63E353645015541633E644F7A4B5141409CAE1A42015541DD2DE28D6C4B514115ACB175400155411BE975696C4B51419DF694E740015541729FFFA76B4B5141C26D6D26440155411347E060694B51417320B7EE4D015541500D07D6684B5141E246044350015541101258C9654B514196FDC05B5D0155418A490B105A4B5141D5DD29B85C015541
+</a>
+
+<b>
+010600000001000000010300000001000000190000008A490B105A4B5141D5DD29B85C0155415E4A1B03544B51415584BC635C015541FD3322B8424B51411627E93D5B015541D08FB18D424B51417AC9FD3A5B01554128E793C73C4B5141C570565B5A015541F6285C2F3B4B5141295C8F325D015541EC51B88E384B5141CDCCCC6C63015541F3746E5B384B514142DBE0F8630155418B1CFD08364B514132DCA9566A015541A4703DBA344B5141C3F528EC6D015541666666E6344B5141000000E073015541307D5615444B5141F0E16D2A7301554179350A10454B5141ECD9B71E73015541D567BF6F524B5141774AC97E7201554152B81ED5664B5141AE47E18A7101554165A7FE2F6A4B514103ADE3CB64015541713D0A876C4B5141713D0AE75B01554185EB51687A4B5141AE47E11A42015541950925D96D4B5141C82B9898400155410FF08BB06C4B5141FB381BC4440155418FF8B5886A4B5141B7149BF64D015541A001163C684B51411AE71F8859015541020797DE664B514115D808575D015541101258C9654B514196FDC05B5D0155418A490B105A4B5141D5DD29B85C015541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2848831 - 3068718
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001800000014AE4741F73B5141000000C0B46B54413D0AD773F83B51415C8FC2A5B16B5441F6285CBFF93B51418FC2F558AF6B5441F6285C7FFD3B51410AD7A310A96B5441C3F5289C033C5141CDCCCC1CA26B5441B81E855B063C51411F85EBB19F6B5441000000700C3C5141E17A143E9A6B544114AE47F1063C5141E17A140E9E6B544114AE4731013C5141333333B3A16B5441AE47E13AFA3B51413D0AD7C3A56B54417B14AE17F43B5141E17A149EA86B5441B81E853BEE3B51411F85EB01AB6B544185EB5138E63B514133333343AE6B5441EC51B86EE53B5141D7A3708DAE6B5441B81E85ABDF3B5141F6285CAFC56B544148E17A24E23B51411F85EB01C46B54411F85EB01E63B5141F6285CEFC06B54413D0AD743EB3B5141A4703DFABB6B544100000030ED3B5141666666C6BC6B5441CDCCCCDCEE3B51411F85EB61BD6B54419A999909F03B51410AD7A360BD6B54419A999979F13B5141F6285CEFBC6B54413D0AD713F53B51417B14AE57B86B544114AE4741F73B5141000000C0B46B5441
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000B81E85ABDF3B5141F6285CAFC56B5441C3F528ACDC3B51411F85EBA1C76B5441333333B3D93B51415C8FC285CA6B544185EB51B8D63B5141E17A141ECD6B54416C21BC86CD3B514177ED356DD66B5441516D7EB2D13B51413A8CF664D46B5441F1C0C042DA3B51418FF02CACCC6B54417F2264BDDD3B5141B47783B4C96B54417D2E05B9DD3B51414A8C06ACC96B5441CF710294E93B5141730B0F60BF6B544103F52343E93B5141FE28AFDDBD6B5441549ED54AE93B5141E8E36DD6BD6B5441E95F096EE53B514113ED2E90AE6B5441B81E85ABDF3B5141F6285CAFC56B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2848831 - 3316765
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001800000014AE4741F73B5141000000C0B46B54413D0AD773F83B51415C8FC2A5B16B5441F6285CBFF93B51418FC2F558AF6B5441F6285C7FFD3B51410AD7A310A96B5441C3F5289C033C5141CDCCCC1CA26B5441B81E855B063C51411F85EBB19F6B5441000000700C3C5141E17A143E9A6B544114AE47F1063C5141E17A140E9E6B544114AE4731013C5141333333B3A16B5441AE47E13AFA3B51413D0AD7C3A56B54417B14AE17F43B5141E17A149EA86B5441B81E853BEE3B51411F85EB01AB6B544185EB5138E63B514133333343AE6B5441EC51B86EE53B5141D7A3708DAE6B5441B81E85ABDF3B5141F6285CAFC56B544148E17A24E23B51411F85EB01C46B54411F85EB01E63B5141F6285CEFC06B54413D0AD743EB3B5141A4703DFABB6B544100000030ED3B5141666666C6BC6B5441CDCCCCDCEE3B51411F85EB61BD6B54419A999909F03B51410AD7A360BD6B54419A999979F13B5141F6285CEFBC6B54413D0AD713F53B51417B14AE57B86B544114AE4741F73B5141000000C0B46B5441
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000B81E85ABDF3B5141F6285CAFC56B5441C3F528ACDC3B51411F85EBA1C76B5441333333B3D93B51415C8FC285CA6B544185EB51B8D63B5141E17A141ECD6B54416C21BC86CD3B514177ED356DD66B5441516D7EB2D13B51413A8CF664D46B5441F1C0C042DA3B51418FF02CACCC6B54417F2264BDDD3B5141B47783B4C96B54417D2E05B9DD3B51414A8C06ACC96B5441CF710294E93B5141730B0F60BF6B544103F52343E93B5141FE28AFDDBD6B5441549ED54AE93B5141E8E36DD6BD6B5441E95F096EE53B514113ED2E90AE6B5441B81E85ABDF3B5141F6285CAFC56B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>1990468 - 398615
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000003C000000CDCCCC1C42AA50417B14AE472FD9544185EB51983DAA5041B81E854B34D95441CDCCCC6C39AA50415C8FC2952FD95441EC51B8BE33AA50415C8FC2252CD95441E17A143E34AA5041EC51B83E2BD95441CDCCCCEC30AA50410AD7A3D029D95441295C8FE22CAA5041295C8F1228D954415C8FC2652AAA50410AD7A30027D954413D0AD74327AA5041713D0AA725D95441A4703DCA22AA50418FC2F5B823D95441F6285CAF1FAA50410000008023D95441C3F5281C1DAA5041F6285C8F27D954410AD7A3B011AA504114AE473129D9544152B81EE50BAA504185EB51882BD9544152B81E450FAA504148E17A342ED954410AD7A3D011AA504148E17AE42ED9544152B81E2511AA50413D0AD72330D95441AE47E13A0AAA504148E17A442ED95441A4703DEA0BAA50415C8FC2B531D95441E17A141E0AAA5041EC51B8DE32D9544185EB51D80CAA50411F85EBF13BD954417B14AE1706AA5041E17A141E43D9544148E17A3409AA5041000000C045D9544152B81EA511AA50418FC2F5183BD95441E17A146E12AA50418FC2F5A839D95441F6285CDF16AA504114AE47B131D954416666663617AA50419A99995930D95441333333D31DAA50413D0AD78332D954415C8FC25520AA504152B81E3534D954413D0AD72328AA5041C3F5284C3DD954411F85EB912EAA504152B81E1542D954410000000030AA50410000007044D95441295C8FC231AA504152B81E6545D954416666664638AA5041000000004BD95441D7A3708D3DAA50413D0AD72349D954410000008031AA504152B81EC55BD9544185EB51383AAA50418FC2F56854D954417B14AE373DAA50410000007052D9544114AE47013FAA504148E17A8451D95441000000B041AA504185EB511853D95441713D0A3748AA5041B81E85DB5DD95441AE47E17A4BAA5041D7A370ED68D95441713D0AA74FAA504152B81EA566D954410000008050AA5041D7A3707D5BD954418FC2F5F854AA5041AE47E1DA5AD95441EC51B88E55AA5041E17A140E57D95441B81E851B50AA50415C8FC2654ED954413333330356AA5041A4703D4A4AD95441EC51B8CE53AA5041D7A3707D49D954410AD7A34050AA504185EB512849D95441EC51B84E4EAA504114AE47A149D95441333333E34CAA50419A99997947D95441713D0A7744AA50415C8FC27541D95441295C8FA243AA50418FC2F54840D95441295C8F7247AA504152B81E653BD95441AE47E16A47AA5041F6285C6F39D9544148E17A6447AA5041713D0A7738D954419A99991946AA5041E17A149E36D954410AD7A34045AA50411F85EB2135D95441CDCCCC1C42AA50417B14AE472FD95441
+</a>
+
+<b>
+0106000000010000000103000000010000002F000000045C8FA243AA504146C2F54840D95441ADA46F8D43AA5041A3D6061F40D9544149AE0B8443AA504160B4620C40D95441427B147243AA5041C8C7B8E83FD954414914586D43AA5041C80652DF3FD954415A7E434D43AA50418120A39F3FD95441B3A0CB9C40AA50411B64F5483AD954417E658EED3EAA5041AC53E7F036D954414FEB51983DAA5041E31E854B34D954413FD4CBFF39AA50410BACCA3B30D95441CDCCCC6C39AA50415C8FC2952FD954414051B8BE33AA5041728FC2252CD95441C17A143E34AA50410C52B83E2BD954416EF1155732AA50415A66CD6C2AD95441CDCCCCEC30AA50410AD7A3D029D95441295C8FE22CAA5041295C8F1228D95441A6FBB1F72AAA504123066A3F27D95441518FC2652AAA504115D7A30027D954416071BEB329AA50414CD2EBB326D954413D0AD74327AA5041713D0AA725D95441D36535CA22AA50410C2FF5B823D95441F6285CAF1FAA50410000008023D95441A0B250A01DAA504126B1FDBE26D954415C491F511DAA5041D64FC74B27D954414994C9441DAA50418C834D4F27D95441C3F5281C1DAA5041F6285C8F27D95441B085C7AE19AA5041A94BC80C28D95441701D4CBB13AA5041EE5E4FFE28D954414466467A13AA5041A852DCEF28D954415AB31B7913AA5041AA0507F028D95441EA217D7213AA50412D43F9F028D95441DD42744713AA5041802220F728D9544115D7A3B011AA504175AE473129D9544145FE8DE70BAA5041113F56872BD954410E06FCE50BAA50414937E8882BD95441565E4A790DAA504177D8CE9A2CD95441726CFB2D0EAA5041FCD185152DD95441AE57A25A0FAA50416E10B5E12DD954410AD7A3D011AA504148E17AE42ED954414666663617AA50417999995930D95441743333D31DAA5041FD09D78332D95441318FC25520AA504152B81E3534D95441080AD72328AA504198F5284C3DD954413F85EB912EAA504132B81E1542D95441ADCCCC1C34AA50416D1E858B43D954413E5C8F323AAA5041A78FC26543D95441045C8FA243AA504146C2F54840D95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>403764 - 170790
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000040000000103000000010000001900000048E17A34A01551415C8FC2C5ADDB54415C8FC2259D1551413D0AD763A9DB54419A999949A1155141F6285CCFA4DB54410AD7A3F09E155141E17A142EA3DB54413D0AD7F39B155141A4703D2AA6DB544148E17A34991551418FC2F548A6DB5441EC51B82E951551415C8FC2D5A0DB544152B81EF584155141B81E85BBB3DB54419A999909721551418FC2F538C7DB5441D7A370FD6B15514133333313CDDB5441F6285C6F6A15514148E17AA4D1DB54413333333368155141295C8FA2D7DB544185EB5118651551415C8FC2C5DCDB544152B81ED56815514185EB51C8DADB5441295C8FD26E1551413D0AD793D6DB54413333338375155141333333F3CFDB5441F6285C2F7B155141D7A3709DCBDB5441D7A3703D8115514148E17A94C6DB544100000010851551415C8FC285C3DB54410AD7A3A08B1551418FC2F5A8BDDB5441333333638F155141EC51B85EB8DB544114AE4791951551419A9999E9B0DB544152B81E2597155141CDCCCC7CB1DB54411F85EBB19A155141F6285C2FB6DB544148E17A34A01551415C8FC2C5ADDB5441010300000001000000630000005C8FC205E1155141333333E38BDB5441EC51B8CEE2155141666666768CDB5441666666A6E7155141A4703D5A8DDB5441713D0A07EB15514114AE47C18EDB54411F85EB31ED1551415C8FC2A58FDB544152B81E55F41551415C8FC22589DB5441E17A141EF6155141713D0A2786DB544152B81EA5F7155141C3F528EC83DB54415C8FC285F4155141AE47E1AA83DB544152B81E15F11551411F85EB1185DB54415C8FC2F5ED1551413333335385DB5441AE47E1DAEB1551413D0AD78385DB54419A999949E8155141295C8F7288DB54417B14AEB7E4155141000000308BDB54410AD7A330E315514114AE47818BDB54418FC2F5B8E1155141EC51B8EE8ADB544152B81E25E4155141295C8F7288DB5441295C8FE2E61551418FC2F59886DB5441AE47E19AE81551413D0AD79385DB5441A4703D6AE8155141713D0AE782DB5441D7A3701DE9155141D7A370FD80DB54415C8FC2C5EA155141B81E858B80DB54410AD7A3F0EC155141295C8F0282DB5441D7A3709DEF15514148E17A6482DB5441CDCCCCBCF21551415C8FC2A582DB5441C3F528BCF51551413333333382DB54418FC2F568F8155141F6285C5F81DB544114AE4711FA15514148E17A247FDB5441B81E851BFC155141713D0A777CDB54413D0AD7E3FD155141D7A3706D7ADB5441F6285C2F00165141E17A149E7ADB5441D7A370CDFF1551417B14AE977CDB544166666656FE155141000000307EDB544185EB51C8FE155141713D0AA77FDB544114AE4791001651418FC2F50880DB54415C8FC2B504165141333333E37EDB5441A4703DEA0816514152B81E157CDB54413D0AD7D30A16514114AE47517BDB5441000000500D165141CDCCCC5C7ADB5441B81E859B0F1651413D0AD79378DB5441B81E85DB12165141B81E85CB76DB5441F6285CEF161651419A99993973DB5441713D0AB71B1651415C8FC2356FDB54419A9999991D165141AE47E17A6BDB54418FC2F52820165141713D0A4766DB544185EB51581E1651411F85EBA162DB544148E17A64101651417B14AEB76DDB5441D7A3704D0A1651410AD7A3E070DB544152B81EB5011651415C8FC29573DB54413D0AD7E3FA155141000000C076DB54419A9999C9F415514152B81E257BDB544152B81EA5E91551415C8FC2D57DDB54415C8FC285E41551419A9999F97DDB54419A999909E5155141713D0AB77FDB5441C3F5285CE21551417B14AED77FDB54418FC2F568DE155141A4703D4A80DB5441A4703D6ADB155141CDCCCCCC80DB54419A999909D8155141CDCCCCCC80DB54410AD7A3D0D5155141A4703DBA7FDB5441AE47E1CAD4155141E17A146E80DB5441F6285C0FCE155141EC51B80E85DB54410AD7A380CF15514185EB519886DB5441E17A146ED215514148E17AA485DB54419A9999D9D4155141295C8F3285DB544185EB51D8D7155141C3F528FC83DB54411F85EBD1D9155141AE47E1BA83DB5441A4703D6ADB155141000000C084DB5441295C8F12DD15514185EB516886DB544100000090DC1551415C8FC23589DB5441666666B6DA155141C3F5287C8ADB5441E17A14FED8155141A4703D0A8ADB5441F6285C0FD615514185EB51A889DB5441A4703D9AD11551415C8FC21588DB544114AE4711D3155141B81E850B8DDB5441333333E3C1155141EC51B82E93DB5441A4703DCABF155141F6285CBF90DB5441AE47E12ABF1551411F85EB0190DB5441CDCCCCACB91551413D0AD7B394DB544185EB51D8B21551419A9999299BDB54419A9999C9AE1551419A9999C99EDB54411F85EB11AC15514152B81E15A2DB544114AE4731AD15514166666686A4DB54417B14AED7AE155141C3F528BCA4DB544133333323B215514185EB5158A3DB544166666616B5155141D7A3703DA2DB5441E17A145EB8155141A4703DAAA2DB544114AE4701BB1551418FC2F598A1DB54413D0AD763C21551410AD7A3E09DDB54415C8FC2B5CC155141D7A3708D99DB5441C3F5280CD215514185EB51A896DB5441E17A14BED5155141333333A395DB5441EC51B80ED915514114AE473195DB5441CDCCCCECDB155141D7A3706D94DB54419A999999DE1551415C8FC2E592DB54410AD7A3F0DF155141AE47E1BA90DB544133333383E015514114AE47B18EDB544185EB5148DE155141666666968CDB54419A999989DE155141F6285C0F8BDB54415C8FC205E1155141333333E38BDB5441010300000001000000630000008FC2F51851165141666666F622DB5441666666464416514152B81EA52ADB5441000000503E165141D7A3700D30DB544148E17AE4371651415C8FC28534DB54415C8FC27531165141E17A146E3ADB5441C3F5288C2C1651417B14AEB73FDB5441A4703D0A241651411F85EB214ADB5441E17A148E1D1651415C8FC24551DB5441E17A145E0F165141AE47E18A61DB54411F85EBF1101651419A9999F962DB544133333303141651415C8FC22562DB5441D7A3700D1616514114AE474163DB544148E17A9418165141F6285C7F62DB54417B14AEA7191651418FC2F57860DB5441F6285C2F1C165141295C8F325EDB54415C8FC2551E165141EC51B80E5DDB54410AD7A3E021165141A4703D7A5BDB54419A9999E92416514148E17A7459DB5441D7A370BD281651418FC2F5E858DB54418FC2F5782D16514152B81E8556DB5441C3F5289C30165141295C8FF254DB5441CDCCCC9C301651411F85EB4153DB5441333333832D165141295C8FA253DB5441F6285C1F2C1651410AD7A3F052DB5441D7A3708D2B165141AE47E10A51DB5441295C8F222D1651411F85EB014EDB5441CDCCCCBC30165141666666364ADB544152B81E65331651413333330349DB5441CDCCCC1C361651411F85EBB148DB544148E17A94381651413333332349DB5441EC51B80E3C1651415C8FC28544DB5441666666A63E165141D7A370DD41DB5441B81E853B401651417B14AEF73FDB5441713D0A1744165141000000503DDB54413D0AD7734816514185EB51C83ADB54411F85EB314D16514114AE477138DB54419A9999F95416514152B81E6534DB544185EB519854165141D7A370CD31DB5441713D0A1754165141666666562FDB5441713D0A4754165141F6285C0F2DDB5441D7A3703D561651419A9999292BDB5441713D0A8759165141713D0A272ADB5441EC51B8FE5B165141666666F629DB5441713D0AF75E165141713D0A272ADB5441000000E0611651413333330329DB54418FC2F5C8641651417B14AEC71FDB54418FC2F5386A1651411F85EBF11DDB5441713D0AF76E165141713D0A771FDB54410AD7A31072165141D7A3709D21DB544152B81E957316514152B81E3524DB544185EB51C874165141666666C624DB54411F85EBF1771651411F85EB4123DB544148E17AD478165141B81E850B21DB54417B14AED779165141713D0AA71FDB5441333333A37D1651410AD7A3601DDB5441AE47E14A80165141A4703D4A1BDB54413333331383165141AE47E18A1BDB5441AE47E19A851651419A9999291BDB54413D0AD78388165141AE47E17A1BDB5441000000C08C165141666666E619DB54419A9999E98F165141EC51B87E17DB544148E17A74931651417B14AE2715DB54410AD7A31096165141A4703D2A17DB5441CDCCCC5C981651415C8FC2A51ADB54410AD7A380991651417B14AE071DDB5441E17A14DEA2165141CDCCCC2C1ADB5441D7A3702DA1165141EC51B86E17DB54411F85EB619D1651415C8FC28514DB5441295C8F2298165141A4703D8A10DB54419A99993995165141295C8F020EDB5441713D0A47941651417B14AE770ADB5441C3F5282C96165141B81E855B06DB5441295C8F329816514148E17AE403DB5441EC51B84E9C165141F6285C3F02DB544114AE4791A2165141D7A3709D01DB54410AD7A3A0A716514152B81E3504DB54415C8FC235AA165141EC51B82E08DB5441B81E856BB3165141EC51B87E01DB5441B81E85BBBC165141A4703D0AFCDA5441B81E859BC516514133333313F8DA5441C3F5280CC5165141C3F5280CF7DA5441AE47E1BAD01651415C8FC265EBDA54419A999979DD1651410AD7A360E2DA5441295C8F12EB16514148E17A74E1DA54411F85EB31ED165141E17A149ED3DA54410AD7A340ED1651417B14AE17D2DA54411F85EBF1E2165141CDCCCC2CD3DA54413D0AD7B3D6165141666666D6D4DA544166666676D2165141EC51B86ED6DA54415C8FC2F5CA1651415C8FC2B5D9DA5441E17A14EEC216514114AE4731DFDA54410AD7A370B1165141713D0AB7EBDA544185EB51A8A2165141B81E85ABF5DA5441F6285CFF9416514152B81EC5FFDA5441295C8F9287165141713D0A0709DB5441D7A3702D7C165141B81E851B0FDB5441713D0AD767165141CDCCCC7C17DB5441AE47E17A5F165141666666A61BDB54418FC2F51851165141666666F622DB54410103000000010000001500000014AE47112F1551417B14AE1710DC5441F6285C4F311551410AD7A3A00EDC5441713D0AC73A1551416666661607DC54417B14AE97481551411F85EBC1FCDB54418FC2F5584F155141333333A3F8DB5441000000A058155141CDCCCCBCF5DB5441B81E85BB5C15514100000090EADB5441713D0AF75E155141CDCCCCFCE4DB54415C8FC23562155141E17A141EDFDB544152B81E0567155141F6285CFFD6DB544185EB516869155141295C8FE2D0DB54413D0AD71368155141CDCCCCFCCFDB5441CDCCCC3C64155141EC51B8EED6DB544114AE47715C1551417B14AE37DEDB5441B81E853B55155141D7A3702DE6DB54415C8FC2054C15514148E17A44EFDB5441295C8FE2391551410AD7A330FFDB5441CDCCCC0C331551419A9999C904DC544185EB51282B155141A4703DCA0CDC5441CDCCCC9C2B15514152B81E1510DC544114AE47112F1551417B14AE1710DC5441
+</a>
+
+<b>
+0106000000010000000103000000010000007500000014AE4791A2165141D7A3709D01DB5441BC3A2C60A816514178F19B9BFEDA5441F3D15A92B11651411804F9F3FADA544145532CD4BB1651413CB5E1C2F3DA5441287ECC22C2165141C4B0437DEDDA544165EF5AEAC816514174BC3E07E7DA54419E3C72CFCE1651414A59CA31E2DA544170EBCD1EDA165141D2D97004DEDA5441DED66BD8DC165141723CD567DDDA5441084CEF03E016514145DA4692DCDA5441F20F3621E316514184B5F348D4DA544160EC793AD71651419B52A49ED5DA5441010CB280D3165141B68F8B0AD6DA544166666676D2165141EC51B86ED6DA5441A71F372BD11651410C4466FFD6DA54411E04B661CA16514107028975DBDA5441027C3DE0C416514136ED3BE8DEDA5441F30E2647B416514123B9DFAEE9DA54410AD7A370B1165141713D0AB7EBDA544185EB51A8A2165141B81E85ABF5DA5441F6285CFF9416514152B81EC5FFDA5441295C8F9287165141713D0A0709DB5441D7A3702D7C165141B81E851B0FDB5441EAB8B1F56716514153452B7017DB54417641B17060165141B123022C1BDB5441D2F3BAE85016514185E44B1323DB544169A9BA674A165141D768DEF826DB544135423FCC4416514149FC44272BDB5441544033043F165141EE5D036A2FDB5441000000503E165141D7A3700D30DB54414BA8685739165141F40C0CB834DB544111BDB5E435165141E8D052D537DB544127F96EC732165141F8CFA6B93ADB544152218738301651418DF6513A3DDB544130FBB1452C1651416AF5BAD740DB54416523CAB62916514185F40EBC43DB5441C6270F312416514165A165F249DB5441A4703D0A241651411F85EB214ADB544178D8A17A1D165141B2C846DC51DB5441A62BD6AF0F165141C7C314C461DB544187D997A70F1651418FD1A2CD61DB54411F85EBF1101651419A9999F962DB544133333303141651415C8FC22562DB5441D7A3700D1616514114AE474163DB5441205EEF5518165141CDDC1A9262DB5441B241AEA218165141FC1F9C6462DB54417B14AEA7191651418FC2F57860DB544162FFCEAC191651410B2C597460DB5441F6285C2F1C165141295C8F325EDB544129BAA46C1C16514155C510125EDB54415C8FC2551E165141EC51B80E5DDB54418A6EE4B9211651413C9F858B5BDB5441AD902CCA2316514123B304345ADB54419A9999E92416514148E17A7459DB544196A1BFF22416514194652D7359DB544189AD85B6281651411A9FACC158DB544133E8BCEF291651418F50D41658DB5441806033E82A16514106ACCBD057DB544107419D452B165141D3B89EA157DB5441575201BB2B16514147DF556657DB5441210619202C165141DD24483357DB5441D3A82A9C30165141B58512EE54DB5441CDCCCC9C301651411F85EB4153DB5441333333832D165141295C8FA253DB5441F6285C1F2C1651410AD7A3F052DB5441D7A3708D2B165141AE47E10A51DB5441295C8F222D1651411F85EB014EDB5441CDCCCCBC30165141666666364ADB544152B81E65331651413333330349DB5441CDCCCC1C361651411F85EBB148DB544148E17A94381651413333332349DB5441EC51B80E3C1651415C8FC28544DB5441666666A63E165141D7A370DD41DB5441B81E853B401651417B14AEF73FDB5441713D0A1744165141000000503DDB54413D0AD7734816514185EB51C83ADB54411F85EB314D16514114AE477138DB54416C99EB944F165141921E693337DB5441B91862F954165141320EA46334DB5441E54246E154165141808529BF33DB5441C28B59BB5416514199166DBC32DB5441BFFA70B754165141E6DAC2A132DB54415C49DDB054165141E814E47432DB5441B8D0D37D541651414AE91F4C31DB5441713D0A1754165141666666562FDB5441713D0A4754165141F6285C0F2DDB5441D7A3703D561651419A9999292BDB5441713D0A8759165141713D0A272ADB5441EC51B8FE5B165141666666F629DB544149F7B36A5D1651412F63AF0D2ADB54412AEB6FE15E165141EC86EB6D29DB54418B11301B62165141029B772628DB5441344F6627621651413FF7AB2028DB54418FC2F5C8641651417B14AEC71FDB54418FC2F5386A1651411F85EBF11DDB5441713D0AF76E165141713D0A771FDB54410AD7A31072165141D7A3709D21DB544152B81E957316514152B81E3524DB544185EB51C874165141666666C624DB54411F85EBF1771651411F85EB4123DB544148E17AD478165141B81E850B21DB54417B14AED779165141713D0AA71FDB5441333333A37D1651410AD7A3601DDB5441AE47E14A80165141A4703D4A1BDB54413333331383165141AE47E18A1BDB5441AE47E19A851651419A9999291BDB54413D0AD78388165141AE47E17A1BDB5441000000C08C165141666666E619DB54419A9999E98F165141EC51B87E17DB544148E17A74931651417B14AE2715DB54418A2B7AD6941651413967DF6F0DDB544148AF21099516514112D1584D0DDB5441713D0A47941651417B14AE770ADB5441C3F5282C96165141B81E855B06DB5441295C8F329816514148E17AE403DB5441EC51B84E9C165141F6285C3F02DB544114AE4791A2165141D7A3709D01DB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>403764 - 251771
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000040000000103000000010000001900000048E17A34A01551415C8FC2C5ADDB54415C8FC2259D1551413D0AD763A9DB54419A999949A1155141F6285CCFA4DB54410AD7A3F09E155141E17A142EA3DB54413D0AD7F39B155141A4703D2AA6DB544148E17A34991551418FC2F548A6DB5441EC51B82E951551415C8FC2D5A0DB544152B81EF584155141B81E85BBB3DB54419A999909721551418FC2F538C7DB5441D7A370FD6B15514133333313CDDB5441F6285C6F6A15514148E17AA4D1DB54413333333368155141295C8FA2D7DB544185EB5118651551415C8FC2C5DCDB544152B81ED56815514185EB51C8DADB5441295C8FD26E1551413D0AD793D6DB54413333338375155141333333F3CFDB5441F6285C2F7B155141D7A3709DCBDB5441D7A3703D8115514148E17A94C6DB544100000010851551415C8FC285C3DB54410AD7A3A08B1551418FC2F5A8BDDB5441333333638F155141EC51B85EB8DB544114AE4791951551419A9999E9B0DB544152B81E2597155141CDCCCC7CB1DB54411F85EBB19A155141F6285C2FB6DB544148E17A34A01551415C8FC2C5ADDB5441010300000001000000630000005C8FC205E1155141333333E38BDB5441EC51B8CEE2155141666666768CDB5441666666A6E7155141A4703D5A8DDB5441713D0A07EB15514114AE47C18EDB54411F85EB31ED1551415C8FC2A58FDB544152B81E55F41551415C8FC22589DB5441E17A141EF6155141713D0A2786DB544152B81EA5F7155141C3F528EC83DB54415C8FC285F4155141AE47E1AA83DB544152B81E15F11551411F85EB1185DB54415C8FC2F5ED1551413333335385DB5441AE47E1DAEB1551413D0AD78385DB54419A999949E8155141295C8F7288DB54417B14AEB7E4155141000000308BDB54410AD7A330E315514114AE47818BDB54418FC2F5B8E1155141EC51B8EE8ADB544152B81E25E4155141295C8F7288DB5441295C8FE2E61551418FC2F59886DB5441AE47E19AE81551413D0AD79385DB5441A4703D6AE8155141713D0AE782DB5441D7A3701DE9155141D7A370FD80DB54415C8FC2C5EA155141B81E858B80DB54410AD7A3F0EC155141295C8F0282DB5441D7A3709DEF15514148E17A6482DB5441CDCCCCBCF21551415C8FC2A582DB5441C3F528BCF51551413333333382DB54418FC2F568F8155141F6285C5F81DB544114AE4711FA15514148E17A247FDB5441B81E851BFC155141713D0A777CDB54413D0AD7E3FD155141D7A3706D7ADB5441F6285C2F00165141E17A149E7ADB5441D7A370CDFF1551417B14AE977CDB544166666656FE155141000000307EDB544185EB51C8FE155141713D0AA77FDB544114AE4791001651418FC2F50880DB54415C8FC2B504165141333333E37EDB5441A4703DEA0816514152B81E157CDB54413D0AD7D30A16514114AE47517BDB5441000000500D165141CDCCCC5C7ADB5441B81E859B0F1651413D0AD79378DB5441B81E85DB12165141B81E85CB76DB5441F6285CEF161651419A99993973DB5441713D0AB71B1651415C8FC2356FDB54419A9999991D165141AE47E17A6BDB54418FC2F52820165141713D0A4766DB544185EB51581E1651411F85EBA162DB544148E17A64101651417B14AEB76DDB5441D7A3704D0A1651410AD7A3E070DB544152B81EB5011651415C8FC29573DB54413D0AD7E3FA155141000000C076DB54419A9999C9F415514152B81E257BDB544152B81EA5E91551415C8FC2D57DDB54415C8FC285E41551419A9999F97DDB54419A999909E5155141713D0AB77FDB5441C3F5285CE21551417B14AED77FDB54418FC2F568DE155141A4703D4A80DB5441A4703D6ADB155141CDCCCCCC80DB54419A999909D8155141CDCCCCCC80DB54410AD7A3D0D5155141A4703DBA7FDB5441AE47E1CAD4155141E17A146E80DB5441F6285C0FCE155141EC51B80E85DB54410AD7A380CF15514185EB519886DB5441E17A146ED215514148E17AA485DB54419A9999D9D4155141295C8F3285DB544185EB51D8D7155141C3F528FC83DB54411F85EBD1D9155141AE47E1BA83DB5441A4703D6ADB155141000000C084DB5441295C8F12DD15514185EB516886DB544100000090DC1551415C8FC23589DB5441666666B6DA155141C3F5287C8ADB5441E17A14FED8155141A4703D0A8ADB5441F6285C0FD615514185EB51A889DB5441A4703D9AD11551415C8FC21588DB544114AE4711D3155141B81E850B8DDB5441333333E3C1155141EC51B82E93DB5441A4703DCABF155141F6285CBF90DB5441AE47E12ABF1551411F85EB0190DB5441CDCCCCACB91551413D0AD7B394DB544185EB51D8B21551419A9999299BDB54419A9999C9AE1551419A9999C99EDB54411F85EB11AC15514152B81E15A2DB544114AE4731AD15514166666686A4DB54417B14AED7AE155141C3F528BCA4DB544133333323B215514185EB5158A3DB544166666616B5155141D7A3703DA2DB5441E17A145EB8155141A4703DAAA2DB544114AE4701BB1551418FC2F598A1DB54413D0AD763C21551410AD7A3E09DDB54415C8FC2B5CC155141D7A3708D99DB5441C3F5280CD215514185EB51A896DB5441E17A14BED5155141333333A395DB5441EC51B80ED915514114AE473195DB5441CDCCCCECDB155141D7A3706D94DB54419A999999DE1551415C8FC2E592DB54410AD7A3F0DF155141AE47E1BA90DB544133333383E015514114AE47B18EDB544185EB5148DE155141666666968CDB54419A999989DE155141F6285C0F8BDB54415C8FC205E1155141333333E38BDB5441010300000001000000630000008FC2F51851165141666666F622DB5441666666464416514152B81EA52ADB5441000000503E165141D7A3700D30DB544148E17AE4371651415C8FC28534DB54415C8FC27531165141E17A146E3ADB5441C3F5288C2C1651417B14AEB73FDB5441A4703D0A241651411F85EB214ADB5441E17A148E1D1651415C8FC24551DB5441E17A145E0F165141AE47E18A61DB54411F85EBF1101651419A9999F962DB544133333303141651415C8FC22562DB5441D7A3700D1616514114AE474163DB544148E17A9418165141F6285C7F62DB54417B14AEA7191651418FC2F57860DB5441F6285C2F1C165141295C8F325EDB54415C8FC2551E165141EC51B80E5DDB54410AD7A3E021165141A4703D7A5BDB54419A9999E92416514148E17A7459DB5441D7A370BD281651418FC2F5E858DB54418FC2F5782D16514152B81E8556DB5441C3F5289C30165141295C8FF254DB5441CDCCCC9C301651411F85EB4153DB5441333333832D165141295C8FA253DB5441F6285C1F2C1651410AD7A3F052DB5441D7A3708D2B165141AE47E10A51DB5441295C8F222D1651411F85EB014EDB5441CDCCCCBC30165141666666364ADB544152B81E65331651413333330349DB5441CDCCCC1C361651411F85EBB148DB544148E17A94381651413333332349DB5441EC51B80E3C1651415C8FC28544DB5441666666A63E165141D7A370DD41DB5441B81E853B401651417B14AEF73FDB5441713D0A1744165141000000503DDB54413D0AD7734816514185EB51C83ADB54411F85EB314D16514114AE477138DB54419A9999F95416514152B81E6534DB544185EB519854165141D7A370CD31DB5441713D0A1754165141666666562FDB5441713D0A4754165141F6285C0F2DDB5441D7A3703D561651419A9999292BDB5441713D0A8759165141713D0A272ADB5441EC51B8FE5B165141666666F629DB5441713D0AF75E165141713D0A272ADB5441000000E0611651413333330329DB54418FC2F5C8641651417B14AEC71FDB54418FC2F5386A1651411F85EBF11DDB5441713D0AF76E165141713D0A771FDB54410AD7A31072165141D7A3709D21DB544152B81E957316514152B81E3524DB544185EB51C874165141666666C624DB54411F85EBF1771651411F85EB4123DB544148E17AD478165141B81E850B21DB54417B14AED779165141713D0AA71FDB5441333333A37D1651410AD7A3601DDB5441AE47E14A80165141A4703D4A1BDB54413333331383165141AE47E18A1BDB5441AE47E19A851651419A9999291BDB54413D0AD78388165141AE47E17A1BDB5441000000C08C165141666666E619DB54419A9999E98F165141EC51B87E17DB544148E17A74931651417B14AE2715DB54410AD7A31096165141A4703D2A17DB5441CDCCCC5C981651415C8FC2A51ADB54410AD7A380991651417B14AE071DDB5441E17A14DEA2165141CDCCCC2C1ADB5441D7A3702DA1165141EC51B86E17DB54411F85EB619D1651415C8FC28514DB5441295C8F2298165141A4703D8A10DB54419A99993995165141295C8F020EDB5441713D0A47941651417B14AE770ADB5441C3F5282C96165141B81E855B06DB5441295C8F329816514148E17AE403DB5441EC51B84E9C165141F6285C3F02DB544114AE4791A2165141D7A3709D01DB54410AD7A3A0A716514152B81E3504DB54415C8FC235AA165141EC51B82E08DB5441B81E856BB3165141EC51B87E01DB5441B81E85BBBC165141A4703D0AFCDA5441B81E859BC516514133333313F8DA5441C3F5280CC5165141C3F5280CF7DA5441AE47E1BAD01651415C8FC265EBDA54419A999979DD1651410AD7A360E2DA5441295C8F12EB16514148E17A74E1DA54411F85EB31ED165141E17A149ED3DA54410AD7A340ED1651417B14AE17D2DA54411F85EBF1E2165141CDCCCC2CD3DA54413D0AD7B3D6165141666666D6D4DA544166666676D2165141EC51B86ED6DA54415C8FC2F5CA1651415C8FC2B5D9DA5441E17A14EEC216514114AE4731DFDA54410AD7A370B1165141713D0AB7EBDA544185EB51A8A2165141B81E85ABF5DA5441F6285CFF9416514152B81EC5FFDA5441295C8F9287165141713D0A0709DB5441D7A3702D7C165141B81E851B0FDB5441713D0AD767165141CDCCCC7C17DB5441AE47E17A5F165141666666A61BDB54418FC2F51851165141666666F622DB54410103000000010000001500000014AE47112F1551417B14AE1710DC5441F6285C4F311551410AD7A3A00EDC5441713D0AC73A1551416666661607DC54417B14AE97481551411F85EBC1FCDB54418FC2F5584F155141333333A3F8DB5441000000A058155141CDCCCCBCF5DB5441B81E85BB5C15514100000090EADB5441713D0AF75E155141CDCCCCFCE4DB54415C8FC23562155141E17A141EDFDB544152B81E0567155141F6285CFFD6DB544185EB516869155141295C8FE2D0DB54413D0AD71368155141CDCCCCFCCFDB5441CDCCCC3C64155141EC51B8EED6DB544114AE47715C1551417B14AE37DEDB5441B81E853B55155141D7A3702DE6DB54415C8FC2054C15514148E17A44EFDB5441295C8FE2391551410AD7A330FFDB5441CDCCCC0C331551419A9999C904DC544185EB51282B155141A4703DCA0CDC5441CDCCCC9C2B15514152B81E1510DC544114AE47112F1551417B14AE1710DC5441
+</a>
+
+<b>
+0106000000010000000103000000010000005B00000049D70C3A1E165141A904F8B962DB544148E17A64101651417B14AEB76DDB544122C570F60E1651415BA09C756EDB54417C8388840D1651417154F2916FDB5441E19A9C1A06165141706159C172DB544189DBFA3A0416514177574B9973DB5441DE0BE35AFC155141EE3AA1B277DB54416933AE7CF5155141AE9725A47ADB54419A9999C9F415514152B81E257BDB5441C1DF8DB2F3155141F5967C687BDB5441D860A758F1155141C5A8716A7CDB5441E0CA1BECEC155141578B360B7DDB544152B81EA5E91551415C8FC2D57DDB544186D9E359E41551413A5522FB7DDB5441DC160054E21551419D936A097EDB54414F3A93E6DF15514110C58D1A7EDB54411644AA34DD155141AAC4A93A7EDB54410B23C1FDDB155141EEF5B1797EDB5441440F800CD9155141BBAE67127FDB5441D43AFBD5D5155141703928B97FDB54411527EDA9D51551416769611E81DB54413B116BF4CE155141A332EE8B85DB54413BBEB63ECF1551414B550D5286DB54410AD7A380CF15514185EB519886DB5441A4703D9AD11551415C8FC21588DB544114AE4711D3155141B81E850B8DDB544119629BEBD1155141540A6F748DDB5441F8C47A2ED2155141A9BCC2268EDB5441308CAC65C2155141E4B3865993DB54410E9DBF11C21551412D38171E93DB5441333333E3C1155141EC51B82E93DB5441CFC72B77C1155141DCB79EB092DB5441F6A77F3FBF1551410A2B991E91DB54414B037DC3BD1551411C21A64692DB5441B4F5BE8DBB155141C8535E0294DB54410D82B949B8155141CF49129296DB54419EB23DA3B5155141802837A698DB5441B39CC261B41551418FB1CBF899DB544170641615B01551413BD2CFA39EDB54410B37B245AC155141533AC885A2DB544114AE4731AD15514166666686A4DB54417B14AED7AE155141C3F528BCA4DB544166666616B5155141D7A3703DA2DB5441E17A145EB8155141A4703DAAA2DB544114AE4701BB1551418FC2F598A1DB54413D0AD763C21551410AD7A3E09DDB54415C8FC2B5CC155141D7A3708D99DB54417B14AEB7D21551413D0AD7B397DB544100B7FE5AD8155141C6481BBB96DB5441EDCA5752DB155141C2800A3596DB54412D5B7058DD1551416C1672B895DB5441FE7C35C1DE155141376C775F95DB54413D9ED6FDDE15514172E9AF4895DB54418156264BE0155141491157B494DB5441EC6D4E97E11551417ECC812094DB5441BE8BB151E315514163948E5C93DB5441C5B18B18E7155141ECB100FF91DB5441F0B6851BE7155141E4D6B1FE91DB5441CDCCCC2CE71551417B14AEF791DB544190669C5FEB1551414DD0AE8D91DB5441C80720CCEE15514198ABFA3291DB5441A98C9A3CF11551412505949E8EDB5441C8F13FACF215514146A2C8198DDB5441D5E1CF50F4155141D474075D8BDB54417B14AE57F5155141713D0A478ADB5441E2E385F4F515514138E79FC789DB5441AB3D3099F615514180C0DA4189DB54415BD5EF97F7155141FD37E77288DB54418FC2F5D8F7155141E17A143E88DB54415F106C95F9155141DF91A92887DB5441E030B0B3FA1551414B32FC7586DB544166666656FC1551410AD7A37085DB5441604D928CFC155141E647345585DB54413DE2A157FE1551410122B56C84DB544166666666001651411F85EB6183DB544165D5310F02165141565CC3D682DB5441B788DCE604165141A04A53DB81DB54418F66F4BA09165141957A1AD681DB5441CEEBBED50A165141F6B84C6480DB5441473AA2EE0B1651417E17FCF47EDB5441B46BCCD90C1651410AC5ADE07DDB5441ED783CD70D16514124B6BBC57CDB54417C2EAEE60E165141A64AAF967BDB5441D71830351016514182FD3A217ADB5441319F647E11165141F71EB2B178DB544194E6A4C8121651412D53FE4077DB544151A755FF1916514125DEC9DF72DB5441DE3998DF1C165141E7651E4B6BDB544145B7C12020165141D5CB903666DB54416ECF9B581E16514147E97FA262DB544149D70C3A1E165141A904F8B962DB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>403764 - 287571
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000040000000103000000010000001900000048E17A34A01551415C8FC2C5ADDB54415C8FC2259D1551413D0AD763A9DB54419A999949A1155141F6285CCFA4DB54410AD7A3F09E155141E17A142EA3DB54413D0AD7F39B155141A4703D2AA6DB544148E17A34991551418FC2F548A6DB5441EC51B82E951551415C8FC2D5A0DB544152B81EF584155141B81E85BBB3DB54419A999909721551418FC2F538C7DB5441D7A370FD6B15514133333313CDDB5441F6285C6F6A15514148E17AA4D1DB54413333333368155141295C8FA2D7DB544185EB5118651551415C8FC2C5DCDB544152B81ED56815514185EB51C8DADB5441295C8FD26E1551413D0AD793D6DB54413333338375155141333333F3CFDB5441F6285C2F7B155141D7A3709DCBDB5441D7A3703D8115514148E17A94C6DB544100000010851551415C8FC285C3DB54410AD7A3A08B1551418FC2F5A8BDDB5441333333638F155141EC51B85EB8DB544114AE4791951551419A9999E9B0DB544152B81E2597155141CDCCCC7CB1DB54411F85EBB19A155141F6285C2FB6DB544148E17A34A01551415C8FC2C5ADDB5441010300000001000000630000005C8FC205E1155141333333E38BDB5441EC51B8CEE2155141666666768CDB5441666666A6E7155141A4703D5A8DDB5441713D0A07EB15514114AE47C18EDB54411F85EB31ED1551415C8FC2A58FDB544152B81E55F41551415C8FC22589DB5441E17A141EF6155141713D0A2786DB544152B81EA5F7155141C3F528EC83DB54415C8FC285F4155141AE47E1AA83DB544152B81E15F11551411F85EB1185DB54415C8FC2F5ED1551413333335385DB5441AE47E1DAEB1551413D0AD78385DB54419A999949E8155141295C8F7288DB54417B14AEB7E4155141000000308BDB54410AD7A330E315514114AE47818BDB54418FC2F5B8E1155141EC51B8EE8ADB544152B81E25E4155141295C8F7288DB5441295C8FE2E61551418FC2F59886DB5441AE47E19AE81551413D0AD79385DB5441A4703D6AE8155141713D0AE782DB5441D7A3701DE9155141D7A370FD80DB54415C8FC2C5EA155141B81E858B80DB54410AD7A3F0EC155141295C8F0282DB5441D7A3709DEF15514148E17A6482DB5441CDCCCCBCF21551415C8FC2A582DB5441C3F528BCF51551413333333382DB54418FC2F568F8155141F6285C5F81DB544114AE4711FA15514148E17A247FDB5441B81E851BFC155141713D0A777CDB54413D0AD7E3FD155141D7A3706D7ADB5441F6285C2F00165141E17A149E7ADB5441D7A370CDFF1551417B14AE977CDB544166666656FE155141000000307EDB544185EB51C8FE155141713D0AA77FDB544114AE4791001651418FC2F50880DB54415C8FC2B504165141333333E37EDB5441A4703DEA0816514152B81E157CDB54413D0AD7D30A16514114AE47517BDB5441000000500D165141CDCCCC5C7ADB5441B81E859B0F1651413D0AD79378DB5441B81E85DB12165141B81E85CB76DB5441F6285CEF161651419A99993973DB5441713D0AB71B1651415C8FC2356FDB54419A9999991D165141AE47E17A6BDB54418FC2F52820165141713D0A4766DB544185EB51581E1651411F85EBA162DB544148E17A64101651417B14AEB76DDB5441D7A3704D0A1651410AD7A3E070DB544152B81EB5011651415C8FC29573DB54413D0AD7E3FA155141000000C076DB54419A9999C9F415514152B81E257BDB544152B81EA5E91551415C8FC2D57DDB54415C8FC285E41551419A9999F97DDB54419A999909E5155141713D0AB77FDB5441C3F5285CE21551417B14AED77FDB54418FC2F568DE155141A4703D4A80DB5441A4703D6ADB155141CDCCCCCC80DB54419A999909D8155141CDCCCCCC80DB54410AD7A3D0D5155141A4703DBA7FDB5441AE47E1CAD4155141E17A146E80DB5441F6285C0FCE155141EC51B80E85DB54410AD7A380CF15514185EB519886DB5441E17A146ED215514148E17AA485DB54419A9999D9D4155141295C8F3285DB544185EB51D8D7155141C3F528FC83DB54411F85EBD1D9155141AE47E1BA83DB5441A4703D6ADB155141000000C084DB5441295C8F12DD15514185EB516886DB544100000090DC1551415C8FC23589DB5441666666B6DA155141C3F5287C8ADB5441E17A14FED8155141A4703D0A8ADB5441F6285C0FD615514185EB51A889DB5441A4703D9AD11551415C8FC21588DB544114AE4711D3155141B81E850B8DDB5441333333E3C1155141EC51B82E93DB5441A4703DCABF155141F6285CBF90DB5441AE47E12ABF1551411F85EB0190DB5441CDCCCCACB91551413D0AD7B394DB544185EB51D8B21551419A9999299BDB54419A9999C9AE1551419A9999C99EDB54411F85EB11AC15514152B81E15A2DB544114AE4731AD15514166666686A4DB54417B14AED7AE155141C3F528BCA4DB544133333323B215514185EB5158A3DB544166666616B5155141D7A3703DA2DB5441E17A145EB8155141A4703DAAA2DB544114AE4701BB1551418FC2F598A1DB54413D0AD763C21551410AD7A3E09DDB54415C8FC2B5CC155141D7A3708D99DB5441C3F5280CD215514185EB51A896DB5441E17A14BED5155141333333A395DB5441EC51B80ED915514114AE473195DB5441CDCCCCECDB155141D7A3706D94DB54419A999999DE1551415C8FC2E592DB54410AD7A3F0DF155141AE47E1BA90DB544133333383E015514114AE47B18EDB544185EB5148DE155141666666968CDB54419A999989DE155141F6285C0F8BDB54415C8FC205E1155141333333E38BDB5441010300000001000000630000008FC2F51851165141666666F622DB5441666666464416514152B81EA52ADB5441000000503E165141D7A3700D30DB544148E17AE4371651415C8FC28534DB54415C8FC27531165141E17A146E3ADB5441C3F5288C2C1651417B14AEB73FDB5441A4703D0A241651411F85EB214ADB5441E17A148E1D1651415C8FC24551DB5441E17A145E0F165141AE47E18A61DB54411F85EBF1101651419A9999F962DB544133333303141651415C8FC22562DB5441D7A3700D1616514114AE474163DB544148E17A9418165141F6285C7F62DB54417B14AEA7191651418FC2F57860DB5441F6285C2F1C165141295C8F325EDB54415C8FC2551E165141EC51B80E5DDB54410AD7A3E021165141A4703D7A5BDB54419A9999E92416514148E17A7459DB5441D7A370BD281651418FC2F5E858DB54418FC2F5782D16514152B81E8556DB5441C3F5289C30165141295C8FF254DB5441CDCCCC9C301651411F85EB4153DB5441333333832D165141295C8FA253DB5441F6285C1F2C1651410AD7A3F052DB5441D7A3708D2B165141AE47E10A51DB5441295C8F222D1651411F85EB014EDB5441CDCCCCBC30165141666666364ADB544152B81E65331651413333330349DB5441CDCCCC1C361651411F85EBB148DB544148E17A94381651413333332349DB5441EC51B80E3C1651415C8FC28544DB5441666666A63E165141D7A370DD41DB5441B81E853B401651417B14AEF73FDB5441713D0A1744165141000000503DDB54413D0AD7734816514185EB51C83ADB54411F85EB314D16514114AE477138DB54419A9999F95416514152B81E6534DB544185EB519854165141D7A370CD31DB5441713D0A1754165141666666562FDB5441713D0A4754165141F6285C0F2DDB5441D7A3703D561651419A9999292BDB5441713D0A8759165141713D0A272ADB5441EC51B8FE5B165141666666F629DB5441713D0AF75E165141713D0A272ADB5441000000E0611651413333330329DB54418FC2F5C8641651417B14AEC71FDB54418FC2F5386A1651411F85EBF11DDB5441713D0AF76E165141713D0A771FDB54410AD7A31072165141D7A3709D21DB544152B81E957316514152B81E3524DB544185EB51C874165141666666C624DB54411F85EBF1771651411F85EB4123DB544148E17AD478165141B81E850B21DB54417B14AED779165141713D0AA71FDB5441333333A37D1651410AD7A3601DDB5441AE47E14A80165141A4703D4A1BDB54413333331383165141AE47E18A1BDB5441AE47E19A851651419A9999291BDB54413D0AD78388165141AE47E17A1BDB5441000000C08C165141666666E619DB54419A9999E98F165141EC51B87E17DB544148E17A74931651417B14AE2715DB54410AD7A31096165141A4703D2A17DB5441CDCCCC5C981651415C8FC2A51ADB54410AD7A380991651417B14AE071DDB5441E17A14DEA2165141CDCCCC2C1ADB5441D7A3702DA1165141EC51B86E17DB54411F85EB619D1651415C8FC28514DB5441295C8F2298165141A4703D8A10DB54419A99993995165141295C8F020EDB5441713D0A47941651417B14AE770ADB5441C3F5282C96165141B81E855B06DB5441295C8F329816514148E17AE403DB5441EC51B84E9C165141F6285C3F02DB544114AE4791A2165141D7A3709D01DB54410AD7A3A0A716514152B81E3504DB54415C8FC235AA165141EC51B82E08DB5441B81E856BB3165141EC51B87E01DB5441B81E85BBBC165141A4703D0AFCDA5441B81E859BC516514133333313F8DA5441C3F5280CC5165141C3F5280CF7DA5441AE47E1BAD01651415C8FC265EBDA54419A999979DD1651410AD7A360E2DA5441295C8F12EB16514148E17A74E1DA54411F85EB31ED165141E17A149ED3DA54410AD7A340ED1651417B14AE17D2DA54411F85EBF1E2165141CDCCCC2CD3DA54413D0AD7B3D6165141666666D6D4DA544166666676D2165141EC51B86ED6DA54415C8FC2F5CA1651415C8FC2B5D9DA5441E17A14EEC216514114AE4731DFDA54410AD7A370B1165141713D0AB7EBDA544185EB51A8A2165141B81E85ABF5DA5441F6285CFF9416514152B81EC5FFDA5441295C8F9287165141713D0A0709DB5441D7A3702D7C165141B81E851B0FDB5441713D0AD767165141CDCCCC7C17DB5441AE47E17A5F165141666666A61BDB54418FC2F51851165141666666F622DB54410103000000010000001500000014AE47112F1551417B14AE1710DC5441F6285C4F311551410AD7A3A00EDC5441713D0AC73A1551416666661607DC54417B14AE97481551411F85EBC1FCDB54418FC2F5584F155141333333A3F8DB5441000000A058155141CDCCCCBCF5DB5441B81E85BB5C15514100000090EADB5441713D0AF75E155141CDCCCCFCE4DB54415C8FC23562155141E17A141EDFDB544152B81E0567155141F6285CFFD6DB544185EB516869155141295C8FE2D0DB54413D0AD71368155141CDCCCCFCCFDB5441CDCCCC3C64155141EC51B8EED6DB544114AE47715C1551417B14AE37DEDB5441B81E853B55155141D7A3702DE6DB54415C8FC2054C15514148E17A44EFDB5441295C8FE2391551410AD7A330FFDB5441CDCCCC0C331551419A9999C904DC544185EB51282B155141A4703DCA0CDC5441CDCCCC9C2B15514152B81E1510DC544114AE47112F1551417B14AE1710DC5441
+</a>
+
+<b>
+0106000000010000000103000000010000005B00000049D70C3A1E165141A904F8B962DB544148E17A64101651417B14AEB76DDB544122C570F60E1651415BA09C756EDB54417C8388840D1651417154F2916FDB5441E19A9C1A06165141706159C172DB544189DBFA3A0416514177574B9973DB5441DE0BE35AFC155141EE3AA1B277DB54416933AE7CF5155141AE9725A47ADB54419A9999C9F415514152B81E257BDB5441C1DF8DB2F3155141F5967C687BDB5441D860A758F1155141C5A8716A7CDB5441E0CA1BECEC155141578B360B7DDB544152B81EA5E91551415C8FC2D57DDB544186D9E359E41551413A5522FB7DDB5441DC160054E21551419D936A097EDB54414F3A93E6DF15514110C58D1A7EDB54411644AA34DD155141AAC4A93A7EDB54410B23C1FDDB155141EEF5B1797EDB5441440F800CD9155141BBAE67127FDB5441D43AFBD5D5155141703928B97FDB54411527EDA9D51551416769611E81DB54413B116BF4CE155141A332EE8B85DB54413BBEB63ECF1551414B550D5286DB54410AD7A380CF15514185EB519886DB5441A4703D9AD11551415C8FC21588DB544114AE4711D3155141B81E850B8DDB544119629BEBD1155141540A6F748DDB5441F8C47A2ED2155141A9BCC2268EDB5441308CAC65C2155141E4B3865993DB54410E9DBF11C21551412D38171E93DB5441333333E3C1155141EC51B82E93DB5441CFC72B77C1155141DCB79EB092DB5441F6A77F3FBF1551410A2B991E91DB54414B037DC3BD1551411C21A64692DB5441B4F5BE8DBB155141C8535E0294DB54410D82B949B8155141CF49129296DB54419EB23DA3B5155141802837A698DB5441B39CC261B41551418FB1CBF899DB544170641615B01551413BD2CFA39EDB54410B37B245AC155141533AC885A2DB544114AE4731AD15514166666686A4DB54417B14AED7AE155141C3F528BCA4DB544166666616B5155141D7A3703DA2DB5441E17A145EB8155141A4703DAAA2DB544114AE4701BB1551418FC2F598A1DB54413D0AD763C21551410AD7A3E09DDB54415C8FC2B5CC155141D7A3708D99DB54417B14AEB7D21551413D0AD7B397DB544100B7FE5AD8155141C6481BBB96DB5441EDCA5752DB155141C2800A3596DB54412D5B7058DD1551416C1672B895DB5441FE7C35C1DE155141376C775F95DB54413D9ED6FDDE15514172E9AF4895DB54418156264BE0155141491157B494DB5441EC6D4E97E11551417ECC812094DB5441BE8BB151E315514163948E5C93DB5441C5B18B18E7155141ECB100FF91DB5441F0B6851BE7155141E4D6B1FE91DB5441CDCCCC2CE71551417B14AEF791DB544190669C5FEB1551414DD0AE8D91DB5441C80720CCEE15514198ABFA3291DB5441A98C9A3CF11551412505949E8EDB5441C8F13FACF215514146A2C8198DDB5441D5E1CF50F4155141D474075D8BDB54417B14AE57F5155141713D0A478ADB5441E2E385F4F515514138E79FC789DB5441AB3D3099F615514180C0DA4189DB54415BD5EF97F7155141FD37E77288DB54418FC2F5D8F7155141E17A143E88DB54415F106C95F9155141DF91A92887DB5441E030B0B3FA1551414B32FC7586DB544166666656FC1551410AD7A37085DB5441604D928CFC155141E647345585DB54413DE2A157FE1551410122B56C84DB544166666666001651411F85EB6183DB544165D5310F02165141565CC3D682DB5441B788DCE604165141A04A53DB81DB54418F66F4BA09165141957A1AD681DB5441CEEBBED50A165141F6B84C6480DB5441473AA2EE0B1651417E17FCF47EDB5441B46BCCD90C1651410AC5ADE07DDB5441ED783CD70D16514124B6BBC57CDB54417C2EAEE60E165141A64AAF967BDB5441D71830351016514182FD3A217ADB5441319F647E11165141F71EB2B178DB544194E6A4C8121651412D53FE4077DB544151A755FF1916514125DEC9DF72DB5441DE3998DF1C165141E7651E4B6BDB544145B7C12020165141D5CB903666DB54416ECF9B581E16514147E97FA262DB544149D70C3A1E165141A904F8B962DB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>403764 - 391000
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000040000000103000000010000001900000048E17A34A01551415C8FC2C5ADDB54415C8FC2259D1551413D0AD763A9DB54419A999949A1155141F6285CCFA4DB54410AD7A3F09E155141E17A142EA3DB54413D0AD7F39B155141A4703D2AA6DB544148E17A34991551418FC2F548A6DB5441EC51B82E951551415C8FC2D5A0DB544152B81EF584155141B81E85BBB3DB54419A999909721551418FC2F538C7DB5441D7A370FD6B15514133333313CDDB5441F6285C6F6A15514148E17AA4D1DB54413333333368155141295C8FA2D7DB544185EB5118651551415C8FC2C5DCDB544152B81ED56815514185EB51C8DADB5441295C8FD26E1551413D0AD793D6DB54413333338375155141333333F3CFDB5441F6285C2F7B155141D7A3709DCBDB5441D7A3703D8115514148E17A94C6DB544100000010851551415C8FC285C3DB54410AD7A3A08B1551418FC2F5A8BDDB5441333333638F155141EC51B85EB8DB544114AE4791951551419A9999E9B0DB544152B81E2597155141CDCCCC7CB1DB54411F85EBB19A155141F6285C2FB6DB544148E17A34A01551415C8FC2C5ADDB5441010300000001000000630000005C8FC205E1155141333333E38BDB5441EC51B8CEE2155141666666768CDB5441666666A6E7155141A4703D5A8DDB5441713D0A07EB15514114AE47C18EDB54411F85EB31ED1551415C8FC2A58FDB544152B81E55F41551415C8FC22589DB5441E17A141EF6155141713D0A2786DB544152B81EA5F7155141C3F528EC83DB54415C8FC285F4155141AE47E1AA83DB544152B81E15F11551411F85EB1185DB54415C8FC2F5ED1551413333335385DB5441AE47E1DAEB1551413D0AD78385DB54419A999949E8155141295C8F7288DB54417B14AEB7E4155141000000308BDB54410AD7A330E315514114AE47818BDB54418FC2F5B8E1155141EC51B8EE8ADB544152B81E25E4155141295C8F7288DB5441295C8FE2E61551418FC2F59886DB5441AE47E19AE81551413D0AD79385DB5441A4703D6AE8155141713D0AE782DB5441D7A3701DE9155141D7A370FD80DB54415C8FC2C5EA155141B81E858B80DB54410AD7A3F0EC155141295C8F0282DB5441D7A3709DEF15514148E17A6482DB5441CDCCCCBCF21551415C8FC2A582DB5441C3F528BCF51551413333333382DB54418FC2F568F8155141F6285C5F81DB544114AE4711FA15514148E17A247FDB5441B81E851BFC155141713D0A777CDB54413D0AD7E3FD155141D7A3706D7ADB5441F6285C2F00165141E17A149E7ADB5441D7A370CDFF1551417B14AE977CDB544166666656FE155141000000307EDB544185EB51C8FE155141713D0AA77FDB544114AE4791001651418FC2F50880DB54415C8FC2B504165141333333E37EDB5441A4703DEA0816514152B81E157CDB54413D0AD7D30A16514114AE47517BDB5441000000500D165141CDCCCC5C7ADB5441B81E859B0F1651413D0AD79378DB5441B81E85DB12165141B81E85CB76DB5441F6285CEF161651419A99993973DB5441713D0AB71B1651415C8FC2356FDB54419A9999991D165141AE47E17A6BDB54418FC2F52820165141713D0A4766DB544185EB51581E1651411F85EBA162DB544148E17A64101651417B14AEB76DDB5441D7A3704D0A1651410AD7A3E070DB544152B81EB5011651415C8FC29573DB54413D0AD7E3FA155141000000C076DB54419A9999C9F415514152B81E257BDB544152B81EA5E91551415C8FC2D57DDB54415C8FC285E41551419A9999F97DDB54419A999909E5155141713D0AB77FDB5441C3F5285CE21551417B14AED77FDB54418FC2F568DE155141A4703D4A80DB5441A4703D6ADB155141CDCCCCCC80DB54419A999909D8155141CDCCCCCC80DB54410AD7A3D0D5155141A4703DBA7FDB5441AE47E1CAD4155141E17A146E80DB5441F6285C0FCE155141EC51B80E85DB54410AD7A380CF15514185EB519886DB5441E17A146ED215514148E17AA485DB54419A9999D9D4155141295C8F3285DB544185EB51D8D7155141C3F528FC83DB54411F85EBD1D9155141AE47E1BA83DB5441A4703D6ADB155141000000C084DB5441295C8F12DD15514185EB516886DB544100000090DC1551415C8FC23589DB5441666666B6DA155141C3F5287C8ADB5441E17A14FED8155141A4703D0A8ADB5441F6285C0FD615514185EB51A889DB5441A4703D9AD11551415C8FC21588DB544114AE4711D3155141B81E850B8DDB5441333333E3C1155141EC51B82E93DB5441A4703DCABF155141F6285CBF90DB5441AE47E12ABF1551411F85EB0190DB5441CDCCCCACB91551413D0AD7B394DB544185EB51D8B21551419A9999299BDB54419A9999C9AE1551419A9999C99EDB54411F85EB11AC15514152B81E15A2DB544114AE4731AD15514166666686A4DB54417B14AED7AE155141C3F528BCA4DB544133333323B215514185EB5158A3DB544166666616B5155141D7A3703DA2DB5441E17A145EB8155141A4703DAAA2DB544114AE4701BB1551418FC2F598A1DB54413D0AD763C21551410AD7A3E09DDB54415C8FC2B5CC155141D7A3708D99DB5441C3F5280CD215514185EB51A896DB5441E17A14BED5155141333333A395DB5441EC51B80ED915514114AE473195DB5441CDCCCCECDB155141D7A3706D94DB54419A999999DE1551415C8FC2E592DB54410AD7A3F0DF155141AE47E1BA90DB544133333383E015514114AE47B18EDB544185EB5148DE155141666666968CDB54419A999989DE155141F6285C0F8BDB54415C8FC205E1155141333333E38BDB5441010300000001000000630000008FC2F51851165141666666F622DB5441666666464416514152B81EA52ADB5441000000503E165141D7A3700D30DB544148E17AE4371651415C8FC28534DB54415C8FC27531165141E17A146E3ADB5441C3F5288C2C1651417B14AEB73FDB5441A4703D0A241651411F85EB214ADB5441E17A148E1D1651415C8FC24551DB5441E17A145E0F165141AE47E18A61DB54411F85EBF1101651419A9999F962DB544133333303141651415C8FC22562DB5441D7A3700D1616514114AE474163DB544148E17A9418165141F6285C7F62DB54417B14AEA7191651418FC2F57860DB5441F6285C2F1C165141295C8F325EDB54415C8FC2551E165141EC51B80E5DDB54410AD7A3E021165141A4703D7A5BDB54419A9999E92416514148E17A7459DB5441D7A370BD281651418FC2F5E858DB54418FC2F5782D16514152B81E8556DB5441C3F5289C30165141295C8FF254DB5441CDCCCC9C301651411F85EB4153DB5441333333832D165141295C8FA253DB5441F6285C1F2C1651410AD7A3F052DB5441D7A3708D2B165141AE47E10A51DB5441295C8F222D1651411F85EB014EDB5441CDCCCCBC30165141666666364ADB544152B81E65331651413333330349DB5441CDCCCC1C361651411F85EBB148DB544148E17A94381651413333332349DB5441EC51B80E3C1651415C8FC28544DB5441666666A63E165141D7A370DD41DB5441B81E853B401651417B14AEF73FDB5441713D0A1744165141000000503DDB54413D0AD7734816514185EB51C83ADB54411F85EB314D16514114AE477138DB54419A9999F95416514152B81E6534DB544185EB519854165141D7A370CD31DB5441713D0A1754165141666666562FDB5441713D0A4754165141F6285C0F2DDB5441D7A3703D561651419A9999292BDB5441713D0A8759165141713D0A272ADB5441EC51B8FE5B165141666666F629DB5441713D0AF75E165141713D0A272ADB5441000000E0611651413333330329DB54418FC2F5C8641651417B14AEC71FDB54418FC2F5386A1651411F85EBF11DDB5441713D0AF76E165141713D0A771FDB54410AD7A31072165141D7A3709D21DB544152B81E957316514152B81E3524DB544185EB51C874165141666666C624DB54411F85EBF1771651411F85EB4123DB544148E17AD478165141B81E850B21DB54417B14AED779165141713D0AA71FDB5441333333A37D1651410AD7A3601DDB5441AE47E14A80165141A4703D4A1BDB54413333331383165141AE47E18A1BDB5441AE47E19A851651419A9999291BDB54413D0AD78388165141AE47E17A1BDB5441000000C08C165141666666E619DB54419A9999E98F165141EC51B87E17DB544148E17A74931651417B14AE2715DB54410AD7A31096165141A4703D2A17DB5441CDCCCC5C981651415C8FC2A51ADB54410AD7A380991651417B14AE071DDB5441E17A14DEA2165141CDCCCC2C1ADB5441D7A3702DA1165141EC51B86E17DB54411F85EB619D1651415C8FC28514DB5441295C8F2298165141A4703D8A10DB54419A99993995165141295C8F020EDB5441713D0A47941651417B14AE770ADB5441C3F5282C96165141B81E855B06DB5441295C8F329816514148E17AE403DB5441EC51B84E9C165141F6285C3F02DB544114AE4791A2165141D7A3709D01DB54410AD7A3A0A716514152B81E3504DB54415C8FC235AA165141EC51B82E08DB5441B81E856BB3165141EC51B87E01DB5441B81E85BBBC165141A4703D0AFCDA5441B81E859BC516514133333313F8DA5441C3F5280CC5165141C3F5280CF7DA5441AE47E1BAD01651415C8FC265EBDA54419A999979DD1651410AD7A360E2DA5441295C8F12EB16514148E17A74E1DA54411F85EB31ED165141E17A149ED3DA54410AD7A340ED1651417B14AE17D2DA54411F85EBF1E2165141CDCCCC2CD3DA54413D0AD7B3D6165141666666D6D4DA544166666676D2165141EC51B86ED6DA54415C8FC2F5CA1651415C8FC2B5D9DA5441E17A14EEC216514114AE4731DFDA54410AD7A370B1165141713D0AB7EBDA544185EB51A8A2165141B81E85ABF5DA5441F6285CFF9416514152B81EC5FFDA5441295C8F9287165141713D0A0709DB5441D7A3702D7C165141B81E851B0FDB5441713D0AD767165141CDCCCC7C17DB5441AE47E17A5F165141666666A61BDB54418FC2F51851165141666666F622DB54410103000000010000001500000014AE47112F1551417B14AE1710DC5441F6285C4F311551410AD7A3A00EDC5441713D0AC73A1551416666661607DC54417B14AE97481551411F85EBC1FCDB54418FC2F5584F155141333333A3F8DB5441000000A058155141CDCCCCBCF5DB5441B81E85BB5C15514100000090EADB5441713D0AF75E155141CDCCCCFCE4DB54415C8FC23562155141E17A141EDFDB544152B81E0567155141F6285CFFD6DB544185EB516869155141295C8FE2D0DB54413D0AD71368155141CDCCCCFCCFDB5441CDCCCC3C64155141EC51B8EED6DB544114AE47715C1551417B14AE37DEDB5441B81E853B55155141D7A3702DE6DB54415C8FC2054C15514148E17A44EFDB5441295C8FE2391551410AD7A330FFDB5441CDCCCC0C331551419A9999C904DC544185EB51282B155141A4703DCA0CDC5441CDCCCC9C2B15514152B81E1510DC544114AE47112F1551417B14AE1710DC5441
+</a>
+
+<b>
+0106000000010000000103000000010000007500000014AE4791A2165141D7A3709D01DB5441BC3A2C60A816514178F19B9BFEDA5441F3D15A92B11651411804F9F3FADA544145532CD4BB1651413CB5E1C2F3DA5441287ECC22C2165141C4B0437DEDDA544165EF5AEAC816514174BC3E07E7DA54419E3C72CFCE1651414A59CA31E2DA544170EBCD1EDA165141D2D97004DEDA5441DED66BD8DC165141723CD567DDDA5441084CEF03E016514145DA4692DCDA5441F20F3621E316514184B5F348D4DA544160EC793AD71651419B52A49ED5DA5441010CB280D3165141B68F8B0AD6DA544166666676D2165141EC51B86ED6DA5441A71F372BD11651410C4466FFD6DA54411E04B661CA16514107028975DBDA5441027C3DE0C416514136ED3BE8DEDA5441F30E2647B416514123B9DFAEE9DA54410AD7A370B1165141713D0AB7EBDA544185EB51A8A2165141B81E85ABF5DA5441F6285CFF9416514152B81EC5FFDA5441295C8F9287165141713D0A0709DB5441D7A3702D7C165141B81E851B0FDB5441EAB8B1F56716514153452B7017DB54417641B17060165141B123022C1BDB5441D2F3BAE85016514185E44B1323DB544169A9BA674A165141D768DEF826DB544135423FCC4416514149FC44272BDB5441544033043F165141EE5D036A2FDB5441000000503E165141D7A3700D30DB54414BA8685739165141F40C0CB834DB544111BDB5E435165141E8D052D537DB544127F96EC732165141F8CFA6B93ADB544152218738301651418DF6513A3DDB544130FBB1452C1651416AF5BAD740DB54416523CAB62916514185F40EBC43DB5441C6270F312416514165A165F249DB5441A4703D0A241651411F85EB214ADB544178D8A17A1D165141B2C846DC51DB5441A62BD6AF0F165141C7C314C461DB544187D997A70F1651418FD1A2CD61DB54411F85EBF1101651419A9999F962DB544133333303141651415C8FC22562DB5441D7A3700D1616514114AE474163DB5441205EEF5518165141CDDC1A9262DB5441B241AEA218165141FC1F9C6462DB54417B14AEA7191651418FC2F57860DB544162FFCEAC191651410B2C597460DB5441F6285C2F1C165141295C8F325EDB544129BAA46C1C16514155C510125EDB54415C8FC2551E165141EC51B80E5DDB54418A6EE4B9211651413C9F858B5BDB5441AD902CCA2316514123B304345ADB54419A9999E92416514148E17A7459DB544196A1BFF22416514194652D7359DB544189AD85B6281651411A9FACC158DB544133E8BCEF291651418F50D41658DB5441806033E82A16514106ACCBD057DB544107419D452B165141D3B89EA157DB5441575201BB2B16514147DF556657DB5441210619202C165141DD24483357DB5441D3A82A9C30165141B58512EE54DB5441CDCCCC9C301651411F85EB4153DB5441333333832D165141295C8FA253DB5441F6285C1F2C1651410AD7A3F052DB5441D7A3708D2B165141AE47E10A51DB5441295C8F222D1651411F85EB014EDB5441CDCCCCBC30165141666666364ADB544152B81E65331651413333330349DB5441CDCCCC1C361651411F85EBB148DB544148E17A94381651413333332349DB5441EC51B80E3C1651415C8FC28544DB5441666666A63E165141D7A370DD41DB5441B81E853B401651417B14AEF73FDB5441713D0A1744165141000000503DDB54413D0AD7734816514185EB51C83ADB54411F85EB314D16514114AE477138DB54416C99EB944F165141921E693337DB5441B91862F954165141320EA46334DB5441E54246E154165141808529BF33DB5441C28B59BB5416514199166DBC32DB5441BFFA70B754165141E6DAC2A132DB54415C49DDB054165141E814E47432DB5441B8D0D37D541651414AE91F4C31DB5441713D0A1754165141666666562FDB5441713D0A4754165141F6285C0F2DDB5441D7A3703D561651419A9999292BDB5441713D0A8759165141713D0A272ADB5441EC51B8FE5B165141666666F629DB544149F7B36A5D1651412F63AF0D2ADB54412AEB6FE15E165141EC86EB6D29DB54418B11301B62165141029B772628DB5441344F6627621651413FF7AB2028DB54418FC2F5C8641651417B14AEC71FDB54418FC2F5386A1651411F85EBF11DDB5441713D0AF76E165141713D0A771FDB54410AD7A31072165141D7A3709D21DB544152B81E957316514152B81E3524DB544185EB51C874165141666666C624DB54411F85EBF1771651411F85EB4123DB544148E17AD478165141B81E850B21DB54417B14AED779165141713D0AA71FDB5441333333A37D1651410AD7A3601DDB5441AE47E14A80165141A4703D4A1BDB54413333331383165141AE47E18A1BDB5441AE47E19A851651419A9999291BDB54413D0AD78388165141AE47E17A1BDB5441000000C08C165141666666E619DB54419A9999E98F165141EC51B87E17DB544148E17A74931651417B14AE2715DB54418A2B7AD6941651413967DF6F0DDB544148AF21099516514112D1584D0DDB5441713D0A47941651417B14AE770ADB5441C3F5282C96165141B81E855B06DB5441295C8F329816514148E17AE403DB5441EC51B84E9C165141F6285C3F02DB544114AE4791A2165141D7A3709D01DB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979949 - 3185798
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000002000000085EB5108B49F514133333313D4A55441EC51B84EB59F51419A9999C9D7A55441D7A370CDB69F514166666606DCA55441333333E3B79F51419A999959DFA55441EC51B87EBA9F5141EC51B80EE4A5544185EB5108BC9F514152B81EC5E6A5544152B81E35BD9F51411F85EBC1EAA554418FC2F538C19F5141EC51B8AEEBA554419A9999B9CD9F514114AE4721E8A554415C8FC205D49F5141E17A14DEE4A55441B81E854BE39F51418FC2F5D8DDA55441CDCCCC7CF09F514114AE4741D8A55441CDCCCC2CF89F5141AE47E1FAD5A55441CDCCCC1C17A05141F6285CDFBDA554413D0AD7131DA0514185EB5108B9A554410AD7A3302AA051415C8FC295AEA55441B81E85EB29A0514166666636AEA554418FC2F5082BA0514100000050ADA554419A99999928A05141C3F5285CAAA554415C8FC23526A051415C8FC2F5A6A5544185EB51681FA05141A4703DCA9BA55441D7A3706D1EA05141F6285CBF9AA55441AE47E15A1DA05141295C8F229BA55441B81E855B07A0514148E17AA4ACA55441713D0AC700A0514166666636B2A554419A9999C9F69F51413D0AD733BAA55441EC51B88EF09F5141E17A14AEBEA55441295C8FE2E79F5141713D0AA7C3A5544133333383DE9F5141EC51B8AEC7A554411F85EBE1D79F51419A999939CAA55441713D0A87D19F51415C8FC255CCA5544185EB5108B49F514133333313D4A5544101030000000200000021000000D7A370ED689F514148E17AF4F9A5544100000090699F5141F6285CBFFEA55441295C8F726C9F5141E17A14EE01A65441AE47E16A7D9F514148E17AB4FEA55441E17A147E889F51419A999949FCA554411F85EBD1949F5141B81E85DBF8A5544100000080A19F514152B81EE5F2A55441AE47E1BAA99F5141EC51B8BEEFA55441366C44D9AB9F5141944C8E05E6A55441F4582B5DAC9F51415317B829E5A55441358E0139AD9F5141DCCEC8D1E4A55441AD91D73DB19F514150FD4567E5A554416F315AD1B39F5141CCD6136FE6A55441FED735ABB69F51418AE5B752E8A55441BCE6D98EB89F5141C291FA1BEAA55441713D0A77B79F5141333333C3ECA55441B81E858BB99F51411F85EBB1EBA55441AE47E17ABC9F514114AE47D1EAA554419A999959BB9F51417B14AE37E7A5544185EB5118BA9F51419A999919E4A554417B14AE87B79F5141295C8F82DFA55441E17A146EB69F514100000040DCA55441E17A149EB49F51415C8FC2C5D7A5544152B81E15B39F51418FC2F548D4A55441000000509A9F5141713D0A77DAA5544148E17AF48C9F514152B81EF5DEA554411F85EB117E9F5141A4703DBAE3A55441C3F528CC7B9F514152B81E45E5A55441A4703D7A6E9F5141295C8FE2E8A554417B14AE27659F51411F85EB51EAA5544133333363649F51418FC2F5E8EBA55441AE47E10A669F5141A4703D6AF5A55441D7A370ED689F514148E17AF4F9A5544107000000D7A370FD999F51415C8FC275EFA554419A9999F9939F5141E17A142EECA554419A9999899F9F51419A999959E8A55441D7A370EDA49F51419A999959E8A5544152B81E15A59F5141E17A14EEEAA554419A999969A19F5141E17A142EECA55441D7A370FD999F51415C8FC275EFA55441
+</a>
+
+<b>
+0106000000010000000103000000020000002800000025C96F41BC9F51415551461AEAA554419A999959BB9F51417B14AE37E7A5544185EB5118BA9F51419A999919E4A554417B14AE87B79F5141295C8F82DFA55441E17A146EB69F514100000040DCA55441E17A149EB49F51415C8FC2C5D7A5544152B81E15B39F51418FC2F548D4A55441000000509A9F5141713D0A77DAA5544148E17AF48C9F514152B81EF5DEA554411F85EB117E9F5141A4703DBAE3A55441C3F528CC7B9F514152B81E45E5A55441A4703D7A6E9F5141295C8FE2E8A554417B14AE27659F51411F85EB51EAA5544133333363649F51418FC2F5E8EBA55441AE47E10A669F5141A4703D6AF5A55441D7A370ED689F514148E17AF4F9A5544100000090699F5141F6285CBFFEA55441295C8F726C9F5141E17A14EE01A65441AE47E16A7D9F514148E17AB4FEA55441E17A147E889F51419A999949FCA554411F85EBD1949F5141B81E85DBF8A5544100000080A19F514152B81EE5F2A55441AE47E1BAA99F5141EC51B8BEEFA554410F6D5417AC9F51418E0BF540EAA55441A0FC74B7AC9F514184856270E7A55441C7370C5FAD9F51410BD8F5D9E5A554416BEAE6F5AD9F5141336A6D50E4A554413B20088AAE9F5141619C08E9E3A55441FCD38551AF9F51418FB792B9E3A55441B3113423B19F51419C1E3136E4A55441BA3569E1B19F51410CF729DAE4A554416F315AD1B39F5141CCD6136FE6A55441FED735ABB69F51418AE5B752E8A55441BCE6D98EB89F5141C291FA1BEAA55441713D0A77B79F5141333333C3ECA55441B81E858BB99F51411F85EBB1EBA55441AE47E17ABC9F514114AE47D1EAA55441CD99A271BC9F514126D1D3B3EAA5544146393163BC9F51410A90D085EAA5544125C96F41BC9F51415551461AEAA5544107000000D7A370FD999F51415C8FC275EFA554419A9999F9939F5141E17A142EECA554419A9999899F9F51419A999959E8A55441D7A370EDA49F51419A999959E8A5544152B81E15A59F5141E17A14EEEAA554419A999969A19F5141E17A142EECA55441D7A370FD999F51415C8FC275EFA55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979949 - 3407978
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000002000000085EB5108B49F514133333313D4A55441EC51B84EB59F51419A9999C9D7A55441D7A370CDB69F514166666606DCA55441333333E3B79F51419A999959DFA55441EC51B87EBA9F5141EC51B80EE4A5544185EB5108BC9F514152B81EC5E6A5544152B81E35BD9F51411F85EBC1EAA554418FC2F538C19F5141EC51B8AEEBA554419A9999B9CD9F514114AE4721E8A554415C8FC205D49F5141E17A14DEE4A55441B81E854BE39F51418FC2F5D8DDA55441CDCCCC7CF09F514114AE4741D8A55441CDCCCC2CF89F5141AE47E1FAD5A55441CDCCCC1C17A05141F6285CDFBDA554413D0AD7131DA0514185EB5108B9A554410AD7A3302AA051415C8FC295AEA55441B81E85EB29A0514166666636AEA554418FC2F5082BA0514100000050ADA554419A99999928A05141C3F5285CAAA554415C8FC23526A051415C8FC2F5A6A5544185EB51681FA05141A4703DCA9BA55441D7A3706D1EA05141F6285CBF9AA55441AE47E15A1DA05141295C8F229BA55441B81E855B07A0514148E17AA4ACA55441713D0AC700A0514166666636B2A554419A9999C9F69F51413D0AD733BAA55441EC51B88EF09F5141E17A14AEBEA55441295C8FE2E79F5141713D0AA7C3A5544133333383DE9F5141EC51B8AEC7A554411F85EBE1D79F51419A999939CAA55441713D0A87D19F51415C8FC255CCA5544185EB5108B49F514133333313D4A5544101030000000200000021000000D7A370ED689F514148E17AF4F9A5544100000090699F5141F6285CBFFEA55441295C8F726C9F5141E17A14EE01A65441AE47E16A7D9F514148E17AB4FEA55441E17A147E889F51419A999949FCA554411F85EBD1949F5141B81E85DBF8A5544100000080A19F514152B81EE5F2A55441AE47E1BAA99F5141EC51B8BEEFA55441366C44D9AB9F5141944C8E05E6A55441F4582B5DAC9F51415317B829E5A55441358E0139AD9F5141DCCEC8D1E4A55441AD91D73DB19F514150FD4567E5A554416F315AD1B39F5141CCD6136FE6A55441FED735ABB69F51418AE5B752E8A55441BCE6D98EB89F5141C291FA1BEAA55441713D0A77B79F5141333333C3ECA55441B81E858BB99F51411F85EBB1EBA55441AE47E17ABC9F514114AE47D1EAA554419A999959BB9F51417B14AE37E7A5544185EB5118BA9F51419A999919E4A554417B14AE87B79F5141295C8F82DFA55441E17A146EB69F514100000040DCA55441E17A149EB49F51415C8FC2C5D7A5544152B81E15B39F51418FC2F548D4A55441000000509A9F5141713D0A77DAA5544148E17AF48C9F514152B81EF5DEA554411F85EB117E9F5141A4703DBAE3A55441C3F528CC7B9F514152B81E45E5A55441A4703D7A6E9F5141295C8FE2E8A554417B14AE27659F51411F85EB51EAA5544133333363649F51418FC2F5E8EBA55441AE47E10A669F5141A4703D6AF5A55441D7A370ED689F514148E17AF4F9A5544107000000D7A370FD999F51415C8FC275EFA554419A9999F9939F5141E17A142EECA554419A9999899F9F51419A999959E8A55441D7A370EDA49F51419A999959E8A5544152B81E15A59F5141E17A14EEEAA554419A999969A19F5141E17A142EECA55441D7A370FD999F51415C8FC275EFA55441
+</a>
+
+<b>
+0106000000010000000103000000020000002800000025C96F41BC9F51415551461AEAA554419A999959BB9F51417B14AE37E7A5544185EB5118BA9F51419A999919E4A554417B14AE87B79F5141295C8F82DFA55441E17A146EB69F514100000040DCA55441E17A149EB49F51415C8FC2C5D7A5544152B81E15B39F51418FC2F548D4A55441000000509A9F5141713D0A77DAA5544148E17AF48C9F514152B81EF5DEA554411F85EB117E9F5141A4703DBAE3A55441C3F528CC7B9F514152B81E45E5A55441A4703D7A6E9F5141295C8FE2E8A554417B14AE27659F51411F85EB51EAA5544133333363649F51418FC2F5E8EBA55441AE47E10A669F5141A4703D6AF5A55441D7A370ED689F514148E17AF4F9A5544100000090699F5141F6285CBFFEA55441295C8F726C9F5141E17A14EE01A65441AE47E16A7D9F514148E17AB4FEA55441E17A147E889F51419A999949FCA554411F85EBD1949F5141B81E85DBF8A5544100000080A19F514152B81EE5F2A55441AE47E1BAA99F5141EC51B8BEEFA554410F6D5417AC9F51418E0BF540EAA55441A0FC74B7AC9F514184856270E7A55441C7370C5FAD9F51410BD8F5D9E5A554416BEAE6F5AD9F5141336A6D50E4A554413B20088AAE9F5141619C08E9E3A55441FCD38551AF9F51418FB792B9E3A55441B3113423B19F51419C1E3136E4A55441BA3569E1B19F51410CF729DAE4A554416F315AD1B39F5141CCD6136FE6A55441FED735ABB69F51418AE5B752E8A55441BCE6D98EB89F5141C291FA1BEAA55441713D0A77B79F5141333333C3ECA55441B81E858BB99F51411F85EBB1EBA55441AE47E17ABC9F514114AE47D1EAA55441CD99A271BC9F514126D1D3B3EAA5544146393163BC9F51410A90D085EAA5544125C96F41BC9F51415551461AEAA5544107000000D7A370FD999F51415C8FC275EFA554419A9999F9939F5141E17A142EECA554419A9999899F9F51419A999959E8A55441D7A370EDA49F51419A999959E8A5544152B81E15A59F5141E17A14EEEAA554419A999969A19F5141E17A142EECA55441D7A370FD999F51415C8FC275EFA55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>475530 - 42288
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002B00000085EB5128CB3A514152B81E758CB554410AD7A370D53A51411F85EB518DB5544133333333EF3A51418FC2F5988FB55441713D0A17103B51410AD7A3E092B554418FC2F5C81F3B51410000002095B55441A4703DBA213B51413333336395B55441000000D0213B51415C8FC29594B5544133333373243B51418FC2F5B87BB55441713D0AB7253B5141A4703DCA6FB55441A4703DDA223B5141C3F5287C6FB5544104EA0909243B51416575E9EC63B554412BD6B895253B51415D5C7AB655B554414375121F263B51411D85F5A650B55441B81E855B263B5141CDCCCC6C4EB55441CDCCCCDC253B51411F85EBB148B55441EB4B40F6253B5141B399225A44B554413EEACE0B263B51417D6274AC40B55441FF115BE51E3B5141C2AC27D540B5544182F8276E1F3B51414D96C17E42B55441708F8E70203B5141616CC2F246B55441642AD493203B5141A680B4B749B5544160DB8B06203B5141E9E90A754FB55441528C43791F3B5141FC1640FD52B554419461C16B1E3B51417950F9995AB55441F2A2A57C1D3B51412E8FF3E85EB55441FC41F4B21C3B5141BDCB605C60B554412917F4CE1B3B5141D304618C61B5544149B6C0DB1A3B51418BC3FA5162B554415B1F5AD9193B51414382941763B554417BBE26E6183B5141AE322E9163B55441080BC04B173B5141A0FCFA8163B55441C3C928350D3B5141E1118D6963B5544152AAAD7F083B5141893DF6FB62B55441C3F5282CE83A51410AD7A3A05EB554415F8B860CE53A5141EC11F0FA5EB5544115B54B42E03A5141D9F840FC61B55441ABC677F0DB3A514138C9A66763B554410BF9D8B4CF3A51418124AA8E61B5544131FF4F23CD3A5141B85CB9D761B55441CDCCCC8CCC3A51410000005067B55441D7A3705DCA3A5141AE47E14A7DB554413D0AD733CA3A5141B81E857B84B5544185EB5128CB3A514152B81E758CB55441
+</a>
+
+<b>
+010600000001000000010300000001000000190000007BBE26E6183B5141AE322E9163B55441988968BE183B51412160B58F63B55441080BC04B173B5141A0FCFA8163B55441525005DA113B514140FACB7463B55441B58E51F9233B5141C1718B8664B5544104EA0909243B51416575E9EC63B554412BD6B895253B51415D5C7AB655B554414375121F263B51411D85F5A650B55441B81E855B263B5141CDCCCC6C4EB55441CDCCCCDC253B51411F85EBB148B55441EB4B40F6253B5141B399225A44B554413EEACE0B263B51417D6274AC40B55441FF115BE51E3B5141C2AC27D540B5544182F8276E1F3B51414D96C17E42B55441708F8E70203B5141616CC2F246B55441642AD493203B5141A680B4B749B5544160DB8B06203B5141E9E90A754FB55441528C43791F3B5141FC1640FD52B554419461C16B1E3B51417950F9995AB55441F2A2A57C1D3B51412E8FF3E85EB55441FC41F4B21C3B5141BDCB605C60B554412917F4CE1B3B5141D304618C61B5544149B6C0DB1A3B51418BC3FA5162B554415B1F5AD9193B51414382941763B554417BBE26E6183B5141AE322E9163B55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>977672 - 3933956
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C0000007B14AE3708315141000000D018565441A4703D8A09315141D7A3701D115654413D0AD753DE305141EC51B8AE0E565441F67D1568D130514105CEC6C014565441A9FB00A6D13051411DC04B341656544175A94D1BDB3051417A03468416565441451A87BDE2305141C7A0E9091756544160548DBDEB305141FF6E064217565441500C2AE4F230514122C174AC175654411E5BAA48FC3051411C61151818565441D38D7E4D03315141AEFA2A8A185654417B14AE3708315141000000D018565441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000007B14AE3708315141000000D018565441A4703D8A09315141D7A3701D115654413D0AD753DE305141EC51B8AE0E565441A4703DEAD43051417B14AE571656544176A94D1BDB3051417A03468416565441461A87BDE2305141C3A0E909175654415C548DBDEB305141FA6E0642175654414E0C2AE4F23051411DC174AC175654411D5BAA48FC3051411B61151818565441D08D7E4D03315141ABFA2A8A185654417B14AE3708315141000000D018565441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>794076 - 990136
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000018000000D96CBC334C02514151BA1152FF60544114AE47F14402514166666676FE605441EC51B89E44025141CDCCCC6CFE6054414A79929443025141C26F205D016154413D0AD73348025141666666A602615441B81E85AB4902514152B81EC50261544114AE47616902514114AE47510B61544114AE47F1870251410000001013615441D7A3709DC2025141000000A02261544114AE4741C3025141666666C61D6154415A4085DF76025141A7A72CD20761544181B11F2F6C025141151CBC0B05615441E51BE9006C025141B6E298130561544135E3DAE06B0251413E3BACF9046154414B5EE9AA6902514163153D7B0461544126787BE766025141BEC3B8E403615441191CCCFC64025141AFC95E7E0361544116BA76786302514163FB193003615441ECF0FECC610251410B78DAE702615441F9EF94C75C025141F038211502615441DC5999185302514151FEE8810061544110808EF64D025141B930F096FF6054418053A0E74C02514128D9C566FF605441D96CBC334C02514151BA1152FF605441
+</a>
+
+<b>
+01060000000100000001030000000100000027000000DA5E69724C025141D4574859FF60544114AE47F14402514166666676FE605441EC51B89E44025141CDCCCC6CFE6054414A79929443025141C26F205D016154413D0AD73348025141666666A602615441B81E85AB4902514152B81EC50261544114AE47616902514114AE47510B61544114AE47F1870251410000001013615441D7A3709DC2025141000000A02261544114AE4741C3025141666666C61D615441F3694ED076025141387439CE076154411432C17874025141DAB49032076154413FEFF8A071025141D2349D7506615441FE6A4B8B6F025141ADB60EEB05615441C49110466C02514157DCB011056154410EC81AB76B0251418A7658F00461544146DA1E80670251410DAD3205046154411B0E684662025141689D5FFC02615441D27EC9BA60025141DEB0E6BA026154412E4E9FCD5E02514141F00D6A02615441E9C676645D0251416F21D92E0261544191B3388E5B0251412BFA28E201615441C1B5FD065A025141183D86A2016154415D170B2C59025141314FE97E016154415B0CA1EE5702514165B9764B01615441DD124E4656025141AD15D307016154416FEE06055502514104839CD40061544117DE247454025141639772BD006154417FA435CA530251411A740E9F006154418042AA8B53025141B750A09400615441A674D9F652025141960AE07B0061544161F2AC7A52025141CDBEAB6500615441B5B1DDDA51025141F9271849006154419962E911510251415916292500615441704A4AE14F0251411275B0EEFF60544187330DBA4E0251412958E5B9FF60544190508BB84D02514161EFE98BFF605441B7BB06CA4C025141EFBD5D63FF605441DA5E69724C025141D4574859FF605441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>794076 - 3375182
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000018000000D96CBC334C02514151BA1152FF60544114AE47F14402514166666676FE605441EC51B89E44025141CDCCCC6CFE6054414A79929443025141C26F205D016154413D0AD73348025141666666A602615441B81E85AB4902514152B81EC50261544114AE47616902514114AE47510B61544114AE47F1870251410000001013615441D7A3709DC2025141000000A02261544114AE4741C3025141666666C61D6154415A4085DF76025141A7A72CD20761544181B11F2F6C025141151CBC0B05615441E51BE9006C025141B6E298130561544135E3DAE06B0251413E3BACF9046154414B5EE9AA6902514163153D7B0461544126787BE766025141BEC3B8E403615441191CCCFC64025141AFC95E7E0361544116BA76786302514163FB193003615441ECF0FECC610251410B78DAE702615441F9EF94C75C025141F038211502615441DC5999185302514151FEE8810061544110808EF64D025141B930F096FF6054418053A0E74C02514128D9C566FF605441D96CBC334C02514151BA1152FF605441
+</a>
+
+<b>
+01060000000100000001030000000100000027000000DA5E69724C025141D4574859FF60544114AE47F14402514166666676FE605441EC51B89E44025141CDCCCC6CFE6054414A79929443025141C26F205D016154413D0AD73348025141666666A602615441B81E85AB4902514152B81EC50261544114AE47616902514114AE47510B61544114AE47F1870251410000001013615441D7A3709DC2025141000000A02261544114AE4741C3025141666666C61D615441F3694ED076025141387439CE076154411432C17874025141DAB49032076154413FEFF8A071025141D2349D7506615441FE6A4B8B6F025141ADB60EEB05615441C49110466C02514157DCB011056154410EC81AB76B0251418A7658F00461544146DA1E80670251410DAD3205046154411B0E684662025141689D5FFC02615441D27EC9BA60025141DEB0E6BA026154412E4E9FCD5E02514141F00D6A02615441E9C676645D0251416F21D92E0261544191B3388E5B0251412BFA28E201615441C1B5FD065A025141183D86A2016154415D170B2C59025141314FE97E016154415B0CA1EE5702514165B9764B01615441DD124E4656025141AD15D307016154416FEE06055502514104839CD40061544117DE247454025141639772BD006154417FA435CA530251411A740E9F006154418042AA8B53025141B750A09400615441A674D9F652025141960AE07B0061544161F2AC7A52025141CDBEAB6500615441B5B1DDDA51025141F9271849006154419962E911510251415916292500615441704A4AE14F0251411275B0EEFF60544187330DBA4E0251412958E5B9FF60544190508BB84D02514161EFE98BFF605441B7BB06CA4C025141EFBD5D63FF605441DA5E69724C025141D4574859FF605441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979957 - 1878607
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000020000000103000000010000006E0000006109A1F417B45041AFE2D4B7BF255441369A133C18B45041A7EE02EFBF2554413211E0C317B450418CD17FCCBF255441D108A1F417B450419DE2D4B7BF255441EE56424816B45041D1F2FE6CBE2554411CF3764C14B450412974CE96BC255441EF4AB45112B45041C8513A9BBA255441A3D48F160FB450414668F6F4B6255441DFE8AF3E0CB450410D34D2BEB3255441D529862709B45041FFE13141B02554417EDBE2E806B450413EC622B8AD255441FEE0EBD003B450413D498264AA2554419D351E48FBB35041B224B123A82554415CC94EDCF8B35041626E7C99A72554417F4F982AF2B350412F5944EEA6255441492F530EEEB35041D207865FA7255441E8EFE6A4E2B350411458F599A8255441B66F93D9DEB3504134BE8002A9255441A2B3FA5DD5B35041A3CD3295A7255441358FA6F8D2B35041B4FB3620A7255441116922AFCDB350417B35101BA625544189694367C4B350410B0B8932A4255441B81ADD16BDB350413FBFE2B2A2255441B2003111BCB3504124845F17A32554412600A2F5BBB35041A2C07047A3255441E7760A05BFB35041279FE194A62554419709E959BFB35041B118DCD8A6255441AFDBDE47C1B3504128A38264A8255441762EEA55C5B350415298F5A3AB255441CC5B4EBAC6B350414833F330AD2554416DD8EA52C7B35041A5C80269AE2554418F48794CC8B35041AE544E67B02554418560E0DCCAB350415147FA30B2255441E23EFDECCCB35041CFE2982AB32554410FB734E7D2B3504186E4DFFDB5255441FD7578A0D5B35041122F7247B725544174F3A294DCB35041E0AE42A7BA255441C2C13C6BDEB35041E668A1BFBB255441F03EC2AADFB3504191EEFD7DBC255441882D8AEBE1B3504169A3DE23BF2554418308C1DCE1B3504100FA70DFC0255441D45853C9E2B350417E971551C2255441749965B0E1B35041F70FF1B3C32554410046535CE0B350416B630308C5255441D3F840D7DFB35041DA914C4DC6255441BE641C9CDFB35041BD13A8E6C82554414DA362F5DFB35041A29DA088C92554417753E93CE1B3504125842588CD25544109C527E1DDB350414F34ACCFCE25544157582B71D8B35041648C6F73CF25544147D658F6D7B350416F3851C5CF255441E8C96915D5B35041D8F021F8D2255441C0099CE2D3B350413487F110D32554417E286522D3B35041C293F1AED4255441B46D017CD3B350414B55D47CD62554419F153ED8D2B35041A48BD234D9255441656F77D8D2B35041A150962BDA255441ACD0F760DFB350412673169EDE2554416DB94756E2B3504100F93158DC2554414B2F1E12E3B3504103092223DA25544102CE611BE4B35041484D6E04D7255441F66F1C68E5B3504140F65055D4255441752BDEBDE6B35041345B09A4D1255441A9F30E03E8B3504191342B14CF2554418DD2AC1CE8B350410DE9C51ACF25544130CF3DB4EEB350413B276A92D2255441D2C82044FDB35041C6163E3BDA255441E115D66C04B4504148263AFFDD2554413F21FA5009B450417BF0D691E02554419D01E8790DB45041DC15FBC1E2255441E42F0E3910B4504174362301E4255441E6C8B50615B45041E317D1E8E5255441A45F6B1E18B450416FB9CE22E7255441181451841CB450410E506CE4E8255441652CDB0817B45041CF5F3589E42554416354A62114B45041EE6DC207E225544109FCE60A0FB45041F9117E72DC255441769FCD540DB4504102738CFAD8255441ED1184B80CB45041C729C78BD62554412F9CFC3D0CB45041D78891C1D425544166CDDEC80BB4504121E35A11D4255441C50FEE290BB45041426E85DED3255441269FBFE408B450411317927FD32554418BDCE63506B45041691EBA2DD3255441708D5A7EFFB350418EA5B7ACD0255441E17A148EFDB350411F85EBB1CF2554411F85EB21FEB3504148E17AA4CE2554415CAA337BFEB3504110F0AFD2CE255441079CF0E2FFB350415013DE8CCF2554415853FB4D04B45041B263376AD1255441C568F5E905B450414D72B6DBD12554415F8C2EEF07B45041AD800A37D225544104445EEB08B45041F629D85AD22554416F0E07B409B45041CF155577D22554412E2B014E0BB45041DD825B7CD2255441596E5F1E0CB4504184143535D22554419653517E0DB45041946FAC35D02554415F14ED0B0EB45041A2572C0ECF25544193E1FCE10EB4504133CBCBA4CD255441D98A410710B45041C0E5DCC7CB2554411671EDE812B4504138087240C9255441FE4459E213B450410E9B7378C8255441C33E5AA315B4504173116D10C72554413F7B9DEA18B45041FF409C24C4255441FDC8AE331BB45041635638EEC12554415206FAE01DB450419CED7101BF255441A05938901DB45041883EADD8BE2554415B1508061CB45041CCAA1774BE25544191C1A9581BB4504125B8DA47BE2554416109A1F417B45041AFE2D4B7BF255441010300000001000000040000005206FAE01DB450419CED7101BF255441132A403D1FB45041C49943B1BF255441F950BFFF1DB450419BEFD2DFBE2554415206FAE01DB450419CED7101BF255441
+</a>
+
+<b>
+0106000000010000000103000000010000006F0000008ED2AC1CE8B350410DE9C51ACF255441195D671AEBB35041F0BD89ADD0255441D355F6D408B45041B9F19B50E02554414421FA5009B450417DF0D691E0255441643AC5BC09B450414CA989CAE0255441D401E8790DB45041F915FBC1E2255441E42F0E3910B4504171362301E4255441E5C8B50615B45041E017D1E8E52554419F5F6B1E18B450416CB9CE22E72554411A1451841CB450410A506CE4E8255441612CDB0817B45041D35F3589E42554416854A62114B45041EE6DC207E22554410EFCE60A0FB45041F4117E72DC2554417B9FCD540DB4504100738CFAD8255441E81184B80CB45041CB29C78BD6255441E17A149E0CB45041A4703D5AD52554416BCDDEC80BB4504125E35A11D4255441C80FEE290BB450413E6E85DED3255441279FBFE408B450410F17927FD32554418EDCE63506B450416A1EBA2DD3255441758D5A7EFFB3504189A5B7ACD0255441E17A148EFDB350411F85EBB1CF2554411F85EB21FEB3504148E17AA4CE2554415CAA337BFEB3504112F0AFD2CE2554410A9CF0E2FFB350415113DE8CCF255441D7A3708D01B450419A999969D02554415353FB4D04B45041AF63376AD1255441C368F5E905B450414D72B6DBD12554410000007006B450410AD7A300D22554415A8C2EEF07B45041AD800A37D225544103445EEB08B45041F829D85AD2255441720E07B409B45041D1155577D2255441000000E00AB450411F85EBA1D22554415A6E5F1E0CB450417F143535D2255441E17A149E0CB450419A999909D22554419A53517E0DB45041956FAC35D02554416014ED0B0EB45041A2572C0ECF25544193E1FCE10EB4504130CBCBA4CD255441DA8A410710B45041BFE5DCC7CB2554411271EDE812B450413B087240C9255441004559E213B450410D9B7378C8255441C63E5AA315B4504171116D10C72554413B7B9DEA18B45041FE409C24C425544101C9AE331BB450415E5638EEC1255441AE47E12A1CB45041E17A14FEC02554410AD7A3F01DB4504114AE47F1BE255441A35938901DB45041873EADD8BE255441581508061CB45041CCAA1774BE25544190C1A9581BB4504128B8DA47BE2554411F85EB111AB4504148E17AF4BD2554415C8FC21518B4504185EB5118C0255441F256424816B45041CFF2FE6CBE2554411CF3764C14B450412C74CE96BC255441EB4AB45112B45041CB513A9BBA2554419FD48F160FB450414768F6F4B6255441DCE8AF3E0CB450410A34D2BEB3255441D029862709B45041FAE13141B025544182DBE2E806B450413EC622B8AD255441FAE0EBD003B450413B498264AA255441A0351E48FBB35041B024B123A82554415CC94EDCF8B35041666E7C99A7255441954F982AF2B350412D5944EEA6255441C484DE5BF0B35041760B1220A7255441472F530EEEB35041D707865FA72554410724B5E8E6B35041B5527224A8255441E7467B7DE0B35041A2E34ED5A8255441B46F93D9DEB3504136BE8002A92554413D0AD7A3DDB350413D0AD723A9255441B81E85BBD5B35041713D0AA7A72554410FB4FA5DD5B35041B8CD3295A7255441368FA6F8D2B35041B5FB3620A725544148E17A64CEB350410AD7A340A6255441E05D22AFCDB350412A33101BA62554418C694367C4B350410C0B8932A42554418FC2F518C0B350413D0AD753A3255441B41ADD16BDB350413EBFE2B2A2255441B6003111BCB350411E845F17A32554412800A2F5BBB35041A0C07047A3255441E7760A05BFB350412C9FE194A62554419909E959BFB35041B018DCD8A6255441AEDBDE47C1B3504128A38264A8255441722EEA55C5B350415398F5A3AB255441CE5B4EBAC6B350414933F330AD25544171D8EA52C7B35041A7C80269AE2554418C48794CC8B35041AC544E67B02554418860E0DCCAB350414F47FA30B2255441E53EFDECCCB35041D0E2982AB32554410CB734E7D2B3504182E4DFFDB5255441FE7578A0D5B35041122F7247B725544175F3A294DCB35041DCAE42A7BA255441BDC13C6BDEB35041E668A1BFBB2554411F85EB01E0B350411F85EBB1BC255441451B207EE0B3504131669142BD2554410346535CE0B350416D630308C5255441CEF840D7DFB35041DF914C4DC6255441BB641C9CDFB35041BB13A8E6C8255441C3F5286CDFB35041F6285CAFC9255441666666E6DEB35041AE47E1FACA255441D7A3702DDCB35041A4703D3ACC255441FC3ADB12D6B3504121BEAC72CE255441C1099CE2D3B350413787F110D325544179286522D3B35041C193F1AED425544102EC7D0FD1B350415C1B329BD9255441D80C23C5D2B35041D880F634DA255441E17A144EE1B35041295C8F72DF25544172B94756E2B3504101F93158DC2554414B2F1E12E3B35041FF082223DA255441F220D76AE3B350411D11FE17D9255441B81E852BE4B350413D0AD7D3D62554415C8FC205E8B35041EC51B80ECF2554418ED2AC1CE8B350410DE9C51ACF255441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979957 - 3452139
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000020000000103000000010000006E0000006109A1F417B45041AFE2D4B7BF255441369A133C18B45041A7EE02EFBF2554413211E0C317B450418CD17FCCBF255441D108A1F417B450419DE2D4B7BF255441EE56424816B45041D1F2FE6CBE2554411CF3764C14B450412974CE96BC255441EF4AB45112B45041C8513A9BBA255441A3D48F160FB450414668F6F4B6255441DFE8AF3E0CB450410D34D2BEB3255441D529862709B45041FFE13141B02554417EDBE2E806B450413EC622B8AD255441FEE0EBD003B450413D498264AA2554419D351E48FBB35041B224B123A82554415CC94EDCF8B35041626E7C99A72554417F4F982AF2B350412F5944EEA6255441492F530EEEB35041D207865FA7255441E8EFE6A4E2B350411458F599A8255441B66F93D9DEB3504134BE8002A9255441A2B3FA5DD5B35041A3CD3295A7255441358FA6F8D2B35041B4FB3620A7255441116922AFCDB350417B35101BA625544189694367C4B350410B0B8932A4255441B81ADD16BDB350413FBFE2B2A2255441B2003111BCB3504124845F17A32554412600A2F5BBB35041A2C07047A3255441E7760A05BFB35041279FE194A62554419709E959BFB35041B118DCD8A6255441AFDBDE47C1B3504128A38264A8255441762EEA55C5B350415298F5A3AB255441CC5B4EBAC6B350414833F330AD2554416DD8EA52C7B35041A5C80269AE2554418F48794CC8B35041AE544E67B02554418560E0DCCAB350415147FA30B2255441E23EFDECCCB35041CFE2982AB32554410FB734E7D2B3504186E4DFFDB5255441FD7578A0D5B35041122F7247B725544174F3A294DCB35041E0AE42A7BA255441C2C13C6BDEB35041E668A1BFBB255441F03EC2AADFB3504191EEFD7DBC255441882D8AEBE1B3504169A3DE23BF2554418308C1DCE1B3504100FA70DFC0255441D45853C9E2B350417E971551C2255441749965B0E1B35041F70FF1B3C32554410046535CE0B350416B630308C5255441D3F840D7DFB35041DA914C4DC6255441BE641C9CDFB35041BD13A8E6C82554414DA362F5DFB35041A29DA088C92554417753E93CE1B3504125842588CD25544109C527E1DDB350414F34ACCFCE25544157582B71D8B35041648C6F73CF25544147D658F6D7B350416F3851C5CF255441E8C96915D5B35041D8F021F8D2255441C0099CE2D3B350413487F110D32554417E286522D3B35041C293F1AED4255441B46D017CD3B350414B55D47CD62554419F153ED8D2B35041A48BD234D9255441656F77D8D2B35041A150962BDA255441ACD0F760DFB350412673169EDE2554416DB94756E2B3504100F93158DC2554414B2F1E12E3B3504103092223DA25544102CE611BE4B35041484D6E04D7255441F66F1C68E5B3504140F65055D4255441752BDEBDE6B35041345B09A4D1255441A9F30E03E8B3504191342B14CF2554418DD2AC1CE8B350410DE9C51ACF25544130CF3DB4EEB350413B276A92D2255441D2C82044FDB35041C6163E3BDA255441E115D66C04B4504148263AFFDD2554413F21FA5009B450417BF0D691E02554419D01E8790DB45041DC15FBC1E2255441E42F0E3910B4504174362301E4255441E6C8B50615B45041E317D1E8E5255441A45F6B1E18B450416FB9CE22E7255441181451841CB450410E506CE4E8255441652CDB0817B45041CF5F3589E42554416354A62114B45041EE6DC207E225544109FCE60A0FB45041F9117E72DC255441769FCD540DB4504102738CFAD8255441ED1184B80CB45041C729C78BD62554412F9CFC3D0CB45041D78891C1D425544166CDDEC80BB4504121E35A11D4255441C50FEE290BB45041426E85DED3255441269FBFE408B450411317927FD32554418BDCE63506B45041691EBA2DD3255441708D5A7EFFB350418EA5B7ACD0255441E17A148EFDB350411F85EBB1CF2554411F85EB21FEB3504148E17AA4CE2554415CAA337BFEB3504110F0AFD2CE255441079CF0E2FFB350415013DE8CCF2554415853FB4D04B45041B263376AD1255441C568F5E905B450414D72B6DBD12554415F8C2EEF07B45041AD800A37D225544104445EEB08B45041F629D85AD22554416F0E07B409B45041CF155577D22554412E2B014E0BB45041DD825B7CD2255441596E5F1E0CB4504184143535D22554419653517E0DB45041946FAC35D02554415F14ED0B0EB45041A2572C0ECF25544193E1FCE10EB4504133CBCBA4CD255441D98A410710B45041C0E5DCC7CB2554411671EDE812B4504138087240C9255441FE4459E213B450410E9B7378C8255441C33E5AA315B4504173116D10C72554413F7B9DEA18B45041FF409C24C4255441FDC8AE331BB45041635638EEC12554415206FAE01DB450419CED7101BF255441A05938901DB45041883EADD8BE2554415B1508061CB45041CCAA1774BE25544191C1A9581BB4504125B8DA47BE2554416109A1F417B45041AFE2D4B7BF255441010300000001000000040000005206FAE01DB450419CED7101BF255441132A403D1FB45041C49943B1BF255441F950BFFF1DB450419BEFD2DFBE2554415206FAE01DB450419CED7101BF255441
+</a>
+
+<b>
+0106000000010000000103000000010000006F0000008ED2AC1CE8B350410DE9C51ACF255441195D671AEBB35041F0BD89ADD0255441D355F6D408B45041B9F19B50E02554414421FA5009B450417DF0D691E0255441643AC5BC09B450414CA989CAE0255441D401E8790DB45041F915FBC1E2255441E42F0E3910B4504171362301E4255441E5C8B50615B45041E017D1E8E52554419F5F6B1E18B450416CB9CE22E72554411A1451841CB450410A506CE4E8255441612CDB0817B45041D35F3589E42554416854A62114B45041EE6DC207E22554410EFCE60A0FB45041F4117E72DC2554417B9FCD540DB4504100738CFAD8255441E81184B80CB45041CB29C78BD6255441E17A149E0CB45041A4703D5AD52554416BCDDEC80BB4504125E35A11D4255441C80FEE290BB450413E6E85DED3255441279FBFE408B450410F17927FD32554418EDCE63506B450416A1EBA2DD3255441758D5A7EFFB3504189A5B7ACD0255441E17A148EFDB350411F85EBB1CF2554411F85EB21FEB3504148E17AA4CE2554415CAA337BFEB3504112F0AFD2CE2554410A9CF0E2FFB350415113DE8CCF255441D7A3708D01B450419A999969D02554415353FB4D04B45041AF63376AD1255441C368F5E905B450414D72B6DBD12554410000007006B450410AD7A300D22554415A8C2EEF07B45041AD800A37D225544103445EEB08B45041F829D85AD2255441720E07B409B45041D1155577D2255441000000E00AB450411F85EBA1D22554415A6E5F1E0CB450417F143535D2255441E17A149E0CB450419A999909D22554419A53517E0DB45041956FAC35D02554416014ED0B0EB45041A2572C0ECF25544193E1FCE10EB4504130CBCBA4CD255441DA8A410710B45041BFE5DCC7CB2554411271EDE812B450413B087240C9255441004559E213B450410D9B7378C8255441C63E5AA315B4504171116D10C72554413B7B9DEA18B45041FE409C24C425544101C9AE331BB450415E5638EEC1255441AE47E12A1CB45041E17A14FEC02554410AD7A3F01DB4504114AE47F1BE255441A35938901DB45041873EADD8BE255441581508061CB45041CCAA1774BE25544190C1A9581BB4504128B8DA47BE2554411F85EB111AB4504148E17AF4BD2554415C8FC21518B4504185EB5118C0255441F256424816B45041CFF2FE6CBE2554411CF3764C14B450412C74CE96BC255441EB4AB45112B45041CB513A9BBA2554419FD48F160FB450414768F6F4B6255441DCE8AF3E0CB450410A34D2BEB3255441D029862709B45041FAE13141B025544182DBE2E806B450413EC622B8AD255441FAE0EBD003B450413B498264AA255441A0351E48FBB35041B024B123A82554415CC94EDCF8B35041666E7C99A7255441954F982AF2B350412D5944EEA6255441C484DE5BF0B35041760B1220A7255441472F530EEEB35041D707865FA72554410724B5E8E6B35041B5527224A8255441E7467B7DE0B35041A2E34ED5A8255441B46F93D9DEB3504136BE8002A92554413D0AD7A3DDB350413D0AD723A9255441B81E85BBD5B35041713D0AA7A72554410FB4FA5DD5B35041B8CD3295A7255441368FA6F8D2B35041B5FB3620A725544148E17A64CEB350410AD7A340A6255441E05D22AFCDB350412A33101BA62554418C694367C4B350410C0B8932A42554418FC2F518C0B350413D0AD753A3255441B41ADD16BDB350413EBFE2B2A2255441B6003111BCB350411E845F17A32554412800A2F5BBB35041A0C07047A3255441E7760A05BFB350412C9FE194A62554419909E959BFB35041B018DCD8A6255441AEDBDE47C1B3504128A38264A8255441722EEA55C5B350415398F5A3AB255441CE5B4EBAC6B350414933F330AD25544171D8EA52C7B35041A7C80269AE2554418C48794CC8B35041AC544E67B02554418860E0DCCAB350414F47FA30B2255441E53EFDECCCB35041D0E2982AB32554410CB734E7D2B3504182E4DFFDB5255441FE7578A0D5B35041122F7247B725544175F3A294DCB35041DCAE42A7BA255441BDC13C6BDEB35041E668A1BFBB2554411F85EB01E0B350411F85EBB1BC255441451B207EE0B3504131669142BD2554410346535CE0B350416D630308C5255441CEF840D7DFB35041DF914C4DC6255441BB641C9CDFB35041BB13A8E6C8255441C3F5286CDFB35041F6285CAFC9255441666666E6DEB35041AE47E1FACA255441D7A3702DDCB35041A4703D3ACC255441FC3ADB12D6B3504121BEAC72CE255441C1099CE2D3B350413787F110D325544179286522D3B35041C193F1AED425544102EC7D0FD1B350415C1B329BD9255441D80C23C5D2B35041D880F634DA255441E17A144EE1B35041295C8F72DF25544172B94756E2B3504101F93158DC2554414B2F1E12E3B35041FF082223DA255441F220D76AE3B350411D11FE17D9255441B81E852BE4B350413D0AD7D3D62554415C8FC205E8B35041EC51B80ECF2554418ED2AC1CE8B350410DE9C51ACF255441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980026 - 379399
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000001900000048E17A3470AD5041713D0A6773DD5441AE47E1EA6DAD504148E17A5475DD5441E17A145E6DAD504114AE47217CDD5441C3F528FC6AAD5041E17A14CE87DD5441E17A147E6CAD5041F6285C9F89DD544185EB51D87CAD504185EB51388EDD5441D7A3704D80AD50410AD7A3F08DDD54418610797C80AD5041655ECDCF83DD544152B81E0583AD5041CDCCCCFC7CDD5441E205F4AC82AD5041440EA4F579DD54410AD7A3308BAD5041A4703DCA6EDD5441EC51B80E91AD504148E17A646BDD5441AE47E12A98AD5041713D0AA762DD54413D0AD7F39FAD50418FC2F5F860DD54418FC2F528ADAD50417B14AE375FDD54417B14AEB7B8AD504152B81EC55FDD54410AD7A3D0BBAD5041AE47E10A5BDD5441CDCCCC8CAEAD504185EB51A859DD54415C8FC2E599AD504148E17A145BDD5441D7A3700D93AD50410AD7A3605CDD5441D7A3702D81AD5041D7A3701D65DD5441A4703D8A77AD5041A4703D3A6DDD54411F85EBF178AD50417B14AED771DD5441295C8FD274AD5041713D0AF775DD544148E17A3470AD5041713D0A6773DD5441
+</a>
+
+<b>
+01060000000100000001030000000100000035000000EBE51426AEAD50411D2065AF59DD5441548806D299AD5041BDA15A4D5BDD5441DB2447D292AD5041091CB4B35CDD54412BACE85281AD5041CDF9CC1965DD5441BE9072AC77AD50416276AE396DDD544101C27ADD78AD50412B74E7EA70DD5441069F0AE978AD50417F4B84BA71DD54411F85EBF178AD50417B14AED771DD544114308CC578AD504186690D0472DD544143E49AE374AD504157B5FEE575DD5441295C8FD274AD5041713D0AF775DD54417D660F5D73AD50416D3D7B6775DD5441387BE31C71AD50412AD7622774DD544148E17A3470AD5041713D0A6773DD5441652AF2F36DAD5041A03FD74C75DD5441A9674A7E6DAD504149C7D7F67BDD5441140DE2FC6AAD504107A2F3CE87DD5441E17A147E6CAD5041F6285C9F89DD5441F5F23DDF70AD5041EF0693DA8ADD5441851469A87CAD5041BC68A9ED8DDD5441A45A026480AD5041D844F7CB81DD5441772642B982AD50419441315D7DDD5441D08EC20E7EAD50419BB8C4547ADD5441FE7728A883AD504184E9BE9073DD544159954EEC86AD5041B11D7F3B71DD54417F527B9F87AD504165A325D56FDD544161C187D28BAD504192D7E57F6DDD544188CDBDA98DAD50418F9BA65B6DDD544193BC45A98EAD50416D5BB0C76CDD5441712DFBFA8FAD5041339C24046CDD5441CB817AF490AD50415D77ECEE6ADD544100E2738593AD5041025AC6AA67DD54415BFF99C996AD5041E4132DEF63DD5441E35080B897AD5041D570601162DD5441D46259C99DAD5041AFB3335E61DD5441828DCEEA9EAD5041F96F273261DD54413D0AD7F39FAD50418FC2F5F860DD54413983CC5DA3AD50410445D48460DD54416C0CB284A8AD504101A520BC5FDD54415372F1F8A9AD5041EA8D1CA45FDD54418FC2F528ADAD50417B14AE375FDD544112109F19AFAD504129316C4F5FDD544147042BC0AFAD50413E7CAD445FDD5441EF907C57B0AD504145359E5E5FDD5441ECDA123BB6AD504121F8AFA65FDD544172CE8841B8AD504174DC78BF5FDD54414AFCC16BB8AD50418C967DC15FDD5441D5B7C68EB8AD50416A242AC35FDD5441F2793FC1BAAD50418C3F16A95CDD5441D9F5E35EBBAD504129F07CB85BDD5441A88A97CDBBAD50410732880F5BDD5441D26D055DAEAD504102649CAB59DD5441EBE51426AEAD50411D2065AF59DD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980027 - 379516
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000022000000D23689FCE5AD5041C5CD8FEEE5DC54416F90E45EE6AD50411AD43CC4E4DC54415BC6B81BE5AD5041AC24CB87E4DC5441C3F528ECD2AD50415C8FC2A5E0DC544185EB51B8C6AD50418FC2F578DDDC5441AE47E1CABFAD50419A9999D9DDDC54411F85EB51B8AD5041D7A3700DE2DC54417B14AE07BAAD50417B14AE77E4DC5441713D0AF7B7AD5041F6285CAFE6DC5441CDCCCCBCBCAD5041E17A14AEE8DC5441AFFBAE07BEAD5041B1519C08EDDC5441295C8F02C1AD5041713D0A17EFDC5441831855E4BEAD50414AFF4C4EF3DC544185EB5168BFAD5041F6285C9FF4DC54415C8FC215C3AD504148E17A84F7DC54415C8FC235C6AD50410AD7A390F7DC54411220FD91C7AD5041F5E7BFFDF5DC5441CDCCCC7CC8AD5041E17A14EEF4DC5441F120217CC6AD5041ABB4625EF1DC5441BC0D28E9C5AD50414583ED4BF0DC5441F6285C7FC5AD50417B14AE17EEDC54411F85EBA1C7AD50411F85EBE1ECDC5441CDCCCC5CC2AD5041295C8FD2E8DC54415C8FC225C3AD504114AE47A1E1DC544185EB51C8C5AD504152B81EB5DFDC5441C6BF35FFCCAD50413A6C10FAE1DC54410D4EA658CFAD5041E8FA7C7CE1DC5441634861D9D2AD5041111631AEE2DC5441B80F394FD6AD5041501DCA25E4DC5441B8BA8CE4DCAD50418C1701D8E5DC544114AE47B1E3AD5041CDCCCC9CE7DC54413B3F25E6E5AD5041D445A228E6DC544111FE66F0E5AD50416A0067ECE5DC5441D23689FCE5AD5041C5CD8FEEE5DC5441
+</a>
+
+<b>
+01060000000100000001030000000100000022000000F9373003C3AD50415E2BDC75F7DC544152B81EC5CAAD50411F85EB51FDDC5441AE47E10ACCAD5041A4703D0AFCDC5441BFCBFEAECCAD5041380DF168FBDC5441F9CB1DD2CDAD50413F805A46FADC544189BCFE6DCEAD5041AE8F79AAF9DC544122739F43C6AD5041F535A4A6EDDC544149049310C2AD5041E1FCBA55E9DC5441DB62296AC2AD50418849789EE3DC544149049310C2AD50416999FB55E2DC54419C8B9CE1C2AD504193C00B96E0DC5441DEF845DDC4AD5041363902C5DFDC5441A54DF23ACAAD504185B35B2BE1DC5441A5D65E43CDAD504147DCCEA2E1DC54416A95EE2DD0AD504185B35B2BE1DC54412EFE0EC4D3AD50417E2CC7C4E2DC544154303447D9AD5041DBD0816FE4DC5441E0CCDC97E4AD5041AD9CC1C4E6DC5441631EC386E5AD50413C653BABE4DC5441CEBFC4DCD2AD5041C38AE8B3E0DC5441257ECDE8C7AD5041ED232FC8DDDC5441484A30C1C6AD50418B8D5A79DDDC5441CF83ED58C3AD504180E374A8DDDC5441AE47E1CABFAD50419A9999D9DDDC544136AC2044B8AD50410A05421AE2DC5441A3C037DDB9AD50415120B63BE4DC544113851004BAAD5041DBD0816FE4DC54417B0FBC82BEAD5041E2276543EADC5441A70230D9BFAD504122F3D059EEDC54413861C632C0AD5041892A5773F0DC5441F7F31C37BEAD5041B97DA099F3DC54417F34449BBEAD504141BEC7FDF3DC544185EB5168BFAD5041F6285C9FF4DC5441F9373003C3AD50415E2BDC75F7DC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980712 - 3087565
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000016000000CF2E9EF4121A5141D98E92AFAB6D5441AB40448F131A51413FF79999AD6D54418FC2F578321A51419A9999D9B26D5441C3F5285C461A5141AE47E1CAB56D5441F6285CAF481A51410AD7A3C0A56D5441D7A3708D4B1A51418FC2F5F8916D54415C8FC2E54A1A51410AD7A3D08F6D54417B14AEA7471A514114AE47018E6D5441000000D03E1A51410AD7A3D0896D54419A999909361A51411F85EB01876D5441000000702F1A5141B81E858B856D5441EC51B85E281A5141EC51B8CE846D54413D0AD753241A514152B81EE5846D5441AE47E11A211A51419A999949856D544114AE47E10A1A51411F85EB218B6D544152B81E85091A5141D7A3707D8B6D5441E17A141E0A1A514152B81E358E6D5441000000A00B1A5141C3F5289C946D5441D7A3703D0D1A51417B14AE779B6D54417B14AE870E1A514166666696A16D544185EB51180F1A514114AE47A1A16D5441CF2E9EF4121A5141D98E92AFAB6D5441
+</a>
+
+<b>
+010600000001000000010300000001000000240000007B14AEA7471A514114AE47018E6D54415C8FC2E54A1A51410AD7A3D08F6D544152B81E65361A5141A4703D6A4C6D5441CE523D9F2F1A514125FFAC25366D5441CC9D77FE2A1A5141790671EE266D5441DE4B8DC0281A514141729ACE246D544141B3E1A5261A5141A7F2D5D3226D54411E73C4BA221A5141E12014291F6D544124C582C8201A5141226F9B71216D5441B0A3453F1D1A51419790D8FA246D5441A001305F151A51418AACFCDE2C6D54415B5AEA9F121A5141BB3611B82F6D54419E0112800C1A51415672B8F1356D5441C48A4CF7041A5141918C4BE83C6D5441F46F176DFF19514162A78072426D544136DF78A8FD1951414543DE64456D54414660A110FB195141B5C66C2B4B6D5441A83E151AFA195141D1F6DDE04F6D544132DD34C6F9195141E6D3F2E2506D54412F1D51AAF8195141D4368934536D5441E615E194F7195141AAAC03CB546D5441E17A143EFD195141000000305E6D54410AD7A390FF195141CDCCCCEC626D5441AE47E17A001A5141AE47E1CA646D5441F6285CDF011A5141295C8F72696D544185EB5118051A514100000050776D544166666636091A51417B14AE178A6D5441D65F3B86091A514107487F828B6D544114AE47E10A1A51411F85EB218B6D5441AE47E11A211A51419A999949856D54413D0AD753241A514152B81EE5846D5441EC51B85E281A5141EC51B8CE846D5441000000702F1A5141B81E858B856D54419A999909361A51411F85EB01876D5441000000D03E1A51410AD7A3D0896D54417B14AEA7471A514114AE47018E6D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980712 - 3428827
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000016000000CF2E9EF4121A5141D98E92AFAB6D5441AB40448F131A51413FF79999AD6D54418FC2F578321A51419A9999D9B26D5441C3F5285C461A5141AE47E1CAB56D5441F6285CAF481A51410AD7A3C0A56D5441D7A3708D4B1A51418FC2F5F8916D54415C8FC2E54A1A51410AD7A3D08F6D54417B14AEA7471A514114AE47018E6D5441000000D03E1A51410AD7A3D0896D54419A999909361A51411F85EB01876D5441000000702F1A5141B81E858B856D5441EC51B85E281A5141EC51B8CE846D54413D0AD753241A514152B81EE5846D5441AE47E11A211A51419A999949856D544114AE47E10A1A51411F85EB218B6D544152B81E85091A5141D7A3707D8B6D5441E17A141E0A1A514152B81E358E6D5441000000A00B1A5141C3F5289C946D5441D7A3703D0D1A51417B14AE779B6D54417B14AE870E1A514166666696A16D544185EB51180F1A514114AE47A1A16D5441CF2E9EF4121A5141D98E92AFAB6D5441
+</a>
+
+<b>
+010600000001000000010300000001000000240000007B14AEA7471A514114AE47018E6D54415C8FC2E54A1A51410AD7A3D08F6D544152B81E65361A5141A4703D6A4C6D5441CE523D9F2F1A514125FFAC25366D5441CC9D77FE2A1A5141790671EE266D5441DE4B8DC0281A514141729ACE246D544141B3E1A5261A5141A7F2D5D3226D54411E73C4BA221A5141E12014291F6D544124C582C8201A5141226F9B71216D5441B0A3453F1D1A51419790D8FA246D5441A001305F151A51418AACFCDE2C6D54415B5AEA9F121A5141BB3611B82F6D54419E0112800C1A51415672B8F1356D5441C48A4CF7041A5141918C4BE83C6D5441F46F176DFF19514162A78072426D544136DF78A8FD1951414543DE64456D54414660A110FB195141B5C66C2B4B6D5441A83E151AFA195141D1F6DDE04F6D544132DD34C6F9195141E6D3F2E2506D54412F1D51AAF8195141D4368934536D5441E615E194F7195141AAAC03CB546D5441E17A143EFD195141000000305E6D54410AD7A390FF195141CDCCCCEC626D5441AE47E17A001A5141AE47E1CA646D5441F6285CDF011A5141295C8F72696D544185EB5118051A514100000050776D544166666636091A51417B14AE178A6D5441D65F3B86091A514107487F828B6D544114AE47E10A1A51411F85EB218B6D5441AE47E11A211A51419A999949856D54413D0AD753241A514152B81EE5846D5441EC51B85E281A5141EC51B8CE846D5441000000702F1A5141B81E858B856D54419A999909361A51411F85EB01876D5441000000D03E1A51410AD7A3D0896D54417B14AEA7471A514114AE47018E6D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980087 - 1509515
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000280000001F85EB6104B15041713D0A17C4D954410F00C7EB02B15041B0CE9C13C5D954412A0CF2E301B150416EA29DA7C5D954415C8FC2C500B15041A4703DDAC6D95441A4703D5AFFB05041CDCCCCFCC6D95441E17A145EFEB050413D0AD703C7D95441CDCCCC2CFEB05041EC51B88EC8D954411F85EB91FDB050419A999969CDD95441000000D0FFB050415C8FC285CCD95441C3F528DC05B15041000000E0CAD95441000000400BB15041CDCCCCECC7D954418FC2F50810B1504185EB51E8C4D95441EC51B87E17B1504148E17A24BED9544114AE47211BB15041EC51B85EBBD95441000000E01FB15041CDCCCC2CB9D95441D7A3707D2DB1504152B81EE5B5D95441CDCCCC8C35B1504152B81E75B2D954411F85EBB142B150411F85EB61ABD9544114AE478134B1504185EB5158A8D954417B14AEF730B15041B81E852BACD954419A9999892CB150413D0AD793AED95441A4703D3A2BB150418FC2F5C8ADD9544148E17AC428B15041D7A3702DAFD9544185EB513828B15041EC51B8AEB0D9544148E17A9426B150417B14AE87B1D95441E17A14DE25B15041F6285CBFB1D954419A99995925B15041B81E85BBB2D954416666660623B15041713D0A47B3D95441FFC088B321B15041C1CC898CB4D954413BA6DE141EB1504142B6765AB5D954417F35BB261DB15041C31F1054B5D95441A55518F418B15041B584F144B8D95441E13A6E5515B150413841B8AEBAD954414F905B6C13B150418A60C1FEBCD95441BDE5488311B15041CCBEA433BED954413956A87D0DB15041BEA33250C0D95441770ED87A0BB150418FD94ED2C1D9544134DD1AAA08B1504120B1871FC2D95441026D83F406B1504110C33BA0C2D954411F85EB6104B15041713D0A17C4D95441
+</a>
+
+<b>
+010600000001000000010300000001000000280000001F85EB6104B15041713D0A17C4D954410F00C7EB02B15041ADCE9C13C5D954412C0CF2E301B1504173A29DA7C5D954415C8FC2C500B15041A4703DDAC6D95441A4703D5AFFB05041CDCCCCFCC6D95441E17A145EFEB050413D0AD703C7D95441CDCCCC2CFEB05041EC51B88EC8D954411F85EB91FDB050419A999969CDD95441000000D0FFB050415C8FC285CCD95441C3F528DC05B15041000000E0CAD95441000000400BB15041CDCCCCECC7D954418FC2F50810B1504185EB51E8C4D95441EC51B87E17B1504148E17A24BED9544114AE47211BB15041EC51B85EBBD95441000000E01FB15041CDCCCC2CB9D95441D7A3707D2DB1504152B81EE5B5D95441CDCCCC8C35B1504152B81E75B2D954411F85EBB142B150411F85EB61ABD9544114AE478134B1504185EB5158A8D954417B14AEF730B15041B81E852BACD954419A9999892CB150413D0AD793AED95441A4703D3A2BB150418FC2F5C8ADD9544148E17AC428B15041D7A3702DAFD9544185EB513828B15041EC51B8AEB0D9544148E17A9426B150417B14AE87B1D95441E17A14DE25B15041F6285CBFB1D954419A99995925B15041B81E85BBB2D954416666660623B15041713D0A47B3D9544104C188B321B15041BDCC898CB4D954413EA6DE141EB1504140B6765AB5D954418035BB261DB15041C81F1054B5D95441A25518F418B15041B284F144B8D95441E63A6E5515B150413A41B8AEBAD9544154905B6C13B150418860C1FEBCD95441C2E5488311B15041D1BEA433BED954413556A87D0DB15041C1A33250C0D95441740ED87A0BB150418DD94ED2C1D9544131DD1AAA08B1504124B1871FC2D95441FD6C83F406B150410FC33BA0C2D954411F85EB6104B15041713D0A17C4D95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980087 - 253903
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000280000001F85EB6104B15041713D0A17C4D954410F00C7EB02B15041B0CE9C13C5D954412A0CF2E301B150416EA29DA7C5D954415C8FC2C500B15041A4703DDAC6D95441A4703D5AFFB05041CDCCCCFCC6D95441E17A145EFEB050413D0AD703C7D95441CDCCCC2CFEB05041EC51B88EC8D954411F85EB91FDB050419A999969CDD95441000000D0FFB050415C8FC285CCD95441C3F528DC05B15041000000E0CAD95441000000400BB15041CDCCCCECC7D954418FC2F50810B1504185EB51E8C4D95441EC51B87E17B1504148E17A24BED9544114AE47211BB15041EC51B85EBBD95441000000E01FB15041CDCCCC2CB9D95441D7A3707D2DB1504152B81EE5B5D95441CDCCCC8C35B1504152B81E75B2D954411F85EBB142B150411F85EB61ABD9544114AE478134B1504185EB5158A8D954417B14AEF730B15041B81E852BACD954419A9999892CB150413D0AD793AED95441A4703D3A2BB150418FC2F5C8ADD9544148E17AC428B15041D7A3702DAFD9544185EB513828B15041EC51B8AEB0D9544148E17A9426B150417B14AE87B1D95441E17A14DE25B15041F6285CBFB1D954419A99995925B15041B81E85BBB2D954416666660623B15041713D0A47B3D95441FFC088B321B15041C1CC898CB4D954413BA6DE141EB1504142B6765AB5D954417F35BB261DB15041C31F1054B5D95441A55518F418B15041B584F144B8D95441E13A6E5515B150413841B8AEBAD954414F905B6C13B150418A60C1FEBCD95441BDE5488311B15041CCBEA433BED954413956A87D0DB15041BEA33250C0D95441770ED87A0BB150418FD94ED2C1D9544134DD1AAA08B1504120B1871FC2D95441026D83F406B1504110C33BA0C2D954411F85EB6104B15041713D0A17C4D95441
+</a>
+
+<b>
+010600000001000000010300000001000000320000001F85EB6104B15041713D0A17C4D954410F00C7EB02B15041ADCE9C13C5D954412C0CF2E301B1504173A29DA7C5D954415C8FC2C500B15041A4703DDAC6D95441A4703D5AFFB05041CDCCCCFCC6D95441E17A145EFEB050413D0AD703C7D95441B087FE2DFEB050418B822685C8D95441D4C7EC91FDB0504182199969CDD95441000000D0FFB050415C8FC285CCD9544111A458D401B15041D9F117F9CBD95441DAA428DC05B15041990BFFDFCAD9544129ECFF3F0BB15041B117CCECC7D95441379E38040EB150414F1D2F2EC6D954418FC2F50810B1504185EB51E8C4D9544125408BED13B15041ABD29460C1D95441FC25B77E17B15041C86C7B24BED95441FDE36A0419B15041F29E3FFBBCD9544114AE47211BB15041EC51B85EBBD95441000000E01FB15041CDCCCC2CB9D95441E6BC717D2DB15041A79B1DE5B5D954412881CD8C35B15041B6421E75B2D954412694388036B150410CA81AF2B1D954419409328136B15041176494F1B1D95441654CA29439B15041AD34C249B0D9544149F7509539B15041D9316449B0D95441EE6786A93FB15041A10ECC03ADD954418A00EBB142B1504177CCEB61ABD95441C502B8F63EB15041364D7395AAD9544114AE478134B1504185EB5158A8D954417B14AEF730B15041B81E852BACD954419A9999892CB150413D0AD793AED95441A4703D3A2BB150418FC2F5C8ADD9544148E17AC428B15041D7A3702DAFD9544185EB513828B15041EC51B8AEB0D9544148E17A9426B150417B14AE87B1D95441E17A14DE25B15041F6285CBFB1D954419A99995925B15041B81E85BBB2D954416666660623B15041713D0A47B3D9544104C188B321B15041BDCC898CB4D954413EA6DE141EB1504140B6765AB5D954418035BB261DB15041C81F1054B5D95441A25518F418B15041B284F144B8D95441E63A6E5515B150413A41B8AEBAD9544154905B6C13B150418860C1FEBCD95441C2E5488311B15041D1BEA433BED954413556A87D0DB15041C1A33250C0D95441740ED87A0BB150418DD94ED2C1D9544131DD1AAA08B1504124B1871FC2D95441FD6C83F406B150410FC33BA0C2D954411F85EB6104B15041713D0A17C4D95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980099 - 418075
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000300000067000000D7A3703D0CAE5041CDCCCCCCE1DB5441713D0AC711AE5041E17A143EE4DB54419A99996922AE50411F85EBB1EFDB5441C3F5289C28AE5041E17A140EF0DB5441E17A14FE2DAE5041CDCCCC8CEEDB5441EC51B8FE34AE50418FC2F5A8EBDB5441666666E63BAE5041713D0AD7E6DB54418FC2F5B842AE504148E17A44DFDB54410AD7A36051AE5041A4703D8AD2DB54416666669658AE504152B81EB5CCDB5441D7A3703D64AE504152B81E35C4DB54410000009064AE5041C3F5286CC5DB54415C8FC2E565AE5041333333F3C3DB54418FC2F55869AE50419A9999A9C1DB5441AE47E1FA70AE5041EC51B8BEC4DB5441D7A3702D70AE504148E17AA4C2DB54417B14AEF76FAE50410AD7A380B1DB5441333333F35EAE504148E17A548CDB5441333333B35CAE50410000005083DB5441AE47E13A5BAE50418FC2F5C884DB54411F85EBE15BAE50417B14AE7788DB54413D0AD7A35DAE504114AE476192DB5441713D0A075EAE50417B14AE97A5DB54413D0AD7635FAE504152B81EC5B2DB5441000000205DAE5041D7A3708DB9DB54415C8FC22559AE5041713D0A27BDDB544114AE476141AE504166666616BADB5441C3F528DC33AE504152B81EB5ADDB54413D0AD7432EAE5041713D0A07ACDB544152B81EA52FAE5041A4703D7AAEDB544152B81E2533AE50410AD7A3D0AFDB54415C8FC2F532AE504152B81E85B1DB5441E17A143E30AE50415C8FC215B3DB544185EB51C82FAE504133333383B4DB5441295C8F1231AE504185EB5128B5DB54416666660631AE504185EB5118B7DB544148E17AC42EAE5041333333D3BADB54413D0AD7B330AE5041A4703DBABDDB5441666666B634AE504133333363BFDB5441AE47E14A37AE5041C3F528FCBFDB544152B81EB537AE5041B81E85EBC1DB54419A99993932AE5041A4703DCAC5DB544148E17AC42EAE504114AE47F1C6DB54417B14AE472CAE50410AD7A3E0C8DB5441AE47E1AA2AAE5041F6285C3FC9DB544132B660AF2AAE50415E60E1F0C1DB54411678E2F12EAE50412A8BFC39B6DB54412FD8B62826AE5041E2119759BCDB5441D2A594D520AE5041121A7D46C1DB544169325D2A22AE50417F5AB3BBC6DB54414A27E0A21FAE5041BC815887C9DB54413D0AD7131DAE50417B14AEB7C3DB5441F6285C7F1AAE5041666666B6C6DB5441E17A140E18AE504166666646CBDB54419A99997915AE5041D7A3702DCEDB5441666666060FAE5041000000B0CBDB54417B14AEE70CAE5041F6285CBFCCDB5441000000900EAE50410AD7A330CFDB5441F6285C1F0CAE504152B81EC5D1DB5441D7A370DD09AE50418FC2F5D8D0DB544152B81E4506AE504148E17A94D4DB5441A4703D2A05AE50417B14AE87D7DB5441E17A145E03AE5041333333B3D6DB54417B14AE4700AE504152B81E15D8DB5441D7A370FDFEAD5041C3F5283CD9DB5441CDCCCC2CFFAD50419A9999A9DADB5441A4703D1AFDAD504166666666DBDB54410AD7A3C0FAAD5041713D0AF7DCDB544114AE47D1F8AD5041333333A3DFDB54419A9999F9F6AD5041AE47E19AE0DB54413D0AD773F5AD5041CDCCCC1CE1DB544166666626F3AD5041713D0AA7E0DB5441E17A145EF2AD50410AD7A3E0E3DB5441295C8F82EFAD50417B14AE37E2DB5441666666B6EDAD5041A4703DEADFDB5441CDCCCCECECAD5041E17A144EDEDB5441295C8F92E5AD50418FC2F548E2DB54417B14AE17DCAD50411F85EB01E7DB5441295C8F72D6AD50419A9999E9E6DB5441CDCCCC8CD6AD5041B81E85EBE5DB54413D0AD753D4AD504166666696E2DB54410AD7A340D2AD5041C3F5284CE1DB54413D0AD7A3D0AD5041A4703DEADFDB5441F6285CAFC9AD504185EB51A8DDDB544114AE4721C9AD50415C8FC295DBDB544152B81ED5C3AD504185EB5188DEDB544184749747BFAD50413CA19666DBDB5441B37DB9EBC1AD50414FABB50AD6DB5441E60C9DF6BCAD504114837AE5CDDB54412B2AD7AEC2AD5041B90D0557C8DB54414531D48BB9AD5041EB16E8C7C8DB5441523618BEB6AD50410020FB48CBDB5441A56DAED9B6AD5041BC2EDAD2CEDB5441CC3FF7B1BCAD5041F8151E8CD7DB5441AE47E15ACBAD50417B14AE97EDDB54417B14AE67D0AD504152B81E85F5DB544152B81E95E3AD504114AE4741F2DB54417B14AEC7E8AD5041713D0A97F0DB5441713D0AB7F3AD5041F6285CEFE9DB5441C3F5287CFBAD504148E17A34E5DB5441F6285C3F01AE50419A999919E2DB54411F85EBF106AE50415C8FC205E1DB5441D7A3703D0CAE5041CDCCCCCCE1DB54410B00000014AE47613AAE5041EC51B81EB9DB5441295C8F4238AE5041D7A3707DB9DB5441713D0A4736AE5041E17A144EB9DB5441AE47E18A35AE5041713D0A27B8DB54410AD7A32035AE5041CDCCCCDCB6DB5441B81E855B35AE50411F85EBE1B4DB5441C3F528EC36AE504100000060B4DB544185EB51783AAE50417B14AE57B5DB544185EB51783AAE504114AE47D1B6DB54411F85EBF13BAE50410AD7A3C0B8DB544114AE47613AAE5041EC51B81EB9DB5441230000003333338358AE50418FC2F5A8C4DB54410AD7A32056AE50410AD7A3B0C5DB5441713D0A1753AE504152B81E65C6DB54410AD7A36050AE5041D7A3705DC5DB5441295C8F824FAE50415C8FC255C4DB54417B14AEF74EAE5041713D0AA7C2DB5441C3F5280C4EAE5041C3F5284CC1DB544148E17AA44EAE5041EC51B8FEBFDB54411F85EBC150AE50413D0AD7A3BEDB5441713D0A1753AE5041F6285CEFBDDB54417B14AEB754AE50417B14AEC7BFDB54413D0AD74357AE5041E17A143EC1DB5441AE47E1BA58AE504100000090BFDB544185EB51D85AAE504152B81E35BEDB544148E17A645DAE504114AE4741BCDB5441666666665FAE5041EC51B8AEBADB5441AE47E11A60AE504100000060B7DB544114AE47C160AE504185EB5148B4DB5441A4703D2A62AE5041CDCCCCFCB4DB5441EC51B80E62AE5041A4703D4AB6DB5441A4703DFA62AE5041E17A143EB8DB544148E17AC464AE50417B14AE37B9DB5441D7A3702D66AE50419A999929B9DB544185EB51B866AE50413D0AD723BADB54413D0AD7D366AE504133333333BCDB5441CDCCCC9C66AE50413D0AD7A3BEDB54413D0AD70366AE50418FC2F5F8C0DB54415C8FC25564AE504100000070C2DB54410AD7A3D062AE5041C3F5281CC2DB54416666663660AE5041E17A146EC0DB54415C8FC2955EAE5041B81E85BBC1DB544148E17A645DAE50410AD7A300C2DB54417B14AE175CAE5041713D0AD7C1DB544114AE47315AAE5041A4703DFAC2DB54413333338358AE50418FC2F5A8C4DB5441
+</a>
+
+<b>
+010600000001000000010300000001000000680000009A3C0AB7F3AD504179295CEFE9DB5441C3F5287CFBAD504148E17A34E5DB54414A295C3F01AE50417C999919E2DB54419C84EBF106AE5041AB8EC205E1DB54417FA4703D0CAE504188CCCCCCE1DB544113A4C41B0EAE50411A5CC89FE2DB5441713D0AC711AE5041E17A143EE4DB54419A99996922AE50411F85EBB1EFDB5441C3F5289C28AE5041E17A140EF0DB54419828364C29AE504134B0DADCEFDB5441307914FE2DAE504197CCCC8CEEDB5441E3E4E86533AE50410513AE51ECDB5441EC51B8FE34AE50418FC2F5A8EBDB5441666666E63BAE5041713D0AD7E6DB54418FC2F5B842AE504148E17A44DFDB54410AD7A36051AE5041A4703D8AD2DB54411619131A54AE50411A9A0D56D0DB54410F67669658AE504187B71EB5CCDB5441E5E5FC045DAE504181987C79C9DB5441C4A4703D64AE504127B81E35C4DB544191BACB4764AE504190DC8233C4DB54415C8FC2E565AE5041333333F3C3DB544170C3F55869AE50412D9999A9C1DB54416FB687486DAE50416FB98540C3DB54419303B8A66FAE5041763D5735C4DB5441C26E481270AE50414F56F2FBB9DB5441E38628FC6FAE504169BE27EEB2DB5441860EE9CC5EAE5041A52838788CDB5441B2322B005FAE50411BFBCE708CDB5441833233F35EAE504158E17A548CDB5441203233B35CAE50411401005083DB5441F647E13A5BAE504147C2F5C884DB5441C60AD7A35DAE5041C2AD476192DB54414B3E0A075EAE5041EB13AE97A5DB54412C0BD7635FAE504190B71EC5B2DB5441273BD4E95FAE5041EAC7E9DDB2DB544101D3A85561AE5041FB7D8292B4DB5441A4703D2A62AE5041CDCCCCFCB4DB5441D8B2101F62AE50414F573284B5DB544166911A3165AE50410B627133B9DB5441FC28745865AE50410371E831B9DB5441CA1D6C7A65AE504148D76C8BB9DB54417CBDBBA464AE5041BA3243C5BBDB54419796AA2362AE5041C9507AAABFDB5441FF30D4E95FAE50410EE7159DC1DB54418AE7D74B5CAE5041413CECD6C3DB5441C49AB54957AE504101F972E6C6DB54414363790350AE504157F24AF1C6DB5441EE9FC06F4CAE5041880E01BAC2DB544163FA96A94EAE5041EEB9041CBFDB5441B548C1CF50AE5041CA7E0850BEDB544114D5D21A51AE5041EE649743BEDB5441D4E2E71453AE50413841C79CBDDB54410D6896A055AE504115B3D3B2BCDB54417BAD476141AE5041D3666616BADB5441CFCCEBB83DAE50413393FEBCB6DB54414E3578E233AE504171C5E5BAADDB544100F628DC33AE504194B81EB5ADDB544143DC630532AE5041A847C327ADDB5441690AD7432EAE50417E3D0A07ACDB54419BB81EA52FAE5041C0703D7AAEDB544169A4E0BD30AE5041C68B87E5AEDB54418BB81E2533AE5041B5D6A3D0AFDB54411D4EC10E33AE50415780C29EB0DB54415C8FC2F532AE504152B81E85B1DB54410A3EF47431AE50414C83BA62B2DB5441DE7A143E30AE5041648FC215B3DB5441E10D333130AE50411855BB3DB3DB5441B5EB51C82FAE50414B333383B4DB54413968166E30AE50418D7115D6B4DB5441295C8F1231AE504185EB5128B5DB54415566660631AE5041BBEB5118B7DB544165E17AC42EAE50415A3333D3BADB5441047DD8F330AE50414A71BCD4BDDB5441666666B634AE504133333363BFDB5441A5DF3AFE36AE50411DA0A45FC0DB54417CC2051F37AE5041600E9B03C1DB54416237AD5537AE5041CD75E014C2DB54417DC830E233AE504185B31596C4DB54415B85C53A34AE5041D9FF4C82C5DB5441BE6B107E2DAE5041010932EFC7DB5441E4F197742DAE50416C0290F6C7DB544191F194B729AE5041FE0B214BC9DB5441FAF08B5C1FAE504182728005CDDB54413935054D1CAE5041BC255E03C8DB54414AF0BCE615AE50411936E1B0CEDB54415DAA74800FAE5041AA6BA669CEDB54414849048F0EAE5041D5E9302FCFDB5441000000900EAE50410AD7A330CFDB5441D53B834A0EAE504141693D67CFDB54419BEEED700CAE50418D91B7EAD0DB5441E8CBFD900BAE504195AF518BD1DB544102DB5AEE05AE504174EAEF95D5DB5441D5A8BD0104AE504127DD39F7D6DB5441FDC06A34FFAD504150C1DC68DADB54419F1F8626FFAD5041F4222C79DADB5441996AE2C8F9AD5041B920F64BDEDB5441AB3DB038F6AD504178A029DAE0DB54416AB9787BF2AD50414CC6A688E3DB544147959B7AF2AD5041FE11618CE3DB544105AD9731F2AD504191C5CBC6E3DB5441AF1D892AF2AD5041A84AB2C2E3DB5441DD4931E5F0AD50415CF705ACE4DB54419A3C0AB7F3AD504179295CEFE9DB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>3017977 - 3015188
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000004600000028C944ADC69C50410DE588185F235441915922A8C89C50412557140459235441291B9C36C79C50417B4B18F5572354410775B4ECC69C5041A24D650856235441E428E558C69C5041439085A053235441D603A418C59C50418DDEA1475223544188904631C59C504144C7A9295023544117D119B6C49C5041C68823B84E2354419111ED3AC49C504197966CDA4D235441856B05F1C39C50419F1713E44C23544151C3D093C59C50412033A5284B235441B6DC15C5C59C50417FA84F23492354417CEA5EE7C49C50410C6AC9B147235441856B05F1C39C5041992B434046235441F205F12BC39C50415F398C6245235441E0BB6EABC09C50419E87A80944235441AE4A5ED7BE9C504187E1C0BF43235441608FCB82BA9C50419A6267C942235441D2851C87B79C5041F1566BBA41235441AFF11786B29C5041107EF90D4123544142461B67AB9C50419318E548402354418827C160A49C5041AC64B4DC4023544104D6DCF79C9C50412724E15741235441B61A4AA3989C5041C30A9C2641235441EE1EE4C9949C5041AC64B4DC40235441F37A4993929C5041BCC019A63E235441C52E7AFF919C5041DF0CE9393F2354410A2131DD929C5041ED312A7A40235441A92C2DEC939C5041E8D5C4B0422354416ADE1045959C5041ACACE949452354411F6FCB89969C5041D1BD3980452354418A2E5E1BA99C50418FD6C1C449235441ABEA88EFA79C50419D022E994F235441D808675A9D9C504110D73F5F4D235441771463699E9C504136A268E94E2354418F028020A39C50414B112CAA52235441120C2F1CA69C50413A0FDF965423544178C51DA7C39C5041B7A6AB5962235441AF929344C39C5041DBF27AED622354419F15DE17A99C50419826D7B456235441FD9D5214AD9C5041EE4B2E635D2354417B14AE17AE9C504185EB51C85E235441CD1F7657AE9C5041148EC7805F235441001BF3ECAF9C50413D8D6628622354412E67C280B09C5041190A730B652354415CB39114B19C504117D34E8268235441A926EFFBB09C5041CF038CD16A235441CD72BE8FB19C5041049ADDE56D2354415FD8D254B29C5041F7BCD11271235441A4CA8932B39C5041BB93F6AB7323544143D68541B49C50419610038F76235441AAF96096B49C50416CB4BBF07823544108C40EC6B59C5041B4262D6379235441391EBBAEB89C5041D0A407907B235441905AF40CBC9C50418556EBE87C235441C1DC15C5C59C504145D1AAB881235441017367D9C89C504198E8A2D68323544160304741CB9C50412E73F8DB852354410E618490CD9C50419C0DE416852354413FD29464CF9C5041B3B3CB608523544125D21106D59C5041A0B9D88A88235441A1A16F80D99C5041E10D9FBF89235441D8413698D99C50418168396D8723544106BD69E4D99C504120179D8C8423544160B3D07CDA9C5041C84D002D81235441431BD2F9DB9C5041A02C61527B235441A5DCEA99DE9C5041BDFC586771235441DE9BCA09D49C5041E93D51746A235441F568E6D4C49C50418CE847116323544128C944ADC69C50410DE588185F235441
+</a>
+
+<b>
+01060000000100000001030000000100000046000000CE1F7657AE9C5041178EC7805F235441021BF3ECAF9C50413C8D6628622354412D67C280B09C5041160A730B6523544159B39114B19C50411BD34E8268235441A726EFFBB09C5041CA038CD16A235441D272BE8FB19C5041079ADDE56D23544162D8D254B29C5041F7BCD11271235441A3CA8932B39C5041BB93F6AB7323544148D68541B49C50419510038F76235441A8F96096B49C50416FB4BBF0782354410CC40EC6B59C5041B0262D63792354413A1EBBAEB89C5041CEA407907B2354418D5AF40CBC9C50418956EBE87C235441BFDC15C5C59C504149D1AAB881235441FD7267D9C89C504194E8A2D6832354415D304741CB9C50412C73F8DB852354410B618490CD9C50419D0DE4168523544140D29464CF9C5041B3B3CB608523544126D21106D59C50419EB9D88A88235441DD1EE5F4D49C5041F9FD2EAE87235441BF5BD00CD59C50413F026F6487235441F9EC53FDD59C50413D4F0E998223544124EFA30DD69C50414D1CB6198123544190F6A84DD69C50412BBB36657F23544186D55C26D89C50414CE8F98C6C235441CA48BA0DD89C5041FB749CA56C235441F168E6D4C49C504188E84711632354416EC944ADC69C504167E488185F235441955922A8C89C50412657140459235441281B9C36C79C5041804B18F5572354410C75B4ECC69C5041A54D650856235441E128E558C69C5041459085A053235441D803A418C59C50418ADEA147522354418A904631C59C504140C7A9295023544116D119B6C49C5041C78823B84E2354419611ED3AC49C504192966CDA4D235441816B05F1C39C50419E1713E44C23544151C3D093C59C50411C33A5284B235441B5DC15C5C59C504183A84F23492354417AEA5EE7C49C50410B6AC9B147235441876B05F1C39C50419E2B434046235441F705F12BC39C50415D398C6245235441E5BB6EABC09C5041A287A80944235441B14A5ED7BE9C50418CE1C0BF432354415F8FCB82BA9C5041986267C942235441D3851C87B79C5041F3566BBA41235441AFF11786B29C5041157EF90D412354413F461B67AB9C50419118E548402354418427C160A49C5041B164B4DC4023544100D6DCF79C9C50412B24E15741235441B91A4AA3989C5041C70A9C2641235441EC1EE4C9949C5041B164B4DC40235441EF7A4993929C5041BFC019A63E235441C42E7AFF919C5041E00CE9393F235441062131DD929C5041E9312A7A40235441AB2C2DEC939C5041E6D5C4B04223544166DE1045959C5041AAACE949452354411C6FCB89969C5041D5BD398045235441872E5E1BA99C50418ED6C1C449235441A6EA88EFA79C504199022E994F235441D608675A9D9C504114D73F5F4D2354417C1463699E9C504134A268E94E2354418A028020A39C50414F112CAA52235441160C2F1CA69C5041350FDF965423544175C51DA7C39C5041B4A6AB5962235441AD929344C39C5041E0F27AED62235441A215DE17A99C50419B26D7B456235441F89D5214AD9C5041F04B2E635D2354417B14AE17AE9C504185EB51C85E235441CE1F7657AE9C5041178EC7805F235441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>3017977 - 3416187
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000004600000028C944ADC69C50410DE588185F235441915922A8C89C50412557140459235441291B9C36C79C50417B4B18F5572354410775B4ECC69C5041A24D650856235441E428E558C69C5041439085A053235441D603A418C59C50418DDEA1475223544188904631C59C504144C7A9295023544117D119B6C49C5041C68823B84E2354419111ED3AC49C504197966CDA4D235441856B05F1C39C50419F1713E44C23544151C3D093C59C50412033A5284B235441B6DC15C5C59C50417FA84F23492354417CEA5EE7C49C50410C6AC9B147235441856B05F1C39C5041992B434046235441F205F12BC39C50415F398C6245235441E0BB6EABC09C50419E87A80944235441AE4A5ED7BE9C504187E1C0BF43235441608FCB82BA9C50419A6267C942235441D2851C87B79C5041F1566BBA41235441AFF11786B29C5041107EF90D4123544142461B67AB9C50419318E548402354418827C160A49C5041AC64B4DC4023544104D6DCF79C9C50412724E15741235441B61A4AA3989C5041C30A9C2641235441EE1EE4C9949C5041AC64B4DC40235441F37A4993929C5041BCC019A63E235441C52E7AFF919C5041DF0CE9393F2354410A2131DD929C5041ED312A7A40235441A92C2DEC939C5041E8D5C4B0422354416ADE1045959C5041ACACE949452354411F6FCB89969C5041D1BD3980452354418A2E5E1BA99C50418FD6C1C449235441ABEA88EFA79C50419D022E994F235441D808675A9D9C504110D73F5F4D235441771463699E9C504136A268E94E2354418F028020A39C50414B112CAA52235441120C2F1CA69C50413A0FDF965423544178C51DA7C39C5041B7A6AB5962235441AF929344C39C5041DBF27AED622354419F15DE17A99C50419826D7B456235441FD9D5214AD9C5041EE4B2E635D2354417B14AE17AE9C504185EB51C85E235441CD1F7657AE9C5041148EC7805F235441001BF3ECAF9C50413D8D6628622354412E67C280B09C5041190A730B652354415CB39114B19C504117D34E8268235441A926EFFBB09C5041CF038CD16A235441CD72BE8FB19C5041049ADDE56D2354415FD8D254B29C5041F7BCD11271235441A4CA8932B39C5041BB93F6AB7323544143D68541B49C50419610038F76235441AAF96096B49C50416CB4BBF07823544108C40EC6B59C5041B4262D6379235441391EBBAEB89C5041D0A407907B235441905AF40CBC9C50418556EBE87C235441C1DC15C5C59C504145D1AAB881235441017367D9C89C504198E8A2D68323544160304741CB9C50412E73F8DB852354410E618490CD9C50419C0DE416852354413FD29464CF9C5041B3B3CB608523544125D21106D59C5041A0B9D88A88235441A1A16F80D99C5041E10D9FBF89235441D8413698D99C50418168396D8723544106BD69E4D99C504120179D8C8423544160B3D07CDA9C5041C84D002D81235441431BD2F9DB9C5041A02C61527B235441A5DCEA99DE9C5041BDFC586771235441DE9BCA09D49C5041E93D51746A235441F568E6D4C49C50418CE847116323544128C944ADC69C50410DE588185F235441
+</a>
+
+<b>
+01060000000100000001030000000100000046000000CE1F7657AE9C5041178EC7805F235441021BF3ECAF9C50413C8D6628622354412D67C280B09C5041160A730B6523544159B39114B19C50411BD34E8268235441A726EFFBB09C5041CA038CD16A235441D272BE8FB19C5041079ADDE56D23544162D8D254B29C5041F7BCD11271235441A3CA8932B39C5041BB93F6AB7323544148D68541B49C50419510038F76235441A8F96096B49C50416FB4BBF0782354410CC40EC6B59C5041B0262D63792354413A1EBBAEB89C5041CEA407907B2354418D5AF40CBC9C50418956EBE87C235441BFDC15C5C59C504149D1AAB881235441FD7267D9C89C504194E8A2D6832354415D304741CB9C50412C73F8DB852354410B618490CD9C50419D0DE4168523544140D29464CF9C5041B3B3CB608523544126D21106D59C50419EB9D88A88235441DD1EE5F4D49C5041F9FD2EAE87235441BF5BD00CD59C50413F026F6487235441F9EC53FDD59C50413D4F0E998223544124EFA30DD69C50414D1CB6198123544190F6A84DD69C50412BBB36657F23544186D55C26D89C50414CE8F98C6C235441CA48BA0DD89C5041FB749CA56C235441F168E6D4C49C504188E84711632354416EC944ADC69C504167E488185F235441955922A8C89C50412657140459235441281B9C36C79C5041804B18F5572354410C75B4ECC69C5041A54D650856235441E128E558C69C5041459085A053235441D803A418C59C50418ADEA147522354418A904631C59C504140C7A9295023544116D119B6C49C5041C78823B84E2354419611ED3AC49C504192966CDA4D235441816B05F1C39C50419E1713E44C23544151C3D093C59C50411C33A5284B235441B5DC15C5C59C504183A84F23492354417AEA5EE7C49C50410B6AC9B147235441876B05F1C39C50419E2B434046235441F705F12BC39C50415D398C6245235441E5BB6EABC09C5041A287A80944235441B14A5ED7BE9C50418CE1C0BF432354415F8FCB82BA9C5041986267C942235441D3851C87B79C5041F3566BBA41235441AFF11786B29C5041157EF90D412354413F461B67AB9C50419118E548402354418427C160A49C5041B164B4DC4023544100D6DCF79C9C50412B24E15741235441B91A4AA3989C5041C70A9C2641235441EC1EE4C9949C5041B164B4DC40235441EF7A4993929C5041BFC019A63E235441C42E7AFF919C5041E00CE9393F235441062131DD929C5041E9312A7A40235441AB2C2DEC939C5041E6D5C4B04223544166DE1045959C5041AAACE949452354411C6FCB89969C5041D5BD398045235441872E5E1BA99C50418ED6C1C449235441A6EA88EFA79C504199022E994F235441D608675A9D9C504114D73F5F4D2354417C1463699E9C504134A268E94E2354418A028020A39C50414F112CAA52235441160C2F1CA69C5041350FDF965423544175C51DA7C39C5041B4A6AB5962235441AD929344C39C5041E0F27AED62235441A215DE17A99C50419B26D7B456235441F89D5214AD9C5041F04B2E635D2354417B14AE17AE9C504185EB51C85E235441CE1F7657AE9C5041178EC7805F235441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980579 - 376523
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000700000001030000000100000024000000AE47E13AE8FD50410AD7A36005295441713D0A77E8FD50413D0AD7A30429544152B81E75E9FD5041C3F5289C04295441C3F5289CE9FD504148E17A840029544152B81EF5E9FD5041C3F528CCFB28544148E17A64EAFD5041EC51B8DEF428544100000050EBFD504152B81EA5E7285441F6285C0FECFD5041666666E6DD2854411F85EBE1ECFD504185EB51A8CF2854419A999949EDFD50411F85EBB1CC285441C3F5289CEBFD50413D0AD783CC28544166666616E8FD50411F85EB11CC28544185EB5138E5FD504152B81EF5CB2854418FC2F5A8E3FD5041B81E859BDA2854413D0AD763E2FD5041713D0AA7E5285441713D0AC7E1FD5041295C8F82EC28544148E17A74E1FD50411F85EB11EF28544152B81E25E1FD5041E17A14EEF22854415C8FC255E0FD50418FC2F5D8F9285441F6285C7FDFFD5041D7A3706D00295441D7A3705DDFFD5041D7A3705D012954411F85EB81E0FD5041F6285C0F012954415C8FC215E1FD50417B14AE67012954417B14AE97E1FD50410AD7A3000229544152B81E75E2FD5041F6285CEF01295441666666E6E2FD5041B81E852B02295441AE47E15AE3FD5041AE47E1CA022954415C8FC255E3FD5041D7A370CD03295441A4703D6AE3FD50413D0AD753042954417B14AE87E3FD5041CDCCCCEC042954415C8FC2E5E3FD5041F6285C5F05295441A4703DBAE4FD504148E17AB405295441B81E852BE5FD5041D7A370ED0529544114AE4761E7FD504148E17A2406295441EC51B80EE8FD5041713D0AF705295441AE47E13AE8FD50410AD7A360052954410103000000010000000F00000052B81E05DFFD5041AE47E19ABC2854415C8FC275DDFD5041295C8F22CB285441C3F5289CE3FD5041E17A141ECB2854410AD7A350E5FD5041EC51B82ECB2854415C8FC255E7FD504133333363CB285441295C8F82E9FD5041CDCCCCACCB285441EC51B84EEDFD504152B81E25CC285441713D0A57EDFD504152B81E65CB285441A4703DFAEDFD5041295C8F02C12854415C8FC2A5EFFD5041B81E853BAD285441000000F0E9FD5041713D0AD7A92854415C8FC2F5E6FD5041D7A3702DA928544152B81E85E3FD504114AE4701A828544185EB5138E1FD5041D7A3702DA728544152B81E05DFFD5041AE47E19ABC2854410103000000010000001A000000295C8F32BFFD504152B81EB5C9285441295C8F72C6FD504100000010CA2854411F85EBE1C9FD50417B14AE37CA2854415C8FC2F5C9FD5041E17A144EC9285441AE47E15ACAFD5041D7A3707DC4285441E17A14FECAFD5041000000D0BF2854415C8FC275CEFD5041CDCCCCECA4285441EC51B89ECEFD5041F6285C5FA4285441CDCCCC5CCDFD50411F85EB51A42854410AD7A330CCFD50410AD7A3B0A32854417B14AEB7CBFD5041EC51B86EA32854417B14AEE7CAFD5041713D0A47A32854419A999939CAFD5041D7A370FDA228544148E17A94C9FD5041713D0A77A2285441295C8FB2C8FD50418FC2F5C8A12854415C8FC2D5C7FD5041C3F5288CA12854417B14AE87C6FD5041E17A14DEA0285441A4703D8AC3FD5041C3F5287CA1285441295C8FD2C0FD5041295C8F52A1285441713D0AD7BDFD5041D7A3705DA1285441713D0A87BBFD504133333383A128544148E17A74BBFD50419A9999D9A1285441333333B3B9FD5041A4703D9AAE2854418FC2F5C8B8FD5041B81E857BB8285441F6285C1FB7FD504114AE4771C9285441295C8F32BFFD504152B81EB5C928544101030000000100000006000000D7A3704DC5FD50413D0AD773D32854410AD7A3C0C8FD504152B81EF5D3285441000000D0C9FD504148E17AE4CA28544114AE47B1C8FD5041CDCCCCCCCA2854417B14AE57C6FD5041CDCCCCDCCA285441D7A3704DC5FD50413D0AD773D32854410103000000010000000F0000005C8FC265CDFD50418FC2F578C928544185EB5168CDFD5041295C8F52CA285441A4703D3AD1FD504133333393CA285441EC51B8CED5FD50419A9999D9CA285441F6285CCFD5FD5041CDCCCCCCC928544100000010D7FD5041B81E85DBBC28544133333393D8FD5041333333D3AD2854410AD7A370D9FD504185EB5108A628544166666676D9FD50415C8FC2C5A5285441CDCCCCDCD6FD5041713D0A67A52854413D0AD773D5FD50417B14AE17A5285441CDCCCC9CD1FD5041EC51B87EA42854417B14AEA7D1FD50411F85EB81A5285441C3F5289CCEFD504148E17A34BF2854415C8FC265CDFD50418FC2F578C92854410103000000010000001A00000085EB51A8B6FD5041EC51B8DECE2854417B14AED7B5FD5041B81E854BD7285441E17A14FEB4FD5041A4703D8AE0285441D7A3706DB4FD5041E17A141EE82854410AD7A3C0B3FD5041295C8FE2ED28544185EB5138B2FD50410AD7A350FF285441F6285C0FB2FD50415C8FC265012954410AD7A3B0B2FD504148E17A04022954411F85EB81B3FD5041CDCCCC3C022954418FC2F5F8B4FD5041AE47E15A0229544133333383B6FD5041295C8F3202295441D7A370ADB7FD5041713D0A270229544185EB5158B9FD504185EB5128022954413D0AD783B9FD5041B81E854B01295441A4703D1ABAFD504185EB5188FA2854411F85EB71BAFD5041713D0A87F6285441D7A370CDBAFD5041F6285C0FF2285441000000A0BBFD50411F85EB51EA28544133333383BCFD5041713D0A37E22854419A999999BCFD50413D0AD763E1285441D7A3705DBDFD50417B14AE07DA285441E17A142EBEFD50411F85EB71D3285441E17A141EBFFD50411F85EB61CA285441666666A6BAFD5041EC51B82ECA285441AE47E12AB7FD5041AE47E11ACA28544185EB51A8B6FD5041EC51B8DECE2854410103000000010000001700000048E17A74C7FD5041C3F528BCFF28544114AE47D1C8FD50413D0AD7530029544185EB51D8CDFD5041B81E858BFE2854419A9999E9CFFD5041EC51B87EFD285441666666F6CFFD50415C8FC2E5FC2854410AD7A350D1FD50419A9999F9F028544114AE4751D2FD50418FC2F5E8E6285441C3F5286CD5FD5041A4703DBACC2854413D0AD7C3D5FD50419A999979CB28544114AE4781D3FD50419A999969CB28544100000010D0FD50411F85EB31CB28544166666646CDFD5041F6285CFFCA2854419A999999CCFD5041CDCCCC3CD028544114AE4731CCFD5041AE47E12AD4285441EC51B82ECDFD5041A4703D6AD828544185EB51F8CCFD50410AD7A3B0D928544114AE4751CBFD5041B81E854BDC2854419A999959CAFD5041B81E85FBE4285441713D0AC7C9FD5041713D0A87EA28544148E17A44C9FD50418FC2F5A8EE28544114AE4761C8FD5041F6285CCFF72854417B14AEC7C7FD5041D7A3702DFD28544148E17A74C7FD5041C3F528BCFF285441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000F8145ADCD3FD5041517846D8A428544187D9CD9CD1FD50411DA8B87EA42854417B14AEA7D1FD50411F85EB81A528544167F17D70D1FD50413353AA53A72854415CF889ABD0FD5041AED7D1D1AD28544194D0698ECFFD5041281C0F38B72854414CB2E785CEFD5041D2FCF1F0BF285441A80A59E8CDFD50419D632527C5285441B73D6877CDFD5041C9D985E3C8285441B3D15168CDFD504169C98652CA285441EC51B8CED5FD50419A9999D9CA285441F6285CCFD5FD5041CDCCCCCCC9285441DB07AE06D6FD504134782991C728544182715107D6FD5041F43C9387C7285441FE83C220D6FD5041E91FAB83C628544100000010D7FD5041B81E85DBBC28544199909605D8FD5041C372A852B3285441F8746F23D8FD50412DD2022AB228544133333393D8FD5041333333D3AD285441548E2366D9FD504134141E37A62854413C68D372D9FD50417CCF0FEFA528544104B93D6ED9FD50415B7009C7A52854414798D12FD9FD5041E33AB7BBA52854414D127E00D9FD5041B228ECA1A5285441CDCCCCDCD6FD5041713D0A67A52854413D0AD773D5FD50417B14AE17A5285441F8145ADCD3FD5041517846D8A4285441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>776242 - 992706
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000030000003F000000E17A143E04605141F6285C2FB86C544119FF42B006605141E55DA71FB86C54411987A72105605141E7E344BAB06C54411943F5E805605141E90C9FDCAB6C544117D6E88D0B605141EA79AB37A66C5441713D0A170F605141666666B6A46C5441000000B00F605141295C8FB29F6C544152B81E8509605141666666869F6C54411F85EB41086051410AD7A3909F6C5441D7A370AD0A605141333333739A6C5441EC51B8FE0B6051418FC2F5688E6C544114AE473102605141666666168C6C54418FC2F578FA5F51415C8FC2D5896C5441666666B6DF5F5141D7A370ED826C544148E17AF4DD5F5141713D0AF7856C5441F6285CFFD95F51417B14AE478C6C5441C3F5281CD75F5141D7A3702D916C54413D0AD733D35F5141E17A14BE986C54415C8FC2E5D15F5141B81E852B9B6C5441C3F5283CD25F51410AD7A3709C6C54419A999919D35F5141E17A144E9D6C544148E17A84D45F51413D0AD7039E6C544128776F6BD65F5141EDFF48D29E6C544127454DECD95F5141EF6C552D996C544127019BB3DA5F5141F0386CD7966C5441333333F3E05F51419A9999499A6C54418FC2F528E25F514133333313976C5441AE47E10AE35F51410AD7A330966C544133333333E45F51415C8FC2A5956C5441713D0A27E55F5141713D0AB7956C5441CDCCCCFCE65F5141AE47E1AA966C5441226DFB0CEB5F5141EFF4B99E976C544121321131ED5F5141EF413434986C5441713D0AC7E95F51413D0AD7439D6C5441C3F5286CEF5F5141295C8F829F6C5441B81E859BEE5F51415C8FC2F5A16C54411F85EBB1E55F5141000000A09E6C54413D0AD713E85F5141F6285C6F986C5441B81E85EBE65F514114AE47C1976C54418FC2F508E65F5141F6285CDF966C5441295C8FF2E45F514185EB5188966C5441D7A370EDE35F5141C3F528BC966C544185EB51E8E25F5141000000B0976C544152B81E35E15F51417B14AEE79B6C544114AE4781DF5F5141E17A140EA06C5441AE47E16ADE5F51415C8FC2F5A16C5441713D0A77DD5F51410AD7A380A26C54410AD7A3F0DA5F5141B81E851BA36C54415C8FC285E35F514148E17AE4A76C54413D0AD783E75F5141333333C3A86C5441333333B3F65F51418FC2F5A8AC6C544114AE47F1FA5F5141713D0A77AD6C5441CDCCCC2CFF5F51411F85EB91AE6C54411B5ABF51FE5F5141E8591972AC6C54411BEBEB1FFE5F5141EACFED29A86C54411B1FD57500605141EB2C31A2A56C5441AE47E1AA03605141C3F5287CA86C54410000001003605141B81E855BA96C54415C8FC2E5016051417B14AE77AB6C5441666666A60060514148E17AF4AE6C54410AD7A340FF5F514133333363B36C544114AE47C1FD5F514152B81EC5B76C5441E17A143E04605141F6285C2FB86C544105000000D7A3708DE35F51417B14AED7996C54413D0AD7E3E45F51410AD7A330986C54411F85EB11E65F5141E17A140E996C5441B81E85BBE45F51419A9999C99A6C5441D7A3708DE35F51417B14AED7996C544105000000AE47E15AE05F5141D7A3706DA46C5441B81E85EBDD5F51413D0AD753A36C5441AE47E16ADF5F514152B81EC5A06C54413D0AD723E15F51410AD7A3A0A16C5441AE47E15AE05F5141D7A3706DA46C5441
+</a>
+
+<b>
+0106000000010000000103000000030000003D0000001C3A7C26DC5F51418D3C3FD8886C5441F6285CFFD95F51417B14AE478C6C5441C3F5281CD75F5141D7A3702D916C54413D0AD733D35F5141E17A14BE986C54415C8FC2E5D15F5141B81E852B9B6C5441C3F5283CD25F51410AD7A3709C6C54419A999919D35F5141E17A144E9D6C544148E17A84D45F51413D0AD7039E6C544126776F6BD65F5141EEFF48D29E6C544122454DECD95F5141EF6C552D996C544123019BB3DA5F5141EE386CD7966C5441333333F3E05F51419A9999499A6C54418FC2F528E25F514133333313976C5441AE47E10AE35F51410AD7A330966C544133333333E45F51415C8FC2A5956C5441713D0A27E55F5141713D0AB7956C5441CDCCCCFCE65F5141AE47E1AA966C54411E6DFB0CEB5F5141EEF4B99E976C544122321131ED5F5141F1413434986C5441713D0AC7E95F51413D0AD7439D6C5441C3F5286CEF5F5141295C8F829F6C5441B81E859BEE5F51415C8FC2F5A16C54411F85EBB1E55F5141000000A09E6C54413D0AD713E85F5141F6285C6F986C5441B81E85EBE65F514114AE47C1976C54418FC2F508E65F5141F6285CDF966C5441295C8FF2E45F514185EB5188966C5441D7A370EDE35F5141C3F528BC966C544185EB51E8E25F5141000000B0976C544152B81E35E15F51417B14AEE79B6C544114AE4781DF5F5141E17A140EA06C5441AE47E16ADE5F51415C8FC2F5A16C5441713D0A77DD5F51410AD7A380A26C54410AD7A3F0DA5F5141B81E851BA36C54415C8FC285E35F514148E17AE4A76C54413D0AD783E75F5141333333C3A86C5441333333B3F65F51418FC2F5A8AC6C544114AE47F1FA5F5141713D0A77AD6C5441CDCCCC2CFF5F51411F85EB91AE6C54411E5ABF51FE5F5141E3591972AC6C544120EBEB1FFE5F5141E7CFED29A86C5441161FD57500605141E92C31A2A56C5441AE47E1AA03605141C3F5287CA86C54410000001003605141B81E855BA96C54415C8FC2E5016051417B14AE77AB6C5441666666A60060514148E17AF4AE6C54410AD7A340FF5F514133333363B36C544114AE47C1FD5F514152B81EC5B76C5441E17A143E04605141F6285C2FB86C544119FF42B006605141E85DA71FB86C54411887A72105605141EAE344BAB06C54411843F5E805605141EB0C9FDCAB6C544118D6E88D0B605141EC79AB37A66C5441713D0A170F605141666666B6A46C5441000000B00F605141295C8FB29F6C544152B81E8509605141666666869F6C54411F85EB41086051410AD7A3909F6C5441D7A370AD0A605141333333739A6C544137AFB0380B60514147E6E923946C5441968DE93A01605141FA118986926C54411C3A7C26DC5F51418D3C3FD8886C544105000000D7A3708DE35F51417B14AED7996C54413D0AD7E3E45F51410AD7A330986C54411F85EB11E65F5141E17A140E996C5441B81E85BBE45F51419A9999C99A6C5441D7A3708DE35F51417B14AED7996C544105000000AE47E15AE05F5141D7A3706DA46C5441B81E85EBDD5F51413D0AD753A36C5441AE47E16ADF5F514152B81EC5A06C54413D0AD723E15F51410AD7A3A0A16C5441AE47E15AE05F5141D7A3706DA46C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>776242 - 3696473
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000030000003F000000E17A143E04605141F6285C2FB86C544119FF42B006605141E55DA71FB86C54411987A72105605141E7E344BAB06C54411943F5E805605141E90C9FDCAB6C544117D6E88D0B605141EA79AB37A66C5441713D0A170F605141666666B6A46C5441000000B00F605141295C8FB29F6C544152B81E8509605141666666869F6C54411F85EB41086051410AD7A3909F6C5441D7A370AD0A605141333333739A6C5441EC51B8FE0B6051418FC2F5688E6C544114AE473102605141666666168C6C54418FC2F578FA5F51415C8FC2D5896C5441666666B6DF5F5141D7A370ED826C544148E17AF4DD5F5141713D0AF7856C5441F6285CFFD95F51417B14AE478C6C5441C3F5281CD75F5141D7A3702D916C54413D0AD733D35F5141E17A14BE986C54415C8FC2E5D15F5141B81E852B9B6C5441C3F5283CD25F51410AD7A3709C6C54419A999919D35F5141E17A144E9D6C544148E17A84D45F51413D0AD7039E6C544128776F6BD65F5141EDFF48D29E6C544127454DECD95F5141EF6C552D996C544127019BB3DA5F5141F0386CD7966C5441333333F3E05F51419A9999499A6C54418FC2F528E25F514133333313976C5441AE47E10AE35F51410AD7A330966C544133333333E45F51415C8FC2A5956C5441713D0A27E55F5141713D0AB7956C5441CDCCCCFCE65F5141AE47E1AA966C5441226DFB0CEB5F5141EFF4B99E976C544121321131ED5F5141EF413434986C5441713D0AC7E95F51413D0AD7439D6C5441C3F5286CEF5F5141295C8F829F6C5441B81E859BEE5F51415C8FC2F5A16C54411F85EBB1E55F5141000000A09E6C54413D0AD713E85F5141F6285C6F986C5441B81E85EBE65F514114AE47C1976C54418FC2F508E65F5141F6285CDF966C5441295C8FF2E45F514185EB5188966C5441D7A370EDE35F5141C3F528BC966C544185EB51E8E25F5141000000B0976C544152B81E35E15F51417B14AEE79B6C544114AE4781DF5F5141E17A140EA06C5441AE47E16ADE5F51415C8FC2F5A16C5441713D0A77DD5F51410AD7A380A26C54410AD7A3F0DA5F5141B81E851BA36C54415C8FC285E35F514148E17AE4A76C54413D0AD783E75F5141333333C3A86C5441333333B3F65F51418FC2F5A8AC6C544114AE47F1FA5F5141713D0A77AD6C5441CDCCCC2CFF5F51411F85EB91AE6C54411B5ABF51FE5F5141E8591972AC6C54411BEBEB1FFE5F5141EACFED29A86C54411B1FD57500605141EB2C31A2A56C5441AE47E1AA03605141C3F5287CA86C54410000001003605141B81E855BA96C54415C8FC2E5016051417B14AE77AB6C5441666666A60060514148E17AF4AE6C54410AD7A340FF5F514133333363B36C544114AE47C1FD5F514152B81EC5B76C5441E17A143E04605141F6285C2FB86C544105000000D7A3708DE35F51417B14AED7996C54413D0AD7E3E45F51410AD7A330986C54411F85EB11E65F5141E17A140E996C5441B81E85BBE45F51419A9999C99A6C5441D7A3708DE35F51417B14AED7996C544105000000AE47E15AE05F5141D7A3706DA46C5441B81E85EBDD5F51413D0AD753A36C5441AE47E16ADF5F514152B81EC5A06C54413D0AD723E15F51410AD7A3A0A16C5441AE47E15AE05F5141D7A3706DA46C5441
+</a>
+
+<b>
+0106000000010000000103000000030000003D0000001C3A7C26DC5F51418D3C3FD8886C5441F6285CFFD95F51417B14AE478C6C5441C3F5281CD75F5141D7A3702D916C54413D0AD733D35F5141E17A14BE986C54415C8FC2E5D15F5141B81E852B9B6C5441C3F5283CD25F51410AD7A3709C6C54419A999919D35F5141E17A144E9D6C544148E17A84D45F51413D0AD7039E6C544126776F6BD65F5141EEFF48D29E6C544122454DECD95F5141EF6C552D996C544123019BB3DA5F5141EE386CD7966C5441333333F3E05F51419A9999499A6C54418FC2F528E25F514133333313976C5441AE47E10AE35F51410AD7A330966C544133333333E45F51415C8FC2A5956C5441713D0A27E55F5141713D0AB7956C5441CDCCCCFCE65F5141AE47E1AA966C54411E6DFB0CEB5F5141EEF4B99E976C544122321131ED5F5141F1413434986C5441713D0AC7E95F51413D0AD7439D6C5441C3F5286CEF5F5141295C8F829F6C5441B81E859BEE5F51415C8FC2F5A16C54411F85EBB1E55F5141000000A09E6C54413D0AD713E85F5141F6285C6F986C5441B81E85EBE65F514114AE47C1976C54418FC2F508E65F5141F6285CDF966C5441295C8FF2E45F514185EB5188966C5441D7A370EDE35F5141C3F528BC966C544185EB51E8E25F5141000000B0976C544152B81E35E15F51417B14AEE79B6C544114AE4781DF5F5141E17A140EA06C5441AE47E16ADE5F51415C8FC2F5A16C5441713D0A77DD5F51410AD7A380A26C54410AD7A3F0DA5F5141B81E851BA36C54415C8FC285E35F514148E17AE4A76C54413D0AD783E75F5141333333C3A86C5441333333B3F65F51418FC2F5A8AC6C544114AE47F1FA5F5141713D0A77AD6C5441CDCCCC2CFF5F51411F85EB91AE6C54411E5ABF51FE5F5141E3591972AC6C544120EBEB1FFE5F5141E7CFED29A86C5441161FD57500605141E92C31A2A56C5441AE47E1AA03605141C3F5287CA86C54410000001003605141B81E855BA96C54415C8FC2E5016051417B14AE77AB6C5441666666A60060514148E17AF4AE6C54410AD7A340FF5F514133333363B36C544114AE47C1FD5F514152B81EC5B76C5441E17A143E04605141F6285C2FB86C544119FF42B006605141E85DA71FB86C54411887A72105605141EAE344BAB06C54411843F5E805605141EB0C9FDCAB6C544118D6E88D0B605141EC79AB37A66C5441713D0A170F605141666666B6A46C5441000000B00F605141295C8FB29F6C544152B81E8509605141666666869F6C54411F85EB41086051410AD7A3909F6C5441D7A370AD0A605141333333739A6C544137AFB0380B60514147E6E923946C5441968DE93A01605141FA118986926C54411C3A7C26DC5F51418D3C3FD8886C544105000000D7A3708DE35F51417B14AED7996C54413D0AD7E3E45F51410AD7A330986C54411F85EB11E65F5141E17A140E996C5441B81E85BBE45F51419A9999C99A6C5441D7A3708DE35F51417B14AED7996C544105000000AE47E15AE05F5141D7A3706DA46C5441B81E85EBDD5F51413D0AD753A36C5441AE47E16ADF5F514152B81EC5A06C54413D0AD723E15F51410AD7A3A0A16C5441AE47E15AE05F5141D7A3706DA46C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980726 - 1087062
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000012000000B30CD92EEF4B51418F663667D0695441E9E093DAF04B5141963C6B62D1695441C9C08660F34B5141337ACC2BD06954411002138DF84B5141A0C7C862CD695441D57186BF004C514122274916CA6954415D4411F2074C5141B74332B0C669544170A827BE0F4C5141AE1127CAC269544180A68F3D164C51412C0BF930BE695441601F2639164C51419102E90BBE6954418D483137164C514101C41205BE6954411F85EB31164C5141AE47E10ABE695441EFB79496134C51418B888CD6B469544171BA68B2124C5141509C2CB9B1695441EF8C2FEA104C5141E1CB0485B2695441E5C84059FF4B5141AB04CB97B9695441AD3CC6D4EC4B5141ADAC14F2C0695441295C8F22EE4B514114AE4781C9695441B30CD92EEF4B51418F663667D0695441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000B70CD92EEF4B51418F663667D0695441E8E093DAF04B51419A3C6B62D1695441C4C08660F34B5141377ACC2BD06954411002138DF84B5141A5C7C862CD695441D47186BF004C514126274916CA695441614411F2074C5141B54332B0C669544170A827BE0F4C5141B21127CAC26954417CA68F3D164C51412F0BF930BE695441641F2639164C51418D02E90BBE6954418D483137164C5141FDC31205BE6954411F85EB31164C5141AE47E10ABE695441F3B79496134C51418F888CD6B469544174BA68B2124C51414B9C2CB9B1695441EB8C2FEA104C5141E2CB0485B2695441E8C84059FF4B5141AB04CB97B9695441B03CC6D4EC4B5141ABAC14F2C0695441295C8F22EE4B514114AE4781C9695441B70CD92EEF4B51418F663667D0695441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980726 - 3892316
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000012000000B30CD92EEF4B51418F663667D0695441E9E093DAF04B5141963C6B62D1695441C9C08660F34B5141337ACC2BD06954411002138DF84B5141A0C7C862CD695441D57186BF004C514122274916CA6954415D4411F2074C5141B74332B0C669544170A827BE0F4C5141AE1127CAC269544180A68F3D164C51412C0BF930BE695441601F2639164C51419102E90BBE6954418D483137164C514101C41205BE6954411F85EB31164C5141AE47E10ABE695441EFB79496134C51418B888CD6B469544171BA68B2124C5141509C2CB9B1695441EF8C2FEA104C5141E1CB0485B2695441E5C84059FF4B5141AB04CB97B9695441AD3CC6D4EC4B5141ADAC14F2C0695441295C8F22EE4B514114AE4781C9695441B30CD92EEF4B51418F663667D0695441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000B70CD92EEF4B51418F663667D0695441E8E093DAF04B51419A3C6B62D1695441C4C08660F34B5141377ACC2BD06954411002138DF84B5141A5C7C862CD695441D47186BF004C514126274916CA695441614411F2074C5141B54332B0C669544170A827BE0F4C5141B21127CAC26954417CA68F3D164C51412F0BF930BE695441641F2639164C51418D02E90BBE6954418D483137164C5141FDC31205BE6954411F85EB31164C5141AE47E10ABE695441F3B79496134C51418F888CD6B469544174BA68B2124C51414B9C2CB9B1695441EB8C2FEA104C5141E2CB0485B2695441E8C84059FF4B5141AB04CB97B9695441B03CC6D4EC4B5141ABAC14F2C0695441295C8F22EE4B514114AE4781C9695441B70CD92EEF4B51418F663667D0695441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>333693 - 982444
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000002200000058F51AAFF20C51417CE6A99FB18854416B000E9DF40C51418E329E3FB1885441213695C6F70C5141A07E92DFB08854416BE463E2FA0C514104ADA448B0885441267391B0FE0C5141818051F6AF885441702160CC010D51413FEA27CDAF885441F6285C1F040D5141AE47E1BAAF885441CDCCCC0C030D5141EC51B8AEAB885441B81E85BB000D51417B14AE07A488544114AE4701FF0C5141EC51B83E9F8854413D0AD7A3FE0C5141CDCCCC5C9E8854418FC2F588F80C51419A9999F99E8854415C8FC2D5F20C51418FC2F5A89F885441D7A3709DEA0C5141EC51B83EA08854410AD7A380E80C5141B81E85DBA08854410AD7A3B0E70C5141CDCCCC3CA1885441D7A3700DE70C5141295C8FD2A18854413D0AD7A3E60C5141A4703D9AA2885441EC51B8DEE60C5141EC51B8CEA3885441713D0A17E70C51417B14AEC7A488544185EB51A8E70C5141295C8F92A6885441CDCCCCFCE70C514148E17A94A78854415C8FC2A5E80C51419A999989A8885441713D0A97E90C5141713D0A47A988544158D560A7EA0C514177FE6EEEA9885441B0165A81EC0C51419E3FAD21AB88544196EAE7A8ED0C51416EE90FECAB8854415A94AFA3EE0C514110ACC997AC885441A7787182EF0C51417F135330AD885441ADAC24C4EF0C5141DBAE696EAD885441B2E9CF01F00C51414E4F145BAE88544149D2D750F00C51412B3B608AAF88544175345D4AF10C51417CE6A99FB188544158F51AAFF20C51417CE6A99FB1885441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000F6285CAFE70C5141C3F5285CAA8854411F85EB91E70C51413D0AD793A98854415C8FC2C5EA0C51411F85EBF1A9885441713D0A97E90C5141713D0A47A98854415C8FC2A5E80C51419A999989A8885441CDCCCCFCE70C514148E17A94A788544185EB51A8E70C5141295C8F92A6885441713D0A17E70C51417B14AEC7A4885441EC51B8DEE60C5141EC51B8CEA38854413D0AD7A3E60C5141A4703D9AA2885441713D0A47E10C5141295C8FD2A388544152B81E05DE0C5141C3F528BCA5885441B81E850BDD0C514114AE4751A788544133333393DD0C5141713D0AF7A8885441C3F528ECDD0C5141F6285CBFAB885441F6285CAFE70C5141C3F5285CAA885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>217700 - 4291468
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000002000000010300000001000000190000006C80CAD070B350413DD68631AF4855416AF031BF70B35041E8E0413DAF4855416EE498C870B35041E1F8732AAF4855416BF031BF70B350411B0D5622AF48554105BBA47B71B3504119A4848EAD4855419FA0BF5771B350417C80260CAE485541755D427671B35041D10621CFAD485541A257BA5F75B35041479524B8A84855410DC8BB5E79B35041427D4B83A448554164A6EE547BB35041C95ACFE0A0485541DE90E5277DB350416C9C48859C4855415A56E7F082B3504170E363F0904855410467D6E282B35041D1C1DFEA90485541E4CB59E381B3504191A36C52904855413F0770D281B3504198F10C80904855410EC8BB5E79B35041F429F2F48C485541601B983279B35041717EF21C8D485541A64CF80D79B35041C1FDDD0F8D4855413F459B3179B3504180A0D71D8D485541D3D4C6A372B350416226600E934855417B14AEE769B35041A4703DDA9C48554159F99E7F61B35041AB847BEEA64855411F85EB916EB350417B14AE57B3485541E8B8B3EA70B35041A54AE547AF4855416C80CAD070B350413DD68631AF485541010300000001000000050000006C80CAD070B350413DD68631AF485541D16BF50F71B350414E396A07AF4855419FA0BF5771B350417C80260CAE4855416EE498C870B35041E1F8732AAF4855416C80CAD070B350413DD68631AF485541
+</a>
+
+<b>
+010600000002000000010300000001000000190000006C80CAD070B350413ED68631AF48554168F031BF70B35041EBE0413DAF48554173E498C870B35041E1F8732AAF48554168F031BF70B350411D0D5622AF48554100BBA47B71B3504114A4848EAD4855419FA0BF5771B350417D80260CAE485541735D427671B35041D60621CFAD4855419F57BA5F75B350414B9524B8A84855410DC8BB5E79B35041417D4B83A448554166A6EE547BB35041C75ACFE0A0485541DE90E5277DB35041719C48859C4855415B56E7F082B3504175E363F090485541FF66D6E282B35041D2C1DFEA90485541E4CB59E381B350418DA36C5290485541440770D281B3504196F10C80904855410DC8BB5E79B35041F429F2F48C485541601B983279B350416D7EF21C8D485541A34CF80D79B35041C2FDDD0F8D48554140459B3179B350417BA0D71D8D485541D1D4C6A372B350416626600E934855417B14AEE769B35041A4703DDA9C48554155F99E7F61B35041A6847BEEA64855411F85EB916EB350417B14AE57B3485541EAB8B3EA70B35041A84AE547AF4855416C80CAD070B350413ED68631AF485541010300000001000000050000006C80CAD070B350413ED68631AF485541D26BF50F71B350414F396A07AF4855419FA0BF5771B350417D80260CAE48554173E498C870B35041E1F8732AAF4855416C80CAD070B350413ED68631AF485541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980629 - 2940168
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000190000005D776D121B425141EF72B2CCF4A454410523E73D1A425141BAB7E689F5A454413F6F6A871242514193084725F1A454415BEBAA980C4251416145173DEEA4544117B30A99004251416DA8FD7FE9A4544119A937BBF941514187105FF8E6A4544185DB6F52F741514197887F20E6A45441A933121BF3415141A178C070E4A45441655F681EEC4151410DABF807E2A45441C1ADB9F9EB4151416E0755F4E1A45441C1C84B41EB415141DB147298E2A45441DD959D60E74151416808C70BE6A45441B844C96DD3415141B93E05CCF7A45441917AF022C54151410951A18304A5544116FFD4B8BA41514185B1E8C70DA5544164712630C4415141EC8BFEFA12A55441BBF18F02CE41514131CC6E3018A5544174A1AAE5DC415141FE772D1E20A55441FC095D9BE24151411572042923A55441FD472862E54151415769BFA324A554416387A928EB41514105D2EE791FA55441807E21EFF84151410C5FDB3413A55441ED9D9359054251414653C72508A55441E864CE5616425141BF25E503F9A454415D776D121B425141EF72B2CCF4A45441
+</a>
+
+<b>
+0106000000010000000103000000010000000B00000000000050EF415141C3F528FCDEA454419A999979DF415141295C8FB2D9A4544185EB5178DA415141E17A14BED7A45441F6285C6FD44151413D0AD7E3D4A4544148E17A24D341514133333323D4A45441E17A144EBD4151411F85EB91E7A45441AE47E14AA14151410000008000A55441295C8F32A9415141D7A370AD04A55441AE47E19ABA415141295C8FE20DA55441EC51B89ED641514152B81EF5F4A4544100000050EF415141C3F528FCDEA45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980629 - 3390909
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000190000005D776D121B425141EF72B2CCF4A454410523E73D1A425141BAB7E689F5A454413F6F6A871242514193084725F1A454415BEBAA980C4251416145173DEEA4544117B30A99004251416DA8FD7FE9A4544119A937BBF941514187105FF8E6A4544185DB6F52F741514197887F20E6A45441A933121BF3415141A178C070E4A45441655F681EEC4151410DABF807E2A45441C1ADB9F9EB4151416E0755F4E1A45441C1C84B41EB415141DB147298E2A45441DD959D60E74151416808C70BE6A45441B844C96DD3415141B93E05CCF7A45441917AF022C54151410951A18304A5544116FFD4B8BA41514185B1E8C70DA5544164712630C4415141EC8BFEFA12A55441BBF18F02CE41514131CC6E3018A5544174A1AAE5DC415141FE772D1E20A55441FC095D9BE24151411572042923A55441FD472862E54151415769BFA324A554416387A928EB41514105D2EE791FA55441807E21EFF84151410C5FDB3413A55441ED9D9359054251414653C72508A55441E864CE5616425141BF25E503F9A454415D776D121B425141EF72B2CCF4A45441
+</a>
+
+<b>
+0106000000010000000103000000010000000B00000000000050EF415141C3F528FCDEA454419A999979DF415141295C8FB2D9A4544185EB5178DA415141E17A14BED7A45441F6285C6FD44151413D0AD7E3D4A4544148E17A24D341514133333323D4A45441E17A144EBD4151411F85EB91E7A45441AE47E14AA14151410000008000A55441295C8F32A9415141D7A370AD04A55441AE47E19ABA415141295C8FE20DA55441EC51B89ED641514152B81EF5F4A4544100000050EF415141C3F528FCDEA45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980630 - 2176946
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000C0000007B14AE97A94B5141B81E85EB9F4454415C8FC205AA4B514148E17AB48C44544152B81E45A34B5141295C8F628D445441295C8F52824B5141000000009144544152B81E75814B51411F85EB019F44544152B81E05804B5141C3F5288CAE44544152B81E45874B5141AE47E1AAAE4454417B14AE37864B5141C3F5282CC3445441E17A144E894B5141AE47E17AC8445441D7A3707DA44B514114AE47E1B64454418FC2F528A94B5141E17A142EB34454417B14AE97A94B5141B81E85EB9F445441
+</a>
+
+<b>
+0106000000010000000103000000010000003800000008878724814B514170AE2369A244544158CFC368814B5141ECF37B879F445441A9CCA07D814B5141757B24789E44544110F668E0834B5141CBCF303C7A445441E7440E2D754B5141809335BF79445441441260DD734B5141C98596D5794454410AD7A3305E4B5141666666567B445441F6285CAF5C4B514114AE47417B445441713D0A275C4B5141A4703D3A7B445441B81E85CB524B51413D0AD7237B445441E17A149E514B514114AE47217B445441666666A64F4B5141CDCCCC4C7B445441B81E851B4F4B51411F85EB01824454413D0AD7334A4B51415C8FC24582445441B81E853B3D4B514185EB515884445441F6285C2F394B5141000000D0854454411F85EBE1374B51418FC2F548864454419A9999A9304B5141A4703D4A8844544185EB51C82B4B51419A999939894454418FC2F508274B5141AE47E14A89445441B81E858B1F4B5141C3F5286C8844544148E17A14204B51410AD7A3908B445441A4703D6A214B5141EC51B80E91445441000000A0234B51411F85EB3195445441CDCCCC5C254B5141295C8F2298445441B81E85BB274B514148E17AB49B44544185EB51C82B4B5141F6285C8FA04454411F85EBD12E4B5141D7A3700DA4445441E17A14FE324B514166666666A8445441AE47E12A374B5141AE47E1EAAC4454415C8FC2853A4B5141EC51B8AEB0445441295C8FF23D4B5141F6285CFFB4445441295C8FD2404B51410AD7A370BA44544185EB5198434B51415C8FC265C044544166666606464B5141333333F3C4445441CDCCCCBC474B514100000050C7445441CDCCCC9C494B5141B81E859BC844544114AE47E14B4B5141AE47E12AC9445441B81E85EB4F4B5141295C8F92C9445441E17A14FE594B5141F6285C9FCA44544148E17AC45D4B5141B81E852BCB44544133333303604B51417B14AE47CB445441F6285C6F614B5141D7A3701DCB4454419A9999E9624B5141F6285C9FCA445441D7A3708D644B514152B81E95C9445441E17A14DE654B514133333353C8445441E17A14BE664B51410AD7A3A0C644544185EB51C8674B51410AD7A3E0C44454413D0AD7E3674B5141713D0AB7B944544100000090724B5141CDCCCCFCB94454417B14AEC7794B5141CDCCCC3CBA445441D509C32C804B5141387AA321BB445441FCEF16FF7F4B514130353C49AE445441EE0ABD53804B514173A9423AAB44544152C4D4A6804B51410B13FEB7A744544108878724814B514170AE2369A2445441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980630 - 3289468
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000C0000007B14AE97A94B5141B81E85EB9F4454415C8FC205AA4B514148E17AB48C44544152B81E45A34B5141295C8F628D445441295C8F52824B5141000000009144544152B81E75814B51411F85EB019F44544152B81E05804B5141C3F5288CAE44544152B81E45874B5141AE47E1AAAE4454417B14AE37864B5141C3F5282CC3445441E17A144E894B5141AE47E17AC8445441D7A3707DA44B514114AE47E1B64454418FC2F528A94B5141E17A142EB34454417B14AE97A94B5141B81E85EB9F445441
+</a>
+
+<b>
+0106000000010000000103000000010000003800000008878724814B514170AE2369A244544158CFC368814B5141ECF37B879F445441A9CCA07D814B5141757B24789E44544110F668E0834B5141CBCF303C7A445441E7440E2D754B5141809335BF79445441441260DD734B5141C98596D5794454410AD7A3305E4B5141666666567B445441F6285CAF5C4B514114AE47417B445441713D0A275C4B5141A4703D3A7B445441B81E85CB524B51413D0AD7237B445441E17A149E514B514114AE47217B445441666666A64F4B5141CDCCCC4C7B445441B81E851B4F4B51411F85EB01824454413D0AD7334A4B51415C8FC24582445441B81E853B3D4B514185EB515884445441F6285C2F394B5141000000D0854454411F85EBE1374B51418FC2F548864454419A9999A9304B5141A4703D4A8844544185EB51C82B4B51419A999939894454418FC2F508274B5141AE47E14A89445441B81E858B1F4B5141C3F5286C8844544148E17A14204B51410AD7A3908B445441A4703D6A214B5141EC51B80E91445441000000A0234B51411F85EB3195445441CDCCCC5C254B5141295C8F2298445441B81E85BB274B514148E17AB49B44544185EB51C82B4B5141F6285C8FA04454411F85EBD12E4B5141D7A3700DA4445441E17A14FE324B514166666666A8445441AE47E12A374B5141AE47E1EAAC4454415C8FC2853A4B5141EC51B8AEB0445441295C8FF23D4B5141F6285CFFB4445441295C8FD2404B51410AD7A370BA44544185EB5198434B51415C8FC265C044544166666606464B5141333333F3C4445441CDCCCCBC474B514100000050C7445441CDCCCC9C494B5141B81E859BC844544114AE47E14B4B5141AE47E12AC9445441B81E85EB4F4B5141295C8F92C9445441E17A14FE594B5141F6285C9FCA44544148E17AC45D4B5141B81E852BCB44544133333303604B51417B14AE47CB445441F6285C6F614B5141D7A3701DCB4454419A9999E9624B5141F6285C9FCA445441D7A3708D644B514152B81E95C9445441E17A14DE654B514133333353C8445441E17A14BE664B51410AD7A3A0C644544185EB51C8674B51410AD7A3E0C44454413D0AD7E3674B5141713D0AB7B944544100000090724B5141CDCCCCFCB94454417B14AEC7794B5141CDCCCC3CBA445441D509C32C804B5141387AA321BB445441FCEF16FF7F4B514130353C49AE445441EE0ABD53804B514173A9423AAB44544152C4D4A6804B51410B13FEB7A744544108878724814B514170AE2369A2445441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>444409 - 2984765
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000000E000000F6285CDF99D55041F6285C6F864E54415C8FC25596D55041295C8F62854E5441D7A3704D82D5504114AE4761C24E5441F6285C5F89D55041E17A14AEC44E544148E17A749CD55041333333E3CA4E5441295C8FE2A6D55041E17A14CECD4E544185EB51F8ADD55041EC51B87EB84E54419A999949B5D55041EC51B87EA24E544100000020BCD55041D7A370ED8D4E5441295C8F52BBD55041295C8FF28C4E544100000090B5D55041000000208C4E5441D7A3709DABD550418FC2F5688A4E54417B14AEA7A1D55041B81E855B884E5441F6285CDF99D55041F6285C6F864E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000B6BA7D7FAED550412D2C34E88A4E5441B190B026A5D550419280C612894E544117D3D64A90D55041D8B556EEC64E54410D1C107E99D550413E087DECC94E544148E17A749CD55041333333E3CA4E5441295C8FE2A6D55041E17A14CECD4E544185EB51F8ADD55041EC51B87EB84E54419A999949B5D55041EC51B87EA24E544100000020BCD55041D7A370ED8D4E5441295C8F52BBD55041295C8FF28C4E544100000090B5D55041000000208C4E5441B6BA7D7FAED550412D2C34E88A4E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>444409 - 5172297
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000000E000000F6285CDF99D55041F6285C6F864E54415C8FC25596D55041295C8F62854E5441D7A3704D82D5504114AE4761C24E5441F6285C5F89D55041E17A14AEC44E544148E17A749CD55041333333E3CA4E5441295C8FE2A6D55041E17A14CECD4E544185EB51F8ADD55041EC51B87EB84E54419A999949B5D55041EC51B87EA24E544100000020BCD55041D7A370ED8D4E5441295C8F52BBD55041295C8FF28C4E544100000090B5D55041000000208C4E5441D7A3709DABD550418FC2F5688A4E54417B14AEA7A1D55041B81E855B884E5441F6285CDF99D55041F6285C6F864E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000B6BA7D7FAED550412D2C34E88A4E5441B190B026A5D550419280C612894E544117D3D64A90D55041D8B556EEC64E54410D1C107E99D550413E087DECC94E544148E17A749CD55041333333E3CA4E5441295C8FE2A6D55041E17A14CECD4E544185EB51F8ADD55041EC51B87EB84E54419A999949B5D55041EC51B87EA24E544100000020BCD55041D7A370ED8D4E5441295C8F52BBD55041295C8FF28C4E544100000090B5D55041000000208C4E5441B6BA7D7FAED550412D2C34E88A4E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980905 - 1281814
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000004400000098B55645FB1751414EAAF9A8F3F2544180AA8506FE1751417AF80CB2F0F254411E376288FF175141107AC812EFF2544114AE47A10018514148E17AE4EDF254411F85EB510418514166666696F0F25441B81E858B09185141AE47E1BAF5F25441CCCE925B0A185141E609D0BBF6F25441F2F247A30B1851410DAC8250F8F25441CDCCCC3C0D185141A4703D4AFAF2544148E17A640F18514100000050FEF2544110426A53111851412C4F6D1D04F3544194D9CE1E131851416EF3125202F35441BDEC744812185141D97A3DBBFFF2544143578CC3111851414B0BE026FEF254414072A50911185141D86E0877FCF25441A91D798F1018514128DB3A5BFBF2544147E0E18B0F18514157DDFCA8F9F25441A498EC770E185141291C45E4F7F25441DEB0528E0D185141D6ABE5FAF6F2544159F99DCD0B1851415A02E543F5F2544140A43BD109185141CE1C8152F3F254410709964D071851412DC3C6DCF0F254419521D444051851415159A32BEFF25441F8E16E4303185141F21BB598EDF254416FECC14E0018514118099F92EBF254418FC2F54800185141EC51B88EEBF25441643D3179FA175141DB46DDB4E0F254415C47E042F9175141DECFBCC2DFF2544135570DA4F8175141D0507280DFF25441624B1A22F617514101668174DEF25441FEE7112EF2175141B7B618CEDCF25441688235F4F01751416C5E184BDCF25441F88CC1BDEA1751415FA750C7D9F25441666122CEE91751417BCE5766D9F2544185EB51A8E9175141713D0A57D9F2544100000040E917514185EB51E8D2F25441F1B6A6F9E8175141CA438F49CEF25441D0B0359EE8175141DA0CE5CDC9F2544148E17A24E7175141A4703D0AC3F25441A1452BE0E51751410E2D24FDBCF2544135654AF9E4175141C5BF54AEB8F254410AD7A3D0E4175141C3F528ECB7F2544191F32BCFE4175141EE96EA54B7F254416876279EE11751412A92A404B8F2544131C59137E2175141F65AE86DBDF254419A52A97EE317514107195F5AC7F2544120CD2CBAE31751416FB535DDC8F254410B4BE8B3E4175141E1677834CFF254415BA5FC8FE5175141561491D0D4F25441C89DCF47E6175141493E47A2D7F25441CF7D16D1E6175141710A1805D9F25441B1998A7EE7175141506274E2DAF254413A170D8DE8175141636F8120DCF254412949B2BDEB175141F13E24DCDFF2544182FBF6B3EE1751411412771CE1F2544154AE5FC6F4175141C9691CADE3F254418FC2F5A8F717514152B81EE5E4F25441F31388BAF717514137D82428E6F25441E45D8119F817514117AA1111E9F2544111473470F71751417B1183ECEDF2544134093E63F61751411F709864F1F25441BF3925BFF1175141052C219800F35441D6563974F31751412C73C1A7FEF25441B2E24A36F41751412CFB61C5FDF25441E77AF170F5175141BF1A45BBFBF2544100000020F7175141000000F0F8F25441295C8FD2F8175141B81E854BF6F2544198B55645FB1751414EAAF9A8F3F25441
+</a>
+
+<b>
+0106000000010000000103000000010000003C000000AE47E12AF417514185EB51D8FDF25441C3F5281CF117514148E17AD403F35441295C8FC2F0175141E17A14AE09F354411F85EB71F1175141CDCCCC9C0EF35441D7A370FDF3175141A4703DBA14F3544148E17A94F5175141EC51B85E19F3544185EB51B8F6175141295C8F521FF3544114AE4761F71751415C8FC23526F354419A9999A9F8175141C3F5282C26F354413D0AD703F9175141F6285C5F25F3544133333323FA17514148E17A1422F354415C8FC255FB1751413D0AD7431FF35441CDCCCCCCFC175141C3F5284C1CF3544166666646FE175141000000001AF354410000000002185141666666E614F35441C3F5284C04185141713D0A2712F354410AD7A3500718514148E17AB40EF354410AD7A3200B185141295C8F120BF35441713D0A770E18514114AE472108F354413333333315185141AE47E17A01F35441295C8F121F18514148E17AA4F4F25441A4703DDA2C1851415C8FC205E1F25441AE47E10A2F1851410AD7A390DDF25441CDCCCCAC2C185141AE47E1EAD8F25441D7A3709D291851411F85EB21D5F2544152B81E5528185141EC51B88ED2F2544148E17A5427185141713D0A47C8F25441EC51B8FE26185141A4703DDAC4F25441713D0A0726185141EC51B8CEBFF25441C3F528BC24185141EC51B80EBCF25441295C8F52231851415C8FC2F5B7F25441D7A370ED201851411F85EB01B1F25441C3F5283C1F1851419A999919ACF254419A9999E90A18514185EB5108B0F25441713D0A97F61751417B14AEF7B3F25441713D0AC7E517514185EB5138B7F254410AD7A3D0E4175141C3F528ECB7F2544148E17A24E7175141A4703D0AC3F25441E17A14BEE817514100000060CAF2544100000040E917514185EB51E8D2F2544185EB51A8E9175141713D0A57D9F254418FC2F5E8F017514166666646DCF25441B81E852BFA1751413D0AD723E0F25441842AD4CAF81751412EB775CAE6F254418FC2F54800185141EC51B88EEBF254413D0AD7F302185141A4703D5AEDF25441F6285CCF0618514114AE4761F0F254410AD7A3700E18514185EB51D8F7F254413333338310185141EC51B83EFBF25441C3F528CC11185141AE47E13AFEF2544100000020131851415C8FC25502F354411F85EB61111851418FC2F54804F3544148E17A640F18514100000050FEF25441CDCCCC3C0D185141A4703D4AFAF25441B81E858B09185141AE47E1BAF5F254411F85EB510418514166666696F0F2544114AE47A10018514148E17AE4EDF25441295C8FD2F8175141B81E854BF6F2544100000020F7175141000000F0F8F25441AE47E12AF417514185EB51D8FDF25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980905 - 3366171
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000004400000098B55645FB1751414EAAF9A8F3F2544180AA8506FE1751417AF80CB2F0F254411E376288FF175141107AC812EFF2544114AE47A10018514148E17AE4EDF254411F85EB510418514166666696F0F25441B81E858B09185141AE47E1BAF5F25441CCCE925B0A185141E609D0BBF6F25441F2F247A30B1851410DAC8250F8F25441CDCCCC3C0D185141A4703D4AFAF2544148E17A640F18514100000050FEF2544110426A53111851412C4F6D1D04F3544194D9CE1E131851416EF3125202F35441BDEC744812185141D97A3DBBFFF2544143578CC3111851414B0BE026FEF254414072A50911185141D86E0877FCF25441A91D798F1018514128DB3A5BFBF2544147E0E18B0F18514157DDFCA8F9F25441A498EC770E185141291C45E4F7F25441DEB0528E0D185141D6ABE5FAF6F2544159F99DCD0B1851415A02E543F5F2544140A43BD109185141CE1C8152F3F254410709964D071851412DC3C6DCF0F254419521D444051851415159A32BEFF25441F8E16E4303185141F21BB598EDF254416FECC14E0018514118099F92EBF254418FC2F54800185141EC51B88EEBF25441643D3179FA175141DB46DDB4E0F254415C47E042F9175141DECFBCC2DFF2544135570DA4F8175141D0507280DFF25441624B1A22F617514101668174DEF25441FEE7112EF2175141B7B618CEDCF25441688235F4F01751416C5E184BDCF25441F88CC1BDEA1751415FA750C7D9F25441666122CEE91751417BCE5766D9F2544185EB51A8E9175141713D0A57D9F2544100000040E917514185EB51E8D2F25441F1B6A6F9E8175141CA438F49CEF25441D0B0359EE8175141DA0CE5CDC9F2544148E17A24E7175141A4703D0AC3F25441A1452BE0E51751410E2D24FDBCF2544135654AF9E4175141C5BF54AEB8F254410AD7A3D0E4175141C3F528ECB7F2544191F32BCFE4175141EE96EA54B7F254416876279EE11751412A92A404B8F2544131C59137E2175141F65AE86DBDF254419A52A97EE317514107195F5AC7F2544120CD2CBAE31751416FB535DDC8F254410B4BE8B3E4175141E1677834CFF254415BA5FC8FE5175141561491D0D4F25441C89DCF47E6175141493E47A2D7F25441CF7D16D1E6175141710A1805D9F25441B1998A7EE7175141506274E2DAF254413A170D8DE8175141636F8120DCF254412949B2BDEB175141F13E24DCDFF2544182FBF6B3EE1751411412771CE1F2544154AE5FC6F4175141C9691CADE3F254418FC2F5A8F717514152B81EE5E4F25441F31388BAF717514137D82428E6F25441E45D8119F817514117AA1111E9F2544111473470F71751417B1183ECEDF2544134093E63F61751411F709864F1F25441BF3925BFF1175141052C219800F35441D6563974F31751412C73C1A7FEF25441B2E24A36F41751412CFB61C5FDF25441E77AF170F5175141BF1A45BBFBF2544100000020F7175141000000F0F8F25441295C8FD2F8175141B81E854BF6F2544198B55645FB1751414EAAF9A8F3F25441
+</a>
+
+<b>
+0106000000010000000103000000010000003C000000AE47E12AF417514185EB51D8FDF25441C3F5281CF117514148E17AD403F35441295C8FC2F0175141E17A14AE09F354411F85EB71F1175141CDCCCC9C0EF35441D7A370FDF3175141A4703DBA14F3544148E17A94F5175141EC51B85E19F3544185EB51B8F6175141295C8F521FF3544114AE4761F71751415C8FC23526F354419A9999A9F8175141C3F5282C26F354413D0AD703F9175141F6285C5F25F3544133333323FA17514148E17A1422F354415C8FC255FB1751413D0AD7431FF35441CDCCCCCCFC175141C3F5284C1CF3544166666646FE175141000000001AF354410000000002185141666666E614F35441C3F5284C04185141713D0A2712F354410AD7A3500718514148E17AB40EF354410AD7A3200B185141295C8F120BF35441713D0A770E18514114AE472108F354413333333315185141AE47E17A01F35441295C8F121F18514148E17AA4F4F25441A4703DDA2C1851415C8FC205E1F25441AE47E10A2F1851410AD7A390DDF25441CDCCCCAC2C185141AE47E1EAD8F25441D7A3709D291851411F85EB21D5F2544152B81E5528185141EC51B88ED2F2544148E17A5427185141713D0A47C8F25441EC51B8FE26185141A4703DDAC4F25441713D0A0726185141EC51B8CEBFF25441C3F528BC24185141EC51B80EBCF25441295C8F52231851415C8FC2F5B7F25441D7A370ED201851411F85EB01B1F25441C3F5283C1F1851419A999919ACF254419A9999E90A18514185EB5108B0F25441713D0A97F61751417B14AEF7B3F25441713D0AC7E517514185EB5138B7F254410AD7A3D0E4175141C3F528ECB7F2544148E17A24E7175141A4703D0AC3F25441E17A14BEE817514100000060CAF2544100000040E917514185EB51E8D2F2544185EB51A8E9175141713D0A57D9F254418FC2F5E8F017514166666646DCF25441B81E852BFA1751413D0AD723E0F25441842AD4CAF81751412EB775CAE6F254418FC2F54800185141EC51B88EEBF254413D0AD7F302185141A4703D5AEDF25441F6285CCF0618514114AE4761F0F254410AD7A3700E18514185EB51D8F7F254413333338310185141EC51B83EFBF25441C3F528CC11185141AE47E13AFEF2544100000020131851415C8FC25502F354411F85EB61111851418FC2F54804F3544148E17A640F18514100000050FEF25441CDCCCC3C0D185141A4703D4AFAF25441B81E858B09185141AE47E1BAF5F254411F85EB510418514166666696F0F2544114AE47A10018514148E17AE4EDF25441295C8FD2F8175141B81E854BF6F2544100000020F7175141000000F0F8F25441AE47E12AF417514185EB51D8FDF25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>410773 - 53139
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000100000001ECF963EEFA85041220EA7BBFE47554197EF07FA1BA950419BCDA19E024855416D1FCF0A2BA95041EC7E13A1044855414AA58A1B2BA95041366C54AF04485541713D0A372DA950415C8FC255FE4755411F85EBE135A950410AD7A330E9475541D7A3706D3CA950417B14AE37D9475541666666D63BA95041713D0A07D8475541713D0A1729A9504185EB51E8D2475541E17A14AE14A95041A4703DBACC475541F6285C9F09A9504114AE4761C9475541000000D000A95041EC51B8EEC6475541CDCCCCACFFA850419A999989C7475541E17A142EFBA85041295C8FA2D6475541295C8FC2F4A850413D0AD733EC4755411ECF963EEFA85041220EA7BBFE475541
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000713D0A372DA950415C8FC255FE4755416F48A1402DA95041994D5D3EFE475541F84F5C462DA950410B372C2DFE4755411945859030A950411398DF29F64755411F85EBE135A950410AD7A330E9475541D7A3706D3CA950417B14AE37D9475541666666D63BA95041713D0A07D8475541C1B7810430A95041BEC2A8CCD44755419280681429A95041D970A2E8D247554124055E2827A95041E4509856D247554106E8F9D41AA95041116E1B97CE47554137ABD2D619A95041E0C0264ACE475541A92A7C1919A95041A33CD210CE4755410F0F8C1519A9504136FDA00FCE4755414D88241019A950413D11FE0DCE475541FD06F70C0EA95041926AC8B9CA4755416EBBD44809A95041F9CF604CC947554192FADDCE00A95041B49252EFC647554195E0939C00A95041BAE5110AC7475541854F02AFFFA85041ACD26C88C74755416DC8E06DF8A8504130DEA8E9DF475541A76CA23EEFA850417B07A8BBFE475541489C7E59F1A85041C6F2D7E8FE4755413B71987CF1A850411B79C9EBFE4755415AB0BD061CA950419BCDA19E0248554154C7A86E24A9504102A9E2AF034855416361E71F2BA95041D3028BA004485541FF3F2F9D2BA95041EA66B32803485541713D0A372DA950415C8FC255FE475541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>983166 - 210192
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000022000000000000A0407F514148E17A04C1A55441713D0A973F7F51411F85EBA1C0A55441E17A14BE3E7F5141CDCCCC5CC0A5544185EB51583B7F5141713D0AA7BFA55441666666663C7F51411F85EBD1CBA55441713D0A273D7F5141CDCCCCBCD3A55441EC51B8DE3D7F5141EC51B8DED3A55441333333A33E7F5141713D0A27D4A5544148E17AA43F7F5141666666A6D4A55441C3F5283C407F51417B14AEE7D4A554413D0AD7E3407F51410AD7A310D5A5544100000070417F5141295C8F32D5A554418FC2F588477F51413D0AD773D6A554410AD7A3B04C7F514148E17A34D8A554419A9999694D7F5141A4703D6AD8A55441713D0AA7507F51418FC2F528D9A55441AE47E1BA517F5141CDCCCC5CD9A55441CDCCCC4C517F514100000030CAA554417B14AE77517F514100000040C2A55441E17A141E4F7F5141CDCCCC7CC1A55441EC51B84E4D7F51413D0AD7E3C0A55441C3F5289C4C7F51415C8FC205C1A55441F6285C6F4C7F51413D0AD713C1A55441E17A144E4B7F514114AE4771C1A554419A9999794A7F5141B81E853BC1A55441B81E855B4A7F5141295C8F22C1A554417B14AE57497F5141D7A3704DC0A55441AE47E1CA477F5141F6285C0FC0A55441C3F5282C467F514152B81E45C1A55441B81E85BB457F51415C8FC265C1A55441C3F5286C437F5141F6285C4FC1A55441B81E85EB417F5141713D0A57C1A55441D7A3700D417F5141CDCCCC3CC1A55441000000A0407F514148E17A04C1A55441
+</a>
+
+<b>
+010600000001000000010300000001000000190000008FC2F588477F51413D0AD773D6A55441AE9813A6477F51411E0EBD7DD6A5544172309DD74C7F514119B4860CD8A55441EA252166517F5141E7474F41D9A5544173F36E85517F5141D32B2942D3A55441BA77A2954E7F5141ACBE027ED3A5544113B78A3E4D7F5141EF646439D3A55441187D604E4C7F514116381517D3A55441B72BF2E24A7F5141622B4D5DD2A5544176434922477F514189FEFD3AD2A5544193A4F147447F51413DA965C5D2A55441C5102913437F51413DA965C5D2A55441A11813B7417F51415D18C8B1D2A55441AD8D6964417F51419A6D5BB8D2A55441E2031A0A417F51415D18C8B1D2A55441A456B3603D7F5141D9729554D2A55441B0FC7BC83D7F5141619C87AED3A5544175645929417F5141868EE1E5D4A554416CA2E478417F5141B72894EBD4A554411F5011BC417F5141F3A3A70CD5A55441B2949554467F514174DCFE2CD6A55441D3C53E7E467F5141E3B7F13CD6A554411E48D2D4467F51411475C34ED6A55441A4ABF21E477F51417737055ED6A554418FC2F588477F51413D0AD773D6A55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980955 - 1675754
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000D000000DB894D97B7AB5041FC6E675B1F02554101140D6CC1AB504152F905EA28025541D25650FED2AB50413992A5073902554106CCE5AAD7AB50415251017E3C0255414BF713A3D8AB5041A217A4D63C0255415A9BAA43DAAB504118C147E63A02554154FD0215DCAB5041A02CA9103602554133333333AFAB5041EC51B86E0A025541967D1480A6AB50416C68554B0D02554151FB0928A6AB50411A07014E0E02554126E6DEBDADAB5041C3343BC815025541F8E974FEB5AB5041E246F3CD1D025541DB894D97B7AB5041FC6E675B1F025541
+</a>
+
+<b>
+010600000001000000010300000001000000090000008FC2F508C2AB5041295C8F82290255411F85EB71D7AB5041B81E851B3D025541713D0AF7D8AB5041AE47E1EA3C025541E17A145EDAAB5041AE47E1FA3A0255410AD7A330DCAB5041B81E852B3602554133333333AFAB5041EC51B86E0A0255413D0AD773A6AB5041F6285C4F0D0255411F85EB21A6AB5041295C8F620E0255418FC2F508C2AB5041295C8F8229025541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>980955 - 3554960
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000D000000DB894D97B7AB5041FC6E675B1F02554101140D6CC1AB504152F905EA28025541D25650FED2AB50413992A5073902554106CCE5AAD7AB50415251017E3C0255414BF713A3D8AB5041A217A4D63C0255415A9BAA43DAAB504118C147E63A02554154FD0215DCAB5041A02CA9103602554133333333AFAB5041EC51B86E0A025541967D1480A6AB50416C68554B0D02554151FB0928A6AB50411A07014E0E02554126E6DEBDADAB5041C3343BC815025541F8E974FEB5AB5041E246F3CD1D025541DB894D97B7AB5041FC6E675B1F025541
+</a>
+
+<b>
+010600000001000000010300000001000000090000008FC2F508C2AB5041295C8F82290255411F85EB71D7AB5041B81E851B3D025541713D0AF7D8AB5041AE47E1EA3C025541E17A145EDAAB5041AE47E1FA3A0255410AD7A330DCAB5041B81E852B3602554133333333AFAB5041EC51B86E0A0255413D0AD773A6AB5041F6285C4F0D0255411F85EB21A6AB5041295C8F620E0255418FC2F508C2AB5041295C8F8229025541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>287727 - 219991
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000D000000EC51B86EF3A8514185EB510808A654418FC2F5A8EBA851411F85EB0103A65441AE47E1DAE8A85141E17A14AEFFA55441CDCCCCCCDFA85141F6285CBF0CA65441000000A0DBA851410000001012A65441E17A14FEDFA85141C3F528CC13A65441666666F6E8A85141F6285C0F19A65441CDCCCC8CF4A851410AD7A3B01FA6544148E17AE4F4A85141000000B01DA654410AD7A3E0F5A8514185EB518812A65441F6285CAFF6A85141295C8F0207A6544148E17A74F5A851416666662606A65441EC51B86EF3A8514185EB510808A65441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000FFF932B4F4A85141CA38F4390AA65441EA16DC45F3A8514140C7C88209A65441BA6CA900F2A8514128722FE008A65441CBCAC8E4EEA851414D6FDDDA06A65441F225C0A5EBA851411F9908C904A65441060ED031E7A8514156D9701302A65441D8CCCCCCDFA8514116295CBF0CA65441140000A0DBA851410800001012A65441E17A14FEDFA85141C3F528CC13A654419FC0DA35E1A851411339128314A65441696666F6E8A85141D8285C0F19A65441CFCCCC8CF4A85141FCD6A3B01FA65441027FDDA5F4A85141943E171E1FA65441A9DD0CB1F4A85141CEEFB1DC1EA6544128E17AE4F4A85141E1FFFFAF1DA65441AFC901D0F5A851410AD2AF4413A654410AD7A3E0F5A8514185EB518812A6544161D91A4FF6A851417C2868070BA65441FFF932B4F4A85141CA38F4390AA65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>287727 - 274994
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000D000000EC51B86EF3A8514185EB510808A654418FC2F5A8EBA851411F85EB0103A65441AE47E1DAE8A85141E17A14AEFFA55441CDCCCCCCDFA85141F6285CBF0CA65441000000A0DBA851410000001012A65441E17A14FEDFA85141C3F528CC13A65441666666F6E8A85141F6285C0F19A65441CDCCCC8CF4A851410AD7A3B01FA6544148E17AE4F4A85141000000B01DA654410AD7A3E0F5A8514185EB518812A65441F6285CAFF6A85141295C8F0207A6544148E17A74F5A851416666662606A65441EC51B86EF3A8514185EB510808A65441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000FFF932B4F4A85141CA38F4390AA65441EA16DC45F3A8514140C7C88209A65441BA6CA900F2A8514128722FE008A65441CBCAC8E4EEA851414D6FDDDA06A65441F225C0A5EBA851411F9908C904A65441060ED031E7A8514156D9701302A65441D8CCCCCCDFA8514116295CBF0CA65441140000A0DBA851410800001012A65441E17A14FEDFA85141C3F528CC13A654419FC0DA35E1A851411339128314A65441696666F6E8A85141D8285C0F19A65441CFCCCC8CF4A85141FCD6A3B01FA65441027FDDA5F4A85141943E171E1FA65441A9DD0CB1F4A85141CEEFB1DC1EA6544128E17AE4F4A85141E1FFFFAF1DA65441AFC901D0F5A851410AD2AF4413A654410AD7A3E0F5A8514185EB518812A6544161D91A4FF6A851417C2868070BA65441FFF932B4F4A85141CA38F4390AA65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>334798 - 333394
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000012000000C0C8FD7B0F105141C4E373FE72885441DF4DCA880E105141C0AA802C738854413C5536CC0F10514194A11E9E7A8854415C8FC2F510105141A4703D6A81885441E57C8AFA10105141135BED958188544140CAADCB131051418C664DC89288544165CA71D524105141178D3D4C94885441614586A3231051412364E11C8E8854419C78B9362310514190CA47E38B88544135640BAF22105141E68266288988544126DF1FDD21105141BB4F33F584885441C7E9F6001F1051416F3B852D76885441E66EE2321E105141E0788F2476885441B81E85AB1D105141E17A141E76885441B81E858B19105141B81E853B75885441F6285C4F1410514148E17AC4738854412FCBD5E210105141BE4281C072885441C0C8FD7B0F105141C4E373FE72885441
+</a>
+
+<b>
+01060000000100000001030000000200000036000000B81E85ABD10F5141D7A370DDA2885441EC51B8BED30F51419A999939A78854411F85EB71D80F514100000020B0885441C3F528BCE70F5141000000A0A6885441D7A3706DF20F5141B81E85FB9F885441000000C0F60F5141C3F5284C9D8854413D0AD7B3F10F51410000001096885441AE47E10AEC0F5141295C8F428E8854413D0AD773E60F514114AE473186885441713D0A07E40F51410000008082885441B81E853BE20F5141666666567F8854413D0AD7B3DF0F5141D7A3701D7A8854411F85EB11DF0F514114AE47F1718854417B14AE47DF0F514148E17AB463885441C3F5287CE10F5141AE47E1AA65885441E17A14BEE60F514148E17A94688854413D0AD7B3F10F5141D7A370ED6F88544152B81E55F70F5141CDCCCC8C73885441B81E85CB0310514185EB511873885441A4703DDA0B10514152B81E05738854415C8FC2850E1051418FC2F528738854415C8FC2E510105141000000C072885441F6285C4F1410514148E17AC473885441B81E858B19105141B81E853B75885441B81E85AB1D105141E17A141E76885441C3F5287C21105141B81E854B76885441AE47E10A2410514152B81E5576885441A4703D9A241051418FC2F52874885441D7A3704D1C105141666666367288544185EB51E813105141CDCCCCAC6F885441CDCCCCEC1210514114AE47516F8854416666666610105141295C8FA26E885441F6285CFF0A105141713D0A676E885441AE47E18A071051415C8FC2956E8854410AD7A3D003105141CDCCCCAC6E8854413D0AD77300105141713D0A676E8854413D0AD7A3F70F51418FC2F5286C885441295C8F12E90F51411F85EB515F885441295C8F42E70F51418FC2F5285E885441D7A3707DE20F5141A4703D9A5D885441AE47E15ADF0F5141EC51B8DE5E885441333333E3DC0F514152B81E456288544114AE47C1DA0F5141333333236688544152B81E05D90F51415C8FC24569885441713D0A27D80F51410AD7A3F06A885441F6285CAFD50F5141000000E06F885441000000C0D10F5141D7A370AD7788544152B81ED5D00F514148E17A547B8854410AD7A390CE0F514114AE47818488544114AE4731CD0F5141000000208A885441666666E6CC0F514166666616948854411F85EB41CC0F5141CDCCCC0C99885441666666C6CD0F5141EC51B8BE9B885441B81E85ABD10F5141D7A370DDA28854410A0000003D0AD733D20F51415C8FC29593885441CDCCCCACD10F51417B14AE8791885441EC51B89ECF0F5141E17A140E9188544133333383CF0F5141333333438F885441EC51B89ED00F5141EC51B8FE8D885441C3F528ACD00F514185EB51B8878854415C8FC235D60F51417B14AEC78A885441713D0A87D70F51415C8FC2D58C885441C3F5286CD60F5141333333F3918854413D0AD733D20F51415C8FC29593885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>334798 - 1118071
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000012000000C0C8FD7B0F105141C4E373FE72885441DF4DCA880E105141C0AA802C738854413C5536CC0F10514194A11E9E7A8854415C8FC2F510105141A4703D6A81885441E57C8AFA10105141135BED958188544140CAADCB131051418C664DC89288544165CA71D524105141178D3D4C94885441614586A3231051412364E11C8E8854419C78B9362310514190CA47E38B88544135640BAF22105141E68266288988544126DF1FDD21105141BB4F33F584885441C7E9F6001F1051416F3B852D76885441E66EE2321E105141E0788F2476885441B81E85AB1D105141E17A141E76885441B81E858B19105141B81E853B75885441F6285C4F1410514148E17AC4738854412FCBD5E210105141BE4281C072885441C0C8FD7B0F105141C4E373FE72885441
+</a>
+
+<b>
+01060000000100000001030000000200000036000000B81E85ABD10F5141D7A370DDA2885441EC51B8BED30F51419A999939A78854411F85EB71D80F514100000020B0885441C3F528BCE70F5141000000A0A6885441D7A3706DF20F5141B81E85FB9F885441000000C0F60F5141C3F5284C9D8854413D0AD7B3F10F51410000001096885441AE47E10AEC0F5141295C8F428E8854413D0AD773E60F514114AE473186885441713D0A07E40F51410000008082885441B81E853BE20F5141666666567F8854413D0AD7B3DF0F5141D7A3701D7A8854411F85EB11DF0F514114AE47F1718854417B14AE47DF0F514148E17AB463885441C3F5287CE10F5141AE47E1AA65885441E17A14BEE60F514148E17A94688854413D0AD7B3F10F5141D7A370ED6F88544152B81E55F70F5141CDCCCC8C73885441B81E85CB0310514185EB511873885441A4703DDA0B10514152B81E05738854415C8FC2850E1051418FC2F528738854415C8FC2E510105141000000C072885441F6285C4F1410514148E17AC473885441B81E858B19105141B81E853B75885441B81E85AB1D105141E17A141E76885441C3F5287C21105141B81E854B76885441AE47E10A2410514152B81E5576885441A4703D9A241051418FC2F52874885441D7A3704D1C105141666666367288544185EB51E813105141CDCCCCAC6F885441CDCCCCEC1210514114AE47516F8854416666666610105141295C8FA26E885441F6285CFF0A105141713D0A676E885441AE47E18A071051415C8FC2956E8854410AD7A3D003105141CDCCCCAC6E8854413D0AD77300105141713D0A676E8854413D0AD7A3F70F51418FC2F5286C885441295C8F12E90F51411F85EB515F885441295C8F42E70F51418FC2F5285E885441D7A3707DE20F5141A4703D9A5D885441AE47E15ADF0F5141EC51B8DE5E885441333333E3DC0F514152B81E456288544114AE47C1DA0F5141333333236688544152B81E05D90F51415C8FC24569885441713D0A27D80F51410AD7A3F06A885441F6285CAFD50F5141000000E06F885441000000C0D10F5141D7A370AD7788544152B81ED5D00F514148E17A547B8854410AD7A390CE0F514114AE47818488544114AE4731CD0F5141000000208A885441666666E6CC0F514166666616948854411F85EB41CC0F5141CDCCCC0C99885441666666C6CD0F5141EC51B8BE9B885441B81E85ABD10F5141D7A370DDA28854410A0000003D0AD733D20F51415C8FC29593885441CDCCCCACD10F51417B14AE8791885441EC51B89ECF0F5141E17A140E9188544133333383CF0F5141333333438F885441EC51B89ED00F5141EC51B8FE8D885441C3F528ACD00F514185EB51B8878854415C8FC235D60F51417B14AEC78A885441713D0A87D70F51415C8FC2D58C885441C3F5286CD60F5141333333F3918854413D0AD733D20F51415C8FC29593885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>334798 - 3918057
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000012000000C0C8FD7B0F105141C4E373FE72885441DF4DCA880E105141C0AA802C738854413C5536CC0F10514194A11E9E7A8854415C8FC2F510105141A4703D6A81885441E57C8AFA10105141135BED958188544140CAADCB131051418C664DC89288544165CA71D524105141178D3D4C94885441614586A3231051412364E11C8E8854419C78B9362310514190CA47E38B88544135640BAF22105141E68266288988544126DF1FDD21105141BB4F33F584885441C7E9F6001F1051416F3B852D76885441E66EE2321E105141E0788F2476885441B81E85AB1D105141E17A141E76885441B81E858B19105141B81E853B75885441F6285C4F1410514148E17AC4738854412FCBD5E210105141BE4281C072885441C0C8FD7B0F105141C4E373FE72885441
+</a>
+
+<b>
+01060000000100000001030000000200000036000000B81E85ABD10F5141D7A370DDA2885441EC51B8BED30F51419A999939A78854411F85EB71D80F514100000020B0885441C3F528BCE70F5141000000A0A6885441D7A3706DF20F5141B81E85FB9F885441000000C0F60F5141C3F5284C9D8854413D0AD7B3F10F51410000001096885441AE47E10AEC0F5141295C8F428E8854413D0AD773E60F514114AE473186885441713D0A07E40F51410000008082885441B81E853BE20F5141666666567F8854413D0AD7B3DF0F5141D7A3701D7A8854411F85EB11DF0F514114AE47F1718854417B14AE47DF0F514148E17AB463885441C3F5287CE10F5141AE47E1AA65885441E17A14BEE60F514148E17A94688854413D0AD7B3F10F5141D7A370ED6F88544152B81E55F70F5141CDCCCC8C73885441B81E85CB0310514185EB511873885441A4703DDA0B10514152B81E05738854415C8FC2850E1051418FC2F528738854415C8FC2E510105141000000C072885441F6285C4F1410514148E17AC473885441B81E858B19105141B81E853B75885441B81E85AB1D105141E17A141E76885441C3F5287C21105141B81E854B76885441AE47E10A2410514152B81E5576885441A4703D9A241051418FC2F52874885441D7A3704D1C105141666666367288544185EB51E813105141CDCCCCAC6F885441CDCCCCEC1210514114AE47516F8854416666666610105141295C8FA26E885441F6285CFF0A105141713D0A676E885441AE47E18A071051415C8FC2956E8854410AD7A3D003105141CDCCCCAC6E8854413D0AD77300105141713D0A676E8854413D0AD7A3F70F51418FC2F5286C885441295C8F12E90F51411F85EB515F885441295C8F42E70F51418FC2F5285E885441D7A3707DE20F5141A4703D9A5D885441AE47E15ADF0F5141EC51B8DE5E885441333333E3DC0F514152B81E456288544114AE47C1DA0F5141333333236688544152B81E05D90F51415C8FC24569885441713D0A27D80F51410AD7A3F06A885441F6285CAFD50F5141000000E06F885441000000C0D10F5141D7A370AD7788544152B81ED5D00F514148E17A547B8854410AD7A390CE0F514114AE47818488544114AE4731CD0F5141000000208A885441666666E6CC0F514166666616948854411F85EB41CC0F5141CDCCCC0C99885441666666C6CD0F5141EC51B8BE9B885441B81E85ABD10F5141D7A370DDA28854410A0000003D0AD733D20F51415C8FC29593885441CDCCCCACD10F51417B14AE8791885441EC51B89ECF0F5141E17A140E9188544133333383CF0F5141333333438F885441EC51B89ED00F5141EC51B8FE8D885441C3F528ACD00F514185EB51B8878854415C8FC235D60F51417B14AEC78A885441713D0A87D70F51415C8FC2D58C885441C3F5286CD60F5141333333F3918854413D0AD733D20F51415C8FC29593885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>334798 - 33520
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000012000000C0C8FD7B0F105141C4E373FE72885441DF4DCA880E105141C0AA802C738854413C5536CC0F10514194A11E9E7A8854415C8FC2F510105141A4703D6A81885441E57C8AFA10105141135BED958188544140CAADCB131051418C664DC89288544165CA71D524105141178D3D4C94885441614586A3231051412364E11C8E8854419C78B9362310514190CA47E38B88544135640BAF22105141E68266288988544126DF1FDD21105141BB4F33F584885441C7E9F6001F1051416F3B852D76885441E66EE2321E105141E0788F2476885441B81E85AB1D105141E17A141E76885441B81E858B19105141B81E853B75885441F6285C4F1410514148E17AC4738854412FCBD5E210105141BE4281C072885441C0C8FD7B0F105141C4E373FE72885441
+</a>
+
+<b>
+0106000000010000000103000000020000003600000085EB51E813105141CDCCCCAC6F885441CDCCCCEC1210514114AE47516F8854416666666610105141295C8FA26E885441F6285CFF0A105141713D0A676E885441AE47E18A071051415C8FC2956E8854410AD7A3D003105141CDCCCCAC6E8854413D0AD77300105141713D0A676E8854413D0AD7A3F70F51418FC2F5286C885441295C8F12E90F51411F85EB515F885441295C8F42E70F51418FC2F5285E885441D7A3707DE20F5141A4703D9A5D885441AE47E15ADF0F5141EC51B8DE5E885441333333E3DC0F514152B81E456288544114AE47C1DA0F5141333333236688544152B81E05D90F51415C8FC24569885441713D0A27D80F51410AD7A3F06A885441F6285CAFD50F5141000000E06F885441000000C0D10F5141D7A370AD7788544152B81ED5D00F514148E17A547B8854410AD7A390CE0F514114AE47818488544114AE4731CD0F5141000000208A885441666666E6CC0F514166666616948854411F85EB41CC0F5141CDCCCC0C99885441666666C6CD0F5141EC51B8BE9B885441B81E85ABD10F5141D7A370DDA2885441EC51B8BED30F51419A999939A78854411F85EB71D80F514100000020B0885441C3F528BCE70F5141000000A0A6885441D7A3706DF20F5141B81E85FB9F885441000000C0F60F5141C3F5284C9D8854413D0AD7B3F10F51410000001096885441AE47E10AEC0F5141295C8F428E8854413D0AD773E60F514114AE473186885441713D0A07E40F51410000008082885441B81E853BE20F5141666666567F8854413D0AD7B3DF0F5141D7A3701D7A8854411F85EB11DF0F514114AE47F1718854417B14AE47DF0F514148E17AB463885441C3F5287CE10F5141AE47E1AA65885441E17A14BEE60F514148E17A94688854413D0AD7B3F10F5141D7A370ED6F88544152B81E55F70F5141CDCCCC8C73885441B81E85CB0310514185EB511873885441A4703DDA0B10514152B81E05738854415C8FC2850E1051418FC2F528738854415C8FC2E510105141000000C072885441F6285C4F1410514148E17AC473885441B81E858B19105141B81E853B75885441B81E85AB1D105141E17A141E76885441C3F5287C21105141B81E854B76885441AE47E10A2410514152B81E5576885441A4703D9A241051418FC2F52874885441D7A3704D1C105141666666367288544185EB51E813105141CDCCCCAC6F8854410A0000005C8FC235D60F51417B14AEC78A885441713D0A87D70F51415C8FC2D58C885441C3F5286CD60F5141333333F3918854413D0AD733D20F51415C8FC29593885441CDCCCCACD10F51417B14AE8791885441EC51B89ECF0F5141E17A140E9188544133333383CF0F5141333333438F885441EC51B89ED00F5141EC51B8FE8D885441C3F528ACD00F514185EB51B8878854415C8FC235D60F51417B14AEC78A885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>334798 - 92862
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000012000000C0C8FD7B0F105141C4E373FE72885441DF4DCA880E105141C0AA802C738854413C5536CC0F10514194A11E9E7A8854415C8FC2F510105141A4703D6A81885441E57C8AFA10105141135BED958188544140CAADCB131051418C664DC89288544165CA71D524105141178D3D4C94885441614586A3231051412364E11C8E8854419C78B9362310514190CA47E38B88544135640BAF22105141E68266288988544126DF1FDD21105141BB4F33F584885441C7E9F6001F1051416F3B852D76885441E66EE2321E105141E0788F2476885441B81E85AB1D105141E17A141E76885441B81E858B19105141B81E853B75885441F6285C4F1410514148E17AC4738854412FCBD5E210105141BE4281C072885441C0C8FD7B0F105141C4E373FE72885441
+</a>
+
+<b>
+0106000000010000000103000000020000003600000085EB51E813105141CDCCCCAC6F885441CDCCCCEC1210514114AE47516F8854416666666610105141295C8FA26E885441F6285CFF0A105141713D0A676E885441AE47E18A071051415C8FC2956E8854410AD7A3D003105141CDCCCCAC6E8854413D0AD77300105141713D0A676E8854413D0AD7A3F70F51418FC2F5286C885441295C8F12E90F51411F85EB515F885441295C8F42E70F51418FC2F5285E885441D7A3707DE20F5141A4703D9A5D885441AE47E15ADF0F5141EC51B8DE5E885441333333E3DC0F514152B81E456288544114AE47C1DA0F5141333333236688544152B81E05D90F51415C8FC24569885441713D0A27D80F51410AD7A3F06A885441F6285CAFD50F5141000000E06F885441000000C0D10F5141D7A370AD7788544152B81ED5D00F514148E17A547B8854410AD7A390CE0F514114AE47818488544114AE4731CD0F5141000000208A885441666666E6CC0F514166666616948854411F85EB41CC0F5141CDCCCC0C99885441666666C6CD0F5141EC51B8BE9B885441B81E85ABD10F5141D7A370DDA2885441EC51B8BED30F51419A999939A78854411F85EB71D80F514100000020B0885441C3F528BCE70F5141000000A0A6885441D7A3706DF20F5141B81E85FB9F885441000000C0F60F5141C3F5284C9D8854413D0AD7B3F10F51410000001096885441AE47E10AEC0F5141295C8F428E8854413D0AD773E60F514114AE473186885441713D0A07E40F51410000008082885441B81E853BE20F5141666666567F8854413D0AD7B3DF0F5141D7A3701D7A8854411F85EB11DF0F514114AE47F1718854417B14AE47DF0F514148E17AB463885441C3F5287CE10F5141AE47E1AA65885441E17A14BEE60F514148E17A94688854413D0AD7B3F10F5141D7A370ED6F88544152B81E55F70F5141CDCCCC8C73885441B81E85CB0310514185EB511873885441A4703DDA0B10514152B81E05738854415C8FC2850E1051418FC2F528738854415C8FC2E510105141000000C072885441F6285C4F1410514148E17AC473885441B81E858B19105141B81E853B75885441B81E85AB1D105141E17A141E76885441C3F5287C21105141B81E854B76885441AE47E10A2410514152B81E5576885441A4703D9A241051418FC2F52874885441D7A3704D1C105141666666367288544185EB51E813105141CDCCCCAC6F8854410A0000005C8FC235D60F51417B14AEC78A885441713D0A87D70F51415C8FC2D58C885441C3F5286CD60F5141333333F3918854413D0AD733D20F51415C8FC29593885441CDCCCCACD10F51417B14AE8791885441EC51B89ECF0F5141E17A140E9188544133333383CF0F5141333333438F885441EC51B89ED00F5141EC51B8FE8D885441C3F528ACD00F514185EB51B8878854415C8FC235D60F51417B14AEC78A885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>334798 - 294842
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000012000000C0C8FD7B0F105141C4E373FE72885441DF4DCA880E105141C0AA802C738854413C5536CC0F10514194A11E9E7A8854415C8FC2F510105141A4703D6A81885441E57C8AFA10105141135BED958188544140CAADCB131051418C664DC89288544165CA71D524105141178D3D4C94885441614586A3231051412364E11C8E8854419C78B9362310514190CA47E38B88544135640BAF22105141E68266288988544126DF1FDD21105141BB4F33F584885441C7E9F6001F1051416F3B852D76885441E66EE2321E105141E0788F2476885441B81E85AB1D105141E17A141E76885441B81E858B19105141B81E853B75885441F6285C4F1410514148E17AC4738854412FCBD5E210105141BE4281C072885441C0C8FD7B0F105141C4E373FE72885441
+</a>
+
+<b>
+0106000000010000000103000000020000003600000085EB51E813105141CDCCCCAC6F885441CDCCCCEC1210514114AE47516F8854416666666610105141295C8FA26E885441F6285CFF0A105141713D0A676E885441AE47E18A071051415C8FC2956E8854410AD7A3D003105141CDCCCCAC6E8854413D0AD77300105141713D0A676E8854413D0AD7A3F70F51418FC2F5286C885441295C8F12E90F51411F85EB515F885441295C8F42E70F51418FC2F5285E885441D7A3707DE20F5141A4703D9A5D885441AE47E15ADF0F5141EC51B8DE5E885441333333E3DC0F514152B81E456288544114AE47C1DA0F5141333333236688544152B81E05D90F51415C8FC24569885441713D0A27D80F51410AD7A3F06A885441F6285CAFD50F5141000000E06F885441000000C0D10F5141D7A370AD7788544152B81ED5D00F514148E17A547B8854410AD7A390CE0F514114AE47818488544114AE4731CD0F5141000000208A885441666666E6CC0F514166666616948854411F85EB41CC0F5141CDCCCC0C99885441666666C6CD0F5141EC51B8BE9B885441B81E85ABD10F5141D7A370DDA2885441EC51B8BED30F51419A999939A78854411F85EB71D80F514100000020B0885441C3F528BCE70F5141000000A0A6885441D7A3706DF20F5141B81E85FB9F885441000000C0F60F5141C3F5284C9D8854413D0AD7B3F10F51410000001096885441AE47E10AEC0F5141295C8F428E8854413D0AD773E60F514114AE473186885441713D0A07E40F51410000008082885441B81E853BE20F5141666666567F8854413D0AD7B3DF0F5141D7A3701D7A8854411F85EB11DF0F514114AE47F1718854417B14AE47DF0F514148E17AB463885441C3F5287CE10F5141AE47E1AA65885441E17A14BEE60F514148E17A94688854413D0AD7B3F10F5141D7A370ED6F88544152B81E55F70F5141CDCCCC8C73885441B81E85CB0310514185EB511873885441A4703DDA0B10514152B81E05738854415C8FC2850E1051418FC2F528738854415C8FC2E510105141000000C072885441F6285C4F1410514148E17AC473885441B81E858B19105141B81E853B75885441B81E85AB1D105141E17A141E76885441C3F5287C21105141B81E854B76885441AE47E10A2410514152B81E5576885441A4703D9A241051418FC2F52874885441D7A3704D1C105141666666367288544185EB51E813105141CDCCCCAC6F8854410A0000005C8FC235D60F51417B14AEC78A885441713D0A87D70F51415C8FC2D58C885441C3F5286CD60F5141333333F3918854413D0AD733D20F51415C8FC29593885441CDCCCCACD10F51417B14AE8791885441EC51B89ECF0F5141E17A140E9188544133333383CF0F5141333333438F885441EC51B89ED00F5141EC51B8FE8D885441C3F528ACD00F514185EB51B8878854415C8FC235D60F51417B14AEC78A885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>232789 - 1850755
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000B000000D7A370FD4DAD504185EB51E8875E5441713D0A474FAD50413D0AD7D3865E544114AE471150AD50410AD7A3207C5E5441713D0A970CAD5041666666D6715E54410AD7A3900CAD5041EC51B8CE725E54419A9999190CAD504185EB5158795E544148E17A140BAD5041E17A14AE7C5E5441AE47E1AA0EAD5041333333337E5E54417B14AE1713AD504114AE47717F5E5441A4703DCA17AD504185EB5178805E5441D7A370FD4DAD504185EB51E8875E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000E216957B16AD5041BDCA9958735E5441D23A0C9D0CAD50410B3477B8715E54410AD7A3900CAD5041EC51B8CE725E54419A9999190CAD504185EB5158795E544148E17A140BAD5041E17A14AE7C5E5441AE47E1AA0EAD5041333333337E5E54417B14AE1713AD504114AE47717F5E5441A4703DCA17AD504185EB5178805E5441D7A370FD4DAD504185EB51E8875E5441713D0A474FAD50413D0AD7D3865E5441570C5B1E50AD504125421D827B5E5441DC1A329B36AD5041E7B737F4775E54415F276E8A20AD504193BD40E1745E54416FBA1CB41BAD5041F52DBC34745E5441E216957B16AD5041BDCA9958735E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>232789 - 3604301
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000B000000D7A370FD4DAD504185EB51E8875E5441713D0A474FAD50413D0AD7D3865E544114AE471150AD50410AD7A3207C5E5441713D0A970CAD5041666666D6715E54410AD7A3900CAD5041EC51B8CE725E54419A9999190CAD504185EB5158795E544148E17A140BAD5041E17A14AE7C5E5441AE47E1AA0EAD5041333333337E5E54417B14AE1713AD504114AE47717F5E5441A4703DCA17AD504185EB5178805E5441D7A370FD4DAD504185EB51E8875E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000E216957B16AD5041BDCA9958735E5441D23A0C9D0CAD50410B3477B8715E54410AD7A3900CAD5041EC51B8CE725E54419A9999190CAD504185EB5158795E544148E17A140BAD5041E17A14AE7C5E5441AE47E1AA0EAD5041333333337E5E54417B14AE1713AD504114AE47717F5E5441A4703DCA17AD504185EB5178805E5441D7A370FD4DAD504185EB51E8875E5441713D0A474FAD50413D0AD7D3865E5441570C5B1E50AD504125421D827B5E5441DC1A329B36AD5041E7B737F4775E54415F276E8A20AD504193BD40E1745E54416FBA1CB41BAD5041F52DBC34745E5441E216957B16AD5041BDCA9958735E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>232838 - 1850755
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000A00000014AE471144AD5041D7A370DD5F5E5441000000400AAD504148E17AC4575E5441A4703DCA07AD5041E17A147E5E5E54419A9999B905AD504100000060665E5441C3F5285C03AD5041E17A146E705E5441713D0A970CAD5041666666D6715E544114AE471150AD50410AD7A3207C5E544148E17A9450AD50418FC2F528755E5441713D0A4752AD5041AE47E1DA615E544114AE471144AD5041D7A370DD5F5E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000E216957B16AD5041BDCA9958735E5441D23A0C9D0CAD50410B3477B8715E54410AD7A3900CAD5041EC51B8CE725E54419A9999190CAD504185EB5158795E544148E17A140BAD5041E17A14AE7C5E5441AE47E1AA0EAD5041333333337E5E54417B14AE1713AD504114AE47717F5E5441A4703DCA17AD504185EB5178805E5441D7A370FD4DAD504185EB51E8875E5441713D0A474FAD50413D0AD7D3865E5441570C5B1E50AD504125421D827B5E5441DC1A329B36AD5041E7B737F4775E54415F276E8A20AD504193BD40E1745E54416FBA1CB41BAD5041F52DBC34745E5441E216957B16AD5041BDCA9958735E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>232838 - 3604301
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000A00000014AE471144AD5041D7A370DD5F5E5441000000400AAD504148E17AC4575E5441A4703DCA07AD5041E17A147E5E5E54419A9999B905AD504100000060665E5441C3F5285C03AD5041E17A146E705E5441713D0A970CAD5041666666D6715E544114AE471150AD50410AD7A3207C5E544148E17A9450AD50418FC2F528755E5441713D0A4752AD5041AE47E1DA615E544114AE471144AD5041D7A370DD5F5E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000E216957B16AD5041BDCA9958735E5441D23A0C9D0CAD50410B3477B8715E54410AD7A3900CAD5041EC51B8CE725E54419A9999190CAD504185EB5158795E544148E17A140BAD5041E17A14AE7C5E5441AE47E1AA0EAD5041333333337E5E54417B14AE1713AD504114AE47717F5E5441A4703DCA17AD504185EB5178805E5441D7A370FD4DAD504185EB51E8875E5441713D0A474FAD50413D0AD7D3865E5441570C5B1E50AD504125421D827B5E5441DC1A329B36AD5041E7B737F4775E54415F276E8A20AD504193BD40E1745E54416FBA1CB41BAD5041F52DBC34745E5441E216957B16AD5041BDCA9958735E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>499541 - 1083509
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000400000001030000000100000012000000E17A142EA51F51415C8FC2356C2454415C8FC2B5A01F5141AE47E1BA7124544148E17A34A11F51418FC2F58872245441AE47E12AA31F514133333393782454410AD7A370A51F51419A9999997F24544185EB5128A81F5141713D0AE784245441D7A370FDAD1F51417B14AE778224544185EB5168B41F5141A4703DAA7D2454415C8FC2C5B81F5141D7A3701D7A2454418FC2F5A8BC1F5141F6285CCF762454410AD7A3D0A91F5141CDCCCC7C66245441AE47E14AA51F5141333333136C245441333333D3A51F5141333333936D245441E17A140EA61F5141713D0A876E245441E17A14BEA51F51411F85EBB16D245441713D0A87A51F5141666666166D24544152B81E45A51F5141000000706C245441E17A142EA51F51415C8FC2356C24544101030000000100000030000000A4703D4A511F51411F85EBB140245441333333B3541F51411F85EBC137245441713D0AE7511F514114AE47713724544114AE47D14F1F51413D0AD753372454411F85EBF1491F5141AE47E16A372454410AD7A3A0461F51411F85EB81372454411F85EBD1421F5141CDCCCC3C37245441333333933D1F514114AE47E136245441B81E858B3C1F51415C8FC23539245441D7A3705D3C1F51417B14AE173B245441666666E6391F5141A4703D3A3B24544114AE4751391F514114AE47114024544166666676381F5141F6285C1F44245441CDCCCC9C371F51413D0AD703472454410AD7A390361F5141EC51B84E492454418FC2F508361F51417B14AE974A245441F6285CAF331F5141E17A144E50245441A4703D6A301F5141F6285CDF572454410AD7A3302D1F514114AE47215F24544152B81E452F1F5141C3F5285C612454417B14AE37331F514114AE477164245441F6285C1F331F5141713D0AB7662454419A9999D9321F5141000000506D24544185EB51F8311F5141713D0AC76F2454418FC2F5F82F1F51416666666675245441A4703D2A2F1F5141A4703D7A782454413D0AD7D32F1F5141CDCCCC3C86245441A4703DCA3F1F5141C3F5289C8C2454418FC2F5383A1F5141E17A147E9C24544114AE47E1451F514185EB5188A12454419A999939471F51419A9999B99E245441AE47E12A4A1F5141F6285C3F9924544185EB51084C1F5141A4703DDA9424544114AE47514D1F5141713D0A4791245441C3F5288C4F1F5141713D0AB78A2454413D0AD733511F5141AE47E17A84245441713D0A974F1F5141A4703D6A802454419A9999894D1F51413D0AD7337B245441713D0A474F1F514148E17A44712454418FC2F508531F5141B81E851B67245441C3F528BC531F5141666666F66424544152B81E15541F5141666666E66324544185EB5138551F5141B81E850B61245441CDCCCCAC551F5141EC51B8AE5A2454411F85EBA1561F5141713D0AD756245441E17A145E571F5141713D0AD75324544166666676581F51410AD7A3B04D245441A4703D4A511F51411F85EBB14024544101030000000100000005000000295C8F22EA1F51410000005080245441AE47E1AAD71F51419A99999993245441C3F5289CD31F5141713D0A77A024544100000060032051418FC2F55896245441295C8F22EA1F51410000005080245441010300000001000000A000000052B81EC53F1F51411F85EBD12724544114AE4771401F5141713D0A772A245441CDCCCC7C401F514152B81E7531245441D7A3706D3E1F5141E17A14CE352454418FC2F5A8471F51410AD7A39036245441713D0A07511F51413333336336245441B81E852B541F51419A9999A936245441EC51B81E551F51417B14AEA7362454419A9999D9561F514148E17A14322454417B14AEA7561F51413D0AD7C3312454417B14AE57561F514114AE47413124544148E17A04561F514148E17AB43024544148E17AA4551F514148E17A5430245441F6285C3F551F5141AE47E1FA2F245441295C8FB2541F514114AE47812F24544133333363541F5141CDCCCC1C2F24544152B81E25541F5141B81E85BB2E24544185EB51F8531F514152B81E652E2454413D0AD7E3531F514185EB51182E2454413D0AD7E3531F51411F85EBC12D245441C3F528EC531F514148E17A542D245441A4703D1A541F5141B81E859B2C245441D7A3706D541F5141E17A148E2B245441A4703D7A541F51410AD7A3402B2454411F85EB71541F5141666666062B245441A4703D5A541F514148E17AE42A2454413D0AD723541F51411F85EBB12A24544114AE47D1531F5141A4703D8A2A245441F6285C4F531F5141A4703D3A2A24544185EB51D8521F5141AE47E1DA29245441EC51B87E521F51419A99996929245441EC51B82E521F5141C3F5280C292454417B14AEB7511F5141F6285CBF28245441A4703D4A511F5141D7A3708D28245441C3F528DC501F5141A4703D7A28245441CDCCCC5C501F5141CDCCCC5C282454410AD7A3E04F1F51413333332328245441A4703D5A4F1F5141000000C027245441666666E64E1F51419A99995927245441713D0A974E1F5141A4703DFA26245441333333634E1F5141B81E85DB26245441CDCCCC0C4E1F5141AE47E1CA26245441333333934D1F5141EC51B8AE26245441C3F5282C4D1F5141B81E857B2624544148E17AA44C1F514148E17A2426245441E17A143E4C1F5141A4703DCA25245441713D0AA74B1F514114AE47C124245441295C8F324B1F5141000000D0232454418FC2F5484A1F514185EB511822245441F6285CCF491F514166666656212454411F85EB71491F51411F85EBE1202454413D0AD703491F51419A99997920245441C3F528AC481F5141CDCCCC3C202454419A9999C9471F5141D7A370ED1F24544185EB5128471F51418FC2F5A81F245441AE47E1AA461F5141A4703D5A1F24544166666666461F5141333333231F2454410AD7A320461F51418FC2F5B81E245441C3F528DC451F51410AD7A3001E24544133333383451F5141C3F5280C1D245441295C8F02451F5141666666361C245441295C8F42441F5141EC51B86E1B24544166666676431F51419A9999791A245441EC51B8CE421F51411F85EBD119245441D7A3704D421F51417B14AE27192454411F85EB31421F5141D7A370DD182454410AD7A300421F5141EC51B85E1824544114AE4711421F51419A9999691724544114AE4731421F514185EB5168162454417B14AE17421F51410AD7A3201524544166666696411F51415C8FC2551324544185EB5138411F514185EB5118122454415C8FC2C5401F5141D7A3703D112454417B14AE77401F51415C8FC2E5102454418FC2F5F83F1F5141E17A148E102454419A9999793F1F5141B81E855B10245441E17A14EE3E1F51419A99991910245441E17A145E3E1F5141CDCCCC9C0F2454410AD7A3203E1F5141EC51B80E0F245441F6285C0F3E1F5141AE47E17A0E245441F6285CFF3D1F5141AE47E10A0E24544152B81ED53D1F51417B14AE970D245441B81E854B3D1F5141E17A14BE0C2454419A9999C93C1F5141CDCCCCDC0B245441713D0A273C1F5141A4703DEA0A245441CDCCCCDC3B1F5141713D0A570A245441A4703DCA3B1F51417B14AEF709245441D7A370CD3B1F51411F85EB9109245441D7A370DD3B1F514114AE474109245441EC51B81E3C1F5141F6285CBF0824544148E17A643C1F5141E17A142E08245441C3F5288C3C1F5141000000A007245441000000903C1F51410AD7A340072454419A9999893C1F5141EC51B8CE062454415C8FC2653C1F514185EB5158062454415C8FC2153C1F514114AE47F105245441CDCCCC5C3B1F514166666646052454417B14AEE73A1F514185EB51B8042454418FC2F5883A1F5141F6285C1F04245441666666563A1F51418FC2F58803245441F6285C2F3A1F514152B81EB502245441AE47E1EA331F51418FC2F5C807245441C3F5288C331F5141A4703D5A0824544152B81EE52F1F5141000000500D2454418FC2F5C82C1F5141AE47E1DA102454419A9999B9281F5141666666F6142454411F85EB21271F51417B14AE9716245441D7A370DD221F51417B14AE971924544148E17AC41F1F51415C8FC2C51B2454411F85EBE11B1F514185EB51681E245441D7A3700D1A1F51418FC2F5581F24544133333343171F5141D7A370BD212454417B14AEB7151F51413333331323245441EC51B8DE131F514148E17AA42424544185EB51E8101F51411F85EBE126245441E17A14AE131F5141D7A3703D2A245441F6285CCF151F514114AE47112D245441CDCCCC7C171F5141B81E854B2F245441AE47E1BA171F5141AE47E1AA2F24544152B81EB5181F514185EB512831245441B81E850B1A1F514114AE47613324544148E17A941B1F514152B81E65362454419A9999C9201F51418FC2F5C83F2454419A999989211F514133333323412454417B14AE77241F5141666666764124544100000040251F514152B81E9541245441E17A14BE261F51413D0AD72342245441713D0A57281F5141AE47E1FA42245441F6285C3F291F5141F6285C5F43245441EC51B85E2A1F5141666666B643245441D7A3701D2B1F51419A9999C943245441EC51B89E2B1F5141CDCCCCCC4324544185EB51A82C1F5141D7A3709D43245441EC51B89E2D1F51411F85EB3143245441B81E852B2E1F514114AE47114324544148E17A642F1F51415C8FC2F5422454411F85EB01301F51419A9999C942245441666666A6301F51411F85EB41422454417B14AE57311F5141D7A370ED41245441F6285C4F321F5141713D0AC74124544114AE4791331F5141F6285CDF4124544114AE47F1341F5141B81E852B4224544185EB5188341F5141713D0A5742245441AE47E1DA331F51418FC2F53842245441C3F528AC321F514152B81E05422454410AD7A3B0311F51417B14AE1742245441C3F5280C311F51413D0AD763422454413D0AD743301F51413D0AD7F34224544185EB51682F1F51418FC2F5684324544185EB51782E1F5141CDCCCC8C4324544114AE47912D1F5141F6285CFF43245441666666F6351F514114AE47814724544185EB5158371F5141D7A370DD44245441D7A3703D381F5141D7A3706D40245441295C8F82381F51418FC2F5583C2454418FC2F5E8351F5141B81E851B3A245441B81E850B361F51419A9999193424544148E17A54381F5141333333932F245441D7A3704D3A1F5141666666662524544152B81EC53F1F51411F85EBD127245441
+</a>
+
+<b>
+010600000001000000010300000001000000EC000000F38BA35E4A1F5141D3EE7E8336245441713D0A07511F51413333336336245441B81E852B541F51419A9999A936245441EC51B81E551F51417B14AEA7362454419A9999D9561F514148E17A14322454417B14AEA7561F51413D0AD7C3312454417B14AE57561F514114AE47413124544148E17A04561F514148E17AB43024544148E17AA4551F514148E17A5430245441F6285C3F551F5141AE47E1FA2F245441295C8FB2541F514114AE47812F24544133333363541F5141CDCCCC1C2F24544152B81E25541F5141B81E85BB2E24544185EB51F8531F514152B81E652E2454413D0AD7E3531F514185EB51182E2454413D0AD7E3531F51411F85EBC12D245441C3F528EC531F514148E17A542D245441A4703D1A541F5141B81E859B2C245441D7A3706D541F5141E17A148E2B245441A4703D7A541F51410AD7A3402B2454411F85EB71541F5141666666062B245441A4703D5A541F514148E17AE42A2454413D0AD723541F51411F85EBB12A24544114AE47D1531F5141A4703D8A2A245441F6285C4F531F5141A4703D3A2A24544185EB51D8521F5141AE47E1DA29245441EC51B87E521F51419A99996929245441EC51B82E521F5141C3F5280C292454417B14AEB7511F5141F6285CBF28245441A4703D4A511F5141D7A3708D28245441C3F528DC501F5141A4703D7A28245441CDCCCC5C501F5141CDCCCC5C282454410AD7A3E04F1F51413333332328245441A4703D5A4F1F5141000000C027245441666666E64E1F51419A99995927245441713D0A974E1F5141A4703DFA26245441333333634E1F5141B81E85DB26245441CDCCCC0C4E1F5141AE47E1CA26245441333333934D1F5141EC51B8AE26245441C3F5282C4D1F5141B81E857B2624544148E17AA44C1F514148E17A2426245441E17A143E4C1F5141A4703DCA25245441713D0AA74B1F514114AE47C124245441295C8F324B1F5141000000D0232454418FC2F5484A1F514185EB511822245441F6285CCF491F514166666656212454411F85EB71491F51411F85EBE1202454413D0AD703491F51419A99997920245441C3F528AC481F5141CDCCCC3C202454419A9999C9471F5141D7A370ED1F24544185EB5128471F51418FC2F5A81F245441AE47E1AA461F5141A4703D5A1F24544166666666461F5141333333231F2454410AD7A320461F51418FC2F5B81E245441C3F528DC451F51410AD7A3001E24544133333383451F5141C3F5280C1D245441295C8F02451F5141666666361C245441295C8F42441F5141EC51B86E1B24544166666676431F51419A9999791A245441EC51B8CE421F51411F85EBD119245441D7A3704D421F51417B14AE27192454411F85EB31421F5141D7A370DD182454410AD7A300421F5141EC51B85E1824544114AE4711421F51419A9999691724544114AE4731421F514185EB5168162454417B14AE17421F51410AD7A3201524544166666696411F51415C8FC2551324544185EB5138411F514185EB5118122454415C8FC2C5401F5141D7A3703D112454417B14AE77401F51415C8FC2E5102454418FC2F5F83F1F5141E17A148E102454419A9999793F1F5141B81E855B10245441E17A14EE3E1F51419A99991910245441E17A145E3E1F5141CDCCCC9C0F2454410AD7A3203E1F5141EC51B80E0F245441F6285C0F3E1F5141AE47E17A0E245441F6285CFF3D1F5141AE47E10A0E24544152B81ED53D1F51417B14AE970D245441B81E854B3D1F5141E17A14BE0C2454419A9999C93C1F5141CDCCCCDC0B245441713D0A273C1F5141A4703DEA0A245441CDCCCCDC3B1F5141713D0A570A245441A4703DCA3B1F51417B14AEF709245441D7A370CD3B1F51411F85EB9109245441D7A370DD3B1F514114AE474109245441EC51B81E3C1F5141F6285CBF0824544148E17A643C1F5141E17A142E08245441C3F5288C3C1F5141000000A007245441000000903C1F51410AD7A340072454419A9999893C1F5141EC51B8CE062454415C8FC2653C1F514185EB5158062454415C8FC2153C1F514114AE47F105245441CDCCCC5C3B1F514166666646052454417B14AEE73A1F514185EB51B8042454418FC2F5883A1F5141F6285C1F04245441666666563A1F51418FC2F58803245441F6285C2F3A1F514152B81EB502245441AE47E1EA331F51418FC2F5C807245441C3F5288C331F5141A4703D5A0824544152B81EE52F1F5141000000500D2454418FC2F5C82C1F5141AE47E1DA102454419A9999B9281F5141666666F6142454411F85EB21271F51417B14AE9716245441D7A370DD221F51417B14AE971924544148E17AC41F1F51415C8FC2C51B2454411F85EBE11B1F514185EB51681E245441D7A3700D1A1F51418FC2F5581F24544133333343171F5141D7A370BD212454417B14AEB7151F51413333331323245441EC51B8DE131F514148E17AA42424544185EB51E8101F51411F85EBE126245441E17A14AE131F5141D7A3703D2A245441F6285CCF151F514114AE47112D245441CDCCCC7C171F5141B81E854B2F245441AE47E1BA171F5141AE47E1AA2F24544152B81EB5181F514185EB512831245441B81E850B1A1F514114AE47613324544148E17A941B1F514152B81E65362454419A9999C9201F51418FC2F5C83F2454419A999989211F514133333323412454417B14AE77241F5141666666764124544100000040251F514152B81E9541245441E17A14BE261F51413D0AD72342245441713D0A57281F5141AE47E1FA42245441F6285C3F291F5141F6285C5F43245441EC51B85E2A1F5141666666B643245441D7A3701D2B1F51419A9999C943245441EC51B89E2B1F5141CDCCCCCC4324544185EB51A82C1F5141D7A3709D43245441EC51B89E2D1F51411F85EB3143245441B81E852B2E1F514114AE47114324544148E17A642F1F51415C8FC2F5422454411F85EB01301F51419A9999C942245441666666A6301F51411F85EB41422454417B14AE57311F5141D7A370ED41245441F6285C4F321F5141713D0AC74124544114AE4791331F5141F6285CDF4124544114AE47F1341F5141B81E852B4224544185EB5188341F5141713D0A5742245441AE47E1DA331F51418FC2F53842245441C3F528AC321F514152B81E05422454410AD7A3B0311F51417B14AE1742245441C3F5280C311F51413D0AD763422454413D0AD743301F51413D0AD7F34224544185EB51682F1F51418FC2F5684324544185EB51782E1F5141CDCCCC8C4324544114AE47912D1F5141F6285CFF43245441666666F6351F514114AE47814724544185EB5158371F5141D7A370DD44245441D7A3703D381F5141D7A3706D40245441295C8F82381F51418FC2F5583C2454418FC2F5E8351F5141B81E851B3A245441B81E850B361F51419A9999193424544148E17A54381F5141333333932F245441D7A3704D3A1F5141666666662524544152B81EC53F1F51411F85EBD12724544114AE4771401F5141713D0A772A245441CDCCCC7C401F514152B81E7531245441D7A3706D3E1F5141E17A14CE352454418FC2F5A8471F51410AD7A39036245441A947EDE1491F514135E3DB8536245441E2B6D0034A1F5141F4119B6A372454411F85EBF1491F5141AE47E16A372454410AD7A3A0461F51411F85EB81372454411F85EBD1421F5141CDCCCC3C37245441333333933D1F514114AE47E136245441B81E858B3C1F51415C8FC23539245441D7A3705D3C1F51417B14AE173B245441666666E6391F5141A4703D3A3B24544114AE4751391F514114AE47114024544166666676381F5141F6285C1F44245441CDCCCC9C371F51413D0AD703472454410AD7A390361F5141EC51B84E492454418FC2F508361F51417B14AE974A245441F6285CAF331F5141E17A144E50245441A4703D6A301F5141F6285CDF572454410AD7A3302D1F514114AE47215F24544152B81E452F1F5141C3F5285C612454417B14AE37331F514114AE477164245441F6285C1F331F5141713D0AB7662454419A9999D9321F5141000000506D24544185EB51F8311F5141713D0AC76F2454418FC2F5F82F1F51416666666675245441A4703D2A2F1F5141A4703D7A782454413D0AD7D32F1F5141CDCCCC3C86245441A4703DCA3F1F5141C3F5289C8C2454418FC2F5383A1F5141E17A147E9C24544114AE47E1451F514185EB5188A12454419A999939471F51419A9999B99E245441AE47E12A4A1F5141F6285C3F9924544185EB51084C1F5141A4703DDA9424544114AE47514D1F5141713D0A4791245441C3F5288C4F1F5141713D0AB78A2454413D0AD733511F5141AE47E17A84245441713D0A974F1F5141A4703D6A802454419A9999894D1F51413D0AD7337B245441713D0A474F1F514148E17A44712454418FC2F508531F5141B81E851B67245441C3F528BC531F5141666666F66424544152B81E15541F5141666666E66324544185EB5138551F5141B81E850B61245441CDCCCCAC551F5141EC51B8AE5A2454411F85EBA1561F5141713D0AD756245441E17A145E571F5141713D0AD75324544166666676581F51410AD7A3B04D245441D5FC67B4521F5141580297434324544165D595AF771F514126E48D995724544175F1D9C9901F514187955D7065245441308F5D16A21F5141885CE7786F2454415C8FC2B5A01F5141AE47E1BA7124544148E17A34A11F51418FC2F58872245441AE47E12AA31F514133333393782454410AD7A370A51F51419A9999997F24544185EB5128A81F5141713D0AE784245441D7A370FDAD1F51417B14AE778224544185EB5168B41F5141A4703DAA7D2454414AAA1BD4BB1F5141C2BCAA597724544162E4BF92E01F514127B87F4C8A245441AE47E1AAD71F51419A99999993245441C3F5289CD31F5141713D0A77A024544100000060032051418FC2F55896245441295C8F22EA1F514100000050802454418B6986E7E01F5141878EF5F38924544158AA1BD4BB1F51418EB48DE0762454416DBAE2E1A91F51416F50894169245441767FEDDAA41F51417318746F6C245441A6E3BA3DA21F51417F5E55206F245441107023D68D1F5141E82B47AE632454419FCFF47F881F514157154BC260245441A06CCE70521F5141DB179CC742245441A4703D4A511F51411F85EBB140245441333333B3541F51411F85EBC137245441713D0AE7511F514114AE47713724544114AE47D14F1F51413D0AD75337245441004E2F914A1F5141D16C706837245441F38BA35E4A1F5141D3EE7E8336245441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>499541 - 3889469
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000400000001030000000100000012000000E17A142EA51F51415C8FC2356C2454415C8FC2B5A01F5141AE47E1BA7124544148E17A34A11F51418FC2F58872245441AE47E12AA31F514133333393782454410AD7A370A51F51419A9999997F24544185EB5128A81F5141713D0AE784245441D7A370FDAD1F51417B14AE778224544185EB5168B41F5141A4703DAA7D2454415C8FC2C5B81F5141D7A3701D7A2454418FC2F5A8BC1F5141F6285CCF762454410AD7A3D0A91F5141CDCCCC7C66245441AE47E14AA51F5141333333136C245441333333D3A51F5141333333936D245441E17A140EA61F5141713D0A876E245441E17A14BEA51F51411F85EBB16D245441713D0A87A51F5141666666166D24544152B81E45A51F5141000000706C245441E17A142EA51F51415C8FC2356C24544101030000000100000030000000A4703D4A511F51411F85EBB140245441333333B3541F51411F85EBC137245441713D0AE7511F514114AE47713724544114AE47D14F1F51413D0AD753372454411F85EBF1491F5141AE47E16A372454410AD7A3A0461F51411F85EB81372454411F85EBD1421F5141CDCCCC3C37245441333333933D1F514114AE47E136245441B81E858B3C1F51415C8FC23539245441D7A3705D3C1F51417B14AE173B245441666666E6391F5141A4703D3A3B24544114AE4751391F514114AE47114024544166666676381F5141F6285C1F44245441CDCCCC9C371F51413D0AD703472454410AD7A390361F5141EC51B84E492454418FC2F508361F51417B14AE974A245441F6285CAF331F5141E17A144E50245441A4703D6A301F5141F6285CDF572454410AD7A3302D1F514114AE47215F24544152B81E452F1F5141C3F5285C612454417B14AE37331F514114AE477164245441F6285C1F331F5141713D0AB7662454419A9999D9321F5141000000506D24544185EB51F8311F5141713D0AC76F2454418FC2F5F82F1F51416666666675245441A4703D2A2F1F5141A4703D7A782454413D0AD7D32F1F5141CDCCCC3C86245441A4703DCA3F1F5141C3F5289C8C2454418FC2F5383A1F5141E17A147E9C24544114AE47E1451F514185EB5188A12454419A999939471F51419A9999B99E245441AE47E12A4A1F5141F6285C3F9924544185EB51084C1F5141A4703DDA9424544114AE47514D1F5141713D0A4791245441C3F5288C4F1F5141713D0AB78A2454413D0AD733511F5141AE47E17A84245441713D0A974F1F5141A4703D6A802454419A9999894D1F51413D0AD7337B245441713D0A474F1F514148E17A44712454418FC2F508531F5141B81E851B67245441C3F528BC531F5141666666F66424544152B81E15541F5141666666E66324544185EB5138551F5141B81E850B61245441CDCCCCAC551F5141EC51B8AE5A2454411F85EBA1561F5141713D0AD756245441E17A145E571F5141713D0AD75324544166666676581F51410AD7A3B04D245441A4703D4A511F51411F85EBB14024544101030000000100000005000000295C8F22EA1F51410000005080245441AE47E1AAD71F51419A99999993245441C3F5289CD31F5141713D0A77A024544100000060032051418FC2F55896245441295C8F22EA1F51410000005080245441010300000001000000A000000052B81EC53F1F51411F85EBD12724544114AE4771401F5141713D0A772A245441CDCCCC7C401F514152B81E7531245441D7A3706D3E1F5141E17A14CE352454418FC2F5A8471F51410AD7A39036245441713D0A07511F51413333336336245441B81E852B541F51419A9999A936245441EC51B81E551F51417B14AEA7362454419A9999D9561F514148E17A14322454417B14AEA7561F51413D0AD7C3312454417B14AE57561F514114AE47413124544148E17A04561F514148E17AB43024544148E17AA4551F514148E17A5430245441F6285C3F551F5141AE47E1FA2F245441295C8FB2541F514114AE47812F24544133333363541F5141CDCCCC1C2F24544152B81E25541F5141B81E85BB2E24544185EB51F8531F514152B81E652E2454413D0AD7E3531F514185EB51182E2454413D0AD7E3531F51411F85EBC12D245441C3F528EC531F514148E17A542D245441A4703D1A541F5141B81E859B2C245441D7A3706D541F5141E17A148E2B245441A4703D7A541F51410AD7A3402B2454411F85EB71541F5141666666062B245441A4703D5A541F514148E17AE42A2454413D0AD723541F51411F85EBB12A24544114AE47D1531F5141A4703D8A2A245441F6285C4F531F5141A4703D3A2A24544185EB51D8521F5141AE47E1DA29245441EC51B87E521F51419A99996929245441EC51B82E521F5141C3F5280C292454417B14AEB7511F5141F6285CBF28245441A4703D4A511F5141D7A3708D28245441C3F528DC501F5141A4703D7A28245441CDCCCC5C501F5141CDCCCC5C282454410AD7A3E04F1F51413333332328245441A4703D5A4F1F5141000000C027245441666666E64E1F51419A99995927245441713D0A974E1F5141A4703DFA26245441333333634E1F5141B81E85DB26245441CDCCCC0C4E1F5141AE47E1CA26245441333333934D1F5141EC51B8AE26245441C3F5282C4D1F5141B81E857B2624544148E17AA44C1F514148E17A2426245441E17A143E4C1F5141A4703DCA25245441713D0AA74B1F514114AE47C124245441295C8F324B1F5141000000D0232454418FC2F5484A1F514185EB511822245441F6285CCF491F514166666656212454411F85EB71491F51411F85EBE1202454413D0AD703491F51419A99997920245441C3F528AC481F5141CDCCCC3C202454419A9999C9471F5141D7A370ED1F24544185EB5128471F51418FC2F5A81F245441AE47E1AA461F5141A4703D5A1F24544166666666461F5141333333231F2454410AD7A320461F51418FC2F5B81E245441C3F528DC451F51410AD7A3001E24544133333383451F5141C3F5280C1D245441295C8F02451F5141666666361C245441295C8F42441F5141EC51B86E1B24544166666676431F51419A9999791A245441EC51B8CE421F51411F85EBD119245441D7A3704D421F51417B14AE27192454411F85EB31421F5141D7A370DD182454410AD7A300421F5141EC51B85E1824544114AE4711421F51419A9999691724544114AE4731421F514185EB5168162454417B14AE17421F51410AD7A3201524544166666696411F51415C8FC2551324544185EB5138411F514185EB5118122454415C8FC2C5401F5141D7A3703D112454417B14AE77401F51415C8FC2E5102454418FC2F5F83F1F5141E17A148E102454419A9999793F1F5141B81E855B10245441E17A14EE3E1F51419A99991910245441E17A145E3E1F5141CDCCCC9C0F2454410AD7A3203E1F5141EC51B80E0F245441F6285C0F3E1F5141AE47E17A0E245441F6285CFF3D1F5141AE47E10A0E24544152B81ED53D1F51417B14AE970D245441B81E854B3D1F5141E17A14BE0C2454419A9999C93C1F5141CDCCCCDC0B245441713D0A273C1F5141A4703DEA0A245441CDCCCCDC3B1F5141713D0A570A245441A4703DCA3B1F51417B14AEF709245441D7A370CD3B1F51411F85EB9109245441D7A370DD3B1F514114AE474109245441EC51B81E3C1F5141F6285CBF0824544148E17A643C1F5141E17A142E08245441C3F5288C3C1F5141000000A007245441000000903C1F51410AD7A340072454419A9999893C1F5141EC51B8CE062454415C8FC2653C1F514185EB5158062454415C8FC2153C1F514114AE47F105245441CDCCCC5C3B1F514166666646052454417B14AEE73A1F514185EB51B8042454418FC2F5883A1F5141F6285C1F04245441666666563A1F51418FC2F58803245441F6285C2F3A1F514152B81EB502245441AE47E1EA331F51418FC2F5C807245441C3F5288C331F5141A4703D5A0824544152B81EE52F1F5141000000500D2454418FC2F5C82C1F5141AE47E1DA102454419A9999B9281F5141666666F6142454411F85EB21271F51417B14AE9716245441D7A370DD221F51417B14AE971924544148E17AC41F1F51415C8FC2C51B2454411F85EBE11B1F514185EB51681E245441D7A3700D1A1F51418FC2F5581F24544133333343171F5141D7A370BD212454417B14AEB7151F51413333331323245441EC51B8DE131F514148E17AA42424544185EB51E8101F51411F85EBE126245441E17A14AE131F5141D7A3703D2A245441F6285CCF151F514114AE47112D245441CDCCCC7C171F5141B81E854B2F245441AE47E1BA171F5141AE47E1AA2F24544152B81EB5181F514185EB512831245441B81E850B1A1F514114AE47613324544148E17A941B1F514152B81E65362454419A9999C9201F51418FC2F5C83F2454419A999989211F514133333323412454417B14AE77241F5141666666764124544100000040251F514152B81E9541245441E17A14BE261F51413D0AD72342245441713D0A57281F5141AE47E1FA42245441F6285C3F291F5141F6285C5F43245441EC51B85E2A1F5141666666B643245441D7A3701D2B1F51419A9999C943245441EC51B89E2B1F5141CDCCCCCC4324544185EB51A82C1F5141D7A3709D43245441EC51B89E2D1F51411F85EB3143245441B81E852B2E1F514114AE47114324544148E17A642F1F51415C8FC2F5422454411F85EB01301F51419A9999C942245441666666A6301F51411F85EB41422454417B14AE57311F5141D7A370ED41245441F6285C4F321F5141713D0AC74124544114AE4791331F5141F6285CDF4124544114AE47F1341F5141B81E852B4224544185EB5188341F5141713D0A5742245441AE47E1DA331F51418FC2F53842245441C3F528AC321F514152B81E05422454410AD7A3B0311F51417B14AE1742245441C3F5280C311F51413D0AD763422454413D0AD743301F51413D0AD7F34224544185EB51682F1F51418FC2F5684324544185EB51782E1F5141CDCCCC8C4324544114AE47912D1F5141F6285CFF43245441666666F6351F514114AE47814724544185EB5158371F5141D7A370DD44245441D7A3703D381F5141D7A3706D40245441295C8F82381F51418FC2F5583C2454418FC2F5E8351F5141B81E851B3A245441B81E850B361F51419A9999193424544148E17A54381F5141333333932F245441D7A3704D3A1F5141666666662524544152B81EC53F1F51411F85EBD127245441
+</a>
+
+<b>
+010600000001000000010300000001000000EC000000F38BA35E4A1F5141D3EE7E8336245441713D0A07511F51413333336336245441B81E852B541F51419A9999A936245441EC51B81E551F51417B14AEA7362454419A9999D9561F514148E17A14322454417B14AEA7561F51413D0AD7C3312454417B14AE57561F514114AE47413124544148E17A04561F514148E17AB43024544148E17AA4551F514148E17A5430245441F6285C3F551F5141AE47E1FA2F245441295C8FB2541F514114AE47812F24544133333363541F5141CDCCCC1C2F24544152B81E25541F5141B81E85BB2E24544185EB51F8531F514152B81E652E2454413D0AD7E3531F514185EB51182E2454413D0AD7E3531F51411F85EBC12D245441C3F528EC531F514148E17A542D245441A4703D1A541F5141B81E859B2C245441D7A3706D541F5141E17A148E2B245441A4703D7A541F51410AD7A3402B2454411F85EB71541F5141666666062B245441A4703D5A541F514148E17AE42A2454413D0AD723541F51411F85EBB12A24544114AE47D1531F5141A4703D8A2A245441F6285C4F531F5141A4703D3A2A24544185EB51D8521F5141AE47E1DA29245441EC51B87E521F51419A99996929245441EC51B82E521F5141C3F5280C292454417B14AEB7511F5141F6285CBF28245441A4703D4A511F5141D7A3708D28245441C3F528DC501F5141A4703D7A28245441CDCCCC5C501F5141CDCCCC5C282454410AD7A3E04F1F51413333332328245441A4703D5A4F1F5141000000C027245441666666E64E1F51419A99995927245441713D0A974E1F5141A4703DFA26245441333333634E1F5141B81E85DB26245441CDCCCC0C4E1F5141AE47E1CA26245441333333934D1F5141EC51B8AE26245441C3F5282C4D1F5141B81E857B2624544148E17AA44C1F514148E17A2426245441E17A143E4C1F5141A4703DCA25245441713D0AA74B1F514114AE47C124245441295C8F324B1F5141000000D0232454418FC2F5484A1F514185EB511822245441F6285CCF491F514166666656212454411F85EB71491F51411F85EBE1202454413D0AD703491F51419A99997920245441C3F528AC481F5141CDCCCC3C202454419A9999C9471F5141D7A370ED1F24544185EB5128471F51418FC2F5A81F245441AE47E1AA461F5141A4703D5A1F24544166666666461F5141333333231F2454410AD7A320461F51418FC2F5B81E245441C3F528DC451F51410AD7A3001E24544133333383451F5141C3F5280C1D245441295C8F02451F5141666666361C245441295C8F42441F5141EC51B86E1B24544166666676431F51419A9999791A245441EC51B8CE421F51411F85EBD119245441D7A3704D421F51417B14AE27192454411F85EB31421F5141D7A370DD182454410AD7A300421F5141EC51B85E1824544114AE4711421F51419A9999691724544114AE4731421F514185EB5168162454417B14AE17421F51410AD7A3201524544166666696411F51415C8FC2551324544185EB5138411F514185EB5118122454415C8FC2C5401F5141D7A3703D112454417B14AE77401F51415C8FC2E5102454418FC2F5F83F1F5141E17A148E102454419A9999793F1F5141B81E855B10245441E17A14EE3E1F51419A99991910245441E17A145E3E1F5141CDCCCC9C0F2454410AD7A3203E1F5141EC51B80E0F245441F6285C0F3E1F5141AE47E17A0E245441F6285CFF3D1F5141AE47E10A0E24544152B81ED53D1F51417B14AE970D245441B81E854B3D1F5141E17A14BE0C2454419A9999C93C1F5141CDCCCCDC0B245441713D0A273C1F5141A4703DEA0A245441CDCCCCDC3B1F5141713D0A570A245441A4703DCA3B1F51417B14AEF709245441D7A370CD3B1F51411F85EB9109245441D7A370DD3B1F514114AE474109245441EC51B81E3C1F5141F6285CBF0824544148E17A643C1F5141E17A142E08245441C3F5288C3C1F5141000000A007245441000000903C1F51410AD7A340072454419A9999893C1F5141EC51B8CE062454415C8FC2653C1F514185EB5158062454415C8FC2153C1F514114AE47F105245441CDCCCC5C3B1F514166666646052454417B14AEE73A1F514185EB51B8042454418FC2F5883A1F5141F6285C1F04245441666666563A1F51418FC2F58803245441F6285C2F3A1F514152B81EB502245441AE47E1EA331F51418FC2F5C807245441C3F5288C331F5141A4703D5A0824544152B81EE52F1F5141000000500D2454418FC2F5C82C1F5141AE47E1DA102454419A9999B9281F5141666666F6142454411F85EB21271F51417B14AE9716245441D7A370DD221F51417B14AE971924544148E17AC41F1F51415C8FC2C51B2454411F85EBE11B1F514185EB51681E245441D7A3700D1A1F51418FC2F5581F24544133333343171F5141D7A370BD212454417B14AEB7151F51413333331323245441EC51B8DE131F514148E17AA42424544185EB51E8101F51411F85EBE126245441E17A14AE131F5141D7A3703D2A245441F6285CCF151F514114AE47112D245441CDCCCC7C171F5141B81E854B2F245441AE47E1BA171F5141AE47E1AA2F24544152B81EB5181F514185EB512831245441B81E850B1A1F514114AE47613324544148E17A941B1F514152B81E65362454419A9999C9201F51418FC2F5C83F2454419A999989211F514133333323412454417B14AE77241F5141666666764124544100000040251F514152B81E9541245441E17A14BE261F51413D0AD72342245441713D0A57281F5141AE47E1FA42245441F6285C3F291F5141F6285C5F43245441EC51B85E2A1F5141666666B643245441D7A3701D2B1F51419A9999C943245441EC51B89E2B1F5141CDCCCCCC4324544185EB51A82C1F5141D7A3709D43245441EC51B89E2D1F51411F85EB3143245441B81E852B2E1F514114AE47114324544148E17A642F1F51415C8FC2F5422454411F85EB01301F51419A9999C942245441666666A6301F51411F85EB41422454417B14AE57311F5141D7A370ED41245441F6285C4F321F5141713D0AC74124544114AE4791331F5141F6285CDF4124544114AE47F1341F5141B81E852B4224544185EB5188341F5141713D0A5742245441AE47E1DA331F51418FC2F53842245441C3F528AC321F514152B81E05422454410AD7A3B0311F51417B14AE1742245441C3F5280C311F51413D0AD763422454413D0AD743301F51413D0AD7F34224544185EB51682F1F51418FC2F5684324544185EB51782E1F5141CDCCCC8C4324544114AE47912D1F5141F6285CFF43245441666666F6351F514114AE47814724544185EB5158371F5141D7A370DD44245441D7A3703D381F5141D7A3706D40245441295C8F82381F51418FC2F5583C2454418FC2F5E8351F5141B81E851B3A245441B81E850B361F51419A9999193424544148E17A54381F5141333333932F245441D7A3704D3A1F5141666666662524544152B81EC53F1F51411F85EBD12724544114AE4771401F5141713D0A772A245441CDCCCC7C401F514152B81E7531245441D7A3706D3E1F5141E17A14CE352454418FC2F5A8471F51410AD7A39036245441A947EDE1491F514135E3DB8536245441E2B6D0034A1F5141F4119B6A372454411F85EBF1491F5141AE47E16A372454410AD7A3A0461F51411F85EB81372454411F85EBD1421F5141CDCCCC3C37245441333333933D1F514114AE47E136245441B81E858B3C1F51415C8FC23539245441D7A3705D3C1F51417B14AE173B245441666666E6391F5141A4703D3A3B24544114AE4751391F514114AE47114024544166666676381F5141F6285C1F44245441CDCCCC9C371F51413D0AD703472454410AD7A390361F5141EC51B84E492454418FC2F508361F51417B14AE974A245441F6285CAF331F5141E17A144E50245441A4703D6A301F5141F6285CDF572454410AD7A3302D1F514114AE47215F24544152B81E452F1F5141C3F5285C612454417B14AE37331F514114AE477164245441F6285C1F331F5141713D0AB7662454419A9999D9321F5141000000506D24544185EB51F8311F5141713D0AC76F2454418FC2F5F82F1F51416666666675245441A4703D2A2F1F5141A4703D7A782454413D0AD7D32F1F5141CDCCCC3C86245441A4703DCA3F1F5141C3F5289C8C2454418FC2F5383A1F5141E17A147E9C24544114AE47E1451F514185EB5188A12454419A999939471F51419A9999B99E245441AE47E12A4A1F5141F6285C3F9924544185EB51084C1F5141A4703DDA9424544114AE47514D1F5141713D0A4791245441C3F5288C4F1F5141713D0AB78A2454413D0AD733511F5141AE47E17A84245441713D0A974F1F5141A4703D6A802454419A9999894D1F51413D0AD7337B245441713D0A474F1F514148E17A44712454418FC2F508531F5141B81E851B67245441C3F528BC531F5141666666F66424544152B81E15541F5141666666E66324544185EB5138551F5141B81E850B61245441CDCCCCAC551F5141EC51B8AE5A2454411F85EBA1561F5141713D0AD756245441E17A145E571F5141713D0AD75324544166666676581F51410AD7A3B04D245441D5FC67B4521F5141580297434324544165D595AF771F514126E48D995724544175F1D9C9901F514187955D7065245441308F5D16A21F5141885CE7786F2454415C8FC2B5A01F5141AE47E1BA7124544148E17A34A11F51418FC2F58872245441AE47E12AA31F514133333393782454410AD7A370A51F51419A9999997F24544185EB5128A81F5141713D0AE784245441D7A370FDAD1F51417B14AE778224544185EB5168B41F5141A4703DAA7D2454414AAA1BD4BB1F5141C2BCAA597724544162E4BF92E01F514127B87F4C8A245441AE47E1AAD71F51419A99999993245441C3F5289CD31F5141713D0A77A024544100000060032051418FC2F55896245441295C8F22EA1F514100000050802454418B6986E7E01F5141878EF5F38924544158AA1BD4BB1F51418EB48DE0762454416DBAE2E1A91F51416F50894169245441767FEDDAA41F51417318746F6C245441A6E3BA3DA21F51417F5E55206F245441107023D68D1F5141E82B47AE632454419FCFF47F881F514157154BC260245441A06CCE70521F5141DB179CC742245441A4703D4A511F51411F85EBB140245441333333B3541F51411F85EBC137245441713D0AE7511F514114AE47713724544114AE47D14F1F51413D0AD75337245441004E2F914A1F5141D16C706837245441F38BA35E4A1F5141D3EE7E8336245441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981592 - 53562
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000200000001030000000100000009000000579988FE31B1504190EA58E69B295541042ACA0145B150412488DCE69E295541DC48F8AE53B15041331CBB886B295541AABCB15748B15041D4AFF50767295541F43466AC44B15041023D8F886A295541E89194D641B1504165FBE6886C295541FCD88AAB3FB1504196DA12896D295541256777553BB15041E9A306346F295541579988FE31B1504190EA58E69B295541010300000001000000040000003814199B45B150417C28B7C99D295541151F2E5745B150419C8D2ABC9E295541F140539E45B1504147B306CA9D2955413814199B45B150417C28B7C99D295541
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000F7D88AAB3FB1504198DA12896D295541C289E1033FB15041238ECCF16D2955412ECB169D35B150414743A5789C295541052ACA0145B150412188DCE69E295541DC48F8AE53B15041361CBB886B29554131B4D31E48B15041B4FD3D3E672955414EBCDDD046B15041B2DE057D682955416BF3EE6745B15041BBB58CD569295541333333E344B1504185EB51686A295541E89194D641B1504162FBE6886C295541F7D88AAB3FB1504198DA12896D295541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981592 - 246306
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000200000001030000000100000009000000579988FE31B1504190EA58E69B295541042ACA0145B150412488DCE69E295541DC48F8AE53B15041331CBB886B295541AABCB15748B15041D4AFF50767295541F43466AC44B15041023D8F886A295541E89194D641B1504165FBE6886C295541FCD88AAB3FB1504196DA12896D295541256777553BB15041E9A306346F295541579988FE31B1504190EA58E69B295541010300000001000000040000003814199B45B150417C28B7C99D295541151F2E5745B150419C8D2ABC9E295541F140539E45B1504147B306CA9D2955413814199B45B150417C28B7C99D295541
+</a>
+
+<b>
+0106000000010000000103000000010000000D00000014D6A12B42B150411B93AF226C29554110E413EB41B15041B07DD4466C2955410000002041B1504148E17AC46C295541F7D88AAB3FB1504198DA12896D29554134F38C5B3FB1504128C67DC16D2955410AC0E80A36B15041DC7470BA9C29554152B81E3545B15041B81E853B9F2955417CA0A53650B1504167FB67E2772955414B8AD1D353B15041987F137E6B2955412351B42B49B150412BB219A46629554187EF11C947B1504137B7FE336729554140567A0545B15041ADE04F5B6A29554114D6A12B42B150411B93AF226C295541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981592 - 389461
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000200000001030000000100000009000000579988FE31B1504190EA58E69B295541042ACA0145B150412488DCE69E295541DC48F8AE53B15041331CBB886B295541AABCB15748B15041D4AFF50767295541F43466AC44B15041023D8F886A295541E89194D641B1504165FBE6886C295541FCD88AAB3FB1504196DA12896D295541256777553BB15041E9A306346F295541579988FE31B1504190EA58E69B295541010300000001000000040000003814199B45B150417C28B7C99D295541151F2E5745B150419C8D2ABC9E295541F140539E45B1504147B306CA9D2955413814199B45B150417C28B7C99D295541
+</a>
+
+<b>
+0106000000010000000103000000010000000D00000014D6A12B42B150411B93AF226C29554110E413EB41B15041B07DD4466C2955410000002041B1504148E17AC46C295541F7D88AAB3FB1504198DA12896D29554134F38C5B3FB1504128C67DC16D2955410AC0E80A36B15041DC7470BA9C29554152B81E3545B15041B81E853B9F2955417CA0A53650B1504167FB67E2772955414B8AD1D353B15041987F137E6B2955412351B42B49B150412BB219A46629554187EF11C947B1504137B7FE336729554140567A0545B15041ADE04F5B6A29554114D6A12B42B150411B93AF226C295541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981071 - 53162
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000310000004B5A5091614451417E401684DC565441C28D2D9261445141640FA18ADC565441CAA4C6F061445141213EAE43DC56544179D29D61624451419917FB6BDC5654415B8A16A4624451411EDBF673DC5654411066A873634451419917FB6BDC565441722E8B1F64445141FF7D806ADC565441D924BD99634451414FAD1F69CC56544167D5E79E4F4451414FAD1F69CC5654410D742B61434451414E37391DCD56544179E23FF1434451414FAD1F69CC565441400DE98C41445141B11B34F9CC565441AA74220735445141B9B98015CF56544182363DA927445141F304BEC5D05654414861E64425445141C1E1E6E5D156544111D334461244514135027BFAD5565441C560F89B1444514161BE219BDD5654414B1E72F613445141B065835DEB5654418569AFA6154451414C1FD59DED565441BE3E060B1844514187E0F899EE565441EBFDC8B719445141AF97644FF5565441CBE488E618445141990AD65D015754412B2301E717445141006C67CD065754410F93783E16445141D12B37C40A57544153BCBE121644514153918AD20E5754418569AFA615445141323466DF145754411AE767AE1344514142FA18CC19575441AE78531E1344514153C0CBB81E575441F3597DA63044514149A61ED719575441507D140A3D445141ADEA5B3D17575441900047053D4451414397879116575441B80761CC3C445141A91244A0165754417B8F2DC03C44514159AE4EE90C5754411ABD1CEC3B4451418E92781EF2565441EA8512A43B445141D97427D5E8565441FDE6763C3C44514121BF6967E75654417F3929443C44514111F9F054E7565441E90F2C583C44514164F2DFDCE656544155A5AB9A3C445141CA8F5185E6565441F399450C3D44514165DEAC74E5565441622F338E3E445141C33701BEE2565441F13792283F44514123F522A8E1565441A00517D1424451417E9D844BDD5654411CC4F701494451419F84C2F2D7565441C01B965E4D44514103558A66D6565441CDD9B17B594451416CE9325AD756544164185CED604451416F4DB8AAD756544176340E9061445141AB332984DC5654414B5A5091614451417E401684DC565441
+</a>
+
+<b>
+010600000002000000010300000001000000400000003E5BF6BA20445141ADD780DFD25654415DFD53781944514153F5C36ED4565441D9C82B70194451411C4420B9D5565441B3E6A767194451417737C305D6565441B9A84E3019445141D72B4F51D85654414AAD8F3F1944514156D04EAAD85654411C385C6E19445141D429143DDE56544193D1C16419445141CFEBF47DE1565441A45A0E6E19445141FB0D86A7E2565441061009281A44514123234988EE565441A2E1B97B1A44514129590C5DF3565441CD0F09C91A445141A6033198FA565441AF5E7BD21A445141DBFD4EDEFA5654415762D3EC1A4451415ED597F0005754419260E9FD1A445141EA55533802575441CB034BA51B4451417BED77CC1557544158DFA7C63C445141C3D6AE111257544194A13BC63C445141A2DB7FBB11575441878604C63C445141A1969F8F1157544189C19AC53C445141E76F683B11575441473E85C43C445141DE9C725E10575441A5409BFB3B44514128709913F45654411ABD1CEC3B4451418E92781EF2565441EA8512A43B445141D97427D5E8565441FDE6763C3C44514121BF6967E75654417F3929443C44514111F9F054E7565441E90F2C583C44514164F2DFDCE656544155A5AB9A3C445141CA8F5185E6565441F0D00ABD3C445141908DD332E6565441F399450C3D44514165DEAC74E5565441DF66DB733D445141EBD338BAE4565441D39FB4023E445141F80AF393E35654418D9D67113F4451410B0BD6D1E1565441F13792283F44514123F522A8E1565441A00517D1424451417E9D844BDD5654411CC4F701494451419F84C2F2D7565441C01B965E4D44514103558A66D6565441CDD9B17B594451416CE9325AD756544164185CED604451416F4DB8AAD7565441226AB58E614451413E4CE279DC56544166A433E5614451416B7E5C4CDC565441CAA4C6F061445141213EAE43DC565441B8D9B4F361445141762CBA44DC565441F2F0E4FE61445141ECC1D63EDC565441B40E453862445141ADD1365DDC56544179D29D61624451419917FB6BDC565441AA140691624451415AB2AC71DC5654419563E91E644451417E132657DC565441A665C4EC6344514188149F57D6565441F7F1D68F634451414FAD1F69CC565441A48567C85F4451414FAD1F69CC5654413EBF51774B445141C6D73FA6CC5654410D742B61434451414E37391DCD5654410442828643445141D1B58CEECC56544103B6054741445141B17AA30ACD56544194F3AB3638445141D1810D8CCE565441AA74220735445141B9B98015CF5654411F8FC0BC32445141197B925FCF5654413945BC3628445141E03B54E4D05654410007F5A1254451416B391CBAD15654414861E64425445141C1E1E6E5D1565441285B05C7244451415E4BF100D25654414DA83D82244451411DE73117D25654413E5BF6BA20445141ADD780DFD2565441010300000001000000040000000442828643445141D1B58CEECC5654418484E5A443445141BDA290C8CC565441034DA96B4344514137BB8BC9CC5654410442828643445141D1B58CEECC565441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981071 - 57852
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000310000004B5A5091614451417E401684DC565441C28D2D9261445141640FA18ADC565441CAA4C6F061445141213EAE43DC56544179D29D61624451419917FB6BDC5654415B8A16A4624451411EDBF673DC5654411066A873634451419917FB6BDC565441722E8B1F64445141FF7D806ADC565441D924BD99634451414FAD1F69CC56544167D5E79E4F4451414FAD1F69CC5654410D742B61434451414E37391DCD56544179E23FF1434451414FAD1F69CC565441400DE98C41445141B11B34F9CC565441AA74220735445141B9B98015CF56544182363DA927445141F304BEC5D05654414861E64425445141C1E1E6E5D156544111D334461244514135027BFAD5565441C560F89B1444514161BE219BDD5654414B1E72F613445141B065835DEB5654418569AFA6154451414C1FD59DED565441BE3E060B1844514187E0F899EE565441EBFDC8B719445141AF97644FF5565441CBE488E618445141990AD65D015754412B2301E717445141006C67CD065754410F93783E16445141D12B37C40A57544153BCBE121644514153918AD20E5754418569AFA615445141323466DF145754411AE767AE1344514142FA18CC19575441AE78531E1344514153C0CBB81E575441F3597DA63044514149A61ED719575441507D140A3D445141ADEA5B3D17575441900047053D4451414397879116575441B80761CC3C445141A91244A0165754417B8F2DC03C44514159AE4EE90C5754411ABD1CEC3B4451418E92781EF2565441EA8512A43B445141D97427D5E8565441FDE6763C3C44514121BF6967E75654417F3929443C44514111F9F054E7565441E90F2C583C44514164F2DFDCE656544155A5AB9A3C445141CA8F5185E6565441F399450C3D44514165DEAC74E5565441622F338E3E445141C33701BEE2565441F13792283F44514123F522A8E1565441A00517D1424451417E9D844BDD5654411CC4F701494451419F84C2F2D7565441C01B965E4D44514103558A66D6565441CDD9B17B594451416CE9325AD756544164185CED604451416F4DB8AAD756544176340E9061445141AB332984DC5654414B5A5091614451417E401684DC565441
+</a>
+
+<b>
+0106000000010000000103000000010000004B000000D742A5C63C4451413D8F9A0F125754412D766C6A36445141410168C7125754412D327FC0344451411149E9F4125754410D24B57532445141D557703A13575441F19EC983304451414943C27213575441950F074E2B4451419BD284081457544128FB58A61B445141F438EBCE155754416B6D703F1B4451416221599B095754415CA8E0301B44514135998241085754414BE350221B44514153DFB4B406575441F82C1D101B4451416632F666045754410A9FC9031B4451411FBED6C0025754412C5931051B445141389F599102575441BE8C73F81A445141521EB33202575441AC6BDEF71A44514173B85C1802575441997A9CF31A4451412BB6FBCF0157544121D410DA1A44514148126049FE56544134C552DE1A44514152EB5F30FD56544121D410DA1A445141D52C92F9FB565441924B01B81A445141CC595B37F856544159783BAB1A4451418B19A1B7F75654417E9009791A445141F60EEEA2F3565441DD9737771A44514147BA5B39F35654417A16585B1A4451411ED968ABF15654418861B5691944514165C74036E2565441B853426B19445141531E0F27E0565441BA53426B194451415A660BE0DD5654415491984719445141544A1582D95654412EE44A3E194451414D07E486D85654417A75E936194451414902E789D856544139298A3619445141B452AD61D8565441CCFF303B194451410514F84BD8565441B49926FF1A445141DA9ACF1AD45654418753D8C615445141E685DE39D556544180600068134451415C6C3ABCD55654413036BF4612445141F0475DFAD556544104114DF91344514164FEC187DB565441C560F89B1444514161BE219BDD5654412390139614445141DB848D18DE56544116C1A827144451413BD13E46E7565441BD18362114445141940575CFE75654416729680414445141394C6B34EA56544117B24B0414445141D0302A37EA565441E1BB2A0414445141617D8639EA5654414B1E72F613445141B065835DEB565441639ABA4C14445141CEB58ED0EB565441AA00A9AB15445141B58AE19FED565441489C36FD174451410B074994EE565441BE3E060B1844514187E0F899EE5654419095813E194451410AC79A69F3565441311A26AF194451419E0C661BF5565441578FE7AD194451413DD6D027F5565441EBFDC8B719445141AF97644FF5565441CBE488E618445141990AD65D015754412B2301E717445141006C67CD065754410F93783E16445141D12B37C40A575441F0CD542416445141BF6FEF300D57544153BCBE121644514153918AD20E575441110525AD15445141B17ED08214575441A5ABF6A615445141E68AFEE31457544181D30D72154451413D2BFA62155754411AE767AE1344514142FA18CC195754418AF32720134451410D507EB81E575441F3597DA63044514149A61ED719575441ADEDC3AA3C4451418EEE5D51175754412F110B073D44514132CF20371757544100254E093D445141F392A32117575441900047053D4451414397879116575441B80761CC3C445141A91244A016575441D6654BCC3C445141F5B70A8F16575441B551F3C53C445141F92BBF8F16575441D2A6E5C93C4451419EF15DA6145754417F90B8C73C445141580BCEEA12575441576FCBC63C4451414596FF2D12575441D742A5C63C4451413D8F9A0F12575441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981071 - 248015
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000310000004B5A5091614451417E401684DC565441C28D2D9261445141640FA18ADC565441CAA4C6F061445141213EAE43DC56544179D29D61624451419917FB6BDC5654415B8A16A4624451411EDBF673DC5654411066A873634451419917FB6BDC565441722E8B1F64445141FF7D806ADC565441D924BD99634451414FAD1F69CC56544167D5E79E4F4451414FAD1F69CC5654410D742B61434451414E37391DCD56544179E23FF1434451414FAD1F69CC565441400DE98C41445141B11B34F9CC565441AA74220735445141B9B98015CF56544182363DA927445141F304BEC5D05654414861E64425445141C1E1E6E5D156544111D334461244514135027BFAD5565441C560F89B1444514161BE219BDD5654414B1E72F613445141B065835DEB5654418569AFA6154451414C1FD59DED565441BE3E060B1844514187E0F899EE565441EBFDC8B719445141AF97644FF5565441CBE488E618445141990AD65D015754412B2301E717445141006C67CD065754410F93783E16445141D12B37C40A57544153BCBE121644514153918AD20E5754418569AFA615445141323466DF145754411AE767AE1344514142FA18CC19575441AE78531E1344514153C0CBB81E575441F3597DA63044514149A61ED719575441507D140A3D445141ADEA5B3D17575441900047053D4451414397879116575441B80761CC3C445141A91244A0165754417B8F2DC03C44514159AE4EE90C5754411ABD1CEC3B4451418E92781EF2565441EA8512A43B445141D97427D5E8565441FDE6763C3C44514121BF6967E75654417F3929443C44514111F9F054E7565441E90F2C583C44514164F2DFDCE656544155A5AB9A3C445141CA8F5185E6565441F399450C3D44514165DEAC74E5565441622F338E3E445141C33701BEE2565441F13792283F44514123F522A8E1565441A00517D1424451417E9D844BDD5654411CC4F701494451419F84C2F2D7565441C01B965E4D44514103558A66D6565441CDD9B17B594451416CE9325AD756544164185CED604451416F4DB8AAD756544176340E9061445141AB332984DC5654414B5A5091614451417E401684DC565441
+</a>
+
+<b>
+0106000000010000000103000000010000003E0000001AE767AE1344514142FA18CC195754416A47A0201344514166AFABA41E5754418214B98013445141C8F887A81E5754414670ED551C445141FB79C2321D5754419A756D8730445141D11341DC195754419483BE2B31445141AFBAE9A619575441BA37B9453144514117C0B1B519575441507D140A3D445141ADEA5B3D17575441B328A8083D4451414BFB700A17575441900047053D4451414397879116575441B94F33ED3C44514146F1C39716575441B80761CC3C445141A91244A0165754410FD7F3C93C4451418BFDA9B1145754416E0D114A33445141B439AFF416575441F7D396F82B445141BC75C097185754419CDCC1D7274451417A649EB018575441C7F8DCE826445141709D57EC1857544143D5DAD215445141E39FA1621B5754415508D409184451415EAB502015575441BC9BDFCD184451418013E5950F5754412B23014B19445141848744000C5754412ED74F371B445141637D858C0757544187299D681B445141490E7BB203575441211C79461C4451419A87E1D2F05654414DC51F5F1C445141BC39A057F0565441F579753516445141B50432BCE85654419C27280416445141D7100367D75654414E72B04027445141BAE6219CD4565441AF000F152944514120F445BED3565441B525C23C374451410EC14C87D1565441EC72E1CA42445141AE32EEB2CF565441DC9E626344445141FD9A72B7CF565441865E1AA149445141332EE2FCCF565441F9F62E90524451418313513ACF565441BC9DF31F6144514140E9B8EDCE565441C694DBB361445141DAD4F1C3D55654415459922662445141C046CCB1DA565441A6F7E44E62445141C046CCB1DA565441FC6E5B6462445141054C81B8DA565441ECAFCB7562445141C046CCB1DA5654413E961B1863445141DBE9DEBDDA56544187932A24644451419E4EEAC6DA565441D924BD99634451414FAD1F69CC56544167D5E79E4F4451414FAD1F69CC5654410D742B61434451414E37391DCD56544179E23FF1434451414FAD1F69CC565441400DE98C41445141B11B34F9CC565441AA74220735445141B9B98015CF56544182363DA927445141F304BEC5D05654414861E64425445141C1E1E6E5D156544111D334461244514135027BFAD5565441C560F89B1444514161BE219BDD5654414B1E72F613445141B065835DEB5654418569AFA6154451414C1FD59DED565441BE3E060B1844514187E0F899EE565441EBFDC8B719445141AF97644FF5565441CBE488E618445141990AD65D015754412B2301E717445141006C67CD065754410F93783E16445141D12B37C40A57544153BCBE121644514153918AD20E5754418569AFA615445141323466DF145754411AE767AE1344514142FA18CC19575441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>334707 - 245921
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000020000000103000000010000003200000052B81EC592115141F6285CCF0A8E54415C8FC2458B115141713D0A97FD8D5441EC51B84E841151415C8FC245F18D5441000000308211514133333383ED8D5441AE47E16A8111514152B81E25EC8D544185EB51E87F1151417B14AE77E98D54413D0AD7237E11514148E17A54E68D5441F6285C1F7D1151418FC2F5C8E68D5441EC51B83E7C115141295C8FD2E48D544148E17A247A115141666666E6E08D5441A4703D1A78115141AE47E15ADD8D54418FC2F5F87411514148E17AF4D78D5441C3F528DC75115141713D0A47D78D544114AE47416B1151417B14AE87C48D54413333335368115141B81E85EBBF8D5441A4703D4A5F115141D7A3706DB58D5441AE47E17A5A115141713D0AF7B08D54417B14AE57571151413D0AD7F3AE8D54410AD7A3A055115141A4703DDAAD8D54418FC2F538521151415C8FC295B28D544133333313511151417B14AE67B48D544185EB5108501151419A9999C9B68D5441713D0A074F11514100000050B98D54418FC2F5784E115141CDCCCCFCBB8D544185EB51B84E115141B81E85DBBE8D54413D0AD7F350115141713D0A17C28D54411F85EB11541151415C8FC235C68D5441CDCCCC9C591151410AD7A340CE8D5441666666C65D115141000000F0D68D5441A4703DFA5811514185EB5168DA8D5441295C8FB2591151413D0AD743DB8D5441EC51B8CE5A1151417B14AE27DD8D5441C3F5284C5C1151411F85EB41E08D5441713D0AA75D115141C3F5287CE38D5441000000306011514185EB5128E98D5441E17A14DE621151415C8FC255EF8D5441295C8FE26411514166666646F48D5441F6285C6F6611514185EB5168F88D54415C8FC275681151410AD7A310FF8D5441CDCCCCFC6C1151410AD7A3A00B8E544185EB51686F115141D7A3701D138E5441295C8F5272115141713D0A371C8E5441AE47E15A7511514133333353268E5441666666E6761151419A9999792B8E54410AD7A3F07E115141C3F5280C2A8E5441295C8F2280115141A4703D9A288E5441A4703DAA9011514114AE4741118E54411F85EB8192115141AE47E16A0E8E5441EC51B85E93115141F6285C7F0C8E544152B81EC592115141F6285CCF0A8E54410103000000010000000B00000066666656831151415C8FC255298E5441C3F5280C921151418FC2F588268E5441F6285C9F9A11514148E17A44258E5441AE47E1BA98115141666666A61D8E54413333332397115141B81E85FB158E544133333333941151415C8FC2C50C8E54413D0AD773931151410AD7A3900E8E54410AD7A3D0901151418FC2F598128E5441EC51B8EE801151410AD7A300298E54411F85EBA180115141F6285CBF298E544166666656831151415C8FC255298E5441
+</a>
+
+<b>
+0106000000010000000103000000010000001700000075695A5B88115141B64278871E8E54412EFBE2FD8511514101A395DD218E5441E8A89CED801151414C436403298E5441B16D6DF0801151415C818604298E544142CAAEA6801151411A3AA2BE298E544166666656831151415C8FC255298E5441D23D0592901151415507F0D0268E5441499C640C911151419DF7A4B9268E5441C3F5280C921151418FC2F588268E5441F6285C9F9A11514148E17A44258E5441EEF208BD99115141AED07FB5218E5441AE47E1BA98115141666666A61D8E5441AD555D50971151412DFCF9D4168E54414BC10C1797115141E6E16CD5158E54414D3B3EA796115141FD22E076148E54410D5ECDCE95115141DFA943D0118E5441793A2A8095115141371EB6D9108E54412B38113394115141423F31C80C8E54417C134CE893115141FA6060790D8E54413D0AD773931151410AD7A3900E8E54410AD7A3D0901151418FC2F598128E54416DF63BF688115141A9BEFBAC1D8E544175695A5B88115141B64278871E8E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>334707 - 368687
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000020000000103000000010000003200000052B81EC592115141F6285CCF0A8E54415C8FC2458B115141713D0A97FD8D5441EC51B84E841151415C8FC245F18D5441000000308211514133333383ED8D5441AE47E16A8111514152B81E25EC8D544185EB51E87F1151417B14AE77E98D54413D0AD7237E11514148E17A54E68D5441F6285C1F7D1151418FC2F5C8E68D5441EC51B83E7C115141295C8FD2E48D544148E17A247A115141666666E6E08D5441A4703D1A78115141AE47E15ADD8D54418FC2F5F87411514148E17AF4D78D5441C3F528DC75115141713D0A47D78D544114AE47416B1151417B14AE87C48D54413333335368115141B81E85EBBF8D5441A4703D4A5F115141D7A3706DB58D5441AE47E17A5A115141713D0AF7B08D54417B14AE57571151413D0AD7F3AE8D54410AD7A3A055115141A4703DDAAD8D54418FC2F538521151415C8FC295B28D544133333313511151417B14AE67B48D544185EB5108501151419A9999C9B68D5441713D0A074F11514100000050B98D54418FC2F5784E115141CDCCCCFCBB8D544185EB51B84E115141B81E85DBBE8D54413D0AD7F350115141713D0A17C28D54411F85EB11541151415C8FC235C68D5441CDCCCC9C591151410AD7A340CE8D5441666666C65D115141000000F0D68D5441A4703DFA5811514185EB5168DA8D5441295C8FB2591151413D0AD743DB8D5441EC51B8CE5A1151417B14AE27DD8D5441C3F5284C5C1151411F85EB41E08D5441713D0AA75D115141C3F5287CE38D5441000000306011514185EB5128E98D5441E17A14DE621151415C8FC255EF8D5441295C8FE26411514166666646F48D5441F6285C6F6611514185EB5168F88D54415C8FC275681151410AD7A310FF8D5441CDCCCCFC6C1151410AD7A3A00B8E544185EB51686F115141D7A3701D138E5441295C8F5272115141713D0A371C8E5441AE47E15A7511514133333353268E5441666666E6761151419A9999792B8E54410AD7A3F07E115141C3F5280C2A8E5441295C8F2280115141A4703D9A288E5441A4703DAA9011514114AE4741118E54411F85EB8192115141AE47E16A0E8E5441EC51B85E93115141F6285C7F0C8E544152B81EC592115141F6285CCF0A8E54410103000000010000000B00000066666656831151415C8FC255298E5441C3F5280C921151418FC2F588268E5441F6285C9F9A11514148E17A44258E5441AE47E1BA98115141666666A61D8E54413333332397115141B81E85FB158E544133333333941151415C8FC2C50C8E54413D0AD773931151410AD7A3900E8E54410AD7A3D0901151418FC2F598128E5441EC51B8EE801151410AD7A300298E54411F85EBA180115141F6285CBF298E544166666656831151415C8FC255298E5441
+</a>
+
+<b>
+0106000000010000000103000000010000001700000075695A5B88115141B64278871E8E54412EFBE2FD8511514101A395DD218E5441E8A89CED801151414C436403298E5441B16D6DF0801151415C818604298E544142CAAEA6801151411A3AA2BE298E544166666656831151415C8FC255298E5441D23D0592901151415507F0D0268E5441499C640C911151419DF7A4B9268E5441C3F5280C921151418FC2F588268E5441F6285C9F9A11514148E17A44258E5441EEF208BD99115141AED07FB5218E5441AE47E1BA98115141666666A61D8E5441AD555D50971151412DFCF9D4168E54414BC10C1797115141E6E16CD5158E54414D3B3EA796115141FD22E076148E54410D5ECDCE95115141DFA943D0118E5441793A2A8095115141371EB6D9108E54412B38113394115141423F31C80C8E54417C134CE893115141FA6060790D8E54413D0AD773931151410AD7A3900E8E54410AD7A3D0901151418FC2F598128E54416DF63BF688115141A9BEFBAC1D8E544175695A5B88115141B64278871E8E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981501 - 3186204
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000004A00000022FAB55EBD9B5041EFB51AEC5C1354411F85EB81B99B50410AD7A3C05E1354411F85EB31B49B504185EB51885F135441D7A3700DA99B50411F85EB316A13544114AE4771A59B50410AD7A3006D135441A4703D2A9C9B5041F6285C5F6F13544114AE4731989B5041000000F07013544148E17AA4969B50410AD7A33071135441CDCCCC2C959B5041EC51B88E7113544152B81ED5929B504152B81ED5721354418FC2F558909B5041B81E85DB74135441E17A14CE8D9B50413D0AD7B37513544148E17A448C9B5041AE47E16A761354411F85EBB18A9B5041D7A3706D771354413D0AD7A3899B5041295C8F6278135441B81E858B899B5041D7A370CD78135441CDCCCCCC8A9B5041666666C6791354419A9999E98B9B50411F85EBF17A1354418FC2F5888C9B504152B81EF57B135441A4703DCA8C9B5041295C8FE27C1354418FC2F5E88C9B50417B14AE177E135441CDCCCCCC8C9B50413D0AD7037F1354417B14AE978C9B5041E17A145E7F13544114AE47918B9B5041295C8FE27F1354417B14AEE78A9B5041AE47E15A80135441F6285C2F8A9B504152B81E758413544133333363939B50418FC2F5288A13544185EB51E8989B50415C8FC2C58D135441D7A3705DB09B50413D0AD7139F135441D7A3706DB29B5041C3F528BCA013544114AE4731BC9B504114AE47F1A91354415C8FC245C39B5041000000F0B01354418FC2F558C99B5041AE47E1AAB6135441E17A14DECF9B5041D7A3707DBD13544152B81E65D39B50418FC2F548C113544185EB5118D89B5041E17A141EC6135441E17A147EDD9B504152B81EE5CB1354418FC2F5B8DE9B5041EC51B84ECD1354410AD7A390DE9B5041AE47E1DACD135441666666C6E29B50418FC2F5F8CD135441C3F528CCEC9B50413D0AD743CC135441B81E852BED9B504114AE4741C5135441713D0AD7ED9B5041713D0A17C1135441D7A3709DF19B50410AD7A3E0BB1354419A999989ED9B50419A999989B8135441EC51B86EEA9B50415C8FC255B71354419A9999B9E79B504100000000B71354415C8FC215E59B50411F85EB21B6135441A4703DEAE29B504152B81EE5B4135441CC518113E19B504126212019B2135441CDCCCC3CDE9B50410AD7A340B0135441AE47E1AADC9B50413D0AD713AD135441A7E91013DA9B50415A8E8278A4135441F3FDD666D09B5041F8E5C68F9D135441F8D13E51BF9B50419673905C8E135441F219BDB4C09B5041FA7442065E135441ACF3FDB2C09B50410C7431DA591354417872B44EBD9B504114D8F559401354417410CF1FAB9B504158A4CFD53C1354418E71AC6DA99B5041FAB78BD43B1354414F4B031CA89B504128AFFC0039135441F58F9597A49B50414210DA4E37135441AB39E574A29B504176067CCF371354411EBCBC54A29B504134DD657A40135441FAF452F9A59B504199C8DACF4413544173765B2DA99B50414B0BCFF347135441F1C2ADD0AB9B50410CE525A2461354416F0F0074AE9B5041470A00484B1354411C53C343AE9B50416CCFCB4B4E135441D9C5BE38B29B5041496C50A656135441A6CD7E60B89B5041EC19809757135441487BAE51B99B50410114022C5B135441447ADFA5BC9B5041FCAE44CA5913544122FAB55EBD9B5041EFB51AEC5C135441
+</a>
+
+<b>
+01060000000100000001030000000100000026000000C3F528CCEC9B50413D0AD743CC135441699AA8E6EC9B504112122B51CA13544172EC9AE6EC9B50418B2DA021CA135441EABD73F9EC9B5041AA407FEFC8135441BF422E32ED9B504107D0DF17C513544115F15584ED9B504155168426C31354418A5264D2ED9B50419C7BCB35C1135441D7A3709DF19B50410AD7A3E0BB13544158D89D0AEF9B5041FAC7929EB7135441FFB6DE7EEA9B5041C398C1A6B513544167EE324DE79B50414CCBEB44B51354414B1F92ECE49B5041647496BCB41354411C4CFCBBE29B50411AB67F44B3135441597E3912E19B504141ABD936B2135441E59B024BDE9B504123D85D51B0135441F9AD8717DE9B504127E644F5AF13544158E3B8A3DC9B5041C7ACD2F4AC1354411BC93F8FDB9B5041619F0724A8135441DA7A8466DB9B5041647F0B7AA31354417ADFB801D49B50412A2AD1BA9F1354417A873B4DD39B504199CDF2E39E1354415F9BCD63D09B504117612F9D9B135441A9FB552ACB9B5041080BC2309E135441F31E55DAC69B5041E4BB6962A0135441FDB21D9CC29B504160DF9127A31354416AAF3553BE9B50412902B12CA713544136CC654EBC9B5041BD0F470EAA1354416E8EF9B5C29B504192E9F061B0135441B7BF1612C89B504107699276B513544178C238C4CD9B50417A9DA04ABB135441BA4959FDD09B5041C93F7EB2BE135441D486F4A6D59B5041C3D0159BC3135441C49E9DE4D89B5041EE3BC2F8C61354413A9556ACDA9B50418CC190E0C81354418FC2F5B8DE9B5041EC51B84ECD1354410AD7A390DE9B5041AE47E1DACD135441666666C6E29B50418FC2F5F8CD135441C3F528CCEC9B50413D0AD743CC135441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981501 - 3591106
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000004A00000022FAB55EBD9B5041EFB51AEC5C1354411F85EB81B99B50410AD7A3C05E1354411F85EB31B49B504185EB51885F135441D7A3700DA99B50411F85EB316A13544114AE4771A59B50410AD7A3006D135441A4703D2A9C9B5041F6285C5F6F13544114AE4731989B5041000000F07013544148E17AA4969B50410AD7A33071135441CDCCCC2C959B5041EC51B88E7113544152B81ED5929B504152B81ED5721354418FC2F558909B5041B81E85DB74135441E17A14CE8D9B50413D0AD7B37513544148E17A448C9B5041AE47E16A761354411F85EBB18A9B5041D7A3706D771354413D0AD7A3899B5041295C8F6278135441B81E858B899B5041D7A370CD78135441CDCCCCCC8A9B5041666666C6791354419A9999E98B9B50411F85EBF17A1354418FC2F5888C9B504152B81EF57B135441A4703DCA8C9B5041295C8FE27C1354418FC2F5E88C9B50417B14AE177E135441CDCCCCCC8C9B50413D0AD7037F1354417B14AE978C9B5041E17A145E7F13544114AE47918B9B5041295C8FE27F1354417B14AEE78A9B5041AE47E15A80135441F6285C2F8A9B504152B81E758413544133333363939B50418FC2F5288A13544185EB51E8989B50415C8FC2C58D135441D7A3705DB09B50413D0AD7139F135441D7A3706DB29B5041C3F528BCA013544114AE4731BC9B504114AE47F1A91354415C8FC245C39B5041000000F0B01354418FC2F558C99B5041AE47E1AAB6135441E17A14DECF9B5041D7A3707DBD13544152B81E65D39B50418FC2F548C113544185EB5118D89B5041E17A141EC6135441E17A147EDD9B504152B81EE5CB1354418FC2F5B8DE9B5041EC51B84ECD1354410AD7A390DE9B5041AE47E1DACD135441666666C6E29B50418FC2F5F8CD135441C3F528CCEC9B50413D0AD743CC135441B81E852BED9B504114AE4741C5135441713D0AD7ED9B5041713D0A17C1135441D7A3709DF19B50410AD7A3E0BB1354419A999989ED9B50419A999989B8135441EC51B86EEA9B50415C8FC255B71354419A9999B9E79B504100000000B71354415C8FC215E59B50411F85EB21B6135441A4703DEAE29B504152B81EE5B4135441CC518113E19B504126212019B2135441CDCCCC3CDE9B50410AD7A340B0135441AE47E1AADC9B50413D0AD713AD135441A7E91013DA9B50415A8E8278A4135441F3FDD666D09B5041F8E5C68F9D135441F8D13E51BF9B50419673905C8E135441F219BDB4C09B5041FA7442065E135441ACF3FDB2C09B50410C7431DA591354417872B44EBD9B504114D8F559401354417410CF1FAB9B504158A4CFD53C1354418E71AC6DA99B5041FAB78BD43B1354414F4B031CA89B504128AFFC0039135441F58F9597A49B50414210DA4E37135441AB39E574A29B504176067CCF371354411EBCBC54A29B504134DD657A40135441FAF452F9A59B504199C8DACF4413544173765B2DA99B50414B0BCFF347135441F1C2ADD0AB9B50410CE525A2461354416F0F0074AE9B5041470A00484B1354411C53C343AE9B50416CCFCB4B4E135441D9C5BE38B29B5041496C50A656135441A6CD7E60B89B5041EC19809757135441487BAE51B99B50410114022C5B135441447ADFA5BC9B5041FCAE44CA5913544122FAB55EBD9B5041EFB51AEC5C135441
+</a>
+
+<b>
+01060000000100000001030000000100000026000000C3F528CCEC9B50413D0AD743CC135441699AA8E6EC9B504112122B51CA13544172EC9AE6EC9B50418B2DA021CA135441EABD73F9EC9B5041AA407FEFC8135441BF422E32ED9B504107D0DF17C513544115F15584ED9B504155168426C31354418A5264D2ED9B50419C7BCB35C1135441D7A3709DF19B50410AD7A3E0BB13544158D89D0AEF9B5041FAC7929EB7135441FFB6DE7EEA9B5041C398C1A6B513544167EE324DE79B50414CCBEB44B51354414B1F92ECE49B5041647496BCB41354411C4CFCBBE29B50411AB67F44B3135441597E3912E19B504141ABD936B2135441E59B024BDE9B504123D85D51B0135441F9AD8717DE9B504127E644F5AF13544158E3B8A3DC9B5041C7ACD2F4AC1354411BC93F8FDB9B5041619F0724A8135441DA7A8466DB9B5041647F0B7AA31354417ADFB801D49B50412A2AD1BA9F1354417A873B4DD39B504199CDF2E39E1354415F9BCD63D09B504117612F9D9B135441A9FB552ACB9B5041080BC2309E135441F31E55DAC69B5041E4BB6962A0135441FDB21D9CC29B504160DF9127A31354416AAF3553BE9B50412902B12CA713544136CC654EBC9B5041BD0F470EAA1354416E8EF9B5C29B504192E9F061B0135441B7BF1612C89B504107699276B513544178C238C4CD9B50417A9DA04ABB135441BA4959FDD09B5041C93F7EB2BE135441D486F4A6D59B5041C3D0159BC3135441C49E9DE4D89B5041EE3BC2F8C61354413A9556ACDA9B50418CC190E0C81354418FC2F5B8DE9B5041EC51B84ECD1354410AD7A390DE9B5041AE47E1DACD135441666666C6E29B50418FC2F5F8CD135441C3F528CCEC9B50413D0AD743CC135441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981501 - 302576
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000004A00000022FAB55EBD9B5041EFB51AEC5C1354411F85EB81B99B50410AD7A3C05E1354411F85EB31B49B504185EB51885F135441D7A3700DA99B50411F85EB316A13544114AE4771A59B50410AD7A3006D135441A4703D2A9C9B5041F6285C5F6F13544114AE4731989B5041000000F07013544148E17AA4969B50410AD7A33071135441CDCCCC2C959B5041EC51B88E7113544152B81ED5929B504152B81ED5721354418FC2F558909B5041B81E85DB74135441E17A14CE8D9B50413D0AD7B37513544148E17A448C9B5041AE47E16A761354411F85EBB18A9B5041D7A3706D771354413D0AD7A3899B5041295C8F6278135441B81E858B899B5041D7A370CD78135441CDCCCCCC8A9B5041666666C6791354419A9999E98B9B50411F85EBF17A1354418FC2F5888C9B504152B81EF57B135441A4703DCA8C9B5041295C8FE27C1354418FC2F5E88C9B50417B14AE177E135441CDCCCCCC8C9B50413D0AD7037F1354417B14AE978C9B5041E17A145E7F13544114AE47918B9B5041295C8FE27F1354417B14AEE78A9B5041AE47E15A80135441F6285C2F8A9B504152B81E758413544133333363939B50418FC2F5288A13544185EB51E8989B50415C8FC2C58D135441D7A3705DB09B50413D0AD7139F135441D7A3706DB29B5041C3F528BCA013544114AE4731BC9B504114AE47F1A91354415C8FC245C39B5041000000F0B01354418FC2F558C99B5041AE47E1AAB6135441E17A14DECF9B5041D7A3707DBD13544152B81E65D39B50418FC2F548C113544185EB5118D89B5041E17A141EC6135441E17A147EDD9B504152B81EE5CB1354418FC2F5B8DE9B5041EC51B84ECD1354410AD7A390DE9B5041AE47E1DACD135441666666C6E29B50418FC2F5F8CD135441C3F528CCEC9B50413D0AD743CC135441B81E852BED9B504114AE4741C5135441713D0AD7ED9B5041713D0A17C1135441D7A3709DF19B50410AD7A3E0BB1354419A999989ED9B50419A999989B8135441EC51B86EEA9B50415C8FC255B71354419A9999B9E79B504100000000B71354415C8FC215E59B50411F85EB21B6135441A4703DEAE29B504152B81EE5B4135441CC518113E19B504126212019B2135441CDCCCC3CDE9B50410AD7A340B0135441AE47E1AADC9B50413D0AD713AD135441A7E91013DA9B50415A8E8278A4135441F3FDD666D09B5041F8E5C68F9D135441F8D13E51BF9B50419673905C8E135441F219BDB4C09B5041FA7442065E135441ACF3FDB2C09B50410C7431DA591354417872B44EBD9B504114D8F559401354417410CF1FAB9B504158A4CFD53C1354418E71AC6DA99B5041FAB78BD43B1354414F4B031CA89B504128AFFC0039135441F58F9597A49B50414210DA4E37135441AB39E574A29B504176067CCF371354411EBCBC54A29B504134DD657A40135441FAF452F9A59B504199C8DACF4413544173765B2DA99B50414B0BCFF347135441F1C2ADD0AB9B50410CE525A2461354416F0F0074AE9B5041470A00484B1354411C53C343AE9B50416CCFCB4B4E135441D9C5BE38B29B5041496C50A656135441A6CD7E60B89B5041EC19809757135441487BAE51B99B50410114022C5B135441447ADFA5BC9B5041FCAE44CA5913544122FAB55EBD9B5041EFB51AEC5C135441
+</a>
+
+<b>
+010600000001000000010300000001000000330000000AD7A390DE9B5041AE47E1DACD135441B045BDE8DF9B504134442CE3CD1354419D047E12E09B50413427A6E5CD135441666666C6E29B50418FC2F5F8CD135441C3F528CCEC9B50413D0AD743CC135441699AA8E6EC9B504112122B51CA13544172EC9AE6EC9B50418B2DA021CA135441EABD73F9EC9B5041AA407FEFC8135441BF422E32ED9B504107D0DF17C51354414F29C33DED9B50419E98C2D1C41354418A5264D2ED9B50419C7BCB35C1135441D7A3709DF19B50410AD7A3E0BB13544158D89D0AEF9B5041FAC7929EB7135441FFB6DE7EEA9B5041C398C1A6B5135441C4569DFBE99B504178280D97B513544167EE324DE79B50414CCBEB44B51354414B1F92ECE49B5041647496BCB413544123118E6FE29B5041F4C31714B3135441597E3912E19B504141ABD936B2135441E59B024BDE9B504123D85D51B0135441F9AD8717DE9B504127E644F5AF13544158E3B8A3DC9B5041C7ACD2F4AC1354411BC93F8FDB9B5041619F0724A8135441FBDB2B80DB9B5041DFEE0B6AA6135441DA7A8466DB9B5041647F0B7AA31354417ADFB801D49B50412A2AD1BA9F1354415F9BCD63D09B504117612F9D9B135441E5C4EB45CE9B50410A266AA89C1354410C038618CA9B5041E2F10EBC9E135441EFBE3E53C69B50414E7C9BBAA0135441FDB21D9CC29B504160DF9127A31354416AAF3553BE9B50412902B12CA713544136CC654EBC9B5041BD0F470EAA135441470443EEBD9B50419B63EBA8AB13544176400836C29B504120D588E3AF135441C732890AC49B5041C689C2A4B1135441B7BF1612C89B504107699276B51354413DD26CC1C89B50414BBBFC29B61354415BC15E14CA9B5041AD33FC6EB7135441993CEAF4CC9B50410DD9B371BA13544144E79990CD9B5041A052CE15BB13544178C238C4CD9B50417A9DA04ABB1354411C51BC2CD09B5041B03110D6BD135441FB03A2E4D09B50418C29E797BE135441D402980FD79B50415009E40DC51354411AB7B816D89B50419C85EB22C6135441C49E9DE4D89B5041EE3BC2F8C613544158E18B8BD99B5041DE1C71ABC71354413A9556ACDA9B50418CC190E0C81354418FC2F5B8DE9B5041EC51B84ECD1354410AD7A390DE9B5041AE47E1DACD135441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608167 - 201838
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000002500000085D6F9F636A15041022AF6F425555541A2FCE15B37A15041E7AEAB9925555541EC51B84E38A15041AE47E1BA24555541AE47E18A3AA15041E17A14AE22555541956E12533DA150415382EB2020555541C1C789A439A15041B9E567671F555541C85216121AA150410603DD7119555541316492F6F4A0504163D1977A11555541CE4AC1EBF1A05041791D14B811555541DA9D62C2EFA0504179BBD4AD11555541404ED846ECA050414D499A511155554171EDFE77E1A050417A4AF76F0F5555410ED42D6DDEA0504159FE7A320F555541EC51B8CEDEA05041EC51B86E0D5555419A9999E9DBA050418FC2F5E80C5555416C1D3F60D6A05041741A967A37555541B85B9286D8A05041619BA0883A555541333333B3D8A05041295C8F1239555541CDCCCC2CD9A050418FC2F5183555554185EB5168D9A050413D0AD72333555541D7A3709DD9A050416666666631555541ACAB0542F8A050416362DF073A555541A4703D5AF8A050411F85EB013A555541F8D5F5ECFAA050411E59486939555541D2CB019A00A15041873812C837555541F6285C2FDAA05041D7A3709D2C555541713D0A57DAA050411F85EB512B55554133333383DAA05041E17A14DE29555541E17A14DEDAA0504114AE47E126555541CDCCCC2CDBA05041EC51B84E245555413D0AD753DBA0504152B81E052355554152B81E85DBA0504185EB51682155554152B81EE5DCA0504185EB51F815555541D7A3702DDDA05041AE47E1EA1355554112D0EF9BEFA05041B0645C4918555541F4B3628034A150417E60CDFC2655554185D6F9F636A15041022AF6F425555541
+</a>
+
+<b>
+01060000000100000001030000000100000006000000A73B59EED8A05041BF739423375555415C3970BCD8A05041C2D73FC538555541EF1D0A60E9A050413BB385693D55554157393CBAF0A05041789F8FD23B55554168A8CC2CD9A0504123F3F61835555541A73B59EED8A05041BF73942337555541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>660763 - 660762
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002B000000A88B90F506DB50418E36B9EBEBD75441E17A14BE03DB5041A4703D8AF4D75441474AE9D502DB50411525F356F6D7544169A71F8A02DB5041BF8C6F16F7D75441D614438201DB504122F7F0F8F8D75441E17A14BEFFDA5041A4703D7AFCD75441DAF6B02AFDDA504143E59EE400D85441E7212F5BFBDA50410855E70704D85441EBDC86E2F3DA50411D6A8F6711D85441CF1D1415EFDA5041CCEBE9361BD854417B14AEF7EEDA504152B81E751BD854415C8FC2C5DEDA5041EC51B88E19D85441F0FF93ECDCDA5041936B3F3023D854416DF505E4E2DA50413F104D7C24D854411B112822E6DA5041E7C631E421D85441A76E1CE5E9DA5041070E4B6D1FD8544167E0E9D2EEDA5041275564F61CD85441B0C1829FF3DA5041587B143D1AD85441F9A21B6CF8DA50410032F9A417D85441B914E959FDDA504174D404E213D854417A86B64702DB504170E6DBFD0FD854418E5376E905DB5041F5677EF80BD85441A1A9219907DB504115AF978109D854411AB16AAC09DB5041EC14183E02D854411C287F9E0BDB5041086E08E3FBD75441289F93900DDB50413B94B829F9D75441A12FC8B10DDB5041FB1AA228F2D754415EB36CBB0EDB50415979D9D1E8D754412A16A8820FDB5041E4FA7BCCE4D754414DD4D5FD0EDB50410E212C13E2D7544187DC498AF0DA50410CF56D09DAD754411F85EBB1EADA5041713D0A97D8D75441F6285C8FE5DA50415C8FC265D7D7544161AEC910E5DA5041CAB452ACDDD75441A8A24974EADA50410124EFD9DED754412012F76EEBDA50414AE4BD10DFD75441E17A142EF6DA5041A4703D6AE1D7544173AFDCD5F6DA5041983049A3E1D75441641D9B88FFDA5041E78A3682E4D75441E17A143E06DB5041A4703D9AE6D7544172BB1A7008DB504196374D69E7D75441E17A149E08DB5041A4703D7AE7D75441A88B90F506DB50418E36B9EBEBD75441
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000005C8FC2C5DEDA5041EC51B88E19D854417B14AEF7EEDA504152B81E751BD85441E17A14CEF2DA50416666665613D85441E17A14CEFBDA5041A4703D3A03D85441E17A14BEFFDA5041A4703D7AFCD75441E17A14BE03DB5041A4703D8AF4D75441E17A149E08DB5041A4703D7AE7D75441E17A143E06DB5041A4703D9AE6D75441E17A146EFCDA5041A4703D8AE3D75441E17A142EF6DA5041A4703D6AE1D75441E17A14BEE4DA5041A4703D9ADDD75441E17A140EE4DA5041A4703DEAE0D75441E17A14EEE3DA5041A4703DCAE4D75441E17A140EE4DA5041A4703D6AE7D75441BE548EB6E4DA50412B605254E9D75441F93165B0E9DA5041CA3A2A7EEBD75441CEA54ECDF1DA50410FA08B85EED75441A6F11044F9DA50415405ED8CF1D754418F750F7CFDDA5041A01A0048F3D7544124C85C9801DB504197FE61E7F4D754417CD1E60D01DB5041E7EB4DFCF5D75441AE0DAFA4F7DA5041A55EC54EF2D75441340F3CAAEEDA5041B802EEBCEED75441BCE8A109E5DA50412244B4F3EAD75441E17A142EE5DA5041A4703DFAF1D75441E17A144EE5DA5041A4703D9AF8D75441E17A147EE4DA5041A4703DCAFDD75441E17A14CEE3DA5041A4703DDA02D85441E17A148EE1DA5041A4703D9A0DD85441E17A14BEDFDA5041A4703D1A16D854415C8FC2C5DEDA5041EC51B88E19D85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>660763 - 1506278
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002B000000A88B90F506DB50418E36B9EBEBD75441E17A14BE03DB5041A4703D8AF4D75441474AE9D502DB50411525F356F6D7544169A71F8A02DB5041BF8C6F16F7D75441D614438201DB504122F7F0F8F8D75441E17A14BEFFDA5041A4703D7AFCD75441DAF6B02AFDDA504143E59EE400D85441E7212F5BFBDA50410855E70704D85441EBDC86E2F3DA50411D6A8F6711D85441CF1D1415EFDA5041CCEBE9361BD854417B14AEF7EEDA504152B81E751BD854415C8FC2C5DEDA5041EC51B88E19D85441F0FF93ECDCDA5041936B3F3023D854416DF505E4E2DA50413F104D7C24D854411B112822E6DA5041E7C631E421D85441A76E1CE5E9DA5041070E4B6D1FD8544167E0E9D2EEDA5041275564F61CD85441B0C1829FF3DA5041587B143D1AD85441F9A21B6CF8DA50410032F9A417D85441B914E959FDDA504174D404E213D854417A86B64702DB504170E6DBFD0FD854418E5376E905DB5041F5677EF80BD85441A1A9219907DB504115AF978109D854411AB16AAC09DB5041EC14183E02D854411C287F9E0BDB5041086E08E3FBD75441289F93900DDB50413B94B829F9D75441A12FC8B10DDB5041FB1AA228F2D754415EB36CBB0EDB50415979D9D1E8D754412A16A8820FDB5041E4FA7BCCE4D754414DD4D5FD0EDB50410E212C13E2D7544187DC498AF0DA50410CF56D09DAD754411F85EBB1EADA5041713D0A97D8D75441F6285C8FE5DA50415C8FC265D7D7544161AEC910E5DA5041CAB452ACDDD75441A8A24974EADA50410124EFD9DED754412012F76EEBDA50414AE4BD10DFD75441E17A142EF6DA5041A4703D6AE1D7544173AFDCD5F6DA5041983049A3E1D75441641D9B88FFDA5041E78A3682E4D75441E17A143E06DB5041A4703D9AE6D7544172BB1A7008DB504196374D69E7D75441E17A149E08DB5041A4703D7AE7D75441A88B90F506DB50418E36B9EBEBD75441
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000005C8FC2C5DEDA5041EC51B88E19D854417B14AEF7EEDA504152B81E751BD85441E17A14CEF2DA50416666665613D85441E17A14CEFBDA5041A4703D3A03D85441E17A14BEFFDA5041A4703D7AFCD75441E17A14BE03DB5041A4703D8AF4D75441E17A149E08DB5041A4703D7AE7D75441E17A143E06DB5041A4703D9AE6D75441E17A146EFCDA5041A4703D8AE3D75441E17A142EF6DA5041A4703D6AE1D75441E17A14BEE4DA5041A4703D9ADDD75441E17A140EE4DA5041A4703DEAE0D75441E17A14EEE3DA5041A4703DCAE4D75441E17A140EE4DA5041A4703D6AE7D75441C2548EB6E4DA50412A605254E9D75441FE3165B0E9DA5041C73A2A7EEBD75441CBA54ECDF1DA504112A08B85EED75441AAF11044F9DA50415105ED8CF1D7544194750F7CFDDA5041A21A0048F3D7544122C85C9801DB504198FE61E7F4D754417BD1E60D01DB5041E6EB4DFCF5D75441AA0DAFA4F7DA5041A45EC54EF2D75441300F3CAAEEDA5041BD02EEBCEED75441BEE8A109E5DA50412044B4F3EAD75441E17A142EE5DA5041A4703DFAF1D75441E17A144EE5DA5041A4703D9AF8D75441E17A147EE4DA5041A4703DCAFDD75441E17A14CEE3DA5041A4703DDA02D85441E17A148EE1DA5041A4703D9A0DD85441E17A14BEDFDA5041A4703D1A16D854415C8FC2C5DEDA5041EC51B88E19D85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>660763 - 4182829
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002B000000A88B90F506DB50418E36B9EBEBD75441E17A14BE03DB5041A4703D8AF4D75441474AE9D502DB50411525F356F6D7544169A71F8A02DB5041BF8C6F16F7D75441D614438201DB504122F7F0F8F8D75441E17A14BEFFDA5041A4703D7AFCD75441DAF6B02AFDDA504143E59EE400D85441E7212F5BFBDA50410855E70704D85441EBDC86E2F3DA50411D6A8F6711D85441CF1D1415EFDA5041CCEBE9361BD854417B14AEF7EEDA504152B81E751BD854415C8FC2C5DEDA5041EC51B88E19D85441F0FF93ECDCDA5041936B3F3023D854416DF505E4E2DA50413F104D7C24D854411B112822E6DA5041E7C631E421D85441A76E1CE5E9DA5041070E4B6D1FD8544167E0E9D2EEDA5041275564F61CD85441B0C1829FF3DA5041587B143D1AD85441F9A21B6CF8DA50410032F9A417D85441B914E959FDDA504174D404E213D854417A86B64702DB504170E6DBFD0FD854418E5376E905DB5041F5677EF80BD85441A1A9219907DB504115AF978109D854411AB16AAC09DB5041EC14183E02D854411C287F9E0BDB5041086E08E3FBD75441289F93900DDB50413B94B829F9D75441A12FC8B10DDB5041FB1AA228F2D754415EB36CBB0EDB50415979D9D1E8D754412A16A8820FDB5041E4FA7BCCE4D754414DD4D5FD0EDB50410E212C13E2D7544187DC498AF0DA50410CF56D09DAD754411F85EBB1EADA5041713D0A97D8D75441F6285C8FE5DA50415C8FC265D7D7544161AEC910E5DA5041CAB452ACDDD75441A8A24974EADA50410124EFD9DED754412012F76EEBDA50414AE4BD10DFD75441E17A142EF6DA5041A4703D6AE1D7544173AFDCD5F6DA5041983049A3E1D75441641D9B88FFDA5041E78A3682E4D75441E17A143E06DB5041A4703D9AE6D7544172BB1A7008DB504196374D69E7D75441E17A149E08DB5041A4703D7AE7D75441A88B90F506DB50418E36B9EBEBD75441
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000005C8FC2C5DEDA5041EC51B88E19D854417B14AEF7EEDA504152B81E751BD85441E17A14CEF2DA50416666665613D85441E17A14CEFBDA5041A4703D3A03D85441E17A14BEFFDA5041A4703D7AFCD75441E17A14BE03DB5041A4703D8AF4D75441E17A149E08DB5041A4703D7AE7D75441E17A143E06DB5041A4703D9AE6D75441E17A146EFCDA5041A4703D8AE3D75441E17A142EF6DA5041A4703D6AE1D75441E17A14BEE4DA5041A4703D9ADDD75441E17A140EE4DA5041A4703DEAE0D75441E17A14EEE3DA5041A4703DCAE4D75441E17A140EE4DA5041A4703D6AE7D75441C2548EB6E4DA50412A605254E9D75441FE3165B0E9DA5041C73A2A7EEBD75441CBA54ECDF1DA504112A08B85EED75441AAF11044F9DA50415105ED8CF1D7544194750F7CFDDA5041A21A0048F3D7544122C85C9801DB504198FE61E7F4D754417BD1E60D01DB5041E6EB4DFCF5D75441AA0DAFA4F7DA5041A45EC54EF2D75441300F3CAAEEDA5041BD02EEBCEED75441BEE8A109E5DA50412044B4F3EAD75441E17A142EE5DA5041A4703DFAF1D75441E17A144EE5DA5041A4703D9AF8D75441E17A147EE4DA5041A4703DCAFDD75441E17A14CEE3DA5041A4703DDA02D85441E17A148EE1DA5041A4703D9A0DD85441E17A14BEDFDA5041A4703D1A16D854415C8FC2C5DEDA5041EC51B88E19D85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608155 - 53169
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000016000000E17A14AE52A450413D0AD7D3F452554152B81E3549A4504114AE4711F452554114AE473142A45041F6285C2F18535541000000E048A450415C8FC2B51953554185EB51384BA45041CDCCCC3C1B535541EC51B80E52A450410AD7A3B01F535541D7A370BD5CA45041713D0AE721535541CDCCCC2C63A4504133333363255355418FC2F5C865A4504185EB5148255355419A99996966A450415C8FC2E5215355410AD7A3B065A4504152B81EC5195355418FC2F5F863A450410AD7A3400F535541666666B662A450413D0AD7E30C535541295C8FA262A450419A9999D90453554152B81E1563A45041C3F528ECFB52554148E17AA462A45041EC51B8CEF2525541EC51B85E61A450415C8FC2B5F2525541EC51B87E5FA45041F6285C3FF452554152B81E355DA45041EC51B80EF5525541AE47E17A5AA4504185EB5118F55255413D0AD7A356A4504152B81E25F5525541E17A14AE52A450413D0AD7D3F4525541
+</a>
+
+<b>
+0106000000010000000103000000010000000B00000085EB51384BA45041CDCCCC3C1B5355414B78C8AC4DA45041C72AF9980E53554117776FA052A45041164318E8F452554161B730524CA4504111123B51F452554119E093804BA4504191BD6940F452554177CFB50A4BA45041ADCEF436F45255410FEB8F3549A450416C8DB719F45255411EB3DB1748A450410356FBCDF952554114AE473142A45041F6285C2F18535541000000E048A450415C8FC2B51953554185EB51384BA45041CDCCCC3C1B535541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981627 - 3014303
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000002C0000003D0AD7D3B5A650415C8FC225FB19554185EB5158B5A65041B81E855BFB195541295C8FB2B4A650410AD7A3B0FC195541CDCCCC0CB5A65041AE47E1CAFC19554185EB5158B2A65041000000D0041A5541EC51B8FEB0A65041295C8FE20C1A5541C3F5280CB2A650417B14AE07131A5541295C8F32B7A65041295C8F42221A55413D0AD733B9A650417B14AE87301A554133333313BAA6504148E17A74301A55417B14AE27B8A6504185EB51F8211A5541666666D6B2A65041E17A14CE121A5541D7A370DDB1A65041CDCCCCDC0C1A5541F6285C1FB3A6504100000000051A55413D0AD7E3B5A650418FC2F508FD1955418FC2F518B7A65041E17A149EFB195541AE47E10ABAA650418FC2F508FA1955419A999989C2A6504148E17AC4F61955413D0AD7E3C3A650410AD7A350F719554185EB5128C8A65041CDCCCC8C001A5541295C8FC2C9A650410AD7A350FE195541295C8FE2D8A650413D0AD713F51955411F85EB31DEA650411F85EB61F2195541EC51B85EE1A65041295C8F22F019554185EB5168E2A650419A999969ED195541C3F528BCE1A6504133333333EC19554133333333E1A6504148E17A24EB195541295C8F22E3A6504133333383EA195541333333D3FFA650417B14AE778919554148E17AF4FEA6504148E17A04881955419A9999C9E4A65041333333A38219554133333353D9A650419A999969A9195541E17A14CECCA65041AE47E1DAA5195541CDCCCC3CB3A6504148E17A14AD195541EC51B87EA0A6504152B81E85B5195541D7A3702D9DA650410AD7A3C0B71955415C8FC2F59BA65041B81E859BBB19554185EB51589AA6504148E17A04C61955419A9999699BA6504152B81E45C7195541A4703D9AA2A650417B14AE57C7195541E17A14AEA2A65041B81E855BC8195541C3F528FCACA6504114AE47D1D019554185EB5128BEA65041E17A14DEE91955413D0AD7D3B5A650415C8FC225FB195541
+</a>
+
+<b>
+0106000000010000000103000000010000005000000048E17A24D9A6504100000020A9195541F39660E6D4A65041747B70F4A7195541DC0CE67FD1A65041D4BD5904A7195541CDCCCCFCCCA650415C8FC2C5A5195541414F06A4C9A65041C82CCABFA6195541890091E9BFA65041A8818E7FA919554120D8B228BAA650414D79C41FAB195541F9E72687B5A650415519C96EAC1955414B6B4F36B3A65041AD056717AD195541B28B2AC7B1A65041535FF0C2AD195541936D650BAAA65041E8D83F38B1195541FBA1804CA5A650414818555BB31955416E577CD7A1A65041610BDEE9B419554145EE6337A0A6504127FC1EB5B5195541BE3B17909EA65041DAA0FAD1B61955415BEE27569DA65041D6853DA5B7195541AE428BBA9CA650417124702CB919554163F1361B9CA650415930ED24BB195541B78764A49BA6504189C0FFA7BD19554130A9E4359BA650411A474270C0195541277BE89B9AA65041A8ADD150C41955416046211D9AA650415B5BB57EC7195541A72623E399A65041AD720E1FC9195541F04EF18B9EA65041F7A0846BC919554180005E33A3A65041C2FAC2A8C919554109C556D1A5A6504118B85D6CCD1955416458935AAAA65041B8920631D0195541BB294837ACA6504109DA270CD2195541ECB169ECADA650417A365C4CD3195541A13A41DBAFA65041CEEC453DD619554190ACDC58B3A6504137BE4A67DB195541DCE1FD7CB5A6504136F7227CDE1955415C9347A7B8A650411894440AE3195541EF19B15BBAA650418A5F557EE5195541E9CAE0C0BCA650413802CEF0E819554133333343BDA650413BDF4F6DEA1955419BC1A051BBA65041FEF6EA60EE1955413C47E361B9A65041639CCC50F2195541303B542FB7A65041685187C8F6195541D7A3701DB5A6504152B81E75FB1955416891ED4CB4A650415C8FC2A5FC195541C7B53A97B4A65041A221B998FC1955415CE0F5AAB6A65041522DBB20FD195541E672BCE5B8A650413CD4E5EEFB1955418E55FAA8BCA650412A784DF2F9195541E7E0589BC0A65041E9DC2506F81955419B8A0EE4C2A650415E8191D8F6195541C0068C02C5A65041BD7A4115F719554172CA66A2C8A6504145A1553EF6195541F3756FE4CAA6504185B10AA8F519554122251E83D0A65041206A56E4F31955419A6483EBD5A65041F79E86D6F11955417C99C767D9A65041F6F49D25F1195541509B3FE1DAA65041A72244F0F01955413F315715DDA650412391E1C0F0195541022B87D6E1A650417593188CF01955418B10188BE2A650416790D312EE1955415DF31107E3A650416E44E339EC19554173B6E693E3A650418965ACF9E9195541C6BA2618E6A65041AD886E53E11955419CEE63A0E8A65041CBED7A9FD819554138B2D3B9EAA6504166515968D1195541346B2E59ECA650410F30CED4CB1955418C633C34EEA65041759F1374C5195541513C339AF0A65041B8DAEC35BD195541E9799134F2A65041E5E684B3B71955412C553DA7F3A6504140578CB9B21955416378C065F5A650413B3D30BDAC195541333333D3FFA650417B14AE778919554148E17AF4FEA6504148E17A048819554185AE12F8F3A65041B5D140C2851955414A089B4CE9A65041F9F5BE8F83195541292A028EE4A65041C9F7E6A38219554144698915E3A65041AE7D46D98719554119810501E1A650410F16B1CF8E1955416E3F5E1BDEA6504177B6208298195541DE73C340DDA65041816AD55D9B19554199EECBB9DBA65041E1D9767AA01955415C2DF187DAA65041C6B1357AA419554148E17A24D9A6504100000020A9195541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981627 - 3381307
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000002C0000003D0AD7D3B5A650415C8FC225FB19554185EB5158B5A65041B81E855BFB195541295C8FB2B4A650410AD7A3B0FC195541CDCCCC0CB5A65041AE47E1CAFC19554185EB5158B2A65041000000D0041A5541EC51B8FEB0A65041295C8FE20C1A5541C3F5280CB2A650417B14AE07131A5541295C8F32B7A65041295C8F42221A55413D0AD733B9A650417B14AE87301A554133333313BAA6504148E17A74301A55417B14AE27B8A6504185EB51F8211A5541666666D6B2A65041E17A14CE121A5541D7A370DDB1A65041CDCCCCDC0C1A5541F6285C1FB3A6504100000000051A55413D0AD7E3B5A650418FC2F508FD1955418FC2F518B7A65041E17A149EFB195541AE47E10ABAA650418FC2F508FA1955419A999989C2A6504148E17AC4F61955413D0AD7E3C3A650410AD7A350F719554185EB5128C8A65041CDCCCC8C001A5541295C8FC2C9A650410AD7A350FE195541295C8FE2D8A650413D0AD713F51955411F85EB31DEA650411F85EB61F2195541EC51B85EE1A65041295C8F22F019554185EB5168E2A650419A999969ED195541C3F528BCE1A6504133333333EC19554133333333E1A6504148E17A24EB195541295C8F22E3A6504133333383EA195541333333D3FFA650417B14AE778919554148E17AF4FEA6504148E17A04881955419A9999C9E4A65041333333A38219554133333353D9A650419A999969A9195541E17A14CECCA65041AE47E1DAA5195541CDCCCC3CB3A6504148E17A14AD195541EC51B87EA0A6504152B81E85B5195541D7A3702D9DA650410AD7A3C0B71955415C8FC2F59BA65041B81E859BBB19554185EB51589AA6504148E17A04C61955419A9999699BA6504152B81E45C7195541A4703D9AA2A650417B14AE57C7195541E17A14AEA2A65041B81E855BC8195541C3F528FCACA6504114AE47D1D019554185EB5128BEA65041E17A14DEE91955413D0AD7D3B5A650415C8FC225FB195541
+</a>
+
+<b>
+0106000000010000000103000000010000005000000048E17A24D9A6504100000020A9195541F39660E6D4A65041747B70F4A7195541DC0CE67FD1A65041D4BD5904A7195541CDCCCCFCCCA650415C8FC2C5A5195541414F06A4C9A65041C82CCABFA6195541890091E9BFA65041A8818E7FA919554120D8B228BAA650414D79C41FAB195541F9E72687B5A650415519C96EAC1955414B6B4F36B3A65041AD056717AD195541B28B2AC7B1A65041535FF0C2AD195541936D650BAAA65041E8D83F38B1195541FBA1804CA5A650414818555BB31955416E577CD7A1A65041610BDEE9B419554145EE6337A0A6504127FC1EB5B5195541BE3B17909EA65041DAA0FAD1B61955415BEE27569DA65041D6853DA5B7195541AE428BBA9CA650417124702CB919554163F1361B9CA650415930ED24BB195541B78764A49BA6504189C0FFA7BD19554130A9E4359BA650411A474270C0195541277BE89B9AA65041A8ADD150C41955416046211D9AA650415B5BB57EC7195541A72623E399A65041AD720E1FC9195541F04EF18B9EA65041F7A0846BC919554180005E33A3A65041C2FAC2A8C919554109C556D1A5A6504118B85D6CCD1955416458935AAAA65041B8920631D0195541BB294837ACA6504109DA270CD2195541ECB169ECADA650417A365C4CD3195541A13A41DBAFA65041CEEC453DD619554190ACDC58B3A6504137BE4A67DB195541DCE1FD7CB5A6504136F7227CDE1955415C9347A7B8A650411894440AE3195541EF19B15BBAA650418A5F557EE5195541E9CAE0C0BCA650413802CEF0E819554133333343BDA650413BDF4F6DEA1955419BC1A051BBA65041FEF6EA60EE1955413C47E361B9A65041639CCC50F2195541303B542FB7A65041685187C8F6195541D7A3701DB5A6504152B81E75FB1955416891ED4CB4A650415C8FC2A5FC195541C7B53A97B4A65041A221B998FC1955415CE0F5AAB6A65041522DBB20FD195541E672BCE5B8A650413CD4E5EEFB1955418E55FAA8BCA650412A784DF2F9195541E7E0589BC0A65041E9DC2506F81955419B8A0EE4C2A650415E8191D8F6195541C0068C02C5A65041BD7A4115F719554172CA66A2C8A6504145A1553EF6195541F3756FE4CAA6504185B10AA8F519554122251E83D0A65041206A56E4F31955419A6483EBD5A65041F79E86D6F11955417C99C767D9A65041F6F49D25F1195541509B3FE1DAA65041A72244F0F01955413F315715DDA650412391E1C0F0195541022B87D6E1A650417593188CF01955418B10188BE2A650416790D312EE1955415DF31107E3A650416E44E339EC19554173B6E693E3A650418965ACF9E9195541C6BA2618E6A65041AD886E53E11955419CEE63A0E8A65041CBED7A9FD819554138B2D3B9EAA6504166515968D1195541346B2E59ECA650410F30CED4CB1955418C633C34EEA65041759F1374C5195541513C339AF0A65041B8DAEC35BD195541E9799134F2A65041E5E684B3B71955412C553DA7F3A6504140578CB9B21955416378C065F5A650413B3D30BDAC195541333333D3FFA650417B14AE778919554148E17AF4FEA6504148E17A048819554185AE12F8F3A65041B5D140C2851955414A089B4CE9A65041F9F5BE8F83195541292A028EE4A65041C9F7E6A38219554144698915E3A65041AE7D46D98719554119810501E1A650410F16B1CF8E1955416E3F5E1BDEA6504177B6208298195541DE73C340DDA65041816AD55D9B19554199EECBB9DBA65041E1D9767AA01955415C2DF187DAA65041C6B1357AA419554148E17A24D9A6504100000020A9195541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>712161 - 431187
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000020000003A000000333333E340A4504152B81E15455655415C8FC25542A450417B14AE1745565541B81E858B46A450411F85EBE1435655415C8FC2F54AA450410000009042565541666666D64EA45041D7A3703D415655419A9999E94FA4504185EB51D8405655411F85EB0151A45041000000D04056554152B81EC553A45041000000B04056554185EB510857A45041A4703D8A405655411F85EB1158A45041AE47E1BA40565541000000005BA450413D0AD74341565541AE47E17A5EA45041713D0AE741565541A4703D9A5FA450419A99997942565541C3F5280C64A45041EC51B8BE44565541EC51B8EE64A45041F6285CEF425655419A99995966A450415C8FC205405655419A9999A965A45041B81E85BB3F565541B81E85AB62A45041A4703D2A3E565541295C8FB25DA45041AE47E15A3B565541E17A14CE5BA4504148E17A943A56554152B81ED556A45041F6285C5F39565541EC51B8EE51A4504114AE475139565541333333134CA450413D0AD783395655410AD7A3E043A45041E17A14EE395655418FC2F5B83EA4504114AE475139565541295C8F0239A45041EC51B80E38565541E17A14DE32A45041D7A3709D36565541D7A370AD29A450419A9999F932565541C3F5285C22A45041713D0A07315655410AD7A3A021A45041AE47E18A3456554185EB51181DA45041295C8F823256554152B81E051CA450415C8FC29533565541333333331CA45041295C8FC23456554148E17AF41CA450416666666635565541666666B61FA45041CDCCCCBC37565541EC51B8CE20A45041AE47E1AA38565541AE47E1BA27A45041EC51B85E3D565541B81E85DB28A45041295C8F223E565541713D0A072BA4504185EB51183F56554185EB51E82DA45041EC51B85E40565541C3F5284C2FA450419A9999E9405655413D0AD7B32AA45041713D0AD74E56554148E17A8423A45041F6285CFF6256554152B81EC522A450410000003065565541E17A146E24A45041333333A365565541D7A3705D25A450418FC2F5D865565541C3F5285C29A45041000000C066565541713D0A172AA45041EC51B8CE6656554148E17AC42BA4504114AE47F16656554185EB51F82CA450419A999909675655419A9999592FA45041A4703D3A6756554152B81E8530A45041CDCCCCFC63565541EC51B89E33A450413D0AD793645655411F85EBA135A450411F85EBF15E565541A4703DAA38A45041333333F356565541666666463BA45041E17A144E51565541000000B03FA450413333339347565541333333E340A4504152B81E154556554105000000D7A370FD2FA450413D0AD73358565541C3F5289C2FA450413D0AD72358565541C3F5283C32A45041713D0AB75056554148E17A9432A45041713D0AE750565541D7A370FD2FA450413D0AD73358565541
+</a>
+
+<b>
+010600000001000000010300000001000000310000002EA8F6083FA45041F926C95A39565541D7A3707D3DA45041000000B03E565541C151B81E36A450414B0000303D5655415FF29CF631A450419439D0BE3B5655416C6C02B12EA450412E01369C3A565541D0BABFBF21A45041EF7FF028345655410AD7A3A021A45041AE47E18A3456554108920EBF20A45041B0E3B825345655417A94E41320A4504173DD0D8F34565541F805034F1FA45041C36133553556554118DE783720A4504155C360FF36565541A76C2C9D20A4504171E0C7CA37565541412C0C5A21A45041C0A974CB38565541E9B3DFF623A45041153FDDCF3A5655415A65DFAD26A450411245FBA73C565541F78D73D928A45041E59B5DFE3D56554195FDD6B82DA4504121FF8A2A4056554146AB192D33A450411AA4DB4C42565541D6E179D338A450410CA5723144565541132787CE3BA45041BD0BD4DA445655416BCDFD4F3FA450417F01F20A4556554162A3424342A45041BCA274104556554114DD599A4CA45041C5848C0042565541D1883E074FA45041FB187E2B415655419A9999E94FA4504185EB51D840565541972425FB4FA45041FF9BCCD740565541FF57847656A45041DCF4D4904056554185EB510857A45041A4703D8A405655411F85EB1158A45041AE47E1BA4056554161FD67AA5AA45041A20A3634415655416E7EF9AF5AA45041F6820E35415655410D1604FD5AA45041D48D4B4341565541000000005BA450413D0AD74341565541AE47E17A5EA45041713D0AE741565541A4703D9A5FA450419A99997942565541E428EAF460A45041E057A42A43565541C3F5280C64A45041EC51B8BE44565541EC51B8EE64A45041F6285CEF425655418499995966A45041538FC205405655419A9999A965A45041B81E85BB3F565541B81E85AB62A45041A4703D2A3E5655419C588FB25DA450413A46E15A3B565541459A995159A450414A85EBF9395655416666661657A450411F85EB713956554163F6B7EE51A450412AB14751395655417B14AE874CA450416666668639565541DBB9D04449A450411E5735A8395655410AD7A3E043A45041E17A14EE395655412EA8F6083FA45041F926C95A39565541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2905773 - 103082
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000001000000E4000000C99AD3BBEC39514105D3BEB336EA5441FADB5222EE3951410357BC483DEA5441F6285CFFED395141E17A149E35EA54411F85EB21FB395141B81E851B38EA5441F8808A2FFB3951412C4EE5F336EA54414A2ACF32FB39514135CFF6AC36EA544114AE47A1FB395141F6285C4F2DEA5441A7CCCB0DF5395141DBC6DBF52BEA5441CC6E4AE6F4395141C035C0ED2BEA54413D0AD713F4395141295C8FC22BEA54415C8FC2C5ED395141000000D02CEA544166666606EE3951411F85EBD127EA5441A4703D1AEF395141A4703D8A19EA544151759019EF395141D8D7794619EA54414BDE6718EF395141B81B4AD218EA54415C8FC215EF3951418FC2F5C817EA54411F85EB91EE39514148E17A5416EA544152B81EA5ED395141A4703DBA14EA5441A4703D4AE5395141AE47E10A0BEA544133333353E139514114AE470109EA54410AD7A3A0DC39514148E17A5407EA5441CDCCCCDCD9395141AE47E1EA07EA5441C3F528ACD33951413D0AD7D308EA54418FC2F5D8CD395141E17A148E09EA5441666666C6C53951419A99999909EA54417B14AEC7BE395141000000A009EA5441F6285CFFB639514185EB514809EA5441F6285C2FAF395141A4703D2A08EA54419A9999F9A7395141CDCCCC8C06EA54415C8FC225A13951411F85EBD104EA544148E17A349A395141CDCCCC5C02EA544100000000953951419A99998900EA5441F6285C3F90395141000000D0FFE954413D0AD79390395141713D0AE7FDE9544114AE4721943951417B14AE67FEE9544114AE47B198395141C3F5289CFFE95441000000209F395141F6285C2F02EA5441295C8F82A6395141AE47E16A04EA5441C3F528DCA93951416666664605EA5441A4703D9AA9395141CDCCCCFC03EA5441C3F5283CAB395141713D0AD701EA544148E17A84A939514100000010FEE95441EC51B89EA43951411F85EBA1FDE9544185EB51B89C395141295C8FD2F8E95441B81E855B93395141333333A3F2E95441E17A142E903951415C8FC2C5EEE954410AD7A3508C39514185EB51F8ECE95441C3F528FC8339514100000050EDE954410AD7A3C081395141CDCCCC0CEAE954418FC2F50880395141F6285C2FE6E954411607E41F813951414EB9238DE2E954415BB7204581395141ECB1421CE2E954410AD7A3B071395141B81E85ABD5E95441E17A14AE6C395141000000D0D3E9544101EE722D6C395141C3664EF1D3E954413D0AD7A367395141E17A141ED5E95441666666A668395141713D0A17D8E9544152B81EA56A395141D7A3705DE6E95441A4703D4A6B395141CDCCCC2CECE95441A4703D7A6B395141713D0AC7EDE954415C8FC2656D395141C3F5282CEEE95441333333437139514100000060EFE9544166666636753951413D0AD7F3F1E954413D0AD76378395141AE47E16AF6E95441E17A144E78395141B81E853BFEE9544185EB512876395141713D0A3703EA54413D0AD70377395141A4703D2A07EA54410000004079395141000000000AEA5441CDCCCCCC7D395141333333F30DEA5441000000D0833951410AD7A3E013EA54410AD7A3A08B395141A4703D6A20EA5441C3F528EC8F395141EC51B8DE2CEA54415C8FC245933951411F85EBC12EEA54413D0AD7B393395141713D0AB735EA5441D7A3704D94395141A4703DBA3BEA544152B81EB596395141CDCCCCCC43EA544148E17A74993951417B14AED74AEA5441AE47E1CA96395141EC51B8BE52EA5441CDCCCC6C9839514185EB51B854EA544185EB51589B395141AE47E12A50EA544185EB51189E3951410000007056EA544185EB51189E3951418FC2F5A852EA5441E17A147E9D3951418FC2F5E84FEA5441666666769C3951417B14AE374CEA5441295C8FE299395141EC51B87E47EA544152B81EB59639514152B81E6541EA544152B81E5595395141000000303DEA54415C8FC2A5943951413D0AD72333EA5441666666569339514152B81E4528EA5441F6285C9F88395141E17A144E14EA544100000020833951411F85EB9109EA5441AE47E19A7F3951413333330302EA54417B14AE37783951417B14AE77F2E95441A4703DBA7539514100000060EFE95441AE47E1BA72395141CDCCCC4CEDE95441333333836E395141A4703D8AECE954415C8FC2056C395141295C8F32ECE954413D0AD7C36B3951410AD7A3E0E9E95441B81E85CB6C395141713D0AF7E9E95441333333737139514185EB5148EAE95441C3F5285C7739514148E17A24EDE954413D0AD7C3793951413D0AD7E3EFE954418FC2F5587F395141000000A0FAE95441666666A681395141EC51B8BEFEE954410000007082395141B81E85EBFEE9544100000080843951417B14AEB7FDE954417B14AE97873951419A9999F9FDE9544114AE473188395141F6285C1F00EA54413D0AD7F3883951413333335300EA5441295C8F428D3951413D0AD793FEE954415C8FC265903951410AD7A3F0FDE95441AE47E10A90395141E17A14DEFFE95441D7A3702D8C395141713D0AE700EA5441333333C38839514152B81E6502EA5441295C8F1287395141E17A148E03EA5441295C8F72853951417B14AE4705EA54419A99996985395141AE47E1AA07EA5441A4703D8A86395141295C8FD209EA54413D0AD7B3873951419A9999D90AEA5441B81E85CB883951419A9999D90AEA544148E17A048B395141295C8F4209EA5441713D0A17913951413333336303EA5441E17A141E9339514185EB518805EA54418FC2F5E88E395141000000900CEA5441000000E08C395141AE47E17A0BEA5441F6285C8F8B3951413D0AD7230BEA54410AD7A3C08A3951413D0AD7830BEA5441A4703DDA8A39514185EB51E80CEA544114AE47E18B395141B81E85AB0DEA54411F85EB918D395141295C8FB20EEA544114AE47918C3951410AD7A3E00FEA5441C3F5288C8B395141C3F5285C0FEA54419A9999A98A39514148E17AB40EEA54419A9999B9893951418FC2F5A80FEA5441C3F528EC89395141B81E85EB10EA54410AD7A3F08C395141F6285C9F16EA5441A4703D3A923951411F85EBD121EA5441EC51B82E953951413D0AD72329EA5441E17A14CE95395141F6285C0F31EA54413D0AD7E3953951413D0AD7B337EA544185EB51C8963951411F85EBB13BEA5441AE47E1AA97395141CDCCCCFC3EEA5441A4703D0A9B395141295C8F9245EA5441D7A3709D9D3951415C8FC2E54AEA544185EB51389E395141CDCCCC2C4CEA5441AE47E1AA9F3951417B14AEE74DEA544133333313A1395141CDCCCC6C4EEA54411F85EB61A2395141B81E857B4EEA5441AE47E1BAA43951419A9999E951EA5441D7A3704DAA3951417B14AED756EA5441E17A145EA93951417B14AE7758EA5441CDCCCC5CA739514148E17A2457EA5441A4703D6AA43951418FC2F5C854EA54411F85EBA1A2395141D7A3705D53EA5441F6285C6FA03951410000005053EA5441000000A09F3951418FC2F5B859EA5441333333239F3951415C8FC2555CEA54411F85EBC19D3951418FC2F5885FEA544185EB51E89A3951419A99990964EA54411F85EB7197395141AE47E15A67EA5441295C8F9296395141AE47E14A68EA5441713D0A479B39514148E17AF465EA5441AE47E1AA9E3951410AD7A38060EA54418FC2F518A13951410AD7A3A05DEA5441CDCCCC7CA4395141E17A149E5FEA5441000000B0A8395141666666B662EA544114AE4721B0395141333333A362EA5441C3F5284CB3395141F6285C1F69EA544114AE4701BA3951413D0AD7C36DEA5441AE47E1BABC39514114AE47B16DEA544185EB51B8C5395141713D0A076DEA5441713D0A37D1395141666666A66EEA544152B81E55D739514114AE47B16DEA5441333333C3D9395141A4703D3A63EA5441B81E85BBDF3951410000004066EA544152B81E55E5395141C3F528DC69EA5441F6285C1FEA39514148E17AF46CEA5441EC51B8FEEC39514114AE47B16DEA5441EC51B8FEF33951413D0AD7B36BEA5441E17A14BEF9395141E17A14AE68EA54413D0AD7D3FE39514148E17A0461EA5441F6285C3F033A514152B81E4554EA54413D0AD7E3073A5141CDCCCC3C4CEA54410AD7A3C00C3A5141713D0A4745EA5441AE47E1DA0C3A514114AE472145EA5441333333330F3A51415C8FC2C541EA54410AD7A3B00A3A514148E17A3444EA54410AD7A340053A5141666666964BEA5441295C8F72003A5141E17A14AE53EA544152B81E35FD3951411F85EB015CEA5441666666C6FA3951413D0AD7D361EA5441713D0A27F9395141AE47E17A64EA54419A9999E9F5395141F6285C0F67EA54411F85EB31F13951417B14AE5769EA5441295C8F82ED395141000000606AEA5441C3F5282CEA395141F6285C9F6AEA544100000080E53951418FC2F5D868EA5441D7A3704DE13951410000003066EA5441CDCCCC0CDE395141295C8FD263EA5441C3F5282CD9395141CDCCCC3C61EA54418FC2F5F8D43951419A9999E95FEA5441D7A3707DCE3951411F85EB115EEA544114AE4701C83951413D0AD7B35DEA5441A4703D5ABE395141713D0AF75CEA5441713D0AB7B4395141AE47E17A5BEA544152B81E25B2395141CDCCCC4C5CEA54413D0AD713B33951417B14AE375EEA5441EC51B81EB23951411F85EB115EEA54417B14AE47B039514185EB51485BEA54411F85EB21AE395141E17A14AE5AEA5441EC51B82EAB395141AE47E1AA59EA5441713D0A87A9395141295C8F9258EA54411F85EB81AA395141C3F528EC56EA5441333333A3AE3951417B14AE8758EA54417B14AEE7B4395141E17A147E59EA5441CDCCCC6CBF395141C3F528DC5AEA5441E17A14CECD395141B81E85FB5BEA5441A4703D0AD7395141E17A14FE5DEA54419A9999E9DE3951418FC2F54861EA5441295C8F32E03951418FC2F5785EEA5441A4703D4AD9395141EC51B8DE53EA5441295C8F12DF395141CDCCCCBC50EA5441333333D3DC3951415C8FC26541EA5441333333D3DC395141A4703D7A2DEA5441713D0A87E239514148E17AF422EA54415C8FC2F5EA3951417B14AE472EEA5441FF840843EC395141CB907A7634EA5441C99AD3BBEC39514105D3BEB336EA5441
+</a>
+
+<b>
+010600000001000000010300000001000000E90000008FC2F50880395141F6285C2FE6E95441EA9064428139514109A3131AE2E9544148E17A948139514185EB5108E1E95441333333E37D39514133333323DCE954411F85EBD1783951413D0AD7A3D6E95441666666E67539514166666616D2E95441A4703DAA73395141EC51B8FECEE95441AE47E1FA72395141D7A3709DCAE954413D0AD7C36B3951415C8FC2F5CAE95441AE47E18A6F395141EC51B8AECFE95441D7A370CD6F395141295C8FE2D0E95441E17A14AE6C395141000000D0D3E954413D0AD7A367395141E17A141ED5E95441666666A668395141713D0A17D8E9544152B81EA56A395141D7A3705DE6E95441A4703D4A6B395141CDCCCC2CECE95441A4703D7A6B395141713D0AC7EDE954415C8FC2656D395141C3F5282CEEE95441333333437139514100000060EFE9544166666636753951413D0AD7F3F1E954413D0AD76378395141AE47E16AF6E95441E17A144E78395141B81E853BFEE9544185EB512876395141713D0A3703EA54413D0AD70377395141A4703D2A07EA54410000004079395141000000000AEA5441CDCCCCCC7D395141333333F30DEA5441000000D0833951410AD7A3E013EA54410AD7A3A08B395141A4703D6A20EA5441C3F528EC8F395141EC51B8DE2CEA54415C8FC245933951411F85EBC12EEA54413D0AD7B393395141713D0AB735EA5441D7A3704D94395141A4703DBA3BEA544152B81EB596395141CDCCCCCC43EA544148E17A74993951417B14AED74AEA5441AE47E1CA96395141EC51B8BE52EA5441CDCCCC6C9839514185EB51B854EA544185EB51589B395141AE47E12A50EA544185EB51189E3951410000007056EA544185EB51189E3951418FC2F5A852EA5441E17A147E9D3951418FC2F5E84FEA5441666666769C3951417B14AE374CEA5441295C8FE299395141EC51B87E47EA544152B81EB59639514152B81E6541EA544152B81E5595395141000000303DEA54415C8FC2A5943951413D0AD72333EA5441666666569339514152B81E4528EA5441F6285C9F88395141E17A144E14EA544100000020833951411F85EB9109EA5441AE47E19A7F3951413333330302EA54417B14AE37783951417B14AE77F2E95441A4703DBA7539514100000060EFE95441AE47E1BA72395141CDCCCC4CEDE95441333333836E395141A4703D8AECE954415C8FC2056C395141295C8F32ECE954413D0AD7C36B3951410AD7A3E0E9E95441B81E85CB6C395141713D0AF7E9E95441333333737139514185EB5148EAE95441C3F5285C7739514148E17A24EDE954413D0AD7C3793951413D0AD7E3EFE954418FC2F5587F395141000000A0FAE95441666666A681395141EC51B8BEFEE954410000007082395141B81E85EBFEE9544100000080843951417B14AEB7FDE954417B14AE97873951419A9999F9FDE9544114AE473188395141F6285C1F00EA54413D0AD7F3883951413333335300EA5441295C8F428D3951413D0AD793FEE954415C8FC265903951410AD7A3F0FDE95441AE47E10A90395141E17A14DEFFE95441D7A3702D8C395141713D0AE700EA5441333333C38839514152B81E6502EA5441295C8F1287395141E17A148E03EA5441295C8F72853951417B14AE4705EA54419A99996985395141AE47E1AA07EA5441A4703D8A86395141295C8FD209EA54413D0AD7B3873951419A9999D90AEA5441B81E85CB883951419A9999D90AEA544148E17A048B395141295C8F4209EA5441713D0A17913951413333336303EA5441E17A141E9339514185EB518805EA54418FC2F5E88E395141000000900CEA5441000000E08C395141AE47E17A0BEA5441F6285C8F8B3951413D0AD7230BEA54410AD7A3C08A3951413D0AD7830BEA5441A4703DDA8A39514185EB51E80CEA544114AE47E18B395141B81E85AB0DEA54411F85EB918D395141295C8FB20EEA544114AE47918C3951410AD7A3E00FEA5441C3F5288C8B395141C3F5285C0FEA54419A9999A98A39514148E17AB40EEA54419A9999B9893951418FC2F5A80FEA5441C3F528EC89395141B81E85EB10EA54410AD7A3F08C395141F6285C9F16EA5441A4703D3A923951411F85EBD121EA5441EC51B82E953951413D0AD72329EA5441E17A14CE95395141F6285C0F31EA54413D0AD7E3953951413D0AD7B337EA544185EB51C8963951411F85EBB13BEA5441AE47E1AA97395141CDCCCCFC3EEA5441A4703D0A9B395141295C8F9245EA5441D7A3709D9D3951415C8FC2E54AEA544185EB51389E395141CDCCCC2C4CEA5441AE47E1AA9F3951417B14AEE74DEA544133333313A1395141CDCCCC6C4EEA54411F85EB61A2395141B81E857B4EEA5441AE47E1BAA43951419A9999E951EA5441D7A3704DAA3951417B14AED756EA5441E17A145EA93951417B14AE7758EA5441CDCCCC5CA739514148E17A2457EA5441A4703D6AA43951418FC2F5C854EA54411F85EBA1A2395141D7A3705D53EA5441F6285C6FA03951410000005053EA5441000000A09F3951418FC2F5B859EA5441333333239F3951415C8FC2555CEA54411F85EBC19D3951418FC2F5885FEA544185EB51E89A3951419A99990964EA54411F85EB7197395141AE47E15A67EA5441295C8F9296395141AE47E14A68EA5441713D0A479B39514148E17AF465EA5441AE47E1AA9E3951410AD7A38060EA54418FC2F518A13951410AD7A3A05DEA5441CDCCCC7CA4395141E17A149E5FEA5441000000B0A8395141666666B662EA544114AE4721B0395141333333A362EA5441C3F5284CB3395141F6285C1F69EA544114AE4701BA3951413D0AD7C36DEA5441AE47E1BABC39514114AE47B16DEA544185EB51B8C5395141713D0A076DEA5441713D0A37D1395141666666A66EEA544152B81E55D739514114AE47B16DEA5441333333C3D9395141A4703D3A63EA5441B81E85BBDF3951410000004066EA544152B81E55E5395141C3F528DC69EA5441F6285C1FEA39514148E17AF46CEA5441EC51B8FEEC39514114AE47B16DEA5441EC51B8FEF33951413D0AD7B36BEA5441E17A14BEF9395141E17A14AE68EA54413D0AD7D3FE39514148E17A0461EA5441F6285C3F033A514152B81E4554EA54413D0AD7E3073A5141CDCCCC3C4CEA54410AD7A3C00C3A5141713D0A4745EA5441AE47E1DA0C3A514114AE472145EA5441333333330F3A51415C8FC2C541EA54410AD7A3B00A3A514148E17A3444EA54410AD7A340053A5141666666964BEA5441295C8F72003A5141E17A14AE53EA544152B81E35FD3951411F85EB015CEA5441666666C6FA3951413D0AD7D361EA5441713D0A27F9395141AE47E17A64EA54419A9999E9F5395141F6285C0F67EA54411F85EB31F13951417B14AE5769EA5441295C8F82ED395141000000606AEA5441C3F5282CEA395141F6285C9F6AEA544100000080E53951418FC2F5D868EA5441D7A3704DE13951410000003066EA5441CDCCCC0CDE395141295C8FD263EA5441C3F5282CD9395141CDCCCC3C61EA54418FC2F5F8D43951419A9999E95FEA5441D7A3707DCE3951411F85EB115EEA544114AE4701C83951413D0AD7B35DEA5441A4703D5ABE395141713D0AF75CEA5441713D0AB7B4395141AE47E17A5BEA544152B81E25B2395141CDCCCC4C5CEA54413D0AD713B33951417B14AE375EEA5441EC51B81EB23951411F85EB115EEA54417B14AE47B039514185EB51485BEA54411F85EB21AE395141E17A14AE5AEA5441EC51B82EAB395141AE47E1AA59EA5441713D0A87A9395141295C8F9258EA54411F85EB81AA395141C3F528EC56EA5441333333A3AE3951417B14AE8758EA54417B14AEE7B4395141E17A147E59EA5441CDCCCC6CBF395141C3F528DC5AEA5441E17A14CECD395141B81E85FB5BEA5441A4703D0AD7395141E17A14FE5DEA54419A9999E9DE3951418FC2F54861EA5441295C8F32E03951418FC2F5785EEA5441A4703D4AD9395141EC51B8DE53EA5441295C8F12DF395141CDCCCCBC50EA5441333333D3DC3951415C8FC26541EA5441333333D3DC395141A4703D7A2DEA5441713D0A87E239514148E17AF422EA54415C8FC2F5EA3951417B14AE472EEA5441F3A30843EC395141B2237B7634EA5441C79AD3BBEC39514104D3BEB336EA5441FBDB5222EE395141FE56BC483DEA544181F83521EE395141E9E276553DEA544133333323EF395141EC51B81E42EA5441295C8F12F3395141C3F528CC41EA54411F85EB21FB395141B81E851B38EA54414A2ACF32FB39514135CFF6AC36EA544114AE47A1FB395141F6285C4F2DEA5441B1CCCB0DF5395141D8C6DBF52BEA54413D0AD713F4395141295C8FC22BEA54419A999929F5395141CDCCCCBC28EA544152B81E15F53951411F85EBC123EA5441A4703D1AEF395141A4703D8A19EA54414ADE6718EF395141B81B4AD218EA54415C8FC215EF3951418FC2F5C817EA54411F85EB91EE39514148E17A5416EA544152B81EA5ED395141A4703DBA14EA5441A4703D4AE5395141AE47E10A0BEA544133333353E139514114AE470109EA54410AD7A3A0DC39514148E17A5407EA5441CDCCCCDCD9395141AE47E1EA07EA5441C3F528ACD33951413D0AD7D308EA54418FC2F5D8CD395141E17A148E09EA5441666666C6C53951419A99999909EA54417B14AEC7BE395141000000A009EA5441F6285CFFB639514185EB514809EA5441F6285C2FAF395141A4703D2A08EA54419A9999F9A7395141CDCCCC8C06EA54415C8FC225A13951411F85EBD104EA544148E17A349A395141CDCCCC5C02EA544100000000953951419A99998900EA5441F6285C3F90395141000000D0FFE954413D0AD79390395141713D0AE7FDE9544114AE4721943951417B14AE67FEE9544114AE47B198395141C3F5289CFFE95441000000209F395141F6285C2F02EA5441295C8F82A6395141AE47E16A04EA5441C3F528DCA93951416666664605EA5441A4703D9AA9395141CDCCCCFC03EA5441C3F5283CAB395141713D0AD701EA544148E17A84A939514100000010FEE95441EC51B89EA43951411F85EBA1FDE9544185EB51B89C395141295C8FD2F8E95441B81E855B93395141333333A3F2E95441E17A142E903951415C8FC2C5EEE954410AD7A3508C39514185EB51F8ECE95441C3F528FC8339514100000050EDE954410AD7A3C081395141CDCCCC0CEAE954418FC2F50880395141F6285C2FE6E95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>538894 - 2912145
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000006000000E5000000661FDAE9A42E5141D24D87AADE2554418FC2F588A52E514166666636DD255441B81E85AB9B2E5141AE47E14AD0255441D7A370CD922E5141D7A370ADC42554418FC2F5088C2E5141F6285CCFBB255441295C8F227E2E5141666666F6AF255441A4703DDA612E51419A9999299C255441F6285C0F612E51410AD7A3709D255441F6285C6F5F2E5141CDCCCCCC9D25544114AE47A15D2E51410AD7A3709D2554410AD7A3205C2E51415C8FC2E59C2554413D0AD7C35B2E5141666666369B2554411F85EB515C2E514148E17AC498255441F6285CDF532E51411F85EBE19425544152B81E153F2E514114AE474192255441CDCCCC3C262E5141333333238F255441713D0A17202E51419A999959962554410AD7A360202E51411F85EB719825544152B81EF51F2E51415C8FC2E59C255441000000D01E2E514152B81E35A0255441B81E85AB1D2E5141E17A14BEA5255441CDCCCC8C1D2E5141EC51B87EAA255441C3F5289C1D2E51417B14AE77AE25544148E17AC41C2E5141333333C3B3255441AE47E11A1C2E5141000000E0B82554419A9999491C2E514133333373BD255441EC51B8BE1B2E5141A4703DEABF25544148E17A84192E51413D0AD793C0255441000000C0162E514100000000C1255441B81E859B152E514100000060BF2554419A999929142E5141B81E853BBE255441333333A3112E5141A4703D5ABE2554410AD7A340102E514148E17AE4BE255441333333630E2E51415C8FC2C5BE255441F6285C1F0D2E51411F85EB91BD2554417B14AEE70D2E51419A999929BB255441E17A14DE0E2E51417B14AE27B825544114AE47910E2E514152B81E25B5255441666666760C2E5141666666D6B1255441000000800B2E514185EB51F8AF255441B81E85EB0B2E51411F85EB71AD25544148E17A040B2E5141F6285C0FAC255441000000E0092E514152B81E45A82554419A9999E9082E5141295C8F42A5255441AE47E12A082E514100000090A325544133333313022E5141CDCCCCECA4255441E17A145E002E5141713D0A97A125544100000090FE2D5141CDCCCC2C9C255441B81E85CBFB2D5141713D0A179325544166666616F92D51410AD7A37088255441A4703DEAF62D51415C8FC2A57A25544166666696F42D5141666666D671255441F6285C0FEE2D5141A4703D3A7425544133333353F22D5141B81E854B86255441EC51B88EF52D514114AE47F19425544152B81E35F92D5141713D0AD7A425544100000050FB2D514100000030A72554413D0AD793FC2D5141AE47E1EAAA2554417B14AEC7FD2D5141EC51B85EAF2554411F85EB61FE2D5141CDCCCC2CB125544100000030002E5141AE47E19AB42554411F85EBA1012E51411F85EB11B72554413D0AD7C3FF2D51413D0AD783B8255441A4703D8AFD2D514152B81E05BA255441B81E85CBFB2D51410AD7A3E0BA2554410AD7A320FD2D5141EC51B81EBE255441EC51B85E032E5141295C8F32CD2554419A999909052E5141F6285C1FCD255441E17A144E082E51418FC2F5A8CC255441F6285C6F072E5141C3F528CCC9255441B81E85BB092E51418FC2F518C9255441D7A370DD082E5141D7A3707DC725544114AE47A1092E51419A999929C7255441D7A3709D0A2E514152B81E95C82554419A9999090C2E51417B14AE17C82554415C8FC2A50C2E5141D7A370EDC8255441713D0A470E2E514114AE4741C82554419A9999190F2E51417B14AE27CB255441F6285C4F0C2E5141D7A3704DCC255441B81E856B0C2E51419A9999D9CC25544133333393102E51417B14AE77CC2554419A9999D9102E51419A999919CB255441D7A3700D122E5141B81E850BCB255441F6285CBF132E514152B81EA5CB25544133333313142E5141D7A370BDCC255441713D0A27162E51419A999949CD25544152B81E85172E514114AE47F1CD255441F6285CDF192E514152B81E25CF25544152B81EF51E2E514152B81E35D225544152B81E95212E51419A999959D3255441E17A147E252E5141A4703DEAD42554411F85EB51282E5141666666E6D625544185EB51882C2E514185EB51F8D9255441477A6EDB2D2E51418E1391E8DA25544181CF8FF22C2E5141A51928CEDB25544185EB51E82A2E51413D0AD763DA2554413D0AD783262E5141666666E6D6255441295C8F72232E5141713D0A37D5255441A4703D0A212E5141F6285C5FD425544152B81EF51E2E5141B81E855BD32554419A9999E91A2E5141D7A3701DD125544114AE4711182E5141F6285C4FCF25544152B81E35162E5141B81E858BCE25544152B81E75142E51419A999929CE255441713D0A970F2E514114AE47F1CD2554419A9999D9092E5141B81E851BCE25544152B81EE5062E5141F6285C6FCE25544152B81E95052E514152B81EB5CE2554419A999999042E5141D7A3707DCE255441D7A370ED032E5141AE47E18ACE2554417B14AE87042E514100000000D0255441E17A14EE052E5141295C8F72D32554418FC2F5C8082E51419A999979DA2554417B14AE47052E51419A9999D9DC255441EC51B83E062E5141AE47E1CAE02554411F85EB61072E51417B14AEC7E0255441C3F528DC0F2E51413D0AD7A3E02554419A9999E9202E5141F6285C5FDC255441CDCCCCAC2D2E5141295C8F42DC25544165F42DFB2C2E51416C5333D4DB255441CB5A94E12D2E5141F13E85ECDA2554417B14AED72F2E51410AD7A350DC25544133333383332E514148E17A34DF25544166666666362E514100000040E1255441B81E85BB3A2E514185EB51A8E325544185EB51283F2E5141A4703D1AE625544166666616402E5141B81E852BE82554411F85EB21422E51413D0AD793EA2554410AD7A3E0432E514185EB51B8EB255441CDCCCCDC452E5141E17A14BEEC25544185EB5198492E51415C8FC295ED255441A4703D3A4E2E5141F6285C3FEE2554410AD7A300542E5141CDCCCC7CEE2554410AD7A340572E5141295C8FE2ED255441CDCCCC3C592E51411F85EBF1ED255441333333D35B2E5141E17A145EEE2554418FC2F5785E2E51411F85EBF1ED255441713D0A27652E5141E17A14BEEC255441B81E852B6B2E514152B81E05EC255441F6285C2F712E5141713D0AD7EB255441D7A3703D762E5141666666E6EB2554419A9999D9792E514185EB51B8EB25544148E17A947D2E5141E17A14BEEC255441B81E85FB842E5141AE47E1AAEE2554418FC2F5088A2E5141EC51B8EEEF255441D7A370AD912E5141295C8FC2F22554419A9999E9962E5141A4703D2AF5255441EC51B83E9B2E5141713D0A27F7255441BA136EC39B2E51419B351F6CF7255441F31B28AE9B2E51416DB0CD9BF725544157EEC1A49B2E5141E2A49BACF7255441F3CA94569B2E5141FDFBE94FF8255441295C8FA2972E5141D7A3707DF62554419A999979902E5141C3F5285CF3255441295C8F12892E514152B81EE5F025544166666646822E514166666626EF255441AE47E15A7B2E51417B14AE67ED25544100000000762E5141A4703D1AED2554418FC2F538702E5141CDCCCCDCEC255441B81E858B692E514185EB5158ED2554418FC2F5F8642E514152B81EA5ED255441333333B3602E5141AE47E1AAEE255441333333D35B2E5141295C8F82EF2554415C8FC255582E51410AD7A3B0EF25544185EB5148532E514114AE47A1EF2554418FC2F5B84C2E51413D0AD763EF255441D7A3700D492E514185EB51E8EE255441666666E6442E5141333333D3ED255441B81E85CB422E5141F6285C9FEC255441240F2CFC402E5141B103B208EB2554411F85EB21422E514185EB5168EE25544166666696482E514114AE47A1FF2554415C8FC2A55C2E5141AE47E1DA03265441F6285C6F742E5141D7A3703D0826544166666626892E5141C3F5286C0526544166666656892E5141AE47E14A04265441295C8F82872E51419A9999C9032654417B14AEF7862E5141EC51B8AE0126544148E17A44872E51417B14AEC700265441295C8F12892E51418FC2F53802265441AE47E17A8A2E514185EB510803265441295C8FF28A2E5141D7A3702D052654418FC2F5A88E2E5141C3F528AC0426544185EB51389D2E514114AE47B10226544152B81E759E2E5141D7A370ADFE2554410AD7A3E09C2E514152B81EC5FE255441AE47E10A9A2E51417B14AE77FF255441666666D6982E51415C8FC275FA25544114AE47F19A2E5141A4703D0AFA2554411F85EBE19A2E51415C8FC2E5F8255441B81E858B9B2E5141A4703D6AF8255441F6D7E75A9B2E5141818F6656F8255441E294EBA79B2E514116752AB4F7255441F74233C99B2E5141B00EC46DF7255441F6285C6F9D2E5141AE47E14AF8255441F42996619E2E5141B5CA48A7F82554416A0AA2B09F2E51418701EF8BF8255441B81E856BA02E5141000000D0F7255441C3F528ECA02E514133333313F72554413D0AD7F3A12E514152B81E55F0255441EC51B83EA32E51418FC2F5A8EA255441713D0AD7A32E5141713D0A27E725544133333353A42E5141AE47E10AE0255441B606CCE6A42E514145AE74AFDE255441DD516D8EA62E5141852D8F4DDF2554417B14AE07A62E5141F6285C1FE1255441295C8F92A52E5141D7A3702DE7255441C3F528DCA42E51418FC2F5E8EA255441D7A3708DA32E5141AE47E19AF02554411F85EB01A32E5141C3F5289CF625544100000060A22E514114AE4731FA2554419A9999C9A32E5141F6285C7FF92554410AD7A3B0A42E5141C3F5283CF8255441D7A3700DA52E5141A4703DCAF62554413D0AD703A62E51419A999949F52554415C8FC275A72E5141295C8F62F4255441B81E850BAA2E5141666666F6F3255441333333E3AA2E5141666666C6F0255441000000A0A82E5141F6285C4FEE25544148E17A34A92E51413D0AD723EC2554417B14AE77AA2E51410AD7A3E0EA255441B81E850BAB2E514148E17AF4E825544166666696AA2E51415C8FC225E72554414A44360FA82E51417228DBF2E72554413E8AB299A72E514108C043DAE3255441713D0A47A72E5141C3F5280CE0255441713D0AB7A62E5141295C8FC2DE255441BF893695A62E5141B7596143DF255441661FDAE9A42E5141D24D87AADE25544105000000295C8FA23B2E5141CDCCCCFC98255441AE47E16A3C2E51411F85EB71982554413D0AD7233D2E51418FC2F55899255441C3F5284C3C2E51411F85EB119A255441295C8FA23B2E5141CDCCCCFC9825544114000000E17A14FE332E5141CDCCCC2C9C2554418FC2F588342E51413D0AD7B39E25544152B81E55332E51411F85EB81A025544185EB5158312E514166666646A325544133333343302E5141F6285C9FA5255441E17A148E2D2E51417B14AEF7A7255441D7A3705D2A2E5141F6285C3FA72554411F85EB51282E5141AE47E10AA6255441EC51B80E272E5141AE47E16AA4255441713D0AD7272E5141B81E852BA1255441F6285C8F282E51419A9999199E25544166666686292E5141AE47E15A9C25544114AE47012A2E514152B81EB59925544114AE47A12B2E5141E17A14CE98255441AE47E14A2C2E5141000000409A255441A4703DEA2D2E51410AD7A3309A255441E17A142E2F2E5141A4703D3A99255441D7A370DD302E5141000000A098255441A4703DCA322E514148E17AC499255441E17A14FE332E5141CDCCCC2C9C25544105000000713D0AC7952E5141AE47E12AE22554410AD7A3D09A2E514185EB51B8E1255441D7A3706D9B2E514148E17A34E825544114AE4761962E514114AE4721E8255441713D0AC7952E5141AE47E12AE225544106000000333333F3392E51418FC2F5E892255441333333933B2E5141EC51B88E952554415C8FC2E53C2E5141666666669625544148E17A743B2E5141B81E857B97255441B81E851B392E51411F85EB9193255441333333F3392E51418FC2F5E8922554410500000052B81E351D2E5141F6285CBFD6255441333333431D2E5141D7A3708DD8255441333333131B2E51419A9999A9D8255441713D0AF71A2E51419A999959D725544152B81E351D2E5141F6285CBFD6255441
+</a>
+
+<b>
+010600000002000000010300000006000000EE000000CDCCCC3C262E5141333333238F255441713D0A17202E51419A999959962554410AD7A360202E51411F85EB719825544152B81EF51F2E51415C8FC2E59C255441000000D01E2E514152B81E35A0255441B81E85AB1D2E5141E17A14BEA5255441CDCCCC8C1D2E5141EC51B87EAA255441C3F5289C1D2E51417B14AE77AE25544148E17AC41C2E5141333333C3B3255441AE47E11A1C2E5141000000E0B82554419A9999491C2E514133333373BD255441EC51B8BE1B2E5141A4703DEABF25544148E17A84192E51413D0AD793C0255441000000C0162E514100000000C1255441B81E859B152E514100000060BF2554419A999929142E5141B81E853BBE255441333333A3112E5141A4703D5ABE2554410AD7A340102E514148E17AE4BE255441333333630E2E51415C8FC2C5BE255441F6285C1F0D2E51411F85EB91BD2554417B14AEE70D2E51419A999929BB255441E17A14DE0E2E51417B14AE27B825544114AE47910E2E514152B81E25B5255441666666760C2E5141666666D6B1255441000000800B2E514185EB51F8AF255441B81E85EB0B2E51411F85EB71AD25544148E17A040B2E5141F6285C0FAC255441000000E0092E514152B81E45A82554419A9999E9082E5141295C8F42A5255441AE47E12A082E514100000090A325544133333313022E5141CDCCCCECA4255441E17A145E002E5141713D0A97A125544100000090FE2D5141CDCCCC2C9C255441B81E85CBFB2D5141713D0A179325544166666616F92D51410AD7A37088255441A4703DEAF62D51415C8FC2A57A25544166666696F42D5141666666D671255441F6285C0FEE2D5141A4703D3A7425544133333353F22D5141B81E854B86255441EC51B88EF52D514114AE47F19425544152B81E35F92D5141713D0AD7A425544100000050FB2D514100000030A72554413D0AD793FC2D5141AE47E1EAAA2554417B14AEC7FD2D5141EC51B85EAF2554411F85EB61FE2D5141CDCCCC2CB125544100000030002E5141AE47E19AB42554411F85EBA1012E51411F85EB11B72554413D0AD7C3FF2D51413D0AD783B8255441A4703D8AFD2D514152B81E05BA255441B81E85CBFB2D51410AD7A3E0BA2554410AD7A320FD2D5141EC51B81EBE255441EC51B85E032E5141295C8F32CD2554419A999909052E5141F6285C1FCD255441E17A144E082E51418FC2F5A8CC255441F6285C6F072E5141C3F528CCC9255441B81E85BB092E51418FC2F518C9255441D7A370DD082E5141D7A3707DC725544114AE47A1092E51419A999929C7255441D7A3709D0A2E514152B81E95C82554419A9999090C2E51417B14AE17C82554415C8FC2A50C2E5141D7A370EDC8255441713D0A470E2E514114AE4741C82554419A9999190F2E51417B14AE27CB255441F6285C4F0C2E5141D7A3704DCC255441B81E856B0C2E51419A9999D9CC25544133333393102E51417B14AE77CC255441278007C9102E51415967006CCB2554410351BF12122E51411276E180CB255441F6285CBF132E514152B81EA5CB25544133333313142E5141D7A370BDCC255441713D0A27162E51419A999949CD25544152B81E85172E514114AE47F1CD255441F6285CDF192E514152B81E25CF25544152B81EF51E2E514152B81E35D225544152B81E95212E51419A999959D3255441E17A147E252E5141A4703DEAD42554411F85EB51282E5141666666E6D625544185EB51882C2E514185EB51F8D9255441CFCF5C5A2D2E5141C5A9398ADA2554416969F6932C2E51414A958B82DB25544185EB51E82A2E51413D0AD763DA2554413D0AD783262E5141666666E6D6255441295C8F72232E5141713D0A37D5255441A4703D0A212E5141F6285C5FD425544152B81EF51E2E5141B81E855BD32554419A9999E91A2E5141D7A3701DD125544114AE4711182E5141F6285C4FCF25544152B81E35162E5141B81E858BCE25544152B81E75142E51419A999929CE255441713D0A970F2E514114AE47F1CD2554419A9999D9092E5141B81E851BCE25544152B81EE5062E5141F6285C6FCE25544152B81E95052E514152B81EB5CE2554419A999999042E5141D7A3707DCE255441D7A370ED032E5141AE47E18ACE2554417B14AE87042E514100000000D0255441E17A14EE052E5141295C8F72D32554418FC2F5C8082E51419A999979DA2554417B14AE47052E51419A9999D9DC255441EC51B83E062E5141AE47E1CAE02554411F85EB61072E51417B14AEC7E0255441C3F528DC0F2E51413D0AD7A3E02554419A9999E9202E5141F6285C5FDC255441CDCCCCAC2D2E5141295C8F42DC255441B97766972C2E51411EF81E87DB2554418C73085B2D2E5141DD009A8DDA2554417B14AED72F2E51410AD7A350DC25544133333383332E514148E17A34DF25544166666666362E514100000040E1255441B81E85BB3A2E514185EB51A8E325544185EB51283F2E5141A4703D1AE625544166666616402E5141B81E852BE82554411F85EB21422E51413D0AD793EA2554410AD7A3E0432E514185EB51B8EB255441CDCCCCDC452E5141E17A14BEEC25544185EB5198492E51415C8FC295ED255441A4703D3A4E2E5141F6285C3FEE2554410AD7A300542E5141CDCCCC7CEE2554410AD7A340572E5141295C8FE2ED255441CDCCCC3C592E51411F85EBF1ED255441333333D35B2E5141E17A145EEE2554418FC2F5785E2E51411F85EBF1ED255441713D0A27652E5141E17A14BEEC255441B81E852B6B2E514152B81E05EC255441F6285C2F712E5141713D0AD7EB255441D7A3703D762E5141666666E6EB2554419A9999D9792E514185EB51B8EB25544148E17A947D2E5141E17A14BEEC255441B81E85FB842E5141AE47E1AAEE2554418FC2F5088A2E5141EC51B8EEEF255441D7A370AD912E5141295C8FC2F2255441B3ED136E932E514105F1AA90F325544158D689ED922E514168EFA96EF42554419A999979902E5141C3F5285CF3255441295C8F12892E514152B81EE5F025544166666646822E514166666626EF255441AE47E15A7B2E51417B14AE67ED25544100000000762E5141A4703D1AED2554418FC2F538702E5141CDCCCCDCEC255441B81E858B692E514185EB5158ED2554418FC2F5F8642E514152B81EA5ED255441333333B3602E5141AE47E1AAEE255441333333D35B2E5141295C8F82EF2554415C8FC255582E51410AD7A3B0EF25544185EB5148532E514114AE47A1EF2554418FC2F5B84C2E51413D0AD763EF255441D7A3700D492E514185EB51E8EE255441666666E6442E5141333333D3ED255441B81E85CB422E5141F6285C9FEC25544185EB51F8402E51419A999929EB2554411F85EB21422E514185EB5168EE25544166666696482E514114AE47A1FF2554415C8FC2A55C2E5141AE47E1DA03265441F6285C6F742E5141D7A3703D0826544166666626892E5141C3F5286C0526544166666656892E5141AE47E14A04265441295C8F82872E51419A9999C9032654417B14AEF7862E5141EC51B8AE0126544148E17A44872E51417B14AEC700265441295C8F12892E51418FC2F53802265441AE47E17A8A2E514185EB510803265441295C8FF28A2E5141D7A3702D052654418FC2F5A88E2E5141C3F528AC0426544185EB51389D2E514114AE47B10226544152B81E759E2E5141D7A370ADFE2554410AD7A3E09C2E514152B81EC5FE255441AE47E10A9A2E51417B14AE77FF255441666666D6982E51415C8FC275FA25544114AE47F19A2E5141A4703D0AFA2554411F85EBE19A2E51415C8FC2E5F8255441B81E858B9B2E5141A4703D6AF8255441295C8FA2972E5141D7A3707DF62554418B37EEEF922E514111069872F4255441B4937D72932E5141FC575091F32554419A9999E9962E5141A4703D2AF5255441EC51B83E9B2E5141713D0A27F7255441F6285C6F9D2E5141AE47E14AF825544159A65D669E2E5141A351E89CF82554416AE768439F2E51413635D4BDF82554419371CCCB9F2E5141EC61188AF8255441040C6041A02E5141C59A4048F82554410CCB9F8CA02E5141F7E7E4EEF7255441C3F528ECA02E514133333313F72554413D0AD7F3A12E514152B81E55F0255441EC51B83EA32E51418FC2F5A8EA255441713D0AD7A32E5141713D0A27E725544102833F4BA42E51410D0D747FE025544153D30B0AA62E514168003317E1255441295C8F92A52E5141D7A3702DE7255441C3F528DCA42E51418FC2F5E8EA255441D7A3708DA32E5141AE47E19AF02554411F85EB01A32E5141C3F5289CF625544100000060A22E514114AE4731FA2554419A9999C9A32E5141F6285C7FF92554410AD7A3B0A42E5141C3F5283CF8255441D7A3700DA52E5141A4703DCAF62554413D0AD703A62E51419A999949F52554415C8FC275A72E5141295C8F62F4255441B81E850BAA2E5141666666F6F3255441333333E3AA2E5141666666C6F02554416204208DA92E514145592851EF255441CF20346CA92E51413759DD28EE25544148E17A34A92E51413D0AD723EC2554417B14AE77AA2E51410AD7A3E0EA255441B81E850BAB2E514148E17AF4E825544166666696AA2E51415C8FC225E72554411F85EBD1A72E5141713D0A97E82554415C8FC275A72E51415C8FC2E5E3255441713D0A47A72E5141C3F5280CE0255441713D0AB7A62E5141295C8FC2DE2554417E82B60CA62E5141F37C000EE1255441ECF95C4CA42E5141EC321B6FE025544133333353A42E5141AE47E10AE02554412F498A88A52E5141142DCE34DD2554416DCE7DC9A62E514162C198DDDB2554417B14AEC7A72E5141C3F528CCDA25544152B81E35A92E514148E17A34DA2554416D5C5C64A92E5141BBA7FE54D925544185EB5188A92E5141AE47E1AAD8255441A4EE963AA72E51416D4AA666D62554417AA03C83A32E5141B0489FBED225544155D63E8DA02E51410963D7D4CF2554412585E84F9E2E5141CE76BDA0CD25544156C6B16A992E51415BC971D9C82554418FC2F5088C2E5141F6285CCFBB255441295C8F227E2E5141666666F6AF2554416AA33CDA612E514168E49A299C255441F6285C0F612E51410AD7A3709D255441F6285C6F5F2E5141CDCCCCCC9D25544114AE47A15D2E51410AD7A3709D2554410AD7A3205C2E51415C8FC2E59C2554413D0AD7C35B2E5141666666369B2554411F85EB515C2E514148E17AC498255441F6285CDF532E51411F85EBE1942554412177CFF54C2E5141D57B470294255441B33ADEEF4C2E5141C552280C9425544152B81E153F2E514114AE474192255441CDCCCC3C262E5141333333238F25544105000000295C8FA23B2E5141CDCCCCFC98255441AE47E16A3C2E51411F85EB71982554413D0AD7233D2E51418FC2F55899255441C3F5284C3C2E51411F85EB119A255441295C8FA23B2E5141CDCCCCFC9825544114000000E17A14FE332E5141CDCCCC2C9C2554418FC2F588342E51413D0AD7B39E25544152B81E55332E51411F85EB81A025544185EB5158312E514166666646A325544133333343302E5141F6285C9FA5255441E17A148E2D2E51417B14AEF7A7255441D7A3705D2A2E5141F6285C3FA72554411F85EB51282E5141AE47E10AA6255441EC51B80E272E5141AE47E16AA4255441713D0AD7272E5141B81E852BA1255441F6285C8F282E51419A9999199E25544166666686292E5141AE47E15A9C25544114AE47012A2E514152B81EB59925544114AE47A12B2E5141E17A14CE98255441AE47E14A2C2E5141000000409A255441A4703DEA2D2E51410AD7A3309A255441E17A142E2F2E5141A4703D3A99255441D7A370DD302E5141000000A098255441A4703DCA322E514148E17AC499255441E17A14FE332E5141CDCCCC2C9C25544105000000713D0AC7952E5141AE47E12AE22554410AD7A3D09A2E514185EB51B8E1255441D7A3706D9B2E514148E17A34E825544114AE4761962E514114AE4721E8255441713D0AC7952E5141AE47E12AE225544106000000333333F3392E51418FC2F5E892255441333333933B2E5141EC51B88E952554415C8FC2E53C2E5141666666669625544148E17A743B2E5141B81E857B97255441B81E851B392E51411F85EB9193255441333333F3392E51418FC2F5E8922554410500000052B81E351D2E5141F6285CBFD6255441333333431D2E5141D7A3708DD8255441333333131B2E51419A9999A9D8255441713D0AF71A2E51419A999959D725544152B81E351D2E5141F6285CBFD625544101030000000100000010000000EC51B87E7A2E5141333333B34E255441F656CF3D7C2E5141F00EF62E4B2554413D0AD783882E514185EB517832255441AE47E10A882E5141000000602F25544114AE47118C2E514152B81EE52A2554410AD7A3208D2E5141F6285CFF28255441666666C6872E51417B14AED727255441E17A14FE862E5141F6285CFF2825544166666606832E51417B14AEC729255441666666267C2E5141666666062B255441435BCC15772E514123060B333E255441E130C99E742E5141A909EA87472554415C8FC265732E51418FC2F5284C255441EBF57655772E514146FC96914D2554410E32A88C772E51412E7357A54D255441EC51B87E7A2E5141333333B34E255441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>538894 - 2955511
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000006000000E5000000661FDAE9A42E5141D24D87AADE2554418FC2F588A52E514166666636DD255441B81E85AB9B2E5141AE47E14AD0255441D7A370CD922E5141D7A370ADC42554418FC2F5088C2E5141F6285CCFBB255441295C8F227E2E5141666666F6AF255441A4703DDA612E51419A9999299C255441F6285C0F612E51410AD7A3709D255441F6285C6F5F2E5141CDCCCCCC9D25544114AE47A15D2E51410AD7A3709D2554410AD7A3205C2E51415C8FC2E59C2554413D0AD7C35B2E5141666666369B2554411F85EB515C2E514148E17AC498255441F6285CDF532E51411F85EBE19425544152B81E153F2E514114AE474192255441CDCCCC3C262E5141333333238F255441713D0A17202E51419A999959962554410AD7A360202E51411F85EB719825544152B81EF51F2E51415C8FC2E59C255441000000D01E2E514152B81E35A0255441B81E85AB1D2E5141E17A14BEA5255441CDCCCC8C1D2E5141EC51B87EAA255441C3F5289C1D2E51417B14AE77AE25544148E17AC41C2E5141333333C3B3255441AE47E11A1C2E5141000000E0B82554419A9999491C2E514133333373BD255441EC51B8BE1B2E5141A4703DEABF25544148E17A84192E51413D0AD793C0255441000000C0162E514100000000C1255441B81E859B152E514100000060BF2554419A999929142E5141B81E853BBE255441333333A3112E5141A4703D5ABE2554410AD7A340102E514148E17AE4BE255441333333630E2E51415C8FC2C5BE255441F6285C1F0D2E51411F85EB91BD2554417B14AEE70D2E51419A999929BB255441E17A14DE0E2E51417B14AE27B825544114AE47910E2E514152B81E25B5255441666666760C2E5141666666D6B1255441000000800B2E514185EB51F8AF255441B81E85EB0B2E51411F85EB71AD25544148E17A040B2E5141F6285C0FAC255441000000E0092E514152B81E45A82554419A9999E9082E5141295C8F42A5255441AE47E12A082E514100000090A325544133333313022E5141CDCCCCECA4255441E17A145E002E5141713D0A97A125544100000090FE2D5141CDCCCC2C9C255441B81E85CBFB2D5141713D0A179325544166666616F92D51410AD7A37088255441A4703DEAF62D51415C8FC2A57A25544166666696F42D5141666666D671255441F6285C0FEE2D5141A4703D3A7425544133333353F22D5141B81E854B86255441EC51B88EF52D514114AE47F19425544152B81E35F92D5141713D0AD7A425544100000050FB2D514100000030A72554413D0AD793FC2D5141AE47E1EAAA2554417B14AEC7FD2D5141EC51B85EAF2554411F85EB61FE2D5141CDCCCC2CB125544100000030002E5141AE47E19AB42554411F85EBA1012E51411F85EB11B72554413D0AD7C3FF2D51413D0AD783B8255441A4703D8AFD2D514152B81E05BA255441B81E85CBFB2D51410AD7A3E0BA2554410AD7A320FD2D5141EC51B81EBE255441EC51B85E032E5141295C8F32CD2554419A999909052E5141F6285C1FCD255441E17A144E082E51418FC2F5A8CC255441F6285C6F072E5141C3F528CCC9255441B81E85BB092E51418FC2F518C9255441D7A370DD082E5141D7A3707DC725544114AE47A1092E51419A999929C7255441D7A3709D0A2E514152B81E95C82554419A9999090C2E51417B14AE17C82554415C8FC2A50C2E5141D7A370EDC8255441713D0A470E2E514114AE4741C82554419A9999190F2E51417B14AE27CB255441F6285C4F0C2E5141D7A3704DCC255441B81E856B0C2E51419A9999D9CC25544133333393102E51417B14AE77CC2554419A9999D9102E51419A999919CB255441D7A3700D122E5141B81E850BCB255441F6285CBF132E514152B81EA5CB25544133333313142E5141D7A370BDCC255441713D0A27162E51419A999949CD25544152B81E85172E514114AE47F1CD255441F6285CDF192E514152B81E25CF25544152B81EF51E2E514152B81E35D225544152B81E95212E51419A999959D3255441E17A147E252E5141A4703DEAD42554411F85EB51282E5141666666E6D625544185EB51882C2E514185EB51F8D9255441477A6EDB2D2E51418E1391E8DA25544181CF8FF22C2E5141A51928CEDB25544185EB51E82A2E51413D0AD763DA2554413D0AD783262E5141666666E6D6255441295C8F72232E5141713D0A37D5255441A4703D0A212E5141F6285C5FD425544152B81EF51E2E5141B81E855BD32554419A9999E91A2E5141D7A3701DD125544114AE4711182E5141F6285C4FCF25544152B81E35162E5141B81E858BCE25544152B81E75142E51419A999929CE255441713D0A970F2E514114AE47F1CD2554419A9999D9092E5141B81E851BCE25544152B81EE5062E5141F6285C6FCE25544152B81E95052E514152B81EB5CE2554419A999999042E5141D7A3707DCE255441D7A370ED032E5141AE47E18ACE2554417B14AE87042E514100000000D0255441E17A14EE052E5141295C8F72D32554418FC2F5C8082E51419A999979DA2554417B14AE47052E51419A9999D9DC255441EC51B83E062E5141AE47E1CAE02554411F85EB61072E51417B14AEC7E0255441C3F528DC0F2E51413D0AD7A3E02554419A9999E9202E5141F6285C5FDC255441CDCCCCAC2D2E5141295C8F42DC25544165F42DFB2C2E51416C5333D4DB255441CB5A94E12D2E5141F13E85ECDA2554417B14AED72F2E51410AD7A350DC25544133333383332E514148E17A34DF25544166666666362E514100000040E1255441B81E85BB3A2E514185EB51A8E325544185EB51283F2E5141A4703D1AE625544166666616402E5141B81E852BE82554411F85EB21422E51413D0AD793EA2554410AD7A3E0432E514185EB51B8EB255441CDCCCCDC452E5141E17A14BEEC25544185EB5198492E51415C8FC295ED255441A4703D3A4E2E5141F6285C3FEE2554410AD7A300542E5141CDCCCC7CEE2554410AD7A340572E5141295C8FE2ED255441CDCCCC3C592E51411F85EBF1ED255441333333D35B2E5141E17A145EEE2554418FC2F5785E2E51411F85EBF1ED255441713D0A27652E5141E17A14BEEC255441B81E852B6B2E514152B81E05EC255441F6285C2F712E5141713D0AD7EB255441D7A3703D762E5141666666E6EB2554419A9999D9792E514185EB51B8EB25544148E17A947D2E5141E17A14BEEC255441B81E85FB842E5141AE47E1AAEE2554418FC2F5088A2E5141EC51B8EEEF255441D7A370AD912E5141295C8FC2F22554419A9999E9962E5141A4703D2AF5255441EC51B83E9B2E5141713D0A27F7255441BA136EC39B2E51419B351F6CF7255441F31B28AE9B2E51416DB0CD9BF725544157EEC1A49B2E5141E2A49BACF7255441F3CA94569B2E5141FDFBE94FF8255441295C8FA2972E5141D7A3707DF62554419A999979902E5141C3F5285CF3255441295C8F12892E514152B81EE5F025544166666646822E514166666626EF255441AE47E15A7B2E51417B14AE67ED25544100000000762E5141A4703D1AED2554418FC2F538702E5141CDCCCCDCEC255441B81E858B692E514185EB5158ED2554418FC2F5F8642E514152B81EA5ED255441333333B3602E5141AE47E1AAEE255441333333D35B2E5141295C8F82EF2554415C8FC255582E51410AD7A3B0EF25544185EB5148532E514114AE47A1EF2554418FC2F5B84C2E51413D0AD763EF255441D7A3700D492E514185EB51E8EE255441666666E6442E5141333333D3ED255441B81E85CB422E5141F6285C9FEC255441240F2CFC402E5141B103B208EB2554411F85EB21422E514185EB5168EE25544166666696482E514114AE47A1FF2554415C8FC2A55C2E5141AE47E1DA03265441F6285C6F742E5141D7A3703D0826544166666626892E5141C3F5286C0526544166666656892E5141AE47E14A04265441295C8F82872E51419A9999C9032654417B14AEF7862E5141EC51B8AE0126544148E17A44872E51417B14AEC700265441295C8F12892E51418FC2F53802265441AE47E17A8A2E514185EB510803265441295C8FF28A2E5141D7A3702D052654418FC2F5A88E2E5141C3F528AC0426544185EB51389D2E514114AE47B10226544152B81E759E2E5141D7A370ADFE2554410AD7A3E09C2E514152B81EC5FE255441AE47E10A9A2E51417B14AE77FF255441666666D6982E51415C8FC275FA25544114AE47F19A2E5141A4703D0AFA2554411F85EBE19A2E51415C8FC2E5F8255441B81E858B9B2E5141A4703D6AF8255441F6D7E75A9B2E5141818F6656F8255441E294EBA79B2E514116752AB4F7255441F74233C99B2E5141B00EC46DF7255441F6285C6F9D2E5141AE47E14AF8255441F42996619E2E5141B5CA48A7F82554416A0AA2B09F2E51418701EF8BF8255441B81E856BA02E5141000000D0F7255441C3F528ECA02E514133333313F72554413D0AD7F3A12E514152B81E55F0255441EC51B83EA32E51418FC2F5A8EA255441713D0AD7A32E5141713D0A27E725544133333353A42E5141AE47E10AE0255441B606CCE6A42E514145AE74AFDE255441DD516D8EA62E5141852D8F4DDF2554417B14AE07A62E5141F6285C1FE1255441295C8F92A52E5141D7A3702DE7255441C3F528DCA42E51418FC2F5E8EA255441D7A3708DA32E5141AE47E19AF02554411F85EB01A32E5141C3F5289CF625544100000060A22E514114AE4731FA2554419A9999C9A32E5141F6285C7FF92554410AD7A3B0A42E5141C3F5283CF8255441D7A3700DA52E5141A4703DCAF62554413D0AD703A62E51419A999949F52554415C8FC275A72E5141295C8F62F4255441B81E850BAA2E5141666666F6F3255441333333E3AA2E5141666666C6F0255441000000A0A82E5141F6285C4FEE25544148E17A34A92E51413D0AD723EC2554417B14AE77AA2E51410AD7A3E0EA255441B81E850BAB2E514148E17AF4E825544166666696AA2E51415C8FC225E72554414A44360FA82E51417228DBF2E72554413E8AB299A72E514108C043DAE3255441713D0A47A72E5141C3F5280CE0255441713D0AB7A62E5141295C8FC2DE255441BF893695A62E5141B7596143DF255441661FDAE9A42E5141D24D87AADE25544105000000295C8FA23B2E5141CDCCCCFC98255441AE47E16A3C2E51411F85EB71982554413D0AD7233D2E51418FC2F55899255441C3F5284C3C2E51411F85EB119A255441295C8FA23B2E5141CDCCCCFC9825544114000000E17A14FE332E5141CDCCCC2C9C2554418FC2F588342E51413D0AD7B39E25544152B81E55332E51411F85EB81A025544185EB5158312E514166666646A325544133333343302E5141F6285C9FA5255441E17A148E2D2E51417B14AEF7A7255441D7A3705D2A2E5141F6285C3FA72554411F85EB51282E5141AE47E10AA6255441EC51B80E272E5141AE47E16AA4255441713D0AD7272E5141B81E852BA1255441F6285C8F282E51419A9999199E25544166666686292E5141AE47E15A9C25544114AE47012A2E514152B81EB59925544114AE47A12B2E5141E17A14CE98255441AE47E14A2C2E5141000000409A255441A4703DEA2D2E51410AD7A3309A255441E17A142E2F2E5141A4703D3A99255441D7A370DD302E5141000000A098255441A4703DCA322E514148E17AC499255441E17A14FE332E5141CDCCCC2C9C25544105000000713D0AC7952E5141AE47E12AE22554410AD7A3D09A2E514185EB51B8E1255441D7A3706D9B2E514148E17A34E825544114AE4761962E514114AE4721E8255441713D0AC7952E5141AE47E12AE225544106000000333333F3392E51418FC2F5E892255441333333933B2E5141EC51B88E952554415C8FC2E53C2E5141666666669625544148E17A743B2E5141B81E857B97255441B81E851B392E51411F85EB9193255441333333F3392E51418FC2F5E8922554410500000052B81E351D2E5141F6285CBFD6255441333333431D2E5141D7A3708DD8255441333333131B2E51419A9999A9D8255441713D0AF71A2E51419A999959D725544152B81E351D2E5141F6285CBFD6255441
+</a>
+
+<b>
+010600000001000000010300000037000000BD08000066EC9D7EB52C51410DA928308727544148E17A74AE2C514114AE47A1862754411F85EBB1A52C51419A9999D9872754418FC2F598A02C5141AE47E1EA862754413D0AD7D3952C5141E17A146E89275441E17A144E912C51410AD7A310882754417B14AE378E2C5141666666B6882754410AD7A340872C5141CDCCCCBC8D275441D7A3700D7C2C5141F6285CBF8F275441CDCCCC8C7B2C51415C8FC2E5902754418FC2F5787D2C51418FC2F5C891275441AE47E1AA792C5141713D0A67A427544114AE47C16D2C5141EC51B81EA727544185EB51C8722C5141C3F528FCA8275441B81E856B722C5141713D0A47AB275441666666266C2C514152B81E95B0275441E17A143E662C5141EC51B8FEB2275441AE47E13A5E2C5141E17A146EA92754418FC2F558552C5141C3F5284CA82754417B14AE27542C514148E17A84AB275441EC51B83E4E2C5141CDCCCC0CAE27544166666656482C5141B81E851BBA2754410AD7A3C0472C5141713D0A17BC275441EC51B83E522C5141C3F5282CC2275441000000B0562C5141000000D0BE275441000000105A2C514133333323C027544166666636602C51419A9999B9BD2754410AD7A3106B2C514166666616BE27544114AE47716E2C514148E17A04C02754418FC2F5986D2C5141B81E85ABC22754410AD7A360692C514148E17A64C3275441666666266C2C5141D7A3704DC9275441A4703DDA702C514166666656C82754419A999979722C51411F85EB41C8275441A4703D4A732C5141F6285C1FCD2754413D0AD7B37A2C51415C8FC235CE27544114AE47117C2C5141F6285C9FD12754419A9999397B2C5141CDCCCC6CDA275441B81E854B792C514185EB51E8DA275441E17A14DE732C5141CDCCCC6CDA275441EC51B88E752C514166666646D4275441A4703D2A6F2C5141C3F528FCD12754411F85EB41692C51411F85EBC1D4275441EC51B85E612C514148E17A14D7275441A4703DCA5D2C5141B81E85ABCC27544114AE47E1522C51415C8FC295CC275441713D0A77502C514114AE47C1C8275441295C8FA2492C514166666656CA27544185EB5138462C5141AE47E1AAD0275441D7A3700D492C5141A4703D6AD2275441CDCCCC8C4D2C5141AE47E16ACF275441B81E858B542C5141AE47E1EAD02754411F85EB214E2C5141295C8F92E12754418FC2F548662C5141666666E6ED275441F6285C7F692C5141A4703D0AF62754419A999959742C514148E17A54F8275441333333C3762C514152B81E65FD2754419A9999F9702C51417B14AE8700285441666666266C2C514148E17A34FF2754419A9999196A2C51419A9999E9FC275441666666766A2C514152B81E05FA275441CDCCCC5C662C51413D0AD723FA275441CDCCCCAC642C5141F6285C4FFC275441000000F0602C5141E17A14BEFA275441295C8F12642C5141666666B6F42754415C8FC275592C5141B81E859BF72754419A9999E9532C51410AD7A350F527544152B81E75482C5141666666D6DC27544152B81EB5432C5141F6285CFFDC275441D7A370ED3D2C5141AE47E1DACF27544152B81E75362C5141F6285CDFB727544133333313342C51417B14AEB7BA275441713D0A67372C5141CDCCCC0CC927544100000070312C5141295C8FF2DA27544152B81E95332C5141333333E3DF275441E17A143E382C514114AE4701E1275441713D0AE73C2C5141A4703D0ADB2754419A999989402C5141000000F0E1275441B81E856B3F2C51410AD7A360EC275441EC51B85E3D2C5141CDCCCC7CF427544148E17AD42D2C5141000000E0F727544114AE4741302C514114AE4741FB2754411F85EBD1302C51411F85EBD1FB27544185EB5138332C5141713D0A07FE27544185EB5178332C51411F85EBB1FE275441CDCCCCCC332C514166666676FF27544166666616342C5141713D0AD7FF2754417B14AEB7342C5141B81E858B00285441F6285CAF352C5141B81E857B0128544100000010362C51410AD7A330022854410AD7A360372C514148E17AF40428544166666626392C5141A4703D0A0928544185EB5148392C51417B14AE470A2854419A999969392C5141AE47E15A0B285441D7A370BD392C5141E17A14BE0B285441EC51B81E3A2C51415C8FC2550C2854419A9999893A2C514152B81E250D285441000000303B2C51418FC2F5B80F2854411F85EBA1402C514114AE4791112854415C8FC275482C5141B81E85FB1A28544152B81EB54E2C5141295C8F721B2854413D0AD7734F2C5141A4703D3A21285441CDCCCC3C4B2C5141295C8F6223285441AE47E17A4C2C5141000000302528544185EB51E84C2C51410AD7A3B0252854413D0AD7B34E2C5141EC51B84E2628544152B81E05542C514148E17A242528544166666666582C514114AE47612728544148E17AF4542C514148E17A742C285441A4703DBA552C5141000000802D285441AE47E1CA562C5141000000002F285441B81E856B572C514152B81EB52F285441C3F5282C592C514148E17A44312854410AD7A3D05A2C51418FC2F578322854417B14AE275B2C5141AE47E1EA34285441713D0A875B2C5141295C8F4237285441333333735B2C51417B14AEC739285441CDCCCC6C5C2C514114AE47313B285441A4703DCA5D2C51418FC2F5283D285441F6285C6F5F2C51411F85EB013F285441A4703D1A612C514152B81E7540285441EC51B8FE642C5141E17A144E43285441C3F528AC652C51418FC2F5C843285441A4703D4A662C514148E17A6445285441295C8FD2662C5141D7A3708D46285441EC51B88E672C5141C3F528CC4728544114AE4761682C51413D0AD79348285441C3F528AC692C5141EC51B88E492854410AD7A3206B2C51418FC2F5F849285441F6285C6F6C2C514114AE47014A285441F6285CDF6D2C51411F85EB414A28544152B81E656E2C5141EC51B88E4A2854417B14AE476E2C5141333333634B2854415C8FC295722C5141E17A14BE55285441B81E85EB742C5141A4703D8A5F285441CDCCCCEC752C5141AE47E16A602854410AD7A320772C51418FC2F53860285441000000D0782C5141F6285CAF5C2854413D0AD733792C5141CDCCCC3C52285441A4703D7A762C51413D0AD74346285441A4703D2A782C51413D0AD7B343285441713D0A677A2C5141B81E85AB43285441F6285C7F7F2C51417B14AE073928544100000040812C514100000010392854413D0AD7F3812C5141F6285C6F3628544152B81EB5832C51418FC2F5583A28544114AE47D1842C514185EB51083D28544166666666852C51413D0AD76342285441E17A145E852C51418FC2F56844285441B81E858B842C51413D0AD7A3492854411F85EB81802C5141EC51B80E592854410AD7A3E07E2C514185EB51D85C285441C3F528CC7C2C5141666666565E285441CDCCCCCC792C5141B81E85CB5F28544185EB51F8772C5141CDCCCC0C62285441D7A3705D772C514148E17A34652854410AD7A310792C5141CDCCCCDC66285441666666167A2C51417B14AE27672854411F85EB417A2C5141333333C3682854417B14AE477A2C51415C8FC29569285441D7A3701D7A2C51413D0AD7636A2854410AD7A390792C5141B81E855B6B2854418FC2F5B8782C5141EC51B8FE6C285441F6285C2F792C5141E17A146E6D2854418FC2F5287A2C5141295C8F526E2854418FC2F5C87A2C51410AD7A3306F2854410AD7A3507B2C514152B81ED56F285441666666D67B2C51413D0AD7A370285441000000507C2C5141C3F5288C7128544152B81E757C2C5141E17A144E722854419A9999497C2C5141295C8FF272285441CDCCCCEC7B2C5141F6285CCF732854419A9999A97C2C514185EB515874285441713D0AA77D2C51410AD7A3A07128544133333333812C51419A9999397128544166666646862C5141CDCCCC5C6D285441A4703D0A8E2C51413D0AD7036C2854417B14AE27902C51411F85EBE16728544152B81E25932C514148E17AA4662854410AD7A3C0992C514185EB513867285441AE47E15A9B2C51411F85EB7167285441666666569C2C5141295C8F526528544152B81EF5A52C5141666666E66228544148E17A94A52C51416666666660285441D7A370FD9E2C5141C3F5282C60285441CDCCCC9C992C5141CDCCCC8C6028544152B81E15942C5141000000305A28544114AE4711952C5141E17A14FE52285441EC51B89E972C5141F6285CAF50285441295C8F52A22C514148E17A344F285441295C8FC2AD2C51413333336352285441295C8FE2BF2C5141000000F04B285441EC51B80EC32C5141E17A142E51285441C3F528ECC62C5141AE47E15A52285441B81E858BC92C5141A4703D5A4E285441B81E85DBCC2C514152B81E2550285441F6285CAFCD2C5141F6285CDF53285441E17A149ED12C5141B81E850B55285441295C8F72D42C5141333333634F28544185EB5158D72C5141A4703D5A4E285441B81E856BDF2C51415C8FC2D55028544166666636E12C5141333333035A285441C3F5286CE32C514114AE47915C2854417B14AEE7E32C5141E17A14BE61285441F6285CDFE62C5141A4703DEA62285441AE47E15AE72C51416666666667285441EC51B80EE32C5141CDCCCC3C6A2854415C8FC285E02C51418FC2F5286A2854411F85EBB1DD2C5141713D0AB76E285441C3F5281CE22C514185EB51187028544185EB5198E42C51415C8FC2556D28544100000040E62C5141B81E853B6E285441713D0AE7E12C5141B81E85DB742854413D0AD773DE2C5141C3F5283C7428544185EB5118D92C5141B81E858B7A285441000000C0D82C5141713D0AA77A285441B81E853BD82C51419A9999F97A28544114AE47B1D72C51413D0AD7837B285441713D0A27D72C5141F6285CBF7C28544185EB51B8D62C5141EC51B84E7D285441295C8F12D62C5141F6285CEF7D285441F6285C1FD52C514148E17A847E285441713D0AA7D32C51415C8FC2357F2854419A9999F9D02C5141A4703D4A8028544114AE4711CD2C5141E17A14EE812854413D0AD7A3C82C514185EB51388428544148E17A34C52C514152B81E4586285441A4703DAAC42C5141EC51B8AE86285441F6285C3FC22C5141000000408B2854413D0AD7F3BF2C51419A9999C98C285441CDCCCC0CB92C5141000000508E285441D7A3709DAE2C5141B81E85FB8B285441295C8FF2A52C5141F6285C6F8F2854418FC2F588962C514185EB51B890285441295C8F828E2C5141CDCCCC5C91285441A4703DAA892C514148E17A2493285441F6285C6F892C514148E17A8496285441E17A14AE8B2C5141E17A14AE962854417B14AE178D2C5141A4703D2A9528544148E17AF48F2C51418FC2F5F894285441333333C3972C5141D7A3705D9E2854419A9999C9992C5141713D0A679E285441F6285C4F9C2C5141713D0A57A2285441AE47E15A952C5141713D0A57A22854417B14AEC7942C514152B81E05A428544114AE4711982C514152B81E45A72854413D0AD7F3972C5141E17A146EAC28544166666626972C5141E17A146EAC285441C3F5280C952C51419A999999A928544166666626912C514166666696AB28544185EB51488E2C5141B81E85ABB0285441333333338F2C5141D7A370BDB1285441EC51B82E922C5141E17A147EAE2854411F85EBB1932C5141295C8FF2AF285441B81E858B8F2C514100000090B52854413D0AD7938E2C514100000070B7285441295C8FF28C2C51411F85EB91B7285441C3F528AC8B2C5141CDCCCC8CB92854411F85EB218A2C51417B14AE27B92854410AD7A3A08B2C5141713D0A67B4285441713D0A878A2C5141F6285C2FAD28544185EB51688B2C5141AE47E14AAB285441B81E853B8B2C5141E17A142EA928544185EB5148882C514148E17A44A9285441CDCCCCCC872C5141A4703D9AA42854418FC2F558862C5141B81E857BA52854413D0AD743832C514148E17AF4A4285441A4703D2A822C514114AE4711A728544148E17A347E2C514114AE4751A6285441E17A14CE792C514166666676A72854418FC2F5A8782C5141F6285CEFA6285441000000D0762C5141A4703DCAA5285441D7A3706D772C51413D0AD783A4285441295C8FC2792C51419A999929A42854419A9999097B2C5141C3F528CCA2285441333333537D2C5141F6285C9FA2285441E17A143E812C5141C3F528CCA228544185EB5128852C5141B81E858BA3285441AE47E1BA852C51415C8FC2B5A2285441EC51B80E842C5141E17A14BEA1285441F6285C5F812C514148E17AD4A12854415C8FC205812C5141CDCCCC1CA028544152B81EF5822C5141A4703D8A9F2854413D0AD703842C5141EC51B80E9F285441000000C0832C51417B14AE979C285441CDCCCCAC812C5141B81E858B9B285441D7A3708D7E2C51417B14AE879728544152B81E957D2C5141000000E095285441295C8FA27F2C514148E17A6494285441333333E3822C51413D0AD7C393285441F6285CAF832C5141AE47E12A92285441E17A14DE7D2C5141E17A14AE92285441666666467A2C51413D0AD72391285441EC51B8EE792C51413D0AD7338F2854417B14AE877B2C5141A4703D4A8E285441295C8FB27D2C5141295C8F428F285441713D0AC7802C514185EB51B88D28544166666606862C514148E17AD48F285441295C8FD2862C514148E17A848E2854410AD7A300892C5141713D0A678E2854418FC2F5788A2C51418FC2F5B88B28544148E17AF48B2C514152B81E958A285441295C8FE2932C5141000000D088285441F6285C4F952C5141AE47E1BA872854411F85EB31952C51415C8FC25585285441B81E854B8E2C5141713D0A47852854413D0AD763882C5141AE47E1DA87285441A4703D3A862C514166666646882854411F85EB617A2C51410AD7A3407C28544133333303782C5141EC51B8DE7B28544100000070732C5141B81E858B7A285441AE47E1FA6E2C5141F6285C6F7D285441E17A144E702C51415C8FC21580285441AE47E1FA6E2C514114AE4741822854419A9999296A2C51415C8FC2C58128544148E17A64672C51416666665683285441333333D3652C5141333333A3882854417B14AE17622C5141EC51B81E89285441AE47E10A602C5141A4703DAA872854415C8FC2855D2C51410AD7A3F087285441333333335C2C5141AE47E14A88285441B81E854B5A2C5141295C8FC2882854411F85EB91592C514185EB512889285441333333C3582C514114AE47B1892854415C8FC275582C5141713D0A178A285441B81E857B582C51410AD7A3F08A2854410AD7A380582C51413D0AD7B38B2854415C8FC275582C514114AE47818C285441713D0A47582C5141295C8F228D285441A4703DFA572C51417B14AE978D2854415C8FC255572C5141666666568E2854410AD7A3B05A2C5141295C8F928E285441333333035D2C5141295C8FD28E285441295C8F325F2C514114AE47418F28544185EB51A8612C51417B14AE079028544148E17AB4622C51411F85EB819028544166666686632C5141F6285C1F912854413D0AD763642C5141B81E85EB91285441713D0A07652C5141713D0A7791285441713D0AF7672C51418FC2F5D88F2854410AD7A320692C5141333333538F2854417B14AE676B2C514185EB51D88E28544152B81E056C2C5141CDCCCCCC8E2854419A9999B96C2C5141295C8FD28E2854413D0AD7336D2C51415C8FC2F58E285441CDCCCC9C6D2C5141000000308F2854411F85EB916E2C51410AD7A37090285441000000F06F2C5141B81E856B9228544148E17A64702C51418FC2F5C8922854419A999999712C5141AE47E11A93285441C3F5282C742C5141666666269328544152B81E15752C51418FC2F54893285441A4703DCA752C51417B14AE77932854415C8FC255762C5141F6285CCF93285441333333F3762C514185EB51789428544185EB51E8772C5141333333F3952854411F85EBC17B2C51413D0AD71395285441B81E85AB7C2C5141666666969728544152B81E95802C514114AE47819C285441F6285C2F802C514114AE47D1A02854419A9999597F2C5141C3F528DCA0285441000000407E2C514114AE47E19E28544185EB51787E2C51417B14AE979C28544148E17A447C2C5141B81E851B9C2854410AD7A3C07C2C51419A9999199F28544114AE47D17A2C514100000020A1285441D7A3705D792C5141333333F3A028544152B81E65782C51417B14AE17A2285441C3F5287C782C5141CDCCCC3CA328544100000000782C5141F6285CCFA328544152B81E45752C51419A999929A4285441E17A145E722C51411F85EB81A7285441F6285C9F712C5141F6285C5FA72854418FC2F518712C5141E17A144EA82854418FC2F548742C5141E17A144EA8285441B81E851B762C51419A999959A828544100000080782C5141000000A0A8285441C3F528CC792C514148E17A94A82854418FC2F5D87B2C514148E17AD4A82854419A9999197E2C5141A4703DDAA82854411F85EB31802C5141B81E852BA9285441B81E855B812C51418FC2F588A92854411F85EBE1822C5141C3F5282CAA285441F6285CBF832C51419A9999C9AA2854415C8FC245842C514114AE4761AB285441A4703D7A842C5141713D0AE7AB2854415C8FC285842C514133333373AC285441CDCCCCDC832C5141EC51B8BEAC285441C3F528DC822C5141F6285C3FAD285441A4703DCA812C5141295C8FE2AD2854415C8FC2C57E2C51411F85EB71AE285441F6285C5F7B2C51411F85EBB1B42854415C8FC2C5702C514152B81EE5B3285441000000206C2C514185EB5198B1285441000000206B2C5141F6285C3FAA285441CDCCCC2C682C5141F6285C7FAA2854419A9999B9642C514185EB51D8B02854419A9999F95D2C5141B81E854BAF2854410AD7A340582C51417B14AE27B328544148E17A54582C51419A9999E9B3285441A4703D7A582C514148E17AE4B4285441295C8FB2582C5141EC51B84EB6285441295C8FF2582C51411F85EB81B7285441A4703D7A592C51417B14AE37B828544152B81E455A2C5141713D0A87B92854418FC2F5485B2C5141B81E853BBB285441666666365C2C5141333333F3BC285441EC51B8FE5C2C5141A4703DBABD285441F6285CCF5D2C51413D0AD753BE28544148E17A745E2C5141295C8FA2BE28544114AE47315F2C5141CDCCCC2CBF28544166666636602C514185EB5158BF285441A4703D9A642C51417B14AE37BF2854413D0AD723682C5141A4703D7ABE2854413D0AD713692C51415C8FC2F5BE28544185EB51C86A2C514152B81E95BE28544148E17AE46B2C5141CDCCCC6CBE285441000000306D2C5141295C8F42BE28544185EB51386E2C51419A999989BE2854417B14AEC76F2C5141F6285CEFBE285441F6285CCF702C514100000090BF285441B81E853B712C5141F6285C0FC0285441333333E3712C5141C3F528BCC0285441A4703D8A722C5141F6285C5FC1285441E17A14DE722C5141F6285CFFC12854410AD7A3F0722C5141E17A146EC228544148E17A94722C5141D7A3700DC3285441295C8F32722C51410AD7A340C328544152B81E05722C51411F85EBA1C3285441713D0AF7712C514152B81E05C4285441A4703DEA712C514152B81E75C4285441D7A3702D722C514152B81E05C528544148E17A84722C5141B81E859BC528544185EB51A8722C5141CDCCCC4CC6285441E17A14CE722C51417B14AE27C728544152B81EE5722C51418FC2F558C8285441AE47E12A732C5141295C8F42C9285441AE47E13A742C51419A999959CC28544114AE4741752C5141AE47E15ACF2854410AD7A320762C5141713D0A47D22854418FC2F5F8762C514185EB5118D3285441A4703DAA772C514185EB5148D42854411F85EB01782C5141E17A14EED428544152B81E15782C51410AD7A370D5285441EC51B88E782C514185EB51F8D6285441CDCCCC1C792C51418FC2F598D8285441B81E85BB792C514100000060D92854413D0AD7537A2C5141D7A3702DDA285441CDCCCC0C7B2C51410AD7A300DB285441F6285C5F7B2C51410AD7A370DB285441D7A3708D7B2C5141295C8F22DC28544114AE47D17B2C51419A9999B9DC285441D7A3702D7C2C5141CDCCCCFCDD285441295C8F927C2C5141333333D3DE285441000000707D2C5141B81E855BE02854419A9999C97D2C5141EC51B8EEE0285441F6285C2F7E2C514185EB5138E1285441A4703D4A7F2C514148E17A84E1285441A4703D9A7F2C5141C3F528ACE128544152B81EF57F2C514152B81E05E2285441713D0A47802C514152B81EC5E22854410AD7A3B0802C514133333313E3285441AE47E14A812C5141EC51B82EE3285441713D0AE7812C514185EB5128E328544185EB51E8822C51418FC2F5E8E2285441CDCCCC5C832C5141713D0AE7E22854418FC2F5F8832C5141D7A370EDE22854417B14AE37852C51413D0AD7F3E22854411F85EB91852C5141C3F528DCE22854419A9999D9852C5141666666B6E2285441B81E85BB862C5141A4703DFAE1285441CDCCCC8C872C514133333373E1285441EC51B86E882C514152B81E45E12854411F85EBB1882C51413D0AD733E1285441E17A14FE882C51413D0AD7E3E028544133333313892C5141F6285CAFE0285441D7A3708D892C51415C8FC225E028544114AE47D1892C51415C8FC225E0285441F6285C1F8A2C51410AD7A330E0285441295C8F428B2C5141E17A147EDF285441CDCCCC8C8C2C51413D0AD793DE285441713D0AB78D2C514148E17AE4DD28544152B81E55922C514185EB5198DD285441295C8F42982C5141295C8FF2DB285441333333B3982C5141AE47E15ADA2854419A9999099D2C5141D7A370BDDA285441A4703DBA9F2C5141D7A370EDD82854411F85EB819F2C5141EC51B82ED628544185EB51C89F2C51418FC2F588D4285441E17A14BE992C514185EB5108D0285441B81E85BB9A2C51413D0AD773CD28544114AE47C1982C5141E17A14FEC9285441A4703DDA992C5141666666F6C72854418FC2F5989C2C51418FC2F5C8C8285441F6285CAF9E2C5141CDCCCC4CCC285441A4703D8AA12C51418FC2F568CC285441C3F5287CA12C5141CDCCCC3CC828544152B81EB59C2C5141F6285CCFC628544152B81EB59C2C514100000070C52854417B14AED79A2C514148E17AF4C32854418FC2F588982C51418FC2F5B8C4285441295C8FD2972C51419A999969C728544166666616942C51419A999999C5285441295C8F32942C5141713D0A67C3285441F6285CFF962C514185EB51B8BF2854418FC2F5B8972C5141B81E85DBBE285441AE47E14A9A2C51419A999949BF28544148E17AD49B2C5141B81E857BC1285441000000909F2C5141C3F528BCC3285441EC51B8AEA32C5141EC51B8AEC32854415C8FC275A42C514148E17AB4C2285441C3F5285CA52C5141A4703D5AC1285441713D0AF7A72C5141B81E850BC1285441295C8FE2A92C5141E17A149EBF285441713D0A47AE2C51415C8FC2D5BF285441E17A146EAF2C51418FC2F508BD285441B81E853BB22C514133333333BD285441713D0A27B42C514100000000C0285441666666F6BA2C51413D0AD7B3C1285441B81E856BBE2C51411F85EBD1C5285441C3F528BCC42C5141333333B3C628544114AE47B1C32C514114AE47E1C028544148E17AB4C62C51418FC2F5D8BE2854410AD7A3E0C92C514148E17A64BF28544148E17A24CA2C514148E17A94BF285441C3F5284CCA2C5141000000D0BF285441AE47E12ACB2C514152B81EE5C12854411F85EBC1CB2C51413D0AD713C3285441CDCCCCCCCC2C51415C8FC285C4285441EC51B82ECE2C5141B81E856BC8285441C3F528FCCD2C5141EC51B84ECC2854419A9999F9CE2C514100000010CD28544148E17A44D22C514114AE4781CC285441666666C6D32C5141F6285CEFCD285441AE47E1DAD42C5141713D0A27CE2854419A9999C9D52C5141000000A0CF285441CDCCCCECD52C51419A999909D0285441CDCCCCECD52C514185EB5178D02854419A9999C9D52C51418FC2F5F8D0285441D7A3709DD52C514114AE4751D12854413D0AD743D42C514133333323D1285441B81E857BD32C51413D0AD7B3CF2854418FC2F588D22C514152B81ED5CF285441295C8FA2D22C5141A4703D0AD1285441713D0AD7D32C5141295C8F92D2285441B81E857BD32C514166666666D42854418FC2F588CF2C51418FC2F558D5285441E17A148ECE2C5141E17A145ED42854419A999959CD2C51417B14AEC7D3285441713D0A67CC2C51418FC2F5E8D02854411F85EB31CB2C514133333323D12854410AD7A3D0C82C5141A4703D4AD0285441AE47E10AC92C51411F85EBC1D12854410AD7A310CB2C51413D0AD723D42854418FC2F508CE2C51410AD7A3A0D4285441CDCCCCACCD2C5141E17A14DED528544133333343CB2C51415C8FC2D5D528544148E17A24CC2C51415C8FC2C5D828544114AE47E1CB2C514148E17A24DA2854413D0AD7E3C92C51418FC2F508DC2854418FC2F508CE2C51413D0AD753DC285441AE47E1FACE2C514133333303DD285441CDCCCC2CCF2C5141C3F528DCDD2854410AD7A340D02C51410AD7A340DE285441D7A370ADD02C5141D7A3706DDF2854410AD7A3C0D12C5141713D0A97DF2854417B14AE67D22C514114AE4711DF2854418FC2F5F8D32C51419A999959DB2854415C8FC235D52C51419A999959DB28544148E17AD4D52C5141333333C3DD2854415C8FC265D72C514152B81EF5DD285441713D0AC7D92C51410AD7A310DB2854411F85EBE1DA2C5141C3F5281CDB285441A4703D8ADC2C514185EB5148DB2854410AD7A370DD2C51418FC2F578DB28544148E17A94DE2C5141666666D6DB285441AE47E1DAE42C51411F85EB11DB2854418FC2F5E8E42C51410AD7A340DE285441E17A145EE82C5141CDCCCCECDD2854418FC2F5F8E82C5141B81E85DBDE285441295C8F82EA2C5141CDCCCCECDD2854410AD7A3D0EC2C5141713D0A17DE2854410AD7A370F02C5141666666A6DD285441295C8F32F22C5141B81E859BDC28544185EB5108F22C5141C3F5283CDB285441C3F5281CF02C5141A4703DEAD9285441333333F3EA2C514100000050D928544133333363EB2C5141B81E852BD728544133333323E92C514152B81EE5D628544148E17AA4E82C5141E17A145ED9285441F6285CCFE32C514148E17A14DA2854410AD7A3A0E02C51411F85EB41D9285441F6285C8FE12C51417B14AE47D728544100000040E42C514152B81EE5D62854413D0AD7B3E32C51411F85EB31D528544148E17AF4E02C5141000000B0D5285441295C8F92E02C5141713D0A67D6285441E17A142EDC2C514133333383D6285441F6285C7FDD2C514114AE47D1D8285441EC51B80EDD2C5141C3F528DCD9285441EC51B8CEDA2C51410AD7A3C0D9285441D7A3707DD92C51410AD7A320D62854410AD7A3C0DA2C514133333373D2285441C3F5288CE22C5141000000A0D1285441A4703D9AE22C514152B81EC5CE285441D7A3701DE12C514148E17A84CD285441E17A149EE62C514133333393CB285441B81E857BED2C5141EC51B8AECE285441AE47E13AEF2C51418FC2F538CC28544114AE4751EC2C514148E17AF4C928544152B81EC5EC2C5141000000A0C7285441295C8F42EE2C51419A9999E9C62854415C8FC2A5EE2C5141AE47E14AC5285441B81E85ABEB2C51418FC2F5A8BF285441AE47E18AEA2C5141D7A3706DBA285441CDCCCCCCEB2C51419A999989B82854417B14AE77E92C51415C8FC285B4285441F6285C8FE92C51415C8FC2B5B22854410AD7A3B0DF2C51415C8FC255B628544114AE47C1DF2C5141AE47E18AB12854410AD7A380E12C51417B14AE97AD2854415C8FC245E02C5141AE47E18AA828544148E17A54DE2C51413D0AD793A9285441713D0AD7DC2C5141EC51B88EAC285441333333C3D82C5141EC51B85EAE28544166666696D82C5141EC51B8BEAD285441D7A3701DDB2C514133333393AC285441295C8F02DD2C51415C8FC295AA28544148E17AC4DD2C5141713D0A47A828544148E17A94DD2C51410AD7A300A6285441CDCCCC9CE02C5141A4703DBAA3285441C3F528DCE22C51419A9999299F285441295C8FF2E32C51417B14AE279B285441F6285CDFE52C5141CDCCCC1C9A285441F6285C6FE72C5141295C8F5295285441F6285C8FEA2C514152B81EC59228544148E17AE4ED2C5141000000108B285441CDCCCC8CEB2C51415C8FC21589285441A4703D1AE92C5141AE47E18A8A285441F6285C9FE42C5141000000009628544100000020E22C5141295C8FA295285441CDCCCCECE52C51415C8FC25585285441295C8FE2EB2C5141CDCCCCBC822854411F85EB31EF2C5141333333937D285441F6285C4FF32C51418FC2F5C87D285441713D0AF7F52C5141E17A149E83285441713D0AD7F72C51415C8FC205852854418FC2F548F92C5141AE47E1AA882854418FC2F5A8F62C51418FC2F5D88B28544152B81E65F62C51413D0AD7F38E2854417B14AE07F22C5141A4703D7A8F28544133333373F02C5141EC51B85E93285441D7A370EDEB2C5141EC51B85E942854410AD7A330EA2C5141666666369628544148E17A64EB2C5141A4703D7A9A285441A4703DBAE92C5141713D0A67A128544185EB51C8EC2C5141C3F5284CA2285441B81E85FBEC2C5141C3F528DCA1285441A4703D2AEE2C51417B14AE67A02854417B14AE87F02C5141295C8F629E28544185EB5188F22C5141EC51B8EE9F2854410AD7A330F62C5141CDCCCC1C9F28544148E17A84F62C51411F85EB419E2854419A9999A9F62C51410AD7A3709D285441CDCCCCDCF62C5141B81E856B9B28544185EB51D8F62C51418FC2F5789A2854417B14AEB7F62C51411F85EBF199285441333333B3F62C51418FC2F50898285441CDCCCCDCF62C514148E17A94972854419A999919F72C5141A4703D6A97285441D7A370DDF82C51417B14AEC79728544100000060FA2C5141713D0A379528544166666636FB2C51418FC2F5B8932854410AD7A360FD2C51413D0AD7438F285441713D0AA7FF2C5141666666268A285441CDCCCCCC012D51417B14AEA785285441EC51B84E022D514185EB51C8842854419A999999022D514148E17A748428544100000000032D5141295C8F128428544185EB51C8032D5141295C8FA283285441333333A3042D5141EC51B82E83285441295C8F52082D51417B14AE0786285441000000C00A2D514152B81E958F2854418FC2F548092D5141CDCCCC0C962854411F85EB910C2D51418FC2F5B89C285441E17A146E122D5141CDCCCCDC9B285441EC51B8BE132D5141AE47E1BA98285441E17A147E132D5141F6285C6F94285441713D0AB7152D5141E17A14BE8B2854410AD7A3501A2D5141EC51B8BE822854410AD7A3F0172D5141666666C6802854410AD7A320122D514148E17A8489285441E17A144E0B2D514185EB515887285441CDCCCCCC0A2D5141295C8F0284285441B81E854B092D5141CDCCCCEC81285441D7A370AD092D5141A4703D6A812854413D0AD7130A2D5141B81E853B8028544185EB51880A2D514185EB51987E285441666666060B2D51410AD7A3F07B28544185EB51680B2D5141A4703D3A79285441EC51B8CE0B2D5141B81E857B7828544148E17A140E2D5141CDCCCCFC75285441E17A148E102D51413D0AD71373285441E17A144E142D5141E17A140E6F2854410AD7A370102D51419A9999F96C2854417B14AEE7102D5141713D0AE7692854418FC2F598152D514100000020652854411F85EBF1202D5141AE47E1DA67285441295C8F62212D5141CDCCCC4C572854417B14AEB71F2D514114AE47A15328544114AE47411E2D5141B81E85DB4F28544114AE4781172D514152B81EB54E285441EC51B8FE0C2D5141000000705328544185EB51980B2D51418FC2F54850285441E17A149E082D51418FC2F5B8502854413D0AD733052D514148E17AF458285441295C8F22022D51411F85EB315C2854418FC2F598FF2C514152B81E255B285441EC51B8CEFE2C5141AE47E1BA572854415C8FC2F5012D5141A4703D8A55285441000000C0022D514133333363522854415C8FC2A5002D5141EC51B80E4F285441333333E3032D514148E17AA44B2854418FC2F5E8002D514148E17AE449285441E17A144EFB2C5141D7A370ED482854413D0AD7A3F92C514114AE47F14A28544133333343F52C51410AD7A33049285441295C8F02FC2C5141AE47E1EA3F28544152B81E05FE2C5141713D0A873B285441A4703DBA052D5141A4703D9A392854410AD7A3D0052D51411F85EB8132285441D7A370CD022D514114AE47712D28544152B81EA5FB2C5141E17A146E2F2854410AD7A320F92C51411F85EB0128285441B81E85DBEC2C5141AE47E13A26285441F6285C9FEA2C51415C8FC2A521285441CDCCCC7CF02C51410AD7A3501A28544133333353F02C51411F85EB61172854419A999939E62C5141F6285CDF172854417B14AEF7E22C51418FC2F5981C2854415C8FC225DB2C5141CDCCCCBC1D2854411F85EB41DB2C51413D0AD7231B28544185EB51F8E12C5141D7A3704D1A28544114AE4701E42C5141B81E858B17285441E17A140EDD2C5141EC51B86E1128544114AE47C1DC2C5141CDCCCC2C102854418FC2F558E32C514152B81E850C285441295C8FA2EC2C5141295C8FC20C28544152B81E25F72C5141B81E85AB0A285441A4703DBAFA2C5141AE47E14A0C28544152B81ED5FD2C51415C8FC2250B285441E17A14AEFA2C5141D7A3708D04285441EC51B8CEF52C5141A4703DFA02285441E17A14BEF02C5141D7A3700DFD275441D7A3704DF42C514152B81E65F82754418FC2F5B8F22C51410AD7A380F5275441295C8FD2F02C514152B81E55F3275441713D0A67EF2C514152B81E65F2275441713D0A47EB2C51419A999969F02754418FC2F558E92C51417B14AE07EE27544148E17AE4E82C51419A9999D9EC275441000000C0E92C5141E17A143EEB275441713D0A97E92C51410AD7A330E8275441B81E85DBE32C5141E17A141EE1275441295C8F32E22C5141C3F5285CE1275441B81E85EBDC2C5141E17A14FEE2275441A4703D7AD32C5141AE47E1DADF2754410AD7A310D22C5141A4703D6ADD275441CDCCCC1CD62C514152B81E65DA2754419A9999F9D02C5141AE47E1DAD8275441D7A3703DCF2C514133333323D3275441CDCCCCCCD32C5141A4703DCAD1275441E17A14DEDC2C51419A9999E9D3275441713D0A97E02C5141C3F528FCD1275441E17A144EE82C5141C3F5282CCF275441B81E85FBEA2C51417B14AE47D5275441000000E0ED2C514152B81E05D72754418FC2F548F32C5141EC51B83ED9275441713D0A47FD2C514152B81E15E227544148E17A34022D514133333373E9275441D7A3700D012D5141E17A148EEC275441666666C6042D5141E17A145EF2275441666666C6072D51410AD7A3E0F5275441D7A3704D092D51417B14AE37F72754411F85EB91092D5141713D0AE7FE27544152B81EA50D2D5141AE47E1DA0428544148E17A24112D514185EB51E804285441EC51B87E172D514185EB5138FD2754411F85EB41192D5141EC51B8FEEB27544166666646192D5141D7A3703DE92754411F85EBB1162D514133333303E8275441EC51B82E132D5141E17A14EEE6275441CDCCCC1C102D5141A4703D3AE6275441AE47E10A0D2D5141E17A14DEE42754411F85EBD10A2D514148E17A94E3275441333333B3092D51417B14AE97E227544148E17AF4072D5141F6285C8FDF2754419A9999B9062D514133333333DE2754418FC2F568052D514148E17A74DD27544152B81ED5032D51415C8FC2B5DC275441E17A143E012D5141CDCCCC9CDB275441A4703DFAFF2C5141A4703D9ADA27544185EB5168FD2C514114AE4781D9275441AE47E18AFB2C5141000000F0D8275441295C8FD2F82C51413D0AD703D8275441EC51B82EF52C514185EB5198D427544185EB5188E62C51415C8FC225C92754415C8FC205E32C51410AD7A3B0C627544152B81EA5DF2C51415C8FC295C4275441F6285C7FDD2C514152B81EB5C32754418FC2F558DB2C514114AE4791C227544185EB5168D82C51419A999949C02754415C8FC205D42C514152B81E35BC2754410AD7A300CF2C5141000000C0B62754419A9999B9C82C514185EB5118B02754411F85EBA1C62C5141A4703DEAAE275441CDCCCC7CC42C514133333353AE27544152B81E65C22C5141EC51B80EAE275441AE47E1FABF2C514133333353AE275441C3F5284CBD2C5141333333B3AE2754418FC2F5B8BA2C514185EB5158AF2754418FC2F528B62C5141AE47E16AB0275441F6285C5FB32C514166666686B02754418FC2F558AF2C5141CDCCCCFCAF2754415C8FC265AC2C51411F85EBE1AF275441333333C3A62C5141666666C6AF275441666666E6A22C5141333333F3AD275441EC51B80EA02C5141295C8F72AC2754411F85EB519D2C51418FC2F5E8AB275441C3F5280C9A2C5141295C8FB2AB27544133333393942C514100000020AC2754418FC2F528922C5141295C8FB2AB275441F6285CBF8F2C5141B81E85DBAB275441B81E852B8D2C51410AD7A380AC275441AE47E12A8A2C514133333393AD27544152B81E05882C5141333333B3AE275441000000A0862C514166666686B027544148E17A84862C5141713D0A67B2275441295C8F52872C5141A4703D3AB42754415C8FC285892C51418FC2F588B6275441E17A14DE8D2C51410AD7A3C0B92754419A999909942C51410AD7A310BF275441B81E85AB9C2C5141333333D3C52754417B14AE179F2C514100000040C7275441EC51B85EA32C5141F6285CBFC82754418FC2F548A92C51411F85EBE1CB2754419A9999E9AF2C5141D7A3704DD0275441F6285CAFB62C51417B14AEB7D52754419A999999BC2C5141295C8FA2DB275441A4703DAABF2C514133333323DF2754413D0AD7D3C02C5141E17A14EEDF275441295C8F82C02C51415C8FC275E0275441AE47E1BAC22C5141E17A146EE5275441C3F5280CC32C51418FC2F598E7275441EC51B8FEC22C5141D7A3708DE927544114AE4741C22C5141C3F5284CEB27544152B81E25C12C5141713D0A17EC275441A4703DAABF2C514133333383EC275441000000F0B52C51419A999959EB27544152B81E15B32C514100000090EB275441D7A3707DB02C51419A999909EC2754417B14AED7AC2C5141C3F528ACEC27544148E17A84AA2C5141000000F0EC2754415C8FC265A72C514148E17AD4EC275441713D0A97A32C5141AE47E15AEC2754418FC2F5089D2C514114AE4781EA2754413D0AD7739C2C51419A9999A9EA275441A4703DAA9C2C5141C3F5284CEB2754415C8FC205A62C5141B81E858BF3275441B81E856BAC2C5141AE47E15AF8275441B81E85BBB22C51411F85EBF1FD2754415C8FC2A5B42C5141333333030028544152B81E55BA2C5141713D0A470828544114AE47F1BB2C51419A9999890A2854415C8FC2B5BD2C5141F6285CFF0D28544166666686BE2C51415C8FC2F50F2854419A9999C9BE2C5141C3F5287C1228544166666606BF2C51413D0AD79314285441D7A3707DBF2C5141666666F616285441B81E852BC02C514185EB51C81828544148E17A64C12C514148E17A141B285441000000E0C32C5141666666161E285441000000B0C52C5141333333032128544100000010CA2C5141713D0A471C285441C3F5282CD02C51418FC2F5281C285441A4703D4AD32C51415C8FC2C52028544114AE4771D72C5141F6285C8F1F285441333333F3D72C51411F85EB4121285441E17A144ED42C51419A999959272854411F85EB51D02C51418FC2F5182728544114AE47F1CB2C5141666666F623285441EC51B8CEC82C5141D7A370ED242854415C8FC275C92C51419A9999C92528544114AE4771CC2C514114AE47312A2854417B14AE07CE2C5141666666662C2854410AD7A310CF2C5141C3F5289C2E28544148E17A34D12C5141713D0A573A285441000000B0D32C5141C3F528DC3F2854413D0AD7D3D52C51413D0AD7D3422854415C8FC2D5D62C51411F85EBC143285441AE47E10ADC2C51413D0AD7733F28544148E17A04DF2C5141D7A370BD42285441B81E850BDA2C5141000000D046285441D7A3702DDD2C5141713D0A47492854410AD7A3E0DF2C5141713D0A874C285441333333B3E02C51419A9999494E2854411F85EB11E22C5141AE47E12A502854413D0AD783E32C514148E17AE450285441C3F5285CE52C5141713D0AB7502854418FC2F578E72C5141D7A370AD50285441A4703D0AE92C5141333333435128544114AE4751F32C5141B81E857B58285441295C8F22F42C51410AD7A3405928544114AE4701F52C514114AE47A15A285441295C8FC2F52C5141EC51B8EE5B285441666666F6F52C5141AE47E12A5F285441A4703D6AF22C514152B81E6563285441A4703D4AF02C5141713D0AD761285441F6285C1FF42C5141EC51B8EE5C285441C3F5281CF52C5141C3F528FC5D285441A4703DFAF42C5141333333035C285441AE47E1BAF32C5141CDCCCCCC592854418FC2F518EB2C5141E17A14EE53285441E17A14CEE82C5141AE47E15A522854418FC2F548E72C51410AD7A3F051285441713D0A37E52C51410AD7A3F051285441D7A3707DE32C51410AD7A3F05128544152B81E25E12C51418FC2F5F85028544148E17A24DF2C514148E17A744D28544148E17AD4DB2C5141713D0A9749285441A4703D6AD92C5141D7A370DD472854419A999969D52C5141CDCCCCDC43285441AE47E1CAD22C514148E17A3440285441CDCCCC3CD02C5141A4703D7A3A28544133333383CE2C514148E17AF4302854413D0AD733CD2C5141333333932F2854410AD7A300CB2C514133333313312854410AD7A370C82C514185EB51782E28544185EB5168C92C5141B81E859B2C285441295C8FD2CB2C5141000000D02A285441CDCCCC9CC82C5141EC51B80E2628544152B81E95C62C5141A4703DEA232854413D0AD7E3C42C5141EC51B83E21285441C3F5286CC32C5141A4703DBA1E285441E17A14DEC02C5141EC51B87E1B28544100000070BF2C5141CDCCCCDC18285441000000B0BE2C51411F85EBC1162854415C8FC245BE2C51419A99998914285441C3F5280CBE2C514152B81E3512285441F6285CBFBD2C51410AD7A31010285441B81E85EBBC2C5141F6285CFF0D285441713D0A27BB2C51413D0AD7C30A285441295C8F32B42C5141666666760028544114AE4751B22C514185EB5178FE2754411F85EB41AB2C51418FC2F568F827544185EB51F8A52C51413D0AD763F42754410AD7A3909D2C5141AE47E10AED2754410AD7A3D09A2C51415C8FC215EB275441333333139A2C514166666606E9275441333333F3952C5141295C8F12E82754410AD7A380932C5141713D0A87E627544152B81E35932C5141B81E85ABE327544166666646952C5141D7A3707DE227544148E17A04992C514100000080D4275441A4703D5A9D2C514114AE47A1D227544152B81E859F2C5141EC51B8AED52754419A999969992C5141D7A3706DD927544148E17A149B2C5141B81E85ABE027544185EB5148992C5141F6285CFFE2275441CDCCCCAC9E2C51419A9999F9E92754419A999989A32C514100000090EB2754415C8FC265A72C51411F85EB31EC2754411F85EB91AA2C514100000040EC275441295C8FF2AC2C51419A999909EC27544152B81E15B32C514152B81EC5EA2754415C8FC225B62C51419A9999A9EA275441F6285CCFBC2C514114AE4731EB275441A4703DFABE2C51419A999959EB2754417B14AE67C02C514114AE4731EB27544166666676C12C51415C8FC265EA275441D7A370FDC12C514166666606E927544185EB5118C22C51418FC2F598E727544152B81ED5C12C514100000060E527544114AE4731C02C51417B14AEC7E127544114AE47D1BE2C51411F85EB81DF2754410AD7A3D0BB2C5141D7A370FDDB275441AE47E10AB62C5141C3F5285CD62754418FC2F5E8B12C5141C3F528CCD227544100000080A82C5141D7A3703DCC27544133333303A32C514133333363C9275441EC51B8CE9E2C5141666666F6C7275441E17A143E9C2C5141E17A14AEC6275441295C8F72932C5141A4703D9ABF27544152B81E558D2C5141A4703D4ABA275441E17A14CE872C51413D0AD743B6275441B81E855B862C5141333333C3B4275441F6285C7F852C51410AD7A3F0B2275441AE47E13A852C51411F85EB61B12754418FC2F5A8852C51413D0AD7D3AF275441295C8F92862C5141EC51B86EAE2754410AD7A320882C514133333393AD275441295C8F428C2C5141000000C0AB2754415C8FC2958F2C514100000000AB275441C3F5285C942C514100000000AB27544185EB51B8962C5141B81E851BAB275441A4703DDA9A2C514148E17AE4AA275441000000E09E2C514166666636AB2754413D0AD773A12C5141295C8F12AC2754415C8FC255A62C51417B14AE97AE275441F6285CBFA82C514114AE4721AF2754413D0AD7B3AE2C514114AE4721AF2754415C8FC235B32C5141666666C6AF275441D7A3704DB52C5141666666C6AF275441CDCCCC7CB92C5141CDCCCCDCAE275441AE47E1EAB92C5141CDCCCC7CAE27544114AE47C1B92C5141A4703DCAAD27544148E17A84AA2C5141A4703D7AA827544185EB5188A82C514152B81EB5A627544152B81EE5AA2C5141CDCCCCBCA2275441E17A141EB12C5141713D0A87A5275441295C8FA2B02C5141A4703D1AA82754410AD7A310B12C5141AE47E19AA9275441713D0A47BC2C514152B81EE5AD275441C3F5280CBE2C514152B81EE5AD27544148E17A44C12C51410AD7A340AD275441EC51B80EC42C5141C3F5285CAD2754411F85EB41C62C514152B81EE5AD2754410AD7A390C82C5141CDCCCCDCAE27544133333383CB2C5141333333A3B1275441C3F5289CD12C514114AE4791B8275441EC51B88ED52C5141C3F528BCBC2754418FC2F548D92C514114AE4711C0275441C3F5289CDB2C5141295C8FD2C12754410AD7A3A0DD2C5141AE47E1EAC2275441713D0A37E02C51415C8FC225C42754417B14AE97E32C5141EC51B81EC627544152B81E25E72C51413D0AD793C82754413D0AD793F52C5141AE47E1FAD3275441295C8F42F92C514152B81E45D7275441EC51B89EFA2C5141D7A370EDD7275441000000F0FB2C5141C3F5283CD8275441D7A3706DFD2C51418FC2F568D8275441333333B3FE2C5141000000F0D827544148E17A74002D5141713D0AE7D9275441EC51B8AE012D5141E17A14DEDA275441E17A144E032D5141333333B3DB2754415C8FC225052D51410AD7A350DC27544185EB5108072D5141F6285C7FDD27544133333343082D5141EC51B8AEDE2754418FC2F5680A2D514148E17A04E22754411F85EB810B2D514166666606E32754415C8FC2150D2D5141D7A370FDE3275441CDCCCC1C102D514100000070E5275441713D0A67132D5141A4703D3AE6275441EC51B8AE192D514185EB51A8E7275441E17A14BE1A2D514114AE4711E5275441AE47E1DA1A2D5141B81E856BE3275441E17A14BE1A2D514152B81EB5E1275441AE47E11A1A2D51418FC2F5C8DF2754417B14AEE7172D5141B81E858BDB275441295C8FD2152D514100000050D8275441C3F5285C112D514152B81E15C527544185EB5138062D51415C8FC215B827544100000080DB2C5141295C8F62A0275441BB600F5DD22C514128F2A0809A27544102DBBF6CCF2C514176C1816697275441A06BC466CE2C514173FD92F397275441E17A14AEC62C5141AE47E1FA92275441333333C3B62C5141A4703DAA8827544152B81EB5B52C514148E17A348727544121C1C78CEB2C5141D95EB792F8265441495374DB1A2D51414C1B40A5B62654417EFCF8C2772D51418E6B6510F9255441F6A548BE8F2D5141271DDFB8E1255441F6285C1F902D5141B81E85EBE1255441713D0AD7912D5141000000A0E3255441D7A3707D932D51413D0AD763E5255441713D0A37942D5141295C8FF2E525544133333333952D5141A4703D1AE6255441F6285C5F972D5141AE47E1EAE525544148E17AF4992D514166666666E5255441A4703D8A9A2D5141A4703D8AE525544114AE47D19B2D5141B81E855BE6255441D7A3700D9D2D5141666666A6E62554418FC2F5A89D2D5141B81E85CBE625544114AE47319E2D514152B81EA5E7255441333333A39F2D51410AD7A320EA255441CDCCCCACA02D514100000060EC255441EC51B82EA12D5141713D0A47ED255441AE47E1EAA12D51419A9999D9ED255441B81E850BA32D514152B81EC5EE2554417B14AEA7A32D5141CDCCCC2CF025544185EB51A8A42D51411F85EB11F22554410AD7A3F0A52D5141CDCCCCACF3255441713D0A97A72D5141F6285CCFF52554413D0AD753A92D514133333313F8255441713D0A67AA2D51419A9999A9F92554415C8FC265AB2D514148E17AB4FA255441CDCCCC7CAC2D51417B14AEB7FC255441E17A142EAE2D5141B81E85DBFF2554410AD7A3E0AE2D5141F6285C2F0126544185EB5178AF2D514185EB51B802265441D7A370BDB02D5141C3F528BC032654413D0AD743B12D514152B81E7504265441A4703DCAB12D51416666665605265441E17A147EB22D5141713D0AA7072654413D0AD7D3B22D5141D7A370ED0826544185EB51A8B32D514148E17AA40B2654415C8FC2D5B32D51417B14AEA70C265441295C8FF2B32D514114AE47910D26544114AE4791B42D514152B81EA50E26544100000040B52D5141713D0AF70E265441EC51B8BEB72D514152B81E151026544152B81EA5BA2D5141CDCCCC9C112654410AD7A3C0BD2D5141F6285C9F132654411F85EB41BE2D51410AD7A3A01426544100000040BF2D51411F85EBD1152654419A999999C12D514185EB51681726544152B81EB5C32D51411F85EB2119265441AE47E16AC72D51413D0AD7331E265441F6285CFFC72D51419A9999991E2654418FC2F528C92D514114AE47B11E2654417B14AEA7CA2D51415C8FC2451F265441CDCCCC8CCC2D51419A9999A9202654410AD7A390CE2D51413333336324265441295C8F82CF2D514152B81EC5262654410AD7A330CF2D51418FC2F57829265441295C8F32D02D5141295C8F2229265441713D0A77D12D514152B81E152A26544152B81ED5D52D5141AE47E12A2D265441C3F528BCD82D5141E17A14AE3026544185EB5158DB2D51411F85EB1136265441333333E3DC2D5141CDCCCCEC36265441C3F5280CE02D5141AE47E1FA39265441333333E3E72D5141AE47E11A3D265441713D0A57EC2D5141666666E63E265441D7A3706DEE2D5141CDCCCC7C3E2654410AD7A3B0EE2D514148E17AA43D2654413D0AD703F12D5141000000503D265441EC51B8BEF32D514185EB51B83B265441E17A146EFB2D5141333333D3392654417B14AE37002E5141AE47E19A3B265441A4703DBA082E51419A9999693D26544114AE47A10E2E51413D0AD7F34326544148E17AB4102E51411F85EB114A2654419A999939102E5141B81E856B4D265441333333330E2E514152B81EA54E265441B81E852B102E5141295C8FC25026544100000060122E51419A9999695126544114AE4721142E51413D0AD743552654419756B004142E5141EDFCC912582654412CD1DD08142E514140EFB82358265441C3F5286C142E51413D0AD7135A265441333333D3142E514148E17A245B2654411F85EB11182E514114AE474160265441EC51B86E182E5141EC51B8AE61265441C3F528CC182E51410AD7A3E06426544100000090182E5141EC51B8BE66265441A4703D4A192E51419A9999D966265441E17A14AE172E514100000030692654410AD7A3A0172E51418FC2F5D86A265441000000D0172E5141A4703D8A6C26544114AE47E1172E5141295C8FD26D265441A4703DEA172E5141333333D36E265441C3F5286C182E514166666636702654411F85EB71192E514114AE475172265441F6285CCF192E514185EB51787626544185EB51381C2E5141295C8F927E265441B81E853B1C2E51413D0AD7B37F2654413D0AD7831B2E514185EB51C8812654411F85EBA11C2E51419A99991986265441AE47E1AA1C2E5141C3F5288C87265441F6285C2F1D2E514185EB51C889265441EC51B8EE1F2E5141B81E857B8626544114AE4771242E5141B81E855B83265441333333F3282E5141AE47E14A81265441000000C02D2E5141295C8F2280265441CDCCCC1C332E514152B81E657F265441EC51B8EE332E5141713D0A177F265441C3F528AC352E5141666666767F26544152B81E153C2E5141F6285C5F80265441C3F5281C402E5141E17A149E80265441CDCCCC7C422E51417B14AE278026544133333313452E5141CDCCCCFC7E26544185EB5178512E5141B81E85CB7626544114AE47D15C2E514152B81EE56E265441295C8FF25F2E5141666666466C265441295C8FD2622E5141EC51B8BE6826544114AE4741672E51411F85EBD161265441713D0AD76A2E51413D0AD7E35A265441666666A66C2E5141B81E855B57265441EC51B8BE6C2E5141E17A142E572654413D0AD733702E51419A9999A9502654419A999959732E5141000000304B2654419A999949772E514185EB51684426544152B81E057B2E514152B81EC53F265441B5055016812E51418CC95DAF382654415381281C822E5141EFEF8BE1392654410AD7A3C0802E5141000000403C26544148E17A247C2E5141AE47E13A41265441C3F528EC782E5141F6285C7F45265441E17A14AE742E5141D7A370FD4B265441D7A370ED712E51419A99998951265441E17A145E6C2E514152B81E855B2654417B14AED7682E5141C3F528AC62265441F6285C9F662E5141EC51B86E66265441D7A3703D642E51413D0AD7D36926544185EB51B8602E5141A4703D2A6E265441B81E85DB5D2E51419A999979702654415C8FC295522E51411F85EB717826544148E17A14462E5141EC51B8EE8026544100000060432E5141AE47E18A82265441C3F5284C402E51419A9999F9822654417B14AE87352E51413D0AD753812654418FC2F5F8322E514185EB515881265441AE47E1FA2D2E514114AE4711822654415C8FC285292E51419A9999198326544152B81E45252E5141F6285C0F852654411F85EB71212E5141AE47E1FA8726544148E17A441D2E5141F6285CDF8B265441295C8F621D2E5141C3F528CC8D265441713D0A771C2E5141F6285C6F91265441000000101B2E51410AD7A3D09226544148E17A441A2E51419A9999E99526544114AE47D1182E5141713D0A279C265441666666261B2E5141E17A14FE9B265441000000001D2E51413D0AD703992654410AD7A360202E514114AE47219826544185EB51781B2E51411F85EB61A126544114AE47811A2E51411F85EBA1AA2654418FC2F5981C2E51411F85EB51AC26544114AE4711222E5141713D0AF7AC2654418FC2F5D8252E5141F6285CBFA9265441295C8F422F2E51419A999949A626544133333333342E51417B14AE47A62654411F85EB41362E5141CDCCCC9C9F265441CDCCCCBC3D2E5141713D0A979B265441C3F5280C432E5141B81E851B9B26544133333373432E51417B14AE479D265441000000C03F2E5141EC51B85E9F2654410AD7A3003B2E5141EC51B83E9E2654418FC2F558382E51413D0AD703A0265441000000C0382E5141AE47E18AA12654411F85EB813F2E514148E17A44A22654418FC2F578402E514152B81E35A6265441EC51B87E442E51419A999949A62654417B14AE37452E5141CDCCCC9C9F26544152B81EE54B2E514152B81E159E26544185EB51984F2E5141CDCCCC2CA02654415C8FC2255C2E51413D0AD7739E265441F6285C9F5D2E514152B81E159B265441666666F65F2E5141E17A144E99265441EC51B85E6B2E51411F85EB8192265441713D0A07762E51417B14AE5790265441EC51B83E7C2E5141666666668C265441000000107C2E51413D0AD73390265441295C8FB2872E514148E17A54882654413D0AD703862E51417B14AE67842654413D0AD7A3762E514114AE47118B265441F6285C4F712E51419A9999C98C2654418FC2F5886E2E5141713D0AE787265441000000506E2E5141D7A370BD822654410AD7A340742E5141C3F5284C81265441AE47E16A762E51410AD7A3307C265441A4703D2A7B2E51413D0AD7E37526544152B81E857C2E5141EC51B85E6F265441E17A140E842E5141AE47E1DA6D265441D7A3706D832E5141666666466C26544152B81EC5812E5141D7A3702D692654410AD7A3707F2E5141F6285C3F632654410AD7A3507D2E51415C8FC2C559265441C3F5283C7D2E514148E17AC457265441000000607D2E51418FC2F5B8502654417B14AED77D2E5141A4703DDA4F2654415C8FC2757F2E5141E17A142E4D265441F6285C4F802E5141666666164C265441F6285C6F852E51417B14AE87452654419A999969852E51415C8FC2653C2654417B14AE27822E5141D7A370CD39265441C33C6028812E51414BD2459A382654413D0AD7E3812E5141F6285CBF3726544133333373822E5141295C8F123726544114AE4711832E514148E17A743626544185EB5128822E514148E17A9435265441F6285C6F802E5141333333133326544114AE47C17F2E51418FC2F53831265441D7A370AD7F2E514152B81E652F265441CDCCCCEC7F2E5141333333C32D265441AE47E1CA7E2E5141EC51B8BE292654419A9999F97F2E51410AD7A380252654413EB9B3D57D2E5141D91E98621F265441A4703D1A7A2E514114AE47A12126544185EB5178782E5141CDCCCC6C21265441EC51B81E762E51411F85EBB11D26544166666646742E5141EC51B8CE1C265441D7A3702D732E5141CDCCCC8C1C265441E17A14DE6F2E51415C8FC2A51C265441F6285C0F702E5141713D0A071C265441C3F5280C732E5141F6285C4F1B265441B81E85FB752E5141EC51B85E1C265441295C8FA2782E514148E17A341C265441AE47E18A7B2E5141AE47E1DA192654411F85EBA17B2E51419A99995916265441E17A148E7E2E5141C3F5287C162654417B14AEC77E2E5141000000001526544166666626822E51410AD7A350152654418FC2F548822E514148E17A1416265441CDCCCC7C802E5141295C8FB21B26544114AE47E17D2E5141CDCCCC5C1D265441792CCBD57D2E51410E9E78621F265441333333C3802E5141A4703DEA2326544152B81E95812E5141295C8F4225265441333333B3812E514152B81EE525265441333333E37F2E514152B81E052A26544152B81ED57F2E514185EB51082B265441D7A3707D802E5141E17A148E2C26544166666696802E5141F6285C6F2D265441C3F5284C802E51418FC2F5482F265441A4703D4A802E5141CDCCCC9C3026544185EB5188802E51419A9999F9312654413D0AD7F3802E5141F6285CDF3226544152B81EC5812E5141CDCCCC5C342654418FC2F5C8822E5141C3F5287C35265441C3F5285C832E51419A9999E9352654411F85EBC1832E5141B81E85EB35265441295C8F42842E514152B81E9535265441666666D6842E51418FC2F5483526544133333373842E5141333333733426544148E17A74852E5141D7A370FD332654413D0AD7D3852E514114AE47D134265441CDCCCCAC862E5141A4703D9A3426544114AE4741872E514114AE47D1352654415C8FC2558B2E514114AE47A13A2654418FC2F5488B2E51411F85EBC13E26544152B81EA5892E5141295C8F7240265441A4703DAA892E5141E17A14BE41265441AE47E12A882E51418FC2F58844265441E17A146E882E51419A9999E945265441F6285C3F882E51417B14AEE7462654418FC2F5A8872E514114AE47C147265441B81E859B862E5141AE47E19A48265441A4703D6A822E5141EC51B8BE4D2654419A999939802E514100000090562654413D0AD7B3812E5141F6285CAF572654413D0AD7A3832E5141E17A14DE5626544114AE4781862E5141E17A147E5A265441C3F528CC882E514114AE47F15726544148E17AB4892E5141AE47E14A502654411F85EB118D2E5141000000604F2654410AD7A3008D2E514152B81E4553265441C3F5283C8B2E5141666666B659265441F6285C1F8E2E5141713D0AC75A265441D7A3707D8F2E51410AD7A36062265441CDCCCCDC962E5141000000705D265441A4703DBA9B2E5141000000805E2654418FC2F5689C2E514133333323632654411B903E269B2E5141D99A9BEC67265441484DDD9A9C2E51418E8F16BF6D2654414E132719A02E51413FA16CD2712654414E132719A02E5141F495E7A477265441722757509C2E5141A2C418F9792654413D0AD7D3972E5141EC51B86E7C2654419A999999972E514185EB51087F265441A4703DCA912E5141713D0AB78026544133333303932E514152B81E6582265441713D0AE7992E5141EC51B80E832654418FC2F5289E2E51415C8FC24584265441CDCCCCCCA82E514152B81E857C2654418FC2F578AF2E51415C8FC25579265441E17A14AEDE2E5141F6285C8F662654415C8FC2D5DE2E5141AE47E1EA6426544114AE4721E22E5141EC51B83E5F2654411F85EB21EC2E5141C3F528AC5526544148E17AB4ED2E5141000000D056265441CDCCCCACF12E514185EB519854265441F6285CBFF22E5141F6285CFF4E26544152B81EB5EF2E5141A4703DBA4B265441AE47E14AF22E5141C3F5288C47265441C3F5288CF62E5141713D0AD748265441CDCCCCBCF82E5141C3F528BC442654413D0AD753F42E5141F6285C3F4226544152B81E25F72E5141B81E854B3D265441333333B3FB2E5141666666F63B26544185EB5108FD2E514114AE47E138265441E17A143EFD2E51413D0AD7E330265441295C8FC2032F5141295C8F2224265441E17A141E002F514185EB51082226544163BE120DFA2E5141AE2D5D3C1C26544160DBED4DF82E51412130376014265441D9A311F0F32E51411B6AEDE110265441CD177EF3EC2E5141695897CE0C2654411640DE61E52E5141E220BB70082654410AB44A65DE2E5141310F655D0426544166666666DB2E5141EC51B8FEFE2554413D0AD733D62E51419A999999FC2554411F85EB01D42E5141713D0AC7FF2554413D0AD733D22E5141D7A3707D00265441F6285C3FD12E514185EB510800265441E17A14FECE2E5141EC51B80EFF25544185EB5168CD2E514152B81EC5FE2554415C8FC215C72E51417B14AE97FC2554413C7DDC33C52E51415A2B5FB1FA255441818BA46CC52E51411DEF6038FA255441D7A3706DC72E51417B14AEE7FB255441C3F5288CC92E5141295C8FE2FB255441E17A144ECB2E514185EB5158FC255441C3F5287CCD2E514152B81E15FE255441C3F528DCCE2E5141C3F528CCFD255441295C8FE2D02E5141E17A14EEFD255441F6285CEFD12E51417B14AE97FF25544166666676D32E5141E17A147EFE255441713D0AD7D42E5141F6285C7FFC2554418FC2F5A8D52E51413D0AD763FB255441000000A0D92E5141333333F3FB255441E17A14DEDD2E5141295C8FD2FD255441D7A3701DDF2E514114AE479100265441C3F5281CE22E51410AD7A3F00126544185EB5128E92E5141000000600226544133333343F42E5141000000C002265441C3F5282C032F514100000050022654417B14AE970C2F514100000040032654418FC2F5E8092F5141AE47E13A0D265441713D0AD70D2F5141AE47E12A0E26544152B81E95122F514148E17AF403265441AE47E15A172F514100000070F9255441295C8F02182F51417B14AE57F22554417B14AEE71C2F51413D0AD7E3E4255441C3F5285C222F514152B81E55E32554410AD7A380222F51411F85EB91DE255441A4703DDA262F514100000000DD255441713D0A37282F5141F6285C1FDC25544148E17A94302F5141E17A14FED22554415C8FC265372F514114AE47D1CD2554415C8FC2253D2F514114AE4701C82554417B14AE373B2F5141B81E854BBF255441E17A142E2C2F5141E17A140EBE255441EC51B83E2A2F5141333333B3BC25544185EB51D8282F5141A4703DAAC02554417B14AEB7262F5141713D0A47C3255441F6285C6F192F51415C8FC285C02554415C8FC2D5082F5141713D0A77C0255441EC51B8BE032F5141D7A3706DBE255441F6285C8F002F514148E17AC4C12554417B14AE87FC2E5141713D0A77C2255441EC51B85EF82E514133333313C3255441F6285CCFF72E5141666666C6BF255441EC51B85EF82E514100000010BE255441F6285C2FF72E514148E17A44BA25544185EB5168F82E51410AD7A350B72554413D0AD703F62E514100000020B825544114AE4731EC2E51419A9999B9BA255441295C8FD2E72E5141CDCCCC3CBC255441AE47E13AE42E5141333333F3BD255441295C8FE2E02E5141F6285C0FC02554415C8FC2B5DC2E5141295C8FA2C3255441C3F5289CD22E5141AE47E1FACB2554419A999929CE2E5141A4703D6ACF255441295C8F82CA2E5141A4703DEAD12554413D0AD7B3C62E514152B81E25D425544152B81E05C22E51415C8FC265D6255441713D0A87BD2E51415C8FC225D8255441C3F528ACBC2E514100000060D825544148E17A14BD2E51419A9999C9D9255441F6285C7FBA2E5141666666A6DA2554413D0AD783B92E5141A4703DFADA2554418FC2F518BC2E51418FC2F558E32554413D0AD733BB2E514133333383E72554417B14AE97C02E5141333333B3E8255441F6285C2FCA2E51411F85EB21E62554413D0AD763CD2E514114AE4711EA25544133333373CE2E51410AD7A3D0EA25544166666656D22E5141D7A3704DE7255441D7A3707DD62E5141B81E859BEB25544166666656D72E514148E17A74EC25544148E17A84D72E51410AD7A3B0EC255441AE47E1AAD22E5141B81E853BF125544185EB5158D22E5141AE47E1DAF0255441C3F528ACCD2E51415C8FC2B5EB255441D7A370EDCB2E51413D0AD743ED2554411F85EBE1C42E5141000000E0F22554417B14AE67C32E5141D7A3709DF3255441CDCCCC4CC32E5141AE47E13AF6255441000000E0C32E5141333333F3F72554413D0AD713C52E5141EC51B80EF92554411F85EB61C52E5141F6285C2FFA255441C3F5282CC52E51419A9999A9FA255441333333F3C32E514152B81E45F9255441295C8F12C32E5141A4703D5AF8255441C3F5286CBC2E5141E17A141EF625544185EB5188BA2E5141D7A3706DF5255441D7A3709DB92E5141713D0AA7F3255441A4703D5AB82E5141CDCCCC3CF2255441D7A370ADAF2E5141295C8FF2F2255441A4703D6AAF2E5141AE47E10AF3255441C3F528FCA92E514148E17A04F52554418FC2F558AA2E5141713D0AF7F625544152B81E25AD2E5141AE47E1BAF6255441295C8F52AD2E51410AD7A390F8255441000000B0AA2E51419A9999C9F8255441CDCCCCDCAA2E51419A9999B9F9255441AE47E12AAE2E51411F85EB51F9255441333333C3AE2E514166666646F9255441C3F528CCAF2E514114AE4711FA2554417B14AE57B32E5141AE47E1FAF925544185EB5128B42E5141B81E850BFD2554419A999939B22E51413D0AD763FD2554419A999999B22E5141333333C3FF2554419A9999B9B02E514133333333002654419A9999C9B02E5141295C8F5202265441A4703D7AAF2E5141295C8F62022654415C8FC225AF2E5141D7A3707D00265441713D0AD7AB2E51415C8FC20501265441E17A149EAA2E5141D7A3704D01265441B81E85CBA92E5141666666D6FE2554418FC2F578A62E514100000070FF255441E17A149EA82E5141000000B00426544185EB5178A12E5141713D0A970726544148E17A049E2E5141E17A14FE08265441713D0A579E2E514185EB51180E265441C3F5286C9F2E514185EB5158132654418FC2F5A89F2E5141D7A370ED1526544185EB51A89F2E5141CDCCCCAC18265441B81E85AB9F2E5141000000B01C265441A4703D7A9F2E51410AD7A3801F26544152B81EC5A02E514185EB512822265441295C8F12A12E51410AD7A3D0212654413D0AD7E3A12E5141C3F5281C1E26544152B81E05A42E5141333333A31C26544148E17A94AC2E5141295C8FB217265441CDCCCC5CAF2E5141A4703D9A1D26544100000040A72E5141E17A144E232654415C8FC2F5A32E51411F85EBC12426544100000000A22E5141AE47E1AA23265441B81E858BA12E51410AD7A3C0232654413D0AD7239F2E514114AE471125265441333333439E2E5141713D0AC7252654419A9999F99C2E514114AE47412A26544148E17AA49B2E514152B81E652D26544148E17A84992E5141CDCCCC2C30265441C3F5284C962E5141333333A3322654417B14AEF7922E5141AE47E14A342654415C8FC2058F2E51417B14AE7735265441EC51B82E8F2E51413D0AD703372654419A9999799B2E5141000000403F2654413D0AD7D39D2E5141713D0A37402654415C8FC265A02E5141D7A370AD402654415C8FC2A5A32E5141CDCCCC4C40265441EC51B89EA72E51413D0AD7F33E2654417B14AED7A52E5141C3F528BC392654418FC2F528A92E5141F6285C9F38265441713D0A77AA2E5141B81E856B3C26544148E17AB4AA2E5141666666563C2654415C8FC285B62E5141AE47E13A38265441AE47E1EABE2E51419A99993935265441CDCCCC2CBC2E5141A4703D5A2C265441EC51B85EBC2E5141B81E859B28265441F6285C6FC32E5141AE47E19A26265441C3F528ACC82E5141A4703DCA2426544185EB5128CD2E5141B81E856B2326544148E17AD4CF2E5141C3F5280C2C26544152B81E05D22E5141295C8F22332654419A999959CA2E51413D0AD7B3352654419A999919C02E5141E17A14FE38265441713D0AB7BF2E5141D7A370BD37265441295C8F62B42E514148E17AB43B2654418FC2F5D8A32E51411F85EB41412654418FC2F558A02E5141B81E85AB41265441AE47E18A9D2E5141C3F5283C412654411F85EBF19A2E514114AE4731402654415C8FC2858E2E514185EB51F8372654411F85EBA18A2E5141A4703D1A362654417B14AE37892E5141D7A370AD35265441EC51B81E882E514185EB51B8352654419D0D635F872E51410AEEE2CD352654419B8785CF862E51417FB00195342654419A999989872E51418FC2F578342654417B14AE67882E514152B81E65342654411F85EB41892E5141333333633426544148E17AD48E2E514152B81ED5332654419A999959922E5141000000D03226544148E17A94952E5141A4703D2A3126544185EB5158982E51417B14AE072F265441AE47E10A9A2E5141666666B62C265441D7A3708D9B2E5141713D0A97292654418FC2F5D8912E51419A9999E928265441F6285C8F8F2E5141EC51B80E232654419A999909962E51413D0AD7931E26544152B81EF5962E51418FC2F5181D2654419A9999D9992E514114AE477118265441295C8FF29B2E5141B81E856B12265441F6285C5F9C2E5141CDCCCC7C10265441C3F5286C9A2E51418FC2F57810265441000000C0982E5141E17A14CE11265441EC51B80E992E5141A4703DBA12265441CDCCCCAC952E51410AD7A300152654415C8FC245952E51413D0AD7531426544152B81ED5932E5141B81E85EB112654418FC2F5D8912E5141A4703D5A0E265441C3F5281C932E5141E17A146E0D2654411F85EBD1942E5141295C8FE20C26544166666636972E514185EB51280D265441AE47E15A9A2E514114AE47610F265441EC51B8CE9C2E5141333333830E265441333333239C2E514152B81E250926544185E92F279D2E51412AAF9BB302265441AE47E1CA9B2E5141333333E302265441713D0AF79B2E5141D7A3708D032654417B14AE379B2E514152B81EC503265441AE47E1FA9A2E5141F6285CFF02265441D9E92F279D2E514117AD9BB30226544152B81E759E2E5141D7A370ADFE2554410AD7A3E09C2E514152B81EC5FE255441AE47E10A9A2E51417B14AE77FF255441666666D6982E51415C8FC275FA25544114AE47F19A2E5141A4703D0AFA2554411F85EBE19A2E51415C8FC2E5F8255441B81E858B9B2E5141A4703D6AF8255441295C8FA2972E5141D7A3707DF62554418B37EEEF922E514111069872F4255441B4937D72932E5141FC575091F32554419A9999E9962E5141A4703D2AF5255441EC51B83E9B2E5141713D0A27F7255441F6285C6F9D2E5141AE47E14AF825544159A65D669E2E5141A351E89CF82554416AE768439F2E51413635D4BDF82554419371CCCB9F2E5141EC61188AF8255441040C6041A02E5141C59A4048F82554410CCB9F8CA02E5141F7E7E4EEF7255441C3F528ECA02E514133333313F72554413D0AD7F3A12E514152B81E55F0255441EC51B83EA32E51418FC2F5A8EA255441713D0AD7A32E5141713D0A27E725544102833F4BA42E51410D0D747FE025544153D30B0AA62E514168003317E1255441295C8F92A52E5141D7A3702DE7255441C3F528DCA42E51418FC2F5E8EA255441D7A3708DA32E5141AE47E19AF02554411F85EB01A32E5141C3F5289CF625544100000060A22E514114AE4731FA2554419A9999C9A32E5141F6285C7FF92554410AD7A3B0A42E5141C3F5283CF8255441D7A3700DA52E5141A4703DCAF62554413D0AD703A62E51419A999949F52554415C8FC275A72E5141295C8F62F4255441B81E850BAA2E5141666666F6F3255441333333E3AA2E5141666666C6F02554416204208DA92E514145592851EF255441CF20346CA92E51413759DD28EE25544148E17A34A92E51413D0AD723EC2554417B14AE77AA2E51410AD7A3E0EA255441B81E850BAB2E514148E17AF4E825544166666696AA2E51415C8FC225E72554411F85EBD1A72E5141713D0A97E82554415C8FC275A72E51415C8FC2E5E3255441713D0A47A72E5141C3F5280CE0255441713D0AB7A62E5141295C8FC2DE2554417E82B60CA62E5141F37C000EE1255441ECF95C4CA42E5141EC321B6FE025544133333353A42E5141AE47E10AE02554412F498A88A52E5141142DCE34DD2554416DCE7DC9A62E514162C198DDDB2554417B14AEC7A72E5141C3F528CCDA25544152B81E35A92E514148E17A34DA2554416D5C5C64A92E5141BBA7FE54D925544185EB5188A92E5141AE47E1AAD8255441A4EE963AA72E51416D4AA666D62554417AA03C83A32E5141B0489FBED225544155D63E8DA02E51410963D7D4CF2554412585E84F9E2E5141CE76BDA0CD255441B1C9B16A992E5141A1CC71D9C8255441D7A3706D9D2E51411F85EBC1CC2554418FC2F5F8A82E5141EC51B80ED8255441D7A3701DA92E5141295C8FA2D725544166666636AA2E5141EC51B8DECD2554419A999989AA2E5141713D0A17CB2554410AD7A360AB2E514185EB5178C7255441EC51B8FEAC2E51418FC2F538BE2554413D0AD7A3AD2E5141E17A140EBB255441F6285CEFAE2E51417B14AE77B82554410AD7A3C0B42E51411F85EB31B2255441D7A3701DB82E51418FC2F548AF255441EC51B89EB22E514152B81E15AB25544166666666B32E5141AE47E13AAA25544133333373AF2E5141000000E0A4255441A4703D1AB22E5141295C8F72A12554418FC2F548BB2E51410AD7A3B0A8255441B81E859BBB2E51418FC2F5C8A72554419A999959BB2E5141000000C0A6255441333333A3BA2E51418FC2F5E8A52554417B14AED7B12E51419A9999899E255441AE47E14AB02E51413D0AD7D39D255441D7A370BDAE2E51413D0AD7D39D2554411F85EB61AD2E514185EB51589E255441B81E85CBAA2E51417B14AE27A0255441A4703DCAA82E5141B81E859BA0255441D7A3703DA72E51419A999959A0255441D7A3706DA52E5141333333A39F25544133333333A42E51419A9999899E25544114AE4701A42E5141EC51B83E9D255441295C8F22A42E514148E17A049C255441A4703DEAA52E5141B81E85FB9725544100000050A62E51411F85EB8196255441AE47E1FAA52E51415C8FC245952554415C8FC235A52E51413D0AD763942554419A999999A32E5141666666D693255441EC51B80EA22E51415C8FC225942554410AD7A3509D2E5141AE47E16A96255441C3F528CC9B2E51410AD7A3A09625544152B81E759A2E5141D7A3703D962554417B14AE27992E514152B81E6595255441CDCCCC3C982E51418FC2F52894255441CDCCCCAC972E5141CDCCCC5C92255441295C8F52972E5141F6285C1F8F25544152B81E25972E5141000000F08C255441713D0AA7962E5141D7A3705D8A2554417B14AED7952E51411F85EB5188255441713D0AB7942E5141AE47E16A862554410AD7A3D08F2E51417B14AE5781255441295C8FC28A2E5141EC51B88E7B255441295C8F82892E5141AE47E16A7A2554410AD7A380872E5141E17A144E79255441D7A370AD832E514185EB513878255441CDCCCCCC802E514152B81E45772554413D0AD7C37E2E514114AE472176255441A4703DFA7D2E5141713D0A277525544148E17A547E2E51418FC2F548742554411F85EBB1812E5141F6285C0F72255441295C8FA2862E514152B81E9574255441713D0A47852E51418FC2F5287725544148E17A148A2E514148E17AF479255441B81E855B8B2E5141666666267B25544185EB5158902E5141295C8FE28025544148E17A74952E514148E17A348625544133333383962E51410AD7A3008825544148E17A64972E5141666666668A25544152B81EF5972E5141AE47E19A8D25544185EB5158982E5141B81E857B91255441666666D6982E5141D7A3707D93255441A4703DCA992E514185EB51F894255441000000609B2E5141F6285CBF952554417B14AEA79C2E51411F85EBC195255441000000009E2E514100000040952554415C8FC2D5A12E5141F6285C4F93255441E17A148EA32E5141C3F5281C932554413D0AD773A52E5141295C8F9293255441CDCCCCDCA62E5141C3F528FC94255441713D0A37A72E5141295C8F92962554410AD7A3C0A62E514152B81E45982554418FC2F5E8A42E514148E17A149C2554418FC2F5E8A42E5141E17A142E9D255441C3F5283CA52E5141713D0A379E2554411F85EBF1A52E5141D7A370FD9E255441EC51B86EA72E5141295C8F929F255441B81E85EBA82E51413D0AD7B39F255441713D0A47AA2E514114AE47719F255441CDCCCCCCAC2E51410AD7A3809D255441C3F5289CAE2E5141CDCCCCFC9C255441B81E856BB02E5141CDCCCCFC9C2554419A999909B22E5141333333C39D2554418FC2F548BB2E5141C3F5285CA525544148E17A54BC2E514148E17AB4A6255441A4703DFABC2E51415C8FC2E5A8255441E17A14AEBC2E5141000000B0AB2554419A999989BA2E51413D0AD793AE25544133333333B72E514148E17A44B125544114AE4711B22E5141CDCCCC4CB6255441C3F5282CAF2E5141713D0AB7B925544133333353AE2E5141B81E85CBBB25544152B81E35AC2E514148E17AC4C72554417B14AE97AB2E5141D7A3701DCA255441666666E6AA2E5141AE47E10ACE25544152B81EB5AA2E51418FC2F528D0255441E17A140EAD2E51417B14AEA7CC2554410AD7A340B12E51413D0AD763CF255441C3F5282CAF2E514185EB5178D22554415C8FC2F5AE2E5141EC51B8DED6255441A4703D6AAF2E5141666666A6D825544152B81EC5B32E514114AE47C1D7255441295C8F22B62E51417B14AED7D725544148E17A84B82E5141E17A14EED72554417B14AEF7B92E5141D7A3707DD72554410AD7A300BA2E5141EC51B80ED62554419A999979B62E51418FC2F5C8D42554413D0AD7A3B62E514100000060D42554415C8FC235B72E5141666666F6D2255441F6285C6FB72E514185EB5168D225544114AE4721BA2E514152B81E55D3255441F6285CCFBA2E51415C8FC275D32554413D0AD7A3BA2E5141AE47E13AD62554410AD7A310BB2E514185EB5128D7255441CDCCCC2CBD2E514148E17A84D62554418FC2F558C12E514114AE47F1D4255441E17A14EEC52E51410AD7A3B0D22554415C8FC285C92E514166666696D02554419A999949CD2E5141F6285C0FCE2554418FC2F5A8D12E51413D0AD7B3CA255441D7A3709DDB2E5141AE47E15AC2255441295C8FF2DF2E51411F85EBC1BE2554411F85EB81E32E5141CDCCCC7CBC255441EC51B84EE72E51418FC2F5A8BA255441666666E6EB2E514114AE4711B92554418FC2F558F22E5141713D0A77B725544100000030EC2E51411F85EBD1B02554413D0AD723F02E5141295C8F92AF2554417B14AEE7F32E5141AE47E12AA92554410AD7A3D0F82E514152B81E65A92554415C8FC205FC2E514148E17A64AD255441DCE22889FD2E5141A267F0D6AD255441713D0A57FD2E5141D7A3703DB0255441295C8F22032F5141713D0A57B125544166666666022F51417B14AE27B4255441CDCCCCEC062F514152B81E85B4255441D7A370CD062F5141000000F0AC2554416CF46090092F51411849B333AD255441F154D3C20C2F5141637109D6AD255441DD088B950E2F5141235DDE84AD2554416DF392F0112F5141583654EAAD255441CA4970A0122F514110A2293FAB2554411572C642132F5141EFC51BCAA8255441C3E033A7122F5141CEAE5869A6255441DB39AAB2102F5141348C3332A5255441044B3DF40E2F5141F7BFEBAAA42554417B14AE870D2F5141CDCCCCFCA42554414C1BEB2A092F5141D5DCDF76A6255441E17A14AE062F514114AE47E1A92554419A9999C9012F514152B81E55A62554419A9999B9042F5141333333E3A325544166666666022F5141C3F5284CA2255441F6285C9F032F51410AD7A370A12554419A999989072F5141CDCCCC2CA2255441713D0AD70A2F514148E17AD4A02554414117857B0F2F514177F9D48EA3255441A4703DCA122F51411F85EB21A4255441245B0296152F514125A3F7DEA2255441333333D3162F514148E17AD4A02554415596B6351A2F5141E7D31748A025544139E1310F1C2F51411916CAA6A0255441A4703DCA232F5141EC51B8FE9E255441333333F3272F514166666676A02554415C8FC2452A2F51415C8FC2C59D2554418FC2F508352F5141F6285CDF9E2554410AD7A3603F2F5141295C8F4298255441C3F528BC3E2F5141D7A3704D93255441295C8F023F2F51419A999919912554411F85EBC14A2F514114AE471197255441F6285C4F4B2F5141C3F5284C9C2554417B14AE67422F514185EB51089D255441E17A14AE422F51415C8FC2E5A1255441713D0AC74C2F5141295C8F829F2554415C8FC2B54C2F5141B81E857B9B255441295C8F224C2F5141C3F5286C96255441713D0AC7402F5141333333F38F255441E17A141E3F2F51415C8FC2E58C2554417B14AE173C2F514114AE47C18A255441AE47E1BA3A2F5141AE47E19A8A255441295C8F42362F51415C8FC2A58C255441295C8F82302F5141E17A142E8B255441D7A3704D232F51413D0AD76398255441A4703D5A1B2F51410AD7A310962554413D0AD753142F51415C8FC2B597255441295C8F22132F5141A4703DBA99255441C3F5289C0F2F51413D0AD76398255441AE47E1DA0F2F5141D7A370DD93255441AE47E11A0A2F5141CDCCCC4C9425544148E17A74062F5141D7A3708D982554418FC2F5B8012F5141F6285C7F9F255441AE47E1EAFF2E5141B81E85CBA22554411F85EBA1FE2E5141F6285C1FA6255441E17A14DEFD2E51415C8FC2C5A9255441BBCCB28AFD2E51415BC312C4AD255441B0B5B407FC2E5141608D4B52AD25544114AE4771FC2E51417B14AE77A9255441CDCCCC3CFD2E51418FC2F5C8A52554411F85EBB1FE2E5141A4703D3AA22554419A999969002F514148E17AC49E2554411F85EBD1042F5141F6285C4F9725544114AE47910D2F5141333333038E25544185EB51B80E2F5141C3F528BC8B25544185EB51580F2F51419A99994989255441A4703D4A0E2F51415C8FC2458925544148E17A54092F5141CDCCCC2C8A255441B81E85CBFD2E514114AE4781892554415C8FC2E5F82E5141CDCCCC2C882554413D0AD743F12E5141EC51B83E87255441E17A146EEA2E51413333332385255441295C8FD2E62E51417B14AE07832554410AD7A320E12E5141A4703D5A7D25544133333393DD2E5141A4703D5A77255441F6285C4FDA2E514166666696752554413D0AD7B3D92E5141000000207425544152B81E15D12E51417B14AE776E2554415C8FC225C92E5141EC51B81E6A25544166666656C32E5141C3F5285C66255441AE47E1DABE2E5141713D0AC76325544152B81E75BB2E51415C8FC2B5612554418FC2F5B8B02E514148E17A9461255441B81E857BAE2E514185EB511865255441000000A0A82E5141CDCCCCFC6725544148E17A14A32E51410AD7A300692554411F85EB81A02E5141000000406C255441CDCCCCAC9D2E51417B14AE376A255441713D0A77992E51410AD7A3D06B2554417B14AED79A2E514152B81E5571255441713D0AE7932E51419A9999797225544148E17AA4932E51411F85EBA1722554419A9999E9922E51411F85EB6171255441000000B0912E5141713D0A676F25544166666616912E5141333333136E2554410AD7A3208F2E5141AE47E12A6B255441EC51B80E8E2E5141713D0A17652554419A9999C9902E514185EB51B862255441F6285C3F8D2E51413D0AD7A35E25544100000070882E51419A9999E959255441C3F528BC872E5141666666E6582554413D0AD7A3862E514152B81E3554255441EC51B82E862E5141295C8FC252255441EC51B87E7A2E5141333333B34E255441F656CF3D7C2E5141F00EF62E4B2554413D0AD783882E514185EB517832255441AE47E10A882E5141000000602F25544114AE47118C2E514152B81EE52A2554410AD7A3208D2E5141F6285CFF28255441666666C6872E51417B14AED727255441E17A14FE862E5141F6285CFF2825544166666606832E51417B14AEC729255441666666267C2E5141666666062B255441435BCC15772E514123060B333E255441E130C99E742E5141A909EA87472554415C8FC265732E51418FC2F5284C2554410AD7A390652E51410AD7A3E0462554415C8FC2B5572E514148E17A144625544166666656532E514148E17AD44525544114AE4731502E514152B81EB54525544152B81EF5412E51413D0AD7B353255441A4703D9A382E514114AE47215C255441A4703D6A302E514152B81ED563255441E17A14FE282E5141E17A146E69255441713D0A471A2E5141000000105D255441B81E858B112E5141EC51B8AE52255441333333830D2E5141EC51B86E572554417B14AE27072E5141B81E851B5C255441A4703D8AFE2D5141D7A3708D5E2554413D0AD7D3FA2D51411F85EB2161255441EC0835DDFA2D514124EDA751662554415A35FE59F92D514193C55C5E64255441B8F91265F92D5141BCAF4A48642554413D0AD7D3FA2D5141B81E852B61255441D7A370ADF82D5141D7A370DD62255441713D0AC7F52D514152B81E4565255441D7A370FDF22D514114AE470168255441F6285C6FEF2D51417B14AE376C255441F6285C3FED2D5141D7A370AD6E25544114AE4701EB2D5141D7A370DD702554419A999929E82D51419A99994972255441F6285C7FE42D5141D7A3707D732554419A9999B9E02D5141333333A374255441713D0A47DD2D51417B14AED77525544133333353DA2D514114AE47517725544114AE4701D62D5141F6285CFF79255441B81E853BD22D5141333333F37C255441F6285C7FCF2D5141333333237F255441B81E858BCC2D514152B81E458125544114AE47C1C92D5141333333A382255441F6285CDFC52D5141333333F383255441713D0A97C22D51419A9999198525544152B81E75C02D514152B81E8586255441D7A3709DBD2D5141333333C388255441D7A3701DBA2D5141F6285C7F8B255441F6285C8FB62D51419A9999698D255441F6285C1FAF2D514114AE470192255441713D0A87AA2D5141F6285CAF9425544114AE47A1A72D5141B81E858B9625544133333313A42D51417B14AED798255441F6285C8FA12D514152B81EC599255441F6285C5F9F2D5141B81E850B9A255441B81E851B9B2D5141333333439A25544152B81EA5982D51419A9999899A25544152B81EE5962D5141333333239B255441B81E854B962D51417B14AE579C255441713D0A67962D51417B14AEA79D255441D7A3708D972D51417B14AEF79E255441D7A370BD992D514152B81EC5A0255441D7A370FD9E2D51419A999929A4255441713D0AE7A02D51419A999979A5255441713D0A37A22D514133333383A6255441F6285CFFA12D5141F6285CEFA72554419A999949A12D51419A9999F9A825544114AE4731A02D5141F6285C1FAA2554419A9999399E2D5141F6285CFFAA255441B81E85FB9B2D5141B81E858BAB255441F6285CAF992D5141B81E85FBAB2554419A999989982D5141D7A370CDAC255441D7A3701D972D514114AE4701AE2554410B920226952D5141A34725CCAF2554412D124944942D514192DFEA09AF255441333333C3942D51419A9999A9AE255441F6285C0F972D5141B81E856BAC255441713D0A97982D514133333353AB25544114AE47F19A2D5141D7A3709DAA255441B81E854B9D2D51419A999949AA255441713D0A279F2D5141D7A3704DA9255441333333B39F2D51417B14AE97A825544133333323A02D514152B81E55A725544114AE47C19F2D514133333313A6255441713D0AD79D2D514152B81EB5A4255441D7A3702D9A2D5141F6285C3FA22554419A999939972D51419A999939A0255441F6285C4F952D514114AE47B19E25544114AE4761942D5141333333539D255441F6285C6F942D514152B81E859B255441713D0A87952D5141D7A3706D9A255441F6285C7F972D51419A9999A999255441B81E85CB992D51417B14AE47992554419A9999599D2D5141D7A3701D992554419A999969A02D5141333333F398255441D7A3707DA22D51419A99995998255441333333D3A52D5141D7A3707D96255441713D0A87AA2D514114AE47519325544152B81E45B02D514152B81E2590255441713D0A27B42D51419A9999698D255441D7A3707DB72D5141B81E859B8B2554419A999939BA2D51417B14AEF78925544133333373BD2D51417B14AE578725544114AE4791C02D51419A99991985255441F6285C3FC32D5141B81E85BB83255441713D0AF7C62D5141B81E856B82255441713D0A97C92D5141B81E858B81255441713D0A87CD2D5141B81E855B7F25544152B81EC5CF2D514114AE47717D255441D7A370DDD02D5141D7A3703D7C2554419A999989D02D5141D7A3700D7A255441D7A3702DD22D51413333337379255441F6285C8FD22D51417B14AE177B255441B81E850BD72D514152B81E1578255441B81E858BDA2D514152B81EE57525544133333363DD2D514114AE47B174255441333333C3E12D51419A99992973255441F6285C3FE62D5141D7A370BD712554419A999999E82D51419A9999F97025544133333363EB2D514114AE47016F255441713D0AC7EE2D51419A9999496B255441D7A370ADF12D51419A9999C96725544152B81EC5F22D5141333333C36525544133333343F32D51419A9999B964255441F6285C1FF52D51417B14AEE763255441713D0AF7F72D5141D7A370FD6125544114AE47D1FA2D5141B81E859B5F25544185EB5118E12D5141C3F528DC6925544148E17A24CF2D5141B81E851B712554419A999929BC2D5141C3F528CC782554419A9999F9BB2D514114AE47917C2554419A9999A9BA2D5141F6285C3F7F25544133333383B22D5141D7A3707D81255441D7A3701DAC2D514114AE47D181255441C3F5284CAA2D5141666666A67F25544133333323A22D5141713D0A678025544148E17AA4A02D5141E17A149E7F255441D7A3700D9E2D514148E17AC47F255441EC51B87E9C2D514185EB51588025544114AE47D1972D5141333333F381255441AE47E16A942D5141EC51B82E82255441000000F0922D51413333337382255441295C8F82922D5141666666F68225544133333393912D51418FC2F588832554411F85EBE18E2D514148E17A3483255441000000808C2D514166666636832554413D0AD7538A2D51418FC2F558832554415C8FC225882D51410AD7A3B08325544148E17AC4852D51410AD7A35084255441E17A140E822D514152B81E5584255441295C8F82852D514148E17AB48E255441D7A3705D872D51417B14AE378F2554419A9999C9882D51419A99997990255441F6285C7F892D514152B81E559225544133333363892D5141F6285C3F94255441D7A3708D892D514114AE4761962554419A9999C9882D51417B14AE679825544152B81E75882D5141F6285CEF99255441F6285CEF892D5141D7A3702D9C2554419A9999698B2D51417B14AEC79C255441B81E853B8C2D51417B14AED79F255441B81E851B8D2D51417B14AE77A2255441D7A3700D8D2D514133333333A52554419A9999498C2D5141F6285C9FA625544152B81E858B2D514133333363A7255441AE47E19A892D5141E17A140EA825544148E17A148A2D5141666666C6A9255441B81E85AB8C2D51419A999929AB2554419A9999E98E2D514114AE4791AD2554410AD7A3C0902D5141713D0AA7AF255441295C8F02932D5141E17A14FEAF255441BA183D42942D51419A86780BAF255441D891F40E952D5141C4C76FDDAF2554415C8FC2A5942D5141D7A3703DB0255441D7A3700DA32D514185EB5168B225544148E17A94B02D51415C8FC2B5B425544152B81E25AA2D514185EB51C8C525544152B81EE5AB2D5141D7A3709DC6255441D7A3706DAD2D5141F6285C6FC72554419A999949AF2D5141F6285CBFC82554419A9999E9B12D5141D7A370FDCA25544152B81E05B22D5141F6285C7FCA255441B81E85BBB22D5141333333D3CA255441F6285C9FB22D5141F6285C5FCB25544152B81E85B52D514114AE4781CD25544114AE47F1B62D5141D7A3707DCE255441B81E858BB72D514133333353CE255441B81E85FBB72D5141D7A3702DCD255441333333A3B82D5141D7A370FDCA255441CDCCCC1CB72D5141CDCCCC5CCA25544185EB5148B72D5141B81E855BC825544114AE47E1B82D5141E17A147EC8255441D7A370ADB92D5141F6285C6FC725544133333343BB2D5141B81E858BC7255441EC51B81EBC2D5141E17A140EC8255441333333E3BD2D514133333333C825544133333373BD2D514152B81EA5CB255441F6285CCFBB2D514114AE47C1CB2554419A999989BB2D5141D7A3704DCC25544133333383B92D514133333323CC255441713D0AF7B82D514114AE4781CD25544114AE47B1B82D514152B81EB5CE2554419A9999E9B82D5141B81E856BCF25544133333383B92D5141B81E85DBCF255441713D0A27BB2D5141D7A370ADD0255441F6285C1FBD2D514152B81EC5D1255441713D0AA7BE2D5141333333D3D1255441091F27E6BE2D5141A24A68A9D1255441E02B1F99BF2D51416F1DEDFCD125544114AE47B1BF2D51419A999989D22554419A999919C22D514152B81ED5D425544114AE47F1C42D5141B81E854BD725544133333383C72D514133333343D925544114AE47C1C92D514114AE4731DA25544133333353CC2D514133333393DA255441D7A3701DCF2D51417B14AE07DA255441D7A370BDD12D5141333333D3D82554419A999959D52D5141D7A3703DD7255441D7A3704DD82D51417B14AE87D6255441D7A370EDDA2D5141D7A3705DD62554419A9999A9DD2D514152B81E25D6255441D7A3702DE02D51419A999999D52554419A999979E22D5141D7A3702DD425544152B81EA5E52D514152B81E35D225544152B81EB5E82D514152B81E75D0255441333333F3EA2D5141333333C3CE25544133333303EE2D51417B14AE77CC2554413D0AD7D3F02D5141295C8F62CB25544133333333F52D514133333393CA2554411F85EBF1F72D514185EB51B8CA25544152B81E35FA2D5141F6285C5FCB255441B81E851BFD2D51417B14AE77CC255441A9CDC9A7FE2D51411F7867C2CC2554416CC3F2C3FE2D51419AB571C9CC255441BE7B11A9FE2D5141011CD8EFCD255441769A9674FE2D51413326AFE3CD25544152B81EF5FB2D51417B14AE57CD25544152B81EE5F82D5141D7A3704DCC255441713D0AA7F62D5141333333B3CB25544152B81EF5F42D5141333333B3CB255441D7A3701DF22D514152B81E15CC255441B81E858BEF2D514133333303CD25544133333393ED2D51419A999929CE25544114AE4701EB2D5141F6285C9FD025544152B81EB5E82D51417B14AE27D2255441F6285C5FE52D514152B81EF5D32554419A999979E22D514152B81EB5D52554419A999949E02D514152B81E95D625544152B81EC5DD2D514114AE4721D7255441D7A370EDDA2D5141B81E854BD725544114AE47C1D72D5141D7A370ADD7255441B81E85BBD52D514152B81E55D825544114AE4761D32D514114AE4751D9255441333333A3D42D51417B14AE77DA2554419A999999D32D5141D7A3709DDB255441D7A3709DD22D514133333333DD25544114AE47C1D02D514114AE4741DD255441713D0A77D12D5141F6285C8FDB255441713D0A57D22D5141D7A370DDD925544152B81E35D02D51417B14AEE7DA2554419A999909CD2D5141F6285C8FDB25544152B81E85CA2D5141F6285C8FDB255441333333F3C72D5141D7A370BDDA25544133333353C52D5141B81E850BD925544152B81E35C22D514114AE4741D6255441D7A370CDBF2D5141D7A3702DD4255441B81E853BBD2D514114AE47C1D225544152B81E55BA2D51419A9999A9D1255441D7A370ADB92D514152B81E35D2255441B868F19DB92D5141462AE5AFD2255441F5CD689FB82D514120448F3CD225544152B81E95B82D5141333333D3D125544133333333B82D514152B81EE5D0255441F6285C6FB72D514114AE4721D025544152B81E15B52D5141D7A3707DCE255441333333F3B22D5141F6285C1FCD2554419A9999B9AF2D5141F6285C7FCA255441B81E85EBAD2D514152B81E05C925544133333383AB2D514152B81EB5C725544114AE47B1A92D5141C3F528FCC6255441E17A14BEA12D5141A4703DDAC425544185EB51889B2D51410AD7A310C3255441333333A39C2D51419A9999F9C425544152B81EC59E2D514133333373C6255441B81E859B9E2D5141333333C3C7255441F6285CEF9E2D51419A9999C9C9255441D7A3704DA02D51417B14AED7C925544114AE4761A22D514114AE4701CA255441B81E858BA22D5141F6285C5FCB25544152B81ED5A12D51419A999949CD255441713D0AE7A02D514114AE4741CF255441B81E859B9E2D51419A999979CF255441D7A370AD9D2D51419A999939D12554419A9999C99D2D51417B14AE07D3255441D7A370AD9D2D514152B81E65D425544152B81E959C2D5141F6285CDFD525544152B81EB59B2D51419A999959D7255441D7A3709D9A2D5141B81E859BD8255441B81E855B992D5141D7A370FDD8255441713D0AB7972D5141B81E859BD82554410AD7A3A0962D5141A4703D5AD82554418FC2F528962D5141295C8FB2D92554411F85EB01962D51417B14AEE7DA255441B81E85CB952D514185EB51B8DB255441A4703D5A952D514133333343DC2554419A9999B9942D514148E17AE4DC2554413D0AD723942D514114AE4791DD255441F6285C6F932D5141CDCCCC8CDE2554411F85EB91922D514152B81E65DF25544148E17AB4912D514148E17A04E02554411F85EBB1902D5141666666C6E0255441B208E30A902D51411489CE58E12554419A9999A98F2D5141E17A14AEE1255441A5495AB5772D51410DE89BFDF825544117F378871A2D5141E232AE92B62654419285DE70EB2C5141C87A406CF826544166EC9D7EB52C51410DA928308727544108000000CDCCCCCCB62E51410AD7A38084255441666666B6B42E5141333333C3842554418FC2F5B8AD2E5141B81E85AB8125544148E17AB4AC2E5141F6285C2F7E2554419A999979B42E5141000000807B255441333333E3B72E5141295C8F12802554410AD7A3D0B72E51415C8FC26582255441CDCCCCCCB62E51410AD7A3808425544108000000AE47E10AAF2E514148E17A348F2554418FC2F5A8AD2E5141D7A370ED8D2554413D0AD7E3AB2E5141713D0AF78C2554418FC2F588AA2E5141D7A3705D8C2554411F85EBB1AB2E5141B81E854B8925544148E17AE4AD2E5141666666F689255441EC51B89EB12E5141C3F5284C90255441AE47E10AAF2E514148E17A348F2554410D000000295C8FB26C2E51419A9999E99A25544152B81EE5632E514148E17A248A255441713D0AD75C2E5141B81E858B81255441CDCCCC2C532E514185EB51587B25544152B81EB57B2E5141A4703DEA7C255441CDCCCC6C832E5141666666168325544114AE47A1852E5141C3F528EC892554418FC2F5A8812E5141CDCCCC5C8A25544166666616842E514185EB511890255441CDCCCC6C832E514185EB510898255441AE47E15A7E2E51413D0AD7C39D255441F6285CBF742E51419A9999599E255441295C8FB26C2E51419A9999E99A2554410700000048E17AB4A82E5141EC51B8BE8725544148E17A84A42E514152B81E058725544114AE4761A32E51411F85EBE18325544148E17A84A42E5141AE47E1FA80255441A4703DDAA52E5141713D0AE780255441CDCCCC5CA82E51410AD7A3508425544148E17AB4A82E5141EC51B8BE8725544107000000B81E859BA62E514152B81E357B25544148E17A44A32E514185EB5128782554417B14AE77A22E5141AE47E1BA732554410AD7A310A42E51413D0AD7A3722554410AD7A3B0AB2E514185EB5198782554415C8FC2D5AB2E51415C8FC2C57A255441B81E859BA62E514152B81E357B25544105000000295C8FA23B2E5141CDCCCCFC98255441AE47E16A3C2E51411F85EB71982554413D0AD7233D2E51418FC2F55899255441C3F5284C3C2E51411F85EB119A255441295C8FA23B2E5141CDCCCCFC9825544114000000E17A14FE332E5141CDCCCC2C9C2554418FC2F588342E51413D0AD7B39E25544152B81E55332E51411F85EB81A025544185EB5158312E514166666646A325544133333343302E5141F6285C9FA5255441E17A148E2D2E51417B14AEF7A7255441D7A3705D2A2E5141F6285C3FA72554411F85EB51282E5141AE47E10AA6255441EC51B80E272E5141AE47E16AA4255441713D0AD7272E5141B81E852BA1255441F6285C8F282E51419A9999199E25544166666686292E5141AE47E15A9C25544114AE47012A2E514152B81EB59925544114AE47A12B2E5141E17A14CE98255441AE47E14A2C2E5141000000409A255441A4703DEA2D2E51410AD7A3309A255441E17A142E2F2E5141A4703D3A99255441D7A370DD302E5141000000A098255441A4703DCA322E514148E17AC499255441E17A14FE332E5141CDCCCC2C9C25544105000000713D0AC7952E5141AE47E12AE22554410AD7A3D09A2E514185EB51B8E1255441D7A3706D9B2E514148E17A34E825544114AE4761962E514114AE4721E8255441713D0AC7952E5141AE47E12AE225544106000000333333F3392E51418FC2F5E892255441333333933B2E5141EC51B88E952554415C8FC2E53C2E5141666666669625544148E17A743B2E5141B81E857B97255441B81E851B392E51411F85EB9193255441333333F3392E51418FC2F5E8922554410500000052B81E351D2E5141F6285CBFD6255441333333431D2E5141D7A3708DD8255441333333131B2E51419A9999A9D8255441713D0AF71A2E51419A999959D725544152B81E351D2E5141F6285CBFD6255441040000002177CFF54C2E5141D57B470294255441B33ADEEF4C2E5141C552280C9425544152B81E153F2E514114AE4741922554412177CFF54C2E5141D57B470294255441090000006AA33CDA612E514168E49A299C255441F6285C0F612E51410AD7A3709D255441F6285C6F5F2E5141CDCCCCCC9D25544114AE47A15D2E51410AD7A3709D2554410AD7A3205C2E51415C8FC2E59C2554413D0AD7C35B2E5141666666369B2554411F85EB515C2E514148E17AC498255441F6285C4F5E2E5141EC51B8AE992554416AA33CDA612E514168E49A299C25544116000000713D0A27DE2D514133333383E5255441D7A3701DDD2D5141B81E856BE42554419A999939DD2D514152B81ED5E2255441D7A370FDDD2D514152B81EA5E0255441B81E859BDD2D514133333383DE25544133333383DC2D5141333333C3DC255441333333F3DC2D5141D7A3702DDB2554419A999919DE2D514152B81E15DA255441F6285C3FDF2D51417B14AEE7DA255441F6285C1FE02D5141333333E3DB25544152B81E25E22D5141D7A3709DDB255441D7A370ADE32D514114AE47F1DB255441B81E850BE52D5141D7A3705DDD255441B81E85EBE52D514152B81E55DF255441713D0AE7E62D51417B14AEE7E1255441713D0A07E62D5141D7A3700DE3255441B81E859BE42D514152B81E25E425544133333313E32D514114AE4701E6255441B81E85FBE12D51419A9999F9E72554419A9999B9E02D514152B81E15E82554419A9999D9DF2D5141D7A3708DE6255441713D0A27DE2D514133333383E5255441070000009A999929DA2D514152B81E75D0255441B81E851BDA2D5141F6285C6FCE255441333333A3DB2D51417B14AE37CE255441B81E85BBDC2D5141B81E85ABCD255441F6285C5FDE2D514152B81E65CD255441F6285C5FDE2D5141B81E854BD02554419A999929DA2D514152B81E75D02554413700000066666696F42D5141666666D6712554419A9999B9F52D51415C8FC2C56F255441F6285C8FF52D5141F6285C4F6D255441D7A3705DF72D514114AE47F16B25544152B81E05F82D51417B14AE776A255441B81E854BF82D51419A9999A96825544133333313F82D51415C8FC22566255441713D0A57F92D514148E17A6464255441E83A83C7FF2D514172FA38A96C25544100000020FF2D514185EB51F86C2554417B14AE87012E5141713D0AF772255441D7A3705D042E514148E17AC47825544152B81E55072E51419A9999797D255441666666960B2E5141CDCCCCEC81255441D7A3700D112E51418FC2F578852554418FC2F558072E5141A4703D9A692554418FC2F5E80D2E5141CDCCCCFC66255441CDCCCC7C142E5141B81E856B63255441CDCCCC3C262E5141333333238F255441713D0A17202E51419A999959962554410AD7A360202E51411F85EB719825544152B81EF51F2E51415C8FC2E59C255441000000D01E2E514152B81E35A0255441B81E85AB1D2E5141E17A14BEA5255441CDCCCC8C1D2E5141EC51B87EAA255441C3F5289C1D2E51417B14AE77AE25544148E17AC41C2E5141333333C3B3255441AE47E11A1C2E5141000000E0B82554419A9999491C2E514133333373BD255441EC51B8BE1B2E5141A4703DEABF25544148E17A84192E51413D0AD793C0255441000000C0162E514100000000C1255441B81E859B152E514100000060BF2554419A999929142E5141B81E853BBE255441333333A3112E5141A4703D5ABE2554410AD7A340102E514148E17AE4BE255441333333630E2E51415C8FC2C5BE255441F6285C1F0D2E51411F85EB91BD2554417B14AEE70D2E51419A999929BB255441E17A14DE0E2E51417B14AE27B825544114AE47910E2E514152B81E25B5255441666666760C2E5141666666D6B1255441000000800B2E514185EB51F8AF255441B81E85EB0B2E51411F85EB71AD25544148E17A040B2E5141F6285C0FAC255441000000E0092E514152B81E45A82554419A9999E9082E5141295C8F42A5255441AE47E12A082E514100000090A325544133333313022E5141CDCCCCECA4255441E17A145E002E5141713D0A97A125544100000090FE2D5141CDCCCC2C9C255441B81E85CBFB2D5141713D0A179325544166666616F92D51410AD7A37088255441A4703DEAF62D51415C8FC2A57A25544166666696F42D5141666666D67125544121000000F6285C0FEE2D5141A4703D3A7425544133333353F22D5141B81E854B86255441EC51B88EF52D514114AE47F19425544152B81E35F92D5141713D0AD7A425544100000050FB2D514100000030A72554413D0AD793FC2D5141AE47E1EAAA2554417B14AEC7FD2D5141EC51B85EAF2554411F85EB61FE2D5141CDCCCC2CB125544100000030002E5141AE47E19AB42554411F85EBA1012E51411F85EB11B72554413D0AD7C3FF2D51413D0AD783B8255441A4703D8AFD2D514152B81E05BA255441B81E85CBFB2D51410AD7A3E0BA255441333333B3FA2D51415C8FC275BB2554419A9999A9F92D5141B81E854BBB25544114AE4791F82D514114AE47F1B825544114AE47D1F62D5141F6285CAFB7255441F6285C8FF52D5141F6285CAFB725544133333343F32D5141B81E85FBB9255441F6285CFFEE2D5141B81E854BBB25544152B81E75EA2D5141F6285C2FBB255441F6285CAFE62D514114AE4761B92554417B14AE07E62D5141D7A370FDB5255441B81E857BE52D51417B14AE37B22554417B14AE87E22D5141D7A3702DAA2554417B14AE37E12D51419A999989A125544114AE4711E02D5141D7A370DD9A25544133333303E02D51417B14AEE794255441B81E851BE12D51415C8FC2858D2554415C8FC2E5E32D5141713D0A778A255441B81E857BE12D51415C8FC2B57925544152B81ED5E72D51416666669676255441F6285C0FEE2D5141A4703D3A742554410A000000E17A14EE052E5141295C8F72D32554418FC2F5C8082E51419A999979DA2554417B14AE47052E51419A9999D9DC255441D7A3700D042E5141F6285CFFDB25544152B81E35012E5141F6285C3FDA255441F6285C0F002E51417B14AEB7D8255441333333F3FF2D514114AE47B1D62554419A999989012E51415C8FC2D5D425544133333373032E514114AE4781D4255441E17A14EE052E5141295C8F72D32554410500000066666636EA2E51419A9999D9A92554410AD7A3A0E72E514166666656A92554415C8FC215E82E51413D0AD773A725544185EB5118EB2E5141D7A370BDA525544166666636EA2E51419A9999D9A92554410500000052B81EB5C02E51410AD7A320C725544152B81EE5C12E51410AD7A350C1255441F6285C7FC92E5141713D0AA7C225544152B81E95C82E5141CDCCCC3CC825544152B81EB5C02E51410AD7A320C72554410500000033333383B52E5141F6285C3FCF25544133333363B62E5141AE47E1FACA25544100000000B82E5141C3F5283CCB25544100000010B72E514152B81E95CF25544133333383B52E5141F6285C3FCF2554410E0000005C8FC265B52E5141333333E3BC255441CDCCCC9CB12E514148E17AD4C3255441D7A3708DB02E514166666666C3255441AE47E1EAAF2E51410AD7A3E0BE25544114AE47C1B32E514166666636B92554411F85EB51BA2E51411F85EB81B125544148E17A34BB2E5141713D0AC7B0255441CDCCCCECBC2E5141AE47E15AAE255441713D0A57BD2E5141F6285C6FAE255441A4703DEABD2E5141C3F5280CAF2554411F85EBF1BD2E5141E17A14FEB0255441CDCCCC0CB82E51419A9999E9B925544148E17A84B62E51418FC2F538BB2554415C8FC265B52E5141333333E3BC2554411B000000E17A14AEBD2E5141295C8F72A5255441F6285C2FBD2E5141EC51B80EA5255441C3F5283CB62E514185EB51089F255441D7A370DDB42E5141CDCCCCEC9A25544148E17A64B12E5141666666169925544148E17AE4B12E514152B81E15962554419A9999D9B42E51419A9999D9922554415C8FC2D5B32E5141D7A370FD91255441713D0AB7B22E5141713D0A579125544152B81E05B22E514148E17A049125544185EB5138B22E5141333333A390255441EC51B8CEB32E514185EB517891255441AE47E14AB72E514148E17A348D255441295C8FF2B82E5141F6285CEF8D255441CDCCCC5CB82E5141333333A38F25544133333323BB2E5141F6285CBF9425544185EB5198BB2E51418FC2F5D89A255441F6285C5FBF2E5141A4703D1A9A25544133333383C12E5141B81E85EB9E255441CDCCCC7CC22E5141B81E85FBA325544133333383C12E514148E17A94A92554418FC2F538C12E514114AE4781AA255441F6285C3FC02E5141B81E855BAA255441333333A3C02E5141CDCCCC4CA3255441713D0A37BF2E5141A4703DCAA225544185EB51C8BD2E5141D7A3704DA4255441E17A14AEBD2E5141295C8F72A52554410600000048E17AF4322E51419A9999090D26544185EB5188302E5141D7A370DD0C26544100000010222E5141E17A143E00265441C3F5288C232E514148E17AD4FE2554417B14AEF7312E514114AE47B10B26544148E17AF4322E51419A9999090D26544107000000713D0A97E52D5141333333E334265441D7A3707DE62D5141295C8F222F265441EC51B84EEB2D5141000000102F2654418FC2F548ED2D5141CDCCCC8C37265441F6285C5FEA2D5141295C8F723826544114AE4721E62D51410AD7A33037265441713D0A97E52D5141333333E3342654410600000048E17A74252E5141F6285CDFF32554418FC2F5B8232E514166666676F2255441C3F5282C252E514114AE4761EC2554410AD7A3F0262E5141295C8FF2EC255441333333A3282E51418FC2F508F225544148E17A74252E5141F6285CDFF3255441050000003D0AD7E3622E5141EC51B8EE1E265441E17A14EE622E5141CDCCCCBC1F26544152B81ED5612E5141C3F528CC1F2654413D0AD7C3612E5141CDCCCCFC1E2654413D0AD7E3622E5141EC51B8EE1E265441390000001F85EB21422E514185EB5168EE255441AE47E10A412E5141E17A145EEB255441E17A147E3D2E514148E17A54E7255441E17A149E3A2E514166666656E5255441333333433B2E5141A4703DDAE9255441D7A370CD372E514114AE4741ED25544152B81E85332E51413D0AD733EB255441713D0A57352E51413D0AD7A3E225544173842B992D2E514142A8BB42DC255441CDCCCCAC2D2E5141295C8F42DC255441B97766972C2E51411EF81E87DB2554418C73085B2D2E5141DD009A8DDA2554417B14AED72F2E51410AD7A350DC25544133333383332E514148E17A34DF25544166666666362E514100000040E1255441B81E85BB3A2E514185EB51A8E325544185EB51283F2E5141A4703D1AE625544166666616402E5141B81E852BE82554411F85EB21422E51413D0AD793EA2554410AD7A3E0432E514185EB51B8EB255441CDCCCCDC452E5141E17A14BEEC25544185EB5198492E51415C8FC295ED255441A4703D3A4E2E5141F6285C3FEE2554410AD7A300542E5141CDCCCC7CEE2554410AD7A340572E5141295C8FE2ED255441CDCCCC3C592E51411F85EBF1ED255441333333D35B2E5141E17A145EEE2554418FC2F5785E2E51411F85EBF1ED255441713D0A27652E5141E17A14BEEC255441B81E852B6B2E514152B81E05EC255441F6285C2F712E5141713D0AD7EB255441D7A3703D762E5141666666E6EB2554419A9999D9792E514185EB51B8EB25544148E17A947D2E5141E17A14BEEC255441B81E85FB842E5141AE47E1AAEE2554418FC2F5088A2E5141EC51B8EEEF255441D7A370AD912E5141295C8FC2F2255441B3ED136E932E514105F1AA90F325544158D689ED922E514168EFA96EF42554419A999979902E5141C3F5285CF3255441295C8F12892E514152B81EE5F025544166666646822E514166666626EF255441AE47E15A7B2E51417B14AE67ED25544100000000762E5141A4703D1AED2554418FC2F538702E5141CDCCCCDCEC255441B81E858B692E514185EB5158ED2554418FC2F5F8642E514152B81EA5ED255441333333B3602E5141AE47E1AAEE255441333333D35B2E5141295C8F82EF2554415C8FC255582E51410AD7A3B0EF25544185EB5148532E514114AE47A1EF2554418FC2F5B84C2E51413D0AD763EF255441D7A3700D492E514185EB51E8EE255441666666E6442E5141333333D3ED255441B81E85CB422E5141F6285C9FEC25544185EB51F8402E51419A999929EB2554411F85EB21422E514185EB5168EE25544109000000295C8FF28A2E5141D7A3702D052654419D6A6B26892E514123BA0A6C0526544166666656892E5141AE47E14A04265441295C8F82872E51419A9999C9032654417B14AEF7862E5141EC51B8AE0126544148E17A44872E51417B14AEC700265441295C8F12892E51418FC2F53802265441AE47E17A8A2E514185EB510803265441295C8FF28A2E5141D7A3702D05265441070000005C8FC245342E5141AE47E1DA4B2654410AD7A3702E2E51415C8FC2B547265441C3F528BC392E51410AD7A33041265441E17A14FE442E514114AE478143265441295C8F92432E51413D0AD7C347265441EC51B83E3A2E51413D0AD713472654415C8FC245342E5141AE47E1DA4B2654410B0000005C8FC2E5292E5141295C8FC2552654413D0AD7F3252E5141295C8FC2552654413D0AD7F3222E5141AE47E1EA53265441CDCCCC6C272E51415C8FC2B54C265441713D0A272A2E51410AD7A3804B265441713D0A672C2E514148E17A744E26544148E17A942E2E5141CDCCCC0C4D2654417B14AE37332E5141A4703DCA4F26544100000000322E514148E17A64532654411F85EBA12C2E5141AE47E19A512654415C8FC2E5292E5141295C8FC2552654411A000000CDCCCCFC632E514152B81EA53B265441E17A14BE652E5141C3F528CC3A26544185EB51E8642E5141F6285C3F3126544148E17A14632E5141666666462E26544148E17A94722E5141000000C021265441E17A14AE742E5141713D0A272426544152B81E35772E5141A4703DEA21265441D7A3707D792E5141295C8F5222265441EC51B82E7A2E514152B81ED523265441E17A146E782E5141B81E856B272654410AD7A360792E51413D0AD7532B265441CDCCCC6C7B2E5141EC51B8FE2F2654418FC2F5587E2E5141F6285C4F39265441CDCCCCDC7C2E5141C3F528BC3B26544152B81E056A2E51411F85EBB13D2654410AD7A360652E5141B81E85DB3E265441B81E858B642E514114AE472142265441E17A14EE662E5141CDCCCC3C44265441F6285C5F662E51417B14AE574726544152B81EA5622E5141666666064A26544133333353632E514166666646502654415C8FC245612E5141B81E859B50265441F6285C7F5F2E5141A4703D3A4B2654411F85EB61622E51413333330347265441F6285CFF5E2E51410000002045265441CDCCCCFC632E514152B81EA53B26544131000000EC51B85E032E5141295C8F32CD2554419A999909052E5141F6285C1FCD255441E17A144E082E51418FC2F5A8CC255441F6285C6F072E5141C3F528CCC9255441B81E85BB092E51418FC2F518C9255441D7A370DD082E5141D7A3707DC725544114AE47A1092E51419A999929C7255441D7A3709D0A2E514152B81E95C82554419A9999090C2E51417B14AE17C82554415C8FC2A50C2E5141D7A370EDC8255441713D0A470E2E514114AE4741C82554419A9999190F2E51417B14AE27CB255441F6285C4F0C2E5141D7A3704DCC255441B81E856B0C2E51419A9999D9CC25544133333393102E51417B14AE77CC25544157E370AA102E514187A908BACB25544127FEC541122E514169E9829ECB255441AB72A50A142E5141FA292B5FCC25544133333313142E5141D7A370BDCC255441713D0A27162E51419A999949CD25544152B81E85172E514114AE47F1CD255441F6285CDF192E514152B81E25CF25544152B81EF51E2E514152B81E35D225544152B81E95212E51419A999959D3255441E17A147E252E5141A4703DEAD42554411F85EB51282E5141666666E6D625544185EB51882C2E514185EB51F8D9255441CFCF5C5A2D2E5141C5A9398ADA2554416969F6932C2E51414A958B82DB25544185EB51E82A2E51413D0AD763DA2554413D0AD783262E5141666666E6D6255441295C8F72232E5141713D0A37D5255441A4703D0A212E5141F6285C5FD425544152B81EF51E2E5141B81E855BD32554419A9999E91A2E5141D7A3701DD125544114AE4711182E5141F6285C4FCF25544152B81E35162E5141B81E858BCE25544152B81E75142E51419A999929CE255441713D0A970F2E514114AE47F1CD2554419A9999D9092E5141B81E851BCE25544152B81EE5062E5141F6285C6FCE25544152B81E95052E514152B81EB5CE2554419A999999042E5141D7A3707DCE255441D7A370ED032E5141AE47E18ACE255441D7A370FD002E514152B81E45CE25544197E616AEFE2D51419D4D22EECD25544183C646C7FE2D5141D4B3A4C8CC255441713D0A47002E514114AE4711CD255441EC51B85E032E5141295C8F32CD2554411700000048E17A84412E51413D0AD7E397265441C3F5280C3C2E51410AD7A350952654410AD7A3003B2E5141E17A14BE922654415C8FC2A53B2E51411F85EB91902654411F85EB11402E5141F6285C3F90265441713D0A47412E5141C3F528FC8B26544152B81EC5432E514152B81E058B2654415C8FC275452E514152B81E258C265441666666D6482E514152B81E958B265441713D0A874A2E5141000000D089265441A4703D1A4D2E5141B81E854B8A265441F6285C1F512E51418FC2F5B887265441E17A140E532E5141295C8F928926544185EB5148582E51418FC2F5688926544148E17A045B2E5141333333F38C2654417B14AE275E2E5141CDCCCC5C8F2654413D0AD703622E514185EB51488F2654418FC2F558642E51411F85EB2191265441666666365A2E514152B81ED594265441713D0AA7522E5141C3F528CC95265441F6285C6F4F2E5141713D0A57922654410AD7A3404B2E5141A4703D7A9526544148E17A84412E51413D0AD7E397265441050000007B14AE47F32E5141D7A3707D45265441A4703DEAF12E5141AE47E19A432654410AD7A340F32E51415C8FC2A542265441A4703D9AF42E514166666676442654417B14AE47F32E5141D7A3707D452654410700000052B81E05D62E5141AE47E1FA52265441713D0AA7D12E51419A9999494D2654419A999939D92E5141CDCCCC0C482654415C8FC2C5DA2E5141CDCCCCDC48265441B81E856BE72E51413333338354265441F6285CBFE12E5141333333E35726544152B81E05D62E5141AE47E1FA5226544108000000295C8FB2B82E5141333333236E265441A4703DDAB82E5141295C8F92722654413D0AD7D3AB2E5141666666F67726544100000070AA2E51418FC2F5B8742654410AD7A3B0AD2E51417B14AE5772265441295C8FC2AE2E51417B14AE4770265441AE47E11AB52E5141CDCCCC0C70265441295C8FB2B82E5141333333236E2654410D000000A4703DDAF32E5141D7A370CD222654418FC2F5F8F42E51418FC2F5882526544114AE4701F72E5141EC51B8BE25265441713D0A87F92E5141295C8F22242654411F85EB61FD2E5141AE47E19A25265441F6285C4FF62E5141AE47E12A3126544100000080F32E51415C8FC2F5302654410AD7A310EA2E51415C8FC2F52F265441D7A3701DE62E51411F85EB312C265441D7A370CDE32E514185EB51F82826544185EB51C8E42E5141D7A3706D27265441C3F5286CEC2E5141B81E85EB27265441A4703DDAF32E5141D7A370CD222654411200000085EB5198B02E51418FC2F5F86326544114AE47C1AF2E514114AE47C1612654410AD7A340B62E5141EC51B83E5D26544100000080C12E51417B14AEE75C26544152B81E65C42E5141A4703DAA63265441AE47E13AC62E51417B14AE0767265441295C8F22C92E51411F85EB9166265441E17A147ECD2E5141295C8FF267265441EC51B89ED12E5141AE47E1BA6526544148E17A24D42E5141B81E85EB5F265441D7A370EDD92E51413D0AD7E35A26544166666606DD2E514148E17A545E265441E17A14DECE2E5141D7A3703D6A2654413D0AD7D3C82E514152B81E256D2654411F85EB11C72E514152B81EC56B265441D7A3707DC12E51413333337361265441C3F5289CBA2E514185EB51386126544185EB5198B02E51418FC2F5F8632654410B000000B81E857B2C2F5141F6285CEF9625544148E17AD42C2F5141AE47E1CA95255441295C8F422E2F5141666666A6942554418FC2F5E82F2F5141E17A149E94255441EC51B84E312F5141AE47E1EA91255441AE47E14A382F5141D7A3707D8E255441EC51B82E392F5141713D0AD790255441AE47E15A322F514100000010952554411F85EB11322F5141E17A147E98255441AE47E16A2E2F5141A4703D9A99255441B81E857B2C2F5141F6285CEF96255441080000000AD7A3600B2F5141E17A141EE0255441EC51B8EE072F51410AD7A330DF255441666666B60B2F51418FC2F528D9255441B81E858B0F2F5141D7A3709DD725544166666606142F5141EC51B84ED9255441713D0A77162F514148E17AE4DC2554415C8FC2C5142F51413D0AD7B3DE2554410AD7A3600B2F5141E17A141EE02554410800000000000090E42C5141C3F528BC4A285441D7A3702DE32C51417B14AEE7482854410AD7A390E22C514185EB5118482854417B14AE47E52C5141AE47E1CA45285441F6285C6FE72C5141E17A14DE47285441B81E85FBE72C514152B81E6549285441CDCCCC3CE72C51413D0AD7234A28544100000090E42C5141C3F528BC4A28544105000000F6285CAFCD2C5141713D0A9749285441CDCCCC3CCE2C5141EC51B83E47285441AE47E17AD12C5141EC51B83E47285441295C8F22D12C514114AE47014A285441F6285CAFCD2C5141713D0A97492854410500000066666696DA2C51411F85EBC1CF285441D7A370ADD72C51419A999919CF2854417B14AED7D72C51415C8FC265CD285441C3F5286CDA2C5141A4703DBACD28544166666696DA2C51411F85EBC1CF28544108000000295C8FC2932C5141A4703DBACD28544185EB51D88F2C5141295C8FF2C9285441C3F528DC8F2C5141EC51B82EC8285441B81E853B912C51418FC2F588C628544185EB5198932C51410AD7A350C62854415C8FC245972C5141A4703DAAC928544114AE4781962C5141295C8F22CC285441295C8FC2932C5141A4703DBACD285441060000008FC2F5F8DA2C5141EC51B83ECC285441E17A148ED82C514185EB51F8CB2854413D0AD763D82C51411F85EBA1C7285441A4703D7ADA2C5141713D0A07C728544152B81E85DB2C5141A4703DAAC92854418FC2F5F8DA2C5141EC51B83ECC2854410A0000003D0AD7738B2C5141B81E853BC32854415C8FC2D58A2C5141713D0A47C3285441C3F528BC892C51419A9999E9C1285441C3F528BC892C5141F6285C9FBF285441C3F528EC8A2C5141D7A3704DBE2854410AD7A3708A2C5141D7A3701DBD2854413D0AD7A38C2C5141A4703D4ABD28544152B81E858D2C51417B14AEA7BE285441C3F528AC8B2C5141F6285C5FC02854413D0AD7738B2C5141B81E853BC3285441070000000AD7A300FE2C5141AE47E15A7C285441AE47E11AFF2C51415C8FC2357B285441713D0A97012D5141666666467D28544114AE4751012D5141000000907D2854410AD7A380FF2C5141713D0AB77F2854410AD7A390FD2C51413D0AD7137E2854410AD7A300FE2C5141AE47E15A7C2854410D00000085EB5158CE2C5141D7A370DDB928544114AE4741CC2C51419A9999D9B8285441F6285CBFCB2C5141D7A3704DB5285441F6285C2FCD2C51415C8FC265AF285441B81E85BBCE2C514114AE4741AE285441EC51B8BED42C514166666636B3285441295C8FF2D42C5141C3F5286CB42854413D0AD7C3D42C51419A9999C9B5285441AE47E19AD32C514185EB5168B8285441713D0A77D22C51418FC2F598B8285441295C8F42D12C514185EB5168B8285441E17A14DECF2C5141B81E855BB928544185EB5158CE2C5141D7A370DDB9285441450000003D0AD7A3D12C5141D7A370CD9928544166666636D22C51413D0AD7939B28544100000020D52C51413D0AD7A39B285441295C8FB2D52C514185EB51E89C285441EC51B8AED42C5141EC51B8CE9E2854411F85EB91D52C5141666666E6A02854411F85EB91D52C5141F6285C6FA3285441C3F5289CD82C51411F85EB31A4285441000000B0D92C5141E17A14AEA72854417B14AE47D72C5141F6285CAFAC285441333333E3D52C514114AE4751AD28544133333343D42C5141D7A370ADA92854410AD7A3C0CF2C5141D7A370ADA92854411F85EBC1CE2C5141F6285C6FAB2854415C8FC275CD2C5141D7A370BDAB28544185EB51C8CA2C51417B14AE77A628544152B81E65CB2C5141F6285CCFA0285441295C8F22CA2C514185EB51F89F285441666666B6C92C5141EC51B8FEA1285441EC51B8BEC42C514185EB5158A728544148E17A44C12C5141D7A370BDA5285441EC51B80EBE2C51410AD7A3B0A728544152B81E25BC2C51411F85EB01A628544152B81EC5BA2C5141EC51B8FEA728544152B81E65B92C5141EC51B84EA728544185EB5178B92C5141713D0A17A52854418FC2F598B72C51413D0AD753A4285441295C8F42B62C514166666696A5285441AE47E14AB72C51419A9999D9A62854411F85EB71B72C51413D0AD7C3A7285441713D0A87B62C51418FC2F5B8A828544185EB5178B32C51410AD7A300A728544148E17A54B12C5141E17A143EA52854411F85EBD1AC2C5141666666E6A42854415C8FC2E5AC2C51419A9999D9A6285441000000C0AB2C51410AD7A360A828544166666606AB2C5141E17A147EA8285441295C8F42AA2C514152B81EB5A4285441C3F528ECA22C51410AD7A370A4285441F6285C9FA12C514185EB5148A52854418FC2F5989F2C51410AD7A370A42854417B14AE679F2C514152B81E45A1285441F6285C4F9C2C5141E17A148E9E285441D7A370ED9B2C51413D0AD7139B285441333333839A2C5141000000509A285441F6285CAF972C5141000000509A2854413D0AD7C3952C5141F6285C3F96285441F6285C2F9B2C5141AE47E1BA96285441D7A370AD9E2C51413333333394285441AE47E1EA9E2C5141333333E395285441C3F5281C9D2C5141F6285CEF97285441295C8FC29F2C5141CDCCCC2C98285441AE47E1DAA32C5141713D0AD79328544100000050A82C51415C8FC2F5932854417B14AE27A92C51411F85EB01962854410AD7A390AB2C51410AD7A320962854413D0AD7E3AC2C5141000000E0922854413D0AD793BA2C5141AE47E1DA8F28544100000010BE2C51411F85EBF191285441AE47E19AC02C5141EC51B8EE9428544148E17A64BF2C5141AE47E10A99285441CDCCCCBCC12C51418FC2F5289D285441F6285CAFCB2C51419A9999B9982854410AD7A300CC2C5141333333D39628544152B81ED5C82C5141AE47E18A942854418FC2F5C8C92C5141713D0A5793285441AE47E1FACE2C5141EC51B89E952854419A9999A9CE2C5141C3F5285C992854413D0AD7A3D12C5141D7A370CD992854410C00000052B81EC5C42C5141C3F5287C9A2754413D0AD7F3C32C5141333333439B275441000000A0C22C5141B81E858B9C27544114AE4761C22C51417B14AEC79C2754415C8FC2B5BE2C5141B81E85FB9827544100000030C12C5141F6285CAF95275441AE47E16AC22C51413D0AD79395275441EC51B8AEC32C514114AE47619627544133333333C42C5141B81E851B98275441EC51B8EEC32C514100000000992754417B14AE17C52C5141E17A142E9A27544152B81EC5C42C5141C3F5287C9A27544107000000E17A14DEBD2C5141CDCCCC7CAA2754411F85EB61BD2C51418FC2F578AA275441713D0A77BD2C514152B81E05A72754419A9999A9C12C5141295C8F32A72754410AD7A3A0C12C514185EB5198AA275441713D0A17C12C514148E17A94AA275441E17A14DEBD2C5141CDCCCC7CAA275441130000008FC2F5688C2C51415C8FC2E5E1275441713D0A47812C5141EC51B80EDE275441295C8FE2802C51410AD7A330D5275441B81E853B842C51417B14AE17D5275441333333D3842C51419A999989CB275441F6285CCF852C5141D7A370FDC727544152B81E258A2C5141295C8FA2CB275441666666368C2C5141AE47E16AD327544185EB51488E2C5141CDCCCCECD2275441A4703DCA8D2C5141666666E6CD275441AE47E16A922C5141D7A3705DD0275441E17A144E932C51419A999999D4275441666666C68E2C5141E17A144ED4275441B81E85DB8F2C51413D0AD753D9275441AE47E16A922C514166666686D9275441713D0A67932C514114AE47F1DE275441713D0A27902C514148E17AA4E5275441A4703D7A8E2C5141B81E853BE62754418FC2F5688C2C51415C8FC2E5E1275441070000003D0AD7D3CE2C51413D0AD743EE2754418FC2F528D02C51413D0AD793F12754413D0AD7E3CF2C5141EC51B8EEF2275441CDCCCC4CCE2C51411F85EB51F3275441A4703D1ACD2C51413D0AD713F22754415C8FC215CC2C51410AD7A350EF2754413D0AD7D3CE2C51413D0AD743EE2754410B000000EC51B8CED82C51415C8FC275EF2754415C8FC235D72C51418FC2F518EF275441E17A141ED72C514114AE4761ED2754411F85EB91D42C51418FC2F518EE2754417B14AE87D32C51419A999969EA275441295C8FA2D42C514185EB5128E9275441713D0AB7D52C514152B81EE5E8275441CDCCCC0CD82C5141D7A370BDE927544152B81EE5D82C51419A999929EC2754411F85EB11D92C5141713D0A17EE275441EC51B8CED82C51415C8FC275EF275441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>538894 - 3205067
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000006000000E5000000661FDAE9A42E5141D24D87AADE2554418FC2F588A52E514166666636DD255441B81E85AB9B2E5141AE47E14AD0255441D7A370CD922E5141D7A370ADC42554418FC2F5088C2E5141F6285CCFBB255441295C8F227E2E5141666666F6AF255441A4703DDA612E51419A9999299C255441F6285C0F612E51410AD7A3709D255441F6285C6F5F2E5141CDCCCCCC9D25544114AE47A15D2E51410AD7A3709D2554410AD7A3205C2E51415C8FC2E59C2554413D0AD7C35B2E5141666666369B2554411F85EB515C2E514148E17AC498255441F6285CDF532E51411F85EBE19425544152B81E153F2E514114AE474192255441CDCCCC3C262E5141333333238F255441713D0A17202E51419A999959962554410AD7A360202E51411F85EB719825544152B81EF51F2E51415C8FC2E59C255441000000D01E2E514152B81E35A0255441B81E85AB1D2E5141E17A14BEA5255441CDCCCC8C1D2E5141EC51B87EAA255441C3F5289C1D2E51417B14AE77AE25544148E17AC41C2E5141333333C3B3255441AE47E11A1C2E5141000000E0B82554419A9999491C2E514133333373BD255441EC51B8BE1B2E5141A4703DEABF25544148E17A84192E51413D0AD793C0255441000000C0162E514100000000C1255441B81E859B152E514100000060BF2554419A999929142E5141B81E853BBE255441333333A3112E5141A4703D5ABE2554410AD7A340102E514148E17AE4BE255441333333630E2E51415C8FC2C5BE255441F6285C1F0D2E51411F85EB91BD2554417B14AEE70D2E51419A999929BB255441E17A14DE0E2E51417B14AE27B825544114AE47910E2E514152B81E25B5255441666666760C2E5141666666D6B1255441000000800B2E514185EB51F8AF255441B81E85EB0B2E51411F85EB71AD25544148E17A040B2E5141F6285C0FAC255441000000E0092E514152B81E45A82554419A9999E9082E5141295C8F42A5255441AE47E12A082E514100000090A325544133333313022E5141CDCCCCECA4255441E17A145E002E5141713D0A97A125544100000090FE2D5141CDCCCC2C9C255441B81E85CBFB2D5141713D0A179325544166666616F92D51410AD7A37088255441A4703DEAF62D51415C8FC2A57A25544166666696F42D5141666666D671255441F6285C0FEE2D5141A4703D3A7425544133333353F22D5141B81E854B86255441EC51B88EF52D514114AE47F19425544152B81E35F92D5141713D0AD7A425544100000050FB2D514100000030A72554413D0AD793FC2D5141AE47E1EAAA2554417B14AEC7FD2D5141EC51B85EAF2554411F85EB61FE2D5141CDCCCC2CB125544100000030002E5141AE47E19AB42554411F85EBA1012E51411F85EB11B72554413D0AD7C3FF2D51413D0AD783B8255441A4703D8AFD2D514152B81E05BA255441B81E85CBFB2D51410AD7A3E0BA2554410AD7A320FD2D5141EC51B81EBE255441EC51B85E032E5141295C8F32CD2554419A999909052E5141F6285C1FCD255441E17A144E082E51418FC2F5A8CC255441F6285C6F072E5141C3F528CCC9255441B81E85BB092E51418FC2F518C9255441D7A370DD082E5141D7A3707DC725544114AE47A1092E51419A999929C7255441D7A3709D0A2E514152B81E95C82554419A9999090C2E51417B14AE17C82554415C8FC2A50C2E5141D7A370EDC8255441713D0A470E2E514114AE4741C82554419A9999190F2E51417B14AE27CB255441F6285C4F0C2E5141D7A3704DCC255441B81E856B0C2E51419A9999D9CC25544133333393102E51417B14AE77CC2554419A9999D9102E51419A999919CB255441D7A3700D122E5141B81E850BCB255441F6285CBF132E514152B81EA5CB25544133333313142E5141D7A370BDCC255441713D0A27162E51419A999949CD25544152B81E85172E514114AE47F1CD255441F6285CDF192E514152B81E25CF25544152B81EF51E2E514152B81E35D225544152B81E95212E51419A999959D3255441E17A147E252E5141A4703DEAD42554411F85EB51282E5141666666E6D625544185EB51882C2E514185EB51F8D9255441477A6EDB2D2E51418E1391E8DA25544181CF8FF22C2E5141A51928CEDB25544185EB51E82A2E51413D0AD763DA2554413D0AD783262E5141666666E6D6255441295C8F72232E5141713D0A37D5255441A4703D0A212E5141F6285C5FD425544152B81EF51E2E5141B81E855BD32554419A9999E91A2E5141D7A3701DD125544114AE4711182E5141F6285C4FCF25544152B81E35162E5141B81E858BCE25544152B81E75142E51419A999929CE255441713D0A970F2E514114AE47F1CD2554419A9999D9092E5141B81E851BCE25544152B81EE5062E5141F6285C6FCE25544152B81E95052E514152B81EB5CE2554419A999999042E5141D7A3707DCE255441D7A370ED032E5141AE47E18ACE2554417B14AE87042E514100000000D0255441E17A14EE052E5141295C8F72D32554418FC2F5C8082E51419A999979DA2554417B14AE47052E51419A9999D9DC255441EC51B83E062E5141AE47E1CAE02554411F85EB61072E51417B14AEC7E0255441C3F528DC0F2E51413D0AD7A3E02554419A9999E9202E5141F6285C5FDC255441CDCCCCAC2D2E5141295C8F42DC25544165F42DFB2C2E51416C5333D4DB255441CB5A94E12D2E5141F13E85ECDA2554417B14AED72F2E51410AD7A350DC25544133333383332E514148E17A34DF25544166666666362E514100000040E1255441B81E85BB3A2E514185EB51A8E325544185EB51283F2E5141A4703D1AE625544166666616402E5141B81E852BE82554411F85EB21422E51413D0AD793EA2554410AD7A3E0432E514185EB51B8EB255441CDCCCCDC452E5141E17A14BEEC25544185EB5198492E51415C8FC295ED255441A4703D3A4E2E5141F6285C3FEE2554410AD7A300542E5141CDCCCC7CEE2554410AD7A340572E5141295C8FE2ED255441CDCCCC3C592E51411F85EBF1ED255441333333D35B2E5141E17A145EEE2554418FC2F5785E2E51411F85EBF1ED255441713D0A27652E5141E17A14BEEC255441B81E852B6B2E514152B81E05EC255441F6285C2F712E5141713D0AD7EB255441D7A3703D762E5141666666E6EB2554419A9999D9792E514185EB51B8EB25544148E17A947D2E5141E17A14BEEC255441B81E85FB842E5141AE47E1AAEE2554418FC2F5088A2E5141EC51B8EEEF255441D7A370AD912E5141295C8FC2F22554419A9999E9962E5141A4703D2AF5255441EC51B83E9B2E5141713D0A27F7255441BA136EC39B2E51419B351F6CF7255441F31B28AE9B2E51416DB0CD9BF725544157EEC1A49B2E5141E2A49BACF7255441F3CA94569B2E5141FDFBE94FF8255441295C8FA2972E5141D7A3707DF62554419A999979902E5141C3F5285CF3255441295C8F12892E514152B81EE5F025544166666646822E514166666626EF255441AE47E15A7B2E51417B14AE67ED25544100000000762E5141A4703D1AED2554418FC2F538702E5141CDCCCCDCEC255441B81E858B692E514185EB5158ED2554418FC2F5F8642E514152B81EA5ED255441333333B3602E5141AE47E1AAEE255441333333D35B2E5141295C8F82EF2554415C8FC255582E51410AD7A3B0EF25544185EB5148532E514114AE47A1EF2554418FC2F5B84C2E51413D0AD763EF255441D7A3700D492E514185EB51E8EE255441666666E6442E5141333333D3ED255441B81E85CB422E5141F6285C9FEC255441240F2CFC402E5141B103B208EB2554411F85EB21422E514185EB5168EE25544166666696482E514114AE47A1FF2554415C8FC2A55C2E5141AE47E1DA03265441F6285C6F742E5141D7A3703D0826544166666626892E5141C3F5286C0526544166666656892E5141AE47E14A04265441295C8F82872E51419A9999C9032654417B14AEF7862E5141EC51B8AE0126544148E17A44872E51417B14AEC700265441295C8F12892E51418FC2F53802265441AE47E17A8A2E514185EB510803265441295C8FF28A2E5141D7A3702D052654418FC2F5A88E2E5141C3F528AC0426544185EB51389D2E514114AE47B10226544152B81E759E2E5141D7A370ADFE2554410AD7A3E09C2E514152B81EC5FE255441AE47E10A9A2E51417B14AE77FF255441666666D6982E51415C8FC275FA25544114AE47F19A2E5141A4703D0AFA2554411F85EBE19A2E51415C8FC2E5F8255441B81E858B9B2E5141A4703D6AF8255441F6D7E75A9B2E5141818F6656F8255441E294EBA79B2E514116752AB4F7255441F74233C99B2E5141B00EC46DF7255441F6285C6F9D2E5141AE47E14AF8255441F42996619E2E5141B5CA48A7F82554416A0AA2B09F2E51418701EF8BF8255441B81E856BA02E5141000000D0F7255441C3F528ECA02E514133333313F72554413D0AD7F3A12E514152B81E55F0255441EC51B83EA32E51418FC2F5A8EA255441713D0AD7A32E5141713D0A27E725544133333353A42E5141AE47E10AE0255441B606CCE6A42E514145AE74AFDE255441DD516D8EA62E5141852D8F4DDF2554417B14AE07A62E5141F6285C1FE1255441295C8F92A52E5141D7A3702DE7255441C3F528DCA42E51418FC2F5E8EA255441D7A3708DA32E5141AE47E19AF02554411F85EB01A32E5141C3F5289CF625544100000060A22E514114AE4731FA2554419A9999C9A32E5141F6285C7FF92554410AD7A3B0A42E5141C3F5283CF8255441D7A3700DA52E5141A4703DCAF62554413D0AD703A62E51419A999949F52554415C8FC275A72E5141295C8F62F4255441B81E850BAA2E5141666666F6F3255441333333E3AA2E5141666666C6F0255441000000A0A82E5141F6285C4FEE25544148E17A34A92E51413D0AD723EC2554417B14AE77AA2E51410AD7A3E0EA255441B81E850BAB2E514148E17AF4E825544166666696AA2E51415C8FC225E72554414A44360FA82E51417228DBF2E72554413E8AB299A72E514108C043DAE3255441713D0A47A72E5141C3F5280CE0255441713D0AB7A62E5141295C8FC2DE255441BF893695A62E5141B7596143DF255441661FDAE9A42E5141D24D87AADE25544105000000295C8FA23B2E5141CDCCCCFC98255441AE47E16A3C2E51411F85EB71982554413D0AD7233D2E51418FC2F55899255441C3F5284C3C2E51411F85EB119A255441295C8FA23B2E5141CDCCCCFC9825544114000000E17A14FE332E5141CDCCCC2C9C2554418FC2F588342E51413D0AD7B39E25544152B81E55332E51411F85EB81A025544185EB5158312E514166666646A325544133333343302E5141F6285C9FA5255441E17A148E2D2E51417B14AEF7A7255441D7A3705D2A2E5141F6285C3FA72554411F85EB51282E5141AE47E10AA6255441EC51B80E272E5141AE47E16AA4255441713D0AD7272E5141B81E852BA1255441F6285C8F282E51419A9999199E25544166666686292E5141AE47E15A9C25544114AE47012A2E514152B81EB59925544114AE47A12B2E5141E17A14CE98255441AE47E14A2C2E5141000000409A255441A4703DEA2D2E51410AD7A3309A255441E17A142E2F2E5141A4703D3A99255441D7A370DD302E5141000000A098255441A4703DCA322E514148E17AC499255441E17A14FE332E5141CDCCCC2C9C25544105000000713D0AC7952E5141AE47E12AE22554410AD7A3D09A2E514185EB51B8E1255441D7A3706D9B2E514148E17A34E825544114AE4761962E514114AE4721E8255441713D0AC7952E5141AE47E12AE225544106000000333333F3392E51418FC2F5E892255441333333933B2E5141EC51B88E952554415C8FC2E53C2E5141666666669625544148E17A743B2E5141B81E857B97255441B81E851B392E51411F85EB9193255441333333F3392E51418FC2F5E8922554410500000052B81E351D2E5141F6285CBFD6255441333333431D2E5141D7A3708DD8255441333333131B2E51419A9999A9D8255441713D0AF71A2E51419A999959D725544152B81E351D2E5141F6285CBFD6255441
+</a>
+
+<b>
+010600000001000000010300000037000000BD08000066EC9D7EB52C51410DA928308727544148E17A74AE2C514114AE47A1862754411F85EBB1A52C51419A9999D9872754418FC2F598A02C5141AE47E1EA862754413D0AD7D3952C5141E17A146E89275441E17A144E912C51410AD7A310882754417B14AE378E2C5141666666B6882754410AD7A340872C5141CDCCCCBC8D275441D7A3700D7C2C5141F6285CBF8F275441CDCCCC8C7B2C51415C8FC2E5902754418FC2F5787D2C51418FC2F5C891275441AE47E1AA792C5141713D0A67A427544114AE47C16D2C5141EC51B81EA727544185EB51C8722C5141C3F528FCA8275441B81E856B722C5141713D0A47AB275441666666266C2C514152B81E95B0275441E17A143E662C5141EC51B8FEB2275441AE47E13A5E2C5141E17A146EA92754418FC2F558552C5141C3F5284CA82754417B14AE27542C514148E17A84AB275441EC51B83E4E2C5141CDCCCC0CAE27544166666656482C5141B81E851BBA2754410AD7A3C0472C5141713D0A17BC275441EC51B83E522C5141C3F5282CC2275441000000B0562C5141000000D0BE275441000000105A2C514133333323C027544166666636602C51419A9999B9BD2754410AD7A3106B2C514166666616BE27544114AE47716E2C514148E17A04C02754418FC2F5986D2C5141B81E85ABC22754410AD7A360692C514148E17A64C3275441666666266C2C5141D7A3704DC9275441A4703DDA702C514166666656C82754419A999979722C51411F85EB41C8275441A4703D4A732C5141F6285C1FCD2754413D0AD7B37A2C51415C8FC235CE27544114AE47117C2C5141F6285C9FD12754419A9999397B2C5141CDCCCC6CDA275441B81E854B792C514185EB51E8DA275441E17A14DE732C5141CDCCCC6CDA275441EC51B88E752C514166666646D4275441A4703D2A6F2C5141C3F528FCD12754411F85EB41692C51411F85EBC1D4275441EC51B85E612C514148E17A14D7275441A4703DCA5D2C5141B81E85ABCC27544114AE47E1522C51415C8FC295CC275441713D0A77502C514114AE47C1C8275441295C8FA2492C514166666656CA27544185EB5138462C5141AE47E1AAD0275441D7A3700D492C5141A4703D6AD2275441CDCCCC8C4D2C5141AE47E16ACF275441B81E858B542C5141AE47E1EAD02754411F85EB214E2C5141295C8F92E12754418FC2F548662C5141666666E6ED275441F6285C7F692C5141A4703D0AF62754419A999959742C514148E17A54F8275441333333C3762C514152B81E65FD2754419A9999F9702C51417B14AE8700285441666666266C2C514148E17A34FF2754419A9999196A2C51419A9999E9FC275441666666766A2C514152B81E05FA275441CDCCCC5C662C51413D0AD723FA275441CDCCCCAC642C5141F6285C4FFC275441000000F0602C5141E17A14BEFA275441295C8F12642C5141666666B6F42754415C8FC275592C5141B81E859BF72754419A9999E9532C51410AD7A350F527544152B81E75482C5141666666D6DC27544152B81EB5432C5141F6285CFFDC275441D7A370ED3D2C5141AE47E1DACF27544152B81E75362C5141F6285CDFB727544133333313342C51417B14AEB7BA275441713D0A67372C5141CDCCCC0CC927544100000070312C5141295C8FF2DA27544152B81E95332C5141333333E3DF275441E17A143E382C514114AE4701E1275441713D0AE73C2C5141A4703D0ADB2754419A999989402C5141000000F0E1275441B81E856B3F2C51410AD7A360EC275441EC51B85E3D2C5141CDCCCC7CF427544148E17AD42D2C5141000000E0F727544114AE4741302C514114AE4741FB2754411F85EBD1302C51411F85EBD1FB27544185EB5138332C5141713D0A07FE27544185EB5178332C51411F85EBB1FE275441CDCCCCCC332C514166666676FF27544166666616342C5141713D0AD7FF2754417B14AEB7342C5141B81E858B00285441F6285CAF352C5141B81E857B0128544100000010362C51410AD7A330022854410AD7A360372C514148E17AF40428544166666626392C5141A4703D0A0928544185EB5148392C51417B14AE470A2854419A999969392C5141AE47E15A0B285441D7A370BD392C5141E17A14BE0B285441EC51B81E3A2C51415C8FC2550C2854419A9999893A2C514152B81E250D285441000000303B2C51418FC2F5B80F2854411F85EBA1402C514114AE4791112854415C8FC275482C5141B81E85FB1A28544152B81EB54E2C5141295C8F721B2854413D0AD7734F2C5141A4703D3A21285441CDCCCC3C4B2C5141295C8F6223285441AE47E17A4C2C5141000000302528544185EB51E84C2C51410AD7A3B0252854413D0AD7B34E2C5141EC51B84E2628544152B81E05542C514148E17A242528544166666666582C514114AE47612728544148E17AF4542C514148E17A742C285441A4703DBA552C5141000000802D285441AE47E1CA562C5141000000002F285441B81E856B572C514152B81EB52F285441C3F5282C592C514148E17A44312854410AD7A3D05A2C51418FC2F578322854417B14AE275B2C5141AE47E1EA34285441713D0A875B2C5141295C8F4237285441333333735B2C51417B14AEC739285441CDCCCC6C5C2C514114AE47313B285441A4703DCA5D2C51418FC2F5283D285441F6285C6F5F2C51411F85EB013F285441A4703D1A612C514152B81E7540285441EC51B8FE642C5141E17A144E43285441C3F528AC652C51418FC2F5C843285441A4703D4A662C514148E17A6445285441295C8FD2662C5141D7A3708D46285441EC51B88E672C5141C3F528CC4728544114AE4761682C51413D0AD79348285441C3F528AC692C5141EC51B88E492854410AD7A3206B2C51418FC2F5F849285441F6285C6F6C2C514114AE47014A285441F6285CDF6D2C51411F85EB414A28544152B81E656E2C5141EC51B88E4A2854417B14AE476E2C5141333333634B2854415C8FC295722C5141E17A14BE55285441B81E85EB742C5141A4703D8A5F285441CDCCCCEC752C5141AE47E16A602854410AD7A320772C51418FC2F53860285441000000D0782C5141F6285CAF5C2854413D0AD733792C5141CDCCCC3C52285441A4703D7A762C51413D0AD74346285441A4703D2A782C51413D0AD7B343285441713D0A677A2C5141B81E85AB43285441F6285C7F7F2C51417B14AE073928544100000040812C514100000010392854413D0AD7F3812C5141F6285C6F3628544152B81EB5832C51418FC2F5583A28544114AE47D1842C514185EB51083D28544166666666852C51413D0AD76342285441E17A145E852C51418FC2F56844285441B81E858B842C51413D0AD7A3492854411F85EB81802C5141EC51B80E592854410AD7A3E07E2C514185EB51D85C285441C3F528CC7C2C5141666666565E285441CDCCCCCC792C5141B81E85CB5F28544185EB51F8772C5141CDCCCC0C62285441D7A3705D772C514148E17A34652854410AD7A310792C5141CDCCCCDC66285441666666167A2C51417B14AE27672854411F85EB417A2C5141333333C3682854417B14AE477A2C51415C8FC29569285441D7A3701D7A2C51413D0AD7636A2854410AD7A390792C5141B81E855B6B2854418FC2F5B8782C5141EC51B8FE6C285441F6285C2F792C5141E17A146E6D2854418FC2F5287A2C5141295C8F526E2854418FC2F5C87A2C51410AD7A3306F2854410AD7A3507B2C514152B81ED56F285441666666D67B2C51413D0AD7A370285441000000507C2C5141C3F5288C7128544152B81E757C2C5141E17A144E722854419A9999497C2C5141295C8FF272285441CDCCCCEC7B2C5141F6285CCF732854419A9999A97C2C514185EB515874285441713D0AA77D2C51410AD7A3A07128544133333333812C51419A9999397128544166666646862C5141CDCCCC5C6D285441A4703D0A8E2C51413D0AD7036C2854417B14AE27902C51411F85EBE16728544152B81E25932C514148E17AA4662854410AD7A3C0992C514185EB513867285441AE47E15A9B2C51411F85EB7167285441666666569C2C5141295C8F526528544152B81EF5A52C5141666666E66228544148E17A94A52C51416666666660285441D7A370FD9E2C5141C3F5282C60285441CDCCCC9C992C5141CDCCCC8C6028544152B81E15942C5141000000305A28544114AE4711952C5141E17A14FE52285441EC51B89E972C5141F6285CAF50285441295C8F52A22C514148E17A344F285441295C8FC2AD2C51413333336352285441295C8FE2BF2C5141000000F04B285441EC51B80EC32C5141E17A142E51285441C3F528ECC62C5141AE47E15A52285441B81E858BC92C5141A4703D5A4E285441B81E85DBCC2C514152B81E2550285441F6285CAFCD2C5141F6285CDF53285441E17A149ED12C5141B81E850B55285441295C8F72D42C5141333333634F28544185EB5158D72C5141A4703D5A4E285441B81E856BDF2C51415C8FC2D55028544166666636E12C5141333333035A285441C3F5286CE32C514114AE47915C2854417B14AEE7E32C5141E17A14BE61285441F6285CDFE62C5141A4703DEA62285441AE47E15AE72C51416666666667285441EC51B80EE32C5141CDCCCC3C6A2854415C8FC285E02C51418FC2F5286A2854411F85EBB1DD2C5141713D0AB76E285441C3F5281CE22C514185EB51187028544185EB5198E42C51415C8FC2556D28544100000040E62C5141B81E853B6E285441713D0AE7E12C5141B81E85DB742854413D0AD773DE2C5141C3F5283C7428544185EB5118D92C5141B81E858B7A285441000000C0D82C5141713D0AA77A285441B81E853BD82C51419A9999F97A28544114AE47B1D72C51413D0AD7837B285441713D0A27D72C5141F6285CBF7C28544185EB51B8D62C5141EC51B84E7D285441295C8F12D62C5141F6285CEF7D285441F6285C1FD52C514148E17A847E285441713D0AA7D32C51415C8FC2357F2854419A9999F9D02C5141A4703D4A8028544114AE4711CD2C5141E17A14EE812854413D0AD7A3C82C514185EB51388428544148E17A34C52C514152B81E4586285441A4703DAAC42C5141EC51B8AE86285441F6285C3FC22C5141000000408B2854413D0AD7F3BF2C51419A9999C98C285441CDCCCC0CB92C5141000000508E285441D7A3709DAE2C5141B81E85FB8B285441295C8FF2A52C5141F6285C6F8F2854418FC2F588962C514185EB51B890285441295C8F828E2C5141CDCCCC5C91285441A4703DAA892C514148E17A2493285441F6285C6F892C514148E17A8496285441E17A14AE8B2C5141E17A14AE962854417B14AE178D2C5141A4703D2A9528544148E17AF48F2C51418FC2F5F894285441333333C3972C5141D7A3705D9E2854419A9999C9992C5141713D0A679E285441F6285C4F9C2C5141713D0A57A2285441AE47E15A952C5141713D0A57A22854417B14AEC7942C514152B81E05A428544114AE4711982C514152B81E45A72854413D0AD7F3972C5141E17A146EAC28544166666626972C5141E17A146EAC285441C3F5280C952C51419A999999A928544166666626912C514166666696AB28544185EB51488E2C5141B81E85ABB0285441333333338F2C5141D7A370BDB1285441EC51B82E922C5141E17A147EAE2854411F85EBB1932C5141295C8FF2AF285441B81E858B8F2C514100000090B52854413D0AD7938E2C514100000070B7285441295C8FF28C2C51411F85EB91B7285441C3F528AC8B2C5141CDCCCC8CB92854411F85EB218A2C51417B14AE27B92854410AD7A3A08B2C5141713D0A67B4285441713D0A878A2C5141F6285C2FAD28544185EB51688B2C5141AE47E14AAB285441B81E853B8B2C5141E17A142EA928544185EB5148882C514148E17A44A9285441CDCCCCCC872C5141A4703D9AA42854418FC2F558862C5141B81E857BA52854413D0AD743832C514148E17AF4A4285441A4703D2A822C514114AE4711A728544148E17A347E2C514114AE4751A6285441E17A14CE792C514166666676A72854418FC2F5A8782C5141F6285CEFA6285441000000D0762C5141A4703DCAA5285441D7A3706D772C51413D0AD783A4285441295C8FC2792C51419A999929A42854419A9999097B2C5141C3F528CCA2285441333333537D2C5141F6285C9FA2285441E17A143E812C5141C3F528CCA228544185EB5128852C5141B81E858BA3285441AE47E1BA852C51415C8FC2B5A2285441EC51B80E842C5141E17A14BEA1285441F6285C5F812C514148E17AD4A12854415C8FC205812C5141CDCCCC1CA028544152B81EF5822C5141A4703D8A9F2854413D0AD703842C5141EC51B80E9F285441000000C0832C51417B14AE979C285441CDCCCCAC812C5141B81E858B9B285441D7A3708D7E2C51417B14AE879728544152B81E957D2C5141000000E095285441295C8FA27F2C514148E17A6494285441333333E3822C51413D0AD7C393285441F6285CAF832C5141AE47E12A92285441E17A14DE7D2C5141E17A14AE92285441666666467A2C51413D0AD72391285441EC51B8EE792C51413D0AD7338F2854417B14AE877B2C5141A4703D4A8E285441295C8FB27D2C5141295C8F428F285441713D0AC7802C514185EB51B88D28544166666606862C514148E17AD48F285441295C8FD2862C514148E17A848E2854410AD7A300892C5141713D0A678E2854418FC2F5788A2C51418FC2F5B88B28544148E17AF48B2C514152B81E958A285441295C8FE2932C5141000000D088285441F6285C4F952C5141AE47E1BA872854411F85EB31952C51415C8FC25585285441B81E854B8E2C5141713D0A47852854413D0AD763882C5141AE47E1DA87285441A4703D3A862C514166666646882854411F85EB617A2C51410AD7A3407C28544133333303782C5141EC51B8DE7B28544100000070732C5141B81E858B7A285441AE47E1FA6E2C5141F6285C6F7D285441E17A144E702C51415C8FC21580285441AE47E1FA6E2C514114AE4741822854419A9999296A2C51415C8FC2C58128544148E17A64672C51416666665683285441333333D3652C5141333333A3882854417B14AE17622C5141EC51B81E89285441AE47E10A602C5141A4703DAA872854415C8FC2855D2C51410AD7A3F087285441333333335C2C5141AE47E14A88285441B81E854B5A2C5141295C8FC2882854411F85EB91592C514185EB512889285441333333C3582C514114AE47B1892854415C8FC275582C5141713D0A178A285441B81E857B582C51410AD7A3F08A2854410AD7A380582C51413D0AD7B38B2854415C8FC275582C514114AE47818C285441713D0A47582C5141295C8F228D285441A4703DFA572C51417B14AE978D2854415C8FC255572C5141666666568E2854410AD7A3B05A2C5141295C8F928E285441333333035D2C5141295C8FD28E285441295C8F325F2C514114AE47418F28544185EB51A8612C51417B14AE079028544148E17AB4622C51411F85EB819028544166666686632C5141F6285C1F912854413D0AD763642C5141B81E85EB91285441713D0A07652C5141713D0A7791285441713D0AF7672C51418FC2F5D88F2854410AD7A320692C5141333333538F2854417B14AE676B2C514185EB51D88E28544152B81E056C2C5141CDCCCCCC8E2854419A9999B96C2C5141295C8FD28E2854413D0AD7336D2C51415C8FC2F58E285441CDCCCC9C6D2C5141000000308F2854411F85EB916E2C51410AD7A37090285441000000F06F2C5141B81E856B9228544148E17A64702C51418FC2F5C8922854419A999999712C5141AE47E11A93285441C3F5282C742C5141666666269328544152B81E15752C51418FC2F54893285441A4703DCA752C51417B14AE77932854415C8FC255762C5141F6285CCF93285441333333F3762C514185EB51789428544185EB51E8772C5141333333F3952854411F85EBC17B2C51413D0AD71395285441B81E85AB7C2C5141666666969728544152B81E95802C514114AE47819C285441F6285C2F802C514114AE47D1A02854419A9999597F2C5141C3F528DCA0285441000000407E2C514114AE47E19E28544185EB51787E2C51417B14AE979C28544148E17A447C2C5141B81E851B9C2854410AD7A3C07C2C51419A9999199F28544114AE47D17A2C514100000020A1285441D7A3705D792C5141333333F3A028544152B81E65782C51417B14AE17A2285441C3F5287C782C5141CDCCCC3CA328544100000000782C5141F6285CCFA328544152B81E45752C51419A999929A4285441E17A145E722C51411F85EB81A7285441F6285C9F712C5141F6285C5FA72854418FC2F518712C5141E17A144EA82854418FC2F548742C5141E17A144EA8285441B81E851B762C51419A999959A828544100000080782C5141000000A0A8285441C3F528CC792C514148E17A94A82854418FC2F5D87B2C514148E17AD4A82854419A9999197E2C5141A4703DDAA82854411F85EB31802C5141B81E852BA9285441B81E855B812C51418FC2F588A92854411F85EBE1822C5141C3F5282CAA285441F6285CBF832C51419A9999C9AA2854415C8FC245842C514114AE4761AB285441A4703D7A842C5141713D0AE7AB2854415C8FC285842C514133333373AC285441CDCCCCDC832C5141EC51B8BEAC285441C3F528DC822C5141F6285C3FAD285441A4703DCA812C5141295C8FE2AD2854415C8FC2C57E2C51411F85EB71AE285441F6285C5F7B2C51411F85EBB1B42854415C8FC2C5702C514152B81EE5B3285441000000206C2C514185EB5198B1285441000000206B2C5141F6285C3FAA285441CDCCCC2C682C5141F6285C7FAA2854419A9999B9642C514185EB51D8B02854419A9999F95D2C5141B81E854BAF2854410AD7A340582C51417B14AE27B328544148E17A54582C51419A9999E9B3285441A4703D7A582C514148E17AE4B4285441295C8FB2582C5141EC51B84EB6285441295C8FF2582C51411F85EB81B7285441A4703D7A592C51417B14AE37B828544152B81E455A2C5141713D0A87B92854418FC2F5485B2C5141B81E853BBB285441666666365C2C5141333333F3BC285441EC51B8FE5C2C5141A4703DBABD285441F6285CCF5D2C51413D0AD753BE28544148E17A745E2C5141295C8FA2BE28544114AE47315F2C5141CDCCCC2CBF28544166666636602C514185EB5158BF285441A4703D9A642C51417B14AE37BF2854413D0AD723682C5141A4703D7ABE2854413D0AD713692C51415C8FC2F5BE28544185EB51C86A2C514152B81E95BE28544148E17AE46B2C5141CDCCCC6CBE285441000000306D2C5141295C8F42BE28544185EB51386E2C51419A999989BE2854417B14AEC76F2C5141F6285CEFBE285441F6285CCF702C514100000090BF285441B81E853B712C5141F6285C0FC0285441333333E3712C5141C3F528BCC0285441A4703D8A722C5141F6285C5FC1285441E17A14DE722C5141F6285CFFC12854410AD7A3F0722C5141E17A146EC228544148E17A94722C5141D7A3700DC3285441295C8F32722C51410AD7A340C328544152B81E05722C51411F85EBA1C3285441713D0AF7712C514152B81E05C4285441A4703DEA712C514152B81E75C4285441D7A3702D722C514152B81E05C528544148E17A84722C5141B81E859BC528544185EB51A8722C5141CDCCCC4CC6285441E17A14CE722C51417B14AE27C728544152B81EE5722C51418FC2F558C8285441AE47E12A732C5141295C8F42C9285441AE47E13A742C51419A999959CC28544114AE4741752C5141AE47E15ACF2854410AD7A320762C5141713D0A47D22854418FC2F5F8762C514185EB5118D3285441A4703DAA772C514185EB5148D42854411F85EB01782C5141E17A14EED428544152B81E15782C51410AD7A370D5285441EC51B88E782C514185EB51F8D6285441CDCCCC1C792C51418FC2F598D8285441B81E85BB792C514100000060D92854413D0AD7537A2C5141D7A3702DDA285441CDCCCC0C7B2C51410AD7A300DB285441F6285C5F7B2C51410AD7A370DB285441D7A3708D7B2C5141295C8F22DC28544114AE47D17B2C51419A9999B9DC285441D7A3702D7C2C5141CDCCCCFCDD285441295C8F927C2C5141333333D3DE285441000000707D2C5141B81E855BE02854419A9999C97D2C5141EC51B8EEE0285441F6285C2F7E2C514185EB5138E1285441A4703D4A7F2C514148E17A84E1285441A4703D9A7F2C5141C3F528ACE128544152B81EF57F2C514152B81E05E2285441713D0A47802C514152B81EC5E22854410AD7A3B0802C514133333313E3285441AE47E14A812C5141EC51B82EE3285441713D0AE7812C514185EB5128E328544185EB51E8822C51418FC2F5E8E2285441CDCCCC5C832C5141713D0AE7E22854418FC2F5F8832C5141D7A370EDE22854417B14AE37852C51413D0AD7F3E22854411F85EB91852C5141C3F528DCE22854419A9999D9852C5141666666B6E2285441B81E85BB862C5141A4703DFAE1285441CDCCCC8C872C514133333373E1285441EC51B86E882C514152B81E45E12854411F85EBB1882C51413D0AD733E1285441E17A14FE882C51413D0AD7E3E028544133333313892C5141F6285CAFE0285441D7A3708D892C51415C8FC225E028544114AE47D1892C51415C8FC225E0285441F6285C1F8A2C51410AD7A330E0285441295C8F428B2C5141E17A147EDF285441CDCCCC8C8C2C51413D0AD793DE285441713D0AB78D2C514148E17AE4DD28544152B81E55922C514185EB5198DD285441295C8F42982C5141295C8FF2DB285441333333B3982C5141AE47E15ADA2854419A9999099D2C5141D7A370BDDA285441A4703DBA9F2C5141D7A370EDD82854411F85EB819F2C5141EC51B82ED628544185EB51C89F2C51418FC2F588D4285441E17A14BE992C514185EB5108D0285441B81E85BB9A2C51413D0AD773CD28544114AE47C1982C5141E17A14FEC9285441A4703DDA992C5141666666F6C72854418FC2F5989C2C51418FC2F5C8C8285441F6285CAF9E2C5141CDCCCC4CCC285441A4703D8AA12C51418FC2F568CC285441C3F5287CA12C5141CDCCCC3CC828544152B81EB59C2C5141F6285CCFC628544152B81EB59C2C514100000070C52854417B14AED79A2C514148E17AF4C32854418FC2F588982C51418FC2F5B8C4285441295C8FD2972C51419A999969C728544166666616942C51419A999999C5285441295C8F32942C5141713D0A67C3285441F6285CFF962C514185EB51B8BF2854418FC2F5B8972C5141B81E85DBBE285441AE47E14A9A2C51419A999949BF28544148E17AD49B2C5141B81E857BC1285441000000909F2C5141C3F528BCC3285441EC51B8AEA32C5141EC51B8AEC32854415C8FC275A42C514148E17AB4C2285441C3F5285CA52C5141A4703D5AC1285441713D0AF7A72C5141B81E850BC1285441295C8FE2A92C5141E17A149EBF285441713D0A47AE2C51415C8FC2D5BF285441E17A146EAF2C51418FC2F508BD285441B81E853BB22C514133333333BD285441713D0A27B42C514100000000C0285441666666F6BA2C51413D0AD7B3C1285441B81E856BBE2C51411F85EBD1C5285441C3F528BCC42C5141333333B3C628544114AE47B1C32C514114AE47E1C028544148E17AB4C62C51418FC2F5D8BE2854410AD7A3E0C92C514148E17A64BF28544148E17A24CA2C514148E17A94BF285441C3F5284CCA2C5141000000D0BF285441AE47E12ACB2C514152B81EE5C12854411F85EBC1CB2C51413D0AD713C3285441CDCCCCCCCC2C51415C8FC285C4285441EC51B82ECE2C5141B81E856BC8285441C3F528FCCD2C5141EC51B84ECC2854419A9999F9CE2C514100000010CD28544148E17A44D22C514114AE4781CC285441666666C6D32C5141F6285CEFCD285441AE47E1DAD42C5141713D0A27CE2854419A9999C9D52C5141000000A0CF285441CDCCCCECD52C51419A999909D0285441CDCCCCECD52C514185EB5178D02854419A9999C9D52C51418FC2F5F8D0285441D7A3709DD52C514114AE4751D12854413D0AD743D42C514133333323D1285441B81E857BD32C51413D0AD7B3CF2854418FC2F588D22C514152B81ED5CF285441295C8FA2D22C5141A4703D0AD1285441713D0AD7D32C5141295C8F92D2285441B81E857BD32C514166666666D42854418FC2F588CF2C51418FC2F558D5285441E17A148ECE2C5141E17A145ED42854419A999959CD2C51417B14AEC7D3285441713D0A67CC2C51418FC2F5E8D02854411F85EB31CB2C514133333323D12854410AD7A3D0C82C5141A4703D4AD0285441AE47E10AC92C51411F85EBC1D12854410AD7A310CB2C51413D0AD723D42854418FC2F508CE2C51410AD7A3A0D4285441CDCCCCACCD2C5141E17A14DED528544133333343CB2C51415C8FC2D5D528544148E17A24CC2C51415C8FC2C5D828544114AE47E1CB2C514148E17A24DA2854413D0AD7E3C92C51418FC2F508DC2854418FC2F508CE2C51413D0AD753DC285441AE47E1FACE2C514133333303DD285441CDCCCC2CCF2C5141C3F528DCDD2854410AD7A340D02C51410AD7A340DE285441D7A370ADD02C5141D7A3706DDF2854410AD7A3C0D12C5141713D0A97DF2854417B14AE67D22C514114AE4711DF2854418FC2F5F8D32C51419A999959DB2854415C8FC235D52C51419A999959DB28544148E17AD4D52C5141333333C3DD2854415C8FC265D72C514152B81EF5DD285441713D0AC7D92C51410AD7A310DB2854411F85EBE1DA2C5141C3F5281CDB285441A4703D8ADC2C514185EB5148DB2854410AD7A370DD2C51418FC2F578DB28544148E17A94DE2C5141666666D6DB285441AE47E1DAE42C51411F85EB11DB2854418FC2F5E8E42C51410AD7A340DE285441E17A145EE82C5141CDCCCCECDD2854418FC2F5F8E82C5141B81E85DBDE285441295C8F82EA2C5141CDCCCCECDD2854410AD7A3D0EC2C5141713D0A17DE2854410AD7A370F02C5141666666A6DD285441295C8F32F22C5141B81E859BDC28544185EB5108F22C5141C3F5283CDB285441C3F5281CF02C5141A4703DEAD9285441333333F3EA2C514100000050D928544133333363EB2C5141B81E852BD728544133333323E92C514152B81EE5D628544148E17AA4E82C5141E17A145ED9285441F6285CCFE32C514148E17A14DA2854410AD7A3A0E02C51411F85EB41D9285441F6285C8FE12C51417B14AE47D728544100000040E42C514152B81EE5D62854413D0AD7B3E32C51411F85EB31D528544148E17AF4E02C5141000000B0D5285441295C8F92E02C5141713D0A67D6285441E17A142EDC2C514133333383D6285441F6285C7FDD2C514114AE47D1D8285441EC51B80EDD2C5141C3F528DCD9285441EC51B8CEDA2C51410AD7A3C0D9285441D7A3707DD92C51410AD7A320D62854410AD7A3C0DA2C514133333373D2285441C3F5288CE22C5141000000A0D1285441A4703D9AE22C514152B81EC5CE285441D7A3701DE12C514148E17A84CD285441E17A149EE62C514133333393CB285441B81E857BED2C5141EC51B8AECE285441AE47E13AEF2C51418FC2F538CC28544114AE4751EC2C514148E17AF4C928544152B81EC5EC2C5141000000A0C7285441295C8F42EE2C51419A9999E9C62854415C8FC2A5EE2C5141AE47E14AC5285441B81E85ABEB2C51418FC2F5A8BF285441AE47E18AEA2C5141D7A3706DBA285441CDCCCCCCEB2C51419A999989B82854417B14AE77E92C51415C8FC285B4285441F6285C8FE92C51415C8FC2B5B22854410AD7A3B0DF2C51415C8FC255B628544114AE47C1DF2C5141AE47E18AB12854410AD7A380E12C51417B14AE97AD2854415C8FC245E02C5141AE47E18AA828544148E17A54DE2C51413D0AD793A9285441713D0AD7DC2C5141EC51B88EAC285441333333C3D82C5141EC51B85EAE28544166666696D82C5141EC51B8BEAD285441D7A3701DDB2C514133333393AC285441295C8F02DD2C51415C8FC295AA28544148E17AC4DD2C5141713D0A47A828544148E17A94DD2C51410AD7A300A6285441CDCCCC9CE02C5141A4703DBAA3285441C3F528DCE22C51419A9999299F285441295C8FF2E32C51417B14AE279B285441F6285CDFE52C5141CDCCCC1C9A285441F6285C6FE72C5141295C8F5295285441F6285C8FEA2C514152B81EC59228544148E17AE4ED2C5141000000108B285441CDCCCC8CEB2C51415C8FC21589285441A4703D1AE92C5141AE47E18A8A285441F6285C9FE42C5141000000009628544100000020E22C5141295C8FA295285441CDCCCCECE52C51415C8FC25585285441295C8FE2EB2C5141CDCCCCBC822854411F85EB31EF2C5141333333937D285441F6285C4FF32C51418FC2F5C87D285441713D0AF7F52C5141E17A149E83285441713D0AD7F72C51415C8FC205852854418FC2F548F92C5141AE47E1AA882854418FC2F5A8F62C51418FC2F5D88B28544152B81E65F62C51413D0AD7F38E2854417B14AE07F22C5141A4703D7A8F28544133333373F02C5141EC51B85E93285441D7A370EDEB2C5141EC51B85E942854410AD7A330EA2C5141666666369628544148E17A64EB2C5141A4703D7A9A285441A4703DBAE92C5141713D0A67A128544185EB51C8EC2C5141C3F5284CA2285441B81E85FBEC2C5141C3F528DCA1285441A4703D2AEE2C51417B14AE67A02854417B14AE87F02C5141295C8F629E28544185EB5188F22C5141EC51B8EE9F2854410AD7A330F62C5141CDCCCC1C9F28544148E17A84F62C51411F85EB419E2854419A9999A9F62C51410AD7A3709D285441CDCCCCDCF62C5141B81E856B9B28544185EB51D8F62C51418FC2F5789A2854417B14AEB7F62C51411F85EBF199285441333333B3F62C51418FC2F50898285441CDCCCCDCF62C514148E17A94972854419A999919F72C5141A4703D6A97285441D7A370DDF82C51417B14AEC79728544100000060FA2C5141713D0A379528544166666636FB2C51418FC2F5B8932854410AD7A360FD2C51413D0AD7438F285441713D0AA7FF2C5141666666268A285441CDCCCCCC012D51417B14AEA785285441EC51B84E022D514185EB51C8842854419A999999022D514148E17A748428544100000000032D5141295C8F128428544185EB51C8032D5141295C8FA283285441333333A3042D5141EC51B82E83285441295C8F52082D51417B14AE0786285441000000C00A2D514152B81E958F2854418FC2F548092D5141CDCCCC0C962854411F85EB910C2D51418FC2F5B89C285441E17A146E122D5141CDCCCCDC9B285441EC51B8BE132D5141AE47E1BA98285441E17A147E132D5141F6285C6F94285441713D0AB7152D5141E17A14BE8B2854410AD7A3501A2D5141EC51B8BE822854410AD7A3F0172D5141666666C6802854410AD7A320122D514148E17A8489285441E17A144E0B2D514185EB515887285441CDCCCCCC0A2D5141295C8F0284285441B81E854B092D5141CDCCCCEC81285441D7A370AD092D5141A4703D6A812854413D0AD7130A2D5141B81E853B8028544185EB51880A2D514185EB51987E285441666666060B2D51410AD7A3F07B28544185EB51680B2D5141A4703D3A79285441EC51B8CE0B2D5141B81E857B7828544148E17A140E2D5141CDCCCCFC75285441E17A148E102D51413D0AD71373285441E17A144E142D5141E17A140E6F2854410AD7A370102D51419A9999F96C2854417B14AEE7102D5141713D0AE7692854418FC2F598152D514100000020652854411F85EBF1202D5141AE47E1DA67285441295C8F62212D5141CDCCCC4C572854417B14AEB71F2D514114AE47A15328544114AE47411E2D5141B81E85DB4F28544114AE4781172D514152B81EB54E285441EC51B8FE0C2D5141000000705328544185EB51980B2D51418FC2F54850285441E17A149E082D51418FC2F5B8502854413D0AD733052D514148E17AF458285441295C8F22022D51411F85EB315C2854418FC2F598FF2C514152B81E255B285441EC51B8CEFE2C5141AE47E1BA572854415C8FC2F5012D5141A4703D8A55285441000000C0022D514133333363522854415C8FC2A5002D5141EC51B80E4F285441333333E3032D514148E17AA44B2854418FC2F5E8002D514148E17AE449285441E17A144EFB2C5141D7A370ED482854413D0AD7A3F92C514114AE47F14A28544133333343F52C51410AD7A33049285441295C8F02FC2C5141AE47E1EA3F28544152B81E05FE2C5141713D0A873B285441A4703DBA052D5141A4703D9A392854410AD7A3D0052D51411F85EB8132285441D7A370CD022D514114AE47712D28544152B81EA5FB2C5141E17A146E2F2854410AD7A320F92C51411F85EB0128285441B81E85DBEC2C5141AE47E13A26285441F6285C9FEA2C51415C8FC2A521285441CDCCCC7CF02C51410AD7A3501A28544133333353F02C51411F85EB61172854419A999939E62C5141F6285CDF172854417B14AEF7E22C51418FC2F5981C2854415C8FC225DB2C5141CDCCCCBC1D2854411F85EB41DB2C51413D0AD7231B28544185EB51F8E12C5141D7A3704D1A28544114AE4701E42C5141B81E858B17285441E17A140EDD2C5141EC51B86E1128544114AE47C1DC2C5141CDCCCC2C102854418FC2F558E32C514152B81E850C285441295C8FA2EC2C5141295C8FC20C28544152B81E25F72C5141B81E85AB0A285441A4703DBAFA2C5141AE47E14A0C28544152B81ED5FD2C51415C8FC2250B285441E17A14AEFA2C5141D7A3708D04285441EC51B8CEF52C5141A4703DFA02285441E17A14BEF02C5141D7A3700DFD275441D7A3704DF42C514152B81E65F82754418FC2F5B8F22C51410AD7A380F5275441295C8FD2F02C514152B81E55F3275441713D0A67EF2C514152B81E65F2275441713D0A47EB2C51419A999969F02754418FC2F558E92C51417B14AE07EE27544148E17AE4E82C51419A9999D9EC275441000000C0E92C5141E17A143EEB275441713D0A97E92C51410AD7A330E8275441B81E85DBE32C5141E17A141EE1275441295C8F32E22C5141C3F5285CE1275441B81E85EBDC2C5141E17A14FEE2275441A4703D7AD32C5141AE47E1DADF2754410AD7A310D22C5141A4703D6ADD275441CDCCCC1CD62C514152B81E65DA2754419A9999F9D02C5141AE47E1DAD8275441D7A3703DCF2C514133333323D3275441CDCCCCCCD32C5141A4703DCAD1275441E17A14DEDC2C51419A9999E9D3275441713D0A97E02C5141C3F528FCD1275441E17A144EE82C5141C3F5282CCF275441B81E85FBEA2C51417B14AE47D5275441000000E0ED2C514152B81E05D72754418FC2F548F32C5141EC51B83ED9275441713D0A47FD2C514152B81E15E227544148E17A34022D514133333373E9275441D7A3700D012D5141E17A148EEC275441666666C6042D5141E17A145EF2275441666666C6072D51410AD7A3E0F5275441D7A3704D092D51417B14AE37F72754411F85EB91092D5141713D0AE7FE27544152B81EA50D2D5141AE47E1DA0428544148E17A24112D514185EB51E804285441EC51B87E172D514185EB5138FD2754411F85EB41192D5141EC51B8FEEB27544166666646192D5141D7A3703DE92754411F85EBB1162D514133333303E8275441EC51B82E132D5141E17A14EEE6275441CDCCCC1C102D5141A4703D3AE6275441AE47E10A0D2D5141E17A14DEE42754411F85EBD10A2D514148E17A94E3275441333333B3092D51417B14AE97E227544148E17AF4072D5141F6285C8FDF2754419A9999B9062D514133333333DE2754418FC2F568052D514148E17A74DD27544152B81ED5032D51415C8FC2B5DC275441E17A143E012D5141CDCCCC9CDB275441A4703DFAFF2C5141A4703D9ADA27544185EB5168FD2C514114AE4781D9275441AE47E18AFB2C5141000000F0D8275441295C8FD2F82C51413D0AD703D8275441EC51B82EF52C514185EB5198D427544185EB5188E62C51415C8FC225C92754415C8FC205E32C51410AD7A3B0C627544152B81EA5DF2C51415C8FC295C4275441F6285C7FDD2C514152B81EB5C32754418FC2F558DB2C514114AE4791C227544185EB5168D82C51419A999949C02754415C8FC205D42C514152B81E35BC2754410AD7A300CF2C5141000000C0B62754419A9999B9C82C514185EB5118B02754411F85EBA1C62C5141A4703DEAAE275441CDCCCC7CC42C514133333353AE27544152B81E65C22C5141EC51B80EAE275441AE47E1FABF2C514133333353AE275441C3F5284CBD2C5141333333B3AE2754418FC2F5B8BA2C514185EB5158AF2754418FC2F528B62C5141AE47E16AB0275441F6285C5FB32C514166666686B02754418FC2F558AF2C5141CDCCCCFCAF2754415C8FC265AC2C51411F85EBE1AF275441333333C3A62C5141666666C6AF275441666666E6A22C5141333333F3AD275441EC51B80EA02C5141295C8F72AC2754411F85EB519D2C51418FC2F5E8AB275441C3F5280C9A2C5141295C8FB2AB27544133333393942C514100000020AC2754418FC2F528922C5141295C8FB2AB275441F6285CBF8F2C5141B81E85DBAB275441B81E852B8D2C51410AD7A380AC275441AE47E12A8A2C514133333393AD27544152B81E05882C5141333333B3AE275441000000A0862C514166666686B027544148E17A84862C5141713D0A67B2275441295C8F52872C5141A4703D3AB42754415C8FC285892C51418FC2F588B6275441E17A14DE8D2C51410AD7A3C0B92754419A999909942C51410AD7A310BF275441B81E85AB9C2C5141333333D3C52754417B14AE179F2C514100000040C7275441EC51B85EA32C5141F6285CBFC82754418FC2F548A92C51411F85EBE1CB2754419A9999E9AF2C5141D7A3704DD0275441F6285CAFB62C51417B14AEB7D52754419A999999BC2C5141295C8FA2DB275441A4703DAABF2C514133333323DF2754413D0AD7D3C02C5141E17A14EEDF275441295C8F82C02C51415C8FC275E0275441AE47E1BAC22C5141E17A146EE5275441C3F5280CC32C51418FC2F598E7275441EC51B8FEC22C5141D7A3708DE927544114AE4741C22C5141C3F5284CEB27544152B81E25C12C5141713D0A17EC275441A4703DAABF2C514133333383EC275441000000F0B52C51419A999959EB27544152B81E15B32C514100000090EB275441D7A3707DB02C51419A999909EC2754417B14AED7AC2C5141C3F528ACEC27544148E17A84AA2C5141000000F0EC2754415C8FC265A72C514148E17AD4EC275441713D0A97A32C5141AE47E15AEC2754418FC2F5089D2C514114AE4781EA2754413D0AD7739C2C51419A9999A9EA275441A4703DAA9C2C5141C3F5284CEB2754415C8FC205A62C5141B81E858BF3275441B81E856BAC2C5141AE47E15AF8275441B81E85BBB22C51411F85EBF1FD2754415C8FC2A5B42C5141333333030028544152B81E55BA2C5141713D0A470828544114AE47F1BB2C51419A9999890A2854415C8FC2B5BD2C5141F6285CFF0D28544166666686BE2C51415C8FC2F50F2854419A9999C9BE2C5141C3F5287C1228544166666606BF2C51413D0AD79314285441D7A3707DBF2C5141666666F616285441B81E852BC02C514185EB51C81828544148E17A64C12C514148E17A141B285441000000E0C32C5141666666161E285441000000B0C52C5141333333032128544100000010CA2C5141713D0A471C285441C3F5282CD02C51418FC2F5281C285441A4703D4AD32C51415C8FC2C52028544114AE4771D72C5141F6285C8F1F285441333333F3D72C51411F85EB4121285441E17A144ED42C51419A999959272854411F85EB51D02C51418FC2F5182728544114AE47F1CB2C5141666666F623285441EC51B8CEC82C5141D7A370ED242854415C8FC275C92C51419A9999C92528544114AE4771CC2C514114AE47312A2854417B14AE07CE2C5141666666662C2854410AD7A310CF2C5141C3F5289C2E28544148E17A34D12C5141713D0A573A285441000000B0D32C5141C3F528DC3F2854413D0AD7D3D52C51413D0AD7D3422854415C8FC2D5D62C51411F85EBC143285441AE47E10ADC2C51413D0AD7733F28544148E17A04DF2C5141D7A370BD42285441B81E850BDA2C5141000000D046285441D7A3702DDD2C5141713D0A47492854410AD7A3E0DF2C5141713D0A874C285441333333B3E02C51419A9999494E2854411F85EB11E22C5141AE47E12A502854413D0AD783E32C514148E17AE450285441C3F5285CE52C5141713D0AB7502854418FC2F578E72C5141D7A370AD50285441A4703D0AE92C5141333333435128544114AE4751F32C5141B81E857B58285441295C8F22F42C51410AD7A3405928544114AE4701F52C514114AE47A15A285441295C8FC2F52C5141EC51B8EE5B285441666666F6F52C5141AE47E12A5F285441A4703D6AF22C514152B81E6563285441A4703D4AF02C5141713D0AD761285441F6285C1FF42C5141EC51B8EE5C285441C3F5281CF52C5141C3F528FC5D285441A4703DFAF42C5141333333035C285441AE47E1BAF32C5141CDCCCCCC592854418FC2F518EB2C5141E17A14EE53285441E17A14CEE82C5141AE47E15A522854418FC2F548E72C51410AD7A3F051285441713D0A37E52C51410AD7A3F051285441D7A3707DE32C51410AD7A3F05128544152B81E25E12C51418FC2F5F85028544148E17A24DF2C514148E17A744D28544148E17AD4DB2C5141713D0A9749285441A4703D6AD92C5141D7A370DD472854419A999969D52C5141CDCCCCDC43285441AE47E1CAD22C514148E17A3440285441CDCCCC3CD02C5141A4703D7A3A28544133333383CE2C514148E17AF4302854413D0AD733CD2C5141333333932F2854410AD7A300CB2C514133333313312854410AD7A370C82C514185EB51782E28544185EB5168C92C5141B81E859B2C285441295C8FD2CB2C5141000000D02A285441CDCCCC9CC82C5141EC51B80E2628544152B81E95C62C5141A4703DEA232854413D0AD7E3C42C5141EC51B83E21285441C3F5286CC32C5141A4703DBA1E285441E17A14DEC02C5141EC51B87E1B28544100000070BF2C5141CDCCCCDC18285441000000B0BE2C51411F85EBC1162854415C8FC245BE2C51419A99998914285441C3F5280CBE2C514152B81E3512285441F6285CBFBD2C51410AD7A31010285441B81E85EBBC2C5141F6285CFF0D285441713D0A27BB2C51413D0AD7C30A285441295C8F32B42C5141666666760028544114AE4751B22C514185EB5178FE2754411F85EB41AB2C51418FC2F568F827544185EB51F8A52C51413D0AD763F42754410AD7A3909D2C5141AE47E10AED2754410AD7A3D09A2C51415C8FC215EB275441333333139A2C514166666606E9275441333333F3952C5141295C8F12E82754410AD7A380932C5141713D0A87E627544152B81E35932C5141B81E85ABE327544166666646952C5141D7A3707DE227544148E17A04992C514100000080D4275441A4703D5A9D2C514114AE47A1D227544152B81E859F2C5141EC51B8AED52754419A999969992C5141D7A3706DD927544148E17A149B2C5141B81E85ABE027544185EB5148992C5141F6285CFFE2275441CDCCCCAC9E2C51419A9999F9E92754419A999989A32C514100000090EB2754415C8FC265A72C51411F85EB31EC2754411F85EB91AA2C514100000040EC275441295C8FF2AC2C51419A999909EC27544152B81E15B32C514152B81EC5EA2754415C8FC225B62C51419A9999A9EA275441F6285CCFBC2C514114AE4731EB275441A4703DFABE2C51419A999959EB2754417B14AE67C02C514114AE4731EB27544166666676C12C51415C8FC265EA275441D7A370FDC12C514166666606E927544185EB5118C22C51418FC2F598E727544152B81ED5C12C514100000060E527544114AE4731C02C51417B14AEC7E127544114AE47D1BE2C51411F85EB81DF2754410AD7A3D0BB2C5141D7A370FDDB275441AE47E10AB62C5141C3F5285CD62754418FC2F5E8B12C5141C3F528CCD227544100000080A82C5141D7A3703DCC27544133333303A32C514133333363C9275441EC51B8CE9E2C5141666666F6C7275441E17A143E9C2C5141E17A14AEC6275441295C8F72932C5141A4703D9ABF27544152B81E558D2C5141A4703D4ABA275441E17A14CE872C51413D0AD743B6275441B81E855B862C5141333333C3B4275441F6285C7F852C51410AD7A3F0B2275441AE47E13A852C51411F85EB61B12754418FC2F5A8852C51413D0AD7D3AF275441295C8F92862C5141EC51B86EAE2754410AD7A320882C514133333393AD275441295C8F428C2C5141000000C0AB2754415C8FC2958F2C514100000000AB275441C3F5285C942C514100000000AB27544185EB51B8962C5141B81E851BAB275441A4703DDA9A2C514148E17AE4AA275441000000E09E2C514166666636AB2754413D0AD773A12C5141295C8F12AC2754415C8FC255A62C51417B14AE97AE275441F6285CBFA82C514114AE4721AF2754413D0AD7B3AE2C514114AE4721AF2754415C8FC235B32C5141666666C6AF275441D7A3704DB52C5141666666C6AF275441CDCCCC7CB92C5141CDCCCCDCAE275441AE47E1EAB92C5141CDCCCC7CAE27544114AE47C1B92C5141A4703DCAAD27544148E17A84AA2C5141A4703D7AA827544185EB5188A82C514152B81EB5A627544152B81EE5AA2C5141CDCCCCBCA2275441E17A141EB12C5141713D0A87A5275441295C8FA2B02C5141A4703D1AA82754410AD7A310B12C5141AE47E19AA9275441713D0A47BC2C514152B81EE5AD275441C3F5280CBE2C514152B81EE5AD27544148E17A44C12C51410AD7A340AD275441EC51B80EC42C5141C3F5285CAD2754411F85EB41C62C514152B81EE5AD2754410AD7A390C82C5141CDCCCCDCAE27544133333383CB2C5141333333A3B1275441C3F5289CD12C514114AE4791B8275441EC51B88ED52C5141C3F528BCBC2754418FC2F548D92C514114AE4711C0275441C3F5289CDB2C5141295C8FD2C12754410AD7A3A0DD2C5141AE47E1EAC2275441713D0A37E02C51415C8FC225C42754417B14AE97E32C5141EC51B81EC627544152B81E25E72C51413D0AD793C82754413D0AD793F52C5141AE47E1FAD3275441295C8F42F92C514152B81E45D7275441EC51B89EFA2C5141D7A370EDD7275441000000F0FB2C5141C3F5283CD8275441D7A3706DFD2C51418FC2F568D8275441333333B3FE2C5141000000F0D827544148E17A74002D5141713D0AE7D9275441EC51B8AE012D5141E17A14DEDA275441E17A144E032D5141333333B3DB2754415C8FC225052D51410AD7A350DC27544185EB5108072D5141F6285C7FDD27544133333343082D5141EC51B8AEDE2754418FC2F5680A2D514148E17A04E22754411F85EB810B2D514166666606E32754415C8FC2150D2D5141D7A370FDE3275441CDCCCC1C102D514100000070E5275441713D0A67132D5141A4703D3AE6275441EC51B8AE192D514185EB51A8E7275441E17A14BE1A2D514114AE4711E5275441AE47E1DA1A2D5141B81E856BE3275441E17A14BE1A2D514152B81EB5E1275441AE47E11A1A2D51418FC2F5C8DF2754417B14AEE7172D5141B81E858BDB275441295C8FD2152D514100000050D8275441C3F5285C112D514152B81E15C527544185EB5138062D51415C8FC215B827544100000080DB2C5141295C8F62A0275441BB600F5DD22C514128F2A0809A27544102DBBF6CCF2C514176C1816697275441A06BC466CE2C514173FD92F397275441E17A14AEC62C5141AE47E1FA92275441333333C3B62C5141A4703DAA8827544152B81EB5B52C514148E17A348727544121C1C78CEB2C5141D95EB792F8265441495374DB1A2D51414C1B40A5B62654417EFCF8C2772D51418E6B6510F9255441F6A548BE8F2D5141271DDFB8E1255441F6285C1F902D5141B81E85EBE1255441713D0AD7912D5141000000A0E3255441D7A3707D932D51413D0AD763E5255441713D0A37942D5141295C8FF2E525544133333333952D5141A4703D1AE6255441F6285C5F972D5141AE47E1EAE525544148E17AF4992D514166666666E5255441A4703D8A9A2D5141A4703D8AE525544114AE47D19B2D5141B81E855BE6255441D7A3700D9D2D5141666666A6E62554418FC2F5A89D2D5141B81E85CBE625544114AE47319E2D514152B81EA5E7255441333333A39F2D51410AD7A320EA255441CDCCCCACA02D514100000060EC255441EC51B82EA12D5141713D0A47ED255441AE47E1EAA12D51419A9999D9ED255441B81E850BA32D514152B81EC5EE2554417B14AEA7A32D5141CDCCCC2CF025544185EB51A8A42D51411F85EB11F22554410AD7A3F0A52D5141CDCCCCACF3255441713D0A97A72D5141F6285CCFF52554413D0AD753A92D514133333313F8255441713D0A67AA2D51419A9999A9F92554415C8FC265AB2D514148E17AB4FA255441CDCCCC7CAC2D51417B14AEB7FC255441E17A142EAE2D5141B81E85DBFF2554410AD7A3E0AE2D5141F6285C2F0126544185EB5178AF2D514185EB51B802265441D7A370BDB02D5141C3F528BC032654413D0AD743B12D514152B81E7504265441A4703DCAB12D51416666665605265441E17A147EB22D5141713D0AA7072654413D0AD7D3B22D5141D7A370ED0826544185EB51A8B32D514148E17AA40B2654415C8FC2D5B32D51417B14AEA70C265441295C8FF2B32D514114AE47910D26544114AE4791B42D514152B81EA50E26544100000040B52D5141713D0AF70E265441EC51B8BEB72D514152B81E151026544152B81EA5BA2D5141CDCCCC9C112654410AD7A3C0BD2D5141F6285C9F132654411F85EB41BE2D51410AD7A3A01426544100000040BF2D51411F85EBD1152654419A999999C12D514185EB51681726544152B81EB5C32D51411F85EB2119265441AE47E16AC72D51413D0AD7331E265441F6285CFFC72D51419A9999991E2654418FC2F528C92D514114AE47B11E2654417B14AEA7CA2D51415C8FC2451F265441CDCCCC8CCC2D51419A9999A9202654410AD7A390CE2D51413333336324265441295C8F82CF2D514152B81EC5262654410AD7A330CF2D51418FC2F57829265441295C8F32D02D5141295C8F2229265441713D0A77D12D514152B81E152A26544152B81ED5D52D5141AE47E12A2D265441C3F528BCD82D5141E17A14AE3026544185EB5158DB2D51411F85EB1136265441333333E3DC2D5141CDCCCCEC36265441C3F5280CE02D5141AE47E1FA39265441333333E3E72D5141AE47E11A3D265441713D0A57EC2D5141666666E63E265441D7A3706DEE2D5141CDCCCC7C3E2654410AD7A3B0EE2D514148E17AA43D2654413D0AD703F12D5141000000503D265441EC51B8BEF32D514185EB51B83B265441E17A146EFB2D5141333333D3392654417B14AE37002E5141AE47E19A3B265441A4703DBA082E51419A9999693D26544114AE47A10E2E51413D0AD7F34326544148E17AB4102E51411F85EB114A2654419A999939102E5141B81E856B4D265441333333330E2E514152B81EA54E265441B81E852B102E5141295C8FC25026544100000060122E51419A9999695126544114AE4721142E51413D0AD743552654419756B004142E5141EDFCC912582654412CD1DD08142E514140EFB82358265441C3F5286C142E51413D0AD7135A265441333333D3142E514148E17A245B2654411F85EB11182E514114AE474160265441EC51B86E182E5141EC51B8AE61265441C3F528CC182E51410AD7A3E06426544100000090182E5141EC51B8BE66265441A4703D4A192E51419A9999D966265441E17A14AE172E514100000030692654410AD7A3A0172E51418FC2F5D86A265441000000D0172E5141A4703D8A6C26544114AE47E1172E5141295C8FD26D265441A4703DEA172E5141333333D36E265441C3F5286C182E514166666636702654411F85EB71192E514114AE475172265441F6285CCF192E514185EB51787626544185EB51381C2E5141295C8F927E265441B81E853B1C2E51413D0AD7B37F2654413D0AD7831B2E514185EB51C8812654411F85EBA11C2E51419A99991986265441AE47E1AA1C2E5141C3F5288C87265441F6285C2F1D2E514185EB51C889265441EC51B8EE1F2E5141B81E857B8626544114AE4771242E5141B81E855B83265441333333F3282E5141AE47E14A81265441000000C02D2E5141295C8F2280265441CDCCCC1C332E514152B81E657F265441EC51B8EE332E5141713D0A177F265441C3F528AC352E5141666666767F26544152B81E153C2E5141F6285C5F80265441C3F5281C402E5141E17A149E80265441CDCCCC7C422E51417B14AE278026544133333313452E5141CDCCCCFC7E26544185EB5178512E5141B81E85CB7626544114AE47D15C2E514152B81EE56E265441295C8FF25F2E5141666666466C265441295C8FD2622E5141EC51B8BE6826544114AE4741672E51411F85EBD161265441713D0AD76A2E51413D0AD7E35A265441666666A66C2E5141B81E855B57265441EC51B8BE6C2E5141E17A142E572654413D0AD733702E51419A9999A9502654419A999959732E5141000000304B2654419A999949772E514185EB51684426544152B81E057B2E514152B81EC53F265441B5055016812E51418CC95DAF382654415381281C822E5141EFEF8BE1392654410AD7A3C0802E5141000000403C26544148E17A247C2E5141AE47E13A41265441C3F528EC782E5141F6285C7F45265441E17A14AE742E5141D7A370FD4B265441D7A370ED712E51419A99998951265441E17A145E6C2E514152B81E855B2654417B14AED7682E5141C3F528AC62265441F6285C9F662E5141EC51B86E66265441D7A3703D642E51413D0AD7D36926544185EB51B8602E5141A4703D2A6E265441B81E85DB5D2E51419A999979702654415C8FC295522E51411F85EB717826544148E17A14462E5141EC51B8EE8026544100000060432E5141AE47E18A82265441C3F5284C402E51419A9999F9822654417B14AE87352E51413D0AD753812654418FC2F5F8322E514185EB515881265441AE47E1FA2D2E514114AE4711822654415C8FC285292E51419A9999198326544152B81E45252E5141F6285C0F852654411F85EB71212E5141AE47E1FA8726544148E17A441D2E5141F6285CDF8B265441295C8F621D2E5141C3F528CC8D265441713D0A771C2E5141F6285C6F91265441000000101B2E51410AD7A3D09226544148E17A441A2E51419A9999E99526544114AE47D1182E5141713D0A279C265441666666261B2E5141E17A14FE9B265441000000001D2E51413D0AD703992654410AD7A360202E514114AE47219826544185EB51781B2E51411F85EB61A126544114AE47811A2E51411F85EBA1AA2654418FC2F5981C2E51411F85EB51AC26544114AE4711222E5141713D0AF7AC2654418FC2F5D8252E5141F6285CBFA9265441295C8F422F2E51419A999949A626544133333333342E51417B14AE47A62654411F85EB41362E5141CDCCCC9C9F265441CDCCCCBC3D2E5141713D0A979B265441C3F5280C432E5141B81E851B9B26544133333373432E51417B14AE479D265441000000C03F2E5141EC51B85E9F2654410AD7A3003B2E5141EC51B83E9E2654418FC2F558382E51413D0AD703A0265441000000C0382E5141AE47E18AA12654411F85EB813F2E514148E17A44A22654418FC2F578402E514152B81E35A6265441EC51B87E442E51419A999949A62654417B14AE37452E5141CDCCCC9C9F26544152B81EE54B2E514152B81E159E26544185EB51984F2E5141CDCCCC2CA02654415C8FC2255C2E51413D0AD7739E265441F6285C9F5D2E514152B81E159B265441666666F65F2E5141E17A144E99265441EC51B85E6B2E51411F85EB8192265441713D0A07762E51417B14AE5790265441EC51B83E7C2E5141666666668C265441000000107C2E51413D0AD73390265441295C8FB2872E514148E17A54882654413D0AD703862E51417B14AE67842654413D0AD7A3762E514114AE47118B265441F6285C4F712E51419A9999C98C2654418FC2F5886E2E5141713D0AE787265441000000506E2E5141D7A370BD822654410AD7A340742E5141C3F5284C81265441AE47E16A762E51410AD7A3307C265441A4703D2A7B2E51413D0AD7E37526544152B81E857C2E5141EC51B85E6F265441E17A140E842E5141AE47E1DA6D265441D7A3706D832E5141666666466C26544152B81EC5812E5141D7A3702D692654410AD7A3707F2E5141F6285C3F632654410AD7A3507D2E51415C8FC2C559265441C3F5283C7D2E514148E17AC457265441000000607D2E51418FC2F5B8502654417B14AED77D2E5141A4703DDA4F2654415C8FC2757F2E5141E17A142E4D265441F6285C4F802E5141666666164C265441F6285C6F852E51417B14AE87452654419A999969852E51415C8FC2653C2654417B14AE27822E5141D7A370CD39265441C33C6028812E51414BD2459A382654413D0AD7E3812E5141F6285CBF3726544133333373822E5141295C8F123726544114AE4711832E514148E17A743626544185EB5128822E514148E17A9435265441F6285C6F802E5141333333133326544114AE47C17F2E51418FC2F53831265441D7A370AD7F2E514152B81E652F265441CDCCCCEC7F2E5141333333C32D265441AE47E1CA7E2E5141EC51B8BE292654419A9999F97F2E51410AD7A380252654413EB9B3D57D2E5141D91E98621F265441A4703D1A7A2E514114AE47A12126544185EB5178782E5141CDCCCC6C21265441EC51B81E762E51411F85EBB11D26544166666646742E5141EC51B8CE1C265441D7A3702D732E5141CDCCCC8C1C265441E17A14DE6F2E51415C8FC2A51C265441F6285C0F702E5141713D0A071C265441C3F5280C732E5141F6285C4F1B265441B81E85FB752E5141EC51B85E1C265441295C8FA2782E514148E17A341C265441AE47E18A7B2E5141AE47E1DA192654411F85EBA17B2E51419A99995916265441E17A148E7E2E5141C3F5287C162654417B14AEC77E2E5141000000001526544166666626822E51410AD7A350152654418FC2F548822E514148E17A1416265441CDCCCC7C802E5141295C8FB21B26544114AE47E17D2E5141CDCCCC5C1D265441792CCBD57D2E51410E9E78621F265441333333C3802E5141A4703DEA2326544152B81E95812E5141295C8F4225265441333333B3812E514152B81EE525265441333333E37F2E514152B81E052A26544152B81ED57F2E514185EB51082B265441D7A3707D802E5141E17A148E2C26544166666696802E5141F6285C6F2D265441C3F5284C802E51418FC2F5482F265441A4703D4A802E5141CDCCCC9C3026544185EB5188802E51419A9999F9312654413D0AD7F3802E5141F6285CDF3226544152B81EC5812E5141CDCCCC5C342654418FC2F5C8822E5141C3F5287C35265441C3F5285C832E51419A9999E9352654411F85EBC1832E5141B81E85EB35265441295C8F42842E514152B81E9535265441666666D6842E51418FC2F5483526544133333373842E5141333333733426544148E17A74852E5141D7A370FD332654413D0AD7D3852E514114AE47D134265441CDCCCCAC862E5141A4703D9A3426544114AE4741872E514114AE47D1352654415C8FC2558B2E514114AE47A13A2654418FC2F5488B2E51411F85EBC13E26544152B81EA5892E5141295C8F7240265441A4703DAA892E5141E17A14BE41265441AE47E12A882E51418FC2F58844265441E17A146E882E51419A9999E945265441F6285C3F882E51417B14AEE7462654418FC2F5A8872E514114AE47C147265441B81E859B862E5141AE47E19A48265441A4703D6A822E5141EC51B8BE4D2654419A999939802E514100000090562654413D0AD7B3812E5141F6285CAF572654413D0AD7A3832E5141E17A14DE5626544114AE4781862E5141E17A147E5A265441C3F528CC882E514114AE47F15726544148E17AB4892E5141AE47E14A502654411F85EB118D2E5141000000604F2654410AD7A3008D2E514152B81E4553265441C3F5283C8B2E5141666666B659265441F6285C1F8E2E5141713D0AC75A265441D7A3707D8F2E51410AD7A36062265441CDCCCCDC962E5141000000705D265441A4703DBA9B2E5141000000805E2654418FC2F5689C2E514133333323632654411B903E269B2E5141D99A9BEC67265441484DDD9A9C2E51418E8F16BF6D2654414E132719A02E51413FA16CD2712654414E132719A02E5141F495E7A477265441722757509C2E5141A2C418F9792654413D0AD7D3972E5141EC51B86E7C2654419A999999972E514185EB51087F265441A4703DCA912E5141713D0AB78026544133333303932E514152B81E6582265441713D0AE7992E5141EC51B80E832654418FC2F5289E2E51415C8FC24584265441CDCCCCCCA82E514152B81E857C2654418FC2F578AF2E51415C8FC25579265441E17A14AEDE2E5141F6285C8F662654415C8FC2D5DE2E5141AE47E1EA6426544114AE4721E22E5141EC51B83E5F2654411F85EB21EC2E5141C3F528AC5526544148E17AB4ED2E5141000000D056265441CDCCCCACF12E514185EB519854265441F6285CBFF22E5141F6285CFF4E26544152B81EB5EF2E5141A4703DBA4B265441AE47E14AF22E5141C3F5288C47265441C3F5288CF62E5141713D0AD748265441CDCCCCBCF82E5141C3F528BC442654413D0AD753F42E5141F6285C3F4226544152B81E25F72E5141B81E854B3D265441333333B3FB2E5141666666F63B26544185EB5108FD2E514114AE47E138265441E17A143EFD2E51413D0AD7E330265441295C8FC2032F5141295C8F2224265441E17A141E002F514185EB51082226544163BE120DFA2E5141AE2D5D3C1C26544160DBED4DF82E51412130376014265441D9A311F0F32E51411B6AEDE110265441CD177EF3EC2E5141695897CE0C2654411640DE61E52E5141E220BB70082654410AB44A65DE2E5141310F655D0426544166666666DB2E5141EC51B8FEFE2554413D0AD733D62E51419A999999FC2554411F85EB01D42E5141713D0AC7FF2554413D0AD733D22E5141D7A3707D00265441F6285C3FD12E514185EB510800265441E17A14FECE2E5141EC51B80EFF25544185EB5168CD2E514152B81EC5FE2554415C8FC215C72E51417B14AE97FC2554413C7DDC33C52E51415A2B5FB1FA255441818BA46CC52E51411DEF6038FA255441D7A3706DC72E51417B14AEE7FB255441C3F5288CC92E5141295C8FE2FB255441E17A144ECB2E514185EB5158FC255441C3F5287CCD2E514152B81E15FE255441C3F528DCCE2E5141C3F528CCFD255441295C8FE2D02E5141E17A14EEFD255441F6285CEFD12E51417B14AE97FF25544166666676D32E5141E17A147EFE255441713D0AD7D42E5141F6285C7FFC2554418FC2F5A8D52E51413D0AD763FB255441000000A0D92E5141333333F3FB255441E17A14DEDD2E5141295C8FD2FD255441D7A3701DDF2E514114AE479100265441C3F5281CE22E51410AD7A3F00126544185EB5128E92E5141000000600226544133333343F42E5141000000C002265441C3F5282C032F514100000050022654417B14AE970C2F514100000040032654418FC2F5E8092F5141AE47E13A0D265441713D0AD70D2F5141AE47E12A0E26544152B81E95122F514148E17AF403265441AE47E15A172F514100000070F9255441295C8F02182F51417B14AE57F22554417B14AEE71C2F51413D0AD7E3E4255441C3F5285C222F514152B81E55E32554410AD7A380222F51411F85EB91DE255441A4703DDA262F514100000000DD255441713D0A37282F5141F6285C1FDC25544148E17A94302F5141E17A14FED22554415C8FC265372F514114AE47D1CD2554415C8FC2253D2F514114AE4701C82554417B14AE373B2F5141B81E854BBF255441E17A142E2C2F5141E17A140EBE255441EC51B83E2A2F5141333333B3BC25544185EB51D8282F5141A4703DAAC02554417B14AEB7262F5141713D0A47C3255441F6285C6F192F51415C8FC285C02554415C8FC2D5082F5141713D0A77C0255441EC51B8BE032F5141D7A3706DBE255441F6285C8F002F514148E17AC4C12554417B14AE87FC2E5141713D0A77C2255441EC51B85EF82E514133333313C3255441F6285CCFF72E5141666666C6BF255441EC51B85EF82E514100000010BE255441F6285C2FF72E514148E17A44BA25544185EB5168F82E51410AD7A350B72554413D0AD703F62E514100000020B825544114AE4731EC2E51419A9999B9BA255441295C8FD2E72E5141CDCCCC3CBC255441AE47E13AE42E5141333333F3BD255441295C8FE2E02E5141F6285C0FC02554415C8FC2B5DC2E5141295C8FA2C3255441C3F5289CD22E5141AE47E1FACB2554419A999929CE2E5141A4703D6ACF255441295C8F82CA2E5141A4703DEAD12554413D0AD7B3C62E514152B81E25D425544152B81E05C22E51415C8FC265D6255441713D0A87BD2E51415C8FC225D8255441C3F528ACBC2E514100000060D825544148E17A14BD2E51419A9999C9D9255441F6285C7FBA2E5141666666A6DA2554413D0AD783B92E5141A4703DFADA2554418FC2F518BC2E51418FC2F558E32554413D0AD733BB2E514133333383E72554417B14AE97C02E5141333333B3E8255441F6285C2FCA2E51411F85EB21E62554413D0AD763CD2E514114AE4711EA25544133333373CE2E51410AD7A3D0EA25544166666656D22E5141D7A3704DE7255441D7A3707DD62E5141B81E859BEB25544166666656D72E514148E17A74EC25544148E17A84D72E51410AD7A3B0EC255441AE47E1AAD22E5141B81E853BF125544185EB5158D22E5141AE47E1DAF0255441C3F528ACCD2E51415C8FC2B5EB255441D7A370EDCB2E51413D0AD743ED2554411F85EBE1C42E5141000000E0F22554417B14AE67C32E5141D7A3709DF3255441CDCCCC4CC32E5141AE47E13AF6255441000000E0C32E5141333333F3F72554413D0AD713C52E5141EC51B80EF92554411F85EB61C52E5141F6285C2FFA255441C3F5282CC52E51419A9999A9FA255441333333F3C32E514152B81E45F9255441295C8F12C32E5141A4703D5AF8255441C3F5286CBC2E5141E17A141EF625544185EB5188BA2E5141D7A3706DF5255441D7A3709DB92E5141713D0AA7F3255441A4703D5AB82E5141CDCCCC3CF2255441D7A370ADAF2E5141295C8FF2F2255441A4703D6AAF2E5141AE47E10AF3255441C3F528FCA92E514148E17A04F52554418FC2F558AA2E5141713D0AF7F625544152B81E25AD2E5141AE47E1BAF6255441295C8F52AD2E51410AD7A390F8255441000000B0AA2E51419A9999C9F8255441CDCCCCDCAA2E51419A9999B9F9255441AE47E12AAE2E51411F85EB51F9255441333333C3AE2E514166666646F9255441C3F528CCAF2E514114AE4711FA2554417B14AE57B32E5141AE47E1FAF925544185EB5128B42E5141B81E850BFD2554419A999939B22E51413D0AD763FD2554419A999999B22E5141333333C3FF2554419A9999B9B02E514133333333002654419A9999C9B02E5141295C8F5202265441A4703D7AAF2E5141295C8F62022654415C8FC225AF2E5141D7A3707D00265441713D0AD7AB2E51415C8FC20501265441E17A149EAA2E5141D7A3704D01265441B81E85CBA92E5141666666D6FE2554418FC2F578A62E514100000070FF255441E17A149EA82E5141000000B00426544185EB5178A12E5141713D0A970726544148E17A049E2E5141E17A14FE08265441713D0A579E2E514185EB51180E265441C3F5286C9F2E514185EB5158132654418FC2F5A89F2E5141D7A370ED1526544185EB51A89F2E5141CDCCCCAC18265441B81E85AB9F2E5141000000B01C265441A4703D7A9F2E51410AD7A3801F26544152B81EC5A02E514185EB512822265441295C8F12A12E51410AD7A3D0212654413D0AD7E3A12E5141C3F5281C1E26544152B81E05A42E5141333333A31C26544148E17A94AC2E5141295C8FB217265441CDCCCC5CAF2E5141A4703D9A1D26544100000040A72E5141E17A144E232654415C8FC2F5A32E51411F85EBC12426544100000000A22E5141AE47E1AA23265441B81E858BA12E51410AD7A3C0232654413D0AD7239F2E514114AE471125265441333333439E2E5141713D0AC7252654419A9999F99C2E514114AE47412A26544148E17AA49B2E514152B81E652D26544148E17A84992E5141CDCCCC2C30265441C3F5284C962E5141333333A3322654417B14AEF7922E5141AE47E14A342654415C8FC2058F2E51417B14AE7735265441EC51B82E8F2E51413D0AD703372654419A9999799B2E5141000000403F2654413D0AD7D39D2E5141713D0A37402654415C8FC265A02E5141D7A370AD402654415C8FC2A5A32E5141CDCCCC4C40265441EC51B89EA72E51413D0AD7F33E2654417B14AED7A52E5141C3F528BC392654418FC2F528A92E5141F6285C9F38265441713D0A77AA2E5141B81E856B3C26544148E17AB4AA2E5141666666563C2654415C8FC285B62E5141AE47E13A38265441AE47E1EABE2E51419A99993935265441CDCCCC2CBC2E5141A4703D5A2C265441EC51B85EBC2E5141B81E859B28265441F6285C6FC32E5141AE47E19A26265441C3F528ACC82E5141A4703DCA2426544185EB5128CD2E5141B81E856B2326544148E17AD4CF2E5141C3F5280C2C26544152B81E05D22E5141295C8F22332654419A999959CA2E51413D0AD7B3352654419A999919C02E5141E17A14FE38265441713D0AB7BF2E5141D7A370BD37265441295C8F62B42E514148E17AB43B2654418FC2F5D8A32E51411F85EB41412654418FC2F558A02E5141B81E85AB41265441AE47E18A9D2E5141C3F5283C412654411F85EBF19A2E514114AE4731402654415C8FC2858E2E514185EB51F8372654411F85EBA18A2E5141A4703D1A362654417B14AE37892E5141D7A370AD35265441EC51B81E882E514185EB51B8352654419D0D635F872E51410AEEE2CD352654419B8785CF862E51417FB00195342654419A999989872E51418FC2F578342654417B14AE67882E514152B81E65342654411F85EB41892E5141333333633426544148E17AD48E2E514152B81ED5332654419A999959922E5141000000D03226544148E17A94952E5141A4703D2A3126544185EB5158982E51417B14AE072F265441AE47E10A9A2E5141666666B62C265441D7A3708D9B2E5141713D0A97292654418FC2F5D8912E51419A9999E928265441F6285C8F8F2E5141EC51B80E232654419A999909962E51413D0AD7931E26544152B81EF5962E51418FC2F5181D2654419A9999D9992E514114AE477118265441295C8FF29B2E5141B81E856B12265441F6285C5F9C2E5141CDCCCC7C10265441C3F5286C9A2E51418FC2F57810265441000000C0982E5141E17A14CE11265441EC51B80E992E5141A4703DBA12265441CDCCCCAC952E51410AD7A300152654415C8FC245952E51413D0AD7531426544152B81ED5932E5141B81E85EB112654418FC2F5D8912E5141A4703D5A0E265441C3F5281C932E5141E17A146E0D2654411F85EBD1942E5141295C8FE20C26544166666636972E514185EB51280D265441AE47E15A9A2E514114AE47610F265441EC51B8CE9C2E5141333333830E265441333333239C2E514152B81E250926544185E92F279D2E51412AAF9BB302265441AE47E1CA9B2E5141333333E302265441713D0AF79B2E5141D7A3708D032654417B14AE379B2E514152B81EC503265441AE47E1FA9A2E5141F6285CFF02265441D9E92F279D2E514117AD9BB30226544152B81E759E2E5141D7A370ADFE2554410AD7A3E09C2E514152B81EC5FE255441AE47E10A9A2E51417B14AE77FF255441666666D6982E51415C8FC275FA25544114AE47F19A2E5141A4703D0AFA2554411F85EBE19A2E51415C8FC2E5F8255441B81E858B9B2E5141A4703D6AF8255441295C8FA2972E5141D7A3707DF62554418B37EEEF922E514111069872F4255441B4937D72932E5141FC575091F32554419A9999E9962E5141A4703D2AF5255441EC51B83E9B2E5141713D0A27F7255441F6285C6F9D2E5141AE47E14AF825544159A65D669E2E5141A351E89CF82554416AE768439F2E51413635D4BDF82554419371CCCB9F2E5141EC61188AF8255441040C6041A02E5141C59A4048F82554410CCB9F8CA02E5141F7E7E4EEF7255441C3F528ECA02E514133333313F72554413D0AD7F3A12E514152B81E55F0255441EC51B83EA32E51418FC2F5A8EA255441713D0AD7A32E5141713D0A27E725544102833F4BA42E51410D0D747FE025544153D30B0AA62E514168003317E1255441295C8F92A52E5141D7A3702DE7255441C3F528DCA42E51418FC2F5E8EA255441D7A3708DA32E5141AE47E19AF02554411F85EB01A32E5141C3F5289CF625544100000060A22E514114AE4731FA2554419A9999C9A32E5141F6285C7FF92554410AD7A3B0A42E5141C3F5283CF8255441D7A3700DA52E5141A4703DCAF62554413D0AD703A62E51419A999949F52554415C8FC275A72E5141295C8F62F4255441B81E850BAA2E5141666666F6F3255441333333E3AA2E5141666666C6F02554416204208DA92E514145592851EF255441CF20346CA92E51413759DD28EE25544148E17A34A92E51413D0AD723EC2554417B14AE77AA2E51410AD7A3E0EA255441B81E850BAB2E514148E17AF4E825544166666696AA2E51415C8FC225E72554411F85EBD1A72E5141713D0A97E82554415C8FC275A72E51415C8FC2E5E3255441713D0A47A72E5141C3F5280CE0255441713D0AB7A62E5141295C8FC2DE2554417E82B60CA62E5141F37C000EE1255441ECF95C4CA42E5141EC321B6FE025544133333353A42E5141AE47E10AE02554412F498A88A52E5141142DCE34DD2554416DCE7DC9A62E514162C198DDDB2554417B14AEC7A72E5141C3F528CCDA25544152B81E35A92E514148E17A34DA2554416D5C5C64A92E5141BBA7FE54D925544185EB5188A92E5141AE47E1AAD8255441A4EE963AA72E51416D4AA666D62554417AA03C83A32E5141B0489FBED225544155D63E8DA02E51410963D7D4CF2554412585E84F9E2E5141CE76BDA0CD255441B1C9B16A992E5141A1CC71D9C8255441D7A3706D9D2E51411F85EBC1CC2554418FC2F5F8A82E5141EC51B80ED8255441D7A3701DA92E5141295C8FA2D725544166666636AA2E5141EC51B8DECD2554419A999989AA2E5141713D0A17CB2554410AD7A360AB2E514185EB5178C7255441EC51B8FEAC2E51418FC2F538BE2554413D0AD7A3AD2E5141E17A140EBB255441F6285CEFAE2E51417B14AE77B82554410AD7A3C0B42E51411F85EB31B2255441D7A3701DB82E51418FC2F548AF255441EC51B89EB22E514152B81E15AB25544166666666B32E5141AE47E13AAA25544133333373AF2E5141000000E0A4255441A4703D1AB22E5141295C8F72A12554418FC2F548BB2E51410AD7A3B0A8255441B81E859BBB2E51418FC2F5C8A72554419A999959BB2E5141000000C0A6255441333333A3BA2E51418FC2F5E8A52554417B14AED7B12E51419A9999899E255441AE47E14AB02E51413D0AD7D39D255441D7A370BDAE2E51413D0AD7D39D2554411F85EB61AD2E514185EB51589E255441B81E85CBAA2E51417B14AE27A0255441A4703DCAA82E5141B81E859BA0255441D7A3703DA72E51419A999959A0255441D7A3706DA52E5141333333A39F25544133333333A42E51419A9999899E25544114AE4701A42E5141EC51B83E9D255441295C8F22A42E514148E17A049C255441A4703DEAA52E5141B81E85FB9725544100000050A62E51411F85EB8196255441AE47E1FAA52E51415C8FC245952554415C8FC235A52E51413D0AD763942554419A999999A32E5141666666D693255441EC51B80EA22E51415C8FC225942554410AD7A3509D2E5141AE47E16A96255441C3F528CC9B2E51410AD7A3A09625544152B81E759A2E5141D7A3703D962554417B14AE27992E514152B81E6595255441CDCCCC3C982E51418FC2F52894255441CDCCCCAC972E5141CDCCCC5C92255441295C8F52972E5141F6285C1F8F25544152B81E25972E5141000000F08C255441713D0AA7962E5141D7A3705D8A2554417B14AED7952E51411F85EB5188255441713D0AB7942E5141AE47E16A862554410AD7A3D08F2E51417B14AE5781255441295C8FC28A2E5141EC51B88E7B255441295C8F82892E5141AE47E16A7A2554410AD7A380872E5141E17A144E79255441D7A370AD832E514185EB513878255441CDCCCCCC802E514152B81E45772554413D0AD7C37E2E514114AE472176255441A4703DFA7D2E5141713D0A277525544148E17A547E2E51418FC2F548742554411F85EBB1812E5141F6285C0F72255441295C8FA2862E514152B81E9574255441713D0A47852E51418FC2F5287725544148E17A148A2E514148E17AF479255441B81E855B8B2E5141666666267B25544185EB5158902E5141295C8FE28025544148E17A74952E514148E17A348625544133333383962E51410AD7A3008825544148E17A64972E5141666666668A25544152B81EF5972E5141AE47E19A8D25544185EB5158982E5141B81E857B91255441666666D6982E5141D7A3707D93255441A4703DCA992E514185EB51F894255441000000609B2E5141F6285CBF952554417B14AEA79C2E51411F85EBC195255441000000009E2E514100000040952554415C8FC2D5A12E5141F6285C4F93255441E17A148EA32E5141C3F5281C932554413D0AD773A52E5141295C8F9293255441CDCCCCDCA62E5141C3F528FC94255441713D0A37A72E5141295C8F92962554410AD7A3C0A62E514152B81E45982554418FC2F5E8A42E514148E17A149C2554418FC2F5E8A42E5141E17A142E9D255441C3F5283CA52E5141713D0A379E2554411F85EBF1A52E5141D7A370FD9E255441EC51B86EA72E5141295C8F929F255441B81E85EBA82E51413D0AD7B39F255441713D0A47AA2E514114AE47719F255441CDCCCCCCAC2E51410AD7A3809D255441C3F5289CAE2E5141CDCCCCFC9C255441B81E856BB02E5141CDCCCCFC9C2554419A999909B22E5141333333C39D2554418FC2F548BB2E5141C3F5285CA525544148E17A54BC2E514148E17AB4A6255441A4703DFABC2E51415C8FC2E5A8255441E17A14AEBC2E5141000000B0AB2554419A999989BA2E51413D0AD793AE25544133333333B72E514148E17A44B125544114AE4711B22E5141CDCCCC4CB6255441C3F5282CAF2E5141713D0AB7B925544133333353AE2E5141B81E85CBBB25544152B81E35AC2E514148E17AC4C72554417B14AE97AB2E5141D7A3701DCA255441666666E6AA2E5141AE47E10ACE25544152B81EB5AA2E51418FC2F528D0255441E17A140EAD2E51417B14AEA7CC2554410AD7A340B12E51413D0AD763CF255441C3F5282CAF2E514185EB5178D22554415C8FC2F5AE2E5141EC51B8DED6255441A4703D6AAF2E5141666666A6D825544152B81EC5B32E514114AE47C1D7255441295C8F22B62E51417B14AED7D725544148E17A84B82E5141E17A14EED72554417B14AEF7B92E5141D7A3707DD72554410AD7A300BA2E5141EC51B80ED62554419A999979B62E51418FC2F5C8D42554413D0AD7A3B62E514100000060D42554415C8FC235B72E5141666666F6D2255441F6285C6FB72E514185EB5168D225544114AE4721BA2E514152B81E55D3255441F6285CCFBA2E51415C8FC275D32554413D0AD7A3BA2E5141AE47E13AD62554410AD7A310BB2E514185EB5128D7255441CDCCCC2CBD2E514148E17A84D62554418FC2F558C12E514114AE47F1D4255441E17A14EEC52E51410AD7A3B0D22554415C8FC285C92E514166666696D02554419A999949CD2E5141F6285C0FCE2554418FC2F5A8D12E51413D0AD7B3CA255441D7A3709DDB2E5141AE47E15AC2255441295C8FF2DF2E51411F85EBC1BE2554411F85EB81E32E5141CDCCCC7CBC255441EC51B84EE72E51418FC2F5A8BA255441666666E6EB2E514114AE4711B92554418FC2F558F22E5141713D0A77B725544100000030EC2E51411F85EBD1B02554413D0AD723F02E5141295C8F92AF2554417B14AEE7F32E5141AE47E12AA92554410AD7A3D0F82E514152B81E65A92554415C8FC205FC2E514148E17A64AD255441DCE22889FD2E5141A267F0D6AD255441713D0A57FD2E5141D7A3703DB0255441295C8F22032F5141713D0A57B125544166666666022F51417B14AE27B4255441CDCCCCEC062F514152B81E85B4255441D7A370CD062F5141000000F0AC2554416CF46090092F51411849B333AD255441F154D3C20C2F5141637109D6AD255441DD088B950E2F5141235DDE84AD2554416DF392F0112F5141583654EAAD255441CA4970A0122F514110A2293FAB2554411572C642132F5141EFC51BCAA8255441C3E033A7122F5141CEAE5869A6255441DB39AAB2102F5141348C3332A5255441044B3DF40E2F5141F7BFEBAAA42554417B14AE870D2F5141CDCCCCFCA42554414C1BEB2A092F5141D5DCDF76A6255441E17A14AE062F514114AE47E1A92554419A9999C9012F514152B81E55A62554419A9999B9042F5141333333E3A325544166666666022F5141C3F5284CA2255441F6285C9F032F51410AD7A370A12554419A999989072F5141CDCCCC2CA2255441713D0AD70A2F514148E17AD4A02554414117857B0F2F514177F9D48EA3255441A4703DCA122F51411F85EB21A4255441245B0296152F514125A3F7DEA2255441333333D3162F514148E17AD4A02554415596B6351A2F5141E7D31748A025544139E1310F1C2F51411916CAA6A0255441A4703DCA232F5141EC51B8FE9E255441333333F3272F514166666676A02554415C8FC2452A2F51415C8FC2C59D2554418FC2F508352F5141F6285CDF9E2554410AD7A3603F2F5141295C8F4298255441C3F528BC3E2F5141D7A3704D93255441295C8F023F2F51419A999919912554411F85EBC14A2F514114AE471197255441F6285C4F4B2F5141C3F5284C9C2554417B14AE67422F514185EB51089D255441E17A14AE422F51415C8FC2E5A1255441713D0AC74C2F5141295C8F829F2554415C8FC2B54C2F5141B81E857B9B255441295C8F224C2F5141C3F5286C96255441713D0AC7402F5141333333F38F255441E17A141E3F2F51415C8FC2E58C2554417B14AE173C2F514114AE47C18A255441AE47E1BA3A2F5141AE47E19A8A255441295C8F42362F51415C8FC2A58C255441295C8F82302F5141E17A142E8B255441D7A3704D232F51413D0AD76398255441A4703D5A1B2F51410AD7A310962554413D0AD753142F51415C8FC2B597255441295C8F22132F5141A4703DBA99255441C3F5289C0F2F51413D0AD76398255441AE47E1DA0F2F5141D7A370DD93255441AE47E11A0A2F5141CDCCCC4C9425544148E17A74062F5141D7A3708D982554418FC2F5B8012F5141F6285C7F9F255441AE47E1EAFF2E5141B81E85CBA22554411F85EBA1FE2E5141F6285C1FA6255441E17A14DEFD2E51415C8FC2C5A9255441BBCCB28AFD2E51415BC312C4AD255441B0B5B407FC2E5141608D4B52AD25544114AE4771FC2E51417B14AE77A9255441CDCCCC3CFD2E51418FC2F5C8A52554411F85EBB1FE2E5141A4703D3AA22554419A999969002F514148E17AC49E2554411F85EBD1042F5141F6285C4F9725544114AE47910D2F5141333333038E25544185EB51B80E2F5141C3F528BC8B25544185EB51580F2F51419A99994989255441A4703D4A0E2F51415C8FC2458925544148E17A54092F5141CDCCCC2C8A255441B81E85CBFD2E514114AE4781892554415C8FC2E5F82E5141CDCCCC2C882554413D0AD743F12E5141EC51B83E87255441E17A146EEA2E51413333332385255441295C8FD2E62E51417B14AE07832554410AD7A320E12E5141A4703D5A7D25544133333393DD2E5141A4703D5A77255441F6285C4FDA2E514166666696752554413D0AD7B3D92E5141000000207425544152B81E15D12E51417B14AE776E2554415C8FC225C92E5141EC51B81E6A25544166666656C32E5141C3F5285C66255441AE47E1DABE2E5141713D0AC76325544152B81E75BB2E51415C8FC2B5612554418FC2F5B8B02E514148E17A9461255441B81E857BAE2E514185EB511865255441000000A0A82E5141CDCCCCFC6725544148E17A14A32E51410AD7A300692554411F85EB81A02E5141000000406C255441CDCCCCAC9D2E51417B14AE376A255441713D0A77992E51410AD7A3D06B2554417B14AED79A2E514152B81E5571255441713D0AE7932E51419A9999797225544148E17AA4932E51411F85EBA1722554419A9999E9922E51411F85EB6171255441000000B0912E5141713D0A676F25544166666616912E5141333333136E2554410AD7A3208F2E5141AE47E12A6B255441EC51B80E8E2E5141713D0A17652554419A9999C9902E514185EB51B862255441F6285C3F8D2E51413D0AD7A35E25544100000070882E51419A9999E959255441C3F528BC872E5141666666E6582554413D0AD7A3862E514152B81E3554255441EC51B82E862E5141295C8FC252255441EC51B87E7A2E5141333333B34E255441F656CF3D7C2E5141F00EF62E4B2554413D0AD783882E514185EB517832255441AE47E10A882E5141000000602F25544114AE47118C2E514152B81EE52A2554410AD7A3208D2E5141F6285CFF28255441666666C6872E51417B14AED727255441E17A14FE862E5141F6285CFF2825544166666606832E51417B14AEC729255441666666267C2E5141666666062B255441435BCC15772E514123060B333E255441E130C99E742E5141A909EA87472554415C8FC265732E51418FC2F5284C2554410AD7A390652E51410AD7A3E0462554415C8FC2B5572E514148E17A144625544166666656532E514148E17AD44525544114AE4731502E514152B81EB54525544152B81EF5412E51413D0AD7B353255441A4703D9A382E514114AE47215C255441A4703D6A302E514152B81ED563255441E17A14FE282E5141E17A146E69255441713D0A471A2E5141000000105D255441B81E858B112E5141EC51B8AE52255441333333830D2E5141EC51B86E572554417B14AE27072E5141B81E851B5C255441A4703D8AFE2D5141D7A3708D5E2554413D0AD7D3FA2D51411F85EB2161255441EC0835DDFA2D514124EDA751662554415A35FE59F92D514193C55C5E64255441B8F91265F92D5141BCAF4A48642554413D0AD7D3FA2D5141B81E852B61255441D7A370ADF82D5141D7A370DD62255441713D0AC7F52D514152B81E4565255441D7A370FDF22D514114AE470168255441F6285C6FEF2D51417B14AE376C255441F6285C3FED2D5141D7A370AD6E25544114AE4701EB2D5141D7A370DD702554419A999929E82D51419A99994972255441F6285C7FE42D5141D7A3707D732554419A9999B9E02D5141333333A374255441713D0A47DD2D51417B14AED77525544133333353DA2D514114AE47517725544114AE4701D62D5141F6285CFF79255441B81E853BD22D5141333333F37C255441F6285C7FCF2D5141333333237F255441B81E858BCC2D514152B81E458125544114AE47C1C92D5141333333A382255441F6285CDFC52D5141333333F383255441713D0A97C22D51419A9999198525544152B81E75C02D514152B81E8586255441D7A3709DBD2D5141333333C388255441D7A3701DBA2D5141F6285C7F8B255441F6285C8FB62D51419A9999698D255441F6285C1FAF2D514114AE470192255441713D0A87AA2D5141F6285CAF9425544114AE47A1A72D5141B81E858B9625544133333313A42D51417B14AED798255441F6285C8FA12D514152B81EC599255441F6285C5F9F2D5141B81E850B9A255441B81E851B9B2D5141333333439A25544152B81EA5982D51419A9999899A25544152B81EE5962D5141333333239B255441B81E854B962D51417B14AE579C255441713D0A67962D51417B14AEA79D255441D7A3708D972D51417B14AEF79E255441D7A370BD992D514152B81EC5A0255441D7A370FD9E2D51419A999929A4255441713D0AE7A02D51419A999979A5255441713D0A37A22D514133333383A6255441F6285CFFA12D5141F6285CEFA72554419A999949A12D51419A9999F9A825544114AE4731A02D5141F6285C1FAA2554419A9999399E2D5141F6285CFFAA255441B81E85FB9B2D5141B81E858BAB255441F6285CAF992D5141B81E85FBAB2554419A999989982D5141D7A370CDAC255441D7A3701D972D514114AE4701AE2554410B920226952D5141A34725CCAF2554412D124944942D514192DFEA09AF255441333333C3942D51419A9999A9AE255441F6285C0F972D5141B81E856BAC255441713D0A97982D514133333353AB25544114AE47F19A2D5141D7A3709DAA255441B81E854B9D2D51419A999949AA255441713D0A279F2D5141D7A3704DA9255441333333B39F2D51417B14AE97A825544133333323A02D514152B81E55A725544114AE47C19F2D514133333313A6255441713D0AD79D2D514152B81EB5A4255441D7A3702D9A2D5141F6285C3FA22554419A999939972D51419A999939A0255441F6285C4F952D514114AE47B19E25544114AE4761942D5141333333539D255441F6285C6F942D514152B81E859B255441713D0A87952D5141D7A3706D9A255441F6285C7F972D51419A9999A999255441B81E85CB992D51417B14AE47992554419A9999599D2D5141D7A3701D992554419A999969A02D5141333333F398255441D7A3707DA22D51419A99995998255441333333D3A52D5141D7A3707D96255441713D0A87AA2D514114AE47519325544152B81E45B02D514152B81E2590255441713D0A27B42D51419A9999698D255441D7A3707DB72D5141B81E859B8B2554419A999939BA2D51417B14AEF78925544133333373BD2D51417B14AE578725544114AE4791C02D51419A99991985255441F6285C3FC32D5141B81E85BB83255441713D0AF7C62D5141B81E856B82255441713D0A97C92D5141B81E858B81255441713D0A87CD2D5141B81E855B7F25544152B81EC5CF2D514114AE47717D255441D7A370DDD02D5141D7A3703D7C2554419A999989D02D5141D7A3700D7A255441D7A3702DD22D51413333337379255441F6285C8FD22D51417B14AE177B255441B81E850BD72D514152B81E1578255441B81E858BDA2D514152B81EE57525544133333363DD2D514114AE47B174255441333333C3E12D51419A99992973255441F6285C3FE62D5141D7A370BD712554419A999999E82D51419A9999F97025544133333363EB2D514114AE47016F255441713D0AC7EE2D51419A9999496B255441D7A370ADF12D51419A9999C96725544152B81EC5F22D5141333333C36525544133333343F32D51419A9999B964255441F6285C1FF52D51417B14AEE763255441713D0AF7F72D5141D7A370FD6125544114AE47D1FA2D5141B81E859B5F25544185EB5118E12D5141C3F528DC6925544148E17A24CF2D5141B81E851B712554419A999929BC2D5141C3F528CC782554419A9999F9BB2D514114AE47917C2554419A9999A9BA2D5141F6285C3F7F25544133333383B22D5141D7A3707D81255441D7A3701DAC2D514114AE47D181255441C3F5284CAA2D5141666666A67F25544133333323A22D5141713D0A678025544148E17AA4A02D5141E17A149E7F255441D7A3700D9E2D514148E17AC47F255441EC51B87E9C2D514185EB51588025544114AE47D1972D5141333333F381255441AE47E16A942D5141EC51B82E82255441000000F0922D51413333337382255441295C8F82922D5141666666F68225544133333393912D51418FC2F588832554411F85EBE18E2D514148E17A3483255441000000808C2D514166666636832554413D0AD7538A2D51418FC2F558832554415C8FC225882D51410AD7A3B08325544148E17AC4852D51410AD7A35084255441E17A140E822D514152B81E5584255441295C8F82852D514148E17AB48E255441D7A3705D872D51417B14AE378F2554419A9999C9882D51419A99997990255441F6285C7F892D514152B81E559225544133333363892D5141F6285C3F94255441D7A3708D892D514114AE4761962554419A9999C9882D51417B14AE679825544152B81E75882D5141F6285CEF99255441F6285CEF892D5141D7A3702D9C2554419A9999698B2D51417B14AEC79C255441B81E853B8C2D51417B14AED79F255441B81E851B8D2D51417B14AE77A2255441D7A3700D8D2D514133333333A52554419A9999498C2D5141F6285C9FA625544152B81E858B2D514133333363A7255441AE47E19A892D5141E17A140EA825544148E17A148A2D5141666666C6A9255441B81E85AB8C2D51419A999929AB2554419A9999E98E2D514114AE4791AD2554410AD7A3C0902D5141713D0AA7AF255441295C8F02932D5141E17A14FEAF255441BA183D42942D51419A86780BAF255441D891F40E952D5141C4C76FDDAF2554415C8FC2A5942D5141D7A3703DB0255441D7A3700DA32D514185EB5168B225544148E17A94B02D51415C8FC2B5B425544152B81E25AA2D514185EB51C8C525544152B81EE5AB2D5141D7A3709DC6255441D7A3706DAD2D5141F6285C6FC72554419A999949AF2D5141F6285CBFC82554419A9999E9B12D5141D7A370FDCA25544152B81E05B22D5141F6285C7FCA255441B81E85BBB22D5141333333D3CA255441F6285C9FB22D5141F6285C5FCB25544152B81E85B52D514114AE4781CD25544114AE47F1B62D5141D7A3707DCE255441B81E858BB72D514133333353CE255441B81E85FBB72D5141D7A3702DCD255441333333A3B82D5141D7A370FDCA255441CDCCCC1CB72D5141CDCCCC5CCA25544185EB5148B72D5141B81E855BC825544114AE47E1B82D5141E17A147EC8255441D7A370ADB92D5141F6285C6FC725544133333343BB2D5141B81E858BC7255441EC51B81EBC2D5141E17A140EC8255441333333E3BD2D514133333333C825544133333373BD2D514152B81EA5CB255441F6285CCFBB2D514114AE47C1CB2554419A999989BB2D5141D7A3704DCC25544133333383B92D514133333323CC255441713D0AF7B82D514114AE4781CD25544114AE47B1B82D514152B81EB5CE2554419A9999E9B82D5141B81E856BCF25544133333383B92D5141B81E85DBCF255441713D0A27BB2D5141D7A370ADD0255441F6285C1FBD2D514152B81EC5D1255441713D0AA7BE2D5141333333D3D1255441091F27E6BE2D5141A24A68A9D1255441E02B1F99BF2D51416F1DEDFCD125544114AE47B1BF2D51419A999989D22554419A999919C22D514152B81ED5D425544114AE47F1C42D5141B81E854BD725544133333383C72D514133333343D925544114AE47C1C92D514114AE4731DA25544133333353CC2D514133333393DA255441D7A3701DCF2D51417B14AE07DA255441D7A370BDD12D5141333333D3D82554419A999959D52D5141D7A3703DD7255441D7A3704DD82D51417B14AE87D6255441D7A370EDDA2D5141D7A3705DD62554419A9999A9DD2D514152B81E25D6255441D7A3702DE02D51419A999999D52554419A999979E22D5141D7A3702DD425544152B81EA5E52D514152B81E35D225544152B81EB5E82D514152B81E75D0255441333333F3EA2D5141333333C3CE25544133333303EE2D51417B14AE77CC2554413D0AD7D3F02D5141295C8F62CB25544133333333F52D514133333393CA2554411F85EBF1F72D514185EB51B8CA25544152B81E35FA2D5141F6285C5FCB255441B81E851BFD2D51417B14AE77CC255441A9CDC9A7FE2D51411F7867C2CC2554416CC3F2C3FE2D51419AB571C9CC255441BE7B11A9FE2D5141011CD8EFCD255441769A9674FE2D51413326AFE3CD25544152B81EF5FB2D51417B14AE57CD25544152B81EE5F82D5141D7A3704DCC255441713D0AA7F62D5141333333B3CB25544152B81EF5F42D5141333333B3CB255441D7A3701DF22D514152B81E15CC255441B81E858BEF2D514133333303CD25544133333393ED2D51419A999929CE25544114AE4701EB2D5141F6285C9FD025544152B81EB5E82D51417B14AE27D2255441F6285C5FE52D514152B81EF5D32554419A999979E22D514152B81EB5D52554419A999949E02D514152B81E95D625544152B81EC5DD2D514114AE4721D7255441D7A370EDDA2D5141B81E854BD725544114AE47C1D72D5141D7A370ADD7255441B81E85BBD52D514152B81E55D825544114AE4761D32D514114AE4751D9255441333333A3D42D51417B14AE77DA2554419A999999D32D5141D7A3709DDB255441D7A3709DD22D514133333333DD25544114AE47C1D02D514114AE4741DD255441713D0A77D12D5141F6285C8FDB255441713D0A57D22D5141D7A370DDD925544152B81E35D02D51417B14AEE7DA2554419A999909CD2D5141F6285C8FDB25544152B81E85CA2D5141F6285C8FDB255441333333F3C72D5141D7A370BDDA25544133333353C52D5141B81E850BD925544152B81E35C22D514114AE4741D6255441D7A370CDBF2D5141D7A3702DD4255441B81E853BBD2D514114AE47C1D225544152B81E55BA2D51419A9999A9D1255441D7A370ADB92D514152B81E35D2255441B868F19DB92D5141462AE5AFD2255441F5CD689FB82D514120448F3CD225544152B81E95B82D5141333333D3D125544133333333B82D514152B81EE5D0255441F6285C6FB72D514114AE4721D025544152B81E15B52D5141D7A3707DCE255441333333F3B22D5141F6285C1FCD2554419A9999B9AF2D5141F6285C7FCA255441B81E85EBAD2D514152B81E05C925544133333383AB2D514152B81EB5C725544114AE47B1A92D5141C3F528FCC6255441E17A14BEA12D5141A4703DDAC425544185EB51889B2D51410AD7A310C3255441333333A39C2D51419A9999F9C425544152B81EC59E2D514133333373C6255441B81E859B9E2D5141333333C3C7255441F6285CEF9E2D51419A9999C9C9255441D7A3704DA02D51417B14AED7C925544114AE4761A22D514114AE4701CA255441B81E858BA22D5141F6285C5FCB25544152B81ED5A12D51419A999949CD255441713D0AE7A02D514114AE4741CF255441B81E859B9E2D51419A999979CF255441D7A370AD9D2D51419A999939D12554419A9999C99D2D51417B14AE07D3255441D7A370AD9D2D514152B81E65D425544152B81E959C2D5141F6285CDFD525544152B81EB59B2D51419A999959D7255441D7A3709D9A2D5141B81E859BD8255441B81E855B992D5141D7A370FDD8255441713D0AB7972D5141B81E859BD82554410AD7A3A0962D5141A4703D5AD82554418FC2F528962D5141295C8FB2D92554411F85EB01962D51417B14AEE7DA255441B81E85CB952D514185EB51B8DB255441A4703D5A952D514133333343DC2554419A9999B9942D514148E17AE4DC2554413D0AD723942D514114AE4791DD255441F6285C6F932D5141CDCCCC8CDE2554411F85EB91922D514152B81E65DF25544148E17AB4912D514148E17A04E02554411F85EBB1902D5141666666C6E0255441B208E30A902D51411489CE58E12554419A9999A98F2D5141E17A14AEE1255441A5495AB5772D51410DE89BFDF825544117F378871A2D5141E232AE92B62654419285DE70EB2C5141C87A406CF826544166EC9D7EB52C51410DA928308727544108000000CDCCCCCCB62E51410AD7A38084255441666666B6B42E5141333333C3842554418FC2F5B8AD2E5141B81E85AB8125544148E17AB4AC2E5141F6285C2F7E2554419A999979B42E5141000000807B255441333333E3B72E5141295C8F12802554410AD7A3D0B72E51415C8FC26582255441CDCCCCCCB62E51410AD7A3808425544108000000AE47E10AAF2E514148E17A348F2554418FC2F5A8AD2E5141D7A370ED8D2554413D0AD7E3AB2E5141713D0AF78C2554418FC2F588AA2E5141D7A3705D8C2554411F85EBB1AB2E5141B81E854B8925544148E17AE4AD2E5141666666F689255441EC51B89EB12E5141C3F5284C90255441AE47E10AAF2E514148E17A348F2554410D000000295C8FB26C2E51419A9999E99A25544152B81EE5632E514148E17A248A255441713D0AD75C2E5141B81E858B81255441CDCCCC2C532E514185EB51587B25544152B81EB57B2E5141A4703DEA7C255441CDCCCC6C832E5141666666168325544114AE47A1852E5141C3F528EC892554418FC2F5A8812E5141CDCCCC5C8A25544166666616842E514185EB511890255441CDCCCC6C832E514185EB510898255441AE47E15A7E2E51413D0AD7C39D255441F6285CBF742E51419A9999599E255441295C8FB26C2E51419A9999E99A2554410700000048E17AB4A82E5141EC51B8BE8725544148E17A84A42E514152B81E058725544114AE4761A32E51411F85EBE18325544148E17A84A42E5141AE47E1FA80255441A4703DDAA52E5141713D0AE780255441CDCCCC5CA82E51410AD7A3508425544148E17AB4A82E5141EC51B8BE8725544107000000B81E859BA62E514152B81E357B25544148E17A44A32E514185EB5128782554417B14AE77A22E5141AE47E1BA732554410AD7A310A42E51413D0AD7A3722554410AD7A3B0AB2E514185EB5198782554415C8FC2D5AB2E51415C8FC2C57A255441B81E859BA62E514152B81E357B25544105000000295C8FA23B2E5141CDCCCCFC98255441AE47E16A3C2E51411F85EB71982554413D0AD7233D2E51418FC2F55899255441C3F5284C3C2E51411F85EB119A255441295C8FA23B2E5141CDCCCCFC9825544114000000E17A14FE332E5141CDCCCC2C9C2554418FC2F588342E51413D0AD7B39E25544152B81E55332E51411F85EB81A025544185EB5158312E514166666646A325544133333343302E5141F6285C9FA5255441E17A148E2D2E51417B14AEF7A7255441D7A3705D2A2E5141F6285C3FA72554411F85EB51282E5141AE47E10AA6255441EC51B80E272E5141AE47E16AA4255441713D0AD7272E5141B81E852BA1255441F6285C8F282E51419A9999199E25544166666686292E5141AE47E15A9C25544114AE47012A2E514152B81EB59925544114AE47A12B2E5141E17A14CE98255441AE47E14A2C2E5141000000409A255441A4703DEA2D2E51410AD7A3309A255441E17A142E2F2E5141A4703D3A99255441D7A370DD302E5141000000A098255441A4703DCA322E514148E17AC499255441E17A14FE332E5141CDCCCC2C9C25544105000000713D0AC7952E5141AE47E12AE22554410AD7A3D09A2E514185EB51B8E1255441D7A3706D9B2E514148E17A34E825544114AE4761962E514114AE4721E8255441713D0AC7952E5141AE47E12AE225544106000000333333F3392E51418FC2F5E892255441333333933B2E5141EC51B88E952554415C8FC2E53C2E5141666666669625544148E17A743B2E5141B81E857B97255441B81E851B392E51411F85EB9193255441333333F3392E51418FC2F5E8922554410500000052B81E351D2E5141F6285CBFD6255441333333431D2E5141D7A3708DD8255441333333131B2E51419A9999A9D8255441713D0AF71A2E51419A999959D725544152B81E351D2E5141F6285CBFD6255441040000002177CFF54C2E5141D57B470294255441B33ADEEF4C2E5141C552280C9425544152B81E153F2E514114AE4741922554412177CFF54C2E5141D57B470294255441090000006AA33CDA612E514168E49A299C255441F6285C0F612E51410AD7A3709D255441F6285C6F5F2E5141CDCCCCCC9D25544114AE47A15D2E51410AD7A3709D2554410AD7A3205C2E51415C8FC2E59C2554413D0AD7C35B2E5141666666369B2554411F85EB515C2E514148E17AC498255441F6285C4F5E2E5141EC51B8AE992554416AA33CDA612E514168E49A299C25544116000000713D0A27DE2D514133333383E5255441D7A3701DDD2D5141B81E856BE42554419A999939DD2D514152B81ED5E2255441D7A370FDDD2D514152B81EA5E0255441B81E859BDD2D514133333383DE25544133333383DC2D5141333333C3DC255441333333F3DC2D5141D7A3702DDB2554419A999919DE2D514152B81E15DA255441F6285C3FDF2D51417B14AEE7DA255441F6285C1FE02D5141333333E3DB25544152B81E25E22D5141D7A3709DDB255441D7A370ADE32D514114AE47F1DB255441B81E850BE52D5141D7A3705DDD255441B81E85EBE52D514152B81E55DF255441713D0AE7E62D51417B14AEE7E1255441713D0A07E62D5141D7A3700DE3255441B81E859BE42D514152B81E25E425544133333313E32D514114AE4701E6255441B81E85FBE12D51419A9999F9E72554419A9999B9E02D514152B81E15E82554419A9999D9DF2D5141D7A3708DE6255441713D0A27DE2D514133333383E5255441070000009A999929DA2D514152B81E75D0255441B81E851BDA2D5141F6285C6FCE255441333333A3DB2D51417B14AE37CE255441B81E85BBDC2D5141B81E85ABCD255441F6285C5FDE2D514152B81E65CD255441F6285C5FDE2D5141B81E854BD02554419A999929DA2D514152B81E75D02554413700000066666696F42D5141666666D6712554419A9999B9F52D51415C8FC2C56F255441F6285C8FF52D5141F6285C4F6D255441D7A3705DF72D514114AE47F16B25544152B81E05F82D51417B14AE776A255441B81E854BF82D51419A9999A96825544133333313F82D51415C8FC22566255441713D0A57F92D514148E17A6464255441E83A83C7FF2D514172FA38A96C25544100000020FF2D514185EB51F86C2554417B14AE87012E5141713D0AF772255441D7A3705D042E514148E17AC47825544152B81E55072E51419A9999797D255441666666960B2E5141CDCCCCEC81255441D7A3700D112E51418FC2F578852554418FC2F558072E5141A4703D9A692554418FC2F5E80D2E5141CDCCCCFC66255441CDCCCC7C142E5141B81E856B63255441CDCCCC3C262E5141333333238F255441713D0A17202E51419A999959962554410AD7A360202E51411F85EB719825544152B81EF51F2E51415C8FC2E59C255441000000D01E2E514152B81E35A0255441B81E85AB1D2E5141E17A14BEA5255441CDCCCC8C1D2E5141EC51B87EAA255441C3F5289C1D2E51417B14AE77AE25544148E17AC41C2E5141333333C3B3255441AE47E11A1C2E5141000000E0B82554419A9999491C2E514133333373BD255441EC51B8BE1B2E5141A4703DEABF25544148E17A84192E51413D0AD793C0255441000000C0162E514100000000C1255441B81E859B152E514100000060BF2554419A999929142E5141B81E853BBE255441333333A3112E5141A4703D5ABE2554410AD7A340102E514148E17AE4BE255441333333630E2E51415C8FC2C5BE255441F6285C1F0D2E51411F85EB91BD2554417B14AEE70D2E51419A999929BB255441E17A14DE0E2E51417B14AE27B825544114AE47910E2E514152B81E25B5255441666666760C2E5141666666D6B1255441000000800B2E514185EB51F8AF255441B81E85EB0B2E51411F85EB71AD25544148E17A040B2E5141F6285C0FAC255441000000E0092E514152B81E45A82554419A9999E9082E5141295C8F42A5255441AE47E12A082E514100000090A325544133333313022E5141CDCCCCECA4255441E17A145E002E5141713D0A97A125544100000090FE2D5141CDCCCC2C9C255441B81E85CBFB2D5141713D0A179325544166666616F92D51410AD7A37088255441A4703DEAF62D51415C8FC2A57A25544166666696F42D5141666666D67125544121000000F6285C0FEE2D5141A4703D3A7425544133333353F22D5141B81E854B86255441EC51B88EF52D514114AE47F19425544152B81E35F92D5141713D0AD7A425544100000050FB2D514100000030A72554413D0AD793FC2D5141AE47E1EAAA2554417B14AEC7FD2D5141EC51B85EAF2554411F85EB61FE2D5141CDCCCC2CB125544100000030002E5141AE47E19AB42554411F85EBA1012E51411F85EB11B72554413D0AD7C3FF2D51413D0AD783B8255441A4703D8AFD2D514152B81E05BA255441B81E85CBFB2D51410AD7A3E0BA255441333333B3FA2D51415C8FC275BB2554419A9999A9F92D5141B81E854BBB25544114AE4791F82D514114AE47F1B825544114AE47D1F62D5141F6285CAFB7255441F6285C8FF52D5141F6285CAFB725544133333343F32D5141B81E85FBB9255441F6285CFFEE2D5141B81E854BBB25544152B81E75EA2D5141F6285C2FBB255441F6285CAFE62D514114AE4761B92554417B14AE07E62D5141D7A370FDB5255441B81E857BE52D51417B14AE37B22554417B14AE87E22D5141D7A3702DAA2554417B14AE37E12D51419A999989A125544114AE4711E02D5141D7A370DD9A25544133333303E02D51417B14AEE794255441B81E851BE12D51415C8FC2858D2554415C8FC2E5E32D5141713D0A778A255441B81E857BE12D51415C8FC2B57925544152B81ED5E72D51416666669676255441F6285C0FEE2D5141A4703D3A742554410A000000E17A14EE052E5141295C8F72D32554418FC2F5C8082E51419A999979DA2554417B14AE47052E51419A9999D9DC255441D7A3700D042E5141F6285CFFDB25544152B81E35012E5141F6285C3FDA255441F6285C0F002E51417B14AEB7D8255441333333F3FF2D514114AE47B1D62554419A999989012E51415C8FC2D5D425544133333373032E514114AE4781D4255441E17A14EE052E5141295C8F72D32554410500000066666636EA2E51419A9999D9A92554410AD7A3A0E72E514166666656A92554415C8FC215E82E51413D0AD773A725544185EB5118EB2E5141D7A370BDA525544166666636EA2E51419A9999D9A92554410500000052B81EB5C02E51410AD7A320C725544152B81EE5C12E51410AD7A350C1255441F6285C7FC92E5141713D0AA7C225544152B81E95C82E5141CDCCCC3CC825544152B81EB5C02E51410AD7A320C72554410500000033333383B52E5141F6285C3FCF25544133333363B62E5141AE47E1FACA25544100000000B82E5141C3F5283CCB25544100000010B72E514152B81E95CF25544133333383B52E5141F6285C3FCF2554410E0000005C8FC265B52E5141333333E3BC255441CDCCCC9CB12E514148E17AD4C3255441D7A3708DB02E514166666666C3255441AE47E1EAAF2E51410AD7A3E0BE25544114AE47C1B32E514166666636B92554411F85EB51BA2E51411F85EB81B125544148E17A34BB2E5141713D0AC7B0255441CDCCCCECBC2E5141AE47E15AAE255441713D0A57BD2E5141F6285C6FAE255441A4703DEABD2E5141C3F5280CAF2554411F85EBF1BD2E5141E17A14FEB0255441CDCCCC0CB82E51419A9999E9B925544148E17A84B62E51418FC2F538BB2554415C8FC265B52E5141333333E3BC2554411B000000E17A14AEBD2E5141295C8F72A5255441F6285C2FBD2E5141EC51B80EA5255441C3F5283CB62E514185EB51089F255441D7A370DDB42E5141CDCCCCEC9A25544148E17A64B12E5141666666169925544148E17AE4B12E514152B81E15962554419A9999D9B42E51419A9999D9922554415C8FC2D5B32E5141D7A370FD91255441713D0AB7B22E5141713D0A579125544152B81E05B22E514148E17A049125544185EB5138B22E5141333333A390255441EC51B8CEB32E514185EB517891255441AE47E14AB72E514148E17A348D255441295C8FF2B82E5141F6285CEF8D255441CDCCCC5CB82E5141333333A38F25544133333323BB2E5141F6285CBF9425544185EB5198BB2E51418FC2F5D89A255441F6285C5FBF2E5141A4703D1A9A25544133333383C12E5141B81E85EB9E255441CDCCCC7CC22E5141B81E85FBA325544133333383C12E514148E17A94A92554418FC2F538C12E514114AE4781AA255441F6285C3FC02E5141B81E855BAA255441333333A3C02E5141CDCCCC4CA3255441713D0A37BF2E5141A4703DCAA225544185EB51C8BD2E5141D7A3704DA4255441E17A14AEBD2E5141295C8F72A52554410600000048E17AF4322E51419A9999090D26544185EB5188302E5141D7A370DD0C26544100000010222E5141E17A143E00265441C3F5288C232E514148E17AD4FE2554417B14AEF7312E514114AE47B10B26544148E17AF4322E51419A9999090D26544107000000713D0A97E52D5141333333E334265441D7A3707DE62D5141295C8F222F265441EC51B84EEB2D5141000000102F2654418FC2F548ED2D5141CDCCCC8C37265441F6285C5FEA2D5141295C8F723826544114AE4721E62D51410AD7A33037265441713D0A97E52D5141333333E3342654410600000048E17A74252E5141F6285CDFF32554418FC2F5B8232E514166666676F2255441C3F5282C252E514114AE4761EC2554410AD7A3F0262E5141295C8FF2EC255441333333A3282E51418FC2F508F225544148E17A74252E5141F6285CDFF3255441050000003D0AD7E3622E5141EC51B8EE1E265441E17A14EE622E5141CDCCCCBC1F26544152B81ED5612E5141C3F528CC1F2654413D0AD7C3612E5141CDCCCCFC1E2654413D0AD7E3622E5141EC51B8EE1E265441390000001F85EB21422E514185EB5168EE255441AE47E10A412E5141E17A145EEB255441E17A147E3D2E514148E17A54E7255441E17A149E3A2E514166666656E5255441333333433B2E5141A4703DDAE9255441D7A370CD372E514114AE4741ED25544152B81E85332E51413D0AD733EB255441713D0A57352E51413D0AD7A3E225544173842B992D2E514142A8BB42DC255441CDCCCCAC2D2E5141295C8F42DC255441B97766972C2E51411EF81E87DB2554418C73085B2D2E5141DD009A8DDA2554417B14AED72F2E51410AD7A350DC25544133333383332E514148E17A34DF25544166666666362E514100000040E1255441B81E85BB3A2E514185EB51A8E325544185EB51283F2E5141A4703D1AE625544166666616402E5141B81E852BE82554411F85EB21422E51413D0AD793EA2554410AD7A3E0432E514185EB51B8EB255441CDCCCCDC452E5141E17A14BEEC25544185EB5198492E51415C8FC295ED255441A4703D3A4E2E5141F6285C3FEE2554410AD7A300542E5141CDCCCC7CEE2554410AD7A340572E5141295C8FE2ED255441CDCCCC3C592E51411F85EBF1ED255441333333D35B2E5141E17A145EEE2554418FC2F5785E2E51411F85EBF1ED255441713D0A27652E5141E17A14BEEC255441B81E852B6B2E514152B81E05EC255441F6285C2F712E5141713D0AD7EB255441D7A3703D762E5141666666E6EB2554419A9999D9792E514185EB51B8EB25544148E17A947D2E5141E17A14BEEC255441B81E85FB842E5141AE47E1AAEE2554418FC2F5088A2E5141EC51B8EEEF255441D7A370AD912E5141295C8FC2F2255441B3ED136E932E514105F1AA90F325544158D689ED922E514168EFA96EF42554419A999979902E5141C3F5285CF3255441295C8F12892E514152B81EE5F025544166666646822E514166666626EF255441AE47E15A7B2E51417B14AE67ED25544100000000762E5141A4703D1AED2554418FC2F538702E5141CDCCCCDCEC255441B81E858B692E514185EB5158ED2554418FC2F5F8642E514152B81EA5ED255441333333B3602E5141AE47E1AAEE255441333333D35B2E5141295C8F82EF2554415C8FC255582E51410AD7A3B0EF25544185EB5148532E514114AE47A1EF2554418FC2F5B84C2E51413D0AD763EF255441D7A3700D492E514185EB51E8EE255441666666E6442E5141333333D3ED255441B81E85CB422E5141F6285C9FEC25544185EB51F8402E51419A999929EB2554411F85EB21422E514185EB5168EE25544109000000295C8FF28A2E5141D7A3702D052654419D6A6B26892E514123BA0A6C0526544166666656892E5141AE47E14A04265441295C8F82872E51419A9999C9032654417B14AEF7862E5141EC51B8AE0126544148E17A44872E51417B14AEC700265441295C8F12892E51418FC2F53802265441AE47E17A8A2E514185EB510803265441295C8FF28A2E5141D7A3702D05265441070000005C8FC245342E5141AE47E1DA4B2654410AD7A3702E2E51415C8FC2B547265441C3F528BC392E51410AD7A33041265441E17A14FE442E514114AE478143265441295C8F92432E51413D0AD7C347265441EC51B83E3A2E51413D0AD713472654415C8FC245342E5141AE47E1DA4B2654410B0000005C8FC2E5292E5141295C8FC2552654413D0AD7F3252E5141295C8FC2552654413D0AD7F3222E5141AE47E1EA53265441CDCCCC6C272E51415C8FC2B54C265441713D0A272A2E51410AD7A3804B265441713D0A672C2E514148E17A744E26544148E17A942E2E5141CDCCCC0C4D2654417B14AE37332E5141A4703DCA4F26544100000000322E514148E17A64532654411F85EBA12C2E5141AE47E19A512654415C8FC2E5292E5141295C8FC2552654411A000000CDCCCCFC632E514152B81EA53B265441E17A14BE652E5141C3F528CC3A26544185EB51E8642E5141F6285C3F3126544148E17A14632E5141666666462E26544148E17A94722E5141000000C021265441E17A14AE742E5141713D0A272426544152B81E35772E5141A4703DEA21265441D7A3707D792E5141295C8F5222265441EC51B82E7A2E514152B81ED523265441E17A146E782E5141B81E856B272654410AD7A360792E51413D0AD7532B265441CDCCCC6C7B2E5141EC51B8FE2F2654418FC2F5587E2E5141F6285C4F39265441CDCCCCDC7C2E5141C3F528BC3B26544152B81E056A2E51411F85EBB13D2654410AD7A360652E5141B81E85DB3E265441B81E858B642E514114AE472142265441E17A14EE662E5141CDCCCC3C44265441F6285C5F662E51417B14AE574726544152B81EA5622E5141666666064A26544133333353632E514166666646502654415C8FC245612E5141B81E859B50265441F6285C7F5F2E5141A4703D3A4B2654411F85EB61622E51413333330347265441F6285CFF5E2E51410000002045265441CDCCCCFC632E514152B81EA53B26544131000000EC51B85E032E5141295C8F32CD2554419A999909052E5141F6285C1FCD255441E17A144E082E51418FC2F5A8CC255441F6285C6F072E5141C3F528CCC9255441B81E85BB092E51418FC2F518C9255441D7A370DD082E5141D7A3707DC725544114AE47A1092E51419A999929C7255441D7A3709D0A2E514152B81E95C82554419A9999090C2E51417B14AE17C82554415C8FC2A50C2E5141D7A370EDC8255441713D0A470E2E514114AE4741C82554419A9999190F2E51417B14AE27CB255441F6285C4F0C2E5141D7A3704DCC255441B81E856B0C2E51419A9999D9CC25544133333393102E51417B14AE77CC25544157E370AA102E514187A908BACB25544127FEC541122E514169E9829ECB255441AB72A50A142E5141FA292B5FCC25544133333313142E5141D7A370BDCC255441713D0A27162E51419A999949CD25544152B81E85172E514114AE47F1CD255441F6285CDF192E514152B81E25CF25544152B81EF51E2E514152B81E35D225544152B81E95212E51419A999959D3255441E17A147E252E5141A4703DEAD42554411F85EB51282E5141666666E6D625544185EB51882C2E514185EB51F8D9255441CFCF5C5A2D2E5141C5A9398ADA2554416969F6932C2E51414A958B82DB25544185EB51E82A2E51413D0AD763DA2554413D0AD783262E5141666666E6D6255441295C8F72232E5141713D0A37D5255441A4703D0A212E5141F6285C5FD425544152B81EF51E2E5141B81E855BD32554419A9999E91A2E5141D7A3701DD125544114AE4711182E5141F6285C4FCF25544152B81E35162E5141B81E858BCE25544152B81E75142E51419A999929CE255441713D0A970F2E514114AE47F1CD2554419A9999D9092E5141B81E851BCE25544152B81EE5062E5141F6285C6FCE25544152B81E95052E514152B81EB5CE2554419A999999042E5141D7A3707DCE255441D7A370ED032E5141AE47E18ACE255441D7A370FD002E514152B81E45CE25544197E616AEFE2D51419D4D22EECD25544183C646C7FE2D5141D4B3A4C8CC255441713D0A47002E514114AE4711CD255441EC51B85E032E5141295C8F32CD2554411700000048E17A84412E51413D0AD7E397265441C3F5280C3C2E51410AD7A350952654410AD7A3003B2E5141E17A14BE922654415C8FC2A53B2E51411F85EB91902654411F85EB11402E5141F6285C3F90265441713D0A47412E5141C3F528FC8B26544152B81EC5432E514152B81E058B2654415C8FC275452E514152B81E258C265441666666D6482E514152B81E958B265441713D0A874A2E5141000000D089265441A4703D1A4D2E5141B81E854B8A265441F6285C1F512E51418FC2F5B887265441E17A140E532E5141295C8F928926544185EB5148582E51418FC2F5688926544148E17A045B2E5141333333F38C2654417B14AE275E2E5141CDCCCC5C8F2654413D0AD703622E514185EB51488F2654418FC2F558642E51411F85EB2191265441666666365A2E514152B81ED594265441713D0AA7522E5141C3F528CC95265441F6285C6F4F2E5141713D0A57922654410AD7A3404B2E5141A4703D7A9526544148E17A84412E51413D0AD7E397265441050000007B14AE47F32E5141D7A3707D45265441A4703DEAF12E5141AE47E19A432654410AD7A340F32E51415C8FC2A542265441A4703D9AF42E514166666676442654417B14AE47F32E5141D7A3707D452654410700000052B81E05D62E5141AE47E1FA52265441713D0AA7D12E51419A9999494D2654419A999939D92E5141CDCCCC0C482654415C8FC2C5DA2E5141CDCCCCDC48265441B81E856BE72E51413333338354265441F6285CBFE12E5141333333E35726544152B81E05D62E5141AE47E1FA5226544108000000295C8FB2B82E5141333333236E265441A4703DDAB82E5141295C8F92722654413D0AD7D3AB2E5141666666F67726544100000070AA2E51418FC2F5B8742654410AD7A3B0AD2E51417B14AE5772265441295C8FC2AE2E51417B14AE4770265441AE47E11AB52E5141CDCCCC0C70265441295C8FB2B82E5141333333236E2654410D000000A4703DDAF32E5141D7A370CD222654418FC2F5F8F42E51418FC2F5882526544114AE4701F72E5141EC51B8BE25265441713D0A87F92E5141295C8F22242654411F85EB61FD2E5141AE47E19A25265441F6285C4FF62E5141AE47E12A3126544100000080F32E51415C8FC2F5302654410AD7A310EA2E51415C8FC2F52F265441D7A3701DE62E51411F85EB312C265441D7A370CDE32E514185EB51F82826544185EB51C8E42E5141D7A3706D27265441C3F5286CEC2E5141B81E85EB27265441A4703DDAF32E5141D7A370CD222654411200000085EB5198B02E51418FC2F5F86326544114AE47C1AF2E514114AE47C1612654410AD7A340B62E5141EC51B83E5D26544100000080C12E51417B14AEE75C26544152B81E65C42E5141A4703DAA63265441AE47E13AC62E51417B14AE0767265441295C8F22C92E51411F85EB9166265441E17A147ECD2E5141295C8FF267265441EC51B89ED12E5141AE47E1BA6526544148E17A24D42E5141B81E85EB5F265441D7A370EDD92E51413D0AD7E35A26544166666606DD2E514148E17A545E265441E17A14DECE2E5141D7A3703D6A2654413D0AD7D3C82E514152B81E256D2654411F85EB11C72E514152B81EC56B265441D7A3707DC12E51413333337361265441C3F5289CBA2E514185EB51386126544185EB5198B02E51418FC2F5F8632654410B000000B81E857B2C2F5141F6285CEF9625544148E17AD42C2F5141AE47E1CA95255441295C8F422E2F5141666666A6942554418FC2F5E82F2F5141E17A149E94255441EC51B84E312F5141AE47E1EA91255441AE47E14A382F5141D7A3707D8E255441EC51B82E392F5141713D0AD790255441AE47E15A322F514100000010952554411F85EB11322F5141E17A147E98255441AE47E16A2E2F5141A4703D9A99255441B81E857B2C2F5141F6285CEF96255441080000000AD7A3600B2F5141E17A141EE0255441EC51B8EE072F51410AD7A330DF255441666666B60B2F51418FC2F528D9255441B81E858B0F2F5141D7A3709DD725544166666606142F5141EC51B84ED9255441713D0A77162F514148E17AE4DC2554415C8FC2C5142F51413D0AD7B3DE2554410AD7A3600B2F5141E17A141EE02554410800000000000090E42C5141C3F528BC4A285441D7A3702DE32C51417B14AEE7482854410AD7A390E22C514185EB5118482854417B14AE47E52C5141AE47E1CA45285441F6285C6FE72C5141E17A14DE47285441B81E85FBE72C514152B81E6549285441CDCCCC3CE72C51413D0AD7234A28544100000090E42C5141C3F528BC4A28544105000000F6285CAFCD2C5141713D0A9749285441CDCCCC3CCE2C5141EC51B83E47285441AE47E17AD12C5141EC51B83E47285441295C8F22D12C514114AE47014A285441F6285CAFCD2C5141713D0A97492854410500000066666696DA2C51411F85EBC1CF285441D7A370ADD72C51419A999919CF2854417B14AED7D72C51415C8FC265CD285441C3F5286CDA2C5141A4703DBACD28544166666696DA2C51411F85EBC1CF28544108000000295C8FC2932C5141A4703DBACD28544185EB51D88F2C5141295C8FF2C9285441C3F528DC8F2C5141EC51B82EC8285441B81E853B912C51418FC2F588C628544185EB5198932C51410AD7A350C62854415C8FC245972C5141A4703DAAC928544114AE4781962C5141295C8F22CC285441295C8FC2932C5141A4703DBACD285441060000008FC2F5F8DA2C5141EC51B83ECC285441E17A148ED82C514185EB51F8CB2854413D0AD763D82C51411F85EBA1C7285441A4703D7ADA2C5141713D0A07C728544152B81E85DB2C5141A4703DAAC92854418FC2F5F8DA2C5141EC51B83ECC2854410A0000003D0AD7738B2C5141B81E853BC32854415C8FC2D58A2C5141713D0A47C3285441C3F528BC892C51419A9999E9C1285441C3F528BC892C5141F6285C9FBF285441C3F528EC8A2C5141D7A3704DBE2854410AD7A3708A2C5141D7A3701DBD2854413D0AD7A38C2C5141A4703D4ABD28544152B81E858D2C51417B14AEA7BE285441C3F528AC8B2C5141F6285C5FC02854413D0AD7738B2C5141B81E853BC3285441070000000AD7A300FE2C5141AE47E15A7C285441AE47E11AFF2C51415C8FC2357B285441713D0A97012D5141666666467D28544114AE4751012D5141000000907D2854410AD7A380FF2C5141713D0AB77F2854410AD7A390FD2C51413D0AD7137E2854410AD7A300FE2C5141AE47E15A7C2854410D00000085EB5158CE2C5141D7A370DDB928544114AE4741CC2C51419A9999D9B8285441F6285CBFCB2C5141D7A3704DB5285441F6285C2FCD2C51415C8FC265AF285441B81E85BBCE2C514114AE4741AE285441EC51B8BED42C514166666636B3285441295C8FF2D42C5141C3F5286CB42854413D0AD7C3D42C51419A9999C9B5285441AE47E19AD32C514185EB5168B8285441713D0A77D22C51418FC2F598B8285441295C8F42D12C514185EB5168B8285441E17A14DECF2C5141B81E855BB928544185EB5158CE2C5141D7A370DDB9285441450000003D0AD7A3D12C5141D7A370CD9928544166666636D22C51413D0AD7939B28544100000020D52C51413D0AD7A39B285441295C8FB2D52C514185EB51E89C285441EC51B8AED42C5141EC51B8CE9E2854411F85EB91D52C5141666666E6A02854411F85EB91D52C5141F6285C6FA3285441C3F5289CD82C51411F85EB31A4285441000000B0D92C5141E17A14AEA72854417B14AE47D72C5141F6285CAFAC285441333333E3D52C514114AE4751AD28544133333343D42C5141D7A370ADA92854410AD7A3C0CF2C5141D7A370ADA92854411F85EBC1CE2C5141F6285C6FAB2854415C8FC275CD2C5141D7A370BDAB28544185EB51C8CA2C51417B14AE77A628544152B81E65CB2C5141F6285CCFA0285441295C8F22CA2C514185EB51F89F285441666666B6C92C5141EC51B8FEA1285441EC51B8BEC42C514185EB5158A728544148E17A44C12C5141D7A370BDA5285441EC51B80EBE2C51410AD7A3B0A728544152B81E25BC2C51411F85EB01A628544152B81EC5BA2C5141EC51B8FEA728544152B81E65B92C5141EC51B84EA728544185EB5178B92C5141713D0A17A52854418FC2F598B72C51413D0AD753A4285441295C8F42B62C514166666696A5285441AE47E14AB72C51419A9999D9A62854411F85EB71B72C51413D0AD7C3A7285441713D0A87B62C51418FC2F5B8A828544185EB5178B32C51410AD7A300A728544148E17A54B12C5141E17A143EA52854411F85EBD1AC2C5141666666E6A42854415C8FC2E5AC2C51419A9999D9A6285441000000C0AB2C51410AD7A360A828544166666606AB2C5141E17A147EA8285441295C8F42AA2C514152B81EB5A4285441C3F528ECA22C51410AD7A370A4285441F6285C9FA12C514185EB5148A52854418FC2F5989F2C51410AD7A370A42854417B14AE679F2C514152B81E45A1285441F6285C4F9C2C5141E17A148E9E285441D7A370ED9B2C51413D0AD7139B285441333333839A2C5141000000509A285441F6285CAF972C5141000000509A2854413D0AD7C3952C5141F6285C3F96285441F6285C2F9B2C5141AE47E1BA96285441D7A370AD9E2C51413333333394285441AE47E1EA9E2C5141333333E395285441C3F5281C9D2C5141F6285CEF97285441295C8FC29F2C5141CDCCCC2C98285441AE47E1DAA32C5141713D0AD79328544100000050A82C51415C8FC2F5932854417B14AE27A92C51411F85EB01962854410AD7A390AB2C51410AD7A320962854413D0AD7E3AC2C5141000000E0922854413D0AD793BA2C5141AE47E1DA8F28544100000010BE2C51411F85EBF191285441AE47E19AC02C5141EC51B8EE9428544148E17A64BF2C5141AE47E10A99285441CDCCCCBCC12C51418FC2F5289D285441F6285CAFCB2C51419A9999B9982854410AD7A300CC2C5141333333D39628544152B81ED5C82C5141AE47E18A942854418FC2F5C8C92C5141713D0A5793285441AE47E1FACE2C5141EC51B89E952854419A9999A9CE2C5141C3F5285C992854413D0AD7A3D12C5141D7A370CD992854410C00000052B81EC5C42C5141C3F5287C9A2754413D0AD7F3C32C5141333333439B275441000000A0C22C5141B81E858B9C27544114AE4761C22C51417B14AEC79C2754415C8FC2B5BE2C5141B81E85FB9827544100000030C12C5141F6285CAF95275441AE47E16AC22C51413D0AD79395275441EC51B8AEC32C514114AE47619627544133333333C42C5141B81E851B98275441EC51B8EEC32C514100000000992754417B14AE17C52C5141E17A142E9A27544152B81EC5C42C5141C3F5287C9A27544107000000E17A14DEBD2C5141CDCCCC7CAA2754411F85EB61BD2C51418FC2F578AA275441713D0A77BD2C514152B81E05A72754419A9999A9C12C5141295C8F32A72754410AD7A3A0C12C514185EB5198AA275441713D0A17C12C514148E17A94AA275441E17A14DEBD2C5141CDCCCC7CAA275441130000008FC2F5688C2C51415C8FC2E5E1275441713D0A47812C5141EC51B80EDE275441295C8FE2802C51410AD7A330D5275441B81E853B842C51417B14AE17D5275441333333D3842C51419A999989CB275441F6285CCF852C5141D7A370FDC727544152B81E258A2C5141295C8FA2CB275441666666368C2C5141AE47E16AD327544185EB51488E2C5141CDCCCCECD2275441A4703DCA8D2C5141666666E6CD275441AE47E16A922C5141D7A3705DD0275441E17A144E932C51419A999999D4275441666666C68E2C5141E17A144ED4275441B81E85DB8F2C51413D0AD753D9275441AE47E16A922C514166666686D9275441713D0A67932C514114AE47F1DE275441713D0A27902C514148E17AA4E5275441A4703D7A8E2C5141B81E853BE62754418FC2F5688C2C51415C8FC2E5E1275441070000003D0AD7D3CE2C51413D0AD743EE2754418FC2F528D02C51413D0AD793F12754413D0AD7E3CF2C5141EC51B8EEF2275441CDCCCC4CCE2C51411F85EB51F3275441A4703D1ACD2C51413D0AD713F22754415C8FC215CC2C51410AD7A350EF2754413D0AD7D3CE2C51413D0AD743EE2754410B000000EC51B8CED82C51415C8FC275EF2754415C8FC235D72C51418FC2F518EF275441E17A141ED72C514114AE4761ED2754411F85EB91D42C51418FC2F518EE2754417B14AE87D32C51419A999969EA275441295C8FA2D42C514185EB5128E9275441713D0AB7D52C514152B81EE5E8275441CDCCCC0CD82C5141D7A370BDE927544152B81EE5D82C51419A999929EC2754411F85EB11D92C5141713D0A17EE275441EC51B8CED82C51415C8FC275EF275441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984559 - 984543
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000020000004100000012DA570FC0A55041D2589D1DB8065541F71C3BAEC4A55041AFFA4E68B80655414692F7AFC7A55041A7EDE998B80655416F002CF8CEA550413532A10EB906554124282305D0A55041FB0C7E0AAF065541AC4D8A52D2A550410796841799065541D4F53E49D4A55041DD0AE1DA87065541F23CDF21D4A5504120F16BD687065541E9FB5D2BD4A55041C1D4E67B87065541341AD0ECC3A550411D50D33F85065541B8231ACAC3A55041C5E70C3B850655416A1791F2C3A55041296FF07D830655411EAC79F6C3A550418B0BF252830655417971A807BFA55041114AC6BD820655411578213AB9A55041AAC14B0E82065541AA83191AB8A550410BB6532E8306554197883DA0B7A550417F9D9F8F850655419F4586A9B7A55041D11DA9AD85065541ACD69341BAA550414D1315128E0655417915A591C8A55041E010AC5D8F065541E656C3E3C9A55041FFFA78848F0655411B560F21CDA5504138A7ACAD8F06554168947DA7C9A5504177CD06F1AF065541E1849B42CDA55041E7CD7CE78F06554185EC5B65CDA550410CB479EB8F06554128F43A6CC9A55041B31E8409B2065541BEA3C40FA1A550419D76610AAE065541E223DE3BA1A550419C41D30AAC065541A8ABFFB1A4A55041740C03188A06554152EADBB8A4A5504112DAEE118A065541C6D01C2AA4A550410139FC0B8A0655411A3C862AA4A55041ED5B35078A065541DB6C0960AAA55041F034990F85065541044C9B65AAA550416A8FC70F85065541C79BE1C3B5A55041D69E636E85065541955A96C2B5A550419B7F4764850655412102AF3DB5A55041B717E45581065541F8DC4F578BA5504119C4682C760655410F37753389A55041B532A59977065541F3712F4F88A550419AE21A4EB50655410F37753389A55041F5A5D2FFB60655415A80D7DBACA55041E30B07E8B80655414EDFA328AEA5504100EF3261BA065541AA3CB11DAEA5504154153F57BA065541F79AE02CB1A550416679D4D4BD065541DC600B79A9A550414230DC400E075541BF6A7E10AEA550410BDA1C74110755413756C137B4A55041FC92284907075541E4EFA437B4A5504106BA974507075541BDC6AEEDB3A5504155B441FCFD065541AD85B2EBB3A550419FF670BCFD0655419F3CCD23B3A550418F5D39A3E4065541E247A97DB3A55041DAD2D922CD065541FB24D4EAB8A55041615C8329CC0655416D81503FB7A55041589E91C0E70655410AE44A8BBDA55041AE2015D1E30655410CD2E5A5BDA550417622F7DFC60655414DA59D7BBEA55041FE2EA8DDC1065541F4F4BA38B8A550415592ABC9C40655418CAE7DF1B7A55041D885FACBC90655414A8EE6C4B3A550413FCC3713CA065541EBC84FFDB3A5504112E22710B806554167F8C7FFB3A55041BB3FA65AB70655415B5FE60AB4A550416DFC595BB706554112DA570FC0A55041D2589D1DB80655410400000059BA0671B1A5504148F8A219BE065541E9E4F983B1A550414EF51C2FBE06554143FAF580AFA550413A35404AD006554159BA0671B1A5504148F8A219BE065541
+</a>
+
+<b>
+01060000001200000001030000000100000033000000E7608D2561A55041ADC66F500F075541354F24CA5FA55041307794240D07554124EDC81A3EA55041168FC3750A0755410A05F86B3BA550415B8B817F04075541B62069B33EA5504119ACD748E7065541B62069B33EA550414C02EFA5CD0655416F52E8503CA55041F48DC796B7065541B62069B33EA55041575A27FEB606554175BB497D40A55041CBF3643CDF0655416F52E8503CA55041F63D919A03075541E487A9E43FA550412A0E33F80807554173A53B2746A550412A0E33F8080755414F37F57862A550417BDCB35A0B075541185145C562A55041F990E4700D075541E63773E88BA550416EC6A504110755417CFBABD7A5A55041BF94266713075541737C3C55A7A550410AFA459D11075541B60343AAAFA550419FCF5BAEBE065541B35CD980ACA55041842EFC4EBB065541B0B56F57A9A55041FD5D4C9FB906554182233B258AA55041CB6F6AFDB80655411F4777E188A55041FD5D4C9FB9065541FA528B7588A5504178340619BB0655417F7CD1FB86A55041842EFC4EBB065541299A03EE85A55041D8696033B906554140E7853083A55041D8696033B906554158E17B6683A55041389FBA4DB706554104A6178285A550411EABCEE1B60655418C76C73187A550418CDA1E32B5065541C964A9D387A55041849E8DA5770655418C76C73187A55041B3E5051E75065541D1C50FFD5FA55041241A0F286A065541FC2DCBFC41A55041C6C1254964065541DBF7ACEC3EA55041C826B9417C0655413D1392533DA550417352D275B00655414D29D2CB3AA5504106BA1565AF0655417DF207FE3DA550418359369C6B065541DF8AC40E3FA5504176CC6F26660655418B02F7C940A55041B72E0E2764065541EFFBF91B3CA5504103E6C805630655417B14AE173CA550418FC2F5F8640655419A9999A939A55041E17A14EE6A065541B81E853B39A550410AD7A37075065541AE47E1AA36A55041CDCCCC0CB406554152B81E9536A55041CDCCCC2CB6065541E17A141E33A55041EC51B82E0A0755410000005034A5504148E17A840B0755416666666644A550410AD7A3A00C0755418FC2F5385AA550411F85EB210E075541713D0A375DA5504148E17A340F075541E7608D2561A55041ADC66F500F0755410103000000010000000400000008C55C1D3CA550417844C5646206554183150A483CA55041E5AA66CF61065541EC51B81E3CA55041713D0AC76106554108C55C1D3CA550417844C56462065541010300000001000000040000005D8D8B6A85A55041BED241F372065541E47D41AC6AA55041DE43FAAE6B0655417EDE984D71A55041C74E34966D0655415D8D8B6A85A55041BED241F37206554101030000000100000005000000EAFF24B4A9A5504124CF7BA07C0655410B3AAB5FB4A55041A2DEE3787F0655418FAA4712B6A55041AB55FF007F06554100000090B4A550410AD7A3407F065541EAFF24B4A9A5504124CF7BA07C0655410103000000010000000500000001DF2966B8A55041789F9D5C7E0655410B412FB2B8A5504130F7A4477E065541CC7EBC1FB9A55041E4B857F480065541713D0AD7B8A55041CDCCCC2C7E06554101DF2966B8A55041789F9D5C7E06554101030000000100000005000000CFD9570FC0A55041CB589D1DB806554109100BF6C5A550419C44AFB4B8065541F863EE9CCAA55041D51735C8B8065541FA1C3BAEC4A55041ADFA4E68B8065541CFD9570FC0A55041CB589D1DB806554101030000000100000005000000BCC6AEEDB3A5504156B441FCFD065541DFEFA437B4A5504105BA974507075541E17A147EB4A550411F85EBD106075541E897B6E7B3A55041F089613CFD065541BCC6AEEDB3A5504156B441FCFD065541010300000001000000040000005980D7DBACA55041E50B07E8B8065541FECA9E84ACA5504183DC5CE3B806554152DFA328AEA55041FFEE3261BA0655415980D7DBACA55041E50B07E8B806554101030000000100000006000000B84DF564B4A55041D525FB62850655410E6C91F0B5A550417DA1368285065541AEC766EAB5A5504167A26F6585065541935A96C2B5A550419C7F476485065541C59BE1C3B5A55041DB9E636E85065541B84DF564B4A55041D525FB6285065541010300000001000000070000009A4586A9B7A55041D31DA9AD850655418D3618A7B7A55041CB1D6EBB8506554164E2BD2FBAA55041057226148E06554170930B7BCBA5504199BA35B38F0655417715A591C8A55041DD10AC5D8F065541B0D69341BAA550414A1315128E0655419A4586A9B7A55041D31DA9AD8506554101030000000100000004000000BFA3C40FA1A550419B76610AAE0655419BB2CE27A1A55041D8D8C20CAE065541E723DE3BA1A550419D41D30AAC065541BFA3C40FA1A550419B76610AAE0655410103000000010000000400000065F8C7FFB3A55041B63FA65AB7065541E8C84FFDB3A5504115E22710B80655415F5FE60AB4A5504169FC595BB706554165F8C7FFB3A55041B63FA65AB7065541010300000001000000060000001BAC79F6C3A550418B0BF252830655416A1791F2C3A550412E6FF07D830655418DEB2500C4A55041BC721A7F83065541ECD70406C4A55041F471C832830655417871A807BFA550410D4AC6BD820655411BAC79F6C3A550418B0BF25283065541010300000001000000040000005BBA0671B1A550414DF8A219BE0655413FFAF580AFA550413935404AD0065541E7E4F983B1A5504152F51C2FBE0655415BBA0671B1A550414DF8A219BE065541010300000001000000050000002CF43A6CC9A55041B21E8409B206554180EC5B65CDA5504107B479EB8F065541DF849B42CDA55041E8CD7CE78F065541BA6B1E6BC9A55041EEF16709B20655412CF43A6CC9A55041B21E8409B20655410103000000010000000B000000E6FB5D2BD4A55041BFD4E67B87065541F43CDF21D4A550411CF16BD687065541D4F53E49D4A55041DE0AE1DA87065541AA4D8A52D2A5504109968417990655412EB6A1FDCEA55041555C94DAB8065541E5B48A0DCFA550418F21D7DAB8065541FCDEE639D3A550414C050BCE9106554179C6256BD4A550410C9C245F87065541A3302AF0C3A55041919C022585065541321AD0ECC3A550411D50D33F85065541E6FB5D2BD4A55041BFD4E67B8706554101030000000100000006000000699DAFEAA7A55041C178B99214075541A8DF075984A55041C20F520812075541865B5BADABA550414AC4253E1507554195DE56C4ABA5504112C02019150755415C593BE4A7A5504135DDCFCC14075541699DAFEAA7A55041C178B9921407554101030000000100000006000000C8D01C2AA4A550410339FC0B8A065541B94ABDB7A9A550411F3E38478A06554129D4688AAAA55041D8D7F91085065541DA6C0960AAA55041F034990F850655411E3C862AA4A55041ED5B35078A065541C8D01C2AA4A550410339FC0B8A065541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2905824 - 2963546
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000039000000FE36CF70195751415B8B12A1743B5441B59576481E5751413245C91C763B544106B7DFB324575141EF5A2C14783B54418D01CFAD26575141BCFD4D9E783B5441B284FF38325751419633368D7A3B5441E744DD223D5751417C7DDEA47B3B5441E15F3AEE43575141414781AF7B3B54411CBB31384B575141D1BF175D7B3B54415C6BC14A535751415962D0867A3B5441CB9DAF0C5C575141A8B79112793B54419305337764575141B2BFEAAA763B54414CABEE246A575141BD07539A743B54419C985C617257514199648103713B5441BFEF1C6F7857514189A348116E3B5441153D78907E5751418B9F470A6B3B54414BE369FD82575141BC32AA18693B5441683F625881575141D272D2D3613B5441E824378F80575141BF1F2A865E3B54418FFF996F8057514195A3838D5E3B54419C2F1BCF845751412E92F4B95C3B54418CA0B0EA8F575141491F524C593B5441542F850896575141E754B94D573B5441293BD05A9A575141353144C6553B544197883C6D985751417B1FE6DC4D3B5441D5EDAD9096575141FF72F916443B5441E4E775D5955751410B731E3B413B54410359576F9557514163552BB73A3B5441F3E13D1A95575141DDA2BCED353B5441940C4B0F95575141E5559CCB313B5441819A2EE7945751418D67D6E5283B54419111483C95575141F14908861F3B5441821780F7955751419C1ADC3C0E3B5441F25E8F2A9657514186AF7CA6093B5441F25E8F2A96575141E485CF63073B54414C3CF0DF8E575141BA4738BE063B544194525A1588575141D6752C9F063B5441BD9B3A8182575141665CF103063B544176CBDF517C5751412F9F9E2A053B54412ABD595178575141323E3413043B5441F83D32497557514134DDC9FB023B54419B1CA4F26B57514134DDC9FB023B54412A1EBEAC6E5751411750D4D1143B5441348F55FE73575141DDC0B26E283B5441A37709A265575141B0D25AA02A3B5441C7FA26FE5B57514162F6CF272C3B5441F689233D4B57514174678C9D2E3B54419AB0A63347575141411EA43F2F3B54414884A4363C575141437934CF303B5441E8B3AE583C575141ED137963383B54418C600A8B3D5751413A4F5F6B453B5441917A5F973E57514181C34A7A503B5441BE42A89A3F57514120A291CF603B54410081235626575141EB584B3E603B5441F278CB4D1B575141EF3C45D05F3B5441FF279D731A575141BB32AA18693B544155B279161A575141E873A64F6E3B5441FE36CF70195751415B8B12A1743B5441
+</a>
+
+<b>
+01060000000100000001030000000100000052000000E17A14AE3E5751410AD7A340503B54418FC2F5983F575141EC51B89E603B54416EC2A0973F57514102BAB79E603B5441BF42A89A3F5751411FA291CF603B5441D9080E65365751412CC49E9A603B5441B81E85CB2F5751417B14AE97603B5441849235A42657514168350C40603B54410481235626575141EF584B3E603B54413CF8F56923575141B20D2621603B54413DAB7F4D1B575141EAE07ED35F3B544104289D731A575141B932AA18693B544153B279161A575141E873A64F6E3B54410037CF70195751415D8B12A1743B5441B49576481E5751412E45C91C763B54410AB7DFB324575141F25A2C14783B54419001CFAD26575141BAFD4D9E783B5441B084FF38325751419933368D7A3B5441EA44DD223D575141797DDEA47B3B5441E35F3AEE435751413D4781AF7B3B544119BB31384B575141D0BF175D7B3B54415A6BC14A535751415962D0867A3B5441C89DAF0C5C575141A3B79112793B54419105337764575141B2BFEAAA763B54414FABEE246A575141BA07539A743B54419D985C61725751419A648103713B5441BAEF1C6F7857514188A348116E3B5441133D78907E575141879F470A6B3B544149E369FD82575141B932AA18693B5441653F625881575141D472D2D3613B5441E524378F80575141C41F2A865E3B544190FF996F8057514199A3838D5E3B544170334D3381575141D2CEC73B5E3B5441CDCCCC2C81575141C3F5281C5E3B5441EF92B2A4825751412AC580A15D3B54419C2F1BCF845751412E92F4B95C3B544187A0B0EA8F575141471F524C593B5441542F850896575141EB54B94D573B5441EDB03B599A5751414C56D3C6553B54414F28BA0A9A5751414CFEA27D543B544192883C6D98575141791FE6DC4D3B5441A70B224A98575141A10F9B244D3B54410AD7A34098575141CDCCCCFC4C3B54415B97F23696575141BA6634B8423B5441E4E775D59557514108731E3B413B54410259576F9557514164552BB73A3B5441570B684B95575141375DB5B1383B54415C8FC205955751411F85EB61353B544191EC49FA9457514105C8D7222D3B54417D9A2EE7945751418B67D6E5283B5441A13CA3F294575141CD24CAA2273B54411F85EBF194575141EC51B81E273B5441978B702B95575141563FF960213B54419211483C95575141F14908861F3B5441E8798F53955751418690CD5F1D3B5441A4703DAA955751418FC2F5B8143B5441EE5E8F2A965751417CC5917F083B5441EE5E8F2A96575141E585CF63073B5441483CF0DF8E575141BA4738BE063B544192525A1588575141D5752C9F063B5441BD9B3A8182575141645CF103063B544177CBDF517C575141329F9E2A053B54412BBD595178575141363E3413043B5441F63D32497557514139DDC9FB023B5441A01CA4F26B57514139DDC9FB023B54413121A8FC6B5751419C374C3D033B5441333333036C575141CDCCCC3C033B5441E17A143E6D57514114AE47010A3B544114AE47B16D575141333333630E3B5441333333936E57514114AE4791133B5441D8DEDB956F5751419C06722D183B5441A707778470575141142D4E9D1B3B54418FC2F528745751419A999959283B5441E92A94FA735751410D9FD960283B5441338F55FE73575141DDC0B26E283B5441A37709A265575141B4D25AA02A3B5441CBFA26FE5B57514162F6CF272C3B5441F389233D4B57514177678C9D2E3B544199B0A63347575141421EA43F2F3B54413970FA5F3C575141E16655C9303B5441602D995B3C575141035B3983383B544114AE47713D57514133333313443B5441E17A14AE3E5751410AD7A340503B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2905824 - 3502003
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000039000000FE36CF70195751415B8B12A1743B5441B59576481E5751413245C91C763B544106B7DFB324575141EF5A2C14783B54418D01CFAD26575141BCFD4D9E783B5441B284FF38325751419633368D7A3B5441E744DD223D5751417C7DDEA47B3B5441E15F3AEE43575141414781AF7B3B54411CBB31384B575141D1BF175D7B3B54415C6BC14A535751415962D0867A3B5441CB9DAF0C5C575141A8B79112793B54419305337764575141B2BFEAAA763B54414CABEE246A575141BD07539A743B54419C985C617257514199648103713B5441BFEF1C6F7857514189A348116E3B5441153D78907E5751418B9F470A6B3B54414BE369FD82575141BC32AA18693B5441683F625881575141D272D2D3613B5441E824378F80575141BF1F2A865E3B54418FFF996F8057514195A3838D5E3B54419C2F1BCF845751412E92F4B95C3B54418CA0B0EA8F575141491F524C593B5441542F850896575141E754B94D573B5441293BD05A9A575141353144C6553B544197883C6D985751417B1FE6DC4D3B5441D5EDAD9096575141FF72F916443B5441E4E775D5955751410B731E3B413B54410359576F9557514163552BB73A3B5441F3E13D1A95575141DDA2BCED353B5441940C4B0F95575141E5559CCB313B5441819A2EE7945751418D67D6E5283B54419111483C95575141F14908861F3B5441821780F7955751419C1ADC3C0E3B5441F25E8F2A9657514186AF7CA6093B5441F25E8F2A96575141E485CF63073B54414C3CF0DF8E575141BA4738BE063B544194525A1588575141D6752C9F063B5441BD9B3A8182575141665CF103063B544176CBDF517C5751412F9F9E2A053B54412ABD595178575141323E3413043B5441F83D32497557514134DDC9FB023B54419B1CA4F26B57514134DDC9FB023B54412A1EBEAC6E5751411750D4D1143B5441348F55FE73575141DDC0B26E283B5441A37709A265575141B0D25AA02A3B5441C7FA26FE5B57514162F6CF272C3B5441F689233D4B57514174678C9D2E3B54419AB0A63347575141411EA43F2F3B54414884A4363C575141437934CF303B5441E8B3AE583C575141ED137963383B54418C600A8B3D5751413A4F5F6B453B5441917A5F973E57514181C34A7A503B5441BE42A89A3F57514120A291CF603B54410081235626575141EB584B3E603B5441F278CB4D1B575141EF3C45D05F3B5441FF279D731A575141BB32AA18693B544155B279161A575141E873A64F6E3B5441FE36CF70195751415B8B12A1743B5441
+</a>
+
+<b>
+01060000000100000001030000000100000052000000E17A14AE3E5751410AD7A340503B54418FC2F5983F575141EC51B89E603B54416EC2A0973F57514102BAB79E603B5441BF42A89A3F5751411FA291CF603B5441D9080E65365751412CC49E9A603B5441B81E85CB2F5751417B14AE97603B5441849235A42657514168350C40603B54410481235626575141EF584B3E603B54413CF8F56923575141B20D2621603B54413DAB7F4D1B575141EAE07ED35F3B544104289D731A575141B932AA18693B544153B279161A575141E873A64F6E3B54410037CF70195751415D8B12A1743B5441B49576481E5751412E45C91C763B54410AB7DFB324575141F25A2C14783B54419001CFAD26575141BAFD4D9E783B5441B084FF38325751419933368D7A3B5441EA44DD223D575141797DDEA47B3B5441E35F3AEE435751413D4781AF7B3B544119BB31384B575141D0BF175D7B3B54415A6BC14A535751415962D0867A3B5441C89DAF0C5C575141A3B79112793B54419105337764575141B2BFEAAA763B54414FABEE246A575141BA07539A743B54419D985C61725751419A648103713B5441BAEF1C6F7857514188A348116E3B5441133D78907E575141879F470A6B3B544149E369FD82575141B932AA18693B5441653F625881575141D472D2D3613B5441E524378F80575141C41F2A865E3B544190FF996F8057514199A3838D5E3B544170334D3381575141D2CEC73B5E3B5441CDCCCC2C81575141C3F5281C5E3B5441EF92B2A4825751412AC580A15D3B54419C2F1BCF845751412E92F4B95C3B544187A0B0EA8F575141471F524C593B5441542F850896575141EB54B94D573B5441EDB03B599A5751414C56D3C6553B54414F28BA0A9A5751414CFEA27D543B544192883C6D98575141791FE6DC4D3B5441A70B224A98575141A10F9B244D3B54410AD7A34098575141CDCCCCFC4C3B54415B97F23696575141BA6634B8423B5441E4E775D59557514108731E3B413B54410259576F9557514164552BB73A3B5441570B684B95575141375DB5B1383B54415C8FC205955751411F85EB61353B544191EC49FA9457514105C8D7222D3B54417D9A2EE7945751418B67D6E5283B5441A13CA3F294575141CD24CAA2273B54411F85EBF194575141EC51B81E273B5441978B702B95575141563FF960213B54419211483C95575141F14908861F3B5441E8798F53955751418690CD5F1D3B5441A4703DAA955751418FC2F5B8143B5441EE5E8F2A965751417CC5917F083B5441EE5E8F2A96575141E585CF63073B5441483CF0DF8E575141BA4738BE063B544192525A1588575141D5752C9F063B5441BD9B3A8182575141645CF103063B544177CBDF517C575141329F9E2A053B54412BBD595178575141363E3413043B5441F63D32497557514139DDC9FB023B5441A01CA4F26B57514139DDC9FB023B54413121A8FC6B5751419C374C3D033B5441333333036C575141CDCCCC3C033B5441E17A143E6D57514114AE47010A3B544114AE47B16D575141333333630E3B5441333333936E57514114AE4791133B5441D8DEDB956F5751419C06722D183B5441A707778470575141142D4E9D1B3B54418FC2F528745751419A999959283B5441E92A94FA735751410D9FD960283B5441338F55FE73575141DDC0B26E283B5441A37709A265575141B4D25AA02A3B5441CBFA26FE5B57514162F6CF272C3B5441F389233D4B57514177678C9D2E3B544199B0A63347575141421EA43F2F3B54413970FA5F3C575141E16655C9303B5441602D995B3C575141035B3983383B544114AE47713D57514133333313443B5441E17A14AE3E5751410AD7A340503B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>453701 - 39094
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000001900000041813CB948B050410B4011B3D2D154418FC2F5C84BB05041C3F5285CD4D15441666666366CB05041B81E855BE7D1544152B81E557BB050417B14AE37F0D15441F6285C4F94B0504133333333FFD15441A4703DFA95B050417B14AE0700D254419A99996998B05041F6285CFFFAD154417B14AE779DB05041EC51B84EF3D1544148E17A14A2B05041F6285CFFEBD154410AD7A3B09CB050411F85EB61E9D1544185EB514897B05041E17A143EE6D15441EC51B8CE91B05041C3F528ECE2D154418FC2F5888DB050410AD7A3E0DFD15441E17A142E8AB050415C8FC245DDD154410AD7A34086B05041A4703D0ADAD15441AE47E12A81B05041B81E858BD5D15441000000607BB05041AE47E14AD0D154417B14AEA779B05041B81E85BBCED15441713D0A276EB05041CDCCCCDCC3D154417B14AE5768B05041333333A3BED15441A4703D6A64B05041713D0A77BBD15441666666C660B05041EC51B8BEB8D15441EC51B80E5CB05041000000B0B5D154414216A8C958B050411D2699C8B3D1544141813CB948B050410B4011B3D2D15441
+</a>
+
+<b>
+01060000000100000001030000000100000004000000CE18456F4CB050417E6EB38ECBD154416F3A1BBB48B05041FCEE77AFD2D154411F85EBC148B05041333333B3D2D15441CE18456F4CB050417E6EB38ECBD15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>587267 - 2974623
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000003C0000002730A45B6D4651418D43C35C0B6054413D0AD7236D465141B81E85AB0A6054414C54B2146D46514132480BB90A6054413BE42EC36C46514109A8EFFC096054415C8FC2456F465141295C8FC207605441F6285C0F7546514152B81EA500605441A4703D3A76465141E17A14BEFF5F54410AD7A3807C465141AE47E1DAFB5F5441EC51B89E7A4651413D0AD7D3F65F5441F6285CFF77465141B81E857BF45F544114AE477173465141713D0A57F05F544114AE476169465141D7A370CDEA5F5441000000C0714651415C8FC2E5D55F5441CDCCCC8C6B465141713D0A87D45F5441E17A14EE4C465141295C8F62CE5F5441C3F5282C4E465141666666F6C55F5441CDCCCC4C4246514148E17A44C45F5441713D0A472646514148E17A44C05F5441EC51B81E264651419A999929C15F5441D7A370DD2546514185EB51F8C25F54418FC2F518264651419A999979C65F5441E17A14DE26465141295C8F42D25F5441F6285CFF26465141C3F5282CD75F544185EB51D8264651410AD7A370DC5F544148E17A7426465141000000C0E05F544114AE47C125465141F6285CFFE55F544166666656224651413D0AD733FC5F54413D0AD7F3214651418FC2F578006054418FC2F5582246514185EB51680160544148E17A54234651410AD7A34002605441333333F33146514114AE47610760544114AE47914D465141295C8FE21060544114AE47D15246514185EB51C81260544100000060574651410AD7A3C0146054413D0AD77359465141713D0AD715605441D7A3701D5A4651410AD7A34016605441E8F87C9B5B4651414449892217605441333333935B4651418FC2F528176054419A9999D95D465141B81E85BB18605441AE47E1DA5F465141CDCCCC6C1A6054417B14AE4763465141B81E858B1D6054417B14AE47684651418FC2F5F82260544114AE47B16C4651413D0AD7E327605441AE47E17A714651419A9999892C6054411F85EB11764651417B14AED72F605441666666667A465141A4703D2A25605441295C8FC27A4651413D0AD753216054410AD7A3C079465141C3F5281C1E6054413D0AD703794651415C8FC2E51B605441713D0A6776465141E17A14AE186054410AD7A320754651419A9999A91560544185EB517876465141F6285C1F146054410AD7A3207546514114AE47611260544114AE475173465141AE47E10A126054415C8FC2B5714651410AD7A37011605441333333B36F46514114AE47A10F605441713D0A176E465141000000B00D60544170DDC97F6D46514189DC93CF0B60544108D6B8876D4651415AC27CC20B6054412730A45B6D4651418D43C35C0B605441
+</a>
+
+<b>
+0106000000010000000103000000010000001E0000001562A2266D4651419D4665B40A605441D2BC471E6B465141461EE55C0C60544172D021ED68465141001613050F605441D97C0000674651410E382B6A106054410FE278295F46514161837AFF146054413205A32A5C465141C0D75FAC16605441E6F8599B5B465141C327982E176054419A9999D95D465141B81E85BB18605441AE47E1DA5F465141CDCCCC6C1A6054417B14AE4763465141B81E858B1D6054417B14AE47684651418FC2F5F82260544114AE47B16C4651413D0AD7E327605441AE47E17A714651419A9999892C6054411F85EB11764651417B14AED72F605441666666667A465141A4703D2A25605441295C8FC27A4651413D0AD753216054410AD7A3C079465141C3F5281C1E6054413D0AD703794651415C8FC2E51B605441713D0A6776465141E17A14AE186054410AD7A320754651419A9999A91560544185EB517876465141F6285C1F146054410AD7A3207546514114AE47611260544114AE475173465141AE47E10A126054415C8FC2B5714651410AD7A37011605441333333B36F46514114AE47A10F605441713D0A176E465141000000B00D6054416FDDC97F6D4651418CDC93CF0B6054410AD6B8876D4651415EC27CC20B6054412B30A45B6D4651418C43C35C0B6054411562A2266D4651419D4665B40A605441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>587267 - 3653714
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000003C0000002730A45B6D4651418D43C35C0B6054413D0AD7236D465141B81E85AB0A6054414C54B2146D46514132480BB90A6054413BE42EC36C46514109A8EFFC096054415C8FC2456F465141295C8FC207605441F6285C0F7546514152B81EA500605441A4703D3A76465141E17A14BEFF5F54410AD7A3807C465141AE47E1DAFB5F5441EC51B89E7A4651413D0AD7D3F65F5441F6285CFF77465141B81E857BF45F544114AE477173465141713D0A57F05F544114AE476169465141D7A370CDEA5F5441000000C0714651415C8FC2E5D55F5441CDCCCC8C6B465141713D0A87D45F5441E17A14EE4C465141295C8F62CE5F5441C3F5282C4E465141666666F6C55F5441CDCCCC4C4246514148E17A44C45F5441713D0A472646514148E17A44C05F5441EC51B81E264651419A999929C15F5441D7A370DD2546514185EB51F8C25F54418FC2F518264651419A999979C65F5441E17A14DE26465141295C8F42D25F5441F6285CFF26465141C3F5282CD75F544185EB51D8264651410AD7A370DC5F544148E17A7426465141000000C0E05F544114AE47C125465141F6285CFFE55F544166666656224651413D0AD733FC5F54413D0AD7F3214651418FC2F578006054418FC2F5582246514185EB51680160544148E17A54234651410AD7A34002605441333333F33146514114AE47610760544114AE47914D465141295C8FE21060544114AE47D15246514185EB51C81260544100000060574651410AD7A3C0146054413D0AD77359465141713D0AD715605441D7A3701D5A4651410AD7A34016605441E8F87C9B5B4651414449892217605441333333935B4651418FC2F528176054419A9999D95D465141B81E85BB18605441AE47E1DA5F465141CDCCCC6C1A6054417B14AE4763465141B81E858B1D6054417B14AE47684651418FC2F5F82260544114AE47B16C4651413D0AD7E327605441AE47E17A714651419A9999892C6054411F85EB11764651417B14AED72F605441666666667A465141A4703D2A25605441295C8FC27A4651413D0AD753216054410AD7A3C079465141C3F5281C1E6054413D0AD703794651415C8FC2E51B605441713D0A6776465141E17A14AE186054410AD7A320754651419A9999A91560544185EB517876465141F6285C1F146054410AD7A3207546514114AE47611260544114AE475173465141AE47E10A126054415C8FC2B5714651410AD7A37011605441333333B36F46514114AE47A10F605441713D0A176E465141000000B00D60544170DDC97F6D46514189DC93CF0B60544108D6B8876D4651415AC27CC20B6054412730A45B6D4651418D43C35C0B605441
+</a>
+
+<b>
+0106000000010000000103000000010000001E0000001562A2266D4651419D4665B40A605441D2BC471E6B465141461EE55C0C60544172D021ED68465141001613050F605441D97C0000674651410E382B6A106054410FE278295F46514161837AFF146054413205A32A5C465141C0D75FAC16605441E6F8599B5B465141C327982E176054419A9999D95D465141B81E85BB18605441AE47E1DA5F465141CDCCCC6C1A6054417B14AE4763465141B81E858B1D6054417B14AE47684651418FC2F5F82260544114AE47B16C4651413D0AD7E327605441AE47E17A714651419A9999892C6054411F85EB11764651417B14AED72F605441666666667A465141A4703D2A25605441295C8FC27A4651413D0AD753216054410AD7A3C079465141C3F5281C1E6054413D0AD703794651415C8FC2E51B605441713D0A6776465141E17A14AE186054410AD7A320754651419A9999A91560544185EB517876465141F6285C1F146054410AD7A3207546514114AE47611260544114AE475173465141AE47E10A126054415C8FC2B5714651410AD7A37011605441333333B36F46514114AE47A10F605441713D0A176E465141000000B00D6054416FDDC97F6D4651418CDC93CF0B6054410AD6B8876D4651415EC27CC20B6054412B30A45B6D4651418C43C35C0B6054411562A2266D4651419D4665B40A605441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>941559 - 1226634
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000001C000000AE47E1BAEC895141713D0A97768D5441AE47E1FAEC895141A4703D9A768D5441C3F528ECEC895141AE47E1DA628D5441EC51B8AEEC895141D7A3706D558D5441F6285C9FEC89514100000020528D5441666666D6EC895141E17A14DE498D54418FC2F5C8EC895141C3F5284C348D5441D7A3707DD4895141295C8F02368D5441D7A370CDC18951413D0AD753378D544185EB5138C58951418FC2F5C8398D5441E17A14DEC6895141295C8F423C8D5441CDCCCC7CC089514185EB51184B8D54411F85EB41B989514185EB51B8598D5441E17A143EB2895141AE47E1DA648D5441295C8FD2B089514148E17A64688D544166666676B0895141666666166B8D5441295C8F12B1895141C3F5288C6D8D5441C3F528FCB28951411F85EB81708D54410AD7A370B589514133333313738D544114AE47F1B7895141295C8F12758D54413D0AD763BB89514100000020778D54417EB1531EC38951418092F3CE7A8D5441D7A3704DC6895141333333537D8D544166666606C7895141713D0A177E8D54413D0AD723DA895141EC51B89E778D54417B14AE87DC895141000000D0768D5441CDCCCCBCE2895141A4703DBA768D5441AE47E1BAEC895141713D0A97768D5441
+</a>
+
+<b>
+0106000000010000000103000000010000001E0000007A44ABCFD9895141FF1E8AA2358D544131AD79E6D8895141F0BD8AFD358D544121B82458CA895141ABBEAB16388D54416FC79560C889514168BFCC2F3A8D5441B3045A82C08951416E66AA614E8D54414C13AA71BC895141CC09E315588D5441536121CEB6895141689C688F5F8D5441709BC8B0B5895141AACEC0615F8D5441E17A143EB2895141AE47E1DA648D5441295C8FD2B089514148E17A64688D544166666676B0895141666666166B8D5441295C8F12B1895141C3F5288C6D8D5441C3F528FCB28951411F85EB81708D54410AD7A370B589514133333313738D544114AE47F1B7895141295C8F12758D54413D0AD763BB89514100000020778D5441EC51B83EC38951419A9999197B8D5441D7A3704DC6895141333333537D8D544166666606C7895141713D0A177E8D54413D0AD723DA895141EC51B89E778D54417B14AE87DC895141000000D0768D5441CDCCCCBCE2895141A4703DBA768D5441AE47E1BAEC895141713D0A97768D5441AE47E1FAEC895141A4703D9A768D5441C3F528ECEC895141AE47E1DA628D5441EC51B8AEEC895141D7A3706D558D5441F6285C9FEC89514100000020528D5441666666D6EC895141E17A14DE498D54418FC2F5C8EC895141C3F5284C348D54417A44ABCFD9895141FF1E8AA2358D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>941559 - 3169640
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000001C000000AE47E1BAEC895141713D0A97768D5441AE47E1FAEC895141A4703D9A768D5441C3F528ECEC895141AE47E1DA628D5441EC51B8AEEC895141D7A3706D558D5441F6285C9FEC89514100000020528D5441666666D6EC895141E17A14DE498D54418FC2F5C8EC895141C3F5284C348D5441D7A3707DD4895141295C8F02368D5441D7A370CDC18951413D0AD753378D544185EB5138C58951418FC2F5C8398D5441E17A14DEC6895141295C8F423C8D5441CDCCCC7CC089514185EB51184B8D54411F85EB41B989514185EB51B8598D5441E17A143EB2895141AE47E1DA648D5441295C8FD2B089514148E17A64688D544166666676B0895141666666166B8D5441295C8F12B1895141C3F5288C6D8D5441C3F528FCB28951411F85EB81708D54410AD7A370B589514133333313738D544114AE47F1B7895141295C8F12758D54413D0AD763BB89514100000020778D54417EB1531EC38951418092F3CE7A8D5441D7A3704DC6895141333333537D8D544166666606C7895141713D0A177E8D54413D0AD723DA895141EC51B89E778D54417B14AE87DC895141000000D0768D5441CDCCCCBCE2895141A4703DBA768D5441AE47E1BAEC895141713D0A97768D5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F0000007A44ABCFD9895141FF1E8AA2358D5441D7A3707DD4895141295C8F02368D5441D7A370CDC18951413D0AD753378D544185EB5138C58951418FC2F5C8398D5441E17A14DEC6895141295C8F423C8D5441CDCCCC7CC089514185EB51184B8D5441A022E03EB9895141E9FB6ACC598D5441709BC8B0B5895141AACEC0615F8D5441536121CEB6895141689C688F5F8D54414C13AA71BC895141CC09E315588D5441B3045A82C08951416E66AA614E8D54416FC79560C889514168BFCC2F3A8D544121B82458CA895141ABBEAB16388D544131AD79E6D8895141F0BD8AFD358D54417A44ABCFD9895141FF1E8AA2358D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>941559 - 3419373
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000001C000000AE47E1BAEC895141713D0A97768D5441AE47E1FAEC895141A4703D9A768D5441C3F528ECEC895141AE47E1DA628D5441EC51B8AEEC895141D7A3706D558D5441F6285C9FEC89514100000020528D5441666666D6EC895141E17A14DE498D54418FC2F5C8EC895141C3F5284C348D5441D7A3707DD4895141295C8F02368D5441D7A370CDC18951413D0AD753378D544185EB5138C58951418FC2F5C8398D5441E17A14DEC6895141295C8F423C8D5441CDCCCC7CC089514185EB51184B8D54411F85EB41B989514185EB51B8598D5441E17A143EB2895141AE47E1DA648D5441295C8FD2B089514148E17A64688D544166666676B0895141666666166B8D5441295C8F12B1895141C3F5288C6D8D5441C3F528FCB28951411F85EB81708D54410AD7A370B589514133333313738D544114AE47F1B7895141295C8F12758D54413D0AD763BB89514100000020778D54417EB1531EC38951418092F3CE7A8D5441D7A3704DC6895141333333537D8D544166666606C7895141713D0A177E8D54413D0AD723DA895141EC51B89E778D54417B14AE87DC895141000000D0768D5441CDCCCCBCE2895141A4703DBA768D5441AE47E1BAEC895141713D0A97768D5441
+</a>
+
+<b>
+0106000000010000000103000000010000001E0000007A44ABCFD9895141FF1E8AA2358D544131AD79E6D8895141F0BD8AFD358D544121B82458CA895141ABBEAB16388D54416FC79560C889514168BFCC2F3A8D5441B3045A82C08951416E66AA614E8D54414C13AA71BC895141CC09E315588D5441536121CEB6895141689C688F5F8D5441709BC8B0B5895141AACEC0615F8D5441E17A143EB2895141AE47E1DA648D5441295C8FD2B089514148E17A64688D544166666676B0895141666666166B8D5441295C8F12B1895141C3F5288C6D8D5441C3F528FCB28951411F85EB81708D54410AD7A370B589514133333313738D544114AE47F1B7895141295C8F12758D54413D0AD763BB89514100000020778D5441EC51B83EC38951419A9999197B8D5441D7A3704DC6895141333333537D8D544166666606C7895141713D0A177E8D54413D0AD723DA895141EC51B89E778D54417B14AE87DC895141000000D0768D5441CDCCCCBCE2895141A4703DBA768D5441AE47E1BAEC895141713D0A97768D5441AE47E1FAEC895141A4703D9A768D5441C3F528ECEC895141AE47E1DA628D5441EC51B8AEEC895141D7A3706D558D5441F6285C9FEC89514100000020528D5441666666D6EC895141E17A14DE498D54418FC2F5C8EC895141C3F5284C348D54417A44ABCFD9895141FF1E8AA2358D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>941559 - 3430097
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000001C000000AE47E1BAEC895141713D0A97768D5441AE47E1FAEC895141A4703D9A768D5441C3F528ECEC895141AE47E1DA628D5441EC51B8AEEC895141D7A3706D558D5441F6285C9FEC89514100000020528D5441666666D6EC895141E17A14DE498D54418FC2F5C8EC895141C3F5284C348D5441D7A3707DD4895141295C8F02368D5441D7A370CDC18951413D0AD753378D544185EB5138C58951418FC2F5C8398D5441E17A14DEC6895141295C8F423C8D5441CDCCCC7CC089514185EB51184B8D54411F85EB41B989514185EB51B8598D5441E17A143EB2895141AE47E1DA648D5441295C8FD2B089514148E17A64688D544166666676B0895141666666166B8D5441295C8F12B1895141C3F5288C6D8D5441C3F528FCB28951411F85EB81708D54410AD7A370B589514133333313738D544114AE47F1B7895141295C8F12758D54413D0AD763BB89514100000020778D54417EB1531EC38951418092F3CE7A8D5441D7A3704DC6895141333333537D8D544166666606C7895141713D0A177E8D54413D0AD723DA895141EC51B89E778D54417B14AE87DC895141000000D0768D5441CDCCCCBCE2895141A4703DBA768D5441AE47E1BAEC895141713D0A97768D5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F0000007A44ABCFD9895141FF1E8AA2358D5441D7A3707DD4895141295C8F02368D5441D7A370CDC18951413D0AD753378D544185EB5138C58951418FC2F5C8398D5441E17A14DEC6895141295C8F423C8D5441CDCCCC7CC089514185EB51184B8D5441A022E03EB9895141E9FB6ACC598D5441709BC8B0B5895141AACEC0615F8D5441536121CEB6895141689C688F5F8D54414C13AA71BC895141CC09E315588D5441B3045A82C08951416E66AA614E8D54416FC79560C889514168BFCC2F3A8D544121B82458CA895141ABBEAB16388D544131AD79E6D8895141F0BD8AFD358D54417A44ABCFD9895141FF1E8AA2358D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>662142 - 59061
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A00000052B81E15EEB550417B14AEF70BD05441AE47E14AE8B5504185EB5158FACF5441295C8F52E6B5504114AE47A1F4CF544185EB51E8E4B5504185EB51D8F0CF544166666636B8B55041E17A145EFCCF54417B14AEB7A2B55041713D0A4706D05441333333838DB55041E17A14EE0DD0544185EB51B8A3B55041AE47E15A2FD05441EC51B81EF1B5504114AE47C115D0544152B81E15EEB550417B14AEF70BD05441
+</a>
+
+<b>
+010600000001000000010300000001000000350000007B14AEB7A2B55041713D0A4706D05441350F4B55A2B550416FC78B6A06D05441E0B4B1789EB55041D5B75ED307D05441289566CF93B550414C1844A80BD05441333333838DB55041E17A14EE0DD05441E643C0778EB55041FEBF285E0FD054414B56DAB8A3B5504128D60A592FD054412174C41DA4B55041F38A53392FD05441F708A717A7B55041C155553D2ED0544185CD2CCAA9B550416C4BAC582DD0544129DF1FA4ABB55041525A2FBC2CD05441BBEFD21CF1B550416538E8C115D054413B16F878EFB55041300A4E7210D0544107BC9C41EFB5504117CBEEBF0FD0544140BFE7F3EDB550416F5996920BD05441BFF65B00EDB55041890854AD08D054418FFDA6D7ECB550416FA86E3108D05441F5E8CD61ECB55041890614CB06D054415F3FEFD2EAB55041CE5D7F1102D05441C6BED933E9B5504181C42A1FFDCF5441DA3CE929E8B55041903AADF8F9CF54417987EDB5E7B55041562135A8F8CF54411A92CB87E7B55041A7BFBA24F8CF544130503ED1E6B55041835ECA10F6CF5441E33BB9B8E6B550416F77A8C9F5CF5441D31CCF88E6B550410343A83EF5CF5441F8FA5E35E6B550417BB93353F4CF5441C9F8F13BE5B55041449102B8F1CF5441813D160FE5B5504197990440F1CF5441E4F684E8E4B550419575DAD8F0CF54411A2F0B39E2B55041B7249689F1CF5441F720BAB1DDB55041ACAE8CB5F2CF54416777E13DD9B55041DB8F3BDAF3CF5441907B6BDBD7B55041751B9D35F4CF5441256EBE97D4B5504187C2790DF5CF5441BEDDA5C7D0B5504172C7CB08F6CF54416FFD6F2BCDB55041542025F7F6CF5441476E649AC8B55041CDBFBA24F8CF54410785F2DBC3B55041CEF5A95DF9CF544161244577C2B55041B28361B9F9CF544156513ED0BDB55041B3576EECFACF5441B8A0B419BCB550419880085EFBCF5441D3FC715BB8B55041775A1C56FCCF5441BD23C637B8B5504113C6375EFCCF5441A1E1188AB6B550415B050824FDCF5441CFEB43ECB2B55041771C77CEFECF54413AEA5A70AFB55041853E976900D0544127AC162CAEB5504132FF16FF00D054418088C033ABB55041C950B45D02D05441ACBBB485A7B550416BD33E1004D054416D5188BDA2B55041370E804406D05441F90DE2BBA2B55041E92C1A4506D054417B14AEB7A2B55041713D0A4706D05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>982008 - 2629167
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000020000000103000000010000004A000000EC51B8DEAABA50417B14AEC72A4054411429A850A9BA5041C39681172B40544148E17A24A7BA5041713D0A872B405441CDCCCC8CA7BA5041295C8F822E405441C7F762CAA7BA5041449EEC2130405441927BF634A8BA5041570D7C1233405441B60FFBFFA8BA5041A7802A7939405441591D75BCA9BA50412D98740F3F4054418FA0A133ACBA504142E2A89F5140544133333353ADBA5041666666165A405441E17A143EAEBA5041CDCCCCBC684054418FC2F518BBBA50418FC2F54869405441D7A3705DBCBA5041295C8F026C4054413D0AD713BDBA5041295C8F926A405441B81E855BBEBA50419A9999E968405441AED4F3ECBFBA5041B562EAED66405441E2FD7C82C0BA5041AF6E86CD65405441081A796DC1BA50411EF3EA0C644054412929E8ADC2BA50410EFE952162405441E17A14CEC3BA504185EB517860405441D7BF8E8EC4BA504108226AC05E405441E0C07F59C5BA5041AEDCE43F5D4054417A5544A4C5BA5041FD38B1B45B405441F8CEFDCEC5BA5041186CF493594054413412A1B9C5BA50411B91B9FD56405441B698E78EC5BA5041DE663F9D55405441421F2E64C5BA5041D872DB7C544054416247C62EC5BA50415504CD6652405441C4A57439C5BA50414F1069465140544118F79599C5BA504181521B6650405441E6B4E379C6BA5041A6864F104F405441B87FBE04C7BA5041B8A069654E4054415F2201C5C7BA5041C7ADF60F4E405441E38F1E10C9BA5041685CD5AF4D40544147BE5C9CCDBA5041150BB44F4D4054412AF21859D2BA5041448D5FAE4C405441E8D3CF7BD7BA504134BFD6484C4054418F67DFF2D9BA50418C416DE84B4054415760E70DDCBA5041B95E0BE44B40544134119580DEBA50418C416DE84B405441CDCCCCCCDEBA5041CDCCCCAC4B4054416D4A2467DDBA504130EEC8364940544148E17A44DBBA50413D0AD77345405441D6C20D7DD4BA5041C466D9D93B4054417B14AE07D1BA50413D0AD7F336405441FC33070ECEBA5041AF89562334405441377066BECABA50410265932B3440544154A488EDC5BA5041F5D7CA5F35405441FE288B6CC0BA5041A7751FC53C405441DB149398C0BA5041ABC82C9E4240544143C4B248C1BA5041BE35CB0E46405441875FDA24C2BA504114B1C88F4B4054413AE2B740C2BA5041D72E52654C4054411FA48236C2BA50414B943BF44C40544102C83FE8C1BA5041E7D781534D405441D2A7D56FC1BA5041ABD0BCCA4D40544159DB39E1C0BA50414AE48A1D4E40544158080437C0BA504157F1BE544E4054415811FFF4BEBA5041B9DDF0014E405441305714D8BDBA50419EE717484D405441F848B5C7BBBA504169F349CF48405441360407FFB7BA5041754796593F405441ACCDB746B6BA504190EEEFBC3B405441996019D6B2BA5041E53071FC38405441307C2703B0BA504197DA5AF535405441D6B674CDAFBA50416B7AF5D035405441964F8186AFBA50413A238A82354054411819EC40AFBA50419EA30620354054417386DCF4ABBA504157A7146B3140544149B12B8BA9BA5041AD89018B2B405441D4D7905DA9BA5041A49E6C362B40544196029450A9BA5041CA39EF202B405441613FD9DEAABA50413459AFCC2A405441EC51B8DEAABA50417B14AEC72A4054410103000000010000000C000000EC51B8DEAABA50417B14AEC72A405441938B908CB2BA50418869FE1727405441A090D9F3BCBA5041A09B28F32C4054410D7C9845C6BA5041AA5CCDDE2F405441BAC6DFD1C7BA504165C1A5022F405441CDCCCC7CC9BA504114AE47D12F405441BDA28005C9BA50419358ADF92B405441EC51B89EC8BA5041A4703DAA284054411F85EB81BFBA5041E17A14BE2040544148E17A54BEBA50410AD7A350214054416D9E9580B2BA50419B09401127405441EC51B8DEAABA50417B14AEC72A405441
+</a>
+
+<b>
+01060000000100000001030000000300000013000000E17A14AE87BA5041EC51B84E4B405441B81E853B88BA5041C3F5280C5F405441C3F528BC88BA5041B81E85FB5E405441000000C088BA5041666666D662405441C3F5280C89BA504152B81E55644054410AD7A3D089BA5041333333A365405441C3F528DC8ABA50417B14AE676640544185EB51E8ADBA5041EC51B8BE69405441E17A143EAEBA5041CDCCCCBC6840544133333353ADBA5041666666165A405441C3F5283CABBA5041713D0A574A4054415C8FC215A9BA50418FC2F5283A405441B81E851BA8BA504152B81E4532405441CDCCCC8CA7BA5041295C8F822E405441295C8F5298BA5041F6285C8F3140544185EB511889BA5041D7A3709D34405441333333B388BA50415C8FC2A5324054416666669682BA5041D7A370DD33405441E17A14AE87BA5041EC51B84E4B4054410500000048E17A3486BA5041295C8FC23F4054413D0AD71385BA5041B81E858B3A405441D7A3705D86BA504114AE47413A405441E17A147E87BA50410AD7A3803F40544148E17A3486BA5041295C8FC23F4054410500000052B81E9585BA50415C8FC2D5344054410AD7A30086BA50411F85EB51374054413D0AD70384BA504185EB51A8374054419A99999983BA5041B81E852B3540544152B81E9585BA50415C8FC2D534405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>982008 - 5000374
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000020000000103000000010000004A000000EC51B8DEAABA50417B14AEC72A4054411429A850A9BA5041C39681172B40544148E17A24A7BA5041713D0A872B405441CDCCCC8CA7BA5041295C8F822E405441C7F762CAA7BA5041449EEC2130405441927BF634A8BA5041570D7C1233405441B60FFBFFA8BA5041A7802A7939405441591D75BCA9BA50412D98740F3F4054418FA0A133ACBA504142E2A89F5140544133333353ADBA5041666666165A405441E17A143EAEBA5041CDCCCCBC684054418FC2F518BBBA50418FC2F54869405441D7A3705DBCBA5041295C8F026C4054413D0AD713BDBA5041295C8F926A405441B81E855BBEBA50419A9999E968405441AED4F3ECBFBA5041B562EAED66405441E2FD7C82C0BA5041AF6E86CD65405441081A796DC1BA50411EF3EA0C644054412929E8ADC2BA50410EFE952162405441E17A14CEC3BA504185EB517860405441D7BF8E8EC4BA504108226AC05E405441E0C07F59C5BA5041AEDCE43F5D4054417A5544A4C5BA5041FD38B1B45B405441F8CEFDCEC5BA5041186CF493594054413412A1B9C5BA50411B91B9FD56405441B698E78EC5BA5041DE663F9D55405441421F2E64C5BA5041D872DB7C544054416247C62EC5BA50415504CD6652405441C4A57439C5BA50414F1069465140544118F79599C5BA504181521B6650405441E6B4E379C6BA5041A6864F104F405441B87FBE04C7BA5041B8A069654E4054415F2201C5C7BA5041C7ADF60F4E405441E38F1E10C9BA5041685CD5AF4D40544147BE5C9CCDBA5041150BB44F4D4054412AF21859D2BA5041448D5FAE4C405441E8D3CF7BD7BA504134BFD6484C4054418F67DFF2D9BA50418C416DE84B4054415760E70DDCBA5041B95E0BE44B40544134119580DEBA50418C416DE84B405441CDCCCCCCDEBA5041CDCCCCAC4B4054416D4A2467DDBA504130EEC8364940544148E17A44DBBA50413D0AD77345405441D6C20D7DD4BA5041C466D9D93B4054417B14AE07D1BA50413D0AD7F336405441FC33070ECEBA5041AF89562334405441377066BECABA50410265932B3440544154A488EDC5BA5041F5D7CA5F35405441FE288B6CC0BA5041A7751FC53C405441DB149398C0BA5041ABC82C9E4240544143C4B248C1BA5041BE35CB0E46405441875FDA24C2BA504114B1C88F4B4054413AE2B740C2BA5041D72E52654C4054411FA48236C2BA50414B943BF44C40544102C83FE8C1BA5041E7D781534D405441D2A7D56FC1BA5041ABD0BCCA4D40544159DB39E1C0BA50414AE48A1D4E40544158080437C0BA504157F1BE544E4054415811FFF4BEBA5041B9DDF0014E405441305714D8BDBA50419EE717484D405441F848B5C7BBBA504169F349CF48405441360407FFB7BA5041754796593F405441ACCDB746B6BA504190EEEFBC3B405441996019D6B2BA5041E53071FC38405441307C2703B0BA504197DA5AF535405441D6B674CDAFBA50416B7AF5D035405441964F8186AFBA50413A238A82354054411819EC40AFBA50419EA30620354054417386DCF4ABBA504157A7146B3140544149B12B8BA9BA5041AD89018B2B405441D4D7905DA9BA5041A49E6C362B40544196029450A9BA5041CA39EF202B405441613FD9DEAABA50413459AFCC2A405441EC51B8DEAABA50417B14AEC72A4054410103000000010000000C000000EC51B8DEAABA50417B14AEC72A405441938B908CB2BA50418869FE1727405441A090D9F3BCBA5041A09B28F32C4054410D7C9845C6BA5041AA5CCDDE2F405441BAC6DFD1C7BA504165C1A5022F405441CDCCCC7CC9BA504114AE47D12F405441BDA28005C9BA50419358ADF92B405441EC51B89EC8BA5041A4703DAA284054411F85EB81BFBA5041E17A14BE2040544148E17A54BEBA50410AD7A350214054416D9E9580B2BA50419B09401127405441EC51B8DEAABA50417B14AEC72A405441
+</a>
+
+<b>
+01060000000100000001030000000300000013000000E17A14AE87BA5041EC51B84E4B405441B81E853B88BA5041C3F5280C5F405441C3F528BC88BA5041B81E85FB5E405441000000C088BA5041666666D662405441C3F5280C89BA504152B81E55644054410AD7A3D089BA5041333333A365405441C3F528DC8ABA50417B14AE676640544185EB51E8ADBA5041EC51B8BE69405441E17A143EAEBA5041CDCCCCBC6840544133333353ADBA5041666666165A405441C3F5283CABBA5041713D0A574A4054415C8FC215A9BA50418FC2F5283A405441B81E851BA8BA504152B81E4532405441CDCCCC8CA7BA5041295C8F822E405441295C8F5298BA5041F6285C8F3140544185EB511889BA5041D7A3709D34405441333333B388BA50415C8FC2A5324054416666669682BA5041D7A370DD33405441E17A14AE87BA5041EC51B84E4B4054410500000048E17A3486BA5041295C8FC23F4054413D0AD71385BA5041B81E858B3A405441D7A3705D86BA504114AE47413A405441E17A147E87BA50410AD7A3803F40544148E17A3486BA5041295C8FC23F4054410500000052B81E9585BA50415C8FC2D5344054410AD7A30086BA50411F85EB51374054413D0AD70384BA504185EB51A8374054419A99999983BA5041B81E852B3540544152B81E9585BA50415C8FC2D534405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>944447 - 52814
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001F000000713D0A570C875141AE47E12AA7955441B81E85DB0B8751415C8FC235A99554417B14AE970B87514133333383AA955441AE47E10A0B87514166666646AB955441A4703D2A0C875141EC51B8DEAD955441C3F5283C0C875141A4703D4AB0955441295C8F921E8751418FC2F5C8BC9554419A9999691F8751418FC2F5B8BA955441E17A148E1F87514100000030B895544185EB51682087514114AE47F1B4955441295C8FA220875141666666B6AE9554418FC2F5A81E875141713D0A77AE955441000000E01D875141713D0A37AE955441F6285C3F21875141333333E3A29554411F85EB312387514148E17A049C95544114AE479123875141E17A148E9A9554418FC2F57824875141A4703D8A93955441C3F5288C1B875141666666A6969554417B14AEE7168751419A9999299795544185EB5168108751417B14AE57979554419A999919108751419A99995997955441666666F60E87514148E17AF49795544114AE47D10D875141D7A3709D989554413D0AD7830D87514185EB518899955441D7A3706D0D875141A4703D3A9B955441A4703D4A0D875141000000609D955441666666660C875141A4703DBA9E9554417B14AE370C875141EC51B89EA0955441A4703D5A0C875141CDCCCC3CA2955441E17A14CE0C875141D7A370FDA4955441713D0A570C875141AE47E12AA7955441
+</a>
+
+<b>
+0106000000010000000103000000010000002B000000713D0A570C875141AE47E12AA7955441F91762510C8751412384D342A7955441D3FE01A40B8751411B949B46AA9554417B14AE970B87514133333383AA955441570ADE120B8751415630C73FAB955441F6F812260C875141017BD8C7AD955441D95444260C875141DFF688D5AD955441A4703D2A0C875141EC51B8DEAD9554415B9A123C0C8751415C863847B09554411F8C42790D8751419A154F22B19554415DED41D311875141515B6019B4955441F064FD411387514147472610B5955441E8E672DE138751415AC0DF7DB5955441295C8F921E8751418FC2F5C8BC955441A1E8115E1F875141603745D5BA955441E320FC821F875141A05B60F5B895544172F92E861F875141F18479BCB8955441D06CAC881F8751418F9B2D90B8955441DB6CAC881F87514168B90338B89554417027D91D2087514103CAC00CB69554414FEBD82E20875141B0010CCCB59554415E371F3A208751418F7421A1B59554414F4E9D6620875141B74084F5B49554417A5BE19B208751417B8A3760AF95544140D1469D2087514127421547AF955441C64BBDA020875141006241E8AE9554417E5B3DA120875141CE788EDAAE955441C89D36A220875141769CE4BFAE955441ED07512D20875141541CB5A7AE955441E4B8A24A1F87514143F54C8BAE955441858076491F875141E555278BAE955441B3EB1ED71E875141E555278BAE9554417778173A1E8751415B4BBB53AE955441000000E01D875141713D0A37AE955441372FD6E01D87514121D73A34AE95544184F647A91D8751419A3B9F20AE955441D0F64105158751416E2C8F29A8955441AC7E1BD410875141D8B4184CA5955441E9A558640D875141D18246F6A2955441FFB237640C87514127A1973BA295544177C3B2C60C8751410CBC89D0A4955441E17A14CE0C875141D7A370FDA4955441713D0A570C875141AE47E12AA7955441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981722 - 256467
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000700000050000000A4703DBAC37A50410AD7A3B06D2B5541EC51B85EC37A50418FC2F5686C2B5541A4703DCAC47A5041A4703D7A6B2B554152B81EF5C67A504152B81E456D2B554185EB51F8CC7A5041A4703D4A6B2B55419A999999CF7A5041F6285CAF692B55411F85EB61D17A5041CDCCCC9C672B55411F85EB71D07A5041D7A370FD652B55413D0AD753D47A5041D7A370AD642B5541C3F528DCD57A5041713D0A77612B55411F85EBD1D77A5041E17A14FE602B55410AD7A3D0D97A5041CDCCCC9C612B554185EB51E8DB7A5041B81E856B612B5541C3F528BCDC7A5041B81E857B602B5541C3F5282CDF7A5041713D0AE75F2B5541D7A3707DE17A5041AE47E18A5F2B5541C3F5283CE47A50410AD7A3B05F2B554185EB5198E57A504152B81E555F2B55411F85EBB1EA7A50417B14AED75D2B5541B81E85DBE87A5041C3F5289C5C2B554148E17A54E87A50418FC2F5485B2B55410AD7A330E97A504148E17A945A2B55417B14AE77EA7A50418FC2F5E85A2B5541B81E85DBEB7A5041666666D65B2B5541C3F5282CED7A5041EC51B81E5D2B55410AD7A380EE7A5041AE47E1BA5C2B5541333333A3EF7A5041666666665C2B5541D7A3708DF07A50411F85EB215C2B5541AE47E14AED7A5041666666B6542B554148E17A14EC7A5041EC51B80E532B554152B81EA5EA7A50419A999979502B5541713D0AC7E77A5041CDCCCCAC502B55419A999979E67A5041A4703D9A4C2B5541713D0AB7E57A5041666666F64C2B5541295C8F72E57A5041CDCCCC0C4D2B5541D7A3702DE27A5041C3F5287C462B554114AE4791E27A504152B81E45462B5541A4703D2AE37A5041E17A14FE452B55418FC2F558E47A50410AD7A340482B5541D7A370ADE57A50418FC2F5F84A2B5541A4703D2AE77A5041F6285C6F472B554152B81EE5E67A5041CDCCCC8C462B5541295C8F92E87A50413D0AD733452B5541D7A370BDE87A504152B81ED53E2B5541B81E85BBE77A5041AE47E18A3B2B5541000000E0E47A50411F85EBF13D2B55418FC2F5D8E27A5041F6285CBF3A2B5541713D0AE7DE7A504166666696342B5541AE47E17ADE7A5041E17A147E372B5541B81E858BDB7A5041CDCCCCEC392B5541A4703DEAD17A5041CDCCCCAC3C2B5541A4703DFACE7A5041713D0A973C2B5541D7A3704DC57A5041666666663C2B5541E17A14AEC17A5041AE47E1AA3B2B5541F6285C1FC07A504185EB51F8392B5541000000B0BB7A50413D0AD7D33C2B5541E17A149EBA7A50415C8FC2A53E2B5541CDCCCC7CC47A504114AE47F1482B5541A4703D5AC87A5041C3F5284C4D2B554100000010C67A5041000000504F2B5541E17A14FEC37A5041713D0A77522B554133333303C17A5041F6285C6F572B5541E17A142EC77A5041AE47E1DA5C2B554148E17AE4C67A5041713D0A375D2B554152B81E55C67A504152B81EC55D2B554166666626C67A50410AD7A3005E2B5541B81E851BC57A504152B81EF55E2B5541B81E850BC07A50410AD7A350592B5541D7A370FDBC7A5041AE47E1FA5E2B55419A9999B9BE7A5041F6285CFF602B55419A999999C07A504114AE47B1632B5541F6285CBFC47A5041E17A14DE692B55418FC2F5E8C37A5041C3F5288C6A2B5541CDCCCC3CBF7A5041666666D6632B5541D7A3702DBE7A5041713D0A37652B5541C3F5281CBD7A5041AE47E1FA642B55419A9999D9BA7A5041295C8FE2672B5541A4703DDABF7A5041A4703DDA6D2B5541000000D0C17A50413D0AD7036F2B5541A4703DBAC37A50410AD7A3B06D2B554109000000D7A370BDC57A504133333313552B5541D7A370DDC57A50411F85EBF1532B5541CDCCCCECC67A5041A4703D1A532B5541C3F5289CC87A50413D0AD7C3532B55413D0AD733CA7A504100000080552B5541713D0AD7CB7A5041B81E85FB572B55410AD7A380CA7A50410AD7A3105A2B554152B81E65C87A50411F85EB51572B5541D7A370BDC57A504133333313552B554105000000D7A3700DC57A504152B81EB5602B55411F85EB71C87A50411F85EB51662B5541A4703DDAC77A504100000040672B554100000040C47A5041E17A144E612B5541D7A3700DC57A504152B81EB5602B5541080000008FC2F5D8D97A5041E17A14DE3D2B554185EB5118DC7A5041D7A3702D422B5541295C8F42DA7A5041666666C6422B5541295C8F32D87A5041D7A3701D402B5541333333A3D67A5041A4703DAA402B554114AE47A1D57A5041B81E85CB3F2B5541CDCCCC0CD77A5041295C8FD23D2B55418FC2F5D8D97A5041E17A14DE3D2B55411A0000000AD7A3B0D47A50415C8FC225582B5541F6285C8FD37A5041295C8FC2592B5541F6285CAFD17A504114AE47415A2B554185EB51E8CE7A50413D0AD7135B2B55411F85EB61CE7A504114AE4791592B554133333343D17A50410AD7A3D0582B55411F85EB01D27A50419A9999C9532B55410AD7A320D07A50411F85EB914F2B5541F6285CFFCD7A5041B81E852B502B5541F6285C2FCC7A5041666666C6502B55417B14AEA7CA7A504148E17A044F2B5541713D0AE7CA7A5041295C8F624C2B55415C8FC225CA7A50413D0AD7C3462B554166666626CA7A5041AE47E18A3E2B554148E17A04CE7A5041CDCCCC5C3D2B55410AD7A320D07A50417B14AEF73E2B55411F85EB11D47A5041A4703D4A3F2B5541666666A6D57A5041C3F5287C412B5541713D0A47D67A5041F6285C2F432B55415C8FC275D47A504166666696462B5541D7A370BDD27A5041E17A14EE492B55418FC2F578D27A50417B14AEC74D2B554166666606D47A5041713D0AB7502B55413D0AD7B3D37A5041666666A6532B5541B81E852BD57A50415C8FC295562B55410AD7A3B0D47A50415C8FC225582B554109000000295C8F92D97A504114AE47C14A2B55417B14AEF7D77A50417B14AE57452B55410AD7A3E0D77A5041C3F5289C442B5541000000D0DA7A50411F85EB81432B554152B81E45DB7A504166666626442B554185EB51C8DC7A50410AD7A350472B55418FC2F578DC7A5041EC51B8FE482B55411F85EB71DA7A5041333333134B2B5541295C8F92D97A504114AE47C14A2B55412100000087B3D12CDE7A5041F441A469422B5541C3F5288CDE7A50418FC2F538432B55418FC2F5A8DF7A504152B81EA5452B554152B81EE5E37A5041295C8F324F2B55410AD7A370E27A5041D7A3701D512B5541CDCCCC4CE07A504148E17A74502B554114AE4751DD7A50417B14AE27512B554100000060DD7A50415C8FC265512B554133333343DF7A5041EC51B86E532B5541D7A370DDDD7A504133333303552B55418FC2F548DE7A504148E17A045C2B5541B81E85BBDB7A504148E17AF45D2B55419A999939DB7A50410AD7A3D05B2B55415C8FC255DD7A504148E17A645A2B55417B14AEA7DB7A5041000000A0552B5541B81E85EBDC7A5041E17A146E542B5541EC51B80EDD7A5041333333D3522B55418FC2F598D77A504114AE47B1512B55413D0AD703D87A5041295C8FC2552B5541E17A14DED67A5041C3F5289C562B5541295C8F82D57A5041F6285C3F522B554166666656D57A5041B81E85BB512B5541AE47E10AD77A50419A9999C94F2B55417B14AEF7DC7A50415C8FC2C54C2B5541D7A3702DE07A50417B14AE174D2B55413D0AD723E17A5041E17A14FE4B2B55413D0AD723DD7A5041B81E85DB422B554120391C26DE7A5041C4824869422B554185EB5148DC7A50413D0AD7433E2B5541A4703D9ADE7A5041C3F5280C3D2B554166666696E07A504152B81EF5402B554148E17A64DE7A50411F85EB51422B554187B3D12CDE7A5041F441A469422B5541
+</a>
+
+<b>
+010600000001000000010300000001000000150000004DC91B90DB7A5041F2D499ED492B5541F7D40A90DB7A5041AC39ABED492B5541163D0590DB7A5041A3F6B0ED492B5541910AA3D0DB7A5041C80B0AA74A2B5541B9FDF418DC7A5041D6F97B544B2B55410B05720DDB7A5041CFD5B7BE4B2B55413FE3E13ADA7A50417D04E12A4C2B5541844F6DEEDA7A5041CA5401CF4D2B55417B14AEF7DC7A50415C8FC2C54C2B554152689513DE7A5041E8D90FE24C2B554129A0FD20DF7A50410430EBFC4C2B5541D7A3702DE07A50417B14AE174D2B554114076F6FE07A50415A3542CC4C2B5541A1445118E07A50417516C3F54B2B5541FEF8A400DE7A5041B8BFA3D0462B554187A800E0DC7A50412B0214EE432B5541DD9D71CDDB7A50416333D763442B5541BC1EAD74DB7A50412916EA89442B554185EB51C8DC7A50410AD7A350472B55413839F678DC7A50417C5BB8FE482B55414DC91B90DB7A5041F2D499ED492B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981722 - 256477
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000700000050000000A4703DBAC37A50410AD7A3B06D2B5541EC51B85EC37A50418FC2F5686C2B5541A4703DCAC47A5041A4703D7A6B2B554152B81EF5C67A504152B81E456D2B554185EB51F8CC7A5041A4703D4A6B2B55419A999999CF7A5041F6285CAF692B55411F85EB61D17A5041CDCCCC9C672B55411F85EB71D07A5041D7A370FD652B55413D0AD753D47A5041D7A370AD642B5541C3F528DCD57A5041713D0A77612B55411F85EBD1D77A5041E17A14FE602B55410AD7A3D0D97A5041CDCCCC9C612B554185EB51E8DB7A5041B81E856B612B5541C3F528BCDC7A5041B81E857B602B5541C3F5282CDF7A5041713D0AE75F2B5541D7A3707DE17A5041AE47E18A5F2B5541C3F5283CE47A50410AD7A3B05F2B554185EB5198E57A504152B81E555F2B55411F85EBB1EA7A50417B14AED75D2B5541B81E85DBE87A5041C3F5289C5C2B554148E17A54E87A50418FC2F5485B2B55410AD7A330E97A504148E17A945A2B55417B14AE77EA7A50418FC2F5E85A2B5541B81E85DBEB7A5041666666D65B2B5541C3F5282CED7A5041EC51B81E5D2B55410AD7A380EE7A5041AE47E1BA5C2B5541333333A3EF7A5041666666665C2B5541D7A3708DF07A50411F85EB215C2B5541AE47E14AED7A5041666666B6542B554148E17A14EC7A5041EC51B80E532B554152B81EA5EA7A50419A999979502B5541713D0AC7E77A5041CDCCCCAC502B55419A999979E67A5041A4703D9A4C2B5541713D0AB7E57A5041666666F64C2B5541295C8F72E57A5041CDCCCC0C4D2B5541D7A3702DE27A5041C3F5287C462B554114AE4791E27A504152B81E45462B5541A4703D2AE37A5041E17A14FE452B55418FC2F558E47A50410AD7A340482B5541D7A370ADE57A50418FC2F5F84A2B5541A4703D2AE77A5041F6285C6F472B554152B81EE5E67A5041CDCCCC8C462B5541295C8F92E87A50413D0AD733452B5541D7A370BDE87A504152B81ED53E2B5541B81E85BBE77A5041AE47E18A3B2B5541000000E0E47A50411F85EBF13D2B55418FC2F5D8E27A5041F6285CBF3A2B5541713D0AE7DE7A504166666696342B5541AE47E17ADE7A5041E17A147E372B5541B81E858BDB7A5041CDCCCCEC392B5541A4703DEAD17A5041CDCCCCAC3C2B5541A4703DFACE7A5041713D0A973C2B5541D7A3704DC57A5041666666663C2B5541E17A14AEC17A5041AE47E1AA3B2B5541F6285C1FC07A504185EB51F8392B5541000000B0BB7A50413D0AD7D33C2B5541E17A149EBA7A50415C8FC2A53E2B5541CDCCCC7CC47A504114AE47F1482B5541A4703D5AC87A5041C3F5284C4D2B554100000010C67A5041000000504F2B5541E17A14FEC37A5041713D0A77522B554133333303C17A5041F6285C6F572B5541E17A142EC77A5041AE47E1DA5C2B554148E17AE4C67A5041713D0A375D2B554152B81E55C67A504152B81EC55D2B554166666626C67A50410AD7A3005E2B5541B81E851BC57A504152B81EF55E2B5541B81E850BC07A50410AD7A350592B5541D7A370FDBC7A5041AE47E1FA5E2B55419A9999B9BE7A5041F6285CFF602B55419A999999C07A504114AE47B1632B5541F6285CBFC47A5041E17A14DE692B55418FC2F5E8C37A5041C3F5288C6A2B5541CDCCCC3CBF7A5041666666D6632B5541D7A3702DBE7A5041713D0A37652B5541C3F5281CBD7A5041AE47E1FA642B55419A9999D9BA7A5041295C8FE2672B5541A4703DDABF7A5041A4703DDA6D2B5541000000D0C17A50413D0AD7036F2B5541A4703DBAC37A50410AD7A3B06D2B554109000000D7A370BDC57A504133333313552B5541D7A370DDC57A50411F85EBF1532B5541CDCCCCECC67A5041A4703D1A532B5541C3F5289CC87A50413D0AD7C3532B55413D0AD733CA7A504100000080552B5541713D0AD7CB7A5041B81E85FB572B55410AD7A380CA7A50410AD7A3105A2B554152B81E65C87A50411F85EB51572B5541D7A370BDC57A504133333313552B554105000000D7A3700DC57A504152B81EB5602B55411F85EB71C87A50411F85EB51662B5541A4703DDAC77A504100000040672B554100000040C47A5041E17A144E612B5541D7A3700DC57A504152B81EB5602B5541080000008FC2F5D8D97A5041E17A14DE3D2B554185EB5118DC7A5041D7A3702D422B5541295C8F42DA7A5041666666C6422B5541295C8F32D87A5041D7A3701D402B5541333333A3D67A5041A4703DAA402B554114AE47A1D57A5041B81E85CB3F2B5541CDCCCC0CD77A5041295C8FD23D2B55418FC2F5D8D97A5041E17A14DE3D2B55411A0000000AD7A3B0D47A50415C8FC225582B5541F6285C8FD37A5041295C8FC2592B5541F6285CAFD17A504114AE47415A2B554185EB51E8CE7A50413D0AD7135B2B55411F85EB61CE7A504114AE4791592B554133333343D17A50410AD7A3D0582B55411F85EB01D27A50419A9999C9532B55410AD7A320D07A50411F85EB914F2B5541F6285CFFCD7A5041B81E852B502B5541F6285C2FCC7A5041666666C6502B55417B14AEA7CA7A504148E17A044F2B5541713D0AE7CA7A5041295C8F624C2B55415C8FC225CA7A50413D0AD7C3462B554166666626CA7A5041AE47E18A3E2B554148E17A04CE7A5041CDCCCC5C3D2B55410AD7A320D07A50417B14AEF73E2B55411F85EB11D47A5041A4703D4A3F2B5541666666A6D57A5041C3F5287C412B5541713D0A47D67A5041F6285C2F432B55415C8FC275D47A504166666696462B5541D7A370BDD27A5041E17A14EE492B55418FC2F578D27A50417B14AEC74D2B554166666606D47A5041713D0AB7502B55413D0AD7B3D37A5041666666A6532B5541B81E852BD57A50415C8FC295562B55410AD7A3B0D47A50415C8FC225582B554109000000295C8F92D97A504114AE47C14A2B55417B14AEF7D77A50417B14AE57452B55410AD7A3E0D77A5041C3F5289C442B5541000000D0DA7A50411F85EB81432B554152B81E45DB7A504166666626442B554185EB51C8DC7A50410AD7A350472B55418FC2F578DC7A5041EC51B8FE482B55411F85EB71DA7A5041333333134B2B5541295C8F92D97A504114AE47C14A2B55412100000087B3D12CDE7A5041F441A469422B5541C3F5288CDE7A50418FC2F538432B55418FC2F5A8DF7A504152B81EA5452B554152B81EE5E37A5041295C8F324F2B55410AD7A370E27A5041D7A3701D512B5541CDCCCC4CE07A504148E17A74502B554114AE4751DD7A50417B14AE27512B554100000060DD7A50415C8FC265512B554133333343DF7A5041EC51B86E532B5541D7A370DDDD7A504133333303552B55418FC2F548DE7A504148E17A045C2B5541B81E85BBDB7A504148E17AF45D2B55419A999939DB7A50410AD7A3D05B2B55415C8FC255DD7A504148E17A645A2B55417B14AEA7DB7A5041000000A0552B5541B81E85EBDC7A5041E17A146E542B5541EC51B80EDD7A5041333333D3522B55418FC2F598D77A504114AE47B1512B55413D0AD703D87A5041295C8FC2552B5541E17A14DED67A5041C3F5289C562B5541295C8F82D57A5041F6285C3F522B554166666656D57A5041B81E85BB512B5541AE47E10AD77A50419A9999C94F2B55417B14AEF7DC7A50415C8FC2C54C2B5541D7A3702DE07A50417B14AE174D2B55413D0AD723E17A5041E17A14FE4B2B55413D0AD723DD7A5041B81E85DB422B554120391C26DE7A5041C4824869422B554185EB5148DC7A50413D0AD7433E2B5541A4703D9ADE7A5041C3F5280C3D2B554166666696E07A504152B81EF5402B554148E17A64DE7A50411F85EB51422B554187B3D12CDE7A5041F441A469422B5541
+</a>
+
+<b>
+010600000001000000010300000001000000310000005D563CDAE77A5041980867C6512B5541161DC3B5E67A5041B034F628522B554135DA83BBE77A504114FF1EA5542B554135DDC265E97A5041553ED7C3582B5541559E4651E67A5041559100D0592B5541854D5108E47A504108DAAC975A2B554129A0FFAFE37A5041EF5D1EB55A2B55412B9DD523E27A504147CE00D0552B55416A8D7B94E17A504184203413542B55418C808E82E17A5041DB56ADE7532B554137D051F8DF7A50417BFC5A5F542B554191F76606E27A50416E46F6085A2B554124E83363E27A5041A9CA8E125B2B5541BE948FF2DF7A5041D1348FA25B2B554115EFF698DF7A5041A477A4605A2B5541C1A33213DE7A50416E113D7A552B5541D7A370DDDD7A504133333303552B5541AC72F548DE7A5041E2AC75045C2B5541D8465B9FDE7A50417263A3F05B2B5541A139F548DE7A504138497B045C2B5541905A26F1DD7A5041A61722475C2B554123AC43E2DC7A5041DE5DC0145D2B55415D6327F5DB7A50414D82BBC85D2B5541B81E85BBDB7A504148E17AF45D2B5541447B4977DB7A5041A53CC2D45C2B5541B24514AEDA7A504123803E0A5D2B5541C1F051E8DB7A5041CA18856B612B5541C3F528BCDC7A5041B81E857B602B554113DA40BCDC7A50415A6F7F7B602B55411BDA8A08DE7A5041DC166E2C602B5541FC272A2CDF7A5041B32A09E75F2B554150C925DADF7A5041D54603CC5F2B554166BB91BEE07A504178A287A85F2B5541D7A3707DE17A5041AE47E18A5F2B55410A1F283CE47A504180CBA3B05F2B55411A39740FE57A504138FF18795F2B554195175398E57A50415B451E555F2B5541F703AE9AE57A5041B73A6E545F2B55411F85EBB1EA7A50417B14AED75D2B5541B81E85DBE87A5041C3F5289C5C2B554148E17A54E87A50418FC2F5485B2B55410AD7A330E97A504148E17A945A2B55417B14AE77EA7A50418FC2F5E85A2B5541B81E85DBEB7A5041666666D65B2B5541AFE9282CED7A50412446B81E5D2B5541CD855B0FEB7A5041110DFF2F582B5541D9EA51C8EB7A50416E556FED572B5541A2755CDFE87A504162D7B86E512B55415D563CDAE77A5041980867C6512B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981722 - 256838
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000700000050000000A4703DBAC37A50410AD7A3B06D2B5541EC51B85EC37A50418FC2F5686C2B5541A4703DCAC47A5041A4703D7A6B2B554152B81EF5C67A504152B81E456D2B554185EB51F8CC7A5041A4703D4A6B2B55419A999999CF7A5041F6285CAF692B55411F85EB61D17A5041CDCCCC9C672B55411F85EB71D07A5041D7A370FD652B55413D0AD753D47A5041D7A370AD642B5541C3F528DCD57A5041713D0A77612B55411F85EBD1D77A5041E17A14FE602B55410AD7A3D0D97A5041CDCCCC9C612B554185EB51E8DB7A5041B81E856B612B5541C3F528BCDC7A5041B81E857B602B5541C3F5282CDF7A5041713D0AE75F2B5541D7A3707DE17A5041AE47E18A5F2B5541C3F5283CE47A50410AD7A3B05F2B554185EB5198E57A504152B81E555F2B55411F85EBB1EA7A50417B14AED75D2B5541B81E85DBE87A5041C3F5289C5C2B554148E17A54E87A50418FC2F5485B2B55410AD7A330E97A504148E17A945A2B55417B14AE77EA7A50418FC2F5E85A2B5541B81E85DBEB7A5041666666D65B2B5541C3F5282CED7A5041EC51B81E5D2B55410AD7A380EE7A5041AE47E1BA5C2B5541333333A3EF7A5041666666665C2B5541D7A3708DF07A50411F85EB215C2B5541AE47E14AED7A5041666666B6542B554148E17A14EC7A5041EC51B80E532B554152B81EA5EA7A50419A999979502B5541713D0AC7E77A5041CDCCCCAC502B55419A999979E67A5041A4703D9A4C2B5541713D0AB7E57A5041666666F64C2B5541295C8F72E57A5041CDCCCC0C4D2B5541D7A3702DE27A5041C3F5287C462B554114AE4791E27A504152B81E45462B5541A4703D2AE37A5041E17A14FE452B55418FC2F558E47A50410AD7A340482B5541D7A370ADE57A50418FC2F5F84A2B5541A4703D2AE77A5041F6285C6F472B554152B81EE5E67A5041CDCCCC8C462B5541295C8F92E87A50413D0AD733452B5541D7A370BDE87A504152B81ED53E2B5541B81E85BBE77A5041AE47E18A3B2B5541000000E0E47A50411F85EBF13D2B55418FC2F5D8E27A5041F6285CBF3A2B5541713D0AE7DE7A504166666696342B5541AE47E17ADE7A5041E17A147E372B5541B81E858BDB7A5041CDCCCCEC392B5541A4703DEAD17A5041CDCCCCAC3C2B5541A4703DFACE7A5041713D0A973C2B5541D7A3704DC57A5041666666663C2B5541E17A14AEC17A5041AE47E1AA3B2B5541F6285C1FC07A504185EB51F8392B5541000000B0BB7A50413D0AD7D33C2B5541E17A149EBA7A50415C8FC2A53E2B5541CDCCCC7CC47A504114AE47F1482B5541A4703D5AC87A5041C3F5284C4D2B554100000010C67A5041000000504F2B5541E17A14FEC37A5041713D0A77522B554133333303C17A5041F6285C6F572B5541E17A142EC77A5041AE47E1DA5C2B554148E17AE4C67A5041713D0A375D2B554152B81E55C67A504152B81EC55D2B554166666626C67A50410AD7A3005E2B5541B81E851BC57A504152B81EF55E2B5541B81E850BC07A50410AD7A350592B5541D7A370FDBC7A5041AE47E1FA5E2B55419A9999B9BE7A5041F6285CFF602B55419A999999C07A504114AE47B1632B5541F6285CBFC47A5041E17A14DE692B55418FC2F5E8C37A5041C3F5288C6A2B5541CDCCCC3CBF7A5041666666D6632B5541D7A3702DBE7A5041713D0A37652B5541C3F5281CBD7A5041AE47E1FA642B55419A9999D9BA7A5041295C8FE2672B5541A4703DDABF7A5041A4703DDA6D2B5541000000D0C17A50413D0AD7036F2B5541A4703DBAC37A50410AD7A3B06D2B554109000000D7A370BDC57A504133333313552B5541D7A370DDC57A50411F85EBF1532B5541CDCCCCECC67A5041A4703D1A532B5541C3F5289CC87A50413D0AD7C3532B55413D0AD733CA7A504100000080552B5541713D0AD7CB7A5041B81E85FB572B55410AD7A380CA7A50410AD7A3105A2B554152B81E65C87A50411F85EB51572B5541D7A370BDC57A504133333313552B554105000000D7A3700DC57A504152B81EB5602B55411F85EB71C87A50411F85EB51662B5541A4703DDAC77A504100000040672B554100000040C47A5041E17A144E612B5541D7A3700DC57A504152B81EB5602B5541080000008FC2F5D8D97A5041E17A14DE3D2B554185EB5118DC7A5041D7A3702D422B5541295C8F42DA7A5041666666C6422B5541295C8F32D87A5041D7A3701D402B5541333333A3D67A5041A4703DAA402B554114AE47A1D57A5041B81E85CB3F2B5541CDCCCC0CD77A5041295C8FD23D2B55418FC2F5D8D97A5041E17A14DE3D2B55411A0000000AD7A3B0D47A50415C8FC225582B5541F6285C8FD37A5041295C8FC2592B5541F6285CAFD17A504114AE47415A2B554185EB51E8CE7A50413D0AD7135B2B55411F85EB61CE7A504114AE4791592B554133333343D17A50410AD7A3D0582B55411F85EB01D27A50419A9999C9532B55410AD7A320D07A50411F85EB914F2B5541F6285CFFCD7A5041B81E852B502B5541F6285C2FCC7A5041666666C6502B55417B14AEA7CA7A504148E17A044F2B5541713D0AE7CA7A5041295C8F624C2B55415C8FC225CA7A50413D0AD7C3462B554166666626CA7A5041AE47E18A3E2B554148E17A04CE7A5041CDCCCC5C3D2B55410AD7A320D07A50417B14AEF73E2B55411F85EB11D47A5041A4703D4A3F2B5541666666A6D57A5041C3F5287C412B5541713D0A47D67A5041F6285C2F432B55415C8FC275D47A504166666696462B5541D7A370BDD27A5041E17A14EE492B55418FC2F578D27A50417B14AEC74D2B554166666606D47A5041713D0AB7502B55413D0AD7B3D37A5041666666A6532B5541B81E852BD57A50415C8FC295562B55410AD7A3B0D47A50415C8FC225582B554109000000295C8F92D97A504114AE47C14A2B55417B14AEF7D77A50417B14AE57452B55410AD7A3E0D77A5041C3F5289C442B5541000000D0DA7A50411F85EB81432B554152B81E45DB7A504166666626442B554185EB51C8DC7A50410AD7A350472B55418FC2F578DC7A5041EC51B8FE482B55411F85EB71DA7A5041333333134B2B5541295C8F92D97A504114AE47C14A2B55412100000087B3D12CDE7A5041F441A469422B5541C3F5288CDE7A50418FC2F538432B55418FC2F5A8DF7A504152B81EA5452B554152B81EE5E37A5041295C8F324F2B55410AD7A370E27A5041D7A3701D512B5541CDCCCC4CE07A504148E17A74502B554114AE4751DD7A50417B14AE27512B554100000060DD7A50415C8FC265512B554133333343DF7A5041EC51B86E532B5541D7A370DDDD7A504133333303552B55418FC2F548DE7A504148E17A045C2B5541B81E85BBDB7A504148E17AF45D2B55419A999939DB7A50410AD7A3D05B2B55415C8FC255DD7A504148E17A645A2B55417B14AEA7DB7A5041000000A0552B5541B81E85EBDC7A5041E17A146E542B5541EC51B80EDD7A5041333333D3522B55418FC2F598D77A504114AE47B1512B55413D0AD703D87A5041295C8FC2552B5541E17A14DED67A5041C3F5289C562B5541295C8F82D57A5041F6285C3F522B554166666656D57A5041B81E85BB512B5541AE47E10AD77A50419A9999C94F2B55417B14AEF7DC7A50415C8FC2C54C2B5541D7A3702DE07A50417B14AE174D2B55413D0AD723E17A5041E17A14FE4B2B55413D0AD723DD7A5041B81E85DB422B554120391C26DE7A5041C4824869422B554185EB5148DC7A50413D0AD7433E2B5541A4703D9ADE7A5041C3F5280C3D2B554166666696E07A504152B81EF5402B554148E17A64DE7A50411F85EB51422B554187B3D12CDE7A5041F441A469422B5541
+</a>
+
+<b>
+0106000000010000000103000000010000002F000000F7B57809BE7A50415FF3DB095D2B55418C8C0B7EBD7A50414F1B670C5E2B5541D7A370FDBC7A5041AE47E1FA5E2B554114679AB9BE7A50415B485DFF602B554137D49A99C07A5041E17C47B1632B55419046D151C47A504131DEFC3A692B554109285CBFC47A5041807914DE692B5541F6189999C57A504199833D1A692B55417930D663C67A50415A645C6F682B5541E209B71EC77A50418B30EAD1672B5541AF6A3DDAC77A50412BF6FF3F672B55410A38580CC67A50413CAAC245642B55416613FF3FC47A504121F3144E612B5541DF75700DC57A50418A021EB5602B5541C857EB71C87A5041F2FEEA51662B5541DC719809C97A5041B2F1C135652B5541FDAF4891C97A504126AE1F45642B554120085238CA7A50412B22B91E632B55410C1DE0DACA7A50410E9109C7612B55418FBD837BCB7A50411C8EF458602B5541CA12E14ACB7A504132F014FE5F2B5541B8F50927C97A5041888F1D355C2B5541F25C1F85C87A5041918C47215B2B554153D4F4B8C97A504159A3E29A592B5541D09CF598C57A5041D5BE8ED2552B5541C7484204C67A5041B229154F552B5541D7A370BDC57A504133333313552B554157E466D4C57A504162CD9F43542B5541E17A14FEC37A5041713D0A77522B5541CF5B523FC37A50410C112FB5532B554177905E2AC27A50415BB21483552B55415C1696B1C17A50416269854C562B554133333303C17A5041F6285C6F572B55418E5D4720C77A5041DC60C0CE5C2B5541FC47132EC77A50415FEFDFDA5C2B5541CB7B85CBC77A5041A71DA3005C2B5541E17A142EC77A5041AE47E1DA5C2B554154DA7AE4C67A504155440A375D2B554152B81E55C67A504152B81EC55D2B554154EB6526C67A5041C847A4005E2B554176A78D9AC57A504123BABF805E2B5541ACBB851BC57A50411DE81FF55E2B5541D9AD650BC07A50415D24DE50592B55417FE49AAABF7A5041D15D5A045A2B55410A460709BF7A50413F76F82F5B2B55417A5EA97DBE7A5041685367325C2B5541F7B57809BE7A50415FF3DB095D2B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981722 - 256839
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000700000050000000A4703DBAC37A50410AD7A3B06D2B5541EC51B85EC37A50418FC2F5686C2B5541A4703DCAC47A5041A4703D7A6B2B554152B81EF5C67A504152B81E456D2B554185EB51F8CC7A5041A4703D4A6B2B55419A999999CF7A5041F6285CAF692B55411F85EB61D17A5041CDCCCC9C672B55411F85EB71D07A5041D7A370FD652B55413D0AD753D47A5041D7A370AD642B5541C3F528DCD57A5041713D0A77612B55411F85EBD1D77A5041E17A14FE602B55410AD7A3D0D97A5041CDCCCC9C612B554185EB51E8DB7A5041B81E856B612B5541C3F528BCDC7A5041B81E857B602B5541C3F5282CDF7A5041713D0AE75F2B5541D7A3707DE17A5041AE47E18A5F2B5541C3F5283CE47A50410AD7A3B05F2B554185EB5198E57A504152B81E555F2B55411F85EBB1EA7A50417B14AED75D2B5541B81E85DBE87A5041C3F5289C5C2B554148E17A54E87A50418FC2F5485B2B55410AD7A330E97A504148E17A945A2B55417B14AE77EA7A50418FC2F5E85A2B5541B81E85DBEB7A5041666666D65B2B5541C3F5282CED7A5041EC51B81E5D2B55410AD7A380EE7A5041AE47E1BA5C2B5541333333A3EF7A5041666666665C2B5541D7A3708DF07A50411F85EB215C2B5541AE47E14AED7A5041666666B6542B554148E17A14EC7A5041EC51B80E532B554152B81EA5EA7A50419A999979502B5541713D0AC7E77A5041CDCCCCAC502B55419A999979E67A5041A4703D9A4C2B5541713D0AB7E57A5041666666F64C2B5541295C8F72E57A5041CDCCCC0C4D2B5541D7A3702DE27A5041C3F5287C462B554114AE4791E27A504152B81E45462B5541A4703D2AE37A5041E17A14FE452B55418FC2F558E47A50410AD7A340482B5541D7A370ADE57A50418FC2F5F84A2B5541A4703D2AE77A5041F6285C6F472B554152B81EE5E67A5041CDCCCC8C462B5541295C8F92E87A50413D0AD733452B5541D7A370BDE87A504152B81ED53E2B5541B81E85BBE77A5041AE47E18A3B2B5541000000E0E47A50411F85EBF13D2B55418FC2F5D8E27A5041F6285CBF3A2B5541713D0AE7DE7A504166666696342B5541AE47E17ADE7A5041E17A147E372B5541B81E858BDB7A5041CDCCCCEC392B5541A4703DEAD17A5041CDCCCCAC3C2B5541A4703DFACE7A5041713D0A973C2B5541D7A3704DC57A5041666666663C2B5541E17A14AEC17A5041AE47E1AA3B2B5541F6285C1FC07A504185EB51F8392B5541000000B0BB7A50413D0AD7D33C2B5541E17A149EBA7A50415C8FC2A53E2B5541CDCCCC7CC47A504114AE47F1482B5541A4703D5AC87A5041C3F5284C4D2B554100000010C67A5041000000504F2B5541E17A14FEC37A5041713D0A77522B554133333303C17A5041F6285C6F572B5541E17A142EC77A5041AE47E1DA5C2B554148E17AE4C67A5041713D0A375D2B554152B81E55C67A504152B81EC55D2B554166666626C67A50410AD7A3005E2B5541B81E851BC57A504152B81EF55E2B5541B81E850BC07A50410AD7A350592B5541D7A370FDBC7A5041AE47E1FA5E2B55419A9999B9BE7A5041F6285CFF602B55419A999999C07A504114AE47B1632B5541F6285CBFC47A5041E17A14DE692B55418FC2F5E8C37A5041C3F5288C6A2B5541CDCCCC3CBF7A5041666666D6632B5541D7A3702DBE7A5041713D0A37652B5541C3F5281CBD7A5041AE47E1FA642B55419A9999D9BA7A5041295C8FE2672B5541A4703DDABF7A5041A4703DDA6D2B5541000000D0C17A50413D0AD7036F2B5541A4703DBAC37A50410AD7A3B06D2B554109000000D7A370BDC57A504133333313552B5541D7A370DDC57A50411F85EBF1532B5541CDCCCCECC67A5041A4703D1A532B5541C3F5289CC87A50413D0AD7C3532B55413D0AD733CA7A504100000080552B5541713D0AD7CB7A5041B81E85FB572B55410AD7A380CA7A50410AD7A3105A2B554152B81E65C87A50411F85EB51572B5541D7A370BDC57A504133333313552B554105000000D7A3700DC57A504152B81EB5602B55411F85EB71C87A50411F85EB51662B5541A4703DDAC77A504100000040672B554100000040C47A5041E17A144E612B5541D7A3700DC57A504152B81EB5602B5541080000008FC2F5D8D97A5041E17A14DE3D2B554185EB5118DC7A5041D7A3702D422B5541295C8F42DA7A5041666666C6422B5541295C8F32D87A5041D7A3701D402B5541333333A3D67A5041A4703DAA402B554114AE47A1D57A5041B81E85CB3F2B5541CDCCCC0CD77A5041295C8FD23D2B55418FC2F5D8D97A5041E17A14DE3D2B55411A0000000AD7A3B0D47A50415C8FC225582B5541F6285C8FD37A5041295C8FC2592B5541F6285CAFD17A504114AE47415A2B554185EB51E8CE7A50413D0AD7135B2B55411F85EB61CE7A504114AE4791592B554133333343D17A50410AD7A3D0582B55411F85EB01D27A50419A9999C9532B55410AD7A320D07A50411F85EB914F2B5541F6285CFFCD7A5041B81E852B502B5541F6285C2FCC7A5041666666C6502B55417B14AEA7CA7A504148E17A044F2B5541713D0AE7CA7A5041295C8F624C2B55415C8FC225CA7A50413D0AD7C3462B554166666626CA7A5041AE47E18A3E2B554148E17A04CE7A5041CDCCCC5C3D2B55410AD7A320D07A50417B14AEF73E2B55411F85EB11D47A5041A4703D4A3F2B5541666666A6D57A5041C3F5287C412B5541713D0A47D67A5041F6285C2F432B55415C8FC275D47A504166666696462B5541D7A370BDD27A5041E17A14EE492B55418FC2F578D27A50417B14AEC74D2B554166666606D47A5041713D0AB7502B55413D0AD7B3D37A5041666666A6532B5541B81E852BD57A50415C8FC295562B55410AD7A3B0D47A50415C8FC225582B554109000000295C8F92D97A504114AE47C14A2B55417B14AEF7D77A50417B14AE57452B55410AD7A3E0D77A5041C3F5289C442B5541000000D0DA7A50411F85EB81432B554152B81E45DB7A504166666626442B554185EB51C8DC7A50410AD7A350472B55418FC2F578DC7A5041EC51B8FE482B55411F85EB71DA7A5041333333134B2B5541295C8F92D97A504114AE47C14A2B55412100000087B3D12CDE7A5041F441A469422B5541C3F5288CDE7A50418FC2F538432B55418FC2F5A8DF7A504152B81EA5452B554152B81EE5E37A5041295C8F324F2B55410AD7A370E27A5041D7A3701D512B5541CDCCCC4CE07A504148E17A74502B554114AE4751DD7A50417B14AE27512B554100000060DD7A50415C8FC265512B554133333343DF7A5041EC51B86E532B5541D7A370DDDD7A504133333303552B55418FC2F548DE7A504148E17A045C2B5541B81E85BBDB7A504148E17AF45D2B55419A999939DB7A50410AD7A3D05B2B55415C8FC255DD7A504148E17A645A2B55417B14AEA7DB7A5041000000A0552B5541B81E85EBDC7A5041E17A146E542B5541EC51B80EDD7A5041333333D3522B55418FC2F598D77A504114AE47B1512B55413D0AD703D87A5041295C8FC2552B5541E17A14DED67A5041C3F5289C562B5541295C8F82D57A5041F6285C3F522B554166666656D57A5041B81E85BB512B5541AE47E10AD77A50419A9999C94F2B55417B14AEF7DC7A50415C8FC2C54C2B5541D7A3702DE07A50417B14AE174D2B55413D0AD723E17A5041E17A14FE4B2B55413D0AD723DD7A5041B81E85DB422B554120391C26DE7A5041C4824869422B554185EB5148DC7A50413D0AD7433E2B5541A4703D9ADE7A5041C3F5280C3D2B554166666696E07A504152B81EF5402B554148E17A64DE7A50411F85EB51422B554187B3D12CDE7A5041F441A469422B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000008486EC57DC7A5041383A82F9542B5541B81E85EBDC7A5041E17A146E542B5541EC51B80EDD7A5041333333D3522B5541FB975DA4DB7A50415E940A88522B55412A5022C7D97A5041A01B0E25522B554145CBF698D77A504104C151B1512B55413D0AD703D87A5041295C8FC2552B5541385316DED67A5041E197279C562B5541DCD05ACFD87A50412F6CCB0C562B554145BF32C3DA7A5041EA20AF77552B5541F766244EDC7A504157C8BF02552B55418486EC57DC7A5041383A82F9542B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981722 - 256841
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000700000050000000A4703DBAC37A50410AD7A3B06D2B5541EC51B85EC37A50418FC2F5686C2B5541A4703DCAC47A5041A4703D7A6B2B554152B81EF5C67A504152B81E456D2B554185EB51F8CC7A5041A4703D4A6B2B55419A999999CF7A5041F6285CAF692B55411F85EB61D17A5041CDCCCC9C672B55411F85EB71D07A5041D7A370FD652B55413D0AD753D47A5041D7A370AD642B5541C3F528DCD57A5041713D0A77612B55411F85EBD1D77A5041E17A14FE602B55410AD7A3D0D97A5041CDCCCC9C612B554185EB51E8DB7A5041B81E856B612B5541C3F528BCDC7A5041B81E857B602B5541C3F5282CDF7A5041713D0AE75F2B5541D7A3707DE17A5041AE47E18A5F2B5541C3F5283CE47A50410AD7A3B05F2B554185EB5198E57A504152B81E555F2B55411F85EBB1EA7A50417B14AED75D2B5541B81E85DBE87A5041C3F5289C5C2B554148E17A54E87A50418FC2F5485B2B55410AD7A330E97A504148E17A945A2B55417B14AE77EA7A50418FC2F5E85A2B5541B81E85DBEB7A5041666666D65B2B5541C3F5282CED7A5041EC51B81E5D2B55410AD7A380EE7A5041AE47E1BA5C2B5541333333A3EF7A5041666666665C2B5541D7A3708DF07A50411F85EB215C2B5541AE47E14AED7A5041666666B6542B554148E17A14EC7A5041EC51B80E532B554152B81EA5EA7A50419A999979502B5541713D0AC7E77A5041CDCCCCAC502B55419A999979E67A5041A4703D9A4C2B5541713D0AB7E57A5041666666F64C2B5541295C8F72E57A5041CDCCCC0C4D2B5541D7A3702DE27A5041C3F5287C462B554114AE4791E27A504152B81E45462B5541A4703D2AE37A5041E17A14FE452B55418FC2F558E47A50410AD7A340482B5541D7A370ADE57A50418FC2F5F84A2B5541A4703D2AE77A5041F6285C6F472B554152B81EE5E67A5041CDCCCC8C462B5541295C8F92E87A50413D0AD733452B5541D7A370BDE87A504152B81ED53E2B5541B81E85BBE77A5041AE47E18A3B2B5541000000E0E47A50411F85EBF13D2B55418FC2F5D8E27A5041F6285CBF3A2B5541713D0AE7DE7A504166666696342B5541AE47E17ADE7A5041E17A147E372B5541B81E858BDB7A5041CDCCCCEC392B5541A4703DEAD17A5041CDCCCCAC3C2B5541A4703DFACE7A5041713D0A973C2B5541D7A3704DC57A5041666666663C2B5541E17A14AEC17A5041AE47E1AA3B2B5541F6285C1FC07A504185EB51F8392B5541000000B0BB7A50413D0AD7D33C2B5541E17A149EBA7A50415C8FC2A53E2B5541CDCCCC7CC47A504114AE47F1482B5541A4703D5AC87A5041C3F5284C4D2B554100000010C67A5041000000504F2B5541E17A14FEC37A5041713D0A77522B554133333303C17A5041F6285C6F572B5541E17A142EC77A5041AE47E1DA5C2B554148E17AE4C67A5041713D0A375D2B554152B81E55C67A504152B81EC55D2B554166666626C67A50410AD7A3005E2B5541B81E851BC57A504152B81EF55E2B5541B81E850BC07A50410AD7A350592B5541D7A370FDBC7A5041AE47E1FA5E2B55419A9999B9BE7A5041F6285CFF602B55419A999999C07A504114AE47B1632B5541F6285CBFC47A5041E17A14DE692B55418FC2F5E8C37A5041C3F5288C6A2B5541CDCCCC3CBF7A5041666666D6632B5541D7A3702DBE7A5041713D0A37652B5541C3F5281CBD7A5041AE47E1FA642B55419A9999D9BA7A5041295C8FE2672B5541A4703DDABF7A5041A4703DDA6D2B5541000000D0C17A50413D0AD7036F2B5541A4703DBAC37A50410AD7A3B06D2B554109000000D7A370BDC57A504133333313552B5541D7A370DDC57A50411F85EBF1532B5541CDCCCCECC67A5041A4703D1A532B5541C3F5289CC87A50413D0AD7C3532B55413D0AD733CA7A504100000080552B5541713D0AD7CB7A5041B81E85FB572B55410AD7A380CA7A50410AD7A3105A2B554152B81E65C87A50411F85EB51572B5541D7A370BDC57A504133333313552B554105000000D7A3700DC57A504152B81EB5602B55411F85EB71C87A50411F85EB51662B5541A4703DDAC77A504100000040672B554100000040C47A5041E17A144E612B5541D7A3700DC57A504152B81EB5602B5541080000008FC2F5D8D97A5041E17A14DE3D2B554185EB5118DC7A5041D7A3702D422B5541295C8F42DA7A5041666666C6422B5541295C8F32D87A5041D7A3701D402B5541333333A3D67A5041A4703DAA402B554114AE47A1D57A5041B81E85CB3F2B5541CDCCCC0CD77A5041295C8FD23D2B55418FC2F5D8D97A5041E17A14DE3D2B55411A0000000AD7A3B0D47A50415C8FC225582B5541F6285C8FD37A5041295C8FC2592B5541F6285CAFD17A504114AE47415A2B554185EB51E8CE7A50413D0AD7135B2B55411F85EB61CE7A504114AE4791592B554133333343D17A50410AD7A3D0582B55411F85EB01D27A50419A9999C9532B55410AD7A320D07A50411F85EB914F2B5541F6285CFFCD7A5041B81E852B502B5541F6285C2FCC7A5041666666C6502B55417B14AEA7CA7A504148E17A044F2B5541713D0AE7CA7A5041295C8F624C2B55415C8FC225CA7A50413D0AD7C3462B554166666626CA7A5041AE47E18A3E2B554148E17A04CE7A5041CDCCCC5C3D2B55410AD7A320D07A50417B14AEF73E2B55411F85EB11D47A5041A4703D4A3F2B5541666666A6D57A5041C3F5287C412B5541713D0A47D67A5041F6285C2F432B55415C8FC275D47A504166666696462B5541D7A370BDD27A5041E17A14EE492B55418FC2F578D27A50417B14AEC74D2B554166666606D47A5041713D0AB7502B55413D0AD7B3D37A5041666666A6532B5541B81E852BD57A50415C8FC295562B55410AD7A3B0D47A50415C8FC225582B554109000000295C8F92D97A504114AE47C14A2B55417B14AEF7D77A50417B14AE57452B55410AD7A3E0D77A5041C3F5289C442B5541000000D0DA7A50411F85EB81432B554152B81E45DB7A504166666626442B554185EB51C8DC7A50410AD7A350472B55418FC2F578DC7A5041EC51B8FE482B55411F85EB71DA7A5041333333134B2B5541295C8F92D97A504114AE47C14A2B55412100000087B3D12CDE7A5041F441A469422B5541C3F5288CDE7A50418FC2F538432B55418FC2F5A8DF7A504152B81EA5452B554152B81EE5E37A5041295C8F324F2B55410AD7A370E27A5041D7A3701D512B5541CDCCCC4CE07A504148E17A74502B554114AE4751DD7A50417B14AE27512B554100000060DD7A50415C8FC265512B554133333343DF7A5041EC51B86E532B5541D7A370DDDD7A504133333303552B55418FC2F548DE7A504148E17A045C2B5541B81E85BBDB7A504148E17AF45D2B55419A999939DB7A50410AD7A3D05B2B55415C8FC255DD7A504148E17A645A2B55417B14AEA7DB7A5041000000A0552B5541B81E85EBDC7A5041E17A146E542B5541EC51B80EDD7A5041333333D3522B55418FC2F598D77A504114AE47B1512B55413D0AD703D87A5041295C8FC2552B5541E17A14DED67A5041C3F5289C562B5541295C8F82D57A5041F6285C3F522B554166666656D57A5041B81E85BB512B5541AE47E10AD77A50419A9999C94F2B55417B14AEF7DC7A50415C8FC2C54C2B5541D7A3702DE07A50417B14AE174D2B55413D0AD723E17A5041E17A14FE4B2B55413D0AD723DD7A5041B81E85DB422B554120391C26DE7A5041C4824869422B554185EB5148DC7A50413D0AD7433E2B5541A4703D9ADE7A5041C3F5280C3D2B554166666696E07A504152B81EF5402B554148E17A64DE7A50411F85EB51422B554187B3D12CDE7A5041F441A469422B5541
+</a>
+
+<b>
+01060000000100000001030000000100000013000000454F6DE6CD7A5041AF6DEEB86A2B554167129022CA7A5041CB824751662B554151813443C97A50418C546F0D672B5541918B1EB5C87A5041B3BE5A7F672B55410C74CCCCC77A5041E1B10040682B5541844A9819C77A5041DA04D6D3682B5541E6B6B74EC67A5041767E5D7F692B554192F4C235C57A5041D57E846B6A2B5541203F7CD4C37A5041F9C4D5836B2B5541B6D98A3DC47A50411F7EA2D66B2B5541A4703DCAC47A5041A4703D7A6B2B554152B81EF5C67A504152B81E456D2B55419B7D4587C77A5041CE83FD146D2B5541BB98ACF3C87A50417EC5FC9C6C2B55414954A6E3C97A50419EC9F54D6C2B5541D5327BD7CA7A5041CFB9A9FD6B2B554185EB51F8CC7A5041A4703D4A6B2B5541AD2E9FF8CC7A5041174A0E4A6B2B5541454F6DE6CD7A5041AF6DEEB86A2B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981722 - 295884
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000700000050000000A4703DBAC37A50410AD7A3B06D2B5541EC51B85EC37A50418FC2F5686C2B5541A4703DCAC47A5041A4703D7A6B2B554152B81EF5C67A504152B81E456D2B554185EB51F8CC7A5041A4703D4A6B2B55419A999999CF7A5041F6285CAF692B55411F85EB61D17A5041CDCCCC9C672B55411F85EB71D07A5041D7A370FD652B55413D0AD753D47A5041D7A370AD642B5541C3F528DCD57A5041713D0A77612B55411F85EBD1D77A5041E17A14FE602B55410AD7A3D0D97A5041CDCCCC9C612B554185EB51E8DB7A5041B81E856B612B5541C3F528BCDC7A5041B81E857B602B5541C3F5282CDF7A5041713D0AE75F2B5541D7A3707DE17A5041AE47E18A5F2B5541C3F5283CE47A50410AD7A3B05F2B554185EB5198E57A504152B81E555F2B55411F85EBB1EA7A50417B14AED75D2B5541B81E85DBE87A5041C3F5289C5C2B554148E17A54E87A50418FC2F5485B2B55410AD7A330E97A504148E17A945A2B55417B14AE77EA7A50418FC2F5E85A2B5541B81E85DBEB7A5041666666D65B2B5541C3F5282CED7A5041EC51B81E5D2B55410AD7A380EE7A5041AE47E1BA5C2B5541333333A3EF7A5041666666665C2B5541D7A3708DF07A50411F85EB215C2B5541AE47E14AED7A5041666666B6542B554148E17A14EC7A5041EC51B80E532B554152B81EA5EA7A50419A999979502B5541713D0AC7E77A5041CDCCCCAC502B55419A999979E67A5041A4703D9A4C2B5541713D0AB7E57A5041666666F64C2B5541295C8F72E57A5041CDCCCC0C4D2B5541D7A3702DE27A5041C3F5287C462B554114AE4791E27A504152B81E45462B5541A4703D2AE37A5041E17A14FE452B55418FC2F558E47A50410AD7A340482B5541D7A370ADE57A50418FC2F5F84A2B5541A4703D2AE77A5041F6285C6F472B554152B81EE5E67A5041CDCCCC8C462B5541295C8F92E87A50413D0AD733452B5541D7A370BDE87A504152B81ED53E2B5541B81E85BBE77A5041AE47E18A3B2B5541000000E0E47A50411F85EBF13D2B55418FC2F5D8E27A5041F6285CBF3A2B5541713D0AE7DE7A504166666696342B5541AE47E17ADE7A5041E17A147E372B5541B81E858BDB7A5041CDCCCCEC392B5541A4703DEAD17A5041CDCCCCAC3C2B5541A4703DFACE7A5041713D0A973C2B5541D7A3704DC57A5041666666663C2B5541E17A14AEC17A5041AE47E1AA3B2B5541F6285C1FC07A504185EB51F8392B5541000000B0BB7A50413D0AD7D33C2B5541E17A149EBA7A50415C8FC2A53E2B5541CDCCCC7CC47A504114AE47F1482B5541A4703D5AC87A5041C3F5284C4D2B554100000010C67A5041000000504F2B5541E17A14FEC37A5041713D0A77522B554133333303C17A5041F6285C6F572B5541E17A142EC77A5041AE47E1DA5C2B554148E17AE4C67A5041713D0A375D2B554152B81E55C67A504152B81EC55D2B554166666626C67A50410AD7A3005E2B5541B81E851BC57A504152B81EF55E2B5541B81E850BC07A50410AD7A350592B5541D7A370FDBC7A5041AE47E1FA5E2B55419A9999B9BE7A5041F6285CFF602B55419A999999C07A504114AE47B1632B5541F6285CBFC47A5041E17A14DE692B55418FC2F5E8C37A5041C3F5288C6A2B5541CDCCCC3CBF7A5041666666D6632B5541D7A3702DBE7A5041713D0A37652B5541C3F5281CBD7A5041AE47E1FA642B55419A9999D9BA7A5041295C8FE2672B5541A4703DDABF7A5041A4703DDA6D2B5541000000D0C17A50413D0AD7036F2B5541A4703DBAC37A50410AD7A3B06D2B554109000000D7A370BDC57A504133333313552B5541D7A370DDC57A50411F85EBF1532B5541CDCCCCECC67A5041A4703D1A532B5541C3F5289CC87A50413D0AD7C3532B55413D0AD733CA7A504100000080552B5541713D0AD7CB7A5041B81E85FB572B55410AD7A380CA7A50410AD7A3105A2B554152B81E65C87A50411F85EB51572B5541D7A370BDC57A504133333313552B554105000000D7A3700DC57A504152B81EB5602B55411F85EB71C87A50411F85EB51662B5541A4703DDAC77A504100000040672B554100000040C47A5041E17A144E612B5541D7A3700DC57A504152B81EB5602B5541080000008FC2F5D8D97A5041E17A14DE3D2B554185EB5118DC7A5041D7A3702D422B5541295C8F42DA7A5041666666C6422B5541295C8F32D87A5041D7A3701D402B5541333333A3D67A5041A4703DAA402B554114AE47A1D57A5041B81E85CB3F2B5541CDCCCC0CD77A5041295C8FD23D2B55418FC2F5D8D97A5041E17A14DE3D2B55411A0000000AD7A3B0D47A50415C8FC225582B5541F6285C8FD37A5041295C8FC2592B5541F6285CAFD17A504114AE47415A2B554185EB51E8CE7A50413D0AD7135B2B55411F85EB61CE7A504114AE4791592B554133333343D17A50410AD7A3D0582B55411F85EB01D27A50419A9999C9532B55410AD7A320D07A50411F85EB914F2B5541F6285CFFCD7A5041B81E852B502B5541F6285C2FCC7A5041666666C6502B55417B14AEA7CA7A504148E17A044F2B5541713D0AE7CA7A5041295C8F624C2B55415C8FC225CA7A50413D0AD7C3462B554166666626CA7A5041AE47E18A3E2B554148E17A04CE7A5041CDCCCC5C3D2B55410AD7A320D07A50417B14AEF73E2B55411F85EB11D47A5041A4703D4A3F2B5541666666A6D57A5041C3F5287C412B5541713D0A47D67A5041F6285C2F432B55415C8FC275D47A504166666696462B5541D7A370BDD27A5041E17A14EE492B55418FC2F578D27A50417B14AEC74D2B554166666606D47A5041713D0AB7502B55413D0AD7B3D37A5041666666A6532B5541B81E852BD57A50415C8FC295562B55410AD7A3B0D47A50415C8FC225582B554109000000295C8F92D97A504114AE47C14A2B55417B14AEF7D77A50417B14AE57452B55410AD7A3E0D77A5041C3F5289C442B5541000000D0DA7A50411F85EB81432B554152B81E45DB7A504166666626442B554185EB51C8DC7A50410AD7A350472B55418FC2F578DC7A5041EC51B8FE482B55411F85EB71DA7A5041333333134B2B5541295C8F92D97A504114AE47C14A2B55412100000087B3D12CDE7A5041F441A469422B5541C3F5288CDE7A50418FC2F538432B55418FC2F5A8DF7A504152B81EA5452B554152B81EE5E37A5041295C8F324F2B55410AD7A370E27A5041D7A3701D512B5541CDCCCC4CE07A504148E17A74502B554114AE4751DD7A50417B14AE27512B554100000060DD7A50415C8FC265512B554133333343DF7A5041EC51B86E532B5541D7A370DDDD7A504133333303552B55418FC2F548DE7A504148E17A045C2B5541B81E85BBDB7A504148E17AF45D2B55419A999939DB7A50410AD7A3D05B2B55415C8FC255DD7A504148E17A645A2B55417B14AEA7DB7A5041000000A0552B5541B81E85EBDC7A5041E17A146E542B5541EC51B80EDD7A5041333333D3522B55418FC2F598D77A504114AE47B1512B55413D0AD703D87A5041295C8FC2552B5541E17A14DED67A5041C3F5289C562B5541295C8F82D57A5041F6285C3F522B554166666656D57A5041B81E85BB512B5541AE47E10AD77A50419A9999C94F2B55417B14AEF7DC7A50415C8FC2C54C2B5541D7A3702DE07A50417B14AE174D2B55413D0AD723E17A5041E17A14FE4B2B55413D0AD723DD7A5041B81E85DB422B554120391C26DE7A5041C4824869422B554185EB5148DC7A50413D0AD7433E2B5541A4703D9ADE7A5041C3F5280C3D2B554166666696E07A504152B81EF5402B554148E17A64DE7A50411F85EB51422B554187B3D12CDE7A5041F441A469422B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000008486EC57DC7A5041383A82F9542B5541B81E85EBDC7A5041E17A146E542B5541EC51B80EDD7A5041333333D3522B5541FB975DA4DB7A50415E940A88522B55412A5022C7D97A5041A01B0E25522B554145CBF698D77A504104C151B1512B55413D0AD703D87A5041295C8FC2552B5541385316DED67A5041E197279C562B5541DCD05ACFD87A50412F6CCB0C562B554145BF32C3DA7A5041EA20AF77552B5541F766244EDC7A504157C8BF02552B55418486EC57DC7A5041383A82F9542B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981722 - 297593
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000700000050000000A4703DBAC37A50410AD7A3B06D2B5541EC51B85EC37A50418FC2F5686C2B5541A4703DCAC47A5041A4703D7A6B2B554152B81EF5C67A504152B81E456D2B554185EB51F8CC7A5041A4703D4A6B2B55419A999999CF7A5041F6285CAF692B55411F85EB61D17A5041CDCCCC9C672B55411F85EB71D07A5041D7A370FD652B55413D0AD753D47A5041D7A370AD642B5541C3F528DCD57A5041713D0A77612B55411F85EBD1D77A5041E17A14FE602B55410AD7A3D0D97A5041CDCCCC9C612B554185EB51E8DB7A5041B81E856B612B5541C3F528BCDC7A5041B81E857B602B5541C3F5282CDF7A5041713D0AE75F2B5541D7A3707DE17A5041AE47E18A5F2B5541C3F5283CE47A50410AD7A3B05F2B554185EB5198E57A504152B81E555F2B55411F85EBB1EA7A50417B14AED75D2B5541B81E85DBE87A5041C3F5289C5C2B554148E17A54E87A50418FC2F5485B2B55410AD7A330E97A504148E17A945A2B55417B14AE77EA7A50418FC2F5E85A2B5541B81E85DBEB7A5041666666D65B2B5541C3F5282CED7A5041EC51B81E5D2B55410AD7A380EE7A5041AE47E1BA5C2B5541333333A3EF7A5041666666665C2B5541D7A3708DF07A50411F85EB215C2B5541AE47E14AED7A5041666666B6542B554148E17A14EC7A5041EC51B80E532B554152B81EA5EA7A50419A999979502B5541713D0AC7E77A5041CDCCCCAC502B55419A999979E67A5041A4703D9A4C2B5541713D0AB7E57A5041666666F64C2B5541295C8F72E57A5041CDCCCC0C4D2B5541D7A3702DE27A5041C3F5287C462B554114AE4791E27A504152B81E45462B5541A4703D2AE37A5041E17A14FE452B55418FC2F558E47A50410AD7A340482B5541D7A370ADE57A50418FC2F5F84A2B5541A4703D2AE77A5041F6285C6F472B554152B81EE5E67A5041CDCCCC8C462B5541295C8F92E87A50413D0AD733452B5541D7A370BDE87A504152B81ED53E2B5541B81E85BBE77A5041AE47E18A3B2B5541000000E0E47A50411F85EBF13D2B55418FC2F5D8E27A5041F6285CBF3A2B5541713D0AE7DE7A504166666696342B5541AE47E17ADE7A5041E17A147E372B5541B81E858BDB7A5041CDCCCCEC392B5541A4703DEAD17A5041CDCCCCAC3C2B5541A4703DFACE7A5041713D0A973C2B5541D7A3704DC57A5041666666663C2B5541E17A14AEC17A5041AE47E1AA3B2B5541F6285C1FC07A504185EB51F8392B5541000000B0BB7A50413D0AD7D33C2B5541E17A149EBA7A50415C8FC2A53E2B5541CDCCCC7CC47A504114AE47F1482B5541A4703D5AC87A5041C3F5284C4D2B554100000010C67A5041000000504F2B5541E17A14FEC37A5041713D0A77522B554133333303C17A5041F6285C6F572B5541E17A142EC77A5041AE47E1DA5C2B554148E17AE4C67A5041713D0A375D2B554152B81E55C67A504152B81EC55D2B554166666626C67A50410AD7A3005E2B5541B81E851BC57A504152B81EF55E2B5541B81E850BC07A50410AD7A350592B5541D7A370FDBC7A5041AE47E1FA5E2B55419A9999B9BE7A5041F6285CFF602B55419A999999C07A504114AE47B1632B5541F6285CBFC47A5041E17A14DE692B55418FC2F5E8C37A5041C3F5288C6A2B5541CDCCCC3CBF7A5041666666D6632B5541D7A3702DBE7A5041713D0A37652B5541C3F5281CBD7A5041AE47E1FA642B55419A9999D9BA7A5041295C8FE2672B5541A4703DDABF7A5041A4703DDA6D2B5541000000D0C17A50413D0AD7036F2B5541A4703DBAC37A50410AD7A3B06D2B554109000000D7A370BDC57A504133333313552B5541D7A370DDC57A50411F85EBF1532B5541CDCCCCECC67A5041A4703D1A532B5541C3F5289CC87A50413D0AD7C3532B55413D0AD733CA7A504100000080552B5541713D0AD7CB7A5041B81E85FB572B55410AD7A380CA7A50410AD7A3105A2B554152B81E65C87A50411F85EB51572B5541D7A370BDC57A504133333313552B554105000000D7A3700DC57A504152B81EB5602B55411F85EB71C87A50411F85EB51662B5541A4703DDAC77A504100000040672B554100000040C47A5041E17A144E612B5541D7A3700DC57A504152B81EB5602B5541080000008FC2F5D8D97A5041E17A14DE3D2B554185EB5118DC7A5041D7A3702D422B5541295C8F42DA7A5041666666C6422B5541295C8F32D87A5041D7A3701D402B5541333333A3D67A5041A4703DAA402B554114AE47A1D57A5041B81E85CB3F2B5541CDCCCC0CD77A5041295C8FD23D2B55418FC2F5D8D97A5041E17A14DE3D2B55411A0000000AD7A3B0D47A50415C8FC225582B5541F6285C8FD37A5041295C8FC2592B5541F6285CAFD17A504114AE47415A2B554185EB51E8CE7A50413D0AD7135B2B55411F85EB61CE7A504114AE4791592B554133333343D17A50410AD7A3D0582B55411F85EB01D27A50419A9999C9532B55410AD7A320D07A50411F85EB914F2B5541F6285CFFCD7A5041B81E852B502B5541F6285C2FCC7A5041666666C6502B55417B14AEA7CA7A504148E17A044F2B5541713D0AE7CA7A5041295C8F624C2B55415C8FC225CA7A50413D0AD7C3462B554166666626CA7A5041AE47E18A3E2B554148E17A04CE7A5041CDCCCC5C3D2B55410AD7A320D07A50417B14AEF73E2B55411F85EB11D47A5041A4703D4A3F2B5541666666A6D57A5041C3F5287C412B5541713D0A47D67A5041F6285C2F432B55415C8FC275D47A504166666696462B5541D7A370BDD27A5041E17A14EE492B55418FC2F578D27A50417B14AEC74D2B554166666606D47A5041713D0AB7502B55413D0AD7B3D37A5041666666A6532B5541B81E852BD57A50415C8FC295562B55410AD7A3B0D47A50415C8FC225582B554109000000295C8F92D97A504114AE47C14A2B55417B14AEF7D77A50417B14AE57452B55410AD7A3E0D77A5041C3F5289C442B5541000000D0DA7A50411F85EB81432B554152B81E45DB7A504166666626442B554185EB51C8DC7A50410AD7A350472B55418FC2F578DC7A5041EC51B8FE482B55411F85EB71DA7A5041333333134B2B5541295C8F92D97A504114AE47C14A2B55412100000087B3D12CDE7A5041F441A469422B5541C3F5288CDE7A50418FC2F538432B55418FC2F5A8DF7A504152B81EA5452B554152B81EE5E37A5041295C8F324F2B55410AD7A370E27A5041D7A3701D512B5541CDCCCC4CE07A504148E17A74502B554114AE4751DD7A50417B14AE27512B554100000060DD7A50415C8FC265512B554133333343DF7A5041EC51B86E532B5541D7A370DDDD7A504133333303552B55418FC2F548DE7A504148E17A045C2B5541B81E85BBDB7A504148E17AF45D2B55419A999939DB7A50410AD7A3D05B2B55415C8FC255DD7A504148E17A645A2B55417B14AEA7DB7A5041000000A0552B5541B81E85EBDC7A5041E17A146E542B5541EC51B80EDD7A5041333333D3522B55418FC2F598D77A504114AE47B1512B55413D0AD703D87A5041295C8FC2552B5541E17A14DED67A5041C3F5289C562B5541295C8F82D57A5041F6285C3F522B554166666656D57A5041B81E85BB512B5541AE47E10AD77A50419A9999C94F2B55417B14AEF7DC7A50415C8FC2C54C2B5541D7A3702DE07A50417B14AE174D2B55413D0AD723E17A5041E17A14FE4B2B55413D0AD723DD7A5041B81E85DB422B554120391C26DE7A5041C4824869422B554185EB5148DC7A50413D0AD7433E2B5541A4703D9ADE7A5041C3F5280C3D2B554166666696E07A504152B81EF5402B554148E17A64DE7A50411F85EB51422B554187B3D12CDE7A5041F441A469422B5541
+</a>
+
+<b>
+0106000000010000000103000000010000002F000000F7B57809BE7A50415FF3DB095D2B55418C8C0B7EBD7A50414F1B670C5E2B5541D7A370FDBC7A5041AE47E1FA5E2B554114679AB9BE7A50415B485DFF602B554137D49A99C07A5041E17C47B1632B55419046D151C47A504131DEFC3A692B554109285CBFC47A5041807914DE692B5541F6189999C57A504199833D1A692B55417930D663C67A50415A645C6F682B5541E209B71EC77A50418B30EAD1672B5541AF6A3DDAC77A50412BF6FF3F672B55410A38580CC67A50413CAAC245642B55416613FF3FC47A504121F3144E612B5541DF75700DC57A50418A021EB5602B5541C857EB71C87A5041F2FEEA51662B5541DC719809C97A5041B2F1C135652B5541FDAF4891C97A504126AE1F45642B554120085238CA7A50412B22B91E632B55410C1DE0DACA7A50410E9109C7612B55418FBD837BCB7A50411C8EF458602B5541CA12E14ACB7A504132F014FE5F2B5541B8F50927C97A5041888F1D355C2B5541F25C1F85C87A5041918C47215B2B554153D4F4B8C97A504159A3E29A592B5541D09CF598C57A5041D5BE8ED2552B5541C7484204C67A5041B229154F552B5541D7A370BDC57A504133333313552B554157E466D4C57A504162CD9F43542B5541E17A14FEC37A5041713D0A77522B5541CF5B523FC37A50410C112FB5532B554177905E2AC27A50415BB21483552B55415C1696B1C17A50416269854C562B554133333303C17A5041F6285C6F572B55418E5D4720C77A5041DC60C0CE5C2B5541FC47132EC77A50415FEFDFDA5C2B5541CB7B85CBC77A5041A71DA3005C2B5541E17A142EC77A5041AE47E1DA5C2B554154DA7AE4C67A504155440A375D2B554152B81E55C67A504152B81EC55D2B554154EB6526C67A5041C847A4005E2B554176A78D9AC57A504123BABF805E2B5541ACBB851BC57A50411DE81FF55E2B5541D9AD650BC07A50415D24DE50592B55417FE49AAABF7A5041D15D5A045A2B55410A460709BF7A50413F76F82F5B2B55417A5EA97DBE7A5041685367325C2B5541F7B57809BE7A50415FF3DB095D2B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981722 - 297643
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000700000050000000A4703DBAC37A50410AD7A3B06D2B5541EC51B85EC37A50418FC2F5686C2B5541A4703DCAC47A5041A4703D7A6B2B554152B81EF5C67A504152B81E456D2B554185EB51F8CC7A5041A4703D4A6B2B55419A999999CF7A5041F6285CAF692B55411F85EB61D17A5041CDCCCC9C672B55411F85EB71D07A5041D7A370FD652B55413D0AD753D47A5041D7A370AD642B5541C3F528DCD57A5041713D0A77612B55411F85EBD1D77A5041E17A14FE602B55410AD7A3D0D97A5041CDCCCC9C612B554185EB51E8DB7A5041B81E856B612B5541C3F528BCDC7A5041B81E857B602B5541C3F5282CDF7A5041713D0AE75F2B5541D7A3707DE17A5041AE47E18A5F2B5541C3F5283CE47A50410AD7A3B05F2B554185EB5198E57A504152B81E555F2B55411F85EBB1EA7A50417B14AED75D2B5541B81E85DBE87A5041C3F5289C5C2B554148E17A54E87A50418FC2F5485B2B55410AD7A330E97A504148E17A945A2B55417B14AE77EA7A50418FC2F5E85A2B5541B81E85DBEB7A5041666666D65B2B5541C3F5282CED7A5041EC51B81E5D2B55410AD7A380EE7A5041AE47E1BA5C2B5541333333A3EF7A5041666666665C2B5541D7A3708DF07A50411F85EB215C2B5541AE47E14AED7A5041666666B6542B554148E17A14EC7A5041EC51B80E532B554152B81EA5EA7A50419A999979502B5541713D0AC7E77A5041CDCCCCAC502B55419A999979E67A5041A4703D9A4C2B5541713D0AB7E57A5041666666F64C2B5541295C8F72E57A5041CDCCCC0C4D2B5541D7A3702DE27A5041C3F5287C462B554114AE4791E27A504152B81E45462B5541A4703D2AE37A5041E17A14FE452B55418FC2F558E47A50410AD7A340482B5541D7A370ADE57A50418FC2F5F84A2B5541A4703D2AE77A5041F6285C6F472B554152B81EE5E67A5041CDCCCC8C462B5541295C8F92E87A50413D0AD733452B5541D7A370BDE87A504152B81ED53E2B5541B81E85BBE77A5041AE47E18A3B2B5541000000E0E47A50411F85EBF13D2B55418FC2F5D8E27A5041F6285CBF3A2B5541713D0AE7DE7A504166666696342B5541AE47E17ADE7A5041E17A147E372B5541B81E858BDB7A5041CDCCCCEC392B5541A4703DEAD17A5041CDCCCCAC3C2B5541A4703DFACE7A5041713D0A973C2B5541D7A3704DC57A5041666666663C2B5541E17A14AEC17A5041AE47E1AA3B2B5541F6285C1FC07A504185EB51F8392B5541000000B0BB7A50413D0AD7D33C2B5541E17A149EBA7A50415C8FC2A53E2B5541CDCCCC7CC47A504114AE47F1482B5541A4703D5AC87A5041C3F5284C4D2B554100000010C67A5041000000504F2B5541E17A14FEC37A5041713D0A77522B554133333303C17A5041F6285C6F572B5541E17A142EC77A5041AE47E1DA5C2B554148E17AE4C67A5041713D0A375D2B554152B81E55C67A504152B81EC55D2B554166666626C67A50410AD7A3005E2B5541B81E851BC57A504152B81EF55E2B5541B81E850BC07A50410AD7A350592B5541D7A370FDBC7A5041AE47E1FA5E2B55419A9999B9BE7A5041F6285CFF602B55419A999999C07A504114AE47B1632B5541F6285CBFC47A5041E17A14DE692B55418FC2F5E8C37A5041C3F5288C6A2B5541CDCCCC3CBF7A5041666666D6632B5541D7A3702DBE7A5041713D0A37652B5541C3F5281CBD7A5041AE47E1FA642B55419A9999D9BA7A5041295C8FE2672B5541A4703DDABF7A5041A4703DDA6D2B5541000000D0C17A50413D0AD7036F2B5541A4703DBAC37A50410AD7A3B06D2B554109000000D7A370BDC57A504133333313552B5541D7A370DDC57A50411F85EBF1532B5541CDCCCCECC67A5041A4703D1A532B5541C3F5289CC87A50413D0AD7C3532B55413D0AD733CA7A504100000080552B5541713D0AD7CB7A5041B81E85FB572B55410AD7A380CA7A50410AD7A3105A2B554152B81E65C87A50411F85EB51572B5541D7A370BDC57A504133333313552B554105000000D7A3700DC57A504152B81EB5602B55411F85EB71C87A50411F85EB51662B5541A4703DDAC77A504100000040672B554100000040C47A5041E17A144E612B5541D7A3700DC57A504152B81EB5602B5541080000008FC2F5D8D97A5041E17A14DE3D2B554185EB5118DC7A5041D7A3702D422B5541295C8F42DA7A5041666666C6422B5541295C8F32D87A5041D7A3701D402B5541333333A3D67A5041A4703DAA402B554114AE47A1D57A5041B81E85CB3F2B5541CDCCCC0CD77A5041295C8FD23D2B55418FC2F5D8D97A5041E17A14DE3D2B55411A0000000AD7A3B0D47A50415C8FC225582B5541F6285C8FD37A5041295C8FC2592B5541F6285CAFD17A504114AE47415A2B554185EB51E8CE7A50413D0AD7135B2B55411F85EB61CE7A504114AE4791592B554133333343D17A50410AD7A3D0582B55411F85EB01D27A50419A9999C9532B55410AD7A320D07A50411F85EB914F2B5541F6285CFFCD7A5041B81E852B502B5541F6285C2FCC7A5041666666C6502B55417B14AEA7CA7A504148E17A044F2B5541713D0AE7CA7A5041295C8F624C2B55415C8FC225CA7A50413D0AD7C3462B554166666626CA7A5041AE47E18A3E2B554148E17A04CE7A5041CDCCCC5C3D2B55410AD7A320D07A50417B14AEF73E2B55411F85EB11D47A5041A4703D4A3F2B5541666666A6D57A5041C3F5287C412B5541713D0A47D67A5041F6285C2F432B55415C8FC275D47A504166666696462B5541D7A370BDD27A5041E17A14EE492B55418FC2F578D27A50417B14AEC74D2B554166666606D47A5041713D0AB7502B55413D0AD7B3D37A5041666666A6532B5541B81E852BD57A50415C8FC295562B55410AD7A3B0D47A50415C8FC225582B554109000000295C8F92D97A504114AE47C14A2B55417B14AEF7D77A50417B14AE57452B55410AD7A3E0D77A5041C3F5289C442B5541000000D0DA7A50411F85EB81432B554152B81E45DB7A504166666626442B554185EB51C8DC7A50410AD7A350472B55418FC2F578DC7A5041EC51B8FE482B55411F85EB71DA7A5041333333134B2B5541295C8F92D97A504114AE47C14A2B55412100000087B3D12CDE7A5041F441A469422B5541C3F5288CDE7A50418FC2F538432B55418FC2F5A8DF7A504152B81EA5452B554152B81EE5E37A5041295C8F324F2B55410AD7A370E27A5041D7A3701D512B5541CDCCCC4CE07A504148E17A74502B554114AE4751DD7A50417B14AE27512B554100000060DD7A50415C8FC265512B554133333343DF7A5041EC51B86E532B5541D7A370DDDD7A504133333303552B55418FC2F548DE7A504148E17A045C2B5541B81E85BBDB7A504148E17AF45D2B55419A999939DB7A50410AD7A3D05B2B55415C8FC255DD7A504148E17A645A2B55417B14AEA7DB7A5041000000A0552B5541B81E85EBDC7A5041E17A146E542B5541EC51B80EDD7A5041333333D3522B55418FC2F598D77A504114AE47B1512B55413D0AD703D87A5041295C8FC2552B5541E17A14DED67A5041C3F5289C562B5541295C8F82D57A5041F6285C3F522B554166666656D57A5041B81E85BB512B5541AE47E10AD77A50419A9999C94F2B55417B14AEF7DC7A50415C8FC2C54C2B5541D7A3702DE07A50417B14AE174D2B55413D0AD723E17A5041E17A14FE4B2B55413D0AD723DD7A5041B81E85DB422B554120391C26DE7A5041C4824869422B554185EB5148DC7A50413D0AD7433E2B5541A4703D9ADE7A5041C3F5280C3D2B554166666696E07A504152B81EF5402B554148E17A64DE7A50411F85EB51422B554187B3D12CDE7A5041F441A469422B5541
+</a>
+
+<b>
+01060000000100000001030000000100000013000000454F6DE6CD7A5041AF6DEEB86A2B554167129022CA7A5041CB824751662B554151813443C97A50418C546F0D672B5541918B1EB5C87A5041B3BE5A7F672B55410C74CCCCC77A5041E1B10040682B5541844A9819C77A5041DA04D6D3682B5541E6B6B74EC67A5041767E5D7F692B554192F4C235C57A5041D57E846B6A2B5541203F7CD4C37A5041F9C4D5836B2B5541B6D98A3DC47A50411F7EA2D66B2B5541A4703DCAC47A5041A4703D7A6B2B554152B81EF5C67A504152B81E456D2B55419B7D4587C77A5041CE83FD146D2B5541BB98ACF3C87A50417EC5FC9C6C2B55414954A6E3C97A50419EC9F54D6C2B5541D5327BD7CA7A5041CFB9A9FD6B2B554185EB51F8CC7A5041A4703D4A6B2B5541AD2E9FF8CC7A5041174A0E4A6B2B5541454F6DE6CD7A5041AF6DEEB86A2B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981722 - 345895
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000700000050000000A4703DBAC37A50410AD7A3B06D2B5541EC51B85EC37A50418FC2F5686C2B5541A4703DCAC47A5041A4703D7A6B2B554152B81EF5C67A504152B81E456D2B554185EB51F8CC7A5041A4703D4A6B2B55419A999999CF7A5041F6285CAF692B55411F85EB61D17A5041CDCCCC9C672B55411F85EB71D07A5041D7A370FD652B55413D0AD753D47A5041D7A370AD642B5541C3F528DCD57A5041713D0A77612B55411F85EBD1D77A5041E17A14FE602B55410AD7A3D0D97A5041CDCCCC9C612B554185EB51E8DB7A5041B81E856B612B5541C3F528BCDC7A5041B81E857B602B5541C3F5282CDF7A5041713D0AE75F2B5541D7A3707DE17A5041AE47E18A5F2B5541C3F5283CE47A50410AD7A3B05F2B554185EB5198E57A504152B81E555F2B55411F85EBB1EA7A50417B14AED75D2B5541B81E85DBE87A5041C3F5289C5C2B554148E17A54E87A50418FC2F5485B2B55410AD7A330E97A504148E17A945A2B55417B14AE77EA7A50418FC2F5E85A2B5541B81E85DBEB7A5041666666D65B2B5541C3F5282CED7A5041EC51B81E5D2B55410AD7A380EE7A5041AE47E1BA5C2B5541333333A3EF7A5041666666665C2B5541D7A3708DF07A50411F85EB215C2B5541AE47E14AED7A5041666666B6542B554148E17A14EC7A5041EC51B80E532B554152B81EA5EA7A50419A999979502B5541713D0AC7E77A5041CDCCCCAC502B55419A999979E67A5041A4703D9A4C2B5541713D0AB7E57A5041666666F64C2B5541295C8F72E57A5041CDCCCC0C4D2B5541D7A3702DE27A5041C3F5287C462B554114AE4791E27A504152B81E45462B5541A4703D2AE37A5041E17A14FE452B55418FC2F558E47A50410AD7A340482B5541D7A370ADE57A50418FC2F5F84A2B5541A4703D2AE77A5041F6285C6F472B554152B81EE5E67A5041CDCCCC8C462B5541295C8F92E87A50413D0AD733452B5541D7A370BDE87A504152B81ED53E2B5541B81E85BBE77A5041AE47E18A3B2B5541000000E0E47A50411F85EBF13D2B55418FC2F5D8E27A5041F6285CBF3A2B5541713D0AE7DE7A504166666696342B5541AE47E17ADE7A5041E17A147E372B5541B81E858BDB7A5041CDCCCCEC392B5541A4703DEAD17A5041CDCCCCAC3C2B5541A4703DFACE7A5041713D0A973C2B5541D7A3704DC57A5041666666663C2B5541E17A14AEC17A5041AE47E1AA3B2B5541F6285C1FC07A504185EB51F8392B5541000000B0BB7A50413D0AD7D33C2B5541E17A149EBA7A50415C8FC2A53E2B5541CDCCCC7CC47A504114AE47F1482B5541A4703D5AC87A5041C3F5284C4D2B554100000010C67A5041000000504F2B5541E17A14FEC37A5041713D0A77522B554133333303C17A5041F6285C6F572B5541E17A142EC77A5041AE47E1DA5C2B554148E17AE4C67A5041713D0A375D2B554152B81E55C67A504152B81EC55D2B554166666626C67A50410AD7A3005E2B5541B81E851BC57A504152B81EF55E2B5541B81E850BC07A50410AD7A350592B5541D7A370FDBC7A5041AE47E1FA5E2B55419A9999B9BE7A5041F6285CFF602B55419A999999C07A504114AE47B1632B5541F6285CBFC47A5041E17A14DE692B55418FC2F5E8C37A5041C3F5288C6A2B5541CDCCCC3CBF7A5041666666D6632B5541D7A3702DBE7A5041713D0A37652B5541C3F5281CBD7A5041AE47E1FA642B55419A9999D9BA7A5041295C8FE2672B5541A4703DDABF7A5041A4703DDA6D2B5541000000D0C17A50413D0AD7036F2B5541A4703DBAC37A50410AD7A3B06D2B554109000000D7A370BDC57A504133333313552B5541D7A370DDC57A50411F85EBF1532B5541CDCCCCECC67A5041A4703D1A532B5541C3F5289CC87A50413D0AD7C3532B55413D0AD733CA7A504100000080552B5541713D0AD7CB7A5041B81E85FB572B55410AD7A380CA7A50410AD7A3105A2B554152B81E65C87A50411F85EB51572B5541D7A370BDC57A504133333313552B554105000000D7A3700DC57A504152B81EB5602B55411F85EB71C87A50411F85EB51662B5541A4703DDAC77A504100000040672B554100000040C47A5041E17A144E612B5541D7A3700DC57A504152B81EB5602B5541080000008FC2F5D8D97A5041E17A14DE3D2B554185EB5118DC7A5041D7A3702D422B5541295C8F42DA7A5041666666C6422B5541295C8F32D87A5041D7A3701D402B5541333333A3D67A5041A4703DAA402B554114AE47A1D57A5041B81E85CB3F2B5541CDCCCC0CD77A5041295C8FD23D2B55418FC2F5D8D97A5041E17A14DE3D2B55411A0000000AD7A3B0D47A50415C8FC225582B5541F6285C8FD37A5041295C8FC2592B5541F6285CAFD17A504114AE47415A2B554185EB51E8CE7A50413D0AD7135B2B55411F85EB61CE7A504114AE4791592B554133333343D17A50410AD7A3D0582B55411F85EB01D27A50419A9999C9532B55410AD7A320D07A50411F85EB914F2B5541F6285CFFCD7A5041B81E852B502B5541F6285C2FCC7A5041666666C6502B55417B14AEA7CA7A504148E17A044F2B5541713D0AE7CA7A5041295C8F624C2B55415C8FC225CA7A50413D0AD7C3462B554166666626CA7A5041AE47E18A3E2B554148E17A04CE7A5041CDCCCC5C3D2B55410AD7A320D07A50417B14AEF73E2B55411F85EB11D47A5041A4703D4A3F2B5541666666A6D57A5041C3F5287C412B5541713D0A47D67A5041F6285C2F432B55415C8FC275D47A504166666696462B5541D7A370BDD27A5041E17A14EE492B55418FC2F578D27A50417B14AEC74D2B554166666606D47A5041713D0AB7502B55413D0AD7B3D37A5041666666A6532B5541B81E852BD57A50415C8FC295562B55410AD7A3B0D47A50415C8FC225582B554109000000295C8F92D97A504114AE47C14A2B55417B14AEF7D77A50417B14AE57452B55410AD7A3E0D77A5041C3F5289C442B5541000000D0DA7A50411F85EB81432B554152B81E45DB7A504166666626442B554185EB51C8DC7A50410AD7A350472B55418FC2F578DC7A5041EC51B8FE482B55411F85EB71DA7A5041333333134B2B5541295C8F92D97A504114AE47C14A2B55412100000087B3D12CDE7A5041F441A469422B5541C3F5288CDE7A50418FC2F538432B55418FC2F5A8DF7A504152B81EA5452B554152B81EE5E37A5041295C8F324F2B55410AD7A370E27A5041D7A3701D512B5541CDCCCC4CE07A504148E17A74502B554114AE4751DD7A50417B14AE27512B554100000060DD7A50415C8FC265512B554133333343DF7A5041EC51B86E532B5541D7A370DDDD7A504133333303552B55418FC2F548DE7A504148E17A045C2B5541B81E85BBDB7A504148E17AF45D2B55419A999939DB7A50410AD7A3D05B2B55415C8FC255DD7A504148E17A645A2B55417B14AEA7DB7A5041000000A0552B5541B81E85EBDC7A5041E17A146E542B5541EC51B80EDD7A5041333333D3522B55418FC2F598D77A504114AE47B1512B55413D0AD703D87A5041295C8FC2552B5541E17A14DED67A5041C3F5289C562B5541295C8F82D57A5041F6285C3F522B554166666656D57A5041B81E85BB512B5541AE47E10AD77A50419A9999C94F2B55417B14AEF7DC7A50415C8FC2C54C2B5541D7A3702DE07A50417B14AE174D2B55413D0AD723E17A5041E17A14FE4B2B55413D0AD723DD7A5041B81E85DB422B554120391C26DE7A5041C4824869422B554185EB5148DC7A50413D0AD7433E2B5541A4703D9ADE7A5041C3F5280C3D2B554166666696E07A504152B81EF5402B554148E17A64DE7A50411F85EB51422B554187B3D12CDE7A5041F441A469422B5541
+</a>
+
+<b>
+010600000001000000010300000001000000150000004DC91B90DB7A5041F2D499ED492B5541F7D40A90DB7A5041AC39ABED492B5541163D0590DB7A5041A3F6B0ED492B5541910AA3D0DB7A5041C80B0AA74A2B5541B9FDF418DC7A5041D6F97B544B2B55410B05720DDB7A5041CFD5B7BE4B2B55413FE3E13ADA7A50417D04E12A4C2B5541844F6DEEDA7A5041CA5401CF4D2B55417B14AEF7DC7A50415C8FC2C54C2B554152689513DE7A5041E8D90FE24C2B554129A0FD20DF7A50410430EBFC4C2B5541D7A3702DE07A50417B14AE174D2B554114076F6FE07A50415A3542CC4C2B5541A1445118E07A50417516C3F54B2B5541FEF8A400DE7A5041B8BFA3D0462B554187A800E0DC7A50412B0214EE432B5541DD9D71CDDB7A50416333D763442B5541BC1EAD74DB7A50412916EA89442B554185EB51C8DC7A50410AD7A350472B55413839F678DC7A50417C5BB8FE482B55414DC91B90DB7A5041F2D499ED492B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981722 - 346245
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000700000050000000A4703DBAC37A50410AD7A3B06D2B5541EC51B85EC37A50418FC2F5686C2B5541A4703DCAC47A5041A4703D7A6B2B554152B81EF5C67A504152B81E456D2B554185EB51F8CC7A5041A4703D4A6B2B55419A999999CF7A5041F6285CAF692B55411F85EB61D17A5041CDCCCC9C672B55411F85EB71D07A5041D7A370FD652B55413D0AD753D47A5041D7A370AD642B5541C3F528DCD57A5041713D0A77612B55411F85EBD1D77A5041E17A14FE602B55410AD7A3D0D97A5041CDCCCC9C612B554185EB51E8DB7A5041B81E856B612B5541C3F528BCDC7A5041B81E857B602B5541C3F5282CDF7A5041713D0AE75F2B5541D7A3707DE17A5041AE47E18A5F2B5541C3F5283CE47A50410AD7A3B05F2B554185EB5198E57A504152B81E555F2B55411F85EBB1EA7A50417B14AED75D2B5541B81E85DBE87A5041C3F5289C5C2B554148E17A54E87A50418FC2F5485B2B55410AD7A330E97A504148E17A945A2B55417B14AE77EA7A50418FC2F5E85A2B5541B81E85DBEB7A5041666666D65B2B5541C3F5282CED7A5041EC51B81E5D2B55410AD7A380EE7A5041AE47E1BA5C2B5541333333A3EF7A5041666666665C2B5541D7A3708DF07A50411F85EB215C2B5541AE47E14AED7A5041666666B6542B554148E17A14EC7A5041EC51B80E532B554152B81EA5EA7A50419A999979502B5541713D0AC7E77A5041CDCCCCAC502B55419A999979E67A5041A4703D9A4C2B5541713D0AB7E57A5041666666F64C2B5541295C8F72E57A5041CDCCCC0C4D2B5541D7A3702DE27A5041C3F5287C462B554114AE4791E27A504152B81E45462B5541A4703D2AE37A5041E17A14FE452B55418FC2F558E47A50410AD7A340482B5541D7A370ADE57A50418FC2F5F84A2B5541A4703D2AE77A5041F6285C6F472B554152B81EE5E67A5041CDCCCC8C462B5541295C8F92E87A50413D0AD733452B5541D7A370BDE87A504152B81ED53E2B5541B81E85BBE77A5041AE47E18A3B2B5541000000E0E47A50411F85EBF13D2B55418FC2F5D8E27A5041F6285CBF3A2B5541713D0AE7DE7A504166666696342B5541AE47E17ADE7A5041E17A147E372B5541B81E858BDB7A5041CDCCCCEC392B5541A4703DEAD17A5041CDCCCCAC3C2B5541A4703DFACE7A5041713D0A973C2B5541D7A3704DC57A5041666666663C2B5541E17A14AEC17A5041AE47E1AA3B2B5541F6285C1FC07A504185EB51F8392B5541000000B0BB7A50413D0AD7D33C2B5541E17A149EBA7A50415C8FC2A53E2B5541CDCCCC7CC47A504114AE47F1482B5541A4703D5AC87A5041C3F5284C4D2B554100000010C67A5041000000504F2B5541E17A14FEC37A5041713D0A77522B554133333303C17A5041F6285C6F572B5541E17A142EC77A5041AE47E1DA5C2B554148E17AE4C67A5041713D0A375D2B554152B81E55C67A504152B81EC55D2B554166666626C67A50410AD7A3005E2B5541B81E851BC57A504152B81EF55E2B5541B81E850BC07A50410AD7A350592B5541D7A370FDBC7A5041AE47E1FA5E2B55419A9999B9BE7A5041F6285CFF602B55419A999999C07A504114AE47B1632B5541F6285CBFC47A5041E17A14DE692B55418FC2F5E8C37A5041C3F5288C6A2B5541CDCCCC3CBF7A5041666666D6632B5541D7A3702DBE7A5041713D0A37652B5541C3F5281CBD7A5041AE47E1FA642B55419A9999D9BA7A5041295C8FE2672B5541A4703DDABF7A5041A4703DDA6D2B5541000000D0C17A50413D0AD7036F2B5541A4703DBAC37A50410AD7A3B06D2B554109000000D7A370BDC57A504133333313552B5541D7A370DDC57A50411F85EBF1532B5541CDCCCCECC67A5041A4703D1A532B5541C3F5289CC87A50413D0AD7C3532B55413D0AD733CA7A504100000080552B5541713D0AD7CB7A5041B81E85FB572B55410AD7A380CA7A50410AD7A3105A2B554152B81E65C87A50411F85EB51572B5541D7A370BDC57A504133333313552B554105000000D7A3700DC57A504152B81EB5602B55411F85EB71C87A50411F85EB51662B5541A4703DDAC77A504100000040672B554100000040C47A5041E17A144E612B5541D7A3700DC57A504152B81EB5602B5541080000008FC2F5D8D97A5041E17A14DE3D2B554185EB5118DC7A5041D7A3702D422B5541295C8F42DA7A5041666666C6422B5541295C8F32D87A5041D7A3701D402B5541333333A3D67A5041A4703DAA402B554114AE47A1D57A5041B81E85CB3F2B5541CDCCCC0CD77A5041295C8FD23D2B55418FC2F5D8D97A5041E17A14DE3D2B55411A0000000AD7A3B0D47A50415C8FC225582B5541F6285C8FD37A5041295C8FC2592B5541F6285CAFD17A504114AE47415A2B554185EB51E8CE7A50413D0AD7135B2B55411F85EB61CE7A504114AE4791592B554133333343D17A50410AD7A3D0582B55411F85EB01D27A50419A9999C9532B55410AD7A320D07A50411F85EB914F2B5541F6285CFFCD7A5041B81E852B502B5541F6285C2FCC7A5041666666C6502B55417B14AEA7CA7A504148E17A044F2B5541713D0AE7CA7A5041295C8F624C2B55415C8FC225CA7A50413D0AD7C3462B554166666626CA7A5041AE47E18A3E2B554148E17A04CE7A5041CDCCCC5C3D2B55410AD7A320D07A50417B14AEF73E2B55411F85EB11D47A5041A4703D4A3F2B5541666666A6D57A5041C3F5287C412B5541713D0A47D67A5041F6285C2F432B55415C8FC275D47A504166666696462B5541D7A370BDD27A5041E17A14EE492B55418FC2F578D27A50417B14AEC74D2B554166666606D47A5041713D0AB7502B55413D0AD7B3D37A5041666666A6532B5541B81E852BD57A50415C8FC295562B55410AD7A3B0D47A50415C8FC225582B554109000000295C8F92D97A504114AE47C14A2B55417B14AEF7D77A50417B14AE57452B55410AD7A3E0D77A5041C3F5289C442B5541000000D0DA7A50411F85EB81432B554152B81E45DB7A504166666626442B554185EB51C8DC7A50410AD7A350472B55418FC2F578DC7A5041EC51B8FE482B55411F85EB71DA7A5041333333134B2B5541295C8F92D97A504114AE47C14A2B55412100000087B3D12CDE7A5041F441A469422B5541C3F5288CDE7A50418FC2F538432B55418FC2F5A8DF7A504152B81EA5452B554152B81EE5E37A5041295C8F324F2B55410AD7A370E27A5041D7A3701D512B5541CDCCCC4CE07A504148E17A74502B554114AE4751DD7A50417B14AE27512B554100000060DD7A50415C8FC265512B554133333343DF7A5041EC51B86E532B5541D7A370DDDD7A504133333303552B55418FC2F548DE7A504148E17A045C2B5541B81E85BBDB7A504148E17AF45D2B55419A999939DB7A50410AD7A3D05B2B55415C8FC255DD7A504148E17A645A2B55417B14AEA7DB7A5041000000A0552B5541B81E85EBDC7A5041E17A146E542B5541EC51B80EDD7A5041333333D3522B55418FC2F598D77A504114AE47B1512B55413D0AD703D87A5041295C8FC2552B5541E17A14DED67A5041C3F5289C562B5541295C8F82D57A5041F6285C3F522B554166666656D57A5041B81E85BB512B5541AE47E10AD77A50419A9999C94F2B55417B14AEF7DC7A50415C8FC2C54C2B5541D7A3702DE07A50417B14AE174D2B55413D0AD723E17A5041E17A14FE4B2B55413D0AD723DD7A5041B81E85DB422B554120391C26DE7A5041C4824869422B554185EB5148DC7A50413D0AD7433E2B5541A4703D9ADE7A5041C3F5280C3D2B554166666696E07A504152B81EF5402B554148E17A64DE7A50411F85EB51422B554187B3D12CDE7A5041F441A469422B5541
+</a>
+
+<b>
+010600000001000000010300000001000000310000005D563CDAE77A5041980867C6512B5541161DC3B5E67A5041B034F628522B554135DA83BBE77A504114FF1EA5542B554135DDC265E97A5041553ED7C3582B5541559E4651E67A5041559100D0592B5541854D5108E47A504108DAAC975A2B554129A0FFAFE37A5041EF5D1EB55A2B55412B9DD523E27A504147CE00D0552B55416A8D7B94E17A504184203413542B55418C808E82E17A5041DB56ADE7532B554137D051F8DF7A50417BFC5A5F542B554191F76606E27A50416E46F6085A2B554124E83363E27A5041A9CA8E125B2B5541BE948FF2DF7A5041D1348FA25B2B554115EFF698DF7A5041A477A4605A2B5541C1A33213DE7A50416E113D7A552B5541D7A370DDDD7A504133333303552B5541AC72F548DE7A5041E2AC75045C2B5541D8465B9FDE7A50417263A3F05B2B5541A139F548DE7A504138497B045C2B5541905A26F1DD7A5041A61722475C2B554123AC43E2DC7A5041DE5DC0145D2B55415D6327F5DB7A50414D82BBC85D2B5541B81E85BBDB7A504148E17AF45D2B5541447B4977DB7A5041A53CC2D45C2B5541B24514AEDA7A504123803E0A5D2B5541C1F051E8DB7A5041CA18856B612B5541C3F528BCDC7A5041B81E857B602B554113DA40BCDC7A50415A6F7F7B602B55411BDA8A08DE7A5041DC166E2C602B5541FC272A2CDF7A5041B32A09E75F2B554150C925DADF7A5041D54603CC5F2B554166BB91BEE07A504178A287A85F2B5541D7A3707DE17A5041AE47E18A5F2B55410A1F283CE47A504180CBA3B05F2B55411A39740FE57A504138FF18795F2B554195175398E57A50415B451E555F2B5541F703AE9AE57A5041B73A6E545F2B55411F85EBB1EA7A50417B14AED75D2B5541B81E85DBE87A5041C3F5289C5C2B554148E17A54E87A50418FC2F5485B2B55410AD7A330E97A504148E17A945A2B55417B14AE77EA7A50418FC2F5E85A2B5541B81E85DBEB7A5041666666D65B2B5541AFE9282CED7A50412446B81E5D2B5541CD855B0FEB7A5041110DFF2F582B5541D9EA51C8EB7A50416E556FED572B5541A2755CDFE87A504162D7B86E512B55415D563CDAE77A5041980867C6512B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>586946 - 55750
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000B000000E17A14AEB94E514133333363E77554419A9999E9B54E5141E17A14EEEC755441CDCCCCFCBF4E514166666606EF755441A5A8D1A0C04E5141054FB583EE75544139B9F487C04E514176E7599FE8755441EDF264B1C04E5141219136A1E1755441D78676D3C14E5141A895C99ADA75544154664504C14E5141AC11C660DA755441E17A14FEBF4E5141C3F5286CDC7554411F85EBD1BC4E5141295C8F62E2755441E17A14AEB94E514133333363E7755441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000E17A14FEBF4E5141C3F5286CDC755441BBFF8609BF4E514159BEC737DE755441949CEC70BD4E5141DA67825EE1755441DD2CEEEDBC4E5141BA98EA2DE27554411F85EBD1BC4E5141295C8F62E2755441E17A14AEB94E514133333363E77554419A9999E9B54E5141E17A14EEEC755441D27B8AF0BF4E51412DD1D903EF7554410CB6C0A0C04E51418125B17FEE7554413AB9F487C04E514172E7599FE8755441AA1C048DC04E5141941FC1C4E7755441C6771E86C04E5141D2919DD7E57554416C1BBCA7C04E5141C3548142E3755441E9F264B1C04E5141219136A1E1755441F7CF8AB4C04E51419736B28DE1755441F7CF8AB4C04E5141EF9C9C20E17554416E2E5E27C14E5141FDECC6C5DE755441DA8676D3C14E5141AB95C99ADA75544151664504C14E5141A711C660DA755441E17A14FEBF4E5141C3F5286CDC755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>982286 - 1085174
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000020000002F000000A4703DFAEC425141F6285C6FF25C5441F6285CCFED425141C3F5281CF85C54417B14AE17F142514166666636035D544124F81461F44251412CD108930E5D5441B8DA25D2F9425141A8289DC80E5D5441105B43A200435141A8289DC80E5D54417C4FE7EF08435141A53C1C920E5D5441AE47E1EA10435141E17A144E0D5D5441EC51B8BE094351411F85EBA1005D5441F6285C9F0243514152B81E95F35C544152B81EA50F43514185EB51B8F15C54410AD7A36021435141000000B0EE5C544185EB515825435141D7A370EDED5C54417C87A3CD2543514107D42E2FE85C5441295C8FD22543514152B81EF5E65C5441D7A370DD25435141EC51B81EE45C5441295C8FE2254351410AD7A3C0E25C54417B14AEF725435141EC51B8AEDF5C5441750293002643514138B75464DE5C544194DF78BC254351414D7D69FFDB5C5441AC18219E20435141ACD22C18DB5C5441C9DF0C5120435141159AD104D45C5441E9A6F80320435141DD7DDB72CE5C5441C6186BE81D435141859AF92DC95C5441295C8F02194351410AD7A330C35C5441CDCCCCEC1443514148E17AA4BF5C5441A4703D4A0E4351419A999959BE5C5441D7A370CD0843514185EB51E8BE5C54414A6F378D004351418A7E9730BE5C5441736FA67CFC42514159F0E46FBD5C54415EFA004EF14251415CEC31E6BA5C5441A249C2D3E2425141360425EBB75C54411E09969BD84251411DB89C00B65C544174C6BFEFD24251415F62C643B75C544174199C65CF4251414B5D9CC7B95C544114AE47C1CF4251413D0AD723BA5C544152B81EE5D0425141713D0AC7BB5C544133333333D6425141F6285C4FC35C544166666666DB425141E17A140ECB5C5441B81E858BE042514185EB5118D25C5441CDCCCCFCE4425141EC51B86ED85C544185EB5188E7425141D7A370EDDC5C54419A999959EA425141713D0AF7E15C54415C8FC2D5EA425141EC51B88EE35C544152B81E95EA4251415C8FC2A5E35C544166666676EB42514114AE4721E85C5441A4703DFAEC425141F6285C6FF25C5441050000001E834135004351416A026290E35C544108233A81FE4251412ACECCAADE5C544181B362DF074351410CAA4253DC5C544197136A93094351414CDED738E15C54411E834135004351416A026290E35C5441
+</a>
+
+<b>
+0106000000010000000103000000020000002F000000A4703DFAEC425141F6285C6FF25C5441F6285CCFED425141C3F5281CF85C54417B14AE17F142514166666636035D54411FF81461F44251412AD108930E5D5441BBDA25D2F9425141A5289DC80E5D5441145B43A200435141A5289DC80E5D54417A4FE7EF08435141A23C1C920E5D5441AE47E1EA10435141E17A144E0D5D5441EC51B8BE094351411F85EBA1005D5441F6285C9F0243514152B81E95F35C544152B81EA50F43514185EB51B8F15C54410AD7A36021435141000000B0EE5C544185EB515825435141D7A370EDED5C54417987A3CD2543514109D42E2FE85C5441295C8FD22543514152B81EF5E65C5441D7A370DD25435141EC51B81EE45C5441295C8FE2254351410AD7A3C0E25C54417B14AEF725435141EC51B8AEDF5C544171029300264351413CB75464DE5C544190DF78BC25435141527D69FFDB5C5441A918219E20435141A7D22C18DB5C5441CDDF0C5120435141119AD104D45C5441E6A6F80320435141E07DDB72CE5C5441C8186BE81D435141809AF92DC95C5441295C8F02194351410AD7A330C35C5441CDCCCCEC1443514148E17AA4BF5C5441A4703D4A0E4351419A999959BE5C5441D7A370CD0843514185EB51E8BE5C54414D6F378D004351418C7E9730BE5C5441766FA67CFC4251415AF0E46FBD5C54415CFA004EF142514161EC31E6BA5C5441A749C2D3E2425141310425EBB75C54412109969BD84251411DB89C00B65C544174C6BFEFD24251415A62C643B75C544171199C65CF4251414E5D9CC7B95C544114AE47C1CF4251413D0AD723BA5C544152B81EE5D0425141713D0AC7BB5C544133333333D6425141F6285C4FC35C544166666666DB425141E17A140ECB5C5441B81E858BE042514185EB5118D25C5441CDCCCCFCE4425141EC51B86ED85C544185EB5188E7425141D7A370EDDC5C54419A999959EA425141713D0AF7E15C54415C8FC2D5EA425141EC51B88EE35C544152B81E95EA4251415C8FC2A5E35C544166666676EB42514114AE4721E85C5441A4703DFAEC425141F6285C6FF25C544105000000228341350043514169026290E35C544107233A81FE4251412FCECCAADE5C54417EB362DF0743514109AA4253DC5C54419A136A93094351414EDED738E15C5441228341350043514169026290E35C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>982286 - 3890774
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000020000002F000000A4703DFAEC425141F6285C6FF25C5441F6285CCFED425141C3F5281CF85C54417B14AE17F142514166666636035D544124F81461F44251412CD108930E5D5441B8DA25D2F9425141A8289DC80E5D5441105B43A200435141A8289DC80E5D54417C4FE7EF08435141A53C1C920E5D5441AE47E1EA10435141E17A144E0D5D5441EC51B8BE094351411F85EBA1005D5441F6285C9F0243514152B81E95F35C544152B81EA50F43514185EB51B8F15C54410AD7A36021435141000000B0EE5C544185EB515825435141D7A370EDED5C54417C87A3CD2543514107D42E2FE85C5441295C8FD22543514152B81EF5E65C5441D7A370DD25435141EC51B81EE45C5441295C8FE2254351410AD7A3C0E25C54417B14AEF725435141EC51B8AEDF5C5441750293002643514138B75464DE5C544194DF78BC254351414D7D69FFDB5C5441AC18219E20435141ACD22C18DB5C5441C9DF0C5120435141159AD104D45C5441E9A6F80320435141DD7DDB72CE5C5441C6186BE81D435141859AF92DC95C5441295C8F02194351410AD7A330C35C5441CDCCCCEC1443514148E17AA4BF5C5441A4703D4A0E4351419A999959BE5C5441D7A370CD0843514185EB51E8BE5C54414A6F378D004351418A7E9730BE5C5441736FA67CFC42514159F0E46FBD5C54415EFA004EF14251415CEC31E6BA5C5441A249C2D3E2425141360425EBB75C54411E09969BD84251411DB89C00B65C544174C6BFEFD24251415F62C643B75C544174199C65CF4251414B5D9CC7B95C544114AE47C1CF4251413D0AD723BA5C544152B81EE5D0425141713D0AC7BB5C544133333333D6425141F6285C4FC35C544166666666DB425141E17A140ECB5C5441B81E858BE042514185EB5118D25C5441CDCCCCFCE4425141EC51B86ED85C544185EB5188E7425141D7A370EDDC5C54419A999959EA425141713D0AF7E15C54415C8FC2D5EA425141EC51B88EE35C544152B81E95EA4251415C8FC2A5E35C544166666676EB42514114AE4721E85C5441A4703DFAEC425141F6285C6FF25C5441050000001E834135004351416A026290E35C544108233A81FE4251412ACECCAADE5C544181B362DF074351410CAA4253DC5C544197136A93094351414CDED738E15C54411E834135004351416A026290E35C5441
+</a>
+
+<b>
+0106000000010000000103000000020000002F000000A4703DFAEC425141F6285C6FF25C5441F6285CCFED425141C3F5281CF85C54417B14AE17F142514166666636035D54411FF81461F44251412AD108930E5D5441BBDA25D2F9425141A5289DC80E5D5441145B43A200435141A5289DC80E5D54417A4FE7EF08435141A23C1C920E5D5441AE47E1EA10435141E17A144E0D5D5441EC51B8BE094351411F85EBA1005D5441F6285C9F0243514152B81E95F35C544152B81EA50F43514185EB51B8F15C54410AD7A36021435141000000B0EE5C544185EB515825435141D7A370EDED5C54417987A3CD2543514109D42E2FE85C5441295C8FD22543514152B81EF5E65C5441D7A370DD25435141EC51B81EE45C5441295C8FE2254351410AD7A3C0E25C54417B14AEF725435141EC51B8AEDF5C544171029300264351413CB75464DE5C544190DF78BC25435141527D69FFDB5C5441A918219E20435141A7D22C18DB5C5441CDDF0C5120435141119AD104D45C5441E6A6F80320435141E07DDB72CE5C5441C8186BE81D435141809AF92DC95C5441295C8F02194351410AD7A330C35C5441CDCCCCEC1443514148E17AA4BF5C5441A4703D4A0E4351419A999959BE5C5441D7A370CD0843514185EB51E8BE5C54414D6F378D004351418C7E9730BE5C5441766FA67CFC4251415AF0E46FBD5C54415CFA004EF142514161EC31E6BA5C5441A749C2D3E2425141310425EBB75C54412109969BD84251411DB89C00B65C544174C6BFEFD24251415A62C643B75C544171199C65CF4251414E5D9CC7B95C544114AE47C1CF4251413D0AD723BA5C544152B81EE5D0425141713D0AC7BB5C544133333333D6425141F6285C4FC35C544166666666DB425141E17A140ECB5C5441B81E858BE042514185EB5118D25C5441CDCCCCFCE4425141EC51B86ED85C544185EB5188E7425141D7A370EDDC5C54419A999959EA425141713D0AF7E15C54415C8FC2D5EA425141EC51B88EE35C544152B81E95EA4251415C8FC2A5E35C544166666676EB42514114AE4721E85C5441A4703DFAEC425141F6285C6FF25C544105000000228341350043514169026290E35C544107233A81FE4251412FCECCAADE5C54417EB362DF0743514109AA4253DC5C54419A136A93094351414EDED738E15C5441228341350043514169026290E35C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986557 - 213501
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000037000000A4703DBA8F055141C3F5285CBCD954413D0AD7938A05514166666636C1D954410000002089055141D7A3707DC1D95441F6285C5F88055141AE47E12AC5D95441E17A14DE84055141EC51B83EC8D9544152B81EA582055141F6285C8FC7D954411F85EBD181055141295C8FE2CAD95441295C8FC27F0551419A999979D6D95441666666F681055141A4703DEAD7D95441F6285C3F840551411F85EBE1D7D954416666666686055141666666F6D6D954417B14AE278805514185EB5118D5D954418FC2F5A889055141EC51B80ED3D9544148E17A448F0551415C8FC2D5CAD95441D7A3701D900551417B14AE97C9D95441F6285C2F9B05514166666696B9D95441A4703DEA9D05514185EB5168B5D95441D7A3705DA005514100000020B1D95441EC51B89EA2055141B81E85DBACD95441E17A14EEB5055141C3F5289C83D954411F85EB81C80551418FC2F5985AD954413D0AD783CA055141CDCCCC5C56D95441295C8F92C4055141B81E857B58D95441C3F528ACBE0551419A9999D959D954410AD7A3E0BC055141AE47E1BA5BD9544114AE4731BC0551410AD7A3105FD95441C3F5286CBB055141AE47E13A62D95441EC51B85EB9055141E17A145E64D9544133333393B7055141000000A064D95441D7A3703DB40551415C8FC2B564D954415C8FC245B2055141AE47E11A67D95441666666A6B0055141713D0A776BD95441713D0A97B1055141000000B06DD95441295C8FC2B1055141713D0AB76ED954417B14AEA7AD0551419A99998971D95441E17A141EAC0551415C8FC24574D9544114AE4761A90551411F85EBA178D95441A4703D2AA4055141666666F67ED95441EC51B81E9F05514152B81EE582D95441CDCCCC3C9D055141295C8FB281D95441F6285C2F9B05514152B81E4581D95441B81E85BB9905514185EB51C881D95441E17A144E990551415C8FC21587D95441AE47E1CA980551415C8FC2F58BD95441B81E855B9B0551413D0AD73392D95441E17A14EE9A0551413333337395D95441EC51B83E9A055141E17A142E9BD95441CDCCCC5C98055141D7A3701D9FD954411F85EB2199055141CDCCCC5CA2D95441666666F6970551419A999909A5D954419A99990995055141295C8F92A6D95441F6285C0F940551417B14AEF7ADD954418FC2F5489205514148E17A04B4D95441AE47E1EA93055141666666C6B5D95441A4703DBA8F055141C3F5285CBCD95441
+</a>
+
+<b>
+0106000000010000000103000000010000003C0000009157CBC98D0551410C72ED2FBED95441A90AD7938A055141B2666636C1D95441A1A3701D900551414514AE97C9D95441CB285C2F9B0551419C666696B9D954418E703DEA9D055141A5EB5168B5D954418CA3705DA00551410B000020B1D9544190170A2FA1055141A45A5793AFD95441EC51B89EA2055141B81E85DBACD954414CEFA268AC055141B362B5F297D95441767A14EEB5055141A2F5289C83D95441E4329EF7C30551418AA1E89E64D954411F85EB81C80551418FC2F5985AD954417E713DD5C9055141305C22CD57D95441240AD783CA055141D6CCCC5C56D95441295C8F92C4055141B81E857B58D9544161934A7BC10551415D84EB3259D95441C3F528ACBE055141CF9999D959D95441F73FDBD1BD0551413AE4A8915CD9544144A8D2FDBC05514156D1C4425FD954419BEAC7F4BB0551410F7CEBFC62D95441536FB2E2B9055141510A822965D95441F7199F05B805514105A28AFD65D954410CCEFDCFB4055141158F09E365D954418D8FC245B20551417247E11A67D95441DD6666A6B0055141123E0A776BD95441572BC9DFB00551414688B8FE6BD95441713D0A97B1055141000000B06DD95441BE5B8FC2B10551413D3E0AB76ED95441034D0D42AF0551416023706F70D954417B14AEA7AD0551419A99998971D95441A34C4132AD055141F4927B5A72D95441577B141EAC055141BD8FC24574D95441A0029ACBA9055141060C95F877D9544114AE4761A90551411F85EBA178D95441C429B152A7055141F08518217BD95441EF703D2AA4055141666666F67ED954415065C721A2055141A268178C80D954418B51B81E9F05514147B81EE582D9544104FD894F9D0551412473381583D95441BD81743D9B0551415FEEB05B82D954410ED7EA4E9A0551412473381583D95441F9FCEC839A055141A78F656E87D95441DE5B0FD49D0551417C0109D98AD95441A7CD15739E0551410F0BB5178FD95441D621548A9C055141FF4F8D8A92D954415065817B9C05514116440FCA97D95441EC51B83E9A055141E17A142E9BD95441D1CCCC5C98055141CFA3701D9FD95441FEF4FDC098055141DCCA00C4A0D954411F85EB2199055141CDCCCC5CA2D954417FF740B39805514162A5D159A3D954419C6666F6970551416F999909A5D954416619E04599055141497D40DFA8D95441E32252ED970551411315834AAFD95441443FA8E393055141DD8689E9AFD95441D0C2F548920551411DE17A04B4D954418C93BE099305514129A006D4B4D95441AE47E1EA93055141666666C6B5D95441A4703DBA8F055141C3F5285CBCD954419157CBC98D0551410C72ED2FBED95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986590 - 59434
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000020000000103000000020000005000000095192E66109250411DF3E12A2F2654415465156D109250415CD6973F2F26544195192E6610925041DE0832442F26544181A13A9D1092504190689C382F265441260DFC691192504136D45D0530265441DEFCC90D1292504180BEC5DF3026544183688BDA1292504112B95F1631265441E4FD698A1392504144C91E7830265441D3760EE31392504144C91E78302654413E1FAABB15925041580241352E265441F5434861169250419015C8BA2C2654410C22C40A1892504185260AE62B2654419119237518925041ABCC5E072A265441DA8CB11419925041D272B328282654416B73CE531A9250410FF783F3272654418E84CECF1B925041631E761328265441CBEA29D31C925041038A37E0282654413ACAC51A1E925041A708DEED2826544184B42DF51E9250414AAD4E7D272654411989FDA920925041C949A65E2626544157D2DA38229250417221A9DF252654416EB056E223925041E13A8CA0242654416EB056E22392504199C7FD0024265441666666E61492504133333333082654419A99996910925041B81E85DB09265441AE47E12A0E925041295C8FC209265441D7A3701D0C925041333333A3092654419871DB770D925041156C6ADE0B265441F2051AAB0C925041CE356E000E265441C4E904670B925041EFFA7DCB102654411534FDDA0A92504140DC5A851126544194BD6F7B0A925041AECEDB0D12265441384FFBC9099250413032842C1326544122427E9306925041546D687815265441404566260592504114DED67A1626544151DC573E04925041945464DA16265441373DC6E303925041B1410CBF17265441FA04300D0292504119969C7C18265441EC7BD07CFF9150410D6B0D171926544103D2EE47FE9150413E751AD8192654415A1E579EFC915041E2F237B11A265441CBDEA616FB9150416C1D746A1B26544101C49491FA915041502D50411C265441F5A747BDF0915041F5CB7D3C35265441A42E295EF09150415B55BE90382654417A364466F191504130282B5D38265441D9874EAFF3915041194AAFB3362654419C037EE4F391504188639274352654416A6E6BEEF4915041026C330A35265441814CE797F69150413FF003D5342654418B1CDBA8F791504197BD8EF035265441B1FE29D5F8915041BDB2C25D36265441D7E07801FA9150414DD3261635265441C43E82F6FA915041CBCFD57B33265441F5488FB7FB915041205B906D32265441E91D0052FC915041836FAAEF33265441E91D0052FC91504191F8098036265441C69C5221FE9150410B6342CD3626544123ADAB6DFF91504155E4652533265441248979750192504199112774312654416A661C1602925041CFB1097E302654410A1344B403925041D04D87242F265441BD34254E049250415F80B5C42D26544188BEA66A05925041B41A8C3F2D265441C823E322059250410B1E69502C2654415A0A0062069250413CB37B462B26544113BF782B0A92504188A8952C2A265441241B7AC00B9250412E20CEB72A2654416BB3AA710C9250413F7CCF4C2C265441546CD3480D9250418FC280C82D26544159C313AE0D9250411A9CA1C52E265441DE45F4450E925041413F7A832F26544145D37CEA0E925041E7B6B20E30265441492ABD4F0F9250412AF8A25A30265441492ABD4F0F925041CC189B8030265441AC60058F0F925041CC189B8030265441EFA1F5DA0F9250412AF8A25A302654416EB0D5EB0F92504154F302553026544113EE8D331092504126A162F52F26544195192E66109250411DF3E12A2F265441090000009C33190214925041980497C12B265441822997A21192504129C98D522A2654411B9C0EFE109250412EB463E627265441C11347891192504141A4FAA926265441B37AF02A13925041349F397A2526544185EC41D914925041B6CAD9AC2526544110C662D615925041E71B333527265441F1D00AE315925041635CFDD3292654419C33190214925041980497C12B265441010300000001000000040000006EB0D5EB0F92504154F30255302654412E8CA5C10F925041AC23438D3026544132E3E5261092504169E25241302654416EB0D5EB0F92504154F3025530265441
+</a>
+
+<b>
+0106000000010000000103000000010000000A00000050463A901F925041CEE98AFC1B265441B8D1911A1F92504100C838221B265441AC0E362B07925041E5E82FA025265441AE52B4FA099250418CF243C229265441FF47CA9D12925041E509E1E025265441B37AF02A13925041349F397A25265441A05327701392504132315E82252654411FE44BCB20925041C4363B821F265441BBB840B61F92504197B419431C26544150463A901F925041CEE98AFC1B265441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>631946 - 631989
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E000000B1965DF71CC25041FF4152C60B005541290B4D2328C250410AC886E10A005541D7A3707D45C2504152B81EE5080055411F85EBF145C250418FC2F5E8000055418FC2F53842C25041CDCCCCCC000055413D0AD7233CC250410000005001005541295C8F0234C250418FC2F58802005541AE47E11A31C25041E17A141E03005541CDCCCC5C28C25041E17A14DE0400554152B81EF521C25041713D0A4705005541B81E858B0CC25041713D0A7703005541D7A370CD05C250411F85EBD1030055415C8FC25505C250411F85EB110C005541B1965DF71CC25041FF4152C60B005541
+</a>
+
+<b>
+010600000001000000010300000001000000120000005C8FC25505C250411F85EB110C0055417B14AE2705C25041713D0A370F0055417B14AE4702C2504148E17AD441005541666666A629C25041713D0A773E0055411F85EBD12DC2504148E17A043D005541B81E858B41C250419A999929360055410000001043C25041295C8F72330055410AD7A34044C25041D7A370AD1E0055415C8FC24545C25041000000C00C005541D7A3707D45C2504152B81EE5080055418DEE5FBF30C25041951E664C0A005541447416E71EC25041565830A00B00554187BBEFC81EC25041C55D13A10B005541B1965DF71CC25041FF4152C60B0055410614FE8617C250416697B8D70B005541696314C614C25041A72B74EC0B0055415E9DE70B11C25041A72B74EC0B0055415C8FC25505C250411F85EB110C005541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>833803 - 833766
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000300000001030000000100000069000000A4703D7AFDFF5041C3F528DC0F3A54410AD7A350FBFF5041295C8F620F3A5441A4703D7AF7FF5041EC51B8CE0E3A54418FC2F518F4FF5041000000700E3A544152B81E35F2FF5041F6285CEF0D3A5441D7A370FDF0FF50419A9999490D3A5441C3F528ECEFFF50410AD7A3600C3A5441295C8F12EFFF5041333333530B3A54415C8FC205EEFF5041000000100B3A544133333383EBFF50415C8FC245153A5441EC51B8EEE5FF50413D0AD743133A5441B81E857BDCFF50418FC2F5680F3A5441713D0AB7D5FF50413D0AD7430D3A544133333363D8FF5041713D0A07113A5441A4703D3AD4FF5041AE47E17A143A5441713D0A27CBFF504166666676173A54417B14AEE7C6FF504114AE4731183A54417B14AEA7C2FF5041295C8F221A3A544148E17A44BFFF50410AD7A3A01C3A5441D7A3707DBDFF50419A999909213A5441B81E85CBBCFF50410AD7A390243A5441E17A14AEBCFF50411F85EB71273A5441CDCCCCCCBCFF5041B81E856B2A3A5441E17A140EBDFF504185EB51C82C3A5441BFADD0BEBDFF504159A0E9FB2F3A54412BA7A961BEFF504119212F48313A5441E17A14EEBEFF5041295C8F72323A5441051D07B6BFFF50417BE29311343A544124A4C8BCC0FF50410DD186E6353A54415FCB57F0C1FF5041948FDEBD373A5441B4A079BDC2FF5041FA76A2E2383A54415AD6C426C3FF5041B594A957393A5441916725C8C4FF5041B8F7BE033B3A54418E6A93FFC6FF50413815C9C63C3A5441F8994566C9FF5041C10A63553E3A544182927C90CCFF5041983ACD02403A5441A97A5123CDFF5041D866A64A403A54413C99097BCEFF5041A52DCBB0403A5441AE290A80D0FF504109424433413A5441592E15AFD1FF504197CBCD7D413A5441FD62FC29D2FF50413477329A413A5441280D4F58D3FF504141F4CAA9413A5441922204B7D2FF5041F1D097C1443A5441295C8F22D2FF50415C8FC265473A54413D0AD7E3D2FF5041F6285CDF5C3A54410AD7A3E0D3FF5041666666865C3A54413D0AD753E0FF504114AE4721583A544114AE47A1E2FF5041B81E85AB573A54415C8FC2F5E4FF504148E17A34573A544114AE47C1EEFF5041295C8FC2563A54415C8FC235F1FF5041B81E854B563A54417B14AE47F5FF504166666686553A5441295C8F22FCFF504185EB5178563A54413D0AD7730800514114AE4731593A5441AE47E1BA0C005141295C8F92593A5441666666E60F005141A4703D6A5A3A5441295C8F3215005141E17A145E5C3A5441CDCCCC5C1600514114AE47015E3A544185EB51E8290051415C8FC285633A54417B14AE5728005141713D0AC75F3A5441E17A143E250051413D0AD773593A5441CDCCCCCC210051419A999929543A54415C8FC2A51B005141F6285C2F4D3A54413D0AD7931700514133333303473A5441A4703D4A160051413D0AD7C3443A54413BA71A3816005141ADF731A4443A54416FC97E4815005141F78A6158433A54413C468DDB13005141C8A41C52413A54419269828413005141406356D5403A54415B56E8C71200514130DCEDCC3F3A5441225EFEE811005141F7CC87C73E3A54415C8C98C1100051417156226D3D3A544144C726C20F0051419A4F333E3C3A5441966522040F0051417FB855493B3A54415438F0E60D005141FA24D1D9393A544139F1800E0D005141028CE8C2383A54410F55BD330C005141577CFFA8373A54414D4966540B00514179DA3089363A5441EBE18F180A005141D8DC3EE6343A544163078174090051410939C900343A54412AF29A6509005141F5F6EAE4333A5441F5F20E30090051418D5DD029333A54410D429DC5080051417A43E0B5313A54410E99EEBA08005141B816E870313A5441051C136508005141A7BD820D2F3A54417244D2F8070051414A582D432C3A5441DA7F3B7B07005141294E0C50283A54410B05BC3C0700514167CBB9A0263A54410AD7A3F006005141D7A3700D253A544102F161B20600514146AD389E233A54414841B746060051411708D20E223A5441CDCCCC0C060051418FC2F538213A54419DF160B805005141891E1EA2203A5441D9274606050051418AEE93601F3A5441D7A3701D0300514114AE4741203A5441EC51B8EE01005141B81E852B1E3A544125E82CA103005141691B92491D3A5441AB3148A9020051415C383AD91A3A54419A9999590200514152B81EC5193A5441713D0A1702005141333333B3173A5441D7A370ED01005141AE47E1DA143A5441E17A141E01005141000000C0123A544148E17AE4FFFF5041B81E854B113A5441D7A370CDFEFF5041B81E857B103A5441A4703D7AFDFF5041C3F528DC0F3A54410103000000010000000500000096F5F1D8130051412BAEC780403A5441AEDB544C13005141599899813F3A544144172B3A13005141FECCBC6B3F3A5441E17A143E13005141295C8F723F3A544196F5F1D8130051412BAEC780403A54410103000000020000002400000044172B3A13005141FECCBC6B3F3A54415C8FC2E510005141B81E855B3B3A54419A9999190E0051418FC2F508353A544114AE47810C0051419A9999B92F3A5441713D0AB70B0051417B14AE172D3A5441F6285C7F090051411F85EB011F3A54411F85EB41090051413D0AD7731C3A54411F85EB01090051410AD7A3D0193A54416666667607005141EC51B8CE193A5441B81E854B060051410AD7A380193A5441CDCCCC1C0300514166666686193A5441C3F5289C0400514185EB51981B3A54411F85EB1106005141CDCCCCEC1D3A5441CDCCCC7C060051419A9999591F3A5441B8D68739070051416B97390C233A54412B8DF0D3070051414C73EA29273A54411850F40508005141013575CB283A5441F252FB74080051419C07EDEF2B3A54411072D8C808005141781172342E3A54415B04CAF308005141D7AFE27A2F3A54418A74480A09005141E421F8E52F3A54417C77FD5709005141AF2FF751313A54413279FA84090051411C351CE1313A5441AD7B6AC6090051418C3C6CA5323A5441B416B1F0090051419973B52A333A544114AE47110A005141E17A148E333A54413DEAA6A40A00514159432281343A5441F56A52AE0A005141CEFE1491343A544107B673160B00514112975D3B353A5441E5DA361B0C00514180D90E88363A544103A125650D005141BE4F002D383A54411628F3E00E005141352E92113A3A5441510D19FD0F005141559C197C3B3A544126356CBE100051415A97BF6B3C3A5441649DA0281200514171E57B223E3A544144172B3A13005141FECCBC6B3F3A54410500000048E17AD4080051411F85EB411F3A54413D0AD71307005141000000701F3A54410AD7A3D006005141000000F01C3A54411F85EB9108005141000000C01C3A544148E17AD4080051411F85EB411F3A5441
+</a>
+
+<b>
+01060000000100000001030000000100000032000000000000A0B7FF5041C3F528DC233A5441F6285C3FB7FF5041F6285CAF263A5441666666F6B7FF50415C8FC2D5273A544166666656B8FF5041C3F528AC2A3A5441713D0A57B8FF5041A4703D8A2E3A5441EC51B8EEB8FF504185EB5108323A5441CDCCCCCCB9FF50411F85EBD1343A5441B81E858BBBFF50410AD7A330393A54411F85EB71BDFF50415C8FC2F53B3A5441D7A3700DC1FF5041AE47E1AA3F3A54417B14AEA7C3FF50410AD7A390413A54418FC2F598C8FF504185EB5148443A5441C3F5289CCBFF5041B81E859B453A544166666676CFFF5041A4703DEA463A5441295C8F22D2FF50415C8FC265473A5441666666E6D1FF50413D0AD793443A5441000000A0D1FF5041B81E852B413A544152B81E85D0FF50413D0AD733413A5441D7A3709DCEFF5041CDCCCCFC403A5441CDCCCC1CCDFF5041E17A14AE403A5441A4703D2ACAFF50411F85EBD13F3A5441CDCCCCDCC7FF5041F6285CAF3E3A54411F85EB01C6FF5041295C8F923D3A544166666606C4FF5041AE47E11A3C3A5441CDCCCC7CC1FF5041713D0A073A3A544148E17AA4BFFF5041000000F0373A5441B81E85ABBEFF50413D0AD723363A544185EB51D8BDFF50417B14AE77333A5441F6285C4FBDFF5041A4703D2A303A5441E17A140EBDFF504185EB51C82C3A5441CDCCCCCCBCFF5041B81E856B2A3A5441E17A14AEBCFF50411F85EB71273A5441B81E85CBBCFF50410AD7A390243A5441D7A3707DBDFF50419A999909213A544148E17A44BFFF50410AD7A3A01C3A5441CDCCCC6CC0FF5041F6285C9F1A3A544133333393C3FF50418FC2F508173A5441B81E857BC8FF50413D0AD7E3143A5441295C8FB2C5FF50411F85EB410D3A5441AE47E14AC3FF5041E17A142E0E3A544100000040C0FF504166666626103A54415C8FC2B5BDFF50410AD7A3F0123A54419A999919BBFF5041295C8F92163A54418FC2F548BAFF50419A9999E9183A544100000090B9FF5041666666D6193A5441C3F5286CB8FF5041713D0A871C3A54410AD7A3E0B7FF50418FC2F5E81E3A544100000070B8FF5041713D0AE7203A5441D7A3703DB8FF50413D0AD7A3223A5441000000A0B7FF5041C3F528DC233A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>833803 - 1006407
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000300000001030000000100000069000000A4703D7AFDFF5041C3F528DC0F3A54410AD7A350FBFF5041295C8F620F3A5441A4703D7AF7FF5041EC51B8CE0E3A54418FC2F518F4FF5041000000700E3A544152B81E35F2FF5041F6285CEF0D3A5441D7A370FDF0FF50419A9999490D3A5441C3F528ECEFFF50410AD7A3600C3A5441295C8F12EFFF5041333333530B3A54415C8FC205EEFF5041000000100B3A544133333383EBFF50415C8FC245153A5441EC51B8EEE5FF50413D0AD743133A5441B81E857BDCFF50418FC2F5680F3A5441713D0AB7D5FF50413D0AD7430D3A544133333363D8FF5041713D0A07113A5441A4703D3AD4FF5041AE47E17A143A5441713D0A27CBFF504166666676173A54417B14AEE7C6FF504114AE4731183A54417B14AEA7C2FF5041295C8F221A3A544148E17A44BFFF50410AD7A3A01C3A5441D7A3707DBDFF50419A999909213A5441B81E85CBBCFF50410AD7A390243A5441E17A14AEBCFF50411F85EB71273A5441CDCCCCCCBCFF5041B81E856B2A3A5441E17A140EBDFF504185EB51C82C3A5441BFADD0BEBDFF504159A0E9FB2F3A54412BA7A961BEFF504119212F48313A5441E17A14EEBEFF5041295C8F72323A5441051D07B6BFFF50417BE29311343A544124A4C8BCC0FF50410DD186E6353A54415FCB57F0C1FF5041948FDEBD373A5441B4A079BDC2FF5041FA76A2E2383A54415AD6C426C3FF5041B594A957393A5441916725C8C4FF5041B8F7BE033B3A54418E6A93FFC6FF50413815C9C63C3A5441F8994566C9FF5041C10A63553E3A544182927C90CCFF5041983ACD02403A5441A97A5123CDFF5041D866A64A403A54413C99097BCEFF5041A52DCBB0403A5441AE290A80D0FF504109424433413A5441592E15AFD1FF504197CBCD7D413A5441FD62FC29D2FF50413477329A413A5441280D4F58D3FF504141F4CAA9413A5441922204B7D2FF5041F1D097C1443A5441295C8F22D2FF50415C8FC265473A54413D0AD7E3D2FF5041F6285CDF5C3A54410AD7A3E0D3FF5041666666865C3A54413D0AD753E0FF504114AE4721583A544114AE47A1E2FF5041B81E85AB573A54415C8FC2F5E4FF504148E17A34573A544114AE47C1EEFF5041295C8FC2563A54415C8FC235F1FF5041B81E854B563A54417B14AE47F5FF504166666686553A5441295C8F22FCFF504185EB5178563A54413D0AD7730800514114AE4731593A5441AE47E1BA0C005141295C8F92593A5441666666E60F005141A4703D6A5A3A5441295C8F3215005141E17A145E5C3A5441CDCCCC5C1600514114AE47015E3A544185EB51E8290051415C8FC285633A54417B14AE5728005141713D0AC75F3A5441E17A143E250051413D0AD773593A5441CDCCCCCC210051419A999929543A54415C8FC2A51B005141F6285C2F4D3A54413D0AD7931700514133333303473A5441A4703D4A160051413D0AD7C3443A54413BA71A3816005141ADF731A4443A54416FC97E4815005141F78A6158433A54413C468DDB13005141C8A41C52413A54419269828413005141406356D5403A54415B56E8C71200514130DCEDCC3F3A5441225EFEE811005141F7CC87C73E3A54415C8C98C1100051417156226D3D3A544144C726C20F0051419A4F333E3C3A5441966522040F0051417FB855493B3A54415438F0E60D005141FA24D1D9393A544139F1800E0D005141028CE8C2383A54410F55BD330C005141577CFFA8373A54414D4966540B00514179DA3089363A5441EBE18F180A005141D8DC3EE6343A544163078174090051410939C900343A54412AF29A6509005141F5F6EAE4333A5441F5F20E30090051418D5DD029333A54410D429DC5080051417A43E0B5313A54410E99EEBA08005141B816E870313A5441051C136508005141A7BD820D2F3A54417244D2F8070051414A582D432C3A5441DA7F3B7B07005141294E0C50283A54410B05BC3C0700514167CBB9A0263A54410AD7A3F006005141D7A3700D253A544102F161B20600514146AD389E233A54414841B746060051411708D20E223A5441CDCCCC0C060051418FC2F538213A54419DF160B805005141891E1EA2203A5441D9274606050051418AEE93601F3A5441D7A3701D0300514114AE4741203A5441EC51B8EE01005141B81E852B1E3A544125E82CA103005141691B92491D3A5441AB3148A9020051415C383AD91A3A54419A9999590200514152B81EC5193A5441713D0A1702005141333333B3173A5441D7A370ED01005141AE47E1DA143A5441E17A141E01005141000000C0123A544148E17AE4FFFF5041B81E854B113A5441D7A370CDFEFF5041B81E857B103A5441A4703D7AFDFF5041C3F528DC0F3A54410103000000010000000500000096F5F1D8130051412BAEC780403A5441AEDB544C13005141599899813F3A544144172B3A13005141FECCBC6B3F3A5441E17A143E13005141295C8F723F3A544196F5F1D8130051412BAEC780403A54410103000000020000002400000044172B3A13005141FECCBC6B3F3A54415C8FC2E510005141B81E855B3B3A54419A9999190E0051418FC2F508353A544114AE47810C0051419A9999B92F3A5441713D0AB70B0051417B14AE172D3A5441F6285C7F090051411F85EB011F3A54411F85EB41090051413D0AD7731C3A54411F85EB01090051410AD7A3D0193A54416666667607005141EC51B8CE193A5441B81E854B060051410AD7A380193A5441CDCCCC1C0300514166666686193A5441C3F5289C0400514185EB51981B3A54411F85EB1106005141CDCCCCEC1D3A5441CDCCCC7C060051419A9999591F3A5441B8D68739070051416B97390C233A54412B8DF0D3070051414C73EA29273A54411850F40508005141013575CB283A5441F252FB74080051419C07EDEF2B3A54411072D8C808005141781172342E3A54415B04CAF308005141D7AFE27A2F3A54418A74480A09005141E421F8E52F3A54417C77FD5709005141AF2FF751313A54413279FA84090051411C351CE1313A5441AD7B6AC6090051418C3C6CA5323A5441B416B1F0090051419973B52A333A544114AE47110A005141E17A148E333A54413DEAA6A40A00514159432281343A5441F56A52AE0A005141CEFE1491343A544107B673160B00514112975D3B353A5441E5DA361B0C00514180D90E88363A544103A125650D005141BE4F002D383A54411628F3E00E005141352E92113A3A5441510D19FD0F005141559C197C3B3A544126356CBE100051415A97BF6B3C3A5441649DA0281200514171E57B223E3A544144172B3A13005141FECCBC6B3F3A54410500000048E17AD4080051411F85EB411F3A54413D0AD71307005141000000701F3A54410AD7A3D006005141000000F01C3A54411F85EB9108005141000000C01C3A544148E17AD4080051411F85EB411F3A5441
+</a>
+
+<b>
+01060000000100000001030000000100000032000000000000A0B7FF5041C3F528DC233A5441F6285C3FB7FF5041F6285CAF263A5441666666F6B7FF50415C8FC2D5273A544166666656B8FF5041C3F528AC2A3A5441713D0A57B8FF5041A4703D8A2E3A5441EC51B8EEB8FF504185EB5108323A5441CDCCCCCCB9FF50411F85EBD1343A5441B81E858BBBFF50410AD7A330393A54411F85EB71BDFF50415C8FC2F53B3A5441D7A3700DC1FF5041AE47E1AA3F3A54417B14AEA7C3FF50410AD7A390413A54418FC2F598C8FF504185EB5148443A5441C3F5289CCBFF5041B81E859B453A544166666676CFFF5041A4703DEA463A5441295C8F22D2FF50415C8FC265473A5441666666E6D1FF50413D0AD793443A5441000000A0D1FF5041B81E852B413A544152B81E85D0FF50413D0AD733413A5441D7A3709DCEFF5041CDCCCCFC403A5441CDCCCC1CCDFF5041E17A14AE403A5441A4703D2ACAFF50411F85EBD13F3A5441CDCCCCDCC7FF5041F6285CAF3E3A54411F85EB01C6FF5041295C8F923D3A544166666606C4FF5041AE47E11A3C3A5441CDCCCC7CC1FF5041713D0A073A3A544148E17AA4BFFF5041000000F0373A5441B81E85ABBEFF50413D0AD723363A544185EB51D8BDFF50417B14AE77333A5441F6285C4FBDFF5041A4703D2A303A5441E17A140EBDFF504185EB51C82C3A5441CDCCCCCCBCFF5041B81E856B2A3A5441E17A14AEBCFF50411F85EB71273A5441B81E85CBBCFF50410AD7A390243A5441D7A3707DBDFF50419A999909213A544148E17A44BFFF50410AD7A3A01C3A5441CDCCCC6CC0FF5041F6285C9F1A3A544133333393C3FF50418FC2F508173A5441B81E857BC8FF50413D0AD7E3143A5441295C8FB2C5FF50411F85EB410D3A5441AE47E14AC3FF5041E17A142E0E3A544100000040C0FF504166666626103A54415C8FC2B5BDFF50410AD7A3F0123A54419A999919BBFF5041295C8F92163A54418FC2F548BAFF50419A9999E9183A544100000090B9FF5041666666D6193A5441C3F5286CB8FF5041713D0A871C3A54410AD7A3E0B7FF50418FC2F5E81E3A544100000070B8FF5041713D0AE7203A5441D7A3703DB8FF50413D0AD7A3223A5441000000A0B7FF5041C3F528DC233A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>833803 - 3671487
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000300000001030000000100000069000000A4703D7AFDFF5041C3F528DC0F3A54410AD7A350FBFF5041295C8F620F3A5441A4703D7AF7FF5041EC51B8CE0E3A54418FC2F518F4FF5041000000700E3A544152B81E35F2FF5041F6285CEF0D3A5441D7A370FDF0FF50419A9999490D3A5441C3F528ECEFFF50410AD7A3600C3A5441295C8F12EFFF5041333333530B3A54415C8FC205EEFF5041000000100B3A544133333383EBFF50415C8FC245153A5441EC51B8EEE5FF50413D0AD743133A5441B81E857BDCFF50418FC2F5680F3A5441713D0AB7D5FF50413D0AD7430D3A544133333363D8FF5041713D0A07113A5441A4703D3AD4FF5041AE47E17A143A5441713D0A27CBFF504166666676173A54417B14AEE7C6FF504114AE4731183A54417B14AEA7C2FF5041295C8F221A3A544148E17A44BFFF50410AD7A3A01C3A5441D7A3707DBDFF50419A999909213A5441B81E85CBBCFF50410AD7A390243A5441E17A14AEBCFF50411F85EB71273A5441CDCCCCCCBCFF5041B81E856B2A3A5441E17A140EBDFF504185EB51C82C3A5441BFADD0BEBDFF504159A0E9FB2F3A54412BA7A961BEFF504119212F48313A5441E17A14EEBEFF5041295C8F72323A5441051D07B6BFFF50417BE29311343A544124A4C8BCC0FF50410DD186E6353A54415FCB57F0C1FF5041948FDEBD373A5441B4A079BDC2FF5041FA76A2E2383A54415AD6C426C3FF5041B594A957393A5441916725C8C4FF5041B8F7BE033B3A54418E6A93FFC6FF50413815C9C63C3A5441F8994566C9FF5041C10A63553E3A544182927C90CCFF5041983ACD02403A5441A97A5123CDFF5041D866A64A403A54413C99097BCEFF5041A52DCBB0403A5441AE290A80D0FF504109424433413A5441592E15AFD1FF504197CBCD7D413A5441FD62FC29D2FF50413477329A413A5441280D4F58D3FF504141F4CAA9413A5441922204B7D2FF5041F1D097C1443A5441295C8F22D2FF50415C8FC265473A54413D0AD7E3D2FF5041F6285CDF5C3A54410AD7A3E0D3FF5041666666865C3A54413D0AD753E0FF504114AE4721583A544114AE47A1E2FF5041B81E85AB573A54415C8FC2F5E4FF504148E17A34573A544114AE47C1EEFF5041295C8FC2563A54415C8FC235F1FF5041B81E854B563A54417B14AE47F5FF504166666686553A5441295C8F22FCFF504185EB5178563A54413D0AD7730800514114AE4731593A5441AE47E1BA0C005141295C8F92593A5441666666E60F005141A4703D6A5A3A5441295C8F3215005141E17A145E5C3A5441CDCCCC5C1600514114AE47015E3A544185EB51E8290051415C8FC285633A54417B14AE5728005141713D0AC75F3A5441E17A143E250051413D0AD773593A5441CDCCCCCC210051419A999929543A54415C8FC2A51B005141F6285C2F4D3A54413D0AD7931700514133333303473A5441A4703D4A160051413D0AD7C3443A54413BA71A3816005141ADF731A4443A54416FC97E4815005141F78A6158433A54413C468DDB13005141C8A41C52413A54419269828413005141406356D5403A54415B56E8C71200514130DCEDCC3F3A5441225EFEE811005141F7CC87C73E3A54415C8C98C1100051417156226D3D3A544144C726C20F0051419A4F333E3C3A5441966522040F0051417FB855493B3A54415438F0E60D005141FA24D1D9393A544139F1800E0D005141028CE8C2383A54410F55BD330C005141577CFFA8373A54414D4966540B00514179DA3089363A5441EBE18F180A005141D8DC3EE6343A544163078174090051410939C900343A54412AF29A6509005141F5F6EAE4333A5441F5F20E30090051418D5DD029333A54410D429DC5080051417A43E0B5313A54410E99EEBA08005141B816E870313A5441051C136508005141A7BD820D2F3A54417244D2F8070051414A582D432C3A5441DA7F3B7B07005141294E0C50283A54410B05BC3C0700514167CBB9A0263A54410AD7A3F006005141D7A3700D253A544102F161B20600514146AD389E233A54414841B746060051411708D20E223A5441CDCCCC0C060051418FC2F538213A54419DF160B805005141891E1EA2203A5441D9274606050051418AEE93601F3A5441D7A3701D0300514114AE4741203A5441EC51B8EE01005141B81E852B1E3A544125E82CA103005141691B92491D3A5441AB3148A9020051415C383AD91A3A54419A9999590200514152B81EC5193A5441713D0A1702005141333333B3173A5441D7A370ED01005141AE47E1DA143A5441E17A141E01005141000000C0123A544148E17AE4FFFF5041B81E854B113A5441D7A370CDFEFF5041B81E857B103A5441A4703D7AFDFF5041C3F528DC0F3A54410103000000010000000500000096F5F1D8130051412BAEC780403A5441AEDB544C13005141599899813F3A544144172B3A13005141FECCBC6B3F3A5441E17A143E13005141295C8F723F3A544196F5F1D8130051412BAEC780403A54410103000000020000002400000044172B3A13005141FECCBC6B3F3A54415C8FC2E510005141B81E855B3B3A54419A9999190E0051418FC2F508353A544114AE47810C0051419A9999B92F3A5441713D0AB70B0051417B14AE172D3A5441F6285C7F090051411F85EB011F3A54411F85EB41090051413D0AD7731C3A54411F85EB01090051410AD7A3D0193A54416666667607005141EC51B8CE193A5441B81E854B060051410AD7A380193A5441CDCCCC1C0300514166666686193A5441C3F5289C0400514185EB51981B3A54411F85EB1106005141CDCCCCEC1D3A5441CDCCCC7C060051419A9999591F3A5441B8D68739070051416B97390C233A54412B8DF0D3070051414C73EA29273A54411850F40508005141013575CB283A5441F252FB74080051419C07EDEF2B3A54411072D8C808005141781172342E3A54415B04CAF308005141D7AFE27A2F3A54418A74480A09005141E421F8E52F3A54417C77FD5709005141AF2FF751313A54413279FA84090051411C351CE1313A5441AD7B6AC6090051418C3C6CA5323A5441B416B1F0090051419973B52A333A544114AE47110A005141E17A148E333A54413DEAA6A40A00514159432281343A5441F56A52AE0A005141CEFE1491343A544107B673160B00514112975D3B353A5441E5DA361B0C00514180D90E88363A544103A125650D005141BE4F002D383A54411628F3E00E005141352E92113A3A5441510D19FD0F005141559C197C3B3A544126356CBE100051415A97BF6B3C3A5441649DA0281200514171E57B223E3A544144172B3A13005141FECCBC6B3F3A54410500000048E17AD4080051411F85EB411F3A54413D0AD71307005141000000701F3A54410AD7A3D006005141000000F01C3A54411F85EB9108005141000000C01C3A544148E17AD4080051411F85EB411F3A5441
+</a>
+
+<b>
+01060000000100000001030000000100000032000000000000A0B7FF5041C3F528DC233A5441F6285C3FB7FF5041F6285CAF263A5441666666F6B7FF50415C8FC2D5273A544166666656B8FF5041C3F528AC2A3A5441713D0A57B8FF5041A4703D8A2E3A5441EC51B8EEB8FF504185EB5108323A5441CDCCCCCCB9FF50411F85EBD1343A5441B81E858BBBFF50410AD7A330393A54411F85EB71BDFF50415C8FC2F53B3A5441D7A3700DC1FF5041AE47E1AA3F3A54417B14AEA7C3FF50410AD7A390413A54418FC2F598C8FF504185EB5148443A5441C3F5289CCBFF5041B81E859B453A544166666676CFFF5041A4703DEA463A5441295C8F22D2FF50415C8FC265473A5441666666E6D1FF50413D0AD793443A5441000000A0D1FF5041B81E852B413A544152B81E85D0FF50413D0AD733413A5441D7A3709DCEFF5041CDCCCCFC403A5441CDCCCC1CCDFF5041E17A14AE403A5441A4703D2ACAFF50411F85EBD13F3A5441CDCCCCDCC7FF5041F6285CAF3E3A54411F85EB01C6FF5041295C8F923D3A544166666606C4FF5041AE47E11A3C3A5441CDCCCC7CC1FF5041713D0A073A3A544148E17AA4BFFF5041000000F0373A5441B81E85ABBEFF50413D0AD723363A544185EB51D8BDFF50417B14AE77333A5441F6285C4FBDFF5041A4703D2A303A5441E17A140EBDFF504185EB51C82C3A5441CDCCCCCCBCFF5041B81E856B2A3A5441E17A14AEBCFF50411F85EB71273A5441B81E85CBBCFF50410AD7A390243A5441D7A3707DBDFF50419A999909213A544148E17A44BFFF50410AD7A3A01C3A5441CDCCCC6CC0FF5041F6285C9F1A3A544133333393C3FF50418FC2F508173A5441B81E857BC8FF50413D0AD7E3143A5441295C8FB2C5FF50411F85EB410D3A5441AE47E14AC3FF5041E17A142E0E3A544100000040C0FF504166666626103A54415C8FC2B5BDFF50410AD7A3F0123A54419A999919BBFF5041295C8F92163A54418FC2F548BAFF50419A9999E9183A544100000090B9FF5041666666D6193A5441C3F5286CB8FF5041713D0A871C3A54410AD7A3E0B7FF50418FC2F5E81E3A544100000070B8FF5041713D0AE7203A5441D7A3703DB8FF50413D0AD7A3223A5441000000A0B7FF5041C3F528DC233A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981794 - 797414
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000120000000832A78802475141F5D95AA35343544185EB373C11475141ED99533E5343544120FE12B01247514182E6F71653435441FF3FA1411B4751416A5765DA2F4354411745E77E1A4751414BF4D9E92E435441314A2DBC1947514170F91F272E43544112E7A1CB184751416C4A7D4D2D435441273D452F17475141C56266EA2B4354417AA68BF214475141DA127E592A435441B7A8751D10475141C2AB21C127435441CF4BA5FF0B47514159280BE4244354410FB0A5850A475141CF490B66244354415A6E1A1709475141DDA37F71244354413B0B8F26084751412166C5AA2443544197D21A9D07475141E052224B2543544101F41A1F07475141036550152743544103EC78CF034751419FA08FEA3F4354410832A78802475141F5D95AA353435441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000EC51B83EFB4651418FC2F5C86B43544114AE4711FC4651411F85EB416C43544100000020FE4651418FC2F5986D435441EC51B8AE01475141A4703D8A704354411F85EB3104475141F6285C4F73435441A4703DCA06475141D7A370DD764354413D0AD7B30847514148E17A447A4354415C8FC2A50947514185EB51987C4354419A999979194751415C8FC2C579435441CDCCCC1C1B4751418FC2F5786F435441E17A149E17475141000000C07043544185EB518812475141EC51B8FE67435441D7A370ED0F475141295C8F125C4354415C8FC275144751417B14AE675943544114AE473113475141F6285CDF544354411F85EB511347514100000030534354410AD7A34001475141C3F528AC5343544152B81EE5F3465141C3F528FC534354413D0AD723F24651413D0AD7D355435441295C8F72EC46514148E17AE45B435441CDCCCCCCED465141295C8FB261435441E17A146EE7465141E17A14BE61435441F6285C2FE7465141B81E85FB66435441B81E859BE846514148E17AF466435441295C8FA2ED46514148E17A7467435441A4703DBAF24651419A99995968435441F6285C0FF7465141000000D0694354419A9999A9F9465141CDCCCCFC6A435441713D0A17FA4651413D0AD7B36A43544166666666FA465141CDCCCC4C6A43544152B81E35FB465141AE47E15A6A435441EC51B83EFB4651418FC2F5C86B435441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981794 - 1146274
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000120000000832A78802475141F5D95AA35343544185EB373C11475141ED99533E5343544120FE12B01247514182E6F71653435441FF3FA1411B4751416A5765DA2F4354411745E77E1A4751414BF4D9E92E435441314A2DBC1947514170F91F272E43544112E7A1CB184751416C4A7D4D2D435441273D452F17475141C56266EA2B4354417AA68BF214475141DA127E592A435441B7A8751D10475141C2AB21C127435441CF4BA5FF0B47514159280BE4244354410FB0A5850A475141CF490B66244354415A6E1A1709475141DDA37F71244354413B0B8F26084751412166C5AA2443544197D21A9D07475141E052224B2543544101F41A1F07475141036550152743544103EC78CF034751419FA08FEA3F4354410832A78802475141F5D95AA353435441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000EC51B83EFB4651418FC2F5C86B43544114AE4711FC4651411F85EB416C43544100000020FE4651418FC2F5986D435441EC51B8AE01475141A4703D8A704354411F85EB3104475141F6285C4F73435441A4703DCA06475141D7A370DD764354413D0AD7B30847514148E17A447A4354415C8FC2A50947514185EB51987C4354419A999979194751415C8FC2C579435441CDCCCC1C1B4751418FC2F5786F435441E17A149E17475141000000C07043544185EB518812475141EC51B8FE67435441D7A370ED0F475141295C8F125C4354415C8FC275144751417B14AE675943544114AE473113475141F6285CDF544354411F85EB511347514100000030534354410AD7A34001475141C3F528AC5343544152B81EE5F3465141C3F528FC534354413D0AD723F24651413D0AD7D355435441295C8F72EC46514148E17AE45B435441CDCCCCCCED465141295C8FB261435441E17A146EE7465141E17A14BE61435441F6285C2FE7465141B81E85FB66435441B81E859BE846514148E17AF466435441295C8FA2ED46514148E17A7467435441A4703DBAF24651419A99995968435441F6285C0FF7465141000000D0694354419A9999A9F9465141CDCCCCFC6A435441713D0A17FA4651413D0AD7B36A43544166666666FA465141CDCCCC4C6A43544152B81E35FB465141AE47E15A6A435441EC51B83EFB4651418FC2F5C86B435441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>981794 - 3941302
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000120000000832A78802475141F5D95AA35343544185EB373C11475141ED99533E5343544120FE12B01247514182E6F71653435441FF3FA1411B4751416A5765DA2F4354411745E77E1A4751414BF4D9E92E435441314A2DBC1947514170F91F272E43544112E7A1CB184751416C4A7D4D2D435441273D452F17475141C56266EA2B4354417AA68BF214475141DA127E592A435441B7A8751D10475141C2AB21C127435441CF4BA5FF0B47514159280BE4244354410FB0A5850A475141CF490B66244354415A6E1A1709475141DDA37F71244354413B0B8F26084751412166C5AA2443544197D21A9D07475141E052224B2543544101F41A1F07475141036550152743544103EC78CF034751419FA08FEA3F4354410832A78802475141F5D95AA353435441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000EC51B83EFB4651418FC2F5C86B43544114AE4711FC4651411F85EB416C43544100000020FE4651418FC2F5986D435441EC51B8AE01475141A4703D8A704354411F85EB3104475141F6285C4F73435441A4703DCA06475141D7A370DD764354413D0AD7B30847514148E17A447A4354415C8FC2A50947514185EB51987C4354419A999979194751415C8FC2C579435441CDCCCC1C1B4751418FC2F5786F435441E17A149E17475141000000C07043544185EB518812475141EC51B8FE67435441D7A370ED0F475141295C8F125C4354415C8FC275144751417B14AE675943544114AE473113475141F6285CDF544354411F85EB511347514100000030534354410AD7A34001475141C3F528AC5343544152B81EE5F3465141C3F528FC534354413D0AD723F24651413D0AD7D355435441295C8F72EC46514148E17AE45B435441CDCCCCCCED465141295C8FB261435441E17A146EE7465141E17A14BE61435441F6285C2FE7465141B81E85FB66435441B81E859BE846514148E17AF466435441295C8FA2ED46514148E17A7467435441A4703DBAF24651419A99995968435441F6285C0FF7465141000000D0694354419A9999A9F9465141CDCCCCFC6A435441713D0A17FA4651413D0AD7B36A43544166666666FA465141CDCCCC4C6A43544152B81E35FB465141AE47E15A6A435441EC51B83EFB4651418FC2F5C86B435441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>836761 - 836875
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000200000022000000BF84C44D68445141065187C4066054419A9999796F445141F6285C7F056054419A9999D979445141AE47E15A0360544114AE4791804451417B14AEF70160544185EB512883445141EC51B86E016054419A9999A992445141A4703D3AFE5F5441713D0AE7974451415C8FC205FD5F5441D03D10499A445141E2691CA0FA5F5441F1F55FE0A0445141D781AC6DF85F5441E17A14DEA3445141713D0A77F75F5441B17482E7A444514117038A66F45F5441B17482E7A4445141759FA67EF05F5441C99B89EDA3445141B9208477EC5F54411BF90E32A3445141C55F1B4BE95F54411BF90E32A344514140177782E55F5441A58C12B5A24451411177B7B8DC5F5441552F8D70A34451414F045D98D75F5441FAE997F9A144514138347D33D35F54411368C6A09B44514189910278D25F544109D77D0F9444514167828B3FD15F5441A4703D8A88445141CDCCCCDCD05F5441000000B086445141CDCCCC1CD25F5441E17A142E8744514148E17AB4D35F54417B14AED785445141D7A3709DD35F54419A9999798544514133333373D25F5441A4703D1A85445141F6285C7FD15F544152B81E358244514152B81E25D25F54410AD7A3D07944514114AE4731D45F544185EB51D87944514152B81E15DB5F54415C8FC29570445141E17A144EDE5F5441061714C96A4451416CDA8210E15F5441061714C96A4451417F044B03EB5F544134C69A7F69445141A9C0117806605441BF84C44D68445141065187C40660544105000000008C1E55984451410A27E21AF15F5441E370DF359844514162CFC619EC5F5441F44C87819B44514145B487FAEB5F5441BA1609439B445141EC0BA3FBF05F5441008C1E55984451410A27E21AF15F5441
+</a>
+
+<b>
+0106000000010000000103000000010000000E00000051FC05CA52445141A5665938096054416132E6C2524451413E7DD77809605441121E888D584451412F98AAE609605441291769A2624451416C2C5E2F0860544134C69A7F69445141A9C0117806605441061714C96A4451417F044B03EB5F5441061714C96A4451410222ADC9E05F54410AD7A3706744514185EB5138E25F5441B81E853B5844514114AE4731E95F544152B81E3558445141A4703D7AEC5F5441295C8F5257445141A4703D3AF65F5441EC51B8DE5644514114AE47E1F85F544114AE47A153445141CDCCCC5C0960544151FC05CA52445141A566593809605441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>158823 - 3159542
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000020000000103000000010000000F0000007A5C010AA73F514152976766C50E5541210EE504A73F51415EFFFE65C50E5541CEDD49D19B3F514153BE7205C80E5541B81E858B8F3F514114AE47F1CA0E554155871C618F3F5141AD9106EFCA0E5541D8A710488F3F5141F5E9E3F4CA0E55419A9999097F3F51410AD7A310CA0E55419472AF6B773F5141A21762C7C90E5541B1FA84B5773F5141C6C424ACCD0E5541C120E5EC773F51417867460DD00E554178942FE1773F5141B9607C66D20E5541C3F528FC8C3F5141713D0A67D10E55418D3E2E6A8E3F5141A5C8EFE6CF0E554152337BB08F3F514100EAE3F4CA0E55417A5C010AA73F514152976766C50E554101030000000100000013000000AE47E15AB03F5141C3F5286CC00E5541838FB944B03F5141B8B9CAF5C50E55411C5F5C34B03F5141B8B9CAF5C50E55413D0AD733B03F51418FC2F508C60E5541713D0A37AF3F514114AE4701C60E5541B1AE345EAE3F5141B80A05FBC50E5541713D0A37AF3F5141C3F5289CD00E55415AE0A132AF3F51411EECC1AFD10E55419A999999BA3F51410AD7A330CC0E5541A4703D1AC33F514133333313C80E55416745B5C5C73F514147C5A2CEC50E5541EE21E3FCC53F514123391347C40E5541E17A14FEC33F5141E17A142EC30E5541713D0A17C03F514148E17AA4C10E5541D7A3705DBD3F5141666666F6C00E5541E17A14AEB83F5141D7A3706DBF0E5541F6285CBFB43F51413D0AD703BE0E5541A4703D7AAF3F51410AD7A3E0BB0E5541AE47E15AB03F5141C3F5286CC00E5541
+</a>
+
+<b>
+0106000000010000000103000000010000001100000038DECD95773F51418DC4FCFFCB0E5541B75FFE74783F5141E033EB77DB0E5541B742B9F6813F5141F422AA1FDB0E5541BD65DA0A963F5141F5FCA16FDA0E55410FB4A53C9A3F5141BC92075EDA0E5541F1E12BEB9C3F51418D286D4CDA0E55413098620FA03F5141D50A3051DA0E55410E8E2B37A23F514101336127D90E5541A4703D2AA73F5141B81E857BD60E554152B81EF5A73F514185EB5118D50E5541D6DA0383A83F5141431FECC6D40E55417CB5E7DEAA3F514158A89A94C70E554163EAF03CAB3F51412D2DBC9EC50E554102B08BE1A63F51417277EF48C50E554198EA99908F3F514125C405F1CA0E5541CD4977498F3F514192180913CC0E554138DECD95773F51418DC4FCFFCB0E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>158823 - 3568646
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000020000000103000000010000000F0000007A5C010AA73F514152976766C50E5541210EE504A73F51415EFFFE65C50E5541CEDD49D19B3F514153BE7205C80E5541B81E858B8F3F514114AE47F1CA0E554155871C618F3F5141AD9106EFCA0E5541D8A710488F3F5141F5E9E3F4CA0E55419A9999097F3F51410AD7A310CA0E55419472AF6B773F5141A21762C7C90E5541B1FA84B5773F5141C6C424ACCD0E5541C120E5EC773F51417867460DD00E554178942FE1773F5141B9607C66D20E5541C3F528FC8C3F5141713D0A67D10E55418D3E2E6A8E3F5141A5C8EFE6CF0E554152337BB08F3F514100EAE3F4CA0E55417A5C010AA73F514152976766C50E554101030000000100000013000000AE47E15AB03F5141C3F5286CC00E5541838FB944B03F5141B8B9CAF5C50E55411C5F5C34B03F5141B8B9CAF5C50E55413D0AD733B03F51418FC2F508C60E5541713D0A37AF3F514114AE4701C60E5541B1AE345EAE3F5141B80A05FBC50E5541713D0A37AF3F5141C3F5289CD00E55415AE0A132AF3F51411EECC1AFD10E55419A999999BA3F51410AD7A330CC0E5541A4703D1AC33F514133333313C80E55416745B5C5C73F514147C5A2CEC50E5541EE21E3FCC53F514123391347C40E5541E17A14FEC33F5141E17A142EC30E5541713D0A17C03F514148E17AA4C10E5541D7A3705DBD3F5141666666F6C00E5541E17A14AEB83F5141D7A3706DBF0E5541F6285CBFB43F51413D0AD703BE0E5541A4703D7AAF3F51410AD7A3E0BB0E5541AE47E15AB03F5141C3F5286CC00E5541
+</a>
+
+<b>
+0106000000010000000103000000010000001100000038DECD95773F51418DC4FCFFCB0E5541B75FFE74783F5141E033EB77DB0E5541B742B9F6813F5141F422AA1FDB0E5541BD65DA0A963F5141F5FCA16FDA0E55410FB4A53C9A3F5141BC92075EDA0E5541F1E12BEB9C3F51418D286D4CDA0E55413098620FA03F5141D50A3051DA0E55410E8E2B37A23F514101336127D90E5541A4703D2AA73F5141B81E857BD60E554152B81EF5A73F514185EB5118D50E5541D6DA0383A83F5141431FECC6D40E55417CB5E7DEAA3F514158A89A94C70E554163EAF03CAB3F51412D2DBC9EC50E554102B08BE1A63F51417277EF48C50E554198EA99908F3F514125C405F1CA0E5541CD4977498F3F514192180913CC0E554138DECD95773F51418DC4FCFFCB0E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>982102 - 275558
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000008000000F6285CFF97275141666666E640375441333333F3932751410AD7A3303E375441AE47E12A8527514133333383433754417B14AE9773275141713D0AD7493754411F85EB816E2751419A9999E956375441D7A3707D87275141AE47E1EA4D37544148E17AB49F2751413D0AD73345375441F6285CFF97275141666666E640375441
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000003B368117712751410EC190A14A37544181DF318475275141CC7CB825493754412782A2749127514115DB8E163F375441D64B0CF593275141E599E0313E37544175A900B7952751413ED39D343D375441CDCCCC5C912751416666669639375441295C8F628B2751417B14AEF731375441713D0A378B275141CDCCCCFC30375441D7A3700D8B275141000000B0303754410AD7A3908127514114AE470134375441666666467127514114AE47C139375441D7A3700D72275141CDCCCCDC3B375441666666666F275141CDCCCC1C3D3754413D0AD713562751415C8FC215403754413D0AD7A34527514114AE4701423754417B14AE373527514185EB51E843375441B81E85AB2827514152B81ED54537544152B81E7528275141A4703D5A4A3754410AD7A3202B275141D7A3705D4B375441D0E1EDF12A275141251680204E3754417266BF863327514128B6C2D54D375441BF788C413F275141BE1F6BB44D3754410EC4EC254D275141BE4D5E4F4B375441B36CDCF364275141E798FF8E47375441A685A42C722751415A144F8845375441AE98B68D712751416935876F493754413B368117712751410EC190A14A375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>982104 - 1320680
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001000000028E1365521FD5041343426C820D2544159C8D3351CFD50415976C67A29D254410B8DFD8011FD5041C4DB59EE3FD254412E3CADFB0CFD50412506A86346D25441FDD9532F05FD5041EB3E4A994BD25441F697714AF8FC50417FF05F4053D254415C8FC2C5F7FC5041EC51B83E56D25441A4703D2AF9FC5041B81E858B55D25441B81E851B09FD5041E17A14FE4BD25441AE47E1FA0EFD5041295C8FC247D254413D0AD75313FD50411F85EB0142D254417B14AE7716FD5041D7A3706D3BD254419A9999091CFD5041E17A14EE30D25441EC51B83E1FFD5041B81E859B29D25441C3F5280C20FD5041B81E853B28D2544128E1365521FD5041343426C820D25441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000028E1365521FD5041323426C820D2544154C8D3351CFD50415C76C67A29D25441098DFD8011FD5041C9DB59EE3FD254412E3CADFB0CFD50412406A86346D25441FDD9532F05FD5041E83E4A994BD25441F397714AF8FC504181F05F4053D254415C8FC2C5F7FC5041EC51B83E56D25441A4703D2AF9FC5041B81E858B55D25441B81E851B09FD5041E17A14FE4BD25441AE47E1FA0EFD5041295C8FC247D254413D0AD75313FD50411F85EB0142D254417B14AE7716FD5041D7A3706D3BD254419A9999091CFD5041E17A14EE30D25441EC51B83E1FFD5041B81E859B29D25441C3F5280C20FD5041B81E853B28D2544128E1365521FD5041323426C820D25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>982104 - 4047321
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001000000028E1365521FD5041343426C820D2544159C8D3351CFD50415976C67A29D254410B8DFD8011FD5041C4DB59EE3FD254412E3CADFB0CFD50412506A86346D25441FDD9532F05FD5041EB3E4A994BD25441F697714AF8FC50417FF05F4053D254415C8FC2C5F7FC5041EC51B83E56D25441A4703D2AF9FC5041B81E858B55D25441B81E851B09FD5041E17A14FE4BD25441AE47E1FA0EFD5041295C8FC247D254413D0AD75313FD50411F85EB0142D254417B14AE7716FD5041D7A3706D3BD254419A9999091CFD5041E17A14EE30D25441EC51B83E1FFD5041B81E859B29D25441C3F5280C20FD5041B81E853B28D2544128E1365521FD5041343426C820D25441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000028E1365521FD5041323426C820D2544154C8D3351CFD50415C76C67A29D25441098DFD8011FD5041C9DB59EE3FD254412E3CADFB0CFD50412406A86346D25441FDD9532F05FD5041E83E4A994BD25441F397714AF8FC504181F05F4053D254415C8FC2C5F7FC5041EC51B83E56D25441A4703D2AF9FC5041B81E858B55D25441B81E851B09FD5041E17A14FE4BD25441AE47E1FA0EFD5041295C8FC247D254413D0AD75313FD50411F85EB0142D254417B14AE7716FD5041D7A3706D3BD254419A9999091CFD5041E17A14EE30D25441EC51B83E1FFD5041B81E859B29D25441C3F5280C20FD5041B81E853B28D2544128E1365521FD5041323426C820D25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>917741 - 1350714
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000400000001F85EBD14C44514152B81E9527BD54413D0AD7C3504451415C8FC2F525BD54419611F4C256445141D097774823BD5441740D68A857445141C44EC30A22BD5441AEA35C3E59445141823201A11FBD5441A4703DAA584451419A9999991DBD5441F6285CFF59445141333333A31ABD54415A8FA96159445141C0A0A1CD18BD5441C8211B85574451410C2F87D617BD5441C45E341B57445141F49C1E5B15BD54411F85EB4157445141CDCCCCAC13BD5441D7A3706D56445141295C8F1213BD5441E17A143E534451411F85EBC111BD5441E17A141E4B4451411F85EB111BBD54410AD7A35043445141F6285C1F23BD54417EA915A14244514112B439B225BD5441A65CDEF03D4451417E5A550A28BD54415C8FC25539445141EC51B8EE28BD5441A4703D5A29445141EC51B85E28BD5441333333E31D4451413D0AD7F327BD54411F85EB11144451411F85EB9127BD5441295C8F9213445141333333132CBD5441EC51B87E0D4451410AD7A3302ABD544185EB51880A445141AE47E1DA28BD544171F6610A06445141427879A327BD544186B6883603445141FBA2E8C025BD54418FB096A2FE435141049DF62C21BD5441B81E85CBFB43514148E17A141DBD5441713D0A47F743514114AE473118BD5441D7A370ADF24351419A99996917BD5441FB6D5F35EE43514106CEF28E18BD5441A8D2B592EA435141EA44BA5817BD544104686DA1E94351418AB2FB931ABD54418FC2F538F3435141295C8F221DBD5441E17A14CEF4435141A4703D8A1EBD5441D8B623E7F7435141F4D9D6B621BD5441E17A147EF94351417B14AEE721BD5441C4F6FCBAFA435141934718F224BD5441208CB4C9F943514173C1D80526BD5441666666F6FB435141713D0A472CBD5441EC51B84EFD435141B81E85AB2FBD5441C3F5282CFD435141A4703DAA35BD5441000000B0FC4351410AD7A37036BD5441666666E6F9435141B81E85FB37BD5441EC51B86EFA4351419A9999C939BD5441713D0A47FC435141295C8F623DBD544100000070FF435141C3F5287C3CBD5441F6285C0F0244514152B81EE53ABD544114AE47F10A4451410AD7A3A035BD5441295C8FA20D445141D7A3704D34BD54413333335311445141AE47E13A33BD5441CDCCCCFC14445141EC51B86E32BD544110570EFC1C4451417E4590DD30BD54415636B7CF1F445141F820B63E30BD54410C7F62652544514172FCDB9F2FBD544114AE47412B4451411F85EB812FBD54415349460C31445141F19AE86A2FBD544137DF31FA36445141EDD701012FBD54410F2C69AA3B445141B704F4D42DBD5441340786633F445141285A4C622CBD54418FC2F5E844445141AE47E11A29BD5441713D0A47474451410000002028BD544143FE5BDE49445141ADA7956228BD54411F85EBD14C44514152B81E9527BD5441
+</a>
+
+<b>
+010600000001000000010300000001000000400000001F85EBD14C44514152B81E9527BD54413D0AD7C3504451415C8FC2F525BD54419511F4C256445141D297774823BD5441700D68A857445141BF4EC30A22BD5441AFA35C3E59445141853201A11FBD5441A4703DAA584451419A9999991DBD5441F6285CFF59445141333333A31ABD54415B8FA96159445141C4A0A1CD18BD5441C4211B8557445141092F87D617BD5441C25E341B57445141F99C1E5B15BD54411F85EB4157445141CDCCCCAC13BD5441D7A3706D56445141295C8F1213BD5441E17A143E534451411F85EBC111BD5441E17A141E4B4451411F85EB111BBD54410AD7A35043445141F6285C1F23BD544180A915A14244514116B439B225BD5441A25CDEF03D4451417A5A550A28BD54415C8FC25539445141EC51B8EE28BD5441A4703D5A29445141EC51B85E28BD5441333333E31D4451413D0AD7F327BD54411F85EB11144451411F85EB9127BD5441295C8F9213445141333333132CBD5441EC51B87E0D4451410AD7A3302ABD544185EB51880A445141AE47E1DA28BD544175F6610A06445141477879A327BD544188B6883603445141F7A2E8C025BD544191B096A2FE435141009DF62C21BD5441B81E85CBFB43514148E17A141DBD5441713D0A47F743514114AE473118BD5441D7A370ADF24351419A99996917BD5441FA6D5F35EE43514109CEF28E18BD5441ABD2B592EA435141EB44BA5817BD544103686DA1E943514189B2FB931ABD54418FC2F538F3435141295C8F221DBD5441E17A14CEF4435141A4703D8A1EBD5441D4B623E7F7435141F7D9D6B621BD5441E17A147EF94351417B14AEE721BD5441C1F6FCBAFA435141954718F224BD5441248CB4C9F943514178C1D80526BD5441666666F6FB435141713D0A472CBD5441EC51B84EFD435141B81E85AB2FBD5441C3F5282CFD435141A4703DAA35BD5441000000B0FC4351410AD7A37036BD5441666666E6F9435141B81E85FB37BD5441EC51B86EFA4351419A9999C939BD5441713D0A47FC435141295C8F623DBD544100000070FF435141C3F5287C3CBD5441F6285C0F0244514152B81EE53ABD544114AE47F10A4451410AD7A3A035BD5441295C8FA20D445141D7A3704D34BD54413333335311445141AE47E13A33BD5441CDCCCCFC14445141EC51B86E32BD544111570EFC1C4451417D4590DD30BD54415836B7CF1F445141F920B63E30BD5441117F62652544514175FCDB9F2FBD544114AE47412B4451411F85EB812FBD54415049460C31445141F49AE86A2FBD544136DF31FA36445141F1D701012FBD5441142C69AA3B445141B504F4D42DBD5441360786633F4451412B5A4C622CBD54418FC2F5E844445141AE47E11A29BD5441713D0A47474451410000002028BD544143FE5BDE49445141B2A7956228BD54411F85EBD14C44514152B81E9527BD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>917741 - 5243741
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000400000001F85EBD14C44514152B81E9527BD54413D0AD7C3504451415C8FC2F525BD54419611F4C256445141D097774823BD5441740D68A857445141C44EC30A22BD5441AEA35C3E59445141823201A11FBD5441A4703DAA584451419A9999991DBD5441F6285CFF59445141333333A31ABD54415A8FA96159445141C0A0A1CD18BD5441C8211B85574451410C2F87D617BD5441C45E341B57445141F49C1E5B15BD54411F85EB4157445141CDCCCCAC13BD5441D7A3706D56445141295C8F1213BD5441E17A143E534451411F85EBC111BD5441E17A141E4B4451411F85EB111BBD54410AD7A35043445141F6285C1F23BD54417EA915A14244514112B439B225BD5441A65CDEF03D4451417E5A550A28BD54415C8FC25539445141EC51B8EE28BD5441A4703D5A29445141EC51B85E28BD5441333333E31D4451413D0AD7F327BD54411F85EB11144451411F85EB9127BD5441295C8F9213445141333333132CBD5441EC51B87E0D4451410AD7A3302ABD544185EB51880A445141AE47E1DA28BD544171F6610A06445141427879A327BD544186B6883603445141FBA2E8C025BD54418FB096A2FE435141049DF62C21BD5441B81E85CBFB43514148E17A141DBD5441713D0A47F743514114AE473118BD5441D7A370ADF24351419A99996917BD5441FB6D5F35EE43514106CEF28E18BD5441A8D2B592EA435141EA44BA5817BD544104686DA1E94351418AB2FB931ABD54418FC2F538F3435141295C8F221DBD5441E17A14CEF4435141A4703D8A1EBD5441D8B623E7F7435141F4D9D6B621BD5441E17A147EF94351417B14AEE721BD5441C4F6FCBAFA435141934718F224BD5441208CB4C9F943514173C1D80526BD5441666666F6FB435141713D0A472CBD5441EC51B84EFD435141B81E85AB2FBD5441C3F5282CFD435141A4703DAA35BD5441000000B0FC4351410AD7A37036BD5441666666E6F9435141B81E85FB37BD5441EC51B86EFA4351419A9999C939BD5441713D0A47FC435141295C8F623DBD544100000070FF435141C3F5287C3CBD5441F6285C0F0244514152B81EE53ABD544114AE47F10A4451410AD7A3A035BD5441295C8FA20D445141D7A3704D34BD54413333335311445141AE47E13A33BD5441CDCCCCFC14445141EC51B86E32BD544110570EFC1C4451417E4590DD30BD54415636B7CF1F445141F820B63E30BD54410C7F62652544514172FCDB9F2FBD544114AE47412B4451411F85EB812FBD54415349460C31445141F19AE86A2FBD544137DF31FA36445141EDD701012FBD54410F2C69AA3B445141B704F4D42DBD5441340786633F445141285A4C622CBD54418FC2F5E844445141AE47E11A29BD5441713D0A47474451410000002028BD544143FE5BDE49445141ADA7956228BD54411F85EBD14C44514152B81E9527BD5441
+</a>
+
+<b>
+010600000001000000010300000001000000400000001F85EBD14C44514152B81E9527BD54413D0AD7C3504451415C8FC2F525BD54419511F4C256445141D297774823BD5441700D68A857445141BF4EC30A22BD5441AFA35C3E59445141853201A11FBD5441A4703DAA584451419A9999991DBD5441F6285CFF59445141333333A31ABD54415B8FA96159445141C4A0A1CD18BD5441C4211B8557445141092F87D617BD5441C25E341B57445141F99C1E5B15BD54411F85EB4157445141CDCCCCAC13BD5441D7A3706D56445141295C8F1213BD5441E17A143E534451411F85EBC111BD5441E17A141E4B4451411F85EB111BBD54410AD7A35043445141F6285C1F23BD544180A915A14244514116B439B225BD5441A25CDEF03D4451417A5A550A28BD54415C8FC25539445141EC51B8EE28BD5441A4703D5A29445141EC51B85E28BD5441333333E31D4451413D0AD7F327BD54411F85EB11144451411F85EB9127BD5441295C8F9213445141333333132CBD5441EC51B87E0D4451410AD7A3302ABD544185EB51880A445141AE47E1DA28BD544175F6610A06445141477879A327BD544188B6883603445141F7A2E8C025BD544191B096A2FE435141009DF62C21BD5441B81E85CBFB43514148E17A141DBD5441713D0A47F743514114AE473118BD5441D7A370ADF24351419A99996917BD5441FA6D5F35EE43514109CEF28E18BD5441ABD2B592EA435141EB44BA5817BD544103686DA1E943514189B2FB931ABD54418FC2F538F3435141295C8F221DBD5441E17A14CEF4435141A4703D8A1EBD5441D4B623E7F7435141F7D9D6B621BD5441E17A147EF94351417B14AEE721BD5441C1F6FCBAFA435141954718F224BD5441248CB4C9F943514178C1D80526BD5441666666F6FB435141713D0A472CBD5441EC51B84EFD435141B81E85AB2FBD5441C3F5282CFD435141A4703DAA35BD5441000000B0FC4351410AD7A37036BD5441666666E6F9435141B81E85FB37BD5441EC51B86EFA4351419A9999C939BD5441713D0A47FC435141295C8F623DBD544100000070FF435141C3F5287C3CBD5441F6285C0F0244514152B81EE53ABD544114AE47F10A4451410AD7A3A035BD5441295C8FA20D445141D7A3704D34BD54413333335311445141AE47E13A33BD5441CDCCCCFC14445141EC51B86E32BD544111570EFC1C4451417D4590DD30BD54415836B7CF1F445141F920B63E30BD5441117F62652544514175FCDB9F2FBD544114AE47412B4451411F85EB812FBD54415049460C31445141F49AE86A2FBD544136DF31FA36445141F1D701012FBD5441142C69AA3B445141B504F4D42DBD5441360786633F4451412B5A4C622CBD54418FC2F5E844445141AE47E11A29BD5441713D0A47474451410000002028BD544143FE5BDE49445141B2A7956228BD54411F85EBD14C44514152B81E9527BD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>917741 - 171065
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000400000001F85EBD14C44514152B81E9527BD54413D0AD7C3504451415C8FC2F525BD54419611F4C256445141D097774823BD5441740D68A857445141C44EC30A22BD5441AEA35C3E59445141823201A11FBD5441A4703DAA584451419A9999991DBD5441F6285CFF59445141333333A31ABD54415A8FA96159445141C0A0A1CD18BD5441C8211B85574451410C2F87D617BD5441C45E341B57445141F49C1E5B15BD54411F85EB4157445141CDCCCCAC13BD5441D7A3706D56445141295C8F1213BD5441E17A143E534451411F85EBC111BD5441E17A141E4B4451411F85EB111BBD54410AD7A35043445141F6285C1F23BD54417EA915A14244514112B439B225BD5441A65CDEF03D4451417E5A550A28BD54415C8FC25539445141EC51B8EE28BD5441A4703D5A29445141EC51B85E28BD5441333333E31D4451413D0AD7F327BD54411F85EB11144451411F85EB9127BD5441295C8F9213445141333333132CBD5441EC51B87E0D4451410AD7A3302ABD544185EB51880A445141AE47E1DA28BD544171F6610A06445141427879A327BD544186B6883603445141FBA2E8C025BD54418FB096A2FE435141049DF62C21BD5441B81E85CBFB43514148E17A141DBD5441713D0A47F743514114AE473118BD5441D7A370ADF24351419A99996917BD5441FB6D5F35EE43514106CEF28E18BD5441A8D2B592EA435141EA44BA5817BD544104686DA1E94351418AB2FB931ABD54418FC2F538F3435141295C8F221DBD5441E17A14CEF4435141A4703D8A1EBD5441D8B623E7F7435141F4D9D6B621BD5441E17A147EF94351417B14AEE721BD5441C4F6FCBAFA435141934718F224BD5441208CB4C9F943514173C1D80526BD5441666666F6FB435141713D0A472CBD5441EC51B84EFD435141B81E85AB2FBD5441C3F5282CFD435141A4703DAA35BD5441000000B0FC4351410AD7A37036BD5441666666E6F9435141B81E85FB37BD5441EC51B86EFA4351419A9999C939BD5441713D0A47FC435141295C8F623DBD544100000070FF435141C3F5287C3CBD5441F6285C0F0244514152B81EE53ABD544114AE47F10A4451410AD7A3A035BD5441295C8FA20D445141D7A3704D34BD54413333335311445141AE47E13A33BD5441CDCCCCFC14445141EC51B86E32BD544110570EFC1C4451417E4590DD30BD54415636B7CF1F445141F820B63E30BD54410C7F62652544514172FCDB9F2FBD544114AE47412B4451411F85EB812FBD54415349460C31445141F19AE86A2FBD544137DF31FA36445141EDD701012FBD54410F2C69AA3B445141B704F4D42DBD5441340786633F445141285A4C622CBD54418FC2F5E844445141AE47E11A29BD5441713D0A47474451410000002028BD544143FE5BDE49445141ADA7956228BD54411F85EBD14C44514152B81E9527BD5441
+</a>
+
+<b>
+010600000001000000010300000001000000250000008FC2F538F3435141295C8F221DBD54411A0596C4F44351413797CF811EBD5441430D9717F5435141C9DAEEA51EBD54411AB09431F54351415A3E31F01EBD5441D4B623E7F7435141F7D9D6B621BD5441E17A147EF94351417B14AEE721BD5441C1F6FCBAFA435141954718F224BD5441248CB4C9F943514178C1D80526BD54419EC89DDDFA435141FA9B6F1F29BD5441666666F6FB435141713D0A472CBD54419A9999E9FD4351418FC2F5782FBD5441EC51B83EFE43514148E17AC431BD5441C3F5282CFD435141A4703DAA35BD5441000000B0FC4351410AD7A37036BD5441852DAFBCFB4351416973665037BD5441EF317B3CFA4351417378B9B138BD5441EC51B86EFA4351419A9999C939BD5441713D0A47FC435141295C8F623DBD544100000070FF435141C3F5287C3CBD5441F6285C0F0244514152B81EE53ABD544114AE47F10A4451410AD7A3A035BD5441295C8FA20D445141D7A3704D34BD54413333335311445141AE47E13A33BD5441CDCCCCFC14445141EC51B86E32BD5441295C8F9213445141333333132CBD5441EC51B87E0D4451410AD7A3302ABD544185EB51880A445141AE47E1DA28BD544175F6610A06445141477879A327BD544188B6883603445141F7A2E8C025BD544191B096A2FE435141009DF62C21BD5441B81E85CBFB43514148E17A141DBD5441713D0A47F743514114AE473118BD5441D7A370ADF24351419A99996917BD5441FA6D5F35EE43514109CEF28E18BD5441ABD2B592EA435141EB44BA5817BD544103686DA1E943514189B2FB931ABD54418FC2F538F3435141295C8F221DBD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>917741 - 410677
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000400000001F85EBD14C44514152B81E9527BD54413D0AD7C3504451415C8FC2F525BD54419611F4C256445141D097774823BD5441740D68A857445141C44EC30A22BD5441AEA35C3E59445141823201A11FBD5441A4703DAA584451419A9999991DBD5441F6285CFF59445141333333A31ABD54415A8FA96159445141C0A0A1CD18BD5441C8211B85574451410C2F87D617BD5441C45E341B57445141F49C1E5B15BD54411F85EB4157445141CDCCCCAC13BD5441D7A3706D56445141295C8F1213BD5441E17A143E534451411F85EBC111BD5441E17A141E4B4451411F85EB111BBD54410AD7A35043445141F6285C1F23BD54417EA915A14244514112B439B225BD5441A65CDEF03D4451417E5A550A28BD54415C8FC25539445141EC51B8EE28BD5441A4703D5A29445141EC51B85E28BD5441333333E31D4451413D0AD7F327BD54411F85EB11144451411F85EB9127BD5441295C8F9213445141333333132CBD5441EC51B87E0D4451410AD7A3302ABD544185EB51880A445141AE47E1DA28BD544171F6610A06445141427879A327BD544186B6883603445141FBA2E8C025BD54418FB096A2FE435141049DF62C21BD5441B81E85CBFB43514148E17A141DBD5441713D0A47F743514114AE473118BD5441D7A370ADF24351419A99996917BD5441FB6D5F35EE43514106CEF28E18BD5441A8D2B592EA435141EA44BA5817BD544104686DA1E94351418AB2FB931ABD54418FC2F538F3435141295C8F221DBD5441E17A14CEF4435141A4703D8A1EBD5441D8B623E7F7435141F4D9D6B621BD5441E17A147EF94351417B14AEE721BD5441C4F6FCBAFA435141934718F224BD5441208CB4C9F943514173C1D80526BD5441666666F6FB435141713D0A472CBD5441EC51B84EFD435141B81E85AB2FBD5441C3F5282CFD435141A4703DAA35BD5441000000B0FC4351410AD7A37036BD5441666666E6F9435141B81E85FB37BD5441EC51B86EFA4351419A9999C939BD5441713D0A47FC435141295C8F623DBD544100000070FF435141C3F5287C3CBD5441F6285C0F0244514152B81EE53ABD544114AE47F10A4451410AD7A3A035BD5441295C8FA20D445141D7A3704D34BD54413333335311445141AE47E13A33BD5441CDCCCCFC14445141EC51B86E32BD544110570EFC1C4451417E4590DD30BD54415636B7CF1F445141F820B63E30BD54410C7F62652544514172FCDB9F2FBD544114AE47412B4451411F85EB812FBD54415349460C31445141F19AE86A2FBD544137DF31FA36445141EDD701012FBD54410F2C69AA3B445141B704F4D42DBD5441340786633F445141285A4C622CBD54418FC2F5E844445141AE47E11A29BD5441713D0A47474451410000002028BD544143FE5BDE49445141ADA7956228BD54411F85EBD14C44514152B81E9527BD5441
+</a>
+
+<b>
+010600000001000000010300000001000000250000008FC2F538F3435141295C8F221DBD54411A0596C4F44351413797CF811EBD5441430D9717F5435141C9DAEEA51EBD54411AB09431F54351415A3E31F01EBD5441D4B623E7F7435141F7D9D6B621BD5441E17A147EF94351417B14AEE721BD5441C1F6FCBAFA435141954718F224BD5441248CB4C9F943514178C1D80526BD54419EC89DDDFA435141FA9B6F1F29BD5441666666F6FB435141713D0A472CBD54419A9999E9FD4351418FC2F5782FBD5441EC51B83EFE43514148E17AC431BD5441C3F5282CFD435141A4703DAA35BD5441000000B0FC4351410AD7A37036BD5441852DAFBCFB4351416973665037BD5441EF317B3CFA4351417378B9B138BD5441EC51B86EFA4351419A9999C939BD5441713D0A47FC435141295C8F623DBD544100000070FF435141C3F5287C3CBD5441F6285C0F0244514152B81EE53ABD544114AE47F10A4451410AD7A3A035BD5441295C8FA20D445141D7A3704D34BD54413333335311445141AE47E13A33BD5441CDCCCCFC14445141EC51B86E32BD5441295C8F9213445141333333132CBD5441EC51B87E0D4451410AD7A3302ABD544185EB51880A445141AE47E1DA28BD544175F6610A06445141477879A327BD544188B6883603445141F7A2E8C025BD544191B096A2FE435141009DF62C21BD5441B81E85CBFB43514148E17A141DBD5441713D0A47F743514114AE473118BD5441D7A370ADF24351419A99996917BD5441FA6D5F35EE43514109CEF28E18BD5441ABD2B592EA435141EB44BA5817BD544103686DA1E943514189B2FB931ABD54418FC2F538F3435141295C8F221DBD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>557724 - 3182105
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000060000000103000000010000002D000000A4703DFA52EE5041E17A146E00BA54419A9999B954EE5041F6285C5F04BA5441C3F5283C52EE5041A4703D5A05BA544185EB514852EE5041D7A370BD06BA5441295C8F6261EE5041000000100CBA5441F6285CDF61EE5041B81E856B0DBA54411F85EB916AEE50413333336317BA544148E17A3474EE50410AD7A34021BA54410AD7A3907AEE5041C3F5289C1BBA5441295C8F827DEE50419A9999A91ABA54417B14AE578BEE50417B14AE2716BA5441295C8FE283EE50416666665613BA54413D0AD70379EE5041333333430EBA5441B81E85EB71EE5041C3F528AC09BA5441CDCCCC9C6DEE5041F6285CFF04BA5441D7A370FD66EE5041D7A3702DFBB954415C8FC2B55FEE50410AD7A3E0FDB954410AD7A3905DEE5041295C8FC2F9B9544114AE47B162EE504185EB5188F1B95441CDCCCCCC5FEE5041F6285CAFEEB95441295C8F725BEE504152B81E75ECB954410AD7A37058EE50413D0AD7C3EBB95441CDCCCC3C55EE50413D0AD7E3EBB9544152B81E7550EE50419A999989EDB95441295C8F5249EE504100000000F0B95441CDCCCC2C45EE5041E17A146EE9B9544152B81E553CEE5041CDCCCCCCF1B95441AE47E1AA37EE5041C3F5289CF5B95441000000902DEE5041F6285C9FFCB95441333333130EEE50410AD7A3F00FBA5441E17A146EFCED5041D7A370DD1BBA5441B81E857BEAED50411F85EB712ABA5441CDCCCC4CE6ED50417B14AEB72EBA54413D0AD703ECED50411F85EB812CBA5441E17A149E01EE5041666666F625BA54417B14AE6716EE5041F6285CCF1DBA5441713D0A5718EE5041C3F528BC1EBA5441E17A14CE21EE50410AD7A3801FBA5441EC51B8AE2EEE50417B14AED717BA54416666662631EE5041D7A3704D17BA54413D0AD7733AEE504185EB51D811BA54419A99998938EE50413D0AD7430EBA54419A9999F941EE50418FC2F53809BA5441EC51B80E4AEE50410000007004BA5441A4703DFA52EE5041E17A146E00BA544101030000000100000051000000295C8FC2F6EE50419A9999598CBA5441B81E853BF8EE5041B81E85EB88BA5441713D0A87F8EE50413333335386BA5441A4703D5AEDEE50410AD7A39086BA544185EB51C8DEEE50413333330385BA5441295C8FE2DCEE5041F6285C3F84BA544148E17A34DCEE50415C8FC2958BBA5441295C8F22DCEE5041713D0A978CBA54419A9999E9D3EE50419A9999D98CBA54415C8FC225CDEE50417B14AE778EBA5441F6285C1FCBEE5041CDCCCCEC8FBA54410AD7A380C9EE5041CDCCCC2C92BA54410AD7A3F0C8EE50411F85EB1195BA544114AE4771CAEE5041713D0AD79DBA5441E17A14EECAEE5041F6285CAFA0BA5441A4703D1ACDEE5041AE47E1BAA5BA54417B14AE77D0EE50415C8FC225AABA5441C3F528BCD2EE504100000020B0BA544166666636D3EE504100000040B6BA5441A4703D7ACEEE5041295C8F82C0BA544148E17AF4CDEE504152B81EA5C1BA5441F6285CFFC8EE5041333333B3C0BA54415C8FC245C6EE50415C8FC2D5C0BA54415C8FC245C0EE50410AD7A370C6BA54410AD7A3B0B0EE50410AD7A320D5BA544114AE47F1A7EE504185EB5188DFBA544152B81E05A6EE50413D0AD723E3BA544152B81EF5A3EE5041AE47E1BAE7BA54413D0AD773A2EE5041A4703D4AEEBA5441C3F5283CA0EE50419A999919F4BA54417B14AE07A0EE504185EB51F8F7BA54415C8FC295A1EE504114AE4701FBBA5441F6285CEFA5EE5041EC51B84E00BB5441666666E6A9EE5041EC51B89E07BB54417B14AE47AEEE50419A9999890CBB54418FC2F558BBEE50419A9999D915BB544133333353C0EE5041AE47E1FA1BBB54411F85EB31BFEE50413D0AD7231CBB54410AD7A3C0C5EE504114AE47D128BB5441295C8F02CCEE50416666667627BB54417B14AEA7CBEE504148E17A8426BB5441713D0AA7C7EE50417B14AED71BBB54411F85EB41C3EE504152B81EB514BB5441E17A141EBAEE5041A4703D3A0BBB5441B81E852BAFEE50415C8FC20502BB544133333323B0EE504152B81E6501BB5441E17A14BEAFEE504185EB512800BB54418FC2F538B0EE504114AE47F1FEBA5441C3F5280CA6EE504148E17AC4F6BA5441AE47E15AA9EE5041D7A3704DF0BA5441A4703D9AA9EE50410AD7A370EDBA54410AD7A380A9EE50415C8FC205EBBA5441A4703D8AAAEE504114AE4791E7BA5441AE47E11AADEE50417B14AEC7E2BA5441CDCCCC6CAFEE504100000050E0BA544152B81E85B3EE5041EC51B8EEDEBA54411F85EB61B6EE504152B81E35D9BA54410AD7A3B0BEEE504133333343DFBA544133333333C4EE5041A4703D9AD4BA5441C3F5283CC5EE504152B81EF5CEBA54410AD7A350C8EE5041000000B0CBBA544185EB5158DDEE504114AE4741D3BA5441A4703DCADEEE50417B14AE77D1BA544166666606E5EE5041AE47E12AD4BA5441D7A370EDF0EE504185EB5148D7BA5441E17A143EF9EE5041295C8FF2D5BA54413D0AD77308EF5041B81E850BD9BA5441333333D309EF5041295C8F52D8BA5441EC51B8DE0BEF504133333383D3BA5441CDCCCC8CF2EE5041D7A370CDCEBA54419A9999E9E4EE504100000040CBBA5441C3F5287CD6EE5041713D0AB7C3BA5441713D0A37DBEE504148E17A84BCBA544148E17A74DCEE50419A999909B6BA54410AD7A350DBEE5041E17A144EACBA544100000060D9EE5041AE47E1CAA6BA544185EB51A8D5EE504114AE47B1A1BA5441AE47E16AD2EE50416666666697BA5441333333C3DCEE5041D7A3706D95BA544114AE4791E4EE5041333333E392BA5441295C8FC2F6EE50419A9999598CBA54410103000000010000001500000066666646B8EE5041295C8F12A0BA54418FC2F5E8C0EE5041C3F5289CA7BA54418FC2F5E8C4EE50410AD7A320ADBA5441B81E850BC9EE5041D7A3702DABBA5441713D0AF7C0EE5041295C8FC2A0BA5441666666F6BAEE5041666666E69CBA544152B81E65B8EE50416666664698BA5441E17A143EB7EE504152B81E1589BA5441F6285CDFB7EE5041CDCCCC0C83BA544148E17A34B8EE504152B81ED57FBA5441A4703D0AB5EE50419A99997971BA54411F85EB91B2EE5041000000606BBA5441E17A142EAFEE50415C8FC29564BA5441666666C6ABEE5041AE47E13A5FBA5441D7A3701DA8EE5041CDCCCCEC60BA544114AE47A1AAEE50410AD7A36065BA54418FC2F5B8B1EE50411F85EB6179BA5441295C8FE2B2EE50411F85EBF17DBA5441C3F5289CB4EE5041713D0A1798BA5441CDCCCCFCB4EE5041CDCCCCBC9BBA544166666646B8EE5041295C8F12A0BA544101030000000100000013000000295C8F72C6ED504185EB51985DBA5441C3F528BCC7ED50417B14AE775FBA54417B14AE67C9ED50410AD7A3F061BA544148E17AD4DCED504148E17A0451BA5441295C8F82DBED5041E17A14CE50BA5441AE47E1BADAED50419A9999D94FBA544148E17AA4E2ED50417B14AE5749BA5441333333C3E1ED5041713D0AF746BA5441EC51B8CEE0ED50410AD7A36044BA54418FC2F558F0ED50410000008039BA5441B81E852BFBED50410AD7A3A032BA54413333334312EE5041F6285CFF22BA5441A4703D9A02EE5041D7A370ED28BA5441AE47E1CAECED5041B81E854B2FBA544185EB5108E1ED50419A99991934BA54418FC2F518D7ED50410AD7A3C03DBA54419A999989CDED50410000000049BA5441E17A14CEC1ED504152B81ED556BA5441295C8F72C6ED504185EB51985DBA54410103000000010000002B000000AE47E16AA4EE50416666666671BA54418FC2F598A3EE5041EC51B82E74BA544114AE4711A5EE504114AE47F177BA544185EB5118A8EE50411F85EBB176BA544100000090A9EE5041A4703D9A74BA5441E17A144EAAEE50413333332372BA5441EC51B87EA9EE5041CDCCCCCC65BA5441B81E85EBA6EE5041F6285CDF61BA5441C3F528DCA2EE5041666666965EBA5441AE47E12A98EE5041A4703D5A56BA54411F85EB3191EE5041E17A14AE4EBA5441666666468DEE5041E17A146E46BA5441333333C38CEE50413D0AD78340BA544152B81EA58DEE50419A9999093BBA5441F6285C3F90EE5041A4703D3A35BA5441666666B695EE50418FC2F5782CBA5441CDCCCC9C99EE5041B81E85BB21BA5441CDCCCCEC99EE504185EB51A81DBA54419A9999E997EE5041A4703DAA18BA5441666666A694EE5041B81E85CB14BA5441713D0AB78DEE504148E17A3411BA5441D7A370FD80EE5041666666060DBA544185EB513880EE5041F6285CCF0FBA5441A4703DCA8BEE5041AE47E13A15BA54410000000091EE50415C8FC21518BA5441713D0AF793EE5041666666961ABA5441A4703DDA94EE5041713D0A171DBA544152B81E0595EE5041E17A14FE1FBA5441B81E857B94EE5041666666B622BA544148E17A4493EE5041713D0A0725BA5441D7A370CD90EE5041CDCCCC8C28BA5441B81E85EB7FEE5041B81E857B39BA5441E17A141E80EE504114AE47813EBA5441B81E85CB82EE504185EB51D844BA54416666666684EE504152B81E5545BA5441CDCCCC3C88EE5041713D0AE749BA54415C8FC24588EE5041333333434EBA544114AE47018CEE5041000000D051BA54410000002092EE50413D0AD7C356BA54417B14AEB799EE5041713D0AF75DBA54410AD7A3509FEE5041F6285C5F65BA5441AE47E10AA4EE504114AE47A16EBA5441AE47E16AA4EE50416666666671BA5441010300000001000000100000005C8FC2B5ABEE5041000000206CBA5441B81E85BBABEE5041295C8F5272BA5441333333E3AAEE504114AE472175BA544185EB5108A9EE5041D7A370CD77BA5441C3F528CCA5EE50410AD7A3E079BA5441B81E852BABEE5041D7A370CD87BA5441AE47E1BAACEE5041B81E856B91BA54411F85EBA1AEEE50419A99990998BA544148E17A94B1EE5041A4703DFA9EBA544152B81E45B4EE5041F6285CBFA1BA544100000010B7EE50415C8FC225A1BA5441AE47E10AB4EE5041A4703D2A9CBA5441713D0A27B3EE5041295C8F4298BA5441B81E856BB1EE5041000000107EBA5441F6285C6FB0EE504148E17AC479BA54415C8FC2B5ABEE5041000000206CBA5441
+</a>
+
+<b>
+0106000000010000000103000000010000003C0000008FEB5108A9EE5041C9A370CD77BA5441C3F528CCA5EE50410AD7A3E079BA5441B81E852BABEE5041D7A370CD87BA5441AE47E1BAACEE5041B81E856B91BA54411F85EBA1AEEE50419A99990998BA544148E17A94B1EE5041A4703DFA9EBA544152B81E45B4EE5041F6285CBFA1BA544100000010B7EE50415C8FC225A1BA5441AE47E10AB4EE5041A4703D2A9CBA5441713D0A27B3EE5041295C8F4298BA5441B81E856BB1EE5041000000107EBA5441F6285C6FB0EE504148E17AC479BA54415C8FC2B5ABEE5041000000206CBA5441B81E85BBABEE5041295C8F5272BA5441333333E3AAEE504114AE472175BA5441CD22CE13A9EE504124ABE4BC77BA5441E3EFF322A8EE50410F36C2A276BA544100000090A9EE5041A4703D9A74BA5441E17A144EAAEE50413333332372BA5441EC51B87EA9EE5041CDCCCCCC65BA5441B81E85EBA6EE5041F6285CDF61BA5441C3F528DCA2EE5041666666965EBA5441AE47E12A98EE5041A4703D5A56BA54411F85EB3191EE5041E17A14AE4EBA5441666666468DEE5041E17A146E46BA5441333333C38CEE50413D0AD78340BA544152B81EA58DEE50419A9999093BBA5441F6285C3F90EE5041A4703D3A35BA5441666666B695EE50418FC2F5782CBA5441CDCCCC9C99EE5041B81E85BB21BA5441CDCCCCEC99EE504185EB51A81DBA54419A9999E997EE5041A4703DAA18BA5441666666A694EE5041B81E85CB14BA5441713D0AB78DEE504148E17A3411BA5441D7A370FD80EE5041666666060DBA544185EB513880EE5041F6285CCF0FBA5441A4703DCA8BEE5041AE47E13A15BA54410000000091EE50415C8FC21518BA5441713D0AF793EE5041666666961ABA5441A4703DDA94EE5041713D0A171DBA544152B81E0595EE5041E17A14FE1FBA5441B81E857B94EE5041666666B622BA544148E17A4493EE5041713D0A0725BA5441D7A370CD90EE5041CDCCCC8C28BA5441B81E85EB7FEE5041B81E857B39BA5441E17A141E80EE504114AE47813EBA5441B81E85CB82EE504185EB51D844BA54416666666684EE504152B81E5545BA5441CDCCCC3C88EE5041713D0AE749BA54415C8FC24588EE5041333333434EBA544114AE47018CEE5041000000D051BA54410000002092EE50413D0AD7C356BA54417B14AEB799EE5041713D0AF75DBA54410AD7A3509FEE5041F6285C5F65BA5441AE47E10AA4EE504114AE47A16EBA5441AE47E16AA4EE50416666666671BA54418FC2F598A3EE5041EC51B82E74BA544114AE4711A5EE504114AE47F177BA544185EB5118A8EE50411F85EBB176BA54418FEB5108A9EE5041C9A370CD77BA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>557724 - 3570481
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000060000000103000000010000002D000000A4703DFA52EE5041E17A146E00BA54419A9999B954EE5041F6285C5F04BA5441C3F5283C52EE5041A4703D5A05BA544185EB514852EE5041D7A370BD06BA5441295C8F6261EE5041000000100CBA5441F6285CDF61EE5041B81E856B0DBA54411F85EB916AEE50413333336317BA544148E17A3474EE50410AD7A34021BA54410AD7A3907AEE5041C3F5289C1BBA5441295C8F827DEE50419A9999A91ABA54417B14AE578BEE50417B14AE2716BA5441295C8FE283EE50416666665613BA54413D0AD70379EE5041333333430EBA5441B81E85EB71EE5041C3F528AC09BA5441CDCCCC9C6DEE5041F6285CFF04BA5441D7A370FD66EE5041D7A3702DFBB954415C8FC2B55FEE50410AD7A3E0FDB954410AD7A3905DEE5041295C8FC2F9B9544114AE47B162EE504185EB5188F1B95441CDCCCCCC5FEE5041F6285CAFEEB95441295C8F725BEE504152B81E75ECB954410AD7A37058EE50413D0AD7C3EBB95441CDCCCC3C55EE50413D0AD7E3EBB9544152B81E7550EE50419A999989EDB95441295C8F5249EE504100000000F0B95441CDCCCC2C45EE5041E17A146EE9B9544152B81E553CEE5041CDCCCCCCF1B95441AE47E1AA37EE5041C3F5289CF5B95441000000902DEE5041F6285C9FFCB95441333333130EEE50410AD7A3F00FBA5441E17A146EFCED5041D7A370DD1BBA5441B81E857BEAED50411F85EB712ABA5441CDCCCC4CE6ED50417B14AEB72EBA54413D0AD703ECED50411F85EB812CBA5441E17A149E01EE5041666666F625BA54417B14AE6716EE5041F6285CCF1DBA5441713D0A5718EE5041C3F528BC1EBA5441E17A14CE21EE50410AD7A3801FBA5441EC51B8AE2EEE50417B14AED717BA54416666662631EE5041D7A3704D17BA54413D0AD7733AEE504185EB51D811BA54419A99998938EE50413D0AD7430EBA54419A9999F941EE50418FC2F53809BA5441EC51B80E4AEE50410000007004BA5441A4703DFA52EE5041E17A146E00BA544101030000000100000051000000295C8FC2F6EE50419A9999598CBA5441B81E853BF8EE5041B81E85EB88BA5441713D0A87F8EE50413333335386BA5441A4703D5AEDEE50410AD7A39086BA544185EB51C8DEEE50413333330385BA5441295C8FE2DCEE5041F6285C3F84BA544148E17A34DCEE50415C8FC2958BBA5441295C8F22DCEE5041713D0A978CBA54419A9999E9D3EE50419A9999D98CBA54415C8FC225CDEE50417B14AE778EBA5441F6285C1FCBEE5041CDCCCCEC8FBA54410AD7A380C9EE5041CDCCCC2C92BA54410AD7A3F0C8EE50411F85EB1195BA544114AE4771CAEE5041713D0AD79DBA5441E17A14EECAEE5041F6285CAFA0BA5441A4703D1ACDEE5041AE47E1BAA5BA54417B14AE77D0EE50415C8FC225AABA5441C3F528BCD2EE504100000020B0BA544166666636D3EE504100000040B6BA5441A4703D7ACEEE5041295C8F82C0BA544148E17AF4CDEE504152B81EA5C1BA5441F6285CFFC8EE5041333333B3C0BA54415C8FC245C6EE50415C8FC2D5C0BA54415C8FC245C0EE50410AD7A370C6BA54410AD7A3B0B0EE50410AD7A320D5BA544114AE47F1A7EE504185EB5188DFBA544152B81E05A6EE50413D0AD723E3BA544152B81EF5A3EE5041AE47E1BAE7BA54413D0AD773A2EE5041A4703D4AEEBA5441C3F5283CA0EE50419A999919F4BA54417B14AE07A0EE504185EB51F8F7BA54415C8FC295A1EE504114AE4701FBBA5441F6285CEFA5EE5041EC51B84E00BB5441666666E6A9EE5041EC51B89E07BB54417B14AE47AEEE50419A9999890CBB54418FC2F558BBEE50419A9999D915BB544133333353C0EE5041AE47E1FA1BBB54411F85EB31BFEE50413D0AD7231CBB54410AD7A3C0C5EE504114AE47D128BB5441295C8F02CCEE50416666667627BB54417B14AEA7CBEE504148E17A8426BB5441713D0AA7C7EE50417B14AED71BBB54411F85EB41C3EE504152B81EB514BB5441E17A141EBAEE5041A4703D3A0BBB5441B81E852BAFEE50415C8FC20502BB544133333323B0EE504152B81E6501BB5441E17A14BEAFEE504185EB512800BB54418FC2F538B0EE504114AE47F1FEBA5441C3F5280CA6EE504148E17AC4F6BA5441AE47E15AA9EE5041D7A3704DF0BA5441A4703D9AA9EE50410AD7A370EDBA54410AD7A380A9EE50415C8FC205EBBA5441A4703D8AAAEE504114AE4791E7BA5441AE47E11AADEE50417B14AEC7E2BA5441CDCCCC6CAFEE504100000050E0BA544152B81E85B3EE5041EC51B8EEDEBA54411F85EB61B6EE504152B81E35D9BA54410AD7A3B0BEEE504133333343DFBA544133333333C4EE5041A4703D9AD4BA5441C3F5283CC5EE504152B81EF5CEBA54410AD7A350C8EE5041000000B0CBBA544185EB5158DDEE504114AE4741D3BA5441A4703DCADEEE50417B14AE77D1BA544166666606E5EE5041AE47E12AD4BA5441D7A370EDF0EE504185EB5148D7BA5441E17A143EF9EE5041295C8FF2D5BA54413D0AD77308EF5041B81E850BD9BA5441333333D309EF5041295C8F52D8BA5441EC51B8DE0BEF504133333383D3BA5441CDCCCC8CF2EE5041D7A370CDCEBA54419A9999E9E4EE504100000040CBBA5441C3F5287CD6EE5041713D0AB7C3BA5441713D0A37DBEE504148E17A84BCBA544148E17A74DCEE50419A999909B6BA54410AD7A350DBEE5041E17A144EACBA544100000060D9EE5041AE47E1CAA6BA544185EB51A8D5EE504114AE47B1A1BA5441AE47E16AD2EE50416666666697BA5441333333C3DCEE5041D7A3706D95BA544114AE4791E4EE5041333333E392BA5441295C8FC2F6EE50419A9999598CBA54410103000000010000001500000066666646B8EE5041295C8F12A0BA54418FC2F5E8C0EE5041C3F5289CA7BA54418FC2F5E8C4EE50410AD7A320ADBA5441B81E850BC9EE5041D7A3702DABBA5441713D0AF7C0EE5041295C8FC2A0BA5441666666F6BAEE5041666666E69CBA544152B81E65B8EE50416666664698BA5441E17A143EB7EE504152B81E1589BA5441F6285CDFB7EE5041CDCCCC0C83BA544148E17A34B8EE504152B81ED57FBA5441A4703D0AB5EE50419A99997971BA54411F85EB91B2EE5041000000606BBA5441E17A142EAFEE50415C8FC29564BA5441666666C6ABEE5041AE47E13A5FBA5441D7A3701DA8EE5041CDCCCCEC60BA544114AE47A1AAEE50410AD7A36065BA54418FC2F5B8B1EE50411F85EB6179BA5441295C8FE2B2EE50411F85EBF17DBA5441C3F5289CB4EE5041713D0A1798BA5441CDCCCCFCB4EE5041CDCCCCBC9BBA544166666646B8EE5041295C8F12A0BA544101030000000100000013000000295C8F72C6ED504185EB51985DBA5441C3F528BCC7ED50417B14AE775FBA54417B14AE67C9ED50410AD7A3F061BA544148E17AD4DCED504148E17A0451BA5441295C8F82DBED5041E17A14CE50BA5441AE47E1BADAED50419A9999D94FBA544148E17AA4E2ED50417B14AE5749BA5441333333C3E1ED5041713D0AF746BA5441EC51B8CEE0ED50410AD7A36044BA54418FC2F558F0ED50410000008039BA5441B81E852BFBED50410AD7A3A032BA54413333334312EE5041F6285CFF22BA5441A4703D9A02EE5041D7A370ED28BA5441AE47E1CAECED5041B81E854B2FBA544185EB5108E1ED50419A99991934BA54418FC2F518D7ED50410AD7A3C03DBA54419A999989CDED50410000000049BA5441E17A14CEC1ED504152B81ED556BA5441295C8F72C6ED504185EB51985DBA54410103000000010000002B000000AE47E16AA4EE50416666666671BA54418FC2F598A3EE5041EC51B82E74BA544114AE4711A5EE504114AE47F177BA544185EB5118A8EE50411F85EBB176BA544100000090A9EE5041A4703D9A74BA5441E17A144EAAEE50413333332372BA5441EC51B87EA9EE5041CDCCCCCC65BA5441B81E85EBA6EE5041F6285CDF61BA5441C3F528DCA2EE5041666666965EBA5441AE47E12A98EE5041A4703D5A56BA54411F85EB3191EE5041E17A14AE4EBA5441666666468DEE5041E17A146E46BA5441333333C38CEE50413D0AD78340BA544152B81EA58DEE50419A9999093BBA5441F6285C3F90EE5041A4703D3A35BA5441666666B695EE50418FC2F5782CBA5441CDCCCC9C99EE5041B81E85BB21BA5441CDCCCCEC99EE504185EB51A81DBA54419A9999E997EE5041A4703DAA18BA5441666666A694EE5041B81E85CB14BA5441713D0AB78DEE504148E17A3411BA5441D7A370FD80EE5041666666060DBA544185EB513880EE5041F6285CCF0FBA5441A4703DCA8BEE5041AE47E13A15BA54410000000091EE50415C8FC21518BA5441713D0AF793EE5041666666961ABA5441A4703DDA94EE5041713D0A171DBA544152B81E0595EE5041E17A14FE1FBA5441B81E857B94EE5041666666B622BA544148E17A4493EE5041713D0A0725BA5441D7A370CD90EE5041CDCCCC8C28BA5441B81E85EB7FEE5041B81E857B39BA5441E17A141E80EE504114AE47813EBA5441B81E85CB82EE504185EB51D844BA54416666666684EE504152B81E5545BA5441CDCCCC3C88EE5041713D0AE749BA54415C8FC24588EE5041333333434EBA544114AE47018CEE5041000000D051BA54410000002092EE50413D0AD7C356BA54417B14AEB799EE5041713D0AF75DBA54410AD7A3509FEE5041F6285C5F65BA5441AE47E10AA4EE504114AE47A16EBA5441AE47E16AA4EE50416666666671BA5441010300000001000000100000005C8FC2B5ABEE5041000000206CBA5441B81E85BBABEE5041295C8F5272BA5441333333E3AAEE504114AE472175BA544185EB5108A9EE5041D7A370CD77BA5441C3F528CCA5EE50410AD7A3E079BA5441B81E852BABEE5041D7A370CD87BA5441AE47E1BAACEE5041B81E856B91BA54411F85EBA1AEEE50419A99990998BA544148E17A94B1EE5041A4703DFA9EBA544152B81E45B4EE5041F6285CBFA1BA544100000010B7EE50415C8FC225A1BA5441AE47E10AB4EE5041A4703D2A9CBA5441713D0A27B3EE5041295C8F4298BA5441B81E856BB1EE5041000000107EBA5441F6285C6FB0EE504148E17AC479BA54415C8FC2B5ABEE5041000000206CBA5441
+</a>
+
+<b>
+0106000000010000000103000000010000003C0000008FEB5108A9EE5041C9A370CD77BA5441C3F528CCA5EE50410AD7A3E079BA5441B81E852BABEE5041D7A370CD87BA5441AE47E1BAACEE5041B81E856B91BA54411F85EBA1AEEE50419A99990998BA544148E17A94B1EE5041A4703DFA9EBA544152B81E45B4EE5041F6285CBFA1BA544100000010B7EE50415C8FC225A1BA5441AE47E10AB4EE5041A4703D2A9CBA5441713D0A27B3EE5041295C8F4298BA5441B81E856BB1EE5041000000107EBA5441F6285C6FB0EE504148E17AC479BA54415C8FC2B5ABEE5041000000206CBA5441B81E85BBABEE5041295C8F5272BA5441333333E3AAEE504114AE472175BA5441CD22CE13A9EE504124ABE4BC77BA5441E3EFF322A8EE50410F36C2A276BA544100000090A9EE5041A4703D9A74BA5441E17A144EAAEE50413333332372BA5441EC51B87EA9EE5041CDCCCCCC65BA5441B81E85EBA6EE5041F6285CDF61BA5441C3F528DCA2EE5041666666965EBA5441AE47E12A98EE5041A4703D5A56BA54411F85EB3191EE5041E17A14AE4EBA5441666666468DEE5041E17A146E46BA5441333333C38CEE50413D0AD78340BA544152B81EA58DEE50419A9999093BBA5441F6285C3F90EE5041A4703D3A35BA5441666666B695EE50418FC2F5782CBA5441CDCCCC9C99EE5041B81E85BB21BA5441CDCCCCEC99EE504185EB51A81DBA54419A9999E997EE5041A4703DAA18BA5441666666A694EE5041B81E85CB14BA5441713D0AB78DEE504148E17A3411BA5441D7A370FD80EE5041666666060DBA544185EB513880EE5041F6285CCF0FBA5441A4703DCA8BEE5041AE47E13A15BA54410000000091EE50415C8FC21518BA5441713D0AF793EE5041666666961ABA5441A4703DDA94EE5041713D0A171DBA544152B81E0595EE5041E17A14FE1FBA5441B81E857B94EE5041666666B622BA544148E17A4493EE5041713D0A0725BA5441D7A370CD90EE5041CDCCCC8C28BA5441B81E85EB7FEE5041B81E857B39BA5441E17A141E80EE504114AE47813EBA5441B81E85CB82EE504185EB51D844BA54416666666684EE504152B81E5545BA5441CDCCCC3C88EE5041713D0AE749BA54415C8FC24588EE5041333333434EBA544114AE47018CEE5041000000D051BA54410000002092EE50413D0AD7C356BA54417B14AEB799EE5041713D0AF75DBA54410AD7A3509FEE5041F6285C5F65BA5441AE47E10AA4EE504114AE47A16EBA5441AE47E16AA4EE50416666666671BA54418FC2F598A3EE5041EC51B82E74BA544114AE4711A5EE504114AE47F177BA544185EB5118A8EE50411F85EBB176BA54418FEB5108A9EE5041C9A370CD77BA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>557724 - 249290
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000060000000103000000010000002D000000A4703DFA52EE5041E17A146E00BA54419A9999B954EE5041F6285C5F04BA5441C3F5283C52EE5041A4703D5A05BA544185EB514852EE5041D7A370BD06BA5441295C8F6261EE5041000000100CBA5441F6285CDF61EE5041B81E856B0DBA54411F85EB916AEE50413333336317BA544148E17A3474EE50410AD7A34021BA54410AD7A3907AEE5041C3F5289C1BBA5441295C8F827DEE50419A9999A91ABA54417B14AE578BEE50417B14AE2716BA5441295C8FE283EE50416666665613BA54413D0AD70379EE5041333333430EBA5441B81E85EB71EE5041C3F528AC09BA5441CDCCCC9C6DEE5041F6285CFF04BA5441D7A370FD66EE5041D7A3702DFBB954415C8FC2B55FEE50410AD7A3E0FDB954410AD7A3905DEE5041295C8FC2F9B9544114AE47B162EE504185EB5188F1B95441CDCCCCCC5FEE5041F6285CAFEEB95441295C8F725BEE504152B81E75ECB954410AD7A37058EE50413D0AD7C3EBB95441CDCCCC3C55EE50413D0AD7E3EBB9544152B81E7550EE50419A999989EDB95441295C8F5249EE504100000000F0B95441CDCCCC2C45EE5041E17A146EE9B9544152B81E553CEE5041CDCCCCCCF1B95441AE47E1AA37EE5041C3F5289CF5B95441000000902DEE5041F6285C9FFCB95441333333130EEE50410AD7A3F00FBA5441E17A146EFCED5041D7A370DD1BBA5441B81E857BEAED50411F85EB712ABA5441CDCCCC4CE6ED50417B14AEB72EBA54413D0AD703ECED50411F85EB812CBA5441E17A149E01EE5041666666F625BA54417B14AE6716EE5041F6285CCF1DBA5441713D0A5718EE5041C3F528BC1EBA5441E17A14CE21EE50410AD7A3801FBA5441EC51B8AE2EEE50417B14AED717BA54416666662631EE5041D7A3704D17BA54413D0AD7733AEE504185EB51D811BA54419A99998938EE50413D0AD7430EBA54419A9999F941EE50418FC2F53809BA5441EC51B80E4AEE50410000007004BA5441A4703DFA52EE5041E17A146E00BA544101030000000100000051000000295C8FC2F6EE50419A9999598CBA5441B81E853BF8EE5041B81E85EB88BA5441713D0A87F8EE50413333335386BA5441A4703D5AEDEE50410AD7A39086BA544185EB51C8DEEE50413333330385BA5441295C8FE2DCEE5041F6285C3F84BA544148E17A34DCEE50415C8FC2958BBA5441295C8F22DCEE5041713D0A978CBA54419A9999E9D3EE50419A9999D98CBA54415C8FC225CDEE50417B14AE778EBA5441F6285C1FCBEE5041CDCCCCEC8FBA54410AD7A380C9EE5041CDCCCC2C92BA54410AD7A3F0C8EE50411F85EB1195BA544114AE4771CAEE5041713D0AD79DBA5441E17A14EECAEE5041F6285CAFA0BA5441A4703D1ACDEE5041AE47E1BAA5BA54417B14AE77D0EE50415C8FC225AABA5441C3F528BCD2EE504100000020B0BA544166666636D3EE504100000040B6BA5441A4703D7ACEEE5041295C8F82C0BA544148E17AF4CDEE504152B81EA5C1BA5441F6285CFFC8EE5041333333B3C0BA54415C8FC245C6EE50415C8FC2D5C0BA54415C8FC245C0EE50410AD7A370C6BA54410AD7A3B0B0EE50410AD7A320D5BA544114AE47F1A7EE504185EB5188DFBA544152B81E05A6EE50413D0AD723E3BA544152B81EF5A3EE5041AE47E1BAE7BA54413D0AD773A2EE5041A4703D4AEEBA5441C3F5283CA0EE50419A999919F4BA54417B14AE07A0EE504185EB51F8F7BA54415C8FC295A1EE504114AE4701FBBA5441F6285CEFA5EE5041EC51B84E00BB5441666666E6A9EE5041EC51B89E07BB54417B14AE47AEEE50419A9999890CBB54418FC2F558BBEE50419A9999D915BB544133333353C0EE5041AE47E1FA1BBB54411F85EB31BFEE50413D0AD7231CBB54410AD7A3C0C5EE504114AE47D128BB5441295C8F02CCEE50416666667627BB54417B14AEA7CBEE504148E17A8426BB5441713D0AA7C7EE50417B14AED71BBB54411F85EB41C3EE504152B81EB514BB5441E17A141EBAEE5041A4703D3A0BBB5441B81E852BAFEE50415C8FC20502BB544133333323B0EE504152B81E6501BB5441E17A14BEAFEE504185EB512800BB54418FC2F538B0EE504114AE47F1FEBA5441C3F5280CA6EE504148E17AC4F6BA5441AE47E15AA9EE5041D7A3704DF0BA5441A4703D9AA9EE50410AD7A370EDBA54410AD7A380A9EE50415C8FC205EBBA5441A4703D8AAAEE504114AE4791E7BA5441AE47E11AADEE50417B14AEC7E2BA5441CDCCCC6CAFEE504100000050E0BA544152B81E85B3EE5041EC51B8EEDEBA54411F85EB61B6EE504152B81E35D9BA54410AD7A3B0BEEE504133333343DFBA544133333333C4EE5041A4703D9AD4BA5441C3F5283CC5EE504152B81EF5CEBA54410AD7A350C8EE5041000000B0CBBA544185EB5158DDEE504114AE4741D3BA5441A4703DCADEEE50417B14AE77D1BA544166666606E5EE5041AE47E12AD4BA5441D7A370EDF0EE504185EB5148D7BA5441E17A143EF9EE5041295C8FF2D5BA54413D0AD77308EF5041B81E850BD9BA5441333333D309EF5041295C8F52D8BA5441EC51B8DE0BEF504133333383D3BA5441CDCCCC8CF2EE5041D7A370CDCEBA54419A9999E9E4EE504100000040CBBA5441C3F5287CD6EE5041713D0AB7C3BA5441713D0A37DBEE504148E17A84BCBA544148E17A74DCEE50419A999909B6BA54410AD7A350DBEE5041E17A144EACBA544100000060D9EE5041AE47E1CAA6BA544185EB51A8D5EE504114AE47B1A1BA5441AE47E16AD2EE50416666666697BA5441333333C3DCEE5041D7A3706D95BA544114AE4791E4EE5041333333E392BA5441295C8FC2F6EE50419A9999598CBA54410103000000010000001500000066666646B8EE5041295C8F12A0BA54418FC2F5E8C0EE5041C3F5289CA7BA54418FC2F5E8C4EE50410AD7A320ADBA5441B81E850BC9EE5041D7A3702DABBA5441713D0AF7C0EE5041295C8FC2A0BA5441666666F6BAEE5041666666E69CBA544152B81E65B8EE50416666664698BA5441E17A143EB7EE504152B81E1589BA5441F6285CDFB7EE5041CDCCCC0C83BA544148E17A34B8EE504152B81ED57FBA5441A4703D0AB5EE50419A99997971BA54411F85EB91B2EE5041000000606BBA5441E17A142EAFEE50415C8FC29564BA5441666666C6ABEE5041AE47E13A5FBA5441D7A3701DA8EE5041CDCCCCEC60BA544114AE47A1AAEE50410AD7A36065BA54418FC2F5B8B1EE50411F85EB6179BA5441295C8FE2B2EE50411F85EBF17DBA5441C3F5289CB4EE5041713D0A1798BA5441CDCCCCFCB4EE5041CDCCCCBC9BBA544166666646B8EE5041295C8F12A0BA544101030000000100000013000000295C8F72C6ED504185EB51985DBA5441C3F528BCC7ED50417B14AE775FBA54417B14AE67C9ED50410AD7A3F061BA544148E17AD4DCED504148E17A0451BA5441295C8F82DBED5041E17A14CE50BA5441AE47E1BADAED50419A9999D94FBA544148E17AA4E2ED50417B14AE5749BA5441333333C3E1ED5041713D0AF746BA5441EC51B8CEE0ED50410AD7A36044BA54418FC2F558F0ED50410000008039BA5441B81E852BFBED50410AD7A3A032BA54413333334312EE5041F6285CFF22BA5441A4703D9A02EE5041D7A370ED28BA5441AE47E1CAECED5041B81E854B2FBA544185EB5108E1ED50419A99991934BA54418FC2F518D7ED50410AD7A3C03DBA54419A999989CDED50410000000049BA5441E17A14CEC1ED504152B81ED556BA5441295C8F72C6ED504185EB51985DBA54410103000000010000002B000000AE47E16AA4EE50416666666671BA54418FC2F598A3EE5041EC51B82E74BA544114AE4711A5EE504114AE47F177BA544185EB5118A8EE50411F85EBB176BA544100000090A9EE5041A4703D9A74BA5441E17A144EAAEE50413333332372BA5441EC51B87EA9EE5041CDCCCCCC65BA5441B81E85EBA6EE5041F6285CDF61BA5441C3F528DCA2EE5041666666965EBA5441AE47E12A98EE5041A4703D5A56BA54411F85EB3191EE5041E17A14AE4EBA5441666666468DEE5041E17A146E46BA5441333333C38CEE50413D0AD78340BA544152B81EA58DEE50419A9999093BBA5441F6285C3F90EE5041A4703D3A35BA5441666666B695EE50418FC2F5782CBA5441CDCCCC9C99EE5041B81E85BB21BA5441CDCCCCEC99EE504185EB51A81DBA54419A9999E997EE5041A4703DAA18BA5441666666A694EE5041B81E85CB14BA5441713D0AB78DEE504148E17A3411BA5441D7A370FD80EE5041666666060DBA544185EB513880EE5041F6285CCF0FBA5441A4703DCA8BEE5041AE47E13A15BA54410000000091EE50415C8FC21518BA5441713D0AF793EE5041666666961ABA5441A4703DDA94EE5041713D0A171DBA544152B81E0595EE5041E17A14FE1FBA5441B81E857B94EE5041666666B622BA544148E17A4493EE5041713D0A0725BA5441D7A370CD90EE5041CDCCCC8C28BA5441B81E85EB7FEE5041B81E857B39BA5441E17A141E80EE504114AE47813EBA5441B81E85CB82EE504185EB51D844BA54416666666684EE504152B81E5545BA5441CDCCCC3C88EE5041713D0AE749BA54415C8FC24588EE5041333333434EBA544114AE47018CEE5041000000D051BA54410000002092EE50413D0AD7C356BA54417B14AEB799EE5041713D0AF75DBA54410AD7A3509FEE5041F6285C5F65BA5441AE47E10AA4EE504114AE47A16EBA5441AE47E16AA4EE50416666666671BA5441010300000001000000100000005C8FC2B5ABEE5041000000206CBA5441B81E85BBABEE5041295C8F5272BA5441333333E3AAEE504114AE472175BA544185EB5108A9EE5041D7A370CD77BA5441C3F528CCA5EE50410AD7A3E079BA5441B81E852BABEE5041D7A370CD87BA5441AE47E1BAACEE5041B81E856B91BA54411F85EBA1AEEE50419A99990998BA544148E17A94B1EE5041A4703DFA9EBA544152B81E45B4EE5041F6285CBFA1BA544100000010B7EE50415C8FC225A1BA5441AE47E10AB4EE5041A4703D2A9CBA5441713D0A27B3EE5041295C8F4298BA5441B81E856BB1EE5041000000107EBA5441F6285C6FB0EE504148E17AC479BA54415C8FC2B5ABEE5041000000206CBA5441
+</a>
+
+<b>
+01060000000100000001030000000100000061000000241F85EB71EE504123F628AC09BA5441339BA70671EE504122CEC4B308BA544150B87A0371EE5041059152B008BA544118CDCC9C6DEE504197295CFF04BA5441254F24226DEE50418DC47A4904BA544166619EB66BEE50416C55702E02BA5441C978DFCB6AEE5041AF2D5AD200BA5441784A41AF69EE5041F208F04C00BA5441EA59525768EE504108E2A11600BA54416A9BCB4767EE504170313519FFB95441DCAADCEF65EE50417AF1B2BEFEB9544163939F6164EE5041FC8BE22DFEB95441D9149BAC63EE5041F819F88AFDB954414F9696F762EE50416182BFB1FCB9544175C762F662EE50412B22D6ABFCB9544167B90B1E60EE5041516BF6B9FDB954415C8FC2B55FEE50410AD7A3E0FDB95441AF3300995FEE504198336FA9FDB9544174D6A3905DEE5041BE5B8FC2F9B954418661553E61EE5041EAD088DBF3B954414F590B3361EE5041223DE0BFF3B95441534EE8B65FEE50418F179289F3B95441359161A75EEE504190DA06C5F1B954414B6A13715EEE50410E034C91F0B95441B060F0F45CEE504175125D39EFB95441A87C1BAF5BEE50410C6D0A4EEEB9544111BB40C05AEE504167BF89C1EDB954410B5C8F725BEE50414BB81E75ECB954418485031E5AEE504151E4B426ECB95441A1D7A37058EE5041930AD7C3EBB954410DAF9E2557EE5041D2A8C2D0EBB954415436522056EE5041CE9AF5DAEBB95441CDCCCC3C55EE50413D0AD7E3EBB9544152B81E7550EE50419A999989EDB954419965924B4DEE50415AC2FFA0EEB95441AA5C8F5249EE504196000000F0B95441D9CCCC2C45EE5041F47A146EE9B954414385382F44EE50415CF31B5EEAB9544152B81E553CEE5041CDCCCCCCF1B95441B67D92E839EE5041C42A9DC7F3B954414F48E1AA37EE50410EF6289CF5B95441F5FFFF8F2DEE504197295C9FFCB95441923233130EEE504180D7A3F00FBA5441427B146EFCED504163A470DD1BBA5441A5347146EBED5041FA7B12CD29BA5441B81E857BEAED50411F85EB712ABA5441DFCCCC4CE6ED50416914AEB72EBA54415330B417E8ED5041E79A38062EBA54413D0AD703ECED50411F85EB812CBA5441E17A149E01EE5041666666F625BA54417B14AE6716EE5041F6285CCF1DBA544163D8B21317EE5041AD5397211EBA5441303D0A5718EE50414CF528BC1EBA54413A2B8ADF1CEE5041904A431A1FBA5441E17A14CE21EE50410AD7A3801FBA54416F75CE1327EE5041762FC65D1CBA5441970A229725EE5041D1CCD18015BA5441462BF1222EEE50411C24654E10BA544167E2A9F836EE504197BFABCC08BA54410BE8D39739EE50410CC074B30DBA5441FA9D0CCF3BEE50411B1063840CBA5441690177DD49EE504100F5F07804BA5441111B3D9F4FEE5041AD2F01F001BA54410EA3457B50EE5041CE64268D01BA54417657D5FE51EE504105A007DF00BA5441A6B22AFF51EE5041186DC0DD00BA544198BD4D7B53EE504108E2A11600BA5441F4CCB99254EE50416F1AA80704BA54419A9999B954EE5041F6285C5F04BA5441894B72AC54EE5041D771896404BA5441A0A122C154EE5041921A3FAF04BA5441F443597953EE50417D4F78D005BA54418A85EBE161EE504121295C2F0BBA54419AE7ABE96BEE50414B1E705E14BA54410678BBCB6CEE5041519AD1AC13BA5441FCB73D266DEE5041C71BCDF712BA54410678BBCB6CEE5041D510AA7B11BA54410AEAA56E6DEE5041BBC50D0F11BA5441195C90116EEE5041BDDE413311BA544197C160A26EEE5041475D46E811BA5441FE4D7F696FEE5041CD6960FA11BA54411F64BCF770EE5041475D46E811BA544188090FE371EE50415B5A4F5213BA54410FD99D3070EE50415FCC39F513BA544180253A9D70EE50415DF0909515BA54418201E3FC6EEE5041543013F015BA54415573B1F16EEE50412E6F2F1816BA54411D5B8F827DEE5041F09999A91ABA5441A2F0CEB782EE504188C824F718BA5441CBD4BC1984EE5041EAACCF8318BA5441BB9ADB2C84EE504149B8F16318BA5441E63AF24F84EE5041698B257218BA54417B14AE578BEE50417B14AE2716BA544115A95B3586EE50417E841E3714BA5441545C8FE283EE50419C66665613BA54415E0AD70379EE5041B43333430EBA5441241F85EB71EE504123F628AC09BA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>557724 - 249293
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000060000000103000000010000002D000000A4703DFA52EE5041E17A146E00BA54419A9999B954EE5041F6285C5F04BA5441C3F5283C52EE5041A4703D5A05BA544185EB514852EE5041D7A370BD06BA5441295C8F6261EE5041000000100CBA5441F6285CDF61EE5041B81E856B0DBA54411F85EB916AEE50413333336317BA544148E17A3474EE50410AD7A34021BA54410AD7A3907AEE5041C3F5289C1BBA5441295C8F827DEE50419A9999A91ABA54417B14AE578BEE50417B14AE2716BA5441295C8FE283EE50416666665613BA54413D0AD70379EE5041333333430EBA5441B81E85EB71EE5041C3F528AC09BA5441CDCCCC9C6DEE5041F6285CFF04BA5441D7A370FD66EE5041D7A3702DFBB954415C8FC2B55FEE50410AD7A3E0FDB954410AD7A3905DEE5041295C8FC2F9B9544114AE47B162EE504185EB5188F1B95441CDCCCCCC5FEE5041F6285CAFEEB95441295C8F725BEE504152B81E75ECB954410AD7A37058EE50413D0AD7C3EBB95441CDCCCC3C55EE50413D0AD7E3EBB9544152B81E7550EE50419A999989EDB95441295C8F5249EE504100000000F0B95441CDCCCC2C45EE5041E17A146EE9B9544152B81E553CEE5041CDCCCCCCF1B95441AE47E1AA37EE5041C3F5289CF5B95441000000902DEE5041F6285C9FFCB95441333333130EEE50410AD7A3F00FBA5441E17A146EFCED5041D7A370DD1BBA5441B81E857BEAED50411F85EB712ABA5441CDCCCC4CE6ED50417B14AEB72EBA54413D0AD703ECED50411F85EB812CBA5441E17A149E01EE5041666666F625BA54417B14AE6716EE5041F6285CCF1DBA5441713D0A5718EE5041C3F528BC1EBA5441E17A14CE21EE50410AD7A3801FBA5441EC51B8AE2EEE50417B14AED717BA54416666662631EE5041D7A3704D17BA54413D0AD7733AEE504185EB51D811BA54419A99998938EE50413D0AD7430EBA54419A9999F941EE50418FC2F53809BA5441EC51B80E4AEE50410000007004BA5441A4703DFA52EE5041E17A146E00BA544101030000000100000051000000295C8FC2F6EE50419A9999598CBA5441B81E853BF8EE5041B81E85EB88BA5441713D0A87F8EE50413333335386BA5441A4703D5AEDEE50410AD7A39086BA544185EB51C8DEEE50413333330385BA5441295C8FE2DCEE5041F6285C3F84BA544148E17A34DCEE50415C8FC2958BBA5441295C8F22DCEE5041713D0A978CBA54419A9999E9D3EE50419A9999D98CBA54415C8FC225CDEE50417B14AE778EBA5441F6285C1FCBEE5041CDCCCCEC8FBA54410AD7A380C9EE5041CDCCCC2C92BA54410AD7A3F0C8EE50411F85EB1195BA544114AE4771CAEE5041713D0AD79DBA5441E17A14EECAEE5041F6285CAFA0BA5441A4703D1ACDEE5041AE47E1BAA5BA54417B14AE77D0EE50415C8FC225AABA5441C3F528BCD2EE504100000020B0BA544166666636D3EE504100000040B6BA5441A4703D7ACEEE5041295C8F82C0BA544148E17AF4CDEE504152B81EA5C1BA5441F6285CFFC8EE5041333333B3C0BA54415C8FC245C6EE50415C8FC2D5C0BA54415C8FC245C0EE50410AD7A370C6BA54410AD7A3B0B0EE50410AD7A320D5BA544114AE47F1A7EE504185EB5188DFBA544152B81E05A6EE50413D0AD723E3BA544152B81EF5A3EE5041AE47E1BAE7BA54413D0AD773A2EE5041A4703D4AEEBA5441C3F5283CA0EE50419A999919F4BA54417B14AE07A0EE504185EB51F8F7BA54415C8FC295A1EE504114AE4701FBBA5441F6285CEFA5EE5041EC51B84E00BB5441666666E6A9EE5041EC51B89E07BB54417B14AE47AEEE50419A9999890CBB54418FC2F558BBEE50419A9999D915BB544133333353C0EE5041AE47E1FA1BBB54411F85EB31BFEE50413D0AD7231CBB54410AD7A3C0C5EE504114AE47D128BB5441295C8F02CCEE50416666667627BB54417B14AEA7CBEE504148E17A8426BB5441713D0AA7C7EE50417B14AED71BBB54411F85EB41C3EE504152B81EB514BB5441E17A141EBAEE5041A4703D3A0BBB5441B81E852BAFEE50415C8FC20502BB544133333323B0EE504152B81E6501BB5441E17A14BEAFEE504185EB512800BB54418FC2F538B0EE504114AE47F1FEBA5441C3F5280CA6EE504148E17AC4F6BA5441AE47E15AA9EE5041D7A3704DF0BA5441A4703D9AA9EE50410AD7A370EDBA54410AD7A380A9EE50415C8FC205EBBA5441A4703D8AAAEE504114AE4791E7BA5441AE47E11AADEE50417B14AEC7E2BA5441CDCCCC6CAFEE504100000050E0BA544152B81E85B3EE5041EC51B8EEDEBA54411F85EB61B6EE504152B81E35D9BA54410AD7A3B0BEEE504133333343DFBA544133333333C4EE5041A4703D9AD4BA5441C3F5283CC5EE504152B81EF5CEBA54410AD7A350C8EE5041000000B0CBBA544185EB5158DDEE504114AE4741D3BA5441A4703DCADEEE50417B14AE77D1BA544166666606E5EE5041AE47E12AD4BA5441D7A370EDF0EE504185EB5148D7BA5441E17A143EF9EE5041295C8FF2D5BA54413D0AD77308EF5041B81E850BD9BA5441333333D309EF5041295C8F52D8BA5441EC51B8DE0BEF504133333383D3BA5441CDCCCC8CF2EE5041D7A370CDCEBA54419A9999E9E4EE504100000040CBBA5441C3F5287CD6EE5041713D0AB7C3BA5441713D0A37DBEE504148E17A84BCBA544148E17A74DCEE50419A999909B6BA54410AD7A350DBEE5041E17A144EACBA544100000060D9EE5041AE47E1CAA6BA544185EB51A8D5EE504114AE47B1A1BA5441AE47E16AD2EE50416666666697BA5441333333C3DCEE5041D7A3706D95BA544114AE4791E4EE5041333333E392BA5441295C8FC2F6EE50419A9999598CBA54410103000000010000001500000066666646B8EE5041295C8F12A0BA54418FC2F5E8C0EE5041C3F5289CA7BA54418FC2F5E8C4EE50410AD7A320ADBA5441B81E850BC9EE5041D7A3702DABBA5441713D0AF7C0EE5041295C8FC2A0BA5441666666F6BAEE5041666666E69CBA544152B81E65B8EE50416666664698BA5441E17A143EB7EE504152B81E1589BA5441F6285CDFB7EE5041CDCCCC0C83BA544148E17A34B8EE504152B81ED57FBA5441A4703D0AB5EE50419A99997971BA54411F85EB91B2EE5041000000606BBA5441E17A142EAFEE50415C8FC29564BA5441666666C6ABEE5041AE47E13A5FBA5441D7A3701DA8EE5041CDCCCCEC60BA544114AE47A1AAEE50410AD7A36065BA54418FC2F5B8B1EE50411F85EB6179BA5441295C8FE2B2EE50411F85EBF17DBA5441C3F5289CB4EE5041713D0A1798BA5441CDCCCCFCB4EE5041CDCCCCBC9BBA544166666646B8EE5041295C8F12A0BA544101030000000100000013000000295C8F72C6ED504185EB51985DBA5441C3F528BCC7ED50417B14AE775FBA54417B14AE67C9ED50410AD7A3F061BA544148E17AD4DCED504148E17A0451BA5441295C8F82DBED5041E17A14CE50BA5441AE47E1BADAED50419A9999D94FBA544148E17AA4E2ED50417B14AE5749BA5441333333C3E1ED5041713D0AF746BA5441EC51B8CEE0ED50410AD7A36044BA54418FC2F558F0ED50410000008039BA5441B81E852BFBED50410AD7A3A032BA54413333334312EE5041F6285CFF22BA5441A4703D9A02EE5041D7A370ED28BA5441AE47E1CAECED5041B81E854B2FBA544185EB5108E1ED50419A99991934BA54418FC2F518D7ED50410AD7A3C03DBA54419A999989CDED50410000000049BA5441E17A14CEC1ED504152B81ED556BA5441295C8F72C6ED504185EB51985DBA54410103000000010000002B000000AE47E16AA4EE50416666666671BA54418FC2F598A3EE5041EC51B82E74BA544114AE4711A5EE504114AE47F177BA544185EB5118A8EE50411F85EBB176BA544100000090A9EE5041A4703D9A74BA5441E17A144EAAEE50413333332372BA5441EC51B87EA9EE5041CDCCCCCC65BA5441B81E85EBA6EE5041F6285CDF61BA5441C3F528DCA2EE5041666666965EBA5441AE47E12A98EE5041A4703D5A56BA54411F85EB3191EE5041E17A14AE4EBA5441666666468DEE5041E17A146E46BA5441333333C38CEE50413D0AD78340BA544152B81EA58DEE50419A9999093BBA5441F6285C3F90EE5041A4703D3A35BA5441666666B695EE50418FC2F5782CBA5441CDCCCC9C99EE5041B81E85BB21BA5441CDCCCCEC99EE504185EB51A81DBA54419A9999E997EE5041A4703DAA18BA5441666666A694EE5041B81E85CB14BA5441713D0AB78DEE504148E17A3411BA5441D7A370FD80EE5041666666060DBA544185EB513880EE5041F6285CCF0FBA5441A4703DCA8BEE5041AE47E13A15BA54410000000091EE50415C8FC21518BA5441713D0AF793EE5041666666961ABA5441A4703DDA94EE5041713D0A171DBA544152B81E0595EE5041E17A14FE1FBA5441B81E857B94EE5041666666B622BA544148E17A4493EE5041713D0A0725BA5441D7A370CD90EE5041CDCCCC8C28BA5441B81E85EB7FEE5041B81E857B39BA5441E17A141E80EE504114AE47813EBA5441B81E85CB82EE504185EB51D844BA54416666666684EE504152B81E5545BA5441CDCCCC3C88EE5041713D0AE749BA54415C8FC24588EE5041333333434EBA544114AE47018CEE5041000000D051BA54410000002092EE50413D0AD7C356BA54417B14AEB799EE5041713D0AF75DBA54410AD7A3509FEE5041F6285C5F65BA5441AE47E10AA4EE504114AE47A16EBA5441AE47E16AA4EE50416666666671BA5441010300000001000000100000005C8FC2B5ABEE5041000000206CBA5441B81E85BBABEE5041295C8F5272BA5441333333E3AAEE504114AE472175BA544185EB5108A9EE5041D7A370CD77BA5441C3F528CCA5EE50410AD7A3E079BA5441B81E852BABEE5041D7A370CD87BA5441AE47E1BAACEE5041B81E856B91BA54411F85EBA1AEEE50419A99990998BA544148E17A94B1EE5041A4703DFA9EBA544152B81E45B4EE5041F6285CBFA1BA544100000010B7EE50415C8FC225A1BA5441AE47E10AB4EE5041A4703D2A9CBA5441713D0A27B3EE5041295C8F4298BA5441B81E856BB1EE5041000000107EBA5441F6285C6FB0EE504148E17AC479BA54415C8FC2B5ABEE5041000000206CBA5441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000EA535108A9EE5041A4F06FCD77BA5441C87C6D58A7EE5041F61777E278BA54413A1E29CCA5EE5041EC3FA4E079BA5441B81E852BABEE5041D7A370CD87BA54413B912AC7ABEE50417860028D8BBA54414B9BE2BAACEE50412984866B91BA5441343CECA1AEEE504183FA980998BA5441F6B37B94B1EE5041EBC03DFA9EBA54413BF01E45B4EE5041A8FA5BBFA1BA54412164FF0FB7EE5041328EC125A1BA5441AE47E10AB4EE5041A4703D2A9CBA5441713D0A27B3EE5041295C8F4298BA5441B81E856BB1EE5041000000107EBA5441F6285C6FB0EE504148E17AC479BA5441F5463002AFEE50417CB71EA675BA54418B90C2B5ABEE50418A4501206CBA5441B81E85BBABEE5041295C8F5272BA5441333333E3AAEE504114AE472175BA544143FCAFE0AAEE50411B5CE62475BA5441CD22CE13A9EE504124ABE4BC77BA5441EA535108A9EE5041A4F06FCD77BA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>557724 - 357275
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000060000000103000000010000002D000000A4703DFA52EE5041E17A146E00BA54419A9999B954EE5041F6285C5F04BA5441C3F5283C52EE5041A4703D5A05BA544185EB514852EE5041D7A370BD06BA5441295C8F6261EE5041000000100CBA5441F6285CDF61EE5041B81E856B0DBA54411F85EB916AEE50413333336317BA544148E17A3474EE50410AD7A34021BA54410AD7A3907AEE5041C3F5289C1BBA5441295C8F827DEE50419A9999A91ABA54417B14AE578BEE50417B14AE2716BA5441295C8FE283EE50416666665613BA54413D0AD70379EE5041333333430EBA5441B81E85EB71EE5041C3F528AC09BA5441CDCCCC9C6DEE5041F6285CFF04BA5441D7A370FD66EE5041D7A3702DFBB954415C8FC2B55FEE50410AD7A3E0FDB954410AD7A3905DEE5041295C8FC2F9B9544114AE47B162EE504185EB5188F1B95441CDCCCCCC5FEE5041F6285CAFEEB95441295C8F725BEE504152B81E75ECB954410AD7A37058EE50413D0AD7C3EBB95441CDCCCC3C55EE50413D0AD7E3EBB9544152B81E7550EE50419A999989EDB95441295C8F5249EE504100000000F0B95441CDCCCC2C45EE5041E17A146EE9B9544152B81E553CEE5041CDCCCCCCF1B95441AE47E1AA37EE5041C3F5289CF5B95441000000902DEE5041F6285C9FFCB95441333333130EEE50410AD7A3F00FBA5441E17A146EFCED5041D7A370DD1BBA5441B81E857BEAED50411F85EB712ABA5441CDCCCC4CE6ED50417B14AEB72EBA54413D0AD703ECED50411F85EB812CBA5441E17A149E01EE5041666666F625BA54417B14AE6716EE5041F6285CCF1DBA5441713D0A5718EE5041C3F528BC1EBA5441E17A14CE21EE50410AD7A3801FBA5441EC51B8AE2EEE50417B14AED717BA54416666662631EE5041D7A3704D17BA54413D0AD7733AEE504185EB51D811BA54419A99998938EE50413D0AD7430EBA54419A9999F941EE50418FC2F53809BA5441EC51B80E4AEE50410000007004BA5441A4703DFA52EE5041E17A146E00BA544101030000000100000051000000295C8FC2F6EE50419A9999598CBA5441B81E853BF8EE5041B81E85EB88BA5441713D0A87F8EE50413333335386BA5441A4703D5AEDEE50410AD7A39086BA544185EB51C8DEEE50413333330385BA5441295C8FE2DCEE5041F6285C3F84BA544148E17A34DCEE50415C8FC2958BBA5441295C8F22DCEE5041713D0A978CBA54419A9999E9D3EE50419A9999D98CBA54415C8FC225CDEE50417B14AE778EBA5441F6285C1FCBEE5041CDCCCCEC8FBA54410AD7A380C9EE5041CDCCCC2C92BA54410AD7A3F0C8EE50411F85EB1195BA544114AE4771CAEE5041713D0AD79DBA5441E17A14EECAEE5041F6285CAFA0BA5441A4703D1ACDEE5041AE47E1BAA5BA54417B14AE77D0EE50415C8FC225AABA5441C3F528BCD2EE504100000020B0BA544166666636D3EE504100000040B6BA5441A4703D7ACEEE5041295C8F82C0BA544148E17AF4CDEE504152B81EA5C1BA5441F6285CFFC8EE5041333333B3C0BA54415C8FC245C6EE50415C8FC2D5C0BA54415C8FC245C0EE50410AD7A370C6BA54410AD7A3B0B0EE50410AD7A320D5BA544114AE47F1A7EE504185EB5188DFBA544152B81E05A6EE50413D0AD723E3BA544152B81EF5A3EE5041AE47E1BAE7BA54413D0AD773A2EE5041A4703D4AEEBA5441C3F5283CA0EE50419A999919F4BA54417B14AE07A0EE504185EB51F8F7BA54415C8FC295A1EE504114AE4701FBBA5441F6285CEFA5EE5041EC51B84E00BB5441666666E6A9EE5041EC51B89E07BB54417B14AE47AEEE50419A9999890CBB54418FC2F558BBEE50419A9999D915BB544133333353C0EE5041AE47E1FA1BBB54411F85EB31BFEE50413D0AD7231CBB54410AD7A3C0C5EE504114AE47D128BB5441295C8F02CCEE50416666667627BB54417B14AEA7CBEE504148E17A8426BB5441713D0AA7C7EE50417B14AED71BBB54411F85EB41C3EE504152B81EB514BB5441E17A141EBAEE5041A4703D3A0BBB5441B81E852BAFEE50415C8FC20502BB544133333323B0EE504152B81E6501BB5441E17A14BEAFEE504185EB512800BB54418FC2F538B0EE504114AE47F1FEBA5441C3F5280CA6EE504148E17AC4F6BA5441AE47E15AA9EE5041D7A3704DF0BA5441A4703D9AA9EE50410AD7A370EDBA54410AD7A380A9EE50415C8FC205EBBA5441A4703D8AAAEE504114AE4791E7BA5441AE47E11AADEE50417B14AEC7E2BA5441CDCCCC6CAFEE504100000050E0BA544152B81E85B3EE5041EC51B8EEDEBA54411F85EB61B6EE504152B81E35D9BA54410AD7A3B0BEEE504133333343DFBA544133333333C4EE5041A4703D9AD4BA5441C3F5283CC5EE504152B81EF5CEBA54410AD7A350C8EE5041000000B0CBBA544185EB5158DDEE504114AE4741D3BA5441A4703DCADEEE50417B14AE77D1BA544166666606E5EE5041AE47E12AD4BA5441D7A370EDF0EE504185EB5148D7BA5441E17A143EF9EE5041295C8FF2D5BA54413D0AD77308EF5041B81E850BD9BA5441333333D309EF5041295C8F52D8BA5441EC51B8DE0BEF504133333383D3BA5441CDCCCC8CF2EE5041D7A370CDCEBA54419A9999E9E4EE504100000040CBBA5441C3F5287CD6EE5041713D0AB7C3BA5441713D0A37DBEE504148E17A84BCBA544148E17A74DCEE50419A999909B6BA54410AD7A350DBEE5041E17A144EACBA544100000060D9EE5041AE47E1CAA6BA544185EB51A8D5EE504114AE47B1A1BA5441AE47E16AD2EE50416666666697BA5441333333C3DCEE5041D7A3706D95BA544114AE4791E4EE5041333333E392BA5441295C8FC2F6EE50419A9999598CBA54410103000000010000001500000066666646B8EE5041295C8F12A0BA54418FC2F5E8C0EE5041C3F5289CA7BA54418FC2F5E8C4EE50410AD7A320ADBA5441B81E850BC9EE5041D7A3702DABBA5441713D0AF7C0EE5041295C8FC2A0BA5441666666F6BAEE5041666666E69CBA544152B81E65B8EE50416666664698BA5441E17A143EB7EE504152B81E1589BA5441F6285CDFB7EE5041CDCCCC0C83BA544148E17A34B8EE504152B81ED57FBA5441A4703D0AB5EE50419A99997971BA54411F85EB91B2EE5041000000606BBA5441E17A142EAFEE50415C8FC29564BA5441666666C6ABEE5041AE47E13A5FBA5441D7A3701DA8EE5041CDCCCCEC60BA544114AE47A1AAEE50410AD7A36065BA54418FC2F5B8B1EE50411F85EB6179BA5441295C8FE2B2EE50411F85EBF17DBA5441C3F5289CB4EE5041713D0A1798BA5441CDCCCCFCB4EE5041CDCCCCBC9BBA544166666646B8EE5041295C8F12A0BA544101030000000100000013000000295C8F72C6ED504185EB51985DBA5441C3F528BCC7ED50417B14AE775FBA54417B14AE67C9ED50410AD7A3F061BA544148E17AD4DCED504148E17A0451BA5441295C8F82DBED5041E17A14CE50BA5441AE47E1BADAED50419A9999D94FBA544148E17AA4E2ED50417B14AE5749BA5441333333C3E1ED5041713D0AF746BA5441EC51B8CEE0ED50410AD7A36044BA54418FC2F558F0ED50410000008039BA5441B81E852BFBED50410AD7A3A032BA54413333334312EE5041F6285CFF22BA5441A4703D9A02EE5041D7A370ED28BA5441AE47E1CAECED5041B81E854B2FBA544185EB5108E1ED50419A99991934BA54418FC2F518D7ED50410AD7A3C03DBA54419A999989CDED50410000000049BA5441E17A14CEC1ED504152B81ED556BA5441295C8F72C6ED504185EB51985DBA54410103000000010000002B000000AE47E16AA4EE50416666666671BA54418FC2F598A3EE5041EC51B82E74BA544114AE4711A5EE504114AE47F177BA544185EB5118A8EE50411F85EBB176BA544100000090A9EE5041A4703D9A74BA5441E17A144EAAEE50413333332372BA5441EC51B87EA9EE5041CDCCCCCC65BA5441B81E85EBA6EE5041F6285CDF61BA5441C3F528DCA2EE5041666666965EBA5441AE47E12A98EE5041A4703D5A56BA54411F85EB3191EE5041E17A14AE4EBA5441666666468DEE5041E17A146E46BA5441333333C38CEE50413D0AD78340BA544152B81EA58DEE50419A9999093BBA5441F6285C3F90EE5041A4703D3A35BA5441666666B695EE50418FC2F5782CBA5441CDCCCC9C99EE5041B81E85BB21BA5441CDCCCCEC99EE504185EB51A81DBA54419A9999E997EE5041A4703DAA18BA5441666666A694EE5041B81E85CB14BA5441713D0AB78DEE504148E17A3411BA5441D7A370FD80EE5041666666060DBA544185EB513880EE5041F6285CCF0FBA5441A4703DCA8BEE5041AE47E13A15BA54410000000091EE50415C8FC21518BA5441713D0AF793EE5041666666961ABA5441A4703DDA94EE5041713D0A171DBA544152B81E0595EE5041E17A14FE1FBA5441B81E857B94EE5041666666B622BA544148E17A4493EE5041713D0A0725BA5441D7A370CD90EE5041CDCCCC8C28BA5441B81E85EB7FEE5041B81E857B39BA5441E17A141E80EE504114AE47813EBA5441B81E85CB82EE504185EB51D844BA54416666666684EE504152B81E5545BA5441CDCCCC3C88EE5041713D0AE749BA54415C8FC24588EE5041333333434EBA544114AE47018CEE5041000000D051BA54410000002092EE50413D0AD7C356BA54417B14AEB799EE5041713D0AF75DBA54410AD7A3509FEE5041F6285C5F65BA5441AE47E10AA4EE504114AE47A16EBA5441AE47E16AA4EE50416666666671BA5441010300000001000000100000005C8FC2B5ABEE5041000000206CBA5441B81E85BBABEE5041295C8F5272BA5441333333E3AAEE504114AE472175BA544185EB5108A9EE5041D7A370CD77BA5441C3F528CCA5EE50410AD7A3E079BA5441B81E852BABEE5041D7A370CD87BA5441AE47E1BAACEE5041B81E856B91BA54411F85EBA1AEEE50419A99990998BA544148E17A94B1EE5041A4703DFA9EBA544152B81E45B4EE5041F6285CBFA1BA544100000010B7EE50415C8FC225A1BA5441AE47E10AB4EE5041A4703D2A9CBA5441713D0A27B3EE5041295C8F4298BA5441B81E856BB1EE5041000000107EBA5441F6285C6FB0EE504148E17AC479BA54415C8FC2B5ABEE5041000000206CBA5441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000EA535108A9EE5041A4F06FCD77BA5441C87C6D58A7EE5041F61777E278BA54413A1E29CCA5EE5041EC3FA4E079BA5441B81E852BABEE5041D7A370CD87BA54413B912AC7ABEE50417860028D8BBA54414B9BE2BAACEE50412984866B91BA5441343CECA1AEEE504183FA980998BA5441F6B37B94B1EE5041EBC03DFA9EBA54413BF01E45B4EE5041A8FA5BBFA1BA54412164FF0FB7EE5041328EC125A1BA5441AE47E10AB4EE5041A4703D2A9CBA5441713D0A27B3EE5041295C8F4298BA5441B81E856BB1EE5041000000107EBA5441F6285C6FB0EE504148E17AC479BA5441F5463002AFEE50417CB71EA675BA54418B90C2B5ABEE50418A4501206CBA5441B81E85BBABEE5041295C8F5272BA5441333333E3AAEE504114AE472175BA544143FCAFE0AAEE50411B5CE62475BA5441CD22CE13A9EE504124ABE4BC77BA5441EA535108A9EE5041A4F06FCD77BA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>557724 - 357887
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000060000000103000000010000002D000000A4703DFA52EE5041E17A146E00BA54419A9999B954EE5041F6285C5F04BA5441C3F5283C52EE5041A4703D5A05BA544185EB514852EE5041D7A370BD06BA5441295C8F6261EE5041000000100CBA5441F6285CDF61EE5041B81E856B0DBA54411F85EB916AEE50413333336317BA544148E17A3474EE50410AD7A34021BA54410AD7A3907AEE5041C3F5289C1BBA5441295C8F827DEE50419A9999A91ABA54417B14AE578BEE50417B14AE2716BA5441295C8FE283EE50416666665613BA54413D0AD70379EE5041333333430EBA5441B81E85EB71EE5041C3F528AC09BA5441CDCCCC9C6DEE5041F6285CFF04BA5441D7A370FD66EE5041D7A3702DFBB954415C8FC2B55FEE50410AD7A3E0FDB954410AD7A3905DEE5041295C8FC2F9B9544114AE47B162EE504185EB5188F1B95441CDCCCCCC5FEE5041F6285CAFEEB95441295C8F725BEE504152B81E75ECB954410AD7A37058EE50413D0AD7C3EBB95441CDCCCC3C55EE50413D0AD7E3EBB9544152B81E7550EE50419A999989EDB95441295C8F5249EE504100000000F0B95441CDCCCC2C45EE5041E17A146EE9B9544152B81E553CEE5041CDCCCCCCF1B95441AE47E1AA37EE5041C3F5289CF5B95441000000902DEE5041F6285C9FFCB95441333333130EEE50410AD7A3F00FBA5441E17A146EFCED5041D7A370DD1BBA5441B81E857BEAED50411F85EB712ABA5441CDCCCC4CE6ED50417B14AEB72EBA54413D0AD703ECED50411F85EB812CBA5441E17A149E01EE5041666666F625BA54417B14AE6716EE5041F6285CCF1DBA5441713D0A5718EE5041C3F528BC1EBA5441E17A14CE21EE50410AD7A3801FBA5441EC51B8AE2EEE50417B14AED717BA54416666662631EE5041D7A3704D17BA54413D0AD7733AEE504185EB51D811BA54419A99998938EE50413D0AD7430EBA54419A9999F941EE50418FC2F53809BA5441EC51B80E4AEE50410000007004BA5441A4703DFA52EE5041E17A146E00BA544101030000000100000051000000295C8FC2F6EE50419A9999598CBA5441B81E853BF8EE5041B81E85EB88BA5441713D0A87F8EE50413333335386BA5441A4703D5AEDEE50410AD7A39086BA544185EB51C8DEEE50413333330385BA5441295C8FE2DCEE5041F6285C3F84BA544148E17A34DCEE50415C8FC2958BBA5441295C8F22DCEE5041713D0A978CBA54419A9999E9D3EE50419A9999D98CBA54415C8FC225CDEE50417B14AE778EBA5441F6285C1FCBEE5041CDCCCCEC8FBA54410AD7A380C9EE5041CDCCCC2C92BA54410AD7A3F0C8EE50411F85EB1195BA544114AE4771CAEE5041713D0AD79DBA5441E17A14EECAEE5041F6285CAFA0BA5441A4703D1ACDEE5041AE47E1BAA5BA54417B14AE77D0EE50415C8FC225AABA5441C3F528BCD2EE504100000020B0BA544166666636D3EE504100000040B6BA5441A4703D7ACEEE5041295C8F82C0BA544148E17AF4CDEE504152B81EA5C1BA5441F6285CFFC8EE5041333333B3C0BA54415C8FC245C6EE50415C8FC2D5C0BA54415C8FC245C0EE50410AD7A370C6BA54410AD7A3B0B0EE50410AD7A320D5BA544114AE47F1A7EE504185EB5188DFBA544152B81E05A6EE50413D0AD723E3BA544152B81EF5A3EE5041AE47E1BAE7BA54413D0AD773A2EE5041A4703D4AEEBA5441C3F5283CA0EE50419A999919F4BA54417B14AE07A0EE504185EB51F8F7BA54415C8FC295A1EE504114AE4701FBBA5441F6285CEFA5EE5041EC51B84E00BB5441666666E6A9EE5041EC51B89E07BB54417B14AE47AEEE50419A9999890CBB54418FC2F558BBEE50419A9999D915BB544133333353C0EE5041AE47E1FA1BBB54411F85EB31BFEE50413D0AD7231CBB54410AD7A3C0C5EE504114AE47D128BB5441295C8F02CCEE50416666667627BB54417B14AEA7CBEE504148E17A8426BB5441713D0AA7C7EE50417B14AED71BBB54411F85EB41C3EE504152B81EB514BB5441E17A141EBAEE5041A4703D3A0BBB5441B81E852BAFEE50415C8FC20502BB544133333323B0EE504152B81E6501BB5441E17A14BEAFEE504185EB512800BB54418FC2F538B0EE504114AE47F1FEBA5441C3F5280CA6EE504148E17AC4F6BA5441AE47E15AA9EE5041D7A3704DF0BA5441A4703D9AA9EE50410AD7A370EDBA54410AD7A380A9EE50415C8FC205EBBA5441A4703D8AAAEE504114AE4791E7BA5441AE47E11AADEE50417B14AEC7E2BA5441CDCCCC6CAFEE504100000050E0BA544152B81E85B3EE5041EC51B8EEDEBA54411F85EB61B6EE504152B81E35D9BA54410AD7A3B0BEEE504133333343DFBA544133333333C4EE5041A4703D9AD4BA5441C3F5283CC5EE504152B81EF5CEBA54410AD7A350C8EE5041000000B0CBBA544185EB5158DDEE504114AE4741D3BA5441A4703DCADEEE50417B14AE77D1BA544166666606E5EE5041AE47E12AD4BA5441D7A370EDF0EE504185EB5148D7BA5441E17A143EF9EE5041295C8FF2D5BA54413D0AD77308EF5041B81E850BD9BA5441333333D309EF5041295C8F52D8BA5441EC51B8DE0BEF504133333383D3BA5441CDCCCC8CF2EE5041D7A370CDCEBA54419A9999E9E4EE504100000040CBBA5441C3F5287CD6EE5041713D0AB7C3BA5441713D0A37DBEE504148E17A84BCBA544148E17A74DCEE50419A999909B6BA54410AD7A350DBEE5041E17A144EACBA544100000060D9EE5041AE47E1CAA6BA544185EB51A8D5EE504114AE47B1A1BA5441AE47E16AD2EE50416666666697BA5441333333C3DCEE5041D7A3706D95BA544114AE4791E4EE5041333333E392BA5441295C8FC2F6EE50419A9999598CBA54410103000000010000001500000066666646B8EE5041295C8F12A0BA54418FC2F5E8C0EE5041C3F5289CA7BA54418FC2F5E8C4EE50410AD7A320ADBA5441B81E850BC9EE5041D7A3702DABBA5441713D0AF7C0EE5041295C8FC2A0BA5441666666F6BAEE5041666666E69CBA544152B81E65B8EE50416666664698BA5441E17A143EB7EE504152B81E1589BA5441F6285CDFB7EE5041CDCCCC0C83BA544148E17A34B8EE504152B81ED57FBA5441A4703D0AB5EE50419A99997971BA54411F85EB91B2EE5041000000606BBA5441E17A142EAFEE50415C8FC29564BA5441666666C6ABEE5041AE47E13A5FBA5441D7A3701DA8EE5041CDCCCCEC60BA544114AE47A1AAEE50410AD7A36065BA54418FC2F5B8B1EE50411F85EB6179BA5441295C8FE2B2EE50411F85EBF17DBA5441C3F5289CB4EE5041713D0A1798BA5441CDCCCCFCB4EE5041CDCCCCBC9BBA544166666646B8EE5041295C8F12A0BA544101030000000100000013000000295C8F72C6ED504185EB51985DBA5441C3F528BCC7ED50417B14AE775FBA54417B14AE67C9ED50410AD7A3F061BA544148E17AD4DCED504148E17A0451BA5441295C8F82DBED5041E17A14CE50BA5441AE47E1BADAED50419A9999D94FBA544148E17AA4E2ED50417B14AE5749BA5441333333C3E1ED5041713D0AF746BA5441EC51B8CEE0ED50410AD7A36044BA54418FC2F558F0ED50410000008039BA5441B81E852BFBED50410AD7A3A032BA54413333334312EE5041F6285CFF22BA5441A4703D9A02EE5041D7A370ED28BA5441AE47E1CAECED5041B81E854B2FBA544185EB5108E1ED50419A99991934BA54418FC2F518D7ED50410AD7A3C03DBA54419A999989CDED50410000000049BA5441E17A14CEC1ED504152B81ED556BA5441295C8F72C6ED504185EB51985DBA54410103000000010000002B000000AE47E16AA4EE50416666666671BA54418FC2F598A3EE5041EC51B82E74BA544114AE4711A5EE504114AE47F177BA544185EB5118A8EE50411F85EBB176BA544100000090A9EE5041A4703D9A74BA5441E17A144EAAEE50413333332372BA5441EC51B87EA9EE5041CDCCCCCC65BA5441B81E85EBA6EE5041F6285CDF61BA5441C3F528DCA2EE5041666666965EBA5441AE47E12A98EE5041A4703D5A56BA54411F85EB3191EE5041E17A14AE4EBA5441666666468DEE5041E17A146E46BA5441333333C38CEE50413D0AD78340BA544152B81EA58DEE50419A9999093BBA5441F6285C3F90EE5041A4703D3A35BA5441666666B695EE50418FC2F5782CBA5441CDCCCC9C99EE5041B81E85BB21BA5441CDCCCCEC99EE504185EB51A81DBA54419A9999E997EE5041A4703DAA18BA5441666666A694EE5041B81E85CB14BA5441713D0AB78DEE504148E17A3411BA5441D7A370FD80EE5041666666060DBA544185EB513880EE5041F6285CCF0FBA5441A4703DCA8BEE5041AE47E13A15BA54410000000091EE50415C8FC21518BA5441713D0AF793EE5041666666961ABA5441A4703DDA94EE5041713D0A171DBA544152B81E0595EE5041E17A14FE1FBA5441B81E857B94EE5041666666B622BA544148E17A4493EE5041713D0A0725BA5441D7A370CD90EE5041CDCCCC8C28BA5441B81E85EB7FEE5041B81E857B39BA5441E17A141E80EE504114AE47813EBA5441B81E85CB82EE504185EB51D844BA54416666666684EE504152B81E5545BA5441CDCCCC3C88EE5041713D0AE749BA54415C8FC24588EE5041333333434EBA544114AE47018CEE5041000000D051BA54410000002092EE50413D0AD7C356BA54417B14AEB799EE5041713D0AF75DBA54410AD7A3509FEE5041F6285C5F65BA5441AE47E10AA4EE504114AE47A16EBA5441AE47E16AA4EE50416666666671BA5441010300000001000000100000005C8FC2B5ABEE5041000000206CBA5441B81E85BBABEE5041295C8F5272BA5441333333E3AAEE504114AE472175BA544185EB5108A9EE5041D7A370CD77BA5441C3F528CCA5EE50410AD7A3E079BA5441B81E852BABEE5041D7A370CD87BA5441AE47E1BAACEE5041B81E856B91BA54411F85EBA1AEEE50419A99990998BA544148E17A94B1EE5041A4703DFA9EBA544152B81E45B4EE5041F6285CBFA1BA544100000010B7EE50415C8FC225A1BA5441AE47E10AB4EE5041A4703D2A9CBA5441713D0A27B3EE5041295C8F4298BA5441B81E856BB1EE5041000000107EBA5441F6285C6FB0EE504148E17AC479BA54415C8FC2B5ABEE5041000000206CBA5441
+</a>
+
+<b>
+01060000000100000001030000000100000061000000241F85EB71EE504123F628AC09BA5441339BA70671EE504122CEC4B308BA544150B87A0371EE5041059152B008BA544118CDCC9C6DEE504197295CFF04BA5441254F24226DEE50418DC47A4904BA544166619EB66BEE50416C55702E02BA5441C978DFCB6AEE5041AF2D5AD200BA5441784A41AF69EE5041F208F04C00BA5441EA59525768EE504108E2A11600BA54416A9BCB4767EE504170313519FFB95441DCAADCEF65EE50417AF1B2BEFEB9544163939F6164EE5041FC8BE22DFEB95441D9149BAC63EE5041F819F88AFDB954414F9696F762EE50416182BFB1FCB9544175C762F662EE50412B22D6ABFCB9544167B90B1E60EE5041516BF6B9FDB954415C8FC2B55FEE50410AD7A3E0FDB95441AF3300995FEE504198336FA9FDB9544174D6A3905DEE5041BE5B8FC2F9B954418661553E61EE5041EAD088DBF3B954414F590B3361EE5041223DE0BFF3B95441534EE8B65FEE50418F179289F3B95441359161A75EEE504190DA06C5F1B954414B6A13715EEE50410E034C91F0B95441B060F0F45CEE504175125D39EFB95441A87C1BAF5BEE50410C6D0A4EEEB9544111BB40C05AEE504167BF89C1EDB954410B5C8F725BEE50414BB81E75ECB954418485031E5AEE504151E4B426ECB95441A1D7A37058EE5041930AD7C3EBB954410DAF9E2557EE5041D2A8C2D0EBB954415436522056EE5041CE9AF5DAEBB95441CDCCCC3C55EE50413D0AD7E3EBB9544152B81E7550EE50419A999989EDB954419965924B4DEE50415AC2FFA0EEB95441AA5C8F5249EE504196000000F0B95441D9CCCC2C45EE5041F47A146EE9B954414385382F44EE50415CF31B5EEAB9544152B81E553CEE5041CDCCCCCCF1B95441B67D92E839EE5041C42A9DC7F3B954414F48E1AA37EE50410EF6289CF5B95441F5FFFF8F2DEE504197295C9FFCB95441923233130EEE504180D7A3F00FBA5441427B146EFCED504163A470DD1BBA5441A5347146EBED5041FA7B12CD29BA5441B81E857BEAED50411F85EB712ABA5441DFCCCC4CE6ED50416914AEB72EBA54415330B417E8ED5041E79A38062EBA54413D0AD703ECED50411F85EB812CBA5441E17A149E01EE5041666666F625BA54417B14AE6716EE5041F6285CCF1DBA544163D8B21317EE5041AD5397211EBA5441303D0A5718EE50414CF528BC1EBA54413A2B8ADF1CEE5041904A431A1FBA5441E17A14CE21EE50410AD7A3801FBA54416F75CE1327EE5041762FC65D1CBA5441970A229725EE5041D1CCD18015BA5441462BF1222EEE50411C24654E10BA544167E2A9F836EE504197BFABCC08BA54410BE8D39739EE50410CC074B30DBA5441FA9D0CCF3BEE50411B1063840CBA5441690177DD49EE504100F5F07804BA5441111B3D9F4FEE5041AD2F01F001BA54410EA3457B50EE5041CE64268D01BA54417657D5FE51EE504105A007DF00BA5441A6B22AFF51EE5041186DC0DD00BA544198BD4D7B53EE504108E2A11600BA5441F4CCB99254EE50416F1AA80704BA54419A9999B954EE5041F6285C5F04BA5441894B72AC54EE5041D771896404BA5441A0A122C154EE5041921A3FAF04BA5441F443597953EE50417D4F78D005BA54418A85EBE161EE504121295C2F0BBA54419AE7ABE96BEE50414B1E705E14BA54410678BBCB6CEE5041519AD1AC13BA5441FCB73D266DEE5041C71BCDF712BA54410678BBCB6CEE5041D510AA7B11BA54410AEAA56E6DEE5041BBC50D0F11BA5441195C90116EEE5041BDDE413311BA544197C160A26EEE5041475D46E811BA5441FE4D7F696FEE5041CD6960FA11BA54411F64BCF770EE5041475D46E811BA544188090FE371EE50415B5A4F5213BA54410FD99D3070EE50415FCC39F513BA544180253A9D70EE50415DF0909515BA54418201E3FC6EEE5041543013F015BA54415573B1F16EEE50412E6F2F1816BA54411D5B8F827DEE5041F09999A91ABA5441A2F0CEB782EE504188C824F718BA5441CBD4BC1984EE5041EAACCF8318BA5441BB9ADB2C84EE504149B8F16318BA5441E63AF24F84EE5041698B257218BA54417B14AE578BEE50417B14AE2716BA544115A95B3586EE50417E841E3714BA5441545C8FE283EE50419C66665613BA54415E0AD70379EE5041B43333430EBA5441241F85EB71EE504123F628AC09BA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>712165 - 54011
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002300000032FCA0B07FAC50419E0B4F473A5955414A4B2D377FAC5041FB20DED83759554105A17B207FAC504157988F6437595541A58BA61B7FAC5041CC8ACB4B37595541327903047FAC50414BCBAB7E325955415BC3CC027FAC504199DB8E3F3259554196FA9D347FAC50415991329E2C5955415FE8F2027FAC5041B05BCC9D2B595541A1A7A5FE7EAC50418A61BF8A2B595541D723B84D7FAC50414A7185C526595541184E81567FAC5041A95329B52559554184295A5B7BAC5041C3B428BF245955412F9234C779AC504145C3CE0B27595541B2D5CF4978AC5041749B7D83295955416D08931476AC5041BF0DEC452D5955418F207F4B74AC50416CEB282530595541B1DBB61774AC5041A041FF1A3059554165D4AEE370AC50411B86E6852F595541F6285C0F6EAC50411F85EBB13B595541EC51B8BE6CAC50410AD7A3F041595541F6285C5F6AAC50417B14AE374D595541CDCCCCBC63AC5041295C8FE2685955410AD7A38066AC5041EC51B8EE6859554114AE470169AC504152B81E156859554148E17AC46AAC50418FC2F598665955413D0AD7536FAC504114AE47C162595541666666767AAC50413333336356595541666666067DAC504185EB51F8515955418FC2F5E87DAC50410AD7A370505955413B1C5A4D7FAC5041D0CE3893485955411B75E7977FAC504118D0A75746595541FCCD74E27FAC5041B24C7A8E42595541FCCD74E27FAC50419DE490C23D5955418246A6F47FAC5041D0F35B773B59554132FCA0B07FAC50419E0B4F473A595541
+</a>
+
+<b>
+0106000000010000000103000000010000003F000000474B2D377FAC5041FD20DED83759554165D0A0AD7FAC50412C2BEE373A5955412FFCA0B07FAC5041A10B4F473A59554125D658FB7FAC50412D8046593B595541E2B3B7ED7FAC5041620549AB3C59554113B8B7F17FAC5041CA705BD33C595541FDCD74E27FAC50419FE490C23D595541FDCD74E27FAC504144F9216F3E59554159098AE47FAC504147BF056742595541FDCD74E27FAC50410775598842595541FDCD74E27FAC5041AD4C7A8E4259554171DB69E07FAC5041F49D08A942595541BDDD37B47FAC50411B79286C455955418292219D7FAC5041E151B413465955411A75E7977FAC504113D0A7574659554119D594837FAC5041E79A76F346595541B1EC177F7FAC50416484C362475955419E3952577FAC50415598CA4648595541361C5A4D7FAC5041D4CE38934859554140A9B0277FAC5041EAACFD6749595541B13B781A7FAC5041DEF3EEC7495955414F7FCE1D7EAC5041035E464C4F595541F5A505107EAC50415E6F4E9B4F5955418ACF632E7EAC50417AB4E8624F59554132B36B227FAC5041713A75084D5955416E9F1BAD7FAC504134EB12B24B59554150D6082581AC5041B333C80148595541066905F980AC5041E3A01014435955415AE324D680AC50417D75991140595541CF69126280AC5041736B4CB03B595541FC9991E27FAC5041FEB2FF7037595541B412655280AC504186A971292B59554160FF987C81AC5041C787B47B25595541434FF14583AC50414BAA592A2259554197D5077F83AC5041CB457EBF21595541C73129BC84AC50416D8D3B451F5955414DCA0FF97CAC5041EFF609C91E595541423EE8207BAC50415996FD761F595541368118FE78AC50419FB0E1F1205955419D8B187876AC5041E99F7B9926595541A4DC83D174AC5041A752989529595541F7D848CF71AC5041DC9F8BBE2B5955410FB8A3EF70AC504124C93F7B2F59554192207F4B74AC504171EB2825305955410B26021978AC5041F1A396D6295955413BFB0CAC79AC504156C3532827595541344883527BAC504105340FBB2459554188A8FE567BAC5041566320BC2459554190F2D55C7BAC504139C10EB32459554141E1ED977DAC5041BDEA7D45255955417E243E667FAC5041EE0691B3255955411F5717067FAC5041D9C2E06D2B595541A96D81047FAC5041930266872B595541F6A26E297FAC50416D42F5642C59554192FA9D347FAC50415891329E2C595541C4A555347FAC50414E535FA62C5955414599D3347FAC5041450853A92C595541221EA62D7FAC504178F3CE672D5955415DC3CC027FAC50419BDB8E3F32595541317903047FAC50414ACBAB7E3259554185CBB01B7FAC5041944DDC833259554185CBB01B7FAC50413412004C37595541474B2D377FAC5041FD20DED837595541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>712165 - 130851
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002300000032FCA0B07FAC50419E0B4F473A5955414A4B2D377FAC5041FB20DED83759554105A17B207FAC504157988F6437595541A58BA61B7FAC5041CC8ACB4B37595541327903047FAC50414BCBAB7E325955415BC3CC027FAC504199DB8E3F3259554196FA9D347FAC50415991329E2C5955415FE8F2027FAC5041B05BCC9D2B595541A1A7A5FE7EAC50418A61BF8A2B595541D723B84D7FAC50414A7185C526595541184E81567FAC5041A95329B52559554184295A5B7BAC5041C3B428BF245955412F9234C779AC504145C3CE0B27595541B2D5CF4978AC5041749B7D83295955416D08931476AC5041BF0DEC452D5955418F207F4B74AC50416CEB282530595541B1DBB61774AC5041A041FF1A3059554165D4AEE370AC50411B86E6852F595541F6285C0F6EAC50411F85EBB13B595541EC51B8BE6CAC50410AD7A3F041595541F6285C5F6AAC50417B14AE374D595541CDCCCCBC63AC5041295C8FE2685955410AD7A38066AC5041EC51B8EE6859554114AE470169AC504152B81E156859554148E17AC46AAC50418FC2F598665955413D0AD7536FAC504114AE47C162595541666666767AAC50413333336356595541666666067DAC504185EB51F8515955418FC2F5E87DAC50410AD7A370505955413B1C5A4D7FAC5041D0CE3893485955411B75E7977FAC504118D0A75746595541FCCD74E27FAC5041B24C7A8E42595541FCCD74E27FAC50419DE490C23D5955418246A6F47FAC5041D0F35B773B59554132FCA0B07FAC50419E0B4F473A595541
+</a>
+
+<b>
+0106000000010000000103000000010000003F000000474B2D377FAC5041FD20DED83759554165D0A0AD7FAC50412C2BEE373A5955412FFCA0B07FAC5041A10B4F473A59554125D658FB7FAC50412D8046593B595541E1B3B7ED7FAC5041620549AB3C59554113B8B7F17FAC5041CA705BD33C595541FDCD74E27FAC50419FE490C23D595541FDCD74E27FAC504144F9216F3E59554159098AE47FAC504147BF056742595541FDCD74E27FAC50410775598842595541FDCD74E27FAC5041AD4C7A8E4259554171DB69E07FAC5041F49D08A942595541BDDD37B47FAC50411B79286C455955418292219D7FAC5041E151B413465955411A75E7977FAC504113D0A7574659554119D594837FAC5041E79A76F346595541B1EC177F7FAC50416484C362475955419E3952577FAC50415598CA4648595541361C5A4D7FAC5041D4CE38934859554140A9B0277FAC5041EAACFD6749595541B13B781A7FAC5041DEF3EEC7495955414A7FCE1D7EAC5041085E464C4F595541F2A505107EAC5041596F4E9B4F59554188CF632E7EAC50417FB4E8624F59554137B36B227FAC5041743A75084D5955416E9F1BAD7FAC504134EB12B24B59554153D6082581AC5041B633C801485955410B6905F980AC5041E2A01014435955415AE324D680AC50417D75991140595541CF69126280AC5041736B4CB03B595541FC9991E27FAC5041FEB2FF7037595541B412655280AC504186A971292B59554160FF987C81AC5041C787B47B25595541434FF14583AC50414BAA592A2259554197D5077F83AC5041CB457EBF21595541C83129BC84AC50416A8D3B451F5955414DCA0FF97CAC5041EFF609C91E595541423EE8207BAC50415996FD761F595541368118FE78AC50419FB0E1F1205955419D8B187876AC5041E99F7B9926595541A4DC83D174AC5041A752989529595541F7D848CF71AC5041DC9F8BBE2B5955410BB8A3EF70AC504123C93F7B2F59554192207F4B74AC504171EB2825305955410B26021978AC5041F1A396D6295955413BFB0CAC79AC504156C3532827595541344883527BAC504105340FBB2459554187A8FE567BAC5041586320BC2459554190F2D55C7BAC504139C10EB32459554144E1ED977DAC5041BCEA7D45255955417E243E667FAC5041EE0691B3255955411F5717067FAC5041D9C2E06D2B595541A96D81047FAC5041930266872B595541F6A26E297FAC50416D42F5642C59554192FA9D347FAC50415891329E2C595541C4A555347FAC50414D535FA62C5955414599D3347FAC5041450853A92C595541221EA62D7FAC504178F3CE672D5955415DC3CC027FAC50419BDB8E3F32595541317903047FAC50414ACBAB7E3259554185CBB01B7FAC5041944DDC833259554185CBB01B7FAC50413412004C37595541474B2D377FAC5041FD20DED837595541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>712165 - 329977
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002300000032FCA0B07FAC50419E0B4F473A5955414A4B2D377FAC5041FB20DED83759554105A17B207FAC504157988F6437595541A58BA61B7FAC5041CC8ACB4B37595541327903047FAC50414BCBAB7E325955415BC3CC027FAC504199DB8E3F3259554196FA9D347FAC50415991329E2C5955415FE8F2027FAC5041B05BCC9D2B595541A1A7A5FE7EAC50418A61BF8A2B595541D723B84D7FAC50414A7185C526595541184E81567FAC5041A95329B52559554184295A5B7BAC5041C3B428BF245955412F9234C779AC504145C3CE0B27595541B2D5CF4978AC5041749B7D83295955416D08931476AC5041BF0DEC452D5955418F207F4B74AC50416CEB282530595541B1DBB61774AC5041A041FF1A3059554165D4AEE370AC50411B86E6852F595541F6285C0F6EAC50411F85EBB13B595541EC51B8BE6CAC50410AD7A3F041595541F6285C5F6AAC50417B14AE374D595541CDCCCCBC63AC5041295C8FE2685955410AD7A38066AC5041EC51B8EE6859554114AE470169AC504152B81E156859554148E17AC46AAC50418FC2F598665955413D0AD7536FAC504114AE47C162595541666666767AAC50413333336356595541666666067DAC504185EB51F8515955418FC2F5E87DAC50410AD7A370505955413B1C5A4D7FAC5041D0CE3893485955411B75E7977FAC504118D0A75746595541FCCD74E27FAC5041B24C7A8E42595541FCCD74E27FAC50419DE490C23D5955418246A6F47FAC5041D0F35B773B59554132FCA0B07FAC50419E0B4F473A595541
+</a>
+
+<b>
+0106000000010000000103000000010000003F000000474B2D377FAC5041FD20DED83759554165D0A0AD7FAC50412C2BEE373A5955412FFCA0B07FAC5041A10B4F473A59554125D658FB7FAC50412D8046593B595541E1B3B7ED7FAC5041620549AB3C59554113B8B7F17FAC5041CA705BD33C595541FDCD74E27FAC50419FE490C23D595541FDCD74E27FAC504144F9216F3E59554159098AE47FAC504147BF056742595541FDCD74E27FAC50410775598842595541FDCD74E27FAC5041AD4C7A8E4259554171DB69E07FAC5041F49D08A942595541BDDD37B47FAC50411B79286C455955418292219D7FAC5041E151B413465955411A75E7977FAC504113D0A7574659554119D594837FAC5041E79A76F346595541B1EC177F7FAC50416484C362475955419E3952577FAC50415598CA4648595541361C5A4D7FAC5041D4CE38934859554140A9B0277FAC5041EAACFD6749595541B13B781A7FAC5041DEF3EEC7495955414A7FCE1D7EAC5041085E464C4F595541F2A505107EAC5041596F4E9B4F59554188CF632E7EAC50417FB4E8624F59554137B36B227FAC5041743A75084D5955416E9F1BAD7FAC504134EB12B24B59554153D6082581AC5041B633C801485955410B6905F980AC5041E2A01014435955415AE324D680AC50417D75991140595541CF69126280AC5041736B4CB03B595541FC9991E27FAC5041FEB2FF7037595541B412655280AC504186A971292B59554160FF987C81AC5041C787B47B25595541434FF14583AC50414BAA592A2259554197D5077F83AC5041CB457EBF21595541C83129BC84AC50416A8D3B451F5955414DCA0FF97CAC5041EFF609C91E595541423EE8207BAC50415996FD761F595541368118FE78AC50419FB0E1F1205955419D8B187876AC5041E99F7B9926595541A4DC83D174AC5041A752989529595541F7D848CF71AC5041DC9F8BBE2B5955410BB8A3EF70AC504123C93F7B2F59554192207F4B74AC504171EB2825305955410B26021978AC5041F1A396D6295955413BFB0CAC79AC504156C3532827595541344883527BAC504105340FBB2459554187A8FE567BAC5041586320BC2459554190F2D55C7BAC504139C10EB32459554144E1ED977DAC5041BCEA7D45255955417E243E667FAC5041EE0691B3255955411F5717067FAC5041D9C2E06D2B595541A96D81047FAC5041930266872B595541F6A26E297FAC50416D42F5642C59554192FA9D347FAC50415891329E2C595541C4A555347FAC50414D535FA62C5955414599D3347FAC5041450853A92C595541221EA62D7FAC504178F3CE672D5955415DC3CC027FAC50419BDB8E3F32595541317903047FAC50414ACBAB7E3259554185CBB01B7FAC5041944DDC833259554185CBB01B7FAC50413412004C37595541474B2D377FAC5041FD20DED837595541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>982641 - 200901
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000400000020000000035194D797B05041A4825A4779495541B81E859B90B05041333333837B4955415C8FC20589B0504185EB5108864955410AD7A34089B050418FC2F588874955417B14AE478FB05041295C8FC28C4955418FC2F5C89AB05041F6285CFF95495541C3F5282CA1B05041A4703DEA994955413D0AD7E3B9B0504152B81EA5A74955418FC2F5A8C1B05041CDCCCCCC9849554148E17A14C9B05041EC51B89E8A49554152B81E55D1B05041A4703DDA7A495541EF27B2F8CCB050412E8E58317A495541EBE61759CAB0504157A60F6984495541704B9EF7C8B0504157A60F6984495541B37DE146C8B05041B2F2DECF784955414EB51BFFC3B05041E81A7B4278495541CB976D5EBDB05041C0FC85AC78495541AD428505BBB05041DA10D46578495541487ABFBDB6B05041526BB327774955415F4D73D7B3B05041022FC9FB774955414E02325BB1B05041F965BCBE7A495541AB48C363B0B0504156AC4DC77949554160898CB4AAB05041FBF307A076495541D0C14FF0A4B05041A57DA06175495541232A1B96A3B050410DDBEC91784955415D42FFAEADB050418ECA2FD37A4955411C31B445ADB050414CADEEDE7B495541F3958D0FADB050414C2A313C7C4955414D2378F1ACB05041E2F486B47C495541C045933EA4B05041D6DCDC5D7C495541C8E9205C9DB050417CD5C2407B495541035194D797B05041A4825A47794955410C000000B89B006CBAB05041000DE9A07B49554118DAF36CB7B05041E2128C587B495541EBD86C7BB7B0504130365EA679495541409F9540BAB05041123C015E794955416750400ABEB050418B386C8979495541F7F62B56C2B05041C62C261A7A495541599C90B0C6B050413C159A3B7B495541DF8B2E7BC7B0504149F4D5D07C4955411DA8D61FC6B0504117B769C17F49554103D667EBC3B050412396A556814955413B63B022BDB0504165DA3B0F7E495541B89B006CBAB05041000DE9A07B4955410B0000000FE422A6AAB050417FACAA4380495541BB31F1EAA6B0504146CCE7BC7E495541D1C77A01ACB05041BEC852E87E495541DA7EC882AFB0504192DBC2007E495541F45037B7B1B0504173CD6EAE7E495541F33C40ADB2B0504151972C48814955416D4DA2E2B1B050411E5AC0388449554115738213B0B050417748D71185495541DA7EC882AFB050413E68148B83495541739D7E0AAEB05041069C480E814955410FE422A6AAB050417FACAA43804955410800000034C059ABB8B050413189D8F581495541DDE539DCB6B0504109C436227F495541BCC3EE7FB8B0504146CCE7BC7E4955413F8B9E36BBB05041AEC1283F7F4955418222AF3EC0B05041AB993A2B8149554129349865BFB05041C77FA069824955413F8B9E36BBB05041A65D550D8449554134C059ABB8B050413189D8F581495541
+</a>
+
+<b>
+0106000000010000000103000000040000005B000000282A1B96A3B050410ADBEC917849554137F65DCBABB05041AB862E677A495541441153E6ACB050411B485FA67A4955416042FFAEADB0504193CA2FD37A4955415C00559DADB050413E3F1B007B4955412031B445ADB0504147ADEEDE7B4955418C0A2538ADB050410FC548F67B495541CD1E3E0FADB050412662CB597C495541ED19F5FFACB05041761A937A7C495541522378F1ACB05041E7F486B47C4955415D6828E5ACB05041DA4C0CB47C4955410470ECDCACB0504125FAB4C57C49554168C22F27AAB05041D7B3BA987C4955412319A9D3A7B05041EE988D817C495541C345933EA4B05041DBDCDC5D7C4955418B3DCD04A3B050411DF21A2B7C4955414FA591B6A1B050412C2233057C495541B326FAE9A0B050410045F1D37B49554180638B18A0B05041124B10B27B49554149ADD46B9EB050416A80B66C7B4955415FE57D379EB05041400D3F647B495541E22EDD319EB05041CAFE55637B4955418D1500319EB05041B13A32637B495541C5E9205C9DB050417DD5C2407B4955412F7AAB309CB0504149839DD57A495541055194D797B05041A3825A4779495541B81E859B90B05041333333837B4955413BA1033689B0504101DB64C585495541B534BB0889B0504107ECBA1B86495541A256F43A89B05041A589D16387495541315B8A3E89B05041BC963E7B874955410C2A55338AB050412F33575B884955417B870BFC8CB05041B1A129C58A4955419810090B8EB050414CCA12B08B4955417B14AE478FB05041295C8FC28C4955413715E28B90B0504104D4DDC68D495541D3E3564795B05041901C8F939149554135413E4496B0504158529E5E924955411BB6D48E9AB05041579F25D095495541AC042ED09CB05041E81DCD3D97495541C3F5282CA1B05041A4703DEA99495541468BA743B9B05041F400244CA74955419A8D9BDFB9B05041346F9897A7495541FB69E89BBCB05041F6C23E73A2495541926D4191C1B0504120AC16FA984955412D711603C2B0504110B98F20984955413A37F6E9C2B050417562596796495541919C11A8C4B05041AFD8D0129349554148E17A14C9B05041EC51B89E8A4955413E60084FC9B050416DE4D82E8A49554152B81E55D1B05041A4703DDA7A495541D3E40C2ECEB05041E63C25607A4955411F048F29CEB05041D1DD01647A49554196DF63DBCDB05041A7F8A3537A495541DCD7EE0ECDB05041A1C0B5347A4955413372F1ABCBB05041579554417F495541705E5278CBB05041D4D4610A80495541C3F5152ACBB050419B36173B81495541E7E61759CAB050415BA60F6984495541E4E8A117CAB050415BA60F6984495541343CBD37C9B050415BA60F6984495541704B9EF7C8B050415BA60F6984495541B43333F0C8B050416DE46EEC834955412273EDEDC8B05041707441C683495541A32076ECC8B05041800AA0AD834955411DBB685FC8B05041A42DF26B7A49554130EE015DC8B05041AF8799437A495541392E5047C8B05041E9DDB5F478495541A2AE2457C4B050410C1AD74D78495541E34DCF50C4B0504146E4054D78495541742E7642C4B05041BCF02B4B78495541B06C57E3BEB05041755F379478495541C9976D5EBDB05041C4FC85AC78495541AA428505BBB05041D910D46578495541497ABFBDB6B05041526BB3277749554159B93B57B5B05041B934228E77495541C352D7D4B3B0504188A941057849554144764EB8B1B050415A7347577A4955415102325BB1B05041F765BCBE7A495541AA48C363B0B050415BAC4DC779495541DFCF60C2AEB0504186EDC2DF7849554135E0F7A5AEB05041DF4D00D078495541C83BEC69AEB050411EF7B0AE784955419844F843AEB050417115A399784955412EC0FD3DAEB05041890952967849554103E24A51ADB0504130590313784955410F58EA7AACB0504166A7169C7749554131BC42C0AAB05041313087A67649554191819F39AAB05041E383848576495541D4C14FF0A4B05041A47DA06175495541282A1B96A3B050410ADBEC91784955410C000000BC9B006CBAB05041FF0CE9A07B49554117DAF36CB7B05041DE128C587B495541E7D86C7BB7B050412C365EA679495541449F9540BAB05041153C015E794955416850400ABEB050418D386C8979495541F4F62B56C2B05041C52C261A7A4955415A9C90B0C6B0504140159A3B7B495541E48B2E7BC7B0504149F4D5D07C49554118A8D61FC6B0504113B769C17F49554108D667EBC3B050412796A556814955413F63B022BDB0504161DA3B0F7E495541BC9B006CBAB05041FF0CE9A07B4955410B00000010E422A6AAB050417CACAA4380495541BC31F1EAA6B0504142CCE7BC7E495541D2C77A01ACB05041BAC852E87E495541DF7EC882AFB0504192DBC2007E495541EF5037B7B1B0504173CD6EAE7E495541F13C40ADB2B050414D972C4881495541724DA2E2B1B05041235AC0388449554117738213B0B050417C48D71185495541DF7EC882AFB050414268148B83495541759D7E0AAEB05041069C480E8149554110E422A6AAB050417CACAA43804955410800000030C059ABB8B050412E89D8F581495541E0E539DCB6B050410CC436227F495541B8C3EE7FB8B0504142CCE7BC7E4955413B8B9E36BBB05041ABC1283F7F4955418222AF3EC0B05041AF993A2B8149554129349865BFB05041C87FA069824955413B8B9E36BBB05041AB5D550D8449554130C059ABB8B050412E89D8F581495541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>982641 - 419093
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000400000020000000035194D797B05041A4825A4779495541B81E859B90B05041333333837B4955415C8FC20589B0504185EB5108864955410AD7A34089B050418FC2F588874955417B14AE478FB05041295C8FC28C4955418FC2F5C89AB05041F6285CFF95495541C3F5282CA1B05041A4703DEA994955413D0AD7E3B9B0504152B81EA5A74955418FC2F5A8C1B05041CDCCCCCC9849554148E17A14C9B05041EC51B89E8A49554152B81E55D1B05041A4703DDA7A495541EF27B2F8CCB050412E8E58317A495541EBE61759CAB0504157A60F6984495541704B9EF7C8B0504157A60F6984495541B37DE146C8B05041B2F2DECF784955414EB51BFFC3B05041E81A7B4278495541CB976D5EBDB05041C0FC85AC78495541AD428505BBB05041DA10D46578495541487ABFBDB6B05041526BB327774955415F4D73D7B3B05041022FC9FB774955414E02325BB1B05041F965BCBE7A495541AB48C363B0B0504156AC4DC77949554160898CB4AAB05041FBF307A076495541D0C14FF0A4B05041A57DA06175495541232A1B96A3B050410DDBEC91784955415D42FFAEADB050418ECA2FD37A4955411C31B445ADB050414CADEEDE7B495541F3958D0FADB050414C2A313C7C4955414D2378F1ACB05041E2F486B47C495541C045933EA4B05041D6DCDC5D7C495541C8E9205C9DB050417CD5C2407B495541035194D797B05041A4825A47794955410C000000B89B006CBAB05041000DE9A07B49554118DAF36CB7B05041E2128C587B495541EBD86C7BB7B0504130365EA679495541409F9540BAB05041123C015E794955416750400ABEB050418B386C8979495541F7F62B56C2B05041C62C261A7A495541599C90B0C6B050413C159A3B7B495541DF8B2E7BC7B0504149F4D5D07C4955411DA8D61FC6B0504117B769C17F49554103D667EBC3B050412396A556814955413B63B022BDB0504165DA3B0F7E495541B89B006CBAB05041000DE9A07B4955410B0000000FE422A6AAB050417FACAA4380495541BB31F1EAA6B0504146CCE7BC7E495541D1C77A01ACB05041BEC852E87E495541DA7EC882AFB0504192DBC2007E495541F45037B7B1B0504173CD6EAE7E495541F33C40ADB2B0504151972C48814955416D4DA2E2B1B050411E5AC0388449554115738213B0B050417748D71185495541DA7EC882AFB050413E68148B83495541739D7E0AAEB05041069C480E814955410FE422A6AAB050417FACAA43804955410800000034C059ABB8B050413189D8F581495541DDE539DCB6B0504109C436227F495541BCC3EE7FB8B0504146CCE7BC7E4955413F8B9E36BBB05041AEC1283F7F4955418222AF3EC0B05041AB993A2B8149554129349865BFB05041C77FA069824955413F8B9E36BBB05041A65D550D8449554134C059ABB8B050413189D8F581495541
+</a>
+
+<b>
+0106000000010000000103000000040000005B000000282A1B96A3B050410ADBEC917849554137F65DCBABB05041AB862E677A495541441153E6ACB050411B485FA67A4955416042FFAEADB0504193CA2FD37A4955415C00559DADB050413E3F1B007B4955412031B445ADB0504147ADEEDE7B4955418C0A2538ADB050410FC548F67B495541CD1E3E0FADB050412662CB597C495541ED19F5FFACB05041761A937A7C495541522378F1ACB05041E7F486B47C4955415D6828E5ACB05041DA4C0CB47C4955410470ECDCACB0504125FAB4C57C49554168C22F27AAB05041D7B3BA987C4955412319A9D3A7B05041EE988D817C495541C345933EA4B05041DBDCDC5D7C4955418B3DCD04A3B050411DF21A2B7C4955414FA591B6A1B050412C2233057C495541B326FAE9A0B050410045F1D37B49554180638B18A0B05041124B10B27B49554149ADD46B9EB050416A80B66C7B4955415FE57D379EB05041400D3F647B495541E22EDD319EB05041CAFE55637B4955418D1500319EB05041B13A32637B495541C5E9205C9DB050417DD5C2407B4955412F7AAB309CB0504149839DD57A495541055194D797B05041A3825A4779495541B81E859B90B05041333333837B4955413BA1033689B0504101DB64C585495541B534BB0889B0504107ECBA1B86495541A256F43A89B05041A589D16387495541315B8A3E89B05041BC963E7B874955410C2A55338AB050412F33575B884955417B870BFC8CB05041B1A129C58A4955419810090B8EB050414CCA12B08B4955417B14AE478FB05041295C8FC28C4955413715E28B90B0504104D4DDC68D495541D3E3564795B05041901C8F939149554135413E4496B0504158529E5E924955411BB6D48E9AB05041579F25D095495541AC042ED09CB05041E81DCD3D97495541C3F5282CA1B05041A4703DEA99495541468BA743B9B05041F400244CA74955419A8D9BDFB9B05041346F9897A7495541FB69E89BBCB05041F6C23E73A2495541926D4191C1B0504120AC16FA984955412D711603C2B0504110B98F20984955413A37F6E9C2B050417562596796495541919C11A8C4B05041AFD8D0129349554148E17A14C9B05041EC51B89E8A4955413E60084FC9B050416DE4D82E8A49554152B81E55D1B05041A4703DDA7A495541D3E40C2ECEB05041E63C25607A4955411F048F29CEB05041D1DD01647A49554196DF63DBCDB05041A7F8A3537A495541DCD7EE0ECDB05041A1C0B5347A4955413372F1ABCBB05041579554417F495541705E5278CBB05041D4D4610A80495541C3F5152ACBB050419B36173B81495541E7E61759CAB050415BA60F6984495541E4E8A117CAB050415BA60F6984495541343CBD37C9B050415BA60F6984495541704B9EF7C8B050415BA60F6984495541B43333F0C8B050416DE46EEC834955412273EDEDC8B05041707441C683495541A32076ECC8B05041800AA0AD834955411DBB685FC8B05041A42DF26B7A49554130EE015DC8B05041AF8799437A495541392E5047C8B05041E9DDB5F478495541A2AE2457C4B050410C1AD74D78495541E34DCF50C4B0504146E4054D78495541742E7642C4B05041BCF02B4B78495541B06C57E3BEB05041755F379478495541C9976D5EBDB05041C4FC85AC78495541AA428505BBB05041D910D46578495541497ABFBDB6B05041526BB3277749554159B93B57B5B05041B934228E77495541C352D7D4B3B0504188A941057849554144764EB8B1B050415A7347577A4955415102325BB1B05041F765BCBE7A495541AA48C363B0B050415BAC4DC779495541DFCF60C2AEB0504186EDC2DF7849554135E0F7A5AEB05041DF4D00D078495541C83BEC69AEB050411EF7B0AE784955419844F843AEB050417115A399784955412EC0FD3DAEB05041890952967849554103E24A51ADB0504130590313784955410F58EA7AACB0504166A7169C7749554131BC42C0AAB05041313087A67649554191819F39AAB05041E383848576495541D4C14FF0A4B05041A47DA06175495541282A1B96A3B050410ADBEC91784955410C000000BC9B006CBAB05041FF0CE9A07B49554117DAF36CB7B05041DE128C587B495541E7D86C7BB7B050412C365EA679495541449F9540BAB05041153C015E794955416850400ABEB050418D386C8979495541F4F62B56C2B05041C52C261A7A4955415A9C90B0C6B0504140159A3B7B495541E48B2E7BC7B0504149F4D5D07C49554118A8D61FC6B0504113B769C17F49554108D667EBC3B050412796A556814955413F63B022BDB0504161DA3B0F7E495541BC9B006CBAB05041FF0CE9A07B4955410B00000010E422A6AAB050417CACAA4380495541BC31F1EAA6B0504142CCE7BC7E495541D2C77A01ACB05041BAC852E87E495541DF7EC882AFB0504192DBC2007E495541EF5037B7B1B0504173CD6EAE7E495541F13C40ADB2B050414D972C4881495541724DA2E2B1B05041235AC0388449554117738213B0B050417C48D71185495541DF7EC882AFB050414268148B83495541759D7E0AAEB05041069C480E8149554110E422A6AAB050417CACAA43804955410800000030C059ABB8B050412E89D8F581495541E0E539DCB6B050410CC436227F495541B8C3EE7FB8B0504142CCE7BC7E4955413B8B9E36BBB05041ABC1283F7F4955418222AF3EC0B05041AF993A2B8149554129349865BFB05041C87FA069824955413B8B9E36BBB05041AB5D550D8449554130C059ABB8B050412E89D8F581495541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>982142 - 5319077
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000000B000000D7A3703D73EB50411F85EBE13056544114AE471174EB5041C3F5286C3C565441D7A370CD7AEB50419A9999693C565441AE47E17A87EB50415C8FC2253C565441295C8F9292EB50411F85EBE13B565441E17A144E99EB50417B14AE173B565441295C8F429FEB5041AE47E15A3A565441D7A370FD82EB50413D0AD763E55554410AD7A3106BEB504100000080E7555441713D0A576FEB5041000000600B565441D7A3703D73EB50411F85EBE130565441
+</a>
+
+<b>
+010600000001000000010300000001000000070000006A4619266DEB50412D93AFFCF8555441713D0A576FEB5041000000600B565441D7A3703D73EB50411F85EBE13056544114AE471174EB5041C3F5286C3C565441D7A370CD7AEB50419A9999693C5654413FBD4C3883EB5041A67C8E3C3C5654416A4619266DEB50412D93AFFCF8555441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>389384 - 186454
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001200000000000050939C50410AD7A3803A225441CDCCCC0C929C50410AD7A3F03D225441713D0AB78C9C50418FC2F5883D225441B81E85BB8D9C50417B14AE873A22544166666696939C5041EC51B8FE2E225441CDCCCC5C969C50415C8FC2B52C2254410AD7A390969C5041CDCCCCBC282254410AD7A320879C50415C8FC2E520225441295C8FE2769C5041666666D6392254415C8FC245789C504152B81E753B225441000000A0799C504148E17AF43C22544185EB51887C9C50417B14AE373F225441D7A3705D859C504185EB51C847225441CDCCCC0C8B9C5041D7A370CD4B225441000000708F9C5041A4703D4A4D225441A4703D5A919C5041EC51B88E4A22544100000080929C50415C8FC2454422544100000050939C50410AD7A3803A225441
+</a>
+
+<b>
+01060000000100000001030000000100000018000000D7A3705D859C504185EB51C847225441B50DEBC3879C504110DFB25949225441CDCCCC0C8B9C5041D7A370CD4B225441000000708F9C5041A4703D4A4D225441A4703D5A919C5041EC51B88E4A22544157D62A85929C504162F39F074422544144CB4888929C5041EAD324E24322544107031389929C5041653CA5D84322544168655889929C5041B7EA62D5432254413D88F789929C5041E75DE9CD4322544105973BCE929C504159F1BD2E3E225441713D0AB78C9C50418FC2F5883D225441B81E85BB8D9C50417B14AE873A225441FE5D657E8E9C5041D7B1C00739225441FD38D0AC8E9C504174264EAC3822544159422EB58E9C5041B519D29B38225441991C70D98E9C50410BD2635438225441BE812E3C849C5041B0BA1F4D352254410AD7A3A0839C5041B81E853B362254410AD7A390819C50418FC2F538392254410AD7A300809C5041713D0A173B225441E08C71AF7D9C5041A4AF77F23D22544185EB51887C9C50417B14AE373F225441D7A3705D859C504185EB51C847225441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>389384 - 233496
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001200000000000050939C50410AD7A3803A225441CDCCCC0C929C50410AD7A3F03D225441713D0AB78C9C50418FC2F5883D225441B81E85BB8D9C50417B14AE873A22544166666696939C5041EC51B8FE2E225441CDCCCC5C969C50415C8FC2B52C2254410AD7A390969C5041CDCCCCBC282254410AD7A320879C50415C8FC2E520225441295C8FE2769C5041666666D6392254415C8FC245789C504152B81E753B225441000000A0799C504148E17AF43C22544185EB51887C9C50417B14AE373F225441D7A3705D859C504185EB51C847225441CDCCCC0C8B9C5041D7A370CD4B225441000000708F9C5041A4703D4A4D225441A4703D5A919C5041EC51B88E4A22544100000080929C50415C8FC2454422544100000050939C50410AD7A3803A225441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000DDB71085879C504150ECC21821225441F1D35909819C504158F564EA2F22544198F90C04869C504172C28456322254411F85EBA18A9C5041333333A32B2254410D98F47D959C504171581C8D2C22544138FE3E5D969C50410E6702AD2C225441A5F46364969C5041BB1FDB202C2254419140EA64969C5041119790162C2254410A51362A969C5041FF8D05A6282254411D995EE6879C504103B219842122544170464BC9879C50416663693B212254410F112B96879C5041677C7221212254411E1EDB94879C504172DFC720212254415E5D9D91879C5041B27A221F21225441DDB71085879C504150ECC21821225441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>389384 - 261608
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001200000000000050939C50410AD7A3803A225441CDCCCC0C929C50410AD7A3F03D225441713D0AB78C9C50418FC2F5883D225441B81E85BB8D9C50417B14AE873A22544166666696939C5041EC51B8FE2E225441CDCCCC5C969C50415C8FC2B52C2254410AD7A390969C5041CDCCCCBC282254410AD7A320879C50415C8FC2E520225441295C8FE2769C5041666666D6392254415C8FC245789C504152B81E753B225441000000A0799C504148E17AF43C22544185EB51887C9C50417B14AE373F225441D7A3705D859C504185EB51C847225441CDCCCC0C8B9C5041D7A370CD4B225441000000708F9C5041A4703D4A4D225441A4703D5A919C5041EC51B88E4A22544100000080929C50415C8FC2454422544100000050939C50410AD7A3803A225441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000DDB71085879C504150ECC21821225441F1D35909819C504158F564EA2F22544198F90C04869C504172C28456322254411F85EBA18A9C5041333333A32B2254410D98F47D959C504171581C8D2C22544138FE3E5D969C50410E6702AD2C225441A5F46364969C5041BB1FDB202C2254419140EA64969C5041119790162C2254410A51362A969C5041FF8D05A6282254411D995EE6879C504103B219842122544170464BC9879C50416663693B212254410F112B96879C5041677C7221212254411E1EDB94879C504172DFC720212254415E5D9D91879C5041B27A221F21225441DDB71085879C504150ECC21821225441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>982150 - 587529
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001F000000D75056029D435141BDFC6F6C1E6C5441E9B4484D9D435141B294AAEA1F6C544128C1BD6D9F43514161D6EF522B6C544176EB97C6A6435141FBB40D86256C54410CFB897BA9435141F6AA96C8236C5441BF0BFB61AC43514135B70BE9256C5441D7B17046B7435141B32BC174326C5441F1915F0BB943514137EDC2F3306C5441B5325826B343514105C9FB00296C5441EA2ADFCBB1435141DEB38E54256C5441803AD180B44351410EA29E3C226C5441F6B463C5C94351411C4A6DF6126C5441A90020EBD6435141C9151CE0096C5441D9EE2FD3D3435141BEC6E225FC6B5441E796FE8CC443514142248F630C6C5441909381F8C34351417C268DC60C6C5441996C2434BD435141A8457130126C5441AC59B5EAB94351415B56E216156C5441334B4267B7435141EC5B5D0E166C5441334B4267B7435141D464559A176C54415A7372C5B5435141175F0B99196C5441EC6FB3B3B143514124CF827B1A6C5441CCD7887DAF435141E569F59B126C544176184E63AF43514143D509A1126C5441EC51B87EAF43514148E17AF4126C5441920F814BA743514140B24632146C5441A6D9A7AEA34351413E5563E5146C5441C7A9525E9B435141EC5B5D0E166C5441B297DDC79C435141B57F3B421D6C5441713D0AF79C435141EC51B81E1E6C5441D75056029D435141BDFC6F6C1E6C5441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000E17A149E9B435141C3F5287C406C5441CDCCCC3C9C435141666666D6426C5441A4703D3AA543514148E17AC4416C544148E17AF4A3435141EC51B85E3D6C54419A9999099F4351410AD7A3602C6C5441713D0AF79C435141EC51B81E1E6C5441B81E853B9B4351415C8FC205166C5441EC51B87EAF43514148E17AF4126C5441713D0A67AC435141AE47E18A096C5441B81E859BA943514114AE47210A6C54419A9999E9A74351419A999999056C5441EC51B89EA6435141000000C0036C5441B81E85BB97435141EC51B81E056C5441AE47E15A90435141C3F528EC046C5441A4703D5A94435141F6285CAF1F6C5441B81E85AB9443514148E17AC4226C5441B81E853B95435141295C8FA2276C54419A99992996435141333333732E6C544152B81E55984351418FC2F5B8356C5441F6285C0F9A435141C3F5288C3B6C5441E17A149E9B435141C3F5287C406C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>982150 - 1089297
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001F000000D75056029D435141BDFC6F6C1E6C5441E9B4484D9D435141B294AAEA1F6C544128C1BD6D9F43514161D6EF522B6C544176EB97C6A6435141FBB40D86256C54410CFB897BA9435141F6AA96C8236C5441BF0BFB61AC43514135B70BE9256C5441D7B17046B7435141B32BC174326C5441F1915F0BB943514137EDC2F3306C5441B5325826B343514105C9FB00296C5441EA2ADFCBB1435141DEB38E54256C5441803AD180B44351410EA29E3C226C5441F6B463C5C94351411C4A6DF6126C5441A90020EBD6435141C9151CE0096C5441D9EE2FD3D3435141BEC6E225FC6B5441E796FE8CC443514142248F630C6C5441909381F8C34351417C268DC60C6C5441996C2434BD435141A8457130126C5441AC59B5EAB94351415B56E216156C5441334B4267B7435141EC5B5D0E166C5441334B4267B7435141D464559A176C54415A7372C5B5435141175F0B99196C5441EC6FB3B3B143514124CF827B1A6C5441CCD7887DAF435141E569F59B126C544176184E63AF43514143D509A1126C5441EC51B87EAF43514148E17AF4126C5441920F814BA743514140B24632146C5441A6D9A7AEA34351413E5563E5146C5441C7A9525E9B435141EC5B5D0E166C5441B297DDC79C435141B57F3B421D6C5441713D0AF79C435141EC51B81E1E6C5441D75056029D435141BDFC6F6C1E6C5441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000E17A149E9B435141C3F5287C406C5441CDCCCC3C9C435141666666D6426C5441A4703D3AA543514148E17AC4416C544148E17AF4A3435141EC51B85E3D6C54419A9999099F4351410AD7A3602C6C5441713D0AF79C435141EC51B81E1E6C5441B81E853B9B4351415C8FC205166C5441EC51B87EAF43514148E17AF4126C5441713D0A67AC435141AE47E18A096C5441B81E859BA943514114AE47210A6C54419A9999E9A74351419A999999056C5441EC51B89EA6435141000000C0036C5441B81E85BB97435141EC51B81E056C5441AE47E15A90435141C3F528EC046C5441A4703D5A94435141F6285CAF1F6C5441B81E85AB9443514148E17AC4226C5441B81E853B95435141295C8FA2276C54419A99992996435141333333732E6C544152B81E55984351418FC2F5B8356C5441F6285C0F9A435141C3F5288C3B6C5441E17A149E9B435141C3F5287C406C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>982150 - 3894107
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001F000000D75056029D435141BDFC6F6C1E6C5441E9B4484D9D435141B294AAEA1F6C544128C1BD6D9F43514161D6EF522B6C544176EB97C6A6435141FBB40D86256C54410CFB897BA9435141F6AA96C8236C5441BF0BFB61AC43514135B70BE9256C5441D7B17046B7435141B32BC174326C5441F1915F0BB943514137EDC2F3306C5441B5325826B343514105C9FB00296C5441EA2ADFCBB1435141DEB38E54256C5441803AD180B44351410EA29E3C226C5441F6B463C5C94351411C4A6DF6126C5441A90020EBD6435141C9151CE0096C5441D9EE2FD3D3435141BEC6E225FC6B5441E796FE8CC443514142248F630C6C5441909381F8C34351417C268DC60C6C5441996C2434BD435141A8457130126C5441AC59B5EAB94351415B56E216156C5441334B4267B7435141EC5B5D0E166C5441334B4267B7435141D464559A176C54415A7372C5B5435141175F0B99196C5441EC6FB3B3B143514124CF827B1A6C5441CCD7887DAF435141E569F59B126C544176184E63AF43514143D509A1126C5441EC51B87EAF43514148E17AF4126C5441920F814BA743514140B24632146C5441A6D9A7AEA34351413E5563E5146C5441C7A9525E9B435141EC5B5D0E166C5441B297DDC79C435141B57F3B421D6C5441713D0AF79C435141EC51B81E1E6C5441D75056029D435141BDFC6F6C1E6C5441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000E17A149E9B435141C3F5287C406C5441CDCCCC3C9C435141666666D6426C5441A4703D3AA543514148E17AC4416C544148E17AF4A3435141EC51B85E3D6C54419A9999099F4351410AD7A3602C6C5441713D0AF79C435141EC51B81E1E6C5441B81E853B9B4351415C8FC205166C5441EC51B87EAF43514148E17AF4126C5441713D0A67AC435141AE47E18A096C5441B81E859BA943514114AE47210A6C54419A9999E9A74351419A999999056C5441EC51B89EA6435141000000C0036C5441B81E85BB97435141EC51B81E056C5441AE47E15A90435141C3F528EC046C5441A4703D5A94435141F6285CAF1F6C5441B81E85AB9443514148E17AC4226C5441B81E853B95435141295C8FA2276C54419A99992996435141333333732E6C544152B81E55984351418FC2F5B8356C5441F6285C0F9A435141C3F5288C3B6C5441E17A149E9B435141C3F5287C406C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608334 - 5285098
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000007000000010300000001000000620200006D82FB7E9CA250410A28DA92A15355413A4E5D309CA250419F59B10DA2535541111D3E219BA2504109FBB826A4535541DB3D2F759AA25041203F1F9EA5535541EC2AE80C9AA25041013550C7A6535541C48AA25B99A250418854EAD5A85355411A055A3C99A25041E9812ED0A9535541979D72F298A2504137821CAFAB5355419F7356BF96A250410EF049EFB2535541AF85F0B594A25041FACB1502B7535541B234AC7293A25041E9D75620B9535541C146466991A25041D434DC81BC535541CAE74D6A8FA25041C453381CC1535541DFD818298AA250417494E473CD535541EA0F689288A25041646B49C6CF535541F37B93C786A250415F59AFCFD153554108EA319A83A2504150917FBED4535541187D85DF80A250414441BC00D853554126781E1F7FA250413136FC67DA535541408E9E507AA250410A864E93E15355415D5167A175A25041E97D821DE75355416D65743572A25041C795045AEB535541712B31A970A25041C69391BCEC535541B7FF126B65A250418BF6FE63F6535541BE7218FE63A250417D45D009F9535541D261701F60A250415A1175C3FD535541EC2B13CE5BA2504140C618C6025455411FA9577453A250410904D1FA0B54554144C14A434DA25041E39F00A9125455415705CDE247A25041C0B50F48185455418D465B5F3FA250418E03EFD520545541ABD447E43AA250417140268525545541B9D153C137A250416096D18828545541DFE9469031A250414A5929472E545541032288112AA2504119749FA6355455412246BCFE25A250410ADFD8C3395455413C5C3C3021A25041EEFD345E3E5455415AEC9B521BA25041C9E5418F445455416786C9F518A25041B2957ED14754554182B1D74015A250419668FDE84C545541867794B413A250418DFCD1B34E545541B16AD2100DA2504160276F6C55545541DAC7C80406A25041465DCCBD59545541EFEBFCF101A250413C70E7395C5455410753C166FEA15041255500485F545541107582B6FBA150411A511A0D6254554121EAFAE6F8A150410ABEC6C7645455415068C012F5A15041D911FF2D695455415A20C9CAF2A15041C2C13B706C545541673BB0BCEFA15041B6A6547E6F5455417FEE51B4EBA150419DF3B286735455418C887F57E9A150419270869A7554554196F4AA8CE7A15041779155D27854554198D84215E6A15041770E29E67A545541A3A5D9E6E4A150416F84229C7C545541A47270B8E3A1504164B78BCA7D545541AE5DE29EE2A150415E5B87EE7E545541B95F553CE1A150415570150880545541C827854DDEA150414D3079A382545541D99CFD7DDBA150413DD2012A85545541E00F0311DAA150412EC0673387545541F0389EBED7A1504123BC81F889545541F8C2A408D6A150410F1B7AF78B5455410F1368C6D2A15041FC8C8D729054554115866D59D1A15041EF273C9B925455414F0EF4C2D0A150416B6D106592545541AE47E18AE1A1504114AE47F198545541666666E6C7A15041AE47E1CAAA545541C22E0E6BB7A15041984B8F68A35455418AE3008CA3A15041DCD4A5939A545541B153681794A15041ED8ACF5993545541DFA2F80480A150419DAA6F528B5455419C3A288766A1504134D237498154554128452DDF56A15041C41AD7DD7B545541CC2A479A43A15041952E3BD976545541A4703DAA43A150410AD7A3F0785455416666660647A150418FC2F5388854554114AE470148A15041C3F5280C9154554152B81EC548A1504185EB512898545541AE47E1EA4EA15041D7A3704D97545541333333C35FA1504185EB51C895545541CDCCCC4C66A1504166666686965455413333334380A1504152B81E859A54554185EB51888EA15041E17A140E9D545541CDCCCCCC99A1504148E17A44A0545541CDCCCC4CAAA150419A999929A5545541AE47E1BAB5A15041EC51B85EA85455413D0AD7D3B3A150415C8FC2E5A954554185EB51A8B2A150415C8FC2D5AA545541CDCCCCBCB1A1504133333393AB545541000000A0B0A150417B14AE77AC54554114AE47A1ACA15041CDCCCCACAF5455413D0AD723ABA15041EC51B8DEB0545541C3F528ECA7A150413D0AD773B35455411F85EB21A5A1504114AE47B1B5545541B81E852BA3A1504148E17A44B7545541D7A3705D9FA15041295C8F52BA545541666666F69BA15041D7A3700DBD54554148E17A149AA150410AD7A390BE5455419A99998998A15041CDCCCCCCBF5455419A99997995A15041295C8F42C254554152B81E2594A150413D0AD753C354554114AE471192A15041EC51B8FEC454554114AE47818AA150410AD7A310CB54554148E17AD487A150415C8FC235CD5455410000008085A1504152B81E15CF54554152B81E0582A15041000000E0D1545541D7A370DD80A15041B81E85DBD2545541AE47E18A7CA15041B81E858BD6545541CDCCCCFC7AA15041EC51B8DED75455418FC2F55879A1504148E17A44D954554148E17AE476A15041CDCCCC5CDB5455418FC2F58875A1504152B81E85DC5455416666665674A15041AE47E18ADD545541A4703D3A72A15041713D0A57DF5455413D0AD77371A150410AD7A350E0545541EC51B82E6FA15041CDCCCC2CE3545541000000406DA15041B81E859BE55455419A9999296CA15041A4703DFAE6545541CDCCCCCC6AA1504114AE47B1E85455417B14AEB768A1504114AE4751EB545541D7A370ED64A15041713D0A17F0545541295C8FD263A15041B81E857BF15455419A99994962A15041AE47E16AF3545541295C8FF25EA1504114AE4791F754554152B81E855CA150418FC2F598FA5455417B14AEA759A15041A4703D2AFE5455417B14AEC758A150413D0AD733FF5455410AD7A35056A1504114AE472102555541295C8F2255A1504185EB5188035555413333337353A1504185EB518805555541B81E859B52A1504185EB51880655554152B81E9551A15041B81E85EB07555541B81E850B50A150413D0AD7230A555541F6285C4F4DA1504185EB51B80D555541EC51B82E4CA1504114AE47310F5555417B14AE774BA150410000001010555541D7A3702D48A150413D0AD71314555541C3F5284C44A15041F6285CCF185555411F85EBB142A15041295C8FC21A555541CDCCCC3C41A15041A4703D8A1C555541295C8FF23FA150418FC2F5B81D5555418FC2F5583DA15041B81E851B20555541AE47E18A3AA15041E17A14AE22555541EC51B84E38A15041AE47E1BA245555419A9999F936A150413D0AD7F325555541EC51B87E34A150413333330327555541713D0A3732A15041CDCCCCFC275555410AD7A3902EA15041A4703D3A29555541295C8F1228A150411F85EB7127555541E17A149E1EA15041AE47E13A255555419A9999C916A15041CDCCCC3C2355554152B81ED509A15041000000102055554114AE47B1FEA05041D7A3708D1D555541C3F5281CF8A050418FC2F5081C55554152B81EE5DCA0504185EB51F81555554152B81E85DBA0504185EB516821555541000000B0DEA05041AE47E1BA2255554148E17A64E0A050411F85EB4123555541295C8F42E3A0504148E17AF423555541E17A143EEAA050417B14AEB725555541B81E85CBF1A050413D0AD7C32755554185EB51F8F6A050418FC2F5182955554152B81E75FBA05041B81E854B2A5555411F85EB6106A15041713D0AC72C555541AE47E14A0DA1504152B81E552E555541A4703DAA14A1504100000030305555418FC2F50817A15041E17A146E305555418FC2F5B814A150415C8FC21531555541F6285CCF12A15041295C8FB231555541000000100DA1504185EB51A833555541CDCCCCEC04A15041F6285C2F36555541333333F302A1504152B81EF536555541EC51B8CE00A15041713D0AD73755554148E17A14FEA050410AD7A3A0385555410AD7A330FBA050419A99995939555541A4703D5AF8A050411F85EB013A555541F6285CEFF4A050418FC2F5D83A555541A4703DBAF0A05041295C8FD23B55554148E17A24E9A05041666666763D5555415C8FC2F5E4A05041333333733E5555410AD7A340E1A050411F85EB613F55554148E17A44DCA050418FC2F5E83F555541AE47E10ADEA0504133333373425555411F85EB71E2A0504114AE47C148555541666666A6E1A0504152B81E65495555415C8FC2F5E2A0504148E17A444B55554100000060E3A05041D7A370DD4B555541D7A3705D04A150418FC2F5087B5555410000002008A15041CDCCCC2C805555419A9999190CA1504152B81E2585555541E17A146E10A15041A4703D0A8A555541AE47E18A14A1504185EB51488E5555413D0AD75319A15041666666D692555541295C8F421FA1504185EB51E89755554185EB516827A150411F85EB219E55554114AE479130A15041A4703D0AA45555411F85EB013AA15041AE47E13AA95555418FC2F56841A15041333333F3AA555541B81E851B41A150418FC2F5D8A0555541666666C643A150411F85EB419C555541AE47E18A45A1504148E17A349555554185EB51B84CA150417B14AEC7925555413333331355A15041D7A370CD66555541295C8FF249A1504114AE478163555541666666563FA1504148E17A5460555541E17A145E34A15041666666465D555541C3F528FC33A150410000000058555541713D0A1726A15041C3F528BC545555417B14AE2713A15041D7A3705D5055554185EB5168EBA05041CDCCCC8C475555417B14AEC7ECA05041713D0A9746555541295C8F72F7A05041713D0A8743555541E17A147EF9A0504114AE47F1425555418FC2F588FFA0504152B81E35415555415C8FC2E502A15041EC51B83E40555541AE47E12A06A15041E17A144E3F555541AE47E11A09A15041666666763E555541E17A149E0FA1504185EB51983C555541CDCCCCFC11A15041A4703DEA3B555541C3F5286C14A15041713D0A373B555541CDCCCC1C1CA15041295C8F0239555541666666761CA1504148E17AE4385555413D0AD73328A150415C8FC2F53455554185EB511829A150411F85EBA1345555415C8FC2A53CA15041000000302E555541F6285C7F3DA1504148E17A542D5555411F85EB2141A150419A9999A9295555410AD7A31043A15041666666B62755554152B81E2545A15041D7A3709D25555541CDCCCC4C47A150410AD7A37023555541EC51B87E49A15041A4703D3A2155554185EB51884BA15041E17A14AE1E55554114AE47F14DA1504114AE47B11B555541C3F5281C4FA15041D7A3703D1A555541A4703D6A51A15041000000601755554148E17A0454A15041333333231455554148E17AA454A15041713D0A47135555411F85EBD155A150417B14AEA711555541666666F656A1504148E17A1410555541B81E855B5AA15041713D0A670B5555417B14AED75CA15041A4703DFA075555418FC2F5E85DA1504114AE47810655554185EB51E85EA150411F85EB21055555410AD7A3905FA15041A4703D3A04555541AE47E19A60A15041AE47E1CA025555419A99991961A15041C3F5281C025555419A99995968A15041C3F5282CFA545541AE47E11A69A1504185EB5158F9545541F5F4325E6CA15041538AA7EBF554554153556EE367A150419B8F8A7AFA54554177D7194A61A150417497E55DFF54554183256A6A5FA15041727E710901555541951B9CE95BA15041593588A90455554161C2474259A15041F80163E8075555418913CE1656A1504165B8AC350C555541074D7F6753A150414A8EE40A1055554179C1520A50A1504108FEB9A214555541295C8F624BA1504185EB51081A555541388237EB46A1504168A2BC3E1F555541EE699E7441A15041DEC2E3BC23555541E528428B3FA15041CD365A322555554184A216F838A150416891D06629555541163FBAD333A150413C3C7A7D2C555541CFEFA0B82CA15041FD602A9E2F555541C9E7D14821A150410A8F6E803155554132EF2BF71BA15041B1E9D69832555541FA0986DA14A15041B0B35B4B345555412369B75A09A15041B526A7C3375555418993FD6002A1504108EFE31C3A5555416A94629EFDA0504183B7CDF43B555541353B1830F8A05041DE1E464B3E555541FE04E12DF2A050417CBE81314055554174D60210EEA0504130760ED642555541915A6E04EBA05041639F1D404555554175A97668E9A050412C4BB0CF46555541B564005DE5A05041398210334A555541D04CC75BE3A0504146DB4AD14B55554143EBD9E7E2A050411099AE2B4B55554132723719E5A0504123068F6A49555541D68289B1E8A050415927F64846555541BEC85DA7EAA05041954D965D445555417F98CCD1EAA050414255D23B4455554133FB5D7CEDA05041D953BC3942555541D6FA4755EEA05041294C6D9A41555541DAF838CAF1A0504189D9E49A3F555541B75E343AF7A05041E1B1A19B3D55554179209349FEA0504156583AE93A555541D4EDB0B104A1504137A735543855554180E31F3709A15041F0777BC5365555412B240BA710A15041635107A034555541ED9A312416A15041D7E54AE932555541FC890A6319A1504178BBFB403255554104E7ABFA21A15041779BB9E630555541E8B495312CA15041D8C60A142F5555416732125D34A150410984A1402B5555414ACF17BB38A15041B913CFA728555541B54499503EA15041E9B51BF02455554172F8871244A150414B6714AB20555541A306703648A15041A2180D661C5555414C55777B4CA15041A808A8BD1755554148B3057650A15041CD94B5E7125555413AFA886753A150414CFF2F270F5555417DA1327155A150415FFFDEE20B5555412DB3A7FE56A15041E7B586A709555541A36212AC59A150414EFE384006555541828F22025FA150417A87BE04005555417A051CB860A1504181C5E7CBFE54554169115DD662A15041858BA43FFD545541579CE4A565A15041977F6321FB5455414B4C21E868A15041A8F4DB51F854554142AB19E76AA15041AED1997CF6545541433FEEB16CA15041B2E33373F45455412E87E5F96EA15041C605F5C2F15455411A63B10C73A15041DEA308A1EC545541060C14F175A15041F53FA9E1E8545541E501D5DD7CA15041288811BCE0545541A0C33A8488A15041777EB4CDD25455415D1D5B3093A15041A637AF9DCA5455415D1975F595A15041AD2B6E7FC854554147131C1D9AA15041BA1179A5C5545541C89ACDA4AEA150410C014259B7545541AE0507C2B2A150411F8DBB40B45455419BC3F7BFB6A1504137BFA3E9B05455418F29CA1CB9A150414ACA6382AE5455416BF3FB38BFA15041747337F9A65455416501B0F4BFA15041717A1157A754554167648E2EBFA15041728F9F70A854554187A13670B9A1504147508491AF545541A85D2563B4A1504120A4BCF7B3545541C3BF8217AFA150410D4BAC3EB8545541DC72240FABA15041FB0A10DABA545541119DB1D4A2A15041DE91B16EC05455413E3FABED9AA15041B5362E18C654554154FD0C7E94A15041AAC61CA8CA5455416708CD1692A150419CCB8368CC54554191325ADC89A150417EEF46C3D2545541BCF0BB6C83A150414DD5E056DA545541D85219217EA1504128BDED87E0545541F59428237AA15041116BB72CE5545541118DCD3F75A15041EF160E34EB54554128DF039B70A15041CDF74007F1545541D9A5FA856CA150414FC7E7C1F5545541713D0A976CA15041000000B0F5545541333333536EA15041E17A14DEF3545541F6285C5F70A150417B14AEB7F15455418FC2F55874A15041B81E858BED54554185EB51A875A15041B81E852BEC545541E17A142E77A15041295C8F92EA5455413D0AD76378A15041D7A3704DE9545541F6285C5F79A1504152B81E45E854554148E17A047CA15041EC51B87EE55455418FC2F5387EA15041EC51B82EE3545541713D0AB780A150410AD7A390E05455415C8FC21582A150410AD7A320DF545541C3F5283C83A15041B81E85EBDD5455410000005085A15041D7A370BDDB54554114AE47F186A150417B14AE07DA545541D7A370DD87A15041F6285C0FD9545541F6285C4F8AA15041EC51B87ED65455418FC2F5388CA150415C8FC235D55455419A99992991A15041333333E3D1545541F6285CCF94A15041F6285C6FCF545541CDCCCC4C97A15041295C8FC2CD545541CDCCCC6C9DA1504148E17AA4C954554152B81E159FA15041713D0A87C854554166666656A1A15041295C8F02C754554114AE4701A3A15041333333E3C55455411F85EB61A7A150411F85EBF1C25455415C8FC2A5A8A1504185EB5118C2545541D7A370BDABA150413D0AD703C054554114AE47C1AEA15041CDCCCCFCBD545541E17A14BEB2A15041E17A144EBB545541713D0AC7BEA1504166666636B35455413D0AD793BFA15041C3F528ACB25455419A9999F9C0A15041C3F528BCB1545541A4703DAAC1A1504152B81E45B15455410AD7A350C3A150418FC2F528B0545541CDCCCCDCCAA15041D7A3706DB45455419A9999B9CBA15041A4703D6AB35455419A9999C9CEA15041B81E857BB054554152B81EE5D1A150411F85EB81AD5455410AD7A340DAA1504114AE4781A5545541D7A3700DE7A15041C3F528FC9A545541295C8F7218A25041EC51B81E72545541E9A8BAE554A250414ABD9D8329545541AC81586A57A2504156985FA0265455416371EA8F5AA25041F9D38C04235455417B14AEF764A250415C8FC215175455415C8FC2A567A250413D0AD74314545541C5311AB767A25041F211882D145455419E6EECA767A2504119D5B53C145455414ECE523E68A250413CD01414105455410DAD676268A2504151E6F4870F5455413C618F9D68A250412A8A5DAB0E54554148B5782769A25041764E16C60D545541988AACCF6AA2504136D8480C0B545541027AA99A6BA2504169CF5FBE09545541B50BFA406CA25041DA81464E0A5455415BF4E9A069A25041E0D16BE60E5455417B457B1E69A25041AB0B57CA0F545541A97ECAC968A25041D12EB42413545541BEE159F568A250415F9A3FFA12545541666666466DA25041B81E854B0E545541713D0A676EA250415C8FC2450C545541785745D56BA250414417F5E909545541699958916BA25041C38AACA8095455410D20F4BB6BA25041C439B0840954554114AE47317BA25041D7A370FDEC53554152B81E8587A250415C8FC295DF535541666666669BA25041A4703D7ACC535541EC51B87EA6A2504114AE47B1C3535541823A42D0A7A2504116FB2C2CC25355418DF8A5A4A9A250414F5F49C6BF53554185EB5168ABA25041713D0A77BD535541D7A3702DACA25041295C8FF2BC5355417B14AE17B1A2504152B81E15BA535541A6C0BCE5D2A2504169CF7CA9AF535541364D2B13CEA250418BE14B0FA0535541756D1663CAA25041E3B0EAD895535541D254AC32CAA25041794E4217955355418B26A5F8C1A2504104A1E71C7E535541A3BD6CE0BFA2504145D09C9C78535541CD07008CB8A25041DA6F5054645355419A4E4071B7A25041DC9EE26A61535541AC4606D7B6A25041506F86CD5D5355411517AA39B3A2504168C1531357535541D461076CB2A25041F452F12A555355419D5CBCDCAAA250416C024ECE55535541F662A61AA5A250413E31BC8E58535541E35A841FA2A25041B0E42C305A535541D9EFA491A0A2504101F653ED5A535541A078A5BD9DA25041300274335C535541DBAAE23797A2504110CD1B355F535541A69DB9C594A2504197B7F62C605355413D0AD73390A250417B14AEE761535541FFFF47C78BA250411EAFFA96635355413D0AD7E385A2504114AE47D1675355410AD7A3907EA2504148E17AD46C5355412C3BAF9978A25041418AB0ED6F535541D7A3702D76A25041D7A3702D7153554114AE470172A2504152B81E95735355418B685EE26DA25041F63A924C77535541C370A22F6AA25041419B7F7D7A535541BBCFB5F665A250417DA172457D5355414620649D5FA250412640471781535541C8A06C635CA25041AC6A2EF4825355412989F84859A25041C1D657B9845355411A21743657A25041B6ED0365865355416120426855A25041418580D88753554115C1A40B54A25041F835D42189535541B086F41951A25041D98294E58B5355416DD2428850A250411C50E3648C5355419811A0374DA250416738D0F38E5355415B0CDAC14AA25041933E2782905355419A8B0B2A43A25041E39EF66695535541B1A0558D3EA2504194CBD2C098535541EF1777F73CA250414CBFA7B099535541E73ACD2639A2504152AC47F99B535541D811A22C38A25041749A26809C535541692AF84C36A2504187D2EA3A9E53554190489D6334A250417CFDA06FA0535541BBF215AE32A25041E1A05644A25355413B20E65431A25041D2516F98A35355418517501B30A25041304FC06EA4535541E147D2DD2DA250411AF6E058A6535541684DE26E29A25041A20A2223AB535541311BF03D27A25041E91888D6AD535541FF4569E524A25041086938B8AF53554172D4BC4220A2504164D59A6CB25355410861499A16A25041925E502FB75355414A6F0D5B15A25041F02F44ACB7535541DF21BD4814A2504119492B27B85355417C785A9511A25041C5C42846B9535541A98893300FA250412574FC9BB9535541548CF33B0CA2504128F841EAB95355415E05215607A250413AE6407FBB535541D152C1E102A25041785DA09DBD53554153EC4314FFA1504148B194FABF535541EFA0C0DFFBA150410BD4A049C25355418EB70DC7F8A15041AE5EE84AC3535541BF63196AF6A15041BD79E2E3C35355412195A0C8EFA15041E1547575C5535541662066FBEAA15041F35C7861C65355416FC91E43E2A15041A04DB1B8CA5355413AF8B26CDBA15041E3ABBC2DCE53554132F94DA9D6A150410FA14499D05355419C07037ED3A1504110751F24D2535541CEEBBC79D1A150413FF74C22D3535541F3AA2F29CFA15041B5650ABFD3535541133180FBCBA15041AD0D7C7AD4535541EA07B7B3C6A15041637D411FD553554168AFE1A9C0A15041537E4A4BD6535541C4352B1DBFA15041D6A183C8D653554140632CE6BBA15041EAABAFDFD7535541B8D5453CBAA15041A304DE51D85355418BE0BDD0B7A15041569D34B4D85355410F468D02B6A150414FFEB4D1D8535541789B565CB2A15041F7500983D8535541791561EAACA15041739D677ED753554126A1BA98A7A150417BD05EE7D65355412A15BB0CA0A150411C78F7A4D6535541E14627E999A15041BB9F8F99D6535541C69F0BB78CA1504190F0E0C2D6535541DB00C55587A1504198ADAD26D75355414C7308F685A15041A82BAB49D7535541950FBDF282A15041629009DCD7535541206D90DF7BA15041A8A4F36AD95355416D639E9A79A150417A5A190ADA5355413DB0E71475A15041B97C1A79DB53554147EABB8C70A15041F6EDA634DD53554129A4E74D70A15041F4838053DD535541D615F7766EA15041FD800D00DE535541726B16C46CA15041A8B413ABDE535541954502A169A15041C6B2EE13E053554117C04C0C68A15041DC5EB7CDE0535541EFFB3DD965A15041762AECF0E1535541C013693763A150413E84C85CE353554177FCB2C460A150418AD10EA9E453554196F7C4A05DA150416DC32E4FE65355419C92E6B35AA15041466607F3E7535541A2B7578659A150419907B69AE8535541713D0A7759A1504114AE47B1E8535541D7A370CD56A1504185EB5158ED535541713D0A2756A15041A4703D7AEE535541B81E85CB52A15041EC51B89EF35355411F85EB114DA150418FC2F5F8FC5355418FC2F5484AA15041CDCCCC2C035455411F85EB9145A150417B14AE870D5455419A9999293EA150413D0AD7E31D545541AE47E11A3DA15041CDCCCC4C205455416666667666A15041C3F5287C655455411F85EB51D0A150418FC2F5389254554114DEAD56D0A15041CB24D13A925455410A03416DD3A150410645962A8E545541F841EBB9D6A1504123085F7B89545541E3876F64DAA15041372C936885545541D32B6B88DBA150413DD474C783545541C2CB8071DFA1504158E8815B80545541AEDE9BEDE1A1504160F341F47D545541A062495FE4A150416E6F94827B54554193C6A81EE8A150418BB3162276545541815130EEEAA150419D746CD5725455417AC729A4ECA15041A31C4E347154554165571834F1A15041C604CCF76C5455413951BF5BF5A15041FFB9E08C675455411D243E73FAA1504117A4D1ED61545541FB852A95FFA150413649BF295D545541E286AB1A04A2504149D538115A545541B2028D160CA25041635571DA545455417EA3238514A2504195D2B5804C5455417EED8D6A15A250419D5CBCCA4A545541612AC5191AA25041C40AF7014554554156A7982D1CA25041D28649904254554145FD43311FA25041E9D60C4E3F5455412D4AA23923A25041FFA7895A3B54554105508A7F29A250412066EBEA34545541E88A4E912FA2504142BA94E32E545541D75F404633A250414D0A58A12B545541CA79352036A250415F7FD0D1285455419731CD453EA2504191FC14782054554169C4AFF845A25041C4F89FCF1854554129E2197B50A25041FCD35BEF0D545541171F512A55A250411801DDD708545541F90FAB565AA250413EAF170F03545541C7DE433362A250417935A9B0F9535541C0A01A6C63A250417CAF88A1F8535541BA2D15D964A250418D59DD9DF5535541AFAAE8EC66A25041997251F2F3535541813DCB9F6EA25041C1B8462FED5355417685C2E770A25041D1CAE025EB5355415943B3E574A25041EB9483D4E6535541408E9E507AA250410D6AE61BE0535541219DD3917FA250413D844C88D85355411BF5F13281A2504143ADE735D65355410B64118B82A250414FFB3756D4535541F8D5240687A2504165CCB462D0535541E7AC895889A2504171D09A9DCD535541DCDD7FE98BA2504197B3B1A0C7535541CCCBE5F28DA25041BE2C100CC2535541D386E2CD8EA25041BEAF3CF8BF535541BBA0D7A791A25041E80AC04EBA535541AA2B5F7794A25041FF5CF6A9B55355419DC60DA096A250411C6C9C7DB0535541E394713298A25041EFD8DBAFAB5355419BAD994B98A2504147DE208BAA535541C7A7B89A98A25041A4D27CCBA853554150E468E899A25041C250A49EA45355412E9BD0169BA25041749C551DA25355418D58B4749BA25041B750C7F7A15355418FC2F5987DA250418FC2F548AD53554114AE47016DA25041B81E85DBB05355418FC2F5A84CA250417B14AE87CB535541B81E850B2FA25041B81E853BDA535541B81E858B24A25041E17A142EC453554114AE47412FA250415C8FC225BB535541295C8FB23CA25041333333A3B45355413333333347A2504100000020AE535541C3F5282C53A250419A9999B9A5535541E17A148E63A250417B14AED79F5355410AD7A3E076A25041666666F6995355417B14AEC789A2504185EB51B8905355411F85EB119DA25041E17A140E88535541713D0AF7A4A25041B81E85BB85535541E17A14FEA9A25041CDCCCC8C84535541713D0AF7C0A250419A9999397F53554114AE47E1C6A25041AE47E10A93535541713D0AF7B2A25041666666569A535541C3F528DCA3A2504185EB51C89E5355416D82FB7E9CA250410A28DA92A1535541010300000001000000040000001AAC74A8B2A25041089D234F5353554192C13EF3B2A25041425CD8E253535541D4DDEF03B3A25041532D98DE535355411AAC74A8B2A25041089D234F53535541010300000001000000040000001D91EF1258A2504105DCD4131A5355413C2510D05AA25041E758D8AD17535541426B4F1C58A250413D3182081A5355411D91EF1258A2504105DCD4131A53554101030000000100000031000000B6C3DB68B9A25041CD678CAA3E53554114AE4771BBA25041000000A03953554114AE4751B6A2504114AE472139535541295C8F42ACA25041B81E857B35535541D7A370BDA6A250417B14AEE7335355417B14AE179CA250415C8FC2D531535541F6285CCF9AA25041E17A14AE355355413D0AD76395A25041C3F5289C3353554185EB51A890A25041295C8F6235535541544807108BA2504153AE70CE345355418FC2F5C887A250413D0AD7C32F53554114AE47318EA25041E17A141E3353554148E17AA491A250410AD7A3E02E535541E17A14DE88A25041F6285CEF2A53554114AE473180A250410AD7A3502C535541D7A3700D7CA25041666666F6285355418FC2F53877A25041AE47E11A26535541EC51B86E76A25041713D0AA7225355419A9999E969A25041666666D61C5355413333330363A25041295C8F6220535541B81E85DB5FA25041E17A14FE1F535541CDCCCC3C61A25041295C8F421B5355415C8FC2C565A2504133333383175355411F85EBA169A250416666666617535541713D0A5766A25041666666160B535541666666665DA2504133333383155355416C4814A75AA25041A9E00BDE17535541FE12ADEF56A25041AD0F6FCF1C535541C15FA13454A25041356D94C420535541AE9FBE0353A25041923CD9D822535541657E642852A250410B95207226535541605F886152A250414C15127729535541BFD8D8E454A25041627F1B552E53554163371C1758A25041DAEDCE4C305355419DA4F58D60A250419E6976913153554107612AD867A250419D026CD331535541777687F173A25041F0401166325355414D563D1A7AA250419B95485233535541CB7CAE6188A250417D46DAAD34535541CAE7F06C90A250418AEC1ECB35535541D117692296A25041424424AB36535541D25BD7379AA2504134B07E8037535541432D99029EA25041AA8E85A038535541D6D5F2B79EA25041881587E0385355413C85FD77A0A250416C4B344B395355412E35C662A5A25041E4C491A03A5355418851A74DAEA25041F21CF6153D5355410A741C83B3A25041A9D9A4C03D535541B6C3DB68B9A25041CD678CAA3E53554101030000000100000005000000C574E116B9A250411B8AD6753F535541B3E09318B9A25041499D04763F535541133FEB6DB9A25041331D55AB3E535541B6C3DB68B9A25041CD678CAA3E535541C574E116B9A250411B8AD6753F5355410103000000010000000400000091376FF667A25041270C33EE1354554186A4DC3268A25041B06A5AC7135455417D2DE04F68A25041545CEE981354554191376FF667A25041270C33EE1354554101030000000100000097000000D0E5578659A150417CC3B59AE8535541C952CEBB5AA150410B24CBEEE6535541884C98535DA1504188FC6D7EE553554128E908E75EA150410B636A96E45355411A4DD32163A1504149B18C6EE253554134CA048268A15041B74818B2DF535541B348AC7C6EA15041BDFA7C07DD5355419AE4B01471A150414C608811DC5355411AA702D273A1504164FC62EEDA535541B256A10179A1504186FD6057D95355415F90FA027AA1504110ADB80BD95355413D5489357BA15041E042E2A9D8535541F0AE4A327DA1504104168641D8535541A54BBD937FA1504113F175D6D75355419375F4E881A15041FA733C5DD753554103F9461786A150417DAEFA9FD6535541C453D5FF87A150411E7E4A4BD65355415FD61D5989A1504192DDF741D6535541B4BFBDB98AA1504165ED2724D6535541AC90B2338DA150419E39350CD653554161F3585693A15041FA085DCFD553554174577E3796A1504114F27BDED5535541E1389B5AA1A1504144C91ED0D55355412608F08DA5A15041965C05FDD5535541F63157D7A8A1504112B0AD2AD6535541AAC3822AAAA15041A5C6DB5ED65355412667917DACA15041CA2A38BDD65355417781732CAEA150412AEEAEF9D65355419288DBDBB3A150419480DCDBD7535541051C7E99B6A15041C33CD206D85355410CFFEF14BAA150418DBEDBA0D7535541F0073230C1A15041688B5470D5535541CC571139C4A1504159E4D1A1D453554118391167C5A1504139B4AB75D45355417DE62E36CDA1504193437853D35355417A93F8C8CDA150412AA88B2FD3535541AA364BD9CFA15041FA3DB5CDD253554193D59F9ED3A15041D1C7BE25D15355418E45AC08DBA1504124A35E53CD53554119963B05EBA1504189CA4A7FC55355411AD39F8DEFA150412A381D9DC45355415D6DA2BAF6A150416104E428C3535541BE13734CFAA150410741E81FC25355415D478586FEA150416E658F63BF5355414F09E5CC02A25041D13FA072BC535541C8314AFC06A2504145C2EFADBA5355419934A16709A25041CA07B3E2B953554120DE46590AA250412574FC9BB95355414CFC534A0FA25041024424B0B85355410423CACE12A25041F4499507B85355413C6C60B416A25041CA9AC1FCB553554109D341F719A25041A3F26775B453554139E385ED1FA25041791CA959B15355419503E87425A25041C7ED3A99AE53554179556D0B2AA2504162305E26A95355416F3C8A882DA250415BCABD8DA55355413B20E65431A25041B2998793A25355412467FAFD31A25041054DAE16A25355416041B76433A25041E4133268A05355414F69D26D35A25041C270075E9E535541567CC76F37A25041BF3E04639C535541D9FE5B593AA25041FC40686B9A535541FCCE88013DA250419C3812E798535541414B51FB3FA2504182DE800A9753554182C8209442A2504199BC3F2595535541C318C9FC45A25041589386C4925355413FF9A0AC47A250417FAE0D8791535541279F01F648A250411D2D5CC890535541576DAB614DA25041126361EF8D5355416E4BEA5050A25041B6849B628B5355412B1BB35F51A250413E9A03788A535541DFF0ABE553A250415B9D75278853554149A1891958A250410367829384535541E743C4C159A25041E1504D9A83535541A4036F8E5DA250419F29EC5E81535541C7AF08D860A25041824A89707F535541A640689367A2504180223B777B5355417D9BB8496CA25041705F478B775355416B451D966DA25041994FAD7E765355411C3D210071A250416EAB514273535541FB43CEEC74A2504155B4C33971535541074AA3B779A250412D609DA16E53554114ADBD6D7DA25041EC8561816C53554145B24F8981A25041F34C5A176A535541F757D3AB84A25041322F72DB67535541F3C6CB188AA250413BEC7490635355417B14AE478CA250416666667662535541EE6B30818EA25041079DCAAD61535541D6D1089890A250414F4312DD605355414E520D2E91A250414D7575BC6053554108B2FB0699A250415E19AB935D535541943F290F9CA250410A93965A5C53554118C45155A1A250418A856DE859535541FEFDD62FA4A25041A3DD1361585355416C80ED1DA7A250418CA497B25653554193F1DC4EA9A2504192A38E86555355418021543BADA25041BFB8B38E545355414AEE0D95B2A2504190AC93485353554185EB51C8B1A2504148E17A9451535541C574E116B9A250411B8AD6753F535541A24B7298B3A250412AB8ABE03E535541B9220A83B0A2504199AAA8603E535541485148B8ACA2504111024FAB3D535541F7FF35B8A9A2504159AA49CB3C5355410E935F8DA2A250411DD9E6953A535541C4E9E8179DA250413C9C882039535541DA9EC9F797A25041CC87D4953753554148D04A908DA250410CC7984A36535541E659490784A250411703770A35535541308F0C1978A2504161762ADE335355411E8B4CBD6FA25041C901FDE03253554197F615336EA2504158CC86D632535541BB75A50268A250417CBBC4B432535541613382E061A2504167721A5C32535541257D962F5CA250413779C2F43153554185EB51A857A25041713D0A073153554188F5659854A250417BAABB072F53554124A09B1252A25041E47EAA9E2B53554196A8051E51A250416A7D976F275355410E9E0DAC51A250415217C02625535541BAAD002E52A250416145974F2353554188A8974153A25041AA4824C2205355417B86CDE353A25041494C0CAC1F535541B1A45E5155A250410B911B5B1D535541018CE36256A25041A131AE1D1C535541F8E1201058A250417E384A161A5355415C8FC2A54EA2504185EB5128225355419A9999194CA25041E17A140E2553554185EB51D831A25041B81E850B2D5355417B14AEF730A2504185EB51781E535541333333A332A25041295C8FA214535541A4703D5A30A25041A4703DCA12535541CDCCCCBC2FA25041295C8FB20D535541E17A140E0DA250411F85EB8110535541333333E3F2A1504152B81E5510535541295C8F12EBA15041333333D3115355415C8FC2B5E0A15041AE47E1FA0F535541B81E85EBDDA150413D0AD7631053554182F3B5ADC8A15041802E569945535541F5004C9FC5A150411FD5D5524F535541670399C9BFA15041C32422F05C535541CDFA9C2CB7A1504187BBBE8D6F535541A53B3EBAADA1504130A98E477E5355412518163AABA15041C408BE00835355416350BB2A99A1504197C035F49D535541776646FF8BA15041FC0F38F1AC5355417AC5130183A15041D90AB98AB753554169A3808376A15041DA4EC4D9C5535541250874A266A15041087E2D88D8535541CDCCCC9C5AA1504100000000E7535541D0E5578659A150417CC3B59AE8535541
+</a>
+
+<b>
+010600000001000000010300000003000000FE000000EE565A8659A150415992B49AE85355419C92E6B35AA15041466607F3E75355411AC165235DA15041CDA47895E6535541B1A4BD4A5DA15041F5724E7DE65355417E69F6215FA15041ADF46026E553554141FCD59260A1504113D7F1C2E45355417D1D7A0F63A15041F29AF471E3535541C013693763A150413E84C85CE3535541EFFB3DD965A15041762AECF0E153554117C04C0C68A15041DC5EB7CDE0535541F137331468A1504115F216CAE0535541D8827B3668A15041DA98F2B7E0535541BFC70D426BA150412FEEF150DF5355411DB53C676CA15041D163CCD4DE535541726B16C46CA15041A8B413ABDE535541FB62C6136DA15041CC03BD8BDE535541661B117A6DA1504155696C60DE535541E87B592970A15041E126865ADD535541E89DAFCC73A1504139FE95F6DB5355413DB0E71475A15041B97C1A79DB535541254FC4B876A150413E0201F4DA535541CF5FF0E476A15041FB41BCE4DA535541C144323379A1504123F49229DA5355410B0445FC79A15041CC1ED1E9D9535541B5CAC64D7BA15041FB0BF98CD95355412D6E90DF7BA1504167A4F36AD953554180A8094A7DA15041F7585D16D9535541127F79557FA15041F5C594A0D8535541B1FBCE0F82A15041EC308706D853554144A8D2A984A150415054B688D75355414C7308F685A15041A82BAB49D75355418125151086A1504168C71347D7535541979C852086A1504169C41044D7535541DB00C55587A1504198ADAD26D7535541A85B4D8087A15041CEFBA222D7535541D4D328AA88A15041D2FC5406D753554102B1B4438AA15041A3EC69DFD65355419A8FF1B28CA1504175072DC3D6535541C69F0BB78CA1504190F0E0C2D653554158A069BA8CA150418865D6C2D653554122D0ECC38CA15041F40F68C2D65355412EC3459D8DA15041CD3870BAD65355417F4C6FD092A150413B97F797D6535541C1CD9AF295A150411B238290D653554121A11A929AA150416E9D268CD65355417D7BB23D9FA15041981FB0A0D65355412A15BB0CA0A150411C78F7A4D6535541FCC50979A1A15041E4E57EACD65355410FFFFA90A5A150410C978FD1D65355415B296387A7A15041FE86A4E6D6535541F969B989A7A150413BCADAE6D653554126A1BA98A7A150417BD05EE7D6535541F61089C2A7A1504101EE01ECD6535541A50C81B0A8A15041F97F9701D7535541F16199C0A9A15041723C551CD7535541EF09EB44AAA15041B3BC4233D7535541791561EAACA15041739D677ED75355417F0905FBADA15041418561B1D753554125BFD3E7AFA1504151B2850DD8535541658A1A9FB1A150415BB01859D853554148EB5CEDB2A1504165330D8BD85355412A434BE6B3A150418ED242A1D8535541568E7D89B6A150410D0A18C9D85355417A364A0CB8A15041FCE0C0AAD8535541B3098FD5B8A15041C455CE8AD853554172D0D429BAA15041F05E0150D8535541EA552AE8BFA150417811437DD6535541530C8C7BC0A15041AFA4EA59D653554168AFE1A9C0A15041537E4A4BD653554183F7B6F6C0A15041B5D3603CD653554195ACF7E1C1A15041F699F503D6535541F1B8CB90C3A15041488382AAD55355413E136F81C4A1504183488C78D55355411FE67D8EC5A15041A00D8A4AD55355414B7AD295C6A15041A0CB0E25D5535541EA07B7B3C6A15041637D411FD5535541E3AC63FFC6A15041EC200816D5535541B5850ECDCCA150412A3D9142D453554116B90CF3CDA150415236DB01D4535541B3A17447CFA1504133F3EEB3D3535541EEB967F8D0A15041AAF9853ED35355412B1DA48CD1A15041EEB0CB0FD3535541478F1F04D4A150419ADFD9E2D15355418EEA8FB2DAA150410ACDC180CE535541B6455BBDDBA1504114CFB8FBCD53554147544B09E1A1504193605E57CB5355416FC91E43E2A15041A04DB1B8CA535541DB739584EAA15041FBB39D9CC6535541662066FBEAA15041F35C7861C6535541913F7B2DEBA150412DB5DA57C653554130FB0E14ECA150410762952BC65355417DBAD3C4EFA15041DFDC6371C55355414B118FDEF5A15041BA2263FFC3535541E60E3075F6A150416102B1DAC3535541CB170F84FAA150415BE379BAC25355419E526FAAFBA15041B9DDEE5AC25355414DEE3F6DFCA15041A4013AE3C1535541441B3CB6FDA150412EB2B8F6C0535541273DE1F1FEA15041F39B5913C053554153EC4314FFA1504148B194FABF535541D152C1E102A25041785DA09DBD53554189B48D3003A25041FE2E2678BD5355417F573E8A06A25041A73239E0BB5355415E05215607A250413AE6407FBB5355413D976F8F08A2504115760D1ABB535541F38E155D09A25041E04841CBBA535541FA3FCB880AA25041F23C7E6DBA535541DB2F65440BA250413074383ABA535541548CF33B0CA2504128F841EAB9535541D5C363840CA25041299AC3E2B95355419266A48E0DA250417E1BA4C3B95355413550AE7110A250413B39A05BB953554123526EB711A250413F4FC72DB95355418C1CBB1613A25041849B4EA1B85355411042DDD816A2504159414205B75355419A7569101AA2504193F0F16EB5535541319EDCC01FA25041735A60A0B2535541FF59D29520A2504108F04E37B25355415E44DD7F25A250410AF8543CAF535541BADF1F6026A2504195E67D84AE53554133C3E76C29A25041A2619225AB535541684DE26E29A25041A20A2223AB5355415FB5117929A250411DD82018AB535541E4D386142AA25041D403516CAA5355414FEF5C9F2AA25041C12C7CD7A95355418AB99A0E2BA2504141393C60A9535541DB7ABADA2BA250414E7E6A85A8535541E147D2DD2DA250411AF6E058A653554120BEE3F12DA250419F4ABA47A6535541CDCCCC0C2EA25041AE47E12AA6535541E67E3F812EA250415A4A35CDA55355418517501B30A25041304FC06EA453554151B393C530A2504147EB62FAA35355416312A85131A250412C84B489A3535541F39D8C4232A2504113CD8BABA25355418D665FDF33A25041FA3071F9A05355412BF443C435A25041165FA1D69E535541EE1058D035A2504105E3BBCA9E535541692AF84C36A2504187D2EA3A9E5355413553ADA137A25041A1FB6A009D535541D811A22C38A25041749A26809C535541A21FB4563AA2504155BD5D439B535541EF1777F73CA250414CBFA7B099535541E4B770593DA250417EC9C27699535541DECDAE2E40A25041BD00989197535541674554FC42A25041E4C72D88955355419A8B0B2A43A25041E39EF6669553554104A86D8F43A2504106D79E2595535541313F5C5B46A2504126C9EF4593535541DEEF27C947A25041C1C9D1519253554122F7FC6A49A25041A213784E9153554189969B8A4DA25041E4C3C5B38E535541AE9A8C8750A25041FDEF6F658C53554183458F0752A25041122675068B535541C674197E54A2504147A1B4B5885355416120426855A25041418580D8875355411A21743657A25041B6ED0365865355413AF3448F58A25041457F0B4F855355412989F84859A25041C1D657B984535541FCA013DD59A2504137CEDC648453554135A4DD775DA25041D543915482535541A599746461A25041C43480058053554167493CBD67A250414748131A7C535541D5FF1E686AA250412FBDC14C7A5355418A83BA1C6DA250414EE81CF777535541F901FEFD6EA25041C597C34C76535541D66796EA71A25041894096A97353554114AE470172A2504152B81E95735355413E2B443E75A25041224E4CB771535541D7A3702D76A25041D7A3702D715355412C3BAF9978A25041418AB0ED6F53554133A238F679A250415E80A2386F5355412FE680B77DA25041C4B346456D535541F7F1E7F081A250412EFD0F856A535541986CBE4585A25041D41A773D6853554133ED2C8A8AA250414126FE6D6453554182A8DE948BA250418D67ADAB63535541CB8E64C48BA2504134950D9963535541FFFF47C78BA250411EAFFA9663535541C9EF441C8CA25041E93D9D766353554164F89BBF8EA2504115BCF26D62535541F45ECAB290A250417873A3B761535541A7F1E48191A25041ADC8436961535541990BE02498A25041788258C35E5355415C193B8799A25041C889A1215E53554143B5F94B9CA250413A2ED9DD5C535541A078A5BD9DA25041300274335C535541D89C83899EA250418FEF9ED75B535541F4786F4CA1A250413ED368945A535541AD5DE873A4A250416196ECE8585355416B7C8BA3A4A25041C0F9E2CF58535541F662A61AA5A250413E31BC8E58535541D7391F50A5A25041859F2E755853554185575A5FA7A25041C0631360575355413F73F58FA9A25041D238334856535541897D61C9AAA25041FCD28DD7555355419D5CBCDCAAA250416C024ECE555355413FF112E5AAA250413BD399CD555355415FA9D7FAAAA2504159F3C6C555535541D461076CB2A25041F452F12A555355414AEE0D95B2A2504190AC93485353554185EB51C8B1A2504148E17A9451535541C574E116B9A250411B8AD6753F535541A24B7298B3A250412AB8ABE03E535541B9220A83B0A2504199AAA8603E535541485148B8ACA2504111024FAB3D535541F7FF35B8A9A2504159AA49CB3C5355410E935F8DA2A250411DD9E6953A535541C4E9E8179DA250413C9C882039535541DA9EC9F797A25041CC87D4953753554148D04A908DA250410CC7984A36535541E659490784A250411703770A35535541308F0C1978A2504161762ADE335355411E8B4CBD6FA25041C901FDE03253554197F615336EA2504158CC86D632535541BB75A50268A250417CBBC4B432535541613382E061A2504167721A5C32535541257D962F5CA250413779C2F43153554185EB51A857A25041713D0A073153554188F5659854A250417BAABB072F53554124A09B1252A25041E47EAA9E2B53554196A8051E51A250416A7D976F275355410E9E0DAC51A250415217C02625535541BAAD002E52A250416145974F2353554188A8974153A25041AA4824C2205355417B86CDE353A25041494C0CAC1F535541B1A45E5155A250410B911B5B1D535541018CE36256A25041A131AE1D1C535541F8E1201058A250417E384A161A5355415C8FC2A54EA2504185EB5128225355419A9999194CA25041E17A140E2553554185EB51D831A25041B81E850B2D5355417B14AEF730A2504185EB51781E535541333333A332A25041295C8FA214535541A4703D5A30A25041A4703DCA12535541CDCCCCBC2FA25041295C8FB20D535541E17A140E0DA250411F85EB8110535541333333E3F2A1504152B81E5510535541295C8F12EBA15041333333D3115355415C8FC2B5E0A15041AE47E1FA0F535541B81E85EBDDA150413D0AD7631053554182F3B5ADC8A15041802E569945535541F5004C9FC5A150411FD5D5524F535541670399C9BFA15041C32422F05C535541CDFA9C2CB7A1504187BBBE8D6F535541A53B3EBAADA1504130A98E477E5355412518163AABA15041C408BE00835355416350BB2A99A1504197C035F49D535541776646FF8BA15041FC0F38F1AC5355417AC5130183A15041D90AB98AB753554169A3808376A15041DA4EC4D9C5535541250874A266A15041087E2D88D8535541CDCCCC9C5AA1504100000000E7535541EE565A8659A150415992B49AE85355411E000000B02144928AA25041A1CD000B465355418952D15189A250414008778A4453554136CCFEEF8CA25041E7F611C845535541E7F217908EA25041C903C55246535541DFD018CE90A2504146204731475355419DCA975093A2504118BDF436485355419369864796A250412FC77ABE48535541C5D7D16F99A25041C4A6221F495355415B31DD2D9EA250417F605453495355415B906825A1A250417F605453495355417EA63CA9A5A250417F6054534953554140451634AAA25041CA0FACEB48535541EC5CD0D0ACA2504133C383B948535541FEC53BA2B3A25041C487A65D48535541D99042C0B4A25041F8583D7E48535541CCA68259B4A2504177CF9D34495355410F2E0AF2B0A2504174BE7A5A49535541E8ABDA63AEA25041EF849D9A495355416E3976D2ABA250415FC710DB495355418B9F69FEA8A250419DA7A6084A535541A7566147A6A25041ACF6D3244A535541B5BA13579FA250415043CA584A535541660F6ABA9BA250415043CA584A53554171EDF64699A250415043CA584A53554152FD7A8596A2504173B611F849535541FB8CFABF94A25041AB35CAB849535541E93DEE4392A25041FDFC02D8485355418729DC358FA25041E9BE03594753554160A4C1EB8BA250412E3D504046535541B02144928AA25041A1CD000B465355411900000054B4773070A2504170843F8B34535541A2ECD05172A250411E75B0FB335355411A29D36A72A250413CDED24334535541BF6811C074A2504157993E4A355355414937226B77A2504112E23E5537535541E1710A7B78A250415D94F695385355412EE1672979A25041C128737E39535541EEAE0AF77AA25041BB07D4193B53554110154FAD7CA25041501FB3B73C53554124FDAD377EA250417F5562273E535541F94CB1B07FA25041659C942A3F5355416E3E7E4981A25041D59E3243405355412AE6B12D83A250416E627E8E415355411DC042B785A25041B86491D842535541C2FC925D87A25041830ACD7C435355412F31F97387A2504102A8B75345535541043BDEEA86A25041848576E144535541BB2BE24184A250411E685FCD43535541666F043282A25041D79C9C6E42535541528C507B7FA250419C0D271A4053554196B25ECB7BA250413B8A94F03C535541B554CC2378A25041E538288939535541A488A8D274A2504147E8AEA9365355417D2F1CC871A250419C9924033553554154B4773070A2504170843F8B34535541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>608321 - 200925
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000003B000000ED737BE208B15041B6616BC89C49554166C52CAD09B150411056C3549B495541A8708F8B0EB150414758219F9C4955417FD8896E10B15041BAB5CDA59949554127899D1614B150418DB449869A4955413C3A56E114B1504139114E299E49554114AE477115B150415C8FC2859E4955413D0AD75316B150417B14AEE7944955417F89CF6C0FB150412C8FC95486495541806E31410DB150416B70688A8F495541D43B82D90AB15041652935D68E495541136A75AC0AB150411326A8E68C495541420A021709B15041269970238C495541B20EBEAB0BB150417A15E738834955410A8B34C102B15041368522868049554152B81E1500B150410AD7A3D0894955417F38F5E908B150411AB40E4F8E495541B80417DD05B1504157FD9F4D90495541E17A141EFCB05041AE47E10A8A4955415C8FC2B5FEB0504152B81E857F495541F6285C2FFDB05041713D0A377F49554122F4552FFCB05041C89B041D804955415ADB154EFBB050412E598DFD81495541A77CD15DFAB05041C6B6A248824955410AD7A3D0F2B050411F85EB81924955418FC2F538F0B0504152B81E459349554185EB5118F6B05041713D0A377F4955418FC2F508F4B05041B81E853B7D495541EC51B84EEFB05041EC51B8FE7D495541EC51B82EECB05041AE47E1BA8A49554114AE4721E9B0504152B81E9592495541C3F5288CE5B05041CDCCCC5C91495541295C8F32EAB050419A9999397E495541022BFEE4E5B05041C89B041D80495541CC28A09AE4B050415D2F56BF84495541C5E16CE6E3B0504116F06B8F884955413CF71FD8E2B05041229970238C49554152B81E15DDB050417B14AEF78949554133333373D6B0504114AE47C187495541E17A14FED5B050410AD7A32089495541A4703D4ACEB05041EC51B84E8649554188E55754CEB05041A53BF18385495541781AC5A9CEB050419F475CDD84495541800AE187CFB050412B900E1083495541E17A144ED5B0504185EB514880495541295C8FC2D6B0504152B81E157B4955410AD7A370D2B05041713D0AE77A4955410AD7A370CAB0504114AE47318A49554148E17AA4CEB050415C8FC2D58B4955419A999959D0B050410AD7A3D08949554152B81E75D5B05041AE47E1BA8A495541AE47E1BAD4B05041666666368E495541EC51B82EE5B0504152B81EA594495541B81E856BEEB05041A4703D6A98495541B81E853BEFB0504166666656944955419A9999A9F2B0504185EB5108944955419A999919F2B05041D7A3709D9949554152B81E25FEB05041B81E858B9D495541ED737BE208B15041B6616BC89C495541
+</a>
+
+<b>
+0106000000010000000103000000010000008B000000BAAA9D5DE7B050410215BD777F4955413E691526E7B05041672F74A47F4955414E674CD8E6B05041F28F3EB27F495541FE2AFEE4E5B05041C69B041D80495541CA28A09AE4B05041622F56BF84495541C0E16CE6E3B0504113F06B8F8849554141F71FD8E2B05041259970238C495541BE87C98FE1B05041F323BAA78B495541E0821A57E1B0504115E2D0E98B4955419BE21C7EDCB05041C49D916A8A49554132647D75DBB05041EBCE31068A495541E9D35D91DAB050411300D2A18949554193C95DB9DAB050410AEE462E8949554143218872D9B05041D30440C188495541C874DE48D9B05041C32C9246894955413D97BFF7D6B050410298926B884955419CF9FF2ED6B05041F6D7F1F389495541BB76802FD5B050412D00D2A18949554138DC8155D2B05041453A322B89495541376B8231D1B050413B15136C87495541A4703D4ACEB05041EC51B84E8649554185E55754CEB05041A23BF18385495541E92E8BEACEB050415493D456844955417C0AE187CFB0504126900E10834955417FD5558FCFB050413F80770C834955415A6B0352D5B05041803C433A8049554109673FA1D5B0504180A6161F7F495541047A7916D6B05041EA26227C7D495541C655AE64D6B0504174F1A1647C4955411DB2FFC0D6B050415E1FD9167B495541CB72CDA4D6B05041994EE1137B4955410CAA6C56D4B05041E6F047FB7A4955414FA05D5DD2B0504197C1E00B7B49554173232F07D0B05041B90B27837F495541CE4124DCCDB050412E3EFAA7834955416AF4EE7ECAB050417732F6158A4955411FF7969BCEB05041550B49D28B4955417E384652D0B050419D714ED98949554156E80232D0B05041A504B298894955412EB76296D0B050413C861290884955414190A1F0D2B05041F6D7F1F38949554152B81E75D5B05041AE47E1BA8A4955413CAD93ECD4B050415C15F2A18D4955416F8BAAE6D4B050418E601F6A8D4955415D268BE5D4B050410D0C2C6A8D495541AE47E1BAD4B05041666666368E495541A8D81EFFD4B05041E78B14518E49554154888BFED4B05041CB3FA54B8E4955418DCA5E3DD5B050413D166B698E495541086B4534DEB050417838AAEA914955416B75450DDFB0504145C05D0492495541273E2DDCE1B05041DD52DA3F934955412AA45375E2B05041E314759493495541EC51B82EE5B0504152B81EA594495541B81E856BEEB05041A4703D6A98495541B81E853BEFB0504166666656944955419A9999A9F2B0504185EB5108944955419A999919F2B05041D7A3709D9949554152B81E25FEB05041B81E858B9D4955411B2865CA08B1504181F420CA9C495541DD533CEA08B1504159EC33BA9C49554166C52CAD09B150410B56C3549B495541AC708F8B0EB150414A58219F9C4955417CD8896E10B15041B6B5CDA59949554128899D1614B150418AB449869A4955413F3A56E114B150413B114E299E495541963A347315B15041E1EAD9709E49554106D8028715B15041AF5E9A999D495541C0F91E9815B150418176AADF9C495541A787B44E16B1504118A2D6DC94495541611168730FB15041F5B5B6628649554167CC4DA10EB15041DDEF50B4894955415B159E9C0EB15041989E33C889495541ECC2B2870EB15041AD8DF7208A4955413F1645750EB150414BCB296F8A495541826E31410DB150416C70688A8F495541B560D60A0CB15041DE78922F8F495541450A48E40BB15041C49749248F495541CF3B82D90AB15041622935D68E4955410F6A75AC0AB150410F26A8E68C495541A2C0EF3D0AB15041494671B18C495541460A021709B15041259970238C495541EA00EDA60AB15041B4D0E7BD86495541239705A709B1504196005C9386495541ACCF0F9209B15041859C94FD8349554112B6064006B1504100C56B9E814955419E24FE2E06B15041B5F3C78F814955410D8B34C102B150413B85228680495541342A952D02B15041B7DE678782495541B46C25E501B1504136D942838349554117B38AB001B15041307C293A84495541B1BE053501B1504157CEA0E78549554190AE842401B15041F3FB022186495541482374A300B150411E18C2E18749554110116D6000B15041CBB2CECA8849554156043A2100B150415DDA8BA6894955417A796AEC01B1504158FE9F1E8A495541B69F0B4A03B15041EEEAB9E98A4955415C7C343905B15041F576BF7A8A495541719AAF9F07B150417529E0448C4955419833259909B1504127B1253B8E495541DAA16EF007B150417CBE9E2F8F4955410637A9A606B150418417D4C98F49554127E8209F06B150419FE8C0CE8F495541B40417DD05B1504156FD9F4D904955417F27414905B15041B41A067190495541F7FDD98802B150414EB2E6218F495541B871A42000B150413233362A8E495541A8574C08FEB050413E06858E8B4955414CDE21BFFDB050418728535A8B4955415AF7F52CFCB050414FB80C7F8A495541EE8E87A4FBB05041FFBEBE338A49554113D2F4CCFBB050411C80C08D884955415A1524E8FBB050415897FC718749554101B86516FCB0504117D1B0CD864955419AC9BE00FDB050413403E60484495541A05E0755FDB05041C55D195983495541C53EDEB0FDB0504187F3E59D824955419F526BAEFEB050415F36EAA27F4955415C8FC2B5FEB0504152B81E857F495541F6285C2FFDB05041713D0A377F4955411EF4552FFCB05041C69B041D804955415FDB154EFBB050412F598DFD81495541AA7CD15DFAB05041C4B6A248824955410AD7A3D0F2B050411F85EB81924955415A44F321F0B0504139332D6F93495541E74D9F2FEFB0504123F9A4AC934955411D2C6340ECB050418A2F2B6194495541B218EBD8E9B05041A1AA86DD94495541BB83DD3EE9B0504113D16CE69449554175AA7726E7B050413AA42C93944955418DC38B25E8B0504102B6643F924955413A9E450DE8B050410347DB73924955414180AF1CE8B050419944603C92495541C3F5288CE5B05041CDCCCC5C91495541913C802CEAB05041CC6389527E49554174E51823EAB050418B23C7527E4955419E2D390FEAB050415A7A1B497E495541BAAA9D5DE7B050410215BD777F495541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>466331 - 1717110
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000000B0000008FC2F56803BB50415C8FC275EE1E55417B14AE87FFBA5041B81E85CBD21E5541F6274E80FFBA50411C3CC138CA1E5541F6274E80FFBA504172BF50B4C21E5541C1A5A42C00BB5041B2211445B81E5541C1A5A42C00BB5041343C0631B01E5541C3F528CCFBBA504185EB5118B11E5541ECB1A73FFABA5041D51EC8FFC91E5541C745969BFABA5041D9F44731D71E5541000000B0FCBA5041713D0A87F01E55418FC2F56803BB50415C8FC275EE1E5541
+</a>
+
+<b>
+010600000001000000010300000001000000130000002346CDF9FEBA5041C9437414CA1E55419A9999F9FEBA504114AE4711CA1E5541713D0AE7FEBA50415C8FC2B5C21E5541D4CEE307FFBA50414770AC30C11E55415AF45447FFBA5041C71E3E41BE1E5541C797E45CFFBA5041716CDD41BD1E55416985EEC9FFBA5041FBC2D327B81E55410000005000BB5041EC51B85EB01E55411BDE3F5E00BB5041E704C15BB01E5541A35B6C6C00BB50415BD48EC4AF1E5541A94C4CF1FBBA50413F038697B01E5541F06BC294FABA504150425D15C01E5541E2251DF3F9BA5041D7E724DDC71E5541F6285CAFF9BA504100000020CB1E5541C745969BFABA5041D7F44731D71E5541000000B0FCBA5041713D0A87F01E55418FC2F56803BB50415C8FC275EE1E55417B14AE87FFBA5041B81E85CBD21E55412346CDF9FEBA5041C9437414CA1E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>466331 - 3569489
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000000B0000008FC2F56803BB50415C8FC275EE1E55417B14AE87FFBA5041B81E85CBD21E5541F6274E80FFBA50411C3CC138CA1E5541F6274E80FFBA504172BF50B4C21E5541C1A5A42C00BB5041B2211445B81E5541C1A5A42C00BB5041343C0631B01E5541C3F528CCFBBA504185EB5118B11E5541ECB1A73FFABA5041D51EC8FFC91E5541C745969BFABA5041D9F44731D71E5541000000B0FCBA5041713D0A87F01E55418FC2F56803BB50415C8FC275EE1E5541
+</a>
+
+<b>
+0106000000010000000103000000010000001400000014AE4731EFBA5041D7A370ADF41E5541000000B0FCBA5041713D0A87F01E5541FB9B06AEFABA5041D03EE611D81E5541C745969BFABA5041D7F44731D71E5541F6285CAFF9BA504100000020CB1E5541E0251DF3F9BA5041D6E724DDC71E5541EB6BC294FABA504150425D15C01E5541795D59E1FABA5041E3F5E3ADBC1E5541002E5584FBBA50419331626FB51E55413A1BB8D6FBBA5041CC4B6818B11E55417B14AE57F9BA5041713D0A57B11E5541ECD58005F9BA50418AD5C751B51E55413D0AD703F9BA504166666666B51E5541D943C9FAF8BA50419321D998B51E5541C3F528ACF6BA50413D0AD773C21E5541C92C68A3F6BA5041C5F3FA96C21E55419E70150BF4BA50413F28FD01CD1E55416E38B139F0BA5041C1AFDB85DC1E5541A675F668EFBA50413A081AA1E71E554114AE4731EFBA5041D7A370ADF41E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>466331 - 3569876
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000000B0000008FC2F56803BB50415C8FC275EE1E55417B14AE87FFBA5041B81E85CBD21E5541F6274E80FFBA50411C3CC138CA1E5541F6274E80FFBA504172BF50B4C21E5541C1A5A42C00BB5041B2211445B81E5541C1A5A42C00BB5041343C0631B01E5541C3F528CCFBBA504185EB5118B11E5541ECB1A73FFABA5041D51EC8FFC91E5541C745969BFABA5041D9F44731D71E5541000000B0FCBA5041713D0A87F01E55418FC2F56803BB50415C8FC275EE1E5541
+</a>
+
+<b>
+010600000001000000010300000001000000130000002346CDF9FEBA5041C9437414CA1E55419A9999F9FEBA504114AE4711CA1E5541713D0AE7FEBA50415C8FC2B5C21E5541D4CEE307FFBA50414770AC30C11E55415AF45447FFBA5041C71E3E41BE1E5541C797E45CFFBA5041716CDD41BD1E55416985EEC9FFBA5041FBC2D327B81E55410000005000BB5041EC51B85EB01E55411BDE3F5E00BB5041E704C15BB01E5541A35B6C6C00BB50415BD48EC4AF1E5541A94C4CF1FBBA50413F038697B01E5541F06BC294FABA504150425D15C01E5541E2251DF3F9BA5041D7E724DDC71E5541F6285CAFF9BA504100000020CB1E5541C745969BFABA5041D7F44731D71E5541000000B0FCBA5041713D0A87F01E55418FC2F56803BB50415C8FC275EE1E55417B14AE87FFBA5041B81E85CBD21E55412346CDF9FEBA5041C9437414CA1E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>897581 - 1167278
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000300000001030000000100000036000000A6B48C1057715141FDB72B8115A054415C36532857715141A7CEB43716A05441CF04F98657715141B0E15C0E19A0544167968F7557715141C23C513F17A05441D6FA277757715141C436A01A17A05441AE47E1DA57715141295C8F921BA054415C8FC2D5537151415C8FC25523A054417B14AEA750715141B81E854B26A0544152B81E355271514185EB514828A05441CDCCCC1C5371514114AE470129A054415C8FC2D5537151413333338329A054411F85EBE154715141F6285CDF29A05441F6285C6F56715141713D0A172AA05441E17A143E587151413D0AD7C329A0544152B81ED55971514148E17A5429A05441CDCCCCAC5B715141D7A3706D28A0544185EB51385C715141295C8FC228A054411F85EB216571514114AE47C124A05441D7A370CD6B71514185EB51081CA0544148E17A94727151410AD7A3A012A054419A9999297F715141CDCCCCAC03A0544133333353837151418FC2F5B8FE9F5441000000F08A71514185EB51B8F59F5441C3F528AC8B7151417B14AE87F49F54410AD7A3D091715141000000E0E99F5441295C8F429871514148E17A84DF9F544185EB51389C7151410AD7A390D89F54418FC2F5C89E715141D7A3708DD59F5441295C8F42A471514185EB51C8D09F54415C8FC2C5A871514133333343CE9F54415C8FC215A5715141713D0A07CB9F544114AE47D1A1715141295C8F12C59F5441666666D69E7151419A999919C09F5441000000309B7151419A999929C79F5441B81E85CB987151415C8FC2D5CA9F54415C8FC235957151411F85EB81CE9F5441A04866CC91715141AEDC021DD19F54418C17A27892715141F281242DD19F54419BAABB2C8D715141E6BEC2E5D79F5441BEB5D23D8B715141B88A1103DA9F5441CF22DB598771514109F8E685DE9F54418343AA7484715141294EB409E39F54419597960082715141B719FF41E79F5441062CB4097F71514173FDA797EB9F5441F069C8027E71514119B5D60AED9F54412AC713B77B715141BEDCBCE1EF9F544159E408FE777151412C057D68F49F5441E12D38F374715141E940ACBEF79F5441AEFCC53372715141DEF33D97FA9F54418E1F40006D7151414356221600A05441F245F9FE6771514125B5C76205A054417CB1E4D762715141A39180AF0AA0544145E17AF45C71514181DC6B2E10A05441A6B48C1057715141FDB72B8115A0544101030000000100000004000000124666CC91715141A1DE021DD19F544108B13B8F8C715141823A99F4D69F544168083FCF8E715141B2770A1AD59F5441124666CC91715141A1DE021DD19F544101030000000100000025000000458B9BEB56715141A9768C6514A05441B2FAF3E06471514139A9DCB706A05441D9CEF1196B715141B81C568E00A05441A101EF016C715141FC12F377FF9F544103C3808B6E715141B0A39591FC9F5441155CD2C06F7151413729219AFB9F54415632DE71717151414F0B9ED9F99F54419558104E7771514180EF2891F39F5441E2E747307871514180DEC73FF29F54417D76930E79715141BA4C7445F19F54412A2E341D7C715141298ADF89ED9F54415D5FA6DC7E715141E84A7101EA9F5441DA67BA8A82715141F2006A0AE49F5441DE7A141E897151413C0535CBDA9F544108B13B8F8C715141823A99F4D69F5441C3F5282C867151417B14AE37DC9F54410AD7A3808471514185EB5198DA9F544166666626807151418FC2F548DE9F5441F6285C5F7C7151413D0AD7C3E19F54411F85EB5177715141C3F5284CE69F54419A9999A975715141000000E0E79F5441C3F5281C63715141F6285CAFF59F5441B81E853B5071514148E17A7404A05441CDCCCC4C3D715141EC51B8EE11A05441C3F528DC3D715141000000A012A05441CDCCCC1C3F715141AE47E1BA12A054418FC2F58840715141F6285C5F13A0544185EB51884171514152B81E1514A05441B81E85AB42715141D7A3705D15A05441EC51B85E4671514114AE47A11AA0544185EB51B8487151410AD7A3B01DA05441000000A04E7151415C8FC2B518A054419A99997950715141666666A615A05441D7A3709D517151413D0AD70313A05441B81E859B53715141E17A14CE11A05441333333B35671514148E17AB412A05441458B9BEB56715141A9768C6514A05441
+</a>
+
+<b>
+01060000000100000001030000000100000036000000A4B48C1057715141FFB72B8115A054415E36532857715141A9CEB43716A05441CF04F98657715141ADE15C0E19A054416B968F7557715141BE3C513F17A05441DBFA277757715141C236A01A17A05441AE47E1DA57715141295C8F921BA054415C8FC2D5537151415C8FC25523A054417B14AEA750715141B81E854B26A0544152B81E355271514185EB514828A05441CDCCCC1C5371514114AE470129A054415C8FC2D5537151413333338329A054411F85EBE154715141F6285CDF29A05441F6285C6F56715141713D0A172AA05441E17A143E587151413D0AD7C329A0544152B81ED55971514148E17A5429A05441CDCCCCAC5B715141D7A3706D28A0544185EB51385C715141295C8FC228A054411F85EB216571514114AE47C124A05441D7A370CD6B71514185EB51081CA0544148E17A94727151410AD7A3A012A054419A9999297F715141CDCCCCAC03A0544133333353837151418FC2F5B8FE9F5441000000F08A71514185EB51B8F59F5441C3F528AC8B7151417B14AE87F49F54410AD7A3D091715141000000E0E99F5441295C8F429871514148E17A84DF9F544185EB51389C7151410AD7A390D89F54418FC2F5C89E715141D7A3708DD59F5441295C8F42A471514185EB51C8D09F54415C8FC2C5A871514133333343CE9F54415C8FC215A5715141713D0A07CB9F544114AE47D1A1715141295C8F12C59F5441666666D69E7151419A999919C09F5441000000309B7151419A999929C79F5441B81E85CB987151415C8FC2D5CA9F54415C8FC235957151411F85EB81CE9F54419F4866CC91715141A9DC021DD19F54418D17A27892715141F581242DD19F54419BAABB2C8D715141E2BEC2E5D79F5441BAB5D23D8B715141B78A1103DA9F5441D122DB598771514107F8E685DE9F54418043AA7484715141264EB409E39F54419197960082715141BC19FF41E79F5441022CB4097F71514175FDA797EB9F5441F169C8027E71514118B5D60AED9F544127C713B77B715141C0DCBCE1EF9F544155E408FE777151412F057D68F49F5441E42D38F374715141E640ACBEF79F5441AFFCC53372715141E1F33D97FA9F54418B1F40006D7151414156221600A05441F245F9FE6771514120B5C76205A054417BB1E4D762715141A09180AF0AA0544148E17AF45C7151417DDC6B2E10A05441A4B48C1057715141FFB72B8115A05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>897581 - 3406634
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000300000001030000000100000036000000A6B48C1057715141FDB72B8115A054415C36532857715141A7CEB43716A05441CF04F98657715141B0E15C0E19A0544167968F7557715141C23C513F17A05441D6FA277757715141C436A01A17A05441AE47E1DA57715141295C8F921BA054415C8FC2D5537151415C8FC25523A054417B14AEA750715141B81E854B26A0544152B81E355271514185EB514828A05441CDCCCC1C5371514114AE470129A054415C8FC2D5537151413333338329A054411F85EBE154715141F6285CDF29A05441F6285C6F56715141713D0A172AA05441E17A143E587151413D0AD7C329A0544152B81ED55971514148E17A5429A05441CDCCCCAC5B715141D7A3706D28A0544185EB51385C715141295C8FC228A054411F85EB216571514114AE47C124A05441D7A370CD6B71514185EB51081CA0544148E17A94727151410AD7A3A012A054419A9999297F715141CDCCCCAC03A0544133333353837151418FC2F5B8FE9F5441000000F08A71514185EB51B8F59F5441C3F528AC8B7151417B14AE87F49F54410AD7A3D091715141000000E0E99F5441295C8F429871514148E17A84DF9F544185EB51389C7151410AD7A390D89F54418FC2F5C89E715141D7A3708DD59F5441295C8F42A471514185EB51C8D09F54415C8FC2C5A871514133333343CE9F54415C8FC215A5715141713D0A07CB9F544114AE47D1A1715141295C8F12C59F5441666666D69E7151419A999919C09F5441000000309B7151419A999929C79F5441B81E85CB987151415C8FC2D5CA9F54415C8FC235957151411F85EB81CE9F5441A04866CC91715141AEDC021DD19F54418C17A27892715141F281242DD19F54419BAABB2C8D715141E6BEC2E5D79F5441BEB5D23D8B715141B88A1103DA9F5441CF22DB598771514109F8E685DE9F54418343AA7484715141294EB409E39F54419597960082715141B719FF41E79F5441062CB4097F71514173FDA797EB9F5441F069C8027E71514119B5D60AED9F54412AC713B77B715141BEDCBCE1EF9F544159E408FE777151412C057D68F49F5441E12D38F374715141E940ACBEF79F5441AEFCC53372715141DEF33D97FA9F54418E1F40006D7151414356221600A05441F245F9FE6771514125B5C76205A054417CB1E4D762715141A39180AF0AA0544145E17AF45C71514181DC6B2E10A05441A6B48C1057715141FDB72B8115A0544101030000000100000004000000124666CC91715141A1DE021DD19F544108B13B8F8C715141823A99F4D69F544168083FCF8E715141B2770A1AD59F5441124666CC91715141A1DE021DD19F544101030000000100000025000000458B9BEB56715141A9768C6514A05441B2FAF3E06471514139A9DCB706A05441D9CEF1196B715141B81C568E00A05441A101EF016C715141FC12F377FF9F544103C3808B6E715141B0A39591FC9F5441155CD2C06F7151413729219AFB9F54415632DE71717151414F0B9ED9F99F54419558104E7771514180EF2891F39F5441E2E747307871514180DEC73FF29F54417D76930E79715141BA4C7445F19F54412A2E341D7C715141298ADF89ED9F54415D5FA6DC7E715141E84A7101EA9F5441DA67BA8A82715141F2006A0AE49F5441DE7A141E897151413C0535CBDA9F544108B13B8F8C715141823A99F4D69F5441C3F5282C867151417B14AE37DC9F54410AD7A3808471514185EB5198DA9F544166666626807151418FC2F548DE9F5441F6285C5F7C7151413D0AD7C3E19F54411F85EB5177715141C3F5284CE69F54419A9999A975715141000000E0E79F5441C3F5281C63715141F6285CAFF59F5441B81E853B5071514148E17A7404A05441CDCCCC4C3D715141EC51B8EE11A05441C3F528DC3D715141000000A012A05441CDCCCC1C3F715141AE47E1BA12A054418FC2F58840715141F6285C5F13A0544185EB51884171514152B81E1514A05441B81E85AB42715141D7A3705D15A05441EC51B85E4671514114AE47A11AA0544185EB51B8487151410AD7A3B01DA05441000000A04E7151415C8FC2B518A054419A99997950715141666666A615A05441D7A3709D517151413D0AD70313A05441B81E859B53715141E17A14CE11A05441333333B35671514148E17AB412A05441458B9BEB56715141A9768C6514A05441
+</a>
+
+<b>
+01060000000100000001030000000100000036000000A4B48C1057715141FFB72B8115A054415E36532857715141A9CEB43716A05441CF04F98657715141ADE15C0E19A054416B968F7557715141BE3C513F17A05441DBFA277757715141C236A01A17A05441AE47E1DA57715141295C8F921BA054415C8FC2D5537151415C8FC25523A054417B14AEA750715141B81E854B26A0544152B81E355271514185EB514828A05441CDCCCC1C5371514114AE470129A054415C8FC2D5537151413333338329A054411F85EBE154715141F6285CDF29A05441F6285C6F56715141713D0A172AA05441E17A143E587151413D0AD7C329A0544152B81ED55971514148E17A5429A05441CDCCCCAC5B715141D7A3706D28A0544185EB51385C715141295C8FC228A054411F85EB216571514114AE47C124A05441D7A370CD6B71514185EB51081CA0544148E17A94727151410AD7A3A012A054419A9999297F715141CDCCCCAC03A0544133333353837151418FC2F5B8FE9F5441000000F08A71514185EB51B8F59F5441C3F528AC8B7151417B14AE87F49F54410AD7A3D091715141000000E0E99F5441295C8F429871514148E17A84DF9F544185EB51389C7151410AD7A390D89F54418FC2F5C89E715141D7A3708DD59F5441295C8F42A471514185EB51C8D09F54415C8FC2C5A871514133333343CE9F54415C8FC215A5715141713D0A07CB9F544114AE47D1A1715141295C8F12C59F5441666666D69E7151419A999919C09F5441000000309B7151419A999929C79F5441B81E85CB987151415C8FC2D5CA9F54415C8FC235957151411F85EB81CE9F54419F4866CC91715141A9DC021DD19F54418D17A27892715141F581242DD19F54419BAABB2C8D715141E2BEC2E5D79F5441BAB5D23D8B715141B78A1103DA9F5441D122DB598771514107F8E685DE9F54418043AA7484715141264EB409E39F54419197960082715141BC19FF41E79F5441022CB4097F71514175FDA797EB9F5441F169C8027E71514118B5D60AED9F544127C713B77B715141C0DCBCE1EF9F544155E408FE777151412F057D68F49F5441E42D38F374715141E640ACBEF79F5441AFFCC53372715141E1F33D97FA9F54418B1F40006D7151414156221600A05441F245F9FE6771514120B5C76205A054417BB1E4D762715141A09180AF0AA0544148E17AF45C7151417DDC6B2E10A05441A4B48C1057715141FFB72B8115A05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>586115 - 1085345
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000047000000A4703D6A0A425141000000A0876C54415C8FC2850C4251411F85EB81806C544114AE47510E4251415C8FC2A57B6C5441CDCCCC2C10425141D7A3700D786C54415C8FC21512425141EC51B88E756C5441333333831442514148E17A24736C5441C3F528EC154251419A999919726C54413C7264C7164251418A013277716C54418650CF691242514153D6DDB86D6C54417A013B300F4251416A41F1496C6C5441E2FC1CAE0C42514144C069A96B6C5441734066A209425141A72D8C7B6B6C5441C95EF43A0642514190C278EA6C6C544128D22155FF415141D736C87F706C5441BBDC4A1FFB415141AB278133726C5441C331EAA0F74151410CCEC32F736C54411EDE37E5F1415141CFE128FE736C5441D869E84FEE41514158D0D270746C5441E17A14FEEA415141C3F528CC736C5441E17A14DEDD415141E17A14DE756C5441E17A146EDF4151419A9999C97F6C54415C8FC275E1415141C3F528DC866C5441CDCCCC5CE141514152B81E85886C54415C8FC27500425141C3F5281C7F6C54410000004000425141E17A142E806C54415C8FC255004251411F85EBA1816C5441F6285C6F00425141AE47E19A826C544148E17A94004251413D0AD7A3846C5441EC51B8CE00425141B81E853B876C54419A9999C900425141C3F528CC896C5441B81E85BB0042514114AE47818C6C54411F85EBA100425141000000408E6C5441E17A146E00425141295C8F228F6C54417B14AE270042514133333363906C5441E17A14AEFF41514133333313916C5441333333C3FE41514133333333926C54410AD7A3B0FD415141A4703D5A936C544100000000FD41514100000070946C5441713D0AD7E4415141000000F0A06C5441EC51B81EE341514148E17AA4A06C54413D0AD7F3E0415141E17A149EA06C5441713D0AF7DF41514148E17A84A06C5441713D0AC7D941514185EB51389F6C5441D7A3707DDD415141C3F5280CA56C54419A999969DE41514185EB5118AA6C5441F6285CBFDE41514185EB5128AC6C54418FC2F568DF415141CDCCCCACB06C544185EB5128D5415141D7A3706DB26C544152B81EC5CA41514114AE4721B46C5441000000F0CE4151419A999969B56C54411F85EB21F24151410AD7A310B96C544114AE47D103425141333333F3BB6C5441295C8F6204425141C3F528ACBA6C54418FC2F5480442514152B81E45B96C5441CDCCCCBC0342514152B81E55B86C54410AD7A3E0024251418FC2F5C8B76C54410AD7A3D0FE415141CDCCCC3CB76C5441CDCCCC8CF74151418FC2F578B76C54418FC2F5E8F54151418FC2F528B76C54417B14AE07F641514152B81E45B56C544152B81E55F8415141CDCCCC3CAD6C54410AD7A390F84151410AD7A320AB6C54410AD7A330F941514152B81E05A96C544114AE4711FB4151418FC2F5C8A56C5441AE47E11A084251410AD7A3B0A56C54415C8FC235084251411F85EBF1A26C5441713D0A87074251415C8FC275986C54413D0AD7B3004251418FC2F598976C54411F85EBD1014251413D0AD713936C5441EC51B80E0742514114AE47A18B6C5441A4703D6A0A425141000000A0876C5441
+</a>
+
+<b>
+0106000000010000000103000000010000002C000000D5CCCC5CE141514150B81E85886C54419A9999A9E04151419A9999498B6C5441EC51B85EDA415141EC51B81E8A6C544133333353D7415141295C8FF2886C5441AE47E10AD44151410AD7A320886C544152B81EC5CE415141295C8F02886C544133333313CC415141CDCCCC6C876C5441A4703D3ACB4151415C8FC2A5876C544152B81E45CB415141713D0A178A6C5441713D0A67CB415141CDCCCC6C8E6C544185EB51C8CB415141E17A147E906C5441E17A147ECC415141A4703D1A956C544133333363CC415141713D0A17986C54419A999979CB415141B81E85AB9E6C5441AE47E17ACB415141295C8F929F6C54411F85EB91CB41514185EB5128A06C5441713D0AC7D941514185EB51389F6C5441713D0AF7DF41514148E17A84A06C54413D0AD7F3E0415141E17A149EA06C5441EC51B81EE341514148E17AA4A06C5441713D0AD7E4415141000000F0A06C544100000000FD41514100000070946C54410AD7A3B0FD415141A4703D5A936C5441333333C3FE41514133333333926C5441E17A14AEFF41514133333313916C54417B14AE270042514133333363906C5441E17A146E00425141295C8F228F6C54411F85EBA100425141000000408E6C5441B81E85BB0042514114AE47818C6C54419A9999C900425141C3F528CC896C5441EC51B8CE00425141B81E853B876C544148E17A94004251413D0AD7A3846C5441F6285C6F00425141AE47E19A826C54415C8FC255004251411F85EBA1816C54410000004000425141E17A142E806C54415C8FC27500425141C3F5281C7F6C5441DD8ADD2B00425141C22F85327F6C5441E048C7F6FF4151417781E9CB756C5441992987E4FF4151418B73A603746C54417EEF4AF7DE415141E87B71D77C6C5441A1E7FD40DF415141411958AB7E6C5441E17A146EDF4151419A9999C97F6C54415C8FC275E1415141C3F528DC866C5441D5CCCC5CE141514150B81E85886C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>586115 - 3386085
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000047000000A4703D6A0A425141000000A0876C54415C8FC2850C4251411F85EB81806C544114AE47510E4251415C8FC2A57B6C5441CDCCCC2C10425141D7A3700D786C54415C8FC21512425141EC51B88E756C5441333333831442514148E17A24736C5441C3F528EC154251419A999919726C54413C7264C7164251418A013277716C54418650CF691242514153D6DDB86D6C54417A013B300F4251416A41F1496C6C5441E2FC1CAE0C42514144C069A96B6C5441734066A209425141A72D8C7B6B6C5441C95EF43A0642514190C278EA6C6C544128D22155FF415141D736C87F706C5441BBDC4A1FFB415141AB278133726C5441C331EAA0F74151410CCEC32F736C54411EDE37E5F1415141CFE128FE736C5441D869E84FEE41514158D0D270746C5441E17A14FEEA415141C3F528CC736C5441E17A14DEDD415141E17A14DE756C5441E17A146EDF4151419A9999C97F6C54415C8FC275E1415141C3F528DC866C5441CDCCCC5CE141514152B81E85886C54415C8FC27500425141C3F5281C7F6C54410000004000425141E17A142E806C54415C8FC255004251411F85EBA1816C5441F6285C6F00425141AE47E19A826C544148E17A94004251413D0AD7A3846C5441EC51B8CE00425141B81E853B876C54419A9999C900425141C3F528CC896C5441B81E85BB0042514114AE47818C6C54411F85EBA100425141000000408E6C5441E17A146E00425141295C8F228F6C54417B14AE270042514133333363906C5441E17A14AEFF41514133333313916C5441333333C3FE41514133333333926C54410AD7A3B0FD415141A4703D5A936C544100000000FD41514100000070946C5441713D0AD7E4415141000000F0A06C5441EC51B81EE341514148E17AA4A06C54413D0AD7F3E0415141E17A149EA06C5441713D0AF7DF41514148E17A84A06C5441713D0AC7D941514185EB51389F6C5441D7A3707DDD415141C3F5280CA56C54419A999969DE41514185EB5118AA6C5441F6285CBFDE41514185EB5128AC6C54418FC2F568DF415141CDCCCCACB06C544185EB5128D5415141D7A3706DB26C544152B81EC5CA41514114AE4721B46C5441000000F0CE4151419A999969B56C54411F85EB21F24151410AD7A310B96C544114AE47D103425141333333F3BB6C5441295C8F6204425141C3F528ACBA6C54418FC2F5480442514152B81E45B96C5441CDCCCCBC0342514152B81E55B86C54410AD7A3E0024251418FC2F5C8B76C54410AD7A3D0FE415141CDCCCC3CB76C5441CDCCCC8CF74151418FC2F578B76C54418FC2F5E8F54151418FC2F528B76C54417B14AE07F641514152B81E45B56C544152B81E55F8415141CDCCCC3CAD6C54410AD7A390F84151410AD7A320AB6C54410AD7A330F941514152B81E05A96C544114AE4711FB4151418FC2F5C8A56C5441AE47E11A084251410AD7A3B0A56C54415C8FC235084251411F85EBF1A26C5441713D0A87074251415C8FC275986C54413D0AD7B3004251418FC2F598976C54411F85EBD1014251413D0AD713936C5441EC51B80E0742514114AE47A18B6C5441A4703D6A0A425141000000A0876C5441
+</a>
+
+<b>
+0106000000010000000103000000010000002C000000D5CCCC5CE141514150B81E85886C54419A9999A9E04151419A9999498B6C5441EC51B85EDA415141EC51B81E8A6C544133333353D7415141295C8FF2886C5441AE47E10AD44151410AD7A320886C544152B81EC5CE415141295C8F02886C544133333313CC415141CDCCCC6C876C5441A4703D3ACB4151415C8FC2A5876C544152B81E45CB415141713D0A178A6C5441713D0A67CB415141CDCCCC6C8E6C544185EB51C8CB415141E17A147E906C5441E17A147ECC415141A4703D1A956C544133333363CC415141713D0A17986C54419A999979CB415141B81E85AB9E6C5441AE47E17ACB415141295C8F929F6C54411F85EB91CB41514185EB5128A06C5441713D0AC7D941514185EB51389F6C5441713D0AF7DF41514148E17A84A06C54413D0AD7F3E0415141E17A149EA06C5441EC51B81EE341514148E17AA4A06C5441713D0AD7E4415141000000F0A06C544100000000FD41514100000070946C54410AD7A3B0FD415141A4703D5A936C5441333333C3FE41514133333333926C5441E17A14AEFF41514133333313916C54417B14AE270042514133333363906C5441E17A146E00425141295C8F228F6C54411F85EBA100425141000000408E6C5441B81E85BB0042514114AE47818C6C54419A9999C900425141C3F528CC896C5441EC51B8CE00425141B81E853B876C544148E17A94004251413D0AD7A3846C5441F6285C6F00425141AE47E19A826C54415C8FC255004251411F85EBA1816C54410000004000425141E17A142E806C54415C8FC27500425141C3F5281C7F6C5441DD8ADD2B00425141C22F85327F6C5441E048C7F6FF4151417781E9CB756C5441992987E4FF4151418B73A603746C54417EEF4AF7DE415141E87B71D77C6C5441A1E7FD40DF415141411958AB7E6C5441E17A146EDF4151419A9999C97F6C54415C8FC275E1415141C3F528DC866C5441D5CCCC5CE141514150B81E85886C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>983083 - 1085726
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000130000009A999939334A5141B81E85AB867154419A999929294A5141CDCCCC6C87715441F6285C1F224A5141CDCCCC3C88715441A4703DEA264A514114AE4731A071544114AE47A1284A514152B81EC5A8715441B81E85DB284A514133333303AA715441333333B32C4A514148E17AB4BC715441713D0AD72E4A5141EC51B80EC0715441295C8F12374A51411F85EB71C67154411F85EB113D4A51418FC2F518CB715441000000A0434A51419A9999A9C871544148E17AF4404A5141E17A14BE9B71544185EB51183E4A514148E17AA46B715441E17A14DE3C4A514152B81EB56C715441AE47E15A3B4A514148E17A046E715441000000603A4A5141333333736E715441E17A144E394A5141333333237D7154415C8FC275364A5141D7A3706D867154419A999939334A5141B81E85AB86715441
+</a>
+
+<b>
+010600000001000000010300000001000000130000009A999939334A5141B81E85AB867154419A999929294A5141CDCCCC6C87715441F6285C1F224A5141CDCCCC3C887154415A8E9C84264A514182029E329D71544115555E83274A51413049252FA3715441B81E85DB284A514133333303AA715441333333B32C4A514148E17AB4BC715441713D0AD72E4A5141EC51B80EC0715441295C8F12374A51411F85EB71C67154411F85EB113D4A51418FC2F518CB715441000000A0434A51419A9999A9C871544148E17AF4404A5141E17A14BE9B71544185EB51183E4A514148E17AA46B715441E17A14DE3C4A514152B81EB56C715441AE47E15A3B4A514148E17A046E715441000000603A4A5141333333736E715441E17A144E394A5141333333237D7154415C8FC275364A5141D7A3706D867154419A999939334A5141B81E85AB86715441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>983083 - 3187429
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000130000009A999939334A5141B81E85AB867154419A999929294A5141CDCCCC6C87715441F6285C1F224A5141CDCCCC3C88715441A4703DEA264A514114AE4731A071544114AE47A1284A514152B81EC5A8715441B81E85DB284A514133333303AA715441333333B32C4A514148E17AB4BC715441713D0AD72E4A5141EC51B80EC0715441295C8F12374A51411F85EB71C67154411F85EB113D4A51418FC2F518CB715441000000A0434A51419A9999A9C871544148E17AF4404A5141E17A14BE9B71544185EB51183E4A514148E17AA46B715441E17A14DE3C4A514152B81EB56C715441AE47E15A3B4A514148E17A046E715441000000603A4A5141333333736E715441E17A144E394A5141333333237D7154415C8FC275364A5141D7A3706D867154419A999939334A5141B81E85AB86715441
+</a>
+
+<b>
+010600000001000000010300000001000000130000009A999939334A5141B81E85AB867154419A999929294A5141CDCCCC6C87715441F6285C1F224A5141CDCCCC3C887154415A8E9C84264A514182029E329D71544115555E83274A51413049252FA3715441B81E85DB284A514133333303AA715441333333B32C4A514148E17AB4BC715441713D0AD72E4A5141EC51B80EC0715441295C8F12374A51411F85EB71C67154411F85EB113D4A51418FC2F518CB715441000000A0434A51419A9999A9C871544148E17AF4404A5141E17A14BE9B71544185EB51183E4A514148E17AA46B715441E17A14DE3C4A514152B81EB56C715441AE47E15A3B4A514148E17A046E715441000000603A4A5141333333736E715441E17A144E394A5141333333237D7154415C8FC275364A5141D7A3706D867154419A999939334A5141B81E85AB86715441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>630579 - 423438
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000002000000F70000003D0AD7135F1C514152B81EE5A32C55411F85EBE15F1C5141713D0AC7A32C5541B81E852B611C5141A4703DCAA32C554114AE4761621C514114AE47E1A32C554133333343631C5141B81E85EBA32C55415C8FC285641C5141B81E85EBA22C55418FC2F518661C514133333373A12C554185EB5108671C5141D7A3708DA02C554185EB5158681C5141F6285C1F9F2C5541C3F5280C691C51411F85EB619E2C55411F85EBA1691C5141295C8F729D2C5541E17A148E6A1C5141CDCCCCEC9B2C55415C8FC2056B1C514152B81E259B2C5541295C8F526B1C51413D0AD7539A2C5541AE47E18A6B1C51413D0AD763992C5541B81E85EB6B1C514148E17AD4972C55418FC2F5486C1C5141AE47E12A962C554148E17A246D1C5141333333C3932C5541AE47E17A6E1C51418FC2F5C8902C554152B81E256F1C5141A4703D4A8F2C5541333333A36F1C51418FC2F5D88D2C55411F85EB21701C5141713D0A578C2C5541CDCCCC9C701C5141D7A370BD8A2C554133333343711C51411F85EBE1882C55411F85EB11721C5141F6285CFF862C5541F6285C1F731C5141666666C6842C5541A4703D8A741C51418FC2F528822C554100000030771C51413D0AD753802C554185EB5188791C5141B81E85AB7F2C55417B14AE677B1C5141C3F528FC812C554114AE47017C1C5141B81E851B842C55413D0AD7537D1C5141AE47E1AA842C554114AE47517E1C51418FC2F578832C5541AE47E1AA7F1C5141F6285C9F812C55419A9999D9801C5141713D0A577E2C5541AE47E14A811C51413D0AD7937C2C55417B14AE27811C51411F85EBA17B2C5541C3F5282C7D1C514185EB51287A2C55410AD7A3C0791C51413D0AD7F3772C554114AE4781771C5141AE47E18A772C55419A999909751C51418FC2F588792C5541AE47E1CA711C51413D0AD7037B2C5541EC51B84E6D1C514185EB51C8802C5541E17A143E6B1C5141C3F5289C812C55418FC2F5E8651C5141A4703D3A7C2C5541295C8FD2621C5141AE47E1CA7D2C5541A4703DDA5F1C514114AE47E1772C5541CDCCCC6C5E1C51419A9999D9772C5541666666E65D1C5141295C8F42782C5541295C8F825D1C51413D0AD773782C5541333333235D1C5141F6285C9F782C5541E17A14CE5C1C5141CDCCCCDC782C554114AE47715C1C5141D7A3700D792C5541E17A141E5C1C51418FC2F538792C554152B81ED55B1C5141EC51B86E792C554114AE47515B1C5141F6285CDF792C5541AE47E1AA5A1C51418FC2F5587A2C55410AD7A3705A1C514152B81EA57A2C5541B81E856B5A1C51415C8FC2D57A2C5541295C8F925A1C514114AE47217B2C5541CDCCCC9C5A1C5141C3F5285C7B2C5541CDCCCC9C5A1C5141295C8FC27B2C5541666666865A1C514148E17A047C2C5541713D0A675A1C5141E17A142E7C2C554185EB51385A1C5141C3F5285C7C2C55413D0AD7035A1C5141F6285C7F7C2C5541AE47E19A591C5141D7A3709D7C2C5541EC51B80E571C5141CDCCCCAC7E2C554166666606561C5141C3F528AC7F2C5541CDCCCCEC541C5141EC51B8DE802C5541EC51B87E531C5141713D0AE7812C55413D0AD7E3511C5141713D0A27852C5541E17A149E501C514166666676872C55410AD7A3804E1C5141B81E855B8B2C55418FC2F5984D1C51417B14AE278D2C5541EC51B8FE4E1C51419A999909912C55417B14AEB74D1C514152B81EE5922C55419A9999294D1C5141C3F528DC932C5541000000804D1C5141D7A370BD952C55419A9999894E1C51419A9999D9962C55410AD7A3704E1C5141713D0A27982C55415C8FC2E54C1C514185EB5158982C5541D7A370BD4B1C51415C8FC235972C5541D7A3707D481C514133333363932C554185EB51D8471C5141295C8F72932C5541E17A145E471C5141A4703D8A932C5541A4703D9A461C5141333333F3932C55417B14AE77451C5141AE47E18A942C554100000070441C51418FC2F518952C5541CDCCCCFC431C514148E17A74952C5541F6285CAF431C5141666666D6952C554114AE4761431C5141A4703D5A962C554100000010431C5141EC51B81E972C554185EB51B8421C5141F6285C1F982C55410AD7A360421C514114AE4771992C55413D0AD7B3411C5141B81E854B9C2C55417B14AE07411C5141C3F528AC9E2C5541C3F528AC401C51413D0AD7F39F2C5541C3F5287C3F1C514185EB51189F2C5541295C8F123E1C5141B81E85EB9D2C5541CDCCCC7C3C1C5141713D0AA79C2C5541AE47E1BA3A1C5141B81E851B9B2C5541333333B3391C5141B81E852B9A2C5541CDCCCCFC381C51418FC2F588992C55418FC2F578381C5141D7A370ED982C55418FC2F558371C5141D7A370FD982C5541EC51B88E361C5141333333D3992C55411F85EB51361C5141AE47E15A9A2C5541713D0A37361C51413D0AD7C39A2C5541CDCCCC2C361C51419A9999399B2C5541CDCCCC2C361C514185EB51089C2C5541713D0A37361C5141AE47E1EA9C2C5541D7A3703D361C51418FC2F5B89D2C55419A999929361C5141666666769E2C55417B14AE07361C5141713D0A379F2C554114AE47D1351C51411F85EB41A02C5541A4703D8A351C5141D7A3708DA12C5541CDCCCC3C351C5141E17A148EA22C5541295C8FF2341C514166666666A32C554148E17AA4341C51413D0AD723A42C5541B81E853B341C5141A4703DDAA42C5541CDCCCCDC331C514133333343A52C5541EC51B84E331C5141000000C0A52C554148E17AC4321C51410AD7A340A62C5541CDCCCC6C321C5141CDCCCCACA62C55418FC2F528321C514133333323A72C5541A4703D0A321C514185EB5188A72C554185EB51E8311C5141E17A142EA82C5541A4703DCA311C51410AD7A310A92C5541295C8FB2311C5141666666B6A92C55417B14AE97311C5141713D0A37AA2C5541EC51B86E311C5141666666A6AA2C554166666646311C51415C8FC215AB2C5541C3F528FC301C5141D7A370DDAB2C5541B81E857B301C5141C3F528ECAC2C55415C8FC215301C51415C8FC2A5AD2C55418FC2F5582F1C5141C3F528CCAE2C554185EB51982E1C5141B81E85EBAF2C55413D0AD7D32D1C514152B81EE5B02C55419A9999492D1C514114AE47C1B12C554185EB51F82C1C51415C8FC255B22C554114AE47B12C1C5141EC51B8FEB22C55411F85EB812C1C51411F85EBB1B32C5541EC51B80E2C1C51411F85EB11B52C55411F85EBD12B1C5141000000E0B52C554152B81E952B1C5141C3F5288CB62C554152B81E552B1C5141E17A141EB72C5541E17A140E2B1C51415C8FC275B72C5541F6285CCF2A1C5141666666B6B72C5541EC51B89E2A1C514185EB51E8B72C55415C8FC2352A1C51415C8FC265B82C5541713D0AD7291C5141295C8FE2B82C554100000090291C5141295C8F52B92C55413D0AD7532A1C514114AE47F1B92C554152B81EA52A1C514185EB5138BA2C5541EC51B8DE2A1C5141F6285C7FBA2C5541713D0A072B1C514185EB51E8BA2C554148E17A142B1C5141EC51B82EBB2C5541295C8F222B1C514100000080BB2C5541295C8F222B1C51418FC2F5E8BB2C5541295C8F222B1C51419A999969BC2C55415C8FC2252B1C514114AE4701BD2C5541333333332B1C514185EB51B8BD2C5541AE47E14A2B1C5141C3F5283CBE2C5541000000702B1C51418FC2F5B8BE2C5541295C8FA22B1C51411F85EB21BF2C55418FC2F5D82B1C51410AD7A380BF2C55415C8FC2152C1C5141F6285CDFBF2C5541295C8F522C1C514166666626C02C5541AE47E17A2C1C51419A999969C02C55418FC2F5882C1C5141C3F5289CC02C554152B81E852C1C5141CDCCCCDCC02C55419A9999592C1C514166666616C12C5541713D0AF72B1C51413D0AD763C12C55417B14AEC72B1C5141D7A3709DC12C554148E17AC42B1C51415C8FC2C5C12C5541EC51B8CE2B1C514152B81EF5C12C5541D7A370ED2B1C51419A999949C22C554185EB51082C1C5141AE47E19AC22C5541EC51B80E2C1C514166666636C32C5541333333232C1C514166666676C32C5541E17A143E2C1C5141CDCCCCACC32C5541D7A3706D2C1C51413D0AD7F3C32C55411F85EB812C1C51410AD7A330C42C55419A9999992C1C514185EB5188C42C5541E17A14AE2C1C51413D0AD7E3C42C55418FC2F5C82C1C514152B81E35C52C5541333333132D1C5141A4703D9AC52C55417B14AE972D1C5141000000D0C22C554185EB51C82E1C514148E17A24BD2C5541CDCCCC1C2E1C51410AD7A3C0BC2C554114AE47C12D1C5141CDCCCC5CBC2C554185EB51582D1C514152B81ED5BB2C5541000000F02C1C5141713D0A57BB2C55413D0AD7932C1C514185EB51D8BA2C5541295C8F522C1C5141295C8F62BA2C554114AE47112C1C514185EB51B8B92C55415C8FC2E52B1C5141EC51B80EB92C554114AE47B12B1C5141EC51B81EB82C554114AE47E12B1C5141A4703D8AB72C5541295C8FB22C1C514133333313B62C554185EB51582D1C51411F85EBE1B42C55410AD7A3802E1C51413D0AD7B3B22C5541F6285CBF2F1C5141A4703D5AB02C55410AD7A3C0301C514148E17A64AE2C554148E17AB4311C5141F6285C6FAC2C5541A4703DEA321C514114AE4711AA2C55418FC2F598331C5141E17A14CEA82C5541295C8FD2341C514114AE4781A92C5541B81E850B351C514114AE47B1A92C5541CDCCCCAC361C514152B81E55A72C554148E17AC4371C51411F85EBB1A52C554148E17AD4381C5141000000E0A52C554114AE4731371C5141EC51B83EAA2C554152B81E75361C5141C3F5283CAD2C5541CDCCCC9C361C5141E17A141EB12C5541AE47E1BA361C5141C3F5285CB52C55419A9999A9361C5141A4703D8AB72C5541F6285C8F361C51418FC2F5F8B82C55413D0AD763361C514148E17AE4B92C554152B81E45361C514114AE4781BA2C554152B81E15361C514100000000BB2C554185EB51D8351C5141295C8F82BB2C5541B81E85EB361C5141EC51B81EBC2C554152B81EB5371C51417B14AEF7BB2C5541B81E859B381C51413D0AD773BB2C5541AE47E1AA381C51411F85EB41BA2C5541A4703DBA381C51411F85EB61B92C5541D7A370ED381C5141E17A145EB82C55419A999939391C5141F6285CEFB62C5541D7A3705D391C5141CDCCCC3CB62C55415C8FC2B5391C5141713D0A77AF2C55413D0AD7F3391C5141C3F528BCAD2C5541C3F528FC3A1C514152B81E85AB2C5541C3F5280C3C1C51411F85EBE1AA2C5541CDCCCC0C3D1C5141713D0A47AB2C554152B81EF53B1C514100000050AF2C5541F6285C3F3C1C5141A4703DAAB02C554133333333471C5141C3F528ACAE2C55417B14AE77561C514152B81E75AC2C5541333333C3561C51418FC2F5B8AA2C554148E17AA4571C5141B81E859BA92C5541B81E85BB581C5141C3F5281CA92C554114AE47C1581C5141CDCCCCBCA52C554185EB51A85A1C514114AE4721A52C5541E17A148E5D1C5141295C8F52A42C55413D0AD7135F1C514152B81EE5A32C554120000000EC51B83E691C5141A4703D8A8C2C55411F85EB616A1C5141CDCCCC5C8C2C5541EC51B8CE6A1C514148E17A648D2C554148E17A346A1C514152B81EC58F2C55413D0AD7E3681C5141F6285C6F922C5541713D0A77681C514133333323942C5541AE47E1DA681C514185EB5158952C5541B81E859B681C5141713D0A57962C55415C8FC255661C514185EB5128972C55419A9999E9641C514114AE47C1982C5541333333F3641C514114AE47119A2C554185EB5128661C5141333333A39A2C55419A9999B9661C51411F85EB619B2C55415C8FC255661C5141C3F5283C9C2C5541A4703DAA641C5141EC51B80E9C2C5541EC51B83E631C51411F85EB219B2C5541B81E853B5F1C51410AD7A3B0972C5541AE47E17A5F1C5141B81E857B962C55410AD7A3A05E1C514166666606952C55411F85EB215E1C51418FC2F588932C5541E17A145E601C5141F6285C9F902C5541333333D3611C5141AE47E12A8F2C5541E17A143E641C5141295C8FD28B2C55418FC2F568651C5141713D0A178A2C5541C3F5284C661C5141AE47E19A872C5541C3F5281C681C5141EC51B8DE842C5541000000106A1C5141000000E0832C554114AE47E16A1C514100000070852C55415C8FC235691C51413D0AD7A3872C554185EB5178671C5141F6285C9F8A2C5541C3F528DC671C5141000000B08B2C5541EC51B83E691C5141A4703D8A8C2C5541
+</a>
+
+<b>
+010600000001000000010300000001000000260000000778F990331C5141500BDADCA82C5541A1DE5A83331C51414B9D0BF6A82C55418DEB2379331C5141B9CAF008A92C55414CD072AA311C5141FCD6F983AC2C55410AD7A3C0301C514148E17A64AE2C5541F6285CBF2F1C5141A4703D5AB02C55410AD7A3802E1C51413D0AD7B3B22C554185EB51582D1C51411F85EBE1B42C55415CA2EFCB2C1C5141F10477E4B52C5541F9377CC72B1C5141A82508DAB72C554114AE47B12B1C5141EC51B81EB82C55415C8FC2E52B1C5141EC51B80EB92C5541B50DE8102C1C51411342DDB6B92C5541EF52B2D52C1C51417A6FDF32BB2C5541000000F02C1C5141713D0A57BB2C554185EB51582D1C514152B81ED5BB2C554151F6B1842D1C514110A77B0EBC2C5541859DBD3F2E1C51414168B9CEBC2C5541DFAAA5C4301C514187476CE9BD2C5541308A58DF311C5141B6A95399BA2C554130E6385B331C5141425B6F53BE2C55411463F014351C51415F0C63ABBC2C554177B8A1FA351C514154B0822FBB2C554115BFD090361C5141030CC5A1B82C55410BED7BA2361C5141096E22F9B32C554150BDFD93361C514108DA6E41B02C55411DBCC692361C514195AF0023B02C554159E82775361C514143180F3DAD2C55414D0057AA311C5141C3328F62B12C55417E48AA63311C514155460874B02C5541F5CB90B3331C5141BFC297CBAC2C554113703A90331C5141489B91F7AB2C55410035BBAA331C5141BECFE146AB2C554193D2BF49341C51410C8E33CBAA2C554128079AF1341C514165B5AF46AA2C554114CC1A0C351C5141B37301CBA92C554176C5EB75341C51410132534FA92C55410778F990331C5141500BDADCA82C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>352586 - 982796
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000017000000713D0A3787B25041F6285C7F58755441C3F528FC86B25041333333A359755441F62D9C7E89B250418D6CDF145A755441AB1FFA4B91B25041A18D47765B75544190B14B1F94B250415FC642F65B755441620B57CC94B2504159F0E0145C755441295C8F8295B2504152B81E355C755441D1E9150898B25041599BDDC95C7554412E525D9799B250416FA8DE255D75544165F3D33A9DB2504131B880FC5D755441F71C788E9DB25041C50B22775C755441C3F528FCA3B25041295C8F525E7554418FC2F5D8A9B25041713D0A275F755441713D0A37B7B250410AD7A3B060755441AE47E17AB7B25041000000B05F75544152B81E05ACB250417B14AE075E755441EC51B86EA4B250417B14AEE75C755441713D0A579EB250410AD7A3605B75544114AE473197B250411F85EB515A755441E17A147E92B250411F85EBC15975544185EB516887B2504185EB5188577554417B14AE4787B25041AE47E12A58755441713D0A3787B25041F6285C7F58755441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000FE1C4D129EB25041174778565B755441713D0A579EB250410AD7A3605B755441522371889EB250416CA5066D5B755441DB7BF6D5A0B25041145BD4005C755441E8927354A1B250418BE18A205C755441065269D1A1B25041C6610EAC587554410346F41B9EB2504115604C42587554418EFD51929AB25041F326B7DA577554410E63587A97B250410DE5218057755441722F53B894B250416552641B5775544173B1924391B250413C0A5F88567554411F1D0B798EB25041C100A311567554417FFAECCB8BB250413D25CA9F55755441353176EE88B25041EEA3E82555755441287E8A2088B25041F7C9B00355755441B81E85EB87B25041AE47E1FA54755441E69D1AA587B2504199E5DD5B567554417B6F697087B25041E17B01645775544185EB516887B2504185EB518857755441678AE3F78FB25041E4FC803F59755441F75F639E91B25041C52B059559755441956BA1B392B25041B73754C859755441A3E4DB0A93B2504165BFC4D25975544114AE473197B250411F85EB515A755441E59D279998B250417B332A875A755441D613CA0199B250414D5CA5965A755441895C33669BB25041012941F15A7554414A8B7B349CB250414355C60F5B7554411A1853919DB25041A42263435B755441FE1C4D129EB25041174778565B755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>230702 - 150328
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000020000000103000000010000001C0000003D0AD71336FE5041D7A3709D91295441432F2A5935FE504137F85E8A8E295441A2BE2E7634FE5041DEDE08C98A295441E6D55AB233FE504197CFF6768729544107FDD52C33FE504178157B2B85295441E17A14AE2EFE504185EB511871295441713D0A972AFE5041EC51B86E5E29544148E17A2428FE5041AE47E1FA532954411F85EB2126FE5041A4703D9A4B295441D7A3707D24FE50419A9999C943295441EC51B81E24FE5041AE47E18A42295441C3F5288C23FE504185EB510841295441713D0A0723FE5041000000903F2954417B14AE3722FE5041A4703DFA3D295441B81E854B21FE504152B81E953C29544114AE478120FE5041666666F63B295441AE47E12A1EFE504152B81EB53B2954410AD7A3C024FE50411F85EBB15729544152B81EB529FE5041713D0A976C29544114AE473129FE5041333333A36C2954419A99997935FE50415C8FC2959C2954410000003037FE50419A9999A99C2954413D0AD72338FE5041E17A14AE9B295441EC51B89E38FE5041713D0AF79A2954410AD7A32038FE5041D7A370FD992954413D0AD79337FE5041000000E09729544112F5BB4237FE5041C3039092962954413D0AD71336FE5041D7A3709D912954410103000000010000000E000000333333E31AFE5041333333C3142954415C8FC25519FE5041666666960D295441E17A14AE18FE504148E17AE40C2954419A99998917FE5041D7A3701D0C295441C3F5286C1CFE50417B14AEB7222954413D0AD7D31EFE5041666666862D2954418FC2F52820FE50417B14AE872C29544114AE47811FFE5041295C8FB229295441666666D61EFE5041713D0AD7262954411F85EB311EFE50411F85EB01242954410AD7A3901DFE50410000001021295441295C8FE21CFE5041EC51B83E1E295441E17A144E1CFE50410AD7A3701B295441333333E31AFE5041333333C314295441
+</a>
+
+<b>
+0106000000010000000103000000010000002B0000001599525E22FE50417F05DB453E295441FB2E590C20FE504131DFAAF93B29544165A03C301EFE5041EC33E3CB3B2954410AD7A3C024FE50411F85EBB15729544152B81EB529FE5041713D0A976C29544159B0685229FE504195F824A06C29544105AAD2B42DFE5041B01B1F427E29544194BE237031FE5041EB436AD38C29544154A4A57735FE504163DC228E9C2954414962EFF736FE504193848B399C295441D6E3F37437FE5041050387BC9B2954416365F8F137FE5041E06BAC2A9B2954417E47DE1738FE504161001BF3992954412F9A6FD737FE504160E8EFE3982954413D0AD79337FE5041000000E0972954410EF5BB4237FE5041C4039092962954413D0AD71336FE5041D7A3709D912954413E2F2A5935FE504133F85E8A8E295441A5BE2E7634FE5041E1DE08C98A295441E4D55AB233FE504195CFF67687295441367BF99933FE504148DAB00B872954412AFD087B31FE5041E673B01E7E295441F1680A0430FE5041EA6D7B0F77295441E17A14AE2EFE504185EB5118712954419AC8C97D2EFE50414173F73B70295441F447DE272EFE50411E0712D06E29544103CB47BB2DFE5041748A6FC46C295441736027302DFE504158509B496A295441550FD0972CFE50414E0D7B9267295441DEE06E452BFE504121F3778A61295441D7F407FF28FE50410695A1B857295441269614E828FE50419F463A3E5729544140785FE428FE5041C7E5642E572954410394B8DB28FE50417CCB710957295441F28F639628FE5041AE5959E1552954413BD3F67A28FE50416BFF396C5529544140834FD727FE5041A0AD3EB9522954411F85EB2126FE5041A4703D9A4B295441DE22ECEB25FE50410AE851994A2954417FFE737C24FE504105F37CE043295441887BF09F23FE504187E9124A412954415CEDF07A22FE5041301CDB7D3E2954411599525E22FE50417F05DB453E295441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>230702 - 357461
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000020000000103000000010000001C0000003D0AD71336FE5041D7A3709D91295441432F2A5935FE504137F85E8A8E295441A2BE2E7634FE5041DEDE08C98A295441E6D55AB233FE504197CFF6768729544107FDD52C33FE504178157B2B85295441E17A14AE2EFE504185EB511871295441713D0A972AFE5041EC51B86E5E29544148E17A2428FE5041AE47E1FA532954411F85EB2126FE5041A4703D9A4B295441D7A3707D24FE50419A9999C943295441EC51B81E24FE5041AE47E18A42295441C3F5288C23FE504185EB510841295441713D0A0723FE5041000000903F2954417B14AE3722FE5041A4703DFA3D295441B81E854B21FE504152B81E953C29544114AE478120FE5041666666F63B295441AE47E12A1EFE504152B81EB53B2954410AD7A3C024FE50411F85EBB15729544152B81EB529FE5041713D0A976C29544114AE473129FE5041333333A36C2954419A99997935FE50415C8FC2959C2954410000003037FE50419A9999A99C2954413D0AD72338FE5041E17A14AE9B295441EC51B89E38FE5041713D0AF79A2954410AD7A32038FE5041D7A370FD992954413D0AD79337FE5041000000E09729544112F5BB4237FE5041C3039092962954413D0AD71336FE5041D7A3709D912954410103000000010000000E000000333333E31AFE5041333333C3142954415C8FC25519FE5041666666960D295441E17A14AE18FE504148E17AE40C2954419A99998917FE5041D7A3701D0C295441C3F5286C1CFE50417B14AEB7222954413D0AD7D31EFE5041666666862D2954418FC2F52820FE50417B14AE872C29544114AE47811FFE5041295C8FB229295441666666D61EFE5041713D0AD7262954411F85EB311EFE50411F85EB01242954410AD7A3901DFE50410000001021295441295C8FE21CFE5041EC51B83E1E295441E17A144E1CFE50410AD7A3701B295441333333E31AFE5041333333C314295441
+</a>
+
+<b>
+0106000000010000000103000000010000002B0000001599525E22FE50417F05DB453E295441FB2E590C20FE504131DFAAF93B29544165A03C301EFE5041EC33E3CB3B2954410AD7A3C024FE50411F85EBB15729544152B81EB529FE5041713D0A976C29544159B0685229FE504195F824A06C29544105AAD2B42DFE5041B01B1F427E29544194BE237031FE5041EB436AD38C29544154A4A57735FE504163DC228E9C2954414962EFF736FE504193848B399C295441D6E3F37437FE5041050387BC9B2954416365F8F137FE5041E06BAC2A9B2954417E47DE1738FE504161001BF3992954412F9A6FD737FE504160E8EFE3982954413D0AD79337FE5041000000E0972954410EF5BB4237FE5041C4039092962954413D0AD71336FE5041D7A3709D912954413E2F2A5935FE504133F85E8A8E295441A5BE2E7634FE5041E1DE08C98A295441E4D55AB233FE504195CFF67687295441367BF99933FE504148DAB00B872954412AFD087B31FE5041E673B01E7E295441F1680A0430FE5041EA6D7B0F77295441E17A14AE2EFE504185EB5118712954419AC8C97D2EFE50414173F73B70295441F447DE272EFE50411E0712D06E29544103CB47BB2DFE5041748A6FC46C295441736027302DFE504158509B496A295441550FD0972CFE50414E0D7B9267295441DEE06E452BFE504121F3778A61295441D7F407FF28FE50410695A1B857295441269614E828FE50419F463A3E5729544140785FE428FE5041C7E5642E572954410394B8DB28FE50417CCB710957295441F28F639628FE5041AE5959E1552954413BD3F67A28FE50416BFF396C5529544140834FD727FE5041A0AD3EB9522954411F85EB2126FE5041A4703D9A4B295441DE22ECEB25FE50410AE851994A2954417FFE737C24FE504105F37CE043295441887BF09F23FE504187E9124A412954415CEDF07A22FE5041301CDB7D3E2954411599525E22FE50417F05DB453E295441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>415759 - 415454
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000020000005F000000844D5BB87C625141D0C82FD43A3C54413D0AD7837C625141E17A14AE373C5441000000A07B6251410AD7A3002A3C54417B14AE97716251410AD7A320233C5441C92E3FB86E6251418007A328213C54411E3DC3BD686251415F08C60F1D3C54417B14AEA7686251410AD7A3001D3C54410AD7A3806962514148E17AF41B3C5441A4703D3A6D625141EC51B87E193C5441A4703D6A686251419A9999B9093C5441713D0AC76762514152B81EF5073C5441B81E85CB636251418FC2F538073C5441D7A3705D626251410AD7A3A0FB3B5441B81E85EB61625141C3F528BCF73B5441F6285C1F62625141E17A149EF43B5441666666765D6251417B14AEB7EE3B5441B81E85EB4E625141295C8FE2EE3B544148E17A843C62514148E17A14EE3B5441F6285CAF32625141713D0A67ED3B544185EB51E832625141000000E0EB3B5441295C8FC23362514100000040E83B5441AE47E14A3362514133333333E83B5441713D0A07326251411F85EB81E73B54410AD7A3F02E625141333333D3E63B544152B81E9529625141CDCCCCACE63B544185EB51D81C6251419A9999F9E83B54410AD7A3401B625141E17A143EF43B5441713D0AB71A6251411F85EB01F73B5441713D0AB7176251418FC2F5B8FE3B5441000000C015625141F6285CFF033C5441E17A149E156251411F85EB91043C54417B14AE471C625141E17A147E0C3C54418FC2F5E81D6251417B14AE570C3C5441666666361F6251418FC2F5280C3C54418FC2F5F820625141A4703D3A0C3C544114AE4781226251410AD7A3800C3C5441EC51B8CE2362514114AE47010D3C54417B14AED72562514114AE47F10D3C544148E17A9427625141295C8FB20E3C544114AE47C12A625141295C8FE20F3C544114AE47B12B625141EC51B82E103C54419A9999492C62514100000000103C544148E17AC42C62514152B81E850F3C5441B81E858B2D625141CDCCCCDC0F3C5441C3F5280C2E62514152B81E950E3C5441666666F62E625141E17A14AE0B3C54411F85EBF133625141C3F5288C0C3C54413D0AD7B33462514100000010143C5441F6285C1F37625141CDCCCC0C153C5441713D0A273B625141B81E852B163C5441AE47E16A4062514148E17AE4173C5441295C8F524162514114AE4741183C54411F85EBC142625141EC51B85E193C5441CDCCCC6C44625141B81E851B1B3C544185EB51F845625141000000D01C3C5441F6285C7F4762514114AE47D11F3C5441EB479A7348625141F1E82F32223C5441FBF0B6DB4962514186DEF39E263C5441345DB4174C6251418292A1FB2D3C544181DE98854E625141A7D0AD76353C5441F8F70BF74E625141BFFD85C6363C544187C54E14576251417FBE5D47343C54412C34A0C95862514172590FDD393C5441DD69FAA6566251412F8F9E633A3C5441B2C881BC57625141442D4EF83D3C5441420D3D5652625141267A96743F3C5441CEE2809B52625141D5640A45403C5441B88DBDD0526251414348EDDB403C5441EC8E69175462514180E1EC79403C544135C36A3D55625141C07D9A48433C54413C75E9FE53625141F84AF0BA433C5441A4D879AB54625141A74CE974453C54417269EDD856625141CE6380CE483C54410492D34659625141ACA3D8C44B3C54419448784B5A625141909E264F4D3C54413DC088DD5B625141599A92B94F3C5441488478765D625141481B5CAE543C5441C9E836925E6251411CFA415C583C544107C0761F60625141941C88005B3C54417E57DA8861625141F172B2415D3C5441AB8BA07362625141AA25B62E5E3C5441B83BA18663625141824A4D015E3C54412379705A64625141BEB1DA6A5D3C54413DA01912666251413761E6425B3C54419C27E0A06962514169E980CB563C544134F2F3686D62514188822B0C523C54417EE0AA596F625141E6F5969C4F3C544145DACA7571625141C3FC82F64C3C5441F3449D3E736251417746F2E24A3C5441C3A54BF774625141C1446A5A493C5441321513C776625141FA98AA25483C5441C289224A7D6251418E3BF954443C544186A1AA497D625141EC82A08A433C5441C32737DB7C6251411DDA40EB3C3C5441844D5BB87C625141D0C82FD43A3C5441180000001F85EBF11F6251418FC2F5880A3C5441295C8F821F625141F6285CCF0A3C5441C3F528FC1E62514185EB51F80A3C5441C3F5284C1E625141713D0A270B3C544114AE47911D625141CDCCCC2C0B3C5441D7A370ED1C625141A4703D0A0B3C544152B81E551C625141AE47E19A0A3C5441B81E85AB176251415C8FC235053C54417B14AE4717625141D7A3709D043C5441AE47E12A17625141E17A14EE033C5441C3F5283C17625141EC51B83E033C5441295C8F82176251417B14AE77023C5441D7A370FD1762514185EB51C8013C5441CDCCCCAC18625141A4703D2A013C54419A99997919625141E17A14DE003C5441AE47E13A1A625141E17A14DE003C54417B14AE071B625141713D0A07013C544148E17AD41B6251417B14AE87013C544114AE47A12062514185EB51F8063C54417B14AEE720625141AE47E18A073C5441333333F3206251411F85EB91083C5441EC51B8BE20625141A4703D6A093C5441713D0A6720625141000000200A3C54411F85EBF11F6251418FC2F5880A3C5441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000C3F528FC9462514148E17A44243C544185EB518894625141A4703DFA1F3C54411F85EB7192625141295C8F72133C5441A4703D2A83625141A4703D0A113C5441333333F37C625141CDCCCC6C133C54413D0AD7437162514114AE4741173C54415C8FC2356F62514100000030183C5441A4703D3A6D625141EC51B87E193C54410AD7A3806962514148E17AF41B3C54417B14AEA7686251410AD7A3001D3C54417B14AE97716251410AD7A320233C5441000000A07B6251410AD7A3002A3C54413D0AD7837C625141E17A14AE373C5441666666567D625141E17A144E443C5441A4703D0A846251410AD7A330413C5441713D0A5788625141CDCCCC5C3F3C54415C8FC2A591625141E17A14DE3B3C5441295C8F529362514152B81EF53A3C5441713D0A0796625141295C8FF2393C54418FC2F5F89562514152B81E15353C5441EC51B8EE956251411F85EBC1313C54419A9999E99562514152B81E05303C54413333336395625141F6285C1F283C5441EC51B83E95625141AE47E1BA263C5441C3F528FC9462514148E17A44243C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>415759 - 1003895
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000020000005F000000844D5BB87C625141D0C82FD43A3C54413D0AD7837C625141E17A14AE373C5441000000A07B6251410AD7A3002A3C54417B14AE97716251410AD7A320233C5441C92E3FB86E6251418007A328213C54411E3DC3BD686251415F08C60F1D3C54417B14AEA7686251410AD7A3001D3C54410AD7A3806962514148E17AF41B3C5441A4703D3A6D625141EC51B87E193C5441A4703D6A686251419A9999B9093C5441713D0AC76762514152B81EF5073C5441B81E85CB636251418FC2F538073C5441D7A3705D626251410AD7A3A0FB3B5441B81E85EB61625141C3F528BCF73B5441F6285C1F62625141E17A149EF43B5441666666765D6251417B14AEB7EE3B5441B81E85EB4E625141295C8FE2EE3B544148E17A843C62514148E17A14EE3B5441F6285CAF32625141713D0A67ED3B544185EB51E832625141000000E0EB3B5441295C8FC23362514100000040E83B5441AE47E14A3362514133333333E83B5441713D0A07326251411F85EB81E73B54410AD7A3F02E625141333333D3E63B544152B81E9529625141CDCCCCACE63B544185EB51D81C6251419A9999F9E83B54410AD7A3401B625141E17A143EF43B5441713D0AB71A6251411F85EB01F73B5441713D0AB7176251418FC2F5B8FE3B5441000000C015625141F6285CFF033C5441E17A149E156251411F85EB91043C54417B14AE471C625141E17A147E0C3C54418FC2F5E81D6251417B14AE570C3C5441666666361F6251418FC2F5280C3C54418FC2F5F820625141A4703D3A0C3C544114AE4781226251410AD7A3800C3C5441EC51B8CE2362514114AE47010D3C54417B14AED72562514114AE47F10D3C544148E17A9427625141295C8FB20E3C544114AE47C12A625141295C8FE20F3C544114AE47B12B625141EC51B82E103C54419A9999492C62514100000000103C544148E17AC42C62514152B81E850F3C5441B81E858B2D625141CDCCCCDC0F3C5441C3F5280C2E62514152B81E950E3C5441666666F62E625141E17A14AE0B3C54411F85EBF133625141C3F5288C0C3C54413D0AD7B33462514100000010143C5441F6285C1F37625141CDCCCC0C153C5441713D0A273B625141B81E852B163C5441AE47E16A4062514148E17AE4173C5441295C8F524162514114AE4741183C54411F85EBC142625141EC51B85E193C5441CDCCCC6C44625141B81E851B1B3C544185EB51F845625141000000D01C3C5441F6285C7F4762514114AE47D11F3C5441EB479A7348625141F1E82F32223C5441FBF0B6DB4962514186DEF39E263C5441345DB4174C6251418292A1FB2D3C544181DE98854E625141A7D0AD76353C5441F8F70BF74E625141BFFD85C6363C544187C54E14576251417FBE5D47343C54412C34A0C95862514172590FDD393C5441DD69FAA6566251412F8F9E633A3C5441B2C881BC57625141442D4EF83D3C5441420D3D5652625141267A96743F3C5441CEE2809B52625141D5640A45403C5441B88DBDD0526251414348EDDB403C5441EC8E69175462514180E1EC79403C544135C36A3D55625141C07D9A48433C54413C75E9FE53625141F84AF0BA433C5441A4D879AB54625141A74CE974453C54417269EDD856625141CE6380CE483C54410492D34659625141ACA3D8C44B3C54419448784B5A625141909E264F4D3C54413DC088DD5B625141599A92B94F3C5441488478765D625141481B5CAE543C5441C9E836925E6251411CFA415C583C544107C0761F60625141941C88005B3C54417E57DA8861625141F172B2415D3C5441AB8BA07362625141AA25B62E5E3C5441B83BA18663625141824A4D015E3C54412379705A64625141BEB1DA6A5D3C54413DA01912666251413761E6425B3C54419C27E0A06962514169E980CB563C544134F2F3686D62514188822B0C523C54417EE0AA596F625141E6F5969C4F3C544145DACA7571625141C3FC82F64C3C5441F3449D3E736251417746F2E24A3C5441C3A54BF774625141C1446A5A493C5441321513C776625141FA98AA25483C5441C289224A7D6251418E3BF954443C544186A1AA497D625141EC82A08A433C5441C32737DB7C6251411DDA40EB3C3C5441844D5BB87C625141D0C82FD43A3C5441180000001F85EBF11F6251418FC2F5880A3C5441295C8F821F625141F6285CCF0A3C5441C3F528FC1E62514185EB51F80A3C5441C3F5284C1E625141713D0A270B3C544114AE47911D625141CDCCCC2C0B3C5441D7A370ED1C625141A4703D0A0B3C544152B81E551C625141AE47E19A0A3C5441B81E85AB176251415C8FC235053C54417B14AE4717625141D7A3709D043C5441AE47E12A17625141E17A14EE033C5441C3F5283C17625141EC51B83E033C5441295C8F82176251417B14AE77023C5441D7A370FD1762514185EB51C8013C5441CDCCCCAC18625141A4703D2A013C54419A99997919625141E17A14DE003C5441AE47E13A1A625141E17A14DE003C54417B14AE071B625141713D0A07013C544148E17AD41B6251417B14AE87013C544114AE47A12062514185EB51F8063C54417B14AEE720625141AE47E18A073C5441333333F3206251411F85EB91083C5441EC51B8BE20625141A4703D6A093C5441713D0A6720625141000000200A3C54411F85EBF11F6251418FC2F5880A3C5441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000C3F528FC9462514148E17A44243C544185EB518894625141A4703DFA1F3C54411F85EB7192625141295C8F72133C5441A4703D2A83625141A4703D0A113C5441333333F37C625141CDCCCC6C133C54413D0AD7437162514114AE4741173C54415C8FC2356F62514100000030183C5441A4703D3A6D625141EC51B87E193C54410AD7A3806962514148E17AF41B3C54417B14AEA7686251410AD7A3001D3C54417B14AE97716251410AD7A320233C5441000000A07B6251410AD7A3002A3C54413D0AD7837C625141E17A14AE373C5441666666567D625141E17A144E443C5441A4703D0A846251410AD7A330413C5441713D0A5788625141CDCCCC5C3F3C54415C8FC2A591625141E17A14DE3B3C5441295C8F529362514152B81EF53A3C5441713D0A0796625141295C8FF2393C54418FC2F5F89562514152B81E15353C5441EC51B8EE956251411F85EBC1313C54419A9999E99562514152B81E05303C54413333336395625141F6285C1F283C5441EC51B83E95625141AE47E1BA263C5441C3F528FC9462514148E17A44243C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>415759 - 3049063
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000020000005F000000844D5BB87C625141D0C82FD43A3C54413D0AD7837C625141E17A14AE373C5441000000A07B6251410AD7A3002A3C54417B14AE97716251410AD7A320233C5441C92E3FB86E6251418007A328213C54411E3DC3BD686251415F08C60F1D3C54417B14AEA7686251410AD7A3001D3C54410AD7A3806962514148E17AF41B3C5441A4703D3A6D625141EC51B87E193C5441A4703D6A686251419A9999B9093C5441713D0AC76762514152B81EF5073C5441B81E85CB636251418FC2F538073C5441D7A3705D626251410AD7A3A0FB3B5441B81E85EB61625141C3F528BCF73B5441F6285C1F62625141E17A149EF43B5441666666765D6251417B14AEB7EE3B5441B81E85EB4E625141295C8FE2EE3B544148E17A843C62514148E17A14EE3B5441F6285CAF32625141713D0A67ED3B544185EB51E832625141000000E0EB3B5441295C8FC23362514100000040E83B5441AE47E14A3362514133333333E83B5441713D0A07326251411F85EB81E73B54410AD7A3F02E625141333333D3E63B544152B81E9529625141CDCCCCACE63B544185EB51D81C6251419A9999F9E83B54410AD7A3401B625141E17A143EF43B5441713D0AB71A6251411F85EB01F73B5441713D0AB7176251418FC2F5B8FE3B5441000000C015625141F6285CFF033C5441E17A149E156251411F85EB91043C54417B14AE471C625141E17A147E0C3C54418FC2F5E81D6251417B14AE570C3C5441666666361F6251418FC2F5280C3C54418FC2F5F820625141A4703D3A0C3C544114AE4781226251410AD7A3800C3C5441EC51B8CE2362514114AE47010D3C54417B14AED72562514114AE47F10D3C544148E17A9427625141295C8FB20E3C544114AE47C12A625141295C8FE20F3C544114AE47B12B625141EC51B82E103C54419A9999492C62514100000000103C544148E17AC42C62514152B81E850F3C5441B81E858B2D625141CDCCCCDC0F3C5441C3F5280C2E62514152B81E950E3C5441666666F62E625141E17A14AE0B3C54411F85EBF133625141C3F5288C0C3C54413D0AD7B33462514100000010143C5441F6285C1F37625141CDCCCC0C153C5441713D0A273B625141B81E852B163C5441AE47E16A4062514148E17AE4173C5441295C8F524162514114AE4741183C54411F85EBC142625141EC51B85E193C5441CDCCCC6C44625141B81E851B1B3C544185EB51F845625141000000D01C3C5441F6285C7F4762514114AE47D11F3C5441EB479A7348625141F1E82F32223C5441FBF0B6DB4962514186DEF39E263C5441345DB4174C6251418292A1FB2D3C544181DE98854E625141A7D0AD76353C5441F8F70BF74E625141BFFD85C6363C544187C54E14576251417FBE5D47343C54412C34A0C95862514172590FDD393C5441DD69FAA6566251412F8F9E633A3C5441B2C881BC57625141442D4EF83D3C5441420D3D5652625141267A96743F3C5441CEE2809B52625141D5640A45403C5441B88DBDD0526251414348EDDB403C5441EC8E69175462514180E1EC79403C544135C36A3D55625141C07D9A48433C54413C75E9FE53625141F84AF0BA433C5441A4D879AB54625141A74CE974453C54417269EDD856625141CE6380CE483C54410492D34659625141ACA3D8C44B3C54419448784B5A625141909E264F4D3C54413DC088DD5B625141599A92B94F3C5441488478765D625141481B5CAE543C5441C9E836925E6251411CFA415C583C544107C0761F60625141941C88005B3C54417E57DA8861625141F172B2415D3C5441AB8BA07362625141AA25B62E5E3C5441B83BA18663625141824A4D015E3C54412379705A64625141BEB1DA6A5D3C54413DA01912666251413761E6425B3C54419C27E0A06962514169E980CB563C544134F2F3686D62514188822B0C523C54417EE0AA596F625141E6F5969C4F3C544145DACA7571625141C3FC82F64C3C5441F3449D3E736251417746F2E24A3C5441C3A54BF774625141C1446A5A493C5441321513C776625141FA98AA25483C5441C289224A7D6251418E3BF954443C544186A1AA497D625141EC82A08A433C5441C32737DB7C6251411DDA40EB3C3C5441844D5BB87C625141D0C82FD43A3C5441180000001F85EBF11F6251418FC2F5880A3C5441295C8F821F625141F6285CCF0A3C5441C3F528FC1E62514185EB51F80A3C5441C3F5284C1E625141713D0A270B3C544114AE47911D625141CDCCCC2C0B3C5441D7A370ED1C625141A4703D0A0B3C544152B81E551C625141AE47E19A0A3C5441B81E85AB176251415C8FC235053C54417B14AE4717625141D7A3709D043C5441AE47E12A17625141E17A14EE033C5441C3F5283C17625141EC51B83E033C5441295C8F82176251417B14AE77023C5441D7A370FD1762514185EB51C8013C5441CDCCCCAC18625141A4703D2A013C54419A99997919625141E17A14DE003C5441AE47E13A1A625141E17A14DE003C54417B14AE071B625141713D0A07013C544148E17AD41B6251417B14AE87013C544114AE47A12062514185EB51F8063C54417B14AEE720625141AE47E18A073C5441333333F3206251411F85EB91083C5441EC51B8BE20625141A4703D6A093C5441713D0A6720625141000000200A3C54411F85EBF11F6251418FC2F5880A3C5441
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000425757AD686251412C0A85041D3C5441DC4C946D68625141A969EC181D3C5441CB8C788C66625141C0796BA21F3C5441C66C23FC65625141D3C9B1CB213C5441B96C407B646251413A4A58122D3C5441B5AC071B64625141471A2D7B2E3C5441ADFC874263625141699A643D323C5441A0FCA4C161625141792A7206343C5441A25CC1F16162514189BA7FCF353C5441746CD1F65C625141F81AB406423C54416F4C7C665C625141FC0AFB7E423C54414EFC52BC58625141193BCF98453C54412C8E749D55625141BBE22CE9463C54417069EDD856625141D36380CE483C54410392D34659625141B0A3D8C44B3C54419148784B5A625141909E264F4D3C544138C088DD5B625141579A92B94F3C54414B8478765D625141491B5CAE543C5441CAE836925E62514120FA415C583C544106C0761F606251418F1C88005B3C54417A57DA8861625141EF72B2415D3C5441A68BA07362625141AC25B62E5E3C5441BA3BA18663625141814A4D015E3C54412479705A64625141BDB1DA6A5D3C54413AA01912666251413361E6425B3C54419D27E0A0696251416AE980CB563C544135F2F3686D62514185822B0C523C54417EE0AA596F625141E6F5969C4F3C544144DACA7571625141BFFC82F64C3C5441F5449D3E736251417946F2E24A3C5441C6A54BF774625141C2446A5A493C5441311513C776625141FB98AA25483C5441C389224A7D6251418B3BF954443C544189A1AA497D625141ED82A08A433C5441BF2737DB7C6251411BDA40EB3C3C5441844D5BB87C625141D0C82FD43A3C54413D0AD7837C625141E17A14AE373C5441000000A07B6251410AD7A3002A3C54417B14AE97716251410AD7A320233C5441CA2E3FB86E6251418107A328213C5441213DC3BD686251416208C60F1D3C5441425757AD686251412C0A85041D3C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>415759 - 3307658
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000020000005F000000844D5BB87C625141D0C82FD43A3C54413D0AD7837C625141E17A14AE373C5441000000A07B6251410AD7A3002A3C54417B14AE97716251410AD7A320233C5441C92E3FB86E6251418007A328213C54411E3DC3BD686251415F08C60F1D3C54417B14AEA7686251410AD7A3001D3C54410AD7A3806962514148E17AF41B3C5441A4703D3A6D625141EC51B87E193C5441A4703D6A686251419A9999B9093C5441713D0AC76762514152B81EF5073C5441B81E85CB636251418FC2F538073C5441D7A3705D626251410AD7A3A0FB3B5441B81E85EB61625141C3F528BCF73B5441F6285C1F62625141E17A149EF43B5441666666765D6251417B14AEB7EE3B5441B81E85EB4E625141295C8FE2EE3B544148E17A843C62514148E17A14EE3B5441F6285CAF32625141713D0A67ED3B544185EB51E832625141000000E0EB3B5441295C8FC23362514100000040E83B5441AE47E14A3362514133333333E83B5441713D0A07326251411F85EB81E73B54410AD7A3F02E625141333333D3E63B544152B81E9529625141CDCCCCACE63B544185EB51D81C6251419A9999F9E83B54410AD7A3401B625141E17A143EF43B5441713D0AB71A6251411F85EB01F73B5441713D0AB7176251418FC2F5B8FE3B5441000000C015625141F6285CFF033C5441E17A149E156251411F85EB91043C54417B14AE471C625141E17A147E0C3C54418FC2F5E81D6251417B14AE570C3C5441666666361F6251418FC2F5280C3C54418FC2F5F820625141A4703D3A0C3C544114AE4781226251410AD7A3800C3C5441EC51B8CE2362514114AE47010D3C54417B14AED72562514114AE47F10D3C544148E17A9427625141295C8FB20E3C544114AE47C12A625141295C8FE20F3C544114AE47B12B625141EC51B82E103C54419A9999492C62514100000000103C544148E17AC42C62514152B81E850F3C5441B81E858B2D625141CDCCCCDC0F3C5441C3F5280C2E62514152B81E950E3C5441666666F62E625141E17A14AE0B3C54411F85EBF133625141C3F5288C0C3C54413D0AD7B33462514100000010143C5441F6285C1F37625141CDCCCC0C153C5441713D0A273B625141B81E852B163C5441AE47E16A4062514148E17AE4173C5441295C8F524162514114AE4741183C54411F85EBC142625141EC51B85E193C5441CDCCCC6C44625141B81E851B1B3C544185EB51F845625141000000D01C3C5441F6285C7F4762514114AE47D11F3C5441EB479A7348625141F1E82F32223C5441FBF0B6DB4962514186DEF39E263C5441345DB4174C6251418292A1FB2D3C544181DE98854E625141A7D0AD76353C5441F8F70BF74E625141BFFD85C6363C544187C54E14576251417FBE5D47343C54412C34A0C95862514172590FDD393C5441DD69FAA6566251412F8F9E633A3C5441B2C881BC57625141442D4EF83D3C5441420D3D5652625141267A96743F3C5441CEE2809B52625141D5640A45403C5441B88DBDD0526251414348EDDB403C5441EC8E69175462514180E1EC79403C544135C36A3D55625141C07D9A48433C54413C75E9FE53625141F84AF0BA433C5441A4D879AB54625141A74CE974453C54417269EDD856625141CE6380CE483C54410492D34659625141ACA3D8C44B3C54419448784B5A625141909E264F4D3C54413DC088DD5B625141599A92B94F3C5441488478765D625141481B5CAE543C5441C9E836925E6251411CFA415C583C544107C0761F60625141941C88005B3C54417E57DA8861625141F172B2415D3C5441AB8BA07362625141AA25B62E5E3C5441B83BA18663625141824A4D015E3C54412379705A64625141BEB1DA6A5D3C54413DA01912666251413761E6425B3C54419C27E0A06962514169E980CB563C544134F2F3686D62514188822B0C523C54417EE0AA596F625141E6F5969C4F3C544145DACA7571625141C3FC82F64C3C5441F3449D3E736251417746F2E24A3C5441C3A54BF774625141C1446A5A493C5441321513C776625141FA98AA25483C5441C289224A7D6251418E3BF954443C544186A1AA497D625141EC82A08A433C5441C32737DB7C6251411DDA40EB3C3C5441844D5BB87C625141D0C82FD43A3C5441180000001F85EBF11F6251418FC2F5880A3C5441295C8F821F625141F6285CCF0A3C5441C3F528FC1E62514185EB51F80A3C5441C3F5284C1E625141713D0A270B3C544114AE47911D625141CDCCCC2C0B3C5441D7A370ED1C625141A4703D0A0B3C544152B81E551C625141AE47E19A0A3C5441B81E85AB176251415C8FC235053C54417B14AE4717625141D7A3709D043C5441AE47E12A17625141E17A14EE033C5441C3F5283C17625141EC51B83E033C5441295C8F82176251417B14AE77023C5441D7A370FD1762514185EB51C8013C5441CDCCCCAC18625141A4703D2A013C54419A99997919625141E17A14DE003C5441AE47E13A1A625141E17A14DE003C54417B14AE071B625141713D0A07013C544148E17AD41B6251417B14AE87013C544114AE47A12062514185EB51F8063C54417B14AEE720625141AE47E18A073C5441333333F3206251411F85EB91083C5441EC51B8BE20625141A4703D6A093C5441713D0A6720625141000000200A3C54411F85EBF11F6251418FC2F5880A3C5441
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000425757AD686251412C0A85041D3C5441DC4C946D68625141A969EC181D3C5441CB8C788C66625141C0796BA21F3C5441C66C23FC65625141D3C9B1CB213C5441B96C407B646251413A4A58122D3C5441B5AC071B64625141471A2D7B2E3C5441ADFC874263625141699A643D323C5441A0FCA4C161625141792A7206343C5441A25CC1F16162514189BA7FCF353C5441746CD1F65C625141F81AB406423C54416F4C7C665C625141FC0AFB7E423C54414EFC52BC58625141193BCF98453C54412C8E749D55625141BBE22CE9463C54417069EDD856625141D36380CE483C54410392D34659625141B0A3D8C44B3C54419148784B5A625141909E264F4D3C544138C088DD5B625141579A92B94F3C54414B8478765D625141491B5CAE543C5441CAE836925E62514120FA415C583C544106C0761F606251418F1C88005B3C54417A57DA8861625141EF72B2415D3C5441A68BA07362625141AC25B62E5E3C5441BA3BA18663625141814A4D015E3C54412479705A64625141BDB1DA6A5D3C54413AA01912666251413361E6425B3C54419D27E0A0696251416AE980CB563C544135F2F3686D62514185822B0C523C54417EE0AA596F625141E6F5969C4F3C544144DACA7571625141BFFC82F64C3C5441F5449D3E736251417946F2E24A3C5441C6A54BF774625141C2446A5A493C5441311513C776625141FB98AA25483C5441C389224A7D6251418B3BF954443C544189A1AA497D625141ED82A08A433C5441BF2737DB7C6251411BDA40EB3C3C5441844D5BB87C625141D0C82FD43A3C54413D0AD7837C625141E17A14AE373C5441000000A07B6251410AD7A3002A3C54417B14AE97716251410AD7A320233C5441CA2E3FB86E6251418107A328213C5441213DC3BD686251416208C60F1D3C5441425757AD686251412C0A85041D3C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>415759 - 3666699
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000020000005F000000844D5BB87C625141D0C82FD43A3C54413D0AD7837C625141E17A14AE373C5441000000A07B6251410AD7A3002A3C54417B14AE97716251410AD7A320233C5441C92E3FB86E6251418007A328213C54411E3DC3BD686251415F08C60F1D3C54417B14AEA7686251410AD7A3001D3C54410AD7A3806962514148E17AF41B3C5441A4703D3A6D625141EC51B87E193C5441A4703D6A686251419A9999B9093C5441713D0AC76762514152B81EF5073C5441B81E85CB636251418FC2F538073C5441D7A3705D626251410AD7A3A0FB3B5441B81E85EB61625141C3F528BCF73B5441F6285C1F62625141E17A149EF43B5441666666765D6251417B14AEB7EE3B5441B81E85EB4E625141295C8FE2EE3B544148E17A843C62514148E17A14EE3B5441F6285CAF32625141713D0A67ED3B544185EB51E832625141000000E0EB3B5441295C8FC23362514100000040E83B5441AE47E14A3362514133333333E83B5441713D0A07326251411F85EB81E73B54410AD7A3F02E625141333333D3E63B544152B81E9529625141CDCCCCACE63B544185EB51D81C6251419A9999F9E83B54410AD7A3401B625141E17A143EF43B5441713D0AB71A6251411F85EB01F73B5441713D0AB7176251418FC2F5B8FE3B5441000000C015625141F6285CFF033C5441E17A149E156251411F85EB91043C54417B14AE471C625141E17A147E0C3C54418FC2F5E81D6251417B14AE570C3C5441666666361F6251418FC2F5280C3C54418FC2F5F820625141A4703D3A0C3C544114AE4781226251410AD7A3800C3C5441EC51B8CE2362514114AE47010D3C54417B14AED72562514114AE47F10D3C544148E17A9427625141295C8FB20E3C544114AE47C12A625141295C8FE20F3C544114AE47B12B625141EC51B82E103C54419A9999492C62514100000000103C544148E17AC42C62514152B81E850F3C5441B81E858B2D625141CDCCCCDC0F3C5441C3F5280C2E62514152B81E950E3C5441666666F62E625141E17A14AE0B3C54411F85EBF133625141C3F5288C0C3C54413D0AD7B33462514100000010143C5441F6285C1F37625141CDCCCC0C153C5441713D0A273B625141B81E852B163C5441AE47E16A4062514148E17AE4173C5441295C8F524162514114AE4741183C54411F85EBC142625141EC51B85E193C5441CDCCCC6C44625141B81E851B1B3C544185EB51F845625141000000D01C3C5441F6285C7F4762514114AE47D11F3C5441EB479A7348625141F1E82F32223C5441FBF0B6DB4962514186DEF39E263C5441345DB4174C6251418292A1FB2D3C544181DE98854E625141A7D0AD76353C5441F8F70BF74E625141BFFD85C6363C544187C54E14576251417FBE5D47343C54412C34A0C95862514172590FDD393C5441DD69FAA6566251412F8F9E633A3C5441B2C881BC57625141442D4EF83D3C5441420D3D5652625141267A96743F3C5441CEE2809B52625141D5640A45403C5441B88DBDD0526251414348EDDB403C5441EC8E69175462514180E1EC79403C544135C36A3D55625141C07D9A48433C54413C75E9FE53625141F84AF0BA433C5441A4D879AB54625141A74CE974453C54417269EDD856625141CE6380CE483C54410492D34659625141ACA3D8C44B3C54419448784B5A625141909E264F4D3C54413DC088DD5B625141599A92B94F3C5441488478765D625141481B5CAE543C5441C9E836925E6251411CFA415C583C544107C0761F60625141941C88005B3C54417E57DA8861625141F172B2415D3C5441AB8BA07362625141AA25B62E5E3C5441B83BA18663625141824A4D015E3C54412379705A64625141BEB1DA6A5D3C54413DA01912666251413761E6425B3C54419C27E0A06962514169E980CB563C544134F2F3686D62514188822B0C523C54417EE0AA596F625141E6F5969C4F3C544145DACA7571625141C3FC82F64C3C5441F3449D3E736251417746F2E24A3C5441C3A54BF774625141C1446A5A493C5441321513C776625141FA98AA25483C5441C289224A7D6251418E3BF954443C544186A1AA497D625141EC82A08A433C5441C32737DB7C6251411DDA40EB3C3C5441844D5BB87C625141D0C82FD43A3C5441180000001F85EBF11F6251418FC2F5880A3C5441295C8F821F625141F6285CCF0A3C5441C3F528FC1E62514185EB51F80A3C5441C3F5284C1E625141713D0A270B3C544114AE47911D625141CDCCCC2C0B3C5441D7A370ED1C625141A4703D0A0B3C544152B81E551C625141AE47E19A0A3C5441B81E85AB176251415C8FC235053C54417B14AE4717625141D7A3709D043C5441AE47E12A17625141E17A14EE033C5441C3F5283C17625141EC51B83E033C5441295C8F82176251417B14AE77023C5441D7A370FD1762514185EB51C8013C5441CDCCCCAC18625141A4703D2A013C54419A99997919625141E17A14DE003C5441AE47E13A1A625141E17A14DE003C54417B14AE071B625141713D0A07013C544148E17AD41B6251417B14AE87013C544114AE47A12062514185EB51F8063C54417B14AEE720625141AE47E18A073C5441333333F3206251411F85EB91083C5441EC51B8BE20625141A4703D6A093C5441713D0A6720625141000000200A3C54411F85EBF11F6251418FC2F5880A3C5441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000C3F528FC9462514148E17A44243C544185EB518894625141A4703DFA1F3C54411F85EB7192625141295C8F72133C5441A4703D2A83625141A4703D0A113C5441333333F37C625141CDCCCC6C133C54413D0AD7437162514114AE4741173C54415C8FC2356F62514100000030183C5441A4703D3A6D625141EC51B87E193C54410AD7A3806962514148E17AF41B3C54417B14AEA7686251410AD7A3001D3C54417B14AE97716251410AD7A320233C5441000000A07B6251410AD7A3002A3C54413D0AD7837C625141E17A14AE373C5441666666567D625141E17A144E443C5441A4703D0A846251410AD7A330413C5441713D0A5788625141CDCCCC5C3F3C54415C8FC2A591625141E17A14DE3B3C5441295C8F529362514152B81EF53A3C5441713D0A0796625141295C8FF2393C54418FC2F5F89562514152B81E15353C5441EC51B8EE956251411F85EBC1313C54419A9999E99562514152B81E05303C54413333336395625141F6285C1F283C5441EC51B83E95625141AE47E1BA263C5441C3F528FC9462514148E17A44243C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>586071 - 983095
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000002B0000002EFA778351405141A4BD0D31166B54418D6B689051405141FA6E4831166B5441E9AED54E524051410437A834166B54418FC2F5685240514152B81E35166B5441434C9F6852405141081D3138166B5441B81E853B54405141333333B30B6B544152B81E6555405141295C8F72056B54417B14AE874A405141EC51B81E066B5441D7A370FD414051417B14AE37066B54413D0AD79328405141CDCCCC6C066B544148E17A340F4051411F85EB21076B54411F85EBB10B4051410AD7A3D0066B5441D7A370DD0B4051413D0AD703096B544152B81E350C405141C3F528DC0C6B5441666666C60C405141EC51B83E126B5441A4703DCA0F4051418FC2F518206B5441666666161F405141F6285C5F246B54418FC2F5F8264051415C8FC235286B54410AD7A340304051417B14AEB7276B54419A9999792F4051419A9999B9256B54410C5F9E9C2F405141B55466CB226B544172C2AFA82F40514122B8DEC8216B54410C224AAC2F40514190D1AE7B216B5441E6C628DA2F405141348005A51D6B5441A4703DFA2F4051415C8FC2F51A6B54417D52DC1F3040514158AB15C9176B5441F6285C3F304051410AD7A320156B54412291679B3340514196F3344A156B5441A2BDD37A344051413A4D0155156B54410F2183A436405141F2E7C36F156B5441ABA23DC439405141E40B5998156B5441B505AEC23A405141ACA162A4156B54416A79F5423F405141515A73DD156B5441B203A443424051416B96FAE9156B5441A861493D43405141497F90EE156B54412EDAAFF943405141D52990F0156B54411873D76844405141001811F4156B54411E0E4DB64D405141B76CCF1F166B5441CBBE98AE4E4051416AB33524166B544193B04B844F405141AA0BFF27166B544161EE07CE4F405141D5824D29166B5441442192B9504051412CED792D166B54412EFA778351405141A4BD0D31166B5441
+</a>
+
+<b>
+0106000000010000000103000000010000002C0000003791679B3340514197F3344A156B5441F6285C3F304051410AD7A320156B54417E7B0A3C3040514130735668156B54417D52DC1F3040514158AB15C9176B5441A4703DFA2F4051415C8FC2F51A6B5441E6C628DA2F405141348005A51D6B54411D4B0DCF2F4051418E1FF9921E6B5441F94A81B62F405141548CD6A0206B54412D127DAE2F405141ED0F934C216B54410C224AAC2F40514190D1AE7B216B544172C2AFA82F40514122B8DEC8216B54410C5F9E9C2F405141B55466CB226B54417E1502912F405141584D21C4236B54411BA7C2892F40514114FE655F246B54419A9999792F4051419A9999B9256B54410AD7A340304051417B14AEB7276B54410AD7A3B035405141000000F0266B5441A4703D2A414051418FC2F5C8256B5441666666A64F405141F6285C4F246B5441000000F05140514114AE47811A6B54418FC2F5685240514152B81E35166B5441E9AED54E524051410437A834166B54418D6B689051405141FA6E4831166B5441EE51D53551405141A295AD2F166B5441CBBE98AE4E4051416AB33524166B54411E0E4DB64D405141B76CCF1F166B5441B6DC29E549405141F5197F0E166B54418952B7D844405141F48598F7156B5441AB866AF7434051415E8E9AF3156B5441B6543E40434051410BAE5BF0156B54412A74F9D042405141D5F562EE156B5441D97E464042405141EC99D2EB156B5441EFC43D87414051410A488BE8156B544164F48A734040514188316AE2156B54412349BA523F40514197A739DE156B54417779F5423F405141515A73DD156B5441505F561E3D4051418B1D80C2156B5441DC40CB423C405141523AB7B7156B5441669DBFB8394051414286C897156B5441DFCD507E394051412CA9CC94156B5441E018071737405141CF8E9375156B544120C5CBF7344051416E820B5B156B5441B27D4867344051414C7D0F54156B54413791679B3340514197F3344A156B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>439670 - 3335515
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000200000001030000000200000067000000CDCCCCDC95095141F6285CDFD6245541CDCCCC9C9509514166666656D6245541AE47E19A900951419A999939CC2455418FC2F518900951417B14AE27CB24554114AE47F18A0951413D0AD743C0245541333333439009514148E17A84BD245541EC51B8AE8D095141666666D6B9245541333333E38A095141713D0A77B5245541A4703DBA85095141B81E856BAB2455411F85EB4185095141CDCCCC5CAA245541713D0AE78309514133333393A724554152B81E15800951419A9999B99B245541EC51B80E7D095141F6285C5F9A245541D7A3700D7909514152B81EF598245541CDCCCCDC750951415C8FC2759724554185EB518873095141F6285CFF952455415C8FC2157109514152B81E5593245541245D186E7009514161FA22AE9324554180ECDA43700951414C4CDBCC9324554104E581236F0951412B4EFBAB94245541B655BF2D6E095141FEF16B89952455414FEF58676C095141C0E7942597245541DDA4F9486A0951416AA86A0F99245541FB03070F6409514163E794C59E245541CEC9A43D6309514124E604C79F2455415E93C9A461095141A3C80FBAA1245541FDCD555860095141F8EF4B4AA324554171BC25B45F09514106DDBD41A42455416E0EDE725D09514126394DA4A72455419A36ECAF5A095141160B5898A5245541870EDEF257095141851AC878A32455413D0AD7B3580951417B14AEC7A22455411F85EB6154095141333333239E2455411F85EB114D095141C3F528BCA4245541000000F044095141EC51B80EAC2455418FC2F528420951418FC2F518AF245541A4703D1A3F095141C3F528FCB2245541666666363C095141713D0AB7B7245541D7A3706D3B095141F6285CFFB824554185EB51B83709514185EB5158B8245541D7A370AD32095141EC51B86EB624554114AE47113009514185EB51A8B4245541EC51B8FE2D09514152B81E75B3245541713D0A672C0951411F85EBC1B12455418FC2F5482A0951415C8FC285B124554152B81E652B095141C3F5288CB3245541F6285CCF2D095141D7A370BDB9245541B81E850B2F095141E17A14AEBC2455410AD7A3A02F095141A4703D7ABE24554185EB51D82F09514185EB5188BF2455416666660630095141CDCCCCACC0245541C3F5282C300951418FC2F5E8C224554148E17A1430095141F6285C8FC5245541EC51B8CE2F09514152B81EA5CA2455410AD7A3C02F09514148E17A34CD24554185EB51D82F095141E17A14CECD24554185EB511830095141D7A3708DCE2455416666669631095141AE47E12AD02455410000000034095141A4703D9AD1245541000000803809514152B81E25D424554185EB51D83D095141E17A147ED6245541C3F528BC4209514114AE4751D8245541666666364809514100000030D224554185EB51E84C09514148E17A94CC245541B81E85BB51095141000000A0C72455415C8FC2D5550951419A9999E9C3245541C3F528DC57095141295C8F72C724554152B81E8559095141F6285CDFCC24554133333323580951418FC2F588CE2455419A99992953095141295C8F22D42455410AD7A31051095141A4703D2AD6245541B81E853B4E0951415C8FC2D5D824554148E17AD4490951417B14AE07DD245541A4703D3A49095141D7A370CDDD245541E17A141E4B0951415C8FC295DF24554152B81E354D095141C3F528CCE1245541D7A3700D4F09514166666646E32455413D0AD76351095141F6285CEFE42455418FC2F5F85309514185EB51A8E62455415C8FC2E555095141333333C3E7245541519E948F58095141FF789A41E8245541A06164365B09514119BADF23E9245541EA17F3AF5D0951412EEEE3D8E92455412FC140FC5F09514133FB2406EA2455416E5D4D1B6209514133FB2406EA245541F2A2A786660951412EEEE3D8E92455418002844C6B0951414E3C6AE8EA245541F92D5C5D6F095141687DAFCAEB2455415D2530B97209514197F2F861ED24554197B4FBAA74095141CC748326EF245541CC36866F76095141111ED172F1245541EC840C7F770951416AFB2274F42455418A7A380178095141D3AB1E5AF8245541000000F07D09514148E17A94F5245541F6285C3F840951413D0AD723F224554133333323860951411F85EB21F12455410000008080095141D7A3707DEC24554152B81EF57E095141EC51B87EEB245541295C8FA27B095141E17A14BEE92455411F85EBC17809514114AE4791E7245541E17A140E8109514133333313E2245541CDCCCC4C8C09514148E17A94DC245541CDCCCCDC95095141F6285CDFD624554106000000295C8F0266095141F6285C8FB8245541A4703DDA6009514114AE4761BD24554185EB5128600951411F85EBA1BD2455418FC2F54860095141E17A141EBD245541D7A370AD650951410AD7A320B8245541295C8F0266095141F6285C8FB82455410103000000010000000A000000000000E033095141CDCCCC2CD724554114AE4711340951415C8FC205DA245541D7A370BD3409514148E17A14DD2455418FC2F55839095141B81E854BD924554185EB519841095141B81E851BD92455418FC2F52840095141EC51B86ED8245541C3F528FC32095141CDCCCC5CD2245541E17A14FE300951415C8FC295D0245541F6285CBF31095141D7A370ADD2245541000000E033095141CDCCCC2CD7245541
+</a>
+
+<b>
+0106000000010000000103000000010000006A000000A8BA313A3F095141210588D3B22455411CCEDD163F095141C452B004B32455413DD090453C09514183FA379EB7245541666666363C095141713D0AB7B7245541D7A3706D3B095141F6285CFFB824554185EB51B83709514185EB5158B8245541D7A370AD32095141EC51B86EB624554114AE47113009514185EB51A8B4245541EC51B8FE2D09514152B81E75B3245541713D0A672C0951411F85EBC1B12455418FC2F5482A0951415C8FC285B124554152B81E652B095141C3F5288CB3245541F6285CCF2D095141D7A370BDB9245541B81E850B2F095141E17A14AEBC2455410AD7A3A02F095141A4703D7ABE24554185EB51D82F09514185EB5188BF2455416666660630095141CDCCCCACC0245541C3F5282C300951418FC2F5E8C224554148E17A1430095141F6285C8FC5245541EC51B8CE2F09514152B81EA5CA2455410AD7A3C02F09514148E17A34CD24554185EB51D82F095141E17A14CECD24554185EB511830095141D7A3708DCE2455416666669631095141AE47E12AD02455410000000034095141A4703D9AD1245541000000803809514152B81E25D424554185EB51D83D095141E17A147ED6245541C3F528BC4209514114AE4751D8245541666666364809514100000030D224554185EB51E84C09514148E17A94CC245541B81E85BB51095141000000A0C7245541123B094356095141DFA6DC5DC4245541C3F528DC57095141295C8F72C724554152B81E8559095141F6285CDFCC24554133333323580951418FC2F588CE2455419A99992953095141295C8F22D42455410AD7A31051095141A4703D2AD6245541B81E853B4E0951415C8FC2D5D824554148E17AD4490951417B14AE07DD245541A4703D3A49095141D7A370CDDD245541E17A141E4B0951415C8FC295DF24554152B81E354D095141C3F528CCE1245541D7A3700D4F09514166666646E32455413D0AD76351095141F6285CEFE42455418FC2F5F85309514185EB51A8E62455415C8FC2E555095141333333C3E7245541529E948F58095141FD789A41E82455419F6164365B0951411ABADF23E9245541E517F3AF5D09514131EEE3D8E924554131C140FC5F09514137FB2406EA2455416B5D4D1B6209514137FB2406EA245541F2A2A7866609514131EEE3D8E92455418402844C6B095141493C6AE8EA245541FE2D5C5D6F095141667DAFCAEB245541622530B9720951419BF2F861ED24554197B4FBAA74095141CA748326EF245541D136866F76095141151ED172F1245541E9840C7F770951416DFB2274F4245541857A380178095141D2AB1E5AF8245541000000F07D09514148E17A94F5245541F6285C3F840951413D0AD723F224554133333323860951411F85EB21F12455410000008080095141D7A3707DEC24554152B81EF57E095141EC51B87EEB245541295C8FA27B095141E17A14BEE92455411F85EBC17809514114AE4791E7245541E17A140E8109514133333313E2245541CDCCCC4C8C09514148E17A94DC245541CDCCCCDC95095141F6285CDFD6245541CDCCCC9C9509514166666656D6245541AE47E19A900951419A999939CC2455418FC2F518900951417B14AE27CB24554114AE47F18A0951413D0AD743C0245541333333439009514148E17A84BD245541EC51B8AE8D095141666666D6B9245541333333E38A095141713D0A77B5245541A4703DBA85095141B81E856BAB2455411F85EB4185095141CDCCCC5CAA245541713D0AE78309514133333393A724554152B81E15800951419A9999B99B245541EC51B80E7D095141F6285C5F9A245541D7A3700D7909514152B81EF598245541CDCCCCDC750951415C8FC2759724554185EB518873095141F6285CFF952455415C8FC2157109514152B81E5593245541245D186E7009514161FA22AE9324554180ECDA43700951414C4CDBCC9324554108E581236F0951412A4EFBAB94245541B655BF2D6E09514101F26B899524554150EF58676C095141C4E7942597245541DDA4F9486A0951416AA86A0F992455410004070F6409514163E794C59E245541CEC9A43D6309514124E604C79F2455415C93C9A461095141A0C80FBAA1245541FDCD555860095141F8EF4B4AA324554172BC25B45F09514105DDBD41A4245541690EDE725D09514124394DA4A72455419536ECAF5A095141190B5898A5245541890EDEF257095141811AC878A32455413D0AD7B3580951417B14AEC7A22455412B17A26354095141D1820A259E2455413156A1B04C09514106316B18A5245541B4C25C9444095141E5AD0473AC245541C3861E734409514103366797AC24554168220BDB40095141DECE85C1B0245541A8BA313A3F095141210588D3B2245541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>918541 - 3132797
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000400000001030000000100000046000000295C8FA212A1504148E17AD4A82154410AD7A3E014A15041A4703D0AAB21544152B81E9516A15041CDCCCCACAC215441B81E857B18A15041295C8F52AE2154411F85EBB11AA15041D7A3702DB0215441713D0A471DA15041295C8F72B22154419A9999991EA1504114AE47C1B3215441E17A14BE1FA15041EC51B81EB52154410000001021A15041666666A6B62154410000002022A150410AD7A390B72154410AD7A36023A15041295C8F52B8215441333333B324A1504114AE47C1B8215441CDCCCC4C26A15041EC51B80EB92154411F85EBD127A15041CDCCCC0CB92154419A99994928A1504114AE47A1B72154413D0AD78328A150410AD7A3F0B62154418FC2F5A82CA1504133333353AA215441295C8F722DA15041295C8FF2A72154418FC2F5A836A15041295C8F228C215441333333832EA1504185EB51588B2154413D0AD7C32DA1504152B81E458B215441295C8FB22CA15041AE47E12A8B215441295C8F8214A150417B14AE17892154415C8FC22506A150419A99992988215441F6285C8FF5A0504166666616872154411F85EBE1EEA050417B14AEA7862154410AD7A390EAA05041E17A140E84215441EC51B80EE6A050415C8FC2658121544185EB51E8D1A05041D7A370AD7521544185EB5178D2A050418FC2F58876215441AE47E13AD4A05041EC51B85E79215441E17A14FED5A050410AD7A3607C21544114AE47C1D7A05041EC51B8DE7E21544114AE4721D9A05041B81E858B80215441EC51B8EEDAA050419A999959822154411F85EB11DEA050419A999919852154413D0AD713E1A05041B81E856B87215441AE47E1BAE4A05041666666368A215441713D0A77EAA05041B81E856B8E21544185EB5148EDA050417B14AED78F215441713D0AF7EEA05041333333439021544152B81E95F0A05041EC51B81E8F2154413D0AD733F2A050410AD7A3608E2154418FC2F528F4A0504114AE47718D215441C3F5283CF4A0504185EB51188E215441A4703D9AF2A05041C3F528BC8E215441295C8F62F1A05041666666B68F215441AE47E17AF0A05041713D0A9790215441713D0AC7F0A05041AE47E17A91215441333333D3F2A05041713D0A57922154415C8FC2D5F3A050411F85EB41912154419A9999E9F5A05041C3F5286C8E215441B81E85CBFAA05041F6285CBF91215441E17A14EEFAA0504166666696932154415C8FC285FBA050418FC2F5E89421544185EB5138FCA0504148E17A8495215441333333D3FDA0504114AE4711962154411F85EB4100A15041666666269721544148E17A1403A15041C3F5287C98215441EC51B8DE05A15041666666D699215441D7A370BD08A150417B14AE479B215441000000F009A15041A4703D3A9C215441EC51B89E0AA15041E17A146E9D2154410AD7A3100BA15041B81E85CB9E215441D7A3709D0BA1504100000040A02154410AD7A3900CA15041E17A142EA2215441F6285C3F0DA15041295C8F52A3215441A4703DCA0EA150413D0AD703A5215441F6285C7F10A150413D0AD7C3A6215441295C8FA212A1504148E17AD4A821544101030000000100000026000000B81E852B9DA050418FC2F5886E215441333333939AA0504185EB51786C2154413333338398A050415C8FC2A56A2154415C8FC26596A0504185EB518868215441C3F5287C95A05041295C8F9267215441CDCCCCBC93A05041EC51B89E65215441EC51B88E92A0504152B81E6563215441295C8F4291A05041F6285CBF5F215441295C8FA290A05041D7A370DD5C2154410AD7A34090A0504148E17A7459215441F6285C0F90A05041AE47E1DA55215441E17A14DE8FA05041B81E85FB53215441D7A3700D8FA0504114AE476150215441A4703D3A8DA05041666666964C215441333333138CA050415C8FC2E549215441E17A144E8BA050411F85EB4147215441713D0A478BA050417B14AE174621544148E17A8489A0504152B81EB546215441713D0A778CA05041A4703D8A61215441F6285C4F8DA05041713D0AD7692154410AD7A3409FA05041713D0AF7782154410AD7A310A0A050415C8FC2B5792154419A999929A4A050411F85EB117D21544100000060A5A050413D0AD7837B2154415C8FC265A7A05041000000E07921544185EB5168AAA05041B81E85AB782154411F85EB31ADA050415C8FC28577215441000000E0AFA050417B14AEB775215441C3F5284CB1A050413D0AD753722154411F85EB81B4A05041CDCCCC5C7021544166666676B1A0504114AE474171215441EC51B81EAEA050418FC2F5D871215441295C8F72ABA0504152B81E257221544114AE4741A8A05041B81E854B72215441CDCCCCFCA4A05041295C8F127221544185EB51B8A1A0504185EB510871215441A4703DCA9FA050413D0AD72370215441B81E852B9DA050418FC2F5886E2154410103000000010000006F00000014AE47113FA150418FC2F548EB215441B81E85BB3FA150411F85EBB1EB215441E17A149E42A1504114AE4711E9215441D7A3700D48A1504114AE4771E52154418FC2F5B84EA15041CDCCCCACE12154415C8FC29551A1504185EB51E8E3215441F6285C7F58A15041333333E3D92154419A99995959A1504185EB5148D62154418FC2F55858A1504166666646D2215441C3F5280C58A15041B81E85ABCE2154415C8FC2E554A1504185EB5108CB2154413D0AD76351A15041A4703D1AC62154418FC2F5B84DA1504133333323C32154413D0AD7134AA15041A4703D1ABF2154415C8FC2453EA1504166666636CE2154418FC2F5583AA1504114AE4751D3215441000000B03DA15041F6285C9FD62154417B14AE273BA150417B14AE77D72154417B14AE2738A150417B14AE47D4215441000000D035A150417B14AE07D2215441713D0A4733A150417B14AED7CF21544152B81ED52DA15041C3F5281CCA21544114AE47C12DA150418FC2F598C92154419A9999C926A1504100000030BC215441000000A027A1504148E17AA4B9215441E17A142E26A1504185EB51A8B921544152B81E2525A15041CDCCCC8CB92154410000001024A15041295C8F42B92154411F85EBF122A1504152B81EB5B8215441713D0A1722A15041713D0A37B8215441295C8F3221A15041295C8F82B7215441EC51B8FE1FA15041E17A145EB6215441713D0A171FA1504166666626B5215441666666361EA150411F85EB01B4215441E17A145E1DA1504114AE4721B3215441D7A370ED1BA15041333333D3B1215441C3F5280C19A150413D0AD763AF21544152B81E3517A15041295C8F02AE2154417B14AE3715A1504100000020AC2154410000002013A150419A9999E9A921544185EB51B810A15041C3F528ACA72154418FC2F5780FA1504185EB5178A6215441EC51B8DE0DA15041295C8FD2A42154411F85EBC10CA150413D0AD783A32154413D0AD7030CA1504114AE4781A2215441EC51B87E0BA1504148E17A64A121544148E17A140BA150415C8FC265A0215441CDCCCCBC0AA15041CDCCCC4C9F215441666666560AA15041D7A3705D9E2154410AD7A3E009A150417B14AE479D215441E17A142E09A150413D0AD7639C215441E17A14FE07A150417B14AE879B21544148E17AB405A15041295C8F629A2154416666663603A1504148E17A149921544114AE470100A15041C3F5289C97215441EC51B88EFDA05041C3F528BC96215441713D0A07FCA050410000007096215441E17A144EFAA0504100000070962154411F85EB91F8A050410AD7A38095215441D7A370EDF5A05041D7A3708D94215441F6285CFFF3A05041AE47E1DA93215441CDCCCC4CF2A050411F85EB9193215441AE47E12AF3A0504166666696962154411F85EBB1F2A050418FC2F5E89821544152B81EB5F1A050419A9999699A21544114AE47D1EFA050413D0AD7B39B215441EC51B87EEDA05041D7A3709D9B2154415C8FC2D5EBA05041295C8F729B215441A4703DCAEAA050417B14AE1798215441C3F5280CEBA05041D7A3706D9521544100000090EBA050410000009091215441E17A144EEBA050418FC2F5F88F2154415C8FC2E5E8A05041B81E854B8E215441713D0A87E3A050417B14AE578A215441000000D0DDA050419A9999C985215441AE47E1CADBA050418FC2F54884215441C3F528DCD9A05041000000708221544152B81E45D8A050419A9999F9802154415C8FC255D6A050418FC2F5187E215441713D0A67D4A050410AD7A3007B21544185EB51C8D1A05041CDCCCC0C772154417B14AE17D0A05041F6285C9F74215441E17A14EEC7A05041000000E06F21544114AE4771C3A05041666666566D215441EC51B88EC0A0504152B81E856D2154413D0AD743C1A050419A9999896F215441C3F528CCC2A0504100000070722154411F85EB21C6A050415C8FC265782154411F85EB91BFA050413D0AD7037F215441CDCCCCECBCA05041EC51B8AE822154413D0AD7C3BDA05041000000D084215441A4703D5ABFA050419A99994986215441C3F5280CC8A050419A9999E98121544100000090CAA050415C8FC2858521544185EB5158C3A050415C8FC2258F215441A4703D0AC5A050411F85EB919021544148E17A64C7A050418FC2F548922154415C8FC2E5C6A050419A99992995215441CDCCCCDCC7A05041D7A3702D9621544185EB5108CAA05041B81E85FB9B2154411F85EB71D5A0504152B81E45A52154411F85EB81D8A05041E17A14CEA72154410AD7A360E4A050415C8FC205B121544100000090E5A05041333333C3B1215441000000F0E8A05041CDCCCCDCB321544114AE47B1F8A05041D7A3709DBD2154415C8FC25507A15041EC51B8AEC621544114AE474112A150410AD7A3B0CD215441EC51B81E1BA15041CDCCCC6CD3215441E17A14FE38A15041A4703D5AE721544114AE47113FA150418FC2F548EB21544101030000000100000020000000EC51B83E8CA0504185EB51F84721544148E17AF48CA05041E17A14EE492154417B14AEF78DA050410AD7A3204C215441666666268FA050411F85EBB14E215441EC51B86E90A05041000000F051215441F6285CAF90A05041CDCCCC2C542154416666663691A05041713D0A375921544114AE47B191A0504148E17A645D215441295C8F8292A0504114AE47C1602154419A9999A993A05041295C8FA2632154413D0AD76395A05041AE47E13A662154410AD7A32098A05041713D0AF768215441EC51B86E9AA050413D0AD7136B21544114AE47E19CA05041F6285C9F6D2154410AD7A3609FA05041CDCCCC1C6F215441A4703DEAA0A0504114AE47E16F2154419A999969A3A05041AE47E1CA7021544114AE4761A5A050419A999939712154410AD7A3E0A7A05041AE47E16A712154417B14AEB7ABA05041AE47E16A7121544185EB5118AFA05041B81E85DB70215441000000E0AAA0504100000000712154413D0AD733B1A050419A9999D96C2154411F85EBD1B2A050417B14AE876A215441E17A147EB4A050419A99999964215441B81E853BAFA05041295C8F826121544166666606A2A05041AE47E19A592154415C8FC2858FA05041CDCCCC7C4421544152B81EB58EA05041D7A370DD4421544148E17AA48DA05041EC51B82E4521544148E17AB48BA050411F85EBF145215441EC51B83E8CA0504185EB51F847215441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000C4B874D6D0A05041ABE63D9E7321544185EB5178D2A050418FC2F58876215441F8D8F2AAD6A0504113AD1B557D2154410DFAD619D9A050415CD87482802154414AE514F1DBA05041576B0D3C832154413AD808D3DFA05041B3930C74862154413EA97071E6A05041EDA226788B21544174CFD57DEBA050416B3933F08E215441F9464196EBA0504139B155BD8C21544141040458EBA05041AEA1257C8821544150F297EDEBA050413E4E38E0842154414478940AECA05041F9E55127842154418395BFDAE2A05041BBEAC7917E215441430BA09BD4A050415A8F8E2E76215441C4B874D6D0A05041ABE63D9E73215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>918541 - 3503603
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000400000001030000000100000046000000295C8FA212A1504148E17AD4A82154410AD7A3E014A15041A4703D0AAB21544152B81E9516A15041CDCCCCACAC215441B81E857B18A15041295C8F52AE2154411F85EBB11AA15041D7A3702DB0215441713D0A471DA15041295C8F72B22154419A9999991EA1504114AE47C1B3215441E17A14BE1FA15041EC51B81EB52154410000001021A15041666666A6B62154410000002022A150410AD7A390B72154410AD7A36023A15041295C8F52B8215441333333B324A1504114AE47C1B8215441CDCCCC4C26A15041EC51B80EB92154411F85EBD127A15041CDCCCC0CB92154419A99994928A1504114AE47A1B72154413D0AD78328A150410AD7A3F0B62154418FC2F5A82CA1504133333353AA215441295C8F722DA15041295C8FF2A72154418FC2F5A836A15041295C8F228C215441333333832EA1504185EB51588B2154413D0AD7C32DA1504152B81E458B215441295C8FB22CA15041AE47E12A8B215441295C8F8214A150417B14AE17892154415C8FC22506A150419A99992988215441F6285C8FF5A0504166666616872154411F85EBE1EEA050417B14AEA7862154410AD7A390EAA05041E17A140E84215441EC51B80EE6A050415C8FC2658121544185EB51E8D1A05041D7A370AD7521544185EB5178D2A050418FC2F58876215441AE47E13AD4A05041EC51B85E79215441E17A14FED5A050410AD7A3607C21544114AE47C1D7A05041EC51B8DE7E21544114AE4721D9A05041B81E858B80215441EC51B8EEDAA050419A999959822154411F85EB11DEA050419A999919852154413D0AD713E1A05041B81E856B87215441AE47E1BAE4A05041666666368A215441713D0A77EAA05041B81E856B8E21544185EB5148EDA050417B14AED78F215441713D0AF7EEA05041333333439021544152B81E95F0A05041EC51B81E8F2154413D0AD733F2A050410AD7A3608E2154418FC2F528F4A0504114AE47718D215441C3F5283CF4A0504185EB51188E215441A4703D9AF2A05041C3F528BC8E215441295C8F62F1A05041666666B68F215441AE47E17AF0A05041713D0A9790215441713D0AC7F0A05041AE47E17A91215441333333D3F2A05041713D0A57922154415C8FC2D5F3A050411F85EB41912154419A9999E9F5A05041C3F5286C8E215441B81E85CBFAA05041F6285CBF91215441E17A14EEFAA0504166666696932154415C8FC285FBA050418FC2F5E89421544185EB5138FCA0504148E17A8495215441333333D3FDA0504114AE4711962154411F85EB4100A15041666666269721544148E17A1403A15041C3F5287C98215441EC51B8DE05A15041666666D699215441D7A370BD08A150417B14AE479B215441000000F009A15041A4703D3A9C215441EC51B89E0AA15041E17A146E9D2154410AD7A3100BA15041B81E85CB9E215441D7A3709D0BA1504100000040A02154410AD7A3900CA15041E17A142EA2215441F6285C3F0DA15041295C8F52A3215441A4703DCA0EA150413D0AD703A5215441F6285C7F10A150413D0AD7C3A6215441295C8FA212A1504148E17AD4A821544101030000000100000026000000B81E852B9DA050418FC2F5886E215441333333939AA0504185EB51786C2154413333338398A050415C8FC2A56A2154415C8FC26596A0504185EB518868215441C3F5287C95A05041295C8F9267215441CDCCCCBC93A05041EC51B89E65215441EC51B88E92A0504152B81E6563215441295C8F4291A05041F6285CBF5F215441295C8FA290A05041D7A370DD5C2154410AD7A34090A0504148E17A7459215441F6285C0F90A05041AE47E1DA55215441E17A14DE8FA05041B81E85FB53215441D7A3700D8FA0504114AE476150215441A4703D3A8DA05041666666964C215441333333138CA050415C8FC2E549215441E17A144E8BA050411F85EB4147215441713D0A478BA050417B14AE174621544148E17A8489A0504152B81EB546215441713D0A778CA05041A4703D8A61215441F6285C4F8DA05041713D0AD7692154410AD7A3409FA05041713D0AF7782154410AD7A310A0A050415C8FC2B5792154419A999929A4A050411F85EB117D21544100000060A5A050413D0AD7837B2154415C8FC265A7A05041000000E07921544185EB5168AAA05041B81E85AB782154411F85EB31ADA050415C8FC28577215441000000E0AFA050417B14AEB775215441C3F5284CB1A050413D0AD753722154411F85EB81B4A05041CDCCCC5C7021544166666676B1A0504114AE474171215441EC51B81EAEA050418FC2F5D871215441295C8F72ABA0504152B81E257221544114AE4741A8A05041B81E854B72215441CDCCCCFCA4A05041295C8F127221544185EB51B8A1A0504185EB510871215441A4703DCA9FA050413D0AD72370215441B81E852B9DA050418FC2F5886E2154410103000000010000006F00000014AE47113FA150418FC2F548EB215441B81E85BB3FA150411F85EBB1EB215441E17A149E42A1504114AE4711E9215441D7A3700D48A1504114AE4771E52154418FC2F5B84EA15041CDCCCCACE12154415C8FC29551A1504185EB51E8E3215441F6285C7F58A15041333333E3D92154419A99995959A1504185EB5148D62154418FC2F55858A1504166666646D2215441C3F5280C58A15041B81E85ABCE2154415C8FC2E554A1504185EB5108CB2154413D0AD76351A15041A4703D1AC62154418FC2F5B84DA1504133333323C32154413D0AD7134AA15041A4703D1ABF2154415C8FC2453EA1504166666636CE2154418FC2F5583AA1504114AE4751D3215441000000B03DA15041F6285C9FD62154417B14AE273BA150417B14AE77D72154417B14AE2738A150417B14AE47D4215441000000D035A150417B14AE07D2215441713D0A4733A150417B14AED7CF21544152B81ED52DA15041C3F5281CCA21544114AE47C12DA150418FC2F598C92154419A9999C926A1504100000030BC215441000000A027A1504148E17AA4B9215441E17A142E26A1504185EB51A8B921544152B81E2525A15041CDCCCC8CB92154410000001024A15041295C8F42B92154411F85EBF122A1504152B81EB5B8215441713D0A1722A15041713D0A37B8215441295C8F3221A15041295C8F82B7215441EC51B8FE1FA15041E17A145EB6215441713D0A171FA1504166666626B5215441666666361EA150411F85EB01B4215441E17A145E1DA1504114AE4721B3215441D7A370ED1BA15041333333D3B1215441C3F5280C19A150413D0AD763AF21544152B81E3517A15041295C8F02AE2154417B14AE3715A1504100000020AC2154410000002013A150419A9999E9A921544185EB51B810A15041C3F528ACA72154418FC2F5780FA1504185EB5178A6215441EC51B8DE0DA15041295C8FD2A42154411F85EBC10CA150413D0AD783A32154413D0AD7030CA1504114AE4781A2215441EC51B87E0BA1504148E17A64A121544148E17A140BA150415C8FC265A0215441CDCCCCBC0AA15041CDCCCC4C9F215441666666560AA15041D7A3705D9E2154410AD7A3E009A150417B14AE479D215441E17A142E09A150413D0AD7639C215441E17A14FE07A150417B14AE879B21544148E17AB405A15041295C8F629A2154416666663603A1504148E17A149921544114AE470100A15041C3F5289C97215441EC51B88EFDA05041C3F528BC96215441713D0A07FCA050410000007096215441E17A144EFAA0504100000070962154411F85EB91F8A050410AD7A38095215441D7A370EDF5A05041D7A3708D94215441F6285CFFF3A05041AE47E1DA93215441CDCCCC4CF2A050411F85EB9193215441AE47E12AF3A0504166666696962154411F85EBB1F2A050418FC2F5E89821544152B81EB5F1A050419A9999699A21544114AE47D1EFA050413D0AD7B39B215441EC51B87EEDA05041D7A3709D9B2154415C8FC2D5EBA05041295C8F729B215441A4703DCAEAA050417B14AE1798215441C3F5280CEBA05041D7A3706D9521544100000090EBA050410000009091215441E17A144EEBA050418FC2F5F88F2154415C8FC2E5E8A05041B81E854B8E215441713D0A87E3A050417B14AE578A215441000000D0DDA050419A9999C985215441AE47E1CADBA050418FC2F54884215441C3F528DCD9A05041000000708221544152B81E45D8A050419A9999F9802154415C8FC255D6A050418FC2F5187E215441713D0A67D4A050410AD7A3007B21544185EB51C8D1A05041CDCCCC0C772154417B14AE17D0A05041F6285C9F74215441E17A14EEC7A05041000000E06F21544114AE4771C3A05041666666566D215441EC51B88EC0A0504152B81E856D2154413D0AD743C1A050419A9999896F215441C3F528CCC2A0504100000070722154411F85EB21C6A050415C8FC265782154411F85EB91BFA050413D0AD7037F215441CDCCCCECBCA05041EC51B8AE822154413D0AD7C3BDA05041000000D084215441A4703D5ABFA050419A99994986215441C3F5280CC8A050419A9999E98121544100000090CAA050415C8FC2858521544185EB5158C3A050415C8FC2258F215441A4703D0AC5A050411F85EB919021544148E17A64C7A050418FC2F548922154415C8FC2E5C6A050419A99992995215441CDCCCCDCC7A05041D7A3702D9621544185EB5108CAA05041B81E85FB9B2154411F85EB71D5A0504152B81E45A52154411F85EB81D8A05041E17A14CEA72154410AD7A360E4A050415C8FC205B121544100000090E5A05041333333C3B1215441000000F0E8A05041CDCCCCDCB321544114AE47B1F8A05041D7A3709DBD2154415C8FC25507A15041EC51B8AEC621544114AE474112A150410AD7A3B0CD215441EC51B81E1BA15041CDCCCC6CD3215441E17A14FE38A15041A4703D5AE721544114AE47113FA150418FC2F548EB21544101030000000100000020000000EC51B83E8CA0504185EB51F84721544148E17AF48CA05041E17A14EE492154417B14AEF78DA050410AD7A3204C215441666666268FA050411F85EBB14E215441EC51B86E90A05041000000F051215441F6285CAF90A05041CDCCCC2C542154416666663691A05041713D0A375921544114AE47B191A0504148E17A645D215441295C8F8292A0504114AE47C1602154419A9999A993A05041295C8FA2632154413D0AD76395A05041AE47E13A662154410AD7A32098A05041713D0AF768215441EC51B86E9AA050413D0AD7136B21544114AE47E19CA05041F6285C9F6D2154410AD7A3609FA05041CDCCCC1C6F215441A4703DEAA0A0504114AE47E16F2154419A999969A3A05041AE47E1CA7021544114AE4761A5A050419A999939712154410AD7A3E0A7A05041AE47E16A712154417B14AEB7ABA05041AE47E16A7121544185EB5118AFA05041B81E85DB70215441000000E0AAA0504100000000712154413D0AD733B1A050419A9999D96C2154411F85EBD1B2A050417B14AE876A215441E17A147EB4A050419A99999964215441B81E853BAFA05041295C8F826121544166666606A2A05041AE47E19A592154415C8FC2858FA05041CDCCCC7C4421544152B81EB58EA05041D7A370DD4421544148E17AA48DA05041EC51B82E4521544148E17AB48BA050411F85EBF145215441EC51B83E8CA0504185EB51F847215441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000C4B874D6D0A05041ABE63D9E7321544185EB5178D2A050418FC2F58876215441F8D8F2AAD6A0504113AD1B557D2154410DFAD619D9A050415CD87482802154414AE514F1DBA05041576B0D3C832154413AD808D3DFA05041B3930C74862154413EA97071E6A05041EDA226788B21544174CFD57DEBA050416B3933F08E215441F9464196EBA0504139B155BD8C21544141040458EBA05041AEA1257C8821544150F297EDEBA050413E4E38E0842154414478940AECA05041F9E55127842154418395BFDAE2A05041BBEAC7917E215441430BA09BD4A050415A8F8E2E76215441C4B874D6D0A05041ABE63D9E73215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>872337 - 3109356
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000002D0000005F8F66DDFD6851414B7EFBC3C2945441000F4AF9FF685141A3B453F7C3945441B503A2B8016951418AE61FF6C494544145705866036951410048E1EAC59454413025EEA004695141D39C0F9EC694544114AE47D1046951419A9999B9C694544140AB868D06695141196D7BB6C794544168FF20CA076951411B6DB46AC89454411292555109695141C5E36449C99454414A3187840A69514109EE04F4C9945441E27912830C6951417328631ACB9454411EF8AFCC0D695141362195D6CB945441E02B933F0F69514184E9BAA9CC9454411A423BC410695141FE52EC90CD9454411D1BC81211695141BA8622BFCD945441512BD2CD106951414681BE67CD9454419160F0530F695141866EE78ACC94544112FD14AD0E6951410610F01ECC945441531EA3470C695141074939D1CA94544112514FB00A69514186E079EFC99454419235696C096951410726FD34C9945441520C908607695141460E421DC89454419337E69605695141474C6F0AC79454411369D9F003695141C78C0E15C694544113E533CB016951418772E1DFC4945441136672E0FF68514187596DB9C394544154B4048DFF68514147011397C394544181DF547EFD685141EF2B217EC29454415818F07BFD685141E5D67D8CC294544114AE4721ED685141CDCCCC3CB9945441C3F5280CE168514133333323AF945441AE47E1FAD4685141E17A14EEA19454413D0AD723C068514185EB51088E945441A4703D9ABD685141000000208B945441EC51B89EBB68514152B81EA58A945441295C8F22B568514148E17A048D945441295C8FA2AF685141EC51B8DE8E945441CDCCCCACAC6851419A99996991945441E17A14FE9E68514185EB51F8C2945441EC51B81E91685141F6285C2FF5945441D7A370CD91685141713D0A77F6945441E17A143EBE6851410AD7A330059554413D0AD7B3E7685141A4703DEA1295544158156DDBEF6851418DF35D6CF59454415F8F66DDFD6851414B7EFBC3C29454410103000000010000000F0000001D1BC81211695141BA8622BFCD94544151D914F5106951414634E5C9CD94544167DC98C010695141980CFE56CE945441E47DFF130B6951413EF60498E3945441C722D883026951414CAF35AB039554419943F9A0FD685141C8599EF815955441AE47E16A096951413D0AD7E315955441F6285C5F16695141CDCCCCCC15955441336AF4C117695141057ED95D14955441F3311D28186951412745F2EC12955441F0169C371F6951416075626DF994544148E17A942669514152B81ED5DE945441B81E850B266951415C8FC245DD94544185EB51481B695141AE47E14AD59454411D1BC81211695141BA8622BFCD945441
+</a>
+
+<b>
+0106000000010000000103000000010000001400000085EB51481B695141AE47E14AD594544114AE47F1106951410AD7A3A0CD945441C3F5288C09695141AE47E16AC994544114AE47D1046951419A9999B9C6945441D7A370DDFD6851413D0AD7C3C294544146F9F2D9F0685141A60EB865BB945441039B1A5CDA68514117EE7C7F0E9554413D0AD7B3E7685141A4703DEA12955441295C8F12EF685141AE47E15A1595544114AE4731F1685141EC51B80E16955441D7A3701DF2685141E17A140E16955441CDCCCCDCF3685141AE47E10A16955441B81E855BF46851418FC2F50816955441AE47E16A096951413D0AD7E315955441F6285C5F16695141CDCCCCCC1595544114AE47A1176951413D0AD7D314955441B81E85EB1C6951419A9999B90195544148E17A942669514152B81ED5DE945441B81E850B266951415C8FC245DD94544185EB51481B695141AE47E14AD5945441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>872337 - 3491171
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000002D0000005F8F66DDFD6851414B7EFBC3C2945441000F4AF9FF685141A3B453F7C3945441B503A2B8016951418AE61FF6C494544145705866036951410048E1EAC59454413025EEA004695141D39C0F9EC694544114AE47D1046951419A9999B9C694544140AB868D06695141196D7BB6C794544168FF20CA076951411B6DB46AC89454411292555109695141C5E36449C99454414A3187840A69514109EE04F4C9945441E27912830C6951417328631ACB9454411EF8AFCC0D695141362195D6CB945441E02B933F0F69514184E9BAA9CC9454411A423BC410695141FE52EC90CD9454411D1BC81211695141BA8622BFCD945441512BD2CD106951414681BE67CD9454419160F0530F695141866EE78ACC94544112FD14AD0E6951410610F01ECC945441531EA3470C695141074939D1CA94544112514FB00A69514186E079EFC99454419235696C096951410726FD34C9945441520C908607695141460E421DC89454419337E69605695141474C6F0AC79454411369D9F003695141C78C0E15C694544113E533CB016951418772E1DFC4945441136672E0FF68514187596DB9C394544154B4048DFF68514147011397C394544181DF547EFD685141EF2B217EC29454415818F07BFD685141E5D67D8CC294544114AE4721ED685141CDCCCC3CB9945441C3F5280CE168514133333323AF945441AE47E1FAD4685141E17A14EEA19454413D0AD723C068514185EB51088E945441A4703D9ABD685141000000208B945441EC51B89EBB68514152B81EA58A945441295C8F22B568514148E17A048D945441295C8FA2AF685141EC51B8DE8E945441CDCCCCACAC6851419A99996991945441E17A14FE9E68514185EB51F8C2945441EC51B81E91685141F6285C2FF5945441D7A370CD91685141713D0A77F6945441E17A143EBE6851410AD7A330059554413D0AD7B3E7685141A4703DEA1295544158156DDBEF6851418DF35D6CF59454415F8F66DDFD6851414B7EFBC3C29454410103000000010000000F0000001D1BC81211695141BA8622BFCD94544151D914F5106951414634E5C9CD94544167DC98C010695141980CFE56CE945441E47DFF130B6951413EF60498E3945441C722D883026951414CAF35AB039554419943F9A0FD685141C8599EF815955441AE47E16A096951413D0AD7E315955441F6285C5F16695141CDCCCCCC15955441336AF4C117695141057ED95D14955441F3311D28186951412745F2EC12955441F0169C371F6951416075626DF994544148E17A942669514152B81ED5DE945441B81E850B266951415C8FC245DD94544185EB51481B695141AE47E14AD59454411D1BC81211695141BA8622BFCD945441
+</a>
+
+<b>
+0106000000010000000103000000010000001400000085EB51481B695141AE47E14AD594544114AE47F1106951410AD7A3A0CD945441C3F5288C09695141AE47E16AC994544114AE47D1046951419A9999B9C6945441D7A370DDFD6851413D0AD7C3C294544146F9F2D9F0685141A60EB865BB945441039B1A5CDA68514117EE7C7F0E9554413D0AD7B3E7685141A4703DEA12955441295C8F12EF685141AE47E15A1595544114AE4731F1685141EC51B80E16955441D7A3701DF2685141E17A140E16955441CDCCCCDCF3685141AE47E10A16955441B81E855BF46851418FC2F50816955441AE47E16A096951413D0AD7E315955441F6285C5F16695141CDCCCCCC1595544114AE47A1176951413D0AD7D314955441B81E85EB1C6951419A9999B90195544148E17A942669514152B81ED5DE945441B81E850B266951415C8FC245DD94544185EB51481B695141AE47E14AD5945441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>192772 - 14844
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000900000057000000AC2C1FA66FC350416515BA066126554155892E4F6FC35041522F919C562655418E56BB066FC3504151D2AA6250265541EC0FDA586EC350414458A84A42265541B4424DA16EC35041B859BABE33265541713D0AA76DC350419A9999E932265541AE47E1CA6AC3504185EB51C8322655416AEC7DB96AC35041B859BABE33265541098957BE68C35041F21BB0F8332655410E2F8ABB68C35041C9ED70E531265541BDC85FC86AC35041F09F72D031265541578BDBFC6AC3504130FEEA2E322655417B14AE876EC3504114AE47F1312655415F94C5CC6EC35041ABAFB21531265541AA37B6236FC35041D380E86727265541FC395FDE70C350410029061CFE255541ADE0F9B56BC3504135FEC2F2FD255541906B2FFE6BC35041649AF1FDF8255541731A1B7971C350417CFAE31CF925554148E17AA471C35041AE47E1AAF72555414310B1E974C3504140549480F3255541CFFED9AA79C35041C93038E1EF25554102A00A6C7BC35041230B1CACED25554183C3660B7FC35041FE7E9433D72555419EBA8F237EC350411876BD4BD6255541713D0A177EC35041EC51B8DED4255541D871EEDF7EC3504173450A99D42555419799CAAA7FC35041983C33B1D3255541B66497CC80C35041EFDF2308D4255541326666B480C35041A1A9F55ED52555411B2A2AC885C35041EFDEA454D52555413FB4CC1885C350418A6DB972DA255541A325B8FA7FC3504107634DA6DA255541F363ADCD7DC35041C7B7DEBEE72555416B5C8DDF81C35041F777C3FCE7255541243CB68281C35041399BE637EC255541E72D6BE07CC350419E30884CEC2555418FC2F5887CC3504185EB51E8ED25554110CDE5C97BC350413AB30AAFEF255541E17A148E7AC3504148E17A04F1255541F6285C4F76C350415C8FC245F42555410959522D74C35041AFA18C80F6255541493C0DE072C350414AC7A8B5F82555412B66A94072C35041E8CBFF71FC255541DADACAE371C35041B5F538F9072655419E94AC9A7EC350418F0FC67108265541EEF45C317FC35041E10C3EE7F62555410CBFC45F86C350417E39D48CF62555419678A14186C35041BEB81CDC0D2655418305E87D86C35041771253D1262655413E550DC87FC35041771253D1262655419E94AC9A7EC350410D19CD720E265541ED4D84A771C35041845FF0900E2655413B92053770C35041C790AD3231265541C0F7EBC770C35041F7470CEF3126554114AE47A18FC3504185EB51F82E265541A4703DCA8DC35041713D0A47E5255541F6285C3F99C35041666666B6E425554131EDF8A197C3504154A54716B42555416F50FB2380C35041A943CDC5BF2555410C587D546EC350419CF4ADA2E3255541E1AC70AF6DC35041BA750A16E525554134C7AF4F66C35041FDE099B6F3255541F6285C7F64C35041295C8FC20D2655419A99993961C35041713D0A87452655415C8FC22562C350410AD7A3405E2655417B14AED762C3504185EB51786F265541CDCCCC1C64C35041B81E854B7C265541AF6E27D164C3504141F7E10D802655411024AD0B66C3504147E5E8D27F265541496C127167C3504196713CEE82265541EBB2F31E68C35041AAA486C7892655411C5FBB5D69C350416BB634978B2655414F00EC1E6BC35041F926B2A58B2655417C75C0E96EC350418DC38BAA89265541E6E37D6270C35041558E813B84265541FAB9E10171C35041EB1FC4C2822655415C8FC2156EC35041C3F5280C832655416676C8A56DC35041FCD124AB80265541F139E65472C35041F2AD3235802655417B14AE9772C35041000000107E265541FC45F19972C35041947567337D2655415A9672276CC3504170EBC4E27D265541FB15A9AB6BC35041461C020B78265541BA3AF2D571C3504134D1E78477265541A600C3AF71C350413C1F16A175265541AC2C1FA66FC350416515BA0661265541050000003D6830316AC35041DB6EC2CB0C26554195D5D17F6AC350414B99ABE107265541CC3D471B6FC35041F24FFC080826554179E29E076FC35041812513F30C2655413D6830316AC35041DB6EC2CB0C265541110000003E441D0379C35041BCC3F71FD52555413F202B8D78C350415E445D96D42555413A0E325278C35041F87CDE20D32555413F202B8D78C350414390A248D225554148680F7979C35041E61008BFD125554151B0F3647AC35041E1FE0E84D1255541069D2F3D7BC3504189916D35D12555410AD31AEE7BC35041E7EC1549D125554114F70C647CC35041E61008BFD1255541131BFFD97CC3504148A29B83D22555417176A7ED7CC35041A4452883D3255541C5D14F017DC3504155206B20D4255541C0BF56C67CC35041B7B1FEE4D4255541BC896B157CC35041627A4847D525554155E6DE157BC350416C9E3ABDD5255541F43059DB79C35041C50BDC0BD62555413E441D0379C35041BCC3F71FD52555410E000000EEDFC6BD8FC35041D8B62A98D02555418C4E33F98EC3504128B8F584CF2555413E0584208FC3504178DDB2E7CE25554191602C348FC350416A83D5C0CD255541A09617E58FC3504103E048C1CC255541FC39A4E490C3504103E048C1CC255541B638D9F791C35041573BF1D4CC25554112DC65F792C35041B9CC8499CD255541BEA4AF5993C3504115701199CE2555411C00586D93C350417C139E98CF2555416B49074693C35041855B8284D02555415DEF291F92C350418F7F74FAD0255541FC39A4E490C350418F7F74FAD0255541EEDFC6BD8FC35041D8B62A98D02555410500000058A8FEE167C35041FC42BDB22D2655417008F10068C3504161B4A89428265541BE6156296DC35041AEE9578A2826554159CCB4146DC35041AF0D0EBD2D26554158A8FEE167C35041FC42BDB22D2655410500000087C3C6C168C35041EB12052B1E265541A45BDFF568C3504114D90EF4182655416523C3056EC3504122251B0E19265541621040FF6DC35041E8FF81241E26554187C3C6C168C35041EB12052B1E26554105000000B874144867C350419046F1B73C265541C7C0206267C3504139B9696B38265541410CC7EF6BC3504140DF6F78382655413EF943E96BC350418920EBAA3C265541B874144867C350419046F1B73C265541050000009DDCFB1367C350412173B73E4E26554192A3720067C35041C9E52FF249265541DFF770396BC35041BFACA6DE49265541EA30FA4C6BC35041163A2E2B4E2655419DDCFB1367C350412173B73E4E2655410500000021084EE069C35041705CC9565F265541047035AC69C350410A8335F05A2655416636460C6EC35041F823A6CF5A2655416D5C4C196EC350415BEAB62F5F26554121084EE069C35041705CC9565F265541
+</a>
+
+<b>
+0106000000010000000103000000090000008E00000080DA236875C35041A8BD34880E2655415EF71FAB71C35041334EB6970E2655417B06560971C35041A60BA96E1D2655413B92053770C35041C790AD32312655414B83D88C70C350412ACA3FA231265541B0EB6BC870C35041FCFCFFEE3126554114AE47A18FC3504185EB51F82E265541A4703DCA8DC35041713D0A47E5255541F6285C3F99C35041666666B6E425554167A07E9B97C3504176F2891CB425554157FBCADE93C35041553564F5B5255541C98704CE8EC35041204C717AB8255541BACE202B80C350418A393FC2BF255541FF8A154C70C350418D9201C5DF255541E919FDA26EC350416FF32F08E3255541ADECE3106EC350413A26C73AE4255541E6AC70AF6DC35041BA750A16E52555414D10FC2E6DC350415F97D814E6255541DC1CD7FE6CC3504129C6E079E6255541D35D455166C350412BCAE6B3F3255541F6285C7F64C35041295C8FC20D2655419A99993961C35041713D0A87452655415C8FC22562C350410AD7A3405E2655417B14AED762C3504185EB51786F265541CDCCCC1C64C35041B81E854B7C265541632858D264C350416FD4A80D80265541B46033B665C35041E6B9EFE27F2655411024AD0B66C3504147E5E8D27F2655414AA2490D66C350411AD57ED67F265541A8AE214D66C35041ABC9B062802655413A64584667C35041409E278F82265541496C127167C3504196713CEE822655416C3DEF8D67C350410D32550E84265541EBB2F31E68C35041AAA486C7892655411C5FBB5D69C350416BB634978B2655414F00EC1E6BC35041F926B2A58B2655417C75C0E96EC350418DC38BAA89265541B81FBD756FC3504125C5ABA5872655418CA5086370C3504118399E2E8426554169DCA30071C35041024FE3C2822655415C8FC2156EC35041C3F5280C832655416676C8A56DC35041FCD124AB802655413BE3F95072C350418677953580265541C9BF568F72C3504128C298547E265541E7ED1B9772C35041EEEDB1147E265541B3D4239972C35041A6C24C357D26554160AECC686EC3504178F26CA57D2655417DE231576CC35041525B39E57D265541559672276CC350416CEBC4E27D2655412F5BA5C96BC35041490B5575792655411D23B4A26BC350412AA3F108782655415A4F3AD271C350417E033F7F772655412B393E7371C350419A0AC26673265541494974C270C350414DE1A4416C2655416F9F615770C35041B39D04076826554129E995B66FC350411CC031AD612655415D43F69F6FC35041A1B6FDD06026554191F4B48E6FC35041F85CAB385E26554155892E4F6FC35041522F919C562655418E56BB066FC3504151D2AA6250265541B04E5A756EC35041BA6E0D9A44265541CCCEAA5E6EC35041E37057D442265541E954DC5E6EC35041C86F57C742265541EC0FDA586EC350414458A84A4226554165C54C7A6EC35041FA1B6D933B2655417F03D69E6EC350419EC4A0BC33265541713D0AA76DC350419A9999E932265541AE47E1CA6AC3504185EB51C8322655416AEC7DB96AC35041B859BABE33265541098957BE68C35041F21BB0F8332655417C7EC1BB68C3504141EF660E322655413C42D7B868C35041815856EE31265541E80996BB68C35041B07038EE312655410E2F8ABB68C35041C9ED70E531265541BDC85FC86AC35041F09F72D03126554182A969CC6AC35041EB9AB7D7312655419E3328D46AC35041E43D63D7312655414C500CE06AC35041ED930FFB31265541578BDBFC6AC3504130FEEA2E322655417B14AE876EC3504114AE47F1312655415F94C5CC6EC35041ABAFB21531265541AA37B6236FC35041D380E86727265541F7395FDE70C350410429061CFE255541ACE0F9B56BC3504137FEC2F2FD255541376A30FB6BC3504163FB9632F92555416FAA32FE6BC350412DD169FBF8255541781E647971C35041201B751AF925554148E17AA471C35041AE47E1AAF7255541DD4A0AD374C35041CE8BDF94F3255541C275ACE374C35041337E3E88F32555414310B1E974C3504140549480F3255541CFFED9AA79C35041C93038E1EF25554102A00A6C7BC35041230B1CACED255541BC6C010B7FC35041461D0936D72555412DF686207EC350416F79584AD6255541713D0A177EC35041EC51B8DED4255541D871EEDF7EC3504173450A99D42555419799CAAA7FC35041983C33B1D3255541B66497CC80C35041EFDF2308D4255541D2DB19C580C350411A874972D42555410480D4B680C35041E99B545CD5255541175B22B184C350413DCADB56D5255541202A2AC885C35041F2DEA454D52555418D58DFC685C35041E3474C5ED5255541AC24B11A85C3504103629664DA25554143B4CC1885C350418A6DB972DA2555412F8E9C8C82C3504180A9668CDA25554155B18EFC7FC3504193290DAADA2555415BF4E0D17DC350413304D2BEE72555416A5C8DDF81C35041FA77C3FCE7255541273CB68281C35041359BE637EC255541F168B2E17CC35041B87F824CEC2555418FC2F5887CC3504185EB51E8ED2555410ECDE5C97BC3504137B30AAFEF25554184F7DFE17AC350410827E3A9F02555416DD7DD787AC35041F62FC21DF1255541F6285C4F76C350415C8FC245F4255541E41DDE3D74C3504162DF4273F6255541F4AA1A0E73C3504182009267F82555411E3912E172C35041F83BEEB3F825554114C78D7E72C350417B86A5FEFA2555414717A53F72C3504189EE4F92FC255541EE516C1072C350414ECAEF6E02265541098D13E571C350418B74A1F8072655410A06CF3277C3504192728E2B082655419E94AC9A7EC350418F0FC6710826554125B386097FC350419C1B628AFB255541EEF45C317FC35041E10C3EE7F6255541AEC2A9337FC35041BE1721E7F625554143FDCB337FC35041A4A85CE3F625554192D4C50983C35041D82BD4B6F625554126038C5D86C35041F231F08CF62555410CBFC45F86C350417E39D48CF62555414AD30D5C86C3504135914E6CF9255541BD600F4F86C35041308FBF6C122655415F29CF7286C3504177EB0739222655418305E87D86C35041771253D1262655415D947ADC82C35041771253D12626554110CBBEC67FC35041B8B397D2262655412FD4427F7FC350413CD68CEE202655419E94AC9A7EC350410D19CD720E26554180DA236875C35041A8BD34880E265541050000003D6830316AC35041DB6EC2CB0C26554195D5D17F6AC350414B99ABE107265541CC3D471B6FC35041F24FFC080826554179E29E076FC35041812513F30C2655413D6830316AC35041DB6EC2CB0C265541110000003E441D0379C35041BCC3F71FD52555413F202B8D78C350415E445D96D42555413A0E325278C35041F87CDE20D32555413F202B8D78C350414390A248D225554148680F7979C35041E61008BFD125554151B0F3647AC35041E1FE0E84D1255541069D2F3D7BC3504189916D35D12555410AD31AEE7BC35041E7EC1549D125554114F70C647CC35041E61008BFD1255541131BFFD97CC3504148A29B83D22555417176A7ED7CC35041A4452883D3255541C5D14F017DC3504155206B20D4255541C0BF56C67CC35041B7B1FEE4D4255541BC896B157CC35041627A4847D525554155E6DE157BC350416C9E3ABDD5255541F43059DB79C35041C50BDC0BD62555413E441D0379C35041BCC3F71FD52555410E000000EEDFC6BD8FC35041D8B62A98D02555418C4E33F98EC3504128B8F584CF2555413E0584208FC3504178DDB2E7CE25554191602C348FC350416A83D5C0CD255541A09617E58FC3504103E048C1CC255541FC39A4E490C3504103E048C1CC255541B638D9F791C35041573BF1D4CC25554112DC65F792C35041B9CC8499CD255541BEA4AF5993C3504115701199CE2555411C00586D93C350417C139E98CF2555416B49074693C35041855B8284D02555415DEF291F92C350418F7F74FAD0255541FC39A4E490C350418F7F74FAD0255541EEDFC6BD8FC35041D8B62A98D0255541050000005CA8FEE167C35041F742BDB22D2655416B08F10068C350415FB4A89428265541C16156296DC35041ACE9578A282655415BCCB4146DC35041AA0D0EBD2D2655415CA8FEE167C35041F742BDB22D2655410500000089C3C6C168C35041EF12052B1E265541A55BDFF568C3504117D90EF4182655416123C3056EC350411F251B0E19265541661040FF6DC35041EAFF81241E26554189C3C6C168C35041EF12052B1E26554105000000B774144867C350419446F1B73C265541CBC0206267C3504137B9696B38265541440CC7EF6BC3504141DF6F78382655413FF943E96BC350418A20EBAA3C265541B774144867C350419446F1B73C265541050000009ADCFB1367C350411E73B73E4E26554196A3720067C35041CCE52FF249265541DAF770396BC35041BDACA6DE49265541E930FA4C6BC350411A3A2E2B4E2655419ADCFB1367C350411E73B73E4E2655410500000021084EE069C35041755CC9565F265541047035AC69C350410F8335F05A2655416536460C6EC35041F623A6CF5A2655416F5C4C196EC3504158EAB62F5F26554121084EE069C35041755CC9565F265541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>958590 - 2986914
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000210000000EDD0B6FE36D5141E29D533AB89A544100000010E56D5141000000B0B19A5441EC51B8FEE56D51417B14AE47AF9A5441A4703D6AE76D5141D7A370DDAD9A5441B81E853BEF6D51411F85EB21A99A5441000000B0F76D5141AE47E13AA49A5441CDCCCC3CFE6D5141EC51B89EA09A544185EB51C8096E5141713D0A179B9A54418FC2F5F8136E514100000000979A544114AE47911B6E514152B81EC5949A544114AE4701216E514114AE4751949A5441B81E851B2B6E5141F6285CDF949A5441CDCCCC3C366E5141A4703D9A959A5441713D0AB7386E5141A4703DEA949A54411F85EB013A6E5141295C8FC2939A54410AD7A3A03B6E5141713D0A77909A5441CDCCCC7C436E5141666666A6749A544114AE47F1446E5141EC51B83E709A544148E17A84446E51411F85EB716E9A5441713D0A07436E5141C3F5282C6D9A5441E17A142E366E51417B14AEB7669A5441C3F528EC1D6E5141F6285CEF599A5441B81E852B196E514114AE47A1579A544148E17A94166E51411F85EB91579A5441CDCCCC5C0C6E51417B14AE77599A5441AE47E1DA066E5141B81E858B5B9A5441B81E859BFB6D51411F85EB41619A54413D0AD7E3F36D5141EC51B8FE659A5441E17A14EEE66D5141C3F528CC6E9A544100000050D86D51417B14AED7799A54419A9999F9A56D5141B81E85CBA09A5441AB651FE69D6D5141EF7384FFA79A54410EDD0B6FE36D5141E29D533AB89A5441
+</a>
+
+<b>
+01060000000100000001030000000100000040000000FD4F7447E66D51418302104A6F9A54417BE98F6ADA6D514126E7BD40789A54410FB6B4DBC86D51418B772ACD859A544134EADA82AC6D51419AE6B5BC9B9A54418A0CBCF1A36D514172581E69A29A54415B7198249D6D514120EC58D2A79A5441E1F37D48986D5141C90824B0AB9A5441439043D1966D5141E0E7AADAAC9A5441A8F64EEB946D514167AC495DAE9A544195ADDE7D936D514140B80680AF9A5441AE47E1EA916D51410AD7A3C0B09A5441AE47E15A876D5141B81E85ABB99A54415C8FC2E5846D5141EC51B84EBC9A54413D0AD7F3826D51415C8FC2C5BF9A5441E17A14CE7E6D5141713D0A57C89A54417FC2F415806D5141DD1BACB0C89A54410E3EA2D5816D51410D95941BC99A5441B4584C0A876D51410C7BB74BCA9A54416F3C483F8C6D514136FF718ACB9A5441295C8F02976D514185EB5148CE9A54418FC2F5A8A16D51413D0AD7F3D09A5441713D0AA7B86D5141333333C3D79A5441333333B3BE6D5141C3F5284CD89A544100000080CF6D51410AD7A3C0DC9A54415C8FC265D96D51417B14AE97DF9A5441B81E85DBD96D5141EC51B8AEDE9A54411FA9185EE26D5141A1BD6382BC9A544109DD0B6FE36D5141E19D533AB89A544100000010E56D5141000000B0B19A5441EC51B8FEE56D51417B14AE47AF9A5441A4703D6AE76D5141D7A370DDAD9A5441B81E853BEF6D51411F85EB21A99A5441000000B0F76D5141AE47E13AA49A5441CDCCCC3CFE6D5141EC51B89EA09A544185EB51C8096E5141713D0A179B9A54418FC2F5F8136E514100000000979A544114AE47911B6E514152B81EC5949A544114AE4701216E514114AE4751949A544145D4D84F2E6E5141FAFC2915959A5441CDCCCC3C366E5141A4703D9A959A5441713D0AB7386E5141A4703DEA949A54411F85EB013A6E5141295C8FC2939A5441A9CC02C93B6E5141E9D72CE88F9A54414EF13DE03B6E5141AD11F7958F9A5441BA637F4F3F6E5141269E736E839A5441FB079829446E51411E9E449B729A544114AE47F1446E5141EC51B83E709A544148E17A84446E51411F85EB716E9A5441713D0A07436E5141C3F5282C6D9A5441895E5ED3346E5141A2F4FA00669A5441F5C887EE2A6E514125D44CCA609A5441B81E852B196E514114AE47A1579A544148E17A94166E51411F85EB91579A5441CDCCCC5C0C6E51417B14AE77599A5441AE47E1DA066E5141B81E858B5B9A54416BDA6776036E5141C8279C445D9A544137B18141006E5141A47489E55E9A54412549E3E7FD6D514177EE1717609A5441B80CB548FA6D5141F9B8E711629A5441CA13A21EF66D5141A58F54A0649A54410FD145BBF16D5141EFCE0676679A544173BE12DAEA6D5141FA163E226C9A5441F839728BE86D51414B4666B36D9A5441FD4F7447E66D51418302104A6F9A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>958590 - 3812684
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000210000000EDD0B6FE36D5141E29D533AB89A544100000010E56D5141000000B0B19A5441EC51B8FEE56D51417B14AE47AF9A5441A4703D6AE76D5141D7A370DDAD9A5441B81E853BEF6D51411F85EB21A99A5441000000B0F76D5141AE47E13AA49A5441CDCCCC3CFE6D5141EC51B89EA09A544185EB51C8096E5141713D0A179B9A54418FC2F5F8136E514100000000979A544114AE47911B6E514152B81EC5949A544114AE4701216E514114AE4751949A5441B81E851B2B6E5141F6285CDF949A5441CDCCCC3C366E5141A4703D9A959A5441713D0AB7386E5141A4703DEA949A54411F85EB013A6E5141295C8FC2939A54410AD7A3A03B6E5141713D0A77909A5441CDCCCC7C436E5141666666A6749A544114AE47F1446E5141EC51B83E709A544148E17A84446E51411F85EB716E9A5441713D0A07436E5141C3F5282C6D9A5441E17A142E366E51417B14AEB7669A5441C3F528EC1D6E5141F6285CEF599A5441B81E852B196E514114AE47A1579A544148E17A94166E51411F85EB91579A5441CDCCCC5C0C6E51417B14AE77599A5441AE47E1DA066E5141B81E858B5B9A5441B81E859BFB6D51411F85EB41619A54413D0AD7E3F36D5141EC51B8FE659A5441E17A14EEE66D5141C3F528CC6E9A544100000050D86D51417B14AED7799A54419A9999F9A56D5141B81E85CBA09A5441AB651FE69D6D5141EF7384FFA79A54410EDD0B6FE36D5141E29D533AB89A5441
+</a>
+
+<b>
+01060000000100000001030000000100000040000000FD4F7447E66D51418302104A6F9A54417BE98F6ADA6D514126E7BD40789A54410FB6B4DBC86D51418B772ACD859A544134EADA82AC6D51419AE6B5BC9B9A54418A0CBCF1A36D514172581E69A29A54415B7198249D6D514120EC58D2A79A5441E1F37D48986D5141C90824B0AB9A5441439043D1966D5141E0E7AADAAC9A5441A8F64EEB946D514167AC495DAE9A544195ADDE7D936D514140B80680AF9A5441AE47E1EA916D51410AD7A3C0B09A5441AE47E15A876D5141B81E85ABB99A54415C8FC2E5846D5141EC51B84EBC9A54413D0AD7F3826D51415C8FC2C5BF9A5441E17A14CE7E6D5141713D0A57C89A54417FC2F415806D5141DD1BACB0C89A54410E3EA2D5816D51410D95941BC99A5441B4584C0A876D51410C7BB74BCA9A54416F3C483F8C6D514136FF718ACB9A5441295C8F02976D514185EB5148CE9A54418FC2F5A8A16D51413D0AD7F3D09A5441713D0AA7B86D5141333333C3D79A5441333333B3BE6D5141C3F5284CD89A544100000080CF6D51410AD7A3C0DC9A54415C8FC265D96D51417B14AE97DF9A5441B81E85DBD96D5141EC51B8AEDE9A54411FA9185EE26D5141A1BD6382BC9A544109DD0B6FE36D5141E19D533AB89A544100000010E56D5141000000B0B19A5441EC51B8FEE56D51417B14AE47AF9A5441A4703D6AE76D5141D7A370DDAD9A5441B81E853BEF6D51411F85EB21A99A5441000000B0F76D5141AE47E13AA49A5441CDCCCC3CFE6D5141EC51B89EA09A544185EB51C8096E5141713D0A179B9A54418FC2F5F8136E514100000000979A544114AE47911B6E514152B81EC5949A544114AE4701216E514114AE4751949A544145D4D84F2E6E5141FAFC2915959A5441CDCCCC3C366E5141A4703D9A959A5441713D0AB7386E5141A4703DEA949A54411F85EB013A6E5141295C8FC2939A5441A9CC02C93B6E5141E9D72CE88F9A54414EF13DE03B6E5141AD11F7958F9A5441BA637F4F3F6E5141269E736E839A5441FB079829446E51411E9E449B729A544114AE47F1446E5141EC51B83E709A544148E17A84446E51411F85EB716E9A5441713D0A07436E5141C3F5282C6D9A5441895E5ED3346E5141A2F4FA00669A5441F5C887EE2A6E514125D44CCA609A5441B81E852B196E514114AE47A1579A544148E17A94166E51411F85EB91579A5441CDCCCC5C0C6E51417B14AE77599A5441AE47E1DA066E5141B81E858B5B9A54416BDA6776036E5141C8279C445D9A544137B18141006E5141A47489E55E9A54412549E3E7FD6D514177EE1717609A5441B80CB548FA6D5141F9B8E711629A5441CA13A21EF66D5141A58F54A0649A54410FD145BBF16D5141EFCE0676679A544173BE12DAEA6D5141FA163E226C9A5441F839728BE86D51414B4666B36D9A5441FD4F7447E66D51418302104A6F9A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>46511 - 249793
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000340000006CF353F1CED45041FBCB42F214085541B4EFF3ECCED45041BDE942151508554125F7B3F5CED45041D21D8352150855414CE61445CFD45041BC2DE82617085541FAC42C32D0D450418EF265211E085541C08760F0D9D4504124D2F8E63D0855412B29BF71DAD45041D77581DF3D0855419A9999F9D9D450419A9999093E085541FC34519BE2D450416A771DF63E0855412A8A1984E2D450412DB473002E085541B3112513E3D45041ACE0B08125085541D71C4520E3D450415FB0D048250855418A27961AE3D45041664980F524085541B81E85ABE2D450415C8FC25524085541713D0A47E2D45041F6285C6F2308554114AE4751E2D45041C3F528AC22085541333333A3E2D4504114AE47D1210855417B14AE27E3D450410000007021085541D7A3707DE3D4504152B81EA52008554114AE47F1E3D45041295C8F2220085541CDCCCC7CE4D450417B14AEB71F085541666666D6E4D45041A4703DDA1E085541713D0A07E5D45041D7A370FD1D085541EC51B85EE5D45041F6285C9F1D0855415C8FC225E6D45041CDCCCC3C1D085541000000B0E6D4504185EB51981C085541C3F528DCE6D45041CDCCCCCC1B085541EC51B8CEE6D4504148E17AD419085541AE47E18AE6D4504148E17A54190855419A999989E5D45041A4703D9A18085541CDCCCCCCE4D45041AE47E13A1708554114AE47F1E3D45041E17A142E160855417B14AE67E3D4504152B81E451508554148E17A04E3D45041B81E85DB14085541B81E853BE2D4504148E17A8414085541B81E85EBE0D45041B81E856B14085541295C8FE2DBD45041EC51B89E12085541F6285CAFD9D45041D7A3703D1108554152B81E45D8D45041B81E85CB0F0855417B14AE27D7D450413D0AD7730E085541A4703D6AD6D450417B14AE270E08554185EB51B8D5D45041000000800E0855411F85EB31D5D45041B81E851B0F085541666666F6D4D45041F6285C0F1008554148E17A44D5D4504185EB51C811085541E17A142ED5D45041C3F528AC120855419A9999C9D4D450418FC2F5E813085541D7A3703DD4D450417B14AE67140855418FC2F548D3D45041F6285C8F140855410AD7A320D2D4504185EB51A8140855416E0A7539D0D45041F0B1A2D3140855416CF353F1CED45041FBCB42F214085541
+</a>
+
+<b>
+0106000000010000000103000000010000004E00000055B401D5E6D450413E1D61C01A085541101FE7C5E6D45041BD03D8C319085541A095A47FE6D45041F57E584C190855419A999989E5D45041A4703D9A1808554197B0D3E4E4D45041B03098671708554181C1435AE4D45041EEF5A1AE1608554114AE47F1E3D45041E17A142E16085541F532EDD0E3D45041120C4EF715085541F590101AE3D45041584D7FF214085541D01EC625E2D45041DB54DD8214085541AA92D34AE1D450419593997214085541C0E3DAFDE0D45041CFCCE16C14085541B81E85EBE0D45041B81E856B14085541295C8FE2DBD45041EC51B89E120855417FEC29BBDBD450413E000286120855412B5E1584DAD450414A29E0C211085541BEDC0B66DAD4504181BE08B011085541F6285CAFD9D45041D7A3703D11085541F54E649BD9D45041F2680C291108554152B81E45D8D45041B81E85CB0F085541279819A9D7D450416492AA0F0F085541D719F3A7D7D45041C0FD470E0F085541B937151ED7D45041A050FB6F0E085541DA574062D6D450419F45A52B0E0855410E6B64BDD5D45041F96B7B7D0E0855412E843A47D5D45041F4E8DC020F085541F5F10BF9D4D45041C09F4E1E1008554148E17A44D5D4504185EB51C811085541D46B5E44D5D45041FE6273C911085541E17A142ED5D45041C3F528AC120855419A9999C9D4D450418FC2F5E813085541D7A3703DD4D450417B14AE67140855418FC2F548D3D45041F6285C8F14085541C0CCA89AD2D45041A0BA0A9E14085541EF87D507D1D45041DB5849C114085541D46483F0CED450419440C7F8140855411DF9D538CFD450419CB6A5DE160855414CE61445CFD45041BC2DE826170855413B755551CFD45041FB0F3A8317085541A57B06A0CFD45041B14A2AD41908554124BB7C31D0D45041AC80371C1E08554118AB9408D3D4504107B73362270855415551E685D7D45041393E1F0636085541788E375AD9D45041991B4DFD3B085541CEE9A5ACD9D4504131BA1B0A3D0855415415B6EDD9D45041E15D47DE3D0855412B29BF71DAD45041D77581DF3D085541CEE9FA14DAD45041E8D5870C3E085541CEE32398E2D45041EE69C6F53E085541A6E8088FE2D450416EB74DFD35085541B8813A8AE2D450411E88887A320855412A8A1984E2D450412DB473002E085541AE9C71EBE2D45041954747DD270855418264971AE3D45041DF6F92F524085541BB03F918E3D45041EA162EF324085541B81E85ABE2D450415C8FC25524085541713D0A47E2D45041F6285C6F2308554114AE4751E2D45041C3F528AC22085541333333A3E2D4504114AE47D121085541C7D2E5C4E2D45041962789B8210855416877E02FE3D4504120E89B5C21085541D7A3707DE3D4504152B81EA520085541016F7789E3D45041CFB290972008554114AE47F1E3D45041295C8F2220085541E724301AE4D4504141E038032008554130AF7C85E4D45041A3E835A21F085541E14E98DDE4D45041832594B91E085541EFE02C04E5D45041EEB6710A1E085541713D0A07E5D45041D7A370FD1D085541B27C772CE5D45041250848D51D085541D8F4E433E5D45041E4C44FCD1D085541EC51B85EE5D45041F6285C9F1D0855411417D0F6E5D450416A110C541D08554141E9E829E6D4504182CCDC371D085541991BA8B1E6D450411256AF901C08554103E677BCE6D450416B6EDB5E1C08554170BD5DD2E6D4504161D0EFF91B08554155B401D5E6D450413E1D61C01A085541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>801940 - 249283
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000D000000010300000001000000120100007B14AEA7E8F450417B14AE87F5B854416FB507B6EEF4504114621A4DF7B85441C3F528ECEFF4504148E17AC4F6B85441C3F5289CF1F45041CDCCCCACF6B85441C3F528FCF1F45041CDCCCCFCF7B85441C3F5285CF2F450418FC2F508F8B854410AD7A3C0F4F450418FC2F528F6B8544148E17A34F6F4504148E17A74F5B8544185EB5178F7F45041CDCCCC0CF7B854410AD7A3C0F7F4504148E17A64F6B854410AD7A310F9F4504148E17A34F6B8544148E17A64F9F45041CDCCCCACF3B854410AD7A3F0FAF4504148E17AA4EFB8544185EB5168FBF45041CDCCCC5CEFB8544185EB5168FBF450410AD7A3C0EEB8544148E17AE4FAF45041CDCCCC6CEEB85441C3F528DCF9F45041CDCCCCFCEEB8544148E17A04F9F450410AD7A350EFB854410AD7A320F8F450418FC2F5A8EEB8544185EB5138F8F4504148E17AF4EDB85441C3F5280CFAF4504148E17A34EDB85441C3F5282CF8F4504148E17AD4ECB8544185EB5108F8F450410AD7A360EBB854410AD7A3B0F8F45041CDCCCC8CE9B8544148E17A14FBF45041CDCCCCBCE9B854410AD7A380FBF450418FC2F5B8EAB854410AD7A330FDF450410AD7A370EAB8544148E17A04FFF450418FC2F5B8EAB854410AD7A310FFF450418FC2F538E9B85441C3F528BCFEF450418FC2F5E8E7B854410AD7A3A0FFF4504148E17A34E7B8544185EB517800F550410AD7A320E6B8544148E17A9402F550410AD7A360E5B85441C3F5280C03F550418FC2F578E5B854410AD7A39003F550410AD7A3D0E4B85441C3F5283C03F5504148E17AD4E3B85441C3F5285C04F550418FC2F598E3B854410AD7A34005F5504148E17AE4E2B8544185EB517806F55041CDCCCCCCE2B854410AD7A3B007F55041CDCCCC6CE2B854410AD7A33009F5504148E17A84E2B854410AD7A3E00AF5504148E17AC4E1B85441C3F5288C0AF550410AD7A3F0DFB854410AD7A3E00AF550410AD7A360DFB8544185EB51880BF550410AD7A390DFB854410AD7A3100BF550410AD7A390DCB854410AD7A3D00BF550418FC2F558DBB85441C3F528DC0BF55041CDCCCCCCD9B85441C3F528DC08F550410AD7A3A0D8B8544185EB51F807F55041CDCCCC2CD7B85441C3F528DC08F550418FC2F5C8D4B8544148E17A8409F55041CDCCCC8CD4B8544185EB51080AF5504148E17A64D2B85441C3F5288C0AF550410AD7A310D2B85441C3F5280C0CF55041CDCCCC1CD2B8544148E17AB40CF550418FC2F588D2B854410AD7A3400EF550418FC2F5C8D4B854410AD7A3400EF550410AD7A390D6B85441C3F528CC0CF550410AD7A3C0D6B8544185EB51380DF55041CDCCCC2CD7B8544148E17A840CF5504148E17A94D8B8544185EB51A80CF550418FC2F568DAB85441C3F528BC0DF5504148E17A34DBB854410AD7A3900FF550410AD7A350DDB854410AD7A31011F550418FC2F5C8DDB854410AD7A36012F55041CDCCCCECDDB8544185EB510813F550418FC2F5C8DDB85441C3F5284C14F550410AD7A3D0DEB85441C3F5286C16F55041C3F528ACDFB85441A4703DAA18F550417B14AE77DBB85441C3F528AC17F5504148E17AA4DAB854410AD7A32016F5504148E17A14DAB85441C3F528AC14F550418FC2F598DAB8544185EB510813F5504148E17AB4DCB8544185EB517812F55041CDCCCCCCDCB854410AD7A31011F550410AD7A3A0DBB8544148E17AA410F5504148E17AB4DCB8544185EB513810F550418FC2F528DBB8544148E17AA410F55041CDCCCCECDAB8544185EB51C810F550410AD7A390D9B8544185EB51B811F550410AD7A3C0D6B85441C3F528FC12F550410AD7A330D6B8544185EB512814F550418FC2F588D5B854410AD7A36015F5504148E17A84D3B854410AD7A3F015F550410AD7A360D3B8544185EB513816F5504148E17A84D3B85441C3F528BC16F550418FC2F548D3B8544185EB51A818F550410AD7A350D1B8544148E17A7419F55041CDCCCCFCD0B85441C3F5285C19F5504148E17A74CEB8544185EB51C819F55041CDCCCC6CCDB854410AD7A35019F550410AD7A3D0CCB85441C3F5288C19F550418FC2F598CBB8544185EB51B81AF55041CDCCCCFCCAB8544148E17A441CF55041CDCCCCACC9B8544185EB51F81CF5504148E17AF4C9B8544148E17A641DF55041CDCCCC3CCAB8544148E17A641DF550418FC2F528CCB8544148E17A241EF5504148E17A64CCB854410AD7A3501FF550410AD7A3A0CCB854410AD7A3301EF550410AD7A3B0CEB854410AD7A3E01CF5504148E17A64D2B85441C3F5281C1DF5504148E17A24D3B85441AE47E1BA21F550415C8FC2C5CBB85441A4703D8A26F55041C3F528FCC4B8544185EB51D824F550418FC2F528C6B854410AD7A30024F550418FC2F538C5B854410AD7A3F024F550418FC2F518C4B8544148E17A4425F550410AD7A320C2B8544185EB51F825F55041CDCCCC0CC1B8544148E17AC426F550410AD7A3A0BDB85441C3F5281C26F550410AD7A310BDB8544148E17A1425F5504148E17A64BDB85441C3F528FC24F550410AD7A3B0BCB85441C3F528AC26F55041CDCCCCFCBBB8544185EB51C825F550418FC2F528BAB85441C3F5284C26F550410AD7A3A0B7B8544148E17A2427F5504148E17A04B7B8544148E17AA428F55041CDCCCCECB6B854410AD7A3A029F5504148E17AD4B6B8544185EB51482AF5504148E17A54B8B85441CDCCCC5C2BF550418FC2F568BCB85441295C8F322BF550418FC2F568BEB8544185EB51B830F55041E17A149EB6B85441AE47E16A32F55041D7A3704DB5B8544148E17AA431F5504148E17AF4B4B8544185EB51B82FF5504148E17AF4B4B8544185EB51182DF550418FC2F538B6B8544148E17A642CF5504148E17AB4B5B85441CDCCCC1C2CF55041CDCCCC1CB4B8544148E17A942CF5504148E17A84B2B8544185EB51282CF550410AD7A350B0B854410AD7A3502BF5504148E17A94AEB8544185EB51982BF5504148E17A44ADB854410AD7A3A02CF550410AD7A350ADB85441CDCCCC5C2EF550410AD7A310AEB85441CDCCCCBC2EF55041CDCCCC8CADB85441CDCCCCEC2EF550410AD7A390ACB854410AD7A3502EF550418FC2F518ACB854410AD7A3002DF5504148E17A54ACB854410AD7A3B02BF550418FC2F5E8ABB8544148E17A542AF550410AD7A300ACB8544185EB518829F550418FC2F528ABB8544185EB510828F550410AD7A3E0AAB854410AD7A38028F5504148E17A14AAB854410AD7A31029F5504148E17AE4A9B854410AD7A3602AF55041CDCCCC9CA6B8544148E17A542DF55041CDCCCC5CA7B8544185EB51782DF55041CDCCCCDCA5B85441CDCCCC7C2FF5504148E17AF4A5B854410AD7A39030F5504148E17A34A2B85441CDCCCCEC31F5504148E17A44A1B85441CDCCCCFC36F5504148E17A34A2B85441CDCCCCAC38F55041CDCCCC1CA2B85441CDCCCC6C39F55041CDCCCC5CA1B8544148E17A443AF55041CDCCCCFCA0B8544148E17A643BF550418FC2F538A1B854410AD7A3403BF550410AD7A3709FB85441CDCCCC3C3CF550410AD7A3109FB85441CDCCCC5C3DF550418FC2F5089EB8544185EB51583EF550418FC2F5089EB854410AD7A3603FF550418FC2F5C89EB85441CDCCCC2C40F550418FC2F5F89EB8544185EB519840F5504148E17A949FB85441CDCCCC3C42F55041CDCCCC6CA0B85441CDCCCC6C42F5504148E17AF49FB8544185EB515841F5504148E17A449EB85441CDCCCCCC42F550410AD7A3D09CB8544185EB51D842F550418FC2F5389BB854410AD7A39042F5504148E17A849AB854410AD7A3F042F5504148E17A849AB854410AD7A32043F5504148E17AB49AB854410AD7A3C045F550410AD7A3F09AB854410AD7A35046F55041CDCCCCBC9BB8544185EB519846F5504148E17A149BB854410AD7A3D047F550410AD7A3009AB854410AD7A3B049F550410AD7A3609AB85441CDCCCCAC4AF550410AD7A3209BB85441CDCCCC9C4BF55041CDCCCC6C9AB854410AD7A3D04DF55041CDCCCCFC97B85441CDCCCCCC4EF55041CDCCCCFC97B854410AD7A3504FF550418FC2F53898B8544185EB519852F55041CDCCCC1C99B8544148E17A8454F550418FC2F5789AB85441CDCCCCCC54F550418FC2F5E899B8544185EB51C855F550418FC2F5489AB8544148E17A3456F5504148E17A6499B854410AD7A3D059F550418FC2F53898B85441CDCCCCFC5AF550410AD7A38098B85441A4703D8A5BF55041C3F528FC9AB85441AE47E1AA5CF55041666666069BB854410AD7A3005DF5504148E17A849AB8544148E17A745EF55041CDCCCC3C9AB85441333333E35EF55041F6285CFF9AB85441295C8F3263F550415C8FC2E59AB8544148E17A1464F55041CDCCCC0C9AB85441295C8FE264F55041C3F528DC9AB85441A4703D8A68F55041666666C69AB8544185EB512868F550410AD7A36097B85441CDCCCCFC66F550418FC2F58896B85441CDCCCCCC66F550418FC2F53895B854410AD7A3506AF5504148E17A6493B8544185EB51A869F550418FC2F5C892B85441CDCCCC1C62F5504148E17A4492B85441CDCCCCFC60F55041CDCCCCEC92B8544148E17A945FF550418FC2F55893B854410AD7A3205EF55041CDCCCC3C94B85441CDCCCC7C5CF55041CDCCCCDC93B85441CDCCCC6C5AF5504148E17AF493B8544185EB518859F5504148E17A0493B8544185EB516858F5504148E17AC490B85441CDCCCC1C56F5504148E17A2491B85441CDCCCC5C55F55041CDCCCC4C90B85441CDCCCC0C54F550418FC2F58890B85441CDCCCCDC53F550418FC2F50892B8544185EB512853F55041CDCCCC5C92B8544148E17A1452F5504148E17A9490B8544148E17AF450F5504148E17A748FB85441CDCCCC8C4FF550410AD7A3508FB85441CDCCCCFC4EF55041CDCCCC4C90B85441CDCCCCFC4EF550410AD7A39091B8544185EB51584DF550418FC2F54891B8544185EB51C849F55041CDCCCCAC90B8544185EB517845F55041CDCCCC1C90B8544148E17A9441F5504148E17AC490B854410AD7A3103EF550418FC2F5A891B8544185EB51183CF550418FC2F59892B8544148E17A043BF55041CDCCCC7C93B85441CDCCCC4C3BF550410AD7A3F094B85441CDCCCCDC38F550410AD7A3B095B85441CDCCCCFC36F550418FC2F53895B8544185EB518835F5504148E17A3496B854410AD7A37035F550410AD7A33097B8544185EB51F834F55041CDCCCC3C97B85441CDCCCC2C34F55041CDCCCC5C98B854410AD7A33033F550418FC2F55899B8544148E17A5430F550418FC2F5A89AB85441CDCCCC4C2FF5504148E17AA49BB8544148E17A942CF55041CDCCCC9C9AB854410AD7A3A029F5504148E17A149BB85441EC51B82E29F550413D0AD7139BB85441E17A14EE26F5504152B81E659CB854413333330321F550417B14AEE79FB854410000002018F5504152B81EF5A7B85441B81E85EB15F5504133333363AAB85441CDCCCCFC13F5504148E17A64ADB854410AD7A38013F550410AD7A340AEB854410AD7A38013F55041CDCCCCCCAFB85441C3F5287C11F5504148E17A74B3B85441C3F5286C0FF550418FC2F558B4B8544148E17AE40CF550418FC2F5A8B8B8544185EB51E80BF55041CDCCCCECB9B854410AD7A3400BF55041CDCCCC2CBFB854410AD7A3A008F550418FC2F5A8C1B8544185EB51F804F5504148E17AB4CAB85441C3F528DC05F550418FC2F568CBB8544185EB517806F550418FC2F5D8CDB85441C3F5284C05F5504148E17A84D0B854410AD7A31005F550418FC2F5F8D1B85441C3F528CC03F55041CDCCCC1CD2B85441C3F5283C03F550410AD7A350D4B854410AD7A35001F5504148E17A24D3B854417B14AE67FEF45041A4703D6AD8B85441CDCCCCECF8F450415C8FC285DFB8544185EB51E8F9F45041CDCCCC0CE2B85441C3F5287CF9F450418FC2F5D8E2B854410AD7A350F8F450418FC2F578E2B8544148E17A34F6F450410AD7A310E4B85441C3F528FCF4F450418FC2F5B8E4B85441C3F5287CF3F450418FC2F5B8E4B8544185EB51F8EBF4504185EB51C8EBB854413D0AD7E3E9F45041CDCCCCDCEEB854418FC2F5B8E8F45041EC51B82EF2B854417B14AEA7E8F450417B14AE87F5B854410103000000010000001600000085EB51F891F5504148E17A74A7B85441CDCCCC0C93F550410AD7A300A9B8544185EB518895F550410AD7A330A9B8544148E17A1497F5504148E17AE4A9B8544185EB51A899F550410AD7A300ACB854410AD7A3E09AF5504148E17A24ACB8544185EB51E89BF550418FC2F5B8ABB85441EC51B83E9EF55041AE47E10AACB85441CDCCCC5C9DF5504148E17AD4AAB85441CDCCCCCC99F550418FC2F558A8B854410AD7A38097F550418FC2F568A4B85441A4703D0A96F55041F6285C4FA3B8544148E17A8493F550418FC2F518A3B85441CDCCCC8C8BF550418FC2F598A1B8544148E17AD48BF5504148E17A64A2B85441CDCCCC4C8CF550410AD7A330A3B8544185EB51588CF550410AD7A380A4B85441CDCCCCCC8DF550410AD7A3B0A7B85441CDCCCCEC8EF550410AD7A320A7B85441CDCCCCAC8FF5504148E17A44A7B85441CDCCCCFC90F550418FC2F5D8A6B8544185EB51F891F5504148E17A74A7B854410103000000010000001800000000000060FBF4504152B81E7564B854410AD7A370FFF450410AD7A3A063B8544148E17A64FFF45041CDCCCC2C62B854410AD7A3F0FDF4504148E17A1462B8544148E17A24FDF45041CDCCCC3C61B85441D7A370DDF9F450419A9999A962B8544185EB5188F6F4504148E17A6463B854410AD7A330F4F4504185EB51C862B854410AD7A3D0F0F45041CDCCCCEC62B8544148E17A44EFF450410AD7A30064B8544148E17AF4EDF45041CDCCCC0C64B854410AD7A310EDF4504185EB517864B85441CDCCCC1CEAF450410AD7A39064B8544185EB5198E9F4504148E17A5464B8544148E17A04E7F45041CDCCCCCC64B854410AD7A330E5F4504148E17A0466B8544148E17AA4E3F45041CDCCCC1C66B854410AD7A3C0E2F45041CDCCCCDC66B8544148E17AE4DFF450410AD7A33067B854418FC2F5E8DFF45041666666C667B85441B81E855BEAF4504185EB51B866B8544152B81E45F7F450419A99990967B85441A4703D4AF9F4504152B81E1567B8544100000060FBF4504152B81E7564B8544101030000000100000016000000CDCCCC5CA3F550410AD7A3F0BEB85441CDCCCCACA4F550418FC2F598BFB854410AD7A350A6F5504148E17A54C1B8544185EB5158A7F550410AD7A3C0C4B85441CDCCCC2CA6F55041CDCCCCCCBBB854410AD7A380A3F550410AD7A3E0B9B8544148E17A24A2F55041CDCCCCECB6B8544148E17AF4A1F5504148E17AB4B5B8544148E17A94A1F550418FC2F5C8B3B85441CDCCCC2CA0F5504148E17A24B2B85441CDCCCC9C9FF5504148E17A04B1B85441C3F5285C9FF550418FC2F578AFB85441CDCCCC3C9FF550410AD7A300AFB8544185EB51B89EF55041CDCCCC0CAFB8544148E17A549FF550410AD7A370B1B8544148E17A14A0F55041CDCCCC8CB6B85441CDCCCCCC9FF5504148E17A34BAB854410AD7A3C09FF5504148E17A94BDB8544148E17A14A0F5504148E17AB4BEB854410AD7A310A1F55041CDCCCCFCBEB854410AD7A390A2F550410AD7A3F0BEB85441CDCCCC5CA3F550410AD7A3F0BEB854410103000000010000002B0000000AD7A320EFF4504148E17AA47AB8544185EB5198EFF45041CDCCCCDC7BB85441CDCCCC5CEFF450410AD7A3C07CB85441CDCCCC5CEFF4504148E17AA47DB8544185EB51A8EEF45041CDCCCC1C81B8544148E17AE4EEF4504148E17A2482B8544148E17A34F0F450410AD7A36082B85441295C8F92F1F4504148E17AE484B854413D0AD703F4F45041CDCCCC6C81B854410AD7A3E0F4F45041AE47E10A7EB854413D0AD793F3F45041AE47E1AA77B85441713D0A17F0F450410000004070B85441C3F5284CEFF4504185EB51D86DB8544185EB51A8EEF45041CDCCCC4C6CB854410AD7A350ECF450410AD7A3606DB854410AD7A3E0E9F4504185EB51486DB8544185EB5128E4F4504148E17A746EB8544148E17AA4E3F450410AD7A3406FB8544185EB5178E2F450410AD7A33070B854410AD7A350DDF4504148E17A8470B8544148E17AB4DCF4504148E17AE470B8544185EB51E8DBF4504185EB515872B854410AD7A300DCF450410AD7A33073B85441CDCCCCECDDF4504148E17AF475B8544148E17A24DCF450410AD7A34078B85441CDCCCC2CDAF450410AD7A3C079B8544148E17A14DAF4504148E17AD47AB8544185EB51F8DAF4504148E17A547CB854410AD7A320E0F45041CDCCCC9C7CB8544148E17A24DFF4504148E17A747AB8544185EB5158E1F450410AD7A3D078B854410AD7A3C0E2F4504185EB514879B854410AD7A3E0E3F450410AD7A3807AB8544185EB51C8E3F45041CDCCCC7C7BB8544148E17A84E2F4504148E17AE47CB8544148E17A24E5F45041CDCCCCFC7CB85441CDCCCC1CE7F45041CDCCCC8C7DB8544148E17A24E8F45041CDCCCC2C7DB85441CDCCCCCCE8F450410AD7A3607CB8544185EB5198E9F4504185EB51487CB854410AD7A350ECF4504148E17A147AB8544148E17A64EDF450410AD7A3207AB854410AD7A320EFF4504148E17AA47AB854410103000000010000003000000085EB51A8E5F450410AD7A390ACB8544148E17AA4E6F45041CDCCCC6CACB8544185EB51E8E7F450410AD7A320ADB85441CDCCCC2CE9F45041CDCCCC7CABB854410AD7A3D0EAF450410AD7A380AAB8544185EB5148EBF45041CDCCCC6CA9B8544148E17A54EEF450410AD7A3D0A5B8544148E17A14EFF45041CDCCCC2CA4B8544185EB5178EEF4504148E17AA4A1B8544185EB5168EFF45041CDCCCC6CA0B8544185EB5138EFF45041CDCCCC9C9DB8544148E17AA4EFF4504148E17A049CB85441CDCCCCFCEEF45041CDCCCCAC9CB8544148E17A64EDF4504148E17AC49CB85441CDCCCC4CEDF45041CDCCCC2C9BB8544148E17A94EDF4504148E17AF499B8544185EB51D8EEF4504185EB51C898B85441CDCCCCFCEEF4504185EB51D897B8544185EB51C8EFF450410AD7A3D096B854410AD7A300F1F45041CDCCCC7C93B85441CDCCCCACF3F450410AD7A34090B854410AD7A330F4F450410AD7A3208FB85441CDCCCCACF3F45041CDCCCCDC8DB8544185EB5148F4F4504148E17AE48BB8544148E17A44F5F4504185EB51F88CB85441CDCCCC1CF6F4504185EB51488BB85441CDCCCC4CF6F4504148E17AD489B8544148E17A04F6F4504148E17A0487B8544148E17A54F7F4504185EB51C883B85441CDCCCC8CF8F4504148E17AC481B8544185EB5108F8F4504185EB513880B854410AD7A350F8F450410AD7A3007FB8544148E17AE4F7F45041CDCCCC7C7EB8544148E17A44F6F4504185EB51D87FB8544185EB5188F0F4504185EB51D888B854410AD7A390F1F45041CDCCCCEC89B8544148E17A54F1F4504148E17A848BB8544185EB5128F0F4504185EB51D88BB8544148E17AE4EEF4504185EB51988CB85441CDCCCCECECF4504185EB513892B85441CDCCCCFCEBF45041CDCCCC5C98B8544148E17A54EBF4504185EB51189AB854410AD7A360EBF4504185EB51289CB85441CDCCCCBCE9F4504148E17A649FB854410AD7A350E9F4504148E17A04A2B8544148E17A24E8F450410AD7A3F0A3B854410AD7A320E6F4504148E17AE4A9B8544185EB51A8E5F450410AD7A390ACB8544101030000000100000010000000CDCCCCFCDFF4504148E17A44BCB8544185EB5168E0F45041CDCCCC5CBCB85441CDCCCCBCE0F450410AD7A390BBB8544148E17A74E3F4504185EB5158B7B854410AD7A3E0E3F4504148E17A74B6B854410AD7A3E0E3F45041CDCCCC3CB5B85441CDCCCCDCE4F4504148E17A04B4B8544148E17A14E6F4504148E17A64B1B85441CDCCCC6CE5F450410AD7A310B1B8544185EB5178E5F4504185EB5198ADB8544185EB5158E4F450410AD7A360AFB854410AD7A3E0E3F450410AD7A370B1B854410AD7A3C0E2F45041CDCCCCFCB2B8544148E17A54E2F450410AD7A330B5B8544148E17A34E1F4504185EB5158B7B85441CDCCCCFCDFF4504148E17A44BCB854410103000000010000003D000000E17A141E55F650415C8FC2053AB9544114AE47B156F65041D7A370BD37B95441D7A3708D5AF650415C8FC2C538B954419A9999E95BF650415C8FC2C538B95441F6285CAF5EF65041AE47E1CA37B954418FC2F58860F65041D7A370BD37B9544185EB517863F65041AE47E18A36B954410AD7A3C065F65041713D0AA736B95441C3F528CC68F650417B14AE7737B95441295C8F626CF6504148E17A6438B95441AE47E1DA72F650410000004037B95441C3F5283C73F650410AD7A39035B954411F85EB7174F6504114AE478134B9544152B81E355FF650418FC2F51831B954410AD7A3804BF650410AD7A3002EB95441C3F5280C39F65041E17A143E29B954410000005035F650410AD7A37029B95441F6285C8F31F65041E17A14AE28B954418FC2F57830F650418FC2F5F827B954418FC2F5782BF65041B81E853B26B95441D7A370AD29F650413D0AD70326B95441A4703DAA27F6504148E17A9425B954410000003029F650418FC2F5F827B95441E17A143E29F65041E17A14AE28B95441713D0A172BF65041295C8F6229B954410AD7A3B02BF65041E17A14EE29B95441B81E853B2CF65041CDCCCC3C30B9544185EB51E82BF65041EC51B86E31B954413D0AD7032CF650417B14AE4733B95441EC51B8FE2CF650411F85EBB134B95441D7A3706D2DF650417B14AE7737B954419A9999492CF65041B81E854B3AB9544148E17A142EF65041AE47E1FA3BB954419A9999892DF650415C8FC2853CB9544152B81E652CF65041AE47E13A3DB95441713D0AD729F65041C3F5285C3CB95441EC51B8CE28F650418FC2F5C83FB9544148E17A2426F650415C8FC2753FB954415C8FC20524F65041F6285C9F3FB954411F85EBE122F65041AE47E17A3EB954417B14AE7721F6504114AE47513EB95441295C8F421EF65041EC51B8CE3EB95441C3F5282C1DF650418FC2F5C83FB95441A4703D3A1DF6504185EB517841B95441D7A3708D1DF65041713D0A9743B95441000000101EF65041AE47E1AA44B9544185EB511821F6504148E17A1444B954417B14AE873BF65041F6285CFF3EB954410AD7A30040F65041A4703DEA3DB95441AE47E10A44F650419A9999E93CB954410AD7A32047F650411F85EB113CB95441A4703D6A47F65041C3F5281C3BB954413D0AD7C346F65041F6285CEF38B95441C3F5280C49F6504114AE47E138B95441713D0A474BF65041713D0AE737B954418FC2F5784CF65041D7A370BD37B954413D0AD7B34EF650413333334339B954417B14AE1751F65041F6285C2F3AB95441C3F5283C52F6504148E17AA439B954410AD7A36053F65041F6285C2F3AB95441E17A141E55F650415C8FC2053AB9544101030000000100000061000000C3F5280CB1F5504148E17A1419B954410AD7A3B0B2F5504185EB51781BB95441C3F528DCB3F5504185EB51981CB9544185EB5108B5F55041CDCCCC1C1DB9544148E17AA4B5F55041CDCCCC8C1FB9544185EB5158B9F55041CDCCCC5C1FB9544148E17AE4BAF5504185EB515820B9544148E17AA4BBF5504148E17A2421B9544148E17AF4BCF550410AD7A32022B95441C3F528CCBDF5504185EB51E823B9544185EB51A8BDF55041CDCCCC9C24B954410AD7A350BEF55041CDCCCC8C25B95441C3F5284CBFF55041CDCCCC7C26B95441C3F528ACC2F5504185EB51D827B9544148E17AE4C3F55041CDCCCCBC28B954410AD7A350C4F55041CDCCCC7C29B9544148E17A54C9F5504148E17AF42CB954410AD7A370CBF55041CDCCCCFC2DB9544148E17A84CCF55041CDCCCC2C2EB95441C3F5285CCDF5504148E17A642FB9544148E17AA4CDF550410AD7A3F030B9544148E17AC4CEF5504185EB51A833B9544185EB51A8CFF5504148E17AA434B95441C3F528ECD0F55041CDCCCC1C35B954410AD7A300D2F550410AD7A3C036B95441C3F5283CD2F55041CDCCCC4C38B954410AD7A320D3F5504185EB51D839B954410AD7A3B0D3F550410AD7A3D03BB9544185EB51A8D5F5504185EB51283EB9544148E17A44D9F55041CDCCCCEC40B9544148E17A94DAF5504148E17AC441B954410AD7A360DBF5504185EB51D842B95441C3F5282CDCF5504185EB51C843B9544148E17A84DEF55041CDCCCC0C45B9544185EB51D8E1F5504185EB51A845B9544148E17A34E3F550410AD7A36045B954410AD7A3E0E5F55041CDCCCCFC45B9544185EB5138E8F5504185EB51E844B95441C3F528CCEAF550410AD7A30045B9544185EB5158ECF5504148E17AB445B9544148E17A84EDF5504185EB51F846B954410AD7A3B0EEF55041CDCCCCAC47B954410AD7A300F0F5504185EB51A848B954410AD7A380F1F550410AD7A3F04BB95441C3F5282CF1F55041CDCCCCEC4CB9544148E17A44F1F550410AD7A3A04DB95441C3F528ECF1F550410AD7A3904EB95441C3F5286CF3F550410AD7A3804FB954410AD7A3B0F4F5504185EB51984FB9544148E17AF4F5F55041CDCCCC1C50B95441C3F5283CF6F55041CDCCCCAC50B9544148E17A74F7F55041CDCCCC3C51B9544148E17AF4F8F550410AD7A36051B9544185EB5188FBF5504148E17AA452B954410AD7A340FEF550410AD7A30054B9544148E17A64FEF550410AD7A3B055B9544185EB5198FDF5504185EB51B856B95441C3F528ACFBF550410AD7A36057B9544185EB5188FEF550410AD7A3F057B95441C3F528ACFEF5504185EB517857B9544185EB517802F6504185EB51D854B954410AD7A33005F6504148E17AF453B9544185EB512807F6504148E17A9453B954410AD7A36008F6504185EB51E853B9544148E17A040AF6504148E17A9453B95441C3F5288C0CF650410AD7A3F051B9544148E17AF410F650410AD7A37050B9544185EB51C812F6504185EB51F84FB95441C3F5288C15F65041CDCCCC9C4EB95441C3F528AC16F65041CDCCCC5C4CB954410AD7A36017F6504148E17A544BB954410AD7A3B018F650410AD7A3D04AB9544148E17A141BF650410AD7A3004BB954410AD7A3101CF6504185EB51E847B954410AD7A35015F65041CDCCCC9C45B9544148E17A840BF6504148E17A3447B954410AD7A31001F65041CDCCCC7C47B95441C3F5280CF9F550410AD7A38046B9544148E17AA4EEF5504185EB512844B95441C3F5280CE7F5504185EB515841B9544185EB5198DFF5504148E17AA43DB954410AD7A370D7F5504185EB510837B9544148E17AF4CEF5504148E17A842DB95441C3F5281CC8F5504185EB51E826B9544185EB5168C1F5504185EB519822B9544148E17A94BCF55041CDCCCC6C1EB9544185EB5158B9F550410AD7A3A01AB95441C3F528DCB6F550410AD7A34017B95441666666F6B3F55041295C8F7212B95441F6285C7FB1F55041AE47E14A0DB9544148E17AF4B0F550410AD7A3D00BB9544148E17AD4AFF55041CDCCCC1C0EB954410AD7A350AFF55041CDCCCC7C11B954410AD7A3E0AFF55041CDCCCC5C13B954410AD7A3B0AFF5504185EB518814B9544148E17AF4B0F5504185EB51E817B95441C3F5280CB1F5504148E17A1419B9544101030000000100000009000000EC51B8CE86F650418FC2F5D837B954410AD7A33087F65041C3F5289C38B95441F6285C3F90F65041666666E638B954417B14AE9795F650416666660639B9544185EB514895F65041295C8F5236B95441A4703D0A95F650410AD7A33033B954417B14AE4785F65041D7A370FD33B954410AD7A33087F650410AD7A3D036B95441EC51B8CE86F650418FC2F5D837B9544101030000000100000021000000EC51B83E99F45041295C8FD202B95441E17A147E9AF45041CDCCCCDC03B954413D0AD7739AF450411F85EB3105B95441E17A143E9BF45041CDCCCC7C05B9544185EB5188A1F45041D7A370BD02B9544114AE47F1A8F45041E17A14BEFEB8544114AE4751AAF450418FC2F508FDB85441B81E859BADF450418FC2F5E8FBB85441AE47E13AB2F45041EC51B83EF9B854415C8FC2C5B2F45041EC51B8BEF8B8544152B81EC5B5F45041A4703DEAF3B8544152B81EA5B5F45041A4703D8AF2B854419A999999B9F4504100000080EFB85441EC51B82EBBF4504100000000EFB854413D0AD763BCF45041000000A0EFB854418FC2F5B8BDF45041000000A0EFB854413D0AD783BEF4504100000000EFB854413D0AD703BFF45041AE47E1EAEDB8544100000020B7F450417B14AE27EEB85441EC51B88EB0F450413D0AD753EEB85441C3F5281CAAF45041AE47E1EAEFB85441713D0A07A9F45041A4703D8AF0B85441713D0A47A7F45041F6285CFFF2B85441713D0A87A7F4504148E17A14F4B85441CDCCCCDCA6F450419A999989F5B854417B14AE47A5F4504148E17AB4F6B85441295C8F72A3F4504148E17A14F6B854417B14AE07A3F45041F6285C5FF5B85441E17A14FE9CF45041EC51B8BEF9B854419A9999E997F450418FC2F5E8FCB85441EC51B8BE98F4504185EB512800B95441EC51B83E99F4504185EB512801B95441EC51B83E99F45041295C8FD202B954410103000000010000003100000014AE4741E6F45041E17A144ED0B85441EC51B83EE5F45041E17A14EECFB8544152B81E45E6F4504185EB5148C9B8544185EB51D8E5F4504148E17A24C7B8544148E17AC4E4F4504185EB5188C6B8544185EB51C8E3F4504185EB5108C5B8544148E17A04E4F45041CDCCCC7CC3B8544185EB51C8E3F4504185EB51A8C1B85441CDCCCC6CE2F450410AD7A310C0B8544148E17A94E1F4504148E17A44BFB8544185EB51F8E0F450410AD7A390BEB8544185EB5198E0F450410AD7A310BDB85441CDCCCC2CE0F4504148E17A04BDB8544148E17AF4DEF45041CDCCCC2CBFB854410AD7A3E0DDF4504185EB5188C6B85441CDCCCC6CDCF45041CDCCCC2CC8B854410AD7A3D0DBF450410AD7A330CAB8544148E17A44DAF4504185EB51C8CBB8544185EB51A8D9F45041CDCCCC9CCDB8544185EB5188D5F450410AD7A320D1B8544185EB51B8D2F450410AD7A300D3B8544185EB5198CEF4504148E17A34D5B854410AD7A3F0C7F45041CDCCCC5CDAB8544185EB51C8BFF450410AD7A390DFB8544185EB5158BDF45041CDCCCC9CE2B854410AD7A300BEF450410AD7A360E2B8544148E17A74BFF450410AD7A340E1B8544185EB51C8C2F450410AD7A3C0DFB8544185EB51F8C5F4504185EB51B8DEB854410AD7A3D0C9F4504148E17A74DDB85441CDCCCC0CCDF450410AD7A330DCB85441CDCCCC0CD0F4504148E17A34E1B8544148E17A24D0F4504185EB5118E2B854410AD7A3D0D2F450410AD7A370E4B8544185EB5178D3F450410AD7A380E3B8544148E17A64D5F4504185EB5108E3B8544185EB5158D8F45041CDCCCC7CE1B8544148E17A84D9F4504185EB51E8E1B8544148E17AC4D8F45041CDCCCC8CE0B8544185EB5118D9F4504148E17AC4DEB854410AD7A380DAF4504148E17A44DDB854410AD7A3A0DBF450410AD7A3F0DCB8544185EB5158DEF45041CDCCCCECDAB8544148E17AA4DDF450410AD7A360D9B8544185EB5198DDF4504148E17AA4D7B854410AD7A3D0E1F450410AD7A340D5B854410AD7A320E3F450410AD7A370D5B85441D7A370DDE3F450411F85EB91D4B8544114AE4741E6F45041E17A144ED0B854410103000000010000002F0000000AD7A3109EF550410AD7A350FEB85441C3F528BC9DF5504185EB51E8FCB854410AD7A3409EF55041CDCCCCBCFBB8544185EB51189FF55041CDCCCCCCFAB854410AD7A350A0F5504148E17AB4FAB8544148E17AA4A0F5504185EB5178FAB8544185EB5158A1F55041CDCCCC6CFAB8544185EB5198A3F5504148E17A34FCB8544185EB51E8A4F550410AD7A3A0FCB85441C3F5282CA6F5504185EB5148FDB85441C3F5286CA8F55041CDCCCCFCFDB85441C3F528ECA9F5504148E17A14FEB8544185EB5178ABF55041CDCCCC1CFFB85441C3F528FCABF5504185EB517800B95441C3F528ACADF550410AD7A39003B9544148E17AE4AEF55041CDCCCC4C05B9544185EB5148ACF55041713D0AA7F6B85441C3F528DCAAF5504133333303F0B8544152B81EA5AAF5504133333303EFB85441F6285CCFA8F5504152B81EA5E1B854417B14AEE7A8F55041CDCCCCBCDAB8544185EB5118A8F5504185EB51E8DBB854410AD7A3A0A7F55041CDCCCCBCDDB854410AD7A3A0A7F5504185EB5148DFB854410AD7A390A8F5504148E17AC4E4B85441C3F5280CA8F5504148E17A44E6B8544185EB5118A8F5504185EB5168E9B8544148E17AE4A8F55041CDCCCCDCEAB854410AD7A3C0A8F5504185EB5198ECB854410AD7A350A9F5504148E17AF4EDB854410AD7A350A9F550410AD7A3E0EFB85441C3F5287CA7F55041CDCCCC9CF7B85441C3F528FCA5F5504148E17AA4F8B8544185EB51E8A1F5504185EB5128F9B85441C3F528DC9EF5504185EB51A8F7B8544185EB51F89DF55041CDCCCCCCF7B8544148E17AD49AF5504148E17A24F7B85441C3F528FC96F5504148E17A54F7B8544185EB51B895F5504148E17A24F7B854413D0AD76394F55041295C8F62F7B85441EC51B83E9BF5504114AE471105B95441C3F5283C9CF5504148E17AD404B9544185EB51C89DF55041CDCCCC0C06B9544148E17A949EF5504185EB512805B954410AD7A3109EF5504185EB51E802B9544148E17AD49DF5504185EB5158FFB854410AD7A3109EF550410AD7A350FEB85441
+</a>
+
+<b>
+010600000001000000010300000001000000420000008245E2041EF65041B89D0AAD44B9544178BBC9E725F65041CE85B62743B9544105B92E7429F65041A0B60F7942B95441862E567F2DF6504184D809B241B95441E9BB2C6930F6504123FFA32241B95441E4DA9A4834F650419734066440B954411A9FBC5639F65041A08E356B3FB954417B14AE873BF65041F6285CFF3EB954410AD7A30040F65041A4703DEA3DB954410AD7A32047F650411F85EB113CB95441A4703D6A47F65041C3F5281C3BB954413D0AD7C346F65041F6285CEF38B95441C3F5280C49F6504114AE47E138B95441713D0A474BF65041713D0AE737B954418FC2F5784CF65041D7A370BD37B954413D0AD7B34EF650413333334339B954417B14AE1751F65041F6285C2F3AB95441C3F5283C52F6504148E17AA439B954410AD7A36053F65041F6285C2F3AB95441E17A141E55F650415C8FC2053AB9544114AE47B156F65041D7A370BD37B95441D7A3708D5AF650415C8FC2C538B954419A9999E95BF650415C8FC2C538B95441F6285CAF5EF65041AE47E1CA37B954418FC2F58860F65041D7A370BD37B9544185EB517863F65041AE47E18A36B954410AD7A3C065F65041713D0AA736B95441C3F528CC68F650417B14AE7737B95441295C8F626CF6504148E17A6438B95441AE47E1DA72F650410000004037B95441C3F5283C73F650410AD7A39035B954411F85EB7174F6504114AE478134B9544152B81E355FF650418FC2F51831B954410AD7A3804BF650410AD7A3002EB95441C3F5280C39F65041E17A143E29B954410000005035F650410AD7A37029B95441F6285C8F31F65041E17A14AE28B954418FC2F57830F650418FC2F5F827B954418FC2F5782BF65041B81E853B26B95441D7A370AD29F650413D0AD70326B95441A4703DAA27F6504148E17A9425B954410000003029F650418FC2F5F827B95441E17A143E29F65041E17A14AE28B95441713D0A172BF65041295C8F6229B954410AD7A3B02BF65041E17A14EE29B95441B81E853B2CF65041CDCCCC3C30B9544185EB51E82BF65041EC51B86E31B954413D0AD7032CF650417B14AE4733B95441EC51B8FE2CF650411F85EBB134B95441D7A3706D2DF650417B14AE7737B954419A9999492CF65041B81E854B3AB9544148E17A142EF65041AE47E1FA3BB954419A9999892DF650415C8FC2853CB9544152B81E652CF65041AE47E13A3DB95441713D0AD729F65041C3F5285C3CB95441EC51B8CE28F650418FC2F5C83FB9544148E17A2426F650415C8FC2753FB954415C8FC20524F65041F6285C9F3FB954411F85EBE122F65041AE47E17A3EB954417B14AE7721F6504114AE47513EB95441295C8F421EF65041EC51B8CE3EB95441C3F5282C1DF650418FC2F5C83FB95441A4703D3A1DF6504185EB517841B95441D7A3708D1DF65041713D0A9743B95441000000101EF65041AE47E1AA44B954418245E2041EF65041B89D0AAD44B95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>801940 - 250006
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000D000000010300000001000000120100007B14AEA7E8F450417B14AE87F5B854416FB507B6EEF4504114621A4DF7B85441C3F528ECEFF4504148E17AC4F6B85441C3F5289CF1F45041CDCCCCACF6B85441C3F528FCF1F45041CDCCCCFCF7B85441C3F5285CF2F450418FC2F508F8B854410AD7A3C0F4F450418FC2F528F6B8544148E17A34F6F4504148E17A74F5B8544185EB5178F7F45041CDCCCC0CF7B854410AD7A3C0F7F4504148E17A64F6B854410AD7A310F9F4504148E17A34F6B8544148E17A64F9F45041CDCCCCACF3B854410AD7A3F0FAF4504148E17AA4EFB8544185EB5168FBF45041CDCCCC5CEFB8544185EB5168FBF450410AD7A3C0EEB8544148E17AE4FAF45041CDCCCC6CEEB85441C3F528DCF9F45041CDCCCCFCEEB8544148E17A04F9F450410AD7A350EFB854410AD7A320F8F450418FC2F5A8EEB8544185EB5138F8F4504148E17AF4EDB85441C3F5280CFAF4504148E17A34EDB85441C3F5282CF8F4504148E17AD4ECB8544185EB5108F8F450410AD7A360EBB854410AD7A3B0F8F45041CDCCCC8CE9B8544148E17A14FBF45041CDCCCCBCE9B854410AD7A380FBF450418FC2F5B8EAB854410AD7A330FDF450410AD7A370EAB8544148E17A04FFF450418FC2F5B8EAB854410AD7A310FFF450418FC2F538E9B85441C3F528BCFEF450418FC2F5E8E7B854410AD7A3A0FFF4504148E17A34E7B8544185EB517800F550410AD7A320E6B8544148E17A9402F550410AD7A360E5B85441C3F5280C03F550418FC2F578E5B854410AD7A39003F550410AD7A3D0E4B85441C3F5283C03F5504148E17AD4E3B85441C3F5285C04F550418FC2F598E3B854410AD7A34005F5504148E17AE4E2B8544185EB517806F55041CDCCCCCCE2B854410AD7A3B007F55041CDCCCC6CE2B854410AD7A33009F5504148E17A84E2B854410AD7A3E00AF5504148E17AC4E1B85441C3F5288C0AF550410AD7A3F0DFB854410AD7A3E00AF550410AD7A360DFB8544185EB51880BF550410AD7A390DFB854410AD7A3100BF550410AD7A390DCB854410AD7A3D00BF550418FC2F558DBB85441C3F528DC0BF55041CDCCCCCCD9B85441C3F528DC08F550410AD7A3A0D8B8544185EB51F807F55041CDCCCC2CD7B85441C3F528DC08F550418FC2F5C8D4B8544148E17A8409F55041CDCCCC8CD4B8544185EB51080AF5504148E17A64D2B85441C3F5288C0AF550410AD7A310D2B85441C3F5280C0CF55041CDCCCC1CD2B8544148E17AB40CF550418FC2F588D2B854410AD7A3400EF550418FC2F5C8D4B854410AD7A3400EF550410AD7A390D6B85441C3F528CC0CF550410AD7A3C0D6B8544185EB51380DF55041CDCCCC2CD7B8544148E17A840CF5504148E17A94D8B8544185EB51A80CF550418FC2F568DAB85441C3F528BC0DF5504148E17A34DBB854410AD7A3900FF550410AD7A350DDB854410AD7A31011F550418FC2F5C8DDB854410AD7A36012F55041CDCCCCECDDB8544185EB510813F550418FC2F5C8DDB85441C3F5284C14F550410AD7A3D0DEB85441C3F5286C16F55041C3F528ACDFB85441A4703DAA18F550417B14AE77DBB85441C3F528AC17F5504148E17AA4DAB854410AD7A32016F5504148E17A14DAB85441C3F528AC14F550418FC2F598DAB8544185EB510813F5504148E17AB4DCB8544185EB517812F55041CDCCCCCCDCB854410AD7A31011F550410AD7A3A0DBB8544148E17AA410F5504148E17AB4DCB8544185EB513810F550418FC2F528DBB8544148E17AA410F55041CDCCCCECDAB8544185EB51C810F550410AD7A390D9B8544185EB51B811F550410AD7A3C0D6B85441C3F528FC12F550410AD7A330D6B8544185EB512814F550418FC2F588D5B854410AD7A36015F5504148E17A84D3B854410AD7A3F015F550410AD7A360D3B8544185EB513816F5504148E17A84D3B85441C3F528BC16F550418FC2F548D3B8544185EB51A818F550410AD7A350D1B8544148E17A7419F55041CDCCCCFCD0B85441C3F5285C19F5504148E17A74CEB8544185EB51C819F55041CDCCCC6CCDB854410AD7A35019F550410AD7A3D0CCB85441C3F5288C19F550418FC2F598CBB8544185EB51B81AF55041CDCCCCFCCAB8544148E17A441CF55041CDCCCCACC9B8544185EB51F81CF5504148E17AF4C9B8544148E17A641DF55041CDCCCC3CCAB8544148E17A641DF550418FC2F528CCB8544148E17A241EF5504148E17A64CCB854410AD7A3501FF550410AD7A3A0CCB854410AD7A3301EF550410AD7A3B0CEB854410AD7A3E01CF5504148E17A64D2B85441C3F5281C1DF5504148E17A24D3B85441AE47E1BA21F550415C8FC2C5CBB85441A4703D8A26F55041C3F528FCC4B8544185EB51D824F550418FC2F528C6B854410AD7A30024F550418FC2F538C5B854410AD7A3F024F550418FC2F518C4B8544148E17A4425F550410AD7A320C2B8544185EB51F825F55041CDCCCC0CC1B8544148E17AC426F550410AD7A3A0BDB85441C3F5281C26F550410AD7A310BDB8544148E17A1425F5504148E17A64BDB85441C3F528FC24F550410AD7A3B0BCB85441C3F528AC26F55041CDCCCCFCBBB8544185EB51C825F550418FC2F528BAB85441C3F5284C26F550410AD7A3A0B7B8544148E17A2427F5504148E17A04B7B8544148E17AA428F55041CDCCCCECB6B854410AD7A3A029F5504148E17AD4B6B8544185EB51482AF5504148E17A54B8B85441CDCCCC5C2BF550418FC2F568BCB85441295C8F322BF550418FC2F568BEB8544185EB51B830F55041E17A149EB6B85441AE47E16A32F55041D7A3704DB5B8544148E17AA431F5504148E17AF4B4B8544185EB51B82FF5504148E17AF4B4B8544185EB51182DF550418FC2F538B6B8544148E17A642CF5504148E17AB4B5B85441CDCCCC1C2CF55041CDCCCC1CB4B8544148E17A942CF5504148E17A84B2B8544185EB51282CF550410AD7A350B0B854410AD7A3502BF5504148E17A94AEB8544185EB51982BF5504148E17A44ADB854410AD7A3A02CF550410AD7A350ADB85441CDCCCC5C2EF550410AD7A310AEB85441CDCCCCBC2EF55041CDCCCC8CADB85441CDCCCCEC2EF550410AD7A390ACB854410AD7A3502EF550418FC2F518ACB854410AD7A3002DF5504148E17A54ACB854410AD7A3B02BF550418FC2F5E8ABB8544148E17A542AF550410AD7A300ACB8544185EB518829F550418FC2F528ABB8544185EB510828F550410AD7A3E0AAB854410AD7A38028F5504148E17A14AAB854410AD7A31029F5504148E17AE4A9B854410AD7A3602AF55041CDCCCC9CA6B8544148E17A542DF55041CDCCCC5CA7B8544185EB51782DF55041CDCCCCDCA5B85441CDCCCC7C2FF5504148E17AF4A5B854410AD7A39030F5504148E17A34A2B85441CDCCCCEC31F5504148E17A44A1B85441CDCCCCFC36F5504148E17A34A2B85441CDCCCCAC38F55041CDCCCC1CA2B85441CDCCCC6C39F55041CDCCCC5CA1B8544148E17A443AF55041CDCCCCFCA0B8544148E17A643BF550418FC2F538A1B854410AD7A3403BF550410AD7A3709FB85441CDCCCC3C3CF550410AD7A3109FB85441CDCCCC5C3DF550418FC2F5089EB8544185EB51583EF550418FC2F5089EB854410AD7A3603FF550418FC2F5C89EB85441CDCCCC2C40F550418FC2F5F89EB8544185EB519840F5504148E17A949FB85441CDCCCC3C42F55041CDCCCC6CA0B85441CDCCCC6C42F5504148E17AF49FB8544185EB515841F5504148E17A449EB85441CDCCCCCC42F550410AD7A3D09CB8544185EB51D842F550418FC2F5389BB854410AD7A39042F5504148E17A849AB854410AD7A3F042F5504148E17A849AB854410AD7A32043F5504148E17AB49AB854410AD7A3C045F550410AD7A3F09AB854410AD7A35046F55041CDCCCCBC9BB8544185EB519846F5504148E17A149BB854410AD7A3D047F550410AD7A3009AB854410AD7A3B049F550410AD7A3609AB85441CDCCCCAC4AF550410AD7A3209BB85441CDCCCC9C4BF55041CDCCCC6C9AB854410AD7A3D04DF55041CDCCCCFC97B85441CDCCCCCC4EF55041CDCCCCFC97B854410AD7A3504FF550418FC2F53898B8544185EB519852F55041CDCCCC1C99B8544148E17A8454F550418FC2F5789AB85441CDCCCCCC54F550418FC2F5E899B8544185EB51C855F550418FC2F5489AB8544148E17A3456F5504148E17A6499B854410AD7A3D059F550418FC2F53898B85441CDCCCCFC5AF550410AD7A38098B85441A4703D8A5BF55041C3F528FC9AB85441AE47E1AA5CF55041666666069BB854410AD7A3005DF5504148E17A849AB8544148E17A745EF55041CDCCCC3C9AB85441333333E35EF55041F6285CFF9AB85441295C8F3263F550415C8FC2E59AB8544148E17A1464F55041CDCCCC0C9AB85441295C8FE264F55041C3F528DC9AB85441A4703D8A68F55041666666C69AB8544185EB512868F550410AD7A36097B85441CDCCCCFC66F550418FC2F58896B85441CDCCCCCC66F550418FC2F53895B854410AD7A3506AF5504148E17A6493B8544185EB51A869F550418FC2F5C892B85441CDCCCC1C62F5504148E17A4492B85441CDCCCCFC60F55041CDCCCCEC92B8544148E17A945FF550418FC2F55893B854410AD7A3205EF55041CDCCCC3C94B85441CDCCCC7C5CF55041CDCCCCDC93B85441CDCCCC6C5AF5504148E17AF493B8544185EB518859F5504148E17A0493B8544185EB516858F5504148E17AC490B85441CDCCCC1C56F5504148E17A2491B85441CDCCCC5C55F55041CDCCCC4C90B85441CDCCCC0C54F550418FC2F58890B85441CDCCCCDC53F550418FC2F50892B8544185EB512853F55041CDCCCC5C92B8544148E17A1452F5504148E17A9490B8544148E17AF450F5504148E17A748FB85441CDCCCC8C4FF550410AD7A3508FB85441CDCCCCFC4EF55041CDCCCC4C90B85441CDCCCCFC4EF550410AD7A39091B8544185EB51584DF550418FC2F54891B8544185EB51C849F55041CDCCCCAC90B8544185EB517845F55041CDCCCC1C90B8544148E17A9441F5504148E17AC490B854410AD7A3103EF550418FC2F5A891B8544185EB51183CF550418FC2F59892B8544148E17A043BF55041CDCCCC7C93B85441CDCCCC4C3BF550410AD7A3F094B85441CDCCCCDC38F550410AD7A3B095B85441CDCCCCFC36F550418FC2F53895B8544185EB518835F5504148E17A3496B854410AD7A37035F550410AD7A33097B8544185EB51F834F55041CDCCCC3C97B85441CDCCCC2C34F55041CDCCCC5C98B854410AD7A33033F550418FC2F55899B8544148E17A5430F550418FC2F5A89AB85441CDCCCC4C2FF5504148E17AA49BB8544148E17A942CF55041CDCCCC9C9AB854410AD7A3A029F5504148E17A149BB85441EC51B82E29F550413D0AD7139BB85441E17A14EE26F5504152B81E659CB854413333330321F550417B14AEE79FB854410000002018F5504152B81EF5A7B85441B81E85EB15F5504133333363AAB85441CDCCCCFC13F5504148E17A64ADB854410AD7A38013F550410AD7A340AEB854410AD7A38013F55041CDCCCCCCAFB85441C3F5287C11F5504148E17A74B3B85441C3F5286C0FF550418FC2F558B4B8544148E17AE40CF550418FC2F5A8B8B8544185EB51E80BF55041CDCCCCECB9B854410AD7A3400BF55041CDCCCC2CBFB854410AD7A3A008F550418FC2F5A8C1B8544185EB51F804F5504148E17AB4CAB85441C3F528DC05F550418FC2F568CBB8544185EB517806F550418FC2F5D8CDB85441C3F5284C05F5504148E17A84D0B854410AD7A31005F550418FC2F5F8D1B85441C3F528CC03F55041CDCCCC1CD2B85441C3F5283C03F550410AD7A350D4B854410AD7A35001F5504148E17A24D3B854417B14AE67FEF45041A4703D6AD8B85441CDCCCCECF8F450415C8FC285DFB8544185EB51E8F9F45041CDCCCC0CE2B85441C3F5287CF9F450418FC2F5D8E2B854410AD7A350F8F450418FC2F578E2B8544148E17A34F6F450410AD7A310E4B85441C3F528FCF4F450418FC2F5B8E4B85441C3F5287CF3F450418FC2F5B8E4B8544185EB51F8EBF4504185EB51C8EBB854413D0AD7E3E9F45041CDCCCCDCEEB854418FC2F5B8E8F45041EC51B82EF2B854417B14AEA7E8F450417B14AE87F5B854410103000000010000001600000085EB51F891F5504148E17A74A7B85441CDCCCC0C93F550410AD7A300A9B8544185EB518895F550410AD7A330A9B8544148E17A1497F5504148E17AE4A9B8544185EB51A899F550410AD7A300ACB854410AD7A3E09AF5504148E17A24ACB8544185EB51E89BF550418FC2F5B8ABB85441EC51B83E9EF55041AE47E10AACB85441CDCCCC5C9DF5504148E17AD4AAB85441CDCCCCCC99F550418FC2F558A8B854410AD7A38097F550418FC2F568A4B85441A4703D0A96F55041F6285C4FA3B8544148E17A8493F550418FC2F518A3B85441CDCCCC8C8BF550418FC2F598A1B8544148E17AD48BF5504148E17A64A2B85441CDCCCC4C8CF550410AD7A330A3B8544185EB51588CF550410AD7A380A4B85441CDCCCCCC8DF550410AD7A3B0A7B85441CDCCCCEC8EF550410AD7A320A7B85441CDCCCCAC8FF5504148E17A44A7B85441CDCCCCFC90F550418FC2F5D8A6B8544185EB51F891F5504148E17A74A7B854410103000000010000001800000000000060FBF4504152B81E7564B854410AD7A370FFF450410AD7A3A063B8544148E17A64FFF45041CDCCCC2C62B854410AD7A3F0FDF4504148E17A1462B8544148E17A24FDF45041CDCCCC3C61B85441D7A370DDF9F450419A9999A962B8544185EB5188F6F4504148E17A6463B854410AD7A330F4F4504185EB51C862B854410AD7A3D0F0F45041CDCCCCEC62B8544148E17A44EFF450410AD7A30064B8544148E17AF4EDF45041CDCCCC0C64B854410AD7A310EDF4504185EB517864B85441CDCCCC1CEAF450410AD7A39064B8544185EB5198E9F4504148E17A5464B8544148E17A04E7F45041CDCCCCCC64B854410AD7A330E5F4504148E17A0466B8544148E17AA4E3F45041CDCCCC1C66B854410AD7A3C0E2F45041CDCCCCDC66B8544148E17AE4DFF450410AD7A33067B854418FC2F5E8DFF45041666666C667B85441B81E855BEAF4504185EB51B866B8544152B81E45F7F450419A99990967B85441A4703D4AF9F4504152B81E1567B8544100000060FBF4504152B81E7564B8544101030000000100000016000000CDCCCC5CA3F550410AD7A3F0BEB85441CDCCCCACA4F550418FC2F598BFB854410AD7A350A6F5504148E17A54C1B8544185EB5158A7F550410AD7A3C0C4B85441CDCCCC2CA6F55041CDCCCCCCBBB854410AD7A380A3F550410AD7A3E0B9B8544148E17A24A2F55041CDCCCCECB6B8544148E17AF4A1F5504148E17AB4B5B8544148E17A94A1F550418FC2F5C8B3B85441CDCCCC2CA0F5504148E17A24B2B85441CDCCCC9C9FF5504148E17A04B1B85441C3F5285C9FF550418FC2F578AFB85441CDCCCC3C9FF550410AD7A300AFB8544185EB51B89EF55041CDCCCC0CAFB8544148E17A549FF550410AD7A370B1B8544148E17A14A0F55041CDCCCC8CB6B85441CDCCCCCC9FF5504148E17A34BAB854410AD7A3C09FF5504148E17A94BDB8544148E17A14A0F5504148E17AB4BEB854410AD7A310A1F55041CDCCCCFCBEB854410AD7A390A2F550410AD7A3F0BEB85441CDCCCC5CA3F550410AD7A3F0BEB854410103000000010000002B0000000AD7A320EFF4504148E17AA47AB8544185EB5198EFF45041CDCCCCDC7BB85441CDCCCC5CEFF450410AD7A3C07CB85441CDCCCC5CEFF4504148E17AA47DB8544185EB51A8EEF45041CDCCCC1C81B8544148E17AE4EEF4504148E17A2482B8544148E17A34F0F450410AD7A36082B85441295C8F92F1F4504148E17AE484B854413D0AD703F4F45041CDCCCC6C81B854410AD7A3E0F4F45041AE47E10A7EB854413D0AD793F3F45041AE47E1AA77B85441713D0A17F0F450410000004070B85441C3F5284CEFF4504185EB51D86DB8544185EB51A8EEF45041CDCCCC4C6CB854410AD7A350ECF450410AD7A3606DB854410AD7A3E0E9F4504185EB51486DB8544185EB5128E4F4504148E17A746EB8544148E17AA4E3F450410AD7A3406FB8544185EB5178E2F450410AD7A33070B854410AD7A350DDF4504148E17A8470B8544148E17AB4DCF4504148E17AE470B8544185EB51E8DBF4504185EB515872B854410AD7A300DCF450410AD7A33073B85441CDCCCCECDDF4504148E17AF475B8544148E17A24DCF450410AD7A34078B85441CDCCCC2CDAF450410AD7A3C079B8544148E17A14DAF4504148E17AD47AB8544185EB51F8DAF4504148E17A547CB854410AD7A320E0F45041CDCCCC9C7CB8544148E17A24DFF4504148E17A747AB8544185EB5158E1F450410AD7A3D078B854410AD7A3C0E2F4504185EB514879B854410AD7A3E0E3F450410AD7A3807AB8544185EB51C8E3F45041CDCCCC7C7BB8544148E17A84E2F4504148E17AE47CB8544148E17A24E5F45041CDCCCCFC7CB85441CDCCCC1CE7F45041CDCCCC8C7DB8544148E17A24E8F45041CDCCCC2C7DB85441CDCCCCCCE8F450410AD7A3607CB8544185EB5198E9F4504185EB51487CB854410AD7A350ECF4504148E17A147AB8544148E17A64EDF450410AD7A3207AB854410AD7A320EFF4504148E17AA47AB854410103000000010000003000000085EB51A8E5F450410AD7A390ACB8544148E17AA4E6F45041CDCCCC6CACB8544185EB51E8E7F450410AD7A320ADB85441CDCCCC2CE9F45041CDCCCC7CABB854410AD7A3D0EAF450410AD7A380AAB8544185EB5148EBF45041CDCCCC6CA9B8544148E17A54EEF450410AD7A3D0A5B8544148E17A14EFF45041CDCCCC2CA4B8544185EB5178EEF4504148E17AA4A1B8544185EB5168EFF45041CDCCCC6CA0B8544185EB5138EFF45041CDCCCC9C9DB8544148E17AA4EFF4504148E17A049CB85441CDCCCCFCEEF45041CDCCCCAC9CB8544148E17A64EDF4504148E17AC49CB85441CDCCCC4CEDF45041CDCCCC2C9BB8544148E17A94EDF4504148E17AF499B8544185EB51D8EEF4504185EB51C898B85441CDCCCCFCEEF4504185EB51D897B8544185EB51C8EFF450410AD7A3D096B854410AD7A300F1F45041CDCCCC7C93B85441CDCCCCACF3F450410AD7A34090B854410AD7A330F4F450410AD7A3208FB85441CDCCCCACF3F45041CDCCCCDC8DB8544185EB5148F4F4504148E17AE48BB8544148E17A44F5F4504185EB51F88CB85441CDCCCC1CF6F4504185EB51488BB85441CDCCCC4CF6F4504148E17AD489B8544148E17A04F6F4504148E17A0487B8544148E17A54F7F4504185EB51C883B85441CDCCCC8CF8F4504148E17AC481B8544185EB5108F8F4504185EB513880B854410AD7A350F8F450410AD7A3007FB8544148E17AE4F7F45041CDCCCC7C7EB8544148E17A44F6F4504185EB51D87FB8544185EB5188F0F4504185EB51D888B854410AD7A390F1F45041CDCCCCEC89B8544148E17A54F1F4504148E17A848BB8544185EB5128F0F4504185EB51D88BB8544148E17AE4EEF4504185EB51988CB85441CDCCCCECECF4504185EB513892B85441CDCCCCFCEBF45041CDCCCC5C98B8544148E17A54EBF4504185EB51189AB854410AD7A360EBF4504185EB51289CB85441CDCCCCBCE9F4504148E17A649FB854410AD7A350E9F4504148E17A04A2B8544148E17A24E8F450410AD7A3F0A3B854410AD7A320E6F4504148E17AE4A9B8544185EB51A8E5F450410AD7A390ACB8544101030000000100000010000000CDCCCCFCDFF4504148E17A44BCB8544185EB5168E0F45041CDCCCC5CBCB85441CDCCCCBCE0F450410AD7A390BBB8544148E17A74E3F4504185EB5158B7B854410AD7A3E0E3F4504148E17A74B6B854410AD7A3E0E3F45041CDCCCC3CB5B85441CDCCCCDCE4F4504148E17A04B4B8544148E17A14E6F4504148E17A64B1B85441CDCCCC6CE5F450410AD7A310B1B8544185EB5178E5F4504185EB5198ADB8544185EB5158E4F450410AD7A360AFB854410AD7A3E0E3F450410AD7A370B1B854410AD7A3C0E2F45041CDCCCCFCB2B8544148E17A54E2F450410AD7A330B5B8544148E17A34E1F4504185EB5158B7B85441CDCCCCFCDFF4504148E17A44BCB854410103000000010000003D000000E17A141E55F650415C8FC2053AB9544114AE47B156F65041D7A370BD37B95441D7A3708D5AF650415C8FC2C538B954419A9999E95BF650415C8FC2C538B95441F6285CAF5EF65041AE47E1CA37B954418FC2F58860F65041D7A370BD37B9544185EB517863F65041AE47E18A36B954410AD7A3C065F65041713D0AA736B95441C3F528CC68F650417B14AE7737B95441295C8F626CF6504148E17A6438B95441AE47E1DA72F650410000004037B95441C3F5283C73F650410AD7A39035B954411F85EB7174F6504114AE478134B9544152B81E355FF650418FC2F51831B954410AD7A3804BF650410AD7A3002EB95441C3F5280C39F65041E17A143E29B954410000005035F650410AD7A37029B95441F6285C8F31F65041E17A14AE28B954418FC2F57830F650418FC2F5F827B954418FC2F5782BF65041B81E853B26B95441D7A370AD29F650413D0AD70326B95441A4703DAA27F6504148E17A9425B954410000003029F650418FC2F5F827B95441E17A143E29F65041E17A14AE28B95441713D0A172BF65041295C8F6229B954410AD7A3B02BF65041E17A14EE29B95441B81E853B2CF65041CDCCCC3C30B9544185EB51E82BF65041EC51B86E31B954413D0AD7032CF650417B14AE4733B95441EC51B8FE2CF650411F85EBB134B95441D7A3706D2DF650417B14AE7737B954419A9999492CF65041B81E854B3AB9544148E17A142EF65041AE47E1FA3BB954419A9999892DF650415C8FC2853CB9544152B81E652CF65041AE47E13A3DB95441713D0AD729F65041C3F5285C3CB95441EC51B8CE28F650418FC2F5C83FB9544148E17A2426F650415C8FC2753FB954415C8FC20524F65041F6285C9F3FB954411F85EBE122F65041AE47E17A3EB954417B14AE7721F6504114AE47513EB95441295C8F421EF65041EC51B8CE3EB95441C3F5282C1DF650418FC2F5C83FB95441A4703D3A1DF6504185EB517841B95441D7A3708D1DF65041713D0A9743B95441000000101EF65041AE47E1AA44B9544185EB511821F6504148E17A1444B954417B14AE873BF65041F6285CFF3EB954410AD7A30040F65041A4703DEA3DB95441AE47E10A44F650419A9999E93CB954410AD7A32047F650411F85EB113CB95441A4703D6A47F65041C3F5281C3BB954413D0AD7C346F65041F6285CEF38B95441C3F5280C49F6504114AE47E138B95441713D0A474BF65041713D0AE737B954418FC2F5784CF65041D7A370BD37B954413D0AD7B34EF650413333334339B954417B14AE1751F65041F6285C2F3AB95441C3F5283C52F6504148E17AA439B954410AD7A36053F65041F6285C2F3AB95441E17A141E55F650415C8FC2053AB9544101030000000100000061000000C3F5280CB1F5504148E17A1419B954410AD7A3B0B2F5504185EB51781BB95441C3F528DCB3F5504185EB51981CB9544185EB5108B5F55041CDCCCC1C1DB9544148E17AA4B5F55041CDCCCC8C1FB9544185EB5158B9F55041CDCCCC5C1FB9544148E17AE4BAF5504185EB515820B9544148E17AA4BBF5504148E17A2421B9544148E17AF4BCF550410AD7A32022B95441C3F528CCBDF5504185EB51E823B9544185EB51A8BDF55041CDCCCC9C24B954410AD7A350BEF55041CDCCCC8C25B95441C3F5284CBFF55041CDCCCC7C26B95441C3F528ACC2F5504185EB51D827B9544148E17AE4C3F55041CDCCCCBC28B954410AD7A350C4F55041CDCCCC7C29B9544148E17A54C9F5504148E17AF42CB954410AD7A370CBF55041CDCCCCFC2DB9544148E17A84CCF55041CDCCCC2C2EB95441C3F5285CCDF5504148E17A642FB9544148E17AA4CDF550410AD7A3F030B9544148E17AC4CEF5504185EB51A833B9544185EB51A8CFF5504148E17AA434B95441C3F528ECD0F55041CDCCCC1C35B954410AD7A300D2F550410AD7A3C036B95441C3F5283CD2F55041CDCCCC4C38B954410AD7A320D3F5504185EB51D839B954410AD7A3B0D3F550410AD7A3D03BB9544185EB51A8D5F5504185EB51283EB9544148E17A44D9F55041CDCCCCEC40B9544148E17A94DAF5504148E17AC441B954410AD7A360DBF5504185EB51D842B95441C3F5282CDCF5504185EB51C843B9544148E17A84DEF55041CDCCCC0C45B9544185EB51D8E1F5504185EB51A845B9544148E17A34E3F550410AD7A36045B954410AD7A3E0E5F55041CDCCCCFC45B9544185EB5138E8F5504185EB51E844B95441C3F528CCEAF550410AD7A30045B9544185EB5158ECF5504148E17AB445B9544148E17A84EDF5504185EB51F846B954410AD7A3B0EEF55041CDCCCCAC47B954410AD7A300F0F5504185EB51A848B954410AD7A380F1F550410AD7A3F04BB95441C3F5282CF1F55041CDCCCCEC4CB9544148E17A44F1F550410AD7A3A04DB95441C3F528ECF1F550410AD7A3904EB95441C3F5286CF3F550410AD7A3804FB954410AD7A3B0F4F5504185EB51984FB9544148E17AF4F5F55041CDCCCC1C50B95441C3F5283CF6F55041CDCCCCAC50B9544148E17A74F7F55041CDCCCC3C51B9544148E17AF4F8F550410AD7A36051B9544185EB5188FBF5504148E17AA452B954410AD7A340FEF550410AD7A30054B9544148E17A64FEF550410AD7A3B055B9544185EB5198FDF5504185EB51B856B95441C3F528ACFBF550410AD7A36057B9544185EB5188FEF550410AD7A3F057B95441C3F528ACFEF5504185EB517857B9544185EB517802F6504185EB51D854B954410AD7A33005F6504148E17AF453B9544185EB512807F6504148E17A9453B954410AD7A36008F6504185EB51E853B9544148E17A040AF6504148E17A9453B95441C3F5288C0CF650410AD7A3F051B9544148E17AF410F650410AD7A37050B9544185EB51C812F6504185EB51F84FB95441C3F5288C15F65041CDCCCC9C4EB95441C3F528AC16F65041CDCCCC5C4CB954410AD7A36017F6504148E17A544BB954410AD7A3B018F650410AD7A3D04AB9544148E17A141BF650410AD7A3004BB954410AD7A3101CF6504185EB51E847B954410AD7A35015F65041CDCCCC9C45B9544148E17A840BF6504148E17A3447B954410AD7A31001F65041CDCCCC7C47B95441C3F5280CF9F550410AD7A38046B9544148E17AA4EEF5504185EB512844B95441C3F5280CE7F5504185EB515841B9544185EB5198DFF5504148E17AA43DB954410AD7A370D7F5504185EB510837B9544148E17AF4CEF5504148E17A842DB95441C3F5281CC8F5504185EB51E826B9544185EB5168C1F5504185EB519822B9544148E17A94BCF55041CDCCCC6C1EB9544185EB5158B9F550410AD7A3A01AB95441C3F528DCB6F550410AD7A34017B95441666666F6B3F55041295C8F7212B95441F6285C7FB1F55041AE47E14A0DB9544148E17AF4B0F550410AD7A3D00BB9544148E17AD4AFF55041CDCCCC1C0EB954410AD7A350AFF55041CDCCCC7C11B954410AD7A3E0AFF55041CDCCCC5C13B954410AD7A3B0AFF5504185EB518814B9544148E17AF4B0F5504185EB51E817B95441C3F5280CB1F5504148E17A1419B9544101030000000100000009000000EC51B8CE86F650418FC2F5D837B954410AD7A33087F65041C3F5289C38B95441F6285C3F90F65041666666E638B954417B14AE9795F650416666660639B9544185EB514895F65041295C8F5236B95441A4703D0A95F650410AD7A33033B954417B14AE4785F65041D7A370FD33B954410AD7A33087F650410AD7A3D036B95441EC51B8CE86F650418FC2F5D837B9544101030000000100000021000000EC51B83E99F45041295C8FD202B95441E17A147E9AF45041CDCCCCDC03B954413D0AD7739AF450411F85EB3105B95441E17A143E9BF45041CDCCCC7C05B9544185EB5188A1F45041D7A370BD02B9544114AE47F1A8F45041E17A14BEFEB8544114AE4751AAF450418FC2F508FDB85441B81E859BADF450418FC2F5E8FBB85441AE47E13AB2F45041EC51B83EF9B854415C8FC2C5B2F45041EC51B8BEF8B8544152B81EC5B5F45041A4703DEAF3B8544152B81EA5B5F45041A4703D8AF2B854419A999999B9F4504100000080EFB85441EC51B82EBBF4504100000000EFB854413D0AD763BCF45041000000A0EFB854418FC2F5B8BDF45041000000A0EFB854413D0AD783BEF4504100000000EFB854413D0AD703BFF45041AE47E1EAEDB8544100000020B7F450417B14AE27EEB85441EC51B88EB0F450413D0AD753EEB85441C3F5281CAAF45041AE47E1EAEFB85441713D0A07A9F45041A4703D8AF0B85441713D0A47A7F45041F6285CFFF2B85441713D0A87A7F4504148E17A14F4B85441CDCCCCDCA6F450419A999989F5B854417B14AE47A5F4504148E17AB4F6B85441295C8F72A3F4504148E17A14F6B854417B14AE07A3F45041F6285C5FF5B85441E17A14FE9CF45041EC51B8BEF9B854419A9999E997F450418FC2F5E8FCB85441EC51B8BE98F4504185EB512800B95441EC51B83E99F4504185EB512801B95441EC51B83E99F45041295C8FD202B954410103000000010000003100000014AE4741E6F45041E17A144ED0B85441EC51B83EE5F45041E17A14EECFB8544152B81E45E6F4504185EB5148C9B8544185EB51D8E5F4504148E17A24C7B8544148E17AC4E4F4504185EB5188C6B8544185EB51C8E3F4504185EB5108C5B8544148E17A04E4F45041CDCCCC7CC3B8544185EB51C8E3F4504185EB51A8C1B85441CDCCCC6CE2F450410AD7A310C0B8544148E17A94E1F4504148E17A44BFB8544185EB51F8E0F450410AD7A390BEB8544185EB5198E0F450410AD7A310BDB85441CDCCCC2CE0F4504148E17A04BDB8544148E17AF4DEF45041CDCCCC2CBFB854410AD7A3E0DDF4504185EB5188C6B85441CDCCCC6CDCF45041CDCCCC2CC8B854410AD7A3D0DBF450410AD7A330CAB8544148E17A44DAF4504185EB51C8CBB8544185EB51A8D9F45041CDCCCC9CCDB8544185EB5188D5F450410AD7A320D1B8544185EB51B8D2F450410AD7A300D3B8544185EB5198CEF4504148E17A34D5B854410AD7A3F0C7F45041CDCCCC5CDAB8544185EB51C8BFF450410AD7A390DFB8544185EB5158BDF45041CDCCCC9CE2B854410AD7A300BEF450410AD7A360E2B8544148E17A74BFF450410AD7A340E1B8544185EB51C8C2F450410AD7A3C0DFB8544185EB51F8C5F4504185EB51B8DEB854410AD7A3D0C9F4504148E17A74DDB85441CDCCCC0CCDF450410AD7A330DCB85441CDCCCC0CD0F4504148E17A34E1B8544148E17A24D0F4504185EB5118E2B854410AD7A3D0D2F450410AD7A370E4B8544185EB5178D3F450410AD7A380E3B8544148E17A64D5F4504185EB5108E3B8544185EB5158D8F45041CDCCCC7CE1B8544148E17A84D9F4504185EB51E8E1B8544148E17AC4D8F45041CDCCCC8CE0B8544185EB5118D9F4504148E17AC4DEB854410AD7A380DAF4504148E17A44DDB854410AD7A3A0DBF450410AD7A3F0DCB8544185EB5158DEF45041CDCCCCECDAB8544148E17AA4DDF450410AD7A360D9B8544185EB5198DDF4504148E17AA4D7B854410AD7A3D0E1F450410AD7A340D5B854410AD7A320E3F450410AD7A370D5B85441D7A370DDE3F450411F85EB91D4B8544114AE4741E6F45041E17A144ED0B854410103000000010000002F0000000AD7A3109EF550410AD7A350FEB85441C3F528BC9DF5504185EB51E8FCB854410AD7A3409EF55041CDCCCCBCFBB8544185EB51189FF55041CDCCCCCCFAB854410AD7A350A0F5504148E17AB4FAB8544148E17AA4A0F5504185EB5178FAB8544185EB5158A1F55041CDCCCC6CFAB8544185EB5198A3F5504148E17A34FCB8544185EB51E8A4F550410AD7A3A0FCB85441C3F5282CA6F5504185EB5148FDB85441C3F5286CA8F55041CDCCCCFCFDB85441C3F528ECA9F5504148E17A14FEB8544185EB5178ABF55041CDCCCC1CFFB85441C3F528FCABF5504185EB517800B95441C3F528ACADF550410AD7A39003B9544148E17AE4AEF55041CDCCCC4C05B9544185EB5148ACF55041713D0AA7F6B85441C3F528DCAAF5504133333303F0B8544152B81EA5AAF5504133333303EFB85441F6285CCFA8F5504152B81EA5E1B854417B14AEE7A8F55041CDCCCCBCDAB8544185EB5118A8F5504185EB51E8DBB854410AD7A3A0A7F55041CDCCCCBCDDB854410AD7A3A0A7F5504185EB5148DFB854410AD7A390A8F5504148E17AC4E4B85441C3F5280CA8F5504148E17A44E6B8544185EB5118A8F5504185EB5168E9B8544148E17AE4A8F55041CDCCCCDCEAB854410AD7A3C0A8F5504185EB5198ECB854410AD7A350A9F5504148E17AF4EDB854410AD7A350A9F550410AD7A3E0EFB85441C3F5287CA7F55041CDCCCC9CF7B85441C3F528FCA5F5504148E17AA4F8B8544185EB51E8A1F5504185EB5128F9B85441C3F528DC9EF5504185EB51A8F7B8544185EB51F89DF55041CDCCCCCCF7B8544148E17AD49AF5504148E17A24F7B85441C3F528FC96F5504148E17A54F7B8544185EB51B895F5504148E17A24F7B854413D0AD76394F55041295C8F62F7B85441EC51B83E9BF5504114AE471105B95441C3F5283C9CF5504148E17AD404B9544185EB51C89DF55041CDCCCC0C06B9544148E17A949EF5504185EB512805B954410AD7A3109EF5504185EB51E802B9544148E17AD49DF5504185EB5158FFB854410AD7A3109EF550410AD7A350FEB85441
+</a>
+
+<b>
+0106000000010000000103000000010000005002000099539FF808F55041608C0681E2B8544111BDFA4A09F550414509C678E2B85441D36F5AA90AF550410B480DDDE1B85441840D2EDB0AF55041971A3EA6E1B85441C3F5288C0AF550410AD7A3F0DFB854410AD7A3E00AF550410AD7A360DFB8544166156EF60AF550415BAAE066DFB85441F53C6CFF0AF5504162FABB59DFB8544137C0ED850BF55041547B4B81DFB85441C9E322700BF55041CB4D73F5DEB85441F53C6CFF0AF55041550CFEADDCB854418B815ECD0BF55041129FDC09DBB854417EB9E4BC0BF550417E3E2744DAB8544168334AD90BF55041325A802FDAB85441C3F528DC0BF55041CDCCCCCCD9B85441C9BB25900BF55041547C17AFD9B854416061778B0BF550411136DFAFD9B85441488F7CD708F550413BD105A0D8B8544197BA96E807F550411FD81425D7B85441D636CE4B08F5504106C99B4CD6B85441C3F528DC08F550418FC2F5C8D4B8544127EE6D4F09F55041E1D3C29FD4B85441C17B017409F550411FB2D089D4B854411EF455E709F550419978118BD2B85441FC47F2030AF55041DB67CD76D2B8544185EB51080AF5504148E17A64D2B85441C3F5288C0AF550410AD7A310D2B85441B626D5930AF55041150AE210D2B85441B2540BAD0AF550412D5406FFD1B85441A42D15E60BF5504139384307D2B854418EFBDF070CF55041F90FAA1CD2B85441C3F5280C0CF55041CDCCCC1CD2B8544148E17AB40CF550418FC2F588D2B854417057B9B50CF550412ACAC48AD2B8544161E637DD0CF55041B224C8A3D2B8544161A489970DF550416EA117D3D3B854410AD7A3400EF550418FC2F5C8D4B854410AD7A3400EF550410AD7A390D6B85441E375BDAF0DF55041250B50A3D6B85441847B3EE60CF55041CB5CB9DAD6B8544185EB51380DF55041CDCCCC2CD7B85441FC867B300DF55041DE95793CD7B85441A5B2D5370DF5504139680846D7B85441E0D09F860CF55041AE4182B0D8B854418877978E0CF55041AE68A718D9B85441F87649BA0CF5504140643776DAB854415A06E2450DF550416B8136DDDAB85441030F67B30DF550412C4B9322DBB85441B3E34CA20EF550410394A93ADCB854419710A0C20FF55041DBC0FC5ADDB85441AF8D20FA0FF550411F51B171DDB8544192292FB910F5504119A48EADDDB85441A5E29A7612F5504147E507E7DDB854412B97992313F550412B71D7BDDDB85441F6FB723314F55041CE7D439CDEB8544156337BC214F55041CBD76200DFB854411E91A87915F550410AB24D4ADFB854418AFDAB4216F550418B366693DFB854415403099C18F55041624FB76CDBB854418469099718F5504192B5B767DBB85441F5002F3318F55041145CB714DBB85441A26F438917F550412862C697DAB854411489112817F5504164706374DAB854418EEC972816F55041392C6017DAB8544133C6F61F16F55041306FB814DAB85441FB7590A015F55041DB5E0842DAB85441DB126C6F15F5504190D68253DAB8544162207EBF14F55041C0268896DAB85441CEA3050214F550418B8B61A6DBB85441F874DF4F13F5504168BA8758DCB8544185EB510813F5504148E17AB4DCB8544185EB517812F55041CDCCCCCCDCB85441C66DA52911F55041561782B5DBB8544147E585B110F550415428C1A5DCB85441A5D92EAE10F550416D05BC9BDCB8544148E17AA410F5504148E17AB4DCB8544194367C5210F55041391CA488DBB85441E988F43510F5504139130D33DBB85441867A313A10F550418569CF2FDBB8544185EB513810F550418FC2F528DBB85441CEEC0B6010F550412112DD12DBB85441220213A610F55041F01F50DDDAB854410B4C50BF10F55041F25121E8D9B8544153C9C2B910F55041DC15F86DD9B8544198799D1C11F55041DC747424D8B85441E90DB58711F5504139680846D7B85441D6240BAD11F55041162B78E2D6B8544185EB51B811F550410AD7A3C0D6B85441C3F528FC12F550410AD7A330D6B85441EB88F96013F55041B14152F8D5B8544105A8294C14F55041B32E4947D5B8544152CAEB8514F550413F4A2CEED4B854410AD7A36015F5504148E17A84D3B85441C1C8F88F15F55041731BB378D3B8544147154BF015F550412CF58948D3B8544198A9625B16F550413BA14061D3B854414383E4DA16F5504106D27729D3B8544185EB51A818F550410AD7A350D1B85441CF8854CF18F55041FBC09E40D1B85441DECBEF7319F55041731F51EED0B85441F656096719F55041A2946C96CFB85441DC9B445119F550419605938DCEB8544109E64FBA19F5504196B6855ACDB854410AD7A35019F550410AD7A3D0CCB85441C3F5288C19F550418FC2F598CBB85441B5283E9219F550413B9ECB95CBB8544111BC2B9319F55041472F748FCBB854418E13E5E11AF55041EBE389D9CAB8544148E17A441CF55041CDCCCCACC9B854417EB4C88C1CF55041AB619EC9C9B85441C0D218151DF5504110A68FF3C9B854417713F0511DF55041C8E66630CAB8544148E17A641DF55041CDCCCC3CCAB8544148E17A641DF5504199B4F142CAB85441039FB66F1DF5504154722D4ECAB8544148E17A641DF5504143A9F4E3CAB8544148E17A641DF550413C868803CCB85441F7BA79671DF55041B3537F1BCCB85441E3CFB22B1EF550412341ED65CCB85441CDC8EB981EF55041605FD17BCCB854418BBCB2761FF5504110CCD38ECCB85441B38F5F561EF550418A215685CEB85441ADEA04EC1DF550414B4B3772CFB854410AD7A3E01CF5504148E17A64D2B85441A62055151DF55041F3B5740ED3B85441C1B6551D1DF550411081591FD3B8544155C20FD021F55041472F748FCBB85441E9E98C7A26F550415442680FC5B85441A67C6BD624F550413853F837C6B85441F68BC2EF23F5504170B69838C5B854410A7BD3B124F55041F5305664C4B854410AD7A3F024F550418FC2F518C4B854415FF0912B25F550411CD87AB6C2B85441F710834125F550411234C321C2B854418C71380726F5504104E788BFC0B854411E0A74BC26F55041B164B3A8BDB854418A8DFBFE25F550414640A81CBDB854412F84AAD625F550419C82BC26BDB8544148E17A1425F5504148E17A64BDB85441C3F528FC24F550410AD7A3B0BCB85441DB9C521825F55041007DEAA4BCB85441DB9C521825F55041E7E316A1BCB85441DBAE9FA026F5504198A01CE5BBB854413A60C37326F550412816FF88BBB85441615151C525F5504111FA7C3FBAB85441372DF3C825F550412FE1402ABAB8544185EB51C825F550418FC2F528BAB85441019AADCD25F55041938C9C0EBAB85441B2E5683026F55041384869CDB7B854414538404726F5504158D4C7B8B7B85441C3F5284C26F550410AD7A3A0B7B854412016D6B826F550412EF32F52B7B854417082C82F27F550418957C0E6B6B85441759BC43328F550419625C0F3B6B8544148E17AA428F55041CDCCCCECB6B85441595DCEF628F550419923DCE4B6B854416FA80CCB29F550416EC7CCC5B6B85441C220613E2AF5504161841307B8B854411F99B5B12AF5504155415A48B9B854417C110A252BF55041CDCE622EBBB85441E24BB45A2BF55041FCF70A61BCB85441CDCCCC5C2BF550418FC2F568BCB854416F8C925C2BF550418AD6B76BBCB85441A54DB45E2BF55041C16FE677BCB854418ABDC03D2BF550412D19B255BEB85441624CE7D52BF550411D8F7982BDB8544185EB51B830F55041E17A149EB6B85441AE47E16A32F55041D7A3704DB5B8544148E17AA431F5504148E17AF4B4B8544185EB51B82FF5504148E17AF4B4B8544185EB51182DF550418FC2F538B6B854415548F0162DF550415340F137B6B85441F5824F132DF5504103A3C139B6B8544163EA135E2CF55041A62A6DC6B5B85441850AC04A2CF55041D63B2422B5B85441CDCCCC1C2CF55041CDCCCC1CB4B8544148E17A942CF5504148E17A84B2B854411FC3FE342CF550418E42B792B0B854416B9ED7F52BF55041E255B0E8AFB85441915537762BF5504124C2DCE1AEB8544198853A4E2BF550412C896299AEB85441C61989572BF5504178382874AEB8544185EB51982BF5504148E17A44ADB854410AD7A3A02CF550410AD7A350ADB85441CDCCCC5C2EF550410AD7A310AEB8544153AF8A9E2EF5504152CC5AB6ADB854412DF070B72EF5504161248989ADB8544162CB48E82EF550418BE22D8DACB85441E532C2DD2EF55041B6C31C85ACB85441CEAFA2332EF55041619FC837ACB854417BCB61602DF55041D81D8543ACB854410AD7A3002DF5504148E17A54ACB8544116EAAC4A2CF550410458401AACB85441CDA521902BF550412A9BA4EDABB854417DF5462D2BF550412C7FE1F5ABB85441B8F292C32AF55041447F15F9ABB8544148E17A542AF550410AD7A300ACB85441F6F39F502AF550416B3991FCABB85441B2906D1D2AF5504138631EFEABB85441FA0F9F7929F55041A7163126ABB8544185EB510828F550410AD7A3E0AAB854410AD7A38028F5504148E17A14AAB8544143FAA59728F550413580CF0CAAB854418B977CA228F55041A54522F7A9B85441E80FD11529F5504189D1F1CDA9B85441CE049E462AF5504111BF2896A6B85441DCD698FA2CF55041968FEA3AA7B8544189E5384F2DF55041FEE3765BA7B8544148E17A542DF55041CDCCCC5CA7B854412D6BB0652DF55041A3996AA4A6B854412D6BB0652DF5504197EE66F1A5B8544143DADA762DF5504123617FECA5B8544185EB51782DF55041CDCCCCDCA5B85441DECB00BC2DF550418637E7DFA5B85441109803862EF550418842B0D8A5B85441CD50267D2FF5504197EE66F1A5B85441101DC4D72FF550412C29D81BA4B8544168A34C8230F550411CAF6366A2B854410AD7A39030F5504148E17A34A2B8544199702EED30F55041310BB0F4A1B854417EDC61EB31F55041AB807338A1B85441ECE9572434F55041B021D3A4A1B8544110B8430E37F55041B2CE8533A2B854418A88B56937F550414F9A822EA2B8544165DD59D637F5504131138E28A2B854411BE721B838F55041C0C23211A2B85441A41E74BB38F55041F67A250EA2B85441CDCCCC6C39F55041CDCCCC5CA1B854410AF1258B39F55041A2B94A4FA1B85441840BBFB239F550418C8CE72AA1B854411B77145C3AF5504104BCB7F4A0B854412223F6623BF550414A3BA025A1B85441E3A752443BF55041D8E7879F9FB854413AB3993B3BF55041381A17659FB85441355A33A13BF55041A64F21289FB8544145FB920D3CF55041536D43069FB854414AE4EB4B3DF55041CB541AFE9DB85441A0CC65F23DF550418FC2F5089EB8544185EB51583EF550418FC2F5089EB85441859C5F623EF55041FD4443109EB8544145D37E833EF55041FF426C129EB85441830390703FF55041ABA887C29EB85441F53902AC3FF55041C80EAEDA9EB85441CDCCCC2C40F550418FC2F5F89EB854415F70FD4140F55041DD1C9C179FB8544198454F4940F550417C5B951A9FB85441D3EFD75E40F55041812758419FB8544185EB519840F5504148E17A949FB854410ADF11A340F55041DEA5029A9FB85441BDDA3AC340F55041CBE40CA29FB8544147EB403D42F550416EBAA96BA0B854419836955F42F5504174679C15A0B85441B270676042F55041C58BA607A0B854412A583E5841F55041910D624F9EB854413BBA675B41F5504144F44C499EB8544185EB515841F5504148E17A449EB854416AFEF06341F5504102EBE0389EB85441FFC4506A41F5504141B19D2C9EB854410BACAB1C42F550415DD716699DB85441557DF0CC42F550415FD3B4CB9CB854416DD4DCD042F550417257DE409CB854412ABFEAD442F55041219D63B19BB85441CC0B8DD342F550418294166D9BB85441BCD74BAB42F5504176BE98C79AB854410AD7A39042F5504148E17A849AB854416C78F89A42F5504148E17A849AB854413A41979642F55041247079729AB854413FE2F60243F550410F76B36B9AB854413A89906843F55041B63A6FAF9AB854417E5A01C244F55041141713D89AB854412567B6D745F550413E0B9FE59AB854410284225646F55041C79FE5AF9BB8544185EB519846F5504148E17A149BB85441BC881CCA46F55041BA1C81E89AB8544179918DCB46F550413E0B9FE59AB8544105B9E6DD46F55041C8AB06D79AB854410AD7A3D047F550410AD7A3009AB85441332209E647F55041794CEB049AB85441548C94F547F55041F5DA8DF899B8544100F2AFA548F5504167B1F7279AB85441A25D054F49F55041B1990F439AB85441E6F13D7749F550419C0F29559AB854410AD7A3B049F550410AD7A3609AB85441E91BA2044AF55041452098A09AB8544163D937B34AF5504104A6D41B9BB85441CDCCCC9C4BF55041CDCCCC6C9AB854410AD7A3D04DF55041CDCCCCFC97B85441FC402E704EF55041CDCCCCFC97B8544106911AC94EF550410F9EC7F597B854418DFF0C6F4FF55041AC68BD3298B854412FC765AF4FF55041C05C494098B854413F68C51B50F550410A45615B98B8544178F7769C50F550413333B36F98B854413A57585351F550419C0F579898B8544105B1FF1052F550414DCED8E298B854410B525F7D52F55041A1B0B60499B85441D10AA7CE52F55041337BAC4199B854416CE34C1A54F5504108E3D82D9AB8544148E17A8454F550418FC2F5789AB85441CCDDBDC554F55041FBA203F799B85441AD4DA7CA54F55041D5E601EB99B85441DDA89BCB54F55041245755EB99B85441CDCCCCCC54F550418FC2F5E899B85441BC9AEF1155F55041630759039AB85441AC1C4FCB55F550413759A5429AB85441EBEFF10256F550410B6F1ECD99B85441AD94102456F55041CA5FAF5599B85441A2E3D36756F550415D6F384F99B85441F1A7080957F55041E963971F99B854410AD7A3D059F550418FC2F53898B85441CDCCCCFC5AF550410AD7A38098B85441A88D31215BF5504181FE292499B85441C18737615BF55041CBEC3BE499B85441495867975BF55041EA28C1C39AB85441AECA70C15CF55041C98B6FBD9AB854419E7A0BEC5CF550410E1DAEA39AB854410AD7A3005DF5504148E17A849AB8544148E17A745EF55041CDCCCC3C9AB854414BBEFA795EF55041B5BB76469AB8544182BF048E5EF55041B1990F439AB854413D8BD4075FF550411B9716B19AB8544192C8421463F55041824C1D9B9AB854412800B71264F5504101C27E0E9AB8544148E17A1464F55041CDCCCC0C9AB854412A11F11464F550419BB8430D9AB8544105E7A51564F5504129C9DF0C9AB85441DB404DD364F55041247079729AB85441B194BA9765F550416258918D9AB85441EB41DF8068F5504186E530739AB854415B5C355F68F550413BB22D4899B85441FBDA3F4E68F55041C5E98AB198B854411A494A3668F550416821058498B85441BFE9861868F55041980D99F897B85441688AC8EB67F550416D32724C97B8544122C2DA6767F5504174640CD696B85441CDCCCCFC66F550418FC2F58896B854419D56B0F966F5504140872E7396B85441E0719FE366F550412E02615F96B85441FFEF31D566F55041EEB8B97395B85441CDCCCCCC66F550418FC2F53895B8544155F172D166F5504112248A3695B85441AC834DCF66F55041FF247C1395B85441688AC8EB67F55041E58956A094B85441F58B4A326AF55041F59AC36893B85441AF973B9F69F55041653356C892B854414ABBE98568F550411E9B0AB592B854412BAA9E0A62F55041A9F61A4F92B85441CDCCCCFC60F55041CDCCCCEC92B85441CBB6C3F660F55041A9999CEE92B85441E6D234C060F5504119E8B51093B85441F5DD678F5FF55041E0A0FD6193B85441520AC3565FF55041A9E6C67E93B854410AD7A3205EF55041CDCCCC3C94B85441445DA4F45DF55041654FBD3294B854410A483BF25DF55041E0E8F63394B85441E535CB535CF55041DA99A3DE93B85441CDCCCC6C5AF5504148E17AF493B8544185EB518859F5504148E17A0493B85441740BCEA158F550412521733791B8544101DC494758F55041D996E0C990B854410AD9836F56F55041A6E7F61691B854410519DE2A56F550417293072991B85441D3E1D22456F55041E43E2B2391B85441CDCCCC1C56F5504148E17A2491B85441A5939FE155F55041A74001E290B85441E6DC584B55F550415D51485090B8544134D6DD2E54F55041FA1B3E8D90B8544178175CE453F55041A6C9520F92B854410B9A584F53F550418C76266E92B85441246B413C53F550419F068A5392B8544185EB512853F55041CDCCCC5C92B854410F99039A52F55041A565627191B85441EB5DD36F52F550419287933691B85441079AC1E851F55041079AC16890B854418648B9FD50F550418648B97D8FB85441D1EAC1864FF55041341BFD698FB85441A255D60C4FF55041923F9A6490B85441CDCCCCFC4EF5504141E5071D91B85441CDCCCCFC4EF550410AD7A39091B85441F8D4E4F24EF550416287F38E91B85441646DBEF14EF550418C2E2D9C91B854415FBF0E264EF55041E14F086C91B8544185EB51584DF550418FC2F54891B85441DB6533294DF550414F51E44091B854417EE8FE1C4CF550419287933691B854416E479FB04BF550415D99412291B85441C3A967144AF55041B6EFD3B990B8544185EB51C849F55041CDCCCCAC90B85441CFEBF00D49F55041895D7D9490B854414F332E5B48F55041E521788690B8544140EA1C5F45F55041275C0B2190B85441DA3534A041F55041BE8381C290B854415FB69DC83FF55041045EFD6591B85441F64907FC3DF55041CB1645B791B854413AFB920D3CF55041144756A492B85441E7D0BB193BF550415377679193B854418E95775D3BF55041AB429EF194B8544189AC1E1F3AF5504119C0A18695B85441CAAA11DE38F5504181E13FB095B85441CDCCCCDC38F550410AD7A3B095B85441BD2734DC38F55041D3C77DB095B8544106ED5BB138F550418C960BB695B85441B365602C38F5504152D9A68495B85441CDCCCCFC36F550418FC2F53895B854417F8C477436F550411983259595B8544179A3E09835F550410F0ED55196B854416FABBD7F35F5504169FAD58F96B854410AD7A37035F550410AD7A33097B8544166FA683C35F550418826EB3597B854417EFC463335F550416D32724C97B854410901A4F434F5504130B3014297B85441FB7E678434F55041D0E8D4E097B8544103C1714834F55041173EAE3598B85441ECE9572434F550413333B36F98B85441439C963E33F5504156FD024B99B854410AD7A33033F550418FC2F55899B85441A75C5C2F33F55041820B8C5999B8544111EF50FA32F55041EF392E8C99B854412BFA83C931F5504148BD6B1A9AB8544193372C4630F5504182839BB69AB85441CDCCCC4C2FF5504148E17AA49BB85441F5EFA1342FF55041890F549B9BB85441B84B2E242FF550411E5F0CAA9BB854412BDA80772EF5504158A6B5539BB85441C65723402DF55041BB88CDDD9AB854415A91648C2CF550419746E3A19AB8544189E3635B2CF5504183F1D6A59AB85441849451952BF55041D1CC33C59AB8544115B18CFB29F55041FCD815069BB85441212AC79529F55041D0D594229BB85441FC4CE24928F5504143F4F7239CB854419EDA118426F55041EA00AD399DB85441C25325C424F550415F1732219EB854410CA83D2D22F5504114CD24BD9FB85441F2C41EE820F55041E5C72BE7A0B85441E3F331CE1FF55041717A91B9A1B85441A463BBEA1DF5504148DB5B19A3B85441A3EF68191DF550414190CDFDA3B854417486D69E1CF550418CACCC72A4B85441D2B9CB861BF550416D0E024FA5B85441AEF5A2D719F55041629666D4A6B8544126DD79CF18F55041B608379AA8B8544140E8AC9E17F550417C0978BDA9B8544194F29E4A15F550419B8DF66EABB854414B7A948B13F55041EAEE596CAEB854410AD7A38013F55041A5DD9F2DAFB854410AD7A38013F55041CDCCCCCCAFB8544153F08E4613F5504131040636B0B8544146EEC81A13F5504167EDB88EB0B85441D302CBEF12F5504148A92304B1B85441A46DDF7512F5504152EBE2DCB1B85441396354F011F55041CE8005A2B2B85441C3F5287C11F5504148E17A74B3B85441769E7E3511F550415E100F93B3B85441BEE81FA10FF550417CB75A60B4B85441C53E7BA60EF55041B4AFBCF6B5B854418A6ADBE80DF550410E5A3C13B7B85441BE096E770DF550412CB117E2B7B85441174C78E70CF5504142D880CBB8B85441C321A1F30BF5504128CD4DFCB9B85441992D15E60BF55041281547CEBAB854411C5DE5AF0BF55041762EB1F9BCB854410CBC85430BF55041E43BA732BFB854416D6ABEEA0AF550417A741D7EBFB8544132BCE3AD09F55041EF0412AAC0B854419A0D309E08F55041D4C06607C2B8544117BE7A8C05F5504108377C7DC9B85441460B6D3405F55041371461C9CAB85441FB302C9305F5504167E7242FCBB85441C3F528DC05F550418FC2F568CBB8544145EE33E305F55041F3401A85CBB85441FD6A4EEB05F550411868CE8DCBB854410D0CAE5706F550418B86318FCCB8544180E2178706F55041BA6316DBCDB854414653660606F550412D8279DCCEB85441A4E7105D05F550411818A679D0B85441B0E9632105F5504139B92290D1B854410AD7A31005F550418FC2F5F8D1B85441716C20A704F55041FE449D04D2B85441F839FCDA03F550412DA25E24D2B854412E15784B03F55041194CB214D4B85441C3F5283C03F550410AD7A350D4B854418894703A03F55041FFE8964FD4B854416BC86C3803F5504190B58E56D4B8544152522D4102F550413BD65EB7D3B854410AD7A35001F5504148E17A24D3B85441F598511200F550411D703B65D5B854413CCBA2A4FEF45041B46A5F18D8B854417DE43673FEF45041B15E5755D8B854417B14AE67FEF45041A4703D6AD8B8544143B07F0DF9F45041F79B595BDFB854414C6EF759F9F45041460B4C82E0B85441D9DF86FCF9F450413CA1781FE2B85441257384BCF9F45041F00D7B5FE2B85441C3F5287CF9F450418FC2F5D8E2B854410AD7A350F8F450418FC2F578E2B854413929B907F7F4504185D53471E3B85441F312CE55F6F4504102EAB214E4B854419D0F3319F5F450415D444FA9E4B85441C3F528FCF4F450418FC2F5B8E4B854417EF81B25F4F450418FC2F5B8E4B854414C76269CF3F450419A5508BEE4B854418C593563F3F45041F1A066D0E4B85441E20EFA97EFF450414C27D460E8B8544108F99E2CEEF4504145582FB6E9B8544156781BE5EDF45041E335F196EAB8544108A7AA8BECF450412C660284EBB85441C74B5442EAF450410F18E250EEB85441A306262BEAF45041E8603573EEB85441D9AC9C1FEAF45041049C4A84EEB854416655C0D5E9F450414621DD04EFB85441981E157FE9F450410D8952FBEFB85441719A03D1E8F450417F5D51EAF1B85441F8E565D7E8F4504121CCEB54F5B854418BA6026DEBF45041055F2257F6B854416CB507B6EEF4504116621A4DF7B85441C3F528ECEFF4504148E17AC4F6B854412529F3DBF0F45041BC0156B7F6B854419759FEA3F1F4504121DCF0A5F6B85441CB95A8DDF1F4504156FCD7E7F6B854412FDF9406F2F450414ABC1EFEF7B8544187D5AD51F2F45041BBE5A107F8B8544138C4340DF5F45041985F78E8F5B854412D0E7128F6F4504194B4527AF5B8544148E17A34F6F4504148E17A74F5B8544111D5C435F6F450413BE72375F5B854417A611F7AF7F45041DAC79A08F7B854410AD7A3C0F7F4504148E17A64F6B85441A4BC68C1F7F450417BC05E64F6B85441477A6CC9F7F45041DD0F534BF6B854413A37B30AF9F45041C19B2222F6B854417C1F145DF9F45041CE591B8FF3B85441F7EFD501FAF4504162B04FB1F1B85441B3A8F8F8FAF45041C1E69C91EFB85441F690594BFBF450418AE27847EFB8544185EB5168FBF450416B2D880DEFB8544185EB5168FBF450411381AEEDEEB85441E04FEC5FFBF4504135DB4CBBEEB8544148E17AE4FAF45041CDCCCC6CEEB854419CB842EAF9F450411F391EF5EEB85441D99768D0F9F4504155C29105EFB854412B8BFCF1F8F4504197AAF257EFB85441ECD70DB7F8F45041AB72A817EFB854410AD7A320F8F450418FC2F5A8EEB8544185EB5138F8F4504148E17AF4EDB85441A4F2C03CF8F450417D11A9F2EDB85441A4F2C03CF8F450417C953EE5EDB854416E2A68D8F9F45041041F212AEDB85441C3F5282CF8F4504148E17AD4ECB854418CB02C29F8F450412B9381B5ECB854418B460A24F8F450418CA071B4ECB854416FD2D9FAF7F450417E533752EBB85441F66A15B0F8F450411E8EA87CE9B85441C1707209FBF4504146E615AEE9B8544102C9E910FBF450417F2A85BCE9B8544148E17A14FBF45041CDCCCCBCE9B854419C111A25FBF45041522E8DE3E9B854411FCD0385FBF45041F7BAFB9CEAB85441AD70F576FBF4504122B763A2EAB854412F24FB7EFBF4504157A217B5EAB854418B76CF62FDF45041CE7E5163EAB85441464BB551FEF45041E80E4584EAB8544197DFCCBCFEF45041048375ADEAB854418DAA4D05FFF450416D5AF59EEAB854414E9E990EFFF4504107F86079E9B85441698FAAE3FEF45041644E1686E8B85441C3F528BCFEF450418FC2F5E8E7B85441A03A7FC6FEF450410B6ECBE0E7B8544198C309C5FEF45041DC2087D8E7B854410304D848FFF450418B8C6F6DE7B85441E9F8A47900F550417D3F350BE6B854417B16A18002F55041036F7366E5B854418E0E9B8502F55041E654ED65E5B8544148E17A9402F550410AD7A360E5B854417C3A8BA002F55041386B1763E5B85441E902261D03F55041F5A6F955E5B85441A16F178D03F5504152640CC6E4B85441C3F5283C03F5504148E17AD4E3B8544146BFCB5703F55041E0C1C4CEE3B854411D3FD05603F55041C1E58ECAE3B85441BF67FF2C04F5504198A9E490E3B85441A640096605F5504103492FCBE2B85441141C66B705F55041800E75DBE2B85441DD6615C405F55041AB577EDAE2B854412B11CB0A06F55041052D6CD3E2B85441D555FC5D06F550418CFECCCEE2B8544185EB517806F55041CDCCCCCCE2B854410AD7A3B007F55041CDCCCC6CE2B854419A64470008F550414E08B671E2B85441CCDA7D2A08F55041B4985468E2B8544110A71B8508F55041C07C9170E2B8544199539FF808F55041608C0681E2B85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>801940 - 354629
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000D000000010300000001000000120100007B14AEA7E8F450417B14AE87F5B854416FB507B6EEF4504114621A4DF7B85441C3F528ECEFF4504148E17AC4F6B85441C3F5289CF1F45041CDCCCCACF6B85441C3F528FCF1F45041CDCCCCFCF7B85441C3F5285CF2F450418FC2F508F8B854410AD7A3C0F4F450418FC2F528F6B8544148E17A34F6F4504148E17A74F5B8544185EB5178F7F45041CDCCCC0CF7B854410AD7A3C0F7F4504148E17A64F6B854410AD7A310F9F4504148E17A34F6B8544148E17A64F9F45041CDCCCCACF3B854410AD7A3F0FAF4504148E17AA4EFB8544185EB5168FBF45041CDCCCC5CEFB8544185EB5168FBF450410AD7A3C0EEB8544148E17AE4FAF45041CDCCCC6CEEB85441C3F528DCF9F45041CDCCCCFCEEB8544148E17A04F9F450410AD7A350EFB854410AD7A320F8F450418FC2F5A8EEB8544185EB5138F8F4504148E17AF4EDB85441C3F5280CFAF4504148E17A34EDB85441C3F5282CF8F4504148E17AD4ECB8544185EB5108F8F450410AD7A360EBB854410AD7A3B0F8F45041CDCCCC8CE9B8544148E17A14FBF45041CDCCCCBCE9B854410AD7A380FBF450418FC2F5B8EAB854410AD7A330FDF450410AD7A370EAB8544148E17A04FFF450418FC2F5B8EAB854410AD7A310FFF450418FC2F538E9B85441C3F528BCFEF450418FC2F5E8E7B854410AD7A3A0FFF4504148E17A34E7B8544185EB517800F550410AD7A320E6B8544148E17A9402F550410AD7A360E5B85441C3F5280C03F550418FC2F578E5B854410AD7A39003F550410AD7A3D0E4B85441C3F5283C03F5504148E17AD4E3B85441C3F5285C04F550418FC2F598E3B854410AD7A34005F5504148E17AE4E2B8544185EB517806F55041CDCCCCCCE2B854410AD7A3B007F55041CDCCCC6CE2B854410AD7A33009F5504148E17A84E2B854410AD7A3E00AF5504148E17AC4E1B85441C3F5288C0AF550410AD7A3F0DFB854410AD7A3E00AF550410AD7A360DFB8544185EB51880BF550410AD7A390DFB854410AD7A3100BF550410AD7A390DCB854410AD7A3D00BF550418FC2F558DBB85441C3F528DC0BF55041CDCCCCCCD9B85441C3F528DC08F550410AD7A3A0D8B8544185EB51F807F55041CDCCCC2CD7B85441C3F528DC08F550418FC2F5C8D4B8544148E17A8409F55041CDCCCC8CD4B8544185EB51080AF5504148E17A64D2B85441C3F5288C0AF550410AD7A310D2B85441C3F5280C0CF55041CDCCCC1CD2B8544148E17AB40CF550418FC2F588D2B854410AD7A3400EF550418FC2F5C8D4B854410AD7A3400EF550410AD7A390D6B85441C3F528CC0CF550410AD7A3C0D6B8544185EB51380DF55041CDCCCC2CD7B8544148E17A840CF5504148E17A94D8B8544185EB51A80CF550418FC2F568DAB85441C3F528BC0DF5504148E17A34DBB854410AD7A3900FF550410AD7A350DDB854410AD7A31011F550418FC2F5C8DDB854410AD7A36012F55041CDCCCCECDDB8544185EB510813F550418FC2F5C8DDB85441C3F5284C14F550410AD7A3D0DEB85441C3F5286C16F55041C3F528ACDFB85441A4703DAA18F550417B14AE77DBB85441C3F528AC17F5504148E17AA4DAB854410AD7A32016F5504148E17A14DAB85441C3F528AC14F550418FC2F598DAB8544185EB510813F5504148E17AB4DCB8544185EB517812F55041CDCCCCCCDCB854410AD7A31011F550410AD7A3A0DBB8544148E17AA410F5504148E17AB4DCB8544185EB513810F550418FC2F528DBB8544148E17AA410F55041CDCCCCECDAB8544185EB51C810F550410AD7A390D9B8544185EB51B811F550410AD7A3C0D6B85441C3F528FC12F550410AD7A330D6B8544185EB512814F550418FC2F588D5B854410AD7A36015F5504148E17A84D3B854410AD7A3F015F550410AD7A360D3B8544185EB513816F5504148E17A84D3B85441C3F528BC16F550418FC2F548D3B8544185EB51A818F550410AD7A350D1B8544148E17A7419F55041CDCCCCFCD0B85441C3F5285C19F5504148E17A74CEB8544185EB51C819F55041CDCCCC6CCDB854410AD7A35019F550410AD7A3D0CCB85441C3F5288C19F550418FC2F598CBB8544185EB51B81AF55041CDCCCCFCCAB8544148E17A441CF55041CDCCCCACC9B8544185EB51F81CF5504148E17AF4C9B8544148E17A641DF55041CDCCCC3CCAB8544148E17A641DF550418FC2F528CCB8544148E17A241EF5504148E17A64CCB854410AD7A3501FF550410AD7A3A0CCB854410AD7A3301EF550410AD7A3B0CEB854410AD7A3E01CF5504148E17A64D2B85441C3F5281C1DF5504148E17A24D3B85441AE47E1BA21F550415C8FC2C5CBB85441A4703D8A26F55041C3F528FCC4B8544185EB51D824F550418FC2F528C6B854410AD7A30024F550418FC2F538C5B854410AD7A3F024F550418FC2F518C4B8544148E17A4425F550410AD7A320C2B8544185EB51F825F55041CDCCCC0CC1B8544148E17AC426F550410AD7A3A0BDB85441C3F5281C26F550410AD7A310BDB8544148E17A1425F5504148E17A64BDB85441C3F528FC24F550410AD7A3B0BCB85441C3F528AC26F55041CDCCCCFCBBB8544185EB51C825F550418FC2F528BAB85441C3F5284C26F550410AD7A3A0B7B8544148E17A2427F5504148E17A04B7B8544148E17AA428F55041CDCCCCECB6B854410AD7A3A029F5504148E17AD4B6B8544185EB51482AF5504148E17A54B8B85441CDCCCC5C2BF550418FC2F568BCB85441295C8F322BF550418FC2F568BEB8544185EB51B830F55041E17A149EB6B85441AE47E16A32F55041D7A3704DB5B8544148E17AA431F5504148E17AF4B4B8544185EB51B82FF5504148E17AF4B4B8544185EB51182DF550418FC2F538B6B8544148E17A642CF5504148E17AB4B5B85441CDCCCC1C2CF55041CDCCCC1CB4B8544148E17A942CF5504148E17A84B2B8544185EB51282CF550410AD7A350B0B854410AD7A3502BF5504148E17A94AEB8544185EB51982BF5504148E17A44ADB854410AD7A3A02CF550410AD7A350ADB85441CDCCCC5C2EF550410AD7A310AEB85441CDCCCCBC2EF55041CDCCCC8CADB85441CDCCCCEC2EF550410AD7A390ACB854410AD7A3502EF550418FC2F518ACB854410AD7A3002DF5504148E17A54ACB854410AD7A3B02BF550418FC2F5E8ABB8544148E17A542AF550410AD7A300ACB8544185EB518829F550418FC2F528ABB8544185EB510828F550410AD7A3E0AAB854410AD7A38028F5504148E17A14AAB854410AD7A31029F5504148E17AE4A9B854410AD7A3602AF55041CDCCCC9CA6B8544148E17A542DF55041CDCCCC5CA7B8544185EB51782DF55041CDCCCCDCA5B85441CDCCCC7C2FF5504148E17AF4A5B854410AD7A39030F5504148E17A34A2B85441CDCCCCEC31F5504148E17A44A1B85441CDCCCCFC36F5504148E17A34A2B85441CDCCCCAC38F55041CDCCCC1CA2B85441CDCCCC6C39F55041CDCCCC5CA1B8544148E17A443AF55041CDCCCCFCA0B8544148E17A643BF550418FC2F538A1B854410AD7A3403BF550410AD7A3709FB85441CDCCCC3C3CF550410AD7A3109FB85441CDCCCC5C3DF550418FC2F5089EB8544185EB51583EF550418FC2F5089EB854410AD7A3603FF550418FC2F5C89EB85441CDCCCC2C40F550418FC2F5F89EB8544185EB519840F5504148E17A949FB85441CDCCCC3C42F55041CDCCCC6CA0B85441CDCCCC6C42F5504148E17AF49FB8544185EB515841F5504148E17A449EB85441CDCCCCCC42F550410AD7A3D09CB8544185EB51D842F550418FC2F5389BB854410AD7A39042F5504148E17A849AB854410AD7A3F042F5504148E17A849AB854410AD7A32043F5504148E17AB49AB854410AD7A3C045F550410AD7A3F09AB854410AD7A35046F55041CDCCCCBC9BB8544185EB519846F5504148E17A149BB854410AD7A3D047F550410AD7A3009AB854410AD7A3B049F550410AD7A3609AB85441CDCCCCAC4AF550410AD7A3209BB85441CDCCCC9C4BF55041CDCCCC6C9AB854410AD7A3D04DF55041CDCCCCFC97B85441CDCCCCCC4EF55041CDCCCCFC97B854410AD7A3504FF550418FC2F53898B8544185EB519852F55041CDCCCC1C99B8544148E17A8454F550418FC2F5789AB85441CDCCCCCC54F550418FC2F5E899B8544185EB51C855F550418FC2F5489AB8544148E17A3456F5504148E17A6499B854410AD7A3D059F550418FC2F53898B85441CDCCCCFC5AF550410AD7A38098B85441A4703D8A5BF55041C3F528FC9AB85441AE47E1AA5CF55041666666069BB854410AD7A3005DF5504148E17A849AB8544148E17A745EF55041CDCCCC3C9AB85441333333E35EF55041F6285CFF9AB85441295C8F3263F550415C8FC2E59AB8544148E17A1464F55041CDCCCC0C9AB85441295C8FE264F55041C3F528DC9AB85441A4703D8A68F55041666666C69AB8544185EB512868F550410AD7A36097B85441CDCCCCFC66F550418FC2F58896B85441CDCCCCCC66F550418FC2F53895B854410AD7A3506AF5504148E17A6493B8544185EB51A869F550418FC2F5C892B85441CDCCCC1C62F5504148E17A4492B85441CDCCCCFC60F55041CDCCCCEC92B8544148E17A945FF550418FC2F55893B854410AD7A3205EF55041CDCCCC3C94B85441CDCCCC7C5CF55041CDCCCCDC93B85441CDCCCC6C5AF5504148E17AF493B8544185EB518859F5504148E17A0493B8544185EB516858F5504148E17AC490B85441CDCCCC1C56F5504148E17A2491B85441CDCCCC5C55F55041CDCCCC4C90B85441CDCCCC0C54F550418FC2F58890B85441CDCCCCDC53F550418FC2F50892B8544185EB512853F55041CDCCCC5C92B8544148E17A1452F5504148E17A9490B8544148E17AF450F5504148E17A748FB85441CDCCCC8C4FF550410AD7A3508FB85441CDCCCCFC4EF55041CDCCCC4C90B85441CDCCCCFC4EF550410AD7A39091B8544185EB51584DF550418FC2F54891B8544185EB51C849F55041CDCCCCAC90B8544185EB517845F55041CDCCCC1C90B8544148E17A9441F5504148E17AC490B854410AD7A3103EF550418FC2F5A891B8544185EB51183CF550418FC2F59892B8544148E17A043BF55041CDCCCC7C93B85441CDCCCC4C3BF550410AD7A3F094B85441CDCCCCDC38F550410AD7A3B095B85441CDCCCCFC36F550418FC2F53895B8544185EB518835F5504148E17A3496B854410AD7A37035F550410AD7A33097B8544185EB51F834F55041CDCCCC3C97B85441CDCCCC2C34F55041CDCCCC5C98B854410AD7A33033F550418FC2F55899B8544148E17A5430F550418FC2F5A89AB85441CDCCCC4C2FF5504148E17AA49BB8544148E17A942CF55041CDCCCC9C9AB854410AD7A3A029F5504148E17A149BB85441EC51B82E29F550413D0AD7139BB85441E17A14EE26F5504152B81E659CB854413333330321F550417B14AEE79FB854410000002018F5504152B81EF5A7B85441B81E85EB15F5504133333363AAB85441CDCCCCFC13F5504148E17A64ADB854410AD7A38013F550410AD7A340AEB854410AD7A38013F55041CDCCCCCCAFB85441C3F5287C11F5504148E17A74B3B85441C3F5286C0FF550418FC2F558B4B8544148E17AE40CF550418FC2F5A8B8B8544185EB51E80BF55041CDCCCCECB9B854410AD7A3400BF55041CDCCCC2CBFB854410AD7A3A008F550418FC2F5A8C1B8544185EB51F804F5504148E17AB4CAB85441C3F528DC05F550418FC2F568CBB8544185EB517806F550418FC2F5D8CDB85441C3F5284C05F5504148E17A84D0B854410AD7A31005F550418FC2F5F8D1B85441C3F528CC03F55041CDCCCC1CD2B85441C3F5283C03F550410AD7A350D4B854410AD7A35001F5504148E17A24D3B854417B14AE67FEF45041A4703D6AD8B85441CDCCCCECF8F450415C8FC285DFB8544185EB51E8F9F45041CDCCCC0CE2B85441C3F5287CF9F450418FC2F5D8E2B854410AD7A350F8F450418FC2F578E2B8544148E17A34F6F450410AD7A310E4B85441C3F528FCF4F450418FC2F5B8E4B85441C3F5287CF3F450418FC2F5B8E4B8544185EB51F8EBF4504185EB51C8EBB854413D0AD7E3E9F45041CDCCCCDCEEB854418FC2F5B8E8F45041EC51B82EF2B854417B14AEA7E8F450417B14AE87F5B854410103000000010000001600000085EB51F891F5504148E17A74A7B85441CDCCCC0C93F550410AD7A300A9B8544185EB518895F550410AD7A330A9B8544148E17A1497F5504148E17AE4A9B8544185EB51A899F550410AD7A300ACB854410AD7A3E09AF5504148E17A24ACB8544185EB51E89BF550418FC2F5B8ABB85441EC51B83E9EF55041AE47E10AACB85441CDCCCC5C9DF5504148E17AD4AAB85441CDCCCCCC99F550418FC2F558A8B854410AD7A38097F550418FC2F568A4B85441A4703D0A96F55041F6285C4FA3B8544148E17A8493F550418FC2F518A3B85441CDCCCC8C8BF550418FC2F598A1B8544148E17AD48BF5504148E17A64A2B85441CDCCCC4C8CF550410AD7A330A3B8544185EB51588CF550410AD7A380A4B85441CDCCCCCC8DF550410AD7A3B0A7B85441CDCCCCEC8EF550410AD7A320A7B85441CDCCCCAC8FF5504148E17A44A7B85441CDCCCCFC90F550418FC2F5D8A6B8544185EB51F891F5504148E17A74A7B854410103000000010000001800000000000060FBF4504152B81E7564B854410AD7A370FFF450410AD7A3A063B8544148E17A64FFF45041CDCCCC2C62B854410AD7A3F0FDF4504148E17A1462B8544148E17A24FDF45041CDCCCC3C61B85441D7A370DDF9F450419A9999A962B8544185EB5188F6F4504148E17A6463B854410AD7A330F4F4504185EB51C862B854410AD7A3D0F0F45041CDCCCCEC62B8544148E17A44EFF450410AD7A30064B8544148E17AF4EDF45041CDCCCC0C64B854410AD7A310EDF4504185EB517864B85441CDCCCC1CEAF450410AD7A39064B8544185EB5198E9F4504148E17A5464B8544148E17A04E7F45041CDCCCCCC64B854410AD7A330E5F4504148E17A0466B8544148E17AA4E3F45041CDCCCC1C66B854410AD7A3C0E2F45041CDCCCCDC66B8544148E17AE4DFF450410AD7A33067B854418FC2F5E8DFF45041666666C667B85441B81E855BEAF4504185EB51B866B8544152B81E45F7F450419A99990967B85441A4703D4AF9F4504152B81E1567B8544100000060FBF4504152B81E7564B8544101030000000100000016000000CDCCCC5CA3F550410AD7A3F0BEB85441CDCCCCACA4F550418FC2F598BFB854410AD7A350A6F5504148E17A54C1B8544185EB5158A7F550410AD7A3C0C4B85441CDCCCC2CA6F55041CDCCCCCCBBB854410AD7A380A3F550410AD7A3E0B9B8544148E17A24A2F55041CDCCCCECB6B8544148E17AF4A1F5504148E17AB4B5B8544148E17A94A1F550418FC2F5C8B3B85441CDCCCC2CA0F5504148E17A24B2B85441CDCCCC9C9FF5504148E17A04B1B85441C3F5285C9FF550418FC2F578AFB85441CDCCCC3C9FF550410AD7A300AFB8544185EB51B89EF55041CDCCCC0CAFB8544148E17A549FF550410AD7A370B1B8544148E17A14A0F55041CDCCCC8CB6B85441CDCCCCCC9FF5504148E17A34BAB854410AD7A3C09FF5504148E17A94BDB8544148E17A14A0F5504148E17AB4BEB854410AD7A310A1F55041CDCCCCFCBEB854410AD7A390A2F550410AD7A3F0BEB85441CDCCCC5CA3F550410AD7A3F0BEB854410103000000010000002B0000000AD7A320EFF4504148E17AA47AB8544185EB5198EFF45041CDCCCCDC7BB85441CDCCCC5CEFF450410AD7A3C07CB85441CDCCCC5CEFF4504148E17AA47DB8544185EB51A8EEF45041CDCCCC1C81B8544148E17AE4EEF4504148E17A2482B8544148E17A34F0F450410AD7A36082B85441295C8F92F1F4504148E17AE484B854413D0AD703F4F45041CDCCCC6C81B854410AD7A3E0F4F45041AE47E10A7EB854413D0AD793F3F45041AE47E1AA77B85441713D0A17F0F450410000004070B85441C3F5284CEFF4504185EB51D86DB8544185EB51A8EEF45041CDCCCC4C6CB854410AD7A350ECF450410AD7A3606DB854410AD7A3E0E9F4504185EB51486DB8544185EB5128E4F4504148E17A746EB8544148E17AA4E3F450410AD7A3406FB8544185EB5178E2F450410AD7A33070B854410AD7A350DDF4504148E17A8470B8544148E17AB4DCF4504148E17AE470B8544185EB51E8DBF4504185EB515872B854410AD7A300DCF450410AD7A33073B85441CDCCCCECDDF4504148E17AF475B8544148E17A24DCF450410AD7A34078B85441CDCCCC2CDAF450410AD7A3C079B8544148E17A14DAF4504148E17AD47AB8544185EB51F8DAF4504148E17A547CB854410AD7A320E0F45041CDCCCC9C7CB8544148E17A24DFF4504148E17A747AB8544185EB5158E1F450410AD7A3D078B854410AD7A3C0E2F4504185EB514879B854410AD7A3E0E3F450410AD7A3807AB8544185EB51C8E3F45041CDCCCC7C7BB8544148E17A84E2F4504148E17AE47CB8544148E17A24E5F45041CDCCCCFC7CB85441CDCCCC1CE7F45041CDCCCC8C7DB8544148E17A24E8F45041CDCCCC2C7DB85441CDCCCCCCE8F450410AD7A3607CB8544185EB5198E9F4504185EB51487CB854410AD7A350ECF4504148E17A147AB8544148E17A64EDF450410AD7A3207AB854410AD7A320EFF4504148E17AA47AB854410103000000010000003000000085EB51A8E5F450410AD7A390ACB8544148E17AA4E6F45041CDCCCC6CACB8544185EB51E8E7F450410AD7A320ADB85441CDCCCC2CE9F45041CDCCCC7CABB854410AD7A3D0EAF450410AD7A380AAB8544185EB5148EBF45041CDCCCC6CA9B8544148E17A54EEF450410AD7A3D0A5B8544148E17A14EFF45041CDCCCC2CA4B8544185EB5178EEF4504148E17AA4A1B8544185EB5168EFF45041CDCCCC6CA0B8544185EB5138EFF45041CDCCCC9C9DB8544148E17AA4EFF4504148E17A049CB85441CDCCCCFCEEF45041CDCCCCAC9CB8544148E17A64EDF4504148E17AC49CB85441CDCCCC4CEDF45041CDCCCC2C9BB8544148E17A94EDF4504148E17AF499B8544185EB51D8EEF4504185EB51C898B85441CDCCCCFCEEF4504185EB51D897B8544185EB51C8EFF450410AD7A3D096B854410AD7A300F1F45041CDCCCC7C93B85441CDCCCCACF3F450410AD7A34090B854410AD7A330F4F450410AD7A3208FB85441CDCCCCACF3F45041CDCCCCDC8DB8544185EB5148F4F4504148E17AE48BB8544148E17A44F5F4504185EB51F88CB85441CDCCCC1CF6F4504185EB51488BB85441CDCCCC4CF6F4504148E17AD489B8544148E17A04F6F4504148E17A0487B8544148E17A54F7F4504185EB51C883B85441CDCCCC8CF8F4504148E17AC481B8544185EB5108F8F4504185EB513880B854410AD7A350F8F450410AD7A3007FB8544148E17AE4F7F45041CDCCCC7C7EB8544148E17A44F6F4504185EB51D87FB8544185EB5188F0F4504185EB51D888B854410AD7A390F1F45041CDCCCCEC89B8544148E17A54F1F4504148E17A848BB8544185EB5128F0F4504185EB51D88BB8544148E17AE4EEF4504185EB51988CB85441CDCCCCECECF4504185EB513892B85441CDCCCCFCEBF45041CDCCCC5C98B8544148E17A54EBF4504185EB51189AB854410AD7A360EBF4504185EB51289CB85441CDCCCCBCE9F4504148E17A649FB854410AD7A350E9F4504148E17A04A2B8544148E17A24E8F450410AD7A3F0A3B854410AD7A320E6F4504148E17AE4A9B8544185EB51A8E5F450410AD7A390ACB8544101030000000100000010000000CDCCCCFCDFF4504148E17A44BCB8544185EB5168E0F45041CDCCCC5CBCB85441CDCCCCBCE0F450410AD7A390BBB8544148E17A74E3F4504185EB5158B7B854410AD7A3E0E3F4504148E17A74B6B854410AD7A3E0E3F45041CDCCCC3CB5B85441CDCCCCDCE4F4504148E17A04B4B8544148E17A14E6F4504148E17A64B1B85441CDCCCC6CE5F450410AD7A310B1B8544185EB5178E5F4504185EB5198ADB8544185EB5158E4F450410AD7A360AFB854410AD7A3E0E3F450410AD7A370B1B854410AD7A3C0E2F45041CDCCCCFCB2B8544148E17A54E2F450410AD7A330B5B8544148E17A34E1F4504185EB5158B7B85441CDCCCCFCDFF4504148E17A44BCB854410103000000010000003D000000E17A141E55F650415C8FC2053AB9544114AE47B156F65041D7A370BD37B95441D7A3708D5AF650415C8FC2C538B954419A9999E95BF650415C8FC2C538B95441F6285CAF5EF65041AE47E1CA37B954418FC2F58860F65041D7A370BD37B9544185EB517863F65041AE47E18A36B954410AD7A3C065F65041713D0AA736B95441C3F528CC68F650417B14AE7737B95441295C8F626CF6504148E17A6438B95441AE47E1DA72F650410000004037B95441C3F5283C73F650410AD7A39035B954411F85EB7174F6504114AE478134B9544152B81E355FF650418FC2F51831B954410AD7A3804BF650410AD7A3002EB95441C3F5280C39F65041E17A143E29B954410000005035F650410AD7A37029B95441F6285C8F31F65041E17A14AE28B954418FC2F57830F650418FC2F5F827B954418FC2F5782BF65041B81E853B26B95441D7A370AD29F650413D0AD70326B95441A4703DAA27F6504148E17A9425B954410000003029F650418FC2F5F827B95441E17A143E29F65041E17A14AE28B95441713D0A172BF65041295C8F6229B954410AD7A3B02BF65041E17A14EE29B95441B81E853B2CF65041CDCCCC3C30B9544185EB51E82BF65041EC51B86E31B954413D0AD7032CF650417B14AE4733B95441EC51B8FE2CF650411F85EBB134B95441D7A3706D2DF650417B14AE7737B954419A9999492CF65041B81E854B3AB9544148E17A142EF65041AE47E1FA3BB954419A9999892DF650415C8FC2853CB9544152B81E652CF65041AE47E13A3DB95441713D0AD729F65041C3F5285C3CB95441EC51B8CE28F650418FC2F5C83FB9544148E17A2426F650415C8FC2753FB954415C8FC20524F65041F6285C9F3FB954411F85EBE122F65041AE47E17A3EB954417B14AE7721F6504114AE47513EB95441295C8F421EF65041EC51B8CE3EB95441C3F5282C1DF650418FC2F5C83FB95441A4703D3A1DF6504185EB517841B95441D7A3708D1DF65041713D0A9743B95441000000101EF65041AE47E1AA44B9544185EB511821F6504148E17A1444B954417B14AE873BF65041F6285CFF3EB954410AD7A30040F65041A4703DEA3DB95441AE47E10A44F650419A9999E93CB954410AD7A32047F650411F85EB113CB95441A4703D6A47F65041C3F5281C3BB954413D0AD7C346F65041F6285CEF38B95441C3F5280C49F6504114AE47E138B95441713D0A474BF65041713D0AE737B954418FC2F5784CF65041D7A370BD37B954413D0AD7B34EF650413333334339B954417B14AE1751F65041F6285C2F3AB95441C3F5283C52F6504148E17AA439B954410AD7A36053F65041F6285C2F3AB95441E17A141E55F650415C8FC2053AB9544101030000000100000061000000C3F5280CB1F5504148E17A1419B954410AD7A3B0B2F5504185EB51781BB95441C3F528DCB3F5504185EB51981CB9544185EB5108B5F55041CDCCCC1C1DB9544148E17AA4B5F55041CDCCCC8C1FB9544185EB5158B9F55041CDCCCC5C1FB9544148E17AE4BAF5504185EB515820B9544148E17AA4BBF5504148E17A2421B9544148E17AF4BCF550410AD7A32022B95441C3F528CCBDF5504185EB51E823B9544185EB51A8BDF55041CDCCCC9C24B954410AD7A350BEF55041CDCCCC8C25B95441C3F5284CBFF55041CDCCCC7C26B95441C3F528ACC2F5504185EB51D827B9544148E17AE4C3F55041CDCCCCBC28B954410AD7A350C4F55041CDCCCC7C29B9544148E17A54C9F5504148E17AF42CB954410AD7A370CBF55041CDCCCCFC2DB9544148E17A84CCF55041CDCCCC2C2EB95441C3F5285CCDF5504148E17A642FB9544148E17AA4CDF550410AD7A3F030B9544148E17AC4CEF5504185EB51A833B9544185EB51A8CFF5504148E17AA434B95441C3F528ECD0F55041CDCCCC1C35B954410AD7A300D2F550410AD7A3C036B95441C3F5283CD2F55041CDCCCC4C38B954410AD7A320D3F5504185EB51D839B954410AD7A3B0D3F550410AD7A3D03BB9544185EB51A8D5F5504185EB51283EB9544148E17A44D9F55041CDCCCCEC40B9544148E17A94DAF5504148E17AC441B954410AD7A360DBF5504185EB51D842B95441C3F5282CDCF5504185EB51C843B9544148E17A84DEF55041CDCCCC0C45B9544185EB51D8E1F5504185EB51A845B9544148E17A34E3F550410AD7A36045B954410AD7A3E0E5F55041CDCCCCFC45B9544185EB5138E8F5504185EB51E844B95441C3F528CCEAF550410AD7A30045B9544185EB5158ECF5504148E17AB445B9544148E17A84EDF5504185EB51F846B954410AD7A3B0EEF55041CDCCCCAC47B954410AD7A300F0F5504185EB51A848B954410AD7A380F1F550410AD7A3F04BB95441C3F5282CF1F55041CDCCCCEC4CB9544148E17A44F1F550410AD7A3A04DB95441C3F528ECF1F550410AD7A3904EB95441C3F5286CF3F550410AD7A3804FB954410AD7A3B0F4F5504185EB51984FB9544148E17AF4F5F55041CDCCCC1C50B95441C3F5283CF6F55041CDCCCCAC50B9544148E17A74F7F55041CDCCCC3C51B9544148E17AF4F8F550410AD7A36051B9544185EB5188FBF5504148E17AA452B954410AD7A340FEF550410AD7A30054B9544148E17A64FEF550410AD7A3B055B9544185EB5198FDF5504185EB51B856B95441C3F528ACFBF550410AD7A36057B9544185EB5188FEF550410AD7A3F057B95441C3F528ACFEF5504185EB517857B9544185EB517802F6504185EB51D854B954410AD7A33005F6504148E17AF453B9544185EB512807F6504148E17A9453B954410AD7A36008F6504185EB51E853B9544148E17A040AF6504148E17A9453B95441C3F5288C0CF650410AD7A3F051B9544148E17AF410F650410AD7A37050B9544185EB51C812F6504185EB51F84FB95441C3F5288C15F65041CDCCCC9C4EB95441C3F528AC16F65041CDCCCC5C4CB954410AD7A36017F6504148E17A544BB954410AD7A3B018F650410AD7A3D04AB9544148E17A141BF650410AD7A3004BB954410AD7A3101CF6504185EB51E847B954410AD7A35015F65041CDCCCC9C45B9544148E17A840BF6504148E17A3447B954410AD7A31001F65041CDCCCC7C47B95441C3F5280CF9F550410AD7A38046B9544148E17AA4EEF5504185EB512844B95441C3F5280CE7F5504185EB515841B9544185EB5198DFF5504148E17AA43DB954410AD7A370D7F5504185EB510837B9544148E17AF4CEF5504148E17A842DB95441C3F5281CC8F5504185EB51E826B9544185EB5168C1F5504185EB519822B9544148E17A94BCF55041CDCCCC6C1EB9544185EB5158B9F550410AD7A3A01AB95441C3F528DCB6F550410AD7A34017B95441666666F6B3F55041295C8F7212B95441F6285C7FB1F55041AE47E14A0DB9544148E17AF4B0F550410AD7A3D00BB9544148E17AD4AFF55041CDCCCC1C0EB954410AD7A350AFF55041CDCCCC7C11B954410AD7A3E0AFF55041CDCCCC5C13B954410AD7A3B0AFF5504185EB518814B9544148E17AF4B0F5504185EB51E817B95441C3F5280CB1F5504148E17A1419B9544101030000000100000009000000EC51B8CE86F650418FC2F5D837B954410AD7A33087F65041C3F5289C38B95441F6285C3F90F65041666666E638B954417B14AE9795F650416666660639B9544185EB514895F65041295C8F5236B95441A4703D0A95F650410AD7A33033B954417B14AE4785F65041D7A370FD33B954410AD7A33087F650410AD7A3D036B95441EC51B8CE86F650418FC2F5D837B9544101030000000100000021000000EC51B83E99F45041295C8FD202B95441E17A147E9AF45041CDCCCCDC03B954413D0AD7739AF450411F85EB3105B95441E17A143E9BF45041CDCCCC7C05B9544185EB5188A1F45041D7A370BD02B9544114AE47F1A8F45041E17A14BEFEB8544114AE4751AAF450418FC2F508FDB85441B81E859BADF450418FC2F5E8FBB85441AE47E13AB2F45041EC51B83EF9B854415C8FC2C5B2F45041EC51B8BEF8B8544152B81EC5B5F45041A4703DEAF3B8544152B81EA5B5F45041A4703D8AF2B854419A999999B9F4504100000080EFB85441EC51B82EBBF4504100000000EFB854413D0AD763BCF45041000000A0EFB854418FC2F5B8BDF45041000000A0EFB854413D0AD783BEF4504100000000EFB854413D0AD703BFF45041AE47E1EAEDB8544100000020B7F450417B14AE27EEB85441EC51B88EB0F450413D0AD753EEB85441C3F5281CAAF45041AE47E1EAEFB85441713D0A07A9F45041A4703D8AF0B85441713D0A47A7F45041F6285CFFF2B85441713D0A87A7F4504148E17A14F4B85441CDCCCCDCA6F450419A999989F5B854417B14AE47A5F4504148E17AB4F6B85441295C8F72A3F4504148E17A14F6B854417B14AE07A3F45041F6285C5FF5B85441E17A14FE9CF45041EC51B8BEF9B854419A9999E997F450418FC2F5E8FCB85441EC51B8BE98F4504185EB512800B95441EC51B83E99F4504185EB512801B95441EC51B83E99F45041295C8FD202B954410103000000010000003100000014AE4741E6F45041E17A144ED0B85441EC51B83EE5F45041E17A14EECFB8544152B81E45E6F4504185EB5148C9B8544185EB51D8E5F4504148E17A24C7B8544148E17AC4E4F4504185EB5188C6B8544185EB51C8E3F4504185EB5108C5B8544148E17A04E4F45041CDCCCC7CC3B8544185EB51C8E3F4504185EB51A8C1B85441CDCCCC6CE2F450410AD7A310C0B8544148E17A94E1F4504148E17A44BFB8544185EB51F8E0F450410AD7A390BEB8544185EB5198E0F450410AD7A310BDB85441CDCCCC2CE0F4504148E17A04BDB8544148E17AF4DEF45041CDCCCC2CBFB854410AD7A3E0DDF4504185EB5188C6B85441CDCCCC6CDCF45041CDCCCC2CC8B854410AD7A3D0DBF450410AD7A330CAB8544148E17A44DAF4504185EB51C8CBB8544185EB51A8D9F45041CDCCCC9CCDB8544185EB5188D5F450410AD7A320D1B8544185EB51B8D2F450410AD7A300D3B8544185EB5198CEF4504148E17A34D5B854410AD7A3F0C7F45041CDCCCC5CDAB8544185EB51C8BFF450410AD7A390DFB8544185EB5158BDF45041CDCCCC9CE2B854410AD7A300BEF450410AD7A360E2B8544148E17A74BFF450410AD7A340E1B8544185EB51C8C2F450410AD7A3C0DFB8544185EB51F8C5F4504185EB51B8DEB854410AD7A3D0C9F4504148E17A74DDB85441CDCCCC0CCDF450410AD7A330DCB85441CDCCCC0CD0F4504148E17A34E1B8544148E17A24D0F4504185EB5118E2B854410AD7A3D0D2F450410AD7A370E4B8544185EB5178D3F450410AD7A380E3B8544148E17A64D5F4504185EB5108E3B8544185EB5158D8F45041CDCCCC7CE1B8544148E17A84D9F4504185EB51E8E1B8544148E17AC4D8F45041CDCCCC8CE0B8544185EB5118D9F4504148E17AC4DEB854410AD7A380DAF4504148E17A44DDB854410AD7A3A0DBF450410AD7A3F0DCB8544185EB5158DEF45041CDCCCCECDAB8544148E17AA4DDF450410AD7A360D9B8544185EB5198DDF4504148E17AA4D7B854410AD7A3D0E1F450410AD7A340D5B854410AD7A320E3F450410AD7A370D5B85441D7A370DDE3F450411F85EB91D4B8544114AE4741E6F45041E17A144ED0B854410103000000010000002F0000000AD7A3109EF550410AD7A350FEB85441C3F528BC9DF5504185EB51E8FCB854410AD7A3409EF55041CDCCCCBCFBB8544185EB51189FF55041CDCCCCCCFAB854410AD7A350A0F5504148E17AB4FAB8544148E17AA4A0F5504185EB5178FAB8544185EB5158A1F55041CDCCCC6CFAB8544185EB5198A3F5504148E17A34FCB8544185EB51E8A4F550410AD7A3A0FCB85441C3F5282CA6F5504185EB5148FDB85441C3F5286CA8F55041CDCCCCFCFDB85441C3F528ECA9F5504148E17A14FEB8544185EB5178ABF55041CDCCCC1CFFB85441C3F528FCABF5504185EB517800B95441C3F528ACADF550410AD7A39003B9544148E17AE4AEF55041CDCCCC4C05B9544185EB5148ACF55041713D0AA7F6B85441C3F528DCAAF5504133333303F0B8544152B81EA5AAF5504133333303EFB85441F6285CCFA8F5504152B81EA5E1B854417B14AEE7A8F55041CDCCCCBCDAB8544185EB5118A8F5504185EB51E8DBB854410AD7A3A0A7F55041CDCCCCBCDDB854410AD7A3A0A7F5504185EB5148DFB854410AD7A390A8F5504148E17AC4E4B85441C3F5280CA8F5504148E17A44E6B8544185EB5118A8F5504185EB5168E9B8544148E17AE4A8F55041CDCCCCDCEAB854410AD7A3C0A8F5504185EB5198ECB854410AD7A350A9F5504148E17AF4EDB854410AD7A350A9F550410AD7A3E0EFB85441C3F5287CA7F55041CDCCCC9CF7B85441C3F528FCA5F5504148E17AA4F8B8544185EB51E8A1F5504185EB5128F9B85441C3F528DC9EF5504185EB51A8F7B8544185EB51F89DF55041CDCCCCCCF7B8544148E17AD49AF5504148E17A24F7B85441C3F528FC96F5504148E17A54F7B8544185EB51B895F5504148E17A24F7B854413D0AD76394F55041295C8F62F7B85441EC51B83E9BF5504114AE471105B95441C3F5283C9CF5504148E17AD404B9544185EB51C89DF55041CDCCCC0C06B9544148E17A949EF5504185EB512805B954410AD7A3109EF5504185EB51E802B9544148E17AD49DF5504185EB5158FFB854410AD7A3109EF550410AD7A350FEB85441
+</a>
+
+<b>
+0106000000010000000103000000010000005002000099539FF808F55041608C0681E2B8544111BDFA4A09F550414509C678E2B85441D36F5AA90AF550410B480DDDE1B85441840D2EDB0AF55041971A3EA6E1B85441C3F5288C0AF550410AD7A3F0DFB854410AD7A3E00AF550410AD7A360DFB8544166156EF60AF550415BAAE066DFB85441F53C6CFF0AF5504162FABB59DFB8544137C0ED850BF55041547B4B81DFB85441C9E322700BF55041CB4D73F5DEB85441F53C6CFF0AF55041550CFEADDCB854418B815ECD0BF55041129FDC09DBB854417EB9E4BC0BF550417E3E2744DAB8544168334AD90BF55041325A802FDAB85441C3F528DC0BF55041CDCCCCCCD9B85441C9BB25900BF55041547C17AFD9B854416061778B0BF550411136DFAFD9B85441488F7CD708F550413BD105A0D8B8544197BA96E807F550411FD81425D7B85441D636CE4B08F5504106C99B4CD6B85441C3F528DC08F550418FC2F5C8D4B8544127EE6D4F09F55041E1D3C29FD4B85441C17B017409F550411FB2D089D4B854411EF455E709F550419978118BD2B85441FC47F2030AF55041DB67CD76D2B8544185EB51080AF5504148E17A64D2B85441C3F5288C0AF550410AD7A310D2B85441B626D5930AF55041150AE210D2B85441B2540BAD0AF550412D5406FFD1B85441A42D15E60BF5504139384307D2B854418EFBDF070CF55041F90FAA1CD2B85441C3F5280C0CF55041CDCCCC1CD2B8544148E17AB40CF550418FC2F588D2B854417057B9B50CF550412ACAC48AD2B8544161E637DD0CF55041B224C8A3D2B8544161A489970DF550416EA117D3D3B854410AD7A3400EF550418FC2F5C8D4B854410AD7A3400EF550410AD7A390D6B85441E375BDAF0DF55041250B50A3D6B85441847B3EE60CF55041CB5CB9DAD6B8544185EB51380DF55041CDCCCC2CD7B85441FC867B300DF55041DE95793CD7B85441A5B2D5370DF5504139680846D7B85441E0D09F860CF55041AE4182B0D8B854418877978E0CF55041AE68A718D9B85441F87649BA0CF5504140643776DAB854415A06E2450DF550416B8136DDDAB85441030F67B30DF550412C4B9322DBB85441B3E34CA20EF550410394A93ADCB854419710A0C20FF55041DBC0FC5ADDB85441AF8D20FA0FF550411F51B171DDB8544192292FB910F5504119A48EADDDB85441A5E29A7612F5504147E507E7DDB854412B97992313F550412B71D7BDDDB85441F6FB723314F55041CE7D439CDEB8544156337BC214F55041CBD76200DFB854411E91A87915F550410AB24D4ADFB854418AFDAB4216F550418B366693DFB854415403099C18F55041624FB76CDBB854418469099718F5504192B5B767DBB85441F5002F3318F55041145CB714DBB85441A26F438917F550412862C697DAB854411489112817F5504164706374DAB854418EEC972816F55041392C6017DAB8544133C6F61F16F55041306FB814DAB85441FB7590A015F55041DB5E0842DAB85441DB126C6F15F5504190D68253DAB8544162207EBF14F55041C0268896DAB85441CEA3050214F550418B8B61A6DBB85441F874DF4F13F5504168BA8758DCB8544185EB510813F5504148E17AB4DCB8544185EB517812F55041CDCCCCCCDCB85441C66DA52911F55041561782B5DBB8544147E585B110F550415428C1A5DCB85441A5D92EAE10F550416D05BC9BDCB8544148E17AA410F5504148E17AB4DCB8544194367C5210F55041391CA488DBB85441E988F43510F5504139130D33DBB85441867A313A10F550418569CF2FDBB8544185EB513810F550418FC2F528DBB85441CEEC0B6010F550412112DD12DBB85441220213A610F55041F01F50DDDAB854410B4C50BF10F55041F25121E8D9B8544153C9C2B910F55041DC15F86DD9B8544198799D1C11F55041DC747424D8B85441E90DB58711F5504139680846D7B85441D6240BAD11F55041162B78E2D6B8544185EB51B811F550410AD7A3C0D6B85441C3F528FC12F550410AD7A330D6B85441EB88F96013F55041B14152F8D5B8544105A8294C14F55041B32E4947D5B8544152CAEB8514F550413F4A2CEED4B854410AD7A36015F5504148E17A84D3B85441C1C8F88F15F55041731BB378D3B8544147154BF015F550412CF58948D3B8544198A9625B16F550413BA14061D3B854414383E4DA16F5504106D27729D3B8544185EB51A818F550410AD7A350D1B85441CF8854CF18F55041FBC09E40D1B85441DECBEF7319F55041731F51EED0B85441F656096719F55041A2946C96CFB85441DC9B445119F550419605938DCEB8544109E64FBA19F5504196B6855ACDB854410AD7A35019F550410AD7A3D0CCB85441C3F5288C19F550418FC2F598CBB85441B5283E9219F550413B9ECB95CBB8544111BC2B9319F55041472F748FCBB854418E13E5E11AF55041EBE389D9CAB8544148E17A441CF55041CDCCCCACC9B854417EB4C88C1CF55041AB619EC9C9B85441C0D218151DF5504110A68FF3C9B854417713F0511DF55041C8E66630CAB8544148E17A641DF55041CDCCCC3CCAB8544148E17A641DF5504199B4F142CAB85441039FB66F1DF5504154722D4ECAB8544148E17A641DF5504143A9F4E3CAB8544148E17A641DF550413C868803CCB85441F7BA79671DF55041B3537F1BCCB85441E3CFB22B1EF550412341ED65CCB85441CDC8EB981EF55041605FD17BCCB854418BBCB2761FF5504110CCD38ECCB85441B38F5F561EF550418A215685CEB85441ADEA04EC1DF550414B4B3772CFB854410AD7A3E01CF5504148E17A64D2B85441A62055151DF55041F3B5740ED3B85441C1B6551D1DF550411081591FD3B8544155C20FD021F55041472F748FCBB85441E9E98C7A26F550415442680FC5B85441A67C6BD624F550413853F837C6B85441F68BC2EF23F5504170B69838C5B854410A7BD3B124F55041F5305664C4B854410AD7A3F024F550418FC2F518C4B854415FF0912B25F550411CD87AB6C2B85441F710834125F550411234C321C2B854418C71380726F5504104E788BFC0B854411E0A74BC26F55041B164B3A8BDB854418A8DFBFE25F550414640A81CBDB854412F84AAD625F550419C82BC26BDB8544148E17A1425F5504148E17A64BDB85441C3F528FC24F550410AD7A3B0BCB85441DB9C521825F55041007DEAA4BCB85441DB9C521825F55041E7E316A1BCB85441DBAE9FA026F5504198A01CE5BBB854413A60C37326F550412816FF88BBB85441615151C525F5504111FA7C3FBAB85441372DF3C825F550412FE1402ABAB8544185EB51C825F550418FC2F528BAB85441019AADCD25F55041938C9C0EBAB85441B2E5683026F55041384869CDB7B854414538404726F5504158D4C7B8B7B85441C3F5284C26F550410AD7A3A0B7B854412016D6B826F550412EF32F52B7B854417082C82F27F550418957C0E6B6B85441759BC43328F550419625C0F3B6B8544148E17AA428F55041CDCCCCECB6B85441595DCEF628F550419923DCE4B6B854416FA80CCB29F550416EC7CCC5B6B85441C220613E2AF5504161841307B8B854411F99B5B12AF5504155415A48B9B854417C110A252BF55041CDCE622EBBB85441E24BB45A2BF55041FCF70A61BCB85441CDCCCC5C2BF550418FC2F568BCB854416F8C925C2BF550418AD6B76BBCB85441A54DB45E2BF55041C16FE677BCB854418ABDC03D2BF550412D19B255BEB85441624CE7D52BF550411D8F7982BDB8544185EB51B830F55041E17A149EB6B85441AE47E16A32F55041D7A3704DB5B8544148E17AA431F5504148E17AF4B4B8544185EB51B82FF5504148E17AF4B4B8544185EB51182DF550418FC2F538B6B854415548F0162DF550415340F137B6B85441F5824F132DF5504103A3C139B6B8544163EA135E2CF55041A62A6DC6B5B85441850AC04A2CF55041D63B2422B5B85441CDCCCC1C2CF55041CDCCCC1CB4B8544148E17A942CF5504148E17A84B2B854411FC3FE342CF550418E42B792B0B854416B9ED7F52BF55041E255B0E8AFB85441915537762BF5504124C2DCE1AEB8544198853A4E2BF550412C896299AEB85441C61989572BF5504178382874AEB8544185EB51982BF5504148E17A44ADB854410AD7A3A02CF550410AD7A350ADB85441CDCCCC5C2EF550410AD7A310AEB8544153AF8A9E2EF5504152CC5AB6ADB854412DF070B72EF5504161248989ADB8544162CB48E82EF550418BE22D8DACB85441E532C2DD2EF55041B6C31C85ACB85441CEAFA2332EF55041619FC837ACB854417BCB61602DF55041D81D8543ACB854410AD7A3002DF5504148E17A54ACB8544116EAAC4A2CF550410458401AACB85441CDA521902BF550412A9BA4EDABB854417DF5462D2BF550412C7FE1F5ABB85441B8F292C32AF55041447F15F9ABB8544148E17A542AF550410AD7A300ACB85441F6F39F502AF550416B3991FCABB85441B2906D1D2AF5504138631EFEABB85441FA0F9F7929F55041A7163126ABB8544185EB510828F550410AD7A3E0AAB854410AD7A38028F5504148E17A14AAB8544143FAA59728F550413580CF0CAAB854418B977CA228F55041A54522F7A9B85441E80FD11529F5504189D1F1CDA9B85441CE049E462AF5504111BF2896A6B85441DCD698FA2CF55041968FEA3AA7B8544189E5384F2DF55041FEE3765BA7B8544148E17A542DF55041CDCCCC5CA7B854412D6BB0652DF55041A3996AA4A6B854412D6BB0652DF5504197EE66F1A5B8544143DADA762DF5504123617FECA5B8544185EB51782DF55041CDCCCCDCA5B85441DECB00BC2DF550418637E7DFA5B85441109803862EF550418842B0D8A5B85441CD50267D2FF5504197EE66F1A5B85441101DC4D72FF550412C29D81BA4B8544168A34C8230F550411CAF6366A2B854410AD7A39030F5504148E17A34A2B8544199702EED30F55041310BB0F4A1B854417EDC61EB31F55041AB807338A1B85441ECE9572434F55041B021D3A4A1B8544110B8430E37F55041B2CE8533A2B854418A88B56937F550414F9A822EA2B8544165DD59D637F5504131138E28A2B854411BE721B838F55041C0C23211A2B85441A41E74BB38F55041F67A250EA2B85441CDCCCC6C39F55041CDCCCC5CA1B854410AF1258B39F55041A2B94A4FA1B85441840BBFB239F550418C8CE72AA1B854411B77145C3AF5504104BCB7F4A0B854412223F6623BF550414A3BA025A1B85441E3A752443BF55041D8E7879F9FB854413AB3993B3BF55041381A17659FB85441355A33A13BF55041A64F21289FB8544145FB920D3CF55041536D43069FB854414AE4EB4B3DF55041CB541AFE9DB85441A0CC65F23DF550418FC2F5089EB8544185EB51583EF550418FC2F5089EB85441859C5F623EF55041FD4443109EB8544145D37E833EF55041FF426C129EB85441830390703FF55041ABA887C29EB85441F53902AC3FF55041C80EAEDA9EB85441CDCCCC2C40F550418FC2F5F89EB854415F70FD4140F55041DD1C9C179FB8544198454F4940F550417C5B951A9FB85441D3EFD75E40F55041812758419FB8544185EB519840F5504148E17A949FB854410ADF11A340F55041DEA5029A9FB85441BDDA3AC340F55041CBE40CA29FB8544147EB403D42F550416EBAA96BA0B854419836955F42F5504174679C15A0B85441B270676042F55041C58BA607A0B854412A583E5841F55041910D624F9EB854413BBA675B41F5504144F44C499EB8544185EB515841F5504148E17A449EB854416AFEF06341F5504102EBE0389EB85441FFC4506A41F5504141B19D2C9EB854410BACAB1C42F550415DD716699DB85441557DF0CC42F550415FD3B4CB9CB854416DD4DCD042F550417257DE409CB854412ABFEAD442F55041219D63B19BB85441CC0B8DD342F550418294166D9BB85441BCD74BAB42F5504176BE98C79AB854410AD7A39042F5504148E17A849AB854416C78F89A42F5504148E17A849AB854413A41979642F55041247079729AB854413FE2F60243F550410F76B36B9AB854413A89906843F55041B63A6FAF9AB854417E5A01C244F55041141713D89AB854412567B6D745F550413E0B9FE59AB854410284225646F55041C79FE5AF9BB8544185EB519846F5504148E17A149BB85441BC881CCA46F55041BA1C81E89AB8544179918DCB46F550413E0B9FE59AB8544105B9E6DD46F55041C8AB06D79AB854410AD7A3D047F550410AD7A3009AB85441332209E647F55041794CEB049AB85441548C94F547F55041F5DA8DF899B8544100F2AFA548F5504167B1F7279AB85441A25D054F49F55041B1990F439AB85441E6F13D7749F550419C0F29559AB854410AD7A3B049F550410AD7A3609AB85441E91BA2044AF55041452098A09AB8544163D937B34AF5504104A6D41B9BB85441CDCCCC9C4BF55041CDCCCC6C9AB854410AD7A3D04DF55041CDCCCCFC97B85441FC402E704EF55041CDCCCCFC97B8544106911AC94EF550410F9EC7F597B854418DFF0C6F4FF55041AC68BD3298B854412FC765AF4FF55041C05C494098B854413F68C51B50F550410A45615B98B8544178F7769C50F550413333B36F98B854413A57585351F550419C0F579898B8544105B1FF1052F550414DCED8E298B854410B525F7D52F55041A1B0B60499B85441D10AA7CE52F55041337BAC4199B854416CE34C1A54F5504108E3D82D9AB8544148E17A8454F550418FC2F5789AB85441CCDDBDC554F55041FBA203F799B85441AD4DA7CA54F55041D5E601EB99B85441DDA89BCB54F55041245755EB99B85441CDCCCCCC54F550418FC2F5E899B85441BC9AEF1155F55041630759039AB85441AC1C4FCB55F550413759A5429AB85441EBEFF10256F550410B6F1ECD99B85441AD94102456F55041CA5FAF5599B85441A2E3D36756F550415D6F384F99B85441F1A7080957F55041E963971F99B854410AD7A3D059F550418FC2F53898B85441CDCCCCFC5AF550410AD7A38098B85441A88D31215BF5504181FE292499B85441C18737615BF55041CBEC3BE499B85441495867975BF55041EA28C1C39AB85441AECA70C15CF55041C98B6FBD9AB854419E7A0BEC5CF550410E1DAEA39AB854410AD7A3005DF5504148E17A849AB8544148E17A745EF55041CDCCCC3C9AB854414BBEFA795EF55041B5BB76469AB8544182BF048E5EF55041B1990F439AB854413D8BD4075FF550411B9716B19AB8544192C8421463F55041824C1D9B9AB854412800B71264F5504101C27E0E9AB8544148E17A1464F55041CDCCCC0C9AB854412A11F11464F550419BB8430D9AB8544105E7A51564F5504129C9DF0C9AB85441DB404DD364F55041247079729AB85441B194BA9765F550416258918D9AB85441EB41DF8068F5504186E530739AB854415B5C355F68F550413BB22D4899B85441FBDA3F4E68F55041C5E98AB198B854411A494A3668F550416821058498B85441BFE9861868F55041980D99F897B85441688AC8EB67F550416D32724C97B8544122C2DA6767F5504174640CD696B85441CDCCCCFC66F550418FC2F58896B854419D56B0F966F5504140872E7396B85441E0719FE366F550412E02615F96B85441FFEF31D566F55041EEB8B97395B85441CDCCCCCC66F550418FC2F53895B8544155F172D166F5504112248A3695B85441AC834DCF66F55041FF247C1395B85441688AC8EB67F55041E58956A094B85441F58B4A326AF55041F59AC36893B85441AF973B9F69F55041653356C892B854414ABBE98568F550411E9B0AB592B854412BAA9E0A62F55041A9F61A4F92B85441CDCCCCFC60F55041CDCCCCEC92B85441CBB6C3F660F55041A9999CEE92B85441E6D234C060F5504119E8B51093B85441F5DD678F5FF55041E0A0FD6193B85441520AC3565FF55041A9E6C67E93B854410AD7A3205EF55041CDCCCC3C94B85441445DA4F45DF55041654FBD3294B854410A483BF25DF55041E0E8F63394B85441E535CB535CF55041DA99A3DE93B85441CDCCCC6C5AF5504148E17AF493B8544185EB518859F5504148E17A0493B85441740BCEA158F550412521733791B8544101DC494758F55041D996E0C990B854410AD9836F56F55041A6E7F61691B854410519DE2A56F550417293072991B85441D3E1D22456F55041E43E2B2391B85441CDCCCC1C56F5504148E17A2491B85441A5939FE155F55041A74001E290B85441E6DC584B55F550415D51485090B8544134D6DD2E54F55041FA1B3E8D90B8544178175CE453F55041A6C9520F92B854410B9A584F53F550418C76266E92B85441246B413C53F550419F068A5392B8544185EB512853F55041CDCCCC5C92B854410F99039A52F55041A565627191B85441EB5DD36F52F550419287933691B85441079AC1E851F55041079AC16890B854418648B9FD50F550418648B97D8FB85441D1EAC1864FF55041341BFD698FB85441A255D60C4FF55041923F9A6490B85441CDCCCCFC4EF5504141E5071D91B85441CDCCCCFC4EF550410AD7A39091B85441F8D4E4F24EF550416287F38E91B85441646DBEF14EF550418C2E2D9C91B854415FBF0E264EF55041E14F086C91B8544185EB51584DF550418FC2F54891B85441DB6533294DF550414F51E44091B854417EE8FE1C4CF550419287933691B854416E479FB04BF550415D99412291B85441C3A967144AF55041B6EFD3B990B8544185EB51C849F55041CDCCCCAC90B85441CFEBF00D49F55041895D7D9490B854414F332E5B48F55041E521788690B8544140EA1C5F45F55041275C0B2190B85441DA3534A041F55041BE8381C290B854415FB69DC83FF55041045EFD6591B85441F64907FC3DF55041CB1645B791B854413AFB920D3CF55041144756A492B85441E7D0BB193BF550415377679193B854418E95775D3BF55041AB429EF194B8544189AC1E1F3AF5504119C0A18695B85441CAAA11DE38F5504181E13FB095B85441CDCCCCDC38F550410AD7A3B095B85441BD2734DC38F55041D3C77DB095B8544106ED5BB138F550418C960BB695B85441B365602C38F5504152D9A68495B85441CDCCCCFC36F550418FC2F53895B854417F8C477436F550411983259595B8544179A3E09835F550410F0ED55196B854416FABBD7F35F5504169FAD58F96B854410AD7A37035F550410AD7A33097B8544166FA683C35F550418826EB3597B854417EFC463335F550416D32724C97B854410901A4F434F5504130B3014297B85441FB7E678434F55041D0E8D4E097B8544103C1714834F55041173EAE3598B85441ECE9572434F550413333B36F98B85441439C963E33F5504156FD024B99B854410AD7A33033F550418FC2F55899B85441A75C5C2F33F55041820B8C5999B8544111EF50FA32F55041EF392E8C99B854412BFA83C931F5504148BD6B1A9AB8544193372C4630F5504182839BB69AB85441CDCCCC4C2FF5504148E17AA49BB85441F5EFA1342FF55041890F549B9BB85441B84B2E242FF550411E5F0CAA9BB854412BDA80772EF5504158A6B5539BB85441C65723402DF55041BB88CDDD9AB854415A91648C2CF550419746E3A19AB8544189E3635B2CF5504183F1D6A59AB85441849451952BF55041D1CC33C59AB8544115B18CFB29F55041FCD815069BB85441212AC79529F55041D0D594229BB85441FC4CE24928F5504143F4F7239CB854419EDA118426F55041EA00AD399DB85441C25325C424F550415F1732219EB854410CA83D2D22F5504114CD24BD9FB85441F2C41EE820F55041E5C72BE7A0B85441E3F331CE1FF55041717A91B9A1B85441A463BBEA1DF5504148DB5B19A3B85441A3EF68191DF550414190CDFDA3B854417486D69E1CF550418CACCC72A4B85441D2B9CB861BF550416D0E024FA5B85441AEF5A2D719F55041629666D4A6B8544126DD79CF18F55041B608379AA8B8544140E8AC9E17F550417C0978BDA9B8544194F29E4A15F550419B8DF66EABB854414B7A948B13F55041EAEE596CAEB854410AD7A38013F55041A5DD9F2DAFB854410AD7A38013F55041CDCCCCCCAFB8544153F08E4613F5504131040636B0B8544146EEC81A13F5504167EDB88EB0B85441D302CBEF12F5504148A92304B1B85441A46DDF7512F5504152EBE2DCB1B85441396354F011F55041CE8005A2B2B85441C3F5287C11F5504148E17A74B3B85441769E7E3511F550415E100F93B3B85441BEE81FA10FF550417CB75A60B4B85441C53E7BA60EF55041B4AFBCF6B5B854418A6ADBE80DF550410E5A3C13B7B85441BE096E770DF550412CB117E2B7B85441174C78E70CF5504142D880CBB8B85441C321A1F30BF5504128CD4DFCB9B85441992D15E60BF55041281547CEBAB854411C5DE5AF0BF55041762EB1F9BCB854410CBC85430BF55041E43BA732BFB854416D6ABEEA0AF550417A741D7EBFB8544132BCE3AD09F55041EF0412AAC0B854419A0D309E08F55041D4C06607C2B8544117BE7A8C05F5504108377C7DC9B85441460B6D3405F55041371461C9CAB85441FB302C9305F5504167E7242FCBB85441C3F528DC05F550418FC2F568CBB8544145EE33E305F55041F3401A85CBB85441FD6A4EEB05F550411868CE8DCBB854410D0CAE5706F550418B86318FCCB8544180E2178706F55041BA6316DBCDB854414653660606F550412D8279DCCEB85441A4E7105D05F550411818A679D0B85441B0E9632105F5504139B92290D1B854410AD7A31005F550418FC2F5F8D1B85441716C20A704F55041FE449D04D2B85441F839FCDA03F550412DA25E24D2B854412E15784B03F55041194CB214D4B85441C3F5283C03F550410AD7A350D4B854418894703A03F55041FFE8964FD4B854416BC86C3803F5504190B58E56D4B8544152522D4102F550413BD65EB7D3B854410AD7A35001F5504148E17A24D3B85441F598511200F550411D703B65D5B854413CCBA2A4FEF45041B46A5F18D8B854417DE43673FEF45041B15E5755D8B854417B14AE67FEF45041A4703D6AD8B8544143B07F0DF9F45041F79B595BDFB854414C6EF759F9F45041460B4C82E0B85441D9DF86FCF9F450413CA1781FE2B85441257384BCF9F45041F00D7B5FE2B85441C3F5287CF9F450418FC2F5D8E2B854410AD7A350F8F450418FC2F578E2B854413929B907F7F4504185D53471E3B85441F312CE55F6F4504102EAB214E4B854419D0F3319F5F450415D444FA9E4B85441C3F528FCF4F450418FC2F5B8E4B854417EF81B25F4F450418FC2F5B8E4B854414C76269CF3F450419A5508BEE4B854418C593563F3F45041F1A066D0E4B85441E20EFA97EFF450414C27D460E8B8544108F99E2CEEF4504145582FB6E9B8544156781BE5EDF45041E335F196EAB8544108A7AA8BECF450412C660284EBB85441C74B5442EAF450410F18E250EEB85441A306262BEAF45041E8603573EEB85441D9AC9C1FEAF45041049C4A84EEB854416655C0D5E9F450414621DD04EFB85441981E157FE9F450410D8952FBEFB85441719A03D1E8F450417F5D51EAF1B85441F8E565D7E8F4504121CCEB54F5B854418BA6026DEBF45041055F2257F6B854416CB507B6EEF4504116621A4DF7B85441C3F528ECEFF4504148E17AC4F6B854412529F3DBF0F45041BC0156B7F6B854419759FEA3F1F4504121DCF0A5F6B85441CB95A8DDF1F4504156FCD7E7F6B854412FDF9406F2F450414ABC1EFEF7B8544187D5AD51F2F45041BBE5A107F8B8544138C4340DF5F45041985F78E8F5B854412D0E7128F6F4504194B4527AF5B8544148E17A34F6F4504148E17A74F5B8544111D5C435F6F450413BE72375F5B854417A611F7AF7F45041DAC79A08F7B854410AD7A3C0F7F4504148E17A64F6B85441A4BC68C1F7F450417BC05E64F6B85441477A6CC9F7F45041DD0F534BF6B854413A37B30AF9F45041C19B2222F6B854417C1F145DF9F45041CE591B8FF3B85441F7EFD501FAF4504162B04FB1F1B85441B3A8F8F8FAF45041C1E69C91EFB85441F690594BFBF450418AE27847EFB8544185EB5168FBF450416B2D880DEFB8544185EB5168FBF450411381AEEDEEB85441E04FEC5FFBF4504135DB4CBBEEB8544148E17AE4FAF45041CDCCCC6CEEB854419CB842EAF9F450411F391EF5EEB85441D99768D0F9F4504155C29105EFB854412B8BFCF1F8F4504197AAF257EFB85441ECD70DB7F8F45041AB72A817EFB854410AD7A320F8F450418FC2F5A8EEB8544185EB5138F8F4504148E17AF4EDB85441A4F2C03CF8F450417D11A9F2EDB85441A4F2C03CF8F450417C953EE5EDB854416E2A68D8F9F45041041F212AEDB85441C3F5282CF8F4504148E17AD4ECB854418CB02C29F8F450412B9381B5ECB854418B460A24F8F450418CA071B4ECB854416FD2D9FAF7F450417E533752EBB85441F66A15B0F8F450411E8EA87CE9B85441C1707209FBF4504146E615AEE9B8544102C9E910FBF450417F2A85BCE9B8544148E17A14FBF45041CDCCCCBCE9B854419C111A25FBF45041522E8DE3E9B854411FCD0385FBF45041F7BAFB9CEAB85441AD70F576FBF4504122B763A2EAB854412F24FB7EFBF4504157A217B5EAB854418B76CF62FDF45041CE7E5163EAB85441464BB551FEF45041E80E4584EAB8544197DFCCBCFEF45041048375ADEAB854418DAA4D05FFF450416D5AF59EEAB854414E9E990EFFF4504107F86079E9B85441698FAAE3FEF45041644E1686E8B85441C3F528BCFEF450418FC2F5E8E7B85441A03A7FC6FEF450410B6ECBE0E7B8544198C309C5FEF45041DC2087D8E7B854410304D848FFF450418B8C6F6DE7B85441E9F8A47900F550417D3F350BE6B854417B16A18002F55041036F7366E5B854418E0E9B8502F55041E654ED65E5B8544148E17A9402F550410AD7A360E5B854417C3A8BA002F55041386B1763E5B85441E902261D03F55041F5A6F955E5B85441A16F178D03F5504152640CC6E4B85441C3F5283C03F5504148E17AD4E3B8544146BFCB5703F55041E0C1C4CEE3B854411D3FD05603F55041C1E58ECAE3B85441BF67FF2C04F5504198A9E490E3B85441A640096605F5504103492FCBE2B85441141C66B705F55041800E75DBE2B85441DD6615C405F55041AB577EDAE2B854412B11CB0A06F55041052D6CD3E2B85441D555FC5D06F550418CFECCCEE2B8544185EB517806F55041CDCCCCCCE2B854410AD7A3B007F55041CDCCCC6CE2B854419A64470008F550414E08B671E2B85441CCDA7D2A08F55041B4985468E2B8544110A71B8508F55041C07C9170E2B8544199539FF808F55041608C0681E2B85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>983695 - 117756
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002B00000002FE3E79B9E2504173147F44602F5541B478C446A3E250410AE33FFC602F55417BD05ABD92E25041C489F90A622F5541BF458A0E84E25041DFAAE77A612F55416BE2744975E250417B0F5B195E2F5541B917797A6CE250412274CEB75A2F5541E3BDD18965E2504118A4EC11572F5541423FB47363E2504165A0BAA5542F5541A11554B560E25041A0B91853542F5541FBC939AD61E2504119098695562F554126C1DD1065E250417F1988A6592F5541849274F068E250418236398E5C2F554100FF921A6EE250418653EA755F2F55413118F1C76DE25041AE2DDDF15F2F5541219F23C768E25041D2EA1E865D2F5541F6A77F6365E25041639BB1435B2F55410409A5DE60E2504106CA1A64572F5541BD932A185FE250415C614F74552F5541313C3C605EE25041DCA1BC65542F5541D60DC85456E250418EB18F7E562F5541FDCE420F5BE2504143FB2097602F5541C0B0DBFF61E250414E573DB0622F55412ADE8EF867E2504136F61735672F55419AEE90096BE25041F8BF08A0642F554128D985966EE2504173147F44602F5541828D6B8E6FE25041E8463B9F5F2F55419206398F74E25041277D4A34622F5541E798643D79E250410BFF73D1632F5541DA935BDB7FE2504149358366662F5541D254F0A980E250417A4EE113662F5541973B92FC80E25041AC28D48F662F5541973B92FC80E2504136F61735672F554157007A0585E25041D71F78F3692F5541263E2F0F8EE25041FBDCB987672F5541B3F77B4497E2504154A5F1AE682F5541DC15B63BA2E25041AF458577692F554182D43DFCACE25041D0A28E38692F5541DE5659F1AEE250419DE1003E682F5541821F9141B1E250414D165682682F5541680E418ABCE25041175B90EA652F55417DE719A5BCE2504133A8740F642F554165F18FA2B9E2504108E2C2E9602F554102FE3E79B9E2504173147F44602F5541
+</a>
+
+<b>
+0106000000010000000103000000010000004C0000008D363BD8B9E250416B00E121612F554165F18FA2B9E2504108E2C2E9602F55410DDF447CB9E25041B3989650602F5541CB225C09A6E25041368F66E5602F5541BB1C42E898E25041F72301A6612F55417BD05ABD92E25041C489F90A622F55417175A14F92E250412AEAC406622F5541BF458A0E84E25041DFAAE77A612F5541882CF10784E25041A2016579612F554117712ECE83E2504180172C6C612F55416BE2744975E250417B0F5B195E2F5541B917797A6CE250412274CEB75A2F5541E3BDD18965E2504118A4EC11572F55411E8D3F6F65E25041A12E12F3562F5541423FB47363E2504165A0BAA5542F5541A5D4485463E250419D5708A2542F5541EC24CDC260E25041EF878872542F55413B8D13E260E25041002682BB542F55411898743F61E25041AA946495552F55411B85209561E2504104134B5D562F5541F5C4CC3965E25041575C3BC5592F554198CA55C568E250419120E26D5C2F55410D8D087E6BE250416973DCFD5D2F5541202644816DE250418DF9AD1F5F2F554100FF921A6EE250418653EA755F2F55410F69EB176EE2504170B4E5795F2F5541EBE16E196EE2504163BDCD7A5F2F5541853C67D16DE2504139EDCC03602F5541A1B45C246DE25041DD68B6A25F2F5541219F23C768E25041D2EA1E865D2F5541F6A77F6365E25041639BB1435B2F55412FFCC10461E250419AE3C584572F55410409A5DE60E2504106CA1A64572F5541BD932A185FE250415C614F74552F55412A792D6A5EE2504160D35C74542F554105896F025CE25041D98DA503552F5541D60DC85456E250418EB18F7E562F5541CCA370475AE2504176A47AEC5E2F55419BD1A6125BE2504138672798602F554139671DD861E25041C66439A4622F5541C0B0DBFF61E250414E573DB0622F554144E837CE63E250410B43220E642F5541B5879EFB67E2504124098432672F5541C80338FD6AE2504131936EAA642F554166199C2B6BE25041DFDC4076642F554128D985966EE2504173147F44602F55418586515A6FE25041914BF7C15F2F5541828D6B8E6FE25041E8463B9F5F2F55414AC6983F74E25041C495310B622F55414E38C57476E25041EF9FB8DB622F5541E798643D79E250410BFF73D1632F5541D43B85657CE2504133E7D10C652F55419331C4D37FE250417ED08C63662F5541D8B85FEB7FE2504177261B60662F5541D254F0A980E250417A4EE113662F5541CF5D5CC780E25041005C0340662F5541973B92FC80E25041AC28D48F662F5541973B92FC80E25041132A3891662F5541973B92FC80E2504136F61735672F5541058B609F82E2504156B1E151682F5541A93CAE1685E250413ACAE0BB692F55414A1A31838CE2504192A6CBF1672F5541263E2F0F8EE25041FBDCB987672F55414B25FA2A8EE2504108E7348B672F5541FEA85D4A98E2504126C8A7C1682F55411E3D177E9EE25041DC21EC2B692F5541F77CE4ACA2E25041777DEE74692F5541024E481EA4E25041FA5D7B6C692F5541DDD14110ADE250411EA48C2E692F5541DE5659F1AEE250419DE1003E682F5541705B4000B0E25041F8EB425D682F5541EE448395B1E2504117020C6F682F5541311F187EBCE2504112A85BED652F554195B63893BCE25041947ADE4B652F55417DE719A5BCE2504133A8740F642F55418D363BD8B9E250416B00E121612F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>983695 - 318015
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002B00000002FE3E79B9E2504173147F44602F5541B478C446A3E250410AE33FFC602F55417BD05ABD92E25041C489F90A622F5541BF458A0E84E25041DFAAE77A612F55416BE2744975E250417B0F5B195E2F5541B917797A6CE250412274CEB75A2F5541E3BDD18965E2504118A4EC11572F5541423FB47363E2504165A0BAA5542F5541A11554B560E25041A0B91853542F5541FBC939AD61E2504119098695562F554126C1DD1065E250417F1988A6592F5541849274F068E250418236398E5C2F554100FF921A6EE250418653EA755F2F55413118F1C76DE25041AE2DDDF15F2F5541219F23C768E25041D2EA1E865D2F5541F6A77F6365E25041639BB1435B2F55410409A5DE60E2504106CA1A64572F5541BD932A185FE250415C614F74552F5541313C3C605EE25041DCA1BC65542F5541D60DC85456E250418EB18F7E562F5541FDCE420F5BE2504143FB2097602F5541C0B0DBFF61E250414E573DB0622F55412ADE8EF867E2504136F61735672F55419AEE90096BE25041F8BF08A0642F554128D985966EE2504173147F44602F5541828D6B8E6FE25041E8463B9F5F2F55419206398F74E25041277D4A34622F5541E798643D79E250410BFF73D1632F5541DA935BDB7FE2504149358366662F5541D254F0A980E250417A4EE113662F5541973B92FC80E25041AC28D48F662F5541973B92FC80E2504136F61735672F554157007A0585E25041D71F78F3692F5541263E2F0F8EE25041FBDCB987672F5541B3F77B4497E2504154A5F1AE682F5541DC15B63BA2E25041AF458577692F554182D43DFCACE25041D0A28E38692F5541DE5659F1AEE250419DE1003E682F5541821F9141B1E250414D165682682F5541680E418ABCE25041175B90EA652F55417DE719A5BCE2504133A8740F642F554165F18FA2B9E2504108E2C2E9602F554102FE3E79B9E2504173147F44602F5541
+</a>
+
+<b>
+0106000000010000000103000000010000004C0000008D363BD8B9E250416B00E121612F554165F18FA2B9E2504108E2C2E9602F55410DDF447CB9E25041B3989650602F5541CB225C09A6E25041368F66E5602F5541BB1C42E898E25041F72301A6612F55417BD05ABD92E25041C489F90A622F55417175A14F92E250412AEAC406622F5541BF458A0E84E25041DFAAE77A612F5541882CF10784E25041A2016579612F554117712ECE83E2504180172C6C612F55416BE2744975E250417B0F5B195E2F5541B917797A6CE250412274CEB75A2F5541E3BDD18965E2504118A4EC11572F55411E8D3F6F65E25041A12E12F3562F5541423FB47363E2504165A0BAA5542F5541A5D4485463E250419D5708A2542F5541EC24CDC260E25041EF878872542F55413B8D13E260E25041002682BB542F55411898743F61E25041AA946495552F55411B85209561E2504104134B5D562F5541F5C4CC3965E25041575C3BC5592F554198CA55C568E250419120E26D5C2F55410D8D087E6BE250416973DCFD5D2F5541202644816DE250418DF9AD1F5F2F554100FF921A6EE250418653EA755F2F55410F69EB176EE2504170B4E5795F2F5541EBE16E196EE2504163BDCD7A5F2F5541853C67D16DE2504139EDCC03602F5541A1B45C246DE25041DD68B6A25F2F5541219F23C768E25041D2EA1E865D2F5541F6A77F6365E25041639BB1435B2F55412FFCC10461E250419AE3C584572F55410409A5DE60E2504106CA1A64572F5541BD932A185FE250415C614F74552F55412A792D6A5EE2504160D35C74542F554105896F025CE25041D98DA503552F5541D60DC85456E250418EB18F7E562F5541CCA370475AE2504176A47AEC5E2F55419BD1A6125BE2504138672798602F554139671DD861E25041C66439A4622F5541C0B0DBFF61E250414E573DB0622F554144E837CE63E250410B43220E642F5541B5879EFB67E2504124098432672F5541C80338FD6AE2504131936EAA642F554166199C2B6BE25041DFDC4076642F554128D985966EE2504173147F44602F55418586515A6FE25041914BF7C15F2F5541828D6B8E6FE25041E8463B9F5F2F55414AC6983F74E25041C495310B622F55414E38C57476E25041EF9FB8DB622F5541E798643D79E250410BFF73D1632F5541D43B85657CE2504133E7D10C652F55419331C4D37FE250417ED08C63662F5541D8B85FEB7FE2504177261B60662F5541D254F0A980E250417A4EE113662F5541CF5D5CC780E25041005C0340662F5541973B92FC80E25041AC28D48F662F5541973B92FC80E25041132A3891662F5541973B92FC80E2504136F61735672F5541058B609F82E2504156B1E151682F5541A93CAE1685E250413ACAE0BB692F55414A1A31838CE2504192A6CBF1672F5541263E2F0F8EE25041FBDCB987672F55414B25FA2A8EE2504108E7348B672F5541FEA85D4A98E2504126C8A7C1682F55411E3D177E9EE25041DC21EC2B692F5541F77CE4ACA2E25041777DEE74692F5541024E481EA4E25041FA5D7B6C692F5541DDD14110ADE250411EA48C2E692F5541DE5659F1AEE250419DE1003E682F5541705B4000B0E25041F8EB425D682F5541EE448395B1E2504117020C6F682F5541311F187EBCE2504112A85BED652F554195B63893BCE25041947ADE4B652F55417DE719A5BCE2504133A8740F642F55418D363BD8B9E250416B00E121612F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>539811 - 983725
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001D000000C3F528FCFF105141EC51B8EE533F5441A4703DAA0F11514152B81EF5453F54417B14AE871F1151410AD7A3D0373F54413DB53EA01A115141E39852FE353F544108820B6D1A115141B1651FEB353F544131DE9A8F18115141CFEA0A3D353F5441F5D3C36B161151410D1E3E70343F5441F0FC1FFB121151419A099028333F54414D8CE270111151417B84A496323F544134CDE2280D11514117F56801313F5441AE47E16A0A1151415C8FC2F52F3F5441B23FC470F3105141700BC002483F54413F3980BAF310514197785D3E483F5441756AADA8F5105141EAEBF1E5493F5441B81E851BF8105141EC51B8FE4B3F5441666666E6F81051418FC2F5C84C3F54410A821708F7105141D005A1524E3F54413B6D8C4AF5105141D2A929C04F3F54419B8B87AAF4105141DFD45F42503F5441073A062DF41051415549C7A6503F54412BEDE086F01051410DDA4E90533F544193934187EE1051419ABF7A23553F544173226862E910514122C30D27593F5441EC51B8BEE5105141AE47E1FA5B3F544170C5111EE51051418A773E825C3F5441E5362D22E510514184268D915C3F54419A40709AEC1051411075C22E653F5441AE47E1CAF7105141C3F5283C5B3F5441C3F528FCFF105141EC51B8EE533F5441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000666666E6F81051418FC2F5C84C3F54415B476E78F3105141D1A89A0E483F54417B5F1C7AE21051417F1C6EC1593F54415C8FC2D5E2105141666666265A3F5441B81E851BE510514148E17A945C3F5441F133A521E5105141C73D928F5C3F544171C5111EE510514187773E825C3F5441EC51B8BEE5105141AE47E1FA5B3F544171226862E91051411FC30D27593F54412DEDE086F01051410EDA4E90533F5441666666E6F81051418FC2F5C84C3F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>956391 - 628727
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000020000004D000000963791B675F450412F83D4334A1555413574588474F45041D2AF08F449155541DD86C99E72F45041683F33AB49155541225D41746FF45041835701C948155541D9CFC3CF6CF4504169B4CB8148155541E20A20B269F45041ED8E77EA47155541A5B80FDC68F450418BA951C34715554116AA17D468F450418C2C5DAD47155541BB26A4D668F45041FDE653C24715554154F00AC968F45041474832B04715554193E3AD6D66F450412849728D461555412E3C0C365DF45041908B263144155541E97FF7E357F450412413873543155541C3F528BC57F45041713D0AE74415554185EB518857F45041A4703D0A461555417B14AE3757F45041A4703D4A47155541D7A3703D58F450411F85EB2147155541F6285C0F58F4504185EB51F8471555415C8FC2B557F450418FC2F55849155541B81E853B57F45041000000504A15554114AE478156F450417B14AE574B155541CDCCCCDC55F45041B81E851B4C155541666666C654F450413D0AD7534D155541713D0AA753F4504185EB51984E155541000000C052F45041713D0AA74F155541333333E351F450411F85EBD150155541C3F5284C51F45041F6285CDF511555418FC2F5D850F450418FC2F5385315554185EB51A850F450416666662654155541EC51B89E50F45041C3F528CC55155541000000A050F45041B81E858B571555419A99996950F45041B81E851B59155541AE47E11A50F45041EC51B8CE5A155541CDCCCC1C52F4504114AE47F15A155541295C8F9254F45041666666365B155541F6285CCF56F45041EC51B89E5B1555415C8FC23558F450418FC2F5F85B1555418FC2F5185AF45041F6285C6F5C155541C3F5284C5BF45041000000D05C155541333333835DF4504185EB51885D155541713D0A8760F450418FC2F5985E15554152B81E2564F450411F85EBF15F155541F6285CFF66F45041C3F528FC601555410000004069F45041AE47E1DA611555413D0AD7B36BF450419A9999B962155541713D0AB76DF45041F6285C6F63155541A4703DAA6FF450411F85EBF16315554148E17A8471F45041AE47E18A6415554148E17AD473F450413333334365155541AE47E14A76F4504148E17A046615554185EB516876F45041295C8FA2631555418FC2F52878F4504148E17A045B155541333333837CF4504148E17A045B15554114AE47A17EF450419A9999695B1555416666663680F450413D0AD7535B155541F6285C0F81F45041713D0A575A155541C3F5287C81F450411F85EB71581555418FC2F5F880F45041F6285C5F57155541A4703D7A81F45041B81E85DB531555416666668682F450410000008052155541A4703D2A84F450413D0AD7A351155541000000F086F45041AE47E1CA50155541617AB15688F45041C08FEC71501555414FC1C81E8AF45041C027122B5015554137FCD1E88AF45041D6DE69F84F155541DF1522388CF45041901C63B44F155541307C48A78DF450418FDDE6694F155541DDF01A6B90F450419C864DDA4E1555410243DCBE93F45041D8AB7A854E15554114AE475193F45041333333734E15554185779EE78DF450410082E28C4D1555410FDB710689F450414DDD70D24C1555416F68E96286F45041E83F796C4C155541C27C43117FF45041B3D08C7E4B155541086A42F979F45041E58443C44A15554124B959EE77F45041D6481EAA4A155541963791B675F450412F83D4334A15554105000000B12B94FE68F4504148B1D22C4815554141054D7472F45041445209A94B1555412002541F72F45041DFD385D34B155541ADCCCA7A6CF4504100D77E284C155541B12B94FE68F4504148B1D22C48155541
+</a>
+
+<b>
+0106000000010000000103000000010000003A00000043779EE78DF45041F681E28C4D15554114AE475193F45041333333734E1555410243DCBE93F45041D8AB7A854E1555415C8FC23596F45041EC51B8EE4E1555418FC2F55899F4504152B81E854F1555411F85EB519BF4504148E17AB44F155541C3F5284C9DF4504148E17A044E155541F6285CAF9DF45041295C8F724A155541A4703D8A9DF450413D0AD753481555417B14AEC79CF450418FC2F50847155541AE47E17A9BF45041F6285C7F461555410AD7A3009AF450418FC2F5F8451555410AD7A3D098F450411F85EBA1451555413D0AD73397F4504185EB51484515554114AE471195F45041CDCCCCCC44155541EC51B8AE95F450415C8FC2D543155541000000A097F450410AD7A3704315554185EB514897F45041666666B640155541EC51B8EE94F45041A4703D8A3F1555417B14AEB790F45041CDCCCC1C3F15554185EB51D88CF45041E17A14CE3E155541AE47E12A8AF45041000000603E155541C3F5285C83F450418FC2F5B83C155541F6285C8F7EF450410AD7A3503B155541000000B07CF4504114AE47D13A15554148E17A3475F45041EC51B81E38155541E17A141E74F45041333333C338155541295C8F2272F45041333333733A155541B81E852B70F4504152B81E75421555411F85EB016FF4504148E17A2442155541D7A3707D6FF45041D7A3701D401555413D0AD7C370F45041F6285C8F3A1555410AD7A3A072F450415C8FC2253815554152B81E5573F45041AE47E19A371555415C8FC2256FF45041F6285C3F361555415C8FC2C565F45041CDCCCC7C331555417B14AE7761F45041AE47E16A32155541E17A142E5FF450413D0AD723321555415C8FC2255BF45041C3F528AC311555417B14AEF759F45041666666363615554148E17A1459F45041D7A3707D3A1555413333336358F45041AE47E1FA3D15554152B81E3558F450413D0AD74340155541AE47E1EA57F45041A4703DEA42155541E97FF7E357F4504124138735431555412E3C0C365DF45041908B26314415554193E3AD6D66F450412849728D4615554188A53D7E66F450413C596D954615554179C42C9F66F4504145CEE99D4615554106AAB57A69F4504128812ABC471555410EB42D466AF45041D9488E0648155541D9CFC3CF6CF4504169B4CB8148155541225D41746FF45041835701C948155541086A42F979F45041E58443C44A155541C27C43117FF45041B3D08C7E4B1555416F68E96286F45041E83F796C4C1555410FDB710689F450414DDD70D24C15554143779EE78DF45041F681E28C4D155541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>246563 - 3334068
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000020000000103000000010000002400000053AE47114E6B5141981A858B05955441AE47E1BA4E6B514148E17AA4229554418FC2F508506B51418FC2F5A8549554418FC2F508506B5141D7A370ED5595544152A5FE60506B5141FC526A86589554416DFFA4E74E6B5141017CB42962955441277444514D6B514181E4AB706A955441E4131BA34C6B5141DC71577871955441C363064C4C6B51413B2A3A6879955441B81E859B566B5141D7A3708D79955441713D0A375F6B5141000000A079955441B81E850B696B51415C8FC2D579955441000000C06D6B5141CDCCCCDC79955441AE47E17A6F6B514148E17AC479955441F6285C1F766B51417B14AED75B955441000000507C6B5141333333F33F955441EC51B80E816B5141295C8F922A9554418FC2F5B8916B5141713D0A072D95544194F37476916B5141B3D1AA482B955441BACEC0B5926B5141CA02072C2095544125356D8B956B514189FE121D07955441821A74A8956B51415FF88FF50495544130E1492C996B51411A44E5BBF9945441BC2242419D6B514144797955EB94544106AEA2D79E6B514170D75792E6945441EB53FC50A06B5141FE1A3DECE19454411485B660A36B5141DA41DEF1D7945441EA510F0CA96B5141C8EF49ABC49454413D0AD7939F6B5141F6285C0FC19454416402C07A946B51418C9051C5BC94544148E17A04906B514133333313BB9454417B14AE27756B514133333333AF945441D7A370BD746B514148E17A34C594544152B81E05746B5141D7A3701DE194544133333383736B5141666666961595544153AE47114E6B5141981A858B059554410103000000010000000B000000A42909044E6B5141F3BC574C03955441402DFC034E6B5141B5B6D74403955441972311F25A6B5141B3FB5DC608955441B81E859B726B5141B81E85DB1295544110FE1ACB726B51414A647F3AFF945441C0166EE4726B51414A6838C8F4945441A4380215736B5141C4D350BEE09454411F85EBE14C6B5141C3F5289CD1945441666666664D6B5141EC51B84EE8945441BB0AD7034E6B5141E110D74303955441A42909044E6B5141F3BC574C03955441
+</a>
+
+<b>
+01060000000100000001030000000100000029000000F6285CEFAC6B5141E17A144EB9945441AE47E18AA26B514185EB51B8B594544133333303976B5141D7A370ADB1945441D7A3701D946B514100000070B0945441333333C3916B5141713D0A47B69454419A9999C9806B5141D7A370FDAE94544100000040756B5141E17A143EAA9454417B14AE27756B514133333333AF945441D30C8A20766B51411A5536A1AF945441AE4F3378776B51415C182239B0945441AA96D99C7A6B5141B368D79CB19454418C23EF6F806B514100CAFF2FB49454411BAFB397826B514163BFEA23B5945441126CA716846B5141940535CDB5945441F562D27E846B5141079541FBB5945441A7365E28876B5141306D8B28B79454411C5E241E896B51418AA65C06B89454417E9F2E638C6B51410D916378B9945441852A25938D6B514186BCC2FEB99454418F1DD65D8F6B5141BB5288C9BA945441737E4EC28F6B5141136EF2F5BA9454411A8AF583906B5141ED4C4F41BB9454414B6D9134926B514180CD68E7BB94544163F45F66936B5141BA50485CBC9454412CAA81C2936B51419B0A4C7FBC94544183ADD4BC946B5141999EDBDEBC9454413E05A000956B514141370FF9BC945441CDC0FAD7956B514158784A4CBD945441C2F2301E966B5141833E6D67BD945441509932E8966B51411ED87FB5BD945441AE09A1B7986B514178EF9B68BE9454410C38A358996B51410F2FD6A6BE9454415EB0FB149A6B5141312CA1EFBE945441C0EB8C959A6B5141BCAC5121BF94544103B7AD289D6B5141B1131020C09454415909F1F19D6B5141111ED96DC0945441ABB2AA559F6B5141C9E090F5C0945441ED510F0CA96B5141C3EF49ABC494544157C0A47AA96B5141EC6FE6CFC4945441C3F528BCA96B51415C8FC2F5C3945441F6285CEFAC6B5141E17A144EB9945441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>978257 - 984038
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000005000000D5000000C4D8C356FE775041627A8678330F55414487048DFE775041F5884BDF320F5541D03CC8990C7850413B304422340F554154F324A4107850419AA5CF2E330F5541500961D11678504149C817D42E0F5541A9E7954A1678504103DFE1E12D0F5541EA7DDD1517785041749FF3332B0F55411D7C3A62187850418E20B80B2B0F55419AFFBC4C1B7850412D9E30592D0F5541893829421D7850419797151E2E0F5541EB7693551D7850419C45F7832F0F5541B342F02D21785041825278662F0F55419C68DD0C2478504112EA584E2F0F55418CAC2B89277850415E1DF4672E0F55416501EEEE27785041085F50C72E0F5541AEB1D1B12D78504190D39F912D0F554142E862872D785041E5961C7B2C0F55415077B59A2A78504129D837252A0F55418B679682287850411F41FBDD290F5541E02135D1287850415151AFF5270F5541C64EDB322C78504113166C70270F554182714FE92E7850418E59B6FF240F5541990A33692C7850415937981A210F5541DCB7DCB92778504153A04743210F5541D9DB79762778504199E9E651200F5541775AA75E2A78504150B58EB01F0F55417CCFEB5F2A7850413512BA921E0F5541B300562825785041F8F0D5EF1D0F554152A927852A785041432335F81C0F5541E5BBEDE7347850413B1A0727180F55417ED89EC33378504165AC93460F0F5541466B5A3132785041A8DB00AE080F554185A7C2D63178504108DB1B4A050F554125D6F92134785041D9ECCA36020F5541A4810A2C357850411774CCF3FD0E554175459FCE32785041264B928DFC0E554185FD2A55337850416303B122F90E55411B0ECFC32D7850418CE974E6F40E55416C410C502C785041FA230ED4F00E554149C853D22D7850414B195F57EE0E5541A4EAD1FB2B785041141D0D25EA0E5541EC5D6C822B785041BA9D7F2BE40E5541CAC9BC062C785041CCE9F8CFE20E55416B13C4CB2E785041C715950AE10E554143E32A0F31785041EB087BD1DA0E5541F3970EB42E7850416099F1FAD40E554100D54BE32D7850415160E6C6D00E554199EB1BDC2F7850413EF83FECCA0E5541C1F5F4AF2E785041F6E69EE6BD0E5541E57145992B78504137F37175BC0E554125EB706B27785041C60CFB65B10E554149292C941F78504177B2E502A90E5541392E401C24785041465606B2A60E5541582C533F247850416B5FA314A50E554131A62CF6207850419C1A26B19C0E55418B2194261B785041FD432106A00E554123DE171416785041D32CD21FA20E55414AD2B7CD14785041D1D1E601A50E55419115554E0F7850411AA84898A60E5541EE6A64930E785041CC229AF7A90E5541A7DC50AB0A78504139145500AE0E5541D58EC907037850413D9D8A68B10E5541E05BE076FF775041AAEEF621B40E55414562C6E9F677504188FC6DF7B50E55416C719175EF7750411994442BB40E55416F9D418FEE775041258B4556B40E5541BD78B758E6775041DDA7574FB50E55412B99EBD4E37750412D80464BB50E554147EE637DDD7750419299C768B40E5541A94A1F20D4775041AD446A25B40E5541FBEFDC14D17750414C159093B40E5541BCE405FACE7750412A5795EFB40E5541AEA6E1E8CA775041BE934125B40E5541B2176508C6775041F0015168B40E5541DC9B1F85BF775041C337A42BB50E554116FDBEDFB5775041C6B2EE30B70E554126AD5500AA775041CA8E0B88B70E5541D55DD521A2775041594D388BB70E5541B371ED29A07750414F387DC7B70E55419EE30AFCA1775041412D46AFBA0E5541080E1E13A4775041583BA78FBE0E55413C5B3654A777504167674DD7BD0E554115F78496AA77504108F68C4DBE0E554180E18B6DAB77504110D05865C10E5541535AFF2DAF7750416734E6DCC20E5541C7D41D20AF775041F775BF9AC40E5541D79C4B91AD7750415922A382C50E554174D5784DB07750416C5DCB70CC0E55416F90DC1CB5775041CC7CE6F4D60E55414CAFC70EB77750418B042E9EDA0E5541A719770FC37750413699CC31E80E554133A0C17FC6775041FCC2EDE2E60E5541130C4656CC775041CB2B19D0E20E5541B3944DA7D0775041B7FF14A0DD0E55410434D952C97750419B8331D8CC0E5541BD4DC37FC9775041191773BFCC0E554176860A4FC97750418DC9E84BCC0E554106E990D4C9775041C7CC4D3ECC0E5541C3F15D50C97750418E2248E4C90E554173431709CB7750413F4822FEC70E5541B50B57DCD077504105D67B9DC70E554133CA8E75D3775041B8AB389FC70E554173280586D57750417DBF26A7CA0E5541145FCAFBD77750416B394271CA0E5541861FFB28D8775041D0E6231DC80E5541DB5031FDD977504143784F15C80E5541715FC17EDA77504187C30E53CA0E5541F73278F4E9775041D3DAF2B9C80E55410590711AEC7750413BB120D7C70E5541C131D3F3EC7750410D2A5C6EC80E5541A298DBDFFC775041F3A64795C60E5541A1EB0AC0FC775041195226D8C40E55415B2005A000785041BD25901FC40E554157209FC9037850417B2537A8C70E5541147121C006785041DFEBBBA0C70E5541252C60B107785041D0AB28E9CC0E5541E1381B990A7850414F268B77CC0E5541E593FA460D785041EE7D45D2CD0E5541F1D639B81078504137EA199ECD0E5541BE85B57F1178504165C97992CE0E5541C67B82AA10785041284993B0D20E55417693F16613785041EFE13586D30E5541B533905614785041E424BDABD10E5541F40372D115785041D63A52E6D00E5541A00EB7E917785041269CCA0ED10E5541E7F01CF41A785041F973BE9DCF0E5541D036CA191E785041CC8CEB88D10E55412F0FA1611E78504191D95383D40E55412C518B631F7850419D310A44D20E5541002E50E920785041F06A39ECD10E5541B38BD2852178504113B76923D60E5541018629C320785041BCFD83DDD60E55410CF3D4851E785041A138BA22D60E5541F1FCF9551D7850411083B193D70E5541F52F078A1D7850411A65A459DB0E55412B8FA8F819785041200873B5E10E554164780BDB1778504195B33DF8E30E55418473597117785041820C702EE50E5541D1223AD71878504159475FD2E80E5541B70AC5741B7850417A7BE3DEE80E5541E70AC6001E785041170F8ED4EA0E5541BC5B17621F7850418EA83509EE0E5541672D81291F785041B6DE88E4EF0E5541063BF29C1C78504180FED2BDF10E554187E992201A7850418EB8FA48F20E55413DE263A71678504153B12F11F40E55414919485D107850411B39E015F40E5541F6FCFC4F0F785041ABE51464F70E5541E8823C1B0D78504175FB3680F80E55413D7341050C785041867497B0F60E5541F8D670A90A7850414126005BF50E5541DD597DFF0678504142152D4FF40E554132CE7A3905785041A61EB3A3F40E5541CDD79DAF047850419226BBEEF80E55416F3DF1FC04785041DE18864AFB0E55412B4C80C704785041DCBE6611FC0E5541DD6CFF8D05785041D4A5965EFD0E5541563005660678504131678F11FE0E5541893844F206785041B500299B000F5541F416F23C05785041DD06D667010F554122C00C3A04785041E79C4A1B010F55416765185703785041B553717FFF0E55412C90CBE303785041AC6177F3FD0E5541E1FEEF080578504114FD8854FD0E5541CD01C6C903785041611E3076FB0E5541D37833C702785041F04EFC1EFC0E5541991EDED200785041235CD46BFB0E55414E6F542D017850417C135C42010F5541968D374501785041E0F8B940070F55415ABCF5B80378504176440F69080F5541D9BACEA504785041BEA2593B060F5541301FDCAF087850413696CDCF060F55412ADF16B30978504162B7B217080F5541D04E9D6D0B785041FBB1C927080F554193AAAB660E78504133524CFD080F55410DAA2CE10F7850412232F2F5070F55417AA723570E7850417C8E1987050F55419DD11C1B0E785041AC659D25010F55412FC0FE7A0E785041C24A26E3FE0E55410F64F9C60F7850417C061881FE0E5541F6AF913A11785041E7425B29020F5541CF3C6D9713785041DD1F3552010F554128910C7415785041C6F9BCB1FF0E55418A6A9B6B177850412ED21B4DFF0E55410AAF70041C785041135996BA000F55416D8B55E71C78504196549648020F55412C058FC51D785041AF482711060F5541852DB0891D785041917A93B70A0F5541336399F21B78504159A2F7D30A0F55415625B4631A785041D7D20EB30C0F55418C2B0F35177850411A1411AC0D0F5541F5292AC0157850412AD4879A0D0F5541F49835C313785041AAD7C8B10C0F5541B99514F0127850418B8DF72F0E0F5541E42D59191178504191D9B4580E0F55413C022CDB0A785041A48D80010C0F5541CE4FD2FF077850412E0418CC0B0F5541F858553006785041559097FA0B0F5541D6636EAF0478504121AD353F0B0F55410D0FC8A603785041790A9617090F5541741F88530178504104EFBDDA070F5541CE9942000178504146A5229A0A0F5541FCF4E74D01785041B25E337C120F55419A4FA9B702785041E1FA64C3170F554152C4B5A9057850413BB45DC5200F5541A666CBAEFE775041EDE82AE4200F5541C49C3622FE775041C71FE1E5220F5541C449F8F8FD77504127C59E79230F554109A8D1F9FD775041620A7D79230F55414D518138FE7750417DFAADCF250F5541C3AE0C60FE7750418D3F3D5E2A0F55417E5DD273FE77504120A5C2EB2D0F5541C4D8C356FE775041627A8678330F55410600000051C41A1BE777504145BB6BA7C30E55414F840152E6775041FE024D7BC30E554153CCC10FE77750418A20D0F3C20E554113C641A5EF775041FF89BAD3C10E5541BC21B029F0775041B2B64C71C20E554151C41A1BE777504145BB6BA7C30E55410E000000E8FD98FC027850419D1ABFBBBD0E55411F33CC4A007850419A754808BC0E55411D3F9260FF775041E0752C7DBA0E5541F82DA36401785041EDAB7C0FBA0E5541EC6260BF017850415B2CBF6DB80E5541D3840EFB0B785041D2BCCEBDB30E55414FD8F66313785041111C15ECB20E55416BE56FAF16785041585467B5B30E5541A34169811C78504179A4E8EAB80E55411B6927AD1A7850414E5F4FD1BB0E554107CA105E0B7850410F7101A4BE0E5541078622B509785041F561E246BB0E5541234BA4AB0678504196732DF4BC0E5541E8FD98FC027850419D1ABFBBBD0E55410B000000D160F0A921785041D061BC20BC0E55411AF14FB82278504194F154D1B90E55410B3F3E9E247850410727A0FAB60E5541C3C7521527785041859EC5BAB50E55419D747081277850419ABB0E90B60E5541F3D179122578504118271BB3B80E55419AF5F76E28785041BD636127BB0E5541EF72F01E287850419D154BFFBC0E5541F69E67B323785041321973CCBC0E554130E07ECC23785041C4F7361DBE0E5541D160F0A921785041D061BC20BC0E554105000000DC252AF9E3775041BC7390D9BF0E55410C012382E4775041687BF040BF0E5541CDEA1D5EE77750410F500E40BD0E5541ADE1AD89E8775041F3F3A39DBF0E5541DC252AF9E3775041BC7390D9BF0E5541
+</a>
+
+<b>
+0106000000010000000103000000010000001800000027B7154B0178504127DEDF32120F5541E6B5FD1401785041AF8294B6100F55414232BAEC007850410416AE060B0F5541BE59284C01785041CBBA0044070F5541968D374501785041E0F8B940070F55414E6F542D017850417C135C42010F554168405D2101785041BA11AD7C000F55414DC9628900785041E6D8913BFC0E5541B982701AFF775041F74B1531FC0E5541A2265DC7FD7750412E5F06D8FC0E5541E47A834EFC7750418EBBD66FFE0E5541B6FDCC35FB775041FA0404A3000F5541B4D02553FA775041E721BE42040F5541A0D0C5B3F977504158C56BBE0A0F55419C233167FA7750411040262A120F554110E1886CFC77504161EBC91B170F5541939207BCFE77504119F69A971B0F5541C62453A200785041830FD370200F5541B9EA1B66057850417BA2BB79200F554128B4C72E03785041B657C16F190F554179CC63A2017850415838A798140F554116B6235E01785041DB8BD5B8120F5541FCF4E74D01785041B25E337C120F554127B7154B0178504127DEDF32120F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>983391 - 708836
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000980000009A9999B9A6165141EC51B84E8B2C5541E17A14AEAD165141713D0A778C2C55418B808A82B2165141110D53568D2C55417916AD0FB41651411808A32D8B2C55419DC64B3EB6165141CAA4E9448B2C5541500F3AE1B6165141555B1CBF8B2C55410E2EFCC9B7165141E1E7227F8C2C554148E17AB4B7165141E17A144E8E2C55419A9999F9B9165141F6285C2F962C554148E17A54BC165141EC51B89E9D2C5541DB5E7FD1BE165141DB762F8C9D2C5541DF2845BFC116514116CEFF1A9E2C5541B81E856BC21651413D0AD793A12C5541B2F050C8C516514173DA166FA02C55416180353CCC16514194F9E0E59E2C5541B46977ABCB165141B71DB0209E2C5541FD6ED491CA1651414C70C48D9A2C554118C49CF4C91651417A91A251982C5541E8B8AA3BC91651414758D20A972C55413D095BDCC716514153845E05942C5541E09AE07AC7165141D3BF02B4922C55415302102CC7165141D6BB5A3D912C55411A439CEFC61651412A1D81D88F2C55411CDD95F3C6165141E660AE0A8F2C55414EB5A52FC61651417248A16A8E2C554157B1AF4AC51651417784FC078D2C5541F235EB5EC41651419EE4D1288B2C55412A0FA0BBC316514194B5505E8A2C5541BD7F7BECC21651419FA7D926892C55413BDC8469C2165141FCBB1FF3872C5541EEB0628EC1165141FF54206F852C5541729475ACC1165141F1991DEC842C5541E39123C1C1165141BF4A2C7A832C55415EFC93E9C116514139DC6DAB822C55414147F7D9C11651416DFDC45B812C5541FDBF2B9EC11651410C042B5D802C55419660D83BC11651415019AA9F7F2C554113A964A6C0165141CB70F9A47E2C55416FE6DAC4BE1651414EAAE6907B2C554113E24145BD165141450B1FDD782C554150480BABBB16514179737B2C752C5541C71AE84BB9165141DAD70A5E6F2C5541F8709C45B5165141A78B5DBF6B2C5541B7E7C857B4165141C617534E6A2C554199ABBFDBAB1651411770638E6B2C55415CAEDA1CA8165141B434C5D66A2C55415F7307C9A71651413F51468B682C5541E27EF413AB16514110BCDC52682C5541359C9B18AE165141A48240BE672C554153C56A10B016514187099F78672C55418DA6ACDCB1165141F36EAD59672C5541F06B8A09B3165141FAE13576672C55417BAB6627B416514147C47E65672C554189A934D3B516514162E1C79F672C554173E45052B716514136A60AF8672C5541787E1D81B9165141A6935DDB682C5541097139AABA165141A9B0FDA3692C5541B2981D3EBB16514116D9E50B6A2C554199CAE745BC1651416CB416246B2C5541CFF8EC79BD165141AFA5C4376C2C55419144000BBE165141E0398A896D2C5541B363189FBE165141D99CB9896E2C554160FBDE4DBF165141DBE169ED6F2C5541736FE3CEBF165141D8A97FD5702C55417FC6724AC0165141DEED7AE5712C55415E8664D7C0165141D9919EF3722C55414267778AC1165141AED2C011742C5541B3BE7713C2165141625F3395752C5541E2317582C2165141F439DB3C762C554170ABD1B2C3165141BA52597A782C554144C009E8C31651417E685F047A2C5541511A421FC416514113711A127B2C554170EC65D1C4165141B4265CA17C2C5541AE47E19AC5165141CDCCCCDC7C2C5541EC51B8AEC8165141CDCCCC7C7C2C554152B81E15C7165141EC51B83E792C5541CA2A3531C61651417465E11F762C554189F891B0C5165141AA32C47C752C5541792CB5BAC5165141A4995D1D742C5541BE1BE8B0C5165141D4417A1A732C554102F7F9D6C61651411CD55A39712C55413E8C5D03C51651414C2DB56C6F2C55411B16C6B2C4165141023A40D56E2C55410FF9830AC3165141EF2184DD6C2C5541E2675B0BC3165141FE0C35426C2C5541F6EDCF2EC316514108FAB3446B2C55418D1FA379C2165141136FBA96682C5541C6970416C21651414033F703682C554116EC44F3C0165141F8D2E22F672C5541DD82FDB9BD165141C1987922652C5541B7459D72BC16514181A19315652C5541C6B3D284B81651415B6EC9C8642C554128DBD2C8B6165141CD228B36642C5541BCCF00F2B316514186D0BFF4642C554102AC7CF1B2165141F8E607D2642C5541BA8B44A9B0165141EEF50F66652C5541BD7ED991AF16514128A8FB4E652C55413FEB73D0AD1651411FACB153652C5541B854179AAD165141CAFE32FB642C5541B1B07793AA165141BB348592642C554119B9A6CBA71651416A1C1225652C5541111507C5A41651414462A8F1662C554197B191CEA2165141F3493584672C5541ADA14D99A0165141E47F871B672C55413064EF679D1651415FF96CD0662C554114AE47219D1651419A9999E9662C5541B83D10E09A1651411654682C662C55413A88E8D29A1651413906D529662C5541B573F48198165141BDF81221652C5541DDE6584B98165141048B3A12652C55414CD3B01F97165141C595C733652C5541E7CEAAF695165141F031DE21652C5541EE6B7BE8941651412BD46515652C55414CFADBAA9316514127A8FB4E652C5541924A293590165141D732600D652C55412CD285458F1651415ABCAE39652C5541DF0E571E8D165141FBF4F782642C5541082F65588A165141489CBCAC632C554125BB5AE788165141097BB48D622C5541AE947B5F8616514167DC1723622C55411B58D62F86165141B07AEA3A622C5541B7A40B978516514119861A8B622C5541BEF61A55851651419097953B632C5541E5C128798516514197980CBA642C5541A2EC0E7D851651413119AE36682C5541A6BF30AD85165141F267D5C56A2C5541B3015CDA85165141509DF06B6D2C5541BB26ACDC861651418984FDC3732C55416D98762F87165141FEA06EB3732C5541295C8F228716514185EB51B8742C5541AE47E11A8716514152B81E85752C5541B81E85CB85165141B81E857B7B2C5541E17A14DE84165141713D0AB77F2C55413D0AD7138316514114AE4741862C55419A9999E9811651418FC2F5288A2C5541713D0A77811651419A9999A98B2C554152B81ED58D165141C3F5281C8C2C554148E17AE4941651415C8FC2058C2C554185EB51C89B165141333333E38B2C5541E17A14BEA0165141F6285C3F8B2C5541B81E851BA01651417B14AEE7882C5541C3F5283CA0165141CDCCCCCC862C554185EB5128A11651415C8FC255852C55410AD7A380A216514185EB5188842C554114AE47E1A31651417B14AE47842C5541C3F5284CA51651410AD7A380842C5541713D0A77A6165141B81E855B852C554114AE4731A7165141295C8F62862C5541000000A0A7165141CDCCCCAC872C55419A9999B9A71651417B14AED7882C554185EB5168A716514114AE47218A2C55419A9999B9A6165141EC51B84E8B2C5541
+</a>
+
+<b>
+010600000001000000010300000001000000DF0000009A99997997165141000000D0572C55418FC2F52896165141AE47E1BA572C5541713D0A27941651418FC2F578572C55418FC2F56892165141AE47E1CA562C554152B81ED590165141D7A3709D592C55418FC2F5D88E1651410AD7A3E05B2C5541CDCCCC7C8D165141295C8F825B2C5541D7A3706D8C16514185EB51185C2C5541A4703D1A8A16514185EB51085E2C55417B14AE77871651413D0AD7035C2C55410AD7A35085165141666666A6582C5541C3F528BC82165141A4703DFA552C5541666666E67F165141713D0A074F2C5541F6285C2F8016514185EB51984B2C5541CDCCCCEC8116514114AE4711472C5541D7A3702D89165141B81E85FB482C5541F6285CEF8816514185EB5148462C5541EC51B8EE88165141666666E6422C5541D7A3702D89165141A4703DEA402C55415C8FC28589165141AE47E19A3F2C55410AD7A3408A16514185EB51D83D2C5541AE47E19A8B165141C3F528EC3A2C5541000000508D1651419A999969372C55417B14AE078F165141E17A148E342C55410AD7A390901651417B14AEA7322C5541B81E859B91165141B81E85BB312C5541A4703D8A93165141EC51B86E302C5541EC51B88E95165141AE47E13A2F2C55416666665699165141E17A147E2D2C5541CDCCCCEC9C1651418FC2F5782B2C55417B14AEE79B165141713D0AE72B2C5541EC51B83E96165141D7A3702D2E2C55417B14AE3794165141F6285C1F2F2C554114AE470192165141000000E02F2C554114AE47818E1651413D0AD7B3302C5541E17A14BE8C16514100000040312C55415C8FC2F58B165141D7A370AD312C5541B81E859B8A16514185EB5108332C5541B81E858B88165141EC51B8AE352C554133333303861651411F85EB21382C55411F85EB81841651411F85EBE1392C5541295C8F3284165141713D0A973B2C5541A4703DCA83165141333333933D2C5541A4703D6A82165141E17A141E412C554185EB51888116514166666696432C55410AD7A3A079165141713D0A37402C554152B81E057316514114AE47B13D2C5541713D0A4771165141666666063D2C5541E17A145E71165141E17A14CE3D2C5541F6285C9F711651419A9999C93E2C5541E17A145E711651410AD7A3A03F2C554100000040711651413D0AD7B3402C5541E17A145E71165141713D0A97412C5541333333F371165141000000B0422C5541A4703DFA7216514148E17A64442C55415C8FC2C573165141713D0A37462C554148E17AE474165141C3F5281C492C5541C3F5282C75165141333333534A2C5541EC51B80E75165141C3F528CC4B2C5541D7A3700D74165141CDCCCC2C4D2C5541CDCCCC4C721651415C8FC2754E2C55411F85EBF17016514114AE47414F2C5541EC51B83E70165141E17A141E502C55418FC2F5D86F165141F6285C7F512C5541713D0A976F165141CDCCCCBC532C5541333333D36F16514114AE47A1552C554148E17A4470165141C3F528CC562C55419A99996971165141CDCCCC5C582C5541EC51B88E7216514114AE47115A2C554185EB514873165141E17A147E5B2C55417B14AE7773165141295C8F325D2C5541C3F528DC72165141AE47E10A5F2C55410AD7A30072165141713D0A67612C55415C8FC2F570165141AE47E1BA622C55411F85EBE170165141A4703D7A632C554114AE47E1711651415C8FC275642C55417B14AE4773165141CDCCCC7C652C5541CDCCCC2C751651417B14AE47662C554152B81E35761651413D0AD783662C5541CDCCCC2C79165141D7A3707D662C554185EB51187C165141B81E856B662C55417B14AE677E1651415C8FC235662C5541B81E85CB7F165141CDCCCC7C652C554148E17A6481165141B81E851B642C5541A4703DEA8216514100000080622C5541295C8F528416514185EB5188612C5541F6285C5F861651417B14AED7602C55413D0AD7D3871651413D0AD7E3602C554152B81E5589165141295C8F62612C554148E17A648A165141CDCCCC0C622C55410AD7A3508C165141F6285C4F632C554148E17A648D165141B81E857B632C55417B14AED78E16514148E17AB4632C5541E17A14CE90165141E17A149E642C5541713D0A47921651413D0AD7E3642C55419A9999699416514148E17AA4642C55415C8FC2F595165141B81E858B642C5541D7A370CD97165141000000F0642C55413D0AD7E39916514114AE4781652C5541333333539C165141000000E0652C5541D7A3709D9E165141C3F5280C662C5541B81E856BA1165141713D0A97662C55410AD7A3A0A2165141666666B6662C5541666666D6A3165141D7A3707D662C554166666606A51651418FC2F5D8652C5541EC51B8EEA6165141333333A3642C5541E17A149EA8165141295C8FD2632C55418FC2F518AA165141C3F528CC632C5541713D0A47AD16514152B81E05642C554100000020AF16514114AE4731642C5541713D0AE7B016514152B81E25642C55417B14AEC7B21651419A9999B9632C5541F6285C9FB5165141D7A3705D622C554166666666B7165141EC51B8FE612C554148E17A94BA165141AE47E10A622C554152B81EC5BC1651413D0AD723622C5541E17A143EBE16514185EB51C8622C554185EB5108C01651418FC2F5B8632C554185EB5108C21651415C8FC285652C554114AE4791C31651410AD7A300672C554100000050C4165141EC51B8AE682C5541F6285CBFC4165141295C8F526B2C5541F6285C3FC5165141A4703DFA6C2C55418FC2F518C6165141F6285C2F6E2C554185EB5178C7165141C3F5282C6F2C554148E17AD4C71651415C8FC235702C5541000000C0C7165141A4703D2A722C55411F85EBA1C7165141713D0A07732C55411F85EBC1C7165141D7A370CD732C55418FC2F558C8165141EC51B8EE742C5541000000D0C916514152B81E25772C5541AE47E1EACA16514152B81E95782C554152B81EA5CC165141000000B07A2C5541C3F5282CCE165141F6285C7F7D2C554148E17A74CF165141C3F5281C802C55413D0AD7D3D016514100000080822C55415C8FC2A5D11651417B14AEB7832C554114AE47C1D21651418FC2F588842C554148E17AC4D41651419A9999F9852C554152B81E35D6165141C3F528DC862C554152B81E95D6165141A4703DCA872C5541D7A3701DD71651413D0AD7D3892C5541F6285C4FD81651415C8FC2258D2C5541EC51B87ED8165141B81E85AB8D2C554100000070D91651415C8FC255902C5541E17A145EDA165141333333F3912C554114AE47A1DB1651411F85EBF1922C554114AE47B1DC165141D7A3700D942C5541295C8F22DD1651410AD7A3B0952C55413D0AD793DD165141333333A3972C554166666616DE16514152B81E85992C55419A9999A9DE16514185EB51289B2C554152B81EC5DF1651418FC2F5E89B2C55418FC2F568E01651415C8FC2659C2C5541295C8FB2E01651417B14AEE79C2C55419A9999C9E0165141E17A14AE9D2C5541713D0A47E01651413D0AD7639E2C55410AD7A320DF1651410AD7A3409F2C5541F6285C9FDD16514152B81EE59F2C5541713D0A07DC1651415C8FC2F59F2C5541295C8FA2DA165141CDCCCC5C9F2C5541EC51B8AED9165141D7A370AD9E2C5541E17A144ED9165141D7A370AD9E2C55417B14AE37D9165141333333139F2C55419A999909DA16514152B81E05A22C5541295C8FE2DA165141B81E85FBA32C554185EB5178DB165141333333E3A32C5541CDCCCC2CDF1651418FC2F548A32C5541AE47E1AAE11651418FC2F5E8A02C55411F85EBB1EC165141713D0A67962C554114AE4741F4165141000000708F2C554185EB5118F216514114AE47C18D2C5541D7A370DDEB165141295C8F728C2C5541713D0A77EB165141CDCCCCEC8E2C5541EC51B84EE7165141C3F5283C912C55411F85EBB1E31651415C8FC215932C5541295C8FB2E0165141D7A3705D8F2C554148E17A64D9165141713D0A97852C5541CDCCCC5CDB165141333333A3822C554114AE47F1E2165141D7A370DD812C5541D7A3700DED16514100000090832C55411F85EBD1EE16514114AE47717F2C55418FC2F5F8F016514185EB51087D2C55413D0AD7A3F3165141C3F528DC7C2C55410AD7A350F51651411F85EBB1762C5541295C8FA2F416514166666606742C5541AE47E1EAF21651418FC2F588702C55418FC2F5C8F11651419A9999996F2C554152B81EF5EC16514185EB5168752C55418FC2F588E41651417B14AE476D2C5541A4703D6AD81651410AD7A360612C5541CDCCCC0CCD165141AE47E1CA582C5541C3F5284CBC165141F6285CBF502C55419A999949B3165141295C8F424E2C5541B81E853BAD165141CDCCCC0C4D2C5541E17A149EAE1651410AD7A330502C554133333373B6165141333333C3512C5541713D0AC7BC165141CDCCCC5C542C5541C3F5283CC4165141E17A146E582C554152B81E35C916514185EB51985B2C5541F6285C0FCB16514148E17A545D2C554148E17AE4C9165141000000A05F2C554100000070C8165141A4703DDA622C5541A4703DBAC8165141F6285C3F632C5541D7A3707DCB16514133333303672C5541F6285C8FCC1651410AD7A3B0682C55415C8FC265CD165141EC51B8FE692C5541C3F528ECCE1651411F85EB416D2C554114AE4711D01651419A999969702C55410AD7A300D11651411F85EBB1712C5541B81E854BD01651418FC2F588732C5541EC51B87ECC1651410AD7A3506E2C5541AE47E1AAC91651419A9999A96A2C55418FC2F5F8C7165141F6285CAF682C5541C3F528FCC5165141295C8FB2662C5541B81E85BBC11651418FC2F5F8622C5541A4703DAABD165141C3F528FC602C5541C3F5288CB916514148E17AF45F2C554114AE4791B1165141AE47E1AA602C554114AE4751A2165141B81E851B612C55415C8FC2559F1651417B14AE575F2C5541B81E853B961651413D0AD7C35F2C55419A99997997165141000000D0572C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>983391 - 1414443
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000980000009A9999B9A6165141EC51B84E8B2C5541E17A14AEAD165141713D0A778C2C55418B808A82B2165141110D53568D2C55417916AD0FB41651411808A32D8B2C55419DC64B3EB6165141CAA4E9448B2C5541500F3AE1B6165141555B1CBF8B2C55410E2EFCC9B7165141E1E7227F8C2C554148E17AB4B7165141E17A144E8E2C55419A9999F9B9165141F6285C2F962C554148E17A54BC165141EC51B89E9D2C5541DB5E7FD1BE165141DB762F8C9D2C5541DF2845BFC116514116CEFF1A9E2C5541B81E856BC21651413D0AD793A12C5541B2F050C8C516514173DA166FA02C55416180353CCC16514194F9E0E59E2C5541B46977ABCB165141B71DB0209E2C5541FD6ED491CA1651414C70C48D9A2C554118C49CF4C91651417A91A251982C5541E8B8AA3BC91651414758D20A972C55413D095BDCC716514153845E05942C5541E09AE07AC7165141D3BF02B4922C55415302102CC7165141D6BB5A3D912C55411A439CEFC61651412A1D81D88F2C55411CDD95F3C6165141E660AE0A8F2C55414EB5A52FC61651417248A16A8E2C554157B1AF4AC51651417784FC078D2C5541F235EB5EC41651419EE4D1288B2C55412A0FA0BBC316514194B5505E8A2C5541BD7F7BECC21651419FA7D926892C55413BDC8469C2165141FCBB1FF3872C5541EEB0628EC1165141FF54206F852C5541729475ACC1165141F1991DEC842C5541E39123C1C1165141BF4A2C7A832C55415EFC93E9C116514139DC6DAB822C55414147F7D9C11651416DFDC45B812C5541FDBF2B9EC11651410C042B5D802C55419660D83BC11651415019AA9F7F2C554113A964A6C0165141CB70F9A47E2C55416FE6DAC4BE1651414EAAE6907B2C554113E24145BD165141450B1FDD782C554150480BABBB16514179737B2C752C5541C71AE84BB9165141DAD70A5E6F2C5541F8709C45B5165141A78B5DBF6B2C5541B7E7C857B4165141C617534E6A2C554199ABBFDBAB1651411770638E6B2C55415CAEDA1CA8165141B434C5D66A2C55415F7307C9A71651413F51468B682C5541E27EF413AB16514110BCDC52682C5541359C9B18AE165141A48240BE672C554153C56A10B016514187099F78672C55418DA6ACDCB1165141F36EAD59672C5541F06B8A09B3165141FAE13576672C55417BAB6627B416514147C47E65672C554189A934D3B516514162E1C79F672C554173E45052B716514136A60AF8672C5541787E1D81B9165141A6935DDB682C5541097139AABA165141A9B0FDA3692C5541B2981D3EBB16514116D9E50B6A2C554199CAE745BC1651416CB416246B2C5541CFF8EC79BD165141AFA5C4376C2C55419144000BBE165141E0398A896D2C5541B363189FBE165141D99CB9896E2C554160FBDE4DBF165141DBE169ED6F2C5541736FE3CEBF165141D8A97FD5702C55417FC6724AC0165141DEED7AE5712C55415E8664D7C0165141D9919EF3722C55414267778AC1165141AED2C011742C5541B3BE7713C2165141625F3395752C5541E2317582C2165141F439DB3C762C554170ABD1B2C3165141BA52597A782C554144C009E8C31651417E685F047A2C5541511A421FC416514113711A127B2C554170EC65D1C4165141B4265CA17C2C5541AE47E19AC5165141CDCCCCDC7C2C5541EC51B8AEC8165141CDCCCC7C7C2C554152B81E15C7165141EC51B83E792C5541CA2A3531C61651417465E11F762C554189F891B0C5165141AA32C47C752C5541792CB5BAC5165141A4995D1D742C5541BE1BE8B0C5165141D4417A1A732C554102F7F9D6C61651411CD55A39712C55413E8C5D03C51651414C2DB56C6F2C55411B16C6B2C4165141023A40D56E2C55410FF9830AC3165141EF2184DD6C2C5541E2675B0BC3165141FE0C35426C2C5541F6EDCF2EC316514108FAB3446B2C55418D1FA379C2165141136FBA96682C5541C6970416C21651414033F703682C554116EC44F3C0165141F8D2E22F672C5541DD82FDB9BD165141C1987922652C5541B7459D72BC16514181A19315652C5541C6B3D284B81651415B6EC9C8642C554128DBD2C8B6165141CD228B36642C5541BCCF00F2B316514186D0BFF4642C554102AC7CF1B2165141F8E607D2642C5541BA8B44A9B0165141EEF50F66652C5541BD7ED991AF16514128A8FB4E652C55413FEB73D0AD1651411FACB153652C5541B854179AAD165141CAFE32FB642C5541B1B07793AA165141BB348592642C554119B9A6CBA71651416A1C1225652C5541111507C5A41651414462A8F1662C554197B191CEA2165141F3493584672C5541ADA14D99A0165141E47F871B672C55413064EF679D1651415FF96CD0662C554114AE47219D1651419A9999E9662C5541B83D10E09A1651411654682C662C55413A88E8D29A1651413906D529662C5541B573F48198165141BDF81221652C5541DDE6584B98165141048B3A12652C55414CD3B01F97165141C595C733652C5541E7CEAAF695165141F031DE21652C5541EE6B7BE8941651412BD46515652C55414CFADBAA9316514127A8FB4E652C5541924A293590165141D732600D652C55412CD285458F1651415ABCAE39652C5541DF0E571E8D165141FBF4F782642C5541082F65588A165141489CBCAC632C554125BB5AE788165141097BB48D622C5541AE947B5F8616514167DC1723622C55411B58D62F86165141B07AEA3A622C5541B7A40B978516514119861A8B622C5541BEF61A55851651419097953B632C5541E5C128798516514197980CBA642C5541A2EC0E7D851651413119AE36682C5541A6BF30AD85165141F267D5C56A2C5541B3015CDA85165141509DF06B6D2C5541BB26ACDC861651418984FDC3732C55416D98762F87165141FEA06EB3732C5541295C8F228716514185EB51B8742C5541AE47E11A8716514152B81E85752C5541B81E85CB85165141B81E857B7B2C5541E17A14DE84165141713D0AB77F2C55413D0AD7138316514114AE4741862C55419A9999E9811651418FC2F5288A2C5541713D0A77811651419A9999A98B2C554152B81ED58D165141C3F5281C8C2C554148E17AE4941651415C8FC2058C2C554185EB51C89B165141333333E38B2C5541E17A14BEA0165141F6285C3F8B2C5541B81E851BA01651417B14AEE7882C5541C3F5283CA0165141CDCCCCCC862C554185EB5128A11651415C8FC255852C55410AD7A380A216514185EB5188842C554114AE47E1A31651417B14AE47842C5541C3F5284CA51651410AD7A380842C5541713D0A77A6165141B81E855B852C554114AE4731A7165141295C8F62862C5541000000A0A7165141CDCCCCAC872C55419A9999B9A71651417B14AED7882C554185EB5168A716514114AE47218A2C55419A9999B9A6165141EC51B84E8B2C5541
+</a>
+
+<b>
+010600000001000000010300000001000000DF0000009A99997997165141000000D0572C55418FC2F52896165141AE47E1BA572C5541713D0A27941651418FC2F578572C55418FC2F56892165141AE47E1CA562C554152B81ED590165141D7A3709D592C55418FC2F5D88E1651410AD7A3E05B2C5541CDCCCC7C8D165141295C8F825B2C5541D7A3706D8C16514185EB51185C2C5541A4703D1A8A16514185EB51085E2C55417B14AE77871651413D0AD7035C2C55410AD7A35085165141666666A6582C5541C3F528BC82165141A4703DFA552C5541666666E67F165141713D0A074F2C5541F6285C2F8016514185EB51984B2C5541CDCCCCEC8116514114AE4711472C5541D7A3702D89165141B81E85FB482C5541F6285CEF8816514185EB5148462C5541EC51B8EE88165141666666E6422C5541D7A3702D89165141A4703DEA402C55415C8FC28589165141AE47E19A3F2C55410AD7A3408A16514185EB51D83D2C5541AE47E19A8B165141C3F528EC3A2C5541000000508D1651419A999969372C55417B14AE078F165141E17A148E342C55410AD7A390901651417B14AEA7322C5541B81E859B91165141B81E85BB312C5541A4703D8A93165141EC51B86E302C5541EC51B88E95165141AE47E13A2F2C55416666665699165141E17A147E2D2C5541CDCCCCEC9C1651418FC2F5782B2C55417B14AEE79B165141713D0AE72B2C5541EC51B83E96165141D7A3702D2E2C55417B14AE3794165141F6285C1F2F2C554114AE470192165141000000E02F2C554114AE47818E1651413D0AD7B3302C5541E17A14BE8C16514100000040312C55415C8FC2F58B165141D7A370AD312C5541B81E859B8A16514185EB5108332C5541B81E858B88165141EC51B8AE352C554133333303861651411F85EB21382C55411F85EB81841651411F85EBE1392C5541295C8F3284165141713D0A973B2C5541A4703DCA83165141333333933D2C5541A4703D6A82165141E17A141E412C554185EB51888116514166666696432C55410AD7A3A079165141713D0A37402C554152B81E057316514114AE47B13D2C5541713D0A4771165141666666063D2C5541E17A145E71165141E17A14CE3D2C5541F6285C9F711651419A9999C93E2C5541E17A145E711651410AD7A3A03F2C554100000040711651413D0AD7B3402C5541E17A145E71165141713D0A97412C5541333333F371165141000000B0422C5541A4703DFA7216514148E17A64442C55415C8FC2C573165141713D0A37462C554148E17AE474165141C3F5281C492C5541C3F5282C75165141333333534A2C5541EC51B80E75165141C3F528CC4B2C5541D7A3700D74165141CDCCCC2C4D2C5541CDCCCC4C721651415C8FC2754E2C55411F85EBF17016514114AE47414F2C5541EC51B83E70165141E17A141E502C55418FC2F5D86F165141F6285C7F512C5541713D0A976F165141CDCCCCBC532C5541333333D36F16514114AE47A1552C554148E17A4470165141C3F528CC562C55419A99996971165141CDCCCC5C582C5541EC51B88E7216514114AE47115A2C554185EB514873165141E17A147E5B2C55417B14AE7773165141295C8F325D2C5541C3F528DC72165141AE47E10A5F2C55410AD7A30072165141713D0A67612C55415C8FC2F570165141AE47E1BA622C55411F85EBE170165141A4703D7A632C554114AE47E1711651415C8FC275642C55417B14AE4773165141CDCCCC7C652C5541CDCCCC2C751651417B14AE47662C554152B81E35761651413D0AD783662C5541CDCCCC2C79165141D7A3707D662C554185EB51187C165141B81E856B662C55417B14AE677E1651415C8FC235662C5541B81E85CB7F165141CDCCCC7C652C554148E17A6481165141B81E851B642C5541A4703DEA8216514100000080622C5541295C8F528416514185EB5188612C5541F6285C5F861651417B14AED7602C55413D0AD7D3871651413D0AD7E3602C554152B81E5589165141295C8F62612C554148E17A648A165141CDCCCC0C622C55410AD7A3508C165141F6285C4F632C554148E17A648D165141B81E857B632C55417B14AED78E16514148E17AB4632C5541E17A14CE90165141E17A149E642C5541713D0A47921651413D0AD7E3642C55419A9999699416514148E17AA4642C55415C8FC2F595165141B81E858B642C5541D7A370CD97165141000000F0642C55413D0AD7E39916514114AE4781652C5541333333539C165141000000E0652C5541D7A3709D9E165141C3F5280C662C5541B81E856BA1165141713D0A97662C55410AD7A3A0A2165141666666B6662C5541666666D6A3165141D7A3707D662C554166666606A51651418FC2F5D8652C5541EC51B8EEA6165141333333A3642C5541E17A149EA8165141295C8FD2632C55418FC2F518AA165141C3F528CC632C5541713D0A47AD16514152B81E05642C554100000020AF16514114AE4731642C5541713D0AE7B016514152B81E25642C55417B14AEC7B21651419A9999B9632C5541F6285C9FB5165141D7A3705D622C554166666666B7165141EC51B8FE612C554148E17A94BA165141AE47E10A622C554152B81EC5BC1651413D0AD723622C5541E17A143EBE16514185EB51C8622C554185EB5108C01651418FC2F5B8632C554185EB5108C21651415C8FC285652C554114AE4791C31651410AD7A300672C554100000050C4165141EC51B8AE682C5541F6285CBFC4165141295C8F526B2C5541F6285C3FC5165141A4703DFA6C2C55418FC2F518C6165141F6285C2F6E2C554185EB5178C7165141C3F5282C6F2C554148E17AD4C71651415C8FC235702C5541000000C0C7165141A4703D2A722C55411F85EBA1C7165141713D0A07732C55411F85EBC1C7165141D7A370CD732C55418FC2F558C8165141EC51B8EE742C5541000000D0C916514152B81E25772C5541AE47E1EACA16514152B81E95782C554152B81EA5CC165141000000B07A2C5541C3F5282CCE165141F6285C7F7D2C554148E17A74CF165141C3F5281C802C55413D0AD7D3D016514100000080822C55415C8FC2A5D11651417B14AEB7832C554114AE47C1D21651418FC2F588842C554148E17AC4D41651419A9999F9852C554152B81E35D6165141C3F528DC862C554152B81E95D6165141A4703DCA872C5541D7A3701DD71651413D0AD7D3892C5541F6285C4FD81651415C8FC2258D2C5541EC51B87ED8165141B81E85AB8D2C554100000070D91651415C8FC255902C5541E17A145EDA165141333333F3912C554114AE47A1DB1651411F85EBF1922C554114AE47B1DC165141D7A3700D942C5541295C8F22DD1651410AD7A3B0952C55413D0AD793DD165141333333A3972C554166666616DE16514152B81E85992C55419A9999A9DE16514185EB51289B2C554152B81EC5DF1651418FC2F5E89B2C55418FC2F568E01651415C8FC2659C2C5541295C8FB2E01651417B14AEE79C2C55419A9999C9E0165141E17A14AE9D2C5541713D0A47E01651413D0AD7639E2C55410AD7A320DF1651410AD7A3409F2C5541F6285C9FDD16514152B81EE59F2C5541713D0A07DC1651415C8FC2F59F2C5541295C8FA2DA165141CDCCCC5C9F2C5541EC51B8AED9165141D7A370AD9E2C5541E17A144ED9165141D7A370AD9E2C55417B14AE37D9165141333333139F2C55419A999909DA16514152B81E05A22C5541295C8FE2DA165141B81E85FBA32C554185EB5178DB165141333333E3A32C5541CDCCCC2CDF1651418FC2F548A32C5541AE47E1AAE11651418FC2F5E8A02C55411F85EBB1EC165141713D0A67962C554114AE4741F4165141000000708F2C554185EB5118F216514114AE47C18D2C5541D7A370DDEB165141295C8F728C2C5541713D0A77EB165141CDCCCCEC8E2C5541EC51B84EE7165141C3F5283C912C55411F85EBB1E31651415C8FC215932C5541295C8FB2E0165141D7A3705D8F2C554148E17A64D9165141713D0A97852C5541CDCCCC5CDB165141333333A3822C554114AE47F1E2165141D7A370DD812C5541D7A3700DED16514100000090832C55411F85EBD1EE16514114AE47717F2C55418FC2F5F8F016514185EB51087D2C55413D0AD7A3F3165141C3F528DC7C2C55410AD7A350F51651411F85EBB1762C5541295C8FA2F416514166666606742C5541AE47E1EAF21651418FC2F588702C55418FC2F5C8F11651419A9999996F2C554152B81EF5EC16514185EB5168752C55418FC2F588E41651417B14AE476D2C5541A4703D6AD81651410AD7A360612C5541CDCCCC0CCD165141AE47E1CA582C5541C3F5284CBC165141F6285CBF502C55419A999949B3165141295C8F424E2C5541B81E853BAD165141CDCCCC0C4D2C5541E17A149EAE1651410AD7A330502C554133333373B6165141333333C3512C5541713D0AC7BC165141CDCCCC5C542C5541C3F5283CC4165141E17A146E582C554152B81E35C916514185EB51985B2C5541F6285C0FCB16514148E17A545D2C554148E17AE4C9165141000000A05F2C554100000070C8165141A4703DDA622C5541A4703DBAC8165141F6285C3F632C5541D7A3707DCB16514133333303672C5541F6285C8FCC1651410AD7A3B0682C55415C8FC265CD165141EC51B8FE692C5541C3F528ECCE1651411F85EB416D2C554114AE4711D01651419A999969702C55410AD7A300D11651411F85EBB1712C5541B81E854BD01651418FC2F588732C5541EC51B87ECC1651410AD7A3506E2C5541AE47E1AAC91651419A9999A96A2C55418FC2F5F8C7165141F6285CAF682C5541C3F528FCC5165141295C8FB2662C5541B81E85BBC11651418FC2F5F8622C5541A4703DAABD165141C3F528FC602C5541C3F5288CB916514148E17AF45F2C554114AE4791B1165141AE47E1AA602C554114AE4751A2165141B81E851B612C55415C8FC2559F1651417B14AE575F2C5541B81E853B961651413D0AD7C35F2C55419A99997997165141000000D0572C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>983391 - 3210130
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000980000009A9999B9A6165141EC51B84E8B2C5541E17A14AEAD165141713D0A778C2C55418B808A82B2165141110D53568D2C55417916AD0FB41651411808A32D8B2C55419DC64B3EB6165141CAA4E9448B2C5541500F3AE1B6165141555B1CBF8B2C55410E2EFCC9B7165141E1E7227F8C2C554148E17AB4B7165141E17A144E8E2C55419A9999F9B9165141F6285C2F962C554148E17A54BC165141EC51B89E9D2C5541DB5E7FD1BE165141DB762F8C9D2C5541DF2845BFC116514116CEFF1A9E2C5541B81E856BC21651413D0AD793A12C5541B2F050C8C516514173DA166FA02C55416180353CCC16514194F9E0E59E2C5541B46977ABCB165141B71DB0209E2C5541FD6ED491CA1651414C70C48D9A2C554118C49CF4C91651417A91A251982C5541E8B8AA3BC91651414758D20A972C55413D095BDCC716514153845E05942C5541E09AE07AC7165141D3BF02B4922C55415302102CC7165141D6BB5A3D912C55411A439CEFC61651412A1D81D88F2C55411CDD95F3C6165141E660AE0A8F2C55414EB5A52FC61651417248A16A8E2C554157B1AF4AC51651417784FC078D2C5541F235EB5EC41651419EE4D1288B2C55412A0FA0BBC316514194B5505E8A2C5541BD7F7BECC21651419FA7D926892C55413BDC8469C2165141FCBB1FF3872C5541EEB0628EC1165141FF54206F852C5541729475ACC1165141F1991DEC842C5541E39123C1C1165141BF4A2C7A832C55415EFC93E9C116514139DC6DAB822C55414147F7D9C11651416DFDC45B812C5541FDBF2B9EC11651410C042B5D802C55419660D83BC11651415019AA9F7F2C554113A964A6C0165141CB70F9A47E2C55416FE6DAC4BE1651414EAAE6907B2C554113E24145BD165141450B1FDD782C554150480BABBB16514179737B2C752C5541C71AE84BB9165141DAD70A5E6F2C5541F8709C45B5165141A78B5DBF6B2C5541B7E7C857B4165141C617534E6A2C554199ABBFDBAB1651411770638E6B2C55415CAEDA1CA8165141B434C5D66A2C55415F7307C9A71651413F51468B682C5541E27EF413AB16514110BCDC52682C5541359C9B18AE165141A48240BE672C554153C56A10B016514187099F78672C55418DA6ACDCB1165141F36EAD59672C5541F06B8A09B3165141FAE13576672C55417BAB6627B416514147C47E65672C554189A934D3B516514162E1C79F672C554173E45052B716514136A60AF8672C5541787E1D81B9165141A6935DDB682C5541097139AABA165141A9B0FDA3692C5541B2981D3EBB16514116D9E50B6A2C554199CAE745BC1651416CB416246B2C5541CFF8EC79BD165141AFA5C4376C2C55419144000BBE165141E0398A896D2C5541B363189FBE165141D99CB9896E2C554160FBDE4DBF165141DBE169ED6F2C5541736FE3CEBF165141D8A97FD5702C55417FC6724AC0165141DEED7AE5712C55415E8664D7C0165141D9919EF3722C55414267778AC1165141AED2C011742C5541B3BE7713C2165141625F3395752C5541E2317582C2165141F439DB3C762C554170ABD1B2C3165141BA52597A782C554144C009E8C31651417E685F047A2C5541511A421FC416514113711A127B2C554170EC65D1C4165141B4265CA17C2C5541AE47E19AC5165141CDCCCCDC7C2C5541EC51B8AEC8165141CDCCCC7C7C2C554152B81E15C7165141EC51B83E792C5541CA2A3531C61651417465E11F762C554189F891B0C5165141AA32C47C752C5541792CB5BAC5165141A4995D1D742C5541BE1BE8B0C5165141D4417A1A732C554102F7F9D6C61651411CD55A39712C55413E8C5D03C51651414C2DB56C6F2C55411B16C6B2C4165141023A40D56E2C55410FF9830AC3165141EF2184DD6C2C5541E2675B0BC3165141FE0C35426C2C5541F6EDCF2EC316514108FAB3446B2C55418D1FA379C2165141136FBA96682C5541C6970416C21651414033F703682C554116EC44F3C0165141F8D2E22F672C5541DD82FDB9BD165141C1987922652C5541B7459D72BC16514181A19315652C5541C6B3D284B81651415B6EC9C8642C554128DBD2C8B6165141CD228B36642C5541BCCF00F2B316514186D0BFF4642C554102AC7CF1B2165141F8E607D2642C5541BA8B44A9B0165141EEF50F66652C5541BD7ED991AF16514128A8FB4E652C55413FEB73D0AD1651411FACB153652C5541B854179AAD165141CAFE32FB642C5541B1B07793AA165141BB348592642C554119B9A6CBA71651416A1C1225652C5541111507C5A41651414462A8F1662C554197B191CEA2165141F3493584672C5541ADA14D99A0165141E47F871B672C55413064EF679D1651415FF96CD0662C554114AE47219D1651419A9999E9662C5541B83D10E09A1651411654682C662C55413A88E8D29A1651413906D529662C5541B573F48198165141BDF81221652C5541DDE6584B98165141048B3A12652C55414CD3B01F97165141C595C733652C5541E7CEAAF695165141F031DE21652C5541EE6B7BE8941651412BD46515652C55414CFADBAA9316514127A8FB4E652C5541924A293590165141D732600D652C55412CD285458F1651415ABCAE39652C5541DF0E571E8D165141FBF4F782642C5541082F65588A165141489CBCAC632C554125BB5AE788165141097BB48D622C5541AE947B5F8616514167DC1723622C55411B58D62F86165141B07AEA3A622C5541B7A40B978516514119861A8B622C5541BEF61A55851651419097953B632C5541E5C128798516514197980CBA642C5541A2EC0E7D851651413119AE36682C5541A6BF30AD85165141F267D5C56A2C5541B3015CDA85165141509DF06B6D2C5541BB26ACDC861651418984FDC3732C55416D98762F87165141FEA06EB3732C5541295C8F228716514185EB51B8742C5541AE47E11A8716514152B81E85752C5541B81E85CB85165141B81E857B7B2C5541E17A14DE84165141713D0AB77F2C55413D0AD7138316514114AE4741862C55419A9999E9811651418FC2F5288A2C5541713D0A77811651419A9999A98B2C554152B81ED58D165141C3F5281C8C2C554148E17AE4941651415C8FC2058C2C554185EB51C89B165141333333E38B2C5541E17A14BEA0165141F6285C3F8B2C5541B81E851BA01651417B14AEE7882C5541C3F5283CA0165141CDCCCCCC862C554185EB5128A11651415C8FC255852C55410AD7A380A216514185EB5188842C554114AE47E1A31651417B14AE47842C5541C3F5284CA51651410AD7A380842C5541713D0A77A6165141B81E855B852C554114AE4731A7165141295C8F62862C5541000000A0A7165141CDCCCCAC872C55419A9999B9A71651417B14AED7882C554185EB5168A716514114AE47218A2C55419A9999B9A6165141EC51B84E8B2C5541
+</a>
+
+<b>
+010600000001000000010300000001000000DF0000009A99997997165141000000D0572C55418FC2F52896165141AE47E1BA572C5541713D0A27941651418FC2F578572C55418FC2F56892165141AE47E1CA562C554152B81ED590165141D7A3709D592C55418FC2F5D88E1651410AD7A3E05B2C5541CDCCCC7C8D165141295C8F825B2C5541D7A3706D8C16514185EB51185C2C5541A4703D1A8A16514185EB51085E2C55417B14AE77871651413D0AD7035C2C55410AD7A35085165141666666A6582C5541C3F528BC82165141A4703DFA552C5541666666E67F165141713D0A074F2C5541F6285C2F8016514185EB51984B2C5541CDCCCCEC8116514114AE4711472C5541D7A3702D89165141B81E85FB482C5541F6285CEF8816514185EB5148462C5541EC51B8EE88165141666666E6422C5541D7A3702D89165141A4703DEA402C55415C8FC28589165141AE47E19A3F2C55410AD7A3408A16514185EB51D83D2C5541AE47E19A8B165141C3F528EC3A2C5541000000508D1651419A999969372C55417B14AE078F165141E17A148E342C55410AD7A390901651417B14AEA7322C5541B81E859B91165141B81E85BB312C5541A4703D8A93165141EC51B86E302C5541EC51B88E95165141AE47E13A2F2C55416666665699165141E17A147E2D2C5541CDCCCCEC9C1651418FC2F5782B2C55417B14AEE79B165141713D0AE72B2C5541EC51B83E96165141D7A3702D2E2C55417B14AE3794165141F6285C1F2F2C554114AE470192165141000000E02F2C554114AE47818E1651413D0AD7B3302C5541E17A14BE8C16514100000040312C55415C8FC2F58B165141D7A370AD312C5541B81E859B8A16514185EB5108332C5541B81E858B88165141EC51B8AE352C554133333303861651411F85EB21382C55411F85EB81841651411F85EBE1392C5541295C8F3284165141713D0A973B2C5541A4703DCA83165141333333933D2C5541A4703D6A82165141E17A141E412C554185EB51888116514166666696432C55410AD7A3A079165141713D0A37402C554152B81E057316514114AE47B13D2C5541713D0A4771165141666666063D2C5541E17A145E71165141E17A14CE3D2C5541F6285C9F711651419A9999C93E2C5541E17A145E711651410AD7A3A03F2C554100000040711651413D0AD7B3402C5541E17A145E71165141713D0A97412C5541333333F371165141000000B0422C5541A4703DFA7216514148E17A64442C55415C8FC2C573165141713D0A37462C554148E17AE474165141C3F5281C492C5541C3F5282C75165141333333534A2C5541EC51B80E75165141C3F528CC4B2C5541D7A3700D74165141CDCCCC2C4D2C5541CDCCCC4C721651415C8FC2754E2C55411F85EBF17016514114AE47414F2C5541EC51B83E70165141E17A141E502C55418FC2F5D86F165141F6285C7F512C5541713D0A976F165141CDCCCCBC532C5541333333D36F16514114AE47A1552C554148E17A4470165141C3F528CC562C55419A99996971165141CDCCCC5C582C5541EC51B88E7216514114AE47115A2C554185EB514873165141E17A147E5B2C55417B14AE7773165141295C8F325D2C5541C3F528DC72165141AE47E10A5F2C55410AD7A30072165141713D0A67612C55415C8FC2F570165141AE47E1BA622C55411F85EBE170165141A4703D7A632C554114AE47E1711651415C8FC275642C55417B14AE4773165141CDCCCC7C652C5541CDCCCC2C751651417B14AE47662C554152B81E35761651413D0AD783662C5541CDCCCC2C79165141D7A3707D662C554185EB51187C165141B81E856B662C55417B14AE677E1651415C8FC235662C5541B81E85CB7F165141CDCCCC7C652C554148E17A6481165141B81E851B642C5541A4703DEA8216514100000080622C5541295C8F528416514185EB5188612C5541F6285C5F861651417B14AED7602C55413D0AD7D3871651413D0AD7E3602C554152B81E5589165141295C8F62612C554148E17A648A165141CDCCCC0C622C55410AD7A3508C165141F6285C4F632C554148E17A648D165141B81E857B632C55417B14AED78E16514148E17AB4632C5541E17A14CE90165141E17A149E642C5541713D0A47921651413D0AD7E3642C55419A9999699416514148E17AA4642C55415C8FC2F595165141B81E858B642C5541D7A370CD97165141000000F0642C55413D0AD7E39916514114AE4781652C5541333333539C165141000000E0652C5541D7A3709D9E165141C3F5280C662C5541B81E856BA1165141713D0A97662C55410AD7A3A0A2165141666666B6662C5541666666D6A3165141D7A3707D662C554166666606A51651418FC2F5D8652C5541EC51B8EEA6165141333333A3642C5541E17A149EA8165141295C8FD2632C55418FC2F518AA165141C3F528CC632C5541713D0A47AD16514152B81E05642C554100000020AF16514114AE4731642C5541713D0AE7B016514152B81E25642C55417B14AEC7B21651419A9999B9632C5541F6285C9FB5165141D7A3705D622C554166666666B7165141EC51B8FE612C554148E17A94BA165141AE47E10A622C554152B81EC5BC1651413D0AD723622C5541E17A143EBE16514185EB51C8622C554185EB5108C01651418FC2F5B8632C554185EB5108C21651415C8FC285652C554114AE4791C31651410AD7A300672C554100000050C4165141EC51B8AE682C5541F6285CBFC4165141295C8F526B2C5541F6285C3FC5165141A4703DFA6C2C55418FC2F518C6165141F6285C2F6E2C554185EB5178C7165141C3F5282C6F2C554148E17AD4C71651415C8FC235702C5541000000C0C7165141A4703D2A722C55411F85EBA1C7165141713D0A07732C55411F85EBC1C7165141D7A370CD732C55418FC2F558C8165141EC51B8EE742C5541000000D0C916514152B81E25772C5541AE47E1EACA16514152B81E95782C554152B81EA5CC165141000000B07A2C5541C3F5282CCE165141F6285C7F7D2C554148E17A74CF165141C3F5281C802C55413D0AD7D3D016514100000080822C55415C8FC2A5D11651417B14AEB7832C554114AE47C1D21651418FC2F588842C554148E17AC4D41651419A9999F9852C554152B81E35D6165141C3F528DC862C554152B81E95D6165141A4703DCA872C5541D7A3701DD71651413D0AD7D3892C5541F6285C4FD81651415C8FC2258D2C5541EC51B87ED8165141B81E85AB8D2C554100000070D91651415C8FC255902C5541E17A145EDA165141333333F3912C554114AE47A1DB1651411F85EBF1922C554114AE47B1DC165141D7A3700D942C5541295C8F22DD1651410AD7A3B0952C55413D0AD793DD165141333333A3972C554166666616DE16514152B81E85992C55419A9999A9DE16514185EB51289B2C554152B81EC5DF1651418FC2F5E89B2C55418FC2F568E01651415C8FC2659C2C5541295C8FB2E01651417B14AEE79C2C55419A9999C9E0165141E17A14AE9D2C5541713D0A47E01651413D0AD7639E2C55410AD7A320DF1651410AD7A3409F2C5541F6285C9FDD16514152B81EE59F2C5541713D0A07DC1651415C8FC2F59F2C5541295C8FA2DA165141CDCCCC5C9F2C5541EC51B8AED9165141D7A370AD9E2C5541E17A144ED9165141D7A370AD9E2C55417B14AE37D9165141333333139F2C55419A999909DA16514152B81E05A22C5541295C8FE2DA165141B81E85FBA32C554185EB5178DB165141333333E3A32C5541CDCCCC2CDF1651418FC2F548A32C5541AE47E1AAE11651418FC2F5E8A02C55411F85EBB1EC165141713D0A67962C554114AE4741F4165141000000708F2C554185EB5118F216514114AE47C18D2C5541D7A370DDEB165141295C8F728C2C5541713D0A77EB165141CDCCCCEC8E2C5541EC51B84EE7165141C3F5283C912C55411F85EBB1E31651415C8FC215932C5541295C8FB2E0165141D7A3705D8F2C554148E17A64D9165141713D0A97852C5541CDCCCC5CDB165141333333A3822C554114AE47F1E2165141D7A370DD812C5541D7A3700DED16514100000090832C55411F85EBD1EE16514114AE47717F2C55418FC2F5F8F016514185EB51087D2C55413D0AD7A3F3165141C3F528DC7C2C55410AD7A350F51651411F85EBB1762C5541295C8FA2F416514166666606742C5541AE47E1EAF21651418FC2F588702C55418FC2F5C8F11651419A9999996F2C554152B81EF5EC16514185EB5168752C55418FC2F588E41651417B14AE476D2C5541A4703D6AD81651410AD7A360612C5541CDCCCC0CCD165141AE47E1CA582C5541C3F5284CBC165141F6285CBF502C55419A999949B3165141295C8F424E2C5541B81E853BAD165141CDCCCC0C4D2C5541E17A149EAE1651410AD7A330502C554133333373B6165141333333C3512C5541713D0AC7BC165141CDCCCC5C542C5541C3F5283CC4165141E17A146E582C554152B81E35C916514185EB51985B2C5541F6285C0FCB16514148E17A545D2C554148E17AE4C9165141000000A05F2C554100000070C8165141A4703DDA622C5541A4703DBAC8165141F6285C3F632C5541D7A3707DCB16514133333303672C5541F6285C8FCC1651410AD7A3B0682C55415C8FC265CD165141EC51B8FE692C5541C3F528ECCE1651411F85EB416D2C554114AE4711D01651419A999969702C55410AD7A300D11651411F85EBB1712C5541B81E854BD01651418FC2F588732C5541EC51B87ECC1651410AD7A3506E2C5541AE47E1AAC91651419A9999A96A2C55418FC2F5F8C7165141F6285CAF682C5541C3F528FCC5165141295C8FB2662C5541B81E85BBC11651418FC2F5F8622C5541A4703DAABD165141C3F528FC602C5541C3F5288CB916514148E17AF45F2C554114AE4791B1165141AE47E1AA602C554114AE4751A2165141B81E851B612C55415C8FC2559F1651417B14AE575F2C5541B81E853B961651413D0AD7C35F2C55419A99997997165141000000D0572C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>983796 - 54011
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000270000001B75E7977FAC504118D0A7574659554116D594837FAC5041EB9A76F346595541B4EC177F7FAC50416684C36247595541993952577FAC50415598CA46485955413B1C5A4D7FAC5041D0CE389348595541168D96677EAC5041D6DB42A54D5955415330550A7EAC50418CCDECBB4F595541AD398E2581AC504175FEB71048595541CDE000DB80AC504152B58EB73F595541FB9991E27FAC504102B3FF7037595541B912655280AC504184A971292B59554162FF987C81AC5041C487B47B255955413DAD6DDD83AC5041BEFB041121595541BD9E14BD84AC504138444A451F59554152CA0FF97CAC5041F3F609C91E595541443EE8207BAC50415796FD761F595541328118FE78AC5041A0B0E1F1205955419E8B187876AC5041E89F7B9926595541A0DC83D174AC5041A452989529595541F6D848CF71AC5041D79F8BBE2B59554177E7A1EF70AC5041798C477B2F5955412219F49871AC5041BD6DA29D2F5955418F207F4B74AC50416CEB2825305955416D08931476AC5041BF0DEC452D59554138FB0CAC79AC504155C3532827595541364883527BAC504106340FBB245955417D243E667FAC5041F30691B3255955415103D7027FAC5041C7C0759F2B59554196FA9D347FAC50415991329E2C5955415BC3CC027FAC504199DB8E3F32595541327903047FAC50414BCBAB7E3259554188CBB01B7FAC50418F4DDC833259554188CBB01B7FAC50413712004C375955414A4B2D377FAC5041FB20DED83759554132FCA0B07FAC50419D0B4F473A5955412AD658FB7FAC5041288046593B595541FCCD74E27FAC50419DE490C23D595541FCCD74E27FAC5041B24C7A8E425955411B75E7977FAC504118D0A75746595541
+</a>
+
+<b>
+0106000000010000000103000000010000003F000000474B2D377FAC5041FD20DED83759554165D0A0AD7FAC50412C2BEE373A5955412FFCA0B07FAC5041A10B4F473A59554125D658FB7FAC50412D8046593B595541E2B3B7ED7FAC5041620549AB3C59554113B8B7F17FAC5041CA705BD33C595541FDCD74E27FAC50419FE490C23D595541FDCD74E27FAC504144F9216F3E59554159098AE47FAC504147BF056742595541FDCD74E27FAC50410775598842595541FDCD74E27FAC5041AD4C7A8E4259554171DB69E07FAC5041F49D08A942595541BDDD37B47FAC50411B79286C455955418292219D7FAC5041E151B413465955411A75E7977FAC504113D0A7574659554119D594837FAC5041E79A76F346595541B1EC177F7FAC50416484C362475955419E3952577FAC50415598CA4648595541361C5A4D7FAC5041D4CE38934859554140A9B0277FAC5041EAACFD6749595541B13B781A7FAC5041DEF3EEC7495955414F7FCE1D7EAC5041035E464C4F595541F5A505107EAC50415E6F4E9B4F5955418ACF632E7EAC50417AB4E8624F59554132B36B227FAC5041713A75084D5955416E9F1BAD7FAC504134EB12B24B59554150D6082581AC5041B333C80148595541066905F980AC5041E3A01014435955415AE324D680AC50417D75991140595541CF69126280AC5041736B4CB03B595541FC9991E27FAC5041FEB2FF7037595541B412655280AC504186A971292B59554160FF987C81AC5041C787B47B25595541434FF14583AC50414BAA592A2259554197D5077F83AC5041CB457EBF21595541C73129BC84AC50416D8D3B451F5955414DCA0FF97CAC5041EFF609C91E595541423EE8207BAC50415996FD761F595541368118FE78AC50419FB0E1F1205955419D8B187876AC5041E99F7B9926595541A4DC83D174AC5041A752989529595541F7D848CF71AC5041DC9F8BBE2B5955410FB8A3EF70AC504124C93F7B2F59554192207F4B74AC504171EB2825305955410B26021978AC5041F1A396D6295955413BFB0CAC79AC504156C3532827595541344883527BAC504105340FBB2459554188A8FE567BAC5041566320BC2459554190F2D55C7BAC504139C10EB32459554141E1ED977DAC5041BDEA7D45255955417E243E667FAC5041EE0691B3255955411F5717067FAC5041D9C2E06D2B595541A96D81047FAC5041930266872B595541F6A26E297FAC50416D42F5642C59554192FA9D347FAC50415891329E2C595541C4A555347FAC50414E535FA62C5955414599D3347FAC5041450853A92C595541221EA62D7FAC504178F3CE672D5955415DC3CC027FAC50419BDB8E3F32595541317903047FAC50414ACBAB7E3259554185CBB01B7FAC5041944DDC833259554185CBB01B7FAC50413412004C37595541474B2D377FAC5041FD20DED837595541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>983796 - 130851
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000270000001B75E7977FAC504118D0A7574659554116D594837FAC5041EB9A76F346595541B4EC177F7FAC50416684C36247595541993952577FAC50415598CA46485955413B1C5A4D7FAC5041D0CE389348595541168D96677EAC5041D6DB42A54D5955415330550A7EAC50418CCDECBB4F595541AD398E2581AC504175FEB71048595541CDE000DB80AC504152B58EB73F595541FB9991E27FAC504102B3FF7037595541B912655280AC504184A971292B59554162FF987C81AC5041C487B47B255955413DAD6DDD83AC5041BEFB041121595541BD9E14BD84AC504138444A451F59554152CA0FF97CAC5041F3F609C91E595541443EE8207BAC50415796FD761F595541328118FE78AC5041A0B0E1F1205955419E8B187876AC5041E89F7B9926595541A0DC83D174AC5041A452989529595541F6D848CF71AC5041D79F8BBE2B59554177E7A1EF70AC5041798C477B2F5955412219F49871AC5041BD6DA29D2F5955418F207F4B74AC50416CEB2825305955416D08931476AC5041BF0DEC452D59554138FB0CAC79AC504155C3532827595541364883527BAC504106340FBB245955417D243E667FAC5041F30691B3255955415103D7027FAC5041C7C0759F2B59554196FA9D347FAC50415991329E2C5955415BC3CC027FAC504199DB8E3F32595541327903047FAC50414BCBAB7E3259554188CBB01B7FAC50418F4DDC833259554188CBB01B7FAC50413712004C375955414A4B2D377FAC5041FB20DED83759554132FCA0B07FAC50419D0B4F473A5955412AD658FB7FAC5041288046593B595541FCCD74E27FAC50419DE490C23D595541FCCD74E27FAC5041B24C7A8E425955411B75E7977FAC504118D0A75746595541
+</a>
+
+<b>
+0106000000010000000103000000010000003F000000474B2D377FAC5041FD20DED83759554165D0A0AD7FAC50412C2BEE373A5955412FFCA0B07FAC5041A10B4F473A59554125D658FB7FAC50412D8046593B595541E1B3B7ED7FAC5041620549AB3C59554113B8B7F17FAC5041CA705BD33C595541FDCD74E27FAC50419FE490C23D595541FDCD74E27FAC504144F9216F3E59554159098AE47FAC504147BF056742595541FDCD74E27FAC50410775598842595541FDCD74E27FAC5041AD4C7A8E4259554171DB69E07FAC5041F49D08A942595541BDDD37B47FAC50411B79286C455955418292219D7FAC5041E151B413465955411A75E7977FAC504113D0A7574659554119D594837FAC5041E79A76F346595541B1EC177F7FAC50416484C362475955419E3952577FAC50415598CA4648595541361C5A4D7FAC5041D4CE38934859554140A9B0277FAC5041EAACFD6749595541B13B781A7FAC5041DEF3EEC7495955414A7FCE1D7EAC5041085E464C4F595541F2A505107EAC5041596F4E9B4F59554188CF632E7EAC50417FB4E8624F59554137B36B227FAC5041743A75084D5955416E9F1BAD7FAC504134EB12B24B59554153D6082581AC5041B633C801485955410B6905F980AC5041E2A01014435955415AE324D680AC50417D75991140595541CF69126280AC5041736B4CB03B595541FC9991E27FAC5041FEB2FF7037595541B412655280AC504186A971292B59554160FF987C81AC5041C787B47B25595541434FF14583AC50414BAA592A2259554197D5077F83AC5041CB457EBF21595541C83129BC84AC50416A8D3B451F5955414DCA0FF97CAC5041EFF609C91E595541423EE8207BAC50415996FD761F595541368118FE78AC50419FB0E1F1205955419D8B187876AC5041E99F7B9926595541A4DC83D174AC5041A752989529595541F7D848CF71AC5041DC9F8BBE2B5955410BB8A3EF70AC504123C93F7B2F59554192207F4B74AC504171EB2825305955410B26021978AC5041F1A396D6295955413BFB0CAC79AC504156C3532827595541344883527BAC504105340FBB2459554187A8FE567BAC5041586320BC2459554190F2D55C7BAC504139C10EB32459554144E1ED977DAC5041BCEA7D45255955417E243E667FAC5041EE0691B3255955411F5717067FAC5041D9C2E06D2B595541A96D81047FAC5041930266872B595541F6A26E297FAC50416D42F5642C59554192FA9D347FAC50415891329E2C595541C4A555347FAC50414D535FA62C5955414599D3347FAC5041450853A92C595541221EA62D7FAC504178F3CE672D5955415DC3CC027FAC50419BDB8E3F32595541317903047FAC50414ACBAB7E3259554185CBB01B7FAC5041944DDC833259554185CBB01B7FAC50413412004C37595541474B2D377FAC5041FD20DED837595541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>983796 - 329977
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000270000001B75E7977FAC504118D0A7574659554116D594837FAC5041EB9A76F346595541B4EC177F7FAC50416684C36247595541993952577FAC50415598CA46485955413B1C5A4D7FAC5041D0CE389348595541168D96677EAC5041D6DB42A54D5955415330550A7EAC50418CCDECBB4F595541AD398E2581AC504175FEB71048595541CDE000DB80AC504152B58EB73F595541FB9991E27FAC504102B3FF7037595541B912655280AC504184A971292B59554162FF987C81AC5041C487B47B255955413DAD6DDD83AC5041BEFB041121595541BD9E14BD84AC504138444A451F59554152CA0FF97CAC5041F3F609C91E595541443EE8207BAC50415796FD761F595541328118FE78AC5041A0B0E1F1205955419E8B187876AC5041E89F7B9926595541A0DC83D174AC5041A452989529595541F6D848CF71AC5041D79F8BBE2B59554177E7A1EF70AC5041798C477B2F5955412219F49871AC5041BD6DA29D2F5955418F207F4B74AC50416CEB2825305955416D08931476AC5041BF0DEC452D59554138FB0CAC79AC504155C3532827595541364883527BAC504106340FBB245955417D243E667FAC5041F30691B3255955415103D7027FAC5041C7C0759F2B59554196FA9D347FAC50415991329E2C5955415BC3CC027FAC504199DB8E3F32595541327903047FAC50414BCBAB7E3259554188CBB01B7FAC50418F4DDC833259554188CBB01B7FAC50413712004C375955414A4B2D377FAC5041FB20DED83759554132FCA0B07FAC50419D0B4F473A5955412AD658FB7FAC5041288046593B595541FCCD74E27FAC50419DE490C23D595541FCCD74E27FAC5041B24C7A8E425955411B75E7977FAC504118D0A75746595541
+</a>
+
+<b>
+0106000000010000000103000000010000003F000000474B2D377FAC5041FD20DED83759554165D0A0AD7FAC50412C2BEE373A5955412FFCA0B07FAC5041A10B4F473A59554125D658FB7FAC50412D8046593B595541E1B3B7ED7FAC5041620549AB3C59554113B8B7F17FAC5041CA705BD33C595541FDCD74E27FAC50419FE490C23D595541FDCD74E27FAC504144F9216F3E59554159098AE47FAC504147BF056742595541FDCD74E27FAC50410775598842595541FDCD74E27FAC5041AD4C7A8E4259554171DB69E07FAC5041F49D08A942595541BDDD37B47FAC50411B79286C455955418292219D7FAC5041E151B413465955411A75E7977FAC504113D0A7574659554119D594837FAC5041E79A76F346595541B1EC177F7FAC50416484C362475955419E3952577FAC50415598CA4648595541361C5A4D7FAC5041D4CE38934859554140A9B0277FAC5041EAACFD6749595541B13B781A7FAC5041DEF3EEC7495955414A7FCE1D7EAC5041085E464C4F595541F2A505107EAC5041596F4E9B4F59554188CF632E7EAC50417FB4E8624F59554137B36B227FAC5041743A75084D5955416E9F1BAD7FAC504134EB12B24B59554153D6082581AC5041B633C801485955410B6905F980AC5041E2A01014435955415AE324D680AC50417D75991140595541CF69126280AC5041736B4CB03B595541FC9991E27FAC5041FEB2FF7037595541B412655280AC504186A971292B59554160FF987C81AC5041C787B47B25595541434FF14583AC50414BAA592A2259554197D5077F83AC5041CB457EBF21595541C83129BC84AC50416A8D3B451F5955414DCA0FF97CAC5041EFF609C91E595541423EE8207BAC50415996FD761F595541368118FE78AC50419FB0E1F1205955419D8B187876AC5041E99F7B9926595541A4DC83D174AC5041A752989529595541F7D848CF71AC5041DC9F8BBE2B5955410BB8A3EF70AC504123C93F7B2F59554192207F4B74AC504171EB2825305955410B26021978AC5041F1A396D6295955413BFB0CAC79AC504156C3532827595541344883527BAC504105340FBB2459554187A8FE567BAC5041586320BC2459554190F2D55C7BAC504139C10EB32459554144E1ED977DAC5041BCEA7D45255955417E243E667FAC5041EE0691B3255955411F5717067FAC5041D9C2E06D2B595541A96D81047FAC5041930266872B595541F6A26E297FAC50416D42F5642C59554192FA9D347FAC50415891329E2C595541C4A555347FAC50414D535FA62C5955414599D3347FAC5041450853A92C595541221EA62D7FAC504178F3CE672D5955415DC3CC027FAC50419BDB8E3F32595541317903047FAC50414ACBAB7E3259554185CBB01B7FAC5041944DDC833259554185CBB01B7FAC50413412004C37595541474B2D377FAC5041FD20DED837595541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>628727 - 956391
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003A00000043779EE78DF45041F681E28C4D15554114AE475193F45041333333734E1555410243DCBE93F45041D8AB7A854E1555415C8FC23596F45041EC51B8EE4E1555418FC2F55899F4504152B81E854F1555411F85EB519BF4504148E17AB44F155541C3F5284C9DF4504148E17A044E155541F6285CAF9DF45041295C8F724A155541A4703D8A9DF450413D0AD753481555417B14AEC79CF450418FC2F50847155541AE47E17A9BF45041F6285C7F461555410AD7A3009AF450418FC2F5F8451555410AD7A3D098F450411F85EBA1451555413D0AD73397F4504185EB51484515554114AE471195F45041CDCCCCCC44155541EC51B8AE95F450415C8FC2D543155541000000A097F450410AD7A3704315554185EB514897F45041666666B640155541EC51B8EE94F45041A4703D8A3F1555417B14AEB790F45041CDCCCC1C3F15554185EB51D88CF45041E17A14CE3E155541AE47E12A8AF45041000000603E155541C3F5285C83F450418FC2F5B83C155541F6285C8F7EF450410AD7A3503B155541000000B07CF4504114AE47D13A15554148E17A3475F45041EC51B81E38155541E17A141E74F45041333333C338155541295C8F2272F45041333333733A155541B81E852B70F4504152B81E75421555411F85EB016FF4504148E17A2442155541D7A3707D6FF45041D7A3701D401555413D0AD7C370F45041F6285C8F3A1555410AD7A3A072F450415C8FC2253815554152B81E5573F45041AE47E19A371555415C8FC2256FF45041F6285C3F361555415C8FC2C565F45041CDCCCC7C331555417B14AE7761F45041AE47E16A32155541E17A142E5FF450413D0AD723321555415C8FC2255BF45041C3F528AC311555417B14AEF759F45041666666363615554148E17A1459F45041D7A3707D3A1555413333336358F45041AE47E1FA3D15554152B81E3558F450413D0AD74340155541AE47E1EA57F45041A4703DEA42155541E97FF7E357F4504124138735431555412E3C0C365DF45041908B26314415554193E3AD6D66F450412849728D4615554188A53D7E66F450413C596D954615554179C42C9F66F4504145CEE99D4615554106AAB57A69F4504128812ABC471555410EB42D466AF45041D9488E0648155541D9CFC3CF6CF4504169B4CB8148155541225D41746FF45041835701C948155541086A42F979F45041E58443C44A155541C27C43117FF45041B3D08C7E4B1555416F68E96286F45041E83F796C4C1555410FDB710689F450414DDD70D24C15554143779EE78DF45041F681E28C4D155541
+</a>
+
+<b>
+0106000000010000000103000000020000004D000000963791B675F450412F83D4334A1555413574588474F45041D2AF08F449155541DD86C99E72F45041683F33AB49155541225D41746FF45041835701C948155541D9CFC3CF6CF4504169B4CB8148155541E20A20B269F45041ED8E77EA47155541A5B80FDC68F450418BA951C34715554116AA17D468F450418C2C5DAD47155541BB26A4D668F45041FDE653C24715554154F00AC968F45041474832B04715554193E3AD6D66F450412849728D461555412E3C0C365DF45041908B263144155541E97FF7E357F450412413873543155541C3F528BC57F45041713D0AE74415554185EB518857F45041A4703D0A461555417B14AE3757F45041A4703D4A47155541D7A3703D58F450411F85EB2147155541F6285C0F58F4504185EB51F8471555415C8FC2B557F450418FC2F55849155541B81E853B57F45041000000504A15554114AE478156F450417B14AE574B155541CDCCCCDC55F45041B81E851B4C155541666666C654F450413D0AD7534D155541713D0AA753F4504185EB51984E155541000000C052F45041713D0AA74F155541333333E351F450411F85EBD150155541C3F5284C51F45041F6285CDF511555418FC2F5D850F450418FC2F5385315554185EB51A850F450416666662654155541EC51B89E50F45041C3F528CC55155541000000A050F45041B81E858B571555419A99996950F45041B81E851B59155541AE47E11A50F45041EC51B8CE5A155541CDCCCC1C52F4504114AE47F15A155541295C8F9254F45041666666365B155541F6285CCF56F45041EC51B89E5B1555415C8FC23558F450418FC2F5F85B1555418FC2F5185AF45041F6285C6F5C155541C3F5284C5BF45041000000D05C155541333333835DF4504185EB51885D155541713D0A8760F450418FC2F5985E15554152B81E2564F450411F85EBF15F155541F6285CFF66F45041C3F528FC601555410000004069F45041AE47E1DA611555413D0AD7B36BF450419A9999B962155541713D0AB76DF45041F6285C6F63155541A4703DAA6FF450411F85EBF16315554148E17A8471F45041AE47E18A6415554148E17AD473F450413333334365155541AE47E14A76F4504148E17A046615554185EB516876F45041295C8FA2631555418FC2F52878F4504148E17A045B155541333333837CF4504148E17A045B15554114AE47A17EF450419A9999695B1555416666663680F450413D0AD7535B155541F6285C0F81F45041713D0A575A155541C3F5287C81F450411F85EB71581555418FC2F5F880F45041F6285C5F57155541A4703D7A81F45041B81E85DB531555416666668682F450410000008052155541A4703D2A84F450413D0AD7A351155541000000F086F45041AE47E1CA50155541617AB15688F45041C08FEC71501555414FC1C81E8AF45041C027122B5015554137FCD1E88AF45041D6DE69F84F155541DF1522388CF45041901C63B44F155541307C48A78DF450418FDDE6694F155541DDF01A6B90F450419C864DDA4E1555410243DCBE93F45041D8AB7A854E15554114AE475193F45041333333734E15554185779EE78DF450410082E28C4D1555410FDB710689F450414DDD70D24C1555416F68E96286F45041E83F796C4C155541C27C43117FF45041B3D08C7E4B155541086A42F979F45041E58443C44A15554124B959EE77F45041D6481EAA4A155541963791B675F450412F83D4334A15554105000000B12B94FE68F4504148B1D22C4815554141054D7472F45041445209A94B1555412002541F72F45041DFD385D34B155541ADCCCA7A6CF4504100D77E284C155541B12B94FE68F4504148B1D22C48155541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2735396 - 2951732
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001B0000005C8FC255D84351417B14AE4783985441EC51B84ED94351419A9999C984985441D7A3700DDA435141D7A370ED85985441F6285CBFE54351411F85EB217E985441AE47E1CAF3435141713D0AC775985441AE47E17AFD43514148E17A5470985441F6285C7F08445141C3F5287C6B9854413D0AD783134451410AD7A3206798544114AE47912044514114AE4761629854418FC2F5682244514114AE470167985441C3F5284C3F445141713D0A675D985441B81E85CB42445141295C8FF25B985441CDCCCC9C414451415C8FC2455698544148E17A7440445141F6285CCF50985441CDCCCC5C3A445141E17A14EE52985441295C8F62364451410AD7A320549854417B14AE073344514152B81EE5549854411F85EBA130445141C3F5286C559854410AD7A3202B445141A4703D8A569854413D0AD753194451411F85EB515D9854417B14AEC71A445141AE47E10A6298544166666646134451413D0AD7D36498544133333303084451410AD7A31069985441D7A3701DFD435141713D0A076E985441E17A146EF34351418FC2F59873985441666666E6E4435141333333137C9854415C8FC255D84351417B14AE4783985441
+</a>
+
+<b>
+0106000000010000000103000000010000004600000048C6A1ACE74351415C4C7CFC7C985441D673ECFBE5435141E86CE4FD7D98544137C160E2E543514116B8160D7E985441E691F1F3DA43514166C2375685985441B9E87310DA43514129884EF08598544147B013D2DF43514168AF90C68E985441C0B67FE8E943514177FA5A3F9E985441C8BA4D63EA4351415FC237F69E985441020D5462EC435141555B65759F985441C369C59CEF435141F0501FBF9D985441D056B78AF44351411D75021F9B98544139456DB1F9435141F0976D6098985441D5152470FC4351410B1AC8F596985441834FADB90244514144D811BF93985441F84811D205445141F088A22B929854412E9438140844514111B66AF690985441BF08E87F0E445141CF3957848D985441FA009E6010445141FB59D67F8C9854410C19433414445141911B36678B98544194055DB81B445141326DEFF488985441590CA60420445141A6A8174287985441BE03498D21445141AFCC447D86985441027E5FC7244451413C56B559859854411C2B624F2A4451415230D66283985441CE464D0F3144514183271BF8809854418A1D682B3B4451410F04D4397D985441E63528F944445141D4F21BCC7A9854415BC5CE014744514190D07F487A9854417653FFE24844514194951BCC79985441BECD38034A4451411247D68D79985441C4C6ADBD4E4451417914937D78985441CF85C59154445141E566242F7798544126392AA854445141A34FA1CA74985441026093B354445141CEC0435773985441536834805444514175D999747298544138A21CFA52445141A7802F236C9854418C081A53524451410FE3158769985441E872E250514451410B5EFF9B659854419816B007504451419BA1082D6098544167E01C384D44514143582FC560985441C414806B44445141788CC0A962985441CEF53B9A4044514121146F7963985441867AB07B40445141700CA0FF629854410871E54B3F44514110AF20675D9854411CEEECBC304451414BC4023E62985441016D3BE727445141CC1ED22D659854418FC2F5682244514114AE47016798544114AE47912044514114AE476162985441A5DF4E5F1D4451418FA8CB8A63985441DAC81E571D4451411C0EC68D639854417D5108D9174451419761338D65985441F6A876711644514187FFFB0F669854410C64798F134451416337B71D679854414AA0FE2512445141B39F01AB67985441BC57F1DB0F4451411B47CB926898544127AE21040F4451419CBC6DE468985441095BEE370C44514133D0DBFF6998544159142FB10A445141C7A82E9B6A985441F8CC2B35094451413E2A3D326B985441F366E69F084451418AF3396E6B9854414E2E8288084451418CAC8A786B9854413CEA857F084451411472187C6B985441B3D54894064451410DE51C546C9854412D0A888EFD4351411E94D64B709854412E97C822F743514152234FE4739854413BB67B67F443514138FECA6E759854414650728CF24351411E241F8676985441689D7873EC435141B5FD0C257A98544188B2DCEAEA435141F47F9A0E7B98544148C6A1ACE74351415C4C7CFC7C985441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2735396 - 3603347
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001B0000005C8FC255D84351417B14AE4783985441EC51B84ED94351419A9999C984985441D7A3700DDA435141D7A370ED85985441F6285CBFE54351411F85EB217E985441AE47E1CAF3435141713D0AC775985441AE47E17AFD43514148E17A5470985441F6285C7F08445141C3F5287C6B9854413D0AD783134451410AD7A3206798544114AE47912044514114AE4761629854418FC2F5682244514114AE470167985441C3F5284C3F445141713D0A675D985441B81E85CB42445141295C8FF25B985441CDCCCC9C414451415C8FC2455698544148E17A7440445141F6285CCF50985441CDCCCC5C3A445141E17A14EE52985441295C8F62364451410AD7A320549854417B14AE073344514152B81EE5549854411F85EBA130445141C3F5286C559854410AD7A3202B445141A4703D8A569854413D0AD753194451411F85EB515D9854417B14AEC71A445141AE47E10A6298544166666646134451413D0AD7D36498544133333303084451410AD7A31069985441D7A3701DFD435141713D0A076E985441E17A146EF34351418FC2F59873985441666666E6E4435141333333137C9854415C8FC255D84351417B14AE4783985441
+</a>
+
+<b>
+0106000000010000000103000000010000004600000048C6A1ACE74351415C4C7CFC7C985441D673ECFBE5435141E86CE4FD7D98544137C160E2E543514116B8160D7E985441E691F1F3DA43514166C2375685985441B9E87310DA43514129884EF08598544147B013D2DF43514168AF90C68E985441C0B67FE8E943514177FA5A3F9E985441C8BA4D63EA4351415FC237F69E985441020D5462EC435141555B65759F985441C369C59CEF435141F0501FBF9D985441D056B78AF44351411D75021F9B98544139456DB1F9435141F0976D6098985441D5152470FC4351410B1AC8F596985441834FADB90244514144D811BF93985441F84811D205445141F088A22B929854412E9438140844514111B66AF690985441BF08E87F0E445141CF3957848D985441FA009E6010445141FB59D67F8C9854410C19433414445141911B36678B98544194055DB81B445141326DEFF488985441590CA60420445141A6A8174287985441BE03498D21445141AFCC447D86985441027E5FC7244451413C56B559859854411C2B624F2A4451415230D66283985441CE464D0F3144514183271BF8809854418A1D682B3B4451410F04D4397D985441E63528F944445141D4F21BCC7A9854415BC5CE014744514190D07F487A9854417653FFE24844514194951BCC79985441BECD38034A4451411247D68D79985441C4C6ADBD4E4451417914937D78985441CF85C59154445141E566242F7798544126392AA854445141A34FA1CA74985441026093B354445141CEC0435773985441536834805444514175D999747298544138A21CFA52445141A7802F236C9854418C081A53524451410FE3158769985441E872E250514451410B5EFF9B659854419816B007504451419BA1082D6098544167E01C384D44514143582FC560985441C414806B44445141788CC0A962985441CEF53B9A4044514121146F7963985441867AB07B40445141700CA0FF629854410871E54B3F44514110AF20675D9854411CEEECBC304451414BC4023E62985441016D3BE727445141CC1ED22D659854418FC2F5682244514114AE47016798544114AE47912044514114AE476162985441A5DF4E5F1D4451418FA8CB8A63985441DAC81E571D4451411C0EC68D639854417D5108D9174451419761338D65985441F6A876711644514187FFFB0F669854410C64798F134451416337B71D679854414AA0FE2512445141B39F01AB67985441BC57F1DB0F4451411B47CB926898544127AE21040F4451419CBC6DE468985441095BEE370C44514133D0DBFF6998544159142FB10A445141C7A82E9B6A985441F8CC2B35094451413E2A3D326B985441F366E69F084451418AF3396E6B9854414E2E8288084451418CAC8A786B9854413CEA857F084451411472187C6B985441B3D54894064451410DE51C546C9854412D0A888EFD4351411E94D64B709854412E97C822F743514152234FE4739854413BB67B67F443514138FECA6E759854414650728CF24351411E241F8676985441689D7873EC435141B5FD0C257A98544188B2DCEAEA435141F47F9A0E7B98544148C6A1ACE74351415C4C7CFC7C985441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>279077 - 162347
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000230000000000001010F7504148E17A049C9454410AD7A3F007F75041E17A14DE97945441CDCCCC8C06F750418FC2F52897945441EC51B84E02F75041CDCCCCFC949454411F85EBE1FCF650418FC2F5389294544100000030FCF65041CDCCCCDC91945441AE47E12AF5F6504152B81E458E945441E17A14FEF3F65041F6285CAF8D945441B1CED7AAE4F650414F6DEBE28594544178E801CAE1F650410059B8528B945441F6285C1FF3F65041E17A145E94945441EC51B88E00F750418FC2F5589B945441EC51B85E0BF75041713D0AF7A094544152B81ED514F750411F85EBE1A5945441EC51B82E16F7504152B81E95A6945441EC51B8EE20F75041B81E852BAC9454413D0AD7031FF75041C3F5288CAF94544155A1ED001DF75041B3632D1CB394544194A450C121F7504114E66692B694544148E17AD413F7504166666626D09454410CBA14F112F7504172529EC8D1945441C58451DA14F75041B9EA92BED2945441EFEA0FD917F750413C81F64FD49454412130C37118F75041E4861BB0D4945441897F920F1AF75041C2D24889D59454415C8FC2F51BF7504148E17AF4D1945441C3F5286C2CF7504152B81E25B2945441000000002CF75041CDCCCCECB19454411F85EB012FF75041A4703DCAAB945441A4703D2A2CF750411F85EB51AA945441C3F5282C27F75041333333D3A79454413333336322F7504114AE4761A59454413D0AD71317F750415C8FC2959F945441295C8F9213F75041000000D09D9454410000001010F7504148E17A049C945441
+</a>
+
+<b>
+010600000001000000010300000001000000140000006937854D13F75041FE089C1ED1945441C6FEAE3313F7504130EFB753D19454415A16DB2E13F750419D830157D19454410CBA14F112F7504171529EC8D1945441C28451DA14F75041BEEA92BED2945441EFEA0FD917F750413C81F64FD49454412130C37118F75041E4861BB0D4945441897F920F1AF75041C2D24889D59454415C8FC2F51BF7504148E17AF4D194544177168B662CF75041EF13F92FB29454418ACA3CEA20F75041F6626A33AC945441481E83E920F75041AB6EB134AC9454418F50C5E520F75041EB83483BAC945441A57071E120F7504148EFE742AC945441D00365011FF750412C395BB9AF9454418FB7B5CD1EF750417D3309ECAF94544159A1ED001DF75041B1632D1CB394544193A450C121F7504113E66692B694544148E17AD413F7504166666626D09454416937854D13F75041FE089C1ED1945441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>279077 - 387839
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000230000000000001010F7504148E17A049C9454410AD7A3F007F75041E17A14DE97945441CDCCCC8C06F750418FC2F52897945441EC51B84E02F75041CDCCCCFC949454411F85EBE1FCF650418FC2F5389294544100000030FCF65041CDCCCCDC91945441AE47E12AF5F6504152B81E458E945441E17A14FEF3F65041F6285CAF8D945441B1CED7AAE4F650414F6DEBE28594544178E801CAE1F650410059B8528B945441F6285C1FF3F65041E17A145E94945441EC51B88E00F750418FC2F5589B945441EC51B85E0BF75041713D0AF7A094544152B81ED514F750411F85EBE1A5945441EC51B82E16F7504152B81E95A6945441EC51B8EE20F75041B81E852BAC9454413D0AD7031FF75041C3F5288CAF94544155A1ED001DF75041B3632D1CB394544194A450C121F7504114E66692B694544148E17AD413F7504166666626D09454410CBA14F112F7504172529EC8D1945441C58451DA14F75041B9EA92BED2945441EFEA0FD917F750413C81F64FD49454412130C37118F75041E4861BB0D4945441897F920F1AF75041C2D24889D59454415C8FC2F51BF7504148E17AF4D1945441C3F5286C2CF7504152B81E25B2945441000000002CF75041CDCCCCECB19454411F85EB012FF75041A4703DCAAB945441A4703D2A2CF750411F85EB51AA945441C3F5282C27F75041333333D3A79454413333336322F7504114AE4761A59454413D0AD71317F750415C8FC2959F945441295C8F9213F75041000000D09D9454410000001010F7504148E17A049C945441
+</a>
+
+<b>
+010600000001000000010300000001000000140000006937854D13F75041FE089C1ED1945441C6FEAE3313F7504130EFB753D19454415A16DB2E13F750419D830157D19454410CBA14F112F7504171529EC8D1945441C28451DA14F75041BEEA92BED2945441EFEA0FD917F750413C81F64FD49454412130C37118F75041E4861BB0D4945441897F920F1AF75041C2D24889D59454415C8FC2F51BF7504148E17AF4D194544177168B662CF75041EF13F92FB29454418ACA3CEA20F75041F6626A33AC945441481E83E920F75041AB6EB134AC9454418F50C5E520F75041EB83483BAC945441A57071E120F7504148EFE742AC945441D00365011FF750412C395BB9AF9454418FB7B5CD1EF750417D3309ECAF94544159A1ED001DF75041B1632D1CB394544193A450C121F7504113E66692B694544148E17AD413F7504166666626D09454416937854D13F75041FE089C1ED1945441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>828914 - 1258391
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001C000000BBAC51D37C3F51417A2B163B4EA75441C233BD097B3F5141DA90A63050A7544102A0BA2E723F5141FEC6B40853A75441B276C35F6B3F51412C0FF66956A754419A9999B9693F5141A4703DEA56A75441DCE1302C673F514164ABD81357A75441AE47E18A643F5141EC51B83E57A75441E7D035085D3F5141B7BE51E258A754418C335DD6523F5141FB7BDD0E5BA7544149DED6E24F3F5141196A8C0E5CA75441AD40496E493F51412372F1295EA75441E2C04493443F5141AE39FC3760A754410F3E1E243F3F5141C558E54163A75441A9D72F3E433F5141B31441FE66A75441333333C3503F51418FC2F52874A75441AE47E1CA563F51418FC2F5C872A75441A4703D8A6C3F5141295C8FD26DA75441295C8F22863F5141C3F528FC67A75441295C8F129C3F5141AE47E1FA62A75441295C8F229E3F5141D7A370DD5EA7544114AE4771A13F51416666666657A75441A4703DBAA33F5141E17A149E4DA7544171C150FE9A3F5141737593CA4DA754411F85EBA1903F5141F6285CFF4DA754416B1A0A648A3F51415FDFBD1A4EA7544193B9F88C853F5141BD2F1B384EA75441E459F1737F3F51417C60D2344EA75441BBAC51D37C3F51417A2B163B4EA75441
+</a>
+
+<b>
+010600000001000000010300000002000000220000001F85EBA1903F5141F6285CFF4DA75441295C8F027D3F51413D0AD7634EA75441F94B6AAC7C3F5141E2DBC7FA4EA75441425FD92D7B3F5141668B5CCE50A75441CC1E2E5C773F5141D4682E6252A754416DB4F560723F5141B392BB8B53A75441B05C2B77713F51418B55BFE053A754419929E8F46D3F51415256EBB955A754419239B8946D3F5141447C1C9257A75441EAE04D926E3F51418E49E3675AA75441750C11006D3F5141D80049055BA75441E2718354673F5141C4364A7D5CA754418451E411623F51413D0B870F5EA75441FE9C47BF5F3F514129BE3F3B5EA7544149585BCB5A3F5141437EFFBB5FA75441BCADFD7F553F51413621E84760A75441A6E11BCE4E3F5141B8E5543A62A754417845AAFB463F514190CE0EDE63A754411AAEE49D453F514190CE0EDE63A75441F1900DA9443F5141FCBC5A1762A75441DDC07D88433F5141AB05F57961A75441C0E9D3E7413F5141C4D93BDF61A75441000000503F3F5141EC51B86E63A75441971FB43D433F5141C78FC83267A75441333333C3503F51418FC2F52874A75441AE47E1CA563F51418FC2F5C872A75441A4703D8A6C3F5141295C8FD26DA75441295C8F22863F5141C3F528FC67A75441295C8F129C3F5141AE47E1FA62A75441295C8F229E3F5141D7A370DD5EA7544114AE4771A13F51416666666657A75441A4703DBAA33F5141E17A149E4DA754417B14AE179B3F5141A4703DCA4DA754411F85EBA1903F5141F6285CFF4DA754410700000067357F02513F51416AC6374869A7544140FD28E24E3F5141DCAA48B566A7544109BCC2F1663F514181572B0061A75441B37F8CE7703F5141D9E656C15DA75441C062FD5B723F51414C3C646B5DA754411AD42197733F5141B390F91A60A7544167357F02513F51416AC6374869A75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>828914 - 2398161
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001C000000BBAC51D37C3F51417A2B163B4EA75441C233BD097B3F5141DA90A63050A7544102A0BA2E723F5141FEC6B40853A75441B276C35F6B3F51412C0FF66956A754419A9999B9693F5141A4703DEA56A75441DCE1302C673F514164ABD81357A75441AE47E18A643F5141EC51B83E57A75441E7D035085D3F5141B7BE51E258A754418C335DD6523F5141FB7BDD0E5BA7544149DED6E24F3F5141196A8C0E5CA75441AD40496E493F51412372F1295EA75441E2C04493443F5141AE39FC3760A754410F3E1E243F3F5141C558E54163A75441A9D72F3E433F5141B31441FE66A75441333333C3503F51418FC2F52874A75441AE47E1CA563F51418FC2F5C872A75441A4703D8A6C3F5141295C8FD26DA75441295C8F22863F5141C3F528FC67A75441295C8F129C3F5141AE47E1FA62A75441295C8F229E3F5141D7A370DD5EA7544114AE4771A13F51416666666657A75441A4703DBAA33F5141E17A149E4DA7544171C150FE9A3F5141737593CA4DA754411F85EBA1903F5141F6285CFF4DA754416B1A0A648A3F51415FDFBD1A4EA7544193B9F88C853F5141BD2F1B384EA75441E459F1737F3F51417C60D2344EA75441BBAC51D37C3F51417A2B163B4EA75441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000008FC2F5D8813F5141D7A370FD3AA75441D7A3706D813F51417B14AE473CA75441C3F528EC7F3F5141AE47E19A48A75441AE47E17A7E3F514114AE47214CA75441295C8FA27C3F51415C8FC2654EA75441295C8F027D3F51413D0AD7634EA754411F85EBA1903F5141F6285CFF4DA75441A1581A949A3F5141E9A3D9CC4DA754418A320C5A9E3F514134802B7F39A75441000000B0953F51413D0AD7E339A754418FC2F5D8813F5141D7A370FD3AA75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>828914 - 3373570
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001C000000BBAC51D37C3F51417A2B163B4EA75441C233BD097B3F5141DA90A63050A7544102A0BA2E723F5141FEC6B40853A75441B276C35F6B3F51412C0FF66956A754419A9999B9693F5141A4703DEA56A75441DCE1302C673F514164ABD81357A75441AE47E18A643F5141EC51B83E57A75441E7D035085D3F5141B7BE51E258A754418C335DD6523F5141FB7BDD0E5BA7544149DED6E24F3F5141196A8C0E5CA75441AD40496E493F51412372F1295EA75441E2C04493443F5141AE39FC3760A754410F3E1E243F3F5141C558E54163A75441A9D72F3E433F5141B31441FE66A75441333333C3503F51418FC2F52874A75441AE47E1CA563F51418FC2F5C872A75441A4703D8A6C3F5141295C8FD26DA75441295C8F22863F5141C3F528FC67A75441295C8F129C3F5141AE47E1FA62A75441295C8F229E3F5141D7A370DD5EA7544114AE4771A13F51416666666657A75441A4703DBAA33F5141E17A149E4DA7544171C150FE9A3F5141737593CA4DA754411F85EBA1903F5141F6285CFF4DA754416B1A0A648A3F51415FDFBD1A4EA7544193B9F88C853F5141BD2F1B384EA75441E459F1737F3F51417C60D2344EA75441BBAC51D37C3F51417A2B163B4EA75441
+</a>
+
+<b>
+010600000001000000010300000002000000220000001F85EBA1903F5141F6285CFF4DA75441295C8F027D3F51413D0AD7634EA75441F94B6AAC7C3F5141E2DBC7FA4EA75441425FD92D7B3F5141668B5CCE50A75441CC1E2E5C773F5141D4682E6252A754416DB4F560723F5141B392BB8B53A75441B05C2B77713F51418B55BFE053A754419929E8F46D3F51415256EBB955A754419239B8946D3F5141447C1C9257A75441EAE04D926E3F51418E49E3675AA75441750C11006D3F5141D80049055BA75441E2718354673F5141C4364A7D5CA754418451E411623F51413D0B870F5EA75441FE9C47BF5F3F514129BE3F3B5EA7544149585BCB5A3F5141437EFFBB5FA75441BCADFD7F553F51413621E84760A75441A6E11BCE4E3F5141B8E5543A62A754417845AAFB463F514190CE0EDE63A754411AAEE49D453F514190CE0EDE63A75441F1900DA9443F5141FCBC5A1762A75441DDC07D88433F5141AB05F57961A75441C0E9D3E7413F5141C4D93BDF61A75441000000503F3F5141EC51B86E63A75441971FB43D433F5141C78FC83267A75441333333C3503F51418FC2F52874A75441AE47E1CA563F51418FC2F5C872A75441A4703D8A6C3F5141295C8FD26DA75441295C8F22863F5141C3F528FC67A75441295C8F129C3F5141AE47E1FA62A75441295C8F229E3F5141D7A370DD5EA7544114AE4771A13F51416666666657A75441A4703DBAA33F5141E17A149E4DA754417B14AE179B3F5141A4703DCA4DA754411F85EBA1903F5141F6285CFF4DA754410700000067357F02513F51416AC6374869A7544140FD28E24E3F5141DCAA48B566A7544109BCC2F1663F514181572B0061A75441B37F8CE7703F5141D9E656C15DA75441C062FD5B723F51414C3C646B5DA754411AD42197733F5141B390F91A60A7544167357F02513F51416AC6374869A75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>828914 - 5244993
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001C000000BBAC51D37C3F51417A2B163B4EA75441C233BD097B3F5141DA90A63050A7544102A0BA2E723F5141FEC6B40853A75441B276C35F6B3F51412C0FF66956A754419A9999B9693F5141A4703DEA56A75441DCE1302C673F514164ABD81357A75441AE47E18A643F5141EC51B83E57A75441E7D035085D3F5141B7BE51E258A754418C335DD6523F5141FB7BDD0E5BA7544149DED6E24F3F5141196A8C0E5CA75441AD40496E493F51412372F1295EA75441E2C04493443F5141AE39FC3760A754410F3E1E243F3F5141C558E54163A75441A9D72F3E433F5141B31441FE66A75441333333C3503F51418FC2F52874A75441AE47E1CA563F51418FC2F5C872A75441A4703D8A6C3F5141295C8FD26DA75441295C8F22863F5141C3F528FC67A75441295C8F129C3F5141AE47E1FA62A75441295C8F229E3F5141D7A370DD5EA7544114AE4771A13F51416666666657A75441A4703DBAA33F5141E17A149E4DA7544171C150FE9A3F5141737593CA4DA754411F85EBA1903F5141F6285CFF4DA754416B1A0A648A3F51415FDFBD1A4EA7544193B9F88C853F5141BD2F1B384EA75441E459F1737F3F51417C60D2344EA75441BBAC51D37C3F51417A2B163B4EA75441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000008FC2F5D8813F5141D7A370FD3AA75441D7A3706D813F51417B14AE473CA75441C3F528EC7F3F5141AE47E19A48A75441AE47E17A7E3F514114AE47214CA75441295C8FA27C3F51415C8FC2654EA75441295C8F027D3F51413D0AD7634EA754411F85EBA1903F5141F6285CFF4DA75441A1581A949A3F5141E9A3D9CC4DA754418A320C5A9E3F514134802B7F39A75441000000B0953F51413D0AD7E339A754418FC2F5D8813F5141D7A370FD3AA75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984054 - 1953224
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000370000000BB702580077504125902060F00E5541417C2F8C0277504157BB3D29F20E5541255126FD0877504182A01D11F70E5541C1B08AE00E7750416ED24F16FB0E55413A159C4813775041F9EEEB1FFE0E5541C0B8ACFE14775041476A6E7DFE0E55416CF631A816775041CCF8A3A6FE0E5541391BC8231A775041244BEBE0000F55414B2F7A711C775041072C4FFC020F554125A940221E7750416F8FC9D9050F5541145E1B7B1F775041C4214FE1070F5541482579CA227750415CBC0EB80A0F55413B6405C3247750416BF840B90C0F554121FBAAA228775041017053F1100F55410A4CC0472C7750411CBF1921140F5541CCD330FB2D77504189CA8715160F55414BA6095637775041E5A8FCCC1C0F554110F34E8C3977504142CFA6241A0F5541BA7337043F7750413E0C21701E0F554143D2627142775041CB983B89200F5541B1464AF54577504153DB12FB210F5541E515553C4D7750412E8807CB250F5541405EFCEC557750417208F3912C0F55413996DCD7597750417E6F7D2B300F5541E3975A4F5D775041379E7926330F55411BFEEF795F7750414798E709350F5541E991640D61775041C04165D5350F554198F7111163775041F5967D3B340F55416CD14CB7657750414272D609370F55414F5A4653697750419C7B89813C0F5541D2B5B2466D77504142C61FDA420F5541C7A1E93170775041682000C9410F5541CE0099506C7750410586E3683B0F554163B1A8A9677750415EFB58FF340F5541337E7A0265775041B0DE0D01320F554105AC263F5A775041BD2F5AAD280F55417DEDDA4458775041FC7B2CEA2A0F554171756B0146775041997491C01C0F5541067DC4BF3D7750413F1DAE24160F5541B35C383D357750410A3B45E90E0F55419ECC8CC230775041FAC540D20A0F5541B2B7A30024775041E20F4250010F55414C8AE2AC15775041F6C4EFFBF60E55413443CBB80D7750414FA4CA9FF10E55412A8445A5027750410C4682E1E90E554130EAE9C7FE7650418DAE4E7FE70E5541E9359DB3F9765041F6D47FDFE40E55417F93621CF8765041A3407D0CE50E55413428A80BF7765041931DE3F4E60E5541777A1B49F7765041EB806020E70E5541D9A4FC22FA765041A74BA4F5E80E5541298264D2FA76504198AFF9ABE90E5541EEF8A5E2FB7650410C472B0FEC0E5541E67455EAFC765041BB01A769ED0E55410BB702580077504125902060F00E5541
+</a>
+
+<b>
+01060000000100000001030000000100000030000000F6285C7F4C7750410AD7A300160F554185EB51484C77504100000040160F5541000000B04B7750410AD7A3F0160F554148E17A644B7750418FC2F548170F5541B81E852B4B775041AE47E18A170F5541333333F34977504152B81EF5180F5541CDCCCCCC49775041E17A141E190F554114AE470149775041A4703DFA190F5541CDCCCC9C48775041666666661A0F554166666616487750417B14AEF71A0F5541295C8F62477750419A9999B91B0F5541AE47E13A4777504152B81EE51B0F5541F6285CAF46775041AE47E17A1C0F5541713D0A3746775041CDCCCCFC1C0F55413D0AD7D345775041000000701D0F5541CDCCCC4C47775041F6285C6F1E0F554152B81ED54D775041E17A141E230F5541C3F5283C5077504148E17AC4240F55413D0AD79356775041AE47E16A290F55417B14AE775777504185EB51082A0F554148E17A2458775041EC51B83E290F5541C3F5286C58775041B81E85EB280F554185EB513859775041D7A370FD270F554107AC263F5A775041C22F5AAD280F55411C26804D5B775041757DA197290F55413C3C49F85E775041E30429C52C0F55412F70DC1462775041061174772F0F5541367E7A0265775041B0DE0D01320F5541FEDBABD065775041A295B1E9320F554165B1A8A96777504159FB58FF340F55412C270C4169775041E10FE030370F5541CD0099506C7750410286E3683B0F55417880CCCC6D775041878298D93D0F55412EB0DF186F775041A50A3AFB3F0F5541920E5EBD6F7750416D6A8109410F5541BF6FE401707750414B3A197A410F5541C3F5282C7077504166666656410F5541AE47E14A71775041D7A3708D400F55411F85EB71717750411F85EB71400F554185EB51B8727750411F85EB813F0F554185EB51E872775041E17A145E3F0F55419A9999396F775041295C8F72390F5541C3F5280C6A7750410AD7A340320F55416666664663775041333333832A0F55415C8FC2B55C77504185EB5108240F55413D0AD7034D77504133333363150F5541713D0AB74C775041000000C0150F5541F6285C7F4C7750410AD7A300160F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984054 - 4515745
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000370000000BB702580077504125902060F00E5541417C2F8C0277504157BB3D29F20E5541255126FD0877504182A01D11F70E5541C1B08AE00E7750416ED24F16FB0E55413A159C4813775041F9EEEB1FFE0E5541C0B8ACFE14775041476A6E7DFE0E55416CF631A816775041CCF8A3A6FE0E5541391BC8231A775041244BEBE0000F55414B2F7A711C775041072C4FFC020F554125A940221E7750416F8FC9D9050F5541145E1B7B1F775041C4214FE1070F5541482579CA227750415CBC0EB80A0F55413B6405C3247750416BF840B90C0F554121FBAAA228775041017053F1100F55410A4CC0472C7750411CBF1921140F5541CCD330FB2D77504189CA8715160F55414BA6095637775041E5A8FCCC1C0F554110F34E8C3977504142CFA6241A0F5541BA7337043F7750413E0C21701E0F554143D2627142775041CB983B89200F5541B1464AF54577504153DB12FB210F5541E515553C4D7750412E8807CB250F5541405EFCEC557750417208F3912C0F55413996DCD7597750417E6F7D2B300F5541E3975A4F5D775041379E7926330F55411BFEEF795F7750414798E709350F5541E991640D61775041C04165D5350F554198F7111163775041F5967D3B340F55416CD14CB7657750414272D609370F55414F5A4653697750419C7B89813C0F5541D2B5B2466D77504142C61FDA420F5541C7A1E93170775041682000C9410F5541CE0099506C7750410586E3683B0F554163B1A8A9677750415EFB58FF340F5541337E7A0265775041B0DE0D01320F554105AC263F5A775041BD2F5AAD280F55417DEDDA4458775041FC7B2CEA2A0F554171756B0146775041997491C01C0F5541067DC4BF3D7750413F1DAE24160F5541B35C383D357750410A3B45E90E0F55419ECC8CC230775041FAC540D20A0F5541B2B7A30024775041E20F4250010F55414C8AE2AC15775041F6C4EFFBF60E55413443CBB80D7750414FA4CA9FF10E55412A8445A5027750410C4682E1E90E554130EAE9C7FE7650418DAE4E7FE70E5541E9359DB3F9765041F6D47FDFE40E55417F93621CF8765041A3407D0CE50E55413428A80BF7765041931DE3F4E60E5541777A1B49F7765041EB806020E70E5541D9A4FC22FA765041A74BA4F5E80E5541298264D2FA76504198AFF9ABE90E5541EEF8A5E2FB7650410C472B0FEC0E5541E67455EAFC765041BB01A769ED0E55410BB702580077504125902060F00E5541
+</a>
+
+<b>
+01060000000100000001030000000100000030000000F6285C7F4C7750410AD7A300160F554185EB51484C77504100000040160F5541000000B04B7750410AD7A3F0160F554148E17A644B7750418FC2F548170F5541B81E852B4B775041AE47E18A170F5541333333F34977504152B81EF5180F5541CDCCCCCC49775041E17A141E190F554114AE470149775041A4703DFA190F5541CDCCCC9C48775041666666661A0F554166666616487750417B14AEF71A0F5541295C8F62477750419A9999B91B0F5541AE47E13A4777504152B81EE51B0F5541F6285CAF46775041AE47E17A1C0F5541713D0A3746775041CDCCCCFC1C0F55413D0AD7D345775041000000701D0F5541CDCCCC4C47775041F6285C6F1E0F554152B81ED54D775041E17A141E230F5541C3F5283C5077504148E17AC4240F55413D0AD79356775041AE47E16A290F55417B14AE775777504185EB51082A0F554148E17A2458775041EC51B83E290F5541C3F5286C58775041B81E85EB280F554185EB513859775041D7A370FD270F554107AC263F5A775041C22F5AAD280F55411C26804D5B775041757DA197290F55413C3C49F85E775041E30429C52C0F55412F70DC1462775041061174772F0F5541367E7A0265775041B0DE0D01320F5541FEDBABD065775041A295B1E9320F554165B1A8A96777504159FB58FF340F55412C270C4169775041E10FE030370F5541CD0099506C7750410286E3683B0F55417880CCCC6D775041878298D93D0F55412EB0DF186F775041A50A3AFB3F0F5541920E5EBD6F7750416D6A8109410F5541BF6FE401707750414B3A197A410F5541C3F5282C7077504166666656410F5541AE47E14A71775041D7A3708D400F55411F85EB71717750411F85EB71400F554185EB51B8727750411F85EB813F0F554185EB51E872775041E17A145E3F0F55419A9999396F775041295C8F72390F5541C3F5280C6A7750410AD7A340320F55416666664663775041333333832A0F55415C8FC2B55C77504185EB5108240F55413D0AD7034D77504133333363150F5541713D0AB74C775041000000C0150F5541F6285C7F4C7750410AD7A300160F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984052 - 54290
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000200000017000000018AB0195C3D5141AC3F9D0940AF544185EB5198413D5141000000803AAF54415D968268403D5141D4D474113BAF5441809E42DA3C3D51417719D79F42AF5441632140FA383D5141F393A8A04AAF5441E17A14CE313D51417B14AE3760AF544168633C1A2C3D5141661D04C075AF5441713D0A67283D5141C3F5287C85AF5441822570DE503D51417136DFDD7EAF5441F88A8D12513D51414BCC54AE7FAF54419DD4D703553D51412D667E6B9DAF54417026455A5D3D51415485109EA0AF5441EE0C0DD0613D514147FAD96AA3AF544116FE08C9703D514152B81E85B2AF5441513044017B3D5141E685C5CEB0AF5441AA189D00863D5141AAC93C61ACAF54416249DC2A883D51410B6DED28AAAF54411936AF278C3D5141A0E9FE3FAAAF5441D3CAF528903D5141EB7F6B86ACAF5441E17A142E9D3D5141B6EC9652ABAF54410CC49B42903D5141FA2E1F234CAF5441EC51B8DE8E3D514152B81EA54AAF5441018AB0195C3D5141AC3F9D0940AF54410E000000B509FD4F5B3D5141DE376E678EAF5441FE1019435A3D5141A91577E180AF5441CECDBCB85A3D51419720214E7FAF54414049CB605B3D514124A512A67EAF5441F741AF6D5C3D5141E0273D417EAF544197BBF6585D3D514182E6A7737EAF544121B6A1225E3D5141F461B61B7FAF54419331B0CA5E3D51417C173E9E80AF5441DAF3A8765E3D51416D3447AC85AF544167789ACE5D3D5141977575BB8EAF5441AE3A937A5D3D51410AF183638FAF54410EC14B8F5C3D514165EDF5E98FAF54419C453DE75B3D5141953052748FAF5441B509FD4F5B3D5141DE376E678EAF5441
+</a>
+
+<b>
+0106000000010000000103000000010000000600000054E9388D9C3D5141228C7CB1A6AF544159FE2DA3993D5141F76A173991AF54416BA9537C993D5141B9CED81A90AF544106331E60963D51411A32202590AF54411B7F6237993D51419D171FCCA6AF544154E9388D9C3D5141228C7CB1A6AF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2065756 - 1530305
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000032000000EC51B86EF0D8504185EB51F8A31355411F85EB81F1D85041E17A141EA7135541AE47E11AF2D8504152B81E65A8135541A4703DDAF5D85041D7A3704DA7135541295C8FD2F8D850417B14AEE7A5135541D7A3700DFCD85041295C8FA2A3135541F6285C6FFAD8504185EB51A89F13554148E17AA4F9D85041E17A14CE9C135541713D0A07F9D85041C3F528BC99135541333333A3F8D85041B81E850B97135541F6285C6FF8D85041AE47E10A941355415C8FC255F8D8504152B81ED58E135541EC51B86EF8D85041666666368B13554185EB51D8F8D8504114AE4701871355419A999969F9D85041EC51B89E82135541E17A143EFAD8504148E17AC47D135541CDCCCC9CEFD850419A9999F978135541B81E85BBEED85041E17A144E7C1355415C8FC255EED85041713D0A877F135541713D0A87E6D85041B81E85EB7E135541295C8FC2E2D8504114AE47817E13554152B81EC5DFD85041000000107E1355418FC2F528D7D850415C8FC2857C1355413D0AD723D4D85041666666F67B135541E17A144ECED85041E17A14FE7A1355411F85EBB1CAD85041B81E854B7A135541B81E850BC6D850418FC2F5187913554185EB5178C3D85041F6285C2F78135541713D0AA7C2D8504185EB51E878135541713D0A47C1D85041333333037A13554148E17AD4BFD85041CDCCCC1C7B135541F6285C3FBED85041EC51B82E7C135541E17A149EBCD8504185EB51187D135541F6285CBFBAD8504185EB51F87D13554148E17A44B8D850410AD7A3107F1355411F85EB51BDD85041EC51B8BE8013554148E17A74C0D85041EC51B89E811355413D0AD723C4D8504114AE4781821355410AD7A380CAD850418FC2F5E8831355419A999949D1D8504166666626851355411F85EB51D7D850417B14AE87861355411F85EB61D9D85041CDCCCCDC861355411F85EB21DED8504185EB5188871355419A999949E5D85041000000C08813554114AE4731E8D85041295C8F1289135541F6285C9FEDD85041F6285C6F891355410AD7A3E0EDD850413D0AD7B391135541333333D3EED8504185EB51789C135541A4703D6AEFD850417B14AEE79F135541EC51B86EF0D8504185EB51F8A3135541
+</a>
+
+<b>
+01060000000100000001030000000900000050000000334E3B9CEFD85041311F54F978135541E9461B25EFD850419DE887BE7A135541AC148C34EFD85041B020E87D7A135541ED95DE74EFD850413B3AAE7F79135541DB4D3B9CEFD85041091F54F978135541AE47E11AE7D8504185EB51E874135541AE47E17AE2D85041F6285C2F731355413D0AD733DDD85041AE47E15A71135541E17A146ED4D850410AD7A3706E1355410AD7A300CCD850418FC2F5C86B13554185EB5108CBD8504148E17A246E135541EC51B80ECAD85041A4703D3A70135541CDCCCC3CC8D8504152B81E0573135541209913B0C6D850412E704230751355412BBEFB8DC3D8504151643B2978135541DDED721AC3D8504191C4608878135541EC5BAB35C0D850411E76A4D77A1355411F373556BED85041D07E1A1C7C135541F6DAA553BDD85041566A6CB47C1355413EBC20A8BCD85041576A6C147D135541E53853B2BBD85041EA870D867D135541B4C7FBEAB9D850417C88875F7E1355417D8ED95DB8D85041B6B871F97E135541D0BF4F47B8D850416EC9630F7F13554109CCF843B8D85041767B120E7F135541E60C5CA4B7D85041AD4BCFEA7E1355410EEC1FE3B6D850419C7B7CD77E135541C4B5B5F8B4D85041739538C97E1355412B45788EB0D85041E3D242A07E13554187ABDEB4AED85041D9FB9EAF7E13554187ABDEB4ADD850417D6CDCB97E13554154A10711ADD85041D9D242C07E13554135F3BF4FACD850414A39A9C67E135541C5DE11E8ABD850412B8B61C57E13554109A03FB7ABD850418BAB29C47E135541D7A370ADACD8504114AE478189135541666666D6B1D850413D0AD7138A135541F6285CEFB6D85041D7A370CD8A135541A4703DAABBD8504148E17A748B135541666666C6BDD85041333333F38B135541AE47E19ABFD85041A4703D9A8C135541C3F5281CC1D85041295C8F828D135541713D0A07C3D85041333333138F13554148E17AE4C7D85041295C8F829313554114AE47E1CAD850410AD7A34096135541C3F5282CCED85041C3F5284C99135541295C8F32D0D85041295C8F029B135541C3F5285CD2D850411F85EBA19C1355418FC2F528D4D850413D0AD7D39D1355417B14AE77D6D85041333333339F135541CDCCCCACD8D8504133333363A01355418FC2F5C8DAD850415C8FC235A1135541E17A14DEDCD8504148E17A04A2135541A4703D5AE1D85041E17A149EA313554133333363E2D85041E17A148EA71355413D0AD733ECD850418FC2F588A813554167BEBB7CF0D8504150BA40B9A81355413D0AD7B3F0D85041AE47E1BAA813554115069D17F1D85041DF7C36A2A8135541AE47E11AF2D8504152B81E65A8135541A4703DDAF5D85041D7A3704DA7135541295C8FD2F8D850417B14AEE7A5135541D7A3700DFCD85041295C8FA2A3135541E17A145EFED850418FC2F528A21355418FC2F5E803D95041666666B69E1355411F85EB1106D95041F6285C1F9E135541B81E851B09D9504185EB51789D1355410AD7A3A00DD95041000000D09C1355419A99990910D950411F85EBA19C135541C3F5285C11D950417B14AEB79C135541AE47E1AA15D95041A4703DFA9D135541E17A14BE17D95041295C8FB29E1355410AD7A31018D95041CDCCCCFC9C135541AE47E14A15D95041A4703D3A991355418FC2F5080ED9504114AE47A1901355415C8FC25503D95041666666B6841355413D0AD783FFD8504114AE47318113554100000050FCD850417B14AEE77E135541E17A143EFAD8504148E17AC47D135541334E3B9CEFD85041311F54F9781355410A00000062C417BEEED850417AAE74889B1355413969D4AEEED8504178BD8FFD9A135541B7928493EED85041118C64AF99135541A4DFA17EEED85041940196B998135541D99A8866EED85041B4535ABD9713554197304153EED85041C2A19CD796135541A834C33CEED850414E198FD695135541BA384526EED850419A2479CD9413554194943925EED85041813D3FBF9413554162C417BEEED850417AAE74889B1355410600000045FFE310EED8504156632AD893135541D33E8804EED8504144F7CF68931355412CA949F7EDD85041E869C0C2921355419AD601E6EDD850411D818B02921355413351DDE2EDD8504117A51ECD9113554145FFE310EED8504156632AD8931355410A0000009C223173F0D8504115D56905A41355411F85EB81F1D85041E17A141EA71355416A3094C7F1D85041D31104B3A713554188539C86F1D85041B91CEF2BA713554162EDD65CF1D850414C9F42B8A61355411E16AE43F1D8504115DDFE68A6135541CD63A42CF1D850418D02AB27A6135541C707A4CAF0D85041EA111708A51355414184B478F0D85041DDAAB518A41355419C223173F0D8504115D56905A4135541060000003FB6B2D4EED8504142BD0A819C13554127420C22EFD85041AA0360439E135541CE242213EFD8504112B069F59D1355412AB4E4E8EED850411C870D069D1355418E86FED6EED85041A2E0739A9C1355413FB6B2D4EED8504142BD0A819C13554109000000CDB8D3DFEDD8504127867B999113554136B394DFEDD8504120274C95911355414939D0DAEDD850413135553791135541F4066DD6EDD850410F5BE1BB9013554187231FD1EDD85041A2959EFB8F135541901A4BCFEDD85041DF7C36B28F135541901A4BCFEDD8504108D9C5A48F135541F81910D0EDD850411061629A8F135541CDB8D3DFEDD8504127867B99911355410600000042E614CEEDD850413518265A8F135541FE484DCCEDD8504132BA30318F135541015855C6EDD85041313555978E135541F780B1B5EDD85041979BBB4D8C135541D01E97B4EDD85041C119AE1F8C13554142E614CEEDD850413518265A8F1355410400000030994F38EFD85041CDC3FDC49E13554161715C60EFD850414C2C2AAE9F13554167BEBB4CEFD85041979BBB4D9F13554130994F38EFD85041CDC3FDC49E135541050000006F850685EED85041F9D7DC077E135541C69AFCA0EED85041440454FC7C13554152DBDFB1EED85041688A0A787C1355419BF008BAEED85041BB911E5A7C1355416F850685EED85041F9D7DC077E135541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2065756 - 3698515
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000032000000EC51B86EF0D8504185EB51F8A31355411F85EB81F1D85041E17A141EA7135541AE47E11AF2D8504152B81E65A8135541A4703DDAF5D85041D7A3704DA7135541295C8FD2F8D850417B14AEE7A5135541D7A3700DFCD85041295C8FA2A3135541F6285C6FFAD8504185EB51A89F13554148E17AA4F9D85041E17A14CE9C135541713D0A07F9D85041C3F528BC99135541333333A3F8D85041B81E850B97135541F6285C6FF8D85041AE47E10A941355415C8FC255F8D8504152B81ED58E135541EC51B86EF8D85041666666368B13554185EB51D8F8D8504114AE4701871355419A999969F9D85041EC51B89E82135541E17A143EFAD8504148E17AC47D135541CDCCCC9CEFD850419A9999F978135541B81E85BBEED85041E17A144E7C1355415C8FC255EED85041713D0A877F135541713D0A87E6D85041B81E85EB7E135541295C8FC2E2D8504114AE47817E13554152B81EC5DFD85041000000107E1355418FC2F528D7D850415C8FC2857C1355413D0AD723D4D85041666666F67B135541E17A144ECED85041E17A14FE7A1355411F85EBB1CAD85041B81E854B7A135541B81E850BC6D850418FC2F5187913554185EB5178C3D85041F6285C2F78135541713D0AA7C2D8504185EB51E878135541713D0A47C1D85041333333037A13554148E17AD4BFD85041CDCCCC1C7B135541F6285C3FBED85041EC51B82E7C135541E17A149EBCD8504185EB51187D135541F6285CBFBAD8504185EB51F87D13554148E17A44B8D850410AD7A3107F1355411F85EB51BDD85041EC51B8BE8013554148E17A74C0D85041EC51B89E811355413D0AD723C4D8504114AE4781821355410AD7A380CAD850418FC2F5E8831355419A999949D1D8504166666626851355411F85EB51D7D850417B14AE87861355411F85EB61D9D85041CDCCCCDC861355411F85EB21DED8504185EB5188871355419A999949E5D85041000000C08813554114AE4731E8D85041295C8F1289135541F6285C9FEDD85041F6285C6F891355410AD7A3E0EDD850413D0AD7B391135541333333D3EED8504185EB51789C135541A4703D6AEFD850417B14AEE79F135541EC51B86EF0D8504185EB51F8A3135541
+</a>
+
+<b>
+01060000000100000001030000000900000050000000334E3B9CEFD85041311F54F978135541E9461B25EFD850419DE887BE7A135541AC148C34EFD85041B020E87D7A135541ED95DE74EFD850413B3AAE7F79135541DB4D3B9CEFD85041091F54F978135541AE47E11AE7D8504185EB51E874135541AE47E17AE2D85041F6285C2F731355413D0AD733DDD85041AE47E15A71135541E17A146ED4D850410AD7A3706E1355410AD7A300CCD850418FC2F5C86B13554185EB5108CBD8504148E17A246E135541EC51B80ECAD85041A4703D3A70135541CDCCCC3CC8D8504152B81E0573135541209913B0C6D850412E704230751355412BBEFB8DC3D8504151643B2978135541DDED721AC3D8504191C4608878135541EC5BAB35C0D850411E76A4D77A1355411F373556BED85041D07E1A1C7C135541F6DAA553BDD85041566A6CB47C1355413EBC20A8BCD85041576A6C147D135541E53853B2BBD85041EA870D867D135541B4C7FBEAB9D850417C88875F7E1355417D8ED95DB8D85041B6B871F97E135541D0BF4F47B8D850416EC9630F7F13554109CCF843B8D85041767B120E7F135541E60C5CA4B7D85041AD4BCFEA7E1355410EEC1FE3B6D850419C7B7CD77E135541C4B5B5F8B4D85041739538C97E1355412B45788EB0D85041E3D242A07E13554187ABDEB4AED85041D9FB9EAF7E13554187ABDEB4ADD850417D6CDCB97E13554154A10711ADD85041D9D242C07E13554135F3BF4FACD850414A39A9C67E135541C5DE11E8ABD850412B8B61C57E13554109A03FB7ABD850418BAB29C47E135541D7A370ADACD8504114AE478189135541666666D6B1D850413D0AD7138A135541F6285CEFB6D85041D7A370CD8A135541A4703DAABBD8504148E17A748B135541666666C6BDD85041333333F38B135541AE47E19ABFD85041A4703D9A8C135541C3F5281CC1D85041295C8F828D135541713D0A07C3D85041333333138F13554148E17AE4C7D85041295C8F829313554114AE47E1CAD850410AD7A34096135541C3F5282CCED85041C3F5284C99135541295C8F32D0D85041295C8F029B135541C3F5285CD2D850411F85EBA19C1355418FC2F528D4D850413D0AD7D39D1355417B14AE77D6D85041333333339F135541CDCCCCACD8D8504133333363A01355418FC2F5C8DAD850415C8FC235A1135541E17A14DEDCD8504148E17A04A2135541A4703D5AE1D85041E17A149EA313554133333363E2D85041E17A148EA71355413D0AD733ECD850418FC2F588A813554167BEBB7CF0D8504150BA40B9A81355413D0AD7B3F0D85041AE47E1BAA813554115069D17F1D85041DF7C36A2A8135541AE47E11AF2D8504152B81E65A8135541A4703DDAF5D85041D7A3704DA7135541295C8FD2F8D850417B14AEE7A5135541D7A3700DFCD85041295C8FA2A3135541E17A145EFED850418FC2F528A21355418FC2F5E803D95041666666B69E1355411F85EB1106D95041F6285C1F9E135541B81E851B09D9504185EB51789D1355410AD7A3A00DD95041000000D09C1355419A99990910D950411F85EBA19C135541C3F5285C11D950417B14AEB79C135541AE47E1AA15D95041A4703DFA9D135541E17A14BE17D95041295C8FB29E1355410AD7A31018D95041CDCCCCFC9C135541AE47E14A15D95041A4703D3A991355418FC2F5080ED9504114AE47A1901355415C8FC25503D95041666666B6841355413D0AD783FFD8504114AE47318113554100000050FCD850417B14AEE77E135541E17A143EFAD8504148E17AC47D135541334E3B9CEFD85041311F54F9781355410A00000062C417BEEED850417AAE74889B1355413969D4AEEED8504178BD8FFD9A135541B7928493EED85041118C64AF99135541A4DFA17EEED85041940196B998135541D99A8866EED85041B4535ABD9713554197304153EED85041C2A19CD796135541A834C33CEED850414E198FD695135541BA384526EED850419A2479CD9413554194943925EED85041813D3FBF9413554162C417BEEED850417AAE74889B1355410600000045FFE310EED8504156632AD893135541D33E8804EED8504144F7CF68931355412CA949F7EDD85041E869C0C2921355419AD601E6EDD850411D818B02921355413351DDE2EDD8504117A51ECD9113554145FFE310EED8504156632AD8931355410A0000009C223173F0D8504115D56905A41355411F85EB81F1D85041E17A141EA71355416A3094C7F1D85041D31104B3A713554188539C86F1D85041B91CEF2BA713554162EDD65CF1D850414C9F42B8A61355411E16AE43F1D8504115DDFE68A6135541CD63A42CF1D850418D02AB27A6135541C707A4CAF0D85041EA111708A51355414184B478F0D85041DDAAB518A41355419C223173F0D8504115D56905A4135541060000003FB6B2D4EED8504142BD0A819C13554127420C22EFD85041AA0360439E135541CE242213EFD8504112B069F59D1355412AB4E4E8EED850411C870D069D1355418E86FED6EED85041A2E0739A9C1355413FB6B2D4EED8504142BD0A819C13554109000000CDB8D3DFEDD8504127867B999113554136B394DFEDD8504120274C95911355414939D0DAEDD850413135553791135541F4066DD6EDD850410F5BE1BB9013554187231FD1EDD85041A2959EFB8F135541901A4BCFEDD85041DF7C36B28F135541901A4BCFEDD8504108D9C5A48F135541F81910D0EDD850411061629A8F135541CDB8D3DFEDD8504127867B99911355410600000042E614CEEDD850413518265A8F135541FE484DCCEDD8504132BA30318F135541015855C6EDD85041313555978E135541F780B1B5EDD85041979BBB4D8C135541D01E97B4EDD85041C119AE1F8C13554142E614CEEDD850413518265A8F1355410400000030994F38EFD85041CDC3FDC49E13554161715C60EFD850414C2C2AAE9F13554167BEBB4CEFD85041979BBB4D9F13554130994F38EFD85041CDC3FDC49E135541050000006F850685EED85041F9D7DC077E135541C69AFCA0EED85041440454FC7C13554152DBDFB1EED85041688A0A787C1355419BF008BAEED85041BB911E5A7C1355416F850685EED85041F9D7DC077E135541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>968671 - 389154
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000001000000390000004E36937314985041F7F8C6BF312154411462536F14985041B8D319A7312154419A9999A9109850413D0AD7D331215441C8677A7910985041304E19D33121544197482D590E98504118C598F6312154413D6770430E98504149BAB148312154418FC2F5F80D985041D7A3701D30215441713D0A670D9850413D0AD7E32A215441AA879E5B09985041031706272B215441968BF5CD089850414FCD423B2B2154412C7A0D27089850413FEBB2041D2154419A9999A9FA9750415C8FC2151F21544152B81E35FA97504166666636212154410AD7A390F9975041B81E853B2421544148E17AD4F8975041AE47E15A27215441CDCCCC4CF89750410AD7A3F029215441CDCCCCDCF79750415C8FC2152E21544133333363F7975041666666D632215441713D0A47F7975041CDCCCC7C362154419A9999F9F69750413D0AD7E33A2154418E380675F69750418DA24BEF4121544170260DF7F89750418DA24BEF41215441A7EBEEC6F79750412634D00646215441B9828F61F79750416931424548215441B9828F61F7975041AD2EB4834A215441577324A5F7975041F02B26C24C21544114AE4791F8975041B81E859B4E21544148E17A44FC9750411F85EBC153215441B81E85DB00985041C3F528BC5A2154417B14AEB705985041F6285C5F62215441333333B309985041AE47E1BA67215441713D0AF70A98504152B81E35682154419A9999890C98504148E17A1468215441A4703DEA0D98504152B81E95672154417B14AEB70F9850413D0AD74366215441333333C3129850415C8FC2C563215441D7A370CD169850419A9999096021544152B81EB5189850411F85EB715E21544114AE47111B9850415C8FC2555C2154410AD7A3201C985041333333635B215441AE47E1FA1C985041A4703D6A5A21544191DE058623985041A2E6A172532154416666665620985041A4703DAA4F215441666666261D98504185EB51C84A215441D842266B1A985041393312BA4621544198C29C6F19985041E952A67F4521544159896640199850412CA703F2442154415DF100091898504133BFB60A432154413197E9FB1798504107659FFD42215441AB1901F417985041382BDAE94221544114AE479117985041F6285C4F422154417961FC0616985041BF451F9B3D2154418C8A0C0116985041562032943D215441DB02D722169850418CE513643C2154413D1242DF15985041629B8A773B2154414FA9E27915985041ABF70CE2392154414E36937314985041F7F8C6BF31215441
+</a>
+
+<b>
+0106000000010000000103000000010000002E000000AE47E11A1098504148E17AA465215441E17A142E139850411F85EBE162215441F6285C9F17985041D7A3709D5E2154419A9999A91A985041000000105C215441A4703DAA1C9850415C8FC2E559215441A4703DAA199850417B14AEF754215441666666A6159850419A9999794F215441D7A3707D11985041A4703DFA4921544152B81E150E985041F6285C3F45215441D7A3700D0B9850413333335345215441EC51B88E0B985041A4703D8A422154418FC2F5580C9850418FC2F5D83F2154417B14AE170D985041D7A3704D3E2154411F85EB610E985041A4703D8A3D2154411F85EB911198504185EB51083C2154417B14AE7715985041000000503A2154410AD7A37014985041713D0AA7312154419A9999A9109850413D0AD7D3312154413D0AD7630E985041AE47E1CA312154418FC2F5F80D985041D7A3701D30215441713D0A670D9850413D0AD7E32A21544114AE47D108985041000000302B215441E17A144E08985041EC51B8FE1C2154419A9999A9FA9750415C8FC2151F21544152B81E35FA9750416666663621215441E17A14DEF997504148E17A04242154410AD7A360F9975041B81E85EB262154418FC2F5D8F8975041A4703DFA292154419A999939F897504185EB51582F215441CDCCCC0CF89750415C8FC2F533215441B81E854BF897504152B81E5538215441B81E85EBF897504185EB51183B21544114AE4791FA975041B81E85FB3C2154411F85EB01FA975041295C8F2243215441B81E854BF89750419A9999F943215441E17A148EF7975041C3F5284C49215441CDCCCC0CF897504148E17A544C21544114AE4791F8975041B81E859B4E21544148E17A44FC9750411F85EBC153215441B81E85DB00985041C3F528BC5A2154417B14AEB705985041F6285C5F62215441333333B309985041AE47E1BA67215441713D0AF70A98504152B81E35682154419A9999890C98504148E17A146821544152B81E250E9850410AD7A34067215441AE47E11A1098504148E17AA465215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>968671 - 389215
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000390000004E36937314985041F7F8C6BF312154411462536F14985041B8D319A7312154419A9999A9109850413D0AD7D331215441C8677A7910985041304E19D33121544197482D590E98504118C598F6312154413D6770430E98504149BAB148312154418FC2F5F80D985041D7A3701D30215441713D0A670D9850413D0AD7E32A215441AA879E5B09985041031706272B215441968BF5CD089850414FCD423B2B2154412C7A0D27089850413FEBB2041D2154419A9999A9FA9750415C8FC2151F21544152B81E35FA97504166666636212154410AD7A390F9975041B81E853B2421544148E17AD4F8975041AE47E15A27215441CDCCCC4CF89750410AD7A3F029215441CDCCCCDCF79750415C8FC2152E21544133333363F7975041666666D632215441713D0A47F7975041CDCCCC7C362154419A9999F9F69750413D0AD7E33A2154418E380675F69750418DA24BEF4121544170260DF7F89750418DA24BEF41215441A7EBEEC6F79750412634D00646215441B9828F61F79750416931424548215441B9828F61F7975041AD2EB4834A215441577324A5F7975041F02B26C24C21544114AE4791F8975041B81E859B4E21544148E17A44FC9750411F85EBC153215441B81E85DB00985041C3F528BC5A2154417B14AEB705985041F6285C5F62215441333333B309985041AE47E1BA67215441713D0AF70A98504152B81E35682154419A9999890C98504148E17A1468215441A4703DEA0D98504152B81E95672154417B14AEB70F9850413D0AD74366215441333333C3129850415C8FC2C563215441D7A370CD169850419A9999096021544152B81EB5189850411F85EB715E21544114AE47111B9850415C8FC2555C2154410AD7A3201C985041333333635B215441AE47E1FA1C985041A4703D6A5A21544191DE058623985041A2E6A172532154416666665620985041A4703DAA4F215441666666261D98504185EB51C84A215441D842266B1A985041393312BA4621544198C29C6F19985041E952A67F4521544159896640199850412CA703F2442154415DF100091898504133BFB60A432154413197E9FB1798504107659FFD42215441AB1901F417985041382BDAE94221544114AE479117985041F6285C4F422154417961FC0616985041BF451F9B3D2154418C8A0C0116985041562032943D215441DB02D722169850418CE513643C2154413D1242DF15985041629B8A773B2154414FA9E27915985041ABF70CE2392154414E36937314985041F7F8C6BF31215441
+</a>
+
+<b>
+0106000000010000000103000000010000003500000048E17A942A985041AE47E1CA4E2154419A99992928985041295C8F124B215441713D0A5723985041B81E852B442154415C8FC2852F98504148E17A143C215441EC51B87E2D985041EC51B8AE332154415C8FC2052B985041C3F528AC29215441CDCCCC1C2B985041295C8FF226215441EC51B86E27985041B81E85EB1A215441EC51B83E239850413D0AD7E31B215441666666261E985041F6285C8F1D215441666666161D9850415C8FC2D519215441713D0A071B985041EC51B89E12215441666666261A985041666666360D215441666666461A98504152B81E8509215441C3F528EC1A985041A4703D5A06215441EC51B81E1C985041C3F5287C022154419A9999291D9850418FC2F568FF205441000000D01F9850415C8FC295F920544114AE47D1249850411F85EB61F22054413D0AD743249850419A999989F1205441000000C01F985041EC51B87EEA205441E17A146E1B985041713D0A77E3205441B81E857B17985041295C8F52E6205441A4703DBA1398504185EB51C8E9205441713D0A97109850417B14AE57ED205441A4703DCA0C98504152B81E65F220544114AE478109985041B81E85DBF6205441CDCCCCDC05985041F6285C8FFC205441F6285C9F03985041C3F528AC00215441AE47E1AA0198504148E17A6405215441AE47E10A00985041713D0AF709215441AE47E1BAFD975041AE47E15A10215441AE47E13AFC97504152B81EB5162154411F85EB51FB97504114AE47911B2154419A9999A9FA9750415C8FC2151F215441E17A144E08985041EC51B8FE1C21544114AE47D108985041000000302B215441713D0A670D9850413D0AD7E32A2154418FC2F5F80D985041D7A3701D302154413D0AD7630E985041AE47E1CA312154419A9999A9109850413D0AD7D3312154410AD7A37014985041713D0AA7312154417B14AE7715985041000000503A215441CDCCCCAC159850417B14AE873C21544114AE479117985041F6285C4F42215441C3F528DC199850415C8FC2E545215441666666261D98504185EB51C84A2154416666665620985041A4703DAA4F215441713D0A87239850413D0AD77353215441CDCCCC6C2498504100000090542154417B14AE87259850416666668653215441E17A14CE2898504148E17A745021544148E17A942A985041AE47E1CA4E215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>968671 - 1817284
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000390000004E36937314985041F7F8C6BF312154411462536F14985041B8D319A7312154419A9999A9109850413D0AD7D331215441C8677A7910985041304E19D33121544197482D590E98504118C598F6312154413D6770430E98504149BAB148312154418FC2F5F80D985041D7A3701D30215441713D0A670D9850413D0AD7E32A215441AA879E5B09985041031706272B215441968BF5CD089850414FCD423B2B2154412C7A0D27089850413FEBB2041D2154419A9999A9FA9750415C8FC2151F21544152B81E35FA97504166666636212154410AD7A390F9975041B81E853B2421544148E17AD4F8975041AE47E15A27215441CDCCCC4CF89750410AD7A3F029215441CDCCCCDCF79750415C8FC2152E21544133333363F7975041666666D632215441713D0A47F7975041CDCCCC7C362154419A9999F9F69750413D0AD7E33A2154418E380675F69750418DA24BEF4121544170260DF7F89750418DA24BEF41215441A7EBEEC6F79750412634D00646215441B9828F61F79750416931424548215441B9828F61F7975041AD2EB4834A215441577324A5F7975041F02B26C24C21544114AE4791F8975041B81E859B4E21544148E17A44FC9750411F85EBC153215441B81E85DB00985041C3F528BC5A2154417B14AEB705985041F6285C5F62215441333333B309985041AE47E1BA67215441713D0AF70A98504152B81E35682154419A9999890C98504148E17A1468215441A4703DEA0D98504152B81E95672154417B14AEB70F9850413D0AD74366215441333333C3129850415C8FC2C563215441D7A370CD169850419A9999096021544152B81EB5189850411F85EB715E21544114AE47111B9850415C8FC2555C2154410AD7A3201C985041333333635B215441AE47E1FA1C985041A4703D6A5A21544191DE058623985041A2E6A172532154416666665620985041A4703DAA4F215441666666261D98504185EB51C84A215441D842266B1A985041393312BA4621544198C29C6F19985041E952A67F4521544159896640199850412CA703F2442154415DF100091898504133BFB60A432154413197E9FB1798504107659FFD42215441AB1901F417985041382BDAE94221544114AE479117985041F6285C4F422154417961FC0616985041BF451F9B3D2154418C8A0C0116985041562032943D215441DB02D722169850418CE513643C2154413D1242DF15985041629B8A773B2154414FA9E27915985041ABF70CE2392154414E36937314985041F7F8C6BF31215441
+</a>
+
+<b>
+0106000000010000000103000000010000003500000048E17A942A985041AE47E1CA4E2154419A99992928985041295C8F124B215441713D0A5723985041B81E852B442154415C8FC2852F98504148E17A143C215441EC51B87E2D985041EC51B8AE332154415C8FC2052B985041C3F528AC29215441CDCCCC1C2B985041295C8FF226215441EC51B86E27985041B81E85EB1A215441EC51B83E239850413D0AD7E31B2154419AF7CCCC1E9850411BED79E71B215441666666161D9850415C8FC2D519215441713D0A071B985041EC51B89E12215441666666261A985041666666360D215441666666461A98504152B81E8509215441C3F528EC1A985041A4703D5A06215441EC51B81E1C985041C3F5287C022154419A9999291D9850418FC2F568FF205441000000D01F9850415C8FC295F920544114AE47D1249850411F85EB61F22054413D0AD743249850419A999989F1205441000000C01F985041EC51B87EEA205441E17A146E1B985041713D0A77E3205441B81E857B17985041295C8F52E6205441A4703DBA1398504185EB51C8E9205441713D0A97109850417B14AE57ED205441A4703DCA0C98504152B81E65F220544114AE478109985041B81E85DBF6205441CDCCCCDC05985041F6285C8FFC205441F6285C9F03985041C3F528AC00215441AE47E1AA0198504148E17A6405215441AE47E10A00985041713D0AF709215441AE47E1BAFD975041AE47E15A10215441AE47E13AFC97504152B81EB5162154411F85EB51FB97504114AE47911B2154419A9999A9FA9750415C8FC2151F215441E17A144E08985041EC51B8FE1C21544114AE47D108985041000000302B215441713D0A670D9850413D0AD7E32A2154418FC2F5F80D985041D7A3701D302154413D0AD7630E985041AE47E1CA312154419A9999A9109850413D0AD7D3312154410AD7A37014985041713D0AA7312154417B14AE7715985041000000503A215441CDCCCCAC159850417B14AE873C21544114AE479117985041F6285C4F42215441C3F528DC199850415C8FC2E545215441666666261D98504185EB51C84A2154416666665620985041A4703DAA4F215441713D0A87239850413D0AD77353215441CDCCCC6C2498504100000090542154417B14AE87259850416666668653215441E17A14CE2898504148E17A745021544148E17A942A985041AE47E1CA4E215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>968671 - 3443061
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000390000004E36937314985041F7F8C6BF312154411462536F14985041B8D319A7312154419A9999A9109850413D0AD7D331215441C8677A7910985041304E19D33121544197482D590E98504118C598F6312154413D6770430E98504149BAB148312154418FC2F5F80D985041D7A3701D30215441713D0A670D9850413D0AD7E32A215441AA879E5B09985041031706272B215441968BF5CD089850414FCD423B2B2154412C7A0D27089850413FEBB2041D2154419A9999A9FA9750415C8FC2151F21544152B81E35FA97504166666636212154410AD7A390F9975041B81E853B2421544148E17AD4F8975041AE47E15A27215441CDCCCC4CF89750410AD7A3F029215441CDCCCCDCF79750415C8FC2152E21544133333363F7975041666666D632215441713D0A47F7975041CDCCCC7C362154419A9999F9F69750413D0AD7E33A2154418E380675F69750418DA24BEF4121544170260DF7F89750418DA24BEF41215441A7EBEEC6F79750412634D00646215441B9828F61F79750416931424548215441B9828F61F7975041AD2EB4834A215441577324A5F7975041F02B26C24C21544114AE4791F8975041B81E859B4E21544148E17A44FC9750411F85EBC153215441B81E85DB00985041C3F528BC5A2154417B14AEB705985041F6285C5F62215441333333B309985041AE47E1BA67215441713D0AF70A98504152B81E35682154419A9999890C98504148E17A1468215441A4703DEA0D98504152B81E95672154417B14AEB70F9850413D0AD74366215441333333C3129850415C8FC2C563215441D7A370CD169850419A9999096021544152B81EB5189850411F85EB715E21544114AE47111B9850415C8FC2555C2154410AD7A3201C985041333333635B215441AE47E1FA1C985041A4703D6A5A21544191DE058623985041A2E6A172532154416666665620985041A4703DAA4F215441666666261D98504185EB51C84A215441D842266B1A985041393312BA4621544198C29C6F19985041E952A67F4521544159896640199850412CA703F2442154415DF100091898504133BFB60A432154413197E9FB1798504107659FFD42215441AB1901F417985041382BDAE94221544114AE479117985041F6285C4F422154417961FC0616985041BF451F9B3D2154418C8A0C0116985041562032943D215441DB02D722169850418CE513643C2154413D1242DF15985041629B8A773B2154414FA9E27915985041ABF70CE2392154414E36937314985041F7F8C6BF31215441
+</a>
+
+<b>
+0106000000010000000103000000010000003500000048E17A942A985041AE47E1CA4E2154419A99992928985041295C8F124B215441713D0A5723985041B81E852B442154415C8FC2852F98504148E17A143C215441EC51B87E2D985041EC51B8AE332154415C8FC2052B985041C3F528AC29215441CDCCCC1C2B985041295C8FF226215441EC51B86E27985041B81E85EB1A215441EC51B83E239850413D0AD7E31B2154419AF7CCCC1E9850411BED79E71B215441666666161D9850415C8FC2D519215441713D0A071B985041EC51B89E12215441666666261A985041666666360D215441666666461A98504152B81E8509215441C3F528EC1A985041A4703D5A06215441EC51B81E1C985041C3F5287C022154419A9999291D9850418FC2F568FF205441000000D01F9850415C8FC295F920544114AE47D1249850411F85EB61F22054413D0AD743249850419A999989F1205441000000C01F985041EC51B87EEA205441E17A146E1B985041713D0A77E3205441B81E857B17985041295C8F52E6205441A4703DBA1398504185EB51C8E9205441713D0A97109850417B14AE57ED205441A4703DCA0C98504152B81E65F220544114AE478109985041B81E85DBF6205441CDCCCCDC05985041F6285C8FFC205441F6285C9F03985041C3F528AC00215441AE47E1AA0198504148E17A6405215441AE47E10A00985041713D0AF709215441AE47E1BAFD975041AE47E15A10215441AE47E13AFC97504152B81EB5162154411F85EB51FB97504114AE47911B2154419A9999A9FA9750415C8FC2151F215441E17A144E08985041EC51B8FE1C21544114AE47D108985041000000302B215441713D0A670D9850413D0AD7E32A2154418FC2F5F80D985041D7A3701D302154413D0AD7630E985041AE47E1CA312154419A9999A9109850413D0AD7D3312154410AD7A37014985041713D0AA7312154417B14AE7715985041000000503A215441CDCCCCAC159850417B14AE873C21544114AE479117985041F6285C4F42215441C3F528DC199850415C8FC2E545215441666666261D98504185EB51C84A2154416666665620985041A4703DAA4F215441713D0A87239850413D0AD77353215441CDCCCC6C2498504100000090542154417B14AE87259850416666668653215441E17A14CE2898504148E17A745021544148E17A942A985041AE47E1CA4E215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984266 - 1150821
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000200000042000000961FF172605D51419F50EBE8314254417F2075AE615D51412E9F1BA0314254411DAB6EB9625D514189763DEB2F42544106ACF2F4635D51413662CE102F4254417FFBA6E7645D5141102789F82E425441ACD4D0A9655D5141A7139E592F42544142C1E50A665D5141459E976430425441483FD665665D5141F6EFBDB03142544131642FE0665D51414C111CD2314254410712FC38685D51414C111CD231425441A64146BE695D514131D25AE8314254417BEF12176B5D514155D9509A3242544167B28E956C5D5141F9023F6D334254419C299D016E5D5141DB65DEFE33425441C67AF64D6F5D5141A6AF71C63442544141A34A21705D5141AA138C2A35425441D70A60DE705D51418ED4CA40354254418E1551E9715D5141C1EE32B0344254417B9EC4C7725D5141F4089B1F344254410DA2BF20735D5141D8C9D93534425441DFB7A6FA735D51416AB40EB633425441ACD109A6745D51415DA185623342544142391F63755D514107802741334254414108DF28765D514118A09FDB32425441010C4536775D5141C3D5554132425441E630BDDD775D51417277C12631425441F75CEDDC785D51415F88A8F330425441C8A69FD1795D514192A21063304254410C47342F7B5D51413D00B3BA2F42544139205EF17B5D514181D858412F4254410B2266687E5D5141A09A87762B42544139FB8F2A7F5D514102108E6B2A42544165AFEB25835D514137F6062C2242544122D7459F835D51413058228221425441658A1D5F865D5141DD43B3A72042544165654F98895D514128BA3DD820425441B0B60B028D5D5141211C592E20425441C66BEB38925D5141F4422F6C1F425441B72F22E5905D5141C66905AA1E42544183DDE13F8C5D51415D561A0B1F42544192634721875D5141197E74841F425441B1257656835D5141B06A89E51F425441045FB3F7805D51418A5412941C425441961C4E03775D51411B377B660F4254412D53FFF1705D51417EF61DE9074254415B51F77A6E5D51417E1BECAF04425441729A0FCD665D5141C262FC8AFA41544154227D25645D51412C9BB5F0F64154416B46C7B05F5D5141C3D166DFF04154419944BF395D5D51419EBBEF8DED41544192F0761D565D5141E1939514ED415441363E2399545D51419F59D437EE415441B0B2A552525D5141E89D41A3FA4154412727280C505D51416A29BFE9FC415441A09BAAC54D5D514116F08148FF4154414EAC09B2495D5141D2F20DFB02425441C9208C6B475D51410B08011105425441856DB4AB445D51411A1FFC9D09425441F54352BB415D51414172C07E0F4254418C30671C425D5141C03A8B54144254414858C195425D5141FC4F7E6A16425441C1A77588435D51416DDC7FEC19425441ED3603BD4A5D5141B06A89E51F42544145C4887A4F5D5141B2E39FC823425441DE413387595D5141AA386C202C425441961FF172605D51419F50EBE83142544105000000BC3568C4635D51412429A82C174254410787242E675D51417762E5CD14425441CA4C6351685D51418D3C93CB164254415AC061CF645D51417EDBFBB018425441BC3568C4635D51412429A82C17425441
+</a>
+
+<b>
+01060000000100000001030000000200000042000000921FF172605D51419B50EBE8314254417E2075AE615D51412D9F1BA03142544119AB6EB9625D51418E763DEB2F42544105ACF2F4635D51413962CE102F42544182FBA6E7645D5141102789F82E425441AFD4D0A9655D5141A7139E592F42544145C1E50A665D5141429E976430425441473FD665665D5141FBEFBDB03142544131642FE0665D51414E111CD2314254410A12FC38685D51414E111CD231425441A34146BE695D514134D25AE8314254417CEF12176B5D514157D9509A324254416BB28E956C5D5141F5023F6D334254419C299D016E5D5141DC65DEFE33425441C67AF64D6F5D5141A5AF71C6344254413CA34A21705D5141AA138C2A35425441D80A60DE705D514190D4CA4035425441921551E9715D5141C0EE32B034425441809EC4C7725D5141F0089B1F344254410CA2BF20735D5141D6C9D93534425441DAB7A6FA735D51416EB40EB633425441B0D109A6745D51415FA185623342544141391F63755D51410C802741334254414308DF28765D514119A09FDB32425441030C4536775D5141C0D5554132425441E330BDDD775D51416F77C12631425441FB5CEDDC785D51415F88A8F330425441C4A69FD1795D514190A21063304254410F47342F7B5D51413D00B3BA2F4254413C205EF17B5D51417FD858412F425441082266687E5D51419E9A87762B42544135FB8F2A7F5D514103108E6B2A42544166AFEB25835D514134F6062C2242544125D7459F835D51412F582282214254416A8A1D5F865D5141DA43B3A72042544163654F98895D51412BBA3DD820425441ADB60B028D5D5141261C592E20425441C96BEB38925D5141F9422F6C1F425441B52F22E5905D5141C26905AA1E42544180DDE13F8C5D514158561A0B1F42544197634721875D5141177E74841F425441AC257656835D5141AD6A89E51F425441085FB3F7805D51418C5412941C425441991C4E03775D514118377B660F4254413253FFF1705D514180F61DE9074254415B51F77A6E5D51417C1BECAF04425441729A0FCD665D5141C762FC8AFA41544155227D25645D51412D9BB5F0F64154417046C7B05F5D5141C6D166DFF04154419944BF395D5D51419ABBEF8DED4154418DF0761D565D5141E6939514ED415441333E2399545D51419F59D437EE415441ADB2A552525D5141E59D41A3FA4154412627280C505D51416B29BFE9FC415441A09BAAC54D5D51411AF08148FF41544151AC09B2495D5141D2F20DFB02425441CB208C6B475D51410808011105425441856DB4AB445D5141151FFC9D09425441FA4352BB415D51414172C07E0F4254419130671C425D5141BC3A8B54144254414558C195425D5141FD4F7E6A16425441C2A77588435D51416FDC7FEC19425441EC3603BD4A5D5141AD6A89E51F4254414AC4887A4F5D5141B6E39FC823425441E1413387595D5141AE386C202C425441921FF172605D51419B50EBE83142544105000000BF3568C4635D51411F29A82C174254410887242E675D51417B62E5CD14425441CC4C6351685D5141883C93CB164254415AC061CF645D514183DBFBB018425441BF3568C4635D51411F29A82C17425441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984266 - 3944990
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000200000042000000961FF172605D51419F50EBE8314254417F2075AE615D51412E9F1BA0314254411DAB6EB9625D514189763DEB2F42544106ACF2F4635D51413662CE102F4254417FFBA6E7645D5141102789F82E425441ACD4D0A9655D5141A7139E592F42544142C1E50A665D5141459E976430425441483FD665665D5141F6EFBDB03142544131642FE0665D51414C111CD2314254410712FC38685D51414C111CD231425441A64146BE695D514131D25AE8314254417BEF12176B5D514155D9509A3242544167B28E956C5D5141F9023F6D334254419C299D016E5D5141DB65DEFE33425441C67AF64D6F5D5141A6AF71C63442544141A34A21705D5141AA138C2A35425441D70A60DE705D51418ED4CA40354254418E1551E9715D5141C1EE32B0344254417B9EC4C7725D5141F4089B1F344254410DA2BF20735D5141D8C9D93534425441DFB7A6FA735D51416AB40EB633425441ACD109A6745D51415DA185623342544142391F63755D514107802741334254414108DF28765D514118A09FDB32425441010C4536775D5141C3D5554132425441E630BDDD775D51417277C12631425441F75CEDDC785D51415F88A8F330425441C8A69FD1795D514192A21063304254410C47342F7B5D51413D00B3BA2F42544139205EF17B5D514181D858412F4254410B2266687E5D5141A09A87762B42544139FB8F2A7F5D514102108E6B2A42544165AFEB25835D514137F6062C2242544122D7459F835D51413058228221425441658A1D5F865D5141DD43B3A72042544165654F98895D514128BA3DD820425441B0B60B028D5D5141211C592E20425441C66BEB38925D5141F4422F6C1F425441B72F22E5905D5141C66905AA1E42544183DDE13F8C5D51415D561A0B1F42544192634721875D5141197E74841F425441B1257656835D5141B06A89E51F425441045FB3F7805D51418A5412941C425441961C4E03775D51411B377B660F4254412D53FFF1705D51417EF61DE9074254415B51F77A6E5D51417E1BECAF04425441729A0FCD665D5141C262FC8AFA41544154227D25645D51412C9BB5F0F64154416B46C7B05F5D5141C3D166DFF04154419944BF395D5D51419EBBEF8DED41544192F0761D565D5141E1939514ED415441363E2399545D51419F59D437EE415441B0B2A552525D5141E89D41A3FA4154412727280C505D51416A29BFE9FC415441A09BAAC54D5D514116F08148FF4154414EAC09B2495D5141D2F20DFB02425441C9208C6B475D51410B08011105425441856DB4AB445D51411A1FFC9D09425441F54352BB415D51414172C07E0F4254418C30671C425D5141C03A8B54144254414858C195425D5141FC4F7E6A16425441C1A77588435D51416DDC7FEC19425441ED3603BD4A5D5141B06A89E51F42544145C4887A4F5D5141B2E39FC823425441DE413387595D5141AA386C202C425441961FF172605D51419F50EBE83142544105000000BC3568C4635D51412429A82C174254410787242E675D51417762E5CD14425441CA4C6351685D51418D3C93CB164254415AC061CF645D51417EDBFBB018425441BC3568C4635D51412429A82C17425441
+</a>
+
+<b>
+01060000000100000001030000000200000042000000921FF172605D51419B50EBE8314254417E2075AE615D51412D9F1BA03142544119AB6EB9625D51418E763DEB2F42544105ACF2F4635D51413962CE102F42544182FBA6E7645D5141102789F82E425441AFD4D0A9655D5141A7139E592F42544145C1E50A665D5141429E976430425441473FD665665D5141FBEFBDB03142544131642FE0665D51414E111CD2314254410A12FC38685D51414E111CD231425441A34146BE695D514134D25AE8314254417CEF12176B5D514157D9509A324254416BB28E956C5D5141F5023F6D334254419C299D016E5D5141DC65DEFE33425441C67AF64D6F5D5141A5AF71C6344254413CA34A21705D5141AA138C2A35425441D80A60DE705D514190D4CA4035425441921551E9715D5141C0EE32B034425441809EC4C7725D5141F0089B1F344254410CA2BF20735D5141D6C9D93534425441DAB7A6FA735D51416EB40EB633425441B0D109A6745D51415FA185623342544141391F63755D51410C802741334254414308DF28765D514119A09FDB32425441030C4536775D5141C0D5554132425441E330BDDD775D51416F77C12631425441FB5CEDDC785D51415F88A8F330425441C4A69FD1795D514190A21063304254410F47342F7B5D51413D00B3BA2F4254413C205EF17B5D51417FD858412F425441082266687E5D51419E9A87762B42544135FB8F2A7F5D514103108E6B2A42544166AFEB25835D514134F6062C2242544125D7459F835D51412F582282214254416A8A1D5F865D5141DA43B3A72042544163654F98895D51412BBA3DD820425441ADB60B028D5D5141261C592E20425441C96BEB38925D5141F9422F6C1F425441B52F22E5905D5141C26905AA1E42544180DDE13F8C5D514158561A0B1F42544197634721875D5141177E74841F425441AC257656835D5141AD6A89E51F425441085FB3F7805D51418C5412941C425441991C4E03775D514118377B660F4254413253FFF1705D514180F61DE9074254415B51F77A6E5D51417C1BECAF04425441729A0FCD665D5141C762FC8AFA41544155227D25645D51412D9BB5F0F64154417046C7B05F5D5141C6D166DFF04154419944BF395D5D51419ABBEF8DED4154418DF0761D565D5141E6939514ED415441333E2399545D51419F59D437EE415441ADB2A552525D5141E59D41A3FA4154412627280C505D51416B29BFE9FC415441A09BAAC54D5D51411AF08148FF41544151AC09B2495D5141D2F20DFB02425441CB208C6B475D51410808011105425441856DB4AB445D5141151FFC9D09425441FA4352BB415D51414172C07E0F4254419130671C425D5141BC3A8B54144254414558C195425D5141FD4F7E6A16425441C2A77588435D51416FDC7FEC19425441EC3603BD4A5D5141AD6A89E51F4254414AC4887A4F5D5141B6E39FC823425441E1413387595D5141AE386C202C425441921FF172605D51419B50EBE83142544105000000BF3568C4635D51411F29A82C174254410887242E675D51417B62E5CD14425441CC4C6351685D5141883C93CB164254415AC061CF645D514183DBFBB018425441BF3568C4635D51411F29A82C17425441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>160669 - 160887
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001C000000BAF3068E8B405141DB2278360B1B554174A6BB6E8C4051418170EE070D1B55414F2F27AC8D4051418A1AF1DE0E1B55418DCE1A108F4051410ACD20EF101B5541B2655A8F93405141F5A4A758151B554180F0256A99405141FE38CA2E1A1B5541152B190DA140514105834E1F201B5541F877B0AFA34051412086AB8F221B5541D7A370EDAF405141B81E858B1A1B554152B81EA5CC4051411F85EBA1071B5541B81E857BC84051417B14AE37FD1A55418FC2F5A8B7405141713D0AC7D31A55411F85EB21B140514114AE4781C31A55417B14AEE789405141AE47E1BAD81A5541B81E85CB754051410AD7A3E0E31A5541B81E85EB77405141713D0A77E61A55413333338379405141713D0A67E81A5541D7A3705D7A4051411F85EBD1E91A5541F6285C2F7F4051410AD7A3D0F11A55410AD7A3A0824051418FC2F578FB1A55415BBC702483405141AA7BD438001B5541A0CA7A8B83405141D906CAB1001B5541960BE363874051414D7DAACB031B55412D597F108840514155F60367041B5541E7EDBE81894051414EEA8DFC061B554122BFA3B789405141DCA1BE99071B55413E31A13E8B405141DAC600920A1B5541BAF3068E8B405141DB2278360B1B5541
+</a>
+
+<b>
+01060000000100000001030000000100000015000000F877B0AFA34051412086AB8F221B55419234EA6CA1405141DD33FD77201B5541BBC5EEFF994051414CFB49A31A1B554180F0256A99405141FE38CA2E1A1B5541B2655A8F93405141F5A4A758151B55418DCE1A108F4051410ACD20EF101B55414F2F27AC8D4051418A1AF1DE0E1B554174A6BB6E8C4051418170EE070D1B55415FF6068E8B405141502878360B1B5541D7896C398B4051415A81E1870A1B554122BFA3B789405141DCA1BE99071B5541E7EDBE81894051414EEA8DFC061B55412D597F108840514155F60367041B5541960BE363874051414D7DAACB031B5541EA90B3358340514157F99C6C001B554148E17AC4814051415C8FC265041B5541713D0A0785405141A4703D2A151B5541EC51B89E91405141F6285CDF1C1B55415C8FC245974051417B14AE07201B5541A4703DEA9E405141F6285CBF251B5541F877B0AFA34051412086AB8F221B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>160669 - 1385160
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001C000000BAF3068E8B405141DB2278360B1B554174A6BB6E8C4051418170EE070D1B55414F2F27AC8D4051418A1AF1DE0E1B55418DCE1A108F4051410ACD20EF101B5541B2655A8F93405141F5A4A758151B554180F0256A99405141FE38CA2E1A1B5541152B190DA140514105834E1F201B5541F877B0AFA34051412086AB8F221B5541D7A370EDAF405141B81E858B1A1B554152B81EA5CC4051411F85EBA1071B5541B81E857BC84051417B14AE37FD1A55418FC2F5A8B7405141713D0AC7D31A55411F85EB21B140514114AE4781C31A55417B14AEE789405141AE47E1BAD81A5541B81E85CB754051410AD7A3E0E31A5541B81E85EB77405141713D0A77E61A55413333338379405141713D0A67E81A5541D7A3705D7A4051411F85EBD1E91A5541F6285C2F7F4051410AD7A3D0F11A55410AD7A3A0824051418FC2F578FB1A55415BBC702483405141AA7BD438001B5541A0CA7A8B83405141D906CAB1001B5541960BE363874051414D7DAACB031B55412D597F108840514155F60367041B5541E7EDBE81894051414EEA8DFC061B554122BFA3B789405141DCA1BE99071B55413E31A13E8B405141DAC600920A1B5541BAF3068E8B405141DB2278360B1B5541
+</a>
+
+<b>
+01060000000100000001030000000100000015000000F877B0AFA34051412086AB8F221B55419234EA6CA1405141DD33FD77201B5541BBC5EEFF994051414CFB49A31A1B554180F0256A99405141FE38CA2E1A1B5541B2655A8F93405141F5A4A758151B55418DCE1A108F4051410ACD20EF101B55414F2F27AC8D4051418A1AF1DE0E1B554174A6BB6E8C4051418170EE070D1B55415FF6068E8B405141502878360B1B5541D7896C398B4051415A81E1870A1B554122BFA3B789405141DCA1BE99071B5541E7EDBE81894051414EEA8DFC061B554131597F10884051415AF60367041B5541930BE363874051414C7DAACB031B5541E790B3358340514155F99C6C001B554148E17AC4814051415C8FC265041B5541713D0A0785405141A4703D2A151B5541EC51B89E91405141F6285CDF1C1B55415C8FC245974051417B14AE07201B5541A4703DEA9E405141F6285CBF251B5541F877B0AFA34051412086AB8F221B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>160669 - 4101820
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001C000000BAF3068E8B405141DB2278360B1B554174A6BB6E8C4051418170EE070D1B55414F2F27AC8D4051418A1AF1DE0E1B55418DCE1A108F4051410ACD20EF101B5541B2655A8F93405141F5A4A758151B554180F0256A99405141FE38CA2E1A1B5541152B190DA140514105834E1F201B5541F877B0AFA34051412086AB8F221B5541D7A370EDAF405141B81E858B1A1B554152B81EA5CC4051411F85EBA1071B5541B81E857BC84051417B14AE37FD1A55418FC2F5A8B7405141713D0AC7D31A55411F85EB21B140514114AE4781C31A55417B14AEE789405141AE47E1BAD81A5541B81E85CB754051410AD7A3E0E31A5541B81E85EB77405141713D0A77E61A55413333338379405141713D0A67E81A5541D7A3705D7A4051411F85EBD1E91A5541F6285C2F7F4051410AD7A3D0F11A55410AD7A3A0824051418FC2F578FB1A55415BBC702483405141AA7BD438001B5541A0CA7A8B83405141D906CAB1001B5541960BE363874051414D7DAACB031B55412D597F108840514155F60367041B5541E7EDBE81894051414EEA8DFC061B554122BFA3B789405141DCA1BE99071B55413E31A13E8B405141DAC600920A1B5541BAF3068E8B405141DB2278360B1B5541
+</a>
+
+<b>
+01060000000100000001030000000100000015000000F877B0AFA34051412086AB8F221B55419234EA6CA1405141DD33FD77201B5541BBC5EEFF994051414CFB49A31A1B554180F0256A99405141FE38CA2E1A1B5541B2655A8F93405141F5A4A758151B55418DCE1A108F4051410ACD20EF101B55414F2F27AC8D4051418A1AF1DE0E1B554174A6BB6E8C4051418170EE070D1B55415FF6068E8B405141502878360B1B5541D7896C398B4051415A81E1870A1B554122BFA3B789405141DCA1BE99071B5541E7EDBE81894051414EEA8DFC061B554131597F10884051415AF60367041B5541930BE363874051414C7DAACB031B5541E790B3358340514155F99C6C001B554148E17AC4814051415C8FC265041B5541713D0A0785405141A4703D2A151B5541EC51B89E91405141F6285CDF1C1B55415C8FC245974051417B14AE07201B5541A4703DEA9E405141F6285CBF251B5541F877B0AFA34051412086AB8F221B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>959841 - 130490
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C000000438CE8C649B1504140DA3897AA4A55416F0200E049B150416C60E949AB4A5541000000C049B15041713D0A17AA4A5541AE7862BF49B15041140D9143AA4A554185EB516846B1504185EB5198924A55410AD7A32037B150415C8FC225904A5541AE47E1DA34B1504114AE4711A44A55410EEB198933B15041A46A6040AC4A55414C17A4D633B1504147337F3EAC4A55416C79461834B15041A1DEE73CAC4A554167DCEFDC49B15041F997CFB5AB4A5541438CE8C649B1504140DA3897AA4A5541
+</a>
+
+<b>
+01060000000100000001030000000100000016000000392842F733B15041B9701E95A94A554140FA439633B15041AD62B9EEAB4A554140FA439633B15041C6860F37AC4A55414A596DA733B150415636A43FAC4A55414C17A4D633B1504147337F3EAC4A55416C79461834B15041A1DEE73CAC4A554176E0B9AD3BB15041BB1BD70DAC4A5541633F30DC49B150416DBA12ACAB4A554159E85CC949B1504150BB27B7AA4A5541493E82C149B15041DC7AD57CAA4A5541FB42A34047B15041A5803695984A5541E34CBA3C47B1504137638179984A554144C67E6D46B15041273DFEBC924A55418B0D296446B15041625AA797924A5541C398191145B150413E1A5861924A5541AD56818944B15041E901A04B924A55415A909AED42B1504115E4A509924A5541BF4A59503FB15041C8977175914A55417D9C006337B1504139D0E830904A5541FB984D1E37B150411C8F3E3A904A5541AE47E1DA34B1504114AE4711A44A5541392842F733B15041B9701E95A94A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>959841 - 329661
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C000000438CE8C649B1504140DA3897AA4A55416F0200E049B150416C60E949AB4A5541000000C049B15041713D0A17AA4A5541AE7862BF49B15041140D9143AA4A554185EB516846B1504185EB5198924A55410AD7A32037B150415C8FC225904A5541AE47E1DA34B1504114AE4711A44A55410EEB198933B15041A46A6040AC4A55414C17A4D633B1504147337F3EAC4A55416C79461834B15041A1DEE73CAC4A554167DCEFDC49B15041F997CFB5AB4A5541438CE8C649B1504140DA3897AA4A5541
+</a>
+
+<b>
+01060000000100000001030000000100000016000000392842F733B15041B9701E95A94A554140FA439633B15041AD62B9EEAB4A554140FA439633B15041C6860F37AC4A55414A596DA733B150415636A43FAC4A55414C17A4D633B1504147337F3EAC4A55416C79461834B15041A1DEE73CAC4A554176E0B9AD3BB15041BB1BD70DAC4A5541633F30DC49B150416DBA12ACAB4A554159E85CC949B1504150BB27B7AA4A5541493E82C149B15041DC7AD57CAA4A5541FB42A34047B15041A5803695984A5541E34CBA3C47B1504137638179984A554144C67E6D46B15041273DFEBC924A55418B0D296446B15041625AA797924A5541C398191145B150413E1A5861924A5541AD56818944B15041E901A04B924A55415A909AED42B1504115E4A509924A5541BF4A59503FB15041C8977175914A55417D9C006337B1504139D0E830904A5541FB984D1E37B150411C8F3E3A904A5541AE47E1DA34B1504114AE4711A44A5541392842F733B15041B9701E95A94A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>8673 - 2002412
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000000B000000C57C285BE95651419993F97DAA655441F2A7F66AF35651417E7F582AB1655441CDCCCCDCF7565141E17A14FEA46554410AD7A360FB565141D7A3705D9B6554417B14AE17F8565141E17A142E996554413D0AD7B3F3565141713D0A47956554415C8FC2A5F15651415C8FC25592655441295C8F72EC56514114AE47219D6554418FC2F528E856514185EB5108A6655441333333A3EA565141AE47E13AA7655441C57C285BE95651419993F97DAA65544101030000000100000004000000CC3B7576F35651415033662FB16554411C63E571F35651413C61EE2EB1655441D1072A74F356514117716E30B1655441CC3B7576F35651415033662FB1655441
+</a>
+
+<b>
+010600000001000000010300000001000000120000000AD7A3A00157514152B81E95B26554410AD7A33009575141EC51B84EB36554411F85EBB10B575141B81E85FBAF655441AE47E14A0E575141EC51B84EAD6554413D0AD7A314575141666666D6A76554417B14AEC715575141295C8F42A565544185EB51E80D57514152B81ED5A565544152B81EB502575141EC51B8FEA2655441333333030457514185EB51689F655441666666560357514185EB51289D65544114AE47D101575141333333A39B65544114AE47F1FD565141713D0AF799655441A4703DEAFB5651410AD7A3E0996554410AD7A360FB565141D7A3705D9B655441CDCCCCDCF7565141E17A14FEA46554419A999969F3565141E17A142EB1655441000000A0FA565141B81E85EBB16554410AD7A3A00157514152B81E95B2655441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>8673 - 4552771
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000000B000000C57C285BE95651419993F97DAA655441F2A7F66AF35651417E7F582AB1655441CDCCCCDCF7565141E17A14FEA46554410AD7A360FB565141D7A3705D9B6554417B14AE17F8565141E17A142E996554413D0AD7B3F3565141713D0A47956554415C8FC2A5F15651415C8FC25592655441295C8F72EC56514114AE47219D6554418FC2F528E856514185EB5108A6655441333333A3EA565141AE47E13AA7655441C57C285BE95651419993F97DAA65544101030000000100000004000000CC3B7576F35651415033662FB16554411C63E571F35651413C61EE2EB1655441D1072A74F356514117716E30B1655441CC3B7576F35651415033662FB1655441
+</a>
+
+<b>
+010600000001000000010300000001000000120000000AD7A3A00157514152B81E95B26554410AD7A33009575141EC51B84EB36554411F85EBB10B575141B81E85FBAF655441AE47E14A0E575141EC51B84EAD6554413D0AD7A314575141666666D6A76554417B14AEC715575141295C8F42A565544185EB51E80D57514152B81ED5A565544152B81EB502575141EC51B8FEA2655441333333030457514185EB51689F655441666666560357514185EB51289D65544114AE47D101575141333333A39B65544114AE47F1FD565141713D0AF799655441A4703DEAFB5651410AD7A3E0996554410AD7A360FB565141D7A3705D9B655441CDCCCCDCF7565141E17A14FEA46554419A999969F3565141E17A142EB1655441000000A0FA565141B81E85EBB16554410AD7A3A00157514152B81E95B2655441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984467 - 553004
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B0000005A3915BD7BE15041D655D776CDF0544162E75C9E7CE150410360AE7ACEF0544133FA7B4C9FE15041070764FFCEF05441E88ACD1BAEE15041BB55D736CFF05441D4DC851AAFE15041F95FAE3ACEF054416334BF18AFE15041AFDC3DB4C8F054417DF642A4ADE1504127EF874DC3F0544112589AA8AAE1504124041FF8BAF05441E440348F95E15041FADE4CA9BAF054415043ECC07DE150415B890A4ABAF054415A3915BD7BE15041D655D776CDF05441
+</a>
+
+<b>
+0106000000010000000103000000010000000A0000007B14AE7780E15041C3F5286CA0F05441B81E85CB7FE15041A4703DDAA6F054410AD7A3C07DE150419A999949BAF05441E17A146E96E15041CDCCCCACBAF0544185EB51A8AAE150417B14AEF7BAF05441F6285CDFA4E15041F6285CDFABF054415C8FC275A0E15041F6285CEFA0F05441B81E85DB9AE150418FC2F51895F05441666666B681E150413D0AD7B394F054417B14AE7780E15041C3F5286CA0F05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984467 - 2922594
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B0000005A3915BD7BE15041D655D776CDF0544162E75C9E7CE150410360AE7ACEF0544133FA7B4C9FE15041070764FFCEF05441E88ACD1BAEE15041BB55D736CFF05441D4DC851AAFE15041F95FAE3ACEF054416334BF18AFE15041AFDC3DB4C8F054417DF642A4ADE1504127EF874DC3F0544112589AA8AAE1504124041FF8BAF05441E440348F95E15041FADE4CA9BAF054415043ECC07DE150415B890A4ABAF054415A3915BD7BE15041D655D776CDF05441
+</a>
+
+<b>
+01060000000100000001030000000100000009000000B81E85CB7FE15041A4703DDAA6F054410AD7A3C07DE150419A999949BAF05441E17A146E96E15041CDCCCCACBAF0544185EB51A8AAE150417B14AEF7BAF05441F6285CDFA4E15041F6285CDFABF054415C8FC275A0E15041F6285CEFA0F05441EC51B8CE97E15041C3F528CCA0F054417B14AE7780E15041C3F5286CA0F05441B81E85CB7FE15041A4703DDAA6F05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984467 - 3701122
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B0000005A3915BD7BE15041D655D776CDF0544162E75C9E7CE150410360AE7ACEF0544133FA7B4C9FE15041070764FFCEF05441E88ACD1BAEE15041BB55D736CFF05441D4DC851AAFE15041F95FAE3ACEF054416334BF18AFE15041AFDC3DB4C8F054417DF642A4ADE1504127EF874DC3F0544112589AA8AAE1504124041FF8BAF05441E440348F95E15041FADE4CA9BAF054415043ECC07DE150415B890A4ABAF054415A3915BD7BE15041D655D776CDF05441
+</a>
+
+<b>
+01060000000100000001030000000100000009000000B81E85CB7FE15041A4703DDAA6F054410AD7A3C07DE150419A999949BAF05441E17A146E96E15041CDCCCCACBAF0544185EB51A8AAE150417B14AEF7BAF05441F6285CDFA4E15041F6285CDFABF054415C8FC275A0E15041F6285CEFA0F05441EC51B8CE97E15041C3F528CCA0F054417B14AE7780E15041C3F5286CA0F05441B81E85CB7FE15041A4703DDAA6F05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>229996 - 501987
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000027000000333333B370E9504114AE4781FA3054415C8FC2256CE95041B81E856BFA305441AE47E10A6AE95041AE47E12AFA30544185EB515867E950419A9999A9F9305441D7A370FD64E9504166666686F9305441B452099B64E95041BB6D899CF73054417F87727462E9504119125F33F7305441EFAB30E860E95041CA896616F73054414F23AEFF5CE95041289883E7F73054418E8DEC495BE9504191DC9CACF8305441983052035AE95041BB3FA3C7F83054416F7011F557E950412379797AF8305441118D924757E950415AD98575F8305441DAD1DACB55E950410377B98FF9305441AA9FB04D53E95041FCF4A643FA305441713D0A2750E950411F85EB9103315441AD94EC1950E95041911E11BD03315441429F0FDB50E9504126F71F06043154413EFB305454E950413FE87456053154417A28C9305AE950417DE2C5D007315441B635A10C62E950413A4080230B31544148E17A6468E95041D7A370FD08315441AE47E17A69E9504185EB51480E315441AE47E10A70E95041C3F5280C1131544152B81E7571E9504185EB51E80F315441713D0A3772E95041EC51B84E0E31544185EB51B872E950415C8FC2350D3154413D0AD7D374E95041D7A3701D0C3154416666667679E950415C8FC2450B315441A4703DBA7AE95041A4703DDA0A3154415C8FC2257BE95041CDCCCCFC073154413D0AD7537CE95041CDCCCC5C04315441000000C07CE9504148E17A4403315441AE47E1EA7CE950419A999979FF305441D7A370FD7BE950411F85EBB1FC3054418FC2F5787AE950413D0AD783FB30544185EB514878E95041C3F528ACFA3054418FC2F5A874E9504166666696FA305441333333B370E9504114AE4781FA305441
+</a>
+
+<b>
+0106000000010000000103000000020000003E0000001F85EBC17AE95041295C8F22EE3054417B14AEC77AE95041000000A0ED305441B81E85CB7AE95041CDCCCC4CED305441CDCCCC3C7BE950410AD7A310EA305441C3F528BC7BE95041F6285C9FE53054413D0AD7E37BE950411F85EB61E03054415C8FC2457AE95041CDCCCC3CE03054413333332379E9504100000030E03054410AD7A3E077E95041CDCCCC1CE03054419A99990976E9504100000030E030544114AE472175E95041EC51B81EE13054419A99994970E95041B81E855BE2305441C3F5281C67E9504100000090E2305441A4703DDA66E95041EC51B82EDE305441713D0A6766E95041F6285CEFD7305441C3F528BC68E950415C8FC2D5D730544185EB517875E95041713D0AD7D63054415C8FC2B575E950413D0AD713DC305441713D0AF775E95041EC51B87EDD305441C3F528AC76E950413D0AD733DE3054411F85EB7177E950417B14AEC7DE305441713D0A2778E95041AE47E12ADF3054413D0AD74379E95041AE47E15ADF305441C3F5284C7AE95041EC51B86EDF305441713D0AE77BE95041EC51B85EDF30544148E17AD47BE95041C3F5284CDA3054419A9999D97BE9504100000000D930544148E17AA47BE95041CDCCCCDCD63054411F85EB217BE95041A4703DCAD430544185EB51D87AE950417B14AEC7D3305441713D0A677AE95041E17A143ED230544185EB514879E95041D7A3703DCE30544148E17A3479E9504185EB51F8CD3054413333339378E950419A9999C9CB305441295C8F1278E9504185EB51D8CB305441713D0A6765E95041A4703DFACD305441713D0A0754E95041666666F6CF30544185EB514853E950419A9999E9D5305441713D0AC74FE95041D7A370EDF1305441E17A14AE52E9504152B81E75F530544185EB514854E95041EC51B8DEF7305441333333F354E95041295C8FD2F930544185EB512856E9504133333373F9305441C3F528DC56E950411F85EBA1F8305441C3F5286C57E9504166666666F830544152B81ED55AE95041666666E6F8305441B81E85BB5CE950415C8FC2F5F73054410000001061E95041E17A140EF7305441713D0AE762E95041F6285C3FF7305441B81E856B64E9504100000090F7305441CDCCCC9C69E95041EC51B8EEF8305441B81E856B6BE9504100000000F930544148E17A546EE950417B14AEA7F8305441E17A140E71E95041EC51B8FEF830544185EB517873E9504148E17A94F93054417B14AEB776E950419A999969F93054419A9999497AE9504100000060F8305441AE47E11A7BE95041713D0AA7F830544185EB51887BE950415C8FC205F8305441666666E67AE95041EC51B8CEF13054410AD7A3B07AE95041AE47E1AAEF3054411F85EBC17AE95041295C8F22EE30544105000000A4703D0A62E95041E17A14FEDA305441D7A370FD61E95041666666A6DB30544148E17AB460E95041CDCCCCACDB305441AE47E1BA60E9504114AE47F1DA305441A4703D0A62E95041E17A14FEDA305441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>229996 - 1159093
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000027000000333333B370E9504114AE4781FA3054415C8FC2256CE95041B81E856BFA305441AE47E10A6AE95041AE47E12AFA30544185EB515867E950419A9999A9F9305441D7A370FD64E9504166666686F9305441B452099B64E95041BB6D899CF73054417F87727462E9504119125F33F7305441EFAB30E860E95041CA896616F73054414F23AEFF5CE95041289883E7F73054418E8DEC495BE9504191DC9CACF8305441983052035AE95041BB3FA3C7F83054416F7011F557E950412379797AF8305441118D924757E950415AD98575F8305441DAD1DACB55E950410377B98FF9305441AA9FB04D53E95041FCF4A643FA305441713D0A2750E950411F85EB9103315441AD94EC1950E95041911E11BD03315441429F0FDB50E9504126F71F06043154413EFB305454E950413FE87456053154417A28C9305AE950417DE2C5D007315441B635A10C62E950413A4080230B31544148E17A6468E95041D7A370FD08315441AE47E17A69E9504185EB51480E315441AE47E10A70E95041C3F5280C1131544152B81E7571E9504185EB51E80F315441713D0A3772E95041EC51B84E0E31544185EB51B872E950415C8FC2350D3154413D0AD7D374E95041D7A3701D0C3154416666667679E950415C8FC2450B315441A4703DBA7AE95041A4703DDA0A3154415C8FC2257BE95041CDCCCCFC073154413D0AD7537CE95041CDCCCC5C04315441000000C07CE9504148E17A4403315441AE47E1EA7CE950419A999979FF305441D7A370FD7BE950411F85EBB1FC3054418FC2F5787AE950413D0AD783FB30544185EB514878E95041C3F528ACFA3054418FC2F5A874E9504166666696FA305441333333B370E9504114AE4781FA305441
+</a>
+
+<b>
+0106000000010000000103000000020000003E0000001F85EBC17AE95041295C8F22EE3054417B14AEC77AE95041000000A0ED305441B81E85CB7AE95041CDCCCC4CED305441CDCCCC3C7BE950410AD7A310EA305441C3F528BC7BE95041F6285C9FE53054413D0AD7E37BE950411F85EB61E03054415C8FC2457AE95041CDCCCC3CE03054413333332379E9504100000030E03054410AD7A3E077E95041CDCCCC1CE03054419A99990976E9504100000030E030544114AE472175E95041EC51B81EE13054419A99994970E95041B81E855BE2305441C3F5281C67E9504100000090E2305441A4703DDA66E95041EC51B82EDE305441713D0A6766E95041F6285CEFD7305441C3F528BC68E950415C8FC2D5D730544185EB517875E95041713D0AD7D63054415C8FC2B575E950413D0AD713DC305441713D0AF775E95041EC51B87EDD305441C3F528AC76E950413D0AD733DE3054411F85EB7177E950417B14AEC7DE305441713D0A2778E95041AE47E12ADF3054413D0AD74379E95041AE47E15ADF305441C3F5284C7AE95041EC51B86EDF305441713D0AE77BE95041EC51B85EDF30544148E17AD47BE95041C3F5284CDA3054419A9999D97BE9504100000000D930544148E17AA47BE95041CDCCCCDCD63054411F85EB217BE95041A4703DCAD430544185EB51D87AE950417B14AEC7D3305441713D0A677AE95041E17A143ED230544185EB514879E95041D7A3703DCE30544148E17A3479E9504185EB51F8CD3054413333339378E950419A9999C9CB305441295C8F1278E9504185EB51D8CB305441713D0A6765E95041A4703DFACD305441713D0A0754E95041666666F6CF30544185EB514853E950419A9999E9D5305441713D0AC74FE95041D7A370EDF1305441E17A14AE52E9504152B81E75F530544185EB514854E95041EC51B8DEF7305441333333F354E95041295C8FD2F930544185EB512856E9504133333373F9305441C3F528DC56E950411F85EBA1F8305441C3F5286C57E9504166666666F830544152B81ED55AE95041666666E6F8305441B81E85BB5CE950415C8FC2F5F73054410000001061E95041E17A140EF7305441713D0AE762E95041F6285C3FF7305441B81E856B64E9504100000090F7305441CDCCCC9C69E95041EC51B8EEF8305441B81E856B6BE9504100000000F930544148E17A546EE950417B14AEA7F8305441E17A140E71E95041EC51B8FEF830544185EB517873E9504148E17A94F93054417B14AEB776E950419A999969F93054419A9999497AE9504100000060F8305441AE47E11A7BE95041713D0AA7F830544185EB51887BE950415C8FC205F8305441666666E67AE95041EC51B8CEF13054410AD7A3B07AE95041AE47E1AAEF3054411F85EBC17AE95041295C8F22EE30544105000000A4703D0A62E95041E17A14FEDA305441D7A370FD61E95041666666A6DB30544148E17AB460E95041CDCCCCACDB305441AE47E1BA60E9504114AE47F1DA305441A4703D0A62E95041E17A14FEDA305441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>229996 - 3951689
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000027000000333333B370E9504114AE4781FA3054415C8FC2256CE95041B81E856BFA305441AE47E10A6AE95041AE47E12AFA30544185EB515867E950419A9999A9F9305441D7A370FD64E9504166666686F9305441B452099B64E95041BB6D899CF73054417F87727462E9504119125F33F7305441EFAB30E860E95041CA896616F73054414F23AEFF5CE95041289883E7F73054418E8DEC495BE9504191DC9CACF8305441983052035AE95041BB3FA3C7F83054416F7011F557E950412379797AF8305441118D924757E950415AD98575F8305441DAD1DACB55E950410377B98FF9305441AA9FB04D53E95041FCF4A643FA305441713D0A2750E950411F85EB9103315441AD94EC1950E95041911E11BD03315441429F0FDB50E9504126F71F06043154413EFB305454E950413FE87456053154417A28C9305AE950417DE2C5D007315441B635A10C62E950413A4080230B31544148E17A6468E95041D7A370FD08315441AE47E17A69E9504185EB51480E315441AE47E10A70E95041C3F5280C1131544152B81E7571E9504185EB51E80F315441713D0A3772E95041EC51B84E0E31544185EB51B872E950415C8FC2350D3154413D0AD7D374E95041D7A3701D0C3154416666667679E950415C8FC2450B315441A4703DBA7AE95041A4703DDA0A3154415C8FC2257BE95041CDCCCCFC073154413D0AD7537CE95041CDCCCC5C04315441000000C07CE9504148E17A4403315441AE47E1EA7CE950419A999979FF305441D7A370FD7BE950411F85EBB1FC3054418FC2F5787AE950413D0AD783FB30544185EB514878E95041C3F528ACFA3054418FC2F5A874E9504166666696FA305441333333B370E9504114AE4781FA305441
+</a>
+
+<b>
+0106000000010000000103000000020000003E0000001F85EBC17AE95041295C8F22EE3054417B14AEC77AE95041000000A0ED305441B81E85CB7AE95041CDCCCC4CED305441CDCCCC3C7BE950410AD7A310EA305441C3F528BC7BE95041F6285C9FE53054413D0AD7E37BE950411F85EB61E03054415C8FC2457AE95041CDCCCC3CE03054413333332379E9504100000030E03054410AD7A3E077E95041CDCCCC1CE03054419A99990976E9504100000030E030544114AE472175E95041EC51B81EE13054419A99994970E95041B81E855BE2305441C3F5281C67E9504100000090E2305441A4703DDA66E95041EC51B82EDE305441713D0A6766E95041F6285CEFD7305441C3F528BC68E950415C8FC2D5D730544185EB517875E95041713D0AD7D63054415C8FC2B575E950413D0AD713DC305441713D0AF775E95041EC51B87EDD305441C3F528AC76E950413D0AD733DE3054411F85EB7177E950417B14AEC7DE305441713D0A2778E95041AE47E12ADF3054413D0AD74379E95041AE47E15ADF305441C3F5284C7AE95041EC51B86EDF305441713D0AE77BE95041EC51B85EDF30544148E17AD47BE95041C3F5284CDA3054419A9999D97BE9504100000000D930544148E17AA47BE95041CDCCCCDCD63054411F85EB217BE95041A4703DCAD430544185EB51D87AE950417B14AEC7D3305441713D0A677AE95041E17A143ED230544185EB514879E95041D7A3703DCE30544148E17A3479E9504185EB51F8CD3054413333339378E950419A9999C9CB305441295C8F1278E9504185EB51D8CB305441713D0A6765E95041A4703DFACD305441713D0A0754E95041666666F6CF30544185EB514853E950419A9999E9D5305441713D0AC74FE95041D7A370EDF1305441E17A14AE52E9504152B81E75F530544185EB514854E95041EC51B8DEF7305441333333F354E95041295C8FD2F930544185EB512856E9504133333373F9305441C3F528DC56E950411F85EBA1F8305441C3F5286C57E9504166666666F830544152B81ED55AE95041666666E6F8305441B81E85BB5CE950415C8FC2F5F73054410000001061E95041E17A140EF7305441713D0AE762E95041F6285C3FF7305441B81E856B64E9504100000090F7305441CDCCCC9C69E95041EC51B8EEF8305441B81E856B6BE9504100000000F930544148E17A546EE950417B14AEA7F8305441E17A140E71E95041EC51B8FEF830544185EB517873E9504148E17A94F93054417B14AEB776E950419A999969F93054419A9999497AE9504100000060F8305441AE47E11A7BE95041713D0AA7F830544185EB51887BE950415C8FC205F8305441666666E67AE95041EC51B8CEF13054410AD7A3B07AE95041AE47E1AAEF3054411F85EBC17AE95041295C8F22EE30544105000000A4703D0A62E95041E17A14FEDA305441D7A370FD61E95041666666A6DB30544148E17AB460E95041CDCCCCACDB305441AE47E1BA60E9504114AE47F1DA305441A4703D0A62E95041E17A14FEDA305441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>987366 - 144003
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C00000085EB510884DD504185EB51D8A2C25441F6285CBF82DD50418FC2F5B896C254411F85EB5179DD5041EC51B88E9AC25441CDCCCC0C74DD50418FC2F5489CC25441E17A149E6FDD5041B81E851B9DC25441B81E855B67DD5041E17A14DE9DC254413333332364DD5041E17A144E9EC25441295C8F725FDD50417B14AE579FC25441666666A65FDD50415C8FC2B5ABC254417B14AE776FDD504152B81EC5A8C25441A4703D7A83DD5041EC51B80EA3C2544185EB510884DD504185EB51D8A2C25441
+</a>
+
+<b>
+010600000001000000010300000001000000170000007F956CD265DD504100617D139EC2544114E0669063DD504127D38D6E9EC25441FCBDFB735FDD50415BFB6D5C9FC25441666666A65FDD50415C8FC2B5ABC254417B14AE776FDD504152B81EC5A8C2544181E2377573DD5041152B7DA1A7C254418CA6CEC873DD50414633A089A7C2544154DC596876DD50413175E9C9A6C254416B6F889E82DD50416145714DA3C254415041AA0584DD5041E50F46BFA2C254413EF5474983DD5041314E16CE9BC254413F35DE3883DD5041109E3F339BC254415FF74EC282DD5041B37DC6D496C25441C79B7EFD7CDD5041D100831099C254411F85EB5179DD5041EC51B88E9AC25441CDCCCC0C74DD50418FC2F5489CC25441A73216AE72DD504154ED098A9CC254417008F60970DD5041B75F80079DC25441E17A149E6FDD5041B81E851B9DC25441BD71B1016CDD50413E9292709DC25441372C4C056BDD5041359ECB879DC2544150070FCF68DD50414714E5BB9DC254417F956CD265DD504100617D139EC25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>984551 - 55419
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000013000000064ACCC671FC5041688834479D945441690F7AB871FC5041FFB4694C9D945441446014B871FC5041A23B24529D9454419F67126074FC504157137AA29C945441BE55102A77FC50415AB77AC59B945441C3F528EC77FC5041666666869B9454411F85EB5179FC5041E17A14BE8494544173914C5279FC5041C797F9B7849454412A9C4F9473FC5041B6E9BA4B839454413FF2FB8873FC5041CBDCF63683945441EE50818773FC5041442A7336839454410746710272FC504152D7AA2A98945441064ACCC671FC504128A7104F9C945441064ACCC671FC504105617A5B9C945441064ACCC671FC50411C5B13739C945441B82025BC71FC504101E1750C9D945441D173DAB871FC5041E780FB469D945441064ACCC671FC50416BA50A439D945441064ACCC671FC5041688834479D945441
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000003FF2FB8873FC5041CBDCF636839454419C97C06773FC50416393660085945441BCEBE74572FC50412515838894945441BEB272F771FC5041542B22EE989454418925D4CA71FC5041CDA067079C945441064ACCC671FC5041A00FB4699C945441064ACCC671FC50411C5B13739C945441A1E26DC071FC5041F36BC6CE9C9454419647DEB871FC5041534EC4469D945441B497C9B971FC5041CBEBB7469D9454413C33A5BC71FC5041142AE9459D945441064ACCC671FC50416BA50A439D945441064ACCC671FC5041688834479D945441CDE319C271FC5041DAC4E9489D945441D9D34FCA71FC504182796E4D9D9454411795450E73FC5041DBEBBDF99C94544177808E6C73FC5041EB8C62E19C945441584EBC7373FC5041CDC887DF9C94544149C191BC73FC50411C0BB7CC9C945441A80D31E173FC5041611741C39C9454410D52CF3374FC5041B645E9AD9C9454413A9E234474FC5041B35CB1A99C945441F5CA0FE577FC50414A9025879B94544118125F4079FC504100DA29DC85945441C54DB35179FC5041AA9DD3B784945441F323EF0E76FC5041EC5CFBE8839454412A9C4F9473FC5041B6E9BA4B839454413FF2FB8873FC5041CBDCF63683945441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>106289 - 3096391
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000005100000014AE47E1A6185141333333D3648954418FC2F598A9185141A4703D9A6A895441E17A14BEAB1851410AD7A350708954418FC2F598AC185141CDCCCC5C728954418FC2F528AD185141D7A370BD7389544166666676B6185141CDCCCCBC6F89544114AE4741BB185141666666366E895441666666A6BB18514152B81E656F895441CDCCCC1CBE18514114AE47E170895441CDCCCC4CC018514152B81E357289544148E17AA4C218514114AE470174895441CDCCCC9CC518514152B81E95768954415C8FC2B5CF185141AE47E1DA71895441000000F0D018514185EB51B871895441C3F528FCD11851417B14AEA77189544114AE4761D318514152B81E8571895441CDCCCCCCD4185141F6285C7F7189544185EB5168D61851419A999979718954417B14AE47D8185141295C8F7271895441D7A3706DD9185141EC51B86E718954417B14AEE7DA1851413D0AD77371895441713D0AC7DB18514185EB515871895441713D0A57DC185141666666467189544185EB51E8DC185141EC51B80E7189544152B81ED5DD185141666666D67089544185EB51C8DE185141CDCCCC9C70895441666666B6DF18514148E17A64708954413D0AD7A3E01851419A9999297089544148E17A84E1185141713D0AD76F895441295C8F72E21851415C8FC2856F895441F6285C3FE3185141000000406F8954410AD7A3D0E3185141E17A140E6F8954410AD7A360E5185141333333436E89544114AE4711EB185141295C8FB26B895441314B2569F0185141E3D5499169895441F62FBDB2F51851414B3417CE67895441DC091095F8185141F1624FCA668954418EE8D688FC185141EA5C7E7465895441BA565D3EFE185141425967A764895441FD8E7D5DFF18514153BB4BB16389544159FE605701195141F74B68B76189544102A9B59F08195141353401D35A8954419EDA127303195141B75EF478548954418786F27EFD1851418A4925974A8954417BF63F4FF4185141D1F43F7D4E8954416204CBD1F11851415AA4A2B0498954415151F6BEF118514155AAAC5C49895441857D7432F01851415637B295468954415D438BDADF185141262D2F054D8954410E0D9BD7D7185141C9D368F14E895441F81BC317D7185141549ED6704E895441DA581BBBD5185141EC6396C94A89544198E6B42CD4185141A2A3DA86478954414C0FAF3BD3185141AE65480D45895441CA8C3E64D2185141D7967877428954412FC1DB25D2185141C78423384289544191B8D60BD2185141C156DB404289544148E17A44C4185141EC51B8DE4689544114AE47A1BB185141F6285C5F4B8954419A999969BC185141A4703DFA4D8954411F85EB91BE18514185EB518853895441B81E85FBBD185141CDCCCCEC53895441A4703D1ABB185141AE47E11A558954419A999999B71851419A99998956895441C3F5287CB31851419A99993958895441CDCCCC5CAF1851418FC2F5E85989544152B81E35AC1851413D0AD7335B895441F6285C5FAA1851413D0AD7F35B89544100000060A0185141AE47E10A608954410AD7A310951851417B14AEE76489544152B81EF58F1851418FC2F53867895441295C8F128D185141333333C368895441666666468B185141D7A370AD69895441C3F528AC89185141F6285CCF6A895441295C8F02861851410AD7A3906D8954417B14AE978818514114AE47C16E89544114AE47618B18514152B81ED570895441F6285C3F901851419A9999596E8954419A9999799518514148E17AB46B8954411F85EB2199185141AE47E11A6A89544114AE47E1A6185141333333D364895441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000D1552B9EDF1851416199AC134D89544199438E86EE18514192BAA9516A895441334B2569F0185141E2D5499169895441F72FBDB2F51851414F3417CE67895441D9091095F8185141F4624FCA668954418FE8D688FC185141E85C7E7465895441BD565D3EFE185141405967A764895441028F7D5DFF18514155BB4BB1638954415DFE605701195141F94B68B76189544104A9B59F08195141333401D35A895441A3DA127303195141B75EF478548954418586F27EFD185141864925974A8954417BF63F4FF4185141CDF43F7D4E8954416004CBD1F11851415AA4A2B0498954415651F6BEF118514158AAAC5C49895441807D7432F01851415537B2954689544160438BDADF1851412A2D2F054D895441D1552B9EDF1851416199AC134D895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>106289 - 3440494
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000005100000014AE47E1A6185141333333D3648954418FC2F598A9185141A4703D9A6A895441E17A14BEAB1851410AD7A350708954418FC2F598AC185141CDCCCC5C728954418FC2F528AD185141D7A370BD7389544166666676B6185141CDCCCCBC6F89544114AE4741BB185141666666366E895441666666A6BB18514152B81E656F895441CDCCCC1CBE18514114AE47E170895441CDCCCC4CC018514152B81E357289544148E17AA4C218514114AE470174895441CDCCCC9CC518514152B81E95768954415C8FC2B5CF185141AE47E1DA71895441000000F0D018514185EB51B871895441C3F528FCD11851417B14AEA77189544114AE4761D318514152B81E8571895441CDCCCCCCD4185141F6285C7F7189544185EB5168D61851419A999979718954417B14AE47D8185141295C8F7271895441D7A3706DD9185141EC51B86E718954417B14AEE7DA1851413D0AD77371895441713D0AC7DB18514185EB515871895441713D0A57DC185141666666467189544185EB51E8DC185141EC51B80E7189544152B81ED5DD185141666666D67089544185EB51C8DE185141CDCCCC9C70895441666666B6DF18514148E17A64708954413D0AD7A3E01851419A9999297089544148E17A84E1185141713D0AD76F895441295C8F72E21851415C8FC2856F895441F6285C3FE3185141000000406F8954410AD7A3D0E3185141E17A140E6F8954410AD7A360E5185141333333436E89544114AE4711EB185141295C8FB26B895441314B2569F0185141E3D5499169895441F62FBDB2F51851414B3417CE67895441DC091095F8185141F1624FCA668954418EE8D688FC185141EA5C7E7465895441BA565D3EFE185141425967A764895441FD8E7D5DFF18514153BB4BB16389544159FE605701195141F74B68B76189544102A9B59F08195141353401D35A8954419EDA127303195141B75EF478548954418786F27EFD1851418A4925974A8954417BF63F4FF4185141D1F43F7D4E8954416204CBD1F11851415AA4A2B0498954415151F6BEF118514155AAAC5C49895441857D7432F01851415637B295468954415D438BDADF185141262D2F054D8954410E0D9BD7D7185141C9D368F14E895441F81BC317D7185141549ED6704E895441DA581BBBD5185141EC6396C94A89544198E6B42CD4185141A2A3DA86478954414C0FAF3BD3185141AE65480D45895441CA8C3E64D2185141D7967877428954412FC1DB25D2185141C78423384289544191B8D60BD2185141C156DB404289544148E17A44C4185141EC51B8DE4689544114AE47A1BB185141F6285C5F4B8954419A999969BC185141A4703DFA4D8954411F85EB91BE18514185EB518853895441B81E85FBBD185141CDCCCCEC53895441A4703D1ABB185141AE47E11A558954419A999999B71851419A99998956895441C3F5287CB31851419A99993958895441CDCCCC5CAF1851418FC2F5E85989544152B81E35AC1851413D0AD7335B895441F6285C5FAA1851413D0AD7F35B89544100000060A0185141AE47E10A608954410AD7A310951851417B14AEE76489544152B81EF58F1851418FC2F53867895441295C8F128D185141333333C368895441666666468B185141D7A370AD69895441C3F528AC89185141F6285CCF6A895441295C8F02861851410AD7A3906D8954417B14AE978818514114AE47C16E89544114AE47618B18514152B81ED570895441F6285C3F901851419A9999596E8954419A9999799518514148E17AB46B8954411F85EB2199185141AE47E11A6A89544114AE47E1A6185141333333D364895441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000D1552B9EDF1851416199AC134D89544199438E86EE18514192BAA9516A895441334B2569F0185141E2D5499169895441F72FBDB2F51851414F3417CE67895441D9091095F8185141F4624FCA668954418FE8D688FC185141E85C7E7465895441BD565D3EFE185141405967A764895441028F7D5DFF18514155BB4BB1638954415DFE605701195141F94B68B76189544104A9B59F08195141333401D35A895441A3DA127303195141B75EF478548954418586F27EFD185141864925974A8954417BF63F4FF4185141CDF43F7D4E8954416004CBD1F11851415AA4A2B0498954415651F6BEF118514158AAAC5C49895441807D7432F01851415537B2954689544160438BDADF1851412A2D2F054D895441D1552B9EDF1851416199AC134D895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>363394 - 363389
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000012000000BB518E883EAF50410300EE336B3D5441DAA45E583BAF50414D2E7FB16B3D54414A0F824F3AAF5041958CBBE6733D544129E4C83D38AF5041F59A4E97743D5441CD6A671A36AF5041BA087474823D5441E61FC1EE44AF50418AF4C2A0873D5441E74600C078AF50414503F679803D54413547987D75AF5041D455C68E7D3D5441418E6D0C75AF5041335139CB7B3D54415330DC2254AF50414E25534D7B3D5441807218364FAF5041BAA152AE843D54410C0501D547AF504177A0DAFC7A3D5441FCAD7E6144AF5041D2DA63F8733D54417A74329F41AF5041F9E64ABA6A3D54414343D10941AF50419F2946D16A3D54413333339340AF504152B81EF56A3D5441B81E858B3EAF50418FC2F5386B3D5441BB518E883EAF50410300EE336B3D5441
+</a>
+
+<b>
+0106000000020000000103000000020000004E00000064AE37E969AF504178D83F86823D54413E6E544545AF50413617D094873D5441A2691EE048AF5041330B7310933D544177C6F84852AF50417CA19A9D953D54414FD8BD4A57AF5041E139000EA23D54411706E6645DAF50410ECD4B8CA83D5441D3C13F0B64AF504147D2657EAE3D5441F3196A196CAF5041775C3DAEAF3D54412171B98873AF50411E44690BA63D54410823EDF979AF50416E7B91AAA63D5441691978E575AF5041C033A9CAB63D5441F647F8057CAF5041A23E7574B93D544190255B177CAF50411B0347F7B83D5441FF6E9BA47BAF5041DA241331B83D5441FF6E9BA47BAF50415D6476A9B73D5441984CFEB57BAF50412855C22FB73D5441C28C32E37BAF5041457288B9B63D54415C6A95F47BAF5041C08A4893B63D544135D23D757CAF5041E722A012B63D5441D0038FDD7CAF5041019889EEB43D54417D435C307DAF50411A871DA3B13D544164E5A4247DAF5041D6CB365AB13D54417579742C7DAF5041A1A41F19B13D5441A635E3437DAF5041FF46ACF4B03D544152181ABC7DAF50414486E05FAC3D5441EED546A37DAF504116C37CECA83D54411B5234737DAF5041F8953FD5A83D5441816B815C7DAF50413DA896B8A83D54418AC1DA457DAF5041C6B1589EA83D544104D6884D7DAF5041604BF257A83D54410FAD2C7E7DAF504137EF6235A83D544168F9DDBA7DAF504163D30B2BA83D5441141D28D17DAF50410D762BE2A63D544189C1DA057DAF5041BBDAB48DA63D544160654B437CAF5041D088FCEEA53D5441A6DC51757CAF5041F90B9741A53D54410EAD2C9E7CAF50415F4BF2F7A43D5441D135B5F47CAF5041A613759CA43D5441FAFEE47C7DAF504140C60666A43D54410FEA21057FAF5041EADE7BBDA43D5441B0009A0080AF504133D0C972A43D5441FFD5884D80AF50413218BFE4A33D544190AFF0DC80AF5041D683722CA33D5441273218D080AF5041CBB1585EA23D5441286A8EDF80AF5041C6DCB16BA13D5441DF509DDB80AF50411E6A7703A13D54413BE05F9180AF5041654BF2D7A03D5441E927410C81AF5041F50DE8C09F3D5441956F220781AF5041E15FA0DF9E3D5441BDCBB16980AF50411F6A77839E3D54410F84D06E7FAF5041E25FA03F9E3D5441B2F40DD97EAF50411593D3D29D3D54411B5B74BF7EAF50418AD0DD499D3D5441DE509DBB7EAF5041DC88FCAE9C3D54419B6F22477FAF5041714BF2779B3D5441CFA2557A7EAF5041714BF237993D544180EA36B57EAF5041B82C6DEC973D54413709BCC080AF5041F93644F0943D5441313218D080AF5041C603111D943D5441C475832F7FAF5041DD7D8A98933D544117E560CF7DAF5041BA2D1D52933D5441B0BAA18A7CAF5041933EF36C913D5441659D5E967CAF5041665E723D8F3D5441ADC94A407CAF5041EDC5F3468E3D544163B4F8417CAF50419B10CD918D3D5441DBD0975F7CAF5041D0C720AC8C3D5441F476EECA7BAF50419C10CD518C3D5441121BD6747BAF50412A62CC078C3D544143AE34B17AAF50417ED1A9A78A3D54411BF9813D79AF50410160F7A0873D5441F59F4A3A79AF5041017733B8853D54419B10886479AF5041BD95B803853D54419139E4B379AF50410F4ED748843D54413D81C5AE79AF50416106F68D833D54411EFCD93C79AF50414D58AEEC823D544170B4F8C178AF5041A9E77082823D54410024ECBC78AF50418AC9627A803D544164AE37E969AF504178D83F86823D54410A0000006F01987B68AF5041B82966919B3D54419F18F31B69AF5041E352935B983D54410858656A6DAF50413E5EBB649A3D54417097D7B871AF5041209E38419B3D5441228B999376AF50410A24D28C9A3D544186DCDD0B77AF5041FDBA27E69C3D54413C288E7F76AF50415DE9DD269E3D5441A4D1C09071AF5041FE85C784A13D544170CC371A6DAF50411C464AA8A03D54416F01987B68AF5041B82966919B3D5441010300000001000000040000009A45EEB878AF5041DC34A173803D5441CA29E4BC78AF5041CA1D2D77803D544121FCD9BC78AF5041B5BE1473803D54419A45EEB878AF5041DC34A173803D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>363389 - 363394
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000020000000103000000020000004E00000064AE37E969AF504178D83F86823D54413E6E544545AF50413617D094873D5441A2691EE048AF5041330B7310933D544177C6F84852AF50417CA19A9D953D54414FD8BD4A57AF5041E139000EA23D54411706E6645DAF50410ECD4B8CA83D5441D3C13F0B64AF504147D2657EAE3D5441F3196A196CAF5041775C3DAEAF3D54412171B98873AF50411E44690BA63D54410823EDF979AF50416E7B91AAA63D5441691978E575AF5041C033A9CAB63D5441F647F8057CAF5041A23E7574B93D544190255B177CAF50411B0347F7B83D5441FF6E9BA47BAF5041DA241331B83D5441FF6E9BA47BAF50415D6476A9B73D5441984CFEB57BAF50412855C22FB73D5441C28C32E37BAF5041457288B9B63D54415C6A95F47BAF5041C08A4893B63D544135D23D757CAF5041E722A012B63D5441D0038FDD7CAF5041019889EEB43D54417D435C307DAF50411A871DA3B13D544164E5A4247DAF5041D6CB365AB13D54417579742C7DAF5041A1A41F19B13D5441A635E3437DAF5041FF46ACF4B03D544152181ABC7DAF50414486E05FAC3D5441EED546A37DAF504116C37CECA83D54411B5234737DAF5041F8953FD5A83D5441816B815C7DAF50413DA896B8A83D54418AC1DA457DAF5041C6B1589EA83D544104D6884D7DAF5041604BF257A83D54410FAD2C7E7DAF504137EF6235A83D544168F9DDBA7DAF504163D30B2BA83D5441141D28D17DAF50410D762BE2A63D544189C1DA057DAF5041BBDAB48DA63D544160654B437CAF5041D088FCEEA53D5441A6DC51757CAF5041F90B9741A53D54410EAD2C9E7CAF50415F4BF2F7A43D5441D135B5F47CAF5041A613759CA43D5441FAFEE47C7DAF504140C60666A43D54410FEA21057FAF5041EADE7BBDA43D5441B0009A0080AF504133D0C972A43D5441FFD5884D80AF50413218BFE4A33D544190AFF0DC80AF5041D683722CA33D5441273218D080AF5041CBB1585EA23D5441286A8EDF80AF5041C6DCB16BA13D5441DF509DDB80AF50411E6A7703A13D54413BE05F9180AF5041654BF2D7A03D5441E927410C81AF5041F50DE8C09F3D5441956F220781AF5041E15FA0DF9E3D5441BDCBB16980AF50411F6A77839E3D54410F84D06E7FAF5041E25FA03F9E3D5441B2F40DD97EAF50411593D3D29D3D54411B5B74BF7EAF50418AD0DD499D3D5441DE509DBB7EAF5041DC88FCAE9C3D54419B6F22477FAF5041714BF2779B3D5441CFA2557A7EAF5041714BF237993D544180EA36B57EAF5041B82C6DEC973D54413709BCC080AF5041F93644F0943D5441313218D080AF5041C603111D943D5441C475832F7FAF5041DD7D8A98933D544117E560CF7DAF5041BA2D1D52933D5441B0BAA18A7CAF5041933EF36C913D5441659D5E967CAF5041665E723D8F3D5441ADC94A407CAF5041EDC5F3468E3D544163B4F8417CAF50419B10CD918D3D5441DBD0975F7CAF5041D0C720AC8C3D5441F476EECA7BAF50419C10CD518C3D5441121BD6747BAF50412A62CC078C3D544143AE34B17AAF50417ED1A9A78A3D54411BF9813D79AF50410160F7A0873D5441F59F4A3A79AF5041017733B8853D54419B10886479AF5041BD95B803853D54419139E4B379AF50410F4ED748843D54413D81C5AE79AF50416106F68D833D54411EFCD93C79AF50414D58AEEC823D544170B4F8C178AF5041A9E77082823D54410024ECBC78AF50418AC9627A803D544164AE37E969AF504178D83F86823D54410A0000006F01987B68AF5041B82966919B3D54419F18F31B69AF5041E352935B983D54410858656A6DAF50413E5EBB649A3D54417097D7B871AF5041209E38419B3D5441228B999376AF50410A24D28C9A3D544186DCDD0B77AF5041FDBA27E69C3D54413C288E7F76AF50415DE9DD269E3D5441A4D1C09071AF5041FE85C784A13D544170CC371A6DAF50411C464AA8A03D54416F01987B68AF5041B82966919B3D5441010300000001000000040000009A45EEB878AF5041DC34A173803D5441CA29E4BC78AF5041CA1D2D77803D544121FCD9BC78AF5041B5BE1473803D54419A45EEB878AF5041DC34A173803D5441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000BB518E883EAF50410300EE336B3D5441DAA45E583BAF50414D2E7FB16B3D54414A0F824F3AAF5041958CBBE6733D544129E4C83D38AF5041F59A4E97743D5441CD6A671A36AF5041BA087474823D5441E61FC1EE44AF50418AF4C2A0873D5441E74600C078AF50414503F679803D54413547987D75AF5041D455C68E7D3D5441418E6D0C75AF5041335139CB7B3D54415330DC2254AF50414E25534D7B3D5441807218364FAF5041BAA152AE843D54410C0501D547AF504177A0DAFC7A3D5441FCAD7E6144AF5041D2DA63F8733D54417A74329F41AF5041F9E64ABA6A3D54414343D10941AF50419F2946D16A3D54413333339340AF504152B81EF56A3D5441B81E858B3EAF50418FC2F5386B3D5441BB518E883EAF50410300EE336B3D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>291854 - 1413171
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000200000001030000000100000018000000EEBCA2459C0351419B0DE671001E5541F2521A2E9D035141CCFEAB35FE1D55419AF25D3B9E035141FCA655C1FE1D55412B8716449E03514105A312B2FE1D5541CDCCCCCC950351413D0AD703FA1D5541CDCCCC1C8B03514148E17AD4F31D5541C3F528BC860351411F85EB71F11D55413D0AD7B38303514114AE4711F01D5541666666368203514185EB5188EF1D5541666666267E03514100000080EE1D554148E17AB47A0351417B14AE47F41D554148E17AA47C035141713D0AA7F41D5541295C8F927E0351415C8FC2F5F41D5541295C8F6280035141CDCCCC6CF51D5541666666468203514185EB5128F61D5541A4703D2A840351417B14AEF7F61D55410000004086035141295C8F02F81D55419A999999870351417B14AEC7F81D5541CDCCCC9C8B03514166666636FB1D55410000007090035141CDCCCC4CFE1D5541B81E851B960351413D0AD793011E554147E5C50C9A03514108E3A9C7031E5541B20976C89B03514114743F6C011E5541EEBCA2459C0351419B0DE671001E5541010300000001000000040000000731843A9A0351411FE537E1031E5541CDCCCCD19A03514136CDBB35041E5541E6CA83DC9A0351419B3D6D26041E55410731843A9A0351411FE537E1031E5541
+</a>
+
+<b>
+01060000000100000001030000000100000010000000DBCA83DC9A035141963D6D26041E554100000060A1035141CDCCCCAC071E5541D7A370BDA6035141CDCCCCCC0A1E554166666636AA0351419A9999890C1E554185EB5168AC0351410AD7A3A00D1E55410AD7A330B5035141AE47E1DA0B1E554114AE4761B00351417B14AEC7071E55417B14AEE7AA0351415C8FC2E5041E5541AE47E13AA40351411F85EBB1011E554122F25D3B9E035141BEA655C1FE1D554185467F2B9D03514100F6153CFE1D5541EEBCA2459C0351419B0DE671001E55411192E0279C0351414B636AAD001E5541C31DFBD69B035141E2CC4E70011E5541137252169A035141344F2CBB031E5541DBCA83DC9A035141963D6D26041E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>291854 - 3586166
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000200000001030000000100000018000000EEBCA2459C0351419B0DE671001E5541F2521A2E9D035141CCFEAB35FE1D55419AF25D3B9E035141FCA655C1FE1D55412B8716449E03514105A312B2FE1D5541CDCCCCCC950351413D0AD703FA1D5541CDCCCC1C8B03514148E17AD4F31D5541C3F528BC860351411F85EB71F11D55413D0AD7B38303514114AE4711F01D5541666666368203514185EB5188EF1D5541666666267E03514100000080EE1D554148E17AB47A0351417B14AE47F41D554148E17AA47C035141713D0AA7F41D5541295C8F927E0351415C8FC2F5F41D5541295C8F6280035141CDCCCC6CF51D5541666666468203514185EB5128F61D5541A4703D2A840351417B14AEF7F61D55410000004086035141295C8F02F81D55419A999999870351417B14AEC7F81D5541CDCCCC9C8B03514166666636FB1D55410000007090035141CDCCCC4CFE1D5541B81E851B960351413D0AD793011E554147E5C50C9A03514108E3A9C7031E5541B20976C89B03514114743F6C011E5541EEBCA2459C0351419B0DE671001E5541010300000001000000040000000731843A9A0351411FE537E1031E5541CDCCCCD19A03514136CDBB35041E5541E6CA83DC9A0351419B3D6D26041E55410731843A9A0351411FE537E1031E5541
+</a>
+
+<b>
+01060000000100000001030000000100000010000000DBCA83DC9A035141963D6D26041E554100000060A1035141CDCCCCAC071E5541D7A370BDA6035141CDCCCCCC0A1E554166666636AA0351419A9999890C1E554185EB5168AC0351410AD7A3A00D1E55410AD7A330B5035141AE47E1DA0B1E554114AE4761B00351417B14AEC7071E55417B14AEE7AA0351415C8FC2E5041E5541AE47E13AA40351411F85EBB1011E554122F25D3B9E035141BEA655C1FE1D554185467F2B9D03514100F6153CFE1D5541EEBCA2459C0351419B0DE671001E55411192E0279C0351414B636AAD001E5541C31DFBD69B035141E2CC4E70011E5541137252169A035141344F2CBB031E5541DBCA83DC9A035141963D6D26041E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>938628 - 2923536
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000007000000510200002E11F7ABEC44514175169BCFD02F54414AE35D96ED44514148535409D22F544116C5A752EE445141DACD43FAD22F5441FD668810F04451416152F232D42F54414F3D5D41F344514177A5C46FD62F5441F467B60CF6445141EE226C65D82F5441C195C913F8445141597C6FD1D92F54411361478AFA4451419DF7948BDB2F54410E410A98FC4451411948F6D9DC2F54418047D258044551414C51CDBBCA2F5441BE67825B10455141DFBA5223B72F54414BE4E5F51C455141E9DCB3F6AF2F54418576DE6B25455141A3EA29D2AA2F5441666666062945514100000020A82F54410AD7A3D02F45514100000030A52F544185EB513833455141333333839F2F5441713D0A7737455141000000D09C2F54413D0AD7C33E455141A4703DBAA02F5441C3F5287C424551410AD7A3E09F2F5441EC51B8BE3A4551411F85EBE19A2F544185EB51884045514114AE4721942F5441AE47E10A43455141295C8F52942F544114AE4701444551418FC2F5888E2F54411F85EB314F455141295C8F02872F544152B81EA56E455141713D0A27832F54415C8FC2F570455141333333E3842F544114AE476170455141AE47E12A882F5441CDCCCC7C6D4551418FC2F5188A2F544148E17AE467455141000000108B2F54419A9999A9684551410AD7A3608D2F54419A99993964455141000000808F2F54411F85EB616545514152B81E45902F54415C8FC2A563455141C3F5283C912F54419A99993964455141666666E6942F54418FC2F5E861455141333333A3962F544114AE47A15E455141B81E85CB972F544148E17A24564551418FC2F568972F54410AD7A3004F45514100000060982F5441AE47E16A4C455141F6285CEF9D2F5441EC51B84E58455141CDCCCC8C9C2F5441AE47E10A62455141D7A370BD9B2F544100000040674551411F85EB419B2F54411F85EBA173455141713D0AB79A2F54418FC2F5E875455141713D0A979B2F54419A9999497F455141713D0A17A22F5441A4703D0A8445514148E17A04A62F54410AD7A34087455141B81E857BA82F5441713D0A978A455141000000E0AA2F5441E17A143E93455141A4703D9AB02F5441295C8FC298455141F6285CBFB32F5441EC51B83EA0455141AE47E1AAB82F5441295C8FE2A3455141AE47E1EABC2F5441EC51B89EA8455141713D0AD7C22F5441AE47E18AAA45514185EB5128C52F5441D7A3708DBD45514152B81E65CE2F5441E17A14DEBF455141C3F528ACDC2F5441333333C3C245514148E17AB4E62F5441D7A370FDC145514148E17A24EB2F5441C3F5283CC64551410AD7A350F12F54413D0AD783C945514148E17A04F42F54410AD7A360C9455141D7A3703DFF2F544185EB5168CC455141000000A00930544133333353BE455141E17A148E0B30544185EB5178BD4551418FC2F57816305441C3F528ACC64551413333336316305441B81E854BC9455141D7A3703D1630544148E17A64CC4551413D0AD793153054417B14AE77CE455141AE47E1AA14305441D7A3707DD04551419A9999291330544185EB5178D1455141CDCCCC9C10305441C3F528BCD1455141CDCCCC5C0E305441B81E851BD24551419A99991909305441F6285C4FD2455141333333E305305441AE47E1AAD2455141C3F5281C02305441C3F5281CD4455141295C8FE2F72F544148E17A24D4455141EC51B8DEF52F5441A4703DBAD3455141EC51B81EF32F5441CDCCCC1CD3455141D7A3708DF02F54413D0AD703D345514185EB5118EE2F5441EC51B80ED3455141AE47E1CAEC2F54419A999919D4455141713D0A47EA2F544114AE4731D545514148E17AD4E82F5441CDCCCC4CD5455141713D0A87E72F5441D7A3708DD445514133333313E42F54417B14AEF7D34551419A9999B9E02F544185EB51D8D34551419A9999E9DB2F544152B81E85D3455141666666B6D52F544114AE47E1D2455141713D0A37D02F54410AD7A350D2455141333333D3CB2F544166666626D24551411F85EB11C42F5441E17A142ED245514185EB51D8C12F5441EC51B8DED245514133333343BD2F5441EC51B86ED4455141E17A140EB62F5441EC51B88ED645514114AE47D1AB2F5441713D0AC7D6455141C3F5288CA92F5441D7A3702DCF455141C3F5280C9D2F5441C3F528BCC6455141AE47E1DA912F5441F6285C8FBD455141295C8F22842F5441C3F528FCB8455141D7A3708D7C2F5441D7A3704DB3455141B81E853B732F54417B14AEE7A64551417B14AE075F2F5441E17A14AE9B455141D7A3700D4E2F5441C3F5282CB8455141D7A3705D432F5441C564E0DDE0455141F8F5CB3A492F5441B038DE7ADC455141A331226E422F5441B9C57E84EA45514146E0D7972D2F5441EC51B85EEB4551410AD7A3202D2F5441B81E851BEE455141CDCCCC2C2C2F5441F6285C8FF0455141000000802B2F54413D0AD793E8455141F6285CAF222F5441AE47E1AAEB455141713D0A17212F5441AE47E15AEC4551417B14AEB71F2F5441CDCCCCFCF0455141A4703DEA1D2F54417B14AE37F3455141295C8F921D2F5441F6285CEFF4455141AE47E18A1C2F5441A4703DEAF6455141333333331D2F5441F6285C9FF8455141EC51B80E1D2F544133333333FE455141000000001E2F5441E17A141E0146514185EB51581E2F5441C3F528EC05465141EC51B85E1C2F5441333333D3064651413D0AD7331D2F5441713D0A370D46514185EB51A81D2F5441AE47E1CA12465141713D0A071C2F54419A9999D914465141666666661D2F5441CDCCCC6C17465141000000B01E2F54413333335325465141713D0A67202F54418FC2F5383046514148E17A641E2F54413D0AD73330465141CDCCCC0C1E2F5441D7A3706D304651417B14AEC71D2F54413D0AD7033146514152B81E851D2F5441D7A3704D32465141AE47E14A1D2F54415C8FC265334651417B14AE071D2F54413D0AD7333446514114AE47C11C2F544148E17A4438465141A4703DEA1A2F544148E17A6439465141EC51B87E1A2F5441CDCCCC5C3A465141D7A3705D1A2F544152B81E253B465141C3F5283C1A2F5441D7A370ED3E465141666666661A2F5441D7A370FD3F465141CDCCCC5C1A2F5441E17A14FE404651413D0AD7431A2F54418FC2F5B841465141C3F528DC192F5441713D0A374246514114AE4751192F5441E17A142E424651417B14AEF7182F54413D0AD7E3414651419A999979182F54418FC2F5684046514133333343162F54415C8FC2F53F46514114AE4701152F5441C3F5280C4046514114AE47F1132F54415C8FC2B540465141333333D3122F544114AE47E14146514114AE47D1112F54410AD7A3D043465141D7A3709D102F54417B14AED7484651417B14AE470E2F5441AE47E18A4B465141333333130D2F544114AE47014C465141E17A14BE0C2F544185EB51284C465141AE47E13A0C2F5441F6285C3F4C465141CDCCCC9C0B2F5441B81E85DB4B465141F6285CCF092F544148E17A644B465141EC51B89E082F5441713D0AC74A46514166666626072F54413D0AD7C34946514100000020052F54413333337348465141E17A14DE022F54415C8FC2F54646514100000090002F544133333303464651418FC2F528FF2E54418FC2F51845465141D7A370ADFD2E5441B81E853B404651417B14AE47FB2E54413D0AD7333E4651417B14AE37F72E54413D0AD7733A4651417B14AEB7F42E54413D0AD7C335465141F6285C9FF32E5441B81E858B314651417B14AE87ED2E5441B81E850B344651417B14AE07E62E54413D0AD7C330465141F6285C0FE32E54413D0AD7D32A4651417B14AE17E52E5441B81E850B2A465141F6285C0FE32E5441B81E85EB2B4651417B14AE17E02E5441B81E858B274651417B14AE07DC2E54413D0AD703234651417B14AE27DF2E5441B81E856B1F4651417B14AE27DF2E5441B81E85FB1B4651417B14AE97DD2E5441B81E856B1F465141F6285C3FDB2E54410AD7A3E019465141A4703D9AD82E54418FC2F5881546514114AE4771DC2E5441F6285CAF12465141295C8F72DD2E54413D0AD7031246514114AE4771DC2E5441AE47E1CA1146514114AE4751DA2E5441B81E85FB0B4651418FC2F548DA2E54415C8FC2250C46514114AE4771DC2E54418FC2F51804465141666666F6DF2E544148E17A1401465141713D0A77E02E5441E17A145EF94551418FC2F578E12E544100000080F3455141B81E85CBDF2E5441A4703D2AF3455141B81E851BDC2E5441295C8F02F5455141A4703DEAD72E5441C3F5288CFB45514100000060D12E54410AD7A390FE4551413D0AD733D02E54415C8FC2B505465141AE47E1FACE2E54413D0AD7A300465141F6285C8FCC2E5441B81E85EBFE455141F6285C1FC92E5441B81E85CBF14551417B14AE97C42E5441B81E855BF34551417B14AE97BF2E54413D0AD753F6455141F6285C8FB82E54413D0AD763F5455141F6285C5FB62E54413D0AD7B3F0455141F6285CAFB62E5441B81E855BEE455141F6285C2FB92E54413D0AD793E34551417B14AEB7B32E5441B81E856BD94551417B14AEE7B52E54413D0AD773D1455141F6285CFFBB2E54410AD7A380D34551413D0AD7D3C02E544133333323CF455141000000E0C12E544185EB51A8CA4551417B14AE77C22E54413D0AD733C64551417B14AE67C22E544100000010BE455141CDCCCC0CC22E54419A9999C9BB455141B81E85CBC42E5441333333C3B945514114AE47D1C52E54419A999909B8455141E17A14DEC62E5441D7A370FDB6455141AE47E16AC82E5441295C8FA2B545514166666656C92E544100000010B6455141AE47E1FACB2E544185EB51C8B445514185EB5138CF2E54417B14AE07B14551413D0AD783CD2E54418FC2F578AE4551418FC2F518D12E544114AE4711BA4551417B14AE87D52E5441F6285C8FBB455141AE47E16AD72E5441EC51B89EB845514166666606D92E54411F85EB01BB45514114AE47C1DB2E54417B14AEE7BD455141295C8FE2DD2E544133333313BE45514148E17A04E02E54419A999919BF4551417B14AE77E12E54410AD7A360C045514152B81EB5E42E544185EB51B8C0455141F6285C6FE72E5441AE47E12AC2455141E17A141EE82E5441295C8F62C4455141CDCCCCDCE72E5441295C8F52C54551413D0AD743E72E54415C8FC2F5C34551417B14AE27E62E5441000000E0C3455141EC51B8AEE32E5441CDCCCC4CC445514133333393E22E54419A999999C545514148E17A64E12E54411F85EB91CC455141C3F5282CE32E544152B81ED5D0455141D7A3705DE42E54415C8FC265D74551413D0AD743E72E5441C3F5282CDC45514185EB51F8E82E5441C3F5281CDD4551415C8FC245EB2E5441F6285CCFDA4551418FC2F598EE2E5441AE47E10ADA4551411F85EB21F02E544152B81EA5DE455141A4703DBAF02E5441295C8F12DF4551417B14AE37F02E5441295C8FF2E04551415C8FC225ED2E544148E17AD4E6455141713D0A57EE2E5441F6285C6FEB455141EC51B88EF02E544152B81E75EC455141F6285C5FF32E5441A4703DEAF14551410AD7A370F62E5441C3F528FCF4455141B81E853BF82E5441AE47E19AF645514114AE4731FA2E544185EB51C8FA455141713D0A47FA2E544185EB51B8FB455141000000E0FA2E5441295C8F72FE455141713D0A47FA2E5441CDCCCC4CFF455141000000E0FA2E54411F85EBF101465141EC51B89EFA2E54418FC2F5380346514133333363FB2E54419A99991905465141B81E85EBFC2E5441E17A14BE07465141C3F528BCFF2E5441F6285CDF09465141C3F5289C012F544114AE47110B4651419A9999F9022F5441B81E85DB0C465141E17A147E072F544148E17A740D46514114AE47D10A2F5441A4703D4A11465141EC51B80E0E2F5441D7A370CD114651411F85EB810F2F5441333333F310465141333333C30F2F5441333333130F465141AE47E12A0F2F5441713D0AF70D46514148E17A340D2F5441295C8F620A46514152B81E05102F544114AE47210A4651410AD7A300132F544185EB519808465141E17A145E142F5441295C8F720946514114AE47A1182F544152B81E250746514148E17A041B2F54411F85EBD103465141C3F5284C1C2F5441000000C000465141666666261D2F544114AE4731FE455141666666261D2F54411F85EBD1F84551410AD7A3201C2F5441C3F528DCF64551411F85EB611C2F54411F85EB11F54551418FC2F5C81B2F5441A4703DDAF24551418FC2F5B81C2F5441CDCCCC8CF045514152B81EE51C2F54410AD7A3B0EB4551417B14AE571E2F54413D0AD753EA4551413D0AD763202F544152B81EC5E74551413D0AD753212F5441A4703D1AE4455141D7A3709D1B2F54413D0AD753DF4551415C8FC2551A2F5441295C8F12DF455141AE47E1FA1C2F5441CDCCCCDCE0455141AE47E1DA1E2F5441F6285CAFDC4551413D0AD7731F2F5441AE47E1FADA455141F6285CAF1E2F54411F85EB71D9455141A4703D2A1A2F5441713D0AD7D4455141295C8F12162F54415C8FC2B5D2455141713D0AF7142F54410AD7A320CF4551413D0AD773142F5441B81E85CBC7455141333333C30F2F5441CDCCCC1CC7455141333333F30C2F544152B81E25C1455141666666760D2F5441C3F528ACBE45514185EB5188052F5441AE47E18ABC45514185EB5198042F54415C8FC2D5BA45514166666666032F54413D0AD713B3455141713D0A37062F544185EB51B8B54551411F85EB611C2F5441CDCCCC7CB64551411F85EB41292F5441666666A6B2455141CDCCCC9C312F5441D7A3705DA2455141B81E852B342F5441B81E859B9A45514185EB51C8312F54416666664693455141295C8FF22D2F54418FC2F5288E455141CDCCCCAC252F5441F6285CBF8A4551413D0AD743222F54415C8FC2C58B455141B81E858B182F5441E17A14AE7C45514148E17A44172F54411F85EBF175455141A4703D2A1A2F5441000000206F455141D7A3708D1C2F5441E17A140E6C4551417B14AE871B2F5441C3F528CC6B455141CDCCCCEC162F54410AD7A3A06B455141295C8F52122F544148E17AB467455141A4703D5A172F5441EC51B8CE6445514100000070172F54418FC2F5C863455141CDCCCC2C132F5441A4703DFA644551411F85EBA10D2F5441CDCCCC9C634551417B14AEE70A2F5441000000506145514148E17A440C2F5441E17A141E604551419A999989142F544152B81E955E45514114AE47D1152F5441333333A3594551413D0AD783132F54413D0AD78350455141C3F5284C112F5441666666564C455141E17A149E102F5441B81E85BB474551411F85EB61112F54417B14AEF73045514148E17A440C2F544114AE4751354551411F85EBE1FE2E5441E17A14CE3F4551417B14AE47EF2E54417B14AE173A455141A4703DBAF02E5441E17A14CE344551411F85EBD1F42E5441AE47E1AA2E455141AE47E14A022F54415C8FC2252A455141AE47E12A042F544185EB51C828455141EC51B84E0A2F5441C3F5280C22455141295C8F32092F5441EC51B8BE1F4551413D0AD7A3062F544114AE47711D455141000000B0082F5441A4703D4A1A45514114AE4701082F54413D0AD7731645514114AE4731052F5441A4703D1A12455141C3F5288C022F5441B81E85DB0A4551415C8FC2C5082F54410AD7A36004455141CDCCCC3C072F5441A4703D8A00455141AE47E15A012F5441EC51B82E034551415C8FC2E5FB2E544114AE47E100455141CDCCCC4CFB2E544114AE47F1FF4451413D0AD7D3F82E5441C3F5289CF8445141B81E852BF92E5441C3F5289CF8445141CDCCCC5C052F54417B14AE27F34451415C8FC2C5082F544185EB51C8EB445141713D0A87132F5441C3F5288CF0445141AE47E1DA1D2F5441EC51B86EF144514114AE47811F2F5441713D0A87F54451411F85EBC1262F5441666666F6FF4451418FC2F5C8392F54411F85EB810045514148E17AB43A2F5441D7A370AD064551411F85EBE1392F5441000000700E455141F6285C4F3A2F5441A4703D1A124551417B14AEE73A2F5441A4703D1A12455141F6285C2F3C2F54413D0AD763144551418FC2F5983B2F54410AD7A3E0154551418FC2F5183B2F544185EB518818455141EC51B8BE3B2F54415C8FC205184551413D0AD7C33C2F5441E17A141E1745514185EB51983C2F544100000040154551410AD7A3E03C2F544114AE476113455141EC51B88E3D2F54415C8FC235134551418FC2F5F83E2F544133333383144551411F85EBA1412F54418FC2F5181645514100000050452F5441333333831745514133333333482F5441F6285CDF18455141000000204A2F544152B81E752045514114AE47B1502F5441C3F528CC2345514152B81EF5522F54417B14AEF729455141E17A141E562F54417B14AE473D4551417B14AE374E2F5441295C8F92434551411F85EB11542F54411F85EB214945514166666656532F5441EC51B89E51455141C3F5287C532F544133333353574551415C8FC275582F5441E17A142E5D455141AE47E19A582F5441666666D660455141713D0A375A2F54410AD7A340604551410AD7A3305F2F544114AE47215B45514114AE4711602F544185EB510857455141E17A148E622F5441AE47E17A5B45514114AE4721632F5441D7A370AD68455141CDCCCC5C662F544114AE47816B45514152B81ED5662F5441295C8F126F4551417B14AEF7662F54410AD7A390714551413D0AD7A3672F54418FC2F5C87345514133333353692F54419A99998975455141A4703DBA692F54415C8FC215774551418FC2F5A8692F5441333333B378455141CDCCCCFC682F544114AE47517A45514148E17A84682F544185EB51787C455141666666A6682F5441295C8FE27D455141F6285CFF692F544114AE47917F45514148E17A046C2F544114AE477180455141D7A3705D6D2F544166666696814551415C8FC2D56D2F54417B14AE67834551410AD7A3906D2F5441CDCCCC8C8445514148E17AE46C2F5441CDCCCC6C85455141A4703D7A6B2F5441333333C3854551418FC2F5C8682F5441A4703D4A8545514166666606662F54410AD7A3E08345514114AE4741622F54416666667682455141EC51B85E602F5441D7A3707D7E4551419A9999595E2F544185EB51F8784551419A9999995C2F54411F85EB6173455141333333835A2F544152B81E15704551411F85EB91592F5441C3F5283C6B4551410AD7A380592F5441C3F528BC6745514185EB51E8592F5441F6285C2F664551415C8FC2C5592F54419A99991964455141713D0AF7582F54411F85EB11614551410AD7A3C0572F5441A4703D2A5D455141B81E859B562F54413D0AD7335A455141295C8F22562F54415C8FC29558455141E17A14DE552F54419A99990957455141F6285C0F552F544148E17A84514551419A999949512F544148E17AC44F4551419A9999894F2F544114AE47C147455141AE47E17A492F5441F6285C2F444551415C8FC295462F54416666664643455141EC51B82E472F54413D0AD7C342455141D7A3709D462F5441000000804345514185EB5138462F5441713D0AD74245514152B81ED5442F54410AD7A38042455141E17A14AE422F5441B81E853B42455141A4703DBA402F54411F85EBB141455141666666A63F2F5441B81E857B404551419A9999F93E2F5441AE47E12A42455141AE47E14A3D2F54410AD7A3804245514152B81ED53D2F54411F85EB9142455141D7A3702D3F2F5441713D0AD74245514114AE4741402F54419A9999D94345514100000030402F54413D0AD7C348455141D7A3706D3D2F544133333373514551410AD7A3203A2F54419A999929564551410AD7A340392F544152B81EC5554551419A999909332F54419A9999E95445514114AE47C1302F5441EC51B88E534551411F85EB412D2F5441A4703D6A52455141D7A3701D2B2F5441F6285C0F51455141000000302A2F54418FC2F5D84E4551417B14AE67282F5441295C8FA24C4551415C8FC255262F54419A9999594B45514114AE47B1242F54419A9999594A45514185EB51E8222F54417B14AEC747455141AE47E1FA212F5441D7A370ED4245514148E17A44202F5441295C8F923F455141E17A140E1F2F5441333333933C45514152B81E451E2F5441CDCCCCDC3A455141E17A148E1D2F544185EB51B838455141EC51B88E1B2F5441D7A3705D364551415C8FC2C5192F5441713D0AA733455141CDCCCC7C182F544152B81E1532455141F6285C8F172F544114AE4771304551411F85EB21172F5441F6285C5F2C4551418FC2F558152F5441D7A370CD2B45514100000090142F54411F85EBF12B4551419A9999D9132F5441F6285CDF2D45514100000010152F5441713D0AA735455141AE47E16A182F5441AE47E14A384551417B14AE571A2F5441CDCCCC5C3B4551417B14AED71C2F5441333333933C455141C3F5287C1D2F54416666663643455141000000A01F2F544114AE47114845514148E17A44212F544152B81E354A455141AE47E17A212F5441E17A14FE4A455141D7A3700D222F5441E17A14FE4A455141D7A3708D222F5441295C8F224C45514185EB5168242F5441000000104D4551415C8FC2D5252F54418FC2F5584F45514152B81ED5272F5441EC51B80E53455141713D0AE72A2F5441C3F528FC53455141000000302C2F544152B81E4554455141666666662D2F5441E17A140E554551415C8FC2652F2F544152B81E4556455141333333D3312F5441713D0AD756455141F6285CBF382F5441E17A148E57455141F6285C3F392F5441666666D6594551413D0AD7E3392F5441C3F5280C5F4551415C8FC2F53B2F5441E17A149E604551417B14AE873C2F5441713D0A67634551417B14AE873C2F5441295C8F32644551415C8FC2253C2F5441B81E85CB63455141A4703DDA3A2F5441CDCCCC1C6B455141A4703D3A392F544148E17AF46C45514114AE47D1382F544148E17A747245514114AE4741452F5441D7A3707D67455141666666B6462F54419A9999096745514133333343452F5441CDCCCC9C6645514185EB5118452F5441295C8F4263455141D7A3703D432F544152B81ED561455141B81E85AB422F5441C3F5280C614551418FC2F598422F544100000080604551418FC2F508412F5441AE47E1FA5E455141713D0A07412F54417B14AEF75E455141CDCCCCCC412F5441333333735E455141C3F528CC412F5441333333F35B455141AE47E1CA412F5441AE47E1EA5A4551415C8FC2954A2F54413D0AD7F350455141666666B6492F54419A9999294C455141C3F528AC472F54410AD7A37050455141EC51B81E402F544185EB5188594551418FC2F5C8412F5441295C8FD259455141666666C63C2F544185EB51E85D45514114AE47D13C2F54411F85EBB15945514114AE47D13A2F5441295C8F3257455141CDCCCC2C3A2F54417B14AED75245514114AE47D13A2F5441000000904F455141000000E03B2F5441C3F5281C4B455141CDCCCCAC3D2F54411F85EB3146455141295C8F32402F54417B14AE5744455141713D0A47412F544152B81E8543455141D7A3709D422F54418FC2F59843455141666666C6432F54417B14AE574445514185EB5158452F54417B14AEB748455141D7A370BD482F54415C8FC2D54C455141D7A3703D4C2F5441333333B34F455141D7A370FD4D2F5441CDCCCCFC514551419A999969502F5441333333D355455141295C8FA2522F5441295C8F4259455141CDCCCCEC542F5441295C8FC25C4551410AD7A320552F5441666666B65E455141CDCCCCCC552F54416666665661455141F6285CCF562F5441F6285CAF624551417B14AE47572F5441713D0AD764455141CDCCCC8C572F544148E17A7466455141E17A147E582F5441EC51B8DE67455141333333C3582F544185EB51086B455141A4703D4A582F54418FC2F5187045514100000060582F54417B14AEB773455141F6285C6F592F544114AE477179455141333333635B2F5441295C8FC27E4551410AD7A3005D2F544152B81E658245514185EB51485E2F5441B81E857B844551419A999919602F5441E17A147E8545514152B81E75622F54411F85EB9186455141295C8FB2662F54411F85EB618745514114AE4761692F5441713D0A9788455141F6285C7F6D2F5441713D0A078745514100000030712F54411F85EB5187455141713D0A17732F54410AD7A30086455141295C8F42742F54419A99991984455141D7A3708D742F54413D0AD7738145514114AE47F1712F5441295C8F6281455141D7A3701D6F2F5441000000807F455141713D0AE76D2F5441A4703D4A7E455141B81E856B6C2F544185EB51587D455141B81E858B6B2F5441666666567C455141A4703D9A6A2F5441D7A370FD7A455141F6285CFF692F544114AE477179455141333333336A2F544148E17A0477455141F6285CDF6A2F54418FC2F5A87445514148E17A246B2F544148E17A8473455141713D0A676A2F5441B81E854B71455141F6285C1F692F54413D0AD7236F4551411F85EB61682F54417B14AED76B4551418FC2F5E8672F5441C3F5289C684551411F85EB81672F5441713D0AF763455141CDCCCC5C662F54417B14AE975C45514100000050642F5441E17A142E5D455141713D0A176D2F544114AE47B15A455141EC51B8DE6F2F54410AD7A3D04D455141E17A14FE6E2F544185EB51984A45514114AE47116C2F54416666668641455141F6285C4F702F5441000000103A4551411F85EB616D2F5441F6285C2F394551415C8FC2E5642F54411F85EB413645514100000050642F5441000000103445514152B81E756A2F5441295C8FB236455141333333B36E2F54415C8FC2A53445514148E17A74702F5441F6285CBF26455141AE47E10A712F544185EB51681E455141000000306B2F5441713D0A171D45514148E17A94632F5441333333B31E455141B81E850B592F5441EC51B81E104551410AD7A3205A2F5441F6285CBF1145514152B81E555E2F5441B81E858B12455141D7A370FD5F2F544152B81EA51A455141AE47E11A712F5441EC51B83E19455141F6285C6F722F5441000000E00F4551410AD7A3107D2F54418FC2F56803455141D7A3705D8B2F544152B81EA5DF4451417B14AE37B42F5441326097D9DE4451410960EDA6BD2F54410B5980D2DE4451418D1010FBBD2F5441CDCCCCCCDE445141EC51B83EBE2F5441C43D0467EA4451412D3010C6CD2F54412E11F7ABEC44514175169BCFD02F54410500000014AE47F12E455141713D0A57412F5441B81E85CB2E455141A4703D6A3E2F5441EC51B84E32455141F6285C8F3E2F54413D0AD70332455141CDCCCC7C412F544114AE47F12E455141713D0A57412F5441050000008FC2F5C84C4551415C8FC2E53D2F54419A9999294F45514185EB51983C2F54410000002050455141295C8F023E2F5441C3F528DC4D455141EC51B85E3F2F54418FC2F5C84C4551415C8FC2E53D2F54411800000052B81E75C44551411F85EBF1D62E5441A4703D2AC44551419A9999A9D12E544114AE47F1C5455141A4703D5ACF2E544148E17A74C3455141A4703DAAC92E54419A9999C9C8455141D7A3708DCA2E5441EC51B8CECB455141333333E3C72E54417B14AE07D245514166666676CE2E5441E17A141ED645514185EB5138CD2E5441666666A6D6455141EC51B89ECB2E5441EC51B87ED9455141F6285CAFCC2E54419A9999D9D94551411F85EBD1CE2E54410AD7A3A0DB4551418FC2F548CE2E544185EB5118DB455141EC51B84ED12E54419A9999D9D94551413D0AD753D42E5441D7A3706DD8455141295C8F92D52E54413D0AD7D3D6455141F6285CAFD42E54418FC2F578D6455141000000C0D52E54418FC2F5C8D045514133333343D32E54417B14AEB7CF455141295C8F92D52E54415C8FC295CD455141AE47E11AD62E5441EC51B8CECB455141A4703D0AD52E5441CDCCCCACC945514185EB5148D62E54413D0AD703C84551411F85EB61D92E544152B81E75C44551411F85EBF1D62E5441240000008FC2F54806465141CDCCCC9CEB2E5441D7A3703D0046514100000080EC2E5441E17A143EF845514114AE4791ED2E54413D0AD743F345514148E17AC4E82E544100000000EF4551411F85EB41E32E544152B81EF5E845514100000020E12E5441295C8F72E34551417B14AE97E02E544185EB5178DE4551417B14AE97E02E54415C8FC2F5D84551410AD7A3D0DE2E5441333333C3D5455141E17A144ED92E544185EB51C8E0455141D7A3703DD82E54413D0AD783E44551413D0AD753D42E54419A9999E9EA455141F6285CAFD42E5441295C8FD2EE455141B81E852BDF2E5441B81E85BBF2455141A4703D6AE02E54419A999949F6455141D7A3709DE32E54418FC2F5E8F24551411F85EB91E52E5441333333E3F745514148E17AC4E82E5441D7A370DDFC455141EC51B80EE82E5441B81E851BFE4551411F85EBF1E82E544148E17A040A465141D7A3704DE92E5441F6285C0F10465141D7A3709DE32E54413D0AD7031246514133333353E42E54418FC2F50815465141D7A3704DE12E5441E17A14FE1646514100000020E12E54419A9999191E465141C3F5288CE22E5441D7A370AD2446514114AE4731E22E5441E17A145E22465141F6285CBFE52E544152B81E751E46514152B81E75E62E54418FC2F5081D46514114AE47E1E72E54419A99996918465141EC51B80EE82E544185EB51F813465141F6285C6FEB2E5441F6285C0F1046514100000080EC2E5441333333A30E4651417B14AEF7EB2E54415C8FC2C508465141D7A370ADEC2E54418FC2F54806465141CDCCCC9CEB2E544105000000A4703D1A54455141E17A145E3D2F544148E17A34564551419A9999993C2F5441295C8FB2564551410AD7A3003E2F54413D0AD7A354455141B81E85CB3E2F5441A4703D1A54455141E17A145E3D2F54410500000048E17AC47E455141EC51B89E432F5441E17A141E7F45514133333353402F54417B14AE1781455141D7A3707D402F544152B81EC580455141AE47E15A432F544148E17AC47E455141EC51B89E432F5441
+</a>
+
+<b>
+010600000001000000010300000006000000FD010000B8D1780FAF445141EF2DDA8F382F5441FF3093BEAE4451416494F2A7372F54419A9999F9B744514148E17A94372F54419A999979B9445141C3F5283C372F54410AD7A3E0B94451417B14AE27362F5441333333B3B24451415C8FC2D5302F54413D0AD703AA4451415C8FC2F52A2F54419A999969A944514148E17AB4292F5441A4703DAAA944514100000000282F544148E17A94AD445141E17A147E262F5441F6285CEFAE445141D7A370BD252F544152B81EB5B44451413D0AD793222F5441CDCCCC2CB94451418FC2F538212F5441C3F528CCBE44514152B81EC5202F54411F85EB91C44451418FC2F5F8202F544185EB5148C944514114AE4771212F54415C8FC205CE44514166666686222F5441AE47E12AD2445141CDCCCCEC232F5441F6285C2FD4445141C3F5280C252F5441A4703DFAD5445141F6285C9F272F544148E17A44D744514148E17A14292F544166666646D8445141295C8FB2292F5441AE47E15ADB445141EC51B85E2A2F5441D7A3700DDF445141D7A3707D2B2F544185EB5108E3445141333333D32B2F5441AE47E11AE544514185EB51482D2F5441D7A3706DEA44514185EB51F82F2F5441713D0A57ED445141333333B3302F544100000010F4445141713D0A57342F544133333333F74451419A9999F9362F5441333333D3F8445141A4703D1A392F5441B81E852BFA4451415C8FC2F53B2F54411F85EB91FB4451413D0AD7933C2F5441E17A14EEFE445141B81E854B3C2F54411F85EB9101455141EC51B87E3C2F54411F85EB810045514148E17AB43A2F5441666666F6FF4451418FC2F5C8392F5441713D0A87F54451411F85EBC1262F5441CDCCCCCCEA445141666666A6262F54413D0AD7F3E7445141A4703DAA202F544166666656DE4451417B14AED7212F5441E17A140ED3445141E17A14FE192F54419A9999A9D2445141333333330F2F5441F6285C2FB2445141D7A3706D1D2F544166666656AF445141EC51B85E202F5441295C8FD2AB4451413D0AD7A3252F5441EC51B80EA84451418FC2F558272F544166666626914451415C8FC2451B2F54411F85EBA18B445141D7A370ED1C2F54415C8FC2C5814451411F85EBE1272F5441295C8F5280445141AE47E1CA302F54419A99999977445141AE47E15A2A2F544114AE47417544514152B81E75232F5441E17A14CE6D44514152B81EC5262F5441E17A14CE65445141CDCCCC6C242F544114AE47F165445141B81E850B232F5441EC51B87E72445141D7A370CD1D2F54419A999999774451410AD7A3F0152F5441666666469544514148E17A44032F544185EB5198B34451417B14AE77F62E544148E17A64B544514185EB5198FB2E54418FC2F538BE445141713D0A37F62E5441EC51B8CEBD445141666666D6F02E544148E17A64AD445141E17A147EEA2E5441AE47E1FAA0445141EC51B8DEDF2E5441333333039C445141EC51B8DEDF2E5441000000E09F445141713D0A37E62E54413D0AD7B3944451418FC2F548EC2E544185EB512880445141C3F528FCF32E5441F6285C4F6C445141AE47E19AFD2E5441EC51B8FE6A445141C3F528FCFB2E5441A4703D9A6B44514185EB51A8F92E5441CDCCCCDC6A445141F6285CBFF72E54416666666666445141EC51B85EFB2E54411F85EB9165445141666666F6FB2E5441A4703DAA68445141C3F528ECFE2E544152B81E0565445141E17A148E012F5441666666F6624451417B14AEA7FD2E54413D0AD7F35C44514152B81E95012F54413D0AD79359445141AE47E18A082F544114AE47C14F445141E17A149E0E2F5441A4703D7A51445141A4703D8A102F5441C3F528CC5644514152B81E55112F544114AE4781654451413D0AD763162F5441000000B06744514114AE47C11A2F54419A99996964445141713D0A571F2F544185EB51B859445141B81E85CB242F5441F6285CDF3E445141A4703DEA422F544114AE47812F44514152B81E05632F5441713D0AD715445141B81E85DB6A2F5441D7A3701D1944514185EB51A86F2F5441F6285C9F1544514152B81E85832F544185EB51D821445141AE47E13A872F544148E17AF427445141D7A370DD822F544114AE47914944514166666656812F544148E17AC45144514133333353862F5441A4703D4A53445141333333D3892F544148E17A8453445141F6285CBF902F5441CDCCCC8C57445141713D0AC7942F544152B81E155844514152B81ED5962F54418FC2F578574451417B14AE57992F544185EB51A85B445141CDCCCCACA42F5441D7A3709D58445141295C8FF2A72F54419A999989584451417B14AE77A92F54417B14AE575C44514166666696AC2F5441CDCCCC1C5C44514114AE4761B12F54419A999989584451410AD7A3E0B42F544185EB5128584451418FC2F528B72F5441713D0A175E445141CDCCCC1CC22F5441A4703DDA5E445141295C8FF2C92F54417B14AE575C445141295C8F12E12F54419A9999C95644514185EB5128E72F544152B81E454E44514152B81EE5E92F544166666616434451411F85EB81E32F5441000000503944514166666616DB2F5441C3F5289C2E4451415C8FC265D42F54413D0AD763214451413D0AD703D12F544148E17A1410445141B81E855BC82F5441AE47E1DAFB4351413D0AD713C62F544166666636F743514185EB5198C82F54410AD7A3F0F143514133333353CA2F5441CDCCCC9CD5435141AE47E14ACC2F5441C3F5284CCF43514114AE4721D72F544114AE4751CF43514152B81E25E12F544152B81E35D1435141EC51B82EE62F5441E17A147EDA43514114AE4711E12F5441E17A140EDF43514114AE47F1DE2F54418FC2F558DE435141B81E85CBDB2F5441295C8F22DF435141D7A3709DDA2F54419A999939E3435141EC51B81ED92F544148E17AE4E8435141D7A3700DDD2F544152B81EE5EF4351418FC2F5F8D52F5441E17A14EEF4435141EC51B8DED42F5441D7A370AD03445141666666A6D42F5441A4703DDA0C44514152B81E35D62F544114AE47F121445141C3F5283CDE2F54413D0AD7332A445141A4703D6ADF2F5441AE47E15A344451419A9999A9E32F544185EB51E83B4451413D0AD703E92F544185EB5188464451411F85EB61F92F544114AE47914B445141E17A146E023054418FC2F55856445141A4703D0A093054413D0AD7C357445141295C8F520B3054415C8FC2255B4451419A9999B908305441AE47E1FA5D4451413D0AD79305305441F6285C2F604451415C8FC2F5013054411F85EBE16344514100000030F42F5441713D0A97644451411F85EB71EE2F5441D7A370AD6444514100000020EA2F544185EB5188644451417B14AE37E22F54411F85EBD16444514114AE47A1DF2F54413333335365445141F6285C2FDD2F5441333333A36944514148E17AE4D02F5441EC51B80E6C445141295C8FA2CB2F54417B14AEC769445141A4703DCACB2F544114AE4731674451418FC2F5F8C62F5441295C8F2269445141E17A145EC12F5441A4703DAA624451415C8FC295B62F54413D0AD78361445141D7A3703DAD2F5441666666766444514114AE47B1A52F5441E17A14EE754451415C8FC2C59B2F5441D7A3709D7C445141295C8F62A22F5441666666E687445141AE47E1DA9D2F5441B81E857B894451411F85EB71A02F544148E17A048F4451418FC2F5589C2F5441B81E85AB904451417B14AE679A2F54411F85EBD1914451411F85EB51982F5441713D0A67934451411F85EB71952F5441A4703DFA93445141EC51B86E932F5441B81E858B93445141295C8FA2912F54410AD7A3608E4451417B14AEE78A2F5441666666268E445141333333C3892F54417B14AE878E4451419A999929882F5441A4703DFA8F4451413D0AD7F3852F54411F85EB9192445141C3F5287C7E2F54411F85EB9192445141CDCCCC1C7D2F54415C8FC2F591445141A4703DAA7B2F544152B81E3590445141AE47E14A7A2F544185EB51D88D445141B81E859B792F54417B14AE678B44514148E17A74792F54411F85EB518444514148E17A74792F5441E17A145E7F44514148E17A24782F54417B14AE977D4451419A9999A9762F5441CDCCCC3C7D445141D7A3704D752F5441B81E855B7D445141F6285C0F742F5441000000207E445141B81E853B732F5441A4703DAA7F445141B81E851B722F5441C3F528CC82445141D7A370DD702F54413333337383445141B81E85EB6F2F54413D0AD763834451417B14AE176F2F54410AD7A380824451415C8FC2156E2F5441333333037F4451413D0AD7236D2F544114AE47117E445141E17A146E6C2F5441A4703D6A7D445141000000306B2F5441295C8FF27D445141EC51B83E602F5441333333537F44514148E17AA4572F54413D0AD7B37E445141B81E852B572F5441B81E859B7D44514133333333582F54413D0AD7937C44514114AE47C15A2F5441CDCCCCAC7B445141EC51B86E5A2F5441000000007A4451411F85EBA15D2F544148E17A447444514152B81E955A2F54419A99999975445141713D0AF7572F5441AE47E16A744451417B14AE57572F544100000010754451411F85EBF1552F5441B81E858B76445141CDCCCC9C562F5441A4703DEA79445141E17A141E562F54417B14AEC77D4451419A999939562F54419A9999C97E4451415C8FC2B5552F544152B81E957F445141C3F5282C552F544114AE47318144514185EB51D8512F54419A999979854451417B14AE17482F5441B81E859B8744514148E17A14442F5441CDCCCCBC894451411F85EBB1402F544152B81E358B44514152B81E753E2F544152B81E3580445141000000D03E2F5441E17A14AE77445141E17A140E3C2F54410AD7A3C07A44514185EB5188352F54415C8FC2E5804451417B14AEC7342F54418FC2F5A884445141AE47E14A382F54410AD7A3408E445141A4703D7A372F54411F85EB418F445141D7A3705D3B2F544152B81E3593445141B81E850B392F5441713D0AC795445141AE47E12A382F54419A99999998445141AE47E1FA372F5441CDCCCC7C9C445141AE47E13A382F544100000040A0445141AE47E13A382F544148E17A34A6445141A4703DBA372F54415C8FC295AE4451417B14AEA7372F5441E50971E5AE44514100AEAB6D382F5441000000E0AA445141A4703D7A382F5441713D0AC79F4451413D0AD763392F5441C3F528CCA24451419A9999493B2F54415C8FC245A44451419A9999B93A2F5441EC51B8FEA7445141F6285C7F3B2F5441713D0A27A74451411F85EB913F2F5441713D0A07A6445141AE47E12A422F54419A999999A344514133333333442F54411F85EB61A14451413D0AD743472F54417B14AEE79B445141A4703D5A432F54417B14AE679D445141AE47E16A402F54415C8FC2B598445141CDCCCC8C3A2F54415C8FC2359744514114AE4781392F5441EC51B80E954451411F85EB91392F5441666666C692445141CDCCCC8C3A2F544114AE47418F4451415C8FC2E53C2F54413D0AD7838C445141A4703DDA3E2F54410AD7A3B08A44514152B81E65412F54417B14AE57884451419A9999C9442F5441295C8F62864451411F85EB91482F5441C3F5283C81445141D7A3702D542F544148E17A8480445141295C8F32562F5441295C8FD27E44514100000070602F5441CDCCCC4C7E4451417B14AE376A2F54413D0AD7F37E44514152B81E756B2F5441F6285C0F80445141EC51B85E6C2F544152B81E1582445141295C8FB26C2F54417B14AED783445141AE47E17A6D2F5441295C8FE2844451417B14AEB76E2F544114AE47C1844451415C8FC205702F544185EB51E88344514133333343712F5441C3F528BC7F4451417B14AE37732F5441000000A07E44514114AE4721742F5441E17A146E7E445141C3F5281C752F5441000000A07E44514166666616762F544100000020804451411F85EB31772F5441E17A146E844451411F85EBB1782F54413D0AD7038B44514100000080782F5441B81E85BB8E4451411F85EBB1782F5441713D0A4791445141E17A14CE792F5441666666C692445141F6285C6F7B2F5441000000A093445141F6285CEF7C2F5441000000A0934451413D0AD7E37E2F5441295C8FE2904451411F85EB31862F54417B14AED78F4451419A999969882F5441295C8F628F44514185EB51D8892F54417B14AED78F4451415C8FC2158B2F544185EB516894445141EC51B86E902F544100000020954451410AD7A320922F544114AE4741954451410AD7A3A0932F544185EB5168944451417B14AEC7952F544185EB51E892445141666666A6982F544185EB51A893445141EC51B8DE982F54417B14AE7793445141295C8F329A2F544114AE474192445141CDCCCCCC9A2F544152B81E2591445141713D0AB79B2F5441D7A370ED91445141000000909C2F54416666669698445141EC51B8EE9A2F544133333393974451411F85EB91932F5441E17A140E984451417B14AEB7922F54417B14AEA799445141EC51B82E922F5441B81E854B9E445141295C8FD2922F5441F6285C1FA1445141E17A14BE942F544148E17A34A34451419A999909972F544152B81EA5A444514148E17AB4992F54413D0AD763A54451419A9999999D2F54417B14AE67A6445141295C8FF29F2F5441A4703DFAA54451418FC2F5F8A12F54411F85EB41A7445141E17A140EA42F5441F6285C7FA1445141EC51B8AEA72F54417B14AE37A0445141B81E85EBA52F5441000000909A445141D7A370CDA82F5441295C8F829E44514185EB51A8B12F544185EB5138AF44514148E17AE4B32F5441EC51B86EAF445141AE47E1CAB82F5441EC51B80EA6445141666666C6BB2F54410AD7A360A6445141CDCCCC7CC22F5441A4703D6AB24451419A999969C92F54411F85EB31B7445141295C8FA2CF2F54413D0AD7D3C14451418FC2F588DC2F544185EB5118BF445141B81E852BE12F5441B81E85ABB14451419A999909EC2F544114AE47C1A2445141CDCCCC9CEB2F54410AD7A3E0894451419A999939E22F54418FC2F5F88F445141CDCCCC5CF32F5441E17A14FE97445141666666F6F22F54418FC2F5B89B445141713D0A57FC2F5441A4703D8A934451415C8FC265FD2F5441A4703D9A94445141333333630030544152B81E95A14451418FC2F5080630544114AE4781B544514114AE47C104305441E17A14BEB744514148E17A8402305441EC51B81EB4445141000000F0FD2F5441C3F5286CB74451413D0AD7C3FC2F5441B81E85DBBC445141AE47E1BA02305441AE47E10AC8445141C3F528AC06305441B81E850BD14451417B14AEC708305441D7A3703DD444514148E17A240E305441A4703DFAD6445141CDCCCCCC0D30544133333393D84451410AD7A3600A3054418FC2F5C8E4445141E17A147E0A305441E17A14DEE7445141295C8F520830544114AE4791F14451418FC2F5080A305441713D0A27FB44514152B81E45063054419A99998905455141CDCCCCBCFE2F5441EC51B82E0D455141295C8F2201305441B81E852B15455141295C8FA2F62F5441F6285CCF1645514166666686F62F5441666666661745514100000060EA2F544148E17A14094551413D0AD7C3E22F544114AE4701FC445141295C8F92DC2F544114AE4741EE445141E17A14EED22F5441CDCCCCCCDE445141EC51B83EBE2F544152B81EA5DF4451417B14AE37B42F54418FC2F56803455141D7A3705D8B2F5441000000E00F4551410AD7A3107D2F5441EC51B83E19455141F6285C6F722F544152B81EA51A455141AE47E11A712F5441B81E858B12455141D7A370FD5F2F5441F6285CBF1145514152B81E555E2F5441EC51B81E104551410AD7A3205A2F5441E17A146E09455141AE47E13A5B2F5441C3F5280C02455141D7A3709D502F5441CDCCCC0CED445141B81E853B492F54417B14AE47ED4451410AD7A3803E2F5441A4703DFAF6445141C3F5284C382F5441333333B3F54451413D0AD7C3362F54411F85EB71F34451415C8FC225352F5441D7A3709DEF44514148E17AE4322F5441295C8F62ED4451418FC2F5E8312F54417B14AED7EA44514133333353312F54419A999989E6445141E17A145E2F2F5441C3F5287CE3445141666666662D2F54415C8FC255E24451413D0AD7E32C2F54413D0AD733DF4451410AD7A3A02C2F544100000010D844514152B81EC52A2F5441A4703DCAD644514114AE47612A2F54419A999939D5445141A4703D3A282F54413D0AD7F3D344514152B81E45262F5441CDCCCCCCD144514100000000252F54418FC2F528CF44514152B81E05242F54419A999959CA4451415C8FC295222F54413D0AD7E3C44451417B14AEF7212F5441A4703DBABE445141E17A14DE212F54417B14AE77B844514148E17A74222F544185EB5188B5445141CDCCCC3C232F544100000080B244514148E17AB4242F5441333333D3AD44514114AE47B1272F54417B14AE97AA445141EC51B84E292F54415C8FC215AB4451410AD7A3802A2F5441713D0AE7B94451419A999979342F5441AE47E12ABB4451410AD7A3E0352F544148E17A84BB445141CDCCCC6C372F544114AE4741BA445141A4703D7A382F54415F9104D7AF4451414EE51085382F5441AE47E10AB2445141EC51B89E3B2F54418FC2F5A8B24451413D0AD7333C2F5441666666E6B3445141E17A141E3D2F5441E17A141EB44451419A9999093E2F54415C8FC2C5B3445141E17A14FE3E2F5441F6285C0FB2445141F6285C4F402F5441333333B3B1445141EC51B8FE402F54419A9999D9B144514133333393412F5441E17A147EB2445141F6285CEF412F5441C3F5283CB4445141C3F5286C422F54419A999949B544514100000000442F5441A4703D2AB6445141713D0A97462F5441333333D3B64451417B14AEE7472F544152B81EE5B94451417B14AEF7492F544100000030BB445141D7A3705D4B2F5441B81E851BBC4451415C8FC2E54C2F54419A9999E9C24451418FC2F598522F5441C3F5289CC54451410AD7A340542F5441295C8F82C744514166666656562F54419A999969C9445141666666C65C2F5441666666F6C94451410AD7A3F05D2F54410AD7A320CB4451418FC2F5685F2F54410AD7A3F0CC445141F6285C4F602F5441E17A14CECF44514185EB5138612F54411F85EB91D4445141AE47E14A622F5441333333F3DD445141295C8F02642F544133333313E1445141C3F5283C652F544152B81EF5E3445141666666A6692F5441666666A6E1445141713D0A876B2F5441E17A14DEDE445141A4703D8A722F54417B14AEF7DC445141D7A3700D752F544166666636DD445141295C8F42772F5441A4703D8ADC445141333333437A2F544185EB51E8DC4451419A9999497C2F54411F85EB31DE44514148E17A447D2F5441D7A3701DDF445141C3F528EC7E2F54413D0AD7F3E04451419A9999797F2F5441C3F528CCE5445141B81E853B822F5441D7A370ADE8445141F6285CAF842F5441AE47E1AAEF445141CDCCCC2C852F544166666676F04451417B14AE47862F5441713D0A57F0445141F6285CDF872F5441D7A3701DEF44514148E17A148A2F54418FC2F5D8EC445141A4703D2A8C2F5441CDCCCC0CEC445141295C8FB28D2F544166666626EA445141713D0AF78F2F5441E17A149EE84451413D0AD7D3932F5441295C8FA2E7445141F6285CBF942F5441AE47E1FAE5445141CDCCCC3C952F54411F85EBA1E44451417B14AE57962F5441295C8F62E4445141295C8F52972F544185EB5148E3445141B81E85CB982F5441000000D0E14451418FC2F548992F54418FC2F5F8DF44514152B81E159A2F5441A4703D3AD944514100000070A12F5441000000B0D144514152B81E15AA2F544114AE4711CC445141CDCCCC7CB12F5441333333F3C744514148E17AD4B82F544152B81E55C74451410AD7A3D0BB2F5441713D0AD7C64451413D0AD713BC2F5441713D0AE7C5445141C3F528DCBB2F5441B81E859BC54451415C8FC2C5BA2F544185EB51A8C644514152B81EF5BA2F544166666656C7445141C3F5286CB82F5441C3F5287CCB445141EC51B82EB12F5441EC51B86ED0445141000000A0AA2F544152B81E95D544514166666676A42F5441E17A14FEDC4451415C8FC2159C2F5441666666F6DF445141CDCCCC6C992F5441EC51B82EE1445141A4703DDA982F5441B81E85ABE2445141F6285C0F982F5441D7A3704DE34451411F85EB81972F5441713D0AC7E3445141B81E85AB952F544100000080E8445141D7A3701D932F5441D7A3706DE9445141666666B68F2F54418FC2F548EB445141B81E85BB8D2F54415C8FC295EC44514114AE47918B2F5441F6285CEFEE44514166666676892F5441D7A3708DEF445141A4703D1A882F5441CDCCCCCCEF445141E17A14AE862F54417B14AEE7EE445141666666A6852F544100000070E844514114AE4751852F54411F85EBB1E5445141F6285C2F832F5441B81E85ABE344514152B81E65812F54418FC2F5F8DE4451418FC2F5887F2F54415C8FC205DD445141A4703DEA7C2F54411F85EB51DC445141B81E856B7C2F5441713D0AE7DB445141B81E856B7A2F544152B81EA5DC445141295C8F12772F54417B14AE67DC4451419A999999742F54419A999969DE445141C3F5283C722F5441D7A370BDE0445141000000606C2F544152B81EA5E0445141713D0AD7662F54417B14AE87DF445141EC51B81E652F5441713D0AB7DD44514100000090642F544185EB5158DB44514148E17A24642F54413D0AD763D5445141F6285CEF622F5441EC51B88ECF445141C3F528BC612F5441333333F3CB4451413D0AD783602F5441A4703D9ACA4451411F85EBA15F2F544148E17A34C944514114AE47D15D2F5441295C8F52C84451415C8FC2955B2F5441C3F5286CC7445141713D0A17582F5441713D0AA7C64451417B14AE27562F5441C3F5287CC5445141B81E85FB542F54419A9999F9C2445141EC51B84E532F54417B14AEE7BB445141666666964D2F5441E17A148EBA445141666666964B2F5441D7A3703DB9445141A4703D3A4A2F5441333333A3B5445141B81E85CB472F5441D7A370EDB44451411F85EB21442F5441AE47E1EAB34451419A9999B9422F5441A4703D9AB24451413D0AD753422F5441A4703DCAB1445141A4703DEA412F5441D7A3704DB144514114AE4751412F54418FC2F548B1445141E17A14DE402F54411F85EB01B24451411F85EBB13F2F5441EC51B82EB3445141295C8FE23E2F5441C3F5287CB3445141F6285C8F3E2F5441EC51B8AEB3445141D7A370ED3D2F5441E17A146EB3445141E17A143E3D2F54415C8FC2C5B14451418FC2F5083C2F544180C60F87AF445141F9522D49392F5441B8D1780FAF445141EF2DDA8F382F54410700000014AE479180445141AE47E14A9F2F54411F85EB217E445141333333F39E2F5441000000007F445141D7A370BD9A2F5441EC51B88E80445141000000109B2F5441B81E851B8044514185EB51589D2F5441AE47E1DA80445141F6285C7F9D2F544114AE479180445141AE47E14A9F2F544108000000EC51B8CEA94451415C8FC225F42E54411F85EBF1A1445141666666D6F82E544148E17A649944514148E17AC4FA2E5441AE47E1AA8D4451418FC2F548F82E54417B14AE878D4451413D0AD713F22E5441295C8FA2A2445141295C8FB2EC2E544100000030A744514133333363ED2E5441EC51B8CEA94451415C8FC225F42E544112000000F6285CCFA94451410AD7A3E09A2F5441EC51B8FEA7445141F6285C3F972F544166666686AF4451411F85EB41932F5441666666C6BA44514114AE4771912F5441A4703D1AC244514114AE4701892F5441000000F0C4445141F6285CBF802F544166666666C1445141295C8F927D2F54418FC2F5D8C3445141C3F528AC782F54415C8FC275D044514114AE4781712F544148E17AE4D14451411F85EBF1732F5441713D0A77CD4451410AD7A350762F544166666676CE445141C3F5281C812F5441AE47E17AC64451410AD7A3008A2F544152B81E95C044514148E17A448E2F5441B81E850BBD4451415C8FC2B5932F54418FC2F5C8B54451411F85EBE1972F54417B14AEF7B0445141E17A14FE952F5441F6285CCFA94451410AD7A3E09A2F544105000000713D0A579A445141CDCCCC3C812F5441713D0AD798445141713D0A277F2F5441A4703D1A9C445141CDCCCCBC7C2F544185EB51789D4451413D0AD7E37E2F5441713D0A579A445141CDCCCC3C812F54410B0000008FC2F5E8F14451411F85EB21F02F544148E17A84EB4451413D0AD703EC2F544114AE47B1DC4451415C8FC205DE2F5441CDCCCC0CD94451411F85EB81D42F5441EC51B85EDD44514185EB5108D32F5441E17A14FEDF44514133333313DD2F5441E17A143EE5445141D7A370EDDF2F5441D7A3702DEB445141295C8FC2DD2F5441666666F6F3445141713D0A77E32F5441B81E85CBF144514166666666E92F54418FC2F5E8F14451411F85EB21F02F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>938628 - 3201913
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000007000000510200002E11F7ABEC44514175169BCFD02F54414AE35D96ED44514148535409D22F544116C5A752EE445141DACD43FAD22F5441FD668810F04451416152F232D42F54414F3D5D41F344514177A5C46FD62F5441F467B60CF6445141EE226C65D82F5441C195C913F8445141597C6FD1D92F54411361478AFA4451419DF7948BDB2F54410E410A98FC4451411948F6D9DC2F54418047D258044551414C51CDBBCA2F5441BE67825B10455141DFBA5223B72F54414BE4E5F51C455141E9DCB3F6AF2F54418576DE6B25455141A3EA29D2AA2F5441666666062945514100000020A82F54410AD7A3D02F45514100000030A52F544185EB513833455141333333839F2F5441713D0A7737455141000000D09C2F54413D0AD7C33E455141A4703DBAA02F5441C3F5287C424551410AD7A3E09F2F5441EC51B8BE3A4551411F85EBE19A2F544185EB51884045514114AE4721942F5441AE47E10A43455141295C8F52942F544114AE4701444551418FC2F5888E2F54411F85EB314F455141295C8F02872F544152B81EA56E455141713D0A27832F54415C8FC2F570455141333333E3842F544114AE476170455141AE47E12A882F5441CDCCCC7C6D4551418FC2F5188A2F544148E17AE467455141000000108B2F54419A9999A9684551410AD7A3608D2F54419A99993964455141000000808F2F54411F85EB616545514152B81E45902F54415C8FC2A563455141C3F5283C912F54419A99993964455141666666E6942F54418FC2F5E861455141333333A3962F544114AE47A15E455141B81E85CB972F544148E17A24564551418FC2F568972F54410AD7A3004F45514100000060982F5441AE47E16A4C455141F6285CEF9D2F5441EC51B84E58455141CDCCCC8C9C2F5441AE47E10A62455141D7A370BD9B2F544100000040674551411F85EB419B2F54411F85EBA173455141713D0AB79A2F54418FC2F5E875455141713D0A979B2F54419A9999497F455141713D0A17A22F5441A4703D0A8445514148E17A04A62F54410AD7A34087455141B81E857BA82F5441713D0A978A455141000000E0AA2F5441E17A143E93455141A4703D9AB02F5441295C8FC298455141F6285CBFB32F5441EC51B83EA0455141AE47E1AAB82F5441295C8FE2A3455141AE47E1EABC2F5441EC51B89EA8455141713D0AD7C22F5441AE47E18AAA45514185EB5128C52F5441D7A3708DBD45514152B81E65CE2F5441E17A14DEBF455141C3F528ACDC2F5441333333C3C245514148E17AB4E62F5441D7A370FDC145514148E17A24EB2F5441C3F5283CC64551410AD7A350F12F54413D0AD783C945514148E17A04F42F54410AD7A360C9455141D7A3703DFF2F544185EB5168CC455141000000A00930544133333353BE455141E17A148E0B30544185EB5178BD4551418FC2F57816305441C3F528ACC64551413333336316305441B81E854BC9455141D7A3703D1630544148E17A64CC4551413D0AD793153054417B14AE77CE455141AE47E1AA14305441D7A3707DD04551419A9999291330544185EB5178D1455141CDCCCC9C10305441C3F528BCD1455141CDCCCC5C0E305441B81E851BD24551419A99991909305441F6285C4FD2455141333333E305305441AE47E1AAD2455141C3F5281C02305441C3F5281CD4455141295C8FE2F72F544148E17A24D4455141EC51B8DEF52F5441A4703DBAD3455141EC51B81EF32F5441CDCCCC1CD3455141D7A3708DF02F54413D0AD703D345514185EB5118EE2F5441EC51B80ED3455141AE47E1CAEC2F54419A999919D4455141713D0A47EA2F544114AE4731D545514148E17AD4E82F5441CDCCCC4CD5455141713D0A87E72F5441D7A3708DD445514133333313E42F54417B14AEF7D34551419A9999B9E02F544185EB51D8D34551419A9999E9DB2F544152B81E85D3455141666666B6D52F544114AE47E1D2455141713D0A37D02F54410AD7A350D2455141333333D3CB2F544166666626D24551411F85EB11C42F5441E17A142ED245514185EB51D8C12F5441EC51B8DED245514133333343BD2F5441EC51B86ED4455141E17A140EB62F5441EC51B88ED645514114AE47D1AB2F5441713D0AC7D6455141C3F5288CA92F5441D7A3702DCF455141C3F5280C9D2F5441C3F528BCC6455141AE47E1DA912F5441F6285C8FBD455141295C8F22842F5441C3F528FCB8455141D7A3708D7C2F5441D7A3704DB3455141B81E853B732F54417B14AEE7A64551417B14AE075F2F5441E17A14AE9B455141D7A3700D4E2F5441C3F5282CB8455141D7A3705D432F5441C564E0DDE0455141F8F5CB3A492F5441B038DE7ADC455141A331226E422F5441B9C57E84EA45514146E0D7972D2F5441EC51B85EEB4551410AD7A3202D2F5441B81E851BEE455141CDCCCC2C2C2F5441F6285C8FF0455141000000802B2F54413D0AD793E8455141F6285CAF222F5441AE47E1AAEB455141713D0A17212F5441AE47E15AEC4551417B14AEB71F2F5441CDCCCCFCF0455141A4703DEA1D2F54417B14AE37F3455141295C8F921D2F5441F6285CEFF4455141AE47E18A1C2F5441A4703DEAF6455141333333331D2F5441F6285C9FF8455141EC51B80E1D2F544133333333FE455141000000001E2F5441E17A141E0146514185EB51581E2F5441C3F528EC05465141EC51B85E1C2F5441333333D3064651413D0AD7331D2F5441713D0A370D46514185EB51A81D2F5441AE47E1CA12465141713D0A071C2F54419A9999D914465141666666661D2F5441CDCCCC6C17465141000000B01E2F54413333335325465141713D0A67202F54418FC2F5383046514148E17A641E2F54413D0AD73330465141CDCCCC0C1E2F5441D7A3706D304651417B14AEC71D2F54413D0AD7033146514152B81E851D2F5441D7A3704D32465141AE47E14A1D2F54415C8FC265334651417B14AE071D2F54413D0AD7333446514114AE47C11C2F544148E17A4438465141A4703DEA1A2F544148E17A6439465141EC51B87E1A2F5441CDCCCC5C3A465141D7A3705D1A2F544152B81E253B465141C3F5283C1A2F5441D7A370ED3E465141666666661A2F5441D7A370FD3F465141CDCCCC5C1A2F5441E17A14FE404651413D0AD7431A2F54418FC2F5B841465141C3F528DC192F5441713D0A374246514114AE4751192F5441E17A142E424651417B14AEF7182F54413D0AD7E3414651419A999979182F54418FC2F5684046514133333343162F54415C8FC2F53F46514114AE4701152F5441C3F5280C4046514114AE47F1132F54415C8FC2B540465141333333D3122F544114AE47E14146514114AE47D1112F54410AD7A3D043465141D7A3709D102F54417B14AED7484651417B14AE470E2F5441AE47E18A4B465141333333130D2F544114AE47014C465141E17A14BE0C2F544185EB51284C465141AE47E13A0C2F5441F6285C3F4C465141CDCCCC9C0B2F5441B81E85DB4B465141F6285CCF092F544148E17A644B465141EC51B89E082F5441713D0AC74A46514166666626072F54413D0AD7C34946514100000020052F54413333337348465141E17A14DE022F54415C8FC2F54646514100000090002F544133333303464651418FC2F528FF2E54418FC2F51845465141D7A370ADFD2E5441B81E853B404651417B14AE47FB2E54413D0AD7333E4651417B14AE37F72E54413D0AD7733A4651417B14AEB7F42E54413D0AD7C335465141F6285C9FF32E5441B81E858B314651417B14AE87ED2E5441B81E850B344651417B14AE07E62E54413D0AD7C330465141F6285C0FE32E54413D0AD7D32A4651417B14AE17E52E5441B81E850B2A465141F6285C0FE32E5441B81E85EB2B4651417B14AE17E02E5441B81E858B274651417B14AE07DC2E54413D0AD703234651417B14AE27DF2E5441B81E856B1F4651417B14AE27DF2E5441B81E85FB1B4651417B14AE97DD2E5441B81E856B1F465141F6285C3FDB2E54410AD7A3E019465141A4703D9AD82E54418FC2F5881546514114AE4771DC2E5441F6285CAF12465141295C8F72DD2E54413D0AD7031246514114AE4771DC2E5441AE47E1CA1146514114AE4751DA2E5441B81E85FB0B4651418FC2F548DA2E54415C8FC2250C46514114AE4771DC2E54418FC2F51804465141666666F6DF2E544148E17A1401465141713D0A77E02E5441E17A145EF94551418FC2F578E12E544100000080F3455141B81E85CBDF2E5441A4703D2AF3455141B81E851BDC2E5441295C8F02F5455141A4703DEAD72E5441C3F5288CFB45514100000060D12E54410AD7A390FE4551413D0AD733D02E54415C8FC2B505465141AE47E1FACE2E54413D0AD7A300465141F6285C8FCC2E5441B81E85EBFE455141F6285C1FC92E5441B81E85CBF14551417B14AE97C42E5441B81E855BF34551417B14AE97BF2E54413D0AD753F6455141F6285C8FB82E54413D0AD763F5455141F6285C5FB62E54413D0AD7B3F0455141F6285CAFB62E5441B81E855BEE455141F6285C2FB92E54413D0AD793E34551417B14AEB7B32E5441B81E856BD94551417B14AEE7B52E54413D0AD773D1455141F6285CFFBB2E54410AD7A380D34551413D0AD7D3C02E544133333323CF455141000000E0C12E544185EB51A8CA4551417B14AE77C22E54413D0AD733C64551417B14AE67C22E544100000010BE455141CDCCCC0CC22E54419A9999C9BB455141B81E85CBC42E5441333333C3B945514114AE47D1C52E54419A999909B8455141E17A14DEC62E5441D7A370FDB6455141AE47E16AC82E5441295C8FA2B545514166666656C92E544100000010B6455141AE47E1FACB2E544185EB51C8B445514185EB5138CF2E54417B14AE07B14551413D0AD783CD2E54418FC2F578AE4551418FC2F518D12E544114AE4711BA4551417B14AE87D52E5441F6285C8FBB455141AE47E16AD72E5441EC51B89EB845514166666606D92E54411F85EB01BB45514114AE47C1DB2E54417B14AEE7BD455141295C8FE2DD2E544133333313BE45514148E17A04E02E54419A999919BF4551417B14AE77E12E54410AD7A360C045514152B81EB5E42E544185EB51B8C0455141F6285C6FE72E5441AE47E12AC2455141E17A141EE82E5441295C8F62C4455141CDCCCCDCE72E5441295C8F52C54551413D0AD743E72E54415C8FC2F5C34551417B14AE27E62E5441000000E0C3455141EC51B8AEE32E5441CDCCCC4CC445514133333393E22E54419A999999C545514148E17A64E12E54411F85EB91CC455141C3F5282CE32E544152B81ED5D0455141D7A3705DE42E54415C8FC265D74551413D0AD743E72E5441C3F5282CDC45514185EB51F8E82E5441C3F5281CDD4551415C8FC245EB2E5441F6285CCFDA4551418FC2F598EE2E5441AE47E10ADA4551411F85EB21F02E544152B81EA5DE455141A4703DBAF02E5441295C8F12DF4551417B14AE37F02E5441295C8FF2E04551415C8FC225ED2E544148E17AD4E6455141713D0A57EE2E5441F6285C6FEB455141EC51B88EF02E544152B81E75EC455141F6285C5FF32E5441A4703DEAF14551410AD7A370F62E5441C3F528FCF4455141B81E853BF82E5441AE47E19AF645514114AE4731FA2E544185EB51C8FA455141713D0A47FA2E544185EB51B8FB455141000000E0FA2E5441295C8F72FE455141713D0A47FA2E5441CDCCCC4CFF455141000000E0FA2E54411F85EBF101465141EC51B89EFA2E54418FC2F5380346514133333363FB2E54419A99991905465141B81E85EBFC2E5441E17A14BE07465141C3F528BCFF2E5441F6285CDF09465141C3F5289C012F544114AE47110B4651419A9999F9022F5441B81E85DB0C465141E17A147E072F544148E17A740D46514114AE47D10A2F5441A4703D4A11465141EC51B80E0E2F5441D7A370CD114651411F85EB810F2F5441333333F310465141333333C30F2F5441333333130F465141AE47E12A0F2F5441713D0AF70D46514148E17A340D2F5441295C8F620A46514152B81E05102F544114AE47210A4651410AD7A300132F544185EB519808465141E17A145E142F5441295C8F720946514114AE47A1182F544152B81E250746514148E17A041B2F54411F85EBD103465141C3F5284C1C2F5441000000C000465141666666261D2F544114AE4731FE455141666666261D2F54411F85EBD1F84551410AD7A3201C2F5441C3F528DCF64551411F85EB611C2F54411F85EB11F54551418FC2F5C81B2F5441A4703DDAF24551418FC2F5B81C2F5441CDCCCC8CF045514152B81EE51C2F54410AD7A3B0EB4551417B14AE571E2F54413D0AD753EA4551413D0AD763202F544152B81EC5E74551413D0AD753212F5441A4703D1AE4455141D7A3709D1B2F54413D0AD753DF4551415C8FC2551A2F5441295C8F12DF455141AE47E1FA1C2F5441CDCCCCDCE0455141AE47E1DA1E2F5441F6285CAFDC4551413D0AD7731F2F5441AE47E1FADA455141F6285CAF1E2F54411F85EB71D9455141A4703D2A1A2F5441713D0AD7D4455141295C8F12162F54415C8FC2B5D2455141713D0AF7142F54410AD7A320CF4551413D0AD773142F5441B81E85CBC7455141333333C30F2F5441CDCCCC1CC7455141333333F30C2F544152B81E25C1455141666666760D2F5441C3F528ACBE45514185EB5188052F5441AE47E18ABC45514185EB5198042F54415C8FC2D5BA45514166666666032F54413D0AD713B3455141713D0A37062F544185EB51B8B54551411F85EB611C2F5441CDCCCC7CB64551411F85EB41292F5441666666A6B2455141CDCCCC9C312F5441D7A3705DA2455141B81E852B342F5441B81E859B9A45514185EB51C8312F54416666664693455141295C8FF22D2F54418FC2F5288E455141CDCCCCAC252F5441F6285CBF8A4551413D0AD743222F54415C8FC2C58B455141B81E858B182F5441E17A14AE7C45514148E17A44172F54411F85EBF175455141A4703D2A1A2F5441000000206F455141D7A3708D1C2F5441E17A140E6C4551417B14AE871B2F5441C3F528CC6B455141CDCCCCEC162F54410AD7A3A06B455141295C8F52122F544148E17AB467455141A4703D5A172F5441EC51B8CE6445514100000070172F54418FC2F5C863455141CDCCCC2C132F5441A4703DFA644551411F85EBA10D2F5441CDCCCC9C634551417B14AEE70A2F5441000000506145514148E17A440C2F5441E17A141E604551419A999989142F544152B81E955E45514114AE47D1152F5441333333A3594551413D0AD783132F54413D0AD78350455141C3F5284C112F5441666666564C455141E17A149E102F5441B81E85BB474551411F85EB61112F54417B14AEF73045514148E17A440C2F544114AE4751354551411F85EBE1FE2E5441E17A14CE3F4551417B14AE47EF2E54417B14AE173A455141A4703DBAF02E5441E17A14CE344551411F85EBD1F42E5441AE47E1AA2E455141AE47E14A022F54415C8FC2252A455141AE47E12A042F544185EB51C828455141EC51B84E0A2F5441C3F5280C22455141295C8F32092F5441EC51B8BE1F4551413D0AD7A3062F544114AE47711D455141000000B0082F5441A4703D4A1A45514114AE4701082F54413D0AD7731645514114AE4731052F5441A4703D1A12455141C3F5288C022F5441B81E85DB0A4551415C8FC2C5082F54410AD7A36004455141CDCCCC3C072F5441A4703D8A00455141AE47E15A012F5441EC51B82E034551415C8FC2E5FB2E544114AE47E100455141CDCCCC4CFB2E544114AE47F1FF4451413D0AD7D3F82E5441C3F5289CF8445141B81E852BF92E5441C3F5289CF8445141CDCCCC5C052F54417B14AE27F34451415C8FC2C5082F544185EB51C8EB445141713D0A87132F5441C3F5288CF0445141AE47E1DA1D2F5441EC51B86EF144514114AE47811F2F5441713D0A87F54451411F85EBC1262F5441666666F6FF4451418FC2F5C8392F54411F85EB810045514148E17AB43A2F5441D7A370AD064551411F85EBE1392F5441000000700E455141F6285C4F3A2F5441A4703D1A124551417B14AEE73A2F5441A4703D1A12455141F6285C2F3C2F54413D0AD763144551418FC2F5983B2F54410AD7A3E0154551418FC2F5183B2F544185EB518818455141EC51B8BE3B2F54415C8FC205184551413D0AD7C33C2F5441E17A141E1745514185EB51983C2F544100000040154551410AD7A3E03C2F544114AE476113455141EC51B88E3D2F54415C8FC235134551418FC2F5F83E2F544133333383144551411F85EBA1412F54418FC2F5181645514100000050452F5441333333831745514133333333482F5441F6285CDF18455141000000204A2F544152B81E752045514114AE47B1502F5441C3F528CC2345514152B81EF5522F54417B14AEF729455141E17A141E562F54417B14AE473D4551417B14AE374E2F5441295C8F92434551411F85EB11542F54411F85EB214945514166666656532F5441EC51B89E51455141C3F5287C532F544133333353574551415C8FC275582F5441E17A142E5D455141AE47E19A582F5441666666D660455141713D0A375A2F54410AD7A340604551410AD7A3305F2F544114AE47215B45514114AE4711602F544185EB510857455141E17A148E622F5441AE47E17A5B45514114AE4721632F5441D7A370AD68455141CDCCCC5C662F544114AE47816B45514152B81ED5662F5441295C8F126F4551417B14AEF7662F54410AD7A390714551413D0AD7A3672F54418FC2F5C87345514133333353692F54419A99998975455141A4703DBA692F54415C8FC215774551418FC2F5A8692F5441333333B378455141CDCCCCFC682F544114AE47517A45514148E17A84682F544185EB51787C455141666666A6682F5441295C8FE27D455141F6285CFF692F544114AE47917F45514148E17A046C2F544114AE477180455141D7A3705D6D2F544166666696814551415C8FC2D56D2F54417B14AE67834551410AD7A3906D2F5441CDCCCC8C8445514148E17AE46C2F5441CDCCCC6C85455141A4703D7A6B2F5441333333C3854551418FC2F5C8682F5441A4703D4A8545514166666606662F54410AD7A3E08345514114AE4741622F54416666667682455141EC51B85E602F5441D7A3707D7E4551419A9999595E2F544185EB51F8784551419A9999995C2F54411F85EB6173455141333333835A2F544152B81E15704551411F85EB91592F5441C3F5283C6B4551410AD7A380592F5441C3F528BC6745514185EB51E8592F5441F6285C2F664551415C8FC2C5592F54419A99991964455141713D0AF7582F54411F85EB11614551410AD7A3C0572F5441A4703D2A5D455141B81E859B562F54413D0AD7335A455141295C8F22562F54415C8FC29558455141E17A14DE552F54419A99990957455141F6285C0F552F544148E17A84514551419A999949512F544148E17AC44F4551419A9999894F2F544114AE47C147455141AE47E17A492F5441F6285C2F444551415C8FC295462F54416666664643455141EC51B82E472F54413D0AD7C342455141D7A3709D462F5441000000804345514185EB5138462F5441713D0AD74245514152B81ED5442F54410AD7A38042455141E17A14AE422F5441B81E853B42455141A4703DBA402F54411F85EBB141455141666666A63F2F5441B81E857B404551419A9999F93E2F5441AE47E12A42455141AE47E14A3D2F54410AD7A3804245514152B81ED53D2F54411F85EB9142455141D7A3702D3F2F5441713D0AD74245514114AE4741402F54419A9999D94345514100000030402F54413D0AD7C348455141D7A3706D3D2F544133333373514551410AD7A3203A2F54419A999929564551410AD7A340392F544152B81EC5554551419A999909332F54419A9999E95445514114AE47C1302F5441EC51B88E534551411F85EB412D2F5441A4703D6A52455141D7A3701D2B2F5441F6285C0F51455141000000302A2F54418FC2F5D84E4551417B14AE67282F5441295C8FA24C4551415C8FC255262F54419A9999594B45514114AE47B1242F54419A9999594A45514185EB51E8222F54417B14AEC747455141AE47E1FA212F5441D7A370ED4245514148E17A44202F5441295C8F923F455141E17A140E1F2F5441333333933C45514152B81E451E2F5441CDCCCCDC3A455141E17A148E1D2F544185EB51B838455141EC51B88E1B2F5441D7A3705D364551415C8FC2C5192F5441713D0AA733455141CDCCCC7C182F544152B81E1532455141F6285C8F172F544114AE4771304551411F85EB21172F5441F6285C5F2C4551418FC2F558152F5441D7A370CD2B45514100000090142F54411F85EBF12B4551419A9999D9132F5441F6285CDF2D45514100000010152F5441713D0AA735455141AE47E16A182F5441AE47E14A384551417B14AE571A2F5441CDCCCC5C3B4551417B14AED71C2F5441333333933C455141C3F5287C1D2F54416666663643455141000000A01F2F544114AE47114845514148E17A44212F544152B81E354A455141AE47E17A212F5441E17A14FE4A455141D7A3700D222F5441E17A14FE4A455141D7A3708D222F5441295C8F224C45514185EB5168242F5441000000104D4551415C8FC2D5252F54418FC2F5584F45514152B81ED5272F5441EC51B80E53455141713D0AE72A2F5441C3F528FC53455141000000302C2F544152B81E4554455141666666662D2F5441E17A140E554551415C8FC2652F2F544152B81E4556455141333333D3312F5441713D0AD756455141F6285CBF382F5441E17A148E57455141F6285C3F392F5441666666D6594551413D0AD7E3392F5441C3F5280C5F4551415C8FC2F53B2F5441E17A149E604551417B14AE873C2F5441713D0A67634551417B14AE873C2F5441295C8F32644551415C8FC2253C2F5441B81E85CB63455141A4703DDA3A2F5441CDCCCC1C6B455141A4703D3A392F544148E17AF46C45514114AE47D1382F544148E17A747245514114AE4741452F5441D7A3707D67455141666666B6462F54419A9999096745514133333343452F5441CDCCCC9C6645514185EB5118452F5441295C8F4263455141D7A3703D432F544152B81ED561455141B81E85AB422F5441C3F5280C614551418FC2F598422F544100000080604551418FC2F508412F5441AE47E1FA5E455141713D0A07412F54417B14AEF75E455141CDCCCCCC412F5441333333735E455141C3F528CC412F5441333333F35B455141AE47E1CA412F5441AE47E1EA5A4551415C8FC2954A2F54413D0AD7F350455141666666B6492F54419A9999294C455141C3F528AC472F54410AD7A37050455141EC51B81E402F544185EB5188594551418FC2F5C8412F5441295C8FD259455141666666C63C2F544185EB51E85D45514114AE47D13C2F54411F85EBB15945514114AE47D13A2F5441295C8F3257455141CDCCCC2C3A2F54417B14AED75245514114AE47D13A2F5441000000904F455141000000E03B2F5441C3F5281C4B455141CDCCCCAC3D2F54411F85EB3146455141295C8F32402F54417B14AE5744455141713D0A47412F544152B81E8543455141D7A3709D422F54418FC2F59843455141666666C6432F54417B14AE574445514185EB5158452F54417B14AEB748455141D7A370BD482F54415C8FC2D54C455141D7A3703D4C2F5441333333B34F455141D7A370FD4D2F5441CDCCCCFC514551419A999969502F5441333333D355455141295C8FA2522F5441295C8F4259455141CDCCCCEC542F5441295C8FC25C4551410AD7A320552F5441666666B65E455141CDCCCCCC552F54416666665661455141F6285CCF562F5441F6285CAF624551417B14AE47572F5441713D0AD764455141CDCCCC8C572F544148E17A7466455141E17A147E582F5441EC51B8DE67455141333333C3582F544185EB51086B455141A4703D4A582F54418FC2F5187045514100000060582F54417B14AEB773455141F6285C6F592F544114AE477179455141333333635B2F5441295C8FC27E4551410AD7A3005D2F544152B81E658245514185EB51485E2F5441B81E857B844551419A999919602F5441E17A147E8545514152B81E75622F54411F85EB9186455141295C8FB2662F54411F85EB618745514114AE4761692F5441713D0A9788455141F6285C7F6D2F5441713D0A078745514100000030712F54411F85EB5187455141713D0A17732F54410AD7A30086455141295C8F42742F54419A99991984455141D7A3708D742F54413D0AD7738145514114AE47F1712F5441295C8F6281455141D7A3701D6F2F5441000000807F455141713D0AE76D2F5441A4703D4A7E455141B81E856B6C2F544185EB51587D455141B81E858B6B2F5441666666567C455141A4703D9A6A2F5441D7A370FD7A455141F6285CFF692F544114AE477179455141333333336A2F544148E17A0477455141F6285CDF6A2F54418FC2F5A87445514148E17A246B2F544148E17A8473455141713D0A676A2F5441B81E854B71455141F6285C1F692F54413D0AD7236F4551411F85EB61682F54417B14AED76B4551418FC2F5E8672F5441C3F5289C684551411F85EB81672F5441713D0AF763455141CDCCCC5C662F54417B14AE975C45514100000050642F5441E17A142E5D455141713D0A176D2F544114AE47B15A455141EC51B8DE6F2F54410AD7A3D04D455141E17A14FE6E2F544185EB51984A45514114AE47116C2F54416666668641455141F6285C4F702F5441000000103A4551411F85EB616D2F5441F6285C2F394551415C8FC2E5642F54411F85EB413645514100000050642F5441000000103445514152B81E756A2F5441295C8FB236455141333333B36E2F54415C8FC2A53445514148E17A74702F5441F6285CBF26455141AE47E10A712F544185EB51681E455141000000306B2F5441713D0A171D45514148E17A94632F5441333333B31E455141B81E850B592F5441EC51B81E104551410AD7A3205A2F5441F6285CBF1145514152B81E555E2F5441B81E858B12455141D7A370FD5F2F544152B81EA51A455141AE47E11A712F5441EC51B83E19455141F6285C6F722F5441000000E00F4551410AD7A3107D2F54418FC2F56803455141D7A3705D8B2F544152B81EA5DF4451417B14AE37B42F5441326097D9DE4451410960EDA6BD2F54410B5980D2DE4451418D1010FBBD2F5441CDCCCCCCDE445141EC51B83EBE2F5441C43D0467EA4451412D3010C6CD2F54412E11F7ABEC44514175169BCFD02F54410500000014AE47F12E455141713D0A57412F5441B81E85CB2E455141A4703D6A3E2F5441EC51B84E32455141F6285C8F3E2F54413D0AD70332455141CDCCCC7C412F544114AE47F12E455141713D0A57412F5441050000008FC2F5C84C4551415C8FC2E53D2F54419A9999294F45514185EB51983C2F54410000002050455141295C8F023E2F5441C3F528DC4D455141EC51B85E3F2F54418FC2F5C84C4551415C8FC2E53D2F54411800000052B81E75C44551411F85EBF1D62E5441A4703D2AC44551419A9999A9D12E544114AE47F1C5455141A4703D5ACF2E544148E17A74C3455141A4703DAAC92E54419A9999C9C8455141D7A3708DCA2E5441EC51B8CECB455141333333E3C72E54417B14AE07D245514166666676CE2E5441E17A141ED645514185EB5138CD2E5441666666A6D6455141EC51B89ECB2E5441EC51B87ED9455141F6285CAFCC2E54419A9999D9D94551411F85EBD1CE2E54410AD7A3A0DB4551418FC2F548CE2E544185EB5118DB455141EC51B84ED12E54419A9999D9D94551413D0AD753D42E5441D7A3706DD8455141295C8F92D52E54413D0AD7D3D6455141F6285CAFD42E54418FC2F578D6455141000000C0D52E54418FC2F5C8D045514133333343D32E54417B14AEB7CF455141295C8F92D52E54415C8FC295CD455141AE47E11AD62E5441EC51B8CECB455141A4703D0AD52E5441CDCCCCACC945514185EB5148D62E54413D0AD703C84551411F85EB61D92E544152B81E75C44551411F85EBF1D62E5441240000008FC2F54806465141CDCCCC9CEB2E5441D7A3703D0046514100000080EC2E5441E17A143EF845514114AE4791ED2E54413D0AD743F345514148E17AC4E82E544100000000EF4551411F85EB41E32E544152B81EF5E845514100000020E12E5441295C8F72E34551417B14AE97E02E544185EB5178DE4551417B14AE97E02E54415C8FC2F5D84551410AD7A3D0DE2E5441333333C3D5455141E17A144ED92E544185EB51C8E0455141D7A3703DD82E54413D0AD783E44551413D0AD753D42E54419A9999E9EA455141F6285CAFD42E5441295C8FD2EE455141B81E852BDF2E5441B81E85BBF2455141A4703D6AE02E54419A999949F6455141D7A3709DE32E54418FC2F5E8F24551411F85EB91E52E5441333333E3F745514148E17AC4E82E5441D7A370DDFC455141EC51B80EE82E5441B81E851BFE4551411F85EBF1E82E544148E17A040A465141D7A3704DE92E5441F6285C0F10465141D7A3709DE32E54413D0AD7031246514133333353E42E54418FC2F50815465141D7A3704DE12E5441E17A14FE1646514100000020E12E54419A9999191E465141C3F5288CE22E5441D7A370AD2446514114AE4731E22E5441E17A145E22465141F6285CBFE52E544152B81E751E46514152B81E75E62E54418FC2F5081D46514114AE47E1E72E54419A99996918465141EC51B80EE82E544185EB51F813465141F6285C6FEB2E5441F6285C0F1046514100000080EC2E5441333333A30E4651417B14AEF7EB2E54415C8FC2C508465141D7A370ADEC2E54418FC2F54806465141CDCCCC9CEB2E544105000000A4703D1A54455141E17A145E3D2F544148E17A34564551419A9999993C2F5441295C8FB2564551410AD7A3003E2F54413D0AD7A354455141B81E85CB3E2F5441A4703D1A54455141E17A145E3D2F54410500000048E17AC47E455141EC51B89E432F5441E17A141E7F45514133333353402F54417B14AE1781455141D7A3707D402F544152B81EC580455141AE47E15A432F544148E17AC47E455141EC51B89E432F5441
+</a>
+
+<b>
+010600000001000000010300000006000000FD010000B8D1780FAF445141EF2DDA8F382F5441FF3093BEAE4451416494F2A7372F54419A9999F9B744514148E17A94372F54419A999979B9445141C3F5283C372F54410AD7A3E0B94451417B14AE27362F5441333333B3B24451415C8FC2D5302F54413D0AD703AA4451415C8FC2F52A2F54419A999969A944514148E17AB4292F5441A4703DAAA944514100000000282F544148E17A94AD445141E17A147E262F5441F6285CEFAE445141D7A370BD252F544152B81EB5B44451413D0AD793222F5441CDCCCC2CB94451418FC2F538212F5441C3F528CCBE44514152B81EC5202F54411F85EB91C44451418FC2F5F8202F544185EB5148C944514114AE4771212F54415C8FC205CE44514166666686222F5441AE47E12AD2445141CDCCCCEC232F5441F6285C2FD4445141C3F5280C252F5441A4703DFAD5445141F6285C9F272F544148E17A44D744514148E17A14292F544166666646D8445141295C8FB2292F5441AE47E15ADB445141EC51B85E2A2F5441D7A3700DDF445141D7A3707D2B2F544185EB5108E3445141333333D32B2F5441AE47E11AE544514185EB51482D2F5441D7A3706DEA44514185EB51F82F2F5441713D0A57ED445141333333B3302F544100000010F4445141713D0A57342F544133333333F74451419A9999F9362F5441333333D3F8445141A4703D1A392F5441B81E852BFA4451415C8FC2F53B2F54411F85EB91FB4451413D0AD7933C2F5441E17A14EEFE445141B81E854B3C2F54411F85EB9101455141EC51B87E3C2F54411F85EB810045514148E17AB43A2F5441666666F6FF4451418FC2F5C8392F5441713D0A87F54451411F85EBC1262F5441CDCCCCCCEA445141666666A6262F54413D0AD7F3E7445141A4703DAA202F544166666656DE4451417B14AED7212F5441E17A140ED3445141E17A14FE192F54419A9999A9D2445141333333330F2F5441F6285C2FB2445141D7A3706D1D2F544166666656AF445141EC51B85E202F5441295C8FD2AB4451413D0AD7A3252F5441EC51B80EA84451418FC2F558272F544166666626914451415C8FC2451B2F54411F85EBA18B445141D7A370ED1C2F54415C8FC2C5814451411F85EBE1272F5441295C8F5280445141AE47E1CA302F54419A99999977445141AE47E15A2A2F544114AE47417544514152B81E75232F5441E17A14CE6D44514152B81EC5262F5441E17A14CE65445141CDCCCC6C242F544114AE47F165445141B81E850B232F5441EC51B87E72445141D7A370CD1D2F54419A999999774451410AD7A3F0152F5441666666469544514148E17A44032F544185EB5198B34451417B14AE77F62E544148E17A64B544514185EB5198FB2E54418FC2F538BE445141713D0A37F62E5441EC51B8CEBD445141666666D6F02E544148E17A64AD445141E17A147EEA2E5441AE47E1FAA0445141EC51B8DEDF2E5441333333039C445141EC51B8DEDF2E5441000000E09F445141713D0A37E62E54413D0AD7B3944451418FC2F548EC2E544185EB512880445141C3F528FCF32E5441F6285C4F6C445141AE47E19AFD2E5441EC51B8FE6A445141C3F528FCFB2E5441A4703D9A6B44514185EB51A8F92E5441CDCCCCDC6A445141F6285CBFF72E54416666666666445141EC51B85EFB2E54411F85EB9165445141666666F6FB2E5441A4703DAA68445141C3F528ECFE2E544152B81E0565445141E17A148E012F5441666666F6624451417B14AEA7FD2E54413D0AD7F35C44514152B81E95012F54413D0AD79359445141AE47E18A082F544114AE47C14F445141E17A149E0E2F5441A4703D7A51445141A4703D8A102F5441C3F528CC5644514152B81E55112F544114AE4781654451413D0AD763162F5441000000B06744514114AE47C11A2F54419A99996964445141713D0A571F2F544185EB51B859445141B81E85CB242F5441F6285CDF3E445141A4703DEA422F544114AE47812F44514152B81E05632F5441713D0AD715445141B81E85DB6A2F5441D7A3701D1944514185EB51A86F2F5441F6285C9F1544514152B81E85832F544185EB51D821445141AE47E13A872F544148E17AF427445141D7A370DD822F544114AE47914944514166666656812F544148E17AC45144514133333353862F5441A4703D4A53445141333333D3892F544148E17A8453445141F6285CBF902F5441CDCCCC8C57445141713D0AC7942F544152B81E155844514152B81ED5962F54418FC2F578574451417B14AE57992F544185EB51A85B445141CDCCCCACA42F5441D7A3709D58445141295C8FF2A72F54419A999989584451417B14AE77A92F54417B14AE575C44514166666696AC2F5441CDCCCC1C5C44514114AE4761B12F54419A999989584451410AD7A3E0B42F544185EB5128584451418FC2F528B72F5441713D0A175E445141CDCCCC1CC22F5441A4703DDA5E445141295C8FF2C92F54417B14AE575C445141295C8F12E12F54419A9999C95644514185EB5128E72F544152B81E454E44514152B81EE5E92F544166666616434451411F85EB81E32F5441000000503944514166666616DB2F5441C3F5289C2E4451415C8FC265D42F54413D0AD763214451413D0AD703D12F544148E17A1410445141B81E855BC82F5441AE47E1DAFB4351413D0AD713C62F544166666636F743514185EB5198C82F54410AD7A3F0F143514133333353CA2F5441CDCCCC9CD5435141AE47E14ACC2F5441C3F5284CCF43514114AE4721D72F544114AE4751CF43514152B81E25E12F544152B81E35D1435141EC51B82EE62F5441E17A147EDA43514114AE4711E12F5441E17A140EDF43514114AE47F1DE2F54418FC2F558DE435141B81E85CBDB2F5441295C8F22DF435141D7A3709DDA2F54419A999939E3435141EC51B81ED92F544148E17AE4E8435141D7A3700DDD2F544152B81EE5EF4351418FC2F5F8D52F5441E17A14EEF4435141EC51B8DED42F5441D7A370AD03445141666666A6D42F5441A4703DDA0C44514152B81E35D62F544114AE47F121445141C3F5283CDE2F54413D0AD7332A445141A4703D6ADF2F5441AE47E15A344451419A9999A9E32F544185EB51E83B4451413D0AD703E92F544185EB5188464451411F85EB61F92F544114AE47914B445141E17A146E023054418FC2F55856445141A4703D0A093054413D0AD7C357445141295C8F520B3054415C8FC2255B4451419A9999B908305441AE47E1FA5D4451413D0AD79305305441F6285C2F604451415C8FC2F5013054411F85EBE16344514100000030F42F5441713D0A97644451411F85EB71EE2F5441D7A370AD6444514100000020EA2F544185EB5188644451417B14AE37E22F54411F85EBD16444514114AE47A1DF2F54413333335365445141F6285C2FDD2F5441333333A36944514148E17AE4D02F5441EC51B80E6C445141295C8FA2CB2F54417B14AEC769445141A4703DCACB2F544114AE4731674451418FC2F5F8C62F5441295C8F2269445141E17A145EC12F5441A4703DAA624451415C8FC295B62F54413D0AD78361445141D7A3703DAD2F5441666666766444514114AE47B1A52F5441E17A14EE754451415C8FC2C59B2F5441D7A3709D7C445141295C8F62A22F5441666666E687445141AE47E1DA9D2F5441B81E857B894451411F85EB71A02F544148E17A048F4451418FC2F5589C2F5441B81E85AB904451417B14AE679A2F54411F85EBD1914451411F85EB51982F5441713D0A67934451411F85EB71952F5441A4703DFA93445141EC51B86E932F5441B81E858B93445141295C8FA2912F54410AD7A3608E4451417B14AEE78A2F5441666666268E445141333333C3892F54417B14AE878E4451419A999929882F5441A4703DFA8F4451413D0AD7F3852F54411F85EB9192445141C3F5287C7E2F54411F85EB9192445141CDCCCC1C7D2F54415C8FC2F591445141A4703DAA7B2F544152B81E3590445141AE47E14A7A2F544185EB51D88D445141B81E859B792F54417B14AE678B44514148E17A74792F54411F85EB518444514148E17A74792F5441E17A145E7F44514148E17A24782F54417B14AE977D4451419A9999A9762F5441CDCCCC3C7D445141D7A3704D752F5441B81E855B7D445141F6285C0F742F5441000000207E445141B81E853B732F5441A4703DAA7F445141B81E851B722F5441C3F528CC82445141D7A370DD702F54413333337383445141B81E85EB6F2F54413D0AD763834451417B14AE176F2F54410AD7A380824451415C8FC2156E2F5441333333037F4451413D0AD7236D2F544114AE47117E445141E17A146E6C2F5441A4703D6A7D445141000000306B2F5441295C8FF27D445141EC51B83E602F5441333333537F44514148E17AA4572F54413D0AD7B37E445141B81E852B572F5441B81E859B7D44514133333333582F54413D0AD7937C44514114AE47C15A2F5441CDCCCCAC7B445141EC51B86E5A2F5441000000007A4451411F85EBA15D2F544148E17A447444514152B81E955A2F54419A99999975445141713D0AF7572F5441AE47E16A744451417B14AE57572F544100000010754451411F85EBF1552F5441B81E858B76445141CDCCCC9C562F5441A4703DEA79445141E17A141E562F54417B14AEC77D4451419A999939562F54419A9999C97E4451415C8FC2B5552F544152B81E957F445141C3F5282C552F544114AE47318144514185EB51D8512F54419A999979854451417B14AE17482F5441B81E859B8744514148E17A14442F5441CDCCCCBC894451411F85EBB1402F544152B81E358B44514152B81E753E2F544152B81E3580445141000000D03E2F5441E17A14AE77445141E17A140E3C2F54410AD7A3C07A44514185EB5188352F54415C8FC2E5804451417B14AEC7342F54418FC2F5A884445141AE47E14A382F54410AD7A3408E445141A4703D7A372F54411F85EB418F445141D7A3705D3B2F544152B81E3593445141B81E850B392F5441713D0AC795445141AE47E12A382F54419A99999998445141AE47E1FA372F5441CDCCCC7C9C445141AE47E13A382F544100000040A0445141AE47E13A382F544148E17A34A6445141A4703DBA372F54415C8FC295AE4451417B14AEA7372F5441E50971E5AE44514100AEAB6D382F5441000000E0AA445141A4703D7A382F5441713D0AC79F4451413D0AD763392F5441C3F528CCA24451419A9999493B2F54415C8FC245A44451419A9999B93A2F5441EC51B8FEA7445141F6285C7F3B2F5441713D0A27A74451411F85EB913F2F5441713D0A07A6445141AE47E12A422F54419A999999A344514133333333442F54411F85EB61A14451413D0AD743472F54417B14AEE79B445141A4703D5A432F54417B14AE679D445141AE47E16A402F54415C8FC2B598445141CDCCCC8C3A2F54415C8FC2359744514114AE4781392F5441EC51B80E954451411F85EB91392F5441666666C692445141CDCCCC8C3A2F544114AE47418F4451415C8FC2E53C2F54413D0AD7838C445141A4703DDA3E2F54410AD7A3B08A44514152B81E65412F54417B14AE57884451419A9999C9442F5441295C8F62864451411F85EB91482F5441C3F5283C81445141D7A3702D542F544148E17A8480445141295C8F32562F5441295C8FD27E44514100000070602F5441CDCCCC4C7E4451417B14AE376A2F54413D0AD7F37E44514152B81E756B2F5441F6285C0F80445141EC51B85E6C2F544152B81E1582445141295C8FB26C2F54417B14AED783445141AE47E17A6D2F5441295C8FE2844451417B14AEB76E2F544114AE47C1844451415C8FC205702F544185EB51E88344514133333343712F5441C3F528BC7F4451417B14AE37732F5441000000A07E44514114AE4721742F5441E17A146E7E445141C3F5281C752F5441000000A07E44514166666616762F544100000020804451411F85EB31772F5441E17A146E844451411F85EBB1782F54413D0AD7038B44514100000080782F5441B81E85BB8E4451411F85EBB1782F5441713D0A4791445141E17A14CE792F5441666666C692445141F6285C6F7B2F5441000000A093445141F6285CEF7C2F5441000000A0934451413D0AD7E37E2F5441295C8FE2904451411F85EB31862F54417B14AED78F4451419A999969882F5441295C8F628F44514185EB51D8892F54417B14AED78F4451415C8FC2158B2F544185EB516894445141EC51B86E902F544100000020954451410AD7A320922F544114AE4741954451410AD7A3A0932F544185EB5168944451417B14AEC7952F544185EB51E892445141666666A6982F544185EB51A893445141EC51B8DE982F54417B14AE7793445141295C8F329A2F544114AE474192445141CDCCCCCC9A2F544152B81E2591445141713D0AB79B2F5441D7A370ED91445141000000909C2F54416666669698445141EC51B8EE9A2F544133333393974451411F85EB91932F5441E17A140E984451417B14AEB7922F54417B14AEA799445141EC51B82E922F5441B81E854B9E445141295C8FD2922F5441F6285C1FA1445141E17A14BE942F544148E17A34A34451419A999909972F544152B81EA5A444514148E17AB4992F54413D0AD763A54451419A9999999D2F54417B14AE67A6445141295C8FF29F2F5441A4703DFAA54451418FC2F5F8A12F54411F85EB41A7445141E17A140EA42F5441F6285C7FA1445141EC51B8AEA72F54417B14AE37A0445141B81E85EBA52F5441000000909A445141D7A370CDA82F5441295C8F829E44514185EB51A8B12F544185EB5138AF44514148E17AE4B32F5441EC51B86EAF445141AE47E1CAB82F5441EC51B80EA6445141666666C6BB2F54410AD7A360A6445141CDCCCC7CC22F5441A4703D6AB24451419A999969C92F54411F85EB31B7445141295C8FA2CF2F54413D0AD7D3C14451418FC2F588DC2F544185EB5118BF445141B81E852BE12F5441B81E85ABB14451419A999909EC2F544114AE47C1A2445141CDCCCC9CEB2F54410AD7A3E0894451419A999939E22F54418FC2F5F88F445141CDCCCC5CF32F5441E17A14FE97445141666666F6F22F54418FC2F5B89B445141713D0A57FC2F5441A4703D8A934451415C8FC265FD2F5441A4703D9A94445141333333630030544152B81E95A14451418FC2F5080630544114AE4781B544514114AE47C104305441E17A14BEB744514148E17A8402305441EC51B81EB4445141000000F0FD2F5441C3F5286CB74451413D0AD7C3FC2F5441B81E85DBBC445141AE47E1BA02305441AE47E10AC8445141C3F528AC06305441B81E850BD14451417B14AEC708305441D7A3703DD444514148E17A240E305441A4703DFAD6445141CDCCCCCC0D30544133333393D84451410AD7A3600A3054418FC2F5C8E4445141E17A147E0A305441E17A14DEE7445141295C8F520830544114AE4791F14451418FC2F5080A305441713D0A27FB44514152B81E45063054419A99998905455141CDCCCCBCFE2F5441EC51B82E0D455141295C8F2201305441B81E852B15455141295C8FA2F62F5441F6285CCF1645514166666686F62F5441666666661745514100000060EA2F544148E17A14094551413D0AD7C3E22F544114AE4701FC445141295C8F92DC2F544114AE4741EE445141E17A14EED22F5441CDCCCCCCDE445141EC51B83EBE2F544152B81EA5DF4451417B14AE37B42F54418FC2F56803455141D7A3705D8B2F5441000000E00F4551410AD7A3107D2F5441EC51B83E19455141F6285C6F722F544152B81EA51A455141AE47E11A712F5441B81E858B12455141D7A370FD5F2F5441F6285CBF1145514152B81E555E2F5441EC51B81E104551410AD7A3205A2F5441E17A146E09455141AE47E13A5B2F5441C3F5280C02455141D7A3709D502F5441CDCCCC0CED445141B81E853B492F54417B14AE47ED4451410AD7A3803E2F5441A4703DFAF6445141C3F5284C382F5441333333B3F54451413D0AD7C3362F54411F85EB71F34451415C8FC225352F5441D7A3709DEF44514148E17AE4322F5441295C8F62ED4451418FC2F5E8312F54417B14AED7EA44514133333353312F54419A999989E6445141E17A145E2F2F5441C3F5287CE3445141666666662D2F54415C8FC255E24451413D0AD7E32C2F54413D0AD733DF4451410AD7A3A02C2F544100000010D844514152B81EC52A2F5441A4703DCAD644514114AE47612A2F54419A999939D5445141A4703D3A282F54413D0AD7F3D344514152B81E45262F5441CDCCCCCCD144514100000000252F54418FC2F528CF44514152B81E05242F54419A999959CA4451415C8FC295222F54413D0AD7E3C44451417B14AEF7212F5441A4703DBABE445141E17A14DE212F54417B14AE77B844514148E17A74222F544185EB5188B5445141CDCCCC3C232F544100000080B244514148E17AB4242F5441333333D3AD44514114AE47B1272F54417B14AE97AA445141EC51B84E292F54415C8FC215AB4451410AD7A3802A2F5441713D0AE7B94451419A999979342F5441AE47E12ABB4451410AD7A3E0352F544148E17A84BB445141CDCCCC6C372F544114AE4741BA445141A4703D7A382F54415F9104D7AF4451414EE51085382F5441AE47E10AB2445141EC51B89E3B2F54418FC2F5A8B24451413D0AD7333C2F5441666666E6B3445141E17A141E3D2F5441E17A141EB44451419A9999093E2F54415C8FC2C5B3445141E17A14FE3E2F5441F6285C0FB2445141F6285C4F402F5441333333B3B1445141EC51B8FE402F54419A9999D9B144514133333393412F5441E17A147EB2445141F6285CEF412F5441C3F5283CB4445141C3F5286C422F54419A999949B544514100000000442F5441A4703D2AB6445141713D0A97462F5441333333D3B64451417B14AEE7472F544152B81EE5B94451417B14AEF7492F544100000030BB445141D7A3705D4B2F5441B81E851BBC4451415C8FC2E54C2F54419A9999E9C24451418FC2F598522F5441C3F5289CC54451410AD7A340542F5441295C8F82C744514166666656562F54419A999969C9445141666666C65C2F5441666666F6C94451410AD7A3F05D2F54410AD7A320CB4451418FC2F5685F2F54410AD7A3F0CC445141F6285C4F602F5441E17A14CECF44514185EB5138612F54411F85EB91D4445141AE47E14A622F5441333333F3DD445141295C8F02642F544133333313E1445141C3F5283C652F544152B81EF5E3445141666666A6692F5441666666A6E1445141713D0A876B2F5441E17A14DEDE445141A4703D8A722F54417B14AEF7DC445141D7A3700D752F544166666636DD445141295C8F42772F5441A4703D8ADC445141333333437A2F544185EB51E8DC4451419A9999497C2F54411F85EB31DE44514148E17A447D2F5441D7A3701DDF445141C3F528EC7E2F54413D0AD7F3E04451419A9999797F2F5441C3F528CCE5445141B81E853B822F5441D7A370ADE8445141F6285CAF842F5441AE47E1AAEF445141CDCCCC2C852F544166666676F04451417B14AE47862F5441713D0A57F0445141F6285CDF872F5441D7A3701DEF44514148E17A148A2F54418FC2F5D8EC445141A4703D2A8C2F5441CDCCCC0CEC445141295C8FB28D2F544166666626EA445141713D0AF78F2F5441E17A149EE84451413D0AD7D3932F5441295C8FA2E7445141F6285CBF942F5441AE47E1FAE5445141CDCCCC3C952F54411F85EBA1E44451417B14AE57962F5441295C8F62E4445141295C8F52972F544185EB5148E3445141B81E85CB982F5441000000D0E14451418FC2F548992F54418FC2F5F8DF44514152B81E159A2F5441A4703D3AD944514100000070A12F5441000000B0D144514152B81E15AA2F544114AE4711CC445141CDCCCC7CB12F5441333333F3C744514148E17AD4B82F544152B81E55C74451410AD7A3D0BB2F5441713D0AD7C64451413D0AD713BC2F5441713D0AE7C5445141C3F528DCBB2F5441B81E859BC54451415C8FC2C5BA2F544185EB51A8C644514152B81EF5BA2F544166666656C7445141C3F5286CB82F5441C3F5287CCB445141EC51B82EB12F5441EC51B86ED0445141000000A0AA2F544152B81E95D544514166666676A42F5441E17A14FEDC4451415C8FC2159C2F5441666666F6DF445141CDCCCC6C992F5441EC51B82EE1445141A4703DDA982F5441B81E85ABE2445141F6285C0F982F5441D7A3704DE34451411F85EB81972F5441713D0AC7E3445141B81E85AB952F544100000080E8445141D7A3701D932F5441D7A3706DE9445141666666B68F2F54418FC2F548EB445141B81E85BB8D2F54415C8FC295EC44514114AE47918B2F5441F6285CEFEE44514166666676892F5441D7A3708DEF445141A4703D1A882F5441CDCCCCCCEF445141E17A14AE862F54417B14AEE7EE445141666666A6852F544100000070E844514114AE4751852F54411F85EBB1E5445141F6285C2F832F5441B81E85ABE344514152B81E65812F54418FC2F5F8DE4451418FC2F5887F2F54415C8FC205DD445141A4703DEA7C2F54411F85EB51DC445141B81E856B7C2F5441713D0AE7DB445141B81E856B7A2F544152B81EA5DC445141295C8F12772F54417B14AE67DC4451419A999999742F54419A999969DE445141C3F5283C722F5441D7A370BDE0445141000000606C2F544152B81EA5E0445141713D0AD7662F54417B14AE87DF445141EC51B81E652F5441713D0AB7DD44514100000090642F544185EB5158DB44514148E17A24642F54413D0AD763D5445141F6285CEF622F5441EC51B88ECF445141C3F528BC612F5441333333F3CB4451413D0AD783602F5441A4703D9ACA4451411F85EBA15F2F544148E17A34C944514114AE47D15D2F5441295C8F52C84451415C8FC2955B2F5441C3F5286CC7445141713D0A17582F5441713D0AA7C64451417B14AE27562F5441C3F5287CC5445141B81E85FB542F54419A9999F9C2445141EC51B84E532F54417B14AEE7BB445141666666964D2F5441E17A148EBA445141666666964B2F5441D7A3703DB9445141A4703D3A4A2F5441333333A3B5445141B81E85CB472F5441D7A370EDB44451411F85EB21442F5441AE47E1EAB34451419A9999B9422F5441A4703D9AB24451413D0AD753422F5441A4703DCAB1445141A4703DEA412F5441D7A3704DB144514114AE4751412F54418FC2F548B1445141E17A14DE402F54411F85EB01B24451411F85EBB13F2F5441EC51B82EB3445141295C8FE23E2F5441C3F5287CB3445141F6285C8F3E2F5441EC51B8AEB3445141D7A370ED3D2F5441E17A146EB3445141E17A143E3D2F54415C8FC2C5B14451418FC2F5083C2F544180C60F87AF445141F9522D49392F5441B8D1780FAF445141EF2DDA8F382F54410700000014AE479180445141AE47E14A9F2F54411F85EB217E445141333333F39E2F5441000000007F445141D7A370BD9A2F5441EC51B88E80445141000000109B2F5441B81E851B8044514185EB51589D2F5441AE47E1DA80445141F6285C7F9D2F544114AE479180445141AE47E14A9F2F544108000000EC51B8CEA94451415C8FC225F42E54411F85EBF1A1445141666666D6F82E544148E17A649944514148E17AC4FA2E5441AE47E1AA8D4451418FC2F548F82E54417B14AE878D4451413D0AD713F22E5441295C8FA2A2445141295C8FB2EC2E544100000030A744514133333363ED2E5441EC51B8CEA94451415C8FC225F42E544112000000F6285CCFA94451410AD7A3E09A2F5441EC51B8FEA7445141F6285C3F972F544166666686AF4451411F85EB41932F5441666666C6BA44514114AE4771912F5441A4703D1AC244514114AE4701892F5441000000F0C4445141F6285CBF802F544166666666C1445141295C8F927D2F54418FC2F5D8C3445141C3F528AC782F54415C8FC275D044514114AE4781712F544148E17AE4D14451411F85EBF1732F5441713D0A77CD4451410AD7A350762F544166666676CE445141C3F5281C812F5441AE47E17AC64451410AD7A3008A2F544152B81E95C044514148E17A448E2F5441B81E850BBD4451415C8FC2B5932F54418FC2F5C8B54451411F85EBE1972F54417B14AEF7B0445141E17A14FE952F5441F6285CCFA94451410AD7A3E09A2F544105000000713D0A579A445141CDCCCC3C812F5441713D0AD798445141713D0A277F2F5441A4703D1A9C445141CDCCCCBC7C2F544185EB51789D4451413D0AD7E37E2F5441713D0A579A445141CDCCCC3C812F54410B0000008FC2F5E8F14451411F85EB21F02F544148E17A84EB4451413D0AD703EC2F544114AE47B1DC4451415C8FC205DE2F5441CDCCCC0CD94451411F85EB81D42F5441EC51B85EDD44514185EB5108D32F5441E17A14FEDF44514133333313DD2F5441E17A143EE5445141D7A370EDDF2F5441D7A3702DEB445141295C8FC2DD2F5441666666F6F3445141713D0A77E32F5441B81E85CBF144514166666666E92F54418FC2F5E8F14451411F85EB21F02F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985290 - 159967
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000033000000713D0AC7DF1D5141A4703D8A1C3C5441CDCCCC9CE01D514152B81E251D3C5441E17A14CEE21D5141B81E85BB1E3C5441AE47E1DAE41D51415C8FC2D51F3C54415C8FC295E81D5141D7A370AD213C544114AE47C1EB1D5141B81E85BB223C5441E17A14DEED1D51411F85EB81223C544166666626EF1D514114AE4721223C5441EC51B80EF01D514133333373213C5441D7A3700DF11D51410AD7A3F01E3C54413D0AD7F3F01D51415C8FC2551B3C5441F6285CBFF01D514185EB5158153C5441713D0A27E81D5141CDCCCC8C0E3C544100000010DE1D5141CDCCCCCC063C5441A4703DEADD1D5141AE47E1FA093C544114AE4781DD1D514148E17AD4123C5441E17A14FEDD1D514148E17A74153C54419A9999C9D01D5141F6285C2F0C3C544133333303C61D5141F6285C9F043C5441F6285C6FC51D5141295C8F62043C544185EB51A8C61D51418FC2F518013C54418FC2F538C91D51417B14AE37FB3B544166666616CA1D5141E17A145EF83B54418FC2F5B8CA1D5141B81E85CBF53B544114AE4701CB1D514152B81E45F33B5441AE47E1CACA1D514114AE47C1EF3B54419A999939C41D51410AD7A320EC3B5441A4703D4AC31D5141295C8F32EB3B54411F85EBE1B11D5141D7A370CDE93B54419A9999D9AF1D5141A4703DEAE83B544133333363B01D5141333333B3EA3B5441295C8F62B01D5141295C8FB2EB3B54418FC2F528B11D514166666686EE3B544185EB5168B11D51418FC2F578EF3B5441E17A140EB31D5141EC51B81EF13B5441C3F528ACB31D51419A9999B9F23B5441B81E85CBB31D51417B14AE27F53B544133333303B31D5141CDCCCC9CF83B54415C8FC225B21D51411F85EB81FA3B54411F85EBD1B11D5141AE47E1DAFC3B54413D0AD733B11D51413D0AD713FF3B54418FC2F578AF1D5141295C8F22013C54415C8FC2C5B51D5141D7A370AD043C544152B81E15BB1D5141E17A14EE073C5441B81E854BBE1D51417B14AEE7093C544148E17A14BF1D51417B14AED70A3C544148E17A14C11D51413D0AD7F30A3C54413D0AD7B3C41D5141666666360D3C544148E17AB4CD1D5141A4703D6A123C5441B81E85DBD21D51418FC2F558153C5441713D0AC7DF1D5141A4703D8A1C3C5441
+</a>
+
+<b>
+0106000000010000000103000000010000004D00000048E17A14BF1D51417B14AED70A3C5441E03EDF44BF1D5141AA7057DA0A3C54415B2EF45CBF1D5141D7F84CCE0A3C54414A8E8E67BF1D51415BCD3FDC0A3C544148E17A14C11D51413D0AD7F30A3C5441641C1A5CC21D514136803CC00B3C54411B66EA6EC21D51410B2536CA0B3C5441B56CDB22C51D514125668E760D3C5441CDE39F4CC51D51418185B18E0D3C54417B3EB982C51D51418FFEF4AD0D3C544164650B15C71D51418DCD74960E3C5441851CF9E0C91D514166153034103C544119B9DB37CD1D514122B64902123C54413C3A6413D01D51412B89A8C3133C5441B81E85DBD21D51418FC2F558153C544152C2C04CD41D5141039A8226163C5441C0B2AFDAD41D5141A333D96A163C5441964C02FCD61D5141A0281AA5173C54415DFD165BD71D5141218008DA173C544121A2C195DB1D5141E77C081E1A3C544143117FA1DF1D5141A449A85F1C3C5441BCC77E06DE1D51410DDD51A1153C54415AE0E3D6D01D514189F220430C3C5441213CEBEFCD1D514133943A2F0A3C5441478E7298CB1D514147737C8A083C54411F950DE8C91D51410DE8015B073C54415B7C2890C91D5141935F511D073C5441A6A84BEBC71D5141BDCFEEF5053C544191DC12D2C61D5141E5DD8938053C544125738DD0C61D5141C0E97C2F053C544133333303C61D5141F6285C9F043C5441F6285C6FC51D5141295C8F62043C544148BCE34AC61D5141499F3514023C5441BAF3674AC61D514138205511023C5441AB3E5B55C61D514124FD0FF8013C544185EB51A8C61D51418FC2F518013C54413E03B123C91D5141259B6F68FB3B5441941863EAC91D51418EF717EFF83B544166666616CA1D5141E17A145EF83B5441D26AEF7FCA1D514172A689B2F63B544151B1FBEECA1D51419072A8E8F33B5441F5F34BEFCA1D5141A013DBE5F33B5441FAD76CEFCA1D51410D19B5E4F33B5441FAD76CEFCA1D5141A5B5C71DF23B544171B23CEFCA1D5141CA4EAB1AF23B5441105156EECA1D5141A08BC80BF23B54413B71F7B2CA1D5141F917DECDEF3B54412C52CA19C91D5141711811D2EE3B544134EA7533C81D5141D1A1D852EE3B5441C9B4F2FBC61D51412EF9C8A6ED3B5441EA2CA95CC41D514114352457EC3B54419FF0CA0FC41D5141DB690EF7EB3B5441A4703D4AC31D5141295C8F32EB3B54413B93B003BF1D5141AE56D8DAEA3B5441E7AB8397BD1D5141328815C4EA3B54414EE85AD8B71D51411FBB2A4BEA3B54414FE0E3F0B11D514196ED3FD2E93B544120C76CE7B11D51412E93E1CDE93B54411F85EBE1B11D5141D7A370CDE93B5441CA1204EBAF1D51417E40D8F1E83B5441D155FC71B01D51417BFF7873EA3B5441D155FC71B01D5141016839DEEB3B54418FEB7879B01D5141A7312706EC3B54418FC2F528B11D514166666686EE3B544185EB5168B11D51418FC2F578EF3B5441E17A140EB31D5141EC51B81EF13B5441C3F528ACB31D51419A9999B9F23B5441B81E85CBB31D51417B14AE27F53B544133333303B31D5141CDCCCC9CF83B54415C8FC225B21D51411F85EB81FA3B54411F85EBD1B11D5141AE47E1DAFC3B54413D0AD733B11D51413D0AD713FF3B54418FC2F578AF1D5141295C8F22013C54415C8FC2C5B51D5141D7A370AD043C544152B81E15BB1D5141E17A14EE073C5441B81E854BBE1D51417B14AEE7093C544148E17A14BF1D51417B14AED70A3C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985290 - 397559
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000033000000713D0AC7DF1D5141A4703D8A1C3C5441CDCCCC9CE01D514152B81E251D3C5441E17A14CEE21D5141B81E85BB1E3C5441AE47E1DAE41D51415C8FC2D51F3C54415C8FC295E81D5141D7A370AD213C544114AE47C1EB1D5141B81E85BB223C5441E17A14DEED1D51411F85EB81223C544166666626EF1D514114AE4721223C5441EC51B80EF01D514133333373213C5441D7A3700DF11D51410AD7A3F01E3C54413D0AD7F3F01D51415C8FC2551B3C5441F6285CBFF01D514185EB5158153C5441713D0A27E81D5141CDCCCC8C0E3C544100000010DE1D5141CDCCCCCC063C5441A4703DEADD1D5141AE47E1FA093C544114AE4781DD1D514148E17AD4123C5441E17A14FEDD1D514148E17A74153C54419A9999C9D01D5141F6285C2F0C3C544133333303C61D5141F6285C9F043C5441F6285C6FC51D5141295C8F62043C544185EB51A8C61D51418FC2F518013C54418FC2F538C91D51417B14AE37FB3B544166666616CA1D5141E17A145EF83B54418FC2F5B8CA1D5141B81E85CBF53B544114AE4701CB1D514152B81E45F33B5441AE47E1CACA1D514114AE47C1EF3B54419A999939C41D51410AD7A320EC3B5441A4703D4AC31D5141295C8F32EB3B54411F85EBE1B11D5141D7A370CDE93B54419A9999D9AF1D5141A4703DEAE83B544133333363B01D5141333333B3EA3B5441295C8F62B01D5141295C8FB2EB3B54418FC2F528B11D514166666686EE3B544185EB5168B11D51418FC2F578EF3B5441E17A140EB31D5141EC51B81EF13B5441C3F528ACB31D51419A9999B9F23B5441B81E85CBB31D51417B14AE27F53B544133333303B31D5141CDCCCC9CF83B54415C8FC225B21D51411F85EB81FA3B54411F85EBD1B11D5141AE47E1DAFC3B54413D0AD733B11D51413D0AD713FF3B54418FC2F578AF1D5141295C8F22013C54415C8FC2C5B51D5141D7A370AD043C544152B81E15BB1D5141E17A14EE073C5441B81E854BBE1D51417B14AEE7093C544148E17A14BF1D51417B14AED70A3C544148E17A14C11D51413D0AD7F30A3C54413D0AD7B3C41D5141666666360D3C544148E17AB4CD1D5141A4703D6A123C5441B81E85DBD21D51418FC2F558153C5441713D0AC7DF1D5141A4703D8A1C3C5441
+</a>
+
+<b>
+0106000000010000000103000000010000004D00000048E17A14BF1D51417B14AED70A3C5441E03EDF44BF1D5141AA7057DA0A3C54415B2EF45CBF1D5141D7F84CCE0A3C54414A8E8E67BF1D51415BCD3FDC0A3C544148E17A14C11D51413D0AD7F30A3C5441641C1A5CC21D514136803CC00B3C54411B66EA6EC21D51410B2536CA0B3C5441B56CDB22C51D514125668E760D3C5441CDE39F4CC51D51418185B18E0D3C54417B3EB982C51D51418FFEF4AD0D3C544164650B15C71D51418DCD74960E3C5441851CF9E0C91D514166153034103C544119B9DB37CD1D514122B64902123C54413C3A6413D01D51412B89A8C3133C5441B81E85DBD21D51418FC2F558153C544152C2C04CD41D5141039A8226163C5441C0B2AFDAD41D5141A333D96A163C5441964C02FCD61D5141A0281AA5173C54415DFD165BD71D5141218008DA173C544121A2C195DB1D5141E77C081E1A3C544143117FA1DF1D5141A449A85F1C3C5441BCC77E06DE1D51410DDD51A1153C54415AE0E3D6D01D514189F220430C3C5441213CEBEFCD1D514133943A2F0A3C5441478E7298CB1D514147737C8A083C54411F950DE8C91D51410DE8015B073C54415B7C2890C91D5141935F511D073C5441A6A84BEBC71D5141BDCFEEF5053C544191DC12D2C61D5141E5DD8938053C544125738DD0C61D5141C0E97C2F053C544133333303C61D5141F6285C9F043C5441F6285C6FC51D5141295C8F62043C544148BCE34AC61D5141499F3514023C5441BAF3674AC61D514138205511023C5441AB3E5B55C61D514124FD0FF8013C544185EB51A8C61D51418FC2F518013C54413E03B123C91D5141259B6F68FB3B5441941863EAC91D51418EF717EFF83B544166666616CA1D5141E17A145EF83B5441D26AEF7FCA1D514172A689B2F63B544151B1FBEECA1D51419072A8E8F33B5441F5F34BEFCA1D5141A013DBE5F33B5441FAD76CEFCA1D51410D19B5E4F33B5441FAD76CEFCA1D5141A5B5C71DF23B544171B23CEFCA1D5141CA4EAB1AF23B5441105156EECA1D5141A08BC80BF23B54413B71F7B2CA1D5141F917DECDEF3B54412C52CA19C91D5141711811D2EE3B544134EA7533C81D5141D1A1D852EE3B5441C9B4F2FBC61D51412EF9C8A6ED3B5441EA2CA95CC41D514114352457EC3B54419FF0CA0FC41D5141DB690EF7EB3B5441A4703D4AC31D5141295C8F32EB3B54413B93B003BF1D5141AE56D8DAEA3B5441E7AB8397BD1D5141328815C4EA3B54414EE85AD8B71D51411FBB2A4BEA3B54414FE0E3F0B11D514196ED3FD2E93B544120C76CE7B11D51412E93E1CDE93B54411F85EBE1B11D5141D7A370CDE93B5441CA1204EBAF1D51417E40D8F1E83B5441D155FC71B01D51417BFF7873EA3B5441D155FC71B01D5141016839DEEB3B54418FEB7879B01D5141A7312706EC3B54418FC2F528B11D514166666686EE3B544185EB5168B11D51418FC2F578EF3B5441E17A140EB31D5141EC51B81EF13B5441C3F528ACB31D51419A9999B9F23B5441B81E85CBB31D51417B14AE27F53B544133333303B31D5141CDCCCC9CF83B54415C8FC225B21D51411F85EB81FA3B54411F85EBD1B11D5141AE47E1DAFC3B54413D0AD733B11D51413D0AD713FF3B54418FC2F578AF1D5141295C8F22013C54415C8FC2C5B51D5141D7A370AD043C544152B81E15BB1D5141E17A14EE073C5441B81E854BBE1D51417B14AEE7093C544148E17A14BF1D51417B14AED70A3C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>813136 - 814146
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000280000003D0AD743E6645141F6285C7F3D3A5441AE47E1EAD2645141A4703D0A403A54418FC2F518CD645141D7A3709D423A5441CDCCCCCCC7645141F6285CCF443A5441D43F6A46C464514101623FB3463A5441C642B6E7C36451412889E01F463A54413817978EC0645141274899D0473A5441A4703DBAC0645141A4703D9A483A5441666666D6C1645141000000504D3A54415C8FC205C8645141666666D64C3A5441295C8F22CC64514114AE47014D3A54419A9999D9CC645141EC51B81E4D3A5441713D0AE7CD645141713D0A674D3A544185EB5138D06451418FC2F5184E3A5441CDCCCC9CD0645141E17A144E4C3A5441AE47E15AD5645141295C8FD24B3A5441333333C3EA6451411F85EB214A3A54413D0AD703F2645141E17A146E483A5441000000D0FD64514185EB5108473A5441000000F0066551413D0AD7F3453A5441333333230F6551419A999959453A5441713D0A1716655141295C8FB2453A54413D0AD7E31A655141D7A3709D463A54419A9999391B655141E17A14AE463A5441F6285C4F24655141295C8F92483A54410AD7A3602A65514133333363493A544185EB51682D6551411F85EBF1483A544152B81EB52D655141295C8F92473A5441CDCCCC4C2865514148E17A44473A54415C8FC20523655141000000A0463A54410AD7A30020655141B81E85BB453A54415C8FC20520655141B81E855B463A5441713D0AA71B655141666666F6443A5441D7A370CD1B655141B81E855B443A5441D7A3705D1765514114AE4741403A5441333333D30F655141333333A33D3A544114AE47710A6551413D0AD703393A5441B81E852B05655141B81E859B393A5441CDCCCCECF4645141000000703B3A54413D0AD743E6645141F6285C7F3D3A5441
+</a>
+
+<b>
+0106000000010000000103000000010000003400000014AE47F1106551419A999999383A54410AD7A30015655141AE47E16A383A5441C3F5280C14655141EC51B8AE2F3A54418FC2F5F812655141EC51B82E283A544114AE472118655141713D0AA7273A5441EC51B80E1E65514166666696273A5441CDCCCCAC236551417B14AED7273A5441713D0A57296551418FC2F598283A5441A4703D8A3365514148E17A842A3A54411F85EB513265514152B81EC5243A54413D0AD78331655141B81E851B233A54415C8FC24530655141AE47E13A223A5441EC51B84E2F655141B81E85CB213A5441AE47E19A2D65514133333383213A5441CDCCCCBC2A65514133333383213A5441D7A370ED1C655141C3F528EC213A544114AE47911065514148E17A14223A5441C3F528BC0A655141D7A370AD223A5441AE47E19A06655141000000A0233A5441F6285CDF066551415C8FC225243A544114AE474109655141713D0AE72B3A544185EB5108006551413D0AD7C32E3A5441CDCCCC5C00655141B81E85FB2F3A54410AD7A3B0FF645141F6285CAF303A54417B14AE57FB64514148E17A14313A54411F85EBF1F6645141B81E85CB2F3A54418FC2F5F8EF645141CDCCCCDC2D3A5441F6285C4FEF6451413D0AD7832E3A544185EB5118EB645141EC51B89E2F3A54418FC2F548E4645141000000E0313A544185EB5128E0645141E17A149E333A5441A4703DEAD36451418FC2F558393A544166666686C8645141F6285C7F3E3A54413D0AD733CA645141E17A14DE413A54411C7AE701CB6451416C29BE08423A5441173A9022CC6451416615FF38423A54413C725C68CF645141106F632B413A544119998192D264514121DEAD26403A5441FF418BFFD26451418F458607403A544139D99EBAD4645141F17C4CCD3F3A544161B716A7DA6451412E2304063F3A5441AFA86A52E56451417E04169F3D3A54410E04EE75EE645141F92C8A583C3A544124A1F711F56451418D69C86B3B3A5441E2A68636FB6451415AC35AB93A3A5441C7449A67FF6451410F6C993F3A3A54410BCEAA5B04655141B252B8AF393A5441B81E852B05655141B81E859B393A544148E17AC406655141CDCCCCDC363A5441295C8F220A65514114AE4791363A5441E17A14BE0C6551419A9999C9383A544114AE47F1106551419A999999383A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985164 - 397343
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000070000007A373EB390A450410AF5A0309F665441B1A64D3DB1A45041D5893A50A366544148E17AE4B1A4504114AE4781A2665441CFAE50BFAAA4504181FF08C98B665441805CCB3E7CA4504199471D2F80665441AE47E11A76A4504114AE47118C6654417A373EB390A450410AF5A0309F665441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000EC51B8AE90A45041E17A143E9F66544148E17AA495A45041E17A14DE9F6654413D0AD733B1A4504152B81E55A366544148E17AE4B1A4504114AE4781A2665441B30654BAACA45041CDC4BC2292665441250554BAACA45041E4BFBC2292665441B9FA53BAACA45041DB9EBC22926654416BCFCFB7AAA450412BC829C78B665441A8E03B6B7FA4504171ECCCF980665441F4FE5C4E7CA45041029CFF32806654414A362AAC7BA4504199DFE34A816654410275351B76A4504127C5A4108C665441159BE21A76A45041857546118C66544152E7571E76A45041122EC5138C665441EC51B8AE90A45041E17A143E9F665441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>818801 - 239112
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000040000009800000048E17AB49F935041CDCCCCFCAA4A55415C8FC2F59E935041B81E854BB44A5541EC51B87E9E9350418FC2F5E8C24A554114AE47F1A59350415C8FC2C5C44A5541CDCCCC5CA893504152B81E85C94A55418FC2F568AA935041D7A3706DCD4A55411F85EB51AE9350418FC2F5A8CB4A5541AE47E13AB293504100000020CC4A55417B14AE17B8935041713D0A27D14A5541C3F5283CBA93504100000010D54A5541713D0AD7BC9350417B14AE27D54A5541AE47E12ABF9350413D0AD7D3D24A55413D0AD7E3C2935041E17A146ED14A5541C3F5282CC793504100000010D54A55413D0AD743C79350411F85EB51D84A55413D0AD743C7935041333333F3DB4A55410AD7A3C0C493504114AE4711DD4A554133333373C3935041AE47E16AE04A5541713D0AC7C593504100000000E24A55419A9999D9CC935041666666D6E24A554152B81E75CF935041295C8FE2E44A55418FC2F5C8D1935041AE47E1CAE44A5541D7A370BDD3935041F6285C5FE24A5541AE47E10AD5935041333333B3E44A554100000070D6935041CDCCCC0CE84A5541EC51B85ED793504133333373ED4A5541D7A3701DD8935041333333D3F14A554185EB5188D693504100000080F34A55415C8FC275D39350418FC2F5D8F24A55411F85EB21D19350415C8FC2B5F44A5541F6285C3FCE935041F6285CDFF34A5541295C8F62CC93504114AE47F1F64A5541F6285CAFC99350417B14AEF7F74A5541F6285CDFC9935041A4703D0AFB4A5541295C8F02C8935041EC51B8FEFC4A5541F6285CDFC9935041333333C3FE4A5541F6285CDFC99350418FC2F588044B5541CDCCCCFCC6935041B81E853B074B554114AE47F1C8935041666666060A4B554166666686CA9350410AD7A3600D4B5541666666E6CE93504185EB51A8114B554152B81ED5D3935041D7A370CD174B5541EC51B82ED7935041666666B61B4B5541F6285CFFD69350410AD7A3E01E4B5541295C8F22D5935041295C8F122F4B554100000070D6935041D7A3700D324B554185EB5128D29350411F85EB31384B554185EB5198CD93504152B81EE53A4B5541A4703D4AC89350418FC2F5083D4B5541F6285C8FB893504114AE47414E4B5541295C8FB2B693504114AE47F15F4B5541C3F528ACB5935041CDCCCCEC6A4B5541B81E853BB6935041F6285C8F764B554114AE47F1C89350413D0AD7B3784B5541A4703D7ACC9350418FC2F5E8754B5541F6285C9FD293504100000060764B554114AE47E1D5935041295C8F42794B5541F6285CFFD6935041333333437D4B554148E17A64D8935041A4703D1A824B55415C8FC275D393504148E17A44854B55413D0AD733D093504185EB51C8874B5541295C8FC2D093504185EB51F88B4B554148E17A04D4935041C3F5281C8E4B55417B14AEE7D693504114AE47B18F4B5541EC51B82ED793504185EB5158904B55418FC2F558DA935041713D0AE7904B5541713D0A77DB93504114AE4741944B5541F6285C2FDB935041EC51B81E9A4B5541295C8FB2D99350417B14AED79D4B5541F6285C0FCE935041F6285C4FA24B5541F6285C4FC59350413D0AD743A44B554148E17A54BE93504166666656A74B5541F6285C5FB8935041AE47E14AA94B55419A999999AE93504148E17AA4AC4B5541333333F3B193504152B81EA5B04B5541EC51B82EB0935041C3F5287CB54B5541AE47E1AAAD9350413D0AD723BA4B5541CDCCCC5CA8935041F6285C9FB34B554148E17A74A89350418FC2F5C8B24B5541C3F5282CA4935041E17A145EB44B55418FC2F5A8A193504152B81ED5B44B554185EB51A89D935041000000E0AA4B5541713D0AA79593504152B81E45AC4B5541295C8FA29C935041E17A14EEB84B554148E17AE49F935041C3F5289CC24B5541CDCCCCCCA3935041B81E85BBCB4B5541F6285C3FAB935041CDCCCCECD74B5541CDCCCC1CB193504100000030DF4B5541666666D6B8935041CDCCCC9CE94B5541666666C6C19350413D0AD733F74B5541713D0A97C5935041A4703D3AFC4B554148E17AF4CB935041333333E3FC4B5541CDCCCC9CD2935041333333C3FD4B554114AE4771D7935041CDCCCC8CFF4B55418FC2F5A8D893504100000050004C554152B81E35DB935041A4703D6A014C5541E17A148EDE935041B81E85AB024C554185EB5148E293504148E17A44044C554148E17A04E29350415C8FC2A5044C554100000000E09350419A9999D9034C5541A4703D6ADD9350418FC2F5C8024C55417B14AE07DA93504166666656014C5541AE47E15AD893504114AE47B1004C5541713D0A37D7935041E17A14EEFF4B5541333333C3D2935041B81E854BFE4B55418FC2F528CE935041F6285C7FFD4B55417B14AE47CA935041EC51B84EFD4B5541D7A3708DC693504114AE4731FD4B55411F85EBF1C5935041E17A142EFE4B5541295C8F22CD93504166666656084C55419A999989DF935041F6285C1F224C5541CDCCCCFCE1935041B81E85CB254C5541C3F5280CE5935041CDCCCC9C264C55415C8FC255E993504100000000264C55411F85EBF1E9935041AE47E10A1E4C5541AE47E15AEA935041E17A146E134C55411F85EBF1E993504133333383034C5541666666C6E8935041D7A3705DFA4B5541000000F0E79350417B14AE67F04B554148E17A84E5935041666666E6D64B5541713D0AD7E3935041EC51B81EC14B554114AE47A1E2935041E17A14FEAF4B5541295C8F42E2935041713D0A67A24B554148E17AF4E0935041CDCCCCBC8D4B554100000030DF935041E17A147E7B4B554114AE4771DE9350413D0AD7C36F4B5541B81E850BDD935041B81E850B704B5541D7A3701DDC935041EC51B8CE694B5541A4703DFADD935041666666E6694B5541A4703DCADD9350411F85EB21684B5541C3F528DCDC9350410AD7A360574B5541EC51B88EDB935041333333C3484B554185EB5188DA935041B81E859B324B5541000000D0DA935041CDCCCC1C254B5541295C8F52D9935041713D0AE7234B5541295C8F82D99350411F85EB21224B55417B14AEE7DA93504185EB51C81E4B55417B14AE17DB9350410AD7A3201A4B5541EC51B88EDB935041713D0A47054B5541F6285C2FDB93504185EB5108F34A55418FC2F558DA9350413D0AD7B3EC4A5541295C8F52D9935041295C8FE2E44A5541B81E85ABD8935041713D0AE7DD4A5541F6285CCFD69350418FC2F598D84A55415C8FC245D3935041C3F528ECD64A5541EC51B80ECA935041B81E852BCA4A554100000060BC9350418FC2F598B54A55418FC2F5C8B293504114AE4761A84A55418FC2F568AE9350410AD7A360A44A554100000050A693504148E17A24A24A5541F6285C1F9E935041A4703DBAA34A554148E17AB49F935041CDCCCCFCAA4A55410B0000005C8FC2D5DB9350419A9999C9B64B554148E17AC4DC93504185EB5158B74B5541CDCCCCACDC93504152B81E35B94B5541E17A14BEDB935041AE47E19ABA4B5541000000D0DA9350419A999929BB4B5541295C8F52D9935041AE47E19ABA4B55418FC2F528DA935041CDCCCC7CB94B5541666666A6DB93504166666676B84B554185EB5188DA935041EC51B85EB84B55417B14AE17DB9350411F85EBB1B64B55415C8FC2D5DB9350419A9999C9B64B55410D00000033333303A8935041D7A3708DA44A5541D7A3701DAA935041A4703DBAA54A5541C3F5289CAA93504148E17AB4A74A5541295C8F42A893504100000060A94A554114AE47C1A8935041A4703D6AAB4A5541F6285C4FA993504148E17A54AD4A5541713D0A97A6935041295C8FF2AD4A5541B81E851BA59350417B14AE27AC4A55410AD7A350A39350410AD7A300A94A554148E17AE4A193504166666606A74A55413D0AD723A29350419A9999E9A54A5541C3F528DCA4935041C3F5280CA54A554133333303A8935041D7A3708DA44A554110000000B81E855BCC935041AE47E17AD24A554100000070D0935041B81E85ABD74A5541713D0A97D393504114AE4761DB4A554185EB5138D3935041AE47E1BADD4A554100000060D0935041B81E855BDD4A55419A999909CD9350417B14AE07D94A55411F85EB41CA93504133333323D54A5541B81E85DBC6935041CDCCCCACD14A5541CDCCCCACC0935041C3F5284CCC4A5541F6285CEFBF9350411F85EB51CA4A5541D7A3706DC09350418FC2F5E8C74A5541A4703D9AC193504185EB51F8C74A554152B81E55C3935041000000F0CA4A5541AE47E1FAC69350415C8FC2A5CE4A55413D0AD783C993504133333373CF4A5541B81E855BCC935041AE47E17AD24A5541
+</a>
+
+<b>
+0106000000010000000103000000020000003E00000000000060BC9350418FC2F598B54A5541500CF01ABA935041813018AFB24A5541305DB119B69350410D1DE939AD4A5541ED47E36FB59350416CA20409AC4A554162D85DCDB293504123795A67A84A55416303C1A1B2935041937D693DA84A55415B0590D8AE9350411A8CBDC6A44A55412AC86FE2AB935041193F31AEA34A55415AEBB676A79350417C11D375A24A5541C2BA13C0A49350416666E071A24A554189FC2D7E9F93504160A95876A34A5541F8769ACC9E935041EF1FA0D9A34A5541C71B46809E935041F47CD976A54A554148E17AB49F935041CDCCCCFCAA4A55415C8FC2F59E935041B81E854BB44A554189E0A7879E93504155981BD0C14A554134145E8B9F93504195C908C1C24A55414C59FFDCA2935041E7B69CA0C34A5541701A7430A393504105867E15C44A554114AE47F1A59350415C8FC2C5C44A5541CDCCCC5CA893504152B81E85C94A5541653CFDA6A993504180E442FBCB4A5541B54F031FAA935041CFA8277ECC4A55410F892E8EAC935041EA9D2A75CC4A55411F85EB51AE9350418FC2F5A8CB4A5541AE47E13AB293504100000020CC4A554185DF6792B393504122DE9846CD4A554198C9B6F6B3935041F676FE60CD4A55419EFF1D9CB6935041BA0E577ECF4A55412A153CC1B693504186925E01D04A55417B14AE17B8935041713D0A27D14A55418F489C17BA93504195564CCDD44A5541E2908FD0BC9350416C67923AD44A554158A7B771C0935041382F4B55D14A5541BD7CA222C39350419A5773A2CF4A554174BDF38FC39350411AE511CFCE4A5541CDCCCCACC0935041C3F5284CCC4A5541F6285CEFBF9350411F85EB51CA4A5541D7A3706DC09350418FC2F5E8C74A5541A4703D9AC193504185EB51F8C74A554152B81E55C3935041000000F0CA4A55416752D939C5935041B7E508DDCC4A5541C316C485C5935041AA014D9DCC4A5541C42CAA7CC6935041A2CD7EFECC4A5541B439A04EC793504168A4A010CE4A554107F05917C89350410885D0FFCE4A55413D0AD783C993504133333373CF4A5541B81E855BCC935041AE47E17AD24A5541109D0E5FCE935041476AAC0AD54A55412C2F070FCF9350416293C2C2D54A5541E306178DD1935041A3DF7BABD84A554146FB19DCD2935041CAB01221D94A554110B8E305D49350418F89AAD2D84A5541704CC33AD4935041711E2B60D74A55415C8FC245D3935041C3F528ECD64A55411965B5D8CE93504158AC25CCD04A554196610EC3CD9350419C52EF80CF4A5541EC51B80ECA935041B81E852BCA4A5541C061829AC5935041E9352479C34A5541D85AB4CDC393504132A68702C14A5541C46DCB1CC2935041809C6239BE4A554100000060BC9350418FC2F598B54A55410D00000033333303A8935041D7A3708DA44A5541D7A3701DAA935041A4703DBAA54A5541C3F5289CAA93504148E17AB4A74A5541295C8F42A893504100000060A94A554114AE47C1A8935041A4703D6AAB4A5541F6285C4FA993504148E17A54AD4A5541713D0A97A6935041295C8FF2AD4A5541B81E851BA59350417B14AE27AC4A55410AD7A350A39350410AD7A300A94A554148E17AE4A193504166666606A74A55413D0AD723A29350419A9999E9A54A5541C3F528DCA4935041C3F5280CA54A554133333303A8935041D7A3708DA44A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>818801 - 372512
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000040000009800000048E17AB49F935041CDCCCCFCAA4A55415C8FC2F59E935041B81E854BB44A5541EC51B87E9E9350418FC2F5E8C24A554114AE47F1A59350415C8FC2C5C44A5541CDCCCC5CA893504152B81E85C94A55418FC2F568AA935041D7A3706DCD4A55411F85EB51AE9350418FC2F5A8CB4A5541AE47E13AB293504100000020CC4A55417B14AE17B8935041713D0A27D14A5541C3F5283CBA93504100000010D54A5541713D0AD7BC9350417B14AE27D54A5541AE47E12ABF9350413D0AD7D3D24A55413D0AD7E3C2935041E17A146ED14A5541C3F5282CC793504100000010D54A55413D0AD743C79350411F85EB51D84A55413D0AD743C7935041333333F3DB4A55410AD7A3C0C493504114AE4711DD4A554133333373C3935041AE47E16AE04A5541713D0AC7C593504100000000E24A55419A9999D9CC935041666666D6E24A554152B81E75CF935041295C8FE2E44A55418FC2F5C8D1935041AE47E1CAE44A5541D7A370BDD3935041F6285C5FE24A5541AE47E10AD5935041333333B3E44A554100000070D6935041CDCCCC0CE84A5541EC51B85ED793504133333373ED4A5541D7A3701DD8935041333333D3F14A554185EB5188D693504100000080F34A55415C8FC275D39350418FC2F5D8F24A55411F85EB21D19350415C8FC2B5F44A5541F6285C3FCE935041F6285CDFF34A5541295C8F62CC93504114AE47F1F64A5541F6285CAFC99350417B14AEF7F74A5541F6285CDFC9935041A4703D0AFB4A5541295C8F02C8935041EC51B8FEFC4A5541F6285CDFC9935041333333C3FE4A5541F6285CDFC99350418FC2F588044B5541CDCCCCFCC6935041B81E853B074B554114AE47F1C8935041666666060A4B554166666686CA9350410AD7A3600D4B5541666666E6CE93504185EB51A8114B554152B81ED5D3935041D7A370CD174B5541EC51B82ED7935041666666B61B4B5541F6285CFFD69350410AD7A3E01E4B5541295C8F22D5935041295C8F122F4B554100000070D6935041D7A3700D324B554185EB5128D29350411F85EB31384B554185EB5198CD93504152B81EE53A4B5541A4703D4AC89350418FC2F5083D4B5541F6285C8FB893504114AE47414E4B5541295C8FB2B693504114AE47F15F4B5541C3F528ACB5935041CDCCCCEC6A4B5541B81E853BB6935041F6285C8F764B554114AE47F1C89350413D0AD7B3784B5541A4703D7ACC9350418FC2F5E8754B5541F6285C9FD293504100000060764B554114AE47E1D5935041295C8F42794B5541F6285CFFD6935041333333437D4B554148E17A64D8935041A4703D1A824B55415C8FC275D393504148E17A44854B55413D0AD733D093504185EB51C8874B5541295C8FC2D093504185EB51F88B4B554148E17A04D4935041C3F5281C8E4B55417B14AEE7D693504114AE47B18F4B5541EC51B82ED793504185EB5158904B55418FC2F558DA935041713D0AE7904B5541713D0A77DB93504114AE4741944B5541F6285C2FDB935041EC51B81E9A4B5541295C8FB2D99350417B14AED79D4B5541F6285C0FCE935041F6285C4FA24B5541F6285C4FC59350413D0AD743A44B554148E17A54BE93504166666656A74B5541F6285C5FB8935041AE47E14AA94B55419A999999AE93504148E17AA4AC4B5541333333F3B193504152B81EA5B04B5541EC51B82EB0935041C3F5287CB54B5541AE47E1AAAD9350413D0AD723BA4B5541CDCCCC5CA8935041F6285C9FB34B554148E17A74A89350418FC2F5C8B24B5541C3F5282CA4935041E17A145EB44B55418FC2F5A8A193504152B81ED5B44B554185EB51A89D935041000000E0AA4B5541713D0AA79593504152B81E45AC4B5541295C8FA29C935041E17A14EEB84B554148E17AE49F935041C3F5289CC24B5541CDCCCCCCA3935041B81E85BBCB4B5541F6285C3FAB935041CDCCCCECD74B5541CDCCCC1CB193504100000030DF4B5541666666D6B8935041CDCCCC9CE94B5541666666C6C19350413D0AD733F74B5541713D0A97C5935041A4703D3AFC4B554148E17AF4CB935041333333E3FC4B5541CDCCCC9CD2935041333333C3FD4B554114AE4771D7935041CDCCCC8CFF4B55418FC2F5A8D893504100000050004C554152B81E35DB935041A4703D6A014C5541E17A148EDE935041B81E85AB024C554185EB5148E293504148E17A44044C554148E17A04E29350415C8FC2A5044C554100000000E09350419A9999D9034C5541A4703D6ADD9350418FC2F5C8024C55417B14AE07DA93504166666656014C5541AE47E15AD893504114AE47B1004C5541713D0A37D7935041E17A14EEFF4B5541333333C3D2935041B81E854BFE4B55418FC2F528CE935041F6285C7FFD4B55417B14AE47CA935041EC51B84EFD4B5541D7A3708DC693504114AE4731FD4B55411F85EBF1C5935041E17A142EFE4B5541295C8F22CD93504166666656084C55419A999989DF935041F6285C1F224C5541CDCCCCFCE1935041B81E85CB254C5541C3F5280CE5935041CDCCCC9C264C55415C8FC255E993504100000000264C55411F85EBF1E9935041AE47E10A1E4C5541AE47E15AEA935041E17A146E134C55411F85EBF1E993504133333383034C5541666666C6E8935041D7A3705DFA4B5541000000F0E79350417B14AE67F04B554148E17A84E5935041666666E6D64B5541713D0AD7E3935041EC51B81EC14B554114AE47A1E2935041E17A14FEAF4B5541295C8F42E2935041713D0A67A24B554148E17AF4E0935041CDCCCCBC8D4B554100000030DF935041E17A147E7B4B554114AE4771DE9350413D0AD7C36F4B5541B81E850BDD935041B81E850B704B5541D7A3701DDC935041EC51B8CE694B5541A4703DFADD935041666666E6694B5541A4703DCADD9350411F85EB21684B5541C3F528DCDC9350410AD7A360574B5541EC51B88EDB935041333333C3484B554185EB5188DA935041B81E859B324B5541000000D0DA935041CDCCCC1C254B5541295C8F52D9935041713D0AE7234B5541295C8F82D99350411F85EB21224B55417B14AEE7DA93504185EB51C81E4B55417B14AE17DB9350410AD7A3201A4B5541EC51B88EDB935041713D0A47054B5541F6285C2FDB93504185EB5108F34A55418FC2F558DA9350413D0AD7B3EC4A5541295C8F52D9935041295C8FE2E44A5541B81E85ABD8935041713D0AE7DD4A5541F6285CCFD69350418FC2F598D84A55415C8FC245D3935041C3F528ECD64A5541EC51B80ECA935041B81E852BCA4A554100000060BC9350418FC2F598B54A55418FC2F5C8B293504114AE4761A84A55418FC2F568AE9350410AD7A360A44A554100000050A693504148E17A24A24A5541F6285C1F9E935041A4703DBAA34A554148E17AB49F935041CDCCCCFCAA4A55410B0000005C8FC2D5DB9350419A9999C9B64B554148E17AC4DC93504185EB5158B74B5541CDCCCCACDC93504152B81E35B94B5541E17A14BEDB935041AE47E19ABA4B5541000000D0DA9350419A999929BB4B5541295C8F52D9935041AE47E19ABA4B55418FC2F528DA935041CDCCCC7CB94B5541666666A6DB93504166666676B84B554185EB5188DA935041EC51B85EB84B55417B14AE17DB9350411F85EBB1B64B55415C8FC2D5DB9350419A9999C9B64B55410D00000033333303A8935041D7A3708DA44A5541D7A3701DAA935041A4703DBAA54A5541C3F5289CAA93504148E17AB4A74A5541295C8F42A893504100000060A94A554114AE47C1A8935041A4703D6AAB4A5541F6285C4FA993504148E17A54AD4A5541713D0A97A6935041295C8FF2AD4A5541B81E851BA59350417B14AE27AC4A55410AD7A350A39350410AD7A300A94A554148E17AE4A193504166666606A74A55413D0AD723A29350419A9999E9A54A5541C3F528DCA4935041C3F5280CA54A554133333303A8935041D7A3708DA44A554110000000B81E855BCC935041AE47E17AD24A554100000070D0935041B81E85ABD74A5541713D0A97D393504114AE4761DB4A554185EB5138D3935041AE47E1BADD4A554100000060D0935041B81E855BDD4A55419A999909CD9350417B14AE07D94A55411F85EB41CA93504133333323D54A5541B81E85DBC6935041CDCCCCACD14A5541CDCCCCACC0935041C3F5284CCC4A5541F6285CEFBF9350411F85EB51CA4A5541D7A3706DC09350418FC2F5E8C74A5541A4703D9AC193504185EB51F8C74A554152B81E55C3935041000000F0CA4A5541AE47E1FAC69350415C8FC2A5CE4A55413D0AD783C993504133333373CF4A5541B81E855BCC935041AE47E17AD24A5541
+</a>
+
+<b>
+0106000000010000000103000000020000003E00000000000060BC9350418FC2F598B54A5541500CF01ABA935041813018AFB24A5541305DB119B69350410D1DE939AD4A5541ED47E36FB59350416CA20409AC4A554162D85DCDB293504123795A67A84A55416303C1A1B2935041937D693DA84A55415B0590D8AE9350411A8CBDC6A44A55412AC86FE2AB935041193F31AEA34A55415AEBB676A79350417C11D375A24A5541C2BA13C0A49350416666E071A24A554189FC2D7E9F93504160A95876A34A5541F8769ACC9E935041EF1FA0D9A34A5541C71B46809E935041F47CD976A54A554148E17AB49F935041CDCCCCFCAA4A55415C8FC2F59E935041B81E854BB44A554189E0A7879E93504155981BD0C14A554134145E8B9F93504195C908C1C24A55414C59FFDCA2935041E7B69CA0C34A5541701A7430A393504105867E15C44A554114AE47F1A59350415C8FC2C5C44A5541CDCCCC5CA893504152B81E85C94A5541653CFDA6A993504180E442FBCB4A5541B54F031FAA935041CFA8277ECC4A55410F892E8EAC935041EA9D2A75CC4A55411F85EB51AE9350418FC2F5A8CB4A5541AE47E13AB293504100000020CC4A554185DF6792B393504122DE9846CD4A554198C9B6F6B3935041F676FE60CD4A55419EFF1D9CB6935041BA0E577ECF4A55412A153CC1B693504186925E01D04A55417B14AE17B8935041713D0A27D14A55418F489C17BA93504195564CCDD44A5541E2908FD0BC9350416C67923AD44A554158A7B771C0935041382F4B55D14A5541BD7CA222C39350419A5773A2CF4A554174BDF38FC39350411AE511CFCE4A5541CDCCCCACC0935041C3F5284CCC4A5541F6285CEFBF9350411F85EB51CA4A5541D7A3706DC09350418FC2F5E8C74A5541A4703D9AC193504185EB51F8C74A554152B81E55C3935041000000F0CA4A55416752D939C5935041B7E508DDCC4A5541C316C485C5935041AA014D9DCC4A5541C42CAA7CC6935041A2CD7EFECC4A5541B439A04EC793504168A4A010CE4A554107F05917C89350410885D0FFCE4A55413D0AD783C993504133333373CF4A5541B81E855BCC935041AE47E17AD24A5541109D0E5FCE935041476AAC0AD54A55412C2F070FCF9350416293C2C2D54A5541E306178DD1935041A3DF7BABD84A554146FB19DCD2935041CAB01221D94A554110B8E305D49350418F89AAD2D84A5541704CC33AD4935041711E2B60D74A55415C8FC245D3935041C3F528ECD64A55411965B5D8CE93504158AC25CCD04A554196610EC3CD9350419C52EF80CF4A5541EC51B80ECA935041B81E852BCA4A5541C061829AC5935041E9352479C34A5541D85AB4CDC393504132A68702C14A5541C46DCB1CC2935041809C6239BE4A554100000060BC9350418FC2F598B54A55410D00000033333303A8935041D7A3708DA44A5541D7A3701DAA935041A4703DBAA54A5541C3F5289CAA93504148E17AB4A74A5541295C8F42A893504100000060A94A554114AE47C1A8935041A4703D6AAB4A5541F6285C4FA993504148E17A54AD4A5541713D0A97A6935041295C8FF2AD4A5541B81E851BA59350417B14AE27AC4A55410AD7A350A39350410AD7A300A94A554148E17AE4A193504166666606A74A55413D0AD723A29350419A9999E9A54A5541C3F528DCA4935041C3F5280CA54A554133333303A8935041D7A3708DA44A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>766891 - 306493
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000004D0000001F85EBD1D2145141F6285C7F2CAF5441000000B0DC145141295C8F0227AF5441A4703D2AE81451413D0AD70323AF5441B81E85FBEF145141CDCCCC4C21AF54417B14AE47F81451418FC2F58820AF5441D7A3706D0115514185EB51881FAF544152B81E9510155141000000D01AAF5441666666F61E1551413333332315AF54415C8FC2A5251551410AD7A38013AF5441EC51B86E2D155141C3F5286C14AF5441E17A144E351551416666664614AF5441333333F33C155141333333F314AF5441713D0AA744155141B81E850B15AF5441AE47E16A5415514185EB513813AF544152B81ED56315514152B81EA510AF544148E17AA46B15514185EB51A80EAF54410AD7A300761551411F85EB310BAF54416666664674155141D7A370AD06AF5441EC51B86E6C15514148E17AF407AF54419A9999895F1551411F85EB510BAF54410AD7A3505F15514148E17AF408AF5441C3F528EC5C155141713D0A07FCAE54411F85EBC15C155141A4703D9AFAAE54410AD7A3704F155141295C8FA2FBAE5441D7A370ED4715514185EB51B8FCAE5441E17A141E45155141EC51B83EFEAE5441A4703D7A3A15514152B81E55FFAE544114AE47212D155141AE47E12A00AF5441D7A370AD211551410AD7A31001AF5441713D0A67101551410000009003AF54418FC2F538F7145141CDCCCCBC07AF5441CDCCCCACF614514114AE47C10CAF5441D7A3708DEA14514185EB511813AF5441E17A140EDB1451416666661619AF5441C3F5289CE914514114AE47D11AAF544148E17AF4F514514114AE47B118AF54419A44BD5AF614514104C553C519AF54412D663AC7F71451416AFB53AA19AF544178C4B492FA14514104D5543E19AF5441BD9AAEA1FD1451414288566618AF54414114A95F00155141E1E9D7B617AF54415357A33803155141814B590717AF5441A8C51E7D05155141F2915A6516AF5441C0A09A8B0715514125355B1416AF5441E80397560915514163D85BC315AF54413372129B0B1551415E60DC7F15AF54413F0D8AC50F15514163F85DB514AF5441958B0683111551416980DE7114AF54417F3B012614155141DAC6DFCF13AF5441DA51FF1815155141A2AB5FDD13AF5441B876830A13155141D52E5E9A14AF5441179A8C810E155141C496DC6415AF5441D74B132F0B1551415E50DB0616AF54418775192008155141F2915A6516AF5441B4F521E803155141E771587317AF5441D565293700155141751B569C18AF5441076EB2BBFB1451413768547419AF544128DEB90AF81451416563D2741AAF54413D0AD733E91451417B14AE271FAF544100000090DE145141F6285C1F22AF544133333323D0145141CDCCCCBC24AF5441F6285C6FC61451419A9999C928AF5441EC51B8BEBC145141CDCCCCBC2BAF5441E17A14DEB51451418FC2F5382CAF544152B81E25AA1451419A9999692BAF5441E17A146EA01451418FC2F5882AAF5441713D0AC7941451415C8FC21529AF5441D7A3706D8E14514114AE47612AAF5441333333438B145141C3F528EC2CAF5441D7A3701DA414514152B81EC52FAF5441E17A14FEAB145141333333F32CAF5441B81E857BB3145141EC51B82E2DAF54411F85EBF1B8145141EC51B8AE2DAF5441CDCCCC1CBC14514185EB51182FAF544148E17A84C11451415C8FC2D52FAF54413D0AD773C914514114AE471130AF54411F85EBD1D2145141F6285C7F2CAF5441
+</a>
+
+<b>
+0106000000010000000103000000010000005400000005B19270AF145141D603980E2DAF544176FA857BB3145141138CB72E2DAF54411F85EBF1B8145141EC51B8AE2DAF5441CDCCCC1CBC14514185EB51182FAF544148E17A84C11451415C8FC2D52FAF54413D916D32C7145141518B5C0030AF54417FFBD773C9145141A049471130AF54416ECAECD1D2145141A7295B7F2CAF5441C5C31669D5145141CE378F0E2BAF5441000000B0DC145141295C8F0227AF5441A4703D2AE81451413D0AD70323AF5441B81E85FBEF145141CDCCCC4C21AF54417B14AE47F81451418FC2F58820AF5441D12ED589FA145141D83F994920AF544142CD716D01155141EE0651881FAF5441070DB93606155141EC28B50A1EAF544152B81E9510155141000000D01AAF5441666666F61E1551413333332315AF54415C8FC2A5251551410AD7A38013AF544150E765592B1551412458222D14AF5441B005B96E2D155141FA91286C14AF5441854F53CC301551418251045C14AF5441E17A144E351551416666664614AF5441E238740838155141D3C00F8414AF54414FA532F33C155141B47532F314AF544123266EC643155141F9EEBF0815AF5441713D0AA744155141B81E850B15AF5441AE47E16A5415514185EB513813AF54414D86A11463155141B93B46C510AF5441D7521FD563155141FA901EA510AF544148E17AA46B15514185EB51A80EAF54411A6715836F1551414D073E5D0DAF5441FD79A2007615514191FEEA310BAF54416E3D39F074155141718C896908AF54416666664674155141D7A370AD06AF544172DE7DBB6F155141FD10DF6A07AF5441A093B96E6C15514119A37BF407AF5441745EA1EC6515514157A540A709AF54419A9999895F1551411F85EB510BAF54410AD7A3505F15514148E17AF408AF54410C00EFFE5E155141F000FE3A07AF5441288A27EC5C1551419B040A07FCAE54410D97EAC15C1551412DD83E9AFAAE54419052A4704F1551411C6490A2FBAE5441FE54AF784B1551415C504A35FCAE5441D7A370ED4715514185EB51B8FCAE54419EF15A9A46155141E5C55770FDAE5441F978151E45155141F4A2B83EFEAE5441D5253E7A3A155141B0741F55FFAE5441E81A0324301551416B04AAFAFFAE544114AE47212D155141AE47E12A00AF544137333A992B1551417AA39A4900AF544101AD71AD21155141262AA51001AF5441087FB7E815155141D7DC32C402AF5441713D0A67101551410000009003AF54418FC2F538F7145141CDCCCCBC07AF5441CDCCCCACF614514114AE47C10CAF5441D7A3708DEA14514185EB511813AF5441BE16150EDB145141212A661619AF54411022BA38E01451417AF29BB319AF5441C3F5289CE914514114AE47D11AAF544148E17AF4F514514114AE47B118AF54419A44BD5AF614514104C553C519AF5441333333B3F6145141C3F5280C1BAF544114A0DAA9F014514188D36EE21CAF5441552BD733E9145141802DAF271FAF544127D8FF8FDE145141AA645D1F22AF5441A4F57DA7D01451416F59D1A424AF5441B38C7C72D0145141ED3E6DAE24AF544106D23323D014514102B0CCBC24AF5441DF765B6FC61451415EAC9AC928AF54410D36B7BEBC14514147A0CDBC2BAF54411A0815DEB51451412989F6382CAF544173DB1D25AA14514148B29A692BAF5441866E1BF7A2145141F53795C32AAF5441E17A146EA01451418FC2F5882AAF5441713D0AC7941451415C8FC21529AF5441D7A3706D8E14514114AE47612AAF5441333333438B145141C3F528EC2CAF5441935F141BA4145141487CD9C42FAF5441EB86711DA4145141688F1DC52FAF54410826B3E3A7145141BE7E376B2EAF5441E17A14FEAB145141333333F32CAF544105B19270AF145141D603980E2DAF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985321 - 528843
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000230000008EA66D0DE1065141D86D45878F775441C3F5286CE00651418FC2F56890775441BEC36CF3DE0651417CDC935A92775441713D0A47DC065141295C8FE295775441CF9811F5DA065141C8F4EA789777544133180F6BD80651414EFA5C8C9A77544133392E22D9065141AEDC6A549B7754411CEF02F7DA0651413D12ED0D9C7754413D65FA81DD0651418912C6009D775441BC65B916DF065141633D2E959D7754418A3DFABBE206514192BA4BC9977754415128796DE706514184DE634B90775441173E0B12E8065141FF3AF13E8F7754417B14AEC7ED065141EC51B8EE857754410ADC9BE3F2065141E3587D487E77544160019617F70651412106A9D77777544179742F1AF80651410B5E95497677544122081505FA065141510AEB557377544114AE474100075141CDCCCCBC697754416A155842010751412801C33D6877544152B81E050007514133333383677754410ED497EBFC0651413B93C4FC65775441388F7A42FC06514113A4C5BA657754417961B33DF9065141AE56C2666B775441D7A370CDF8065141C3F5283C6C775441C9187A52F70651418EC33F716E77544148E17AC4EF06514152B81EB5797754419ABE997BED0651410701C4EB7C7754414EF36572ED065141D38F1CF97C775441F6285CDFEB065141EC51B84E7F77544136FFDF8FE9065141EF85729B8277544172525776E60651418521FB89877754419A999929E5065141F6285C9F8977544152B81E35E3065141333333838C7754418EA66D0DE1065141D86D45878F775441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000295C8F4201075141D7A3703D6877544152B81E05000751413333338367775441295C8F42FC0651419A9999A965775441D7A370CDF8065141C3F5283C6C77544148E17AC4EF06514152B81EB5797754417B14AE77ED06514114AE47F17C775441F6285CDFEB065141EC51B84E7F7754419A999959E90651418FC2F5E8827754419A999929E5065141F6285C9F8977544152B81E35E3065141333333838C775441C3F5286CE00651418FC2F56890775441713D0A47DC065141295C8FE2957754419A999939D80651411F85EBC19A775441D7A370BDD7065141713D0A579B7754413D0AD7B3D60651415C8FC2959C775441D7A3703DD50651419A9999299E7754410AD7A330D4065141CDCCCC9C9F77544152B81EB5D306514114AE4761A07754410AD7A350D3065141D7A3708DA2775441A4703DCAD3065141333333D3A3775441F6285C9FD4065141F6285CAFA4775441AE47E12AD80651418FC2F518A6775441F6285CCFD806514185EB51C8A777544152B81EF5D90651411F85EB11A677544114AE4711DF065141713D0A979D775441EC51B81EE6065141D7A3706D927754417B14AEC7ED065141EC51B8EE8577544152B81E95F3065141EC51B83E7D77544114AE474100075141CDCCCCBC69775441295C8F4201075141D7A3703D68775441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985321 - 529243
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000230000008EA66D0DE1065141D86D45878F775441C3F5286CE00651418FC2F56890775441BEC36CF3DE0651417CDC935A92775441713D0A47DC065141295C8FE295775441CF9811F5DA065141C8F4EA789777544133180F6BD80651414EFA5C8C9A77544133392E22D9065141AEDC6A549B7754411CEF02F7DA0651413D12ED0D9C7754413D65FA81DD0651418912C6009D775441BC65B916DF065141633D2E959D7754418A3DFABBE206514192BA4BC9977754415128796DE706514184DE634B90775441173E0B12E8065141FF3AF13E8F7754417B14AEC7ED065141EC51B8EE857754410ADC9BE3F2065141E3587D487E77544160019617F70651412106A9D77777544179742F1AF80651410B5E95497677544122081505FA065141510AEB557377544114AE474100075141CDCCCCBC697754416A155842010751412801C33D6877544152B81E050007514133333383677754410ED497EBFC0651413B93C4FC65775441388F7A42FC06514113A4C5BA657754417961B33DF9065141AE56C2666B775441D7A370CDF8065141C3F5283C6C775441C9187A52F70651418EC33F716E77544148E17AC4EF06514152B81EB5797754419ABE997BED0651410701C4EB7C7754414EF36572ED065141D38F1CF97C775441F6285CDFEB065141EC51B84E7F77544136FFDF8FE9065141EF85729B8277544172525776E60651418521FB89877754419A999929E5065141F6285C9F8977544152B81E35E3065141333333838C7754418EA66D0DE1065141D86D45878F775441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000295C8FE2FD065141666666D678775441295C8F42010751415C8FC21573775441000000A005075141AE47E1DA6B7754419A99991906075141666666666B775441295C8F4201075141D7A3703D6877544114AE474100075141CDCCCCBC6977544152B81E95F3065141EC51B83E7D7754417B14AEC7ED065141EC51B8EE85775441EC51B81EE6065141D7A3706D9277544114AE4711DF065141713D0A979D7754417B14AE27E7065141D7A370FDA07754417B14AEE7F306514100000090A67754411F85EB81FF0651415C8FC2458F77544152B81EC5FB065141666666E686775441F6285C0FF906514114AE477181775441295C8FE2FD065141666666D678775441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985321 - 1015427
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000230000008EA66D0DE1065141D86D45878F775441C3F5286CE00651418FC2F56890775441BEC36CF3DE0651417CDC935A92775441713D0A47DC065141295C8FE295775441CF9811F5DA065141C8F4EA789777544133180F6BD80651414EFA5C8C9A77544133392E22D9065141AEDC6A549B7754411CEF02F7DA0651413D12ED0D9C7754413D65FA81DD0651418912C6009D775441BC65B916DF065141633D2E959D7754418A3DFABBE206514192BA4BC9977754415128796DE706514184DE634B90775441173E0B12E8065141FF3AF13E8F7754417B14AEC7ED065141EC51B8EE857754410ADC9BE3F2065141E3587D487E77544160019617F70651412106A9D77777544179742F1AF80651410B5E95497677544122081505FA065141510AEB557377544114AE474100075141CDCCCCBC697754416A155842010751412801C33D6877544152B81E050007514133333383677754410ED497EBFC0651413B93C4FC65775441388F7A42FC06514113A4C5BA657754417961B33DF9065141AE56C2666B775441D7A370CDF8065141C3F5283C6C775441C9187A52F70651418EC33F716E77544148E17AC4EF06514152B81EB5797754419ABE997BED0651410701C4EB7C7754414EF36572ED065141D38F1CF97C775441F6285CDFEB065141EC51B84E7F77544136FFDF8FE9065141EF85729B8277544172525776E60651418521FB89877754419A999929E5065141F6285C9F8977544152B81E35E3065141333333838C7754418EA66D0DE1065141D86D45878F775441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000295C8FE2FD065141666666D678775441295C8F42010751415C8FC21573775441000000A005075141AE47E1DA6B7754419A99991906075141666666666B775441295C8F4201075141D7A3703D6877544114AE474100075141CDCCCCBC6977544152B81E95F3065141EC51B83E7D7754417B14AEC7ED065141EC51B8EE85775441EC51B81EE6065141D7A3706D9277544114AE4711DF065141713D0A979D7754417B14AE27E7065141D7A370FDA07754417B14AEE7F306514100000090A67754411F85EB81FF0651415C8FC2458F77544152B81EC5FB065141666666E686775441F6285C0FF906514114AE477181775441295C8FE2FD065141666666D678775441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985321 - 3833269
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000230000008EA66D0DE1065141D86D45878F775441C3F5286CE00651418FC2F56890775441BEC36CF3DE0651417CDC935A92775441713D0A47DC065141295C8FE295775441CF9811F5DA065141C8F4EA789777544133180F6BD80651414EFA5C8C9A77544133392E22D9065141AEDC6A549B7754411CEF02F7DA0651413D12ED0D9C7754413D65FA81DD0651418912C6009D775441BC65B916DF065141633D2E959D7754418A3DFABBE206514192BA4BC9977754415128796DE706514184DE634B90775441173E0B12E8065141FF3AF13E8F7754417B14AEC7ED065141EC51B8EE857754410ADC9BE3F2065141E3587D487E77544160019617F70651412106A9D77777544179742F1AF80651410B5E95497677544122081505FA065141510AEB557377544114AE474100075141CDCCCCBC697754416A155842010751412801C33D6877544152B81E050007514133333383677754410ED497EBFC0651413B93C4FC65775441388F7A42FC06514113A4C5BA657754417961B33DF9065141AE56C2666B775441D7A370CDF8065141C3F5283C6C775441C9187A52F70651418EC33F716E77544148E17AC4EF06514152B81EB5797754419ABE997BED0651410701C4EB7C7754414EF36572ED065141D38F1CF97C775441F6285CDFEB065141EC51B84E7F77544136FFDF8FE9065141EF85729B8277544172525776E60651418521FB89877754419A999929E5065141F6285C9F8977544152B81E35E3065141333333838C7754418EA66D0DE1065141D86D45878F775441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000295C8FE2FD065141666666D678775441295C8F42010751415C8FC21573775441000000A005075141AE47E1DA6B7754419A99991906075141666666666B775441295C8F4201075141D7A3703D6877544114AE474100075141CDCCCCBC6977544152B81E95F3065141EC51B83E7D7754417B14AEC7ED065141EC51B8EE85775441EC51B81EE6065141D7A3706D9277544114AE4711DF065141713D0A979D7754417B14AE27E7065141D7A370FDA07754417B14AEE7F306514100000090A67754411F85EB81FF0651415C8FC2458F77544152B81EC5FB065141666666E686775441F6285C0FF906514114AE477181775441295C8FE2FD065141666666D678775441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>821736 - 3311374
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000500000001030000000100000010000000E17A149E31DE50418FC2F5F8CC29544185EB511846DE5041C3F528BCD12954410AD7A3004CDE504148E17A24F7295441AE47E1DA5BDE5041B81E85EBF32954419A9999B95BDE5041F6285C9FE42954411F85EB015DDE5041EC51B82ED8295441000000F05CDE504185EB51B8D129544152B81E555CDE504114AE4751CB295441AE47E1DA5BDE5041000000F0C7295441333333F35BDE5041F6285C0FC329544152B81E6549DE5041C3F5289CBB295441713D0AD74CDE5041E17A146EB529544148E17A9430DE5041666666B6AB295441000000802EDE5041AE47E17AC5295441713D0AF72DDE5041F6285C1FCC295441E17A149E31DE50418FC2F5F8CC2954410103000000030000007A00000048E17A446EDE50413D0AD7B3B529544152B81EB571DE504148E17A14BD295441EC51B8EE75DE5041AE47E1FABF2954417B14AE9778DE5041EC51B84EC1295441AE47E15A7FDE5041EC51B82EC42954416666669685DE5041B81E858BC629544114AE47018BDE5041F6285CAFC82954417B14AE8791DE5041A4703DCACA295441AE47E1CA93DE5041333333A3CB295441713D0AD795DE5041EC51B83ECE29544148E17AE496DE5041D7A370FDCE2954417B14AE979FDE504148E17A74D2295441D7A3708DA0DE50410AD7A300D329544166666616A1DE50417B14AEA7D3295441CDCCCC5CA1DE50411F85EBA1D4295441A4703D0AA2DE504185EB5148D8295441D7A3705DA2DE504185EB5128DA29544133333393A2DE5041295C8F32DE29544185EB5198A2DE50413D0AD7F3E02954413D0AD7A3A2DE5041F6285CAFE2295441713D0AD7A2DE5041AE47E1DAE829544148E17AE4A2DE50410AD7A3E0EB2954413D0AD7E3A2DE5041B81E85EBEE29544152B81E15ABDE5041AE47E14AEB295441F6285CAFB7DE504166666636E5295441E17A149EBEDE504148E17AB4E22954413D0AD7B3BDDE5041295C8F82E029544114AE47F1BCDE5041AE47E1BADE295441666666A6BCDE50413D0AD793DD295441C3F5281CBCDE504114AE47D1DB295441F6285C5FBCDE5041EC51B8FED929544152B81E85BDDE5041C3F528FCD52954411F85EB71BEDE50418FC2F508D2295441A4703D0ABFDE5041D7A3708DCE295441AE47E16ABFDE5041000000F0CA2954415C8FC255BFDE5041EC51B86EC9295441A4703DEABFDE50413D0AD753C529544152B81E65C0DE5041F6285C3FC1295441713D0A27BCDE504148E17A54C32954413D0AD703BADE5041713D0A67C4295441EC51B86EB6DE5041B81E853BC62954411F85EB11B3DE50418FC2F5D8C7295441EC51B86EB0DE50419A9999C9C8295441713D0A87AEDE5041EC51B88EC929544185EB5198ACDE50418FC2F558CA295441B81E859BABDE50419A9999A9CA295441000000F0A8DE504133333383CB295441B81E856BA1DE50418FC2F578CE29544166666626A1DE50418FC2F528CE29544166666676A3DE504133333333CD2954410AD7A340A5DE50410AD7A3A0CC295441CDCCCC0CA7DE50417B14AEE7CB295441AE47E1FAA8DE504114AE4731CB295441EC51B86EABDE5041D7A3701DCA295441AE47E16AACDE5041E17A14CEC9295441713D0A87AEDE5041D7A370FDC829544114AE4741B0DE50419A999949C8295441D7A370DDB2DE5041E17A144EC7295441CDCCCC4CB6DE5041C3F528BCC5295441713D0AD7B9DE50410AD7A300C4295441C3F528ECBBDE5041000000E0C22954411F85EB71C0DE5041F6285C5FC029544185EB51C8C0DE5041713D0AE7BD2954415C8FC2A5C0DE5041000000F0BC2954417B14AE57C0DE5041EC51B81EBC29544148E17AE4BFDE50415C8FC255BB29544152B81E85BEDE504148E17A14BA29544148E17A24BDDE504133333363B92954411F85EB91B8DE5041C3F5280CB8295441E17A14CEB4DE5041D7A370FDB62954410AD7A3E0B3DE5041713D0A87B62954411F85EBA1B2DE5041B81E858BB52954413D0AD753B2DE504166666676B42954415C8FC205B2DE504133333363B229544148E17AB4B1DE50415C8FC2C5AF29544152B81E35B1DE5041295C8F82AA29544185EB51F8B0DE504100000070A9295441E17A14AEB0DE5041D7A3707DA8295441AE47E12AB0DE5041000000D0A6295441B81E856BAEDE5041713D0A77A32954418FC2F548ADDE5041295C8FE2A1295441A4703DEAABDE504148E17A74A0295441713D0AF7AADE504185EB51E89F29544133333313A8DE50419A9999B99E295441C3F5285CA6DE5041295C8FF29D295441EC51B81EA4DE504185EB51E89C295441AE47E17AA2DE5041B81E85FB9B2954419A999949A1DE50418FC2F5E89A295441B81E85BBA0DE5041000000309A2954418FC2F528A0DE5041E17A14AE98295441B81E852B9FDE5041EC51B84E9A2954419A9999099EDE504185EB51D89B295441F6285C4F9DDE50417B14AE679C295441EC51B82E9CDE50411F85EBB19D295441A4703DFA9ADE5041D7A370BD9E2954411F85EBE199DE50418FC2F5789F295441E17A14CE98DE504133333353A02954413D0AD7D397DE5041AE47E1EAA0295441333333C396DE50419A9999B9A129544148E17AE495DE5041D7A3705DA22954413333338395DE50418FC2F518A22954410AD7A39093DE504148E17AA4A4295441295C8FF291DE50411F85EBA1A6295441295C8F5290DE5041713D0A67A82954419A9999298CDE5041713D0AC7AC29544148E17AE489DE50411F85EB91AE295441D7A3703D88DE50417B14AEC7AF295441D7A370FD85DE504166666626B12954410AD7A35083DE5041B81E851BB22954418FC2F5C880DE50410AD7A3C0B22954419A9999D97FDE5041295C8F02B42954413D0AD7037EDE50418FC2F5C8B4295441000000A07BDE504148E17AA4B529544148E17AE479DE50419A9999A9B52954418FC2F5D877DE5041CDCCCCACB5295441000000C076DE504166666686B5295441A4703DBA75DE5041666666C6B52954415C8FC2B574DE50415C8FC235B6295441E17A145E73DE5041C3F5284CB72954419A99996972DE50415C8FC275B7295441C3F528BC71DE504185EB51F8B529544148E17A446EDE50413D0AD7B3B5295441100000001F85EB6184DE50419A9999F9B9295441CDCCCC8C84DE5041C3F5280CB92954411F85EBE184DE5041713D0AB7B72954417B14AEA784DE50410AD7A3E0B6295441E17A147E86DE5041CDCCCC9CB6295441EC51B8AE85DE5041C3F5285CB92954411F85EBC185DE5041295C8FC2BB295441EC51B84E85DE5041713D0A27BE295441CDCCCC2C88DE504185EB51F8BD295441D7A3707D88DE5041666666F6C22954418FC2F5E87FDE5041E17A146EC3295441000000A07FDE5041295C8F82BE295441E17A149E83DE5041295C8F42BE2954419A99998983DE50415C8FC205BD295441000000B083DE5041E17A148EBC2954411F85EB6184DE50419A9999F9B929544105000000E17A147E8EDE504152B81E35BF2954418FC2F51894DE50411F85EBE1BE2954416666667694DE5041F6285C0FC52954418FC2F5D88EDE50413D0AD763C5295441E17A147E8EDE504152B81E35BF29544101030000000100000010000000CDCCCC2C63DE504133333363B1295441AE47E12A62DE50413D0AD7C3B4295441C3F528FC5FDE504148E17AC4BC295441F6285CEF5DDE5041C3F5285CC32954413D0AD7C35DDE5041000000D0C7295441D7A3708D5EDE504133333323C7295441E17A148E60DE5041AE47E1AAC32954418FC2F5F861DE5041CDCCCC5CC229544148E17AD46BDE50419A999979BC295441000000E06DDE50415C8FC2E5BB295441713D0AF76FDE50411F85EB21BC295441295C8FF26CDE50419A999999B5295441666666566BDE5041A4703DEAB2295441295C8F6269DE504148E17A94B1295441295C8F6263DE5041AE47E1AAB0295441CDCCCC2C63DE504133333363B129544101030000000100000025000000D7A3703D6CDE5041CDCCCC5CBD2954411F85EB9162DE50410AD7A330C329544152B81E6561DE50418FC2F558C4295441AE47E18A5FDE5041B81E858BC729544185EB51485EDE5041B81E850BCB295441295C8FD25EDE50413D0AD7A3D1295441A4703DEA5EDE504166666636D8295441A4703DCA5DDE5041D7A370BDE32954410000009087DE5041C3F528CCDB2954411F85EB718DDE504166666696E92954417B14AE978DDE50419A999999EC295441E17A146E8FDE5041EC51B8FEF1295441CDCCCCBC91DE50418FC2F528F6295441000000D0A2DE5041E17A144EF2295441D7A3702DA2DE504114AE47D1EF2954410AD7A3E0A1DE5041EC51B8DEEB295441B81E85BBA1DE5041AE47E11AE729544152B81E85A1DE504100000080E2295441713D0A57A1DE504148E17AC4DC29544185EB5128A1DE5041A4703D1ADA295441E17A142EA1DE50418FC2F568D82954419A999979A0DE50411F85EBC1D4295441EC51B80EA0DE50410AD7A3E0D32954415C8FC2359FDE5041E17A143ED32954415C8FC27596DE504114AE47E1CF2954413333338395DE504148E17A34CF2954410000006093DE5041713D0AA7CC29544114AE478192DE504185EB5128CC295441C3F528AC8ADE5041EC51B88EC9295441F6285C1F85DE5041D7A3707DC7295441EC51B8CE7EDE5041B81E853BC5295441333333C379DE5041666666C6C22954417B14AE7775DE50411F85EBD1C02954419A99993971DE5041EC51B8DEBD29544185EB51A86FDE5041A4703D1ABD295441D7A370FD6DDE5041D7A370EDBC295441D7A3703D6CDE5041CDCCCC5CBD295441010300000001000000670000009A9999C9B3DE50413D0AD7238B295441B81E858BB2DE50417B14AEE78B295441EC51B8FEB0DE5041EC51B8FE8C2954417B14AE47AFDE5041295C8FD28D295441CDCCCCFCADDE504152B81E258F295441D7A3702DADDE5041EC51B8AE8F295441E17A14DEAADE5041A4703DDA90295441F6285CCFA8DE50418FC2F50892295441295C8F42A7DE5041D7A3701D932954411F85EBA1A5DE5041E17A14EE94295441A4703DAAA4DE50418FC2F5D8952954411F85EBC1A3DE5041295C8F72962954411F85EBD1A2DE504114AE47C196295441EC51B8FEA1DE504152B81E359729544100000020A1DE5041666666069829544152B81EC5A0DE5041CDCCCC2C9829544152B81E65A1DE504114AE47D199295441713D0AD7A1DE50415C8FC2659A295441B81E85EBA2DE5041EC51B85E9B29544166666676A4DE5041D7A3703D9C295441C3F528ACA6DE50413D0AD7439D295441F6285C5FA8DE50418FC2F5089E2954410AD7A340ABDE5041295C8F429F29544166666676ABDE5041000000609F2954413D0AD763ACDE5041000000E09F295441CDCCCCDCADDE50417B14AE67A1295441F6285C0FAFDE50411F85EB11A3295441D7A370DDB0DE5041713D0A87A62954411F85EBB1B1DE5041F6285C3FA9295441333333F3B1DE504148E17A64AA29544133333373B2DE504114AE47B1AF2954413D0AD7C3B2DE50419A999949B229544100000010B3DE5041E17A144EB42954419A999949B3DE5041B81E851BB529544185EB5148B4DE50413D0AD7E3B529544133333313B5DE50419A999949B6295441713D0AC7B8DE50413D0AD753B7295441AE47E16ABDDE5041000000B0B8295441333333F3BEDE504152B81E75B9295441C3F5287CC0DE5041C3F528DCBA2954415C8FC205C1DE5041CDCCCCCCBB29544114AE4761C1DE50410AD7A3C0BC295441A4703D8AC1DE5041713D0AE7BD29544114AE4731C1DE50411F85EB71C029544148E17A24C1DE504100000050C129544166666616C0DE50415C8FC275C9295441B81E852BC0DE504148E17AF4CA29544185EB51C8BFDE50417B14AEA7CE295441E17A142EBFDE5041F6285C2FD2295441EC51B83EBEDE5041CDCCCC2CD6295441B81E851BBDDE5041713D0A27DA295441000000E0BCDE50413D0AD7C3DB295441D7A3704DBDDE5041295C8F42DD295441666666A6BDDE5041A4703D7ADE29544148E17A64BEDE50417B14AE37E02954411F85EB61BFDE50413D0AD793E22954413D0AD733C6DE50418FC2F538E02954411F85EB71C6DE5041AE47E12AE02954419A9999B9D5DE504185EB51A8DC295441D7A370CDD4DE5041295C8FA2CF295441EC51B89EC9DE5041E17A14CECA295441295C8F32C2DE5041A4703D4ABF29544152B81EF5C3DE50413D0AD713BC295441E17A14DEC9DE50413D0AD783BA2954417B14AEE7D2DE5041713D0AF7B72954419A999969DDDE5041713D0A07B52954417B14AE07E0DE5041F6285CAFAF2954417B14AEF7E1DE5041D7A370DDAD2954418FC2F518E4DE5041D7A3706DAC295441F6285CBFE7DE50415C8FC265AB2954413D0AD713ECDE504100000080A929544148E17A24EEDE504100000050A8295441B81E85CBF4DE50418FC2F5F8A6295441295C8F72F6DE50417B14AE27A9295441B81E854BF9DE504133333323A9295441713D0A97FCDE5041CDCCCCCCA62954413D0AD793FCDE50415C8FC2E5A52954417B14AE97FADE5041713D0A87A3295441B81E852BF9DE5041713D0AE79F2954419A9999B9F6DE5041C3F5284C9C295441666666A6F2DE5041000000E0942954410AD7A380EFDE5041295C8FA29329544185EB5188EDDE50415C8FC22592295441666666E6E8DE5041E17A149E8F29544100000070E5DE50417B14AE578E2954415C8FC2D5E2DE5041F6285C1F8D295441713D0A37DEDE50410AD7A3B08B29544100000070DADE5041713D0A378A295441A4703D0AD5DE50416666669685295441A4703D6AD2DE5041295C8F52822954418FC2F528D2DE50419A9999F981295441AE47E1BAD0DE504148E17A1482295441A4703D1ACCDE5041AE47E11A8129544114AE4731C6DE5041AE47E1FA822954411F85EBF1C1DE5041295C8F8284295441713D0A37BFDE50410AD7A3108629544148E17A94BDDE504152B81ED58629544133333313BCDE5041F6285C9F87295441E17A145EBADE5041EC51B84E882954419A999919B8DE5041CDCCCC3C89295441A4703D4AB6DE5041D7A3709D8929544148E17A14B5DE5041B81E858B8A2954419A9999C9B3DE50413D0AD7238B295441
+</a>
+
+<b>
+01060000000100000001030000000100000044000000BFAFCFA6B2DE5041F666755AB129544148E17AB4B1DE50415C8FC2C5AF29544152B81E35B1DE5041295C8F82AA29544185EB51F8B0DE504100000070A9295441E17A14AEB0DE5041D7A3707DA8295441AE47E12AB0DE5041000000D0A6295441B81E856BAEDE5041713D0A77A32954418FC2F548ADDE5041295C8FE2A1295441A4703DEAABDE504148E17A74A0295441713D0AF7AADE504185EB51E89F295441D3476CC89DDE50411B342389A0295441EC8EDC1898DE5041A1B14D25A4295441A7E429C496DE5041E381FBA0A6295441029B65EC93DE50413D34A6B0AA29544100D74D938BDE504104E6F673B8295441EB7FD4A48EDE5041CB696EF3BE2954411AA3AE3797DE50414BDD53DCBE295441E243ECFD96DE5041C14A4C93C029544179721F8E94DE5041BD7CB6EFC0295441F349D92F95DE5041127A008AC5295441F430A40195DE50417F9C59B6C629544165A22DD18FDE504139BAA063C7295441128CAE088BDE5041F9731358C729544114AE47018BDE5041F6285CAFC82954413FC8BDC993DE5041513FF395CB295441713D0AD795DE5041EC51B83ECE29544148E17AE496DE5041D7A370FDCE2954417B14AE979FDE504148E17A74D2295441D7A3708DA0DE50410AD7A300D329544166666616A1DE50417B14AEA7D3295441CDCCCC5CA1DE50411F85EBA1D4295441A4703D0AA2DE504185EB5148D8295441D7A3705DA2DE504185EB5128DA29544133333393A2DE5041295C8F32DE29544185EB5198A2DE50413D0AD7F3E02954413D0AD7A3A2DE5041F6285CAFE2295441713D0AD7A2DE5041AE47E1DAE829544148E17AE4A2DE50410AD7A3E0EB2954413D0AD7E3A2DE5041B81E85EBEE29544154524995A9DE5041308D96BAE9295441AB1998BAB4DE5041ED953952E3295441F8484CB1B9DE5041D15B86AADF295441A9E39C45BBDE5041E9FD9E23DD29544120EDC043BCDE5041BABDFE49DB295441056453E2BCDE5041A8B7B5B3DB295441B81E851BBDDE5041713D0A27DA295441EC51B83EBEDE5041CDCCCC2CD6295441E17A142EBFDE5041F6285C2FD229544185EB51C8BFDE50417B14AEA7CE295441B81E852BC0DE504148E17AF4CA29544166666616C0DE50415C8FC275C929544148E17A24C1DE504100000050C129544114AE4731C1DE50411F85EB71C029544170C18061C1DE50416C321811BF29544185EB51C8C0DE5041713D0AE7BD295441D6024F2BC0DE50419AA591BBBD29544161100F16BFDE50419B09378FBC295441D9CA99D2BDDE504112C4C14BBB295441158C8404BCDE50419DD18136BA295441C8A3541FBADE50414F85AC7DB92954411F85EB91B8DE5041C3F5280CB829544183263FC9B6DE50413DBCA4C4B629544133333313B5DE50419A999949B629544185EB5148B4DE50413D0AD7E3B52954419A999949B3DE5041B81E851BB529544100000010B3DE5041E17A144EB42954413D0AD7C3B2DE50419A999949B2295441BFAFCFA6B2DE5041F666755AB1295441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985412 - 2506896
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000021000000D074C32448EF504190C8DEF9A9785441F4B01E4B50EF5041B6128054A6785441CAC7333157EF50416ED81626A3785441DBDEDC7557EF5041909D50D8A278544109B283B75EEF50418A5BD7F89B7854417250B3ED65EF50419DF3088897785441FE5C0A3F75EF50419EDD8EA790785441CE2DAE107CEF50419553BFF78D7854411BC197878BEF5041D0595686897854411F1C9D1E92EF50412F27219486785441968C54A0A1EF504135DF11A58178544123C1E93DA4EF5041D58943877F785441B64BBF7A91EF5041F389F09F7C7854418CE0F44B91EF50411A6A97867C785441CE89860290EF504168D7E6198178544119D85E9389EF5041254CF6747F785441FEAF638474EF50411652AC028278544111C7B5D469EF50412AB8268083785441E0FCFB2561EF5041A95846F4847854419AB545495CEF50412864E21887785441154F51B358EF5041BD9179AD887854414B0D997157EF5041285DF83489785441A8F95DBF52EF5041AA31CA3C8A78544142DD95F64FEF50411506F3478A785441B1746D7C4DEF5041E58917178A785441679AADE948EF50413AC723688978544167D0F0F145EF50414B5B17F78878544108A5394D45EF504106EF9D549278544113EBD18A45EF50416D27F4909878544100D4BCF045EF5041FC7B2D389D785441F1A44CB346EF5041B6EBD6E4A1785441AA0BFE1648EF50417B716435AA785441D074C32448EF504190C8DEF9A9785441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000713D0A775CEF50413D0AD793657854413333335342EF5041EC51B86E60785441295C8FE23FEF5041CDCCCC4C607854415C8FC2653EEF5041295C8FA261785441000000C03AEF5041EC51B8FE65785441E17A146E36EF5041295C8F226D785441C3F528EC30EF5041C3F528CC777854415C8FC23530EF504185EB51C87A78544152B81EB531EF5041F6285C3F847854410000002039EF50418FC2F5C886785441A4703D5A3FEF5041F6285C5F87785441F6285C3F44EF50410000003088785441C3F5282C46EF50418FC2F5E888785441B81E855B4BEF50419A9999D9897854418FC2F5084FEF50413D0AD7438A785441C3F5285C52EF5041295C8F528A785441E17A148E57EF5041EC51B82E89785441295C8F4261EF50417B14AEE784785441E17A144E5CEF5041AE47E14A75785441666666365AEF5041295C8F3270785441713D0A775CEF50413D0AD79365785441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985412 - 5239180
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000021000000D074C32448EF504190C8DEF9A9785441F4B01E4B50EF5041B6128054A6785441CAC7333157EF50416ED81626A3785441DBDEDC7557EF5041909D50D8A278544109B283B75EEF50418A5BD7F89B7854417250B3ED65EF50419DF3088897785441FE5C0A3F75EF50419EDD8EA790785441CE2DAE107CEF50419553BFF78D7854411BC197878BEF5041D0595686897854411F1C9D1E92EF50412F27219486785441968C54A0A1EF504135DF11A58178544123C1E93DA4EF5041D58943877F785441B64BBF7A91EF5041F389F09F7C7854418CE0F44B91EF50411A6A97867C785441CE89860290EF504168D7E6198178544119D85E9389EF5041254CF6747F785441FEAF638474EF50411652AC028278544111C7B5D469EF50412AB8268083785441E0FCFB2561EF5041A95846F4847854419AB545495CEF50412864E21887785441154F51B358EF5041BD9179AD887854414B0D997157EF5041285DF83489785441A8F95DBF52EF5041AA31CA3C8A78544142DD95F64FEF50411506F3478A785441B1746D7C4DEF5041E58917178A785441679AADE948EF50413AC723688978544167D0F0F145EF50414B5B17F78878544108A5394D45EF504106EF9D549278544113EBD18A45EF50416D27F4909878544100D4BCF045EF5041FC7B2D389D785441F1A44CB346EF5041B6EBD6E4A1785441AA0BFE1648EF50417B716435AA785441D074C32448EF504190C8DEF9A9785441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000713D0A775CEF50413D0AD793657854413333335342EF5041EC51B86E60785441295C8FE23FEF5041CDCCCC4C607854415C8FC2653EEF5041295C8FA261785441000000C03AEF5041EC51B8FE65785441E17A146E36EF5041295C8F226D785441C3F528EC30EF5041C3F528CC777854415C8FC23530EF504185EB51C87A78544152B81EB531EF5041F6285C3F847854410000002039EF50418FC2F5C886785441A4703D5A3FEF5041F6285C5F87785441F6285C3F44EF50410000003088785441C3F5282C46EF50418FC2F5E888785441B81E855B4BEF50419A9999D9897854418FC2F5084FEF50413D0AD7438A785441C3F5285C52EF5041295C8F528A785441E17A148E57EF5041EC51B82E89785441295C8F4261EF50417B14AEE784785441E17A144E5CEF5041AE47E14A75785441666666365AEF5041295C8F3270785441713D0A775CEF50413D0AD79365785441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985468 - 26757
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000001000000390000003610C2ADD0AB50416081A5CD63D4544151898580D1AB5041BAC7454265D454410822F989D8AB50416AC2AD4A6FD45441316F077ADCAB5041D0E54CA974D45441FA813F31DEAB5041562E79F876D4544195ED3B16DFAB5041F19975DD77D454415DB967D8E1AB50415CA3EF727AD45441BA2BD5EDE3AB50415E359A667CD454419C0C938BE4AB50415D40DCEA7CD4544196381947EAAB504131A7CE7981D45441BC630189ECAB5041A9A709FD82D454411004D668EEAB50411BE5F2DA83D45441AEA887B7F0AB5041163F99AF84D45441577B0A16F1AB5041386FADD084D4544174866614F3AB504171CFD51285D45441AB297086F8AB50417E3295D485D454418FC2F568FBAB5041D7A3703D86D454414E79E7B002AC5041379642F787D45441A94EB63504AC5041B779B56088D4544197B64F8807AC5041081FBB1D89D454410140B60F0AAC5041D221529D89D45441AE7112AA19AC5041DF1D910964D454417627BA6617AC504197B791AC62D45441F0330AE414AC50414B4801D460D45441B317250F12AC50416038419C5ED45441432429EA10AC5041B929FAAF5DD454411E53529D0EAC50418952BABB5BD4544189D7DA5E0DAC5041CCDF42A45AD4544115918E0F09AC50412FB6CCC156D45441E340FA2806AC50413AD3680454D454414FA53C6604AC504183E04F4C52D454414A21956D03AC5041A0B3034951D45441554B4FCBFCAB50412B9C7F7949D4544145D1839EF9AB504142F8219945D454413EACFC9DF6AB50419A9792B441D45441C5341AF2F4AB5041CF218B5D3FD454417BD704F1F4AB50413010D56A3FD454419F2F43E2F4AB504148315E473FD4544139A36BC8F4AB5041BA9130233FD45441847982A4EEAB504156BE5CF83FD454412FB5DBB9EBAB5041248F536040D45441FB38DE61E3AB50412CE4697241D45441AD6BBC81E1AB5041C73F9A9F41D454415B5F9EDCDDAB50416253940342D45441D6965C07DDAB5041E785E61B42D4544143FC1287D8AB5041918894D242D4544145C3D7B2D6AB504166FA812543D4544152093EC4D5AB5041B5B8754343D45441C7ED6335D4AB5041917FAF8343D4544148FDED60D2AB504189E35F3E44D45441417DD993CEAB5041CA6A4BD245D45441A5DFE671CEAB5041AFD762E045D454412876DB22C8AB5041E945675348D4544157B7D92BC7AB5041D76B698349D45441D79B728BCCAB5041250CFBEA58D454410F8FE9EDCFAB5041D7FE952762D454413610C2ADD0AB50416081A5CD63D45441
+</a>
+
+<b>
+01060000000100000001030000000100000033000000C3F5284C0AAC5041E17A14AE8AD4544152B81E150AAC504148E17AA489D45441F6285C4F07AC50415C8FC22589D454418FC2F568FBAB5041D7A3703D86D45441D7A3700DF1AB5041B81E85CB84D45441F6285C6FEEAB504148E17AE483D45441B81E855BECAB5041B81E85DB82D4544148E17A54E5AB50410AD7A3A07DD45441A4703D4ADFAB50419A99992978D454419A9999F9DAAB5041AE47E1CA72D45441E17A142ED6AB5041B81E85FB6BD4544148E17AC4D1AB5041000000C065D454419A9999D9CFAB50413D0AD73362D454417B14AE57CBAB5041A4703D5A55D4544185EB51A8C8AB5041713D0AC74DD454411F85EB81C7AB504152B81EB54AD454410AD7A350C7AB5041D7A3705D49D4544152B81E15C8AB5041F6285C4F48D45441EC51B87ECCAB50415C8FC29546D45441F6285C5FCFAB50417B14AE8745D45441000000B0D3AB504152B81EB543D45441CDCCCC8CDBAB504152B81E4542D454415C8FC2A5E9AB5041C3F528BC40D45441CDCCCCDCF4AB5041A4703D3A3FD4544114AE4701F3AB504114AE47B13CD45441F6285C5FE9AB504114AE47313ED45441F6285C6FD7AB50415C8FC2753FD454415C8FC265D7AB5041F6285C2F3ED4544152B81EC5D4AB504152B81E853AD45441713D0A07D2AB50410AD7A3803BD45441D7A3706DC6AB5041000000F041D45441666666D6C6AB5041D7A3707D46D4544152B81EB5BFAB5041AE47E13A4CD454418FC2F588C0AB5041E17A14FE4CD454419A999909BFAB504152B81EC54FD45441EC51B8BEBDAB504114AE47B154D45441713D0AF7BDAB50419A99997957D454410AD7A360BFAB5041295C8FC258D45441D7A370DDC0AB50410AD7A3305CD45441713D0AA7C1AB5041D7A370CD5FD454418FC2F548C2AB5041295C8F326AD45441333333F3C2AB504185EB511873D45441CDCCCCFCC3AB50417B14AE7773D45441000000B0C9AB50413333338375D45441A4703DAAD6AB50413D0AD7E37AD454418FC2F538DCAB5041333333F37CD45441713D0AA7ECAB50410000005084D45441333333D3F0AB5041295C8FC285D45441295C8F32FBAB504148E17A3487D454419A99991907AC5041AE47E11A8AD45441C3F5284C0AAC5041E17A14AE8AD45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985550 - 546758
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002000000091D41257D00251417588A6BE5B3B55414C2E6DF4C9025141C61F1ECC623B5541AD31FEABCD025141BE745D4C6C3B5541B6DA906CCE025141E284B3A46D3B55416D1DC9C1CF0251412502A37C703B554124600117D1025141BE8F94F9723B55411B2F843CD302514153B4916F763B55412C73633ED60251412D0633C0783B55412C73633ED6025141EB797104793B5541EBE6A182D60251415A0EB492783B5541006BE26BD6025141D6F5301B793B5541BCD61645D80251415E7770107A3B554110FFB151DC025141737049CF7A3B554140CF0341E3025141544964B97B3B5541D0F5121BE4025141708322987B3B55417D04F127E802514113AE5B84793B5541A0C6D4F1EA0251415A9C4D1D763B55410FA6C415EB025141EF2DB6E0743B554128E3652CEC02514192016406743B554162231039F0025141A96DFDB2743B5541DB1D303EF50251415E3E65A3743B554171DD7C54F9025141C8C62837733B5541154EC9A6FB0251417D790CE9713B55411F5DBF26F8025141A40B36F16D3B5541BD2D76B0F3025141952334E2683B554113B13328F202514182E17F25673B5541DD572279EF025141493D88F1623B5541FA20F070EA025141A0C22A30623B5541252ABE00E30251413A2EB9D4603B55415DF67083D7025141C701EFE85E3B55410FBE1C66D7025141EE2208125F3B554191D41257D00251417588A6BE5B3B5541
+</a>
+
+<b>
+01060000000100000001030000000100000012000000D7A3700DFF025141B81E859B743B5541C3F528BCFB02514114AE4701723B5541713D0A37F70251417B14AE47743B554100000030F402514148E17AD4743B5541AE47E1BAF2025141B81E85DB743B55418FC2F568E302514185EB5198823B5541C3F5281CEB02514114AE47118B3B5541D7A370EDED0251415C8FC2658E3B5541D7A370ADF30251419A9999D98F3B5541A4703D9AF80251417B14AEA78C3B5541713D0AF7FC025141A4703DEA883B55419A999969FE025141333333F3873B5541713D0A27FF0251419A9999F9873B5541713D0AA705035141A4703DDA823B55419A9999A906035141295C8FC2803B55415C8FC255060351417B14AE077E3B55419A9999C904035141B81E854B7B3B5541D7A3700DFF025141B81E859B743B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985550 - 1462170
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002000000091D41257D00251417588A6BE5B3B55414C2E6DF4C9025141C61F1ECC623B5541AD31FEABCD025141BE745D4C6C3B5541B6DA906CCE025141E284B3A46D3B55416D1DC9C1CF0251412502A37C703B554124600117D1025141BE8F94F9723B55411B2F843CD302514153B4916F763B55412C73633ED60251412D0633C0783B55412C73633ED6025141EB797104793B5541EBE6A182D60251415A0EB492783B5541006BE26BD6025141D6F5301B793B5541BCD61645D80251415E7770107A3B554110FFB151DC025141737049CF7A3B554140CF0341E3025141544964B97B3B5541D0F5121BE4025141708322987B3B55417D04F127E802514113AE5B84793B5541A0C6D4F1EA0251415A9C4D1D763B55410FA6C415EB025141EF2DB6E0743B554128E3652CEC02514192016406743B554162231039F0025141A96DFDB2743B5541DB1D303EF50251415E3E65A3743B554171DD7C54F9025141C8C62837733B5541154EC9A6FB0251417D790CE9713B55411F5DBF26F8025141A40B36F16D3B5541BD2D76B0F3025141952334E2683B554113B13328F202514182E17F25673B5541DD572279EF025141493D88F1623B5541FA20F070EA025141A0C22A30623B5541252ABE00E30251413A2EB9D4603B55415DF67083D7025141C701EFE85E3B55410FBE1C66D7025141EE2208125F3B554191D41257D00251417588A6BE5B3B5541
+</a>
+
+<b>
+01060000000100000001030000000100000012000000D7A3700DFF025141B81E859B743B5541C3F528BCFB02514114AE4701723B5541713D0A37F70251417B14AE47743B554100000030F402514148E17AD4743B5541AE47E1BAF2025141B81E85DB743B55418FC2F568E302514185EB5198823B5541C3F5281CEB02514114AE47118B3B5541D7A370EDED0251415C8FC2658E3B554166666666EF02514133333323903B554185EB5168F30251419A9999F9933B5541666666F6F7025141AE47E19A8E3B55411F85EB61FB0251411F85EBF18A3B5541713D0A27FF0251419A9999F9873B5541713D0AA705035141A4703DDA823B55419A9999A906035141295C8FC2803B55415C8FC255060351417B14AE077E3B55419A9999C904035141B81E854B7B3B5541D7A3700DFF025141B81E859B743B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985550 - 3499292
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002000000091D41257D00251417588A6BE5B3B55414C2E6DF4C9025141C61F1ECC623B5541AD31FEABCD025141BE745D4C6C3B5541B6DA906CCE025141E284B3A46D3B55416D1DC9C1CF0251412502A37C703B554124600117D1025141BE8F94F9723B55411B2F843CD302514153B4916F763B55412C73633ED60251412D0633C0783B55412C73633ED6025141EB797104793B5541EBE6A182D60251415A0EB492783B5541006BE26BD6025141D6F5301B793B5541BCD61645D80251415E7770107A3B554110FFB151DC025141737049CF7A3B554140CF0341E3025141544964B97B3B5541D0F5121BE4025141708322987B3B55417D04F127E802514113AE5B84793B5541A0C6D4F1EA0251415A9C4D1D763B55410FA6C415EB025141EF2DB6E0743B554128E3652CEC02514192016406743B554162231039F0025141A96DFDB2743B5541DB1D303EF50251415E3E65A3743B554171DD7C54F9025141C8C62837733B5541154EC9A6FB0251417D790CE9713B55411F5DBF26F8025141A40B36F16D3B5541BD2D76B0F3025141952334E2683B554113B13328F202514182E17F25673B5541DD572279EF025141493D88F1623B5541FA20F070EA025141A0C22A30623B5541252ABE00E30251413A2EB9D4603B55415DF67083D7025141C701EFE85E3B55410FBE1C66D7025141EE2208125F3B554191D41257D00251417588A6BE5B3B5541
+</a>
+
+<b>
+01060000000100000001030000000100000012000000D7A3700DFF025141B81E859B743B5541C3F528BCFB02514114AE4701723B5541713D0A37F70251417B14AE47743B554100000030F402514148E17AD4743B5541AE47E1BAF2025141B81E85DB743B55418FC2F568E302514185EB5198823B5541C3F5281CEB02514114AE47118B3B5541D7A370EDED0251415C8FC2658E3B554166666666EF02514133333323903B554185EB5168F30251419A9999F9933B5541666666F6F7025141AE47E19A8E3B55411F85EB61FB0251411F85EBF18A3B5541713D0A27FF0251419A9999F9873B5541713D0AA705035141A4703DDA823B55419A9999A906035141295C8FC2803B55415C8FC255060351417B14AE077E3B55419A9999C904035141B81E854B7B3B5541D7A3700DFF025141B81E859B743B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>243506 - 243419
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000200000019000000B8444971C00A5141DB0EF99A5118554123A855E7C00A5141700DE41D55185541F4063EE9C20A5141C3A450C358185541D5F2F9CFC30A5141F339A2605918554199B8488CC90A5141F23F051158185541452A8C69CB0A51417C5B8B6A57185541F3793BD1CB0A51411FBC2C9B56185541ACB8F86FCD0A51417A928059541855410A7ACCC7D30A5141A1CBB7F34B18554169043C66D60A5141E4C8983E4C185541E8C8D5FED60A514181A681F24B1855419A58FDFFD70A5141D07D6B9F4A1855413D603200DA0A514147B504FC47185541F17D7A41DB0A5141FF04654B4618554152044F92DA0A5141BAB476D345185541E0663639DA0A5141ECAB7696451855419A999919D90A514114AE47D144185541EC51B81ED10A5141AE47E15A3F185541A4703D9AC60A51417B14AE2738185541AE47E1BAC40A51410000006038185541B81E851BB70A5141AE47E15A471855419A999969B60A51411F85EB2148185541F6285CFFB50A51418FC2F59848185541C1152D47C00A5141E665228451185541B8444971C00A5141DB0EF99A511855410400000071B1155EC90A514178D5FCEB4E185541856DF74CD30A5141E0CBFFE54B185541324CC563D30A51414ECF8BE84B18554171B1155EC90A514178D5FCEB4E185541
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000001C44E604D50A5141EEF24EEC4C18554130B92D28D90A51415D1BCE5250185541C36C5C9FDD0A514100D99E5654185541A4D5E62DDF0A5141115AACDA551855418BCA3CDCE00A51412A76DD1154185541E3AF92D1E10A5141C03114045318554103A51543E30A5141E6B2BD6D51185541E17A146EE60A51411F85EBF14D1855410018162ADB0A51418AE0377346185541BB968BFDD60A5141D80C35F44B1855411C44E604D50A5141EEF24EEC4C185541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>243506 - 3346869
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000200000019000000B8444971C00A5141DB0EF99A5118554123A855E7C00A5141700DE41D55185541F4063EE9C20A5141C3A450C358185541D5F2F9CFC30A5141F339A2605918554199B8488CC90A5141F23F051158185541452A8C69CB0A51417C5B8B6A57185541F3793BD1CB0A51411FBC2C9B56185541ACB8F86FCD0A51417A928059541855410A7ACCC7D30A5141A1CBB7F34B18554169043C66D60A5141E4C8983E4C185541E8C8D5FED60A514181A681F24B1855419A58FDFFD70A5141D07D6B9F4A1855413D603200DA0A514147B504FC47185541F17D7A41DB0A5141FF04654B4618554152044F92DA0A5141BAB476D345185541E0663639DA0A5141ECAB7696451855419A999919D90A514114AE47D144185541EC51B81ED10A5141AE47E15A3F185541A4703D9AC60A51417B14AE2738185541AE47E1BAC40A51410000006038185541B81E851BB70A5141AE47E15A471855419A999969B60A51411F85EB2148185541F6285CFFB50A51418FC2F59848185541C1152D47C00A5141E665228451185541B8444971C00A5141DB0EF99A511855410400000071B1155EC90A514178D5FCEB4E185541856DF74CD30A5141E0CBFFE54B185541324CC563D30A51414ECF8BE84B18554171B1155EC90A514178D5FCEB4E185541
+</a>
+
+<b>
+010600000001000000010300000001000000170000000B8A76E1C90A5141183A7CC44E185541C3F528ACCE0A5141EC51B84E4D1855418FC2F5B8D30A514152B81EC54B18554168043C66D60A5141E4C8983E4C185541EAC8D5FED60A51417EA681F24B1855419B58FDFFD70A5141D27D6B9F4A1855413A603200DA0A514146B504FC47185541F57D7A41DB0A5141FD04654B4618554155044F92DA0A5141BDB476D345185541E5663639DA0A5141EEAB7696451855419A999919D90A514114AE47D144185541EC51B81ED10A5141AE47E15A3F185541A4703D9AC60A51417B14AE2738185541AE47E1BAC40A51410000006038185541B81E851BB70A5141AE47E15A471855419A999969B60A51411F85EB2148185541F6285CFFB50A51418FC2F59848185541C3152D47C00A5141E665228451185541AD7ACA80C00A514159A3E2A351185541CDCCCC7CC40A514185EB5168501855417CBD7751C80A51412D639E3D4F18554114AE47E1C90A51413D0AD7C34E1855410B8A76E1C90A5141183A7CC44E185541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985981 - 1411252
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000002000000010300000003000000B40000009BD06964E60B51414079C2FBE52155419A999959E60B5141666666C6E521554114AE47E1E50B514148E17A64E3215541B81E857BE40B514133333313DD21554152B81E25EA0B51419A9999B9DC21554185EB51B8EB0B5141A4703DAADC2155415C8FC215F30B5141713D0A17DD215541A205CA4AFC0B5141157C4515DE215541C3D1D110000C5141071D45E7DD2155410092AE6B080C51410A59BFC7DC215541283EB07C0A0C51413121BF82DC215541C618B43F0F0C514159DBBF68DD2155419A9999A9140C5141D7A370EDDC2155417B14AE871B0C514166666686DC21554105BD1863220C5141978342A5DC2155415C8FC215230C51411F85EBA1DE215541CDCCCC3C250C5141EC51B84EE22155419A999969270C5141AE47E10AE5215541E17A142E2B0C514100000060E72155419A9999092F0C514148E17A34E82155413D6758B1310C5141B1A9D560E8215541C2DFD382360C51419582C819E8215541C3F528AC3A0C5141CDCCCC7CE7215541AF2ED9113D0C5141F77DC7D7E6215541C3F528FC3F0C5141CDCCCC0CE8215541AE47E18A400C51415C8FC2F5E62155411F85EBC1430C5141B81E85CBE02155413D0AD733440C51410AD7A310E0215541D1A0B98B490C51412C697980D7215541E90779D8470C51412610FE3FD7215541AD8DA753450C514120B782FFD6215541AC934BE93F0C5141A363C01FD7215541AE47E13A3F0C5141EC51B8EED52155410AD7A3903D0C514152B81EB5D0215541A4703DFA390C5141E17A14BECA215541A4703D1A370C51415C8FC2B5C521554114AE4781360C514133333313C5215541F12036CC3C0C514163F35751C02155411B1246D73F0C5141F89186FBBD2155413D0AD7A3480C514166666606B7215541E17A14DE4A0C5141A4703D5AB2215541713D0AD7480C51413D0AD7F3AE215541A4703D7A450C514114AE4791AA21554114AE47A1440C5141295C8FB2A9215541295C8F62430C5141CDCCCCCCA82155410AD7A3F0410C51413D0AD713A8215541EC51B8EE3C0C514152B81E35A62155417B14AE27360C514148E17AC4A3215541240154AB260C5141249A35249D2155413C66F46C240C5141238BE9B99B2155413D0AD753210C5141666666669A215541AA7FE81C220C5141EF752C2399215541FB44C288290C5141AD45AED49C215541871D1F782D0C51415183AB859E2155419CA1F417310C5141A3295013A0215541420CD607370C514135105C63A22155419F0BA6093E0C51419B1C3EBCA4215541BBBBC2DE420C5141383D40A2A6215541541FCDD1460C5141BC4D7877A921554114AE47814A0C5141D7A3705DAE215541C3F528BC4D0C514152B81E55B3215541E17A148E4F0C5141A4703DEAB621554120C7DDFB510C51416E1839DEB42155412620593C520C5141EB682973B7215541629DFC0B520C514157AEA746B921554168F6774C520C51417BC48BC9BA21554106558085540C5141A1E004D1BE215541AE47E18A560C514133333383BF2155418FC2F5C8570C51410AD7A3B0B82155418FC2F5C8570C514148E17A74B12155410AD7A320580C5141A4703D4AAC2155419377F91D580C5141EBA1D2F7A9215541FBD138E9550C5141532D2101A521554182A61143560C51415BE884E29D21554185B00E44560C5141688FE80A9A2155418AF31406470C5141E40133A58F215541B7BD41BD3A0C5141A7427DC0872155412B80F3BE380C5141BD2394FC832155415C8FC2453A0C5141333333F37F21554185EB51583E0C51415C8FC2757F2155413D0AD7B33F0C514114AE47217E215541713D0AF7430C51419A99992979215541E97AA8F7470C51418ACDA2DF732155413E714831480C5141C7035B7D732155418FC2F508480C51418FC2F56873215541DB20CD05480C51413F549A6D732155419A999929470C51415C8FC21573215541AE47E15A420C5141C3F528EC71215541D7A3700D400C51416666669671215541CDCCCCAC3D0C51417B14AE6771215541F6285CAF3B0C51410000009071215541CDCCCC3C3A0C5141333333F371215541D7A3706D380C51411F85EB917221554114AE4791360C51415C8FC26573215541EC51B85E340C5141333333A374215541E17A143E310C5141713D0A67772155419A9999C92E0C5141B81E856B79215541713D0AA72A0C514148E17A64792155415C8FC245280C5141295C8F62782155417B14AE37270C51418FC2F5C8772155415C8FC235270C51417B14AEE77321554114AE4731270C5141CDCCCC3C692155419A999949270C5141AE47E13A5E2155419A999959270C514152B81E355A2155413D0AD773270C5141A4703D0A58215541059B9892230C51417FE20F30562155417A0981A4180C51416B1A016C50215541CB6AA26D130C51415521E3694D21554185EB51D8100C51418FC2F5084E21554128A0FFB70A0C51415FEDF3A45C215541333333B3070C5141A4703DAA63215541108A6FE2050C5141BDC1F498682155419DCE72AA0B0C51411B8490256E215541BBE17CB2100C51410065723572215541A23FC313110C51411642A27D752155413383FD4E0D0C51419D9B41867421554157B21E500A0C51413187284C752155412FDB50C4080C514101C6BF8D76215541905D2241060C5141F8DB245B792155410979DBBC040C5141B51F7B267C21554140F5DC74050C514168F37F7C7E215541CAABE040070C51415243868A81215541A0C200E5070C51416CBD7A7E84215541090BB3D6F20B514145CE2E1D84215541B54E71F5E70B5141177AD49C8321554102FD7870DF0B5141A3A40BD4822155413369E639D40B51410B599B078421554152B81E75CC0B51410AD7A3008521554133333363CA0B5141666666B6862155415C8FC225C90B514152B81ED58721554114AE47F1C70B5141F6285C0F89215541295C8F82C70B514185EB51C889215541C3F528DCC60B5141A4703D3A8B215541E17A14FEC50B5141D7A3707D8D215541713D0A17C50B51413333333390215541CDCCCC2CC40B51410AD7A3109321554166666686C30B51410AD7A360952155413D0AD723C30B5141AE47E1EA96215541EC51B8AEC20B5141CDCCCCFC98215541A4703D2AC20B5141A4703DEA9B215541D7A3707DC10B514148E17A749F21554152B81E05C10B51419A999929A2215541D7A3707DC00B5141000000D0A42155410AD7A330C00B51413D0AD7B3A62155418FC2F5F8BF0B5141B81E857BA8215541713D0AD7BF0B5141CDCCCCFCA9215541713D0A87BF0B5141CDCCCC9CAE21554185EB5168BF0B51415C8FC245B021554100000040BF0B51413D0AD773B2215541EC51B80EBF0B5141333333D3B321554155B17AE2BE0B514140FCB0C5B821554127DFF00BBE0B51412BFB177ABB21554100000050BD0B5141E17A147EBD21554148E17AE4BC0B5141A4703DDABE215541B81E852BBC0B5141AE47E1BAC021554185EB5178BB0B5141713D0A27C2215541E17A148EBA0B514152B81EA5C32155418FC2F5C8B90B51411F85EBA1C42155416FE962D0B70B5141F752AC37C72155419C2B242EB00B5141AA3E07EACF21554136E0ECF8AE0B51411F17B93BD22155410794CC52AE0B514147DE7CD9D3215541295372DCAD0B51418258BDE7D5215541295372DCAD0B51419B72B220D8215541C5BDAD42AE0B5141CB841664D9215541E9D391C5AF0B5141D2DABF59DC21554149671918B10B5141C625F78DDE21554169CB061AB20B51414C76E722E12155417FBE67E9B00B51419B41C650E52155412DD73BA6B10B5141310F9DC3E6215541E0D58261B20B51416A94BE5DE7215541773CD45DB40B514142421800E921554116E412B6B60B5141F01F6265EA215541FAFC5B72B90B5141F2A4C13BEB215541BD032632BD0B5141355DB51AEC215541E21FBB99BF0B5141B3901462EC215541FED7493CC40B5141E210B08EEC215541A37769F3C90B5141B62956D3EB215541346D11A2D70B5141717535B9E92155419BD06964E60B51414079C2FBE521554108000000983CE6ED390C51417B721B53DB2155411A690CD43A0C51419675ACBCD9215541A6E5C8CD3B0C514185FD4A9FD9215541E362EA003E0C5141EEF55E59DA2155411D87BF673E0C51416766D430DB215541A7AA2F953D0C5141DC73E5C5DD215541300939FB3A0C5141CE8F69ADDD215541983CE6ED390C51417B721B53DB2155410A0000004673098F280C5141BB0F2A16812155416E4AD71A2A0C5141EBD092D47F215541F84B23AE2D0C51412EEDE62E8121554117395607320C514170093B8982215541C46A31BA310C51417E5CD33488215541BB48C476310C5141F7E6968F892155418C9EA225300C5141543BDA318C215541966081452C0C51410502D7EB882155416E4AD71A2A0C5141671FA056852155414673098F280C5141BB0F2A168121554101030000000100000018000000E17A141EA80B514152B81ED5CA215541C3F528CCA70B51415C8FC245CD2155419A9999A9A70B5141AE47E13AD12155419A999989A70B5141EC51B81ED7215541B81E854BAC0B5141EC51B8FED9215541541FB42EAC0B51412F77BD8CD5215541B3B23B81AD0B5141050B3014D1215541D7C81F04AF0B51410A677D9FCE215541AE531CABB20B5141A47D4C57CA2155419193E11DB40B514145EAC404C921554136FD89A7B60B5141EAC5311BC6215541E71D8C7DB80B5141A34CDED5C3215541681B0C7ABA0B51417F70DEB4C02155413FA9DA6BBB0B5141C6A24A50BE215541F6285C1FBB0B5141A4703DFABC215541F6285C3FB80B514152B81EE5BC21554166666666B10B5141AE47E1BABC21554114AE4791AC0B5141295C8FA2BC215541C3F5289CA90B51419A9999A9BC215541E17A148EA90B514148E17A04BF215541CDCCCC5CA90B5141EC51B80EC2215541000000F0A80B514152B81EB5C5215541AE47E1BAA80B5141295C8F02C7215541E17A141EA80B514152B81ED5CA215541
+</a>
+
+<b>
+010600000001000000010300000005000000B90000005C9A0DDABE0B514101CAE2E0B821554126DFF00BBE0B514129FB177ABB21554100000050BD0B5141E17A147EBD21554148E17AE4BC0B5141A4703DDABE215541B81E852BBC0B5141AE47E1BAC021554185EB5178BB0B5141713D0A27C2215541E17A148EBA0B514152B81EA5C32155418FC2F5C8B90B51411F85EBA1C42155416FE962D0B70B5141FA52AC37C7215541992B242EB00B5141AE3E07EACF21554133E0ECF8AE0B51412317B93BD22155410294CC52AE0B514142DE7CD9D3215541245372DCAD0B51418658BDE7D5215541245372DCAD0B51419972B220D8215541C9BDAD42AE0B5141C7841664D9215541E8D391C5AF0B5141D7DABF59DC21554145671918B10B5141C725F78DDE2155416BCB061AB20B51415176E722E121554180BE67E9B00B51419841C650E5215541A89D5543B20B5141DF549B8BE6215541624CECFEB40B5141A4579968E8215541FB4F036BB70B5141BAAEB196E921554123548036BA0B5141B05A4A75EA21554103584AD2BC0B51413D5BB0D4EA21554125B2130DC00B5141CB5B1634EB21554167B75C97C30B5141EC069683EB21554194658DF3C50B5141A506E353EB21554113CA03D4C80B514102031084EA21554191A75314CC0B5141D8D2F9DEE921554197541E1CD00B51410C42485CE921554197EE38BED20B5141B82E2963E9215541ADA0DEB2D50B51410C42485CE92155413F5BE0DFD90B5141A5A4CD27E92155419ED06964E60B51414279C2FBE52155419A999959E60B5141666666C6E521554114AE47E1E50B514148E17A64E3215541B81E857BE40B514133333313DD21554152B81E25EA0B51419A9999B9DC21554185EB51B8EB0B5141A4703DAADC2155415C8FC215F30B5141713D0A17DD2155419D05CA4AFC0B5141167C4515DE215541C4D1D110000C51410B1D45E7DD2155410492AE6B080C51410659BFC7DC2155412C3EB07C0A0C51413321BF82DC215541C118B43F0F0C514157DBBF68DD2155419A9999A9140C5141D7A370EDDC2155417B14AE871B0C514166666686DC21554106BD1863220C5141938342A5DC2155410AC12B72220C51418A402DD0DC2155419D269861360C514141E8B5E1D521554197FCB9B6390C51413F6ACD3FDC2155410424B2573D0C5141737D22DAE6215541AE47E18A400C51415C8FC2F5E62155411F85EBC1430C5141B81E85CBE02155413D0AD733440C51410AD7A310E0215541D6A0B98B490C51412D697980D7215541E90779D8470C51412610FE3FD7215541AE8DA753450C51411FB782FFD6215541A7934BE93F0C5141A863C01FD7215541AE47E13A3F0C5141EC51B8EED52155410AD7A3903D0C514152B81EB5D0215541A4703DFA390C5141E17A14BECA215541A4703D1A370C51415C8FC2B5C521554114AE4781360C514133333313C5215541EF2036CC3C0C514167F35751C02155411E1246D73F0C5141F59186FBBD2155413D0AD7A3480C514166666606B7215541E17A14DE4A0C5141A4703D5AB2215541713D0AD7480C51413D0AD7F3AE215541A4703D7A450C514114AE4791AA21554114AE47A1440C5141295C8FB2A9215541295C8F62430C5141CDCCCCCCA82155410AD7A3F0410C51413D0AD713A8215541EC51B8EE3C0C514152B81E35A62155417B14AE27360C514148E17AC4A3215541290154AB260C5141209A35249D2155413966F46C240C51411F8BE9B99B2155413D0AD753210C5141666666669A215541A67FE81C220C5141EA752C2399215541FF44C288290C5141AE45AED49C215541871D1F782D0C51415183AB859E2155419DA1F417310C5141A4295013A0215541460CD607370C514137105C63A2215541A30BA6093E0C51419B1C3EBCA4215541BCBBC2DE420C51413D3D40A2A6215541581FCDD1460C5141BA4D7877A921554114AE47814A0C5141D7A3705DAE215541C3F528BC4D0C514152B81E55B3215541E17A148E4F0C5141A4703DEAB62155411BC7DDFB510C5141701839DEB42155412220593C520C5141F0682973B72155415F9DFC0B520C51415AAEA746B921554166F6774C520C51417AC48BC9BA21554105558085540C5141A5E004D1BE215541AE47E18A560C514133333383BF2155418FC2F5C8570C51410AD7A3B0B82155418FC2F5C8570C514148E17A74B12155410AD7A320580C5141A4703D4AAC2155419077F91D580C5141EEA1D2F7A9215541F9D138E9550C5141572D2101A521554186A61143560C51415DE884E29D21554187B00E44560C51416B8FE80A9A2155418DF31406470C5141E00133A58F215541BBBD41BD3A0C5141AC427DC0872155412A80F3BE380C5141B92394FC83215541CC8B21F23A0C51411B7E451D83215541AF3351BA3D0C51412033A33D81215541F1D01C03420C5141284694F87B2155416AE048C0450C5141ECBE19E37621554110E11587460C514166E8C9D475215541E97AA8F7470C51418ACDA2DF732155413E714831480C5141C7035B7D73215541DB20CD05480C51413F549A6D732155419A999929470C51415C8FC21573215541AE47E15A420C5141C3F528EC71215541D7A3700D400C51416666669671215541CDCCCCAC3D0C51417B14AE6771215541F6285CAF3B0C51410000009071215541CDCCCC3C3A0C5141333333F371215541D7A3706D380C51411F85EB917221554114AE4791360C51415C8FC26573215541EC51B85E340C5141333333A374215541E17A143E310C5141713D0A67772155419A9999C92E0C5141B81E856B79215541713D0AA72A0C514148E17A64792155415C8FC245280C5141295C8F62782155417B14AE37270C51418FC2F5C8772155415C8FC235270C51417B14AEE77321554114AE4731270C5141CDCCCC3C692155419A999949270C5141AE47E13A5E2155419A999959270C514152B81E355A2155413D0AD773270C5141A4703D0A58215541019B9892230C514181E20F3056215541750981A4180C5141671A016C50215541CF6AA26D130C51415821E3694D21554185EB51D8100C51418FC2F5084E21554129A0FFB70A0C514163EDF3A45C215541333333B3070C5141A4703DAA63215541118A6FE2050C5141BEC1F498682155419FCE72AA0B0C51411C8490256E215541BDE17CB2100C51410265723572215541A63FC313110C51411442A27D752155412E83FD4E0D0C5141A19B41867421554152B21E500A0C51413387284C752155412FDB50C4080C5141FEC5BF8D762155418D5D2241060C5141F8DB245B792155410D79DBBC040C5141B11F7B267C21554144F5DC74050C51416BF37F7C7E215541C7ABE040070C51415143868A812155419EC200E5070C51416BBD7A7E84215541050BB3D6F20B51414ACE2E1D84215541B74E71F5E70B5141157AD49C8321554101FD7870DF0B5141A4A40BD4822155413669E639D40B51410C599B078421554152B81E75CC0B51410AD7A3008521554133333363CA0B5141666666B6862155415C8FC225C90B514152B81ED58721554114AE47F1C70B5141F6285C0F89215541295C8F82C70B514185EB51C889215541C3F528DCC60B5141A4703D3A8B215541E17A14FEC50B5141D7A3707D8D21554108ABB4EFC50B5141E4449AA88D215541ADCFD2B7E20B51415A2D0035912155414CA648D9E70B51418564B85D8A2155417D0A235DEA0B514118B91859872155416D603CC7EC0B514161E3C8D6852155415CEF5998EF0B5141249C0356852155414229849EF30B5141E58D423C852155412246EDF7FD0B51413424394D852155416EC3E526080C5141EC607242852155417DE7A2D8080C5141C24AA807952155415211C086050C514141672A3B95215541B8CC5A0DFF0B514158B96CC0972155417C6F8855FC0B5141F44910B699215541A85E9F52FB0B51410B30E2099B215541AB9A2A1FFA0B514168C82959A021554137BD125AF80B5141C46071A8A5215541B4621BD5F50B5141F87ACF0FAB2155413D9B8C6CF40B5141A7FB2BC7AD215541D844E032F00B5141B80B391FB52155413F85088AD50B51412351B261AE21554147DAFB54D40B514150EE904CB1215541594BDE83D10B5141DF53243FB9215541E93918BDC40B51419F456325B92155415C9A0DDABE0B514101CAE2E0B821554108000000953CE6ED390C514177721B53DB2155411A690CD43A0C51419475ACBCD9215541A2E5C8CD3B0C51418AFD4A9FD9215541E062EA003E0C5141EFF55E59DA2155411F87BF673E0C51416966D430DB215541A8AA2F953D0C5141D873E5C5DD2155412B0939FB3A0C5141D18F69ADDD215541953CE6ED390C514177721B53DB2155410A0000004673098F280C5141BE0F2A16812155416A4AD71A2A0C5141E8D092D47F215541F54B23AE2D0C51412AEDE62E8121554112395607320C51416B093B8982215541C76A31BA310C51417E5CD33488215541BA48C476310C5141F7E6968F89215541909EA225300C5141553BDA318C215541936081452C0C51410502D7EB882155416A4AD71A2A0C5141651FA056852155414673098F280C5141BE0F2A168121554111000000927F663E0C0C5141CFA4D744B62155410A938DC40F0C5141350624F3AE2155418F3F847A120C5141D3249CCCA9215541E7A72D53150C5141E0DD5CDEA5215541FC29E35F180C51417D6CDC46A2215541EE50316C1F0C51416A9A108D9A2155410DBCCC55260C514146AFB01BA0215541DE379DB42C0C5141F67F03CDA5215541223E8262290C514159F18364A921554167D45F81240C5141D174B279AE21554131A72CC7200C5141AF194B79B2215541C20CE48E1F0C5141B99229C7B4215541F070224E1C0C5141F9383BCFBA21554198087975190C51410392283BC0215541C6FCAFA5140C51410F4BE94CBC215541D3B570B7100C5141106BDA2EB9215541927F663E0C0C5141CFA4D744B621554105000000AE72F63E160C5141B730113B9321554138EC1F2F200C514114C8C326822155418B76C13D2A0C5141B81773298821554101FD974D200C514177023C5998215541AE72F63E160C5141B730113B93215541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>985981 - 3198370
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000002000000010300000003000000B40000009BD06964E60B51414079C2FBE52155419A999959E60B5141666666C6E521554114AE47E1E50B514148E17A64E3215541B81E857BE40B514133333313DD21554152B81E25EA0B51419A9999B9DC21554185EB51B8EB0B5141A4703DAADC2155415C8FC215F30B5141713D0A17DD215541A205CA4AFC0B5141157C4515DE215541C3D1D110000C5141071D45E7DD2155410092AE6B080C51410A59BFC7DC215541283EB07C0A0C51413121BF82DC215541C618B43F0F0C514159DBBF68DD2155419A9999A9140C5141D7A370EDDC2155417B14AE871B0C514166666686DC21554105BD1863220C5141978342A5DC2155415C8FC215230C51411F85EBA1DE215541CDCCCC3C250C5141EC51B84EE22155419A999969270C5141AE47E10AE5215541E17A142E2B0C514100000060E72155419A9999092F0C514148E17A34E82155413D6758B1310C5141B1A9D560E8215541C2DFD382360C51419582C819E8215541C3F528AC3A0C5141CDCCCC7CE7215541AF2ED9113D0C5141F77DC7D7E6215541C3F528FC3F0C5141CDCCCC0CE8215541AE47E18A400C51415C8FC2F5E62155411F85EBC1430C5141B81E85CBE02155413D0AD733440C51410AD7A310E0215541D1A0B98B490C51412C697980D7215541E90779D8470C51412610FE3FD7215541AD8DA753450C514120B782FFD6215541AC934BE93F0C5141A363C01FD7215541AE47E13A3F0C5141EC51B8EED52155410AD7A3903D0C514152B81EB5D0215541A4703DFA390C5141E17A14BECA215541A4703D1A370C51415C8FC2B5C521554114AE4781360C514133333313C5215541F12036CC3C0C514163F35751C02155411B1246D73F0C5141F89186FBBD2155413D0AD7A3480C514166666606B7215541E17A14DE4A0C5141A4703D5AB2215541713D0AD7480C51413D0AD7F3AE215541A4703D7A450C514114AE4791AA21554114AE47A1440C5141295C8FB2A9215541295C8F62430C5141CDCCCCCCA82155410AD7A3F0410C51413D0AD713A8215541EC51B8EE3C0C514152B81E35A62155417B14AE27360C514148E17AC4A3215541240154AB260C5141249A35249D2155413C66F46C240C5141238BE9B99B2155413D0AD753210C5141666666669A215541AA7FE81C220C5141EF752C2399215541FB44C288290C5141AD45AED49C215541871D1F782D0C51415183AB859E2155419CA1F417310C5141A3295013A0215541420CD607370C514135105C63A22155419F0BA6093E0C51419B1C3EBCA4215541BBBBC2DE420C5141383D40A2A6215541541FCDD1460C5141BC4D7877A921554114AE47814A0C5141D7A3705DAE215541C3F528BC4D0C514152B81E55B3215541E17A148E4F0C5141A4703DEAB621554120C7DDFB510C51416E1839DEB42155412620593C520C5141EB682973B7215541629DFC0B520C514157AEA746B921554168F6774C520C51417BC48BC9BA21554106558085540C5141A1E004D1BE215541AE47E18A560C514133333383BF2155418FC2F5C8570C51410AD7A3B0B82155418FC2F5C8570C514148E17A74B12155410AD7A320580C5141A4703D4AAC2155419377F91D580C5141EBA1D2F7A9215541FBD138E9550C5141532D2101A521554182A61143560C51415BE884E29D21554185B00E44560C5141688FE80A9A2155418AF31406470C5141E40133A58F215541B7BD41BD3A0C5141A7427DC0872155412B80F3BE380C5141BD2394FC832155415C8FC2453A0C5141333333F37F21554185EB51583E0C51415C8FC2757F2155413D0AD7B33F0C514114AE47217E215541713D0AF7430C51419A99992979215541E97AA8F7470C51418ACDA2DF732155413E714831480C5141C7035B7D732155418FC2F508480C51418FC2F56873215541DB20CD05480C51413F549A6D732155419A999929470C51415C8FC21573215541AE47E15A420C5141C3F528EC71215541D7A3700D400C51416666669671215541CDCCCCAC3D0C51417B14AE6771215541F6285CAF3B0C51410000009071215541CDCCCC3C3A0C5141333333F371215541D7A3706D380C51411F85EB917221554114AE4791360C51415C8FC26573215541EC51B85E340C5141333333A374215541E17A143E310C5141713D0A67772155419A9999C92E0C5141B81E856B79215541713D0AA72A0C514148E17A64792155415C8FC245280C5141295C8F62782155417B14AE37270C51418FC2F5C8772155415C8FC235270C51417B14AEE77321554114AE4731270C5141CDCCCC3C692155419A999949270C5141AE47E13A5E2155419A999959270C514152B81E355A2155413D0AD773270C5141A4703D0A58215541059B9892230C51417FE20F30562155417A0981A4180C51416B1A016C50215541CB6AA26D130C51415521E3694D21554185EB51D8100C51418FC2F5084E21554128A0FFB70A0C51415FEDF3A45C215541333333B3070C5141A4703DAA63215541108A6FE2050C5141BDC1F498682155419DCE72AA0B0C51411B8490256E215541BBE17CB2100C51410065723572215541A23FC313110C51411642A27D752155413383FD4E0D0C51419D9B41867421554157B21E500A0C51413187284C752155412FDB50C4080C514101C6BF8D76215541905D2241060C5141F8DB245B792155410979DBBC040C5141B51F7B267C21554140F5DC74050C514168F37F7C7E215541CAABE040070C51415243868A81215541A0C200E5070C51416CBD7A7E84215541090BB3D6F20B514145CE2E1D84215541B54E71F5E70B5141177AD49C8321554102FD7870DF0B5141A3A40BD4822155413369E639D40B51410B599B078421554152B81E75CC0B51410AD7A3008521554133333363CA0B5141666666B6862155415C8FC225C90B514152B81ED58721554114AE47F1C70B5141F6285C0F89215541295C8F82C70B514185EB51C889215541C3F528DCC60B5141A4703D3A8B215541E17A14FEC50B5141D7A3707D8D215541713D0A17C50B51413333333390215541CDCCCC2CC40B51410AD7A3109321554166666686C30B51410AD7A360952155413D0AD723C30B5141AE47E1EA96215541EC51B8AEC20B5141CDCCCCFC98215541A4703D2AC20B5141A4703DEA9B215541D7A3707DC10B514148E17A749F21554152B81E05C10B51419A999929A2215541D7A3707DC00B5141000000D0A42155410AD7A330C00B51413D0AD7B3A62155418FC2F5F8BF0B5141B81E857BA8215541713D0AD7BF0B5141CDCCCCFCA9215541713D0A87BF0B5141CDCCCC9CAE21554185EB5168BF0B51415C8FC245B021554100000040BF0B51413D0AD773B2215541EC51B80EBF0B5141333333D3B321554155B17AE2BE0B514140FCB0C5B821554127DFF00BBE0B51412BFB177ABB21554100000050BD0B5141E17A147EBD21554148E17AE4BC0B5141A4703DDABE215541B81E852BBC0B5141AE47E1BAC021554185EB5178BB0B5141713D0A27C2215541E17A148EBA0B514152B81EA5C32155418FC2F5C8B90B51411F85EBA1C42155416FE962D0B70B5141F752AC37C72155419C2B242EB00B5141AA3E07EACF21554136E0ECF8AE0B51411F17B93BD22155410794CC52AE0B514147DE7CD9D3215541295372DCAD0B51418258BDE7D5215541295372DCAD0B51419B72B220D8215541C5BDAD42AE0B5141CB841664D9215541E9D391C5AF0B5141D2DABF59DC21554149671918B10B5141C625F78DDE21554169CB061AB20B51414C76E722E12155417FBE67E9B00B51419B41C650E52155412DD73BA6B10B5141310F9DC3E6215541E0D58261B20B51416A94BE5DE7215541773CD45DB40B514142421800E921554116E412B6B60B5141F01F6265EA215541FAFC5B72B90B5141F2A4C13BEB215541BD032632BD0B5141355DB51AEC215541E21FBB99BF0B5141B3901462EC215541FED7493CC40B5141E210B08EEC215541A37769F3C90B5141B62956D3EB215541346D11A2D70B5141717535B9E92155419BD06964E60B51414079C2FBE521554108000000983CE6ED390C51417B721B53DB2155411A690CD43A0C51419675ACBCD9215541A6E5C8CD3B0C514185FD4A9FD9215541E362EA003E0C5141EEF55E59DA2155411D87BF673E0C51416766D430DB215541A7AA2F953D0C5141DC73E5C5DD215541300939FB3A0C5141CE8F69ADDD215541983CE6ED390C51417B721B53DB2155410A0000004673098F280C5141BB0F2A16812155416E4AD71A2A0C5141EBD092D47F215541F84B23AE2D0C51412EEDE62E8121554117395607320C514170093B8982215541C46A31BA310C51417E5CD33488215541BB48C476310C5141F7E6968F892155418C9EA225300C5141543BDA318C215541966081452C0C51410502D7EB882155416E4AD71A2A0C5141671FA056852155414673098F280C5141BB0F2A168121554101030000000100000018000000E17A141EA80B514152B81ED5CA215541C3F528CCA70B51415C8FC245CD2155419A9999A9A70B5141AE47E13AD12155419A999989A70B5141EC51B81ED7215541B81E854BAC0B5141EC51B8FED9215541541FB42EAC0B51412F77BD8CD5215541B3B23B81AD0B5141050B3014D1215541D7C81F04AF0B51410A677D9FCE215541AE531CABB20B5141A47D4C57CA2155419193E11DB40B514145EAC404C921554136FD89A7B60B5141EAC5311BC6215541E71D8C7DB80B5141A34CDED5C3215541681B0C7ABA0B51417F70DEB4C02155413FA9DA6BBB0B5141C6A24A50BE215541F6285C1FBB0B5141A4703DFABC215541F6285C3FB80B514152B81EE5BC21554166666666B10B5141AE47E1BABC21554114AE4791AC0B5141295C8FA2BC215541C3F5289CA90B51419A9999A9BC215541E17A148EA90B514148E17A04BF215541CDCCCC5CA90B5141EC51B80EC2215541000000F0A80B514152B81EB5C5215541AE47E1BAA80B5141295C8F02C7215541E17A141EA80B514152B81ED5CA215541
+</a>
+
+<b>
+010600000001000000010300000005000000B90000005C9A0DDABE0B514101CAE2E0B821554126DFF00BBE0B514129FB177ABB21554100000050BD0B5141E17A147EBD21554148E17AE4BC0B5141A4703DDABE215541B81E852BBC0B5141AE47E1BAC021554185EB5178BB0B5141713D0A27C2215541E17A148EBA0B514152B81EA5C32155418FC2F5C8B90B51411F85EBA1C42155416FE962D0B70B5141FA52AC37C7215541992B242EB00B5141AE3E07EACF21554133E0ECF8AE0B51412317B93BD22155410294CC52AE0B514142DE7CD9D3215541245372DCAD0B51418658BDE7D5215541245372DCAD0B51419972B220D8215541C9BDAD42AE0B5141C7841664D9215541E8D391C5AF0B5141D7DABF59DC21554145671918B10B5141C725F78DDE2155416BCB061AB20B51415176E722E121554180BE67E9B00B51419841C650E5215541A89D5543B20B5141DF549B8BE6215541624CECFEB40B5141A4579968E8215541FB4F036BB70B5141BAAEB196E921554123548036BA0B5141B05A4A75EA21554103584AD2BC0B51413D5BB0D4EA21554125B2130DC00B5141CB5B1634EB21554167B75C97C30B5141EC069683EB21554194658DF3C50B5141A506E353EB21554113CA03D4C80B514102031084EA21554191A75314CC0B5141D8D2F9DEE921554197541E1CD00B51410C42485CE921554197EE38BED20B5141B82E2963E9215541ADA0DEB2D50B51410C42485CE92155413F5BE0DFD90B5141A5A4CD27E92155419ED06964E60B51414279C2FBE52155419A999959E60B5141666666C6E521554114AE47E1E50B514148E17A64E3215541B81E857BE40B514133333313DD21554152B81E25EA0B51419A9999B9DC21554185EB51B8EB0B5141A4703DAADC2155415C8FC215F30B5141713D0A17DD2155419D05CA4AFC0B5141167C4515DE215541C4D1D110000C51410B1D45E7DD2155410492AE6B080C51410659BFC7DC2155412C3EB07C0A0C51413321BF82DC215541C118B43F0F0C514157DBBF68DD2155419A9999A9140C5141D7A370EDDC2155417B14AE871B0C514166666686DC21554106BD1863220C5141938342A5DC2155410AC12B72220C51418A402DD0DC2155419D269861360C514141E8B5E1D521554197FCB9B6390C51413F6ACD3FDC2155410424B2573D0C5141737D22DAE6215541AE47E18A400C51415C8FC2F5E62155411F85EBC1430C5141B81E85CBE02155413D0AD733440C51410AD7A310E0215541D6A0B98B490C51412D697980D7215541E90779D8470C51412610FE3FD7215541AE8DA753450C51411FB782FFD6215541A7934BE93F0C5141A863C01FD7215541AE47E13A3F0C5141EC51B8EED52155410AD7A3903D0C514152B81EB5D0215541A4703DFA390C5141E17A14BECA215541A4703D1A370C51415C8FC2B5C521554114AE4781360C514133333313C5215541EF2036CC3C0C514167F35751C02155411E1246D73F0C5141F59186FBBD2155413D0AD7A3480C514166666606B7215541E17A14DE4A0C5141A4703D5AB2215541713D0AD7480C51413D0AD7F3AE215541A4703D7A450C514114AE4791AA21554114AE47A1440C5141295C8FB2A9215541295C8F62430C5141CDCCCCCCA82155410AD7A3F0410C51413D0AD713A8215541EC51B8EE3C0C514152B81E35A62155417B14AE27360C514148E17AC4A3215541290154AB260C5141209A35249D2155413966F46C240C51411F8BE9B99B2155413D0AD753210C5141666666669A215541A67FE81C220C5141EA752C2399215541FF44C288290C5141AE45AED49C215541871D1F782D0C51415183AB859E2155419DA1F417310C5141A4295013A0215541460CD607370C514137105C63A2215541A30BA6093E0C51419B1C3EBCA4215541BCBBC2DE420C51413D3D40A2A6215541581FCDD1460C5141BA4D7877A921554114AE47814A0C5141D7A3705DAE215541C3F528BC4D0C514152B81E55B3215541E17A148E4F0C5141A4703DEAB62155411BC7DDFB510C5141701839DEB42155412220593C520C5141F0682973B72155415F9DFC0B520C51415AAEA746B921554166F6774C520C51417AC48BC9BA21554105558085540C5141A5E004D1BE215541AE47E18A560C514133333383BF2155418FC2F5C8570C51410AD7A3B0B82155418FC2F5C8570C514148E17A74B12155410AD7A320580C5141A4703D4AAC2155419077F91D580C5141EEA1D2F7A9215541F9D138E9550C5141572D2101A521554186A61143560C51415DE884E29D21554187B00E44560C51416B8FE80A9A2155418DF31406470C5141E00133A58F215541BBBD41BD3A0C5141AC427DC0872155412A80F3BE380C5141B92394FC83215541CC8B21F23A0C51411B7E451D83215541AF3351BA3D0C51412033A33D81215541F1D01C03420C5141284694F87B2155416AE048C0450C5141ECBE19E37621554110E11587460C514166E8C9D475215541E97AA8F7470C51418ACDA2DF732155413E714831480C5141C7035B7D73215541DB20CD05480C51413F549A6D732155419A999929470C51415C8FC21573215541AE47E15A420C5141C3F528EC71215541D7A3700D400C51416666669671215541CDCCCCAC3D0C51417B14AE6771215541F6285CAF3B0C51410000009071215541CDCCCC3C3A0C5141333333F371215541D7A3706D380C51411F85EB917221554114AE4791360C51415C8FC26573215541EC51B85E340C5141333333A374215541E17A143E310C5141713D0A67772155419A9999C92E0C5141B81E856B79215541713D0AA72A0C514148E17A64792155415C8FC245280C5141295C8F62782155417B14AE37270C51418FC2F5C8772155415C8FC235270C51417B14AEE77321554114AE4731270C5141CDCCCC3C692155419A999949270C5141AE47E13A5E2155419A999959270C514152B81E355A2155413D0AD773270C5141A4703D0A58215541019B9892230C514181E20F3056215541750981A4180C5141671A016C50215541CF6AA26D130C51415821E3694D21554185EB51D8100C51418FC2F5084E21554129A0FFB70A0C514163EDF3A45C215541333333B3070C5141A4703DAA63215541118A6FE2050C5141BEC1F498682155419FCE72AA0B0C51411C8490256E215541BDE17CB2100C51410265723572215541A63FC313110C51411442A27D752155412E83FD4E0D0C5141A19B41867421554152B21E500A0C51413387284C752155412FDB50C4080C5141FEC5BF8D762155418D5D2241060C5141F8DB245B792155410D79DBBC040C5141B11F7B267C21554144F5DC74050C51416BF37F7C7E215541C7ABE040070C51415143868A812155419EC200E5070C51416BBD7A7E84215541050BB3D6F20B51414ACE2E1D84215541B74E71F5E70B5141157AD49C8321554101FD7870DF0B5141A4A40BD4822155413669E639D40B51410C599B078421554152B81E75CC0B51410AD7A3008521554133333363CA0B5141666666B6862155415C8FC225C90B514152B81ED58721554114AE47F1C70B5141F6285C0F89215541295C8F82C70B514185EB51C889215541C3F528DCC60B5141A4703D3A8B215541E17A14FEC50B5141D7A3707D8D21554108ABB4EFC50B5141E4449AA88D215541ADCFD2B7E20B51415A2D0035912155414CA648D9E70B51418564B85D8A2155417D0A235DEA0B514118B91859872155416D603CC7EC0B514161E3C8D6852155415CEF5998EF0B5141249C0356852155414229849EF30B5141E58D423C852155412246EDF7FD0B51413424394D852155416EC3E526080C5141EC607242852155417DE7A2D8080C5141C24AA807952155415211C086050C514141672A3B95215541B8CC5A0DFF0B514158B96CC0972155417C6F8855FC0B5141F44910B699215541A85E9F52FB0B51410B30E2099B215541AB9A2A1FFA0B514168C82959A021554137BD125AF80B5141C46071A8A5215541B4621BD5F50B5141F87ACF0FAB2155413D9B8C6CF40B5141A7FB2BC7AD215541D844E032F00B5141B80B391FB52155413F85088AD50B51412351B261AE21554147DAFB54D40B514150EE904CB1215541594BDE83D10B5141DF53243FB9215541E93918BDC40B51419F456325B92155415C9A0DDABE0B514101CAE2E0B821554108000000953CE6ED390C514177721B53DB2155411A690CD43A0C51419475ACBCD9215541A2E5C8CD3B0C51418AFD4A9FD9215541E062EA003E0C5141EFF55E59DA2155411F87BF673E0C51416966D430DB215541A8AA2F953D0C5141D873E5C5DD2155412B0939FB3A0C5141D18F69ADDD215541953CE6ED390C514177721B53DB2155410A0000004673098F280C5141BE0F2A16812155416A4AD71A2A0C5141E8D092D47F215541F54B23AE2D0C51412AEDE62E8121554112395607320C51416B093B8982215541C76A31BA310C51417E5CD33488215541BA48C476310C5141F7E6968F89215541909EA225300C5141553BDA318C215541936081452C0C51410502D7EB882155416A4AD71A2A0C5141651FA056852155414673098F280C5141BE0F2A168121554111000000927F663E0C0C5141CFA4D744B62155410A938DC40F0C5141350624F3AE2155418F3F847A120C5141D3249CCCA9215541E7A72D53150C5141E0DD5CDEA5215541FC29E35F180C51417D6CDC46A2215541EE50316C1F0C51416A9A108D9A2155410DBCCC55260C514146AFB01BA0215541DE379DB42C0C5141F67F03CDA5215541223E8262290C514159F18364A921554167D45F81240C5141D174B279AE21554131A72CC7200C5141AF194B79B2215541C20CE48E1F0C5141B99229C7B4215541F070224E1C0C5141F9383BCFBA21554198087975190C51410392283BC0215541C6FCAFA5140C51410F4BE94CBC215541D3B570B7100C5141106BDA2EB9215541927F663E0C0C5141CFA4D744B621554105000000AE72F63E160C5141B730113B9321554138EC1F2F200C514114C8C326822155418B76C13D2A0C5141B81773298821554101FD974D200C514177023C5998215541AE72F63E160C5141B730113B93215541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>518429 - 1189913
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000170000007B14AEB7C923514148E17A54C58A544185EB51C8C5235141713D0AC7C48A5441295C8FF2C1235141C3F5287CC48A54419A9999B9BD235141713D0AC7C48A54418FC2F548B4235141F6285C7FC68A54415C8FC2F5AC235141295C8FE2C88A54413D0AD7A3A82351417B14AE27CA8A54410AD7A3A0A9235141295C8FF2CD8A54413D0AD793AB23514152B81E45D68A544114AE47F1AC2351411F85EB61DC8A544148E17A04AE2351410AD7A350E08A5441C3F5286CB0235141EC51B82EEC8A54417B14AEC7B0235141CDCCCC5CEE8A5441295C8FE2B023514185EB5148EF8A544148E17A24C2235141B81E852BE88A5441295C8FA2D32351415C8FC2F5E08A5441A4703D3AD1235141C3F528CCD78A54417B14AE57CF235141D7A370ADD08A5441000000C0CD235141333333D3CA8A54418FC2F508CD23514152B81E05C78A5441C3F528CCCC235141C3F5289CC68A54413D0AD783CC235141EC51B81EC68A54417B14AEB7C923514148E17A54C58A5441
+</a>
+
+<b>
+010600000001000000010300000001000000290000000579A12F86235141611B30BFE58A5441BE05E1BA82235141F99F6AF6D68A5441402AA03F9A23514113E2615CD08A5441F43F1E5E9E235141B46B6234CF8A544177B7193CA1235141F2B55A66CE8A54413EAEE008A92351416500DB35CC8A54413D0AD7A3A82351417B14AE27CA8A5441AE47E1FAA623514148E17AA4CA8A54419A9999D9A0235141713D0AC7CC8A5441CDCCCC0C98235141C3F5285CCF8A5441B81E85DB8B235141AE47E10AD28A5441333333D382235141E17A149ED38A5441AE47E19A7C235141A4703D0AD58A5441666666167123514133333373D28A5441F6285C2F71235141D7A370BDD88A5441F6285C2F7123514114AE4761E08A544185EB517872235141E17A147EE08A5441713D0AD772235141F6285C3FE58A54411F85EBB17423514152B81E95ED8A5441B81E85AB7723514152B81E15F18A54411F85EB11792351418FC2F518F68A54417B14AEB77D235141EC51B89EF58A5441C3F5285C7F2351419A9999E9F68A544114AE47B180235141A4703D9AF88A544133333313842351411F85EBC1F78A5441295C8F22882351415C8FC205F78A54413333339392235141E17A14EEF48A5441295C8FC29923514185EB5188F38A5441CDCCCCFC9D235141F6285CAFF28A5441333333A3A2235141000000F0F18A544114AE47B1A9235141333333A3F08A544114AE4751AB2351411F85EB81F08A544114AE47A1AB23514114AE4701F18A5441000000B0AB235141C3F5286CF18A54410AD7A390AC23514100000010F18A5441295C8FE2B023514185EB5148EF8A54417B14AEC7B0235141CDCCCC5CEE8A5441C3F5286CB0235141EC51B82EEC8A5441D62D3506AE235141DD320C3EE08A544107CEB1DFAC23514120062C13DC8A54410579A12F86235141611B30BFE58A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>939375 - 3178216
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000030000000103000000010000003F0000001E111CE9E0B15041FD10D6EF9D35544185EB51E8E0B15041A4703DFA9D35544114AE4761D6B15041C3F5282C9D355441F6285CBFD5B1504185EB5148A03554419A9999E9D4B15041B81E850BA33554417B14AE37CFB150415C8FC2B5B03554417B14AEF7CBB1504148E17AA4B7355441713D0A27C4B15041CDCCCCCCC9355441C3F528BCB1B15041295C8FB2C635544152B81E85A0B15041CDCCCCCCC33554415C8FC2659EB15041D7A3705DC335544185EB51289BB15041C3F5283CD93554418FC2F59897B15041E17A142EEF35544152B81E8598B1504100000040EF355441B81E856BA8B150415C8FC2F5EF3554419A999929BBB150413D0AD7F3F03554411F85EB71BAB1504133333393FC355441A4703DBAB9B15041295C8F3208365441AE47E1DABBB150413D0AD75308365441A4703D3AC3B15041B81E85FB0736544152B81EE5C8B15041D7A3709D06365441EC51B8FECCB15041E17A14CE053654417B14AEE7D1B15041EC51B80E06365441EC51B83ED5B15041000000600736544185EB5178D7B1504133333373093654411F85EB71D9B150411F85EB2108365441D7A3700DDAB1504185EB51E805365441EC51B88EDAB150413D0AD7A30436544166666606DCB15041CDCCCC3C04365441D7A3701DDBB15041AE47E18A00365441EC51B89EDBB15041A4703D4A003654418FC2F5C8DCB15041A4703D7A033654418FC2F5D8DDB15041CDCCCC4C053654417B14AE77DFB15041713D0A87033654416181D1A6E0B150414A13707402365441DCBC06E4E0B150418A390EC90136544184260CEEE3B150416D8ADEE5FF3554416726A8AEE4B15041976132A0FE3554410AD7A3F0E6B150418FC2F568F93554412BA0A99FEAB15041B696EFF3F2355441F71AB619F0B15041899FB3A8E9355441D7A3709DF3B15041713D0AA7E3355441489FE9F0F6B15041AB9BECB6E1355441666666A6FBB150415C8FC2D5CF355441FFDBBDBFFEB15041AAC884E7B935544185EB5148F3B15041295C8F62B7355441D83F01CBEEB15041799B306EB9355441E81F79E6EAB150419BCC9C31BA355441A408E41BEFB15041C48B0979A63554413C973807F4B150410D5FB6C6A6355441FA3A6837F3B15041A831F894AD3554417E907796F8B150410782D751AF3554416E5E8A89FCB150417A0E6D51AC35544199774C97FEB15041AE458A00AC355441EA811EFB02B25041AF513DE3A135544114130766F8B1504108E8FD509D35544122D7A083F7B15041BFBE94329D355441B81E855BF7B15041295C8F929D355441295C8F82F3B1504152B81EF59D35544114AE4761EEB150417B14AE579E355441B7BBA858ECB150412202789C9D355441EC51B8AEEBB15041F6285C5F9D3554411E111CE9E0B15041FD10D6EF9D35544101030000000100000006000000BEE3B024E1B15041C255199E8A355441C3F5281CE1B15041CDCCCC9C8A3554417B14AEE7E1B150415C8FC2D590355441749FFD52E1B150414F7ACE7C983554410BE09127E2B150414DD15AD490355441BEE3B024E1B15041C255199E8A355441010300000001000000330000001AA18C06DFB15041A036D059243654411F85EB31DFB15041333333E31E365441D7A370DDE2B15041E17A14EE1F365441333333B3E3B1504148E17A8419365441F6285C5FE4B15041333333831936544177304FDCE4B15041C620B0F2133654415D88FC80E4B15041DDC244E4133654413417925EE3B150414560E5C013365441AB3CEFC0E2B150419EC4A753123654418D4D3F83E3B15041B03401671136544100000010E3B15041D7A3703D0F365441522ACE86E2B150413AFBF0C90D365441EC51B84EE1B150415C8FC2C50D365441804E1B10E0B15041629EA8EF0A365441754A71C5DFB1504167D8350C0E36544111422D96E1B150419CCDB961103654411B133CD0E1B150417384324A11365441496AB91DE2B15041EA9E5654143654413ADF866EE1B15041E9B21F3518365441010AE461E0B150411F4564721B365441ECE42B33E0B15041ACAEE7391D365441F08B2517DFB15041C1E642521E36544137B4C82EDEB150411D7605282436544152B81E85DBB15041E17A14DE23365441B81E859BDAB15041E17A14CE1E3654419A9999C9D8B15041295C8F221D3654419A9999B9D7B15041E17A149E1B3654419A9999B9D7B15041A4703D5A1A36544185EB5168D6B150413D0AD7731A365441295C8F72D5B150419A9999191A365441EC51B83ED5B15041EC51B8AE18365441AE47E11AD6B150417B14AE7717365441AE47E12AD7B15041EC51B89E1736544114AE4721D8B15041B81E85AB173654415C8FC295D8B150411F85EB510F3654410AD7A3E0D3B1504185EB51580D365441F6285C7FD5B150410AD7A3B008365441D7A370CDD1B1504185EB51F806365441F6285C5FCFB15041D7A3709D0636544114AE47B1CCB15041E17A14DE063654418FC2F508C9B15041F6285CCF07365441C3F5289CC7B15041A4703D5A163654417B14AE37C6B15041A4703D6A243654417B14AEE7C5B150417B14AE9727365441E17A14DEC4B15041AE47E12A323654411F85EBF1D0B15041EC51B84E32365441000000C0DBB1504185EB51483236544152B81EB5DCB150417B14AE4732365441E259D4A2DCB1504112F807D93236544150536519DDB150412E3B9820323654411AA18C06DFB15041A036D05924365441
+</a>
+
+<b>
+0106000000010000000103000000010000003B000000D5630099C6B1504154386A932036544156B4FFF6C4B15041C1E4FC393236544136A47C0AD5B15041093C4B4C32365441000000C0DBB1504185EB51483236544173BA8BBEDBB150414A53ED53323654416466B6C8DBB15041C31DDA1C32365441C93827EEDBB150413429075231365441E4A38155DEB15041076A884C24365441A208EB28DFB1504137ED561C1F3654415ADCB934DFB1504108F06BE01E365441AB3DCDD2DFB150418B5E5D0D1F365441C1B8E7FFDFB15041229363091F365441A622DB63E2B15041229D2CC81F3654412E1D35D7E2B150416064F8E81F365441333333B3E3B1504148E17A8419365441C7E10261E4B1504173AA2973193654414FC6DBE3E4B1504184185EDC133654412F17925EE3B150414260E5C0133654417919CDC7E2B15041B5E44A4B12365441B8288E83E3B150412B8B5F5F11365441E266653AE5B15041F7B3B55411365441524F3824E5B1504175BAA0F710365441C294B789E3B15041DA5CD0101136544133333343E3B15041AE47E11A11365441B2B77942E3B1504102552F151136544161AA341CE3B15041058E5FE80F3654410A88C5ECE2B15041FB0B5AE10E3654419A999959E2B150410AD7A3600D365441507F8948E1B15041E65C27B60D3654417E2C0E0CE0B150417B3CE11A0B365441D44936C7DFB150411A0E55F90D3654413DF0D494E1B15041541BFF5F103654416C391FB0E1B150413622F52411365441358D1A15E2B15041A792C5FD133654417F23EC8CE1B15041D1DAE18817365441FB37F76AE0B1504145B760561B365441EBE42B33E0B15041B0AEE7391D36544197E7FDFDDEB15041E900528E1E365441D31F52ECDDB15041EC992FC223365441E062689BDBB150414B627FE0233654418A48209DDAB150417B97FDD61E365441568841CBD7B15041D6014CB71B3654419A9999B9D7B1504185C704B41A365441295C8F72D5B150419A9999191A3654416658FD69D5B150412D7F9BDD19365441EC51B83ED5B15041EC51B8AE18365441A550908BD5B1504192E8274218365441AE47E11AD6B150417B14AE7717365441795FD126D8B150416D1EE445173654415C8FC295D8B150411F85EB510F3654415BBA5DE3D3B15041D6B676590D36544157233D00D4B15041F1AB85FD0C365441DAFF826AD5B150419F6CEFA60836544153BAC929D1B15041497869E00636544137A909DACCB150417F6D3DDA06365441C17929FBC8B15041440D2C5C08365441A7936DEFC8B1504142A1EBD308365441C3F5289CC7B15041A4703D5A16365441D5630099C6B1504154386A9320365441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>939375 - 3574156
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000030000000103000000010000003F0000001E111CE9E0B15041FD10D6EF9D35544185EB51E8E0B15041A4703DFA9D35544114AE4761D6B15041C3F5282C9D355441F6285CBFD5B1504185EB5148A03554419A9999E9D4B15041B81E850BA33554417B14AE37CFB150415C8FC2B5B03554417B14AEF7CBB1504148E17AA4B7355441713D0A27C4B15041CDCCCCCCC9355441C3F528BCB1B15041295C8FB2C635544152B81E85A0B15041CDCCCCCCC33554415C8FC2659EB15041D7A3705DC335544185EB51289BB15041C3F5283CD93554418FC2F59897B15041E17A142EEF35544152B81E8598B1504100000040EF355441B81E856BA8B150415C8FC2F5EF3554419A999929BBB150413D0AD7F3F03554411F85EB71BAB1504133333393FC355441A4703DBAB9B15041295C8F3208365441AE47E1DABBB150413D0AD75308365441A4703D3AC3B15041B81E85FB0736544152B81EE5C8B15041D7A3709D06365441EC51B8FECCB15041E17A14CE053654417B14AEE7D1B15041EC51B80E06365441EC51B83ED5B15041000000600736544185EB5178D7B1504133333373093654411F85EB71D9B150411F85EB2108365441D7A3700DDAB1504185EB51E805365441EC51B88EDAB150413D0AD7A30436544166666606DCB15041CDCCCC3C04365441D7A3701DDBB15041AE47E18A00365441EC51B89EDBB15041A4703D4A003654418FC2F5C8DCB15041A4703D7A033654418FC2F5D8DDB15041CDCCCC4C053654417B14AE77DFB15041713D0A87033654416181D1A6E0B150414A13707402365441DCBC06E4E0B150418A390EC90136544184260CEEE3B150416D8ADEE5FF3554416726A8AEE4B15041976132A0FE3554410AD7A3F0E6B150418FC2F568F93554412BA0A99FEAB15041B696EFF3F2355441F71AB619F0B15041899FB3A8E9355441D7A3709DF3B15041713D0AA7E3355441489FE9F0F6B15041AB9BECB6E1355441666666A6FBB150415C8FC2D5CF355441FFDBBDBFFEB15041AAC884E7B935544185EB5148F3B15041295C8F62B7355441D83F01CBEEB15041799B306EB9355441E81F79E6EAB150419BCC9C31BA355441A408E41BEFB15041C48B0979A63554413C973807F4B150410D5FB6C6A6355441FA3A6837F3B15041A831F894AD3554417E907796F8B150410782D751AF3554416E5E8A89FCB150417A0E6D51AC35544199774C97FEB15041AE458A00AC355441EA811EFB02B25041AF513DE3A135544114130766F8B1504108E8FD509D35544122D7A083F7B15041BFBE94329D355441B81E855BF7B15041295C8F929D355441295C8F82F3B1504152B81EF59D35544114AE4761EEB150417B14AE579E355441B7BBA858ECB150412202789C9D355441EC51B8AEEBB15041F6285C5F9D3554411E111CE9E0B15041FD10D6EF9D35544101030000000100000006000000BEE3B024E1B15041C255199E8A355441C3F5281CE1B15041CDCCCC9C8A3554417B14AEE7E1B150415C8FC2D590355441749FFD52E1B150414F7ACE7C983554410BE09127E2B150414DD15AD490355441BEE3B024E1B15041C255199E8A355441010300000001000000330000001AA18C06DFB15041A036D059243654411F85EB31DFB15041333333E31E365441D7A370DDE2B15041E17A14EE1F365441333333B3E3B1504148E17A8419365441F6285C5FE4B15041333333831936544177304FDCE4B15041C620B0F2133654415D88FC80E4B15041DDC244E4133654413417925EE3B150414560E5C013365441AB3CEFC0E2B150419EC4A753123654418D4D3F83E3B15041B03401671136544100000010E3B15041D7A3703D0F365441522ACE86E2B150413AFBF0C90D365441EC51B84EE1B150415C8FC2C50D365441804E1B10E0B15041629EA8EF0A365441754A71C5DFB1504167D8350C0E36544111422D96E1B150419CCDB961103654411B133CD0E1B150417384324A11365441496AB91DE2B15041EA9E5654143654413ADF866EE1B15041E9B21F3518365441010AE461E0B150411F4564721B365441ECE42B33E0B15041ACAEE7391D365441F08B2517DFB15041C1E642521E36544137B4C82EDEB150411D7605282436544152B81E85DBB15041E17A14DE23365441B81E859BDAB15041E17A14CE1E3654419A9999C9D8B15041295C8F221D3654419A9999B9D7B15041E17A149E1B3654419A9999B9D7B15041A4703D5A1A36544185EB5168D6B150413D0AD7731A365441295C8F72D5B150419A9999191A365441EC51B83ED5B15041EC51B8AE18365441AE47E11AD6B150417B14AE7717365441AE47E12AD7B15041EC51B89E1736544114AE4721D8B15041B81E85AB173654415C8FC295D8B150411F85EB510F3654410AD7A3E0D3B1504185EB51580D365441F6285C7FD5B150410AD7A3B008365441D7A370CDD1B1504185EB51F806365441F6285C5FCFB15041D7A3709D0636544114AE47B1CCB15041E17A14DE063654418FC2F508C9B15041F6285CCF07365441C3F5289CC7B15041A4703D5A163654417B14AE37C6B15041A4703D6A243654417B14AEE7C5B150417B14AE9727365441E17A14DEC4B15041AE47E12A323654411F85EBF1D0B15041EC51B84E32365441000000C0DBB1504185EB51483236544152B81EB5DCB150417B14AE4732365441E259D4A2DCB1504112F807D93236544150536519DDB150412E3B9820323654411AA18C06DFB15041A036D05924365441
+</a>
+
+<b>
+0106000000010000000103000000010000003B000000D5630099C6B1504154386A932036544156B4FFF6C4B15041C1E4FC393236544136A47C0AD5B15041093C4B4C32365441000000C0DBB1504185EB51483236544173BA8BBEDBB150414A53ED53323654416466B6C8DBB15041C31DDA1C32365441C93827EEDBB150413429075231365441E4A38155DEB15041076A884C24365441A208EB28DFB1504137ED561C1F3654415ADCB934DFB1504108F06BE01E365441AB3DCDD2DFB150418B5E5D0D1F365441C1B8E7FFDFB15041229363091F365441A622DB63E2B15041229D2CC81F3654412E1D35D7E2B150416064F8E81F365441333333B3E3B1504148E17A8419365441C7E10261E4B1504173AA2973193654414FC6DBE3E4B1504184185EDC133654412F17925EE3B150414260E5C0133654417919CDC7E2B15041B5E44A4B12365441B8288E83E3B150412B8B5F5F11365441E266653AE5B15041F7B3B55411365441524F3824E5B1504175BAA0F710365441C294B789E3B15041DA5CD0101136544133333343E3B15041AE47E11A11365441B2B77942E3B1504102552F151136544161AA341CE3B15041058E5FE80F3654410A88C5ECE2B15041FB0B5AE10E3654419A999959E2B150410AD7A3600D365441507F8948E1B15041E65C27B60D3654417E2C0E0CE0B150417B3CE11A0B365441D44936C7DFB150411A0E55F90D3654413DF0D494E1B15041541BFF5F103654416C391FB0E1B150413622F52411365441358D1A15E2B15041A792C5FD133654417F23EC8CE1B15041D1DAE18817365441FB37F76AE0B1504145B760561B365441EBE42B33E0B15041B0AEE7391D36544197E7FDFDDEB15041E900528E1E365441D31F52ECDDB15041EC992FC223365441E062689BDBB150414B627FE0233654418A48209DDAB150417B97FDD61E365441568841CBD7B15041D6014CB71B3654419A9999B9D7B1504185C704B41A365441295C8F72D5B150419A9999191A3654416658FD69D5B150412D7F9BDD19365441EC51B83ED5B15041EC51B8AE18365441A550908BD5B1504192E8274218365441AE47E11AD6B150417B14AE7717365441795FD126D8B150416D1EE445173654415C8FC295D8B150411F85EB510F3654415BBA5DE3D3B15041D6B676590D36544157233D00D4B15041F1AB85FD0C365441DAFF826AD5B150419F6CEFA60836544153BAC929D1B15041497869E00636544137A909DACCB150417F6D3DDA06365441C17929FBC8B15041440D2C5C08365441A7936DEFC8B1504142A1EBD308365441C3F5289CC7B15041A4703D5A16365441D5630099C6B1504154386A9320365441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>647479 - 991791
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000007000000CDCCCCEC6F3251415C8FC215D834544185EB51586C325141C3F5284CDA345441713D0AA78732514100000010FB345441E17A144E89325141EC51B8FEF9345441E5449FB6A13251418B5ACB6BEB345441AC002E2687325141523EC027CA345441CDCCCCEC6F3251415C8FC215D8345441
+</a>
+
+<b>
+0106000000010000000103000000010000004C000000CDCCCCEC6F3251415C8FC215D834544185EB51586C325141C3F5284CDA345441E7E3284F6D3251413CDE5474DB345441DEA944946F325141EB9A932DDE345441E08F841271325141715938F8DF3454415C4EAF5173325141FD1256AAE23454418F70040075325141F618ACAEE434544131FFC7337632514113A0F11FE63454417388798077325141D49720AFE7345441C5E6D2367932514163FF14BDE93454411562D29E7A3251414AE0066DEB34544114CA0D3B7C325141F91AA55BED345441190CBF877D32514140BDD3EAEE345441C099E4EB7E325141EEA52696F0345441A6B01B52803251413FECF443F2345441D0CC53778132514106DCC6A3F334544102695E758232514189DD96D4F4345441AD205061833251412414B0EFF53454413C30DF8B84325141EE27EA55F7345441D98B191485325141EC465EF9F7345441E5137850863251411F0DF774F9345441BD0B890287325141F4559E4AFA345441902D73AA873251410A17CC0DFB345441E17A144E89325141EC51B8FEF93454417B66ACFFA0325141D9DC07D9EB345441CC5C03B99F325141B17EBB4DEA34544151F696319E325141261AA472E8345441667A91CF9C325141014BF2C4E6345441CC0871149B325141D49C19ABE4345441FBABA38B9A32514149405505E4345441406C025B9A325141282668CAE3345441CC255E2B9A3251411195AD90E33454419E12A9BA99325141C4811B08E33454410EF24056993251416719718EE2345441193140DE98325141C4E707FDE1345441A1AA3A5B983251412FB4445EE1345441CDFAC20D9832514192186600E1345441B1D64ABE9732514174881AA0E034544187C0654E973251419E7B8418E0345441412BCDF8963251411365CCB0DF345441336722C696325141395B6773DF3454416BC46380963251417065E41EDF3454415425020796325141659FCF8BDE345441FAAD65C1953251411F117637DE3454415ADA449295325141A2C75AFEDD345441374BCF569532514167644EB6DD3454416090740695325141F543F054DD3454417C6CACBA943251411A931CF9DC345441E96C166C94325141F908E399DC3454410468DA1F9432514135EE823DDC345441406AA4E093325141ACC2EAF0DB3454412558B27793325141B664C071DB3454418B48632C93325141ED6A7F16DB34544152EDF2DC92325141A4493DB6DA345441296BC07C9232514122A9AC41DA345441EBEF0026923251417A3C8FD8D93454412AEAD4C7913251418DDF7266D93454416A72687E913251414FAB7A0DD93454415246BA1D9132514103325498D8345441C7A55BC5903251412DBA3F2DD83454415624494A903251416F6A1E98D734544122DFABDA8F3251413163DF10D7345441660D78878F32514178CD0DACD63454419B970B328F325141032E8B44D6345441A59F05D98E32514174F0ABD8D5345441E01A406C8E32514174BFDE54D5345441D28571EA8D325141235394B7D4345441EF32B1758D32514139CF1B2AD434544196930FFC8C325141F07BB996D334544181E4F0A18C3251413538F729D33454414D53420B8C32514167D62074D23454412D24CCBD8B325141757EA616D23454413C7DADED8A3251410DC27F1BD1345441558FACEB89325141185126E4CF34544154B14CD3853251410B7202F3CA345441CDCCCCEC6F3251415C8FC215D8345441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>647479 - 3570376
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000007000000CDCCCCEC6F3251415C8FC215D834544185EB51586C325141C3F5284CDA345441713D0AA78732514100000010FB345441E17A144E89325141EC51B8FEF9345441E5449FB6A13251418B5ACB6BEB345441AC002E2687325141523EC027CA345441CDCCCCEC6F3251415C8FC215D8345441
+</a>
+
+<b>
+0106000000010000000103000000010000004C000000CDCCCCEC6F3251415C8FC215D834544185EB51586C325141C3F5284CDA345441E7E3284F6D3251413CDE5474DB345441DEA944946F325141EB9A932DDE345441E08F841271325141715938F8DF3454415C4EAF5173325141FD1256AAE23454418F70040075325141F618ACAEE434544131FFC7337632514113A0F11FE63454417388798077325141D49720AFE7345441C5E6D2367932514163FF14BDE93454411562D29E7A3251414AE0066DEB34544114CA0D3B7C325141F91AA55BED345441190CBF877D32514140BDD3EAEE345441C099E4EB7E325141EEA52696F0345441A6B01B52803251413FECF443F2345441D0CC53778132514106DCC6A3F334544102695E758232514189DD96D4F4345441AD205061833251412414B0EFF53454413C30DF8B84325141EE27EA55F7345441D98B191485325141EC465EF9F7345441E5137850863251411F0DF774F9345441BD0B890287325141F4559E4AFA345441902D73AA873251410A17CC0DFB345441E17A144E89325141EC51B8FEF93454417B66ACFFA0325141D9DC07D9EB345441CC5C03B99F325141B17EBB4DEA34544151F696319E325141261AA472E8345441667A91CF9C325141014BF2C4E6345441CC0871149B325141D49C19ABE4345441FBABA38B9A32514149405505E4345441406C025B9A325141282668CAE3345441CC255E2B9A3251411195AD90E33454419E12A9BA99325141C4811B08E33454410EF24056993251416719718EE2345441193140DE98325141C4E707FDE1345441A1AA3A5B983251412FB4445EE1345441CDFAC20D9832514192186600E1345441B1D64ABE9732514174881AA0E034544187C0654E973251419E7B8418E0345441412BCDF8963251411365CCB0DF345441336722C696325141395B6773DF3454416BC46380963251417065E41EDF3454415425020796325141659FCF8BDE345441FAAD65C1953251411F117637DE3454415ADA449295325141A2C75AFEDD345441374BCF569532514167644EB6DD3454416090740695325141F543F054DD3454417C6CACBA943251411A931CF9DC345441E96C166C94325141F908E399DC3454410468DA1F9432514135EE823DDC345441406AA4E093325141ACC2EAF0DB3454412558B27793325141B664C071DB3454418B48632C93325141ED6A7F16DB34544152EDF2DC92325141A4493DB6DA345441296BC07C9232514122A9AC41DA345441EBEF0026923251417A3C8FD8D93454412AEAD4C7913251418DDF7266D93454416A72687E913251414FAB7A0DD93454415246BA1D9132514103325498D8345441C7A55BC5903251412DBA3F2DD83454415624494A903251416F6A1E98D734544122DFABDA8F3251413163DF10D7345441660D78878F32514178CD0DACD63454419B970B328F325141032E8B44D6345441A59F05D98E32514174F0ABD8D5345441E01A406C8E32514174BFDE54D5345441D28571EA8D325141235394B7D4345441EF32B1758D32514139CF1B2AD434544196930FFC8C325141F07BB996D334544181E4F0A18C3251413538F729D33454414D53420B8C32514167D62074D23454412D24CCBD8B325141757EA616D23454413C7DADED8A3251410DC27F1BD1345441558FACEB89325141185126E4CF34544154B14CD3853251410B7202F3CA345441CDCCCCEC6F3251415C8FC215D8345441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>964241 - 262849
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000014000000D73749AD186B5141440904A0A3405441736D81F1346B514173DBFED6794054410515D73E276B51411A2E34FE6D405441BD57F8C0236B5141B3F17CEF7240544107333BAB1F6B5141E092BEB77840544170BC2D97186B5141A57B22C9824054416395FB9E156B514188AC8D02874054417F9362FA106B51417D8C99988D405441D0B52D500E6B5141735CB05391405441DA9D94350A6B5141F6108B30974054412C78DD2B076B51410EDA12749B4054419296E868036B5141187899EAA0405441F225E0A0016B5141B2A76757A3405441B33B6EF3FD6A5141EDB1E282A8405441ADCAA8E9FA6A5141DF8B0101AD405441AE818C9AFC6A51413F6C10D4AD405441034804350D6B5141F0769694B44054413B5E9A3C0D6B5141BA8D5F89B4405441A4703D2A0D6B51411F85EB81B4405441D73749AD186B5141440904A0A3405441
+</a>
+
+<b>
+0106000000010000000103000000020000001A000000713D0A87E56A51418FC2F5E8AA405441E17A14BEE56A51411F85EB91AF4054419A9999F9E66A51413D0AD7E3B5405441A4703DBAE76A5141713D0AE7B6405441C3F5287CF16A51415C8FC245AA40544114AE4711F26A514148E17A84A9405441B81E85DBFA6A514152B81E15AD405441E17A143E276B514114AE47F16D405441F6285C0F1B6B5141AE47E16A6340544166666606176B514152B81EE56940544185EB51D80D6B514152B81EE5744054415C8FC2050A6B514148E17A347640544148E17AD4056B5141B81E858B794054411F85EB41056B5141F6285C3F7E405441295C8F92FD6A514114AE47218440544185EB51B8F86A514152B81EC5864054419A9999E9F66A51411F85EBC189405441D7A3707DF66A514148E17A648D40544152B81E55F36A514185EB519892405441EC51B88EF06A5141C3F5287C92405441B81E857BEB6A5141A4703D3A9A405441C3F5284CEB6A5141C3F5282C9B40544100000000EB6A514152B81E059F4054419A9999B9E86A51411F85EBE1A14054418FC2F528E86A514100000080A5405441713D0A87E56A51418FC2F5E8AA4054410500000048E17AE4196B51418FC2F5B86840544185EB51181B6B5141666666366740544152B81E251D6B51413D0AD7E36840544185EB51F81B6B5141EC51B85E6A40544148E17AE4196B51418FC2F5B868405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>964241 - 1000876
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000014000000D73749AD186B5141440904A0A3405441736D81F1346B514173DBFED6794054410515D73E276B51411A2E34FE6D405441BD57F8C0236B5141B3F17CEF7240544107333BAB1F6B5141E092BEB77840544170BC2D97186B5141A57B22C9824054416395FB9E156B514188AC8D02874054417F9362FA106B51417D8C99988D405441D0B52D500E6B5141735CB05391405441DA9D94350A6B5141F6108B30974054412C78DD2B076B51410EDA12749B4054419296E868036B5141187899EAA0405441F225E0A0016B5141B2A76757A3405441B33B6EF3FD6A5141EDB1E282A8405441ADCAA8E9FA6A5141DF8B0101AD405441AE818C9AFC6A51413F6C10D4AD405441034804350D6B5141F0769694B44054413B5E9A3C0D6B5141BA8D5F89B4405441A4703D2A0D6B51411F85EB81B4405441D73749AD186B5141440904A0A3405441
+</a>
+
+<b>
+0106000000010000000103000000020000001A000000713D0A87E56A51418FC2F5E8AA405441E17A14BEE56A51411F85EB91AF4054419A9999F9E66A51413D0AD7E3B5405441A4703DBAE76A5141713D0AE7B6405441C3F5287CF16A51415C8FC245AA40544114AE4711F26A514148E17A84A9405441B81E85DBFA6A514152B81E15AD405441E17A143E276B514114AE47F16D405441F6285C0F1B6B5141AE47E16A6340544166666606176B514152B81EE56940544185EB51D80D6B514152B81EE5744054415C8FC2050A6B514148E17A347640544148E17AD4056B5141B81E858B794054411F85EB41056B5141F6285C3F7E405441295C8F92FD6A514114AE47218440544185EB51B8F86A514152B81EC5864054419A9999E9F66A51411F85EBC189405441D7A3707DF66A514148E17A648D40544152B81E55F36A514185EB519892405441EC51B88EF06A5141C3F5287C92405441B81E857BEB6A5141A4703D3A9A405441C3F5284CEB6A5141C3F5282C9B40544100000000EB6A514152B81E059F4054419A9999B9E86A51411F85EBE1A14054418FC2F528E86A514100000080A5405441713D0A87E56A51418FC2F5E8AA4054410500000048E17AE4196B51418FC2F5B86840544185EB51181B6B5141666666366740544152B81E251D6B51413D0AD7E36840544185EB51F81B6B5141EC51B85E6A40544148E17AE4196B51418FC2F5B868405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>964241 - 3660562
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000014000000D73749AD186B5141440904A0A3405441736D81F1346B514173DBFED6794054410515D73E276B51411A2E34FE6D405441BD57F8C0236B5141B3F17CEF7240544107333BAB1F6B5141E092BEB77840544170BC2D97186B5141A57B22C9824054416395FB9E156B514188AC8D02874054417F9362FA106B51417D8C99988D405441D0B52D500E6B5141735CB05391405441DA9D94350A6B5141F6108B30974054412C78DD2B076B51410EDA12749B4054419296E868036B5141187899EAA0405441F225E0A0016B5141B2A76757A3405441B33B6EF3FD6A5141EDB1E282A8405441ADCAA8E9FA6A5141DF8B0101AD405441AE818C9AFC6A51413F6C10D4AD405441034804350D6B5141F0769694B44054413B5E9A3C0D6B5141BA8D5F89B4405441A4703D2A0D6B51411F85EB81B4405441D73749AD186B5141440904A0A3405441
+</a>
+
+<b>
+0106000000010000000103000000020000001A000000713D0A87E56A51418FC2F5E8AA405441E17A14BEE56A51411F85EB91AF4054419A9999F9E66A51413D0AD7E3B5405441A4703DBAE76A5141713D0AE7B6405441C3F5287CF16A51415C8FC245AA40544114AE4711F26A514148E17A84A9405441B81E85DBFA6A514152B81E15AD405441E17A143E276B514114AE47F16D405441F6285C0F1B6B5141AE47E16A6340544166666606176B514152B81EE56940544185EB51D80D6B514152B81EE5744054415C8FC2050A6B514148E17A347640544148E17AD4056B5141B81E858B794054411F85EB41056B5141F6285C3F7E405441295C8F92FD6A514114AE47218440544185EB51B8F86A514152B81EC5864054419A9999E9F66A51411F85EBC189405441D7A3707DF66A514148E17A648D40544152B81E55F36A514185EB519892405441EC51B88EF06A5141C3F5287C92405441B81E857BEB6A5141A4703D3A9A405441C3F5284CEB6A5141C3F5282C9B40544100000000EB6A514152B81E059F4054419A9999B9E86A51411F85EBE1A14054418FC2F528E86A514100000080A5405441713D0A87E56A51418FC2F5E8AA4054410500000048E17AE4196B51418FC2F5B86840544185EB51181B6B5141666666366740544152B81E251D6B51413D0AD7E36840544185EB51F81B6B5141EC51B85E6A40544148E17AE4196B51418FC2F5B868405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>532034 - 1053047
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002000000052B81E75FA16514185EB51B8B0855441713D0AF703175141EC51B8DEA98554411F85EBA10F17514133333353A0855441000000000517514185EB51989B8554419A9999B90217514185EB51C89A855441B81E85DBF7165141EC51B84EA485544114AE4751F716514166666696A385544166666656EE16514185EB5148AA855441E17A144EE616514166666646B0855441713D0A87E516514100000090AF85544146C9AF18DE16514136BF4CEAB58554411F85EBD1DB1651411F85EB01B18554411F85EB21E01651417B14AE37AE855441EC51B85EDE16514166666676AB855441EC51B81EDC165141295C8FB2A7855441EC51B88EDA1651415C8FC2D5A485544114AE4781D81651411F85EB81A18554417B14AE57C11651413D0AD773B2855441C3F528ACC2165141AE47E11AB985544187B92DD8C4165141A6CB6AE5BF8554411D0B8E91C2165141E080BBDAC085544146FB9421C116514124F20D74C1855441E17A14FEBE165141F6285C5FC2855441295C8F42BA165141713D0A37C4855441F6285C4FBD165141B81E85BBCD8554412EA0E394BD1651416AA74154CF855441E17A14CECD165141E17A14CEC9855441295C8FD2D416514133333383C78554413D0AD753E31651418FC2F578C0855441C3F528BCEF1651413D0AD7B3B8855441A4703DCAEF1651415C8FC295B785544152B81E75FA16514185EB51B8B0855441
+</a>
+
+<b>
+01060000000100000001030000000100000017000000295C8F42BA165141713D0A37C4855441F6285C4FBD165141B81E85BBCD8554412EA0E394BD1651416AA74154CF855441E17A14CECD165141E17A14CEC9855441295C8FD2D416514133333383C78554411F2A105FE316514137657291C08554413D0AD753E31651418FC2F578C08554410BD8DE6BE3165141584AE969C0855441DF1F5AA5DE165141FD83E652B585544146C9AF18DE16514136BF4CEAB58554411F85EBD1DB1651411F85EB01B18554411F85EB21E01651417B14AE37AE855441EC51B85EDE16514166666676AB855441EC51B81EDC165141295C8FB2A7855441EC51B88EDA1651415C8FC2D5A485544114AE4781D81651411F85EB81A18554417B14AE57C11651413D0AD773B2855441C3F528ACC2165141AE47E11AB98554418CB92DD8C4165141A6CB6AE5BF8554411B0B8E91C2165141E080BBDAC08554418C252AD4C11651418720A529C1855441E17A14FEBE165141F6285C5FC2855441295C8F42BA165141713D0A37C4855441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>532034 - 3340751
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002000000052B81E75FA16514185EB51B8B0855441713D0AF703175141EC51B8DEA98554411F85EBA10F17514133333353A0855441000000000517514185EB51989B8554419A9999B90217514185EB51C89A855441B81E85DBF7165141EC51B84EA485544114AE4751F716514166666696A385544166666656EE16514185EB5148AA855441E17A144EE616514166666646B0855441713D0A87E516514100000090AF85544146C9AF18DE16514136BF4CEAB58554411F85EBD1DB1651411F85EB01B18554411F85EB21E01651417B14AE37AE855441EC51B85EDE16514166666676AB855441EC51B81EDC165141295C8FB2A7855441EC51B88EDA1651415C8FC2D5A485544114AE4781D81651411F85EB81A18554417B14AE57C11651413D0AD773B2855441C3F528ACC2165141AE47E11AB985544187B92DD8C4165141A6CB6AE5BF8554411D0B8E91C2165141E080BBDAC085544146FB9421C116514124F20D74C1855441E17A14FEBE165141F6285C5FC2855441295C8F42BA165141713D0A37C4855441F6285C4FBD165141B81E85BBCD8554412EA0E394BD1651416AA74154CF855441E17A14CECD165141E17A14CEC9855441295C8FD2D416514133333383C78554413D0AD753E31651418FC2F578C0855441C3F528BCEF1651413D0AD7B3B8855441A4703DCAEF1651415C8FC295B785544152B81E75FA16514185EB51B8B0855441
+</a>
+
+<b>
+01060000000100000001030000000100000017000000295C8F42BA165141713D0A37C4855441F6285C4FBD165141B81E85BBCD8554412EA0E394BD1651416AA74154CF855441E17A14CECD165141E17A14CEC9855441295C8FD2D416514133333383C78554411F2A105FE316514137657291C08554413D0AD753E31651418FC2F578C08554410BD8DE6BE3165141584AE969C0855441DF1F5AA5DE165141FD83E652B585544146C9AF18DE16514136BF4CEAB58554411F85EBD1DB1651411F85EB01B18554411F85EB21E01651417B14AE37AE855441EC51B85EDE16514166666676AB855441EC51B81EDC165141295C8FB2A7855441EC51B88EDA1651415C8FC2D5A485544114AE4781D81651411F85EB81A18554417B14AE57C11651413D0AD773B2855441C3F528ACC2165141AE47E11AB98554418CB92DD8C4165141A6CB6AE5BF8554411B0B8E91C2165141E080BBDAC08554418C252AD4C11651418720A529C1855441E17A14FEBE165141F6285C5FC2855441295C8F42BA165141713D0A37C4855441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>912429 - 912681
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000020000000B64B10F7EBE350413E079B0F39A45441CDCCCCCCEDE35041B81E854B3BA45441E5AA5EFFEFE35041032D91B43DA4544182AEFC6CF8E350411D440E3445A454415C3F1C20FCE35041260EEAB147A454410B51D53EFFE350415296A58C49A454418C22B77F02E45041541C2C6D4BA45441AE87A9480DE450415DCA14A651A45441F8C19C7614E45041FBFD68C056A4544155BC931A15E4504164BECF3357A45441458ADC0919E45041D088E9C159A45441CBD67C7124E450411E1DB09960A454415BC26BC72CE45041DB89947264A45441A81A3FF638E4504185ED65F967A45441E7197D4F42E450419F8C37CA68A454419FAF789642E45041864BFBCE68A45441E1ADDC6150E45041BD9F05BC69A454410AD7A3B052E450413D0AD73369A454418FC2F52842E4504148E17A7466A4544114AE47A13AE450413D0AD7A364A45441E17A144E2EE450418FC2F59860A45441F6285C3F25E450417B14AE175CA454413D0AD7331EE45041333333E357A45441F6285C9F1FE45041EC51B80E55A454413D0AD7E31DE45041AE47E18A53A4544152B81E0519E450417B14AED754A45441E17A14AE08E45041713D0AC74AA45441F7DF61B8FBE3504159E2E34E42A454411EDFB876F1E35041FD0608F73AA4544114AE4741EEE350417B14AE4738A45441F6285C1FECE35041295C8F0239A45441B64B10F7EBE350413E079B0F39A45441
+</a>
+
+<b>
+010600000001000000010300000001000000210000009AAF789642E45041884BFBCE68A45441EB197D4F42E450419D8C37CA68A45441A51A3FF638E4504184ED65F967A454415DC26BC72CE45041DB89947264A45441CED67C7124E45041231DB09960A45441408ADC0919E45041CD88E9C159A45441D4B996F916E450418CD8F28458A45441FDC19C7614E45041FEFD68C056A45441AE87A9480DE450415FCA14A651A454415D7344B0FCE350410BE8FF1248A454410A9FAFFCF4E35041402F33E342A454418BF6136CF1E3504125A497443FA45441CDCCCCCCEDE35041B81E854B3BA4544195F40FBCEBE35041AA28C5C738A45441BC46C8F0E9E35041CDFD64B739A45441996F2676E8E350410115F17C3AA454412B9DFF0FEAE35041364B21313DA4544166666646EDE3504185EB517840A45441FCD009AEF0E350411BEA0FC643A4544166666626F4E35041D7A3707D46A4544148E17A14FDE35041AE47E15A4CA45441C3F5286C09E45041666666E652A45441CDCCCCDC0FE450417B14AEC757A4544148E17AC41BE45041CDCCCC3C61A454419A9999791CE450419A99991962A454419A9999D926E4504185EB510867A454413D0AD7C32EE45041F6285C2F6AA4544185EB517833E450413D0AD7636BA45441E17A142E40E45041EC51B8AE6BA454415C8FC2B545E450413D0AD7C36BA454411F85EB114BE4504148E17AF46AA45441DDADDC6150E45041BF9F05BC69A454419AAF789642E45041884BFBCE68A45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986009 - 3104470
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001100000066666656D71051413D0AD793014A55411F85EBF1D3105141A4703DBA004A5541E17A141ECB105141CDCCCC6CFF495541666666B6BB105141AE47E16AFE49554148E17A54B71051413D0AD7C3FD4955410AD7A340B1105141295C8FD2FB495541EC51B8AEB11051415C8FC2F5FC4955411F85EBF1B2105141E17A144E004A55419A9999E9B3105141F6285C7F034A55417B14AE17BA105141000000A00E4A55418FC2F568BD10514114AE4731144A554148E17A24E51051413D0AD7030A4A5541B81E858BE210514114AE4781064A5541CDCCCC6CE1105141C3F5284C044A55417B14AEE7DF105141E17A144E014A55415C8FC285DF105141D7A3704D004A554166666656D71051413D0AD793014A5541
+</a>
+
+<b>
+01060000000100000001030000000100000023000000AF594277D01051412CA0D236004A5541BE1C952CCB1051419399F06EFF495541D51A54CCC6105141B7A07B24FF495541C29C6F8DC1105141ED17A8CCFE495541D0D74601BE105141BB214391FE495541666666B6BB105141AE47E16AFE495541F712328DB8105141754466F2FD49554148E17A54B71051413D0AD7C3FD4955410AD7A340B1105141295C8FD2FB495541EC51B8AEB11051415C8FC2F5FC4955411F85EBF1B2105141E17A144E004A55419A9999E9B3105141F6285C7F034A5541DB6BAE06B6105141EAE29C4D074A5541F5309F6FB8105141C68474A40B4A55417657128EBA10514158FAAF660F4A55412E2E73D9BC10514133347040134A5541820F2E6FBD1051410F909E31144A55410D7AFFCDC2105141FCC386CF124A55414D61121AD0105141783992670F4A5541FC218256D7105141EE91118D0D4A5541EA74B260E1105141476E77000B4A554148E17A24E51051413D0AD7030A4A55413B018C54E41051415014D9E3084A5541DDA0869EE21051412D70F69A064A5541B81E858BE210514114AE4781064A5541140ED2E6E11051412308A93C054A5541EB97E6B5E0105141A5BD13E4024A5541DA7C9315E01051415D2070A8014A554162E9A4D7DF10514136850324014A55415C8FC285DF105141D7A3704D004A5541930DE8C5DB1051410B83F5E2004A554166666656D71051413D0AD793014A5541CB203C62D3105141670A0AA5004A5541D1305349D1105141B669D155004A5541AF594277D01051412CA0D236004A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986009 - 3391341
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001100000066666656D71051413D0AD793014A55411F85EBF1D3105141A4703DBA004A5541E17A141ECB105141CDCCCC6CFF495541666666B6BB105141AE47E16AFE49554148E17A54B71051413D0AD7C3FD4955410AD7A340B1105141295C8FD2FB495541EC51B8AEB11051415C8FC2F5FC4955411F85EBF1B2105141E17A144E004A55419A9999E9B3105141F6285C7F034A55417B14AE17BA105141000000A00E4A55418FC2F568BD10514114AE4731144A554148E17A24E51051413D0AD7030A4A5541B81E858BE210514114AE4781064A5541CDCCCC6CE1105141C3F5284C044A55417B14AEE7DF105141E17A144E014A55415C8FC285DF105141D7A3704D004A554166666656D71051413D0AD793014A5541
+</a>
+
+<b>
+01060000000100000001030000000100000023000000AF594277D01051412CA0D236004A5541BE1C952CCB1051419399F06EFF495541D51A54CCC6105141B7A07B24FF495541C29C6F8DC1105141ED17A8CCFE495541D0D74601BE105141BB214391FE495541666666B6BB105141AE47E16AFE495541F712328DB8105141754466F2FD49554148E17A54B71051413D0AD7C3FD4955410AD7A340B1105141295C8FD2FB495541EC51B8AEB11051415C8FC2F5FC4955411F85EBF1B2105141E17A144E004A55419A9999E9B3105141F6285C7F034A5541DB6BAE06B6105141EAE29C4D074A5541F5309F6FB8105141C68474A40B4A55417657128EBA10514158FAAF660F4A55412E2E73D9BC10514133347040134A5541820F2E6FBD1051410F909E31144A55410D7AFFCDC2105141FCC386CF124A55414D61121AD0105141783992670F4A5541FC218256D7105141EE91118D0D4A5541EA74B260E1105141476E77000B4A554148E17A24E51051413D0AD7030A4A55413B018C54E41051415014D9E3084A5541DDA0869EE21051412D70F69A064A5541B81E858BE210514114AE4781064A5541140ED2E6E11051412308A93C054A5541EB97E6B5E0105141A5BD13E4024A5541DA7C9315E01051415D2070A8014A554162E9A4D7DF10514136850324014A55415C8FC285DF105141D7A3704D004A5541930DE8C5DB1051410B83F5E2004A554166666656D71051413D0AD793014A5541CB203C62D3105141670A0AA5004A5541D1305349D1105141B669D155004A5541AF594277D01051412CA0D236004A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986079 - 57260
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000005000000B4B4433708D15041EF3E15BE03BC5441A21ADA0F03D15041E169C9D4BCBB5441813280DFF3D050411C3E87A7BDBB5441EC51B89EF8D0504152B81E15F7BB5441B4B4433708D15041EF3E15BE03BC5441
+</a>
+
+<b>
+0106000000020000000103000000010000000B0000008E1247FC04D150413776E24BD7BB5441E32E14BE08D150411593812B04BC54411F85EB810DD150419A99990908BC5441B81E85EB04D15041F6285C1FA0BB54417B14AEA7F1D05041C3F528CCA2BB5441E94130A5F3D05041FFA276E5BABB5441D51329AB02D150411E92B131BABB5441E0CB99E102D15041F8224BD7BCBB54419E1ADA0F03D15041E169C9D4BCBB5441BACA8CC804D1504178F22E84D4BB54418E1247FC04D150413776E24BD7BB5441010300000001000000040000009BD82E6C05D15041FA4F8C4FDDBB5441B6B4433708D15041EC3E15BE03BC54410FFA2CB708D150411435E72504BC54419BD82E6C05D15041FA4F8C4FDDBB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>865868 - 197196
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000004010000295C8F92DE325141AE47E19A9639554133333313E03251410AD7A3A0A0395541295C8FC2DD325141C3F5282CA8395541F6285CFFDB325141A4703D8AAD3955418FC2F5A8DA325141295C8F12B1395541D7A370CDD832514100000010B53955410AD7A360DA3251411F85EB61B539554185EB5158D93251418FC2F5D8BC3955413D0AD713D93251415C8FC2F5C2395541666666C6D83251410AD7A360C53955410AD7A320D9325141713D0A47C83955413D0AD7D3D8325141AE47E10ACD395541C3F5281CD83251411F85EBF1D039554152B81E85D7325141D7A370FDD3395541A4703D0AD83251419A9999D9D4395541000000C0D83251410AD7A3F0D439554100000020DA3251415C8FC215D53955419A9999C9DB32514152B81EE5CF395541D7A3704DDD325141F6285C3FCA395541713D0AF7DE325141713D0A77C53955417B14AEB7E23251413D0AD733BD3955413D0AD7D3E13251419A9999E9B539554152B81EA5E5325141295C8F32B6395541AE47E13AF032514148E17AE4B6395541713D0A77F2325141666666A6B7395541D7A3707DF3325141EC51B8CEBA39554152B81ED5F4325141B81E857BBD395541CDCCCC9CF532514100000020BD395541B81E854BF5325141295C8F42BC39554100000030F5325141B81E855BBB395541A4703D4AF53251413D0AD783BA3955415C8FC285F5325141C3F528FCB939554166666686F5325141B81E850BB939554152B81E55F532514148E17A64B83955417B14AE17F5325141E17A14EEB73955417B14AE77F432514185EB5178B7395541A4703D9AF3325141666666E6B6395541E17A14DEF132514133333323B6395541713D0A47F1325141713D0AA7B53955415C8FC2C5F0325141D7A370CDB4395541AE47E1DAF032514166666636B43955419A9999B9F1325141C3F528DCB2395541B81E85BBF1325141EC51B81EB2395541B81E857BF132514114AE47C1B03955417B14AE67F1325141C3F5280CAF39554100000080F132514148E17A54AE3955419A999919F2325141295C8F52AD39554185EB5128F2325141B81E85CBAC395541B81E85DBF132514152B81E85AC39554133333323F13251410AD7A3C0AC395541B81E850BEF32514166666656AE395541EC51B83EEE3251411F85EB01AE395541C3F5282CED325141D7A370CDAD395541E17A142EEC32514185EB5118AD395541A4703D9AEB3251418FC2F568AC3955410AD7A360EB325141EC51B81EAB39554152B81E55EB3251417B14AE67AA39554148E17AB4EB325141EC51B80EA939554166666646EC3251418FC2F548A739554100000070EC325141D7A3700DA63955413D0AD793EC3251419A999939A5395541F6285CEFEC32514185EB51B8A4395541A4703D8AEF3251419A999979A43955415C8FC205F03251411F85EB41A43955417B14AE17F0325141AE47E1DAA3395541295C8F12F0325141713D0AE7A2395541713D0A57F032514100000040A2395541A4703DFAF0325141B81E856BA23955413D0AD7F3F1325141713D0AE7A23955413D0AD7A3F23251415C8FC205A33955418FC2F548F33251417B14AED7A2395541713D0AF7F3325141295C8F42A2395541E17A140EF4325141B81E853BA1395541A4703D7AF3325141C3F528CCA039554148E17A74F2325141E17A148EA039554133333363F13251419A9999C99F3955411F85EB01F1325141CDCCCC1C9F395541CDCCCC8CF03251419A9999F99C39554148E17AD4F0325141295C8F629C395541F6285C1FF1325141EC51B8DE9B395541D7A3706DF2325141C3F5284C9B395541F6285CEFF2325141AE47E1FA9A395541A4703D7AF3325141D7A3707D9A3955417B14AEE7F33251415C8FC2C599395541C3F5286CF432514185EB5138993955411F85EB91F53251418FC2F53898395541000000F0F532514185EB51B89739554114AE4711F6325141EC51B8DE9639554114AE47F1F532514152B81ED595395541A4703D4AF5325141666666F693395541EC51B8FEF4325141A4703D1A93395541295C8F22F53251416666666692395541713D0A77F5325141333333C391395541EC51B8EEF5325141EC51B82E91395541333333A3F6325141D7A370DD903955413D0AD783F7325141F6285C7F9039554185EB5148F832514114AE475190395541666666E6F83251413333330390395541D7A3704DF9325141C3F5285C8F3955415C8FC275F932514185EB51D88E395541AE47E15AF9325141295C8F728E3955419A9999C9F8325141D7A370BD8E395541F6285C1FF8325141E17A143E8F39554152B81E15F7325141333333A38F395541295C8FA2F632514148E17A748F39554114AE4721F63251411F85EBF18E39554185EB51F8F53251415C8FC2258E395541AE47E10AF63251413D0AD7E38D395541713D0A27F63251418FC2F5A88D3955411F85EB51F6325141B81E856B8D395541B81E85ABF63251417B14AE178D39554148E17A34F7325141F6285CBF8C39554114AE47C1F7325141713D0A778C3955417B14AE57F8325141F6285CFF8B395541A4703D7AF83251413D0AD7E38B395541A4703D8AF8325141F6285C9F8B395541295C8FA2F832514152B81E458B395541B81E858BF8325141000000E08A395541CDCCCC8CF8325141CDCCCCAC8A395541713D0A47F83251419A9999798A395541C3F528ECF73251419A9999498A39554100000080F732514152B81E258A395541E17A141EF73251413D0AD7338A39554114AE47D1F6325141666666468A395541F6285C5FF63251419A9999998A395541E17A14EEF53251413D0AD7E38A39554100000070F532514114AE47218B395541D7A3701DF53251410AD7A3608B3955413D0AD7C3F432514185EB51A88B395541EC51B88EF432514152B81EC58B39554185EB5138F43251417B14AEC78B395541E17A14DEF33251411F85EBB18B395541295C8F82F3325141C3F5287C8B395541C3F528FCF232514148E17A348B3955419A999969F23251410AD7A3E08A395541F6285C2FF2325141333333B38A395541EC51B80EF23251417B14AE778A39554152B81EF5F1325141F6285C3F8A3955410AD7A3F0F1325141666666068A395541CDCCCCFCF132514133333393893955418FC2F508F2325141EC51B83E8939554148E17A24F232514166666606893955411F85EB41F232514185EB51D888395541C3F5286CF2325141E17A14AE883955418FC2F588F232514185EB519888395541E17A14BEF2325141CDCCCC7C883955415C8FC2F5F2325141EC51B86E88395541A4703D2AF3325141E17A146E88395541B81E855BF33251410AD7A37088395541B81E858BF3325141295C8F8288395541CDCCCCACF332514148E17A8488395541C3F528DCF332514152B81E7588395541000000F0F33251410AD7A350883955418FC2F5E8F3325141EC51B82E88395541295C8FC2F332514114AE47018839554148E17A94F33251415C8FC2E587395541A4703D3AF3325141CDCCCCAC87395541713D0AF7F23251413D0AD79387395541AE47E1BAF2325141D7A3707D87395541E17A148EF232514148E17A54873955418FC2F578F2325141713D0A17873955411F85EB71F23251415C8FC2D58639554133333363F2325141295C8F6286395541295C8F82F2325141333333F385395541333333B3F232514185EB518885395541B81E85DBF2325141A4703D3A853955415C8FC215F332514114AE4711853955417B14AE57F33251413D0AD7F384395541A4703DAAF3325141000000E084395541AE47E12AF4325141713D0AD784395541333333C3F43251413D0AD7D3843955413D0AD713F5325141CDCCCCBC843955419A999949F5325141CDCCCC8C84395541F6285C6FF5325141C3F5284C843955419A999989F53251416666660684395541713D0A97F5325141295C8FA283395541333333A3F53251411F85EB318339554148E17AE4F5325141AE47E18A823955415C8FC2F5F5325141713D0A578239554148E17A24F63251410AD7A31082395541B81E854BF63251413D0AD7E381395541AE47E17AF632514148E17AB481395541D7A370CDF6325141AE47E17A813955410AD7A330F73251413333330381395541E17A143EF73251411F85EBB1803955417B14AE37F7325141CDCCCC5C80395541A4703D1AF7325141C3F528EC7E395541CDCCCC2CF7325141295C8FD27D3955418FC2F538F73251419A9999797D39554185EB5158F7325141B81E851B7D3955417B14AE67F7325141C3F528BC7C3955415C8FC255F732514148E17A547C395541F6285C2FF73251411F85EB017C39554114AE4701F7325141CDCCCC7C7B395541666666B6F6325141666666267B395541C3F5285CF6325141CDCCCCEC7A395541E17A14FEF5325141B81E85AB7A3955415C8FC2B5F53251413D0AD7837A395541713D0A77F5325141C3F5286C7A395541B81E853BF5325141295C8F227A39554133333333F53251413D0AD7D3793955418FC2F548F5325141713D0A377939554185EB5158F532514185EB516878395541F6285C5FF53251415C8FC2B57739554152B81E85F5325141D7A3704D77395541D7A370ADF53251415C8FC2057739554152B81EE5F5325141AE47E1DA76395541713D0A37F6325141C3F528CC76395541B81E858BF6325141F6285CBF76395541EC51B8DEF6325141333333C376395541D7A3703DF732514114AE47D176395541CDCCCC7CF7325141B81E85FB763955410AD7A3B0F73251419A99992977395541AE47E1EAF73251413333336377395541EC51B81EF8325141CDCCCC7C773955419A999959F8325141F6285C7F77395541F6285C7FF83251415C8FC26577395541AE47E18AF832514152B81E457739554148E17A84F8325141CDCCCC0C773955415C8FC275F8325141AE47E1CA7639554166666666F8325141B81E856B763955417B14AEA7F8325141CDCCCCDC75395541CDCCCC8CF832514152B81E35753955419A999989F83251410AD7A3D07439554133333373F8325141EC51B87E743955410AD7A350F8325141E17A140E74395541C3F5282CF8325141D7A3708D733955419A999909F8325141C3F528DC72395541333333F3F7325141A4703D5A72395541000000F0F7325141333333E3713955419A999909F8325141AE47E18A71395541E17A141EF832514114AE47317139554185EB51F8F73251417B14AEE770395541333333D3F7325141666666567039554152B81EE5F7325141333333B36F3955419A9999E9F732514185EB51E86E3955417B14AE17F83251417B14AE476E3955415C8FC275F8325141E17A14CE6D395541666666C6F8325141295C8F226D395541EC51B88EF932514148E17A146C395541D7A370BDF932514152B81E656B395541000000E0F9325141A4703D8A6A395541713D0A27FA325141EC51B84E6939554114AE4761FA3251413333335368395541295C8F62FA325141C3F5281C68395541AE47E11AF9325141B81E85BB673955413D0AD7F3F7325141B81E854B693955413D0AD7F3F4325141D7A370ED6B395541CDCCCCDCF03251417B14AE976E3955413D0AD7B3EF3251418FC2F5586F3955411F85EBB1EA32514185EB51E8723955410AD7A380E8325141666666E674395541F6285C1FE7325141A4703D6A763955413D0AD7D3E532514114AE47F1773955411F85EB21E53251410AD7A30079395541AE47E1AAE2325141A4703D5A7D395541AE47E12AE13251410AD7A320813955415C8FC205DF325141F6285CFF88395541295C8F52DE325141666666D68F395541295C8F92DE325141AE47E19A96395541
+</a>
+
+<b>
+010600000001000000010300000001000000700100000496B98EF432514118831EC58B39554165B46184F432514163236DC58B3955410F5D5238F4325141E851AFC78B3955412F384502F43251411792A5BA8B395541E17A14DEF33251411F85EBB18B395541295C8F82F3325141C3F5287C8B395541C3F528FCF232514148E17A348B395541972681B8F2325141A10AC70D8B3955416EA29869F2325141AF32A4E08A3955418B779033F2325141BBF47AB68A395541F6285C2FF2325141333333B38A395541382C2C17F2325141D8ED17878A395541EC51B80EF23251417B14AE778A39554152B81EF5F1325141F6285C3F8A3955410AD7A3F0F1325141666666068A395541248E6CF3F13251415F5C06EC89395541A5F7CBFCF13251414320329389395541DA2DCE02F2325141FF757A69893955418FC2F508F2325141EC51B83E893955418AA60622F232514132146C0B893955413CFA7A24F2325141110166068939554119C9DC2AF23251418EFB68FC883955411F85EB41F232514185EB51D888395541C3F5286CF2325141E17A14AE88395541897BB675F232514179C0DCA688395541BC9AF488F2325141FC5D529888395541ADEBF88CF2325141CCC63D9688395541E17A14BEF2325141CDCCCC7C883955415C8FC2F5F2325141EC51B86E88395541A4703D2AF3325141E17A146E8839554163A7804AF3325141B287C16F8839554188BC845BF3325141645BA370883955415B6E6764F332514188EAF47388395541B81E858BF3325141295C8F8288395541841F9BABF3325141AB3E698488395541A7E8CCACF332514140D87A84883955417CB753C4F33251416980D97C88395541A2E828DCF33251419C9E1E758839554116E3F4DFF3325141DAA0236E88395541000000F0F33251410AD7A3508839554183B533EEF33251410B13FA4788395541E157F4E8F3325141E71FB72E88395541D72B8FC2F33251410DC0480188395541679126A4F3325141E06D1EEF8739554148E17A94F33251415C8FC2E587395541A4703D3AF3325141CDCCCCAC87395541713D0AF7F23251413D0AD79387395541AE47E1BAF2325141D7A3707D873955415A754AADF2325141CC000471873955411A5A138EF2325141254E7A548739554187E0F478F2325141DF55091787395541BAF06772F23251419F4644DA863955411F85EB71F23251415C8FC2D586395541369C886EF2325141670C42BB86395541CEEA3263F23251410B348E62863955411DE38E82F2325141B49833F385395541A809C08DF232514199729CDA85395541333333B3F232514185EB5188853955419DD705C5F2325141BC53CE6585395541950C84DBF2325141B2333D3A853955411E3F5009F33251418E9A081A853955415C8FC215F332514114AE4711853955411F93E715F33251412F2637118539554177F5AC57F3325141F3B4D5F384395541C7DD448EF33251410DC2B8E684395541A4703DAAF3325141000000E084395541AE47E12AF4325141713D0AD78439554172FC8654F43251412C412AD684395541DA0734C3F43251418940D6D384395541F4D05FF9F432514106945CC4843955418398D613F53251414BEDCCBC84395541776AFE19F5325141E3364EB7843955419A999949F5325141CDCCCC8C84395541E833766DF532514158DA684F843955415B1F5C6FF5325141AAE0284C84395541E8930D75F5325141925C063D84395541977B9989F532514130B6660684395541AD14BF8AF5325141DC41E2FD83395541713D0A97F5325141295C8FA283395541749D5BA0F532514113413F4C83395541161533A3F5325141DD47EA318339554133FCEBBEF53251416319FCEA8239554148E17AE4F5325141AE47E18A823955413EA894F3F5325141CBF2935D82395541F986C2F5F5325141FFF909578239554156BD7A24F6325141407BA2108239554111C00136F6325141F5F886FC81395541B81E854BF63251413D0AD7E381395541AE47E17AF632514148E17AB481395541D7A370CDF6325141AE47E17A813955417AECCC18F7325141BB12F61F8139554150FEA330F7325141B345320381395541E17A143EF73251411F85EBB1803955412C2D163AF732514103E2CE7C803955411B44AD37F7325141F653CC5C80395541975DCA2BF7325141BB33ECC77F395541A4703D1AF7325141C3F528EC7E395541D79EBB26F7325141B1D79C2E7E3955414449CC2CF7325141BB438ED27D395541D3D5F530F73251414BC91FB47D3955418FC2F538F73251419A9999797D39554185EB5158F7325141B81E851B7D3955417B14AE67F7325141C3F528BC7C3955412FCBC456F732514141F2505A7C395541FF76C255F7325141E6AC7A547C395541F6285C2FF73251411F85EB017C39554114AE4701F7325141CDCCCC7C7B395541C540A7FAF63251415E6227757B395541E69B65B6F6325141AD4A66267B3955411B789D62F6325141D497EBF07A395541C3F5285CF6325141CDCCCCEC7A395541E17A14FEF5325141B81E85AB7A3955410ADD95CBF5325141DEA3D08F7A3955411A9EC3B5F5325141C135D8837A39554147CF0877F53251415FED286C7A395541AB29853BF5325141F60190227A395541571F3233F53251412F57D8D3793955413062F33CF5325141C4D5938D793955418FC2F548F5325141713D0A377939554185EB5158F532514185EB516878395541F6285C5FF53251415C8FC2B5773955416217367EF5325141F5D986607739554114151E85F53251410F0E724D77395541D7A370ADF53251415C8FC20577395541F8397DD1F5325141D97CFFE9763955419D501FE5F53251418149E0DA763955415A460B37F6325141998727CC763955419A2C858BF63251414F185CBF76395541A14E0393F632514114B1B4BF76395541EC51B8DEF6325141333333C37639554172002901F7325141AFC951C8763955419F7F6F3DF7325141EC4646D176395541C50BFB67F73251415DF3A3ED76395541CDCCCC7CF7325141B81E85FB763955410AD7A3B0F73251419A99992977395541AE47E1EAF73251413333336377395541EC51B81EF8325141CDCCCC7C7739554139C27647F83251411E4C927E77395541DF8C9859F832514121B15B7F773955411CD5427EF8325141614A816677395541F6285C7FF83251415C8FC26577395541AE47E18AF832514152B81E457739554148E17A84F8325141CDCCCC0C773955415C8FC275F8325141AE47E1CA7639554166666666F8325141B81E856B76395541E998667AF832514191F6CA3F7639554180BBACA7F83251414E3CCCDC753955417406CC8CF832514105681F3575395541618D678BF832514119244D09753955419A999989F83251410AD7A3D07439554111F3EB79F8325141BE584D9774395541A9493273F832514187F3B67E7439554125F9CF65F832514173191653743955410AD7A350F8325141E17A140E74395541C3F5282CF8325141D7A3708D733955419A999909F8325141C3F528DC72395541333333F3F7325141A4703D5A72395541000000F0F7325141333333E3713955415D3561FEF7325141E50797B1713955419A999909F8325141AE47E18A71395541E17A141EF832514114AE47317139554185EB51F8F73251417B14AEE770395541AD57E1E7F73251410D9456A770395541412532D3F7325141FC8F67567039554153751BDFF7325141E579F5E96F39554152B81EE5F7325141333333B36F3955419A9999E9F732514185EB51E86E3955417B14AE17F83251417B14AE476E3955415C8FC275F8325141E17A14CE6D395541A5C87D85F832514193A39EAC6D395541A83765C6F8325141CE588F226D39554166017787F9325141B2FD421E6C39554131E1B78EF932514146797B146C395541151170BDF9325141EF2E1F656B395541DEE80EDAF93251412403DFAF6A395541000000E0F9325141A4703D8A6A395541713D0A27FA325141EC51B84E6939554114AE4761FA3251413333335368395541E63BD661FA325141EC60413B68395541C3F28E62FA325141ADD6281C68395541AE47E11AF9325141B81E85BB67395541653689E3F832514159748D066839554113F4D7F3F73251419890854B693955413D0AD7F3F4325141D7A370ED6B395541E37BCEDCF032514197FBAC976E395541D6A6D6B3EF325141E5FEF6586F395541AA2FEBB1EA3251412E3952E8723955415FC731ACEA325141C9F485ED72395541F606A580E832514133BD67E67439554143735B1FE7325141E9B53E6A76395541E61D30B9E6325141CD73C1E2763955413D0AD7D3E532514114AE47F17739554180E0BA98E532514143F36E4B783955418660EC21E53251413DB9A400793955418055E2AAE2325141F4213D5A7D395541975D78F7E13251413B35C11D7F395541AE47E12AE13251410AD7A320813955415C8FC205DF325141F6285CFF88395541295C8F52DE325141666666D68F3955414C4F2E83DE325141755491FA94395541E9CD8F92DE3251418E57E29A96395541AE75BFFDDE325141D9CFE1659939554133333313E03251410AD7A3A0A039554184AB205ADF32514171F6D2FBA2395541E27A90C2DD32514139262A2CA83955419C13E2D0DC325141B60F290CAB395541F6285CFFDB325141A4703D8AAD3955418FC2F5A8DA325141295C8F12B1395541D7A370CDD832514100000010B53955410AD7A360DA3251411F85EB61B539554172F0D6D3E1325141599999E9B5395541FF5B11E8E13251418F311CEBB53955412E7D1EA5E5325141A7088F32B639554138A34293E732514141360153B6395541AE47E13AF032514148E17AE4B6395541967CEB3BF232514100D65C92B7395541156C0A77F23251411C4766A6B7395541A683717DF33251410C29B7CEBA395541F97F8966F4325141988C2D9FBC39554152B81ED5F4325141B81E857BBD395541C9369B1FF5325141C1646159BD395541B8BACC9CF5325141BCCEFF1FBD395541B81E854BF5325141295C8F42BC395541BE86E646F5325141DE12C71BBC39554100000030F5325141B81E855BBB395541A4703D4AF53251413D0AD783BA395541BDA2FC67F53251414FAB0740BA3955413A91C185F532514177E529FCB9395541600D6586F5325141A9C3840BB93955419217F055F5325141DB914067B839554106DA1E55F532514185537B64B839554125EEAD17F53251411DBE14EEB7395541F672A1A6F4325141F62CE09AB73955417B14AE77F432514185EB5178B7395541BF0DD84EF4325141C123695DB73955411AAD3C9AF332514155AE66E6B63955417D7B13DEF132514198CA3223B639554173DB8757F13251416E8D98B4B5395541713D0A47F1325141713D0AA7B53955415A35C2C5F0325141248C70CDB4395541ECAEE0DAF032514136EE6636B4395541DCC398B9F13251418B6C29DCB2395541993E7DBAF1325141C6086C84B2395541B81E85BBF1325141EC51B81EB2395541CD31C99AF132514150EDFD6BB1395541704F847BF1325141E7D548C1B03955411FCEAC67F132514110D8280CAF395541A892FF7FF132514192497C54AE3955419A999919F2325141295C8F52AD39554185EB5128F2325141B81E85CBAC395541ED8385DBF132514118151F85AC39554159D221A9F1325141501E6495AC39554133333323F13251410AD7A3C0AC395541471344FCEF325141ECF90AA0AD3955416656860BEF325141FABD6656AE395541D3FEA8F4EE3251410B66F84CAE3955411470B83EEE325141BAD7EC01AE39554193AE94AFED325141EE5F8FE6AD395541C3F5282CED325141D7A370CDAD395541E17A142EEC32514185EB5118AD395541A4703D9AEB3251418FC2F568AC395541BEF5A360EB325141069EB91EAB39554152B81E55EB3251417B14AE67AA395541E2D6747FEB32514189BA87CEA9395541E35F7AB4EB3251410424B70EA9395541733E6546EC32514113CEF648A739554172B5FE6FEC3251418FC8710DA6395541F8F0D593EC32514177AE9A39A5395541D94E0AB7EC3251417165E007A5395541F6285CEFEC32514185EB51B8A439554182AB0911EE325141CF69139DA4395541D72F3D8AEF32514164379879A439554189EA07D9EF3251418E351556A43955415C8FC205F03251411F85EB41A4395541BC954F08F032514175A04033A43955412FCBAC17F032514195E9E1DAA3395541D20B8E12F0325141085B0BE7A23955412E89F43DF03251412828307DA2395541713D0A57F032514100000040A2395541FAD608ABF0325141CF066656A2395541A4703DFAF0325141B81E856BA23955413D0AD7F3F1325141713D0AE7A23955413D0AD7A3F23251415C8FC205A33955418FC2F548F33251417B14AED7A23955410C9F09F7F3325141D8E38F42A23955414CEEAAFFF332514110790FE0A1395541E17A140EF4325141B81E853BA1395541A4703D7AF3325141C3F528CCA039554148E17A74F2325141E17A148EA039554133333363F13251419A9999C99F3955411F85EB01F1325141CDCCCC1C9F39554157DABAADF0325141A6E973939D3955414180CC8CF0325141306199F99C39554108284CB7F0325141EF3D0DA09C39554148E17AD4F0325141295C8F629C395541904731DFF032514196DCB24F9C395541F8DA5A1FF13251413D4CB7DE9B3955418A69706DF232514186F1284C9B395541E68D5BEFF2325141F077E0FA9A395541B0383D7AF3325141CC96707D9A3955419F5FADE7F33251410C2AC1C5993955412C8B9D6AF43251415A14F83999395541C3F5286CF432514185EB5138993955414B5EDF74F43251417D11BF30993955411F85EB91F53251418FC2F53898395541000000F0F532514185EB51B8973955419228EFF9F53251417C935D77973955412BB84611F63251417E07B9DE96395541C14347F1F53251410CA51DD5953955418F0045DAF5325141CD9F2C9395395541A4703D4AF5325141666666F693395541559F5F2FF532514123D013A89339554181ADB7FEF43251410BEA3C1A9339554107E98E22F5325141684465669239554147CF0877F532514156B333C3913955419C0E98BBF5325141392A266E91395541EC51B8EEF5325141EC51B82E9139554105280218F63251413F25201C91395541FD7434A3F6325141608C6FDD9039554154FED683F73251417FA35B7F903955415EDA5148F832514149E94651903955411EC019D6F83251414E2F400B90395541666666E6F83251413333330390395541D7A3704DF9325141C3F5285C8F3955413CC51563F9325141CC5762158F395541149AC175F932514175EB50D88E39554108E5E05AF9325141B45290728E3955410BC63001F93251413CA1C9A08E3955419A9999C9F8325141D7A370BD8E395541F6285C1FF8325141E17A143E8F395541BA613F01F8325141525584498F39554123DF1F15F7325141605D34A38F395541951A8EA2F632514102277C748F39554160724621F63251413FA8EAF18E395541FED0EA0EF632514125A764968E39554185EB51F8F53251415C8FC2258E3955415BB0B507F6325141749619EF8D3955418B00E10AF6325141CDE0D6E38D3955418389990FF632514122AFF8D98D395541713D0A27F63251418FC2F5A88D3955411F85EB51F6325141B81E856B8D395541B81E85ABF63251417B14AE178D3955416CA45AF7F63251416514C7E68C39554172D77B34F732514145C95ABF8C395541A4F647C1F73251411DD608778C3955416C18AE57F83251417D305BFF8B3955418F73CC6BF832514136F056EF8B395541A4703D7AF83251413D0AD7E38B395541A4703D8AF8325141F6285C9F8B39554179E87492F8325141B02FDF808B39554122FC8DA2F83251412FD31D458B395541270E858BF832514189B600E08A3955417406CC8CF8325141F53CCDAC8A395541AA6C6A57F8325141C26E9E858A395541713D0A47F83251419A9999798A3955412893033CF832514177C1C6738A395541F06528ECF7325141C1949A498A3955414337FF7FF732514115DD1F258A395541E1AE1857F7325141EBD6442B8A395541E17A141EF73251413D0AD7338A39554114AE47D1F6325141666666468A395541F6285C5FF63251419A9999998A395541E17A14EEF53251413D0AD7E38A39554100000070F532514114AE47218B39554192738C38F53251412DF0D54B8B395541A929701DF5325141A3E2A4608B3955410084D7C3F4325141A45953A88B3955410496B98EF432514118831EC58B395541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>865868 - 363766
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000004010000295C8F92DE325141AE47E19A9639554133333313E03251410AD7A3A0A0395541295C8FC2DD325141C3F5282CA8395541F6285CFFDB325141A4703D8AAD3955418FC2F5A8DA325141295C8F12B1395541D7A370CDD832514100000010B53955410AD7A360DA3251411F85EB61B539554185EB5158D93251418FC2F5D8BC3955413D0AD713D93251415C8FC2F5C2395541666666C6D83251410AD7A360C53955410AD7A320D9325141713D0A47C83955413D0AD7D3D8325141AE47E10ACD395541C3F5281CD83251411F85EBF1D039554152B81E85D7325141D7A370FDD3395541A4703D0AD83251419A9999D9D4395541000000C0D83251410AD7A3F0D439554100000020DA3251415C8FC215D53955419A9999C9DB32514152B81EE5CF395541D7A3704DDD325141F6285C3FCA395541713D0AF7DE325141713D0A77C53955417B14AEB7E23251413D0AD733BD3955413D0AD7D3E13251419A9999E9B539554152B81EA5E5325141295C8F32B6395541AE47E13AF032514148E17AE4B6395541713D0A77F2325141666666A6B7395541D7A3707DF3325141EC51B8CEBA39554152B81ED5F4325141B81E857BBD395541CDCCCC9CF532514100000020BD395541B81E854BF5325141295C8F42BC39554100000030F5325141B81E855BBB395541A4703D4AF53251413D0AD783BA3955415C8FC285F5325141C3F528FCB939554166666686F5325141B81E850BB939554152B81E55F532514148E17A64B83955417B14AE17F5325141E17A14EEB73955417B14AE77F432514185EB5178B7395541A4703D9AF3325141666666E6B6395541E17A14DEF132514133333323B6395541713D0A47F1325141713D0AA7B53955415C8FC2C5F0325141D7A370CDB4395541AE47E1DAF032514166666636B43955419A9999B9F1325141C3F528DCB2395541B81E85BBF1325141EC51B81EB2395541B81E857BF132514114AE47C1B03955417B14AE67F1325141C3F5280CAF39554100000080F132514148E17A54AE3955419A999919F2325141295C8F52AD39554185EB5128F2325141B81E85CBAC395541B81E85DBF132514152B81E85AC39554133333323F13251410AD7A3C0AC395541B81E850BEF32514166666656AE395541EC51B83EEE3251411F85EB01AE395541C3F5282CED325141D7A370CDAD395541E17A142EEC32514185EB5118AD395541A4703D9AEB3251418FC2F568AC3955410AD7A360EB325141EC51B81EAB39554152B81E55EB3251417B14AE67AA39554148E17AB4EB325141EC51B80EA939554166666646EC3251418FC2F548A739554100000070EC325141D7A3700DA63955413D0AD793EC3251419A999939A5395541F6285CEFEC32514185EB51B8A4395541A4703D8AEF3251419A999979A43955415C8FC205F03251411F85EB41A43955417B14AE17F0325141AE47E1DAA3395541295C8F12F0325141713D0AE7A2395541713D0A57F032514100000040A2395541A4703DFAF0325141B81E856BA23955413D0AD7F3F1325141713D0AE7A23955413D0AD7A3F23251415C8FC205A33955418FC2F548F33251417B14AED7A2395541713D0AF7F3325141295C8F42A2395541E17A140EF4325141B81E853BA1395541A4703D7AF3325141C3F528CCA039554148E17A74F2325141E17A148EA039554133333363F13251419A9999C99F3955411F85EB01F1325141CDCCCC1C9F395541CDCCCC8CF03251419A9999F99C39554148E17AD4F0325141295C8F629C395541F6285C1FF1325141EC51B8DE9B395541D7A3706DF2325141C3F5284C9B395541F6285CEFF2325141AE47E1FA9A395541A4703D7AF3325141D7A3707D9A3955417B14AEE7F33251415C8FC2C599395541C3F5286CF432514185EB5138993955411F85EB91F53251418FC2F53898395541000000F0F532514185EB51B89739554114AE4711F6325141EC51B8DE9639554114AE47F1F532514152B81ED595395541A4703D4AF5325141666666F693395541EC51B8FEF4325141A4703D1A93395541295C8F22F53251416666666692395541713D0A77F5325141333333C391395541EC51B8EEF5325141EC51B82E91395541333333A3F6325141D7A370DD903955413D0AD783F7325141F6285C7F9039554185EB5148F832514114AE475190395541666666E6F83251413333330390395541D7A3704DF9325141C3F5285C8F3955415C8FC275F932514185EB51D88E395541AE47E15AF9325141295C8F728E3955419A9999C9F8325141D7A370BD8E395541F6285C1FF8325141E17A143E8F39554152B81E15F7325141333333A38F395541295C8FA2F632514148E17A748F39554114AE4721F63251411F85EBF18E39554185EB51F8F53251415C8FC2258E395541AE47E10AF63251413D0AD7E38D395541713D0A27F63251418FC2F5A88D3955411F85EB51F6325141B81E856B8D395541B81E85ABF63251417B14AE178D39554148E17A34F7325141F6285CBF8C39554114AE47C1F7325141713D0A778C3955417B14AE57F8325141F6285CFF8B395541A4703D7AF83251413D0AD7E38B395541A4703D8AF8325141F6285C9F8B395541295C8FA2F832514152B81E458B395541B81E858BF8325141000000E08A395541CDCCCC8CF8325141CDCCCCAC8A395541713D0A47F83251419A9999798A395541C3F528ECF73251419A9999498A39554100000080F732514152B81E258A395541E17A141EF73251413D0AD7338A39554114AE47D1F6325141666666468A395541F6285C5FF63251419A9999998A395541E17A14EEF53251413D0AD7E38A39554100000070F532514114AE47218B395541D7A3701DF53251410AD7A3608B3955413D0AD7C3F432514185EB51A88B395541EC51B88EF432514152B81EC58B39554185EB5138F43251417B14AEC78B395541E17A14DEF33251411F85EBB18B395541295C8F82F3325141C3F5287C8B395541C3F528FCF232514148E17A348B3955419A999969F23251410AD7A3E08A395541F6285C2FF2325141333333B38A395541EC51B80EF23251417B14AE778A39554152B81EF5F1325141F6285C3F8A3955410AD7A3F0F1325141666666068A395541CDCCCCFCF132514133333393893955418FC2F508F2325141EC51B83E8939554148E17A24F232514166666606893955411F85EB41F232514185EB51D888395541C3F5286CF2325141E17A14AE883955418FC2F588F232514185EB519888395541E17A14BEF2325141CDCCCC7C883955415C8FC2F5F2325141EC51B86E88395541A4703D2AF3325141E17A146E88395541B81E855BF33251410AD7A37088395541B81E858BF3325141295C8F8288395541CDCCCCACF332514148E17A8488395541C3F528DCF332514152B81E7588395541000000F0F33251410AD7A350883955418FC2F5E8F3325141EC51B82E88395541295C8FC2F332514114AE47018839554148E17A94F33251415C8FC2E587395541A4703D3AF3325141CDCCCCAC87395541713D0AF7F23251413D0AD79387395541AE47E1BAF2325141D7A3707D87395541E17A148EF232514148E17A54873955418FC2F578F2325141713D0A17873955411F85EB71F23251415C8FC2D58639554133333363F2325141295C8F6286395541295C8F82F2325141333333F385395541333333B3F232514185EB518885395541B81E85DBF2325141A4703D3A853955415C8FC215F332514114AE4711853955417B14AE57F33251413D0AD7F384395541A4703DAAF3325141000000E084395541AE47E12AF4325141713D0AD784395541333333C3F43251413D0AD7D3843955413D0AD713F5325141CDCCCCBC843955419A999949F5325141CDCCCC8C84395541F6285C6FF5325141C3F5284C843955419A999989F53251416666660684395541713D0A97F5325141295C8FA283395541333333A3F53251411F85EB318339554148E17AE4F5325141AE47E18A823955415C8FC2F5F5325141713D0A578239554148E17A24F63251410AD7A31082395541B81E854BF63251413D0AD7E381395541AE47E17AF632514148E17AB481395541D7A370CDF6325141AE47E17A813955410AD7A330F73251413333330381395541E17A143EF73251411F85EBB1803955417B14AE37F7325141CDCCCC5C80395541A4703D1AF7325141C3F528EC7E395541CDCCCC2CF7325141295C8FD27D3955418FC2F538F73251419A9999797D39554185EB5158F7325141B81E851B7D3955417B14AE67F7325141C3F528BC7C3955415C8FC255F732514148E17A547C395541F6285C2FF73251411F85EB017C39554114AE4701F7325141CDCCCC7C7B395541666666B6F6325141666666267B395541C3F5285CF6325141CDCCCCEC7A395541E17A14FEF5325141B81E85AB7A3955415C8FC2B5F53251413D0AD7837A395541713D0A77F5325141C3F5286C7A395541B81E853BF5325141295C8F227A39554133333333F53251413D0AD7D3793955418FC2F548F5325141713D0A377939554185EB5158F532514185EB516878395541F6285C5FF53251415C8FC2B57739554152B81E85F5325141D7A3704D77395541D7A370ADF53251415C8FC2057739554152B81EE5F5325141AE47E1DA76395541713D0A37F6325141C3F528CC76395541B81E858BF6325141F6285CBF76395541EC51B8DEF6325141333333C376395541D7A3703DF732514114AE47D176395541CDCCCC7CF7325141B81E85FB763955410AD7A3B0F73251419A99992977395541AE47E1EAF73251413333336377395541EC51B81EF8325141CDCCCC7C773955419A999959F8325141F6285C7F77395541F6285C7FF83251415C8FC26577395541AE47E18AF832514152B81E457739554148E17A84F8325141CDCCCC0C773955415C8FC275F8325141AE47E1CA7639554166666666F8325141B81E856B763955417B14AEA7F8325141CDCCCCDC75395541CDCCCC8CF832514152B81E35753955419A999989F83251410AD7A3D07439554133333373F8325141EC51B87E743955410AD7A350F8325141E17A140E74395541C3F5282CF8325141D7A3708D733955419A999909F8325141C3F528DC72395541333333F3F7325141A4703D5A72395541000000F0F7325141333333E3713955419A999909F8325141AE47E18A71395541E17A141EF832514114AE47317139554185EB51F8F73251417B14AEE770395541333333D3F7325141666666567039554152B81EE5F7325141333333B36F3955419A9999E9F732514185EB51E86E3955417B14AE17F83251417B14AE476E3955415C8FC275F8325141E17A14CE6D395541666666C6F8325141295C8F226D395541EC51B88EF932514148E17A146C395541D7A370BDF932514152B81E656B395541000000E0F9325141A4703D8A6A395541713D0A27FA325141EC51B84E6939554114AE4761FA3251413333335368395541295C8F62FA325141C3F5281C68395541AE47E11AF9325141B81E85BB673955413D0AD7F3F7325141B81E854B693955413D0AD7F3F4325141D7A370ED6B395541CDCCCCDCF03251417B14AE976E3955413D0AD7B3EF3251418FC2F5586F3955411F85EBB1EA32514185EB51E8723955410AD7A380E8325141666666E674395541F6285C1FE7325141A4703D6A763955413D0AD7D3E532514114AE47F1773955411F85EB21E53251410AD7A30079395541AE47E1AAE2325141A4703D5A7D395541AE47E12AE13251410AD7A320813955415C8FC205DF325141F6285CFF88395541295C8F52DE325141666666D68F395541295C8F92DE325141AE47E19A96395541
+</a>
+
+<b>
+010600000001000000010300000001000000700100000496B98EF432514118831EC58B39554165B46184F432514163236DC58B3955410F5D5238F4325141E851AFC78B3955412F384502F43251411792A5BA8B395541E17A14DEF33251411F85EBB18B395541295C8F82F3325141C3F5287C8B395541C3F528FCF232514148E17A348B395541972681B8F2325141A10AC70D8B3955416EA29869F2325141AF32A4E08A3955418B779033F2325141BBF47AB68A395541F6285C2FF2325141333333B38A395541382C2C17F2325141D8ED17878A395541EC51B80EF23251417B14AE778A39554152B81EF5F1325141F6285C3F8A3955410AD7A3F0F1325141666666068A395541248E6CF3F13251415F5C06EC89395541A5F7CBFCF13251414320329389395541DA2DCE02F2325141FF757A69893955418FC2F508F2325141EC51B83E893955418AA60622F232514132146C0B893955413CFA7A24F2325141110166068939554119C9DC2AF23251418EFB68FC883955411F85EB41F232514185EB51D888395541C3F5286CF2325141E17A14AE88395541897BB675F232514179C0DCA688395541BC9AF488F2325141FC5D529888395541ADEBF88CF2325141CCC63D9688395541E17A14BEF2325141CDCCCC7C883955415C8FC2F5F2325141EC51B86E88395541A4703D2AF3325141E17A146E8839554163A7804AF3325141B287C16F8839554188BC845BF3325141645BA370883955415B6E6764F332514188EAF47388395541B81E858BF3325141295C8F8288395541841F9BABF3325141AB3E698488395541A7E8CCACF332514140D87A84883955417CB753C4F33251416980D97C88395541A2E828DCF33251419C9E1E758839554116E3F4DFF3325141DAA0236E88395541000000F0F33251410AD7A3508839554183B533EEF33251410B13FA4788395541E157F4E8F3325141E71FB72E88395541D72B8FC2F33251410DC0480188395541679126A4F3325141E06D1EEF8739554148E17A94F33251415C8FC2E587395541A4703D3AF3325141CDCCCCAC87395541713D0AF7F23251413D0AD79387395541AE47E1BAF2325141D7A3707D873955415A754AADF2325141CC000471873955411A5A138EF2325141254E7A548739554187E0F478F2325141DF55091787395541BAF06772F23251419F4644DA863955411F85EB71F23251415C8FC2D586395541369C886EF2325141670C42BB86395541CEEA3263F23251410B348E62863955411DE38E82F2325141B49833F385395541A809C08DF232514199729CDA85395541333333B3F232514185EB5188853955419DD705C5F2325141BC53CE6585395541950C84DBF2325141B2333D3A853955411E3F5009F33251418E9A081A853955415C8FC215F332514114AE4711853955411F93E715F33251412F2637118539554177F5AC57F3325141F3B4D5F384395541C7DD448EF33251410DC2B8E684395541A4703DAAF3325141000000E084395541AE47E12AF4325141713D0AD78439554172FC8654F43251412C412AD684395541DA0734C3F43251418940D6D384395541F4D05FF9F432514106945CC4843955418398D613F53251414BEDCCBC84395541776AFE19F5325141E3364EB7843955419A999949F5325141CDCCCC8C84395541E833766DF532514158DA684F843955415B1F5C6FF5325141AAE0284C84395541E8930D75F5325141925C063D84395541977B9989F532514130B6660684395541AD14BF8AF5325141DC41E2FD83395541713D0A97F5325141295C8FA283395541749D5BA0F532514113413F4C83395541161533A3F5325141DD47EA318339554133FCEBBEF53251416319FCEA8239554148E17AE4F5325141AE47E18A823955413EA894F3F5325141CBF2935D82395541F986C2F5F5325141FFF909578239554156BD7A24F6325141407BA2108239554111C00136F6325141F5F886FC81395541B81E854BF63251413D0AD7E381395541AE47E17AF632514148E17AB481395541D7A370CDF6325141AE47E17A813955417AECCC18F7325141BB12F61F8139554150FEA330F7325141B345320381395541E17A143EF73251411F85EBB1803955412C2D163AF732514103E2CE7C803955411B44AD37F7325141F653CC5C80395541975DCA2BF7325141BB33ECC77F395541A4703D1AF7325141C3F528EC7E395541D79EBB26F7325141B1D79C2E7E3955414449CC2CF7325141BB438ED27D395541D3D5F530F73251414BC91FB47D3955418FC2F538F73251419A9999797D39554185EB5158F7325141B81E851B7D3955417B14AE67F7325141C3F528BC7C3955412FCBC456F732514141F2505A7C395541FF76C255F7325141E6AC7A547C395541F6285C2FF73251411F85EB017C39554114AE4701F7325141CDCCCC7C7B395541C540A7FAF63251415E6227757B395541E69B65B6F6325141AD4A66267B3955411B789D62F6325141D497EBF07A395541C3F5285CF6325141CDCCCCEC7A395541E17A14FEF5325141B81E85AB7A3955410ADD95CBF5325141DEA3D08F7A3955411A9EC3B5F5325141C135D8837A39554147CF0877F53251415FED286C7A395541AB29853BF5325141F60190227A395541571F3233F53251412F57D8D3793955413062F33CF5325141C4D5938D793955418FC2F548F5325141713D0A377939554185EB5158F532514185EB516878395541F6285C5FF53251415C8FC2B5773955416217367EF5325141F5D986607739554114151E85F53251410F0E724D77395541D7A370ADF53251415C8FC20577395541F8397DD1F5325141D97CFFE9763955419D501FE5F53251418149E0DA763955415A460B37F6325141998727CC763955419A2C858BF63251414F185CBF76395541A14E0393F632514114B1B4BF76395541EC51B8DEF6325141333333C37639554172002901F7325141AFC951C8763955419F7F6F3DF7325141EC4646D176395541C50BFB67F73251415DF3A3ED76395541CDCCCC7CF7325141B81E85FB763955410AD7A3B0F73251419A99992977395541AE47E1EAF73251413333336377395541EC51B81EF8325141CDCCCC7C7739554139C27647F83251411E4C927E77395541DF8C9859F832514121B15B7F773955411CD5427EF8325141614A816677395541F6285C7FF83251415C8FC26577395541AE47E18AF832514152B81E457739554148E17A84F8325141CDCCCC0C773955415C8FC275F8325141AE47E1CA7639554166666666F8325141B81E856B76395541E998667AF832514191F6CA3F7639554180BBACA7F83251414E3CCCDC753955417406CC8CF832514105681F3575395541618D678BF832514119244D09753955419A999989F83251410AD7A3D07439554111F3EB79F8325141BE584D9774395541A9493273F832514187F3B67E7439554125F9CF65F832514173191653743955410AD7A350F8325141E17A140E74395541C3F5282CF8325141D7A3708D733955419A999909F8325141C3F528DC72395541333333F3F7325141A4703D5A72395541000000F0F7325141333333E3713955415D3561FEF7325141E50797B1713955419A999909F8325141AE47E18A71395541E17A141EF832514114AE47317139554185EB51F8F73251417B14AEE770395541AD57E1E7F73251410D9456A770395541412532D3F7325141FC8F67567039554153751BDFF7325141E579F5E96F39554152B81EE5F7325141333333B36F3955419A9999E9F732514185EB51E86E3955417B14AE17F83251417B14AE476E3955415C8FC275F8325141E17A14CE6D395541A5C87D85F832514193A39EAC6D395541A83765C6F8325141CE588F226D39554166017787F9325141B2FD421E6C39554131E1B78EF932514146797B146C395541151170BDF9325141EF2E1F656B395541DEE80EDAF93251412403DFAF6A395541000000E0F9325141A4703D8A6A395541713D0A27FA325141EC51B84E6939554114AE4761FA3251413333335368395541E63BD661FA325141EC60413B68395541C3F28E62FA325141ADD6281C68395541AE47E11AF9325141B81E85BB67395541653689E3F832514159748D066839554113F4D7F3F73251419890854B693955413D0AD7F3F4325141D7A370ED6B395541E37BCEDCF032514197FBAC976E395541D6A6D6B3EF325141E5FEF6586F395541AA2FEBB1EA3251412E3952E8723955415FC731ACEA325141C9F485ED72395541F606A580E832514133BD67E67439554143735B1FE7325141E9B53E6A76395541E61D30B9E6325141CD73C1E2763955413D0AD7D3E532514114AE47F17739554180E0BA98E532514143F36E4B783955418660EC21E53251413DB9A400793955418055E2AAE2325141F4213D5A7D395541975D78F7E13251413B35C11D7F395541AE47E12AE13251410AD7A320813955415C8FC205DF325141F6285CFF88395541295C8F52DE325141666666D68F3955414C4F2E83DE325141755491FA94395541E9CD8F92DE3251418E57E29A96395541AE75BFFDDE325141D9CFE1659939554133333313E03251410AD7A3A0A039554184AB205ADF32514171F6D2FBA2395541E27A90C2DD32514139262A2CA83955419C13E2D0DC325141B60F290CAB395541F6285CFFDB325141A4703D8AAD3955418FC2F5A8DA325141295C8F12B1395541D7A370CDD832514100000010B53955410AD7A360DA3251411F85EB61B539554172F0D6D3E1325141599999E9B5395541FF5B11E8E13251418F311CEBB53955412E7D1EA5E5325141A7088F32B639554138A34293E732514141360153B6395541AE47E13AF032514148E17AE4B6395541967CEB3BF232514100D65C92B7395541156C0A77F23251411C4766A6B7395541A683717DF33251410C29B7CEBA395541F97F8966F4325141988C2D9FBC39554152B81ED5F4325141B81E857BBD395541C9369B1FF5325141C1646159BD395541B8BACC9CF5325141BCCEFF1FBD395541B81E854BF5325141295C8F42BC395541BE86E646F5325141DE12C71BBC39554100000030F5325141B81E855BBB395541A4703D4AF53251413D0AD783BA395541BDA2FC67F53251414FAB0740BA3955413A91C185F532514177E529FCB9395541600D6586F5325141A9C3840BB93955419217F055F5325141DB914067B839554106DA1E55F532514185537B64B839554125EEAD17F53251411DBE14EEB7395541F672A1A6F4325141F62CE09AB73955417B14AE77F432514185EB5178B7395541BF0DD84EF4325141C123695DB73955411AAD3C9AF332514155AE66E6B63955417D7B13DEF132514198CA3223B639554173DB8757F13251416E8D98B4B5395541713D0A47F1325141713D0AA7B53955415A35C2C5F0325141248C70CDB4395541ECAEE0DAF032514136EE6636B4395541DCC398B9F13251418B6C29DCB2395541993E7DBAF1325141C6086C84B2395541B81E85BBF1325141EC51B81EB2395541CD31C99AF132514150EDFD6BB1395541704F847BF1325141E7D548C1B03955411FCEAC67F132514110D8280CAF395541A892FF7FF132514192497C54AE3955419A999919F2325141295C8F52AD39554185EB5128F2325141B81E85CBAC395541ED8385DBF132514118151F85AC39554159D221A9F1325141501E6495AC39554133333323F13251410AD7A3C0AC395541471344FCEF325141ECF90AA0AD3955416656860BEF325141FABD6656AE395541D3FEA8F4EE3251410B66F84CAE3955411470B83EEE325141BAD7EC01AE39554193AE94AFED325141EE5F8FE6AD395541C3F5282CED325141D7A370CDAD395541E17A142EEC32514185EB5118AD395541A4703D9AEB3251418FC2F568AC395541BEF5A360EB325141069EB91EAB39554152B81E55EB3251417B14AE67AA395541E2D6747FEB32514189BA87CEA9395541E35F7AB4EB3251410424B70EA9395541733E6546EC32514113CEF648A739554172B5FE6FEC3251418FC8710DA6395541F8F0D593EC32514177AE9A39A5395541D94E0AB7EC3251417165E007A5395541F6285CEFEC32514185EB51B8A439554182AB0911EE325141CF69139DA4395541D72F3D8AEF32514164379879A439554189EA07D9EF3251418E351556A43955415C8FC205F03251411F85EB41A4395541BC954F08F032514175A04033A43955412FCBAC17F032514195E9E1DAA3395541D20B8E12F0325141085B0BE7A23955412E89F43DF03251412828307DA2395541713D0A57F032514100000040A2395541FAD608ABF0325141CF066656A2395541A4703DFAF0325141B81E856BA23955413D0AD7F3F1325141713D0AE7A23955413D0AD7A3F23251415C8FC205A33955418FC2F548F33251417B14AED7A23955410C9F09F7F3325141D8E38F42A23955414CEEAAFFF332514110790FE0A1395541E17A140EF4325141B81E853BA1395541A4703D7AF3325141C3F528CCA039554148E17A74F2325141E17A148EA039554133333363F13251419A9999C99F3955411F85EB01F1325141CDCCCC1C9F39554157DABAADF0325141A6E973939D3955414180CC8CF0325141306199F99C39554108284CB7F0325141EF3D0DA09C39554148E17AD4F0325141295C8F629C395541904731DFF032514196DCB24F9C395541F8DA5A1FF13251413D4CB7DE9B3955418A69706DF232514186F1284C9B395541E68D5BEFF2325141F077E0FA9A395541B0383D7AF3325141CC96707D9A3955419F5FADE7F33251410C2AC1C5993955412C8B9D6AF43251415A14F83999395541C3F5286CF432514185EB5138993955414B5EDF74F43251417D11BF30993955411F85EB91F53251418FC2F53898395541000000F0F532514185EB51B8973955419228EFF9F53251417C935D77973955412BB84611F63251417E07B9DE96395541C14347F1F53251410CA51DD5953955418F0045DAF5325141CD9F2C9395395541A4703D4AF5325141666666F693395541559F5F2FF532514123D013A89339554181ADB7FEF43251410BEA3C1A9339554107E98E22F5325141684465669239554147CF0877F532514156B333C3913955419C0E98BBF5325141392A266E91395541EC51B8EEF5325141EC51B82E9139554105280218F63251413F25201C91395541FD7434A3F6325141608C6FDD9039554154FED683F73251417FA35B7F903955415EDA5148F832514149E94651903955411EC019D6F83251414E2F400B90395541666666E6F83251413333330390395541D7A3704DF9325141C3F5285C8F3955413CC51563F9325141CC5762158F395541149AC175F932514175EB50D88E39554108E5E05AF9325141B45290728E3955410BC63001F93251413CA1C9A08E3955419A9999C9F8325141D7A370BD8E395541F6285C1FF8325141E17A143E8F395541BA613F01F8325141525584498F39554123DF1F15F7325141605D34A38F395541951A8EA2F632514102277C748F39554160724621F63251413FA8EAF18E395541FED0EA0EF632514125A764968E39554185EB51F8F53251415C8FC2258E3955415BB0B507F6325141749619EF8D3955418B00E10AF6325141CDE0D6E38D3955418389990FF632514122AFF8D98D395541713D0A27F63251418FC2F5A88D3955411F85EB51F6325141B81E856B8D395541B81E85ABF63251417B14AE178D3955416CA45AF7F63251416514C7E68C39554172D77B34F732514145C95ABF8C395541A4F647C1F73251411DD608778C3955416C18AE57F83251417D305BFF8B3955418F73CC6BF832514136F056EF8B395541A4703D7AF83251413D0AD7E38B395541A4703D8AF8325141F6285C9F8B39554179E87492F8325141B02FDF808B39554122FC8DA2F83251412FD31D458B395541270E858BF832514189B600E08A3955417406CC8CF8325141F53CCDAC8A395541AA6C6A57F8325141C26E9E858A395541713D0A47F83251419A9999798A3955412893033CF832514177C1C6738A395541F06528ECF7325141C1949A498A3955414337FF7FF732514115DD1F258A395541E1AE1857F7325141EBD6442B8A395541E17A141EF73251413D0AD7338A39554114AE47D1F6325141666666468A395541F6285C5FF63251419A9999998A395541E17A14EEF53251413D0AD7E38A39554100000070F532514114AE47218B39554192738C38F53251412DF0D54B8B395541A929701DF5325141A3E2A4608B3955410084D7C3F4325141A45953A88B3955410496B98EF432514118831EC58B395541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>261945 - 2942672
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000020000000D000000AE47E1DAD06B5141F6285CDFDB3E5441B81E856BD06B5141F6285C6FDA3E54419A9999D9C16B514166666636D53E544114AE4741C16B51410AD7A380E13E5441EC51B82EC76B5141F6285C9FE53E54415C8FC2C5C76B5141A4703D0AE63E5441713D0A770C6C5141B81E85AB163F5441000000E00D6C5141295C8FC2133F5441C3F5289C106C5141F6285C3F113F5441295C8FB2146C51410AD7A3500E3F544152B81E95166C51413D0AD7030D3F5441B81E857BDE6B514148E17A84E53E5441AE47E1DAD06B5141F6285CDFDB3E5441050000008FC2F5E8066C51415C8FC275073F5441C3F5287C046C51415C8FC275073F54415C8FC265046C51411F85EBC1033F544152B81EA5066C51413D0AD7E3033F54418FC2F5E8066C51415C8FC275073F5441
+</a>
+
+<b>
+01060000000100000001030000000200000020000000B81E857BDE6B514148E17A84E53E5441C2DDBADAD06B5141DF37DDDEDB3E54419EB20967CA6B51419BF25E4CD83E5441A889ADD7C96B514168BF2B19D83E54419977476EC76B514106D3B439D93E54419C8CE61DC36B5141494D3993DC3E544114AB2D30C16B5141AA77DF02DF3E54413C3360D1BF6B51411F52A788E03E5441C55F89B3BE6B5141E464C3C5DF3E5441F890EC02BC6B51415C830AD8DD3E5441403CA023B76B5141C06B80A5DA3E54414C3041C6B26B5141C2B6F099D73E54413D8A08FBB06B5141776D0A93D73E544149E87A54AE6B5141BCCFEF81D83E5441D38238DEAD6B514137B6CD38DA3E544135CDFD30E66B5141F08F1218023F54417DAE7805EA6B5141411FD5CD043F5441CF66974AEE6B5141B2853BD4073F5441BAB84F89F06B5141FA66B668093F54419C336417F26B5141BD5CDF840A3F5441D5547F560B6C5141F2C2085F1C3F544158991FAD0C6C514161346BAE163F5441F636070C0E6C51410E9F1728133F54414B26DF5A126C51414B20E5D30F3F5441574048C9166C51416B21E32A0D3F5441B8E13D07066C514155B7235C013F54417BF6FB73016C5141B16F8223FE3E5441014BB4CAFF6B5141C7C316F8FC3E544135C4231CEB6B51410384A670EE3E5441C163AC67E76B514105F705DAEB3E54414D8A2AB3DE6B51416E71A8ABE53E5441B81E857BDE6B514148E17A84E53E544105000000C9C55ABB066C5141DC9CCAD1033F54412BEFD5DB066C5141C1F14838073F5441BF2FA8B3046C5141DA124552073F5441D7F52E86046C5141F5BDC6EB033F5441C9C55ABB066C5141DC9CCAD1033F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>261945 - 3350772
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000020000000D000000AE47E1DAD06B5141F6285CDFDB3E5441B81E856BD06B5141F6285C6FDA3E54419A9999D9C16B514166666636D53E544114AE4741C16B51410AD7A380E13E5441EC51B82EC76B5141F6285C9FE53E54415C8FC2C5C76B5141A4703D0AE63E5441713D0A770C6C5141B81E85AB163F5441000000E00D6C5141295C8FC2133F5441C3F5289C106C5141F6285C3F113F5441295C8FB2146C51410AD7A3500E3F544152B81E95166C51413D0AD7030D3F5441B81E857BDE6B514148E17A84E53E5441AE47E1DAD06B5141F6285CDFDB3E5441050000008FC2F5E8066C51415C8FC275073F5441C3F5287C046C51415C8FC275073F54415C8FC265046C51411F85EBC1033F544152B81EA5066C51413D0AD7E3033F54418FC2F5E8066C51415C8FC275073F5441
+</a>
+
+<b>
+01060000000100000001030000000200000020000000B81E857BDE6B514148E17A84E53E5441C2DDBADAD06B5141DF37DDDEDB3E54419EB20967CA6B51419BF25E4CD83E5441A889ADD7C96B514168BF2B19D83E54419977476EC76B514106D3B439D93E54419C8CE61DC36B5141494D3993DC3E544114AB2D30C16B5141AA77DF02DF3E54413C3360D1BF6B51411F52A788E03E5441C55F89B3BE6B5141E464C3C5DF3E5441F890EC02BC6B51415C830AD8DD3E5441403CA023B76B5141C06B80A5DA3E54414C3041C6B26B5141C2B6F099D73E54413D8A08FBB06B5141776D0A93D73E544149E87A54AE6B5141BCCFEF81D83E5441D38238DEAD6B514137B6CD38DA3E544135CDFD30E66B5141F08F1218023F54417DAE7805EA6B5141411FD5CD043F5441CF66974AEE6B5141B2853BD4073F5441BAB84F89F06B5141FA66B668093F54419C336417F26B5141BD5CDF840A3F5441D5547F560B6C5141F2C2085F1C3F544158991FAD0C6C514161346BAE163F5441F636070C0E6C51410E9F1728133F54414B26DF5A126C51414B20E5D30F3F5441574048C9166C51416B21E32A0D3F5441B8E13D07066C514155B7235C013F54417BF6FB73016C5141B16F8223FE3E5441014BB4CAFF6B5141C7C316F8FC3E544135C4231CEB6B51410384A670EE3E5441C163AC67E76B514105F705DAEB3E54414D8A2AB3DE6B51416E71A8ABE53E5441B81E857BDE6B514148E17A84E53E544105000000C9C55ABB066C5141DC9CCAD1033F54412BEFD5DB066C5141C1F14838073F5441BF2FA8B3046C5141DA124552073F5441D7F52E86046C5141F5BDC6EB033F5441C9C55ABB066C5141DC9CCAD1033F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>77068 - 3132553
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000009000000B81E85FBD8085141713D0A27679F5441713D0A57CE085141E17A14CE659F54411F85EBC1B8085141E17A146E7C9F5441EC51B8DEBA085141666666E6809F544100000010BE085141666666F67D9F5441713D0A37C5085141B81E85FB789F5441D7A3707DD2085141295C8F026E9F5441000000F0D9085141D7A3708D679F5441B81E85FBD8085141713D0A27679F5441
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000C5C3AF8AC70851414AA62F0F779F5441713D0A37C5085141B81E85FB789F544100000010BE085141666666F67D9F5441ED9E9BA3BB085141500C3D31809F5441EC51B8DEBA085141666666E6809F54412A1D4BF6BA085141A5368A56819F5441162F5A0EBE0851417D5AA886879F544116B8619ABF085141A6645820869F5441C3F528ECC5085141AE47E1EA829F5441713D0A57CA085141713D0AC77F9F5441666666E6D6085141F6285CFF739F5441D7A3707DD2085141295C8F026E9F544136CE071ACB0851417F56E91D749F5441C5C3AF8AC70851414AA62F0F779F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>77068 - 3490705
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000009000000B81E85FBD8085141713D0A27679F5441713D0A57CE085141E17A14CE659F54411F85EBC1B8085141E17A146E7C9F5441EC51B8DEBA085141666666E6809F544100000010BE085141666666F67D9F5441713D0A37C5085141B81E85FB789F5441D7A3707DD2085141295C8F026E9F5441000000F0D9085141D7A3708D679F5441B81E85FBD8085141713D0A27679F5441
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000C5C3AF8AC70851414AA62F0F779F5441713D0A37C5085141B81E85FB789F544100000010BE085141666666F67D9F5441ED9E9BA3BB085141500C3D31809F5441EC51B8DEBA085141666666E6809F54412A1D4BF6BA085141A5368A56819F5441162F5A0EBE0851417D5AA886879F544116B8619ABF085141A6645820869F5441C3F528ECC5085141AE47E1EA829F5441713D0A57CA085141713D0AC77F9F5441666666E6D6085141F6285CFF739F5441D7A3707DD2085141295C8F026E9F544136CE071ACB0851417F56E91D749F5441C5C3AF8AC70851414AA62F0F779F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>552671 - 58234
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000200000001030000000100000049000000666666761EE8504148E17AF4D5F25441EC51B83E23E8504148E17AE4D6F25441713D0A2729E8504152B81EA5DAF254410000000030E85041AE47E10ACAF25441666666361FE85041333333C3C9F254415C8FC2C516E85041AE47E13ACAF25441869563A7ECE75041D2EE843ED1F25441ACF95844D3E75041BA8EAB59CBF254416544D8AFC3E75041716A2F68C4F254413607E38EBBE75041DACBB457C0F25441A8710C72B4E750418E7C774FBEF2544133333303B1E750411F85EB81C1F254419A999989A4E750419A999969BEF254411F85EB81A3E750411F85EB51BEF254411F85EB816BE75041F6285CFFB1F25441295C8F823AE75041CDCCCCCCA3F254419A99994930E7504100000010A1F25441C3F5280C2FE750418FC2F5A89AF254410AD7A35034E750413333335396F254418A69F2E034E75041147915EC8FF254419A9999892BE75041713D0A9788F254410CAACF0125E75041B4756EC190F254419D6A673527E75041F877CD8F99F2544195485EEF15E750418CEB8689A2F254417DD0D27B0EE750415D3F960BA3F25441C26C029BF6E65041E1436885A1F25441D097C3B1F1E6504196F42A7D9FF25441026F7546ECE6504196F42A7D9FF25441B7A5441AECE650415802084C98F2544114AE4781DEE650419A9999E99DF25441A4703DDADCE65041D7A3707DA3F2544114AE4761D7E6504152B81E15B3F254419A999919E3E650410AD7A3F0B6F254415C8FC24507E75041000000F0C2F254417B14AE6731E7504148E17A14D1F25441AE47E17A87E75041CDCCCC9CEDF254416E9062AD8FE7504159E76D9EE0F25441F94B0DEF99E750418EB643C2CFF25441C5FA54CC9FE75041ECDF01E1C4F254413D0AD773A2E750411F85EBA1BFF254411F85EB81A3E75041C3F5284CC0F254419A999989A0E75041E17A146EC6F254417B14AE479CE75041A4703D2ACEF254413D0AD7E388E7504148E17A14EEF254416666660693E7504100000070F1F254411F85EB619DE7504166666696F2F2544114AE4771A2E75041CDCCCC5CF3F254417B14AEF7A7E750415C8FC245F5F25441E17A148EAFE75041713D0A37F8F254413D0AD7D3B1E750417B14AE17F9F25441E17A141EB3E7504114AE47B1FAF25441EC51B8CEB2E7504148E17AD4FBF2544114AE47B1B5E75041CDCCCCBCFCF254419A9999A9BBE750413D0AD713FFF254413D0AD7F3BAE750410AD7A310FDF25441C3F5286CBBE7504185EB5128FAF2544148E17AD4BFE7504100000070F7F254415C8FC265C9E75041F6285C8FF2F254417B14AEF7DBE75041E17A14FEE8F2544100000000E0E75041666666E6E8F2544185EB5168E4E7504166666656E8F254410AD7A340E8E750415C8FC275E6F2544114AE4711EEE750415C8FC2D5E3F254411F85EB11F4E750415C8FC265E1F25441A4703D3AF6E75041D7A3704DE1F25441295C8F02FBE75041D7A3701DE1F25441AE47E1CAFFE7504152B81E15E0F25441B81E853B05E8504152B81EF5DEF2544148E17A640AE8504152B81EE5DCF25441CDCCCCBC0FE8504152B81E85DCF2544152B81EE514E8504152B81ED5DAF254415C8FC2C519E8504148E17A04D8F25441666666761EE8504148E17AF4D5F254410103000000010000002500000052B81E6566E75041295C8FF2F2F25441000000E068E750413D0AD703F5F25441333333136CE75041D7A3703DF4F25441295C8F626CE750418FC2F558F1F25441AE47E13A6CE750411F85EBB1EFF25441713D0AE76CE750419A999979EDF25441F6285C4F70E75041F6285C2FECF25441000000C074E750418FC2F598ECF254411F85EB6177E7504148E17A94EDF25441A4703DFA7BE75041EC51B8DEEEF25441E17A14DE7EE75041713D0AE7EFF25441000000707FE750415C8FC2B5F1F254417B14AE977FE75041295C8F22F4F254410AD7A3207FE75041F6285CAFF5F254415C8FC2D57DE75041D7A3709DF6F2544152B81EF57CE750417B14AEE7F7F2544148E17A747EE75041A4703DDAF7F2544185EB517880E750411F85EB01F8F25441713D0A7783E750419A999929F8F254415C8FC22586E750415C8FC2D5F8F25441713D0A3788E75041C3F5289CF9F2544152B81EA587E7504185EB5198F7F2544152B81EA587E75041A4703D7AF5F2544185EB51C888E75041D7A3703DF4F25441D7A3700D8BE75041D7A3700DF3F254411F85EBF18DE75041E17A14BEF2F2544185EB515892E75041713D0AA7F2F25441EC51B86E6FE750418FC2F528E7F25441D7A3702D6CE750419A999919EAF25441E17A140E6AE7504133333393E7F254411F85EB416AE7504152B81E75E5F25441CDCCCCBC33E750419A999959D3F25441C3F5285C37E7504148E17A04D7F254417B14AE3757E750419A9999F9E3F25441000000005DE750419A9999E9E9F25441B81E856B62E75041E17A142EEFF2544152B81E6566E75041295C8FF2F2F25441
+</a>
+
+<b>
+010600000001000000010300000001000000430000007B14AE3757E750419A9999F9E3F254412A9815CC5BE750415B406EADE8F254418FB632EE5CE75041AD2752D7E9F254415FABA63D5EE750417F3E501EEBF25441F1ED71835EE750410DC82462EBF2544121CBF9A260E75041A99E6172EDF25441E91507C562E75041C94EEA82EFF25441957EB7E562E750410BE0E5A1EFF254415267C13F63E75041D08C3CF7EFF25441CA058D1064E7504165ED21BDF0F2544128C4092965E750417D5FFAC6F1F25441AF6A10CB65E7504128C98B60F2F25441212CEA8C66E75041AC53BC13F3F25441000000E068E750413D0AD703F5F25441333333136CE75041D7A3703DF4F2544130A5C9616CE75041D2DDB950F1F25441AE47E13A6CE750411F85EBB1EFF25441713D0AE76CE750419A999979EDF25441F6285C4F70E75041F6285C2FECF25441000000C074E750418FC2F598ECF2544142B17AF676E75041A58B616CEDF254410CB5834D77E750417840DD8CEDF25441D1099E7378E750418C5951E1EDF25441A19E8CF179E7504151948A4CEEF25441A4703DFA7BE75041EC51B8DEEEF25441E17A14DE7EE75041713D0AE7EFF25441000000707FE750415C8FC2B5F1F254417B14AE977FE75041295C8F22F4F254410AD7A3207FE75041F6285CAFF5F254415C8FC2D57DE75041D7A3709DF6F2544152B81EF57CE750417B14AEE7F7F2544148E17A747EE75041A4703DDAF7F2544185EB517880E750411F85EB01F8F25441713D0A7783E750419A999929F8F254415C8FC22586E750415C8FC2D5F8F25441713D0A3788E75041C3F5289CF9F2544152B81EA587E7504185EB5198F7F2544152B81EA587E75041A4703D7AF5F2544185EB51C888E75041D7A3703DF4F25441D7A3700D8BE75041D7A3700DF3F254411F85EBF18DE75041E17A14BEF2F2544185EB515892E75041713D0AA7F2F25441A45EEEBA84E750417E28B82BEEF25441B345058783E7504159815CC6EDF25441D8AF0B3A81E7504192867B04EDF25441E4EAA50B7EE75041242966F8EBF254419ABDF4C679E750415CE2B490EAF25441EC51B86E6FE750418FC2F528E7F25441D7A3702D6CE750419A999919EAF25441E17A140E6AE7504133333393E7F254411F85EB416AE7504152B81E75E5F25441F0E982F95FE75041E240D40AE2F254410D0E4BDE5DE75041C0A6BD57E1F25441A9DE316F5CE75041B566D1DDE0F2544152A0F00C59E75041E1C31CBEDFF254413109BE0658E75041939E0767DFF25441698320B356E7504130183CF6DEF2544144434BF952E75041F23171B9DDF254413C6971664EE7504182839234DCF2544133B0080E4BE75041F8012318DBF2544155C4EFA248E750416EBE844ADAF2544147CD4FDE3FE7504102490561D7F25441AE47E12A38E75041333333D3D4F25441F106093936E750415A00E92CD4F25441CDCCCCBC33E750419A999959D3F25441C3F5285C37E7504148E17A04D7F254417B14AE3757E750419A9999F9E3F25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986168 - 986181
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001C000000295C8F12CBF45041B81E857BC36F5441C3F5281CD9F45041CDCCCC6CCB6F5441AE47E13ADCF450418FC2F558CF6F54419A9999C9DCF4504100000070D46F5441CDCCCC3CECF45041A4703D9AD36F5441E17A141E01F55041CDCCCC4CD16F544152B81E4501F55041D7A3705DC86F54415C8FC26501F5504114AE47E1C06F54411F85EB5101F550418FC2F5F8BF6F544114AE474105F55041B81E850BC06F5441AE47E1DA07F55041B81E85BBB56F5441713D0A471AF5504133333393BA6F54411F85EBD11AF5504185EB5158B86F5441333333A315F550417B14AE97AD6F5441CDCCCCDC11F550418FC2F5F8A26F54413D0AD75310F55041D7A3700DA16F54415C8FC2E505F55041EC51B8DE9B6F5441A4703DEAFBF45041713D0AE7976F54417B14AEC7F0F450418FC2F588956F5441E17A141EE5F45041CDCCCC9C946F5441EC51B8DEE2F45041EC51B80E966F5441F6285CEFDCF4504152B81EA59B6F54415C8FC2F5D8F4504185EB5198A16F5441D7A3709DD4F4504114AE4771AA6F5441CDCCCC0CD3F450410AD7A370B06F54418FC2F5B8D3F45041C3F5283CB76F5441CDCCCC9CCFF45041713D0A47BE6F5441295C8F12CBF45041B81E857BC36F5441
+</a>
+
+<b>
+01060000000100000001030000000100000045000000846B8DDE23F550411F9A3456C76F54410A10E64D23F55041A2ECB189C66F5441239269D822F55041C42363AEC56F54419C1C99C721F550416A4822B1C36F5441B9B9B6E520F550415B6AA4C6C16F5441D806C08420F55041B8B217F4C06F5441F7553F0020F5504133575FD4BF6F5441B8A2861F1FF55041040BAD85BD6F5441518FE5381EF55041AD5B7327BB6F5441A1ADA7141EF55041F1D47B96BA6F54415D42B2341DF55041F227A616B76F544194A165E21CF550410D087C59B56F544122D479161CF55041EEEA740AB16F5441E1B2F5121CF550412CC61149B06F544108E7FA021CF5504181FB2FDAAC6F5441D0B274FC1BF55041C6C35A73AB6F54418A596A441CF550413B69113DAB6F544193B2557B1DF5504139ED326EA96F5441488344621DF55041D9DCB846A76F5441230CEBF419F55041AC1AE729A36F544160A07EF614F550418AA38DBC9F6F5441B9A6DEAC0FF55041D7188ACC9C6F54419875703609F550411E430E2D996F54410EA8B1AA06F55041A30B4000986F5441F17BD0EC03F5504143FBC5D8956F5441AA92AACA00F550419170C2E8926F54416C7B468DF4F4504139F1AB678E6F5441997E76E8F1F450417CD544D18D6F5441BE362E94EEF450417CD544D18D6F54416026B46CECF450413BF1AB678E6F5441FF153A45EAF45041BD73F243906F5441C5C20482E8F45041F2C62707926F54416CFD020AE7F45041BE787FFC936F5441ED050D35E8F4504123945DDB946F5441DC5BB5E5EBF450414B701626956F544100CCC7F5EEF45041DA841B64956F5441D872F7D0F3F45041059B392E966F54415B3D6F27F9F45041CAB1C250976F5441B14D21F2FCF450411504EC4F986F54416C3009D6FFF450415183FE75996F5441A1E6652904F550418F3E1C2E9B6F5441B5B7575B07F550416FE458989C6F54410AEEE2F109F55041EBFC8DE19D6F5441850F051F0DF55041F26A96759F6F5441608F8E5B10F5504119A61717A16F54417563E9E311F550418385F70CA36F5441EA17FBF212F5504169048D07A66F54412D73A8A416F55041DEABD8ADAF6F54411F85EBD11AF5504185EB5158B86F5441713D0A471AF5504133333393BA6F544109E596EF1AF55041E3AF8EEABC6F5441E872CA3A1BF55041AC166E30BE6F544110300F9F1BF55041E069A3F3BF6F5441C600FE851BF55041DC23B8FCC26F544196F840721AF550418B63433DC56F54418EADC8C219F55041E02845B5C66F544136E8C64A18F550419F44AC4BC76F54412E9D4E9B17F550413DEE462DC86F54419A3E2C6917F5504194B348A5C96F544192F3B3B916F55041D351F617CC6F5441CA46E97C18F550413DF3D3E5CB6F54414FCEBC111EF550410CEB16D2CA6F54415B1EC27922F55041BB708D09CA6F54412E1B921E25F550411FC7F227C96F544191C9EA1425F5504182754B1EC96F544122F0D30125F550417442EA21C96F5441F05860EF24F55041E204C1F8C86F5441DDA0085624F55041D24C695FC86F5441846B8DDE23F550411F9A3456C76F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986375 - 58537
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000100000006666661652AC504148E17A64EEFB544185EB51D850AC5041EC51B8AEE6FB5441295C8FC252AC5041CDCCCC8CD9FB544185EB511856AC504148E17A74CFFB54417B14AEA756AC50418FC2F538BDFB5441AE47E18A57AC50411F85EB01B7FB54410000004059AC504133333383B0FB5441AE47E1BA50AC50417B14AE47B6FB54415C8FC2654FAC50415C8FC2B5BAFB5441D7A3701D4FAC504152B81EA5BBFB5441D7A3704D4DAC504166666646C6FB54411F85EB414BAC504148E17AE4CBFB5441EC51B83E4DAC504114AE4771D5FB5441AE47E13A4DAC5041EC51B84EE5FB54419A9999094DAC5041AE47E12AEEFB54416666661652AC504148E17A64EEFB5441
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000EC51B83E4DAC504114AE4771D5FB5441F7C78A3C4DAC50416BFBC170DEFB5441AE47E13A4DAC5041EC51B84EE5FB54419A9999094DAC5041AE47E12AEEFB5441DF1293E14EAC5041DB97E83FEEFB5441D9BAFE1052AC504101E3F042EEFB5441D393CE0952AC5041A9505616EEFB5441FF9306E151AC504120B44719EDFB5441CB55D70751AC50412F8999D5E7FB544185EB51D850AC5041EC51B8AEE6FB54411B9B10DC50AC504105F00995E6FB5441FC178EC751AC504194011E46E0FB54419C0BB40752AC50415026358EDEFB544170B063A952AC504189936939DAFB5441295C8FC252AC5041CDCCCC8CD9FB5441AFF6351053AC5041FD88C0A1D8FB54411EEBF18D53AC5041BA072825D7FB5441A5A73DA254AC5041B704D0E0D3FB54412412310555AC5041FB294AB5D2FB54410D683E9355AC5041A9C84C07D1FB54417C5DEECC55AC50413D5FAE58D0FB54411876B01E56AC504168A81BA5CEFB54415D71252556AC504198D3E1D2CDFB54415AE2326456AC5041C53304CEC5FB54416F686E7656AC504104CC667CC3FB54412716D59556AC50415D360B7EBFFB54417B14AEA756AC50418FC2F538BDFB5441AE47E18A57AC50411F85EB01B7FB5441BB15E2DC57AC504187F2FEC9B5FB5441DAF614B658AC50411E57D08FB2FB54410084F10459AC504121FED663B1FB54418D90213659AC50419545BDA8B0FB5441DE6C0DB950AC5041E17FC14DB6FB5441F46C341B50AC50417B5D885AB8FB5441FE98E9984FAC50417C16B30BBAFB544181BC90174FAC50410CDB92C7BBFB5441D7A3704D4DAC504166666646C6FB5441778AC2FE4BAC5041F851BFDDC9FB544147C4F64A4BAC504197B6EF0FCCFB54410157F2F24CAC50417FC62F05D4FB54419C9FA8234DAC50415BE13FEFD4FB5441EC51B83E4DAC504114AE4771D5FB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986402 - 1381924
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001D0000001FEF5E314C0D51411C78A6A24B19554192E4213B4E0D5141E98BA42F4D19554166368BC6510D51410D5FC6664F195541308C5AA1550D51410AA197B451195541F74C7343590D51413601A48553195541BE6071D05A0D51417B2B11F753195541ED2F2DB85C0D5141A3BC61E053195541DE09A44C5F0D5141C10743D64F195541E8CCB7B5600D514129C7C8974C195541FB2BA83F630D514193AD85A1491955415A673AA8690D5141E962B31D47195541C78F4779730D51417A110CED42195541C422EA337B0D5141E80323AC3F195541EEF1A51B7D0D514118F8F0BD3E195541564AE64D7E0D5141CF3467C43D195541937453BF7E0D5141CC937E9D3C1955414252B2EC7E0D5141474770593C195541CBE0917E810D5141282AB135371955417B5FD9D2820D5141C08F9FB5331955416A1E538C830D5141CF5A451D2F1955419CF029BC820D5141023EBD912719554164A9ADB3820D514176CD01FC22195541E315928F820D51412F9FAE6419195541B4DCDACF640D5141E1A5C3E819195541D894FE735E0D51410E0E7C3A2619554114AE4731590D51413D0AD7B33119554166666646530D5141D7A3707D3C1955416B7C49CB4B0D514138FDC49D4A1955411FEF5E314C0D51411C78A6A24B195541
+</a>
+
+<b>
+010600000001000000010300000001000000230000005770CA64640D5141FB3F78EF1A195541DB94FE735E0D51410E0E7C3A2619554114AE4731590D51413D0AD7B33119554166666646530D5141D7A3707D3C1955416B7C49CB4B0D514135FDC49D4A19554124EF5E314C0D51411A78A6A24B19554197E4213B4E0D5141E68BA42F4D1955416A368BC6510D51410A5FC6664F195541338C5AA1550D514106A197B451195541F44C7343590D51413101A48553195541C06071D05A0D5141762B11F753195541EF2F2DB85C0D51419EBC61E053195541BBD3D0745E0D51411C733028511955413D0AD7A35E0D51415C8FC2C550195541B396CBCC5F0D51413EAA81AF4E195541EBCCB7B5600D514124C7C8974C195541A8D3316E610D514148BF8FC04B195541C3F5288C620D5141E17A14BE4919554100000090680D51419A9999794719554117E568F86A0D51416910358E46195541CC8F4779730D51417B110CED42195541C922EA337B0D5141E60323AC3F195541EDF1A51B7D0D51411BF8F0BD3E195541574AE64D7E0D5141CD3467C43D195541917453BF7E0D5141CF937E9D3C1955414252B2EC7E0D5141464770593C195541C8E0917E810D5141242AB13537195541785FD9D2820D5141BD8F9FB533195541D2418D7A830D51414D34FE8D2F195541F17F4189830D51419C91CB002F1955419FF029BC820D5141043EBD912719554166A9ADB3820D514175CD01FC22195541A92E8DA8820D51417333610720195541295C8F52820D51413D0AD7031B1955415770CA64640D5141FB3F78EF1A195541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986402 - 3305095
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001D0000001FEF5E314C0D51411C78A6A24B19554192E4213B4E0D5141E98BA42F4D19554166368BC6510D51410D5FC6664F195541308C5AA1550D51410AA197B451195541F74C7343590D51413601A48553195541BE6071D05A0D51417B2B11F753195541ED2F2DB85C0D5141A3BC61E053195541DE09A44C5F0D5141C10743D64F195541E8CCB7B5600D514129C7C8974C195541FB2BA83F630D514193AD85A1491955415A673AA8690D5141E962B31D47195541C78F4779730D51417A110CED42195541C422EA337B0D5141E80323AC3F195541EEF1A51B7D0D514118F8F0BD3E195541564AE64D7E0D5141CF3467C43D195541937453BF7E0D5141CC937E9D3C1955414252B2EC7E0D5141474770593C195541CBE0917E810D5141282AB135371955417B5FD9D2820D5141C08F9FB5331955416A1E538C830D5141CF5A451D2F1955419CF029BC820D5141023EBD912719554164A9ADB3820D514176CD01FC22195541E315928F820D51412F9FAE6419195541B4DCDACF640D5141E1A5C3E819195541D894FE735E0D51410E0E7C3A2619554114AE4731590D51413D0AD7B33119554166666646530D5141D7A3707D3C1955416B7C49CB4B0D514138FDC49D4A1955411FEF5E314C0D51411C78A6A24B195541
+</a>
+
+<b>
+010600000001000000010300000001000000230000005770CA64640D5141FB3F78EF1A195541DB94FE735E0D51410E0E7C3A2619554114AE4731590D51413D0AD7B33119554166666646530D5141D7A3707D3C1955416B7C49CB4B0D514135FDC49D4A19554124EF5E314C0D51411A78A6A24B19554197E4213B4E0D5141E68BA42F4D1955416A368BC6510D51410A5FC6664F195541338C5AA1550D514106A197B451195541F44C7343590D51413101A48553195541C06071D05A0D5141762B11F753195541EF2F2DB85C0D51419EBC61E053195541BBD3D0745E0D51411C733028511955413D0AD7A35E0D51415C8FC2C550195541B396CBCC5F0D51413EAA81AF4E195541EBCCB7B5600D514124C7C8974C195541A8D3316E610D514148BF8FC04B195541C3F5288C620D5141E17A14BE4919554100000090680D51419A9999794719554117E568F86A0D51416910358E46195541CC8F4779730D51417B110CED42195541C922EA337B0D5141E60323AC3F195541EDF1A51B7D0D51411BF8F0BD3E195541574AE64D7E0D5141CD3467C43D195541917453BF7E0D5141CF937E9D3C1955414252B2EC7E0D5141464770593C195541C8E0917E810D5141242AB13537195541785FD9D2820D5141BD8F9FB533195541D2418D7A830D51414D34FE8D2F195541F17F4189830D51419C91CB002F1955419FF029BC820D5141043EBD912719554166A9ADB3820D514175CD01FC22195541A92E8DA8820D51417333610720195541295C8F52820D51413D0AD7031B1955415770CA64640D5141FB3F78EF1A195541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>727298 - 421421
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000300000078000000D7F8BF2DBAC35041538CFCF2943E5541713D0AE7B9C35041A4703D8A943E5541713D0A97B9C35041A4703D6A903E5541713D0A27B9C35041A4703DDA8F3E5541713D0AC7B6C35041A4703D4A8E3E5541713D0A17B3C35041A4703D1A8B3E5541713D0A47B0C35041A4703D5A8A3E5541713D0A07ACC35041A4703D9A893E5541713D0A87AAC35041A4703DEA883E5541B81E855BA8C350410AD7A3A0873E5541713D0A57A7C35041A4703DCA863E5541713D0A47A4C35041A4703D3A863E5541713D0AE7A2C35041A4703D2A853E5541713D0A97A0C35041A4703DFA813E5541713D0AC79AC35041A4703D4A7E3E5541F6285CFF97C3504185EB51B87D3E554114AE47B195C35041F6285CDF7E3E5541E17A14EE8FC35041AE47E17A833E5541D7A3700D85C350419A999989813E55419A9999C97EC3504100000050803E55411F85EB417BC3504152B81E857F3E55417B14AE9778C350419A9999497D3E5541D7A370DD76C35041333333437A3E5541AE47E1CA76C350413D0AD763783E55410AD7A37077C350410AD7A3F0753E554114AE47E178C3504100000080743E554152B81E3575C35041713D0A57723E55419A9999B96EC35041C3F5281C793E5541333333A36CC3504148E17AD4793E5541B0F737DB6AC35041498D521C783E5541EC51B85E66C350417B14AEC7733E55413D0AD79365C350413D0AD7E36F3E5541EC51B80E5DC35041D7A3702D6C3E5541295C8FE25BC35041713D0A676E3E55419A9999F957C3504148E17A74893E55417B14AEE756C35041C3F528EC8E3E5541295C8F8257C3504114AE47F18E3E55417B14AE0757C3504148E17AA4913E55417B14AE7756C350417B14AE97953E55418FC2F53856C35041AE47E10A973E554148E17A3455C35041666666C69B3E5541CDCCCC1C54C350415C8FC275A13E5541B81E855B53C35041E17A14AEA53E55419A99998952C350419A9999E9AB3E55415C8FC21552C350419A999999B03E5541F6285CFF50C35041AE47E16AB83E5541713D0AF753C35041A4703D3ABB3E5541EC51B88E56C35041E17A148EBD3E5541CDCCCC6C58C3504133333343BF3E55419A9999D959C3504133333393C03E5541A4703DBA5BC3504166666686C23E5541A4703DFA62C350417B14AEA7C93E5541713D0AC76DC350418FC2F548D13E5541F6285C8F7FC350419A999909D73E5541D7A370ED92C35041E17A148EDC3E55418FC2F5A8B7C35041C3F5280CE83E5541F6285CBFC0C35041A4703DCAE93E5541B81E857BC6C35041713D0AC7EA3E5541EC51B86EC8C3504133333363EA3E5541C3F528CCC9C3504152B81EF5E83E5541666666D6CAC350413D0AD793E53E55411F85EB01CCC35041666666F6E03E554148E17A44CCC35041CDCCCCBCDC3E554166666676CBC350411F85EBD1D73E5541A4703D6ACAC3504152B81ED5D53E55415C8FC2B5C9C35041A4703DBAD33E554133333343C9C35041333333C3D13E5541E17A14DEC8C350417B14AED7CF3E554148E17A74C8C35041295C8FF2CE3E5541B81E857BC7C350411F85EB71CD3E554185EB51E8C6C350413D0AD743CC3E5541C3F528CCC6C35041C3F5287CCB3E5541F6285CBFC6C350411F85EB21C93E5541F6285CBFC6C350415C8FC2B5C63E554185EB51F8C6C35041CDCCCC3CC43E55411F85EB71C7C35041B81E85DBC13E5541AE47E10AC8C35041713D0AE7BF3E554185EB5148C8C3504133333393BE3E5541295C8F82C8C350417B14AE27BD3E55410AD7A360C9C35041C3F528BCBA3E5541EC51B87ECAC35041AE47E19AB73E55418FC2F5D8CBC350410AD7A390B43E5541C3F5288CCCC35041B81E85CBB23E55413D0AD7D3CCC35041F6285C9FB13E5541CDCCCC2CCDC35041333333C3B03E5541295C8F92CDC3504185EB5128B03E5541F6285C8FCEC35041C3F528FCAE3E5541666666C6CEC350418FC2F598AE3E554185EB5108CFC35041A4703DEAAD3E55418FC2F548CFC350411F85EBD1AC3E554148E17A84CFC350419A999959AC3E554148E17A34D0C350417B14AE97AB3E55410AD7A380D0C35041F6285CCFAA3E5541B81E85BBD0C350413D0AD783A93E554133333323D1C350410AD7A300A93E55419A9999C9D1C35041B81E85FBA73E5541713D0A67D2C35041C3F5287CA63E55419A999909D3C350410AD7A370A43E5541F6285C5FD3C35041D7A370EDA23E5541295C8FD2D3C35041B81E850BA13E55411F85EB31D4C3504152B81E859F3E5541666666B6D4C35041295C8F829D3E5541E17A140ED5C350417B14AE079C3E5541295C8FA2D4C35041A4703DEA9A3E554185EB51B8D4C3504114AE47E1993E5541666666B6D4C35041295C8F12993E554148E17A64D4C35041713D0AE7973E5541F6285CFFD3C3504148E17AB4963E5541666666D6D2C35041C3F528FC953E5541B81E85EBD1C35041295C8F62953E554100000030D1C350415C8FC2B5943E5541666666B6D0C35041A4703D0A943E554166666616D0C35041C3F5286C923E5541713D0AC7CCC35041A4703D9A8E3E554152B81E45CAC350413D0AD7138F3E5541713D0A57C1C3504114AE4781973E554100000040BFC35041E17A145E983E5541C3F5283CBDC350411F85EB01983E55413D0AD7A3BAC350411F85EBA1953E5541D7F8BF2DBAC35041538CFCF2943E55410D0000007B14AEF7BDC3504185EB5158C23E55411F85EB61BDC35041E17A142EC63E55411F85EB61BDC35041AE47E1AACA3E5541EC51B89EB6C35041CDCCCC3CC93E5541CDCCCCCCB4C3504148E17A64C83E55418FC2F5C8B2C350410AD7A370C63E5541AE47E15AB1C3504152B81EA5C33E5541295C8F82B0C3504166666646BD3E554133333393B0C35041D7A3707DB73E5541CDCCCC2CB3C35041EC51B81EB13E554152B81EF5C0C35041D7A3707DB73E554114AE47F1BEC35041F6285C2FBE3E55417B14AEF7BDC3504185EB5158C23E554105000000D7A3706DB5C350411F85EB118E3E5541713D0A67B5C35041A4703D8A8E3E5541713D0A77AEC35041A4703D6A8B3E5541713D0A97AEC35041A4703DFA8A3E5541D7A3706DB5C350411F85EB118E3E5541
+</a>
+
+<b>
+0106000000010000000103000000020000005200000082A1F723BCC35041434A7B01973E55415E482A8BB9C35041C1504BA9943E554118EC554EB9C350416ADD415D943E5541CABC7A13B7C350417FBC7CFB923E55415670CBD9ABC35041829F236B8D3E5541E182E47AA2C350418FBC9883893E5541AF3BE3FC99C35041F635FF18863E5541AA262B0E8FC35041A713DC44873E554130759DE379C35041C7E21345833E554173B5AE9876C350410159810B813E5541A197F60D74C35041965D6E49803E5541927BB60B68C350414148B764783E55414B974D0763C35041347591FB723E55416FA01D4C5CC350417DD497F06F3E55416387FDB15BC35041D26715B76F3E55416708EC3659C35041C340FEE0803E55419A9999F957C3504148E17A74893E55417B14AEE756C35041C3F528EC8E3E5541295C8F8257C3504114AE47F18E3E55417B14AE0757C3504148E17AA4913E55417B14AE7756C350417B14AE97953E55418FC2F53856C35041AE47E10A973E554148E17A3455C35041666666C69B3E5541CDCCCC1C54C350415C8FC275A13E5541B81E855B53C35041E17A14AEA53E55419A99998952C350419A9999E9AB3E55415C8FC21552C350419A999999B03E554175F6E3A551C350413F52C6BDB33E5541C879E01866C350417D24C46FC73E55414D22AF996FC35041C750E5E8CD3E5541743DB89396C35041D90DD59DD93E554162EA7698B8C35041F751F65BE43E55414A54FBADC5C3504108899BD6E63E5541AE231455C7C35041CE0CEECEE33E5541AD9CE24BC8C35041CBF10E79DD3E55418F57DABEC7C35041BBC8CC10D93E5541381D5633C3C3504162FA9A38CD3E55414B980222C7C35041CC14E96BC33E55411F85EB71C7C35041B81E85DBC13E5541AE47E10AC8C35041713D0AE7BF3E554185EB5148C8C3504133333393BE3E5541295C8F82C8C350417B14AE27BD3E55410AD7A360C9C35041C3F528BCBA3E5541EC51B87ECAC35041AE47E19AB73E55418FC2F5D8CBC350410AD7A390B43E5541C3F5288CCCC35041B81E85CBB23E55413D0AD7D3CCC35041F6285C9FB13E5541CDCCCC2CCDC35041333333C3B03E5541295C8F92CDC3504185EB5128B03E5541F6285C8FCEC35041C3F528FCAE3E5541666666C6CEC350418FC2F598AE3E554185EB5108CFC35041A4703DEAAD3E55418FC2F548CFC350411F85EBD1AC3E554148E17A84CFC350419A999959AC3E554148E17A34D0C350417B14AE97AB3E55410AD7A380D0C35041F6285CCFAA3E5541B81E85BBD0C350413D0AD783A93E554133333323D1C350410AD7A300A93E55419A9999C9D1C35041B81E85FBA73E5541713D0A67D2C35041C3F5287CA63E55419A999909D3C350410AD7A370A43E5541F6285C5FD3C35041D7A370EDA23E5541295C8FD2D3C35041B81E850BA13E55411F85EB31D4C3504152B81E859F3E5541666666B6D4C35041295C8F829D3E5541E17A140ED5C350417B14AE079C3E5541295C8FA2D4C35041A4703DEA9A3E554185EB51B8D4C3504114AE47E1993E5541666666B6D4C35041295C8F12993E554148E17A64D4C35041713D0AE7973E5541F6285CFFD3C3504148E17AB4963E5541666666D6D2C35041C3F528FC953E5541B81E85EBD1C35041295C8F62953E554100000030D1C350415C8FC2B5943E5541666666B6D0C35041A4703D0A943E554166666616D0C35041C3F5286C923E5541713D0AC7CCC35041A4703D9A8E3E554152B81E45CAC350413D0AD7138F3E5541713D0A57C1C3504114AE4781973E554100000040BFC35041E17A145E983E5541C3F5283CBDC350411F85EB01983E554182A1F723BCC35041434A7B01973E55410D0000007B14AEF7BDC3504185EB5158C23E55411F85EB61BDC35041E17A142EC63E55411F85EB61BDC35041AE47E1AACA3E5541EC51B89EB6C35041CDCCCC3CC93E5541CDCCCCCCB4C3504148E17A64C83E55418FC2F5C8B2C350410AD7A370C63E5541AE47E15AB1C3504152B81EA5C33E5541295C8F82B0C3504166666646BD3E554133333393B0C35041D7A3707DB73E5541CDCCCC2CB3C35041EC51B81EB13E554152B81EF5C0C35041D7A3707DB73E554114AE47F1BEC35041F6285C2FBE3E55417B14AEF7BDC3504185EB5158C23E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>727298 - 421731
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000300000078000000D7F8BF2DBAC35041538CFCF2943E5541713D0AE7B9C35041A4703D8A943E5541713D0A97B9C35041A4703D6A903E5541713D0A27B9C35041A4703DDA8F3E5541713D0AC7B6C35041A4703D4A8E3E5541713D0A17B3C35041A4703D1A8B3E5541713D0A47B0C35041A4703D5A8A3E5541713D0A07ACC35041A4703D9A893E5541713D0A87AAC35041A4703DEA883E5541B81E855BA8C350410AD7A3A0873E5541713D0A57A7C35041A4703DCA863E5541713D0A47A4C35041A4703D3A863E5541713D0AE7A2C35041A4703D2A853E5541713D0A97A0C35041A4703DFA813E5541713D0AC79AC35041A4703D4A7E3E5541F6285CFF97C3504185EB51B87D3E554114AE47B195C35041F6285CDF7E3E5541E17A14EE8FC35041AE47E17A833E5541D7A3700D85C350419A999989813E55419A9999C97EC3504100000050803E55411F85EB417BC3504152B81E857F3E55417B14AE9778C350419A9999497D3E5541D7A370DD76C35041333333437A3E5541AE47E1CA76C350413D0AD763783E55410AD7A37077C350410AD7A3F0753E554114AE47E178C3504100000080743E554152B81E3575C35041713D0A57723E55419A9999B96EC35041C3F5281C793E5541333333A36CC3504148E17AD4793E5541B0F737DB6AC35041498D521C783E5541EC51B85E66C350417B14AEC7733E55413D0AD79365C350413D0AD7E36F3E5541EC51B80E5DC35041D7A3702D6C3E5541295C8FE25BC35041713D0A676E3E55419A9999F957C3504148E17A74893E55417B14AEE756C35041C3F528EC8E3E5541295C8F8257C3504114AE47F18E3E55417B14AE0757C3504148E17AA4913E55417B14AE7756C350417B14AE97953E55418FC2F53856C35041AE47E10A973E554148E17A3455C35041666666C69B3E5541CDCCCC1C54C350415C8FC275A13E5541B81E855B53C35041E17A14AEA53E55419A99998952C350419A9999E9AB3E55415C8FC21552C350419A999999B03E5541F6285CFF50C35041AE47E16AB83E5541713D0AF753C35041A4703D3ABB3E5541EC51B88E56C35041E17A148EBD3E5541CDCCCC6C58C3504133333343BF3E55419A9999D959C3504133333393C03E5541A4703DBA5BC3504166666686C23E5541A4703DFA62C350417B14AEA7C93E5541713D0AC76DC350418FC2F548D13E5541F6285C8F7FC350419A999909D73E5541D7A370ED92C35041E17A148EDC3E55418FC2F5A8B7C35041C3F5280CE83E5541F6285CBFC0C35041A4703DCAE93E5541B81E857BC6C35041713D0AC7EA3E5541EC51B86EC8C3504133333363EA3E5541C3F528CCC9C3504152B81EF5E83E5541666666D6CAC350413D0AD793E53E55411F85EB01CCC35041666666F6E03E554148E17A44CCC35041CDCCCCBCDC3E554166666676CBC350411F85EBD1D73E5541A4703D6ACAC3504152B81ED5D53E55415C8FC2B5C9C35041A4703DBAD33E554133333343C9C35041333333C3D13E5541E17A14DEC8C350417B14AED7CF3E554148E17A74C8C35041295C8FF2CE3E5541B81E857BC7C350411F85EB71CD3E554185EB51E8C6C350413D0AD743CC3E5541C3F528CCC6C35041C3F5287CCB3E5541F6285CBFC6C350411F85EB21C93E5541F6285CBFC6C350415C8FC2B5C63E554185EB51F8C6C35041CDCCCC3CC43E55411F85EB71C7C35041B81E85DBC13E5541AE47E10AC8C35041713D0AE7BF3E554185EB5148C8C3504133333393BE3E5541295C8F82C8C350417B14AE27BD3E55410AD7A360C9C35041C3F528BCBA3E5541EC51B87ECAC35041AE47E19AB73E55418FC2F5D8CBC350410AD7A390B43E5541C3F5288CCCC35041B81E85CBB23E55413D0AD7D3CCC35041F6285C9FB13E5541CDCCCC2CCDC35041333333C3B03E5541295C8F92CDC3504185EB5128B03E5541F6285C8FCEC35041C3F528FCAE3E5541666666C6CEC350418FC2F598AE3E554185EB5108CFC35041A4703DEAAD3E55418FC2F548CFC350411F85EBD1AC3E554148E17A84CFC350419A999959AC3E554148E17A34D0C350417B14AE97AB3E55410AD7A380D0C35041F6285CCFAA3E5541B81E85BBD0C350413D0AD783A93E554133333323D1C350410AD7A300A93E55419A9999C9D1C35041B81E85FBA73E5541713D0A67D2C35041C3F5287CA63E55419A999909D3C350410AD7A370A43E5541F6285C5FD3C35041D7A370EDA23E5541295C8FD2D3C35041B81E850BA13E55411F85EB31D4C3504152B81E859F3E5541666666B6D4C35041295C8F829D3E5541E17A140ED5C350417B14AE079C3E5541295C8FA2D4C35041A4703DEA9A3E554185EB51B8D4C3504114AE47E1993E5541666666B6D4C35041295C8F12993E554148E17A64D4C35041713D0AE7973E5541F6285CFFD3C3504148E17AB4963E5541666666D6D2C35041C3F528FC953E5541B81E85EBD1C35041295C8F62953E554100000030D1C350415C8FC2B5943E5541666666B6D0C35041A4703D0A943E554166666616D0C35041C3F5286C923E5541713D0AC7CCC35041A4703D9A8E3E554152B81E45CAC350413D0AD7138F3E5541713D0A57C1C3504114AE4781973E554100000040BFC35041E17A145E983E5541C3F5283CBDC350411F85EB01983E55413D0AD7A3BAC350411F85EBA1953E5541D7F8BF2DBAC35041538CFCF2943E55410D0000007B14AEF7BDC3504185EB5158C23E55411F85EB61BDC35041E17A142EC63E55411F85EB61BDC35041AE47E1AACA3E5541EC51B89EB6C35041CDCCCC3CC93E5541CDCCCCCCB4C3504148E17A64C83E55418FC2F5C8B2C350410AD7A370C63E5541AE47E15AB1C3504152B81EA5C33E5541295C8F82B0C3504166666646BD3E554133333393B0C35041D7A3707DB73E5541CDCCCC2CB3C35041EC51B81EB13E554152B81EF5C0C35041D7A3707DB73E554114AE47F1BEC35041F6285C2FBE3E55417B14AEF7BDC3504185EB5158C23E554105000000D7A3706DB5C350411F85EB118E3E5541713D0A67B5C35041A4703D8A8E3E5541713D0A77AEC35041A4703D6A8B3E5541713D0A97AEC35041A4703DFA8A3E5541D7A3706DB5C350411F85EB118E3E5541
+</a>
+
+<b>
+0106000000010000000103000000020000003A000000DEDD71FB8FC35041683BAC91833E55415598E5A890C350410717A152833E55415DA605AA96C3504134F81A72823E55416FE303A59AC350412B55BBD9823E5541837DA2079FC3504129C93C78843E5541701625DEA7C350413B063B73883E5541C07A5C29AAC350415EB8D698893E5541214B7069AEC350417D8153F58B3E5541D37FBBF4B4C3504114D640ED8E3E554118EC554EB9C350416ADD415D943E55415E482A8BB9C35041C1504BA9943E554182A1F723BCC35041434A7B01973E55413D0AD7A3BAC350411F85EBA1953E5541D4F8BF2DBAC35041588CFCF2943E5541713D0AE7B9C35041A4703D8A943E5541713D0A97B9C35041A4703D6A903E5541713D0A27B9C35041A4703DDA8F3E5541713D0AC7B6C35041A4703D4A8E3E5541713D0A17B3C35041A4703D1A8B3E5541713D0A47B0C35041A4703D5A8A3E5541713D0A07ACC35041A4703D9A893E5541713D0A87AAC35041A4703DEA883E5541B81E855BA8C350410AD7A3A0873E5541713D0A57A7C35041A4703DCA863E5541713D0A47A4C35041A4703D3A863E5541713D0AE7A2C35041A4703D2A853E5541713D0A97A0C35041A4703DFA813E5541713D0AC79AC35041A4703D4A7E3E5541F6285CFF97C3504185EB51B87D3E554114AE47B195C35041F6285CDF7E3E554181949A2793C3504160AFD1E6803E5541E17A14EE8FC35041AE47E17A833E5541D7A3700D85C350419A999989813E55419A9999C97EC3504100000050803E55411F85EB417BC3504152B81E857F3E55417B14AE9778C350419A9999497D3E5541D7A370DD76C35041333333437A3E5541AE47E1CA76C350413D0AD763783E55410AD7A37077C350410AD7A3F0753E554114AE47E178C3504100000080743E554152B81E3575C35041713D0A57723E55419A9999B96EC35041C3F5281C793E5541333333A36CC3504148E17AD4793E5541B3F737DB6AC350414B8D521C783E5541EC51B85E66C350417B14AEC7733E55413D0AD79365C350413D0AD7E36F3E5541EC51B80E5DC35041D7A3702D6C3E554188420FCD5CC35041B1C403B46D3E554181D3F7A75DC35041A6CEC8346E3E5541B74E102A61C35041BCF4E5F8703E5541927BB60B68C350414148B764783E5541A197F60D74C35041965D6E49803E554173B5AE9876C350410159810B813E55410C0B6AE677C35041B90F0A6F813E5541D9C434A380C35041A956B8D0823E5541B735D8AF87C350417FA211EE833E554187627E918EC3504156AAB697833E5541DEDD71FB8FC35041683BAC91833E554105000000D7A3706DB5C350411F85EB118E3E5541713D0A67B5C35041A4703D8A8E3E5541713D0A77AEC35041A4703D6A8B3E5541713D0A97AEC35041A4703DFA8A3E5541D7A3706DB5C350411F85EB118E3E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>287601 - 3104366
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000020000003D0000003D0AD753C1A75141D7A3709DE0A65441713D0A07C0A7514148E17A14E1A654411F85EB61BBA751417B14AEB7D5A65441F6285CCFBAA75141295C8FC2D2A65441CDCCCC9CBBA75141D7A370CDCCA654419A9999E9BAA751410AD7A390C9A65441A4703DCAB9A75141EC51B85EC6A6544114AE4741B8A7514166666696C3A6544100000030B6A7514133333323C1A65441C3F528ACB2A75141AE47E15ABEA654410AD7A3D0AFA751419A999909BDA65441D7A370FDADA75141E17A14AEBCA65441E17A14BE9DA751418FC2F5E8C0A65441D7A3704D94A751410AD7A370C3A65441C3F5280C8AA75141713D0A37C6A65441D7A3704D8EA751419A999959D0A654419A9999E996A7514148E17A34CBA654416666666698A751417B14AE77CCA65441AE47E1CA9BA7514148E17AD4D5A654413D0AD7939DA75141AE47E12AD5A65441B81E855BA1A751419A9999C9D6A65441B81E858BABA75141D7A3705DCFA65441713D0AC7AEA75141F6285CAFD2A6544185EB51A8AEA751417B14AEF7D3A654417B14AE07ADA751415C8FC245D8A654415C8FC285A9A7514114AE47C1D9A65441AC00BC69ABA75141A51BFC69DCA65441EF24DC90ADA75141B671FA71DBA654411F85EBC1ADA751418FC2F5B8DEA654411F85EBC1ADA75141333333B3E3A65441E17A143EABA751410AD7A300EDA654415C8FC225AAA751417B14AE57F7A654413D0AD7E3A8A75141295C8FD2FFA65441CDCCCC0C9EA75141D7A370DDFEA65441713D0A5799A751413D0AD72306A75441C3F5284C8DA751415C8FC28508A75441B81E85CB86A751415C8FC29510A75441C3F5284C81A7514185EB517812A75441000000607CA751418FC2F5E80DA75441D7A3700D75A75141D7A3702D0FA75441B81E852B75A75141D7A370AD10A7544148E17A8475A7514152B81EC512A7544152B81E057BA7514114AE47D116A754413D0AD7F37DA75141E17A140E18A75441E17A143E82A75141A4703D4A19A754410000008090A75141F6285C8F22A7544114AE47419CA751411F85EBF116A75441C3F5288CAAA75141F6285C2F09A75441B81E852BABA751411F85EB5108A754419B874231ABA75141667A985308A7544145626031ABA751417252525108A754419A9999F9ABA75141E17A148E08A754417B14AED7C8A75141333333F310A75441B81E859BCAA75141D7A370CD10A75441A4703D4ACBA75141D7A3700D10A75441A4703DAACAA751419A9999090AA75441A4703D8AC8A75141F6285CAFFFA654413D0AD703C7A7514185EB51C8F7A65441A4703DDAC5A7514114AE47F1F0A65441F66B4C55C3A75141BC1E5AC2E6A654413D0AD753C1A75141D7A3709DE0A654410F000000D0324C83B1A7514106A47C11DAA65441CECDA382B1A751419AB70411DAA65441F8E20C81B1A75141B42C9A16DAA654416026B77EB1A75141075FF114DAA654415622C62FB1A7514111171E34DBA654412A426CD8AEA751412907936DE3A65441B81E85EBAEA75141295C8FE2DEA654419A9999F9ADA751418FC2F5D8DBA654415C8FC255B0A75141F6285CEFD7A65441A4703D6AB1A75141A4703D4AD4A65441D7A370DDAFA75141B81E85ABD2A65441E17A144EB3A75141B81E85CBD1A654418FC2F5B8B4A751418FC2F538D4A6544100000090B2A7514185EB51B8D6A65441D0324C83B1A7514106A47C11DAA65441
+</a>
+
+<b>
+010600000001000000010300000001000000890000007B14AED7C8A75141333333F310A75441B81E859BCAA75141D7A370CD10A75441A4703D4ACBA75141D7A3700D10A75441A4703DAACAA751419A9999090AA75441A4703D8AC8A75141F6285CAFFFA654413D0AD703C7A7514185EB51C8F7A65441A4703DDAC5A7514114AE47F1F0A65441CDCCCC4CC3A75141000000A0E6A654416A9C7295BFA75141CB7B2AE5E3A6544121CB0650C0A75141DD2BA24AE3A65441AE47E1AABFA7514133333393E1A65441B066EE15BDA7514121DF8A86DBA654411E918A3EBBA75141646B0936D7A6544185EB5148BAA7514152B81EF5D4A654419433D020BAA751411220962FD4A65441295C8FE2B9A7514185EB51F8D2A6544110E63880BAA751413AA26FC5D0A65441994A5E1ABBA7514191091B9FCEA65441CDCCCC9CBBA75141D7A370CDCCA654413D9AD2EABAA75141FB794B96C9A65441E90A9ED3B9A7514134376979C6A65441170CC338B8A7514144564E8CC3A654419483552CB6A751419B494C20C1A65441B8502233B4A7514100C16090BFA654417D0374B2B2A751411F9ADC5FBEA65441062CE1C3AFA7514159B050FEBCA65441748570F6ADA75141D70DE7AFBCA654412E0C05CAAAA751418B0A6A83BDA654419586D429A5A7514149445DFABEA65441E4B5B9789EA75141DBBBCCBDC0A65441014C3E6499A7514110487A13C2A6544165D996A495A75141BD4FAC14C3A654419E13759B97A751412CA94958C8A65441B4BF9A229AA75141E918E7F0CEA65441275C596F9CA751412401F671D6A65441FB1D4C489EA7514141EEC7DBD5A654419D0E43369FA75141F62434DED5A65441A07A7911A2A75141E7A9AB33D6A65441C1311328A4A75141E7A9AB33D6A6544134CD878BA5A75141D1A92F22D6A65441053E585BA6A75141F1072878D5A6544117FEC0F9A6A75141A329F3F2D4A65441EE01E10AA8A75141DC608FA1D3A654410DED735DA9A75141A23F7AF5D1A65441C1255B04AAA75141122EE4F7D0A65441E3EA7884AAA751416E914959D0A654418154D2A1ABA751414BA3708FCFA65441423A8452ADA751412D27DFC0D0A65441EED7B6AEAEA7514125FA65B2D1A65441FB124159AFA7514142EAB818D2A6544186BCD2ACB0A75141578E14EBD1A65441BF2DF56CB1A751419D9733CCD1A654419CD9954AB2A75141ED3295A8D1A6544144ADE1A8B2A7514112480FB2D1A654410A15BBFCB2A7514196D74434D3A65441C14F2427B3A75141648A416AD4A6544160EAA3B9B2A75141F39F6297D5A654414FFDC99CB2A75141BA739763D6A6544173F92A41B2A75141EFDBB7C4D7A654418E3616FEB1A751413663C989D8A65441CD692289B1A751412E1EDC9ED9A65441CAA87084B0A7514118E2BF5FD9A65441F550F82FB1A7514143DA7172D7A654419537136DB1A7514107C02E18D6A65441535BAA92B1A7514198A02B43D5A65441B6091EAFB0A751412CEBA310D4A6544103CA09D3AEA75141CB2BDB6FD4A65441892523D6ADA7514198ACA523D6A654417915A1AEACA75141297EE7BCD6A6544168DE9AFCABA7514153DB1760D7A6544196EB0EF3AAA751413DCF8253D8A654418CE6771AAAA751414C27864BD9A65441670817A7ABA75141660C680EDCA654416A49F698ADA751417D5ADB61DBA654411F85EBC1ADA75141B46BCC48E0A654411F85EBC1ADA7514147B137EBE2A6544158C55FBAADA751410F5E1CCFE3A65441CC645554ADA75141B5008A48E5A65441D3710C1CADA7514141EDB918E6A65441138D4158ACA751413BD8ECECE8A654412159DF9DABA75141E27A529EEBA6544169479A3BABA75141228D0818EDA654412B336105ABA75141B7800E18EFA654416FD42BCAAAA751415A5F2847F1A65441C44F318EAAA751415CE5877DF3A65441E59CD667AAA75141EA1AB5E7F4A65441DAB709C9A9A75141C164F4C8F9A65441C53B1DEBA8A751415B25168700A75441F950DC2DA7A75141BCBFCD9200A754418952AD4BA4A751416E21804C00A7544130D97632A3A751416E21804C00A75441FC7C2BD1A0A75141751DEA1100A75441F679AFAA9DA75141150D449AFFA654411C367C219CA75141786551D401A7544192644C6199A7514198B8FE1306A754417E271E8793A75141D644364A07A7544129B65BFE90A75141A12E90CA07A75441C3F5284C8DA751415C8FC28508A75441692690FC88A75141A54B1EDE0DA75441D3CC28BD86A75141AC1BAF9A10A7544172ACE65381A75141856CAA7512A75441B601AD687CA751416035FFF00DA754413E3EC22076A751413C83C8FD0EA75441D8A4B40D75A75141ACC6D4300FA7544140AB084C75A751410B94397111A754416D175E8E75A75141849D64CC12A754410442631B7AA75141BD395A2516A754416FC723FD7AA75141B9F168CB16A75441AAE645F77DA75141497C110F18A7544199A5B80480A75141706D55A618A75441E934034482A751415DE4184E19A75441CCCDFBE684A75141BFE4F3041BA754418CD6B27989A75141990B22FE1DA75441402E54588DA75141039C398220A754410000008090A75141F6285C8F22A754413AFD26F493A751415BE0BC251FA754414D7E70669AA75141AE568DC518A7544114AE47419CA751411F85EBF116A75441E138E530A3A751414CA40F4210A7544154A2EB47AAA75141B6F9C16C09A75441CF18671FABA75141480B105D08A75441639F7586ABA75141BF122DD9FEA65441906DD3C8ABA7514118D261CEF6A65441C7CAD8E4ABA75141F76ED8AFF3A654419CBC2F0DACA75141DD536030EFA654412AE44C22ACA751418F4072FBECA654411BE71F8AADA751419EC29B0AE8A6544142CCE7D8AEA7514111EFCC71E3A65441D50B380DAFA75141457CA9EEDEA6544175718001AFA751410924F4C7DCA65441487D42B1AFA75141D5A29139DBA65441C8A04B85B1A75141B704C315DAA6544188540CA3B1A75141201CDD17DBA65441D20F05DBAEA75141AA898012E6A65441FF5B8997ACA7514169D37BFCECA654419147DB2FABA75141DA10865308A754417B14AED7C8A75141333333F310A75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>287601 - 3204490
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000020000003D0000003D0AD753C1A75141D7A3709DE0A65441713D0A07C0A7514148E17A14E1A654411F85EB61BBA751417B14AEB7D5A65441F6285CCFBAA75141295C8FC2D2A65441CDCCCC9CBBA75141D7A370CDCCA654419A9999E9BAA751410AD7A390C9A65441A4703DCAB9A75141EC51B85EC6A6544114AE4741B8A7514166666696C3A6544100000030B6A7514133333323C1A65441C3F528ACB2A75141AE47E15ABEA654410AD7A3D0AFA751419A999909BDA65441D7A370FDADA75141E17A14AEBCA65441E17A14BE9DA751418FC2F5E8C0A65441D7A3704D94A751410AD7A370C3A65441C3F5280C8AA75141713D0A37C6A65441D7A3704D8EA751419A999959D0A654419A9999E996A7514148E17A34CBA654416666666698A751417B14AE77CCA65441AE47E1CA9BA7514148E17AD4D5A654413D0AD7939DA75141AE47E12AD5A65441B81E855BA1A751419A9999C9D6A65441B81E858BABA75141D7A3705DCFA65441713D0AC7AEA75141F6285CAFD2A6544185EB51A8AEA751417B14AEF7D3A654417B14AE07ADA751415C8FC245D8A654415C8FC285A9A7514114AE47C1D9A65441AC00BC69ABA75141A51BFC69DCA65441EF24DC90ADA75141B671FA71DBA654411F85EBC1ADA751418FC2F5B8DEA654411F85EBC1ADA75141333333B3E3A65441E17A143EABA751410AD7A300EDA654415C8FC225AAA751417B14AE57F7A654413D0AD7E3A8A75141295C8FD2FFA65441CDCCCC0C9EA75141D7A370DDFEA65441713D0A5799A751413D0AD72306A75441C3F5284C8DA751415C8FC28508A75441B81E85CB86A751415C8FC29510A75441C3F5284C81A7514185EB517812A75441000000607CA751418FC2F5E80DA75441D7A3700D75A75141D7A3702D0FA75441B81E852B75A75141D7A370AD10A7544148E17A8475A7514152B81EC512A7544152B81E057BA7514114AE47D116A754413D0AD7F37DA75141E17A140E18A75441E17A143E82A75141A4703D4A19A754410000008090A75141F6285C8F22A7544114AE47419CA751411F85EBF116A75441C3F5288CAAA75141F6285C2F09A75441B81E852BABA751411F85EB5108A754419B874231ABA75141667A985308A7544145626031ABA751417252525108A754419A9999F9ABA75141E17A148E08A754417B14AED7C8A75141333333F310A75441B81E859BCAA75141D7A370CD10A75441A4703D4ACBA75141D7A3700D10A75441A4703DAACAA751419A9999090AA75441A4703D8AC8A75141F6285CAFFFA654413D0AD703C7A7514185EB51C8F7A65441A4703DDAC5A7514114AE47F1F0A65441F66B4C55C3A75141BC1E5AC2E6A654413D0AD753C1A75141D7A3709DE0A654410F000000D0324C83B1A7514106A47C11DAA65441CECDA382B1A751419AB70411DAA65441F8E20C81B1A75141B42C9A16DAA654416026B77EB1A75141075FF114DAA654415622C62FB1A7514111171E34DBA654412A426CD8AEA751412907936DE3A65441B81E85EBAEA75141295C8FE2DEA654419A9999F9ADA751418FC2F5D8DBA654415C8FC255B0A75141F6285CEFD7A65441A4703D6AB1A75141A4703D4AD4A65441D7A370DDAFA75141B81E85ABD2A65441E17A144EB3A75141B81E85CBD1A654418FC2F5B8B4A751418FC2F538D4A6544100000090B2A7514185EB51B8D6A65441D0324C83B1A7514106A47C11DAA65441
+</a>
+
+<b>
+010600000001000000010300000001000000890000007B14AED7C8A75141333333F310A75441B81E859BCAA75141D7A370CD10A75441A4703D4ACBA75141D7A3700D10A75441A4703DAACAA751419A9999090AA75441A4703D8AC8A75141F6285CAFFFA654413D0AD703C7A7514185EB51C8F7A65441A4703DDAC5A7514114AE47F1F0A65441CDCCCC4CC3A75141000000A0E6A654416A9C7295BFA75141CB7B2AE5E3A6544121CB0650C0A75141DD2BA24AE3A65441AE47E1AABFA7514133333393E1A65441B066EE15BDA7514121DF8A86DBA654411E918A3EBBA75141646B0936D7A6544185EB5148BAA7514152B81EF5D4A654419433D020BAA751411220962FD4A65441295C8FE2B9A7514185EB51F8D2A6544110E63880BAA751413AA26FC5D0A65441994A5E1ABBA7514191091B9FCEA65441CDCCCC9CBBA75141D7A370CDCCA654413D9AD2EABAA75141FB794B96C9A65441E90A9ED3B9A7514134376979C6A65441170CC338B8A7514144564E8CC3A654419483552CB6A751419B494C20C1A65441B8502233B4A7514100C16090BFA654417D0374B2B2A751411F9ADC5FBEA65441062CE1C3AFA7514159B050FEBCA65441748570F6ADA75141D70DE7AFBCA654412E0C05CAAAA751418B0A6A83BDA654419586D429A5A7514149445DFABEA65441E4B5B9789EA75141DBBBCCBDC0A65441014C3E6499A7514110487A13C2A6544165D996A495A75141BD4FAC14C3A654419E13759B97A751412CA94958C8A65441B4BF9A229AA75141E918E7F0CEA65441275C596F9CA751412401F671D6A65441FB1D4C489EA7514141EEC7DBD5A654419D0E43369FA75141F62434DED5A65441A07A7911A2A75141E7A9AB33D6A65441C1311328A4A75141E7A9AB33D6A6544134CD878BA5A75141D1A92F22D6A65441053E585BA6A75141F1072878D5A6544117FEC0F9A6A75141A329F3F2D4A65441EE01E10AA8A75141DC608FA1D3A654410DED735DA9A75141A23F7AF5D1A65441C1255B04AAA75141122EE4F7D0A65441E3EA7884AAA751416E914959D0A654418154D2A1ABA751414BA3708FCFA65441423A8452ADA751412D27DFC0D0A65441EED7B6AEAEA7514125FA65B2D1A65441FB124159AFA7514142EAB818D2A6544186BCD2ACB0A75141578E14EBD1A65441BF2DF56CB1A751419D9733CCD1A654419CD9954AB2A75141ED3295A8D1A6544144ADE1A8B2A7514112480FB2D1A654410A15BBFCB2A7514196D74434D3A65441C14F2427B3A75141648A416AD4A6544160EAA3B9B2A75141F39F6297D5A654414FFDC99CB2A75141BA739763D6A6544173F92A41B2A75141EFDBB7C4D7A654418E3616FEB1A751413663C989D8A65441CD692289B1A751412E1EDC9ED9A65441CAA87084B0A7514118E2BF5FD9A65441F550F82FB1A7514143DA7172D7A654419537136DB1A7514107C02E18D6A65441535BAA92B1A7514198A02B43D5A65441B6091EAFB0A751412CEBA310D4A6544103CA09D3AEA75141CB2BDB6FD4A65441892523D6ADA7514198ACA523D6A654417915A1AEACA75141297EE7BCD6A6544168DE9AFCABA7514153DB1760D7A6544196EB0EF3AAA751413DCF8253D8A654418CE6771AAAA751414C27864BD9A65441670817A7ABA75141660C680EDCA654416A49F698ADA751417D5ADB61DBA654411F85EBC1ADA75141B46BCC48E0A654411F85EBC1ADA7514147B137EBE2A6544158C55FBAADA751410F5E1CCFE3A65441CC645554ADA75141B5008A48E5A65441D3710C1CADA7514141EDB918E6A65441138D4158ACA751413BD8ECECE8A654412159DF9DABA75141E27A529EEBA6544169479A3BABA75141228D0818EDA654412B336105ABA75141B7800E18EFA654416FD42BCAAAA751415A5F2847F1A65441C44F318EAAA751415CE5877DF3A65441E59CD667AAA75141EA1AB5E7F4A65441DAB709C9A9A75141C164F4C8F9A65441C53B1DEBA8A751415B25168700A75441F950DC2DA7A75141BCBFCD9200A754418952AD4BA4A751416E21804C00A7544130D97632A3A751416E21804C00A75441FC7C2BD1A0A75141751DEA1100A75441F679AFAA9DA75141150D449AFFA654411C367C219CA75141786551D401A7544192644C6199A7514198B8FE1306A754417E271E8793A75141D644364A07A7544129B65BFE90A75141A12E90CA07A75441C3F5284C8DA751415C8FC28508A75441692690FC88A75141A54B1EDE0DA75441D3CC28BD86A75141AC1BAF9A10A7544172ACE65381A75141856CAA7512A75441B601AD687CA751416035FFF00DA754413E3EC22076A751413C83C8FD0EA75441D8A4B40D75A75141ACC6D4300FA7544140AB084C75A751410B94397111A754416D175E8E75A75141849D64CC12A754410442631B7AA75141BD395A2516A754416FC723FD7AA75141B9F168CB16A75441AAE645F77DA75141497C110F18A7544199A5B80480A75141706D55A618A75441E934034482A751415DE4184E19A75441CCCDFBE684A75141BFE4F3041BA754418CD6B27989A75141990B22FE1DA75441402E54588DA75141039C398220A754410000008090A75141F6285C8F22A754413AFD26F493A751415BE0BC251FA754414D7E70669AA75141AE568DC518A7544114AE47419CA751411F85EBF116A75441E138E530A3A751414CA40F4210A7544154A2EB47AAA75141B6F9C16C09A75441CF18671FABA75141480B105D08A75441639F7586ABA75141BF122DD9FEA65441906DD3C8ABA7514118D261CEF6A65441C7CAD8E4ABA75141F76ED8AFF3A654419CBC2F0DACA75141DD536030EFA654412AE44C22ACA751418F4072FBECA654411BE71F8AADA751419EC29B0AE8A6544142CCE7D8AEA7514111EFCC71E3A65441D50B380DAFA75141457CA9EEDEA6544175718001AFA751410924F4C7DCA65441487D42B1AFA75141D5A29139DBA65441C8A04B85B1A75141B704C315DAA6544188540CA3B1A75141201CDD17DBA65441D20F05DBAEA75141AA898012E6A65441FF5B8997ACA7514169D37BFCECA654419147DB2FABA75141DA10865308A754417B14AED7C8A75141333333F310A75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>986487 - 59054
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000130000005C8FC2656DAB5041C3F5286C4B025541333333E370AB504114AE47014F02554152B81E2572AB504148E17AE44E02554185EB51A882AB5041B81E857B3602554185EB510884AB5041333333432A025541AE47E14A93AB5041E17A14EE0B02554185EB519882AB504114AE4751FD0155415C8FC2557AAB50415C8FC2F506025541F6285CAF77AB50410AD7A3E0170255410AD7A38078AB50415C8FC2F52602554173C00BCE7CAB504104A2CA6E2A025541E816E5FC7EAB5041152542A92E025541A59578217DAB5041E214D1CD33025541124FC3B37AAB50419AE8F0163B02554195BC778578AB5041AC96A15241025541E4E9C5B376AB5041F6B2EB164302554199189F1A74AB50419A98EB764302554117FA368F71AB504199A9C6CD430255415C8FC2656DAB5041C3F5286C4B025541
+</a>
+
+<b>
+010600000001000000010300000001000000150000005BF97CFA72AB50412AB7569D43025541F700519771AB504171756BCF430255412B08628371AB50412B7D8BF5430255415C8FC2656DAB5041C3F5286C4B025541333333E370AB504114AE47014F02554152B81E2572AB504148E17AE44E02554185EB51A882AB5041B81E857B3602554185EB510884AB5041333333432A025541AE47E14A93AB5041E17A14EE0B02554185EB519882AB504114AE4751FD0155415C8FC2557AAB50415C8FC2F506025541F6285CAF77AB50410AD7A3E0170255410AD7A38078AB50415C8FC2F52602554173C00BCE7CAB504104A2CA6E2A025541E816E5FC7EAB5041152542A92E025541E2E48FA67CAB50412A278B3E35025541124FC3B37AAB50419AE8F0163B02554195BC778578AB5041AC96A15241025541E4E9C5B376AB5041F6B2EB164302554199189F1A74AB50419A98EB76430255415BF97CFA72AB50412AB7569D43025541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>720830 - 32827
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000900000085EB512855C550419A9999A9703955410000004055C550419A9999196A395541B81E853B43C55041AE47E1AA6D395541000000403DC55041B81E85BB6E395541295C8F022AC55041F6285CAF75395541295C8F722DC55041333333A3843955417B14AEB738C550418FC2F55882395541C3F5284C4DC55041333333137239554185EB512855C550419A9999A970395541
+</a>
+
+<b>
+0106000000010000000103000000010000000A0000009B74AFA82AC550419DA4F981783955411FF4C0C12AC5504165E17AE178395541DCDE5F772DC55041C7C238A2843955410E087AE22EC55041D3007158843955416AD06EF02DC55041C01F2D6E803955416D85C44F2EC55041C16D7D6B7B39554121826EA22DC55041206F787176395541656754762DC550412108017074395541E0698F022AC55041A0645CAF753955419B74AFA82AC550419DA4F98178395541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>720830 - 88372
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000900000085EB512855C550419A9999A9703955410000004055C550419A9999196A395541B81E853B43C55041AE47E1AA6D395541000000403DC55041B81E85BB6E395541295C8F022AC55041F6285CAF75395541295C8F722DC55041333333A3843955417B14AEB738C550418FC2F55882395541C3F5284C4DC55041333333137239554185EB512855C550419A9999A970395541
+</a>
+
+<b>
+0106000000010000000103000000010000000A0000009B74AFA82AC550419DA4F981783955411FF4C0C12AC5504165E17AE178395541DCDE5F772DC55041C7C238A2843955410E087AE22EC55041D3007158843955416AD06EF02DC55041C01F2D6E803955416D85C44F2EC55041C16D7D6B7B39554121826EA22DC55041206F787176395541656754762DC550412108017074395541E0698F022AC55041A0645CAF753955419B74AFA82AC550419DA4F98178395541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>660762 - 660763
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001F0000005C8FC2C5DEDA5041EC51B88E19D854417B14AEF7EEDA504152B81E751BD85441E17A14CEF2DA50416666665613D85441E17A14CEFBDA5041A4703D3A03D85441E17A14BEFFDA5041A4703D7AFCD75441E17A14BE03DB5041A4703D8AF4D75441E17A149E08DB5041A4703D7AE7D75441E17A143E06DB5041A4703D9AE6D75441E17A146EFCDA5041A4703D8AE3D75441E17A142EF6DA5041A4703D6AE1D75441E17A14BEE4DA5041A4703D9ADDD75441E17A140EE4DA5041A4703DEAE0D75441E17A14EEE3DA5041A4703DCAE4D75441E17A140EE4DA5041A4703D6AE7D75441BE548EB6E4DA50412B605254E9D75441F93165B0E9DA5041CA3A2A7EEBD75441CEA54ECDF1DA50410FA08B85EED75441A6F11044F9DA50415405ED8CF1D754418F750F7CFDDA5041A01A0048F3D7544124C85C9801DB504197FE61E7F4D754417CD1E60D01DB5041E7EB4DFCF5D75441AE0DAFA4F7DA5041A55EC54EF2D75441340F3CAAEEDA5041B802EEBCEED75441BCE8A109E5DA50412244B4F3EAD75441E17A142EE5DA5041A4703DFAF1D75441E17A144EE5DA5041A4703D9AF8D75441E17A147EE4DA5041A4703DCAFDD75441E17A14CEE3DA5041A4703DDA02D85441E17A148EE1DA5041A4703D9A0DD85441E17A14BEDFDA5041A4703D1A16D854415C8FC2C5DEDA5041EC51B88E19D85441
+</a>
+
+<b>
+0106000000010000000103000000010000002B000000A88B90F506DB50418E36B9EBEBD75441E17A14BE03DB5041A4703D8AF4D75441474AE9D502DB50411525F356F6D7544169A71F8A02DB5041BF8C6F16F7D75441D614438201DB504122F7F0F8F8D75441E17A14BEFFDA5041A4703D7AFCD75441DAF6B02AFDDA504143E59EE400D85441E7212F5BFBDA50410855E70704D85441EBDC86E2F3DA50411D6A8F6711D85441CF1D1415EFDA5041CCEBE9361BD854417B14AEF7EEDA504152B81E751BD854415C8FC2C5DEDA5041EC51B88E19D85441F0FF93ECDCDA5041936B3F3023D854416DF505E4E2DA50413F104D7C24D854411B112822E6DA5041E7C631E421D85441A76E1CE5E9DA5041070E4B6D1FD8544167E0E9D2EEDA5041275564F61CD85441B0C1829FF3DA5041587B143D1AD85441F9A21B6CF8DA50410032F9A417D85441B914E959FDDA504174D404E213D854417A86B64702DB504170E6DBFD0FD854418E5376E905DB5041F5677EF80BD85441A1A9219907DB504115AF978109D854411AB16AAC09DB5041EC14183E02D854411C287F9E0BDB5041086E08E3FBD75441289F93900DDB50413B94B829F9D75441A12FC8B10DDB5041FB1AA228F2D754415EB36CBB0EDB50415979D9D1E8D754412A16A8820FDB5041E4FA7BCCE4D754414DD4D5FD0EDB50410E212C13E2D7544187DC498AF0DA50410CF56D09DAD754411F85EBB1EADA5041713D0A97D8D75441F6285C8FE5DA50415C8FC265D7D7544161AEC910E5DA5041CAB452ACDDD75441A8A24974EADA50410124EFD9DED754412012F76EEBDA50414AE4BD10DFD75441E17A142EF6DA5041A4703D6AE1D7544173AFDCD5F6DA5041983049A3E1D75441641D9B88FFDA5041E78A3682E4D75441E17A143E06DB5041A4703D9AE6D7544172BB1A7008DB504196374D69E7D75441E17A149E08DB5041A4703D7AE7D75441A88B90F506DB50418E36B9EBEBD75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>125010 - 226978
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000440000009A5372CCB1BC5041D7E0DAF7C305554185EB5108B4BC5041C3F5281CC5055541295C8F52B5BC50411F85EB21C7055541F6285CCFB1BC50417B14AEF7CD05554166666606B3BC50417B14AE07D4055541EC51B85EB1BC50411F85EB51D805554166666686B1BC5041000000D0DC055541EC51B82EB6BC50419A9999E9E1055541EC51B84EBABC5041AE47E1FAE4055541EC51B8AEBFBC50410AD7A3E0EE0555413D0AD783CBBC5041F6285CBFFC05554152B81E65D0BC5041B81E85AB05065541A4703D9AD1BC504114AE476105065541AE47E19AE1BC50413333330323065541295C8F22E3BC504152B81E45230655415C8FC2C5EDBC5041F6285CEF19065541B81E85DBEDBC5041CDCCCC6C18065541295C8F72E7BC5041EC51B8DE100655418FC2F5D8E0BC5041D7A3705D09065541B81E858BDCBC5041E17A14FE030655410AD7A3E0D9BC50417B14AE97FF055541F6285C3FD5BC5041713D0AA7F605554133333343D2BC50417B14AE77EF0555419A9999C9D0BC5041CDCCCC4CEA055541666666B6CFBC5041CDCCCC4CE2055541A4703D7ACDBC5041CDCCCC6CDB05554133333333CDBC5041CDCCCCECD2055541BF1F0859CDBC5041285CF2E2D20555410AF3BF3ACDBC50414D1508C2D20555411ADD64C8C9BC50411B8F27EFCC055541DAA35CDBBFBC50419025DABEBC0555416FC0BFD0BFBC5041446763BDBC055541F12982E7BFBC50412BAA59B1BC05554133333313BBBC504152B81EB5B705554166666656B3BC5041A4703DBAB0055541AE47E14AAEBC5041333333E3A70555410C5728D7ABBC5041C64B5823990555411F85EBD1ABBC50413D0AD703990555413D0AD743ABBC5041A4703D9A96055541000000F0ABBC5041713D0A27870555411F85EBE1ABBC5041EC51B86E82055541CDCCCC0CAABC5041CDCCCC0C7C055541F6285C2FA2BC5041AE47E19A75055541666666569CBC5041C3F528FC75055541295C8F329BBC5041C3F5280C76055541B81E855B9BBC50417B14AE377B0555411F85EBC198BC504114AE47D17C0555419A99998994BC5041295C8F327D055541713D0A9796BC50410AD7A3C07F055541E17A14BE97BC5041000000E0830555415C8FC22597BC50410AD7A3E085055541295C8F5295BC5041295C8F5287055541AE47E1AA94BC5041A4703D6A8A055541E17A148E93BC504152B81E158E055541F6285C4F94BC5041B81E857B910555411F85EBB194BC5041AE47E19A980555410AD7A35096BC50415C8FC2359C0555417B14AE079ABC50411F85EBD1A70555418FC2F5C89BBC5041AE47E11AAB055541FD5A0D3C9CBC5041D58D1EF8AB05554148E17A449CBC504185EB5108AC055541AE47E13A9FBC5041C3F528DCB205554148E17A44A1BC5041D7A3700DB505554133333333A5BC50411F85EB81C2055541C3F5288CA7BC5041A4703D2AC70555411F85EBB1ADBC5041EC51B84EC50555419A9999C9B1BC5041666666F6C30555419A5372CCB1BC5041D7E0DAF7C3055541
+</a>
+
+<b>
+01060000000100000001030000000100000032000000D460BD709CBC504189E02C3FAC055541F20AE2C39CBC5041326951DAAC05554136202339A1BC50415311DD2BB5055541918FC678A2BC50417A6CEE5FB7055541918FC678A2BC50416BC71E9BB70555417EAB3D98A2BC5041C315E603BA0555418CBC8DC2A3BC504184020160BE055541B93933A4A5BC5041BA6E9D47C305554194C16EEDA6BC5041192452EFC50555415A97CDFBA6BC5041360BD50BC6055541683B4805A7BC50410A16B0EFC5055541384FD9A8A7BC5041AA3DD236C7055541A50905D5AABC5041D65EAB54C60555419C62DD99B1BC50414DD9C830C405554185EB5108B4BC5041C3F5281CC50555417A9A5B7BC6BC504155AD021FC00555411FF25A37C5BC5041908950C4BD0555410CB197EDBFBC50412A1AAD84BC0555419BD37FE1BDBC50419B470423BA055541D4A761CEB7BC5041F4759C96B3055541265F5EACB2BC5041D80140F9AF05554119A37F65B0BC504170C996FDAD055541E352539EADBC504136E1E455A70555414427226AAABC504136FDD8A9990555417F0CE607A5BC504178F9D0519F055541928325A99CBC50413A47B630AA0555412A4B7CAD9ABC5041CF522EEEA5055541B53CA68099BC5041B204442FA20555413E9BAE8298BC504157B7157A9E0555416885BC2598BC5041C471A2B69C055541F0F410FF97BC504196D8CEFA9B0555415CF6631897BC50419D4435CE840555412F3D121397BC5041056E5655840555410C7A27C496BC50416EF267C484055541B58462FD94BC504188D34DFF87055541CDB8619494BC5041108A54748B055541CE2C7A7894BC5041658BA5DA8B055541C86DCB3093BC504179419AB9900555411B980FFA93BC504163BC79159605554127118A9894BC5041DAA915BC9705554156C492F794BC5041583282B9980555417503162195BC50410E0F0F24990555413BDFCF3B96BC5041C81634D59B055541F536E77E96BC5041057DEEA59C055541624708E596BC504117B0AAE39D0555415571DBB397BC50415A73F4C0A005554155B8B3DA97BC5041649D9D56A10555413FCC124399BC5041A9BA8841A6055541C7E0CFFB99BC5041E33BDC62A8055541D460BD709CBC504189E02C3FAC055541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>125010 - 354589
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000440000009A5372CCB1BC5041D7E0DAF7C305554185EB5108B4BC5041C3F5281CC5055541295C8F52B5BC50411F85EB21C7055541F6285CCFB1BC50417B14AEF7CD05554166666606B3BC50417B14AE07D4055541EC51B85EB1BC50411F85EB51D805554166666686B1BC5041000000D0DC055541EC51B82EB6BC50419A9999E9E1055541EC51B84EBABC5041AE47E1FAE4055541EC51B8AEBFBC50410AD7A3E0EE0555413D0AD783CBBC5041F6285CBFFC05554152B81E65D0BC5041B81E85AB05065541A4703D9AD1BC504114AE476105065541AE47E19AE1BC50413333330323065541295C8F22E3BC504152B81E45230655415C8FC2C5EDBC5041F6285CEF19065541B81E85DBEDBC5041CDCCCC6C18065541295C8F72E7BC5041EC51B8DE100655418FC2F5D8E0BC5041D7A3705D09065541B81E858BDCBC5041E17A14FE030655410AD7A3E0D9BC50417B14AE97FF055541F6285C3FD5BC5041713D0AA7F605554133333343D2BC50417B14AE77EF0555419A9999C9D0BC5041CDCCCC4CEA055541666666B6CFBC5041CDCCCC4CE2055541A4703D7ACDBC5041CDCCCC6CDB05554133333333CDBC5041CDCCCCECD2055541BF1F0859CDBC5041285CF2E2D20555410AF3BF3ACDBC50414D1508C2D20555411ADD64C8C9BC50411B8F27EFCC055541DAA35CDBBFBC50419025DABEBC0555416FC0BFD0BFBC5041446763BDBC055541F12982E7BFBC50412BAA59B1BC05554133333313BBBC504152B81EB5B705554166666656B3BC5041A4703DBAB0055541AE47E14AAEBC5041333333E3A70555410C5728D7ABBC5041C64B5823990555411F85EBD1ABBC50413D0AD703990555413D0AD743ABBC5041A4703D9A96055541000000F0ABBC5041713D0A27870555411F85EBE1ABBC5041EC51B86E82055541CDCCCC0CAABC5041CDCCCC0C7C055541F6285C2FA2BC5041AE47E19A75055541666666569CBC5041C3F528FC75055541295C8F329BBC5041C3F5280C76055541B81E855B9BBC50417B14AE377B0555411F85EBC198BC504114AE47D17C0555419A99998994BC5041295C8F327D055541713D0A9796BC50410AD7A3C07F055541E17A14BE97BC5041000000E0830555415C8FC22597BC50410AD7A3E085055541295C8F5295BC5041295C8F5287055541AE47E1AA94BC5041A4703D6A8A055541E17A148E93BC504152B81E158E055541F6285C4F94BC5041B81E857B910555411F85EBB194BC5041AE47E19A980555410AD7A35096BC50415C8FC2359C0555417B14AE079ABC50411F85EBD1A70555418FC2F5C89BBC5041AE47E11AAB055541FD5A0D3C9CBC5041D58D1EF8AB05554148E17A449CBC504185EB5108AC055541AE47E13A9FBC5041C3F528DCB205554148E17A44A1BC5041D7A3700DB505554133333333A5BC50411F85EB81C2055541C3F5288CA7BC5041A4703D2AC70555411F85EBB1ADBC5041EC51B84EC50555419A9999C9B1BC5041666666F6C30555419A5372CCB1BC5041D7E0DAF7C3055541
+</a>
+
+<b>
+01060000000100000001030000000100000032000000D460BD709CBC504189E02C3FAC055541F20AE2C39CBC5041326951DAAC05554136202339A1BC50415311DD2BB5055541918FC678A2BC50417A6CEE5FB7055541918FC678A2BC50416BC71E9BB70555417EAB3D98A2BC5041C315E603BA0555418CBC8DC2A3BC504184020160BE055541B93933A4A5BC5041BA6E9D47C305554194C16EEDA6BC5041192452EFC50555415A97CDFBA6BC5041360BD50BC6055541683B4805A7BC50410A16B0EFC5055541384FD9A8A7BC5041AA3DD236C7055541A50905D5AABC5041D65EAB54C60555419C62DD99B1BC50414DD9C830C405554185EB5108B4BC5041C3F5281CC50555417A9A5B7BC6BC504155AD021FC00555411FF25A37C5BC5041908950C4BD0555410CB197EDBFBC50412A1AAD84BC0555419BD37FE1BDBC50419B470423BA055541D4A761CEB7BC5041F4759C96B3055541265F5EACB2BC5041D80140F9AF05554119A37F65B0BC504170C996FDAD055541E352539EADBC504136E1E455A70555414427226AAABC504136FDD8A9990555417F0CE607A5BC504178F9D0519F055541928325A99CBC50413A47B630AA0555412A4B7CAD9ABC5041CF522EEEA5055541B53CA68099BC5041B204442FA20555413E9BAE8298BC504157B7157A9E0555416885BC2598BC5041C471A2B69C055541F0F410FF97BC504196D8CEFA9B0555415CF6631897BC50419D4435CE840555412F3D121397BC5041056E5655840555410C7A27C496BC50416EF267C484055541B58462FD94BC504188D34DFF87055541CDB8619494BC5041108A54748B055541CE2C7A7894BC5041658BA5DA8B055541C86DCB3093BC504179419AB9900555411B980FFA93BC504163BC79159605554127118A9894BC5041DAA915BC9705554156C492F794BC5041583282B9980555417503162195BC50410E0F0F24990555413BDFCF3B96BC5041C81634D59B055541F536E77E96BC5041057DEEA59C055541624708E596BC504117B0AAE39D0555415571DBB397BC50415A73F4C0A005554155B8B3DA97BC5041649D9D56A10555413FCC124399BC5041A9BA8841A6055541C7E0CFFB99BC5041E33BDC62A8055541D460BD709CBC504189E02C3FAC055541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>628819 - 628857
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000A70000008379EDE435095141A6ED2FCCF50555418017B6093609514147B98C6CF5055541B101980D3609514138D9DB45F5055541AFA7C21536095141C5F8BB0EF5055541EECC3C143609514122383CEEF40555412EA4E21B36095141547271CFF4055541ABF31726360951415B2DDCB2F4055541C9374A293609514147D77F8FF40555413802D8793609514181239E08F2055541E887CC9D360951413544DD42F10555412314349A36095141871BAF92F0055541D2B86A8F36095141883AF163F0055541835DA18436095141ECC1E2F0EF055541BEE9088136095141EF1EA964EF055541C0E90881360951411B3975C6EE0555419B89C90636095141AB37F928ED055541D63473D4350951414B6A9483EC055541004F3F36350951411479779DEB055541DD6A080134095141793EEDCCEA05554152CD1FA73209514196A44DFEE90555418FC2F50832095141B81E858BE90555417B14AE672F095141F6285C5FF4055541EC51B87E2E0951418FC2F5E8F9055541AE47E1DA2D09514152B81EF5FE055541D7A370BD2D095141CDCCCCCC00065541862A2CDB2D095141A89D7EA90406554143830CFD2C09514162A351720A0655410137340F27095141D75C4C4D0A06554185EB5178200951415C8FC2050B065541EC51B8BE20095141713D0AC70C065541295C8F0221095141C3F528EC0F06554114AE47F120095141295C8F821306554114AE479120095141C3F528DC1A065541FFECC2EF1C095141460DABEE1A06554132FF9DEC1B09514188B4CACC1B06554106E588581B095141B4CEDF601C065541C53D697A1A09514181BC04641D065541D700E19B160951414ED7EE79220655417B14AE57150951413D0AD7232606554114AE470115095141F6285C1F290655419CD5A782140951417906C9272E06554185EB51F816095141333333B32E065541C8ADCF0E1A0951419E2FAC432F0655413C48F48F1C095141EC9EA3922F065541511EEF6D1F09514118AA68FB2F065541DDF3341F23095141ADFCB02F30065541E8D266B926095141A1B7DD6C3006554179F22155280951418CE56B8130065541407B3F2029095141F6BA7FAE300655417D7A2CC12A095141F006070B3106554183DAB3052C095141B4DD0C53310655411ACE61022E0951414ECBEE8031065541CCA40B0A2E0951414A85BD56310655411FC887782E0951416BDA71F62E065541BC75AC6F2E095141594797AF2E0655414ED45A712E095141F00F81A52E065541092411762E095141BE205E972E065541A6FA617F2E095141A05012742E065541AA11F59B2E095141A9D774FE2D06554160342FBD2E0951419C6507752D065541513418122F09514174FF67102C0655411D6507222F0951418540BA652B0655412D8A85322F0951413E4511B52A0655417A78A9672F095141814214BD29065541A06F3B822F0951414C8984E82806554129B9A8A52F09514118D0F41328065541C395F00F30095141E7E741CC26065541EBD4E91330095141BF181EAF26065541EA8C822A3009514177D36809260655414D67C543300951413F9A385D25065541A2CDA9A930095141FB00BE70230655412F6797ED300951415234F5A42206554193CD92FE300951411ACE3E95210655415D9A89203109514148CE83962006554188CD7B5331095141AD01D2751F0655411532345831095141094B2D3D1F0655414D9A7275310951415A6840DE1D0655413E9A5BCA31095141A468B3351C0655412F9A441F32095141D068F8361B065541F6663B41320951415CCF38491A0655418846494D3209514164AF4BB219065541B280A04F320951415BF9FC9419065541D877326A32095141629BB6AE180655419D1CE97B32095141DD22261818065541C3137B9632095141F557BA781706554188B831A832095141D23105EB160655414C5DE8B932095141115E2B661606554173547AD4320951418CE59ACF15065541139218E332095141A1E0137815065541D8660DEB32095141D769963E15065541FB9DE7F7320951416D90C2CE14065541DE89330D33095141E2E0927914065541E739302433095141C120A01D14065541498C0B2D330951413CA80F87130655413428545933095141B72F7FF0120655413428545933095141A59CA4A912065541342854593309514196C4A47F120655413428545933095141F65BA56B120655415B1FE67333095141AD3E5EC3110655415B1FE673330951412D08C7C0110655415B1FE67333095141D706CD6A110655419033ED6133095141C19DB321110655419033ED61330951419B6AC1EE100655418F8DB46133095141DC559AE310065541493FBE6033095141AA11E8D71006554160343051330951416A63033E0F06554156D7ED5333095141F8F2FD130F0655416034305133095141E8C3C7F20E065541A0C79F5433095141572DA9540E0655411116EA0F330951416740D0EA0D065541FA7FD673330951418CFC885E0D065541FA7FD67333095141D2AFC42A0D0655416245D57933095141FBB0D9CE0C065541B2E9F97E330951416E3896530C06554194CB7C963309514165CC960F0C065541C0B140AD33095141B8BF6DEB0B0655412DDE15BC33095141194FDED30B06554127A3F45933095141B7D77B9A0B065541A60919C6330951417F8F6E800B065541D3A5C2C23309514141A90E5F0B06554100426CBF33095141D62605410B065541786D6FC933095141C03B92E30A065541D2A5C2C233095141825532C20A065541C87604C93309514175305CBC0A065541C4C4AEDE33095141FC80107E0A06554105B504E7330951411DF78B3F0A0655413BFDF6ED330951417C9C05E809065541659D85F33309514171334AC5090655418595B0F733095141F0D0EE71090655418595B0F7330951415ADF233D0906554108CDC3FA330951410B6CE9F808065541D186441E34095141FEDC63D20706554129090E2434095141CD39957B070655413300B62D340951419D9F7CD906065541DA0DA12F340951414F5EE29906065541828BD72934095141284270540606554129090E24340951413C13B2E005065541828BD72934095141A966BD7205065541F88E50283409514199968DFA0406554115685723340951415B8209CF04065541CDEEC12234095141249DEDC9040655410337B4293409514123DC95A8040655418EBFC33B340951410D0A1F63040655419967273D34095141B708AA3604065541EEA7444834095141176F7B0004065541EEA744483409514186D8D5E703065541EEA7444834095141618585C703065541EEA7444834095141EACA8D75030655417209494F34095141F6A737AD020655415633A86034095141F706E89B010655411D009F8234095141F9D33A6A00065541866422A034095141DE6460A7FF055541B1998CC6340951412BD49616FF055541AB998CC634095141D16D9B05FF055541674254CA340951412522B5F2FE05554139337A0A350951410C6EF7B1FD05554173666C3D3509514177A173E7FB055541ECC1823635095141AD8F699BFB0555410F00712C35095141313BA62CFB0555415A7F8F3F3509514130B2C60AFB0555419A6FE54735095141EF7E699EFA055541C9371670350951410D96A73AF9055541054BA9A735095141284EFAD6F7055541802107C035095141DBDBC188F60555417406A0CE350951412C999322F60555415B8C14D535095141DAEF63F5F50555418379EDE435095141A6ED2FCCF5055541
+</a>
+
+<b>
+01060000000100000001030000000200000098000000EC51B82E47095141295C8F6217065541D7A3709D4C09514114AE47410F065541D7A3701D51095141A4703D0A0A0655411F85EBF154095141AE47E11A060655418FC2F57854095141713D0A570106554185EB519854095141E17A140E0006554152B81EE5540951413D0AD7D3FE0555419A9999795509514148E17A34FD0555417B14AE0756095141333333B3FB0555419A9999B95609514152B81E55FA0555411F85EB71570951418FC2F508F9055541EC51B85E580951419A999999F7055541F6285C6F59095141F6285C5FF6055541CDCCCC5C5A095141E17A147EF50555410AD7A3C05B095141F6285C4FF405554185EB51185D095141295C8F62F30555417B14AEC75E09514100000040F2055541EC51B86E45095141E17A142EE8055541D7A3707D42095141D7A370ADEF05554174F3513F360951411D6696DEF3055541793F17293609514185B6B391F4055541ABF31726360951415B2DDCB2F40555418C8E57223609514180485DBDF40555414E1AA8153609514117336F0FF5055541B101980D3609514138D9DB45F50555418017B6093609514147B98C6CF50555418479EDE435095141A1ED2FCCF50555417406A0CE350951412C999322F6055541A8A436BC35095141D0B713BDF6055541054BA9A735095141284EFAD6F7055541880EB570350951417B04AF36F9055541A209676D35095141B8586A52F9055541ECC1823635095141AD8F699BFB05554173666C3D3509514177A173E7FB05554139337A0A350951410C6EF7B1FD055541674254CA340951412522B5F2FE055541AD998CC6340951414FABDF0AFF055541B1998CC6340951412BD49616FF05554153BD15C23409514169526A27FF055541A4AECE62340951413DB18D8801065541EEA744483409514186D8D5E703065541EEA7444834095141176F7B00040655419967273D34095141B708AA36040655418EBFC33B340951410D0A1F63040655410337B4293409514123DC95A804065541F29BC128340951410F5E22AD0406554115685723340951415C8209CF04065541F88E50283409514199968DFA04065541828BD72934095141A966BD720506554129090E24340951413C13B2E005065541828BD729340951412842705406065541DA0DA12F340951414F5EE299060655413300B62D340951419D9F7CD90606554129090E2434095141CD39957B07065541D186441E34095141FEDC63D20706554108CDC3FA330951410B6CE9F8080655418595B0F7330951415ADF233D090655418595B0F733095141F0D0EE7109065541659D85F33309514171334AC5090655413BFDF6ED330951417C9C05E80906554105B504E7330951411DF78B3F0A065541C4C4AEDE33095141FC80107E0A065541F19872D33309514190FE2BAE0A065541DAFDC5D233095141121FFBAE0A065541CD2215C533095141028B47760B065541A60919C6330951417F8F6E800B065541D3A5C2C233095141BD75CEA10B065541D2F661C133095141419623AC0B0655412DDE15BC33095141194FDED30B065541C0B140AD33095141B8BF6DEB0B065541CB6E3A7F33095141BAD2217C0C065541FA7FD67333095141D2AFC42A0D065541FA7FD673330951418CFC885E0D065541C8EEFB6E3309514120A22F750D06554160343051330951416A63033E0F065541493FBE6033095141AA11E8D710065541CD45456933095141E276923F110655415B1FE67333095141D706CD6A110655415B1FE673330951412D08C7C011065541A4B01476330951417DE48FC011065541342854593309514196C4A47F120655413428545933095141A59CA4A9120655413428545933095141B72F7FF012065541E4628F363309514194CEB5661306554191F50F2A330951417AAAC4B913065541E739302433095141C120A01D14065541DE89330D33095141E2E0927914065541284060E432095141DEEAEA7B150655412069BCB332095141AF8E5B9916065541934C16A2320951417591E01B17065541C3137B9632095141F557BA78170655413A8C7391320951412D85E79617065541B12BB27C320951411FCC6530180655418846494D3209514164AF4BB219065541F6663B41320951415CCF38491A0655412F9A441F32095141D068F8361B065541D206A11A32095141E822E3441B0655419B34FB18320951412081FB511B065541AA540ECC31095141CAEAEA3B1C065541FBB396B531095141714DC7A01C0655417C21DB78310951410ECC65D01D0655411DBB7472310951414AD63C141E065541794A376831095141695B28861E065541B591A85C31095141C29BC0191F0655411532345831095141094B2D3D1F06554188CD7B5331095141AD01D2751F065541CEF01F4B3109514178E42FA51F0655419FA6C62A31095141FDF4C15F2006554124E323203109514171AC7E9920065541EF5EE50F31095141F58B531321065541EC5EE50F3109514136FF98432106554110E4D001310951419E65FF8921065541D3D9F9FD3009514138FF98C321065541248591F0300951410B555375220655412F6797ED300951415234F5A422065541D66498DE300951415F3BF2D122065541C8A917AE30095141D843E56D23065541CD7C5D8530095141327CB92224065541D24FA35C300951414C9981F6240655415ABF16493009514188475D5325065541EC3A2B3730095141105641BD25065541EBD4E91330095141BF181EAF26065541C395F00F30095141E7E741CC260655410B6E0C0B30095141B5B756DB2606554198F35CAC2F095141ED1B49FF270655416F0B2EA62F09514191BC041828065541159F84972F095141B7529E7128065541930257822F09514135829B0229065541065A886B2F0951418FBA6FB7290655415181354E2F0951410CEA6C482A065541AFC024342F09514148D1A3CF2A0655411D6507222F0951418540BA652B065541513418122F09514174FF67102C06554160342FBD2E0951419C6507752D065541F37BBBA02E09514163ECB4EA2D065541AA11F59B2E095141A9D774FE2D065541A6FA617F2E095141A05012742E0655412958CC782E0951415D842C8F2E065541092411762E095141BE205E972E0655414ED45A712E095141F00F81A52E065541BC75AC6F2E095141594797AF2E0655411FC887782E0951416BDA71F62E065541CCA40B0A2E0951414A85BD5631065541EE2683FD2D09514172CF70A23106554166666636310951417B14AE4732065541D7A3709D35095141EC51B8BE32065541713D0A4739095141295C8F1233065541EC51B89E3B095141295C8F4233065541666666763D095141EC51B8FE2B06554114AE47814209514133333383230655415C8FC2B54909514185EB510818065541EC51B82E47095141295C8F6217065541040000000AAFAAD33309514198DC52B711065541D7A370FD33095141333333B3110655412CFF9D0F3409514198DC52B7110655410AAFAAD33309514198DC52B711065541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>541002 - 540538
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000180000006666662625655141295C8FA24D4B5441AE47E18A23655141333333934F4B544185EB514822655141333333C3504B5441713D0A27206551415C8FC285524B544185EB51281A6551415C8FC2D5564B54419A9999B91F6551415C8FC2455C4B5441CDCCCC8C166551417B14AE17634B544148E17AF41A655141C3F5282C674B54415C8FC285246551418FC2F518704B5441C3F5281C45655141C3F5283C564B5441AE47E1EA4A6551410AD7A3A0514B5441295C8F3275655141295C8F12304B5441C3F5285C55655141A4703D4A0E4B5441F6285C3F546551419A9999890F4B5441666666C651655141E17A14EE124B5441713D0AD74F6551417B14AE67164B54418FC2F5A84D65514185EB51D81B4B54415C8FC2A54B6551419A999979204B54410AD7A330496551419A999969254B5441A4703D6A44655141A4703D5A2C4B5441666666563D6551418FC2F548344B54410AD7A3902B655141713D0A27464B544148E17AF4276551413D0AD7E3494B54416666662625655141295C8FA24D4B5441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000C3F5281C45655141C3F5283C564B544103AAB4FF35655141FB60783D624B54418A2FD89E2A6551415DFB2A496B4B5441E17A146E58655141666666F68A4B5441656BC5CF6A655141C69136B47B4B544152ADD27C75655141036892DA724B5441666666566F655141666666566C4B54419F19EE4B756551410991C8A9694B54417093C7C5756551416D7BB475694B5441CDCCCC6C7E6551419A9999E9664B5441DF14303F82655141D4C800CD674B544127C3DECE82655141E75A9AF0674B5441E6EC951A84655141CC96E8E5664B5441C2846150846551417524D7B9664B544162499E5A986551418AB7768E554B54418D05A3B7766551414D9E64AF314B54413FC7DD33756551417A736612304B54412CC7BCFE6C655141CEEA0E95364B5441639C1D435E6551415AFB5B46424B5441C3F5281C45655141C3F5283C564B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>100654 - 235141
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000004000000A20000007B14AEE758885041C3F528BC01235441F6285CAF578850413D0AD78300235441B81E85BB56885041333333F3FF225441CDCCCCFC558850411F85EB110023544133333383558850413333339300235441E17A143E55885041AE47E13A012354418FC2F508558850415C8FC24502235441C3F528CC548850418FC2F5480323544148E17A8453885041333333530423544114AE474151885041D7A3706D05235441E17A146E4F885041CDCCCCCC05235441713D0AB74D885041A4703D4A05235441666666364C8850413D0AD7030323544152B81E854A885041A4703DDA012354417B14AEC748885041295C8F02022354411F85EB413F885041295C8FE208235441A4703D1A3E8850419A9999C907235441C3F5283C3E885041C3F5283C0623544114AE47C1458850419A9999B900235441333333D348885041CDCCCC2CFE225441000000604A885041713D0AF7FC225441D7A3700D4B885041F6285CFFFB22544114AE47C14A885041000000E0FA22544185EB51B84A8850415C8FC225FA225441000000904B8850417B14AEB7F922544185EB51684C88504133333313F8225441C3F5288C4C885041F6285C0FF6225441000000504C885041B81E85CBF42254419A9999794B885041666666C6F3225441000000304A8850417B14AE77F222544114AE47F1488850418FC2F548F1225441C3F528CC47885041EC51B81EF0225441F6285C1F468850411F85EB81EF2254410000000044885041E17A142EEF225441A4703D0A42885041F6285CEFEE225441295C8F524088504148E17AE4ED225441A4703DDA3E885041EC51B8FEED225441C3F5286C3D88504185EB5148EE22544148E17AD43C88504185EB5138EF22544185EB51083A8850410AD7A3A0EE225441000000B03A885041B81E859BEB22544185EB51D8398850417B14AE07E922544185EB51F837885041F6285CCFE722544185EB51D8368850417B14AE87E722544148E17A9435885041F6285CCFE72254410AD7A380348850417B14AEA7E8225441C3F5283C33885041F6285C2FE8225441AE47E13A328850411F85EB11E6225441E17A149E31885041D7A370EDE4225441F6285C4F3088504100000060E42254410AD7A3202E8850417B14AEE7E42254417B14AE972B8850418FC2F5B8E52254410AD7A3902A8850413D0AD723E522544185EB51182A885041B81E851BE4225441C3F5283C2A885041B81E85FBE22254410AD7A3D0298850413D0AD7F3E1225441713D0A17298850413D0AD733E1225441C3F528FC278850417B14AE97E0225441000000F02188504114AE4791DD225441713D0A771F88504148E17A24DC22544185EB51481D8850419A999909DB2254418FC2F5981B88504148E17AB4DB225441A4703D1A1B8850417B14AEF7DB2254419A9999891B88504133333333DC225441CDCCCC3C1C885041B81E859BDC225441D7A3709D1C88504148E17A64DD225441000000501C885041C3F5285CDE225441713D0A071A8850418FC2F508E022544114AE478117885041713D0A37E2225441333333D3158850415C8FC2D5E32254413D0AD7C314885041C3F5288CE5225441CDCCCC8C13885041B81E854BE62254415C8FC29512885041B81E85CBE522544185EB5108138850415C8FC255E4225441AE47E1EA1588504185EB5108E1225441EC51B86E1888504100000040DF22544185EB513819885041713D0A77DE225441713D0A27198850418FC2F558DD2254419A9999891888504114AE4761DB2254415C8FC285178850413D0AD763DB225441AE47E13A17885041295C8FA2DC22544114AE47F1138850419A999959DE225441713D0AC711885041B81E851BE02254413D0AD7330F8850419A999999E2225441713D0AC70D88504114AE4731E42254419A9999F90C885041295C8F02E42254410AD7A3500C88504100000070E3225441D7A3701D0C8850419A999959E22254417B14AE970C885041B81E854BE1225441000000F00C885041E17A148EE022544152B81EC50D885041F6285CEFDE2254411F85EBA10F885041F6285CDFDB225441295C8FB20D885041A4703DEADB2254413D0AD7030C885041E17A148EDB225441713D0A370A885041D7A370CDDA22544114AE476101885041A4703D0AE42254415C8FC255008850411F85EB21E52254419A99994901885041C3F528FCE5225441D7A3704D02885041A4703D7AE4225441713D0AC703885041F6285C1FE3225441D7A3709D05885041EC51B8EEE12254417B14AEF706885041D7A3706DE1225441C3F528CC07885041713D0A87E1225441CDCCCC5C088850410AD7A350E22254411F85EB61088850410AD7A300E3225441295C8F42088850415C8FC2B5E322544114AE47C107885041F6285C1FE5225441D7A370ED06885041333333A3E6225441A4703D0A06885041C3F5288CE722544152B81EA50488504100000060E822544148E17AB4038850419A9999D9E8225441713D0A370488504100000080EA2254415C8FC2C50688504148E17A64E82254410AD7A3A008885041D7A370DDE6225441EC51B86E0A885041F6285C0FE5225441D7A3703D0F885041295C8FE2E6225441E17A141E158850411F85EBB1F12254418FC2F5C81F885041295C8F72052354418FC2F518248850413D0AD7930D235441B81E851B258850418FC2F5F80C23544152B81E252A885041333333831823544185EB51482E885041D7A3708D2423544114AE47F1308850416666668625235441AE47E16A3188504185EB51B824235441AE47E11A328850415C8FC21523235441C3F5281C34885041F6285CDF222354415C8FC265358850418FC2F51822235441000000C036885041333333B32123544185EB518838885041713D0A972223544142CC819D3A885041C95EDB792323544185EB51B83B885041F6285C3F23235441B81E859B3D885041B81E855B21235441666666263F885041000000E01F23544185EB51B84088504185EB51B81E2354416666662643885041F6285C9F1D23544185EB517846885041B81E852B1C2354410F2FF29748885041326D4DB91A235441AC9222C74A8850418CE2CA8E1723544134DE0C8D4B885041B140B0E615235441EC51B84E4C885041CDCCCC1C14235441C3F528CC4C885041713D0AC712235441671F88AC4D8850418AA2843E122354410AD7A3404D8850417B14AE5710235441B81E85FB4C885041A4703D1A0F2354415C8FC2D5508850415C8FC2D50E23544148E17A245788504114AE47B10E23544152B81EC5558850417B14AEB712235441EC51B8AE5288504152B81E3516235441D7A3707D56885041666666561B235441CDCCCC7C58885041AE47E16A1A235441EC51B83E5A885041D7A3708D19235441333333C35B885041000000C018235441E17A148E5B88504114AE47C1162354417B14AE275A885041EC51B82E13235441295C8F5259885041713D0A4711235441C3F5288C588850419A9999C90F2354410AD7A33058885041D7A3703D0E235441A4703D2A578850415C8FC2150D235441713D0A6759885041D7A3703D09235441E17A144E5A885041A4703D4A06235441A4703DFA59885041AE47E1BA032354417B14AEE758885041C3F528BC01235441110000009A99997942885041D7A370DD0E235441D7A3703D438850419A99993910235441EC51B8EE42885041B81E854B112354416666663642885041F6285C6F122354415C8FC20541885041295C8FE21223544114AE47513F885041D7A3702D13235441295C8F323E885041AE47E18A12235441D7A3708D3C88504185EB51981023544152B81E853B88504114AE47610F235441D7A370BD3A885041666666B60E23544185EB51583A885041E17A145E0D23544152B81E353B885041666666760C235441B81E859B3D885041C3F5289C0C235441713D0A173F8850411F85EBC10C235441333333F33F885041333333D30D23544114AE47814188504114AE47610E2354419A99997942885041D7A370DD0E23544115000000AE47E10A2A885041295C8FA2F82254415C8FC2052A8850419A9999D9F7225441D7A3702D2A8850413D0AD743F72254417B14AEB72A885041AE47E17AF6225441000000102C885041295C8F02F62254417B14AE572D8850415C8FC235F622544114AE47712E88504185EB5108F62254411F85EBF12F88504148E17A44F52254418FC2F5E8308850419A9999A9F4225441D7A370BD3188504100000070F422544152B81E2532885041B81E850BF52254411F85EB4132885041000000E0F522544148E17AD431885041EC51B8AEF622544148E17AF43088504133333383F722544152B81ED52F88504166666646F8225441CDCCCCCC2E885041D7A370EDF8225441295C8FA22D885041E17A148EF9225441333333832C885041EC51B8DEF92254413D0AD7632B8850419A9999E9F92254419A9999892A8850415C8FC265F9225441AE47E10A2A885041295C8FA2F8225441130000007B14AE4720885041713D0A47F52254410AD7A370238850413D0AD753F3225441CDCCCCCC25885041B81E858BF12254419A9999C92888504185EB51A8EF225441D7A370AD29885041B81E854BEE22544152B81E252B885041E17A143EEE225441333333932B8850411F85EB91EF2254413D0AD7D32A885041D7A3703DF0225441A4703DFA2888504152B81E25F12254416666661627885041666666D6F22254418FC2F52825885041295C8F32F5225441AE47E10A258850413D0AD7E3F62254415C8FC255248850419A9999A9F82254410AD7A3E022885041295C8F82FA22544148E17A94218850418FC2F578FA225441EC51B8DE20885041333333C3F9225441295C8F921F885041AE47E18AF822544114AE47F11E885041EC51B82EF62254417B14AE4720885041713D0A47F5225441
+</a>
+
+<b>
+010600000001000000010300000001000000C30000009F4C3E2A578850413E87C3150D235441713D0A6759885041D7A3703D092354419A9999E95988504149333353072354419A9999E9598850415AC2F5B804235441E45BD2A4598850417C2F582303235441F3E1FE945988504179B3440703235441ED9894525988504173FA543E01235441DB00DC09598850416FCF7691FF225441F6285CAF578850413D0AD783002354410B43809D57885041B6193F7900235441A94BE72551885041F7E733B104235441E7ED3EC950885041CD7BF9EE042354417234896550885041C06DAF2E052354410BB7592F4E88504177F102A0062354418ADF54294F8850415786C1BC052354412B949C1A4F8850412B1B52B905235441777C1CBA4F8850412B2FBE320523544114CC38A74D885041218B800605235441CC1CBB804D885041355EBA0305235441AB3AAF4E4D88504102BF1FFF04235441CB50AB454D88504174BD729704235441B37578424D8850411C8195910423544172A2B6DB4C8850410CC25B5000235441E2B98F724B8850418FAC236C002354412F1307334A88504174BA498E00235441447EE6AD4888504169FE96C501235441FADE15B5478850412F9DB775022354418AA199D94588504138DB52E10323544192743260458850411B30C24304235441311E990D448850416D03174105235441AA4565DC3F8850418630C675082354410D30D6D23D885041EA1A376C06235441EA87F6984488504138AA53AE01235441291927CD45885041459ABCD10023544138AFE72148885041B70EDE34FF225441B3CD4F0E4A8850412DC62EDCFD2254416D24275D4A885041249707A4FD22544172E14E664A885041224F829DFD2254413BC54E354B8850414EE2130AFD2254413C95429B4B88504114CF76C1FC22544156E5B4BE4B8850411FCF37A8FC2254419999B4124C885041A238646CFC2254415C2A7DAF4B885041AFFFF7E3FB2254415FC8B4744B8850413FC8539CFB2254415E260ED94A88504178612BD7FA225441017E9DD24A885041B37244B4FA225441D28280744A8850415399DC32FA225441B9DE97E14B8850411A6EBE1FF6225441C5E7CA754A885041BC3E5010F222544100943B25498850413D75557FF1225441C82E881A4988504164326674F1225441CACC9A5C45885041BD44E9CEEF225441F55E866A3D8850415DD1F995EE22544118132A4C3C885041A8EA6DF5EE2254411D17FCFD3B88504151EDBA10EF2254415C82C1FB3B8850413C703B10EF225441DF04B8BF39885041BD44E9CEEF2254415E821F3E328850417CB8FCC3F52254411F85EB4132885041000000E0F522544148E17AD431885041EC51B8AEF622544148E17AF43088504133333383F722544152B81ED52F88504166666646F8225441CDCCCCCC2E885041D7A370EDF8225441295C8FA22D885041E17A148EF922544130836B602D885041C6F4A3A0F922544188C9E5E92C885041C1B0B4FEF92254412D608FB22C88504176FD6DD1F9225441333333832C885041EC51B8DEF92254413D0AD7632B8850419A9999E9F92254419A9999892A8850415C8FC265F9225441AE47E10A2A885041295C8FA2F82254415C8FC2052A8850419A9999D9F7225441D7A3702D2A8850413D0AD743F72254417B14AEB72A885041AE47E17AF6225441000000102C885041295C8F02F6225441CE449DFF2C885041E9EEFF27F6225441E27B397D36885041B21782F9ED22544109C40AA33388504152A492C0EC225441B47D823F348850410BD58B1AEA2254411F1ED94D3788504124A6DB82EA225441B006018237885041B21782F9ED225441986218EF388850414400AA2DEE225441490A93753A885041F6D4AF83EC2254412782DB783A88504108686E73EC22544187FDEEE23A8850419BCB620CEC22544194DEBF2B3B885041754AF3BCEB225441F853E3B8398850418F12837AE822544160432AE43888504160A12270E8225441E42444DB38885041C5A3116AE8225441B86EE3AE3488504103FED722E8225441C2BF462B34885041C8171F1DE82254413311E099338850414472271AE822544170F895812C885041088B7132EF225441BD8838CD268850410F41574AF42254415D1549942588504101CAD58CF7225441B326A4522488504176552368F8225441546EE64724885041FE96C67EF8225441B77E59C42288504124F8577AF9225441EA95D49522885041A4096B97F92254410B19DB18218850416C6A2C9BFA225441D157520820885041290887A7F82254411E833EDF1F885041246F2D71F8225441A21C2BBC1F88504153C6E91BF82254415632FCA61E8850411A6EBE1FF62254417E9C7E142B885041E48CBAF4EC2254413E835D862D8850411602F3EFEB2254416ACD03DA3288504115645266E722544155C63F5232885041C08AE843E622544186D8613D3188504105714BC0E422544179CE35263188504121F379B5E42254415C34B21831885041CB24EF8CE4225441D5840C003188504174956D6AE42254414AD61F9A3088504121BD9781E4225441AC914796308850411F7EDD7FE42254410F85A6482B8850414BC145D3E5225441DED1371C2B88504197E2F675E5225441B67AB3112B885041AEE84170E52254413309EFFD2A885041FD095E36E5225441736F173F298850417FADFF8BE1225441BD8838CD26885041D5F387EFE0225441B91C6D9D1C885041FC3B5915DE225441CADBC7501C88504135BEA959DE225441000000501C885041C3F5285CDE2254417D9A9E441C885041CE998064DE225441BC5D25BF13885041E6F6DBFCE52254415F92D284138850417F4F6A35E62254411A6271811388504124FEDA33E6225441F152413E13885041F57ABD6FE6225441FAF3B10D13885041B6F26EFEE5225441C7D2ECFD1288504150A827F7E52254415EF02BE9128850417FC8B4B3E52254416C8492E1128850416AEE7A97E522544191DF5105128850411CC38E95E3225441ACB9093219885041515A84EBDD2254412B7A9031198850413A71FFE0DD22544186425477198850411E3FD0B4DD225441047300C01988504185BA707BDD225441713D0A27198850418FC2F558DD225441C8164F2119885041CE11A046DD225441BDEA330014885041F80C1CAFDB225441258D36E2138850414E1F47A6DB225441730A381611885041D24BD681DE22544168176DAB108850411355C5EFDE2254414EEC79A20E8850415C993F0BE1225441910AF3570E885041C45B645AE122544111674EBD0C8850418A24790EE32254417DB0AECB0C885041F11A2C24E322544184001BBF0E885041AEFB99B2E6225441D7A3703D0F885041295C8FE2E6225441E17A141E158850411F85EBB1F12254418FC2F5C81F885041295C8F72052354416EA3C1FB23885041F0ECC85C0D2354411C9A3D46248850417069B7780D235441B81E851B258850418FC2F5F80C23544139BBF38725885041DAB55BF10D2354415D15499425885041A7B7FBF50D2354414E323E0526885041018060100F23544152B81E252A885041333333831823544127AFDD3F2C8850411338EFA21E2354410C0E258B2E8850414CA5215F2423544157160E6D2F8850412800BDF5242354419A8CD3ED308850410FFED37E2523544185C18EE8308850414772BDF225235441D4D316F4308850417C7E6DFA25235441ECD88CBE31885041E82C54002523544165EEF9F931885041887904B9242354414666AA733488504173EDF28421235441DB0B01FC35885041CFA0CDEC21235441000000C036885041333333B32123544185EB518838885041713D0A9722235441934779973888504170837C9D222354419BA60A4E3B8850412EB3575523235441111BDD713B8850410FE3EE4D23235441F97D39C842885041747873E91D2354416666662643885041F6285C9F1D235441009DCC364388504112712F981D2354418961911D4A8850410881B7851823544198DAD62D4A8850414E2C2E6E18235441B237DA494C885041C8E974EC16235441B9C111344C885041FADDB64C162354411B14EC1F4C8850419CDF11D61523544183C0CA004C8850413D0AD7D714235441A5DA1D014C885041D3940FD71423544127F66FAD4B885041F9B36971122354411952871A4D8850413529A26C11235441F68037B24C885041D82C34F10C235441A00D48794B885041FCFD83590D23544134AB3D754B885041934DB4080D2354417B14AE574C885041FD09D7F30C235441C45BE0FA4C88504169CD1EE50C235441E6D783FB4C885041FE8F3C1A0F23544107EBC1D550885041E863C2D50E235441FAFF0983568850416A63EDB40E23544148E17A245788504114AE47B10E2354419F4C3E2A578850413E87C3150D235441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>100654 - 353898
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000004000000A20000007B14AEE758885041C3F528BC01235441F6285CAF578850413D0AD78300235441B81E85BB56885041333333F3FF225441CDCCCCFC558850411F85EB110023544133333383558850413333339300235441E17A143E55885041AE47E13A012354418FC2F508558850415C8FC24502235441C3F528CC548850418FC2F5480323544148E17A8453885041333333530423544114AE474151885041D7A3706D05235441E17A146E4F885041CDCCCCCC05235441713D0AB74D885041A4703D4A05235441666666364C8850413D0AD7030323544152B81E854A885041A4703DDA012354417B14AEC748885041295C8F02022354411F85EB413F885041295C8FE208235441A4703D1A3E8850419A9999C907235441C3F5283C3E885041C3F5283C0623544114AE47C1458850419A9999B900235441333333D348885041CDCCCC2CFE225441000000604A885041713D0AF7FC225441D7A3700D4B885041F6285CFFFB22544114AE47C14A885041000000E0FA22544185EB51B84A8850415C8FC225FA225441000000904B8850417B14AEB7F922544185EB51684C88504133333313F8225441C3F5288C4C885041F6285C0FF6225441000000504C885041B81E85CBF42254419A9999794B885041666666C6F3225441000000304A8850417B14AE77F222544114AE47F1488850418FC2F548F1225441C3F528CC47885041EC51B81EF0225441F6285C1F468850411F85EB81EF2254410000000044885041E17A142EEF225441A4703D0A42885041F6285CEFEE225441295C8F524088504148E17AE4ED225441A4703DDA3E885041EC51B8FEED225441C3F5286C3D88504185EB5148EE22544148E17AD43C88504185EB5138EF22544185EB51083A8850410AD7A3A0EE225441000000B03A885041B81E859BEB22544185EB51D8398850417B14AE07E922544185EB51F837885041F6285CCFE722544185EB51D8368850417B14AE87E722544148E17A9435885041F6285CCFE72254410AD7A380348850417B14AEA7E8225441C3F5283C33885041F6285C2FE8225441AE47E13A328850411F85EB11E6225441E17A149E31885041D7A370EDE4225441F6285C4F3088504100000060E42254410AD7A3202E8850417B14AEE7E42254417B14AE972B8850418FC2F5B8E52254410AD7A3902A8850413D0AD723E522544185EB51182A885041B81E851BE4225441C3F5283C2A885041B81E85FBE22254410AD7A3D0298850413D0AD7F3E1225441713D0A17298850413D0AD733E1225441C3F528FC278850417B14AE97E0225441000000F02188504114AE4791DD225441713D0A771F88504148E17A24DC22544185EB51481D8850419A999909DB2254418FC2F5981B88504148E17AB4DB225441A4703D1A1B8850417B14AEF7DB2254419A9999891B88504133333333DC225441CDCCCC3C1C885041B81E859BDC225441D7A3709D1C88504148E17A64DD225441000000501C885041C3F5285CDE225441713D0A071A8850418FC2F508E022544114AE478117885041713D0A37E2225441333333D3158850415C8FC2D5E32254413D0AD7C314885041C3F5288CE5225441CDCCCC8C13885041B81E854BE62254415C8FC29512885041B81E85CBE522544185EB5108138850415C8FC255E4225441AE47E1EA1588504185EB5108E1225441EC51B86E1888504100000040DF22544185EB513819885041713D0A77DE225441713D0A27198850418FC2F558DD2254419A9999891888504114AE4761DB2254415C8FC285178850413D0AD763DB225441AE47E13A17885041295C8FA2DC22544114AE47F1138850419A999959DE225441713D0AC711885041B81E851BE02254413D0AD7330F8850419A999999E2225441713D0AC70D88504114AE4731E42254419A9999F90C885041295C8F02E42254410AD7A3500C88504100000070E3225441D7A3701D0C8850419A999959E22254417B14AE970C885041B81E854BE1225441000000F00C885041E17A148EE022544152B81EC50D885041F6285CEFDE2254411F85EBA10F885041F6285CDFDB225441295C8FB20D885041A4703DEADB2254413D0AD7030C885041E17A148EDB225441713D0A370A885041D7A370CDDA22544114AE476101885041A4703D0AE42254415C8FC255008850411F85EB21E52254419A99994901885041C3F528FCE5225441D7A3704D02885041A4703D7AE4225441713D0AC703885041F6285C1FE3225441D7A3709D05885041EC51B8EEE12254417B14AEF706885041D7A3706DE1225441C3F528CC07885041713D0A87E1225441CDCCCC5C088850410AD7A350E22254411F85EB61088850410AD7A300E3225441295C8F42088850415C8FC2B5E322544114AE47C107885041F6285C1FE5225441D7A370ED06885041333333A3E6225441A4703D0A06885041C3F5288CE722544152B81EA50488504100000060E822544148E17AB4038850419A9999D9E8225441713D0A370488504100000080EA2254415C8FC2C50688504148E17A64E82254410AD7A3A008885041D7A370DDE6225441EC51B86E0A885041F6285C0FE5225441D7A3703D0F885041295C8FE2E6225441E17A141E158850411F85EBB1F12254418FC2F5C81F885041295C8F72052354418FC2F518248850413D0AD7930D235441B81E851B258850418FC2F5F80C23544152B81E252A885041333333831823544185EB51482E885041D7A3708D2423544114AE47F1308850416666668625235441AE47E16A3188504185EB51B824235441AE47E11A328850415C8FC21523235441C3F5281C34885041F6285CDF222354415C8FC265358850418FC2F51822235441000000C036885041333333B32123544185EB518838885041713D0A972223544142CC819D3A885041C95EDB792323544185EB51B83B885041F6285C3F23235441B81E859B3D885041B81E855B21235441666666263F885041000000E01F23544185EB51B84088504185EB51B81E2354416666662643885041F6285C9F1D23544185EB517846885041B81E852B1C2354410F2FF29748885041326D4DB91A235441AC9222C74A8850418CE2CA8E1723544134DE0C8D4B885041B140B0E615235441EC51B84E4C885041CDCCCC1C14235441C3F528CC4C885041713D0AC712235441671F88AC4D8850418AA2843E122354410AD7A3404D8850417B14AE5710235441B81E85FB4C885041A4703D1A0F2354415C8FC2D5508850415C8FC2D50E23544148E17A245788504114AE47B10E23544152B81EC5558850417B14AEB712235441EC51B8AE5288504152B81E3516235441D7A3707D56885041666666561B235441CDCCCC7C58885041AE47E16A1A235441EC51B83E5A885041D7A3708D19235441333333C35B885041000000C018235441E17A148E5B88504114AE47C1162354417B14AE275A885041EC51B82E13235441295C8F5259885041713D0A4711235441C3F5288C588850419A9999C90F2354410AD7A33058885041D7A3703D0E235441A4703D2A578850415C8FC2150D235441713D0A6759885041D7A3703D09235441E17A144E5A885041A4703D4A06235441A4703DFA59885041AE47E1BA032354417B14AEE758885041C3F528BC01235441110000009A99997942885041D7A370DD0E235441D7A3703D438850419A99993910235441EC51B8EE42885041B81E854B112354416666663642885041F6285C6F122354415C8FC20541885041295C8FE21223544114AE47513F885041D7A3702D13235441295C8F323E885041AE47E18A12235441D7A3708D3C88504185EB51981023544152B81E853B88504114AE47610F235441D7A370BD3A885041666666B60E23544185EB51583A885041E17A145E0D23544152B81E353B885041666666760C235441B81E859B3D885041C3F5289C0C235441713D0A173F8850411F85EBC10C235441333333F33F885041333333D30D23544114AE47814188504114AE47610E2354419A99997942885041D7A370DD0E23544115000000AE47E10A2A885041295C8FA2F82254415C8FC2052A8850419A9999D9F7225441D7A3702D2A8850413D0AD743F72254417B14AEB72A885041AE47E17AF6225441000000102C885041295C8F02F62254417B14AE572D8850415C8FC235F622544114AE47712E88504185EB5108F62254411F85EBF12F88504148E17A44F52254418FC2F5E8308850419A9999A9F4225441D7A370BD3188504100000070F422544152B81E2532885041B81E850BF52254411F85EB4132885041000000E0F522544148E17AD431885041EC51B8AEF622544148E17AF43088504133333383F722544152B81ED52F88504166666646F8225441CDCCCCCC2E885041D7A370EDF8225441295C8FA22D885041E17A148EF9225441333333832C885041EC51B8DEF92254413D0AD7632B8850419A9999E9F92254419A9999892A8850415C8FC265F9225441AE47E10A2A885041295C8FA2F8225441130000007B14AE4720885041713D0A47F52254410AD7A370238850413D0AD753F3225441CDCCCCCC25885041B81E858BF12254419A9999C92888504185EB51A8EF225441D7A370AD29885041B81E854BEE22544152B81E252B885041E17A143EEE225441333333932B8850411F85EB91EF2254413D0AD7D32A885041D7A3703DF0225441A4703DFA2888504152B81E25F12254416666661627885041666666D6F22254418FC2F52825885041295C8F32F5225441AE47E10A258850413D0AD7E3F62254415C8FC255248850419A9999A9F82254410AD7A3E022885041295C8F82FA22544148E17A94218850418FC2F578FA225441EC51B8DE20885041333333C3F9225441295C8F921F885041AE47E18AF822544114AE47F11E885041EC51B82EF62254417B14AE4720885041713D0A47F5225441
+</a>
+
+<b>
+010600000001000000010300000001000000C30000009F4C3E2A578850413E87C3150D235441713D0A6759885041D7A3703D092354419A9999E95988504149333353072354419A9999E9598850415AC2F5B804235441E45BD2A4598850417C2F582303235441F3E1FE945988504179B3440703235441ED9894525988504173FA543E01235441DB00DC09598850416FCF7691FF225441F6285CAF578850413D0AD783002354410B43809D57885041B6193F7900235441A94BE72551885041F7E733B104235441E7ED3EC950885041CD7BF9EE042354417234896550885041C06DAF2E052354410BB7592F4E88504177F102A0062354418ADF54294F8850415786C1BC052354412B949C1A4F8850412B1B52B905235441777C1CBA4F8850412B2FBE320523544114CC38A74D885041218B800605235441CC1CBB804D885041355EBA0305235441AB3AAF4E4D88504102BF1FFF04235441CB50AB454D88504174BD729704235441B37578424D8850411C8195910423544172A2B6DB4C8850410CC25B5000235441E2B98F724B8850418FAC236C002354412F1307334A88504174BA498E00235441447EE6AD4888504169FE96C501235441FADE15B5478850412F9DB775022354418AA199D94588504138DB52E10323544192743260458850411B30C24304235441311E990D448850416D03174105235441AA4565DC3F8850418630C675082354410D30D6D23D885041EA1A376C06235441EA87F6984488504138AA53AE01235441291927CD45885041459ABCD10023544138AFE72148885041B70EDE34FF225441B3CD4F0E4A8850412DC62EDCFD2254416D24275D4A885041249707A4FD22544172E14E664A885041224F829DFD2254413BC54E354B8850414EE2130AFD2254413C95429B4B88504114CF76C1FC22544156E5B4BE4B8850411FCF37A8FC2254419999B4124C885041A238646CFC2254415C2A7DAF4B885041AFFFF7E3FB2254415FC8B4744B8850413FC8539CFB2254415E260ED94A88504178612BD7FA225441017E9DD24A885041B37244B4FA225441D28280744A8850415399DC32FA225441B9DE97E14B8850411A6EBE1FF6225441C5E7CA754A885041BC3E5010F222544100943B25498850413D75557FF1225441C82E881A4988504164326674F1225441CACC9A5C45885041BD44E9CEEF225441F55E866A3D8850415DD1F995EE22544118132A4C3C885041A8EA6DF5EE2254411D17FCFD3B88504151EDBA10EF2254415C82C1FB3B8850413C703B10EF225441DF04B8BF39885041BD44E9CEEF2254415E821F3E328850417CB8FCC3F52254411F85EB4132885041000000E0F522544148E17AD431885041EC51B8AEF622544148E17AF43088504133333383F722544152B81ED52F88504166666646F8225441CDCCCCCC2E885041D7A370EDF8225441295C8FA22D885041E17A148EF922544130836B602D885041C6F4A3A0F922544188C9E5E92C885041C1B0B4FEF92254412D608FB22C88504176FD6DD1F9225441333333832C885041EC51B8DEF92254413D0AD7632B8850419A9999E9F92254419A9999892A8850415C8FC265F9225441AE47E10A2A885041295C8FA2F82254415C8FC2052A8850419A9999D9F7225441D7A3702D2A8850413D0AD743F72254417B14AEB72A885041AE47E17AF6225441000000102C885041295C8F02F6225441CE449DFF2C885041E9EEFF27F6225441E27B397D36885041B21782F9ED22544109C40AA33388504152A492C0EC225441B47D823F348850410BD58B1AEA2254411F1ED94D3788504124A6DB82EA225441B006018237885041B21782F9ED225441986218EF388850414400AA2DEE225441490A93753A885041F6D4AF83EC2254412782DB783A88504108686E73EC22544187FDEEE23A8850419BCB620CEC22544194DEBF2B3B885041754AF3BCEB225441F853E3B8398850418F12837AE822544160432AE43888504160A12270E8225441E42444DB38885041C5A3116AE8225441B86EE3AE3488504103FED722E8225441C2BF462B34885041C8171F1DE82254413311E099338850414472271AE822544170F895812C885041088B7132EF225441BD8838CD268850410F41574AF42254415D1549942588504101CAD58CF7225441B326A4522488504176552368F8225441546EE64724885041FE96C67EF8225441B77E59C42288504124F8577AF9225441EA95D49522885041A4096B97F92254410B19DB18218850416C6A2C9BFA225441D157520820885041290887A7F82254411E833EDF1F885041246F2D71F8225441A21C2BBC1F88504153C6E91BF82254415632FCA61E8850411A6EBE1FF62254417E9C7E142B885041E48CBAF4EC2254413E835D862D8850411602F3EFEB2254416ACD03DA3288504115645266E722544155C63F5232885041C08AE843E622544186D8613D3188504105714BC0E422544179CE35263188504121F379B5E42254415C34B21831885041CB24EF8CE4225441D5840C003188504174956D6AE42254414AD61F9A3088504121BD9781E4225441AC914796308850411F7EDD7FE42254410F85A6482B8850414BC145D3E5225441DED1371C2B88504197E2F675E5225441B67AB3112B885041AEE84170E52254413309EFFD2A885041FD095E36E5225441736F173F298850417FADFF8BE1225441BD8838CD26885041D5F387EFE0225441B91C6D9D1C885041FC3B5915DE225441CADBC7501C88504135BEA959DE225441000000501C885041C3F5285CDE2254417D9A9E441C885041CE998064DE225441BC5D25BF13885041E6F6DBFCE52254415F92D284138850417F4F6A35E62254411A6271811388504124FEDA33E6225441F152413E13885041F57ABD6FE6225441FAF3B10D13885041B6F26EFEE5225441C7D2ECFD1288504150A827F7E52254415EF02BE9128850417FC8B4B3E52254416C8492E1128850416AEE7A97E522544191DF5105128850411CC38E95E3225441ACB9093219885041515A84EBDD2254412B7A9031198850413A71FFE0DD22544186425477198850411E3FD0B4DD225441047300C01988504185BA707BDD225441713D0A27198850418FC2F558DD225441C8164F2119885041CE11A046DD225441BDEA330014885041F80C1CAFDB225441258D36E2138850414E1F47A6DB225441730A381611885041D24BD681DE22544168176DAB108850411355C5EFDE2254414EEC79A20E8850415C993F0BE1225441910AF3570E885041C45B645AE122544111674EBD0C8850418A24790EE32254417DB0AECB0C885041F11A2C24E322544184001BBF0E885041AEFB99B2E6225441D7A3703D0F885041295C8FE2E6225441E17A141E158850411F85EBB1F12254418FC2F5C81F885041295C8F72052354416EA3C1FB23885041F0ECC85C0D2354411C9A3D46248850417069B7780D235441B81E851B258850418FC2F5F80C23544139BBF38725885041DAB55BF10D2354415D15499425885041A7B7FBF50D2354414E323E0526885041018060100F23544152B81E252A885041333333831823544127AFDD3F2C8850411338EFA21E2354410C0E258B2E8850414CA5215F2423544157160E6D2F8850412800BDF5242354419A8CD3ED308850410FFED37E2523544185C18EE8308850414772BDF225235441D4D316F4308850417C7E6DFA25235441ECD88CBE31885041E82C54002523544165EEF9F931885041887904B9242354414666AA733488504173EDF28421235441DB0B01FC35885041CFA0CDEC21235441000000C036885041333333B32123544185EB518838885041713D0A9722235441934779973888504170837C9D222354419BA60A4E3B8850412EB3575523235441111BDD713B8850410FE3EE4D23235441F97D39C842885041747873E91D2354416666662643885041F6285C9F1D235441009DCC364388504112712F981D2354418961911D4A8850410881B7851823544198DAD62D4A8850414E2C2E6E18235441B237DA494C885041C8E974EC16235441B9C111344C885041FADDB64C162354411B14EC1F4C8850419CDF11D61523544183C0CA004C8850413D0AD7D714235441A5DA1D014C885041D3940FD71423544127F66FAD4B885041F9B36971122354411952871A4D8850413529A26C11235441F68037B24C885041D82C34F10C235441A00D48794B885041FCFD83590D23544134AB3D754B885041934DB4080D2354417B14AE574C885041FD09D7F30C235441C45BE0FA4C88504169CD1EE50C235441E6D783FB4C885041FE8F3C1A0F23544107EBC1D550885041E863C2D50E235441FAFF0983568850416A63EDB40E23544148E17A245788504114AE47B10E2354419F4C3E2A578850413E87C3150D235441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>751857 - 2351622
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000030000000103000000010000001B00000099FB701356BC5041FFF11B028E1E5541BF86DDCA56BC5041B56977BA8E1E5541713D0A9757BC50417B14AE878F1E5541F961F5E95ABC50410F2CFB72921E554113D3EBF15DBC5041DE31741C951E5541AE47E10A5FBC504133333313961E5541AF90D28967BC5041EF7568E59C1E5541D121185D69BC50415231F5CC9C1E5541CDCCCC4C6CBC5041C3F5285C911E5541E51D1F8D6DBC5041A29CCCC78D1E5541333333F370BC5041EC51B80E841E554152B81E5574BC50411F85EBA17D1E55418FC2F59871BC50410AD7A3F0771E55415DA4C1576DBC50414C1F1D157C1E5541DB4DE3D96ABC5041357F301E7E1E55417573B70669BC5041ABB4A1587F1E55419D6EE96466BC504109792F54801E5541BD24743365BC504148B63B39801E554172C6FA0A64BC5041EEFC7CA97F1E5541F16F1C8D61BC5041C2548E4F7D1E5541CDCCCC6C5CBC504152B81E15771E55415C8FC2F559BC5041B81E85EB7C1E55410AD7A33057BC504100000020821E554114AE47E14FBC504114AE4711881E5541AFFD828A55BC504195C9D17E8D1E5541C46189F854BC5041C7D6C3E58C1E554199FB701356BC5041FFF11B028E1E554101030000000100000008000000A312CB146DBC5041F2C6DF688F1E5541ABC5F7126DBC5041B3FC466E8F1E55414AE111366EBC504175B1C7988C1E55416146B7136EBC50418C166D768C1E5541416054F06DBC50416FEB0BDF8C1E5541B51EE3D96DBC5041A7E079218D1E5541D9689D446DBC5041D77552DB8E1E5541A312CB146DBC5041F2C6DF688F1E5541010300000001000000060000006B51AF136EBC5041962165768C1E5541EAD834306EBC5041927B31228C1E554176339A436EBC50413A6F82EC8B1E55413258AD426EBC5041F69395EB8B1E5541C2CCDC426EBC5041FAC8BFEA8B1E55416B51AF136EBC5041962165768C1E5541
+</a>
+
+<b>
+01060000000100000001030000000100000018000000BADD85F273BC5041B365B4D47C1E55418FC2F59871BC50410AD7A3F0771E55415C8FC27569BC5041D7A370DD6D1E5541B81E85AB63BC50413D0AD7B3661E55415C8FC2155EBC504114AE47715E1E5541A4703DFA58BC504114AE4751601E554152B81EC554BC504114AE47C1571E5541D7A370AD50BC5041713D0AE74E1E5541B81E857B55BC504114AE4771401E554148E17A445ABC5041E17A14FE311E55418FC2F5C856BC5041A4703DAA261E554152B81E154BBC50410AD7A3A0111E554152B81E4545BC504114AE4731211E5541333333133DBC504148E17AB43C1E5541B81E858B3BBC504152B81E15431E5541333333D339BC5041CDCCCC6C431E5541D7A370DD35BC50417B14AEE7421E55417620C2DE33BC5041029F8F86421E5541998CFB5333BC504106F85ECA431E554128D384BA32BC5041DBA0F748451E5541E7053F113FBC5041BF4CF6FF541E55418D252DEA6CBC504173F71C1A8E1E55412910940A70BC5041186531A8861E5541BADD85F273BC5041B365B4D47C1E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>751857 - 3456708
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000030000000103000000010000001B00000099FB701356BC5041FFF11B028E1E5541BF86DDCA56BC5041B56977BA8E1E5541713D0A9757BC50417B14AE878F1E5541F961F5E95ABC50410F2CFB72921E554113D3EBF15DBC5041DE31741C951E5541AE47E10A5FBC504133333313961E5541AF90D28967BC5041EF7568E59C1E5541D121185D69BC50415231F5CC9C1E5541CDCCCC4C6CBC5041C3F5285C911E5541E51D1F8D6DBC5041A29CCCC78D1E5541333333F370BC5041EC51B80E841E554152B81E5574BC50411F85EBA17D1E55418FC2F59871BC50410AD7A3F0771E55415DA4C1576DBC50414C1F1D157C1E5541DB4DE3D96ABC5041357F301E7E1E55417573B70669BC5041ABB4A1587F1E55419D6EE96466BC504109792F54801E5541BD24743365BC504148B63B39801E554172C6FA0A64BC5041EEFC7CA97F1E5541F16F1C8D61BC5041C2548E4F7D1E5541CDCCCC6C5CBC504152B81E15771E55415C8FC2F559BC5041B81E85EB7C1E55410AD7A33057BC504100000020821E554114AE47E14FBC504114AE4711881E5541AFFD828A55BC504195C9D17E8D1E5541C46189F854BC5041C7D6C3E58C1E554199FB701356BC5041FFF11B028E1E554101030000000100000008000000A312CB146DBC5041F2C6DF688F1E5541ABC5F7126DBC5041B3FC466E8F1E55414AE111366EBC504175B1C7988C1E55416146B7136EBC50418C166D768C1E5541416054F06DBC50416FEB0BDF8C1E5541B51EE3D96DBC5041A7E079218D1E5541D9689D446DBC5041D77552DB8E1E5541A312CB146DBC5041F2C6DF688F1E5541010300000001000000060000006B51AF136EBC5041962165768C1E5541EAD834306EBC5041927B31228C1E554176339A436EBC50413A6F82EC8B1E55413258AD426EBC5041F69395EB8B1E5541C2CCDC426EBC5041FAC8BFEA8B1E55416B51AF136EBC5041962165768C1E5541
+</a>
+
+<b>
+01060000000100000001030000000100000018000000BADD85F273BC5041B365B4D47C1E55418FC2F59871BC50410AD7A3F0771E55415C8FC27569BC5041D7A370DD6D1E5541B81E85AB63BC50413D0AD7B3661E55415C8FC2155EBC504114AE47715E1E5541A4703DFA58BC504114AE4751601E554152B81EC554BC504114AE47C1571E5541D7A370AD50BC5041713D0AE74E1E5541B81E857B55BC504114AE4771401E554148E17A445ABC5041E17A14FE311E55418FC2F5C856BC5041A4703DAA261E554152B81E154BBC50410AD7A3A0111E554152B81E4545BC504114AE4731211E5541333333133DBC504148E17AB43C1E5541B81E858B3BBC504152B81E15431E5541333333D339BC5041CDCCCC6C431E5541D7A370DD35BC50417B14AEE7421E55417620C2DE33BC5041029F8F86421E5541998CFB5333BC504106F85ECA431E554128D384BA32BC5041DBA0F748451E5541E7053F113FBC5041BF4CF6FF541E55418D252DEA6CBC504173F71C1A8E1E55412910940A70BC5041186531A8861E5541BADD85F273BC5041B365B4D47C1E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>987163 - 570783
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000310000001F85EBD1A146514152B81E056599544152B81EE5AA465141C3F5280C6A995441EC51B8CEB44651419A9999896F995441831910B4BC465141A6DD8D3C889954419A568AFCBE465141002D5F618F995441952E2713C1465141EA22DEEB959954413576088EC6465141870E3084959954418F6BCF9BC7465141A82C7F6A959954416780DF31CB465141452DB5EF94995441E5F06F41CE465141CBE2B485949954414B82F8A1CF465141D175F15594995441064733C5CF465141E934A53E94995441D6BDDF6ED24651415503D87B92995441DA439E61D54651413835B8889099544181F81621DD46514192C504698B995441A3E4EBC0E146514177D0215A88995441311B3578E4465141EE19548E86995441D10BFB03E94651416A2D098D8399544148E17A84E24651417B14AEA778995441E6FA256FE046514169FAC0B777995441288BF0F6DD465141CDB3589B769954417E02BBC8D7465141C060DE386A995441AF0630CCDA46514169C97B6D68995441CF905726DE4651410E6B6E6B66995441EA73F49ADC465141D31D590E64995441DA3C1804DB4651418900B59F61995441C785FF3FD9465141DA98D6EB5E995441DDCA13A0D8465141D88EDDF95D995441FD22FCB0D7465141CB71BA905C995441176329EFD6465141D3CBF76B5B9954415B346365D64651417AF1DD9B5A995441F4553B0ED64651410D4578185A99544149D2FF0BD54651414D762D845A9954410A2F7B98D446514119CA0CB45A995441479B241ED4465141C6A8BFE65A99544195B123C5D3465141E0896C2E5B995441A6398930D34651414FBA5EA65B9954417DFCA157D2465141115950555C995441471CC1F4D146514199C83AA75C99544131AC6A94D1465141BC68F41A5D99544159EFD4C5D04651418F201D135E995441225F8A2BD04651415BBB24365F99544175C41E93CF465141634A3F5A60995441C8E3EE85CF465141EF7128916099544152B81E55CE4651416666668665995441295C8F92BD465141F6285C3F5D99544185EB5168BA465141666666965B995441A4703D5AAB465141000000B0539954411F85EBD1A146514152B81E0565995441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000000000C0AA465141A4703D5ABB995441E17A140EAD4651410AD7A310CA995441AE47E1AAAD46514152B81EF5CD995441CDCCCC0CAE465141AE47E14AD09954418FC2F5A8AE465141D7A3708DD299544114AE4741B0465141333333E3D3995441A4703DBAB24651415C8FC225D499544148E17AD4BB465141666666C6D3995441C3F5280CBF465141EC51B8DED3995441AE47E1BAC446514114AE47A1D59954419A999949C546514166666696D099544148E17AD4CC465141C3F5286CD1995441333333F3CD465141CDCCCC7CD1995441295C8FB2CD4651411F85EB11CD995441F6285C1FCE465141D7A370DDC699544114AE4701CF465141E17A143EC09954417B14AE57CF465141AE47E13AB999544148E17A44CF4651415C8FC255B0995441000000F0CE4651419A999939A5995441A4703D7ACF46514185EB51489B99544114AE47A1CF4651416666665694995441CDCCCC4CC746514152B81E759599544133333313C1465141A4703DEA9599544152B81EC5C046514152B81EF5949954418FC2F5889B4651417B14AE6793995441295C8FF29C465141C3F5281C979954410AD7A3E09F465141000000609C9954411F85EBF1A4465141C3F5282CA5995441AE47E1DAA846514185EB5188AC995441E17A14FEA94651413D0AD733B0995441295C8F82AA46514114AE47B1B4995441000000C0AA465141A4703D5ABB995441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>987163 - 1272456
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000310000001F85EBD1A146514152B81E056599544152B81EE5AA465141C3F5280C6A995441EC51B8CEB44651419A9999896F995441831910B4BC465141A6DD8D3C889954419A568AFCBE465141002D5F618F995441952E2713C1465141EA22DEEB959954413576088EC6465141870E3084959954418F6BCF9BC7465141A82C7F6A959954416780DF31CB465141452DB5EF94995441E5F06F41CE465141CBE2B485949954414B82F8A1CF465141D175F15594995441064733C5CF465141E934A53E94995441D6BDDF6ED24651415503D87B92995441DA439E61D54651413835B8889099544181F81621DD46514192C504698B995441A3E4EBC0E146514177D0215A88995441311B3578E4465141EE19548E86995441D10BFB03E94651416A2D098D8399544148E17A84E24651417B14AEA778995441E6FA256FE046514169FAC0B777995441288BF0F6DD465141CDB3589B769954417E02BBC8D7465141C060DE386A995441AF0630CCDA46514169C97B6D68995441CF905726DE4651410E6B6E6B66995441EA73F49ADC465141D31D590E64995441DA3C1804DB4651418900B59F61995441C785FF3FD9465141DA98D6EB5E995441DDCA13A0D8465141D88EDDF95D995441FD22FCB0D7465141CB71BA905C995441176329EFD6465141D3CBF76B5B9954415B346365D64651417AF1DD9B5A995441F4553B0ED64651410D4578185A99544149D2FF0BD54651414D762D845A9954410A2F7B98D446514119CA0CB45A995441479B241ED4465141C6A8BFE65A99544195B123C5D3465141E0896C2E5B995441A6398930D34651414FBA5EA65B9954417DFCA157D2465141115950555C995441471CC1F4D146514199C83AA75C99544131AC6A94D1465141BC68F41A5D99544159EFD4C5D04651418F201D135E995441225F8A2BD04651415BBB24365F99544175C41E93CF465141634A3F5A60995441C8E3EE85CF465141EF7128916099544152B81E55CE4651416666668665995441295C8F92BD465141F6285C3F5D99544185EB5168BA465141666666965B995441A4703D5AAB465141000000B0539954411F85EBD1A146514152B81E0565995441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000000000C0AA465141A4703D5ABB995441E17A140EAD4651410AD7A310CA995441AE47E1AAAD46514152B81EF5CD995441CDCCCC0CAE465141AE47E14AD09954418FC2F5A8AE465141D7A3708DD299544114AE4741B0465141333333E3D3995441A4703DBAB24651415C8FC225D499544148E17AD4BB465141666666C6D3995441C3F5280CBF465141EC51B8DED3995441AE47E1BAC446514114AE47A1D59954419A999949C546514166666696D099544148E17AD4CC465141C3F5286CD1995441333333F3CD465141CDCCCC7CD1995441295C8FB2CD4651411F85EB11CD995441F6285C1FCE465141D7A370DDC699544114AE4701CF465141E17A143EC09954417B14AE57CF465141AE47E13AB999544148E17A44CF4651415C8FC255B0995441000000F0CE4651419A999939A5995441A4703D7ACF46514185EB51489B99544114AE47A1CF4651416666665694995441CDCCCC4CC746514152B81E759599544133333313C1465141A4703DEA9599544152B81EC5C046514152B81EF5949954418FC2F5889B4651417B14AE6793995441295C8FF29C465141C3F5281C979954410AD7A3E09F465141000000609C9954411F85EBF1A4465141C3F5282CA5995441AE47E1DAA846514185EB5188AC995441E17A14FEA94651413D0AD733B0995441295C8F82AA46514114AE47B1B4995441000000C0AA465141A4703D5ABB995441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>987163 - 4025044
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000310000001F85EBD1A146514152B81E056599544152B81EE5AA465141C3F5280C6A995441EC51B8CEB44651419A9999896F995441831910B4BC465141A6DD8D3C889954419A568AFCBE465141002D5F618F995441952E2713C1465141EA22DEEB959954413576088EC6465141870E3084959954418F6BCF9BC7465141A82C7F6A959954416780DF31CB465141452DB5EF94995441E5F06F41CE465141CBE2B485949954414B82F8A1CF465141D175F15594995441064733C5CF465141E934A53E94995441D6BDDF6ED24651415503D87B92995441DA439E61D54651413835B8889099544181F81621DD46514192C504698B995441A3E4EBC0E146514177D0215A88995441311B3578E4465141EE19548E86995441D10BFB03E94651416A2D098D8399544148E17A84E24651417B14AEA778995441E6FA256FE046514169FAC0B777995441288BF0F6DD465141CDB3589B769954417E02BBC8D7465141C060DE386A995441AF0630CCDA46514169C97B6D68995441CF905726DE4651410E6B6E6B66995441EA73F49ADC465141D31D590E64995441DA3C1804DB4651418900B59F61995441C785FF3FD9465141DA98D6EB5E995441DDCA13A0D8465141D88EDDF95D995441FD22FCB0D7465141CB71BA905C995441176329EFD6465141D3CBF76B5B9954415B346365D64651417AF1DD9B5A995441F4553B0ED64651410D4578185A99544149D2FF0BD54651414D762D845A9954410A2F7B98D446514119CA0CB45A995441479B241ED4465141C6A8BFE65A99544195B123C5D3465141E0896C2E5B995441A6398930D34651414FBA5EA65B9954417DFCA157D2465141115950555C995441471CC1F4D146514199C83AA75C99544131AC6A94D1465141BC68F41A5D99544159EFD4C5D04651418F201D135E995441225F8A2BD04651415BBB24365F99544175C41E93CF465141634A3F5A60995441C8E3EE85CF465141EF7128916099544152B81E55CE4651416666668665995441295C8F92BD465141F6285C3F5D99544185EB5168BA465141666666965B995441A4703D5AAB465141000000B0539954411F85EBD1A146514152B81E0565995441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000000000C0AA465141A4703D5ABB995441E17A140EAD4651410AD7A310CA995441AE47E1AAAD46514152B81EF5CD995441CDCCCC0CAE465141AE47E14AD09954418FC2F5A8AE465141D7A3708DD299544114AE4741B0465141333333E3D3995441A4703DBAB24651415C8FC225D499544148E17AD4BB465141666666C6D3995441C3F5280CBF465141EC51B8DED3995441AE47E1BAC446514114AE47A1D59954419A999949C546514166666696D099544148E17AD4CC465141C3F5286CD1995441333333F3CD465141CDCCCC7CD1995441295C8FB2CD4651411F85EB11CD995441F6285C1FCE465141D7A370DDC699544114AE4701CF465141E17A143EC09954417B14AE57CF465141AE47E13AB999544148E17A44CF4651415C8FC255B0995441000000F0CE4651419A999939A5995441A4703D7ACF46514185EB51489B99544114AE47A1CF4651416666665694995441CDCCCC4CC746514152B81E759599544133333313C1465141A4703DEA9599544152B81EC5C046514152B81EF5949954418FC2F5889B4651417B14AE6793995441295C8FF29C465141C3F5281C979954410AD7A3E09F465141000000609C9954411F85EBF1A4465141C3F5282CA5995441AE47E1DAA846514185EB5188AC995441E17A14FEA94651413D0AD733B0995441295C8F82AA46514114AE47B1B4995441000000C0AA465141A4703D5ABB995441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>987242 - 916837
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000180000008B828EE183E6504121BD9A6C60755441E2902C3089E65041CCC06DE35E755441BAF4C18790E6504120164C9C5D755441194C6C4D97E6504140CF29895C755441D53562DBA1E65041B37680105B75544119AEA12CA7E65041AE7E5F2E5A755441B5E64072ACE65041D4E1233159755441A6847CE5ACE65041FD33B5515B755441122F7B16B3E65041D91F07A85A75544189FE9C0CB6E650411F97E5505A755441A1A1973EBCE65041B6D8563859755441E726470BC4E6504104BA92D257755441345860E1C4E65041864E4EBC54755441E726470BC4E65041837BFDC551755441EBB6A71CBDE650411B21CD0853755441D858A453B5E6504151A8BC635475544154282FEDB0E65041857ED32755755441CADAC86BABE65041A6312B1D567554413B319794A3E6504123AF58F95775544137689A389DE65041A765EAE95875544165616A6294E65041320DB93F5A755441AB35315F8BE65041B589B9245C755441669D872E83E650415E50B2EB5E7554418B828EE183E6504121BD9A6C60755441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000B81E852B83E65041333333F35E7554413333333389E650419A9999995C755441AE47E1DA94E65041666666265A7554413D0AD7D3A3E65041000000F057755441B81E855BABE650410000002056755441B81E850BC4E650413D0AD7D35175544114AE4701BFE65041CDCCCCEC40755441C3F528BCBDE650413D0AD723407554415C8FC2257BE650411F85EBD14B7554413D0AD7D37AE65041C3F528DC4C755441B81E852B83E65041333333F35E755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>987242 - 1757847
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000180000008B828EE183E6504121BD9A6C60755441E2902C3089E65041CCC06DE35E755441BAF4C18790E6504120164C9C5D755441194C6C4D97E6504140CF29895C755441D53562DBA1E65041B37680105B75544119AEA12CA7E65041AE7E5F2E5A755441B5E64072ACE65041D4E1233159755441A6847CE5ACE65041FD33B5515B755441122F7B16B3E65041D91F07A85A75544189FE9C0CB6E650411F97E5505A755441A1A1973EBCE65041B6D8563859755441E726470BC4E6504104BA92D257755441345860E1C4E65041864E4EBC54755441E726470BC4E65041837BFDC551755441EBB6A71CBDE650411B21CD0853755441D858A453B5E6504151A8BC635475544154282FEDB0E65041857ED32755755441CADAC86BABE65041A6312B1D567554413B319794A3E6504123AF58F95775544137689A389DE65041A765EAE95875544165616A6294E65041320DB93F5A755441AB35315F8BE65041B589B9245C755441669D872E83E650415E50B2EB5E7554418B828EE183E6504121BD9A6C60755441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000B81E852B83E65041333333F35E7554413333333389E650419A9999995C755441AE47E1DA94E65041666666265A7554413D0AD7D3A3E65041000000F057755441B81E855BABE650410000002056755441B81E850BC4E650413D0AD7D35175544114AE4701BFE65041CDCCCCEC40755441C3F528BCBDE650413D0AD723407554415C8FC2257BE650411F85EBD14B7554413D0AD7D37AE65041C3F528DC4C755441B81E852B83E65041333333F35E755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>987242 - 4397157
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000180000008B828EE183E6504121BD9A6C60755441E2902C3089E65041CCC06DE35E755441BAF4C18790E6504120164C9C5D755441194C6C4D97E6504140CF29895C755441D53562DBA1E65041B37680105B75544119AEA12CA7E65041AE7E5F2E5A755441B5E64072ACE65041D4E1233159755441A6847CE5ACE65041FD33B5515B755441122F7B16B3E65041D91F07A85A75544189FE9C0CB6E650411F97E5505A755441A1A1973EBCE65041B6D8563859755441E726470BC4E6504104BA92D257755441345860E1C4E65041864E4EBC54755441E726470BC4E65041837BFDC551755441EBB6A71CBDE650411B21CD0853755441D858A453B5E6504151A8BC635475544154282FEDB0E65041857ED32755755441CADAC86BABE65041A6312B1D567554413B319794A3E6504123AF58F95775544137689A389DE65041A765EAE95875544165616A6294E65041320DB93F5A755441AB35315F8BE65041B589B9245C755441669D872E83E650415E50B2EB5E7554418B828EE183E6504121BD9A6C60755441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000B81E852B83E65041333333F35E7554413333333389E650419A9999995C755441AE47E1DA94E65041666666265A7554413D0AD7D3A3E65041000000F057755441B81E855BABE650410000002056755441B81E850BC4E650413D0AD7D35175544114AE4701BFE65041CDCCCCEC40755441C3F528BCBDE650413D0AD723407554415C8FC2257BE650411F85EBD14B7554413D0AD7D37AE65041C3F528DC4C755441B81E852B83E65041333333F35E755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>646202 - 307650
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000016000000B81E852B40625141F6285C7FCF3954410AD7A360406251413D0AD7A3D0395441295C8F924262514152B81E05DE395441AE47E1EA4462514185EB5128EB395441AE47E12A4562514152B81E95EC39544152B81E5547625141A4703D2AF93954418FC2F5B84962514133333353073A544185EB51184B62514100000030073A54418FC2F5E856625141CDCCCCFC063A54410AD7A32059625141A4703DCA063A5441295C8F1256625141AE47E16AF53954419A99993954625141CDCCCCBCEA3954418FC2F55853625141C3F528BCE539544114AE47615262514114AE4771E039544114AE47515162514114AE4721DA3954413333330350625141E17A14BED2395441295C8FF24E6251411F85EBB1CE39544152B81ED54E62514133333333CE39544114AE47C14C62514114AE4711CF395441C3F5289C47625141EC51B8FECF395441CDCCCCFC436251415C8FC285CF395441B81E852B40625141F6285C7FCF395441
+</a>
+
+<b>
+01060000000100000001030000000100000026000000142290125662514128ADE56AF5395441727A0CCA556251413841B5C7F3395441272804CA55625141792685C7F33954419A99993954625141CDCCCCBCEA39544133853BB953625141C7DBFEE0E7395441F634F55853625141684B29BCE539544162DF466152625141BD444871E0395441F4A173E351625141DB38B685DD39544114AE47515162514114AE4721DA3954413333330350625141E17A14BED2395441EFDD23DC4F625141E051A229D2395441BE7E8EF24E625141DBBBEBB1CE3954411821F1E64E6251417E65E97FCE39544152B81ED54E62514133333333CE39544114AE47C14C62514114AE4711CF395441C3F5289C47625141EC51B8FECF395441B8EA1D624462514186A9F992CF3954411514CEFC43625141F3D5C285CF3954415987862B40625141541E5D7FCF3954416075A460406251419B57D6A3D0395441DE222D1C4162514131F6FF1AD5395441295C8F924262514152B81E05DE395441747E79CD436251416B5A61E9E43954411E67E2EA44625141CABE5028EB395441F14FE12A456251417AC91E95EC395441926218244A6251413F653B6CF2395441D64864904F62514132DB16CCF8395441170AB08B536251410690DCDAF8395441BE20548F55625141E316B2CBF83954416EFA795B56625141A80E8DE8FA395441E70779F5566251419D8E08C4FD3954414FB367BE58625141B93C763E063A544154E88CF44D6251410D1A2CC7063A5441EA98DDC949625141C1A08151073A544185EB51184B62514100000030073A54418FC2F5E856625141CDCCCCFC063A54410AD7A32059625141A4703DCA063A5441142290125662514128ADE56AF5395441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>662143 - 119735
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C0000001ED78BB885B550412CC824E601D05441161E6F2F9BB5504152220739FACF54410AD7A3D0B0B55041EC51B81EF3CF544185EB5118C4B5504148E17A84EDCF544133333353D5B550411F85EB21ECCF54411F85EBD1E1B55041C3F5288CE8CF54413D0AD763DEB55041E17A144EDFCF5441EC51B8FEDBB55041CDCCCC0CDACF5441C8F846167DB5504174BA667AF9CF5441D3E4458383B55041AB5D8BC502D054410AD1FCC684B5504189FD073C02D054411ED78BB885B550412CC824E601D05441
+</a>
+
+<b>
+0106000000010000000103000000010000002F00000030B71E78B4B55041E5ECE10EF2CF54413C0AA1EEB8B55041D72661BFF0CF5441D9B1F01BC4B550413C1E2980EDCF5441DF55CB57D5B550411CB87D20ECCF5441D12E76CFE1B5504189DC048CE8CF544142E49975DEB55041A975327EDFCF544131A9CC7BDDB55041BE7BF250DDCF54416C8F64F8DCB55041C2E79E30DCCF54414997C400DCB55041A7214B11DACF5441E9C98400C6B550418EE73355E1CF5441E8293A32A4B5504135290387ECCF5441BE0883227DB5504136915976F9CF5441588D082583B5504103183F3D02D05441D1E4458383B55041AC5D8BC502D054415551D95884B550416E5FD16A02D0544190D84DB884B55041EA62AC4102D05441D03540C184B55041D6D9773E02D054410CD1FCC684B5504185FD073C02D054410169605485B550412B72C20902D05441A0C7E26386B5504102697DA801D0544105B56D3788B55041A66FA70001D05441B9AA2C3B89B550414D73BEA400D0544192B544C389B550417395197400D05441ADD498088DB550414E38A648FFCF54415A852A5B8FB55041340C0474FECF5441E6662CE48FB550418F8BAC42FECF5441E1453E5290B550417D90A71BFECF544131DFECF795B55041A10AA416FCCF54415F1687CB97B550415AA80C6EFBCF54415F0A91F898B550418EAC7C03FBCF5441A6A3D67F99B5504142B560D3FACF54411B1E6F2F9BB5504153220739FACF54417D9345CA9BB55041DEA72E06FACF544199DA0EAA9DB55041E9BCE367F9CF544183EB1D859EB550419F0AB220F9CF54411D8F7A839FB5504199092BCDF8CF544145CB8D64A0B5504103084283F8CF544164B3C283A1B55041CCC93424F8CF54411EEB354DA2B550413EF6CAE2F7CF544113CA8ED5A5B5504104C2D2B9F6CF544119844329A6B5504157D9EB9DF6CF544112501FF2A6B55041E2C1605CF6CF5441BBCEAB39A9B55041078FC09CF5CF5441BB551FB8AAB5504197E84B1EF5CF5441684F7602ACB550416193AFB2F4CF54410AD7A3D0B0B55041EC51B81EF3CF544130B71E78B4B55041E5ECE10EF2CF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>662143 - 319931
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C0000001ED78BB885B550412CC824E601D05441161E6F2F9BB5504152220739FACF54410AD7A3D0B0B55041EC51B81EF3CF544185EB5118C4B5504148E17A84EDCF544133333353D5B550411F85EB21ECCF54411F85EBD1E1B55041C3F5288CE8CF54413D0AD763DEB55041E17A144EDFCF5441EC51B8FEDBB55041CDCCCC0CDACF5441C8F846167DB5504174BA667AF9CF5441D3E4458383B55041AB5D8BC502D054410AD1FCC684B5504189FD073C02D054411ED78BB885B550412CC824E601D05441
+</a>
+
+<b>
+0106000000010000000103000000010000002F00000030B71E78B4B55041E5ECE10EF2CF54413C0AA1EEB8B55041D72661BFF0CF5441D9B1F01BC4B550413C1E2980EDCF5441DF55CB57D5B550411CB87D20ECCF5441D12E76CFE1B5504189DC048CE8CF544142E49975DEB55041A975327EDFCF544131A9CC7BDDB55041BE7BF250DDCF54416C8F64F8DCB55041C2E79E30DCCF54414997C400DCB55041A7214B11DACF5441E9C98400C6B550418EE73355E1CF5441E8293A32A4B5504135290387ECCF5441BE0883227DB5504136915976F9CF5441588D082583B5504103183F3D02D05441D1E4458383B55041AC5D8BC502D054415551D95884B550416E5FD16A02D0544190D84DB884B55041EA62AC4102D05441D03540C184B55041D6D9773E02D054410CD1FCC684B5504185FD073C02D054410169605485B550412B72C20902D05441A0C7E26386B5504102697DA801D0544105B56D3788B55041A66FA70001D05441B9AA2C3B89B550414D73BEA400D0544192B544C389B550417395197400D05441ADD498088DB550414E38A648FFCF54415A852A5B8FB55041340C0474FECF5441E6662CE48FB550418F8BAC42FECF5441E1453E5290B550417D90A71BFECF544131DFECF795B55041A10AA416FCCF54415F1687CB97B550415AA80C6EFBCF54415F0A91F898B550418EAC7C03FBCF5441A6A3D67F99B5504142B560D3FACF54411B1E6F2F9BB5504153220739FACF54417D9345CA9BB55041DEA72E06FACF544199DA0EAA9DB55041E9BCE367F9CF544183EB1D859EB550419F0AB220F9CF54411D8F7A839FB5504199092BCDF8CF544145CB8D64A0B5504103084283F8CF544164B3C283A1B55041CCC93424F8CF54411EEB354DA2B550413EF6CAE2F7CF544113CA8ED5A5B5504104C2D2B9F6CF544119844329A6B5504157D9EB9DF6CF544112501FF2A6B55041E2C1605CF6CF5441BBCEAB39A9B55041078FC09CF5CF5441BB551FB8AAB5504197E84B1EF5CF5441684F7602ACB550416193AFB2F4CF54410AD7A3D0B0B55041EC51B81EF3CF544130B71E78B4B55041E5ECE10EF2CF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>727355 - 55675
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000A000000713D0AD76EB850410AD7A3D0B34055417B14AE5773B85041295C8FB2BB405541F6285C9F74B85041D7A3707DBD4055418FC2F51878B85041A4703DEABF40554148E17AA480B85041713D0A17B4405541A4703D6A80B85041B81E854BB3405541333333337CB85041B81E857BB2405541F6285CFF6FB85041CDCCCC1CB040554148E17A746DB8504114AE4771AF405541713D0AD76EB850410AD7A3D0B3405541
+</a>
+
+<b>
+01060000000100000001030000000100000023000000333333337CB85041B81E857BB2405541DA278DBD79B850412A633A01B24055416CC4748C76B8504192A08762B14055411406743E71B85041B66BC65AB0405541AB7564A770B8504177886F3DB0405541F6285CFF6FB85041CDCCCC1CB0405541D82352856FB85041E2E5A3FCAF405541C89728C56EB850411E6800CAAF4055410E308D5C6EB850415F7E6FAEAF4055414D9A98876DB850414B465176AF405541ECF63FC26DB850415273CD66B0405541205457FE6DB850417C578324B14055417F1E75606EB850413034455AB24055419FBA18BC6EB85041B11F947BB3405541D482A0CF6EB8504162A23CB9B34055413EDBEDDC6FB8504170B3209BB54055412B6C1B4A70B850411CD7435AB6405541BF9B89A672B85041670F707CBA405541FD2688C072B850417221F2A9BA40554191DF267873B850418F8408E0BB405541F3E48D9273B8504199C90105BC405541BAC949BB73B8504179E90C3EBC405541E0BC0BDA73B850417A841F69BC405541665C4E4074B85041DFD053F8BC40554121A3A76B74B850416C560835BD4055410F91A8B574B850414F34008DBD405541D35E2E5775B85041A3D2B7FDBD4055410E1B88AD75B850419520FA39BE405541BBFC1CE275B850412DB1AB5EBE4055415254371B77B8504193BC2A39BF405541B92BF1AE77B85041B89A41A0BF4055418295321C78B85041D0A379DFBF40554192E784A180B850411A2A231BB4405541992CD06780B85041C35C0D4BB3405541333333337CB85041B81E857BB2405541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>107288 - 45238
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000040000000103000000030000002C000000C3F528BCB627514114AE47F15E425541C3F5280CB72751418FC2F5285E425541B81E853BB727514152B81E655D425541B81E853BB72751419A9999695C425541666666A6B6275141F6285C5F5B425541295C8FC2B52751413D0AD7735A425541295C8F32B4275141AE47E10A59425541C3F5284CB22751410AD7A3D0574255419A9999F9B02751418FC2F558574255419A999999AF27514185EB5128574255418FC2F528AE2751419A99990957425541713D0A07AD2751413333334357425541F6285C2FAC27514152B81E6558425541F6285C2FAB2751410AD7A340584255418FC2F578A927514152B81E65584255415C8FC245A8275141C3F5281C5842554152B81E95A5275141CDCCCC4C58425541E17A149EA527514148E17A14594255410AD7A390A6275141000000505A42554100000030A7275141333333735B4255413D0AD703A82751419A9999895D425541E17A144EA9275141CDCCCC7C5F425541333333B3A9275141E17A149E60425541000000B0AB275141E17A14AE634255418FC2F5F8AB275141AE47E1FA624255419A999959AC275141EC51B81E624255417B14AE47AD275141295C8FC260425541C3F528ECAC27514148E17A546042554133333383AC27514185EB51486042554148E17AD4AB2751413D0AD72361425541E17A148EAA2751416666663660425541A4703D8AAC275141AE47E17A5D4255411F85EBF1AB2751418FC2F5E85C42554152B81EA5AE2751413D0AD7335A425541713D0A07B02751410AD7A3D058425541AE47E17AB1275141333333435A425541D7A370FDB1275141000000C05942554100000060B2275141CDCCCC5C594255419A999949B6275141000000A05D425541333333A3B5275141F6285C5F5E425541E17A141EB527514152B81EE55E42554148E17AA4B5275141D7A3705D5F4255413D0AD733B627514148E17A645F425541C3F528BCB627514114AE47F15E4255410D0000007B14AE37AD27514114AE479159425541713D0A07AD2751410AD7A3605942554185EB51F8AC27514166666626594255415C8FC205AD2751417B14AEE75842554133333333AD2751417B14AEB758425541295C8F72AD2751415C8FC2A558425541CDCCCCACAD275141000000B0584255410AD7A3E0AD275141EC51B8DE58425541333333F3AD2751410000002059425541713D0AE7AD275141EC51B85E594255410AD7A3B0AD275141295C8F92594255418FC2F578AD2751410AD7A3A0594255417B14AE37AD27514114AE47915942554107000000D7A370FDAA275141D7A3702D5C42554148E17A84AA2751410AD7A3B05B42554185EB51A8AA2751419A9999095B425541F6285C4FAB275141E17A14CE5A425541333333D3AB27514148E17A445B425541F6285CCFAB275141B81E85DB5B425541D7A370FDAA275141D7A3702D5C425541010300000001000000170000003D0AD763AE2751410AD7A350614255413D0AD7C3AD2751410AD7A39061425541A4703D7AAD275141A4703DFA614255410AD7A3F0AC2751413D0AD7A362425541713D0A67AC27514148E17A84634255413D0AD713AC275141C3F5282C64425541713D0AF7AB275141F6285C5F654255419A9999D9AB2751418FC2F55866425541B81E856BAB275141EC51B8AE6742554100000000AB2751411F85EBA1684255419A999989AA2751410AD7A350694255415C8FC215AA2751415C8FC2156A42554148E17A74AA275141666666466A42554185EB51C8AA2751418FC2F5C869425541CDCCCC7CAB275141EC51B83E69425541D7A3708DAC275141CDCCCC9C6842554148E17A34AE275141AE47E17A674255417B14AEF7AE2751416666660667425541E17A148EAC275141E17A140E644255418FC2F598AE2751410AD7A36062425541713D0A97AF2751419A999979614255418FC2F508AF2751419A999939614255413D0AD763AE2751410AD7A3506142554101030000000200000062000000AE47E15AD3275141C3F5283C564255418FC2F5B8D327514148E17A3455425541B81E851BD527514114AE4771544255419A999969D62751413D0AD74353425541AE47E18AD7275141A4703D2A52425541AE47E17AD82751415C8FC2D5504255415C8FC2E5D9275141D7A3708D4F4255419A9999E9DA275141E17A14FE4D425541EC51B86EDB275141F6285C5F4C4255411F85EBF1DB2751417B14AE174B425541AE47E17ADC275141EC51B85E4A4255410AD7A390DD275141D7A370ED494255413D0AD743DF2751415C8FC29549425541295C8F22E12751419A9999F948425541A4703D1AE2275141B81E854B48425541AE47E1BAE32751411F85EB9146425541F6285C0FE427514152B81E454542554114AE4701E4275141C3F5286C44425541AE47E11AE42751418FC2F5A8434255419A9999E9E42751415C8FC27543425541C3F5282CE6275141713D0A074342554114AE47A1E8275141D7A3703D44425541EC51B86EE9275141F6285CEF444255415C8FC295EA27514114AE47F14442554148E17A94EE2751419A999989434255415C8FC275EF2751417B14AEB742425541D7A370CDEF275141AE47E18A4142554166666696EF275141295C8F823F42554100000080EF275141F6285CEF3E425541F6285CFFEF275141B81E858B3E425541E17A14BEF127514152B81E753D4255418FC2F5F8F2275141C3F5286C3C4255418FC2F5C8F327514148E17A543B425541D7A370ADF4275141295C8F423842554133333323F527514114AE479134425541713D0A87F5275141F6285C4F3342554114AE4751F627514185EB515832425541295C8F82F7275141295C8FA23142554133333343F9275141AE47E17A3142554148E17A54FC2751419A999999314255415C8FC2C5FD2751419A999949314255411F85EBD1FE27514114AE478130425541F6285CCFFF27514185EB51582F42554114AE476100285141E17A147E2D4255415C8FC21501285141D7A370ED2842554114AE47710128514152B81ED527425541A4703D2A02285141713D0AC72642554114AE4701032851411F85EBC125425541713D0AD700285141000000902342554148E17A64FE275141CDCCCC9C2642554114AE4791F8275141B81E851B2D4255410AD7A370F4275141333333332F4255410AD7A3F0E92751410AD7A350354255417B14AEE7DF275141333333133D425541295C8FB2D527514152B81E3532425541295C8F12C3275141713D0A1742425541F6285C5FC2275141666666A6424255413D0AD7A3C3275141B81E850B474255419A999969C52751419A9999594B42554185EB51E8C6275141CDCCCCCC4C42554114AE4781C82751413D0AD7B34A4255413D0AD743C92751417B14AE174C4255415C8FC245C7275141F6285C4F4E4255411F85EB91C52751411F85EBF14F4255417B14AE27C42751419A99993952425541666666E6C1275141CDCCCC6C5442554185EB51E8C02751417B14AEA7544255410AD7A3E0BF275141CDCCCC1C53425541C3F5283CBE2751418FC2F5E8544255417B14AE37BD27514148E17AF45742554185EB5178B4275141295C8F72624255411F85EB31B827514114AE4741654255415C8FC2F5B7275141333333836542554114AE4731BC2751415C8FC2C5684255419A9999B9BE2751418FC2F5B86A42554100000040C127514114AE477169425541EC51B83EC227514114AE47F16842554114AE4701C7275141E17A14DE66425541AE47E17AC7275141F6285C9F664255411F85EB01C8275141295C8F0266425541295C8F42C82751410AD7A33065425541B81E855BC8275141CDCCCC7C64425541A4703D5AC8275141F6285CBF6342554166666636C8275141CDCCCC1C6342554100000000C8275141B81E856B62425541000000A0C7275141E17A144E614255418FC2F548C727514152B81E15604255418FC2F508C727514185EB51385F425541E17A14EEC6275141EC51B86E5E425541E17A14EEC627514185EB51C85D4255418FC2F518C72751417B14AE075D425541295C8F72C727514148E17A345C42554133333333C8275141AE47E1CA5A4255415C8FC2C5C92751413D0AD7E358425541AE47E1DACB275141713D0AA758425541AE47E1FACD275141D7A3706D5842554148E17AE4D0275141D7A3709D57425541AE47E15AD3275141C3F5283C5642554107000000C3F528CCEC2751416666660635425541E17A149EEC275141A4703DFA35425541C3F528FCEA275141000000103742554100000020EA27514152B81E853642554114AE4771EA275141713D0AD735425541B81E85FBEB2751413D0AD7E334425541C3F528CCEC2751416666660635425541010300000001000000110000003D0AD723B7275141A4703DCA5A425541000000E0B7275141CDCCCCDC5B425541F6285C0FB827514185EB51B85C42554185EB51E8B7275141D7A3704D5D425541F6285CAFB9275141EC51B86E5B42554185EB5108BB275141713D0AC7594255413D0AD703BC27514148E17AA458425541EC51B8FEBC275141B81E853B57425541E17A142EBD275141F6285C6F56425541EC51B8FEBC2751411F85EB0156425541295C8F32BC2751418FC2F5385642554148E17AE4BB275141F6285CBF56425541AE47E14ABC275141CDCCCC1C5742554166666676BA275141F6285C7F5942554152B81EE5B8275141F6285CCF5A425541D7A3703DB82751415C8FC2055A4255413D0AD723B7275141A4703DCA5A425541
+</a>
+
+<b>
+01060000000100000001030000000100000020000000ADFBFB7000285141EC8A850F244255415B7F5872FF2751414394AD4C25425541F66A63A9FE275141931EB915274255417B05D490FB27514159F1AFC3294255412FB29DD4FA275141E17A57072B425541570366B0F8275141D97CD2F82C42554114AE4791F8275141B81E851B2D4255416AC02681F82751411958B2232D425541F9233B61FA2751415A5E092F2E425541560764970128514104BB42F525425541B25C3C3D00285141C8F343D12B42554146407756FF275141CE7ACE152F4255416158D451FD275141CA05B762314255413585F0E6FD2751414078D030314255419B9D657CFE275141D5CA2AC130425541C744FB83FE275141575880BB30425541BAF5FD32FF2751412DFE890F30425541C79699D7FF2751419E468A3D2F4255411B6D2A30002851410B8EB31D2E425541CBAB0B8F00285141495CBD552C425541BFF1A08F002851412DCAF6512C4255415C8FC21501285141D7A370ED2842554114AE47710128514152B81ED527425541A4703D2A02285141713D0AC72642554114AE4701032851411F85EBC125425541B95DEFB9042851418586379C254255417B14AE5705285141EC51B88E25425541333333F3082851410AD7A370254255416BA2A31E062851413A8ED86723425541AFDD9D780428514192C7873822425541A4703DDA02285141EC51B80E21425541ADFBFB7000285141EC8A850F24425541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>107288 - 82820
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000040000000103000000030000002C000000C3F528BCB627514114AE47F15E425541C3F5280CB72751418FC2F5285E425541B81E853BB727514152B81E655D425541B81E853BB72751419A9999695C425541666666A6B6275141F6285C5F5B425541295C8FC2B52751413D0AD7735A425541295C8F32B4275141AE47E10A59425541C3F5284CB22751410AD7A3D0574255419A9999F9B02751418FC2F558574255419A999999AF27514185EB5128574255418FC2F528AE2751419A99990957425541713D0A07AD2751413333334357425541F6285C2FAC27514152B81E6558425541F6285C2FAB2751410AD7A340584255418FC2F578A927514152B81E65584255415C8FC245A8275141C3F5281C5842554152B81E95A5275141CDCCCC4C58425541E17A149EA527514148E17A14594255410AD7A390A6275141000000505A42554100000030A7275141333333735B4255413D0AD703A82751419A9999895D425541E17A144EA9275141CDCCCC7C5F425541333333B3A9275141E17A149E60425541000000B0AB275141E17A14AE634255418FC2F5F8AB275141AE47E1FA624255419A999959AC275141EC51B81E624255417B14AE47AD275141295C8FC260425541C3F528ECAC27514148E17A546042554133333383AC27514185EB51486042554148E17AD4AB2751413D0AD72361425541E17A148EAA2751416666663660425541A4703D8AAC275141AE47E17A5D4255411F85EBF1AB2751418FC2F5E85C42554152B81EA5AE2751413D0AD7335A425541713D0A07B02751410AD7A3D058425541AE47E17AB1275141333333435A425541D7A370FDB1275141000000C05942554100000060B2275141CDCCCC5C594255419A999949B6275141000000A05D425541333333A3B5275141F6285C5F5E425541E17A141EB527514152B81EE55E42554148E17AA4B5275141D7A3705D5F4255413D0AD733B627514148E17A645F425541C3F528BCB627514114AE47F15E4255410D0000007B14AE37AD27514114AE479159425541713D0A07AD2751410AD7A3605942554185EB51F8AC27514166666626594255415C8FC205AD2751417B14AEE75842554133333333AD2751417B14AEB758425541295C8F72AD2751415C8FC2A558425541CDCCCCACAD275141000000B0584255410AD7A3E0AD275141EC51B8DE58425541333333F3AD2751410000002059425541713D0AE7AD275141EC51B85E594255410AD7A3B0AD275141295C8F92594255418FC2F578AD2751410AD7A3A0594255417B14AE37AD27514114AE47915942554107000000D7A370FDAA275141D7A3702D5C42554148E17A84AA2751410AD7A3B05B42554185EB51A8AA2751419A9999095B425541F6285C4FAB275141E17A14CE5A425541333333D3AB27514148E17A445B425541F6285CCFAB275141B81E85DB5B425541D7A370FDAA275141D7A3702D5C425541010300000001000000170000003D0AD763AE2751410AD7A350614255413D0AD7C3AD2751410AD7A39061425541A4703D7AAD275141A4703DFA614255410AD7A3F0AC2751413D0AD7A362425541713D0A67AC27514148E17A84634255413D0AD713AC275141C3F5282C64425541713D0AF7AB275141F6285C5F654255419A9999D9AB2751418FC2F55866425541B81E856BAB275141EC51B8AE6742554100000000AB2751411F85EBA1684255419A999989AA2751410AD7A350694255415C8FC215AA2751415C8FC2156A42554148E17A74AA275141666666466A42554185EB51C8AA2751418FC2F5C869425541CDCCCC7CAB275141EC51B83E69425541D7A3708DAC275141CDCCCC9C6842554148E17A34AE275141AE47E17A674255417B14AEF7AE2751416666660667425541E17A148EAC275141E17A140E644255418FC2F598AE2751410AD7A36062425541713D0A97AF2751419A999979614255418FC2F508AF2751419A999939614255413D0AD763AE2751410AD7A3506142554101030000000200000062000000AE47E15AD3275141C3F5283C564255418FC2F5B8D327514148E17A3455425541B81E851BD527514114AE4771544255419A999969D62751413D0AD74353425541AE47E18AD7275141A4703D2A52425541AE47E17AD82751415C8FC2D5504255415C8FC2E5D9275141D7A3708D4F4255419A9999E9DA275141E17A14FE4D425541EC51B86EDB275141F6285C5F4C4255411F85EBF1DB2751417B14AE174B425541AE47E17ADC275141EC51B85E4A4255410AD7A390DD275141D7A370ED494255413D0AD743DF2751415C8FC29549425541295C8F22E12751419A9999F948425541A4703D1AE2275141B81E854B48425541AE47E1BAE32751411F85EB9146425541F6285C0FE427514152B81E454542554114AE4701E4275141C3F5286C44425541AE47E11AE42751418FC2F5A8434255419A9999E9E42751415C8FC27543425541C3F5282CE6275141713D0A074342554114AE47A1E8275141D7A3703D44425541EC51B86EE9275141F6285CEF444255415C8FC295EA27514114AE47F14442554148E17A94EE2751419A999989434255415C8FC275EF2751417B14AEB742425541D7A370CDEF275141AE47E18A4142554166666696EF275141295C8F823F42554100000080EF275141F6285CEF3E425541F6285CFFEF275141B81E858B3E425541E17A14BEF127514152B81E753D4255418FC2F5F8F2275141C3F5286C3C4255418FC2F5C8F327514148E17A543B425541D7A370ADF4275141295C8F423842554133333323F527514114AE479134425541713D0A87F5275141F6285C4F3342554114AE4751F627514185EB515832425541295C8F82F7275141295C8FA23142554133333343F9275141AE47E17A3142554148E17A54FC2751419A999999314255415C8FC2C5FD2751419A999949314255411F85EBD1FE27514114AE478130425541F6285CCFFF27514185EB51582F42554114AE476100285141E17A147E2D4255415C8FC21501285141D7A370ED2842554114AE47710128514152B81ED527425541A4703D2A02285141713D0AC72642554114AE4701032851411F85EBC125425541713D0AD700285141000000902342554148E17A64FE275141CDCCCC9C2642554114AE4791F8275141B81E851B2D4255410AD7A370F4275141333333332F4255410AD7A3F0E92751410AD7A350354255417B14AEE7DF275141333333133D425541295C8FB2D527514152B81E3532425541295C8F12C3275141713D0A1742425541F6285C5FC2275141666666A6424255413D0AD7A3C3275141B81E850B474255419A999969C52751419A9999594B42554185EB51E8C6275141CDCCCCCC4C42554114AE4781C82751413D0AD7B34A4255413D0AD743C92751417B14AE174C4255415C8FC245C7275141F6285C4F4E4255411F85EB91C52751411F85EBF14F4255417B14AE27C42751419A99993952425541666666E6C1275141CDCCCC6C5442554185EB51E8C02751417B14AEA7544255410AD7A3E0BF275141CDCCCC1C53425541C3F5283CBE2751418FC2F5E8544255417B14AE37BD27514148E17AF45742554185EB5178B4275141295C8F72624255411F85EB31B827514114AE4741654255415C8FC2F5B7275141333333836542554114AE4731BC2751415C8FC2C5684255419A9999B9BE2751418FC2F5B86A42554100000040C127514114AE477169425541EC51B83EC227514114AE47F16842554114AE4701C7275141E17A14DE66425541AE47E17AC7275141F6285C9F664255411F85EB01C8275141295C8F0266425541295C8F42C82751410AD7A33065425541B81E855BC8275141CDCCCC7C64425541A4703D5AC8275141F6285CBF6342554166666636C8275141CDCCCC1C6342554100000000C8275141B81E856B62425541000000A0C7275141E17A144E614255418FC2F548C727514152B81E15604255418FC2F508C727514185EB51385F425541E17A14EEC6275141EC51B86E5E425541E17A14EEC627514185EB51C85D4255418FC2F518C72751417B14AE075D425541295C8F72C727514148E17A345C42554133333333C8275141AE47E1CA5A4255415C8FC2C5C92751413D0AD7E358425541AE47E1DACB275141713D0AA758425541AE47E1FACD275141D7A3706D5842554148E17AE4D0275141D7A3709D57425541AE47E15AD3275141C3F5283C5642554107000000C3F528CCEC2751416666660635425541E17A149EEC275141A4703DFA35425541C3F528FCEA275141000000103742554100000020EA27514152B81E853642554114AE4771EA275141713D0AD735425541B81E85FBEB2751413D0AD7E334425541C3F528CCEC2751416666660635425541010300000001000000110000003D0AD723B7275141A4703DCA5A425541000000E0B7275141CDCCCCDC5B425541F6285C0FB827514185EB51B85C42554185EB51E8B7275141D7A3704D5D425541F6285CAFB9275141EC51B86E5B42554185EB5108BB275141713D0AC7594255413D0AD703BC27514148E17AA458425541EC51B8FEBC275141B81E853B57425541E17A142EBD275141F6285C6F56425541EC51B8FEBC2751411F85EB0156425541295C8F32BC2751418FC2F5385642554148E17AE4BB275141F6285CBF56425541AE47E14ABC275141CDCCCC1C5742554166666676BA275141F6285C7F5942554152B81EE5B8275141F6285CCF5A425541D7A3703DB82751415C8FC2055A4255413D0AD723B7275141A4703DCA5A425541
+</a>
+
+<b>
+01060000000100000001030000000100000020000000ADFBFB7000285141EC8A850F244255415B7F5872FF2751414394AD4C25425541F66A63A9FE275141931EB915274255417B05D490FB27514159F1AFC3294255412FB29DD4FA275141E17A57072B425541570366B0F8275141D97CD2F82C42554114AE4791F8275141B81E851B2D4255416AC02681F82751411958B2232D425541F9233B61FA2751415A5E092F2E425541560764970128514104BB42F525425541B25C3C3D00285141C8F343D12B42554146407756FF275141CE7ACE152F4255416158D451FD275141CA05B762314255413585F0E6FD2751414078D030314255419B9D657CFE275141D5CA2AC130425541C744FB83FE275141575880BB30425541BAF5FD32FF2751412DFE890F30425541C79699D7FF2751419E468A3D2F4255411B6D2A30002851410B8EB31D2E425541CBAB0B8F00285141495CBD552C425541BFF1A08F002851412DCAF6512C4255415C8FC21501285141D7A370ED2842554114AE47710128514152B81ED527425541A4703D2A02285141713D0AC72642554114AE4701032851411F85EBC125425541B95DEFB9042851418586379C254255417B14AE5705285141EC51B88E25425541333333F3082851410AD7A370254255416BA2A31E062851413A8ED86723425541AFDD9D780428514192C7873822425541A4703DDA02285141EC51B80E21425541ADFBFB7000285141EC8A850F24425541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>641473 - 2908680
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001F0000005C8FC235330A5141B81E854BC1E2544133333303380A51417B14AE47ABE25441F6285C5F380A514185EB5118A8E254419A999989330A51410AD7A310A9E254411F85EB81300A5141A4703D7AA9E2544114AE47E12B0A514185EB5148A9E254413D0AD7A3270A51413D0AD7C3A8E25441BD853D93270A514166DC71C3A8E25441F002E2B2240A5141CF4AC4B1A8E25441B8E8B6F6220A51417EF44CADA8E25441C339FBDC220A5141F162AE68B0E254417AEE33CB220A5141786949BDB5E2544161E46EC5220A5141BEDEDBDFB9E254411E4E38C2220A5141AB1840DDBBE254415932FEC1220A514117DEEE0DBCE25441593E4FE7220A514100507F51BEE254411A8AC45F230A51412E9855A0C5E254414FF13B67230A51415A76A712C6E25441D3A0EF70230A51415C5A5257C6E2544104F17E93240A51411265D45FCEE25441AE47E10A250A5141CDCCCCACD1E25441F6285C1F260A514114AE47F1D1E25441FE3D8C97260A5141B82935CFD3E2544188DB19B1270A51417347CE2ED8E25441EE70F58D290A51412415D47DDFE2544110F039FB290A51415D7D6725E1E25441C81262202A0A5141719FD9D6E1E2544114AE47112B0A5141A4703DBAE6E2544110E9875C2D0A514137C3F73DDCE254419ACFAEDF2E0A5141EB549B55D5E254415C8FC235330A5141B81E854BC1E25441
+</a>
+
+<b>
+010600000001000000010300000001000000250000004C7601A4270A514181E393C4A8E2544134A2DE5E270A5141B8DD29C2A8E254415D27CA70250A5141E9105DB5A8E25441868359B3240A5141D56215B4A8E25441CA8D30F7220A51418B819A9FA8E25441658D14F6220A5141A61FC7F3A8E25441EF0C06ED220A5141B173F3A2ABE25441290204E8220A514181812987ADE25441DAB1EFDD220A514167D76627B0E25441F615CBD4220A514150FCE4E3B2E2544128E419CD220A51414668A338B5E254411AC8B6CB220A5141282DEA84B6E254410B26EFC7220A5141852C90CAB8E25441B53A1CC4220A51410798B17BBBE25441644092C4220A5141338CECE8BBE254415618B42E230A514161D6C7A4C2E25441FE53F34D230A5141A9629D8BC4E254418FD7AD70230A514132BC8055C6E2544184B4E490230A514193EB8139C7E25441D6AB5230240A514150B8E8A1CBE254419B2CD779240A51419C6B3FAACDE25441296D6AF7240A514136700923D1E25441AE47E10A250A5141CDCCCCACD1E25441F6285C1F260A514114AE47F1D1E25441BFDA1979260A514187BA2256D3E25441E08711BA270A5141F5097752D8E254410528EE8B280A514158884D8FDBE254411B3CBF1F290A5141FFAF97D2DDE25441713D0A072A0A514133333353E1E2544114AE47112B0A5141A4703DBAE6E25441000000202C0A514148E17AE4E1E254418AAE84ED2D0A5141C11B64A7D9E25441B8E27DF72E0A5141ABD130E7D4E254412820D3E32F0A5141879526A2D0E25441A2E9BF39300A5141434E670CCFE25441D84F52B42E0A5141BC9B9436C8E254414C7601A4270A514181E393C4A8E25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>641473 - 3624617
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001F0000005C8FC235330A5141B81E854BC1E2544133333303380A51417B14AE47ABE25441F6285C5F380A514185EB5118A8E254419A999989330A51410AD7A310A9E254411F85EB81300A5141A4703D7AA9E2544114AE47E12B0A514185EB5148A9E254413D0AD7A3270A51413D0AD7C3A8E25441BD853D93270A514166DC71C3A8E25441F002E2B2240A5141CF4AC4B1A8E25441B8E8B6F6220A51417EF44CADA8E25441C339FBDC220A5141F162AE68B0E254417AEE33CB220A5141786949BDB5E2544161E46EC5220A5141BEDEDBDFB9E254411E4E38C2220A5141AB1840DDBBE254415932FEC1220A514117DEEE0DBCE25441593E4FE7220A514100507F51BEE254411A8AC45F230A51412E9855A0C5E254414FF13B67230A51415A76A712C6E25441D3A0EF70230A51415C5A5257C6E2544104F17E93240A51411265D45FCEE25441AE47E10A250A5141CDCCCCACD1E25441F6285C1F260A514114AE47F1D1E25441FE3D8C97260A5141B82935CFD3E2544188DB19B1270A51417347CE2ED8E25441EE70F58D290A51412415D47DDFE2544110F039FB290A51415D7D6725E1E25441C81262202A0A5141719FD9D6E1E2544114AE47112B0A5141A4703DBAE6E2544110E9875C2D0A514137C3F73DDCE254419ACFAEDF2E0A5141EB549B55D5E254415C8FC235330A5141B81E854BC1E25441
+</a>
+
+<b>
+010600000001000000010300000001000000250000004C7601A4270A514181E393C4A8E2544134A2DE5E270A5141B8DD29C2A8E254415D27CA70250A5141E9105DB5A8E25441868359B3240A5141D56215B4A8E25441CA8D30F7220A51418B819A9FA8E25441658D14F6220A5141A61FC7F3A8E25441EF0C06ED220A5141B173F3A2ABE25441290204E8220A514181812987ADE25441DAB1EFDD220A514167D76627B0E25441F615CBD4220A514150FCE4E3B2E2544128E419CD220A51414668A338B5E254411AC8B6CB220A5141282DEA84B6E254410B26EFC7220A5141852C90CAB8E25441B53A1CC4220A51410798B17BBBE25441644092C4220A5141338CECE8BBE254415618B42E230A514161D6C7A4C2E25441FE53F34D230A5141A9629D8BC4E254418FD7AD70230A514132BC8055C6E2544184B4E490230A514193EB8139C7E25441D6AB5230240A514150B8E8A1CBE254419B2CD779240A51419C6B3FAACDE25441296D6AF7240A514136700923D1E25441AE47E10A250A5141CDCCCCACD1E25441F6285C1F260A514114AE47F1D1E25441BFDA1979260A514187BA2256D3E25441E08711BA270A5141F5097752D8E254410528EE8B280A514158884D8FDBE254411B3CBF1F290A5141FFAF97D2DDE25441713D0A072A0A514133333353E1E2544114AE47112B0A5141A4703DBAE6E25441000000202C0A514148E17AE4E1E254418AAE84ED2D0A5141C11B64A7D9E25441B8E27DF72E0A5141ABD130E7D4E254412820D3E32F0A5141879526A2D0E25441A2E9BF39300A5141434E670CCFE25441D84F52B42E0A5141BC9B9436C8E254414C7601A4270A514181E393C4A8E25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>971727 - 403942
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000C000000010300000001000000EB0000001508528B1EA35041EDB842CB93475541F3AE5BB21BA35041A01A4E5299475541037484C61AA35041D3386D3F9B47554181E8CBAF19A350419D4830AD9D47554153B2185B17A35041987AA719A24755412685E09B15A35041CA43D5AEA5475541E18504A013A3504153428DA6A94755418D6BD17012A350410417922CAD47554194CFDB9A10A35041BA5930C5B2475541B3EEDB1F0FA350419D76C43DB7475541046D19790EA3504192E0B4FEB9475541EBC8D1FF0DA350412E2CC93EBC4755414BB5A86B0FA3504180FD4877BE475541688BF5F90EA35041939DE79EBF475541EBC8D1FF0DA35041A1C2CDBAC2475541BF6D3D7D0CA3504187116748C6475541DDA3EBE30AA35041010C76EECA475541E2BE42170AA3504152DDF526CD475541B15F054309A350412EA39E6ECF475541A9A8B83908A35041E47B4C46D24755416F922E5C06A3504141A00E5ED74755413765F69C04A3504108E75548DC475541C2EF2EEB01A3504143A364E4E34755416DECA99D00A3504129F2FD71E74755410D00D331FFA2504172762162EB475541DD89E77BFEA25041F7EF9165ED475541E62986A3FFA250411762D4C9EE4755417ABE4DDA00A35041C8CCE88EEF475541CB7CCFA901A3504135B20E2BF04755418039C41A02A35041CEB8B88BF04755410342C89202A35041625B1073F14755411C785ADF02A350416D6EEF34F2475541B40EFBC303A35041B96532DCF24755413D9B34EF04A350416B56CB22F3475541CE669DF005A35041AE57E60AF347554194D470D106A35041AA1498D4F24755419C5924AE06A35041A3936708F247554181DBC50107A35041BE546612F1475541AA620D3E07A350411E2FCB66F0475541DF656BCD07A35041C73788BFEF4755415538DDF807A35041C507F2FAEE4755411A123D6607A350415B6E7A44EE4755415128533206A350415FA7A299EC47554171836FDB05A35041A6E678C7EB475541E0A5CCC605A350418614AEF3EA4755411401357606A35041542DF165EA475541BA86197107A350410998ED3FEA475541BDEF2B8108A35041188748C6E947554123D2DB6C09A35041A44F1091E9475541B7D20C8B0AA350414FC40BFCE94755410075C3700BA35041DDBC698BEA475541484423130CA35041FAF7F278EA475541BF8B0A5B0BA35041E5E97F57E947554191808D6B0AA350416C4962B8E847554151C3B3E209A35041D6CFD35CE74755417426EFEB09A35041B710C1FAE5475541D7A7F72D0BA35041F32446B4E2475541C3C773AE0CA35041B93D3B86DF4755410ECC9B6D0DA3504100DABD44DE4755410211A24A0EA3504164413E9EDC4755415C3235060EA350413A257FABDB47554119CD659D0DA350415CF28F3EDA475541A44078780DA35041BE54A4F7D84755413103F8E90DA35041D626487BD8475541B40BFC610EA3504105E3DAE4D747554158E00E1D11A35041F72CBE49D44755413526E75B15A35041D9674409D64755414D85F86A19A3504176CD9E02D647554133946CFB19A3504147604508D54755411077B5F819A350414B9E004ED4475541D5B03EE619A35041E379808AD3475541BD9451131AA35041E0984A85D247554196E12A4A1AA35041CDA222C6D14755415323D3971AA35041A1116CE0D0475541FEDEFDD81AA3504115441125D0475541A1CFF0361BA350411C5E6F7FCF47554121E9B0981BA35041C7CDD7F9CE4755419F8724D71BA350411CA83C4ECE4755414C32932E1CA3504161BC0FA8CD475541B227475D1CA3504193544526CD475541E75684791CA350416C638907CC475541679DED971CA350415F8C5293CB475541A76DCB631CA35041BABCBD8FCA475541AFF27E401CA35041183077C2C9475541DE83E12F1BA350419E8F5923C94755418DFB83BD19A3504188BD8E4FC8475541EF76B78B18A3504122D04D1BC8475541585A04B916A35041EC541669C8475541B289C6A815A350413B84D858C747554183D5C13115A350417B3FC30BC647554183D5C13115A350410298F644C447554101F8460415A35041F1400B14C24755413F29281516A3504181508B56C1475541E3F2E73817A35041D2E8CA1AC14755413B6C851417A35041A37B7120C04755414EC5596417A35041B2C77837BF4755416C657CEA17A35041DE8F1D2ABE47554144CCFA9A18A35041EE42D062BD4755414A09E21719A35041C1FB0D9CBC4755414761EC3719A35041E2B566BDBB4755412F3139DB17A3504139840391B9475541C22320A318A350411820F21EB8475541A0594E3A1BA350419FA33C12B5475541C31C52D91EA35041CE509CB2B3475541970B899E23A350417B522273B3475541F1BF11A425A35041F2169DFDB34755413A1C448326A350418FAFF553B44755414D7518D326A3504140884338B44755419A94633527A35041525341D3B34755418B17CFB827A350413902807BB2475541580A567628A350417F786B06B14755410EC74AE728A350418B996F49B04755416962AC9C29A35041B0F3C231AF4755412F2908C729A3504141FFB1E2AD475541AF9C1AA229A35041335F90CBAC4755412455E75329A35041212DC0BEAB4755415185A29928A35041E4CB784DAA475541AA5846E826A350418F3BE1C7A9475541A9B1CE3126A35041FFDBD716A9475541FEAE55BA25A3504180D2D40DA8475541281D76A624A35041E55FEC9AA6475541507073EF23A35041E9EC07A0A5475541C5E2BB9A23A350411955A759A4475541EFF7533D23A350413B22B8ECA2475541CA4C4CD423A35041FEC0707BA1475541950A0B7524A35041068C47C69F475541C64A508125A350419B29E56C9E475541CF767B1426A3504120221CAC9D4755419CDC2F9526A3504112E439169D475541E1CF4F6426A35041B07C6B1C9C475541FFC8FA3326A35041FED59FA49A475541C77E9A7426A350415C310E759947554192AF86D826A35041629ACC8E984755418278766227A3504150BCEF3198475541050E4D1728A35041079CE3FE97475541BA17B3CB2AA3504197C1BB199247554110BCB10A2BA350416CE1A47491475541B8E98BE52BA35041B0F0E4DD8F475541260B6BA72CA35041D54A38C68E4755417F7104402DA3504133BEF1F88D47554182DA16502EA350413633C29B8C475541AEB0CB222FA3504123EE391D8C475541DE1CF0BB2FA350418555E1C68B47554189AC3B7030A35041CB329FC38B475541FA02E34E31A350410221023A8C4755418040AFE331A3504121DB81AB8C4755415E71E74D33A3504185A441868B475541D19B639933A35041B0549B168A47554162C7F51A35A35041B1B12057884755413E7DE16136A35041FF59B59E86475541B7B8659D37A35041D4DBB62A854755412567179C38A350417714E3F78347554165B1C36139A3504121BB60CF82475541D0568CD039A35041B110449F8147554123803EEC39A35041F40CCC968047554193A29BD739A350410CF2278C7F4755412843576F39A35041470B67867E475541BB65A4113BA35041BA1198A17C4755415623FF703DA350414EF4D4C17B4755418F81843B3FA35041F15DF1AD7C4755410D3A9DF33FA3504158BE19BF7D4755419941234241A35041C58700EA7D4755412738EDA642A3504128EFA7937D4755416D19D36243A35041D1A8042D7D47554136E84DED43A35041F14A12EC7B475541B313946844A3504185DEB0017A475541994FB1B544A350413868508677475541D4BC9F7E45A3504101131B9E754755413D47454A46A35041DB3417F1734755419392BB3F47A3504105E5708172475541A64C833F48A350414948A49A7147554141FE46C748A35041D2832910714755414F07305749A35041A58BC708704755411F15DAB749A35041BFD7CE1F6F475541BDCF86CF4AA35041407545766C4755417B57B3234BA35041D687DA0F6B4755416BDA1EA74BA350410087945F69475541F117EB3B4CA3504102E9AC9068475541B28E5BA64CA35041598CD53767475541AFE665C64CA35041F4F497C9664755418A68071A4DA3504127EF0CC9664755413DA9E5374DA35041D0E4EA5F65475541ADCB42234DA3504130BABCC3634755411A46AA2E4DA3504124DEF25E624755413F51DB174DA35041FFB5FA9260475541AF000B404DA35041855FAAC25E475541A211C7294DA350414ACCB9945D4755411C2D83DE4BA350411B0B6DEA5B475541605F867D4AA350413B5E1AEA5A475541EAE59C9B49A35041E62A2FF55947554127C7365149A35041B4E132E658475541B23A492C49A350414C0C13E25747554181A17BD648A35041648AC3B556475541F46BCEA148A35041D80BC9B9554755411EC7EA4A48A350417BF594C7544755415E97C81648A350419D24E5DB534755413B606C9A47A3504141755C0B53475541A2569EF246A35041E1D1E5C351475541D4D644F845A35041E5596ED84F4755410F83169145A350415E2C0EE44E475541FFEBDC9A45A350411900C9D74D475541472E6A0046A35041EFD5BD134D475541B57B284F46A35041D96532C14C475541A8A689B246A35041A50412A04C4755419D79E0F546A35041D13389044D4755416575043D47A35041972D027C4D475541394549F747A350418324224B4D4755413EC97EAA48A350417597DFF54C475541ECB9710849A35041F8CBBE824C475541EFC25A9849A350411C62BAB84B475541CF673EEF49A3504111007B374B4755416D7B73504AA35041E6860FB44A47554128E87C014BA35041C77D2F834A475541DE6A047248A350413A98896549475541F8F4BFF942A35041EC08147E46475541C5D6A00C41A3504186EDC26D4A475541B92B621A3BA3504134AE0B9F4F475541BFF08A2E3AA35041B2434052564755415DCBBD8138A350410E807E2C5A475541D69E421537A35041E73004F05C47554164B44C5436A3504159F793F25E475541F1E4451335A35041AF03CC286247554132BA932533A350414A77BE6666475541CACF9D6432A35041C519E8AA69475541DF3589CE31A35041ED3707986B475541A65241CD30A35041290E5A08704755411F26C6602FA35041B768B7CF75475541DD66E41D2DA350419823B92F7E4755418CA68CB52CA3504160CFF2007F4755419AA702DB2AA350418B75014981475541AB5562F725A3504160D8CEDE86475541AB4B3E2522A3504155824BC28C47554187CEE18D20A35041D0247506904755413F4AD7361FA35041518CC75E924755411508528B1EA35041EDB842CB9347554101030000000100000041000000131093FC54A35041F847E76D4847554122D475AF54A350412EC152F148475541B20AA10D54A35041FFBACB68494755416679A61153A35041A20B6AE849475541529606D958A35041EFF08B0B4D475541115E12E259A350418B592BB14A475541C07D36035BA350410CCA139F484755413F0D4E155DA35041897B2EC942475541DA8CD3965EA35041ABFC9D443E47554120FCD7B05FA35041697935D13C475541BDB34B0363A350417D367C35374755414FE301B564A350412797D29234475541DC6AD07E66A35041E93FAF7731475541320A7A2169A35041B240A4742E475541C9E117BB6AA350412A61BD922C4755414C1917B56CA35041A729BE982A4755417AC852E86FA35041A612D8BC26475541B66F45D372A35041B04BC1B022475541D526CA4E76A3504109B555531D475541585EC94878A35041D1B54A501A4755415D06B13078A350418566707D174755410CF8089A71A35041CFD74D681247554132F3305C70A35041957B872412475541642C892B6FA35041506C47BB13475541C645FD866EA35041CF67FEF21447554116AD14496EA3504110A0558815475541FE2F34C66DA350410D7552B4154755411B5688526DA3504118343EC6154755410AA5A9E26CA350411051F5C81547554172FB04BB6CA35041C9607F5A1647554177A478C46BA35041419F84C817475541F3DA571C6AA35041A9C8977C1947554157821CDE68A35041B26113AB1A475541FF8CB78767A35041614C5FC81B475541D6FC992466A3504190DC77221D475541EDD94E1665A35041D70188931E4755417697999C63A350417CE1006E2047554118FC289762A35041775EB2A721475541D16988A060A350418D19570D244755419BD8B0955FA35041B88D6D602547554122FD55DA5EA350419AFE17132647554177B4585C5EA350416E28274F27475541DED669415DA3504120E2D188294755417E5E4A8F5CA35041E4582E8C2B475541E36538D15BA35041FC5A8F242D4755419A5054285BA35041B3F0B5222E4755413AAB8BB95AA35041631DF7B62E47554116A1D8F959A350418B1CFFA62F475541D1666AF459A35041CB5E7C1D32475541C6D997B759A350418C56E29C33475541C16F077E59A350413D47A233354755418185843859A350415812C71E36475541068F06DA58A35041C2FA9E94364755418427570B57A35041408FAAAA374755415E87E87E55A3504159E06B02394755414551563255A35041C6BC31EF39475541D3F9302A55A35041210AA28E3B4755412858AB6255A35041105C82463D475541938A460E56A350414AE14DF33F475541964CE16756A35041F95C169741475541698F53E556A35041BEF909CE4347554166CDB88B56A350415D0CED0745475541A3DBFBFD55A350419C318C2B46475541E3AA0F9A55A35041E2C47C5947475541131093FC54A35041F847E76D48475541010300000001000000250000000D3C14F747A3504167D9CF9A3D4755419E39949646A3504109CCB90640475541C80A9D1145A35041C6B658F842475541B0E1EFF650A35041A3BCE2D848475541000A24E951A350413F9F2F4E4947554186D4C2BA52A35041AC9F2BD648475541CA40335A54A35041CE7F1B2B484755419F58447454A35041368C293C47475541002AEC6F54A35041793951744647554115B888DC54A3504123420ECD4547554130DD5E3F55A350417E2D189B454755415E14BBBB55A35041BA6CEEC8444755416B03FFD155A35041EA288132444755415E14BBBB55A350413EEB9A24434755416DBEF8F454A350412587FA0A4147554122BAD03554A35041D10488063F4755410A57952C54A35041F2B94D373D4755418A8359D153A350410D190DC03B4755414F4AB5FB53A35041387573A0394755415803B3CB54A35041ACF678A4384755417B54B4C155A350416663887637475541A7FDBFD756A350411B6C45CF36475541D8CAD72058A35041669A7683354755413D4D5E8C58A3504118243D5834475541F08D3CAA58A35041CAAD032D33475541F0006A6D58A35041C5EB97223147554178CC866858A350411964BDF52F475541BB39E8935AA350411751CB762C475541C3D4796853A350416288D8CE284755414B67F56951A35041057BC23A2B47554196525FB44FA3504196E0FBBE2D4755417CA64D3C4DA35041301C3E7F31475541C0BBAE4A4AA3504120F7467C354755414802873E4AA350414B3009DC37475541741CE80D4AA35041A1832C0B3A475541309FCD1A49A35041883FD4773B4755410D3C14F747A3504167D9CF9A3D4755410103000000010000001C00000056BFAFFD4AA3504187B13D504C475541852433604AA35041585C56084D475541CF4D997549A350418CD055EB4D47554189262FB348A350414696EB5D4E47554196FBCD4F48A35041E3C798924E47554168379F9647A350412B3299E44E475541B14F428C47A3504180A6562C4F4755418D10795947A350417EE4D6A24F47554103B5182B47A350414DCD4E5B5047554143FFC4F047A350417408FF9851475541B43BC75548A35041488FBA6552475541E17223D248A35041401344DA53475541EA58CA5E49A35041082A9BA4554755412A16A4E749A3504108420D5757475541B8D823594AA35041057EDCF458475541538AE7E04AA35041A09CD1B75947554107D330654CA35041484809D05A47554136D8693A4DA35041FD2E8BA15B47554144BB50794DA350416381CAC35C475541052ED3C84DA35041A0BEAB325E475541286938384EA3504104BDA07B60475541DBF97EB24EA350414260E568624755411F85EBA150A350418FC2F5C85F47554185C0404E54A350416E36D00556475541713D0A0757A35041CDCCCC1C51475541333333534DA35041CDCCCCBC4B4755419E8E0FA04BA3504133473DFE4B47554156BFAFFD4AA3504187B13D504C47554101030000000100000018000000C856401F43A35041BDAC89157E4755417CEFEF2842A350418D99C4C37E475541FB4E5FB740A35041A692C9617F47554171F6567B3FA350418DCF050C804755415839B4303CA350411F85EBD1814755411B2FDDCC33A350414E6210C88D475541C976BE3F2EA35041D9CEF7BB8E4755419A6182552BA3504152CEBE03964755416FDC1CE82AA35041FD2BAD0D994755411BEFB17E29A3504197E4E1DB9A47554121B0722828A350417F6ABC449E47554158EDF30729A3504169D57C95A347554123DBF93E2AA35041986E12FBAA475541D6D5F0E82BA350414C459500AB4755416F9079DA2CA350412B055500AB4755410C65B63630A35041F4624F60A347554138DE9B6332A35041B1BA7C589E475541DDFFB26D34A35041D61F80219A4755411379989A36A35041E73A8B989647554184D007E83BA3504137A0ED368D475541AF49ED143EA35041AC632A8B894755412257C3E53EA35041A399E1A38747554148C70FD741A350410327594F82475541C856401F43A35041BDAC89157E475541010300000001000000D1000000AC05132CDDA2504130FB8C8940485541074DA4B6DFA2504103633732414855413BDF4F8DE0A250412FDD24E641485541E3A59B4CE2A25041DBF97E5243485541D14ED964E5A250413781EFF23D485541F9FB9E8CE7A250410088E00C3A4855414443D26FE8A250411F460C6F38485541D86131D1E8A25041198E88BC374855419F428905EAA250418123E09C35485541D8BC058BEBA25041110B29EB324855419B55E171EDA250413BDE87F82F485541F77A9220EFA250417E0A59722D48554172B79485EFA250410646DEE72C4855419CB0B52BF0A25041010937B92B4855410E4ADA7CF0A25041D022803F2B48554109ED2A84F2A25041D40F28D32748554160E5D04AF3A250418D976E52264855413532401EF5A25041047E052124485541220D76A2F6A250410156C34E224855419E676292F8A2504108F222FB1F48554173D1547CFAA250413C15B0AE1D485541BE9F1AB7FDA250410E2DB2CD194855410014EB17FFA25041E9045D921748554135F37F5FFFA25041767D721E1748554173E7765900A35041CE38AA8915485541596F501C02A3504156E993AF1248554108AC1C3204A350410C022B4F0F4855412961602205A35041C94A9D050D485541EE463C6505A3504110C8AB620C4855417E25468806A3504190F95F9D0948554152B81EC508A3504114AE4729044855410EA301DE0FA35041BEB21C0EFA475541246093EF10A35041511D82EDF7475541A0C5F34412A35041B3E90A44F5475541CDCCCC4413A350413BDF4F45F347554108D029D713A350412697B7BAF0475541992E217314A35041867B8065EC475541E5D9C0E815A35041E019C87BE74755410B46E58116A350419DB1DA21E647554183F3EFDA17A350415C33FD16E44755418941606518A3504154E3A5DBE2475541A47E874D1CA3504168E6CB55DD4755416CE1C1511FA35041551D6CC2D847554162E8628820A35041B9E198ACD6475541EAA7687D23A3504125A88AEED04755413C9F45A823A35041F4A08304D04755414A741A6624A35041B143A7BFCD475541A78EBC8E25A35041A2F4FD33CA475541C49CBD8E26A3504121C5A54BC547554164E114BF26A350414631AD27BD47554122BFC4C126A35041D766A768B94755415C6130AE26A35041E1218E7EB74755411EC10F8C26A350416AACB375B7475541CAC045F425A350415EED6C8EB6475541DF4F8DFF21A35041B29DEFB7B54755415419084E21A350418D1CF5A5B64755413674775321A3504182661F42B747554131BAF6EF1FA350418720A0A5B847554107FF2CD01EA350418D9CA092B9475541F175C2A71EA35041DC926433BA4755414119595A1DA35041F318AB38BC475541A4F494541CA350413399DADABD475541F28E7C8A1BA350412D46B61DBF4755419EEFA79E1AA35041B4C87696C0475541D08BEA3618A35041B5E1CD3FC1475541A67909AB15A35041E557B9F5C1475541B34BADE715A35041A63067CDC44755418AA3BC1C16A35041F71895E7C647554147E0741E17A350410FD48A42C74755410334DB0118A35041C370A41CC747554118BDCB4719A350416B3B1ABAC647554160EEAC581AA350412AC185B2C6475541C1DA83C41BA35041A783A9ACC7475541B1BF2C911CA350410C8BD74BC847554121C75A301DA35041B02348D4C8475541550536781DA350419AA0FE9CC94755414D80829B1DA3504149173450CA4755411E015ABF1DA35041F6541A5ECB475541C0D7A7A31DA35041FEED958CCC4755417B57B5971DA35041E1768BA1CD475541DB9B8A561DA35041E0147370CE47554155D1EB841CA350416A6DD638CF475541544419481CA350411BFC564ED0475541D13B15D01BA35041BCD7FDDAD0475541DCDBEB4F1BA3504170422105D2475541D9A623331BA3504139BB9000D3475541D91951F61AA350413D11BEF8D34755411E54BFFB1AA35041EAB0E387D547554100FA207C1AA350416FB340A8D64755411AD1077219A3504192124ED1D7475541AF571E9018A350419D252D93D84755415C4170B717A35041B622FB3AD94755414BE9199116A3504186B5C890D9475541FF571F9515A35041D3621719DA4755415770C9C014A35041ACDD990CDA475541A6A3968F13A350410875B02AD94755413F1A6FED11A3504196063C48D8475541CC012DB510A35041F642E01DD8475541ADBA92780FA350417F83F883D8475541356C0AFA0EA35041165F9F10D9475541ADA0EDFE0EA35041955A5648DA475541B39750750FA350417DD739D4DB4755411A01B0900EA35041A936959DDF47554114362CA70DA35041A33482A5E0475541EEF6B0CA0CA3504191D0567CE247554132B686A60BA35041C485919DE4475541FD6CA4100BA35041A93E44C7E747554175A8284C0CA3504151EA7BDFE847554153EC64F90CA350418FF7CFA0E9475541D99C5E510DA35041111E8AACEA475541E07A9A770CA35041D8C8A264EB475541B054FAE40BA350418893A477EB475541E5963B440BA35041DC5A515AEB4755414E1BBE020AA3504144C99EECEA47554190329EFE08A35041EFE9A6A7EA475541E8D71A6708A35041357804E5EA4755419DD3F2A707A350415875D28CEB47554169A533B506A35041EBABEB61EB4755410CDCAA1907A35041AF1DB574EC475541A23D83E107A350416C212D7DED4755416ECF62F508A350411EC8F8F4EE475541DA5B041408A35041916197FBF0475541EA1FE7C607A3504104946390F1475541DDBD75ED07A350419AC3FDCCF2475541058B413008A3504191CDFC5DF3475541773BEF8107A35041945A3FB3F34755415B9C4A2506A35041B91B650DF4475541802DAD1405A35041E9EAD638F44755412FEBD3A803A35041EE40DDE0F34755417699ED9A02A350414E1B4235F34755416A1E557101A350417E34812FF2475541728963D400A35041DB32436FF14755416FAD230100A350416D695C44F1475541C9B41143FFA250410CCB9F3DF247554112C4D2DEFDA2504107DC6B07F44755412FB6DC77FCA250414719568DF5475541A64348C6FBA25041B268D924F6475541F314A4BBFAA25041287748CEF64755417CC79966F9A25041EAD0C67EF7475541497F35FAF7A25041948FB608F8475541D89BBBDEF6A25041149E25B2F847554197C43CDCF5A250416F356320F94755415BF72493F4A25041DB4DD15AFA4755414FA86BF6F2A25041C98766B0FB47554109F42EF7F1A25041B2BA551DFD475541C8D62BEEF0A2504161857E80FE475541F8C8818DF0A2504189D3E62FFF4755415A287AEFEFA25041792034F7FF475541E2069B2DEFA25041E42057CF0048554199F0EC54EEA250414C4A6A830248554168507EC8ECA25041980F2BBE04485541244437A9EBA25041F8B2A10506485541C49E6E3AEBA250411153C31C0748554176D8AB21EAA25041FED64C9108485541F2E2ABECE8A2504140DD21BA0A4855414C89A67EE7A250418DA2E2F40C4855413104A79BE6A25041AFEE37AC0E485541CBAEC9ECE5A250412A5840EE0F4855412F29E5F1E4A2504177B62EB710485541344586BEE3A25041FEE38EAB114855416BE938F7E2A250417E3CF27312485541D325EF55E2A2504176BBE8F7124855412561DB84E1A25041397C12CA134855412C13381EE1A25041C26DCA7014485541395B047EE0A250414B10225815485541D68073F2DFA250414BC65489164855412803AE57DFA25041F1F2951D1748554142934617DEA250415A7EC102184855419C808FDFDCA25041E7140761194855411EAED1ADDBA25041C1F65BC61A4855412F0005C7DAA25041EC745A3A1C485541570CB4D9D9A25041825594B71D485541FC705224D9A25041DF1C68EA1E4855417ED2DEE5D8A25041116664F91F485541D5A4040BD8A25041715DCEF021485541CEEF87FDD7A2504171D720D922485541466F631FD8A25041E4D2FCE7234855418FAF750ED8A2504111504691244855419E2DFB8ED8A250417F1AF5AA25485541C11D09D5D8A25041FA349D2D27485541BEE840B8D8A25041F6A7812828485541E655E37AD8A25041EC6220FA28485541F0F5B9FAD7A25041A1834F052A48554128FA95B3D7A25041E8DA97E52A485541DDA90861D9A250419633252E2B48554122661B3DDAA250419DAF251B2C48554127EA1A50D9A2504180EC5CD52C48554167ECACC8D8A25041A169A67E2D48554167ECACC8D8A25041EF6339D12E485541206E1A63D8A25041AC9F27CF2F485541702A2D3FD9A250418FDC5E8930485541BE24C091DAA25041FA99BA21314855410C1F53E4DBA250414C184D87314855410A5DD35ADCA250414F104E61334855419F9F77C2DBA250410A8ABCD534485541BC624008DBA250411006BDC235485541B7B17C48DAA250414D43BDC036485541F15D4EE1D9A250415A819F5637485541CE26F264D9A250415086324738485541FE184804D9A25041EAF387C93848554176A6B352D8A250412CE2EA3F39485541D0E1EB87D8A25041705D900B3A4855418B3450BFD8A25041AFDFDBBF3A4855417E5FB122D9A25041E55847433B485541193E1E67D9A25041C37857EE3B48554159C7ADFCD8A25041C7CE84E63C485541EC262147D8A25041DA5BE3E63D485541BAE6E307D9A25041A81BA6A73E485541AC05132CDDA2504130FB8C894048554101030000000100000023000000665470E3CBA25041A4C27BD1374855419A371642D7A25041D6D5511F3E48554155D1C8AFD7A2504171DCD42F3D48554135E9D9C9D7A2504189C130253C4855417572695FD7A25041C048C1293B48554167832549D7A25041733933203A485541CAD0E397D7A2504119FFA142394855413DFB5FE3D7A250412068605C38485541863DED48D8A25041FD209E953748554146278B76D8A25041838080F636485541C3C5FEB4D8A250414397892036485541F19C31B1D8A250418E27FA5535485541DB81C207D8A25041F45765523448554155B72336D7A25041829A90B033485541E19EE1FDD5A250417EA6A239334855414E72D152D5A25041BA396C17334855419DBF439BD4A250412C410E883248554163137202D5A250415E727194304855410EE941BDD5A250413D39D44E2E485541DE6919E1D5A25041DBB9BAF22C4855413C67EC6FD6A25041FEFBC2782B485541D23BF2FAD6A25041704D32B829485541A0A1A67BD7A250412D96E49E2848554135E9D9C9D7A25041EF8890DD274855415A234C11D7A250417A64FBFC27485541CDD88433D6A25041755E407E27485541BCC653B7D4A250417A64FBFC27485541A331C5FBD2A250417A64FBFC2748554108526F62D0A25041A7885DF52A4855411964A0DED1A25041B294D3F22B48554100CF1123D0A250413C62F80F2D485541F1398367CEA2504163809F892F485541CD987EAECBA250412301FADB344855415160E84CCCA250413F132B5836485541665470E3CBA25041A4C27BD1374855410103000000010000002000000065C3B9C5CBA25041161FF63A38485541C515216FCBA25041DFF83B7039485541404EB7D0CAA250418BDE4C883C48554138CB5991CAA2504147D68E1C41485541AEFD3474C9A25041E5328776434855415B6CE630C8A25041DA20D3EA454855418E6B6A00C8A25041D96FD68E474855418EEC2537CBA25041028729E14848554151D2CBBECEA25041B8BFA34E4A4855418BE5B314D1A25041381807174B48554157D7BCA8D2A250413FE897A24B48554192FD5C3BD3A2504100C88B6F4B485541426A66ECD3A250412E1D73B74A48554153A81799D4A250418622DBDF4948554160975BAFD4A250410D38C92149485541DE35CFEDD4A25041BACDC8CF484855414DCB599CD4A2504186BB086E48485541159333F0D3A2504188356C0148485541E8757CEDD3A250411171F1764748554128A68339D4A250415EB76D8D46485541E5E72B87D4A25041D8A158FB454855411BA43BE0D4A25041BC2A27C04548554139FED95FD5A25041CDDDD9F844485541BFC87831D6A25041E7DA8050444855413731A629D7A25041A8B5E12C4348554150673876D7A250410122F5764248554142EB2123D7A250411A1F9CCE41485541FAA894BDD6A250414DB7D14C414855417FCCBBD8D6A25041E42BA667404855417D24C6F8D6A25041585E4BAC3F4855410838C830D7A25041C86D057D3E48554165C3B9C5CBA25041161FF63A38485541010300000001000000310000009F32E5F2DFA2504169030FA442485541B9674451D8A25041C54A98E73E4855416AAE2C52D8A25041CBDAE6CF3F485541FC2E5130D8A25041AE171E8A404855415879BE8FD7A25041F8D7D90741485541D72D0874D8A2504162158C1141485541D56B88EAD8A25041FED33066414855414A29E482D9A25041B2D19EED4148554192A776E8D9A2504171CF0C7542485541FD64D280DAA25041DACAE88343485541D925094EDAA250410486B2A344485541F8AA511DD9A25041C483202B45485541F4F0D0B9D7A250419CC057E54548554137B5E2BBD6A250417D3B0F16474855413CDA1933D6A2504162618E354848554194993B15D6A250413C3E50AA484855416997A7B5D5A25041E382DCA049485541E09740C7D4A25041404AB0D34A485541128B1490D3A25041E67B84584C4855419F194A0ED3A250418314DDAE4C48554193F7392ED1A250412B5942554C4855410D39B262CDA25041D10BD2B54A4855411F490D15C8A25041E157B27C48485541E0D3FFEBC6A2504188E60B4248485541781CB163C6A2504105B22CB548485541CDD3B3E5C5A2504148697ACE49485541620142BAC5A25041F5654CEE4A48554151C3900DC5A25041E074DE6F4C48554133C27AD7C3A25041BB6E7E374E48554150CE29EAC2A25041524FB8B44F48554148BCA3D0C2A25041783B083351485541D22FB6ABC2A250417B1C3E38524855413898979DC2A25041A0DD6392524855416CDAD8FCC1A25041D77C664953485541FC83311EC1A2504134443A7C54485541936CB915C0A25041086E49B855485541E88C6064CCA25041316412BE5B485541AA220398CDA2504186BFEEB2564855413108AC1CD0A25041295C8FEA4C4855418D976E3AD1A2504183C0CA494D485541EE7C3FE5D0A25041560E2DBA554855414B777481D7A250418FE97F7C59485541596E25B3D9A250418140E9C354485541002854A1DBA2504183E7148350485541B7A56542DDA250416DA9E44C4D4855418275BBB4DEA250413F398A984A485541A3FAF5C4DEA25041398106E649485541643BDF9FE0A250410E2DB2D5444855419F32E5F2DFA2504169030FA4424855410103000000010000002B0000006E02E7A0AEA25041B555877974485541B0C03E53AEA2504131D2472D7548554120292045AEA250411E43F2DF75485541501B76E4ADA25041FC62028B76485541BD7B3876ADA250410AA1E420774855417B0BD030AFA25041BDA9C8C977485541141EB67CB7A250417DA155997A485541D37E1065BCA250414FFFDD777C4855416B879A47BDA250419429AEF87A48554144A7C28BC0A25041E452CF4F76485541BE17BEDAC2A25041479AAE0373485541C6F1EC4DC5A250413FCCD8836F485541B0CFB775C6A25041408EE0BF6C485541035E473EC7A250414A055BB26A485541880BA356C8A250419F77BED3674855414C270649C9A25041BB58A058654855418CCAFA62CAA25041BD96656D624855411656A244C4A25041ADF1C0855F485541A7781C22BEA250413BBA3AB05C4855416B915F5FBCA2504163A1D0ED5B4855410AEC96F0BBA250413840D71C5D48554190F51892BBA250417ED3C74A5E485541CF0B7B64BBA25041C79F071E5F4855411A0902EDBAA25041112253D25F4855412E49AFECB9A250414D1CEF2161485541DB320114B9A25041CFA4E8AE62485541081C6E23B8A25041A9863D14644855417FA9D971B7A25041F7FC763F654855419B28B647B6A25041CAD2B91B67485541A32097E7B5A25041F3258E6B6748554158A94165B5A25041B1ED5D2668485541FBF2BC0CB5A250415E88F0C468485541BDF77DDDB4A250410C8A2E8569485541A2D2A77AB4A25041BB4FC4F769485541222C15DCB3A25041ACB45C216B485541894E26C1B2A250419480A06C6C485541CB392730B2A25041A9F5BEAF6D485541C0D83380B1A250413461013A6F4855413CFC0E95B0A25041A3A4724870485541EEEFC775AFA25041C5F0C7FF7148554181E88D2DAFA250417ABD035B72485541034A1AEFAEA2504152D66D1D734855416E02E7A0AEA25041B5558779744855410103000000010000006F000000CD446CAF91A25041374831CC964855419AE9030091A250419C900E7B97485541074AC69190A250419B7D560998485541A94CF30290A2504120DD5FBA9848554149EE78CA8FA25041F1D6D83199485541610A669D8FA2504182FA39959948554173763E308FA250411E80DA799A4855414D97ECD38EA250416294D4239B485541FA27B6B18EA25041F7FA83BD9B4855416049496D8EA25041D745973C9C485541FA0D11388EA250413068DDB79C485541AA46D0F58DA25041256D70A89D485541A4DC3FBC8DA25041D20703479E485541EF1F4B4B8DA250412F6D97F89E485541145825F18CA25041061F56999F485541CE0312728CA25041E1C402B1A0485541B1F0C1288CA25041DD86476BA1485541D8D091AE8BA25041841A3421A2485541C86537458BA2504123CBD7D9A2485541087C99178BA250413EF3A855A3485541400D480D8BA25041938340DBA348554172C138068BA25041D635FB03A4485541CA805AE88AA2504171A35086A44855411DAA0C048BA25041C07BA2E2A44855415B321E708BA250414806AF67A5485541635E49038CA250414E12E840A64855413FCDE6138DA2504140D9989BA64855419A0FC07F8EA2504148BCE198A64855412E3CD02A8FA25041C5D662CBA64855417B1597868FA2504156FAC32EA748554156DDBCE08FA25041912B75DBA748554124D0439E90A2504184671D29A848554172EF8E0091A25041F3921C85A7485541A2A201D091A250414BEC775DA74855418824A32392A25041FA62AD10A848554139DD07F691A250416D13D59DA9485541EEDA757D92A25041E5C83110AC485541CA9BAC4A92A25041A204200EAD485541F456766A93A2504166BC0EF9AE4855411F12408A94A250413EF945B3AF48554114AE47E193A25041C1CAA195B048554117D9CE5F9CA25041508D972EB5485541AE7AC4179EA250417A7E8524B34855417D14C38B9FA25041830DB421B14855417BBABC18A1A25041771E0BFBAE4855417A60B6A5A2A25041B621128BAC48554187163AF9A5A25041C6EEAD2DA7485541EEE6AFD1A7A25041836E4E21A448554109C537FEA7A25041FD09D9CFA3485541AFF193AFA9A250417C81B8F2A04855415330767AABA25041BCE6D7B39D4855415A2E7A27ADA25041E0C10DC89A48554160AB84CAAEA25041DA748277974855411473B735B0A25041327E502C95485541EA9A45C9B2A2504128AAADA59048554108324C11B6A250414ADD02E28A48554120F918DAB7A250412ED78DBF874855413299E29CB9A250416BA2A8A78448554174D40FA8BAA250410B3297DE824855418CB738D1B3A25041C369BD1C804855418ACCBD4CA9A25041344FC7F97B485541F813598EA7A250412B71383D7E4855419FECA2C5A5A25041F3382F488048554167CE2193A5A25041EC6D31AD80485541CC62E211A5A25041B154F2B281485541466C64B3A4A250416951C4D28248554153CED58CA4A25041CF0E99748348554198C1F55BA4A25041AE95544184485541DD0D9E74A3A25041629E38EA84485541DCD95381A2A25041A120849E85485541C631129BA1A25041EF347E4886485541D6DB4FD4A0A25041CBEDE2D1864855419591A30EA0A250413DABB77387485541CDC15E549FA2504129B5B60488485541898938A89EA250413317F685884855418C17890E9EA25041BBA1020B8948554151C43FBF9DA25041089EB15289485541B91A9B979DA250414E2C0F90894855414B5AAF859DA250416C7FE3DF89485541F9BDCFA69DA25041D44124228A485541E3D6AAF09DA25041734F746B8A4855416E6462459EA250412BAE5EBC8A485541879AF4919EA250412C5FFEFC8A485541FA7EECD69EA250416CE6B5518B485541029172F09EA25041779755928B4855418A5C8FEB9EA25041DC3CDFD18B485541043968D09EA2504192BF260E8C485541A70FB6B49EA25041E030CD488C4855418C312E889EA25041DC90D2818C485541D936D4709EA25041843777A98C485541E1BB874D9EA2504125FBD2D38C485541044C6C139EA250418324BF378D48554156142B7F9DA25041F6568BCC8D485541DB1DAD209DA25041E81D3C278E485541A258B4379CA250410282B5F08E4855418DCA17CB9BA25041A3F6B05B8F485541B987A54D9BA25041912BB3C08F485541265B95A29AA250412692625A904855415E45CCE199A25041A35D83CD90485541A86E32F798A25041DE8E347A91485541ECBADA0F98A2504191971823924855416663690197A250416B257AD8924855417580D4FD95A250410CB2C0A5934855416D0D5B3495A25041D8A4933494485541CAD6E3CF94A25041E3141F8794485541F45EA93594A250412A0A28E694485541C6E0FE8293A2504129F76F74954855414E92760493A250412C84B2C995485541E8C96B9292A250410FFAC81C9648554102017C0892A25041D03BFC6A96485541CD446CAF91A25041374831CC964855410103000000010000005B0000004C201D3C83A250419A85EE9DB94855411475C9CC82A250414C7687E4B9485541713E526882A25041B438C826BA4855412BA4BAE281A25041C6650543BA48554173B2FD5481A25041D5B69F4ABA48554115B52AC680A250412377A644BA4855412A56CB7580A2504187F69850BA485541542415E27FA2504114D7AB7DBA485541CF731B8A7FA250416D4852B8BA485541CCB180307FA250411C0EE82ABB4855415F7E675B7FA25041C33F955FBB4855411179C1727FA25041DA2418A5BB4855415CD6717B7FA250414E5C50DABB485541BCA719777FA25041489F9E10BC485541E97E4C737FA25041A2853C3EBC4855410778F7427FA25041D74D0881BC48554164CE521B7FA25041F3C439BCBC485541C67499B37EA25041BCE9B507BD485541C3B2FE597EA25041900E3253BD485541F8C796FC7DA25041670F51B3BD48554180C05CB47DA25041CBF08240BE48554143C51D857DA250414B9846C8BE485541DDCF69567DA25041923EEF67BF485541BA6C2E4D7DA25041890C46ABBF485541DDCF69567DA250415CCA16D5BF48554123505C627DA2504151BCCA03C0485541ADDD13B77DA25041974A2841C0485541E01ED7EC7DA2504101826076C0485541C036E8067EA250416AB998ABC048554120C20BFC7DA2504166CA3D25C1485541BE0120EA7DA25041013893A7C1485541109EFFC87DA2504188C29F2CC2485541CDC5029D7DA25041713F5C68C248554110845A4F7DA2504154B572BBC2485541DF5DBABC7CA25041131B03F5C2485541322679287CA250418ECED805C3485541A9FA32AD7BA25041F24DCB11C34855414478AC417BA250412724E325C34855411137E90B7BA25041E8651674C34855412EEA0FD57AA25041A83252CFC3485541C16FA8C97AA250412A05192BC44855418EBBB7D07AA2504154CDE46DC44855418B13C2F07AA250415EC878CDC4485541F43D3E3C7BA25041A0B6DB43C54855416668BA877BA25041E31936ADC5485541DF2970C97BA2504110BEA404C648554192B19C1D7CA250419C29C03EC64855418F96797A7CA25041CCF8316AC6485541FFD27BDF7CA25041FA52ACA2C64855411A3ED6487DA250416DD4D8F6C6485541007AF3957DA250415AA22F3AC748554173A46FE17DA25041F73A8890C7485541A6E532177EA25041840D4FECC7485541E0ABA9297EA250412D659354C848554186FD43317EA2504182448B99C8485541025C567680A25041EB8056BFC94855418E716A3885A25041B94FF3B2CB485541524060DD8DA25041655B7EA4CF4855410D818A018FA25041DCB393CCCD485541B73CBB888FA2504156F07AF8CB485541CBCB8EC590A250412C49BBC0C84855415D1C112292A2504194F27DE5C648554160A529E092A2504102A2FB88C5485541F8FB66BB94A2504151B62FF2C14855418A4CE91796A25041AE537C19BF4855411D9D6B7497A250418FB832DFBC4855419636A4579AA2504124D9BE75B9485541F80C930E8FA25041EBECF906B4485541EABC5B488EA25041A4F7F0A7B3485541396356DA8CA2504112727713B44855412DCE18378BA25041F536EE25B4485541376EEFB68AA250411E980E47B44855415FDB91798AA25041A6C0DB4AB4485541294B61AD89A250417A34B855B44855417113201989A250411DD4B694B4485541269CCA9688A2504111105FE2B4485541A870841B88A25041B8410C17B5485541E5C44B9487A250410FFDA670B54855414FA9F7D286A250410D8343DDB5485541A93DB85186A25041D70E6B4AB648554136CCEDCF85A250414ED3E5D4B64855419E4FF26485A25041B2037821B7485541BEF0921485A25041939DEB5FB74855410E58AAD684A25041711AA89BB74855418357C5BE84A25041001872CBB7485541C890699484A2504166BDFB0AB8485541902C645B84A25041007AB14CB84855414065231984A25041FB23ABA4B8485541B51DF0CA83A25041C3D32FFDB8485541E40F466A83A250418B83B455B94855414C201D3C83A250419A85EE9DB9485541
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000007EE999B471A35041D7E4643E24475541EE64EDBA72A35041BEBD85D222475541B47AE2E669A35041007967AA1C4755418032210069A35041E173CCAA1D47554168024B6668A3504116BC8D911E475541A1AB46D967A350413778D9511F47554122A29E3267A35041065B530520475541BF8AE3CB66A35041876AAD94204755413D0AD7A367A3504114AE472121475541B0EDC68B6FA3504193CBF9A9264755417EE999B471A35041D7E4643E24475541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>971727 - 420792
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000C000000010300000001000000EB0000001508528B1EA35041EDB842CB93475541F3AE5BB21BA35041A01A4E5299475541037484C61AA35041D3386D3F9B47554181E8CBAF19A350419D4830AD9D47554153B2185B17A35041987AA719A24755412685E09B15A35041CA43D5AEA5475541E18504A013A3504153428DA6A94755418D6BD17012A350410417922CAD47554194CFDB9A10A35041BA5930C5B2475541B3EEDB1F0FA350419D76C43DB7475541046D19790EA3504192E0B4FEB9475541EBC8D1FF0DA350412E2CC93EBC4755414BB5A86B0FA3504180FD4877BE475541688BF5F90EA35041939DE79EBF475541EBC8D1FF0DA35041A1C2CDBAC2475541BF6D3D7D0CA3504187116748C6475541DDA3EBE30AA35041010C76EECA475541E2BE42170AA3504152DDF526CD475541B15F054309A350412EA39E6ECF475541A9A8B83908A35041E47B4C46D24755416F922E5C06A3504141A00E5ED74755413765F69C04A3504108E75548DC475541C2EF2EEB01A3504143A364E4E34755416DECA99D00A3504129F2FD71E74755410D00D331FFA2504172762162EB475541DD89E77BFEA25041F7EF9165ED475541E62986A3FFA250411762D4C9EE4755417ABE4DDA00A35041C8CCE88EEF475541CB7CCFA901A3504135B20E2BF04755418039C41A02A35041CEB8B88BF04755410342C89202A35041625B1073F14755411C785ADF02A350416D6EEF34F2475541B40EFBC303A35041B96532DCF24755413D9B34EF04A350416B56CB22F3475541CE669DF005A35041AE57E60AF347554194D470D106A35041AA1498D4F24755419C5924AE06A35041A3936708F247554181DBC50107A35041BE546612F1475541AA620D3E07A350411E2FCB66F0475541DF656BCD07A35041C73788BFEF4755415538DDF807A35041C507F2FAEE4755411A123D6607A350415B6E7A44EE4755415128533206A350415FA7A299EC47554171836FDB05A35041A6E678C7EB475541E0A5CCC605A350418614AEF3EA4755411401357606A35041542DF165EA475541BA86197107A350410998ED3FEA475541BDEF2B8108A35041188748C6E947554123D2DB6C09A35041A44F1091E9475541B7D20C8B0AA350414FC40BFCE94755410075C3700BA35041DDBC698BEA475541484423130CA35041FAF7F278EA475541BF8B0A5B0BA35041E5E97F57E947554191808D6B0AA350416C4962B8E847554151C3B3E209A35041D6CFD35CE74755417426EFEB09A35041B710C1FAE5475541D7A7F72D0BA35041F32446B4E2475541C3C773AE0CA35041B93D3B86DF4755410ECC9B6D0DA3504100DABD44DE4755410211A24A0EA3504164413E9EDC4755415C3235060EA350413A257FABDB47554119CD659D0DA350415CF28F3EDA475541A44078780DA35041BE54A4F7D84755413103F8E90DA35041D626487BD8475541B40BFC610EA3504105E3DAE4D747554158E00E1D11A35041F72CBE49D44755413526E75B15A35041D9674409D64755414D85F86A19A3504176CD9E02D647554133946CFB19A3504147604508D54755411077B5F819A350414B9E004ED4475541D5B03EE619A35041E379808AD3475541BD9451131AA35041E0984A85D247554196E12A4A1AA35041CDA222C6D14755415323D3971AA35041A1116CE0D0475541FEDEFDD81AA3504115441125D0475541A1CFF0361BA350411C5E6F7FCF47554121E9B0981BA35041C7CDD7F9CE4755419F8724D71BA350411CA83C4ECE4755414C32932E1CA3504161BC0FA8CD475541B227475D1CA3504193544526CD475541E75684791CA350416C638907CC475541679DED971CA350415F8C5293CB475541A76DCB631CA35041BABCBD8FCA475541AFF27E401CA35041183077C2C9475541DE83E12F1BA350419E8F5923C94755418DFB83BD19A3504188BD8E4FC8475541EF76B78B18A3504122D04D1BC8475541585A04B916A35041EC541669C8475541B289C6A815A350413B84D858C747554183D5C13115A350417B3FC30BC647554183D5C13115A350410298F644C447554101F8460415A35041F1400B14C24755413F29281516A3504181508B56C1475541E3F2E73817A35041D2E8CA1AC14755413B6C851417A35041A37B7120C04755414EC5596417A35041B2C77837BF4755416C657CEA17A35041DE8F1D2ABE47554144CCFA9A18A35041EE42D062BD4755414A09E21719A35041C1FB0D9CBC4755414761EC3719A35041E2B566BDBB4755412F3139DB17A3504139840391B9475541C22320A318A350411820F21EB8475541A0594E3A1BA350419FA33C12B5475541C31C52D91EA35041CE509CB2B3475541970B899E23A350417B522273B3475541F1BF11A425A35041F2169DFDB34755413A1C448326A350418FAFF553B44755414D7518D326A3504140884338B44755419A94633527A35041525341D3B34755418B17CFB827A350413902807BB2475541580A567628A350417F786B06B14755410EC74AE728A350418B996F49B04755416962AC9C29A35041B0F3C231AF4755412F2908C729A3504141FFB1E2AD475541AF9C1AA229A35041335F90CBAC4755412455E75329A35041212DC0BEAB4755415185A29928A35041E4CB784DAA475541AA5846E826A350418F3BE1C7A9475541A9B1CE3126A35041FFDBD716A9475541FEAE55BA25A3504180D2D40DA8475541281D76A624A35041E55FEC9AA6475541507073EF23A35041E9EC07A0A5475541C5E2BB9A23A350411955A759A4475541EFF7533D23A350413B22B8ECA2475541CA4C4CD423A35041FEC0707BA1475541950A0B7524A35041068C47C69F475541C64A508125A350419B29E56C9E475541CF767B1426A3504120221CAC9D4755419CDC2F9526A3504112E439169D475541E1CF4F6426A35041B07C6B1C9C475541FFC8FA3326A35041FED59FA49A475541C77E9A7426A350415C310E759947554192AF86D826A35041629ACC8E984755418278766227A3504150BCEF3198475541050E4D1728A35041079CE3FE97475541BA17B3CB2AA3504197C1BB199247554110BCB10A2BA350416CE1A47491475541B8E98BE52BA35041B0F0E4DD8F475541260B6BA72CA35041D54A38C68E4755417F7104402DA3504133BEF1F88D47554182DA16502EA350413633C29B8C475541AEB0CB222FA3504123EE391D8C475541DE1CF0BB2FA350418555E1C68B47554189AC3B7030A35041CB329FC38B475541FA02E34E31A350410221023A8C4755418040AFE331A3504121DB81AB8C4755415E71E74D33A3504185A441868B475541D19B639933A35041B0549B168A47554162C7F51A35A35041B1B12057884755413E7DE16136A35041FF59B59E86475541B7B8659D37A35041D4DBB62A854755412567179C38A350417714E3F78347554165B1C36139A3504121BB60CF82475541D0568CD039A35041B110449F8147554123803EEC39A35041F40CCC968047554193A29BD739A350410CF2278C7F4755412843576F39A35041470B67867E475541BB65A4113BA35041BA1198A17C4755415623FF703DA350414EF4D4C17B4755418F81843B3FA35041F15DF1AD7C4755410D3A9DF33FA3504158BE19BF7D4755419941234241A35041C58700EA7D4755412738EDA642A3504128EFA7937D4755416D19D36243A35041D1A8042D7D47554136E84DED43A35041F14A12EC7B475541B313946844A3504185DEB0017A475541994FB1B544A350413868508677475541D4BC9F7E45A3504101131B9E754755413D47454A46A35041DB3417F1734755419392BB3F47A3504105E5708172475541A64C833F48A350414948A49A7147554141FE46C748A35041D2832910714755414F07305749A35041A58BC708704755411F15DAB749A35041BFD7CE1F6F475541BDCF86CF4AA35041407545766C4755417B57B3234BA35041D687DA0F6B4755416BDA1EA74BA350410087945F69475541F117EB3B4CA3504102E9AC9068475541B28E5BA64CA35041598CD53767475541AFE665C64CA35041F4F497C9664755418A68071A4DA3504127EF0CC9664755413DA9E5374DA35041D0E4EA5F65475541ADCB42234DA3504130BABCC3634755411A46AA2E4DA3504124DEF25E624755413F51DB174DA35041FFB5FA9260475541AF000B404DA35041855FAAC25E475541A211C7294DA350414ACCB9945D4755411C2D83DE4BA350411B0B6DEA5B475541605F867D4AA350413B5E1AEA5A475541EAE59C9B49A35041E62A2FF55947554127C7365149A35041B4E132E658475541B23A492C49A350414C0C13E25747554181A17BD648A35041648AC3B556475541F46BCEA148A35041D80BC9B9554755411EC7EA4A48A350417BF594C7544755415E97C81648A350419D24E5DB534755413B606C9A47A3504141755C0B53475541A2569EF246A35041E1D1E5C351475541D4D644F845A35041E5596ED84F4755410F83169145A350415E2C0EE44E475541FFEBDC9A45A350411900C9D74D475541472E6A0046A35041EFD5BD134D475541B57B284F46A35041D96532C14C475541A8A689B246A35041A50412A04C4755419D79E0F546A35041D13389044D4755416575043D47A35041972D027C4D475541394549F747A350418324224B4D4755413EC97EAA48A350417597DFF54C475541ECB9710849A35041F8CBBE824C475541EFC25A9849A350411C62BAB84B475541CF673EEF49A3504111007B374B4755416D7B73504AA35041E6860FB44A47554128E87C014BA35041C77D2F834A475541DE6A047248A350413A98896549475541F8F4BFF942A35041EC08147E46475541C5D6A00C41A3504186EDC26D4A475541B92B621A3BA3504134AE0B9F4F475541BFF08A2E3AA35041B2434052564755415DCBBD8138A350410E807E2C5A475541D69E421537A35041E73004F05C47554164B44C5436A3504159F793F25E475541F1E4451335A35041AF03CC286247554132BA932533A350414A77BE6666475541CACF9D6432A35041C519E8AA69475541DF3589CE31A35041ED3707986B475541A65241CD30A35041290E5A08704755411F26C6602FA35041B768B7CF75475541DD66E41D2DA350419823B92F7E4755418CA68CB52CA3504160CFF2007F4755419AA702DB2AA350418B75014981475541AB5562F725A3504160D8CEDE86475541AB4B3E2522A3504155824BC28C47554187CEE18D20A35041D0247506904755413F4AD7361FA35041518CC75E924755411508528B1EA35041EDB842CB9347554101030000000100000041000000131093FC54A35041F847E76D4847554122D475AF54A350412EC152F148475541B20AA10D54A35041FFBACB68494755416679A61153A35041A20B6AE849475541529606D958A35041EFF08B0B4D475541115E12E259A350418B592BB14A475541C07D36035BA350410CCA139F484755413F0D4E155DA35041897B2EC942475541DA8CD3965EA35041ABFC9D443E47554120FCD7B05FA35041697935D13C475541BDB34B0363A350417D367C35374755414FE301B564A350412797D29234475541DC6AD07E66A35041E93FAF7731475541320A7A2169A35041B240A4742E475541C9E117BB6AA350412A61BD922C4755414C1917B56CA35041A729BE982A4755417AC852E86FA35041A612D8BC26475541B66F45D372A35041B04BC1B022475541D526CA4E76A3504109B555531D475541585EC94878A35041D1B54A501A4755415D06B13078A350418566707D174755410CF8089A71A35041CFD74D681247554132F3305C70A35041957B872412475541642C892B6FA35041506C47BB13475541C645FD866EA35041CF67FEF21447554116AD14496EA3504110A0558815475541FE2F34C66DA350410D7552B4154755411B5688526DA3504118343EC6154755410AA5A9E26CA350411051F5C81547554172FB04BB6CA35041C9607F5A1647554177A478C46BA35041419F84C817475541F3DA571C6AA35041A9C8977C1947554157821CDE68A35041B26113AB1A475541FF8CB78767A35041614C5FC81B475541D6FC992466A3504190DC77221D475541EDD94E1665A35041D70188931E4755417697999C63A350417CE1006E2047554118FC289762A35041775EB2A721475541D16988A060A350418D19570D244755419BD8B0955FA35041B88D6D602547554122FD55DA5EA350419AFE17132647554177B4585C5EA350416E28274F27475541DED669415DA3504120E2D188294755417E5E4A8F5CA35041E4582E8C2B475541E36538D15BA35041FC5A8F242D4755419A5054285BA35041B3F0B5222E4755413AAB8BB95AA35041631DF7B62E47554116A1D8F959A350418B1CFFA62F475541D1666AF459A35041CB5E7C1D32475541C6D997B759A350418C56E29C33475541C16F077E59A350413D47A233354755418185843859A350415812C71E36475541068F06DA58A35041C2FA9E94364755418427570B57A35041408FAAAA374755415E87E87E55A3504159E06B02394755414551563255A35041C6BC31EF39475541D3F9302A55A35041210AA28E3B4755412858AB6255A35041105C82463D475541938A460E56A350414AE14DF33F475541964CE16756A35041F95C169741475541698F53E556A35041BEF909CE4347554166CDB88B56A350415D0CED0745475541A3DBFBFD55A350419C318C2B46475541E3AA0F9A55A35041E2C47C5947475541131093FC54A35041F847E76D48475541010300000001000000250000000D3C14F747A3504167D9CF9A3D4755419E39949646A3504109CCB90640475541C80A9D1145A35041C6B658F842475541B0E1EFF650A35041A3BCE2D848475541000A24E951A350413F9F2F4E4947554186D4C2BA52A35041AC9F2BD648475541CA40335A54A35041CE7F1B2B484755419F58447454A35041368C293C47475541002AEC6F54A35041793951744647554115B888DC54A3504123420ECD4547554130DD5E3F55A350417E2D189B454755415E14BBBB55A35041BA6CEEC8444755416B03FFD155A35041EA288132444755415E14BBBB55A350413EEB9A24434755416DBEF8F454A350412587FA0A4147554122BAD03554A35041D10488063F4755410A57952C54A35041F2B94D373D4755418A8359D153A350410D190DC03B4755414F4AB5FB53A35041387573A0394755415803B3CB54A35041ACF678A4384755417B54B4C155A350416663887637475541A7FDBFD756A350411B6C45CF36475541D8CAD72058A35041669A7683354755413D4D5E8C58A3504118243D5834475541F08D3CAA58A35041CAAD032D33475541F0006A6D58A35041C5EB97223147554178CC866858A350411964BDF52F475541BB39E8935AA350411751CB762C475541C3D4796853A350416288D8CE284755414B67F56951A35041057BC23A2B47554196525FB44FA3504196E0FBBE2D4755417CA64D3C4DA35041301C3E7F31475541C0BBAE4A4AA3504120F7467C354755414802873E4AA350414B3009DC37475541741CE80D4AA35041A1832C0B3A475541309FCD1A49A35041883FD4773B4755410D3C14F747A3504167D9CF9A3D4755410103000000010000001C00000056BFAFFD4AA3504187B13D504C475541852433604AA35041585C56084D475541CF4D997549A350418CD055EB4D47554189262FB348A350414696EB5D4E47554196FBCD4F48A35041E3C798924E47554168379F9647A350412B3299E44E475541B14F428C47A3504180A6562C4F4755418D10795947A350417EE4D6A24F47554103B5182B47A350414DCD4E5B5047554143FFC4F047A350417408FF9851475541B43BC75548A35041488FBA6552475541E17223D248A35041401344DA53475541EA58CA5E49A35041082A9BA4554755412A16A4E749A3504108420D5757475541B8D823594AA35041057EDCF458475541538AE7E04AA35041A09CD1B75947554107D330654CA35041484809D05A47554136D8693A4DA35041FD2E8BA15B47554144BB50794DA350416381CAC35C475541052ED3C84DA35041A0BEAB325E475541286938384EA3504104BDA07B60475541DBF97EB24EA350414260E568624755411F85EBA150A350418FC2F5C85F47554185C0404E54A350416E36D00556475541713D0A0757A35041CDCCCC1C51475541333333534DA35041CDCCCCBC4B4755419E8E0FA04BA3504133473DFE4B47554156BFAFFD4AA3504187B13D504C47554101030000000100000018000000C856401F43A35041BDAC89157E4755417CEFEF2842A350418D99C4C37E475541FB4E5FB740A35041A692C9617F47554171F6567B3FA350418DCF050C804755415839B4303CA350411F85EBD1814755411B2FDDCC33A350414E6210C88D475541C976BE3F2EA35041D9CEF7BB8E4755419A6182552BA3504152CEBE03964755416FDC1CE82AA35041FD2BAD0D994755411BEFB17E29A3504197E4E1DB9A47554121B0722828A350417F6ABC449E47554158EDF30729A3504169D57C95A347554123DBF93E2AA35041986E12FBAA475541D6D5F0E82BA350414C459500AB4755416F9079DA2CA350412B055500AB4755410C65B63630A35041F4624F60A347554138DE9B6332A35041B1BA7C589E475541DDFFB26D34A35041D61F80219A4755411379989A36A35041E73A8B989647554184D007E83BA3504137A0ED368D475541AF49ED143EA35041AC632A8B894755412257C3E53EA35041A399E1A38747554148C70FD741A350410327594F82475541C856401F43A35041BDAC89157E475541010300000001000000D1000000AC05132CDDA2504130FB8C8940485541074DA4B6DFA2504103633732414855413BDF4F8DE0A250412FDD24E641485541E3A59B4CE2A25041DBF97E5243485541D14ED964E5A250413781EFF23D485541F9FB9E8CE7A250410088E00C3A4855414443D26FE8A250411F460C6F38485541D86131D1E8A25041198E88BC374855419F428905EAA250418123E09C35485541D8BC058BEBA25041110B29EB324855419B55E171EDA250413BDE87F82F485541F77A9220EFA250417E0A59722D48554172B79485EFA250410646DEE72C4855419CB0B52BF0A25041010937B92B4855410E4ADA7CF0A25041D022803F2B48554109ED2A84F2A25041D40F28D32748554160E5D04AF3A250418D976E52264855413532401EF5A25041047E052124485541220D76A2F6A250410156C34E224855419E676292F8A2504108F222FB1F48554173D1547CFAA250413C15B0AE1D485541BE9F1AB7FDA250410E2DB2CD194855410014EB17FFA25041E9045D921748554135F37F5FFFA25041767D721E1748554173E7765900A35041CE38AA8915485541596F501C02A3504156E993AF1248554108AC1C3204A350410C022B4F0F4855412961602205A35041C94A9D050D485541EE463C6505A3504110C8AB620C4855417E25468806A3504190F95F9D0948554152B81EC508A3504114AE4729044855410EA301DE0FA35041BEB21C0EFA475541246093EF10A35041511D82EDF7475541A0C5F34412A35041B3E90A44F5475541CDCCCC4413A350413BDF4F45F347554108D029D713A350412697B7BAF0475541992E217314A35041867B8065EC475541E5D9C0E815A35041E019C87BE74755410B46E58116A350419DB1DA21E647554183F3EFDA17A350415C33FD16E44755418941606518A3504154E3A5DBE2475541A47E874D1CA3504168E6CB55DD4755416CE1C1511FA35041551D6CC2D847554162E8628820A35041B9E198ACD6475541EAA7687D23A3504125A88AEED04755413C9F45A823A35041F4A08304D04755414A741A6624A35041B143A7BFCD475541A78EBC8E25A35041A2F4FD33CA475541C49CBD8E26A3504121C5A54BC547554164E114BF26A350414631AD27BD47554122BFC4C126A35041D766A768B94755415C6130AE26A35041E1218E7EB74755411EC10F8C26A350416AACB375B7475541CAC045F425A350415EED6C8EB6475541DF4F8DFF21A35041B29DEFB7B54755415419084E21A350418D1CF5A5B64755413674775321A3504182661F42B747554131BAF6EF1FA350418720A0A5B847554107FF2CD01EA350418D9CA092B9475541F175C2A71EA35041DC926433BA4755414119595A1DA35041F318AB38BC475541A4F494541CA350413399DADABD475541F28E7C8A1BA350412D46B61DBF4755419EEFA79E1AA35041B4C87696C0475541D08BEA3618A35041B5E1CD3FC1475541A67909AB15A35041E557B9F5C1475541B34BADE715A35041A63067CDC44755418AA3BC1C16A35041F71895E7C647554147E0741E17A350410FD48A42C74755410334DB0118A35041C370A41CC747554118BDCB4719A350416B3B1ABAC647554160EEAC581AA350412AC185B2C6475541C1DA83C41BA35041A783A9ACC7475541B1BF2C911CA350410C8BD74BC847554121C75A301DA35041B02348D4C8475541550536781DA350419AA0FE9CC94755414D80829B1DA3504149173450CA4755411E015ABF1DA35041F6541A5ECB475541C0D7A7A31DA35041FEED958CCC4755417B57B5971DA35041E1768BA1CD475541DB9B8A561DA35041E0147370CE47554155D1EB841CA350416A6DD638CF475541544419481CA350411BFC564ED0475541D13B15D01BA35041BCD7FDDAD0475541DCDBEB4F1BA3504170422105D2475541D9A623331BA3504139BB9000D3475541D91951F61AA350413D11BEF8D34755411E54BFFB1AA35041EAB0E387D547554100FA207C1AA350416FB340A8D64755411AD1077219A3504192124ED1D7475541AF571E9018A350419D252D93D84755415C4170B717A35041B622FB3AD94755414BE9199116A3504186B5C890D9475541FF571F9515A35041D3621719DA4755415770C9C014A35041ACDD990CDA475541A6A3968F13A350410875B02AD94755413F1A6FED11A3504196063C48D8475541CC012DB510A35041F642E01DD8475541ADBA92780FA350417F83F883D8475541356C0AFA0EA35041165F9F10D9475541ADA0EDFE0EA35041955A5648DA475541B39750750FA350417DD739D4DB4755411A01B0900EA35041A936959DDF47554114362CA70DA35041A33482A5E0475541EEF6B0CA0CA3504191D0567CE247554132B686A60BA35041C485919DE4475541FD6CA4100BA35041A93E44C7E747554175A8284C0CA3504151EA7BDFE847554153EC64F90CA350418FF7CFA0E9475541D99C5E510DA35041111E8AACEA475541E07A9A770CA35041D8C8A264EB475541B054FAE40BA350418893A477EB475541E5963B440BA35041DC5A515AEB4755414E1BBE020AA3504144C99EECEA47554190329EFE08A35041EFE9A6A7EA475541E8D71A6708A35041357804E5EA4755419DD3F2A707A350415875D28CEB47554169A533B506A35041EBABEB61EB4755410CDCAA1907A35041AF1DB574EC475541A23D83E107A350416C212D7DED4755416ECF62F508A350411EC8F8F4EE475541DA5B041408A35041916197FBF0475541EA1FE7C607A3504104946390F1475541DDBD75ED07A350419AC3FDCCF2475541058B413008A3504191CDFC5DF3475541773BEF8107A35041945A3FB3F34755415B9C4A2506A35041B91B650DF4475541802DAD1405A35041E9EAD638F44755412FEBD3A803A35041EE40DDE0F34755417699ED9A02A350414E1B4235F34755416A1E557101A350417E34812FF2475541728963D400A35041DB32436FF14755416FAD230100A350416D695C44F1475541C9B41143FFA250410CCB9F3DF247554112C4D2DEFDA2504107DC6B07F44755412FB6DC77FCA250414719568DF5475541A64348C6FBA25041B268D924F6475541F314A4BBFAA25041287748CEF64755417CC79966F9A25041EAD0C67EF7475541497F35FAF7A25041948FB608F8475541D89BBBDEF6A25041149E25B2F847554197C43CDCF5A250416F356320F94755415BF72493F4A25041DB4DD15AFA4755414FA86BF6F2A25041C98766B0FB47554109F42EF7F1A25041B2BA551DFD475541C8D62BEEF0A2504161857E80FE475541F8C8818DF0A2504189D3E62FFF4755415A287AEFEFA25041792034F7FF475541E2069B2DEFA25041E42057CF0048554199F0EC54EEA250414C4A6A830248554168507EC8ECA25041980F2BBE04485541244437A9EBA25041F8B2A10506485541C49E6E3AEBA250411153C31C0748554176D8AB21EAA25041FED64C9108485541F2E2ABECE8A2504140DD21BA0A4855414C89A67EE7A250418DA2E2F40C4855413104A79BE6A25041AFEE37AC0E485541CBAEC9ECE5A250412A5840EE0F4855412F29E5F1E4A2504177B62EB710485541344586BEE3A25041FEE38EAB114855416BE938F7E2A250417E3CF27312485541D325EF55E2A2504176BBE8F7124855412561DB84E1A25041397C12CA134855412C13381EE1A25041C26DCA7014485541395B047EE0A250414B10225815485541D68073F2DFA250414BC65489164855412803AE57DFA25041F1F2951D1748554142934617DEA250415A7EC102184855419C808FDFDCA25041E7140761194855411EAED1ADDBA25041C1F65BC61A4855412F0005C7DAA25041EC745A3A1C485541570CB4D9D9A25041825594B71D485541FC705224D9A25041DF1C68EA1E4855417ED2DEE5D8A25041116664F91F485541D5A4040BD8A25041715DCEF021485541CEEF87FDD7A2504171D720D922485541466F631FD8A25041E4D2FCE7234855418FAF750ED8A2504111504691244855419E2DFB8ED8A250417F1AF5AA25485541C11D09D5D8A25041FA349D2D27485541BEE840B8D8A25041F6A7812828485541E655E37AD8A25041EC6220FA28485541F0F5B9FAD7A25041A1834F052A48554128FA95B3D7A25041E8DA97E52A485541DDA90861D9A250419633252E2B48554122661B3DDAA250419DAF251B2C48554127EA1A50D9A2504180EC5CD52C48554167ECACC8D8A25041A169A67E2D48554167ECACC8D8A25041EF6339D12E485541206E1A63D8A25041AC9F27CF2F485541702A2D3FD9A250418FDC5E8930485541BE24C091DAA25041FA99BA21314855410C1F53E4DBA250414C184D87314855410A5DD35ADCA250414F104E61334855419F9F77C2DBA250410A8ABCD534485541BC624008DBA250411006BDC235485541B7B17C48DAA250414D43BDC036485541F15D4EE1D9A250415A819F5637485541CE26F264D9A250415086324738485541FE184804D9A25041EAF387C93848554176A6B352D8A250412CE2EA3F39485541D0E1EB87D8A25041705D900B3A4855418B3450BFD8A25041AFDFDBBF3A4855417E5FB122D9A25041E55847433B485541193E1E67D9A25041C37857EE3B48554159C7ADFCD8A25041C7CE84E63C485541EC262147D8A25041DA5BE3E63D485541BAE6E307D9A25041A81BA6A73E485541AC05132CDDA2504130FB8C894048554101030000000100000023000000665470E3CBA25041A4C27BD1374855419A371642D7A25041D6D5511F3E48554155D1C8AFD7A2504171DCD42F3D48554135E9D9C9D7A2504189C130253C4855417572695FD7A25041C048C1293B48554167832549D7A25041733933203A485541CAD0E397D7A2504119FFA142394855413DFB5FE3D7A250412068605C38485541863DED48D8A25041FD209E953748554146278B76D8A25041838080F636485541C3C5FEB4D8A250414397892036485541F19C31B1D8A250418E27FA5535485541DB81C207D8A25041F45765523448554155B72336D7A25041829A90B033485541E19EE1FDD5A250417EA6A239334855414E72D152D5A25041BA396C17334855419DBF439BD4A250412C410E883248554163137202D5A250415E727194304855410EE941BDD5A250413D39D44E2E485541DE6919E1D5A25041DBB9BAF22C4855413C67EC6FD6A25041FEFBC2782B485541D23BF2FAD6A25041704D32B829485541A0A1A67BD7A250412D96E49E2848554135E9D9C9D7A25041EF8890DD274855415A234C11D7A250417A64FBFC27485541CDD88433D6A25041755E407E27485541BCC653B7D4A250417A64FBFC27485541A331C5FBD2A250417A64FBFC2748554108526F62D0A25041A7885DF52A4855411964A0DED1A25041B294D3F22B48554100CF1123D0A250413C62F80F2D485541F1398367CEA2504163809F892F485541CD987EAECBA250412301FADB344855415160E84CCCA250413F132B5836485541665470E3CBA25041A4C27BD1374855410103000000010000002000000065C3B9C5CBA25041161FF63A38485541C515216FCBA25041DFF83B7039485541404EB7D0CAA250418BDE4C883C48554138CB5991CAA2504147D68E1C41485541AEFD3474C9A25041E5328776434855415B6CE630C8A25041DA20D3EA454855418E6B6A00C8A25041D96FD68E474855418EEC2537CBA25041028729E14848554151D2CBBECEA25041B8BFA34E4A4855418BE5B314D1A25041381807174B48554157D7BCA8D2A250413FE897A24B48554192FD5C3BD3A2504100C88B6F4B485541426A66ECD3A250412E1D73B74A48554153A81799D4A250418622DBDF4948554160975BAFD4A250410D38C92149485541DE35CFEDD4A25041BACDC8CF484855414DCB599CD4A2504186BB086E48485541159333F0D3A2504188356C0148485541E8757CEDD3A250411171F1764748554128A68339D4A250415EB76D8D46485541E5E72B87D4A25041D8A158FB454855411BA43BE0D4A25041BC2A27C04548554139FED95FD5A25041CDDDD9F844485541BFC87831D6A25041E7DA8050444855413731A629D7A25041A8B5E12C4348554150673876D7A250410122F5764248554142EB2123D7A250411A1F9CCE41485541FAA894BDD6A250414DB7D14C414855417FCCBBD8D6A25041E42BA667404855417D24C6F8D6A25041585E4BAC3F4855410838C830D7A25041C86D057D3E48554165C3B9C5CBA25041161FF63A38485541010300000001000000310000009F32E5F2DFA2504169030FA442485541B9674451D8A25041C54A98E73E4855416AAE2C52D8A25041CBDAE6CF3F485541FC2E5130D8A25041AE171E8A404855415879BE8FD7A25041F8D7D90741485541D72D0874D8A2504162158C1141485541D56B88EAD8A25041FED33066414855414A29E482D9A25041B2D19EED4148554192A776E8D9A2504171CF0C7542485541FD64D280DAA25041DACAE88343485541D925094EDAA250410486B2A344485541F8AA511DD9A25041C483202B45485541F4F0D0B9D7A250419CC057E54548554137B5E2BBD6A250417D3B0F16474855413CDA1933D6A2504162618E354848554194993B15D6A250413C3E50AA484855416997A7B5D5A25041E382DCA049485541E09740C7D4A25041404AB0D34A485541128B1490D3A25041E67B84584C4855419F194A0ED3A250418314DDAE4C48554193F7392ED1A250412B5942554C4855410D39B262CDA25041D10BD2B54A4855411F490D15C8A25041E157B27C48485541E0D3FFEBC6A2504188E60B4248485541781CB163C6A2504105B22CB548485541CDD3B3E5C5A2504148697ACE49485541620142BAC5A25041F5654CEE4A48554151C3900DC5A25041E074DE6F4C48554133C27AD7C3A25041BB6E7E374E48554150CE29EAC2A25041524FB8B44F48554148BCA3D0C2A25041783B083351485541D22FB6ABC2A250417B1C3E38524855413898979DC2A25041A0DD6392524855416CDAD8FCC1A25041D77C664953485541FC83311EC1A2504134443A7C54485541936CB915C0A25041086E49B855485541E88C6064CCA25041316412BE5B485541AA220398CDA2504186BFEEB2564855413108AC1CD0A25041295C8FEA4C4855418D976E3AD1A2504183C0CA494D485541EE7C3FE5D0A25041560E2DBA554855414B777481D7A250418FE97F7C59485541596E25B3D9A250418140E9C354485541002854A1DBA2504183E7148350485541B7A56542DDA250416DA9E44C4D4855418275BBB4DEA250413F398A984A485541A3FAF5C4DEA25041398106E649485541643BDF9FE0A250410E2DB2D5444855419F32E5F2DFA2504169030FA4424855410103000000010000002B0000006E02E7A0AEA25041B555877974485541B0C03E53AEA2504131D2472D7548554120292045AEA250411E43F2DF75485541501B76E4ADA25041FC62028B76485541BD7B3876ADA250410AA1E420774855417B0BD030AFA25041BDA9C8C977485541141EB67CB7A250417DA155997A485541D37E1065BCA250414FFFDD777C4855416B879A47BDA250419429AEF87A48554144A7C28BC0A25041E452CF4F76485541BE17BEDAC2A25041479AAE0373485541C6F1EC4DC5A250413FCCD8836F485541B0CFB775C6A25041408EE0BF6C485541035E473EC7A250414A055BB26A485541880BA356C8A250419F77BED3674855414C270649C9A25041BB58A058654855418CCAFA62CAA25041BD96656D624855411656A244C4A25041ADF1C0855F485541A7781C22BEA250413BBA3AB05C4855416B915F5FBCA2504163A1D0ED5B4855410AEC96F0BBA250413840D71C5D48554190F51892BBA250417ED3C74A5E485541CF0B7B64BBA25041C79F071E5F4855411A0902EDBAA25041112253D25F4855412E49AFECB9A250414D1CEF2161485541DB320114B9A25041CFA4E8AE62485541081C6E23B8A25041A9863D14644855417FA9D971B7A25041F7FC763F654855419B28B647B6A25041CAD2B91B67485541A32097E7B5A25041F3258E6B6748554158A94165B5A25041B1ED5D2668485541FBF2BC0CB5A250415E88F0C468485541BDF77DDDB4A250410C8A2E8569485541A2D2A77AB4A25041BB4FC4F769485541222C15DCB3A25041ACB45C216B485541894E26C1B2A250419480A06C6C485541CB392730B2A25041A9F5BEAF6D485541C0D83380B1A250413461013A6F4855413CFC0E95B0A25041A3A4724870485541EEEFC775AFA25041C5F0C7FF7148554181E88D2DAFA250417ABD035B72485541034A1AEFAEA2504152D66D1D734855416E02E7A0AEA25041B5558779744855410103000000010000006F000000CD446CAF91A25041374831CC964855419AE9030091A250419C900E7B97485541074AC69190A250419B7D560998485541A94CF30290A2504120DD5FBA9848554149EE78CA8FA25041F1D6D83199485541610A669D8FA2504182FA39959948554173763E308FA250411E80DA799A4855414D97ECD38EA250416294D4239B485541FA27B6B18EA25041F7FA83BD9B4855416049496D8EA25041D745973C9C485541FA0D11388EA250413068DDB79C485541AA46D0F58DA25041256D70A89D485541A4DC3FBC8DA25041D20703479E485541EF1F4B4B8DA250412F6D97F89E485541145825F18CA25041061F56999F485541CE0312728CA25041E1C402B1A0485541B1F0C1288CA25041DD86476BA1485541D8D091AE8BA25041841A3421A2485541C86537458BA2504123CBD7D9A2485541087C99178BA250413EF3A855A3485541400D480D8BA25041938340DBA348554172C138068BA25041D635FB03A4485541CA805AE88AA2504171A35086A44855411DAA0C048BA25041C07BA2E2A44855415B321E708BA250414806AF67A5485541635E49038CA250414E12E840A64855413FCDE6138DA2504140D9989BA64855419A0FC07F8EA2504148BCE198A64855412E3CD02A8FA25041C5D662CBA64855417B1597868FA2504156FAC32EA748554156DDBCE08FA25041912B75DBA748554124D0439E90A2504184671D29A848554172EF8E0091A25041F3921C85A7485541A2A201D091A250414BEC775DA74855418824A32392A25041FA62AD10A848554139DD07F691A250416D13D59DA9485541EEDA757D92A25041E5C83110AC485541CA9BAC4A92A25041A204200EAD485541F456766A93A2504166BC0EF9AE4855411F12408A94A250413EF945B3AF48554114AE47E193A25041C1CAA195B048554117D9CE5F9CA25041508D972EB5485541AE7AC4179EA250417A7E8524B34855417D14C38B9FA25041830DB421B14855417BBABC18A1A25041771E0BFBAE4855417A60B6A5A2A25041B621128BAC48554187163AF9A5A25041C6EEAD2DA7485541EEE6AFD1A7A25041836E4E21A448554109C537FEA7A25041FD09D9CFA3485541AFF193AFA9A250417C81B8F2A04855415330767AABA25041BCE6D7B39D4855415A2E7A27ADA25041E0C10DC89A48554160AB84CAAEA25041DA748277974855411473B735B0A25041327E502C95485541EA9A45C9B2A2504128AAADA59048554108324C11B6A250414ADD02E28A48554120F918DAB7A250412ED78DBF874855413299E29CB9A250416BA2A8A78448554174D40FA8BAA250410B3297DE824855418CB738D1B3A25041C369BD1C804855418ACCBD4CA9A25041344FC7F97B485541F813598EA7A250412B71383D7E4855419FECA2C5A5A25041F3382F488048554167CE2193A5A25041EC6D31AD80485541CC62E211A5A25041B154F2B281485541466C64B3A4A250416951C4D28248554153CED58CA4A25041CF0E99748348554198C1F55BA4A25041AE95544184485541DD0D9E74A3A25041629E38EA84485541DCD95381A2A25041A120849E85485541C631129BA1A25041EF347E4886485541D6DB4FD4A0A25041CBEDE2D1864855419591A30EA0A250413DABB77387485541CDC15E549FA2504129B5B60488485541898938A89EA250413317F685884855418C17890E9EA25041BBA1020B8948554151C43FBF9DA25041089EB15289485541B91A9B979DA250414E2C0F90894855414B5AAF859DA250416C7FE3DF89485541F9BDCFA69DA25041D44124228A485541E3D6AAF09DA25041734F746B8A4855416E6462459EA250412BAE5EBC8A485541879AF4919EA250412C5FFEFC8A485541FA7EECD69EA250416CE6B5518B485541029172F09EA25041779755928B4855418A5C8FEB9EA25041DC3CDFD18B485541043968D09EA2504192BF260E8C485541A70FB6B49EA25041E030CD488C4855418C312E889EA25041DC90D2818C485541D936D4709EA25041843777A98C485541E1BB874D9EA2504125FBD2D38C485541044C6C139EA250418324BF378D48554156142B7F9DA25041F6568BCC8D485541DB1DAD209DA25041E81D3C278E485541A258B4379CA250410282B5F08E4855418DCA17CB9BA25041A3F6B05B8F485541B987A54D9BA25041912BB3C08F485541265B95A29AA250412692625A904855415E45CCE199A25041A35D83CD90485541A86E32F798A25041DE8E347A91485541ECBADA0F98A2504191971823924855416663690197A250416B257AD8924855417580D4FD95A250410CB2C0A5934855416D0D5B3495A25041D8A4933494485541CAD6E3CF94A25041E3141F8794485541F45EA93594A250412A0A28E694485541C6E0FE8293A2504129F76F74954855414E92760493A250412C84B2C995485541E8C96B9292A250410FFAC81C9648554102017C0892A25041D03BFC6A96485541CD446CAF91A25041374831CC964855410103000000010000005B0000004C201D3C83A250419A85EE9DB94855411475C9CC82A250414C7687E4B9485541713E526882A25041B438C826BA4855412BA4BAE281A25041C6650543BA48554173B2FD5481A25041D5B69F4ABA48554115B52AC680A250412377A644BA4855412A56CB7580A2504187F69850BA485541542415E27FA2504114D7AB7DBA485541CF731B8A7FA250416D4852B8BA485541CCB180307FA250411C0EE82ABB4855415F7E675B7FA25041C33F955FBB4855411179C1727FA25041DA2418A5BB4855415CD6717B7FA250414E5C50DABB485541BCA719777FA25041489F9E10BC485541E97E4C737FA25041A2853C3EBC4855410778F7427FA25041D74D0881BC48554164CE521B7FA25041F3C439BCBC485541C67499B37EA25041BCE9B507BD485541C3B2FE597EA25041900E3253BD485541F8C796FC7DA25041670F51B3BD48554180C05CB47DA25041CBF08240BE48554143C51D857DA250414B9846C8BE485541DDCF69567DA25041923EEF67BF485541BA6C2E4D7DA25041890C46ABBF485541DDCF69567DA250415CCA16D5BF48554123505C627DA2504151BCCA03C0485541ADDD13B77DA25041974A2841C0485541E01ED7EC7DA2504101826076C0485541C036E8067EA250416AB998ABC048554120C20BFC7DA2504166CA3D25C1485541BE0120EA7DA25041013893A7C1485541109EFFC87DA2504188C29F2CC2485541CDC5029D7DA25041713F5C68C248554110845A4F7DA2504154B572BBC2485541DF5DBABC7CA25041131B03F5C2485541322679287CA250418ECED805C3485541A9FA32AD7BA25041F24DCB11C34855414478AC417BA250412724E325C34855411137E90B7BA25041E8651674C34855412EEA0FD57AA25041A83252CFC3485541C16FA8C97AA250412A05192BC44855418EBBB7D07AA2504154CDE46DC44855418B13C2F07AA250415EC878CDC4485541F43D3E3C7BA25041A0B6DB43C54855416668BA877BA25041E31936ADC5485541DF2970C97BA2504110BEA404C648554192B19C1D7CA250419C29C03EC64855418F96797A7CA25041CCF8316AC6485541FFD27BDF7CA25041FA52ACA2C64855411A3ED6487DA250416DD4D8F6C6485541007AF3957DA250415AA22F3AC748554173A46FE17DA25041F73A8890C7485541A6E532177EA25041840D4FECC7485541E0ABA9297EA250412D659354C848554186FD43317EA2504182448B99C8485541025C567680A25041EB8056BFC94855418E716A3885A25041B94FF3B2CB485541524060DD8DA25041655B7EA4CF4855410D818A018FA25041DCB393CCCD485541B73CBB888FA2504156F07AF8CB485541CBCB8EC590A250412C49BBC0C84855415D1C112292A2504194F27DE5C648554160A529E092A2504102A2FB88C5485541F8FB66BB94A2504151B62FF2C14855418A4CE91796A25041AE537C19BF4855411D9D6B7497A250418FB832DFBC4855419636A4579AA2504124D9BE75B9485541F80C930E8FA25041EBECF906B4485541EABC5B488EA25041A4F7F0A7B3485541396356DA8CA2504112727713B44855412DCE18378BA25041F536EE25B4485541376EEFB68AA250411E980E47B44855415FDB91798AA25041A6C0DB4AB4485541294B61AD89A250417A34B855B44855417113201989A250411DD4B694B4485541269CCA9688A2504111105FE2B4485541A870841B88A25041B8410C17B5485541E5C44B9487A250410FFDA670B54855414FA9F7D286A250410D8343DDB5485541A93DB85186A25041D70E6B4AB648554136CCEDCF85A250414ED3E5D4B64855419E4FF26485A25041B2037821B7485541BEF0921485A25041939DEB5FB74855410E58AAD684A25041711AA89BB74855418357C5BE84A25041001872CBB7485541C890699484A2504166BDFB0AB8485541902C645B84A25041007AB14CB84855414065231984A25041FB23ABA4B8485541B51DF0CA83A25041C3D32FFDB8485541E40F466A83A250418B83B455B94855414C201D3C83A250419A85EE9DB9485541
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000007EE999B471A35041D7E4643E24475541EE64EDBA72A35041BEBD85D222475541B47AE2E669A35041007967AA1C4755418032210069A35041E173CCAA1D47554168024B6668A3504116BC8D911E475541A1AB46D967A350413778D9511F47554122A29E3267A35041065B530520475541BF8AE3CB66A35041876AAD94204755413D0AD7A367A3504114AE472121475541B0EDC68B6FA3504193CBF9A9264755417EE999B471A35041D7E4643E24475541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>162513 - 2908582
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000058000000FA4B87EEB95051411E9CD7E544565441E17A141EBD50514185EB51C844565441666666F6C3505141333333E34656544152B81EE5C9505141000000D048565441C3F5287CC950514114AE47D146565441A10713D6C85051410DFD95BD43565441D1080E1EC850514149F0C5E73B56544119EF7430C8505141BDC27A74385654417052E80ECA505141B5F99D273656544130355E49CC5051410A486438355654414E4424AFD2505141B5F99D27365654411C052404DA505141A4DD0EAA37565441767D44B0DE505141BDC27A7438565441EB733724DF50514109458E42325654419162B07ADF505141A906673F2E565441BC00F032E1505141D2580D662E5654410E7D07BCE1505141AC707FD92E565441DF09C0CAE3505141169E6F1A2F56544149261A8AE5505141F92F05712F5654412D22B587E750514127B7A5E62F5654411F70648AE7505141C34384942B565441ABD2F32EE950514138BE87962B5654410136670DEB5051411171BCCD2B5654413620534AED505141C60016862B565441C813A514F0505141BD86F2A22B56544182EF846BF250514112C09B1D2C56544198413C9BF3505141C2D6253C2C565441ED0BDF2AF4505141A3D519EB2B56544143F3758AF450514138BE87962B5654415ED8E154F55051411BC46EFE27565441C3F528ECF5505141666666262456544103DC2C30ED505141B8EF709F235654419C2BA9E3E450514140DD351F235654411068F0EAD450514167A4031D22565441AD911DFDC5505141EA571B2921565441B81E85CBBD50514148E17A94205654415B81270CBD50514154036FA9205654417F1DD95ABC50514104BE42991F56544191AF74D8BA50514174A255C71D5654413D0AD763B9505141F6285CDF1B5654415ABCA638B65051416D7385DB1B565441460400C2A65051418F6BE25F1C565441C68D988B92505141FBA9B64F1E5654413D685F148D505141EEF51C081F565441E803D5E588505141C82E66651F565441A088F6B581505141CCFE7712205654411F85EB717A505141F6285C9F20565441FE3FFF1F7B505141FD3BA5E222565441A0DA5B507C5051413B6D7CD72656544112E51F7A7D505141827F60B62A5654412F4495187F505141CC883BF72F5654416993F23A80505141AFA3C88A335654410A7B2964825051417828E4E238565441D011CF1D84505141BC6FC8433C56544190F444588650514150F0C5E73B5654416BBC265D89505141FA8C52093A565441E01F52438B50514190BDD2313B5654413848653C8D505141B1F9644E395654418139C3608F50514107553ACC36565441C0C1932390505141978CE49C33565441BB1598B38E505141C231041B3356544164DCEE388E505141A0179E0132565441032922DB8D505141340CDAC32E5654417213A40D8E5051419E5BF6072C565441E119B3D38E50514151DA16142A56544111305BE99050514164F6A59128565441CED83E30925051419F3A35152656544109E8951492505141AEEC486026565441333333639250514185EB518828565441A4703DCA915051417B14AEF72B565441295C8F72915051410AD7A3002E5654410000001091505141AE47E13A30565441E17A147E92505141295C8F6231565441295C8F229350514152B81ED5335654411F85EB4193505141D7A3707D355654418FC2F51893505141AE47E1FA365654417B14AE57925051415C8FC24538565441F6285C9F90505141000000103B565441EC51B82E8F5051411F85EB613D5654418FC2F5C88D5051413D0AD7133F565441295C8F828B505141F6285C8F4156544152B81E4589505141666666D6435654415C8FC255865051411F85EBE145565441713D0A479C505141333333A345565441E17A143EA35051417B14AEC745565441D7A3709DAC50514114AE47614556544100000040B9505141C3F528EC44565441FA4B87EEB95051411E9CD7E544565441
+</a>
+
+<b>
+0106000000010000000103000000010000004F000000E3F1DFE19150514169CBB77026565441A5B512E991505141F19D561A26565441E5710184915051414742174F21565441C9320A3E99505141BDBAF4842056544133F5FEB5A950514194ABAFF01E565441CC1516EEB05051410DDD4D601E5654418C5558A0B6505141C5F51C181E565441C6BA218FB9505141D8205FC51E565441F43BE896BB5051416F6142C91F56544135E8F04BBE50514121F8A92722565441B47B2A49C150514173FA363726565441E95E8CDEC6505141BEB1B5CD2F56544121E42199C3505141BEB1B5CD2F565441A409A9D5C05051414A0E96EA2F565441D29A55C3BF505141986748A630565441282F3012BE5051415E190CCC36565441F7F4A8D0BB50514142DA14863E565441CD3DA6EDB9505141BCC1DFE544565441E17A141EBD50514185EB51C844565441666666F6C3505141333333E34656544152B81EE5C9505141000000D048565441C3F5287CC950514114AE47D1465654413D0AD743C9505141713D0A0745565441AE47E1EAC8505141AE47E15A42565441E17A147EC8505141C3F5283C3D56544133333363C85051415C8FC275395654419A9999F9C8505141000000803756544166666646CA505141CDCCCC1C36565441A4703DAACB50514148E17A543556544166666666CD50514148E17A543556544152B81E15D4505141B81E858B36565441F6285C9FDB50514152B81E05385654417B14AE47DD505141E17A145E3856544185EB5168DE505141F6285CEF37565441295C8F72DF505141713D0A372E56544148E17A84E7505141AE47E19A2F565441713D0AC7E7505141333333B32B565441B81E85BBE8505141666666862B565441000000B0E95051411F85EB212C565441000000D0EC505141CDCCCC9C2B565441CDCCCC3CF15051418FC2F5C82B5654411F85EBF1F350514114AE47512C565441C3F5285CF45051415C8FC2F52B565441C3F528ECF55051416666662624565441AE47E1CAE1505141F6285CEF2256544166666616BD5051417B14AE97205654411F85EBC1BA505141C3F528AC1D5654413D0AD763B9505141F6285CDF1B56544148E17AC4AD50514114AE47D11B565441CDCCCC8CA4505141CDCCCC8C1C565441F6285C7F99505141D7A3709D1D565441295C8F0292505141D7A3705D1E5654411F85EB718C505141E17A141E1F56544148E17AB48B5051417B14AE371F565441CDCCCCAC865051419A9999891F5654410000005086505141F6285C8F1F565441EC51B85E84505141666666E61F5654410AD7A350805051419A999929205654411F85EB717A505141F6285C9F205654413D0AD7537E505141AE47E18A2D5654416666667681505141D7A3706D375654410000004084505141F6285C2F3C56544152B81EC584505141F6285C2F3C565441713D0A7785505141333333033C565441E17A14AE865051413D0AD7933B565441EC51B80E88505141A4703D5A3A56544152B81E75895051410AD7A3303A5654410AD7A3108A505141713D0A473A565441666666B68B505141295C8FE23A565441B81E85CB8D505141D7A370CD38565441666666D68E5051410000008037565441713D0AF78F5051415C8FC25533565441295C8F628E505141666666C6325654411F85EBE18D505141EC51B88E30565441000000308D505141295C8F422D565441F6285C9F8D505141F6285C4F2A565441A4703DCA8F505141E17A149E295654410AD7A3F0905051410000002028565441E3F1DFE19150514169CBB77026565441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>162513 - 3625064
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000058000000FA4B87EEB95051411E9CD7E544565441E17A141EBD50514185EB51C844565441666666F6C3505141333333E34656544152B81EE5C9505141000000D048565441C3F5287CC950514114AE47D146565441A10713D6C85051410DFD95BD43565441D1080E1EC850514149F0C5E73B56544119EF7430C8505141BDC27A74385654417052E80ECA505141B5F99D273656544130355E49CC5051410A486438355654414E4424AFD2505141B5F99D27365654411C052404DA505141A4DD0EAA37565441767D44B0DE505141BDC27A7438565441EB733724DF50514109458E42325654419162B07ADF505141A906673F2E565441BC00F032E1505141D2580D662E5654410E7D07BCE1505141AC707FD92E565441DF09C0CAE3505141169E6F1A2F56544149261A8AE5505141F92F05712F5654412D22B587E750514127B7A5E62F5654411F70648AE7505141C34384942B565441ABD2F32EE950514138BE87962B5654410136670DEB5051411171BCCD2B5654413620534AED505141C60016862B565441C813A514F0505141BD86F2A22B56544182EF846BF250514112C09B1D2C56544198413C9BF3505141C2D6253C2C565441ED0BDF2AF4505141A3D519EB2B56544143F3758AF450514138BE87962B5654415ED8E154F55051411BC46EFE27565441C3F528ECF5505141666666262456544103DC2C30ED505141B8EF709F235654419C2BA9E3E450514140DD351F235654411068F0EAD450514167A4031D22565441AD911DFDC5505141EA571B2921565441B81E85CBBD50514148E17A94205654415B81270CBD50514154036FA9205654417F1DD95ABC50514104BE42991F56544191AF74D8BA50514174A255C71D5654413D0AD763B9505141F6285CDF1B5654415ABCA638B65051416D7385DB1B565441460400C2A65051418F6BE25F1C565441C68D988B92505141FBA9B64F1E5654413D685F148D505141EEF51C081F565441E803D5E588505141C82E66651F565441A088F6B581505141CCFE7712205654411F85EB717A505141F6285C9F20565441FE3FFF1F7B505141FD3BA5E222565441A0DA5B507C5051413B6D7CD72656544112E51F7A7D505141827F60B62A5654412F4495187F505141CC883BF72F5654416993F23A80505141AFA3C88A335654410A7B2964825051417828E4E238565441D011CF1D84505141BC6FC8433C56544190F444588650514150F0C5E73B5654416BBC265D89505141FA8C52093A565441E01F52438B50514190BDD2313B5654413848653C8D505141B1F9644E395654418139C3608F50514107553ACC36565441C0C1932390505141978CE49C33565441BB1598B38E505141C231041B3356544164DCEE388E505141A0179E0132565441032922DB8D505141340CDAC32E5654417213A40D8E5051419E5BF6072C565441E119B3D38E50514151DA16142A56544111305BE99050514164F6A59128565441CED83E30925051419F3A35152656544109E8951492505141AEEC486026565441333333639250514185EB518828565441A4703DCA915051417B14AEF72B565441295C8F72915051410AD7A3002E5654410000001091505141AE47E13A30565441E17A147E92505141295C8F6231565441295C8F229350514152B81ED5335654411F85EB4193505141D7A3707D355654418FC2F51893505141AE47E1FA365654417B14AE57925051415C8FC24538565441F6285C9F90505141000000103B565441EC51B82E8F5051411F85EB613D5654418FC2F5C88D5051413D0AD7133F565441295C8F828B505141F6285C8F4156544152B81E4589505141666666D6435654415C8FC255865051411F85EBE145565441713D0A479C505141333333A345565441E17A143EA35051417B14AEC745565441D7A3709DAC50514114AE47614556544100000040B9505141C3F528EC44565441FA4B87EEB95051411E9CD7E544565441
+</a>
+
+<b>
+0106000000010000000103000000010000004F000000E3F1DFE19150514169CBB77026565441A5B512E991505141F19D561A26565441E5710184915051414742174F21565441C9320A3E99505141BDBAF4842056544133F5FEB5A950514194ABAFF01E565441CC1516EEB05051410DDD4D601E5654418C5558A0B6505141C5F51C181E565441C6BA218FB9505141D8205FC51E565441F43BE896BB5051416F6142C91F56544135E8F04BBE50514121F8A92722565441B47B2A49C150514173FA363726565441E95E8CDEC6505141BEB1B5CD2F56544121E42199C3505141BEB1B5CD2F565441A409A9D5C05051414A0E96EA2F565441D29A55C3BF505141986748A630565441282F3012BE5051415E190CCC36565441F7F4A8D0BB50514142DA14863E565441CD3DA6EDB9505141BCC1DFE544565441E17A141EBD50514185EB51C844565441666666F6C3505141333333E34656544152B81EE5C9505141000000D048565441C3F5287CC950514114AE47D1465654413D0AD743C9505141713D0A0745565441AE47E1EAC8505141AE47E15A42565441E17A147EC8505141C3F5283C3D56544133333363C85051415C8FC275395654419A9999F9C8505141000000803756544166666646CA505141CDCCCC1C36565441A4703DAACB50514148E17A543556544166666666CD50514148E17A543556544152B81E15D4505141B81E858B36565441F6285C9FDB50514152B81E05385654417B14AE47DD505141E17A145E3856544185EB5168DE505141F6285CEF37565441295C8F72DF505141713D0A372E56544148E17A84E7505141AE47E19A2F565441713D0AC7E7505141333333B32B565441B81E85BBE8505141666666862B565441000000B0E95051411F85EB212C565441000000D0EC505141CDCCCC9C2B565441CDCCCC3CF15051418FC2F5C82B5654411F85EBF1F350514114AE47512C565441C3F5285CF45051415C8FC2F52B565441C3F528ECF55051416666662624565441AE47E1CAE1505141F6285CEF2256544166666616BD5051417B14AE97205654411F85EBC1BA505141C3F528AC1D5654413D0AD763B9505141F6285CDF1B56544148E17AC4AD50514114AE47D11B565441CDCCCC8CA4505141CDCCCC8C1C565441F6285C7F99505141D7A3709D1D565441295C8F0292505141D7A3705D1E5654411F85EB718C505141E17A141E1F56544148E17AB48B5051417B14AE371F565441CDCCCCAC865051419A9999891F5654410000005086505141F6285C8F1F565441EC51B85E84505141666666E61F5654410AD7A350805051419A999929205654411F85EB717A505141F6285C9F205654413D0AD7537E505141AE47E18A2D5654416666667681505141D7A3706D375654410000004084505141F6285C2F3C56544152B81EC584505141F6285C2F3C565441713D0A7785505141333333033C565441E17A14AE865051413D0AD7933B565441EC51B80E88505141A4703D5A3A56544152B81E75895051410AD7A3303A5654410AD7A3108A505141713D0A473A565441666666B68B505141295C8FE23A565441B81E85CB8D505141D7A370CD38565441666666D68E5051410000008037565441713D0AF78F5051415C8FC25533565441295C8F628E505141666666C6325654411F85EBE18D505141EC51B88E30565441000000308D505141295C8F422D565441F6285C9F8D505141F6285C4F2A565441A4703DCA8F505141E17A149E295654410AD7A3F0905051410000002028565441E3F1DFE19150514169CBB77026565441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>575777 - 2930867
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000110000006A89F2B544355141B1CD5D218E705441A4703D3A5C355141000000508B70544185EB51F85D355141EC51B8BE80705441295C8F225E3551410AD7A3C07F705441AE47E11A5F35514114AE47F17C705441C3F5282C53355141AE47E14A7D705441D7A370FD42355141CDCCCC5C7F705441E17A146E2E355141B81E85BB81705441390D2E862C3551410F8A9ECB91705441666666D62B35514152B81E959770544152B81E052C3551415C8FC2A59C705441CDCCCC0C2F3551419A999939AE70544148E17A3430355141295C8F62AF7054413D0AD73345355141B81E850BB37054415C8FC2E5443551413D0AD753A170544114AE4791443551415C8FC2258E7054416A89F2B544355141B1CD5D218E705441
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000001A818F2D453551411AB908138E705441BA937EDE4435514179192EE48D7054413879540D403551417DF2738F8E7054410774C85A373551411D79BEC38F70544166916F2F2D355141F381CC5E91705441A98C0F8B2C355141F6927BA291705441666666D62B35514152B81E959770544152B81E052C3551415C8FC2A59C705441CDCCCC0C2F3551419A999939AE70544148E17A3430355141295C8F62AF7054413D0AD73345355141B81E850BB37054415C8FC2E5443551413D0AD753A170544114AE4791443551415C8FC2258E7054411A818F2D453551411AB908138E705441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>575777 - 3759163
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000110000006A89F2B544355141B1CD5D218E705441A4703D3A5C355141000000508B70544185EB51F85D355141EC51B8BE80705441295C8F225E3551410AD7A3C07F705441AE47E11A5F35514114AE47F17C705441C3F5282C53355141AE47E14A7D705441D7A370FD42355141CDCCCC5C7F705441E17A146E2E355141B81E85BB81705441390D2E862C3551410F8A9ECB91705441666666D62B35514152B81E959770544152B81E052C3551415C8FC2A59C705441CDCCCC0C2F3551419A999939AE70544148E17A3430355141295C8F62AF7054413D0AD73345355141B81E850BB37054415C8FC2E5443551413D0AD753A170544114AE4791443551415C8FC2258E7054416A89F2B544355141B1CD5D218E705441
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000001A818F2D453551411AB908138E705441BA937EDE4435514179192EE48D7054413879540D403551417DF2738F8E7054410774C85A373551411D79BEC38F70544166916F2F2D355141F381CC5E91705441A98C0F8B2C355141F6927BA291705441666666D62B35514152B81E959770544152B81E052C3551415C8FC2A59C705441CDCCCC0C2F3551419A999939AE70544148E17A3430355141295C8F62AF7054413D0AD73345355141B81E850BB37054415C8FC2E5443551413D0AD753A170544114AE4791443551415C8FC2258E7054411A818F2D453551411AB908138E705441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2919891 - 204779
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000075000000E17A14CEA4165141EC51B82EC0D35441AE47E1FAA9165141D7A3703DB7D35441E17A14DEC316514185EB51A8E0D35441B81E852BFF16514100000020C9D354417B14AEB7861751418FC2F588C2D354418FC2F57817185141A4703D1AACD354416666665675185141C3F5282C80D35441F6285CFFD21851411F85EBB147D3544152B81EE5341951418FC2F52828D35441000000707F195141A4703DCA17D3544152B81E95C31951411F85EBB1EBD25441713D0A17F6195141C3F5288C04D35441295C8F22AD1951413D0AD753B7D35441713D0AD7851951417B14AEF7CAD3544152B81E655B195141D7A370ADD9D35441AE47E11A4D1951417B14AE87EFD3544148E17A743B195141333333B320D4544185EB517833195141E17A14BE25D454419A9999392A1951419A9999F919D45441D7A3700D16195141666666561DD45441CDCCCC4C021951417B14AE772CD454410AD7A320EE185141F6285C6F59D45441AE47E12A9A185141EC51B89EBED45441C3F5285CC51851411F85EB91D6D454417B14AE47DA18514152B81EE5FAD45441C3F5287CF318514152B81E75EAD45441F6285C0FFA185141B81E859BCFD4544114AE47B10C195141295C8FF2B6D45441333333A328195141E17A142EAED45441EC51B8DE1F195141666666668ED454417B14AE87601951410AD7A35054D454410AD7A31072195141AE47E15A49D45441CDCCCC2C8A1951413D0AD75343D4544148E17A849919514185EB51A83BD45441EC51B83ED5195141AE47E1CA09D454418FC2F568F9195141295C8F22F1D3544185EB51A8071A5141EC51B88EEAD354418FC2F5C81A1A514185EB5158DCD3544100000020461A5141666666E6F9D35441E17A144E591A51410AD7A3A0E5D354417B14AE076D1A51415C8FC225E0D3544100000040751A5141295C8F72D2D35441C3F5280C651A5141EC51B8BE9ED354418FC2F5784B1A51415C8FC2B58ED354418FC2F5784B1A51410AD7A38080D354410AD7A3E0741A51417B14AE4748D35441000000907A1A514114AE47E12CD354410AD7A3308A1A51411F85EB8113D3544166666676811A5141000000E0CCD2544148E17A54781A51419A9999F9C5D25441CDCCCC2C601A51418FC2F568C8D25441AE47E1BA411A5141EC51B8DEBED25441E17A14AE301A514148E17A54B5D25441EC51B88E1A1A51419A999979B1D25441AE47E1AA061A5141D7A370DDB0D254411F85EB71F7195141EC51B8FEABD2544100000030861951417B14AE6791D2544148E17AD46D1951410000000091D25441CDCCCCEC58195141D7A3704D8AD2544185EB511849195141EC51B8CE83D2544114AE473119195141C3F528CC67D25441713D0AE7AB185141EC51B8FE79D254419A9999699F18514114AE47B189D25441666666765E18514185EB5148A4D25441666666862F185141C3F5285CACD25441C3F528DCC7175141EC51B88EA9D254415C8FC2D5AA175141CDCCCC3CA1D254413D0AD76363175141E17A14DE5ED254410AD7A3D049175141AE47E19A5AD254415C8FC2C51D1751413D0AD75355D25441CDCCCC9CF7165141EC51B89E5BD25441A4703D1AF0165141B81E855B57D25441E17A146EDD165141F6285C0F6CD254411F85EB21C9165141333333736BD25441333333A3C2165141E17A14BEC3D254413D0AD733E91651417B14AE07BCD254417B14AE97111751417B14AE87A7D25441EC51B8DE6817514100000080CED25441E17A14EE95175141666666E6E9D25441EC51B83EB91751417B14AE17F7D25441333333B3451851411F85EBC1C4D25441CDCCCC0C79185141D7A3707DDBD2544114AE47717818514148E17A2408D3544185EB51086A1851418FC2F5F817D35441B81E85CB5918514185EB512832D3544114AE47714F185141E17A141E3DD35441EC51B80E35185141B81E851B4AD3544148E17A3416185141A4703DFA4ED354410AD7A3D072175141E17A14EE3DD3544148E17A74D11651419A9999D92AD3544148E17A14D31651413D0AD7E31FD354418FC2F568A51651416666664611D3544185EB51E882165141333333B349D35441CDCCCCAC2E16514114AE479169D35441D7A3706DFA155141E17A14CE15D35441295C8F2207165141295C8F8212D3544148E17A1428165141E17A14BEF6D254411F85EB514C165141B81E85BBB6D25441713D0AE7221651419A9999E9C3D25441A4703DAA06165141295C8F62DCD25441D7A3705DE31551418FC2F5F8D2D25441333333F3C115514100000070B3D25441E17A142EA61551413333332378D25441F6285C1FAF155141295C8F1259D25441E17A143EC51551419A9999A957D25441CDCCCC4CB4155141F6285C2F2FD2544148E17AB485155141F6285C2F2FD25441713D0A877815514114AE47417ED25441E17A14FE58155141E17A147E92D25441A4703D2A3E155141A4703DDABCD254417B14AE675A155141D7A370ADCFD2544152B81E955715514166666636F7D25441A4703D5A83155141EC51B8CE25D35441EC51B82EBE155141A4703D1A31D35441B81E858BF81551418FC2F55875D3544114AE4721E71551417B14AE97B9D35441E17A14CEA4165141EC51B82EC0D35441
+</a>
+
+<b>
+010600000001000000010300000001000000570000009A5F61AD00165141EF67D5C9DAD25441ED4E03CBF6155141E9E1D652E0D25441EA546D11D015514159AC4ACFCAD254417396CD2198155141FC64977370D25441EFD502C7AA155141F86A01BA49D25441D3648079A615514185A6F78338D25441432FF4F5901551416835753634D25441094DEF5A88155141324D065552D25441E260419E821551416F29A1A981D25441A0031194781551419F907AD588D25441A684A649531551415F2DE084A5D25441A684A64953155141D3F1E9BAB6D25441253E611357155141CF4A4A75CDD254417B14AE675A155141D7A370ADCFD25441775A7A8459155141BBF4E01BDCD25441E9E1D6535D15514166210CF8F2D2544140355E3C6A155141D06AEABE02D35441F656987C85155141AD78D2BB23D354419D7C1198C4155141CAE9540928D3544127310866FF155141BDE7299E72D35441BCE7299FEF1551415B92774AB0D354412223096E971651419EEFA754BAD35441FF30F16AB81651415B92774AB0D35441687ACF31C816514168073973D8D35441DF386F2100175141EBC703CEC5D3544136FF8CC77F175141BB602AA2BED354411EFB36F11418514117354740A6D35441BE9F1A5779185141E4D3D75A78D3544109F176D4D01851418A86BAB844D35441DC833362F0185141333333D037D35441B08986AD8219514113C81AC90CD354411DCDFA2DB919514110CE840FE6D25441EBDE2106FE195141C6EFBE4F01D35441F7E04C71B3195141B1E5FE32BDD354414640A8E6721951415E8C0D04D7D3544139CBE6BD4A1951414E904CDFFAD35441D9FC33663C19514195E712A32BD45441D6029EAC151951416FFB64E625D45441CB14DC7FA118514169ED65EEBDD454418FABD7E8E418514189587EF5E8D45441DF7DC91B171951418CDF7DF19CD45441D6029EAC1519514122969F2A8DD454418A9DD8F07C195141122748483ED45441B4F6B2241C1A51412E2534D8CFD35441B8F048DE421A514115AE4744F2D35441ED5DD78B741A51417480AB33D0D3544189BA071E651A5141707FBEF79ED3544102E716345C1A514155BA313399D354418FC2F5784B1A51415C8FC2B58ED354418FC2F5784B1A51410AD7A38080D354418A6928334F1A51415240F7707BD3544118BFFB35511A5141840525036AD35441D85B61E56D1A51419401E62746D354419AB118BB861A514102722183F7D2544130C63CEC851A5141771300F9F0D25441123E6680761A5141938E4F6AD3D25441EA6B8B488B195141F6E301BE95D25441D08108F73A195141A90BA6448AD25441B9911B5F11195141D578E9B66AD254416E40BFE1B9185141821FF88784D25441997D77A99F185141680C036189D254419A9999699F18514114AE47B189D25441A5282EC39B185141EC68D64E94D2544181C37F024A185141AC053CFEB0D25441576AA5CEAA175141990FE51FAED2544193D3A96567175141F2E96B046FD2544156F70E113817514175AA365F5CD254414F03E39DEA165141A511108B63D254415FFFA3C2C6165141164F1AC5C0D2544166F3CF35141751415F2DE084A5D25441B7385826B9175141709C3767F4D254416ECD2824471851411FCA4534C2D25441EE06F48280185141C3F52896DAD25441EE06F4828018514100D2C3EA09D35441EB0C5EC959185141639A0CFC3ED354416BD3926A2018514110411BCD58D3544108AC1CDAB9165141D364807829D354419E623E13AA1651417396CD201BD354416B01CF2D7C16514110411BCD58D35441640DA3BA2E165141AAF1D2BF6FD35441DA58ACECF31551414DAA1F6415D354413E21F5FD2816514149B089AAEED254413D21F5FD281651418098F88BD0D25441DE5242A61A1651416327763ECCD2544125AC2DCE1616514164F58B65CED25441A4703DAA06165141295C8F62DCD254419A5F61AD00165141EF67D5C9DAD25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>2979014 - 59292
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000C0000001F85EB11E8E85041333333338DFD54415C8FC205EAE85041333333139FFD544114AE4741F0E85041D7A3707D9EFD544148E17AD4F1E85041713D0AC79DFD5441C3F5283CF2E8504114AE47019CFD544185EB5158F1E85041CDCCCC4C90FD5441CDCCCC4CF1E8504152B81E458BFD5441EC51B8CEF1E850411F85EB4186FD54417B14AE87F3E85041295C8F227FFD544133333333EAE8504185EB51C87FFD54413D0AD773EAE85041295C8F628DFD54411F85EB11E8E85041333333338DFD5441
+</a>
+
+<b>
+0106000000010000000103000000010000000B00000027AE1B13E3E85041A974B3688CFD544100440FE5DDE85041C89060588CFD5441320907B6DDE850417543925A8CFD54417B14AE87D6E850418FC2F5C88CFD54417DC0A0B0D9E8504126625D7DA0FD54413E804F05EAE85041F5053E139FFD54414DC3D818E8E85041221D9D728DFD5441F2516C17E8E8504164AA94658DFD54412867B213E8E85041119F77438DFD54417003A013E8E850413D44CF428DFD544127AE1B13E3E85041A974B3688CFD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>193231 - 3039273
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000032000000C3F528FC4FAF50410000005038C454410AD7A38046AF5041CDCCCCEC19C45441B81E856B40AF5041AE47E1AA1DC45441D7A3707D32AF50419A99994924C45441AE47E17A1AAF50410AD7A30029C45441713D0AC71FAF5041AE47E15A3BC45441713D0A47FCAE5041A4703D4A42C45441295C8FC2F6AE5041C3F5280C30C45441EC51B81EF3AE50413D0AD7B330C454418FC2F558FCAE50413D0AD7434EC454417B14AE27FFAE5041CDCCCC6C50C45441D7A370FD00AF50417B14AEA74EC4544185EB51E805AF5041E17A14BE4DC45441F6285C4F0BAF5041333333A34CC45441333333A30CAF5041CDCCCC3C4CC4544185EB51E811AF5041AE47E11A4CC4544152B81E8514AF5041C3F5289C4DC454416666668619AF5041713D0AD74BC45441B81E852B19AF504148E17AA44AC45441B81E854B1BAF5041666666B649C45441713D0A771DAF5041CDCCCCDC4BC454418FC2F5381FAF5041EC51B80E4AC45441000000B027AF504152B81EB544C454413D0AD7B328AF50411F85EB0144C45441000000A028AF5041EC51B8BE42C454419A99999926AF5041000000203FC454415C8FC2B526AF5041E17A142E3EC4544148E17A9428AF5041D7A370BD3CC45441D7A3708D2BAF50413D0AD7533CC454413333334331AF5041333333E33CC45441CDCCCC7C34AF504148E17A843DC45441295C8F1235AF504185EB51483EC45441B81E85EB35AF5041A4703DCA40C45441D7A3703D39AF50410AD7A3D041C45441F6285C9F3AAF5041CDCCCC8C43C454418FC2F5683AAF504148E17AE444C45441F6285CEF37AF50416666662648C45441A4703D8A37AF50415C8FC2E549C454411F85EB0138AF5041C3F5280C4DC45441C3F5281C39AF5041EC51B88E4EC454419A9999993AAF5041295C8FD24EC454413D0AD7933DAF5041E17A14DE4DC454411F85EBB141AF5041C3F528FC47C454411F85EBD145AF50415C8FC23543C4544114AE474147AF5041A4703D8A41C45441333333E348AF504185EB514840C454415C8FC2454DAF5041EC51B81E3CC454419A9999894FAF5041666666363BC45441B81E855B51AF50410AD7A3E039C45441C3F528FC4FAF50410000005038C45441
+</a>
+
+<b>
+0106000000010000000103000000010000001B00000061B5C57FF7AE50410A1666BB3EC45441147C70C9F8AE50413AE890DB42C4544183431C40FAAE50411403EA8B47C454410D3569A1FBAE5041E6E39E044CC454418FC2F558FCAE50413D0AD7434EC45441000000A01EAF50410000003046C454414CA0D0F427AF504190C5B0853AC4544114AE47C135AF50415C8FC2E53BC45441DAE72FC73EAF50410B0EEBE244C45441C3F528FC4FAF50410000005038C45441F87579B34FAF504188A4126737C45441BF758FCC4DAF50410FD2B64E31C454410AD7A38046AF5041CDCCCCEC19C4544158A1D0B940AF504196B6B47A1DC45441D7A3707D32AF50419A99994924C45441DFC6E05623AF5041D0D5754127C454413F7ADE7A1DAF50411BD6546728C45441AE47E17A1AAF50410AD7A30029C454410BD56CED1AAF50415E79778D2AC45441713D0AC71FAF5041AE47E15A3BC454415AB5AD411FAF50417EB4EE743BC4544152BA0F6018AF5041C56C11CD3CC45441713D0A47FCAE5041A4703D4A42C45441D447E0D9F9AE5041FCA77C443AC45441295C8FC2F6AE5041C3F5280C30C45441EC51B81EF3AE50413D0AD7B330C4544161B5C57FF7AE50410A1666BB3EC45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>193231 - 3279195
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000032000000C3F528FC4FAF50410000005038C454410AD7A38046AF5041CDCCCCEC19C45441B81E856B40AF5041AE47E1AA1DC45441D7A3707D32AF50419A99994924C45441AE47E17A1AAF50410AD7A30029C45441713D0AC71FAF5041AE47E15A3BC45441713D0A47FCAE5041A4703D4A42C45441295C8FC2F6AE5041C3F5280C30C45441EC51B81EF3AE50413D0AD7B330C454418FC2F558FCAE50413D0AD7434EC454417B14AE27FFAE5041CDCCCC6C50C45441D7A370FD00AF50417B14AEA74EC4544185EB51E805AF5041E17A14BE4DC45441F6285C4F0BAF5041333333A34CC45441333333A30CAF5041CDCCCC3C4CC4544185EB51E811AF5041AE47E11A4CC4544152B81E8514AF5041C3F5289C4DC454416666668619AF5041713D0AD74BC45441B81E852B19AF504148E17AA44AC45441B81E854B1BAF5041666666B649C45441713D0A771DAF5041CDCCCCDC4BC454418FC2F5381FAF5041EC51B80E4AC45441000000B027AF504152B81EB544C454413D0AD7B328AF50411F85EB0144C45441000000A028AF5041EC51B8BE42C454419A99999926AF5041000000203FC454415C8FC2B526AF5041E17A142E3EC4544148E17A9428AF5041D7A370BD3CC45441D7A3708D2BAF50413D0AD7533CC454413333334331AF5041333333E33CC45441CDCCCC7C34AF504148E17A843DC45441295C8F1235AF504185EB51483EC45441B81E85EB35AF5041A4703DCA40C45441D7A3703D39AF50410AD7A3D041C45441F6285C9F3AAF5041CDCCCC8C43C454418FC2F5683AAF504148E17AE444C45441F6285CEF37AF50416666662648C45441A4703D8A37AF50415C8FC2E549C454411F85EB0138AF5041C3F5280C4DC45441C3F5281C39AF5041EC51B88E4EC454419A9999993AAF5041295C8FD24EC454413D0AD7933DAF5041E17A14DE4DC454411F85EBB141AF5041C3F528FC47C454411F85EBD145AF50415C8FC23543C4544114AE474147AF5041A4703D8A41C45441333333E348AF504185EB514840C454415C8FC2454DAF5041EC51B81E3CC454419A9999894FAF5041666666363BC45441B81E855B51AF50410AD7A3E039C45441C3F528FC4FAF50410000005038C45441
+</a>
+
+<b>
+0106000000010000000103000000010000001B00000061B5C57FF7AE50410A1666BB3EC45441147C70C9F8AE50413AE890DB42C4544183431C40FAAE50411403EA8B47C454410D3569A1FBAE5041E6E39E044CC454418FC2F558FCAE50413D0AD7434EC45441000000A01EAF50410000003046C454414CA0D0F427AF504190C5B0853AC4544114AE47C135AF50415C8FC2E53BC45441DAE72FC73EAF50410B0EEBE244C45441C3F528FC4FAF50410000005038C45441F87579B34FAF504188A4126737C45441BF758FCC4DAF50410FD2B64E31C454410AD7A38046AF5041CDCCCCEC19C4544158A1D0B940AF504196B6B47A1DC45441D7A3707D32AF50419A99994924C45441DFC6E05623AF5041D0D5754127C454413F7ADE7A1DAF50411BD6546728C45441AE47E17A1AAF50410AD7A30029C454410BD56CED1AAF50415E79778D2AC45441713D0AC71FAF5041AE47E15A3BC454415AB5AD411FAF50417EB4EE743BC4544152BA0F6018AF5041C56C11CD3CC45441713D0A47FCAE5041A4703D4A42C45441D447E0D9F9AE5041FCA77C443AC45441295C8FC2F6AE5041C3F5280C30C45441EC51B81EF3AE50413D0AD7B330C4544161B5C57FF7AE50410A1666BB3EC45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>194230 - 194456
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000019000000A4703D0A0E16514114AE47F182F25441A4703D9A12165141000000607EF25441000000D018165141295C8F4279F2544152B81EF51A16514152B81E8577F25441B81E85FB1D165141E17A140E75F254418FC2F57820165141713D0AC772F25441CDCCCC0C22165141C3F5282C71F2544152B81E15271651411F85EB516CF2544185EB512828165141000000D06AF254411F85EB012A165141CDCCCCCC67F254413D0AD75324165141D7A3707D68F254418FC2F52822165141000000F06BF25441D7A3706D2016514152B81E256EF254415C8FC2451E1651418FC2F58870F254410AD7A370191651411F85EB8175F25441D7A3703D121651410AD7A3907BF25441EC51B89E0C16514152B81E9580F254411F85EB61FF155141713D0AB78CF25441666666F6F81551415C8FC28592F2544148E17AF4F31551419A99993997F25441AE47E15AF61551413D0AD75399F25441666666E6FD1551413D0AD77392F25441666666E6001651418FC2F5B88FF25441EC51B89E0C165141B81E855B84F25441A4703D0A0E16514114AE47F182F25441
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000CD01BC9E0C1651412A72815B84F25441A4703D0A0E16514114AE47F182F254419E67C39D0C165141E330FF9580F254415BC4437B08165141D324236084F254413891EC61FF155141F29C0AB78CF25441946C94E9FA155141555734C290F25441666666F6F81551415C8FC28592F2544149C57BF4F31551417CC3983997F254416477E25AF6155141A5BFD55399F2544195C465E6FD155141C30DD77392F25441B69420E5FE1551417DC6098C91F25441666666E6001651418FC2F5B88FF254419CE18A4D0916514174CFF99287F25441CD01BC9E0C1651412A72815B84F25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>194230 - 384280
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000019000000A4703D0A0E16514114AE47F182F25441A4703D9A12165141000000607EF25441000000D018165141295C8F4279F2544152B81EF51A16514152B81E8577F25441B81E85FB1D165141E17A140E75F254418FC2F57820165141713D0AC772F25441CDCCCC0C22165141C3F5282C71F2544152B81E15271651411F85EB516CF2544185EB512828165141000000D06AF254411F85EB012A165141CDCCCCCC67F254413D0AD75324165141D7A3707D68F254418FC2F52822165141000000F06BF25441D7A3706D2016514152B81E256EF254415C8FC2451E1651418FC2F58870F254410AD7A370191651411F85EB8175F25441D7A3703D121651410AD7A3907BF25441EC51B89E0C16514152B81E9580F254411F85EB61FF155141713D0AB78CF25441666666F6F81551415C8FC28592F2544148E17AF4F31551419A99993997F25441AE47E15AF61551413D0AD75399F25441666666E6FD1551413D0AD77392F25441666666E6001651418FC2F5B88FF25441EC51B89E0C165141B81E855B84F25441A4703D0A0E16514114AE47F182F25441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000D802BC9E0C1651412071815B84F254415454FA090E165141E58D8AF182F254419B67C39D0C165141E530FF9580F2544157C4437B08165141CF24236084F254413891EC61FF155141F29C0AB78CF25441946C94E9FA155141555734C290F25441666666F6F81551415C8FC28592F2544149C57BF4F31551417CC3983997F254416477E25AF6155141A5BFD55399F2544195C465E6FD155141C30DD77392F25441B89420E5FE1551417DC6098C91F25441666666E6001651418FC2F5B88FF254410064D34C091651413ABEAB9387F2544149D8B79E0C165141781E855B84F25441D802BC9E0C1651412071815B84F25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>1608 - 59450
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000500000014AE47418E6C5041295C8F52292D5541C3F5286C916C5041CDCCCCAC2D2D554152B81E45BA6C5041713D0A27142D5541C3F528ECB76C504185EB51480F2D554114AE47418E6C5041295C8F52292D5541
+</a>
+
+<b>
+01060000000100000001030000000100000008000000B83BBCC5AB6C5041D89C00361D2D5541465F0738BA6C5041C9B5E10B142D554193DAFC95B96C50418542B8BB122D55413986D282B86C50411A4FE080102D5541D2B270C9B76C5041E79D045E0F2D554114AE47418E6C5041295C8F52292D5541C3F5286C916C5041CDCCCCAC2D2D5541B83BBCC5AB6C5041D89C00361D2D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>537931 - 1242461
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003C000000AE77A3AD316151417580797AE26C5441F6285CFF3361514185EB5158E46C54413D0AD76336615141295C8F92E56C544114AE471139615141EC51B88EE16C54419A999929396151419A999979E06C54418FC2F5E838615141295C8FF2DF6C54410000003037615141000000C0DF6C5441CDCCCC6C356151413D0AD783DF6C5441295C8F5232615141333333C3DE6C5441E17A14EE3061514185EB51F8DD6C5441333333932F615141E17A14EEDC6C544152B81E252461514185EB5168D26C544133333323236151417B14AEB7D16C5441EC51B8BE2261514133333373D16C54419A99998920615141E17A141ED06C5441000000101F615141E17A140ECF6C5441000000601B61514166666666CC6C5441B81E854B1961514100000070CB6C5441666666D618615141295C8FE2CA6C5441E17A14CE17615141E17A144EC96C54419A99990916615141B81E856BC76C54419A999969146151411F85EBC1C66C544148E17AB4116151417B14AE67C56C544148E17AB410615141295C8F42C56C5441E17A140E10615141E17A149EC46C5441000000100F61514114AE4711C36C5441A4703DEA0D615141EC51B8FEC16C5441AE47E13A0B615141EC51B85EC06C54411F85EB81076151419A999929BE6C5441AE47E13A036151413D0AD773BB6C54418FC2F57801615141B81E855BBA6C54418FC2F598FA6051411F85EB11B66C54413D0AD7D3F260514152B81ED5B16C5441F6285CBFF2605141CDCCCC0CB26C544114AE4711EF6051411F85EBA1B66C544185EB5128CF6051419A999949DE6C5441A4703DFAD0605141666666F6DE6C5441A4703DCAD46051419A999959DD6C5441333333F3DD6051415C8FC255E26C544133333343E2605141666666F6E46C5441D7A370DDE560514185EB51A8E66C5441138A818AE560514133F898E6E56C5441EC51B80EE3605141F6285C9FE26C54416282F8FEE3605141CD1F8FC3E06C5441333333E3E36051415C8FC235E06C5441B8068DF9E460514195F6FD78DD6C544107DA3C40E6605141F74F9EEBDA6C5441D7A370ADE9605141713D0AE7D66C54419A999939F1605141333333E3CD6C544185EB5168F860514152B81E05C56C54417A3036B6F9605141C48AE94FC36C54414E25E207FA605141B3A6BB83C26C544114AE476100615141F6285C5FC56C544185EB51E8066151419A999969C86C544138142CA10A615141DF89EEFAC96C54411F85EB61156151418FC2F518CE6C5441A4703D0A1E615141AE47E19AD16C5441A4703D4A256151411F85EBB1D66C54410AD7A3C030615141CDCCCCFCE06C5441AE77A3AD316151417580797AE26C5441
+</a>
+
+<b>
+01060000000100000001030000000100000042000000E254458DF660514156BE76C4C66C54414C86C9B5F96051418F0D317BC26C54418703AEFEF96051412AFBBD9AC26C54414F25E207FA605141B5A6BB83C26C54413D09652100615141A7929A42C56C54415B971DD3086151410FBDF905C96C54411F85EB61156151418FC2F518CE6C5441A4703D0A1E615141AE47E19AD16C5441A4703D4A256151411F85EBB1D66C54410AD7A3C030615141CDCCCCFCE06C5441B377A3AD316151417D80797AE26C5441F6285CFF3361514185EB5158E46C54413D0AD76336615141295C8F92E56C544114AE471139615141EC51B88EE16C54419A999929396151419A999979E06C54418FC2F5E838615141295C8FF2DF6C54410000003037615141000000C0DF6C5441CDCCCC6C356151413D0AD783DF6C5441295C8F5232615141333333C3DE6C5441E17A14EE3061514185EB51F8DD6C5441333333932F615141E17A14EEDC6C544152B81E252461514185EB5168D26C544133333323236151417B14AEB7D16C5441EC51B8BE2261514133333373D16C54419A99998920615141E17A141ED06C5441000000101F615141E17A140ECF6C5441000000601B61514166666666CC6C5441B81E854B1961514100000070CB6C5441666666D618615141295C8FE2CA6C5441E17A14CE17615141E17A144EC96C54419A99990916615141B81E856BC76C54419A999969146151411F85EBC1C66C544148E17AB4116151417B14AE67C56C544148E17AB410615141295C8F42C56C5441E17A140E10615141E17A149EC46C5441000000100F61514114AE4711C36C5441A4703DEA0D615141EC51B8FEC16C5441AE47E13A0B615141EC51B85EC06C54411F85EB81076151419A999929BE6C5441AE47E13A036151413D0AD773BB6C54418FC2F57801615141B81E855BBA6C54418FC2F598FA6051411F85EB11B66C5441CAD6002BF36051412097DA8FB16C54416D573F0AF2605141D0C9DB76B26C5441B78C3A6EEE605141E32D6186B66C5441996A9233D06051419C63575BDF6C5441A4703DFAD0605141666666F6DE6C5441A4703DCAD46051419A999959DD6C5441333333F3DD6051415C8FC255E26C544133333343E2605141666666F6E46C5441D7A370DDE560514185EB51A8E66C54410E8A818AE560514134F898E6E56C5441135F2D81E46051410F95DB83E26C54415D82F8FEE3605141CE1F8FC3E06C5441135F2D81E460514155965842E06C5441B9068DF9E460514190F6FD78DD6C5441FDE09A50E56051410842E2CADC6C5441C6912E68E5605141E57E936CDC6C54417EC7A0B3E56051410875D604DC6C544106DA3C40E6605141F74F9EEBDA6C54410F762123E8605141A0DF64B5D86C5441398F34EBE9605141BD684B55D66C544170414D34EC6051415DCE67E2D36C5441D3A7A258F06051418FDAE7EFCE6C54416F573F0AF26051417ED4BEDBCC6C5441E254458DF660514156BE76C4C66C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>537931 - 3314665
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003C000000AE77A3AD316151417580797AE26C5441F6285CFF3361514185EB5158E46C54413D0AD76336615141295C8F92E56C544114AE471139615141EC51B88EE16C54419A999929396151419A999979E06C54418FC2F5E838615141295C8FF2DF6C54410000003037615141000000C0DF6C5441CDCCCC6C356151413D0AD783DF6C5441295C8F5232615141333333C3DE6C5441E17A14EE3061514185EB51F8DD6C5441333333932F615141E17A14EEDC6C544152B81E252461514185EB5168D26C544133333323236151417B14AEB7D16C5441EC51B8BE2261514133333373D16C54419A99998920615141E17A141ED06C5441000000101F615141E17A140ECF6C5441000000601B61514166666666CC6C5441B81E854B1961514100000070CB6C5441666666D618615141295C8FE2CA6C5441E17A14CE17615141E17A144EC96C54419A99990916615141B81E856BC76C54419A999969146151411F85EBC1C66C544148E17AB4116151417B14AE67C56C544148E17AB410615141295C8F42C56C5441E17A140E10615141E17A149EC46C5441000000100F61514114AE4711C36C5441A4703DEA0D615141EC51B8FEC16C5441AE47E13A0B615141EC51B85EC06C54411F85EB81076151419A999929BE6C5441AE47E13A036151413D0AD773BB6C54418FC2F57801615141B81E855BBA6C54418FC2F598FA6051411F85EB11B66C54413D0AD7D3F260514152B81ED5B16C5441F6285CBFF2605141CDCCCC0CB26C544114AE4711EF6051411F85EBA1B66C544185EB5128CF6051419A999949DE6C5441A4703DFAD0605141666666F6DE6C5441A4703DCAD46051419A999959DD6C5441333333F3DD6051415C8FC255E26C544133333343E2605141666666F6E46C5441D7A370DDE560514185EB51A8E66C5441138A818AE560514133F898E6E56C5441EC51B80EE3605141F6285C9FE26C54416282F8FEE3605141CD1F8FC3E06C5441333333E3E36051415C8FC235E06C5441B8068DF9E460514195F6FD78DD6C544107DA3C40E6605141F74F9EEBDA6C5441D7A370ADE9605141713D0AE7D66C54419A999939F1605141333333E3CD6C544185EB5168F860514152B81E05C56C54417A3036B6F9605141C48AE94FC36C54414E25E207FA605141B3A6BB83C26C544114AE476100615141F6285C5FC56C544185EB51E8066151419A999969C86C544138142CA10A615141DF89EEFAC96C54411F85EB61156151418FC2F518CE6C5441A4703D0A1E615141AE47E19AD16C5441A4703D4A256151411F85EBB1D66C54410AD7A3C030615141CDCCCCFCE06C5441AE77A3AD316151417580797AE26C5441
+</a>
+
+<b>
+01060000000100000001030000000100000042000000E254458DF660514156BE76C4C66C54414C86C9B5F96051418F0D317BC26C54418703AEFEF96051412AFBBD9AC26C54414F25E207FA605141B5A6BB83C26C54413D09652100615141A7929A42C56C54415B971DD3086151410FBDF905C96C54411F85EB61156151418FC2F518CE6C5441A4703D0A1E615141AE47E19AD16C5441A4703D4A256151411F85EBB1D66C54410AD7A3C030615141CDCCCCFCE06C5441B377A3AD316151417D80797AE26C5441F6285CFF3361514185EB5158E46C54413D0AD76336615141295C8F92E56C544114AE471139615141EC51B88EE16C54419A999929396151419A999979E06C54418FC2F5E838615141295C8FF2DF6C54410000003037615141000000C0DF6C5441CDCCCC6C356151413D0AD783DF6C5441295C8F5232615141333333C3DE6C5441E17A14EE3061514185EB51F8DD6C5441333333932F615141E17A14EEDC6C544152B81E252461514185EB5168D26C544133333323236151417B14AEB7D16C5441EC51B8BE2261514133333373D16C54419A99998920615141E17A141ED06C5441000000101F615141E17A140ECF6C5441000000601B61514166666666CC6C5441B81E854B1961514100000070CB6C5441666666D618615141295C8FE2CA6C5441E17A14CE17615141E17A144EC96C54419A99990916615141B81E856BC76C54419A999969146151411F85EBC1C66C544148E17AB4116151417B14AE67C56C544148E17AB410615141295C8F42C56C5441E17A140E10615141E17A149EC46C5441000000100F61514114AE4711C36C5441A4703DEA0D615141EC51B8FEC16C5441AE47E13A0B615141EC51B85EC06C54411F85EB81076151419A999929BE6C5441AE47E13A036151413D0AD773BB6C54418FC2F57801615141B81E855BBA6C54418FC2F598FA6051411F85EB11B66C5441CAD6002BF36051412097DA8FB16C54416D573F0AF2605141D0C9DB76B26C5441B78C3A6EEE605141E32D6186B66C5441996A9233D06051419C63575BDF6C5441A4703DFAD0605141666666F6DE6C5441A4703DCAD46051419A999959DD6C5441333333F3DD6051415C8FC255E26C544133333343E2605141666666F6E46C5441D7A370DDE560514185EB51A8E66C54410E8A818AE560514134F898E6E56C5441135F2D81E46051410F95DB83E26C54415D82F8FEE3605141CE1F8FC3E06C5441135F2D81E460514155965842E06C5441B9068DF9E460514190F6FD78DD6C5441FDE09A50E56051410842E2CADC6C5441C6912E68E5605141E57E936CDC6C54417EC7A0B3E56051410875D604DC6C544106DA3C40E6605141F74F9EEBDA6C54410F762123E8605141A0DF64B5D86C5441398F34EBE9605141BD684B55D66C544170414D34EC6051415DCE67E2D36C5441D3A7A258F06051418FDAE7EFCE6C54416F573F0AF26051417ED4BEDBCC6C5441E254458DF660514156BE76C4C66C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>447285 - 447447
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000040000000103000000020000005100000010AD7EE7AB465141919CF48D30335441AC8D21E9AB4651416966811A2A3354417B14AE37A2465141E17A14EE1B3354410297DB229C465141E6195F401F335441938065B190465141E10532DB1D335441D2F019B393465141B10D7E182B335441E17E42E2A64651414119916E2A3354411F85EBF1A9465141EC51B8FE2B335441634DC6B6AA4651416B80FE9D2E335441713D0AE7AA465141F6285C0F3133544100000080AB465141F6285C6F32335441C3F528FCAA4651410AD7A3B038335441C3F5283CAD46514100000050383354418FC2F508AF465141F6285CFF373354411F85EB61B24651411F85EB8137335441CDCCCC3CB1465141C3F5284C403354411F85EBF1B046514166666686463354413D0AD773B0465141000000604D335441666666D6AF465141E17A14BE52335441AE47E11AAF4651410AD7A3E057335441D7A3708DB0465141000000A05D335441AE47E19AB146514114AE472161335441A4703DAAB1465141EC51B8BE613354413D0AD7C3B0465141333333E362335441EC51B81EAE465141295C8F8264335441295C8F92AA4651411F85EB2166335441000000D0AA465141C3F528BC663354419A999909AD4651413D0AD7F3653354415C8FC265AD4651415C8FC25567335441C3F528BCAC465141F6285C8F693354413D0AD703AC465141C3F528DC693354410AD7A350AC4651413D0AD7B36A33544114AE4771AF4651410AD7A37069335441E17A14BEAF465141295C8FD26A335441D7A3703DAE4651417B14AE076F335441D7A370EDA746514152B81EE570335441F6285CAFA746514148E17A646F335441CDCCCCCCA4465141AE47E14A70335441A4703D7AA34651417B14AEE76B335441000000F0A24651415C8FC2156C335441713D0A37A24651417B14AEB768335441B81E85CBA1465141F6285CFF6733544114AE4731A14651410AD7A3E067335441E17A145E9E46514185EB51A86833544148E17A349C465141295C8F4269335441E17A142E98465141333333136B335441713D0AC798465141CDCCCC0C703354417B14AE379B4651411F85EBB17B3354413D0AD7839B465141EC51B81E7D3354418FC2F5389C4651415C8FC2757E335441B81E850B9D465141000000D07F335441B81E85AB9D4651417B14AE67803354415C8FC2A59E465141AE47E11A813354415C8FC2959F465141666666A681335441C3F5281CA34651417B14AE57833354411F85EBF1A4465141B81E852B84335441E17A144EA74651413D0AD73385335441C3F528ECAB465141AE47E1BA833354419A9999B9AB465141F6285C3F8333544152B81E95AA465141000000A07F3354411F85EB91B0465141000000407D33544133333303B74651413D0AD7037A3354417B14AE77BC465141666666B67733544114AE47D1BD4651410AD7A33077335441AE47E14AC14651410AD7A3D0753354411E6C7D48C746514191C70FD872335441A4703D0AC54651413D0AD7336D335441C3F5289CBE465141D7A3709D5E33544148E17AD4BD465141666666165D335441CDCCCC7CB7465141AE47E18A5E335441333333B3B1465141CDCCCCFC5F3354419A9999F9B0465141C3F528BC5D335441713D0A87AF46514114AE47015833544148E17A64B04651419A9999D95233544152B81EE5B0465141A4703D8A4D335441CDCCCC5CB1465141F6285C7F46335441CDCCCC7CB1465141A4703DEA42335441B81E85ABB14651416666665640335441295C8FF2B2465141E17A145E373354416799DC85B346514163F7F56F3033544110AD7EE7AB465141919CF48D3033544105000000333333B3B1465141713D0A17683354418FC2F568B1465141B81E852B673354410AD7A300B3465141B81E859B66335441A4703D4AB34651413D0AD78367335441333333B3B1465141713D0A176833544101030000000100000005000000AE47E12A904651417B14AE67A13354417B14AE67964651410AD7A3709E3354410AD7A3908E465141713D0A477C3354416666662689465141A4703D6A7E335441AE47E12A904651417B14AE67A13354410103000000020000000D0000000AD7A39089465141D7A3701DA5335441E17A14CE83465141A4703DCAA73354411F85EB617F4651418FC2F5A8A93354413D0AD7A37B4651415C8FC2A5AA335441EC51B85E7846514166666676AA3354413333332378465141D7A3704DAB335441CDCCCC1C774651417B14AE67B13354417B14AEC778465141D7A370BDB3335441D7A3703D7A46514166666666B53354419A9999697F465141B81E85DBB0335441C3F5289C82465141CDCCCC0CAE335441AE47E1CA86465141C3F528ACA83354410AD7A39089465141D7A3701DA533544105000000B81E853B80465141F6285CBFAA335441B81E853B80465141D7A370DDA9335441E17A141E814651415C8FC2E5A933544152B81E1581465141F6285CBFAA335441B81E853B80465141F6285CBFAA3354410103000000010000000A000000666666965E46514148E17AF478365441AE47E10A6146514114AE47617136544148E17A145E4651415C8FC275703654415C8FC29544465141D7A3706D73365441E17A149E44465141295C8F2278365441E17A14FE43465141A4703D9A7A3654413D0AD7F33F465141F6285CFF7F3654411F85EBE14D4651415C8FC2557E365441295C8F725D465141A4703D7A7C365441666666965E46514148E17AF478365441
+</a>
+
+<b>
+01060000000100000001030000000200000078000000AE47E1EA864651415C8FC2653B33544185EB5148884651417B14AEF73C335441666666E688465141EC51B8EE3D335441E17A145E89465141295C8F123F3354415C8FC295894651413D0AD7933F335441AE47E11A8A46514114AE4751403354411F85EB018B4651410AD7A32041335441B81E857B8B46514185EB5168433354411F85EB118C465141D7A3700D453354419A9999798C4651417B14AEF7453354411F85EB318D465141CDCCCC2C463354413333334391465141A4703D5A47335441666666E69446514185EB51D84A33544152B81EE595465141E17A14FE4B335441F6285C9F964651419A9999B94A33544166666676954651413D0AD7A34933544166666646974651418FC2F5F8473354411F85EBB1964651418FC2F598463354413333330399465141000000704533544148E17AF49946514114AE47C14733544148E17A549B4651413D0AD77346335441F6285CFF9C4651419A99998947335441F6285CFF9C465141713D0A4749335441AE47E11A9F4651410AD7A320493354411F85EB41A0465141AE47E1DA493354413D0AD7A3A0465141333333E34E335441F6285CFF974651411F85EB814F33544152B81EB597465141333333734B335441D7A370BD9646514148E17A944C335441666666F694465141333333334F3354418FC2F56893465141EC51B8CE51335441EC51B87E9246514100000070543354417B14AE17924651418FC2F5D855335441CDCCCCAC91465141C3F5280C58335441CDCCCC7C91465141000000605A335441B81E858B914651419A9999795E335441A4703D4A934651410000008061335441333333D39446514114AE4751643354419A9999E997465141295C8F026A335441B81E85DB9846514185EB51A869335441295C8F229C4651411F85EB9168335441B81E85FBA04651411F85EBE1663354418FC2F508A4465141295C8FB2653354410AD7A390A6465141295C8FC264335441AE47E14AA9465141E17A149E63335441713D0AE7AB46514114AE47B162335441D7A3704DAF465141333333B361335441AE47E19AB146514114AE472161335441D7A3708DB0465141000000A05D335441AE47E11AAF4651410AD7A3E057335441666666D6AF465141E17A14BE523354413D0AD773B0465141000000604D3354411F85EBF1B04651416666668646335441CDCCCC3CB1465141C3F5284C403354411F85EB61B24651411F85EB81373354418FC2F508AF465141F6285CFF37335441C3F5283CAD4651410000005038335441C3F528FCAA4651410AD7A3B03833544100000080AB465141F6285C6F32335441713D0AE7AA465141F6285C0F3133544185EB51C8AA46514185EB5118303354419A9999B9AA465141AE47E1AA2E33544152B81E75AA465141295C8F722D3354411F85EBF1A9465141EC51B8FE2B335441C3F5284CA9465141E17A148E2B33544148E17A54A846514185EB51082B335441B81E85FBA6465141E17A146E2A3354413D0AD703A1465141B81E858B2A33544148E17A849C465141000000B02A33544152B81EB598465141A4703DFA2A33544185EB51B893465141000000302B33544166666656924651415C8FC2F5243354418FC2F5C88F465141A4703DBA193354415C8FC26591465141F6285C0F213354413D0AD7A38D4651419A9999591B33544114AE47618A465141E17A14BE18335441E17A14EE88465141666666C610335441CDCCCC6C8846514185EB51B807335441295C8FA27C4651410000004008335441D7A3702D83465141A4703D1A13335441713D0A577D465141EC51B88E10335441EC51B85E7A46514185EB51E80A335441000000D076465141E17A148E0A33544185EB51A8734651419A99991909335441F6285C9F7046514148E17AC40B335441D7A3707D6E4651413333332311335441EC51B88E6A465141E17A149E0C3354413D0AD763654651410AD7A3300D335441EC51B85E614651419A9999C907335441CDCCCC9C5F465141B81E854B0933544148E17AF463465141666666B60F33544152B81EF564465141E17A141E1233544148E17AC465465141E17A146E14335441AE47E17A6646514152B81E851533544114AE4791674651410AD7A3901633544114AE47E168465141EC51B8AE173354417B14AED76946514148E17AB418335441B81E85CB6A4651413D0AD7531A3354418FC2F5486B465141A4703D1A1B33544148E17A446D465141E17A143E1C335441D7A370FD6D4651413D0AD7131D335441C3F5285C6F4651413D0AD7D31E33544114AE47E170465141713D0A771E33544185EB51087346514114AE47111C33544148E17A4478465141B81E857B1D335441EC51B82E7F465141B81E859B21335441AE47E18A86465141CDCCCC4C1D33544114AE47918846514185EB51C820335441B81E854B844651411F85EBB124335441A4703D5A83465141713D0A372633544114AE47418546514114AE47E12933544185EB510886465141EC51B85E2D335441E17A148E87465141295C8F322F335441A4703D1A8A465141666666B62E33544148E17AE48C4651418FC2F5482C3354413D0AD7038F46514148E17A842C3354413D0AD7A38D46514148E17AB42F3354417B14AEA789465141B81E858B3333544114AE4701844651413333335338335441AE47E1EA864651415C8FC2653B335441050000008FC2F5A8A1465141A4703D7A4F335441D7A3700DA3465141295C8F724F335441D7A3700DA34651417B14AEC75033544114AE47A1A14651417B14AEC7503354418FC2F5A8A1465141A4703D7A4F335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>447285 - 1123046
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000040000000103000000020000005100000010AD7EE7AB465141919CF48D30335441AC8D21E9AB4651416966811A2A3354417B14AE37A2465141E17A14EE1B3354410297DB229C465141E6195F401F335441938065B190465141E10532DB1D335441D2F019B393465141B10D7E182B335441E17E42E2A64651414119916E2A3354411F85EBF1A9465141EC51B8FE2B335441634DC6B6AA4651416B80FE9D2E335441713D0AE7AA465141F6285C0F3133544100000080AB465141F6285C6F32335441C3F528FCAA4651410AD7A3B038335441C3F5283CAD46514100000050383354418FC2F508AF465141F6285CFF373354411F85EB61B24651411F85EB8137335441CDCCCC3CB1465141C3F5284C403354411F85EBF1B046514166666686463354413D0AD773B0465141000000604D335441666666D6AF465141E17A14BE52335441AE47E11AAF4651410AD7A3E057335441D7A3708DB0465141000000A05D335441AE47E19AB146514114AE472161335441A4703DAAB1465141EC51B8BE613354413D0AD7C3B0465141333333E362335441EC51B81EAE465141295C8F8264335441295C8F92AA4651411F85EB2166335441000000D0AA465141C3F528BC663354419A999909AD4651413D0AD7F3653354415C8FC265AD4651415C8FC25567335441C3F528BCAC465141F6285C8F693354413D0AD703AC465141C3F528DC693354410AD7A350AC4651413D0AD7B36A33544114AE4771AF4651410AD7A37069335441E17A14BEAF465141295C8FD26A335441D7A3703DAE4651417B14AE076F335441D7A370EDA746514152B81EE570335441F6285CAFA746514148E17A646F335441CDCCCCCCA4465141AE47E14A70335441A4703D7AA34651417B14AEE76B335441000000F0A24651415C8FC2156C335441713D0A37A24651417B14AEB768335441B81E85CBA1465141F6285CFF6733544114AE4731A14651410AD7A3E067335441E17A145E9E46514185EB51A86833544148E17A349C465141295C8F4269335441E17A142E98465141333333136B335441713D0AC798465141CDCCCC0C703354417B14AE379B4651411F85EBB17B3354413D0AD7839B465141EC51B81E7D3354418FC2F5389C4651415C8FC2757E335441B81E850B9D465141000000D07F335441B81E85AB9D4651417B14AE67803354415C8FC2A59E465141AE47E11A813354415C8FC2959F465141666666A681335441C3F5281CA34651417B14AE57833354411F85EBF1A4465141B81E852B84335441E17A144EA74651413D0AD73385335441C3F528ECAB465141AE47E1BA833354419A9999B9AB465141F6285C3F8333544152B81E95AA465141000000A07F3354411F85EB91B0465141000000407D33544133333303B74651413D0AD7037A3354417B14AE77BC465141666666B67733544114AE47D1BD4651410AD7A33077335441AE47E14AC14651410AD7A3D0753354411E6C7D48C746514191C70FD872335441A4703D0AC54651413D0AD7336D335441C3F5289CBE465141D7A3709D5E33544148E17AD4BD465141666666165D335441CDCCCC7CB7465141AE47E18A5E335441333333B3B1465141CDCCCCFC5F3354419A9999F9B0465141C3F528BC5D335441713D0A87AF46514114AE47015833544148E17A64B04651419A9999D95233544152B81EE5B0465141A4703D8A4D335441CDCCCC5CB1465141F6285C7F46335441CDCCCC7CB1465141A4703DEA42335441B81E85ABB14651416666665640335441295C8FF2B2465141E17A145E373354416799DC85B346514163F7F56F3033544110AD7EE7AB465141919CF48D3033544105000000333333B3B1465141713D0A17683354418FC2F568B1465141B81E852B673354410AD7A300B3465141B81E859B66335441A4703D4AB34651413D0AD78367335441333333B3B1465141713D0A176833544101030000000100000005000000AE47E12A904651417B14AE67A13354417B14AE67964651410AD7A3709E3354410AD7A3908E465141713D0A477C3354416666662689465141A4703D6A7E335441AE47E12A904651417B14AE67A13354410103000000020000000D0000000AD7A39089465141D7A3701DA5335441E17A14CE83465141A4703DCAA73354411F85EB617F4651418FC2F5A8A93354413D0AD7A37B4651415C8FC2A5AA335441EC51B85E7846514166666676AA3354413333332378465141D7A3704DAB335441CDCCCC1C774651417B14AE67B13354417B14AEC778465141D7A370BDB3335441D7A3703D7A46514166666666B53354419A9999697F465141B81E85DBB0335441C3F5289C82465141CDCCCC0CAE335441AE47E1CA86465141C3F528ACA83354410AD7A39089465141D7A3701DA533544105000000B81E853B80465141F6285CBFAA335441B81E853B80465141D7A370DDA9335441E17A141E814651415C8FC2E5A933544152B81E1581465141F6285CBFAA335441B81E853B80465141F6285CBFAA3354410103000000010000000A000000666666965E46514148E17AF478365441AE47E10A6146514114AE47617136544148E17A145E4651415C8FC275703654415C8FC29544465141D7A3706D73365441E17A149E44465141295C8F2278365441E17A14FE43465141A4703D9A7A3654413D0AD7F33F465141F6285CFF7F3654411F85EBE14D4651415C8FC2557E365441295C8F725D465141A4703D7A7C365441666666965E46514148E17AF478365441
+</a>
+
+<b>
+01060000000100000001030000000200000079000000B81E858B914651419A9999795E33544148E17AB4914651413D0AD7536333544114AE470192465141B81E856B6B3354417B14AE7792465141AE47E11A6C3354413D0AD76393465141F6285CEF6B3354419A9999E997465141295C8F026A335441B81E85DB9846514185EB51A869335441295C8F229C4651411F85EB9168335441B81E85FBA04651411F85EBE1663354418FC2F508A4465141295C8FB2653354410AD7A390A6465141295C8FC264335441AE47E14AA9465141E17A149E63335441713D0AE7AB46514114AE47B162335441D7A3704DAF465141333333B361335441AE47E19AB146514114AE472161335441D7A3708DB0465141000000A05D335441AE47E11AAF4651410AD7A3E057335441666666D6AF465141E17A14BE523354413D0AD773B0465141000000604D3354411F85EBF1B04651416666668646335441CDCCCC3CB1465141C3F5284C403354411F85EB61B24651411F85EB81373354418FC2F508AF465141F6285CFF37335441C3F5283CAD4651410000005038335441C3F528FCAA4651410AD7A3B03833544100000080AB465141F6285C6F32335441713D0AE7AA465141F6285C0F3133544185EB51C8AA46514185EB5118303354419A9999B9AA465141AE47E1AA2E33544152B81E75AA465141295C8F722D3354411F85EBF1A9465141EC51B8FE2B335441C3F5284CA9465141E17A148E2B33544148E17A54A846514185EB51082B335441B81E85FBA6465141E17A146E2A3354413D0AD703A1465141B81E858B2A33544148E17A849C465141000000B02A33544152B81EB598465141A4703DFA2A33544185EB51B893465141000000302B33544166666656924651415C8FC2F5243354415C8FC26591465141F6285C0F213354413D0AD7A38D4651419A9999591B33544114AE47618A465141E17A14BE18335441E17A14EE88465141666666C610335441CDCCCC6C8846514185EB51B807335441295C8FA27C4651410000004008335441D7A3702D83465141A4703D1A13335441713D0A577D465141EC51B88E10335441EC51B85E7A46514185EB51E80A335441000000D076465141E17A148E0A33544185EB51A8734651419A99991909335441F6285C9F7046514148E17AC40B335441D7A3707D6E4651413333332311335441EC51B88E6A465141E17A149E0C3354413D0AD763654651410AD7A3300D335441EC51B85E614651419A9999C907335441CDCCCC9C5F465141B81E854B0933544148E17AF463465141666666B60F33544152B81EF564465141E17A141E1233544148E17AC465465141E17A146E14335441AE47E17A6646514152B81E851533544114AE4791674651410AD7A3901633544114AE47E168465141EC51B8AE173354417B14AED76946514148E17AB418335441B81E85CB6A4651413D0AD7531A3354418FC2F5486B465141A4703D1A1B33544148E17A446D465141E17A143E1C335441D7A370FD6D4651413D0AD7131D335441C3F5285C6F4651413D0AD7D31E33544114AE47E170465141713D0A771E33544185EB51087346514114AE47111C33544148E17A4478465141B81E857B1D335441EC51B82E7F465141B81E859B21335441AE47E18A86465141CDCCCC4C1D33544114AE47918846514185EB51C820335441B81E854B844651411F85EBB124335441A4703D5A83465141713D0A372633544114AE47418546514114AE47E12933544185EB510886465141EC51B85E2D335441E17A148E87465141295C8F322F335441A4703D1A8A465141666666B62E33544148E17AE48C4651418FC2F5482C3354413D0AD7038F46514148E17A842C3354413D0AD7A38D46514148E17AB42F3354417B14AEA789465141B81E858B3333544114AE4701844651413333335338335441AE47E1EA864651415C8FC2653B33544185EB5148884651417B14AEF73C335441666666E688465141EC51B8EE3D335441E17A145E89465141295C8F123F3354415C8FC295894651413D0AD7933F335441AE47E11A8A46514114AE4751403354411F85EB018B4651410AD7A32041335441B81E857B8B46514185EB5168433354411F85EB118C465141D7A3700D453354419A9999798C4651417B14AEF7453354411F85EB318D465141CDCCCC2C463354413333334391465141A4703D5A47335441666666E69446514185EB51D84A33544152B81EE595465141E17A14FE4B335441F6285C9F964651419A9999B94A33544166666676954651413D0AD7A34933544166666646974651418FC2F5F8473354411F85EBB1964651418FC2F598463354413333330399465141000000704533544148E17AF49946514114AE47C14733544148E17A549B4651413D0AD77346335441F6285CFF9C4651419A99998947335441F6285CFF9C465141713D0A4749335441AE47E11A9F4651410AD7A320493354411F85EB41A0465141AE47E1DA493354413D0AD7A3A0465141333333E34E335441F6285CFF974651411F85EB814F33544152B81EB597465141333333734B335441D7A370BD9646514148E17A944C335441666666F694465141333333334F3354418FC2F56893465141EC51B8CE51335441EC51B87E9246514100000070543354417B14AE17924651418FC2F5D855335441CDCCCCAC91465141C3F5280C58335441CDCCCC7C91465141000000605A335441B81E858B914651419A9999795E335441050000008FC2F5A8A1465141A4703D7A4F335441D7A3700DA3465141295C8F724F335441D7A3700DA34651417B14AEC75033544114AE47A1A14651417B14AEC7503354418FC2F5A8A1465141A4703D7A4F335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>447285 - 3280652
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000040000000103000000020000005100000010AD7EE7AB465141919CF48D30335441AC8D21E9AB4651416966811A2A3354417B14AE37A2465141E17A14EE1B3354410297DB229C465141E6195F401F335441938065B190465141E10532DB1D335441D2F019B393465141B10D7E182B335441E17E42E2A64651414119916E2A3354411F85EBF1A9465141EC51B8FE2B335441634DC6B6AA4651416B80FE9D2E335441713D0AE7AA465141F6285C0F3133544100000080AB465141F6285C6F32335441C3F528FCAA4651410AD7A3B038335441C3F5283CAD46514100000050383354418FC2F508AF465141F6285CFF373354411F85EB61B24651411F85EB8137335441CDCCCC3CB1465141C3F5284C403354411F85EBF1B046514166666686463354413D0AD773B0465141000000604D335441666666D6AF465141E17A14BE52335441AE47E11AAF4651410AD7A3E057335441D7A3708DB0465141000000A05D335441AE47E19AB146514114AE472161335441A4703DAAB1465141EC51B8BE613354413D0AD7C3B0465141333333E362335441EC51B81EAE465141295C8F8264335441295C8F92AA4651411F85EB2166335441000000D0AA465141C3F528BC663354419A999909AD4651413D0AD7F3653354415C8FC265AD4651415C8FC25567335441C3F528BCAC465141F6285C8F693354413D0AD703AC465141C3F528DC693354410AD7A350AC4651413D0AD7B36A33544114AE4771AF4651410AD7A37069335441E17A14BEAF465141295C8FD26A335441D7A3703DAE4651417B14AE076F335441D7A370EDA746514152B81EE570335441F6285CAFA746514148E17A646F335441CDCCCCCCA4465141AE47E14A70335441A4703D7AA34651417B14AEE76B335441000000F0A24651415C8FC2156C335441713D0A37A24651417B14AEB768335441B81E85CBA1465141F6285CFF6733544114AE4731A14651410AD7A3E067335441E17A145E9E46514185EB51A86833544148E17A349C465141295C8F4269335441E17A142E98465141333333136B335441713D0AC798465141CDCCCC0C703354417B14AE379B4651411F85EBB17B3354413D0AD7839B465141EC51B81E7D3354418FC2F5389C4651415C8FC2757E335441B81E850B9D465141000000D07F335441B81E85AB9D4651417B14AE67803354415C8FC2A59E465141AE47E11A813354415C8FC2959F465141666666A681335441C3F5281CA34651417B14AE57833354411F85EBF1A4465141B81E852B84335441E17A144EA74651413D0AD73385335441C3F528ECAB465141AE47E1BA833354419A9999B9AB465141F6285C3F8333544152B81E95AA465141000000A07F3354411F85EB91B0465141000000407D33544133333303B74651413D0AD7037A3354417B14AE77BC465141666666B67733544114AE47D1BD4651410AD7A33077335441AE47E14AC14651410AD7A3D0753354411E6C7D48C746514191C70FD872335441A4703D0AC54651413D0AD7336D335441C3F5289CBE465141D7A3709D5E33544148E17AD4BD465141666666165D335441CDCCCC7CB7465141AE47E18A5E335441333333B3B1465141CDCCCCFC5F3354419A9999F9B0465141C3F528BC5D335441713D0A87AF46514114AE47015833544148E17A64B04651419A9999D95233544152B81EE5B0465141A4703D8A4D335441CDCCCC5CB1465141F6285C7F46335441CDCCCC7CB1465141A4703DEA42335441B81E85ABB14651416666665640335441295C8FF2B2465141E17A145E373354416799DC85B346514163F7F56F3033544110AD7EE7AB465141919CF48D3033544105000000333333B3B1465141713D0A17683354418FC2F568B1465141B81E852B673354410AD7A300B3465141B81E859B66335441A4703D4AB34651413D0AD78367335441333333B3B1465141713D0A176833544101030000000100000005000000AE47E12A904651417B14AE67A13354417B14AE67964651410AD7A3709E3354410AD7A3908E465141713D0A477C3354416666662689465141A4703D6A7E335441AE47E12A904651417B14AE67A13354410103000000020000000D0000000AD7A39089465141D7A3701DA5335441E17A14CE83465141A4703DCAA73354411F85EB617F4651418FC2F5A8A93354413D0AD7A37B4651415C8FC2A5AA335441EC51B85E7846514166666676AA3354413333332378465141D7A3704DAB335441CDCCCC1C774651417B14AE67B13354417B14AEC778465141D7A370BDB3335441D7A3703D7A46514166666666B53354419A9999697F465141B81E85DBB0335441C3F5289C82465141CDCCCC0CAE335441AE47E1CA86465141C3F528ACA83354410AD7A39089465141D7A3701DA533544105000000B81E853B80465141F6285CBFAA335441B81E853B80465141D7A370DDA9335441E17A141E814651415C8FC2E5A933544152B81E1581465141F6285CBFAA335441B81E853B80465141F6285CBFAA3354410103000000010000000A000000666666965E46514148E17AF478365441AE47E10A6146514114AE47617136544148E17A145E4651415C8FC275703654415C8FC29544465141D7A3706D73365441E17A149E44465141295C8F2278365441E17A14FE43465141A4703D9A7A3654413D0AD7F33F465141F6285CFF7F3654411F85EBE14D4651415C8FC2557E365441295C8F725D465141A4703D7A7C365441666666965E46514148E17AF478365441
+</a>
+
+<b>
+01060000000100000001030000000200000079000000B81E858B914651419A9999795E33544148E17AB4914651413D0AD7536333544114AE470192465141B81E856B6B3354417B14AE7792465141AE47E11A6C3354413D0AD76393465141F6285CEF6B3354419A9999E997465141295C8F026A335441B81E85DB9846514185EB51A869335441295C8F229C4651411F85EB9168335441B81E85FBA04651411F85EBE1663354418FC2F508A4465141295C8FB2653354410AD7A390A6465141295C8FC264335441AE47E14AA9465141E17A149E63335441713D0AE7AB46514114AE47B162335441D7A3704DAF465141333333B361335441AE47E19AB146514114AE472161335441D7A3708DB0465141000000A05D335441AE47E11AAF4651410AD7A3E057335441666666D6AF465141E17A14BE523354413D0AD773B0465141000000604D3354411F85EBF1B04651416666668646335441CDCCCC3CB1465141C3F5284C403354411F85EB61B24651411F85EB81373354418FC2F508AF465141F6285CFF37335441C3F5283CAD4651410000005038335441C3F528FCAA4651410AD7A3B03833544100000080AB465141F6285C6F32335441713D0AE7AA465141F6285C0F3133544185EB51C8AA46514185EB5118303354419A9999B9AA465141AE47E1AA2E33544152B81E75AA465141295C8F722D3354411F85EBF1A9465141EC51B8FE2B335441C3F5284CA9465141E17A148E2B33544148E17A54A846514185EB51082B335441B81E85FBA6465141E17A146E2A3354413D0AD703A1465141B81E858B2A33544148E17A849C465141000000B02A33544152B81EB598465141A4703DFA2A33544185EB51B893465141000000302B33544166666656924651415C8FC2F5243354415C8FC26591465141F6285C0F213354413D0AD7A38D4651419A9999591B33544114AE47618A465141E17A14BE18335441E17A14EE88465141666666C610335441CDCCCC6C8846514185EB51B807335441295C8FA27C4651410000004008335441D7A3702D83465141A4703D1A13335441713D0A577D465141EC51B88E10335441EC51B85E7A46514185EB51E80A335441000000D076465141E17A148E0A33544185EB51A8734651419A99991909335441F6285C9F7046514148E17AC40B335441D7A3707D6E4651413333332311335441EC51B88E6A465141E17A149E0C3354413D0AD763654651410AD7A3300D335441EC51B85E614651419A9999C907335441CDCCCC9C5F465141B81E854B0933544148E17AF463465141666666B60F33544152B81EF564465141E17A141E1233544148E17AC465465141E17A146E14335441AE47E17A6646514152B81E851533544114AE4791674651410AD7A3901633544114AE47E168465141EC51B8AE173354417B14AED76946514148E17AB418335441B81E85CB6A4651413D0AD7531A3354418FC2F5486B465141A4703D1A1B33544148E17A446D465141E17A143E1C335441D7A370FD6D4651413D0AD7131D335441C3F5285C6F4651413D0AD7D31E33544114AE47E170465141713D0A771E33544185EB51087346514114AE47111C33544148E17A4478465141B81E857B1D335441EC51B82E7F465141B81E859B21335441AE47E18A86465141CDCCCC4C1D33544114AE47918846514185EB51C820335441B81E854B844651411F85EBB124335441A4703D5A83465141713D0A372633544114AE47418546514114AE47E12933544185EB510886465141EC51B85E2D335441E17A148E87465141295C8F322F335441A4703D1A8A465141666666B62E33544148E17AE48C4651418FC2F5482C3354413D0AD7038F46514148E17A842C3354413D0AD7A38D46514148E17AB42F3354417B14AEA789465141B81E858B3333544114AE4701844651413333335338335441AE47E1EA864651415C8FC2653B33544185EB5148884651417B14AEF73C335441666666E688465141EC51B8EE3D335441E17A145E89465141295C8F123F3354415C8FC295894651413D0AD7933F335441AE47E11A8A46514114AE4751403354411F85EB018B4651410AD7A32041335441B81E857B8B46514185EB5168433354411F85EB118C465141D7A3700D453354419A9999798C4651417B14AEF7453354411F85EB318D465141CDCCCC2C463354413333334391465141A4703D5A47335441666666E69446514185EB51D84A33544152B81EE595465141E17A14FE4B335441F6285C9F964651419A9999B94A33544166666676954651413D0AD7A34933544166666646974651418FC2F5F8473354411F85EBB1964651418FC2F598463354413333330399465141000000704533544148E17AF49946514114AE47C14733544148E17A549B4651413D0AD77346335441F6285CFF9C4651419A99998947335441F6285CFF9C465141713D0A4749335441AE47E11A9F4651410AD7A320493354411F85EB41A0465141AE47E1DA493354413D0AD7A3A0465141333333E34E335441F6285CFF974651411F85EB814F33544152B81EB597465141333333734B335441D7A370BD9646514148E17A944C335441666666F694465141333333334F3354418FC2F56893465141EC51B8CE51335441EC51B87E9246514100000070543354417B14AE17924651418FC2F5D855335441CDCCCCAC91465141C3F5280C58335441CDCCCC7C91465141000000605A335441B81E858B914651419A9999795E335441050000008FC2F5A8A1465141A4703D7A4F335441D7A3700DA3465141295C8F724F335441D7A3700DA34651417B14AEC75033544114AE47A1A14651417B14AEC7503354418FC2F5A8A1465141A4703D7A4F335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>302886 - 302892
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000B000000C3F528EC54DF504114AE475115365541CDCCCCDC57DF50415C8FC2151236554148E17AD45ADF5041333333D30E3655410AD7A3B04FDF5041713D0AE7FE3555415C8FC23543DF50415C8FC255ED3555417B14AEA740DF50418FC2F5E8F1355541713D0A473EDF5041AE47E12AF6355541713D0A773ADF50417B14AEA7FE3555419A9999393ADF5041F6285CAFFF3555411F85EBC14EDF50417B14AE171C365541C3F528EC54DF504114AE475115365541
+</a>
+
+<b>
+01060000000300000001030000000100000011000000F4B790B560DF5041359431530836554185EB518864DF5041A4703D2A04365541B81E85BB72DF5041F6285C8FF4355541D7A370BD72DF5041295C8F12F33555415C8FC2C564DF5041E17A145EE3355541B81E857B62DF5041713D0A77E035554114AE47315FDF5041EC51B88EDD35554152B81E355BDF5041295C8FC2DA3555413D0AD7C359DF5041F6285CBFD93555413D0AD71355DF50415C8FC255D6355541EC51B8DE51DF5041F6285CAFD4355541666666264FDF50410AD7A310D8355541666666E64CDF5041713D0AF7DB355541666666A649DF504133333383E1355541BDDFBBCF47DF50414C4E79F8E43555410AD7A32055DF50415C8FC2C5F7355541F4B790B560DF5041359431530836554101030000000100000004000000966D01CA5ADF5041C0933AC40E36554185D655F050DF504149BAFBAF00365541F7331D9F5ADF5041C9D4E5F20E365541966D01CA5ADF5041C0933AC40E3655410103000000010000000400000024965FDA4CDF5041238CB5E8FA355541892A5F4C43DF504189E79675ED3555413C6DA0FD42DF5041C463B309EE35554124965FDA4CDF5041238CB5E8FA355541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>755124 - 121134
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001600000000000050CCD05041D7A370DDB2D1544183E6C078CED05041C713EF27ADD1544172156C7FDAD05041E89074DDABD15441B51F51ABE6D050410E32E70CADD15441E17A14CEE9D0504185EB5108A5D15441EC51B86EECD050417B14AEF79BD15441713D0A37E2D0504152B81E259AD154419A999949DED0504152B81E559BD154418FC2F598DAD050413D0AD7F39BD15441E17A146ECFD050415C8FC2C59AD15441AE47E14ACED05041333333D39ED154418FC2F538CDD05041D7A3708DA1D1544152B81E95C9D05041AE47E17AABD15441B01BC115C8D0504197277702B0D1544133333303C7D0504114AE4721B3D154417B14AEA7C6D050413D0AD723B4D15441EC51B87EC5D0504185EB5108B9D1544133333303C5D050413D0AD793BCD15441A4703DEACAD05041AE47E13ABCD15441AE47E13ACBD050418FC2F5B8B7D1544185EB51B8CBD0504185EB5108B5D1544100000050CCD05041D7A370DDB2D15441
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000B81F51ABE6D050411332E70CADD154413A9D9A30E9D050414359F89AA6D15441E17A14CEE9D0504185EB5108A5D1544134FF5E46EAD05041195F4F69A3D154411ADEEE69EAD05041AD959EEEA2D15441EC51B86EECD050417B14AEF79BD15441713D0A37E2D0504152B81E259AD154419A999949DED0504152B81E559BD154418FC2F598DAD050413D0AD7F39BD154410D03D255DAD0504102EBBEEC9BD154419AFFFC49DAD050413C9968EF9BD15441AD0FF1C9D5D0504170EB308F9BD15441E17A146ECFD050415C8FC2C59AD15441AE47E14ACED05041333333D39ED154418FC2F538CDD05041D7A3708DA1D15441B08954DDCAD05041289FBDFBA7D1544133333303C7D0504114AE4721B3D154417B14AEA7C6D050413D0AD723B4D15441EC51B87EC5D0504185EB5108B9D1544133333303C5D050413D0AD793BCD15441514CDED2CAD050411487413CBCD15441AE47E13ACBD050418FC2F5B8B7D1544185EB51B8CBD0504185EB5108B5D1544100000050CCD05041D7A370DDB2D154411BC49E27CDD050418A8654A3B0D15441D67F8AB2CDD05041C35A0434AFD1544185E6C078CED05041CA13EF27ADD15441144B7E6CD9D050416AACF7FAABD15441128F9F29DAD050410C57AAE6ABD1544172156C7FDAD05041EC9074DDABD15441B81F51ABE6D050411332E70CADD15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>755124 - 321218
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001600000000000050CCD05041D7A370DDB2D1544183E6C078CED05041C713EF27ADD1544172156C7FDAD05041E89074DDABD15441B51F51ABE6D050410E32E70CADD15441E17A14CEE9D0504185EB5108A5D15441EC51B86EECD050417B14AEF79BD15441713D0A37E2D0504152B81E259AD154419A999949DED0504152B81E559BD154418FC2F598DAD050413D0AD7F39BD15441E17A146ECFD050415C8FC2C59AD15441AE47E14ACED05041333333D39ED154418FC2F538CDD05041D7A3708DA1D1544152B81E95C9D05041AE47E17AABD15441B01BC115C8D0504197277702B0D1544133333303C7D0504114AE4721B3D154417B14AEA7C6D050413D0AD723B4D15441EC51B87EC5D0504185EB5108B9D1544133333303C5D050413D0AD793BCD15441A4703DEACAD05041AE47E13ABCD15441AE47E13ACBD050418FC2F5B8B7D1544185EB51B8CBD0504185EB5108B5D1544100000050CCD05041D7A370DDB2D15441
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000B81F51ABE6D050411332E70CADD154413A9D9A30E9D050414359F89AA6D15441E17A14CEE9D0504185EB5108A5D1544134FF5E46EAD05041195F4F69A3D154411ADEEE69EAD05041AD959EEEA2D15441EC51B86EECD050417B14AEF79BD15441713D0A37E2D0504152B81E259AD154419A999949DED0504152B81E559BD154418FC2F598DAD050413D0AD7F39BD154410D03D255DAD0504102EBBEEC9BD154419AFFFC49DAD050413C9968EF9BD15441AD0FF1C9D5D0504170EB308F9BD15441E17A146ECFD050415C8FC2C59AD15441AE47E14ACED05041333333D39ED154418FC2F538CDD05041D7A3708DA1D15441B08954DDCAD05041289FBDFBA7D1544133333303C7D0504114AE4721B3D154417B14AEA7C6D050413D0AD723B4D15441EC51B87EC5D0504185EB5108B9D1544133333303C5D050413D0AD793BCD15441514CDED2CAD050411487413CBCD15441AE47E13ACBD050418FC2F5B8B7D1544185EB51B8CBD0504185EB5108B5D1544100000050CCD05041D7A370DDB2D154411BC49E27CDD050418A8654A3B0D15441D67F8AB2CDD05041C35A0434AFD1544185E6C078CED05041CA13EF27ADD15441144B7E6CD9D050416AACF7FAABD15441128F9F29DAD050410C57AAE6ABD1544172156C7FDAD05041EC9074DDABD15441B81F51ABE6D050411332E70CADD15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>4764 - 58777
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000029000000AE47E15A3C1551410AD7A3B0CEF854410AD7A3E03B155141EC51B82ED3F854418FC2F5583A155141D7A3704DD9F854411F85EB213415514152B81E15DEF85441295C8F8232155141F6285C6FDFF8544148E17AA42D155141A4703DCAE3F85441B81E855B29155141666666E6E7F854411F85EB412815514185EB5168E7F85441AE47E14A2C15514148E17AC4E9F85441295C8F8230155141D7A370CDEBF85441D7A3703D341551411F85EB11EDF854413D0AD77335155141EC51B8AEE7F854419A9999793915514152B81E45E9F85441000000F03D15514100000080EAF854413333334342155141C3F5286CEBF854413333335346155141E17A14BEEBF85441E17A143E491551419A9999D9EBF8544148E17AB44815514114AE4771F0F85441000000C04815514152B81E85F5F8544152B81E25521551411F85EB61F5F8544148E17AA45215514100000060F5F854410000005053155141C3F5285CF5F85441EC51B8BE561551417B14AE47F5F85441D7A370BD5A15514100000030F5F85441E17A144E5A155141B81E855BF0F85441A4703DBA5B15514114AE4741E9F85441EC51B85E52155141D7A3701DE8F854410AD7A3E05215514152B81EC5E4F85441F6285C1F54155141333333A3DCF85441000000A0541551415C8FC265D6F8544152B81E254B1551417B14AE97D5F85441333333234B155141AE47E16AD5F8544185EB51284B155141AE47E1EAD2F85441C3F5281C4C15514114AE47D1CBF854413D0AD7E3491551415C8FC2D5CBF85441C3F5284C4615514133333303CBF854411F85EBC14215514133333373CAF85441295C8FC2401551417B14AE57CAF854411F85EBE13D155141D7A3700DCBF854411F85EB413C1551410AD7A3A0CBF85441AE47E15A3C1551410AD7A3B0CEF85441
+</a>
+
+<b>
+010600000001000000010300000001000000320000006FBDE0595A1551415A0D9D20F0F85441A15D92575A155141ECB69CAFEFF854415984FA6F5B155141DE383639E9F85441C40F9A58521551416B7CD83CE8F854418389A780521551414B09C63DE7F854410AD7A3E05215514152B81EC5E4F85441F6285C1F54155141333333A3DCF85441000000A0541551415C8FC265D6F8544198DDCA9C53155141A7CDBF4FD6F854411414F5394B1551416F54F8B9D5F8544189A7543D4B155141A361BC99D5F8544152B81E254B1551417B14AE97D5F85441333333234B155141AE47E16AD5F8544185EB51284B155141AE47E1EAD2F85441A0D15C0C4C155141F6FB0847CCF8544108051C8F4315514139D1E6C5CAF854410BE33626411551416892C771CAF8544193BF55223D155141344C3B51CBF854411F85EB413C1551410AD7A3A0CBF85441AE47E15A3C1551410AD7A3B0CEF854413E96C0483C155141EE3A315BCFF85441129F6C543C15514119FDF95BD0F854414DC343013C155141F547C6FBD1F854410AD7A3E03B155141EC51B82ED3F854415F6AD1503B1551419604026ED5F854415A78043C3B155141B4BE02D6D5F8544136376ADE3A1551413DD19E37D7F854418FC2F5583A155141D7A3704DD9F85441565A1A4F3A155141FB680555D9F85441E7BBA63F3A155141F4DB648FD9F854419542C37832155141A6469779DFF854411BCA2F4E3615514144E6BA8AE2F8544134E2E689351551410F69A4B0E7F854415E3E0B7F3D155141CAAADD60EAF854411AA291813D155141E9D48F61EAF854414DAC35843D155141302B4A62EAF854417BDEA7C23D155141AC728073EAF85441DD2570004315514169EE107BEBF85441C1E6778545155141DBEADFADEBF85441B1DB602246155141C7FE3BBAEBF85441B5D56FAB48155141B35A32D4EBF85441E17A143E491551419A9999D9EBF854412E9B394149155141662F30DAEBF85441B40CB7B7481551418CD14CDEF1F85441268D27B9481551412519B880F2F8544117F20FD14815514157B7C47DF5F85441E6C79C735A155141410E9B0DF5F854418795E35E5A155141EC692816F1F85441E17A144E5A155141B81E855BF0F854416FBDE0595A1551415A0D9D20F0F85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>6360 - 3044105
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B0000006666660669BA50415C8FC22535DB544152B81ED578BA50413D0AD74346DB54413333331388BA5041C3F5284C54DB54410AD7A3508CBA5041713D0A9758DB5441EC51B82EA6BA50418FC2F5C825DB54419A9999D97BBA5041F6285C0F1BDB54418FC2F58879BA50411F85EB111BDB54415C8FC2E574BA50413D0AD71323DB5441A4703D0A70BA5041333333B32ADB544114AE47916ABA50410AD7A37032DB54416666660669BA50415C8FC22535DB5441
+</a>
+
+<b>
+01060000000100000001030000000100000005000000805224608CBA5041BEF3977858DB544126EEB1DE8FBA5041225153915ADB544178AC39DD93BA50418916DA6553DB5441F741B2FB8FBA50411651B06251DB5441805224608CBA5041BEF3977858DB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>6360 - 3291223
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B0000006666660669BA50415C8FC22535DB544152B81ED578BA50413D0AD74346DB54413333331388BA5041C3F5284C54DB54410AD7A3508CBA5041713D0A9758DB5441EC51B82EA6BA50418FC2F5C825DB54419A9999D97BBA5041F6285C0F1BDB54418FC2F58879BA50411F85EB111BDB54415C8FC2E574BA50413D0AD71323DB5441A4703D0A70BA5041333333B32ADB544114AE47916ABA50410AD7A37032DB54416666660669BA50415C8FC22535DB5441
+</a>
+
+<b>
+01060000000100000001030000000100000005000000805224608CBA5041BEF3977858DB544126EEB1DE8FBA5041225153915ADB544178AC39DD93BA50418916DA6553DB5441F741B2FB8FBA50411651B06251DB5441805224608CBA5041BEF3977858DB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>6422 - 3269393
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000008000000B81E857B29BA50413D0AD7731EE0544148E17A8429BA504114AE474131E054415C8FC2152DBA50411F85EB5139E054413D0AD7A330BA5041B81E85BB3FE054416666662632BA50413D0AD74342E0544185EB511832BA50417B14AE2723E05441E17A14EE30BA50410000007021E05441B81E857B29BA50413D0AD7731EE05441
+</a>
+
+<b>
+0106000000010000000103000000010000001A00000048E17A0431BA504185EB513867E054417B14AE3732BA50411F85EB5166E054416666662632BA50413D0AD74342E0544124AE522C30BA5041D67BEFE33EE0544156D0CA462EBA504120EA22783BE0544130B040752CBA5041EE3010E737E05441F43FF3ED29BA5041F50EB72F32E0544106EC268429BA5041EE38189130E05441693C0D7F29BA504131101FDD25E05441B81E857B29BA50413D0AD7731EE054413D0AD72320BA504148E17AB41AE0544152B81ED51DBA5041C3F528BC1AE05441EC51B83E0EBA504148E17A7421E05441E17A14AE03BA50418FC2F57826E054415C8FC25501BA50411F85EB112AE054410AD7A3D0FEB95041D7A3706D30E054417B14AE57FDB950411F85EB6137E054411F85EB0121BA50418FC2F5683BE0544152B81EC527BA5041333333E33EE05441AE47E1EA28BA50410000007041E054410AD7A35028BA504185EB51D84DE05441CDCCCC5C0FBA504185EB51A852E05441A4703D8A0EBA504185EB518861E054411F85EB2124BA504148E17A1464E054411F85EB312CBA50410AD7A3D065E0544148E17A0431BA504185EB513867E05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>6433 - 142552
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000020000000295C8F82A0BA50413D0AD77392DB5441713D0A179EBA5041295C8F0296DB5441C3F5287CA3BA5041B81E85DB98DB544148E17AA4E0BA5041B81E856B5DDB54419A999909E1BA5041EC51B89E5BDB5441D7A3705DDABA5041295C8F125CDB5441E17A140ECEBA5041A4703D7A5CDB54410AD7A340C3BA50411F85EBA15CDB5441F6285C9FB4BA5041B81E85AB5CDB544100000000B1BA5041000000B05CDB5441D7A3704DA9BA5041E17A145E5DDB5441AE47E10AA3BA5041EC51B8CE5EDB5441EC51B8CE9CBA5041F6285CEF60DB54410AD7A33096BA5041E17A14EE63DB544114AE473190BA504114AE47A167DB5441000000908ABA504152B81E856CDB5441D7A3705D87BA5041B81E857B6FDB54418FC2F5D882BA5041B81E85EB73DB5441000000807DBA50417B14AE4779DB54413D0AD76377BA5041EC51B8CE7FDB5441D7A3705D76BA50411F85EB9181DB5441AE47E10A77BA5041E17A14BE84DB54419A9999A979BA50418FC2F55887DB5441666666567DBA5041295C8FD289DB544148E17A1482BA5041CDCCCCEC8BDB54416666665687BA504114AE47018DDB54417B14AE079ABA504114AE47017ADB54411F85EB51A1BA5041C3F5286C7EDB5441C3F528DCA9BA50413D0AD79383DB5441D7A3703DA8BA50417B14AE3788DB544148E17AB4A4BA5041A4703DAA8DDB5441295C8F82A0BA50413D0AD77392DB5441
+</a>
+
+<b>
+0106000000010000000103000000010000003200000082227755AFBA5041F8FDCF1B9FDB5441996E2BAFB5BA5041D204F44EA2DB5441CB51168DB9BA50414200EF3CA4DB544139641FA5BCBA504191C93CBAA5DB544170A202D5C2BA50411CFADAB69FDB54417C28DA98C4BA5041F0B3B5FF9DDB54411D2F16ADC5BA50414AB93CF39CDB5441BB607FA5CABA50410668941E98DB54418D1E974DCCBA5041344E678296DB5441530A0DDECCBA5041BB8900F695DB5441FA96D312CDBA5041F89EB5C295DB54419530A68FD7BA5041AFD853918BDB54411D7CB5E6D9BA5041BFC9194B89DB5441774B2C37DFBA50411E40DD2084DB54418FC2F558E3BA5041CDCCCC1C80DB5441E4288ABCE3BA5041ED4C2BBC7FDB5441F7CEBEF9E8BA50419E1CD3A47ADB5441B966720BF5BA5041AAA7ACE96EDB5441DA32AC8BFCBA5041EC583D9F67DB5441B0A6CEEEFCBA504140D1E13E67DB5441B2BD944705BB50412F25F7215FDB5441713D0AB706BB5041CDCCCCBC5DDB5441D82A6BEC04BB5041B29FE2E45BDB5441B05A231504BB5041E95D5D075BDB54417E9CD07202BB50415D8BEA5859DB5441AC3595AA01BB5041538333CE58DB54413333339300BB5041EC51B8FE58DB5441E17A14EEF7BA5041000000105ADB54417D3A7A82F4BA50413F8C415A5ADB54418F1C45F6F0BA504101F546A75ADB54410AD7A370EFBA504185EB51C85ADB5441E37A5B2BEBBA5041825006135BDB544148E17A54E9BA5041333333335BDB544145A24A58E8BA5041DD10AF3D5BDB544188D6D53AE4BA504105447A695BDB5441480CAF6BE2BA50415BD212B15BDB544148E17AA4E0BA5041B81E856B5DDB54417E0C0A5BDDBA50413CC54B9D60DB544169711CB0DBBA50416097373C62DB54419A5597CAD6BA5041A9A47BFE66DB544171EBE632D6BA504153EEE79167DB544109DED7C3D2BA504112F63DE86ADB54416736E929CFBA504137EA3E686EDB5441F0353A79C8BA5041A2FCC2E874DB54413F3BDABCABBA50412DC03ED690DB5441B586454FAABA5041775B8B3992DB544189541562A5BA50415649430397DB5441AF8A2338A4BA50415EF1D32498DB5441FEFA438FA3BA5041B7A7F3C898DB544182227755AFBA5041F8FDCF1B9FDB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>6480 - 3044105
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000000A0000000AD7A3508CBA5041713D0A9758DB54418FC2F5B894BA50419A99991961DB5441D7A3707D9BBA5041C3F528CC5DDB5441CDCCCC2CA2BA50411F85EB915BDB5441B81E853BA7BA50415C8FC2855ADB544166666606A9BA5041713D0A2759DB5441CDCCCC4CBFBA50417B14AE672DDB54417B14AEA7BEBA5041C3F528FC2BDB5441EC51B82EA6BA50418FC2F5C825DB54410AD7A3508CBA5041713D0A9758DB5441
+</a>
+
+<b>
+01060000000100000001030000000100000005000000805224608CBA5041BEF3977858DB544126EEB1DE8FBA5041225153915ADB544178AC39DD93BA50418916DA6553DB5441F741B2FB8FBA50411651B06251DB5441805224608CBA5041BEF3977858DB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>6480 - 3291223
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000000A0000000AD7A3508CBA5041713D0A9758DB54418FC2F5B894BA50419A99991961DB5441D7A3707D9BBA5041C3F528CC5DDB5441CDCCCC2CA2BA50411F85EB915BDB5441B81E853BA7BA50415C8FC2855ADB544166666606A9BA5041713D0A2759DB5441CDCCCC4CBFBA50417B14AE672DDB54417B14AEA7BEBA5041C3F528FC2BDB5441EC51B82EA6BA50418FC2F5C825DB54410AD7A3508CBA5041713D0A9758DB5441
+</a>
+
+<b>
+01060000000100000001030000000100000005000000805224608CBA5041BEF3977858DB544126EEB1DE8FBA5041225153915ADB544178AC39DD93BA50418916DA6553DB5441F741B2FB8FBA50411651B06251DB5441805224608CBA5041BEF3977858DB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>6500 - 4175798
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001600000048E17A0447BB504114AE47F134DA544148E17A5443BB50417B14AE7730DA5441E17A14CE3EBB5041666666762ADA54417B14AE172FBB504114AE47F12FDA54415C8FC2252EBB50415C8FC24530DA54413D0AD7A319BB5041CDCCCC6C37DA54416666668612BB5041713D0A5744DA54413D0AD7530EBB5041C3F5286C4BDA5441CDCCCCBC10BB5041CDCCCC4C4FDA54417B14AE8711BB504114AE47E151DA5441B81E858B11BB5041EC51B89E54DA54415C8FC22511BB5041713D0AA758DA5441CDCCCC0C18BB5041C3F528CC55DA544152B81E8523BB5041C3F528BC51DA544148E17A742DBB504114AE47F14DDA5441D7A370FD2EBB5041295C8FC24DDA544148E17AB430BB5041E17A149E55DA5441C3F5285C49BB50415C8FC2254ADA5441713D0A274DBB50410AD7A37047DA54410AD7A39057BB5041EC51B87E42DA5441666666E64CBB504148E17A143ADA544148E17A0447BB504114AE47F134DA5441
+</a>
+
+<b>
+01060000000100000001030000000100000038000000EC51B8EE09BB5041F6285CCF97DA5441A4703D2A0CBB50418FC2F5989ADA54411F85EBC10EBB5041295C8F129DDA54415C8FC2D510BB5041D7A3705D9BDA5441D7A370BD12BB5041B81E851B99DA544148E17AB415BB50410AD7A3B094DA54419A99994917BB5041AE47E1AA91DA54410AD7A34019BB5041B81E85CB8CDA5441000000D01EBB50413333331382DA54417B14AEB721BB504114AE47417DDA5441EC51B84E25BB5041A4703D8A78DA54417B14AE972ABB5041A4703DEA71DA5441A4703DFA2EBB5041000000206DDA54415C8FC23533BB50411F85EB0169DA54416666660637BB50419A9999E965DA5441A4703DFA3CBB5041EC51B87E61DA54411F85EB613FBB504185EB515860DA5441F6285CDF41BB5041AE47E1AA5FDA54415C8FC25545BB504148E17A645FDA544114AE47A147BB504185EB51D85EDA5441F6285C9F49BB5041CDCCCC8C5DDA5441AE47E15A4DBB5041C3F5282C5ADA544185EB514850BB5041EC51B8DE58DA54419A9999B954BB5041A4703DCA57DA5441AE47E1BA59BB5041F6285C8F57DA54411F85EB415CBB50417B14AE0757DA54419A9999895EBB5041CDCCCCDC55DA54411F85EB3162BB504114AE47A154DA54413333330366BB5041000000E053DA54410000002063BB5041295C8F424ADA5441AE47E1DA60BB5041CDCCCC5C49DA54411F85EB415DBB5041C3F528FC46DA5441C32CC04B57BB504163425D4842DA5441B35CC9004DBB504122DCAC3647DA5441B5BEECA448BB5041F3E7612B49DA544129B8128F30BB5041154ACA9154DA54416E3FB5F12FBB5041A8EB66AE54DA5441F9B9726F2EBB5041490CB1F94DDA544148E17A742DBB504114AE47F14DDA5441678D2E6D23BB5041625A6F3751DA5441107C141518BB504194A7FD8455DA544199A7A32F11BB50410973D14258DA5441E17A142E10BB5041D7A370ED5DDA544148E17AE40EBB50411F85EB1162DA544114AE47610CBB5041F6285CEF66DA5441AE47E19A07BB50418FC2F5F86DDA54415C8FC2F505BB50411F85EBE170DA5441713D0AA704BB5041F6285CFF73DA5441AE47E1AA03BB5041D7A370BD77DA5441B81E850B03BB50415C8FC2357CDA5441AE47E12A03BB5041CDCCCC9C82DA54411F85EBB103BB504148E17A3487DA5441E17A14BE04BB504152B81EE58BDA54419A99993906BB504114AE475190DA5441713D0A3708BB504148E17AA494DA5441EC51B8EE09BB5041F6285CCF97DA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>6520 - 244779
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001700000052B81EF59DBB50415C8FC2D549DA5441C3F528EC9DBB50419A99991945DA544152B81EE59DBB5041333333D342DA5441EC51B88E97BB50419A9999D942DA54415C8FC2B58EBB5041666666D643DA5441EC51B89E7EBB504148E17A0446DA5441EC51B83E7CBB50410AD7A33046DA54418FC2F5D879BB5041AE47E1EA45DA54410000008079BB5041AE47E1DA46DA54417B14AEF777BB50410000005047DA5441713D0A1777BB504152B81EE549DA5441A4703DDA75BB50415C8FC2654DDA5441CDCCCCCC72BB5041C3F528BC51DA5441EC51B89E6FBB5041295C8F7254DA5441C3F528EC6BBB50410000001056DA54413D0AD76366BB5041F6285C9F56DA5441295C8F0265BB50417B14AE5758DA5441000000A066BB50413D0AD7935CDA5441713D0A576BBB50411F85EBA165DA54413D0AD77382BB50413D0AD78362DA544185EB51289DBB5041A4703DEA5EDA5441E17A14AE9DBB5041666666D653DA544152B81EF59DBB50415C8FC2D549DA5441
+</a>
+
+<b>
+010600000001000000010300000001000000180000003D0AD77382BB50413D0AD78362DA54413735F90589BB5041ADF413A161DA5441AA94B7EB89BB504148491FB14BDA544164424AED85BB5041BC7B7C4A4CDA5441947376AA81BB5041338A3EAD4CDA5441D2BC0FE07DBB50415C589C224DDA544160977B3B75BB5041B41B8BC44EDA54417B20A6CF74BB504166B393E04EDA5441DBCCCCCC72BB5041FFF528BC51DA54410A52B89E6FBB50412D5C8F7254DA54410DA83FDC6EBB5041AE6280C754DA5441C3F528EC6BBB50410000001056DA5441DDD3AE8A68BB504177889A6756DA5441240AD76366BB504115295C9F56DA54410F6D946366BB5041A52FAF9F56DA544155CF276366BB5041109036A056DA5441733A925F66BB50411437AEA456DA54415D97BC5366BB5041D6486EB356DA54419EF0D70E66BB5041A3324C0957DA544115BCA53B65BB5041F10F871058DA54412A5C8F0265BB50417C14AE5758DA5441000000A066BB50413D0AD7935CDA5441713D0A576BBB50411F85EBA165DA54413D0AD77382BB50413D0AD78362DA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>6520 - 353348
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001700000052B81EF59DBB50415C8FC2D549DA5441C3F528EC9DBB50419A99991945DA544152B81EE59DBB5041333333D342DA5441EC51B88E97BB50419A9999D942DA54415C8FC2B58EBB5041666666D643DA5441EC51B89E7EBB504148E17A0446DA5441EC51B83E7CBB50410AD7A33046DA54418FC2F5D879BB5041AE47E1EA45DA54410000008079BB5041AE47E1DA46DA54417B14AEF777BB50410000005047DA5441713D0A1777BB504152B81EE549DA5441A4703DDA75BB50415C8FC2654DDA5441CDCCCCCC72BB5041C3F528BC51DA5441EC51B89E6FBB5041295C8F7254DA5441C3F528EC6BBB50410000001056DA54413D0AD76366BB5041F6285C9F56DA5441295C8F0265BB50417B14AE5758DA5441000000A066BB50413D0AD7935CDA5441713D0A576BBB50411F85EBA165DA54413D0AD77382BB50413D0AD78362DA544185EB51289DBB5041A4703DEA5EDA5441E17A14AE9DBB5041666666D653DA544152B81EF59DBB50415C8FC2D549DA5441
+</a>
+
+<b>
+010600000001000000010300000001000000180000003D0AD77382BB50413D0AD78362DA54413735F90589BB5041ADF413A161DA5441AA94B7EB89BB504148491FB14BDA544164424AED85BB5041BC7B7C4A4CDA5441947376AA81BB5041338A3EAD4CDA5441D2BC0FE07DBB50415C589C224DDA544160977B3B75BB5041B41B8BC44EDA54417B20A6CF74BB504166B393E04EDA5441DBCCCCCC72BB5041FFF528BC51DA54410A52B89E6FBB50412D5C8F7254DA54410DA83FDC6EBB5041AE6280C754DA5441C3F528EC6BBB50410000001056DA5441DDD3AE8A68BB504177889A6756DA5441240AD76366BB504115295C9F56DA54410F6D946366BB5041A52FAF9F56DA544155CF276366BB5041109036A056DA5441733A925F66BB50411437AEA456DA54415D97BC5366BB5041D6486EB356DA54419EF0D70E66BB5041A3324C0957DA544115BCA53B65BB5041F10F871058DA54412A5C8F0265BB50417C14AE5758DA5441000000A066BB50413D0AD7935CDA5441713D0A576BBB50411F85EBA165DA54413D0AD77382BB50413D0AD78362DA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>6756 - 58715
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000B00000014AE478158BA50410000004072DC544152B81E455ABA5041AE47E1BA72DC5441713D0AB75FBA5041A4703DAA74DC5441713D0A5765BA50410AD7A3D076DC5441713D0A476BBA5041EC51B89E79DC54411F85EB8174BA504148E17A647EDC544114AE47217CBA50410AD7A3A082DC5441295C8FC283BA50418FC2F52859DC544185EB516882BA5041D7A3708D58DC5441B81E859B5FBA5041666666A64BDC544114AE478158BA50410000004072DC5441
+</a>
+
+<b>
+01060000000100000001030000000100000030000000713D0AB75FBA5041A4703DAA74DC5441AF5927CC5FBA5041AE644FB274DC5441244F025D61BA5041C7A3864B75DC5441713D0A5765BA50410AD7A3D076DC544177C16A8468BA5041227CE55078DC5441C09235A868BA50415B31CE6178DC5441167C6AEC68BA50415018078278DC544108F4C00869BA504136426A8F78DC5441713D0A476BBA5041EC51B89E79DC54411F85EB8174BA504148E17A647EDC5441A6FED8097ABA5041D576287781DC54418608FF297ABA5041FC01058981DC544130178D497ABA50419B1C8D9A81DC544195642F0F7BBA5041B6E65A0882DC5441F495694D7BBA5041C196ED2A82DC5441B23A21227CBA5041F880059C82DC544188E01DA97CBA5041A02465BE7FDC5441411617727DBA5041A123257A7BDC54414B29802E7EBA5041A42D2C7A77DC5441E57727327FBA5041C02002F771DC5441DAC5479E7FBA5041C64B5DAB6FDC5441FDF595A27FBA5041C220F7936FDC5441A60A552683BA504180C1067A5CDC5441D598BD4883BA5041F10B06BF5BDC5441251A245283BA5041212EEF8B5BDC5441828194B983BA5041AA90C35959DC5441EEEED2A983BA50416D6FD91D59DC544129B27AE681BA5041CDD04C5D58DC544113436A7480BA50419E3118D457DC5441622A3D6880BA5041967E94CF57DC5441ED853DB87FBA5041E098538E57DC5441BB7693317FBA504184F1655C57DC5441BE01F16C7DBA5041172894B456DC54414EF7188578BA5041DBCDF5E254DC5441AE9BC69872BA50415337C4B052DC54410FCDD6B671BA50415B71FF5C52DC54413C9906C26EBA5041848D664451DC5441F64376DB6ABA504150ED2BD24FDC54410A10289A6ABA50410D76F5B94FDC5441DFD9C1326ABA504170539F934FDC5441CB5DAD5C60BA5041DDE703EE4BDC54415701859B5FBA5041100667A64BDC5441137E28985EBA50414E8EF42751DC54411F6F2C3B5DBA5041EF83959058DC54410BB427B75CBA50415AD0105E5BDC544114AE478158BA50410000004072DC544152B81E455ABA5041AE47E1BA72DC5441713D0AB75FBA5041A4703DAA74DC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>6756 - 119479
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000B00000014AE478158BA50410000004072DC544152B81E455ABA5041AE47E1BA72DC5441713D0AB75FBA5041A4703DAA74DC5441713D0A5765BA50410AD7A3D076DC5441713D0A476BBA5041EC51B89E79DC54411F85EB8174BA504148E17A647EDC544114AE47217CBA50410AD7A3A082DC5441295C8FC283BA50418FC2F52859DC544185EB516882BA5041D7A3708D58DC5441B81E859B5FBA5041666666A64BDC544114AE478158BA50410000004072DC5441
+</a>
+
+<b>
+01060000000100000001030000000100000030000000713D0AB75FBA5041A4703DAA74DC5441AB5927CC5FBA5041AD644FB274DC5441254F025D61BA5041C9A3864B75DC5441713D0A5765BA50410AD7A3D076DC544175C16A8468BA5041267CE55078DC5441BF9235A868BA50415C31CE6178DC5441157C6AEC68BA50414D18078278DC544106F4C00869BA504133426A8F78DC5441713D0A476BBA5041EC51B89E79DC54411F85EB8174BA504148E17A647EDC5441AAFED8097ABA5041D776287781DC54418908FF297ABA5041FD01058981DC544135178D497ABA50419E1C8D9A81DC544192642F0F7BBA5041B6E65A0882DC5441F195694D7BBA5041BC96ED2A82DC5441AD3A21227CBA5041F380059C82DC544186E01DA97CBA50419D2465BE7FDC54413C1617727DBA5041A623257A7BDC54415029802E7EBA5041A62D2C7A77DC5441E97727327FBA5041C22002F771DC5441DDC5479E7FBA5041CB4B5DAB6FDC544101F695A27FBA5041BE20F7936FDC5441A90A552683BA50417BC1067A5CDC5441D298BD4883BA5041F30B06BF5BDC5441261A245283BA5041212EEF8B5BDC5441828194B983BA5041AE90C35959DC5441F0EED2A983BA5041686FD91D59DC54412EB27AE681BA5041C9D04C5D58DC544115436A7480BA50419A3118D457DC5441632A3D6880BA5041927E94CF57DC5441E8853DB87FBA5041E498538E57DC5441C07693317FBA504181F1655C57DC5441C001F16C7DBA5041162894B456DC544153F7188578BA5041D8CDF5E254DC5441B09BC69872BA50415237C4B052DC54410CCDD6B671BA50415A71FF5C52DC5441379906C26EBA5041888D664451DC5441F44376DB6ABA50414EED2BD24FDC54410A10289A6ABA50410E76F5B94FDC5441DFD9C1326ABA50416D539F934FDC5441C75DAD5C60BA5041E1E703EE4BDC54415C01859B5FBA5041140667A64BDC54410E7E28985EBA5041528EF42751DC54411F6F2C3B5DBA5041EB83959058DC54410FB427B75CBA50415DD0105E5BDC544114AE478158BA50410000004072DC544152B81E455ABA5041AE47E1BA72DC5441713D0AB75FBA5041A4703DAA74DC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>6756 - 319686
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000B00000014AE478158BA50410000004072DC544152B81E455ABA5041AE47E1BA72DC5441713D0AB75FBA5041A4703DAA74DC5441713D0A5765BA50410AD7A3D076DC5441713D0A476BBA5041EC51B89E79DC54411F85EB8174BA504148E17A647EDC544114AE47217CBA50410AD7A3A082DC5441295C8FC283BA50418FC2F52859DC544185EB516882BA5041D7A3708D58DC5441B81E859B5FBA5041666666A64BDC544114AE478158BA50410000004072DC5441
+</a>
+
+<b>
+01060000000100000001030000000100000030000000713D0AB75FBA5041A4703DAA74DC5441AB5927CC5FBA5041AD644FB274DC5441254F025D61BA5041C9A3864B75DC5441713D0A5765BA50410AD7A3D076DC544175C16A8468BA5041267CE55078DC5441BF9235A868BA50415C31CE6178DC5441157C6AEC68BA50414D18078278DC544106F4C00869BA504133426A8F78DC5441713D0A476BBA5041EC51B89E79DC54411F85EB8174BA504148E17A647EDC5441AAFED8097ABA5041D776287781DC54418908FF297ABA5041FD01058981DC544135178D497ABA50419E1C8D9A81DC544192642F0F7BBA5041B6E65A0882DC5441F195694D7BBA5041BC96ED2A82DC5441AD3A21227CBA5041F380059C82DC544186E01DA97CBA50419D2465BE7FDC54413C1617727DBA5041A623257A7BDC54415029802E7EBA5041A62D2C7A77DC5441E97727327FBA5041C22002F771DC5441DDC5479E7FBA5041CB4B5DAB6FDC544101F695A27FBA5041BE20F7936FDC5441A90A552683BA50417BC1067A5CDC5441D298BD4883BA5041F30B06BF5BDC5441261A245283BA5041212EEF8B5BDC5441828194B983BA5041AE90C35959DC5441F0EED2A983BA5041686FD91D59DC54412EB27AE681BA5041C9D04C5D58DC544115436A7480BA50419A3118D457DC5441632A3D6880BA5041927E94CF57DC5441E8853DB87FBA5041E498538E57DC5441C07693317FBA504181F1655C57DC5441C001F16C7DBA5041162894B456DC544153F7188578BA5041D8CDF5E254DC5441B09BC69872BA50415237C4B052DC54410CCDD6B671BA50415A71FF5C52DC5441379906C26EBA5041888D664451DC5441F44376DB6ABA50414EED2BD24FDC54410A10289A6ABA50410E76F5B94FDC5441DFD9C1326ABA50416D539F934FDC5441C75DAD5C60BA5041E1E703EE4BDC54415C01859B5FBA5041140667A64BDC54410E7E28985EBA5041528EF42751DC54411F6F2C3B5DBA5041EB83959058DC54410FB427B75CBA50415DD0105E5BDC544114AE478158BA50410000004072DC544152B81E455ABA5041AE47E1BA72DC5441713D0AB75FBA5041A4703DAA74DC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>6850 - 58839
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000F00000048E17AF434BC50417B14AE17CDDA5441AE47E12A35BC50417B14AE17D4DA54410AD7A3103CBC5041B81E850BD4DA5441C3F528AC4ABC504152B81EF5D3DA544114AE47D151BC50417B14AE47D4DA5441A4703DFA5ABC50419A999949D6DA54413D0AD72362BC50417B14AE67D7DA5441AE47E1BA69BC5041D7A3706DD6DA54410000000079BC504185EB51E8CEDA5441E17A141E78BC50410AD7A370C9DA544148E17AE477BC5041A4703D5AC8DA54410AD7A3205FBC5041B81E85EBC9DA54419A9999694BBC504114AE4761CADA5441EC51B89E34BC5041295C8FD2CBDA544148E17AF434BC50417B14AE17CDDA5441
+</a>
+
+<b>
+0106000000010000000103000000010000002F00000048E17AF434BC50417B14AE17CDDA54417FDDB20335BC50419A6A000DCFDA54415B30C61335BC504110058C1ED1DA5441AE47E12A35BC50417B14AE17D4DA544140F2071A38BC504123D58112D4DA54417A7DB9AC3ABC50417495F80DD4DA54410AD7A3103CBC5041B81E850BD4DA54410B8B08D843BC5041756697FFD3DA544153BCE37345BC5041EED51FFDD3DA54415486C90C48BC5041173E24F9D3DA54413948E9454CBC5041D10DDAC2D3DA54410191823B4FBC5041375FCF29D4DA544114AE47D151BC50417B14AE47D4DA5441F8EF075152BC50416A86AD63D4DA5441051B7C5252BC5041D616FF63D4DA5441876EAB3255BC5041B8985605D5DA544123E380A455BC50415A38491ED5DA5441582F2BE85BBC5041BACBB86ED6DA5441743535885DBC50414DF7A1AFD6DA544174112BEF5FBC50413052940FD7DA54413A971F4462BC5041BFB48563D7DA54410D400DE663BC504118BCB22DD7DA5441508BA54A66BC5041A5AACDDED6DA544171063B9867BC50419381D7B3D6DA544191380B336ABC50414A574332D6DA544139F347436ABC5041FC47442AD6DA544174200A7B6FBC50417B7C7298D3DA5441F569ADDB72BC50412ED5A3EED1DA54417E42A62673BC504104F4B7C9D1DA5441DBDDE09B73BC5041AFA9FC8FD1DA5441705BB04274BC5041A885D63DD1DA5441E443B77A75BC504109A52CA4D0DA54416C407DB476BC50415398A609D0DA544110AD0CFF78BC5041096A6EE2CEDA5441208FCF9B78BC504100D7997BCCDA54418A249A7278BC50414C464B7CCBDA5441D26C41EB77BC50411613FD7AC8DA54414E3EA1AE76BC5041D019DA6DC8DA544116F206F670BC504167CF8DCAC8DA5441D69214146EBC5041E42343F9C8DA5441C83503DA68BC5041268AF44DC9DA5441E71FDB2E68BC5041A9E0C958C9DA54410AD7A3205FBC5041B81E85EBC9DA5441BA0670EE4FBC5041F5C04946CADA5441557F5E653FBC5041A138F823CBDA5441EC51B89E34BC5041295C8FD2CBDA544148E17AF434BC50417B14AE17CDDA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>6997 - 359254
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000005000000052B81ED54CB750417B14AEB79AE1544114AE474144B75041713D0AC798E154415C8FC2453BB75041D7A3705D96E154419A99990939B75041B81E859B95E154419A99991937B75041333333C393E15441E17A148E35B75041E17A14CE91E1544114AE474134B7504152B81EA58FE154410AD7A30033B75041B81E854B8DE15441E17A14EE31B75041AE47E1EA8DE15441B81E852B2AB75041E17A140E8DE15441000000D024B75041E17A142E8BE15441F6285C9F23B75041666666D68BE15441E17A148E23B750417B14AE8790E15441D7A3706D24B75041E17A147E91E1544148E17AB426B75041CDCCCC7C91E1544152B81EE528B75041333333C390E15441666666062CB75041A4703DEA90E15441EC51B85E2DB750419A9999A991E154415C8FC2A52DB750419A99990995E154418FC2F5B82FB750415C8FC25599E15441AE47E1FA2FB750415C8FC2F59AE15441333333332FB75041D7A3706D9CE15441333333C327B75041713D0AA7A1E15441B81E85DB29B7504114AE4721A5E15441295C8F622DB750411F85EBD1A5E154411F85EB012FB75041E17A14AEA6E154417B14AEB72FB7504166666606A8E1544185EB51582FB75041AE47E14AA9E154417B14AE472DB75041666666C6ABE15441C3F5281C2FB7504148E17A84AEE154419A9999692FB75041CDCCCCFCAFE154411F85EBC12CB750415C8FC295B3E15441333333532BB75041E17A142EB4E154410AD7A39028B75041E17A14BEB2E15441B81E85CB27B75041000000F0B4E154419A99995926B7504114AE4751B6E1544185EB519824B7504114AE4711B7E154419A99991922B75041AE47E1FAB7E15441F6285CFF24B75041666666B6BBE154411F85EBA125B75041CDCCCC7CBDE154415C8FC2D524B75041713D0AE7BEE15441713D0AD721B750410AD7A3B0BFE1544148E17AF421B75041AE47E13AC3E1544185EB51981FB75041C3F528CCC8E15441F6285C4F1EB75041295C8F62C9E154415C8FC2E51CB750418FC2F5C8C8E154413D0AD7A31AB7504114AE4741C6E154419A99998919B75041295C8F32C4E15441AE47E11A18B75041A4703DCAC3E15441C3F5288C18B75041AE47E19AC5E1544148E17A0418B750411F85EB31C7E15441AE47E1FA15B750413D0AD763C9E15441B81E85AB15B75041666666B6CCE15441AE47E15A12B75041295C8FB2D0E154417B14AE970FB7504148E17AA4D2E154411F85EB310EB75041AE47E13AD2E15441295C8F320BB750417B14AED7CEE15441B81E857B05B750418FC2F5D8D3E154417B14AED704B75041C3F5289CD7E15441D7A3709D03B75041B81E856BD9E154410000001002B7504152B81E95D9E1544152B81E25FFB6504114AE4721D8E15441713D0A47FEB65041295C8F82DBE15441CDCCCC5CFDB65041000000E0DCE1544166666666F9B65041F6285C6FE0E154417B14AE87F9B6504114AE47C1E4E154413D0AD713FCB65041333333F3E3E15441713D0A17FEB65041713D0AB7E4E15441000000F000B7504185EB5148E7E154413333339304B75041AE47E17AE7E15441000000D005B7504152B81E35E8E15441000000A006B750418FC2F568EBE154413D0AD7330BB750419A9999F9F0E15441CDCCCC5C0DB750419A9999A9F2E154417B14AEC710B75041A4703D7AF4E15441AE47E18A16B750410AD7A3C0F6E1544114AE47E117B75041C3F5283CF6E15441713D0AB72CB7504100000000C7E1544185EB51883AB750415C8FC265B8E1544152B81ED54CB750417B14AEB79AE15441
+</a>
+
+<b>
+01060000000100000001030000000100000071000000E31E852B2AB75041EC7A140E8DE15441000000D024B75041E17A142E8BE15441F6285C9F23B75041666666D68BE15441428B779C23B75041E3ED849F8CE154414D7B148E23B75041A614AE8790E15441F5BF286424B750412883D77391E15441BAA3706D24B75041C17A147E91E15441912D4E0B25B75041ACC1BB7D91E1544148E17AB426B75041CDCCCC7C91E154414A7E9EBD27B750410E90062591E154411CB81EE528B75041DD3233C390E15441BC6666062CB7504179703DEA90E154418E68C3AD2CB750413212414791E15441EC51B85E2DB750419A9999A991E1544148E5AD742DB75041431DACB492E15441718FC2A52DB75041C599990995E15441880D3EE92DB750414A9A5C9595E154417AC2F5B82FB75041FC8EC25599E15441AE47E1FA2FB750415C8FC2F59AE1544169C9D1F92FB75041A559C1F79AE15441333333332FB75041D7A3706D9CE15441333333C327B75041713D0AA7A1E1544111AD521129B75041ECF6A6D1A3E15441201F85DB29B7504128AE4721A5E15441295C8F622DB750411F85EBD1A5E154410C5BAA942EB75041AF872B74A6E154415485EB012FB75041CC7A14AEA6E15441DC14AEB72FB75041FB656606A8E154418CC0BE992FB750419649426CA8E1544185EB51582FB75041AE47E14AA9E154417B14AE472DB75041666666C6ABE15441518BCC582EB750414B94B45FADE154410EF6281C2FB7504168E17A84AEE154418F9999692FB7504177CCCCFCAFE154417F1EB40A2EB7504197E642D8B1E154417585EBC12CB75041478FC295B3E15441693333532BB75041177B142EB4E15441BC0888A52AB7504119AAA0D3B3E154410AD7A39028B75041E17A14BEB2E1544133C8442D28B7504168505AD9B3E15441241F85CB27B75041CAFFFFEFB4E15441C0B9D95B27B75041CD74A55AB5E154419A99995926B7504114AE4751B6E15441C4B5055C25B750416983A5BDB6E154412FEB519824B7504160AE4711B7E154417C343CBF23B7504170BCAC60B7E154419A99991922B75041AE47E1FAB7E15441F6285CFF24B75041666666B6BBE1544187F97F8D25B75041C85EB843BDE154412985EBA125B75041C2CCCC7CBDE15441B28FC2D524B750413B3D0AE7BEE154416E68630E24B750416362761BBFE15441960A370C24B75041A4AC081CBFE15441743D0AD721B7504161D7A3B0BFE1544148E17AF421B75041AE47E13AC3E1544163D6B16120B75041AB4E18F1C6E15441DBEB51981FB7504157F528CCC8E15441F6285C4F1EB75041295C8F62C9E154415C8FC2E51CB750418FC2F5C8C8E15441B298448A1CB75041818F6C62C8E15441F209D7A31AB7504114AE4741C6E154412E99998919B750419F5C8F32C4E15441CAD1CA6A18B7504112F3F8E0C3E154412448E11A18B75041C6703DCAC3E1544134E3645018B75041EB0CBDA5C4E15441C3F5288C18B75041AE47E19AC5E1544148E17A0418B750411F85EB31C7E154415ECF076C17B750410B6827D6C7E154411948E1FA15B75041530AD763C9E154412E1F85AB15B75041666666B6CCE154411C8E3FEB13B7504131CD45D1CEE15441AE47E15A12B75041295C8FB2D0E154417B14AE970FB7504148E17AA4D2E154413F85EB310EB75041CE47E13AD2E15441295C8F320BB750417B14AED7CEE15441C9E0060C06B75041E1E6675AD3E15441B41E857B05B75041A7C2F5D8D3E154417B14AED704B75041C3F5289CD7E15441D7A3709D03B75041B81E856BD9E154414000001002B75041B3B81E95D9E1544167B81E25FFB650413FAE4721D8E154419C3D0A47FEB65041B35B8F82DBE15441558A3375FDB650419E1799BBDCE15441ADCCCC5CFDB65041360000E0DCE1544167666666F9B650410A295C6FE0E1544149DE9E66F9B650412FA5B076E0E15441D914AE87F9B65041F6AD47C1E4E154413D0AD713FCB65041333333F3E3E15441713D0A17FEB65041713D0AB7E4E15441000000F000B7504185EB5148E7E154413333339304B75041AE47E17AE7E1544122D6AD5505B7504199C935EDE7E15441C0FFFFCF05B75041FCB71E35E8E15441000000A006B750418FC2F568EBE15441DCF8607208B750414445F39FEDE1544139ABEE9B08B75041B7CCAB45ECE154419AABEE9B08B750412822EAFFE8E154417667D44C07B75041E099B561E6E15441E9505F9703B75041929FC1DAE4E1544149EBB7A001B75041E9E9E7A2E4E154419F185D3AFFB650418F5BA78BE3E154418DF6CF92FEB650413FB1E545E0E15441CCC82AF900B75041EE72D76FDDE154414AAD1CD90FB7504104234A34D4E1544161D71DD819B750416D85B609CFE15441030A14BC1FB7504103038EE4CAE15441ADA8BD0F26B75041C9537B54BFE15441CB7F69C030B750413644CD46B0E15441F6BF1FB833B75041750CC8A38EE154410AD7A30033B75041B81E854B8DE15441053FB48F32B75041A4F9118D8DE15441CC7A14EE31B750410F48E1EA8DE15441E31E852B2AB75041EC7A140E8DE15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>7009 - 59001
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000007F000000A4703D0AA2B75041C3F5288C03DE5441C3F528FCA1B750415C8FC23505DE5441B81E851BA0B7504185EB513808DE5441D7A370CD9EB75041A4703DFA08DE5441F6285C2F9DB75041B81E859B08DE54411F85EB819BB750417B14AE5707DE5441F6285C4F96B75041A4703DDA00DE5441EC51B86E94B75041000000D000DE5441295C8F6295B75041AE47E17A03DE544114AE470195B75041AE47E12A09DE5441F6285C0F94B75041A4703DCA0ADE54413D0AD73392B75041E17A14BE0BDE54411F85EB318FB750410AD7A3200CDE54413D0AD7338CB75041CDCCCCFC08DE5441AE47E1AA89B75041D7A3708D07DE544114AE477182B7504114AE47B106DE5441F6285C0F81B75041295C8F0207DE5441666666F682B750417B14AE2708DE5441295C8F2284B75041C3F528FC09DE5441AE47E12A85B75041E17A14EE0CDE54415C8FC28584B7504148E17AC40EDE5441B81E850B83B75041D7A3705D0FDE5441A4703D0A81B75041CDCCCCEC0EDE5441666666867EB75041F6285CAF0DDE54410AD7A3707DB7504148E17AB40DDE54410AD7A3D07CB75041D7A370DD0EDE5441666666667EB750416666669610DE5441E17A14AE7FB75041AE47E11A15DE544185EB51D87DB75041F6285C7F18DE5441CDCCCC7C7CB75041D7A3706D19DE54416666662679B7504185EB51C81ADE544114AE47F177B75041D7A3709D1ADE5441B81E85AB74B7504148E17AB418DE54410AD7A30074B750410AD7A34017DE54418FC2F5C874B75041295C8FA214DE5441B81E859B76B750410AD7A3D011DE5441E17A144E75B7504152B81E450EDE54417B14AE1774B75041A4703D6A0CDE544185EB511873B75041000000200ADE5441713D0AB771B75041A4703D3A0ADE54411F85EB8171B750418FC2F5C80DDE54413D0AD7F370B75041C3F528DC0EDE5441C3F528EC6FB7504148E17A840FDE5441713D0AA76EB75041EC51B88E0FDE54415C8FC2756AB750417B14AE970EDE544152B81E5569B75041AE47E1AA0EDE544148E17AB467B75041B81E855B0FDE54410AD7A34066B750419A9999590FDE5441B81E859B62B7504148E17A040EDE5441295C8FF25EB7504152B81E850DDE5441C3F5289C5CB75041333333930DDE5441CDCCCCAC5AB75041C3F528FC0DDE5441E17A147E59B75041713D0A8710DE5441295C8F2259B750411F85EBB111DE5441000000C059B75041713D0A7712DE5441D7A370FD5AB75041295C8FB213DE544185EB51D85BB750413D0AD7D313DE544185EB51785DB75041A4703DBA13DE5441B81E857B5EB7504152B81E2514DE544152B81E255FB75041CDCCCC1C15DE5441EC51B88E5FB750413333338316DE5441B81E852B61B750411F85EB6118DE54416666665661B75041CDCCCCAC19DE5441713D0A6760B75041B81E85EB1ADE54417B14AEF75EB75041EC51B82E1CDE5441666666B65DB75041E17A144E20DE5441295C8FA25BB75041713D0A8722DE5441CDCCCC6C5AB75041EC51B85E23DE54413D0AD7B35AB750415C8FC22527DE544152B81EE55CB75041666666A642DE5441A4703D2A5DB7504152B81E1546DE54419A9999595DB750410000007048DE5441CDCCCCCC5FB750413D0AD76367DE5441295C8F2261B7504185EB513878DE544114AE475163B750415C8FC25578DE54418FC2F54868B750417B14AE4778DE5441AE47E19A71B750415C8FC25578DE544152B81EB573B75041D7A3703D78DE5441CDCCCC8C71B75041CDCCCC1C60DE54415C8FC24571B750410000003058DE5441C3F528EC6FB75041713D0AC73CDE544152B81E7575B750411F85EBF13ADE5441D7A3704D78B75041CDCCCC0C3ADE54417B14AEF777B7504185EB510836DE5441B81E85DB77B75041EC51B89E30DE54410AD7A3B077B75041295C8F9226DE5441F6285C5F7BB75041EC51B89E24DE5441C3F5289C7EB75041E17A148E22DE544148E17A1484B750417B14AE971EDE5441C3F5280C89B75041333333231CDE5441666666668DB75041C3F528CC1ADE544114AE476195B75041D7A370AD18DE5441C3F528BC99B7504185EB51C817DE54417B14AE179CB75041EC51B89E17DE5441666666869DB75041A4703D1A2EDE54417B14AEF79DB75041F6285CCF36DE544148E17A749DB75041AE47E15A3ADE54418FC2F5D896B7504148E17A743BDE5441EC51B8BE95B75041EC51B88E3CDE5441295C8FE29AB750418FC2F55880DE544148E17AE48EB7504185EB517880DE5441D7A370CD91B75041666666F693DE5441C3F5281C93B750410000009093DE5441AE47E16AA4B750419A99998990DE54417B14AE07A5B7504152B81E658FDE5441295C8F22A1B75041F6285C6F5DDE544114AE47219FB75041000000C045DE544148E17AC49EB75041C3F5288C3FDE54419A9999E99EB7504152B81E553CDE5441EC51B85E9FB75041295C8F5237DE54410AD7A3F0A0B750410AD7A39031DE54413D0AD7F3A2B75041EC51B88E2BDE5441E17A142EA4B75041AE47E11A27DE5441CDCCCCBCABB750418FC2F50812DE5441B81E853BB3B750411F85EB21FDDD5441A4703DBAADB75041C3F5287CFFDD5441E17A14EEA9B75041295C8F5204DE54411F85EBC1A7B75041295C8F1204DE5441AE47E13AA6B75041B81E85EB01DE5441AE47E1BAA5B75041D7A370DDFDDD54417B14AE97A4B7504152B81E55FCDD54417B14AE37A1B75041F6285C5FF9DD544148E17A449FB7504114AE47C1F8DD5441666666469DB75041AE47E1DAF9DD5441D7A370DD9FB7504166666616FEDD5441CDCCCCEC9FB75041EC51B85E00DE5441A4703D0AA2B75041C3F5288C03DE5441
+</a>
+
+<b>
+01060000000100000001030000000100000067000000D22CFAF59DB75041A45823DB36DE5441B4D4BEC19DB750416F9409AA32DE54412C5D88859DB75041E6ACA00C2EDE54412DDDC9629DB750415D2555EB2BDE54416CDD013E9DB750411AE710AA29DE54417B14AE179CB75041EC51B89E17DE5441AFBE824E9BB75041781D96AC17DE54414BA401DB99B750412A9C31C617DE54411D4932B697B75041D364C43218DE54419852805695B75041CEB34DB018DE5441E87BCD9593B7504161B4812719DE54418F1C99CB91B75041A6353CA119DE54413AF230C58DB750415935FAB21ADE5441544A195B8BB7504179AB446D1BDE5441F2F104FB88B75041B1CFAB2B1CDE5441829CBD6B87B750410BE5FFF01CDE5441237E333884B75041FEB206861EDE544177799DE183B75041C3DC86BC1EDE544160B80D8183B7504138FF79021FDE54415D035CA582B750418ED19FA11FDE54415795CA0E82B75041785AB20E20DE5441C3F5289C7EB75041E17A148E22DE5441414E89CA7BB75041CEDE5B5A24DE5441F6285C5F7BB75041EC51B89E24DE54410AD7A3B077B75041295C8F9226DE5441F62E80C577B750417942E4752BDE5441A81928E877B75041240D800C33DE5441ED96E9F777B750412C971B0B36DE5441D8216B2578B75041572AD72C38DE5441D7A3704D78B75041CDCCCC0C3ADE5441E6F76E4E74B75041EDBB7B533BDE54418C93E60872B750416CA803143CDE5441C3F528EC6FB75041713D0AC73CDE5441AF79474170B750411568468743DE544165E0985D70B75041D4193CC645DE54418E3A228570B750417209F9E848DE5441B81F4FAA70B75041AB41C5DB4BDE5441CF6741E970B750410EDBD0D950DE544144C2910271B75041A407C8DB52DE54415C8FC24571B750410000003058DE54418FA32B6071B75041E8AA3E225BDE54412331077171B750414AA4AC035DDE5441E7D5318771B75041A148B87C5FDE544176CEADA871B75041D987925461DE5441D349B49A72B75041BB5429E76BDE544152B81EB573B75041D7A3703D78DE5441AE47E19A71B750415C8FC25578DE5441245F53FD6BB75041DACD464D78DE5441B52C9FEB68B7504166D1A34878DE54413E4110FF67B75041B5887F4878DE5441DA2D8BA465B750419D542B4F78DE544114AE475163B750415C8FC25578DE5441DC2EE43063B7504161AA0D5478DE5441418E8E2062B75041141DB44578DE544120FD322361B75041ECD95F4078DE544131262ED561B75041A012250281DE544113C10DA862B75041C67EC3638BDE544171A4716F63B7504184EFA83495DE5441DC31442964B75041993E905A9EDE544152B81E4564B750419A9999B99FDE54413AF7CF9164B7504133DFFFBBA3DE544116F8F1C864B750417A1A1CDCA3DE5441DB4CF50665B750410EA6ACFEA3DE544108E1350467B75041E97DADFFA2DE5441000000D067B750419A999999A2DE5441C1E8502269B750414497C311A2DE54417085E2956AB75041E4AD937CA1DE544144E0CCC16FB750418B4504699FDE544167A4DF6B72B75041F0F928579EDE5441E550142073B75041A46CCE0E9EDE5441C3F528BC7AB750410AD7A3009BDE5441E879BDFC7FB75041EB2D496699DE544103BCC9FF7FB750411A6E4D6599DE5441BCEAE7F382B750414713837E98DE54417014335F87B7504157D6342597DE54411AA89E3F8BB7504186094AF695DE54419E44C7DD8EB750412CDB98DB94DE5441CE00C40E90B75041296F817E94DE54415A75D33B91B75041CADA9C2294DE5441ED67D6CC91B750418B7895F693DE54413729087790B75041BC8ACB008BDE544148E17AE48EB7504185EB517880DE5441B1BB9F7992B75041419EF36E80DE5441261CDD6193B750419851946C80DE54410DBB059493B75041C927116C80DE5441F934C1CA94B75041B599E46880DE5441911D31E795B7504175CEFC6580DE54412069975396B750415558E16480DE54410E9D84AD97B750411CC2586180DE544177BA076A98B7504115CE6B5F80DE5441513887C298B75041B462845E80DE5441295C8FE29AB750418FC2F55880DE544166ABCF739AB750411B5E53A47ADE54415880DD9899B75041C69EB55C6FDE5441E8342B2A97B750410F8624484FDE5441FFEAC35696B75041E798006444DE54411A6C3C4896B75041A53961A443DE5441EC51B8BE95B75041EC51B88E3CDE54418FC2F5D896B7504148E17A743BDE54417939CE949BB75041A128BCAA3ADE544148E17A749DB75041AE47E15A3ADE5441872749EA9DB750410D4A022C37DE5441D22CFAF59DB75041A45823DB36DE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>7447 - 399072
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000003000000170000007B14AEB7FDBC5041E17A14CE30E254419A999969FBBC50419A99990931E25441C3F5286CF6BC5041713D0A372FE25441CDCCCCDCF3BC5041000000C036E254419A999919DABC504185EB51282DE2544185EB5198D1BC5041CDCCCC7C2AE2544148E17A54D1BC5041C3F5289C21E25441D7A3707DCEBC504114AE479120E25441F6285CDFCCBC50410000005021E25441713D0A37C5BC50411F85EBF136E254419A9999F9C3BC50411F85EBE13EE254413D0AD7030FBD5041EC51B88E51E254411F85EBC10DBD5041CDCCCCFC59E25441295C8FC215BD50411F85EB715AE25441E17A14CE1BBD5041713D0AB737E2544114AE47111CBD50415C8FC2352FE25441CDCCCCDC1ABD5041000000E02DE254411F85EBE119BD50418FC2F5F82DE2544148E17A4415BD504152B81EB536E254411F85EBC10BBD50413D0AD72337E25441C3F528CC04BD5041000000E037E2544185EB5138FFBC5041713D0AA738E254417B14AEB7FDBC5041E17A14CE30E254410A00000085EB518803BD50418FC2F5983DE254417B14AE8702BD5041C3F5281C41E25441295C8F6204BD504148E17A4443E2544148E17A340FBD504114AE47E145E254413D0AD7830EBD504152B81EF547E25441C3F5282C07BD504114AE472146E2544148E17A3402BD5041EC51B8DE45E254419A9999E9FDBC5041295C8FE244E254415C8FC2A500BD504185EB51D83CE2544185EB518803BD50418FC2F5983DE25441050000000AD7A330CEBC5041CDCCCC3C34E25441E17A14FED2BC5041D7A3701D36E2544152B81E55D3BC50411F85EB313BE25441B81E85ABCCBC5041C3F5281C39E254410AD7A330CEBC5041CDCCCC3C34E25441
+</a>
+
+<b>
+01060000000100000001030000000200000015000000EC0E02CF11BD50419DCF63DD36E25441796C526809BD5041AE4CF96D37E254411A0E2239FFBC5041A2C2D2D338E25441E6750A6DFDBC5041B71EF8D630E254418531B86BFDBC504180E7E6D530E2544174999969FBBC5041B999990931E2544166F5286CF6BC5041843E0A372FE2544185B81EB5F4BC50413BAE471139E2544198C8A816F2BC504117696A1D48E254414ACDB09810BD5041C74AA8974FE25441AA883F870EBD504134C814085AE254412B5C8FC215BD50411185EB715AE25441209933E918BD5041DC43915748E25441947A14CE1BBD5041AF3D0AB737E254413A40670E1CBD5041ECDCF6922FE2544113AE47111CBD5041848FC2352FE25441C3CCCCDC1ABD5041080000E02DE254419129370E1ABD504101FEC5F42DE2544102C830C715BD50416601B8BD35E2544148E17A4415BD504152B81EB536E25441EC0E02CF11BD50419DCF63DD36E254411200000055EDE32AFFBC5041DE76123241E254415C8FC2A500BD504185EB51D83CE25441AC3092A201BD504107DD421A3DE2544185EB518803BD50418FC2F5983DE25441A3E1693503BD50416B4971BB3EE254417B14AE8702BD5041C3F5281C41E25441295C8F6204BD504148E17A4443E2544163894BAA0CBD5041BBCC4A4445E2544148E17A340FBD504114AE47E145E25441D773F0300FBD5041A4D0F0EB45E254416644FEEB0EBD5041853887BB46E254413D0AD7830EBD504152B81EF547E2544172CC7B700EBD50419B644DF047E25441C3F5282C07BD504114AE472146E25441D3B92A1304BD5041724AC6F745E2544148E17A3402BD5041EC51B8DE45E254419A9999E9FDBC5041295C8FE244E2544155EDE32AFFBC5041DE76123241E25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>7546 - 121272
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A000000EC51B8DE83BD5041D7A3702DDEE154410000005076BD5041D7A3701DEBE15441EC51B84E7CBD5041D7A3701DEEE154410000000083BD50415C8FC205F2E15441E17A147E92BD504185EB5188FBE15441666666C693BD5041F6285C7FFCE154417B14AE679EBD5041C3F5289CF4E154417B14AE77A5BD50418FC2F578EAE154411F85EBE192BD5041EC51B82EE4E15441EC51B8DE83BD5041D7A3702DDEE15441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000EC51B84E7CBD5041D7A3701DEEE15441D20109557CBD504123902021EEE154412C25116E7CBD5041B0BEC92DEEE1544183D4949C7DBD504133805EE0EEE154410000000083BD50415C8FC205F2E1544164611FCF8DBD5041277258A8F8E154412189268692BD50416179258BFBE15441D86E714793BD5041CA3DD51FFCE15441666666C693BD5041F6285C7FFCE154417B14AE679EBD5041C3F5289CF4E154415E881170A3BD5041D637CF62EDE1544174230F71A5BD5041B580187CEAE15441CA85712698BD504180F91EF7E5E154411F85EBE192BD5041EC51B82EE4E15441723A64BE92BD50410D348220E4E1544123AE50B092BD504113E8B81BE4E15441A0E577388FBD50415045BDB7E2E15441EC51B8DE83BD5041D7A3702DDEE1544149E6624D77BD5041922DA42BEAE15441F4CBF95576BD5041230AB518EBE1544196F9FBF27BBD504197AC88EFEDE15441EC51B84E7CBD5041D7A3701DEEE15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>7546 - 321348
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A000000EC51B8DE83BD5041D7A3702DDEE154410000005076BD5041D7A3701DEBE15441EC51B84E7CBD5041D7A3701DEEE154410000000083BD50415C8FC205F2E15441E17A147E92BD504185EB5188FBE15441666666C693BD5041F6285C7FFCE154417B14AE679EBD5041C3F5289CF4E154417B14AE77A5BD50418FC2F578EAE154411F85EBE192BD5041EC51B82EE4E15441EC51B8DE83BD5041D7A3702DDEE15441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000EC51B84E7CBD5041D7A3701DEEE15441D20109557CBD504123902021EEE154412C25116E7CBD5041B0BEC92DEEE1544183D4949C7DBD504133805EE0EEE154410000000083BD50415C8FC205F2E1544164611FCF8DBD5041277258A8F8E154412189268692BD50416179258BFBE15441D86E714793BD5041CA3DD51FFCE15441666666C693BD5041F6285C7FFCE154417B14AE679EBD5041C3F5289CF4E154415E881170A3BD5041D637CF62EDE1544174230F71A5BD5041B580187CEAE15441CA85712698BD504180F91EF7E5E154411F85EBE192BD5041EC51B82EE4E15441723A64BE92BD50410D348220E4E1544123AE50B092BD504113E8B81BE4E15441A0E577388FBD50415045BDB7E2E15441EC51B8DE83BD5041D7A3702DDEE1544149E6624D77BD5041922DA42BEAE15441F4CBF95576BD5041230AB518EBE1544196F9FBF27BBD504197AC88EFEDE15441EC51B84E7CBD5041D7A3701DEEE15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>7548 - 58189
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000060000009A99996953BD50418FC2F5C84AE1544185EB513850BD504148E17A143BE15441B81E858B40BD504148E17A3437E154417B14AEE73ABD5041295C8F7236E154419A99999952BD5041B81E85AB4CE154419A99996953BD50418FC2F5C84AE15441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000B81E858B40BD504148E17A3437E154419766FDA23CBD50414CAC19AE36E15441EB3326EA3ABD50414133E07436E15441353A529552BD50416FD181A74CE154413851079852BD50416DD181A74CE154411D87A02753BD5041556804624BE1544192A3086153BD5041FF6DD5DC4AE154410A1A096753BD504106D6E8CE4AE154419E1E6E3750BD504198842D183BE15441BC0C980B46BD50414786919038E15441B81E858B40BD504148E17A3437E15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>7548 - 121273
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000060000009A99996953BD50418FC2F5C84AE1544185EB513850BD504148E17A143BE15441B81E858B40BD504148E17A3437E154417B14AEE73ABD5041295C8F7236E154419A99999952BD5041B81E85AB4CE154419A99996953BD50418FC2F5C84AE15441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000B81E858B40BD504148E17A3437E154419366FDA23CBD50414EAC19AE36E15441E73326EA3ABD50413C33E07436E15441353A529552BD504171D181A74CE154413851079852BD504171D181A74CE154411F87A02753BD50415A6804624BE1544193A3086153BD5041FB6DD5DC4AE15441051A096753BD504102D6E8CE4AE15441A11E6E3750BD504193842D183BE15441BC0C980B46BD50414586919038E15441B81E858B40BD504148E17A3437E15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>7548 - 321349
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000060000009A99996953BD50418FC2F5C84AE1544185EB513850BD504148E17A143BE15441B81E858B40BD504148E17A3437E154417B14AEE73ABD5041295C8F7236E154419A99999952BD5041B81E85AB4CE154419A99996953BD50418FC2F5C84AE15441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000B81E858B40BD504148E17A3437E154419366FDA23CBD50414EAC19AE36E15441E73326EA3ABD50413C33E07436E15441353A529552BD504171D181A74CE154413851079852BD504171D181A74CE154411F87A02753BD50415A6804624BE1544193A3086153BD5041FB6DD5DC4AE15441051A096753BD504102D6E8CE4AE15441A11E6E3750BD504193842D183BE15441BC0C980B46BD50414586919038E15441B81E858B40BD504148E17A3437E15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>7695 - 399164
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000008000000270000008FC2F5382CBC50418FC2F5D8D2E354418FC2F5D82FBC5041333333E3CFE354417B14AE2730BC5041EC51B8DECAE35441C3F5285C2FBC504148E17A04C6E3544152B81E752EBC50413D0AD7C3C6E35441CDCCCC9C2DBC5041AE47E1EAC5E354417B14AE572CBC504114AE4701C7E35441D7A370BD2BBC5041713D0A97C4E35441A4703D1A2CBC5041EC51B8AEC3E354413D0AD7032DBC5041EC51B82EC3E35441666666262BBC5041CDCCCCECC0E354418FC2F5A829BC504100000010C2E3544185EB518821BC5041E17A144EB8E35441B81E856B1FBC504152B81E85B7E3544148E17A241BBC50410AD7A390B8E35441EC51B83E14BC5041CDCCCC0CBBE354419A9999D904BC50415C8FC2C5C4E35441666666E6F8BB5041B81E855BCBE35441B81E851BF8BB5041F6285CAFCBE35441666666E600BC5041666666B6D0E354411F85EBD104BC50415C8FC255D3E35441C3F5282C04BC504133333323D4E35441AE47E1AAFFBB5041C3F5285CD1E354419A999999F6BB504100000050CCE35441AE47E13AEFBB504100000060CFE35441CDCCCC6CE9BB50415C8FC205D4E354419A9999D9E7BB50417B14AE97D4E35441713D0A87EFBB5041EC51B8AEE0E35441295C8F12FBBB5041E17A14AEE9E354413333337300BC5041000000F0E5E354417B14AE3702BC50411F85EB31E2E354410AD7A33004BC50413D0AD763DFE354417B14AE4709BC5041B81E85CBDCE35441A4703DEA0EBC50419A999909DCE3544185EB515818BC50419A999939D8E35441713D0A471ABC50415C8FC2B5D8E35441333333631EBC5041295C8F42D7E35441EC51B81E26BC5041F6285CCFD5E354418FC2F5382CBC50418FC2F5D8D2E35441090000005C8FC20515BC5041C3F5287CD2E354417B14AEC714BC504166666626D3E35441EC51B84E10BC5041A4703D8AD4E3544185EB51780DBC5041EC51B8DED5E35441C3F5282C0BBC50417B14AEA7D6E3544114AE47A10ABC50411F85EB81D5E35441AE47E14A0BBC5041C3F5284CD4E35441C3F5283C14BC50417B14AE37D1E354415C8FC20515BC5041C3F5287CD2E3544108000000A4703DCAF3BB50418FC2F528DAE35441E17A149EFABB50419A9999B9DDE35441B81E851BF9BB504114AE47A1DEE35441C3F528BCF1BB5041333333C3DAE354418FC2F5A8ECBB5041C3F528ECD7E3544148E17A34EDBB5041666666C6D6E3544166666696F0BB50418FC2F548D8E35441A4703DCAF3BB50418FC2F528DAE35441050000005C8FC295FBBB504133333333E0E35441CDCCCC9CFCBB5041F6285CDFDEE3544114AE47B1FFBB5041EC51B8BEE0E35441AE47E19AFEBB504133333303E2E354415C8FC295FBBB504133333333E0E3544113000000000000201BBC504185EB5118D1E3544148E17AC418BC50410AD7A300D2E354413333331317BC5041EC51B82ED2E35441F6285CBF15BC5041333333B3D1E354419A99995916BC5041B81E85BBD0E354418FC2F5B81DBC504148E17AF4CDE35441A4703DFA22BC504114AE4781CCE35441F6285CDF27BC504152B81E35CAE35441C3F5283C28BC5041EC51B8EECAE35441AE47E13A2ABC504133333373CAE35441666666B62ABC50419A999989CBE3544152B81E0529BC5041F6285CAFCCE35441EC51B8EE27BC5041AE47E13ACDE35441333333A325BC50417B14AE97CDE35441B81E85DB22BC5041CDCCCCCCCEE354410AD7A37020BC504185EB5148CFE35441713D0AE71DBC50413D0AD7D3CFE354418FC2F5E81BBC5041D7A3708DD0E35441000000201BBC504185EB5118D1E35441050000008FC2F51800BC5041AE47E11AD4E354410AD7A370FBBB5041AE47E1AAD1E35441E17A141EFCBB50417B14AE47D0E35441EC51B8CE00BC5041F6285CCFD2E354418FC2F51800BC5041AE47E11AD4E3544107000000F6285C2FF1BB504148E17AD4D3E3544114AE4791F0BB5041D7A3703DD4E35441A4703D8AEFBB5041E17A14DED3E35441A4703DFAEEBB5041B81E850BD3E35441A4703D8AEFBB50418FC2F508D2E35441A4703DFAF0BB50413D0AD793D2E35441F6285C2FF1BB504148E17AD4D3E3544106000000E17A147EF4BB50410AD7A380D6E3544148E17A74F4BB50417B14AEB7D5E3544100000040F6BB5041AE47E19AD5E3544114AE4731F6BB504133333323D7E354417B14AEE7F4BB50411F85EB31D7E35441E17A147EF4BB50410AD7A380D6E35441
+</a>
+
+<b>
+01060000000100000001030000000800000036000000998B5BBE0EBC5041CDBE7F0FDCE35441341176E30EBC50412CA497F5DBE35441C5B7640A14BC50414ADB0D7CDAE35441713D0A471ABC50415C8FC2B5D8E35441E3B06E6E1EBC5041BE5DA182D7E354414D4CF6931EBC5041BA3BE377D7E35441B9B7CB4628BC50419ADF59C3D4E354417290627628BC5041C7A03FACD4E3544147C2F5382CBC504143C2F5D8D2E354417AC2F5D82FBC50411E3333E3CFE354416F14AE2730BC5041C951B8DECAE35441B01EB91030BC50419EAF9852CAE35441D0F5285C2FBC504195E17A04C6E3544175B81E752EBC5041FE0AD7C3C6E35441DCCCCC9C2DBC50414848E1EAC5E354415BAB459F2CBC504198C7F9C3C6E354415914AE572CBC504102AE4701C7E3544196299B432CBC5041F65CD1B0C6E35441D7A370BD2BBC5041713D0A97C4E35441A4703D1A2CBC5041EC51B8AEC3E35441230AD7032DBC5041FA51B82EC3E35441236666262BBC504100CDCCECC0E354415CC2F5A829BC5041D4FFFF0FC2E3544193EB518821BC5041727B144EB8E35441A21E856B1FBC504157B81E85B7E3544148E17A241BBC50410AD7A390B8E354414D2BE01C18BC5041EF3A12A8B9E35441ED51B83E14BC504105CDCC0CBBE35441839999D904BC5041818FC2C5C4E35441306666E6F8BB5041D91E855BCBE35441BA1E851BF8BB5041F7285CAFCBE354412EFB7C36FEBB50415F5A0E2DCFE35441B06666E600BC50415F6666B6D0E354414685EBD104BC5041538FC255D3E35441C3F5282C04BC504133333323D4E35441AE47E1AAFFBB5041C3F5285CD1E35441C8999999F6BB50411A000050CCE35441B7D90357F1BB5041B0F18D7FCEE35441AE47E13AEFBB504100000060CFE3544192C5BF7CEABB50414768092CD3E35441CDCCCC6CE9BB50415C8FC205D4E35441B69999D9E7BB50417114AE97D4E35441DCD25B14EEBB50415E1BFF66DEE35441713D0A87EFBB5041EC51B8AEE0E35441295C8F12FBBB5041E17A14AEE9E354418AE4DE34FDBB50416245DF31E8E354413433337300BC5041CEFFFFEFE5E354411A14AE3702BC50413685EB31E2E3544177FB4ED803BC504136BA73E1DFE354413FD7A33004BC50410A0AD763DFE35441B134956A06BC50411E1A4541DEE354417B14AE4709BC5041B81E85CBDCE35441024F41560ABC5041D6AF25A7DCE35441998B5BBE0EBC5041CDBE7F0FDCE354411B000000C14B41BB1BBC50417BCC0B33D1E35441342B3EE01ABC5041C4194D8ED1E354413CF1DFBA1ABC504198873796D1E354416CE17AC418BC50413BD7A300D2E3544114EAAED117BC50412D39761AD2E354413333331317BC5041EC51B82ED2E35441AD285CBF15BC5041F03233B3D1E354419599995916BC5041271E85BBD0E354419BC2F5B81DBC50413BE17AF4CDE354411534DF9220BC5041D7BC132BCDE3544191703DFA22BC504119AE4781CCE354416C8ACB6123BC504106FEAC50CCE354411D295CDF27BC504168B81E35CAE35441DCF5283C28BC5041E651B8EECAE3544172B00F5B28BC5041CE123FE7CAE35441EA47E13A2ABC504189323373CAE35441C06666B62ABC504164999989CBE3544180BD0A772ABC5041B5628EB4CBE3544152B81E0529BC5041F6285CAFCCE35441EC51B8EE27BC5041AE47E13ACDE35441A2BEDB4725BC504139A82F20CEE35441E407B81B23BC5041526514EDCEE354417D537F7A20BC504170E2B39CCFE35441CB8CB6A31EBC5041C6277A41D0E35441BD5C16311EBC5041F39E9869D0E3544169257D3F1CBC5041A2DCF2FBD0E35441C14B41BB1BBC50417BCC0B33D1E354410C000000B0AC5050F2BB5041A348B14BD9E35441A4703DCAF3BB50418FC2F528DAE3544152B8FE81F7BB5041FDF9EB19DCE35441E17A149EFABB50419A9999B9DDE35441CF984310FABB5041A47C980EDEE35441B81E851BF9BB504114AE47A1DEE35441C3F528BCF1BB5041333333C3DAE354418FC2F5A8ECBB5041C3F528ECD7E35441649EB70AEDBB504152E6541ED7E3544120E17A34EDBB5041316666C6D6E35441A2666696F0BB504148C2F548D8E35441B0AC5050F2BB5041A348B14BD9E354410C000000E8F5283C14BC5041B614AE37D1E354415C8FC20515BC5041C3F5287CD2E35441563079DB14BC504189071FF0D2E354417514AEC714BC50411F676626D3E354416E63975B10BC50412E5F3D86D4E354410F52B84E10BC504199703D8AD4E3544196EB51780DBC50411F52B8DED5E3544141F5282C0BBC5041AF14AEA7D6E3544167457AD10ABC5041EB32DEE7D5E3544114AE47A10ABC50411F85EB81D5E35441AE47E14A0BBC5041C3F5284CD4E35441E8F5283C14BC5041B614AE37D1E35441070000006BC2F51800BC50419B47E11AD4E354416EEF539CFDBB504163EDB2CDD2E354410AD7A370FBBB5041AE47E1AAD1E35441E17A141EFCBB50417B14AE47D0E354412F0586A2FEBB5041337E52A3D1E35441EC51B8CE00BC5041F6285CCFD2E354416BC2F51800BC50419B47E11AD4E35441080000002DAD490EFCBB5041DB60897BE0E354414A8FC295FBBB50412C333333E0E354418BCCCC9CFCBB5041BD285CDFDEE3544122E947E5FCBB5041EAD26C0BDFE3544153AE47B1FFBB5041B952B8BEE0E3544119C7B9ECFEBB5041E1B3CEA3E1E35441AE47E19AFEBB504133333303E2E354412DAD490EFCBB5041DB60897BE0E354410B0000009A703D8AEFBB5041A1C2F508D2E35441A4703DFAF0BB50413D0AD793D2E35441F6285C2FF1BB504148E17AD4D3E3544155EB1FE0F0BB504179F51609D4E3544149AE4791F0BB5041F6A3703DD4E3544121FDBC2CF0BB5041E594FD18D4E3544178703D8AEFBB5041BE7A14DED3E3544125E77A68EFBB5041922BB7ACD3E35441A4703DFAEEBB5041B81E850BD3E35441B571DA34EFBB504128CD46A2D2E354419A703D8AEFBB5041A1C2F508D2E354410900000051A62A9CF4BB50412A2626B3D6E35441E17A147EF4BB50410AD7A380D6E3544148E17A74F4BB50417B14AEB7D5E35441E915404BF5BB5041C62E38AAD5E354411C000040F6BB50416847E19AD5E3544114AE4731F6BB504133333323D7E35441CAF62CACF5BB5041C2FB2429D7E354417214AEE7F4BB50417185EB31D7E3544151A62A9CF4BB50412A2626B3D6E35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>8059 - 406863
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000036000000295C8F7295B5504148E17A6429DE544148E17A7495B5504148E17AE429DE544152B81E4597B55041B81E852B28DE5441333333E39BB550417B14AE6726DE5441E17A140E9FB550419A99995925DE5441E17A144EA2B550411F85EBA124DE54415C8FC2A5A8B550410AD7A38022DE54415C8FC2B5AAB550419A99990921DE54410AD7A3E0ACB55041AE47E1CA20DE544114AE4721AFB550410000009021DE5441295C8F12B2B550410000008023DE5441C3F5287CB2B550410AD7A32023DE54413D0AD743B2B55041CDCCCCEC1EDE5441A4703D1AB3B55041D7A370ED1CDE5441EC51B8AEB4B55041F6285C6F1CDE544133333323B7B55041C3F5289C1BDE5441B81E850BB9B55041713D0A871ADE544185EB51A8BAB5504185EB51F819DE54417B14AE07BCB550411F85EBC119DE544185EB5168BCB55041CDCCCC7C18DE5441713D0A67BBB55041A4703D4A14DE5441E17A142EBDB55041B81E858B10DE5441E17A14AEBDB55041CDCCCC6C0EDE544152B81EA5BDB550413D0AD7430CDE544152B81E45BDB55041AE47E1FA0ADE5441C3F5285CBBB550418FC2F57808DE544100000010BBB55041A4703DCA05DE5441D7A3700DBEB55041CDCCCC7C00DE5441713D0A17BDB55041D7A3701DFFDD544148E17A14BCB5504166666686FEDD544185EB51C8B9B5504152B81EF5FDDD5441713D0A57B7B55041A4703D3AFEDD5441D7A3701DB6B550413D0AD7B3FDDD544148E17AB4B4B55041E17A14EEF9DD5441295C8FD2B3B55041E17A143EF9DD5441295C8F42B0B55041A4703DBAF8DD5441295C8F92AEB55041EC51B87EF7DD5441D7A370DDADB55041713D0A47F5DD54417B14AE37ADB5504114AE47A1F0DD544166666636ACB550419A999969EDDD544100000030ABB5504114AE47B1EBDD5441713D0AC7A7B550417B14AEA7E8DD5441F6285CDFA5B550415C8FC2C5E7DD544152B81E75A3B55041D7A370DDE6DD54413D0AD753A1B550418FC2F538E5DD54415C8FC2359DB550415C8FC2D5DFDD5441AE47E1EA9AB550410AD7A3D0DBDD5441A4703D5A98B550413D0AD7C3D9DD5441D7A3706D96B55041000000A0D8DD54415C8FC22594B550415C8FC2F5D7DD54417B14AE2794B550415C8FC275D8DD54413333330395B550417B14AE570DDE54419A99990995B55041000000B00FDE5441295C8F7295B5504148E17A6429DE5441
+</a>
+
+<b>
+01060000000100000001030000000100000052000000B647EF689EB5504126F5AD67E1DD5441518FC2359DB55041678FC2D5DFDD54416347E1EA9AB550412AD7A3D0DBDD5441DA703D5A98B55041680AD7C3D9DD54418CA3706D96B55041150000A0D8DD5441928FC22594B550419D8FC2F5D7DD5441AD18AE2794B550412692C375D8DD544183DC134094B550417C5B5F56DEDD5441E7A67004B5B55041ACF37D0C00DE54417D99A2A1B3B55041FDED3AC919DE5441BC369F6D95B5504175351EDE26DE54415F5C8F7295B5504188E17A6429DE544168E17A7495B550412AE17AE429DE544162CC83EA95B550413CF1757429DE544107B81E4597B550418D1E852B28DE5441693333E39BB550415B14AE6726DE5441B67A140E9FB550418499995925DE5441818968FDA1B550415ED5BAB324DE5441CC7A144EA2B550411F85EBA124DE54414890468BA2B550412B625E8D24DE54415C8FC2A5A8B550410AD7A38022DE54415C8FC2B5AAB550419A99990921DE54410AD7A3E0ACB55041AE47E1CA20DE54418E61A0C4AEB55041EDBC537021DE544114AE4721AFB55041F5FFFF8F21DE5441545C8F12B2B55041D5FFFF7F23DE5441C3F5287CB2B550410AD7A32023DE54413D0AD743B2B55041CDCCCCEC1EDE54413AB5ED0AB3B55041527EF5111DDE5441AF703D1AB3B55041B7A370ED1CDE544175E18D95B4B550414F5334771CDE5441EC51B8AEB4B55041F6285C6F1CDE544133333323B7B55041C3F5289C1BDE544169316219B8B55041339E73101BDE5441C31E850BB9B550413B3D0A871ADE54417AEB51A8BAB550415AEB51F819DE54417B14AE07BCB55041F484EBC119DE54415DDFA81DBCB55041F4A5F97719DE544185EB5168BCB55041CDCCCC7C18DE5441FD6E134FBCB550414B785D1318DE5441303D0A67BBB55041B9703D4A14DE5441A17A142EBDB55041981E858B10DE54414BD72773BDB550415FABA3660FDE5441E17A14AEBDB55041CDCCCC6C0EDE5441AE1A02ABBDB550414A2E3AAF0DDE544107B81EA5BDB55041530AD7430CDE544157E89857BDB550415D0E323A0BDE544152B81E45BDB55041AE47E1FA0ADE5441C3F5285CBBB550418FC2F57808DE544100000010BBB55041A4703DCA05DE5441D7A3700DBEB55041CDCCCC7C00DE5441713D0A17BDB55041D7A3701DFFDD544148E17A14BCB5504166666686FEDD5441289E33E9BAB55041BFD8793CFEDD544170EB51C8B9B5504188B81EF5FDDD544137B929ACB8B55041320B8814FEDD5441713D0A57B7B55041A4703D3AFEDD5441C2A3701DB6B55041120AD7B3FDDD5441027D47FDB5B55041DBFACA5DFDDD544148E17AB4B4B55041E17A14EEF9DD54412A108D34B4B55041A52A6B8AF9DD5441D35B8FD2B3B550410C7B143EF9DD54413123A220B1B5504141DE57DAF8DD5441F35B8F42B0B550418E703DBAF8DD5441BC83AAD3AFB5504187113F69F8DD5441295C8F92AEB55041EC51B87EF7DD544136FCB449AEB55041ACE7609AF6DD5441ACA370DDADB550417B3D0A47F5DD544123A7699EADB550413BA8A782F3DD54417B14AE37ADB5504114AE47A1F0DD544186E2AF51ACB55041EB93F5C0EDDD54415F666636ACB550418F999969EDDD54411AB3E728ACB55041BA71F452EDDD5441BA192624ACB55041E940F94AEDDD544100000030ABB5504114AE47B1EBDD5441319E5E68AAB5504191EC74FFEADD5441303D0AC7A7B550419B14AEA7E8DD5441D6285CDFA5B55041878FC2C5E7DD544147B81E75A3B55041EDA370DDE6DD5441C29EDDCDA2B550417F3A775CE6DD54413D0AD753A1B550418FC2F538E5DD5441B647EF689EB5504126F5AD67E1DD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>8074 - 387533
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000016000000295C8F5297B550416666666607E2544148E17A149FB550413333337307E2544152B81EE5A6B5504185EB512807E254417B14AE07AFB55041E17A144E06E2544166666696B7B550418FC2F5F804E25441D7A3703DC0B5504114AE472104E254419A999909CBB550411F85EBF103E25441CDCCCC7CD5B55041A4703DDA05E25441AE47E14AD0B5504166666666ECE1544185EB5138C4B55041713D0AD7EDE15441295C8F42AFB550419A999939F0E15441F6285C6F9DB5504133333373F2E1544148E17A8496B550417B14AEE7F2E154418FC2F52894B5504133333363F3E15441A4703D6A8FB550413D0AD7F3F3E15441F6285C1F88B5504185EB51C8F4E1544148E17A947CB5504185EB5158F6E15441AE47E12A7DB55041666666B6F7E1544114AE47817EB550415C8FC2A5FCE1544114AE47B17FB55041C3F5288C05E25441666666468BB550419A9999B906E25441295C8F5297B550416666666607E25441
+</a>
+
+<b>
+01060000000100000001030000000100000025000000F6285C1F88B5504185EB51C8F4E1544113953DC684B550417CFF583CF5E15441747157977CB55041E213FB5EF6E15441AE47E12A7DB55041666666B6F7E154418B995C807EB550410D2E5FA2FCE15441825C61807EB55041B1BF70A2FCE154412AAE47817EB55041728FC2A5FCE154412BD16DB57EB55041FB529A2CFEE1544114AE47B17FB55041C3F5288C05E254412B7F213A85B550411F2B331C06E25441116666468BB550414E9999B906E25441F35B8F5297B55041F065666607E2544173E17A149FB550411E33337307E2544192B81EE5A6B5504165EB512807E25441D2CC0880A8B550417B3342FD06E254417B14AE07AFB55041E17A144E06E2544166666696B7B550418FC2F5F804E2544153D45B86BCB550412030E37D04E2544142A4703DC0B55041DFAD472104E2544144999909CBB55041F484EBF103E2544181263BD9CFB5504130A3BCD204E2544118B79A1FD3B55041CC23C56B05E25441238B7302D4B55041D4832D9505E25441C6CCCC7CD5B55041A3703DDA05E25441AE47E14AD0B5504166666666ECE1544185EB5138C4B55041713D0AD7EDE15441D46C2BA2C3B55041FF1520E8EDE15441C8CC9F22A9B55041C12C51FDF0E15441F6285C6F9DB5504133333373F2E15441AA1EA8C39AB55041AAB42BA0F2E15441FD07A85896B55041CBBB6DFAF2E154415B145B1395B5504158273A33F3E154418FC2F52894B5504133333363F3E154413F6710AA93B55041C4514F72F3E154413A2E061B91B5504138E24FD0F3E154416B68CE1C8BB55041DA463371F4E15441F6285C1F88B5504185EB51C8F4E15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>8264 - 58217
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000090000007B14AEC73CB55041F6285C6F5CDE5441A4703DCA38B55041295C8F625DDE544114AE477130B5504185EB513860DE54411F85EBE122B550418FC2F53865DE5441D7A370BD2BB55041666666A68ADE544114AE476138B5504133333313C0DE5441B81E85BB53B55041D7A3706DBDDE5441A4703D3A48B55041000000D08CDE54417B14AEC73CB55041F6285C6F5CDE5441
+</a>
+
+<b>
+01060000000100000001030000000100000007000000D7E9D1A13DB550410DFB390960DE5441DAC7112550B55041C4744D005CDE5441129572664FB5504118A3CDD958DE5441CC8E66564FB55041B7AB8B9858DE54413C210C6943B55041C8A888E15ADE544159BE65CE3CB550415283BF8B5CDE5441D7E9D1A13DB550410DFB390960DE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>8350 - 87046
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001300000048E17A5413B45041CDCCCCCC83DD5441666666A619B450417B14AE7789DD5441F6285C3F1DB45041F6285C7F8CDD5441C3F5289C20B45041A4703D0A8FDD5441A4703D1A26B45041A4703DDA92DD54417B14AE1730B45041333333F398DD5441713D0A7736B4504152B81E559CDD5441AE47E11A3FB4504152B81E15A1DD544152B81E1546B450411F85EBC1A4DD54417B14AE374DB45041295C8F82A8DD54419A99999950B45041A4703DFAA9DD5441B81E85EB54B45041D7A3705DABDD544185EB51D857B45041333333F3ABDD5441CDCCCC3C58B4504148E17AA462DD54419A99995950B45041EC51B8AE60DD5441EC51B8DE4DB450415C8FC2E55FDD54415C8FC29514B4504148E17A7451DD54417B14AE9713B45041295C8F3252DD544148E17A5413B45041CDCCCCCC83DD5441
+</a>
+
+<b>
+01060000000100000001030000000100000028000000C3F5289C20B45041A4703D0A8FDD5441238497A624B4504194BB44D891DD544152A4E3E727B450410834C4EF93DD54414FC43ED12BB45041DD2E805596DD54418C78483F2CB4504132F75C9A96DD54417B14AE1730B45041333333F398DD5441713D0A7736B4504152B81E559CDD54416C039ED439B450412ABDC92E9EDD5441AE47E11A3FB4504152B81E15A1DD544152B81E1546B450411F85EBC1A4DD54410738788A48B4504148B4E90CA6DD54411A0BF63C4DB4504107E9D984A8DD5441C03FA7594EB45041F6785D00A9DD54412D6FC6A34FB45041A6B5968FA9DD54412BBE7D4B50B450412C395AD8A9DD5441A6895F0552B450412FAE136FAADD5441AE78C46353B450414AE09DDFAADD5441806917EA54B45041862EFB5CABDD544185EB51D857B45041333333F3ABDD5441E07C550A58B45041B095BD0C84DD5441B90E420E58B45041FE50AF4080DD5441C3FEC03258B4504105BFAECD63DD5441377D8B7A57B4504162BCCA9F63DD5441AC11501E51B450411AB76A1762DD5441BDB478A048B450417BE8B10D60DD54411D1BC37B3BB45041766F47525CDD5441E3AD900E2EB45041D6590CA358DD5441986890BE2BB45041D332D01258DD544176E83C8E2AB45041820A75BC57DD54414399C8A821B450416DC66C8F55DD544176C236571CB45041CABEF94554DD544179BAE9E413B450419A44643D52DD544112A1D5AC13B4504145F16A3752DD54418583B79D13B45041A43DF23352DD5441F208757D13B45041B19E973566DD5441D6C5275D13B4504145E0FBC97EDD54416F0B325D13B450416C9C9DD483DD5441666666A619B450417B14AE7789DD5441F6285C3F1DB45041F6285C7F8CDD5441C3F5289C20B45041A4703D0A8FDD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>8350 - 265283
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001300000048E17A5413B45041CDCCCCCC83DD5441666666A619B450417B14AE7789DD5441F6285C3F1DB45041F6285C7F8CDD5441C3F5289C20B45041A4703D0A8FDD5441A4703D1A26B45041A4703DDA92DD54417B14AE1730B45041333333F398DD5441713D0A7736B4504152B81E559CDD5441AE47E11A3FB4504152B81E15A1DD544152B81E1546B450411F85EBC1A4DD54417B14AE374DB45041295C8F82A8DD54419A99999950B45041A4703DFAA9DD5441B81E85EB54B45041D7A3705DABDD544185EB51D857B45041333333F3ABDD5441CDCCCC3C58B4504148E17AA462DD54419A99995950B45041EC51B8AE60DD5441EC51B8DE4DB450415C8FC2E55FDD54415C8FC29514B4504148E17A7451DD54417B14AE9713B45041295C8F3252DD544148E17A5413B45041CDCCCCCC83DD5441
+</a>
+
+<b>
+01060000000100000001030000000100000028000000C3F5289C20B45041A4703D0A8FDD5441238497A624B4504194BB44D891DD544152A4E3E727B450410834C4EF93DD54414FC43ED12BB45041DD2E805596DD54418C78483F2CB4504132F75C9A96DD54417B14AE1730B45041333333F398DD5441713D0A7736B4504152B81E559CDD54416C039ED439B450412ABDC92E9EDD5441AE47E11A3FB4504152B81E15A1DD544152B81E1546B450411F85EBC1A4DD54410738788A48B4504148B4E90CA6DD54411A0BF63C4DB4504107E9D984A8DD5441C03FA7594EB45041F6785D00A9DD54412D6FC6A34FB45041A6B5968FA9DD54412BBE7D4B50B450412C395AD8A9DD5441A6895F0552B450412FAE136FAADD5441AE78C46353B450414AE09DDFAADD5441806917EA54B45041862EFB5CABDD544185EB51D857B45041333333F3ABDD5441E07C550A58B45041B095BD0C84DD5441B90E420E58B45041FE50AF4080DD5441C3FEC03258B4504105BFAECD63DD5441377D8B7A57B4504162BCCA9F63DD5441AC11501E51B450411AB76A1762DD5441BDB478A048B450417BE8B10D60DD54411D1BC37B3BB45041766F47525CDD5441E3AD900E2EB45041D6590CA358DD5441986890BE2BB45041D332D01258DD544176E83C8E2AB45041820A75BC57DD54414399C8A821B450416DC66C8F55DD544176C236571CB45041CABEF94554DD544179BAE9E413B450419A44643D52DD544112A1D5AC13B4504145F16A3752DD54418583B79D13B45041A43DF23352DD5441F208757D13B45041B19E973566DD5441D6C5275D13B4504145E0FBC97EDD54416F0B325D13B450416C9C9DD483DD5441666666A619B450417B14AE7789DD5441F6285C3F1DB45041F6285C7F8CDD5441C3F5289C20B45041A4703D0A8FDD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>9181 - 3149958
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000019000000CDCCCCDCE22B51417B14AE07F99B544114AE4751E22B514166666616F99B54413D0AD703E32B5141CDCCCCFCF99B5441C3F528BCE42B514100000090FD9B5441A4703D6AE72B51417B14AE17049C5441000000D0EB2B51413D0AD7630A9C5441A4703D2AEC2B5141CDCCCC6C0A9C5441F6285CFFEE2B5141000000600D9C5441AE47E11AF42B51415C8FC2E50E9C5441333333C3F72B5141B81E856B109C54413D0AD773FB2B5141B81E856B129C5441E17A14BEFE2B5141295C8F52149C54413D0AD7C3012C5141D7A3704D129C5441EC51B85E022C514185EB51180F9C54413D0AD763032C514133333393069C54418FC2F5C8052C514152B81E55F59B5441A4703DBA032C5141D7A3708DF59B5441713D0A57FF2B514148E17A04F69B5441AE47E19AFD2B5141E17A144EFF9B5441F6285C7FFE2B514152B81E150B9C5441CDCCCCECFA2B5141295C8F52039C5441E17A142EF62B5141EC51B8BEFE9B54413D0AD733F62B5141EC51B89EFB9B544148E17A24F82B5141713D0AC7F69B5441CDCCCCDCE22B51417B14AE07F99B5441
+</a>
+
+<b>
+010600000001000000010300000001000000110000009384CCFC082C514129E7AE97E69B5441D77C281C092C51416F7A3E3AE69B5441159846E10D2C51417DCF84DBDB9B5441A040AFA7062C5141DB8EA3E0DB9B5441F67BC315FD2B5141AB5D34E3DB9B5441C2A7B7EEE92B5141836AE29ADB9B54417572FBB6E32B514179828D81E79B5441FF11BFC2E32B5141A9B8C980E99B544181752609E32B5141EA172DB9EB9B54410E9D26ECE22B5141E88659AFF09B54410BD6575FE42B51416D452020F59B54416ABEC546E62B5141F9652BABF89B544131883EBA032C514122F3718DF59B5441A62BF7C8052C514130BA1F55F59B544104A3B7DE062C5141709652C8ED9B5441EA02A4C0072C5141833DFFDFE99B54419384CCFC082C514129E7AE97E69B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>9181 - 3478606
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000019000000CDCCCCDCE22B51417B14AE07F99B544114AE4751E22B514166666616F99B54413D0AD703E32B5141CDCCCCFCF99B5441C3F528BCE42B514100000090FD9B5441A4703D6AE72B51417B14AE17049C5441000000D0EB2B51413D0AD7630A9C5441A4703D2AEC2B5141CDCCCC6C0A9C5441F6285CFFEE2B5141000000600D9C5441AE47E11AF42B51415C8FC2E50E9C5441333333C3F72B5141B81E856B109C54413D0AD773FB2B5141B81E856B129C5441E17A14BEFE2B5141295C8F52149C54413D0AD7C3012C5141D7A3704D129C5441EC51B85E022C514185EB51180F9C54413D0AD763032C514133333393069C54418FC2F5C8052C514152B81E55F59B5441A4703DBA032C5141D7A3708DF59B5441713D0A57FF2B514148E17A04F69B5441AE47E19AFD2B5141E17A144EFF9B5441F6285C7FFE2B514152B81E150B9C5441CDCCCCECFA2B5141295C8F52039C5441E17A142EF62B5141EC51B8BEFE9B54413D0AD733F62B5141EC51B89EFB9B544148E17A24F82B5141713D0AC7F69B5441CDCCCCDCE22B51417B14AE07F99B5441
+</a>
+
+<b>
+010600000001000000010300000001000000110000009384CCFC082C514129E7AE97E69B5441D77C281C092C51416F7A3E3AE69B5441159846E10D2C51417DCF84DBDB9B5441A040AFA7062C5141DB8EA3E0DB9B5441F67BC315FD2B5141AB5D34E3DB9B5441C2A7B7EEE92B5141836AE29ADB9B54417572FBB6E32B514179828D81E79B5441FF11BFC2E32B5141A9B8C980E99B544181752609E32B5141EA172DB9EB9B54410E9D26ECE22B5141E88659AFF09B54410BD6575FE42B51416D452020F59B54416ABEC546E62B5141F9652BABF89B544131883EBA032C514122F3718DF59B5441A62BF7C8052C514130BA1F55F59B544104A3B7DE062C5141709652C8ED9B5441EA02A4C0072C5141833DFFDFE99B54419384CCFC082C514129E7AE97E69B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>9324 - 3239700
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000F000000666666F6A9235141D7A3700D1EA25441EC51B87EAB235141713D0AB71EA25441000000D0B3235141A4703DFA20A25441C3F5283CB523514114AE47D11CA25441F6285CBFB72351419A99996915A254411F85EBF1BB23514148E17A1409A25441000000D0B9235141C3F528BC08A2544114AE4791B4235141B81E856B07A254417B14AEC7AD235141C3F5283C05A254418FC2F538A72351413D0AD76302A2544152B81EE5A32351417B14AEC708A2544152B81EB59D2351417B14AE2712A254413D0AD7339A235141B81E853B18A25441000000C0A1235141666666461BA25441666666F6A9235141D7A3700D1EA25441
+</a>
+
+<b>
+0106000000010000000103000000010000002C000000296159CFB3235141CE1D10FA20A25441F4628930B7235141FEBB890E17A25441138D5A93BA23514143D6761A0DA254411F85EBF1BB23514148E17A1409A254419A999919C223514114AE47B10AA25441D7A3707DC3235141D7A370BD0AA25441EC51B8FEC7235141295C8FA20AA2544185EB51E8CD2351417B14AE970AA2544152B81E05D4235141D7A3709D0AA25441B81E855BD8235141AE47E1AA0AA254417B14AED7DC2351411F85EB710AA2544114AE47A1DF23514152B81E350AA2544148E17A24E1235141F6285C0F0AA2544185EB51B8E7235141295C8F2209A25441CDCCCCECEC2351419A9999D907A25441A4703D9AE8235141F6285CAFEAA15441C3F528BCE023514166666686EBA1544166666686D8235141713D0A47ECA154413D0AD7A3D1235141713D0A47ECA154411F85EBD1C8235141B81E852BECA15441295C8FF2BF23514166666636EBA15441E17A145EB92351410AD7A360EAA1544166666696B3235141666666E6E8A15441D7A370BDB2235141666666F6EAA15441D7A3707DB1235141C3F528ECEDA15441295C8F12AF23514185EB5138F3A15441295C8F32AB235141E17A14BEFAA1544100000000A923514148E17AA4FEA154418FC2F538A72351413D0AD76302A254417789374BA52351411B36011806A254415ECB73C7A3235141038BA1F408A254415D5D2FEEA2235141DFEBD23D0AA25441076A1A31A0235141E5B111640EA25441175F31489D23514102EC8DE412A2544172B0E2339A235141E3D0893B18A25441C8F223B09F23514190D49C711AA254410020F8B5A12351412F415B421BA25441000000C0A1235141666666461BA2544152D0E43DA52351417FEAB7741CA2544185259816A92351412B7FBFC11DA25441666666F6A9235141D7A3700D1EA25441D5AEEE4BAB23514153A115A11EA25441D04CEC6FAD23514101A0493E1FA25441296159CFB3235141CE1D10FA20A25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>10372 - 38047
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000180000007B14AE5757225141C3F528AC3F965441C3F528CC56225141295C8F7240965441666666764F225141000000F03C965441AE47E19A47225141AE47E1BA38965441EC51B8CE44225141A4703D1A37965441AE47E11A3B2251410AD7A3C031965441C3F5285C34225141295C8FD22E965441AE47E19A33225141C3F5283C31965441E17A148E30225141A4703DEA39965441A4703DFA2D2251413D0AD7333F965441000000E025225141A4703D9A539654410000002026225141D7A370AD559654417B14AED72D225141C3F528AC59965441666666C63B225141E17A14CE629654411F85EB4149225141AE47E1DA6A965441713D0AF74B225141B81E851B689654419A99995952225141713D0A675E965441E17A146E5A2251418FC2F5185A965441295C8FE2662251410AD7A310559654418FC2F5A86D22514114AE47D14E9654419A9999996E22514185EB51384C96544152B81E756E225141E17A141E4C96544185EB519867225141EC51B82E479654417B14AE5757225141C3F528AC3F965441
+</a>
+
+<b>
+010600000001000000010300000001000000140000009A99995952225141713D0A675E965441B2C25E6A5222514159DB1A5E5E965441181FE301532251418988600D5E965441E17A146E5A2251418FC2F5185A965441295C8FE2662251410AD7A310559654416A11FBB766225141A2AAFDDE539654417D5475F75F2251413807AA8D56965441877420095C2251410437127358965441066136D25422514135165E1A5C9654411084050052225141A0C541DC5D965441DDE249924D225141D435CD3864965441179B44BD4A2251412D0ED3E968965441F3A34DE94A22514123E33D2D699654416DA8E5ED4A225141DC7E942869965441D39DE2054B225141D2CF3C10699654411D10F0824B225141E667569168965441CB783B664C225141F6DB827267965441F11D2B6D4D2251415F44DBE265965441156117114F225141583C9664639654419A99995952225141713D0A675E965441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>10372 - 78485
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000180000007B14AE5757225141C3F528AC3F965441C3F528CC56225141295C8F7240965441666666764F225141000000F03C965441AE47E19A47225141AE47E1BA38965441EC51B8CE44225141A4703D1A37965441AE47E11A3B2251410AD7A3C031965441C3F5285C34225141295C8FD22E965441AE47E19A33225141C3F5283C31965441E17A148E30225141A4703DEA39965441A4703DFA2D2251413D0AD7333F965441000000E025225141A4703D9A539654410000002026225141D7A370AD559654417B14AED72D225141C3F528AC59965441666666C63B225141E17A14CE629654411F85EB4149225141AE47E1DA6A965441713D0AF74B225141B81E851B689654419A99995952225141713D0A675E965441E17A146E5A2251418FC2F5185A965441295C8FE2662251410AD7A310559654418FC2F5A86D22514114AE47D14E9654419A9999996E22514185EB51384C96544152B81E756E225141E17A141E4C96544185EB519867225141EC51B82E479654417B14AE5757225141C3F528AC3F965441
+</a>
+
+<b>
+010600000001000000010300000001000000140000009A99995952225141713D0A675E965441B2C25E6A5222514159DB1A5E5E965441181FE301532251418988600D5E965441E17A146E5A2251418FC2F5185A965441295C8FE2662251410AD7A310559654416A11FBB766225141A2AAFDDE539654417D5475F75F2251413807AA8D56965441877420095C2251410437127358965441066136D25422514135165E1A5C9654411084050052225141A0C541DC5D965441DDE249924D225141D435CD3864965441179B44BD4A2251412D0ED3E968965441F3A34DE94A22514123E33D2D699654416DA8E5ED4A225141DC7E942869965441D39DE2054B225141D2CF3C10699654411D10F0824B225141E667569168965441CB783B664C225141F6DB827267965441F11D2B6D4D2251415F44DBE265965441156117114F225141583C9664639654419A99995952225141713D0A675E965441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>11503 - 422581
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000600000085EB511885D95041295C8F62F58B54417B14AE8733D9504152B81E85E68B54413333336334D95041D7A3706DEE8B5441CDCCCCEC87D950419A9999A9FD8B54410AD7A32088D9504148E17AF4FB8B544185EB511885D95041295C8F62F58B5441
+</a>
+
+<b>
+010600000001000000010300000001000000080000000EBCBD6683D95041B3AF66D6FC8B54410CCCE3C083D950419081D7E6FC8B5441B067BACF83D9504133458CE9FC8B54410DDFC4E287D950415DEEFE9CFD8B5441C1AC0C1888D95041315BB61AFC8B54410193290685D9504126B26A64F58B5441FBD8957381D95041F05692B8F48B54410EBCBD6683D95041B3AF66D6FC8B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>11657 - 2989276
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000000900000000000000CBD95041AE47E1AAC38D54410AD7A390D0D95041295C8F02D78D5441AE47E1BAD7D950415C8FC275D38D5441B81E85FBEED95041F6285C3FCA8D5441000000F0E4D95041713D0AF79A8D54419A999939D1D950418FC2F548A58D5441A4703DAAC1D95041AE47E10AAB8D5441713D0AF7C5D950411F85EB21B58D544100000000CBD95041AE47E1AAC38D5441
+</a>
+
+<b>
+0106000000010000000103000000010000001200000078EBDD3AC2D9504136825DD5AA8D544173B2DA4EC3D950410AD55311AE8D544152FA175BC5D95041A030CD12B38D544123A8D4DBC7D950410E5845FDB88D544181A35122CAD950414CE43C5CBF8D54419B860FBACBD95041868D7623C48D5441081C0D8CCDD95041B1FB2B1ACC8D5441D60AC7A4CED950415027F954D08D544187000E52CFD95041546B3DAFD28D544127E288BBD0D9504100B41E1DD68D5441873AA067D1D95041AFCE0A98D68D5441AE47E1BAD7D950415C8FC275D38D5441B81E85FBEED95041F6285C3FCA8D5441000000F0E4D95041713D0AF79A8D54419220A796D7D950417EE71BF4A18D5441D9120719D2D95041854EDF6BA58D5441426E500BCBD95041B2AEDB26A88D544178EBDD3AC2D9504136825DD5AA8D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>11657 - 3736759
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000000900000000000000CBD95041AE47E1AAC38D54410AD7A390D0D95041295C8F02D78D5441AE47E1BAD7D950415C8FC275D38D5441B81E85FBEED95041F6285C3FCA8D5441000000F0E4D95041713D0AF79A8D54419A999939D1D950418FC2F548A58D5441A4703DAAC1D95041AE47E10AAB8D5441713D0AF7C5D950411F85EB21B58D544100000000CBD95041AE47E1AAC38D5441
+</a>
+
+<b>
+0106000000010000000103000000010000001200000078EBDD3AC2D9504136825DD5AA8D544173B2DA4EC3D950410AD55311AE8D544152FA175BC5D95041A030CD12B38D544123A8D4DBC7D950410E5845FDB88D544181A35122CAD950414CE43C5CBF8D54419B860FBACBD95041868D7623C48D5441081C0D8CCDD95041B1FB2B1ACC8D5441D60AC7A4CED950415027F954D08D544187000E52CFD95041546B3DAFD28D544127E288BBD0D9504100B41E1DD68D5441873AA067D1D95041AFCE0A98D68D5441AE47E1BAD7D950415C8FC275D38D5441B81E85FBEED95041F6285C3FCA8D5441000000F0E4D95041713D0AF79A8D54419220A796D7D950417EE71BF4A18D5441D9120719D2D95041854EDF6BA58D5441426E500BCBD95041B2AEDB26A88D544178EBDD3AC2D9504136825DD5AA8D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>231581 - 101315
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000014000000CDCCCCBCF65D51419A9999C9D9D954418FC2F568005E5141AE47E14ADCD95441D7A3702D0A5E5141A4703DFADDD9544152B81EB50D5E5141C3F528ACDED954415C8FC205135E514185EB51B8DFD95441B81E85CB1B5E5141666666D6E3D95441C3F5286C1D5E5141A4703D9AE4D95441EC51B88E285E5141A4703DAACCD95441713D0A37245E51413D0AD7E3CAD95441EC51B84E235E51410AD7A340CBD954417B14AE271D5E514148E17AB4CDD95441C3F528DC185E5141F6285C2FCDD95441C3F5288C145E514152B81E25CED9544152B81EF50C5E51411F85EB11CDD95441C3F528BC065E5141D7A3705DCBD95441EC51B89EFA5D514185EB5118C7D954417B14AE47FA5D5141B81E85BBCBD954418FC2F5B8FA5D5141E17A14CECFD9544133333343F95D5141D7A370BDD4D95441CDCCCCBCF65D51419A9999C9D9D95441
+</a>
+
+<b>
+0106000000010000000103000000010000003C000000DFA10F0DFA5D51419381B001BAD95441713D0AF7F75D514114AE4731B9D95441BF9320CDF65D5141A534D7DCB9D954413D9BF6A2F65D5141AA86370BBAD95441BE216050F65D5141EED6ECDEBAD95441E071E30CF65D51414D77EC8BBBD954418855930AF65D51415E4DDA91BBD95441852B3D0AF65D5141942DB792BBD9544140340E0AF65D51416A922F93BBD954418DB4F509F65D5141795F6E93BBD954416CDA585AF65D514148531AAEBCD95441713D0AA7F65D514148E17A94BDD95441EC51B89EF75D51417B14AE27C0D954414405BDE3F75D5141DFC5F7D7C0D9544133333373F85D514166666646C2D95441A4703D6AF95D5141295C8F72C4D95441CDCCCCECF95D514152B81E85C5D95441EC51B89EFA5D514185EB5118C7D95441B715F3FFFB5D5141B657D194C7D954414813D627045E5141E485B474CAD95441BBF041B5065E5141B07B045ACBD954411AD2F2BB085E5141016322E9CBD9544128EB3B940A5E514196F2146BCCD954419B792C440C5E5141C98B6FE1CCD954412C6A0DB70D5E5141CEBD702ACDD9544140D994E70E5E51410FDA8458CDD954413BD6944A105E51410086CC8ACDD9544121FB0502125E5141CEE909C9CDD954418AA69CE3135E5141CE763F0DCED95441C3F5288C145E514152B81E25CED9544172F0B549155E514141A3ECFACDD95441FEC2A35A155E514120E427F7CDD954415015D55B155E514184ECE3F6CDD9544173FC0A80155E5141E45CD4EECDD954417E78AD83155E51419D3A05EECDD954418D653827165E51417C499DC9CDD95441344EDE8B175E514135B0387ACDD95441B47DE105185E5141E1760F5FCDD95441C3F528DC185E5141F6285C2FCDD95441B63666671A5E5141E446365FCDD95441A6E763CD1A5E514151678F6BCDD954414D1BC6B41B5E5141CCF29287CDD95441362E6D321D5E5141953D32B0CDD954418BDB2E951E5E51419DA3C822CDD95441217A90F8215E5141839007C9CBD9544187E373BD225E5141ACD58B7ACBD95441EC51B84E235E51410AD7A340CBD95441A993FF96235E51415BBBC423CBD95441489D88A0235E514170A9F51FCBD954417FD9E2DC235E51418914DA07CBD954413ADC9AFC235E5141BB8C2EFBCAD9544194A6FDD4215E51412E78AAEAC9D95441C7EF31B91C5E5141BD6C7FD4C7D9544108B6C29A145E5141F8159083C4D954415086CD440E5E5141175213EDC1D95441B33C72DE0A5E5141FC8F8893C0D95441D02C6650035E51410F7B239FBDD9544146C0F647005E5141469B1F70BCD954410F982AA7FC5D51419591A505BBD95441DFA10F0DFA5D51419381B001BAD95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>231581 - 302834
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000014000000CDCCCCBCF65D51419A9999C9D9D954418FC2F568005E5141AE47E14ADCD95441D7A3702D0A5E5141A4703DFADDD9544152B81EB50D5E5141C3F528ACDED954415C8FC205135E514185EB51B8DFD95441B81E85CB1B5E5141666666D6E3D95441C3F5286C1D5E5141A4703D9AE4D95441EC51B88E285E5141A4703DAACCD95441713D0A37245E51413D0AD7E3CAD95441EC51B84E235E51410AD7A340CBD954417B14AE271D5E514148E17AB4CDD95441C3F528DC185E5141F6285C2FCDD95441C3F5288C145E514152B81E25CED9544152B81EF50C5E51411F85EB11CDD95441C3F528BC065E5141D7A3705DCBD95441EC51B89EFA5D514185EB5118C7D954417B14AE47FA5D5141B81E85BBCBD954418FC2F5B8FA5D5141E17A14CECFD9544133333343F95D5141D7A370BDD4D95441CDCCCCBCF65D51419A9999C9D9D95441
+</a>
+
+<b>
+0106000000010000000103000000010000003C000000DFA10F0DFA5D51419381B001BAD95441713D0AF7F75D514114AE4731B9D95441BF9320CDF65D5141A534D7DCB9D954413D9BF6A2F65D5141AA86370BBAD95441BE216050F65D5141EED6ECDEBAD95441E071E30CF65D51414D77EC8BBBD954418855930AF65D51415E4DDA91BBD95441852B3D0AF65D5141942DB792BBD9544140340E0AF65D51416A922F93BBD954418DB4F509F65D5141795F6E93BBD954416CDA585AF65D514148531AAEBCD95441713D0AA7F65D514148E17A94BDD95441EC51B89EF75D51417B14AE27C0D954414405BDE3F75D5141DFC5F7D7C0D9544133333373F85D514166666646C2D95441A4703D6AF95D5141295C8F72C4D95441CDCCCCECF95D514152B81E85C5D95441EC51B89EFA5D514185EB5118C7D95441B715F3FFFB5D5141B657D194C7D954414813D627045E5141E485B474CAD95441BBF041B5065E5141B07B045ACBD954411AD2F2BB085E5141016322E9CBD9544128EB3B940A5E514196F2146BCCD954419B792C440C5E5141C98B6FE1CCD954412C6A0DB70D5E5141CEBD702ACDD9544140D994E70E5E51410FDA8458CDD954413BD6944A105E51410086CC8ACDD9544121FB0502125E5141CEE909C9CDD954418AA69CE3135E5141CE763F0DCED95441C3F5288C145E514152B81E25CED9544172F0B549155E514141A3ECFACDD95441FEC2A35A155E514120E427F7CDD954415015D55B155E514184ECE3F6CDD9544173FC0A80155E5141E45CD4EECDD954417E78AD83155E51419D3A05EECDD954418D653827165E51417C499DC9CDD95441344EDE8B175E514135B0387ACDD95441B47DE105185E5141E1760F5FCDD95441C3F528DC185E5141F6285C2FCDD95441B63666671A5E5141E446365FCDD95441A6E763CD1A5E514151678F6BCDD954414D1BC6B41B5E5141CCF29287CDD95441362E6D321D5E5141953D32B0CDD954418BDB2E951E5E51419DA3C822CDD95441217A90F8215E5141839007C9CBD9544187E373BD225E5141ACD58B7ACBD95441EC51B84E235E51410AD7A340CBD95441A993FF96235E51415BBBC423CBD95441489D88A0235E514170A9F51FCBD954417FD9E2DC235E51418914DA07CBD954413ADC9AFC235E5141BB8C2EFBCAD9544194A6FDD4215E51412E78AAEAC9D95441C7EF31B91C5E5141BD6C7FD4C7D9544108B6C29A145E5141F8159083C4D954415086CD440E5E5141175213EDC1D95441B33C72DE0A5E5141FC8F8893C0D95441D02C6650035E51410F7B239FBDD9544146C0F647005E5141469B1F70BCD954410F982AA7FC5D51419591A505BBD95441DFA10F0DFA5D51419381B001BAD95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>13598 - 407801
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000AC000000A4703DBAF31F514152B81EB589215541A4703DEAEF1F5141295C8F428B215541A4703D1AEF1F5141333333838B2155419A999999EE1F5141333333538B2155418FC2F558EE1F51413D0AD7D38A2155418FC2F538EE1F51413D0AD7A38A2155418FC2F5E8ED1F51413D0AD7D38A2155418FC2F518ED1F514148E17A748B2155419A9999A9EC1F514148E17AD48B215541A4703DBAEC1F514148E17A648C215541AE47E1CAEC1F514148E17A348D215541AE47E19AEC1F514152B81EA58D215541AE47E12AEC1F514152B81ED58D215541AE47E1CAEB1F514152B81EC58D215541AE47E1DAEA1F51415C8FC2158E215541AE47E16AEA1F5141666666968E215541B81E854BEA1F5141666666D68E215541C3F5284CEA1F5141666666868F215541CDCCCC2CEA1F51416666661690215541CDCCCC5CE91F5141713D0A0791215541D7A370ADE81F51417B14AEB791215541E17A14AEE81F51417B14AE5792215541EC51B8AEE81F51417B14AE0793215541F6285C4FE81F51417B14AE8793215541F6285CCFE71F514185EB51E893215541F6285C3FE71F514185EB51389421554100000020E71F514185EB51B8942155410AD7A320E71F514185EB51A89521554114AE47F1E61F51418FC2F5489621554114AE4741E61F51418FC2F5D89621554114AE4771E51F51419A9999299721554114AE4771E41F5141A4703D2A9721554114AE47D1E31F5141AE47E18A972155411F85EB81E31F5141AE47E18A98215541333333A3E21F5141B81E850B9A2155413D0AD763E21F5141B81E859B9A2155413D0AD733E21F5141C3F5283C9B2155415C8FC225E21F5141C3F5282C9D215541713D0A17E21F5141C3F5282C9E215541713D0AC7E11F5141C3F5287C9E215541713D0A47E11F5141CDCCCCCC9E215541C3F528CCE01F51411F85EB31A0215541C3F528CCE01F51419A999949A22155417B14AE27E01F51418FC2F5C8A22155419A9999F9DE1F514148E17A04A22155417B14AE47DE1F5141EC51B8AEA021554185EB51E8DD1F5141EC51B82EA121554185EB5148DD1F5141F6285C7FA12155418FC2F508DD1F5141F6285C5FA22155418FC2F578DC1F5141000000B0A22155418FC2F5C8DB1F51410AD7A3E0A22155419A9999A9DB1F51410AD7A350A3215541A4703D8ADB1F51410AD7A360A4215541B81E858BDB1F51410AD7A380A5215541B81E856BDB1F51410AD7A3E0A5215541CDCCCC2CDB1F51410AD7A340A7215541D7A370FDDA1F51410AD7A3C0A7215541D7A370DDDA1F514114AE4751A8215541E17A14EEDA1F514114AE47E1A8215541EC51B8FEDA1F514114AE4781A9215541F6285C0FDB1F51410AD7A320AA21554100000020DB1F51410AD7A3C0AA2155410AD7A310DB1F51410AD7A340AB21554114AE47C1DA1F514114AE4741AC2155411F85EB71DA1F514114AE4741AD215541295C8F52DA1F514114AE47D1AD21554133333303DA1F51411F85EBD1AE2155413D0AD7E3D91F51411F85EB61AF21554148E17A94D91F51411F85EBD1AF21554148E17A54D91F51411F85EB51B021554152B81E05D91F5141295C8FD2B021554152B81E95D81F5141295C8F42B121554152B81ED5D71F5141333333A3B12155415C8FC245D71F51413D0AD723B22155415C8FC215D71F51413D0AD793B2215541666666A6D61F51413D0AD753B3215541666666E6D51F514148E17A94B3215541713D0A97D51F514148E17A44B4215541713D0A17D51F514152B81EC5B42155417B14AE67D41F51415C8FC225B52155417B14AEC7D31F51415C8FC295B521554185EB51F8D31F51415C8FC255B62155418FC2F548D41F51415C8FC2C5B62155419A999939D41F51415C8FC255B72155419A9999C9D31F51415C8FC2B5B7215541A4703D7AD31F514166666636B8215541AE47E1AAD31F51415C8FC2F5B8215541B81E85FBD31F51415C8FC275B9215541C3F5283CD41F51415C8FC205BA215541CDCCCC5CD41F51415C8FC2A5BA215541D7A370FDD31F51415C8FC265BB215541D7A3704DD31F5141666666F6BB215541D7A3705DD21F5141713D0A27BC215541D7A370FDD11F5141713D0A97BC215541D7A3704DD11F51417B14AED7BC215541CDCCCC8CD01F514185EB51A8BC215541CDCCCC0CD01F514185EB5178BC215541CDCCCC0CD01F514185EB51B8BC215541D7A3702DD01F514185EB5128BD215541E17A146ED01F514185EB51B8BD215541EC51B87ED01F514185EB5158BE215541F6285C7FD01F514185EB51F8BE215541F6285C2FD01F514185EB5168BF215541000000D0CF1F51418FC2F5C8BF215541000000F0CF1F514185EB5148C021554114AE47F1CF1F514185EB5108C12155411F85EBB1CF1F51418FC2F5C8C12155411F85EB31CF1F51418FC2F538C22155411F85EB41CE1F51419A999959C221554114AE47B1CD1F5141A4703D2AC22155410AD7A330CD1F5141A4703DBAC1215541000000F0CC1F5141AE47E11AC1215541F6285CBFCC1F5141AE47E1CAC021554100000090CC1F5141AE47E1FAC021554100000080CC1F5141AE47E16AC12155410AD7A340CC1F5141AE47E16AC221554114AE47D1CB1F5141B81E85FBC221554114AE47F1CA1F5141C3F5283CC32155410AD7A3A0C91F5141CDCCCC1CC32155410AD7A310C91F5141D7A3708DC321554114AE47E1C81F5141D7A3703DC42155411F85EBC1C81F5141D7A3709DC4215541295C8FC2C81F5141D7A370ADC5215541F6285CBFC81F514152B81E45C7215541295C8FE2C81F5141CDCCCC7CC72155411F85EBE1CB1F5141B81E853BCC2155413D0AD723C11F5141713D0A77D8215541E17A148EC91F5141000000A0D821554114AE4751C91F5141E17A148ED6215541713D0A57D01F51415C8FC2E5D3215541F6285C1FD11F51417B14AEE7CF2155410AD7A3B0DD1F5141F6285C8FCC215541C3F5288CE51F514148E17AA4CA215541E17A14EEEA1F51411F85EB61C921554152B81E35EB1F5141CDCCCCBCCC21554114AE47B1EC1F514133333393C921554185EB5118ED1F51415C8FC275C92155417B14AE17EF1F5141C3F5289CC4215541CDCCCC3CEF1F5141E17A140EC4215541AE47E1EAEF1F514133333393C221554152B81EF5F21F5141000000D0BC2155417B14AEF7F31F514100000060BA21554148E17A74F41F5141F6285CDFB82155410AD7A390F41F5141E17A14CEB72155419A999979F41F5141C3F5287CB6215541EC51B8EEF31F51418FC2F518B42155417B14AE37F11F514148E17A34B3215541713D0A97EE1F514133333353B12155417B14AE77ED1F5141295C8F12AE2155418FC2F5D8EE1F5141B81E857BAA21554114AE4721F31F514148E17A44A4215541B81E854BF91F51419A9999099A2155410AD7A3C0FD1F514152B81E95932155415C8FC2E5FC1F51410AD7A3508F21554114AE47E1FE1F514185EB51F88C215541EC51B8EEFE1F514185EB51788A215541CDCCCC0CFF1F514185EB513888215541A4703D9AFF1F51417B14AE478521554185EB5168FF1F514185EB51488321554166666676FE1F51418FC2F5D881215541713D0A07FE1F51418FC2F55882215541713D0A77FD1F51419A9999B9822155417B14AEC7FC1F51419A9999D9832155417B14AEE7FB1F5141A4703D6A842155417B14AE17FB1F5141AE47E18A84215541713D0A37FA1F5141B81E854B84215541713D0A97F91F5141C3F5282C84215541713D0A87F81F5141CDCCCC9C84215541713D0A47F71F5141D7A3702D85215541713D0A17F61F5141E17A14DE85215541295C8F12F61F51413D0AD71388215541A4703DBAF31F514152B81EB589215541
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000662FAE80FB1F5141F1E32DD796215541E17391C0FC1F5141176AF1079521554116DF9C8DFB1F5141052365D48E2155413C97ACE3FC1F514138ABB4B58A215541CF7A4501FF1F5141EC2B73248521554185EB5168FF1F514185EB514883215541A8C235ABFD1F51416D24E2B1832155413928181FFC1F514181BCC9B384215541BD3B3BDEFA1F51416836BF3B8521554160B0ABA3F81F5141991CBBBC85215541E550713FF71F5141AA91CD728621554134B1B469F61F5141F95B346887215541C21BDEB8F61F51415AE61B2E88215541969DE0E0F51F51411F6409FD892155413DF20BB7F41F514117D5FE8B8A2155413A5E7E14EE1F5141D27CD1288D2155413C4F5C2FEB1F5141822AF6469021554103AC2249E61F51418745E04B99215541D24F9B79E31F5141C65FB92AA021554153FEFD2AE31F5141A14BF4E0A5215541D2058F9DE41F5141C612261CAA2155417A4A18FCE41F514178A06B87AB215541D3ED9542E81F51418D34A763AE2155412A9394A0EB1F514110AB62F0B021554126827669ED1F51418B8D3000AB21554124A0BA33F31F51410E685BC3A3215541ABA4F1E0F71F51416B8A76309B215541662FAE80FB1F5141F1E32DD796215541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>231654 - 2286356
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000008000000713D0A87A76051419A9999F943D65441B81E85BBA360514148E17A3432D654415C8FC285916051413D0AD71333D65441CDCCCCAC9160514114AE479133D65441F6285C7F9460514114AE477139D65441A4703D8A976051417B14AEE73ED65441E17A14FE98605141A4703D0A40D65441713D0A87A76051419A9999F943D65441
+</a>
+
+<b>
+0106000000010000000103000000020000001F000000F690D7D9F260514127199B1414D65441962CFE7EED605141C043A28419D65441455A2202EC60514109D538581AD6544165092D4EE66051419CF765FF1BD65441143751D1E4605141829082931CD65441A56060AFE0605141D3625E101ED65441CFF4C314D960514169299F271DD65441529C48A0D3605141404031691CD65441046E8093CF605141B55E496B1BD65441A6FE72DDCA6051415F4B284519D65441A16141A4C76051413762BA8618D65441EE96EBE7C5605141AB80D28817D6544100000040B66051413333334319D6544133333333B06051415C8FC29519D65441D1AA8AFAAD605141BB920E6A1CD65441CCED6723AC60514149CB23C21ED654416F6B4E99AA60514132321AB820D65441B0EE19FDA8605141E68D7C1F23D654412A327FCBA5605141BBE7BFFD2BD654415C1C3922A560514100F0B51F30D65441F4BAFB09A460514133F8E1A333D6544192102334A560514105F4FA1739D6544169C47478A76051413CDAA6F543D6544152B81EE5B960514152B81E3548D65441AE47E11ABB605141CDCCCC0C48D654418FC2F538B8605141D7A3708D32D654417B14AE67BE605141AE47E16A32D65441E17A14DED56051417B14AEE731D6544114AE4791F8605141B81E854B2FD654418FC2F5C8F56051418FC2F52822D65441F690D7D9F260514127199B1414D654411000000085EB5108B8605141E17A146E31D654411F85EBB1B6605141A4703D1A33D65441F6285CCFB7605141EC51B88E37D6544148E17A24B8605141666666763ED65441F6285CCFB8605141E17A14CE42D65441C3F528ECB8605141C3F528EC45D6544166666606B560514152B81E2545D6544100000040B660514114AE47B141D6544100000040B6605141E17A14AE3CD6544152B81E95B56051418FC2F53837D65441F6285C3FB56051417B14AE3735D65441B81E855BB46051410AD7A3E031D65441B81E855BB5605141F6285C4F2DD654415C8FC295B7605141295C8F322CD65441CDCCCCECB9605141B81E85FB2FD6544185EB5108B8605141E17A146E31D65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>13901 - 3153374
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001C000000713D0A47DE1B5141F6285C0FB9215541333333C3D71B5141C3F5288CBA215541C3F5287CD41B5141D7A3709DBC2155410AD7A370D21B5141EC51B8CEBE215541A4703D9AD11B51419A999989C0215541CDCCCC6CD11B514166666686C221554133333393D11B514185EB51B8C621554152B81E55D11B51417B14AED7CA215541CDCCCC6CD01B51417B14AE77CE21554133333323CF1B5141A4703DDAD121554114AE4721CC1B51417B14AED7D92155411F85EB51CF1B5141C3F528ACDA2155419A999999D21B5141AE47E14ADB215541713D0A17D41B514100000090DB2155415C8FC205D51B51418FC2F5E8D6215541AE47E14AD91B5141B81E85CBD721554152B81E75D81B514185EB5198DB2155410AD7A330E21B51415C8FC225DD215541E17A143EE31B5141AE47E10ADF215541F6285CAFE41B514148E17A24DA2155417B14AE07E51B5141E17A14DED8215541713D0AD7E61B514148E17AD4D3215541713D0AD7E71B5141C3F5280CD12155411F85EB51EC1B514133333343C621554114AE4781EE1B5141D7A3702DC0215541F6285C4FE81B51415C8FC2D5BC215541F6285CAFE21B51417B14AEA7BA215541713D0A47DE1B5141F6285C0FB9215541
+</a>
+
+<b>
+0106000000010000000103000000010000001D0000006E646A5AE71B5141D0E797E0C421554111958E51EC1B5141EEC10935C6215541A6F54350EC1B5141FB052A38C621554197A56255EC1B5141A3A48C39C62155414679EC76EC1B5141D6FF25DCC52155417661CE8CEC1B5141E943359FC5215541CD20F0ECEC1B514122A77D93C4215541C7813FC1ED1B5141E1A83A44C22155418B090A67EE1B51414F958476C02155418F245483EE1B51410354482EC021554180856B52EE1B5141EB222814C0215541F6285C4FE81B51415C8FC2D5BC215541F6285CAFE21B51417B14AEA7BA215541713D0A47DE1B5141F6285C0FB9215541E46EE24ADE1B5141CBC74208B92155417766201DDE1B514136FDED18B92155412283CC59DC1B5141A2F8F97FB92155414CFBA61AD91B51415844BE3DBA2155419EC243C0D71B5141FAFA028EBA215541345EF01CD71B514160480AF5BA215541C100AE55D61B51412472BC72BB2155417545AE32D51B5141DC8E4D2ABC215541C3F5287CD41B5141D7A3709DBC215541681FA021D41B5141032881FEBC2155419F7B7878D31B5141EB29DCB3BD2155415BCE36E2D21B51418242F454BE21554132D49B97D61B5141018DDF6FBF215541282DCB6EE01B51413F97D7C1C22155416E646A5AE71B5141D0E797E0C4215541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>13901 - 3535114
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001C000000713D0A47DE1B5141F6285C0FB9215541333333C3D71B5141C3F5288CBA215541C3F5287CD41B5141D7A3709DBC2155410AD7A370D21B5141EC51B8CEBE215541A4703D9AD11B51419A999989C0215541CDCCCC6CD11B514166666686C221554133333393D11B514185EB51B8C621554152B81E55D11B51417B14AED7CA215541CDCCCC6CD01B51417B14AE77CE21554133333323CF1B5141A4703DDAD121554114AE4721CC1B51417B14AED7D92155411F85EB51CF1B5141C3F528ACDA2155419A999999D21B5141AE47E14ADB215541713D0A17D41B514100000090DB2155415C8FC205D51B51418FC2F5E8D6215541AE47E14AD91B5141B81E85CBD721554152B81E75D81B514185EB5198DB2155410AD7A330E21B51415C8FC225DD215541E17A143EE31B5141AE47E10ADF215541F6285CAFE41B514148E17A24DA2155417B14AE07E51B5141E17A14DED8215541713D0AD7E61B514148E17AD4D3215541713D0AD7E71B5141C3F5280CD12155411F85EB51EC1B514133333343C621554114AE4781EE1B5141D7A3702DC0215541F6285C4FE81B51415C8FC2D5BC215541F6285CAFE21B51417B14AEA7BA215541713D0A47DE1B5141F6285C0FB9215541
+</a>
+
+<b>
+0106000000010000000103000000010000001D0000006E646A5AE71B5141D0E797E0C421554111958E51EC1B5141EEC10935C6215541A6F54350EC1B5141FB052A38C621554197A56255EC1B5141A3A48C39C62155414679EC76EC1B5141D6FF25DCC52155417661CE8CEC1B5141E943359FC5215541CD20F0ECEC1B514122A77D93C4215541C7813FC1ED1B5141E1A83A44C22155418B090A67EE1B51414F958476C02155418F245483EE1B51410354482EC021554180856B52EE1B5141EB222814C0215541F6285C4FE81B51415C8FC2D5BC215541F6285CAFE21B51417B14AEA7BA215541713D0A47DE1B5141F6285C0FB9215541E46EE24ADE1B5141CBC74208B92155417766201DDE1B514136FDED18B92155412283CC59DC1B5141A2F8F97FB92155414CFBA61AD91B51415844BE3DBA2155419EC243C0D71B5141FAFA028EBA215541345EF01CD71B514160480AF5BA215541C100AE55D61B51412472BC72BB2155417545AE32D51B5141DC8E4D2ABC215541C3F5287CD41B5141D7A3709DBC215541681FA021D41B5141032881FEBC2155419F7B7878D31B5141EB29DCB3BD2155415BCE36E2D21B51418242F454BE21554132D49B97D61B5141018DDF6FBF215541282DCB6EE01B51413F97D7C1C22155416E646A5AE71B5141D0E797E0C4215541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>14000 - 1302973
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000B000000E17A14AE59535141666666C6ADDD5441CDCCCCBC54535141295C8F92C8DD54415C8FC2355A535141295C8F92C8DD5441E17A143E58535141EC51B83ED7DD5441295C8F025D535141CDCCCCBCD7DD544152B81E5562535141000000B0D2DD5441295C8F0266535141000000E0CDDD544148E17A146753514185EB5188CBDD54419A99992967535141D7A3707DC8DD544185EB51F865535141000000F0AADD5441E17A14AE59535141666666C6ADDD5441
+</a>
+
+<b>
+010600000001000000010300000001000000110000005176B76D72535141B3F3019AB2DD544152B81E1572535141AE47E1EAA9DD54415C8FC27571535141295C8FF2A9DD5441F6285C8F6C535141EC51B8AEA9DD544185EB51F865535141000000F0AADD544112DAE627675351412CA011BCC8DD5441B2AEF2F666535141BF3FDDCDCADD5441295C8F42665351410AD7A320CDDD5441E380061A645351413C12505FD0DD54410812F489615351416A57F637D3DD5441C3F5286C5D535141AE47E1AAD7DD5441A4703DDA645351411F85EB01D9DD5441E17A147E6953514152B81E05DADD5441776828276E535141F841C92BCFDD5441B81E851B73535141333333A3C3DD5441FFD209AD725351413B6DEBCEB8DD54415176B76D72535141B3F3019AB2DD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>14000 - 3277032
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000B000000E17A14AE59535141666666C6ADDD5441CDCCCCBC54535141295C8F92C8DD54415C8FC2355A535141295C8F92C8DD5441E17A143E58535141EC51B83ED7DD5441295C8F025D535141CDCCCCBCD7DD544152B81E5562535141000000B0D2DD5441295C8F0266535141000000E0CDDD544148E17A146753514185EB5188CBDD54419A99992967535141D7A3707DC8DD544185EB51F865535141000000F0AADD5441E17A14AE59535141666666C6ADDD5441
+</a>
+
+<b>
+010600000001000000010300000001000000110000005176B76D72535141B3F3019AB2DD544152B81E1572535141AE47E1EAA9DD54415C8FC27571535141295C8FF2A9DD5441F6285C8F6C535141EC51B8AEA9DD544185EB51F865535141000000F0AADD544112DAE627675351412CA011BCC8DD5441B2AEF2F666535141BF3FDDCDCADD5441295C8F42665351410AD7A320CDDD5441E380061A645351413C12505FD0DD54410812F489615351416A57F637D3DD5441C3F5286C5D535141AE47E1AAD7DD5441A4703DDA645351411F85EB01D9DD5441E17A147E6953514152B81E05DADD5441776828276E535141F841C92BCFDD5441B81E851B73535141333333A3C3DD5441FFD209AD725351413B6DEBCEB8DD54415176B76D72535141B3F3019AB2DD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>14118 - 44853
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000260000007B14AE47EC505141F6285CAFCEE15441F6285CBFF15051418FC2F5B8CDE15441B81E858BF3505141000000D0CFE15441F6285C3FF35051415C8FC295D3E154415C8FC265F25051418FC2F5E8D4E15441EC51B84EF450514166666616D6E15441A4703DFAF450514166666616D5E15441AE47E13AF9505141295C8FF2D7E1544152B81E65F85051411F85EB11D9E15441000000F0F85051417B14AE67D9E15441C3F5281CFB505141F6285CAFDBE15441F6285C8FFD50514185EB5108DEE15441EC51B88E0051514114AE4731DCE15441A4703DFA005151411F85EBC1D9E154415C8FC2E501515141C3F5286CD8E154410AD7A370FF50514133333323D4E15441B81E854BFE50514185EB5138CFE154417B14AE27FC505141B81E855BB8E15441EC51B8FEF9505141EC51B86EA1E15441F6285C6FF45051410AD7A370A0E154418FC2F5C8EE5051410AD7A3209EE154410AD7A350EA505141D7A370AD9BE15441E17A14FEE8505141F6285C8FA0E154415C8FC295E850514152B81E05A3E15441666666B6E85051413D0AD7F3A5E1544185EB5178E950514185EB5108A8E15441AE47E1BAEA5051411F85EB61AAE15441F6285CBFEB505141295C8FD2ABE154410AD7A3C0EC505141F6285C3FADE15441CDCCCCCCED50514148E17AE4AFE154413D0AD723E95051419A9999C9B6E15441333333E3E8505141713D0A27B7E15441B81E850BE4505141CDCCCC8CBDE15441EC51B80EE4505141B81E856BC1E154418FC2F528E5505141666666F6C3E154410AD7A3A0E8505141CDCCCC4CCAE15441CDCCCCCCEA505141295C8F12CDE154417B14AE47EC505141F6285CAFCEE15441
+</a>
+
+<b>
+0106000000010000000103000000010000000F00000087BF1190F2505141391A0B03D5E1544154CC8E16F35051416457F455D5E15441EF66F860F4505141A72429FBD5E15441A4703DFAF450514166666616D5E15441F0D65E7BF5505141DE013F6DD5E15441304E57FBF5505141833D3BADD5E154414858CC1AF65051419B47B0CCD5E1544117B3E935F7505141209CEAB5D3E15441CF948AD7F6505141212DE35BD2E154410BCB6562F4505141B3FA99BED1E15441E814E258F35051418D0A1C52D2E15441F6285C3FF35051415C8FC295D3E15441AD41A9EFF25051410016FF11D4E15441FE51E9E8F250514176C4BE33D4E1544187BF1190F2505141391A0B03D5E15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>14118 - 79420
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000260000007B14AE47EC505141F6285CAFCEE15441F6285CBFF15051418FC2F5B8CDE15441B81E858BF3505141000000D0CFE15441F6285C3FF35051415C8FC295D3E154415C8FC265F25051418FC2F5E8D4E15441EC51B84EF450514166666616D6E15441A4703DFAF450514166666616D5E15441AE47E13AF9505141295C8FF2D7E1544152B81E65F85051411F85EB11D9E15441000000F0F85051417B14AE67D9E15441C3F5281CFB505141F6285CAFDBE15441F6285C8FFD50514185EB5108DEE15441EC51B88E0051514114AE4731DCE15441A4703DFA005151411F85EBC1D9E154415C8FC2E501515141C3F5286CD8E154410AD7A370FF50514133333323D4E15441B81E854BFE50514185EB5138CFE154417B14AE27FC505141B81E855BB8E15441EC51B8FEF9505141EC51B86EA1E15441F6285C6FF45051410AD7A370A0E154418FC2F5C8EE5051410AD7A3209EE154410AD7A350EA505141D7A370AD9BE15441E17A14FEE8505141F6285C8FA0E154415C8FC295E850514152B81E05A3E15441666666B6E85051413D0AD7F3A5E1544185EB5178E950514185EB5108A8E15441AE47E1BAEA5051411F85EB61AAE15441F6285CBFEB505141295C8FD2ABE154410AD7A3C0EC505141F6285C3FADE15441CDCCCCCCED50514148E17AE4AFE154413D0AD723E95051419A9999C9B6E15441333333E3E8505141713D0A27B7E15441B81E850BE4505141CDCCCC8CBDE15441EC51B80EE4505141B81E856BC1E154418FC2F528E5505141666666F6C3E154410AD7A3A0E8505141CDCCCC4CCAE15441CDCCCCCCEA505141295C8F12CDE154417B14AE47EC505141F6285CAFCEE15441
+</a>
+
+<b>
+0106000000010000000103000000010000000F00000087BF1190F2505141391A0B03D5E1544154CC8E16F35051416457F455D5E15441EF66F860F4505141A72429FBD5E15441A4703DFAF450514166666616D5E15441F0D65E7BF5505141DE013F6DD5E15441304E57FBF5505141833D3BADD5E154414858CC1AF65051419B47B0CCD5E1544117B3E935F7505141209CEAB5D3E15441CF948AD7F6505141212DE35BD2E154410BCB6562F4505141B3FA99BED1E15441E814E258F35051418D0A1C52D2E15441F6285C3FF35051415C8FC295D3E15441AD41A9EFF25051410016FF11D4E15441FE51E9E8F250514176C4BE33D4E1544187BF1190F2505141391A0B03D5E15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>14196 - 29890
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002B00000014AE4731924C5141713D0A874CDF544152B81EF5934C51419A9999E953DF544114AE47A1904C51411F85EBA157DF5441666666268E4C51415C8FC27559DF5441333333E38A4C514114AE47815ADF544166666636814C51415C8FC2355BDF544152B81E157A4C5141CDCCCC5C5BDF5441EC51B8CE754C5141666666F65ADF54418FC2F5F8724C51413D0AD7135BDF54419A999939704C5141666666D65DDF5441295C8FC26F4C5141E17A146E5EDF5441F6285CDF714C51418FC2F58862DF544166666606734C5141B81E854B65DF5441AE47E13A744C51415C8FC27569DF5441F6285CAF754C5141333333936DDF544100000080794C5141333333936DDF5441000000A0804C5141295C8FD26CDF54415C8FC255834C514152B81E456CDF5441C3F5282C894C5141C3F528DC69DF5441713D0A878C4C51413D0AD7F367DF5441B81E858B8E4C5141F6285C9F66DF5441A4703DEA924C5141CDCCCC6C63DF5441D7A3708D954C514114AE472161DF5441AE47E14A984C51418FC2F5985EDF544114AE47319B4C5141EC51B89E5BDF5441F6285C6F9D4C5141EC51B8CE58DF54411F85EBB19E4C51410AD7A3D056DF5441295C8F42A04C51413D0AD74354DF5441713D0AF7A14C5141B81E851B51DF5441F6285CAFA54C5141333333734ADF5441D7A3701DA84C514152B81EA545DF544166666676A34C514148E17AD442DF5441CDCCCCBC974C514114AE47A13CDF5441E17A14BE8F4C514152B81EE538DF54410AD7A3F08F4C5141666666F639DF5441713D0A27904C5141D7A3701D3BDF544133333373914C51413D0AD74340DF54415C8FC265924C5141D7A3700D44DF54410AD7A390924C5141C3F5280C45DF5441CDCCCCAC924C5141C3F5282C46DF54418FC2F5B8924C5141C3F528EC48DF54417B14AE97924C51411F85EB814ADF544114AE4731924C5141713D0A874CDF5441
+</a>
+
+<b>
+010600000001000000010300000001000000350000003F96C4ED724C51419A3F151F5BDF5441A436B7E4724C5141A87CCA315BDF544113DF20957A4C5141A87CCA315BDF54410D5044D3824C5141258F8C025BDF5441E24C24608B4C51413A4DD8F659DF5441EACDEF0C904C5141339F347157DF54417669D1C1924C5141AFDECE1A55DF5441E498C3FC934C514106AA251353DF54417D444D20934C5141BC1B4F624FDF5441F27B9392924C514129A5F14E4CDF5441F27B9392924C51413F633D434BDF5441695F8156924C5141B74A0DCB4BDF544114AE4731924C5141713D0A874CDF54413D936DF9914C514189CE42904EDF5441B1B24F4B924C5141F14C062D50DF5441C384A00E934C5141DA1CAC1C53DF54413E994E36924C5141DA1CAC1C54DF54414870F286914C5141CF4508CC54DF5441EAE02F11914C51411427834055DF5441A3FFB49C904C514171B645B655DF5441A2FFB47C904C5141D6F34FCD55DF5441E0098C808F4C5141C245088C56DF544188F4E5708F4C5141399B299756DF5441ADD6586D8E4C5141FF4FDF2F57DF5441F4B7D3418E4C51415CDFA14557DF54412F6574818D4C5141C68D529757DF5441AD2790328C4C51414F94322A58DF54411F1463C48B4C5141C41CAC5C58DF54416414559A8B4C514175DA056758DF544134C2AAE58A4C51418712D59858DF54417BA3259A8A4C5141688DE9A658DF5441F7B7D3218A4C51415AB645B658DF5441D932E8CF894C5141D4CAF3BD58DF54415BBFE436894C5141A94841C758DF54418E09BBE0874C514113E56BDD58DF5441CB780C79854C51419050C0D958DF5441704DADDE834C5141CA86A1DC58DF5441FF2B6CA6824C5141E7154D0059DF5441A328118C814C5141508DE92659DF5441C3ADFCBD804C51418D97C04A59DF544129146344804C5141BCCAF35D59DF54415C4796777F4C5141C5A1976E59DF544100B8D3217F4C514140B6457659DF5441E232E80F7E4C5141AFF34F8D59DF5441026E7BDE7D4C51413BCDC58E59DF5441B8A4B76F794C5141B77DD0D759DF5441868E42E1774C5141191BD8E959DF5441B78FFDF2764C5141E031F0F759DF544149DD1832764C514182C518EE59DF5441321FDD4F744C51419B6CD3C059DF54414DBE0741744C5141407FEBC959DF54418FC2F5F8724C51413D0AD7135BDF54413F96C4ED724C51419A3F151F5BDF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>14196 - 73013
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002B00000014AE4731924C5141713D0A874CDF544152B81EF5934C51419A9999E953DF544114AE47A1904C51411F85EBA157DF5441666666268E4C51415C8FC27559DF5441333333E38A4C514114AE47815ADF544166666636814C51415C8FC2355BDF544152B81E157A4C5141CDCCCC5C5BDF5441EC51B8CE754C5141666666F65ADF54418FC2F5F8724C51413D0AD7135BDF54419A999939704C5141666666D65DDF5441295C8FC26F4C5141E17A146E5EDF5441F6285CDF714C51418FC2F58862DF544166666606734C5141B81E854B65DF5441AE47E13A744C51415C8FC27569DF5441F6285CAF754C5141333333936DDF544100000080794C5141333333936DDF5441000000A0804C5141295C8FD26CDF54415C8FC255834C514152B81E456CDF5441C3F5282C894C5141C3F528DC69DF5441713D0A878C4C51413D0AD7F367DF5441B81E858B8E4C5141F6285C9F66DF5441A4703DEA924C5141CDCCCC6C63DF5441D7A3708D954C514114AE472161DF5441AE47E14A984C51418FC2F5985EDF544114AE47319B4C5141EC51B89E5BDF5441F6285C6F9D4C5141EC51B8CE58DF54411F85EBB19E4C51410AD7A3D056DF5441295C8F42A04C51413D0AD74354DF5441713D0AF7A14C5141B81E851B51DF5441F6285CAFA54C5141333333734ADF5441D7A3701DA84C514152B81EA545DF544166666676A34C514148E17AD442DF5441CDCCCCBC974C514114AE47A13CDF5441E17A14BE8F4C514152B81EE538DF54410AD7A3F08F4C5141666666F639DF5441713D0A27904C5141D7A3701D3BDF544133333373914C51413D0AD74340DF54415C8FC265924C5141D7A3700D44DF54410AD7A390924C5141C3F5280C45DF5441CDCCCCAC924C5141C3F5282C46DF54418FC2F5B8924C5141C3F528EC48DF54417B14AE97924C51411F85EB814ADF544114AE4731924C5141713D0A874CDF5441
+</a>
+
+<b>
+010600000001000000010300000001000000350000003F96C4ED724C51419A3F151F5BDF5441A436B7E4724C5141A87CCA315BDF544113DF20957A4C5141A87CCA315BDF54410D5044D3824C5141258F8C025BDF5441E24C24608B4C51413A4DD8F659DF5441EACDEF0C904C5141339F347157DF54417669D1C1924C5141AFDECE1A55DF5441E498C3FC934C514106AA251353DF54417D444D20934C5141BC1B4F624FDF5441F27B9392924C514129A5F14E4CDF5441F27B9392924C51413F633D434BDF5441695F8156924C5141B74A0DCB4BDF544114AE4731924C5141713D0A874CDF54413D936DF9914C514189CE42904EDF5441B1B24F4B924C5141F14C062D50DF5441C384A00E934C5141DA1CAC1C53DF54413E994E36924C5141DA1CAC1C54DF54414870F286914C5141CF4508CC54DF5441EAE02F11914C51411427834055DF5441A3FFB49C904C514171B645B655DF5441A2FFB47C904C5141D6F34FCD55DF5441E0098C808F4C5141C245088C56DF544188F4E5708F4C5141399B299756DF5441ADD6586D8E4C5141FF4FDF2F57DF5441F4B7D3418E4C51415CDFA14557DF54412F6574818D4C5141C68D529757DF5441AD2790328C4C51414F94322A58DF54411F1463C48B4C5141C41CAC5C58DF54416414559A8B4C514175DA056758DF544134C2AAE58A4C51418712D59858DF54417BA3259A8A4C5141688DE9A658DF5441F7B7D3218A4C51415AB645B658DF5441D932E8CF894C5141D4CAF3BD58DF54415BBFE436894C5141A94841C758DF54418E09BBE0874C514113E56BDD58DF5441CB780C79854C51419050C0D958DF5441704DADDE834C5141CA86A1DC58DF5441FF2B6CA6824C5141E7154D0059DF5441A328118C814C5141508DE92659DF5441C3ADFCBD804C51418D97C04A59DF544129146344804C5141BCCAF35D59DF54415C4796777F4C5141C5A1976E59DF544100B8D3217F4C514140B6457659DF5441E232E80F7E4C5141AFF34F8D59DF5441026E7BDE7D4C51413BCDC58E59DF5441B8A4B76F794C5141B77DD0D759DF5441868E42E1774C5141191BD8E959DF5441B78FFDF2764C5141E031F0F759DF544149DD1832764C514182C518EE59DF5441321FDD4F744C51419B6CD3C059DF54414DBE0741744C5141407FEBC959DF54418FC2F5F8724C51413D0AD7135BDF54413F96C4ED724C51419A3F151F5BDF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>14667 - 2978304
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000E000000295C8FA213525141A4703DAA27DC544185EB517816525141666666D62EDC544148E17A74165251410AD7A38030DC54410AD7A3E0215251419A9999F934DC5441AE47E17A22525141AE47E12A33DC5441C3F528CC225251417B14AE3732DC5441295C8F2224525141D7A3700D2FDC54416666668628525141666666A624DC5441A4703D0A28525141EC51B83E23DC5441CDCCCC4C0F5251419A99998915DC5441F6285CDF0B52514148E17A541BDC5441EC51B8AE0952514114AE473120DC5441EC51B8AE0C52514148E17AD421DC5441295C8FA213525141A4703DAA27DC5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000C7BC9A5B0D525141237C936522DC5441B22DF2AD0D5251416FCB8A1121DC5441682DBEFA0D52514189C467D41FDC544136A2EB240E525141C7163B261FDC544167A53E3D0E525141545F31AF1EDC544166690ED40E52514157C3DF6A1BDC54418730028C10525141DA1E763A16DC5441CDCCCC4C0F5251419A99998915DC5441F35620350C525141BAC688C31ADC54419CB70C520B52514107ED3B8E1CDC54413557D42F0A5251412CA19D121FDC54415DECDD540A5251415B2885E61FDC5441C7BC9A5B0D525141237C936522DC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>14667 - 3814126
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000E000000295C8FA213525141A4703DAA27DC544185EB517816525141666666D62EDC544148E17A74165251410AD7A38030DC54410AD7A3E0215251419A9999F934DC5441AE47E17A22525141AE47E12A33DC5441C3F528CC225251417B14AE3732DC5441295C8F2224525141D7A3700D2FDC54416666668628525141666666A624DC5441A4703D0A28525141EC51B83E23DC5441CDCCCC4C0F5251419A99998915DC5441F6285CDF0B52514148E17A541BDC5441EC51B8AE0952514114AE473120DC5441EC51B8AE0C52514148E17AD421DC5441295C8FA213525141A4703DAA27DC5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000C7BC9A5B0D525141237C936522DC5441B22DF2AD0D5251416FCB8A1121DC5441682DBEFA0D52514189C467D41FDC544136A2EB240E525141C7163B261FDC544167A53E3D0E525141545F31AF1EDC544166690ED40E52514157C3DF6A1BDC54418730028C10525141DA1E763A16DC5441CDCCCC4C0F5251419A99998915DC5441F35620350C525141BAC688C31ADC54419CB70C520B52514107ED3B8E1CDC54413557D42F0A5251412CA19D121FDC54415DECDD540A5251415B2885E61FDC5441C7BC9A5B0D525141237C936522DC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>14834 - 1302973
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000D0000007B14AE8772535141A4703DAAB2DD544148E17A04725351411F85EBF1A9DD5441666666666D53514148E17A84A9DD544185EB51F865535141000000F0AADD54419A99992967535141D7A3707DC8DD544148E17A146753514185EB5188CBDD5441295C8F0266535141000000E0CDDD544152B81E5562535141000000B0D2DD5441295C8F025D535141CDCCCCBCD7DD5441C3F5284C695351410AD7A340DADD54413D0AD7D36D53514114AE47E1CEDD544148E17AA473535141AE47E18AC1DD54417B14AE8772535141A4703DAAB2DD5441
+</a>
+
+<b>
+010600000001000000010300000001000000110000005176B76D72535141B3F3019AB2DD544152B81E1572535141AE47E1EAA9DD54415C8FC27571535141295C8FF2A9DD5441F6285C8F6C535141EC51B8AEA9DD544185EB51F865535141000000F0AADD544112DAE627675351412CA011BCC8DD5441B2AEF2F666535141BF3FDDCDCADD5441295C8F42665351410AD7A320CDDD5441E380061A645351413C12505FD0DD54410812F489615351416A57F637D3DD5441C3F5286C5D535141AE47E1AAD7DD5441A4703DDA645351411F85EB01D9DD5441E17A147E6953514152B81E05DADD5441776828276E535141F841C92BCFDD5441B81E851B73535141333333A3C3DD5441FFD209AD725351413B6DEBCEB8DD54415176B76D72535141B3F3019AB2DD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>14834 - 3277032
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000D0000007B14AE8772535141A4703DAAB2DD544148E17A04725351411F85EBF1A9DD5441666666666D53514148E17A84A9DD544185EB51F865535141000000F0AADD54419A99992967535141D7A3707DC8DD544148E17A146753514185EB5188CBDD5441295C8F0266535141000000E0CDDD544152B81E5562535141000000B0D2DD5441295C8F025D535141CDCCCCBCD7DD5441C3F5284C695351410AD7A340DADD54413D0AD7D36D53514114AE47E1CEDD544148E17AA473535141AE47E18AC1DD54417B14AE8772535141A4703DAAB2DD5441
+</a>
+
+<b>
+010600000001000000010300000001000000110000005176B76D72535141B3F3019AB2DD544152B81E1572535141AE47E1EAA9DD54415C8FC27571535141295C8FF2A9DD5441F6285C8F6C535141EC51B8AEA9DD544185EB51F865535141000000F0AADD544112DAE627675351412CA011BCC8DD5441B2AEF2F666535141BF3FDDCDCADD5441295C8F42665351410AD7A320CDDD5441E380061A645351413C12505FD0DD54410812F489615351416A57F637D3DD5441C3F5286C5D535141AE47E1AAD7DD5441A4703DDA645351411F85EB01D9DD5441E17A147E6953514152B81E05DADD5441776828276E535141F841C92BCFDD5441B81E851B73535141333333A3C3DD5441FFD209AD725351413B6DEBCEB8DD54415176B76D72535141B3F3019AB2DD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>15114 - 56637
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000010000000D7A370EDD4DF5041F6285CBF77305541B81E851BC2DF50415C8FC275713055419A999979A5DF504152B81EE567305541333333D3A3DF5041AE47E14A683055415C8FC2C591DF50410AD7A3B07A30554152B81E0589DF5041CDCCCC9C833055411F85EB2176DF5041CDCCCCDC963055418FC2F54876DF5041CDCCCCDC97305541D7A370CD87DF5041C3F528BC9D305541EC51B87E9FDF5041CDCCCCACA5305541EC51B8DEB3DF50410AD7A380AC3055418FC2F558B5DF50418FC2F5F8AB3055413D0AD733C2DF50415C8FC2759730554185EB51F8CADF50417B14AE778930554185EB5158D5DF50419A9999E978305541D7A370EDD4DF5041F6285CBF77305541
+</a>
+
+<b>
+01060000000100000001030000000100000012000000B81E851BC2DF50415C8FC27571305541734ADD89C0DF50416E2295EF70305541BDC1ED8FBFDF5041FBB81C9D70305541A0D6026AA5DF50417921E0E867305541A2CF0E3FA5DF5041782C39F36730554179C0B5C9A3DF5041B663C85668305541F2747F47A2DF504183F424DE69305541F6ABC5F99EDF5041C95D083C6D3055412A3389B89BDF5041595C318D7030554155DAC22DB2DF5041E88AEB7478305541529C9356B9DF5041EC9E0C0C7B305541F4C6BD79BDDF5041B554747C7C3055415E628767C2DF5041FF2CC03F7E305541D339B41ACFDF5041154504BF82305541F6FD7C0AD5DF50413810CB657930554185EB5158D5DF50419A9999E978305541D7A370EDD4DF5041F6285CBF77305541B81E851BC2DF50415C8FC27571305541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>16658 - 1013969
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000003000000510000005C8FC2B5B2F750415C8FC215E36E54413D0AD753B2F7504100000090E16E5441D7A3703DB3F75041AE47E13AE16E544148E17AD4B3F75041333333C3E26E5441295C8F32B5F75041EC51B85EE26E544114AE4711B8F75041E17A148EE16E5441A4703DFAB7F7504114AE4751E16E54415C8FC245B5F7504166666626DA6E5441B81E855BB6F7504166666656D96E544100000080B8F75041EC51B85ED86E5441000000A0BAF7504152B81E25D86E5441CDCCCC9CBCF7504185EB5118D86E544166666666BEF75041AE47E18AD86E5441C3F5282CBFF75041B81E851BD96E544100000070BFF750411F85EB91E06E5441EC51B89EC2F7504100000050E16E54417B14AEA7C3F750418FC2F5B8E06E54411F85EB31C5F7504148E17A14DD6E5441EC51B8DEC5F750411F85EBD1DB6E54415C8FC2F5C6F7504185EB51C8D96E5441EC51B85EC8F75041C3F528ECD76E5441F6285C6FCAF75041A4703D0AD66E5441000000A0CAF75041AE47E18AD66E544114AE47A1CCF75041713D0AB7D46E544148E17AA4CFF750418FC2F528D26E54413D0AD713D4F75041B81E85EBCE6E5441F6285C9FD6F75041713D0A57CD6E5441EC51B82EDAF7504133333363CB6E5441333333D3DBF75041295C8FB2CA6E544100000000DEF750418FC2F5C8C96E544100000050E1F75041AE47E1BAC86E544185EB5108E4F750415C8FC2B5C76E5441C3F5280CE3F75041C3F5285CC56E5441295C8FD2E1F7504152B81E75C26E54410AD7A360DFF75041295C8F32B86E5441A4703DAADBF750415C8FC255A86E5441AE47E1CAD9F750411F85EB81A86E544148E17AB4D6F75041AE47E1CAA86E54418FC2F518D5F75041E17A146EAA6E544100000000D5F750417B14AE87AA6E54418FC2F568D4F75041713D0A77AC6E54417B14AEC7D3F750410AD7A350AE6E54419A9999B9D2F75041295C8F12B06E544166666606D1F75041AE47E1EAB06E544166666606CFF750418FC2F568B06E5441A4703DBACBF750411F85EB61B46E5441A4703D5AC9F75041F6285CAFB66E5441713D0AB7C6F75041EC51B87EB86E5441A4703DAAC0F7504185EB5128BC6E5441A4703DCABAF75041666666B6BF6E5441CDCCCC2CAEF750419A999959C76E544100000060A3F750413D0AD7E3CD6E5441C3F5282CA1F750419A999939CF6E54418FC2F5B887F7504148E17A14DF6E544185EB512883F75041666666A6E16E5441000000E07EF750417B14AE57E46E54413333336379F75041A4703D6AE76E54411F85EB8171F75041A4703D6AEA6E5441000000D060F750415C8FC265F06E54410AD7A3C060F750415C8FC2B5F26E5441EC51B8BE5FF750410AD7A3B0F46E54419A99994965F75041000000F0076F5441F6285C4F66F75041000000B0066F5441A4703DAA65F75041A4703DAA056F54410000003066F75041AE47E13A056F5441000000F066F75041B81E85EB056F5441E17A145E6CF75041AE47E14AFF6E5441CDCCCCBC6EF75041C3F528ACFC6E5441E17A146E74F7504166666616F76E5441E17A147E77F750410AD7A3A0F46E5441F6285CAF7AF7504148E17A64F26E54418FC2F5F87DF750418FC2F578F06E5441A4703DAA81F75041F6285CFFEE6E5441295C8F5286F75041E17A148EED6E5441F6285C1FA0F75041A4703D0AE86E544133333303A0F75041CDCCCC7CE76E54413D0AD713A1F75041E17A142EE76E54418FC2F548A1F75041A4703DCAE76E5441EC51B86EA2F75041B81E858BE76E5441D7A3702DACF750415C8FC2F5E46E54415C8FC2B5B2F750415C8FC215E36E544105000000A4703DDADDF75041295C8FB2C36E5441EC51B83EDEF75041AE47E1AAC56E544152B81E25DCF750415C8FC215C66E54410AD7A3C0DBF75041D7A3701DC46E5441A4703DDADDF75041295C8FB2C36E5441080000000AD7A360BAF7504185EB5118D16E544133333353B8F75041AE47E1BACC6E544133333333B7F7504148E17A54CC6E5441713D0A77B6F75041295C8FE2CA6E544148E17A54B9F75041E17A147EC86E5441D7A3706DBCF75041713D0AE7C66E5441AE47E1BABFF75041C3F5280CCF6E54410AD7A360BAF7504185EB5118D16E5441
+</a>
+
+<b>
+01060000000100000001030000000300000054000000A53D48A0D6F75041966A74DFA86E54418FC2F518D5F75041E17A146EAA6E544100000000D5F750417B14AE87AA6E54418FC2F568D4F75041713D0A77AC6E54417B14AEC7D3F750410AD7A350AE6E54419A9999B9D2F75041295C8F12B06E544166666606D1F75041AE47E1EAB06E544166666606CFF750418FC2F568B06E5441A4703DBACBF750411F85EB61B46E5441A4703D5AC9F75041F6285CAFB66E5441713D0AB7C6F75041EC51B87EB86E5441A4703DAAC0F7504185EB5128BC6E5441A4703DCABAF75041666666B6BF6E5441CDCCCC2CAEF750419A999959C76E544100000060A3F750413D0AD7E3CD6E5441C3F5282CA1F750419A999939CF6E54418FC2F5B887F7504148E17A14DF6E544185EB512883F75041666666A6E16E5441000000E07EF750417B14AE57E46E54413333336379F75041A4703D6AE76E54411F85EB8171F75041A4703D6AEA6E5441000000D060F750415C8FC265F06E54410AD7A3C060F750415C8FC2B5F26E5441EC51B8BE5FF750410AD7A3B0F46E54419A99994965F75041000000F0076F5441F6285C4F66F75041000000B0066F5441A4703DAA65F75041A4703DAA056F54410000003066F75041AE47E13A056F5441000000F066F75041B81E85EB056F5441E17A145E6CF75041AE47E14AFF6E5441CDCCCCBC6EF75041C3F528ACFC6E5441E17A146E74F7504166666616F76E5441E17A147E77F750410AD7A3A0F46E5441F6285CAF7AF7504148E17A64F26E54418FC2F5F87DF750418FC2F578F06E5441A4703DAA81F75041F6285CFFEE6E5441295C8F5286F75041E17A148EED6E5441F6285C1FA0F75041A4703D0AE86E544133333303A0F75041CDCCCC7CE76E54413D0AD713A1F75041E17A142EE76E54418FC2F548A1F75041A4703DCAE76E5441EC51B86EA2F75041B81E858BE76E5441D7A3702DACF750415C8FC2F5E46E54415C8FC2B5B2F750415C8FC215E36E54413D0AD753B2F7504100000090E16E5441D7A3703DB3F75041AE47E13AE16E544148E17AD4B3F75041333333C3E26E5441295C8F32B5F75041EC51B85EE26E544114AE4711B8F75041E17A148EE16E5441A4703DFAB7F7504114AE4751E16E54415C8FC245B5F7504166666626DA6E5441B81E855BB6F7504166666656D96E544100000080B8F75041EC51B85ED86E5441000000A0BAF7504152B81E25D86E5441CDCCCC9CBCF7504185EB5118D86E544166666666BEF75041AE47E18AD86E5441C3F5282CBFF75041B81E851BD96E544100000070BFF750411F85EB91E06E5441EC51B89EC2F7504100000050E16E54417B14AEA7C3F750418FC2F5B8E06E54411F85EB31C5F7504148E17A14DD6E5441EC51B8DEC5F750411F85EBD1DB6E54415C8FC2F5C6F7504185EB51C8D96E5441EC51B85EC8F75041C3F528ECD76E5441F6285C6FCAF75041A4703D0AD66E5441000000A0CAF75041AE47E18AD66E544114AE47A1CCF75041713D0AB7D46E544148E17AA4CFF750418FC2F528D26E54413D0AD713D4F75041B81E85EBCE6E5441F6285C9FD6F75041713D0A57CD6E5441EC51B82EDAF7504133333363CB6E5441333333D3DBF75041295C8FB2CA6E544100000000DEF750418FC2F5C8C96E544100000050E1F75041AE47E1BAC86E544185EB5108E4F750415C8FC2B5C76E5441C3F5280CE3F75041C3F5285CC56E5441295C8FD2E1F7504152B81E75C26E5441A8539FC7E0F7504195ECF614BE6E54410D902575E1F750418A598AF7C06E5441D670B57DDBF75041525172A2C06E5441116A067DDBF750413D9F0A9FC06E5441FA30DB6DDBF75041AD20349EC06E544149C5F7CBD6F75041D5785641A96E5441A53D48A0D6F75041966A74DFA86E544105000000A4703DDADDF75041295C8FB2C36E5441EC51B83EDEF75041AE47E1AAC56E544152B81E25DCF750415C8FC215C66E54410AD7A3C0DBF75041D7A3701DC46E5441A4703DDADDF75041295C8FB2C36E5441080000000AD7A360BAF7504185EB5118D16E544133333353B8F75041AE47E1BACC6E544133333333B7F7504148E17A54CC6E5441713D0A77B6F75041295C8FE2CA6E544148E17A54B9F75041E17A147EC86E5441D7A3706DBCF75041713D0AE7C66E5441AE47E1BABFF75041C3F5280CCF6E54410AD7A360BAF7504185EB5118D16E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>16658 - 3807755
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000003000000510000005C8FC2B5B2F750415C8FC215E36E54413D0AD753B2F7504100000090E16E5441D7A3703DB3F75041AE47E13AE16E544148E17AD4B3F75041333333C3E26E5441295C8F32B5F75041EC51B85EE26E544114AE4711B8F75041E17A148EE16E5441A4703DFAB7F7504114AE4751E16E54415C8FC245B5F7504166666626DA6E5441B81E855BB6F7504166666656D96E544100000080B8F75041EC51B85ED86E5441000000A0BAF7504152B81E25D86E5441CDCCCC9CBCF7504185EB5118D86E544166666666BEF75041AE47E18AD86E5441C3F5282CBFF75041B81E851BD96E544100000070BFF750411F85EB91E06E5441EC51B89EC2F7504100000050E16E54417B14AEA7C3F750418FC2F5B8E06E54411F85EB31C5F7504148E17A14DD6E5441EC51B8DEC5F750411F85EBD1DB6E54415C8FC2F5C6F7504185EB51C8D96E5441EC51B85EC8F75041C3F528ECD76E5441F6285C6FCAF75041A4703D0AD66E5441000000A0CAF75041AE47E18AD66E544114AE47A1CCF75041713D0AB7D46E544148E17AA4CFF750418FC2F528D26E54413D0AD713D4F75041B81E85EBCE6E5441F6285C9FD6F75041713D0A57CD6E5441EC51B82EDAF7504133333363CB6E5441333333D3DBF75041295C8FB2CA6E544100000000DEF750418FC2F5C8C96E544100000050E1F75041AE47E1BAC86E544185EB5108E4F750415C8FC2B5C76E5441C3F5280CE3F75041C3F5285CC56E5441295C8FD2E1F7504152B81E75C26E54410AD7A360DFF75041295C8F32B86E5441A4703DAADBF750415C8FC255A86E5441AE47E1CAD9F750411F85EB81A86E544148E17AB4D6F75041AE47E1CAA86E54418FC2F518D5F75041E17A146EAA6E544100000000D5F750417B14AE87AA6E54418FC2F568D4F75041713D0A77AC6E54417B14AEC7D3F750410AD7A350AE6E54419A9999B9D2F75041295C8F12B06E544166666606D1F75041AE47E1EAB06E544166666606CFF750418FC2F568B06E5441A4703DBACBF750411F85EB61B46E5441A4703D5AC9F75041F6285CAFB66E5441713D0AB7C6F75041EC51B87EB86E5441A4703DAAC0F7504185EB5128BC6E5441A4703DCABAF75041666666B6BF6E5441CDCCCC2CAEF750419A999959C76E544100000060A3F750413D0AD7E3CD6E5441C3F5282CA1F750419A999939CF6E54418FC2F5B887F7504148E17A14DF6E544185EB512883F75041666666A6E16E5441000000E07EF750417B14AE57E46E54413333336379F75041A4703D6AE76E54411F85EB8171F75041A4703D6AEA6E5441000000D060F750415C8FC265F06E54410AD7A3C060F750415C8FC2B5F26E5441EC51B8BE5FF750410AD7A3B0F46E54419A99994965F75041000000F0076F5441F6285C4F66F75041000000B0066F5441A4703DAA65F75041A4703DAA056F54410000003066F75041AE47E13A056F5441000000F066F75041B81E85EB056F5441E17A145E6CF75041AE47E14AFF6E5441CDCCCCBC6EF75041C3F528ACFC6E5441E17A146E74F7504166666616F76E5441E17A147E77F750410AD7A3A0F46E5441F6285CAF7AF7504148E17A64F26E54418FC2F5F87DF750418FC2F578F06E5441A4703DAA81F75041F6285CFFEE6E5441295C8F5286F75041E17A148EED6E5441F6285C1FA0F75041A4703D0AE86E544133333303A0F75041CDCCCC7CE76E54413D0AD713A1F75041E17A142EE76E54418FC2F548A1F75041A4703DCAE76E5441EC51B86EA2F75041B81E858BE76E5441D7A3702DACF750415C8FC2F5E46E54415C8FC2B5B2F750415C8FC215E36E544105000000A4703DDADDF75041295C8FB2C36E5441EC51B83EDEF75041AE47E1AAC56E544152B81E25DCF750415C8FC215C66E54410AD7A3C0DBF75041D7A3701DC46E5441A4703DDADDF75041295C8FB2C36E5441080000000AD7A360BAF7504185EB5118D16E544133333353B8F75041AE47E1BACC6E544133333333B7F7504148E17A54CC6E5441713D0A77B6F75041295C8FE2CA6E544148E17A54B9F75041E17A147EC86E5441D7A3706DBCF75041713D0AE7C66E5441AE47E1BABFF75041C3F5280CCF6E54410AD7A360BAF7504185EB5118D16E5441
+</a>
+
+<b>
+01060000000100000001030000000300000054000000A53D48A0D6F75041966A74DFA86E54418FC2F518D5F75041E17A146EAA6E544100000000D5F750417B14AE87AA6E54418FC2F568D4F75041713D0A77AC6E54417B14AEC7D3F750410AD7A350AE6E54419A9999B9D2F75041295C8F12B06E544166666606D1F75041AE47E1EAB06E544166666606CFF750418FC2F568B06E5441A4703DBACBF750411F85EB61B46E5441A4703D5AC9F75041F6285CAFB66E5441713D0AB7C6F75041EC51B87EB86E5441A4703DAAC0F7504185EB5128BC6E5441A4703DCABAF75041666666B6BF6E5441CDCCCC2CAEF750419A999959C76E544100000060A3F750413D0AD7E3CD6E5441C3F5282CA1F750419A999939CF6E54418FC2F5B887F7504148E17A14DF6E544185EB512883F75041666666A6E16E5441000000E07EF750417B14AE57E46E54413333336379F75041A4703D6AE76E54411F85EB8171F75041A4703D6AEA6E5441000000D060F750415C8FC265F06E54410AD7A3C060F750415C8FC2B5F26E5441EC51B8BE5FF750410AD7A3B0F46E54419A99994965F75041000000F0076F5441F6285C4F66F75041000000B0066F5441A4703DAA65F75041A4703DAA056F54410000003066F75041AE47E13A056F5441000000F066F75041B81E85EB056F5441E17A145E6CF75041AE47E14AFF6E5441CDCCCCBC6EF75041C3F528ACFC6E5441E17A146E74F7504166666616F76E5441E17A147E77F750410AD7A3A0F46E5441F6285CAF7AF7504148E17A64F26E54418FC2F5F87DF750418FC2F578F06E5441A4703DAA81F75041F6285CFFEE6E5441295C8F5286F75041E17A148EED6E5441F6285C1FA0F75041A4703D0AE86E544133333303A0F75041CDCCCC7CE76E54413D0AD713A1F75041E17A142EE76E54418FC2F548A1F75041A4703DCAE76E5441EC51B86EA2F75041B81E858BE76E5441D7A3702DACF750415C8FC2F5E46E54415C8FC2B5B2F750415C8FC215E36E54413D0AD753B2F7504100000090E16E5441D7A3703DB3F75041AE47E13AE16E544148E17AD4B3F75041333333C3E26E5441295C8F32B5F75041EC51B85EE26E544114AE4711B8F75041E17A148EE16E5441A4703DFAB7F7504114AE4751E16E54415C8FC245B5F7504166666626DA6E5441B81E855BB6F7504166666656D96E544100000080B8F75041EC51B85ED86E5441000000A0BAF7504152B81E25D86E5441CDCCCC9CBCF7504185EB5118D86E544166666666BEF75041AE47E18AD86E5441C3F5282CBFF75041B81E851BD96E544100000070BFF750411F85EB91E06E5441EC51B89EC2F7504100000050E16E54417B14AEA7C3F750418FC2F5B8E06E54411F85EB31C5F7504148E17A14DD6E5441EC51B8DEC5F750411F85EBD1DB6E54415C8FC2F5C6F7504185EB51C8D96E5441EC51B85EC8F75041C3F528ECD76E5441F6285C6FCAF75041A4703D0AD66E5441000000A0CAF75041AE47E18AD66E544114AE47A1CCF75041713D0AB7D46E544148E17AA4CFF750418FC2F528D26E54413D0AD713D4F75041B81E85EBCE6E5441F6285C9FD6F75041713D0A57CD6E5441EC51B82EDAF7504133333363CB6E5441333333D3DBF75041295C8FB2CA6E544100000000DEF750418FC2F5C8C96E544100000050E1F75041AE47E1BAC86E544185EB5108E4F750415C8FC2B5C76E5441C3F5280CE3F75041C3F5285CC56E5441295C8FD2E1F7504152B81E75C26E5441A8539FC7E0F7504195ECF614BE6E54410D902575E1F750418A598AF7C06E5441D670B57DDBF75041525172A2C06E5441116A067DDBF750413D9F0A9FC06E5441FA30DB6DDBF75041AD20349EC06E544149C5F7CBD6F75041D5785641A96E5441A53D48A0D6F75041966A74DFA86E544105000000A4703DDADDF75041295C8FB2C36E5441EC51B83EDEF75041AE47E1AAC56E544152B81E25DCF750415C8FC215C66E54410AD7A3C0DBF75041D7A3701DC46E5441A4703DDADDF75041295C8FB2C36E5441080000000AD7A360BAF7504185EB5118D16E544133333353B8F75041AE47E1BACC6E544133333333B7F7504148E17A54CC6E5441713D0A77B6F75041295C8FE2CA6E544148E17A54B9F75041E17A147EC86E5441D7A3706DBCF75041713D0AE7C66E5441AE47E1BABFF75041C3F5280CCF6E54410AD7A360BAF7504185EB5118D16E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>16816 - 8524
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000120000007B14AE17BCF6504152B81E25AE6D5441B81E854BBAF65041295C8F62AD6D54411F85EBB1BBF650410AD7A3E0AA6D544185EB5178BDF65041E17A14AEAB6D5441713D0A17C2F65041713D0A67A36D544133333303C0F650419A999999A16D54415C8FC285C2F650413D0AD7639E6D5441AE47E12AC4F65041E17A14AE9F6D54415C8FC225CCF65041295C8F62916D5441B81E859BC2F6504152B81EA5906D54411F85EB71AAF65041E17A14EE8D6D54410AD7A3B094F65041A4703D3AB56D5441CDCCCC3C9CF6504152B81E45B46D5441E17A146EA4F6504185EB51A8B36D54417B14AED7ACF650415C8FC2D5B46D544185EB5188B6F65041A4703D3AB76D54411F85EBF1B6F65041E17A145EB76D54417B14AE17BCF6504152B81E25AE6D5441
+</a>
+
+<b>
+010600000001000000010300000001000000070000004DF6659BBCF65041DAE06939AD6D5441FA66654FBDF65041DDE9939BAB6D54419390CBB6BBF65041CB18D8E2AA6D5441EC7EEE66BAF65041735F266EAD6D5441544DAD12BCF65041D66B152EAE6D54417B14AE17BCF6504152B81E25AE6D54414DF6659BBCF65041DAE06939AD6D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>16816 - 60274
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000120000007B14AE17BCF6504152B81E25AE6D5441B81E854BBAF65041295C8F62AD6D54411F85EBB1BBF650410AD7A3E0AA6D544185EB5178BDF65041E17A14AEAB6D5441713D0A17C2F65041713D0A67A36D544133333303C0F650419A999999A16D54415C8FC285C2F650413D0AD7639E6D5441AE47E12AC4F65041E17A14AE9F6D54415C8FC225CCF65041295C8F62916D5441B81E859BC2F6504152B81EA5906D54411F85EB71AAF65041E17A14EE8D6D54410AD7A3B094F65041A4703D3AB56D5441CDCCCC3C9CF6504152B81E45B46D5441E17A146EA4F6504185EB51A8B36D54417B14AED7ACF650415C8FC2D5B46D544185EB5188B6F65041A4703D3AB76D54411F85EBF1B6F65041E17A145EB76D54417B14AE17BCF6504152B81E25AE6D5441
+</a>
+
+<b>
+010600000001000000010300000001000000070000004DF6659BBCF65041DAE06939AD6D5441FA66654FBDF65041DDE9939BAB6D54419390CBB6BBF65041CB18D8E2AA6D5441EC7EEE66BAF65041735F266EAD6D5441544DAD12BCF65041D66B152EAE6D54417B14AE17BCF6504152B81E25AE6D54414DF6659BBCF65041DAE06939AD6D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>17076 - 2991254
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000000600000033333303DCF65041D7A370FDC47554413D0AD7C3E3F65041666666A6F7755441D7A3700DE8F65041E17A14AE13765441666666D6FBF650417B14AE970A765441B81E85CBF0F65041295C8FD2C475544133333303DCF65041D7A370FDC4755441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000F39C16D1FBF6504161841E760A765441A2CFB0870DF750414C95D17202765441F2E3FB6315F750410BEEBA3BFE755441814FAAD610F750414B9B3383F4755441A1A1978E0EF75041DE0CDFE9ED755441A97472870DF75041F7717B5FEA7554410EEE0E600DF750414C9322BFE975544131E7E9F50CF75041D3584A50E77554412B4002340CF750413A847ADEE27554412E5DD6C10BF75041A83580BEDA755441BF1A11650BF750418CFBC5F3D37554410A71FD820BF75041D2C7D18CC6755441EB68D00008F750411AB6B845C67554411F367B1900F750416DDAE140C5755441FAC5C56AFDF650415DCF5AE8C4755441EF00A4E4FAF65041E86886C9C47554412646F85BF5F650415CC5EAC8C47554415E65BB6CF2F65041A977FFCEC4755441B4842AD0F0F65041B65AEAEFC4755441AD1693C7F8F650411FB68A45F7755441F39C16D1FBF6504161841E760A765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>17076 - 3397097
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000000600000033333303DCF65041D7A370FDC47554413D0AD7C3E3F65041666666A6F7755441D7A3700DE8F65041E17A14AE13765441666666D6FBF650417B14AE970A765441B81E85CBF0F65041295C8FD2C475544133333303DCF65041D7A370FDC4755441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000F39C16D1FBF6504161841E760A765441A2CFB0870DF750414C95D17202765441F2E3FB6315F750410BEEBA3BFE755441814FAAD610F750414B9B3383F4755441A1A1978E0EF75041DE0CDFE9ED755441A97472870DF75041F7717B5FEA7554410EEE0E600DF750414C9322BFE975544131E7E9F50CF75041D3584A50E77554412B4002340CF750413A847ADEE27554412E5DD6C10BF75041A83580BEDA755441BF1A11650BF750418CFBC5F3D37554410A71FD820BF75041D2C7D18CC6755441EB68D00008F750411AB6B845C67554411F367B1900F750416DDAE140C5755441FAC5C56AFDF650415DCF5AE8C4755441EF00A4E4FAF65041E86886C9C47554412646F85BF5F650415CC5EAC8C47554415E65BB6CF2F65041A977FFCEC4755441B4842AD0F0F65041B65AEAEFC4755441AD1693C7F8F650411FB68A45F7755441F39C16D1FBF6504161841E760A765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>17162 - 5217873
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000001000000250000000000001014F650411F85EB81D57254419A9999F909F6504185EB5168DA725441A4703D4A05F650419A9999D9DB7254410AD7A3C0FBF550413D0AD713DE725441B81E852BFDF55041000000E0DF7254419A99997900F65041E17A14BEE672544152B81E4503F6504100000000ED72544114AE477105F650418FC2F568F2725441EC51B84E06F65041C3F5282CF47254419A9999E909F650417B14AE67F5725441C3F528DC0BF650411F85EB91F6725441333333B30DF6504100000090F87254417B14AEC711F6504114AE4741FF72544185EB51D815F65041F6285CEF0473544152B81EA519F65041F6285CBF09735441295C8FB21CF65041EC51B83E0C735441295C8F6220F650418FC2F5880E735441666666F623F65041295C8FD20E7354417B14AE7729F65041B81E856B0D735441A4703D6A32F650415C8FC2150B735441295C8FD238F65041F6285C1F09735441F6285CAF3DF650418FC2F558077354411F85EB513FF65041A4703DBA06735441295C8FC242F65041C3F5286C05735441333333E344F650413D0AD793047354411F85EB4147F65041C3F5280C0473544185EB51F848F650417B14AE6704735441E17A145E51F65041A4703D2A067354417B14AE5756F6504114AE477106735441666666A659F6504152B81EF505735441333333135DF650418FC2F588047354415C8FC2F561F65041F6285CDF00735441C3F528EC63F650418FC2F5F8F1725441EC51B88E65F65041EC51B81EDC725441C3F5288C59F6504152B81E25DB725441295C8F7258F65041EC51B80EDB7254410000001014F650411F85EB81D5725441
+</a>
+
+<b>
+010600000001000000010300000001000000160000003F20AF8746F65041B4982FC1FC7254411F85EB4147F65041C3F5280C04735441838AC74C4DF650418BC7245005735441CF68692D50F6504158AD6DEA05735441EF3AFC6551F650418E52AE2A0673544171C13E5653F650413A9D5C4606735441D1817A5456F6504117F719710673544163FA549257F65041D3FB2343067354411DCD6CAD59F65041F3CA33F2057354415D4E4BCE5CF650412C1C94A504735441191580195DF65041C8823C8404735441A63648215FF650413B7688FE027354417D4427A060F6504178407ADF017354415C8FC2F561F65041F6285CDF007354411EC6A2E462F650416BBDBAC9F972544113A339985FF65041356441EDF9725441982AA27F5EF65041DE2D1E1EFA7254416508741B5BF65041E7216EB6FA7254414F3D75EC55F65041DF54626BFB725441D63E193651F65041BC653B0CFC725441AD0FB17550F6504171FFF618FC7254413F20AF8746F65041B4982FC1FC725441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>231779 - 57934
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000012000000C3F528BC065E5141D7A3705DCBD9544152B81EF50C5E51411F85EB11CDD95441C3F5288C145E514152B81E25CED95441C3F528DC185E5141F6285C2FCDD954417B14AE271D5E514148E17AB4CDD95441EC51B84E235E51410AD7A340CBD95441713D0A37245E51413D0AD7E3CAD954419A9999A90C5E514152B81E45C1D95441713D0AF7F75D514114AE4731B9D95441E17A14AEF65D5141EC51B8EEB9D95441295C8F02F65D5141666666A6BBD95441713D0AA7F65D514148E17A94BDD95441EC51B89EF75D51417B14AE27C0D9544133333373F85D514166666646C2D95441A4703D6AF95D5141295C8F72C4D95441CDCCCCECF95D514152B81E85C5D95441EC51B89EFA5D514185EB5118C7D95441C3F528BC065E5141D7A3705DCBD95441
+</a>
+
+<b>
+010600000001000000010300000001000000360000004F98CD3CF85D51417F8D814CB9D95441713D0AF7F75D514114AE4731B9D954410DF73EB7F65D51416B0971E9B9D95441E17A14AEF65D5141EC51B8EEB9D95441295C8F02F65D5141666666A6BBD95441713D0AA7F65D514148E17A94BDD95441EC51B89EF75D51417B14AE27C0D9544133333373F85D514166666646C2D95441A4703D6AF95D5141295C8F72C4D95441CDCCCCECF95D514152B81E85C5D954411DE38C52FA5D5141BD8EB46BC6D95441422D0DC7FA5D514154F98826C7D954410D6198C8FA5D5141E5431427C7D9544187B2A4C9FA5D5141E0D57227C7D95441188D44D2FA5D514188017D2AC7D9544147C2A7D6FA5D514108E3082CC7D95441B7F802DDFA5D51413C68462EC7D9544188BA51F8FA5D5141C156E637C7D954419C023403FB5D51412561BC3BC7D95441F1D66942FB5D5141A7C10352C7D9544196E795F1055E5141B09F0A16CBD95441559C53A8065E51417D197356CBD954410FF768D5095E5141F682CB36CCD95441F35407070B5E5141A143898ACCD95441D86231160B5E514109F8B08ECCD95441958E1AC10B5E5141749585BDCCD95441204CE56B0C5E51414BDC51ECCCD954410AB52EF70D5E5141A7687836CDD95441F448440D105E5141BA5C1D82CDD95441F0568A8C115E5141293066B8CDD95441BA34ADC2135E514180499508CED954410CC96AFD135E5141911DE710CED954414753010A145E51413089AF12CED954419C001CBC145E51415430721ACED95441C3F528DC185E5141F6285C2FCDD95441038F84141D5E5141ACF628B2CDD954410F713C9C1D5E514134C20486CDD95441EC51B84E235E51410AD7A340CBD954415EC78D08245E5141EFAA68F6CAD95441353789B4235E5141822689AECAD95441BBA3DF59215E514172F660B8C9D9544172082A761F5E51419BDBCEF2C8D95441648DD4F21A5E51415CAEE91AC7D954416687A1C20D5E51412F29E8B7C1D954418A3E968B095E5141190DAF0DC0D954412748B645065E5141E6E2B0C6BED954415AB7744CFE5D514132A50FAABBD9544178E5A50BFE5D51413ED6C490BBD954414B92671CFB5D514138D1956BBAD954419FA46999F95D5141BB568ED4B9D954410DF8D305F95D5141D97DF59AB9D95441293AA8E6F85D51410E48CB8EB9D954410B804250F85D51415B6C1954B9D954414F98CD3CF85D51417F8D814CB9D95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>231779 - 58414
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000012000000C3F528BC065E5141D7A3705DCBD9544152B81EF50C5E51411F85EB11CDD95441C3F5288C145E514152B81E25CED95441C3F528DC185E5141F6285C2FCDD954417B14AE271D5E514148E17AB4CDD95441EC51B84E235E51410AD7A340CBD95441713D0A37245E51413D0AD7E3CAD954419A9999A90C5E514152B81E45C1D95441713D0AF7F75D514114AE4731B9D95441E17A14AEF65D5141EC51B8EEB9D95441295C8F02F65D5141666666A6BBD95441713D0AA7F65D514148E17A94BDD95441EC51B89EF75D51417B14AE27C0D9544133333373F85D514166666646C2D95441A4703D6AF95D5141295C8F72C4D95441CDCCCCECF95D514152B81E85C5D95441EC51B89EFA5D514185EB5118C7D95441C3F528BC065E5141D7A3705DCBD95441
+</a>
+
+<b>
+0106000000010000000103000000010000003C000000E3A10F0DFA5D51419181B001BAD95441713D0AF7F75D514114AE4731B9D95441BF9320CDF65D5141A934D7DCB9D954413A9BF6A2F65D5141A586370BBAD95441BA216050F65D5141F1D6ECDEBAD95441E471E30CF65D51414C77EC8BBBD954418855930AF65D51415D4DDA91BBD95441862B3D0AF65D5141962DB792BBD9544143340E0AF65D514167922F93BBD9544192B4F509F65D5141775F6E93BBD954416FDA585AF65D514145531AAEBCD95441713D0AA7F65D514148E17A94BDD95441EC51B89EF75D51417B14AE27C0D954414205BDE3F75D5141DEC5F7D7C0D9544133333373F85D514166666646C2D95441A4703D6AF95D5141295C8F72C4D95441CDCCCCECF95D514152B81E85C5D95441EC51B89EFA5D514185EB5118C7D95441B215F3FFFB5D5141B857D194C7D954414713D627045E5141E285B474CAD95441B7F041B5065E5141B37B045ACBD954411ED2F2BB085E5141006322E9CBD954412CEB3B940A5E514199F2146BCCD9544197792C440C5E5141C78B6FE1CCD954412C6A0DB70D5E5141CBBD702ACDD954413CD994E70E5E51410DDA8458CDD954413ED6944A105E5141FC85CC8ACDD954411EFB0502125E5141D1E909C9CDD9544185A69CE3135E5141C9763F0DCED95441C3F5288C145E514152B81E25CED9544177F0B549155E51413DA3ECFACDD95441FBC2A35A155E514120E427F7CDD954414F15D55B155E514183ECE3F6CDD9544172FC0A80155E5141E65CD4EECDD954417F78AD83155E51419B3A05EECDD954418C653827165E514180499DC9CDD954412F4EDE8B175E514135B0387ACDD95441B27DE105185E5141E3760F5FCDD95441C3F528DC185E5141F6285C2FCDD95441B83666671A5E5141E146365FCDD95441A2E763CD1A5E514153678F6BCDD954414B1BC6B41B5E5141CBF29287CDD95441372E6D321D5E5141973D32B0CDD954418CDB2E951E5E51419DA3C822CDD95441237A90F8215E5141809007C9CBD9544188E373BD225E5141B0D58B7ACBD95441EC51B84E235E51410AD7A340CBD95441A793FF96235E51415FBBC423CBD95441449D88A0235E51416DA9F51FCBD954417BD9E2DC235E51418A14DA07CBD954413DDC9AFC235E5141BF8C2EFBCAD9544195A6FDD4215E51412B78AAEAC9D95441C8EF31B91C5E5141BD6C7FD4C7D9544109B6C29A145E5141F9159083C4D954414F86CD440E5E5141125213EDC1D95441B13C72DE0A5E5141FB8F8893C0D95441D12C6650035E5141117B239FBDD954414BC0F647005E5141449B1F70BCD9544112982AA7FC5D51419391A505BBD95441E3A10F0DFA5D51419181B001BAD95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>231779 - 101315
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000012000000C3F528BC065E5141D7A3705DCBD9544152B81EF50C5E51411F85EB11CDD95441C3F5288C145E514152B81E25CED95441C3F528DC185E5141F6285C2FCDD954417B14AE271D5E514148E17AB4CDD95441EC51B84E235E51410AD7A340CBD95441713D0A37245E51413D0AD7E3CAD954419A9999A90C5E514152B81E45C1D95441713D0AF7F75D514114AE4731B9D95441E17A14AEF65D5141EC51B8EEB9D95441295C8F02F65D5141666666A6BBD95441713D0AA7F65D514148E17A94BDD95441EC51B89EF75D51417B14AE27C0D9544133333373F85D514166666646C2D95441A4703D6AF95D5141295C8F72C4D95441CDCCCCECF95D514152B81E85C5D95441EC51B89EFA5D514185EB5118C7D95441C3F528BC065E5141D7A3705DCBD95441
+</a>
+
+<b>
+0106000000010000000103000000010000003C000000DFA10F0DFA5D51419381B001BAD95441713D0AF7F75D514114AE4731B9D95441BF9320CDF65D5141A534D7DCB9D954413D9BF6A2F65D5141AA86370BBAD95441BE216050F65D5141EED6ECDEBAD95441E071E30CF65D51414D77EC8BBBD954418855930AF65D51415E4DDA91BBD95441852B3D0AF65D5141942DB792BBD9544140340E0AF65D51416A922F93BBD954418DB4F509F65D5141795F6E93BBD954416CDA585AF65D514148531AAEBCD95441713D0AA7F65D514148E17A94BDD95441EC51B89EF75D51417B14AE27C0D954414405BDE3F75D5141DFC5F7D7C0D9544133333373F85D514166666646C2D95441A4703D6AF95D5141295C8F72C4D95441CDCCCCECF95D514152B81E85C5D95441EC51B89EFA5D514185EB5118C7D95441B715F3FFFB5D5141B657D194C7D954414813D627045E5141E485B474CAD95441BBF041B5065E5141B07B045ACBD954411AD2F2BB085E5141016322E9CBD9544128EB3B940A5E514196F2146BCCD954419B792C440C5E5141C98B6FE1CCD954412C6A0DB70D5E5141CEBD702ACDD9544140D994E70E5E51410FDA8458CDD954413BD6944A105E51410086CC8ACDD9544121FB0502125E5141CEE909C9CDD954418AA69CE3135E5141CE763F0DCED95441C3F5288C145E514152B81E25CED9544172F0B549155E514141A3ECFACDD95441FEC2A35A155E514120E427F7CDD954415015D55B155E514184ECE3F6CDD9544173FC0A80155E5141E45CD4EECDD954417E78AD83155E51419D3A05EECDD954418D653827165E51417C499DC9CDD95441344EDE8B175E514135B0387ACDD95441B47DE105185E5141E1760F5FCDD95441C3F528DC185E5141F6285C2FCDD95441B63666671A5E5141E446365FCDD95441A6E763CD1A5E514151678F6BCDD954414D1BC6B41B5E5141CCF29287CDD95441362E6D321D5E5141953D32B0CDD954418BDB2E951E5E51419DA3C822CDD95441217A90F8215E5141839007C9CBD9544187E373BD225E5141ACD58B7ACBD95441EC51B84E235E51410AD7A340CBD95441A993FF96235E51415BBBC423CBD95441489D88A0235E514170A9F51FCBD954417FD9E2DC235E51418914DA07CBD954413ADC9AFC235E5141BB8C2EFBCAD9544194A6FDD4215E51412E78AAEAC9D95441C7EF31B91C5E5141BD6C7FD4C7D9544108B6C29A145E5141F8159083C4D954415086CD440E5E5141175213EDC1D95441B33C72DE0A5E5141FC8F8893C0D95441D02C6650035E51410F7B239FBDD9544146C0F647005E5141469B1F70BCD954410F982AA7FC5D51419591A505BBD95441DFA10F0DFA5D51419381B001BAD95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>231779 - 302834
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000012000000C3F528BC065E5141D7A3705DCBD9544152B81EF50C5E51411F85EB11CDD95441C3F5288C145E514152B81E25CED95441C3F528DC185E5141F6285C2FCDD954417B14AE271D5E514148E17AB4CDD95441EC51B84E235E51410AD7A340CBD95441713D0A37245E51413D0AD7E3CAD954419A9999A90C5E514152B81E45C1D95441713D0AF7F75D514114AE4731B9D95441E17A14AEF65D5141EC51B8EEB9D95441295C8F02F65D5141666666A6BBD95441713D0AA7F65D514148E17A94BDD95441EC51B89EF75D51417B14AE27C0D9544133333373F85D514166666646C2D95441A4703D6AF95D5141295C8F72C4D95441CDCCCCECF95D514152B81E85C5D95441EC51B89EFA5D514185EB5118C7D95441C3F528BC065E5141D7A3705DCBD95441
+</a>
+
+<b>
+0106000000010000000103000000010000003C000000DFA10F0DFA5D51419381B001BAD95441713D0AF7F75D514114AE4731B9D95441BF9320CDF65D5141A534D7DCB9D954413D9BF6A2F65D5141AA86370BBAD95441BE216050F65D5141EED6ECDEBAD95441E071E30CF65D51414D77EC8BBBD954418855930AF65D51415E4DDA91BBD95441852B3D0AF65D5141942DB792BBD9544140340E0AF65D51416A922F93BBD954418DB4F509F65D5141795F6E93BBD954416CDA585AF65D514148531AAEBCD95441713D0AA7F65D514148E17A94BDD95441EC51B89EF75D51417B14AE27C0D954414405BDE3F75D5141DFC5F7D7C0D9544133333373F85D514166666646C2D95441A4703D6AF95D5141295C8F72C4D95441CDCCCCECF95D514152B81E85C5D95441EC51B89EFA5D514185EB5118C7D95441B715F3FFFB5D5141B657D194C7D954414813D627045E5141E485B474CAD95441BBF041B5065E5141B07B045ACBD954411AD2F2BB085E5141016322E9CBD9544128EB3B940A5E514196F2146BCCD954419B792C440C5E5141C98B6FE1CCD954412C6A0DB70D5E5141CEBD702ACDD9544140D994E70E5E51410FDA8458CDD954413BD6944A105E51410086CC8ACDD9544121FB0502125E5141CEE909C9CDD954418AA69CE3135E5141CE763F0DCED95441C3F5288C145E514152B81E25CED9544172F0B549155E514141A3ECFACDD95441FEC2A35A155E514120E427F7CDD954415015D55B155E514184ECE3F6CDD9544173FC0A80155E5141E45CD4EECDD954417E78AD83155E51419D3A05EECDD954418D653827165E51417C499DC9CDD95441344EDE8B175E514135B0387ACDD95441B47DE105185E5141E1760F5FCDD95441C3F528DC185E5141F6285C2FCDD95441B63666671A5E5141E446365FCDD95441A6E763CD1A5E514151678F6BCDD954414D1BC6B41B5E5141CCF29287CDD95441362E6D321D5E5141953D32B0CDD954418BDB2E951E5E51419DA3C822CDD95441217A90F8215E5141839007C9CBD9544187E373BD225E5141ACD58B7ACBD95441EC51B84E235E51410AD7A340CBD95441A993FF96235E51415BBBC423CBD95441489D88A0235E514170A9F51FCBD954417FD9E2DC235E51418914DA07CBD954413ADC9AFC235E5141BB8C2EFBCAD9544194A6FDD4215E51412E78AAEAC9D95441C7EF31B91C5E5141BD6C7FD4C7D9544108B6C29A145E5141F8159083C4D954415086CD440E5E5141175213EDC1D95441B33C72DE0A5E5141FC8F8893C0D95441D02C6650035E51410F7B239FBDD9544146C0F647005E5141469B1F70BCD954410F982AA7FC5D51419591A505BBD95441DFA10F0DFA5D51419381B001BAD95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>17944 - 1011666
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000210000001F85EB1105F45041EC51B84E8B715441A4703D4A01F4504148E17A948A71544152B81EC5F5F350418FC2F56889715441AE47E19AF0F35041D7A3703D897154413D0AD753EDF350413D0AD7B389715441AE47E18AE8F35041000000108C715441713D0A97E5F35041EC51B8FE8C715441AE47E15AE2F35041EC51B83E8D71544133333333DFF35041EC51B8EE8C715441EC51B80EDCF35041713D0A078C715441E17A149ED8F35041C3F528AC8A71544185EB51B8D4F3504114AE47A18871544152B81EF5CBF350413D0AD773827154419A999939C1F35041C3F528DC7A715441CDCCCC6CB8F35041295C8FD274715441000000A0B0F350410AD7A38070715441333333B3ABF35041CDCCCC6C777154410AD7A360BFF35041333333238771544114AE47B1C3F350417B14AEB78A715441AE47E18ACEF35041EC51B80E9671544152B81E95D0F350410AD7A33098715441EC51B85ED2F35041EC51B86E9C715441B81E85ABD9F3504114AE47C1AD71544152B81E55DBF35041CDCCCC7CAE7154415C8FC255EDF35041CDCCCC0CA871544148E17AD4FAF3504114AE47519E7154419A999989FFF350418FC2F5089C71544185EB51D810F450418FC2F56894715441F6285C3F0FF4504114AE47E191715441333333830CF45041D7A370BD8E715441A4703D4A0CF45041A4703DDA8D71544114AE47C109F45041E17A14AE8C7154411F85EB1105F45041EC51B84E8B715441
+</a>
+
+<b>
+0106000000010000000103000000010000001B00000066666656C5F35041EC51B89E9571544100000050C6F350419A999949967154410AD7A3B0CFF35041CDCCCC3C9D715441282DC2A0D0F35041A47643D89C7154411F85EB41D2F350419A9999299C71544152B81E95D0F350410AD7A33098715441AE47E18ACEF35041EC51B80E967154410AEDD609CCF3504114B6BA70937154416054AD3FC9F350419D79508690715441A03C8E00C7F35041753C382D8E7154413C2BC892C5F350412E5AEDAE8C71544114AE47B1C3F350417B14AEB78A715441C1F408E3C1F3504125062C38897154410AD7A360BFF350413333332387715441377D2BBFBBF350417870043D84715441CA50F725B7F35041DCE504918071544116F569A9B4F350411250BB947E715441D4DF8B92B1F350411A2C391D7C715441BEFFCEB3AEF3504122DB88D27971544114AE47F1AAF350411F85EBD1767154411E169F6FAEF3504166DACDBD7A715441ECE6EA7BB0F350414279510A7D715441333333A3B3F3504148E17A9480715441EC51B89EB8F35041E17A14EE8471544114AE4761BCF35041EC51B85E87715441D7A3706DB8F35041333333238C71544166666656C5F35041EC51B89E95715441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>17944 - 3380416
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000210000001F85EB1105F45041EC51B84E8B715441A4703D4A01F4504148E17A948A71544152B81EC5F5F350418FC2F56889715441AE47E19AF0F35041D7A3703D897154413D0AD753EDF350413D0AD7B389715441AE47E18AE8F35041000000108C715441713D0A97E5F35041EC51B8FE8C715441AE47E15AE2F35041EC51B83E8D71544133333333DFF35041EC51B8EE8C715441EC51B80EDCF35041713D0A078C715441E17A149ED8F35041C3F528AC8A71544185EB51B8D4F3504114AE47A18871544152B81EF5CBF350413D0AD773827154419A999939C1F35041C3F528DC7A715441CDCCCC6CB8F35041295C8FD274715441000000A0B0F350410AD7A38070715441333333B3ABF35041CDCCCC6C777154410AD7A360BFF35041333333238771544114AE47B1C3F350417B14AEB78A715441AE47E18ACEF35041EC51B80E9671544152B81E95D0F350410AD7A33098715441EC51B85ED2F35041EC51B86E9C715441B81E85ABD9F3504114AE47C1AD71544152B81E55DBF35041CDCCCC7CAE7154415C8FC255EDF35041CDCCCC0CA871544148E17AD4FAF3504114AE47519E7154419A999989FFF350418FC2F5089C71544185EB51D810F450418FC2F56894715441F6285C3F0FF4504114AE47E191715441333333830CF45041D7A370BD8E715441A4703D4A0CF45041A4703DDA8D71544114AE47C109F45041E17A14AE8C7154411F85EB1105F45041EC51B84E8B715441
+</a>
+
+<b>
+0106000000010000000103000000010000001B00000066666656C5F35041EC51B89E9571544100000050C6F350419A999949967154410AD7A3B0CFF35041CDCCCC3C9D715441282DC2A0D0F35041A47643D89C7154411F85EB41D2F350419A9999299C71544152B81E95D0F350410AD7A33098715441AE47E18ACEF35041EC51B80E967154410AEDD609CCF3504114B6BA70937154416054AD3FC9F350419D79508690715441A03C8E00C7F35041753C382D8E7154413C2BC892C5F350412E5AEDAE8C71544114AE47B1C3F350417B14AEB78A715441C1F408E3C1F3504125062C38897154410AD7A360BFF350413333332387715441377D2BBFBBF350417870043D84715441CA50F725B7F35041DCE504918071544116F569A9B4F350411250BB947E715441D4DF8B92B1F350411A2C391D7C715441BEFFCEB3AEF3504122DB88D27971544114AE47F1AAF350411F85EBD1767154411E169F6FAEF3504166DACDBD7A715441ECE6EA7BB0F350414279510A7D715441333333A3B3F3504148E17A9480715441EC51B89EB8F35041E17A14EE8471544114AE4761BCF35041EC51B85E87715441D7A3706DB8F35041333333238C71544166666656C5F35041EC51B89E95715441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>231802 - 57936
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000B30000005C8FC295415E5141666666F62CD854417B14AE17425E514114AE47A12BD85441A4703DCA425E51416666669629D8544100000050435E514148E17A1428D85441AE47E1DA475E514185EB518827D85441F6285CEF495E5141AE47E12A29D854419A9999C9495E51419A9999D92AD85441333333134B5E51419A9999092CD8544148E17AF44C5E5141666666162CD85441666666A64D5E5141000000602DD8544114AE47014D5E5141000000902ED85441000000204B5E5141713D0AA72FD85441295C8FE2495E5141CDCCCC3C31D8544133333373485E5141EC51B81E33D85441A4703DEA465E51410AD7A3C034D854411F85EB21455E5141A4703DDA34D85441A4703D1A435E5141C3F5281C34D854415C8FC205415E5141295C8FD232D854415C8FC2A53E5E5141B81E85BB31D85441F6285C4F3C5E514148E17AC435D854410AD7A3D03C5E51413333339337D854419A9999E93C5E514148E17AB439D854413D0AD7933B5E5141E17A142E3CD85441713D0A173A5E514148E17A843DD854413D0AD7F3385E5141A4703DDA3ED85441A4703DDA385E5141AE47E10A40D85441666666563A5E514114AE476141D85441666666C63B5E51413D0AD7C342D854415C8FC2653E5E51411F85EBF144D85441295C8FE23F5E5141B81E853B46D85441333333A3405E514185EB518847D85441A4703D9A415E51418FC2F52846D854419A9999F9425E5141F6285CEF45D854415C8FC2D5435E5141D7A3707D45D85441333333C3445E5141AE47E11A45D8544152B81E25455E514185EB519844D8544185EB51C8455E5141E17A142E44D8544114AE4791465E514152B81E7543D85441713D0AF7465E5141713D0AB742D85441A4703DDA475E5141AE47E1DA41D8544114AE47B1485E5141713D0AB740D854418FC2F598495E51411F85EBD13ED8544114AE47F1495E5141E17A14BE3DD854419A9999494A5E51413D0AD7233DD85441EC51B8EE4A5E51415C8FC2C53CD85441713D0AE74B5E5141713D0AE73CD85441333333634D5E514185EB51183DD8544185EB51384F5E5141666666763DD85441713D0A57505E5141295C8FA23DD85441CDCCCC6C525E5141333333633ED854417B14AEC7515E51417B14AEC739D85441C3F5281C515E514114AE479138D8544152B81E75505E51413333337337D854417B14AE874F5E51415C8FC26535D85441CDCCCC2C505E5141666666B633D8544185EB51E8515E51411F85EB1133D85441B81E857B545E51410AD7A39033D8544152B81EC5555E51413D0AD7B334D8544148E17A04565E51413333336336D85441E17A14DE555E514185EB513838D8544166666646555E514152B81E7539D85441EC51B86E545E514114AE47F13AD854418FC2F508555E5141AE47E1FA3BD85441E17A140E565E5141000000F03CD85441C3F5282C575E51411F85EB513DD854419A999939585E51411F85EBD13BD85441B81E858B585E51410AD7A3103AD8544133333323595E5141E17A147E39D85441A4703DDA595E5141713D0AB739D85441333333935B5E5141000000E039D854417B14AE575C5E51418FC2F5183AD85441333333235E5E514152B81EA53AD854411F85EBE15F5E5141E17A140E3BD85441295C8F82615E5141F6285C3F3BD854415C8FC2A5635E51410AD7A3803BD854411F85EBF1655E5141295C8FE23BD8544148E17AF4675E5141666666A63CD85441CDCCCC7C695E5141AE47E17A3DD85441CDCCCCDC6A5E5141666666F63DD85441B81E858B6C5E5141333333333FD854417B14AEF76E5E5141713D0A273FD8544114AE4741715E51410AD7A36040D85441B81E854B725E51417B14AE7741D854418FC2F568735E5141666666A642D854417B14AE77745E51418FC2F56843D854415C8FC2D5755E514185EB519844D85441000000C0775E514148E17AD443D85441295C8F42785E5141AE47E1FA41D854413D0AD773785E514185EB510840D85441D7A370BD785E514148E17AC43DD85441E17A14DE785E5141713D0A373BD85441EC51B80E795E5141D7A370ED37D85441EC51B80E795E51417B14AE4735D85441CDCCCCAC785E5141713D0A2732D85441C3F5287C785E51413D0AD70330D8544114AE4731775E5141666666462DD85441C3F5288C765E5141000000302CD8544185EB51A8755E5141CDCCCCCC2AD85441666666F6745E514152B81EF529D8544148E17A14745E51410AD7A35029D85441000000B0715E5141E17A14DE28D8544148E17A846F5E514114AE47F127D85441295C8FA26D5E514148E17A0427D85441000000A06B5E5141EC51B86E27D8544133333333695E5141D7A370AD22D85441CDCCCC7C665E51410AD7A35023D854418FC2F538645E51410000003023D8544166666646625E51417B14AE2723D85441EC51B8CE605E51417B14AE2723D854410AD7A3905F5E5141713D0A0723D85441D7A3700D5F5E5141E17A144E21D85441E17A149E5D5E51413D0AD7D320D85441D7A370FD5B5E5141B81E85CB20D8544148E17A545A5E514114AE475120D85441B81E851B575E5141333333331FD854410AD7A3E0545E5141E17A14DE1ED854413D0AD773525E51411F85EB911ED854410AD7A370515E5141EC51B81E1ED85441F6285C8F515E514185EB51481DD85441CDCCCC3C515E5141000000A01BD854411F85EBB1505E51417B14AEF719D85441E17A14FE4F5E5141CDCCCCFC17D85441713D0AA74E5E5141295C8F0216D854417B14AEC74E5E514148E17AD414D8544152B81E554E5E5141AE47E10A13D85441F6285CAF4E5E51410000007012D85441CDCCCCAC4F5E5141D7A370FD11D854413D0AD703515E5141A4703D5A11D85441E17A14FE525E5141666666B610D85441AE47E1BA545E51411F85EB510FD8544166666676565E5141AE47E13A0ED8544114AE4711565E5141E17A14FE0CD854417B14AEC7545E51415C8FC2050AD85441CDCCCCFC535E5141A4703D4A08D8544148E17AA4525E51410AD7A37006D854415C8FC245505E514148E17A4405D85441F6285CAF4E5E51415C8FC27504D8544114AE47014D5E514152B81ED503D8544114AE47014C5E51410000005003D854411F85EBA14A5E5141713D0A2703D85441E17A143E495E514114AE47F102D854417B14AEE7475E51411F85EBB102D85441F6285C1F465E514152B81EA502D8544152B81E15455E514152B81EA502D8544133333373435E51410AD7A33003D85441E17A149E415E51411F85EBE103D85441E17A142E405E51416666668604D854418FC2F5983E5E51413D0AD78305D854419A9999E93C5E51411F85EB8106D85441713D0A873B5E5141295C8F7207D85441EC51B8EE3A5E514152B81E7506D85441A4703D4A3A5E5141713D0AB705D854417B14AEA7385E514185EB513805D854413D0AD7C3375E5141CDCCCCAC04D854411F85EB11375E51413333336303D85441295C8FD2365E51418FC2F55802D854417B14AE07365E5141295C8FD204D85441295C8FD2365E514148E17AB406D8544114AE4751375E514152B81ED508D8544185EB5168385E514152B81E450AD85441B81E855B385E514152B81EA50CD854418FC2F5F8365E5141EC51B8EE0DD85441B81E85BB355E5141295C8F120FD8544166666626345E51418FC2F56810D85441A4703D6A325E5141F6285C7F11D8544185EB51C8305E51417B14AE1712D85441EC51B81E325E51411F85EB2113D8544166666626345E5141333333D313D85441B81E855B385E5141D7A370DD14D85441CDCCCC7C3A5E5141F6285C8F15D854415C8FC2053C5E514185EB51D816D854417B14AE773C5E51413333331319D8544152B81EA53D5E5141000000601AD85441E17A143E445E5141713D0AF71CD854410AD7A390425E51415C8FC22523D85441F6285CCF405E5141A4703DAA29D854419A999979405E5141F6285CFF2AD85441333333D3405E51413D0AD7432CD854415C8FC295415E5141666666F62CD85441
+</a>
+
+<b>
+01060000000100000001030000000100000001010000D939894E775E5141ED6BCE0144D85441D8C22317785E5141F291629842D854414780DA4B785E5141A9C9DB9C41D854413D0AD773785E514185EB510840D85441D7A370BD785E514148E17AC43DD85441E17A14DE785E5141713D0A373BD85441EC51B80E795E5141D7A370ED37D85441EC51B80E795E514141086EA035D85441B2D60407795E51411A52B60835D85441CDCCCCAC785E5141713D0A2732D85441C3F5287C785E51413D0AD70330D85441243BF134775E514186EF294E2DD85441F2493D18775E5141B02E2E1C2DD8544140A5697D755E5141A054C9982AD8544155737A02745E5141C2DD454D29D85441000000B0715E5141E17A14DE28D8544199803ECE6F5E51417D26B91028D8544148E17A846F5E514114AE47F127D85441A5A464A56D5E5141C642DF0527D8544189D90FA16D5E5141FE0FCA0427D85441000000A06B5E5141EC51B86E27D85441476922D1695E5141CD281FE323D85441BE588041695E5141C7817BC922D85441F5208D05685E5141279B55F422D85441CDCCCC7C665E51410AD7A35023D85441EA9565B1655E5141CEAD304523D85441706A3827635E5141838B6E2B23D8544166666646625E51417B14AE2723D85441EC51B8CE605E51417B14AE2723D854410AD7A3905F5E5141713D0A0723D854417A8D64275F5E514124824EA521D85441D5D19ACF5D5E514168CA51E420D854412752012B5D5E514109C38AD120D85441D7A370FD5B5E5141B81E85CB20D8544148E17A545A5E514114AE475120D85441B81E851B575E5141333333331FD854410AD7A3E0545E5141E17A14DE1ED85441974F5E68545E5141373553CF1ED854417361E801545E5141294FC1C21ED854417636E6AC535E51417A8453B81ED85441FCFF1454535E51415A1B6EAD1ED854413D0AD773525E51411F85EB911ED854410AD7A370515E5141EC51B81E1ED85441D879C388515E514106875B761DD85441DF170D4A515E514139CF1AE41BD85441283F201F515E5141144156451BD854411F85EBB1505E51417B14AEF719D85441E17A14FE4F5E5141CDCCCCFC17D85441713D0AA74E5E5141295C8F0216D854417B14AEC74E5E514148E17AD414D8544198611D584E5E514152A4D71613D8544152B81E554E5E5141AE47E10A13D85441F6285CAF4E5E51410000007012D85441CDCCCCAC4F5E5141D7A370FD11D854413D0AD703515E5141A4703D5A11D854418045E7FA525E51416B966DB710D85441B4901A85535E5141E2CB2F4A10D85441AE47E1BA545E51411F85EB510FD854417E7BF8CF545E5141859EA6440FD85441BEF5E657565E5141F951114E0ED8544102D8F856565E5141EA436BD80DD8544114AE4711565E5141E17A14FE0CD854417B14AEC7545E51415C8FC2050AD85441CDCCCCFC535E5141A4703D4A08D85441D1B605B7535E5141706543EA07D8544100FFA74E535E51415F1EB65A07D85441E7CC2844535E5141D3F9454C07D854412E04432A535E514128F1A62807D8544142668A27535E514125C5E82407D854417B3BA813535E5141CD6C8F0907D854416877CD69525E51412E5C9C5306D854415C8FC245505E514148E17A4405D85441F6285CAF4E5E51415C8FC27504D8544114AE47014D5E514152B81ED503D854410C66CB924C5E5141C9E4AA9B03D85441A2CB108B4A5E51414E51962303D85441E17A143E495E514114AE47F102D85441DE666C82485E51414B058ECE02D85441E80AD4CE475E5141CE0F39B102D85441F6285C1F465E514152B81EA502D8544152B81E15455E514152B81EA502D8544182381E70445E5141DE7234DC02D85441D85FA1CD405E51411182163F04D85441685E04233D5E5141D0A3196006D854414ED1318B3B5E51416F82BD6F07D85441713D0A873B5E5141295C8F7207D8544196063C0A3B5E5141D07FE6A206D85441EDCBDCFF395E51413CA485A005D85441C57D5CCA385E51411FE1D14205D854417B14AEA7385E514185EB513805D85441C06EDE02385E5141377665D304D854413D0AD7C3375E5141CDCCCCAC04D854411F85EB11375E51413333336303D85441AB1F9F0D375E51410250235103D85441D7A3DDC0365E51414534389002D8544135F2E510365E51415E6EC5B504D85441A574F369365E5141180CFEBB05D85441295C8FD2365E514148E17AB406D854413141DD01375E51416BF6CA7F07D854413D33D962375E514125154AEC08D8544185EB5168385E514152B81E450AD85441B81E855B385E514152B81EA50CD85441364468EE375E51416C2E8D0A0DD854418FC2F5F8365E5141EC51B8EE0DD85441F16750DE365E5141969037070ED85441B81E85BB355E5141295C8F120FD8544166666626345E51418FC2F56810D85441D1C8354A335E514158ACF9F210D85441A4703D6A325E5141F6285C7F11D8544185EB51C8305E51417B14AE1712D854410014B5F5315E51419E9F070213D854411AEDB23E335E5141F3BB288413D8544110785AC9345E5141F37A7AFB13D85441CA85DF29355E51419D01561314D8544108CF4E42365E51415535A75814D85441704FE1E4365E5141435FD68014D85441B81E855B385E5141D7A370DD14D85441CDCCCC7C3A5E5141F6285C8F15D854416A7DCFD33B5E5141426F81AE16D85441A8185DE63B5E51414F7D09BE16D854415C8FC2053C5E514185EB51D816D854411885A85B3C5E514132CCC68618D854418ED4189B3C5E514148334D3A19D85441586F0BC03D5E5141F1946F5A1AD854418CD5C45D3E5E5141C8F77CA81AD854417FF898773E5E5141BBB6A0B21AD8544179D725AF3E5E514168716FC81AD8544144836CA6425E5141245701571CD85441F5049EDE425E51417AB3106D1CD8544114C33426445E5141E4F1AAED1CD85441E17A143E445E5141713D0AF71CD854410AD7A390425E51415C8FC22523D85441D83F2E6F415E5141E4CCB75827D854418A547780405E514160970CE42AD854412EE008DB405E514177C6074B2CD854412057314B415E51417904F7B12CD854417FC2F1E3415E5141102D1E292CD854417B14AE17425E514114AE47A12BD85441A4703DCA425E51416666669629D85441004F0C04435E5141922F9DEF28D85441EFE8031D435E5141805894A728D8544181E2E312435E5141031F6B4428D8544100000050435E514148E17A1428D85441AE47E1DA475E514185EB518827D85441AB01B092495E514106BA08E228D85441F6285CEF495E5141AE47E12A29D854412321D6D8495E5141C11ECD2B2AD85441988AA05B4A5E5141100349602BD85441BA8664A44A5E5141C02966A32BD85441F126C4B34A5E5141F71B94B12BD85441B7BD75DB4A5E5141D57230D62BD8544154219DDF4A5E51418E3E05DA2BD85441E7DF860E4B5E51416F314A052CD85441F77777074C5E514137B118102CD8544148E17AF44C5E5141666666162CD85441BCEC113E4D5E5141B811BA9E2CD85441666666A64D5E5141000000602DD8544114AE47014D5E5141000000902ED8544162A5A6704B5E5141069447782FD854411D363C8B495E5141E6535BAF31D8544133333373485E5141EC51B81E33D854413C9F4F1E475E5141DFF3428934D85441A4703DEA465E51410AD7A3C034D854411F85EB21455E5141A4703DDA34D85441A4703D1A435E5141C3F5281C34D8544182DEB907425E5141B10E3D7233D85441B98015E6405E5141C4BA05C432D854413C1D53A73F5E51412D87BA3132D854411EFF22783E5E51417E6B460A32D85441F6285C4F3C5E514148E17AC435D854410AD7A3D03C5E51413333339337D854419A9999E93C5E514148E17AB439D854413D0AD7933B5E5141E17A142E3CD85441C67AE6673A5E51413E0FC63B3DD854413D0AD7F3385E5141A4703DDA3ED854412C7E03DE385E51414540F9DD3FD8544100F04423395E51413BD1A74C40D85441666666563A5E514114AE476141D85441666666C63B5E51413D0AD7C342D854415C8FC2653E5E51411F85EBF144D854414BE8CB263F5E5141A684009945D85441011DB4523F5E5141F04F186D45D85441DA306FC33F5E5141224D942046D85441295C8FE23F5E5141B81E853B46D8544186A48F89405E514153E2065C47D85441CB68DED7405E51411806693D47D85441A4703D9A415E51418FC2F52846D85441D30315F5425E51419DC319F045D85441CDC91DDF445E5141E17EA8F544D8544152B81E25455E514185EB519844D8544159702CB2455E514178337F3C44D85441E401AC3C465E514179E5FDC243D85441995441BA465E514138D8942843D85441713D0AF7465E5141713D0AB742D854419C5AEB8C475E5141C063D40942D85441C100087A485E5141F33A050241D85441E6BAC7D6495E5141A308D8103ED8544114AE47F1495E5141E17A14BE3DD854419A9999494A5E51413D0AD7233DD85441A41F27C44A5E51417F6D03DE3CD85441EC51B8EE4A5E51415C8FC2C53CD85441713D0AE74B5E5141713D0AE73CD85441333333634D5E514185EB51183DD8544185EB51384F5E5141666666763DD85441713D0A57505E5141295C8FA23DD854419BCF0B3B525E5141F0463E513ED854410BBECF58525E514171F469D43DD85441D0D3F2D0515E5141E496E3093AD85441EBA201A8515E5141AF375C8E39D85441C3F5281C515E514114AE479138D8544152B81E75505E51413333337337D854417B14AE874F5E51415C8FC26535D85441FE2D520E505E514154FD050634D854417368951F505E5141092FEDD833D85441CDCCCC2C505E5141666666B633D8544185EB51E8515E51411F85EB1133D854417D5E3216525E5141D830BD1A33D85441B81E857B545E51410AD7A39033D854413DF4A5C8545E5141174EC8D433D8544152B81EC5555E51413D0AD7B334D8544148E17A04565E51413333336336D85441E17A14DE555E514185EB513838D8544110E08468555E514123D4DB2D39D8544166666646555E514152B81E7539D85441331E1AA7545E51414581E68D3AD8544167621EA3545E51416896824B3BD854418FC2F508555E5141AE47E1FA3BD854416DB71BE1555E5141EAACC8C53CD85441D59CAFFE565E514110E1E4283DD85441C0A4153E585E5141FA3753B93BD854419A7B9B8A585E5141A131A5153AD85441B81E858B585E51410AD7A3103AD8544133333323595E5141E17A147E39D85441A4703DDA595E5141713D0AB739D85441333333935B5E5141000000E039D854417B14AE575C5E51418FC2F5183AD85441333333235E5E514152B81EA53AD854417600D76E5E5E51419461E4B63AD8544122B37AE0625E51416DD11A693BD854415C8FC2A5635E51410AD7A3803BD854411F85EBF1655E5141295C8FE23BD8544129119386665E51410630231B3CD8544148E17AF4675E5141666666A63CD854415EE1D26A695E5141E5E224713DD8544160A55681695E514179FB787C3DD85441CDCCCCDC6A5E5141666666F63DD85441C30F7AC06B5E51412EF2DB9D3ED85441AD0792B16C5E5141A73374323FD854417B14AEF76E5E5141713D0A273FD85441836D08756F5E5141283C2B6A3FD8544114AE4741715E51410AD7A36040D85441C3D17DD9715E5141FA592B0041D85441B81E854B725E51417B14AE7741D854418FC2F568735E5141666666A642D854417B14AE77745E51418FC2F56843D854415C8FC2D5755E514185EB519844D85441D939894E775E5141ED6BCE0144D85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>965418 - 218346
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001C0000001F85EBF1E0C95041666666E663B654410F901AC2E0C950419407759F64B654410670CA98E0C950418862132B65B654416B1C5CF6E2C95041E386440964B654411401D2BEECC950410A7C6E5F5FB65441C8179FC2ECC95041FFF5025F5FB654410EABCDC2EFC95041752C210A5FB65441B80DBCCDEFC95041BDF5EB085FB65441DE2889B2F6C9504104B8B0D05EB65441C0ECDAC800CA5041D8746FA55EB654411155D54E07CA5041C4B490F95EB654412C71137E07CA504130FBF1FB5EB65441442A968807CA5041C93990D45EB6544187FDBD8B07CA50418D2BCBD45EB65441FE4705A807CA504190D4C85E5EB65441DF0A556908CA5041A81318D05BB654411CD7DA1500CA5041508FAD115CB6544106930D50F0C95041F4CFC2925CB65441BC7E7BC1EFC95041A7BA599E5CB65441CEA2DC0EEDC95041914113175DB654417CCEE198EDC9504130C038F75CB654418218AE47EBC950413F285C5F5DB65441E2FCB2AAEAC9504105095BA45DB654410AD7A3F0E6C950417B14AE475FB654413AFDC748E5C95041AA01944760B65441EC51B81EE2C950410AD7A33062B65441295C8F52E1C95041E17A148E62B654411F85EBF1E0C95041666666E663B65441
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000C2A00D50F0C9504184CFC2925CB65441C37E7BC1EFC95041A6BA599E5CB65441CEA2DC0EEDC95041914113175DB65441C4464955EDC95041F271D2065DB654416018AE47EBC950414E285C5F5DB65441E2FCB2AAEAC9504105095BA45DB654410AD7A3F0E6C950417B14AE475FB65441EC51B81EE2C950410AD7A33062B65441295C8F52E1C95041E17A148E62B65441D2FD27E4E0C950412911AB1B64B654410F901AC2E0C950419407759F64B654410670CA98E0C950418862132B65B654416B1C5CF6E2C95041E386440964B654411401D2BEECC950410A7C6E5F5FB654410EABCDC2EFC95041752C210A5FB65441B80DBCCDEFC95041BDF5EB085FB65441DE2889B2F6C9504104B8B0D05EB65441C0ECDAC800CA5041D8746FA55EB654411155D54E07CA5041C4B490F95EB654412C71137E07CA504130FBF1FB5EB65441442A968807CA5041C93990D45EB6544147F2058907CA5041CE6198D45EB65441B8CFF99C07CA5041852AE08C5EB65441FE4705A807CA504190D4C85E5EB654419CAFC6C607CA5041EEE19FF65DB65441D4A9DA5F08CA50410FBC62D05BB654411CD7DA1500CA5041508FAD115CB65441C2A00D50F0C9504184CFC2925CB65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>965418 - 392309
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001C0000001F85EBF1E0C95041666666E663B654410F901AC2E0C950419407759F64B654410670CA98E0C950418862132B65B654416B1C5CF6E2C95041E386440964B654411401D2BEECC950410A7C6E5F5FB65441C8179FC2ECC95041FFF5025F5FB654410EABCDC2EFC95041752C210A5FB65441B80DBCCDEFC95041BDF5EB085FB65441DE2889B2F6C9504104B8B0D05EB65441C0ECDAC800CA5041D8746FA55EB654411155D54E07CA5041C4B490F95EB654412C71137E07CA504130FBF1FB5EB65441442A968807CA5041C93990D45EB6544187FDBD8B07CA50418D2BCBD45EB65441FE4705A807CA504190D4C85E5EB65441DF0A556908CA5041A81318D05BB654411CD7DA1500CA5041508FAD115CB6544106930D50F0C95041F4CFC2925CB65441BC7E7BC1EFC95041A7BA599E5CB65441CEA2DC0EEDC95041914113175DB654417CCEE198EDC9504130C038F75CB654418218AE47EBC950413F285C5F5DB65441E2FCB2AAEAC9504105095BA45DB654410AD7A3F0E6C950417B14AE475FB654413AFDC748E5C95041AA01944760B65441EC51B81EE2C950410AD7A33062B65441295C8F52E1C95041E17A148E62B654411F85EBF1E0C95041666666E663B65441
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000C2A00D50F0C9504184CFC2925CB65441C37E7BC1EFC95041A6BA599E5CB65441CEA2DC0EEDC95041914113175DB65441C4464955EDC95041F271D2065DB654416018AE47EBC950414E285C5F5DB65441E2FCB2AAEAC9504105095BA45DB654410AD7A3F0E6C950417B14AE475FB65441EC51B81EE2C950410AD7A33062B65441295C8F52E1C95041E17A148E62B65441D2FD27E4E0C950412911AB1B64B654410F901AC2E0C950419407759F64B654410670CA98E0C950418862132B65B654416B1C5CF6E2C95041E386440964B654411401D2BEECC950410A7C6E5F5FB654410EABCDC2EFC95041752C210A5FB65441B80DBCCDEFC95041BDF5EB085FB65441DE2889B2F6C9504104B8B0D05EB65441C0ECDAC800CA5041D8746FA55EB654411155D54E07CA5041C4B490F95EB654412C71137E07CA504130FBF1FB5EB65441442A968807CA5041C93990D45EB6544147F2058907CA5041CE6198D45EB65441B8CFF99C07CA5041852AE08C5EB65441FE4705A807CA504190D4C85E5EB654419CAFC6C607CA5041EEE19FF65DB65441D4A9DA5F08CA50410FBC62D05BB654411CD7DA1500CA5041508FAD115CB65441C2A00D50F0C9504184CFC2925CB65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>20047 - 3182037
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000080000005C8FC2A5BC65514166666616979C5441713D0AE7C5655141713D0AE7739C544185EB51D8CE65514152B81EE5519C5441E17A14BEC96551415C8FC285509C544185EB51B8C0655141333333D3729C544152B81E65B76551417B14AE47969C5441AE47E11ABB655141F6285CFF969C54415C8FC2A5BC65514166666616979C5441
+</a>
+
+<b>
+0106000000010000000103000000010000000900000066558DA9BC655141B09C9E16979C54414675641EC2655141D3A98167979C5441D179A0FFC365514146B8BB21909C544171FCEC3DD2655141DB58D1F1599C54411089C5FED365514158992549539C5441856A01DFCE655141D3E1ECE6519C544189DC9A27CE65514161AC2685549C544163B10696BE655141C60FBBB78F9C544166558DA9BC655141B09C9E16979C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>20047 - 3272984
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000080000005C8FC2A5BC65514166666616979C5441713D0AE7C5655141713D0AE7739C544185EB51D8CE65514152B81EE5519C5441E17A14BEC96551415C8FC285509C544185EB51B8C0655141333333D3729C544152B81E65B76551417B14AE47969C5441AE47E11ABB655141F6285CFF969C54415C8FC2A5BC65514166666616979C5441
+</a>
+
+<b>
+0106000000010000000103000000010000000900000066558DA9BC655141B09C9E16979C54414675641EC2655141D3A98167979C5441D179A0FFC365514146B8BB21909C544171FCEC3DD2655141DB58D1F1599C54411089C5FED365514158992549539C5441856A01DFCE655141D3E1ECE6519C544189DC9A27CE65514161AC2685549C544163B10696BE655141C60FBBB78F9C544166558DA9BC655141B09C9E16979C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>21462 - 2971639
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000002500000052B81E95D51D51413D0AD7E3575954419A999919D61D5141000000C05B595441AE47E14AD51D5141713D0A575E5954411F85EBA1D81D51411F85EB515F5954419A999959D61D514114AE47F16859544148E17A34CE1D5141D7A3703D67595441000000B0CD1D514114AE47F168595441000000E0CA1D51417B14AEE7675954415C8FC2F5C51D5141E17A14DE78595441E17A146EC41D514152B81E757C5954413D0AD7D3CD1D5141E17A140E7E59544148E17AB4DE1D51418FC2F5A87F595441295C8F92F31D514148E17AD483595441B81E85CBFB1D5141CDCCCCFC8259544185EB51B8041E51419A999949825954410AD7A320101E514114AE470184595441B81E85DB111E5141AE47E1EA7C595441A4703D2A131E51411F85EB9177595441000000801B1E51415C8FC2A557595441C3F5287C411E514133333363605954410AD7A3F0411E5141295C8F025F595441D7A370BD561E51417B14AE57305954417B14AED7531E514148E17A642F5954417B14AE67561E51411F85EB812959544166666606F11D51417B14AE171259544185EB5118EF1D514185EB51D8125954418FC2F5A8E91D5141F6285CBF1A595441713D0A17E41D5141E17A14BE235954419A999969D61D5141A4703D4A3D59544100000090D31D5141C3F5284C4759544114AE4701D51D514152B81EB547595441F6285C5FD41D51411F85EB114A5954418FC2F5D8D21D5141EC51B8CE49595441B81E854BCF1D5141A4703D4A56595441C3F528DCD01D5141CDCCCC4C555954415C8FC255D31D514152B81EA55559544152B81E95D51D51413D0AD7E357595441
+</a>
+
+<b>
+010600000001000000010300000001000000110000009572BBCBD41D51414D2D7FF74259544151F8FD0DD41D5141B141C09145595441035D459AE21D5141DBA12CE848595441DFF8272DF81D5141488F75734D59544104434D4A141E5141D47E3BD253595441AA2FDAA7271E5141334E491C5859544109914372421E5141AB5CBBDF5D59544105BFC647431E5141B765B0005C595441D7A370BD561E51417B14AE57305954417B14AED7531E514148E17A642F5954417B14AE67561E51411F85EB812959544166666606F11D51417B14AE171259544185EB5118EF1D514185EB51D8125954418FC2F5A8E91D5141F6285CBF1A595441713D0A17E41D5141E17A14BE235954419A999969D61D5141A4703D4A3D5954419572BBCBD41D51414D2D7FF742595441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>21462 - 3511995
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000002500000052B81E95D51D51413D0AD7E3575954419A999919D61D5141000000C05B595441AE47E14AD51D5141713D0A575E5954411F85EBA1D81D51411F85EB515F5954419A999959D61D514114AE47F16859544148E17A34CE1D5141D7A3703D67595441000000B0CD1D514114AE47F168595441000000E0CA1D51417B14AEE7675954415C8FC2F5C51D5141E17A14DE78595441E17A146EC41D514152B81E757C5954413D0AD7D3CD1D5141E17A140E7E59544148E17AB4DE1D51418FC2F5A87F595441295C8F92F31D514148E17AD483595441B81E85CBFB1D5141CDCCCCFC8259544185EB51B8041E51419A999949825954410AD7A320101E514114AE470184595441B81E85DB111E5141AE47E1EA7C595441A4703D2A131E51411F85EB9177595441000000801B1E51415C8FC2A557595441C3F5287C411E514133333363605954410AD7A3F0411E5141295C8F025F595441D7A370BD561E51417B14AE57305954417B14AED7531E514148E17A642F5954417B14AE67561E51411F85EB812959544166666606F11D51417B14AE171259544185EB5118EF1D514185EB51D8125954418FC2F5A8E91D5141F6285CBF1A595441713D0A17E41D5141E17A14BE235954419A999969D61D5141A4703D4A3D59544100000090D31D5141C3F5284C4759544114AE4701D51D514152B81EB547595441F6285C5FD41D51411F85EB114A5954418FC2F5D8D21D5141EC51B8CE49595441B81E854BCF1D5141A4703D4A56595441C3F528DCD01D5141CDCCCC4C555954415C8FC255D31D514152B81EA55559544152B81E95D51D51413D0AD7E357595441
+</a>
+
+<b>
+010600000001000000010300000001000000110000009572BBCBD41D51414D2D7FF74259544151F8FD0DD41D5141B141C09145595441035D459AE21D5141DBA12CE848595441DFF8272DF81D5141488F75734D59544104434D4A141E5141D47E3BD253595441AA2FDAA7271E5141334E491C5859544109914372421E5141AB5CBBDF5D59544105BFC647431E5141B765B0005C595441D7A370BD561E51417B14AE57305954417B14AED7531E514148E17A642F5954417B14AE67561E51411F85EB812959544166666606F11D51417B14AE171259544185EB5118EF1D514185EB51D8125954418FC2F5A8E91D5141F6285CBF1A595441713D0A17E41D5141E17A14BE235954419A999969D61D5141A4703D4A3D5954419572BBCBD41D51414D2D7FF742595441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>21574 - 16860
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000019000000000000A098195141D7A370BD3A5554419A9999199219514148E17A8435555441B81E85BB911951418FC2F538355554418FC2F5388F1951413D0AD7533755544185EB51887C19514114AE47F157555441C3F5287C7B195141AE47E1EA59555441A4703DCA7619514185EB51A8635554419A99996977195141AE47E1AA645554411F85EB61D7195141333333C394555441B81E85FBD8195141B81E85FB9455544185EB5138DB195141AE47E10A95555441AE47E19ADD195141713D0A47945554413D0AD783DE1951410AD7A3D09355544185EB5108E019514133333353915554417B14AE37E71951415C8FC24583555441D7A370DDEB19514185EB51087C5554417B14AEB7EB195141AE47E1EA7B55544148E17A04E4195141333333E3755554415C8FC2A5D1195141713D0A77675554411F85EB01CB195141713D0A4762555441713D0AE7C71951418FC2F5D85F555441C3F5281CB519514148E17A2451555441D7A3703D9E1951419A9999293F555441A4703D7A9B195141C3F528FC3C555441000000A098195141D7A370BD3A555441
+</a>
+
+<b>
+0106000000010000000103000000010000000D00000002E2D92CDB1951415C8C920A955554416E43C2F8DC195141C784FF7A945554418D463FB3DC195141258E76AA9355544178A8FA75D8195141258E76AA93555441BCAAB109C1195141DB002D08885554416B689459C0195141291FCA3589555441EC5E0E39C51951414A8870A98B5554412BA04E73CA1951410E5619488E55544166774879CF19514114988FCC905554413105266AD3195141B96526C6925554411F85EB61D7195141333333C3945554417B9F0CD7D9195141512568019555544102E2D92CDB1951415C8C920A95555441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>21574 - 59228
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000019000000000000A098195141D7A370BD3A5554419A9999199219514148E17A8435555441B81E85BB911951418FC2F538355554418FC2F5388F1951413D0AD7533755544185EB51887C19514114AE47F157555441C3F5287C7B195141AE47E1EA59555441A4703DCA7619514185EB51A8635554419A99996977195141AE47E1AA645554411F85EB61D7195141333333C394555441B81E85FBD8195141B81E85FB9455544185EB5138DB195141AE47E10A95555441AE47E19ADD195141713D0A47945554413D0AD783DE1951410AD7A3D09355544185EB5108E019514133333353915554417B14AE37E71951415C8FC24583555441D7A370DDEB19514185EB51087C5554417B14AEB7EB195141AE47E1EA7B55544148E17A04E4195141333333E3755554415C8FC2A5D1195141713D0A77675554411F85EB01CB195141713D0A4762555441713D0AE7C71951418FC2F5D85F555441C3F5281CB519514148E17A2451555441D7A3703D9E1951419A9999293F555441A4703D7A9B195141C3F528FC3C555441000000A098195141D7A370BD3A555441
+</a>
+
+<b>
+0106000000010000000103000000010000000D00000002E2D92CDB1951415C8C920A955554416E43C2F8DC195141C784FF7A945554418D463FB3DC195141258E76AA9355544178A8FA75D8195141258E76AA93555441BCAAB109C1195141DB002D08885554416B689459C0195141291FCA3589555441EC5E0E39C51951414A8870A98B5554412BA04E73CA1951410E5619488E55544166774879CF19514114988FCC905554413105266AD3195141B96526C6925554411F85EB61D7195141333333C3945554417B9F0CD7D9195141512568019555544102E2D92CDB1951415C8C920A95555441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>21577 - 3127051
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001A000000713D0AC70A1A51418FC2F588E9555441713D0A870A1A514185EB51F8E955544114AE47B1061A5141295C8FA2F055544185EB5178011A514114AE4751FA555441AE47E14AFC195141AE47E1BA055654415C8FC2E5F41951411F85EBF114565441B81E858BE9195141000000302A565441E17A144EE7195141000000602E5654418FC2F5A8DE195141713D0A873E565441B81E851BD71951413D0AD7734C56544152B81EE5CF19514152B81EF55A565441000000B0CF1951419A9999695B565441AE47E15ACB195141666666E664565441A4703D7AC819514185EB51C86B565441713D0A27C5195141333333737456544100000060C2195141C3F5281C7D565441EC51B81ECC195141B81E85AB7E5654419A999989D21951415C8FC2857D56544148E17A74EC1951419A9999994A56544185EB5138E7195141EC51B8FE455654410AD7A3C0F1195141E17A141E345654411F85EB01181A5141D7A3702DF3555441666666B6161A5141295C8F92F055544133333363141A5141C3F5287CEE555441CDCCCC1C0B1A5141295C8FF2E8555441713D0AC70A1A51418FC2F588E9555441
+</a>
+
+<b>
+0106000000010000000103000000010000005F000000B8CEEA50101A514175A7EE3B0056544153BB7E120D1A514185CA9EBD05565441226B9EBA0C1A5141436E665306565441EFEDD70E0B1A5141C2B6F72809565441717BA0E6FB1951416423DAE322565441207FFEC0FB195141FC5DBC2323565441C1F089ACFB1951413BA199462356544188B2945FFB195141B6AC19C9235654411AE57AFBF7195141BDF8BF8A29565441A2713650F71951418A607CAD2A565441B0257B1FF4195141AAF4EE1730565441934922C2F3195141E33565B630565441BCA6A2C3F219514199116666325654413BFB60B0F0195141A9638FEF35565441E66B9E1AEF19514183DEA39D38565441249FD1ADED19514136FD28093B565441E4E6B2A8EB195141F6C9F5753E565441830AF789EB195141983C2FAA3E5654411A998B3EE719514151B961FE45565441F3AE4D99EA195141427870F34856544126D2D355EB195141830BA39949565441A6DCDB64EC195141D9A099864A565441B0B37F75EC195141E3773D974A5654412630F8E8EA195141639E62A24D5654415C24BD3FEA195141A56D66F34E565441E4AA0216E8195141A095EF2E53565441AD173A84E619514148A96744565654418D4AA772E61951417468EF6656565441CB6C8433E6195141E302FEE256565441D4A16BE8E4195141F284877359565441A703BEAAE4195141D3ADC2E659565441756F0BC0E01951412EF9F89861565441D3F04DC5DC1951418ED6956A695654416C4FA764DB195141A694781F6C5654415FF20D1EDA19514195992BA16E565441D70E968CD9195141863DFCBE6F565441C8CA71CDD41951415E707C1279565441FE614BB7D41951412D84A33E795654418B444666D2195141B5D67CEA7D565441ECFB60F5D119514197C2F9EF7E565441B40FDAE4D1195141E04779EF7E5654414BB7EB04CC195141FCE3CDC17E56544192E9700ACA195141CDACA2B17E565441CB381B37C0195141210D56617E5654414320A3BEB719514196311C1C7E56544122FA0D3EB7195141F28D4A277E565441D1F3F825B7195141F28D4A277E565441D1CB738DB619514100CB15107F565441F992B6B4B5195141E5C80E087F565441D3F17BF1B4195141C35E4B337F5654410282357AB319514122723AA2825654415DF3D1AAB219514156EA029084565441A1E2CDBDB119514125148DE0865654410D34FE8FB0195141461680F5895654418FCF1826B01951411E1AD4218B565441EE0BA2E1B719514142BFE18D8A56544118976CE6BC1951410735EC2C8A56544150000591C3195141B59D21AC895654413756DEF0C9195141C216FB3089565441F0F0456FCF195141F608D8C688565441695E67CCD21951415D69DB8588565441E68C5121D4195141D3976D6B885654416C07467AD61951414DF2C63E885654417D5812CADB1951412A4F28D887565441C809747FE1195141D820DF69875654418A1DACA1E5195141D8FD57C67F565441DC3599C0E5195141E705F3667F565441DACC00F3DD195141908A9CE47F5654413D26B7F4D8195141FB3B9B7380565441F288C0F1D4195141DA0B9AF580565441C032C23BD4195141A12D465580565441582A7B62D4195141627003E07F5654416D3168E8DC195141D81EC96C6D565441BCAA1AE9DD19514130E26FEC6C565441D08F711CDE19514193DBDBD46F5654416CCCCA9CDE1951416C629CA372565441D02AD4D0DF195141EC25B6F2755654415938E29EE119514162E9CF417956544101109ED3E3195141933337907B565441D9965EA2E6195141CF7D9EDE7D565441AAF53849101A5141C9DDAF0A3256544133CD28CA121A5141BBD8CD5A32565441555206C5201A5141B55265E81A56544124BC1AFD1D1A514185BC79201856544198DAB5A21B1A5141A680518F1556544181343ACF1A1A5141B26F154314565441AE764FDE191A514170F901A51256544173BC901A191A5141B9D3B3CA105654418A5D1BA2181A514136ACCFD90E5654415C56C347181A514137DE9E1D0D565441D6FC0F13181A51413AB8B70E07565441D7570971181A51410CB5AFB1FC555441C007C23D151A51411289817EFD5554419AF5910E121A5141623FF789FD555441B8CEEA50101A514175A7EE3B00565441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>21577 - 3506337
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001A000000713D0AC70A1A51418FC2F588E9555441713D0A870A1A514185EB51F8E955544114AE47B1061A5141295C8FA2F055544185EB5178011A514114AE4751FA555441AE47E14AFC195141AE47E1BA055654415C8FC2E5F41951411F85EBF114565441B81E858BE9195141000000302A565441E17A144EE7195141000000602E5654418FC2F5A8DE195141713D0A873E565441B81E851BD71951413D0AD7734C56544152B81EE5CF19514152B81EF55A565441000000B0CF1951419A9999695B565441AE47E15ACB195141666666E664565441A4703D7AC819514185EB51C86B565441713D0A27C5195141333333737456544100000060C2195141C3F5281C7D565441EC51B81ECC195141B81E85AB7E5654419A999989D21951415C8FC2857D56544148E17A74EC1951419A9999994A56544185EB5138E7195141EC51B8FE455654410AD7A3C0F1195141E17A141E345654411F85EB01181A5141D7A3702DF3555441666666B6161A5141295C8F92F055544133333363141A5141C3F5287CEE555441CDCCCC1C0B1A5141295C8FF2E8555441713D0AC70A1A51418FC2F588E9555441
+</a>
+
+<b>
+0106000000010000000103000000010000005F000000B8CEEA50101A514175A7EE3B0056544153BB7E120D1A514185CA9EBD05565441226B9EBA0C1A5141436E665306565441EFEDD70E0B1A5141C2B6F72809565441717BA0E6FB1951416423DAE322565441207FFEC0FB195141FC5DBC2323565441C1F089ACFB1951413BA199462356544188B2945FFB195141B6AC19C9235654411AE57AFBF7195141BDF8BF8A29565441A2713650F71951418A607CAD2A565441B0257B1FF4195141AAF4EE1730565441934922C2F3195141E33565B630565441BCA6A2C3F219514199116666325654413BFB60B0F0195141A9638FEF35565441E66B9E1AEF19514183DEA39D38565441249FD1ADED19514136FD28093B565441E4E6B2A8EB195141F6C9F5753E565441830AF789EB195141983C2FAA3E5654411A998B3EE719514151B961FE45565441F3AE4D99EA195141427870F34856544126D2D355EB195141830BA39949565441A6DCDB64EC195141D9A099864A565441B0B37F75EC195141E3773D974A5654412630F8E8EA195141639E62A24D5654415C24BD3FEA195141A56D66F34E565441E4AA0216E8195141A095EF2E53565441AD173A84E619514148A96744565654418D4AA772E61951417468EF6656565441CB6C8433E6195141E302FEE256565441D4A16BE8E4195141F284877359565441A703BEAAE4195141D3ADC2E659565441756F0BC0E01951412EF9F89861565441D3F04DC5DC1951418ED6956A695654416C4FA764DB195141A694781F6C5654415FF20D1EDA19514195992BA16E565441D70E968CD9195141863DFCBE6F565441C8CA71CDD41951415E707C1279565441FE614BB7D41951412D84A33E795654418B444666D2195141B5D67CEA7D565441ECFB60F5D119514197C2F9EF7E565441B40FDAE4D1195141E04779EF7E5654414BB7EB04CC195141FCE3CDC17E56544192E9700ACA195141CDACA2B17E565441CB381B37C0195141210D56617E5654414320A3BEB719514196311C1C7E56544122FA0D3EB7195141F28D4A277E565441D1F3F825B7195141F28D4A277E565441D1CB738DB619514100CB15107F565441F992B6B4B5195141E5C80E087F565441D3F17BF1B4195141C35E4B337F5654410282357AB319514122723AA2825654415DF3D1AAB219514156EA029084565441A1E2CDBDB119514125148DE0865654410D34FE8FB0195141461680F5895654418FCF1826B01951411E1AD4218B565441EE0BA2E1B719514142BFE18D8A56544118976CE6BC1951410735EC2C8A56544150000591C3195141B59D21AC895654413756DEF0C9195141C216FB3089565441F0F0456FCF195141F608D8C688565441695E67CCD21951415D69DB8588565441E68C5121D4195141D3976D6B885654416C07467AD61951414DF2C63E885654417D5812CADB1951412A4F28D887565441C809747FE1195141D820DF69875654418A1DACA1E5195141D8FD57C67F565441DC3599C0E5195141E705F3667F565441DACC00F3DD195141908A9CE47F5654413D26B7F4D8195141FB3B9B7380565441F288C0F1D4195141DA0B9AF580565441C032C23BD4195141A12D465580565441582A7B62D4195141627003E07F5654416D3168E8DC195141D81EC96C6D565441BCAA1AE9DD19514130E26FEC6C565441D08F711CDE19514193DBDBD46F5654416CCCCA9CDE1951416C629CA372565441D02AD4D0DF195141EC25B6F2755654415938E29EE119514162E9CF417956544101109ED3E3195141933337907B565441D9965EA2E6195141CF7D9EDE7D565441AAF53849101A5141C9DDAF0A3256544133CD28CA121A5141BBD8CD5A32565441555206C5201A5141B55265E81A56544124BC1AFD1D1A514185BC79201856544198DAB5A21B1A5141A680518F1556544181343ACF1A1A5141B26F154314565441AE764FDE191A514170F901A51256544173BC901A191A5141B9D3B3CA105654418A5D1BA2181A514136ACCFD90E5654415C56C347181A514137DE9E1D0D565441D6FC0F13181A51413AB8B70E07565441D7570971181A51410CB5AFB1FC555441C007C23D151A51411289817EFD5554419AF5910E121A5141623FF789FD555441B8CEEA50101A514175A7EE3B00565441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>21995 - 3023426
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002500000052B81E9570215141F6285C1FDA5054418FC2F5086621514114AE4751DE505441D7A3703D5B215141333333B3E2505441CDCCCC3C58215141F6285C5FE45054413D0AD73356215141D7A370FDE55054419A999989542151419A9999F9E8505441333333A351215141AE47E19AF850544185EB5128502151411F85EB51025154415C8FC2F54F2151410AD7A3F002515441C3F528BC4F2151413D0AD7F30451544114AE47A150215141295C8F820651544114AE473152215141EC51B85E07515441C3F5285C79215141EC51B8BE0E515441C3F5281C892151415C8FC2C50F515441713D0A578F2151415C8FC2950F515441333333F394215141D7A370DD0E515441CDCCCCBC9A21514148E17A640D5154415C8FC205A0215141000000E00A5154411F85EBA1A0215141713D0A2709515441CDCCCC8CA02151416666669606515441E17A143E9D21514185EB5168FD505441A4703D2A992151417B14AE87F7505441CDCCCC4C912151415C8FC2D5EE5054419A9999D98F215141E17A142EED5054411F85EBF18D215141EC51B87EE9505441000000D089215141295C8F52DE505441B81E85BB88215141D7A3708DDB5054410AD7A3C085215141C3F5288CD9505441D7A370CD812151418FC2F528D9505441EC51B89E7E215141C3F5284CD9505441EC51B81E7D215141EC51B84ED950544114AE47717B215141F6285C3FD950544148E17AB479215141713D0A17D9505441D7A3701D782151413D0AD7D3D850544114AE475176215141B81E85ABD8505441E17A149E74215141AE47E1EAD850544152B81E9570215141F6285C1FDA505441
+</a>
+
+<b>
+0106000000010000000103000000020000004000000014AE47814F215141F6285CFF06515441C72EE1854F215141A39FBB98075154418AE5BF2A54215141F62B808B08515441447CE4A05C2151416EB6F3420A515441CBC815A1652151417EEB68160C515441028A81206821514173EC49970C5154411B3E07A7712151412FEAC4670E515441C6DE8A71772151412B2127820F515441F27057DA79215141C56DA3F70F515441AA8189D27D215141F3E10961105154413D646707832151415CA94DE7105154419A9999F9882151410AD7A38011515441C3F5281C892151415C8FC2C50F5154410DD2C89A8A21514114923EBA0F515441D9D216178D215141001018A70F51544188FEAD278F2151417D742F970F515441EF2B272B91215141466BAE590F5154412FF016C59221514149B311250F515441ED07BB4197215141485431470E5154411725932598215141660B390D0E51544183E75E0C99215141B18080D20D51544162618FF69921514174EFEA960D515441AFC6550D9B2151417F051E3E0D515441E8C378949C2151413CCFCC830C515441E9D4D5F09D215141B392DBDD0B515441B2A53CB79E2151413676597F0B515441C621B4F59F215141E11279240A5154413AA731B1A0215141D491C2B7085154414EDD76F3A0215141CB6DE651075154414EDD76F3A0215141F23EC9DE05515441DBBCB3CBA021514104DA6629045154415466AB61A02151414CF3F7D4015154419E1AE404A0215141BC78130500515441D398D7659F215141E9D22A00FE505441678A7D1A9E21514116B67669FB505441BBEAA1729B215141BC363018F85054410BC695709821514192EBC1D3F4505441604F6E3995215141E51D28B7F15054413AB24A0A922151415251F6ACEE505441620C6205902151414F3F8323EC505441E550F7E58D21514124D3EEF1E750544111AB0EE18B21514111F08E2EE3505441468E5A4A8921514123DE11F8DC50544165D6086988215141A399726ADB5054414A01AA9587215141C4147B88DA5054416767218C86215141D3238099D950544101A2DF8F85215141D9D16464D9505441D5FFFE65822151415D54903CD95054411A7F29CE7F2151415AFD1D57D95054411A4D6EFB7A2151415D54903CD95054412BA4AA037721514165D3C63DD9505441E0C5968373215141D0CC0DB4D950544140E5124C6C215141E73B4231DC50544103962804672151418CEC6B43DE5054411C3C14BD5921514150AE5881E35054419B5CA2CF562151412E4AB0D6E450544104E34203552151410C1425A9E55054419A999989542151419A9999F9E8505441333333A351215141AE47E19AF850544109D5E54951215141233C588AF8505441BE65C515502151417F4ECC4B0251544185EB5128502151411F85EB5102515441A312D008502151417E27D4B40251544114AE47814F215141F6285CFF0651544133000000EC44C1EB70215141EE0ACD27DB5054417B55712C7521514188458B2BDA505441BB58729C772151410BC8B603DA505441136B781D792151410E1F29E9D9505441E24C6EFB7A2151418DF36FF6D950544127FE53367D2151418DF36FF6D95054418267CC9C7E2151410E1F29E9D9505441DCD04403802151410E1F29E9D950544138912F4F81215141121F29E9D950544190A335D08221514190F36FF6D9505441DD5972BB842151418E9CFD10DA505441C2F3FAC48521514101157B88DA505441A68D83CE86215141E8057677DB5054410FAA37B087215141C59AA7D0DC505441EC3E690989215141F493FADFDF505441F5757B8C8D21514160C20932EA505441C357716A8F215141845F93ABED50544116BC922091215141CFBE5DB1EF505441A4703D2A992151417B14AE87F750544172DB9C619C21514117829E5CFB5054415ACC97509D2151417899FB8DFC50544149C2E9EF9D2151414CD7BA01FE505441BAE3F4819E215141A4E9C082FF5054412E5C72F99E2151417BD00D1101515441A782D43B9F21514152B75A9F025154412300A9639F215141264735480451544120A9367E9F215141C26193E90751544128AE8D2E9F2151411CCB0B5009515441C2E84B329E215141F95F3DA90A515441677FD3CB9C2151415CCE0CC00B515441252560769A215141B98EF70B0D515441EECF43D197215141A42DD7C50D515441BB280CF7942151410A4FE2570E515441A2E74B1391215141FFF218C20E51544177BC3D3189215141F74434F70E5154419D4CC3EA82215141FA9BA6DC0E51544177260CB97A2151410DFDC6220E5154410DC641946B215141557CF18A0B515441FF797E415321514163F3C3D206515441208EDA025221514170A6FF4D065154413CF451F95021514113E6140205515441BE767DD15021514134A3FEDD035154413AF451F950215141711DD2950151544111842CA2522151415CAA56DFF85054414882D66155215141EE498CBAE9505441BEFA53D95521514128167BA7E7505441A294DCE256215141CA55905BE6505441F74F707E5821514172438ADAE45054412549C38D5B2151419805CB66E350544186C49664662151410C4C8D0BDF505441EC44C1EB70215141EE0ACD27DB505441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>22088 - 1020025
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000029000000713D0A9755215141C3F5286CE350544152B81E15582151419A999989E2505441B81E85DB5A2151410AD7A370E1505441666666666921514152B81E15DC505441EC51B85E72215141F6285C8FD8505441EC51B8CE732151411F85EB91D4505441295C8F42742151418FC2F548D3505441B81E854B76215141C3F5283CCE505441333333B37621514185EB51F8CC5054410AD7A30077215141B81E858BCB5054417B14AE377721514152B81E05CA505441F6285C5F772151411F85EB11C8505441295C8F72772151410AD7A3A0C65054419A9999E977215141A4703DDABF505441666666E6772151417B14AE27BE50544152B81EB577215141F6285CBFBC505441EC51B85E7721514114AE47E1BA505441F6285C0F7721514133333323B95054413D0AD7C37621514185EB51C8B75054410AD7A34076215141CDCCCC8CB6505441F6285C5F7521514148E17A74B5505441000000407421514100000030B4505441AE47E18A7321514133333353B35054413D0AD76372215141C3F5282CB05054413333332372215141D7A3700DAF50544148E17A64712151415C8FC2B5AE505441F6285C9F5E21514152B81E15B1505441333333135C2151419A999969B150544166666606592151410AD7A340B1505441295C8F9250215141A4703D8AAF505441000000703E2151410AD7A390AA5054417B14AE47392151411F85EB81A4505441000000E031215141F6285CAF9F5054413D0AD7233021514152B81E659E5054411F85EBA12C2151410AD7A360A450544114AE47B12B215141A4703D3AA6505441713D0A272421514148E17A54B75054413D0AD76332215141B81E85FBBB505441333333235A215141A4703D5AC65054415C8FC2C554215141F6285CAFE3505441713D0A9755215141C3F5286CE3505441
+</a>
+
+<b>
+010600000001000000010300000001000000270000005A9C793C2C215141E4D44A28A550544114AE47B12B215141A4703D3AA6505441713D0A272421514148E17A54B75054413D0AD76332215141B81E85FBBB505441333333235A215141A4703D5AC65054415C8FC2C554215141F6285CAFE3505441713D0A9755215141C3F5286CE350544152B81E15582151419A999989E2505441B81E85DB5A2151410AD7A370E1505441666666666921514152B81E15DC505441EC51B85E72215141F6285C8FD8505441EC51B8CE732151411F85EB91D4505441295C8F42742151418FC2F548D3505441B81E854B76215141C3F5283CCE505441333333B37621514185EB51F8CC5054410AD7A30077215141B81E858BCB5054417B14AE377721514152B81E05CA505441F6285C5F772151411F85EB11C8505441295C8F72772151410AD7A3A0C65054419A9999E977215141A4703DDABF505441666666E6772151417B14AE27BE50544152B81EB577215141F6285CBFBC505441EC51B85E7721514114AE47E1BA505441F6285C0F7721514133333323B95054413D0AD7C37621514185EB51C8B75054410AD7A34076215141CDCCCC8CB6505441F6285C5F7521514148E17A74B5505441000000407421514100000030B4505441AE47E18A7321514133333353B35054413D0AD76372215141C3F5282CB05054413333332372215141D7A3700DAF50544148E17A64712151415C8FC2B5AE505441F6285C9F5E21514152B81E15B1505441333333135C2151419A999969B150544166666606592151410AD7A340B1505441295C8F9250215141A4703D8AAF505441000000703E2151410AD7A390AA50544155FF17552C215141C632D7F7A45054415A9C793C2C215141E4D44A28A5505441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>22088 - 3623011
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000029000000713D0A9755215141C3F5286CE350544152B81E15582151419A999989E2505441B81E85DB5A2151410AD7A370E1505441666666666921514152B81E15DC505441EC51B85E72215141F6285C8FD8505441EC51B8CE732151411F85EB91D4505441295C8F42742151418FC2F548D3505441B81E854B76215141C3F5283CCE505441333333B37621514185EB51F8CC5054410AD7A30077215141B81E858BCB5054417B14AE377721514152B81E05CA505441F6285C5F772151411F85EB11C8505441295C8F72772151410AD7A3A0C65054419A9999E977215141A4703DDABF505441666666E6772151417B14AE27BE50544152B81EB577215141F6285CBFBC505441EC51B85E7721514114AE47E1BA505441F6285C0F7721514133333323B95054413D0AD7C37621514185EB51C8B75054410AD7A34076215141CDCCCC8CB6505441F6285C5F7521514148E17A74B5505441000000407421514100000030B4505441AE47E18A7321514133333353B35054413D0AD76372215141C3F5282CB05054413333332372215141D7A3700DAF50544148E17A64712151415C8FC2B5AE505441F6285C9F5E21514152B81E15B1505441333333135C2151419A999969B150544166666606592151410AD7A340B1505441295C8F9250215141A4703D8AAF505441000000703E2151410AD7A390AA5054417B14AE47392151411F85EB81A4505441000000E031215141F6285CAF9F5054413D0AD7233021514152B81E659E5054411F85EBA12C2151410AD7A360A450544114AE47B12B215141A4703D3AA6505441713D0A272421514148E17A54B75054413D0AD76332215141B81E85FBBB505441333333235A215141A4703D5AC65054415C8FC2C554215141F6285CAFE3505441713D0A9755215141C3F5286CE3505441
+</a>
+
+<b>
+010600000001000000010300000001000000270000005A9C793C2C215141E4D44A28A550544114AE47B12B215141A4703D3AA6505441713D0A272421514148E17A54B75054413D0AD76332215141B81E85FBBB505441333333235A215141A4703D5AC65054415C8FC2C554215141F6285CAFE3505441713D0A9755215141C3F5286CE350544152B81E15582151419A999989E2505441B81E85DB5A2151410AD7A370E1505441666666666921514152B81E15DC505441EC51B85E72215141F6285C8FD8505441EC51B8CE732151411F85EB91D4505441295C8F42742151418FC2F548D3505441B81E854B76215141C3F5283CCE505441333333B37621514185EB51F8CC5054410AD7A30077215141B81E858BCB5054417B14AE377721514152B81E05CA505441F6285C5F772151411F85EB11C8505441295C8F72772151410AD7A3A0C65054419A9999E977215141A4703DDABF505441666666E6772151417B14AE27BE50544152B81EB577215141F6285CBFBC505441EC51B85E7721514114AE47E1BA505441F6285C0F7721514133333323B95054413D0AD7C37621514185EB51C8B75054410AD7A34076215141CDCCCC8CB6505441F6285C5F7521514148E17A74B5505441000000407421514100000030B4505441AE47E18A7321514133333353B35054413D0AD76372215141C3F5282CB05054413333332372215141D7A3700DAF50544148E17A64712151415C8FC2B5AE505441F6285C9F5E21514152B81E15B1505441333333135C2151419A999969B150544166666606592151410AD7A340B1505441295C8F9250215141A4703D8AAF505441000000703E2151410AD7A390AA50544155FF17552C215141C632D7F7A45054415A9C793C2C215141E4D44A28A5505441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>22178 - 2992784
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000002D00000014AE4791062051418FC2F528F75B54413D0AD70309205141295C8F72F75B54411F85EB910820514185EB51D8FD5B5441333333E3072051411F85EB41035C544148E17A1407205141C3F528CC075C54411F85EB910C20514166666636085C54417B14AE07192051419A9999D90A5C5441A4703DDA23205141713D0A370C5C544148E17A04272051410AD7A3400C5C5441333333C327205141333333430C5C5441D7A370AD2520514148E17AB4085C5441EC51B82E23205141EC51B88E055C5441713D0A6720205141295C8F72025C54410AD7A3801F2051413D0AD723015C544185EB51F81E205141E17A141E005C54413D0AD7D31E2051411F85EB31FF5B54419A9999B91E2051411F85EB21FD5B544148E17A441F20514152B81EF5F35B54417B14AE971E2051419A999989ED5B5441D7A3700D1D205141000000E0E55B54410AD7A3F01C20514152B81E15E25B5441AE47E16A1D2051419A999909DF5B54413333339312205141AE47E11ADF5B54419A9999A90C20514152B81ED5DE5B54418FC2F5A805205141D7A3703DDE5B5441EC51B8BEFA1F51415C8FC225DC5B544152B81ED5F31F514133333383DA5B5441E17A147EEA1F514152B81EF5D75B5441713D0AC7E61F51419A9999D9E25B5441295C8F32EB1F51411F85EBC1E45B5441B81E857BE71F514100000080EF5B5441F6285C6FF21F5141EC51B87EFB5B5441E17A14EEF41F514152B81EA5FE5B544166666686F61F5141D7A3704D015C5441F6285CFFF71F51413D0AD773045C5441F6285C0FF91F51419A999999075C5441F6285C1FFA1F51417B14AE670B5C54415C8FC2A5FB1F51411F85EBF1135C54419A999969FC1F5141666666A6165C5441A4703DFAFC1F514114AE47B1165C544166666656FE1F5141F6285C9F075C54419A999979FF1F514185EB51D8FC5B5441295C8FE2FF1F5141B81E855BF65B5441713D0A5703205141333333E3F65B544114AE4791062051418FC2F528F75B5441
+</a>
+
+<b>
+0106000000010000000103000000010000003300000048E17A1407205141C3F528CC075C54418BAF9B5B092051417A643DF8075C5441286986FD0B20514151BA2E2B085C544195AD86ED0C205141BA7ACA49085C544141065F631220514117E0AE71095C54418BF9117917205141252C39850A5C5441FCBF6B05192051413D2E1FD90A5C5441D2FEF1311B205141ACE0811F0B5C544179903FC91E205141199974930B5C5441D915C1E721205141F2FC2AF80B5C5441A4703DDA23205141713D0A370C5C5441482B566324205141FA13AA380C5C54412A6DD05D262051413450AA3E0C5C5441333333C327205141333333430C5C54414D37262D27205141309F2D430B5C54415700B3372620514181FA61A0095C5441FC3501E725205141E6EEB216095C5441736CBB272520514149EFCD0B085C54415A998C0125205141A9C4A2DB075C54417B64470F24205141399601AA065C544120B50F9723205141D8595912065C5441B8C88F192320514160D00C77055C54414C79F088222051417DA642D5045C5441D207B22B222051414DAAF26C045C5441E638B0722120514195C5FA9D035C5441EB470FED202051418F0E7D08035C5441010123971F2051414BD38544015C5441845059611F205141A553C1E7005C5441ADE25BF81E205141949D271E005C5441814A2AEA1E2051411B4072C2FF5B54412F3237D91E205141D351B854FF5B54412536E8CE1E2051415FF2A8CEFE5B544118E873BF1E205141685FB097FD5B5441E01AE4C81E2051411FAE4F1FFC5B5441D73206E51E205141CAAF8243FA5B54417210DBEE1E2051416E573C9DF95B5441AE47E11A1F205141AE47E16AF85B544141E770E41C2051415D8B07BFF85B54413D0AD7931A2051417B14AED7F85B544148E17AE4152051418FC2F5A8F85B544152B81EB50E205141D7A3701DF85B54413D0AD70309205141295C8F72F75B544120618AB6082051413026D9C9FB5B54415CE026830820514172F26F4DFE5B54411B16F749082051418761F312005C54418BE3D417082051410FBD87A0015C5441F962BDE0072051419F83C04F035C54417FE2C4A307205141D50D8CA6045C54411264C668072051416BAB3AF2055C5441C43A784907205141F59D3CA2065C544148E17A1407205141C3F528CC075C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>22178 - 3768912
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000002D00000014AE4791062051418FC2F528F75B54413D0AD70309205141295C8F72F75B54411F85EB910820514185EB51D8FD5B5441333333E3072051411F85EB41035C544148E17A1407205141C3F528CC075C54411F85EB910C20514166666636085C54417B14AE07192051419A9999D90A5C5441A4703DDA23205141713D0A370C5C544148E17A04272051410AD7A3400C5C5441333333C327205141333333430C5C5441D7A370AD2520514148E17AB4085C5441EC51B82E23205141EC51B88E055C5441713D0A6720205141295C8F72025C54410AD7A3801F2051413D0AD723015C544185EB51F81E205141E17A141E005C54413D0AD7D31E2051411F85EB31FF5B54419A9999B91E2051411F85EB21FD5B544148E17A441F20514152B81EF5F35B54417B14AE971E2051419A999989ED5B5441D7A3700D1D205141000000E0E55B54410AD7A3F01C20514152B81E15E25B5441AE47E16A1D2051419A999909DF5B54413333339312205141AE47E11ADF5B54419A9999A90C20514152B81ED5DE5B54418FC2F5A805205141D7A3703DDE5B5441EC51B8BEFA1F51415C8FC225DC5B544152B81ED5F31F514133333383DA5B5441E17A147EEA1F514152B81EF5D75B5441713D0AC7E61F51419A9999D9E25B5441295C8F32EB1F51411F85EBC1E45B5441B81E857BE71F514100000080EF5B5441F6285C6FF21F5141EC51B87EFB5B5441E17A14EEF41F514152B81EA5FE5B544166666686F61F5141D7A3704D015C5441F6285CFFF71F51413D0AD773045C5441F6285C0FF91F51419A999999075C5441F6285C1FFA1F51417B14AE670B5C54415C8FC2A5FB1F51411F85EBF1135C54419A999969FC1F5141666666A6165C5441A4703DFAFC1F514114AE47B1165C544166666656FE1F5141F6285C9F075C54419A999979FF1F514185EB51D8FC5B5441295C8FE2FF1F5141B81E855BF65B5441713D0A5703205141333333E3F65B544114AE4791062051418FC2F528F75B5441
+</a>
+
+<b>
+0106000000010000000103000000010000003300000048E17A1407205141C3F528CC075C54418BAF9B5B092051417A643DF8075C5441286986FD0B20514151BA2E2B085C544195AD86ED0C205141BA7ACA49085C544141065F631220514117E0AE71095C54418BF9117917205141252C39850A5C5441FCBF6B05192051413D2E1FD90A5C5441D2FEF1311B205141ACE0811F0B5C544179903FC91E205141199974930B5C5441D915C1E721205141F2FC2AF80B5C5441A4703DDA23205141713D0A370C5C5441482B566324205141FA13AA380C5C54412A6DD05D262051413450AA3E0C5C5441333333C327205141333333430C5C54414D37262D27205141309F2D430B5C54415700B3372620514181FA61A0095C5441FC3501E725205141E6EEB216095C5441736CBB272520514149EFCD0B085C54415A998C0125205141A9C4A2DB075C54417B64470F24205141399601AA065C544120B50F9723205141D8595912065C5441B8C88F192320514160D00C77055C54414C79F088222051417DA642D5045C5441D207B22B222051414DAAF26C045C5441E638B0722120514195C5FA9D035C5441EB470FED202051418F0E7D08035C5441010123971F2051414BD38544015C5441845059611F205141A553C1E7005C5441ADE25BF81E205141949D271E005C5441814A2AEA1E2051411B4072C2FF5B54412F3237D91E205141D351B854FF5B54412536E8CE1E2051415FF2A8CEFE5B544118E873BF1E205141685FB097FD5B5441E01AE4C81E2051411FAE4F1FFC5B5441D73206E51E205141CAAF8243FA5B54417210DBEE1E2051416E573C9DF95B5441AE47E11A1F205141AE47E16AF85B544141E770E41C2051415D8B07BFF85B54413D0AD7931A2051417B14AED7F85B544148E17AE4152051418FC2F5A8F85B544152B81EB50E205141D7A3701DF85B54413D0AD70309205141295C8F72F75B544120618AB6082051413026D9C9FB5B54415CE026830820514172F26F4DFE5B54411B16F749082051418761F312005C54418BE3D417082051410FBD87A0015C5441F962BDE0072051419F83C04F035C54417FE2C4A307205141D50D8CA6045C54411264C668072051416BAB3AF2055C5441C43A784907205141F59D3CA2065C544148E17A1407205141C3F528CC075C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>22180 - 2992973
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000012000000666666A626205141B81E855B665C5441F6285CCF262051419A999989655C5441EC51B81E2720514114AE4781635C5441713D0A472620514100000010625C5441F6285C7F2A205141295C8FF25D5C54415C8FC2852D205141EC51B85E5B5C5441713D0A573020514152B81E25585C5441000000C031205141B81E855B555C544148E17A14FD1F5141333333E3425C5441B81E858BFC1F5141B81E85FB445C5441D7A370FDFB1F51417B14AE87465C5441CDCCCC6CFA1F51415C8FC2E54A5C544148E17A74F91F5141AE47E19A4D5C5441333333D3F71F514133333393525C5441AE47E12A02205141EC51B8CE565C5441A4703D6A16205141B81E85EB5F5C5441F6285C5F26205141A4703D0A675C5441666666A626205141B81E855B665C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000009A99996906205141C3F528FC4F5C5441A4703D6A15205141EC51B8CE575C54417B14AE97252051417B14AE775F5C5441D988FFD4272051412A91F18B605C5441AD373E1229205141EBA097565F5C5441F6285C7F2A205141295C8FF25D5C5441365A3D8C2B205141DCED740D5D5C5441D5F1F6C72C205141412E70005C5C544135A581C22D205141C10D30195B5C54416C55C6692E2051413622BA595A5C5441C66BF8702F205141DA08772C595C54410833473A30205141B3B00A46585C5441F6D37FB030205141E56A4374575C544133488721312051411D76CF94565C5441000000C031205141B81E855B555C5441FADB44FD2B20514102C35E56535C544164E84D6824205141466CB9AD505C5441CE51E8FD1C205141978101144E5C5441D94F3379122051416D56BE634A5C544111366A0E08205141853592BC465C5441C71DA62C022051410BC389AC445C544148E17A14FD1F5141333333E3425C5441E7133294FC1F51413A198CD9445C5441D7A370FDFB1F51417B14AE87465C5441CDCCCC6CFA1F51415C8FC2E54A5C544152B81ED5FE1F5141F6285C8F4C5C54419A99996906205141C3F528FC4F5C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>22180 - 3773549
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000012000000666666A626205141B81E855B665C5441F6285CCF262051419A999989655C5441EC51B81E2720514114AE4781635C5441713D0A472620514100000010625C5441F6285C7F2A205141295C8FF25D5C54415C8FC2852D205141EC51B85E5B5C5441713D0A573020514152B81E25585C5441000000C031205141B81E855B555C544148E17A14FD1F5141333333E3425C5441B81E858BFC1F5141B81E85FB445C5441D7A370FDFB1F51417B14AE87465C5441CDCCCC6CFA1F51415C8FC2E54A5C544148E17A74F91F5141AE47E19A4D5C5441333333D3F71F514133333393525C5441AE47E12A02205141EC51B8CE565C5441A4703D6A16205141B81E85EB5F5C5441F6285C5F26205141A4703D0A675C5441666666A626205141B81E855B665C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000009A99996906205141C3F528FC4F5C5441A4703D6A15205141EC51B8CE575C54417B14AE97252051417B14AE775F5C5441D988FFD4272051412A91F18B605C5441AD373E1229205141EBA097565F5C5441F6285C7F2A205141295C8FF25D5C5441365A3D8C2B205141DCED740D5D5C5441D5F1F6C72C205141412E70005C5C544135A581C22D205141C10D30195B5C54416C55C6692E2051413622BA595A5C5441C66BF8702F205141DA08772C595C54410833473A30205141B3B00A46585C5441F6D37FB030205141E56A4374575C544133488721312051411D76CF94565C5441000000C031205141B81E855B555C5441FADB44FD2B20514102C35E56535C544164E84D6824205141466CB9AD505C5441CE51E8FD1C205141978101144E5C5441D94F3379122051416D56BE634A5C544111366A0E08205141853592BC465C5441C71DA62C022051410BC389AC445C544148E17A14FD1F5141333333E3425C5441E7133294FC1F51413A198CD9445C5441D7A370FDFB1F51417B14AE87465C5441CDCCCC6CFA1F51415C8FC2E54A5C544152B81ED5FE1F5141F6285C8F4C5C54419A99996906205141C3F528FC4F5C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>22187 - 3128191
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000A000000C3F528DC1C2351411F85EBA1BA5A5441666666661C235141EC51B85EBB5A5441C3F5281C13235141666666E6CA5A5441333333430B235141A4703D0AD85A5441C3F528CC0223514185EB5128E75A544152B81EF5FF225141AE47E12AEC5A544133333313042351417B14AE07F05A54413D0AD7E324235141F6285CAFB95A5441D7A3702D20235141B81E857BBA5A5441C3F528DC1C2351411F85EBA1BA5A5441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000CC9BEC6404235141D0103D54F05A54418FC2F52807235141B81E85EBF25A5441A806CDE30A2351416BBBDDBBEC5A5441BAC1D8AD0E235141EE20F8E1E65A5441A5D5670D1423514199264A29DF5A544137C53D2B17235141E2CBB5C3DA5A54414D5516C118235141EEC50DB4D85A5441685A30F91A235141E86558D7D55A54416CD9A19F1B23514151D8AC00D55A5441F7A7088C20235141F1E6BBACCD5A54414B16ED0126235141078A7F57C45A5441CDCCCC0C2D235141E17A144EB85A54413D0AD7E324235141F6285CAFB95A54417D9427691C23514197BD3CBAC75A54411E851E4615235141FEB4FE8BD35A5441453F3E630C23514161326C43E25A54417F605B79082351417A17A6BEE85A544167FB557D04235141448BDB26F05A5441A3D2878B04235141B1FD062BF05A5441CC9BEC6404235141D0103D54F05A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>22187 - 3511705
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000A000000C3F528DC1C2351411F85EBA1BA5A5441666666661C235141EC51B85EBB5A5441C3F5281C13235141666666E6CA5A5441333333430B235141A4703D0AD85A5441C3F528CC0223514185EB5128E75A544152B81EF5FF225141AE47E12AEC5A544133333313042351417B14AE07F05A54413D0AD7E324235141F6285CAFB95A5441D7A3702D20235141B81E857BBA5A5441C3F528DC1C2351411F85EBA1BA5A5441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000CC9BEC6404235141D0103D54F05A54418FC2F52807235141B81E85EBF25A5441A806CDE30A2351416BBBDDBBEC5A5441BAC1D8AD0E235141EE20F8E1E65A5441A5D5670D1423514199264A29DF5A544137C53D2B17235141E2CBB5C3DA5A54414D5516C118235141EEC50DB4D85A5441685A30F91A235141E86558D7D55A54416CD9A19F1B23514151D8AC00D55A5441F7A7088C20235141F1E6BBACCD5A54414B16ED0126235141078A7F57C45A5441CDCCCC0C2D235141E17A144EB85A54413D0AD7E324235141F6285CAFB95A54417D9427691C23514197BD3CBAC75A54411E851E4615235141FEB4FE8BD35A5441453F3E630C23514161326C43E25A54417F605B79082351417A17A6BEE85A544167FB557D04235141448BDB26F05A5441A3D2878B04235141B1FD062BF05A5441CC9BEC6404235141D0103D54F05A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>291021 - 256558
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000900000014AE47D1AABB5041F6285C9F19D1544148E17A54B9BB5041713D0AF718D154411F85EB41B7BB5041E17A144E01D154417B14AE27B5BB5041F6285C4FE9D0544185EB5188ACBB5041666666E6E7D05441295C8FE29FBB5041EC51B8DEE3D054415C8FC245A2BB50413D0AD7E3FED0544185EB51A8A4BB504152B81EE519D1544114AE47D1AABB5041F6285C9F19D15441
+</a>
+
+<b>
+01060000000100000001030000000100000011000000BA6BC372A1BB5041A4B8EE8FF5D05441295C8FE29FBB5041EC51B8DEE3D05441906CC9569DBB5041CF6DE90EE3D054410041F3499FBB5041553DAE07FAD054413AAD80AA9FBB5041EF5F3079FED0544186FD62EE9FBB504129A2F29801D15441BA2A377BA0BB50410457161408D1544115FE6B11A1BB50412DB1B4FD0ED1544181DC93F1A1BB50410CAA74121AD15441C9BF60B6A4BB5041D8D66C871AD1544185EB51A8A4BB504152B81EE519D154415728B192A4BB50419EC83AF018D15441E6508E5EA4BB5041CA7BE6A116D1544139A43B35A4BB5041D3B901CE14D15441C025B6A1A3BB50417DA8A4470ED15441613CE065A3BB5041D13922A20BD15441BA6BC372A1BB5041A4B8EE8FF5D05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>242552 - 3178706
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000300000012000000000000E0D01651418FC2F548DB185541295C8FC2DE165141C3F5289CD818554114AE4731EB165141000000A0D5185541F6158031E716514102F96000C4185541B197514EC8165141AAA67246CD1855417B14AE47C21651417B14AE97CD1855411F85EB21BF165141E17A148ECF185541D1EC4788BC1651411F33D1B0D31855412C6B293EBD1651412CABD536D41855418A226D9BBC1651418E65B92FD5185541E09DAEB5BB165141AB8E24E3D418554100000080BA165141713D0AA7D6185541D7A370CDB9165141EC51B85ED8185541E17A147EB9165141AE47E11ADB185541C3F5283CBF165141D7A3704DDC185541D7A3702DC6165141295C8F52DC18554148E17AF4C9165141B81E856BDC185541000000E0D01651418FC2F548DB18554105000000B35B4004C41651415D4D1F3CD7185541D4EF2351C61651418540AAF1D61855418974E7AFC6165141B5214CFDDA185541EC95F047C416514110E4AD2CDB185541B35B4004C41651415D4D1F3CD718554106000000EFF4B5C8B91651410097EF6DD91855418EC77ACFB91651417970908ED8185541895CA105BA1651412984E1F2D71855415F7548B1BC165141B7151A9CD818554164E0217BBC165141720B50F5D9185541EFF4B5C8B91651410097EF6DD9185541
+</a>
+
+<b>
+01060000000100000001030000000300000018000000D61D05C9B91651413551BB63D9185541E17A147EB9165141AE47E11ADB185541C3F5283CBF165141D7A3704DDC185541D7A3702DC6165141295C8F52DC18554148E17AF4C9165141B81E856BDC185541000000E0D01651418FC2F548DB185541ED304392CF165141C83B4BECD8185541C025DDEFCD165141B167747BD51855419DDB23F8CA165141EBE4AB2BCE1855411A0E5153CA165141A76984AECC185541B0755E5ECA165141CCA8E7A7CC185541AD97514EC8165141A6A67246CD1855417B14AE47C21651417B14AE97CD1855411F85EB21BF165141E17A148ECF185541D4EC4788BC1651412333D1B0D3185541296B293EBD1651412DABD536D41855418D226D9BBC1651419265B92FD5185541E39DAEB5BB165141AB8E24E3D418554100000080BA165141713D0AA7D6185541BD25A303BA165141D856EAFBD71855415A7548B1BC165141B6151A9CD818554165E0217BBC165141710B50F5D9185541EFF4B5C8B9165141FC96EF6DD9185541D61D05C9B91651413551BB63D918554105000000398965F0BD165141116EEEE1DB185541F63CA7E9BD1651415EA91939DA18554124653E7FC31651411EC4EEE7D8185541CB5FADC2C3165141013DF5C6DB185541398965F0BD165141116EEEE1DB18554105000000B05B4004C4165141584D1F3CD7185541E87B5228C61651410A516902D7185541E2F3788DC616514142686DE8DA185541EA95F047C416514114E4AD2CDB185541B05B4004C4165141584D1F3CD7185541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>242552 - 3578665
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000300000012000000000000E0D01651418FC2F548DB185541295C8FC2DE165141C3F5289CD818554114AE4731EB165141000000A0D5185541F6158031E716514102F96000C4185541B197514EC8165141AAA67246CD1855417B14AE47C21651417B14AE97CD1855411F85EB21BF165141E17A148ECF185541D1EC4788BC1651411F33D1B0D31855412C6B293EBD1651412CABD536D41855418A226D9BBC1651418E65B92FD5185541E09DAEB5BB165141AB8E24E3D418554100000080BA165141713D0AA7D6185541D7A370CDB9165141EC51B85ED8185541E17A147EB9165141AE47E11ADB185541C3F5283CBF165141D7A3704DDC185541D7A3702DC6165141295C8F52DC18554148E17AF4C9165141B81E856BDC185541000000E0D01651418FC2F548DB18554105000000B35B4004C41651415D4D1F3CD7185541D4EF2351C61651418540AAF1D61855418974E7AFC6165141B5214CFDDA185541EC95F047C416514110E4AD2CDB185541B35B4004C41651415D4D1F3CD718554106000000EFF4B5C8B91651410097EF6DD91855418EC77ACFB91651417970908ED8185541895CA105BA1651412984E1F2D71855415F7548B1BC165141B7151A9CD818554164E0217BBC165141720B50F5D9185541EFF4B5C8B91651410097EF6DD9185541
+</a>
+
+<b>
+01060000000100000001030000000300000018000000D61D05C9B91651413551BB63D9185541E17A147EB9165141AE47E11ADB185541C3F5283CBF165141D7A3704DDC185541D7A3702DC6165141295C8F52DC18554148E17AF4C9165141B81E856BDC185541000000E0D01651418FC2F548DB185541ED304392CF165141C83B4BECD8185541C025DDEFCD165141B167747BD51855419DDB23F8CA165141EBE4AB2BCE1855411A0E5153CA165141A76984AECC185541B0755E5ECA165141CCA8E7A7CC185541AD97514EC8165141A6A67246CD1855417B14AE47C21651417B14AE97CD1855411F85EB21BF165141E17A148ECF185541D4EC4788BC1651412333D1B0D3185541296B293EBD1651412DABD536D41855418D226D9BBC1651419265B92FD5185541E39DAEB5BB165141AB8E24E3D418554100000080BA165141713D0AA7D6185541BD25A303BA165141D856EAFBD71855415A7548B1BC165141B6151A9CD818554165E0217BBC165141710B50F5D9185541EFF4B5C8B9165141FC96EF6DD9185541D61D05C9B91651413551BB63D918554105000000398965F0BD165141116EEEE1DB185541F63CA7E9BD1651415EA91939DA18554124653E7FC31651411EC4EEE7D8185541CB5FADC2C3165141013DF5C6DB185541398965F0BD165141116EEEE1DB18554105000000B05B4004C4165141584D1F3CD7185541E87B5228C61651410A516902D7185541E2F3788DC616514142686DE8DA185541EA95F047C416514114E4AD2CDB185541B05B4004C4165141584D1F3CD7185541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>24235 - 1755270
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000110000000000004061EB504148E17A5488805441713D0A7762EB50410AD7A32089805441B81E85CB6CEB50415C8FC2F585805441AE47E1BA73EB5041B81E850B848054415C8FC2E56FEB504114AE476146805441AE47E12A6DEB504185EB514846805441295C8F1268EB504114AE470145805441E17A14FE62EB5041D7A3707D43805441C3F5283C5EEB5041CDCCCCCC41805441A4703D1A5DEB504114AE4751438054415C8FC2355EEB5041713D0AD756805441333333E36BEB5041A4703D0A5680544114AE470170EB504114AE47D155805441713D0AD770EB50419A99990968805441000000506DEB50416666666669805441295C8F725FEB5041AE47E10A6A8054410000004061EB504148E17A5488805441
+</a>
+
+<b>
+0106000000010000000103000000010000000A00000065AECE735FEB50417230C86C6880544172843F565EEB5041142E2CD6568054418036FAD570EB5041030CAE4654805441911B7E0370EB50418062AB2E46805441C766595F6DEB50417DA3314A468054417FF0E66667EB5041473516CE44805441929382925EEB5041EA8D124342805441D61C451B5DEB5041F3D4366243805441C877472F5DEB5041209C31AB4480544165AECE735FEB50417230C86C68805441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>24235 - 3624264
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000110000000000004061EB504148E17A5488805441713D0A7762EB50410AD7A32089805441B81E85CB6CEB50415C8FC2F585805441AE47E1BA73EB5041B81E850B848054415C8FC2E56FEB504114AE476146805441AE47E12A6DEB504185EB514846805441295C8F1268EB504114AE470145805441E17A14FE62EB5041D7A3707D43805441C3F5283C5EEB5041CDCCCCCC41805441A4703D1A5DEB504114AE4751438054415C8FC2355EEB5041713D0AD756805441333333E36BEB5041A4703D0A5680544114AE470170EB504114AE47D155805441713D0AD770EB50419A99990968805441000000506DEB50416666666669805441295C8F725FEB5041AE47E10A6A8054410000004061EB504148E17A5488805441
+</a>
+
+<b>
+0106000000010000000103000000010000000A00000065AECE735FEB50417230C86C6880544172843F565EEB5041142E2CD6568054418036FAD570EB5041030CAE4654805441911B7E0370EB50418062AB2E46805441C766595F6DEB50417DA3314A468054417FF0E66667EB5041473516CE44805441929382925EEB5041EA8D124342805441D61C451B5DEB5041F3D4366243805441C877472F5DEB5041209C31AB4480544165AECE735FEB50417230C86C68805441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>407047 - 1639901
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000007F00000014AE4781B8A450415C8FC255864C554152B81E95B6A45041C3F5288C854C5541AE47E14AB6A45041295C8FE2854C55413D0AD743B6A450410AD7A350864C554148E17A34B6A4504148E17AC4864C5541666666F6B5A4504148E17A44874C5541AE47E14AB5A4504185EB5168874C554152B81EA5B4A45041AE47E15A874C55417B14AED7B3A450417B14AE17874C5541F6285C4FB3A45041B81E85FB864C5541F6285CDFB2A45041A4703D2A874C5541C3F5284CB2A450419A999989874C554185EB51D8B1A450413D0AD793874C55413D0AD713B1A45041A4703D6A874C55417B14AE87B0A45041AE47E11A874C55410AD7A390B0A45041EC51B8DE864C5541EC51B8CEB0A4504185EB5178864C5541000000D0B0A4504133333343864C5541E17A149EB0A4504166666646864C554114AE4731B0A45041AE47E1AA864C5541A4703DBAAFA45041D7A370FD864C554114AE4741AFA450411F85EBE1864C5541EC51B8DEAEA4504185EB5188864C5541295C8F92AEA45041EC51B85E864C55415C8FC235AEA45041713D0A77864C554166666696ADA450418FC2F5A8864C55410AD7A300ADA450418FC2F5A8864C554133333363ACA450410AD7A350864C55413D0AD713ACA4504152B81EC5854C55418FC2F598ABA45041713D0A87854C5541713D0AB7AAA45041713D0A47854C55419A9999A9A9A4504185EB5148854C55417B14AE77A7A45041295C8F62854C55410AD7A3D0A6A4504185EB5188854C554185EB5148A6A450411F85EBF1854C55418FC2F5E8A5A450411F85EBF1854C5541E17A144EA4A45041666666D6844C5541F6285C5FA3A450418FC2F588844C554185EB5138A2A45041D7A3706D844C554100000070A1A4504152B81E05844C55418FC2F5E8A0A45041666666D6834C554185EB51D89FA45041713D0A97834C5541EC51B82E9FA450415C8FC285834C55417B14AE779EA4504114AE4761834C554185EB51789DA45041EC51B8FE824C5541EC51B85E9CA45041295C8FB2824C5541F6285C8F9BA45041000000A0824C55413D0AD7839AA45041B81E853B824C5541B81E857B99A4504185EB5128824C5541D7A3703D99A45041A4703DFA814C55418FC2F5D898A4504152B81E65814C5541333333A398A4504152B81E35814C554148E17AD497A450410AD7A320814C5541C3F5283C97A4504114AE4701814C5541666666D696A45041E17A14AE804C554152B81E8596A45041E17A147E804C5541A4703D0A96A450418FC2F568804C55417B14AE8794A450415C8FC2A5804C5541A4703DEA93A45041A4703D8A804C5541C3F5287C93A4504114AE4741804C55411F85EB3193A45041AE47E1EA7F4C554185EB51F892A45041D7A3705D7F4C5541CDCCCC9C92A45041EC51B83E7F4C55413333334392A45041AE47E13A7F4C55415C8FC2E591A450418FC2F5487F4C554152B81E4591A45041B81E855B7F4C5541666666E690A450410AD7A3307F4C5541C3F5289C90A450417B14AEE77E4C554114AE47D18DA450419A999959864C55410AD7A3D090A450418FC2F518894C55410AD7A39098A45041295C8F628E4C55410AD7A300A3A45041F6285C4F8F4C554166666676ADA45041E17A147E8D4C5541B81E856BB4A4504185EB51488C4C55417B14AEB7BDA45041AE47E18A914C5541D7A3704DC6A45041713D0AE7964C5541E17A141ECDA45041666666D6984C55419A999999D3A450415C8FC2A59E4C5541B81E859BD5A4504185EB51889B4C55415C8FC2E5D5A45041666666169B4C554185EB5108D7A45041A4703D5A994C5541AE47E11AD7A4504133333323994C5541C3F528FCD6A450418FC2F5C8984C5541B81E859BD6A45041AE47E18A984C55418FC2F5F8D5A4504152B81E65984C55419A9999F9D4A4504185EB5138984C55418FC2F548D4A45041F6285CFF974C554185EB51B8D3A45041C3F528AC974C55415C8FC245D3A45041713D0A37974C5541D7A370BDD2A45041C3F528BC964C554133333333D2A450415C8FC265964C5541F6285C8FD1A45041B81E85DB954C5541713D0A37D1A4504166666696954C5541D7A370EDCFA4504114AE4711954C55413D0AD703CFA45041AE47E1BA944C5541000000A0CEA450419A999979944C5541CDCCCC5CCEA45041CDCCCCFC934C5541295C8F42CEA450419A999989934C55410AD7A310CEA45041CDCCCC4C934C55413D0AD7A3CDA45041E17A141E934C554152B81E55CBA45041EC51B89E924C55415C8FC245CAA45041EC51B84E924C5541E17A149EC9A4504114AE4701924C5541A4703DFAC8A45041B81E858B914C5541E17A14AEC8A4504166666616914C5541F6285C8FC8A4504185EB5118904C5541CDCCCC6CC8A450411F85EB518F4C5541713D0A37C8A450410AD7A3008F4C55411F85EBC1C7A45041295C8FC28E4C55413D0AD743C7A4504114AE47918E4C5541D7A370ADC6A450415C8FC2558E4C55418FC2F558C5A450413D0AD7E38D4C554152B81E35C4A45041333333438D4C5541B81E855BC3A45041000000C08C4C554100000080C2A450410AD7A3208C4C5541EC51B8BEC1A450419A9999698B4C5541CDCCCCCCC0A45041AE47E18A8A4C5541F6285CFFBFA45041B81E853B8A4C5541E17A14EEBEA4504185EB51E8894C5541295C8F52BEA4504152B81EA5894C554152B81E95BDA4504114AE4731894C55413D0AD7C3BCA450417B14AE97884C554100000020BCA45041E17A14FE874C55419A9999C9BBA4504185EB51D8874C55417B14AE47BBA450411F85EB81874C5541CDCCCC2CBAA4504148E17AA4864C554114AE4781B8A450415C8FC255864C55410103000000010000003C000000A4703D1AB6A4504185EB5198854C5541713D0AE7B2A45041B81E852B844C55418FC2F568A5A4504133333333804C554114AE4741A2A450417B14AED7804C5541A4703D0A9FA45041295C8F42804C55417B14AE279EA45041713D0AE7824C5541CDCCCCBC9EA450410AD7A320834C5541C3F5281C9FA4504152B81E25834C5541666666E69FA450419A999939834C5541EC51B89EA0A4504114AE4771834C55410AD7A360A1A45041B81E85BB834C5541F6285CFFA1A450411F85EB11844C55413D0AD753A2A45041F6285C2F844C55413D0AD7C3A2A45041B81E852B844C554148E17A74A3A450410AD7A340844C5541EC51B8FEA3A45041C3F5284C844C5541B81E859BA4A45041D7A370AD844C554133333343A5A450411F85EB31854C5541F6285CCFA5A45041D7A3708D854C55415C8FC215A6A45041C3F5288C854C55411F85EB61A6A45041B81E855B854C554114AE47B1A6A45041B81E852B854C5541D7A3707DA7A4504133333313854C55418FC2F588A8A45041A4703D0A854C55419A999999A9A450413D0AD703854C55417B14AE97AAA45041CDCCCCFC844C554114AE4731ABA4504152B81E05854C5541295C8FC2ABA45041EC51B82E854C554114AE4731ACA450418FC2F578854C5541295C8F82ACA450410AD7A3E0854C554185EB51D8ACA4504100000030864C5541D7A3701DADA4504148E17A54864C55415C8FC275ADA450415C8FC255864C554114AE4751AEA45041EC51B81E864C5541000000C0AEA4504185EB5108864C5541AE47E1EAAEA450418FC2F528864C5541B81E854BAFA45041EC51B89E864C55410AD7A390AFA450418FC2F5A8864C55410AD7A3D0AFA450417B14AE97864C554185EB5138B0A45041295C8F52864C554148E17AB4B0A450411F85EBF1854C5541EC51B8FEB0A450418FC2F5E8854C554148E17A34B1A4504148E17A14864C5541E17A144EB1A4504148E17A44864C554100000020B1A4504185EB5178864C55413D0AD7D3B0A45041C3F528BC864C55418FC2F5D8B0A45041666666F6864C55418FC2F518B1A45041CDCCCC1C874C5541000000D0B1A450410AD7A340874C5541C3F5281CB2A45041E17A142E874C55419A999969B2A45041D7A370FD864C554152B81EC5B2A4504185EB51B8864C5541D7A3701DB3A450419A999999864C5541F6285C8FB3A45041AE47E1AA864C554100000070B4A450419A999909874C5541CDCCCC0CB5A4504114AE4731874C55411F85EB91B5A450410AD7A310874C55418FC2F5D8B5A45041D7A370CD864C55413D0AD703B6A45041E17A142E864C5541A4703D1AB6A4504185EB5198854C5541
+</a>
+
+<b>
+010600000001000000010300000001000000BB000000869D5013B6A45041EA849EC6854C5541A4703D1AB6A4504185EB5198854C5541713D0AE7B2A45041B81E852B844C55418FC2F568A5A4504133333333804C554114AE4741A2A450417B14AED7804C5541A4703D0A9FA45041295C8F42804C55417B14AE279EA45041713D0AE7824C5541CDCCCCBC9EA450410AD7A320834C5541C3F5281C9FA4504152B81E25834C5541666666E69FA450419A999939834C5541EC51B89EA0A4504114AE4771834C55410AD7A360A1A45041B81E85BB834C5541F6285CFFA1A450411F85EB11844C55413D0AD753A2A45041F6285C2F844C55413D0AD7C3A2A45041B81E852B844C554148E17A74A3A450410AD7A340844C5541EC51B8FEA3A45041C3F5284C844C5541B81E859BA4A45041D7A370AD844C554133333343A5A450411F85EB31854C5541F6285CCFA5A45041D7A3708D854C55415C8FC215A6A45041C3F5288C854C55411F85EB61A6A45041B81E855B854C554114AE47B1A6A45041B81E852B854C5541D7A3707DA7A4504133333313854C55418FC2F588A8A45041A4703D0A854C55419A999999A9A450413D0AD703854C55417B14AE97AAA45041CDCCCCFC844C554114AE4731ABA4504152B81E05854C5541295C8FC2ABA45041EC51B82E854C554114AE4731ACA450418FC2F578854C5541295C8F82ACA450410AD7A3E0854C554185EB51D8ACA4504100000030864C5541D7A3701DADA4504148E17A54864C55415C8FC275ADA450415C8FC255864C554114AE4751AEA45041EC51B81E864C5541000000C0AEA4504185EB5108864C5541AE47E1EAAEA450418FC2F528864C5541B81E854BAFA45041EC51B89E864C55410AD7A390AFA450418FC2F5A8864C55410AD7A3D0AFA450417B14AE97864C554185EB5138B0A45041295C8F52864C554148E17AB4B0A450411F85EBF1854C5541EC51B8FEB0A450418FC2F5E8854C554148E17A34B1A4504148E17A14864C5541E17A144EB1A4504148E17A44864C554100000020B1A4504185EB5178864C55413D0AD7D3B0A45041C3F528BC864C55418FC2F5D8B0A45041666666F6864C55418FC2F518B1A45041CDCCCC1C874C5541000000D0B1A450410AD7A340874C5541C3F5281CB2A45041E17A142E874C55419A999969B2A45041D7A370FD864C554152B81EC5B2A4504185EB51B8864C5541D7A3701DB3A450419A999999864C5541F6285C8FB3A45041AE47E1AA864C554100000070B4A450419A999909874C5541CDCCCC0CB5A4504114AE4731874C55411F85EB91B5A450410AD7A310874C55418FC2F5D8B5A45041D7A370CD864C55413D0AD703B6A45041E17A142E864C554173768F11B6A45041EA6C59D2854C55413D0AD743B6A450410AD7A350864C554148E17A34B6A4504148E17AC4864C5541666666F6B5A4504148E17A44874C5541AE47E14AB5A4504185EB5168874C554152B81EA5B4A45041AE47E15A874C55417B14AED7B3A450417B14AE17874C5541F6285C4FB3A45041B81E85FB864C5541F6285CDFB2A45041A4703D2A874C5541C3F5284CB2A450419A999989874C554185EB51D8B1A450413D0AD793874C55413D0AD713B1A45041A4703D6A874C55417B14AE87B0A45041AE47E11A874C55410AD7A390B0A45041EC51B8DE864C5541EC51B8CEB0A4504185EB5178864C5541000000D0B0A4504133333343864C5541E17A149EB0A4504166666646864C554114AE4731B0A45041AE47E1AA864C5541A4703DBAAFA45041D7A370FD864C554114AE4741AFA450411F85EBE1864C5541EC51B8DEAEA4504185EB5188864C5541295C8F92AEA45041EC51B85E864C55415C8FC235AEA45041713D0A77864C554166666696ADA450418FC2F5A8864C55410AD7A300ADA450418FC2F5A8864C554133333363ACA450410AD7A350864C55413D0AD713ACA4504152B81EC5854C55418FC2F598ABA45041713D0A87854C5541713D0AB7AAA45041713D0A47854C55419A9999A9A9A4504185EB5148854C55417B14AE77A7A45041295C8F62854C55410AD7A3D0A6A4504185EB5188854C554185EB5148A6A450411F85EBF1854C55418FC2F5E8A5A450411F85EBF1854C5541E17A144EA4A45041666666D6844C5541F6285C5FA3A450418FC2F588844C554185EB5138A2A45041D7A3706D844C554100000070A1A4504152B81E05844C55418FC2F5E8A0A45041666666D6834C554185EB51D89FA45041713D0A97834C5541EC51B82E9FA450415C8FC285834C55417B14AE779EA4504114AE4761834C554185EB51789DA45041EC51B8FE824C5541EC51B85E9CA45041295C8FB2824C5541F6285C8F9BA45041000000A0824C55413D0AD7839AA45041B81E853B824C5541B81E857B99A4504185EB5128824C5541D7A3703D99A45041A4703DFA814C55418FC2F5D898A4504152B81E65814C5541333333A398A4504152B81E35814C554148E17AD497A450410AD7A320814C5541C3F5283C97A4504114AE4701814C5541666666D696A45041E17A14AE804C554152B81E8596A45041E17A147E804C5541A4703D0A96A450418FC2F568804C55417B14AE8794A450415C8FC2A5804C5541A4703DEA93A45041A4703D8A804C5541C3F5287C93A4504114AE4741804C55411F85EB3193A45041AE47E1EA7F4C554185EB51F892A45041D7A3705D7F4C5541CDCCCC9C92A45041EC51B83E7F4C55413333334392A45041AE47E13A7F4C55415C8FC2E591A450418FC2F5487F4C554152B81E4591A45041B81E855B7F4C5541666666E690A450410AD7A3307F4C5541C3F5289C90A450417B14AEE77E4C554114AE47D18DA450419A999959864C55410AD7A3D090A450418FC2F518894C55410AD7A39098A45041295C8F628E4C55410AD7A300A3A45041F6285C4F8F4C554166666676ADA45041E17A147E8D4C5541B81E856BB4A4504185EB51488C4C55417B14AEB7BDA45041AE47E18A914C5541D7A3704DC6A45041713D0AE7964C5541E17A141ECDA45041666666D6984C55419A999999D3A450415C8FC2A59E4C5541B81E859BD5A4504185EB51889B4C55415C8FC2E5D5A45041666666169B4C554185EB5108D7A45041A4703D5A994C5541AE47E11AD7A4504133333323994C5541C3F528FCD6A450418FC2F5C8984C5541B81E859BD6A45041AE47E18A984C55418FC2F5F8D5A4504152B81E65984C55419A9999F9D4A4504185EB5138984C55418FC2F548D4A45041F6285CFF974C554185EB51B8D3A45041C3F528AC974C55415C8FC245D3A45041713D0A37974C5541D7A370BDD2A45041C3F528BC964C554133333333D2A450415C8FC265964C5541F6285C8FD1A45041B81E85DB954C5541713D0A37D1A4504166666696954C5541D7A370EDCFA4504114AE4711954C55413D0AD703CFA45041AE47E1BA944C5541000000A0CEA450419A999979944C5541CDCCCC5CCEA45041CDCCCCFC934C5541295C8F42CEA450419A999989934C55410AD7A310CEA45041CDCCCC4C934C55413D0AD7A3CDA45041E17A141E934C554152B81E55CBA45041EC51B89E924C55415C8FC245CAA45041EC51B84E924C5541E17A149EC9A4504114AE4701924C5541A4703DFAC8A45041B81E858B914C5541E17A14AEC8A4504166666616914C5541F6285C8FC8A4504185EB5118904C5541CDCCCC6CC8A450411F85EB518F4C5541713D0A37C8A450410AD7A3008F4C55411F85EBC1C7A45041295C8FC28E4C55413D0AD743C7A4504114AE47918E4C5541D7A370ADC6A450415C8FC2558E4C55418FC2F558C5A450413D0AD7E38D4C554152B81E35C4A45041333333438D4C5541B81E855BC3A45041000000C08C4C554100000080C2A450410AD7A3208C4C5541EC51B8BEC1A450419A9999698B4C5541CDCCCCCCC0A45041AE47E18A8A4C5541F6285CFFBFA45041B81E853B8A4C5541E17A14EEBEA4504185EB51E8894C5541295C8F52BEA4504152B81EA5894C554152B81E95BDA4504114AE4731894C55413D0AD7C3BCA450417B14AE97884C554100000020BCA45041E17A14FE874C55419A9999C9BBA4504185EB51D8874C55417B14AE47BBA450411F85EB81874C5541CDCCCC2CBAA4504148E17AA4864C554114AE4781B8A450415C8FC255864C554152B81E95B6A45041C3F5288C854C5541869D5013B6A45041EA849EC6854C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>407047 - 5291118
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000007F00000014AE4781B8A450415C8FC255864C554152B81E95B6A45041C3F5288C854C5541AE47E14AB6A45041295C8FE2854C55413D0AD743B6A450410AD7A350864C554148E17A34B6A4504148E17AC4864C5541666666F6B5A4504148E17A44874C5541AE47E14AB5A4504185EB5168874C554152B81EA5B4A45041AE47E15A874C55417B14AED7B3A450417B14AE17874C5541F6285C4FB3A45041B81E85FB864C5541F6285CDFB2A45041A4703D2A874C5541C3F5284CB2A450419A999989874C554185EB51D8B1A450413D0AD793874C55413D0AD713B1A45041A4703D6A874C55417B14AE87B0A45041AE47E11A874C55410AD7A390B0A45041EC51B8DE864C5541EC51B8CEB0A4504185EB5178864C5541000000D0B0A4504133333343864C5541E17A149EB0A4504166666646864C554114AE4731B0A45041AE47E1AA864C5541A4703DBAAFA45041D7A370FD864C554114AE4741AFA450411F85EBE1864C5541EC51B8DEAEA4504185EB5188864C5541295C8F92AEA45041EC51B85E864C55415C8FC235AEA45041713D0A77864C554166666696ADA450418FC2F5A8864C55410AD7A300ADA450418FC2F5A8864C554133333363ACA450410AD7A350864C55413D0AD713ACA4504152B81EC5854C55418FC2F598ABA45041713D0A87854C5541713D0AB7AAA45041713D0A47854C55419A9999A9A9A4504185EB5148854C55417B14AE77A7A45041295C8F62854C55410AD7A3D0A6A4504185EB5188854C554185EB5148A6A450411F85EBF1854C55418FC2F5E8A5A450411F85EBF1854C5541E17A144EA4A45041666666D6844C5541F6285C5FA3A450418FC2F588844C554185EB5138A2A45041D7A3706D844C554100000070A1A4504152B81E05844C55418FC2F5E8A0A45041666666D6834C554185EB51D89FA45041713D0A97834C5541EC51B82E9FA450415C8FC285834C55417B14AE779EA4504114AE4761834C554185EB51789DA45041EC51B8FE824C5541EC51B85E9CA45041295C8FB2824C5541F6285C8F9BA45041000000A0824C55413D0AD7839AA45041B81E853B824C5541B81E857B99A4504185EB5128824C5541D7A3703D99A45041A4703DFA814C55418FC2F5D898A4504152B81E65814C5541333333A398A4504152B81E35814C554148E17AD497A450410AD7A320814C5541C3F5283C97A4504114AE4701814C5541666666D696A45041E17A14AE804C554152B81E8596A45041E17A147E804C5541A4703D0A96A450418FC2F568804C55417B14AE8794A450415C8FC2A5804C5541A4703DEA93A45041A4703D8A804C5541C3F5287C93A4504114AE4741804C55411F85EB3193A45041AE47E1EA7F4C554185EB51F892A45041D7A3705D7F4C5541CDCCCC9C92A45041EC51B83E7F4C55413333334392A45041AE47E13A7F4C55415C8FC2E591A450418FC2F5487F4C554152B81E4591A45041B81E855B7F4C5541666666E690A450410AD7A3307F4C5541C3F5289C90A450417B14AEE77E4C554114AE47D18DA450419A999959864C55410AD7A3D090A450418FC2F518894C55410AD7A39098A45041295C8F628E4C55410AD7A300A3A45041F6285C4F8F4C554166666676ADA45041E17A147E8D4C5541B81E856BB4A4504185EB51488C4C55417B14AEB7BDA45041AE47E18A914C5541D7A3704DC6A45041713D0AE7964C5541E17A141ECDA45041666666D6984C55419A999999D3A450415C8FC2A59E4C5541B81E859BD5A4504185EB51889B4C55415C8FC2E5D5A45041666666169B4C554185EB5108D7A45041A4703D5A994C5541AE47E11AD7A4504133333323994C5541C3F528FCD6A450418FC2F5C8984C5541B81E859BD6A45041AE47E18A984C55418FC2F5F8D5A4504152B81E65984C55419A9999F9D4A4504185EB5138984C55418FC2F548D4A45041F6285CFF974C554185EB51B8D3A45041C3F528AC974C55415C8FC245D3A45041713D0A37974C5541D7A370BDD2A45041C3F528BC964C554133333333D2A450415C8FC265964C5541F6285C8FD1A45041B81E85DB954C5541713D0A37D1A4504166666696954C5541D7A370EDCFA4504114AE4711954C55413D0AD703CFA45041AE47E1BA944C5541000000A0CEA450419A999979944C5541CDCCCC5CCEA45041CDCCCCFC934C5541295C8F42CEA450419A999989934C55410AD7A310CEA45041CDCCCC4C934C55413D0AD7A3CDA45041E17A141E934C554152B81E55CBA45041EC51B89E924C55415C8FC245CAA45041EC51B84E924C5541E17A149EC9A4504114AE4701924C5541A4703DFAC8A45041B81E858B914C5541E17A14AEC8A4504166666616914C5541F6285C8FC8A4504185EB5118904C5541CDCCCC6CC8A450411F85EB518F4C5541713D0A37C8A450410AD7A3008F4C55411F85EBC1C7A45041295C8FC28E4C55413D0AD743C7A4504114AE47918E4C5541D7A370ADC6A450415C8FC2558E4C55418FC2F558C5A450413D0AD7E38D4C554152B81E35C4A45041333333438D4C5541B81E855BC3A45041000000C08C4C554100000080C2A450410AD7A3208C4C5541EC51B8BEC1A450419A9999698B4C5541CDCCCCCCC0A45041AE47E18A8A4C5541F6285CFFBFA45041B81E853B8A4C5541E17A14EEBEA4504185EB51E8894C5541295C8F52BEA4504152B81EA5894C554152B81E95BDA4504114AE4731894C55413D0AD7C3BCA450417B14AE97884C554100000020BCA45041E17A14FE874C55419A9999C9BBA4504185EB51D8874C55417B14AE47BBA450411F85EB81874C5541CDCCCC2CBAA4504148E17AA4864C554114AE4781B8A450415C8FC255864C55410103000000010000003C000000A4703D1AB6A4504185EB5198854C5541713D0AE7B2A45041B81E852B844C55418FC2F568A5A4504133333333804C554114AE4741A2A450417B14AED7804C5541A4703D0A9FA45041295C8F42804C55417B14AE279EA45041713D0AE7824C5541CDCCCCBC9EA450410AD7A320834C5541C3F5281C9FA4504152B81E25834C5541666666E69FA450419A999939834C5541EC51B89EA0A4504114AE4771834C55410AD7A360A1A45041B81E85BB834C5541F6285CFFA1A450411F85EB11844C55413D0AD753A2A45041F6285C2F844C55413D0AD7C3A2A45041B81E852B844C554148E17A74A3A450410AD7A340844C5541EC51B8FEA3A45041C3F5284C844C5541B81E859BA4A45041D7A370AD844C554133333343A5A450411F85EB31854C5541F6285CCFA5A45041D7A3708D854C55415C8FC215A6A45041C3F5288C854C55411F85EB61A6A45041B81E855B854C554114AE47B1A6A45041B81E852B854C5541D7A3707DA7A4504133333313854C55418FC2F588A8A45041A4703D0A854C55419A999999A9A450413D0AD703854C55417B14AE97AAA45041CDCCCCFC844C554114AE4731ABA4504152B81E05854C5541295C8FC2ABA45041EC51B82E854C554114AE4731ACA450418FC2F578854C5541295C8F82ACA450410AD7A3E0854C554185EB51D8ACA4504100000030864C5541D7A3701DADA4504148E17A54864C55415C8FC275ADA450415C8FC255864C554114AE4751AEA45041EC51B81E864C5541000000C0AEA4504185EB5108864C5541AE47E1EAAEA450418FC2F528864C5541B81E854BAFA45041EC51B89E864C55410AD7A390AFA450418FC2F5A8864C55410AD7A3D0AFA450417B14AE97864C554185EB5138B0A45041295C8F52864C554148E17AB4B0A450411F85EBF1854C5541EC51B8FEB0A450418FC2F5E8854C554148E17A34B1A4504148E17A14864C5541E17A144EB1A4504148E17A44864C554100000020B1A4504185EB5178864C55413D0AD7D3B0A45041C3F528BC864C55418FC2F5D8B0A45041666666F6864C55418FC2F518B1A45041CDCCCC1C874C5541000000D0B1A450410AD7A340874C5541C3F5281CB2A45041E17A142E874C55419A999969B2A45041D7A370FD864C554152B81EC5B2A4504185EB51B8864C5541D7A3701DB3A450419A999999864C5541F6285C8FB3A45041AE47E1AA864C554100000070B4A450419A999909874C5541CDCCCC0CB5A4504114AE4731874C55411F85EB91B5A450410AD7A310874C55418FC2F5D8B5A45041D7A370CD864C55413D0AD703B6A45041E17A142E864C5541A4703D1AB6A4504185EB5198854C5541
+</a>
+
+<b>
+010600000001000000010300000001000000BB000000869D5013B6A45041EA849EC6854C5541A4703D1AB6A4504185EB5198854C5541713D0AE7B2A45041B81E852B844C55418FC2F568A5A4504133333333804C554114AE4741A2A450417B14AED7804C5541A4703D0A9FA45041295C8F42804C55417B14AE279EA45041713D0AE7824C5541CDCCCCBC9EA450410AD7A320834C5541C3F5281C9FA4504152B81E25834C5541666666E69FA450419A999939834C5541EC51B89EA0A4504114AE4771834C55410AD7A360A1A45041B81E85BB834C5541F6285CFFA1A450411F85EB11844C55413D0AD753A2A45041F6285C2F844C55413D0AD7C3A2A45041B81E852B844C554148E17A74A3A450410AD7A340844C5541EC51B8FEA3A45041C3F5284C844C5541B81E859BA4A45041D7A370AD844C554133333343A5A450411F85EB31854C5541F6285CCFA5A45041D7A3708D854C55415C8FC215A6A45041C3F5288C854C55411F85EB61A6A45041B81E855B854C554114AE47B1A6A45041B81E852B854C5541D7A3707DA7A4504133333313854C55418FC2F588A8A45041A4703D0A854C55419A999999A9A450413D0AD703854C55417B14AE97AAA45041CDCCCCFC844C554114AE4731ABA4504152B81E05854C5541295C8FC2ABA45041EC51B82E854C554114AE4731ACA450418FC2F578854C5541295C8F82ACA450410AD7A3E0854C554185EB51D8ACA4504100000030864C5541D7A3701DADA4504148E17A54864C55415C8FC275ADA450415C8FC255864C554114AE4751AEA45041EC51B81E864C5541000000C0AEA4504185EB5108864C5541AE47E1EAAEA450418FC2F528864C5541B81E854BAFA45041EC51B89E864C55410AD7A390AFA450418FC2F5A8864C55410AD7A3D0AFA450417B14AE97864C554185EB5138B0A45041295C8F52864C554148E17AB4B0A450411F85EBF1854C5541EC51B8FEB0A450418FC2F5E8854C554148E17A34B1A4504148E17A14864C5541E17A144EB1A4504148E17A44864C554100000020B1A4504185EB5178864C55413D0AD7D3B0A45041C3F528BC864C55418FC2F5D8B0A45041666666F6864C55418FC2F518B1A45041CDCCCC1C874C5541000000D0B1A450410AD7A340874C5541C3F5281CB2A45041E17A142E874C55419A999969B2A45041D7A370FD864C554152B81EC5B2A4504185EB51B8864C5541D7A3701DB3A450419A999999864C5541F6285C8FB3A45041AE47E1AA864C554100000070B4A450419A999909874C5541CDCCCC0CB5A4504114AE4731874C55411F85EB91B5A450410AD7A310874C55418FC2F5D8B5A45041D7A370CD864C55413D0AD703B6A45041E17A142E864C554173768F11B6A45041EA6C59D2854C55413D0AD743B6A450410AD7A350864C554148E17A34B6A4504148E17AC4864C5541666666F6B5A4504148E17A44874C5541AE47E14AB5A4504185EB5168874C554152B81EA5B4A45041AE47E15A874C55417B14AED7B3A450417B14AE17874C5541F6285C4FB3A45041B81E85FB864C5541F6285CDFB2A45041A4703D2A874C5541C3F5284CB2A450419A999989874C554185EB51D8B1A450413D0AD793874C55413D0AD713B1A45041A4703D6A874C55417B14AE87B0A45041AE47E11A874C55410AD7A390B0A45041EC51B8DE864C5541EC51B8CEB0A4504185EB5178864C5541000000D0B0A4504133333343864C5541E17A149EB0A4504166666646864C554114AE4731B0A45041AE47E1AA864C5541A4703DBAAFA45041D7A370FD864C554114AE4741AFA450411F85EBE1864C5541EC51B8DEAEA4504185EB5188864C5541295C8F92AEA45041EC51B85E864C55415C8FC235AEA45041713D0A77864C554166666696ADA450418FC2F5A8864C55410AD7A300ADA450418FC2F5A8864C554133333363ACA450410AD7A350864C55413D0AD713ACA4504152B81EC5854C55418FC2F598ABA45041713D0A87854C5541713D0AB7AAA45041713D0A47854C55419A9999A9A9A4504185EB5148854C55417B14AE77A7A45041295C8F62854C55410AD7A3D0A6A4504185EB5188854C554185EB5148A6A450411F85EBF1854C55418FC2F5E8A5A450411F85EBF1854C5541E17A144EA4A45041666666D6844C5541F6285C5FA3A450418FC2F588844C554185EB5138A2A45041D7A3706D844C554100000070A1A4504152B81E05844C55418FC2F5E8A0A45041666666D6834C554185EB51D89FA45041713D0A97834C5541EC51B82E9FA450415C8FC285834C55417B14AE779EA4504114AE4761834C554185EB51789DA45041EC51B8FE824C5541EC51B85E9CA45041295C8FB2824C5541F6285C8F9BA45041000000A0824C55413D0AD7839AA45041B81E853B824C5541B81E857B99A4504185EB5128824C5541D7A3703D99A45041A4703DFA814C55418FC2F5D898A4504152B81E65814C5541333333A398A4504152B81E35814C554148E17AD497A450410AD7A320814C5541C3F5283C97A4504114AE4701814C5541666666D696A45041E17A14AE804C554152B81E8596A45041E17A147E804C5541A4703D0A96A450418FC2F568804C55417B14AE8794A450415C8FC2A5804C5541A4703DEA93A45041A4703D8A804C5541C3F5287C93A4504114AE4741804C55411F85EB3193A45041AE47E1EA7F4C554185EB51F892A45041D7A3705D7F4C5541CDCCCC9C92A45041EC51B83E7F4C55413333334392A45041AE47E13A7F4C55415C8FC2E591A450418FC2F5487F4C554152B81E4591A45041B81E855B7F4C5541666666E690A450410AD7A3307F4C5541C3F5289C90A450417B14AEE77E4C554114AE47D18DA450419A999959864C55410AD7A3D090A450418FC2F518894C55410AD7A39098A45041295C8F628E4C55410AD7A300A3A45041F6285C4F8F4C554166666676ADA45041E17A147E8D4C5541B81E856BB4A4504185EB51488C4C55417B14AEB7BDA45041AE47E18A914C5541D7A3704DC6A45041713D0AE7964C5541E17A141ECDA45041666666D6984C55419A999999D3A450415C8FC2A59E4C5541B81E859BD5A4504185EB51889B4C55415C8FC2E5D5A45041666666169B4C554185EB5108D7A45041A4703D5A994C5541AE47E11AD7A4504133333323994C5541C3F528FCD6A450418FC2F5C8984C5541B81E859BD6A45041AE47E18A984C55418FC2F5F8D5A4504152B81E65984C55419A9999F9D4A4504185EB5138984C55418FC2F548D4A45041F6285CFF974C554185EB51B8D3A45041C3F528AC974C55415C8FC245D3A45041713D0A37974C5541D7A370BDD2A45041C3F528BC964C554133333333D2A450415C8FC265964C5541F6285C8FD1A45041B81E85DB954C5541713D0A37D1A4504166666696954C5541D7A370EDCFA4504114AE4711954C55413D0AD703CFA45041AE47E1BA944C5541000000A0CEA450419A999979944C5541CDCCCC5CCEA45041CDCCCCFC934C5541295C8F42CEA450419A999989934C55410AD7A310CEA45041CDCCCC4C934C55413D0AD7A3CDA45041E17A141E934C554152B81E55CBA45041EC51B89E924C55415C8FC245CAA45041EC51B84E924C5541E17A149EC9A4504114AE4701924C5541A4703DFAC8A45041B81E858B914C5541E17A14AEC8A4504166666616914C5541F6285C8FC8A4504185EB5118904C5541CDCCCC6CC8A450411F85EB518F4C5541713D0A37C8A450410AD7A3008F4C55411F85EBC1C7A45041295C8FC28E4C55413D0AD743C7A4504114AE47918E4C5541D7A370ADC6A450415C8FC2558E4C55418FC2F558C5A450413D0AD7E38D4C554152B81E35C4A45041333333438D4C5541B81E855BC3A45041000000C08C4C554100000080C2A450410AD7A3208C4C5541EC51B8BEC1A450419A9999698B4C5541CDCCCCCCC0A45041AE47E18A8A4C5541F6285CFFBFA45041B81E853B8A4C5541E17A14EEBEA4504185EB51E8894C5541295C8F52BEA4504152B81EA5894C554152B81E95BDA4504114AE4731894C55413D0AD7C3BCA450417B14AE97884C554100000020BCA45041E17A14FE874C55419A9999C9BBA4504185EB51D8874C55417B14AE47BBA450411F85EB81874C5541CDCCCC2CBAA4504148E17AA4864C554114AE4781B8A450415C8FC255864C554152B81E95B6A45041C3F5288C854C5541869D5013B6A45041EA849EC6854C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>25147 - 2972160
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000020000001C000000C3F5280CA6ED5041B81E85CBFD7D5441E17A149EAAED50415C8FC2A5097E544133333303AAED50411F85EB810B7E5441000000B0D9ED50419A9999B9217E54415C8FC27502EE5041295C8F121A7E544152B81E1503EE50419A9999991B7E5441295C8FA204EE504148E17A241B7E5441333333A306EE504152B81EF5197E5441C3F5288C08EE50411F85EB21187E54410AD7A31019EE5041A4703D7A017E544185EB51C818EE504133333343FF7D54415C8FC2A510EE5041295C8FE2FA7D5441666666D606EE504114AE47B1F57D5441295C8FE2FDED504152B81E85F17D54417B14AEF7E4ED50415C8FC2A5E77D54411F85EB01C1ED5041C3F528DCDA7D544152B81EB5AAED50410AD7A320CF7D5441AE47E19A9BED504133333333E97D54417B14AE579EED5041000000D0EA7D5441A4703DDA9FED5041295C8F92ED7D5441713D0AD7A0ED5041295C8F92ED7D54411F85EBE1A1ED50411F85EB11F07D544148E17AB4A3ED50413D0AD7E3EF7D5441713D0A07A3ED50418FC2F598F47D544185EB5198A5ED504133333393FA7D544166666686A4ED50411F85EB01FC7D54410AD7A340A5ED5041B81E85CBFD7D5441C3F5280CA6ED5041B81E85CBFD7D544105000000B81E854BF3ED5041C3F5288C037E544133333313F4ED5041C3F5286C047E5441B81E854BF3ED50413D0AD723057E54413D0AD763F2ED50413D0AD763047E5441B81E854BF3ED5041C3F5288C037E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000310C00C100EE50414F8719201A7E54417EE574AAA3ED5041675D7C29F07D5441987AE0AAA3ED504177D89026F07D5441B2B83633A3ED5041BE669BF0EF7D5441BA530C2FA3ED504168B904F1EF7D544158EA51D6A1ED50414B764853EF7D5441713D0A07A3ED50418FC2F598F47D544185EB5198A5ED504133333393FA7D544166666686A4ED50411F85EB01FC7D54410AD7A340A5ED5041B81E85CBFD7D5441C3F5280CA6ED5041B81E85CBFD7D5441E17A149EAAED50415C8FC2A5097E544133333303AAED50411F85EB810B7E5441000000B0D9ED50419A9999B9217E5441310C00C100EE50414F8719201A7E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>25147 - 3206839
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000020000001C000000C3F5280CA6ED5041B81E85CBFD7D5441E17A149EAAED50415C8FC2A5097E544133333303AAED50411F85EB810B7E5441000000B0D9ED50419A9999B9217E54415C8FC27502EE5041295C8F121A7E544152B81E1503EE50419A9999991B7E5441295C8FA204EE504148E17A241B7E5441333333A306EE504152B81EF5197E5441C3F5288C08EE50411F85EB21187E54410AD7A31019EE5041A4703D7A017E544185EB51C818EE504133333343FF7D54415C8FC2A510EE5041295C8FE2FA7D5441666666D606EE504114AE47B1F57D5441295C8FE2FDED504152B81E85F17D54417B14AEF7E4ED50415C8FC2A5E77D54411F85EB01C1ED5041C3F528DCDA7D544152B81EB5AAED50410AD7A320CF7D5441AE47E19A9BED504133333333E97D54417B14AE579EED5041000000D0EA7D5441A4703DDA9FED5041295C8F92ED7D5441713D0AD7A0ED5041295C8F92ED7D54411F85EBE1A1ED50411F85EB11F07D544148E17AB4A3ED50413D0AD7E3EF7D5441713D0A07A3ED50418FC2F598F47D544185EB5198A5ED504133333393FA7D544166666686A4ED50411F85EB01FC7D54410AD7A340A5ED5041B81E85CBFD7D5441C3F5280CA6ED5041B81E85CBFD7D544105000000B81E854BF3ED5041C3F5288C037E544133333313F4ED5041C3F5286C047E5441B81E854BF3ED50413D0AD723057E54413D0AD763F2ED50413D0AD763047E5441B81E854BF3ED5041C3F5288C037E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000310C00C100EE50414F8719201A7E54417EE574AAA3ED5041675D7C29F07D5441987AE0AAA3ED504177D89026F07D5441B2B83633A3ED5041BE669BF0EF7D5441BA530C2FA3ED504168B904F1EF7D544158EA51D6A1ED50414B764853EF7D5441713D0A07A3ED50418FC2F598F47D544185EB5198A5ED504133333393FA7D544166666686A4ED50411F85EB01FC7D54410AD7A340A5ED5041B81E85CBFD7D5441C3F5280CA6ED5041B81E85CBFD7D5441E17A149EAAED50415C8FC2A5097E544133333303AAED50411F85EB810B7E5441000000B0D9ED50419A9999B9217E5441310C00C100EE50414F8719201A7E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>26023 - 1068534
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001700000085EB51288CF25041E17A14EE805A5441295C8FF27EF25041F6285C9F875A5441000000407AF2504152B81E758A5A5441EC51B8AE77F250419A9999498C5A5441E17A14EE77F250413D0AD7138E5A5441CDCCCC0C7EF25041D7A3708D915A5441EC51B8CE84F25041C3F528FC955A5441000000E08AF25041E17A147E9A5A5441AE47E1AA90F250418FC2F5589F5A5441D7A370DD95F25041A4703D4AA45A54418FC2F5F89AF25041000000D0A95A5441A4703DFAA1F25041F6285CCFB15A5441E17A145EA8F2504166666686B95A5441713D0AA7B4F250417B14AE07B05A5441EC51B82EBAF250418FC2F5B8AB5A5441D7A3702DBFF2504148E17AD4A75A5441D7A3703DB7F25041713D0A17A65A5441000000B0B0F250415C8FC275A05A544185EB5198AEF25041AE47E1FA9D5A544185EB51A8A7F250417B14AE17955A54413333332393F250413D0AD7937D5A54417B14AEC78FF25041E17A144E7F5A544185EB51288CF25041E17A14EE805A5441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000EC51B8AE77F250419A9999498C5A5441E17A14EE77F250413D0AD7138E5A5441239D22A77CF2504155AC5AC2905A544139113EFE7FF250416D38BBD3925A544125E2C47D83F250418121241F955A5441C510F2AF86F2504125AAA861975A544160D9477489F250414A2AE06F995A54411DA5F91A8DF250418FF9A45C9C5A5441244780A890F25041BD52F7569F5A544171AB7AB893F25041AF5A3640A25A54419E76EC7896F250411E725BF2A45A5441E68E3E7F9CF2504107AEDE78AB5A5441A4703DFAA1F25041F6285CCFB15A5441452A9A26A6F25041FE36339AB65A5441E17A145EA8F2504166666686B95A54411EEA5BB8B0F2504129C9BC11B35A5441713D0AA7B4F250417B14AE07B05A5441EC51B82EBAF250418FC2F5B8AB5A5441D7A3702DBFF2504148E17AD4A75A5441D7A3703DB7F25041713D0A17A65A5441000000B0B0F250415C8FC275A05A544185EB5198AEF25041AE47E1FA9D5A544185EB51A8A7F250417B14AE17955A54418C99D7A993F25041E247222E7E5A54413333332393F250413D0AD7937D5A5441340F395490F25041CD95C4057F5A544109B7FDA488F25041A88FB3B5825A5441DC6449D683F25041D59B3425855A5441149542987FF25041DC92694B875A54410ABE1FD97CF250410E98B5E3885A544170536A177AF25041B4040C928A5A5441EC51B8AE77F250419A9999498C5A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>26023 - 3411203
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001700000085EB51288CF25041E17A14EE805A5441295C8FF27EF25041F6285C9F875A5441000000407AF2504152B81E758A5A5441EC51B8AE77F250419A9999498C5A5441E17A14EE77F250413D0AD7138E5A5441CDCCCC0C7EF25041D7A3708D915A5441EC51B8CE84F25041C3F528FC955A5441000000E08AF25041E17A147E9A5A5441AE47E1AA90F250418FC2F5589F5A5441D7A370DD95F25041A4703D4AA45A54418FC2F5F89AF25041000000D0A95A5441A4703DFAA1F25041F6285CCFB15A5441E17A145EA8F2504166666686B95A5441713D0AA7B4F250417B14AE07B05A5441EC51B82EBAF250418FC2F5B8AB5A5441D7A3702DBFF2504148E17AD4A75A5441D7A3703DB7F25041713D0A17A65A5441000000B0B0F250415C8FC275A05A544185EB5198AEF25041AE47E1FA9D5A544185EB51A8A7F250417B14AE17955A54413333332393F250413D0AD7937D5A54417B14AEC78FF25041E17A144E7F5A544185EB51288CF25041E17A14EE805A5441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000EC51B8AE77F250419A9999498C5A5441E17A14EE77F250413D0AD7138E5A5441239D22A77CF2504155AC5AC2905A544139113EFE7FF250416D38BBD3925A544125E2C47D83F250418121241F955A5441C510F2AF86F2504125AAA861975A544160D9477489F250414A2AE06F995A54411DA5F91A8DF250418FF9A45C9C5A5441244780A890F25041BD52F7569F5A544171AB7AB893F25041AF5A3640A25A54419E76EC7896F250411E725BF2A45A5441E68E3E7F9CF2504107AEDE78AB5A5441A4703DFAA1F25041F6285CCFB15A5441452A9A26A6F25041FE36339AB65A5441E17A145EA8F2504166666686B95A54411EEA5BB8B0F2504129C9BC11B35A5441713D0AA7B4F250417B14AE07B05A5441EC51B82EBAF250418FC2F5B8AB5A5441D7A3702DBFF2504148E17AD4A75A5441D7A3703DB7F25041713D0A17A65A5441000000B0B0F250415C8FC275A05A544185EB5198AEF25041AE47E1FA9D5A544185EB51A8A7F250417B14AE17955A54418C99D7A993F25041E247222E7E5A54413333332393F250413D0AD7937D5A5441340F395490F25041CD95C4057F5A544109B7FDA488F25041A88FB3B5825A5441DC6449D683F25041D59B3425855A5441149542987FF25041DC92694B875A54410ABE1FD97CF250410E98B5E3885A544170536A177AF25041B4040C928A5A5441EC51B8AE77F250419A9999498C5A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>26023 - 29689
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001700000085EB51288CF25041E17A14EE805A5441295C8FF27EF25041F6285C9F875A5441000000407AF2504152B81E758A5A5441EC51B8AE77F250419A9999498C5A5441E17A14EE77F250413D0AD7138E5A5441CDCCCC0C7EF25041D7A3708D915A5441EC51B8CE84F25041C3F528FC955A5441000000E08AF25041E17A147E9A5A5441AE47E1AA90F250418FC2F5589F5A5441D7A370DD95F25041A4703D4AA45A54418FC2F5F89AF25041000000D0A95A5441A4703DFAA1F25041F6285CCFB15A5441E17A145EA8F2504166666686B95A5441713D0AA7B4F250417B14AE07B05A5441EC51B82EBAF250418FC2F5B8AB5A5441D7A3702DBFF2504148E17AD4A75A5441D7A3703DB7F25041713D0A17A65A5441000000B0B0F250415C8FC275A05A544185EB5198AEF25041AE47E1FA9D5A544185EB51A8A7F250417B14AE17955A54413333332393F250413D0AD7937D5A54417B14AEC78FF25041E17A144E7F5A544185EB51288CF25041E17A14EE805A5441
+</a>
+
+<b>
+010600000001000000010300000001000000170000004A9E57D87EF25041B6D5C81D925A544139113EFE7FF250416D38BBD3925A5441F46E7A3980F25041231A96FA925A544127E2C47D83F250417D21241F955A5441C910F2AF86F2504123AAA861975A54415B9A2F0988F2504174A42262985A544160D9477489F250414A2AE06F995A54411DA5F91A8DF250418FF9A45C9C5A5441244780A890F25041BD52F7569F5A544171AB7AB893F25041AF5A3640A25A54419E76EC7896F250411E725BF2A45A54419F76EC7896F250411F725BF2A45A5441A176EC7896F2504121725BF2A45A544152A962F296F25041E713EA75A55A5441E58E3E7F9CF2504106AEDE78AB5A54412A5FA5969BF250419D6FFC5EA95A54416770A70B97F250412CDF2B94A35A5441D47723B591F25041979F44699E5A5441904F06768BF2504107CDD32F995A54414127E93685F25041484B4C96945A544120AEE2577EF250414DD34AC8905A5441239D22A77CF2504154AC5AC2905A54414A9E57D87EF25041B6D5C81D925A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>26023 - 72813
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001700000085EB51288CF25041E17A14EE805A5441295C8FF27EF25041F6285C9F875A5441000000407AF2504152B81E758A5A5441EC51B8AE77F250419A9999498C5A5441E17A14EE77F250413D0AD7138E5A5441CDCCCC0C7EF25041D7A3708D915A5441EC51B8CE84F25041C3F528FC955A5441000000E08AF25041E17A147E9A5A5441AE47E1AA90F250418FC2F5589F5A5441D7A370DD95F25041A4703D4AA45A54418FC2F5F89AF25041000000D0A95A5441A4703DFAA1F25041F6285CCFB15A5441E17A145EA8F2504166666686B95A5441713D0AA7B4F250417B14AE07B05A5441EC51B82EBAF250418FC2F5B8AB5A5441D7A3702DBFF2504148E17AD4A75A5441D7A3703DB7F25041713D0A17A65A5441000000B0B0F250415C8FC275A05A544185EB5198AEF25041AE47E1FA9D5A544185EB51A8A7F250417B14AE17955A54413333332393F250413D0AD7937D5A54417B14AEC78FF25041E17A144E7F5A544185EB51288CF25041E17A14EE805A5441
+</a>
+
+<b>
+010600000001000000010300000001000000170000004A9E57D87EF25041B6D5C81D925A544139113EFE7FF250416D38BBD3925A5441F46E7A3980F25041231A96FA925A544127E2C47D83F250417D21241F955A5441C910F2AF86F2504123AAA861975A54415B9A2F0988F2504174A42262985A544160D9477489F250414A2AE06F995A54411DA5F91A8DF250418FF9A45C9C5A5441244780A890F25041BD52F7569F5A544171AB7AB893F25041AF5A3640A25A54419E76EC7896F250411E725BF2A45A54419F76EC7896F250411F725BF2A45A5441A176EC7896F2504121725BF2A45A544152A962F296F25041E713EA75A55A5441E58E3E7F9CF2504106AEDE78AB5A54412A5FA5969BF250419D6FFC5EA95A54416770A70B97F250412CDF2B94A35A5441D47723B591F25041979F44699E5A5441904F06768BF2504107CDD32F995A54414127E93685F25041484B4C96945A544120AEE2577EF250414DD34AC8905A5441239D22A77CF2504154AC5AC2905A54414A9E57D87EF25041B6D5C81D925A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>27114 - 1435197
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000008000000EC51B81E52E750411F85EB91F10755416666666653E75041C3F5287CE5075541295C8F7254E75041713D0AD7D9075541A4703D9A51E750415C8FC275D90755419A99996950E750413D0AD773D90755419A9999394AE750413D0AD793F3075541EC51B83E51E75041A4703D9AF2075541EC51B81E52E750411F85EB91F1075541
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000B8F2880652E75041B53A9267F1075541DD46706D52E7504186B5B4AAEE075541550F47DE52E75041CDDA5881EA0755411DFED77553E75041701679D0E4075541295C8F7254E75041713D0AD7D90755419F48BAB251E75041EBD279A4D9075541716EF87450E750411F705593D90755419A9999394AE750413D0AD793F307554179F7B20251E750418712EF88F2075541B8F2880652E75041B53A9267F1075541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>27114 - 3427108
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000008000000EC51B81E52E750411F85EB91F10755416666666653E75041C3F5287CE5075541295C8F7254E75041713D0AD7D9075541A4703D9A51E750415C8FC275D90755419A99996950E750413D0AD773D90755419A9999394AE750413D0AD793F3075541EC51B83E51E75041A4703D9AF2075541EC51B81E52E750411F85EB91F1075541
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000B8F2880652E75041B53A9267F1075541DD46706D52E7504186B5B4AAEE075541550F47DE52E75041CDDA5881EA0755411DFED77553E75041701679D0E4075541295C8F7254E75041713D0AD7D90755419F48BAB251E75041EBD279A4D9075541716EF87450E750411F705593D90755419A9999394AE750413D0AD793F307554179F7B20251E750418712EF88F2075541B8F2880652E75041B53A9267F1075541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>975080 - 3064194
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000010000000FCC98F05F17C5141D36C449BC482544130A930B4E77C5141B8ADAC75C58254417FE30BD4E37C5141712780B4C58254415902DAB4E27C5141A0300FAECE825441383A91B5E17C51415564360AD482544112595F96E07C5141480F0645DB825441C27D1238DE7C514194C7F41DE582544171FDE422DD7C5141FE491716EB825441E66E96DBDF7C514177043744EC825441E3852694E97C514121469BC3EF825441B8B40E90EE7C5141CFE4D18FF0825441791ED5C4F57C514134A6020CEF82544120B851EBF57C5141A050997DE58254418C2774EFF57C5141D5D3AF86D88254417B14AED7F57C514152B81E25C7825441FCC98F05F17C5141D36C449BC4825441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000000000C0F87C5141A4703D7AC88254417B14AED7F57C514152B81E25C78254410AD7A3F0F57C5141666666C6D4825441B81E85EBF57C5141713D0AF7E48254417B14AEE7F57C514148E17A04EF8254419A9999C9F57C5141C3F5288CF3825441295C8F42FA7C51411F85EBD1F28254413D0AD723F97C514148E17A54DE825441A4703DAAF87C5141CDCCCCECCD825441000000C0F87C5141A4703D7AC8825441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>975080 - 3356524
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000010000000FCC98F05F17C5141D36C449BC482544130A930B4E77C5141B8ADAC75C58254417FE30BD4E37C5141712780B4C58254415902DAB4E27C5141A0300FAECE825441383A91B5E17C51415564360AD482544112595F96E07C5141480F0645DB825441C27D1238DE7C514194C7F41DE582544171FDE422DD7C5141FE491716EB825441E66E96DBDF7C514177043744EC825441E3852694E97C514121469BC3EF825441B8B40E90EE7C5141CFE4D18FF0825441791ED5C4F57C514134A6020CEF82544120B851EBF57C5141A050997DE58254418C2774EFF57C5141D5D3AF86D88254417B14AED7F57C514152B81E25C7825441FCC98F05F17C5141D36C449BC4825441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000000000C0F87C5141A4703D7AC88254417B14AED7F57C514152B81E25C78254410AD7A3F0F57C5141666666C6D4825441B81E85EBF57C5141713D0AF7E48254417B14AEE7F57C514148E17A04EF8254419A9999C9F57C5141C3F5288CF3825441295C8F42FA7C51411F85EBD1F28254413D0AD723F97C514148E17A54DE825441A4703DAAF87C5141CDCCCCECCD825441000000C0F87C5141A4703D7AC8825441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>28199 - 244638
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001C000000295C8FE209005141C3F528AC3BEC54419A9999E90A005141E17A14AE3DEC544185EB51580E005141CDCCCC8C43EC54418FC2F56812005141EC51B85E43EC5441E17A144E14005141AE47E1BA43EC5441EC51B88E170051415C8FC24544EC54419A9999891A005141B81E855B45EC5441B81E856B1E0051415C8FC2B546EC5441713D0A37220051410AD7A34047EC54417B14AE17240051410AD7A34047EC5441F6285CCF2400514114AE47D145EC54413333331326005141C3F528FC44EC54418FC2F518260051411F85EBF13EEC5441E17A148E25005141666666263BEC544152B81EB52500514152B81EE539EC5441F6285C9F25005141EC51B85E38EC5441EC51B85E25005141333333E336EC5441713D0AA724005141B81E85BB35EC54418FC2F5A8230051410AD7A39033EC54418FC2F5A823005141EC51B84E31EC5441E17A148E25005141000000B02EEC5441F6285C4F24005141295C8F122BEC54410AD7A3A020005141F6285CFF28EC5441295C8FB21A0051410AD7A31028EC54415C8FC205150051413333334327EC5441A4703D8A0E005141713D0AA726EC54410AD7A3100D005141AE47E18A30EC5441295C8FE209005141C3F528AC3BEC5441
+</a>
+
+<b>
+010600000001000000010300000001000000140000008FC2F5A823005141EF1E414033EC54416BD231FA0D005141A47B2B7330EC54416595EBDC0C0051419869BDCB34EC5441007DCF6A0C005141F06F6B9639EC54410CF75BA50E00514134334C273DEC5441A31B86500F00514146EA1E7F40EC5441407DF61811005141E34B8F4742EC5441F43A9EE91D0051411C0F70D845EC5441A118CCC7240051417D391ED145EC54418EC9381326005141C3124DF644EC544143EACF1826005141E0C69A193FEC544156C54CA725005141F9AED2D63BEC5441E17A148E25005141666666263BEC5441EA7390B0250051419C83629339EC54416511FAAE25005141EF7DE77639EC5441058B2272250051417FCE305537EC5441EC51B85E25005141333333E336EC5441713D0AA724005141B81E85BB35EC54418FC2F5A8230051410AD7A39033EC54418FC2F5A823005141EF1E414033EC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>28199 - 351459
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001C000000295C8FE209005141C3F528AC3BEC54419A9999E90A005141E17A14AE3DEC544185EB51580E005141CDCCCC8C43EC54418FC2F56812005141EC51B85E43EC5441E17A144E14005141AE47E1BA43EC5441EC51B88E170051415C8FC24544EC54419A9999891A005141B81E855B45EC5441B81E856B1E0051415C8FC2B546EC5441713D0A37220051410AD7A34047EC54417B14AE17240051410AD7A34047EC5441F6285CCF2400514114AE47D145EC54413333331326005141C3F528FC44EC54418FC2F518260051411F85EBF13EEC5441E17A148E25005141666666263BEC544152B81EB52500514152B81EE539EC5441F6285C9F25005141EC51B85E38EC5441EC51B85E25005141333333E336EC5441713D0AA724005141B81E85BB35EC54418FC2F5A8230051410AD7A39033EC54418FC2F5A823005141EC51B84E31EC5441E17A148E25005141000000B02EEC5441F6285C4F24005141295C8F122BEC54410AD7A3A020005141F6285CFF28EC5441295C8FB21A0051410AD7A31028EC54415C8FC205150051413333334327EC5441A4703D8A0E005141713D0AA726EC54410AD7A3100D005141AE47E18A30EC5441295C8FE209005141C3F528AC3BEC5441
+</a>
+
+<b>
+010600000001000000010300000001000000140000008FC2F5A823005141EF1E414033EC54416BD231FA0D005141A47B2B7330EC54416595EBDC0C0051419869BDCB34EC5441007DCF6A0C005141F06F6B9639EC54410CF75BA50E00514134334C273DEC5441A31B86500F00514146EA1E7F40EC5441407DF61811005141E34B8F4742EC5441F43A9EE91D0051411C0F70D845EC5441A118CCC7240051417D391ED145EC54418EC9381326005141C3124DF644EC544143EACF1826005141E0C69A193FEC544156C54CA725005141F9AED2D63BEC5441E17A148E25005141666666263BEC5441EA7390B0250051419C83629339EC54416511FAAE25005141EF7DE77639EC5441058B2272250051417FCE305537EC5441EC51B85E25005141333333E336EC5441713D0AA724005141B81E85BB35EC54418FC2F5A8230051410AD7A39033EC54418FC2F5A823005141EF1E414033EC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>30107 - 3562788
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000C000000B81E857BC1495141D7A3705DE5875441D7A3708DD2495141EC51B84EDF8754413D0AD743CC4951418FC2F5A8BB875441D7A3707DC14951410AD7A3D0BF875441713D0A67B74951419A9999F9C3875441E17A14DEB3495141C3F528ECC7875441666666F6AD495141CDCCCC2CCB875441713D0A37AF4951410AD7A300CE875441CDCCCC2CB149514185EB51F8D48754410AD7A3A0B2495141CDCCCC0CDE8754413D0AD793B4495141AE47E1BAE4875441B81E857BC1495141D7A3705DE5875441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000009173E07AD249514156B14E55DF87544139919D7ED2495141A9B3D46ADF875441E5076EC9EF495141477FB315D58754410BE262C5EA4951414BAB0EFFB887544174994057EA495141D4E00213B9875441E18D2E58EA495141C313C918B9875441C9B39A3EEA495141E63FE421B98754416595489DCD495141993BC8D3C2875441CFDDF079CD495141B6401A87C2875441D7A3708DD2495141EC51B84EDF8754419173E07AD249514156B14E55DF875441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>32985 - 3456807
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000008000000A4703D7A64F450410AD7A3D0EF8C54411F85EB0172F45041A4703D2AD78C5441C3F5284C66F4504148E17AD4D28C54417B14AEB759F45041333333C3E98C5441F6285C0F4CF450417B14AEA7028D5441666666E64EF45041A4703DAA058D54417B14AEA755F450410AD7A3D00A8D5441A4703D7A64F450410AD7A3D0EF8C5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F0000003C5C991048F4504167186A6CFE8C544105E6691E4CF45041FE283E8C028D5441F926EB4155F45041A1EE33E4F18C544116F4721760F4504198109824DE8C54419F6B985066F45041B7EE27EBD28C5441666666C658F45041333333D3CD8C5441114789334DF450411BE0DB74C98C54419E588E344CF450416921C076CA8C54418C56314248F45041825742FDCF8C5441633C0F5538F4504128200F01E98C5441115096D435F45041A50894C9EC8C5441CDCCCC3C36F450419A999989ED8C544152B81EC53AF450418FC2F538EF8C544148E17A743CF4504166666656F08C54413C5C991048F4504167186A6CFE8C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>33482 - 160328
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000007000000333333739FF2504152B81EC5588E544152B81EB59CF250418FC2F5E8578E5441713D0A579DF2504152B81E85518E54411F85EB7192F250419A9999394F8E5441C3F528DC8EF250419A9999695F8E5441F6285C9F96F250418FC2F5F8708E5441333333739FF2504152B81EC5588E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000A0000001B08949C91F250412B31E9FC528E54411C212ADC8EF25041B23F98695F8E5441192B5C9F96F25041EB99F5F8708E5441FB91D3D699F2504196A93F27688E54417DB732739FF250417F0B20C5588E54416EC51DB59CF2504158EDF5E8578E5441B71411FE9CF25041E80BFF07558E54415B1F0A579DF2504147E81F85518E5441646AEB7192F250414D129A394F8E54411B08949C91F250412B31E9FC528E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>33482 - 271760
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000007000000333333739FF2504152B81EC5588E544152B81EB59CF250418FC2F5E8578E5441713D0A579DF2504152B81E85518E54411F85EB7192F250419A9999394F8E5441C3F528DC8EF250419A9999695F8E5441F6285C9F96F250418FC2F5F8708E5441333333739FF2504152B81EC5588E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000A0000001B08949C91F250412B31E9FC528E54411C212ADC8EF25041B23F98695F8E5441192B5C9F96F25041EB99F5F8708E5441FB91D3D699F2504196A93F27688E54417DB732739FF250417F0B20C5588E54416EC51DB59CF2504158EDF5E8578E5441B71411FE9CF25041E80BFF07558E54415B1F0A579DF2504147E81F85518E5441646AEB7192F250414D129A394F8E54411B08949C91F250412B31E9FC528E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>196413 - 3530818
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000D000000F6285C6FA853514185EB51E88CCC544152B81EB59D5351413D0AD7B391CC5441B81E85ABA65351411F85EB11A9CC544100000040AF535141B81E857BBFCC5441713D0A07B95351415C8FC205D9CC544100000050BB53514148E17AA4D4CC54410AD7A3C0BF5351415C8FC2C5CBCC5441666666B6C453514114AE47F1C2CC54410AD7A3A0C6535141713D0AA7BFCC54410AD7A3E0BF53514148E17A04AECC5441AE47E1BAB8535141713D0A579BCC544114AE4791B15351413D0AD7A388CC5441F6285C6FA853514185EB51E88CCC5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000E2485557B65351417F2C6301D2CC54411969BDD0B75351414B0E38DBD5CC544131CD3691C5535141A824EAE1BCCC54413BEE5846C4535141A2A97E81B9CC54410AD7A3E0BF53514148E17A04AECC5441AE47E1BAB8535141713D0A579BCC544114AE4791B15351413D0AD7A388CC5441F6285C6FA853514185EB51E88CCC544152B81EB59D5351413D0AD7B391CC5441B81E85ABA65351411F85EB11A9CC544100000040AF535141B81E857BBFCC5441E2485557B65351417F2C6301D2CC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>35047 - 20497
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000016000000D7A3705D5C3451419A999949212A554148E17A546B34514114AE4701232A5541295C8F526C3451415C8FC225232A55413D0AD7A375345141A4703D1A252A5541EC51B8AE8C345141D7A370DD2A2A5541CDCCCC3C9334514152B81E852C2A55410000002097345141AE47E12A2D2A554185EB51389C34514152B81EA52D2A55418FC2F5F89A345141E17A14DE242A5541B81E853B9B345141E17A14CE1D2A5541333333136E345141C3F5285C1C2A5541333333136D3451413D0AD7531C2A5541000000106B345141295C8F721C2A554152B81EE55F34514114AE47511C2A5541A4703D7A58345141D7A370AD1C2A554185EB51384A34514152B81EE51C2A554114AE47E149345141F6285CDF1D2A5541000000E048345141713D0AE71E2A5541EC51B8DE48345141295C8F22202A5541D7A3705D4A345141B81E85EB1F2A5541A4703D8A4E3451417B14AE47202A5541D7A3705D5C3451419A999949212A5541
+</a>
+
+<b>
+01060000000100000001030000000100000038000000B49B507D68345141409DA6B7232A5541578B2B94683451416B7DF9B9232A554134DF64826A345141F19033EC232A554161B0FEF26A34514187E2A2F7232A55414BAA5F356B345141218E60FE232A5541726A33466B345141EAF9FB80232A5541751E34506B345141CB906026232A554198E5C3546B345141DF930EFD222A5541A6CE9F266B3451419C6904FC222A55417F602DA16A34514176AAB3EC222A5541D93A67A4683451416C9A4FB2222A55413D24138366345141E18CB973222A554127691CFB64345141CC6FBD46222A554174ABBD2A6334514174FC7111222A554166EE3BB461345141D7C476E6212A5541258939F05F345141B97B96B2212A55412338643A5E345141F6B25680212A55412BB3659D5C3451412FB3F050212A55419F4E44735934514138F33813212A5541D3372F06573451415300F6E5202A5541260116D554345141881D12BD202A5541CD2858334F345141A5E60054202A5541C6161E504D345141CC0F982C202A5541930BB44E4B345141A9D35200202A55416C474B4A4A3451417DFF45EE1F2A5541001ED693493451417D5E8308202A5541B0CEB9DE48345141116D1729202A5541B5227FDE483451417DB90463202A5541513174DE48345141D18CD26D202A554140CB7ADD48345141D8110E64212A55416DB196FB48345141F8CA8C6B212A55416323A9E54A34514198ECBA84212A55415D1EEF0A4D3451416E31A59C212A55410C326F594E345141279335AB212A5541E46D379750345141950531C4212A5541B044A169533451419E21A5E3212A5541F3330D8854345141449F1DF0212A55410424F5F8553451417C7E2D00222A554125895A025634514151399600222A5541FEA25B8556345141FC694A06222A5541345F293A58345141E6144F19222A55415F7F6D9759345141E1C1E233222A55418611D6515A345141EE98D646222A554101F11FBD5B345141BE45C66B222A5541763F59165D34514153C2DF8E222A5541C5323D185F345141AC4C1FC3222A55412162EF535F345141641131C9222A55419EE4F5D75F345141036D9DD6222A5541B2D9B290613451412CF56C03232A55413A13FCAA6134514170211906232A5541E0DBB4546334514176D16131232A55415E388B836334514198E62436232A554149C0B41366345141DC7DDB78232A55415E898DDE6634514151307B8D232A5541E48BCDC567345141322AFEA4232A5541B49B507D68345141409DA6B7232A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>35047 - 66550
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000016000000D7A3705D5C3451419A999949212A554148E17A546B34514114AE4701232A5541295C8F526C3451415C8FC225232A55413D0AD7A375345141A4703D1A252A5541EC51B8AE8C345141D7A370DD2A2A5541CDCCCC3C9334514152B81E852C2A55410000002097345141AE47E12A2D2A554185EB51389C34514152B81EA52D2A55418FC2F5F89A345141E17A14DE242A5541B81E853B9B345141E17A14CE1D2A5541333333136E345141C3F5285C1C2A5541333333136D3451413D0AD7531C2A5541000000106B345141295C8F721C2A554152B81EE55F34514114AE47511C2A5541A4703D7A58345141D7A370AD1C2A554185EB51384A34514152B81EE51C2A554114AE47E149345141F6285CDF1D2A5541000000E048345141713D0AE71E2A5541EC51B8DE48345141295C8F22202A5541D7A3705D4A345141B81E85EB1F2A5541A4703D8A4E3451417B14AE47202A5541D7A3705D5C3451419A999949212A5541
+</a>
+
+<b>
+01060000000100000001030000000100000038000000B49B507D68345141409DA6B7232A5541578B2B94683451416B7DF9B9232A554134DF64826A345141F19033EC232A554161B0FEF26A34514187E2A2F7232A55414BAA5F356B345141218E60FE232A5541726A33466B345141EAF9FB80232A5541751E34506B345141CB906026232A554198E5C3546B345141DF930EFD222A5541A6CE9F266B3451419C6904FC222A55417F602DA16A34514176AAB3EC222A5541D93A67A4683451416C9A4FB2222A55413D24138366345141E18CB973222A554127691CFB64345141CC6FBD46222A554174ABBD2A6334514174FC7111222A554166EE3BB461345141D7C476E6212A5541258939F05F345141B97B96B2212A55412338643A5E345141F6B25680212A55412BB3659D5C3451412FB3F050212A55419F4E44735934514138F33813212A5541D3372F06573451415300F6E5202A5541260116D554345141881D12BD202A5541CD2858334F345141A5E60054202A5541C6161E504D345141CC0F982C202A5541930BB44E4B345141A9D35200202A55416C474B4A4A3451417DFF45EE1F2A5541001ED693493451417D5E8308202A5541B0CEB9DE48345141116D1729202A5541B5227FDE483451417DB90463202A5541513174DE48345141D18CD26D202A554140CB7ADD48345141D8110E64212A55416DB196FB48345141F8CA8C6B212A55416323A9E54A34514198ECBA84212A55415D1EEF0A4D3451416E31A59C212A55410C326F594E345141279335AB212A5541E46D379750345141950531C4212A5541B044A169533451419E21A5E3212A5541F3330D8854345141449F1DF0212A55410424F5F8553451417C7E2D00222A554125895A025634514151399600222A5541FEA25B8556345141FC694A06222A5541345F293A58345141E6144F19222A55415F7F6D9759345141E1C1E233222A55418611D6515A345141EE98D646222A554101F11FBD5B345141BE45C66B222A5541763F59165D34514153C2DF8E222A5541C5323D185F345141AC4C1FC3222A55412162EF535F345141641131C9222A55419EE4F5D75F345141036D9DD6222A5541B2D9B290613451412CF56C03232A55413A13FCAA6134514170211906232A5541E0DBB4546334514176D16131232A55415E388B836334514198E62436232A554149C0B41366345141DC7DDB78232A55415E898DDE6634514151307B8D232A5541E48BCDC567345141322AFEA4232A5541B49B507D68345141409DA6B7232A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>35114 - 3103112
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000022000000000000E0B933514185EB5148B62D5541B81E856BBC335141B81E856BB72D55419A999969BF3351411F85EB81B82D5541333333F3C2335141666666B6B92D55411F85EBE1C3335141713D0A87BA2D55417B14AE17C9335141000000E0C12D55418FC2F548C9335141CDCCCCECC22D554152B81E35C933514114AE4721C42D55411F85EBD1C833514152B81EA5C52D55411F85EB81C8335141B81E85BBC62D55413D0AD7B3C8335141EC51B86EC72D554133333353C9335141000000F0C72D554185EB5138CA335141B81E852BC82D5541E17A14EECB335141B81E857BC82D5541295C8F92CE3351418FC2F5E8C82D5541295C8F72D1335141295C8F42C92D5541AE47E10AD333514148E17A74C92D55415C8FC2E5D333514152B81E45CA2D5541E17A140ED43351418FC2F578CC2D554185EB5138DD3351413D0AD7B3CC2D5541A4703DAAE833514148E17AA4CD2D554166666636EF33514114AE47A1CE2D554152B81E75F53351411F85EB91CF2D554148E17A240134514166666616D02D5541CDCCCC3C0C3451418FC2F5F8CF2D55410AD7A3600C345141CDCCCC7CCC2D554148E17A940C3451415C8FC2F5C62D55413D0AD7831034514133333343BB2D5541C3F5288C00345141C3F528CCB72D5541F6285C2FE03351419A9999B9B02D55417B14AEA7C1335141CDCCCC0CAA2D554166666616BD33514148E17A44B12D554148E17AC4BB335141AE47E15AB32D5541000000E0B933514185EB5148B62D5541
+</a>
+
+<b>
+0106000000010000000103000000010000001300000014E38A94DA335141318CE1A2CC2D5541F3BD4434DB335141A5B2E3A6CC2D554163657C53DB335141DA0FC03FC42D554150B47946C8335141751EF7B8C02D55417B14AE17C9335141000000E0C12D55418FC2F548C9335141CDCCCCECC22D554152B81E35C933514114AE4721C42D55411F85EBD1C833514152B81EA5C52D55411F85EB81C8335141B81E85BBC62D55413D0AD7B3C8335141EC51B86EC72D554133333353C9335141000000F0C72D554185EB5138CA335141B81E852BC82D5541E17A14EECB335141B81E857BC82D5541295C8F92CE3351418FC2F5E8C82D5541295C8F72D1335141295C8F42C92D5541AE47E10AD333514148E17A74C92D55415C8FC2E5D333514152B81E45CA2D5541E17A140ED43351418FC2F578CC2D554114E38A94DA335141318CE1A2CC2D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>35114 - 3472545
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000022000000000000E0B933514185EB5148B62D5541B81E856BBC335141B81E856BB72D55419A999969BF3351411F85EB81B82D5541333333F3C2335141666666B6B92D55411F85EBE1C3335141713D0A87BA2D55417B14AE17C9335141000000E0C12D55418FC2F548C9335141CDCCCCECC22D554152B81E35C933514114AE4721C42D55411F85EBD1C833514152B81EA5C52D55411F85EB81C8335141B81E85BBC62D55413D0AD7B3C8335141EC51B86EC72D554133333353C9335141000000F0C72D554185EB5138CA335141B81E852BC82D5541E17A14EECB335141B81E857BC82D5541295C8F92CE3351418FC2F5E8C82D5541295C8F72D1335141295C8F42C92D5541AE47E10AD333514148E17A74C92D55415C8FC2E5D333514152B81E45CA2D5541E17A140ED43351418FC2F578CC2D554185EB5138DD3351413D0AD7B3CC2D5541A4703DAAE833514148E17AA4CD2D554166666636EF33514114AE47A1CE2D554152B81E75F53351411F85EB91CF2D554148E17A240134514166666616D02D5541CDCCCC3C0C3451418FC2F5F8CF2D55410AD7A3600C345141CDCCCC7CCC2D554148E17A940C3451415C8FC2F5C62D55413D0AD7831034514133333343BB2D5541C3F5288C00345141C3F528CCB72D5541F6285C2FE03351419A9999B9B02D55417B14AEA7C1335141CDCCCC0CAA2D554166666616BD33514148E17A44B12D554148E17AC4BB335141AE47E15AB32D5541000000E0B933514185EB5148B62D5541
+</a>
+
+<b>
+0106000000010000000103000000010000001300000014E38A94DA335141318CE1A2CC2D5541F3BD4434DB335141A5B2E3A6CC2D554163657C53DB335141DA0FC03FC42D554150B47946C8335141751EF7B8C02D55417B14AE17C9335141000000E0C12D55418FC2F548C9335141CDCCCCECC22D554152B81E35C933514114AE4721C42D55411F85EBD1C833514152B81EA5C52D55411F85EB81C8335141B81E85BBC62D55413D0AD7B3C8335141EC51B86EC72D554133333353C9335141000000F0C72D554185EB5138CA335141B81E852BC82D5541E17A14EECB335141B81E857BC82D5541295C8F92CE3351418FC2F5E8C82D5541295C8F72D1335141295C8F42C92D5541AE47E10AD333514148E17A74C92D55415C8FC2E5D333514152B81E45CA2D5541E17A140ED43351418FC2F578CC2D554114E38A94DA335141318CE1A2CC2D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>35309 - 21138
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002D00000048E17AC43C32514148E17AB4782C5541E17A145E42325141D7A3703D7B2C5541295C8FF2443251418FC2F5D87A2C5541A4703D7A49325141666666D67B2C55413D0AD773533251418FC2F528822C55415C8FC255613251410AD7A3C0872C5541000000A06A3251410AD7A3808D2C55413D0AD7336C3251418FC2F578902C55415C8FC2556E325141C3F528BC8F2C5541000000706E3251415C8FC235982C5541D7A370DD70325141EC51B84E9C2C55413D0AD7237732514166666686A52C5541C3F5289C6C325141F6285CDFB62C5541F6285CCF6E325141A4703D8AB62C5541EC51B8FE72325141D7A370BDB72C55417B14AEB77632514114AE4721B82C554148E17AD47A325141E17A14BEB92C5541333333137F325141F6285CAFB42C554148E17A44813251415C8FC255AF2C55410000005082325141666666A6AC2C5541666666B683325141295C8F32AA2C5541666666468532514152B81EF5A72C55410000008089325141295C8F72A42C5541D7A370BD8B32514133333323A22C55413D0AD7038932514148E17A849C2C5541295C8F5282325141295C8F829D2C55417B14AED77F32514185EB51689E2C55418FC2F5D87C325141E17A147E9F2C5541E17A146E7A325141D7A370ED9F2C55419A9999C978325141295C8FA29F2C5541D7A370AD773251410AD7A3709F2C55415C8FC2B57632514148E17A449F2C5541D7A370ED723251415C8FC2959A2C554148E17A247132514185EB51B8962C5541A4703D0A6F3251419A999969882C5541E17A141E6F3251411F85EBE1832C5541EC51B8EE703251415C8FC275812C55417B14AEB770325141295C8FD27E2C55418FC2F56871325141EC51B8BE7C2C554100000030723251413D0AD7937B2C5541CDCCCC1C5F325141EC51B8EE682C5541CDCCCC8C593251410AD7A3F06A2C5541B81E85FB50325141F6285C4F6E2C55417B14AE9744325141AE47E1EA732C554148E17AC43C32514148E17AB4782C5541
+</a>
+
+<b>
+01060000000100000001030000000100000011000000106B8EEE6832514161B65C748C2C5541778EF64C67325141CF0AFC58862C5541E8DCA88B61325141FEAB7FDF872C55415D2A447862325141068B7274882C55416A3C20E4623251411CE634B7882C5541557D4D9563325141808CDE24892C5541F02C873964325141610B848A892C554120FA216564325141AD3481A5892C5541971F8D1B65325141E76969168A2C5541D656643165325141BF11EE238A2C5541C6266B4E66325141398558D48A2C554115AEA39B66325141812724048B2C5541D0CE633867325141344329658B2C5541B7CC6354673251411FDB7D768B2C5541D06DEA786832514180918C2B8C2C5541B586798C683251419AE6092C8C2C5541106B8EEE6832514161B65C748C2C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>35309 - 66999
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002D00000048E17AC43C32514148E17AB4782C5541E17A145E42325141D7A3703D7B2C5541295C8FF2443251418FC2F5D87A2C5541A4703D7A49325141666666D67B2C55413D0AD773533251418FC2F528822C55415C8FC255613251410AD7A3C0872C5541000000A06A3251410AD7A3808D2C55413D0AD7336C3251418FC2F578902C55415C8FC2556E325141C3F528BC8F2C5541000000706E3251415C8FC235982C5541D7A370DD70325141EC51B84E9C2C55413D0AD7237732514166666686A52C5541C3F5289C6C325141F6285CDFB62C5541F6285CCF6E325141A4703D8AB62C5541EC51B8FE72325141D7A370BDB72C55417B14AEB77632514114AE4721B82C554148E17AD47A325141E17A14BEB92C5541333333137F325141F6285CAFB42C554148E17A44813251415C8FC255AF2C55410000005082325141666666A6AC2C5541666666B683325141295C8F32AA2C5541666666468532514152B81EF5A72C55410000008089325141295C8F72A42C5541D7A370BD8B32514133333323A22C55413D0AD7038932514148E17A849C2C5541295C8F5282325141295C8F829D2C55417B14AED77F32514185EB51689E2C55418FC2F5D87C325141E17A147E9F2C5541E17A146E7A325141D7A370ED9F2C55419A9999C978325141295C8FA29F2C5541D7A370AD773251410AD7A3709F2C55415C8FC2B57632514148E17A449F2C5541D7A370ED723251415C8FC2959A2C554148E17A247132514185EB51B8962C5541A4703D0A6F3251419A999969882C5541E17A141E6F3251411F85EBE1832C5541EC51B8EE703251415C8FC275812C55417B14AEB770325141295C8FD27E2C55418FC2F56871325141EC51B8BE7C2C554100000030723251413D0AD7937B2C5541CDCCCC1C5F325141EC51B8EE682C5541CDCCCC8C593251410AD7A3F06A2C5541B81E85FB50325141F6285C4F6E2C55417B14AE9744325141AE47E1EA732C554148E17AC43C32514148E17AB4782C5541
+</a>
+
+<b>
+01060000000100000001030000000100000011000000106B8EEE6832514161B65C748C2C5541778EF64C67325141CF0AFC58862C5541E8DCA88B61325141FEAB7FDF872C55415D2A447862325141068B7274882C55416A3C20E4623251411CE634B7882C5541557D4D9563325141808CDE24892C5541F02C873964325141610B848A892C554120FA216564325141AD3481A5892C5541971F8D1B65325141E76969168A2C5541D656643165325141BF11EE238A2C5541C6266B4E66325141398558D48A2C554115AEA39B66325141812724048B2C5541D0CE633867325141344329658B2C5541B7CC6354673251411FDB7D768B2C5541D06DEA786832514180918C2B8C2C5541B586798C683251419AE6092C8C2C5541106B8EEE6832514161B65C748C2C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>196543 - 195292
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000011000000C3F528DC765251413D0AD7E34ACE5441A4703D2A75525141295C8F425CCE5441D7A3707D73525141E17A146E6DCE54418FC2F5487E525141D7A3709D73CE54418FC2F5588352514152B81E8576CE54416666662690525141E17A14DE7DCE5441CDCCCC9C9552514185EB518880CE544148E17AF49752514114AE478168CE54417B14AEE799525141EC51B87E54CE5441AE47E18A98525141E17A14AE53CE5441C3F528FC965251413333336353CE5441F6285C2F9352514148E17AB452CE54418FC2F5F88F525141EC51B81E52CE54410AD7A3708D525141B81E85BB51CE54419A9999398A525141CDCCCC0C51CE54410AD7A350875251417B14AE174ECE5441C3F528DC765251413D0AD7E34ACE5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000DEA4B7EB97525141400229DB68CE5441CDCCCC9C9552514185EB518880CE5441295C8FC2985251411F85EB1182CE544152B81E45A05251417B14AE4785CE5441666666B6A25251410AD7A3506CCE544139043771A45251417A2F6CA45ACE544119B9D9DBA452514176118D0C56CE5441C52A52AE9F525141FB7E266654CE54417B34B9E19952514128E2D7BB54CE544136B137989852514100B314F161CE54412A5F060098525141203E72A768CE5441DEA4B7EB97525141400229DB68CE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>196543 - 353915
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000011000000C3F528DC765251413D0AD7E34ACE5441A4703D2A75525141295C8F425CCE5441D7A3707D73525141E17A146E6DCE54418FC2F5487E525141D7A3709D73CE54418FC2F5588352514152B81E8576CE54416666662690525141E17A14DE7DCE5441CDCCCC9C9552514185EB518880CE544148E17AF49752514114AE478168CE54417B14AEE799525141EC51B87E54CE5441AE47E18A98525141E17A14AE53CE5441C3F528FC965251413333336353CE5441F6285C2F9352514148E17AB452CE54418FC2F5F88F525141EC51B81E52CE54410AD7A3708D525141B81E85BB51CE54419A9999398A525141CDCCCC0C51CE54410AD7A350875251417B14AE174ECE5441C3F528DC765251413D0AD7E34ACE5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000DEA4B7EB97525141400229DB68CE5441CDCCCC9C9552514185EB518880CE5441295C8FC2985251411F85EB1182CE544152B81E45A05251417B14AE4785CE5441666666B6A25251410AD7A3506CCE544139043771A45251417A2F6CA45ACE544119B9D9DBA452514176118D0C56CE5441C52A52AE9F525141FB7E266654CE54417B34B9E19952514128E2D7BB54CE544136B137989852514100B314F161CE54412A5F060098525141203E72A768CE5441DEA4B7EB97525141400229DB68CE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>196861 - 58740
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000D0000008FC2F5F8914351417B14AE77B3C654413D0AD72390435141295C8F12B3C65441F6285CCF8C435141B81E850BB6C6544185EB516887435141C3F5280CBBC654413333335387435141295C8F82BDC65441A4703DAA8E435141C3F5286CC0C65441713D0A0794435141E17A143EC1C65441D7A370CD9E4351410AD7A320BEC6544152B81E85AB435141A4703DFABDC65441B81E854BAE435141713D0A67BCC65441AE47E17AAD4351418FC2F568B9C6544148E17A649A4351419A999949B5C654418FC2F5F8914351417B14AE77B3C65441
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000D7A370CD9E4351410AD7A320BEC65441ACEE16BFA5435141B74BAC0BBEC6544119D37431A643514140F8520ABEC654415247F760A64351413184C309BEC654417D9DF6B4AA43514104F6B1FCBDC65441205BCAACAB4351412F6EB9E3BDC654415CC8EB7EAC435141AC06766CBDC654418454B593AC43514135B0A960BDC654419F333C19AE435141B07D9483BCC654416DF0C82BAE435141D30A84F2BBC65441D12118AFAD43514184E3AD28BAC65441C1C7E697AD435141843E85D3B9C65441BBE3D24BAD435141FBFDCB5EB9C65441500BB7D5AB435141D047FF0DB9C6544148E17A649A4351419A999949B5C6544175334C2794435141E4A55DF0B3C654416EF219BC934351410CF331D9B3C65441A2075187914351418F112F5FB3C654412ADC84EC8F4351413220F143B3C65441E1DD1F7F8F435141B69397A5B3C65441D6C8A7F68D435141F13DED03B5C65441502FC4338D435141829CE4B1B5C6544100F4C4DA8C43514140E55501B6C6544143FF684E8B435141FBDEF76FB7C65441CD1298078A435141C242969EB8C65441A1768C84894351413A03EE17B9C654416324ED5C894351410E539E3CB9C654413675F8B388435141BA9610D9B9C6544189AB97A68843514154CE73E5B9C65441F96F4A67874351414A84E12ABBC654413333335387435141295C8F82BDC65441CA44C7DB884351417A9F551EBEC654411EBDDB918C4351419B1B5397BFC65441A6F876FA8C4351414310D5C0BFC6544192F3C43A8D4351417D2659DABFC654416C26C01592435141C6A009F2C0C65441AC5D66799443514107E5041DC1C654411102B36B9543514167B7F8D6C0C6544101AE0A5D9B435141A4AA281FBFC6544124172ED49C435141194CB5B2BEC654413A52E1A79D43514158B88175BEC65441D7A370CD9E4351410AD7A320BEC65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>220784 - 5232784
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002D0000005C8FC295F0365141A4703DEAD4B45441AE47E18AEE365141295C8FE2D5B4544114AE47A1EE365141EC51B80ED6B45441F6285C7FEB3651415C8FC2B5D8B454411F85EB81E8365141A4703DBADBB454415C8FC255E8365141295C8F62DBB45441295C8F92E0365141D7A3707DE4B454410AD7A380DD365141EC51B80EE9B454415C8FC235DB365141295C8F62ECB4544114AE4701D936514114AE47B1F0B454411F85EBB1D63651417B14AEB7F6B454410AD7A320D5365141CDCCCC9CFAB45441713D0A57CF3651419A9999B907B55441E17A147ECC365141CDCCCCCC0CB554410AD7A380CA36514185EB517810B554413D0AD7B3C63651413D0AD7A317B55441A4703D0AC536514148E17AB41BB5544166666616C4365141B81E854B1FB55441D7A3707DC3365141295C8FE222B554419A9999A9C3365141666666362CB554419A999949DD365141C3F5280C31B554419A9999A9F93651417B14AE6736B55441CDCCCC5CED365141666666D620B5544185EB5188EE3651411F85EBB120B554418FC2F5F8F036514152B81E6520B55441E17A14BEF2365141D7A3702D20B55441C3F5287CF336514185EB511820B55441713D0AD7F7365141B81E859B1FB554417B14AE97FB365141000000301FB55441A4703DCA03375141295C8F621DB554411F85EB51053751413D0AD7E31CB554418FC2F5B814375141295C8F823BB55441C3F5283C25375141000000A03EB554415C8FC275363751417B14AEE73AB55441713D0AF7463751417B14AE5737B554417B14AE9744375141B81E855B1CB55441666666E6423751418FC2F56811B55441E17A14EE4137514148E17A240BB55441CDCCCC6C3E375141A4703D6AF7B45441D7A3706D3C3751413D0AD723EDB45441EC51B80E3A3751411F85EB91E5B454415C8FC2051037514114AE4731F1B454410000005006375141D7A3709DC8B454419A999999FC3651419A9999C9CDB454415C8FC295F0365141A4703DEAD4B45441
+</a>
+
+<b>
+0106000000010000000103000000010000001E00000076C8C304113751416C4034471AB55441161F5F533237514126D93E5B14B55441553DAC65323751410F9B0A5814B55441666666E6423751418FC2F56811B55441B0A45A7E423751410C13AFC80EB554419DDEC62A423751418DB3A9AC0CB55441B82B57F141375141E5198C390BB55441EF52487E4137514167893DAF08B554413A775A1E403751414D5872F200B554412C2A41963E3751414CF28F53F8B4544113C74BA93C375141912FBC57EEB4544105ABF46F3C37514106E0C730EDB45441DDCB092F3C3751417F199E5CECB45441B7C98FF53937514175D78442E5B4544161DFAF940F3751416DDFE961F1B45441C8EC7BF204375141EF689873C9B45441E4BE1BF9FD36514176571D20CDB45441E54FD1E1FC365141AC0C3EB3CDB45441461CD6AAFB365141AB5F6168CEB45441AF6ABBC7F43651411B75A173D2B45441EB652D20F13651415AFFF698D4B45441F603D181F0365141DF1AB6F3D4B45441978E5109F0365141E3D0EF2CD5B454413FD965BEEF365141B16A8450D5B45441AE47E18AEE365141295C8FE2D5B4544114AE47A1EE365141EC51B80ED6B4544123A1CA66FA365141D07C106BEDB454412E3F0C4C06375141511C680605B55441F55E24C80A37514150B9CFEC0DB5544176C8C304113751416C4034471AB55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>197082 - 1308793
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000003000000200000009A9999E9644451418FC2F57893C254417B14AE476B4451413D0AD74388C254415C8FC2F56B4451410AD7A37084C2544114AE47D16B44514148E17A247FC254413D0AD7936944514152B81E357AC25441F6285C1F65445141F6285CEF71C25441333333C36B445141D7A3708D6DC254417B14AE576A44514148E17AE46CC254417B14AE7768445141A4703D9A6BC254417B14AE9766445141666666F669C2544100000040644451416666661668C25441C3F5289C6144514185EB510866C254415C8FC2D55A44514114AE47816AC254418FC2F59855445141B81E850B6FC25441AE47E1AA50445141F6285CDF74C254411F85EB614E4451413333332378C2544152B81E554C4451410AD7A3A07DC2544185EB51084B44514152B81E0580C25441AE47E19A4A44514148E17AD482C25441D7A3709D49445141000000F089C25441713D0A374A445141295C8F928FC254419A9999A9544451410AD7A36087C25441000000605344514148E17A2487C2544185EB5108534451410000008085C254410000006053445141CDCCCCCC84C25441B81E858B544451410AD7A3A083C254411F85EB1156445141EC51B8CE82C254415C8FC2C5564451416666664683C254417B14AE375A445141EC51B8FE85C25441295C8FA25F445141CDCCCC6C8FC25441C3F5286C634451419A99998999C254419A9999E9644451418FC2F57893C254410A000000B81E851B5B44514185EB514881C254417B14AE475C44514185EB515880C254413D0AD7635E4451416666667680C254413D0AD7436044514148E17A8481C254419A9999C961445141A4703D0A83C254419A9999D9604451416666662685C254417B14AE175F44514148E17A3486C254413D0AD7735D4451416666661686C25441B81E850B5C44514148E17A6483C25441B81E851B5B44514185EB514881C254410E0000009A99998956445141295C8F027CC25441E17A141E5944514185EB51A87BC25441000000005944514185EB51987CC254411F85EB0157445141295C8FF27CC254415C8FC2D555445141295C8FE27DC254410000005054445141295C8FD27EC254413D0AD733524451410AD7A3E07FC2544152B81EC54D445141713D0A1782C254413D0AD7834D44514185EB514881C254413D0AD7834D445141CDCCCC2C7FC25441E17A14CE4E445141666666967EC254411F85EB615144514148E17AC47DC254419A9999B953445141295C8FF27CC254419A99998956445141295C8F027CC25441
+</a>
+
+<b>
+0106000000010000000103000000010000002D000000C3F5286C634451419A99998999C254419A9999E9644451418FC2F57893C254417B14AE476B4451413D0AD74388C25441389A53946B445141F6F9B39486C254410C0BE6F06B4451414C3FFC8B84C25441A536037268445141EFA6194C84C25441120326D463445141B1A3ADC483C254418B9C314A624451418230ECF583C254415825CC91604451417D80805185C2544115F4260F5E4451418FDB875185C25441A663830A5C44514163D0366283C254412F9FD71F5B445141BD96FDA681C2544116AF10EC59445141B8666F6981C254416605E9D058445141F1394DB381C254411872D29057445141CC26A85F82C254415C8FC2C5564451416666664683C2544100000030564451410AD7A38085C25441333333F355445141F6285CFF86C254419A9999A9544451410AD7A36087C25441000000605344514148E17A2487C2544185EB5108534451410000008085C25441EC37DC8453445141306BDCA784C25441E843675352445141F322EDB282C254410A1F3FBE5044514102A7F1C980C2544160C719C54D445141C797FA1682C25441AE47E19A4A44514148E17AD482C25441D7A3709D49445141000000F089C25441713D0A374A445141295C8F928FC254413D0AD7534A44514152B81EC592C25441AE47E14A474451418FC2F5F89CC254417B14AE4742445141713D0A67A4C25441666666E6384451413D0AD793ADC25441713D0A5734445141D7A3703DB5C25441EC51B81E384451417B14AED7B4C254417B14AEB73C445141A4703D3AB5C254410AD7A3B04344514152B81E55B7C25441B81E850B49445141D7A370EDB8C25441B81E850B4E44514100000030B9C25441A4703D8A52445141E17A14EEB7C25441A4703DAA59445141000000D0B3C25441B81E855B60445141000000D0AEC25441B81E857B6644514148E17A54AAC254418FC2F5C8694451417B14AE47A7C2544152B81E356A4451413D0AD7B3A6C25441C3F5286C634451419A99998999C25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>197082 - 3591090
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000003000000200000009A9999E9644451418FC2F57893C254417B14AE476B4451413D0AD74388C254415C8FC2F56B4451410AD7A37084C2544114AE47D16B44514148E17A247FC254413D0AD7936944514152B81E357AC25441F6285C1F65445141F6285CEF71C25441333333C36B445141D7A3708D6DC254417B14AE576A44514148E17AE46CC254417B14AE7768445141A4703D9A6BC254417B14AE9766445141666666F669C2544100000040644451416666661668C25441C3F5289C6144514185EB510866C254415C8FC2D55A44514114AE47816AC254418FC2F59855445141B81E850B6FC25441AE47E1AA50445141F6285CDF74C254411F85EB614E4451413333332378C2544152B81E554C4451410AD7A3A07DC2544185EB51084B44514152B81E0580C25441AE47E19A4A44514148E17AD482C25441D7A3709D49445141000000F089C25441713D0A374A445141295C8F928FC254419A9999A9544451410AD7A36087C25441000000605344514148E17A2487C2544185EB5108534451410000008085C254410000006053445141CDCCCCCC84C25441B81E858B544451410AD7A3A083C254411F85EB1156445141EC51B8CE82C254415C8FC2C5564451416666664683C254417B14AE375A445141EC51B8FE85C25441295C8FA25F445141CDCCCC6C8FC25441C3F5286C634451419A99998999C254419A9999E9644451418FC2F57893C254410A000000B81E851B5B44514185EB514881C254417B14AE475C44514185EB515880C254413D0AD7635E4451416666667680C254413D0AD7436044514148E17A8481C254419A9999C961445141A4703D0A83C254419A9999D9604451416666662685C254417B14AE175F44514148E17A3486C254413D0AD7735D4451416666661686C25441B81E850B5C44514148E17A6483C25441B81E851B5B44514185EB514881C254410E0000009A99998956445141295C8F027CC25441E17A141E5944514185EB51A87BC25441000000005944514185EB51987CC254411F85EB0157445141295C8FF27CC254415C8FC2D555445141295C8FE27DC254410000005054445141295C8FD27EC254413D0AD733524451410AD7A3E07FC2544152B81EC54D445141713D0A1782C254413D0AD7834D44514185EB514881C254413D0AD7834D445141CDCCCC2C7FC25441E17A14CE4E445141666666967EC254411F85EB615144514148E17AC47DC254419A9999B953445141295C8FF27CC254419A99998956445141295C8F027CC25441
+</a>
+
+<b>
+0106000000010000000103000000010000002D000000C3F5286C634451419A99998999C254419A9999E9644451418FC2F57893C254417B14AE476B4451413D0AD74388C25441389A53946B445141F6F9B39486C254410C0BE6F06B4451414C3FFC8B84C25441A536037268445141EFA6194C84C25441120326D463445141B1A3ADC483C254418B9C314A624451418230ECF583C254415825CC91604451417D80805185C2544115F4260F5E4451418FDB875185C25441A663830A5C44514163D0366283C254412F9FD71F5B445141BD96FDA681C2544116AF10EC59445141B8666F6981C254416605E9D058445141F1394DB381C254411872D29057445141CC26A85F82C254415C8FC2C5564451416666664683C2544100000030564451410AD7A38085C25441333333F355445141F6285CFF86C254419A9999A9544451410AD7A36087C25441000000605344514148E17A2487C2544185EB5108534451410000008085C25441EC37DC8453445141306BDCA784C25441E843675352445141F322EDB282C254410A1F3FBE5044514102A7F1C980C2544160C719C54D445141C797FA1682C25441AE47E19A4A44514148E17AD482C25441D7A3709D49445141000000F089C25441713D0A374A445141295C8F928FC254413D0AD7534A44514152B81EC592C25441AE47E14A474451418FC2F5F89CC254417B14AE4742445141713D0A67A4C25441666666E6384451413D0AD793ADC25441713D0A5734445141D7A3703DB5C25441EC51B81E384451417B14AED7B4C254417B14AEB73C445141A4703D3AB5C254410AD7A3B04344514152B81E55B7C25441B81E850B49445141D7A370EDB8C25441B81E850B4E44514100000030B9C25441A4703D8A52445141E17A14EEB7C25441A4703DAA59445141000000D0B3C25441B81E855B60445141000000D0AEC25441B81E857B6644514148E17A54AAC254418FC2F5C8694451417B14AE47A7C2544152B81E356A4451413D0AD7B3A6C25441C3F5286C634451419A99998999C25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>887075 - 2130791
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000031000000AE47E18A2CAB5041A4703D8A521D54411F85EB912BAB5041EC51B83E511D5441C3F5283C2AAB5041295C8FC24F1D5441B81E85CB27AB5041713D0A874D1D544148E17AC425AB50411F85EBF14B1D5441B81E85AB23AB5041F6285C8F4A1D54417B14AE7721AB50411F85EB81491D544114AE47111FAB5041CDCCCCAC481D5441000000501CAB5041EC51B80E481D5441EC51B85E1AAB5041EC51B8CE471D5441713D0A9718AB5041AE47E12A4F1D5441CDCCCCAC15AB5041AE47E15A561D544114AE47C112AB50410AD7A3905D1D54417B14AEC70FAB50419A9999C9641D5441F6285C9F08AB504185EB51E86B1D54411F85EB4106AB5041EC51B84E731D5441666666E603AB5041F6285CAF7A1D5441C3F5288C01AB50419A999909821D54410AD7A330FFAA50419A999969891D5441AE47E1BAFEAA5041295C8FE28A1D5441B81E855B00AB5041713D0AD78D1D5441F6285C0F01AB5041CDCCCCAC8D1D54413333330304AB5041C3F528FC8C1D5441A4703DBA06AB5041713D0A978C1D5441000000600DAB50413D0AD7F38B1D544152B81E450FAB504152B81E858B1D5441E17A14FE10AB504185EB51B88A1D5441713D0A5712AB504166666686891D5441F6285C3F13AB5041295C8F42881D54413333334314AB5041B81E85FB851D544114AE471115AB504185EB5188831D54419A9999D916AB5041713D0A077D1D544114AE47B118AB5041A4703DBA761D5441F6285CCF1AAB5041AE47E1BA6F1D544185EB51981CAB504148E17A04691D54415C8FC2B51EAB5041295C8FB25F1D54417B14AE071FAB5041CDCCCCAC5E1D5441B81E853B1CAB50411F85EBB15D1D5441333333E31CAB5041000000A05B1D5441F6285CAF1FAB50415C8FC2955C1D5441CDCCCCAC20AB504114AE47715A1D5441E17A141E22AB5041AE47E19A581D54410AD7A3B023AB50419A999939571D54413D0AD74325AB5041CDCCCC3C561D5441EC51B80E27AB5041D7A3706D551D54415C8FC2B52AAB504133333373541D5441B81E850B2CAB50417B14AED7531D5441713D0A772CAB50413D0AD753531D5441AE47E18A2CAB5041A4703D8A521D5441
+</a>
+
+<b>
+01060000000100000001030000000100000036000000CDCCCC4CF8AA50411F85EBB1851D5441F6285CFFF9AA5041C3F5286C861D5441713D0AC7FBAA5041295C8FA2871D5441713D0AC7FDAA5041000000A0891D54410AD7A330FFAA50419A999969891D5441B81E855B00AB5041713D0AD78D1D5441F0E9FB1E05AB50411971DFD28C1D54418D6351DC09AB504167C21E4A8C1D54411831FABF0DAB5041D154EFDD8B1D5441F4EF264110AB504121DF10108B1D5441139B65B312AB504128FBA805891D54410C3F328A14AB504101C37123851D5441BFC30A4216AB5041738021307F1D54418738A0D018AB5041A581A752761D5441010635491BAB5041CD62ACF06D1D5441FA722A861DAB5041A54E62EC641D5441833E61161FAB50412DA31E7E5E1D54413775AF3B1CAB50414338C78A5D1D5441860F03E71CAB5041A94054CD5B1D5441C13DD6DB1FAB5041577881355C1D5441030232D020AB50417D3D31445A1D54415F110EE521AB5041782D85E3581D5441C86AFEE223AB5041AB69071A571D5441544485C425AB5041D5C5A602561D54415807C6C027AB5041D0D6C93D551D5441E3996BE82AAB5041C58E255C541D5441A17E61602CAB5041D4DB9F6F531D5441ED1C37082CAB5041498B3EDC511D544166B4CF3729AB5041DD055AD44E1D5441044A952A27AB50410F096D094D1D54415A0AF24F25AB5041D699F8A44B1D5441BBE3A79A23AB5041241A4D874A1D5441E80AC97D21AB50412368D684491D5441281F81031FAB5041525DB6A9481D544158FD8BF51CAB50418048D333481D5441EC51B85E1AAB5041EC51B8CE471D54417B14AEF718AB5041EC51B8AE471D5441B81E851B15AB5041B81E85AB471D5441D7A3705D11AB5041333333D3471D544114AE472109AB504152B81E95481D5441AE47E12A00AB504185EB51D8471D5441D7A3701DF6AA50415C8FC2F5461D54410AD7A380F7AA50419A9999A95A1D5441713D0AD7F7AA5041333333B3601D54417B14AE67F8AA5041CDCCCC3C631D5441CDCCCCCCF8AA50413D0AD753651D5441EC51B84EF9AA5041EC51B83E671D54410AD7A3D0F9AA5041333333D3681D5441C3F5288CFAAA504148E17A846A1D5441CDCCCC1CFBAA5041AE47E19A6C1D544133333373FBAA50417B14AE776E1D544185EB5148FBAA504185EB51986F1D5441E17A140EFBAA504100000010711D5441CDCCCC4CF8AA50411F85EBB1851D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>887075 - 3557024
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000031000000AE47E18A2CAB5041A4703D8A521D54411F85EB912BAB5041EC51B83E511D5441C3F5283C2AAB5041295C8FC24F1D5441B81E85CB27AB5041713D0A874D1D544148E17AC425AB50411F85EBF14B1D5441B81E85AB23AB5041F6285C8F4A1D54417B14AE7721AB50411F85EB81491D544114AE47111FAB5041CDCCCCAC481D5441000000501CAB5041EC51B80E481D5441EC51B85E1AAB5041EC51B8CE471D5441713D0A9718AB5041AE47E12A4F1D5441CDCCCCAC15AB5041AE47E15A561D544114AE47C112AB50410AD7A3905D1D54417B14AEC70FAB50419A9999C9641D5441F6285C9F08AB504185EB51E86B1D54411F85EB4106AB5041EC51B84E731D5441666666E603AB5041F6285CAF7A1D5441C3F5288C01AB50419A999909821D54410AD7A330FFAA50419A999969891D5441AE47E1BAFEAA5041295C8FE28A1D5441B81E855B00AB5041713D0AD78D1D5441F6285C0F01AB5041CDCCCCAC8D1D54413333330304AB5041C3F528FC8C1D5441A4703DBA06AB5041713D0A978C1D5441000000600DAB50413D0AD7F38B1D544152B81E450FAB504152B81E858B1D5441E17A14FE10AB504185EB51B88A1D5441713D0A5712AB504166666686891D5441F6285C3F13AB5041295C8F42881D54413333334314AB5041B81E85FB851D544114AE471115AB504185EB5188831D54419A9999D916AB5041713D0A077D1D544114AE47B118AB5041A4703DBA761D5441F6285CCF1AAB5041AE47E1BA6F1D544185EB51981CAB504148E17A04691D54415C8FC2B51EAB5041295C8FB25F1D54417B14AE071FAB5041CDCCCCAC5E1D5441B81E853B1CAB50411F85EBB15D1D5441333333E31CAB5041000000A05B1D5441F6285CAF1FAB50415C8FC2955C1D5441CDCCCCAC20AB504114AE47715A1D5441E17A141E22AB5041AE47E19A581D54410AD7A3B023AB50419A999939571D54413D0AD74325AB5041CDCCCC3C561D5441EC51B80E27AB5041D7A3706D551D54415C8FC2B52AAB504133333373541D5441B81E850B2CAB50417B14AED7531D5441713D0A772CAB50413D0AD753531D5441AE47E18A2CAB5041A4703D8A521D5441
+</a>
+
+<b>
+01060000000100000001030000000100000036000000CDCCCC4CF8AA50411F85EBB1851D5441F6285CFFF9AA5041C3F5286C861D5441713D0AC7FBAA5041295C8FA2871D5441713D0AC7FDAA5041000000A0891D54410AD7A330FFAA50419A999969891D5441B81E855B00AB5041713D0AD78D1D5441F0E9FB1E05AB50411971DFD28C1D54418D6351DC09AB504167C21E4A8C1D54411831FABF0DAB5041D154EFDD8B1D5441F4EF264110AB504121DF10108B1D5441139B65B312AB504128FBA805891D54410C3F328A14AB504101C37123851D5441BFC30A4216AB5041738021307F1D54418738A0D018AB5041A581A752761D5441010635491BAB5041CD62ACF06D1D5441FA722A861DAB5041A54E62EC641D5441833E61161FAB50412DA31E7E5E1D54413775AF3B1CAB50414338C78A5D1D5441860F03E71CAB5041A94054CD5B1D5441C13DD6DB1FAB5041577881355C1D5441030232D020AB50417D3D31445A1D54415F110EE521AB5041782D85E3581D5441C86AFEE223AB5041AB69071A571D5441544485C425AB5041D5C5A602561D54415807C6C027AB5041D0D6C93D551D5441E3996BE82AAB5041C58E255C541D5441A17E61602CAB5041D4DB9F6F531D5441ED1C37082CAB5041498B3EDC511D544166B4CF3729AB5041DD055AD44E1D5441044A952A27AB50410F096D094D1D54415A0AF24F25AB5041D699F8A44B1D5441BBE3A79A23AB5041241A4D874A1D5441E80AC97D21AB50412368D684491D5441281F81031FAB5041525DB6A9481D544158FD8BF51CAB50418048D333481D5441EC51B85E1AAB5041EC51B8CE471D54417B14AEF718AB5041EC51B8AE471D5441B81E851B15AB5041B81E85AB471D5441D7A3705D11AB5041333333D3471D544114AE472109AB504152B81E95481D5441AE47E12A00AB504185EB51D8471D5441D7A3701DF6AA50415C8FC2F5461D54410AD7A380F7AA50419A9999A95A1D5441713D0AD7F7AA5041333333B3601D54417B14AE67F8AA5041CDCCCC3C631D5441CDCCCCCCF8AA50413D0AD753651D5441EC51B84EF9AA5041EC51B83E671D54410AD7A3D0F9AA5041333333D3681D5441C3F5288CFAAA504148E17A846A1D5441CDCCCC1CFBAA5041AE47E19A6C1D544133333373FBAA50417B14AE776E1D544185EB5148FBAA504185EB51986F1D5441E17A140EFBAA504100000010711D5441CDCCCC4CF8AA50411F85EBB1851D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>40820 - 56922
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000024000000F6285C5F9AD6504114AE47D1132B55418FC2F558A1D65041333333C30C2B5541713D0AF7AAD650419A999909032B5541F6285C3F99D650419A999939E12A5541000000C098D650415C8FC245E02A55417B14AE9797D65041CDCCCC4CE12A55418FC2F50895D65041666666F6E12A55415C8FC2E591D6504100000010E22A55417B14AE778BD6504185EB5128E12A5541CDCCCC8C89D65041295C8FD2E12A5541B81E857B86D650415C8FC2E5E52A55417B14AEB783D650415C8FC295E82A554148E17AD482D65041B81E857BEB2A55410000001083D65041666666F6EE2A5541666666E683D65041333333F3F22A5541C3F5280C84D65041F6285C4FF62A55416666663685D65041E17A146EF82A5541B81E85FB85D65041F6285C1FF92A5541295C8F7287D6504152B81E15FB2A5541000000F087D65041D7A3706DFC2A55419A99998987D65041B81E852BFE2A55417B14AEA785D6504185EB51E8FF2A554114AE47F184D6504114AE4791002B55418FC2F58882D65041D7A3704D032B55411F85EB2180D65041333333B3042B55419A9999D97FD6504148E17AA4052B5541CDCCCC3C80D65041A4703DAA072B5541CDCCCC4C80D6504185EB5108082B55415C8FC2F581D6504185EB51980A2B5541000000C081D650415C8FC2550D2B55413D0AD7C37DD65041713D0AF7102B5541F6285C5F7ED650410AD7A340112B55410AD7A3E07FD65041713D0AF7112B554148E17A448AD650411F85EBE1162B5541AE47E12A93D650418FC2F5181B2B5541F6285C5F9AD6504114AE47D1132B5541
+</a>
+
+<b>
+0106000000010000000103000000010000007600000056F1BF1D98D6504118A9C9D5E02A5541ACB0A19997D65041364D114BE12A55417B14AE9797D65041CDCCCC4CE12A55418FC2F50895D65041666666F6E12A5541B3A9C31694D65041FD8F1EFEE12A55416783EDD592D650414B625808E22A5541406387E591D6504108229211E22A5541BBEBC7D68FD65041D45CD4C5E12A55412570DCE98DD650417DEA7380E12A5541A43AF4DE8DD650411DECEA7EE12A5541BE9B68268DD650414B8CF164E12A55412D2E09E58CD650415818BE5BE12A55415CDF3D918CD6504109E6F24FE12A5541202EF1588CD65041D15C0648E12A554141C002EC8BD65041FB71B138E12A5541798B6A7D8BD65041EE992029E12A5541195A6D768AD650413D698981E12A554137AAC78C89D65041842E96D2E12A5541F255B37089D650414878E3F7E12A55419FA77C4E89D65041A2E15625E22A55414180992C89D65041F1545B52E22A5541D4A30DF087D6504115E2DEF6E32A5541B29FBCB686D6504192041897E52A5541B81E857B86D650415C8FC2E5E52A5541223D334586D6504197AC8E1AE62A5541F60CF41D86D65041AF420048E62A5541B093AABF84D65041B7452C95E72A55416CA9F35C84D65041E2DE1EF5E72A5541D6D828FE83D6504133834151E82A55417B14AEB783D650415C8FC295E82A554148E17AD482D65041B81E857BEB2A55414FF9EBD782D65041001B09AFEB2A5541CA4818D882D650414855A0B1EB2A5541044E74D882D65041C3AB01B7EB2A554173E935DC82D650413FC23AEFEB2A5541E40C2CDD82D6504141E59EFDEB2A5541BECCAADE82D650413ECAFF13EC2A55417B1A36E982D650414E45D2B1EC2A554106449EF982D650413D3765A7ED2A5541732EF51183D65041409FB8FFEE2A5541D2637C1B83D65041BB2A162DEF2A5541E3E70C2083D65041A1B2D142EF2A5541A9B3282183D65041D1E71848EF2A5541214B2D2583D65041E73A3A5BEF2A5541A3D81A2683D65041D143A55FEF2A5541B8A8712883D650413454C86AEF2A5541828C102A83D6504124B37F72EF2A55414B91CD7983D65041E10A26EEF02A5541666666E683D65041333333F3F22A55412F8B4EF383D6504116793619F42A5541A03556F483D65041B9B0AC30F42A554180E4B40284D650412BD80378F52A55419BC6270C84D650412D2F414FF62A5541D7E5065E84D65041BD3556E4F62A55416CFF7DA384D6504159DFBE62F72A55418A199B0985D650414FF2901CF82A554189ED698185D650416D2F8BB1F82A5541B81E85FB85D65041F6285C1FF92A55410EA99DD586D65041C29E2543FA2A55416E94A14B87D650419CA909E1FA2A5541295C8F7287D6504152B81E15FB2A5541C74C629F87D6504157422890FB2A5541C292F0B687D6504182BED0D0FB2A5541000000F087D65041D7A3706DFC2A55419A99998987D65041B81E852BFE2A554171AA20BA86D65041A30403EBFE2A5541152E48A785D65041C44FB0E8FF2A55414D6FC27784D65041FAD0541B012B5541A6C6EC5284D65041D9382D45012B554156C7DC1984D6504176640086012B55418131220C84D65041FE139995012B5541ED2399F383D65041259078B1012B554138D10CE383D65041B62A45C4012B5541554186DA83D650413FA1F4CD012B5541647E761683D650418623B0AC022B55418FC2F58882D65041D7A3704D032B55415484F43F82D6504102E8E777032B5541B686FDF581D65041D41EEEA2032B554148C6A2AA81D650419246C3CE032B5541F6CC94E480D650411EE4F741042B5541480F112480D65041658AF3B1042B554102D162DB7FD65041FE79859E052B55412D90E0DE7FD65041450906C0052B5541868FD0F17FD65041AE08B711062B554161C4EC0580D650417FC5D38B062B5541BA0E682480D65041C3E9EB2A072B55412FAA066480D65041A9662C2C082B554107FEC5CD80D6504170B969CF082B55415C8FC2F581D6504185EB51980A2B5541000000C081D650415C8FC2550D2B5541CA2C968981D65041A97553870D2B55418D42285B80D6504188CB929B0E2B5541EDC2453E80D650410C1520B50E2B55413D0AD7C37DD65041713D0AF7102B5541F6285C5F7ED650410AD7A340112B55410AD7A3E07FD65041713D0AF7112B554148E17A448AD650411F85EBE1162B5541D54D43EE8DD65041B5BD0C9E182B5541E3631FE091D650411A96507C1A2B55418454C72E93D65041B0CC0D121B2B5541C847D51E95D65041F979CD1F192B5541AC06A46E97D6504120ACD5C9162B5541A59CD2FB9DD6504122BE450C102B554191C2105CA8D65041369807AC052B5541713D0AF7AAD650419A999909032B554174FCDB50A7D65041C08BC912FC2A554180337E1AA3D6504103A5CE08F42A5541A6A1F8F2A1D65041DE90D3D4F12A55416871AD29A1D650412F37AC54F02A55413C17AE4A9FD65041F0E18AC2EC2A5541C83824BE9ED65041C6DB55B6EB2A5541A4A2ED959ED65041826C9769EB2A5541A1DFE7099DD650419B0CD075E82A5541232D78D99CD65041C72B6019E82A554130CDABD69AD650411217EC42E42A55410692C45999D650412054FF6BE12A5541171D61BF98D65041079A4F46E02A554156F1BF1D98D6504118A9C9D5E02A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>40820 - 133005
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000024000000F6285C5F9AD6504114AE47D1132B55418FC2F558A1D65041333333C30C2B5541713D0AF7AAD650419A999909032B5541F6285C3F99D650419A999939E12A5541000000C098D650415C8FC245E02A55417B14AE9797D65041CDCCCC4CE12A55418FC2F50895D65041666666F6E12A55415C8FC2E591D6504100000010E22A55417B14AE778BD6504185EB5128E12A5541CDCCCC8C89D65041295C8FD2E12A5541B81E857B86D650415C8FC2E5E52A55417B14AEB783D650415C8FC295E82A554148E17AD482D65041B81E857BEB2A55410000001083D65041666666F6EE2A5541666666E683D65041333333F3F22A5541C3F5280C84D65041F6285C4FF62A55416666663685D65041E17A146EF82A5541B81E85FB85D65041F6285C1FF92A5541295C8F7287D6504152B81E15FB2A5541000000F087D65041D7A3706DFC2A55419A99998987D65041B81E852BFE2A55417B14AEA785D6504185EB51E8FF2A554114AE47F184D6504114AE4791002B55418FC2F58882D65041D7A3704D032B55411F85EB2180D65041333333B3042B55419A9999D97FD6504148E17AA4052B5541CDCCCC3C80D65041A4703DAA072B5541CDCCCC4C80D6504185EB5108082B55415C8FC2F581D6504185EB51980A2B5541000000C081D650415C8FC2550D2B55413D0AD7C37DD65041713D0AF7102B5541F6285C5F7ED650410AD7A340112B55410AD7A3E07FD65041713D0AF7112B554148E17A448AD650411F85EBE1162B5541AE47E12A93D650418FC2F5181B2B5541F6285C5F9AD6504114AE47D1132B5541
+</a>
+
+<b>
+0106000000010000000103000000010000007600000052F1BF1D98D6504116A9C9D5E02A5541AAB0A19997D650413A4D114BE12A55417B14AE9797D65041CDCCCC4CE12A55418FC2F50895D65041666666F6E12A5541AEA9C31694D65041F98F1EFEE12A55416683EDD592D650414C625808E22A5541416387E591D650410C229211E22A5541BCEBC7D68FD65041D95CD4C5E12A55412370DCE98DD650417EEA7380E12A5541A53AF4DE8DD650411DECEA7EE12A5541C09B68268DD650414A8CF164E12A5541322E09E58CD650415418BE5BE12A55415FDF3D918CD6504106E6F24FE12A5541202EF1588CD65041D15C0648E12A554144C002EC8BD65041FD71B138E12A55417A8B6A7D8BD65041E9992029E12A5541165A6D768AD6504140698981E12A554139AAC78C89D65041802E96D2E12A5541EE55B37089D650414A78E3F7E12A55419BA77C4E89D65041A4E15625E22A55414480992C89D65041F0545B52E22A5541D8A30DF087D6504118E2DEF6E32A5541AE9FBCB686D650418E041897E52A5541B81E857B86D650415C8FC2E5E52A5541243D334586D6504196AC8E1AE62A5541F80CF41D86D65041B0420048E62A5541B293AABF84D65041B9452C95E72A554170A9F35C84D65041DEDE1EF5E72A5541D2D828FE83D6504138834151E82A55417B14AEB783D650415C8FC295E82A554148E17AD482D65041B81E857BEB2A55414DF9EBD782D65041FC1A09AFEB2A5541CC4818D882D650414B55A0B1EB2A5541064E74D882D65041C7AB01B7EB2A554171E935DC82D650413EC23AEFEB2A5541E40C2CDD82D650413EE59EFDEB2A5541BDCCAADE82D650413BCAFF13EC2A5541791A36E982D650415245D2B1EC2A554103449EF982D650413C3765A7ED2A5541762EF51183D65041439FB8FFEE2A5541D4637C1B83D65041BA2A162DEF2A5541E5E70C2083D65041A5B2D142EF2A5541A8B3282183D65041CEE71848EF2A55411D4B2D2583D65041E43A3A5BEF2A55419ED81A2683D65041D243A55FEF2A5541BAA8712883D650413754C86AEF2A5541808C102A83D6504129B37F72EF2A55414E91CD7983D65041E10A26EEF02A5541666666E683D65041333333F3F22A5541338B4EF383D6504119793619F42A5541A13556F483D65041B8B0AC30F42A554183E4B40284D6504127D80378F52A554199C6270C84D650412A2F414FF62A5541D8E5065E84D65041C23556E4F62A55416AFF7DA384D6504159DFBE62F72A55418C199B0985D650414BF2901CF82A554184ED698185D65041692F8BB1F82A5541B81E85FB85D65041F6285C1FF92A554113A99DD586D65041C09E2543FA2A55417094A14B87D6504197A909E1FA2A5541295C8F7287D6504152B81E15FB2A5541C74C629F87D6504154422890FB2A5541C592F0B687D650417FBED0D0FB2A5541000000F087D65041D7A3706DFC2A55419A99998987D65041B81E852BFE2A55416FAA20BA86D65041A20403EBFE2A5541172E48A785D65041C94FB0E8FF2A5541516FC27784D65041FDD0541B012B5541A8C6EC5284D65041DE382D45012B554156C7DC1984D6504174640086012B55418331220C84D6504103149995012B5541E82399F383D650412A9078B1012B554134D10CE383D65041B72A45C4012B5541584186DA83D650413DA1F4CD012B5541627E761683D650418923B0AC022B55418FC2F58882D65041D7A3704D032B55415784F43F82D6504106E8E777032B5541B486FDF581D65041D71EEEA2032B554149C6A2AA81D650419146C3CE032B5541F6CC94E480D650411DE4F741042B5541470F112480D65041668AF3B1042B554106D162DB7FD65041FD79859E052B55412E90E0DE7FD65041440906C0052B5541858FD0F17FD65041AB08B711062B554164C4EC0580D650417AC5D38B062B5541BD0E682480D65041BEE9EB2A072B554133AA066480D65041A6662C2C082B554106FEC5CD80D650416DB969CF082B55415C8FC2F581D6504185EB51980A2B5541000000C081D650415C8FC2550D2B5541C82C968981D65041A97553870D2B55418A42285B80D650418ACB929B0E2B5541EDC2453E80D65041091520B50E2B55413D0AD7C37DD65041713D0AF7102B5541F6285C5F7ED650410AD7A340112B55410AD7A3E07FD65041713D0AF7112B554148E17A448AD650411F85EBE1162B5541D34D43EE8DD65041B3BD0C9E182B5541DE631FE091D650411B96507C1A2B55418854C72E93D65041B2CC0D121B2B5541C647D51E95D65041FC79CD1F192B5541B006A46E97D6504124ACD5C9162B5541A59CD2FB9DD6504125BE450C102B554190C2105CA8D650413A9807AC052B5541713D0AF7AAD650419A999909032B554175FCDB50A7D65041C58BC912FC2A554182337E1AA3D65041FFA4CE08F42A5541A7A1F8F2A1D65041E190D3D4F12A55416871AD29A1D650412B37AC54F02A55414017AE4A9FD65041F1E18AC2EC2A5541C43824BE9ED65041CADB55B6EB2A5541A6A2ED959ED65041836C9769EB2A5541A3DFE7099DD650419D0CD075E82A5541232D78D99CD65041C42B6019E82A55412ECDABD69AD650411517EC42E42A55410B92C45999D650411E54FF6BE12A55411C1D61BF98D65041079A4F46E02A554152F1BF1D98D6504116A9C9D5E02A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>40820 - 331914
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000024000000F6285C5F9AD6504114AE47D1132B55418FC2F558A1D65041333333C30C2B5541713D0AF7AAD650419A999909032B5541F6285C3F99D650419A999939E12A5541000000C098D650415C8FC245E02A55417B14AE9797D65041CDCCCC4CE12A55418FC2F50895D65041666666F6E12A55415C8FC2E591D6504100000010E22A55417B14AE778BD6504185EB5128E12A5541CDCCCC8C89D65041295C8FD2E12A5541B81E857B86D650415C8FC2E5E52A55417B14AEB783D650415C8FC295E82A554148E17AD482D65041B81E857BEB2A55410000001083D65041666666F6EE2A5541666666E683D65041333333F3F22A5541C3F5280C84D65041F6285C4FF62A55416666663685D65041E17A146EF82A5541B81E85FB85D65041F6285C1FF92A5541295C8F7287D6504152B81E15FB2A5541000000F087D65041D7A3706DFC2A55419A99998987D65041B81E852BFE2A55417B14AEA785D6504185EB51E8FF2A554114AE47F184D6504114AE4791002B55418FC2F58882D65041D7A3704D032B55411F85EB2180D65041333333B3042B55419A9999D97FD6504148E17AA4052B5541CDCCCC3C80D65041A4703DAA072B5541CDCCCC4C80D6504185EB5108082B55415C8FC2F581D6504185EB51980A2B5541000000C081D650415C8FC2550D2B55413D0AD7C37DD65041713D0AF7102B5541F6285C5F7ED650410AD7A340112B55410AD7A3E07FD65041713D0AF7112B554148E17A448AD650411F85EBE1162B5541AE47E12A93D650418FC2F5181B2B5541F6285C5F9AD6504114AE47D1132B5541
+</a>
+
+<b>
+0106000000010000000103000000010000007600000052F1BF1D98D6504116A9C9D5E02A5541AAB0A19997D650413A4D114BE12A55417B14AE9797D65041CDCCCC4CE12A55418FC2F50895D65041666666F6E12A5541AEA9C31694D65041F98F1EFEE12A55416683EDD592D650414C625808E22A5541416387E591D650410C229211E22A5541BCEBC7D68FD65041D95CD4C5E12A55412370DCE98DD650417EEA7380E12A5541A53AF4DE8DD650411DECEA7EE12A5541C09B68268DD650414A8CF164E12A5541322E09E58CD650415418BE5BE12A55415FDF3D918CD6504106E6F24FE12A5541202EF1588CD65041D15C0648E12A554144C002EC8BD65041FD71B138E12A55417A8B6A7D8BD65041E9992029E12A5541165A6D768AD6504140698981E12A554139AAC78C89D65041802E96D2E12A5541EE55B37089D650414A78E3F7E12A55419BA77C4E89D65041A4E15625E22A55414480992C89D65041F0545B52E22A5541D8A30DF087D6504118E2DEF6E32A5541AE9FBCB686D650418E041897E52A5541B81E857B86D650415C8FC2E5E52A5541243D334586D6504196AC8E1AE62A5541F80CF41D86D65041B0420048E62A5541B293AABF84D65041B9452C95E72A554170A9F35C84D65041DEDE1EF5E72A5541D2D828FE83D6504138834151E82A55417B14AEB783D650415C8FC295E82A554148E17AD482D65041B81E857BEB2A55414DF9EBD782D65041FC1A09AFEB2A5541CC4818D882D650414B55A0B1EB2A5541064E74D882D65041C7AB01B7EB2A554171E935DC82D650413EC23AEFEB2A5541E40C2CDD82D650413EE59EFDEB2A5541BDCCAADE82D650413BCAFF13EC2A5541791A36E982D650415245D2B1EC2A554103449EF982D650413C3765A7ED2A5541762EF51183D65041439FB8FFEE2A5541D4637C1B83D65041BA2A162DEF2A5541E5E70C2083D65041A5B2D142EF2A5541A8B3282183D65041CEE71848EF2A55411D4B2D2583D65041E43A3A5BEF2A55419ED81A2683D65041D243A55FEF2A5541BAA8712883D650413754C86AEF2A5541808C102A83D6504129B37F72EF2A55414E91CD7983D65041E10A26EEF02A5541666666E683D65041333333F3F22A5541338B4EF383D6504119793619F42A5541A13556F483D65041B8B0AC30F42A554183E4B40284D6504127D80378F52A554199C6270C84D650412A2F414FF62A5541D8E5065E84D65041C23556E4F62A55416AFF7DA384D6504159DFBE62F72A55418C199B0985D650414BF2901CF82A554184ED698185D65041692F8BB1F82A5541B81E85FB85D65041F6285C1FF92A554113A99DD586D65041C09E2543FA2A55417094A14B87D6504197A909E1FA2A5541295C8F7287D6504152B81E15FB2A5541C74C629F87D6504154422890FB2A5541C592F0B687D650417FBED0D0FB2A5541000000F087D65041D7A3706DFC2A55419A99998987D65041B81E852BFE2A55416FAA20BA86D65041A20403EBFE2A5541172E48A785D65041C94FB0E8FF2A5541516FC27784D65041FDD0541B012B5541A8C6EC5284D65041DE382D45012B554156C7DC1984D6504174640086012B55418331220C84D6504103149995012B5541E82399F383D650412A9078B1012B554134D10CE383D65041B72A45C4012B5541584186DA83D650413DA1F4CD012B5541627E761683D650418923B0AC022B55418FC2F58882D65041D7A3704D032B55415784F43F82D6504106E8E777032B5541B486FDF581D65041D71EEEA2032B554149C6A2AA81D650419146C3CE032B5541F6CC94E480D650411DE4F741042B5541470F112480D65041668AF3B1042B554106D162DB7FD65041FD79859E052B55412E90E0DE7FD65041440906C0052B5541858FD0F17FD65041AB08B711062B554164C4EC0580D650417AC5D38B062B5541BD0E682480D65041BEE9EB2A072B554133AA066480D65041A6662C2C082B554106FEC5CD80D650416DB969CF082B55415C8FC2F581D6504185EB51980A2B5541000000C081D650415C8FC2550D2B5541C82C968981D65041A97553870D2B55418A42285B80D650418ACB929B0E2B5541EDC2453E80D65041091520B50E2B55413D0AD7C37DD65041713D0AF7102B5541F6285C5F7ED650410AD7A340112B55410AD7A3E07FD65041713D0AF7112B554148E17A448AD650411F85EBE1162B5541D34D43EE8DD65041B3BD0C9E182B5541DE631FE091D650411B96507C1A2B55418854C72E93D65041B2CC0D121B2B5541C647D51E95D65041FC79CD1F192B5541B006A46E97D6504124ACD5C9162B5541A59CD2FB9DD6504125BE450C102B554190C2105CA8D650413A9807AC052B5541713D0AF7AAD650419A999909032B554175FCDB50A7D65041C58BC912FC2A554182337E1AA3D65041FFA4CE08F42A5541A7A1F8F2A1D65041E190D3D4F12A55416871AD29A1D650412B37AC54F02A55414017AE4A9FD65041F1E18AC2EC2A5541C43824BE9ED65041CADB55B6EB2A5541A6A2ED959ED65041836C9769EB2A5541A3DFE7099DD650419D0CD075E82A5541232D78D99CD65041C42B6019E82A55412ECDABD69AD650411517EC42E42A55410B92C45999D650411E54FF6BE12A55411C1D61BF98D65041079A4F46E02A554152F1BF1D98D6504116A9C9D5E02A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>40833 - 56927
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000A000000713D0A37CAD75041AE47E1AA00285541CDCCCC4CC9D75041B81E85FB022855418FC2F598C6D7504148E17AF40B2855419A9999B9E6D750417B14AED719285541D7A370BD06D85041E17A14AE27285541EC51B88E07D85041C3F528CC252855418FC2F5F80BD85041D7A370ED1B2855410AD7A350EBD75041000000D00D285541A4703D0ACAD75041E17A146EFF275541713D0A37CAD75041AE47E1AA00285541
+</a>
+
+<b>
+01060000000100000001030000000100000016000000D13DA2B3C6D75041D99202000C28554107A1E205DBD75041DA2CA7A2142855416F243B8C00D85041BC10EC0025285541BB3BC8C606D850417E8EEC8B272855418DF63E8607D850419D73ACDF25285541EC51B88E07D85041C3F528CC2528554114F3489809D85041BB802B3E21285541F0FFC3BA0AD850410066C8B41E2855418FC2F5F80BD85041D7A370ED1B2855410AD7A350EBD75041000000D00D2855411A64460CE8D750410C2C7F660C28554179824A9BD5D75041CF035078042855414323E697D4D750411265D2FD03285541F8BB5025CAD750412E67C879FF27554139CFDF33CAD75041D6607E9400285541713D0A37CAD75041AE47E1AA0028554129564235CAD7504199BD62AF00285541E6F00439CAD75041AF0367F80028554183754914C9D75041EBC03CBD03285541E7A9BCFBC8D7504196BFA708042855418AF213FFC6D7504114E270A10A285541D13DA2B3C6D75041D99202000C285541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>968549 - 1519262
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001700000039055B6454A95041F2EE7A52DFD454418FC2F59853A950417B14AE57ECD45441000000A053A950418FC2F5A8F2D454418FC2F58854A95041F6285CBFF8D45441B81E85FB57A950411F85EBB103D55441295C8F0260A950417B14AEA7FFD45441B81E853B65A95041A4703D2AFCD4544152B81ED567A9504114AE4721F9D45441AE47E1AA69A9504133333313F4D45441EC51B8DE69A950418FC2F588E4D45441E17A14EE68A9504148E17AA4D3D45441F6285CCF68A950413D0AD743CBD45441D7A3704D6AA9504166666686C5D45441D7A3702D6EA9504133333333BED454418FC2F5E872A95041D7A3701DB3D45441000000705EA95041B81E85CBA7D4544148E17A0458A950418FC2F5D8C3D454413333336355A950417B14AE87CDD45441460D7FC367A950418085E030DBD454417CF36A0A65A95041A8EC3015E6D454411DA62EDF5CA9504151D9610AE4D45441F36AE2615DA95041DB35E64BE0D4544139055B6454A95041F2EE7A52DFD45441
+</a>
+
+<b>
+0106000000010000000103000000010000005100000036C6B5405BA9504113F2BF49CFD4544194ED2CA55AA95041624EEF57D1D454414C2B98A45AA95041F1D21859D1D45441C0D9DA9A62A9504184CC1D1CD7D45441D40C08DD63A950418F153E02D8D4544127B34D0564A95041EFB789E5DBD45441E364CD3466A950411E556C1CDED45441B814DF4766A95041A68F8C66E1D45441CAAE2E8165A9504139701CF9E3D454411FDF580E64A9504113FB599BE4D454419ABA23DA62A95041366A5105E5D4544137A89E6261A9504191061EBEE4D45441B3DDD4DF5EA9504183527019E4D45441838BF0DC5DA9504183095033E3D454419EFE3B5B5DA95041B31509E4E1D45441B784383C5DA9504197D8A92FE1D45441CC7609865CA95041B59D1D5BE0D45441217C64B057A95041B2808DBFDFD4544180FAC53E57A95041D8D07013E1D45441537C59C055A95041DE7343FCE0D454414ED986D755A9504138474072DFD45441AD4F563654A95041CBDE4E38DFD45441EE8DC80754A950416A9D1DE2E1D45441DF59669853A9504184EB311FECD4544108DA3D9C53A95041030D8E49EFD4544123E4269F53A9504179F021E6F1D45441219BF29F53A950413DC9F09CF2D45441D525311754A950416D4E4DC6F5D45441678C8F6854A95041D5879FE6F7D454410C7FA67654A95041106DE044F8D454410E381B8254A95041420D8391F8D45441BC92918854A950414BF4BDBCF8D45441FC4BD79454A95041388716E5F8D45441D33193C754A95041B6196988F9D454418321081655A950410FF7547FFAD4544142D1124A55A9504118049724FBD454411414946D55A950416BDE5595FBD4544160E12AFC57A95041081998B103D55441D15F04D758A950419E25744303D55441C4E7DAC759A9504140453FCA02D554419D52F4805AA950416F9C176D02D554417E73F2345BA95041F6DE811202D55441B95AEFB65CA950412D80CF4E01D55441D6DFDA085EA95041A2BDD9A500D554413ED4640060A95041A628C5A8FFD45441895018E361A950419B947D66FED454413698F95D63A95041C7F00C69FDD45441EF4D853A65A950415464E82AFCD45441F564C68A65A950412BA92BCEFBD45441B73BF32A67A9504155ACEBE7F9D454417D6A52D267A95041C3D38B24F9D45441AC0557DA67A95041227AE612F9D45441337289BB68A9504151E988A6F6D454414F5018A369A95041049F542AF4D45441221BF2AA69A95041F7F5270EF4D45441EC51B8DE69A950418FC2F588E4D45441E17A14EE68A9504148E17AA4D3D45441B5F523D468A95041DD7C40C5CCD45441F2EFE3D368A95041BAFD1D80CCD4544116DA3DD068A950416A0D7340CBD4544118FA933569A950416C55B8BAC9D454412C2690D969A9504185F30C44C7D45441C41550466AA95041EE72CFA1C5D45441C02BA44C6AA9504157C47889C5D45441F3BB9C536AA950412683BB7AC5D4544118CFB3206BA95041B4C30BF7C3D4544106BE85A96BA95041AA7369F4C2D454416C24EC6F6CA950413B365F7DC1D454414414A95F6DA950412D5EBBB9BFD45441AF68A42C6EA950413B43B534BED45441AD51B3B66EA95041B3490DF2BCD45441A751B3766FA950418AED7D2FBBD45441F67FD53770A95041E6E0966BB9D454410786DB0C71A950413A159F78B7D45441A74551EB71A95041D8E68C6FB5D45441A22857E772A950417268921DB3D4544183A36B556FA95041C720B122B1D454417D5978FB62A95041FE73D84EAAD45441A53BC09860A95041BD5D86C9B2D45441B97A84CB5FA9504129BC3CF2B7D4544136C6B5405BA9504113F2BF49CFD45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>199384 - 58319
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002C0000001F85EB6199C750413D0AD743E4265541D7A3708D99C7504133333333E226554148E17A24A0C750410AD7A3A0E1265541B81E854BA0C75041C3F528FCDD2655411F85EB6199C75041E17A143EDE265541295C8FB292C75041295C8F22DE265541C3F528AC8AC75041C3F528FCDC2655411F85EB3187C75041F6285CFFDB2655417B14AE9782C750410AD7A3B0DA265541B81E859B76C75041B81E851BD62655418FC2F5E863C750417B14AEA7CE2655415C8FC20562C75041D7A370FDCD2655413D0AD7F35FC75041666666E6CC2655415C8FC2155DC75041A4703D7ACA26554148E17A4455C75041CDCCCCACBC26554152B81EA550C750418FC2F588BC265541D7A370BD4EC75041E17A144EBE265541D7A370FD4DC750410AD7A390BF265541295C8F024EC7504166666636C0265541A4703D2A49C750415C8FC2F5C5265541CDCCCC0C48C750410AD7A330CE265541000000E048C7504148E17A14D5265541A4703DCA42C750413D0AD743D726554152B81E1542C7504185EB51D8D8265541E17A142E44C75041713D0A07DE265541D7A3701D45C750419A999999E2265541D7A3701D45C7504148E17A34E7265541713D0A5748C750415C8FC285EC265541000000D04CC75041A4703D5AEC2655410AD7A3904FC75041CDCCCCBCE82655415C8FC28553C7504133333393E32655410000004059C75041A4703D0ADD265541713D0AD760C75041CDCCCCACDA265541A4703D1A6AC750415C8FC235D9265541C3F5287C77C75041713D0AB7E2265541EC51B86E80C7504148E17AB4E7265541713D0A2782C75041AE47E16AEE26554152B81EA58AC750410AD7A320F3265541A4703DFA9DC75041CDCCCCFCED265541A4703DFAADC7504152B81E85ED2655415C8FC245B0C7504148E17A74ED26554152B81E75A6C750415C8FC285EC265541D7A370CDA6C75041B81E859BE42655411F85EB6199C750413D0AD743E4265541
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000002B7C59A247C7504183B3D45BEB2655416EF6A20048C75041C62D1EBAEB265541713D0A5748C750415C8FC285EC265541000000D04CC75041A4703D5AEC2655410AD7A3904FC75041CDCCCCBCE82655415C8FC28553C7504133333393E32655410000004059C75041A4703D0ADD265541713D0AD760C75041CDCCCCACDA265541A4703D1A6AC750415C8FC235D9265541C3F5287C77C75041713D0AB7E2265541EC51B86E80C7504148E17AB4E7265541713D0A2782C75041AE47E16AEE26554152B81EA58AC750410AD7A320F3265541A4703DFA9DC75041CDCCCCFCED26554160D7014CA3C750410AC802D5ED2655413CC1FA27A3C75041B1192778E9265541BC13F63D9CC75041BBA32299EA2655411FFD384F8BC750418F46FAB6EC2655412BBC6ECE85C7504139C1E350EA2655418476BF9281C750419640B2A5E6265541E7BA0B787EC75041B34E61D6E2265541098E38397BC750419975EC03E0265541FC73F9E572C750416A8880EFDA265541A6EEE27F70C7504196E5A8D1D826554130CBD9B66AC75041FFEE7247D6265541DC7AFDAE61C75041B8B8D592D52655412DE08CB055C7504113036A89D82655413A9FC22F50C75041C5D214E6DD26554105EDD88A4AC750411923F1EDE62655415775A3F646C750413A12B540EA2655412B7C59A247C7504183B3D45BEB265541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>42214 - 3057159
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000A000000EC51B87E14D35041713D0A97C83455415C8FC29513D3504148E17A54CE3455418FC2F57812D35041666666B6D53455410AD7A3D033D350410AD7A3E0E2345541D7A3704D37D3504152B81E95DC3455417B14AE473CD35041CDCCCCFCD4345541C3F5284C2ED35041F6285C3FCF3455413D0AD75316D350418FC2F568C5345541333333F314D35041295C8F22C6345541EC51B87E14D35041713D0A97C8345541
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000C613060B3AD350418492B711D4345541726F991635D350419E49BB95DB345541D5EA12F835D35041E5EAC836DC3455419D363B7735D35041C16F2708DD34554172C4CED232D3504172837900E2345541BE3EC68B32D35041589E5E60E2345541AB9E3EC432D350411298AA76E234554134B46FCB32D350418F66B56CE23455410AD7A3D033D350410AD7A3E0E2345541D7A3704D37D3504152B81E95DC3455419B379B423CD35041AE3591EAD434554159D70DD63AD35041754E1065D4345541C613060B3AD350418492B711D4345541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>42214 - 3330478
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000A000000EC51B87E14D35041713D0A97C83455415C8FC29513D3504148E17A54CE3455418FC2F57812D35041666666B6D53455410AD7A3D033D350410AD7A3E0E2345541D7A3704D37D3504152B81E95DC3455417B14AE473CD35041CDCCCCFCD4345541C3F5284C2ED35041F6285C3FCF3455413D0AD75316D350418FC2F568C5345541333333F314D35041295C8F22C6345541EC51B87E14D35041713D0A97C8345541
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000C613060B3AD350418492B711D4345541726F991635D350419E49BB95DB345541D5EA12F835D35041E5EAC836DC3455419D363B7735D35041C16F2708DD34554172C4CED232D3504172837900E2345541BE3EC68B32D35041589E5E60E2345541AB9E3EC432D350411298AA76E234554134B46FCB32D350418F66B56CE23455410AD7A3D033D350410AD7A3E0E2345541D7A3704D37D3504152B81E95DC3455419B379B423CD35041AE3591EAD434554159D70DD63AD35041754E1065D4345541C613060B3AD350418492B711D4345541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>42525 - 255214
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000010000000AE47E12AEBD150413D0AD73394355541713D0AC7EED15041295C8F72913555415C8FC245F1D150417B14AE478F355541295C8FF2F1D1504114AE47118D355541000000E0F2D150410AD7A3908B3555411F85EB01F1D15041295C8F1282355541EC51B8BEE3D1504148E17A648B3555411F85EB01E0D15041B81E854B8E355541C3F528ECDCD15041E17A141E9135554152B81EB5D9D150419A9999599335554185EB51C8D4D150415C8FC2A59535554152B81E85C9D1504148E17A34993555419A999959CED150415C8FC2559F3555415C8FC2F5E1D15041295C8FE2993555418FC2F5C8E5D1504185EB517898355541AE47E12AEBD150413D0AD73394355541
+</a>
+
+<b>
+01060000000100000001030000000100000017000000E08CFD86E5D1504161F5D7238A355541EC51B8BEE3D1504148E17A648B35554199216170E3D15041295B038E8B3555414164AE31E0D1504154C6DE238E3555418FCC7E42DFD1504173C946FC8E3555417AB639F2DCD1504135EC981391355541C63154E0D9D1504176A3B2419335554164B33E7FD8D15041F8E8C3D593355541014873FBD4D150418AB9F79195355541ABA33645D4D1504127774ED6953555413FFCFE1BCFD15041F0E856709735554167E98E09CAD15041AE5A5F0A99355541AFE46E87C9D1504101706A37993555419A999959CED150415C8FC2559F3555415C8FC2F5E1D15041295C8FE299355541974324F7E1D150417A82ADE299355541CF6F54D8E5D150413C37C87798355541A30D7AADEFD15041D5F190AE9035554122B51E3CF1D15041EADEB3368F3555412E8FF7E6F1D150412093D2F18C355541B26BA95AF2D15041CB8F04A48A3555418DD1EB01F1D15041A9E0901282355541E08CFD86E5D1504161F5D7238A355541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>199589 - 323556
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000110000000AD7A3F0A1C75041CDCCCCDC3A26554114AE47019DC75041A4703D3A3A2655410000006099C750410AD7A3C03926554152B81E2593C750413D0AD7633A2655411F85EB0191C750413333338341265541F6285CFF83C750419A9999E942265541C3F5288C81C75041F6285CEF482655417B14AE977BC75041A4703DCA46265541AE47E1BA85C750419A99992950265541C3F528FC86C75041295C8F92502655419A9999298FC75041A4703D3A4F2655415C8FC2C595C750411F85EB114F2655418FC2F5589BC75041666666564E265541F6285C5F9EC7504114AE47F14D265541EC51B80EA4C75041B81E85BB4C26554152B81ED5A7C75041E17A14EE4B2655410AD7A3F0A1C75041CDCCCCDC3A265541
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000885DED2992C75041A1C2EE274F2655417506C25B94C7504190AD8B1A4F2655417506C25B94C75041D2A0B0C14E265541EC6B7C8E95C75041CFC385A84D2655419E582F5A98C7504100A247424D265541022AE7C69DC75041390730054E265541F6285C5F9EC7504114AE47F14D26554130EC12F9A3C75041358E20C04C2655411E609688A4C75041787081294B2655413594AC43A7C750419196CC484A2655410AD7A3F0A1C75041CDCCCCDC3A26554114AE47019DC75041A4703D3A3A2655410000006099C750410AD7A3C039265541332AE51195C750410E636A313A26554152B81E2593C750413D0AD7633A2655411F85EB0191C750413333338341265541F6285CFF83C750419A9999E942265541AA113C8D83C750418B852302442655417B20D54E85C75041C4BCEDF445265541C244BA9183C75041F26C624C4826554137E592A981C7504179590EA748265541C3F5288C81C75041F6285CEF482655417B14AE977BC75041A4703DCA462655418662506B81C75041C1CD4F2D4C265541AE47E1BA85C750419A99992950265541C3F528FC86C75041295C8F9250265541B0C7CDBB8DC750418A9267764F2655419A9999298FC75041A4703D3A4F265541885DED2992C75041A1C2EE274F265541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>43334 - 251781
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000000F0000003D0AD7D38CDB50410AD7A3D093025541EC51B80E95DB5041713D0A1791025541CDCCCCAC9BDB5041D7A3708D8F0255417B14AE879BDB5041EC51B82E89025541AE47E1AA83DB5041295C8F4287025541F6285CBF6ADB504114AE4741850255413D0AD7D351DB5041F6285C3F83025541000000E04FDB50413D0AD7F38B025541000000E04FDB504114AE47518D0255417B14AE9750DB5041E17A147E8E02554148E17AD451DB50410AD7A3108F025541713D0A6770DB50418FC2F5A8910255410AD7A3A079DB5041A4703DAA920255410AD7A38086DB504100000070930255413D0AD7D38CDB50410AD7A3D093025541
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000000AD7A38086DB50410000007093025541C17072C788DB504115BDC892930255414392D7D38CDB50411C9FA2D093025541EB41B70E95DB504168DC081791025541F795C01E95DB50413BA95013910255416460337F98DB5041CA6E784A90025541160B84A19ADB504158588ACB8F0255412BB013FE9ADB5041C34513DE8E025541D9E0ECD19ADB50410FA9132089025541D6B8AAE290DB50416D632D53880255410FB0AAB584DB504191CA0D588702554150B1E0AA83DB50415C3E90428702554198951E5D78DB5041FD40BC5986025541F6285CBF6ADB504114AE474185025541496B71E352DB5041925F3D55830255416D07D7D351DB504180355C3F83025541000000E04FDB50413D0AD7F38B025541000000E04FDB504114AE47518D0255417B14AE9750DB5041E17A147E8E025541CD58C94151DB5041DD96C6CC8E02554193437AD451DB50413143A3108F025541D09706395DDB5041446E320890025541713D0A6770DB50418FC2F5A8910255410415AD1174DB504165C9370F92025541EBCAA3A079DB504121133CAA92025541CDD5291F82DB5041A51EB62C930255410AD7A38086DB50410000007093025541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>43334 - 351946
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000000F0000003D0AD7D38CDB50410AD7A3D093025541EC51B80E95DB5041713D0A1791025541CDCCCCAC9BDB5041D7A3708D8F0255417B14AE879BDB5041EC51B82E89025541AE47E1AA83DB5041295C8F4287025541F6285CBF6ADB504114AE4741850255413D0AD7D351DB5041F6285C3F83025541000000E04FDB50413D0AD7F38B025541000000E04FDB504114AE47518D0255417B14AE9750DB5041E17A147E8E02554148E17AD451DB50410AD7A3108F025541713D0A6770DB50418FC2F5A8910255410AD7A3A079DB5041A4703DAA920255410AD7A38086DB504100000070930255413D0AD7D38CDB50410AD7A3D093025541
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000000AD7A38086DB50410000007093025541C17072C788DB504115BDC892930255414392D7D38CDB50411C9FA2D093025541EB41B70E95DB504168DC081791025541F795C01E95DB50413BA95013910255416460337F98DB5041CA6E784A90025541160B84A19ADB504158588ACB8F0255412BB013FE9ADB5041C34513DE8E025541D9E0ECD19ADB50410FA9132089025541D6B8AAE290DB50416D632D53880255410FB0AAB584DB504191CA0D588702554150B1E0AA83DB50415C3E90428702554198951E5D78DB5041FD40BC5986025541F6285CBF6ADB504114AE474185025541496B71E352DB5041925F3D55830255416D07D7D351DB504180355C3F83025541000000E04FDB50413D0AD7F38B025541000000E04FDB504114AE47518D0255417B14AE9750DB5041E17A147E8E025541CD58C94151DB5041DD96C6CC8E02554193437AD451DB50413143A3108F025541D09706395DDB5041446E320890025541713D0A6770DB50418FC2F5A8910255410415AD1174DB504165C9370F92025541EBCAA3A079DB504121133CAA92025541CDD5291F82DB5041A51EB62C930255410AD7A38086DB50410000007093025541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>44958 - 378800
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000D0000009A999979E9DD504148E17AB480F65441EC51B89EE8DD5041666666B681F654415C8FC245E8DD5041AE47E18A82F65441295C8FB2DFDD50418FC2F50887F65441C3F5287CE0DD5041666666A689F65441B81E85CBE1DD5041EC51B89E89F6544185EB51B8E8DD50415C8FC24586F65441295C8FF2EBDD5041D7A3705D84F65441AE47E15AFFDD5041B81E850B76F6544152B81E65F9DD50410AD7A3606FF654417B14AEA7F1DD5041295C8F226CF6544114AE47B1EADD5041666666267EF654419A999979E9DD504148E17AB480F65441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000EF09C345E8DD5041EA22E08A82F6544142EC1410E1DD504164DDD75186F654417D668FB2DFDD5041DBE4F50887F6544195AC287CE0DD5041667365A689F654413251E260E1DD5041C27B29A189F65441B81E85CBE1DD5041EC51B89E89F65441179B6DD9E5DD5041877F00A987F6544163DD51B8E8DD5041835AC24586F65441F7ACC732E9DD50419D6462FD85F65441295C8FF2EBDD5041D7A3705D84F65441D9330D8EF6DD5041E236CA897CF6544128A3E05AFFDD5041AB66840B76F6544152B81E65F9DD50410AD7A3606FF6544103BD2EF0F5DD50416E4DEAED6DF65441249FADA7F1DD5041C68B90226CF6544114AE47B1EADD5041666666267EF654419A999979E9DD504148E17AB480F65441EC51B89EE8DD5041666666B681F65441EF09C345E8DD5041EA22E08A82F65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>45360 - 58069
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000260000003D0AD76358D65041AE47E11AB8025541A4703D4A5BD650418FC2F598B8025541E17A14DE5DD6504185EB5108B6025541333333F361D650410AD7A3D0B1025541CDCCCC8C5ED65041C3F528FCAB0255415C8FC2855BD65041F6285CCFA6025541D7A370AD58D65041D7A3703DA1025541D7A370FD58D65041AE47E1EA9D025541B81E85AB5AD65041C3F528BC9B025541B81E852B5AD650418FC2F5289A02554148E17AA459D6504148E17A4498025541295C8F3259D65041E17A145E96025541295C8F5254D650419A99999999025541713D0A8752D65041D7A3704D9A02554152B81EA550D6504185EB51B89A025541000000204DD65041333333439B025541713D0A7743D65041AE47E1AA9B025541666666A63DD650415C8FC2859B025541333333A334D650415C8FC2E59A02554148E17A8430D650415C8FC26599025541E17A14AE2CD65041713D0A679802554152B81EA52AD65041A4703D9A9C025541C3F5285C26D6504148E17A049C02554148E17A6424D65041333333939D0255415C8FC28524D6504100000080A3025541713D0AC726D650415C8FC255A80255419A9999E929D65041D7A370EDAC02554152B81EA52DD65041000000B0AF02554152B81ED530D650419A999909B10255413333335332D65041AE47E15AB40255418FC2F5E834D650415C8FC255B60255417B14AEE737D65041333333D3B60255419A9999B93DD65041F6285C1FB90255410000003047D65041713D0AA7BF025541CDCCCC8C53D65041713D0A47C60255413D0AD79359D6504152B81E05BD025541B81E854B57D6504100000020BA0255413D0AD76358D65041AE47E11AB8025541
+</a>
+
+<b>
+0106000000010000000103000000010000005600000052B81EA52DD65041000000B0AF0255415D59854330D650412C3BEFCBB002554152B81ED530D650419A999909B10255413333335332D65041AE47E15AB4025541A1D3C21933D650419A24F8F2B40255418BBFE8E934D65041A44D9F55B602554109F38C3535D65041FD694A62B6025541D3170D3D35D65041A28F8463B60255412058576035D650416D9E4A69B602554130A3529235D6504177017871B60255415F07A25C36D650417C639192B60255417B14AEE737D65041333333D3B6025541BFB69D7E39D650411484D773B70255418EBFE88939D65041C8A92E78B7025541A4284F403CD65041E3BF6B8AB80255419A9999B93DD65041F6285C1FB90255419E381F2D40D65041597E68D0BA02554151D1EAC840D65041F8DCEB3BBB02554162D8886D41D6504154C285ADBB025541814D97E441D650418FB6AEFFBB025541A476FEFC41D65041E9D48510BC0255418DD7EB2E47D650415AAA4BA6BF0255412BF55B8D53D650410C5E2E46C6025541A8931CB953D650416F97FB02C6025541231DB19856D6504123CC3899C10255419510E13657D650410BFD43A6C0025541365179A857D65041774ACCF7BF0255413D0AD79359D6504152B81E05BD025541B81E854B57D6504100000020BA0255413D0AD76358D65041AE47E11AB8025541654241FF58D65041DD134635B8025541A4703D4A5BD650418FC2F598B8025541E17A14DE5DD6504185EB5108B60255410811ED055ED650414F0528DFB5025541E481DEF261D650414A9580D0B102554170751A3C5CD650416B900B07A80255415C8FC2855BD65041F6285CCFA6025541935713045BD65041EE0A76D1A5025541E0254FF05AD650410CDD61ABA5025541C93251B758D65041A21AC750A1025541D7A370AD58D65041D7A3703DA10255415C1D97D858D650416785AA729F025541D7A370FD58D65041AE47E1EA9D0255418E6D30AB5AD650411FB405BC9B0255416477B95B5AD65041E1D9CDC09A025541B81E852B5AD650418FC2F5289A0255412493EED159D65041C0008CE798025541E14EABBF59D65041F580D2A898025541E8CDD4B959D65041DEDA14919802554148E17AA459D6504148E17A4498025541E6EDDF3259D65041D37B6C5F96025541E45D250957D650414B3C09CD97025541295C8F5254D650419A99999999025541379CF13054D65041A496C1A69902554116D4961154D65041909F57B499025541C71FD1A853D65041131008DC99025541713D0A8752D65041D7A3704D9A0255415FACCEC751D65041C5FBD9779A025541DD4751B251D65041EF1FD07E9A025541D931834D51D650418A57F9929A02554152B81EA550D6504185EB51B89A02554138232F5550D65041DDC0A3C49A025541BC915D2F50D65041291134CC9A0255416D8CB5164DD650419876FB449B025541B96D30EB47D65041F8DC617B9B025541879E590C45D65041A41EE3999B025541713D0A7743D65041AE47E1AA9B0255410D57E42043D65041CF5ABBA89B0255418B8836593ED65041E502388A9B025541666666A63DD650415C8FC2859B0255411E79D5313CD650414559EC6B9B0255415530269439D650413339F13D9B02554131F78CC434D6504158A312E89A025541333333A334D650415C8FC2E59A02554148E17A8430D650415C8FC26599025541E17A14AE2CD65041713D0A679802554152B81EA52AD65041A4703D9A9C025541ACA0D15C26D650412FE891049C0255413FD43F0A26D65041F15452459C025541D84C87BC25D6504177B2D8829C025541F29C876424D650417D5D7A939D0255415C8FC28524D6504100000080A3025541713D0AC726D650415C8FC255A80255417581D1AC28D65041BBF9611DAB02554179AA59EA29D65041CCA9FEEDAC02554152B81EA52DD65041000000B0AF025541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>46601 - 1530093
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000001A00000052B81E95D2D35041713D0AA7BF095541CDCCCCCCD1D350413D0AD7A3C109554166666666CDD35041295C8F52C90955411F85EB61D7D3504100000050CF0955419A9999A9E7D35041D7A370DDD6095541A4703DDAEED35041295C8F32CB095541333333E3DFD350415C8FC2A5C409554185EB5198D6D35041B81E85EBC00955413D0AD7D3D6D35041D7A3707DC0095541E17A143EE0D35041D7A3703DC4095541C3F5288CE2D3504114AE47E1C0095541C3F5280CE0D35041B81E85ABBF095541C3F528FCE0D3504114AE4761BE095541000000E0E3D35041B81E850BBF0955413D0AD703E7D3504148E17AA4BA095541AE47E15AF6D350411F85EB11C109554185EB5138F7D35041D7A3708DBC095541666666E6F7D35041AE47E15AB5095541E17A14AEECD35041C3F5280CB50955410AD7A330D4D3504100000060B409554114AE4721D3D3504185EB5158B5095541666666A6D2D350410AD7A3D0BA09554148E17A54D2D3504148E17A34BF09554133333313D5D350418FC2F548C00955415C8FC2F5D4D350419A999999C009554152B81E95D2D35041713D0AA7BF095541050000003D0AD7B3F1D350419A9999B9BB095541000000C0F4D350419A9999F9BC095541C3F5280CF4D35041F6285CCFBE0955415C8FC2A5F0D35041F6285C8FBD0955413D0AD7B3F1D350419A9999B9BB095541
+</a>
+
+<b>
+010600000001000000010300000001000000100000009795B31EF7D3504111D53B13BD095541EA8C2D6FF6D35041FEBE2EAEC0095541C856B29F24D45041ACDC3CA5CB0955410000008025D450410AD7A360CA095541AE47E11A25D4504166666636CA09554152B81E6525D450410AD7A340C9095541D7A3708D25D45041666666A6C80955418FC2F50829D450410AD7A3C0BC095541D7A370FD27D4504152B81E75BB095541D7A3709D11D450417B14AEE7B5095541333333B30BD45041A4703DFAB4095541666666A600D45041C3F528ACB5095541218C4FE8F7D35041DD62CC5BB509554157A1888DF7D35041688E7D07B909554185EB5138F7D35041D7A3708DBC0955419795B31EF7D3504111D53B13BD095541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>46601 - 3359349
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000001A00000052B81E95D2D35041713D0AA7BF095541CDCCCCCCD1D350413D0AD7A3C109554166666666CDD35041295C8F52C90955411F85EB61D7D3504100000050CF0955419A9999A9E7D35041D7A370DDD6095541A4703DDAEED35041295C8F32CB095541333333E3DFD350415C8FC2A5C409554185EB5198D6D35041B81E85EBC00955413D0AD7D3D6D35041D7A3707DC0095541E17A143EE0D35041D7A3703DC4095541C3F5288CE2D3504114AE47E1C0095541C3F5280CE0D35041B81E85ABBF095541C3F528FCE0D3504114AE4761BE095541000000E0E3D35041B81E850BBF0955413D0AD703E7D3504148E17AA4BA095541AE47E15AF6D350411F85EB11C109554185EB5138F7D35041D7A3708DBC095541666666E6F7D35041AE47E15AB5095541E17A14AEECD35041C3F5280CB50955410AD7A330D4D3504100000060B409554114AE4721D3D3504185EB5158B5095541666666A6D2D350410AD7A3D0BA09554148E17A54D2D3504148E17A34BF09554133333313D5D350418FC2F548C00955415C8FC2F5D4D350419A999999C009554152B81E95D2D35041713D0AA7BF095541050000003D0AD7B3F1D350419A9999B9BB095541000000C0F4D350419A9999F9BC095541C3F5280CF4D35041F6285CCFBE0955415C8FC2A5F0D35041F6285C8FBD0955413D0AD7B3F1D350419A9999B9BB095541
+</a>
+
+<b>
+010600000001000000010300000001000000100000009795B31EF7D3504111D53B13BD095541EA8C2D6FF6D35041FEBE2EAEC0095541C856B29F24D45041ACDC3CA5CB0955410000008025D450410AD7A360CA095541AE47E11A25D4504166666636CA09554152B81E6525D450410AD7A340C9095541D7A3708D25D45041666666A6C80955418FC2F50829D450410AD7A3C0BC095541D7A370FD27D4504152B81E75BB095541D7A3709D11D450417B14AEE7B5095541333333B30BD45041A4703DFAB4095541666666A600D45041C3F528ACB5095541218C4FE8F7D35041DD62CC5BB509554157A1888DF7D35041688E7D07B909554185EB5138F7D35041D7A3708DBC0955419795B31EF7D3504111D53B13BD095541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>200405 - 1082385
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000130000007B14AE47791A5141AE47E10AD63C544152B81EB5771A5141AE47E17AD63C5441B81E85EB681A5141295C8FC2E83C5441A4703DEA671A51410AD7A300EA3C5441F6285C8F571A514185EB5138FE3C5441B81E857B411A5141A4703D8A193D5441E17A146E3D1A5141666666D6353D54417B14AE173B1A514152B81E55433D5441E17A14FE8B1A5141333333E3483D54411F85EBA1901A5141F6285C2F383D544185EB51B8941A51413D0AD703283D54415C8FC255981A5141A4703D0A183D5441000000709B1A514185EB5148063D5441D7A3701D9D1A5141E17A149EFB3C5441B81E851BA01A5141295C8F92E83C544166666636A01A5141EC51B81EE53C5441D7A3704D9F1A51417B14AEC7E33C5441A4703DCA8B1A5141AE47E1BADC3C54417B14AE47791A5141AE47E10AD63C5441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000ACF387A2921A5141A34C7D43303D544185EB51B8941A51413D0AD703283D54415C8FC255981A5141A4703D0A183D5441000000709B1A514185EB5148063D5441D7A3701D9D1A5141E17A149EFB3C5441B81E851BA01A5141295C8F92E83C544166666636A01A5141EC51B81EE53C5441D7A3704D9F1A51417B14AEC7E33C5441A4703DCA8B1A5141AE47E1BADC3C54417B14AE47791A5141AE47E10AD63C544152B81EB5771A5141AE47E17AD63C5441B81E85EB681A5141295C8FC2E83C5441A4703DEA671A51410AD7A300EA3C5441F6285C8F571A514185EB5138FE3C5441B81E857B411A5141A4703D8A193D54413B404C0A3F1A5141B7D0FE972A3D5441A069B29F3E1A5141196DC1A02C3D5441CF3F32F9911A51412ACB3B8E323D5441ACF387A2921A5141A34C7D43303D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>200405 - 3813900
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000130000007B14AE47791A5141AE47E10AD63C544152B81EB5771A5141AE47E17AD63C5441B81E85EB681A5141295C8FC2E83C5441A4703DEA671A51410AD7A300EA3C5441F6285C8F571A514185EB5138FE3C5441B81E857B411A5141A4703D8A193D5441E17A146E3D1A5141666666D6353D54417B14AE173B1A514152B81E55433D5441E17A14FE8B1A5141333333E3483D54411F85EBA1901A5141F6285C2F383D544185EB51B8941A51413D0AD703283D54415C8FC255981A5141A4703D0A183D5441000000709B1A514185EB5148063D5441D7A3701D9D1A5141E17A149EFB3C5441B81E851BA01A5141295C8F92E83C544166666636A01A5141EC51B81EE53C5441D7A3704D9F1A51417B14AEC7E33C5441A4703DCA8B1A5141AE47E1BADC3C54417B14AE47791A5141AE47E10AD63C5441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000ACF387A2921A5141A34C7D43303D544185EB51B8941A51413D0AD703283D54415C8FC255981A5141A4703D0A183D5441000000709B1A514185EB5148063D5441D7A3701D9D1A5141E17A149EFB3C5441B81E851BA01A5141295C8F92E83C544166666636A01A5141EC51B81EE53C5441D7A3704D9F1A51417B14AEC7E33C5441A4703DCA8B1A5141AE47E1BADC3C54417B14AE47791A5141AE47E10AD63C544152B81EB5771A5141AE47E17AD63C5441B81E85EB681A5141295C8FC2E83C5441A4703DEA671A51410AD7A300EA3C5441F6285C8F571A514185EB5138FE3C5441B81E857B411A5141A4703D8A193D54413B404C0A3F1A5141B7D0FE972A3D5441A069B29F3E1A5141196DC1A02C3D5441CF3F32F9911A51412ACB3B8E323D5441ACF387A2921A5141A34C7D43303D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>200682 - 1095564
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000E00000014AE47F178195141333333E3C33B5441713D0AA7791951417B14AE37B13B5441F6285C1F7A1951417B14AEB7AF3B54415C8FC29574195141000000C0B03B544114AE47815919514100000030B53B5441333333C33F195141E17A14FEB93B5441AE47E18A36195141C3F528ACBB3B5441713D0A97341951411F85EB41BC3B5441AE47E1DA2C195141C3F528FCC03B54413D0AD7132C195141D7A3701DC23B5441D7A3706D2D1951411F85EBF1C63B544148E17A9430195141295C8F32D03B54415C8FC2155619514114AE47D1C93B544114AE47F178195141333333E3C33B5441
+</a>
+
+<b>
+0106000000010000000103000000010000000600000071A836D977195141E459BB9DE03B54410AD7A31078195141C3F528ECDA3B544114AE47F178195141333333E3C33B544154503B89311951414DD5EC08D03B5441423F46A73A195141E56E6359EB3B544171A836D977195141E459BB9DE03B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>200682 - 3217832
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000E00000014AE47F178195141333333E3C33B5441713D0AA7791951417B14AE37B13B5441F6285C1F7A1951417B14AEB7AF3B54415C8FC29574195141000000C0B03B544114AE47815919514100000030B53B5441333333C33F195141E17A14FEB93B5441AE47E18A36195141C3F528ACBB3B5441713D0A97341951411F85EB41BC3B5441AE47E1DA2C195141C3F528FCC03B54413D0AD7132C195141D7A3701DC23B5441D7A3706D2D1951411F85EBF1C63B544148E17A9430195141295C8F32D03B54415C8FC2155619514114AE47D1C93B544114AE47F178195141333333E3C33B5441
+</a>
+
+<b>
+0106000000010000000103000000010000000600000071A836D977195141E459BB9DE03B54410AD7A31078195141C3F528ECDA3B544114AE47F178195141333333E3C33B544154503B89311951414DD5EC08D03B5441423F46A73A195141E56E6359EB3B544171A836D977195141E459BB9DE03B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>50364 - 182534
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000800000014AE47514CB75041EC51B8CE160F5541AE47E1BA67B750419A9999291E0F5541EC51B8CE68B7504148E17A641D0F5541B81E853B6AB75041F6285C3F0D0F55413D0AD7B36AB750417B14AE67010F5541000000C052B75041C3F5286CFD0E5541B81E85AB4BB75041295C8FA2160F554114AE47514CB75041EC51B8CE160F5541
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000A7E7698C6AB750415FDF1849050F55413D0AD7B36AB750417B14AE67010F5541000000C052B75041C3F5286CFD0E5541C07385AB4BB750415A2D8EA2160F5541188C3B464CB7504116E1C6CB160F554114AE47514CB75041EC51B8CE160F5541760D98B84EB750410956D073170F5541CF3EE2BA67B7504100E998291E0F554161526A9168B75041A1144A901D0F5541D953B8CE68B7504177CB7A641D0F5541719882FF68B750411240B23B1B0F5541F9B6833B6AB750414A645D3F0D0F5541A7E7698C6AB750415FDF1849050F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>50364 - 368548
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000800000014AE47514CB75041EC51B8CE160F5541AE47E1BA67B750419A9999291E0F5541EC51B8CE68B7504148E17A641D0F5541B81E853B6AB75041F6285C3F0D0F55413D0AD7B36AB750417B14AE67010F5541000000C052B75041C3F5286CFD0E5541B81E85AB4BB75041295C8FA2160F554114AE47514CB75041EC51B8CE160F5541
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000A7E7698C6AB750415FDF1849050F55413D0AD7B36AB750417B14AE67010F5541000000C052B75041C3F5286CFD0E5541C07385AB4BB750415A2D8EA2160F5541188C3B464CB7504116E1C6CB160F554114AE47514CB75041EC51B8CE160F5541760D98B84EB750410956D073170F5541CF3EE2BA67B7504100E998291E0F554161526A9168B75041A1144A901D0F5541D953B8CE68B7504177CB7A641D0F5541719882FF68B750411240B23B1B0F5541F9B6833B6AB750414A645D3F0D0F5541A7E7698C6AB750415FDF1849050F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>903813 - 565876
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000016000000072B7CCD51635141B8F3FDB5B6A5544189C1D85E5963514104D4E9B0ADA554418C36057061635141A42DA308A4A55441D5F564EA64635141069DC714A0A55441893F5394676351419DDBC64A9BA554417DDF28926A635141C18DEC7795A554412A2643336C63514142E5F24B92A554414DEF64466D6351415B30593490A55441D692FF4E6E635141D641CDE18EA554410A994B406F6351410954DBA28DA554419A6B256668635141D4878A617EA554419031B9EF5863514162A532F55BA55441A00DBCFB4E635141411F06D545A554418EBAF0364A635141EA3026B947A55441859A993C436351418221C49D49A55441BC5F54994163514135A216034AA5544177DE83CA396351419DE620E64BA554418599684D3D63514143962D0157A55441DD189CFE29635141DDD4D68F5EA55441587FF1B33B6351414815B91486A55441C184C66844635141045D6E8299A55441072B7CCD51635141B8F3FDB5B6A55441
+</a>
+
+<b>
+0106000000010000000103000000010000000A0000003D0AD773846351411F85EB817DA5544152B81E0587635141333333237CA554417B14AE37796351418FC2F5985DA55441333333D369635141AE47E18A3BA55441B81E851B676351418FC2F5483CA55441EC51B8FE4E6351413D0AD7D345A554419A9999295F63514114AE47D169A55441295C8F526F635141B81E85CB8DA55441666666F6756351411F85EBB186A554413D0AD773846351411F85EB817DA55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>903813 - 1261400
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000016000000072B7CCD51635141B8F3FDB5B6A5544189C1D85E5963514104D4E9B0ADA554418C36057061635141A42DA308A4A55441D5F564EA64635141069DC714A0A55441893F5394676351419DDBC64A9BA554417DDF28926A635141C18DEC7795A554412A2643336C63514142E5F24B92A554414DEF64466D6351415B30593490A55441D692FF4E6E635141D641CDE18EA554410A994B406F6351410954DBA28DA554419A6B256668635141D4878A617EA554419031B9EF5863514162A532F55BA55441A00DBCFB4E635141411F06D545A554418EBAF0364A635141EA3026B947A55441859A993C436351418221C49D49A55441BC5F54994163514135A216034AA5544177DE83CA396351419DE620E64BA554418599684D3D63514143962D0157A55441DD189CFE29635141DDD4D68F5EA55441587FF1B33B6351414815B91486A55441C184C66844635141045D6E8299A55441072B7CCD51635141B8F3FDB5B6A55441
+</a>
+
+<b>
+0106000000010000000103000000010000000A0000003D0AD773846351411F85EB817DA5544152B81E0587635141333333237CA554417B14AE37796351418FC2F5985DA55441333333D369635141AE47E18A3BA55441B81E851B676351418FC2F5483CA55441EC51B8FE4E6351413D0AD7D345A554419A9999295F63514114AE47D169A55441295C8F526F635141B81E85CB8DA55441666666F6756351411F85EBB186A554413D0AD773846351411F85EB817DA55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>903813 - 4016419
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000016000000072B7CCD51635141B8F3FDB5B6A5544189C1D85E5963514104D4E9B0ADA554418C36057061635141A42DA308A4A55441D5F564EA64635141069DC714A0A55441893F5394676351419DDBC64A9BA554417DDF28926A635141C18DEC7795A554412A2643336C63514142E5F24B92A554414DEF64466D6351415B30593490A55441D692FF4E6E635141D641CDE18EA554410A994B406F6351410954DBA28DA554419A6B256668635141D4878A617EA554419031B9EF5863514162A532F55BA55441A00DBCFB4E635141411F06D545A554418EBAF0364A635141EA3026B947A55441859A993C436351418221C49D49A55441BC5F54994163514135A216034AA5544177DE83CA396351419DE620E64BA554418599684D3D63514143962D0157A55441DD189CFE29635141DDD4D68F5EA55441587FF1B33B6351414815B91486A55441C184C66844635141045D6E8299A55441072B7CCD51635141B8F3FDB5B6A55441
+</a>
+
+<b>
+0106000000010000000103000000010000000A0000003D0AD773846351411F85EB817DA5544152B81E0587635141333333237CA554417B14AE37796351418FC2F5985DA55441333333D369635141AE47E18A3BA55441B81E851B676351418FC2F5483CA55441EC51B8FE4E6351413D0AD7D345A554419A9999295F63514114AE47D169A55441295C8F526F635141B81E85CB8DA55441666666F6756351411F85EBB186A554413D0AD773846351411F85EB817DA55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>50917 - 1464045
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002200000000000080BB045141EC51B89E5A2A5541713D0A67B80451410AD7A3405C2A55418FC2F548B7045141CDCCCC6C5C2A554114AE4701B60451413D0AD7335C2A5541A4703DEAB4045141295C8F225C2A55411F85EB01B904514185EB51485D2A55418FC2F598C4045141C3F528EC5F2A5541C3F5282CCF04514152B81E55622A5541C3F528ECD8045141D7A3708D642A55415C8FC265DE045141A4703D5A652A5541C3F5281CDF045141295C8F72652A5541E17A146EDE04514152B81EB5612A55415C8FC235DD045141A4703DEA5D2A5541E17A147EDC045141666666965B2A55413D0AD7D3DB045141E17A14AE5B2A554114AE47E1D6045141A4703D5A5C2A55410AD7A3F0D4045141C3F5286C522A5541713D0A97D3045141333333D34A2A5541EC51B88ED0045141333333034A2A5541A4703D6AD00451418FC2F5F8492A55411F85EB51CF045141E17A145E4B2A5541AE47E18ACE0451413D0AD7734B2A554133333383CA045141F6285C2F522A554185EB5138CA045141D7A3707D522A554185EB5188C804514114AE4751532A5541713D0A47C804514148E17A64532A5541CDCCCC3CC6045141CDCCCCFC532A554133333333C40451418FC2F5E8542A554152B81E55C104514133333353552A5541295C8F12BC0451419A9999A9562A55419A9999C9BB045141C3F5283C572A5541A4703D1ABC04514152B81E95582A5541CDCCCCFCBB045141E17A14EE592A554100000080BB045141EC51B89E5A2A5541
+</a>
+
+<b>
+0106000000010000000103000000010000002400000000000080BB045141EC51B89E5A2A5541713D0A67B80451410AD7A3405C2A55418FC2F548B7045141CDCCCC6C5C2A554114AE4701B60451413D0AD7335C2A5541A4703DEAB4045141295C8F225C2A55411F85EB01B904514185EB51485D2A55418FC2F598C4045141C3F528EC5F2A5541C3F5282CCF04514152B81E55622A5541C3F528ECD8045141D7A3708D642A55415C8FC265DE045141A4703D5A652A5541C3F5281CDF045141295C8F72652A5541E17A146EDE04514152B81EB5612A55415C8FC235DD045141A4703DEA5D2A5541E17A147EDC045141666666965B2A55413D0AD7D3DB045141E17A14AE5B2A554114AE47E1D6045141A4703D5A5C2A55410AD7A3F0D4045141C3F5286C522A5541713D0A97D3045141333333D34A2A5541B83FF79CD1045141B9A5FF7A4A2A55412AF0BD93D0045141398118C7492A55411442EB4ECF0451415578685E4B2A554178E32A8ECE04514106087B734B2A5541EA84C588CD0451412EE908234D2A5541AAF8C288CA0451412B9D1126522A5541FE49EE3ACA0451414CB5B77A522A554136010878C80451412C201256532A5541BEE64333C80451413C653F6A532A5541830FC4B7C60451415859EFD8532A55414C6FDBBBC4045141A94516AB542A5541AA3310C3C3045141156430F9542A554176E85DE5C004514172C79D6F552A5541A921B8C6BE045141097499F9552A5541B10D4CD2BB04514117228FA9562A55416D2B0612BC045141DA8F63F5582A5541CDCCCCFCBB045141E17A14EE592A554100000080BB045141EC51B89E5A2A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>50917 - 22574
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000002200000000000080BB045141EC51B89E5A2A5541713D0A67B80451410AD7A3405C2A55418FC2F548B7045141CDCCCC6C5C2A554114AE4701B60451413D0AD7335C2A5541A4703DEAB4045141295C8F225C2A55411F85EB01B904514185EB51485D2A55418FC2F598C4045141C3F528EC5F2A5541C3F5282CCF04514152B81E55622A5541C3F528ECD8045141D7A3708D642A55415C8FC265DE045141A4703D5A652A5541C3F5281CDF045141295C8F72652A5541E17A146EDE04514152B81EB5612A55415C8FC235DD045141A4703DEA5D2A5541E17A147EDC045141666666965B2A55413D0AD7D3DB045141E17A14AE5B2A554114AE47E1D6045141A4703D5A5C2A55410AD7A3F0D4045141C3F5286C522A5541713D0A97D3045141333333D34A2A5541EC51B88ED0045141333333034A2A5541A4703D6AD00451418FC2F5F8492A55411F85EB51CF045141E17A145E4B2A5541AE47E18ACE0451413D0AD7734B2A554133333383CA045141F6285C2F522A554185EB5138CA045141D7A3707D522A554185EB5188C804514114AE4751532A5541713D0A47C804514148E17A64532A5541CDCCCC3CC6045141CDCCCCFC532A554133333333C40451418FC2F5E8542A554152B81E55C104514133333353552A5541295C8F12BC0451419A9999A9562A55419A9999C9BB045141C3F5283C572A5541A4703D1ABC04514152B81E95582A5541CDCCCCFCBB045141E17A14EE592A554100000080BB045141EC51B89E5A2A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000292A867AD0045141DFBBB7E6492A5541D4032468CF045141477EC5414B2A55415AF32365CF045141A21F8B424B2A55411442EB4ECF0451415578685E4B2A5541974543B9CE04514130EBC46E4B2A554171DF7906CC04514185DA60A84F2A5541AAF8C288CA0451412B9D1126522A5541FE49EE3ACA0451414CB5B77A522A554166335638CA045141F2C5FA7B522A5541427FFC36CA0451414D10187E522A5541F847ACA3C904514196274DC4522A554136010878C80451412C201256532A554114C4D867C80451411ACED15A532A55410CC3C867C8045141B06ED95A532A5541C997398CC6045141494EF3EA532A55414C6FDBBBC4045141A94516AB542A5541A0A71EAEC4045141D74466AF542A554104B2B218C404514162A6CBEC542A554139CC117BC3045141C446CF04552A554176E85DE5C004514172C79D6F552A5541FC136E5FC0045141B267AC91552A55416C4A35D6BB04514119BBA2CD562A5541899AB312BC0451411C5E73ED582A55417757C844C004514148AD11FC582A5541066681D9C4045141D0B3AE15572A55411D7325FFCA04514144BB104C532A5541CCA62295D1045141D1EAAF754A2A554183AE8F0BD10451412AAF5E184A2A5541292A867AD0045141DFBBB7E6492A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>51581 - 5231111
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000026000000F6285C5F1FFC504100000000A32A55410AD7A3A013FC50417B14AE57A02A55418FC2F5C80FFC50410AD7A300A02A554185EB51080FFC5041E17A14EE9F2A5541AE47E18A0DFC5041666666C6A22A55417B14AE970CFC504166666606A92A5541713D0A270BFC504166666676AD2A55410AD7A3A00CFC504148E17A14B22A5541333333C30DFC504152B81E25B52A5541E17A149E0FFC5041A4703DCAB82A55411F85EBC114FC5041CDCCCCFCC82A5541AE47E12A18FC50415C8FC245D12A5541333333331AFC504114AE47E1D62A5541CDCCCC9C1DFC50418FC2F558DB2A5541F6285C7F22FC5041B81E858BDC2A5541E17A147E24FC5041D7A3709DDC2A554148E17A3425FC50413D0AD7B3DC2A554114AE470127FC504148E17AA4DC2A554114AE47C128FC504114AE4781DD2A5541A4703D8A2EFC50418FC2F5D8DE2A55411F85EB3137FC50413D0AD703E12A554114AE47813EFC5041E17A144EE12A55417B14AE4743FC5041713D0A67E12A5541E17A144E47FC504185EB5158E12A5541B81E85BB47FC5041F6285C3FE12A5541F6285C0F45FC5041E17A140EDB2A5541F6285CEF40FC5041F6285C1FD22A5541E17A140E3DFC5041713D0A97CA2A5541AE47E17A38FC5041CDCCCC9CC22A5541E17A143E35FC5041A4703DCAC22A55413D0AD7F331FC504114AE4701C32A55411F85EB9128FC5041AE47E13AC52A5541333333A324FC5041EC51B82EC62A554114AE471125FC50417B14AE37BE2A5541A4703D7A26FC5041D7A3701DB52A554152B81E5528FC504185EB5128A72A5541D7A3700D28FC504114AE47F1A52A5541F6285C5F1FFC504100000000A32A5541
+</a>
+
+<b>
+0106000000010000000103000000010000000D00000088F5CDBC0FFC5041167BB5D2B82A55414E0BA56315FC5041049A8480BA2A5541C041911D20FC5041CD1EFE6CBD2A55412E73B80C25FC5041B5571756BE2A554127B5DF9828FC5041D21DA54FA82A5541D7A3700D28FC504114AE47F1A52A55418D0DE2E41EFC5041B59D49E4A22A55413E02651D13FC5041771E114CA02A5541B29B15FE0EFC50412DB65AED9F2A5541AB7681CA0DFC50416FFD93E0A72A5541887EF2370DFC5041087A79B7AD2A5541C2C01DDA0FFC5041DCAF65B5B82A554188F5CDBC0FFC5041167BB5D2B82A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>52483 - 3004698
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000190000006666661691F75041E17A141EFC425541EC51B8FE91F750413D0AD71300435541AE47E1CA97F75041EC51B88EFD4255416666666695F750415C8FC285EE425541F6285CFFA0F750413D0AD783E842554185EB51A8ADF750415C8FC2F5E1425541C3F5284CB5F750410AD7A300DE425541F6285C7FAEF75041EC51B8CED442554185EB51D8AAF7504185EB5198CF425541C3F5287CA7F75041B81E853BCB42554148E17AE4A3F750411F85EB21C54255417B14AE37A1F75041CDCCCCCCBE425541C3F528BCA0F750415C8FC275BD425541000000409DF75041E17A142EBD4255415C8FC2559BF75041C3F5285CBB4255417B14AE4797F75041295C8FE2BE425541295C8F8297F750419A999949CA425541F6285C5F96F75041CDCCCC2CD54255410AD7A3B091F750411F85EBA1DF425541295C8FD28DF7504185EB51B8E842554185EB51E890F750417B14AEB7E94255417B14AE7792F750418FC2F538EA42554185EB51C892F750413D0AD7B3EC4255417B14AE4794F7504114AE4771F84255416666661691F75041E17A141EFC425541
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000C032AD7A9FF7504107C697FCC64255418F4AAF13A0F75041BA089AFBC8425541BAD3B732A0F7504149184177C94255416B8D9E20A1F7504196722C2BCD4255418DDDD274A2F7504168B57F75D142554199FDEAE2A2F75041B1FAB6ADD24255412E66F023A4F750415FE25638D542554178C73D3DA4F750415CF7AF60D5425541FAF6C82EA5F75041B9C1DCE1D642554156B5DEABA5F75041AFDF53A9D74255413CEBE785A6F75041D72A0405D9425541B2A5B9A0A8F75041A30524DFDB4255413C4A172DACF750417677AC41E04255411631F9A7ADF7504162875CF5E1425541E9958D2CB5F75041CBA2E6D5DD42554176505C25B2F750412B5DAEBDD9425541459175B4AFF75041FB91AF70D642554170E65F3DABF7504142178928D0425541FF4237C2A7F75041005B7A96CB425541DDD47004A4F750415A533058C54255413BEEA2F3A1F750416353BF89C0425541CDF45AD3A0F7504118CB9FB5BD425541F52313BA9FF75041D2878D04BE425541CF8F6E059FF75041C96EB61CBF42554187DE45929EF7504104566CF4C342554105A64A179FF75041370EACB0C5425541C032AD7A9FF7504107C697FCC6425541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>52483 - 3004718
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000190000006666661691F75041E17A141EFC425541EC51B8FE91F750413D0AD71300435541AE47E1CA97F75041EC51B88EFD4255416666666695F750415C8FC285EE425541F6285CFFA0F750413D0AD783E842554185EB51A8ADF750415C8FC2F5E1425541C3F5284CB5F750410AD7A300DE425541F6285C7FAEF75041EC51B8CED442554185EB51D8AAF7504185EB5198CF425541C3F5287CA7F75041B81E853BCB42554148E17AE4A3F750411F85EB21C54255417B14AE37A1F75041CDCCCCCCBE425541C3F528BCA0F750415C8FC275BD425541000000409DF75041E17A142EBD4255415C8FC2559BF75041C3F5285CBB4255417B14AE4797F75041295C8FE2BE425541295C8F8297F750419A999949CA425541F6285C5F96F75041CDCCCC2CD54255410AD7A3B091F750411F85EBA1DF425541295C8FD28DF7504185EB51B8E842554185EB51E890F750417B14AEB7E94255417B14AE7792F750418FC2F538EA42554185EB51C892F750413D0AD7B3EC4255417B14AE4794F7504114AE4771F84255416666661691F75041E17A141EFC425541
+</a>
+
+<b>
+0106000000010000000103000000010000001D0000009BF9301991F750415E604746E94255418F34E2EE90F7504178B7B713EC425541ABF1137192F75041538FC684F14255418CBBF73F93F75041B880398FF542554133928D5B93F750413DA8C8CAF8425541D32A84A093F75041A6122684FA42554166CD32ED90F750410C3DB96AFB4255411643D00E92F750416C39D80C004355414031C98794F75041CFDFB5F9FE42554101A293A694F750412A3AB5BFFD425541E26B777595F75041961DFD27FD425541F1AC6A4A97F75041F68406E3FC4255418C07C2B897F750414970D1F0FC4255411ECF0F3697F750417C5F83E7F94255419E2C3CA396F750417A59D24CF6425541E33C713A96F7504121F047BAF342554144C060B795F75041A2ADA482F04255416666666695F750415C8FC285EE42554134C9AA4F98F750412242B603ED425541D07414149CF75041F9832510EB4255416925DCBF9EF750413EE3F2ADE9425541FBD170D7A0F75041BF5B9562E84255410568A0239FF75041284382F7E6425541B76B5E039CF750413F6BD15CE442554182DE849C9BF7504132662207E44255416861C29498F750412847A8CBE0425541BA5814D797F75041B9925B68E0425541BA6CC64691F750410453C550E94255419BF9301991F750415E604746E9425541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>52483 - 3820446
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000190000006666661691F75041E17A141EFC425541EC51B8FE91F750413D0AD71300435541AE47E1CA97F75041EC51B88EFD4255416666666695F750415C8FC285EE425541F6285CFFA0F750413D0AD783E842554185EB51A8ADF750415C8FC2F5E1425541C3F5284CB5F750410AD7A300DE425541F6285C7FAEF75041EC51B8CED442554185EB51D8AAF7504185EB5198CF425541C3F5287CA7F75041B81E853BCB42554148E17AE4A3F750411F85EB21C54255417B14AE37A1F75041CDCCCCCCBE425541C3F528BCA0F750415C8FC275BD425541000000409DF75041E17A142EBD4255415C8FC2559BF75041C3F5285CBB4255417B14AE4797F75041295C8FE2BE425541295C8F8297F750419A999949CA425541F6285C5F96F75041CDCCCC2CD54255410AD7A3B091F750411F85EBA1DF425541295C8FD28DF7504185EB51B8E842554185EB51E890F750417B14AEB7E94255417B14AE7792F750418FC2F538EA42554185EB51C892F750413D0AD7B3EC4255417B14AE4794F7504114AE4771F84255416666661691F75041E17A141EFC425541
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000C032AD7A9FF7504107C697FCC64255418F4AAF13A0F75041BA089AFBC8425541BAD3B732A0F7504149184177C94255416B8D9E20A1F7504196722C2BCD4255418DDDD274A2F7504168B57F75D142554199FDEAE2A2F75041B1FAB6ADD24255412E66F023A4F750415FE25638D542554178C73D3DA4F750415CF7AF60D5425541FAF6C82EA5F75041B9C1DCE1D642554156B5DEABA5F75041AFDF53A9D74255413CEBE785A6F75041D72A0405D9425541B2A5B9A0A8F75041A30524DFDB4255413C4A172DACF750417677AC41E04255411631F9A7ADF7504162875CF5E1425541E9958D2CB5F75041CBA2E6D5DD42554176505C25B2F750412B5DAEBDD9425541459175B4AFF75041FB91AF70D642554170E65F3DABF7504142178928D0425541FF4237C2A7F75041005B7A96CB425541DDD47004A4F750415A533058C54255413BEEA2F3A1F750416353BF89C0425541CDF45AD3A0F7504118CB9FB5BD425541F52313BA9FF75041D2878D04BE425541CF8F6E059FF75041C96EB61CBF42554187DE45929EF7504104566CF4C342554105A64A179FF75041370EACB0C5425541C032AD7A9FF7504107C697FCC6425541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>52483 - 3820577
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000190000006666661691F75041E17A141EFC425541EC51B8FE91F750413D0AD71300435541AE47E1CA97F75041EC51B88EFD4255416666666695F750415C8FC285EE425541F6285CFFA0F750413D0AD783E842554185EB51A8ADF750415C8FC2F5E1425541C3F5284CB5F750410AD7A300DE425541F6285C7FAEF75041EC51B8CED442554185EB51D8AAF7504185EB5198CF425541C3F5287CA7F75041B81E853BCB42554148E17AE4A3F750411F85EB21C54255417B14AE37A1F75041CDCCCCCCBE425541C3F528BCA0F750415C8FC275BD425541000000409DF75041E17A142EBD4255415C8FC2559BF75041C3F5285CBB4255417B14AE4797F75041295C8FE2BE425541295C8F8297F750419A999949CA425541F6285C5F96F75041CDCCCC2CD54255410AD7A3B091F750411F85EBA1DF425541295C8FD28DF7504185EB51B8E842554185EB51E890F750417B14AEB7E94255417B14AE7792F750418FC2F538EA42554185EB51C892F750413D0AD7B3EC4255417B14AE4794F7504114AE4771F84255416666661691F75041E17A141EFC425541
+</a>
+
+<b>
+0106000000010000000103000000010000001D0000009BF9301991F750415E604746E94255418F34E2EE90F7504178B7B713EC425541ABF1137192F75041538FC684F14255418CBBF73F93F75041B880398FF542554133928D5B93F750413DA8C8CAF8425541D32A84A093F75041A6122684FA42554166CD32ED90F750410C3DB96AFB4255411643D00E92F750416C39D80C004355414031C98794F75041CFDFB5F9FE42554101A293A694F750412A3AB5BFFD425541E26B777595F75041961DFD27FD425541F1AC6A4A97F75041F68406E3FC4255418C07C2B897F750414970D1F0FC4255411ECF0F3697F750417C5F83E7F94255419E2C3CA396F750417A59D24CF6425541E33C713A96F7504121F047BAF342554144C060B795F75041A2ADA482F04255416666666695F750415C8FC285EE42554134C9AA4F98F750412242B603ED425541D07414149CF75041F9832510EB4255416925DCBF9EF750413EE3F2ADE9425541FBD170D7A0F75041BF5B9562E84255410568A0239FF75041284382F7E6425541B76B5E039CF750413F6BD15CE442554182DE849C9BF7504132662207E44255416861C29498F750412847A8CBE0425541BA5814D797F75041B9925B68E0425541BA6CC64691F750410453C550E94255419BF9301991F750415E604746E9425541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>55437 - 1275437
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000D00000048E17A54845F51410AD7A3209F995441713D0A17845F51411F85EB11A099544185EB5108805F514185EB5138B0995441000000208A5F51413D0AD7C3B1995441F6285CFF8E5F51415C8FC2B5B2995441C3F528FC8F5F51411F85EB31AF99544185EB51F8905F51413D0AD793AC995441713D0A07855F51419A9999599C9954418FC2F5E8835F5141A4703DDA9A99544100000050825F51417B14AE479899544114AE47717A5F514148E17AD48599544148E17AB4795F514152B81EC58899544148E17A54845F51410AD7A3209F995441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000992EBBBF8A5F514108F36019A4995441499B80E7865F5141B12DE2F29E99544171346638845F5141B7A25D529B9954414D83F899825F5141CA16CCBE98995441EF03DF4F825F5141ABC0604798995441B8D893D3815F51414904DB2F97995441CCC1F276805F514172E9AEF2939954416C9DD6267F5F514160B4B9DE909954410200A32F7E5F5141190A339B8E9954410A0B5F757C5F51416F232FA38A9954414FC1BC707A5F51411EB2A4D68599544148E17AB4795F514152B81EC5889954416E1C8A12825F51416426EC5F9A995441C0D4A857825F51416EFD8FF09A99544148E17A54845F51410AD7A3209F995441713D0A17845F51411F85EB11A099544185EB5108805F514185EB5138B0995441000000208A5F51413D0AD7C3B1995441F6285CFF8E5F51415C8FC2B5B2995441C3F528FC8F5F51411F85EB31AF995441739F71F8905F51413B0ED992AC995441ABA6374F905F5141341C10AEAB9954413074954D8F5F51413660FD4FAA9954418A87FB118D5F51411C700B5DA7995441992EBBBF8A5F514108F36019A4995441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>55437 - 3193207
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000D00000048E17A54845F51410AD7A3209F995441713D0A17845F51411F85EB11A099544185EB5108805F514185EB5138B0995441000000208A5F51413D0AD7C3B1995441F6285CFF8E5F51415C8FC2B5B2995441C3F528FC8F5F51411F85EB31AF99544185EB51F8905F51413D0AD793AC995441713D0A07855F51419A9999599C9954418FC2F5E8835F5141A4703DDA9A99544100000050825F51417B14AE479899544114AE47717A5F514148E17AD48599544148E17AB4795F514152B81EC58899544148E17A54845F51410AD7A3209F995441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000992EBBBF8A5F514108F36019A4995441499B80E7865F5141B12DE2F29E99544171346638845F5141B7A25D529B9954414D83F899825F5141CA16CCBE98995441EF03DF4F825F5141ABC0604798995441B8D893D3815F51414904DB2F97995441CCC1F276805F514172E9AEF2939954416C9DD6267F5F514160B4B9DE909954410200A32F7E5F5141190A339B8E9954410A0B5F757C5F51416F232FA38A9954414FC1BC707A5F51411EB2A4D68599544148E17AB4795F514152B81EC5889954416E1C8A12825F51416426EC5F9A995441C0D4A857825F51416EFD8FF09A99544148E17A54845F51410AD7A3209F995441713D0A17845F51411F85EB11A099544185EB5108805F514185EB5138B0995441000000208A5F51413D0AD7C3B1995441F6285CFF8E5F51415C8FC2B5B2995441C3F528FC8F5F51411F85EB31AF995441739F71F8905F51413B0ED992AC995441ABA6374F905F5141341C10AEAB9954413074954D8F5F51413660FD4FAA9954418A87FB118D5F51411C700B5DA7995441992EBBBF8A5F514108F36019A4995441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>56017 - 2945619
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000001000000070000008FC2F548E9135141713D0A07995D544185EB5178E713514114AE47918F5D5441713D0AE7C0135141713D0A97935D54417B14AE279B135141B81E858B975D5441713D0A679D13514152B81EF5A05D54410AD7A3E0C21351418FC2F5089D5D54418FC2F548E9135141713D0A07995D5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000B7D466DAC1135141256FA87D935D544185EB5178E713514114AE47918F5D544179B79E79E6135141C24269628A5D5441EED7FCCCE5135141012F1EEC845D5441A4703D7AE513514100000030855D5441640E1CE4BE1351417F6F4530895D5441C5FFD1FCB8135141EC1A63CF895D5441F6285CAF98135141666666368D5D5441746197259A1351413BC56AB0925D54417B14AE279B135141B81E858B975D5441D042C62FC11351412437748F935D5441B7D466DAC1135141256FA87D935D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>56017 - 3536078
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000001000000070000008FC2F548E9135141713D0A07995D544185EB5178E713514114AE47918F5D5441713D0AE7C0135141713D0A97935D54417B14AE279B135141B81E858B975D5441713D0A679D13514152B81EF5A05D54410AD7A3E0C21351418FC2F5089D5D54418FC2F548E9135141713D0A07995D5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000B7D466DAC1135141256FA87D935D544185EB5178E713514114AE47918F5D544179B79E79E6135141C24269628A5D5441EED7FCCCE5135141012F1EEC845D5441A4703D7AE513514100000030855D5441640E1CE4BE1351417F6F4530895D5441C5FFD1FCB8135141EC1A63CF895D5441F6285CAF98135141666666368D5D5441746197259A1351413BC56AB0925D54417B14AE279B135141B81E858B975D5441D042C62FC11351412437748F935D5441B7D466DAC1135141256FA87D935D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>58589 - 194342
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000007000000A4703D8AEBAD50415C8FC26580495441B81E85ABE8AD5041A4703D5A78495441A4703DFAE2AD5041F6285C5F7849544148E17A74C9AD5041AE47E1AA784954419A9999A9C9AD504152B81EB57C495441295C8F32CAAD50413D0AD7C37C495441A4703D8AEBAD50415C8FC26580495441
+</a>
+
+<b>
+010600000001000000010300000001000000090000002B4B3689C9AD5041D7FB873E7A4954419A9999A9C9AD504152B81EB57C495441295C8F32CAAD50413D0AD7C37C495441A4703D8AEBAD50415C8FC26580495441B81E85ABE8AD5041A4703D5A78495441A4703DFAE2AD5041F6285C5F78495441D83CC1B7DAAD504114D5CC777849544131397B74C9AD50416908E2AA784954412B4B3689C9AD5041D7FB873E7A495441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>58589 - 372879
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000007000000A4703D8AEBAD50415C8FC26580495441B81E85ABE8AD5041A4703D5A78495441A4703DFAE2AD5041F6285C5F7849544148E17A74C9AD5041AE47E1AA784954419A9999A9C9AD504152B81EB57C495441295C8F32CAAD50413D0AD7C37C495441A4703D8AEBAD50415C8FC26580495441
+</a>
+
+<b>
+010600000001000000010300000001000000090000002B4B3689C9AD5041D7FB873E7A4954419A9999A9C9AD504152B81EB57C495441295C8F32CAAD50413D0AD7C37C495441A4703D8AEBAD50415C8FC26580495441B81E85ABE8AD5041A4703D5A78495441A4703DFAE2AD5041F6285C5F78495441D83CC1B7DAAD504114D5CC777849544131397B74C9AD50416908E2AA784954412B4B3689C9AD5041D7FB873E7A495441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>58908 - 1057799
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000015000000CDCCCCAC3D085141D7A370EDAB75544148E17AE43D085141CDCCCC9CAE7554418FC2F5883E08514114AE4731B17554410AD7A30041085141F6285C0FB47554413D0AD7F3550851413D0AD7F3B1755441295C8F32660851411F85EB51B07554415C8FC2B568085141713D0A47AF75544114AE47E169085141713D0A77AE755441000000D06B08514100000020AD755441D7A3702D6D0851417B14AE77AC755441C3F5282C6C0851410AD7A390A67554415C8FC2B56A085141F6285C6FA575544114AE47316808514100000040A475544114AE47616108514133333353A4755441A4703D4A5808514114AE4791A475544114AE47C1550851411F85EBB1A4755441AE47E11A520851415C8FC215A3755441CDCCCCCC4608514152B81E95A375544114AE47814008514133333323A5755441666666D63D085141C3F5289CA7755441CDCCCCAC3D085141D7A370EDAB755441
+</a>
+
+<b>
+0106000000010000000103000000010000005A000000C57325A949085141120A6330B37554411AB5DF0541085141D522871FB4755441354D13923F08514152605F65B27554418FC2F5883E08514114AE4731B175544184B2AD6C3E08514159BEB6BFB075544186DDE97E3B08514166C2A0DAB07554414656B9422F085141615A4674B0755441E9F14C8223085141C150F711B075544114AE47511B085141D7A370CDAF75544148E17A7419085141E17A147EB07554415C8FC225140851411F85EB41B5755441713D0AF7100851411F85EBB1B9755441713D0AA71008514152B81E15C1755441000000C010085141CDCCCCACC475544185EB518811085141A4703D7AC9755441B81E85AB110851417B14AEA7CA7554417B14AE6711085141A4703DFACC755441B81E85BB100851411F85EBA1CF755441B81E853B0F08514148E17A74D4755441AE47E12A0D08514100000040DA755441EC51B84E0C08514152B81EF5DE755441AE47E19A0B085141AE47E1DAE4755441EC51B82E0A085141CDCCCC8CEB7554418FC2F5A809085141C3F528ECEC75544148E17AF4070851411F85EBB1F175544185EB51B807085141A4703D4AF3755441B81E858B0708514185EB51C8F47554415C8FC20508085141D7A3702DF775544185EB51580A0851417B14AE67F8755441666666B60D085141A4703DBAFA755441295C8F620F0851413D0AD793FC755441A4703DCA0F08514166666606FD755441F6285CDF11085141F6285C7FFE755441713D0AD712085141666666B6FE755441E17A14AE130851411F85EB61FE755441A4703D8A1408514133333303FD7554418FC2F5F81608514133333353F8755441D7A3703D19085141D7A3708DF57554418FC2F5881C08514148E17A94F275544152B81EF51E0851413D0AD7D3F0755441295C8FB2230851411F85EB11EE7554418FC2F5F82808514133333393EB755441F6285CAF2A0851411F85EBE1E775544148E17A042C08514166666686E5755441C3F528CC2D085141A4703DCAE275544152B81E052F0851417B14AE17E27554418FC2F5E82A085141C3F528CCDD7554413333335327085141295C8F02DF755441F6285C7F22085141E17A14AEDB755441BA35E0E5220851411F11A6D5DA755441D8F1EB751E0851414D912BC1D87554412EA1C7B02208514141C7407ECE755441F73E859723085141BD5C85C2CC755441AA1C808825085141039DCDA3C97554413E58FB5527085141214C937DC7755441D97533512A0851412159D933C5755441FABCC8783A08514138406E4CBD75544187EFB4F541085141BBC4B574BA7554418DD9DFEE4908514184407923B975544141767C50570851418C2F7C07B8755441C0A390E267085141A1EF3EFDB67554410E927D186F0851412567406FB67554411310E66A730851411CCE95CAB3755441E6605D8677085141AD9CD4D3B1755441AE0049567D085141C3FF6FA3AE7554414C257495820851413B3DD035AB755441D814AC238B0851419B203A20A57554412DE25F01910851411BC3756BA17554412A7CB0BA950851417248D1169F7554414CB0705698085141E263E12B9C7554418C8B66BF9908514138819D3399755441AD94CD8C9A0851417F5876CB9675544123E70B7E9B0851410FF8F4459475544174564D5F950851419DFC092D967554416FD34B748D0851415AAF5E9F97755441F3744B988B085141623F2733987554415975042885085141AA41C3279E75544141BD57477E08514177ED45E0A27554418C3BB7D27B0851416F1E7B7FA4755441916A2CA178085141A645D897A7755441F8B6DC267208514106B9B8D5AA7554414AEDCBB36C085141051846B2AC755441A34E82866A085141FF457804AE75544114AE47E169085141713D0A77AE7554415C8FC2B568085141713D0A47AF755441EEE136D167085141568FDEA5AF755441295C8F32660851411F85EB51B07554413EFDC61F5D085141DA96573BB1755441204B5A205608514128E75DEFB1755441C57325A949085141120A6330B3755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>58908 - 3670773
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000015000000CDCCCCAC3D085141D7A370EDAB75544148E17AE43D085141CDCCCC9CAE7554418FC2F5883E08514114AE4731B17554410AD7A30041085141F6285C0FB47554413D0AD7F3550851413D0AD7F3B1755441295C8F32660851411F85EB51B07554415C8FC2B568085141713D0A47AF75544114AE47E169085141713D0A77AE755441000000D06B08514100000020AD755441D7A3702D6D0851417B14AE77AC755441C3F5282C6C0851410AD7A390A67554415C8FC2B56A085141F6285C6FA575544114AE47316808514100000040A475544114AE47616108514133333353A4755441A4703D4A5808514114AE4791A475544114AE47C1550851411F85EBB1A4755441AE47E11A520851415C8FC215A3755441CDCCCCCC4608514152B81E95A375544114AE47814008514133333323A5755441666666D63D085141C3F5289CA7755441CDCCCCAC3D085141D7A370EDAB755441
+</a>
+
+<b>
+0106000000010000000103000000010000005A000000C57325A949085141120A6330B37554411AB5DF0541085141D522871FB4755441354D13923F08514152605F65B27554418FC2F5883E08514114AE4731B175544184B2AD6C3E08514159BEB6BFB075544186DDE97E3B08514166C2A0DAB07554414656B9422F085141615A4674B0755441E9F14C8223085141C150F711B075544114AE47511B085141D7A370CDAF75544148E17A7419085141E17A147EB07554415C8FC225140851411F85EB41B5755441713D0AF7100851411F85EBB1B9755441713D0AA71008514152B81E15C1755441000000C010085141CDCCCCACC475544185EB518811085141A4703D7AC9755441B81E85AB110851417B14AEA7CA7554417B14AE6711085141A4703DFACC755441B81E85BB100851411F85EBA1CF755441B81E853B0F08514148E17A74D4755441AE47E12A0D08514100000040DA755441EC51B84E0C08514152B81EF5DE755441AE47E19A0B085141AE47E1DAE4755441EC51B82E0A085141CDCCCC8CEB7554418FC2F5A809085141C3F528ECEC75544148E17AF4070851411F85EBB1F175544185EB51B807085141A4703D4AF3755441B81E858B0708514185EB51C8F47554415C8FC20508085141D7A3702DF775544185EB51580A0851417B14AE67F8755441666666B60D085141A4703DBAFA755441295C8F620F0851413D0AD793FC755441A4703DCA0F08514166666606FD755441F6285CDF11085141F6285C7FFE755441713D0AD712085141666666B6FE755441E17A14AE130851411F85EB61FE755441A4703D8A1408514133333303FD7554418FC2F5F81608514133333353F8755441D7A3703D19085141D7A3708DF57554418FC2F5881C08514148E17A94F275544152B81EF51E0851413D0AD7D3F0755441295C8FB2230851411F85EB11EE7554418FC2F5F82808514133333393EB755441F6285CAF2A0851411F85EBE1E775544148E17A042C08514166666686E5755441C3F528CC2D085141A4703DCAE275544152B81E052F0851417B14AE17E27554418FC2F5E82A085141C3F528CCDD7554413333335327085141295C8F02DF755441F6285C7F22085141E17A14AEDB755441BA35E0E5220851411F11A6D5DA755441D8F1EB751E0851414D912BC1D87554412EA1C7B02208514141C7407ECE755441F73E859723085141BD5C85C2CC755441AA1C808825085141039DCDA3C97554413E58FB5527085141214C937DC7755441D97533512A0851412159D933C5755441FABCC8783A08514138406E4CBD75544187EFB4F541085141BBC4B574BA7554418DD9DFEE4908514184407923B975544141767C50570851418C2F7C07B8755441C0A390E267085141A1EF3EFDB67554410E927D186F0851412567406FB67554411310E66A730851411CCE95CAB3755441E6605D8677085141AD9CD4D3B1755441AE0049567D085141C3FF6FA3AE7554414C257495820851413B3DD035AB755441D814AC238B0851419B203A20A57554412DE25F01910851411BC3756BA17554412A7CB0BA950851417248D1169F7554414CB0705698085141E263E12B9C7554418C8B66BF9908514138819D3399755441AD94CD8C9A0851417F5876CB9675544123E70B7E9B0851410FF8F4459475544174564D5F950851419DFC092D967554416FD34B748D0851415AAF5E9F97755441F3744B988B085141623F2733987554415975042885085141AA41C3279E75544141BD57477E08514177ED45E0A27554418C3BB7D27B0851416F1E7B7FA4755441916A2CA178085141A645D897A7755441F8B6DC267208514106B9B8D5AA7554414AEDCBB36C085141051846B2AC755441A34E82866A085141FF457804AE75544114AE47E169085141713D0A77AE7554415C8FC2B568085141713D0A47AF755441EEE136D167085141568FDEA5AF755441295C8F32660851411F85EB51B07554413EFDC61F5D085141DA96573BB1755441204B5A205608514128E75DEFB1755441C57325A949085141120A6330B3755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>59167 - 1057799
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000004D0000007B14AEB78708514185EB5198A7755441000000808D085141C3F5286CA3755441B81E85AB90085141E17A149EA1755441E17A14EE920851418FC2F548A07554410AD7A3D095085141D7A3700D9F75544185EB5198980851410AD7A3E09B755441666666369A085141F6285C1F9875544185EB51289B0851417B14AE6794755441E17A140E96085141C3F5280C96755441F6285C3F900851413D0AD72397755441F6285CEF8B085141295C8FE297755441CDCCCC2C8508514148E17A249E755441D7A3704D7C085141B81E853BA47554418FC2F59878085141F6285C9FA7755441713D0AB772085141666666A6AA755441D7A3702D6D0851417B14AE77AC755441000000D06B08514100000020AD75544114AE47E169085141713D0A77AE7554415C8FC2B568085141713D0A47AF755441295C8F32660851411F85EB51B07554413D0AD7F3550851413D0AD7F3B17554410AD7A30041085141F6285C0FB47554418FC2F5883E08514114AE4731B17554413D0AD7833D085141B81E85EBB075544114AE47511B085141D7A370CDAF75544148E17A7419085141E17A147EB07554415C8FC225140851411F85EB41B5755441713D0AF7100851411F85EBB1B9755441713D0AA71008514152B81E15C1755441000000C010085141CDCCCCACC4755441EC51B84E25085141AE47E18AC67554413D0AD7231D085141713D0AF7D9755441000000D0130851419A999999EA75544185EB517813085141A4703DCAED7554415C8FC2251108514133333353FB755441295C8F620F0851413D0AD793FC755441A4703DCA0F08514166666606FD755441F6285CDF11085141F6285C7FFE755441713D0AD712085141666666B6FE755441E17A14AE130851411F85EB61FE755441A4703D8A1408514133333303FD7554418FC2F5F81608514133333353F8755441D7A3703D19085141D7A3708DF57554418FC2F5881C08514148E17A94F275544152B81EF51E0851413D0AD7D3F0755441713D0AC721085141EC51B81EEF755441295C8FB2230851411F85EB11EE7554418FC2F5F82808514133333393EB755441F6285CAF2A0851411F85EBE1E775544148E17A042C08514166666686E5755441C3F528CC2D085141A4703DCAE275544152B81E052F0851417B14AE17E27554418FC2F5E82A085141C3F528CCDD7554413333335327085141295C8F02DF755441F6285C7F22085141E17A14AEDB755441000000B025085141B81E856BD4755441713D0A972B085141CDCCCCFCD0755441295C8FE23008514185EB51A8D675544185EB518833085141295C8F52D57554418FC2F5E8330851411F85EBC1D3755441295C8F2235085141713D0A97D17554417B14AE87360851413D0AD703D0755441D7A3701D390851417B14AEE7D17554411F85EBF13A0851413D0AD793D07554416666660664085141B81E850BCD7554419A9999C9640851418FC2F528CD7554419A9999B96708514152B81E65C3755441F6285CFF69085141EC51B86EBE75544152B81EB56C0851419A999929B9755441A4703D6A6F0851413D0AD703B6755441713D0A07740851413D0AD773B37554419A999939790851419A999909B1755441000000407D0851411F85EBB1AE755441D7A3702D80085141AE47E1CAAC755441D7A370BD82085141B81E851BAB755441D7A370BD850851411F85EB21A97554417B14AEB78708514185EB5198A7755441
+</a>
+
+<b>
+0106000000010000000103000000010000005A000000C57325A949085141120A6330B37554411AB5DF0541085141D522871FB4755441354D13923F08514152605F65B27554418FC2F5883E08514114AE4731B175544184B2AD6C3E08514159BEB6BFB075544186DDE97E3B08514166C2A0DAB07554414656B9422F085141615A4674B0755441E9F14C8223085141C150F711B075544114AE47511B085141D7A370CDAF75544148E17A7419085141E17A147EB07554415C8FC225140851411F85EB41B5755441713D0AF7100851411F85EBB1B9755441713D0AA71008514152B81E15C1755441000000C010085141CDCCCCACC475544185EB518811085141A4703D7AC9755441B81E85AB110851417B14AEA7CA7554417B14AE6711085141A4703DFACC755441B81E85BB100851411F85EBA1CF755441B81E853B0F08514148E17A74D4755441AE47E12A0D08514100000040DA755441EC51B84E0C08514152B81EF5DE755441AE47E19A0B085141AE47E1DAE4755441EC51B82E0A085141CDCCCC8CEB7554418FC2F5A809085141C3F528ECEC75544148E17AF4070851411F85EBB1F175544185EB51B807085141A4703D4AF3755441B81E858B0708514185EB51C8F47554415C8FC20508085141D7A3702DF775544185EB51580A0851417B14AE67F8755441666666B60D085141A4703DBAFA755441295C8F620F0851413D0AD793FC755441A4703DCA0F08514166666606FD755441F6285CDF11085141F6285C7FFE755441713D0AD712085141666666B6FE755441E17A14AE130851411F85EB61FE755441A4703D8A1408514133333303FD7554418FC2F5F81608514133333353F8755441D7A3703D19085141D7A3708DF57554418FC2F5881C08514148E17A94F275544152B81EF51E0851413D0AD7D3F0755441295C8FB2230851411F85EB11EE7554418FC2F5F82808514133333393EB755441F6285CAF2A0851411F85EBE1E775544148E17A042C08514166666686E5755441C3F528CC2D085141A4703DCAE275544152B81E052F0851417B14AE17E27554418FC2F5E82A085141C3F528CCDD7554413333335327085141295C8F02DF755441F6285C7F22085141E17A14AEDB755441BA35E0E5220851411F11A6D5DA755441D8F1EB751E0851414D912BC1D87554412EA1C7B02208514141C7407ECE755441F73E859723085141BD5C85C2CC755441AA1C808825085141039DCDA3C97554413E58FB5527085141214C937DC7755441D97533512A0851412159D933C5755441FABCC8783A08514138406E4CBD75544187EFB4F541085141BBC4B574BA7554418DD9DFEE4908514184407923B975544141767C50570851418C2F7C07B8755441C0A390E267085141A1EF3EFDB67554410E927D186F0851412567406FB67554411310E66A730851411CCE95CAB3755441E6605D8677085141AD9CD4D3B1755441AE0049567D085141C3FF6FA3AE7554414C257495820851413B3DD035AB755441D814AC238B0851419B203A20A57554412DE25F01910851411BC3756BA17554412A7CB0BA950851417248D1169F7554414CB0705698085141E263E12B9C7554418C8B66BF9908514138819D3399755441AD94CD8C9A0851417F5876CB9675544123E70B7E9B0851410FF8F4459475544174564D5F950851419DFC092D967554416FD34B748D0851415AAF5E9F97755441F3744B988B085141623F2733987554415975042885085141AA41C3279E75544141BD57477E08514177ED45E0A27554418C3BB7D27B0851416F1E7B7FA4755441916A2CA178085141A645D897A7755441F8B6DC267208514106B9B8D5AA7554414AEDCBB36C085141051846B2AC755441A34E82866A085141FF457804AE75544114AE47E169085141713D0A77AE7554415C8FC2B568085141713D0A47AF755441EEE136D167085141568FDEA5AF755441295C8F32660851411F85EB51B07554413EFDC61F5D085141DA96573BB1755441204B5A205608514128E75DEFB1755441C57325A949085141120A6330B3755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>59167 - 3670773
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000004D0000007B14AEB78708514185EB5198A7755441000000808D085141C3F5286CA3755441B81E85AB90085141E17A149EA1755441E17A14EE920851418FC2F548A07554410AD7A3D095085141D7A3700D9F75544185EB5198980851410AD7A3E09B755441666666369A085141F6285C1F9875544185EB51289B0851417B14AE6794755441E17A140E96085141C3F5280C96755441F6285C3F900851413D0AD72397755441F6285CEF8B085141295C8FE297755441CDCCCC2C8508514148E17A249E755441D7A3704D7C085141B81E853BA47554418FC2F59878085141F6285C9FA7755441713D0AB772085141666666A6AA755441D7A3702D6D0851417B14AE77AC755441000000D06B08514100000020AD75544114AE47E169085141713D0A77AE7554415C8FC2B568085141713D0A47AF755441295C8F32660851411F85EB51B07554413D0AD7F3550851413D0AD7F3B17554410AD7A30041085141F6285C0FB47554418FC2F5883E08514114AE4731B17554413D0AD7833D085141B81E85EBB075544114AE47511B085141D7A370CDAF75544148E17A7419085141E17A147EB07554415C8FC225140851411F85EB41B5755441713D0AF7100851411F85EBB1B9755441713D0AA71008514152B81E15C1755441000000C010085141CDCCCCACC4755441EC51B84E25085141AE47E18AC67554413D0AD7231D085141713D0AF7D9755441000000D0130851419A999999EA75544185EB517813085141A4703DCAED7554415C8FC2251108514133333353FB755441295C8F620F0851413D0AD793FC755441A4703DCA0F08514166666606FD755441F6285CDF11085141F6285C7FFE755441713D0AD712085141666666B6FE755441E17A14AE130851411F85EB61FE755441A4703D8A1408514133333303FD7554418FC2F5F81608514133333353F8755441D7A3703D19085141D7A3708DF57554418FC2F5881C08514148E17A94F275544152B81EF51E0851413D0AD7D3F0755441713D0AC721085141EC51B81EEF755441295C8FB2230851411F85EB11EE7554418FC2F5F82808514133333393EB755441F6285CAF2A0851411F85EBE1E775544148E17A042C08514166666686E5755441C3F528CC2D085141A4703DCAE275544152B81E052F0851417B14AE17E27554418FC2F5E82A085141C3F528CCDD7554413333335327085141295C8F02DF755441F6285C7F22085141E17A14AEDB755441000000B025085141B81E856BD4755441713D0A972B085141CDCCCCFCD0755441295C8FE23008514185EB51A8D675544185EB518833085141295C8F52D57554418FC2F5E8330851411F85EBC1D3755441295C8F2235085141713D0A97D17554417B14AE87360851413D0AD703D0755441D7A3701D390851417B14AEE7D17554411F85EBF13A0851413D0AD793D07554416666660664085141B81E850BCD7554419A9999C9640851418FC2F528CD7554419A9999B96708514152B81E65C3755441F6285CFF69085141EC51B86EBE75544152B81EB56C0851419A999929B9755441A4703D6A6F0851413D0AD703B6755441713D0A07740851413D0AD773B37554419A999939790851419A999909B1755441000000407D0851411F85EBB1AE755441D7A3702D80085141AE47E1CAAC755441D7A370BD82085141B81E851BAB755441D7A370BD850851411F85EB21A97554417B14AEB78708514185EB5198A7755441
+</a>
+
+<b>
+0106000000010000000103000000010000005A000000C57325A949085141120A6330B37554411AB5DF0541085141D522871FB4755441354D13923F08514152605F65B27554418FC2F5883E08514114AE4731B175544184B2AD6C3E08514159BEB6BFB075544186DDE97E3B08514166C2A0DAB07554414656B9422F085141615A4674B0755441E9F14C8223085141C150F711B075544114AE47511B085141D7A370CDAF75544148E17A7419085141E17A147EB07554415C8FC225140851411F85EB41B5755441713D0AF7100851411F85EBB1B9755441713D0AA71008514152B81E15C1755441000000C010085141CDCCCCACC475544185EB518811085141A4703D7AC9755441B81E85AB110851417B14AEA7CA7554417B14AE6711085141A4703DFACC755441B81E85BB100851411F85EBA1CF755441B81E853B0F08514148E17A74D4755441AE47E12A0D08514100000040DA755441EC51B84E0C08514152B81EF5DE755441AE47E19A0B085141AE47E1DAE4755441EC51B82E0A085141CDCCCC8CEB7554418FC2F5A809085141C3F528ECEC75544148E17AF4070851411F85EBB1F175544185EB51B807085141A4703D4AF3755441B81E858B0708514185EB51C8F47554415C8FC20508085141D7A3702DF775544185EB51580A0851417B14AE67F8755441666666B60D085141A4703DBAFA755441295C8F620F0851413D0AD793FC755441A4703DCA0F08514166666606FD755441F6285CDF11085141F6285C7FFE755441713D0AD712085141666666B6FE755441E17A14AE130851411F85EB61FE755441A4703D8A1408514133333303FD7554418FC2F5F81608514133333353F8755441D7A3703D19085141D7A3708DF57554418FC2F5881C08514148E17A94F275544152B81EF51E0851413D0AD7D3F0755441295C8FB2230851411F85EB11EE7554418FC2F5F82808514133333393EB755441F6285CAF2A0851411F85EBE1E775544148E17A042C08514166666686E5755441C3F528CC2D085141A4703DCAE275544152B81E052F0851417B14AE17E27554418FC2F5E82A085141C3F528CCDD7554413333335327085141295C8F02DF755441F6285C7F22085141E17A14AEDB755441BA35E0E5220851411F11A6D5DA755441D8F1EB751E0851414D912BC1D87554412EA1C7B02208514141C7407ECE755441F73E859723085141BD5C85C2CC755441AA1C808825085141039DCDA3C97554413E58FB5527085141214C937DC7755441D97533512A0851412159D933C5755441FABCC8783A08514138406E4CBD75544187EFB4F541085141BBC4B574BA7554418DD9DFEE4908514184407923B975544141767C50570851418C2F7C07B8755441C0A390E267085141A1EF3EFDB67554410E927D186F0851412567406FB67554411310E66A730851411CCE95CAB3755441E6605D8677085141AD9CD4D3B1755441AE0049567D085141C3FF6FA3AE7554414C257495820851413B3DD035AB755441D814AC238B0851419B203A20A57554412DE25F01910851411BC3756BA17554412A7CB0BA950851417248D1169F7554414CB0705698085141E263E12B9C7554418C8B66BF9908514138819D3399755441AD94CD8C9A0851417F5876CB9675544123E70B7E9B0851410FF8F4459475544174564D5F950851419DFC092D967554416FD34B748D0851415AAF5E9F97755441F3744B988B085141623F2733987554415975042885085141AA41C3279E75544141BD57477E08514177ED45E0A27554418C3BB7D27B0851416F1E7B7FA4755441916A2CA178085141A645D897A7755441F8B6DC267208514106B9B8D5AA7554414AEDCBB36C085141051846B2AC755441A34E82866A085141FF457804AE75544114AE47E169085141713D0A77AE7554415C8FC2B568085141713D0A47AF755441EEE136D167085141568FDEA5AF755441295C8F32660851411F85EB51B07554413EFDC61F5D085141DA96573BB1755441204B5A205608514128E75DEFB1755441C57325A949085141120A6330B3755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>61065 - 224559
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001D000000B81E855BEC065141CDCCCCAC0418554114AE47F1E7065141B81E85CB001855415C8FC2F5E606514185EB51B802185541A4703D1ADF0651417B14AEE7FC1755417B14AE27DC06514114AE4781FA17554148E17A94DA0651413D0AD793F6175541713D0A07D9065141E17A14BEF017554148E17AB4D4065141713D0A77F2175541C3F5286CD00651410AD7A360F4175541B81E85DBCA06514148E17A84F7175541E17A148EC30651410AD7A390FD175541333333F3BF0651419A999989021855411F85EB91C7065141EC51B81E02185541AE47E1DACD065141295C8F4202185541E17A149ED0065141666666C60218554114AE4721E206514152B81E1508185541F6285C4FE4065141333333B308185541AE47E1CAE6065141A4703D7A0918554152B81E65F0065141666666E60E1855417B14AEC7F8065141713D0AC712185541A4703DDAF806514114AE478110185541D7A3700DFA065141333333E30F1855410AD7A340FB06514152B81E1510185541C3F5287CFC065141AE47E18A1118554148E17A04FD065141713D0A87111855417B14AE07FF065141C3F5285C0F185541A4703DDAF3065141AE47E17A0818554114AE47F1EC065141295C8FD203185541B81E855BEC065141CDCCCCAC04185541
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000799C7B69C006514115891E830218554184E133F3BF065141639F998902185541A090B84BBF065141ED3CDACD03185541785482DABE065141101B0AA90418554148E17AA4BD06514114AE4701071855419A053D8AC806514101FF8E620B185541FDDD5AAFCE0651415602F5F80D18554102A76F6DD5065141188C3C7A10185541EBCBAD27E1065141C6638E121418554169520C1AE7065141836F583D1518554152B81E55ED065141666666761618554187160592F1065141A817C2CF161855418D414811F206514155613DDA161855410E58073FF3065141C9C4EFBA16185541D03EB9AEF7065141C1421E45161855411C5E9D6EF8065141B2B1BF1816185541B81E850BFB065141E17A147E15185541755E1F51F9065141D7FBC96B131855417B14AEC7F8065141713D0AC71218554152B81E65F0065141666666E60E185541CC3942ADEC065141E616E3CC0C185541F27FE0CAE6065141D7653E7A0918554118C1D09CE40651412F5D75CB08185541F6285C4FE4065141333333B3081855419382FA0EE4065141C9A8F6A008185541F1954621E206514154E91F1508185541E17A149ED0065141666666C6021855413B00A6F7CE065141D1E6A57702185541AE47E1DACD065141295C8F42021855411F85EB91C7065141EC51B81E02185541799C7B69C006514115891E8302185541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>61464 - 1417993
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C000000B81E851B38075141B81E856BC0175541AE47E1DA34075141295C8F42CA175541C3F528CC31075141C3F5289CD1175541CDCCCC3C300751411F85EB71D7175541333333E333075141333333C3D8175541B81E857B36075141333333B3D917554100000090360751419A999959D9175541713D0A773A075141D7A370EDCC175541E17A143E3E07514185EB51E8C01755411F85EBA13E075141CDCCCCACBF175541CDCCCC7C380751411F85EB51BF175541B81E851B38075141B81E856BC0175541
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000F0B0484E38075141835C92D8BF175541AE47E1DA34075141295C8F42CA175541C3F528CC31075141C3F5289CD1175541CDCCCC3C300751411F85EB71D7175541333333E333075141333333C3D8175541B81E857B36075141333333B3D917554100000090360751419A999959D9175541713D0A773A075141D7A370EDCC1755417D5B8F683E075141E0841262C0175541F0B0484E38075141835C92D8BF175541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>61464 - 3396818
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C000000B81E851B38075141B81E856BC0175541AE47E1DA34075141295C8F42CA175541C3F528CC31075141C3F5289CD1175541CDCCCC3C300751411F85EB71D7175541333333E333075141333333C3D8175541B81E857B36075141333333B3D917554100000090360751419A999959D9175541713D0A773A075141D7A370EDCC175541E17A143E3E07514185EB51E8C01755411F85EBA13E075141CDCCCCACBF175541CDCCCC7C380751411F85EB51BF175541B81E851B38075141B81E856BC0175541
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000F0B0484E38075141835C92D8BF175541AE47E1DA34075141295C8F42CA175541C3F528CC31075141C3F5289CD1175541CDCCCC3C300751411F85EB71D7175541333333E333075141333333C3D8175541B81E857B36075141333333B3D917554100000090360751419A999959D9175541713D0A773A075141D7A370EDCC1755417D5B8F683E075141E0841262C0175541F0B0484E38075141835C92D8BF175541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>61617 - 224167
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001C00000014AE47113B1C5141E17A147E032955415C8FC2F5221C5141C3F5281C0E29554114AE47B12B1C51410AD7A3A01A29554114AE47D13E1C514148E17A04122955410AD7A340431C5141E17A145E1229554114AE4751461C514148E17A641329554152B81E05491C51411F85EB01162955411F85EBB1541C51417B14AED72729554133333303581C51418FC2F5182B2955410AD7A3D0581C5141295C8FE22B295541E17A147E581C51418FC2F5A82D2955417B14AE87521C5141F6285CBF32295541333333B3521C5141D7A370ED3229554148E17A14511C51417B14AED73429554133333303541C5141CDCCCCAC3729554114AE4751541C514152B81E7537295541F6285C3F581C5141B81E851B3429554114AE47D15C1C51413D0AD7132F2955411F85EB71611C51413D0AD78328295541B81E858B5D1C51411F85EB81232955411F85EB01621C51415C8FC2F51F29554152B81ED55F1C51419A9999B91B295541F6285C6F611C51417B14AE771A295541AE47E17A571C5141EC51B8AE0E295541295C8F62551C5141A4703DEA0D2955413D0AD753471C5141A4703DFA06295541666666B63B1C5141666666E60029554114AE47113B1C5141E17A147E03295541
+</a>
+
+<b>
+0106000000010000000103000000010000006600000014AE4751541C514152B81E7537295541D2E3D868571C5141AED85FD23429554161B75B3F581C5141AA1C851B342955410B5946D15C1C5141C949D7132F2955417E0FC7CE5C1C51410E60D9112F295541581B274F5D1C5141BE4F55612E2955411F60F5735D1C51415519232D2E2955411F85EB71611C51413D0AD78328295541B81E858B5D1C51411F85EB81232955411F85EB01621C51415C8FC2F51F29554152B81ED55F1C51419A9999B91B295541F6285C6F611C51417B14AE771A29554116EDDA81571C51417437FAB60E295541DD109D2D571C51418BDE69920E29554146F07D81561C514132695B530E295541B08BA482551C5141EE53FEF50D295541295C8F62551C5141A4703DEA0D2955418485F248541C514156FD425F0D295541F2270725541C5141EDFE884D0D29554144EE7552531C5141E44A9EE50C2955417568643E531C51413EE1B6DB0C295541055B5BB0521C51415F619E950C29554121B9EB27511C514183B1F2D30B29554169BB5517511C51416A42C3CB0B295541D2BAB476501C5141CDAE7D7C0B295541FFEE78AF4F1C514142DC2A1A0B2955417CDEE4544F1C5141B25877ED0A2955413D0AD753471C5141A4703DFA06295541042CE615471C5141BD5AA8DB0629554198A9260E471C51419289C6D5062955413CB64CFD421C51417A8827B504295541197673B13D1C5141855AB6EF01295541694F2C263D1C514105F2D5A60129554168BD2BDB3C1C5141DA53977F012955414B1255AE3C1C51419B292168012955417863DC5C3C1C51419CFD7F3D0129554136444D013C1C51418291970D012955415E8CDAB43B1C51417A7A9DEC0029554114AE47113B1C5141E17A147E032955410CA966C13A1C514164B342A1032955415C8FC2F5221C5141C3F5281C0E295541CAAB8C7F231C5141CE38ACE10E2955413619DD0E251C5141C4A1101E1129554145400D8F251C5141E58FD0D511295541ACB6B07B261C5141EB7B05291329554129ED8DD3261C5141F41DF8A613295541B78966B4271C5141D4B345E914295541F9FE80EE271C514103528F3C152955419D92358D281C5141ECE00D201629554114AE47B12B1C51410AD7A3A01A29554136A85EA32D1C5141EEE566C019295541703B59A52D1C5141726321B61929554176A66F4E2E1C5141E9CB5873192955415B815B0C2F1C514109FFE21D192955418F262E9C2F1C5141F16223DD182955415D9046AB2F1C51418CA457D6182955412D28E0AF2F1C5141BE7E45D4182955412AB71FC42F1C51419AE027CB1829554114D1CAC52F1C5141169967CA1829554111FB88C72F1C514199BC9EC91829554191994DEE2F1C51414DB62AB8182955414F05BB22331C51412ABEC84617295541C916B2F6371C514110A45E1A152955416A204CF13A1C5141A9910EC3132955418E9217973C1C5141E6B52B0513295541C874EC493D1C51419DC9A9B412295541CC6905903E1C51419FCFDB211229554114AE47D13E1C514148E17A04122955414988EE75401C51415647AD25122955415D6AA99A401C51412755932812295541D20DC181411C51413E13D03A1229554137400295411C51417813553C122955410AD7A340431C5141E17A145E1229554194FE5849431C5141ADF4FD6012295541D1B88BE5441C514190F5D6EA122955418561DD1D451C51418686ACFD1229554154852F3D461C5141D490C25D1329554114AE4751461C514148E17A641329554167F99370471C51419EDE797A14295541C2A09071471C5141CC576E7B1429554152B81E05491C51411F85EB0116295541CCAE3F0A491C5141743BC109162955412FACF666491C514128623477162955418D1A4098491C51410DA343C416295541182015C7491C514183607C0D17295541139D61EB491C5141D51B3D4617295541F0BD45194C1C5141F03E7FAE1A2955418755F6D24D1C5141A1CBA7581D295541AEC0295E4E1C5141F4484D2D1E2955419C1D65184F1C5141AE45CB491F29554101131B694F1C51413AF516C51F2955418D073ECB4F1C5141835D015B202955411F85EBB1541C51417B14AED72729554133333303581C51418FC2F5182B2955410AD7A3D0581C5141295C8FE22B295541E17A147E581C51418FC2F5A82D295541A592AE87521C51418CAE5CBF32295541333333B3521C5141D7A370ED322955414C237B14511C514177C6ADD734295541BF8DE2AD511C5141F090DA6B3529554133333303541C5141CDCCCCAC3729554114AE4751541C514152B81E7537295541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>61681 - 224203
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001800000085EB5118B61851419A999979362955417B14AE07B5185141CDCCCCAC37295541A4703DCAB31851413333336338295541295C8F62B2185141D7A3703D382955417B14AE37B018514185EB51B837295541F6285C1FAD1851411F85EBF136295541EC51B84EAA1851415C8FC2353529554100000020A918514100000030362955413D0AD753A71851411F85EBB137295541EC51B8AEA4185141D7A370ED39295541AE47E16AA218514185EB51583C295541F6285CFFA018514114AE47B13E295541CDCCCC5CA01851413333336340295541AE47E17AAB185141A4703D1A46295541EC51B84EB1185141295C8FB248295541CDCCCCFCB518514152B81E154B295541B81E859BB91851410AD7A3A04A295541000000C0C2185141B81E85FB4E295541713D0A97C7185141C3F5285C4A295541333333A3C0185141C3F528DC42295541B81E851BBD185141295C8F423F295541E17A142EB9185141713D0AA73A295541295C8FD2B6185141295C8FB23729554185EB5118B61851419A99997936295541
+</a>
+
+<b>
+01060000000100000001030000000100000025000000B8410AAEAD185141E53C041547295541EC51B84EB1185141295C8FB248295541CDCCCCFCB518514152B81E154B29554102B672DCB7185141752ED5D84A295541BD63849BB9185141F13CA3A04A295541FA410A60BD185141FF02166C4C295541000000C0C2185141B81E85FB4E295541713D0A97C7185141C3F5285C4A295541F7D8CEBEC51851418B88BD5E482955412B1832A3C0185141A73A2ADC4229554142E8E5BBBE185141A0E231EB40295541B81E851BBD185141295C8F423F295541E17A142EB9185141713D0AA73A295541CDD4CA24B918514112FC659B3A295541EF628ED2B61851410CFC8FB2372955417EA15118B618514103ED997936295541DCFCF7A4B51851415DC392FB36295541AB4DAF07B518514188C0CDAC37295541FAC798E2B3185141A16434553829554174F53CCAB3185141C55633633829554163889062B2185141D7A6713D382955414A59AD37B0185141853752B8372955419A315C1FAD1851411FE7ECF136295541EB80B94EAA18514182B5C33535295541883CC22BA91851416B9F47263629554100000020A9185141000000303629554161701CF9A8185141F3609D5036295541D5FED653A7185141E67FECB137295541EC0599CDA5185141CB5A4DFB38295541EC51B8AEA4185141D7A370ED392955418D5E7074A3185141519AE13C3B2955411BA8E16AA2185141FC1E52583C295541EF735DFFA01851410B2A47B13E2955419FEBFB89A01851418B2F97EA3F295541A0DBCC5CA0185141A20B3363402955415F48E27AAB18514145123D1A46295541B8410AAEAD185141E53C041547295541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>62744 - 962291
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000009000000A4703DDA71D95041CDCCCCCC674B55418FC2F5B86AD950410AD7A3B0614B554148E17AE465D95041D7A3708D5D4B5541666666C646D950413D0AD7838A4B5541E17A140E49D950413D0AD7B3964B5541EC51B8DE49D95041713D0AF7974B5541F6285CFF4DD950415C8FC2759B4B55419A9999095FD950415C8FC2A5824B5541A4703DDA71D95041CDCCCCCC674B5541
+</a>
+
+<b>
+010600000001000000010300000001000000200000008AAFF1AA65D95041353E93E05D4B55410EE20AE565D950418410948D5D4B554160625C6364D95041B85932435C4B5541AE0B8FB862D9504144C65DD55A4B55415A2DE19561D950413721EA7B5C4B55416ACE3BF460D95041AA364B675D4B55419B3CA28560D95041029785075E4B554161918E3060D95041AC1A4D845E4B5541AD1EC3A25FD95041CB4DE7515F4B5541DCB50A0B5FD9504160711A2F604B55415F2F19915ED95041C2C058E0604B5541E5A827175ED9504123109791614B5541ACFD13C25DD95041CD935E0E624B55411E70394F5DD9504115EDAFB5624B5541F80CD5B15CD950419C09FA99634B55411BB518095CD950412B15488F644B5541E362B05A5BD950414318188D654B5541F9030BB95AD95041B42D7978664B55418CC5C8F659D950418714A592674B5541EF71CB4959D9504103190A8F684B55410BEA44D158D95041D369DD3E694B554178854B3558D95041C187BC216A4B5541478C8E2D57D95041410A95A06B4B55417FD52CE355D95041452B44816D4B5541A3826C5354D950413DE70ECB6F4B5541412D9A8650D950417564274F754B5541545081624FD950417AC69CEE764B554119F918B145D950410C158AAC844B5541DCF459B545D95041E6EED2D2844B55411BE403C746D95041CC430E838A4B554195E9D8DD46D95041CDD9F5618A4B55418AAFF1AA65D95041353E93E05D4B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>63615 - 3996899
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000002000000240000000AD7A3A0845451419A99990961805441B81E85DB81545141AE47E16A618054410AD7A3B081545141CDCCCCBC63805441666666067C545141CDCCCCCC65805441D7A3701D7B545141000000D06280544185EB51587A5451410000001063805441E17A14EE7754514148E17AB463805441295C8F4276545141000000D05D8054410AD7A3B074545141CDCCCC1C5E805441295C8F8274545141713D0AE75980544185EB51F8775451419A99992959805441713D0AD777545141D7A3702D5880544148E17AD47654514114AE47E1578054411F85EBD1755451411F85EBA156805441333333B37554514152B81E255580544185EB511875545141295C8FB2548054417B14AE876B545141713D0AC760805441295C8FF26E54514148E17A246F805441295C8FF2775451415C8FC25571805441EC51B8AE7E5451410AD7A3F069805441666666067E545141C3F5286C698054418FC2F5987C5451419A99999969805441B81E85FB7954514148E17A346B805441EC51B87E785451413D0AD7436B8054410AD7A32077545141C3F5289C6A8054410AD7A39076545141CDCCCCFC698054410AD7A33077545141CDCCCC9C698054410AD7A3D077545141CDCCCC2C6A8054410AD7A3F078545141CDCCCC9C6A8054410AD7A3307A545141CDCCCC3C6A8054410AD7A3707B545141CDCCCC6C698054410AD7A3D07C545141CDCCCC7C688054410AD7A3007F545141CDCCCC3C68805441713D0A27805451413D0AD75368805441CDCCCC6C81545141E17A14EE668054410AD7A3A0845451419A999909618054410600000052B81E656F545141D7A3707D68805441C3F5286C71545141A4703D6A68805441F6285C7F715451411F85EB116D8054411F85EB717054514185EB51F86D805441EC51B89E6F54514185EB51F86D80544152B81E656F545141D7A3707D68805441
+</a>
+
+<b>
+0106000000010000000103000000020000002C00000097FAD14170545141AF3227766F8054416BA98F167354514183AC65F06E805441251FC53676545141AD54B6A66D805441E14E31177A545141A212D3A26B805441B81E85FB7954514148E17A346B80544169B0E42B785451412A1B9DFB6A805441EFC5BE7B775451415E84529C6A805441DBFA49B17654514174B40BCD698054410AD7A33077545141CDCCCC9C69805441B2FE4BCF77545141E9B01BFE698054410AD7A3F078545141CDCCCC9C6A8054410AD7A3307A545141CDCCCC3C6A8054410AD7A3707B545141CDCCCC6C698054410AD7A3D07C545141CDCCCC7C688054410AD7A3007F545141CDCCCC3C68805441713D0A27805451413D0AD75368805441CDCCCC6C81545141E17A14EE668054410AD7A3A0845451419A99990961805441B81E85DB81545141AE47E16A618054410AD7A3B081545141CDCCCCBC63805441666666067C545141CDCCCCCC65805441D7A3701D7B545141000000D06280544185EB51587A5451410000001063805441E17A14EE7754514148E17AB463805441295C8F4276545141000000D05D8054410AD7A3B074545141CDCCCC1C5E805441295C8F8274545141713D0AE75980544185EB51F8775451419A99992959805441713D0AD777545141D7A3702D5880544148E17AD47654514114AE47E1578054411F85EBD1755451411F85EBA156805441333333B37554514152B81E25558054410705C9EA745451416AD2BFF154805441C9FAF126745451414176304F56805441E09867737254514145D6DA3159805441C644E04070545141BF6918445D805441D6D195F76F5451418B57AB635D805441346027BA6E545141A5704DD15D8054416A31C9A16D545141387DCA2C5E8054412001E0066C545141644E4AAF5E8054412001E0266C545141AC2FC5036080544154AEF4AE6D54514116DC40D469805441C9B6C09E6E5451417FB27EC36F80544197FAD14170545141AF3227766F8054410600000082A178A46F5451413279815B68805441C3F5286C71545141A4703D6A68805441F6285C7F715451411F85EB116D805441FD6FB47D705451411697031C6D805441C1CF31BA6F545141EB22880D6D80544182A178A46F5451413279815B68805441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>63615 - 3996901
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000002000000240000000AD7A3A0845451419A99990961805441B81E85DB81545141AE47E16A618054410AD7A3B081545141CDCCCCBC63805441666666067C545141CDCCCCCC65805441D7A3701D7B545141000000D06280544185EB51587A5451410000001063805441E17A14EE7754514148E17AB463805441295C8F4276545141000000D05D8054410AD7A3B074545141CDCCCC1C5E805441295C8F8274545141713D0AE75980544185EB51F8775451419A99992959805441713D0AD777545141D7A3702D5880544148E17AD47654514114AE47E1578054411F85EBD1755451411F85EBA156805441333333B37554514152B81E255580544185EB511875545141295C8FB2548054417B14AE876B545141713D0AC760805441295C8FF26E54514148E17A246F805441295C8FF2775451415C8FC25571805441EC51B8AE7E5451410AD7A3F069805441666666067E545141C3F5286C698054418FC2F5987C5451419A99999969805441B81E85FB7954514148E17A346B805441EC51B87E785451413D0AD7436B8054410AD7A32077545141C3F5289C6A8054410AD7A39076545141CDCCCCFC698054410AD7A33077545141CDCCCC9C698054410AD7A3D077545141CDCCCC2C6A8054410AD7A3F078545141CDCCCC9C6A8054410AD7A3307A545141CDCCCC3C6A8054410AD7A3707B545141CDCCCC6C698054410AD7A3D07C545141CDCCCC7C688054410AD7A3007F545141CDCCCC3C68805441713D0A27805451413D0AD75368805441CDCCCC6C81545141E17A14EE668054410AD7A3A0845451419A999909618054410600000052B81E656F545141D7A3707D68805441C3F5286C71545141A4703D6A68805441F6285C7F715451411F85EB116D8054411F85EB717054514185EB51F86D805441EC51B89E6F54514185EB51F86D80544152B81E656F545141D7A3707D68805441
+</a>
+
+<b>
+0106000000010000000103000000010000004000000054AEF4AE6D54514116DC40D46980544184E05E226C54514194E5AC0360805441113EBF226C5451417931330360805441C148A21E6C545141FBF898D95F805441EC49BF116C545141A673F8225F8054412001E0066C545141644E4AAF5E8054411D5ED5086C545141A114ABAE5E805441BCD9B0086C545141A09FCEAC5E8054416080ED357054514136ABBE475D805441A4BBF8E3705451412760EA155C805441E09867737254514145D6DA3159805441C9FAF126745451414176304F568054410705C9EA745451416AD2BFF154805441F40F24F374545141FE1AE4F35480544185EB511875545141295C8FB254805441EA68CE53765451412064FFBC528054417B6388E0785451412573849D51805441CB408DD87A5451419019D8CE518054414B28BAE87B5451418085371154805441CB0FE7F87C54514170223D33548054414BC66D2980545141C042C76851805441FB43973487545141D0A5C146518054417B14AE67885451410000005044805441CDCCCC3C88545141EC51B8CE3F8054418294892688545141715171A63E805441295C8FF28654514114AE47C13E805441C9304AEA725451415E19B3C0418054412F035ED9685451418D76F69C47805441BD10193B60545141C23B79704C8054411E8CBB67595451415636FBE24F80544130E880714C545141D42D94C84E8054415014C5693D54514182C813184E805441AA27289F37545141F9469FD14B8054418FC2F5C833545141D7A3708D49805441C3F528DC2F545141C3F5283C4880544114AE470130545141AE47E18A4E8054413D0AD75331545141CDCCCCFC5B8054413847D2BE335451413119E35F708054417B3CBEDF375451416B13A30F7180544187E4E1923F545141647DC512738054416442270A45545141B61CFA9F7480544154E3A57B4A545141BA490C3275805441BEA1A7864A5451413C8187AB768054419681BBBE4A5451413BE712C682805441135679B24A5451410A767FD18A80544185EB51684A545141CDCCCCFC91805441FC3C818768545141B0B75A219880544174FFBDDE695451419ED6CF10958054416A4E994F6F5451419B48337686805441C77BB61176545141453D6F25768054417419CDC478545141D62C9E7F7180544100F0EFB87E545141E8C644736A805441C902C9DE7D5451412B2605C269805441CC7D4B717A5451419CAD66736B805441E14E31177A545141A212D3A26B8054416ED5B2FB76545141680F84456D805441729998AD76545141AC79F1686D805441251FC53676545141AD54B6A66D80544111329E79755451417382A4F46D805441654C8B1973545141800E2BEF6E8054416BA98F167354514183AC65F06E80544197FAD14170545141AF3227766F805441C9B6C09E6E5451417FB27EC36F80544154AEF4AE6D54514116DC40D469805441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>63951 - 3997533
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001A000000F6285C6FEE555141D7A3702DFD7A54415C8FC215F4555141EC51B89E057B5441E17A149EF55551418FC2F5E8077B544133333333F955514148E17AF4057B5441666666C6FB555141E17A14AE047B5441713D0A27FF5551413D0AD7D3027B544152B81ED502565141D7A370AD007B5441A4703DEA05565141E17A14DEFE7A5441B81E85AB08565141713D0A07FD7A54417B14AE1703565141EC51B8EEF37A544114AE4721FB5551410AD7A300E87A544100000050F655514148E17A24E17A5441F6285CDFEE55514152B81ED5D57A544133333343EB5551417B14AE17D87A54417B14AE37E8555141F6285C2FDA7A54410AD7A3D0E7555141D7A370BDDB7A544185EB5158E65551413D0AD783DE7A54419A999949E1555141713D0A97E97A54418FC2F5B8DF555141AE47E1EAEC7A5441000000A0DE55514148E17A54F07A5441D7A370EDDD555141CDCCCC0CF37A5441295C8F92DD555141CDCCCCDCF57A54411F85EB91E4555141C3F5287CF97A544148E17AF4E6555141E17A145EFB7A5441C3F5288CEB5551418FC2F5C8FA7A5441F6285C6FEE555141D7A3702DFD7A5441
+</a>
+
+<b>
+010600000001000000010300000001000000170000005E0E94E407565141114FA2C2FB7A54411F85EBA102565141EC51B88EF37A54410682D503EE555141C0AAB796DC7A5441AE47E13AE75551417B14AE07D57A5441713D0A67E755514114AE4751D87A54415B480B0DE7555141D634F44CDB7A54416D89BA46E655514131F139EFDD7A5441FDB2A4A4E15551419E248DF2E87A5441183C66E8DF5551411D354F2BED7A5441000000A0DE55514148E17A54F07A54418FC2F518DE5551417B14AED7F17A54419A999939DD55514100000010F57A5441CB802F3DDD5551410064C18AF67A5441E4734558E455514143E6FA27FA7A5441AC02FD64E455514155BE722EFA7A5441F631BC01E655514132C07A9EFA7A544184FBAF8DE6555141976F77C4FA7A5441C3F5288CEB5551418FC2F5C8FA7A5441F6285C6FEE555141D7A3702DFD7A54415C8FC215F4555141EC51B89E057B54415C857F22F55551417EAB3B18077B544194C24D5308565141B47B3077FC7A54415E0E94E407565141114FA2C2FB7A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>64591 - 5229815
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000001E00000033333313D3545141AE47E17AA47B54415C8FC2A5D95451410AD7A390A57B5441AE47E12AD65451418FC2F578A27B544114AE47E1D15451419A9999C99E7B54410AD7A390CB5451418FC2F5E8987B544133333333BE545141F6285C7F8C7B5441F6285CEFB554514166666686857B544148E17AE4AA5451417B14AE977B7B54410AD7A360A9545141666666C6787B5441D7A370EDA75451418FC2F5F8767B5441B81E85BBA754514166666696757B5441F6285CCFA6545141713D0A47717B54411F85EB11A4545141295C8FF26D7B5441AE47E1DAA0545141333333636A7B54417B14AE579E5451419A9999D9687B5441A4703D7A9B5451415C8FC2756D7B5441D7A370DD93545141B81E858B7C7B5441AE47E16A8E545141A4703D9A867B5441713D0AB78A5451413D0AD7138E7B5441A4703D0A895451411F85EB91917B5441A4703D6A8B545141F6285CDF937B54418FC2F5288D54514133333363967B5441EC51B8EE95545141F6285CFF977B5441713D0A07A05451418FC2F5A8997B5441AE47E15AB0545141E17A147E9D7B54417B14AE77B7545141B81E85EB9E7B54410AD7A300C0545141EC51B80EA17B5441CDCCCC5CC95451413D0AD7F3A27B54418FC2F598D1545141F6285C3FA47B544133333313D3545141AE47E17AA47B5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F00000086C75C158E545141946054D4967B5441978DF45C9C5451417697780E997B54414C19DC75A5545141062A6CEF9A7B54414890E5C3B1545141CD8189C69D7B544111CFF312BD54514124FDF752A07B54418A44A91ACB545141CF16F639A37B54415C8FC2A5D95451410AD7A390A57B5441AE47E18ADB545141713D0A17A47B544114AE4731E154514152B81ED5997B5441E4E2FA27A5545141A1F73D6D8D7B5441CDCCCC8C8C5451417B14AE57887B54413D0AD74389545141E17A14DE8E7B54417851D1E789545141BE663CF2907B54415C70FC4A8C545141A2624CDE947B544186C75C158E545141946054D4967B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>65156 - 2947484
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000D0000009A9999E96DE850419A9999995B6D54411F85EBD16BE850419A9999796E6D54417B14AE8769E85041A4703D1A836D544148E17AC468E85041C3F528FC896D5441A4703DFA68E85041EC51B8FE896D54410000005071E85041C3F528AC896D54418FC2F5A885E8504114AE47A1876D5441B81E851B87E85041D7A3703D866D54419A9999C989E850411F85EBB16E6D54410AD7A3D08DE8504152B81E654A6D5441295C8FE28CE8504148E17AC4496D5441295C8F0280E850413D0AD733516D54419A9999E96DE850419A9999995B6D5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000420608E568E85041F91558D6886D544126B34DF063E8504137C67656866D5441878ACAB25BE850410F409240826D5441D3661BF750E8504148A1523A7C6D5441B1C8605952E85041BEA5D9396B6D54410AD7A39042E850413D0AD7536D6D54419A99991941E85041C3F528BC6E6D54413D0AD7533FE850417B14AE47776D5441A4703DCA41E85041E17A14DE7A6D544114AE478145E85041333333337C6D54418FC2F5485AE85041AE47E10A886D544148E17A945DE850417B14AE77896D54414A7AA5A167E8504161F8B4EE896D54419C86ADF66BE85041586524E1896D5441420608E568E85041F91558D6886D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>65156 - 3589972
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000D0000009A9999E96DE850419A9999995B6D54411F85EBD16BE850419A9999796E6D54417B14AE8769E85041A4703D1A836D544148E17AC468E85041C3F528FC896D5441A4703DFA68E85041EC51B8FE896D54410000005071E85041C3F528AC896D54418FC2F5A885E8504114AE47A1876D5441B81E851B87E85041D7A3703D866D54419A9999C989E850411F85EBB16E6D54410AD7A3D08DE8504152B81E654A6D5441295C8FE28CE8504148E17AC4496D5441295C8F0280E850413D0AD733516D54419A9999E96DE850419A9999995B6D5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000420608E568E85041F91558D6886D544126B34DF063E8504137C67656866D5441878ACAB25BE850410F409240826D5441D3661BF750E8504148A1523A7C6D5441B1C8605952E85041BEA5D9396B6D54410AD7A39042E850413D0AD7536D6D54419A99991941E85041C3F528BC6E6D54413D0AD7533FE850417B14AE47776D5441A4703DCA41E85041E17A14DE7A6D544114AE478145E85041333333337C6D54418FC2F5485AE85041AE47E10A886D544148E17A945DE850417B14AE77896D54414A7AA5A167E8504161F8B4EE896D54419C86ADF66BE85041586524E1896D5441420608E568E85041F91558D6886D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>65417 - 1751857
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000017000000D7A3708DB1E4504114AE4781BA715441B81E851BB1E45041B81E858BBB715441AE47E1EAB2E45041E17A144ECA715441D7A370ADB1E450415C8FC275D7715441AE47E1AAAEE45041C3F5287CEA71544100000030BBE450415C8FC245E6715441D7A3705DD3E45041EC51B86EDF715441AE47E1DAD5E45041D7A3704DDD715441AE47E1BAD8E450415C8FC255DC715441E17A145ED8E45041C3F528BCDA715441F6285CDFE2E45041EC51B80ED9715441D7A3701DE9E45041713D0A17D9715441C3F5285CE9E4504148E17A74DA715441F6285C7FFCE45041D7A3704DD8715441666666F6FAE4504152B81EC5D171544114AE4771F9E45041F6285CEFC971544185EB5118F6E45041F6285CCFB4715441E17A144EF4E4504133333303AF71544114AE4771D5E450410AD7A330B571544133333363C0E45041295C8F92B7715441B81E85CBB7E450411F85EB31B9715441C3F5288CB2E45041295C8FE2B9715441D7A3708DB1E4504114AE4781BA715441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000409EAE2DD9E45041E545029BDA71544155C0B4C0D5E45041E4516CECCD7154415B6E1CA4D5E45041E2529082CD7154418FFBE0B1B1E45041543FAB46D7715441C9FF9BBBB1E45041E95F70DFD6715441AE47E1AAAEE45041C3F5287CEA71544100000030BBE450415C8FC245E6715441D7A3705DD3E45041EC51B86EDF715441AE47E1DAD5E45041D7A3704DDD715441AE47E1BAD8E450415C8FC255DC715441E17A145ED8E45041C3F528BCDA715441409EAE2DD9E45041E545029BDA715441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>65417 - 3811705
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000017000000D7A3708DB1E4504114AE4781BA715441B81E851BB1E45041B81E858BBB715441AE47E1EAB2E45041E17A144ECA715441D7A370ADB1E450415C8FC275D7715441AE47E1AAAEE45041C3F5287CEA71544100000030BBE450415C8FC245E6715441D7A3705DD3E45041EC51B86EDF715441AE47E1DAD5E45041D7A3704DDD715441AE47E1BAD8E450415C8FC255DC715441E17A145ED8E45041C3F528BCDA715441F6285CDFE2E45041EC51B80ED9715441D7A3701DE9E45041713D0A17D9715441C3F5285CE9E4504148E17A74DA715441F6285C7FFCE45041D7A3704DD8715441666666F6FAE4504152B81EC5D171544114AE4771F9E45041F6285CEFC971544185EB5118F6E45041F6285CCFB4715441E17A144EF4E4504133333303AF71544114AE4771D5E450410AD7A330B571544133333363C0E45041295C8F92B7715441B81E85CBB7E450411F85EB31B9715441C3F5288CB2E45041295C8FE2B9715441D7A3708DB1E4504114AE4781BA715441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000409EAE2DD9E45041E545029BDA71544155C0B4C0D5E45041E4516CECCD7154415B6E1CA4D5E45041E2529082CD7154418FFBE0B1B1E45041543FAB46D7715441C9FF9BBBB1E45041E95F70DFD6715441AE47E1AAAEE45041C3F5287CEA71544100000030BBE450415C8FC245E6715441D7A3705DD3E45041EC51B86EDF715441AE47E1DAD5E45041D7A3704DDD715441AE47E1BAD8E450415C8FC255DC715441E17A145ED8E45041C3F528BCDA715441409EAE2DD9E45041E545029BDA715441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>67412 - 1434959
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000F000000AE47E1EA72E050415C8FC255220A554152B81E3571E05041713D0A57260A554148E17A046FE05041F6285C3F2B0A55418FC2F58867E0504114AE47613B0A5541295C8FC26FE05041F6285C8F3F0A5541A4703D5A71E05041C3F528EC3C0A5541C3F5280C78E0504148E17AE42B0A55413D0AD77375E05041CDCCCC0C290A55415C8FC22576E050413D0AD713270A5541EC51B83E77E05041CDCCCC4C270A5541EC51B81E78E05041EC51B87E260A5541B81E853B78E05041E17A142E260A5541295C8FC277E05041000000D0240A5541295C8F7277E05041F6285C2F240A5541AE47E1EA72E050415C8FC255220A5541
+</a>
+
+<b>
+01060000000100000001030000000100000015000000611E624B77E05041A12A51112B0A55413D0AD77375E05041CDCCCC0C290A55415C8FC22576E050413D0AD713270A5541EC51B83E77E05041CDCCCC4C270A5541EC51B81E78E05041EC51B87E260A5541B81E853B78E05041E17A142E260A5541295C8FC277E05041000000D0240A5541295C8F7277E05041F6285C2F240A5541D6BA9D5A73E05041F9496483220A5541F53D15A471E050410BA7F5A1260A5541339851BC72E0504101762A97270A5541F53D15A471E050410D41B20D2A0A5541FBB39C0071E0504110FCF5BB290A554138A5E99968E050417C12FFEB3B0A554178C5EECD6EE05041E0EC09133F0A5541522BB3DC6FE0504121DD1D943E0A5541118F683F76E05041E29076292F0A554136320E2876E05041781D0DCC2E0A55419774AC7A77E05041DD3B760F2C0A55419DEA33D776E05041DD3B760F2C0A5541611E624B77E05041A12A51112B0A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>68594 - 1431927
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C000000E17A141E8BEB50418FC2F5C86FFD54411F85EB7171EB50411F85EB716BFD5441EC51B82E71EB5041AE47E1CA6BFD54410AD7A30070EB5041666666566DFD5441F6285CBF72EB5041713D0A776FFD54415C8FC2A571EB50418FC2F5E870FD5441D7A3709D74EB5041F6285C2F73FD544152B81E257BEB504114AE475177FD54418FC2F5987DEB504114AE47A172FD5441D7A370CD83EB5041295C8F1275FD5441E17A149E88EB5041B81E856B76FD5441E17A141E8BEB50418FC2F5C86FFD5441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000001DD384937DEB5041A704AEAB72FD5441DDEE9D4A7FEB5041EFEA28C96DFD5441F1804CBE7DEB50416E4929866DFD54411F85EB7171EB50411F85EB716BFD5441EC51B82E71EB5041AE47E1CA6BFD54410AD7A30070EB5041666666566DFD5441F6285CBF72EB5041713D0A776FFD54415C8FC2A571EB50418FC2F5E870FD5441D7A3709D74EB5041F6285C2F73FD544152B81E257BEB504114AE475177FD54411DD384937DEB5041A704AEAB72FD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>68594 - 3354764
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C000000E17A141E8BEB50418FC2F5C86FFD54411F85EB7171EB50411F85EB716BFD5441EC51B82E71EB5041AE47E1CA6BFD54410AD7A30070EB5041666666566DFD5441F6285CBF72EB5041713D0A776FFD54415C8FC2A571EB50418FC2F5E870FD5441D7A3709D74EB5041F6285C2F73FD544152B81E257BEB504114AE475177FD54418FC2F5987DEB504114AE47A172FD5441D7A370CD83EB5041295C8F1275FD5441E17A149E88EB5041B81E856B76FD5441E17A141E8BEB50418FC2F5C86FFD5441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000001DD384937DEB5041A704AEAB72FD5441DDEE9D4A7FEB5041EFEA28C96DFD5441F1804CBE7DEB50416E4929866DFD54411F85EB7171EB50411F85EB716BFD5441EC51B82E71EB5041AE47E1CA6BFD54410AD7A30070EB5041666666566DFD5441F6285CBF72EB5041713D0A776FFD54415C8FC2A571EB50418FC2F5E870FD5441D7A3709D74EB5041F6285C2F73FD544152B81E257BEB504114AE475177FD54411DD384937DEB5041A704AEAB72FD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>69644 - 1533897
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000015000000E17A147EF9DF5041AE47E18A81DF5441D7A370FDFCDF504148E17AD486DF54417B14AE4719E05041E17A14FE88DF5441A4703D3A18E050419A9999D991DF5441C3F5280C14E05041713D0A479DDF544148E17AE417E05041000000509EDF5441C3F5286C1DE05041CDCCCCAC9FDF54418FC2F54824E05041713D0A07A1DF5441AE47E1AA28E05041713D0AA7A1DF544114AE47A12CE0504133333303A2DF5441333333C32FE050418FC2F508A2DF5441713D0A6737E0504185EB5128A2DF5441A4703DCA37E050411F85EB219EDF54419A99994937E050411F85EB3196DF5441295C8FA237E050417B14AE9792DF54417B14AE2736E050417B14AE9783DF54411F85EB212FE050410AD7A3C06FDF5441666666E628E05041C3F5289C70DF544148E17A2400E050418FC2F57874DF54417B14AEB7F7DF5041EC51B8EE74DF5441E17A147EF9DF5041AE47E18A81DF5441
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000E17A148E36E05041713D0AD7B4DF5441666666A644E05041713D0AB7B1DF544114AE47314FE0504148E17AC4B4DF5441AE47E15A50E050419A9999F9A2DF5441EC51B85E50E05041B81E859BA2DF5441CDCCCC0C51E050413D0AD7E392DF5441295C8FA237E050417B14AE9792DF5441FCF0413D18E050417C54AED991DF5441C3F5280C14E05041713D0A479DDF544148E17AE417E05041000000509EDF5441BB79E67C1BE0504132B8C6329FDF54417C26F3B21EE0504120A034ED9FDF544144F19D3121E050417CE2136BA0DF5441AA10C02923E0504131626FCEA0DF5441F4D3D74725E05041DDB9632BA1DF54415BF8835627E0504133ED7F76A1DF5441353928F728E05041F44BF8ADA1DF544184AC219F2AE05041C51C7DD4A1DF54414A9DE5BC2CE050414DFB6503A2DF54411BB995192EE05041FA24E705A2DF5441C693A8CB2FE05041CF7A1809A2DF5441AA3DDFE231E050418C60AD11A2DF5441D27DE79E33E050416800CC18A2DF544107265B4F35E050417517BB1FA2DF54414540674D36E05041EEE1CD23A2DF5441713D0A6737E0504185EB5128A2DF5441AE47E15A36E05041295C8FE2B4DF5441E17A148E36E05041713D0AD7B4DF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>69644 - 3282696
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000015000000E17A147EF9DF5041AE47E18A81DF5441D7A370FDFCDF504148E17AD486DF54417B14AE4719E05041E17A14FE88DF5441A4703D3A18E050419A9999D991DF5441C3F5280C14E05041713D0A479DDF544148E17AE417E05041000000509EDF5441C3F5286C1DE05041CDCCCCAC9FDF54418FC2F54824E05041713D0A07A1DF5441AE47E1AA28E05041713D0AA7A1DF544114AE47A12CE0504133333303A2DF5441333333C32FE050418FC2F508A2DF5441713D0A6737E0504185EB5128A2DF5441A4703DCA37E050411F85EB219EDF54419A99994937E050411F85EB3196DF5441295C8FA237E050417B14AE9792DF54417B14AE2736E050417B14AE9783DF54411F85EB212FE050410AD7A3C06FDF5441666666E628E05041C3F5289C70DF544148E17A2400E050418FC2F57874DF54417B14AEB7F7DF5041EC51B8EE74DF5441E17A147EF9DF5041AE47E18A81DF5441
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000E17A148E36E05041713D0AD7B4DF5441666666A644E05041713D0AB7B1DF544114AE47314FE0504148E17AC4B4DF5441AE47E15A50E050419A9999F9A2DF5441EC51B85E50E05041B81E859BA2DF5441CDCCCC0C51E050413D0AD7E392DF5441295C8FA237E050417B14AE9792DF5441FCF0413D18E050417C54AED991DF5441C3F5280C14E05041713D0A479DDF544148E17AE417E05041000000509EDF5441BB79E67C1BE0504132B8C6329FDF54417C26F3B21EE0504120A034ED9FDF544144F19D3121E050417CE2136BA0DF5441AA10C02923E0504131626FCEA0DF5441F4D3D74725E05041DDB9632BA1DF54415BF8835627E0504133ED7F76A1DF5441353928F728E05041F44BF8ADA1DF544184AC219F2AE05041C51C7DD4A1DF54414A9DE5BC2CE050414DFB6503A2DF54411BB995192EE05041FA24E705A2DF5441C693A8CB2FE05041CF7A1809A2DF5441AA3DDFE231E050418C60AD11A2DF5441D27DE79E33E050416800CC18A2DF544107265B4F35E050417517BB1FA2DF54414540674D36E05041EEE1CD23A2DF5441713D0A6737E0504185EB5128A2DF5441AE47E15A36E05041295C8FE2B4DF5441E17A148E36E05041713D0AD7B4DF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>70607 - 5185494
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000C000000666666968BCA504152B81E95A53A5541D7A3708D89CA504152B81E75A03A55419A9999B97DCA5041F6285C9F873A5541333333137CCA5041E17A145E843A55417B14AE6774CA50410AD7A340863A5541F6285C9F70CA504114AE47C1A33A5541295C8FB26FCA504133333323AA3A55419A9999996ECA5041A4703D5AAE3A55418FC2F5D86DCA5041713D0A27B03A554152B81EB56CCA50415C8FC2D5B23A55419A9999698DCA5041F6285CCFAA3A5541666666968BCA504152B81E95A53A5541
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000799543F56DCA504182649D67B23A554130B3F35772CA50410F82B973B13A55419C652B647DCA50414CF5BFBDAE3A55412309AC6082CA504140128784AD3A5541DC46106A8DCA5041D2B0C4D0AA3A5541D7A3708D89CA504152B81E75A03A55419E20889B82CA50419A11EDDF913A55419C4E29637CCA5041226BD2FB843A554111FFB32F75CA5041FDEAFA08873A5541DFDBE3C672CA50413438D5579B3A55419E96228A70CA50411EF2F892AA3A55411938A4136FCA50412B6CF26CB03A5541799543F56DCA504182649D67B23A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>939285 - 2964540
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000004A00000014AE4791C4B150411F85EBE1AB3654410AD7A370C6B1504114AE4791AC36544148E17A14C8B150411F85EB11AD365441E17A148EC9B15041333333F3AC3654417B14AE57CCB1504185EB5168AD365441F6285CCFCFB1504166666696AE365441EC51B8DED2B15041C3F528FCAF3654418FC2F5D8D5B15041666666B6B1365441E17A146ED7B15041C3F5286CB23654410AD7A3A0D8B1504166666626B3365441F6285C6FDCB15041B81E857BB03654415C8FC275DFB15041295C8F12AE365441EC51B80EE1B1504166666606AC365441C3F5288CE2B1504152B81EA5AA365441C3F5283CE4B15041B81E85ABA9365441B81E85DBD9B150418FC2F5C8A7365441CDCCCC2CD5B150415C8FC225A536544114AE4741D2B15041295C8F52A3365441EC51B80EC1B150418FC2F5F895365441D7A3706DB0B15041666666C689365441EC51B8FEAAB150413333335386365441C3F5283CA7B15041C3F5286C8736544114AE4721A5B15041B81E85BB883654410AD7A3909FB150410AD7A3408D365441D7A370BD9DB15041713D0A278F36544185EB51989CB1504148E17A8490365441EC51B8AE9DB150410000006090365441B81E850BA0B150416666666690365441EC51B8FEA1B15041000000D0913654419A999919A3B15041A4703DEA92365441AE47E1CAA3B15041F6285CAF933654413D0AD733A4B1504148E17A7494365441F6285C4FA8B15041A4703D5A943654418FC2F5B8AAB15041C3F5282C94365441666666C6ACB1504114AE4761943654419A999929AEB15041333333A395365441295C8F22ADB150419A999989983654418FC2F528ABB150415C8FC2C59B3654413D0AD7F3A9B15041666666E69C36544166666676A8B15041000000E09C36544100000090A4B1504152B81E359B36544185EB51F8A2B15041713D0AE79D3654410AD7A3D0A0B15041000000E09C365441000000609EB1504152B81EF5A0365441713D0AD799B15041CDCCCC9C9E365441000000C098B15041A4703DFA9D365441E17A14CE97B15041AE47E11A9D365441AE47E14A97B1504148E17A849D365441C3F5281C96B1504185EB51289E3654410000004095B15041000000809E3654415C8FC20595B150419A9999F99E3654413D0AD7D394B15041CDCCCC3C9F365441295C8FA294B15041333333739F365441713D0A779BB150417B14AEA7A2365441C3F528DC9EB15041F6285C3FA4365441333333039DB150413D0AD713A836544185EB5148ADB15041F6285C7FAD365441D7A370CDAEB1504152B81EC5AB36544185EB5198AFB150411F85EBF1AA365441F6285C9FB0B150411F85EB21AA36544114AE47E1B1B15041295C8FF2A8365441B81E854BB2B150417B14AE57A83654411F85EBC1B2B15041000000C0A736544133333373B3B15041713D0A17A7365441A4703D9AB4B15041333333C3A6365441000000A0B5B150413D0AD7D3A63654419A999959B6B15041C3F528DCA6365441D7A370FDB6B15041295C8F12A7365441666666F6B7B15041CDCCCC3CA73654418FC2F528BBB1504100000060A83654411F85EB41BEB1504166666676A936544152B81E25C2B1504114AE4741AA3654415C8FC265C3B1504152B81E25AB36544114AE4791C4B150411F85EBE1AB365441
+</a>
+
+<b>
+010600000001000000010300000001000000470000003DAF613B9CB150411543C703A3365441E7FBA9119BB15041250681ADA6365441DD98FD519DB15041315C8070A73654414A0C0203ACB15041DD240669AC36544117D9CE4FACB15041C3F528CCAB3654416ABC74D3ADB150410C022B27AC365441B30094A9B2B150412A142FDFA736544121854097B3B150416E97CB0CA736544119045656B4B1504154E3A563A636544133333303B7B15041295C8F7AA6365441355EBA31BEB1504152B81EF5A836544191ED7C27C2B150412B8716C9A93654415A643BAFC4B15041BC749320AB36544117D9CED7C9B1504146B6F32DAC3654414C378911D0B15041D34D62F8AD3654412B871631D7B150415EBA4964B1365441CBA14566DCB150414A0C026BAF36544162105821E0B1504166666636AC365441B4C87636E0B150413BDF4F3DAA365441E3A59B54DEB15041D9CEF7F3A93654419A999911DCB150415C8FC2B5A93654419CC420E8D1B1504146B6F345A4365441F6285CBFCAB150413F355E529E36544139B4C8E6C4B1504104560EC5993654419318048EBFB1504148E17A84953654410EB0E0B8B8B150414642DDDB8F365441D7A3706DB0B15041666666C689365441EC51B8FEAAB150413333335386365441C423B128ACB15041F9CFE2FA85365441CDCCCCFCABB150418D976EE285365441FA7E6A24AAB150418B6CE723863654413333338BA7B15041F2D24D3287365441B4C87656A5B15041C520B04A883654418716D936A3B1504114AE47C989365441F2D24D729FB1504148E17ADC8C36544148E17AE49DB15041A69BC4708E365441621058D19CB15041F0A7C6A38F365441000000B89CB15041B29DEFA78F365441C17B9E349DB150412C5026CA8F365441CBA1459E9EB15041D7A3702D9036544108AC1CA29EB150413D0AD73B903654410B58BAE49EB150414DCF4763903654414C378909A0B150410AD7A31091365441A5AC17AAA0B15041096E43D990365441000000F0A0B1504179E926C19036544133333373A2B15041295C8F8A913654414C3789B9A4B15041F853E33D94365441454A7349A5B15041F86A8D6D9436544191ED7CA7A7B15041CBA1453695365441F0A7C693AAB150410C022BA794365441508D97D6ACB15041643BDF6F953654417EFDD2D7ADB1504175B7008A96365441BA490C0AAEB150412B8716C196365441D2E5E860ADB150411D01A0D997365441190456CEACB150417F6ABCCC983654413108AC2CABB150415839B4289A365441C1CAA1D5A9B15041621058C99C3654417B14AE4FA8B150416ABC74AB9C365441C190F221A7B150413C4B6F4E9C365441EE7C3F9DA4B150417B14AE879B365441CDCCCC9CA3B150414A0C023B9E3654411564557EA0B150419524B6699D36544106819503A0B150414C3789499D365441A69BC4189EB1504196438B74A03654411F85EB9197B15041621058D99C3654414D488EA395B1504197F059589E365441DAF1742395B150413A7D98BB9E36544160E5D0F294B1504114AE47E19E365441DBBC960B95B1504174106EED9E365441FCA9F1629CB150410C022B87A23654413DAF613B9CB150411543C703A3365441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>939285 - 3624663
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000004A00000014AE4791C4B150411F85EBE1AB3654410AD7A370C6B1504114AE4791AC36544148E17A14C8B150411F85EB11AD365441E17A148EC9B15041333333F3AC3654417B14AE57CCB1504185EB5168AD365441F6285CCFCFB1504166666696AE365441EC51B8DED2B15041C3F528FCAF3654418FC2F5D8D5B15041666666B6B1365441E17A146ED7B15041C3F5286CB23654410AD7A3A0D8B1504166666626B3365441F6285C6FDCB15041B81E857BB03654415C8FC275DFB15041295C8F12AE365441EC51B80EE1B1504166666606AC365441C3F5288CE2B1504152B81EA5AA365441C3F5283CE4B15041B81E85ABA9365441B81E85DBD9B150418FC2F5C8A7365441CDCCCC2CD5B150415C8FC225A536544114AE4741D2B15041295C8F52A3365441EC51B80EC1B150418FC2F5F895365441D7A3706DB0B15041666666C689365441EC51B8FEAAB150413333335386365441C3F5283CA7B15041C3F5286C8736544114AE4721A5B15041B81E85BB883654410AD7A3909FB150410AD7A3408D365441D7A370BD9DB15041713D0A278F36544185EB51989CB1504148E17A8490365441EC51B8AE9DB150410000006090365441B81E850BA0B150416666666690365441EC51B8FEA1B15041000000D0913654419A999919A3B15041A4703DEA92365441AE47E1CAA3B15041F6285CAF933654413D0AD733A4B1504148E17A7494365441F6285C4FA8B15041A4703D5A943654418FC2F5B8AAB15041C3F5282C94365441666666C6ACB1504114AE4761943654419A999929AEB15041333333A395365441295C8F22ADB150419A999989983654418FC2F528ABB150415C8FC2C59B3654413D0AD7F3A9B15041666666E69C36544166666676A8B15041000000E09C36544100000090A4B1504152B81E359B36544185EB51F8A2B15041713D0AE79D3654410AD7A3D0A0B15041000000E09C365441000000609EB1504152B81EF5A0365441713D0AD799B15041CDCCCC9C9E365441000000C098B15041A4703DFA9D365441E17A14CE97B15041AE47E11A9D365441AE47E14A97B1504148E17A849D365441C3F5281C96B1504185EB51289E3654410000004095B15041000000809E3654415C8FC20595B150419A9999F99E3654413D0AD7D394B15041CDCCCC3C9F365441295C8FA294B15041333333739F365441713D0A779BB150417B14AEA7A2365441C3F528DC9EB15041F6285C3FA4365441333333039DB150413D0AD713A836544185EB5148ADB15041F6285C7FAD365441D7A370CDAEB1504152B81EC5AB36544185EB5198AFB150411F85EBF1AA365441F6285C9FB0B150411F85EB21AA36544114AE47E1B1B15041295C8FF2A8365441B81E854BB2B150417B14AE57A83654411F85EBC1B2B15041000000C0A736544133333373B3B15041713D0A17A7365441A4703D9AB4B15041333333C3A6365441000000A0B5B150413D0AD7D3A63654419A999959B6B15041C3F528DCA6365441D7A370FDB6B15041295C8F12A7365441666666F6B7B15041CDCCCC3CA73654418FC2F528BBB1504100000060A83654411F85EB41BEB1504166666676A936544152B81E25C2B1504114AE4741AA3654415C8FC265C3B1504152B81E25AB36544114AE4791C4B150411F85EBE1AB365441
+</a>
+
+<b>
+010600000001000000010300000001000000470000003DAF613B9CB150411543C703A3365441E7FBA9119BB15041250681ADA6365441DD98FD519DB15041315C8070A73654414A0C0203ACB15041DD240669AC36544117D9CE4FACB15041C3F528CCAB3654416ABC74D3ADB150410C022B27AC365441B30094A9B2B150412A142FDFA736544121854097B3B150416E97CB0CA736544119045656B4B1504154E3A563A636544133333303B7B15041295C8F7AA6365441355EBA31BEB1504152B81EF5A836544191ED7C27C2B150412B8716C9A93654415A643BAFC4B15041BC749320AB36544117D9CED7C9B1504146B6F32DAC3654414C378911D0B15041D34D62F8AD3654412B871631D7B150415EBA4964B1365441CBA14566DCB150414A0C026BAF36544162105821E0B1504166666636AC365441B4C87636E0B150413BDF4F3DAA365441E3A59B54DEB15041D9CEF7F3A93654419A999911DCB150415C8FC2B5A93654419CC420E8D1B1504146B6F345A4365441F6285CBFCAB150413F355E529E36544139B4C8E6C4B1504104560EC5993654419318048EBFB1504148E17A84953654410EB0E0B8B8B150414642DDDB8F365441D7A3706DB0B15041666666C689365441EC51B8FEAAB150413333335386365441C423B128ACB15041F9CFE2FA85365441CDCCCCFCABB150418D976EE285365441FA7E6A24AAB150418B6CE723863654413333338BA7B15041F2D24D3287365441B4C87656A5B15041C520B04A883654418716D936A3B1504114AE47C989365441F2D24D729FB1504148E17ADC8C36544148E17AE49DB15041A69BC4708E365441621058D19CB15041F0A7C6A38F365441000000B89CB15041B29DEFA78F365441C17B9E349DB150412C5026CA8F365441CBA1459E9EB15041D7A3702D9036544108AC1CA29EB150413D0AD73B903654410B58BAE49EB150414DCF4763903654414C378909A0B150410AD7A31091365441A5AC17AAA0B15041096E43D990365441000000F0A0B1504179E926C19036544133333373A2B15041295C8F8A913654414C3789B9A4B15041F853E33D94365441454A7349A5B15041F86A8D6D9436544191ED7CA7A7B15041CBA1453695365441F0A7C693AAB150410C022BA794365441508D97D6ACB15041643BDF6F953654417EFDD2D7ADB1504175B7008A96365441BA490C0AAEB150412B8716C196365441D2E5E860ADB150411D01A0D997365441190456CEACB150417F6ABCCC983654413108AC2CABB150415839B4289A365441C1CAA1D5A9B15041621058C99C3654417B14AE4FA8B150416ABC74AB9C365441C190F221A7B150413C4B6F4E9C365441EE7C3F9DA4B150417B14AE879B365441CDCCCC9CA3B150414A0C023B9E3654411564557EA0B150419524B6699D36544106819503A0B150414C3789499D365441A69BC4189EB1504196438B74A03654411F85EB9197B15041621058D99C3654414D488EA395B1504197F059589E365441DAF1742395B150413A7D98BB9E36544160E5D0F294B1504114AE47E19E365441DBBC960B95B1504174106EED9E365441FCA9F1629CB150410C022B87A23654413DAF613B9CB150411543C703A3365441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>939423 - 957808
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000081000000A4703D5AEFAF5041B81E85EB3235544166666696ECAF5041A4703DCA35355441C3F528DCE9AF5041B81E854B38355441E17A14EEE5AF5041F6285C6F3B3554415C8FC2E5E1AF5041B81E856B3E355441CDCCCC7CDDAF5041D7A370BD4135544114AE4731D8AF504185EB51D8453554419A999969D6AF5041AE47E16A47355441000000D0D4AF504152B81ED548355441CDCCCC0CD2AF504152B81EB54B3554417B14AEA7CDAF504114AE471151355441295C8FF2C5AF50410AD7A3205B355441AE47E19ABEAF50411F85EB81643554411F85EB61BCAF5041AE47E1CA673554411F85EB21BAAF504152B81E956B355441A4703D4AB8AF50419A9999396F35544114AE47A1B6AF5041EC51B84E72355441295C8F72B5AF5041295C8F4274355441CDCCCC1CB4AF504114AE4711763554418FC2F588C7AF5041713D0AB770355441D7A370FDCCAF5041AE47E11A6F3554418FC2F5D8D5AF50417B14AEE76B355441C3F5286CDCAF50413D0AD7136F355441295C8F22E0AF5041EC51B8DE7035544100000010DEAF50410AD7A3D0713554415C8FC2A5DDAF5041D7A3705D74355441E17A14DED8AF5041A4703D4A79355441333333E3D1AF5041F6285C1F7F355441F6285CFFC9AF5041F6285CCF84355441D7A3702DC7AF50410AD7A37087355441713D0AF7C1AF504114AE47C18E3554413D0AD793C0AF5041333333E39035544185EB5178BFAF5041A4703D1A8A355441C3F528ECBCAF5041D7A3706D8135544166666646B5AF5041A4703DFA8535544148E17AA4B4AF50411F85EB61863554415C8FC2B5B0AF504185EB51E8883554413D0AD7F3ADAF5041D7A370AD8A355441C3F5280CABAF5041B81E852B8C3554415C8FC255A9AF5041EC51B8DE8C355441295C8FC2A5AF50415C8FC2558E35544166666696A6AF504152B81ED593355441A4703D8AA6AF5041A4703D9A95355441713D0A67A6AF50411F85EBE19A355441EC51B8CEA5AF50411F85EBE19F35544152B81E65A8AF50410AD7A310A03554413D0AD793A5AF50417B14AEA7A9355441295C8F72A4AF50418FC2F5D8AD355441B81E854BA3AF50417B14AE57B335544185EB51E8A4AF504114AE4781B3355441D7A3703DA8AF5041666666D6B3355441F6285CAFA8AF504133333323B035544166666666B9AF5041F6285CAFAD35544133333373B9AF5041713D0A47AE3554419A999989C2AF5041A4703DBAAC355441EC51B86EC6AF5041000000B0AD355441666666E6C5AF5041F6285CBFAB355441295C8FF2CEAF504114AE47D1A8355441AE47E1FAD1AF50418FC2F5A8A63554413D0AD793D5AF504152B81EF5A2355441C3F5281CD7AF50415C8FC225A2355441B81E85CBDAAF5041C3F528BC9F3554410AD7A300E0AF5041F6285CAF9C3554417B14AE07E3AF5041C3F5280CA0355441C3F528DCE5AF5041333333B3A235544133333383E8AF50413D0AD7B3A33554411F85EB41ECAF50410AD7A380A23554410AD7A380F2AF5041713D0A87A1355441C3F5287CFAAF504166666636A135544185EB51F801B0504152B81E65A1355441C3F528DC07B050413D0AD763A135544148E17A4411B0504166666606A1355441713D0A971AB05041D7A3705D9F35544185EB517824B05041713D0A279F35544148E17AA427B05041C3F528CC9F355441713D0A5728B0504100000060903554415C8FC2B528B050410AD7A33088355441333333C329B050411F85EBE170355441E17A14DE35B050417B14AEB773355441B81E858B36B050410AD7A3E07335544152B81EF534B05041AE47E1CA6F35544185EB515833B050410AD7A3906D355441EC51B8FE2EB05041EC51B8AE67355441C3F528EC0BB05041F6285C5F313554410AD7A3A000B050411F85EB2120355441F6285C9FFFAF50411F85EBD1203554415C8FC235FDAF50419A99997922355441333333F3FAAF504152B81E8524355441B81E855BF9AF50411F85EB6126355441C3F528ECF5AF5041E17A14EE2A355441CDCCCC9CF1AF50415C8FC2453035544114AE4771F1AF5041AE47E15A3135544100000030F2AF50413D0AD70332355441F6285C0FF4AF5041AE47E17A333554415C8FC285F5AF5041E17A14DE3435544152B81E3500B0504152B81EF53F35544148E17AB402B05041EC51B8AE42355441EC51B8CE04B05041B81E852B3F355441295C8FF209B05041295C8F32423554417B14AE0709B05041F6285C4F4435544152B81E250AB05041713D0A5746355441CDCCCC7C0EB050419A9999D948355441AE47E17A10B05041295C8F7249355441B81E85CB11B05041EC51B8AE4A355441B81E853B12B050418FC2F5E84D3554413D0AD79315B05041F6285C0F503554411F85EB1113B050419A99992954355441295C8F620AB05041AE47E11A4F355441A4703D5A08B050417B14AE1752355441000000800BB0504185EB51B8543554418FC2F5D80BB05041F6285C5F55355441A4703DAA0BB05041713D0AF7573554417B14AE970AB05041AE47E13A593554413333333309B05041B81E854B5A355441D7A3704D06B05041B81E85FB5935544148E17A54FCAF50415C8FC2D5533554417B14AEF7FAAF5041F6285C3F53355441A4703D7AFDAF50411F85EBF14E355441B81E85FB00B05041AE47E1EA4B3554413D0AD763FFAF5041666666F64A355441B81E85BB03B050410AD7A3104535544152B81E95FFAF504185EB5188403554418FC2F5E8F4AF504152B81E75353554419A999979F3AF50418FC2F518343554418FC2F5B8F2AF50413D0AD7933335544166666696F1AF5041000000E03235544152B81E95F0AF504114AE478132355441295C8FA2EFAF50416666669632355441A4703D5AEFAF5041B81E85EB32355441
+</a>
+
+<b>
+0106000000010000000103000000010000001800000094F35337D5AF50410FA25A58A33554416F573344D8AF5041624DBAF3A53554410D8D815BDAAF50419ADDB59BA83554414C8910E6DCAF5041B68A4139AC355441347791F4DCAF5041B0ACAA2BAC3554413248EC7EDFAF5041AB644FCAA9355441AB4665C4DFAF5041066B5B91A9355441EB647025E0AF50417C503A4EA9355441271C6CFEE1AF504148410B07A83554417AA72487E7AF5041F7F1BC35A5355441ECCCD392E8AF5041FDA01AA6A435544132603C7DE8AF5041E1FB95B1A33554417CD32EDCE5AF5041C56A35B3A235544154F1BB51E3AF5041FCC49151A03554412C167C0BE3AF504147E0B90FA0355441641D33A3E2AF50412CB08F9C9F3554410AD7A300E0AF5041F6285CAF9C355441CC41F7FADAAF5041A34E5EAC9F3554415E0A0F00DAAF50414781B141A0355441A7CCBC9BD8AF50418F98A32AA1355441C8245BCCD7AF50416B6468B2A13554410999DBC6D6AF504126A8D852A23554410B4CF58DD5AF504135692CFBA235544194F35337D5AF50410FA25A58A3355441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>201720 - 3127153
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000011000000EC51B80EA8025141A4703D1AC0AF544148E17AB4C002514114AE47E1C2AF544133333323C002514148E17A84BEAF54417B14AE47BE02514114AE4761B4AF544152B81EA5BE0251415C8FC2F5ABAF54418FC2F568C10251415C8FC205A1AF54417B14AEF7C10251418FC2F5F899AF544100000000C2025141B81E85BB95AF5441B81E851BA50251411F85EB7192AF544152B81EE5A30251410AD7A3A09AAF5441C3F5280CA20251415C8FC215A0AF5441A4703DCA9E0251417B14AEF7A5AF5441A4703D3A9B02514152B81EC5AAAF5441CDCCCCBC95025141F6285C9FB1AF5441D7A370AD9302514148E17AD4B5AF544185EB51289102514152B81E85BDAF5441EC51B80EA8025141A4703D1AC0AF5441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000ACA38113A80251411CE964C892AF544118E7F4FFC102514198E32CC195AF54415C8FC215C2025141333333438AAF5441CDCCCC6CA302514185EB513887AF5441F6285C7FA402514185EB51E88BAF5441E1EAC20EA502514188EE2EE991AF54416CE04291A5025141ABFFFFC691AF5441061F0AE9A5025141968338D190AF5441C91C7C75A6025141EF4DA9478EAF54412659B559A702514135D5367F8CAF5441FFD2EEDBA8025141D798FD9A8BAF54418707B7ABAB025141851AA8318BAF5441237F62BAAD0251416719E1778BAF5441AA7A46D3AE02514171D7C4F28BAF5441FCF89B3CAF025141C4551A5C8CAF5441D339F107AF025141A55453A28CAF5441B2FF4597AD025141219253408DAF544192C59A26AC0251417310A9A98DAF5441B94B61A4AA025141360E1B368EAF544133507D8BA90251414C8AE22B8FAF54418E53D2B8A8025141B484FF8A90AF5441ACA38113A80251411CE964C892AF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>201720 - 3503687
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000011000000EC51B80EA8025141A4703D1AC0AF544148E17AB4C002514114AE47E1C2AF544133333323C002514148E17A84BEAF54417B14AE47BE02514114AE4761B4AF544152B81EA5BE0251415C8FC2F5ABAF54418FC2F568C10251415C8FC205A1AF54417B14AEF7C10251418FC2F5F899AF544100000000C2025141B81E85BB95AF5441B81E851BA50251411F85EB7192AF544152B81EE5A30251410AD7A3A09AAF5441C3F5280CA20251415C8FC215A0AF5441A4703DCA9E0251417B14AEF7A5AF5441A4703D3A9B02514152B81EC5AAAF5441CDCCCCBC95025141F6285C9FB1AF5441D7A370AD9302514148E17AD4B5AF544185EB51289102514152B81E85BDAF5441EC51B80EA8025141A4703D1AC0AF5441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000ACA38113A80251411CE964C892AF544118E7F4FFC102514198E32CC195AF54415C8FC215C2025141333333438AAF5441CDCCCC6CA302514185EB513887AF5441F6285C7FA402514185EB51E88BAF5441E1EAC20EA502514188EE2EE991AF54416CE04291A5025141ABFFFFC691AF5441061F0AE9A5025141968338D190AF5441C91C7C75A6025141EF4DA9478EAF54412659B559A702514135D5367F8CAF5441FFD2EEDBA8025141D798FD9A8BAF54418707B7ABAB025141851AA8318BAF5441237F62BAAD0251416719E1778BAF5441AA7A46D3AE02514171D7C4F28BAF5441FCF89B3CAF025141C4551A5C8CAF5441D339F107AF025141A55453A28CAF5441B2FF4597AD025141219253408DAF544192C59A26AC0251417310A9A98DAF5441B94B61A4AA025141360E1B368EAF544133507D8BA90251414C8AE22B8FAF54418E53D2B8A8025141B484FF8A90AF5441ACA38113A80251411CE964C892AF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>310678 - 34276
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000180000009A999929F9FA50415C8FC2A5F5C7544148E17AA4F7FA50411F85EB91F4C7544152B81EA5F6FA5041A4703DFAF2C75441EC51B8EEEFFA50415C8FC235E6C75441333333C3EDFA50419A9999D9E1C75441E17A14FEE1FA5041295C8FA2E2C75441000000A0E1FA5041B81E858BE4C7544100000060E2FA5041E17A145EE6C754413D0AD773E3FA50411F85EB11E8C75441D7A3700DEBFA5041E17A14EEF2C75441D7A370EDECFA5041EC51B8BEF5C75441C3F5286CEEFA50418FC2F508F9C7544166666636EFFA50415C8FC2B5FCC75441C3F5283CEFFA50415C8FC28500C85441EC51B83EEEFA504152B81EE517C85441F6285C3FEDFA50411F85EB412EC85441333333F3ECFA5041A4703D6A32C8544148E17A04EFFA504152B81ED52DC85441333333C3F1FA5041295C8F6223C8544114AE47E1F2FA50415C8FC2751CC8544133333323F6FA50410000008010C854418FC2F578F9FA5041A4703DAAFDC75441F6285CAFF9FA50417B14AED7F7C754419A999929F9FA50415C8FC2A5F5C75441
+</a>
+
+<b>
+0106000000010000000103000000010000001B00000052B81EA5F6FA5041A4703DFAF2C75441BA334303F6FA5041251461C6F1C75441643AC6E4F4FA5041C8FE76A5EFC75441D64E3281F4FA5041002110E8EEC75441661D2212F4FA504192B8D014EEC75441396EDCB3F3FA5041F4488161EDC75441A56D4EECEEFA5041EEE9B57CEFC75441230CDB0DEFFA50415833F373F1C75441258E1FE1EEFA50412ECAF608F5C75441A83035A9EEFA50419BD61ABDF6C75441254D7DF7EEFA50418C07990CF8C754419BE3F7CBEFFA5041837D42ECF8C754410BB3023DF1FA5041FE174667F9C7544180C7383EF2FA50417C75309FF9C7544171F8B68DF3FA5041FC950194F9C75441E78E3162F4FA504105DFB5CAF8C75441E50CED8EF4FA5041950FAB59F7C7544165EC1B9AF4FA50419791EF2CF7C75441DDC33858F5FA504111EB50BEF7C754415097CC6FF6FA504105DFB5CAF8C75441D076FB7AF6FA50417F38175CF9C75441CCC7439CF9FA5041E7ADE3E2F9C754415A3132A9F9FA5041C4619280F8C75441639C0AAFF9FA5041A28668E0F7C75441A761FC33F9FA504184FC63D1F5C7544148E17AA4F7FA50411F85EB91F4C7544152B81EA5F6FA5041A4703DFAF2C75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>310678 - 75433
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000180000009A999929F9FA50415C8FC2A5F5C7544148E17AA4F7FA50411F85EB91F4C7544152B81EA5F6FA5041A4703DFAF2C75441EC51B8EEEFFA50415C8FC235E6C75441333333C3EDFA50419A9999D9E1C75441E17A14FEE1FA5041295C8FA2E2C75441000000A0E1FA5041B81E858BE4C7544100000060E2FA5041E17A145EE6C754413D0AD773E3FA50411F85EB11E8C75441D7A3700DEBFA5041E17A14EEF2C75441D7A370EDECFA5041EC51B8BEF5C75441C3F5286CEEFA50418FC2F508F9C7544166666636EFFA50415C8FC2B5FCC75441C3F5283CEFFA50415C8FC28500C85441EC51B83EEEFA504152B81EE517C85441F6285C3FEDFA50411F85EB412EC85441333333F3ECFA5041A4703D6A32C8544148E17A04EFFA504152B81ED52DC85441333333C3F1FA5041295C8F6223C8544114AE47E1F2FA50415C8FC2751CC8544133333323F6FA50410000008010C854418FC2F578F9FA5041A4703DAAFDC75441F6285CAFF9FA50417B14AED7F7C754419A999929F9FA50415C8FC2A5F5C75441
+</a>
+
+<b>
+0106000000010000000103000000010000001B00000052B81EA5F6FA5041A4703DFAF2C75441BA334303F6FA5041251461C6F1C75441643AC6E4F4FA5041C8FE76A5EFC75441D64E3281F4FA5041002110E8EEC75441661D2212F4FA504192B8D014EEC75441396EDCB3F3FA5041F4488161EDC75441A56D4EECEEFA5041EEE9B57CEFC75441230CDB0DEFFA50415833F373F1C75441258E1FE1EEFA50412ECAF608F5C75441A83035A9EEFA50419BD61ABDF6C75441254D7DF7EEFA50418C07990CF8C754419BE3F7CBEFFA5041837D42ECF8C754410BB3023DF1FA5041FE174667F9C7544180C7383EF2FA50417C75309FF9C7544171F8B68DF3FA5041FC950194F9C75441E78E3162F4FA504105DFB5CAF8C75441E50CED8EF4FA5041950FAB59F7C7544165EC1B9AF4FA50419791EF2CF7C75441DDC33858F5FA504111EB50BEF7C754415097CC6FF6FA504105DFB5CAF8C75441D076FB7AF6FA50417F38175CF9C75441CCC7439CF9FA5041E7ADE3E2F9C754415A3132A9F9FA5041C4619280F8C75441639C0AAFF9FA5041A28668E0F7C75441A761FC33F9FA504184FC63D1F5C7544148E17AA4F7FA50411F85EB91F4C7544152B81EA5F6FA5041A4703DFAF2C75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>203412 - 58759
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000012000000295C8F1256015141EC51B8EE573C5541EC51B89E5601514185EB5148583C554148E17AD4560151413D0AD763583C5541C3F5285C57015141D7A370CD573C5541CDCCCC6C5A015141CDCCCC2C533C55413D0AD7A35C015141CDCCCC9C4F3C5541B81E85BB600151419A999979473C5541295C8F626101514148E17AC4463C554114AE478164015141333333E3423C5541295C8FF26401514185EB5188413C5541B81E856B64015141B81E850B413C5541C3F528BC5D015141AE47E1DA3A3C554185EB51C85C0151418FC2F5F8393C554114AE47415C015141C3F5287C393C5541F6285C8F500151411F85EB21483C5541D7A370ED4B01514185EB51384F3C5541713D0A374B015141F6285CFF503C5541295C8F1256015141EC51B8EE573C5541
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000C00B15DB59015141AC76C68E533C5541E817E82B5A015141C376C68E533C5541CDCCCC6C5A015141CDCCCC2C533C55417A8F11495B015141F2D087CA513C55410D2FED525C015141E443EDE14F3C5541785870185D01514141A3F4B44E3C554123A9820D5E015141942FA8CD4C3C55411AF1DFA55E015141D9D15F734B3C55417BA7ED2360015141E21B06A7483C5541B81E85BB600151419A999979473C554174B64F0E610151416A7DD41F473C55417149CD7161015141D77B86B1463C5541CE6E3D0063015141FD2508C2443C5541BBF5A45E640151411EC3450E433C5541F7D3536E64015141580D1FF7423C5541C2B0DBDC6401514191884374413C5541B81E856B64015141B81E850B413C5541C3F528BC5D015141AE47E1DA3A3C55411AD2697B5D015141DD42E49E3A3C5541181B0D4D5C0151413E6A0E87393C55417A478AB955015141F5C8F1A9413C55415872B1DD5001514101A832E2473C55419A9E8DD04F015141BD5AD845493C55417D5C76764F015141F704AECF493C554158C793744C015141C10991694E3C5541828A486D4C0151412DD2B9744E3C5541B5E0490E4C015141330063124F3C55410CA66B5A4B0151419B9023CD503C5541328B8C4C4D01514190AE2054523C554120920623510151416FFBA9C7543C5541295C8F1256015141EC51B8EE573C55418D4E1F6F56015141F369E429583C55417A4537E7560151410F49124F583C55410E98443557015141862D8DF8573C55411A8FAA6557015141F06B16BF573C55415022A46B57015141731611B6573C5541A296FDAA57015141BC2B6C56573C5541E6484A9159015141F6BE266C543C5541A20B15DB59015141C276C68E533C5541F45AA2C859015141C376C68E533C55418471D00D5A0151411F4594F6523C5541C00B15DB59015141AC76C68E533C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>203525 - 243124
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000F0000005C8FC235B1FD5041666666F6AE4C5541D7A370FDB0FD5041B81E854BAD4C55418FC2F5F8ABFD504166666666AE4C5541AE47E13AA8FD504185EB5138AF4C55410AD7A3F0A4FD504133333323AE4C5541C3F528ACA2FD504100000060AD4C554185EB51D8A0FD504185EB5158AD4C55413D0AD7E39CFD50410AD7A3C0AD4C5541E17A140E97FD50417B14AED7AE4C5541D7A370ED94FD50415C8FC285AF4C55413D0AD74392FD504166666646B04C55418FC2F57891FD5041D7A370EDB04C5541E17A144E90FD50411F85EB51B24C5541295C8FD290FD5041F6285CCFB44C55415C8FC235B1FD5041666666F6AE4C5541
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000005C8FC235B1FD5041666666F6AE4C5541D7A370FDB0FD5041B81E854BAD4C554131BCDEABABFD50416133B976AE4C5541AE47E13AA8FD504185EB5138AF4C5541F96B50E7A2FD50410458E473AD4C554126746803A1FD5041ECFE0659AD4C5541EBA42C3A9FFD5041F7BAFD82AD4C554131B538129CFD50417E2ACCE7AD4C5541782CC2FA98FD50412B53A57BAE4C55410A51773D95FD5041EE862E6CAF4C55413D0AD74392FD504166666646B04C5541E17A144E90FD50411F85EB51B24C5541295C8FD290FD5041F6285CCFB44C55415C8FC235B1FD5041666666F6AE4C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>203525 - 318880
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000F0000005C8FC235B1FD5041666666F6AE4C5541D7A370FDB0FD5041B81E854BAD4C55418FC2F5F8ABFD504166666666AE4C5541AE47E13AA8FD504185EB5138AF4C55410AD7A3F0A4FD504133333323AE4C5541C3F528ACA2FD504100000060AD4C554185EB51D8A0FD504185EB5158AD4C55413D0AD7E39CFD50410AD7A3C0AD4C5541E17A140E97FD50417B14AED7AE4C5541D7A370ED94FD50415C8FC285AF4C55413D0AD74392FD504166666646B04C55418FC2F57891FD5041D7A370EDB04C5541E17A144E90FD50411F85EB51B24C5541295C8FD290FD5041F6285CCFB44C55415C8FC235B1FD5041666666F6AE4C5541
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000005C8FC235B1FD5041666666F6AE4C5541D7A370FDB0FD5041B81E854BAD4C554131BCDEABABFD50416133B976AE4C5541AE47E13AA8FD504185EB5138AF4C5541F96B50E7A2FD50410458E473AD4C554126746803A1FD5041ECFE0659AD4C5541EBA42C3A9FFD5041F7BAFD82AD4C554131B538129CFD50417E2ACCE7AD4C5541782CC2FA98FD50412B53A57BAE4C55410A51773D95FD5041EE862E6CAF4C55413D0AD74392FD504166666646B04C5541E17A144E90FD50411F85EB51B24C5541295C8FD290FD5041F6285CCFB44C55415C8FC235B1FD5041666666F6AE4C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>203617 - 243124
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000360000003D0AD7236AFD504133333313B24C5541D7A370DD64FD5041A4703D6AB44C55413D0AD79364FD50415C8FC225B64C5541D7A3700D69FD504148E17A94B64C554114AE47B16DFD5041D7A370BDB64C5541C3F5282C71FD504148E17A94B64C5541EC51B8AE75FD5041CDCCCC8CB54C55415C8FC2D579FD504148E17A94B44C5541CDCCCC6C7DFD504185EB5178B34C5541E17A14DE7DFD5041B81E859BB44C5541D7A370BD82FD50419A9999E9B34C5541EC51B80E83FD50410AD7A390B44C5541E17A144E90FD50411F85EB51B24C55418FC2F57891FD5041D7A370EDB04C55413D0AD74392FD504166666646B04C5541D7A370ED94FD50415C8FC285AF4C5541E17A140E97FD50417B14AED7AE4C55413D0AD7E39CFD50410AD7A3C0AD4C554185EB51D8A0FD504185EB5158AD4C5541C3F528ACA2FD504100000060AD4C55410AD7A3F0A4FD504133333323AE4C5541AE47E13AA8FD504185EB5138AF4C55418FC2F5F8ABFD504166666666AE4C5541D7A370FDB0FD5041B81E854BAD4C55415C8FC235B1FD5041666666F6AE4C554114AE4761B1FD5041C3F5283CB04C554148E17A14B5FD50415C8FC205B04C5541AE47E1DABEFD5041A4703DBAAE4C5541EC51B8FECAFD504152B81EC5A74C55415C8FC2A5CAFD5041F6285CEFA64C55410AD7A390C7FD50413D0AD793A64C554152B81E25C7FD504185EB5118A74C5541295C8FB2C1FD504152B81E15A84C5541C3F5282CBEFD5041AE47E19AA84C5541A4703D4ABDFD50410AD7A390A84C5541E17A143EBAFD5041666666A6A74C5541B81E85DBB7FD5041A4703D2AA74C554133333383B4FD504185EB51C8A64C554148E17A64B1FD5041D7A3709DA64C5541333333E3AFFD5041EC51B84EA64C55413D0AD763AFFD5041F6285CAFA54C554100000080AEFD5041C3F528BCA44C5541F6285C3FAEFD5041E17A14EEA34C5541295C8F92AEFD5041C3F528CCA24C55413D0AD793A7FD5041333333B3A44C5541666666F6A6FD5041AE47E13AA54C55413D0AD793A0FD504152B81E85A64C5541F6285C0F98FD504152B81EE5A74C55413D0AD7B38BFD50415C8FC255A94C5541CDCCCCBC85FD5041B81E856BAA4C5541E17A143E82FD5041295C8F62AB4C5541AE47E13A7AFD5041333333C3AC4C55418FC2F51879FD504152B81EF5AC4C55413D0AD7236AFD504133333313B24C5541
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000005C8FC235B1FD5041666666F6AE4C5541D7A370FDB0FD5041B81E854BAD4C554131BCDEABABFD50416133B976AE4C5541AE47E13AA8FD504185EB5138AF4C5541F96B50E7A2FD50410458E473AD4C554126746803A1FD5041ECFE0659AD4C5541EBA42C3A9FFD5041F7BAFD82AD4C554131B538129CFD50417E2ACCE7AD4C5541782CC2FA98FD50412B53A57BAE4C55410A51773D95FD5041EE862E6CAF4C55413D0AD74392FD504166666646B04C5541E17A144E90FD50411F85EB51B24C5541295C8FD290FD5041F6285CCFB44C55415C8FC235B1FD5041666666F6AE4C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>203617 - 318880
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000360000003D0AD7236AFD504133333313B24C5541D7A370DD64FD5041A4703D6AB44C55413D0AD79364FD50415C8FC225B64C5541D7A3700D69FD504148E17A94B64C554114AE47B16DFD5041D7A370BDB64C5541C3F5282C71FD504148E17A94B64C5541EC51B8AE75FD5041CDCCCC8CB54C55415C8FC2D579FD504148E17A94B44C5541CDCCCC6C7DFD504185EB5178B34C5541E17A14DE7DFD5041B81E859BB44C5541D7A370BD82FD50419A9999E9B34C5541EC51B80E83FD50410AD7A390B44C5541E17A144E90FD50411F85EB51B24C55418FC2F57891FD5041D7A370EDB04C55413D0AD74392FD504166666646B04C5541D7A370ED94FD50415C8FC285AF4C5541E17A140E97FD50417B14AED7AE4C55413D0AD7E39CFD50410AD7A3C0AD4C554185EB51D8A0FD504185EB5158AD4C5541C3F528ACA2FD504100000060AD4C55410AD7A3F0A4FD504133333323AE4C5541AE47E13AA8FD504185EB5138AF4C55418FC2F5F8ABFD504166666666AE4C5541D7A370FDB0FD5041B81E854BAD4C55415C8FC235B1FD5041666666F6AE4C554114AE4761B1FD5041C3F5283CB04C554148E17A14B5FD50415C8FC205B04C5541AE47E1DABEFD5041A4703DBAAE4C5541EC51B8FECAFD504152B81EC5A74C55415C8FC2A5CAFD5041F6285CEFA64C55410AD7A390C7FD50413D0AD793A64C554152B81E25C7FD504185EB5118A74C5541295C8FB2C1FD504152B81E15A84C5541C3F5282CBEFD5041AE47E19AA84C5541A4703D4ABDFD50410AD7A390A84C5541E17A143EBAFD5041666666A6A74C5541B81E85DBB7FD5041A4703D2AA74C554133333383B4FD504185EB51C8A64C554148E17A64B1FD5041D7A3709DA64C5541333333E3AFFD5041EC51B84EA64C55413D0AD763AFFD5041F6285CAFA54C554100000080AEFD5041C3F528BCA44C5541F6285C3FAEFD5041E17A14EEA34C5541295C8F92AEFD5041C3F528CCA24C55413D0AD793A7FD5041333333B3A44C5541666666F6A6FD5041AE47E13AA54C55413D0AD793A0FD504152B81E85A64C5541F6285C0F98FD504152B81EE5A74C55413D0AD7B38BFD50415C8FC255A94C5541CDCCCCBC85FD5041B81E856BAA4C5541E17A143E82FD5041295C8F62AB4C5541AE47E13A7AFD5041333333C3AC4C55418FC2F51879FD504152B81EF5AC4C55413D0AD7236AFD504133333313B24C5541
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000005C8FC235B1FD5041666666F6AE4C5541D7A370FDB0FD5041B81E854BAD4C554131BCDEABABFD50416133B976AE4C5541AE47E13AA8FD504185EB5138AF4C5541F96B50E7A2FD50410458E473AD4C554126746803A1FD5041ECFE0659AD4C5541EBA42C3A9FFD5041F7BAFD82AD4C554131B538129CFD50417E2ACCE7AD4C5541782CC2FA98FD50412B53A57BAE4C55410A51773D95FD5041EE862E6CAF4C55413D0AD74392FD504166666646B04C5541E17A144E90FD50411F85EB51B24C5541295C8FD290FD5041F6285CCFB44C55415C8FC235B1FD5041666666F6AE4C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>203729 - 1458593
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000003300000048E17A44C8F85041C3F5282C55395541666666B6C7F85041EC51B89E54395541EC51B8AEC6F85041EC51B85E53395541E17A149EC3F850419A9999D94E395541CDCCCC3CC0F850419A9999D949395541EC51B81EB9F8504114AE47114E3955411F85EBD1B5F8504185EB51E848395541D7A3707DB2F850415C8FC2A54339554148E17A84AFF85041A4703D9A3D39554166666636ACF8504148E17A04383955413D0AD733A8F850413D0AD7D33139554185EB5158A4F850410AD7A3E02B395541EC51B8FE9EF85041F6285CAF253955415C8FC2B59DF850417B14AE872739554114AE47319CF8504152B81EB529395541C3F528FC8DF850417B14AE073B3955416666663687F85041713D0AF742395541EC51B88E85F850411F85EB914A3955418FC2F5C883F85041F6285C1F503955418FC2F5C881F850417B14AE47563955410000001080F85041D7A370FD5E3955411F85EB217DF8504185EB51E876395541713D0AB77AF850411F85EBA18A395541D7A3706D7BF85041C3F5283C91395541EC51B8FE83F850417B14AE078F395541E17A149E8FF850413D0AD7B38B395541E17A14EE9CF85041B81E859B873955419A9999B99CF850418FC2F5A88539554185EB51789CF850411F85EBF184395541295C8F229DF850418FC2F568813955415C8FC2159DF85041713D0A777F395541C3F5281C9CF85041A4703D2A7F39554152B81EB59DF85041D7A370BD763955418FC2F538A0F8504114AE47516D395541295C8F02A8F85041C3F5283C6F395541295C8F12B2F85041A4703D3A72395541F6285CCFBBF85041713D0A4777395541AE47E1CABEF85041B81E85DB743955413D0AD753C1F85041D7A370BD73395541D7A370FDC3F8504148E17AA47339554114AE4791C7F8504152B81E7574395541666666D6CAF85041000000807439554166666646CDF850410000001074395541D7A370DDCFF85041295C8FC2723955413D0AD7A3D2F85041AE47E1AA6F3955410AD7A360CEF85041295C8FA26A3955415C8FC285C7F85041A4703D8A623955413D0AD7C3C3F850419A9999195E39554185EB51D8CAF85041666666465739554148E17AF4C8F85041A4703DCA5539554148E17A44C8F85041C3F5282C55395541
+</a>
+
+<b>
+0106000000010000000103000000040000007A000000E08226F67CF850413BC316D790395541A9B0285A7BF85041FE457A549139554185EB51187CF8504114AE477196395541666666667BF850419A9999D996395541EC51B82E7AF85041713D0A6797395541E17A14FE77F8504152B81ED597395541CDCCCCDC72F8504152B81E1598395541AE47E1CA6BF85041A4703D3A98395541B81E859B62F850410AD7A3F09739554185EB51B85BF850413D0AD7D396395541EC51B89E55F850419A9999C99539554152B81E7551F850413D0AD723953955410AD7A3804BF850413D0AD72395395541333333833EF85041B81E855B95395541F6285C0F39F8504100000080953955418FC2F50834F8504133333313963955411F85EBB12FF850413D0AD79396395541AE47E18A2DF85041F6285CAF963955419A9999C92CF85041D7A3705D973955419A9999C92CF8504185EB51D89A3955418FC2F5882CF850417B14AE979E395541333333E343F85041C3F528BC9A39554148E17AC448F85041EC51B88E9A395541713D0A8762F8504152B81E059D39554152B81ED569F85041C3F5287C9E39554148E17A046CF850418FC2F5789E39554114AE47F16FF85041A4703D7A9D395541CDCCCCEC74F85041D7A370AD9D395541CDCCCC7C77F8504152B81E659D39554152B81E4586F850418FC2F5E899395541C3F5285C8EF85041A4703DEA983955418FC2F56892F850415C8FC2C59739554114AE478197F85041D7A370CD96395541666666B69BF8504152B81EA59639554148E17A249CF85041CDCCCCDC96395541295C8F729CF8504148E17A04973955415C8FC295A5F850417B14AEE790395541EC51B8EEAAF85041C3F5286C8E3955418FC2F568AFF850419A9999298D395541CDCCCCDCB5F85041AE47E1CA8B395541CDCCCCDCBBF8504166666616893955410AD7A390BFF850415C8FC2A587395541F6285C7FC1F850415C8FC2E586395541CDCCCCDCC3F85041295C8F82853955410AD7A380C7F85041A4703D4A82395541F6285CAFD4F850417B14AE97733955411F85EBF1D4F8504185EB51D8733955413D0AD7C3C7F850410AD7A390823955411F85EB11C4F85041333333D385395541F6285C9FC1F8504114AE47418739554100000000BCF85041EC51B86E893955417B14AEF7B5F850413D0AD7238C395541D7A3707DAFF8504185EB51888D3955415C8FC215ABF850415C8FC2C58E39554152B81EC5A5F85041B81E853B9139554148E17A649CF85041E17A145E973955419A9999399CF850418FC2F54897395541D7A370AD9BF8504152B81E0597395541AE47E18A97F85041D7A3702D97395541AE47E17A92F850413333332398395541713D0A778EF850418FC2F54899395541713D0A5786F8504148E17A449A3955417B14AE8777F8504148E17AC49D395541F6285CEF74F85041D7A3700D9E3955410AD7A31070F85041713D0AD79D3955410AD7A3106CF850418FC2F5D89E395541A4703DCA69F850419A9999D99E39554148E17A7462F85041333333639D3955413D0AD7C348F85041000000F09A3955410AD7A3F043F85041CDCCCC1C9B3955419A9999892CF85041713D0AF79E395541E17A144E2CF85041000000E0A439554152B81E0548F8504166666666A5395541EC51B87E61F85041000000C0A53955411F85EB617DF850415C8FC255A6395541EC51B88E97F85041333333C3A6395541713D0AC7A7F8504114AE47E1A63955411F85EBA1AFF8504185EB51E8A5395541B81E85DBC3F850417B14AEB7A2395541666666C6CBF85041B81E859BA13955417B14AEE7CAF850415C8FC2559B3955415C8FC215C9F850415C8FC2C59139554152B81EF5CBF85041666666468E395541A4703D6ACEF85041713D0AB791395541C3F5285CE8F85041666666D67A3955411F85EB31E6F850411F85EB117839554100000050E1F8504114AE47817A395541295C8FB2DDF8504185EB51487B395541A4703DDAD7F85041F6285C0F753955417B14AE57D3F850411F85EB41703955417B14AE67D0F850417B14AE7773395541E17A148ECDF85041713D0AE7743955418FC2F5E8CAF85041000000607539554166666676C7F8504148E17A547539554185EB51E8C3F8504152B81E857439554114AE4791C1F8504185EB51C87439554185EB5158BFF85041333333C375395541CDCCCCDCB5F8504148E17A747D395541C3F5289CB4F85041AE47E10A7E395541CDCCCC0CB3F85041666666C67E395541713D0AB7B0F85041F6285C4F80395541E17A142EADF85041713D0A178239554114AE47F1A7F85041B81E856B8239554114AE47A1A7F850418FC2F528823955413D0AD7F3A5F85041AE47E12A82395541A4703DEAA4F85041CDCCCC8C82395541C3F5280CA3F85041E17A148E84395541CDCCCCFCA1F850410AD7A38085395541E17A14AEA0F85041CDCCCC6C86395541F6285C0F9FF85041C3F5287C87395541DE4A73A29DF85041384A8ACA87395541019CD0C49CF850411D4100B48739554176B93C1A98F85041CAD2A01C89395541E934580B91F850413A0A5A4C8B3955413901673E8DF8504168D49A6D8C3955415C7475C187F8504148784F038E3955418385BE1C85F8504163B3CAB58E39554187839BA884F85041F3A10AD78E395541428D9C0B83F850417CA8E24D8F3955413FEB4BA780F8504167946AEF8F39554159AF56C87DF850414143FEA090395541E08226F67CF850413BC316D7903955410E00000048E17A44C8F850418FC2F5988F39554148E17A04BDF8504152B81EB593395541AE47E16AAAF8504152B81EB599395541EC51B8BEA8F85041B81E859B94395541EC51B82EA8F850410000003092395541EC51B80EAAF85041A4703DFA913955413D0AD733B6F850413D0AD7438E395541AE47E18AC1F850418FC2F558893955413D0AD773C6F85041EC51B85E863955415C8FC2B5CAF85041333333E3823955411F85EB01D1F85041CDCCCC1C88395541295C8F12CFF85041666666868A39554133333393CCF8504185EB51888D39554148E17A44C8F850418FC2F5988F39554107000000713D0A17BCF8504114AE47119539554152B81E75BCF8504152B81EA595395541F6285C1FB7F850417B14AE4797395541E17A145EB2F8504148E17AA49939554185EB5108B2F850410AD7A3D09839554114AE47F1B1F85041295C8F1298395541713D0A17BCF8504114AE47119539554112000000EC51B85E87F85041295C8FC296395541E17A14AE84F85041B81E859B973955411F85EB1184F8504114AE4781963955410000004085F85041A4703D2A9639554148E17A548EF85041F6285C8F933955417B14AE7793F85041AE47E1EA90395541333333A39AF8504185EB51C88E395541B81E855BA8F85041EC51B88E8A3955419A9999F9A8F850410AD7A3D08B395541C3F5282CA3F8504185EB51C88E39554114AE47119BF85041A4703D1A913955410AD7A39098F85041C3F5281C91395541333333E390F85041CDCCCCBC9339554148E17AE48FF850411F85EB1194395541D7A370CD8EF850419A99990995395541C3F5281C8DF850419A9999099539554185EB51E889F8504114AE47E196395541EC51B85E87F85041295C8FC296395541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>203729 - 3498340
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000003300000048E17A44C8F85041C3F5282C55395541666666B6C7F85041EC51B89E54395541EC51B8AEC6F85041EC51B85E53395541E17A149EC3F850419A9999D94E395541CDCCCC3CC0F850419A9999D949395541EC51B81EB9F8504114AE47114E3955411F85EBD1B5F8504185EB51E848395541D7A3707DB2F850415C8FC2A54339554148E17A84AFF85041A4703D9A3D39554166666636ACF8504148E17A04383955413D0AD733A8F850413D0AD7D33139554185EB5158A4F850410AD7A3E02B395541EC51B8FE9EF85041F6285CAF253955415C8FC2B59DF850417B14AE872739554114AE47319CF8504152B81EB529395541C3F528FC8DF850417B14AE073B3955416666663687F85041713D0AF742395541EC51B88E85F850411F85EB914A3955418FC2F5C883F85041F6285C1F503955418FC2F5C881F850417B14AE47563955410000001080F85041D7A370FD5E3955411F85EB217DF8504185EB51E876395541713D0AB77AF850411F85EBA18A395541D7A3706D7BF85041C3F5283C91395541EC51B8FE83F850417B14AE078F395541E17A149E8FF850413D0AD7B38B395541E17A14EE9CF85041B81E859B873955419A9999B99CF850418FC2F5A88539554185EB51789CF850411F85EBF184395541295C8F229DF850418FC2F568813955415C8FC2159DF85041713D0A777F395541C3F5281C9CF85041A4703D2A7F39554152B81EB59DF85041D7A370BD763955418FC2F538A0F8504114AE47516D395541295C8F02A8F85041C3F5283C6F395541295C8F12B2F85041A4703D3A72395541F6285CCFBBF85041713D0A4777395541AE47E1CABEF85041B81E85DB743955413D0AD753C1F85041D7A370BD73395541D7A370FDC3F8504148E17AA47339554114AE4791C7F8504152B81E7574395541666666D6CAF85041000000807439554166666646CDF850410000001074395541D7A370DDCFF85041295C8FC2723955413D0AD7A3D2F85041AE47E1AA6F3955410AD7A360CEF85041295C8FA26A3955415C8FC285C7F85041A4703D8A623955413D0AD7C3C3F850419A9999195E39554185EB51D8CAF85041666666465739554148E17AF4C8F85041A4703DCA5539554148E17A44C8F85041C3F5282C55395541
+</a>
+
+<b>
+0106000000010000000103000000040000007A000000E08226F67CF850413BC316D790395541A9B0285A7BF85041FE457A549139554185EB51187CF8504114AE477196395541666666667BF850419A9999D996395541EC51B82E7AF85041713D0A6797395541E17A14FE77F8504152B81ED597395541CDCCCCDC72F8504152B81E1598395541AE47E1CA6BF85041A4703D3A98395541B81E859B62F850410AD7A3F09739554185EB51B85BF850413D0AD7D396395541EC51B89E55F850419A9999C99539554152B81E7551F850413D0AD723953955410AD7A3804BF850413D0AD72395395541333333833EF85041B81E855B95395541F6285C0F39F8504100000080953955418FC2F50834F8504133333313963955411F85EBB12FF850413D0AD79396395541AE47E18A2DF85041F6285CAF963955419A9999C92CF85041D7A3705D973955419A9999C92CF8504185EB51D89A3955418FC2F5882CF850417B14AE979E395541333333E343F85041C3F528BC9A39554148E17AC448F85041EC51B88E9A395541713D0A8762F8504152B81E059D39554152B81ED569F85041C3F5287C9E39554148E17A046CF850418FC2F5789E39554114AE47F16FF85041A4703D7A9D395541CDCCCCEC74F85041D7A370AD9D395541CDCCCC7C77F8504152B81E659D39554152B81E4586F850418FC2F5E899395541C3F5285C8EF85041A4703DEA983955418FC2F56892F850415C8FC2C59739554114AE478197F85041D7A370CD96395541666666B69BF8504152B81EA59639554148E17A249CF85041CDCCCCDC96395541295C8F729CF8504148E17A04973955415C8FC295A5F850417B14AEE790395541EC51B8EEAAF85041C3F5286C8E3955418FC2F568AFF850419A9999298D395541CDCCCCDCB5F85041AE47E1CA8B395541CDCCCCDCBBF8504166666616893955410AD7A390BFF850415C8FC2A587395541F6285C7FC1F850415C8FC2E586395541CDCCCCDCC3F85041295C8F82853955410AD7A380C7F85041A4703D4A82395541F6285CAFD4F850417B14AE97733955411F85EBF1D4F8504185EB51D8733955413D0AD7C3C7F850410AD7A390823955411F85EB11C4F85041333333D385395541F6285C9FC1F8504114AE47418739554100000000BCF85041EC51B86E893955417B14AEF7B5F850413D0AD7238C395541D7A3707DAFF8504185EB51888D3955415C8FC215ABF850415C8FC2C58E39554152B81EC5A5F85041B81E853B9139554148E17A649CF85041E17A145E973955419A9999399CF850418FC2F54897395541D7A370AD9BF8504152B81E0597395541AE47E18A97F85041D7A3702D97395541AE47E17A92F850413333332398395541713D0A778EF850418FC2F54899395541713D0A5786F8504148E17A449A3955417B14AE8777F8504148E17AC49D395541F6285CEF74F85041D7A3700D9E3955410AD7A31070F85041713D0AD79D3955410AD7A3106CF850418FC2F5D89E395541A4703DCA69F850419A9999D99E39554148E17A7462F85041333333639D3955413D0AD7C348F85041000000F09A3955410AD7A3F043F85041CDCCCC1C9B3955419A9999892CF85041713D0AF79E395541E17A144E2CF85041000000E0A439554152B81E0548F8504166666666A5395541EC51B87E61F85041000000C0A53955411F85EB617DF850415C8FC255A6395541EC51B88E97F85041333333C3A6395541713D0AC7A7F8504114AE47E1A63955411F85EBA1AFF8504185EB51E8A5395541B81E85DBC3F850417B14AEB7A2395541666666C6CBF85041B81E859BA13955417B14AEE7CAF850415C8FC2559B3955415C8FC215C9F850415C8FC2C59139554152B81EF5CBF85041666666468E395541A4703D6ACEF85041713D0AB791395541C3F5285CE8F85041666666D67A3955411F85EB31E6F850411F85EB117839554100000050E1F8504114AE47817A395541295C8FB2DDF8504185EB51487B395541A4703DDAD7F85041F6285C0F753955417B14AE57D3F850411F85EB41703955417B14AE67D0F850417B14AE7773395541E17A148ECDF85041713D0AE7743955418FC2F5E8CAF85041000000607539554166666676C7F8504148E17A547539554185EB51E8C3F8504152B81E857439554114AE4791C1F8504185EB51C87439554185EB5158BFF85041333333C375395541CDCCCCDCB5F8504148E17A747D395541C3F5289CB4F85041AE47E10A7E395541CDCCCC0CB3F85041666666C67E395541713D0AB7B0F85041F6285C4F80395541E17A142EADF85041713D0A178239554114AE47F1A7F85041B81E856B8239554114AE47A1A7F850418FC2F528823955413D0AD7F3A5F85041AE47E12A82395541A4703DEAA4F85041CDCCCC8C82395541C3F5280CA3F85041E17A148E84395541CDCCCCFCA1F850410AD7A38085395541E17A14AEA0F85041CDCCCC6C86395541F6285C0F9FF85041C3F5287C87395541DE4A73A29DF85041384A8ACA87395541019CD0C49CF850411D4100B48739554176B93C1A98F85041CAD2A01C89395541E934580B91F850413A0A5A4C8B3955413901673E8DF8504168D49A6D8C3955415C7475C187F8504148784F038E3955418385BE1C85F8504163B3CAB58E39554187839BA884F85041F3A10AD78E395541428D9C0B83F850417CA8E24D8F3955413FEB4BA780F8504167946AEF8F39554159AF56C87DF850414143FEA090395541E08226F67CF850413BC316D7903955410E00000048E17A44C8F850418FC2F5988F39554148E17A04BDF8504152B81EB593395541AE47E16AAAF8504152B81EB599395541EC51B8BEA8F85041B81E859B94395541EC51B82EA8F850410000003092395541EC51B80EAAF85041A4703DFA913955413D0AD733B6F850413D0AD7438E395541AE47E18AC1F850418FC2F558893955413D0AD773C6F85041EC51B85E863955415C8FC2B5CAF85041333333E3823955411F85EB01D1F85041CDCCCC1C88395541295C8F12CFF85041666666868A39554133333393CCF8504185EB51888D39554148E17A44C8F850418FC2F5988F39554107000000713D0A17BCF8504114AE47119539554152B81E75BCF8504152B81EA595395541F6285C1FB7F850417B14AE4797395541E17A145EB2F8504148E17AA49939554185EB5108B2F850410AD7A3D09839554114AE47F1B1F85041295C8F1298395541713D0A17BCF8504114AE47119539554112000000EC51B85E87F85041295C8FC296395541E17A14AE84F85041B81E859B973955411F85EB1184F8504114AE4781963955410000004085F85041A4703D2A9639554148E17A548EF85041F6285C8F933955417B14AE7793F85041AE47E1EA90395541333333A39AF8504185EB51C88E395541B81E855BA8F85041EC51B88E8A3955419A9999F9A8F850410AD7A3D08B395541C3F5282CA3F8504185EB51C88E39554114AE47119BF85041A4703D1A913955410AD7A39098F85041C3F5281C91395541333333E390F85041CDCCCCBC9339554148E17AE48FF850411F85EB1194395541D7A370CD8EF850419A99990995395541C3F5281C8DF850419A9999099539554185EB51E889F8504114AE47E196395541EC51B85E87F85041295C8FC296395541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>76487 - 160018
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000012000000C3F528CC721C514185EB5188F23A54411F85EBB15B1C5141C3F5284CEE3A54411F85EBF15A1C5141E17A141EF23A5441713D0A375A1C5141713D0A47F53A54413D0AD723591C5141B81E858BF63A5441713D0AD7561C5141333333A31A3B544185EB51D8571C5141F6285C4F1B3B54417B14AE37591C5141B81E85BB1B3B5441D7A370CD6B1C5141666666960C3B5441CDCCCCAC6C1C5141EC51B85E0B3B544114AE47516D1C51410AD7A3E0093B5441A4703DBA6D1C5141C3F528AC093B5441F6285CEF6E1C514114AE4771093B54411F85EB31701C5141B81E858B093B54417B14AEF7701C51410AD7A3500A3B54417B14AE17721C5141F6285CEF0A3B5441295C8F92731C5141CDCCCCACF23A5441C3F528CC721C514185EB5188F23A5441
+</a>
+
+<b>
+010600000001000000010300000001000000160000003D0AD723591C5141B81E858BF63A544123B022E5561C5141C90502C6193B54412DFEDDD8561C51412B0A87861A3B5441EFC9BFE5571C514185BE0B0A1B3B54417B14AE37591C5141B81E85BB1B3B5441D7A370CD6B1C5141666666960C3B5441CDCCCCAC6C1C5141EC51B85E0B3B544114AE47516D1C51410AD7A3E0093B5441A4703DBA6D1C5141C3F528AC093B5441F6285CEF6E1C514114AE4771093B54411F85EB31701C5141B81E858B093B54417B14AEF7701C51410AD7A3500A3B544141031C00721C5141EEB75EE20A3B5441D4192B2A721C51410BFE4CC0093B54411BE91B6F731C51410096E8F1F43A5441EB4FC591731C514102BFBCB9F23A544102740C88731C51413905DEAAF23A5441C3F528CC721C514185EB5188F23A54411F85EBB15B1C5141C3F5284CEE3A54411F85EBF15A1C5141E17A141EF23A5441713D0A375A1C5141713D0A47F53A54413D0AD723591C5141B81E858BF63A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>76487 - 298241
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000012000000C3F528CC721C514185EB5188F23A54411F85EBB15B1C5141C3F5284CEE3A54411F85EBF15A1C5141E17A141EF23A5441713D0A375A1C5141713D0A47F53A54413D0AD723591C5141B81E858BF63A5441713D0AD7561C5141333333A31A3B544185EB51D8571C5141F6285C4F1B3B54417B14AE37591C5141B81E85BB1B3B5441D7A370CD6B1C5141666666960C3B5441CDCCCCAC6C1C5141EC51B85E0B3B544114AE47516D1C51410AD7A3E0093B5441A4703DBA6D1C5141C3F528AC093B5441F6285CEF6E1C514114AE4771093B54411F85EB31701C5141B81E858B093B54417B14AEF7701C51410AD7A3500A3B54417B14AE17721C5141F6285CEF0A3B5441295C8F92731C5141CDCCCCACF23A5441C3F528CC721C514185EB5188F23A5441
+</a>
+
+<b>
+010600000001000000010300000001000000160000003D0AD723591C5141B81E858BF63A54411EB022E5561C5141CA0502C6193B5441087F2CD8561C5141C76268911A3B54415F27DCED571C5141A91B92171B3B54417B14AE37591C5141B81E85BB1B3B5441D7A370CD6B1C5141666666960C3B5441CDCCCCAC6C1C5141EC51B85E0B3B544114AE47516D1C51410AD7A3E0093B5441A4703DBA6D1C5141C3F528AC093B5441F6285CEF6E1C514114AE4771093B54411F85EB31701C5141B81E858B093B54417B14AEF7701C51410AD7A3500A3B544141031C00721C5141EEB75EE20A3B5441D4192B2A721C51410BFE4CC0093B54411BE91B6F731C51410096E8F1F43A5441EB4FC591731C514102BFBCB9F23A544102740C88731C51413905DEAAF23A5441C3F528CC721C514185EB5188F23A54411F85EBB15B1C5141C3F5284CEE3A54411F85EBF15A1C5141E17A141EF23A5441713D0A375A1C5141713D0A47F53A54413D0AD723591C5141B81E858BF63A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>76757 - 254251
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000200000027000000F6285CCF121E5141A4703D3A443D5441666666A6131E514185EB51E8423D544148E17A04121E5141713D0A57423D544185EB5198101E51417B14AEF73C3D54419A9999C90F1E514114AE47113A3D5441333333B30E1E5141B81E855B373D54413D0AD7530D1E514185EB51B8373D54418FC2F5E80B1E514148E17A94383D5441C3F5288C0A1E5141F6285C7F383D5441000000F0081E514152B81E453F3D5441F6285CFF041E5141713D0A173E3D5441D7A3700D011E51413D0AD7F33C3D5441B81E85BBFF1D5141E17A143E3E3D54410AD7A300FD1D514185EB51E8403D544114AE4701FA1D5141295C8F72433D544114AE4731F71D5141A4703DDA443D5441713D0A67F81D514185EB51484A3D54418FC2F548F81D51410AD7A340523D544114AE4791F61D5141C3F5285C543D544114AE47D1F21D5141295C8F02543D54418FC2F518F11D51410AD7A380533D544114AE4711EF1D5141EC51B80E573D5441713D0AF7EF1D5141A4703DBA5A3D54418FC2F578F51D514185EB51C85B3D5441D7A3705DFD1D5141A4703DAA5B3D544152B81E75FE1D514148E17A445A3D544152B81EC5031E514148E17AF4573D5441AE47E1DA061E514185EB51D85A3D544152B81E450B1E5141EC51B80E5C3D5441AE47E1EA0F1E5141EC51B8FE5C3D544148E17AB4131E514148E17A245D3D5441D7A370DD131E51415C8FC2D55A3D5441713D0AD7151E51413D0AD7635A3D54419A999919171E51417B14AE27533D54417B14AE37171E51411F85EB31513D5441AE47E17A161E514185EB51D84B3D544133333313151E51410AD7A390483D5441713D0A97131E514166666666453D5441F6285CCF121E5141A4703D3A443D54410E0000008FC2F538081E5141C3F5280C543D54418FC2F5D8081E514148E17A64513D5441D7A3705D0C1E514185EB51584E3D544114AE47D1101E5141A4703D6A503D544152B81EB5131E5141C3F5283C513D5441AE47E1EA141E5141295C8FB2533D54418FC2F5F8151E5141C3F5280C543D54418FC2F5A8151E5141295C8F92553D544133333323141E514185EB51D8553D5441713D0A870F1E5141295C8FB2533D5441D7A370CD0F1E5141EC51B80E523D54418FC2F5D80D1E51410AD7A3A0513D544114AE47110D1E5141666666C6533D54418FC2F538081E5141C3F5280C543D5441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000D7A370DD131E51415C8FC2D55A3D54414D3CA0E6131E5141F2B4B0D35A3D54410F803CD7151E51414D71B6625A3D54417523A327161E514175A00B95583D54416BF66941161E514191C20801583D54411FA315B9161E514172C5E051553D5441248BD4AA151E51417AE56E89553D54418FC2F5A8151E5141295C8F92553D5441E96B1B60141E5141A9316BCD553D544133333323141E514185EB51D8553D5441898196E60F1E5141BCCF11DF533D5441713D0A870F1E5141295C8FB2533D5441D7A370CD0F1E5141EC51B80E523D54418FC2F5D80D1E51410AD7A3A0513D54415B48C0290D1E5141F3A90683533D544114AE47110D1E5141666666C6533D54418FC2F538081E5141C3F5280C543D54418FC2F5D8081E514148E17A64513D54416B648E76061E51414495A058553D54417D2165BC031E5141F32547F8573D544152B81EC5031E514148E17AF4573D54414AC930DE031E51412944F70B583D544155A28FE8031E5141F608D80A583D5441772985E2031E514121950510583D5441AE47E1DA061E514185EB51D85A3D544152B81E450B1E5141EC51B80E5C3D5441AE47E1EA0F1E5141EC51B8FE5C3D5441B55FA9AE131E514172DF40245D3D544150EB9BC4131E51419464DE3B5C3D5441D7A370DD131E51415C8FC2D55A3D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>76757 - 368817
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000200000027000000F6285CCF121E5141A4703D3A443D5441666666A6131E514185EB51E8423D544148E17A04121E5141713D0A57423D544185EB5198101E51417B14AEF73C3D54419A9999C90F1E514114AE47113A3D5441333333B30E1E5141B81E855B373D54413D0AD7530D1E514185EB51B8373D54418FC2F5E80B1E514148E17A94383D5441C3F5288C0A1E5141F6285C7F383D5441000000F0081E514152B81E453F3D5441F6285CFF041E5141713D0A173E3D5441D7A3700D011E51413D0AD7F33C3D5441B81E85BBFF1D5141E17A143E3E3D54410AD7A300FD1D514185EB51E8403D544114AE4701FA1D5141295C8F72433D544114AE4731F71D5141A4703DDA443D5441713D0A67F81D514185EB51484A3D54418FC2F548F81D51410AD7A340523D544114AE4791F61D5141C3F5285C543D544114AE47D1F21D5141295C8F02543D54418FC2F518F11D51410AD7A380533D544114AE4711EF1D5141EC51B80E573D5441713D0AF7EF1D5141A4703DBA5A3D54418FC2F578F51D514185EB51C85B3D5441D7A3705DFD1D5141A4703DAA5B3D544152B81E75FE1D514148E17A445A3D544152B81EC5031E514148E17AF4573D5441AE47E1DA061E514185EB51D85A3D544152B81E450B1E5141EC51B80E5C3D5441AE47E1EA0F1E5141EC51B8FE5C3D544148E17AB4131E514148E17A245D3D5441D7A370DD131E51415C8FC2D55A3D5441713D0AD7151E51413D0AD7635A3D54419A999919171E51417B14AE27533D54417B14AE37171E51411F85EB31513D5441AE47E17A161E514185EB51D84B3D544133333313151E51410AD7A390483D5441713D0A97131E514166666666453D5441F6285CCF121E5141A4703D3A443D54410E0000008FC2F538081E5141C3F5280C543D54418FC2F5D8081E514148E17A64513D5441D7A3705D0C1E514185EB51584E3D544114AE47D1101E5141A4703D6A503D544152B81EB5131E5141C3F5283C513D5441AE47E1EA141E5141295C8FB2533D54418FC2F5F8151E5141C3F5280C543D54418FC2F5A8151E5141295C8F92553D544133333323141E514185EB51D8553D5441713D0A870F1E5141295C8FB2533D5441D7A370CD0F1E5141EC51B80E523D54418FC2F5D80D1E51410AD7A3A0513D544114AE47110D1E5141666666C6533D54418FC2F538081E5141C3F5280C543D5441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000D7A370DD131E51415C8FC2D55A3D54414D3CA0E6131E5141F2B4B0D35A3D54410F803CD7151E51414D71B6625A3D54417523A327161E514175A00B95583D54416BF66941161E514191C20801583D54411FA315B9161E514172C5E051553D5441248BD4AA151E51417AE56E89553D54418FC2F5A8151E5141295C8F92553D5441E96B1B60141E5141A9316BCD553D544133333323141E514185EB51D8553D5441898196E60F1E5141BCCF11DF533D5441713D0A870F1E5141295C8FB2533D5441D7A370CD0F1E5141EC51B80E523D54418FC2F5D80D1E51410AD7A3A0513D54415B48C0290D1E5141F3A90683533D544114AE47110D1E5141666666C6533D54418FC2F538081E5141C3F5280C543D54418FC2F5D8081E514148E17A64513D54416B648E76061E51414495A058553D54417D2165BC031E5141F32547F8573D544152B81EC5031E514148E17AF4573D54414AC930DE031E51412944F70B583D544155A28FE8031E5141F608D80A583D5441772985E2031E514121950510583D5441AE47E1DA061E514185EB51D85A3D544152B81E450B1E5141EC51B80E5C3D5441AE47E1EA0F1E5141EC51B8FE5C3D5441B55FA9AE131E514172DF40245D3D544150EB9BC4131E51419464DE3B5C3D5441D7A370DD131E51415C8FC2D55A3D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>972667 - 403965
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000020000000C9D0022916A15041CB14CA3FC8495541F970C33516A15041E7489945C8495541643BDF5F16A15041DBF97EBAC7495541BA490CDA18A15041560E2D72C5495541B81E85A317A15041A4703DF2C1495541E926312818A150410E2DB225BF4955416891ED3C1BA150414260E560B84955412EE5FEE61EA150419C4CA089B9495541B07268B120A150412731085CB649554154E3A5F321A1504162105869B049554185EB513824A15041D7A370E5AE495541B07268B124A1504121B072E8A949554198ACC28E24A150410AFC3C6CA949554116AD75B61EA15041D6D5D10AA54955413EE306F71BA15041B5A938FCA249554107EDB20E1BA1504172DBC493A34955414BAEC53C1AA15041072B082EA44955411320F1A811A15041DD2F761BAB495541953E5B1D10A15041E3AB3AB1AC49554158B83A6A0EA15041E249FFBFAE495541347EC4E50AA150410195E031B3495541861D46D809A150419A21B8E7B4495541A9701D7708A15041E1E3BE3CB7495541D0DBEF7107A15041CA3F8A02B94955419E7D020005A150414DBE7864BD49554119C807FE05A150417C7A56CFBF49554134D0A7AF05A15041A6C26B97C04955418F37189703A15041A3D4F50AC4495541FA25A2B002A15041052346BAC849554150915E9804A150418D6854AFC949554194937FA811A15041D5006BECCF495541C9D0022916A15041CB14CA3FC8495541
+</a>
+
+<b>
+010600000001000000010300000001000000160000007D46E09D1BA15041C0DC5F36A34955412152B80E1BA15041080AD793A3495541C2CCCC3C1AA15041D77A142EA44955414ADF3E3A1AA15041AF8D1230A44955411320F1A811A15041DD2F761BAB495541953E5B1D10A15041E3AB3AB1AC49554112B48D8F0EA1504172F4CF92AE495541D89BBC7A0EA1504152E4FCBDAE495541BBD6308119A15041949B47A3B3495541426CF36320A1504137469EDCB64955418EF9CC7020A15041D097B2CEB6495541B07268B120A150412731085CB649554154E3A5F321A1504162105869B0495541100D7B7522A1504149C69C12B049554185EB513824A15041D7A370E5AE495541B07268B124A1504121B072E8A94955412789009B24A1504179B91F98A9495541AF766BA924A150419182097FA9495541D651B88E24A15041B8F5286CA9495541666666B61EA15041C447E10AA54955413EE306F71BA15041B5A938FCA24955417D46E09D1BA15041C0DC5F36A3495541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>972667 - 420725
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000020000000C9D0022916A15041CB14CA3FC8495541F970C33516A15041E7489945C8495541643BDF5F16A15041DBF97EBAC7495541BA490CDA18A15041560E2D72C5495541B81E85A317A15041A4703DF2C1495541E926312818A150410E2DB225BF4955416891ED3C1BA150414260E560B84955412EE5FEE61EA150419C4CA089B9495541B07268B120A150412731085CB649554154E3A5F321A1504162105869B049554185EB513824A15041D7A370E5AE495541B07268B124A1504121B072E8A949554198ACC28E24A150410AFC3C6CA949554116AD75B61EA15041D6D5D10AA54955413EE306F71BA15041B5A938FCA249554107EDB20E1BA1504172DBC493A34955414BAEC53C1AA15041072B082EA44955411320F1A811A15041DD2F761BAB495541953E5B1D10A15041E3AB3AB1AC49554158B83A6A0EA15041E249FFBFAE495541347EC4E50AA150410195E031B3495541861D46D809A150419A21B8E7B4495541A9701D7708A15041E1E3BE3CB7495541D0DBEF7107A15041CA3F8A02B94955419E7D020005A150414DBE7864BD49554119C807FE05A150417C7A56CFBF49554134D0A7AF05A15041A6C26B97C04955418F37189703A15041A3D4F50AC4495541FA25A2B002A15041052346BAC849554150915E9804A150418D6854AFC949554194937FA811A15041D5006BECCF495541C9D0022916A15041CB14CA3FC8495541
+</a>
+
+<b>
+010600000001000000010300000001000000160000007D46E09D1BA15041C0DC5F36A34955412152B80E1BA15041080AD793A3495541C2CCCC3C1AA15041D77A142EA44955414ADF3E3A1AA15041AF8D1230A44955411320F1A811A15041DD2F761BAB495541953E5B1D10A15041E3AB3AB1AC49554112B48D8F0EA1504172F4CF92AE495541D89BBC7A0EA1504152E4FCBDAE495541BBD6308119A15041949B47A3B3495541426CF36320A1504137469EDCB64955418EF9CC7020A15041D097B2CEB6495541B07268B120A150412731085CB649554154E3A5F321A1504162105869B0495541100D7B7522A1504149C69C12B049554185EB513824A15041D7A370E5AE495541B07268B124A1504121B072E8A94955412789009B24A1504179B91F98A9495541AF766BA924A150419182097FA9495541D651B88E24A15041B8F5286CA9495541666666B61EA15041C447E10AA54955413EE306F71BA15041B5A938FCA24955417D46E09D1BA15041C0DC5F36A3495541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>221922 - 5296539
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000006000000D7A3702D2C3F51411F85EB7129AA5441F6285CAF0A3F5141A4703D1A29AA54415C8FC235E93E5141333333C328AA544133333313E53E51419A99994941AA5441295C8F02293F5141B81E851B42AA5441D7A3702D2C3F51411F85EB7129AA5441
+</a>
+
+<b>
+0106000000010000000103000000010000003500000098FE484B283F5141919716BD2CAA5441B61E02A6253F5141D93F91B92CAA54418FE2FC8C1F3F514191CA73B12CAA5441607CAD04123F5141275F719F2CAA5441D997286DE83E51413D4C17682CAA54413DF96AC6E33E5141887DE53449AA5441121D3825E13E5141FC785E9658AA54412EDF8058DE3E5141F0BCF97267AA54416B65DFF5033F5141F0BCF97267AA54414ADF755A0F3F5141EE4445A167AA5441CB93B77A2A3F5141EE4445A167AA5441EEC735B8733F5141D3AC621667AA5441C613C57B753F5141A2CCCEDB4FAA54412F04F1D1753F51417EA2FA204BAA5441C79B3ED1743F514167FD5C7245AA54418509E3A96F3F51416F9CB75C31AA54412932671B6D3F514149F23FDD26AA5441EEA453246A3F5141B24533B21AAA5441F2E6F853683F5141D1F4C63F13AA54412F7FCB70683F5141BD17616E0CAA54416B1DAAF3683F5141CBE95F0809AA5441EF1F89346A3F51411F6DB500FEA95441BFF89CCE6A3F5141384BCBFBEFA95441BAAB2E1B6C3F514188E5E65FE0A95441C3E6EB436C3F5141D45E6976DEA95441A1B77C566C3F51415C7133F4DCA95441B102B4776C3F514134809C7EDBA95441C0DE4C6F653F5141673E4EEBDAA95441DB9DFD9C5E3F514191F2531ED9A95441EA967E5E573F51417D6AA710D9A95441669E0132553F5141D95BEBEFD8A954412105709D513F5141EDA49793D9A954416F40F42C493F51413E0BBC78DAA954414ABDA18C433F51417C2834BADAA954411C1DFC6D3B3F5141719D14C0DBA95441FBA8AF74313F514147280FF7DCA9544147A2C0AD2A3F5141EA9591ECDDA95441478626FF1C3F5141F3531E96DFA95441A90A5732153F5141C9DE18CDE0A954417BC977E80D3F51412F2F2381E1A954416A8FD1EB083F51414378CF24E2A95441ACFDC22A033F514125453DB2E1A95441820D5DDEF53E514182D7BABCE0A95441B6E1287CF53E514126E676DDE0A95441AA339038F53E5141CE68EF82E2A95441271358BDF43E5141B17A1367E4A954410199C65EF03E5141CA8B2D30FDA9544101740B32ED3E51415504DEB510AA544191EBB3722F3F51413461916F11AA5441FEC2FFC52B3F5141D68552972CAA5441A757F5A52B3F51414B4DAE982CAA5441EE9E3EA02B3F51412FBD85C12CAA544198FE484B283F5141919716BD2CAA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235004 - 1175972
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000021000000AE47E15AC29D514185EB51E84AA15441E17A143EC79D51419A99996952A1544114AE47C1CB9D5141666666464FA15441D7A370CDD09D51418FC2F5084DA15441AE47E10AD19D514152B81EC54BA1544185EB5128D39D5141C3F528CC4BA1544152B81E55D39D5141295C8FF24AA1544185EB5128CC9D51417B14AEC73EA15441A4703D9AC69D51415C8FC28534A15441C3F528DCC59D5141713D0AA731A15441AE47E19ABF9D5141CDCCCC3C26A15441E17A143EBF9D51411F85EB7125A15441F6285C4FB89D514152B81EE527A1544100000030B59D5141666666E629A15441CDCCCC5CAD9D51411F85EB1130A15441AE47E1DAAC9D51419A9999D931A154418FC2F538AD9D514114AE47A134A15441B81E858BB09D51419A99990939A15441AE47E17AB19D51415C8FC2F53DA15441C3F5282CB39D514148E17AB43EA154418FC2F5B8B49D5141000000F041A1544152B81E85B49D5141AE47E16A44A15441F6285CEFB59D5141CDCCCC3C45A154415C8FC225B79D5141EC51B80E47A1544148E17AC4B69D51415C8FC2A548A15441EC51B80EB89D51413D0AD7134BA154417B14AEE7BA9D51410000007050A15441F6285CBFBB9D51415C8FC20552A1544100000030BC9D51415C8FC2B552A154418FC2F5F8BC9D5141CDCCCC3C52A15441C3F528CCBB9D51415C8FC2654FA1544152B81EE5C09D514185EB51E84BA15441AE47E15AC29D514185EB51E84AA15441
+</a>
+
+<b>
+01060000000100000001030000000100000023000000AE47E15AC29D514185EB51E84AA15441E17A143EC79D51419A99996952A1544114AE47C1CB9D5141666666464FA15441D7A370CDD09D51418FC2F5084DA15441AE47E10AD19D514152B81EC54BA1544185EB5128D39D5141C3F528CC4BA1544152B81E55D39D5141295C8FF24AA1544185EB5128CC9D51417B14AEC73EA15441A4703D9AC69D51415C8FC28534A15441C3F528DCC59D5141713D0AA731A15441AE47E19ABF9D5141CDCCCC3C26A15441E17A143EBF9D51411F85EB7125A154412EF27E74BA9D514169264CF91AA154418CC24B61B99D51410D5B6D611BA15441C5F21BC8BD9D51418555C6DA25A154418FDBECF0B89D5141C945F91728A15441837736B2B59D5141261231182AA154411982DC9CAF9D5141A394B8EC2EA15441F46F8C9FAD9D5141D39198A031A1544100879B1BAD9D514102A8D9E632A154418FC2F538AD9D514114AE47A134A154413307FF8FB09D514122782A2139A15441AE47E17AB19D51415C8FC2F53DA15441C3F5282CB39D514148E17AB43EA154418FC2F5B8B49D5141000000F041A1544152B81E85B49D5141AE47E16A44A15441F6285CEFB59D5141CDCCCC3C45A154415C8FC225B79D5141EC51B80E47A1544148E17AC4B69D51415C8FC2A548A15441EC51B80EB89D51413D0AD7134BA154417B14AEE7BA9D51410000007050A154415BFFE6DABB9D5141F1AAAA5B4FA154415EBC08EDBC9D514177DB88934EA1544152B81EE5C09D514185EB51E84BA15441AE47E15AC29D514185EB51E84AA15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235004 - 3408600
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000021000000AE47E15AC29D514185EB51E84AA15441E17A143EC79D51419A99996952A1544114AE47C1CB9D5141666666464FA15441D7A370CDD09D51418FC2F5084DA15441AE47E10AD19D514152B81EC54BA1544185EB5128D39D5141C3F528CC4BA1544152B81E55D39D5141295C8FF24AA1544185EB5128CC9D51417B14AEC73EA15441A4703D9AC69D51415C8FC28534A15441C3F528DCC59D5141713D0AA731A15441AE47E19ABF9D5141CDCCCC3C26A15441E17A143EBF9D51411F85EB7125A15441F6285C4FB89D514152B81EE527A1544100000030B59D5141666666E629A15441CDCCCC5CAD9D51411F85EB1130A15441AE47E1DAAC9D51419A9999D931A154418FC2F538AD9D514114AE47A134A15441B81E858BB09D51419A99990939A15441AE47E17AB19D51415C8FC2F53DA15441C3F5282CB39D514148E17AB43EA154418FC2F5B8B49D5141000000F041A1544152B81E85B49D5141AE47E16A44A15441F6285CEFB59D5141CDCCCC3C45A154415C8FC225B79D5141EC51B80E47A1544148E17AC4B69D51415C8FC2A548A15441EC51B80EB89D51413D0AD7134BA154417B14AEE7BA9D51410000007050A15441F6285CBFBB9D51415C8FC20552A1544100000030BC9D51415C8FC2B552A154418FC2F5F8BC9D5141CDCCCC3C52A15441C3F528CCBB9D51415C8FC2654FA1544152B81EE5C09D514185EB51E84BA15441AE47E15AC29D514185EB51E84AA15441
+</a>
+
+<b>
+01060000000100000001030000000100000023000000AE47E15AC29D514185EB51E84AA15441E17A143EC79D51419A99996952A1544114AE47C1CB9D5141666666464FA15441D7A370CDD09D51418FC2F5084DA15441AE47E10AD19D514152B81EC54BA1544185EB5128D39D5141C3F528CC4BA1544152B81E55D39D5141295C8FF24AA1544185EB5128CC9D51417B14AEC73EA15441A4703D9AC69D51415C8FC28534A15441C3F528DCC59D5141713D0AA731A15441AE47E19ABF9D5141CDCCCC3C26A15441E17A143EBF9D51411F85EB7125A154412EF27E74BA9D514169264CF91AA154418CC24B61B99D51410D5B6D611BA15441C5F21BC8BD9D51418555C6DA25A154418FDBECF0B89D5141C945F91728A15441837736B2B59D5141261231182AA154411982DC9CAF9D5141A394B8EC2EA15441F46F8C9FAD9D5141D39198A031A1544100879B1BAD9D514102A8D9E632A154418FC2F538AD9D514114AE47A134A154413307FF8FB09D514122782A2139A15441AE47E17AB19D51415C8FC2F53DA15441C3F5282CB39D514148E17AB43EA154418FC2F5B8B49D5141000000F041A1544152B81E85B49D5141AE47E16A44A15441F6285CEFB59D5141CDCCCC3C45A154415C8FC225B79D5141EC51B80E47A1544148E17AC4B69D51415C8FC2A548A15441EC51B80EB89D51413D0AD7134BA154417B14AEE7BA9D51410000007050A154415BFFE6DABB9D5141F1AAAA5B4FA154415EBC08EDBC9D514177DB88934EA1544152B81EE5C09D514185EB51E84BA15441AE47E15AC29D514185EB51E84AA15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235004 - 254507
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000021000000AE47E15AC29D514185EB51E84AA15441E17A143EC79D51419A99996952A1544114AE47C1CB9D5141666666464FA15441D7A370CDD09D51418FC2F5084DA15441AE47E10AD19D514152B81EC54BA1544185EB5128D39D5141C3F528CC4BA1544152B81E55D39D5141295C8FF24AA1544185EB5128CC9D51417B14AEC73EA15441A4703D9AC69D51415C8FC28534A15441C3F528DCC59D5141713D0AA731A15441AE47E19ABF9D5141CDCCCC3C26A15441E17A143EBF9D51411F85EB7125A15441F6285C4FB89D514152B81EE527A1544100000030B59D5141666666E629A15441CDCCCC5CAD9D51411F85EB1130A15441AE47E1DAAC9D51419A9999D931A154418FC2F538AD9D514114AE47A134A15441B81E858BB09D51419A99990939A15441AE47E17AB19D51415C8FC2F53DA15441C3F5282CB39D514148E17AB43EA154418FC2F5B8B49D5141000000F041A1544152B81E85B49D5141AE47E16A44A15441F6285CEFB59D5141CDCCCC3C45A154415C8FC225B79D5141EC51B80E47A1544148E17AC4B69D51415C8FC2A548A15441EC51B80EB89D51413D0AD7134BA154417B14AEE7BA9D51410000007050A15441F6285CBFBB9D51415C8FC20552A1544100000030BC9D51415C8FC2B552A154418FC2F5F8BC9D5141CDCCCC3C52A15441C3F528CCBB9D51415C8FC2654FA1544152B81EE5C09D514185EB51E84BA15441AE47E15AC29D514185EB51E84AA15441
+</a>
+
+<b>
+01060000000100000001030000000100000023000000AE47E15AC29D514185EB51E84AA15441E17A143EC79D51419A99996952A1544114AE47C1CB9D5141666666464FA15441D7A370CDD09D51418FC2F5084DA15441AE47E10AD19D514152B81EC54BA1544185EB5128D39D5141C3F528CC4BA1544152B81E55D39D5141295C8FF24AA1544185EB5128CC9D51417B14AEC73EA15441A4703D9AC69D51415C8FC28534A15441C3F528DCC59D5141713D0AA731A15441AE47E19ABF9D5141CDCCCC3C26A15441E17A143EBF9D51411F85EB7125A154412EF27E74BA9D514169264CF91AA154418CC24B61B99D51410D5B6D611BA15441C5F21BC8BD9D51418555C6DA25A154418BDBECF0B89D5141C745F91728A15441817736B2B59D5141261231182AA154411782DC9CAF9D5141A794B8EC2EA15441F06F8C9FAD9D5141D29198A031A1544105879B1BAD9D514107A8D9E632A154418FC2F538AD9D514114AE47A134A154413207FF8FB09D514124782A2139A15441AE47E17AB19D51415C8FC2F53DA15441C3F5282CB39D514148E17AB43EA154418FC2F5B8B49D5141000000F041A1544152B81E85B49D5141AE47E16A44A15441F6285CEFB59D5141CDCCCC3C45A154415C8FC225B79D5141EC51B80E47A1544148E17AC4B69D51415C8FC2A548A15441EC51B80EB89D51413D0AD7134BA154417B14AEE7BA9D51410000007050A154415EFFE6DABB9D5141EFAAAA5B4FA154415CBC08EDBC9D51417CDB88934EA1544152B81EE5C09D514185EB51E84BA15441AE47E15AC29D514185EB51E84AA15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235004 - 343796
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000021000000AE47E15AC29D514185EB51E84AA15441E17A143EC79D51419A99996952A1544114AE47C1CB9D5141666666464FA15441D7A370CDD09D51418FC2F5084DA15441AE47E10AD19D514152B81EC54BA1544185EB5128D39D5141C3F528CC4BA1544152B81E55D39D5141295C8FF24AA1544185EB5128CC9D51417B14AEC73EA15441A4703D9AC69D51415C8FC28534A15441C3F528DCC59D5141713D0AA731A15441AE47E19ABF9D5141CDCCCC3C26A15441E17A143EBF9D51411F85EB7125A15441F6285C4FB89D514152B81EE527A1544100000030B59D5141666666E629A15441CDCCCC5CAD9D51411F85EB1130A15441AE47E1DAAC9D51419A9999D931A154418FC2F538AD9D514114AE47A134A15441B81E858BB09D51419A99990939A15441AE47E17AB19D51415C8FC2F53DA15441C3F5282CB39D514148E17AB43EA154418FC2F5B8B49D5141000000F041A1544152B81E85B49D5141AE47E16A44A15441F6285CEFB59D5141CDCCCC3C45A154415C8FC225B79D5141EC51B80E47A1544148E17AC4B69D51415C8FC2A548A15441EC51B80EB89D51413D0AD7134BA154417B14AEE7BA9D51410000007050A15441F6285CBFBB9D51415C8FC20552A1544100000030BC9D51415C8FC2B552A154418FC2F5F8BC9D5141CDCCCC3C52A15441C3F528CCBB9D51415C8FC2654FA1544152B81EE5C09D514185EB51E84BA15441AE47E15AC29D514185EB51E84AA15441
+</a>
+
+<b>
+01060000000100000001030000000100000023000000AE47E15AC29D514185EB51E84AA15441E17A143EC79D51419A99996952A1544114AE47C1CB9D5141666666464FA15441D7A370CDD09D51418FC2F5084DA15441AE47E10AD19D514152B81EC54BA1544185EB5128D39D5141C3F528CC4BA1544152B81E55D39D5141295C8FF24AA1544185EB5128CC9D51417B14AEC73EA15441A4703D9AC69D51415C8FC28534A15441C3F528DCC59D5141713D0AA731A15441AE47E19ABF9D5141CDCCCC3C26A15441E17A143EBF9D51411F85EB7125A154412EF27E74BA9D514169264CF91AA154418CC24B61B99D51410D5B6D611BA15441C5F21BC8BD9D51418555C6DA25A154418BDBECF0B89D5141C745F91728A15441817736B2B59D5141261231182AA154411782DC9CAF9D5141A794B8EC2EA15441F06F8C9FAD9D5141D29198A031A1544105879B1BAD9D514107A8D9E632A154418FC2F538AD9D514114AE47A134A154413207FF8FB09D514124782A2139A15441AE47E17AB19D51415C8FC2F53DA15441C3F5282CB39D514148E17AB43EA154418FC2F5B8B49D5141000000F041A1544152B81E85B49D5141AE47E16A44A15441F6285CEFB59D5141CDCCCC3C45A154415C8FC225B79D5141EC51B80E47A1544148E17AC4B69D51415C8FC2A548A15441EC51B80EB89D51413D0AD7134BA154417B14AEE7BA9D51410000007050A154415EFFE6DABB9D5141EFAAAA5B4FA154415CBC08EDBC9D51417CDB88934EA1544152B81EE5C09D514185EB51E84BA15441AE47E15AC29D514185EB51E84AA15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>207991 - 71334
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003F00000048E17A947B8F5041B81E850BDE435541A4703D2A7B8F5041E17A140EDF435541295C8FA27A8F504148E17AC4DF435541F6285CBF798F5041A4703D9AE04355410AD7A390788F5041D7A3702DE243554185EB5178778F5041EC51B8DEE3435541CDCCCC9C768F504100000080E54355417B14AED7758F5041D7A3706DE7435541D7A3706D758F504114AE47F1E843554185EB5138758F5041713D0A37EA43554152B81E15728F5041A4703D2AEE43554148E17AC46A8F504152B81E15F943554185EB51F8698F5041A4703D8AFA4355410AD7A370668F50419A999949024455418FC2F538748F50415C8FC2850744554152B81E65788F50410AD7A3C00A4455417B14AEE78C8F5041E17A14AE13445541AE47E14A8F8F50417B14AE0715445541C3F5283C908F5041F6285CCF154455410AD7A380938F50413D0AD7A31844554166666676948F5041E17A145E16445541295C8FA2998F5041C3F5283C0B445541C3F5287C9A8F504152B81EB50944554185EB51F89B8F5041AE47E14A07445541713D0AF79D8F50419A999939044455413D0AD7839D8F50418FC2F578F8435541713D0A879E8F5041CDCCCC8CF3435541333333539F8F504185EB5178ED435541A4703D8A9F8F50418FC2F5E8E8435541B81E857BA08F5041F6285C0FE44355419A999959A18F504166666686E14355413D0AD7A3A18F50418FC2F578DD435541666666B6A18F5041AE47E14AD5435541EC51B87EA18F5041295C8F42CD435541EC51B81EA08F504152B81E25BF435541000000809C8F5041D7A370ADC1435541CDCCCC1C9A8F504152B81E45C3435541CDCCCC5C978F5041713D0AC7C3435541B81E850B958F504152B81E05C643554148E17AA4918F50419A999959C9435541E17A14DE8C8F50415C8FC2C5C84355410AD7A3F08C8F5041E17A14CEC543554133333373888F50419A999999C64355411F85EB91868F50411F85EB61C643554114AE47B17F8F50411F85EB01C5435541F6285C6F7C8F5041AE47E15AC4435541713D0A87788F5041295C8F92C44355413D0AD743788F5041B81E85DBC84355417B14AEA7798F5041AE47E17ACA435541F6285C2F7A8F5041F6285C4FCB4355418FC2F5A87A8F5041CDCCCC0CCC4355419A9999397B8F5041295C8F52CD43554148E17AA47B8F50411F85EB81CE435541A4703DCA7B8F50417B14AE47CF435541295C8FD27B8F50419A999959D04355415C8FC2A57B8F504148E17AF4D1435541C3F528DC7B8F504185EB5108D4435541A4703D0A7C8F504114AE47C1D543554148E17AF47B8F5041EC51B86ED8435541D7A370ED7B8F504114AE4771D943554152B81E057C8F50415C8FC275DB435541EC51B8EE7B8F5041333333E3DC43554148E17A947B8F5041B81E850BDE435541
+</a>
+
+<b>
+010600000001000000010300000001000000340000007BCEEB58978F50419DA0D1CAC3435541DD30A1EC998F50416176024EC343554181CD0F429A8F50412B0E442CC3435541029A2A209C8F504155CD5CEDC143554114DA8BCF9E8F50411A4B9A0FC0435541EC51B81EA08F504152B81E25BF435541704EED1FA08F50410D9B8231BF435541F3161434A08F504158DC5F00C0435541F4FFDFECA08F5041EB0F6569C743554174F47271A18F5041E6DC53BACC43554135AC0491A18F5041C25955E6CF435541976C73A5A18F5041106AEED8D2435541E83572B1A18F50411F08D079D743554155B35AA6A18F5041AA18475DDC43554107E6AA5BA18F5041C0E88169E1435541674CF89EA08F504131C3C4A7E34355415153B955A08F504186B8DAD1E4435541546E5DEB9F8F5041B56E2AF5E64355416D3F4F859F8F50411CFA8751E943554122E3186D9F8F504100E10E53EB435541FB961F549F8F5041FE41BC64ED4355413FC81F929E8F50415CE04B38F3435541B29A75309E8F5041243DBB31F54355417567D4859D8F5041B55E496FF8435541C7599C879D8F5041297570DBF84355416FD15FA69D8F5041396AE1FEFB435541E35F60CE9D8F50412F9D9A1300445541C05119F59D8F504147B0E7060444554166D42C0E9E8F5041B04A53A6034455417B14AE579E8F504152B81ED5F743554114AE47619E8F5041B81E851BF7435541333333739E8F504133333373F64355410AD7A3109F8F5041AE47E19AF3435541713D0A679F8F50415C8FC2A5F1435541000000E09F8F504185EB5188EC43554166666656A08F5041333333F3E743554148E17A74A08F50418FC2F538E7435541295C8F42A18F5041713D0A07E443554166666606A28F5041AE47E10AE043554100000060A28F50413D0AD793DD435541D7A3708DA28F50417B14AEF7DB435541E17A148EA28F5041A4703D7AD443554100000090A28F504114AE4721D0435541B81E85FBA18F504133333313C74355417B14AE87A18F50415C8FC235C3435541B81E851BA18F5041D7A3705DBF435541BFBF981CA18F504159F2BE5ABF435541CDCCCCDCA08F504152B81E25BD435541C3F5285C9A8F50415C8FC235C24355418D91533B978F5041A2ED1AB3C2435541CDCCCC5C978F5041713D0AC7C34355417BCEEB58978F50419DA0D1CAC3435541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>978753 - 670277
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000021000000C51755515FD2504127640A4D6A1B55416265EA3D5FD250416861354E6A1B5541CDCCCC4C5FD250410AD7A390691B5541E31755515FD2504107640A4D6A1B5541393434146DD250419D772379691B5541B793B04A7AD250419D772379691B5541A6D6A1947CD25041643A815E691B554142F698DF7DD2504197B836C1691B55417078C18282D25041DBDB79836A1B5541AC9425A688D25041E0022E736B1B5541DF6221EA8CD25041A7C58B586B1B5541FAA982B08ED25041E872EE056B1B5541C3F5286C8FD250418FC2F5C8691B5541AE47E1EA8FD25041713D0A27631B5541CDCCCC0C90D25041C3F5285C611B55410000003090D25041295C8F825F1B5541EC51B85E8ED25041295C8F025F1B55410AD7A35088D250417B14AE575D1B5541E17A14DE86D250410AD7A3105D1B55419A9999A980D25041F6285CDF5B1B5541EC51B83E7FD25041D7A370AD5B1B5541CDCCCC3C79D25041CDCCCCDC5A1B5541E17A14DE77D2504148E17AC45A1B5541713D0A8777D25041E17A14BE5A1B5541D7A370CD71D2504152B81E555A1B55419A99992968D25041333333435C1B5541B81E85BB63D25041F6285CDF5A1B5541D7A3705D63D2504133333353591B5541713D0A975FD25041E17A145E661B5541B6AD03EE5ED25041DBDB79836A1B5541C9D388525FD25041CF29027F6A1B554101B984525FD250415F8B577E6A1B5541C51755515FD2504127640A4D6A1B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000713D0A975FD25041E17A145E661B5541D7A3705D63D2504133333353591B5541D7A3704D60D25041A4703D4A581B55418FC2F5E858D2504100000020561B55413D0AD76352D25041C3F5283C541B5541295C8F424AD25041D7A370ED531B55418FC2F53843D250417B14AE47541B55417B14AE073CD250413D0AD7A3541B5541A4703D7A3BD2504185EB51B8541B55419A9999A93ED250419A999999671B55416666661641D25041333333836F1B554148E17A645FD250418FC2F5686D1B5541CDCCCC4C5FD250410AD7A390691B5541713D0A975FD25041E17A145E661B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>978753 - 1404942
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000021000000C51755515FD2504127640A4D6A1B55416265EA3D5FD250416861354E6A1B5541CDCCCC4C5FD250410AD7A390691B5541E31755515FD2504107640A4D6A1B5541393434146DD250419D772379691B5541B793B04A7AD250419D772379691B5541A6D6A1947CD25041643A815E691B554142F698DF7DD2504197B836C1691B55417078C18282D25041DBDB79836A1B5541AC9425A688D25041E0022E736B1B5541DF6221EA8CD25041A7C58B586B1B5541FAA982B08ED25041E872EE056B1B5541C3F5286C8FD250418FC2F5C8691B5541AE47E1EA8FD25041713D0A27631B5541CDCCCC0C90D25041C3F5285C611B55410000003090D25041295C8F825F1B5541EC51B85E8ED25041295C8F025F1B55410AD7A35088D250417B14AE575D1B5541E17A14DE86D250410AD7A3105D1B55419A9999A980D25041F6285CDF5B1B5541EC51B83E7FD25041D7A370AD5B1B5541CDCCCC3C79D25041CDCCCCDC5A1B5541E17A14DE77D2504148E17AC45A1B5541713D0A8777D25041E17A14BE5A1B5541D7A370CD71D2504152B81E555A1B55419A99992968D25041333333435C1B5541B81E85BB63D25041F6285CDF5A1B5541D7A3705D63D2504133333353591B5541713D0A975FD25041E17A145E661B5541B6AD03EE5ED25041DBDB79836A1B5541C9D388525FD25041CF29027F6A1B554101B984525FD250415F8B577E6A1B5541C51755515FD2504127640A4D6A1B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000713D0A975FD25041E17A145E661B5541D7A3705D63D2504133333353591B5541D7A3704D60D25041A4703D4A581B55418FC2F5E858D2504100000020561B55413D0AD76352D25041C3F5283C541B5541295C8F424AD25041D7A370ED531B55418FC2F53843D250417B14AE47541B55417B14AE073CD250413D0AD7A3541B5541A4703D7A3BD2504185EB51B8541B55419A9999A93ED250419A999999671B55416666661641D25041333333836F1B554148E17A645FD250418FC2F5686D1B5541CDCCCC4C5FD250410AD7A390691B5541713D0A975FD25041E17A145E661B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>978753 - 3653621
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000021000000C51755515FD2504127640A4D6A1B55416265EA3D5FD250416861354E6A1B5541CDCCCC4C5FD250410AD7A390691B5541E31755515FD2504107640A4D6A1B5541393434146DD250419D772379691B5541B793B04A7AD250419D772379691B5541A6D6A1947CD25041643A815E691B554142F698DF7DD2504197B836C1691B55417078C18282D25041DBDB79836A1B5541AC9425A688D25041E0022E736B1B5541DF6221EA8CD25041A7C58B586B1B5541FAA982B08ED25041E872EE056B1B5541C3F5286C8FD250418FC2F5C8691B5541AE47E1EA8FD25041713D0A27631B5541CDCCCC0C90D25041C3F5285C611B55410000003090D25041295C8F825F1B5541EC51B85E8ED25041295C8F025F1B55410AD7A35088D250417B14AE575D1B5541E17A14DE86D250410AD7A3105D1B55419A9999A980D25041F6285CDF5B1B5541EC51B83E7FD25041D7A370AD5B1B5541CDCCCC3C79D25041CDCCCCDC5A1B5541E17A14DE77D2504148E17AC45A1B5541713D0A8777D25041E17A14BE5A1B5541D7A370CD71D2504152B81E555A1B55419A99992968D25041333333435C1B5541B81E85BB63D25041F6285CDF5A1B5541D7A3705D63D2504133333353591B5541713D0A975FD25041E17A145E661B5541B6AD03EE5ED25041DBDB79836A1B5541C9D388525FD25041CF29027F6A1B554101B984525FD250415F8B577E6A1B5541C51755515FD2504127640A4D6A1B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000713D0A975FD25041E17A145E661B5541D7A3705D63D2504133333353591B5541D7A3704D60D25041A4703D4A581B55418FC2F5E858D2504100000020561B55413D0AD76352D25041C3F5283C541B5541295C8F424AD25041D7A370ED531B55418FC2F53843D250417B14AE47541B55417B14AE073CD250413D0AD7A3541B5541A4703D7A3BD2504185EB51B8541B55419A9999A93ED250419A999999671B55416666661641D25041333333836F1B554148E17A645FD250418FC2F5686D1B5541CDCCCC4C5FD250410AD7A390691B5541713D0A975FD25041E17A145E661B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235046 - 222400
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000002000000010300000001000000190000009A999949CF9F5141E17A144EA8A2544148E17A64D49F514100000090A8A25441E17A14BED99F5141333333E3A9A254413D0AD7E3DA9F51418FC2F5E8AAA25441D7A3702DDD9F5141D7A370FDADA254413D0AD733E09F514133333303B1A2544100000070E09F51418FC2F5C8AFA2544114AE47F1E09F51417B14AE97ADA2544166666666E29F51417B14AE47A7A254411F85EB71E29F51415C8FC215A7A25441713D0A77D79F51415C8FC255A2A25441D7A3702DD99F51411F85EB519BA25441333333B3CD9F5141E17A14EE96A25441713D0A47CC9F5141C3F5286C9BA25441AE47E1BACA9F5141000000A09AA2544152B81E75C19F5141666666D695A2544166666616BF9F5141D7A3709D94A25441EC51B83EBF9F514152B81E7597A254410AD7A3F0C39F5141666666E69AA2544185EB5148C69F5141A4703D1A9DA25441F6285CAFC79F514185EB51089FA2544152B81E25C89F514185EB51F8A4A2544100000040CD9F514133333343A9A25441295C8F02CE9F51411F85EB51A9A254419A999949CF9F5141E17A144EA8A254410103000000010000001A000000B81E85BBBE9F51418FC2F5A897A25441B81E858BBE9F5141EC51B88E94A254413D0AD7F3BD9F5141AE47E10A94A254415C8FC2B5BC9F51415C8FC2E592A254417B14AE87B69F5141B81E852B92A254417B14AEC7B49F5141295C8FD290A2544166666666B19F5141666666268FA25441CDCCCCCCAD9F514152B81E058DA25441C3F528ACAA9F51411F85EB518AA254418FC2F578A29F5141AE47E12A86A2544185EB5138A19F514185EB511886A25441F6285C3F9C9F514185EB510884A25441F6285CDF949F514148E17AD483A25441C3F5284C939F5141EC51B8BE84A2544152B81EB5929F5141333333C385A254413D0AD713909F51419A9999498AA254415C8FC205979F5141EC51B8AE94A25441000000A0A29F514166666656A1A254417B14AE47AF9F5141666666E6A7A254411F85EBA1BE9F514185EB5198AAA2544133333303CA9F5141A4703D2AA7A2544133333383C79F514166666616A5A25441D7A3702DC79F5141EC51B82E9FA25441295C8FE2C59F5141EC51B86E9DA2544152B81EA5C39F5141666666469BA25441B81E85BBBE9F51418FC2F5A897A25441
+</a>
+
+<b>
+010600000001000000010300000001000000280000009A999949CF9F5141E17A144EA8A2544148E17A64D49F514100000090A8A25441654C898DD49F5141280C2B9AA8A254412986DAECD49F51417D57C6B1A8A25441E17A14BED99F5141333333E3A9A254413D0AD7E3DA9F51418FC2F5E8AAA25441508A5A05DC9F5141FA6EC66EACA2544167BCCA94DD9F514184DEB464AEA25441AD7730F3DE9F5141B277D0C2AFA25441ACA2E827DF9F51414B7B7DF7AFA2544150267E35DF9F51413A1F1005B0A254416A452E41DF9F514148C5BD10B0A254415E001B34E09F5141C035D001B1A2544100000070E09F51418FC2F5C8AFA25441744D58EEE09F5141C138389FADA25441E941A46EE09F5141DD76A5B2ACA25441D83F3659DF9F51416A8F4F21ACA254417C5D4CF3DB9F5141FD615108A9A2544121EC2F98D99F514116063CEAA6A25441872552F9CC9F5141ADF8C402A6A2544167B66F86CA9F5141D162042FA4A25441D8BE3C04CA9F5141F14CC7ECA0A25441CE1970ADC99F5141B173AC709DA25441451684C5C19F51418FC78A1D96A254412FE8EB53BF9F514134982CBD94A25441C73D8617BF9F5141781D059E94A254416974592FBF9F514148C5B75F96A25441D5E0AD3BBF9F51411EB33D3E97A25441D59AA43EBF9F514149E8BA7397A254412E268D02C39F5141B8B7D3379AA254410AD7A3F0C39F5141666666E69AA2544185EB5148C69F5141A4703D1A9DA2544162F35650C79F514129A88F859EA25441F6285CAFC79F514185EB51089FA25441CD3919E3C79F5141A30B24A4A1A254410233D726C89F51418D13BAF4A4A25441BFDED43CCD9F514181932F40A9A25441121180BBCD9F51417C348B4CA9A25441295C8F02CE9F51411F85EB51A9A254419A999949CF9F5141E17A144EA8A25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235046 - 365568
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000002000000010300000001000000190000009A999949CF9F5141E17A144EA8A2544148E17A64D49F514100000090A8A25441E17A14BED99F5141333333E3A9A254413D0AD7E3DA9F51418FC2F5E8AAA25441D7A3702DDD9F5141D7A370FDADA254413D0AD733E09F514133333303B1A2544100000070E09F51418FC2F5C8AFA2544114AE47F1E09F51417B14AE97ADA2544166666666E29F51417B14AE47A7A254411F85EB71E29F51415C8FC215A7A25441713D0A77D79F51415C8FC255A2A25441D7A3702DD99F51411F85EB519BA25441333333B3CD9F5141E17A14EE96A25441713D0A47CC9F5141C3F5286C9BA25441AE47E1BACA9F5141000000A09AA2544152B81E75C19F5141666666D695A2544166666616BF9F5141D7A3709D94A25441EC51B83EBF9F514152B81E7597A254410AD7A3F0C39F5141666666E69AA2544185EB5148C69F5141A4703D1A9DA25441F6285CAFC79F514185EB51089FA2544152B81E25C89F514185EB51F8A4A2544100000040CD9F514133333343A9A25441295C8F02CE9F51411F85EB51A9A254419A999949CF9F5141E17A144EA8A254410103000000010000001A000000B81E85BBBE9F51418FC2F5A897A25441B81E858BBE9F5141EC51B88E94A254413D0AD7F3BD9F5141AE47E10A94A254415C8FC2B5BC9F51415C8FC2E592A254417B14AE87B69F5141B81E852B92A254417B14AEC7B49F5141295C8FD290A2544166666666B19F5141666666268FA25441CDCCCCCCAD9F514152B81E058DA25441C3F528ACAA9F51411F85EB518AA254418FC2F578A29F5141AE47E12A86A2544185EB5138A19F514185EB511886A25441F6285C3F9C9F514185EB510884A25441F6285CDF949F514148E17AD483A25441C3F5284C939F5141EC51B8BE84A2544152B81EB5929F5141333333C385A254413D0AD713909F51419A9999498AA254415C8FC205979F5141EC51B8AE94A25441000000A0A29F514166666656A1A254417B14AE47AF9F5141666666E6A7A254411F85EBA1BE9F514185EB5198AAA2544133333303CA9F5141A4703D2AA7A2544133333383C79F514166666616A5A25441D7A3702DC79F5141EC51B82E9FA25441295C8FE2C59F5141EC51B86E9DA2544152B81EA5C39F5141666666469BA25441B81E85BBBE9F51418FC2F5A897A25441
+</a>
+
+<b>
+010600000001000000010300000001000000280000009A999949CF9F5141E17A144EA8A2544148E17A64D49F514100000090A8A25441654C898DD49F5141280C2B9AA8A254412986DAECD49F51417D57C6B1A8A25441E17A14BED99F5141333333E3A9A254413D0AD7E3DA9F51418FC2F5E8AAA25441508A5A05DC9F5141FA6EC66EACA2544167BCCA94DD9F514184DEB464AEA25441AD7730F3DE9F5141B277D0C2AFA25441ACA2E827DF9F51414B7B7DF7AFA2544150267E35DF9F51413A1F1005B0A254416A452E41DF9F514148C5BD10B0A254415E001B34E09F5141C035D001B1A2544100000070E09F51418FC2F5C8AFA25441744D58EEE09F5141C138389FADA25441E941A46EE09F5141DD76A5B2ACA25441D83F3659DF9F51416A8F4F21ACA254417C5D4CF3DB9F5141FD615108A9A2544121EC2F98D99F514116063CEAA6A25441872552F9CC9F5141ADF8C402A6A2544167B66F86CA9F5141D162042FA4A25441D8BE3C04CA9F5141F14CC7ECA0A25441CE1970ADC99F5141B173AC709DA25441451684C5C19F51418FC78A1D96A254412FE8EB53BF9F514134982CBD94A25441C73D8617BF9F5141781D059E94A254416974592FBF9F514148C5B75F96A25441D5E0AD3BBF9F51411EB33D3E97A25441D59AA43EBF9F514149E8BA7397A254412E268D02C39F5141B8B7D3379AA254410AD7A3F0C39F5141666666E69AA2544185EB5148C69F5141A4703D1A9DA2544162F35650C79F514129A88F859EA25441F6285CAFC79F514185EB51089FA25441CD3919E3C79F5141A30B24A4A1A254410233D726C89F51418D13BAF4A4A25441BFDED43CCD9F514181932F40A9A25441121180BBCD9F51417C348B4CA9A25441295C8F02CE9F51411F85EB51A9A254419A999949CF9F5141E17A144EA8A25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>208373 - 56162
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000300000001030000000200000015000000C3F5284C389550418FC2F5A842475541D7A370CD3995504152B81E7543475541713D0AF73A955041EC51B8FE43475541B81E856B3B955041666666264447554114AE472141955041CDCCCC6C324755415C8FC24543955041C3F528AC2E475541295C8F0243955041B81E85DB2D475541C3F5285C3E95504114AE476129475541333333A33395504185EB51E823475541333333B332955041713D0A17264755419A9999792F955041E17A14CE2C475541713D0A472C955041AE47E19A33475541EC51B8DE2B9550418FC2F57834475541AE47E18A2F9550415C8FC2253A47554100000000319550411F85EB313C4755415C8FC20532955041295C8F623E475541D7A3704D339550413D0AD7A33F475541333333A334955041295C8F6241475541E17A14FE359550419A9999094247554148E17A1437955041295C8F3242475541C3F5284C389550418FC2F5A842475541160000003D0AD79338955041C3F5280C2E4755416666664638955041713D0A772D4755418FC2F54838955041000000F02C4755419A9999A938955041713D0A072C4755413333337339955041CDCCCC1C2B47554148E17AE43995504114AE47D12A475541E17A144E3A9550417B14AEC72A475541E17A148E3B955041666666A62B475541000000A03D955041D7A370FD2C475541713D0AA73F9550418FC2F5F82D4755413D0AD71340955041F6285C5F2E475541A4703D4A40955041333333D32E4755415C8FC23540955041D7A3706D2F47554114AE47014095504148E17A24304755413D0AD7433F95504133333333314755418FC2F5783E9550417B14AEC73147554114AE47B13D955041E17A14DE31475541713D0A473D9550417B14AEC73147554148E17A843B95504185EB51F82F47554114AE47613A9550415C8FC2B52E475541295C8F4239955041AE47E15A2E4755413D0AD79338955041C3F5280C2E4755410103000000010000003900000014AE47D1739550410AD7A3804F47554148E17AC47495504152B81E3550475541F6285C0F76955041AE47E10A51475541AE47E19A779550419A9999195247554152B81EA5789550413D0AD7B3524755418FC2F588799550413D0AD73353475541333333837A9550413D0AD743544755419A9999B97B955041CDCCCC5C554755413D0AD7937C9550418FC2F53856475541713D0AB77D955041E17A145E57475541295C8FC27E955041F6285CBF58475541D7A370BD7F9550413D0AD7C359475541B81E857B80955041333333735A4755415C8FC23581955041D7A3704D5B475541295C8F4282955041C3F5285C5C475541EC51B83E839550410AD7A3C05D475541C3F528FC83955041713D0AA75E47554100000090849550418FC2F5985F475541F6285C7F8595504185EB518860475541AE47E10A86955041D7A3707D61475541D7A370FD869550415C8FC21562475541E17A14EE87955041C3F5285C6247554152B81ED5889550410AD7A3A062475541EC51B8EE8895504185EB51A863475541CDCCCC0C89955041D7A370AD6447554185EB5158899550417B14AE5765475541AE47E1BA89955041666666D6654755417B14AE778A955041EC51B82E66475541713D0A578B9550411F85EBA1664755415C8FC2A58B955041295C8F1267475541666666668B955041F6285CAF674755413D0AD7238B9550413D0AD7636847554148E17A148C9550410AD7A3B06847554185EB51288D955041CDCCCC3C69475541A4703D1A90955041EC51B82E6B475541713D0AB793955041D7A3700D6C47554148E17A74959550410AD7A3A06C475541EC51B88E96955041000000006D4755415C8FC20597955041AE47E12A6D475541CDCCCC5C979550417B14AE076A475541AE47E1EA95955041EC51B89E69475541CDCCCC3C96955041C3F5287C684755418FC2F5D894955041333333B36747554148E17A549195504185EB51B865475541CDCCCCEC919550419A9999C963475541000000208E955041AE47E1DA5F4755417B14AEF78D955041B81E85BB5F475541AE47E1FA879550418FC2F5885A4755413D0AD7338495504152B81EC555475541EC51B80E81955041AE47E11A52475541E17A143E7F955041A4703D6A4E4755415C8FC2057C95504148E17A544947554185EB51887A955041C3F5282C48475541AE47E11A78955041E17A146E464755415C8FC2B5749550419A9999A94B4755415C8FC2A572955041295C8F724E47554114AE47D1739550410AD7A3804F475541010300000001000000520000003D0AD7135F9550418FC2F53854475541295C8FA24C9550418FC2F5E84D4755410AD7A3C04895504148E17A944C475541295C8F824B9550411F85EB8142475541E17A14EE4D955041EC51B89E394755417B14AE074B955041713D0A0739475541B81E85BB47955041A4703DFA374755415C8FC21547955041B81E857B3747554152B81E3546955041295C8FD236475541295C8FF244955041C3F5285C35475541EC51B85E449550410AD7A31033475541000000303F95504185EB511846475541F6285C4F3F9550410000003046475541CDCCCC5C41955041F6285CEF474755416666661642955041CDCCCCAC484755410AD7A3804495504114AE47414B475541AE47E1DA46955041C3F5283C4D4755418FC2F50848955041A4703D7A4E4755411F85EBF1489550418FC2F5E8514755418FC2F5D8499550418FC2F52856475541000000404A9550413D0AD7035C47554185EB51584A955041295C8FF25D4755418FC2F5684A955041CDCCCC4C5F4755417B14AE874B95504185EB51985F475541EC51B89E50955041EC51B8DE61475541666666365A9550417B14AE27664755416666664660955041F6285C9F6847554152B81EB561955041F6285C7F694755415C8FC26562955041D7A370ED684755413D0AD7A367955041CDCCCC0C6A475541000000E06B955041A4703D1A64475541F6285C0F6C9550417B14AED7634755413D0AD7236D95504114AE472164475541E17A140E6E955041F6285C3F654755413D0AD7B36E955041295C8F6266475541295C8F826F955041666666A666475541295C8F9270955041F6285C0F67475541EC51B85E73955041F6285C4F67475541D7A370BD76955041295C8F826747554185EB51887995504185EB51D866475541000000207D955041713D0A0765475541666666A680955041C3F528FC634755411F85EB21839550413D0AD7C363475541B81E852B86955041713D0A07654755413D0AD773899550417B14AE27674755417B14AEF78A955041C3F5287C67475541C3F528FC8A9550417B14AE17674755419A9999398A9550411F85EBB16647554185EB51B8899550413D0AD75366475541D7A3702D89955041F6285CBF65475541333333C3889550418FC2F538654755413D0AD79388955041666666A664475541B81E858B88955041AE47E1FA63475541C3F5286C88955041A4703D4A634755411F85EBF187955041333333B362475541333333E386955041A4703D8A62475541C3F5285C8695504114AE475162475541713D0AF7859550417B14AED761475541E17A142E85955041CDCCCCFC604755416666664684955041AE47E1EA5F4755410AD7A3A083955041333333335F475541C3F528FC82955041AE47E14A5E4755419A9999C981955041333333D35C4755413D0AD7E3809550410AD7A3C05B475541F6285C2F80955041EC51B8FE5A4755418FC2F5787F955041EC51B81E5A47554185EB51687E95504148E17A04594755411F85EB617D955041EC51B8BE574755417B14AE277C9550413333338356475541CDCCCC5C7B9550417B14AEB755475541CDCCCC2C7A95504185EB51A8544755413D0AD7337995504114AE47C153475541F6285C4F78955041B81E850B53475541E17A143E77955041AE47E15A5247554114AE478176955041CDCCCCCC51475541713D0A0775955041AE47E1BA504755417B14AE9774955041C3F5286C5047554185EB519873955041AE47E1BA4F47554148E17A6472955041A4703DCA4E4755410000000071955041C3F528AC50475541CDCCCC7C699550419A9999C9574755413D0AD7135F9550418FC2F53854475541
+</a>
+
+<b>
+010600000001000000010300000001000000AE00000097256E8672955041FDF9073C67475541B2ACD663749550417E4DDB5E67475541AA52AF5976955041CFCAA37C674755419B4A4483779550415230735367475541E4EED9F97795504177E2353767475541FF76E925799550419532C1EF6647554121B5593579955041D90414EC66475541554C48387A955041EC464C7F6647554167299A4E7A955041148C0174664755410C0A21927A955041D4DAD75166475541E7CCA4D97A95504195AEA92D6647554163E0FE457B9550410592D8F6654755416140C5867C955041FAA48F5465475541000000207D955041713D0A0765475541AD8074417F955041B27CB965644755417D948FAA7F955041B1DCA34664475541666666A680955041C3F528FC63475541EB2931D080955041F7D474F86347554189E94C0B82955041450788DC6347554106A8151483955041D1EB10C5634755411F85EB21839550413D0AD7C363475541C08D8AA983955041BA9535FC63475541DD34FE7C85955041F4FD7FBE644755417EECD2F085955041B2C8A4EE64475541B81E852B86955041713D0A0765475541731FAD2F8695504142DBBB096547554197364169869550412F690D2F6547554126836A80869550413764103E654755412BD10149889550417308FF656647554122A1C54D889550418AA2156966475541DBE03254889550410DFA3F6D66475541460D826E88955041A2454D7E664755412ECF3C9D889550410BBE969C6647554198BA1A08899550416757DAE1664755419F06714489955041C39CF508674755417F5C0C8B89955041AD3ABC2C674755415CB0498F899550411FA3A82D6747554126D32F988995504164DD982F67475541F5768EB8899550411FE0A5366747554129FC08D589955041DCE8D93C67475541EF2D4C258A9550413F89554E67475541C21AAE808A955041193E3D62674755416B6A80B68A9550417875F66D6747554100174CC58A9550412F7F2F7167475541950710DC8A955041F4F2247667475541F698CEF98A955041D535744C67475541A98F62FB8A955041E0E10F29674755417D9039CF8A9550415B802D00674755419A9999398A9550411F85EBB16647554185EB51B8899550413D0AD75366475541D7A3702D89955041F6285CBF65475541333333C3889550418FC2F538654755413D0AD79388955041666666A6644755418264099088955041E448FE576447554139170F6088955041CBB4493B6347554184505FAC87955041646BADA862475541AF6A030587955041AD205B8F62475541333333E386955041A4703D8A62475541C3F5285C8695504114AE475162475541924902FB85955041BDE873DC61475541DFB4CEF285955041FBEC11D361475541E17A142E85955041CDCCCCFC604755416666664684955041AE47E1EA5F4755410AD7A3A083955041333333335F47554156EE4C83839550410768C2095F475541FF09413381955041DDE7891F5C4755412AF24BA780955041E08E967F5B475541F6285C2F80955041EC51B8FE5A47554102C01DCF7F955041A19F86885A4755414934C0347F955041B6EB1BD85947554185EB51687E95504148E17A045947554114C32B897D95504149D872EF57475541E99107467D9550416349B7A2574755413D0AD7337995504114AE47C1534755411CE8395D779550416210036F52475541E17A143E77955041AE47E15A52475541C9C051B476955041DA9235F35147554133AB500F769550418F5D447A51475541912C3AB574955041F6FD0B81504755417B14AE9774955041C3F5286C5047554185EB519873955041AE47E1BA4F475541015ACC647295504170207DCA4E475541BA8A9C1471955041912937BB5047554111E732EA6C955041A93CA08A54475541CDCCCC7C699550419A9999C9574755413A0ECE746995504171ACDCC657475541EC591826669550415E02E6A45647554104D30EAF61955041E473741D554755410873E9555E9550411E8FF3F75347554189EBD78759955041F869EC5252475541630CC09258955041147008FF514755410C6D486B55955041DE2BA7EA50475541295C8FA24C9550418FC2F5E84D475541CF7CBACC48955041B7FD9E984C4755410AD7A3C04895504148E17A944C475541B5B4120349955041D8CAD0A14B4755414C53436C4A955041D53F797A46475541A79ED4084C9550416F03CF944047554106846CE14C95504145785D793D4755410A7540E94D955041A9A373B039475541CD45E7874D955041C821D88939475541E74B5A414D95504173166E7B394755415C83DBAD4C955041E0934B5D3947554169152C7B4B95504162E1A21E394755411E2ED7654B9550414D29471A394755417B14AE074B955041713D0A0739475541B81E85BB47955041A4703DFA37475541A819705047955041BDC460A8374755412F88F078469550411ED191053747554152B81E3546955041295C8FD236475541B1A36895459550415C4D2E193647554187E8050A45955041B0D8647735475541295C8FF244955041C3F5285C3547554105709F9544955041083ED3EA334755413B19D45F4495504155950B1533475541B60C10BA439550418AD6416D35475541310205464295504148B663C33A4755417109C7364295504189A55BFB3A4755416FAF847541955041122100C13D475541493DD6E040955041FC66F4E23F475541641134B84095504117E528784047554136E176B93F955041D5F58D1F44475541194697343F955041A758760746475541471F1E3540955041EEA79DF346475541E15C2F6340955041FF6DD61A4747554102F68F74409550412BF8A12947475541D1E6C6F340955041897CF195474755415BAFAA5541955041826749E947475541CDCCCC5C41955041F6285CEF474755416666661642955041CDCCCCAC48475541151B7D2B449550415E974FE64A4755415E7390C9449550411043A87E4B4755413013EBB246955041C6A0861A4D475541AE47E1DA46955041C3F5283C4D47554181B052B0479550410E83E81C4E4755416500550C489550413737195D4E4755412276E0134895504113FE6AA34E4755416DF37A6348955041EB34AECF4F4755411F85EBF1489550418FC2F5E8514755418FC2F5D8499550418FC2F52856475541F25865F249955041E01CF79A57475541000000404A9550413D0AD7035C47554185EB51584A955041295C8FF25D475541D9E9B7684A955041A3EAC5475F475541A782A93C4B955041D3928F845F4755417B14AE874B95504185EB51985F475541F8C87F664E955041F53EC0E06047554188B483D550955041AF6532F7614755410F28E93B53955041E64DA60963475541A2DB4CA457955041E06AB401654755412160533E5A955041DAE4E72A664755416666664660955041F6285C9F684755417E325B6C6095504160608BB668475541920F98A7619550410119197769475541E0EEEC4C62955041B897F401694755415C8FC26562955041D7A370ED68475541546ECDD8629550416D861206694755414E97C88663955041990B532B69475541B18E4C9064955041E9E32C64694755416831B6CB659550414BC6B5A769475541A6491BA46795504182F46C0C6A47554167580FDB6B955041247B2D21644755419F73BC0B6C955041E7E2C5DC63475541F6285C0F6C9550417B14AED7634755413982A5C66C95504180B77808644755413D0AD7236D95504114AE4721644755413BD2F84C6D95504197D2835364475541E17A140E6E955041F6285C3F654755416CFBE8146E95504158DA5B4B65475541300299A96E955041AA16915066475541241BEA706F9550411FF59BA066475541295C8F826F955041666666A666475541BCE43B8870955041CA17600B6747554197256E8672955041FDF9073C67475541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>208394 - 2966293
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000014000000CDCCCC6CDA9250413D0AD7A39B4355418FC2F5E8DD92504148E17A149743554114AE4711E292504185EB519891435541AE47E1FAE09250418FC2F5388B4355419A999949E19250413D0AD7F385435541295C8F12E2925041A4703D6A834355413D0AD7B3DE9250413D0AD743844355411F85EBF1DC9250410AD7A3A08443554152B81EB5DB925041AE47E1BA8443554185EB51B8DA92504114AE47B18443554100000090D892504148E17A5484435541A4703DEAD2925041F6285CCF82435541713D0AC7CF9250410AD7A3608143554148E17A44CA9250413D0AD7037F43554152B81E85C6925041D7A3706D84435541295C8F12BF925041CDCCCC2C8E435541333333F3C7925041C3F5280C95435541713D0A87D09250410AD7A3C09B4355411F85EB31D59250415C8FC2A5A1435541CDCCCC6CDA9250413D0AD7A39B435541
+</a>
+
+<b>
+01060000000100000001030000000100000016000000713D0A87D09250410AD7A3C09B4355411F85EB31D59250415C8FC2A5A1435541CDCCCC6CDA9250413D0AD7A39B4355418FC2F5E8DD92504148E17A149743554114AE4711E292504185EB5198914355410BD481C1E19250414D90DEC48F43554138867E20E1925041FCEA5E158C435541A7510FEBE09250411435EEB78A4355414578E81BE192504110EEEA028943554181F2C53BE1925041515BCEE086435541785002A1E19250411C0BBA2C854355419251470EE292504154601478834355418AA3ADDCDD92504103269564844355414D5C8485DA9250416BA58EBF8443554100000090D892504148E17A5484435541A4703DEAD2925041F6285CCF82435541713D0AC7CF9250410AD7A3608143554148E17A44CA9250413D0AD7037F43554152B81E85C6925041D7A3706D84435541295C8F12BF925041CDCCCC2C8E435541333333F3C7925041C3F5280C95435541713D0A87D09250410AD7A3C09B435541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>208394 - 3502911
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000014000000CDCCCC6CDA9250413D0AD7A39B4355418FC2F5E8DD92504148E17A149743554114AE4711E292504185EB519891435541AE47E1FAE09250418FC2F5388B4355419A999949E19250413D0AD7F385435541295C8F12E2925041A4703D6A834355413D0AD7B3DE9250413D0AD743844355411F85EBF1DC9250410AD7A3A08443554152B81EB5DB925041AE47E1BA8443554185EB51B8DA92504114AE47B18443554100000090D892504148E17A5484435541A4703DEAD2925041F6285CCF82435541713D0AC7CF9250410AD7A3608143554148E17A44CA9250413D0AD7037F43554152B81E85C6925041D7A3706D84435541295C8F12BF925041CDCCCC2C8E435541333333F3C7925041C3F5280C95435541713D0A87D09250410AD7A3C09B4355411F85EB31D59250415C8FC2A5A1435541CDCCCC6CDA9250413D0AD7A39B435541
+</a>
+
+<b>
+01060000000100000001030000000100000016000000713D0A87D09250410AD7A3C09B4355411F85EB31D59250415C8FC2A5A1435541CDCCCC6CDA9250413D0AD7A39B4355418FC2F5E8DD92504148E17A149743554114AE4711E292504185EB5198914355410BD481C1E19250414D90DEC48F43554138867E20E1925041FCEA5E158C435541A7510FEBE09250411435EEB78A4355414578E81BE192504110EEEA028943554181F2C53BE1925041515BCEE086435541785002A1E19250411C0BBA2C854355419251470EE292504154601478834355418AA3ADDCDD92504103269564844355414D5C8485DA9250416BA58EBF8443554100000090D892504148E17A5484435541A4703DEAD2925041F6285CCF82435541713D0AC7CF9250410AD7A3608143554148E17A44CA9250413D0AD7037F43554152B81E85C6925041D7A3706D84435541295C8F12BF925041CDCCCC2C8E435541333333F3C7925041C3F5280C95435541713D0A87D09250410AD7A3C09B435541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>208914 - 3690270
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000004400000085EB51887EA350419A999989523855418FC2F5887BA35041CDCCCC4C52385541333333937AA35041B81E853B5238554185EB51E877A3504166666606523855416666660675A35041CDCCCCCC51385541B81E853B72A35041AE47E1EA5138554148E17AF46FA350418FC2F50852385541AE47E10A6FA3504133333323473855410AD7A3606DA35041713D0A77473855417B14AEC769A35041B81E852B483855413D0AD7E367A350419A99998948385541A4703D1A67A3504114AE47B1483855411F85EB4166A35041F6285CEF483855410AD7A33064A35041713D0A87493855419A9999C961A350417B14AE374A385541333333E35EA35041D7A3700D4B385541C3F5280C5CA35041E17A14DE4B385541E17A143E5CA35041295C8F824C385541CDCCCC5C5FA35041295C8FD256385541EC51B8CE5BA3504148E17A64573855415C8FC23559A35041333333834D3855411F85EB0159A35041D7A370BD4C385541CDCCCC9C55A35041713D0AB74D3855419A99995951A35041E17A14EE4E38554114AE47914FA3504148E17AE44F38554185EB51D849A3504148E17A04533855415C8FC2A549A35041B81E852B53385541713D0A073AA3504148E17A345F3855418FC2F5D836A35041EC51B8BE61385541295C8FC22EA350419A999949683855418FC2F5982DA35041CDCCCC7C6A3855411F85EB7136A350413D0AD7B36538554114AE475137A35041AE47E13A65385541EC51B8BE37A35041F6285CFF643855410AD7A38038A3504166666696643855411F85EBC139A3504185EB51E86338554114AE47C13BA35041295C8FD26238554114AE47513DA35041A4703DFA613855418FC2F5983EA3504185EB5148613855410AD7A3203FA35041EC51B8FE603855415C8FC2A546A350410AD7A3E05D385541E17A14DE46A350413D0AD7735E3855419A99991947A35041F6285C0F5F3855419A99997947A35041A4703D0A60385541F6285C2F4BA35041C3F528DC5E38554152B81E5550A35041D7A3708D5D385541A4703D0A54A35041C3F528CC5C385541B81E854B55A35041000000A05C3855413D0AD71359A350415C8FC2255C38554185EB51185DA3504185EB51C85B385541000000C05FA35041713D0AA75B3855415C8FC28561A35041713D0AA75B38554152B81E5564A35041713D0AB75B3855413D0AD76366A3504114AE47F15B3855410000006068A35041C3F5282C5C3855417B14AE9768A35041D7A3702D593855410AD7A3B068A350418FC2F54857385541295C8FB268A350413D0AD713563855419A9999096FA350417B14AEF755385541F6285CEF7CA350418FC2F5D858385541A4703D5A81A35041295C8F125A385541B81E85DB81A3504114AE4711583855415C8FC22582A35041EC51B8FE56385541D7A3704D82A350411F85EB7156385541D7A370BD82A35041CDCCCCAC54385541A4703D3A83A35041713D0AE7523855410AD7A35081A3504114AE47C15238554185EB51887EA350419A99998952385541
+</a>
+
+<b>
+0106000000010000000103000000010000002300000085EB518853A350413D0AD79384385541C3F5283C59A35041F6285CEF83385541333333735BA350413D0AD7538538554148E17A145FA35041C3F5289C873855410AD7A37063A35041A4703D5A8A385541E17A14CE64A3504114AE47B1873855419A99995966A35041713D0A4783385541295C8F6269A35041E17A140E7B3855415C8FC2A56AA35041B81E852B783855415C8FC2156DA35041EC51B86E74385541CC20F1B27CA35041E78070CC58385541716915EC6FA3504108539D2656385541AF6F4F836EA35041EC8B02FA553855418089009A68A35041A782831456385541BB694B9D68A3504146A375C058385541BC5A716168A350412EE84A185C385541A67A4E9860A35041713D0AA75B385541565E067759A350419EB1BF1C5C385541BFC4DE8E52A3504152546A195D385541EDB05D974DA3504100B7B03F5E385541CD35B88747A3504196C7BF0560385541D6736CAC46A350415380E8DD5D385541CEC44BFB43A350416A2690FB5E3855411E6EADCA3EA3504162C2592D61385541AE5F9A8837A3504129C3CA1C6538554137E4A5852EA3504131CE1FFD69385541BF05BDBC2DA35041499000EA6A3855413201AA892DA350411F41DB7D6B3855417F2E0B8C2DA35041CC9B2B0E6C385541E82FFE0D2EA350414595D9D66D385541D7A3703D3CA35041F6285C1F79385541C3F528AC40A350415C8FC2A57C385541CDCCCC1C44A35041EC51B84E7F385541E17A14DE4BA3504114AE47718538554185EB518853A350413D0AD79384385541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>84734 - 21538
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000001000000140000009A9999E9BCD05041713D0A67D452544148E17AF4BCD05041666666F6D1525441B81E85DBC0D05041000000A0D15254415C8FC2C5C5D050413D0AD753D2525441CDCCCCFCCAD050417B14AE87D3525441D7A370CDCCD050410AD7A340D45254417B14AE07CED05041E17A14BED35254410AD7A350D1D0504100000090CF525441E17A14DED6D05041F6285C7FC85254413D0AD713DCD05041D7A370DDC152544133333383D0D05041295C8FF2BF5254418FC2F5F8C8D05041713D0A17BE525441F6285C7FBDD05041F6285C3FBB525441333333A3AED0504185EB5168B85254410AD7A3C09DD05041F6285CAFB552544152B81E359CD050413D0AD7F3B6525441A4703D6A96D050413D0AD753D152544148E17A5496D05041F6285CEFD152544185EB5188B1D05041CDCCCCACD35254419A9999E9BCD05041713D0A67D4525441
+</a>
+
+<b>
+0106000000010000000103000000010000000C00000074B626ADCDD05041E54BE12DD4525441B8884B3AC7D0504143AEBDA9D25254416987037BC3D0504164FAF9FFD1525441553C8ED8C0D0504170A141A0D1525441E2167364BED050415AAE93D6D1525441E86466F3BCD05041A6F06734D252544156DBAEEABCD050415F70DC28D452544167840D27C8D05041605DFA1ED552544100000080CBD050415C8FC255D55254413260613DCCD05041BED28178D55254418B73F29ACCD05041EB5E8380D552544174B626ADCDD05041E54BE12DD4525441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>85787 - 3133583
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000002100000085EB51788AB85041B81E85ABAD0655413333334390B850410AD7A310AC065541F6285C7F94B850413D0AD7B3AA065541CDCCCC5C98B85041333333B3A8065541000000E0A1B8504185EB5188A3065541A4703D4AA7B85041E17A14FEA00655413D0AD793A8B850418FC2F5A89F065541C3F528DCABB850413D0AD7D3960655411F85EB21ABB8504133333333950655418FC2F5389BB85041CDCCCCEC8E06554152B81E9597B85041E17A148E900655417B14AEE791B85041EC51B8BE9306554185EB51488AB850416666666690065541713D0A3784B85041A4703D4A8D065541CDCCCC3C7FB850411F85EBF1890655419A9999097BB85041A4703DFA85065541B81E854B74B85041333333937E065541713D0AD75CB85041CDCCCCFC77065541333333B35BB85041AE47E1AA78065541D7A370CD57B85041EC51B8CE91065541EC51B81E56B850417B14AEA79C06554114AE47E154B8504114AE4701A5065541713D0A5754B85041B81E857BA8065541B81E85CB53B85041CDCCCCDCAB0655410000002053B85041713D0A37AE06554114AE47F151B85041EC51B86EB006554185EB51E84CB850418FC2F548B8065541CDCCCC9C4DB850419A999969B90655410000000054B85041000000B0B80655419A9999D962B850418FC2F568B5065541C3F5289C70B850411F85EB11B2065541D7A370DD7CB85041EC51B88EAF06554185EB51788AB85041B81E85ABAD065541
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000000366DE0885B850415B91CAB58D06554185EB51488AB8504166666666900655417B14AEE791B85041EC51B8BE9306554152B81E9597B85041E17A148E900655418FC2F5389BB85041CDCCCCEC8E0655410AD7A3408BB85041B81E85BB8806554196ABC3BC86B850411A365C158706554196B5613A86B850411599BDE586065541A2A88AE783B85041CEAFD0148D065541FD0CEA3C84B85041623E404D8D0655410366DE0885B850415B91CAB58D065541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>85787 - 3515170
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000002100000085EB51788AB85041B81E85ABAD0655413333334390B850410AD7A310AC065541F6285C7F94B850413D0AD7B3AA065541CDCCCC5C98B85041333333B3A8065541000000E0A1B8504185EB5188A3065541A4703D4AA7B85041E17A14FEA00655413D0AD793A8B850418FC2F5A89F065541C3F528DCABB850413D0AD7D3960655411F85EB21ABB8504133333333950655418FC2F5389BB85041CDCCCCEC8E06554152B81E9597B85041E17A148E900655417B14AEE791B85041EC51B8BE9306554185EB51488AB850416666666690065541713D0A3784B85041A4703D4A8D065541CDCCCC3C7FB850411F85EBF1890655419A9999097BB85041A4703DFA85065541B81E854B74B85041333333937E065541713D0AD75CB85041CDCCCCFC77065541333333B35BB85041AE47E1AA78065541D7A370CD57B85041EC51B8CE91065541EC51B81E56B850417B14AEA79C06554114AE47E154B8504114AE4701A5065541713D0A5754B85041B81E857BA8065541B81E85CB53B85041CDCCCCDCAB0655410000002053B85041713D0A37AE06554114AE47F151B85041EC51B86EB006554185EB51E84CB850418FC2F548B8065541CDCCCC9C4DB850419A999969B90655410000000054B85041000000B0B80655419A9999D962B850418FC2F568B5065541C3F5289C70B850411F85EB11B2065541D7A370DD7CB85041EC51B88EAF06554185EB51788AB85041B81E85ABAD065541
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000000366DE0885B850415B91CAB58D06554185EB51488AB8504166666666900655417B14AEE791B85041EC51B8BE9306554152B81E9597B85041E17A148E900655418FC2F5389BB85041CDCCCCEC8E0655410AD7A3408BB85041B81E85BB8806554196ABC3BC86B850411A365C158706554196B5613A86B850411599BDE586065541A2A88AE783B85041CEAFD0148D065541FD0CEA3C84B85041623E404D8D0655410366DE0885B850415B91CAB58D065541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>86232 - 425867
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000100000007B14AE17ADB65041B81E85AB5B075541C3F5281CB0B6504185EB51B858075541EC51B86EB3B650410AD7A34058075541CDCCCC4CB8B65041C3F5280C59075541E17A14BEBDB650415C8FC2055B07554185EB5178C5B6504148E17A145D0755411F85EBF1CAB65041C3F5285C5D075541E17A144ECDB65041A4703DDA5C075541F6285CDFCBB6504152B81EA5530755417B14AE27BCB65041AE47E16A5207554166666686B3B65041333333D35107554166666666AEB650411F85EB315207554148E17A04A9B6504114AE475153075541E17A14DEA5B65041C3F5287C540755413D0AD753A4B65041666666B6550755417B14AE17ADB65041B81E85AB5B075541
+</a>
+
+<b>
+010600000001000000010300000001000000050000000C054B98C6B6504121D69A3B530755410BD799BEC3B65041E1199E025307554185AE003EC1B6504160038F515B0755417B6FCFC4C3B650418E7E89205C0755410C054B98C6B6504121D69A3B53075541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>86751 - 1672564
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001A00000048E17AA42FB250415C8FC2D5FB0C55413D0AD74333B250418FC2F5B8FF0C55411F85EBC13FB2504114AE47E1FC0C5541E17A149E50B2504133333383F80C5541295C8F524FB25041AE47E1EAF40C55415C8FC2055EB25041AE47E11AF80C5541D7A370AD69B250419A999949FB0C5541000000C079B2504133333313F60C55413D0AD72386B2504152B81EB5F10C55411F85EBE195B250418FC2F508ED0C5541EC51B8FE9FB25041713D0A77E90C554166666656A0B250411F85EB81E70C5541D7A370BDA5B2504152B81E95E50C5541EC51B8AEBCB250415C8FC235E90C55413D0AD7A3B6B2504114AE47F1CD0C5541000000509CB250417B14AE67D10C55415C8FC2B58DB250413D0AD7D3D40C5541AE47E1BA7AB250418FC2F5A8DB0C5541CDCCCC0C62B25041A4703D4AE40C5541000000C056B25041333333B3E70C55417B14AE2756B2504152B81EE5E70C5541D7A3704D4FB250410AD7A3F0E90C55410AD7A3803BB25041F6285C2FEF0C55411F85EB2125B25041A4703D2AF20C5541EC51B84E26B25041F6285CCFFC0C554148E17AA42FB250415C8FC2D5FB0C5541
+</a>
+
+<b>
+0106000000010000000103000000010000002E000000EC51B8FE9FB25041713D0A77E90C554166666656A0B250411F85EB81E70C5541D7A370BDA5B2504152B81E95E50C55412539B1A2B4B2504181230BF0E70C554151E212AABCB25041B716CB20E90C55413D0AD7A3B6B2504114AE47F1CD0C5541000000509CB250417B14AE67D10C55415C8FC2B58DB250413D0AD7D3D40C55414B2A5E718BB2504136A2C5A4D50C554101FD2BBA83B2504179B4CF6BD80C554179C8EC8779B250414D764B14DC0C55412AA2F29174B250416E0760D0DD0C5541D77457766AB25041DAD03259E10C5541729C6E6F61B250418399BA79E40C55413DBA780257B250414B10249FE70C55417C6A8E0354B25041677DB288E80C5541D7A3704D4FB250410AD7A3F0E90C55410AD7A3803BB25041F6285C2FEF0C55410537E1D438B25041848A9588EF0C55411F85EB2125B25041A4703D2AF20C5541EC51B84E26B25041F6285CCFFC0C554148E17AA42FB250415C8FC2D5FB0C5541F571074533B250412623A497FF0C55414BCA57AE3FB25041450DEFBFFC0C5541E17A149E50B2504133333383F80C5541295C8F524FB25041AE47E1EAF40C55412996C5DB4FB25041AFEFA108F50C554187FB6D334EB25041FDA27D16F00C55419599CF9D4CB2504174C5E7E7EA0C5541DDA46F994EB2504177BAE66EEA0C5541F0A7C67B4EB250411F85EB01EB0C5541B29DEF3F51B250412506818DF20C554131B307F952B250413DF2A468F40C5541BD536C2154B2504150F0D3D5F40C5541690C67CA57B25041EB22ECEBF50C5541B529082464B25041090C260CF90C554166D0C4196CB25041DE8B6B80FA0C5541000000C079B2504133333313F60C55413D0AD72386B2504152B81EB5F10C5541CEE5340188B2504177EE9A0EF10C55418C9837298AB25041866F2556F00C55416DBA76068EB250415CF1B622EF0C5541C671522A95B250413447EAD9EC0C5541ED7DA65696B25041CD785F74EC0C55412027EB119BB250413999D6DAEA0C5541EC51B8FE9FB25041713D0A77E90C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>86751 - 3591101
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001A00000048E17AA42FB250415C8FC2D5FB0C55413D0AD74333B250418FC2F5B8FF0C55411F85EBC13FB2504114AE47E1FC0C5541E17A149E50B2504133333383F80C5541295C8F524FB25041AE47E1EAF40C55415C8FC2055EB25041AE47E11AF80C5541D7A370AD69B250419A999949FB0C5541000000C079B2504133333313F60C55413D0AD72386B2504152B81EB5F10C55411F85EBE195B250418FC2F508ED0C5541EC51B8FE9FB25041713D0A77E90C554166666656A0B250411F85EB81E70C5541D7A370BDA5B2504152B81E95E50C5541EC51B8AEBCB250415C8FC235E90C55413D0AD7A3B6B2504114AE47F1CD0C5541000000509CB250417B14AE67D10C55415C8FC2B58DB250413D0AD7D3D40C5541AE47E1BA7AB250418FC2F5A8DB0C5541CDCCCC0C62B25041A4703D4AE40C5541000000C056B25041333333B3E70C55417B14AE2756B2504152B81EE5E70C5541D7A3704D4FB250410AD7A3F0E90C55410AD7A3803BB25041F6285C2FEF0C55411F85EB2125B25041A4703D2AF20C5541EC51B84E26B25041F6285CCFFC0C554148E17AA42FB250415C8FC2D5FB0C5541
+</a>
+
+<b>
+0106000000010000000103000000010000002E000000EC51B8FE9FB25041713D0A77E90C554166666656A0B250411F85EB81E70C5541D7A370BDA5B2504152B81E95E50C55412539B1A2B4B2504181230BF0E70C554151E212AABCB25041B716CB20E90C55413D0AD7A3B6B2504114AE47F1CD0C5541000000509CB250417B14AE67D10C55415C8FC2B58DB250413D0AD7D3D40C55414B2A5E718BB2504136A2C5A4D50C554101FD2BBA83B2504179B4CF6BD80C554179C8EC8779B250414D764B14DC0C55412AA2F29174B250416E0760D0DD0C5541D77457766AB25041DAD03259E10C5541729C6E6F61B250418399BA79E40C55413DBA780257B250414B10249FE70C55417C6A8E0354B25041677DB288E80C5541D7A3704D4FB250410AD7A3F0E90C55410AD7A3803BB25041F6285C2FEF0C55410537E1D438B25041848A9588EF0C55411F85EB2125B25041A4703D2AF20C5541EC51B84E26B25041F6285CCFFC0C554148E17AA42FB250415C8FC2D5FB0C5541F571074533B250412623A497FF0C55414BCA57AE3FB25041450DEFBFFC0C5541E17A149E50B2504133333383F80C5541295C8F524FB25041AE47E1EAF40C55412996C5DB4FB25041AFEFA108F50C554187FB6D334EB25041FDA27D16F00C55419599CF9D4CB2504174C5E7E7EA0C5541DDA46F994EB2504177BAE66EEA0C5541F0A7C67B4EB250411F85EB01EB0C5541B29DEF3F51B250412506818DF20C554131B307F952B250413DF2A468F40C5541BD536C2154B2504150F0D3D5F40C5541690C67CA57B25041EB22ECEBF50C5541B529082464B25041090C260CF90C554166D0C4196CB25041DE8B6B80FA0C5541000000C079B2504133333313F60C55413D0AD72386B2504152B81EB5F10C5541CEE5340188B2504177EE9A0EF10C55418C9837298AB25041866F2556F00C55416DBA76068EB250415CF1B622EF0C5541C671522A95B250413447EAD9EC0C5541ED7DA65696B25041CD785F74EC0C55412027EB119BB250413999D6DAEA0C5541EC51B8FE9FB25041713D0A77E90C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>88798 - 290262
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000200000013000000713D0A670FB55041000000709913554152B81E350DB55041713D0AA7A013554114AE47D108B55041295C8F229F13554114AE47C101B55041C3F528CCB1135541C3F5280C03B55041C3F528ECB2135541C3F5283C17B5504152B81E45BE135541AE47E15A19B5504100000040BA135541000000901FB550415C8FC225BD135541B81E850B26B550410AD7A360AA1355410000003031B55041AE47E11A8A13554148E17A4429B550418FC2F5A888135541F6285CBF1EB55041713D0A078F135541000000600EB550413D0AD78396135541C3F5287C0CB550413D0AD793971355419A9999C90AB5504185EB518898135541D7A3707D0AB55041E17A141E9A1355410AD7A33017B55041E17A14BE931355418FC2F55817B55041A4703DBA95135541713D0A670FB5504100000070991355410E00000048E17A0423B550410AD7A3909F1355417B14AEA720B5504185EB51A89F13554152B81E851FB5504148E17AC49D1355411F85EBE121B55041D7A3703D971355418FC2F53821B550418FC2F52895135541295C8F621EB5504166666606941355418FC2F5E81DB550413D0AD7139313554148E17A541FB550419A99990992135541AE47E1DA25B55041B81E854B8F135541EC51B85E27B550418FC2F5288E135541C3F528BC29B5504185EB51F88D135541D7A3704D2AB55041EC51B89E9013554185EB51B824B55041AE47E11A9D13554148E17A0423B550410AD7A3909F135541
+</a>
+
+<b>
+01060000000100000001030000000300000017000000F6285CBF1EB55041713D0A078F135541AD44AC661CB55041F04BBF1990135541861C3CE41BB55041F6F69F5C901355410BB4FFBB1BB55041DF4E8776901355418FD1683F19B550414227ED8A9113554149882CFD18B55041A8A137A991135541D949F37A18B550413D7AC5E4911355419DFB93F717B55041E6CDD92092135541F9D55ED717B550413B7D942F92135541121BB6171BB55041661BF852961355418F09A97811B550412AD4E6329B1355413668BD9B0EB550412624E911A21355410977DDDD09B55041E8B80132A0135541C297B48D09B5504193084512A0135541E32D804209B550413F952CECA01355419CF1A85D0EB55041B9A46E21A3135541B2B243330FB5504159F7D1E7A0135541C55B238925B5504125BE28DAAB135541B81E850B26B550410AD7A360AA135541EA09102B31B550412B252E298A135541C91AE8B62FB55041CA5A14D68913554148E17A4429B550418FC2F5A888135541F6285CBF1EB55041713D0A078F13554104000000C3F528BC29B5504185EB51F88D1355416125F69D29B55041A999BFE69013554108E308AC28B55041B562AA638F135541C3F528BC29B5504185EB51F88D135541070000009D8E57EC1CB550419BFB71FCA21355412A73102921B55041CD0A7F1397135541B1A1729E1DB550419CDE577795135541D2A8E3111EB5504133083E9E911355413B3C82A229B550416AF0239C92135541D48D667323B55041A5E0250CA51355419D8E57EC1CB550419BFB71FCA2135541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>88936 - 3025821
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000500000085EB51B82CB55041666666B670115541295C8FE246B55041333333F3891155418FC2F5A84AB5504152B81EA585115541C3F5286C30B55041666666566C11554185EB51B82CB55041666666B670115541
+</a>
+
+<b>
+0106000000010000000103000000010000000A00000040BAF3D746B55041BB4147FF89115541389841D646B550418A6441F48911554110C46FF72EB55041973921E1721155418758C1BF2CB550415A5A92BD7011554148B79C142AB5504117BEB2F77311554189D121BD37B550412F41790081115541FE78EAF733B5504163DAC6DF841155412FCBB19A40B550410955992B91115541CDCCCC9C44B550419A9999898C11554140BAF3D746B55041BB4147FF89115541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>88936 - 3404808
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000500000085EB51B82CB55041666666B670115541295C8FE246B55041333333F3891155418FC2F5A84AB5504152B81EA585115541C3F5286C30B55041666666566C11554185EB51B82CB55041666666B670115541
+</a>
+
+<b>
+0106000000010000000103000000010000000A00000040BAF3D746B55041BB4147FF89115541389841D646B550418A6441F48911554110C46FF72EB55041973921E1721155418758C1BF2CB550415A5A92BD7011554148B79C142AB5504117BEB2F77311554189D121BD37B550412F41790081115541FE78EAF733B5504163DAC6DF841155412FCBB19A40B550410955992B91115541CDCCCC9C44B550419A9999898C11554140BAF3D746B55041BB4147FF89115541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>291911 - 55774
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000025000000295C8F6212055141A4703D5A301C5541295C8F42150551413D0AD7432F1C55419A9999E914055141E17A142E2E1C554114AE47710E0551411F85EBC12A1C5541AE47E15A09055141295C8F42271C554152B81E5508055141D7A3701D251C55418FC2F5280205514133333353211C5541B81E85FBFF04514152B81E45201C55411F85EB21FE045141713D0AA71F1C5541000000F0FC045141CDCCCC5C1F1C554166666626FB04514185EB51381F1C554114AE47E1F8045141EC51B83E1F1C5541D7A370DDF50451411F85EB711F1C55419A999939F4045141000000A01F1C55411F85EBD1F9045141AE47E19A271C5541A4703D6AFC045141E17A146E2C1C5541C3F5286CFD0451411F85EB012E1C5541666666E6FE045141333333D32F1C5541B81E851B020551413D0AD7F3321C5541713D0AF702055141AE47E1DA331C5541A4703DEA0305514100000060361C55413D0AD76305055141CDCCCCCC391C5541EC51B82E0705514114AE47E13D1C5541295C8F020A055141E17A14EE3D1C5541AE47E18A100551418FC2F5A83C1C5541C3F5282C150551413D0AD7C33B1C5541D7A370CD1805514114AE47713B1C554185EB51C81F0551410AD7A3B03B1C55419A9999F923055141EC51B8EE3B1C55417B14AE272505514100000010381C55411F85EB711F0551419A999939331C5541E17A145E1F05514166666676331C5541666666A61E055141AE47E1CA341C5541CDCCCC5C190551417B14AEE7311C5541F6285C0F170551413D0AD703341C5541EC51B82E1405514185EB5118351C5541295C8F6212055141A4703D5A301C5541
+</a>
+
+<b>
+01060000000100000001030000000100000026000000FBBDD546F5045141B72773821F1C5541151B4328F7045141E6CECB97221C5541CD7FAFC0FA0451412E67FC6A251C5541C99C00A8FE045141EF98EB7F281C554194ECCE12030551418D96CFA22D1C554133335C55050551412F9FC913311C55411FC1BD91080551413269E9FB361C554153FD7B3D0B055141F1512FF13C1C5541E4ECE67D18055141B448EEC83A1C55418576A1A516055141ACDE852B341C5541EC51B82E1405514185EB5118351C554169DA642D1405514166F96615351C55410DA82E61120551415DF1B35B301C554119C5DE62120551413DF40E5B301C5541295C8F6212055141A4703D5A301C55413E6BEB6913055141E4119FF62F1C554155405F3415055141C06C93472F1C5541E2F7C60E150551415E9428A22E1C55419A9999E914055141E17A142E2E1C554101CFEC5512055141F10C20D12C1C5541A5E608EA0F055141A3CADA942B1C5541112F6B520E055141CEC052B52A1C5541DA6ED3490905514175993237271C5541BD950D4508055141511E9313251C55418FC2F5280205514133333353211C55418A5AE1A5000551414CDFA897201C5541A935783200055141E4A66462201C554105418A00FE045141527EF09E1F1C5541B1298AFCFD04514120F8F79D1F1C554135163EFBFD045141B961A79D1F1C5541BE5837CDFD045141D5F87B921F1C55412440D8CAFD045141ABA4E8911F1C5541E3FC4049FD0451411FBE75721F1C55416B6ACADBFC045141F8406A5B1F1C554146BDFBDAFA04514194031E411F1C55419E40AC18F9045141A3EB6E441F1C55417130CF80F50451414037167C1F1C5541FBBDD546F5045141B72773821F1C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>91645 - 186012
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000006000000CDCCCCDCD7BA5041EC51B85E99755441F6285CCFE0BA504114AE4791A7755441C3F5288CE4BA50410AD7A310A475544100000030E7BA50419A999929A27554411F85EBB1DDBA5041000000D093755441CDCCCCDCD7BA5041EC51B85E99755441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000683D0AE7EEBA50418BEB514884755441A4703D6AECBA50417B14AE1786755441EC51B88EE6BA5041CDCCCC5C8B7554413085EBB1DDBA5041EFFFFFCF93755441A7EFE527E3BA50414DED59119C755441F8FFFF2FE7BA50418E999929A27554418FC2F548EDBA504148E17AC49D755441A78715B1F2BA50417C210D99967554413FDAC98DF1BA5041338999F29575544176B9F368F0BA5041E5AC789C957554411F7F2D7AF0BA50410DDD4FAB9475544100E7C1F2F0BA504144BC798693755441D4079817F2BA5041683DFEC892755441559DFA19F3BA5041F1A79BC69175544175F8962DF4BA50410AEF591A91755441168EF92FF5BA5041CBFB517F90755441100A08E4F5BA50416052A1758F755441683D0AE7EEBA50418BEB514884755441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>209381 - 1195660
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001A0000006666663639385141D7A3709D908754410AD7A34034385141D7A3700D968754417B14AE0735385141000000B096875441CDCCCC7C4C38514185EB5188A1875441E17A142E633851415C8FC205AC875441F6285C4F63385141AE47E1AAAD875441AE47E1EA6438514148E17A24AF8754415C8FC2A5663851411F85EB61B2875441D7A3704D68385141CDCCCC6CB487544114AE47316B3851418FC2F5B8B6875441A4703D1A72385141C3F5281CBB875441EC51B89E7A3851410AD7A340C0875441EC51B86E7D385141F6285C0FC1875441F6285CFF833851419A9999A9C187544148E17A4487385141EC51B83EC187544148E17A64893851418FC2F5F8C08754419A9999298F385141EC51B84EBF8754413D0AD75393385141AE47E18ABD8754416666665696385141C3F528ACBB8754419A99999987385141A4703DDAB4875441F6285C8F63385141E17A142EA48754413D0AD783623851415C8FC2B5A387544185EB5148613851413D0AD723A3875441333333A34D385141EC51B80E9A875441A4703D2A3A385141E17A140E918754416666663639385141D7A3709D90875441
+</a>
+
+<b>
+0106000000010000000103000000010000002F000000F90E86CD923851413196CCC3BD875441C1634A19903851418CA7C22BBF87544154936CA88C385141DF320534C0875441AFAB830B8938514199324226C18754416E389558853851410A61587EC1875441DC370F3D87385141181B74ECC1875441BC659F79893851416CA6B6F4C287544144AAB4C68D3851411E775773C587544175D45D509C385141562ED557CF8754415DFE43CCAB3851410B90F4F1BF8754419E71327FAF3851419105FB12BC8754410C71AC63B1385141887A7B18BA875441DDB584BEB43851415F7BC441B7875441AE47E1AAB538514166666616B68754410AD7A3F0B6385141A4703DFAB587544172B4B579B938514162AA60B5B58754418FC2F5F8BE38514133333343B587544152B81EE5C5385141000000D0B3875441E053A216C5385141167D5694B1875441100FCABBC138514163DB5189AD87544130E1397FBF385141CEDC20CEA887544142F98DD4BC385141C7AFD9BAA387544170851906BB385141E781497EA1875441829D6D5BB83851416BC8B32B9F8754416958D2F2B5385141272629059D87544143591B1CB338514190F85BD699875441AC2B4EEDAF38514108B44689958754414F44285EAB3851412DE4EE33908754419FD1BFC6A538514137A05F028A87544165EBA56E9D3851412A46D1DB7F8754417703FAC39A385141F68CFE967C8754416666661698385141CDCCCCEC7C875441295C8F328D385141EC51B83E7D875441B81E855B943851410000002087875441AE47E15AA4385141F6285C1F9A87544185EB51F8AB3851417B14AE47A6875441BE43A242AD3851413C0B3726A9875441F35C02CFA6385141DC94E7DBAF8754414B467DBEA4385141AF085CAAB1875441E1A43BC19F3851412764B915B787544104A647F89B38514193349786BA875441F81AC8FD9938514165A80B55BC8754419A0406FB963851411DA84847BD87544148A85F6694385141AC7932EFBC875441215A7BD393385141CBB6943BBD8754413D0AD75393385141AE47E18ABD875441F90E86CD923851413196CCC3BD875441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>209381 - 3339695
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001A0000006666663639385141D7A3709D908754410AD7A34034385141D7A3700D968754417B14AE0735385141000000B096875441CDCCCC7C4C38514185EB5188A1875441E17A142E633851415C8FC205AC875441F6285C4F63385141AE47E1AAAD875441AE47E1EA6438514148E17A24AF8754415C8FC2A5663851411F85EB61B2875441D7A3704D68385141CDCCCC6CB487544114AE47316B3851418FC2F5B8B6875441A4703D1A72385141C3F5281CBB875441EC51B89E7A3851410AD7A340C0875441EC51B86E7D385141F6285C0FC1875441F6285CFF833851419A9999A9C187544148E17A4487385141EC51B83EC187544148E17A64893851418FC2F5F8C08754419A9999298F385141EC51B84EBF8754413D0AD75393385141AE47E18ABD8754416666665696385141C3F528ACBB8754419A99999987385141A4703DDAB4875441F6285C8F63385141E17A142EA48754413D0AD783623851415C8FC2B5A387544185EB5148613851413D0AD723A3875441333333A34D385141EC51B80E9A875441A4703D2A3A385141E17A140E918754416666663639385141D7A3709D90875441
+</a>
+
+<b>
+0106000000010000000103000000010000002F000000F90E86CD923851413196CCC3BD875441C1634A19903851418CA7C22BBF87544154936CA88C385141DF320534C0875441AFAB830B8938514199324226C18754416E389558853851410A61587EC1875441DC370F3D87385141181B74ECC1875441BC659F79893851416CA6B6F4C287544144AAB4C68D3851411E775773C587544175D45D509C385141562ED557CF8754415DFE43CCAB3851410B90F4F1BF8754419E71327FAF3851419105FB12BC8754410C71AC63B1385141887A7B18BA875441DDB584BEB43851415F7BC441B7875441AE47E1AAB538514166666616B68754410AD7A3F0B6385141A4703DFAB587544172B4B579B938514162AA60B5B58754418FC2F5F8BE38514133333343B587544152B81EE5C5385141000000D0B3875441E053A216C5385141167D5694B1875441100FCABBC138514163DB5189AD87544130E1397FBF385141CEDC20CEA887544142F98DD4BC385141C7AFD9BAA387544170851906BB385141E781497EA1875441829D6D5BB83851416BC8B32B9F8754416958D2F2B5385141272629059D87544143591B1CB338514190F85BD699875441AC2B4EEDAF38514108B44689958754414F44285EAB3851412DE4EE33908754419FD1BFC6A538514137A05F028A87544165EBA56E9D3851412A46D1DB7F8754417703FAC39A385141F68CFE967C8754416666661698385141CDCCCCEC7C875441295C8F328D385141EC51B83E7D875441B81E855B943851410000002087875441AE47E15AA4385141F6285C1F9A87544185EB51F8AB3851417B14AE47A6875441BE43A242AD3851413C0B3726A9875441F35C02CFA6385141DC94E7DBAF8754414B467DBEA4385141AF085CAAB1875441E1A43BC19F3851412764B915B787544104A647F89B38514193349786BA875441F81AC8FD9938514165A80B55BC8754419A0406FB963851411DA84847BD87544148A85F6694385141AC7932EFBC875441215A7BD393385141CBB6943BBD8754413D0AD75393385141AE47E18ABD875441F90E86CD923851413196CCC3BD875441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>834308 - 90043
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000250000001F85EBD112CC5041CDCCCC5CCA225441CDCCCC9C13CC5041D7A3703DC7225441F6285C5F13CC504148E17AC4C1225441D7A3703D12CC5041EC51B89EB5225441B81E850B12CC50415C8FC285B322544114AE477111CC5041EC51B88EAE225441000000F010CC5041F6285C6FA8225441C3F528FC0ECC5041CDCCCC5CA622544185EB51B80ECC504185EB51D8A4225441F6285CFF0DCC5041F6285C1FA4225441D7A370BD0CCC5041AE47E15AA4225441B81E857B08CC504133333303A4225441AE47E19A08CC504148E17A84A22254410AD7A3E00CCC504185EB51D8A222544148E17A240ECC5041713D0AA7A2225441295C8F520DCC504152B81ED5A12254413D0AD7830BCC5041CDCCCCFCA0225441333333C309CC50410AD7A300A1225441E17A142E08CC504133333303A22254411F85EB3107CC504114AE4751A32254418FC2F5E803CC504148E17A14A6225441333333E302CC5041713D0A37A822544148E17A4401CC5041713D0A67AA2254419A9999B9FFCB5041E17A14EEAD22544185EB5198FDCB5041C3F5280CB422544133333363FCCB5041295C8F92B8225441A4703DBAFCCB50410AD7A3C0BD225441EC51B86EFDCB5041EC51B82EC1225441666666D6FDCB5041E17A143EC2225441E17A145E04CC504133333323C62254413333335306CC50411F85EBD1C62254417B14AE3709CC504152B81E05C6225441D7A3705D0BCC504166666646C72254415C8FC2750DCC504185EB5118C7225441EC51B83E0ECC504152B81E25C72254411F85EB0112CC5041295C8FA2C92254411F85EBD112CC5041CDCCCC5CCA225441
+</a>
+
+<b>
+01060000000100000001030000000100000008000000C495F8AD00CC5041FA590FF0C32254418140975C01CC5041EA7F3758C4225441ACDA7BB501CC5041BE8B548BC422544117CB5B1003CC5041EBF0426CC3225441920F344003CC5041151083B6C0225441BB2E748A00CC5041FADB35DFBF225441AF5E6604FECB50419C958459C2225441C495F8AD00CC5041FA590FF0C3225441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>211614 - 4132577
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000001900000014AE4791AE2951417B14AEA7664055419A999959B7295141E17A145E76405541713D0A37C0295141AE47E13A8640554114AE47F1C12951411F85EBC1864055413D0AD773C8295141A4703D7A8340554148E17AD4CA295141CDCCCC6C88405541AE47E16ACC295141F6285CDF8840554114AE47B1D329514166666626844055411F85EB71D8295141A4703D7A80405541295C8FE2D3295141295C8F025A40554166666616F2295141AE47E16A5C4055415C8FC215F3295141D7A3707D5C405541D7A3702DF32951411F85EB815A405541AE47E1BAF2295141000000C04D40554114AE47C1F2295141E17A147E3E40554133333303F2295141713D0AE73640554185EB5198EB295141333333A336405541C3F5280CEB29514185EB51B82E405541F6285CAFDD2951417B14AED735405541A4703D8AD02951415C8FC2653D405541713D0AC7D0295141666666F65940554152B81E55BE295141713D0AF75C40554185EB5148B6295141B81E85FB6040554100000040AE295141EC51B86E6540554114AE4791AE2951417B14AEA766405541
+</a>
+
+<b>
+0106000000010000000103000000010000001F00000029A56D82F2295141734FBB725C4055412FBF2778F229514107FD0C805A4055417D189926F22951415FCEB7984D405541C5A59CFFF12951412963CA523E405541A5D22295F12951414BBE7EE23640554117D9CE57EB29514117D9CEC736405541759318A4EA295141819543D32E405541C1630D29DD2951410449C34636405541EDB4A63BCF2951419819C6503E405541D3DA4522CD295141F6D543B83F40554154E3A583CE295141BE9F1AC759405541AC39C9B4CB295141823CBBC95A40554181C54858BF295141F51F3C3C5F405541456A3168B62951416DDD6D7362405541C3DCDB7DAE2951411A43734C6540554100000040AE295141EC51B86E6540554114AE4791AE2951417B14AEA7664055419A999959B7295141E17A145E76405541713D0A37C0295141AE47E13A8640554114AE47F1C12951411F85EBC1864055413D0AD773C8295141A4703D7A8340554148E17AD4CA295141CDCCCC6C88405541AE47E16ACC295141F6285CDF8840554114AE47B1D32951416666662684405541000493F8D7295141919202D880405541DCF51A5DD52951412523BE3169405541295C8FE2D3295141295C8F025A405541180DDB78DA295141B6004F5C5A405541E923EDADE7295141EE577D965B40554133333383F2295141E92631985C40554129A56D82F2295141734FBB725C405541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>211614 - 4132585
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001900000014AE4791AE2951417B14AEA7664055419A999959B7295141E17A145E76405541713D0A37C0295141AE47E13A8640554114AE47F1C12951411F85EBC1864055413D0AD773C8295141A4703D7A8340554148E17AD4CA295141CDCCCC6C88405541AE47E16ACC295141F6285CDF8840554114AE47B1D329514166666626844055411F85EB71D8295141A4703D7A80405541295C8FE2D3295141295C8F025A40554166666616F2295141AE47E16A5C4055415C8FC215F3295141D7A3707D5C405541D7A3702DF32951411F85EB815A405541AE47E1BAF2295141000000C04D40554114AE47C1F2295141E17A147E3E40554133333303F2295141713D0AE73640554185EB5198EB295141333333A336405541C3F5280CEB29514185EB51B82E405541F6285CAFDD2951417B14AED735405541A4703D8AD02951415C8FC2653D405541713D0AC7D0295141666666F65940554152B81E55BE295141713D0AF75C40554185EB5148B6295141B81E85FB6040554100000040AE295141EC51B86E6540554114AE4791AE2951417B14AEA766405541
+</a>
+
+<b>
+01060000000100000001030000000100000010000000D34D6200D82951418716D91E81405541333333E3D8295141295C8F2280405541AE47E1EADC295141AE47E10A7D40554114AE4771E62951411F85EBD175405541CDCCCC2CEE295141AE47E1FA6F405541333333F3EF2951418FC2F5986E405541E17A14DEF3295141B81E858B6B4055415C8FC215F3295141D7A3707D5C40554129A56D82F2295141734FBB725C40554133333383F2295141E92631985C405541E923EDADE7295141EE577D965B4055413B9EE4ECDC2951418F05AB965A40554109EA47ECD829514124B433475A405541295C8FE2D3295141295C8F025A405541DCF51A5DD52951412523BE3169405541D34D6200D82951418716D91E81405541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>211723 - 31591
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000140000001F85EBD12E205141B81E85DB3F335541E17A144E39205141A4703DEA32335541295C8F42412051413D0AD753293355410000003042205141EC51B8DE27335541E17A14FE37205141E17A148E24335541A4703D1A2D2051417B14AE371F335541CDCCCCAC1F205141F6285C4F17335541D7A3707D162051411F85EB9111335541C3F5280C122051415C8FC2350E335541AE47E1BA012051418FC2F538003355415C8FC285002051415C8FC2550133554148E17A64F21F5141EC51B86E0D3355413D0AD7A3F71F5141D7A3705D123355413D0AD753052051417B14AE47203355417B14AEF7112051413D0AD7D32D3355415C8FC2151A2051410AD7A3803533554185EB51C8212051417B14AE473B3355419A99997928205141B81E85EB3E3355410AD7A3B02C20514114AE4771403355411F85EBD12E205141B81E85DB3F335541
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000EAA470D93520514132062D81233355419C5AD51F32205141583AC9AD21335541A32674AD30205141E09B40F820335541A4703D1A2D2051417B14AE371F335541A9F2802B25205141E8C5C58B1A3355418ECFC47C22205141D01F5AF7183355417828509821205141A87036B11833554178285098212051410ED917381933554130AF370422205141C65FFFA3193355411B6FC30424205141F898A3381B33554119792AA726205141D8B341E81C3355413F17488D2A205141C373CDE81E3355410AF2713D2E20514165BA405521335541A293F75830205141DF6CFD7D22335541B4E7399D33205141B5E2ADDC23335541A84CB3EE35205141C92C897E243355419DB12C403820514143DF45A725335541678C56F03B2051411955F60527335541514CE2F03D20514161CE0E9A26335541857B1FE33C2051415729214926335541C1C432D53C20514167AFFD20263355417B10511B3C2051411CBF8CE425335541432B916E3A20514123492359253355418765411039205141C0103BE724335541E17A14FE37205141E17A148E24335541EAA470D93520514132062D8123335541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>211723 - 76220
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000140000001F85EBD12E205141B81E85DB3F335541E17A144E39205141A4703DEA32335541295C8F42412051413D0AD753293355410000003042205141EC51B8DE27335541E17A14FE37205141E17A148E24335541A4703D1A2D2051417B14AE371F335541CDCCCCAC1F205141F6285C4F17335541D7A3707D162051411F85EB9111335541C3F5280C122051415C8FC2350E335541AE47E1BA012051418FC2F538003355415C8FC285002051415C8FC2550133554148E17A64F21F5141EC51B86E0D3355413D0AD7A3F71F5141D7A3705D123355413D0AD753052051417B14AE47203355417B14AEF7112051413D0AD7D32D3355415C8FC2151A2051410AD7A3803533554185EB51C8212051417B14AE473B3355419A99997928205141B81E85EB3E3355410AD7A3B02C20514114AE4771403355411F85EBD12E205141B81E85DB3F335541
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000EAA470D93520514132062D81233355419C5AD51F32205141583AC9AD21335541A32674AD30205141E09B40F820335541A4703D1A2D2051417B14AE371F335541A9F2802B25205141E8C5C58B1A3355418ECFC47C22205141D01F5AF7183355417828509821205141A87036B11833554178285098212051410ED917381933554130AF370422205141C65FFFA3193355411B6FC30424205141F898A3381B33554119792AA726205141D8B341E81C3355413F17488D2A205141C373CDE81E3355410AF2713D2E20514165BA405521335541A293F75830205141DF6CFD7D22335541B4E7399D33205141B5E2ADDC23335541A84CB3EE35205141C92C897E243355419DB12C403820514143DF45A725335541678C56F03B2051411955F60527335541514CE2F03D20514161CE0E9A26335541857B1FE33C2051415729214926335541C1C432D53C20514167AFFD20263355417B10511B3C2051411CBF8CE425335541432B916E3A20514123492359253355418765411039205141C0103BE724335541E17A14FE37205141E17A148E24335541EAA470D93520514132062D8123335541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>871953 - 206312
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001B0000000AD7A3B0047251413D0AD7F33DAF5441CDCCCCEC197251413D0AD7E338AF5441666666F619725141EC51B8EE36AF54419A9999791A7251415C8FC20531AF54419A999949147251419A99990932AF5441CDCCCC2C027251419A99996938AF5441B81E851BFE7151419A99993937AF5441A4703D6AF671514148E17A843AAF5441AE47E10AF571514152B81E953AAF544185EB5178F6715141B81E850B35AF54413D0AD703EA7151418FC2F57837AF54419A9999B9DD7151416666663639AF5441EC51B89EDC7151419A9999D93AAF54413D0AD763DB715141CDCCCC9C3CAF54415C8FC205DB715141D7A3703D3DAF54419A9999E9DA715141EC51B86E3EAF5441CDCCCCECDA715141F6285C6F3FAF5441D7A3701DDB715141F6285CCF3FAF5441EC51B86EDC715141EC51B84E40AF544100000000DD715141EC51B8BE40AF5441295C8F82DD715141EC51B87E41AF5441295C8F82E37151419A9999B941AF54410AD7A3E0EC715141295C8F2241AF544100000030EF71514114AE47E140AF544185EB5178F9715141A4703DEA3EAF5441D7A370ED00725141295C8F823CAF54410AD7A3B0047251413D0AD7F33DAF5441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000B81E851BFE7151419A99993937AF54417F413D6AF671514109F27B843AAF54417600E10AF571514164281F953AAF54419F6EA480F1715141E42D7A943BAF544196EDFF2FEF71514118B047E140AF54410FA00369EF715141906F62D640AF5441BEA5E1F1F2715141578F762940AF54417EEA5078F9715141E44D3CEA3EAF54411DA471ED00725141E2808E823CAF54410AD7A3B0047251413D0AD7F33DAF5441CDCCCCEC197251413D0AD7E338AF5441666666F619725141EC51B8EE36AF54419A9999791A7251415C8FC20531AF54419A999949147251419A99990932AF5441CDCCCC2C027251419A99996938AF5441B81E851BFE7151419A99993937AF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>871953 - 394329
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001B0000000AD7A3B0047251413D0AD7F33DAF5441CDCCCCEC197251413D0AD7E338AF5441666666F619725141EC51B8EE36AF54419A9999791A7251415C8FC20531AF54419A999949147251419A99990932AF5441CDCCCC2C027251419A99996938AF5441B81E851BFE7151419A99993937AF5441A4703D6AF671514148E17A843AAF5441AE47E10AF571514152B81E953AAF544185EB5178F6715141B81E850B35AF54413D0AD703EA7151418FC2F57837AF54419A9999B9DD7151416666663639AF5441EC51B89EDC7151419A9999D93AAF54413D0AD763DB715141CDCCCC9C3CAF54415C8FC205DB715141D7A3703D3DAF54419A9999E9DA715141EC51B86E3EAF5441CDCCCCECDA715141F6285C6F3FAF5441D7A3701DDB715141F6285CCF3FAF5441EC51B86EDC715141EC51B84E40AF544100000000DD715141EC51B8BE40AF5441295C8F82DD715141EC51B87E41AF5441295C8F82E37151419A9999B941AF54410AD7A3E0EC715141295C8F2241AF544100000030EF71514114AE47E140AF544185EB5178F9715141A4703DEA3EAF5441D7A370ED00725141295C8F823CAF54410AD7A3B0047251413D0AD7F33DAF5441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000B81E851BFE7151419A99993937AF54417F413D6AF671514109F27B843AAF54417600E10AF571514164281F953AAF54419F6EA480F1715141E42D7A943BAF544196EDFF2FEF71514118B047E140AF54410FA00369EF715141906F62D640AF5441BEA5E1F1F2715141578F762940AF54417EEA5078F9715141E44D3CEA3EAF54411DA471ED00725141E2808E823CAF54410AD7A3B0047251413D0AD7F33DAF5441CDCCCCEC197251413D0AD7E338AF5441666666F619725141EC51B8EE36AF54419A9999791A7251415C8FC20531AF54419A999949147251419A99990932AF5441CDCCCC2C027251419A99996938AF5441B81E851BFE7151419A99993937AF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>965531 - 2749854
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000290000006EA896A3653D51419247095251E35441D0DA7B5F6A3D514184D10BCE4EE35441E0643E016E3D5141BA576C9B4DE35441A9DEDD336F3D5141675567424DE35441BF3B995C703D5141675567424DE35441DBB73DE8713D51411B724B4C4DE35441BA3650B4723D5141D39D0A264DE354411AA099E6763D5141C487C62E4DE3544102E4F8C6783D5141EB59AB454BE35441C5EC00857D3D5141D13710C247E354417D6FDD7C803D514131F7FFAF44E35441D0F85711813D5141588CFAA943E3544153FA13E57D3D51410E6CF22042E35441CE5573907C3D5141358718E142E354410917F6787B3D5141F67267E444E3544151941981783D514124FE747347E35441BC161F52763D5141FD687A7948E3544118FDB465723D5141820D1BCE49E35441AB7C4C8A703D5141D31EC4774AE35441E9814AEF703D51419548326F4BE3544123188FDB6F3D51413087A9DF4BE3544143E6C99F6D3D5141E6967AC84CE3544172C654466C3D51415FEA24554DE3544127B1E3E96B3D5141244A3D7B4DE35441A031A4716A3D514155D813334CE354414DF9C0ED683D514177B109E54AE35441CDCCCCBC683D5141AE47E1BA4AE354419A27041E673D5141705367E849E35441113592BC643D5141F72326B348E35441DFCA9121613D514150CCC8DE46E35441CAF8BE3A603D514100F7A76946E35441F0931EA55D3D5141A737EC1945E35441E657A1235C3D5141C2BC4F5644E35441DE7465605A3D5141F00B357943E354417A1A6E22523D514103F53F6A3FE354418057F618463D514127A1176F38E354411666C63A483D514123DDAAA733E35441DECD8DD9413D5141D9217E2530E35441CC6667AB423D5141386ECCD038E35441EF4E0215443D514171C1DF7845E354416EA896A3653D51419247095251E35441
+</a>
+
+<b>
+0106000000010000000103000000010000002500000048E17A14463D51410000007032E354418FC2F5B8413D51413D0AD71330E35441D7A370CD413D5141E17A14CE30E354411F85EB71423D5141000000D036E354415C8FC215443D514114AE477145E3544152B81EC5523D51419A9999894AE354410AD7A3F05B3D51417B14AEB74DE3544100000010603D514148E17A344FE354410AD7A3A0653D51413D0AD75351E35441CDCCCCEC6B3D51419A9999794DE35441F6285CEF703D5141F6285C6F4BE35441C3F5287C713D5141000000A04CE354418FC2F5D8743D51411F85EB514DE35441000000F0763D514152B81E554DE35441F6285C2F783D5141B81E85FB4BE35441F6285CEF7C3D51418FC2F5D848E354411F85EBE1803D5141C3F5289C44E35441295C8FD27F3D5141C3F528CC43E354419A9999897E3D51410000004043E35441A4703D2A7D3D51418FC2F53842E35441E17A146E7C3D514185EB517842E354413D0AD7D37B3D5141C3F528DC42E354411F85EBC17A3D5141F6285C8F44E354413D0AD7D3783D51413D0AD7B346E354413D0AD7A3743D51411F85EB2149E354417B14AE97703D5141F6285C9F4AE35441CDCCCCCC703D5141E17A141E4BE35441000000A06B3D51417B14AE374DE35441CDCCCCBC683D5141AE47E1BA4AE35441666666F65B3D5141F6285C3F44E35441C3F5287C533D5141C3F5281C40E35441B81E85DB513D51415C8FC2453FE354413D0AD743463D5141B81E859B38E35441D7A370FD473D5141F6285C1F34E35441F6285C3F483D5141EC51B89E33E35441D7A370ED463D514114AE47E132E3544148E17A14463D51410000007032E35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>965531 - 5090462
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000290000006EA896A3653D51419247095251E35441D0DA7B5F6A3D514184D10BCE4EE35441E0643E016E3D5141BA576C9B4DE35441A9DEDD336F3D5141675567424DE35441BF3B995C703D5141675567424DE35441DBB73DE8713D51411B724B4C4DE35441BA3650B4723D5141D39D0A264DE354411AA099E6763D5141C487C62E4DE3544102E4F8C6783D5141EB59AB454BE35441C5EC00857D3D5141D13710C247E354417D6FDD7C803D514131F7FFAF44E35441D0F85711813D5141588CFAA943E3544153FA13E57D3D51410E6CF22042E35441CE5573907C3D5141358718E142E354410917F6787B3D5141F67267E444E3544151941981783D514124FE747347E35441BC161F52763D5141FD687A7948E3544118FDB465723D5141820D1BCE49E35441AB7C4C8A703D5141D31EC4774AE35441E9814AEF703D51419548326F4BE3544123188FDB6F3D51413087A9DF4BE3544143E6C99F6D3D5141E6967AC84CE3544172C654466C3D51415FEA24554DE3544127B1E3E96B3D5141244A3D7B4DE35441A031A4716A3D514155D813334CE354414DF9C0ED683D514177B109E54AE35441CDCCCCBC683D5141AE47E1BA4AE354419A27041E673D5141705367E849E35441113592BC643D5141F72326B348E35441DFCA9121613D514150CCC8DE46E35441CAF8BE3A603D514100F7A76946E35441F0931EA55D3D5141A737EC1945E35441E657A1235C3D5141C2BC4F5644E35441DE7465605A3D5141F00B357943E354417A1A6E22523D514103F53F6A3FE354418057F618463D514127A1176F38E354411666C63A483D514123DDAAA733E35441DECD8DD9413D5141D9217E2530E35441CC6667AB423D5141386ECCD038E35441EF4E0215443D514171C1DF7845E354416EA896A3653D51419247095251E35441
+</a>
+
+<b>
+0106000000010000000103000000010000002500000048E17A14463D51410000007032E354418FC2F5B8413D51413D0AD71330E35441D7A370CD413D5141E17A14CE30E354411F85EB71423D5141000000D036E354415C8FC215443D514114AE477145E3544152B81EC5523D51419A9999894AE354410AD7A3F05B3D51417B14AEB74DE3544100000010603D514148E17A344FE354410AD7A3A0653D51413D0AD75351E35441CDCCCCEC6B3D51419A9999794DE35441F6285CEF703D5141F6285C6F4BE35441C3F5287C713D5141000000A04CE354418FC2F5D8743D51411F85EB514DE35441000000F0763D514152B81E554DE35441F6285C2F783D5141B81E85FB4BE35441F6285CEF7C3D51418FC2F5D848E354411F85EBE1803D5141C3F5289C44E35441295C8FD27F3D5141C3F528CC43E354419A9999897E3D51410000004043E35441A4703D2A7D3D51418FC2F53842E35441E17A146E7C3D514185EB517842E354413D0AD7D37B3D5141C3F528DC42E354411F85EBC17A3D5141F6285C8F44E354413D0AD7D3783D51413D0AD7B346E354413D0AD7A3743D51411F85EB2149E354417B14AE97703D5141F6285C9F4AE35441CDCCCCCC703D5141E17A141E4BE35441000000A06B3D51417B14AE374DE35441CDCCCCBC683D5141AE47E1BA4AE35441666666F65B3D5141F6285C3F44E35441C3F5287C533D5141C3F5281C40E35441B81E85DB513D51415C8FC2453FE354413D0AD743463D5141B81E859B38E35441D7A370FD473D5141F6285C1F34E35441F6285C3F483D5141EC51B89E33E35441D7A370ED463D514114AE47E132E3544148E17A14463D51410000007032E35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>99482 - 3368419
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A0000007B14AEE75B8450415C8FC205BE1B5441713D0AD74784504100000040CB1B5441E17A143E4C845041295C8FD2D61B5441D7A3709D4E845041EC51B8AED61B5441D7A370FD52845041713D0A77D61B54415C8FC2555984504152B81E85D61B5441F6285CDF5D845041CDCCCC2CD71B5441E17A148E5F8450417B14AE47D71B544185EB51285E845041C3F5289CCD1B54417B14AEE75B8450415C8FC205BE1B5441
+</a>
+
+<b>
+010600000001000000010300000001000000340000005D33B6164B8450416F27BC1BC91B5441318AA1E6498450418E5B64E0C71B5441758EDFFC4A8450410577C2B8C61B5441CA00CBAC4F845041CC06F693C21B54410ECC2D8752845041FA0C85BABE1B544143BB6A665684504153CD7E62B91B5441BB1E7D4857845041084A69D4B51B544188F6CBEA57845041D96D755EB11B5441DE7B9946598450418D7ED1C1AA1B5441C7E7C0975984504181ECB0E0A81B54417286CD405984504186DB1F45A71B544188F6CBEA5784504185B74540A61B544192B0CFAE53845041CA97A951A61B5441491C904251845041AB82415DA61B5441E84C560F50845041AB82415DA61B5441D6CBC6C94F845041E53C139CA71B5441E5287C0A4F845041B46DA7E3AB1B54412F1C29854E8450411661BB1BAE1B5441F04E0EDD4D845041C16B56D3B01B54418F7FD4A94C8450411202B5CAB31B54415057BC8E4A845041FEC8D98EB51B5441556A05F84984504148E0600EB61B5441A44C21D747845041FF34689DB81B54416E24A2FE428450411EEBC940BE1B5441C44C21D7478450410C3E4E3ACB1B54417A01CFBA4884504187F7D8A9CA1B5441713D0AD74784504100000040CB1B5441214C9FBB47845041905DF3F7CA1B5441A108EFE64684504184307380CB1B54414670CE5C4B845041D23F39FED61B5441D7A3709D4E845041EC51B8AED61B5441D7A370FD52845041713D0A77D61B54415C8FC2555984504152B81E85D61B5441F6285CDF5D845041CDCCCC2CD71B5441E17A148E5F8450417B14AE47D71B5441713D0AE7618450411F85EBA1D71B544148E17AD468845041C3F5289CD91B5441E17A14EE6C84504185EB5178D91B544114AE4741728450415C8FC2C5D71B5441C3F5284C77845041B81E85FBD51B54415C8FC28578845041C3F5287CD31B54417B14AEA779845041E17A143ECF1B544152B81E2578845041AE47E1BAC91B54413D0AD7B379845041A4703D4AC61B5441A4703DBA7B845041F6285C1FC41B544185EB51487D84504148E17A54C21B5441AE47E1EA7B84504152B81EA5BF1B54413D0AD7B379845041D7A3700DBD1B54418FC2F5C87784504133333343BA1B5441A4703DCA69845041B81E85ABBA1B54417B14AEE75B8450415C8FC205BE1B54415D33B6164B8450416F27BC1BC91B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235630 - 968954
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C000000295C8F6276A35141F6285C9FFA9E5441EC51B84E73A351418FC2F598FB9E54419A99994972A351415C8FC2F5FB9E5441000000C074A3514114AE47C10A9F544152B81E4577A35141295C8FE2199F5441713D0A577AA3514148E17A441B9F54411F85EB917BA3514152B81E851C9F54413D0AD7137CA35141F6285CCF1C9F54417B14AEC780A3514133333373209F54413D0AD7C37DA35141A4703D5A0E9F5441666666467AA351413D0AD763F99E5441295C8F6276A35141F6285C9FFA9E5441
+</a>
+
+<b>
+0106000000010000000103000000010000001600000084953D4F6AA3514192A9B564FF9E544170C3D78572A35141F5CBB45FFD9E54412385B64972A35141B15070F6FB9E5441ADCB1F146EA3514164B26076FD9E54419CE74D076AA35141CE6795A9FE9E5441B81E85CB62A351410AD7A3D0009F544148E17A8459A35141B81E859B039F54413D0AD7935AA351410AD7A3100D9F5441666666F65AA35141295C8F52189F5441AE47E14A64A3514166666656179F5441B81E85AB65A351417B14AEE7169F5441C3F5288C66A3514114AE47A1169F5441922C568D6BA351414F78666B169F5441FBB3DFAE6BA351418422226E169F544186D67CC26BA35141F82CBFA7149F544187A942756DA3514181B951DF149F54417C97B2766DA35141F9975FBA169F5441F4AB60BE71A35141ADB6E465179F54411330CF4477A35141A38A09E2199F544188F3E2B276A3514102C0F073169F5441F882042F6EA3514126F4EE3C169F544184953D4F6AA3514192A9B564FF9E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235738 - 222990
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000300000074000000295C8F6293A2514114AE47816DA154416666660691A2514185EB51186EA154417B14AE478DA251413D0AD73370A15441D7A3707D8AA251416666660671A154419A9999698AA251415C8FC2B572A15441E17A146E8DA25141CDCCCC8C74A15441EC51B8FE8EA251419A99991976A15441EC51B8EE93A2514148E17A8476A15441AE47E11A9AA251415C8FC2A578A1544152B81E75A0A251410AD7A30078A15441EC51B8CEA1A251415C8FC21579A1544185EB5188A4A25141AE47E13A7CA15441B81E858BA5A251419A9999C97EA15441A4703D8AA4A25141C3F528DC7FA15441C3F5287CA5A2514114AE47F181A15441AE47E19AA0A251413333334384A154415C8FC2859EA25141295C8FD281A15441A4703D3A9AA251413D0AD75383A154410000005096A2514114AE47D17DA154418FC2F59895A251419A9999197BA15441CDCCCC1C8FA251419A99999978A154415C8FC2F586A2514185EB51B877A15441EC51B89E82A2514185EB51087AA15441000000A089A251413333337382A15441A4703D8A92A251419A99996990A154415C8FC27598A251415C8FC2C596A1544148E17AE49AA25141000000809FA1544185EB51D89AA25141713D0A27A3A154415C8FC2B599A25141AE47E1AAAFA15441F6285C7F9AA2514185EB5198B2A15441666666269EA25141EC51B86EB9A15441713D0A779CA2514148E17A34C0A1544114AE47D1A0A251413D0AD703C4A1544100000060A1A25141713D0A87C4A154413D0AD7A3A3A25141D7A370BDC2A154418FC2F508A5A251413D0AD763C4A154417B14AEA7A6A25141E17A141EC3A1544114AE47C1A5A25141B81E85FBC1A154410AD7A3A0A7A25141295C8FD2BFA15441B81E85CBA6A25141AE47E1FABDA15441A4703D6AA4A251415C8FC255BEA15441E17A141EA4A25141295C8F62BDA154417B14AE17A2A251411F85EB31BDA1544148E17AE49FA25141666666D6B6A15441F6285CFFA3A25141C3F5282CB5A15441AE47E15AA4A251410AD7A310B6A1544152B81E05A6A25141F6285C2FB6A1544114AE4791A7A25141EC51B86EB7A1544152B81E85A8A25141AE47E1FAB8A154410AD7A3E0A8A25141B81E856BBBA15441000000F0A8A251413D0AD743BDA15441713D0AD7AAA2514148E17A74BEA1544148E17AC4AEA251415C8FC215BDA154418FC2F5E8B0A251418FC2F5D8BCA154418FC2F5D8B5A25141A4703D8ABBA1544133333353B6A2514100000050BCA1544100000090B6A251418FC2F558BFA15441AE47E14AB5A251413D0AD783C0A1544133333353ACA25141F6285C0FC3A1544114AE4701ADA25141713D0AB7C6A15441713D0AC7ABA2514166666686C7A1544185EB51B8AFA25141B81E850BC9A154418FC2F598AEA251410AD7A3B0CBA15441295C8F22B3A25141713D0A97CDA15441F6285C2FB8A25141F6285C4FD0A154415C8FC205BBA25141295C8F62D2A15441CDCCCC5CBCA25141713D0A67D2A15441D7A3707DBDA25141295C8F02D2A15441E17A14AEC1A251411F85EB81CFA15441E17A14EEC2A251419A999929CEA154410AD7A3E0BFA251417B14AEC7C5A15441CDCCCCDCBDA25141F6285CAFC0A1544100000060BBA2514133333363BAA154419A999909B7A2514152B81EE5BBA1544152B81E25B6A25141C3F5281CBAA15441AE47E13AB3A2514148E17AB4BAA1544152B81E35B1A25141EC51B8FEB4A154413D0AD7A3B7A25141EC51B86EB2A15441E17A14FEB4A25141C3F5287CADA15441CDCCCC2CB0A25141D7A370DD9EA15441713D0A87B9A251418FC2F54898A15441666666D6B8A251410000006096A15441CDCCCC6CB7A251413D0AD77398A15441CDCCCC0CB6A2514148E17AF499A1544133333363B4A251419A9999799BA154413D0AD733B1A2514148E17AC49DA154415C8FC215B0A25141A4703DAA9EA1544114AE47C1AFA25141EC51B8EE9DA15441666666F6B1A25141A4703D8A9CA154417B14AE07B4A2514148E17AF49AA15441666666B6B5A25141AE47E14A99A15441E17A147EB7A251411F85EB0197A15441E17A148EB8A251416666669695A15441A4703D5AB6A25141A4703D7A8FA154413D0AD783B2A25141C3F5283C91A15441EC51B86EB0A251415C8FC2B591A1544114AE4741B0A2514114AE47D190A15441E17A147EB0A25141C3F5287C8DA15441A4703D1AADA251415C8FC2C587A15441B81E85EBB0A251410AD7A3E083A15441CDCCCCDCAFA25141EC51B88E81A154415C8FC275AFA25141713D0A1781A15441713D0AF7ACA251418FC2F5087DA15441E17A143EACA25141333333937BA1544152B81EE5ABA2514114AE47417AA15441F6285CEFABA2514152B81E0579A1544100000000ACA251418FC2F5B878A1544100000060ADA251416666666674A15441A4703DCAACA251413D0AD76373A154417B14AE97A7A2514185EB51686AA1544100000090A5A251413D0AD74367A15441EC51B8EEA0A251418FC2F50865A15441A4703DDA9BA25141F6285CDF64A15441C3F528BC98A25141C3F528AC66A154410AD7A32095A25141C3F5283C69A15441295C8F6293A2514114AE47816DA154410D000000C3F5287CA5A251413333332393A15441713D0AE7A5A25141C3F528AC93A154413D0AD7A3A8A25141AE47E1CA93A154418FC2F578A9A2514152B81E0593A154411F85EB01AAA2514152B81E0593A15441295C8FF2A9A25141C3F528AC93A1544185EB5188A9A2514148E17A4494A15441000000F0A8A25141713D0A5795A1544152B81E05A6A2514152B81E7595A15441713D0AA7A4A2514148E17A8495A154411F85EBD1A3A251411F85EB8194A15441000000F0A3A25141D7A3709D93A15441C3F5287CA5A251413333332393A154410C000000295C8F22A7A25141D7A3708DAAA15441713D0AD7A8A25141295C8F42A8A15441F6285C5FA9A25141000000E0A6A15441295C8F62AAA2514114AE4751A4A15441AE47E1EAAAA25141333333A3A4A1544148E17AA4A9A25141F6285C3FA8A15441C3F5281CA6A25141CDCCCC4CADA15441295C8FB2A4A25141E17A148EB1A1544185EB5118A4A25141F6285C5FB1A15441F6285C4FA4A251415C8FC225B0A15441F6285CBFA5A251415C8FC2E5ACA15441295C8F22A7A25141D7A3708DAAA15441
+</a>
+
+<b>
+0106000000010000000103000000010000005400000014AE4741B0A2514114AE47D190A154413E70FE97AFA25141F8C0F65B8DA15441A4703D1AADA251415C8FC2C587A154416826D261AFA251412FE9547285A154416826D261AFA25141F9F4F9F684A1544125689FBAAFA2514180715F4584A154414E2BA04EB0A2514145EDC49383A154411AF5B36BB0A2514126683AC882A154418BFD256BB0A251415AF302C782A1544184D6E36AB0A251415BD271C682A15441F56D216AB0A251416E51C7C482A1544157653844AFA251419EE7F6A682A15441B05F6A57AEA25141D81E282681A15441919C69C3ADA251419D9A8D7480A1544168D9682FADA25141B94125FB7EA154415718CF11ADA251413FBE8A497EA1544192C7B64DADA25141EEB1D3957DA15441AECCAA4CADA251410D2920947DA1544192721E3DADA251416817DB7A7DA15441E4951E33ADA251419BAC9A6A7DA1544179C0362BADA251410470C15D7DA154411B3D0AF7ACA2514144C2F5087DA15441C8504287ACA2514115CF13277CA15441E17A143EACA25141333333937BA1544152B81EE5ABA2514114AE47417AA154415BB853E5ABA25141F94CE33A7AA154413032DEE5ABA2514181CC2F2A7AA15441AE19327FAAA25141FAC2B79A79A15441D516CB08AAA251413D34810F77A15441D19B65BAAAA25141BFA44A8474A154416F3D9F07ACA251416C957E1372A154412E7EDD15ABA25141CD92AE7170A154414CC35399AAA25141E475739A6FA15441210F96A5A8A25141C57EA80A6EA154417082C690A6A25141DA6D3E446BA154417082C690A6A25141DC6609E169A1544147725CCAA3A251412CDA39CC67A15441765C2417A0A25141E45338A466A15441A1CB86159DA25141E8CE9DF265A154410F0B547D9AA251413D0FD1A865A1544183BC431999A25141B119677666A1544127D330BC98A25141446B24AC66A154413DFD544F97A2514169854EAF67A15441C78CA4BC97A251414F43EFBA6EA154412D4E0CDD95A25141B578864C70A1544144A5D35C91A251418CD333496EA15441C6B5CC738EA25141C993F28A6FA154417B14AE478DA251413D0AD73370A154414C0B0D298CA25141F6CC568870A1544183032FA98CA25141A0CA428472A154418E8C38F891A251413AC0804175A1544189277D2896A25141952B3E9F75A15441CA56B0709CA251411B74B43878A154414B94390FA0A2514144515C4577A15441CDEEC118A3A25141DA394FFC77A15441B48D626AA8A251410AD8EF4D7DA15441D9322AC8A4A2514136BE9F6480A15441C3F5287CA5A2514114AE47F181A15441E7B94F1AA5A251410355CC1F82A154413FAE47B1A5A25141D77A144E83A15441BE0AD7F3A7A25141B6AE477189A15441715B7AB5A9A251418EB6E4D08DA1544136A15A6CAAA2514152646D328EA154411F9076F2AAA251415A4B3F6390A15441E9767EB5AAA25141CB7FCE0B91A154411B3D0AF7ACA2514138CDCCBC97A15441E5C12D3DAFA2514172FB65C99CA1544135AE47C1AFA25141D651B8EE9DA154416601CBFBAFA25141E54CCFC99DA15441014515A1B0A25141414A8B619DA154410F4B3D9AB1A25141971060C49CA154415CFA9F29B0A2514141A5E3D89AA15441D102D58CB1A25141E697E08898A15441E78B3D2BB3A25141AB1346D797A154417FE29B54B5A25141243582AB99A15441DB6566B6B5A251419947E14A99A15441227B147EB7A251419E84EB0197A15441088C3999B7A25141DD4BA4DD96A1544141282F9EB7A25141E57F03D796A154418C7EFA8DB8A251410D501E9695A15441EFD7365AB6A251410976407A8FA154413D0AD783B2A25141C3F5283C91A15441EC51B86EB0A251415C8FC2B591A1544114AE4741B0A2514114AE47D190A15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235738 - 360674
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000300000074000000295C8F6293A2514114AE47816DA154416666660691A2514185EB51186EA154417B14AE478DA251413D0AD73370A15441D7A3707D8AA251416666660671A154419A9999698AA251415C8FC2B572A15441E17A146E8DA25141CDCCCC8C74A15441EC51B8FE8EA251419A99991976A15441EC51B8EE93A2514148E17A8476A15441AE47E11A9AA251415C8FC2A578A1544152B81E75A0A251410AD7A30078A15441EC51B8CEA1A251415C8FC21579A1544185EB5188A4A25141AE47E13A7CA15441B81E858BA5A251419A9999C97EA15441A4703D8AA4A25141C3F528DC7FA15441C3F5287CA5A2514114AE47F181A15441AE47E19AA0A251413333334384A154415C8FC2859EA25141295C8FD281A15441A4703D3A9AA251413D0AD75383A154410000005096A2514114AE47D17DA154418FC2F59895A251419A9999197BA15441CDCCCC1C8FA251419A99999978A154415C8FC2F586A2514185EB51B877A15441EC51B89E82A2514185EB51087AA15441000000A089A251413333337382A15441A4703D8A92A251419A99996990A154415C8FC27598A251415C8FC2C596A1544148E17AE49AA25141000000809FA1544185EB51D89AA25141713D0A27A3A154415C8FC2B599A25141AE47E1AAAFA15441F6285C7F9AA2514185EB5198B2A15441666666269EA25141EC51B86EB9A15441713D0A779CA2514148E17A34C0A1544114AE47D1A0A251413D0AD703C4A1544100000060A1A25141713D0A87C4A154413D0AD7A3A3A25141D7A370BDC2A154418FC2F508A5A251413D0AD763C4A154417B14AEA7A6A25141E17A141EC3A1544114AE47C1A5A25141B81E85FBC1A154410AD7A3A0A7A25141295C8FD2BFA15441B81E85CBA6A25141AE47E1FABDA15441A4703D6AA4A251415C8FC255BEA15441E17A141EA4A25141295C8F62BDA154417B14AE17A2A251411F85EB31BDA1544148E17AE49FA25141666666D6B6A15441F6285CFFA3A25141C3F5282CB5A15441AE47E15AA4A251410AD7A310B6A1544152B81E05A6A25141F6285C2FB6A1544114AE4791A7A25141EC51B86EB7A1544152B81E85A8A25141AE47E1FAB8A154410AD7A3E0A8A25141B81E856BBBA15441000000F0A8A251413D0AD743BDA15441713D0AD7AAA2514148E17A74BEA1544148E17AC4AEA251415C8FC215BDA154418FC2F5E8B0A251418FC2F5D8BCA154418FC2F5D8B5A25141A4703D8ABBA1544133333353B6A2514100000050BCA1544100000090B6A251418FC2F558BFA15441AE47E14AB5A251413D0AD783C0A1544133333353ACA25141F6285C0FC3A1544114AE4701ADA25141713D0AB7C6A15441713D0AC7ABA2514166666686C7A1544185EB51B8AFA25141B81E850BC9A154418FC2F598AEA251410AD7A3B0CBA15441295C8F22B3A25141713D0A97CDA15441F6285C2FB8A25141F6285C4FD0A154415C8FC205BBA25141295C8F62D2A15441CDCCCC5CBCA25141713D0A67D2A15441D7A3707DBDA25141295C8F02D2A15441E17A14AEC1A251411F85EB81CFA15441E17A14EEC2A251419A999929CEA154410AD7A3E0BFA251417B14AEC7C5A15441CDCCCCDCBDA25141F6285CAFC0A1544100000060BBA2514133333363BAA154419A999909B7A2514152B81EE5BBA1544152B81E25B6A25141C3F5281CBAA15441AE47E13AB3A2514148E17AB4BAA1544152B81E35B1A25141EC51B8FEB4A154413D0AD7A3B7A25141EC51B86EB2A15441E17A14FEB4A25141C3F5287CADA15441CDCCCC2CB0A25141D7A370DD9EA15441713D0A87B9A251418FC2F54898A15441666666D6B8A251410000006096A15441CDCCCC6CB7A251413D0AD77398A15441CDCCCC0CB6A2514148E17AF499A1544133333363B4A251419A9999799BA154413D0AD733B1A2514148E17AC49DA154415C8FC215B0A25141A4703DAA9EA1544114AE47C1AFA25141EC51B8EE9DA15441666666F6B1A25141A4703D8A9CA154417B14AE07B4A2514148E17AF49AA15441666666B6B5A25141AE47E14A99A15441E17A147EB7A251411F85EB0197A15441E17A148EB8A251416666669695A15441A4703D5AB6A25141A4703D7A8FA154413D0AD783B2A25141C3F5283C91A15441EC51B86EB0A251415C8FC2B591A1544114AE4741B0A2514114AE47D190A15441E17A147EB0A25141C3F5287C8DA15441A4703D1AADA251415C8FC2C587A15441B81E85EBB0A251410AD7A3E083A15441CDCCCCDCAFA25141EC51B88E81A154415C8FC275AFA25141713D0A1781A15441713D0AF7ACA251418FC2F5087DA15441E17A143EACA25141333333937BA1544152B81EE5ABA2514114AE47417AA15441F6285CEFABA2514152B81E0579A1544100000000ACA251418FC2F5B878A1544100000060ADA251416666666674A15441A4703DCAACA251413D0AD76373A154417B14AE97A7A2514185EB51686AA1544100000090A5A251413D0AD74367A15441EC51B8EEA0A251418FC2F50865A15441A4703DDA9BA25141F6285CDF64A15441C3F528BC98A25141C3F528AC66A154410AD7A32095A25141C3F5283C69A15441295C8F6293A2514114AE47816DA154410D000000C3F5287CA5A251413333332393A15441713D0AE7A5A25141C3F528AC93A154413D0AD7A3A8A25141AE47E1CA93A154418FC2F578A9A2514152B81E0593A154411F85EB01AAA2514152B81E0593A15441295C8FF2A9A25141C3F528AC93A1544185EB5188A9A2514148E17A4494A15441000000F0A8A25141713D0A5795A1544152B81E05A6A2514152B81E7595A15441713D0AA7A4A2514148E17A8495A154411F85EBD1A3A251411F85EB8194A15441000000F0A3A25141D7A3709D93A15441C3F5287CA5A251413333332393A154410C000000295C8F22A7A25141D7A3708DAAA15441713D0AD7A8A25141295C8F42A8A15441F6285C5FA9A25141000000E0A6A15441295C8F62AAA2514114AE4751A4A15441AE47E1EAAAA25141333333A3A4A1544148E17AA4A9A25141F6285C3FA8A15441C3F5281CA6A25141CDCCCC4CADA15441295C8FB2A4A25141E17A148EB1A1544185EB5118A4A25141F6285C5FB1A15441F6285C4FA4A251415C8FC225B0A15441F6285CBFA5A251415C8FC2E5ACA15441295C8F22A7A25141D7A3708DAAA15441
+</a>
+
+<b>
+0106000000010000000103000000010000005400000014AE4741B0A2514114AE47D190A154413E70FE97AFA25141F8C0F65B8DA15441A4703D1AADA251415C8FC2C587A154416826D261AFA251412FE9547285A154416826D261AFA25141F9F4F9F684A1544125689FBAAFA2514180715F4584A154414E2BA04EB0A2514145EDC49383A154411AF5B36BB0A2514126683AC882A154418BFD256BB0A251415AF302C782A1544184D6E36AB0A251415BD271C682A15441F56D216AB0A251416E51C7C482A1544157653844AFA251419EE7F6A682A15441B05F6A57AEA25141D81E282681A15441919C69C3ADA251419D9A8D7480A1544168D9682FADA25141B94125FB7EA154415718CF11ADA251413FBE8A497EA1544192C7B64DADA25141EEB1D3957DA15441AECCAA4CADA251410D2920947DA1544192721E3DADA251416817DB7A7DA15441E4951E33ADA251419BAC9A6A7DA1544179C0362BADA251410470C15D7DA154411B3D0AF7ACA2514144C2F5087DA15441C8504287ACA2514115CF13277CA15441E17A143EACA25141333333937BA1544152B81EE5ABA2514114AE47417AA154415BB853E5ABA25141F94CE33A7AA154413032DEE5ABA2514181CC2F2A7AA15441AE19327FAAA25141FAC2B79A79A15441D516CB08AAA251413D34810F77A15441D19B65BAAAA25141BFA44A8474A154416F3D9F07ACA251416C957E1372A154412E7EDD15ABA25141CD92AE7170A154414CC35399AAA25141E475739A6FA15441210F96A5A8A25141C57EA80A6EA154417082C690A6A25141DA6D3E446BA154417082C690A6A25141DC6609E169A1544147725CCAA3A251412CDA39CC67A15441765C2417A0A25141E45338A466A15441A1CB86159DA25141E8CE9DF265A154410F0B547D9AA251413D0FD1A865A1544183BC431999A25141B119677666A1544127D330BC98A25141446B24AC66A154413DFD544F97A2514169854EAF67A15441C78CA4BC97A251414F43EFBA6EA154412D4E0CDD95A25141B578864C70A1544144A5D35C91A251418CD333496EA15441C6B5CC738EA25141C993F28A6FA154417B14AE478DA251413D0AD73370A154414C0B0D298CA25141F6CC568870A1544183032FA98CA25141A0CA428472A154418E8C38F891A251413AC0804175A1544189277D2896A25141952B3E9F75A15441CA56B0709CA251411B74B43878A154414B94390FA0A2514144515C4577A15441CDEEC118A3A25141DA394FFC77A15441B48D626AA8A251410AD8EF4D7DA15441D9322AC8A4A2514136BE9F6480A15441C3F5287CA5A2514114AE47F181A15441E7B94F1AA5A251410355CC1F82A154413FAE47B1A5A25141D77A144E83A15441BE0AD7F3A7A25141B6AE477189A15441715B7AB5A9A251418EB6E4D08DA1544136A15A6CAAA2514152646D328EA154411F9076F2AAA251415A4B3F6390A15441E9767EB5AAA25141CB7FCE0B91A154411B3D0AF7ACA2514138CDCCBC97A15441E5C12D3DAFA2514172FB65C99CA1544135AE47C1AFA25141D651B8EE9DA154416601CBFBAFA25141E54CCFC99DA15441014515A1B0A25141414A8B619DA154410F4B3D9AB1A25141971060C49CA154415CFA9F29B0A2514141A5E3D89AA15441D102D58CB1A25141E697E08898A15441E78B3D2BB3A25141AB1346D797A154417FE29B54B5A25141243582AB99A15441DB6566B6B5A251419947E14A99A15441227B147EB7A251419E84EB0197A15441088C3999B7A25141DD4BA4DD96A1544141282F9EB7A25141E57F03D796A154418C7EFA8DB8A251410D501E9695A15441EFD7365AB6A251410976407A8FA154413D0AD783B2A25141C3F5283C91A15441EC51B86EB0A251415C8FC2B591A1544114AE4741B0A2514114AE47D190A15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235745 - 223003
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000E0000000000009096A25141666666F6C9A154410AD7A3E090A25141D7A3708DCAA15441EC51B87E8BA251410AD7A3F0CBA154419A99992986A25141D7A370ADCEA154410000004082A2514166666636D1A154418FC2F57881A25141AE47E1EAD1A15441AE47E17A85A25141AE47E1DAD4A15441AE47E15A8AA25141AE47E15AD7A15441AE47E19A91A25141AE47E1BAD8A15441AE47E14A95A25141AE47E1EADAA1544152B81ED597A251413D0AD753DEA1544185EB514898A25141333333D3DDA15441713D0AE79CA25141713D0AA7D8A154410000009096A25141666666F6C9A15441
+</a>
+
+<b>
+01060000000100000001030000000100000017000000C2390AE79CA2514191410AA7D8A15441E1FFFF8F96A25141696666F6C9A154410AD7A3E090A25141D7A3708DCAA15441EC51B87E8BA251410AD7A3F0CBA15441D744AE5D87A251413981480FCEA15441A499992986A25141E2A370ADCEA154412C56E22283A25141D6ACAFB7D0A1544138BA155382A25141C1D2082AD1A154418FC2F57881A25141AE47E1EAD1A15441AE47E17A85A25141AE47E1DAD4A15441D5AE89F887A251419F4EE221D6A1544141D4AE638AA2514160AD8C5CD7A1544107F41E6A8AA25141A440C55DD7A15441F62686DF8BA25141279E96A4D7A15441AE47E19A91A25141AE47E1BAD8A15441028A8BD191A2514186F54EDBD8A154419CFC771D92A2514181E993EBD8A15441ADB1774394A25141274E9E4EDAA15441AE47E14A95A25141AE47E1EADAA15441209EFEC296A25141C03DD2E3DCA15441D61F08FF96A25141421B6C34DDA15441344843D297A2514160801245DEA15441C2390AE79CA2514191410AA7D8A15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235745 - 353651
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000E0000000000009096A25141666666F6C9A154410AD7A3E090A25141D7A3708DCAA15441EC51B87E8BA251410AD7A3F0CBA154419A99992986A25141D7A370ADCEA154410000004082A2514166666636D1A154418FC2F57881A25141AE47E1EAD1A15441AE47E17A85A25141AE47E1DAD4A15441AE47E15A8AA25141AE47E15AD7A15441AE47E19A91A25141AE47E1BAD8A15441AE47E14A95A25141AE47E1EADAA1544152B81ED597A251413D0AD753DEA1544185EB514898A25141333333D3DDA15441713D0AE79CA25141713D0AA7D8A154410000009096A25141666666F6C9A15441
+</a>
+
+<b>
+01060000000100000001030000000100000017000000C2390AE79CA2514191410AA7D8A15441E1FFFF8F96A25141696666F6C9A154410AD7A3E090A25141D7A3708DCAA15441EC51B87E8BA251410AD7A3F0CBA15441D744AE5D87A251413981480FCEA15441A499992986A25141E2A370ADCEA154412C56E22283A25141D6ACAFB7D0A1544138BA155382A25141C1D2082AD1A154418FC2F57881A25141AE47E1EAD1A15441AE47E17A85A25141AE47E1DAD4A15441D5AE89F887A251419F4EE221D6A1544141D4AE638AA2514160AD8C5CD7A1544107F41E6A8AA25141A440C55DD7A15441F62686DF8BA25141279E96A4D7A15441AE47E19A91A25141AE47E1BAD8A15441028A8BD191A2514186F54EDBD8A154419CFC771D92A2514181E993EBD8A15441ADB1774394A25141274E9E4EDAA15441AE47E14A95A25141AE47E1EADAA15441209EFEC296A25141C03DD2E3DCA15441D61F08FF96A25141421B6C34DDA15441344843D297A2514160801245DEA15441C2390AE79CA2514191410AA7D8A15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>100197 - 3368419
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000012000000A4703DCA69845041B81E85ABBA1B5441000000106A8450411F85EB01B51B5441E17A141E678450415C8FC2A5A11B54411F85EBE1628450419A9999A9A21B5441E17A14EE5A8450413D0AD783A41B54411F85EB6158845041F6285CCFA11B5441F6285C3F558450415C8FC225A31B5441B81E855B508450417B14AEE7A41B54413D0AD7D34F8450411F85EB41A71B5441000000004F8450413D0AD7D3AB1B544148E17AC44D8450417B14AEC7B01B5441666666964C84504148E17AC4B31B54417B14AEE749845041AE47E1FAB51B544148E17A84468450418FC2F508BA1B54411F85EBE1428450418FC2F538BE1B5441713D0AD74784504100000040CB1B54417B14AEE75B8450415C8FC205BE1B5441A4703DCA69845041B81E85ABBA1B5441
+</a>
+
+<b>
+010600000001000000010300000001000000340000005D33B6164B8450416F27BC1BC91B5441318AA1E6498450418E5B64E0C71B5441758EDFFC4A8450410577C2B8C61B5441CA00CBAC4F845041CC06F693C21B54410ECC2D8752845041FA0C85BABE1B544143BB6A665684504153CD7E62B91B5441BB1E7D4857845041084A69D4B51B544188F6CBEA57845041D96D755EB11B5441DE7B9946598450418D7ED1C1AA1B5441C7E7C0975984504181ECB0E0A81B54417286CD405984504186DB1F45A71B544188F6CBEA5784504185B74540A61B544192B0CFAE53845041CA97A951A61B5441491C904251845041AB82415DA61B5441E84C560F50845041AB82415DA61B5441D6CBC6C94F845041E53C139CA71B5441E5287C0A4F845041B46DA7E3AB1B54412F1C29854E8450411661BB1BAE1B5441F04E0EDD4D845041C16B56D3B01B54418F7FD4A94C8450411202B5CAB31B54415057BC8E4A845041FEC8D98EB51B5441556A05F84984504148E0600EB61B5441A44C21D747845041FF34689DB81B54416E24A2FE428450411EEBC940BE1B5441C44C21D7478450410C3E4E3ACB1B54417A01CFBA4884504187F7D8A9CA1B5441713D0AD74784504100000040CB1B5441214C9FBB47845041905DF3F7CA1B5441A108EFE64684504184307380CB1B54414670CE5C4B845041D23F39FED61B5441D7A3709D4E845041EC51B8AED61B5441D7A370FD52845041713D0A77D61B54415C8FC2555984504152B81E85D61B5441F6285CDF5D845041CDCCCC2CD71B5441E17A148E5F8450417B14AE47D71B5441713D0AE7618450411F85EBA1D71B544148E17AD468845041C3F5289CD91B5441E17A14EE6C84504185EB5178D91B544114AE4741728450415C8FC2C5D71B5441C3F5284C77845041B81E85FBD51B54415C8FC28578845041C3F5287CD31B54417B14AEA779845041E17A143ECF1B544152B81E2578845041AE47E1BAC91B54413D0AD7B379845041A4703D4AC61B5441A4703DBA7B845041F6285C1FC41B544185EB51487D84504148E17A54C21B5441AE47E1EA7B84504152B81EA5BF1B54413D0AD7B379845041D7A3700DBD1B54418FC2F5C87784504133333343BA1B5441A4703DCA69845041B81E85ABBA1B54417B14AEE75B8450415C8FC205BE1B54415D33B6164B8450416F27BC1BC91B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>100814 - 5323389
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000280000001F85EBC1BD91504114AE47119E235441A4703D0ABD915041E17A145E9C235441666666F6BC91504114AE47D19A2354411F85EB21BC915041E17A14EE982354418FC2F578BC915041000000709823544148E17A64BC9150419A9999B997235441CDCCCC7CBB915041EC51B8FE9623544185EB51D8BA91504185EB514896235441295C8F72BA9150416666662695235441D7A3702DBA9150413D0AD7C3932354415C8FC205BA915041000000D092235441F6285CEFB9915041C3F5281C92235441E17A140EBA915041D7A3708D912354415C8FC2A5BA91504152B81ED58E2354415C8FC255BB915041E17A14FE8B2354410AD7A300BC9150419A99994989235441C3F5281CBD915041A4703D1A862354413D0AD753B091504152B81EF58323544166666656A79150413D0AD77382235441CDCCCC1CA7915041B81E856B822354410AD7A370A5915041CDCCCC6C892354418FC2F528A3915041295C8F4292235441AE47E10AA19150415C8FC2559A2354415C8FC2959D915041333333039F2354415C8FC2E5999150419A9999D9A223544114AE478197915041C3F5286CA4235441000000409991504166666656A5235441EC51B85E9B9150410AD7A320A6235441F6285CCF9D9150419A9999B9A62354418FC2F568AA915041295C8FF2A8235441295C8F02B89150410AD7A360AB23544133333363B99150410AD7A380AB235441F6285CAFBA91504100000070AB2354415C8FC215BC915041295C8F32AB235441295C8F72BD91504114AE47C1AA2354410AD7A360BB915041D7A3701DA6235441A4703D9ABB91504100000030A4235441F6285CCFBA9150419A999999A223544152B81E65BA915041EC51B8FEA12354411F85EBC1BD91504114AE47119E235441
+</a>
+
+<b>
+0106000000010000000103000000010000000F0000004B14C9C6B8915041CD469A4AAA2354417D0E2BD4B891504153F9294CAA235441906DE4A6B8915041A600F95BAB235441D77DAFE1BA915041CB6D5F67AB235441422EEF6CBD9150416F681BC3AA235441517EB162BB91504191EA0A22A6235441D715A099BB91504150014435A423544114EEEE22BA9150413A4797E4A1235441C5EE1130B9915041DF120CF5A32354414F596328B9915041391FDA54A42354415821E114B9915041753B9AD2A523544115B87FDBB8915041307DC413A823544103BFBECBB8915041EE4B3DD8A823544103BFBECBB8915041EB6A1720AA2354414B14C9C6B8915041CD469A4AAA235441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>100996 - 371908
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000710000000AD7A3103D9350415C8FC2A5292254410AD7A3503F935041C3F5281C2A225441A4703D3A3F935041C3F5283C2B225441CDCCCC7C3C935041D7A370CD2A225441666666063C935041000000102B2254417B14AE973E9350411F85EBF12D225441A4703D1A3E93504185EB51282F22544152B81E553E93504114AE47812F225441333333D33B935041AE47E10A32225441F6285C3F3893504185EB51C82E22544148E17A2436935041C3F5281C30225441A4703D1A3593504100000010312254415C8FC2D533935041D7A3704D322254418FC2F5C831935041333333C335225441F6285C9F2F9350419A9999593A225441A4703D1A2F935041333333633B225441CDCCCC9C2E935041000000103D2254411F85EBC12E935041333333633E225441C3F528BC2F935041CDCCCC5C3F2254410AD7A3403293504114AE47B13F22544152B81E553993504100000000412254415C8FC2B53E935041B81E852B422254419A9999E943935041A4703DAA43225441F6285CDF48935041AE47E15A4522544114AE47014D9350410AD7A30047225441B81E85BB50935041295C8FE248225441AE47E18A51935041B81E854B49225441F6285C4F579350419A9999994C225441D7A370DD5A93504152B81E754E225441666666065E93504148E17AC44F22544185EB51C86093504166666676502254413D0AD7D362935041666666A650225441E17A145E65935041EC51B87E50225441F6285C2F68935041B81E85DB4F225441AE47E1CA6A935041D7A370DD4E2254417B14AE077393504114AE47314B225441713D0A3777935041E17A142E4922544114AE47A179935041713D0AF7472254411F85EB917B935041A4703DCA46225441B81E85DB7D935041E17A14EE442254415C8FC2E57F9350415C8FC2D542225441295C8FC28193504152B81E8540225441000000B08293504152B81E053F225441A4703DAA8193504114AE47213F225441B81E858B809350411F85EB413F2254411F85EBC17E93504185EB51983E22544152B81E95789350411F85EB813722544148E17A746F935041AE47E15A2F225441D7A370AD699350410AD7A3D029225441B81E85EB6793504148E17AD4282254418FC2F5E8649350413333334329225441A4703D9A5D935041B81E85BB28225441F6285C2F58935041295C8FA22722544185EB51984E935041295C8F3225225441000000D0499350410AD7A310232254411F85EB614793504114AE47012222544114AE4701459350417B14AEF7202254415C8FC2C542935041EC51B8EE1F225441CDCCCC2C3E93504152B81E451D225441000000B037935041AE47E1FA18225441CDCCCCDC35935041000000501B225441295C8F623593504148E17AA41C2254418FC2F558359350419A9999091E225441F6285C9F359350410AD7A3701F225441F6285C6F349350413D0AD7831F22544100000070349350415C8FC2851C225441000000C034935041666666961B225441CDCCCC4C35935041D7A370AD1A225441295C8F9237935041B81E858B17225441713D0AD7369350415C8FC2A517225441B81E851B36935041EC51B89E17225441AE47E1AA35935041000000801722544185EB51C82A9350418FC2F59811225441AE47E19A1D9350413333337309225441B81E858B1A935041D7A3707D0F225441CDCCCC7C159350415C8FC2350E22544148E17AA414935041CDCCCC3C11225441A4703D2A1493504152B81E651422544185EB51E8139350411F85EB311822544100000020159350415C8FC2A51F225441E17A147E11935041295C8F1220225441295C8F5216935041333333432A225441713D0A1719935041713D0A4730225441E17A14BE1B935041C3F5284C302254410AD7A3B021935041000000903222544100000090269350419A9999A9332254410000003028935041F6285C5F3422544185EB5188279350411F85EBE1362254410AD7A3202793504185EB516838225441666666E62E935041E17A141E3A2254411F85EB013193504114AE47813522544148E17A24339350411F85EBB131225441B81E854B34935041EC51B8BE30225441F6285C1F34935041EC51B89E2F2254410AD7A3B033935041000000302F225441B81E85CB32935041713D0A972F225441B81E850B32935041C3F5285C2F2254418FC2F5C8319350411F85EBB12E225441E17A14EE319350419A9999F92D2254410AD7A390329350415C8FC2E52B2254418FC2F548339350415C8FC2E528225441333333F3339350415C8FC2E52522544148E17A043593504148E17A14242254411F85EBE13593504133333323212254410AD7A3F035935041D7A3702D1F225441A4703DBA37935041D7A3702D1F2254418FC2F5C837935041000000F020225441A4703D5A3793504114AE470122225441B81E85CB38935041EC51B89E23225441A4703DFA39935041C3F528FC22225441E17A142E3D9350419A99993927225441F6285CFF3B93504114AE4701282254410AD7A3103D9350415C8FC2A529225441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000037C4A4A814935041EF8DA1C026225441132041A31493504104E242B526225441BEA900A014935041979C66AE26225441D26C839614935041CD92619A262254417EE59C8F149350416BACD28B26225441086319771493504186091B58262254419934686E14935041DD80C4452622544169DDAC491493504155FC45F8252254411F3FE71B119350415B272C68202254412075C151089350413098E20821225441844F0E5703935041C6C5B0922122544189DD8AFE0193504178075DDC23225441638C5DAE0C935041D3972FA224225441638C5DAE0C93504171CB245826225441A3C9896C13935041504475D32622544137C4A4A814935041EF8DA1C026225441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>101064 - 3091518
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002100000066666606D1925041295C8F721C225441D7A3705DD6925041333333831C22544114AE4771DB9250411F85EB911C225441F6285C2FE2925041D7A3707D1C2254417B14AED7E79250418FC2F5481C22544148E17A44F692504114AE47111C2254415C8FC295F8925041F6285CBF0C225441E17A14CE0293504148E17AB410225441A4703D7A03935041666666060D225441CDCCCC0C05935041AE47E16A04225441F6285C3FFE9250411F85EB1103225441000000C0FB9250418FC2F5C80222544185EB51C8F992504114AE47D102225441C3F528FCE6925041CDCCCC6C032254415C8FC2F5DD925041EC51B8CE04225441B81E850BDA92504152B81E6505225441295C8FE2D59250416666663606225441666666D6D192504100000040072254411F85EB21CD925041E17A14AE08225441713D0A47CB925041C3F5282C0922544185EB51A8C892504148E17AE409225441EC51B89EC4925041EC51B8EE0A225441000000F0C1925041333333930B2254418FC2F588C29250413333330311225441A4703DDAC49250418FC2F5E810225441D7A3703DC69250417B14AEB71722544148E17A74BE925041666666A618225441AE47E1AABE925041666666F61922544114AE4771BE9250413D0AD7431C2254418FC2F568C192504114AE47411C22544148E17AF4C6925041D7A3700D1C22544114AE4771CD925041C3F5284C1C22544166666606D1925041295C8F721C225441
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000F5135F77159350412A07934E0E2254414E41185D15935041D086613D0E225441ED8131AE10935041C6A19ADA0C2254412573DA9910935041B46566CE0C225441A64F43C1099350410FD91A1C0D225441610DBE9F0993504155875D650822544101327DCE099350418D114D5D04225441CB2D902B05935041E3AD4AD2032254418739FBA30393504113E5EA210C225441C626031303935041C831463B0F22544102C4F22D0B93504190E6BC9112225441D6AC50D111935041334CF11114225441BA6BC53B1493504142A731F113225441F5135F77159350412A07934E0E225441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>101576 - 186535
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002B0000000AD7A320578850419A9999092F215441D7A370AD598850411F85EBD12E215441F6285C3F5D885041C3F528FC2F2154419A9999695E885041E17A14AE3221544185EB5118598850418FC2F5F83221544185EB51A858885041D7A3704D3521544152B81E555A8850410000004036215441F6285C0F5B885041CDCCCC5C38215441C3F528BC5A88504114AE479139215441E17A14BE5D885041666666263A2154418FC2F5586288504148E17A043921544152B81EC565885041F6285CFF37215441CDCCCC9C68885041295C8F523621544148E17AD4688850418FC2F58832215441EC51B83E67885041D7A3709D2F2154411F85EB01628850411F85EB112C2154417B14AE27628850417B14AE672A215441EC51B8AE65885041A4703DBA2C215441AE47E1FA678850413D0AD7432E215441D7A370CD69885041F6285C8F2F215441B81E858B6C88504148E17AE42E215441666666D66C8850411F85EBA12C215441666666F66B885041D7A370BD2A2154411F85EBA169885041E17A14AE27215441E17A14CE6788504148E17A4425215441AE47E12A6388504114AE47F11F21544114AE47D160885041AE47E12A1C215441C3F5289C5D885041EC51B84E1821544152B81E355C885041AE47E10A162154410AD7A34056885041295C8F22132154419A99998952885041295C8FD2112154417B14AE674F88504100000010132154410AD7A3D04A885041F6285C3F152154413D0AD7F346885041C3F5287C16215441713D0A4745885041666666F618215441A4703D0A44885041EC51B80E25215441713D0AD74488504185EB51F82721544166666656488850413333334328215441333333034A8850415C8FC2C528215441D7A3705D4D885041CDCCCCEC2C21544148E17A3450885041C3F528AC2E215441EC51B8FE53885041713D0A672F2154410AD7A320578850419A9999092F215441
+</a>
+
+<b>
+0106000000010000000103000000010000003200000052B81E555A88504100000040362154412BB6EA785A8850415437F2A736215441F6285C0F5B885041CDCCCC5C3821544165DF610B5B885041D84B8C6B38215441F03B5F645B885041C8D3EE7D39215441C74A2B1A6088504133A620F438215441D942108B64885041731DB656372154415B9BA31967885041DA3EC1AF31215441C77F031D668850415E9E0EDC2E215441193822E265885041BA2DD1B12E2154414294B1046588504187FA9D1E2E2154414CEA7CFC618850410677B34D2C215441A5A43F046288504178017F132C2154411F85EB01628850411F85EB112C2154417B14AE27628850417B14AE672A21544139F68B3B62885041AE9DC2742A2154411C01644162885041194CEE482A2154418B84BCD46688504130D24F612D2154417268918B65885041B0269E99282154412C8CB87B62885041CE85A43124215441298274865E885041CB3438151B215441C3F5289C5D885041EC51B84E1821544113627D635B885041B9D75CC016215441ECB75EE856885041630F7474132154419A99998952885041295C8FD211215441E30DB873468850413416AA3917215441DAE7353046885041A630849D17215441EC164E2B468850415CACC5A41721544163D0DCA745885041A77730671821544122E6FE954588504101C49D81182154412D72F8264588504174C5D62F1A215441A4703D0A44885041EC51B80E25215441428F578E448850416169A7EF26215441D8263C3F45885041B3B00801282154411C8E95DB46885041D9E984232821544166666656488850413333334328215441333333034A8850415C8FC2C528215441664701854C8850417FB2B7E02B215441D7A3705D4D885041CDCCCCEC2C21544148E17A3450885041C3F528AC2E2154412933120B53885041333A1C382F2154412C02CEA954885041C071A1432F21544143BACCF954885041FABAC8492F2154410AD7A320578850419A9999092F215441D7A370AD598850411F85EBD12E215441F6285C3F5D885041C3F528FC2F2154419A9999695E885041E17A14AE32215441B08B434659885041A3C96EF63221544185EB51A858885041D7A3704D3521544152B81E555A8850410000004036215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>101576 - 316352
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002B0000000AD7A320578850419A9999092F215441D7A370AD598850411F85EBD12E215441F6285C3F5D885041C3F528FC2F2154419A9999695E885041E17A14AE3221544185EB5118598850418FC2F5F83221544185EB51A858885041D7A3704D3521544152B81E555A8850410000004036215441F6285C0F5B885041CDCCCC5C38215441C3F528BC5A88504114AE479139215441E17A14BE5D885041666666263A2154418FC2F5586288504148E17A043921544152B81EC565885041F6285CFF37215441CDCCCC9C68885041295C8F523621544148E17AD4688850418FC2F58832215441EC51B83E67885041D7A3709D2F2154411F85EB01628850411F85EB112C2154417B14AE27628850417B14AE672A215441EC51B8AE65885041A4703DBA2C215441AE47E1FA678850413D0AD7432E215441D7A370CD69885041F6285C8F2F215441B81E858B6C88504148E17AE42E215441666666D66C8850411F85EBA12C215441666666F66B885041D7A370BD2A2154411F85EBA169885041E17A14AE27215441E17A14CE6788504148E17A4425215441AE47E12A6388504114AE47F11F21544114AE47D160885041AE47E12A1C215441C3F5289C5D885041EC51B84E1821544152B81E355C885041AE47E10A162154410AD7A34056885041295C8F22132154419A99998952885041295C8FD2112154417B14AE674F88504100000010132154410AD7A3D04A885041F6285C3F152154413D0AD7F346885041C3F5287C16215441713D0A4745885041666666F618215441A4703D0A44885041EC51B80E25215441713D0AD74488504185EB51F82721544166666656488850413333334328215441333333034A8850415C8FC2C528215441D7A3705D4D885041CDCCCCEC2C21544148E17A3450885041C3F528AC2E215441EC51B8FE53885041713D0A672F2154410AD7A320578850419A9999092F215441
+</a>
+
+<b>
+0106000000010000000103000000010000003200000052B81E555A88504100000040362154412BB6EA785A8850415437F2A736215441F6285C0F5B885041CDCCCC5C3821544165DF610B5B885041D84B8C6B38215441F03B5F645B885041C8D3EE7D39215441C74A2B1A6088504133A620F438215441D942108B64885041731DB656372154415B9BA31967885041DA3EC1AF31215441C77F031D668850415E9E0EDC2E215441193822E265885041BA2DD1B12E2154414294B1046588504187FA9D1E2E2154414CEA7CFC618850410677B34D2C215441A5A43F046288504178017F132C2154411F85EB01628850411F85EB112C2154417B14AE27628850417B14AE672A21544139F68B3B62885041AE9DC2742A2154411C01644162885041194CEE482A2154418B84BCD46688504130D24F612D2154417268918B65885041B0269E99282154412C8CB87B62885041CE85A43124215441298274865E885041CB3438151B215441C3F5289C5D885041EC51B84E1821544113627D635B885041B9D75CC016215441ECB75EE856885041630F7474132154419A99998952885041295C8FD211215441E30DB873468850413416AA3917215441DAE7353046885041A630849D17215441EC164E2B468850415CACC5A41721544163D0DCA745885041A77730671821544122E6FE954588504101C49D81182154412D72F8264588504174C5D62F1A215441A4703D0A44885041EC51B80E25215441428F578E448850416169A7EF26215441D8263C3F45885041B3B00801282154411C8E95DB46885041D9E984232821544166666656488850413333334328215441333333034A8850415C8FC2C528215441664701854C8850417FB2B7E02B215441D7A3705D4D885041CDCCCCEC2C21544148E17A3450885041C3F528AC2E2154412933120B53885041333A1C382F2154412C02CEA954885041C071A1432F21544143BACCF954885041FABAC8492F2154410AD7A320578850419A9999092F215441D7A370AD598850411F85EBD12E215441F6285C3F5D885041C3F528FC2F2154419A9999695E885041E17A14AE32215441B08B434659885041A3C96EF63221544185EB51A858885041D7A3704D3521544152B81E555A8850410000004036215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>101765 - 3346265
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002D000000713D0A6707925041C3F5284CCB1F544185EB5138079250410AD7A3E0CC1F54415C8FC28506925041666666F6CF1F54419A9999C9059250410AD7A360D31F544185EB51E804925041EC51B85ED81F54415C8FC23504925041295C8FD2DB1F54413333338303925041B81E856BDF1F5441CDCCCCEC0292504152B81E65E21F54417B14AE970292504185EB5128E41F5441EC51B88E0292504100000040E61F544166666656029250413D0AD713E91F5441E17A147E01925041D7A3706DEB1F5441C3F5289C00925041CDCCCCACEC1F544114AE4711FF915041EC51B82EEE1F54417B14AE57FD915041C3F528CCEF1F5441A4703DBAFB915041EC51B82EF21F5441333333B3FA9150413D0AD7D3F41F54415C8FC225FA915041EC51B80EF81F5441AE47E1DAF991504148E17A24FB1F54419A999909FA915041D7A3705DFF1F5441E17A145EFA9150411F85EB9101205441B81E854BFA91504152B81E6504205441CDCCCC2CFB915041E17A14FE03205441AE47E1CAFC915041EC51B87E01205441AE47E11AFF91504185EB51480020544185EB516800925041E17A141E01205441295C8F32019250419A99990903205441CDCCCC0C019250418FC2F5880520544152B81E95FF91504185EB51F80A2054413D0AD7E3FD91504185EB51F80C20544114AE47C1FD9150419A9999B90F20544114AE4791FD9150410AD7A33012205441CDCCCC5CFD915041AE47E1EA13205441D7A3709DFE91504100000060122054415C8FC2F503925041C3F528CC0A205441713D0A37089250413D0AD7230020544185EB51780A92504148E17A2400205441EC51B84E0D925041D7A370DD00205441E17A147E11925041AE47E17AF61F5441B81E855B12925041F6285CCFF31F544152B81E651592504148E17A54EA1F5441295C8F521C925041E17A141ED41F5441CDCCCCEC0F925041B81E85ABCD1F544148E17A7407925041713D0A07CA1F5441713D0A6707925041C3F5284CCB1F5441
+</a>
+
+<b>
+01060000000100000001030000000100000033000000713D0A6707925041C3F5284CCB1F544185EB5138079250410AD7A3E0CC1F54415C8FC28506925041666666F6CF1F54419A9999C9059250410AD7A360D31F544185EB51E804925041EC51B85ED81F54415C8FC23504925041295C8FD2DB1F54413333338303925041B81E856BDF1F5441CDCCCCEC0292504152B81E65E21F54417B14AE970292504185EB5128E41F5441EC51B88E0292504100000040E61F544166666656029250413D0AD713E91F5441E17A147E01925041D7A3706DEB1F5441C3F5289C00925041CDCCCCACEC1F544114AE4711FF915041EC51B82EEE1F54417B14AE57FD915041C3F528CCEF1F5441A4703DBAFB915041EC51B82EF21F5441333333B3FA9150413D0AD7D3F41F54415C8FC225FA915041EC51B80EF81F5441AE47E1DAF991504148E17A24FB1F54419A999909FA915041D7A3705DFF1F5441E17A145EFA9150411F85EB9101205441B81E854BFA91504152B81E6504205441E7FBA939FB915041105839CC0220544148E17A64FC9150418D976ED2FF1F5441AE47E11AFF91504185EB51480020544185EB516800925041E17A141E01205441AC1C5ABC01925041A69BC4C803205441333333A3019250418FC2F58006205441C904974600925041EF51F5320A2054413BDF4FDDFE915041448B6C1F0D20544114AE47C1FD9150419A9999B90F205441819543F3FC9150419CC4200812205441D7A3709DFE9150410000006012205441ED43E32FFF9150419849629011205441DFD051D400925041BA99583C0F2054414194BE1602925041823440730D205441D933EC010392504175E4D7250C20544121A8F7F303925041BA89B3CE0A20544171A43C060592504152A2710C082054418CDF3D3C06925041B0D5E5D504205441713D0A37089250413D0AD7230020544185EB51780A92504148E17A2400205441DD4F894A0D925041FC658CCC00205441023DF1CA0E92504198842164FC1F5441FEC85FA91092504173DD0554F61F54417CACAB6A1292504139DB2EB1F01F5441E6C05C0716925041FFF5B017E51F5441DD2406591B925041FCA9F102D41F54414E6210981092504177BE9FBACE1F544148E17A7407925041713D0A07CA1F5441713D0A6707925041C3F5284CCB1F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>102338 - 258953
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000009000000D7A370FDD35351411F85EB312091544133333343DE535141713D0AD70E9154418FC2F598D75351410AD7A32008915441E17A140ED35351413D0AD7B30F915441295C8F82CA53514152B81EF51D915441CDCCCC6CC05351417B14AEC72E915441E17A14CEC153514148E17AE42F9154413D0AD7C3C853514185EB512833915441D7A370FDD35351411F85EB3120915441
+</a>
+
+<b>
+010600000001000000010300000001000000130000008ADF3C0FD35351418AC7E8B10F9154416CE829EDD05351413F54E24013915441295C8F82CA53514152B81EF51D9154411CDEBF5CCA535141F3CD30341E915441ACF4E48CC05351411DF224922E915441B3B2C3B7C15351418E777DD22F915441207736C8C85351412DDDEE2033915441D7A370FDD35351411F85EB3120915441A11DC50ADC5351418335CC96129154415FB18C4BD5535141090688F70B9154419DFC90E8D4535141361C989C0C9154414792C1E2D45351410C8048A60C91544180E368B6D4535141290D3CF00C91544156C4E862D45351414A877A7B0D91544197BA6E34D45351416C81FBC80D915441397D9CA4D3535141B202D1B80E915441F1B9D916D35351413EE736A50F9154413EE10215D35351414E1448A80F9154418ADF3C0FD35351418AC7E8B10F915441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>236175 - 5255601
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001A000000C3F528DCDAF9504185EB51C8422E54411F85EB81E5F95041713D0A27452E544100000010E7F95041D7A370ED432E544100000070E6F95041CDCCCCAC412E5441F6285C4FE3F95041CDCCCC6C402E5441E17A148EDBF95041C3F528AC3C2E5441CDCCCCACD6F95041B81E850B3A2E5441C3F528ECD1F95041AE47E14A362E5441B81E850BCEF95041A4703D2A312E5441B81E85ABCCF950419A9999A92D2E5441B81E854BCCF9504185EB51E8272E544100000070CDF950417B14AEC7242E5441E17A14AED0F95041666666E6102E5441D7A370ADD1F95041666666260F2E544185EB5108D1F95041D7A370AD062E544148E17A24CEF95041713D0A37072E544114AE4781C7F95041713D0A87082E5441C3F528ACBFF95041000000E0092E5441713D0AE7BCF95041295C8F320A2E544152B81EF5BBF9504114AE47C10B2E5441F6285CCFB6F950417B14AEB7242E544114AE47D1BAF9504133333313222E544133333363BDF95041B81E85FB2A2E544166666686C0F95041B81E85EB312E5441AE47E13AC9F95041C3F528FC3E2E5441C3F528DCDAF9504185EB51C8422E5441
+</a>
+
+<b>
+010600000001000000010300000001000000290000004A2C65D0F5F950416F6BA66C7A2E544133333353F9F9504100000060742E5441000000A0F4F9504148E17AC4712E5441713D0A37F7F9504133333333702E5441B81E859BFCF95041333333A36A2E5441B81E853BFEF9504185EB5128682E5441295C8FA2FDF950417B14AE97622E544133333393FEF95041295C8F52612E54415C8FC2B5F7F9504100000030522E5441A4703D9AF6F9504185EB5198512E544152B81E75F5F9504185EB51C8502E544100000080F3F95041C3F5280C4F2E5441EC51B83EF2F95041295C8F924D2E54417B14AE57F1F95041B81E852B4C2E54411F85EB61F0F95041713D0AD74A2E54418FC2F5B8EDF950415C8FC2C5482E54419A9999A9E9F950413D0AD713462E5441720F2EB1E4F95041BB389AF8442E54419C244675E0F95041542E5007442E5441874A7185DAF95041C84B0CC1422E5441D21EAF13CFF950412EB86D42402E544141B5D519C9F95041425090CA3E2E5441775A2023C6F9504148F0D8573A2E5441C682255EC1F95041375F532F332E5441F2B9BF6EBDF9504189750E152B2E544114AE47D1BAF9504133333313222E5441F6285CCFB6F950417B14AEB7242E544123972A0EB6F9504149EE0F89282E544100000070B3F95041A4703D6A372E54417B14AE57B3F950415C8FC295422E54417B14AEF7B2F95041713D0AC74C2E544133333393B1F95041F6285C1F542E5441F6285C5FB5F95041B81E85AB572E5441A617B057B8F950415989B4B75A2E5441E6CE6065BAF950416758E33B5C2E5441713D0A27BDF95041333333E35D2E5441E17A14CEC6F9504114AE4771452E5441333333C3D2F9504152B81EB5582E54417B14AE57D6F950418FC2F5985F2E54417AE9A259DEF950411F4201D86D2E54414A2C65D0F5F950416F6BA66C7A2E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>103616 - 2977638
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000010000000333333F3E15D5141F6285C5F2B9954419A9999C9D35D51419A9999192D995441295C8F42C95D5141295C8F622E9954415C8FC225CF5D5141EC51B8FE49995441AE47E1CAD25D5141666666365B995441B81E858BD85D51418FC2F51859995441C3F528DCE05D51418FC2F5085699544133333353E55D5141E17A146E54995441CDCCCC8CE65D5141000000E05399544100000000E95D51419A9999795299544148E17A14EA5D514114AE47815199544114AE4771EE5D5141F6285C7F4E995441000000B0F25D51419A9999794B995441B81E854BF15D5141CDCCCCEC44995441E17A149EEB5D51411F85EB312A995441333333F3E15D5141F6285C5F2B995441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000C7718AD9E65D5141DFEA25B453995441CDCCCC8CE65D5141000000E05399544133333353E55D5141E17A146E54995441C3F528DCE05D51418FC2F50856995441A0E1D25CDC5D51415C4C02B15799544172B4CAD0D25D5141117E59525B9954417CB6E4C7D35D5141E962D3E25F995441CAB730E8E05D514170C9C7E75C99544168480CABE05D5141F40E756F5B995441A731A8B2EB5D514199B196395999544121916217EA5D5141F03F009E519954412743C40BE95D51416624086F5299544100000000E95D51419A9999795299544145564F30E75D514104D6908253995441C7718AD9E65D5141DFEA25B453995441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>103616 - 3672661
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000010000000333333F3E15D5141F6285C5F2B9954419A9999C9D35D51419A9999192D995441295C8F42C95D5141295C8F622E9954415C8FC225CF5D5141EC51B8FE49995441AE47E1CAD25D5141666666365B995441B81E858BD85D51418FC2F51859995441C3F528DCE05D51418FC2F5085699544133333353E55D5141E17A146E54995441CDCCCC8CE65D5141000000E05399544100000000E95D51419A9999795299544148E17A14EA5D514114AE47815199544114AE4771EE5D5141F6285C7F4E995441000000B0F25D51419A9999794B995441B81E854BF15D5141CDCCCCEC44995441E17A149EEB5D51411F85EB312A995441333333F3E15D5141F6285C5F2B995441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000C7718AD9E65D5141DFEA25B453995441CDCCCC8CE65D5141000000E05399544133333353E55D5141E17A146E54995441C3F528DCE05D51418FC2F50856995441A0E1D25CDC5D51415C4C02B15799544172B4CAD0D25D5141117E59525B9954417CB6E4C7D35D5141E962D3E25F995441CAB730E8E05D514170C9C7E75C99544168480CABE05D5141F40E756F5B995441A731A8B2EB5D514199B196395999544121916217EA5D5141F03F009E519954412743C40BE95D51416624086F5299544100000000E95D51419A9999795299544145564F30E75D514104D6908253995441C7718AD9E65D5141DFEA25B453995441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>103869 - 233685
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E000000713D0A274F615141C3F5282C15975441D7A3708D5061514114AE47C1169754411F85EB2158615141AE47E15A1E975441666666265D6151413333339322975441295C8F6262615141713D0A9726975441B81E85AB6861514114AE47B12A975441333333F36D615141333333D32D97544185EB51886F6151419A9999992D975441F6285C0F716151417B14AEB72B9754411F85EB21746151413D0AD74324975441666666E65761514166666656109754417B14AE07506151417B14AED7079754410AD7A3004C615141C3F5289C11975441713D0A274F615141C3F5282C15975441
+</a>
+
+<b>
+01060000000100000001030000000100000021000000F6285C0F716151417B14AEB72B975441DE948BEF71615141A65CE8972997544162E41B1974615141BABDA6492497544184F30A516D615141AFCE52741F9754416CFA6033686151414477FDDA1B97544170172F5A66615141BFB8D6891A975441B19504EC606151415C399CB4169754410E3C29E05A615141F700DD7412975441346826F2576151413A4BDC5F10975441B97CFBEE57615141A02E755C10975441666666E65761514166666656109754418DD60F8555615141F5C4ABC40D9754412517ADBB506151418F2A54A008975441BDC8C045506151419DC0AE1A08975441C8065630506151412C94900308975441CD18870F50615141DBA426E0079754412C30BD024C615141D8AC889E119754415DB81EBD4E61514128995EB4149754417E22203C4F6151414582FE43159754419C9E524650615141F05FE4701697544155A55B6651615141A434C59A17975441235F1B025561514173E3F4381B975441E0072F5555615141A9A9408C1B9754414783A79E5861514141E2C9C31E9754413182213A5D615141F32955A222975441C3F030855F615141319794642497544148375BFF606151418A8A9D8625975441403CD662616151419E8DE9D2259754416C66448C69615141AA029E362B975441333333F36D615141333333D32D975441CA9CB42A6E61514184E74ECB2D9754416F3DD59B6F61514196568D812D975441F6285C0F716151417B14AEB72B975441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>103869 - 298298
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E000000713D0A274F615141C3F5282C15975441D7A3708D5061514114AE47C1169754411F85EB2158615141AE47E15A1E975441666666265D6151413333339322975441295C8F6262615141713D0A9726975441B81E85AB6861514114AE47B12A975441333333F36D615141333333D32D97544185EB51886F6151419A9999992D975441F6285C0F716151417B14AEB72B9754411F85EB21746151413D0AD74324975441666666E65761514166666656109754417B14AE07506151417B14AED7079754410AD7A3004C615141C3F5289C11975441713D0A274F615141C3F5282C15975441
+</a>
+
+<b>
+01060000000100000001030000000100000021000000F6285C0F716151417B14AEB72B975441DE948BEF71615141A65CE8972997544162E41B1974615141BABDA6492497544184F30A516D615141AFCE52741F9754416CFA6033686151414477FDDA1B97544170172F5A66615141BFB8D6891A975441B19504EC606151415C399CB4169754410E3C29E05A615141F700DD7412975441346826F2576151413A4BDC5F10975441B97CFBEE57615141A02E755C10975441666666E65761514166666656109754418DD60F8555615141F5C4ABC40D9754412517ADBB506151418F2A54A008975441BDC8C045506151419DC0AE1A08975441C8065630506151412C94900308975441CD18870F50615141DBA426E0079754412C30BD024C615141D8AC889E119754415DB81EBD4E61514128995EB4149754417E22203C4F6151414582FE43159754419C9E524650615141F05FE4701697544155A55B6651615141A434C59A17975441235F1B025561514173E3F4381B975441E0072F5555615141A9A9408C1B9754414783A79E5861514141E2C9C31E9754413182213A5D615141F32955A222975441C3F030855F615141319794642497544148375BFF606151418A8A9D8625975441403CD662616151419E8DE9D2259754416C66448C69615141AA029E362B975441333333F36D615141333333D32D975441CA9CB42A6E61514184E74ECB2D9754416F3DD59B6F61514196568D812D975441F6285C0F716151417B14AEB72B975441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>103876 - 399669
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000000700000052B81E951B645141A4703DCAA298544152B81E154F6451415C8FC2F5BB9854413D0AD7F34F6451410AD7A390BB9854413D0AD7F356645141713D0AB7A19854418FC2F5A8196451410000007086985441AE47E11A136451415C8FC2A59E98544152B81E951B645141A4703DCAA2985441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000003F87AB7214645141E3B004B099985441AE47E11A136451415C8FC2A59E98544152B81E154F6451415C8FC2F5BB9854413D0AD7F34F6451410AD7A390BB98544100B76FFD54645141E5EFCBF2A89854414BCEC73618645141D2DC1CE38C985441DDFCB0921664514169ED471C9398544129935DE65264514119504418B0985441DB9F8539516451412281EC06B69854416F8623B0146451418AB289DB989854413F87AB7214645141E3B004B099985441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>103880 - 1277036
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000003A000000D7A3705D4B615141EC51B86EFC965441000000804C615141295C8FC200975441F6285C7F4E615141CDCCCC9C02975441713D0A07526151413D0AD7C3F5965441C3F5281C546151415C8FC2A5ED96544152B81EB5546151411F85EBD1ED965441295C8FE252615141EC51B80EF69654410AD7A3404F615141C3F5285C0397544185EB51584F6151419A9999E903975441C3F5286C56615141C3F5289C0B97544185EB51385D615141666666961197544114AE47E174615141A4703D8A229754410AD7A300766151413333333320975441CDCCCCAC796151418FC2F5181A9754417B14AEA77F61514148E17A8410975441666666E67F61514114AE47311097544185EB519875615141F6285CCF089754413D0AD74382615141EC51B88EF1965441EC51B8AE7861514185EB51F8EB965441B81E851B89615141333333D3CD9654411F85EB4188615141C3F5287CCD965441C3F5289C7361514148E17A54C8965441C3F5289C6F61514100000030C79654413D0AD733686151418FC2F598C49654419A9999195761514185EB51C8BD96544152B81E5550615141E17A14AECE9654419A99995954615141F6285C0FD1965441F6285CCF5761514133333333C7965441AE47E10A5A615141E17A140EC99654419A9999395C615141B81E85ABCA965441713D0A97606151419A999919CD96544133333303706151410AD7A3A0D1965441CDCCCC1C6B6151411F85EB31E39654415C8FC2056661514133333393E2965441AE47E12A636151418FC2F5A8E8965441C3F5284C626151415C8FC285EA965441333333936161514114AE4721ED96544152B81EB56161514100000000F2965441295C8FC2626151410AD7A300F79654418FC2F528646151417B14AE27FC965441666666A665615141000000A00097544152B81E85666151419A999919049754418FC2F5B85A615141AE47E19A03975441AE47E1BA59615141CDCCCC3C02975441C3F5281C59615141333333C3FE965441E17A14DE576151418FC2F548FB9654410AD7A32056615141E17A140EF89654411F85EBA15561514114AE4751F69654411F85EB615561514185EB5158F296544114AE470156615141713D0A87E9965441AE47E19A596151419A999989D5965441B81E852B5961514152B81E95D3965441000000C057615141D7A3705DD39654410AD7A3F053615141D7A3700DD296544114AE47D14F6151415C8FC2B5CF9654415C8FC2F54C6151419A9999B9DF965441295C8FB24B615141B81E854BEA965441D7A3705D4B615141EC51B86EFC965441
+</a>
+
+<b>
+0106000000010000000103000000010000002D000000816A3E9C5A615141A97E6568C9965441836B4A785C615141BE836BCECA965441713D0A97606151419A999919CD96544133333303706151410AD7A3A0D1965441CDCCCC1C6B6151411F85EB31E39654415C8FC2056661514133333393E2965441AE47E12A636151418FC2F5A8E8965441C3F5284C626151415C8FC285EA965441333333936161514114AE4721ED96544152B81EB56161514100000000F2965441295C8FC2626151410AD7A300F79654418FC2F528646151417B14AE27FC965441666666A665615141000000A00097544152B81E85666151419A999919049754418FC2F5B85A615141AE47E19A03975441AE47E1BA59615141CDCCCC3C02975441C3F5281C59615141333333C3FE965441E17A14DE576151418FC2F548FB9654410AD7A32056615141E17A140EF89654411F85EBA15561514114AE4751F69654411F85EB615561514185EB5158F2965441B7DD600056615141F5A3CF93E9965441F2E1B052546151419ED480B5ED96544152B81EB5546151411F85EBD1ED965441295C8FE252615141EC51B80EF69654410AD7A3404F615141C3F5285C0397544185EB51584F6151419A9999E903975441C3F5286C56615141C3F5289C0B97544185EB51385D615141666666961197544114AE47E174615141A4703D8A229754410AD7A300766151413333333320975441CDCCCCAC796151418FC2F5181A9754417B14AEA77F61514148E17A8410975441666666E67F61514114AE47311097544185EB519875615141F6285CCF089754413D0AD74382615141EC51B88EF1965441EC51B8AE7861514185EB51F8EB965441B81E851B89615141333333D3CD9654411F85EB4188615141C3F5287CCD965441C3F5289C7361514148E17A54C8965441C3F5289C6F61514100000030C79654413D0AD733686151418FC2F598C496544158445C7C61615141273EC8EBC19654419EF7BE2F5E6151416E21FB95C0965441816A3E9C5A615141A97E6568C9965441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>103880 - 3011675
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003A000000D7A3705D4B615141EC51B86EFC965441000000804C615141295C8FC200975441F6285C7F4E615141CDCCCC9C02975441713D0A07526151413D0AD7C3F5965441C3F5281C546151415C8FC2A5ED96544152B81EB5546151411F85EBD1ED965441295C8FE252615141EC51B80EF69654410AD7A3404F615141C3F5285C0397544185EB51584F6151419A9999E903975441C3F5286C56615141C3F5289C0B97544185EB51385D615141666666961197544114AE47E174615141A4703D8A229754410AD7A300766151413333333320975441CDCCCCAC796151418FC2F5181A9754417B14AEA77F61514148E17A8410975441666666E67F61514114AE47311097544185EB519875615141F6285CCF089754413D0AD74382615141EC51B88EF1965441EC51B8AE7861514185EB51F8EB965441B81E851B89615141333333D3CD9654411F85EB4188615141C3F5287CCD965441C3F5289C7361514148E17A54C8965441C3F5289C6F61514100000030C79654413D0AD733686151418FC2F598C49654419A9999195761514185EB51C8BD96544152B81E5550615141E17A14AECE9654419A99995954615141F6285C0FD1965441F6285CCF5761514133333333C7965441AE47E10A5A615141E17A140EC99654419A9999395C615141B81E85ABCA965441713D0A97606151419A999919CD96544133333303706151410AD7A3A0D1965441CDCCCC1C6B6151411F85EB31E39654415C8FC2056661514133333393E2965441AE47E12A636151418FC2F5A8E8965441C3F5284C626151415C8FC285EA965441333333936161514114AE4721ED96544152B81EB56161514100000000F2965441295C8FC2626151410AD7A300F79654418FC2F528646151417B14AE27FC965441666666A665615141000000A00097544152B81E85666151419A999919049754418FC2F5B85A615141AE47E19A03975441AE47E1BA59615141CDCCCC3C02975441C3F5281C59615141333333C3FE965441E17A14DE576151418FC2F548FB9654410AD7A32056615141E17A140EF89654411F85EBA15561514114AE4751F69654411F85EB615561514185EB5158F296544114AE470156615141713D0A87E9965441AE47E19A596151419A999989D5965441B81E852B5961514152B81E95D3965441000000C057615141D7A3705DD39654410AD7A3F053615141D7A3700DD296544114AE47D14F6151415C8FC2B5CF9654415C8FC2F54C6151419A9999B9DF965441295C8FB24B615141B81E854BEA965441D7A3705D4B615141EC51B86EFC965441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000B7DD600056615141F5A3CF93E996544114AE470156615141713D0A87E9965441AE47E19A596151419A999989D5965441B81E852B5961514152B81E95D3965441000000C057615141D7A3705DD39654410AD7A3F053615141D7A3700DD296544114AE47D14F6151415C8FC2B5CF9654415C8FC2F54C6151419A9999B9DF965441295C8FB24B615141B81E854BEA965441D7A3705D4B615141EC51B86EFC965441000000804C615141295C8FC200975441F6285C7F4E615141CDCCCC9C02975441713D0A07526151413D0AD7C3F5965441C3F5281C546151415C8FC2A5ED965441F2E1B052546151419ED480B5ED965441B7DD600056615141F5A3CF93E9965441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>103880 - 3295548
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003A000000D7A3705D4B615141EC51B86EFC965441000000804C615141295C8FC200975441F6285C7F4E615141CDCCCC9C02975441713D0A07526151413D0AD7C3F5965441C3F5281C546151415C8FC2A5ED96544152B81EB5546151411F85EBD1ED965441295C8FE252615141EC51B80EF69654410AD7A3404F615141C3F5285C0397544185EB51584F6151419A9999E903975441C3F5286C56615141C3F5289C0B97544185EB51385D615141666666961197544114AE47E174615141A4703D8A229754410AD7A300766151413333333320975441CDCCCCAC796151418FC2F5181A9754417B14AEA77F61514148E17A8410975441666666E67F61514114AE47311097544185EB519875615141F6285CCF089754413D0AD74382615141EC51B88EF1965441EC51B8AE7861514185EB51F8EB965441B81E851B89615141333333D3CD9654411F85EB4188615141C3F5287CCD965441C3F5289C7361514148E17A54C8965441C3F5289C6F61514100000030C79654413D0AD733686151418FC2F598C49654419A9999195761514185EB51C8BD96544152B81E5550615141E17A14AECE9654419A99995954615141F6285C0FD1965441F6285CCF5761514133333333C7965441AE47E10A5A615141E17A140EC99654419A9999395C615141B81E85ABCA965441713D0A97606151419A999919CD96544133333303706151410AD7A3A0D1965441CDCCCC1C6B6151411F85EB31E39654415C8FC2056661514133333393E2965441AE47E12A636151418FC2F5A8E8965441C3F5284C626151415C8FC285EA965441333333936161514114AE4721ED96544152B81EB56161514100000000F2965441295C8FC2626151410AD7A300F79654418FC2F528646151417B14AE27FC965441666666A665615141000000A00097544152B81E85666151419A999919049754418FC2F5B85A615141AE47E19A03975441AE47E1BA59615141CDCCCC3C02975441C3F5281C59615141333333C3FE965441E17A14DE576151418FC2F548FB9654410AD7A32056615141E17A140EF89654411F85EBA15561514114AE4751F69654411F85EB615561514185EB5158F296544114AE470156615141713D0A87E9965441AE47E19A596151419A999989D5965441B81E852B5961514152B81E95D3965441000000C057615141D7A3705DD39654410AD7A3F053615141D7A3700DD296544114AE47D14F6151415C8FC2B5CF9654415C8FC2F54C6151419A9999B9DF965441295C8FB24B615141B81E854BEA965441D7A3705D4B615141EC51B86EFC965441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000B7DD600056615141F5A3CF93E996544114AE470156615141713D0A87E9965441AE47E19A596151419A999989D5965441B81E852B5961514152B81E95D3965441000000C057615141D7A3705DD39654410AD7A3F053615141D7A3700DD296544114AE47D14F6151415C8FC2B5CF9654415C8FC2F54C6151419A9999B9DF965441295C8FB24B615141B81E854BEA965441D7A3705D4B615141EC51B86EFC965441000000804C615141295C8FC200975441F6285C7F4E615141CDCCCC9C02975441713D0A07526151413D0AD7C3F5965441C3F5281C546151415C8FC2A5ED965441F2E1B052546151419ED480B5ED965441B7DD600056615141F5A3CF93E9965441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>103880 - 3325908
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000003A000000D7A3705D4B615141EC51B86EFC965441000000804C615141295C8FC200975441F6285C7F4E615141CDCCCC9C02975441713D0A07526151413D0AD7C3F5965441C3F5281C546151415C8FC2A5ED96544152B81EB5546151411F85EBD1ED965441295C8FE252615141EC51B80EF69654410AD7A3404F615141C3F5285C0397544185EB51584F6151419A9999E903975441C3F5286C56615141C3F5289C0B97544185EB51385D615141666666961197544114AE47E174615141A4703D8A229754410AD7A300766151413333333320975441CDCCCCAC796151418FC2F5181A9754417B14AEA77F61514148E17A8410975441666666E67F61514114AE47311097544185EB519875615141F6285CCF089754413D0AD74382615141EC51B88EF1965441EC51B8AE7861514185EB51F8EB965441B81E851B89615141333333D3CD9654411F85EB4188615141C3F5287CCD965441C3F5289C7361514148E17A54C8965441C3F5289C6F61514100000030C79654413D0AD733686151418FC2F598C49654419A9999195761514185EB51C8BD96544152B81E5550615141E17A14AECE9654419A99995954615141F6285C0FD1965441F6285CCF5761514133333333C7965441AE47E10A5A615141E17A140EC99654419A9999395C615141B81E85ABCA965441713D0A97606151419A999919CD96544133333303706151410AD7A3A0D1965441CDCCCC1C6B6151411F85EB31E39654415C8FC2056661514133333393E2965441AE47E12A636151418FC2F5A8E8965441C3F5284C626151415C8FC285EA965441333333936161514114AE4721ED96544152B81EB56161514100000000F2965441295C8FC2626151410AD7A300F79654418FC2F528646151417B14AE27FC965441666666A665615141000000A00097544152B81E85666151419A999919049754418FC2F5B85A615141AE47E19A03975441AE47E1BA59615141CDCCCC3C02975441C3F5281C59615141333333C3FE965441E17A14DE576151418FC2F548FB9654410AD7A32056615141E17A140EF89654411F85EBA15561514114AE4751F69654411F85EB615561514185EB5158F296544114AE470156615141713D0A87E9965441AE47E19A596151419A999989D5965441B81E852B5961514152B81E95D3965441000000C057615141D7A3705DD39654410AD7A3F053615141D7A3700DD296544114AE47D14F6151415C8FC2B5CF9654415C8FC2F54C6151419A9999B9DF965441295C8FB24B615141B81E854BEA965441D7A3705D4B615141EC51B86EFC965441
+</a>
+
+<b>
+0106000000010000000103000000010000002D000000816A3E9C5A615141A97E6568C9965441836B4A785C615141BE836BCECA965441713D0A97606151419A999919CD96544133333303706151410AD7A3A0D1965441CDCCCC1C6B6151411F85EB31E39654415C8FC2056661514133333393E2965441AE47E12A636151418FC2F5A8E8965441C3F5284C626151415C8FC285EA965441333333936161514114AE4721ED96544152B81EB56161514100000000F2965441295C8FC2626151410AD7A300F79654418FC2F528646151417B14AE27FC965441666666A665615141000000A00097544152B81E85666151419A999919049754418FC2F5B85A615141AE47E19A03975441AE47E1BA59615141CDCCCC3C02975441C3F5281C59615141333333C3FE965441E17A14DE576151418FC2F548FB9654410AD7A32056615141E17A140EF89654411F85EBA15561514114AE4751F69654411F85EB615561514185EB5158F2965441B7DD600056615141F5A3CF93E9965441F2E1B052546151419ED480B5ED96544152B81EB5546151411F85EBD1ED965441295C8FE252615141EC51B80EF69654410AD7A3404F615141C3F5285C0397544185EB51584F6151419A9999E903975441C3F5286C56615141C3F5289C0B97544185EB51385D615141666666961197544114AE47E174615141A4703D8A229754410AD7A300766151413333333320975441CDCCCCAC796151418FC2F5181A9754417B14AEA77F61514148E17A8410975441666666E67F61514114AE47311097544185EB519875615141F6285CCF089754413D0AD74382615141EC51B88EF1965441EC51B8AE7861514185EB51F8EB965441B81E851B89615141333333D3CD9654411F85EB4188615141C3F5287CCD965441C3F5289C7361514148E17A54C8965441C3F5289C6F61514100000030C79654413D0AD733686151418FC2F598C496544158445C7C61615141273EC8EBC19654419EF7BE2F5E6151416E21FB95C0965441816A3E9C5A615141A97E6568C9965441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>103978 - 3114130
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000070000001F85EB919A6151415C8FC2B5739A544185EB5108976151413D0AD793709A5441EC51B87E78615141CDCCCCBCD09A5441333333837F615141666666F6D39A5441E17A144E8B6151411F85EB31D99A5441000000F0A76151417B14AE077F9A54411F85EB919A6151415C8FC2B5739A5441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000001394D9779F615141AE1EA0DB779A5441EFA5E91794615141D9D91AFA9A9A54412F49DB1C88615141D49EAAABC09A54415B2B4B6D81615141468CDCCFD49A544120FEC5488B61514167BD902FD99A54415E20B3D88B6151410783667DD79A5441B35741B690615141A463172BC89A5441A3D219C09C6151411A613942A29A544199134829A5615141567CC3C5879A54415A8B3CF1A76151416266BA087F9A54411394D9779F615141AE1EA0DB779A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>105530 - 2960104
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000034000000333333933BA250419A9999F9F3395441295C8FF237A2504166666606F33954411F85EB9132A2504152B81E95F13954415C8FC20530A25041AE47E10AF1395441000000402EA250417B14AEB7F0395441B81E851B2DA25041EC51B88EF0395441713D0AF72BA25041CDCCCC7CF039544114AE47A12AA25041AE47E17AF0395441E17A14BE29A250410AD7A390F0395441713D0AF728A25041D7A370ADF0395441D7A3708D27A250410AD7A300F1395441E17A144E25A25041295C8FB2F139544152B81E1523A25041D7A3708DF2395441333333C321A2504148E17A04F33954419A9999B91FA2504114AE4751F33954413D0AD7031DA2504166666686F3395441C3F5280C1BA250410AD7A380F3395441D7A3703D19A2504133333363F3395441000000E018A250415C8FC255F3395441B81E85EB17A250413D0AD733F33954411F85EB8116A25041295C8FF2F23954415C8FC2A50BA25041295C8F72F0395441C3F528FC08A25041E17A14DEEF395441C3F5284C06A25041F6285C7FEF39544185EB518800A25041D7A370CDEE3954411F85EBB1F5A15041EC51B89EED395441C3F5281CF1A1504100000040ED395441A4703D2AE9A15041CDCCCC7CEC39544148E17AB4E2A15041C3F528DCEB3954415C8FC2B5E1A15041666666D6EB395441A4703D0ADAA150410AD7A3E0EB3954417B14AE07D2A15041713D0A97EC3954418FC2F558CEA1504148E17A04EE3954411F85EBA1CFA15041713D0A67F5395441C3F5287CD0A1504148E17A34FB39544152B81E25D1A1504152B81E55043A54418FC2F5B8D1A15041333333730E3A54418FC2F548D2A15041EC51B83E193A5441000000E00EA25041C3F528CC1C3A5441666666762DA25041A4703DAA1E3A5441B81E850B4CA2504185EB5188203A54410AD7A3204DA25041F6285C2F143A54410AD7A3904EA25041713D0A97103A54411F85EB0150A25041713D0A870D3A544148E17AE453A25041CDCCCC4C073A5441D7A3709D55A25041CDCCCCAC043A5441D7A3707D56A2504148E17A14033A544152B81EF557A2504185EB5188003A54415C8FC26559A25041E17A145EFD39544148E17AF459A25041D7A3701DFC39544185EB510853A2504148E17AD4FA395441333333933BA250419A9999F9F3395441
+</a>
+
+<b>
+0106000000010000000103000000020000003A000000CD16A9CD18A250412179E18DF3395441018759A016A2504127873748F3395441E07A15820BA25041A89B56C1F039544146527EBF08A25041B5B70236F0395441CB669D3806A250419D88A2B4EF3954419E23C56D00A25041B7C0FA9DEE39544165D296E8FAA150417B54E4E0ED3954411F85EBB1F5A15041EC51B89EED3954414CCBB01CF1A15041F351B537ED395441A4703D2AE9A15041CDCCCC7CEC395441EE489A9CE2A150415720260DEC395441FF80F285E1A150417A6B3203EC395441B8AC5301DAA1504157CE6EE1EB395441003FE30BD7A15041EFDBCE24EC395441926F0FFDD4A150411387AB53EC395441647FC128D2A15041570D1994EC39544113A7E4C1CFA15041EE51B537ED3954418FC2F558CEA1504148E17A04EE3954411F85EBA1CFA15041713D0A67F5395441C3F5287CD0A1504148E17A34FB395441C352E063D1A1504189130A6D043A5441F5BEF620D2A150410DEEBE600E3A54413A47B952D2A15041BD1C78B2163A5441AB495A75D3A1504101E094A6283A54414812460C09A250419242FC132C3A5441C62581F04AA25041CFEF5846303A5441E17014464CA25041B48D4592203A5441991AC0B34DA250412F1A088D143A5441BB97FBE84EA250416934EF88103A5441EF5D977C50A25041CFD9BF690D3A5441A6AD235254A250411BF19439073A544134C3060856A25041EB9BCC9E043A54416521C70A57A25041ECA4C406033A544149DB186758A250411D23CB93003A5441936839EB59A25041B661EC3BFD3954411C79BE4E5AA25041D0994425FC3954418BE4B53753A2504188E546DDFA39544195865DD944A250417B6167AFF6395441333333933BA250419A9999F9F3395441AE2CE8F937A2504101EA1BE3F2395441CF95424536A25041CDDD6A4FF239544193286F7F32A250411E7C0962F1395441CD016D1F30A250415D746FE8F0395441000000402EA250417B14AEB7F0395441B81E851B2DA25041EC51B88EF0395441BE1E30E42BA25041DDAFB17CF0395441740F92AF2AA2504183504ACBF039544143B1D1AC29A25041C8D80CFDF0395441C1AEA20329A2504132ACDB24F139544151D6758927A25041E0076D7EF13954411565017A25A25041F2287745F2395441044DEF1A23A2504194685C2AF33954416F29B6AA21A2504143C4ED83F3395441774004CD1FA250416201A4BFF33954414EF991EC1CA25041813E5AFBF3395441E43C11E71AA2504140B697C9F33954417C723A2719A250416501A4BFF3395441CD16A9CD18A250412179E18DF33954410E00000009647EEC0EA25041B33AE27B1C3A5441D4E492F010A25041D92912270D3A544177397A3A13A250418FD9BE21FD3954419779657517A250410850F839FD39544168094D8754A250410ACB481B013A54415F4FA8BF54A2504116C0F79A023A544142DB9E2F54A25041848E089B033A5441D3540B3153A25041DAD00338053A54412E1BA12C51A25041620C51D4073A5441AC4173F74DA2504164B7E6B10D3A54416F519EC74BA25041F9AE1407143A544184215BC44BA25041193F8710143A5441C0B292064AA2504184C83364203A544109647EEC0EA25041B33AE27B1C3A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>105530 - 3526131
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000034000000333333933BA250419A9999F9F3395441295C8FF237A2504166666606F33954411F85EB9132A2504152B81E95F13954415C8FC20530A25041AE47E10AF1395441000000402EA250417B14AEB7F0395441B81E851B2DA25041EC51B88EF0395441713D0AF72BA25041CDCCCC7CF039544114AE47A12AA25041AE47E17AF0395441E17A14BE29A250410AD7A390F0395441713D0AF728A25041D7A370ADF0395441D7A3708D27A250410AD7A300F1395441E17A144E25A25041295C8FB2F139544152B81E1523A25041D7A3708DF2395441333333C321A2504148E17A04F33954419A9999B91FA2504114AE4751F33954413D0AD7031DA2504166666686F3395441C3F5280C1BA250410AD7A380F3395441D7A3703D19A2504133333363F3395441000000E018A250415C8FC255F3395441B81E85EB17A250413D0AD733F33954411F85EB8116A25041295C8FF2F23954415C8FC2A50BA25041295C8F72F0395441C3F528FC08A25041E17A14DEEF395441C3F5284C06A25041F6285C7FEF39544185EB518800A25041D7A370CDEE3954411F85EBB1F5A15041EC51B89EED395441C3F5281CF1A1504100000040ED395441A4703D2AE9A15041CDCCCC7CEC39544148E17AB4E2A15041C3F528DCEB3954415C8FC2B5E1A15041666666D6EB395441A4703D0ADAA150410AD7A3E0EB3954417B14AE07D2A15041713D0A97EC3954418FC2F558CEA1504148E17A04EE3954411F85EBA1CFA15041713D0A67F5395441C3F5287CD0A1504148E17A34FB39544152B81E25D1A1504152B81E55043A54418FC2F5B8D1A15041333333730E3A54418FC2F548D2A15041EC51B83E193A5441000000E00EA25041C3F528CC1C3A5441666666762DA25041A4703DAA1E3A5441B81E850B4CA2504185EB5188203A54410AD7A3204DA25041F6285C2F143A54410AD7A3904EA25041713D0A97103A54411F85EB0150A25041713D0A870D3A544148E17AE453A25041CDCCCC4C073A5441D7A3709D55A25041CDCCCCAC043A5441D7A3707D56A2504148E17A14033A544152B81EF557A2504185EB5188003A54415C8FC26559A25041E17A145EFD39544148E17AF459A25041D7A3701DFC39544185EB510853A2504148E17AD4FA395441333333933BA250419A9999F9F3395441
+</a>
+
+<b>
+0106000000010000000103000000020000003A000000CD16A9CD18A250412179E18DF3395441018759A016A2504127873748F3395441E07A15820BA25041A89B56C1F039544146527EBF08A25041B5B70236F0395441CB669D3806A250419D88A2B4EF3954419E23C56D00A25041B7C0FA9DEE39544165D296E8FAA150417B54E4E0ED3954411F85EBB1F5A15041EC51B89EED3954414CCBB01CF1A15041F351B537ED395441A4703D2AE9A15041CDCCCC7CEC395441EE489A9CE2A150415720260DEC395441FF80F285E1A150417A6B3203EC395441B8AC5301DAA1504157CE6EE1EB395441003FE30BD7A15041EFDBCE24EC395441926F0FFDD4A150411387AB53EC395441647FC128D2A15041570D1994EC39544113A7E4C1CFA15041EE51B537ED3954418FC2F558CEA1504148E17A04EE3954411F85EBA1CFA15041713D0A67F5395441C3F5287CD0A1504148E17A34FB395441C352E063D1A1504189130A6D043A5441F5BEF620D2A150410DEEBE600E3A54413A47B952D2A15041BD1C78B2163A5441AB495A75D3A1504101E094A6283A54414812460C09A250419242FC132C3A5441C62581F04AA25041CFEF5846303A5441E17014464CA25041B48D4592203A5441991AC0B34DA250412F1A088D143A5441BB97FBE84EA250416934EF88103A5441EF5D977C50A25041CFD9BF690D3A5441A6AD235254A250411BF19439073A544134C3060856A25041EB9BCC9E043A54416521C70A57A25041ECA4C406033A544149DB186758A250411D23CB93003A5441936839EB59A25041B661EC3BFD3954411C79BE4E5AA25041D0994425FC3954418BE4B53753A2504188E546DDFA39544195865DD944A250417B6167AFF6395441333333933BA250419A9999F9F3395441AE2CE8F937A2504101EA1BE3F2395441CF95424536A25041CDDD6A4FF239544193286F7F32A250411E7C0962F1395441CD016D1F30A250415D746FE8F0395441000000402EA250417B14AEB7F0395441B81E851B2DA25041EC51B88EF0395441BE1E30E42BA25041DDAFB17CF0395441740F92AF2AA2504183504ACBF039544143B1D1AC29A25041C8D80CFDF0395441C1AEA20329A2504132ACDB24F139544151D6758927A25041E0076D7EF13954411565017A25A25041F2287745F2395441044DEF1A23A2504194685C2AF33954416F29B6AA21A2504143C4ED83F3395441774004CD1FA250416201A4BFF33954414EF991EC1CA25041813E5AFBF3395441E43C11E71AA2504140B697C9F33954417C723A2719A250416501A4BFF3395441CD16A9CD18A250412179E18DF33954410E00000009647EEC0EA25041B33AE27B1C3A5441D4E492F010A25041D92912270D3A544177397A3A13A250418FD9BE21FD3954419779657517A250410850F839FD39544168094D8754A250410ACB481B013A54415F4FA8BF54A2504116C0F79A023A544142DB9E2F54A25041848E089B033A5441D3540B3153A25041DAD00338053A54412E1BA12C51A25041620C51D4073A5441AC4173F74DA2504164B7E6B10D3A54416F519EC74BA25041F9AE1407143A544184215BC44BA25041193F8710143A5441C0B292064AA2504184C83364203A544109647EEC0EA25041B33AE27B1C3A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>105699 - 3179179
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002F000000B81E853B23AF50417B14AE67483C54415C8FC25529AF50413D0AD723463C54415C8FC2C52BAF504133333313453C54415C8FC2352EAF5041E17A14CE433C544114AE47B123AF504152B81E053D3C54418FC2F5881EAF5041E17A14DE393C5441F6285CEF16AF50413D0AD7D3363C5441713D0AF711AF5041713D0A17393C544185EB51C80CAF504152B81EC5383C54418FC2F50809AF504148E17A643A3C5441A4703DAA05AF504185EB5128393C5441CDCCCC4CFDAE504114AE4741363C54417B14AEE7F1AE5041A4703D6A343C5441295C8F92EBAE504185EB5168323C5441295C8F32E4AE5041EC51B8FE363C5441C3F5288CDFAE50415C8FC2353B3C54418FC2F5A8D9AE504152B81EE5423C5441EC51B8EED6AE5041B81E857B473C54410AD7A3F0DEAE50417B14AE474C3C54413D0AD723E0AE504114AE47B1533C5441A4703D4AE1AE5041AE47E19A563C54417B14AEF7E1AE50411F85EB61593C54413D0AD793E2AE504152B81E655E3C5441F6285C2FE2AE50419A999999663C544133333313DEAE5041D7A3702D6E3C5441EC51B8BEDEAE5041000000A06F3C544166666626EDAE5041B81E854B783C5441C3F5288CEBAE504133333393753C544148E17A44ECAE50411F85EB31723C5441713D0AA7EDAE5041E17A14EE6E3C5441EC51B8DEEEAE504114AE47E16C3C5441F6285C4FF0AE5041B81E851B6B3C5441E17A144EF2AE5041CDCCCC9C693C54410AD7A320F5AE50415C8FC255693C5441AE47E13AF8AE5041713D0A476A3C54413D0AD743FFAE5041EC51B8FE6A3C54415C8FC28503AF5041A4703DDA6A3C5441713D0A5705AF50415C8FC265663C5441A4703D4A06AF50415C8FC225643C544152B81EA508AF50410AD7A3A05F3C54415C8FC2C50BAF50410AD7A3805A3C544114AE47B10EAF50417B14AEC7563C5441295C8FC212AF5041B81E85DB523C5441A4703D7A18AF5041000000504E3C54419A9999C91BAF5041295C8F024C3C544114AE47711FAF50411F85EB014A3C5441B81E853B23AF50417B14AE67483C5441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000770B6F2FE2AE5041E4D20E98663C5441C3F528FCE5AE5041713D0A975F3C54419A999939E5AE504114AE47A1593C5441C3F5287CE2AE5041E17A149E563C54418FC2F518E3AE50419A9999A9543C5441CDCCCC5CE0AE5041B81E856B4E3C5441295C8FC2E0AE50411F85EB614B3C54419ADB3755EBAE5041E5F687FB423C5441000000C0EFAE50410AD7A3A03E3C5441208D6007F4AE5041413AD6E13B3C5441666666E6F6AE5041A4703D0A3A3C5441B81E858B01AF50413D0AD763383C54411F85EB4108AF5041295C8FF23A3C5441B627FCE30BAF5041F36250D0393C5441A4703D5A0DAF5041B81E855B393C544198C691DA0DAF5041CA6456D5383C544185EB51C80CAF504152B81EC5383C54418FC2F50809AF504148E17A643A3C5441A4703DAA05AF504185EB5128393C5441CDCCCC4CFDAE504114AE4741363C54417B14AEE7F1AE5041A4703D6A343C5441295C8F92EBAE504185EB5168323C5441295C8F32E4AE5041EC51B8FE363C5441C3F5288CDFAE50415C8FC2353B3C54418FC2F5A8D9AE504152B81EE5423C5441EC51B8EED6AE5041B81E857B473C54410AD7A3F0DEAE50417B14AE474C3C54413D0AD723E0AE504114AE47B1533C5441A4703D4AE1AE5041AE47E19A563C54417B14AEF7E1AE50411F85EB61593C54413D0AD793E2AE504152B81E655E3C5441770B6F2FE2AE5041E4D20E98663C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>105699 - 3580735
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002F000000B81E853B23AF50417B14AE67483C54415C8FC25529AF50413D0AD723463C54415C8FC2C52BAF504133333313453C54415C8FC2352EAF5041E17A14CE433C544114AE47B123AF504152B81E053D3C54418FC2F5881EAF5041E17A14DE393C5441F6285CEF16AF50413D0AD7D3363C5441713D0AF711AF5041713D0A17393C544185EB51C80CAF504152B81EC5383C54418FC2F50809AF504148E17A643A3C5441A4703DAA05AF504185EB5128393C5441CDCCCC4CFDAE504114AE4741363C54417B14AEE7F1AE5041A4703D6A343C5441295C8F92EBAE504185EB5168323C5441295C8F32E4AE5041EC51B8FE363C5441C3F5288CDFAE50415C8FC2353B3C54418FC2F5A8D9AE504152B81EE5423C5441EC51B8EED6AE5041B81E857B473C54410AD7A3F0DEAE50417B14AE474C3C54413D0AD723E0AE504114AE47B1533C5441A4703D4AE1AE5041AE47E19A563C54417B14AEF7E1AE50411F85EB61593C54413D0AD793E2AE504152B81E655E3C5441F6285C2FE2AE50419A999999663C544133333313DEAE5041D7A3702D6E3C5441EC51B8BEDEAE5041000000A06F3C544166666626EDAE5041B81E854B783C5441C3F5288CEBAE504133333393753C544148E17A44ECAE50411F85EB31723C5441713D0AA7EDAE5041E17A14EE6E3C5441EC51B8DEEEAE504114AE47E16C3C5441F6285C4FF0AE5041B81E851B6B3C5441E17A144EF2AE5041CDCCCC9C693C54410AD7A320F5AE50415C8FC255693C5441AE47E13AF8AE5041713D0A476A3C54413D0AD743FFAE5041EC51B8FE6A3C54415C8FC28503AF5041A4703DDA6A3C5441713D0A5705AF50415C8FC265663C5441A4703D4A06AF50415C8FC225643C544152B81EA508AF50410AD7A3A05F3C54415C8FC2C50BAF50410AD7A3805A3C544114AE47B10EAF50417B14AEC7563C5441295C8FC212AF5041B81E85DB523C5441A4703D7A18AF5041000000504E3C54419A9999C91BAF5041295C8F024C3C544114AE47711FAF50411F85EB014A3C5441B81E853B23AF50417B14AE67483C5441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000770B6F2FE2AE5041E4D20E98663C5441C3F528FCE5AE5041713D0A975F3C54419A999939E5AE504114AE47A1593C5441C3F5287CE2AE5041E17A149E563C54418FC2F518E3AE50419A9999A9543C5441CDCCCC5CE0AE5041B81E856B4E3C5441295C8FC2E0AE50411F85EB614B3C54419ADB3755EBAE5041E5F687FB423C5441000000C0EFAE50410AD7A3A03E3C5441208D6007F4AE5041413AD6E13B3C5441666666E6F6AE5041A4703D0A3A3C5441B81E858B01AF50413D0AD763383C54411F85EB4108AF5041295C8FF23A3C5441B627FCE30BAF5041F36250D0393C5441A4703D5A0DAF5041B81E855B393C544198C691DA0DAF5041CA6456D5383C544185EB51C80CAF504152B81EC5383C54418FC2F50809AF504148E17A643A3C5441A4703DAA05AF504185EB5128393C5441CDCCCC4CFDAE504114AE4741363C54417B14AEE7F1AE5041A4703D6A343C5441295C8F92EBAE504185EB5168323C5441295C8F32E4AE5041EC51B8FE363C5441C3F5288CDFAE50415C8FC2353B3C54418FC2F5A8D9AE504152B81EE5423C5441EC51B8EED6AE5041B81E857B473C54410AD7A3F0DEAE50417B14AE474C3C54413D0AD723E0AE504114AE47B1533C5441A4703D4AE1AE5041AE47E19A563C54417B14AEF7E1AE50411F85EB61593C54413D0AD793E2AE504152B81E655E3C5441770B6F2FE2AE5041E4D20E98663C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>105732 - 1837761
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000017000000A4703D6A5AAE5041333333A3D73D544114AE471153AE5041B81E85ABD53D544114AE474151AE5041D7A370BDD63D5441B81E851B50AE5041F6285C6FD63D5441E17A142E4EAE5041EC51B8AEDD3D54415C8FC2E547AE50410AD7A300DC3D54410AD7A36047AE50411F85EB51DE3D5441E17A14EE45AE50411F85EB71E23D54410AD7A3D043AE5041000000C0E73D5441295C8F824BAE5041333333A3EA3D5441B81E85DB4AAE50410AD7A300EC3D5441D7A3703D43AE504114AE4731E93D54418FC2F58842AE50415C8FC2F5EA3D5441CDCCCCAC42AE50413D0AD703EB3D5441295C8F5254AE50411F85EB01F23D544148E17AE45AAE5041295C8F02E13D5441666666165CAE504152B81E15DE3D5441295C8F7268AE5041295C8F12E33D54417B14AE7769AE5041666666C6E03D54413D0AD7736AAE5041CDCCCC8CDE3D544185EB51585EAE504166666666D93D5441B81E853B5DAE50417B14AEE7D83D5441A4703D6A5AAE5041333333A3D73D5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000006BA63B2F54AE504168501FBBF13D5441E222D6B05AAE5041071335B8E03D54416323D6F55BAE5041085D80BBDD3D544118E5C87066AE5041BE70D6FAE13D5441B018595068AE504114843EA0DD3D54413D0AD7736AAE5041CDCCCC8CDE3D544185EB51586CAE5041EC51B8DEDA3D5441EC51B84E6DAE5041C3F5281CDB3D5441000000A06DAE50410AD7A320DA3D5441EAE7A9EE69AE5041FACD26AED83D5441DAF1FE0E64AE50417D9871FDDD3D5441AF02F6135BAE5041558273A4DB3D5441057336C95BAE5041D3156E53D83D5441A4703D6A5AAE5041333333A3D73D544114AE471153AE5041B81E85ABD53D544114AE474151AE5041D7A370BDD63D5441B81E851B50AE5041F6285C6FD63D5441E17A142E4EAE5041EC51B8AEDD3D54415C8FC2E547AE50410AD7A300DC3D54410AD7A36047AE50411F85EB51DE3D5441E17A14EE45AE50411F85EB71E23D5441A854C96F44AE5041AE21C030E63D5441B84935894CAE5041C7A73101E93D54414AC68D324BAE5041B4428160EC3D54419D70B42143AE5041701FA976E93D5441710BF29F42AE5041A11D22BCEA3D54416BA63B2F54AE504168501FBBF13D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>105732 - 3362202
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000017000000A4703D6A5AAE5041333333A3D73D544114AE471153AE5041B81E85ABD53D544114AE474151AE5041D7A370BDD63D5441B81E851B50AE5041F6285C6FD63D5441E17A142E4EAE5041EC51B8AEDD3D54415C8FC2E547AE50410AD7A300DC3D54410AD7A36047AE50411F85EB51DE3D5441E17A14EE45AE50411F85EB71E23D54410AD7A3D043AE5041000000C0E73D5441295C8F824BAE5041333333A3EA3D5441B81E85DB4AAE50410AD7A300EC3D5441D7A3703D43AE504114AE4731E93D54418FC2F58842AE50415C8FC2F5EA3D5441CDCCCCAC42AE50413D0AD703EB3D5441295C8F5254AE50411F85EB01F23D544148E17AE45AAE5041295C8F02E13D5441666666165CAE504152B81E15DE3D5441295C8F7268AE5041295C8F12E33D54417B14AE7769AE5041666666C6E03D54413D0AD7736AAE5041CDCCCC8CDE3D544185EB51585EAE504166666666D93D5441B81E853B5DAE50417B14AEE7D83D5441A4703D6A5AAE5041333333A3D73D5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000006BA63B2F54AE504168501FBBF13D5441E222D6B05AAE5041071335B8E03D54416323D6F55BAE5041085D80BBDD3D544118E5C87066AE5041BE70D6FAE13D5441B018595068AE504114843EA0DD3D54413D0AD7736AAE5041CDCCCC8CDE3D544185EB51586CAE5041EC51B8DEDA3D5441EC51B84E6DAE5041C3F5281CDB3D5441000000A06DAE50410AD7A320DA3D5441EAE7A9EE69AE5041FACD26AED83D5441DAF1FE0E64AE50417D9871FDDD3D5441AF02F6135BAE5041558273A4DB3D5441057336C95BAE5041D3156E53D83D5441A4703D6A5AAE5041333333A3D73D544114AE471153AE5041B81E85ABD53D544114AE474151AE5041D7A370BDD63D5441B81E851B50AE5041F6285C6FD63D5441E17A142E4EAE5041EC51B8AEDD3D54415C8FC2E547AE50410AD7A300DC3D54410AD7A36047AE50411F85EB51DE3D5441E17A14EE45AE50411F85EB71E23D5441A854C96F44AE5041AE21C030E63D5441B84935894CAE5041C7A73101E93D54414AC68D324BAE5041B4428160EC3D54419D70B42143AE5041701FA976E93D5441710BF29F42AE5041A11D22BCEA3D54416BA63B2F54AE504168501FBBF13D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>106459 - 106936
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000011000000B81E85AB801B51410AD7A3E0BD885441C3F528EC7F1B51410AD7A330BE885441EC51B81E791B5141F6285C0FC1885441A4703DDA721B51419A9999E9C288544114AE47D16E1B5141D7A3700DC48854419A9999D9621B5141EC51B8AEC88854415C8FC245651B514152B81E55CE88544152B81E55621B5141295C8F02D0885441EC51B8CE631B5141EC51B8CED48854411F85EB71671B5141D7A3703DD38854417B14AE176C1B51418FC2F5E8D0885441E17A148E751B514152B81EF5CC885441AE47E11A7C1B5141E17A14CEC9885441713D0A07841B5141666666B6C488544148E17A94821B51410AD7A300C28854411F85EB31811B5141A4703DAABE885441B81E85AB801B51410AD7A3E0BD885441
+</a>
+
+<b>
+010600000001000000010300000001000000180000002CCAEEF1761B5141E94FD949CC885441730226406E1B514100703102D08854417B14AE176C1B51418FC2F5E8D088544191BF4032671B5141023CE058D3885441EC51B8CE631B5141EC51B8CED4885441295C8F225F1B514100000010D888544172E1D7205C1B51410001081FDA885441884F70925D1B51412DE85926DC8854411B664557611B51416B4077A6D988544152B81EB5641B5141AE47E16AD7885441B39A6A37671B5141FED8AB30D6885441983959056A1B5141E73E76D1D4885441D96569B96D1B51417B61AC01D38854410AD7A3D0711B5141E17A141ED18854418FC2F5E8751B514100000030D988544148E17AA4791B51418FC2F508D7885441E17A14BE801B5141666666D6D2885441EC51B84E8A1B514148E17AD4CC885441EC51B87E881B5141EC51B8CECA885441F6285C3F861B51415C8FC2C5C7885441713D0A07841B5141666666B6C4885441AE47E11A7C1B5141E17A14CEC9885441608CADC67A1B5141F087D171CA8854412CCAEEF1761B5141E94FD949CC885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>106865 - 5234534
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002D000000295C8FE22F1E5141AE47E1EA3A8954411F85EB01311E51419A9999B945895441AE47E1AA2D1E514185EB51B84C895441295C8F022C1E51410AD7A310518954413D0AD7D32A1E5141E17A14DE538954417B14AE27241E5141C3F528CC598954415C8FC2453D1E5141E17A14AE5F895441C3F5282C4B1E514185EB513863895441F6285C5F4E1E514152B81E856389544148E17A34501E5141F6285C9F62895441AE47E11A531E5141A4703D1A5E8954410AD7A3F0531E514152B81EE55C895441F6285CDF3A1E514166666646548954413D0AD7133A1E5141A4703D1A5489544148E17A44391E5141D7A370ED5389544185EB51F83C1E5141F6285CFF4189544114AE4721471E51417B14AE174489544148E17A64551E5141AE47E10A47895441666666465F1E51415C8FC21549895441D7A370DD6B1E5141F6285CAF4B8954411F85EBE16C1E5141D7A3708D46895441D7A3706D6E1E5141295C8F923E895441000000706F1E514114AE476139895441295C8FB2701E514114AE47312F89544114AE47B1681E514152B81E852F89544114AE4781621E5141E17A14EE2E895441A4703DFA651E5141E17A149E228954411F85EB81681E5141666666A61989544152B81ED56A1E5141713D0A67118954419A999999601E5141E17A14BE108954415C8FC2D5561E5141000000601089544185EB51F84E1E5141EC51B8BE0E89544114AE4791481E5141C3F5286C0D8954418FC2F578471E51411F85EB310D895441295C8F92471E51416666666611895441A4703D8A471E5141333333F314895441D7A3706D461E51411F85EB011B8954419A9999C9461E5141EC51B81E2289544166666616481E514148E17A642889544152B81E95481E51419A9999C92F89544148E17A94411E5141295C8F92318954411F85EB81381E51411F85EB4132895441F6285CDF341E5141295C8F12328954419A999959301E51413D0AD77331895441295C8FE22F1E5141AE47E1EA3A895441
+</a>
+
+<b>
+010600000001000000010300000001000000100000005C8FC2D5561E514100000060108954419A999999601E5141E17A14BE10895441176298A4601E5141D808CABE10895441412F96BD5F1E5141B610A66810895441F6285CEF301E5141E17A140E0389544100000050331E5141EC51B85E09895441F6285C6F351E514185EB51680F8954415C8FC2553D1E5141D7A3707D0F89544152B81EA5421E514148E17A541089544185EB5108441E514114AE47A1108954417B14AEE7451E51419A99990911895441295C8F92471E514166666666118954418FC2F578471E51411F85EB310D89544114AE4791481E5141C3F5286C0D89544185EB51F84E1E5141EC51B8BE0E8954415C8FC2D5561E51410000006010895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>106865 - 5234539
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002D000000295C8FE22F1E5141AE47E1EA3A8954411F85EB01311E51419A9999B945895441AE47E1AA2D1E514185EB51B84C895441295C8F022C1E51410AD7A310518954413D0AD7D32A1E5141E17A14DE538954417B14AE27241E5141C3F528CC598954415C8FC2453D1E5141E17A14AE5F895441C3F5282C4B1E514185EB513863895441F6285C5F4E1E514152B81E856389544148E17A34501E5141F6285C9F62895441AE47E11A531E5141A4703D1A5E8954410AD7A3F0531E514152B81EE55C895441F6285CDF3A1E514166666646548954413D0AD7133A1E5141A4703D1A5489544148E17A44391E5141D7A370ED5389544185EB51F83C1E5141F6285CFF4189544114AE4721471E51417B14AE174489544148E17A64551E5141AE47E10A47895441666666465F1E51415C8FC21549895441D7A370DD6B1E5141F6285CAF4B8954411F85EBE16C1E5141D7A3708D46895441D7A3706D6E1E5141295C8F923E895441000000706F1E514114AE476139895441295C8FB2701E514114AE47312F89544114AE47B1681E514152B81E852F89544114AE4781621E5141E17A14EE2E895441A4703DFA651E5141E17A149E228954411F85EB81681E5141666666A61989544152B81ED56A1E5141713D0A67118954419A999999601E5141E17A14BE108954415C8FC2D5561E5141000000601089544185EB51F84E1E5141EC51B8BE0E89544114AE4791481E5141C3F5286C0D8954418FC2F578471E51411F85EB310D895441295C8F92471E51416666666611895441A4703D8A471E5141333333F314895441D7A3706D461E51411F85EB011B8954419A9999C9461E5141EC51B81E2289544166666616481E514148E17A642889544152B81E95481E51419A9999C92F89544148E17A94411E5141295C8F92318954411F85EB81381E51411F85EB4132895441F6285CDF341E5141295C8F12328954419A999959301E51413D0AD77331895441295C8FE22F1E5141AE47E1EA3A895441
+</a>
+
+<b>
+010600000001000000010300000001000000100000005C8FC2D5561E514100000060108954419A999999601E5141E17A14BE10895441176298A4601E5141D808CABE10895441412F96BD5F1E5141B610A66810895441F6285CEF301E5141E17A140E0389544100000050331E5141EC51B85E09895441F6285C6F351E514185EB51680F8954415C8FC2553D1E5141D7A3707D0F89544152B81EA5421E514148E17A541089544185EB5108441E514114AE47A1108954417B14AEE7451E51419A99990911895441295C8F92471E514166666666118954418FC2F578471E51411F85EB310D89544114AE4791481E5141C3F5286C0D89544185EB51F84E1E5141EC51B8BE0E8954415C8FC2D5561E51410000006010895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>106908 - 5234534
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000022000000F6285CEF301E5141E17A140E0389544100000050331E5141EC51B85E09895441F6285C6F351E514185EB51680F8954415C8FC2553D1E5141D7A3707D0F89544152B81EA5421E514148E17A541089544185EB5108441E514114AE47A1108954417B14AEE7451E51419A99990911895441295C8F92471E514166666666118954418FC2F578471E51411F85EB310D89544114AE4791481E5141C3F5286C0D89544185EB51F84E1E5141EC51B8BE0E8954415C8FC2D5561E514100000060108954419A999999601E5141E17A14BE1089544152B81ED56A1E5141713D0A6711895441A4703D2A751E51410AD7A30012895441713D0A877D1E5141E17A147E128954410AD7A3C07E1E514166666606108954415C8FC2357F1E5141B81E855B0E8954415C8FC2057F1E5141A4703DCA06895441333333F3751E514185EB51D805895441D7A3701D691E5141AE47E1BA05895441CDCCCC1C691E514152B81E7505895441666666D6651E514166666686048954415C8FC215641E514152B81EE5038954418FC2F538561E51417B14AEE7FE8854410AD7A3804A1E51413D0AD713FA88544100000020491E51411F85EB91F988544114AE47A1421E5141713D0A77F7885441CDCCCC6C3C1E514114AE47F1F58854413D0AD793381E514100000090F48854415C8FC245371E514185EB5138F38854410AD7A300301E5141295C8F82FC88544100000070301E514152B81EC5FE885441F6285CEF301E5141E17A140E03895441
+</a>
+
+<b>
+010600000001000000010300000001000000100000005C8FC2D5561E514100000060108954419A999999601E5141E17A14BE10895441176298A4601E5141D808CABE10895441412F96BD5F1E5141B610A66810895441F6285CEF301E5141E17A140E0389544100000050331E5141EC51B85E09895441F6285C6F351E514185EB51680F8954415C8FC2553D1E5141D7A3707D0F89544152B81EA5421E514148E17A541089544185EB5108441E514114AE47A1108954417B14AEE7451E51419A99990911895441295C8F92471E514166666666118954418FC2F578471E51411F85EB310D89544114AE4791481E5141C3F5286C0D89544185EB51F84E1E5141EC51B8BE0E8954415C8FC2D5561E51410000006010895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>106908 - 5234539
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000022000000F6285CEF301E5141E17A140E0389544100000050331E5141EC51B85E09895441F6285C6F351E514185EB51680F8954415C8FC2553D1E5141D7A3707D0F89544152B81EA5421E514148E17A541089544185EB5108441E514114AE47A1108954417B14AEE7451E51419A99990911895441295C8F92471E514166666666118954418FC2F578471E51411F85EB310D89544114AE4791481E5141C3F5286C0D89544185EB51F84E1E5141EC51B8BE0E8954415C8FC2D5561E514100000060108954419A999999601E5141E17A14BE1089544152B81ED56A1E5141713D0A6711895441A4703D2A751E51410AD7A30012895441713D0A877D1E5141E17A147E128954410AD7A3C07E1E514166666606108954415C8FC2357F1E5141B81E855B0E8954415C8FC2057F1E5141A4703DCA06895441333333F3751E514185EB51D805895441D7A3701D691E5141AE47E1BA05895441CDCCCC1C691E514152B81E7505895441666666D6651E514166666686048954415C8FC215641E514152B81EE5038954418FC2F538561E51417B14AEE7FE8854410AD7A3804A1E51413D0AD713FA88544100000020491E51411F85EB91F988544114AE47A1421E5141713D0A77F7885441CDCCCC6C3C1E514114AE47F1F58854413D0AD793381E514100000090F48854415C8FC245371E514185EB5138F38854410AD7A300301E5141295C8F82FC88544100000070301E514152B81EC5FE885441F6285CEF301E5141E17A140E03895441
+</a>
+
+<b>
+010600000001000000010300000001000000100000005C8FC2D5561E514100000060108954419A999999601E5141E17A14BE10895441176298A4601E5141D808CABE10895441412F96BD5F1E5141B610A66810895441F6285CEF301E5141E17A140E0389544100000050331E5141EC51B85E09895441F6285C6F351E514185EB51680F8954415C8FC2553D1E5141D7A3707D0F89544152B81EA5421E514148E17A541089544185EB5108441E514114AE47A1108954417B14AEE7451E51419A99990911895441295C8F92471E514166666666118954418FC2F578471E51411F85EB310D89544114AE4791481E5141C3F5286C0D89544185EB51F84E1E5141EC51B8BE0E8954415C8FC2D5561E51410000006010895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>107243 - 408455
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000021000000A4703DDA5B275141B81E85DB3640554152B81EE5562751411F85EBA13F405541666666564B2751417B14AE073A405541713D0AC74827514148E17AE43D4055417B14AEF745275141B81E851B43405541E17A14CE3E27514148E17A144F40554152B81ED545275141CDCCCCAC4F4055413D0AD7D35027514114AE47514F4055410000007051275141D7A3702D49405541C3F5289C5B275141EC51B83E4A40554185EB51B85F2751415C8FC25548405541D7A370AD6827514152B81EE54740554152B81E256A2751418FC2F5184A405541E17A143E6B27514148E17A144C405541F6285C9F7B275141F6285C9F4D405541C3F528CC7C2751418FC2F57862405541EC51B8FE8927514152B81E356A4055410AD7A3C088275141000000406540554166666696862751417B14AEB766405541295C8F9285275141D7A3709D6640554185EB5198832751418FC2F578624055410AD7A34082275141295C8F2260405541C3F528AC7E275141CDCCCCFC57405541666666E67E275141A4703D3A574055410AD7A3708127514114AE47D1554055417B14AE67822751413D0AD7F3554055411F85EBB1822751410000000055405541E17A14EE9327514148E17A341E40554148E17AD48E275141000000001D405541295C8F2285275141EC51B89E38405541713D0AA773275141CDCCCCDC31405541713D0A276D275141CDCCCCEC3E405541A4703DDA5B275141B81E85DB36405541
+</a>
+
+<b>
+0106000000010000000103000000010000003C000000B60651596A27514143233F774A405541EED8FE416B27514108E754E84B405541F6285C9F7B275141F6285C9F4D4055410B82943F7C2751411F2A6ABA5840554187F4F0C77C275141446B192E62405541A9FF15CC7C275141184CA577624055417A990825852751415F6C5F5D67405541EC51B8FE8927514152B81E356A4055410AD7A3C0882751410000004065405541B5FF189D8627514100E023B36640554166666696862751417B14AEB766405541C7BB90BC852751416292AEA166405541295C8F9285275141D7A3709D66405541A055910E84275141FFD2AA70634055414E6E1E8E83275141F9C03267624055414E405E0783275141BB92937C614055410AD7A34082275141295C8F2260405541648D9DEC812751411D6E55635F405541DB46E1B07E275141B4BB8A0758405541C3F528AC7E275141CDCCCCFC57405541666666E67E275141A4703D3A574055410AD7A3708127514114AE47D1554055417B14AE67822751413D0AD7F35540554144BF578382275141296DFB98554055411F85EBB1822751410000000055405541D5BB1C8584275141D77EA9324F4055413141ACB58B275141682AFE5638405541E17A14EE9327514148E17A341E4055413AD3D52A91275141B947608D1D40554135DCF5D98E2751410B7D4B011D405541B065FBC48E2751413DED262C1D4055412C1D34748B27514175C03A9E26405541295C8F2285275141EC51B89E384055411020C8188527514108BFF09A38405541713D0AA773275141CDCCCCDC31405541713D0A276D275141CDCCCCEC3E405541C3AA57EF6C2751416A9BD3D23E40554103522A7F5E275141E0B2301738405541A4703DDA5B275141B81E85DB3640554152B81EE5562751411F85EBA13F405541F973D88956275141E2B7AC753F4055414BEE56584B275141FEC59E083A4055412B1A30C3482751418006A1EB3D405541224ACA0F462751412E4AC6EE424055417B14AEF745275141B81E851B43405541870D46B4442751417A661C38454055411AA3A4CF3E275141A0C29C144F40554123FAA9CC45275141538415AC4F4055416786A17047275141CD786B9F4F405541534603D450275141AB6E8A4F4F4055410000007051275141D7A3702D49405541C3F5289C5B275141EC51B83E4A40554153E4C73B5E2751415BAF9A064940554185EB51B85F2751415C8FC255484055413D216FC15F27514164F34F5548405541D7A370AD6827514152B81EE5474055411DC7A2C46827514117FCEE0748405541A6448E9E692751414BBDFF4E4940554152B81E256A2751418FC2F5184A405541B60651596A27514143233F774A405541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>107289 - 66133
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000001000000100000008FC2F5A8F4295141C3F5287CDB405541AE47E1DAEE29514148E17AF4E340554152B81E25E1295141D7A370DDF84055417B14AEF7D5295141295C8F120A415541295C8F02C7295141D7A370DD214155411F85EBF1E02951419A99999931415541F6285C5F062A514185EB51D8F740554148E17AB4092A514100000020F340554100000020042A5141713D0AB7EF405541D7A3702D062A51410AD7A3D0D640554185EB5108052A5141295C8FA2D54055419A999959FB295141713D0A27D64055413D0AD793F62951419A999999D6405541666666C6F5295141CDCCCCACD6405541666666C6F429514185EB5138D94055418FC2F5A8F4295141C3F5287CDB405541
+</a>
+
+<b>
+0106000000010000000103000000010000001600000078912403C729514170B5E9DD21415541F490AE84D3295141EFE648E50D415541F28980FBD5295141A40BAD0C0A4155417ABD4C19D8295141473BF3C706415541643BEE56DB295141925C1AD3014155415E21DD53DD2951413EA154B8FE40554161E38750E92951414E283B6CEC4055414FC92CD0EC295141AEE4B011E74055418D9DBFA0F0295141A0123F5EE14055417A01ED09F429514102693464DC4055418FC2F5A8F4295141C3F5287CDB4055415B6D57BFF4295141AB6D57C3D9405541666666C6F429514185EB5138D94055418256606BF5295141E0AC8839D740554111CF6744F52951411BA0C975D7405541B0CD5659F429514171BB3AE1D840554149F73069F32951412E168754DA405541EE57113DED295141702D98DFE3405541161B7A27E0295141EA107A1AF840554167697DEAD42951416EBCFE7A09415541B81E85ABC5295141D7A3700D2141554178912403C729514170B5E9DD21415541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>107999 - 226498
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000340000007B14AE17C20F514148E17A04504A5541EC51B8AEC30F5141EC51B8BE4E4A5541D7A3701DC90F5141AE47E1DA4C4A55418FC2F558D60F514152B81E05494A5541000000E0E20F5141EC51B8CE444A5541666666C6EE0F514185EB5188414A5541E17A144EF30F51413D0AD713414A5541AE47E17AF60F5141CDCCCC7C404A5541CDCCCC6CF80F5141D7A370AD3F4A55411F85EB21FA0F5141C3F5286C3E4A554152B81E05FC0F5141295C8FA23C4A5541713D0AF7FE0F51413D0AD793394A55411F85EBA1F90F51415C8FC235344A5541B81E857BF80F514152B81E45334A554185EB5168F70F5141A4703DCA304A55411F85EB71F70F514148E17A04304A5541CDCCCC1CF50F5141A4703DEA304A55415C8FC2A5F00F51411F85EBA1324A5541B81E851BEE0F5141EC51B89E334A554148E17A24EC0F514148E17A44344A5541C3F5288CE90F5141AE47E16A354A5541A4703DFAE40F5141CDCCCC2C374A5541713D0A17DF0F5141000000B0384A554152B81E15DC0F51418FC2F5C8374A55413D0AD713D90F5141E17A14FE374A5541E17A14FED60F514152B81E65384A5541C3F528DCD40F51411F85EB213A4A5541E17A148ED00F51413D0AD7833B4A554100000060C40F51413D0AD7933F4A5541AE47E1BAB80F5141A4703D8A424A5541295C8FE2B40F5141C3F5286C434A554114AE4751B10F5141295C8F22444A5541F6285C5FAC0F5141713D0A57444A554100000070AC0F51415C8FC2F5454A5541B81E856BAC0F5141CDCCCC9C484A554166666656AC0F514185EB51984A4A55413D0AD703AC0F51418FC2F5B84C4A55417B14AE77AB0F51415C8FC2454F4A5541F6285C2FAB0F5141713D0A87504A5541AE47E10AAB0F5141EC51B8AE514A554114AE47F1AA0F514133333383524A554114AE47E1AA0F5141F6285CAF534A55415C8FC205AB0F51411F85EBD1544A554133333363AB0F5141C3F528BC574A55413D0AD7F3AB0F51410AD7A3405C4A55411F85EB61AD0F514152B81EA5604A55417B14AE27AF0F51418FC2F548654A5541333333D3B50F51413D0AD773604A5541000000C0B80F5141CDCCCC0C5D4A55417B14AE67BC0F514148E17A54584A5541EC51B8BEBF0F51411F85EB51534A55417B14AE17C20F514148E17A04504A5541
+</a>
+
+<b>
+0106000000010000000103000000010000003C000000EC51B8AEC30F5141EC51B8BE4E4A554138007084C70F51412DAA2C694D4A5541D7A3701DC90F5141AE47E1DA4C4A55417218FDB2CE0F5141A7A7923C4B4A5541087D23DCD10F51416E5211524A4A55419346E388D70F5141D1D1EB9E484A55414E152B73D90F5141CE300FFA474A554158E32CA4D90F51410F8994E9474A55417F6D1F71DB0F514181F9944E474A5541557A708FDF0F51411CA40EEC454A5541B3279E6BE00F5141071B05A2454A5541000000E0E20F5141EC51B8CE444A5541666666C6EE0F514185EB5188414A5541CF4CA75FEF0F5141024FED78414A554104E3A2A9F00F514180F9A029414A5541F724CFB8F20F5141BFAB10BE404A5541B28A8E3FF50F51418F2B7F3F404A5541ECDA3D3BF70F51410E77DEC43F4A5541D0D9DF9AF80F5141458CCD423F4A55416EED2D7EFA0F5141E1DBC9143E4A554152B81E05FC0F5141295C8FA23C4A5541713D0AF7FE0F51413D0AD793394A55411F85EBA1F90F51415C8FC235344A5541713D0A27F70F51411F85EBC1344A5541CDCCCC1CF50F5141A4703DEA304A55415C8FC2A5F00F51411F85EBA1324A5541B81E851BEE0F5141EC51B89E334A554148E17A24EC0F514148E17A44344A5541C3F5288CE90F5141AE47E16A354A5541A4703DFAE40F5141CDCCCC2C374A5541713D0A17DF0F5141000000B0384A554152B81E15DC0F51418FC2F5C8374A55413D0AD713D90F5141E17A14FE374A5541E17A14FED60F514152B81E65384A5541C3F528DCD40F51411F85EB213A4A5541E17A148ED00F51413D0AD7833B4A554100000060C40F51413D0AD7933F4A5541AE47E1BAB80F5141A4703D8A424A5541295C8FE2B40F5141C3F5286C434A554114AE4751B10F5141295C8F22444A5541F6285C5FAC0F5141713D0A57444A554100000070AC0F51415C8FC2F5454A5541B81E856BAC0F5141CDCCCC9C484A554166666656AC0F514185EB51984A4A55413D0AD703AC0F51418FC2F5B84C4A5541302B93DFAB0F5141808C84814E4A5541470762BFAB0F51413BFA4F35504A55416414F8A8AB0F51413FBFB574514A5541EE57A6B5AB0F51417DB43289534A554100000050B60F514185EB51884F4A5541A588AB81B90F5141A1B95055564A55417B14AEB7B90F514185EB51C8564A5541000000E0BD0F5141CDCCCC4C554A55415289C0C7BE0F5141DC690A19544A554160DA0341BF0F51418D3AC475534A5541C77E1AACBF0F514155FEAFE0524A55411F85EB31C00F514166666626524A5541D5B63648C10F51415BC95828514A55417B14AE17C20F514148E17A04504A5541EC51B8AEC30F5141EC51B8BE4E4A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>107999 - 341578
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000340000007B14AE17C20F514148E17A04504A5541EC51B8AEC30F5141EC51B8BE4E4A5541D7A3701DC90F5141AE47E1DA4C4A55418FC2F558D60F514152B81E05494A5541000000E0E20F5141EC51B8CE444A5541666666C6EE0F514185EB5188414A5541E17A144EF30F51413D0AD713414A5541AE47E17AF60F5141CDCCCC7C404A5541CDCCCC6CF80F5141D7A370AD3F4A55411F85EB21FA0F5141C3F5286C3E4A554152B81E05FC0F5141295C8FA23C4A5541713D0AF7FE0F51413D0AD793394A55411F85EBA1F90F51415C8FC235344A5541B81E857BF80F514152B81E45334A554185EB5168F70F5141A4703DCA304A55411F85EB71F70F514148E17A04304A5541CDCCCC1CF50F5141A4703DEA304A55415C8FC2A5F00F51411F85EBA1324A5541B81E851BEE0F5141EC51B89E334A554148E17A24EC0F514148E17A44344A5541C3F5288CE90F5141AE47E16A354A5541A4703DFAE40F5141CDCCCC2C374A5541713D0A17DF0F5141000000B0384A554152B81E15DC0F51418FC2F5C8374A55413D0AD713D90F5141E17A14FE374A5541E17A14FED60F514152B81E65384A5541C3F528DCD40F51411F85EB213A4A5541E17A148ED00F51413D0AD7833B4A554100000060C40F51413D0AD7933F4A5541AE47E1BAB80F5141A4703D8A424A5541295C8FE2B40F5141C3F5286C434A554114AE4751B10F5141295C8F22444A5541F6285C5FAC0F5141713D0A57444A554100000070AC0F51415C8FC2F5454A5541B81E856BAC0F5141CDCCCC9C484A554166666656AC0F514185EB51984A4A55413D0AD703AC0F51418FC2F5B84C4A55417B14AE77AB0F51415C8FC2454F4A5541F6285C2FAB0F5141713D0A87504A5541AE47E10AAB0F5141EC51B8AE514A554114AE47F1AA0F514133333383524A554114AE47E1AA0F5141F6285CAF534A55415C8FC205AB0F51411F85EBD1544A554133333363AB0F5141C3F528BC574A55413D0AD7F3AB0F51410AD7A3405C4A55411F85EB61AD0F514152B81EA5604A55417B14AE27AF0F51418FC2F548654A5541333333D3B50F51413D0AD773604A5541000000C0B80F5141CDCCCC0C5D4A55417B14AE67BC0F514148E17A54584A5541EC51B8BEBF0F51411F85EB51534A55417B14AE17C20F514148E17A04504A5541
+</a>
+
+<b>
+0106000000010000000103000000010000003C000000EC51B8AEC30F5141EC51B8BE4E4A554138007084C70F51412DAA2C694D4A5541D7A3701DC90F5141AE47E1DA4C4A55417218FDB2CE0F5141A7A7923C4B4A5541087D23DCD10F51416E5211524A4A55419346E388D70F5141D1D1EB9E484A55414E152B73D90F5141CE300FFA474A554158E32CA4D90F51410F8994E9474A55417F6D1F71DB0F514181F9944E474A5541557A708FDF0F51411CA40EEC454A5541B3279E6BE00F5141071B05A2454A5541000000E0E20F5141EC51B8CE444A5541666666C6EE0F514185EB5188414A5541CF4CA75FEF0F5141024FED78414A554104E3A2A9F00F514180F9A029414A5541F724CFB8F20F5141BFAB10BE404A5541B28A8E3FF50F51418F2B7F3F404A5541ECDA3D3BF70F51410E77DEC43F4A5541D0D9DF9AF80F5141458CCD423F4A55416EED2D7EFA0F5141E1DBC9143E4A554152B81E05FC0F5141295C8FA23C4A5541713D0AF7FE0F51413D0AD793394A55411F85EBA1F90F51415C8FC235344A5541713D0A27F70F51411F85EBC1344A5541CDCCCC1CF50F5141A4703DEA304A55415C8FC2A5F00F51411F85EBA1324A5541B81E851BEE0F5141EC51B89E334A554148E17A24EC0F514148E17A44344A5541C3F5288CE90F5141AE47E16A354A5541A4703DFAE40F5141CDCCCC2C374A5541713D0A17DF0F5141000000B0384A554152B81E15DC0F51418FC2F5C8374A55413D0AD713D90F5141E17A14FE374A5541E17A14FED60F514152B81E65384A5541C3F528DCD40F51411F85EB213A4A5541E17A148ED00F51413D0AD7833B4A554100000060C40F51413D0AD7933F4A5541AE47E1BAB80F5141A4703D8A424A5541295C8FE2B40F5141C3F5286C434A554114AE4751B10F5141295C8F22444A5541F6285C5FAC0F5141713D0A57444A554100000070AC0F51415C8FC2F5454A5541B81E856BAC0F5141CDCCCC9C484A554166666656AC0F514185EB51984A4A55413D0AD703AC0F51418FC2F5B84C4A5541302B93DFAB0F5141808C84814E4A5541470762BFAB0F51413BFA4F35504A55416414F8A8AB0F51413FBFB574514A5541EE57A6B5AB0F51417DB43289534A554100000050B60F514185EB51884F4A5541A588AB81B90F5141A1B95055564A55417B14AEB7B90F514185EB51C8564A5541000000E0BD0F5141CDCCCC4C554A55415289C0C7BE0F5141DC690A19544A554160DA0341BF0F51418D3AC475534A5541C77E1AACBF0F514155FEAFE0524A55411F85EB31C00F514166666626524A5541D5B63648C10F51415BC95828514A55417B14AE17C20F514148E17A04504A5541EC51B8AEC30F5141EC51B8BE4E4A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>110493 - 171476
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000030000000A4703D2A54305141D7A3706D91D05441B81E856B54305141F6285C3F8ED054410AD7A370543051417B14AE0789D054410AD7A37054305141000000C088D0544148E17AF4523051416666664683D054413333333350305141295C8FD27FD05441AE47E1CA4C305141A4703D0A7ED05441E17A14FE4A305141B81E855B7CD05441AE47E1FA463051417B14AE477AD05441C3F5281C41305141C3F528FC79D05441F6285C2F39305141295C8F3277D0544114AE4721373051417B14AE9770D05441D7A3705D333051419A9999F969D05441000000E02D3051415C8FC20565D054419A9999B92730514152B81EA562D0544185EB51C822305141CDCCCC3C61D05441A4703D0A1E30514148E17A845ED05441EC51B83E14305141333333335ED054413D0AD74312305141295C8F225ED054415C8FC215103051410AD7A3105ED05441A4703D3A0B305141CDCCCC2C5ED05441713D0A8704305141713D0AF75DD054417B14AE270230514114AE47B15DD05441E17A140EFE2F5141EC51B8BE5CD054418FC2F538F92F5141C3F5280C5BD0544114AE4771FB2F5141F6285C0F5DD05441295C8F5206305141CDCCCCDC64D054410AD7A31010305141713D0AF76AD05441C3F5289C133051415C8FC2856DD0544114AE473117305141E17A148E70D054413D0AD7831B305141A4703D7A71D054415C8FC2C52130514148E17A3471D054411F85EBC127305141F6285CEF6FD054419A9999792B3051418FC2F5D86ED05441713D0AA72D305141A4703DAA6FD054415C8FC275313051411F85EB3175D05441E17A142E34305141EC51B82E7AD0544152B81E4535305141F6285CCF7DD05441A4703D9A3630514152B81E2580D05441666666C6373051415C8FC26580D054415C8FC2A5383051411F85EBB180D054410AD7A3603C305141295C8F9280D0544185EB51A83E3051415C8FC20582D0544185EB51F83F3051410000001085D05441295C8F524430514185EB510888D05441E17A145E4B3051415C8FC2858CD0544100000010503051419A9999A98ED05441A4703D2A54305141D7A3706D91D05441
+</a>
+
+<b>
+0106000000010000000103000000010000004C0000000AD7A37054305141000000C088D054414FDDDDC053305141845FF23786D054416794F40F53305141DE7F01FD83D054415EFC39DB503051417DDACEE980D05441FEE6B42E4E305141CA2F31C67ED0544199A071244E3051411D1802BF7ED05441AE47E1CA4C305141A4703D0A7ED05441569675C64B30514185AAD1167DD05441458C0ED74A30514111BD3C6F7CD054413C2CFD6E483051410C0D343B7BD05441E0FE29C34630514109EDD86D7AD05441B23E07F341305141898F69C37AD0544106D41F6A4130514133A24CB27AD054410444720341305141DEB42FA17AD05441ACFE50584030514133DAF57E7AD054414DB122DF3D305141DDECD86D7AD0544195567C873A3051412FBA9AB179D054418F16C6EC38305141D3C470D277D054418CBEC15238305141CFA4150577D054418CBEC15238305141CE14689E76D054418CBEC1523830514121AA801576D0544137C44C94373051412CE25D0972D054419A4662EB363051412B02AC4470D0544131CE88AF36305141BAB1C1CF6FD05441BBAA0BF8343051417D914BCB6CD054416B2B095A34305141255092B56BD05441B0DD5D993330514197E4ED626AD054418849146C33305141A49954136AD054417F54A47A313051418E05124668D05441000000E02D3051415C8FC20565D0544140D2571D2D305141412B82BA64D05441C75B35C22C305141F9B102A364D05441C05328F42A305141A16CE1F763D05441B2430E582730514147CFBBB262D054415BC187C32530514115A5241662D0544157AA4708253051412BA6D1E061D0544166B788CE243051410BD65FD061D05441F600B6FF22305141421FB37E61D05441C6402A7F183051411E8F34A35FD0544102450D82073051411E8F34A35FD05441599A01C0003051410C51C2DD60D0544177559E480130514100B7BA3F61D054411E3AD2A6013051414539498361D054417F6438DE023051419A6E9A6262D05441BC83B8BE0E30514152D85F236AD054410AD7A31010305141713D0AF76AD05441AC4AC64A12305141086C5B926CD05441CDFC3D5A18305141630575CD70D054413D0AD7831B305141A4703D7A71D054415C8FC2C52130514148E17A3471D054411F85EBC127305141F6285CEF6FD054419A9999792B3051418FC2F5D86ED05441713D0AA72D305141A4703DAA6FD054415C8FC275313051411F85EB3175D05441E17A142E34305141EC51B82E7AD0544152B81E4535305141F6285CCF7DD054414710B795353051410826975C7ED0544164A33DF13B305141391281847FD05441C286F1F03E305141828AD71D82D05441091767AE3F3051410F1FCB6484D05441EC75E8BF3F30514150D4568D84D0544182AE29CA3F305141615717A584D054412FB705E03F3051415DD2B8D784D05441B36A77254130514125047EDD85D05441295C8F524430514185EB510888D0544145D547AE483051417F6067CF8AD05441A4498FE94C305141037099368DD05441B585E1F14D3051412BFC7FB28DD0544100000010503051419A9999A98ED05441AC75323250305141A7ECA5C08ED054410A9FCA30513051410B40FD378FD05441BFA16CEE53305141BE22442891D05441171F376654305141A67A6F578BD05441FAD3076F543051415AB389AB8AD054410AD7A370543051417B14AE0789D054410AD7A37054305141000000C088D05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>110493 - 352992
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000030000000A4703D2A54305141D7A3706D91D05441B81E856B54305141F6285C3F8ED054410AD7A370543051417B14AE0789D054410AD7A37054305141000000C088D0544148E17AF4523051416666664683D054413333333350305141295C8FD27FD05441AE47E1CA4C305141A4703D0A7ED05441E17A14FE4A305141B81E855B7CD05441AE47E1FA463051417B14AE477AD05441C3F5281C41305141C3F528FC79D05441F6285C2F39305141295C8F3277D0544114AE4721373051417B14AE9770D05441D7A3705D333051419A9999F969D05441000000E02D3051415C8FC20565D054419A9999B92730514152B81EA562D0544185EB51C822305141CDCCCC3C61D05441A4703D0A1E30514148E17A845ED05441EC51B83E14305141333333335ED054413D0AD74312305141295C8F225ED054415C8FC215103051410AD7A3105ED05441A4703D3A0B305141CDCCCC2C5ED05441713D0A8704305141713D0AF75DD054417B14AE270230514114AE47B15DD05441E17A140EFE2F5141EC51B8BE5CD054418FC2F538F92F5141C3F5280C5BD0544114AE4771FB2F5141F6285C0F5DD05441295C8F5206305141CDCCCCDC64D054410AD7A31010305141713D0AF76AD05441C3F5289C133051415C8FC2856DD0544114AE473117305141E17A148E70D054413D0AD7831B305141A4703D7A71D054415C8FC2C52130514148E17A3471D054411F85EBC127305141F6285CEF6FD054419A9999792B3051418FC2F5D86ED05441713D0AA72D305141A4703DAA6FD054415C8FC275313051411F85EB3175D05441E17A142E34305141EC51B82E7AD0544152B81E4535305141F6285CCF7DD05441A4703D9A3630514152B81E2580D05441666666C6373051415C8FC26580D054415C8FC2A5383051411F85EBB180D054410AD7A3603C305141295C8F9280D0544185EB51A83E3051415C8FC20582D0544185EB51F83F3051410000001085D05441295C8F524430514185EB510888D05441E17A145E4B3051415C8FC2858CD0544100000010503051419A9999A98ED05441A4703D2A54305141D7A3706D91D05441
+</a>
+
+<b>
+0106000000010000000103000000010000004C0000000AD7A37054305141000000C088D054414FDDDDC053305141845FF23786D054416794F40F53305141DE7F01FD83D054415EFC39DB503051417DDACEE980D05441FEE6B42E4E305141CA2F31C67ED0544199A071244E3051411D1802BF7ED05441AE47E1CA4C305141A4703D0A7ED05441569675C64B30514185AAD1167DD05441458C0ED74A30514111BD3C6F7CD054413C2CFD6E483051410C0D343B7BD05441E0FE29C34630514109EDD86D7AD05441B23E07F341305141898F69C37AD0544106D41F6A4130514133A24CB27AD054410444720341305141DEB42FA17AD05441ACFE50584030514133DAF57E7AD054414DB122DF3D305141DDECD86D7AD0544195567C873A3051412FBA9AB179D054418F16C6EC38305141D3C470D277D054418CBEC15238305141CFA4150577D054418CBEC15238305141CE14689E76D054418CBEC1523830514121AA801576D0544137C44C94373051412CE25D0972D054419A4662EB363051412B02AC4470D0544131CE88AF36305141BAB1C1CF6FD05441BBAA0BF8343051417D914BCB6CD054416B2B095A34305141255092B56BD05441B0DD5D993330514197E4ED626AD054418849146C33305141A49954136AD054417F54A47A313051418E05124668D05441000000E02D3051415C8FC20565D0544140D2571D2D305141412B82BA64D05441C75B35C22C305141F9B102A364D05441C05328F42A305141A16CE1F763D05441B2430E582730514147CFBBB262D054415BC187C32530514115A5241662D0544157AA4708253051412BA6D1E061D0544166B788CE243051410BD65FD061D05441F600B6FF22305141421FB37E61D05441C6402A7F183051411E8F34A35FD0544102450D82073051411E8F34A35FD05441599A01C0003051410C51C2DD60D0544177559E480130514100B7BA3F61D054411E3AD2A6013051414539498361D054417F6438DE023051419A6E9A6262D05441BC83B8BE0E30514152D85F236AD054410AD7A31010305141713D0AF76AD05441AC4AC64A12305141086C5B926CD05441CDFC3D5A18305141630575CD70D054413D0AD7831B305141A4703D7A71D054415C8FC2C52130514148E17A3471D054411F85EBC127305141F6285CEF6FD054419A9999792B3051418FC2F5D86ED05441713D0AA72D305141A4703DAA6FD054415C8FC275313051411F85EB3175D05441E17A142E34305141EC51B82E7AD0544152B81E4535305141F6285CCF7DD054414710B795353051410826975C7ED0544164A33DF13B305141391281847FD05441C286F1F03E305141828AD71D82D05441091767AE3F3051410F1FCB6484D05441EC75E8BF3F30514150D4568D84D0544182AE29CA3F305141615717A584D054412FB705E03F3051415DD2B8D784D05441B36A77254130514125047EDD85D05441295C8F524430514185EB510888D0544145D547AE483051417F6067CF8AD05441A4498FE94C305141037099368DD05441B585E1F14D3051412BFC7FB28DD0544100000010503051419A9999A98ED05441AC75323250305141A7ECA5C08ED054410A9FCA30513051410B40FD378FD05441BFA16CEE53305141BE22442891D05441171F376654305141A67A6F578BD05441FAD3076F543051415AB389AB8AD054410AD7A370543051417B14AE0789D054410AD7A37054305141000000C088D05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>367674 - 3114867
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+010600000001000000010300000001000000170000000AD7A300FDCB5041C3F5287C05385441E17A143EFCCB5041333333B3FC3754415C8FC2F50CCC5041B81E852BF8375441E17A14DE24CC5041B81E853BF23754413D0AD7433DCC5041713D0A47ED375441AE47E15A3CCC504185EB51D8E1375441333333D339CC504166666606DD375441C3F528FC2FCC5041A4703DEADD375441E17A146E06CC5041F6285CEFE3375441C3F5285C02CC5041B81E858BE73754415C8FC225FECB5041295C8F62EB3754411F85EB21F9CB504185EB5188EC375441CDCCCCCCF2CB504148E17A44EA37544152B81E55E4CB5041CDCCCCCCE6375441AE47E1EACCCB504166666626E537544133333373CCCB5041AE47E1BAEB375441CDCCCC5CCCCB5041F6285CBFEF375441D7A3700DCCCB504148E17A94F7375441C3F5285CD2CB5041333333D3FE375441A4703D4AD5CB5041EC51B81E023854410AD7A3A0DCCB50419A9999590338544100000000E9CB5041C3F528EC043854410AD7A300FDCB5041C3F5287C05385441
+</a>
+
+<b>
+01060000000100000001030000000100000009000000B8B2F1ABDFCB5041316BA96AC337544179BA2540D7CB50412147CEE0E537544116C6AC47D8CB5041743D60F3E5375441527C57DCDFCB5041A852217CE63754410D04EA8DE3CB5041A22EC3BEE63754417530F85AE4CB504161E96FB8E63754411EC2880FE9CB504104A3892DD33754419A999909ECCB5041C3F5281CC7375441B8B2F1ABDFCB5041316BA96AC3375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>367674 - 3503049
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+010600000001000000010300000001000000170000000AD7A300FDCB5041C3F5287C05385441E17A143EFCCB5041333333B3FC3754415C8FC2F50CCC5041B81E852BF8375441E17A14DE24CC5041B81E853BF23754413D0AD7433DCC5041713D0A47ED375441AE47E15A3CCC504185EB51D8E1375441333333D339CC504166666606DD375441C3F528FC2FCC5041A4703DEADD375441E17A146E06CC5041F6285CEFE3375441C3F5285C02CC5041B81E858BE73754415C8FC225FECB5041295C8F62EB3754411F85EB21F9CB504185EB5188EC375441CDCCCCCCF2CB504148E17A44EA37544152B81E55E4CB5041CDCCCCCCE6375441AE47E1EACCCB504166666626E537544133333373CCCB5041AE47E1BAEB375441CDCCCC5CCCCB5041F6285CBFEF375441D7A3700DCCCB504148E17A94F7375441C3F5285CD2CB5041333333D3FE375441A4703D4AD5CB5041EC51B81E023854410AD7A3A0DCCB50419A9999590338544100000000E9CB5041C3F528EC043854410AD7A300FDCB5041C3F5287C05385441
+</a>
+
+<b>
+01060000000100000001030000000100000009000000B8B2F1ABDFCB5041316BA96AC337544179BA2540D7CB50412147CEE0E537544116C6AC47D8CB5041743D60F3E5375441527C57DCDFCB5041A852217CE63754410D04EA8DE3CB5041A22EC3BEE63754417530F85AE4CB504161E96FB8E63754411EC2880FE9CB504104A3892DD33754419A999909ECCB5041C3F5281CC7375441B8B2F1ABDFCB5041316BA96AC3375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>535981 - 87189
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000002500000051320C71525551411D68A0C020635441333333E34E555141AE47E13A2363544148E17AF44B5551416666664625635441A4703DBA495551419A9999092763544152B81E2548555141713D0A67286354410000009046555141B81E85BB29635441B81E85CB4355514114AE47912B635441666666F6415551417B14AEB72C635441CDCCCC0C3F55514185EB51682E6354419A9999093D555141E17A144E2F6354411F85EB613B55514185EB51D82F6354417B14AE6739555141A4703DDA3063544185EB51083755514152B81E2532635441C3F5280C34555141CDCCCC0C3463544152B81E55345551410AD7A36037635441A4703D6A345551419A9999593863544114AE4751365551411F85EBB1546354419A999999375551419A9999C9676354418FC2F5B838555141666666F667635441F6285C0F3B5551418FC2F508686354411F85EBD13C555141AE47E1DA67635441C3F5288C3E5551410AD7A35067635441000000A03F5551413333333366635441000000A03F5551415C8FC2A5636354413D0AD78344555141EC51B8FE616354413D0AD7C345555141C3F5285C6163544118D34ECE45555141299C247D5E6354412A6465064B555141E5F71E2F5D635441CA549F134F555141A0E87AA25C6354416B45D92053555141F9758A1D5D6354410A36132E57555141B3FB47525D635441F48DE4BC55555141C56EC06F4A63544135B033935B5551418135596048635441C1A4B8295B55514115580E69406354419313808B5A555141D84CD7CB36635441AB6728F7585551411E7FB8F91C63544151320C71525551411D68A0C020635441050000009A9999C9375551411F85EB11426354415C8FC25539555141666666F64163544114AE47713955514148E17A9443635441C3F528DC37555141E17A149E436354419A9999C9375551411F85EB1142635441
+</a>
+
+<b>
+01060000000200000001030000000100000022000000ED0EEB14575551412AA6D8085C635441B36FD70F5755514140CA5DC65B635441DE6FD9FF565551412AE5F1F45A635441B2CCAEA15655514117BDCF2356635441F75ACE9256555141C840FF6055635441E25E36685655514172FA3833536354417C8F6758565551412C093764526354417C3D0855565551415CA60D38526354412B6A912256555141E68D36A34F6354415B3AAAE255555141D91B635E4C635441F48DE4BC55555141C66EC06F4A6354411BAF297B5B555141E735D56848635441123D5DEF5A555141929947DD3C6354419613808B5A555141D84CD7CB36635441E057B84159555141FBCAA6BC21635441FA0D53DD58555141531FCC181D63544192E13E8B5755514142DD55F41E635441BFF495135A555141BE5958EB46635441DEFE2015545551419BD05E3E4963544194C8F65655555141676B969C5B635441165C5E024D5551413A6E1D745B6354416441FEE64A555141E3282BC15B635441FADB14C9455551418CE3380E5C63544199BB921546555141ED9C68DA5D63544115F4091F49555141EDD3F5A85D635441286465064B555141E8F71E2F5D635441E668E3A74C5551419E0883F65C635441DF03CB244D555141BD5B93E55C635441CF549F134F5551419FE87AA25C63544179DE137951555141C14F43EB5C635441000DA59F51555141B8B4D6EF5C635441F5102CAC54555141A35DA4315D6354415034D12957555141E415861A5D635441ED0EEB14575551412AA6D8085C63544101030000000100000004000000BC1A64B44555514194F196E05D635441A39622164655514196438BDC5D63544199BB921546555141ED9C68DA5D635441BC1A64B44555514194F196E05D635441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>535981 - 266812
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000002500000051320C71525551411D68A0C020635441333333E34E555141AE47E13A2363544148E17AF44B5551416666664625635441A4703DBA495551419A9999092763544152B81E2548555141713D0A67286354410000009046555141B81E85BB29635441B81E85CB4355514114AE47912B635441666666F6415551417B14AEB72C635441CDCCCC0C3F55514185EB51682E6354419A9999093D555141E17A144E2F6354411F85EB613B55514185EB51D82F6354417B14AE6739555141A4703DDA3063544185EB51083755514152B81E2532635441C3F5280C34555141CDCCCC0C3463544152B81E55345551410AD7A36037635441A4703D6A345551419A9999593863544114AE4751365551411F85EBB1546354419A999999375551419A9999C9676354418FC2F5B838555141666666F667635441F6285C0F3B5551418FC2F508686354411F85EBD13C555141AE47E1DA67635441C3F5288C3E5551410AD7A35067635441000000A03F5551413333333366635441000000A03F5551415C8FC2A5636354413D0AD78344555141EC51B8FE616354413D0AD7C345555141C3F5285C6163544118D34ECE45555141299C247D5E6354412A6465064B555141E5F71E2F5D635441CA549F134F555141A0E87AA25C6354416B45D92053555141F9758A1D5D6354410A36132E57555141B3FB47525D635441F48DE4BC55555141C56EC06F4A63544135B033935B5551418135596048635441C1A4B8295B55514115580E69406354419313808B5A555141D84CD7CB36635441AB6728F7585551411E7FB8F91C63544151320C71525551411D68A0C020635441050000009A9999C9375551411F85EB11426354415C8FC25539555141666666F64163544114AE47713955514148E17A9443635441C3F528DC37555141E17A149E436354419A9999C9375551411F85EB1142635441
+</a>
+
+<b>
+01060000000200000001030000000100000022000000ED0EEB14575551412AA6D8085C635441B36FD70F5755514140CA5DC65B635441DE6FD9FF565551412AE5F1F45A635441B2CCAEA15655514117BDCF2356635441F75ACE9256555141C840FF6055635441E25E36685655514172FA3833536354417C8F6758565551412C093764526354417C3D0855565551415CA60D38526354412B6A912256555141E68D36A34F6354415B3AAAE255555141D91B635E4C635441F48DE4BC55555141C66EC06F4A6354411BAF297B5B555141E735D56848635441123D5DEF5A555141929947DD3C6354419613808B5A555141D84CD7CB36635441E057B84159555141FBCAA6BC21635441FA0D53DD58555141531FCC181D63544192E13E8B5755514142DD55F41E635441BFF495135A555141BE5958EB46635441DEFE2015545551419BD05E3E4963544194C8F65655555141676B969C5B635441165C5E024D5551413A6E1D745B6354416441FEE64A555141E3282BC15B635441FADB14C9455551418CE3380E5C63544199BB921546555141ED9C68DA5D63544115F4091F49555141EDD3F5A85D635441286465064B555141E8F71E2F5D635441E668E3A74C5551419E0883F65C635441DF03CB244D555141BD5B93E55C635441CF549F134F5551419FE87AA25C63544179DE137951555141C14F43EB5C635441000DA59F51555141B8B4D6EF5C635441F5102CAC54555141A35DA4315D6354415034D12957555141E415861A5D635441ED0EEB14575551412AA6D8085C63544101030000000100000004000000BC1A64B44555514194F196E05D635441A39622164655514196438BDC5D63544199BB921546555141ED9C68DA5D635441BC1A64B44555514194F196E05D635441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>111997 - 3138552
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000270000001F85EB810B4551415C8FC205B9DE5441666666C605455141B81E853BB9DE54413333336302455141D7A370FDB8DE54418FC2F5A800455141B81E859BB0DE544148E17AA4EF445141E17A14DEACDE5441F6285C1FEC445141AE47E1FAABDE544100000010D944514185EB5148B0DE54411F85EB01D14451411F85EBD1B1DE54419A9999A9BE445141F6285CCFB0DE5441E17A141EAB44514152B81EF5B2DE544100000090A84451418FC2F588C7DE54413D0AD7B3A644514185EB5168DBDE54411F85EB11A4445141C3F5285CF3DE5441F6285C6FA544514185EB5148F4DE544100000090A8445141295C8F72F4DE5441A4703D2AC44451415C8FC215F3DE54411F85EB81D4445141C3F5285CF2DE54417B14AE87E744514185EB5128EFDE54415C8FC2F5F544514100000010ECDE5441666666F6F6445141EC51B8DEEBDE5441F6285CCF0D45514114AE47C1E7DE54411F85EBE1254551411F85EBC1E1DE54419A9999392E45514114AE4771E0DE54415C8FC2153245514166666636DFDE54416666664637455141D7A370ADDFDE5441CDCCCC8C3B45514152B81E35E1DE54411F85EB113D4551415C8FC2D5D2DE5441295C8FF23C4551415C8FC2F5CFDE544114AE47A13B455141713D0AD7CEDE5441E17A149E3545514166666686CFDE544152B81E2531455141295C8F92CFDE544148E17AA42B455141E17A14CECEDE54417B14AE772B455141C3F528CCCDDE5441333333C32A4551415C8FC295C9DE5441D7A370AD2A4551419A9999C9C3DE5441295C8F62184551410AD7A330C8DE54413D0AD7F3104551417B14AEF7CADE5441F6285C1F0E4551411F85EB31BDDE54411F85EB810B4551415C8FC205B9DE5441
+</a>
+
+<b>
+01060000000100000001030000000100000017000000A9CD12E8EC445141C06B7C2DACDE5441C182CBF6EC445141AFA03231ACDE5441CE7C3C76ED4451414609C397B1DE544186871DECED445141015FCB46B5DE54411ABD8239F0445141DF894F1EB7DE544135E3A25CF74451414D9F110AB8DE544188B9379200455141A9240245B8DE5441AED9DAF3014551412E15BD1ABDDE544190689397F74451410046BEB3C4DE544189D24425F144514185367989C9DE5441BF3792FEEF445141D276BF4CCCDE5441F662C32CF2445141459D8CC6D3DE5441BC057810F54451410B4041AAD6DE54414BBE9B46FB4451415AB2A15BD4DE5441307F6E9003455141A05C99ACD0DE54416180879D0E455141BFE6ED9BCBDE54411B75E4BF0E4551415318578BCBDE54413515BD020A45514128CA95E1B9DE5441D2F97D5503455141A7240245B8DE54412A3447570045514189B3BAE8ADDE5441B58836F9F8445141AB883611ACDE54419B6216D6F144514198F86460ABDE5441A9CD12E8EC445141C06B7C2DACDE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>111997 - 3382312
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000270000001F85EB810B4551415C8FC205B9DE5441666666C605455141B81E853BB9DE54413333336302455141D7A370FDB8DE54418FC2F5A800455141B81E859BB0DE544148E17AA4EF445141E17A14DEACDE5441F6285C1FEC445141AE47E1FAABDE544100000010D944514185EB5148B0DE54411F85EB01D14451411F85EBD1B1DE54419A9999A9BE445141F6285CCFB0DE5441E17A141EAB44514152B81EF5B2DE544100000090A84451418FC2F588C7DE54413D0AD7B3A644514185EB5168DBDE54411F85EB11A4445141C3F5285CF3DE5441F6285C6FA544514185EB5148F4DE544100000090A8445141295C8F72F4DE5441A4703D2AC44451415C8FC215F3DE54411F85EB81D4445141C3F5285CF2DE54417B14AE87E744514185EB5128EFDE54415C8FC2F5F544514100000010ECDE5441666666F6F6445141EC51B8DEEBDE5441F6285CCF0D45514114AE47C1E7DE54411F85EBE1254551411F85EBC1E1DE54419A9999392E45514114AE4771E0DE54415C8FC2153245514166666636DFDE54416666664637455141D7A370ADDFDE5441CDCCCC8C3B45514152B81E35E1DE54411F85EB113D4551415C8FC2D5D2DE5441295C8FF23C4551415C8FC2F5CFDE544114AE47A13B455141713D0AD7CEDE5441E17A149E3545514166666686CFDE544152B81E2531455141295C8F92CFDE544148E17AA42B455141E17A14CECEDE54417B14AE772B455141C3F528CCCDDE5441333333C32A4551415C8FC295C9DE5441D7A370AD2A4551419A9999C9C3DE5441295C8F62184551410AD7A330C8DE54413D0AD7F3104551417B14AEF7CADE5441F6285C1F0E4551411F85EB31BDDE54411F85EB810B4551415C8FC205B9DE5441
+</a>
+
+<b>
+01060000000100000001030000000100000017000000A9CD12E8EC445141C06B7C2DACDE5441C182CBF6EC445141AFA03231ACDE5441CE7C3C76ED4451414609C397B1DE544186871DECED445141015FCB46B5DE54411ABD8239F0445141DF894F1EB7DE544135E3A25CF74451414D9F110AB8DE544188B9379200455141A9240245B8DE5441AED9DAF3014551412E15BD1ABDDE544190689397F74451410046BEB3C4DE544189D24425F144514185367989C9DE5441BF3792FEEF445141D276BF4CCCDE5441F662C32CF2445141459D8CC6D3DE5441BC057810F54451410B4041AAD6DE54414BBE9B46FB4451415AB2A15BD4DE5441307F6E9003455141A05C99ACD0DE54416180879D0E455141BFE6ED9BCBDE54411B75E4BF0E4551415318578BCBDE54413515BD020A45514128CA95E1B9DE5441D2F97D5503455141A7240245B8DE54412A3447570045514189B3BAE8ADDE5441B58836F9F8445141AB883611ACDE54419B6216D6F144514198F86460ABDE5441A9CD12E8EC445141C06B7C2DACDE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>114502 - 307399
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000100000008FC2F5989CD950419A9999C985975441E17A14BE96D9504152B81EC58C9754413D0AD77390D95041333333839597544152B81EE589D9504100000080A0975441A4703DBA85D9504152B81E15A8975441B81E85BB82D950410AD7A3B0AE975441F6285C5F7DD950410AD7A360BD975441295C8F127AD95041295C8F52C69754411F85EBF188D950413D0AD723C89754410AD7A37089D9504133333333C897544185EB51D88AD950419A999999C2975441333333A38DD950413D0AD753B99754410AD7A3309CD95041A4703D0AA09754410AD7A310A7D9504114AE47A1909754410AD7A360A8D95041A4703D9A8E9754418FC2F5989CD950419A9999C985975441
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000395AA2FB85D9504109B3239EA7975441A4703DBA85D9504152B81E15A897544145AAFB9F83D95041F02B9CB8AC975441B81E85BB82D950410AD7A3B0AE975441F6285C5F7DD950410AD7A360BD975441295C8F127AD95041295C8F52C6975441D780B3EA7CD950418BF48AABC6975441CE2AFF0B7DD95041131E4024C6975441202FDE157DD950418D67C811C69754414494821E7DD95041D18AB5FEC59754415D639F247DD950411EDCC2EEC5975441B6F97D3D85D95041E33425FEAE9754418EB9449F8ED950419C06DA989D9754412F33CBB092D95041427B52E396975441F5E0890A96D950418DF505B091975441E0EE0F7D9BD950418F64DEE08A975441E93EC4399ED95041925110C087975441FEAAD0469ED95041EE5A25B0879754417D2703539ED95041FEEE1F9F87975441A3F6115E9ED95041989E578D87975441F5FAF0679ED95041D4E8DF7A87975441196095709ED950410D0CCD6787975441EDADF5779ED9504129F1335487975441A0CE097E9ED950418F132A40879754419E4C56809ED95041602C4E368797544104754F039ED95041F861BFD8869754416E2C6CEE9DD95041A5FF1DC9869754411B0467B99DD95041C92C71A1869754417C90EF989CD950411BFDA0C985975441F59C0E589AD9504177ED9879889754412FA8CC6B97D950410C84F2F58B975441EA10C57696D9504105013C288D975441655CDA4096D9504190722C738D9754415D41A83E96D950417EB839768D975441F89687C595D95041DACE941E8E9754410A48FB6492D95041137C38D092975441C06A575690D95041426AA0B495975441B95F664990D950410FA04FCA95975441C7F7224190D95041B81E28D895975441343EC0668CD95041D0A9D44F9C975441CF63242589D950419C9B4ADDA1975441395AA2FB85D9504109B3239EA7975441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>115120 - 190957
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000001200000052B81E7554DE50411F85EB412F9754410AD7A35058DE504148E17A542B975441E17A144E57DE50410AD7A3102A975441A4703DCA4EDE5041000000501F97544152B81E9548DE50418FC2F578179754417B14AE272BDE5041A4703D0A1E975441333333E332DE50413D0AD7F34297544148E17A2433DE5041CDCCCC2C44975441C3F5281C40DE5041C3F528BC4197544148E17A144CDE5041C3F5286C3E97544185EB51A84FDE5041295C8FF24F9754413D0AD75357DE504185EB5168749754415C8FC2D55ADE5041D7A370FD73975441B81E85EB5CDE5041EC51B80E73975441666666465DDE50413D0AD773729754411F85EB1151DE50413D0AD733389754413333338350DE5041D7A370ED3597544152B81E7554DE50411F85EB412F975441
+</a>
+
+<b>
+0106000000010000000103000000010000001700000042FBB57454DE50413F9B9C422F97544150F91D7554DE504147B3EC412F9754410D5B4B8455DE50411F25D32D2E975441C804A35058DE5041F19A7A542B975441942DF79B57DE5041D79030722A975441E17A144E57DE50410AD7A3102A975441A4703DCA4EDE5041000000501F9754411C68BCC94BDE5041B86C63851B97544183241E9548DE50413483F678179754411D48AE272BDE5041448A3D0A1E9754417B651E2E33DE50416381FC2A44975441C3F5281C40DE5041C3F528BC4197544148E17A144CDE5041C3F5286C3E9754413D0AD75357DE504185EB5168749754415C8FC2D55ADE5041D7A370FD73975441666666465DDE50413D0AD7737297544186AFEB1151DE5041B3D4D73338975441E845D0E950DE50414F4E2D9037975441C0DDC8E950DE5041A1140F903797544191FA827E50DE5041DACA28F6359754416B2F568350DE5041A167FFED359754413333338350DE5041D7A370ED3597544142FBB57454DE50413F9B9C422F975441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>115120 - 375692
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000001200000052B81E7554DE50411F85EB412F9754410AD7A35058DE504148E17A542B975441E17A144E57DE50410AD7A3102A975441A4703DCA4EDE5041000000501F97544152B81E9548DE50418FC2F578179754417B14AE272BDE5041A4703D0A1E975441333333E332DE50413D0AD7F34297544148E17A2433DE5041CDCCCC2C44975441C3F5281C40DE5041C3F528BC4197544148E17A144CDE5041C3F5286C3E97544185EB51A84FDE5041295C8FF24F9754413D0AD75357DE504185EB5168749754415C8FC2D55ADE5041D7A370FD73975441B81E85EB5CDE5041EC51B80E73975441666666465DDE50413D0AD773729754411F85EB1151DE50413D0AD733389754413333338350DE5041D7A370ED3597544152B81E7554DE50411F85EB412F975441
+</a>
+
+<b>
+0106000000010000000103000000010000001700000042FBB57454DE50413F9B9C422F97544150F91D7554DE504147B3EC412F9754410D5B4B8455DE50411F25D32D2E975441C804A35058DE5041F19A7A542B975441942DF79B57DE5041D79030722A975441E17A144E57DE50410AD7A3102A975441A4703DCA4EDE5041000000501F9754411C68BCC94BDE5041B86C63851B97544183241E9548DE50413483F678179754411D48AE272BDE5041448A3D0A1E9754417B651E2E33DE50416381FC2A44975441C3F5281C40DE5041C3F528BC4197544148E17A144CDE5041C3F5286C3E9754413D0AD75357DE504185EB5168749754415C8FC2D55ADE5041D7A370FD73975441666666465DDE50413D0AD7737297544186AFEB1151DE5041B3D4D73338975441E845D0E950DE50414F4E2D9037975441C0DDC8E950DE5041A1140F903797544191FA827E50DE5041DACA28F6359754416B2F568350DE5041A167FFED359754413333338350DE5041D7A370ED3597544142FBB57454DE50413F9B9C422F975441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>115473 - 189825
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000060000009A99991916D150411F85EB8119925441AE47E1CA12D15041295C8FF2239254410000008030D150411F85EB3130925441F6285C9F2FD15041E17A148E2D925441A4703DFA2BD15041713D0A87229254419A99991916D150411F85EB8119925441
+</a>
+
+<b>
+01060000000100000001030000000100000009000000737D991916D15041FBDDEB8119925441A8D5B7D312D15041CC3A50EF239254419148FF7F30D15041415DE93130925441CD99CB5730D15041675AF6B82F92544139DA69DF2FD150415FB5C94E2E92544179C55B9F2FD150410541158E2D925441E8316BE42DD1504150FC03522892544129AB3DFA2BD150417DEE0A8722925441737D991916D15041FBDDEB8119925441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>115473 - 374757
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000060000009A99991916D150411F85EB8119925441AE47E1CA12D15041295C8FF2239254410000008030D150411F85EB3130925441F6285C9F2FD15041E17A148E2D925441A4703DFA2BD15041713D0A87229254419A99991916D150411F85EB8119925441
+</a>
+
+<b>
+01060000000100000001030000000100000009000000737D991916D15041FBDDEB8119925441A8D5B7D312D15041CC3A50EF239254419148FF7F30D15041415DE93130925441CD99CB5730D15041675AF6B82F92544139DA69DF2FD150415FB5C94E2E92544179C55B9F2FD150410541158E2D925441E8316BE42DD1504150FC03522892544129AB3DFA2BD150417DEE0A8722925441737D991916D15041FBDDEB8119925441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>976291 - 379399
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000001900000048E17A3470AD5041713D0A6773DD5441AE47E1EA6DAD504148E17A5475DD5441E17A145E6DAD504114AE47217CDD5441C3F528FC6AAD5041E17A14CE87DD5441E17A147E6CAD5041F6285C9F89DD544185EB51D87CAD504185EB51388EDD5441D7A3704D80AD50410AD7A3F08DDD5441EC51B8BE7EAD5041A4703D7A83DD544152B81E0583AD5041CDCCCCFC7CDD5441D7A3705D7EAD5041F6285C9F7ADD54410AD7A3308BAD5041A4703DCA6EDD5441EC51B80E91AD504148E17A646BDD5441AE47E12A98AD5041713D0AA762DD54413D0AD7F39FAD50418FC2F5F860DD54418FC2F528ADAD50417B14AE375FDD54417B14AEB7B8AD504152B81EC55FDD54410AD7A3D0BBAD5041AE47E10A5BDD5441CDCCCC8CAEAD504185EB51A859DD54415C8FC2E599AD504148E17A145BDD5441D7A3700D93AD50410AD7A3605CDD5441D7A3702D81AD5041D7A3701D65DD5441A4703D8A77AD5041A4703D3A6DDD54411F85EBF178AD50417B14AED771DD5441295C8FD274AD5041713D0AF775DD544148E17A3470AD5041713D0A6773DD5441
+</a>
+
+<b>
+01060000000100000001030000000100000035000000EBE51426AEAD50411D2065AF59DD5441548806D299AD5041BDA15A4D5BDD5441DB2447D292AD5041091CB4B35CDD54412BACE85281AD5041CDF9CC1965DD5441BE9072AC77AD50416276AE396DDD544101C27ADD78AD50412B74E7EA70DD5441069F0AE978AD50417F4B84BA71DD54411F85EBF178AD50417B14AED771DD544114308CC578AD504186690D0472DD544143E49AE374AD504157B5FEE575DD5441295C8FD274AD5041713D0AF775DD54417D660F5D73AD50416D3D7B6775DD5441387BE31C71AD50412AD7622774DD544148E17A3470AD5041713D0A6773DD5441652AF2F36DAD5041A03FD74C75DD5441A9674A7E6DAD504149C7D7F67BDD5441140DE2FC6AAD504107A2F3CE87DD5441E17A147E6CAD5041F6285C9F89DD5441F5F23DDF70AD5041EF0693DA8ADD5441851469A87CAD5041BC68A9ED8DDD5441A45A026480AD5041D844F7CB81DD5441772642B982AD50419441315D7DDD5441D08EC20E7EAD50419BB8C4547ADD5441FE7728A883AD504184E9BE9073DD544159954EEC86AD5041B11D7F3B71DD54417F527B9F87AD504165A325D56FDD544161C187D28BAD504192D7E57F6DDD544188CDBDA98DAD50418F9BA65B6DDD544193BC45A98EAD50416D5BB0C76CDD5441712DFBFA8FAD5041339C24046CDD5441CB817AF490AD50415D77ECEE6ADD544100E2738593AD5041025AC6AA67DD54415BFF99C996AD5041E4132DEF63DD5441E35080B897AD5041D570601162DD5441D46259C99DAD5041AFB3335E61DD5441828DCEEA9EAD5041F96F273261DD54413D0AD7F39FAD50418FC2F5F860DD54413983CC5DA3AD50410445D48460DD54416C0CB284A8AD504101A520BC5FDD54415372F1F8A9AD5041EA8D1CA45FDD54418FC2F528ADAD50417B14AE375FDD544112109F19AFAD504129316C4F5FDD544147042BC0AFAD50413E7CAD445FDD5441EF907C57B0AD504145359E5E5FDD5441ECDA123BB6AD504121F8AFA65FDD544172CE8841B8AD504174DC78BF5FDD54414AFCC16BB8AD50418C967DC15FDD5441D5B7C68EB8AD50416A242AC35FDD5441F2793FC1BAAD50418C3F16A95CDD5441D9F5E35EBBAD504129F07CB85BDD5441A88A97CDBBAD50410732880F5BDD5441D26D055DAEAD504102649CAB59DD5441EBE51426AEAD50411D2065AF59DD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>117456 - 356904
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000005000000AE47E11AA5C6504133333383A9AB5441AE47E1CAA8C65041C3F5284C98AB5441B81E854B73C650413D0AD7D38EAB5441D7A370AD6FC65041A4703DFA9FAB5441AE47E11AA5C6504133333383A9AB5441
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000A71E5DCF72C65041C3FF712091AB544194FBB24372C65041EEC092B693AB544157E3FF0672C65041F22957D694AB5441AAFDABD571C65041200B32C095AB544117A4157071C650418611CEA197AB54417E062F6F71C65041876113A697AB54411CEE637770C650416037D33C9CAB544170BECEA773C6504164B6665A9EAB54417E29E084A5C6504160B15C94A7AB54414DF759DBA5C65041B7F28EE7A5AB54412BA1F97EA7C650419F46A6599EAB544140B9687AA8C650413522D6C399AB544159A4E7F472C650415205786E90AB5441A71E5DCF72C65041C3FF712091AB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>117457 - 356832
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000007000000A4703DBA3EC65041E17A141ED4AB5441F6285CAF3AC65041CDCCCC9CCDAB54418FC2F568E8C5504185EB51B8D1AB54418FC2F568EBC550415C8FC245D8AB544114AE4711ECC5504152B81EB5D9AB5441295C8F623FC65041E17A142ED5AB5441A4703DBA3EC65041E17A141ED4AB5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000DF21D2603FC650417FAC2C2ED5AB5441CB7F55B83EC65041074F031BD4AB544153F416C235C65041DB7A9690D4AB5441AB5D126BEBC5504100705E4AD8AB5441F6068914ECC55041866FF1B4D9AB5441DBE99E7BECC550416A1859ADD9AB5441D454A779ECC55041F6C372AFD9AB5441EBFD0C8CECC550414BD772AED9AB5441A4B445A0ECC55041648959ADD9AB54419228906AEDC55041AB715BA2D9AB54413E5B50BAF7C55041C88BE912D9AB5441DF21D2603FC650417FAC2C2ED5AB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>119051 - 3179431
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000D000000D7A3708DFCCA50413333334398AA5441295C8FB22BCB5041A4703DFA91AA54415C8FC2852DCB5041000000B090AA5441F6285C4F29CB50416666665685AA5441AE47E1AA26CB50411F85EBA179AA5441C3F5285CFACA5041C3F528BC89AA5441A4703DEAF7CA5041333333738AAA54410AD7A320F8CA50413D0AD7838EAA544166666626F8CA50415C8FC2D58EAA544166666666F8CA50415C8FC26592AA5441666666F6F8CA50410AD7A36092AA5441C3F5288CFBCA50419A99994992AA5441D7A3708DFCCA50413333334398AA5441
+</a>
+
+<b>
+0106000000010000000103000000010000000E00000014FF252E0ACB50416F2824C29BAA5441AAF35A8F16CB5041FE3CACA99AAA5441AC29A09A1ECB50415C324E9898AA54418D185CE324CB50417A0782CC96AA5441FFE611002BCB50418BEE081292AA5441943019D714CB50413C8E4F0695AA544191DB99F904CB50411AF2C12397AA54411714F396FCCA50411DCB007A98AA54416A73CEFFFCCA5041498EB9E89AAA54419EE2DD11FDCA5041DCAFD8ED9BAA54413D0AD723FDCA5041EC51B8BE9BAA5441E619DF4300CB5041473CA2D79BAA54411870A54901CB5041F71FC9DF9BAA544114FF252E0ACB50416F2824C29BAA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>119051 - 3584076
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000D000000D7A3708DFCCA50413333334398AA5441295C8FB22BCB5041A4703DFA91AA54415C8FC2852DCB5041000000B090AA5441F6285C4F29CB50416666665685AA5441AE47E1AA26CB50411F85EBA179AA5441C3F5285CFACA5041C3F528BC89AA5441A4703DEAF7CA5041333333738AAA54410AD7A320F8CA50413D0AD7838EAA544166666626F8CA50415C8FC2D58EAA544166666666F8CA50415C8FC26592AA5441666666F6F8CA50410AD7A36092AA5441C3F5288CFBCA50419A99994992AA5441D7A3708DFCCA50413333334398AA5441
+</a>
+
+<b>
+0106000000010000000103000000010000000E00000014FF252E0ACB50416F2824C29BAA5441AAF35A8F16CB5041FE3CACA99AAA5441AC29A09A1ECB50415C324E9898AA54418D185CE324CB50417A0782CC96AA5441FFE611002BCB50418BEE081292AA5441943019D714CB50413C8E4F0695AA544191DB99F904CB50411AF2C12397AA54411714F396FCCA50411DCB007A98AA54416A73CEFFFCCA5041498EB9E89AAA54419EE2DD11FDCA5041DCAFD8ED9BAA54413D0AD723FDCA5041EC51B8BE9BAA5441E619DF4300CB5041473CA2D79BAA54411870A54901CB5041F71FC9DF9BAA544114FF252E0ACB50416F2824C29BAA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>119425 - 190947
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000D00000014AE47718DC95041CDCCCCACBFAD5441B81E850B8CC95041713D0A97B7AD54410AD7A3508DC95041E17A14DEAEAD5441CDCCCCBC8DC95041EC51B89EAAAD5441B81E85FB85C950418FC2F588ACAD5441C3F528EC74C95041EC51B8BEB0AD54411F85EB316DC95041AE47E13ACCAD5441F6285C1F6EC95041F6285C7FCDAD54413D0AD70382C95041EC51B86ECDAD5441713D0AF794C95041713D0A47CFAD5441D7A3703D8FC9504114AE4741C9AD544114AE47B18DC950413D0AD773C4AD544114AE47718DC95041CDCCCCACBFAD5441
+</a>
+
+<b>
+0106000000010000000103000000010000001200000014AE47718DC95041CDCCCCACBFAD5441D2B8830B8CC95041C41F0B97B7AD5441F5C0A2508DC95041903415DEAEAD54417ECBCBBC8DC950417691B89EAAAD5441B81E85FB85C950418FC2F588ACAD54416D98AA1075C950416B0AB6B5B0AD54417BD028EC74C9504186D6B8BEB0AD544121E8C49170C950416C4A5C3AC0AD5441232CEC316DC950419BDAE13ACCAD5441479943F16DC9504159C95D40CDAD5441F6285C1F6EC95041F6285C7FCDAD5441DC06902879C950418CE32076CDAD54413CA1D70382C95041FC51B76ECDAD54414354505D8CC95041123BAD70CEAD5441DBB508F794C9504151170A47CFAD5441D7A3703D8FC9504114AE4741C9AD544114AE47B18DC950413D0AD773C4AD544114AE47718DC95041CDCCCCACBFAD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>119425 - 395138
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000D00000014AE47718DC95041CDCCCCACBFAD5441B81E850B8CC95041713D0A97B7AD54410AD7A3508DC95041E17A14DEAEAD5441CDCCCCBC8DC95041EC51B89EAAAD5441B81E85FB85C950418FC2F588ACAD5441C3F528EC74C95041EC51B8BEB0AD54411F85EB316DC95041AE47E13ACCAD5441F6285C1F6EC95041F6285C7FCDAD54413D0AD70382C95041EC51B86ECDAD5441713D0AF794C95041713D0A47CFAD5441D7A3703D8FC9504114AE4741C9AD544114AE47B18DC950413D0AD773C4AD544114AE47718DC95041CDCCCCACBFAD5441
+</a>
+
+<b>
+0106000000010000000103000000010000001200000014AE47718DC95041CDCCCCACBFAD5441D2B8830B8CC95041C41F0B97B7AD5441F5C0A2508DC95041903415DEAEAD54417ECBCBBC8DC950417691B89EAAAD5441B81E85FB85C950418FC2F588ACAD54416D98AA1075C950416B0AB6B5B0AD54417BD028EC74C9504186D6B8BEB0AD544121E8C49170C950416C4A5C3AC0AD5441232CEC316DC950419BDAE13ACCAD5441479943F16DC9504159C95D40CDAD5441F6285C1F6EC95041F6285C7FCDAD5441DC06902879C950418CE32076CDAD54413CA1D70382C95041FC51B76ECDAD54414354505D8CC95041123BAD70CEAD5441DBB508F794C9504151170A47CFAD5441D7A3703D8FC9504114AE4741C9AD544114AE47B18DC950413D0AD773C4AD544114AE47718DC95041CDCCCCACBFAD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>120250 - 212955
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B000000000000003400514152B81EF52AD05441EC51B8DE38005141B81E854B2DD054413333337344005141333333831ED05441CDCCCC6C47005141D7A3701D1AD0544185EB51384A005141000000A015D0544148E17AB4530051410AD7A33003D05441000000D05D00514114AE4791EFCF5441C3F5289C640051415C8FC2C5E3CF5441295C8F62660051415C8FC215E1CF5441AE47E1BA60005141E17A145EDECF5441000000003400514152B81EF52AD05441
+</a>
+
+<b>
+01060000000100000001030000000100000017000000AE47E1BA60005141E17A145EDECF544164FE66165E0051414F1865E4E2CF54414060EA8C5A0051412E08D6F2E8CF5441266D33EC560051415FB70C29EFCF544119C26AA54E0051412DC8FC54FDCF54411D1A38F74C005141089A9A3500D054415AB1B1AA480051412C01019207D05441B5A3DDF747005141B2FB34C408D05441BC8F67A6470051410DDFB04F09D05441D38A805C3F005141ACEEF78017D05441D2B322F23A005141862177101FD05441000000003400514152B81EF52AD054410C52B8DE38005141901E854B2DD054413333337344005141333333831ED05441B7CCCC6C47005141C2A3701D1AD054414E61048848005141CDFB775618D0544185EB51384A005141000000A015D0544148E17AB4530051410AD7A33003D05441000000D05D00514114AE4791EFCF5441C3F5289C640051415C8FC2C5E3CF5441ABE64D1966005141B4E1AC84E1CF5441195C8F6266005141548FC215E1CF5441AE47E1BA60005141E17A145EDECF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>120250 - 363623
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B000000000000003400514152B81EF52AD05441EC51B8DE38005141B81E854B2DD054413333337344005141333333831ED05441CDCCCC6C47005141D7A3701D1AD0544185EB51384A005141000000A015D0544148E17AB4530051410AD7A33003D05441000000D05D00514114AE4791EFCF5441C3F5289C640051415C8FC2C5E3CF5441295C8F62660051415C8FC215E1CF5441AE47E1BA60005141E17A145EDECF5441000000003400514152B81EF52AD05441
+</a>
+
+<b>
+01060000000100000001030000000100000017000000AE47E1BA60005141E17A145EDECF544164FE66165E0051414F1865E4E2CF54414060EA8C5A0051412E08D6F2E8CF5441266D33EC560051415FB70C29EFCF544119C26AA54E0051412DC8FC54FDCF54411D1A38F74C005141089A9A3500D054415AB1B1AA480051412C01019207D05441B5A3DDF747005141B2FB34C408D05441BC8F67A6470051410DDFB04F09D05441D38A805C3F005141ACEEF78017D05441D2B322F23A005141862177101FD05441000000003400514152B81EF52AD054410C52B8DE38005141901E854B2DD054413333337344005141333333831ED05441B7CCCC6C47005141C2A3701D1AD054414E61048848005141CDFB775618D0544185EB51384A005141000000A015D0544148E17AB4530051410AD7A33003D05441000000D05D00514114AE4791EFCF5441C3F5289C640051415C8FC2C5E3CF5441ABE64D1966005141B4E1AC84E1CF5441195C8F6266005141548FC215E1CF5441AE47E1BA60005141E17A145EDECF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>121082 - 387772
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001500000014AE47215D0D514152B81E4546C054419A9999395F0D51418FC2F51844C054419A999979640D5141E17A145E3BC05441F6285C8F6D0D514114AE47112AC0544185EB51286D0D51410AD7A33028C05441E17A146E560D51413D0AD75316C054419A9999D94E0D51413333336321C054419A9999F94B0D5141713D0A2725C05441E17A14CE450D5141EC51B8EE2AC05441333333E33E0D5141AE47E12A32C05441000000003E0D51410000003031C05441EC51B85E2D0D51418FC2F5883FC05441A4703D5A280D5141E17A144E45C0544100000070260D51411F85EBD149C054411F85EBC1350D51415C8FC2E549C0544114AE47B1400D5141A4703DDA4DC05441333333F3490D514185EB51284EC054410AD7A3204C0D5141F6285CDF4CC0544185EB51C8550D5141000000104EC0544185EB51A85A0D5141F6285CAF4CC0544114AE47215D0D514152B81E4546C05441
+</a>
+
+<b>
+0106000000010000000103000000010000001D0000000AD7A3204C0D5141F6285CDF4CC05441B1EB51C8550D5141F4FFFF0F4EC05441113C9C10560D5141A2C792FB4DC054414FEB51A85A0D5141C0285CAF4CC05441166BEF175C0D5141D74E91F548C0544114AE47215D0D514152B81E4546C054419A9999395F0D51418FC2F51844C0544153183663600D5141462D132A42C0544179999979640D5141C17A145E3BC05441D9B2FF366B0D5141E4AA82882EC05441F1285C8F6D0D51411EAE47112AC0544145EB51286D0D51414BD7A33028C0544134060FDD5F0D5141FF9EDFBD1DC054415591CE9E580D51419EF5890C18C054418A6E41BF4F0D514127280DC023C05441D956986E490D51416EB9E1322BC05441162D6347430D5141003047B430C054413AD16CB73F0D5141059FC91A34C054413462EA503C0D514156F3DC8F35C05441D39E5475370D51419A75EBCC38C054414BF210112E0D5141315BD3B441C05441A2A9A6572A0D5141FE7D25C145C05441ED8E3766280D514140A077CD49C054413D85EBC1350D5141678FC2E549C054411BE1C7FF390D5141193D7F6E4BC0544114AE47B1400D5141A4703DDA4DC054415EF57E3C430D5141F9F3B1EF4DC05441333333F3490D514185EB51284EC054410AD7A3204C0D5141F6285CDF4CC05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>121905 - 237159
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001900000014AE4721E10E5141C3F528DCA8C15441EC51B8EEE30E5141713D0AB7A6C1544114AE4701D30E514152B81E4589C15441EC51B85EC10E5141EC51B86E8CC154419A999979C20E5141295C8F2290C15441000000F0C30E5141EC51B89E90C1544133333383C60E514114AE479190C1544166666606C90E5141EC51B8CE8FC154419A9999D9C90E5141295C8F3291C1544152B81E25CA0E514148E17AA492C15441E17A146EC70E5141AE47E17A93C15441EC51B8DEC30E51410AD7A3D094C15441F6285CAFC30E514114AE473194C15441666666A6BD0E51415C8FC2D596C154411F85EB61B70E5141AE47E1CA97C154413D0AD7A3A60E514148E17AD497C15441000000C09E0E5141F6285CBF98C15441C3F5285C9B0E51413D0AD773A1C15441713D0A97990E5141A4703D0AA1C1544152B81E05990E5141AE47E16AA2C15441A4703DCA970E51419A9999F9A8C154415C8FC205AB0E51411F85EB01A9C154410AD7A370BE0E514152B81E75AAC15441EC51B84ECA0E5141EC51B87EACC1544114AE4721E10E5141C3F528DCA8C15441
+</a>
+
+<b>
+0106000000010000000103000000010000001900000052B81E25CA0E514148E17AA492C15441B22D6451BF0E5141A3AC5F1B9AC1544135508FE5A00E5141E07074E799C15441FC9B25889B0E5141D3FD37FBA8C1544174C2979E9B0E51419FB341FBA8C15441EC762DAC9B0E5141179447FBA8C154415A5328CC9B0E5141BC6955FBA8C154418F4825D49B0E51415EDE58FBA8C15441407E803C9C0E5141650386FBA8C15441A9E946BA9C0E5141786CBCFBA8C15441F415E4D19C0E5141A2A3C6FBA8C1544195DB72F79C0E5141FEE2D6FBA8C15441BB4DD3E29D0E51419EB53CFCA8C15441C3C71436A20E5141C493C22E9CC154413B5B5B1BB50E5141C493C22E9CC15441DA86F85FC00E514137B200D69BC15441C01AEF6DCA0E51416476149599C15441E5FDACA8D90E5141335723D894C1544114AE4701D30E514152B81E4589C15441B6AF4DC4C20E5141E021982E8CC1544196F50F89C40E514149624B5F8EC1544172E49E70C60E514193EE9D608FC1544166666606C90E5141EC51B8CE8FC154419A9999D9C90E5141295C8F3291C1544152B81E25CA0E514148E17AA492C15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>121932 - 3095439
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000160000001F85EB718310514152B81E75C8C15441000000D053105141C3F5283CE5C15441C3F5281C571051415C8FC2D5E9C15441666666C65B105141A4703D8AF1C15441CDCCCC9C6410514152B81EE5FEC154417B14AE67641051413D0AD74301C254411F85EBD166105141295C8FB201C25441E17A14CE69105141B81E853B02C254415C8FC2857B10514114AE475101C25441000000407E105141D7A3702D01C25441D7A3705D7F105141EC51B81E01C2544166666666811051413D0AD70301C25441295C8F229A105141CDCCCCBCFFC1544148E17A549C105141C3F528DCFDC15441EC51B8AE9B105141CDCCCC3CF5C154413D0AD7E39A105141295C8FF2F0C15441F6285C7F9A1051411F85EBD1EEC154415C8FC2F597105141C3F528FCE7C154419A99996993105141D7A370DDDDC154418FC2F5C88D105141295C8F82D4C15441C3F528AC88105141333333C3CDC154411F85EB718310514152B81E75C8C15441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000CE50C7587F105141F2DBF51E01C25441D7A3705D7F105141EC51B81E01C2544166666666811051413D0AD70301C25441295C8F229A105141CDCCCCBCFFC1544148E17A549C105141C3F528DCFDC15441EC51B8AE9B105141CDCCCC3CF5C1544111C156269B1051419EF7885AF2C154413D0AD7E39A105141295C8FF2F0C1544142A19FD89A1051415238C3B5F0C15441CE50C7587F105141F2DBF51E01C25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>121932 - 3189934
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000160000001F85EB718310514152B81E75C8C15441000000D053105141C3F5283CE5C15441C3F5281C571051415C8FC2D5E9C15441666666C65B105141A4703D8AF1C15441CDCCCC9C6410514152B81EE5FEC154417B14AE67641051413D0AD74301C254411F85EBD166105141295C8FB201C25441E17A14CE69105141B81E853B02C254415C8FC2857B10514114AE475101C25441000000407E105141D7A3702D01C25441D7A3705D7F105141EC51B81E01C2544166666666811051413D0AD70301C25441295C8F229A105141CDCCCCBCFFC1544148E17A549C105141C3F528DCFDC15441EC51B8AE9B105141CDCCCC3CF5C154413D0AD7E39A105141295C8FF2F0C15441F6285C7F9A1051411F85EBD1EEC154415C8FC2F597105141C3F528FCE7C154419A99996993105141D7A370DDDDC154418FC2F5C88D105141295C8F82D4C15441C3F528AC88105141333333C3CDC154411F85EB718310514152B81E75C8C15441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000CE50C7587F105141F2DBF51E01C25441D7A3705D7F105141EC51B81E01C2544166666666811051413D0AD70301C25441295C8F229A105141CDCCCCBCFFC1544148E17A549C105141C3F528DCFDC15441EC51B8AE9B105141CDCCCC3CF5C1544111C156269B1051419EF7885AF2C154413D0AD7E39A105141295C8FF2F0C1544142A19FD89A1051415238C3B5F0C15441CE50C7587F105141F2DBF51E01C25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>187274 - 373704
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000005000000B81E850BB0D250417B14AE57B490544114AE47C1C6D250411F85EBB18F90544148E17A54C1D2504133333323939054418FC2F5D8ADD25041713D0AF7B2905441B81E850BB0D250417B14AE57B4905441
+</a>
+
+<b>
+0106000000010000000103000000010000000600000093AB40A8C5D25041F3226B77919054413D3B47C1C6D250416D3EECB18F90544180E97A54C1D25041BF7C3423939054418FC2F5D8ADD25041713D0AF7B2905441BC21850BB0D250419D0FAE57B490544193AB40A8C5D25041F3226B7791905441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>123226 - 1554265
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000019000000EC51B8CE82D15041A4703DAA45F35441713D0A5786D150417B14AE5737F354411F85EBE18AD15041D7A370ED24F35441F6285C1F8BD1504148E17AF423F35441713D0AC76AD150411F85EB611FF35441713D0A8767D15041E17A147E1EF35441B81E85EB5BD15041B81E858B19F35441666666A641D150410AD7A3D00DF35441D7A3707D15D15041A4703D9AFFF25441295C8F4212D15041295C8F92FEF254410AD7A3C005D15041E17A148E05F35441713D0A4722D150417B14AEC70EF3544148E17A5421D15041D7A370DD17F35441AE47E15A21D15041666666161BF3544148E17AB422D150415C8FC2851FF35441E17A146E28D15041F6285CCF1FF35441666666462BD150416666660620F35441CDCCCC5C2ED15041EC51B8FE21F35441EC51B8AE30D1504114AE47A123F354417B14AEC74CD15041000000402DF354413D0AD70357D150410000000034F35441333333835AD150411F85EBE135F35441295C8FE270D15041713D0AC73EF35441000000B082D150416666662646F35441EC51B8CE82D15041A4703DAA45F35441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000A37B42D226D150413D7FE81209F35441649AC3673FD1504186A903CD10F354416CF4A68567D150410FE45F5C22F3544174F23D558AD150416953BD2727F35441F6285C1F8BD1504148E17AF423F35441713D0AC76AD150411F85EB611FF35441713D0A8767D15041E17A147E1EF35441B81E85EB5BD15041B81E858B19F35441666666A641D150410AD7A3D00DF35441295C8F4212D15041295C8F92FEF25441C9B66DD10DD150412377610D01F35441A37B42D226D150413D7FE81209F35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>123226 - 3544556
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000019000000EC51B8CE82D15041A4703DAA45F35441713D0A5786D150417B14AE5737F354411F85EBE18AD15041D7A370ED24F35441F6285C1F8BD1504148E17AF423F35441713D0AC76AD150411F85EB611FF35441713D0A8767D15041E17A147E1EF35441B81E85EB5BD15041B81E858B19F35441666666A641D150410AD7A3D00DF35441D7A3707D15D15041A4703D9AFFF25441295C8F4212D15041295C8F92FEF254410AD7A3C005D15041E17A148E05F35441713D0A4722D150417B14AEC70EF3544148E17A5421D15041D7A370DD17F35441AE47E15A21D15041666666161BF3544148E17AB422D150415C8FC2851FF35441E17A146E28D15041F6285CCF1FF35441666666462BD150416666660620F35441CDCCCC5C2ED15041EC51B8FE21F35441EC51B8AE30D1504114AE47A123F354417B14AEC74CD15041000000402DF354413D0AD70357D150410000000034F35441333333835AD150411F85EBE135F35441295C8FE270D15041713D0AC73EF35441000000B082D150416666662646F35441EC51B8CE82D15041A4703DAA45F35441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000A37B42D226D150413D7FE81209F35441649AC3673FD1504186A903CD10F354416CF4A68567D150410FE45F5C22F3544174F23D558AD150416953BD2727F35441F6285C1F8BD1504148E17AF423F35441713D0AC76AD150411F85EB611FF35441713D0A8767D15041E17A147E1EF35441B81E85EB5BD15041B81E858B19F35441666666A641D150410AD7A3D00DF35441295C8F4212D15041295C8F92FEF25441C9B66DD10DD150412377610D01F35441A37B42D226D150413D7FE81209F35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>126042 - 198898
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000000700000085EB51C8CCBC5041F6285CEFFA4655413D0AD7A3C9BC5041D7A370DDFA465541B81E858BC5BC5041EC51B8FE0C47554133333313C1BC504185EB51C8204755413D0AD783C5BC50419A9999C92147554133333363C9BC504152B81E150D47554185EB51C8CCBC5041F6285CEFFA465541
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000A0745C51CCBC50411CCDB5ECFA46554149EED7A3C9BC504128C471DDFA465541B266858BC5BC5041BB1EB7FE0C475541D2813413C1BC5041DA0751C820475541FBC9F959C5BC50415BBC1FC0214755415EDCD583C5BC5041465599C921475541E275D883C5BC5041510192C92147554169543263C9BC50417F5F23150D4755410EAB3263C9BC5041D06E1F150D475541FFFF50C8CCBC5041B7235CEFFA465541A0745C51CCBC50411CCDB5ECFA465541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>126042 - 416182
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000000700000085EB51C8CCBC5041F6285CEFFA4655413D0AD7A3C9BC5041D7A370DDFA465541B81E858BC5BC5041EC51B8FE0C47554133333313C1BC504185EB51C8204755413D0AD783C5BC50419A9999C92147554133333363C9BC504152B81E150D47554185EB51C8CCBC5041F6285CEFFA465541
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000A0745C51CCBC50411CCDB5ECFA46554149EED7A3C9BC504128C471DDFA465541B266858BC5BC5041BB1EB7FE0C475541D2813413C1BC5041DA0751C820475541FBC9F959C5BC50415BBC1FC0214755415EDCD583C5BC5041465599C921475541E275D883C5BC5041510192C92147554169543263C9BC50417F5F23150D4755410EAB3263C9BC5041D06E1F150D475541FFFF50C8CCBC5041B7235CEFFA465541A0745C51CCBC50411CCDB5ECFA465541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>124671 - 59570
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000013000000713D0A1730BD5041D7A3700D990255418FC2F5A826BD50415C8FC285A302554185EB515836BD50413D0AD703AE0255418FC2F52848BD50419A9999D9B902554148E17A044DBD50415C8FC2B5BC0255413333330350BD504166666656BE025541CDCCCC7C54BD504133333363C00255411F85EBB15ABD5041F6285C8FC202554148E17A0461BD50410AD7A350C4025541B81E856B66BD5041EC51B82EC5025541AE47E1FA6ABD5041A4703D4AC5025541B81E856B6EBD5041713D0AF7C4025541AE47E1FA71BD5041EC51B8EEB502554148E17AF453BD50417B14AE77B202554148E17A644EBD504166666646B00255413D0AD75347BD5041A4703DFAAC0255410AD7A34042BD5041CDCCCCACAB02554114AE47813FBD50411F85EBC1A9025541713D0A1730BD5041D7A3700D99025541
+</a>
+
+<b>
+01060000000100000001030000000100000023000000476FD27352BD504140298A74BF0255414D009D3755BD5041C26F2A83C00255416D35658056BD504197E2A517C10255411F85EBB15ABD5041F6285C8FC2025541E8C45EC05FBD5041816FACF6C302554193FA6FD162BD5041A487B697C4025541AB6F836263BD50415B287CE4C20255414922B2BE64BD5041C1F6A623C4025541C26B139467BD504131BFAE5DC40255412D3A3ED368BD5041542E9FE9C30255418B47137F69BD50410F494941C502554153B86ADE69BD50411AAE8843C50255410F8D8EBD6BBD504116FAD837C502554125E359C16BBD50414D357D37C5025541BD6778E46CBD5041792FFC1BC50255417A0D73316EBD5041D6BC86FCC4025541BF6AB3EE71BD5041B58150EDB502554148E17AF453BD50417B14AE77B20255410011E6B951BD504186FDC796B102554148E17A644EBD504166666646B00255413D0AD75347BD5041A4703DFAAC0255410AD7A34042BD5041CDCCCCACAB02554114AE47813FBD50411F85EBC1A902554159AD599938BD5041F5A50A46A20255419D94303C34BD504157DC7B9A9D0255412465E40E30BD50416C867C16990255416CB17B502FBD5041D719E5E999025541A50A73B126BD50411F61708BA302554185EB515836BD50413D0AD703AE0255413F69741F45BD504158E514D5B70255413F69741F45BD5041EBCAFEC8B702554178CED1D747BD5041680E3D99B9025541130EA0D94DBD504131B1B51CBD025541681A417350BD5041A26DBB89BE025541476FD27352BD504140298A74BF025541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>243115 - 1416815
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001C000000A4703D5A8B1A51419A999929251A554114AE47B18B1A514100000030241A5541295C8FF28B1A51418FC2F578221A5541295C8F52801A51418FC2F508211A554114AE47D1701A5141EC51B81E1F1A5541A4703DCA601A5141F6285CFF1C1A554114AE4761521A5141CDCCCCCC1A1A55413D0AD783501A5141E17A148E1A1A55413D0AD753501A51419A9999691B1A5541666666064D1A5141000000E02D1A5541E17A144E541A51415C8FC255351A5541A4703DBA521A514166666606361A55415C8FC2954C1A51415C8FC255301A5541000000304C1A5141CDCCCC8C321A5541D7A3707D501A5141C3F5281C381A5541713D0A07541A5141E17A14AE3C1A5541295C8FF2551A5141C3F528EC3F1A5541D7A370FD551A51411F85EB71421A5541CDCCCC5C471A5141E17A142E591A5541000000905C1A51410AD7A3C05F1A5541E17A141E661A5141295C8FB2621A5541333333E36E1A5141295C8F62651A5541C3F528EC701A5141333333D3641A554133333363771A5141AE47E1BA5D1A5541713D0AF7781A514100000070591A5541D7A370ED7E1A514185EB51C8481A55419A9999B98A1A5141713D0AF7261A5541A4703D5A8B1A51419A999929251A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000002FD3E15D4C1A5141959917C8321A5541D7A3707D501A5141C3F5281C381A5541713D0A07541A5141E17A14AE3C1A5541295C8FF2551A5141C3F528EC3F1A5541D7A370FD551A51411F85EB71421A5541CDCCCC5C471A5141E17A142E591A5541000000905C1A51410AD7A3C05F1A5541E17A141E661A5141295C8FB2621A5541333333E36E1A5141295C8F62651A5541C3F528EC701A5141333333D3641A554133333363771A5141AE47E1BA5D1A5541713D0AF7781A514100000070591A5541D7A370ED7E1A514185EB51C8481A55419A9999B98A1A5141713D0AF7261A5541A4703D5A8B1A51419A999929251A554114AE47B18B1A514100000030241A5541F6D595E88B1A51414B760BBC221A554125E09BDF891A51415DAAE661291A55415A0DB0997B1A5141A0A260FA231A554130A1BD3C701A5141BD2D6BF5441A5541DCBD17C1681A5141CD23589A421A554177E484A0631A51418E762BCD401A55416C39E5C65E1A5141D48E6B6A3F1A5541F76965015C1A51411AA7AB073E1A5541D23DFFAD581A5141563412D03B1A554177EF4562541A5141AC423F12381A55412FD3E15D4C1A5141959917C8321A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>243115 - 3820319
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001C000000A4703D5A8B1A51419A999929251A554114AE47B18B1A514100000030241A5541295C8FF28B1A51418FC2F578221A5541295C8F52801A51418FC2F508211A554114AE47D1701A5141EC51B81E1F1A5541A4703DCA601A5141F6285CFF1C1A554114AE4761521A5141CDCCCCCC1A1A55413D0AD783501A5141E17A148E1A1A55413D0AD753501A51419A9999691B1A5541666666064D1A5141000000E02D1A5541E17A144E541A51415C8FC255351A5541A4703DBA521A514166666606361A55415C8FC2954C1A51415C8FC255301A5541000000304C1A5141CDCCCC8C321A5541D7A3707D501A5141C3F5281C381A5541713D0A07541A5141E17A14AE3C1A5541295C8FF2551A5141C3F528EC3F1A5541D7A370FD551A51411F85EB71421A5541CDCCCC5C471A5141E17A142E591A5541000000905C1A51410AD7A3C05F1A5541E17A141E661A5141295C8FB2621A5541333333E36E1A5141295C8F62651A5541C3F528EC701A5141333333D3641A554133333363771A5141AE47E1BA5D1A5541713D0AF7781A514100000070591A5541D7A370ED7E1A514185EB51C8481A55419A9999B98A1A5141713D0AF7261A5541A4703D5A8B1A51419A999929251A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000002FD3E15D4C1A5141959917C8321A5541D7A3707D501A5141C3F5281C381A5541713D0A07541A5141E17A14AE3C1A5541295C8FF2551A5141C3F528EC3F1A5541D7A370FD551A51411F85EB71421A5541CDCCCC5C471A5141E17A142E591A5541000000905C1A51410AD7A3C05F1A5541E17A141E661A5141295C8FB2621A5541333333E36E1A5141295C8F62651A5541C3F528EC701A5141333333D3641A554133333363771A5141AE47E1BA5D1A5541713D0AF7781A514100000070591A5541D7A370ED7E1A514185EB51C8481A55419A9999B98A1A5141713D0AF7261A5541A4703D5A8B1A51419A999929251A554114AE47B18B1A514100000030241A5541F6D595E88B1A51414B760BBC221A554125E09BDF891A51415DAAE661291A55415A0DB0997B1A5141A0A260FA231A554130A1BD3C701A5141BD2D6BF5441A5541DCBD17C1681A5141CD23589A421A554177E484A0631A51418E762BCD401A55416C39E5C65E1A5141D48E6B6A3F1A5541F76965015C1A51411AA7AB073E1A5541D23DFFAD581A5141563412D03B1A554177EF4562541A5141AC423F12381A55412FD3E15D4C1A5141959917C8321A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>125533 - 3103591
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001D000000333333A3B1BB504114AE4731F4035541A4703D4ABBBB5041E17A14AEF6035541E17A149EBFBB50410AD7A3B0F703554100000050C1BB504152B81E75EC035541666666F6BCBB50417B14AE97EB035541AE47E10AB9BB504166666666EA0355410AD7A320B9BB504166666686E8035541295C8F32BABB5041713D0A27E30355411F85EB11A6BB5041D7A370EDD80355410AD7A330A8BB5041F6285C8FD50355419A99998999BB5041AE47E19ACC0355419A99998995BB5041713D0A97CA035541EC51B87E91BB50417B14AE27C90355413D0AD7138DBB50417B14AE27C80355419A9999298CBB50415C8FC235DE0355419A9999B98BBB5041333333E3E903554185EB51A88DBB5041CDCCCC1CE70355411F85EB818FBB5041F6285C1FE8035541B81E857B8BBB50419A999999EE035541B81E854B8BBB5041295C8F22F3035541A4703D0A8CBB50410AD7A330F7035541333333A398BB5041D7A3702DF10355416666664697BB504148E17A94EE035541295C8FC29BBB5041E17A141EEC035541AE47E1BAA0BB50410AD7A3F0ED035541333333B3A2BB5041D7A3702DEE035541CDCCCC5CA4BB504148E17AE4EE03554185EB51C8ACBB504133333393F2035541333333A3B1BB504114AE4731F4035541
+</a>
+
+<b>
+010600000001000000010300000001000000220000004C26BEFE8BBB5041B73EAEADE2035541C6A5D5B48BBB504141309CFFE8035541F4A2892E8FBB50411F435EABE503554164AF527690BB504162170A70E60355414C4E2D3E8DBB5041E6009BE6EA035541B38DA47C8BBB504138AA53C7EE035541A3F9D04D8BBB5041B207CC21F3035541E3491F098CBB504114455831F70355410D0A7F4A98BB504116C3E556F1035541A789CE1E97BB50415EDAB537EF0355415720FA6D9BBB5041F5A24B04ED0355418848F61F9DBB50411A62859AED035541C528A7D49DBB5041DA55A5B3EE035541014D43E09EBB50416CE8EE3AEE03554151A553D1A0BB5041CE9C58F3ED035541073DFC91A2BB504169896F29EE03554154C7FDFFA3BB5041E4B690BCEE0355416D3CE1B4ACBB5041BCA3B28AF203554108FA68B8B1BB504145F6BE36F40355419DEF3267B6BB5041381EAE6BF50355412DB3AE25BCBB5041AFC04BE1F603554145FE1AA1BFBB504184E058B1F70355414D680AC8BFBB50413BB7BF9AF603554185932F37B9BB50415BE240DAF4035541917941E0B3BB50412047826BF303554137A2A1C9B1BB50419479DECEF2035541F7CBC612B0BB5041FD144535F20355410EDCF2E2AABB504137B48764F0035541EDFF693FAABB504156D59F1BF003554162AE8C3CA4BB5041A5BA4F5AED03554129869330A3BB5041A4BF62E2EC035541A1D78FEF9DBB50416A0192C3EA03554183F94A5E9ABB504165EFBB51E90355414C26BEFE8BBB5041B73EAEADE2035541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>125533 - 3322708
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001D000000333333A3B1BB504114AE4731F4035541A4703D4ABBBB5041E17A14AEF6035541E17A149EBFBB50410AD7A3B0F703554100000050C1BB504152B81E75EC035541666666F6BCBB50417B14AE97EB035541AE47E10AB9BB504166666666EA0355410AD7A320B9BB504166666686E8035541295C8F32BABB5041713D0A27E30355411F85EB11A6BB5041D7A370EDD80355410AD7A330A8BB5041F6285C8FD50355419A99998999BB5041AE47E19ACC0355419A99998995BB5041713D0A97CA035541EC51B87E91BB50417B14AE27C90355413D0AD7138DBB50417B14AE27C80355419A9999298CBB50415C8FC235DE0355419A9999B98BBB5041333333E3E903554185EB51A88DBB5041CDCCCC1CE70355411F85EB818FBB5041F6285C1FE8035541B81E857B8BBB50419A999999EE035541B81E854B8BBB5041295C8F22F3035541A4703D0A8CBB50410AD7A330F7035541333333A398BB5041D7A3702DF10355416666664697BB504148E17A94EE035541295C8FC29BBB5041E17A141EEC035541AE47E1BAA0BB50410AD7A3F0ED035541333333B3A2BB5041D7A3702DEE035541CDCCCC5CA4BB504148E17AE4EE03554185EB51C8ACBB504133333393F2035541333333A3B1BB504114AE4731F4035541
+</a>
+
+<b>
+010600000001000000010300000001000000220000004C26BEFE8BBB5041B73EAEADE2035541C6A5D5B48BBB504141309CFFE8035541F4A2892E8FBB50411F435EABE503554164AF527690BB504162170A70E60355414C4E2D3E8DBB5041E6009BE6EA035541B38DA47C8BBB504138AA53C7EE035541A3F9D04D8BBB5041B207CC21F3035541E3491F098CBB504114455831F70355410D0A7F4A98BB504116C3E556F1035541A789CE1E97BB50415EDAB537EF0355415720FA6D9BBB5041F5A24B04ED0355418848F61F9DBB50411A62859AED035541C528A7D49DBB5041DA55A5B3EE035541014D43E09EBB50416CE8EE3AEE03554151A553D1A0BB5041CE9C58F3ED035541073DFC91A2BB504169896F29EE03554154C7FDFFA3BB5041E4B690BCEE0355416D3CE1B4ACBB5041BCA3B28AF203554108FA68B8B1BB504145F6BE36F40355419DEF3267B6BB5041381EAE6BF50355412DB3AE25BCBB5041AFC04BE1F603554145FE1AA1BFBB504184E058B1F70355414D680AC8BFBB50413BB7BF9AF603554185932F37B9BB50415BE240DAF4035541917941E0B3BB50412047826BF303554137A2A1C9B1BB50419479DECEF2035541F7CBC612B0BB5041FD144535F20355410EDCF2E2AABB504137B48764F0035541EDFF693FAABB504156D59F1BF003554162AE8C3CA4BB5041A5BA4F5AED03554129869330A3BB5041A4BF62E2EC035541A1D78FEF9DBB50416A0192C3EA03554183F94A5E9ABB504165EFBB51E90355414C26BEFE8BBB5041B73EAEADE2035541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>872072 - 219915
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E000000333333E32E72514114AE4741F89F5441F6285C3F2D72514114AE47B1F99F5441D7A3703D1B725141333333E30AA0544148E17A8408725141AE47E17A1BA0544114AE4711F6715141000000702CA0544100000070F2715141000000C02FA054413D0AD7D3F3715141713D0A1733A05441AE47E1AAFF7151419A9999A928A054413D0AD7B30B7251415C8FC2651FA05441E17A14EE16725141E17A143E17A0544148E17A34247251413D0AD7630EA05441C3F5283C307251413D0AD7A306A05441333333E3337251419A99994904A05441333333E32E72514114AE4741F89F5441
+</a>
+
+<b>
+010600000001000000010300000001000000C300000041804EE0267251411AA54DAB0CA05441BD0A7C27267251419B7883220DA05441926A0CFD237251418705CE880EA054411715E9D22072514190A20CA510A05441D3B7F58020725141966F85DE10A05441D903166D1C725141A39FCF9313A05441B83F12281B72514163788C6C14A05441D5C3A3EE1872514194E946E815A05441269A17E31672514117970F4617A054410473532B1072514178D732271CA054413395D37A0D725141CA2419201EA054415D989AB30B725141C517F1651FA054410AF16B270B7251415C00DCD11FA05441CE2057C40A72514144CC221E20A054416AA68F870A7251413113ED4C20A05441FACA284D07725141F6EF5BCC22A054417DB4D3110672514126C49CBC23A05441C5BFF2A80572514150B39D0C24A0544194D0393201725141AABD537C27A05441C26B3616007251411282DB5928A05441AD9A108AFF715141A638F9C728A05441B19EC36CFE7151415AC03CC229A05441B0D46B27FD7151411E168BE42AA05441C79D923DF8715141C84F15342FA0544197380EF6F7715141AD8811732FA054419E29E82FF77151416606942130A05441C4B78D3BF6715141931F2FF930A05441E78C66AAF57151412F3D527B31A05441BD461E5CF5715141E2648FBD31A0544110E340C4F47151410DC04E4332A0544102E0E7ACF4715141EEB5DE5732A0544172DD1683F47151415C78987F32A0544152DD1408F471514133E607E932A054413D0AD7D3F3715141713D0A1733A054410AD7A3F0F0715141295C8FA235A05441C3F528ACE47151410000008041A05441B81E85BBD671514114AE47B14FA0544148E17AD4CD715141F6285CCF58A05441F6285CEFC271514114AE479162A05441713D0A27B871514148E17A146BA054413D0AD763AC715141666666B673A05441B81E858BA3715141CDCCCCFC79A05441E17A14AE9F7151419A9999997DA05441295C8F229F715141A4703DFA7CA054418FC2F5B89E7151411F85EB817CA054411F85EBA19D71514185EB51587DA05441666666969B715141A4703DEA7EA05441D7A3700D9A715141333333C380A05441295C8F0293715141E17A14EE85A05441CDCCCCAC92715141E17A145E85A0544152B81E7584715141A4703DDA8FA0544133333323707151415C8FC2C59EA05441A4703DCA5B71514114AE47E1ADA05441D1AA9A41537151413AAB8946B4A0544162A3A83E53715141967A943AB4A05441B81E85CB4771514114AE4751BDA05441E17A149E3471514185EB5128CDA05441D7A370FD2071514185EB51F8DCA0544114AE47610C7151410AD7A3B0EBA05441B81E85EBF7705141C3F5281CFAA0544114AE4751E37051419A9999B908A154415C8FC275D6705141E17A14DE11A15441E17A14DED8705141F6285C3F14A1544166666626DC705141EC51B87E17A154417B14AE57CD705141B81E859B24A154415C8FC2F5BE705141D7A3704D31A154411F85EB01B37051410AD7A3703AA15441A4703D8AB2705141000000C039A15441D4171B20B2705141771B2B123AA1544163600095B270514163DEBAAF39A15441E17A141EB270514114AE472139A154415C8FC2C5B07051415C8FC22537A154419A999969AE705141CDCCCCAC33A154415C8FC245AE7051411F85EB7133A1544114AE47D1A8705141D7A3701D37A154410AD7A3F09F705141C3F528FC3DA15441EC51B80E9870514114AE47A145A154419A9999A996705141B81E85FB46A15441CDCCCCEC91705141666666164CA15441713D0A4793705141CDCCCC8C4EA15441B81E850B93705141EC51B8CE4EA15441295C8FE290705141713D0AE750A15441F6285C3F8E7051415C8FC27553A1544114AE47A1897051416666662657A15441000000A086705141D7A3708D59A15441EC51B8BE8370514148E17A045DA154411F85EBB17E705141713D0A1763A15441B81E853B7B705141E17A147E66A154410AD7A34077705141713D0AB769A15441C3F528AC73705141B81E859B6CA15441F6285C4F6E705141E17A14AE70A15441A4703DAA65705141E17A140E7DA15441713D0A5764705141666666B680A15441666666E672705141CDCCCCAC76A15441EC51B88E747051416666669673A15441A4703D4A76705141713D0A6771A154419A99997978705141CDCCCC3C6EA15441F6285C2F7B7051415C8FC2656AA154417B14AED77C705141C3F5289C67A15441EC51B8EE7F705141E17A149E63A15441AE47E16A827051413D0AD71360A15441B81E857B9570514114AE47914EA15441AE47E1CAA070514152B81E7546A15441A0AB4A9FB070514131F9D53C3AA154418D50BF61B170514192EF8AA53AA15441C3F5282CA070514185EB51F847A154410AD7A30096705141333333334FA15441A4703D8A877051417B14AEC75BA15441F6285C9F837051413D0AD71360A1544152B81E7580705141EC51B8FE63A1544152B81E857D7051413333332368A154413D0AD713797051410AD7A3B06EA154417B14AEF776705141E17A14EE71A15441295C8F6275705141333333E373A1544152B81EB57470514152B81EC575A1544185EB51E8777051416666667673A15441B81E85FB7970514148E17AC470A15441C3F5289C7A70514152B81E156EA15441B81E857B7D70514148E17AF46AA1544185EB51B889705141AE47E16A5FA154417B14AE87977051418FC2F55852A15441AE47E12AA770514148E17AE445A1544133333373B7705141B81E850B3AA154419A9999A9C67051418FC2F5B82DA15441295C8F72D57051413D0AD7C320A15441A4703D2AE370514114AE472114A15441C3F5286CF2705141D7A370CD03A1544148E17A04017151417B14AE77F6A054410AD7A37011715141295C8FC2EAA054413D0AD7B32571514148E17A34DCA05441EC51B81E40715141A4703DBAC6A05441713D0A0751715141EC51B81EB9A05441AE47E1EA537151415C8FC2F5B6A0544114AE47216471514152B81ED5AAA05441713D0AA772715141AE47E12AA0A05441AE47E1BA8871514152B81EE590A05441CDCCCC4C897151411F85EBD191A05441E17A148E977151411F85EB5187A05441CDCCCC3C9E715141333333E380A05441713D0A17B571514152B81E5570A05441D7A3706DC47151410AD7A3A064A05441D7A370EDD2715141295C8F7257A05441713D0AD7E571514185EB514844A05441713D0A97E9715141F6285C7F40A0544185EB5178EA715141B81E859B3FA05441B81E851BEF715141CDCCCCEC3AA05441A4703D3AFE7151419A9999192DA05441000000200E725141B81E85CB20A05441B81E855B1E72514185EB517815A0544152B81EB5347251415C8FC22507A054411F85EBE1497251417B14AE77F99F54419A9999295E7251411F85EBB1E99F5441D7A3709D6D725141F6285C8FDC9F544185EB512872725141A4703DBAD89F54411F85EB418B7251413D0AD7D3BB9F5441EC51B8FE8C7251418FC2F5A8B79F5441F6285CEF97725141E17A143EAB9F54410AD7A3E09B725141295C8F42A79F5441000000C0A3725141A4703DBA9E9F5441295C8F62B472514148E17AB48C9F54415C8FC2C5BD725141AE47E13A829F544133333373C7725141F6285CFF769F544185EB5198CE725141AE47E15A6D9F5441C3F528CCD472514114AE47B1649F5441AE47E15ADB725141333333435A9F54410AD7A350E17251419A9999D94E9F544185EB51D8DE7251410AD7A360499F5441CDCCCC5CD7725141A4703DCA579F54410AD7A3D0D0725141AE47E1FA619F544166666636CB7251410AD7A3906A9F54410AD7A360C4725141666666D6739F5441000000B0BA725141000000107F9F5441E17A14EEB0725141E17A14EE899F5441F6285CAFA4725141AE47E11A989F544148E17AA49F7251415C8FC2C59D9F5441A4703DFA9E72514152B81E859E9F54415C8FC2559E725141333333F39D9F5441295C8FB29D7251418FC2F5B89E9F544114AE47B19672514133333333A79F5441295C8F32877251419A999989B89F54410000004088725141295C8F92B99F544185EB51687B725141D7A3708DC89F5441333333836B72514100000070DA9F54411F85EB115D725141F6285CDFE79F54419A9999294B7251417B14AE67F69F5441D7A3705D4972514185EB5178F69F5441333333F33B7251419A999919FF9F5441333333E3337251419A99994904A054414E34E6B7307251412B61245406A054415D150BA32F7251415F15DE0807A05441C949F46D2D725141BF45867208A054418FF02AED2B7251415CA9696A09A05441E9D5BED32A7251413DD4B4240AA0544186C589262A72514142A34B8F0AA0544141804EE0267251411AA54DAB0CA05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>872072 - 261618
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E000000333333E32E72514114AE4741F89F5441F6285C3F2D72514114AE47B1F99F5441D7A3703D1B725141333333E30AA0544148E17A8408725141AE47E17A1BA0544114AE4711F6715141000000702CA0544100000070F2715141000000C02FA054413D0AD7D3F3715141713D0A1733A05441AE47E1AAFF7151419A9999A928A054413D0AD7B30B7251415C8FC2651FA05441E17A14EE16725141E17A143E17A0544148E17A34247251413D0AD7630EA05441C3F5283C307251413D0AD7A306A05441333333E3337251419A99994904A05441333333E32E72514114AE4741F89F5441
+</a>
+
+<b>
+010600000001000000010300000001000000C300000041804EE0267251411AA54DAB0CA05441BD0A7C27267251419B7883220DA05441926A0CFD237251418705CE880EA054411715E9D22072514190A20CA510A05441D3B7F58020725141966F85DE10A05441D903166D1C725141A39FCF9313A05441B83F12281B72514163788C6C14A05441D5C3A3EE1872514194E946E815A05441269A17E31672514117970F4617A054410473532B1072514178D732271CA054413395D37A0D725141CA2419201EA054415D989AB30B725141C517F1651FA054410AF16B270B7251415C00DCD11FA05441CE2057C40A72514144CC221E20A054416AA68F870A7251413113ED4C20A05441FACA284D07725141F6EF5BCC22A054417DB4D3110672514126C49CBC23A05441C5BFF2A80572514150B39D0C24A0544194D0393201725141AABD537C27A05441C26B3616007251411282DB5928A05441AD9A108AFF715141A638F9C728A05441B19EC36CFE7151415AC03CC229A05441B0D46B27FD7151411E168BE42AA05441C79D923DF8715141C84F15342FA0544197380EF6F7715141AD8811732FA054419E29E82FF77151416606942130A05441C4B78D3BF6715141931F2FF930A05441E78C66AAF57151412F3D527B31A05441BD461E5CF5715141E2648FBD31A0544110E340C4F47151410DC04E4332A0544102E0E7ACF4715141EEB5DE5732A0544172DD1683F47151415C78987F32A0544152DD1408F471514133E607E932A054413D0AD7D3F3715141713D0A1733A054410AD7A3F0F0715141295C8FA235A05441C3F528ACE47151410000008041A05441B81E85BBD671514114AE47B14FA0544148E17AD4CD715141F6285CCF58A05441F6285CEFC271514114AE479162A05441713D0A27B871514148E17A146BA054413D0AD763AC715141666666B673A05441B81E858BA3715141CDCCCCFC79A05441E17A14AE9F7151419A9999997DA05441295C8F229F715141A4703DFA7CA054418FC2F5B89E7151411F85EB817CA054411F85EBA19D71514185EB51587DA05441666666969B715141A4703DEA7EA05441D7A3700D9A715141333333C380A05441295C8F0293715141E17A14EE85A05441CDCCCCAC92715141E17A145E85A0544152B81E7584715141A4703DDA8FA0544133333323707151415C8FC2C59EA05441A4703DCA5B71514114AE47E1ADA05441D1AA9A41537151413AAB8946B4A0544162A3A83E53715141967A943AB4A05441B81E85CB4771514114AE4751BDA05441E17A149E3471514185EB5128CDA05441D7A370FD2071514185EB51F8DCA0544114AE47610C7151410AD7A3B0EBA05441B81E85EBF7705141C3F5281CFAA0544114AE4751E37051419A9999B908A154415C8FC275D6705141E17A14DE11A15441E17A14DED8705141F6285C3F14A1544166666626DC705141EC51B87E17A154417B14AE57CD705141B81E859B24A154415C8FC2F5BE705141D7A3704D31A154411F85EB01B37051410AD7A3703AA15441A4703D8AB2705141000000C039A15441D4171B20B2705141771B2B123AA1544163600095B270514163DEBAAF39A15441E17A141EB270514114AE472139A154415C8FC2C5B07051415C8FC22537A154419A999969AE705141CDCCCCAC33A154415C8FC245AE7051411F85EB7133A1544114AE47D1A8705141D7A3701D37A154410AD7A3F09F705141C3F528FC3DA15441EC51B80E9870514114AE47A145A154419A9999A996705141B81E85FB46A15441CDCCCCEC91705141666666164CA15441713D0A4793705141CDCCCC8C4EA15441B81E850B93705141EC51B8CE4EA15441295C8FE290705141713D0AE750A15441F6285C3F8E7051415C8FC27553A1544114AE47A1897051416666662657A15441000000A086705141D7A3708D59A15441EC51B8BE8370514148E17A045DA154411F85EBB17E705141713D0A1763A15441B81E853B7B705141E17A147E66A154410AD7A34077705141713D0AB769A15441C3F528AC73705141B81E859B6CA15441F6285C4F6E705141E17A14AE70A15441A4703DAA65705141E17A140E7DA15441713D0A5764705141666666B680A15441666666E672705141CDCCCCAC76A15441EC51B88E747051416666669673A15441A4703D4A76705141713D0A6771A154419A99997978705141CDCCCC3C6EA15441F6285C2F7B7051415C8FC2656AA154417B14AED77C705141C3F5289C67A15441EC51B8EE7F705141E17A149E63A15441AE47E16A827051413D0AD71360A15441B81E857B9570514114AE47914EA15441AE47E1CAA070514152B81E7546A15441A0AB4A9FB070514131F9D53C3AA154418D50BF61B170514192EF8AA53AA15441C3F5282CA070514185EB51F847A154410AD7A30096705141333333334FA15441A4703D8A877051417B14AEC75BA15441F6285C9F837051413D0AD71360A1544152B81E7580705141EC51B8FE63A1544152B81E857D7051413333332368A154413D0AD713797051410AD7A3B06EA154417B14AEF776705141E17A14EE71A15441295C8F6275705141333333E373A1544152B81EB57470514152B81EC575A1544185EB51E8777051416666667673A15441B81E85FB7970514148E17AC470A15441C3F5289C7A70514152B81E156EA15441B81E857B7D70514148E17AF46AA1544185EB51B889705141AE47E16A5FA154417B14AE87977051418FC2F55852A15441AE47E12AA770514148E17AE445A1544133333373B7705141B81E850B3AA154419A9999A9C67051418FC2F5B82DA15441295C8F72D57051413D0AD7C320A15441A4703D2AE370514114AE472114A15441C3F5286CF2705141D7A370CD03A1544148E17A04017151417B14AE77F6A054410AD7A37011715141295C8FC2EAA054413D0AD7B32571514148E17A34DCA05441EC51B81E40715141A4703DBAC6A05441713D0A0751715141EC51B81EB9A05441AE47E1EA537151415C8FC2F5B6A0544114AE47216471514152B81ED5AAA05441713D0AA772715141AE47E12AA0A05441AE47E1BA8871514152B81EE590A05441CDCCCC4C897151411F85EBD191A05441E17A148E977151411F85EB5187A05441CDCCCC3C9E715141333333E380A05441713D0A17B571514152B81E5570A05441D7A3706DC47151410AD7A3A064A05441D7A370EDD2715141295C8F7257A05441713D0AD7E571514185EB514844A05441713D0A97E9715141F6285C7F40A0544185EB5178EA715141B81E859B3FA05441B81E851BEF715141CDCCCCEC3AA05441A4703D3AFE7151419A9999192DA05441000000200E725141B81E85CB20A05441B81E855B1E72514185EB517815A0544152B81EB5347251415C8FC22507A054411F85EBE1497251417B14AE77F99F54419A9999295E7251411F85EBB1E99F5441D7A3709D6D725141F6285C8FDC9F544185EB512872725141A4703DBAD89F54411F85EB418B7251413D0AD7D3BB9F5441EC51B8FE8C7251418FC2F5A8B79F5441F6285CEF97725141E17A143EAB9F54410AD7A3E09B725141295C8F42A79F5441000000C0A3725141A4703DBA9E9F5441295C8F62B472514148E17AB48C9F54415C8FC2C5BD725141AE47E13A829F544133333373C7725141F6285CFF769F544185EB5198CE725141AE47E15A6D9F5441C3F528CCD472514114AE47B1649F5441AE47E15ADB725141333333435A9F54410AD7A350E17251419A9999D94E9F544185EB51D8DE7251410AD7A360499F5441CDCCCC5CD7725141A4703DCA579F54410AD7A3D0D0725141AE47E1FA619F544166666636CB7251410AD7A3906A9F54410AD7A360C4725141666666D6739F5441000000B0BA725141000000107F9F5441E17A14EEB0725141E17A14EE899F5441F6285CAFA4725141AE47E11A989F544148E17AA49F7251415C8FC2C59D9F5441A4703DFA9E72514152B81E859E9F54415C8FC2559E725141333333F39D9F5441295C8FB29D7251418FC2F5B89E9F544114AE47B19672514133333333A79F5441295C8F32877251419A999989B89F54410000004088725141295C8F92B99F544185EB51687B725141D7A3708DC89F5441333333836B72514100000070DA9F54411F85EB115D725141F6285CDFE79F54419A9999294B7251417B14AE67F69F5441D7A3705D4972514185EB5178F69F5441333333F33B7251419A999919FF9F5441333333E3337251419A99994904A054414E34E6B7307251412B61245406A054415D150BA32F7251415F15DE0807A05441C949F46D2D725141BF45867208A054418FF02AED2B7251415CA9696A09A05441E9D5BED32A7251413DD4B4240AA0544186C589262A72514142A34B8F0AA0544141804EE0267251411AA54DAB0CA05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>904239 - 147949
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001C0000005C8FC24557C9504114AE47317A3855417B14AE676CC950419A9999A989385541E17A14CE74C95041EC51B84E903855415C8FC25582C950419A9999A99B385541A4703D3A94C950416666666688385541E17A140E8FC95041D7A370CD833855418FC2F50894C9504148E17A3480385541C3F5287C98C95041E17A14FE7C385541CDCCCCDC8FC950415C8FC25573385541EC51B83E8DC95041C3F528FC6F38554185EB51488CC9504148E17A846E3855410AD7A3B08CC95041D7A370CD6D38554185EB51F889C95041000000006B385541AE47E1EA85C9504185EB51E867385541666666E682C950417B14AE1764385541333333A37FC95041EC51B8DE60385541AE47E19A78C95041713D0A175C385541B81E858B76C950410AD7A3605B385541F6285C4F72C950413D0AD7635B385541AE47E1BA70C950415C8FC2155C385541AE47E1BA6CC950417B14AE175F3855410AD7A3E05FC95041EC51B8AE69385541EC51B84E5CC95041666666066D385541666666E658C95041EC51B80E71385541B81E857B57C95041713D0A9773385541C3F5282C56C95041000000F0763855417B14AEA756C95041C3F528BC783855415C8FC24557C9504114AE47317A385541
+</a>
+
+<b>
+0106000000010000000103000000010000002D0000005C8FC25582C950419A9999A99B385541A4703D3A94C950416666666688385541E17A140E8FC95041D7A370CD833855418FC2F50894C9504148E17A3480385541C3F5287C98C95041E17A14FE7C385541CDCCCCDC8FC950415C8FC25573385541EC51B83E8DC95041C3F528FC6F38554185EB51488CC9504148E17A846E3855410AD7A3B08CC95041D7A370CD6D38554185EB51F889C95041000000006B385541AE47E1EA85C9504185EB51E867385541666666E682C950417B14AE1764385541333333A37FC95041EC51B8DE60385541AE47E19A78C95041713D0A175C385541B81E858B76C950410AD7A3605B385541F6285C4F72C950413D0AD7635B385541AE47E1BA70C950415C8FC2155C385541AE47E1BA6CC950417B14AE175F3855410AD7A3E05FC95041EC51B8AE69385541EC51B84E5CC95041666666066D385541666666E658C95041EC51B80E71385541B81E857B57C95041713D0A9773385541C3F5282C56C95041000000F0763855417B14AEA756C95041C3F528BC783855414CEB043C57C950414BE1491A7A3855415EE74FC158C95041ADF074317B385541ADAC635259C95041493072A37B385541AAEE745059C95041B8F206A67B3855414FA8A8E05CC950417EDA15477E38554198A086DD64C9504193AA4D23843855410CA432B368C950415E839CF28638554137A432B368C950417F839CF2863855417B14AE676CC950419A9999A98938554123AF61AC71C95041D5EF84D48D3855412CAF61AC71C95041DCEF84D48D38554132AF61AC71C95041E1EF84D48D385541E17A14CE74C95041EC51B84E903855416CBA162D7AC95041D71E4FBA9438554102AFFD1F7AC95041B6CFB2C5943855419105BA507CC9504176324B9C963855416A06BA507CC9504129334B9C963855416F90867F7DC950418FA76A9A97385541E2A1DF737EC9504102137C6798385541E0A1DF737EC9504103137C67983855415C8FC25582C950419A9999A99B385541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>904239 - 335447
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001C0000005C8FC24557C9504114AE47317A3855417B14AE676CC950419A9999A989385541E17A14CE74C95041EC51B84E903855415C8FC25582C950419A9999A99B385541A4703D3A94C950416666666688385541E17A140E8FC95041D7A370CD833855418FC2F50894C9504148E17A3480385541C3F5287C98C95041E17A14FE7C385541CDCCCCDC8FC950415C8FC25573385541EC51B83E8DC95041C3F528FC6F38554185EB51488CC9504148E17A846E3855410AD7A3B08CC95041D7A370CD6D38554185EB51F889C95041000000006B385541AE47E1EA85C9504185EB51E867385541666666E682C950417B14AE1764385541333333A37FC95041EC51B8DE60385541AE47E19A78C95041713D0A175C385541B81E858B76C950410AD7A3605B385541F6285C4F72C950413D0AD7635B385541AE47E1BA70C950415C8FC2155C385541AE47E1BA6CC950417B14AE175F3855410AD7A3E05FC95041EC51B8AE69385541EC51B84E5CC95041666666066D385541666666E658C95041EC51B80E71385541B81E857B57C95041713D0A9773385541C3F5282C56C95041000000F0763855417B14AEA756C95041C3F528BC783855415C8FC24557C9504114AE47317A385541
+</a>
+
+<b>
+0106000000010000000103000000010000002D0000005C8FC25582C950419A9999A99B385541A4703D3A94C950416666666688385541E17A140E8FC95041D7A370CD833855418FC2F50894C9504148E17A3480385541C3F5287C98C95041E17A14FE7C385541CDCCCCDC8FC950415C8FC25573385541EC51B83E8DC95041C3F528FC6F38554185EB51488CC9504148E17A846E3855410AD7A3B08CC95041D7A370CD6D38554185EB51F889C95041000000006B385541AE47E1EA85C9504185EB51E867385541666666E682C950417B14AE1764385541333333A37FC95041EC51B8DE60385541AE47E19A78C95041713D0A175C385541B81E858B76C950410AD7A3605B385541F6285C4F72C950413D0AD7635B385541AE47E1BA70C950415C8FC2155C385541AE47E1BA6CC950417B14AE175F3855410AD7A3E05FC95041EC51B8AE69385541EC51B84E5CC95041666666066D385541666666E658C95041EC51B80E71385541B81E857B57C95041713D0A9773385541C3F5282C56C95041000000F0763855417B14AEA756C95041C3F528BC783855414CEB043C57C950414BE1491A7A3855415EE74FC158C95041ADF074317B385541ADAC635259C95041493072A37B385541AAEE745059C95041B8F206A67B3855414FA8A8E05CC950417EDA15477E38554198A086DD64C9504193AA4D23843855410CA432B368C950415E839CF28638554137A432B368C950417F839CF2863855417B14AE676CC950419A9999A98938554123AF61AC71C95041D5EF84D48D3855412CAF61AC71C95041DCEF84D48D38554132AF61AC71C95041E1EF84D48D385541E17A14CE74C95041EC51B84E903855416CBA162D7AC95041D71E4FBA9438554102AFFD1F7AC95041B6CFB2C5943855419105BA507CC9504176324B9C963855416A06BA507CC9504129334B9C963855416F90867F7DC950418FA76A9A97385541E2A1DF737EC9504102137C6798385541E0A1DF737EC9504103137C67983855415C8FC25582C950419A9999A99B385541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>975929 - 457836
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001000000050E62ACB49DE504137C6DF50F064544152B81E954BDE504152B81EE5F46454417363B86F5CDE5041276B8C3FFA645441856C17BA77DE50417FBA99EA0265544189FD42E1AFDE5041B76288C014655441D7A370DDC4DE5041AE47E16A1B655441A360DD56C6DE5041745FF9EC1B65544148E17AD4C4DE5041AE47E1DA166554412B451143A3DE5041D1655A540C6554411E2445E48DDE5041E2E3F1A005655441DE3BA9E46FDE5041589EF238FC6454411B5B7AD554DE5041A511E1BCF36454410355B5354DDE5041753CE358F1645441C53FA6E84BDE5041A76074F0F0645441498023D44BDE50416EF82104F164544150E62ACB49DE504137C6DF50F0645441
+</a>
+
+<b>
+0106000000010000000103000000010000000600000048E17AD4C4DE5041AE47E1DA166554413D0AD743C3DE5041666666C611655441AE47E12A48DE5041295C8F52EC6454418FC2F50849DE5041F6285C1FEE6454413333339349DE504152B81E35F064544148E17AD4C4DE5041AE47E1DA16655441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>975929 - 1757085
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001000000050E62ACB49DE504137C6DF50F064544152B81E954BDE504152B81EE5F46454417363B86F5CDE5041276B8C3FFA645441856C17BA77DE50417FBA99EA0265544189FD42E1AFDE5041B76288C014655441D7A370DDC4DE5041AE47E16A1B655441A360DD56C6DE5041745FF9EC1B65544148E17AD4C4DE5041AE47E1DA166554412B451143A3DE5041D1655A540C6554411E2445E48DDE5041E2E3F1A005655441DE3BA9E46FDE5041589EF238FC6454411B5B7AD554DE5041A511E1BCF36454410355B5354DDE5041753CE358F1645441C53FA6E84BDE5041A76074F0F0645441498023D44BDE50416EF82104F164544150E62ACB49DE504137C6DF50F0645441
+</a>
+
+<b>
+010600000001000000010300000001000000080000003D0AD743C3DE5041666666C61165544152B81E75C2DE50411F85EB410F655441000000E046DE50411F85EBA1E9645441AE47E12A48DE5041295C8F52EC6454418FC2F50849DE5041F6285C1FEE6454413333339349DE504152B81E35F064544148E17AD4C4DE5041AE47E1DA166554413D0AD743C3DE5041666666C611655441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>975929 - 3605029
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001000000050E62ACB49DE504137C6DF50F064544152B81E954BDE504152B81EE5F46454417363B86F5CDE5041276B8C3FFA645441856C17BA77DE50417FBA99EA0265544189FD42E1AFDE5041B76288C014655441D7A370DDC4DE5041AE47E16A1B655441A360DD56C6DE5041745FF9EC1B65544148E17AD4C4DE5041AE47E1DA166554412B451143A3DE5041D1655A540C6554411E2445E48DDE5041E2E3F1A005655441DE3BA9E46FDE5041589EF238FC6454411B5B7AD554DE5041A511E1BCF36454410355B5354DDE5041753CE358F1645441C53FA6E84BDE5041A76074F0F0645441498023D44BDE50416EF82104F164544150E62ACB49DE504137C6DF50F0645441
+</a>
+
+<b>
+010600000001000000010300000001000000080000003D0AD743C3DE5041666666C61165544152B81E75C2DE50411F85EB410F655441000000E046DE50411F85EBA1E9645441AE47E12A48DE5041295C8F52EC6454418FC2F50849DE5041F6285C1FEE6454413333339349DE504152B81E35F064544148E17AD4C4DE5041AE47E1DA166554413D0AD743C3DE5041666666C611655441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>130098 - 1213564
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000043000000D7A3701D149351413D0AD75395805441A4703D7A129351411F85EB81938054416666661612935141C3F5288C9280544152B81E4512935141F6285CEF90805441F6285CFF12935141A4703D0A8F8054417B14AE4713935141B81E850B8C805441A4703DEA13935141C3F528AC8A80544148E17A44109351417B14AE07828054413D0AD7B30D9351410AD7A3307E805441D7A3708D0B9351413D0AD7637C805441D7A370FD09935141D7A3707D7D805441C3F5285C07935141A4703D4A7F8054418FC2F5F8039351411F85EB8183805441E17A14AE01935141F6285CAF8280544114AE4751FF925141AE47E13A858054415C8FC265FC9251418FC2F53888805441333333F3F9925141666666768A8054419A999979F6925141000000B08D805441EC51B8EEF5925141000000409380544152B81ED5F5925141EC51B80E958054415C8FC295F49251410AD7A3E09A8054417B14AE77F4925141AE47E15AA18054415C8FC275EC92514185EB51F8A780544185EB5148EB925141C3F5281CA880544100000090E6925141F6285CDFAF8054410AD7A330E5925141AE47E18AB280544152B81EC5E7925141333333A3B2805441713D0A07EE9251411F85EB91B1805441AE47E18AF1925141333333A3B1805441A4703D2AEF925141295C8FA2B2805441F6285C1FE7925141D7A370ADB580544152B81E15E1925141E17A14EEB5805441E17A140EDD925141F6285C8FB6805441A4703DEAD89251419A999929BA80544148E17A44D592514133333353BE805441333333F3D1925141B81E851BC28054415C8FC285D192514185EB5198C2805441CDCCCCFCD19251410AD7A3E0C28054419A999949D492514114AE4791C4805441C3F5285CD6925141EC51B85EC680544185EB51F8D7925141295C8F22C8805441EC51B8EED992514148E17AB4CA80544152B81ED5DC92514148E17AF4C8805441E17A146EE69251415C8FC2F5C3805441A4703D4AED92514166666696C080544148E17A44F39251411F85EB81BE805441CDCCCC8CF79251419A999939BD805441E17A140EFD925141666666B6BB805441A4703D6AFF925141F6285C1FBB8054417B14AE2702935141C3F5287CBA8054413D0AD77304935141B81E852BBA805441F6285C8F07935141CDCCCCECB9805441000000100C935141B81E85EBB98054419A9999F90F93514152B81EB5B9805441E17A149E149351418FC2F578B9805441A4703DEA179351413D0AD763B98054419A9999791E935141AE47E1AAB880544148E17A841D9351410AD7A310B6805441A4703D5A1C93514166666606B280544114AE47911A9351419A999949AD805441E17A14DE19935141B81E857BA9805441F6285CEF18935141B81E859BA68054410AD7A350189351419A9999B9A2805441EC51B8FE1693514152B81E859D805441000000C0159351410AD7A3F098805441713D0A7715935141AE47E10A97805441D7A3701D149351413D0AD75395805441
+</a>
+
+<b>
+010600000001000000010300000002000000250000001FD943FDF5925141A4F7DCAA9280544189568C8BF89251415BEC183A8F8054418DC8F18BFB925141137F16208C8054412F906A2602935141A57EF9B8868054418FC2F5F8039351411F85EB818380544175A82E58049351410AD55D0B83805441CDCCCC3C03935141A4703D6A8180544100000040FF9251413333333379805441CDCCCCECFE925141CDCCCCEC71805441295C8F12FA925141AE47E1CA74805441000000E0F6925141EC51B8AE7680544114AE4791F5925141295C8FA277805441CDCCCC9CF4925141A4703D0A798054418FC2F578F3925141F6285CBF7B805441CDCCCCFCF19251418FC2F5B87F80544185EB51A8F09251415C8FC285858054413D0AD7A3EF9251419A9999C98A80544148E17A44EF925141EC51B88E8C805441F6285C7FEE9251410AD7A3908D805441713D0A27ED925141AE47E16A8E805441333333D3E8925141F6285C4F9080544148E17A94E0925141F6285C6F95805441CDCCCC2CE7925141713D0A27928054418FC2F538EA925141E17A146E93805441F6285C8FEC92514148E17AE4958054419A9999A9ED9251413D0AD7A398805441713D0A17ED92514185EB51189A805441A4703DEAEF925141CDCCCC3C9C8054410AD7A3A0EF925141B81E85BB9E8054419A9999A9ED925141A4703DAAA280544185EB5148EB925141C3F5281CA88054415C8FC275EC92514185EB51F8A78054417B14AE77F4925141AE47E15AA18054415C8FC295F49251410AD7A3E09A80544152B81ED5F5925141EC51B80E9580544197D19AF1F5925141B4468FBA928054411FD943FDF5925141A4F7DCAA928054410A00000014AE47F1EC9251419A9999899180544148E17A94ED9251415C8FC2D58F8054411F85EB21F0925141713D0A078E8054410AD7A3F0F1925141000000B08B805441EC51B87EF4925141A4703DAA898054419A999999F492514152B81EA58C80544133333363F4925141F6285CAF908054417B14AE37F392514152B81EC59380544133333353EE925141E17A146E9680544114AE47F1EC9251419A99998991805441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>130098 - 3290467
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000043000000D7A3701D149351413D0AD75395805441A4703D7A129351411F85EB81938054416666661612935141C3F5288C9280544152B81E4512935141F6285CEF90805441F6285CFF12935141A4703D0A8F8054417B14AE4713935141B81E850B8C805441A4703DEA13935141C3F528AC8A80544148E17A44109351417B14AE07828054413D0AD7B30D9351410AD7A3307E805441D7A3708D0B9351413D0AD7637C805441D7A370FD09935141D7A3707D7D805441C3F5285C07935141A4703D4A7F8054418FC2F5F8039351411F85EB8183805441E17A14AE01935141F6285CAF8280544114AE4751FF925141AE47E13A858054415C8FC265FC9251418FC2F53888805441333333F3F9925141666666768A8054419A999979F6925141000000B08D805441EC51B8EEF5925141000000409380544152B81ED5F5925141EC51B80E958054415C8FC295F49251410AD7A3E09A8054417B14AE77F4925141AE47E15AA18054415C8FC275EC92514185EB51F8A780544185EB5148EB925141C3F5281CA880544100000090E6925141F6285CDFAF8054410AD7A330E5925141AE47E18AB280544152B81EC5E7925141333333A3B2805441713D0A07EE9251411F85EB91B1805441AE47E18AF1925141333333A3B1805441A4703D2AEF925141295C8FA2B2805441F6285C1FE7925141D7A370ADB580544152B81E15E1925141E17A14EEB5805441E17A140EDD925141F6285C8FB6805441A4703DEAD89251419A999929BA80544148E17A44D592514133333353BE805441333333F3D1925141B81E851BC28054415C8FC285D192514185EB5198C2805441CDCCCCFCD19251410AD7A3E0C28054419A999949D492514114AE4791C4805441C3F5285CD6925141EC51B85EC680544185EB51F8D7925141295C8F22C8805441EC51B8EED992514148E17AB4CA80544152B81ED5DC92514148E17AF4C8805441E17A146EE69251415C8FC2F5C3805441A4703D4AED92514166666696C080544148E17A44F39251411F85EB81BE805441CDCCCC8CF79251419A999939BD805441E17A140EFD925141666666B6BB805441A4703D6AFF925141F6285C1FBB8054417B14AE2702935141C3F5287CBA8054413D0AD77304935141B81E852BBA805441F6285C8F07935141CDCCCCECB9805441000000100C935141B81E85EBB98054419A9999F90F93514152B81EB5B9805441E17A149E149351418FC2F578B9805441A4703DEA179351413D0AD763B98054419A9999791E935141AE47E1AAB880544148E17A841D9351410AD7A310B6805441A4703D5A1C93514166666606B280544114AE47911A9351419A999949AD805441E17A14DE19935141B81E857BA9805441F6285CEF18935141B81E859BA68054410AD7A350189351419A9999B9A2805441EC51B8FE1693514152B81E859D805441000000C0159351410AD7A3F098805441713D0A7715935141AE47E10A97805441D7A3701D149351413D0AD75395805441
+</a>
+
+<b>
+010600000001000000010300000002000000250000001FD943FDF5925141A4F7DCAA9280544189568C8BF89251415BEC183A8F8054418DC8F18BFB925141137F16208C8054412F906A2602935141A57EF9B8868054418FC2F5F8039351411F85EB818380544175A82E58049351410AD55D0B83805441CDCCCC3C03935141A4703D6A8180544100000040FF9251413333333379805441CDCCCCECFE925141CDCCCCEC71805441295C8F12FA925141AE47E1CA74805441000000E0F6925141EC51B8AE7680544114AE4791F5925141295C8FA277805441CDCCCC9CF4925141A4703D0A798054418FC2F578F3925141F6285CBF7B805441CDCCCCFCF19251418FC2F5B87F80544185EB51A8F09251415C8FC285858054413D0AD7A3EF9251419A9999C98A80544148E17A44EF925141EC51B88E8C805441F6285C7FEE9251410AD7A3908D805441713D0A27ED925141AE47E16A8E805441333333D3E8925141F6285C4F9080544148E17A94E0925141F6285C6F95805441CDCCCC2CE7925141713D0A27928054418FC2F538EA925141E17A146E93805441F6285C8FEC92514148E17AE4958054419A9999A9ED9251413D0AD7A398805441713D0A17ED92514185EB51189A805441A4703DEAEF925141CDCCCC3C9C8054410AD7A3A0EF925141B81E85BB9E8054419A9999A9ED925141A4703DAAA280544185EB5148EB925141C3F5281CA88054415C8FC275EC92514185EB51F8A78054417B14AE77F4925141AE47E15AA18054415C8FC295F49251410AD7A3E09A80544152B81ED5F5925141EC51B80E9580544197D19AF1F5925141B4468FBA928054411FD943FDF5925141A4F7DCAA928054410A00000014AE47F1EC9251419A9999899180544148E17A94ED9251415C8FC2D58F8054411F85EB21F0925141713D0A078E8054410AD7A3F0F1925141000000B08B805441EC51B87EF4925141A4703DAA898054419A999999F492514152B81EA58C80544133333363F4925141F6285CAF908054417B14AE37F392514152B81EC59380544133333353EE925141E17A146E9680544114AE47F1EC9251419A99998991805441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>130623 - 55608
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000550000001F85EBC1ABA75141D7A3703D2E9354418FC2F538AFA75141A4703D4A2F9354413D0AD763B3A7514148E17AB4289354417B14AE57AEA75141AE47E15A1A935441D7A3705DA9A7514148E17A340C9354418FC2F5E8A8A75141713D0A770B9354410AD7A3E0A6A75141A4703D1A08935441EC51B8CEA2A75141713D0AF7FE9254411F85EB51A0A75141000000F0F3925441333333839EA751411F85EBE1EB92544152B81E959FA7514148E17A44E3925441B81E851B93A75141EC51B86EE1925441295C8F4292A75141713D0A27DB925441B81E857B91A751418FC2F5F8D89254410AD7A3708CA751415C8FC235D6925441713D0A7785A751410AD7A3F0D5925441AE47E15A81A75141000000C0D59254417B14AE777DA75141295C8F82D6925441EC51B8EE7BA7514133333383D7925441D7A370AD7AA75141B81E855BD892544148E17A647AA751415C8FC235DC9254411F85EB917AA75141CDCCCC7CDD9254419A9999297BA75141B81E85ABE0925441C3F528FC7BA75141D7A3701DE5925441CDCCCC4C7EA751418FC2F548EC9254411F85EBC187A751415C8FC2250293544185EB51C885A75141B81E855B0B935441295C8F3283A751415C8FC2C50C935441295C8F4281A75141CDCCCC7C0D935441D7A3703D7FA75141713D0A570F93544185EB51587DA751419A9999491293544185EB51E87CA751417B14AE4716935441C3F528FC7CA751415C8FC2B51C935441666666867DA75141C3F5287C1D935441EC51B81E7EA75141000000301E935441295C8F927EA751411F85EBB11E935441333333037FA75141713D0AF71E9354411F85EB917FA7514148E17A041F935441E17A14EE7FA751416666660620935441F6285C4F80A75141666666062193544185EB519880A751415C8FC285219354415C8FC2E580A7514148E17A042293544114AE479180A75141713D0A67229354418FC2F51880A75141666666A6229354417B14AEA77FA75141AE47E1EA229354410AD7A3F07FA75141B81E85CB23935441D7A3701D80A7514185EB5178249354410000003080A751413D0AD72325935441EC51B8AE7FA75141000000C025935441A4703D4A7FA751417B14AE17269354418FC2F5087FA75141295C8F7226935441C3F528FC7EA75141E17A14DE26935441AE47E11A7FA7514148E17AC42793544114AE47417FA75141F6285CFF28935441F6285C5F7FA75141333333032A9354415C8FC2857FA75141666666A62A9354418FC2F5A87FA751411F85EB112B935441295C8F9280A7514114AE47912B9354416666665681A75141713D0AE72B935441666666B681A751410AD7A3802C935441295C8FB283A75141B81E859B2E935441E17A146E84A75141A4703D1A309354418FC2F50884A75141C3F528AC31935441713D0AC783A7514114AE475132935441C3F5287C83A75141713D0A17339354419A99993983A751410AD7A3D033935441AE47E14A83A75141D7A370DD349354411F85EB0185A751415C8FC285359354419A99999985A751411F85EBA1369354411F85EB4186A751411F85EB81369354413D0AD7A388A75141C3F5280C36935441666666C688A75141C3F528EC35935441666666E689A751411F85EBD13493544148E17A148BA75141D7A3701D34935441A4703D2A8CA751413D0AD7A3339354413D0AD7F38CA75141CDCCCC5C33935441295C8FB28DA7514114AE474133935441D7A3701D8FA751411F85EB3133935441C3F5285C92A751418FC2F57833935441B81E855B93A75141B81E859B339354415C8FC2E59BA75141F6285CCF33935441F6285C0F9DA7514148E17A4434935441CDCCCCAC9FA75141F6285C0F3693544166666626A6A75141AE47E13A359354411F85EBC1ABA75141D7A3703D2E935441
+</a>
+
+<b>
+010600000001000000010300000001000000410000001F85EBC1ABA75141D7A3703D2E935441F88CBDCBABA75141AC776A402E935441255846D6ABA751416C362C332E935441E73BC19F92A75141420A6F8B2A935441273260E485A75141380EFD7B0B9354415594424484A75141D68CF02F0C935441295C8F3283A751415C8FC2C50C935441295C8F4281A75141CDCCCC7C0D935441D7A3703D7FA75141713D0A570F93544185EB51587DA751419A9999491293544185EB51E87CA751417B14AE4716935441C3F528FC7CA751415C8FC2B51C9354416AEFAFF37DA75141C29233FC1D9354414584768A7EA751410AFC11A51E935441333333037FA75141713D0AF71E9354411F85EB917FA7514148E17A041F9354415F51C24880A751410C7B14EE209354415C8FC2E580A7514148E17A042293544114AE479180A75141713D0A67229354418D862DD97FA75141FD23F5CC22935441A51281C57FA751419FC6D9D822935441C30444BC7FA75141777F6FDE2293544180A106BB7FA75141765D2FDF2293544141BB8BB87FA75141A02CAFE022935441DD6A97B67FA75141C19FDDE122935441207117B27FA751411A0496E4229354412A97B0B47FA751411ABFEF12239354410AD7A3F07FA75141B81E85CB23935441D7A3701D80A7514185EB5178249354410000003080A751413D0AD72325935441EC51B8AE7FA75141000000C0259354414F24B1917FA75141028854D925935441EDA47C517FA75141DFF0EF2226935441A827351B7FA7514191424F6B26935441C3F528FC7EA75141E17A14DE26935441AE47E11A7FA7514148E17AC42793544114AE47417FA75141F6285CFF28935441F6285C5F7FA75141333333032A9354415C8FC2857FA75141666666A62A93544185BCFBB17FA7514101156C0F2B935441295C8F9280A7514114AE47912B9354416666665681A75141713D0AE72B935441666666B681A751410AD7A3802C935441295C8FB283A75141B81E859B2E935441E17A146E84A75141A4703D1A309354418FC2F50884A75141C3F528AC31935441292BAB4083A75141EAEAFED833935441AE47E14A83A75141D7A370DD349354411F85EB0185A751415C8FC28535935441987EC59B85A75141F0559894369354411F85EB4186A751411F85EB8136935441C72CC6A588A751418DB2D90336935441666666E689A751411F85EBD13493544148E17A148BA75141D7A3701D34935441A4703D2A8CA751413D0AD7A3339354413D0AD7F38CA75141CDCCCC5C33935441295C8FB28DA7514114AE474133935441D7A3701D8FA751411F85EB3133935441C3F5285C92A751418FC2F57833935441B81E855B93A75141B81E859B339354415C8FC2E59BA75141F6285CCF33935441F6285C0F9DA7514148E17A4434935441CDCCCCAC9FA75141F6285C0F3693544166666626A6A75141AE47E13A359354411F85EBC1ABA75141D7A3703D2E935441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>130623 - 97296
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000550000001F85EBC1ABA75141D7A3703D2E9354418FC2F538AFA75141A4703D4A2F9354413D0AD763B3A7514148E17AB4289354417B14AE57AEA75141AE47E15A1A935441D7A3705DA9A7514148E17A340C9354418FC2F5E8A8A75141713D0A770B9354410AD7A3E0A6A75141A4703D1A08935441EC51B8CEA2A75141713D0AF7FE9254411F85EB51A0A75141000000F0F3925441333333839EA751411F85EBE1EB92544152B81E959FA7514148E17A44E3925441B81E851B93A75141EC51B86EE1925441295C8F4292A75141713D0A27DB925441B81E857B91A751418FC2F5F8D89254410AD7A3708CA751415C8FC235D6925441713D0A7785A751410AD7A3F0D5925441AE47E15A81A75141000000C0D59254417B14AE777DA75141295C8F82D6925441EC51B8EE7BA7514133333383D7925441D7A370AD7AA75141B81E855BD892544148E17A647AA751415C8FC235DC9254411F85EB917AA75141CDCCCC7CDD9254419A9999297BA75141B81E85ABE0925441C3F528FC7BA75141D7A3701DE5925441CDCCCC4C7EA751418FC2F548EC9254411F85EBC187A751415C8FC2250293544185EB51C885A75141B81E855B0B935441295C8F3283A751415C8FC2C50C935441295C8F4281A75141CDCCCC7C0D935441D7A3703D7FA75141713D0A570F93544185EB51587DA751419A9999491293544185EB51E87CA751417B14AE4716935441C3F528FC7CA751415C8FC2B51C935441666666867DA75141C3F5287C1D935441EC51B81E7EA75141000000301E935441295C8F927EA751411F85EBB11E935441333333037FA75141713D0AF71E9354411F85EB917FA7514148E17A041F935441E17A14EE7FA751416666660620935441F6285C4F80A75141666666062193544185EB519880A751415C8FC285219354415C8FC2E580A7514148E17A042293544114AE479180A75141713D0A67229354418FC2F51880A75141666666A6229354417B14AEA77FA75141AE47E1EA229354410AD7A3F07FA75141B81E85CB23935441D7A3701D80A7514185EB5178249354410000003080A751413D0AD72325935441EC51B8AE7FA75141000000C025935441A4703D4A7FA751417B14AE17269354418FC2F5087FA75141295C8F7226935441C3F528FC7EA75141E17A14DE26935441AE47E11A7FA7514148E17AC42793544114AE47417FA75141F6285CFF28935441F6285C5F7FA75141333333032A9354415C8FC2857FA75141666666A62A9354418FC2F5A87FA751411F85EB112B935441295C8F9280A7514114AE47912B9354416666665681A75141713D0AE72B935441666666B681A751410AD7A3802C935441295C8FB283A75141B81E859B2E935441E17A146E84A75141A4703D1A309354418FC2F50884A75141C3F528AC31935441713D0AC783A7514114AE475132935441C3F5287C83A75141713D0A17339354419A99993983A751410AD7A3D033935441AE47E14A83A75141D7A370DD349354411F85EB0185A751415C8FC285359354419A99999985A751411F85EBA1369354411F85EB4186A751411F85EB81369354413D0AD7A388A75141C3F5280C36935441666666C688A75141C3F528EC35935441666666E689A751411F85EBD13493544148E17A148BA75141D7A3701D34935441A4703D2A8CA751413D0AD7A3339354413D0AD7F38CA75141CDCCCC5C33935441295C8FB28DA7514114AE474133935441D7A3701D8FA751411F85EB3133935441C3F5285C92A751418FC2F57833935441B81E855B93A75141B81E859B339354415C8FC2E59BA75141F6285CCF33935441F6285C0F9DA7514148E17A4434935441CDCCCCAC9FA75141F6285C0F3693544166666626A6A75141AE47E13A359354411F85EBC1ABA75141D7A3703D2E935441
+</a>
+
+<b>
+010600000001000000010300000001000000410000001F85EBC1ABA75141D7A3703D2E935441F48CBDCBABA75141AE776A402E935441295846D6ABA751416A362C332E935441EA3BC19F92A75141440A6F8B2A935441253260E485A75141330EFD7B0B9354415A94424484A75141DB8CF02F0C935441295C8F3283A751415C8FC2C50C935441295C8F4281A75141CDCCCC7C0D935441D7A3703D7FA75141713D0A570F93544185EB51587DA751419A9999491293544185EB51E87CA751417B14AE4716935441C3F528FC7CA751415C8FC2B51C93544167EFAFF37DA75141BF9233FC1D9354414184768A7EA751410CFC11A51E935441333333037FA75141713D0AF71E9354411F85EB917FA7514148E17A041F9354415E51C24880A751410C7B14EE209354415C8FC2E580A7514148E17A042293544114AE479180A75141713D0A67229354418B862DD97FA75141F923F5CC22935441A51281C57FA751419BC6D9D822935441C70444BC7FA75141747F6FDE2293544185A106BB7FA751417B5D2FDF229354413FBB8BB87FA751419E2CAFE022935441E06A97B67FA75141C39FDDE122935441207117B27FA75141190496E4229354412C97B0B47FA7514115BFEF12239354410AD7A3F07FA75141B81E85CB23935441D7A3701D80A7514185EB5178249354410000003080A751413D0AD72325935441EC51B8AE7FA75141000000C0259354415024B1917FA75141028854D925935441ECA47C517FA75141DEF0EF2226935441AA27351B7FA7514193424F6B26935441C3F528FC7EA75141E17A14DE26935441AE47E11A7FA7514148E17AC42793544114AE47417FA75141F6285CFF28935441F6285C5F7FA75141333333032A9354415C8FC2857FA75141666666A62A93544184BCFBB17FA75141FC146C0F2B935441295C8F9280A7514114AE47912B9354416666665681A75141713D0AE72B935441666666B681A751410AD7A3802C935441295C8FB283A75141B81E859B2E935441E17A146E84A75141A4703D1A309354418FC2F50884A75141C3F528AC31935441272BAB4083A75141EDEAFED833935441AE47E14A83A75141D7A370DD349354411F85EB0185A751415C8FC285359354419A7EC59B85A75141ED559894369354411F85EB4186A751411F85EB8136935441CB2CC6A588A751418EB2D90336935441666666E689A751411F85EBD13493544148E17A148BA75141D7A3701D34935441A4703D2A8CA751413D0AD7A3339354413D0AD7F38CA75141CDCCCC5C33935441295C8FB28DA7514114AE474133935441D7A3701D8FA751411F85EB3133935441C3F5285C92A751418FC2F57833935441B81E855B93A75141B81E859B339354415C8FC2E59BA75141F6285CCF33935441F6285C0F9DA7514148E17A4434935441CDCCCCAC9FA75141F6285C0F3693544166666626A6A75141AE47E13A359354411F85EBC1ABA75141D7A3703D2E935441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>130623 - 299029
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000550000001F85EBC1ABA75141D7A3703D2E9354418FC2F538AFA75141A4703D4A2F9354413D0AD763B3A7514148E17AB4289354417B14AE57AEA75141AE47E15A1A935441D7A3705DA9A7514148E17A340C9354418FC2F5E8A8A75141713D0A770B9354410AD7A3E0A6A75141A4703D1A08935441EC51B8CEA2A75141713D0AF7FE9254411F85EB51A0A75141000000F0F3925441333333839EA751411F85EBE1EB92544152B81E959FA7514148E17A44E3925441B81E851B93A75141EC51B86EE1925441295C8F4292A75141713D0A27DB925441B81E857B91A751418FC2F5F8D89254410AD7A3708CA751415C8FC235D6925441713D0A7785A751410AD7A3F0D5925441AE47E15A81A75141000000C0D59254417B14AE777DA75141295C8F82D6925441EC51B8EE7BA7514133333383D7925441D7A370AD7AA75141B81E855BD892544148E17A647AA751415C8FC235DC9254411F85EB917AA75141CDCCCC7CDD9254419A9999297BA75141B81E85ABE0925441C3F528FC7BA75141D7A3701DE5925441CDCCCC4C7EA751418FC2F548EC9254411F85EBC187A751415C8FC2250293544185EB51C885A75141B81E855B0B935441295C8F3283A751415C8FC2C50C935441295C8F4281A75141CDCCCC7C0D935441D7A3703D7FA75141713D0A570F93544185EB51587DA751419A9999491293544185EB51E87CA751417B14AE4716935441C3F528FC7CA751415C8FC2B51C935441666666867DA75141C3F5287C1D935441EC51B81E7EA75141000000301E935441295C8F927EA751411F85EBB11E935441333333037FA75141713D0AF71E9354411F85EB917FA7514148E17A041F935441E17A14EE7FA751416666660620935441F6285C4F80A75141666666062193544185EB519880A751415C8FC285219354415C8FC2E580A7514148E17A042293544114AE479180A75141713D0A67229354418FC2F51880A75141666666A6229354417B14AEA77FA75141AE47E1EA229354410AD7A3F07FA75141B81E85CB23935441D7A3701D80A7514185EB5178249354410000003080A751413D0AD72325935441EC51B8AE7FA75141000000C025935441A4703D4A7FA751417B14AE17269354418FC2F5087FA75141295C8F7226935441C3F528FC7EA75141E17A14DE26935441AE47E11A7FA7514148E17AC42793544114AE47417FA75141F6285CFF28935441F6285C5F7FA75141333333032A9354415C8FC2857FA75141666666A62A9354418FC2F5A87FA751411F85EB112B935441295C8F9280A7514114AE47912B9354416666665681A75141713D0AE72B935441666666B681A751410AD7A3802C935441295C8FB283A75141B81E859B2E935441E17A146E84A75141A4703D1A309354418FC2F50884A75141C3F528AC31935441713D0AC783A7514114AE475132935441C3F5287C83A75141713D0A17339354419A99993983A751410AD7A3D033935441AE47E14A83A75141D7A370DD349354411F85EB0185A751415C8FC285359354419A99999985A751411F85EBA1369354411F85EB4186A751411F85EB81369354413D0AD7A388A75141C3F5280C36935441666666C688A75141C3F528EC35935441666666E689A751411F85EBD13493544148E17A148BA75141D7A3701D34935441A4703D2A8CA751413D0AD7A3339354413D0AD7F38CA75141CDCCCC5C33935441295C8FB28DA7514114AE474133935441D7A3701D8FA751411F85EB3133935441C3F5285C92A751418FC2F57833935441B81E855B93A75141B81E859B339354415C8FC2E59BA75141F6285CCF33935441F6285C0F9DA7514148E17A4434935441CDCCCCAC9FA75141F6285C0F3693544166666626A6A75141AE47E13A359354411F85EBC1ABA75141D7A3703D2E935441
+</a>
+
+<b>
+010600000001000000010300000001000000410000001F85EBC1ABA75141D7A3703D2E935441F48CBDCBABA75141AE776A402E935441295846D6ABA751416A362C332E935441EA3BC19F92A75141440A6F8B2A935441253260E485A75141330EFD7B0B9354415A94424484A75141DB8CF02F0C935441295C8F3283A751415C8FC2C50C935441295C8F4281A75141CDCCCC7C0D935441D7A3703D7FA75141713D0A570F93544185EB51587DA751419A9999491293544185EB51E87CA751417B14AE4716935441C3F528FC7CA751415C8FC2B51C93544167EFAFF37DA75141BF9233FC1D9354414184768A7EA751410CFC11A51E935441333333037FA75141713D0AF71E9354411F85EB917FA7514148E17A041F9354415E51C24880A751410C7B14EE209354415C8FC2E580A7514148E17A042293544114AE479180A75141713D0A67229354418B862DD97FA75141F923F5CC22935441A51281C57FA751419BC6D9D822935441C70444BC7FA75141747F6FDE2293544185A106BB7FA751417B5D2FDF229354413FBB8BB87FA751419E2CAFE022935441E06A97B67FA75141C39FDDE122935441207117B27FA75141190496E4229354412C97B0B47FA7514115BFEF12239354410AD7A3F07FA75141B81E85CB23935441D7A3701D80A7514185EB5178249354410000003080A751413D0AD72325935441EC51B8AE7FA75141000000C0259354415024B1917FA75141028854D925935441ECA47C517FA75141DEF0EF2226935441AA27351B7FA7514193424F6B26935441C3F528FC7EA75141E17A14DE26935441AE47E11A7FA7514148E17AC42793544114AE47417FA75141F6285CFF28935441F6285C5F7FA75141333333032A9354415C8FC2857FA75141666666A62A93544184BCFBB17FA75141FC146C0F2B935441295C8F9280A7514114AE47912B9354416666665681A75141713D0AE72B935441666666B681A751410AD7A3802C935441295C8FB283A75141B81E859B2E935441E17A146E84A75141A4703D1A309354418FC2F50884A75141C3F528AC31935441272BAB4083A75141EDEAFED833935441AE47E14A83A75141D7A370DD349354411F85EB0185A751415C8FC285359354419A7EC59B85A75141ED559894369354411F85EB4186A751411F85EB8136935441CB2CC6A588A751418EB2D90336935441666666E689A751411F85EBD13493544148E17A148BA75141D7A3701D34935441A4703D2A8CA751413D0AD7A3339354413D0AD7F38CA75141CDCCCC5C33935441295C8FB28DA7514114AE474133935441D7A3701D8FA751411F85EB3133935441C3F5285C92A751418FC2F57833935441B81E855B93A75141B81E859B339354415C8FC2E59BA75141F6285CCF33935441F6285C0F9DA7514148E17A4434935441CDCCCCAC9FA75141F6285C0F3693544166666626A6A75141AE47E13A359354411F85EBC1ABA75141D7A3703D2E935441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>130821 - 3176149
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000012000000A4703D3AA38B5141D7A370CD5A96544148E17A14A48B514148E17AC4649654415C8FC245A78B51411F85EB218A96544114AE4711A98B51415C8FC2259F96544148E17A34AA8B5141CDCCCC8C9E96544152B81E35AE8B5141A4703DDA9B965441AE47E1FAB18B51416666669698965441C3F5282CB58B514185EB5148959654410AD7A3E0B98B51415C8FC2B58E9654415C8FC245BB8B514114AE47418D965441AE47E12ABB8B5141295C8F228C965441C3F5284CB88B51413D0AD7B36D96544100000040B78B51411F85EB1165965441AE47E1EAAA8B5141A4703D9A669654415C8FC245AA8B5141B81E857B61965441A4703D8AA88B5141EC51B88E509654410AD7A360A28B5141713D0AD750965441A4703D3AA38B5141D7A370CD5A965441
+</a>
+
+<b>
+010600000001000000010300000001000000100000004F915E76A38B51413FCAAB9F5D96544120AA3B27A48B514122B0C2A05D965441EF8B8170A48B51413FCAAB9F5D9654411C1B79F4A58B5141335F1E9D5D96544103EE5A63A68B514179A5FF9B5D9654415BBD30DAA68B51411B8903985D96544111C9A7DEA98B5141E067478C5D9654419730089FA98B5141FEEEBB1E5B9654414A59CE75A98B5141ABD54F9A59965441A4703D8AA88B5141EC51B88E509654410AD7A360A28B5141713D0AD75096544137AF72F5A28B5141F9FA43DE57965441DE14AC3CA38B5141E810B6265B9654418ED76A5AA38B51414F9576BF5C9654414326D173A38B51418A8462795D9654414F915E76A38B51413FCAAB9F5D965441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>130821 - 3340917
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000012000000A4703D3AA38B5141D7A370CD5A96544148E17A14A48B514148E17AC4649654415C8FC245A78B51411F85EB218A96544114AE4711A98B51415C8FC2259F96544148E17A34AA8B5141CDCCCC8C9E96544152B81E35AE8B5141A4703DDA9B965441AE47E1FAB18B51416666669698965441C3F5282CB58B514185EB5148959654410AD7A3E0B98B51415C8FC2B58E9654415C8FC245BB8B514114AE47418D965441AE47E12ABB8B5141295C8F228C965441C3F5284CB88B51413D0AD7B36D96544100000040B78B51411F85EB1165965441AE47E1EAAA8B5141A4703D9A669654415C8FC245AA8B5141B81E857B61965441A4703D8AA88B5141EC51B88E509654410AD7A360A28B5141713D0AD750965441A4703D3AA38B5141D7A370CD5A965441
+</a>
+
+<b>
+010600000001000000010300000001000000100000004F915E76A38B51413FCAAB9F5D96544120AA3B27A48B514122B0C2A05D965441EF8B8170A48B51413FCAAB9F5D9654411C1B79F4A58B5141335F1E9D5D96544103EE5A63A68B514179A5FF9B5D9654415BBD30DAA68B51411B8903985D96544111C9A7DEA98B5141E067478C5D9654419730089FA98B5141FEEEBB1E5B9654414A59CE75A98B5141ABD54F9A59965441A4703D8AA88B5141EC51B88E509654410AD7A360A28B5141713D0AD75096544137AF72F5A28B5141F9FA43DE57965441DE14AC3CA38B5141E810B6265B9654418ED76A5AA38B51414F9576BF5C9654414326D173A38B51418A8462795D9654414F915E76A38B51413FCAAB9F5D965441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>187298 - 35972
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000005000000F6285CCF31D15041F6285C5F799354419A99991901D15041B81E85BBCF93544148E17A5402D150410AD7A350D09354410AD7A3B033D15041F6285C1F7A935441F6285CCF31D15041F6285C5F79935441
+</a>
+
+<b>
+010600000001000000010300000001000000080000008609013824D15041B8520E78919354411971C59521D150413F786E239693544148E6A6481BD1504100F9654FA19354410EB025381CD15041B2F220CBA193544168113C9026D150415ED7364B8F93544167D67ECF25D1504187EC98A58E935441B2B6069225D15041422894128F9354418609013824D15041B8520E7891935441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>187298 - 74634
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000005000000F6285CCF31D15041F6285C5F799354419A99991901D15041B81E85BBCF93544148E17A5402D150410AD7A350D09354410AD7A3B033D15041F6285C1F7A935441F6285CCF31D15041F6285C5F79935441
+</a>
+
+<b>
+010600000001000000010300000001000000080000008609013824D15041B8520E78919354411971C59521D150413F786E239693544148E6A6481BD1504100F9654FA19354410EB025381CD15041B2F220CBA193544168113C9026D150415ED7364B8F93544167D67ECF25D1504187EC98A58E935441B2B6069225D15041422894128F9354418609013824D15041B8520E7891935441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>131196 - 3144157
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000A000000295C8FA28B8B5141C3F528BCF19554411F85EB71888B5141F6285CEFF29554418FC2F598878B51410AD7A3C0F295544114AE47918A8B5141B81E85FBFA955441AE47E11A958B5141E17A142E1896544152B81E15978B5141C3F528CC1796544114AE47119C8B51415C8FC2E5169654417B14AE87918B51413D0AD7B3F9955441295C8F228E8B5141C3F5284CF0955441295C8FA28B8B5141C3F528BCF1955441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000F39D06ED898B514193F5F331F8955441E970749B908B514160EB6F25F79554418E755E1F8E8B5141F8F95356F095544168174AA48B8B5141B2632ABBF19554411F85EB71888B5141F6285CEFF29554410E62529E878B514143707FCFF2955441BB956B9B888B5141A73CD88CF59554414F4CE343898B51419704AD5FF7955441E1631196898B5141EE7D6643F8955441F39D06ED898B514193F5F331F8955441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>131196 - 3534419
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000A000000295C8FA28B8B5141C3F528BCF19554411F85EB71888B5141F6285CEFF29554418FC2F598878B51410AD7A3C0F295544114AE47918A8B5141B81E85FBFA955441AE47E11A958B5141E17A142E1896544152B81E15978B5141C3F528CC1796544114AE47119C8B51415C8FC2E5169654417B14AE87918B51413D0AD7B3F9955441295C8F228E8B5141C3F5284CF0955441295C8FA28B8B5141C3F528BCF1955441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000F39D06ED898B514193F5F331F8955441E970749B908B514160EB6F25F79554418E755E1F8E8B5141F8F95356F095544168174AA48B8B5141B2632ABBF19554411F85EB71888B5141F6285CEFF29554410E62529E878B514143707FCFF2955441BB956B9B888B5141A73CD88CF59554414F4CE343898B51419704AD5FF7955441E1631196898B5141EE7D6643F8955441F39D06ED898B514193F5F331F8955441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>131316 - 1215732
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001E000000F6285C9FA77F514185EB5148298A54418FC2F558997F5141A4703DBA2B8A5441EC51B8FE977F51415C8FC2F52B8A54419A999959927F51411F85EB612C8A54418FC2F5E87E7F51415C8FC2D52D8A54415C8FC2757B7F5141CDCCCC4C2E8A5441A4703DEA717F51415C8FC2952F8A54410AD7A3506E7F5141713D0A87308A54415C8FC2F5687F5141AE47E16A328A5441EC51B8CE587F5141E17A14BE3A8A544114AE4751367F5141A4703D2A488A544133333303317F5141A4703D2A4A8A54415C8FC275367F5141C3F528BC4B8A544148E17A743A7F5141713D0A174E8A5441333333A33B7F51413D0AD763508A54417B14AE973D7F5141A4703DAA598A5441AE47E1BA3D7F51418FC2F5D8598A5441D7A370AD3E7F51410AD7A3205B8A5441D7A370AD407F51417B14AEE75B8A54417B14AEB7527F5141333333235F8A5441CDCCCC4C5F7F51411F85EB01608A5441C3F528FC737F5141666666E65E8A544148E17AD4837F5141E17A147E598A5441B81E852B897F5141EC51B8DE558A5441333333138E7F514185EB5128538A544114AE4761997F51413D0AD7A34F8A544114AE4741B17F5141713D0A37488A5441666666B6AF7F5141A4703D9A2A8A5441295C8FB2A87F5141000000602C8A5441F6285C9FA77F514185EB5148298A5441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000F6285C9FA77F514185EB5148298A54418FC2F558997F5141A4703DBA2B8A5441EC51B8FE977F51415C8FC2F52B8A54419A999959927F51411F85EB612C8A54418FC2F5E87E7F51415C8FC2D52D8A54415C8FC2757B7F5141CDCCCC4C2E8A5441A4703DEA717F51415C8FC2952F8A54410AD7A3506E7F5141713D0A87308A54415C8FC2F5687F5141AE47E16A328A5441EC51B8CE587F5141E17A14BE3A8A544114AE4751367F5141A4703D2A488A544133333303317F5141A4703D2A4A8A54415C8FC275367F5141C3F528BC4B8A544148E17A743A7F5141713D0A174E8A5441333333A33B7F51413D0AD763508A54417B14AE973D7F5141A4703DAA598A5441AE47E1BA3D7F51418FC2F5D8598A5441D7A370AD3E7F51410AD7A3205B8A5441D7A370AD407F51417B14AEE75B8A54417B14AEB7527F5141333333235F8A5441CDCCCC4C5F7F51411F85EB01608A5441C3F528FC737F5141666666E65E8A544148E17AD4837F5141E17A147E598A5441B81E852B897F5141EC51B8DE558A5441333333138E7F514185EB5128538A544114AE4761997F51413D0AD7A34F8A544114AE4741B17F5141713D0A37488A5441C3F5289CB27F5141666666C6468A5441B1B392F2B07F51416E940B50428A5441D064C904AE7F51417D8F7A733A8A5441295C8FB2A87F5141000000602C8A5441F6285C9FA77F514185EB5148298A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>131316 - 3390100
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001E000000F6285C9FA77F514185EB5148298A54418FC2F558997F5141A4703DBA2B8A5441EC51B8FE977F51415C8FC2F52B8A54419A999959927F51411F85EB612C8A54418FC2F5E87E7F51415C8FC2D52D8A54415C8FC2757B7F5141CDCCCC4C2E8A5441A4703DEA717F51415C8FC2952F8A54410AD7A3506E7F5141713D0A87308A54415C8FC2F5687F5141AE47E16A328A5441EC51B8CE587F5141E17A14BE3A8A544114AE4751367F5141A4703D2A488A544133333303317F5141A4703D2A4A8A54415C8FC275367F5141C3F528BC4B8A544148E17A743A7F5141713D0A174E8A5441333333A33B7F51413D0AD763508A54417B14AE973D7F5141A4703DAA598A5441AE47E1BA3D7F51418FC2F5D8598A5441D7A370AD3E7F51410AD7A3205B8A5441D7A370AD407F51417B14AEE75B8A54417B14AEB7527F5141333333235F8A5441CDCCCC4C5F7F51411F85EB01608A5441C3F528FC737F5141666666E65E8A544148E17AD4837F5141E17A147E598A5441B81E852B897F5141EC51B8DE558A5441333333138E7F514185EB5128538A544114AE4761997F51413D0AD7A34F8A544114AE4741B17F5141713D0A37488A5441666666B6AF7F5141A4703D9A2A8A5441295C8FB2A87F5141000000602C8A5441F6285C9FA77F514185EB5148298A5441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000F6285C9FA77F514185EB5148298A54418FC2F558997F5141A4703DBA2B8A5441EC51B8FE977F51415C8FC2F52B8A54419A999959927F51411F85EB612C8A54418FC2F5E87E7F51415C8FC2D52D8A54415C8FC2757B7F5141CDCCCC4C2E8A5441A4703DEA717F51415C8FC2952F8A54410AD7A3506E7F5141713D0A87308A54415C8FC2F5687F5141AE47E16A328A5441EC51B8CE587F5141E17A14BE3A8A544114AE4751367F5141A4703D2A488A544133333303317F5141A4703D2A4A8A54415C8FC275367F5141C3F528BC4B8A544148E17A743A7F5141713D0A174E8A5441333333A33B7F51413D0AD763508A54417B14AE973D7F5141A4703DAA598A5441AE47E1BA3D7F51418FC2F5D8598A5441D7A370AD3E7F51410AD7A3205B8A5441D7A370AD407F51417B14AEE75B8A54417B14AEB7527F5141333333235F8A5441CDCCCC4C5F7F51411F85EB01608A5441C3F528FC737F5141666666E65E8A544148E17AD4837F5141E17A147E598A5441B81E852B897F5141EC51B8DE558A5441333333138E7F514185EB5128538A544114AE4761997F51413D0AD7A34F8A544114AE4741B17F5141713D0A37488A5441C3F5289CB27F5141666666C6468A5441B1B392F2B07F51416E940B50428A5441D064C904AE7F51417D8F7A733A8A5441295C8FB2A87F5141000000602C8A5441F6285C9FA77F514185EB5148298A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>131552 - 3086771
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002000000014AE47E1A58E514148E17A9410845441666666D6A98E5141EC51B87E0E84544166666606AA8E5141F6285C7F13845441713D0A47AA8E5141CDCCCC7C1784544114AE4791AA8E5141AE47E1EA1B8454410AD7A330AB8E5141EC51B8CE1D845441F6285C7FB18E5141000000402284544185EB5118B98E51416666666627845441000000C0B98E51417B14AE872784544185EB5118BF8E514185EB5128FA83544166666626BA8E51411F85EB11FF835441AE47E1BAB08E5141CDCCCC9CF8835441C3F528ACA78E5141713D0A67F28354411F85EB01A28E51413D0AD7A3F28354411F85EB819E8E51418FC2F5C8F28354411F85EB11968E514133333323F3835441C3F5286C908E514148E17A84F483544152B81E058A8E514148E17A14F68354413D0AD7438A8E514114AE4731F78354413D0AD7C38B8E51411F85EB31FC835441000000608E8E51411F85EB1104845441666666E68F8E514185EB519807845441713D0A67918E5141295C8F720A845441295C8F42938E5141EC51B84E0D845441713D0A47968E5141B81E85FB1084544114AE47A19A8E5141CDCCCC1C1584544148E17A849C8E5141CDCCCCDC16845441EC51B83E9D8E51415C8FC20516845441666666A69E8E51415C8FC2651484544114AE4721A08E514166666656128454417B14AE87A18E5141F6285CDF1084544114AE47E1A58E514148E17A9410845441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000E165F1C1AD8E5141717CA69B1F84544124E0E435B18E514170E223DC2184544122F9A096B48E5141F80A104324845441984FEED0B78E51415D29411026845441876013DFB98E51417DADE27F26845441E4DB9237BB8E5141F61185131B8454413884EE6DBC8E514180DCF5C810845441FCBF08ACBD8E51412703A93C0684544185EB5118BF8E514185EB5128FA83544166666626BA8E51411F85EB11FF835441A1A8EC24AF8E51418C097886F78354417AAD3D35AE8E51418050D512F78354417BFAFE14AD8E51413B551B40F98354419D517B8EAC8E51414ABFAF6E018454412614EAB4AC8E5141D04D19160684544158A3829BAD8E5141CF66D57609845441E01830E2AE8E5141015CEB9D0C845441AD3CD61BAF8E5141BB1370EB0F84544114F589A8AE8E5141B945E8AC16845441E165F1C1AD8E5141717CA69B1F845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>131552 - 3410556
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002000000014AE47E1A58E514148E17A9410845441666666D6A98E5141EC51B87E0E84544166666606AA8E5141F6285C7F13845441713D0A47AA8E5141CDCCCC7C1784544114AE4791AA8E5141AE47E1EA1B8454410AD7A330AB8E5141EC51B8CE1D845441F6285C7FB18E5141000000402284544185EB5118B98E51416666666627845441000000C0B98E51417B14AE872784544185EB5118BF8E514185EB5128FA83544166666626BA8E51411F85EB11FF835441AE47E1BAB08E5141CDCCCC9CF8835441C3F528ACA78E5141713D0A67F28354411F85EB01A28E51413D0AD7A3F28354411F85EB819E8E51418FC2F5C8F28354411F85EB11968E514133333323F3835441C3F5286C908E514148E17A84F483544152B81E058A8E514148E17A14F68354413D0AD7438A8E514114AE4731F78354413D0AD7C38B8E51411F85EB31FC835441000000608E8E51411F85EB1104845441666666E68F8E514185EB519807845441713D0A67918E5141295C8F720A845441295C8F42938E5141EC51B84E0D845441713D0A47968E5141B81E85FB1084544114AE47A19A8E5141CDCCCC1C1584544148E17A849C8E5141CDCCCCDC16845441EC51B83E9D8E51415C8FC20516845441666666A69E8E51415C8FC2651484544114AE4721A08E514166666656128454417B14AE87A18E5141F6285CDF1084544114AE47E1A58E514148E17A9410845441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000E165F1C1AD8E5141717CA69B1F84544124E0E435B18E514170E223DC2184544122F9A096B48E5141F80A104324845441984FEED0B78E51415D29411026845441876013DFB98E51417DADE27F26845441E4DB9237BB8E5141F61185131B8454413884EE6DBC8E514180DCF5C810845441FCBF08ACBD8E51412703A93C0684544185EB5118BF8E514185EB5128FA83544166666626BA8E51411F85EB11FF835441A1A8EC24AF8E51418C097886F78354417AAD3D35AE8E51418050D512F78354417BFAFE14AD8E51413B551B40F98354419D517B8EAC8E51414ABFAF6E018454412614EAB4AC8E5141D04D19160684544158A3829BAD8E5141CF66D57609845441E01830E2AE8E5141015CEB9D0C845441AD3CD61BAF8E5141BB1370EB0F84544114F589A8AE8E5141B945E8AC16845441E165F1C1AD8E5141717CA69B1F845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>132073 - 168547
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000170000005C8FC2C5D3835141AE47E1CAF48D54411F85EBB1D98351410AD7A370F78D54410AD7A390DB835141295C8F22F88D54419A999929DD835141E17A145EF88D54415C8FC285DE8351413D0AD743F88D544185EB51E8DF835141B81E85DBF78D54418FC2F5E8E0835141CDCCCC5CF78D5441F6285CEFE1835141295C8F82F68D54410AD7A310E483514100000090F48D5441F6285C9FEC835141713D0AD7EB8D5441C3F528FCE58351411F85EB81E58D5441E17A141EE0835141EC51B86EEA8D5441D7A370DDCA8351418FC2F558D38D5441B81E85DBC1835141CDCCCC5CD78D544133333323CB835141E17A141EE18D54410AD7A380CE835141A4703DFADE8D544148E17AE4D48351415C8FC2A5E68D5441CDCCCC4CCF835141295C8F42EB8D5441E17A146ED0835141F6285C9FEC8D5441C3F5285CD0835141B81E85EBEF8D544114AE4741CF8351418FC2F528F38D544148E17AA4D08351417B14AE97F38D54415C8FC2C5D3835141AE47E1CAF48D5441
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000F24171A4E4835141CE0659F9F38D544148F0BC17EC835141EEE44661EC8D5441105A0796EC8351412C5D61D5EB8D5441C3F528FCE58351411F85EB81E58D5441E17A141EE0835141EC51B86EEA8D5441D7A370DDCA8351418FC2F558D38D5441768A3618C983514109D40B28D48D5441D80104EDC68351417DE96D22D58D5441A32782E5C3835141C4997A76D68D5441A4A2728CC38351417BB0D39BD68D5441AAD1F61FC38351417BB02ECCD68D5441ED46102FC283514124B28F37D78D544132019AE5C18351419475A363D78D544133333323CB835141E17A141EE18D54410AD7A380CE835141A4703DFADE8D544148E17AE4D48351415C8FC2A5E68D5441CDCCCC4CCF835141295C8F42EB8D5441E17A146ED0835141F6285C9FEC8D5441C3F5285CD0835141B81E85EBEF8D54414AF4A149CF835141506F381EF38D5441028D6773D083514173F16188F38D544148E17AA4D08351417B14AE97F38D5441E44356F6D0835141EF1710B7F38D544183F7F955D1835141BD1029D9F38D5441EC1E4F55D2835141A73B783DF48D5441BC823493D3835141597E84B5F48D5441BBFC06B3D3835141C4B8B2C3F48D54415C8FC2C5D3835141AE47E1CAF48D544184AEB703D7835141EE16E43DF68D5441B3A4D098D783514195EB5480F68D544110FC1A9BD783514173A49081F68D54411F85EBB1D98351410AD7A370F78D54410AD7A390DB835141295C8F22F88D54419A999929DD835141E17A145EF88D54415C8FC285DE8351413D0AD743F88D5441BE918EDFDF835141C92A19DEF78D5441F7EA5550E08351418C2129A8F78D544116F8C3DFE08351415D055761F78D5441FE03240EE1835141AD65E03DF78D5441F6285CEFE1835141295C8F82F68D54410AD7A310E483514100000090F48D5441F24171A4E4835141CE0659F9F38D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>133019 - 3144884
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000002000000052B81EA59D83514152B81EC5CC945441D7A370CD9883514152B81EA5CB9454417B14AEF796835141333333D3CD9454411F85EB41978351410AD7A310D09454417B14AEB79383514114AE4791DC945441713D0A6791835141AE47E1AAE3945441F6285C9F8F8351417B14AE27EA9454410AD7A3F08F8351417B14AE07EB945441E17A14CE918351417B14AE17EB9454411F85EB3193835141AE47E1FAEA945441E17A14DE94835141C3F5287CEA945441B81E85BB9483514185EB5198E794544185EB51F892835141295C8FA2E7945441333333F39283514114AE4731E29454416666664697835141000000E0E19454411F85EB319783514148E17AD4DE94544185EB51E8A08351417B14AED7DE945441E17A141EA183514100000000E0945441A4703DDAA883514100000030E2945441A4703DCAA983514148E17A34E3945441295C8FF2A9835141295C8F02E8945441E17A148EAB83514100000020E8945441CDCCCCCCAB8351410AD7A330E3945441CDCCCC4CAC835141B81E852BD9945441B81E850BAD83514185EB51C8CB9454418FC2F538AD8351415C8FC2B5C8945441D7A3709DA88351419A9999E9C894544152B81E65A88351413D0AD7C3C9945441B81E85FBA48351417B14AEF7CC9454413D0AD7B3A3835141D7A370CDCD94544152B81E65A2835141666666C6CD94544152B81EA59D83514152B81EC5CC945441
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000005BFE2916A18351412B335ED4DF945441D6445DA8A9835141A58EB142E2945441E2FE49FAA98351417B4660DCE7945441EF1B7F68AB83514182D24D1DE8945441384F5718AD8351411F9031B7C8945441B25CCBC5A88351415E90D3E7C89454411CC12D3DA8835141EAC652E9C99454410FFC3090A68351417458E97BCB94544115D68AD9A3835141DD59D8B4CD9454419932E561A28351417667C7EFCD945441CD72A5AAA18351418A5C351FD79454415BFE2916A18351412B335ED4DF945441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>133342 - 2979364
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000C00000014AE4701F8085141295C8FF2808A5441EC51B89EF608514133333313828A544166666666F5085141B81E85CB8C8A5441B81E859BF40851417B14AEB7938A544152B81E75F308514152B81EF5938A54418FC2F5C8ED08514166666626958A54415C8FC235F008514166666646A88A5441E17A14FE01095141295C8FF2A38A54417B14AE371709514148E17A349F8A5441AE47E19A15095141E17A14CE908A54413333331314095141D7A3707D838A544114AE4701F8085141295C8FF2808A5441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000158566ADFF085141569C3C3D918A5441CD7BF86BFF0851419572CD16908A5441CABE551115095141551214218C8A54413333331314095141D7A3707D838A544114AE4701F8085141295C8FF2808A5441EC51B89EF608514133333313828A544166666666F5085141B81E85CB8C8A54415D1A50C2F408514176C9D264928A5441E1018AA8F4085141A941F545938A5441158566ADFF085141569C3C3D918A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>133342 - 3271187
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000C00000014AE4701F8085141295C8FF2808A5441EC51B89EF608514133333313828A544166666666F5085141B81E85CB8C8A5441B81E859BF40851417B14AEB7938A544152B81E75F308514152B81EF5938A54418FC2F5C8ED08514166666626958A54415C8FC235F008514166666646A88A5441E17A14FE01095141295C8FF2A38A54417B14AE371709514148E17A349F8A5441AE47E19A15095141E17A14CE908A54413333331314095141D7A3707D838A544114AE4701F8085141295C8FF2808A5441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000158566ADFF085141569C3C3D918A5441CD7BF86BFF0851419572CD16908A5441CABE551115095141551214218C8A54413333331314095141D7A3707D838A544114AE4701F8085141295C8FF2808A5441EC51B89EF608514133333313828A544166666666F5085141B81E85CB8C8A54415D1A50C2F408514176C9D264928A5441E1018AA8F4085141A941F545938A5441158566ADFF085141569C3C3D918A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>133590 - 163332
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000014000000F6285C6FCB08514148E17A94938F5441A4703DBACD085141F6285C5F968F5441AE47E1DACE08514114AE47C1998F5441D7A370EDD1085141AE47E1AA9A8F5441CDCCCC8CD108514185EB5128938F544185EB51F8D00851418FC2F548888F54415C8FC295D0085141C3F5288C838F544133333363D008514185EB51F8818F5441EC51B8CECE085141A4703D7A768F54415C8FC2C5CC085141A4703DAA6A8F5441EC51B85ECB0851413D0AD7B3648F5441000000B0C908514185EB51A8618F5441AE47E11AC308514133333303638F5441E17A14EEC3085141666666D6658F5441E17A14CEC5085141A4703D2A6C8F5441E17A14FEC7085141B81E857B788F54418FC2F508C9085141AE47E1DA818F54419A9999D9C908514100000080918F544148E17A04CA085141A4703D8A938F5441F6285C6FCB08514148E17A94938F5441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000F7CA5B6FCB08514109707A94938F5441B61F8470CB085141F364E395938F5441706E3EBACD08514134E55A5F968F544170A76E48CE0851415ACDEF09988F5441AE47E1DACE08514114AE47C1998F5441DAE49941D0085141B6FED02B9A8F5441E29A70EDD10851418695E0AA9A8F5441CDCCCC8CD108514185EB5128938F54412431A66CD1085141EB7EA1CD908F54410E4651F8D00851419148F648888F5441011AC295D00851416559288C838F5441881C3263D00851417BA651F8818F544182EDB7CECE085141A0813D7A768F54418685C1C5CC085141FE663DAA6A8F54417C1C447BCB08514131EC322D658F5441F86CB85ECB0851413A7DD7B3648F5441B3E36F2DCB085141DCBCA55A648F5441142F00B0C9085141B94052A8618F5441845EE21AC3085141590A3303638F544192206379C30851414FCCD046648F5441E17A14EEC3085141666666D6658F5441E17A14CEC5085141A4703D2A6C8F54416A47A3B3C6085141C5E3D836718F5441C57915FEC70851416F5B847B788F54416D5BBEA2C808514117A9E9437E8F54418FC2F508C9085141AE47E1DA818F54417B7F8A5EC90851414967B845888F5441A5A39AD9C90851411091FF7F918F5441F1127B04CA0851414DF13C8A938F5441F7CA5B6FCB08514109707A94938F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>133590 - 394052
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000014000000F6285C6FCB08514148E17A94938F5441A4703DBACD085141F6285C5F968F5441AE47E1DACE08514114AE47C1998F5441D7A370EDD1085141AE47E1AA9A8F5441CDCCCC8CD108514185EB5128938F544185EB51F8D00851418FC2F548888F54415C8FC295D0085141C3F5288C838F544133333363D008514185EB51F8818F5441EC51B8CECE085141A4703D7A768F54415C8FC2C5CC085141A4703DAA6A8F5441EC51B85ECB0851413D0AD7B3648F5441000000B0C908514185EB51A8618F5441AE47E11AC308514133333303638F5441E17A14EEC3085141666666D6658F5441E17A14CEC5085141A4703D2A6C8F5441E17A14FEC7085141B81E857B788F54418FC2F508C9085141AE47E1DA818F54419A9999D9C908514100000080918F544148E17A04CA085141A4703D8A938F5441F6285C6FCB08514148E17A94938F5441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000F7CA5B6FCB08514109707A94938F5441B61F8470CB085141F364E395938F5441706E3EBACD08514134E55A5F968F544170A76E48CE0851415ACDEF09988F5441AE47E1DACE08514114AE47C1998F5441DAE49941D0085141B6FED02B9A8F5441E29A70EDD10851418695E0AA9A8F5441CDCCCC8CD108514185EB5128938F54412431A66CD1085141EB7EA1CD908F54410E4651F8D00851419148F648888F5441011AC295D00851416559288C838F5441881C3263D00851417BA651F8818F544182EDB7CECE085141A0813D7A768F54418685C1C5CC085141FE663DAA6A8F54417C1C447BCB08514131EC322D658F5441F86CB85ECB0851413A7DD7B3648F5441B3E36F2DCB085141DCBCA55A648F5441142F00B0C9085141B94052A8618F5441845EE21AC3085141590A3303638F544192206379C30851414FCCD046648F5441E17A14EEC3085141666666D6658F5441E17A14CEC5085141A4703D2A6C8F54416A47A3B3C6085141C5E3D836718F5441C57915FEC70851416F5B847B788F54416D5BBEA2C808514117A9E9437E8F54418FC2F508C9085141AE47E1DA818F54417B7F8A5EC90851414967B845888F5441A5A39AD9C90851411091FF7F918F5441F1127B04CA0851414DF13C8A938F5441F7CA5B6FCB08514109707A94938F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>134286 - 163188
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000000B0000005C8FC2F59D0251418FC2F5581F8C544152B81E35A102514185EB51681E8C5441E17A14AEAA025141EC51B86E1E8C54410AD7A3B0AF025141295C8FA21B8C54417B14AE27B90251415C8FC245168C5441F6285CBFB10251418FC2F5B8098C5441EC51B83E9A0251418FC2F5E8E18B544152B81E658F0251413D0AD7D3E28B54416666663687025141C3F528DCF18B5441E17A14AE8D02514100000090FF8B54415C8FC2F59D0251418FC2F5581F8C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001100000052B81E658F0251413D0AD7D3E28B5441CCDB663687025141BBBB29DCF18B5441122614AE8D025141502CFF8FFF8B54414276ED72900251419F6DF3F7048C5441BE0DC2F59D0251417FC5F4581F8C54417A3A4E18A0025141C2B0C2BA1E8C544152B81E35A102514185EB51681E8C5441A9E413AEAA0251418751B86E1E8C54410EEFA2B0AF025141E50A8EA21B8C5441FE28881DB80251412F958CDC168C54410CE5AD27B90251413CAAC245168C544196C57E31B402514106BCC6DD0D8C5441F6285CBFB10251418FC2F5B8098C5441498D4093AF0251419242EE0A068C5441A255B73E9A025141AB1EF6E8E18B5441300294B1970251412AED3020E28B544152B81E658F0251413D0AD7D3E28B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>134286 - 398421
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000000B0000005C8FC2F59D0251418FC2F5581F8C544152B81E35A102514185EB51681E8C5441E17A14AEAA025141EC51B86E1E8C54410AD7A3B0AF025141295C8FA21B8C54417B14AE27B90251415C8FC245168C5441F6285CBFB10251418FC2F5B8098C5441EC51B83E9A0251418FC2F5E8E18B544152B81E658F0251413D0AD7D3E28B54416666663687025141C3F528DCF18B5441E17A14AE8D02514100000090FF8B54415C8FC2F59D0251418FC2F5581F8C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001100000052B81E658F0251413D0AD7D3E28B5441CCDB663687025141BBBB29DCF18B5441122614AE8D025141502CFF8FFF8B54414276ED72900251419F6DF3F7048C5441BE0DC2F59D0251417FC5F4581F8C54417A3A4E18A0025141C2B0C2BA1E8C544152B81E35A102514185EB51681E8C5441A9E413AEAA0251418751B86E1E8C54410EEFA2B0AF025141E50A8EA21B8C5441FE28881DB80251412F958CDC168C54410CE5AD27B90251413CAAC245168C544196C57E31B402514106BCC6DD0D8C5441F6285CBFB10251418FC2F5B8098C5441498D4093AF0251419242EE0A068C5441A255B73E9A025141AB1EF6E8E18B5441300294B1970251412AED3020E28B544152B81E658F0251413D0AD7D3E28B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>134448 - 163163
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000011000000EC51B87E39035141295C8F42B68C5441F6285C8F3603514185EB51C8B68C544114AE4781340351415C8FC265B78C5441AE47E19A32035141B81E853BB88C5441A4703DDA3003514166666646B98C54410AD7A3F02E0351413D0AD7B3BA8C5441AE47E18A2E035141CDCCCCCCBB8C5441C3F528DC2E03514166666626BD8C5441295C8FD2340351418FC2F5D8C58C54418FC2F5082E035141713D0A27CB8C54417B14AE973E035141B81E851BE18C5441A4703D8A4F03514148E17A94F78C5441713D0A1752035141D7A3705DF58C54418FC2F53855035141C3F528DCF18C5441295C8FB25D03514133333343E68C5441F6285C8F4B03514166666636CE8C5441EC51B87E39035141295C8F42B68C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001900000052A3FB9C3103514192E88DD2B88C544154C33EDA300351412CA96646B98C5441A753A4F02E0351410230D8B3BA8C54415F8C30A82E0351419E3AE07BBB8C5441AE47E18A2E035141CDCCCCCCBB8C54414885C2BF2E03514183B8A4ADBC8C54417C5429DC2E03514191F06626BD8C5441295C8FD2340351418FC2F5D8C58C5441DD05858D30035141CB3C432FC98C5441DED7F5082E035141CA2C0A27CB8C54417B14AE973E035141B81E851BE18C544140BD3C8A4F03514169F37994F78C5441CED9081752035141E4C1715DF58C5441E18BEBF45203514125D42C65F48C54418FC2F53855035141C3F528DCF18C5441709FF5F25B0351419D83B6A7E88C54418F828EB25D0351414AFE3343E68C544153D55B8F4B035141471E6736CE8C5441BD7CD83840035141A100F02DBF8C5441D13CB97E390351419C939042B68C5441B42A1B1238035141BC4F7883B68C5441F6285C8F3603514185EB51C8B68C544114AE4781340351415C8FC265B78C5441AE47E19A32035141B81E853BB88C544152A3FB9C3103514192E88DD2B88C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>134448 - 352324
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000011000000EC51B87E39035141295C8F42B68C5441F6285C8F3603514185EB51C8B68C544114AE4781340351415C8FC265B78C5441AE47E19A32035141B81E853BB88C5441A4703DDA3003514166666646B98C54410AD7A3F02E0351413D0AD7B3BA8C5441AE47E18A2E035141CDCCCCCCBB8C5441C3F528DC2E03514166666626BD8C5441295C8FD2340351418FC2F5D8C58C54418FC2F5082E035141713D0A27CB8C54417B14AE973E035141B81E851BE18C5441A4703D8A4F03514148E17A94F78C5441713D0A1752035141D7A3705DF58C54418FC2F53855035141C3F528DCF18C5441295C8FB25D03514133333343E68C5441F6285C8F4B03514166666636CE8C5441EC51B87E39035141295C8F42B68C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001900000052A3FB9C3103514192E88DD2B88C544154C33EDA300351412CA96646B98C5441A753A4F02E0351410230D8B3BA8C54415F8C30A82E0351419E3AE07BBB8C5441AE47E18A2E035141CDCCCCCCBB8C54414885C2BF2E03514183B8A4ADBC8C54417C5429DC2E03514191F06626BD8C5441295C8FD2340351418FC2F5D8C58C5441DD05858D30035141CB3C432FC98C5441DED7F5082E035141CA2C0A27CB8C54417B14AE973E035141B81E851BE18C544140BD3C8A4F03514169F37994F78C5441CED9081752035141E4C1715DF58C5441E18BEBF45203514125D42C65F48C54418FC2F53855035141C3F528DCF18C5441709FF5F25B0351419D83B6A7E88C54418F828EB25D0351414AFE3343E68C544153D55B8F4B035141471E6736CE8C5441BD7CD83840035141A100F02DBF8C5441D13CB97E390351419C939042B68C5441B42A1B1238035141BC4F7883B68C5441F6285C8F3603514185EB51C8B68C544114AE4781340351415C8FC265B78C5441AE47E19A32035141B81E853BB88C544152A3FB9C3103514192E88DD2B88C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>134750 - 163232
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000000F0000008FC2F5289C045141AE47E15A728D5441F6285CCF99045141F6285C9F5F8D5441666666469B04514133333353578D5441D7A3704D9D045141EC51B82E508D5441F6285C3F9E045141AE47E1BA4D8D54419A9999B992045141B81E85FB518D5441E17A148E5D045141CDCCCC9C658D544185EB512867045141AE47E1FA758D54418FC2F5C86A045141333333537A8D5441666666F66B0451413D0AD7837C8D5441EC51B89E6C045141EC51B83E7E8D54413D0AD7437D045141C3F5283C788D544114AE477189045141295C8FF2748D5441C3F528EC90045141AE47E19A738D54418FC2F5289C045141AE47E15A728D5441
+</a>
+
+<b>
+01060000000100000001030000000100000018000000EBE2F5C86A045141626F33537A8D5441035866F66B0451419A11D6837C8D5441C063B99E6C0451410DEFB73E7E8D5441E036FC90710451410DA982757C8D5441BF76D7437D04514180D7273C788D544137B5B4AA82045141FA9FD5C6768D544114AE477189045141295C8FF2748D5441465931DB8E045141527CD1F9738D5441E71428EC90045141C7F7E09A738D5441BCB1F5289C04514194C1E05A728D5441ACA6EB649B045141A4EC31406C8D544141F35ACF99045141966B5D9F5F8D54413156BBF89A0451418357190B598D5441666666469B04514133333353578D5441A94097CC9B045141CC94787A558D5441F4916F4D9D045141076FB82E508D5441BB9184339E045141D3FA9CD94D8D54414C9C5B3F9E045141BDB4E2BA4D8D544147D79AB992045141FFD684FB518D544198AF5B306C0451411E23B335608D544181C7158E5D0451410052CC9C658D5441CF26168E5D04514136A6CF9C658D544185EB512867045141AE47E1FA758D5441EBE2F5C86A045141626F33537A8D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>134750 - 342002
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000000F0000008FC2F5289C045141AE47E15A728D5441F6285CCF99045141F6285C9F5F8D5441666666469B04514133333353578D5441D7A3704D9D045141EC51B82E508D5441F6285C3F9E045141AE47E1BA4D8D54419A9999B992045141B81E85FB518D5441E17A148E5D045141CDCCCC9C658D544185EB512867045141AE47E1FA758D54418FC2F5C86A045141333333537A8D5441666666F66B0451413D0AD7837C8D5441EC51B89E6C045141EC51B83E7E8D54413D0AD7437D045141C3F5283C788D544114AE477189045141295C8FF2748D5441C3F528EC90045141AE47E19A738D54418FC2F5289C045141AE47E15A728D5441
+</a>
+
+<b>
+01060000000100000001030000000100000018000000EBE2F5C86A045141626F33537A8D5441035866F66B0451419A11D6837C8D5441C063B99E6C0451410DEFB73E7E8D5441E036FC90710451410DA982757C8D5441BF76D7437D04514180D7273C788D544137B5B4AA82045141FA9FD5C6768D544114AE477189045141295C8FF2748D5441465931DB8E045141527CD1F9738D5441E71428EC90045141C7F7E09A738D5441BCB1F5289C04514194C1E05A728D5441ACA6EB649B045141A4EC31406C8D544141F35ACF99045141966B5D9F5F8D54413156BBF89A0451418357190B598D5441666666469B04514133333353578D5441A94097CC9B045141CC94787A558D5441F4916F4D9D045141076FB82E508D5441BB9184339E045141D3FA9CD94D8D54414C9C5B3F9E045141BDB4E2BA4D8D544147D79AB992045141FFD684FB518D544198AF5B306C0451411E23B335608D544181C7158E5D0451410052CC9C658D5441CF26168E5D04514136A6CF9C658D544185EB512867045141AE47E1FA758D5441EBE2F5C86A045141626F33537A8D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>237297 - 1281776
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001A000000A4703D4A08185141D7A3703D96F85441713D0A7705185141CDCCCC5C92F85441666666C60318514114AE47D18FF8544152B81EF501185141000000B08CF8544133333373FF1751413D0AD7F387F85441666666F6F9175141713D0AE77CF85441B81E850BE7175141F6285C2F6DF8544100000060E61751419A99998971F85441713D0AB7E71751419A99993976F85441F6285C8FEA1751419A9999E97AF8544152B81E35E61751417B14AEE778F85441AE47E18AE61751413D0AD7037FF85441EC51B85EE517514152B81E6589F854418FC2F5C8E4175141A4703DDA92F85441F6285CDFE51751415C8FC23598F854411F85EB21E817514185EB51E89EF85441666666A6EB1751417B14AEC7A7F8544133333373ED175141F6285C0FACF85441CDCCCC5CEF175141CDCCCCACB0F85441713D0A070D185141713D0A47A8F854413D0AD7E30C18514166666666A7F854413D0AD7F30B1851419A9999B9A2F85441F6285CCF0A185141EC51B8FE9EF85441AE47E16A0A1851411F85EB419CF85441E17A149E09185141B81E859B99F85441A4703D4A08185141D7A3703D96F85441
+</a>
+
+<b>
+010600000001000000010300000001000000450000002D2C8DB7EB175141A1655EF0A7F85441666666A6EB1751417B14AEC7A7F85441B74F9327EA1751416C420C02A4F854413EEED936E91751419122D9A2A1F854411F85EB21E817514185EB51E89EF8544112802623E61751412982D1B598F8544171D8E31BE617514193735E9698F85441927D9D15E6175141E8D6568298F85441EE3BD27EE51751414D2A00EE95F85441E18509C9E4175141E30B93DA92F854414D3BEDCBE4175141A15047AA92F85441EC51B85EE517514152B81E6589F8544134EA78BAE51751412A3B29B485F85441233EC4E4E5175141A85F920084F85441C4996151E617514112F4AC2F7FF854413BE39D7AE61751419D0E43F97DF85441523E0C73E6175141F36A2B517DF854418B1D095FE6175141074E0BFE78F85441249CB569E6175141C48EEFFF78F854416BFE2B87E91751411167EC337AF85441F6285C8FEA1751419A9999E97AF854416556CE92E917514188307C4979F8544171CC0D6EE81751413083236777F85441EE7C52B9E717514119395C3D76F85441C9526CB7E717514172343B3A76F85441713D0AB7E71751419A99993976F85441C1E43A56E71751410420F2E674F8544118FA7119E7175141D2F24F1274F85441970209DEE617514184F07C4273F85441128B2260E6175141A332B98871F85441C9601461E61751417D2C968271F85441E2242F6BE6175141CCD8F14071F85441941736A0E2175141E54842E671F854413725B0E5E1175141E7F2F29B75F85441B652E15DE1175141CCC675807AF85441AA8D1E0CE217514140E8ECAC82F854410CFA3BC5E217514191CB24578AF85441941736A0E2175141190C640A8FF854419A522A56E2175141860CFDCC92F85441D84833C3E117514128DB198D94F854411847E159E0175141F9DAD0BD94F854418C087788E01751411E638E5A95F85441AD13F81AE21751412C71D3A49AF85441FBCFB91CE6175141BC0E4D0CA8F8544185EB51B8E61751413D0AD713AAF85441CDD980DAE6175141D469158EAAF854415F989398E717514107CADD10ADF8544133333373ED175141F6285C0FACF8544155C9D4A3EC1751419F0C7FEAADF854411F85EB21EB175141EC51B85EB1F854415C8FC295EF1751415C8FC2A5B3F854412068BD88F21751414C105EA4B4F854417228B05AF5175141FAE3E6DBB4F854415C8FC275F8175141CDCCCCFCB4F85441C37C1E36FB175141F5A8F225B5F854414029E2DFFC1751413CD569EEB4F85441A75FBD1DFF175141105ACF47B4F8544160C20F24011851418D7217E8B2F854418BD125D4041851419E1E42CFB0F85441ACDB89490718514157630138AFF854415A3EDC4F09185141D57B49D8ADF85441C174B78D0B18514116DE021CACF85441FD2FF8240D185141F098AAF0A9F85441445C6FED0C18514132FB6334A8F85441CDCCCC5CEF175141CDCCCCACB0F854410DE50261EE1751419430D3E9ADF85441360F768BED175141D37B160CACF8544107F75A15ED17514133DE3730ABF854412D2C8DB7EB175141A1655EF0A7F85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>237297 - 3564498
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001A000000A4703D4A08185141D7A3703D96F85441713D0A7705185141CDCCCC5C92F85441666666C60318514114AE47D18FF8544152B81EF501185141000000B08CF8544133333373FF1751413D0AD7F387F85441666666F6F9175141713D0AE77CF85441B81E850BE7175141F6285C2F6DF8544100000060E61751419A99998971F85441713D0AB7E71751419A99993976F85441F6285C8FEA1751419A9999E97AF8544152B81E35E61751417B14AEE778F85441AE47E18AE61751413D0AD7037FF85441EC51B85EE517514152B81E6589F854418FC2F5C8E4175141A4703DDA92F85441F6285CDFE51751415C8FC23598F854411F85EB21E817514185EB51E89EF85441666666A6EB1751417B14AEC7A7F8544133333373ED175141F6285C0FACF85441CDCCCC5CEF175141CDCCCCACB0F85441713D0A070D185141713D0A47A8F854413D0AD7E30C18514166666666A7F854413D0AD7F30B1851419A9999B9A2F85441F6285CCF0A185141EC51B8FE9EF85441AE47E16A0A1851411F85EB419CF85441E17A149E09185141B81E859B99F85441A4703D4A08185141D7A3703D96F85441
+</a>
+
+<b>
+010600000001000000010300000001000000450000002D2C8DB7EB175141A1655EF0A7F85441666666A6EB1751417B14AEC7A7F85441B74F9327EA1751416C420C02A4F854413EEED936E91751419122D9A2A1F854411F85EB21E817514185EB51E89EF8544112802623E61751412982D1B598F8544171D8E31BE617514193735E9698F85441927D9D15E6175141E8D6568298F85441EE3BD27EE51751414D2A00EE95F85441E18509C9E4175141E30B93DA92F854414D3BEDCBE4175141A15047AA92F85441EC51B85EE517514152B81E6589F8544134EA78BAE51751412A3B29B485F85441233EC4E4E5175141A85F920084F85441C4996151E617514112F4AC2F7FF854413BE39D7AE61751419D0E43F97DF85441523E0C73E6175141F36A2B517DF854418B1D095FE6175141074E0BFE78F85441249CB569E6175141C48EEFFF78F854416BFE2B87E91751411167EC337AF85441F6285C8FEA1751419A9999E97AF854416556CE92E917514188307C4979F8544171CC0D6EE81751413083236777F85441EE7C52B9E717514119395C3D76F85441C9526CB7E717514172343B3A76F85441713D0AB7E71751419A99993976F85441C1E43A56E71751410420F2E674F8544118FA7119E7175141D2F24F1274F85441970209DEE617514184F07C4273F85441128B2260E6175141A332B98871F85441C9601461E61751417D2C968271F85441E2242F6BE6175141CCD8F14071F85441941736A0E2175141E54842E671F854413725B0E5E1175141E7F2F29B75F85441B652E15DE1175141CCC675807AF85441AA8D1E0CE217514140E8ECAC82F854410CFA3BC5E217514191CB24578AF85441941736A0E2175141190C640A8FF854419A522A56E2175141860CFDCC92F85441D84833C3E117514128DB198D94F854411847E159E0175141F9DAD0BD94F854418C087788E01751411E638E5A95F85441AD13F81AE21751412C71D3A49AF85441FBCFB91CE6175141BC0E4D0CA8F8544185EB51B8E61751413D0AD713AAF85441CDD980DAE6175141D469158EAAF854415F989398E717514107CADD10ADF8544133333373ED175141F6285C0FACF8544155C9D4A3EC1751419F0C7FEAADF854411F85EB21EB175141EC51B85EB1F854415C8FC295EF1751415C8FC2A5B3F854412068BD88F21751414C105EA4B4F854417228B05AF5175141FAE3E6DBB4F854415C8FC275F8175141CDCCCCFCB4F85441C37C1E36FB175141F5A8F225B5F854414029E2DFFC1751413CD569EEB4F85441A75FBD1DFF175141105ACF47B4F8544160C20F24011851418D7217E8B2F854418BD125D4041851419E1E42CFB0F85441ACDB89490718514157630138AFF854415A3EDC4F09185141D57B49D8ADF85441C174B78D0B18514116DE021CACF85441FD2FF8240D185141F098AAF0A9F85441445C6FED0C18514132FB6334A8F85441CDCCCC5CEF175141CDCCCCACB0F854410DE50261EE1751419430D3E9ADF85441360F768BED175141D37B160CACF8544107F75A15ED17514133DE3730ABF854412D2C8DB7EB175141A1655EF0A7F85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>293602 - 1625530
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B00000052B81EC585AD504114AE47017436554148E17A6497AD5041F6285C0F79365541295C8FB295AD5041F6285CDF753655410000002093AD50417B14AE376E365541CDCCCCDC91AD5041AE47E1FA6C36554185EB516883AD50411F85EBC168365541E17A148E82AD5041295C8F226C36554185EB519881AD5041AE47E1DA6B365541F6285C1F74AD5041CDCCCCEC673655413D0AD70374AD50419A9999E96E36554152B81EC585AD504114AE470174365541
+</a>
+
+<b>
+0106000000010000000103000000010000001000000085EB516883AD50411F85EBC168365541E17A148E82AD5041295C8F226C365541517784177CAD50412DBFEC3F6A365541674C741F74AD504160D7D3EC673655419531E20374AD5041249CC4E66E3655419FC0D17B76AD50413B5DDD9E6F36554184FF81447FAD50418DBCD5237236554148E17A6497AD5041F6285C0F793655413318CBB195AD5041C62114DD753655415FD7691F93AD5041993CFE356E365541345781DE91AD5041202D8DFC6C3655416261E2A28FAD5041746366546C365541849836268FAD504150FF05F16D365541C4A918048BAD5041C6F531B76C3655414FED42938BAD5041A83855266B36554185EB516883AD50411F85EBC168365541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>293602 - 3362484
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B00000052B81EC585AD504114AE47017436554148E17A6497AD5041F6285C0F79365541295C8FB295AD5041F6285CDF753655410000002093AD50417B14AE376E365541CDCCCCDC91AD5041AE47E1FA6C36554185EB516883AD50411F85EBC168365541E17A148E82AD5041295C8F226C36554185EB519881AD5041AE47E1DA6B365541F6285C1F74AD5041CDCCCCEC673655413D0AD70374AD50419A9999E96E36554152B81EC585AD504114AE470174365541
+</a>
+
+<b>
+0106000000010000000103000000010000001000000085EB516883AD50411F85EBC168365541E17A148E82AD5041295C8F226C365541517784177CAD50412DBFEC3F6A365541674C741F74AD504160D7D3EC673655419531E20374AD5041249CC4E66E3655419FC0D17B76AD50413B5DDD9E6F36554184FF81447FAD50418DBCD5237236554148E17A6497AD5041F6285C0F793655413318CBB195AD5041C62114DD753655415FD7691F93AD5041993CFE356E365541345781DE91AD5041202D8DFC6C3655416261E2A28FAD5041746366546C365541849836268FAD504150FF05F16D365541C4A918048BAD5041C6F531B76C3655414FED42938BAD5041A83855266B36554185EB516883AD50411F85EBC168365541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>237495 - 3699640
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000011000000666666B695195141C3F528ECDDF65441CDCCCC3C93195141713D0A27D3F65441295C8F3291195141E17A142ECDF654418FC2F5A89019514185EB51F8C9F65441E17A14DE8F19514152B81E05C6F65441666666B68F19514100000000C5F65441F6285C9F8219514185EB5108C8F65441AE47E1CA82195141E17A141ECAF65441295C8F828519514133333363D6F654410000009089195141E17A14CEECF65441295C8FE28A19514100000040ECF65441000000A08F195141CDCCCC0CEDF654415C8FC2759719514185EB5198EEF6544152B81E65981951418FC2F5A8EEF65441D7A370BD97195141295C8FE2EAF65441295C8FF29619514185EB51B8E4F65441666666B695195141C3F528ECDDF65441
+</a>
+
+<b>
+01060000000100000001030000000100000017000000652FDE23971951417F25E537E6F65441E4474CEE961951413291DCA0E4F654416DCA81129619514179121FE7DFF65441E5CD69B99519514182CEBEFCDDF654411A7ED1A195195141C33A9992DDF65441D513228B941951411A47E5D5D8F65441CDCCCC3C93195141713D0A27D3F65441295C8F3291195141E17A142ECDF654418FC2F5A89019514185EB51F8C9F65441E17A14DE8F19514152B81E05C6F65441666666B68F19514100000000C5F65441F6285C9F8219514185EB5108C8F65441AE47E1CA82195141E17A141ECAF65441295C8F828519514133333363D6F654410000009089195141E17A14CEECF65441295C8FE28A19514100000040ECF65441000000A08F195141CDCCCC0CEDF654415C8FC2759719514185EB5198EEF6544152B81E65981951418FC2F5A8EEF6544110B2DCEC9719514115DBDEF3EBF654419BEE7DBA97195141E959A0CBEAF6544157A22A89971951418B54EA4BE9F65441652FDE23971951417F25E537E6F65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>237495 - 5234461
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000011000000666666B695195141C3F528ECDDF65441CDCCCC3C93195141713D0A27D3F65441295C8F3291195141E17A142ECDF654418FC2F5A89019514185EB51F8C9F65441E17A14DE8F19514152B81E05C6F65441666666B68F19514100000000C5F65441F6285C9F8219514185EB5108C8F65441AE47E1CA82195141E17A141ECAF65441295C8F828519514133333363D6F654410000009089195141E17A14CEECF65441295C8FE28A19514100000040ECF65441000000A08F195141CDCCCC0CEDF654415C8FC2759719514185EB5198EEF6544152B81E65981951418FC2F5A8EEF65441D7A370BD97195141295C8FE2EAF65441295C8FF29619514185EB51B8E4F65441666666B695195141C3F528ECDDF65441
+</a>
+
+<b>
+01060000000100000001030000000100000024000000CDCCCC3C93195141713D0A27D3F65441D513228B941951411A47E5D5D8F654411A7ED1A195195141C33A9992DDF65441D958DDA895195141CABA42B1DDF6544144A991AB9519514121C176BEDDF65441E5CD69B99519514182CEBEFCDDF65441FF99F3C195195141838ABD2BDEF654416DCA81129619514179121FE7DFF65441E4474CEE961951413291DCA0E4F6544116FED9F39619514182F90ECBE4F65441DD33FAF796195141F76A76E2E4F65441652FDE23971951417F25E537E6F654412ED1928997195141C9C9144FE9F6544194F63CB597195141B898C1A2EAF654412E88D0EC971951416B160BF3EBF65441AB9C63619819514110166492EEF654418FC2F59898195141295C8FD2EFF6544133A2A9D79D1951419086D770F1F65441A36F8A85A419514184CA26EBF3F654419464E5CCA91951416EA1B912F6F65441EA3985B5AC1951419455AB5DF7F6544105C7D3E5AE1951415DD53F9EF7F65441C2056E1EB21951415DD53F9EF7F654419395D053B51951413C311742F7F65441D3410364BA1951416EA1B912F6F654410CD06D54BC195141B3EBD488F5F65441F7A6007CBE19514135134F22F4F6544130356B6CC0195141FB84E431F2F6544114AE47B1C1195141EC51B81EF0F6544158C9CFF4BD1951414CF29075DAF654419DD3C82FBB195141DBB8F566CAF6544133333303BB19514148E17A64C9F654415C8FC235B9195141295C8F42C6F654411F358170B0195141F55B6D3FC9F6544154E00B58A4195141732BEC5ACDF65441CDCCCC3C93195141713D0A27D3F65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>136963 - 3085938
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000C0000009A9999F944695141C3F5287C7D765441333333734369514148E17A449A765441333333A34E695141713D0A879D7654415C8FC2354F695141EC51B86E9C7654413D0AD77355695141EC51B8BE897654413D0AD7135569514114AE47517E765441E17A14FE53695141C3F528EC72765441713D0AE751695141A4703DDA69765441CDCCCC4C50695141F6285C0F63765441333333B342695141A4703D9A67765441295C8FA2456951410AD7A300717654419A9999F944695141C3F5287C7D765441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000AFD07BBF436951410A9CA140677654414379353843695141F0B11777677654410937E52E46695141312766056E76544122C2D1E646695141FFE1AAEF74765441C792B4FA476951419C21CB327D7654410170B9CC476951419C5734C4827654417DF1EED245695141DDCC8252897654416466021B4569514159BA8A7B927654419E4307ED446951419A2FD90999765441E082ECE945695141797875B89C765441A3409CE048695141C9E066429D76544182EE83C649695141B81CA6EC9A765441BC01F2294F695141EA327F5C9C7654413D0AD77355695141EC51B8BE897654413D0AD7135569514114AE47517E765441E17A14FE53695141C3F528EC72765441713D0AE751695141A4703DDA69765441CDCCCC4C50695141F6285C0F63765441AFD07BBF436951410A9CA14067765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>136963 - 3424219
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000C0000009A9999F944695141C3F5287C7D765441333333734369514148E17A449A765441333333A34E695141713D0A879D7654415C8FC2354F695141EC51B86E9C7654413D0AD77355695141EC51B8BE897654413D0AD7135569514114AE47517E765441E17A14FE53695141C3F528EC72765441713D0AE751695141A4703DDA69765441CDCCCC4C50695141F6285C0F63765441333333B342695141A4703D9A67765441295C8FA2456951410AD7A300717654419A9999F944695141C3F5287C7D765441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000AFD07BBF436951410A9CA140677654414379353843695141F0B11777677654410937E52E46695141312766056E76544122C2D1E646695141FFE1AAEF74765441C792B4FA476951419C21CB327D7654410170B9CC476951419C5734C4827654417DF1EED245695141DDCC8252897654416466021B4569514159BA8A7B927654419E4307ED446951419A2FD90999765441E082ECE945695141797875B89C765441A3409CE048695141C9E066429D76544182EE83C649695141B81CA6EC9A765441BC01F2294F695141EA327F5C9C7654413D0AD77355695141EC51B8BE897654413D0AD7135569514114AE47517E765441E17A14FE53695141C3F528EC72765441713D0AE751695141A4703DDA69765441CDCCCC4C50695141F6285C0F63765441AFD07BBF436951410A9CA14067765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>237656 - 3090239
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000016000000666666364F1751413D0AD7C35DF954417B14AE374F175141E17A14CE5CF954413D0AD7A33A175141EC51B8DE5CF95441666666563A175141EC51B88E5FF9544148E17AA42E1751413D0AD7735EF95441C3F5284C2E1751416666661660F95441F6285CFF2C175141B81E854B66F954418FC2F5182B175141CDCCCC5C6FF95441713D0AD72A1751417B14AE9770F9544152B81E05321751413D0AD7736EF954415C8FC2F539175141C3F5280C6CF95441A4703DDA39175141CDCCCC1C65F95441E17A144E3A175141F6285C5F60F954417B14AE773D175141D7A3700D61F95441EC51B82E431751418FC2F59862F95441CDCCCC0C4717514114AE47D163F954411F85EB214A175141B81E85EB64F95441333333C34A1751419A9999E965F9544185EB51784B175141F6285CEF66F954411F85EB814D1751410000004067F95441AE47E15A4F1751410AD7A3A067F95441666666364F1751413D0AD7C35DF95441
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000009C7D800E581751416614B47F5EF95441DAAAC0D75717514142FAD5AC5CF95441B645D85B4F1751419A84F7CD5CF954419793B14D4F1751413BA0011064F95441E27D96644F175141840B96A467F954414790318D4C175141683D2A1A67F9544185EB51784B175141F6285CEF66F95441EF2F4C544B1751415AA34CBB66F95441C458CDFB491751416EF8E2DD64F95441F23D5F5E42175141C88CA26062F9544122CF2D473A1751410F48A6A760F95441B385A2DA39175141FDC7453665F95441788D5BE9391751418A1010EC68F9544152CFAE063A1751414DFAFF786CF9544128395C1A3B175141B04260846FF954413A37A2943B17514100397F706EF954415018B0BB3C175141D6AE78EE6DF954419C78D1263E175141BF6E02A26DF95441C0E2EED1441751411979AB206DF9544101726B5B4E175141C5ABE52D6DF95441DBB529FC5817514101F625726DF95441BE6179A462175141593F885B6DF9544138081F896B175141B327C7C76CF954418C509A496C175141402433666DF95441382F81E66B17514141597FF369F95441333333E3631751418FC2F54869F95441713D0AE758175141CDCCCC9C68F954419C7D800E581751416614B47F5EF95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>237656 - 3194316
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000016000000666666364F1751413D0AD7C35DF954417B14AE374F175141E17A14CE5CF954413D0AD7A33A175141EC51B8DE5CF95441666666563A175141EC51B88E5FF9544148E17AA42E1751413D0AD7735EF95441C3F5284C2E1751416666661660F95441F6285CFF2C175141B81E854B66F954418FC2F5182B175141CDCCCC5C6FF95441713D0AD72A1751417B14AE9770F9544152B81E05321751413D0AD7736EF954415C8FC2F539175141C3F5280C6CF95441A4703DDA39175141CDCCCC1C65F95441E17A144E3A175141F6285C5F60F954417B14AE773D175141D7A3700D61F95441EC51B82E431751418FC2F59862F95441CDCCCC0C4717514114AE47D163F954411F85EB214A175141B81E85EB64F95441333333C34A1751419A9999E965F9544185EB51784B175141F6285CEF66F954411F85EB814D1751410000004067F95441AE47E15A4F1751410AD7A3A067F95441666666364F1751413D0AD7C35DF95441
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000009C7D800E581751416614B47F5EF95441DAAAC0D75717514142FAD5AC5CF95441B645D85B4F1751419A84F7CD5CF954419793B14D4F1751413BA0011064F95441E27D96644F175141840B96A467F954414790318D4C175141683D2A1A67F9544185EB51784B175141F6285CEF66F95441EF2F4C544B1751415AA34CBB66F95441C458CDFB491751416EF8E2DD64F95441F23D5F5E42175141C88CA26062F9544122CF2D473A1751410F48A6A760F95441B385A2DA39175141FDC7453665F95441788D5BE9391751418A1010EC68F9544152CFAE063A1751414DFAFF786CF9544128395C1A3B175141B04260846FF954413A37A2943B17514100397F706EF954415018B0BB3C175141D6AE78EE6DF954419C78D1263E175141BF6E02A26DF95441C0E2EED1441751411979AB206DF9544101726B5B4E175141C5ABE52D6DF95441DBB529FC5817514101F625726DF95441BE6179A462175141593F885B6DF9544138081F896B175141B327C7C76CF954418C509A496C175141402433666DF95441382F81E66B17514141597FF369F95441333333E3631751418FC2F54869F95441713D0AE758175141CDCCCC9C68F954419C7D800E581751416614B47F5EF95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>137823 - 144679
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000025000000E17A14AECB695141CDCCCC9C8E7B5441A4703DCACB69514114AE47B18A7B5441CDCCCCBCC6695141D7A3708D8D7B5441D7A370EDC66951419A9999C98A7B544152B81ED5C66951419A999929857B5441D7A370EDC669514114AE4741817B5441F6285C4FC7695141713D0AF77C7B5441295C8F12C8695141713D0A27797B54411F85EBE1C969514166666656737B5441295C8FE2CB695141AE47E1DA6C7B5441F6285CEFCC695141D7A370CD657B544166666626C9695141666666A6647B544185EB5108C969514152B81E25687B5441F6285CAFC86951418FC2F5386C7B5441C3F528FCC7695141713D0AE76E7B54411F85EBD1C6695141C3F5280C727B54419A999989C56951411F85EBC1777B54418FC2F5D8BD695141D7A370FD777B544114AE47D1BA695141C3F528EC787B54419A999939B56951410AD7A3B0787B54415C8FC295AE695141EC51B8CE787B5441C3F528ECA96951419A999939787B544185EB51D8A5695141AE47E14A777B5441AE47E1FAA3695141CDCCCC2C777B544114AE47819E695141333333D3767B5441713D0A579D695141A4703DEA7F7B5441E17A143E9B695141CDCCCCEC907B5441295C8F1299695141C3F5280C9F7B5441CDCCCCCC98695141C3F5288CA07B54419A9999E9986951419A999949A27B5441EC51B81E9969514152B81E15A97B54413333335399695141EC51B8DEAD7B544133333333AF6951419A999939A47B54413D0AD7B3BB6951418FC2F5789E7B5441D7A370CDBF695141F6285C5F9B7B5441EC51B83EC56951413D0AD783967B5441E17A14AECB695141CDCCCC9C8E7B5441
+</a>
+
+<b>
+0106000000010000000103000000010000003400000082B8A36AC76951419DA624D9937B544199C1026BCA695141A48A8B29907B54410998F8E8CA695141A60CDC8E8F7B54417D501E96CB69514142DC39BA8E7B5441EC942EBDCB69514134FE9E828C7B5441F9A411B1CB695141553B87BF8A7B54417A9CBDE8C9695141CAF5D5C18B7B544111641FCEC7695141B456B9F28C7B5441574EAEBDC6695141AAFDF08C8D7B54419DA3D572C5695141923A4A6A8E7B5441BE416CD9C369514108C1CA818F7B5441BF42D718C36951411E264405907B54416CD17EE9C26951411E728325907B5441D9049A0BC1695141692A6716917B5441FF3D4A62BE695141B00FD46D927B5441D54FCEFFBB695141B5538DA1937B54418FB433A1BA695141837C4752947B5441705384D2B6695141857B953D967B54410EE51FBBB5695141A4726ACA967B54417B740CA9B3695141517646BB977B5441EAA91138B0695141FDD1084A997B5441BBA72D83AC695141D74688F79A7B544123B1EC66A9695141434DB45B9C7B54418300DEFCA5695141C49B2CE09D7B5441B48DA4DCA369514192400DD29E7B5441392A2BE4A269514173177C409F7B5441D22731CCA2695141C233426F9F7B54415062DA9EA469514150648F17A57B544162017EA5A56951411E4FBC28A87B5441B79AF1B4A56951411DCFED56A87B5441C433CA8BA7695141472C8899A77B544155F91025A8695141EA3CF355A77B5441C7DEB1C7AC6951412BAABF4AA57B5441E8A672F2AC6951413FF4E537A57B54413A4FDF18B06951417A0AEDCFA37B5441EC023F2AB169514137FB2452A37B54417E7C0E3AB3695141D16E4B5FA27B54415D1A2712B4695141CCF9DDFBA17B5441DC2A304AB7695141AAC9B880A07B544184E37175B8695141330B08F79F7B5441F002FD3CBA695141AAA76E259F7B5441EC43EFE4BA695141DDA728D89E7B544170D66B9EBB69514109A0D0829E7B54416F4ECB49BD6951412BE004469D7B544196786E26BF6951419D7BA2DD9B7B5441FF506B14C06951410F9A02209B7B5441F2278EE1C169514176BC7084997B5441FDAF1080C36951412B2D7C12987B5441C577E982C4695141DC05762B977B54410F2400D7C4695141FF3169E0967B5441419793E5C56951413290EEB6957B544182B8A36AC76951419DA624D9937B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>137823 - 324011
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000025000000E17A14AECB695141CDCCCC9C8E7B5441A4703DCACB69514114AE47B18A7B5441CDCCCCBCC6695141D7A3708D8D7B5441D7A370EDC66951419A9999C98A7B544152B81ED5C66951419A999929857B5441D7A370EDC669514114AE4741817B5441F6285C4FC7695141713D0AF77C7B5441295C8F12C8695141713D0A27797B54411F85EBE1C969514166666656737B5441295C8FE2CB695141AE47E1DA6C7B5441F6285CEFCC695141D7A370CD657B544166666626C9695141666666A6647B544185EB5108C969514152B81E25687B5441F6285CAFC86951418FC2F5386C7B5441C3F528FCC7695141713D0AE76E7B54411F85EBD1C6695141C3F5280C727B54419A999989C56951411F85EBC1777B54418FC2F5D8BD695141D7A370FD777B544114AE47D1BA695141C3F528EC787B54419A999939B56951410AD7A3B0787B54415C8FC295AE695141EC51B8CE787B5441C3F528ECA96951419A999939787B544185EB51D8A5695141AE47E14A777B5441AE47E1FAA3695141CDCCCC2C777B544114AE47819E695141333333D3767B5441713D0A579D695141A4703DEA7F7B5441E17A143E9B695141CDCCCCEC907B5441295C8F1299695141C3F5280C9F7B5441CDCCCCCC98695141C3F5288CA07B54419A9999E9986951419A999949A27B5441EC51B81E9969514152B81E15A97B54413333335399695141EC51B8DEAD7B544133333333AF6951419A999939A47B54413D0AD7B3BB6951418FC2F5789E7B5441D7A370CDBF695141F6285C5F9B7B5441EC51B83EC56951413D0AD783967B5441E17A14AECB695141CDCCCC9C8E7B5441
+</a>
+
+<b>
+0106000000010000000103000000010000003400000082B8A36AC76951419DA624D9937B544199C1026BCA695141A48A8B29907B54410998F8E8CA695141A60CDC8E8F7B54417D501E96CB69514142DC39BA8E7B5441EC942EBDCB69514134FE9E828C7B5441F9A411B1CB695141553B87BF8A7B54417A9CBDE8C9695141CAF5D5C18B7B544111641FCEC7695141B456B9F28C7B5441574EAEBDC6695141AAFDF08C8D7B54419DA3D572C5695141923A4A6A8E7B5441BE416CD9C369514108C1CA818F7B5441BF42D718C36951411E264405907B54416CD17EE9C26951411E728325907B5441D9049A0BC1695141692A6716917B5441FF3D4A62BE695141B00FD46D927B5441D54FCEFFBB695141B5538DA1937B54418FB433A1BA695141837C4752947B5441705384D2B6695141857B953D967B54410EE51FBBB5695141A4726ACA967B54417B740CA9B3695141517646BB977B5441EAA91138B0695141FDD1084A997B5441BBA72D83AC695141D74688F79A7B544123B1EC66A9695141434DB45B9C7B54418300DEFCA5695141C49B2CE09D7B5441B48DA4DCA369514192400DD29E7B5441392A2BE4A269514173177C409F7B5441D22731CCA2695141C233426F9F7B54415062DA9EA469514150648F17A57B544162017EA5A56951411E4FBC28A87B5441B79AF1B4A56951411DCFED56A87B5441C433CA8BA7695141472C8899A77B544155F91025A8695141EA3CF355A77B5441C7DEB1C7AC6951412BAABF4AA57B5441E8A672F2AC6951413FF4E537A57B54413A4FDF18B06951417A0AEDCFA37B5441EC023F2AB169514137FB2452A37B54417E7C0E3AB3695141D16E4B5FA27B54415D1A2712B4695141CCF9DDFBA17B5441DC2A304AB7695141AAC9B880A07B544184E37175B8695141330B08F79F7B5441F002FD3CBA695141AAA76E259F7B5441EC43EFE4BA695141DDA728D89E7B544170D66B9EBB69514109A0D0829E7B54416F4ECB49BD6951412BE004469D7B544196786E26BF6951419D7BA2DD9B7B5441FF506B14C06951410F9A02209B7B5441F2278EE1C169514176BC7084997B5441FDAF1080C36951412B2D7C12987B5441C577E982C4695141DC05762B977B54410F2400D7C4695141FF3169E0967B5441419793E5C56951413290EEB6957B544182B8A36AC76951419DA624D9937B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>139170 - 206297
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000003F0000000AD7A3E0086D51410AD7A380FBB25441713D0AC7066D5141EC51B8CEF8B25441666666E6046D5141AE47E1CAF6B25441C3F528CC026D51415C8FC255F6B25441C3F528FC006D51417B14AEA7F2B254417B14AE97FF6C514100000060F2B2544114AE47A1FC6C51419A9999D9F1B25441713D0A87F96C51415C8FC2F5F1B25441AE47E12AF46C5141AE47E1EAF2B25441B81E85EBE96C51410AD7A380F5B25441AE47E11AE96C5141EC51B8FEF6B25441EC51B80EEF6C5141666666C608B35441295C8F02F56C5141E17A148E1AB35441D7A370DDFA6C5141A4703D0A2CB35441EC51B8DEFA6C51413D0AD7932EB35441CDCCCC3CFA6C514114AE472131B354415C8FC2D5F86C51410AD7A3F033B35441AE47E1BAF66C5141CDCCCC6C36B35441E17A147EF46C5141CDCCCCEC37B35441295C8F92F56C5141CDCCCC2C3BB35441C3F5286CFC6C5141EC51B80E40B35441EC51B85E016D51418FC2F55843B3544185EB5148046D51410AD7A3E044B35441A4703DBA066D514148E17A7445B354418FC2F5E8086D5141CDCCCC7C44B35441000000D0196D5141B81E850B38B35441B81E857B276D5141666666062EB35441CDCCCCAC2A6D51418FC2F5E831B3544185EB51E82E6D514114AE474134B35441CDCCCCEC306D5141000000C034B35441E17A143E336D5141EC51B85E33B35441CDCCCC9C2E6D5141B81E85BB2FB3544152B81E452D6D51415C8FC2D52EB35441C3F528CC2C6D514114AE47312EB35441AE47E1BA2B6D51410AD7A3C02DB35441B81E85EB296D5141000000302CB3544100000050246D514152B81E5527B354419A999999236D514185EB51F826B354417B14AEF7226D51410AD7A34026B354415C8FC265226D5141EC51B8CE24B35441C3F5281C216D514185EB519823B3544148E17A841F6D51417B14AE7722B3544148E17A241E6D5141B81E85FB20B35441B81E854B1C6D5141A4703D2A1FB354410AD7A3F0196D51411F85EB511CB35441000000E0196D5141CDCCCC7C1AB35441C3F5283C196D51415C8FC25519B35441A4703D6A166D5141B81E850B17B35441AE47E15A156D51419A99991915B3544148E17A24146D5141E17A143E14B354419A9999E9116D5141A4703D9A10B35441EC51B89E116D5141EC51B82E0FB3544152B81ED5106D5141333333630CB354417B14AEF70E6D5141295C8F4209B354413D0AD7830F6D514185EB518808B35441F6285C3F116D5141713D0AE707B354410AD7A340116D514185EB517806B35441D7A3707D116D5141295C8F1205B35441666666C60F6D51413D0AD7D301B35441000000700D6D5141C3F5281CFFB25441D7A370FD0B6D5141CDCCCCCCFEB25441AE47E11A0A6D514185EB51B8FDB254410AD7A3E0086D51410AD7A380FBB25441
+</a>
+
+<b>
+0106000000010000000103000000010000005500000078554C76F66C51418CDBF181F2B25441AE47E12AF46C5141AE47E1EAF2B25441A79685EBE96C5141C9B8A380F5B254418085D3B9E96C51414CC1A4DBF5B25441AE47E11AE96C5141EC51B8FEF6B25441EC51B80EEF6C5141666666C608B35441128D9ABFF36C5141D37B6AC916B3544180898F02F56C5141EB4D148E1AB3544154FA70DDFA6C514103A33D0A2CB35441B9E70BDEFA6C5141CE810A3E2DB35441EC51B8DEFA6C51413D0AD7932EB35441B48217CAFA6C5141F52116E72EB35441D059CD3CFA6C5141F4B3472131B3544191DBEECBF96C5141C6926A0332B354415C8FC2D5F86C51410AD7A3F033B35441AE47E1BAF66C5141CDCCCC6C36B35441E17A147EF46C5141CDCCCCEC37B35441C22840D1F46C51419AFB14E738B35441A9F38F92F56C5141A692CB2C3BB35441D5ED286CFC6C5141A4B5B70E40B354412F47B85E016D51419C5EF55843B3544125D77B6D026D514157B832E743B3544185EB5148046D51410AD7A3E044B35441A4703DBA066D514148E17A7445B354418FC2F5E8086D5141CDCCCC7C44B3544129148F2E0B6D51418C5AAAD042B35441B1C7FECF196D514186E4830B38B3544122544AD0196D514140A34E0B38B35441B81E857B276D5141666666062EB35441E2C2C27D276D5141F37820092EB3544125747A84296D51412A0D297C2CB35441939784EB296D5141FD8AFF2F2CB35441C4255194286D5141AE6BDA062BB354414EDFFE4F246D5141FA411F5527B354411C499999236D5141665152F826B3544114C68366236D51416C995EBE26B354417B14AEF7226D51410AD7A34026B354415C8FC265226D5141EC51B8CE24B35441D66B0F84216D5141D1F42AFA23B354416C86291C216D5141AAB2529823B35441700C7B841F6D51413E62AE7722B354416D9BD0691F6D51418FB4E15A22B3544148E17A241E6D5141B81E85FB20B35441B81E854B1C6D5141A4703D2A1FB354410AD7A3F0196D51411F85EB511CB35441000000E0196D5141CDCCCC7C1AB3544161556047196D51418C46F56919B35441AE74293C196D51415393C35519B35441336FDE4D176D514103195EC417B354417CED3C6A166D5141F56B840B17B3544145EB1F43166D5141F140BFC316B35441AE47E15A156D51419A99991915B3544148E17A24146D5141E17A143E14B354410360BC2C126D51417C30D30711B3544149FE98E9116D51415AD93C9A10B3544142E561CB116D5141B0E88A0710B35441EC51B89E116D5141EC51B82E0FB3544152B81ED5106D5141333333630CB354411309FDF10F6D51411E2950E60AB35441AD02ADF70E6D5141D881904209B35441B9A5D5830F6D51418A24538808B354413D0AD7830F6D514185EB518808B354417C9F231C106D5141E340F05008B354413B5B5B3F116D51419F2909E707B35441F1CCD63F116D514158B8C95D07B354410AD7A340116D514185EB517806B354410AF7F261116D5141768552B405B35441A6CF6F7D116D5141DFB18E1205B35441675D65C60F6D51411B5ED8D301B354410FC7AE310E6D5141D84054FDFFB25441000000700D6D5141C3F5281CFFB25441C5E9E7440D6D5141684DEE12FFB25441F4DA70FD0B6D5141ECE8CDCCFEB2544149EEB1150B6D51417AE60548FEB25441AE47E11A0A6D514185EB51B8FDB254410AD7A3E0086D51410AD7A380FBB25441713D0AC7066D5141EC51B8CEF8B25441666666E6046D5141AE47E1CAF6B25441C3F528CC026D51415C8FC255F6B25441C3F528FC006D51417B14AEA7F2B254417B14AE97FF6C514100000060F2B2544114AE47A1FC6C51419A9999D9F1B25441C58442DAFA6C5141219DBBE9F1B25441BA3F0B87F96C51419D3AC3F5F1B2544178554C76F66C51418CDBF181F2B25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>237981 - 404219
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001F000000CDCCCCAC6CC05041C3F5284CAFCD5441666666366EC05041E17A140EB4CD5441CDCCCC3C78C05041D7A3708DDBCD5441A4703D0A7AC050417B14AEB7E0CD5441A4703DCA7CC0504152B81E05E6CD5441A4703D4A80C05041AE47E1EAEACD54410000006092C050417B14AE4700CE54415C8FC28595C0504114AE47A103CE5441666666E699C050410AD7A3F004CE54415C8FC2659EC05041A4703D3A04CE5441CDCCCC3CA6C05041333333C301CE544166666666A4C0504133333333FDCD544152B81E85A1C05041CDCCCC0CF9CD54418FC2F5D89DC05041666666A6F5CD5441EC51B8DE9AC050417B14AE77F1CD544148E17AA492C05041295C8FF2E9CD5441CDCCCC9C8FC05041A4703D7AE5CD5441B81E858B8DC050411F85EB01E4CD5441F6285C6F8AC050413D0AD793E0CD54415C8FC26588C05041E17A147EDCCD5441EC51B86E86C050417B14AEA7DACD5441713D0AA782C0504148E17AF4D5CD544152B81EB57DC05041AE47E1BACBCD5441666666067DC05041F6285C9FC6CD54419A9999397CC0504152B81E85C4CD54411F85EB817BC05041295C8F52C0CD5441B81E857B7AC05041B81E85CBBECD5441333333C377C05041666666D6B8CD5441E17A14CE75C0504152B81E45B7CD54410AD7A3906FC05041CDCCCC5CAECD5441CDCCCCAC6CC05041C3F5284CAFCD5441
+</a>
+
+<b>
+010600000001000000010300000001000000320000006DAD3BC16DC05041B08A87A3B2CD5441666666366EC05041E17A140EB4CD5441280B262A76C0504174F8B962D3CD5441CDCCCC3C78C05041AAA3708DDBCD5441DCE53BBD78C050413B8876FDDCCD5441A4703D0A7AC050417B14AEB7E0CD5441A4703DCA7CC0504152B81E05E6CD5441A4703D4A80C05041AE47E1EAEACD5441BB1DEA2E90C05041690EE9B0FDCD54414600006092C05041C014AE4700CE54413F3A6BFB92C05041E51619ED00CE54415C8FC28595C0504114AE47A103CE54414B6666E699C0504102D7A3F004CE5441080367239BC05041B8886BBE04CE54415C8FC2659EC05041A4703D3A04CE5441FE2C5366A3C0504138089DA702CE5441C7CCCC3CA6C05041233333C301CE5441F3A06727A5C0504191FA6D12FFCD544139666666A4C0504129333333FDCD544139B81E85A1C05041CFCCCC0CF9CD54411E708A319FC050416CAF69E5F6CD54418FC2F5D89DC05041666666A6F5CD5441CE106DC49CC05041FAC3F321F4CD5441BD51B8DE9AC050418514AE77F1CD544148E17AA492C05041295C8FF2E9CD54419ECCCC9C8FC0504183703D7AE5CD54410D68097B8FC05041B1F43B62E5CD5441AA1E858B8DC050413985EB01E4CD54416DF8F8098BC0504157795C3EE1CD5441CF285C6F8AC05041080AD793E0CD5441228FC26588C050410C7B147EDCCD54413C3EF67E86C05041D636DEB6DACD5441BA51B86E86C050414914AEA7DACD544197613EEB84C0504179B3E5C5D8CD5441713D0AA782C0504148E17AF4D5CD54414476A42C7EC05041309D05B2CCCD544152B81EB57DC05041AE47E1BACBCD5441666666067DC05041F6285C9FC6CD5441E6C1D5F77CC050413BD21479C6CD5441689999397CC0504191B81E85C4CD5441FC84EB817BC050410E5C8F52C0CD54418D8418F77AC050412294AD83BFCD5441B81E857B7AC05041B81E85CBBECD5441333333C377C05041666666D6B8CD544117D377AB76C05041CF6C66F6B7CD5441C87A14CE75C0504180B81E45B7CD5441BD645A2E71C05041F96A5EABB0CD5441A8D8A3906FC050411CCFCC5CAECD544157ED532A71C05041EFCD53C3B0CD54416DAD3BC16DC05041B08A87A3B2CD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238023 - 396550
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001800000085EB5148F5BD50413333332397D05441EC51B85E12BE5041C3F5289C9DD05441CDCCCC8C1DBE504114AE478195D054417B14AE3722BE504114AE472193D054416666662626BE5041295C8F2292D05441000000302BBE5041F6285C3F92D054415C8FC2952EBE504152B81EB591D05441295C8F9231BE504185EB511890D05441EC51B82E35BE5041CDCCCCEC8CD0544148E17A7438BE50410000006089D05441333333533ABE50418FC2F56886D05441295C8F123CBE50410AD7A3D07FD05441A4703DBA36BE50411F85EB417DD05441EC51B8FE2CBE50413D0AD79378D0544185EB51E826BE50411F85EBA175D05441F6285CCF22BE5041EC51B86E78D0544148E17A141FBE5041713D0AE778D05441333333E31CBE5041D7A370BD78D05441B81E856B04BE5041B81E854B73D05441CDCCCC6C01BE50413333334382D054419A999949F5BD5041F6285CBF7FD0544166666626EEBD50419A99998988D054417B14AE97E7BD50417B14AE1794D0544185EB5148F5BD50413333332397D05441
+</a>
+
+<b>
+01060000000100000001030000000100000017000000295C8F9231BE504185EB511890D05441A774BFAB34BE5041330BCF5F8DD05441B032C20B35BE50414E0C800B8DD054417915036E01BE5041C38E243D82D05441CDCCCC6C01BE50413333334382D054419A999949F5BD5041F6285CBF7FD054419F0FEA29F5BD504149B661E67FD054415D1E964CF4BD50414EC5F3F680D0544108A4084CF3BD50413323E73282D0544166666626EEBD50419A99998988D0544114DBE30FE9BD5041CC31C28091D054417B14AE97E7BD50417B14AE1794D0544185EB5148F5BD50413333332397D05441D251B85E12BE5041BDF5289C9DD054411CFA93F616BE5041CD2BB7479AD05441CDCCCC8C1DBE504114AE478195D054417B14AE3722BE504114AE472193D05441B690BB7D24BE50410E5B028E92D054417666662626BE5041ED5B8F2292D05441D5FFFF2F2BBE50419C285C3F92D054413C8FC2952EBE5041D2B71EB591D054412975360130BE5041A25FF2F090D05441295C8F9231BE504185EB511890D05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>142568 - 2942182
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000C000000B81E853B01F9504148E17AF46CCE5441C3F528EC04F95041C3F5280C6ACE54410000008008F95041295C8F2266CE5441713D0AF70BF95041AE47E1EA66CE54413D0AD7730EF9504152B81EB563CE54418FC2F548C8F850413333335349CE5441EC51B89EC3F85041E17A140E57CE5441666666A6D7F850410AD7A3C05DCE5441A4703D0AE1F850417B14AE3761CE5441EC51B8DEE9F850418FC2F55864CE544185EB51B8F5F8504152B81EB568CE5441B81E853B01F9504148E17AF46CCE5441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000EC51B89EC3F85041E17A140E57CE544133333363B9F85041AE47E12A75CE54417B14AED7BDF85041713D0A0777CE54410AD7A3C0BCF850417B14AE9779CE54418FC2F538ECF85041D7A3705D8BCE5441000000C0EDF85041D7A370ED8ACE5441CDCCCC5CF7F8504148E17A147ECE544114AE47A10AF95041AE47E14A6BCE5441666666060DF950416666667668CE544114AE47C10FF95041295C8F3264CE54413D0AD7730EF9504152B81EB563CE5441514E9B9A0DF950410C0273CD64CE5441713D0AF70BF95041AE47E1EA66CE544102A181B409F9504136DB3A6866CE5441F6B1417508F9504182E0760466CE5441C3F528EC04F95041C3F5280C6ACE5441E9B742F902F95041DB5143956BCE54411E785EB201F9504116178E996CCE5441B81E853B01F9504148E17AF46CCE544163B5C7D9FDF850415D6183A46BCE5441A4B13F18FAF85041D26B50526ACE5441909C7723EAF85041A5EC457264CE5441BCDE4FAFE4F850414FDF6D8262CE544189FD6E6FDEF850416E3D9F4160CE5441915D6CF9D7F85041C9C146DF5DCE5441CB446D6AD0F8504129AD63555BCE5441B83CDA49C7F8504191D8194858CE5441D33CA97FC4F85041D3584B5957CE5441EC51B89EC3F85041E17A140E57CE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>142568 - 3712828
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000C000000B81E853B01F9504148E17AF46CCE5441C3F528EC04F95041C3F5280C6ACE54410000008008F95041295C8F2266CE5441713D0AF70BF95041AE47E1EA66CE54413D0AD7730EF9504152B81EB563CE54418FC2F548C8F850413333335349CE5441EC51B89EC3F85041E17A140E57CE5441666666A6D7F850410AD7A3C05DCE5441A4703D0AE1F850417B14AE3761CE5441EC51B8DEE9F850418FC2F55864CE544185EB51B8F5F8504152B81EB568CE5441B81E853B01F9504148E17AF46CCE5441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000EC51B89EC3F85041E17A140E57CE544133333363B9F85041AE47E12A75CE54417B14AED7BDF85041713D0A0777CE54410AD7A3C0BCF850417B14AE9779CE54418FC2F538ECF85041D7A3705D8BCE5441000000C0EDF85041D7A370ED8ACE5441CDCCCC5CF7F8504148E17A147ECE544114AE47A10AF95041AE47E14A6BCE5441666666060DF950416666667668CE544114AE47C10FF95041295C8F3264CE54413D0AD7730EF9504152B81EB563CE5441514E9B9A0DF950410C0273CD64CE5441713D0AF70BF95041AE47E1EA66CE544102A181B409F9504136DB3A6866CE5441F6B1417508F9504182E0760466CE5441C3F528EC04F95041C3F5280C6ACE5441E9B742F902F95041DB5143956BCE54411E785EB201F9504116178E996CCE5441B81E853B01F9504148E17AF46CCE544163B5C7D9FDF850415D6183A46BCE5441A4B13F18FAF85041D26B50526ACE5441909C7723EAF85041A5EC457264CE5441BCDE4FAFE4F850414FDF6D8262CE544189FD6E6FDEF850416E3D9F4160CE5441915D6CF9D7F85041C9C146DF5DCE5441CB446D6AD0F8504129AD63555BCE5441B83CDA49C7F8504191D8194858CE5441D33CA97FC4F85041D3584B5957CE5441EC51B89EC3F85041E17A140E57CE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238308 - 58750
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000A000000A4703DAA54BD5041333333A31CCD54417B14AEE745BD50411F85EB01FECC54415C8FC2D50DBD5041F6285CCF03CD5441295C8F321FBD50418FC2F5D827CD5441A4703D9A27BD5041295C8F8226CD544148E17A542DBD5041E17A147E25CD54417B14AEF732BD5041AE47E14A24CD5441A4703D1A41BD50417B14AEC720CD5441295C8FC24DBD5041AE47E1EA1DCD5441A4703DAA54BD5041333333A31CCD5441
+</a>
+
+<b>
+010600000001000000010300000001000000170000003333335314BD50413D0AD773FACC54413324A14D11BD50412CABE178FACC54417499D27009BD504154E227A0FACC54411611DFD50DBD5041EB6A75CA03CD5441E5F6316A41BD50412B5CE078FECC544165624CC643BD5041AE185C3AFECC5441BAA86B1444BD5041ED6F4632FECC544104CE1ADE45BD5041C631E902FECC54418EE5287E42BD50413463A0ECF6CC5441A1FD133342BD50414305C850F6CC5441E3F56F0C42BD5041BE5F9300F6CC5441364163053FBD50418A9FCB2BF6CC54411F85EBC13DBD5041E17A143EF6CC54419BA16B1137BD50418557ED56F7CC54418BCFA8B432BD5041F7595326F8CC5441D494C0292BBD50415221CB28F9CC5441B81E85AB27BD50418FC2F5A8F9CC54416823E83727BD5041953AF8AFF9CC54419A574F0F27BD5041F96367B5F9CC5441984D3B8025BD5041350AE1CCF9CC54412F1DD2B524BD50414C3FE6D6F9CC5441A4703D3A1EBD5041B81E853BFACC54413333335314BD50413D0AD773FACC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238308 - 120116
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000A000000A4703DAA54BD5041333333A31CCD54417B14AEE745BD50411F85EB01FECC54415C8FC2D50DBD5041F6285CCF03CD5441295C8F321FBD50418FC2F5D827CD5441A4703D9A27BD5041295C8F8226CD544148E17A542DBD5041E17A147E25CD54417B14AEF732BD5041AE47E14A24CD5441A4703D1A41BD50417B14AEC720CD5441295C8FC24DBD5041AE47E1EA1DCD5441A4703DAA54BD5041333333A31CCD5441
+</a>
+
+<b>
+010600000001000000010300000001000000170000003333335314BD50413D0AD773FACC54413224A14D11BD50412BABE178FACC54417599D27009BD504152E227A0FACC54411211DFD50DBD5041E66A75CA03CD5441E8F6316A41BD50412B5CE078FECC544164624CC643BD5041B0185C3AFECC5441BBA86B1444BD5041F16F4632FECC544102CE1ADE45BD5041C831E902FECC544192E5287E42BD50413763A0ECF6CC5441A3FD133342BD50414805C850F6CC5441E7F56F0C42BD5041B95F9300F6CC5441384163053FBD5041869FCB2BF6CC54411F85EBC13DBD5041E17A143EF6CC544199A16B1137BD50418757ED56F7CC54418DCFA8B432BD5041FA595326F8CC5441D094C0292BBD50415121CB28F9CC5441B81E85AB27BD50418FC2F5A8F9CC54416A23E83727BD50419A3AF8AFF9CC544197574F0F27BD5041FD6367B5F9CC5441944D3B8025BD5041310AE1CCF9CC54412E1DD2B524BD50414F3FE6D6F9CC5441A4703D3A1EBD5041B81E853BFACC54413333335314BD50413D0AD773FACC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238308 - 320294
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000A000000A4703DAA54BD5041333333A31CCD54417B14AEE745BD50411F85EB01FECC54415C8FC2D50DBD5041F6285CCF03CD5441295C8F321FBD50418FC2F5D827CD5441A4703D9A27BD5041295C8F8226CD544148E17A542DBD5041E17A147E25CD54417B14AEF732BD5041AE47E14A24CD5441A4703D1A41BD50417B14AEC720CD5441295C8FC24DBD5041AE47E1EA1DCD5441A4703DAA54BD5041333333A31CCD5441
+</a>
+
+<b>
+010600000001000000010300000001000000170000003333335314BD50413D0AD773FACC54413224A14D11BD50412BABE178FACC54417599D27009BD504152E227A0FACC54411211DFD50DBD5041E66A75CA03CD5441E8F6316A41BD50412B5CE078FECC544164624CC643BD5041B0185C3AFECC5441BBA86B1444BD5041F16F4632FECC544102CE1ADE45BD5041C831E902FECC544192E5287E42BD50413763A0ECF6CC5441A3FD133342BD50414805C850F6CC5441E7F56F0C42BD5041B95F9300F6CC5441384163053FBD5041869FCB2BF6CC54411F85EBC13DBD5041E17A143EF6CC544199A16B1137BD50418757ED56F7CC54418DCFA8B432BD5041FA595326F8CC5441D094C0292BBD50415121CB28F9CC5441B81E85AB27BD50418FC2F5A8F9CC54416A23E83727BD50419A3AF8AFF9CC544197574F0F27BD5041FD6367B5F9CC5441944D3B8025BD5041310AE1CCF9CC54412E1DD2B524BD50414F3FE6D6F9CC5441A4703D3A1EBD5041B81E853BFACC54413333335314BD50413D0AD773FACC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>145177 - 235310
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000300000001030000000100000009000000CDCCCCFC9DF850417B14AEE7EAC2544185EB5158A1F85041D7A370ADE8C25441D7A3700D9EF85041295C8F02E6C254415C8FC21593F850417B14AE57E1C25441333333538CF850411F85EBD1DCC25441CDCCCC8C8BF85041AE47E17ADDC25441E17A14DE92F85041EC51B8AEEEC254418FC2F5E89AF850418FC2F5A8EDC25441CDCCCCFC9DF850417B14AEE7EAC2544101030000000100000009000000CDCCCC8C96F85041D7A3707DDCC25441EC51B8EE93F850418FC2F528E0C25441E17A146E9EF8504148E17AB4E4C25441EC51B85EA9F85041B81E851BE6C25441CDCCCCBCBCF850410AD7A380E3C2544185EB5138BDF85041C3F528ECDBC25441CDCCCC6CB8F85041F6285C1FDBC25441CDCCCCBCA8F850410AD7A3C0DBC25441CDCCCC8C96F85041D7A3707DDCC254410103000000030000001A0000003D0AD703B0F85041EC51B85E36C35441D7A3704DB1F85041E17A14FE39C35441666666C6B0F850416666666642C35441666666E6B3F85041000000F040C35441EC51B87EC1F8504148E17AC42BC35441666666D6CCF85041E17A140E1DC354410AD7A3A0D0F85041713D0AA716C35441AE47E15AD1F85041F6285C0F13C354411F85EBB1CCF85041E17A143E06C35441AE47E13ABAF85041E17A144EEFC254413D0AD763B7F85041713D0AE7ECC25441333333A3B0F8504148E17A04EAC2544152B81E75A9F85041EC51B87EE8C2544185EB51B8A5F850417B14AEF7E8C254411F85EB51A2F8504148E17A84EAC25441E17A142E9FF8504148E17A84ECC25441AE47E16A9CF8504166666606EFC254416666665696F85041713D0AF7F6C2544185EB517893F85041A4703D5AF9C25441D7A3706D8CF85041000000D0FBC254411F85EB8193F85041B81E85AB29C354413D0AD733A5F8504148E17AE42CC354413D0AD723A8F85041AE47E14A2BC35441E17A14DEA9F85041A4703D5A2AC35441E17A144EACF850413D0AD74331C354413D0AD703B0F85041EC51B85E36C354410D000000B81E851BB4F850413D0AD7230BC354413D0AD753ADF85041E17A14DE0BC35441E17A14EEACF8504185EB518808C35441D7A3702DA8F8504148E17A3409C35441A4703D4AA8F85041C3F5286C0CC3544185EB5178A5F85041B81E85BB0CC35441295C8FA2A5F85041295C8F9209C35441295C8F32A4F8504114AE47C104C35441D7A3706DA4F8504114AE4781FEC2544185EB5118B5F850418FC2F548FBC254415C8FC265B5F850419A99999900C35441E17A148EB4F850416666667607C35441B81E851BB4F850413D0AD7230BC3544107000000000000F0A6F8504166666696F8C254410AD7A3C0ABF8504114AE4761F7C25441F6285C8FACF85041B81E856BFAC25441713D0AB7A7F85041AE47E1AAFBC25441000000C0A3F85041000000B0FCC25441666666F6A2F8504152B81E95F9C25441000000F0A6F8504166666696F8C25441
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000009301946194F85041E84D40D429C354419FEE74D695F85041D54E28182AC35441908E8C0796F85041100B19212AC35441F245A80D9BF8504181CC500B2BC354419113931EA5F8504165C1BFB32CC35441861ABFD7A9F85041A6BD29572AC35441672F8E31B9F850418F6F198F10C35441F066848BA3F850418A2109AD15C3544186EAA3B98CF85041F1F461B5FBC2544165F3F0B78CF85041C2E4F9B5FBC25441AC7A08D192F85041EDF8B50D17C354419301946194F85041E84D40D429C35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>145177 - 288499
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000300000001030000000100000009000000CDCCCCFC9DF850417B14AEE7EAC2544185EB5158A1F85041D7A370ADE8C25441D7A3700D9EF85041295C8F02E6C254415C8FC21593F850417B14AE57E1C25441333333538CF850411F85EBD1DCC25441CDCCCC8C8BF85041AE47E17ADDC25441E17A14DE92F85041EC51B8AEEEC254418FC2F5E89AF850418FC2F5A8EDC25441CDCCCCFC9DF850417B14AEE7EAC2544101030000000100000009000000CDCCCC8C96F85041D7A3707DDCC25441EC51B8EE93F850418FC2F528E0C25441E17A146E9EF8504148E17AB4E4C25441EC51B85EA9F85041B81E851BE6C25441CDCCCCBCBCF850410AD7A380E3C2544185EB5138BDF85041C3F528ECDBC25441CDCCCC6CB8F85041F6285C1FDBC25441CDCCCCBCA8F850410AD7A3C0DBC25441CDCCCC8C96F85041D7A3707DDCC254410103000000030000001A0000003D0AD703B0F85041EC51B85E36C35441D7A3704DB1F85041E17A14FE39C35441666666C6B0F850416666666642C35441666666E6B3F85041000000F040C35441EC51B87EC1F8504148E17AC42BC35441666666D6CCF85041E17A140E1DC354410AD7A3A0D0F85041713D0AA716C35441AE47E15AD1F85041F6285C0F13C354411F85EBB1CCF85041E17A143E06C35441AE47E13ABAF85041E17A144EEFC254413D0AD763B7F85041713D0AE7ECC25441333333A3B0F8504148E17A04EAC2544152B81E75A9F85041EC51B87EE8C2544185EB51B8A5F850417B14AEF7E8C254411F85EB51A2F8504148E17A84EAC25441E17A142E9FF8504148E17A84ECC25441AE47E16A9CF8504166666606EFC254416666665696F85041713D0AF7F6C2544185EB517893F85041A4703D5AF9C25441D7A3706D8CF85041000000D0FBC254411F85EB8193F85041B81E85AB29C354413D0AD733A5F8504148E17AE42CC354413D0AD723A8F85041AE47E14A2BC35441E17A14DEA9F85041A4703D5A2AC35441E17A144EACF850413D0AD74331C354413D0AD703B0F85041EC51B85E36C354410D000000B81E851BB4F850413D0AD7230BC354413D0AD753ADF85041E17A14DE0BC35441E17A14EEACF8504185EB518808C35441D7A3702DA8F8504148E17A3409C35441A4703D4AA8F85041C3F5286C0CC3544185EB5178A5F85041B81E85BB0CC35441295C8FA2A5F85041295C8F9209C35441295C8F32A4F8504114AE47C104C35441D7A3706DA4F8504114AE4781FEC2544185EB5118B5F850418FC2F548FBC254415C8FC265B5F850419A99999900C35441E17A148EB4F850416666667607C35441B81E851BB4F850413D0AD7230BC3544107000000000000F0A6F8504166666696F8C254410AD7A3C0ABF8504114AE4761F7C25441F6285C8FACF85041B81E856BFAC25441713D0AB7A7F85041AE47E1AAFBC25441000000C0A3F85041000000B0FCC25441666666F6A2F8504152B81E95F9C25441000000F0A6F8504166666696F8C25441
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000009301946194F85041E84D40D429C354419FEE74D695F85041D54E28182AC35441908E8C0796F85041100B19212AC35441F245A80D9BF8504181CC500B2BC354419113931EA5F8504165C1BFB32CC35441861ABFD7A9F85041A6BD29572AC35441672F8E31B9F850418F6F198F10C35441F066848BA3F850418A2109AD15C3544186EAA3B98CF85041F1F461B5FBC2544165F3F0B78CF85041C2E4F9B5FBC25441AC7A08D192F85041EDF8B50D17C354419301946194F85041E84D40D429C35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>145398 - 32113
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000017000000A4703D6A2D87514133333353327654415C8FC275258751417B14AE27297654411F85EB011D875141A4703D6A1F765441EC51B80E1A875141E17A146E1A7654411F85EBF10C8751413D0AD76304765441EC51B83E09875141295C8F920476544152B81E05098751418FC2F59804765441295C8F8202875141CDCCCCFC0376544185EB51E80187514114AE47E103765441F6285CDF008751411F85EB81047654419A999919FC8651410000000012765441713D0A17F88651415C8FC2C51A7654413D0AD763FC86514148E17A741C765441D7A370BDF7865141EC51B80E2576544185EB5168F48651419A99999924765441A4703DCAF186514148E17A942B765441333333B3F18651411F85EBD12B76544185EB5108F1865141C3F528CC2D76544185EB5198F2865141333333932E76544166666616F2865141333333832F765441AE47E13AEF8651418FC2F5983976544114AE47F12E8751418FC2F59836765441A4703D6A2D8751413333335332765441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000004C987858ED8651415C44E2D338765441677FEAF4ED865141772B547039765441516E2444EF8651416F3C45783976544163A68008F08651419E2A41C3367654419D933123F286514134FF906B2F76544185EB5198F2865141333333932E7654418A8F1468F2865141A828327B2E765441D6C82D70F286514157EEEF5E2E765441B52D840AF1865141253EA7C52D765441C8BC48D9F0865141DFB4E0582E7654414C987858ED8651415C44E2D338765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>145398 - 73920
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000017000000A4703D6A2D87514133333353327654415C8FC275258751417B14AE27297654411F85EB011D875141A4703D6A1F765441EC51B80E1A875141E17A146E1A7654411F85EBF10C8751413D0AD76304765441EC51B83E09875141295C8F920476544152B81E05098751418FC2F59804765441295C8F8202875141CDCCCCFC0376544185EB51E80187514114AE47E103765441F6285CDF008751411F85EB81047654419A999919FC8651410000000012765441713D0A17F88651415C8FC2C51A7654413D0AD763FC86514148E17A741C765441D7A370BDF7865141EC51B80E2576544185EB5168F48651419A99999924765441A4703DCAF186514148E17A942B765441333333B3F18651411F85EBD12B76544185EB5108F1865141C3F528CC2D76544185EB5198F2865141333333932E76544166666616F2865141333333832F765441AE47E13AEF8651418FC2F5983976544114AE47F12E8751418FC2F59836765441A4703D6A2D8751413333335332765441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000004C987858ED8651415C44E2D338765441677FEAF4ED865141772B547039765441516E2444EF8651416F3C45783976544163A68008F08651419E2A41C3367654419D933123F286514134FF906B2F76544185EB5198F2865141333333932E7654418A8F1468F2865141A828327B2E765441D6C82D70F286514157EEEF5E2E765441B52D840AF1865141253EA7C52D765441C8BC48D9F0865141DFB4E0582E7654414C987858ED8651415C44E2D338765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>145606 - 1217125
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000B000000AE47E16A2987514114AE47E12E72544148E17A34148751411F85EB413D725441666666B616875141295C8F6244725441D7A3701D1A87514152B81ED54D72544148E17A541F8751410AD7A3A05A7254419A9999C9248751419A999979667254410AD7A3702B87514114AE47C173725441F6285CBF2D875141713D0A37727254411F85EBB14C875141F6285C0F5572544185EB51884F875141D7A3708D50725441AE47E16A2987514114AE47E12E725441
+</a>
+
+<b>
+0106000000010000000103000000010000001A00000048E17A34148751411F85EB413D725441666666B616875141295C8F6244725441A06BE6C5188751410A2F3C1B4A725441D7A3701D1A87514152B81ED54D72544148E17A541F8751410AD7A3A05A7254419A9999C9248751419A999979667254410AD7A3702B87514114AE47C173725441F6285CBF2D875141713D0A3772725441BB8B228531875141551134A96E725441288215F33487514147101B6E6B7254416A84402B398751410E748074677254415132B7383D875141F1F620A363725441353F21794087514155B2ED92607254417B611936448751415935630D5D7254410145D7CA47875141E77BBEAD5972544181F03EAB4B87514106B60E84567254418312C9654B8751419CD1414856725441812469B64C8751416DEE39085572544197B636344D87514187E461405472544178F55A684E875141A39EE256527254416AB3D56E4F875141F6A9ECB550725441DE056B864F875141ADE6748B50725441B904EB644C87514163BEADC74D725441934B7368298751416440EDE22E7254414A34B72C23875141E5907F263372544148E17A34148751411F85EB413D725441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>145606 - 3346713
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000B000000AE47E16A2987514114AE47E12E72544148E17A34148751411F85EB413D725441666666B616875141295C8F6244725441D7A3701D1A87514152B81ED54D72544148E17A541F8751410AD7A3A05A7254419A9999C9248751419A999979667254410AD7A3702B87514114AE47C173725441F6285CBF2D875141713D0A37727254411F85EBB14C875141F6285C0F5572544185EB51884F875141D7A3708D50725441AE47E16A2987514114AE47E12E725441
+</a>
+
+<b>
+0106000000010000000103000000010000001A00000048E17A34148751411F85EB413D725441666666B616875141295C8F6244725441A06BE6C5188751410A2F3C1B4A725441D7A3701D1A87514152B81ED54D72544148E17A541F8751410AD7A3A05A7254419A9999C9248751419A999979667254410AD7A3702B87514114AE47C173725441F6285CBF2D875141713D0A3772725441BB8B228531875141551134A96E725441288215F33487514147101B6E6B7254416A84402B398751410E748074677254415132B7383D875141F1F620A363725441353F21794087514155B2ED92607254417B611936448751415935630D5D7254410145D7CA47875141E77BBEAD5972544181F03EAB4B87514106B60E84567254418312C9654B8751419CD1414856725441812469B64C8751416DEE39085572544197B636344D87514187E461405472544178F55A684E875141A39EE256527254416AB3D56E4F875141F6A9ECB550725441DE056B864F875141ADE6748B50725441B904EB644C87514163BEADC74D725441934B7368298751416440EDE22E7254414A34B72C23875141E5907F263372544148E17A34148751411F85EB413D725441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>145622 - 1216738
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000027000000295C8F72E9855141CDCCCC9C3C745441B81E85CBEC8551413D0AD7033B7454410AD7A320FC855141C3F5281C49745441A4703DBA02865141AE47E1BA4F745441CDCCCC9C0F865141A4703DCA567454419A9999691086514114AE4751557454419A9999690B865141666666165374544148E17A7409865141A4703D9A517454417B14AE2707865141D7A3704D4F745441713D0A2706865141E17A141E4C745441CDCCCCBC0486514152B81E95497454419A9999B9FF855141000000A043745441C3F528ACF9855141B81E852B3E745441C3F528DCF48551410AD7A3D0397454413D0AD783F2855141D7A3704D3874544185EB5158F5855141AE47E15A36745441EC51B80EF8855141D7A3702D35745441666666B6FA8551413D0AD7B3337454410AD7A330FD8551419A99993932745441B81E856BF6855141C3F5281C2E745441D7A3703DEE855141295C8FD22674544133333373E385514114AE479119745441C3F5285CDC855141295C8F220E745441A4703D0ADB85514152B81E950F74544152B81ED5D88551418FC2F52811745441CDCCCC0CD5855141D7A3701D147454411F85EBE1D2855141CDCCCC9C157454419A9999E9D085514114AE47C116745441295C8FD2CE855141713D0A7717745441AE47E11ACC85514185EB511818745441F6285C0FC78551411F85EBE1187454418FC2F518C485514185EB5168197454415C8FC205CC85514148E17AF426745441D7A370BDD18551410AD7A340307454410AD7A3F0D485514148E17A643474544133333333DF855141333333833B745441B81E85CBE0855141EC51B82E3B745441EC51B8DEE5855141295C8FC23E745441295C8F72E9855141CDCCCC9C3C745441
+</a>
+
+<b>
+010600000001000000010300000001000000180000003C40F731EA8551418545AB8C3A74544172114262EB85514128C3A7E939745441B13A2E6FF185514141D1C0EE367454414C21A9BAFB8551419318E5B131745441B81E856BF6855141C3F5281C2E745441D7A3703DEE855141295C8FD22674544117E31354E8855141D0D2383E2074544133333373E385514114AE479119745441C3F5285CDC855141295C8F220E745441A4703D0ADB85514152B81E950F74544152B81ED5D88551418FC2F52811745441CDCCCC0CD5855141D7A3701D147454411F85EBE1D2855141CDCCCC9C157454419A9999E9D085514114AE47C116745441B6FA6697CF8551412729B88317745441A6010FEACB85514106B36E71187454414C58E310C4855141CC790D8E19745441C1660099D1855141D0BE620530745441B7E63911D5855141C96B8B9134745441DEA01257DF855141F0D009A33B745441BB5B5BDEE085514147A4FF3B3B74544183D79946E38551412EB767EE3C7454418C886064E68551415C033C963C7454413C40F731EA8551418545AB8C3A745441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>145622 - 3316213
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000027000000295C8F72E9855141CDCCCC9C3C745441B81E85CBEC8551413D0AD7033B7454410AD7A320FC855141C3F5281C49745441A4703DBA02865141AE47E1BA4F745441CDCCCC9C0F865141A4703DCA567454419A9999691086514114AE4751557454419A9999690B865141666666165374544148E17A7409865141A4703D9A517454417B14AE2707865141D7A3704D4F745441713D0A2706865141E17A141E4C745441CDCCCCBC0486514152B81E95497454419A9999B9FF855141000000A043745441C3F528ACF9855141B81E852B3E745441C3F528DCF48551410AD7A3D0397454413D0AD783F2855141D7A3704D3874544185EB5158F5855141AE47E15A36745441EC51B80EF8855141D7A3702D35745441666666B6FA8551413D0AD7B3337454410AD7A330FD8551419A99993932745441B81E856BF6855141C3F5281C2E745441D7A3703DEE855141295C8FD22674544133333373E385514114AE479119745441C3F5285CDC855141295C8F220E745441A4703D0ADB85514152B81E950F74544152B81ED5D88551418FC2F52811745441CDCCCC0CD5855141D7A3701D147454411F85EBE1D2855141CDCCCC9C157454419A9999E9D085514114AE47C116745441295C8FD2CE855141713D0A7717745441AE47E11ACC85514185EB511818745441F6285C0FC78551411F85EBE1187454418FC2F518C485514185EB5168197454415C8FC205CC85514148E17AF426745441D7A370BDD18551410AD7A340307454410AD7A3F0D485514148E17A643474544133333333DF855141333333833B745441B81E85CBE0855141EC51B82E3B745441EC51B8DEE5855141295C8FC23E745441295C8F72E9855141CDCCCC9C3C745441
+</a>
+
+<b>
+010600000001000000010300000001000000180000003C40F731EA8551418545AB8C3A74544172114262EB85514128C3A7E939745441B13A2E6FF185514141D1C0EE367454414C21A9BAFB8551419318E5B131745441B81E856BF6855141C3F5281C2E745441D7A3703DEE855141295C8FD22674544117E31354E8855141D0D2383E2074544133333373E385514114AE479119745441C3F5285CDC855141295C8F220E745441A4703D0ADB85514152B81E950F74544152B81ED5D88551418FC2F52811745441CDCCCC0CD5855141D7A3701D147454411F85EBE1D2855141CDCCCC9C157454419A9999E9D085514114AE47C116745441B6FA6697CF8551412729B88317745441A6010FEACB85514106B36E71187454414C58E310C4855141CC790D8E19745441C1660099D1855141D0BE620530745441B7E63911D5855141C96B8B9134745441DEA01257DF855141F0D009A33B745441BB5B5BDEE085514147A4FF3B3B74544183D79946E38551412EB767EE3C7454418C886064E68551415C033C963C7454413C40F731EA8551418545AB8C3A745441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>145743 - 1217439
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000013000000B81E856BE38D5141B81E85AB6A76544148E17AA4E48D51417B14AEF769765441AE47E1BAE58D514185EB51586576544114AE4741E88D5141713D0AF7527654417B14AEB7E18D5141666666364C7654413D0AD723E88D5141A4703D0A47765441295C8FA2EE8D5141E17A14DE41765441C3F528FCE08D51419A9999793D765441CDCCCC7CD78D5141A4703D6A3A7654410AD7A350CF8D51413D0AD7F337765441000000C0CE8D514114AE47813A765441AE47E1DACA8D51418FC2F5583C7654415C8FC295C88D5141F6285C8F3D76544185EB5158C68D51411F85EBC13E7654417B14AE37D28D5141F6285C8F57765441EC51B8CEDF8D5141295C8FF273765441C3F5286CE28D51413D0AD763737654415C8FC205E48D514185EB51986C765441B81E856BE38D5141B81E85AB6A765441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000877AF729D18D5141FD9E98405576544101642108D68D5141B9ED6F7056765441D609135BD88D51417433518757765441C2FE911DDB8D51415F174D7D59765441B56AA677E38D51410974B3EF5E76544113965869E48D5141EF0220E75C7654415CA50651E78D51415AC2BD7E55765441A15F253AE68D5141F7417C8E50765441F8134294E18D5141F2ECEC8F4C7654416F9F04C2E38D51411D36787049765441CC272DC1E58D5141C8DD357747765441EBA2B0AEEA8D51414BC633324376544152C69D4CED8D51417E550B704176544128719553E78D5141A96A02843F765441C8C6F595D38D51413D2F463D397654416E34426CCF8D5141C3F4922738765441CA3DEEC4CE8D5141C6271C8D3A765441241411B8CB8D51413CA25BEE3B7654417AB7AA45C68D5141562472C33E7654419C2EC5ECCC8D51412357DB804C765441877AF729D18D5141FD9E984055765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>145743 - 3671273
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000013000000B81E856BE38D5141B81E85AB6A76544148E17AA4E48D51417B14AEF769765441AE47E1BAE58D514185EB51586576544114AE4741E88D5141713D0AF7527654417B14AEB7E18D5141666666364C7654413D0AD723E88D5141A4703D0A47765441295C8FA2EE8D5141E17A14DE41765441C3F528FCE08D51419A9999793D765441CDCCCC7CD78D5141A4703D6A3A7654410AD7A350CF8D51413D0AD7F337765441000000C0CE8D514114AE47813A765441AE47E1DACA8D51418FC2F5583C7654415C8FC295C88D5141F6285C8F3D76544185EB5158C68D51411F85EBC13E7654417B14AE37D28D5141F6285C8F57765441EC51B8CEDF8D5141295C8FF273765441C3F5286CE28D51413D0AD763737654415C8FC205E48D514185EB51986C765441B81E856BE38D5141B81E85AB6A765441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000877AF729D18D5141FD9E98405576544101642108D68D5141B9ED6F7056765441D609135BD88D51417433518757765441C2FE911DDB8D51415F174D7D59765441B56AA677E38D51410974B3EF5E76544113965869E48D5141EF0220E75C7654415CA50651E78D51415AC2BD7E55765441A15F253AE68D5141F7417C8E50765441F8134294E18D5141F2ECEC8F4C7654416F9F04C2E38D51411D36787049765441CC272DC1E58D5141C8DD357747765441EBA2B0AEEA8D51414BC633324376544152C69D4CED8D51417E550B704176544128719553E78D5141A96A02843F765441C8C6F595D38D51413D2F463D397654416E34426CCF8D5141C3F4922738765441CA3DEEC4CE8D5141C6271C8D3A765441241411B8CB8D51413CA25BEE3B7654417AB7AA45C68D5141562472C33E7654419C2EC5ECCC8D51412357DB804C765441877AF729D18D5141FD9E984055765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>146117 - 1217426
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000028000000CDCCCC6C078F5141295C8FF26374544100000010068F514185EB51A85A745441000000F0048F51419A9999F9527454418FC2F548048F514152B81EC547745441713D0AE7038F5141CDCCCC2C3174544133333373028F5141D7A3709D2B7454413D0AD7F3008F5141CDCCCC2C2874544148E17A74FA8E5141EC51B8FE1F74544114AE4741F28E51417B14AE071A74544185EB51A8EA8E5141C3F528BC15745441A4703D4AE58E51418FC2F5E814745441C3F5289CDD8E5141666666E61574544152B81E75C98E514100000070197454413D0AD713C38E5141D7A370BDF0735441B81E858BD78E51417B14AE87ED7354410AD7A360D28E514185EB5108E773544152B81E85D18E51419A9999B9E773544185EB51A8D08E5141333333A3E67354413D0AD783D18E5141295C8FF2E57354417B14AEB7C88E51415C8FC225DB7354418FC2F5F8C58E5141A4703DAAD773544114AE47E1C28E514166666616D373544114AE4721BE8E5141EC51B86ECB735441666666B6B88E5141713D0A57C273544185EB51688A8E5141CDCCCCACCA73544148E17AC45C8E51413D0AD7E3D2735441C3F5289C658E51417B14AE77EA73544185EB51B8708E51415C8FC2F5F77354413D0AD773778E5141EC51B86EFF7354413D0AD7B37C8E514152B81E5507745441EC51B8AE838E514148E17AB40D7454419A999999978E5141A4703DFA217454418FC2F588A98E514185EB51884774544152B81E95B18E51418FC2F56858745441713D0A17B98E51418FC2F5286874544152B81E85BA8E5141713D0A1769745441EC51B83EE28E514114AE47316A745441A4703D1A078F514114AE47216B745441295C8F02088F51418FC2F5286A745441CDCCCC6C078F5141295C8FF263745441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000713D0A57B68E514100000060BE735441CDCCCC1CB28E5141000000E0B773544148E17AF4AE8E5141E17A149EB37354415C8FC2B5AA8E5141F6285CAFAE73544100000060A68E514114AE4751AA735441AE47E13A878E51413D0AD7538D735441000000C04D8E5141B81E85AB97735441F6285C9F4D8E5141D7A3700DA0735441F6285CAF4D8E5141EC51B86EA3735441713D0AA74F8E5141000000E0A6735441A4703DDA508E5141C3F5284CA9735441713D0A17568E5141AE47E14AB87354410AD7A300598E51419A9999D9C873544148E17AC45C8E51413D0AD7E3D27354414F28608D658E5141C6C738DFE973544140FA4A17668E5141D3E1370DEB7354413E7D6C996A8E514149716F88F07354418F834B99CA8E51414785A5C2DD7354417AFA760DCA8E5141DAA157C9DC7354417A3C4DD7C28E5141344ACF04D3735441713D0A57B68E514100000060BE735441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>146117 - 3514730
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000028000000CDCCCC6C078F5141295C8FF26374544100000010068F514185EB51A85A745441000000F0048F51419A9999F9527454418FC2F548048F514152B81EC547745441713D0AE7038F5141CDCCCC2C3174544133333373028F5141D7A3709D2B7454413D0AD7F3008F5141CDCCCC2C2874544148E17A74FA8E5141EC51B8FE1F74544114AE4741F28E51417B14AE071A74544185EB51A8EA8E5141C3F528BC15745441A4703D4AE58E51418FC2F5E814745441C3F5289CDD8E5141666666E61574544152B81E75C98E514100000070197454413D0AD713C38E5141D7A370BDF0735441B81E858BD78E51417B14AE87ED7354410AD7A360D28E514185EB5108E773544152B81E85D18E51419A9999B9E773544185EB51A8D08E5141333333A3E67354413D0AD783D18E5141295C8FF2E57354417B14AEB7C88E51415C8FC225DB7354418FC2F5F8C58E5141A4703DAAD773544114AE47E1C28E514166666616D373544114AE4721BE8E5141EC51B86ECB735441666666B6B88E5141713D0A57C273544185EB51688A8E5141CDCCCCACCA73544148E17AC45C8E51413D0AD7E3D2735441C3F5289C658E51417B14AE77EA73544185EB51B8708E51415C8FC2F5F77354413D0AD773778E5141EC51B86EFF7354413D0AD7B37C8E514152B81E5507745441EC51B8AE838E514148E17AB40D7454419A999999978E5141A4703DFA217454418FC2F588A98E514185EB51884774544152B81E95B18E51418FC2F56858745441713D0A17B98E51418FC2F5286874544152B81E85BA8E5141713D0A1769745441EC51B83EE28E514114AE47316A745441A4703D1A078F514114AE47216B745441295C8F02088F51418FC2F5286A745441CDCCCC6C078F5141295C8FF263745441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000713D0A57B68E514100000060BE735441CDCCCC1CB28E5141000000E0B773544148E17AF4AE8E5141E17A149EB37354415C8FC2B5AA8E5141F6285CAFAE73544100000060A68E514114AE4751AA735441AE47E13A878E51413D0AD7538D735441000000C04D8E5141B81E85AB97735441F6285C9F4D8E5141D7A3700DA0735441F6285CAF4D8E5141EC51B86EA3735441713D0AA74F8E5141000000E0A6735441A4703DDA508E5141C3F5284CA9735441713D0A17568E5141AE47E14AB87354410AD7A300598E51419A9999D9C873544148E17AC45C8E51413D0AD7E3D27354414F28608D658E5141C6C738DFE973544140FA4A17668E5141D3E1370DEB7354413E7D6C996A8E514149716F88F07354418F834B99CA8E51414785A5C2DD7354417AFA760DCA8E5141DAA157C9DC7354417A3C4DD7C28E5141344ACF04D3735441713D0A57B68E514100000060BE735441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>146471 - 58531
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B0000007B14AEE70D855141C3F5281C8F7A5441CDCCCC9C16855141666666E6AC7A5441713D0A27178551417B14AE07AF7A544152B81E6517855141713D0AF7AE7A5441713D0A871E85514114AE4751AA7A5441EC51B8CE25855141D7A3709DA37A5441E17A148E2A8551410AD7A3809F7A5441333333D32C855141C3F5287C9D7A5441A4703D7A27855141333333538C7A54419A9999B91E8551415C8FC2D5897A54417B14AEE70D855141C3F5281C8F7A5441
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000FE234BD22C855141E634F77C9D7A54414EF262832A855141416C0B11967A54415482383E298551410A6D98FD917A5441AE64459428855141F3203BDC8F7A544142C4577727855141463839568C7A5441A23FE94A20855141F1D6ED478A7A54419A9999B91E8551415C8FC2D5897A54415CEB46E80D855141FF06F91B8F7A5441CDCCCC9C16855141666666E6AC7A5441A735B42417855141A02E77FEAE7A54417FCF99281785514186FA4207AF7A5441173E462B17855141CA858B06AF7A5441BB3941361785514132109A03AF7A54418ECD2B3717855141D12F5B03AF7A544161634343178551413D711D00AF7A544154664848178551419B01C5FEAE7A5441995A1B4F1785514121C0F0FCAE7A5441BDE17C8D19855141BCBD1888AD7A5441A2FD5DBA1C855141E0A09C66AB7A54414C06977B1E85514122838550AA7A5441C5EC3C0A20855141BB17CCECA87A5441EC51B8CE25855141D7A3709DA37A54418328543626855141C27CB043A37A54410E060999268551414A3AB1E9A27A54417AB23FD72B8551416AF5155C9E7A54419DC2E9E12B855141EE919B529E7A5441E98CA72E2C855141A80C670E9E7A544118F4373C2C855141D3E458029E7A5441E8855C752C855141CA828FCF9D7A544146636C972C855141509649B19D7A5441FE234BD22C855141E634F77C9D7A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238412 - 1507082
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000E0000009A9999E926BD50411F85EBB1BDD4544148E17A5430BD5041000000B0C0D45441C3F5285C32BD5041EC51B82EC1D4544114AE47A12BBD5041333333A379D454413D0AD7F329BD5041AE47E1CA67D45441CDCCCCBC26BD5041CDCCCC9C45D454410000005026BD50410AD7A3B045D4544152B81E651CBD504114AE47F146D45441EC51B86E12BD5041CDCCCCAC47D45441CDCCCC6C0EBD5041666666B647D4544114AE47D112BD50415C8FC26576D45441AE47E10A19BD504148E17A94B8D45441295C8FA21DBD504100000060BAD454419A9999E926BD50411F85EBB1BDD45441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000EFFA93A12BBD504147545EA679D454412D45AFCE12BD504107FC2C4A76D454410104A8CF12BD504186BC805476D4544114AE47D112BD50415C8FC26576D45441AE47E10A19BD504148E17A94B8D45441295C8FA21DBD504100000060BAD454419A9999E926BD50411F85EBB1BDD4544148E17A5430BD5041000000B0C0D45441C3F5285C32BD5041EC51B82EC1D45441EFFA93A12BBD504147545EA679D45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238412 - 3704005
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000E0000009A9999E926BD50411F85EBB1BDD4544148E17A5430BD5041000000B0C0D45441C3F5285C32BD5041EC51B82EC1D4544114AE47A12BBD5041333333A379D454413D0AD7F329BD5041AE47E1CA67D45441CDCCCCBC26BD5041CDCCCC9C45D454410000005026BD50410AD7A3B045D4544152B81E651CBD504114AE47F146D45441EC51B86E12BD5041CDCCCCAC47D45441CDCCCC6C0EBD5041666666B647D4544114AE47D112BD50415C8FC26576D45441AE47E10A19BD504148E17A94B8D45441295C8FA21DBD504100000060BAD454419A9999E926BD50411F85EBB1BDD45441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000EFFA93A12BBD504147545EA679D454412D45AFCE12BD504107FC2C4A76D454410104A8CF12BD504186BC805476D4544114AE47D112BD50415C8FC26576D45441AE47E10A19BD504148E17A94B8D45441295C8FA21DBD504100000060BAD454419A9999E926BD50411F85EBB1BDD4544148E17A5430BD5041000000B0C0D45441C3F5285C32BD5041EC51B82EC1D45441EFFA93A12BBD504147545EA679D45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>147018 - 3078619
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000001B00000048E17AC4292F5141F6285C4FA340544114AE4761262F51413D0AD793AC4054413D0AD7E3262F5141295C8FB2AC405441CDCCCC4C292F514185EB5128AD405441F6285CEF2B2F5141713D0A77AD405441CDCCCCBC2F2F5141333333C3AD405441AE47E11A372F5141713D0A27AE4054418FC2F5F83D2F514152B81E95AE40544166666696402F5141666666E6AE405441AE47E1DA452F5141EC51B86EAF4054418FC2F568492F5141295C8FD2AF4054413D0AD7134A2F514152B81EE5AF405441A4703D6A4C2F51419A999909B0405441EC51B85E4C2F5141D7A370EDAF405441CDCCCCFC4B2F514100000050AD405441CDCCCC7C4B2F5141B81E85DBA8405441295C8F224A2F514148E17A449E405441E17A146E422F5141295C8FF29B4054418FC2F5D83F2F5141295C8F129A4054418FC2F5B83A2F51419A99990996405441713D0A77382F51410000009096405441B81E85EB342F5141713D0A2794405441EC51B83E332F5141333333039340544185EB51A82F2F5141D7A370AD944054411F85EBE12C2F51413333339398405441C3F528CC2B2F5141333333539A40544148E17AC4292F5141F6285C4FA3405441
+</a>
+
+<b>
+0106000000010000000103000000010000005500000034CA08135F2F51410EF0F545A0405441D7A370FD522F5141713D0A0789405441713D0AA74A2F5141F6285CCF8740544100000050422F5141EC51B8AE8640544133333373362F5141666666E68440544185EB5178362F5141295C8F528740544148E17A24352F5141C3F5281C8B40544152B81E55322F5141EC51B80E8F405441295C8F52322F51413D0AD78392405441AE47E1DA322F5141F6285CBF92405441EC51B83E332F5141333333039340544185EB51A82F2F5141D7A370AD944054411F85EBE12C2F51413333339398405441C3F528CC2B2F5141333333539A40544148E17AC4292F5141F6285C4FA340544114AE4761262F51413D0AD793AC405441AE47E15A242F5141B81E851BAC4054411F85EB81252F5141EC51B8AEB14054413D0AD7F3262F5141AE47E10AB540544100000090262F5141AE47E1EAB640544185EB51D8242F5141713D0A07B9405441295C8F42232F514152B81E95B9405441295C8FF2202F514185EB5148BA4054419A9999591E2F51411F85EB71BC405441A4703D1A1D2F51417B14AE17C1405441B81E85DB1B2F514185EB5138C34054411F85EB71172F51415C8FC2C5C74054419A9999A90D2F5141D7A370DDCC4054410AD7A330082F5141295C8F52CE4054417B14AE67052F5141A4703D7AD0405441C3F528BC002F5141F6285C8FD74054418FC2F5D8FD2E5141EC51B83EE2405441666666D60A2F51418FC2F598E54054415C8FC265162F514148E17A94E8405441713D0A27172F51417B14AED7E24054411F85EB91162F51419A9999E9DC4054413D0AD723162F5141EC51B85EDD405441A4703DFA152F5141295C8F42DE4054415C8FC2E5152F51411F85EB71DF405441D7A3704D162F5141295C8F32E140544166666646162F514100000000E4405441000000E0132F5141B81E85EBE340544148E17AC4132F5141333333F3E24054415C8FC255142F514100000060DB405441AE47E1FA142F5141A4703D8ADA4054413D0AD753162F5141000000D0D940544114AE4791172F514100000040D8405441A4703DEA182F51415C8FC285D740544152B81ED5192F5141AE47E16AD640544152B81EF51C2F51415C8FC2C5D4405441D7A3701D1F2F514100000020D4405441D7A3703D222F5141D7A3705DD5405441B81E85DB232F5141713D0A17D740544114AE47D1242F5141B81E853BD740544152B81E25252F5141B81E850BD540544148E17A34252F51415C8FC295D4405441F6285C0F292F5141333333A3D4405441295C8F32292F514166666626D6405441B81E85EB292F51419A999949D5405441D7A3707D2B2F514152B81EE5D3405441666666662C2F51419A999919D340544185EB51F82D2F5141A4703D2AD24054418FC2F578302F514148E17A54D1405441EC51B85E322F5141000000E0D0405441B81E856B342F51411F85EB91D04054410AD7A3803B2F51417B14AE37D0405441B81E852B3F2F5141295C8FC2CF405441295C8FC2412F514166666626CF405441333333F3432F514185EB5178CE405441F6285C2F492F51415C8FC265CC40544152B81EE5492F5141713D0AD7CB405441713D0A874A2F5141EC51B80ECB405441E9282A124B2F5141BACEB30ECA405441DAFEDD594B2F514189CC920CC9405441A42935684B2F51412F1F15D1C7405441E555A2224C2F51418B3DB128C240544134AC5B954C2F51412B5B422ABC4054411658C3244D2F51417C221AB9B5405441E0821A334D2F5141FBC93F44B440544174D8C84F4D2F5141701AA106B2405441B9D7BDF94C2F514143EB07F4AF4054411965F4E84B2F514136972D9FAC405441295C8F224A2F514148E17A449E405441D8BB78A85B2F514195D8EE53A040544134CA08135F2F51410EF0F545A0405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>147018 - 3303074
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000001B00000048E17AC4292F5141F6285C4FA340544114AE4761262F51413D0AD793AC4054413D0AD7E3262F5141295C8FB2AC405441CDCCCC4C292F514185EB5128AD405441F6285CEF2B2F5141713D0A77AD405441CDCCCCBC2F2F5141333333C3AD405441AE47E11A372F5141713D0A27AE4054418FC2F5F83D2F514152B81E95AE40544166666696402F5141666666E6AE405441AE47E1DA452F5141EC51B86EAF4054418FC2F568492F5141295C8FD2AF4054413D0AD7134A2F514152B81EE5AF405441A4703D6A4C2F51419A999909B0405441EC51B85E4C2F5141D7A370EDAF405441CDCCCCFC4B2F514100000050AD405441CDCCCC7C4B2F5141B81E85DBA8405441295C8F224A2F514148E17A449E405441E17A146E422F5141295C8FF29B4054418FC2F5D83F2F5141295C8F129A4054418FC2F5B83A2F51419A99990996405441713D0A77382F51410000009096405441B81E85EB342F5141713D0A2794405441EC51B83E332F5141333333039340544185EB51A82F2F5141D7A370AD944054411F85EBE12C2F51413333339398405441C3F528CC2B2F5141333333539A40544148E17AC4292F5141F6285C4FA3405441
+</a>
+
+<b>
+0106000000010000000103000000010000005500000034CA08135F2F51410EF0F545A0405441D7A370FD522F5141713D0A0789405441713D0AA74A2F5141F6285CCF8740544100000050422F5141EC51B8AE8640544133333373362F5141666666E68440544185EB5178362F5141295C8F528740544148E17A24352F5141C3F5281C8B40544152B81E55322F5141EC51B80E8F405441295C8F52322F51413D0AD78392405441AE47E1DA322F5141F6285CBF92405441EC51B83E332F5141333333039340544185EB51A82F2F5141D7A370AD944054411F85EBE12C2F51413333339398405441C3F528CC2B2F5141333333539A40544148E17AC4292F5141F6285C4FA340544114AE4761262F51413D0AD793AC405441AE47E15A242F5141B81E851BAC4054411F85EB81252F5141EC51B8AEB14054413D0AD7F3262F5141AE47E10AB540544100000090262F5141AE47E1EAB640544185EB51D8242F5141713D0A07B9405441295C8F42232F514152B81E95B9405441295C8FF2202F514185EB5148BA4054419A9999591E2F51411F85EB71BC405441A4703D1A1D2F51417B14AE17C1405441B81E85DB1B2F514185EB5138C34054411F85EB71172F51415C8FC2C5C74054419A9999A90D2F5141D7A370DDCC4054410AD7A330082F5141295C8F52CE4054417B14AE67052F5141A4703D7AD0405441C3F528BC002F5141F6285C8FD74054418FC2F5D8FD2E5141EC51B83EE2405441666666D60A2F51418FC2F598E54054415C8FC265162F514148E17A94E8405441713D0A27172F51417B14AED7E24054411F85EB91162F51419A9999E9DC4054413D0AD723162F5141EC51B85EDD405441A4703DFA152F5141295C8F42DE4054415C8FC2E5152F51411F85EB71DF405441D7A3704D162F5141295C8F32E140544166666646162F514100000000E4405441000000E0132F5141B81E85EBE340544148E17AC4132F5141333333F3E24054415C8FC255142F514100000060DB405441AE47E1FA142F5141A4703D8ADA4054413D0AD753162F5141000000D0D940544114AE4791172F514100000040D8405441A4703DEA182F51415C8FC285D740544152B81ED5192F5141AE47E16AD640544152B81EF51C2F51415C8FC2C5D4405441D7A3701D1F2F514100000020D4405441D7A3703D222F5141D7A3705DD5405441B81E85DB232F5141713D0A17D740544114AE47D1242F5141B81E853BD740544152B81E25252F5141B81E850BD540544148E17A34252F51415C8FC295D4405441F6285C0F292F5141333333A3D4405441295C8F32292F514166666626D6405441B81E85EB292F51419A999949D5405441D7A3707D2B2F514152B81EE5D3405441666666662C2F51419A999919D340544185EB51F82D2F5141A4703D2AD24054418FC2F578302F514148E17A54D1405441EC51B85E322F5141000000E0D0405441B81E856B342F51411F85EB91D04054410AD7A3803B2F51417B14AE37D0405441B81E852B3F2F5141295C8FC2CF405441295C8FC2412F514166666626CF405441333333F3432F514185EB5178CE405441F6285C2F492F51415C8FC265CC40544152B81EE5492F5141713D0AD7CB405441713D0A874A2F5141EC51B80ECB405441E9282A124B2F5141BACEB30ECA405441DAFEDD594B2F514189CC920CC9405441A42935684B2F51412F1F15D1C7405441E555A2224C2F51418B3DB128C240544134AC5B954C2F51412B5B422ABC4054411658C3244D2F51417C221AB9B5405441E0821A334D2F5141FBC93F44B440544174D8C84F4D2F5141701AA106B2405441B9D7BDF94C2F514143EB07F4AF4054411965F4E84B2F514136972D9FAC405441295C8F224A2F514148E17A449E405441D8BB78A85B2F514195D8EE53A040544134CA08135F2F51410EF0F545A0405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>147020 - 1128832
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000034000000F6285C6F3C2F514148E17A04EF40544148E17A043D2F5141EC51B85EEE405441EC51B86E3D2F514148E17A84ED4054411F85EBA13D2F514185EB5128ED4054413D0AD7033E2F514152B81E75EC4054418FC2F5B83E2F5141AE47E1EAEA4054410AD7A3204A2F51419A999989014154410AD7A3205C2F5141E17A14AE05415441666666D6712F5141000000E02D41544114AE4741792F5141AE47E1EA2B4154413D0AD7935A2F514185EB5108F640544114AE4711582F51418FC2F538F1405441CDCCCC9C562F514133333323F1405441CDCCCC5C552F51418FC2F5D8F0405441D7A370ED532F51413D0AD753F0405441EC51B88E502F51419A999969EF405441F6285C9F4E2F51413D0AD703EF405441F6285C0F4D2F51419A9999C9EE4054415C8FC2F54A2F514148E17A94EE4054415C8FC2254A2F5141EC51B86EEE4054413D0AD7B3402F514152B81E45EB40544152B81ED5462F5141A4703D4AD94054419A9999F9462F5141F6285CBFD8405441A4703DFA442F514152B81E55D8405441295C8F22432F51411F85EB31D8405441A4703DFA3C2F51411F85EBF1D74054417B14AEF7322F51418FC2F538D840544152B81ED5322F5141C3F528ECD6405441AE47E17A312F51411F85EBF1D6405441F6285C3F312F5141CDCCCC9CD54054417B14AE97302F5141713D0A77D540544185EB51C8302F51418FC2F598D440544185EB51D8302F514100000090D3405441295C8F92302F5141B81E858BD2405441B81E856B302F5141EC51B81ED24054418FC2F5182F2F5141C3F5288CD2405441295C8F722D2F514133333353D34054411F85EBC12C2F5141AE47E11AD44054415C8FC2052D2F5141C3F5282CD9405441713D0A972D2F5141AE47E14AD94054413D0AD7432D2F51413D0AD783DB405441CDCCCC2C2D2F51410AD7A320DC40544114AE47C12D2F514133333313E84054411F85EBC12D2F51417B14AE87EF40544114AE47B12B2F51419A999969EF405441666666462F2F5141EC51B84E02415441B81E851B302F51419A99994907415441E17A147E302F51415C8FC27505415441713D0A57332F5141F6285C4F00415441C3F528EC362F514148E17AD4F9405441E17A14DE3B2F51415C8FC245EF405441F6285C6F3C2F514148E17A04EF405441
+</a>
+
+<b>
+010600000001000000010300000001000000240000000F7633F6432F51415BADD7B5E140544193D1B549442F5141737AE6C0E0405441FEB0BC133D2F514150756CCEE040544119D12A812E2F514181DAC0E9E040544193DA134A2D2F5141CA41DEEBE04054415EE04DF5282F5141459E851FE1405441E17A14DE2A2F51418FC2F5D8EA40544114AE47B12B2F51419A999969EF405441666666462F2F5141EC51B84E02415441B81E851B302F51419A99994907415441E17A147E302F51415C8FC27505415441713D0A57332F5141F6285C4F00415441C3F528EC362F514148E17AD4F9405441E17A14DE3B2F51415C8FC245EF405441F6285C6F3C2F514148E17A04EF40544148E17A043D2F5141EC51B85EEE405441EC51B86E3D2F514148E17A84ED4054411F85EBA13D2F514185EB5128ED4054413D0AD7033E2F514152B81E75EC4054418FC2F5B83E2F5141AE47E1EAEA4054410AD7A3204A2F51419A999989014154410AD7A3205C2F5141E17A14AE05415441666666D6712F5141000000E02D41544114AE4741792F5141AE47E1EA2B4154413D0AD7935A2F514185EB5108F640544114AE4711582F51418FC2F538F1405441CDCCCC9C562F514133333323F1405441CDCCCC5C552F51418FC2F5D8F0405441D7A370ED532F51413D0AD753F0405441EC51B88E502F51419A999969EF405441F6285C9F4E2F51413D0AD703EF405441F6285C0F4D2F51419A9999C9EE4054415C8FC2F54A2F514148E17A94EE4054415C8FC2254A2F5141EC51B86EEE4054413D0AD7B3402F514152B81E45EB4054410F7633F6432F51415BADD7B5E1405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>147020 - 3539197
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000034000000F6285C6F3C2F514148E17A04EF40544148E17A043D2F5141EC51B85EEE405441EC51B86E3D2F514148E17A84ED4054411F85EBA13D2F514185EB5128ED4054413D0AD7033E2F514152B81E75EC4054418FC2F5B83E2F5141AE47E1EAEA4054410AD7A3204A2F51419A999989014154410AD7A3205C2F5141E17A14AE05415441666666D6712F5141000000E02D41544114AE4741792F5141AE47E1EA2B4154413D0AD7935A2F514185EB5108F640544114AE4711582F51418FC2F538F1405441CDCCCC9C562F514133333323F1405441CDCCCC5C552F51418FC2F5D8F0405441D7A370ED532F51413D0AD753F0405441EC51B88E502F51419A999969EF405441F6285C9F4E2F51413D0AD703EF405441F6285C0F4D2F51419A9999C9EE4054415C8FC2F54A2F514148E17A94EE4054415C8FC2254A2F5141EC51B86EEE4054413D0AD7B3402F514152B81E45EB40544152B81ED5462F5141A4703D4AD94054419A9999F9462F5141F6285CBFD8405441A4703DFA442F514152B81E55D8405441295C8F22432F51411F85EB31D8405441A4703DFA3C2F51411F85EBF1D74054417B14AEF7322F51418FC2F538D840544152B81ED5322F5141C3F528ECD6405441AE47E17A312F51411F85EBF1D6405441F6285C3F312F5141CDCCCC9CD54054417B14AE97302F5141713D0A77D540544185EB51C8302F51418FC2F598D440544185EB51D8302F514100000090D3405441295C8F92302F5141B81E858BD2405441B81E856B302F5141EC51B81ED24054418FC2F5182F2F5141C3F5288CD2405441295C8F722D2F514133333353D34054411F85EBC12C2F5141AE47E11AD44054415C8FC2052D2F5141C3F5282CD9405441713D0A972D2F5141AE47E14AD94054413D0AD7432D2F51413D0AD783DB405441CDCCCC2C2D2F51410AD7A320DC40544114AE47C12D2F514133333313E84054411F85EBC12D2F51417B14AE87EF40544114AE47B12B2F51419A999969EF405441666666462F2F5141EC51B84E02415441B81E851B302F51419A99994907415441E17A147E302F51415C8FC27505415441713D0A57332F5141F6285C4F00415441C3F528EC362F514148E17AD4F9405441E17A14DE3B2F51415C8FC245EF405441F6285C6F3C2F514148E17A04EF405441
+</a>
+
+<b>
+010600000001000000010300000001000000240000000F7633F6432F51415BADD7B5E140544193D1B549442F5141737AE6C0E0405441FEB0BC133D2F514150756CCEE040544119D12A812E2F514181DAC0E9E040544193DA134A2D2F5141CA41DEEBE04054415EE04DF5282F5141459E851FE1405441E17A14DE2A2F51418FC2F5D8EA40544114AE47B12B2F51419A999969EF405441666666462F2F5141EC51B84E02415441B81E851B302F51419A99994907415441E17A147E302F51415C8FC27505415441713D0A57332F5141F6285C4F00415441C3F528EC362F514148E17AD4F9405441E17A14DE3B2F51415C8FC245EF405441F6285C6F3C2F514148E17A04EF40544148E17A043D2F5141EC51B85EEE405441EC51B86E3D2F514148E17A84ED4054411F85EBA13D2F514185EB5128ED4054413D0AD7033E2F514152B81E75EC4054418FC2F5B83E2F5141AE47E1EAEA4054410AD7A3204A2F51419A999989014154410AD7A3205C2F5141E17A14AE05415441666666D6712F5141000000E02D41544114AE4741792F5141AE47E1EA2B4154413D0AD7935A2F514185EB5108F640544114AE4711582F51418FC2F538F1405441CDCCCC9C562F514133333323F1405441CDCCCC5C552F51418FC2F5D8F0405441D7A370ED532F51413D0AD753F0405441EC51B88E502F51419A999969EF405441F6285C9F4E2F51413D0AD703EF405441F6285C0F4D2F51419A9999C9EE4054415C8FC2F54A2F514148E17A94EE4054415C8FC2254A2F5141EC51B86EEE4054413D0AD7B3402F514152B81E45EB4054410F7633F6432F51415BADD7B5E1405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>147181 - 209119
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000013000000C3F5287CCB2C514148E17A847D3F544100000010C72C51419A9999A9923F544100000030C22C514148E17A14AF3F5441713D0A97C42C51413D0AD7E3B23F54415C8FC2E5C52C51410AD7A310B23F5441EC51B88EC72C51413D0AD743B03F544152B81ED5C92C51415C8FC2C5AB3F5441713D0AB7CB2C5141713D0A57A73F5441B81E850BCC2C5141A4703D2AA33F5441D7A3701DCE2C5141000000B0A13F54410AD7A300CF2C514148E17A149E3F54418FC2F588CF2C514148E17A84973F5441AE47E13AD12C5141713D0A07943F5441D7A3703DCF2C514114AE4741923F5441A4703D3ACD2C51410AD7A3008F3F544185EB5178CE2C5141C3F5288C863F5441CDCCCC2CCE2C5141713D0A67813F54415C8FC275CC2C5141E17A14BE7E3F5441C3F5287CCB2C514148E17A847D3F5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000007A300C25C32C51410A9A1699B03F5441ADE8A29AC32C514109F19053B13F5441B2B90D81C42C514109F19053B13F5441130FA837C72C51415A2BBB0AAE3F544152AC24A5C92C514108A9DF78A93F54419149A112CC2C5141A91D34E7A23F5441719A53C9CD2C51418A2F05C39E3F5441AF2E0037CE2C51416B41D69E9A3F5441261A66B9CE2C5141A81DFCEC963F5441AF2E0037CE2C5141A996A131953F54419E527112CE2C51414841077B923F5441EFE09272CD2C5141DE08AF5B8F3F5441A4703D3ACD2C51410AD7A3008F3F54413F06A75BCD2C51413B29461D8E3F54413F06A75BCD2C514168B173E98A3F5441A266A37CCD2C51418E05E4EA863F5441CFDD4D80CC2C51417C181058813F544130E1885ACB2C5141DFB0C4757E3F54416E88B3C9C92C514149C344C5863F544183370113C82C51413B38377B903F5441A3BCB451C32C51418F83B77BA83F54416FA58351C32C5141ACACD57CA83F5441AC583845C32C5141FD0280C4A83F54417D29B926C32C51412EC2B3C5A93F5441BA3604BCC22C5141F230ADEDAF3F5441DE2441E1C22C5141F022942DB03F54417A300C25C32C51410A9A1699B03F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>147181 - 271856
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000013000000C3F5287CCB2C514148E17A847D3F544100000010C72C51419A9999A9923F544100000030C22C514148E17A14AF3F5441713D0A97C42C51413D0AD7E3B23F54415C8FC2E5C52C51410AD7A310B23F5441EC51B88EC72C51413D0AD743B03F544152B81ED5C92C51415C8FC2C5AB3F5441713D0AB7CB2C5141713D0A57A73F5441B81E850BCC2C5141A4703D2AA33F5441D7A3701DCE2C5141000000B0A13F54410AD7A300CF2C514148E17A149E3F54418FC2F588CF2C514148E17A84973F5441AE47E13AD12C5141713D0A07943F5441D7A3703DCF2C514114AE4741923F5441A4703D3ACD2C51410AD7A3008F3F544185EB5178CE2C5141C3F5288C863F5441CDCCCC2CCE2C5141713D0A67813F54415C8FC275CC2C5141E17A14BE7E3F5441C3F5287CCB2C514148E17A847D3F5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000007A300C25C32C51410A9A1699B03F5441ADE8A29AC32C514109F19053B13F5441B2B90D81C42C514109F19053B13F5441130FA837C72C51415A2BBB0AAE3F544152AC24A5C92C514108A9DF78A93F54419149A112CC2C5141A91D34E7A23F5441719A53C9CD2C51418A2F05C39E3F5441AF2E0037CE2C51416B41D69E9A3F5441261A66B9CE2C5141A81DFCEC963F5441AF2E0037CE2C5141A996A131953F54419E527112CE2C51414841077B923F5441EFE09272CD2C5141DE08AF5B8F3F5441A4703D3ACD2C51410AD7A3008F3F54413F06A75BCD2C51413B29461D8E3F54413F06A75BCD2C514168B173E98A3F5441A266A37CCD2C51418E05E4EA863F5441CFDD4D80CC2C51417C181058813F544130E1885ACB2C5141DFB0C4757E3F54416E88B3C9C92C514149C344C5863F544183370113C82C51413B38377B903F5441A3BCB451C32C51418F83B77BA83F54416FA58351C32C5141ACACD57CA83F5441AC583845C32C5141FD0280C4A83F54417D29B926C32C51412EC2B3C5A93F5441BA3604BCC22C5141F230ADEDAF3F5441DE2441E1C22C5141F022942DB03F54417A300C25C32C51410A9A1699B03F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238557 - 178085
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000012000000AE47E12A04C15041EC51B8DEC0CF5441CDCCCC2CFEC05041CDCCCCBCBCCF544185EB51C8F7C0504152B81EE5B8CF5441295C8FC2F0C050419A999949B5CF54411F85EBA1DFC050418FC2F558ADCF544152B81E35DDC05041B81E853BADCF5441EC51B8BED6C0504166666636B5CF5441E17A14CECAC05041EC51B81EC3CF54413D0AD743BDC05041713D0A17D3CF5441E17A140EBDC05041D7A370BDD4CF5441EC51B84EBFC050410AD7A350D9CF5441A4703DEAC0C05041D7A3707DDDCF5441CDCCCC3CC1C0504148E17A54DECF54419A9999F9C3C05041E17A14FEE7CF544114AE47D1C4C05041A4703D0AEACF54410AD7A38017C15041B81E852BCFCF54417B14AEE70AC15041A4703DDAC5CF5441AE47E12A04C15041EC51B8DEC0CF5441
+</a>
+
+<b>
+01060000000100000001030000000100000008000000CAFAFCACC1C0504124EF77E0DFCF54410B7DF1D4C2C05041EB6E18F5E3CF544120B27FFD11C1504106E1CB17CBCF544101C609D00DC15041A950CA00C8CF54417E14AEE70AC15041A6703DDAC5CF5441C5703DEAC0C050412DA4707DDDCF5441CDCCCC3CC1C0504148E17A54DECF5441CAFAFCACC1C0504124EF77E0DFCF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238557 - 365386
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000012000000AE47E12A04C15041EC51B8DEC0CF5441CDCCCC2CFEC05041CDCCCCBCBCCF544185EB51C8F7C0504152B81EE5B8CF5441295C8FC2F0C050419A999949B5CF54411F85EBA1DFC050418FC2F558ADCF544152B81E35DDC05041B81E853BADCF5441EC51B8BED6C0504166666636B5CF5441E17A14CECAC05041EC51B81EC3CF54413D0AD743BDC05041713D0A17D3CF5441E17A140EBDC05041D7A370BDD4CF5441EC51B84EBFC050410AD7A350D9CF5441A4703DEAC0C05041D7A3707DDDCF5441CDCCCC3CC1C0504148E17A54DECF54419A9999F9C3C05041E17A14FEE7CF544114AE47D1C4C05041A4703D0AEACF54410AD7A38017C15041B81E852BCFCF54417B14AEE70AC15041A4703DDAC5CF5441AE47E12A04C15041EC51B8DEC0CF5441
+</a>
+
+<b>
+01060000000100000001030000000100000008000000CAFAFCACC1C0504124EF77E0DFCF54410B7DF1D4C2C05041EB6E18F5E3CF544120B27FFD11C1504106E1CB17CBCF544101C609D00DC15041A950CA00C8CF54417E14AEE70AC15041A6703DDAC5CF5441C5703DEAC0C050412DA4707DDDCF5441CDCCCC3CC1C0504148E17A54DECF5441CAFAFCACC1C0504124EF77E0DFCF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>148760 - 219760
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001400000033333303E4F450410AD7A330622F5541295C8F02E8F45041000000A0622F554185EB5178F3F45041295C8F82662F554152B81EC5F3F450413D0AD713632F554166666676F4F450410AD7A3B0572F5541AE47E1FAF5F45041000000204C2F55418FC2F5D8F9F450411F85EB01362F5541E17A143EF2F450419A9999D9342F55415C8FC2D5F6F45041AE47E1CA072F5541C3F5284CF9F4504152B81E15092F5541EC51B8AEF2F45041D7A3709D052F5541D7A370EDEFF45041B81E850B062F55417B14AEC7EBF4504152B81EA51A2F55415C8FC295E7F45041A4703D7A2F2F55419A999929E7F45041A4703DCA442F5541A4703D0AE7F4504185EB51084A2F554133333393E6F450419A9999C94D2F55418FC2F538E5F4504152B81E15572F5541B81E850BE5F4504148E17AB4582F554133333303E4F450410AD7A330622F5541
+</a>
+
+<b>
+0106000000010000000103000000010000002B00000082336A69F2F4504137E0FD36352F55418C60A65FF2F450411FA825F9342F55411CD0505EF2F450412EA081DE342F5541E17A143EF2F450419A9999D9342F554105B68753F2F45041388E2607342F5541FE4CCA4CF2F450412C329380332F554175FE2912F4F4504125A62DE9222F5541810F54D2F6F45041B2548CEC072F5541693DAAAAF2F450419E7385C9052F554149CCFA0FF0F450418A092106062F554105DE0F0BF0F45041EF87E506062F5541D5A56506F0F45041B2EC9F07062F5541CC2E9402F0F45041B87C3808062F554135107A00F0F450410F7A8C08062F5541493EF4F9EFF45041201A9109062F554165B6B6C9E7F45041D1B19E7D2E2F5541EA7E7094E7F450413AAEDABC2F2F5541F61E3C90E7F450413C1AF390302F5541F61E3C90E7F45041A911C250322F5541CF204B64E7F450413985E2133A2F55416993C350E7F45041C8C7D4763E2F554176C5E522E7F4504161E713E9452F5541A4703D0AE7F4504185EB51084A2F554133333393E6F450419A9999C94D2F5541183070EDE5F45041BD74CA3C522F5541C68E681AE5F45041A4B20936582F554183B6E00DE4F45041AC2C9403622F55413C52F71EE4F45041811CF631622F554108073618E4F450413F27ED32622F5541295C8F02E8F45041000000A0622F55412E2F3D07EEF45041F7594CAA642F554132B7BE08EEF450413602659D642F5541A9A0AE73EEF450415FD00ABF642F55413216897FEFF45041DA8FE4EE5B2F5541E0B21B5AF0F45041869CA136542F5541A94A719DF0F45041F89D2454532F55419BF0C1BBF0F4504172F117D7522F554155012C27F1F45041FCB4D5FC4E2F554121994A75F1F45041856F2CA94C2F5541ED3069C3F1F45041301D45803F2F554182336A69F2F45041D7AF28EB362F554182336A69F2F450415107A031362F554182336A69F2F4504137E0FD36352F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>148760 - 318875
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001400000033333303E4F450410AD7A330622F5541295C8F02E8F45041000000A0622F554185EB5178F3F45041295C8F82662F554152B81EC5F3F450413D0AD713632F554166666676F4F450410AD7A3B0572F5541AE47E1FAF5F45041000000204C2F55418FC2F5D8F9F450411F85EB01362F5541E17A143EF2F450419A9999D9342F55415C8FC2D5F6F45041AE47E1CA072F5541C3F5284CF9F4504152B81E15092F5541EC51B8AEF2F45041D7A3709D052F5541D7A370EDEFF45041B81E850B062F55417B14AEC7EBF4504152B81EA51A2F55415C8FC295E7F45041A4703D7A2F2F55419A999929E7F45041A4703DCA442F5541A4703D0AE7F4504185EB51084A2F554133333393E6F450419A9999C94D2F55418FC2F538E5F4504152B81E15572F5541B81E850BE5F4504148E17AB4582F554133333303E4F450410AD7A330622F5541
+</a>
+
+<b>
+0106000000010000000103000000010000002B00000082336A69F2F4504137E0FD36352F55418C60A65FF2F450411FA825F9342F55411CD0505EF2F450412EA081DE342F5541E17A143EF2F450419A9999D9342F554105B68753F2F45041388E2607342F5541FE4CCA4CF2F450412C329380332F554175FE2912F4F4504125A62DE9222F5541810F54D2F6F45041B2548CEC072F5541693DAAAAF2F450419E7385C9052F554149CCFA0FF0F450418A092106062F554105DE0F0BF0F45041EF87E506062F5541D5A56506F0F45041B2EC9F07062F5541CC2E9402F0F45041B87C3808062F554135107A00F0F450410F7A8C08062F5541493EF4F9EFF45041201A9109062F554165B6B6C9E7F45041D1B19E7D2E2F5541EA7E7094E7F450413AAEDABC2F2F5541F61E3C90E7F450413C1AF390302F5541F61E3C90E7F45041A911C250322F5541CF204B64E7F450413985E2133A2F55416993C350E7F45041C8C7D4763E2F554176C5E522E7F4504161E713E9452F5541A4703D0AE7F4504185EB51084A2F554133333393E6F450419A9999C94D2F5541183070EDE5F45041BD74CA3C522F5541C68E681AE5F45041A4B20936582F554183B6E00DE4F45041AC2C9403622F55413C52F71EE4F45041811CF631622F554108073618E4F450413F27ED32622F5541295C8F02E8F45041000000A0622F55412E2F3D07EEF45041F7594CAA642F554132B7BE08EEF450413602659D642F5541A9A0AE73EEF450415FD00ABF642F55413216897FEFF45041DA8FE4EE5B2F5541E0B21B5AF0F45041869CA136542F5541A94A719DF0F45041F89D2454532F55419BF0C1BBF0F4504172F117D7522F554155012C27F1F45041FCB4D5FC4E2F554121994A75F1F45041856F2CA94C2F5541ED3069C3F1F45041301D45803F2F554182336A69F2F45041D7AF28EB362F554182336A69F2F450415107A031362F554182336A69F2F4504137E0FD36352F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238714 - 230995
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000A000000A4703D3A81C1504148E17AD4E7CF5441AE47E17A79C15041AE47E18ADCCF54415C8FC2856DC15041EC51B84EE0CF5441713D0A5789C1504152B81EC508D05441B81E850B9AC150411F85EB1121D05441713D0A779BC15041CDCCCCFC20D054415C8FC285A2C15041C3F5284C20D05441D7A3709DA5C15041E17A14DE1FD05441A4703D7AA7C15041000000901FD05441A4703D3A81C1504148E17AD4E7CF5441
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000008261E0E27EC150417BF37390F9CF5441713D0A5789C1504152B81EC508D05441B3A4B3E090C1504190581CBC13D05441B81E850B9AC150411F85EB1121D05441713D0A779BC15041CDCCCCFC20D054415C8FC285A2C15041C3F5284C20D05441D7A3709DA5C15041E17A14DE1FD05441A4703D7AA7C15041000000901FD05441A4703D3A81C1504148E17AD4E7CF544169DB888879C15041CC0FC69EDCCF54411776FE8C6DC150413E0A3E59E0CF5441FDD2EF796FC150418D1D4326E3CF54418A47C01572C15041120FA5F1E6CF54418261E0E27EC150417BF37390F9CF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238714 - 367390
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000A000000A4703D3A81C1504148E17AD4E7CF5441AE47E17A79C15041AE47E18ADCCF54415C8FC2856DC15041EC51B84EE0CF5441713D0A5789C1504152B81EC508D05441B81E850B9AC150411F85EB1121D05441713D0A779BC15041CDCCCCFC20D054415C8FC285A2C15041C3F5284C20D05441D7A3709DA5C15041E17A14DE1FD05441A4703D7AA7C15041000000901FD05441A4703D3A81C1504148E17AD4E7CF5441
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000008261E0E27EC150417BF37390F9CF5441713D0A5789C1504152B81EC508D05441B3A4B3E090C1504190581CBC13D05441B81E850B9AC150411F85EB1121D05441713D0A779BC15041CDCCCCFC20D054415C8FC285A2C15041C3F5284C20D05441D7A3709DA5C15041E17A14DE1FD05441A4703D7AA7C15041000000901FD05441A4703D3A81C1504148E17AD4E7CF544169DB888879C15041CC0FC69EDCCF54411776FE8C6DC150413E0A3E59E0CF5441FDD2EF796FC150418D1D4326E3CF54418A47C01572C15041120FA5F1E6CF54418261E0E27EC150417BF37390F9CF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238731 - 178055
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000003C000000333333639CBB5041B81E854B8BCC544148E17A949CBB5041C3F528CC85CC544148E17AC4A1BB504185EB51E882CC5441CDCCCC4CA1BB5041AE47E1DA82CC544185EB51E899BB50410000001082CC5441666666368FBB50411F85EB9181CC54419A9999298EBB5041EC51B88E81CC544152B81E758DBB504152B81ED584CC5441333333338CBB5041EC51B8BE8ACC544114AE47918ABB5041C3F5280C90CC54410AD7A3C089BB5041CDCCCC6C92CC544148E17AC488BB50413D0AD71395CC5441CDCCCC3C87BB50415C8FC2E597CC5441295C8F3285BB50411F85EBD19ACC5441EC51B80E83BB5041CDCCCCAC9DCC54415C8FC27581BB5041000000609FCC5441000000407FBB50413D0AD783A1CC5441CDCCCC5C7CBB50418FC2F518A4CC54419A9999A97ABB5041C3F5286CA5CC5441333333B375BB50415C8FC295A8CC5441B81E851B6FBB5041295C8F52ACCC54415C8FC2D567BB504152B81E55B0CC54419A9999895DBB5041F6285C3FB6CC5441E17A140E5BBB5041295C8F32B7CC54410000004057BB5041A4703DCAB6CC544185EB515855BB5041F6285CDFB5CC544148E17AB452BB504100000050B3CC5441666666F649BB50413D0AD783BACC5441AE47E16A42BB5041AE47E1BAC0CC5441CDCCCC7C41BB5041AE47E13AC1CC5441295C8F2242BB50418FC2F518C3CC5441EC51B84E49BB5041AE47E18AC2CC5441EC51B88E49BB50415C8FC285C2CC54417B14AEF74DBB50413D0AD7E3C0CC544114AE47B153BB504133333393C1CC5441333333735CBB5041F6285C6FC4CC5441EC51B8CE5FBB5041B81E853BC0CC5441EC51B89E64BB5041713D0A57C1CC5441295C8FD267BB504185EB51E8BECC5441C3F528CC6BBB50418FC2F518BDCC5441333333836FBB50410AD7A310B9CC5441D7A370FD74BB50418FC2F588B8CC544114AE47E175BB504100000090B7CC5441EC51B8DE76BB504148E17AC4B3CC5441295C8FD278BB50410AD7A3C0B2CC544114AE47F17EBB5041B81E854BB3CC5441CDCCCCDC83BB50418FC2F598B0CC5441B81E855B89BB50415C8FC275AFCC5441B81E85EB8ABB5041AE47E14AAECC54417B14AEB78DBB5041A4703DAAA9CC5441C3F528EC8FBB5041D7A3704DA4CC54410000004090BB5041295C8F72A0CC54410AD7A37091BB50417B14AEF79DCC54413333331394BB50418FC2F5489CCC54419A9999D997BB5041A4703D6A9BCC54411F85EB019CBB50418FC2F5489BCC5441F6285C9F9DBB5041CDCCCC7C9ACC544133333323A1BB5041A4703DAA95CC54415C8FC2559DBB5041C3F528EC8FCC5441333333639CBB5041B81E854B8BCC5441
+</a>
+
+<b>
+0106000000010000000103000000010000005F000000A051B8DE76BB5041A8E17AC4B3CC5441295C8FD278BB50410AD7A3C0B2CC544114AE47F17EBB5041B81E854BB3CC54417632BA8B7FBB5041763ED7F6B2CC544197CCCCDC83BB50415AC2F598B0CC54418D1E855B89BB5041478FC275AFCC5441A7606BAA8ABB50413AEC857BAECC5441B81E85EB8ABB5041AE47E14AAECC54413A14AEB78DBB50416E703DAAA9CC5441B8F528EC8FBB504181A3704DA4CC5441203AAAFA8FBB504149CDB3A2A3CC54410000004090BB5041295C8F72A0CC5441194229CC90BB50419A9C754E9FCC5441B4D6A37091BB50419B14AEF79DCC54417FBADD6092BB5041F1734A5E9DCC54413333331394BB50418FC2F5489CCC54414E28E11395BB50411702CE0D9CCC5441EF9999D997BB50416E703D6A9BCC5441020AF98E99BB5041805A905C9BCC54411F85EB019CBB50418FC2F5489BCC5441F6285C9F9DBB5041CDCCCC7C9ACC5441C24A58F69FBB5041FAA0014797CC544108333323A1BB5041AF703DAA95CC54413CD0E8089FBB5041F38F517D92CC54415C8FC2559DBB5041C3F528EC8FCC5441B28C43D19CBB504140BC0F658DCC5441083333639CBB5041831E854B8BCC54411DE17A949CBB5041CDF528CC85CC5441F0E07AC4A1BB50417BEB51E882CC5441BA824ABAA1BB504163002DE782CC5441C55ADB97A1BB504174104FE382CC5441A2CCCC4CA1BB50410448E1DA82CC5441B0EB51E899BB50413600001082CC5441666666368FBB50413F85EB9181CC54418E6B8B298EBB5041F430FA8E81CC544152B81E758DBB504152B81ED584CC54413804CA408DBB504161322BCB85CC5441B94973F18CBB504118C3248687CC5441A137CA8D8CBB5041380BC91489CC5441333333338CBB5041EC51B8BE8ACC544114AE47918ABB5041C3F5280C90CC54410AD7A3C089BB5041CDCCCC6C92CC544148E17AC488BB50413D0AD71395CC5441CDCCCC3C87BB50415C8FC2E597CC5441491F693E85BB5041B85BF1C09ACC5441295C8F3285BB50411F85EBD19ACC5441EC51B80E83BB5041CDCCCCAC9DCC54415C8FC27581BB5041000000609FCC54412A076C3381BB5041AF9F3CA09FCC54411C4D03D280BB50419493A015A0CC544185A2ADF57FBB5041A18FEAD3A0CC5441000000407FBB50413D0AD783A1CC5441CDCCCC5C7CBB50418FC2F518A4CC54419A9999A97ABB5041C3F5286CA5CC54417B6522937ABB5041B0157A7AA5CC5441E4BC9EE479BB5041A49B3111A6CC54413EB5598379BB504188E3AD27A6CC5441333333B375BB50415C8FC295A8CC5441B81E851B6FBB5041295C8F52ACCC54415C8FC2D567BB504152B81E55B0CC54419A9999895DBB5041F6285C3FB6CC5441E17A140E5BBB5041295C8F32B7CC5441F39C04695ABB5041C6EDE120B7CC54414A74712D5ABB50418097801AB7CC54410000004057BB5041A4703DCAB6CC544185EB515855BB5041F6285CDFB5CC54417DE17AB452BB504136000050B3CC5441BC6666F649BB5041730AD783BACC544110903CDA43BB5041718A478CBFCC5441AE47E16A42BB5041AE47E1BAC0CC54416BD03A1F42BB5041C95B8DE3C0CC5441E6CCCC7C41BB5041F747E13AC1CC54412F10D49941BB50413A4E9A8EC1CC54413B13E0B041BB504129F112D1C1CC54415F5C8F2242BB50416FC2F518C3CC544147E15BEA44BB50419DBDE1E1C2CC5441EC51B84E49BB5041AE47E18AC2CC5441EC51B88E49BB50415C8FC285C2CC54417B14AEF74DBB50413D0AD7E3C0CC544114AE47B153BB504133333393C1CC5441333333735CBB5041F6285C6FC4CC54412DD159925CBB50413F875E48C4CC5441EC51B8CE5FBB5041B81E853BC0CC5441EC51B89E64BB5041713D0A57C1CC544167BCCA2C65BB50419D9F20EBC0CC5441545C8FD267BB50414FEB51E8BECC5441D8F528CC6BBB50415AC2F518BDCC5441285A837B6CBB50411BD79E5ABCCC5441333333836FBB50410AD7A310B9CC5441EFCAEC3D72BB5041352008CDB8CC54410DA470FD74BB504139C2F588B8CC5441AA547F2D75BB5041BCA67254B8CC544114AE47E175BB504100000090B7CC54410096EE6776BB5041F086D58BB5CC5441A051B8DE76BB5041A8E17AC4B3CC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238731 - 393452
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000003C000000333333639CBB5041B81E854B8BCC544148E17A949CBB5041C3F528CC85CC544148E17AC4A1BB504185EB51E882CC5441CDCCCC4CA1BB5041AE47E1DA82CC544185EB51E899BB50410000001082CC5441666666368FBB50411F85EB9181CC54419A9999298EBB5041EC51B88E81CC544152B81E758DBB504152B81ED584CC5441333333338CBB5041EC51B8BE8ACC544114AE47918ABB5041C3F5280C90CC54410AD7A3C089BB5041CDCCCC6C92CC544148E17AC488BB50413D0AD71395CC5441CDCCCC3C87BB50415C8FC2E597CC5441295C8F3285BB50411F85EBD19ACC5441EC51B80E83BB5041CDCCCCAC9DCC54415C8FC27581BB5041000000609FCC5441000000407FBB50413D0AD783A1CC5441CDCCCC5C7CBB50418FC2F518A4CC54419A9999A97ABB5041C3F5286CA5CC5441333333B375BB50415C8FC295A8CC5441B81E851B6FBB5041295C8F52ACCC54415C8FC2D567BB504152B81E55B0CC54419A9999895DBB5041F6285C3FB6CC5441E17A140E5BBB5041295C8F32B7CC54410000004057BB5041A4703DCAB6CC544185EB515855BB5041F6285CDFB5CC544148E17AB452BB504100000050B3CC5441666666F649BB50413D0AD783BACC5441AE47E16A42BB5041AE47E1BAC0CC5441CDCCCC7C41BB5041AE47E13AC1CC5441295C8F2242BB50418FC2F518C3CC5441EC51B84E49BB5041AE47E18AC2CC5441EC51B88E49BB50415C8FC285C2CC54417B14AEF74DBB50413D0AD7E3C0CC544114AE47B153BB504133333393C1CC5441333333735CBB5041F6285C6FC4CC5441EC51B8CE5FBB5041B81E853BC0CC5441EC51B89E64BB5041713D0A57C1CC5441295C8FD267BB504185EB51E8BECC5441C3F528CC6BBB50418FC2F518BDCC5441333333836FBB50410AD7A310B9CC5441D7A370FD74BB50418FC2F588B8CC544114AE47E175BB504100000090B7CC5441EC51B8DE76BB504148E17AC4B3CC5441295C8FD278BB50410AD7A3C0B2CC544114AE47F17EBB5041B81E854BB3CC5441CDCCCCDC83BB50418FC2F598B0CC5441B81E855B89BB50415C8FC275AFCC5441B81E85EB8ABB5041AE47E14AAECC54417B14AEB78DBB5041A4703DAAA9CC5441C3F528EC8FBB5041D7A3704DA4CC54410000004090BB5041295C8F72A0CC54410AD7A37091BB50417B14AEF79DCC54413333331394BB50418FC2F5489CCC54419A9999D997BB5041A4703D6A9BCC54411F85EB019CBB50418FC2F5489BCC5441F6285C9F9DBB5041CDCCCC7C9ACC544133333323A1BB5041A4703DAA95CC54415C8FC2559DBB5041C3F528EC8FCC5441333333639CBB5041B81E854B8BCC5441
+</a>
+
+<b>
+0106000000010000000103000000010000005F000000A051B8DE76BB5041A8E17AC4B3CC5441295C8FD278BB50410AD7A3C0B2CC544114AE47F17EBB5041B81E854BB3CC54417632BA8B7FBB5041763ED7F6B2CC544197CCCCDC83BB50415AC2F598B0CC54418D1E855B89BB5041478FC275AFCC5441A7606BAA8ABB50413AEC857BAECC5441B81E85EB8ABB5041AE47E14AAECC54413A14AEB78DBB50416E703DAAA9CC5441B8F528EC8FBB504181A3704DA4CC5441203AAAFA8FBB504149CDB3A2A3CC54410000004090BB5041295C8F72A0CC5441194229CC90BB50419A9C754E9FCC5441B4D6A37091BB50419B14AEF79DCC54417FBADD6092BB5041F1734A5E9DCC54413333331394BB50418FC2F5489CCC54414E28E11395BB50411702CE0D9CCC5441EF9999D997BB50416E703D6A9BCC5441020AF98E99BB5041805A905C9BCC54411F85EB019CBB50418FC2F5489BCC5441F6285C9F9DBB5041CDCCCC7C9ACC5441C24A58F69FBB5041FAA0014797CC544108333323A1BB5041AF703DAA95CC54413CD0E8089FBB5041F38F517D92CC54415C8FC2559DBB5041C3F528EC8FCC5441B28C43D19CBB504140BC0F658DCC5441083333639CBB5041831E854B8BCC54411DE17A949CBB5041CDF528CC85CC5441F0E07AC4A1BB50417BEB51E882CC5441BA824ABAA1BB504163002DE782CC5441C55ADB97A1BB504174104FE382CC5441A2CCCC4CA1BB50410448E1DA82CC5441B0EB51E899BB50413600001082CC5441666666368FBB50413F85EB9181CC54418E6B8B298EBB5041F430FA8E81CC544152B81E758DBB504152B81ED584CC54413804CA408DBB504161322BCB85CC5441B94973F18CBB504118C3248687CC5441A137CA8D8CBB5041380BC91489CC5441333333338CBB5041EC51B8BE8ACC544114AE47918ABB5041C3F5280C90CC54410AD7A3C089BB5041CDCCCC6C92CC544148E17AC488BB50413D0AD71395CC5441CDCCCC3C87BB50415C8FC2E597CC5441491F693E85BB5041B85BF1C09ACC5441295C8F3285BB50411F85EBD19ACC5441EC51B80E83BB5041CDCCCCAC9DCC54415C8FC27581BB5041000000609FCC54412A076C3381BB5041AF9F3CA09FCC54411C4D03D280BB50419493A015A0CC544185A2ADF57FBB5041A18FEAD3A0CC5441000000407FBB50413D0AD783A1CC5441CDCCCC5C7CBB50418FC2F518A4CC54419A9999A97ABB5041C3F5286CA5CC54417B6522937ABB5041B0157A7AA5CC5441E4BC9EE479BB5041A49B3111A6CC54413EB5598379BB504188E3AD27A6CC5441333333B375BB50415C8FC295A8CC5441B81E851B6FBB5041295C8F52ACCC54415C8FC2D567BB504152B81E55B0CC54419A9999895DBB5041F6285C3FB6CC5441E17A140E5BBB5041295C8F32B7CC5441F39C04695ABB5041C6EDE120B7CC54414A74712D5ABB50418097801AB7CC54410000004057BB5041A4703DCAB6CC544185EB515855BB5041F6285CDFB5CC54417DE17AB452BB504136000050B3CC5441BC6666F649BB5041730AD783BACC544110903CDA43BB5041718A478CBFCC5441AE47E16A42BB5041AE47E1BAC0CC54416BD03A1F42BB5041C95B8DE3C0CC5441E6CCCC7C41BB5041F747E13AC1CC54412F10D49941BB50413A4E9A8EC1CC54413B13E0B041BB504129F112D1C1CC54415F5C8F2242BB50416FC2F518C3CC544147E15BEA44BB50419DBDE1E1C2CC5441EC51B84E49BB5041AE47E18AC2CC5441EC51B88E49BB50415C8FC285C2CC54417B14AEF74DBB50413D0AD7E3C0CC544114AE47B153BB504133333393C1CC5441333333735CBB5041F6285C6FC4CC54412DD159925CBB50413F875E48C4CC5441EC51B8CE5FBB5041B81E853BC0CC5441EC51B89E64BB5041713D0A57C1CC544167BCCA2C65BB50419D9F20EBC0CC5441545C8FD267BB50414FEB51E8BECC5441D8F528CC6BBB50415AC2F518BDCC5441285A837B6CBB50411BD79E5ABCCC5441333333836FBB50410AD7A310B9CC5441EFCAEC3D72BB5041352008CDB8CC54410DA470FD74BB504139C2F588B8CC5441AA547F2D75BB5041BCA67254B8CC544114AE47E175BB504100000090B7CC54410096EE6776BB5041F086D58BB5CC5441A051B8DE76BB5041A8E17AC4B3CC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>149648 - 137244
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000001000000080000008FC2F5D862D45041EC51B8CEC260544185EB51F850D4504114AE4741A26054413333336303D45041A4703DCAB06054413333334315D4504166666656D1605441C3F5285C16D45041B81E85DBD1605441B81E856B3CD45041A4703DBACA60544185EB517862D45041A4703D9AC36054418FC2F5D862D45041EC51B8CEC2605441
+</a>
+
+<b>
+010600000001000000010300000001000000070000003333336303D45041A4703DCAB06054411E68E82B05D450415EDED409B4605441BD8CA0D852D450411FA6DAABA56054418554F89851D45041E049CD65A3605441F0D2D96E51D4504113CF1B19A36054415B3B970151D4504198282952A26054413333336303D45041A4703DCAB0605441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>149648 - 335715
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000001000000080000008FC2F5D862D45041EC51B8CEC260544185EB51F850D4504114AE4741A26054413333336303D45041A4703DCAB06054413333334315D4504166666656D1605441C3F5285C16D45041B81E85DBD1605441B81E856B3CD45041A4703DBACA60544185EB517862D45041A4703D9AC36054418FC2F5D862D45041EC51B8CEC2605441
+</a>
+
+<b>
+010600000001000000010300000001000000070000003333336303D45041A4703DCAB06054411E68E82B05D450415EDED409B4605441BD8CA0D852D450411FA6DAABA56054418554F89851D45041E049CD65A3605441F0D2D96E51D4504113CF1B19A36054415B3B970151D4504198282952A26054413333336303D45041A4703DCAB0605441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238750 - 58142
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000034000000F6285C7F00BC5041295C8F3231CC5441E17A14FEFEBB5041F6285C0F2FCC5441B81E85CBFCBB5041000000B028CC5441F6285C8FFCBB5041713D0A472ACC54411F85EB51F8BB504148E17AE435CC5441D7A3708DF5BB504185EB51583CCC5441AE47E16AF2BB50417B14AEE743CC5441C3F5284CF0BB50410000008047CC544152B81E25EEBB5041D7A370AD49CC54415C8FC265ECBB50417B14AEE74BCC544100000070EBBB5041CDCCCCBC4DCC5441333333D3EABB5041AE47E1EA4ECC544114AE4741E9BB50416666666650CC544148E17A54E6BB5041D7A3705D52CC54418FC2F588E3BB5041E17A14CE53CC5441E17A14BEE0BB50418FC2F52855CC544148E17A34DDBB5041295C8F1255CC544148E17A74D8BB5041713D0AD754CC5441713D0AE7D8BB5041D7A370BD55CC544152B81EB5CFBB5041AE47E15A5ACC5441E17A145ECDBB504185EB51A85BCC5441EC51B8BECEBB5041A4703DFA5ECC544114AE47E1CEBB50411F85EB515FCC5441E17A148ED2BB50413D0AD7135FCC54413D0AD783D7BB504152B81E455DCC54417B14AE57DABB50410000005059CC5441F6285CCFDBBB50418FC2F53858CC54415C8FC295DDBB5041B81E85AB57CC5441666666D6E0BB50415C8FC22557CC544133333383E4BB50419A99992958CC544166666656EABB50410000008058CC544114AE4731ECBB5041333333B357CC544152B81E65EEBB5041C3F5284C55CC5441295C8F42F2BB504185EB51C852CC54410AD7A340F2BB504185EB515851CC54411F85EB41EFBB50418FC2F5D84FCC544166666666EDBB5041C3F5289C4ECC5441B81E85DBECBB5041F6285CCF4CCC5441CDCCCC0CEEBB5041A4703DEA4ACC5441AE47E18AF0BB50417B14AEF748CC544148E17A24F7BB5041A4703D0A46CC54415C8FC2B5FBBB504114AE47C145CC544166666616FEBB50419A9999C948CC54411F85EB5100BC5041D7A3709D49CC5441D7A370FD01BC5041F6285C5F49CC544114AE478102BC5041B81E85FB47CC54410000006003BC504185EB519843CC5441F6285CAF06BC50418FC2F5783CCC544152B81EA507BC50417B14AE6739CC544185EB516806BC5041A4703DEA36CC544152B81EB503BC5041D7A370DD34CC5441F6285C7F00BC5041295C8F3231CC5441
+</a>
+
+<b>
+010600000002000000010300000001000000520000000EFE673176BB504176E1F66848CC5441F205A99972BB5041377405664ECC54410F58E1F770BB5041D5E4EE2B51CC5441E278CA8BCEBB5041B434FD7854CC5441EB984749D3BB50419D9223A854CC544148E17A74D8BB5041713D0AD754CC544116C78133DABB50410FB9EBEC54CC54414055205ADFBB50414BCE272055CC5441027313B8E0BB5041D7BDCF2855CC5441E2824DE1E1BB50417129289554CC544116B88E94E6BB50416B674C2C52CC54419EE3954AE9BB504111F59C5D50CC5441D1CAD3B6E9BB50415A6567F74FCC54418E5F7EC5EABB50419DD0BCE84ECC5441577DED51ECBB50418B77890D4CCC54415C8FC265ECBB50417B14AEE74BCC544173800068ECBB50412F7DD2E44BCC5441F2E3C470ECBB5041BDD6A6D44BCC54417E7A5B6DEDBB504158A1AD974ACC544152B81E25EEBB5041D7A370AD49CC544113BB0E34EEBB50413437549E49CC544140BE0355EEBB50419C97F87449CC544105EDF0EDEEBB5041D95549E248CC5441E31EC7E3EFBB5041913298E947CC5441F1C12E3EF0BB5041D7C2238E47CC5441E39DFD39F2BB504183FBAD3044CC54416ED3DC7DF2BB5041CF5DE7B943CC5441105052A0F2BB5041A77FCE6643CC544199F2B5DFF2BB50412FD4F1CD42CC54418967DC30F3BB50415E757EDA41CC544182D9D943F3BB50415E757EDA41CC5441593C9182F3BB50415CFC374541CC5441D7A3708DF5BB504185EB51583CCC5441C2E01CDEF6BB504114BF5B4739CC5441DD48BFC0F7BB50414659EE2B37CC54412A521FD9F8BB504106C51B7234CC5441A47D0034FABB50419104DFBB30CC5441462B430FFBBB504111613B632ECC544131551E6DFCBB5041E1F021862ACC5441CCF047BCFCBB5041B6361B1729CC5441B81E85CBFCBB5041000000B028CC54415995AAC7F6BB50419F759CA427CC544117611F0FF0BB5041D2FA728B26CC54413D0AD793EDBB504114AE473126CC54412F4674CAEBBB5041C2811D0E26CC5441D04F4DC3E4BB50419B00C8B325CC54417C5FDD47CABB5041F8EF67C624CC544194C68BF3C2BB504179A2E34624CC54410AD7A3E0C2BB50415C8FC24524CC54415C74CFDEC2BB5041FEDF7A4524CC54414784E4A3C2BB504129D2794124CC5441F0025F19BABB50410771D2ED22CC544100000070B4BB50410000001022CC544186EBFF23B4BB50418502DF0022CC5441DFCDF25BB3BB50410A93CBE121CC54417793E560B0BB5041F51A274121CC5441AE47E12AB0BB50416666663621CC544161062927B0BB50410B69FF3421CC54412928ECD5AFBB5041501FE52321CC5441D0C45A19AEBB5041A755C66E20CC544152B81E15ACBB5041C3F528AC1FCC5441ACD7F7DCABBB5041BE8C94851FCC5441A11D76D4ABBB5041E9531D821FCC544136F08069ABBB504182CB3F361FCC5441BBECAE14AABB504147C2154C1ECC5441D8823398A8BB504113B9AB461DCC54413401F1AAA1BB5041DD3C9FDE21CC54414537A175A1BB5041E5F4AD0222CC54417A95F4BC9ABB50411CFD239B26CC5441AD87521C97BB5041F8B8363229CC54410466B86D93BB504162E342D32BCC5441B14D0C748DBB5041DC0DE11F30CC5441DC8F05C88BBB5041EA9F1E4931CC5441295C8F328BBB50413D0AD7B331CC544123DA04FD85BB5041DC500A1B36CC5441700D75DB82BB5041EF1E3A2739CC544151F9C20280BB50417BAA37053CCC5441ABC0CFCB7BBB50419A9D321541CC54418FC2F5E87ABB50417B14AE2742CC5441622AD90678BB504150A89AF845CC5441B85A846277BB5041990252DC46CC54410EFE673176BB504176E1F66848CC54410103000000010000000600000050BC91F4E0BB5041C22F850E55CC54417B192D28E1BB5041B5A87AF554CC5441DC055ED8E5BB5041A832629D52CC54415E0AA8F2E5BB5041B2DAD68F52CC5441E2824DE1E1BB50417129289554CC544150BC91F4E0BB5041C22F850E55CC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238750 - 178157
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000034000000F6285C7F00BC5041295C8F3231CC5441E17A14FEFEBB5041F6285C0F2FCC5441B81E85CBFCBB5041000000B028CC5441F6285C8FFCBB5041713D0A472ACC54411F85EB51F8BB504148E17AE435CC5441D7A3708DF5BB504185EB51583CCC5441AE47E16AF2BB50417B14AEE743CC5441C3F5284CF0BB50410000008047CC544152B81E25EEBB5041D7A370AD49CC54415C8FC265ECBB50417B14AEE74BCC544100000070EBBB5041CDCCCCBC4DCC5441333333D3EABB5041AE47E1EA4ECC544114AE4741E9BB50416666666650CC544148E17A54E6BB5041D7A3705D52CC54418FC2F588E3BB5041E17A14CE53CC5441E17A14BEE0BB50418FC2F52855CC544148E17A34DDBB5041295C8F1255CC544148E17A74D8BB5041713D0AD754CC5441713D0AE7D8BB5041D7A370BD55CC544152B81EB5CFBB5041AE47E15A5ACC5441E17A145ECDBB504185EB51A85BCC5441EC51B8BECEBB5041A4703DFA5ECC544114AE47E1CEBB50411F85EB515FCC5441E17A148ED2BB50413D0AD7135FCC54413D0AD783D7BB504152B81E455DCC54417B14AE57DABB50410000005059CC5441F6285CCFDBBB50418FC2F53858CC54415C8FC295DDBB5041B81E85AB57CC5441666666D6E0BB50415C8FC22557CC544133333383E4BB50419A99992958CC544166666656EABB50410000008058CC544114AE4731ECBB5041333333B357CC544152B81E65EEBB5041C3F5284C55CC5441295C8F42F2BB504185EB51C852CC54410AD7A340F2BB504185EB515851CC54411F85EB41EFBB50418FC2F5D84FCC544166666666EDBB5041C3F5289C4ECC5441B81E85DBECBB5041F6285CCF4CCC5441CDCCCC0CEEBB5041A4703DEA4ACC5441AE47E18AF0BB50417B14AEF748CC544148E17A24F7BB5041A4703D0A46CC54415C8FC2B5FBBB504114AE47C145CC544166666616FEBB50419A9999C948CC54411F85EB5100BC5041D7A3709D49CC5441D7A370FD01BC5041F6285C5F49CC544114AE478102BC5041B81E85FB47CC54410000006003BC504185EB519843CC5441F6285CAF06BC50418FC2F5783CCC544152B81EA507BC50417B14AE6739CC544185EB516806BC5041A4703DEA36CC544152B81EB503BC5041D7A370DD34CC5441F6285C7F00BC5041295C8F3231CC5441
+</a>
+
+<b>
+01060000000100000001030000000100000044000000B57313B8E0BB5041DCBDCF2855CC5441CAA010D3DFBB5041B29B252355CC544148E17A34DDBB5041295C8F1255CC54418598693EDCBB50412801840655CC54414063AD7CD8BB5041D1B386E754CC5441713D0AE7D8BB5041D7A370BD55CC544152B81EB5CFBB5041AE47E15A5ACC5441497CB0FACDBB504112C025515BCC5441EC7A145ECDBB50419BEB51A85BCC54411BEABD66CEBB504121C332265ECC54410B10A213DABB5041B7A0105D57CC54411952875FDCBB5041235C949056CC54414BFA26DEDFBB5041003B562A56CC5441A754610FE2BB50419EC22CEB55CC54411C2BACD2E2BB504163C527DE55CC54418C71FA3AE6BB5041C5B4452C56CC54414BC0397CE9BB504102FAC8E654CC544195146FA3ECBB50416A9DA2E651CC5441479B3C59ECBB50417C73A6464FCC5441D766483FEDBB5041A64049AD4ECC544118666666EDBB5041BFF4289C4ECC5441B81E85DBECBB5041F6285CCF4CCC54412DB84B79EDBB50418884A3D44BCC5441E1CBCC0CEEBB5041A4703DEA4ACC54415ACCC749EFBB50419BB791F249CC5441AE47E18AF0BB50417B14AEF748CC54410558C2A6F0BB5041125C50EB48CC5441CC0CBABCF3BB50419C8CE6FD44CC5441EE921BD5F6BB5041879E9CB143CC5441FC3924D3FBBB50412D384BFE43CC5441ACF37905FEBB50419C8CE6FD44CC544187481505FFBB504172BF439745CC5441CE79DB1D01BC50415F7BC7CA44CC54410D35C8D001BC504190F4CE3143CC54412323121D03BC5041EFF793B33ECC544189217B9C04BC5041948251CE3BCC5441F7CB481C05BC504187EA39023ACC5441F2A90AB604BC5041390D0FE938CC5441F9556FB603BC50419A1FC59C37CC544165F14B0401BC5041E7EDFE8335CC5441B115B86BFEBB50413B689D6B32CC5441B3BF85EBFEBB504168488D062FCC5441A81E85CBFCBB50416D0000B028CC5441F6285C8FFCBB5041713D0A472ACC5441952E430FFBBB504102583B632ECC5441407E0034FABB50417D04DFBB30CC544109226D7FF9BB50419FA189AA32CC54411F85EB51F8BB504148E17AE435CC544175E81CDEF6BB504121AD5B4739CC544117A4708DF5BB504185EB51583CCC5441B43C9182F3BB504125FC374541CC5441AE47E16AF2BB50417B14AEE743CC5441C3F5284CF0BB50410000008047CC54414AC42E3EF0BB504177C0238E47CC5441EA25F8F9EFBB5041383025D347CC54411B31E831EEBB5041162681A049CC544129B91E25EEBB5041EDA370AD49CC5441447A5B6DEDBB5041DAA1AD974ACC5441B8800068ECBB5041D87CD2E44BCC5441CBCEEC66ECBB5041FAE831E64BCC54415C8FC265ECBB50417B14AEE74BCC544100000070EBBB5041CDCCCCBC4DCC5441333333D3EABB5041AE47E1EA4ECC544114AE4741E9BB50416666666650CC544148E17A54E6BB5041D7A3705D52CC54418FC2F588E3BB5041E17A14CE53CC5441E17A14BEE0BB50418FC2F52855CC5441B57313B8E0BB5041DCBDCF2855CC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>630446 - 4107510
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000003F000000B5E880C00D075141ECFC31DD042255417AF08D4A0E0751413B9D2025042255412D2EBE800F075141A2F58A87022255414BB40EA50F075141EA798E4602225541D59915F60F075141FC458EB501225541131DF0A610075141913D8757002255412E45C1F710075141096493B7FF2155412AE8139511075141F0933A7DFE215541DB3A342F12075141050300FCFC215541A9B5218012075141AFFDB931FC215541272DCC031307514103D3A2E8FA2155414AE12B93130751410915E65BF92155414FBCE3E313075141620B8A7CF821554137EFC05D14075141FF067344F62155419A999989140751415C8FC285F52155419A9999490F0751410AD7A330F421554148E17AC407075141AE47E1DAF1215541E17A149EFE065141D7A3708DEE21554166666636F606514148E17A14EB215541666666F6EC06514114AE47B1E72155419A9999C9E70651411F85EBA1E5215541004C9A8EE7065141B0A9C336E6215541FA4FD5A7E80651414A3BC2A7E62155412719A835EA06514143359947E7215541DEDA8647EC06514117237E1CE82155416990E1A1ED065141AEDD9FA2E82155414F9F0DECEE0651417CEA521FE92155411B1C1059F00651415B472EA9E92155410AE0868EF1065141E1220F1EEA2155419072DD91F2065141D1870180EA2155411EBA7E80F306514178BB21DAEA2155418ECEF5A9F4065141B9797A4AEB2155413C49C15DF5065141C722628EEB2155419AAABEE7F5065141FAC83CCAEB2155419034A00CF506514119346E09EF215541341EB91CF40651414F927697F22155417CEC8322F306514185FD325FF6215541BC423C53F20651417CB3978AF92155418B7F40A4F1065141DADE8F37FC215541E5092B3BF10651413A9F88BCFD215541EFF4B983F0065141C0D31D5700225541E11CC108F00651413698F715022255410CD1289FEF065141886AAC9503225541ABCD2934EF0651417BBA781A05225541D90E9E31EF0651417303B923052255416866DF84F10651419F00BD58062255417D0F9812F7065141C7296BE508225541CCC18B5EFA06514120DAF3650A2255415B8B90A2FD065141748CE3DB0B22554146C48396FF0651419414ACB80C2255415670947E0107514141FD34900D22554112E0618A020751417DB078060E225541E37E5D2A03075141EC4292450E22554153539E3D04075141520BA2800D225541B21C4DEB050751417B0C344D0C225541BA8EE719080751418E9388BD0A22554151BAA8930A075141872B18F808225541FD9BE12B0C075141FBF404D407225541299B69860C0751415FE28372072255410523DACF0C0751412F683DB806225541B0D7D7470D07514156B1E38705225541000000500D0751413333337305225541B5E880C00D075141ECFC31DD04225541
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000007ED6E9FD0D07514139199586062255411B2FDD6411075141EC51B83E04225541333333D3180751410C022B77FF215541666666862807514166666696F62155418FC2F55824075141B81E859BEE215541885A7DE821075141C12A0B0FEA21554122FA2BB02007514126B5A6C8E7215541E17A14EE1F075141EC51B85EE6215541B81E856B1E075141666666E6DC215541F6285C3F170751413D0AD7E3DD215541A4703D8A0E0751411F85EB41DF21554114AE47810E075141B81E85CBE02155419A99998907075141D7A370BDE2215541333333A300075141000000B0E42155410AD7A300FB06514152B81EA5E52155418FC2F5A8FA065141E17A142EE72155418FC2F568ED0651418FC2F578E5215541D06D7399EC06514115AC478CE721554188B63F6EE7065141B73B927CE521554181F8EB3EE706514122E8BF16E62155412419A835EA06514146359947E721554114AE47D1EC0651413D0AD753E82155419A9999E9F5065141333333C3EB2155412B3ABE2CF50651415345998FEE215541951F040D0207514183DE1D2AF3215541A08FD8841307514175C3A88CF92155412A2DCC0313075141FED2A2E8FA215541A8B5218012075141B2FDB931FC215541DB3A342F12075141050300FCFC2155412AE8139511075141F0933A7DFE2155417ED6E9FD0D0751413919958606225541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>152291 - 5223098
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000005000000295C8F122360514148E17A94EBA35441F6285CAFF55F51410AD7A3E002A4544152B81E05F95F51415C8FC2250CA4544152B81EC525605141AE47E10AF5A35441295C8F122360514148E17A94EBA35441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000D7AB7AC825605141284F5903F5A3544177DED34A23605141AA22DC59ECA354416FFDF2262360514111B400DCEBA35441F154671A236051417399FEAFEBA35441495621A1F55F51413EEBF6B802A454417AB8AFBBF55F51411429B90203A45441287860E7F55F51419A5B127C03A45441230A9CFAF85F5141325394060CA454413D90FCFCFC5F5141E54941190AA4544172725191006051410E2A244008A45441E12469B107605141FFBD569204A45441B8D8C97512605141D6822F03FFA35441D7AB7AC825605141284F5903F5A35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>152737 - 3143318
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000E0000005C8FC275705751419A99990955B3544114AE47D1715751415C8FC2A551B35441AE47E1EA73575141C3F5284C50B3544148E17AC475575141B81E857B4EB3544152B81E85765751418FC2F5284EB35441B81E857B7657514152B81E6546B35441E17A142E5E57514185EB51A83DB35441333333C35957514152B81E453CB354413D0AD7434E575141C3F528BC39B35441AE47E10A495751419A9999594EB35441F6285C4F57575141C3F528EC53B354413D0AD7636D5751410AD7A3605CB35441CDCCCC6C6F575141F6285CBF5AB354415C8FC275705751419A99990955B35441
+</a>
+
+<b>
+010600000001000000010300000001000000240000003B73CD374B5751415C4F3CC345B35441E73E64624B575141D13B1F1B45B35441DCE7116C4B5751412E0FEBF444B35441E415AE4B4C57514144A2408241B354411B0638594C575141B862CF4C41B354415AD933894C57514158E9668F40B354419537A1DC4C5751419C0C16463FB354413E8AF7104D57514127457E773EB35441B1C8BB2B4D575141881CD60D3EB354412174C9854D575141565D5DAA3CB35441AD56BA914D5751415DCA3A7B3CB3544175DE1EAE4D5751410068270B3CB35441FEB922DA4D575141174E695D3BB354411218D5034E575141B0E9D1B83AB35441F1761E3E4E5751414524BED239B3544118E9160D4E5751417A4C3EB039B354415D32C77B4D575141A853369039B3544168C178264D575141CD74687D39B354414F2FFE7E4C575141D4917D5839B354417349E66A4C5751413603D49539B354417349E66A4C575141E2CB8DC239B354417349E66A4C5751418E9447EF39B354413AB1FD5B4C57514120BEA3573AB35441E11F8A024C575141496B89AE3BB3544169958B5E4B575141531FE4BA3CB354419ED346E74A57514177729C8B3DB354417FDABB9C4A575141612D6C4D3EB35441B872A4AB4A5751418580241E3FB35441B872A4AB4A575141569C961B40B35441B872A4AB4A575141ED1F200A41B35441B872A4AB4A575141BD3B920742B35441B872A4AB4A575141C7EFEC1343B354410CAAEA7E4A57514143D4183E44B354414542D38D4A575141F9502D7745B3544169E38BE44A575141F740E00B47B354413B73CD374B5751415C4F3CC345B35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>152737 - 3521027
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000E0000005C8FC275705751419A99990955B3544114AE47D1715751415C8FC2A551B35441AE47E1EA73575141C3F5284C50B3544148E17AC475575141B81E857B4EB3544152B81E85765751418FC2F5284EB35441B81E857B7657514152B81E6546B35441E17A142E5E57514185EB51A83DB35441333333C35957514152B81E453CB354413D0AD7434E575141C3F528BC39B35441AE47E10A495751419A9999594EB35441F6285C4F57575141C3F528EC53B354413D0AD7636D5751410AD7A3605CB35441CDCCCC6C6F575141F6285CBF5AB354415C8FC275705751419A99990955B35441
+</a>
+
+<b>
+010600000001000000010300000001000000240000003B73CD374B5751415C4F3CC345B35441E73E64624B575141D13B1F1B45B35441DCE7116C4B5751412E0FEBF444B35441E415AE4B4C57514144A2408241B354411B0638594C575141B862CF4C41B354415AD933894C57514158E9668F40B354419537A1DC4C5751419C0C16463FB354413E8AF7104D57514127457E773EB35441B1C8BB2B4D575141881CD60D3EB354412174C9854D575141565D5DAA3CB35441AD56BA914D5751415DCA3A7B3CB3544175DE1EAE4D5751410068270B3CB35441FEB922DA4D575141174E695D3BB354411218D5034E575141B0E9D1B83AB35441F1761E3E4E5751414524BED239B3544118E9160D4E5751417A4C3EB039B354415D32C77B4D575141A853369039B3544168C178264D575141CD74687D39B354414F2FFE7E4C575141D4917D5839B354417349E66A4C5751413603D49539B354417349E66A4C575141E2CB8DC239B354417349E66A4C5751418E9447EF39B354413AB1FD5B4C57514120BEA3573AB35441E11F8A024C575141496B89AE3BB3544169958B5E4B575141531FE4BA3CB354419ED346E74A57514177729C8B3DB354417FDABB9C4A575141612D6C4D3EB35441B872A4AB4A5751418580241E3FB35441B872A4AB4A575141569C961B40B35441B872A4AB4A575141ED1F200A41B35441B872A4AB4A575141BD3B920742B35441B872A4AB4A575141C7EFEC1343B354410CAAEA7E4A57514143D4183E44B354414542D38D4A575141F9502D7745B3544169E38BE44A575141F740E00B47B354413B73CD374B5751415C4F3CC345B35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>152875 - 4020575
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000001F000000A4703DCAE9555141F6285C1FB9B354419A9999C9F55551417B14AED7C3B35441B81E85ABFB55514114AE47C1C0B354418FC2F59806565141EC51B8FEBAB35441EC51B8AE1256514185EB51A8B4B354410AD7A3A019565141713D0AE7B0B354419A9999C91C565141AE47E12AAFB35441D7A3704D1F5651418FC2F5C8ADB35441F6285C3F3156514114AE4701A5B354417B14AE273256514100000090A4B354411F85EBB13F565141B81E85CB9DB35441295C8FB248565141B81E857B99B354415C8FC2554A56514114AE472199B35441EC51B8CE44565141AE47E19A90B35441EC51B86E3E565141E17A149E86B354411F85EBF1435651415C8FC21583B354410AD7A3E049565141295C8FA27EB354411F85EBB14D565141AE47E1AA7BB354415C8FC2754F565141CDCCCC1C7AB35441C3F528DC44565141A4703D4A70B35441E17A148E2E565141EC51B85E5BB35441D7A3703D27565141F6285CCF65B35441AE47E11A1F565141000000C070B35441B81E85CB1D565141CDCCCCFC73B354410AD7A3C01C565141333333F377B354415C8FC2A5195651419A99998982B3544133333373095651411F85EB718CB3544166666656FD5551410AD7A32093B354417B14AE07F7555141713D0A5797B35441295C8F52DF55514185EB51B8ACB35441A4703DCAE9555141F6285C1FB9B35441
+</a>
+
+<b>
+010600000001000000010300000001000000180000001567259FE2555141AFD6A6BEA9B35441295C8F52DF55514185EB51B8ACB35441A4703DCAE9555141F6285C1FB9B354419A9999C9F55551417B14AED7C3B35441B81E85ABFB55514114AE47C1C0B354418FC2F59806565141EC51B8FEBAB35441EC51B8AE1256514185EB51A8B4B354410AD7A3A019565141713D0AE7B0B354419A9999C91C565141AE47E12AAFB35441D7A3704D1F5651418FC2F5C8ADB3544135121BDD2B565141394E9FA3A7B354413D667BA52C56514192689541A7B35441DA1362D531565141E1D320B8A4B354415D17457919565141CC2DD0A482B354412955358218565141A5D6EE3B83B35441F33BCF8514565141B72814AC85B354419EF9C9D513565141DEB5BE1786B3544133333373095651411F85EB718CB354419B5C3C4F055651419788B4BA8EB35441F6285C4F05565141AE47E1BA8EB3544166666656FD5551410AD7A32093B354417B14AE07F7555141713D0A5797B35441F6285C9FE2555141EC51B8BEA9B354411567259FE2555141AFD6A6BEA9B35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238919 - 2964541
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000002700000052B81E750BBE5041C3F5288CF4D554411F85EBE10ABE504166666666F2D5544148E17AA40ABE504100000080F1D55441E17A146E08BE50410AD7A3C0F2D554417B14AE0705BE5041E17A14FEF3D5544152B81E5507BE50415C8FC29508D654410000003007BE50413D0AD76309D65441666666B603BE50410AD7A37008D654417B14AED701BE5041A4703DDA07D65441AE47E16AFEBD50415C8FC2D50ED6544133333363FABD5041333333C317D65441333333F3FFBD5041713D0A3719D65441B81E85AB00BE5041713D0A6719D65441F6285CDF02BE50417B14AE071AD65441D7A3700D17BE5041AE47E1DA1FD65441D7A370CD17BE5041A4703D7A1AD6544148E17A1418BE5041B81E857B18D65441295C8FA21ABE50417B14AEC70AD65441D7A3705D1DBE5041E17A144E08D654419A9999991FBE5041D7A370ED06D654410AD7A3B021BE50413D0AD73306D654413D0AD77323BE504152B81E0506D65441295C8FA229BE5041F6285CBF07D65441D7A370FD2BBE504148E17AE402D65441295C8F522EBE504166666686FBD55441C3F5288C2CBE5041C3F5288CFAD55441AE47E1CA33BE50418FC2F5B8E9D55441EC51B8FE39BE5041F6285CAFD8D5544185EB512833BE5041E17A145ED1D554410AD7A31031BE504152B81E45D9D554419A9999F92EBE50410AD7A350DFD55441713D0A9727BE50410AD7A350ECD55441713D0A1720BE5041EC51B83EF8D55441AE47E1DA16BE5041E17A147E06D654415C8FC22516BE5041B81E85BB05D654413D0AD70312BE5041B81E853B01D65441C3F528AC0FBE5041D7A3707DFED55441295C8FB20DBE504152B81E45FBD5544152B81E750BBE5041C3F5288CF4D55441
+</a>
+
+<b>
+010600000001000000010300000001000000310000009A9999F92EBE50410AD7A350DFD554412AF41B502ABE5041C4599285E7D55441713D0A9727BE50410AD7A350ECD55441713D0A1720BE5041EC51B83EF8D55441A245B6D519BE5041044034E501D654414D982B7316BE50419239942407D6544160E5D06211BE504148E17A1C01D6544191ED7C170EBE504119045646FCD55441D122DBC90CBE5041E9263118F9D554411B876FE80ABE504138A2ED88F1D55441D9F6D7E404BE5041B45F0EC5F3D554417B14AE0705BE5041E17A14FEF3D5544152B81E5507BE50415C8FC29508D654410000003007BE50413D0AD76309D654419B14CE2807BE5041607EDF6109D654415FE2A09A04BE5041458C08AF08D65441666666B603BE50410AD7A37008D654412CEA502E02BE5041B16375F507D65441F853E3B5FEBD504148E17AF40ED65441C4068BA9FABD5041C9019C7418D6544117D9CE9FFABD50416ABC748B18D65441178A2CB6FBBD50416DA23FD318D65441BC749338FEBD5041736891B519D654415EBA491C00BE5041AAF1D2351AD65441EE7C3FA508BE504114AE47C11AD65441E781FA0A09BE504139471DC01AD654418961053F0CBE504104E2B7B61AD65441D4A5D68710BE50415E2209C31AD654413BDF4FB517BE5041295C8F121BD6544167AB70D817BE50418878282B1AD6544148E17A1418BE5041B81E857B18D65441D17A55D818BE5041E6AA7D9513D654413918C15419BE5041C347E36110D65441888E32F519BE5041B3C9A9390CD65441273108741ABE5041190456EE08D654413F355EF222BE5041B07268B105D65441D3680EA423BE504111AD971206D654412A1E4FDE25BE50419F63EEB106D65441E5D0223B29BE5041713D0A9F00D65441822C39B52BBE5041D27FC935FAD554414AA367FD31BE5041E27918DEEBD55441E17A14D635BE5041FCA9F1E2E2D554417799DFF339BE50418EA1089FD8D554415A81632733BE50417ADF9861D1D55441BD30B06232BE5041A3E67348D4D55441F853E30D32BE50417D3F35F6D5D55441BF81DAA031BE5041294F7C24D7D554410AD7A31031BE504152B81E45D9D554419A9999F92EBE50410AD7A350DFD55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>238919 - 3454429
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000002700000052B81E750BBE5041C3F5288CF4D554411F85EBE10ABE504166666666F2D5544148E17AA40ABE504100000080F1D55441E17A146E08BE50410AD7A3C0F2D554417B14AE0705BE5041E17A14FEF3D5544152B81E5507BE50415C8FC29508D654410000003007BE50413D0AD76309D65441666666B603BE50410AD7A37008D654417B14AED701BE5041A4703DDA07D65441AE47E16AFEBD50415C8FC2D50ED6544133333363FABD5041333333C317D65441333333F3FFBD5041713D0A3719D65441B81E85AB00BE5041713D0A6719D65441F6285CDF02BE50417B14AE071AD65441D7A3700D17BE5041AE47E1DA1FD65441D7A370CD17BE5041A4703D7A1AD6544148E17A1418BE5041B81E857B18D65441295C8FA21ABE50417B14AEC70AD65441D7A3705D1DBE5041E17A144E08D654419A9999991FBE5041D7A370ED06D654410AD7A3B021BE50413D0AD73306D654413D0AD77323BE504152B81E0506D65441295C8FA229BE5041F6285CBF07D65441D7A370FD2BBE504148E17AE402D65441295C8F522EBE504166666686FBD55441C3F5288C2CBE5041C3F5288CFAD55441AE47E1CA33BE50418FC2F5B8E9D55441EC51B8FE39BE5041F6285CAFD8D5544185EB512833BE5041E17A145ED1D554410AD7A31031BE504152B81E45D9D554419A9999F92EBE50410AD7A350DFD55441713D0A9727BE50410AD7A350ECD55441713D0A1720BE5041EC51B83EF8D55441AE47E1DA16BE5041E17A147E06D654415C8FC22516BE5041B81E85BB05D654413D0AD70312BE5041B81E853B01D65441C3F528AC0FBE5041D7A3707DFED55441295C8FB20DBE504152B81E45FBD5544152B81E750BBE5041C3F5288CF4D55441
+</a>
+
+<b>
+010600000001000000010300000001000000310000009A9999F92EBE50410AD7A350DFD554412AF41B502ABE5041C4599285E7D55441713D0A9727BE50410AD7A350ECD55441713D0A1720BE5041EC51B83EF8D55441A245B6D519BE5041044034E501D654414D982B7316BE50419239942407D6544160E5D06211BE504148E17A1C01D6544191ED7C170EBE504119045646FCD55441D122DBC90CBE5041E9263118F9D554411B876FE80ABE504138A2ED88F1D55441D9F6D7E404BE5041B45F0EC5F3D554417B14AE0705BE5041E17A14FEF3D5544152B81E5507BE50415C8FC29508D654410000003007BE50413D0AD76309D654419B14CE2807BE5041607EDF6109D654415FE2A09A04BE5041458C08AF08D65441666666B603BE50410AD7A37008D654412CEA502E02BE5041B16375F507D65441F853E3B5FEBD504148E17AF40ED65441C4068BA9FABD5041C9019C7418D6544117D9CE9FFABD50416ABC748B18D65441178A2CB6FBBD50416DA23FD318D65441BC749338FEBD5041736891B519D654415EBA491C00BE5041AAF1D2351AD65441EE7C3FA508BE504114AE47C11AD65441E781FA0A09BE504139471DC01AD654418961053F0CBE504104E2B7B61AD65441D4A5D68710BE50415E2209C31AD654413BDF4FB517BE5041295C8F121BD6544167AB70D817BE50418878282B1AD6544148E17A1418BE5041B81E857B18D65441D17A55D818BE5041E6AA7D9513D654413918C15419BE5041C347E36110D65441888E32F519BE5041B3C9A9390CD65441273108741ABE5041190456EE08D654413F355EF222BE5041B07268B105D65441D3680EA423BE504111AD971206D654412A1E4FDE25BE50419F63EEB106D65441E5D0223B29BE5041713D0A9F00D65441822C39B52BBE5041D27FC935FAD554414AA367FD31BE5041E27918DEEBD55441E17A14D635BE5041FCA9F1E2E2D554417799DFF339BE50418EA1089FD8D554415A81632733BE50417ADF9861D1D55441BD30B06232BE5041A3E67348D4D55441F853E30D32BE50417D3F35F6D5D55441BF81DAA031BE5041294F7C24D7D554410AD7A31031BE504152B81E45D9D554419A9999F92EBE50410AD7A350DFD55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>153318 - 55506
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000003D000000C3F5282CFA6451413D0AD7337CB0544148E17A74FA6451418FC2F52877B05441CDCCCC7CFB645141CDCCCC4C70B05441EC51B8FEFC645141D7A370FD6AB05441F6285CEFFE645141E17A142E66B054418FC2F59800655141EC51B89E62B054417B14AE170465514114AE47315EB0544185EB5168FE645141E17A145E5AB05441EC51B80EFE6451411F85EB215AB05441666666A6FD64514148E17A545DB0544100000090FD645141EC51B8AE5FB054415C8FC235FD6451419A9999A961B05441A4703D7AFC6451416666661663B054419A999929FB6451415C8FC2D565B05441C3F5286CF964514185EB51486AB05441713D0A57F8645141F6285C0F6CB0544152B81EC5F7645141E17A148E6EB0544152B81E85F76451413D0AD76370B054410AD7A380F7645141EC51B86E73B05441AE47E19AF6645141E17A14FE73B05441EC51B8EEF4645141EC51B87E72B05441B81E85EBF3645141A4703DCA70B05441AE47E1FAF264514185EB51D86EB05441A4703DDAF26451415C8FC2856CB05441B81E85ABF3645141333333536AB05441EC51B8EEF4645141A4703DBA68B05441295C8F22F76451417B14AEF766B05441666666D6F7645141C3F528BC65B05441A4703D1AF86451413333335364B0544185EB5128F964514148E17AD462B054413D0AD763FA645141EC51B8FE60B05441333333E3FA6451415C8FC2655EB054413D0AD723FB645141295C8F925BB054413D0AD783FB645141EC51B84E58B0544152B81E55FC645141666666A650B0544148E17AF4FB645141000000304BB054413D0AD713FB645141B81E850B47B054411F85EBB1F96451417B14AE7743B05441F6285C0FF764514148E17A8440B05441E17A145EF3645141CDCCCCBC3EB05441EC51B8CEF0645141EC51B8CE3EB05441295C8F62ED64514185EB51983DB05441AE47E1FAEB6451418FC2F5183DB05441A4703D8AE4645141F6285C4F3BB054419A9999B9E46451418FC2F5183CB054417B14AE27E6645141AE47E10A41B0544185EB51D8E964514148E17A4444B05441B81E851BEC64514152B81E0547B0544185EB51F8ED645141000000304DB0544114AE4721EE645141E17A14BE54B0544185EB5108EE645141B81E855B59B054418FC2F5D8ED645141EC51B82E62B05441B81E859BED645141AE47E1AA6DB05441295C8F82ED6451416666665672B054418FC2F558EF645141E17A146E73B054418FC2F508F2645141C3F528FC74B05441CDCCCCCCF3645141AE47E1EA76B054418FC2F578F4645141666666A679B0544100000030F5645141333333237DB054410AD7A330FA645141295C8F027DB05441C3F5282CFA6451413D0AD7337CB05441
+</a>
+
+<b>
+010600000001000000010300000001000000900000002BF681A3FA6451415354D6E845B0544115649048F9645141C6B2BA0143B054414EFD1FF9F8645141A630CBA842B05441CC494FE4F8645141AF787D9142B054411CBCF090F8645141F787273442B05441ED5C8FE6F764514139F0677541B05441D5AC15C2F7645141FDFA914C41B054413E5ACE95F6645141F148E24940B05441923D2EA3F564514161A1ECD43FB054412B52F96FF46451413233D5403FB0544195C6ED53F4645141BB3D50333FB05441E17A145EF3645141CDCCCCBC3EB054410BBB7209F36451410C391DBF3EB05441373A6FD6F0645141925182CE3EB05441EC51B8CEF0645141EC51B8CE3EB054415B6DBF96EF645141595432603EB0544127CCF494EF645141A112945F3EB054411162C0E7ED645141CA9481C73DB0544138FCF022EA645141E2FE92A73CB054419D3993F1E9645141AFB4B69B3CB0544110B76DC5E964514110751B913CB054413F01321FE8645141BFD7A92B3CB05441BBBF988DE76451411DBEAE083CB054416399F628E7645141653F81F03BB05441FE020F04E6645141A10922AA3BB05441C593FD81E56451416426E28A3BB05441CC2B36A2E464514141BB66B53BB05441B2F3F665E6645141BCD6504141B05441A82A5D26E7645141B83878E941B05441AF64AC7EE7645141F091A63642B054412A7E9E8CE8645141692D942243B0544185EB51D8E964514148E17A4444B0544170FA72FEE964514178EFDD7244B05441D60A82B3EA6451414576234F45B05441B81E851BEC64514152B81E0547B0544185EB51F8ED645141000000304DB05441A72CEF0DEE645141945B992C51B054411C89C511EE6451412B39CBE151B0544114AE4721EE645141E17A14BE54B0544165F22221EE6451419B2EDFC454B05441F570EA04EE645141178583035AB05441B67BC3E8ED6451413A24DC3E5FB05441691607D9ED6451413BF57F2B62B054412C399DCCED645141262B857D64B05441B8F1CEC9ED64514116D1C90365B0544112B2DDB7ED645141FAE6675E68B05441B9BFF7A0ED645141B4792EA66CB054417BF20F9BED645141F913EAC06DB05441FCE9588DED645141C32E2A5570B054414EA793D7ED645141EE87F28872B054418262B659EE645141A91052D672B054414F3A36D0EE645141547AC61C73B0544116A58EF7EF6451414057D8C973B05441C2F8EADAF064514193A2654D74B05441A263481FF16451416009F47474B054418FC2F508F2645141C3F528FC74B054416DB35314F3645141957AE62076B05441CDCCCCCCF3645141AE47E1EA76B0544162B540EBF3645141A3979D6677B054418FC2F578F4645141666666A679B05441C76D33B5F4645141197A3BCC7AB054413312FDE2F4645141B83891AB7BB0544100000030F5645141333333237DB054416CEBC0B7F56451418471BD1F7DB05441B134DF46F664514150A2171C7DB0544164E5CA15F8645141BA324B107DB0544187E547E8F86451413CD1ED0A7DB05441E1B8B981F9645141A1A104077DB0544156DC522FFA645141022CD2C57CB05441C3F5282CFA6451413D0AD7337CB0544148E17A74FA6451418FC2F52877B05441CDCCCC7CFB645141CDCCCC4C70B0544142AEF39EFB6451413FFB80D46FB05441C6349A3BFC6451411A53B8AC6DB05441EC51B8FEFC645141D7A370FD6AB0544118056FD0FD64514120D57AF568B0544121C4F1A5FE6451418FF31AE466B05441F6285CEFFE645141E17A142E66B054418FC2F59800655141EC51B89E62B054417B14AE170465514114AE47315EB0544185EB5168FE645141E17A145E5AB05441BA6C3A3AFE64514134F6213F5AB05441BBC92EECFD6451417AB6EB305BB05441635E2DE2FD64514128366E7F5BB054415F4463B7FD6451418EF22ECF5CB05441F64E999DFD64514120DB1A415EB05441C4D31198FD6451417C14C3D55EB0544100000090FD645141EC51B8AE5FB054415C8FC235FD6451419A9999A961B05441295BFFE8FC64514190E7EE3E62B05441DC0B1419FC64514106B767E163B0544127D68070FB6451415A359E4165B054417A8630EBFA6451418E83487566B054411466183EFA6451415ED6B72F68B054411B30D1D8F9645141ACAE963269B05441C3F5286CF964514185EB51486AB05441B5E6A4C1F86451410F0350606BB054413C7FD81EF8645141535555056DB054415F1ABDF7F7645141072383B06DB0544126FBAC98F76451417D154DD46FB054411EB0F283F764514129C1992F71B05441DAD35B83F7645141F3E90D9671B054410AD7A380F7645141EC51B86E73B0544172857CFCF66451411A8E2DC173B05441AE47E19AF6645141E17A14FE73B05441EC51B8EEF4645141EC51B87E72B05441FAD2A7E0F46451414443096772B05441D4BE30C2F4645141D5FFBB3372B05441B81E85EBF3645141A4703DCA70B05441AE47E1FAF264514185EB51D86EB05441BBBC37F6F26451412EB864836EB05441A4703DDAF26451415C8FC2856CB05441DEE75216F36451411B0D40E46BB05441B81E85ABF3645141333333536AB05441EC51B8EEF4645141A4703DBA68B054411002EF12F5645141D24E4D9D68B054411DACA34DF7645141A17919AC66B05441F3D78A4FF764514122C2C2A866B05441FDA1917DF76451417176025866B054419DF6B40DF8645141A5B7E29564B05441A4703D1AF86451413333335364B05441F816F5C8F8645141575D9D5B63B05441A17A238EF96451416E55E33C62B05441633B174FFA645141C3C59C1D61B054414376B1B1FA645141D47B3D685FB05441C196C11BFB645141F79F00ED5BB054413D0AD723FB645141295C8F925BB054417D9C7452FB6451418CBBB1FC59B054415D883AA1FB6451419DF86F3B57B0544112C7D3B0FB645141105B53A956B05441B7191DCEFB6451419723009755B05441D40F49D6FB6451415DCB744A55B05441F5016510FC6451412538262A53B05441094DAA50FC6451412D4FF06550B05441F1635946FC64514130CFA9D04FB054412F82583FFC645141DE73526B4FB054415D6BB51AFC645141562B2D594DB054418CA4C517FC645141E3CFAE2E4DB05441BE8FF60BFC645141BC39CE834CB054412CA53E05FC645141F7B196224CB0544155926CAAFB64514135A965D249B05441B163104CFB6451410F36F11448B05441A1E4DE3EFB645141F1BBA8D647B054412BF681A3FA6451415354D6E845B05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>239054 - 59017
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001B0000001F85EBA15FC1504114AE47A1F7D05441333333F35FC150413D0AD783F3D054417B14AE1760C1504185EB51E8E9D05441D7A370ED5FC15041E17A145ED9D0544114AE47E15FC15041295C8FC2D7D054413D0AD7335FC150411F85EB71C4D054419A9999995EC150411F85EBB1B3D05441000000E05CC1504185EB517892D054413D0AD7035DC150411F85EB618CD054413D0AD7F35DC150410AD7A36086D05441B81E85AB5FC15041C3F5287C80D054417B14AE4761C15041713D0AC77CD0544152B81EC53BC150413D0AD73370D054413D0AD7133EC15041CDCCCC9C76D054417B14AEF740C15041B81E85EB7FD054411F85EB7143C15041E17A140E89D05441CDCCCC9C45C15041713D0A9792D05441A4703D1A47C15041666666669CD05441D7A3704D48C150418FC2F598A8D054419A9999B948C1504185EB5178B4D0544114AE47C148C150415C8FC285C0D054410AD7A36048C15041CDCCCCBCCCD05441EC51B84E48C150419A999979CED0544114AE475147C15041713D0A27D9D054418FC2F5B845C1504100000050E7D0544185EB511845C15041000000E0EAD054411F85EBA15FC1504114AE47A1F7D05441
+</a>
+
+<b>
+010600000001000000010300000001000000560000008FC2F5B845C1504100000050E7D0544128042EB845C15041E1006E54E7D05441686217B145C15041CB2F1391E7D0544147788A1945C150414DF8B9DEEAD05441DD21F15658C15041733DEF1FF4D054411F85EBA15FC1504114AE47A1F7D05441333333F35FC150413D0AD783F3D054417B14AE1760C1504185EB51E8E9D054418E22631260C150415CF2C2D5E7D0544134F5250F60C15041B8DDBB6FE7D054419624C30B60C150412F97A83DE5D05441E694CB0660C150419E34C04BE3D05441A774E1FE5FC15041166D6032E0D054419A73E6F65FC150418E15FF9BDDD05441FE7CF1EC5FC15041AE65454DD9D0544114AE47E15FC15041295C8FC2D7D05441393434955FC1504189A1B049CFD054414BFBA07A5FC15041E2CEE864CCD054411E089E695FC1504125C9116FCAD054413D0AD7335FC150411F85EB71C4D054416BFDB69B5EC15041D79BB6ECB3D05441E4AA236E5EC15041D362D46CB0D054414418FEC35DC15041A7A8A79FA3D05441820D12BD5DC1504188FCC71BA3D054419875DC465DC150419744863A9AD054414AAEBED95CC15041D3D8200F92D05441BE60D6E25CC15041D773F1FC91D054413D0AD7035DC150411F85EB618CD05441552A1C045DC15041BEBF30608CD0544118D12D045DC150416287365D8CD05441B3C1B8FC5DC150419F0CDF1F86D05441BFC1B8FC5DC15041697E263B86D05441F02E83045FC1504116AE23B982D05441B81E85AB5FC15041C3F5287C80D05441B6A11E4761C15041749254C87CD05441EF938C4E5CC150417C083B1C7BD05441FFC1811757C150414670AA5C79D05441F8E18CE455C1504142ADC2F578D054413015670752C15041286502AB77D054414821C46249C150417D8369C474D054417733954749C1504171C844BB74D0544171FAB65B46C150417DEA8CC073D05441B52BADC53BC15041B5CB063470D05441FB7D6C093DC150416C01A7B673D05441E5DC15713DC15041632EAFD874D054413D0AD7133EC15041CDCCCC9C76D05441D6CD871B3EC15041DB6091B576D0544108B156263EC15041BCC6CED376D05441498570553FC1504128D8D2A67AD0544152B2DF0641C1504190651E1C80D05441C7D165C341C15041B736AADA82D054411F85EB7143C15041E17A140E89D05441826D2B7643C150413345C62089D05441C0CC5A8043C150416AA21E4689D05441D2A9C6E643C15041E48123108BD05441CDCCCC9C45C15041713D0A9792D054419F8FFB9C45C150410B1C3E9892D0544115C1E79E45C1504166E29DA092D05441D1116AC245C150412451B08E93D05441A4703D1A47C15041666666669CD05441A4BAF31B47C15041F76CCD779CD05441A9FACF1C47C15041267B727D9CD054417FC8EBEA47C15041B1F6CFA5A4D054416AAFF95148C1504102DC6AB2A8D0544103B0CA6648C15041ACEF5B61ABD054419A9999B948C1504185EB5178B4D05441AEDBEFBA48C150414B1E7091B6D05441C17617BF48C15041AA088965B8D0544147DE0FBD48C150411B332CE7B9D0544189368CBE48C15041E6B30F3CBCD05441F6661FC248C1504166219184BED05441FA661FC248C150414E975DBBC0D05441DFBB049E48C15041E203BDFAC4D0544197E4716848C15041139240C0CBD05441B39F015548C150410CFFD646CED0544130E8DBE447C15041D3AE0EF1D2D05441E17804CE47C1504179C9B3E5D3D054411E6D126547C1504129979351D8D05441A3CE665647C15041F545D7F7D8D05441E1EE245247C1504165F2B71DD9D0544114AE475147C15041713D0A27D9D05441D540CAFC46C1504112BB1E15DCD05441D7004B8846C150418DF09921E0D0544140D45ECC45C1504137F0AFA7E6D05441282CEEBF45C15041D1711E12E7D054418FC2F5B845C1504100000050E7D05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>239054 - 120152
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001B0000001F85EBA15FC1504114AE47A1F7D05441333333F35FC150413D0AD783F3D054417B14AE1760C1504185EB51E8E9D05441D7A370ED5FC15041E17A145ED9D0544114AE47E15FC15041295C8FC2D7D054413D0AD7335FC150411F85EB71C4D054419A9999995EC150411F85EBB1B3D05441000000E05CC1504185EB517892D054413D0AD7035DC150411F85EB618CD054413D0AD7F35DC150410AD7A36086D05441B81E85AB5FC15041C3F5287C80D054417B14AE4761C15041713D0AC77CD0544152B81EC53BC150413D0AD73370D054413D0AD7133EC15041CDCCCC9C76D054417B14AEF740C15041B81E85EB7FD054411F85EB7143C15041E17A140E89D05441CDCCCC9C45C15041713D0A9792D05441A4703D1A47C15041666666669CD05441D7A3704D48C150418FC2F598A8D054419A9999B948C1504185EB5178B4D0544114AE47C148C150415C8FC285C0D054410AD7A36048C15041CDCCCCBCCCD05441EC51B84E48C150419A999979CED0544114AE475147C15041713D0A27D9D054418FC2F5B845C1504100000050E7D0544185EB511845C15041000000E0EAD054411F85EBA15FC1504114AE47A1F7D05441
+</a>
+
+<b>
+010600000001000000010300000001000000560000008FC2F5B845C1504100000050E7D054412A042EB845C15041E5006E54E7D05441676217B145C15041C82F1391E7D0544149788A1945C1504149F8B9DEEAD05441E121F15658C15041703DEF1FF4D054411F85EBA15FC1504114AE47A1F7D05441333333F35FC150413D0AD783F3D054417B14AE1760C1504185EB51E8E9D054418F22631260C1504158F2C2D5E7D0544132F5250F60C15041BCDDBB6FE7D054419824C30B60C150412E97A83DE5D05441E994CB0660C150419934C04BE3D05441A574E1FE5FC15041136D6032E0D054419D73E6F65FC150418A15FF9BDDD05441FB7CF1EC5FC15041B065454DD9D0544114AE47E15FC15041295C8FC2D7D054413A3434955FC1504188A1B049CFD054414DFBA07A5FC15041E1CEE864CCD054411E089E695FC1504120C9116FCAD054413D0AD7335FC150411F85EB71C4D054416DFDB69B5EC15041D39BB6ECB3D05441E0AA236E5EC15041CE62D46CB0D054414918FEC35DC15041A6A8A79FA3D054417E0D12BD5DC1504183FCC71BA3D054419775DC465DC150419344863A9AD0544146AEBED95CC15041D3D8200F92D05441C060D6E25CC15041D673F1FC91D054413D0AD7035DC150411F85EB618CD05441582A1C045DC15041BBBF30608CD0544114D12D045DC150416687365D8CD05441B3C1B8FC5DC15041A00CDF1F86D05441BDC1B8FC5DC15041647E263B86D05441F42E83045FC150411BAE23B982D05441B81E85AB5FC15041C3F5287C80D05441B6A11E4761C15041749254C87CD05441ED938C4E5CC150417F083B1C7BD0544102C2811757C150414170AA5C79D05441FBE18CE455C1504144ADC2F578D054412D15670752C150412A6502AB77D054414D21C46249C150417C8369C474D054417933954749C1504171C844BB74D0544173FAB65B46C150417FEA8CC073D05441B22BADC53BC15041B7CB063470D05441F87D6C093DC150416C01A7B673D05441E1DC15713DC15041612EAFD874D054413D0AD7133EC15041CDCCCC9C76D05441D5CD871B3EC15041DB6091B576D0544107B156263EC15041B8C6CED376D054414E8570553FC150412AD8D2A67AD054414DB2DF0641C1504191651E1C80D05441CCD165C341C15041B536AADA82D054411F85EB7143C15041E17A140E89D05441826D2B7643C150413445C62089D05441C0CC5A8043C150416DA21E4689D05441D3A9C6E643C15041E58123108BD05441CDCCCC9C45C15041713D0A9792D05441A38FFB9C45C15041101C3E9892D054411AC1E79E45C1504169E29DA092D05441CC116AC245C150412151B08E93D05441A4703D1A47C15041666666669CD05441A2BAF31B47C15041FB6CCD779CD05441AAFACF1C47C15041277B727D9CD054417BC8EBEA47C15041AEF6CFA5A4D054416EAFF95148C1504101DC6AB2A8D0544107B0CA6648C15041AAEF5B61ABD054419A9999B948C1504185EB5178B4D05441B0DBEFBA48C150414B1E7091B6D05441BF7617BF48C15041A8088965B8D0544144DE0FBD48C150411A332CE7B9D0544185368CBE48C15041E8B30F3CBCD05441F9661FC248C1504166219184BED05441F9661FC248C150414A975DBBC0D05441DCBB049E48C15041E203BDFAC4D0544194E4716848C15041169240C0CBD05441B39F015548C150410BFFD646CED0544133E8DBE447C15041CFAE0EF1D2D05441E17804CE47C150417BC9B3E5D3D05441206D126547C150412C979351D8D05441A1CE665647C15041F845D7F7D8D05441E2EE245247C1504160F2B71DD9D0544114AE475147C15041713D0A27D9D05441D640CAFC46C1504117BB1E15DCD05441DA004B8846C150418CF09921E0D0544141D45ECC45C1504133F0AFA7E6D05441232CEEBF45C15041D0711E12E7D054418FC2F5B845C1504100000050E7D05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>239054 - 320328
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001B0000001F85EBA15FC1504114AE47A1F7D05441333333F35FC150413D0AD783F3D054417B14AE1760C1504185EB51E8E9D05441D7A370ED5FC15041E17A145ED9D0544114AE47E15FC15041295C8FC2D7D054413D0AD7335FC150411F85EB71C4D054419A9999995EC150411F85EBB1B3D05441000000E05CC1504185EB517892D054413D0AD7035DC150411F85EB618CD054413D0AD7F35DC150410AD7A36086D05441B81E85AB5FC15041C3F5287C80D054417B14AE4761C15041713D0AC77CD0544152B81EC53BC150413D0AD73370D054413D0AD7133EC15041CDCCCC9C76D054417B14AEF740C15041B81E85EB7FD054411F85EB7143C15041E17A140E89D05441CDCCCC9C45C15041713D0A9792D05441A4703D1A47C15041666666669CD05441D7A3704D48C150418FC2F598A8D054419A9999B948C1504185EB5178B4D0544114AE47C148C150415C8FC285C0D054410AD7A36048C15041CDCCCCBCCCD05441EC51B84E48C150419A999979CED0544114AE475147C15041713D0A27D9D054418FC2F5B845C1504100000050E7D0544185EB511845C15041000000E0EAD054411F85EBA15FC1504114AE47A1F7D05441
+</a>
+
+<b>
+010600000001000000010300000001000000560000008FC2F5B845C1504100000050E7D054412A042EB845C15041E5006E54E7D05441676217B145C15041C82F1391E7D0544149788A1945C1504149F8B9DEEAD05441E121F15658C15041703DEF1FF4D054411F85EBA15FC1504114AE47A1F7D05441333333F35FC150413D0AD783F3D054417B14AE1760C1504185EB51E8E9D054418F22631260C1504158F2C2D5E7D0544132F5250F60C15041BCDDBB6FE7D054419824C30B60C150412E97A83DE5D05441E994CB0660C150419934C04BE3D05441A574E1FE5FC15041136D6032E0D054419D73E6F65FC150418A15FF9BDDD05441FB7CF1EC5FC15041B065454DD9D0544114AE47E15FC15041295C8FC2D7D054413A3434955FC1504188A1B049CFD054414DFBA07A5FC15041E1CEE864CCD054411E089E695FC1504120C9116FCAD054413D0AD7335FC150411F85EB71C4D054416DFDB69B5EC15041D39BB6ECB3D05441E0AA236E5EC15041CE62D46CB0D054414918FEC35DC15041A6A8A79FA3D054417E0D12BD5DC1504183FCC71BA3D054419775DC465DC150419344863A9AD0544146AEBED95CC15041D3D8200F92D05441C060D6E25CC15041D673F1FC91D054413D0AD7035DC150411F85EB618CD05441582A1C045DC15041BBBF30608CD0544114D12D045DC150416687365D8CD05441B3C1B8FC5DC15041A00CDF1F86D05441BDC1B8FC5DC15041647E263B86D05441F42E83045FC150411BAE23B982D05441B81E85AB5FC15041C3F5287C80D05441B6A11E4761C15041749254C87CD05441ED938C4E5CC150417F083B1C7BD0544102C2811757C150414170AA5C79D05441FBE18CE455C1504144ADC2F578D054412D15670752C150412A6502AB77D054414D21C46249C150417C8369C474D054417933954749C1504171C844BB74D0544173FAB65B46C150417FEA8CC073D05441B22BADC53BC15041B7CB063470D05441F87D6C093DC150416C01A7B673D05441E1DC15713DC15041612EAFD874D054413D0AD7133EC15041CDCCCC9C76D05441D5CD871B3EC15041DB6091B576D0544107B156263EC15041B8C6CED376D054414E8570553FC150412AD8D2A67AD054414DB2DF0641C1504191651E1C80D05441CCD165C341C15041B536AADA82D054411F85EB7143C15041E17A140E89D05441826D2B7643C150413445C62089D05441C0CC5A8043C150416DA21E4689D05441D3A9C6E643C15041E58123108BD05441CDCCCC9C45C15041713D0A9792D05441A38FFB9C45C15041101C3E9892D054411AC1E79E45C1504169E29DA092D05441CC116AC245C150412151B08E93D05441A4703D1A47C15041666666669CD05441A2BAF31B47C15041FB6CCD779CD05441AAFACF1C47C15041277B727D9CD054417BC8EBEA47C15041AEF6CFA5A4D054416EAFF95148C1504101DC6AB2A8D0544107B0CA6648C15041AAEF5B61ABD054419A9999B948C1504185EB5178B4D05441B0DBEFBA48C150414B1E7091B6D05441BF7617BF48C15041A8088965B8D0544144DE0FBD48C150411A332CE7B9D0544185368CBE48C15041E8B30F3CBCD05441F9661FC248C1504166219184BED05441F9661FC248C150414A975DBBC0D05441DCBB049E48C15041E203BDFAC4D0544194E4716848C15041169240C0CBD05441B39F015548C150410BFFD646CED0544133E8DBE447C15041CFAE0EF1D2D05441E17804CE47C150417BC9B3E5D3D05441206D126547C150412C979351D8D05441A1CE665647C15041F845D7F7D8D05441E2EE245247C1504160F2B71DD9D0544114AE475147C15041713D0A27D9D05441D640CAFC46C1504117BB1E15DCD05441DA004B8846C150418CF09921E0D0544141D45ECC45C1504133F0AFA7E6D05441232CEEBF45C15041D0711E12E7D054418FC2F5B845C1504100000050E7D05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>872592 - 3182900
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001C00000033333303AF845141295C8FC29F995441295C8FB2AA845141C3F528BC98995441D7A370FDA5845141295C8F1292995441A4703D1AA38451411F85EB218D995441666666D69E84514114AE47918F995441CDCCCC6C9C8451418FC2F52891995441295C8FA298845141000000509399544185EB51589684514185EB51889499544185EB51488E845141295C8FA29899544114AE47618C845141CDCCCCEC99995441666666468B845141666666A69A995441CDCCCC2C898451410AD7A3E09B99544152B81EE58984514185EB5108A19954418FC2F5188B8451419A999919A6995441B81E850B8A845141AE47E14AAC9954413D0AD7538A8451417B14AEA7B39954410AD7A3608D84514114AE47E1B2995441CDCCCC0C93845141B81E857BB199544185EB51589584514114AE47F1B0995441E17A14AE96845141AE47E19AB0995441000000D09984514152B81E05B09954418FC2F5A89D84514100000030AF9954413D0AD783A1845141F6285C6FAE9954417B14AE97A684514100000010AC99544133333393AD8451419A999979A8995441CDCCCC1CB1845141295C8F22A5995441F6285CEFAF845141E17A142EA299544133333303AF845141295C8FC29F995441
+</a>
+
+<b>
+0106000000010000000103000000010000001100000075A72561B0845141A5CC272FA49954418A18B789AB845141F527F029A7995441FE4C1EEEA6845141A4E44AB0A9995441CF076FE3A384514148B55566AB995441A7AFEAAF9F8451410473EFE8AD99544178F0D3079F845141E0ED0D52AE99544186C8635D9E8451416784A4BCAE995441B4DC37069E845141EE6628F3AE995441AF3A86B19D845141F79D1F28AF995441D0E6DF5C9E84514107ACFCF6AE995441621C38B9A3845141B3C896BAAC9954415FEFD632B1845141FD31C0DEA5995441C080481AB18451412D763E1CA5995441814511E5B08451418B39B296A499544141B6C3B8B08451418EF78327A4995441AA7E28ABB08451411DA55E05A499544175A72561B0845141A5CC272FA4995441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>872592 - 3582367
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001C00000033333303AF845141295C8FC29F995441295C8FB2AA845141C3F528BC98995441D7A370FDA5845141295C8F1292995441A4703D1AA38451411F85EB218D995441666666D69E84514114AE47918F995441CDCCCC6C9C8451418FC2F52891995441295C8FA298845141000000509399544185EB51589684514185EB51889499544185EB51488E845141295C8FA29899544114AE47618C845141CDCCCCEC99995441666666468B845141666666A69A995441CDCCCC2C898451410AD7A3E09B99544152B81EE58984514185EB5108A19954418FC2F5188B8451419A999919A6995441B81E850B8A845141AE47E14AAC9954413D0AD7538A8451417B14AEA7B39954410AD7A3608D84514114AE47E1B2995441CDCCCC0C93845141B81E857BB199544185EB51589584514114AE47F1B0995441E17A14AE96845141AE47E19AB0995441000000D09984514152B81E05B09954418FC2F5A89D84514100000030AF9954413D0AD783A1845141F6285C6FAE9954417B14AE97A684514100000010AC99544133333393AD8451419A999979A8995441CDCCCC1CB1845141295C8F22A5995441F6285CEFAF845141E17A142EA299544133333303AF845141295C8FC29F995441
+</a>
+
+<b>
+0106000000010000000103000000010000001100000075A72561B0845141A5CC272FA49954418A18B789AB845141F527F029A7995441FE4C1EEEA6845141A4E44AB0A9995441CF076FE3A384514148B55566AB995441A7AFEAAF9F8451410473EFE8AD99544178F0D3079F845141E0ED0D52AE99544186C8635D9E8451416784A4BCAE995441B4DC37069E845141EE6628F3AE995441AF3A86B19D845141F79D1F28AF995441D0E6DF5C9E84514107ACFCF6AE995441621C38B9A3845141B3C896BAAC9954415FEFD632B1845141FD31C0DEA5995441C080481AB18451412D763E1CA5995441814511E5B08451418B39B296A499544141B6C3B8B08451418EF78327A4995441AA7E28ABB08451411DA55E05A499544175A72561B0845141A5CC272FA4995441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>317104 - 290020
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000130000009A999909CD4751411F85EBB148025541CDCCCCFCD0475141000000D043025541F6285CCFD3475141333333E340025541E17A143ED6475141AE47E19A3E02554148E17A04D947514114AE47613C025541AE47E1AADE475141295C8F2238025541E17A140EE3475141713D0AA73502554185EB5158E6475141C3F5283C3402554133333343E3475141E17A14EE3002554185EB5118D9475141A4703D0A260255411F85EBA1D547514152B81E55220255413D0AD703CC47514133333393420255410AD7A390CA4751419A999929460255411F85EBB1C84751410000007049025541F6285CAFC547514114AE47714C025541C3F5289CC5475141CDCCCC3C4D02554185EB51E8C6475141D7A370FD4C025541F6285C3FCA47514148E17A944B0255419A999909CD4751411F85EBB148025541
+</a>
+
+<b>
+0106000000010000000103000000010000002400000000000090DF475141AE47E1FA4D025541822B36CDEC475141DA3699DD4B025541484421B3ED475141F5234BB34B025541814A81DAED475141D92397B24B025541713D0A97EE47514148E17A944B02554152B81E15F94751411F85EB814C0255417FC5A4B9F74751413377F04547025541CECD977CF54751415B4B9BEF3F0255411F36654FF54751419E0E21993F0255411122647CF4475141522469053E025541ACCE1A3AF4475141896795863D0255413091A553F2475141B703B1703A025541DF300EDAF1475141E67054B3390255412A02D87CF147514153662A22390255413E12C862F14751414BC893F93802554114AE4771EE475141B81E859B350255414D49F696EB475141551356F233025541AB0E5151EB475141CAD6B9F0330255419D68401DEB47514184A985EF33025541DED73741E947514132EFAB0F340255412BAA176DE6475141AF66D7AA34025541B79B1FD4E0475141BE3987E93602554183BD3FBCE0475141C26409F736025541D571E556E04751413D1E623037025541D2D74736E0475141316CD64237025541DC64F7B0DE47514155D0552A39025541ABF983F9D9475141FCD7DB8C3C0255412C3DA2E3D8475141793FAA8E3D02554183ED2F7CD8475141AA0648913E025541D6AE66DED6475141A4F59EC73F02554128709D40D547514182FB0568420255412307B008D04751414297ADA24A0255416EC02708D0475141815D4CBB4A025541584D45F4D3475141FD6D43B94F02554185EB5168D44751415C8FC2455002554100000090DF475141AE47E1FA4D025541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>243408 - 254534
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000260000009A999929791A51419A9999E9331C55418FC2F588761A51419A999919361C5541AE47E14A761A5141CDCCCC9C371C5541A4703DAA751A5141A4703DDA381C5541C3F528DC741A5141AE47E1BA391C55413D0AD783731A51415C8FC215391C554185EB5178711A5141C3F5280C371C5541F6285C2F6F1A5141D7A3703D3A1C55411F85EB916D1A5141AE47E1DA3A1C5541F6285C7F651A5141CDCCCC7C431C55415C8FC225601A51419A9999B94A1C55411F85EB915C1A5141333333134F1C5541CDCCCCCC581A5141C3F5282C551C5541CDCCCCAC561A51410AD7A300591C5541EC51B86E541A51415C8FC2955B1C554152B81E75541A51417B14AEB75C1C5541000000E05B1A51410AD7A330601C5541AE47E17A5C1A5141B81E855B601C554152B81E855D1A5141EC51B83E5F1C5541666666765E1A51411F85EBB15E1C554148E17AF45E1A5141CDCCCC5C5D1C5541F6285C6F651A5141F6285C8F531C55410AD7A3C0681A51419A9999894E1C554148E17A246A1A5141E17A142E4C1C554114AE47616A1A5141713D0A974A1C5541666666F66A1A5141D7A370CD481C55415C8FC2256B1A5141B81E853B481C55415C8FC2F56B1A5141A4703D5A441C5541000000B06C1A5141AE47E1AA431C55415C8FC2F56D1A514185EB5178421C5541333333D3791A5141E17A148E3D1C5541CDCCCC5C881A5141B81E857B441C554148E17A94881A51419A999929441C55418FC2F598911A514148E17AE4371C554114AE47517E1A514152B81EB52E1C554152B81E357C1A51419A999919311C55411F85EB117A1A5141E17A14FE311C55419A999929791A51419A9999E9331C5541
+</a>
+
+<b>
+0106000000010000000103000000010000003C000000C3F528DC741A5141AE47E1BA391C55416C3423A4741A5141A3A203A0391C55416175A045731A514185F7CB3B3A1C554114D812CE701A5141E84F174A3C1C55415242519E6D1A51414281500E3B1C55413C8B18756D1A51417725B4F93A1C55414B0536306C1A5141645120553C1C5541EB285C7F651A5141EDCCCC7C431C5541478FC225601A5141BA9999B94A1C55411F85EB915C1A5141693333134F1C5541D506530F5B1A5141B9447884511C5541CDCCCCCC581A5141C3F5282C551C554151671168571A5141C6F31DAF571C5541D8CCCCAC561A514120D7A300591C55413C174682551A5141337E6D585A1C5541EC51B86E541A51415C8FC2955B1C554152B81E75541A51417014AEB75C1C554152A96255571A51413DC55C105E1C5541000000E05B1A51410AD7A330601C55418D04410B5C1A51419D829D3C601C5541CE47E17A5C1A51418D1E855B601C554147B81E855D1A5141E151B83E5F1C55415FAF55A85D1A514100992B2A5F1C5541666666765E1A51411F85EBB15E1C5541B31E23BB5E1A5141CC1EF2F75D1C554112E17AF45E1A514197CCCC5C5D1C55414AA0439E601A514199F0B3D85A1C55418C444F3C621A5141EFFE5C66581C5541849690DA631A5141C0D9B4F3551C5541C27113D3641A51418B9AC67B541C554190578360661A514120B94422521C554132262E86661A514174143EE9511C554100D7A3C0681A51419A9999894E1C5541AA12DCFA681A5141AE60DB264E1C554148E17A246A1A5141E17A142E4C1C5541D3C6BD586A1A5141A04934D04A1C55410AAE47616A1A5141863D0A974A1C55413B6666F66A1A5141EDA370CD481C5541318FC2256B1A5141EE1E853B481C55413C8FC2F56B1A5141AF703D5A441C5541E0FFFFAF6C1A51418347E1AA431C5541B0C2F568751A51413D0AD7733B1C55415342E6D2791A51412F5A348E3D1C5541333333D3791A5141E17A148E3D1C5541AC8EC15C881A514137C37F7B441C5541443F8789881A5141337CB639441C554148E17A94881A51419A999929441C55417C7CAF978A1A5141F3F8906C411C554179C2F598911A51413EE17AE4371C5541934317EA7E1A5141584EEBFD2E1C554114AE47517E1A514152B81EB52E1C554152B81E357C1A51419A999919311C55411F85EB117A1A5141E17A14FE311C55419A999929791A51419A9999E9331C55416C54ADE6761A5141E5A593CB351C554177CDB7DD761A5141251A09D3351C55418FC2F588761A51419A999919361C5541AE47E14A761A5141CDCCCC9C371C5541A4703DAA751A5141A4703DDA381C5541C3F528DC741A5141AE47E1BA391C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>243408 - 382330
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000260000009A999929791A51419A9999E9331C55418FC2F588761A51419A999919361C5541AE47E14A761A5141CDCCCC9C371C5541A4703DAA751A5141A4703DDA381C5541C3F528DC741A5141AE47E1BA391C55413D0AD783731A51415C8FC215391C554185EB5178711A5141C3F5280C371C5541F6285C2F6F1A5141D7A3703D3A1C55411F85EB916D1A5141AE47E1DA3A1C5541F6285C7F651A5141CDCCCC7C431C55415C8FC225601A51419A9999B94A1C55411F85EB915C1A5141333333134F1C5541CDCCCCCC581A5141C3F5282C551C5541CDCCCCAC561A51410AD7A300591C5541EC51B86E541A51415C8FC2955B1C554152B81E75541A51417B14AEB75C1C5541000000E05B1A51410AD7A330601C5541AE47E17A5C1A5141B81E855B601C554152B81E855D1A5141EC51B83E5F1C5541666666765E1A51411F85EBB15E1C554148E17AF45E1A5141CDCCCC5C5D1C5541F6285C6F651A5141F6285C8F531C55410AD7A3C0681A51419A9999894E1C554148E17A246A1A5141E17A142E4C1C554114AE47616A1A5141713D0A974A1C5541666666F66A1A5141D7A370CD481C55415C8FC2256B1A5141B81E853B481C55415C8FC2F56B1A5141A4703D5A441C5541000000B06C1A5141AE47E1AA431C55415C8FC2F56D1A514185EB5178421C5541333333D3791A5141E17A148E3D1C5541CDCCCC5C881A5141B81E857B441C554148E17A94881A51419A999929441C55418FC2F598911A514148E17AE4371C554114AE47517E1A514152B81EB52E1C554152B81E357C1A51419A999919311C55411F85EB117A1A5141E17A14FE311C55419A999929791A51419A9999E9331C5541
+</a>
+
+<b>
+0106000000010000000103000000010000003C000000C3F528DC741A5141AE47E1BA391C55416C3423A4741A5141A3A203A0391C55416175A045731A514185F7CB3B3A1C554114D812CE701A5141E84F174A3C1C55415242519E6D1A51414281500E3B1C55413C8B18756D1A51417725B4F93A1C55414B0536306C1A5141645120553C1C5541EB285C7F651A5141EDCCCC7C431C5541478FC225601A5141BA9999B94A1C55411F85EB915C1A5141693333134F1C5541D506530F5B1A5141B9447884511C5541CDCCCCCC581A5141C3F5282C551C554151671168571A5141C6F31DAF571C5541D8CCCCAC561A514120D7A300591C55413C174682551A5141337E6D585A1C5541EC51B86E541A51415C8FC2955B1C554152B81E75541A51417014AEB75C1C554152A96255571A51413DC55C105E1C5541000000E05B1A51410AD7A330601C55418D04410B5C1A51419D829D3C601C5541CE47E17A5C1A51418D1E855B601C554147B81E855D1A5141E151B83E5F1C55415FAF55A85D1A514100992B2A5F1C5541666666765E1A51411F85EBB15E1C5541B31E23BB5E1A5141CC1EF2F75D1C554112E17AF45E1A514197CCCC5C5D1C55414AA0439E601A514199F0B3D85A1C55418C444F3C621A5141EFFE5C66581C5541849690DA631A5141C0D9B4F3551C5541C27113D3641A51418B9AC67B541C554190578360661A514120B94422521C554132262E86661A514174143EE9511C554100D7A3C0681A51419A9999894E1C5541AA12DCFA681A5141AE60DB264E1C554148E17A246A1A5141E17A142E4C1C5541D3C6BD586A1A5141A04934D04A1C55410AAE47616A1A5141863D0A974A1C55413B6666F66A1A5141EDA370CD481C5541318FC2256B1A5141EE1E853B481C55413C8FC2F56B1A5141AF703D5A441C5541E0FFFFAF6C1A51418347E1AA431C5541B0C2F568751A51413D0AD7733B1C55415342E6D2791A51412F5A348E3D1C5541333333D3791A5141E17A148E3D1C5541AC8EC15C881A514137C37F7B441C5541443F8789881A5141337CB639441C554148E17A94881A51419A999929441C55417C7CAF978A1A5141F3F8906C411C554179C2F598911A51413EE17AE4371C5541934317EA7E1A5141584EEBFD2E1C554114AE47517E1A514152B81EB52E1C554152B81E357C1A51419A999919311C55411F85EB117A1A5141E17A14FE311C55419A999929791A51419A9999E9331C55416C54ADE6761A5141E5A593CB351C554177CDB7DD761A5141251A09D3351C55418FC2F588761A51419A999919361C5541AE47E14A761A5141CDCCCC9C371C5541A4703DAA751A5141A4703DDA381C5541C3F528DC741A5141AE47E1BA391C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>158654 - 3112963
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000016000000666666F6B2415141713D0A1703115541A4703D6ACC41514185EB51A8FE105541D7A3701DE1415141B81E859BF61055417B14AEB7F54151418FC2F598EE10554185EB51B8F641514185EB51E8EC105541295C8F82F64151411F85EB51EB105541C3F528FCF641514148E17A44E310554100000090F6415141AE47E13ADE105541F6285C2FF54151410AD7A370DA1055418FC2F5D8F141514185EB5108D3105541D7A370ADEE4151417B14AE17CC10554100000010E041514148E17A24D110554114AE4711D6415141713D0AD7D4105541D7A3704DC0415141C3F528DCDC10554148E17A24B7415141713D0AF7E31055411F85EBF1AC4151410AD7A330ED105541F6285C5FA84151419A999929F210554152B81E15A4415141EC51B8EEF7105541000000909E415141C3F5286C00115541A4703DAA9A415141295C8F520711554100000010A3415141C3F528DC05115541666666F6B2415141713D0A1703115541
+</a>
+
+<b>
+01060000000100000001030000000100000013000000F7D8A14AC0415141B87E56DEDC1055413CB222BACA4151417FE88D0BD9105541536CD6CADF4151411F398241D11055413D09D61EE8415141956D945DCE105541B1B5CFA2EE415141752D3A29CC1055412D588BB3EE415141D6440B25CC105541D7A370ADEE4151417B14AE17CC10554100000080EE41514185EB5188C0105541B81E853BEC415141EC51B86EB810554148E17A54E84151415C8FC205B11055418FC2F558E74151418FC2F548B010554114AE4711E64151419A999979B310554166666686E34151411F85EB81B9105541AE47E1CAE041514100000090BE105541B81E855BDC4151411F85EBE1C41055410AD7A300D8415141D7A3709DC9105541EC51B85ED041514148E17A64D0105541D7A3704DC0415141C3F528DCDC105541F7D8A14AC0415141B87E56DEDC105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>158654 - 3492526
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000016000000666666F6B2415141713D0A1703115541A4703D6ACC41514185EB51A8FE105541D7A3701DE1415141B81E859BF61055417B14AEB7F54151418FC2F598EE10554185EB51B8F641514185EB51E8EC105541295C8F82F64151411F85EB51EB105541C3F528FCF641514148E17A44E310554100000090F6415141AE47E13ADE105541F6285C2FF54151410AD7A370DA1055418FC2F5D8F141514185EB5108D3105541D7A370ADEE4151417B14AE17CC10554100000010E041514148E17A24D110554114AE4711D6415141713D0AD7D4105541D7A3704DC0415141C3F528DCDC10554148E17A24B7415141713D0AF7E31055411F85EBF1AC4151410AD7A330ED105541F6285C5FA84151419A999929F210554152B81E15A4415141EC51B8EEF7105541000000909E415141C3F5286C00115541A4703DAA9A415141295C8F520711554100000010A3415141C3F528DC05115541666666F6B2415141713D0A1703115541
+</a>
+
+<b>
+01060000000100000001030000000100000013000000F7D8A14AC0415141B87E56DEDC1055413CB222BACA4151417FE88D0BD9105541536CD6CADF4151411F398241D11055413D09D61EE8415141956D945DCE105541B1B5CFA2EE415141752D3A29CC1055412D588BB3EE415141D6440B25CC105541D7A370ADEE4151417B14AE17CC10554100000080EE41514185EB5188C0105541B81E853BEC415141EC51B86EB810554148E17A54E84151415C8FC205B11055418FC2F558E74151418FC2F548B010554114AE4711E64151419A999979B310554166666686E34151411F85EB81B9105541AE47E1CAE041514100000090BE105541B81E855BDC4151411F85EBE1C41055410AD7A300D8415141D7A3709DC9105541EC51B85ED041514148E17A64D0105541D7A3704DC0415141C3F528DCDC105541F7D8A14AC0415141B87E56DEDC105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>158946 - 54584
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000140000003D0AD713123F51410AD7A3A01A0A554152B81EE50E3F5141C3F5282C160A5541CDCCCC9C0B3F5141C3F528AC140A5541E17A141E033F514166666686190A55418FC2F5C8F63E5141333333E31E0A55417B14AE37EC3E5141F6285C8F240A5541333333D3E63E51418FC2F548290A554100000060E13E514185EB51582E0A554185EB5118E13E5141C3F5281C300A5541CDCCCCFCE13E51410AD7A320310A5541B81E85ABF43E514148E17A84340A55419A9999C9F93E51418FC2F568360A5541A4703DFAFF3E514133333313380A5541713D0AE7043F51419A999949390A5541B81E858B073F5141295C8F92380A554185EB51F80A3F51415C8FC2A5340A5541AE47E19A143F5141CDCCCCCC290A55415C8FC2F5183F5141D7A3704D250A5541CDCCCC2C183F5141E17A14CE220A55413D0AD713123F51410AD7A3A01A0A5541
+</a>
+
+<b>
+01060000000100000001030000000100000045000000B81E858B073F5141295C8F92380A5541B62E0337093F514123F0A8A8360A55414C3346D00A3F51418AE1A6D3340A554185EB51F80A3F51415C8FC2A5340A5541B3870F08103F51415286F5F22E0A554189ECF91B103F51413D8889DC2E0A5541F5F9F067113F514108EFCB662D0A5541C3DD1B15133F5141BB089F832B0A5541AE47E19A143F5141CDCCCCCC290A554194FEDE7F153F514180EC50E0280A5541F463FE91153F5141DCB899CD280A5541464983A2163F5141670C2AB4270A554166C20FAB173F5141E78FF5A2260A5541E000F0C3173F514154F14489260A55415C8FC2F5183F5141D7A3704D250A5541ED7BCC7B183F5141E8B56AC9230A5541CC4D9624183F5141F4C510C3220A5541B5DADF17173F5141764AB05A210A554158ECD987163F5141C0298999200A5541BC652EC1153F51412843188F1F0A554153BEC82F153F51414A6E19CC1E0A55413D0AD713123F51410AD7A3A01A0A55410C738189113F51418160FEDE190A55416175CE78103F51412AF54161180A5541936901C30F3F51411ECEC362170A5541764FB92F0F3F51416AFC9794160A554179F73DE90E3F5141BB23EE31160A5541CB1160DA0D3F5141D31744B2150A554163595CC90D3F514136AA7DAA150A55411751F7B10D3F514135DDCC9F150A5541064473BE0C3F51414C688530150A55411894121A0C3F5141EDD867E5140A5541CDCCCC9C0B3F5141C3F528AC140A5541F98221F1083F51410931AF32160A554143CF7883063F51415C91C995170A5541017FCD99043F51412BD37EAD180A5541E17A141E033F514166666686190A55418A2994F3013F5141E84032081A0A554166EE1AAB013F51417FB1B5271A0A554104FD87A9003F51416EB4B5971A0A5541FAEB3784FE3E5141E9CC90861B0A554182444991FB3E5141E88ED4CE1C0A5541483C484EFB3E51417A27F7EB1C0A5541B46F8223F93E5141710532DD1D0A5541AE9230AAF73E5141249C43811E0A5541105BD0BEF63E51412574A5E81E0A5541EBEF5FF0F23E5141F77EB6F3200A554136579048F23E5141A1A9CA4D210A5541691EDF14F23E51419C168A69210A5541A8294248EE3E5141E233A073230A554169757C47EC3E5141821DE086240A554170EEB9FFEA3E51412FFAB2A0250A55411627E544EA3E5141605D6744260A554144F079D1E63E5141E8718F4A290A5541EBFA4413E63E5141FFF327FB290A5541A8DC1710E53E51411C27C9EB2A0A554103E58CD7E33E51418E90F60D2C0A5541D0393414E23E51413AE602B12D0A554166C4F05EE13E5141CDA7FF5E2E0A554130F0FD1DE13E51419657A022300A5541CDCCCCFCE13E51410AD7A320310A5541B81E85ABF43E514148E17A84340A5541D4A40390F83E51410436FEF4350A5541A2B4F4E2F93E514186C0C76F360A5541AE709076FB3E5141220058DC360A55417119B68DFC3E5141BCEA6D27370A55413D193A37003F5141F3EC3622380A5541713D0AE7043F51419A999949390A5541B81E858B073F5141295C8F92380A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>158985 - 54622
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001600000014AE4781173C5141C3F528DC8D0C55413D0AD7A3173C5141CDCCCCAC8B0C55415C8FC255173C5141D7A3703D8A0C55415C8FC225153C51413D0AD763850C5541666666E6123C5141AE47E14A850C55417B14AE97113C51415C8FC2D5860C5541E17A145E0E3C5141AE47E11A8A0C55417B14AEC70C3C51410AD7A3008D0C5541D7A370ED093C51419A9999F9900C554133333363083C51417B14AEA7920C5541C3F528CC063C5141713D0AC7930C5541A4703D9A043C51415C8FC2E5940C5541E17A14BE043C51417B14AED7970C5541D7A3704D053C51415C8FC2459A0C55410AD7A360063C5141E17A146EA30C55415C8FC2A5093C5141D7A370CDA30C5541C3F528FC0C3C51413D0AD743A40C5541713D0A77143C5141E17A149EA30C5541E17A146E153C5141EC51B83EA30C5541F6285CAF163C514185EB51A89B0C554152B81EF5163C5141333333E3950C554114AE4781173C5141C3F528DC8D0C5541
+</a>
+
+<b>
+01060000000100000001030000000100000031000000A4703D9A043C51415C8FC2E5940C55410FF63DC7043C5141FDCA6FFF970C554165DE2C01053C51419656D3FA980C5541D7A3704D053C51415C8FC2459A0C554102A717FF053C51414E491C2FA00C55417E46720E063C5141A7B5E7B1A00C55410AD7A360063C5141E17A146EA30C55415C8FC2A5093C5141D7A370CDA30C5541E5C7AA630C3C51413F41B52EA40C5541355A02D00C3C5141D3C2B83DA40C554156EB7D0A0D3C514188709942A40C5541BB69AA5C0D3C5141D56E7C3BA40C55416FDFC560143C514174ED01A0A30C554182EB4A53153C5141C5680F49A30C5541E17A146E153C5141EC51B83EA30C5541D219DFFD153C51416D0D62D99F0C554125DA7C4A163C514126E82C0A9E0C554175D474A9163C51410D2503CC9B0C5541A3D7B8BB163C5141F8F28FA29A0C554152B81EF5163C5141333333E3950C55416D5F0C2C173C5141ABD5D5BD920C554164AC062E173C51415C67D6A0920C554137396067173C5141940AF8578F0C5541C204B28D173C514113F636138D0C5541049676A0173C5141669DE99C8B0C5541A3FE5154173C5141617A3F3A8A0C55415C8FC225153C51413D0AD763850C5541666666E6123C5141AE47E14A850C55417B14AE97113C51415C8FC2D5860C554173F8F8DF0F3C51416F589A93880C5541E885B8460F3C5141EE38FE2E890C55412B6F6FB80E3C5141799143BF890C55414D58807B0E3C5141BC510CFD890C55418F4470480E3C5141024261428A0C55417A22BFE40D3C5141825956F88A0C55418BFF9F680D3C5141873AE2DA8B0C5541E268AD540D3C514107C24AFF8B0C55417B14AEC70C3C51410AD7A3008D0C5541A6A86C4F0C3C5141E0C91CA88D0C5541A892B1300C3C5141A9CAE8D28D0C554166B44E500B3C514133EA650B8F0C55410B0B84A00A3C514144553600900C5541D7A370ED093C51419A9999F9900C55418D792097083C51415F53086F920C554133333363083C51417B14AEA7920C5541C650BE10073C51414F309F96930C5541C3F528CC063C5141713D0AC7930C554154992AC3053C514168CD404E940C5541A4703D9A043C51415C8FC2E5940C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>158991 - 54634
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000013000000295C8F52AC3B51411F85EB81CA0C5541EC51B83EAC3B5141713D0A57C90C5541F6285C9FAA3B514114AE4791C40C5541B81E852BA73B5141A4703D8AB90C554152B81EC5A53B51417B14AEA7B80C55419A9999F9A43B5141713D0AD7B80C554133333323A43B514166666666B90C5541C3F528CC9F3B51411F85EB51BD0C55418FC2F5989B3B5141713D0A47C10C5541F6285C2F993B5141CDCCCC9CC30C55411F85EBB1983B514185EB51F8C40C5541C3F5284C993B51417B14AE57C70C5541CDCCCC3C9C3B5141713D0AD7CE0C5541AE47E17A9D3B51418FC2F5B8D00C5541F6285CDF9E3B5141C3F528CCD00C55418FC2F568A43B5141000000B0CE0C554185EB5128A93B514148E17AC4CC0C5541B81E85CBAB3B5141F6285C5FCB0C5541295C8F52AC3B51411F85EB81CA0C5541
+</a>
+
+<b>
+0106000000010000000103000000010000002C000000288E8FD2A33B5141193278B9AC0C55414BAEA505A33B5141B42E63B1AD0C5541A37EE0C1A33B5141A950EDC5AE0C554185EB51C8A33B5141F6285CCFAE0C55415D039F11A53B5141905683B8B20C5541486D4693A53B5141D518C53EB40C5541D9B72BCAA53B5141645E96E9B40C554148E17A54A63B5141E17A148EB60C5541A3FAD66AA63B51418D7989DDB60C5541B6ADC66FA63B51416DDC25DCB60C55417852B13CA73B5141F52E17C1B90C554109BF01B9A73B51413560284EBB0C5541F6285C9FAA3B514114AE4791C40C5541C4037707AC3B51411742AD9FC50C554114AE47A1AD3B51418FC2F528C60C5541B360587CAF3B51417868E917C60C5541C3F5281CB13B51411F85EB91C50C55415C167ECCB23B5141653C46D5C40C554185EB5168B33B514114AE4791C40C5541B81E854BB53B5141D7A370CDC30C554195193C9FB53B514175DE456EC30C554170F2729DB63B5141363DB448C20C5541AE47E16AB73B5141C3F528BCC00C5541D4A77697B73B5141ED6A9998BE0C5541A74A1FFFB63B5141E6DBF861BC0C5541BAA5F933B63B5141B4F3CD30BA0C5541D7A3704DB43B514148E17A54B50C5541C8E1BA3AB33B51418DBBF881B20C55413C930F10B33B5141AB98BF11B20C5541F9EB0C9FB23B514149C185E8B00C554166666606B23B5141713D0A57AF0C554165C34484B13B51415B377868AD0C5541EBA51082B13B51413B451860AD0C55416C535521B13B51412C1D76F0AB0C554166CFB58BB03B5141ED6A923FAB0C5541CCAF6A83B03B5141BE7A8B36AB0C554154619C7DB03B514126B13930AB0C5541015B32D6AF3B51414E0103E0AA0C55417B14AE47AF3B5141000000A0AA0C55417B14AE37AD3B5141A4703DFAAA0C5541B81E85CBA83B5141F6285CAFAB0C5541CE268F2CA83B5141D671ADBBAB0C5541B62339B5A53B5141F9DF83EEAB0C5541288E8FD2A33B5141193278B9AC0C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>158992 - 54640
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000C0000005C8FC2F5983B5141B81E85CBD20C554114AE47B19A3B514114AE4791D20C5541C3F5280C9C3B51410AD7A300D20C55413D0AD7C39C3B51419A999919D10C5541CDCCCC3C9C3B5141713D0AD7CE0C5541C3F5284C993B51417B14AE57C70C55411F85EBB1983B514185EB51F8C40C55413D0AD713973B51418FC2F598C20C5541AE47E11A873B5141333333C3CE0C5541CDCCCC9C883B5141A4703D0AD20C554152B81E758A3B5141E17A140ED50C55415C8FC2F5983B5141B81E85CBD20C5541
+</a>
+
+<b>
+010600000001000000010300000001000000180000003D0AD713973B51418FC2F598C20C55410E99A79B8D3B5141699145CFC90C5541AE47E11A873B5141333333C3CE0C5541E39BC768883B5141DE242499D10C554127A25489893B51413DFFC38CD30C55413EC3AEE2893B51411AE31219D40C5541040AA24D8A3B5141876A8DCDD40C5541BEDEAC6F8A3B5141AAB92E05D50C554197B966EA8F3B5141C49A5534D40C5541C96EC58A933B51418563A9A3D30C5541430D5FEA943B5141C0B8DE6CD30C554187C1BF89963B514154B8232CD30C55415C8FC2F5983B5141B81E85CBD20C554181BF573D993B51413CC81EC2D20C5541C10328C19A3B514119F5A88AD20C5541E63433119C3B5141A2EA4CFAD10C5541542ACEC09C3B514182E10D17D10C5541E04F8D3D9C3B5141E12E4ADECE0C554126391D799A3B5141D40D2A57CA0C5541762F0F93993B5141D53D7C0CC80C5541C3F5284C993B51417B14AE57C70C5541DAD08241993B51412A2EBF2DC70C5541E8BB61A4983B5141FC6876E4C40C55413D0AD713973B51418FC2F598C20C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>159119 - 54691
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000020000000EC51B83E05425141D7A3709D9E11554152B81E65044251411F85EB31A5115541EC51B86E03425141C3F528ACAA1155418FC2F54804425141713D0AC7AB115541B81E851B1D425141D7A370BDAE1155413D0AD703344251419A999979B111554152B81EA534425141000000A0AD11554114AE475139425141295C8FF298115541B81E85BB3F425141B81E853B81115541CDCCCC6C42425141713D0A6776115541E17A14BE434251413D0AD7036E1155419A9999F9444251415C8FC2C561115541A4703DFA44425141CDCCCCEC59115541000000E03D425141295C8F225A1155413D0AD7D332425141CDCCCCFC5811554114AE47312A425141C3F5280C57115541713D0AF7244251419A99997955115541F6285CEF164251413333333350115541EC51B80E0F425141000000D04D11554185EB51B810425141E17A142E581155418FC2F5181142514148E17A746411554152B81ED52442514152B81EC56611554148E17AD434425141D7A3706D6A11554100000010334251419A9999897411554185EB510830425141666666967B115541D7A3709D2F425141F6285C7F7C115541295C8F621B425141CDCCCCFC741155417B14AE770D425141295C8FD26F115541CDCCCC9C09425141EC51B8AE801155418FC2F5C8074251415C8FC2E589115541D7A3706D064251413333334392115541EC51B83E05425141D7A3709D9E115541
+</a>
+
+<b>
+010600000001000000010300000001000000420000004708AB100D425141E336169571115541CDCCCC9C09425141EC51B8AE801155418FC2F5C8074251415C8FC2E589115541D7A3706D064251413333334392115541EC51B83E05425141D7A3709D9E11554152B81E65044251411F85EB31A5115541EC51B86E03425141C3F528ACAA1155418FC2F54804425141713D0AC7AB115541B81E851B1D425141D7A370BDAE1155413D0AD703344251419A999979B111554152B81EA534425141000000A0AD11554114AE475139425141295C8FF298115541B81E85BB3F425141B81E853B81115541CDCCCC6C42425141713D0A6776115541E17A14BE434251413D0AD7036E1155419A9999F9444251415C8FC2C56111554103AE37FA44425141594D6E335A1155416C23E9ED444251415958C3F4591155413344977440425141F33C070F5A1155413D43DFCA3E425141F1929D1B5A115541000000E03D425141295C8F225A11554163B5601E3A425141BC37ADBE591155416B736E6534425141C45E832659115541E14ED527344251414E6F1D20591155413D0AD7D332425141CDCCCCFC581155412DA141A62F42514163BA034658115541888416CE2E42514158DA72155811554114AE47312A425141C3F5280C57115541713D0AF7244251419A99997955115541136C69D4234251419960540C551155415687CA391F42514146163151531155417B7C417E1B42514100F6EDE9511155413FAF419B1642514139C7B51950115541182D5D481542514169C1FFB24F115541BDD0A64311425141E7F3377B4E1155416058BD110F425141ADA7D4E24D1155412583C8840F4251413ECA40B050115541C868B5B20F42514151DCA5CE511155418BCA05B30F42514118219BD051115541F6BFBEF10F425141B3C5BF57531155417B65DB2B10425141E9E123C25411554185EB51B810425141E17A142E58115541764F97CF10425141DA4CC6225B115541B7F010EC1042514107F6AFC05E115541D95F940C11425141FF5FE9E1621155418FC2F5181142514148E17A7464115541DB5AE2C415425141065CC400651155410D1847D21C4251419B238CD46511554152B81ED52442514152B81EC56611554196224DDB2942514104D02DEB671155414E9AD2E02D4251414DD18ED66811554148E17AD434425141D7A3706D6A11554100000010334251419A999989741155410AE5808E31425141C51C8C0A781155415A8C085431425141FE7397927811554185EB510830425141666666967B115541D7A3709D2F425141F6285C7F7C115541295C8F621B425141CDCCCCFC74115541C171D15B1B42514134494CFA7411554156DA502512425141DE6E058F71115541A4E6B71C124251412DA0D48B7111554176E18F15114251411D4F2B2A71115541DB1ADC841042514122CA77F470115541C7C43F450F42514192FEDA7D70115541F1552A7A0D4251419CDB0AD96F1155414708AB100D425141E336169571115541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>159902 - 109915
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000001C000000E17A149EFC3F514148E17A84AF0B55411F85EB41EF3F51411F85EB21AE0B55417B14AEB7E63F51411F85EB11AD0B5541C3F528ECDD3F5141713D0A17AB0B5541A4703DEADC3F5141A4703D0AAC0B55417B14AEF7DB3F5141EC51B8CEAC0B5541F6285C2FDE3F514114AE4741BA0B5541333333F3DC3F51418FC2F598BE0B55418FC2F5D8D93F5141AE47E1BAC30B5541713D0A77D53F5141F6285C9FCA0B5541E17A143ED33F5141E17A141ECE0B55419A9999F9D03F5141AE47E11AD10B55413D0AD7B3EE3F51413D0AD7F3DE0B554148E17A24F13F51418FC2F598E00B5541D7A3706DF33F5141D7A3707DE20B5541D7A3707DFA3F51410AD7A360E90B5541B81E85BB01405141333333B3E30B55411F85EB411040514100000050D80B55417B14AE371E4051417B14AE57D00B554185EB51F82140514133333333CE0B5541D7A3709D254051419A9999D9CD0B55415C8FC27524405141CDCCCCCCBE0B5541EC51B80E23405141EC51B88EB40B5541713D0A372240514185EB5168AE0B5541666666D620405141EC51B83EAD0B5541A4703DDA1840514152B81EE5AD0B554152B81EC503405141EC51B87EAF0B5541E17A149EFC3F514148E17A84AF0B5541
+</a>
+
+<b>
+01060000000100000001030000000100000004000000BE5DE169D63F514119E76F21C90B5541E1B12392D63F514126B47C3BC90B55416A43AE22E13F5141E835F028CC0B5541BE5DE169D63F514119E76F21C90B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>159902 - 310808
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000001C000000E17A149EFC3F514148E17A84AF0B55411F85EB41EF3F51411F85EB21AE0B55417B14AEB7E63F51411F85EB11AD0B5541C3F528ECDD3F5141713D0A17AB0B5541A4703DEADC3F5141A4703D0AAC0B55417B14AEF7DB3F5141EC51B8CEAC0B5541F6285C2FDE3F514114AE4741BA0B5541333333F3DC3F51418FC2F598BE0B55418FC2F5D8D93F5141AE47E1BAC30B5541713D0A77D53F5141F6285C9FCA0B5541E17A143ED33F5141E17A141ECE0B55419A9999F9D03F5141AE47E11AD10B55413D0AD7B3EE3F51413D0AD7F3DE0B554148E17A24F13F51418FC2F598E00B5541D7A3706DF33F5141D7A3707DE20B5541D7A3707DFA3F51410AD7A360E90B5541B81E85BB01405141333333B3E30B55411F85EB411040514100000050D80B55417B14AE371E4051417B14AE57D00B554185EB51F82140514133333333CE0B5541D7A3709D254051419A9999D9CD0B55415C8FC27524405141CDCCCCCCBE0B5541EC51B80E23405141EC51B88EB40B5541713D0A372240514185EB5168AE0B5541666666D620405141EC51B83EAD0B5541A4703DDA1840514152B81EE5AD0B554152B81EC503405141EC51B87EAF0B5541E17A149EFC3F514148E17A84AF0B5541
+</a>
+
+<b>
+01060000000100000001030000000100000004000000BE5DE169D63F514119E76F21C90B5541E1B12392D63F514126B47C3BC90B55416A43AE22E13F5141E835F028CC0B5541BE5DE169D63F514119E76F21C90B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>160434 - 250140
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000002000000230000009A999949A6335141A4703D8AEC1B554152B81ED5A6335141CDCCCC6CE91B554114AE47C1A6335141333333E3E61B55417B14AE37A633514114AE4781E51B5541666666D6A23351419A999929E11B5541E17A14FEA13351419A999979DD1B5541333333C39F335141713D0A67D91B55419A9999399F3351410AD7A340D51B55419A999939A03351413D0AD7A3D21B5541666666D6A1335141A4703D1AD11B5541713D0A87A33351418FC2F568D11B55415C8FC2D5A53351413D0AD7A3D11B554114AE47C1A73351418FC2F568D11B5541C3F528FCA8335141F6285CDFD01B554114AE4751AC335141AE47E14ACE1B55415C8FC255B3335141666666F6CB1B55413D0AD733B03351419A9999F9C41B55411F85EBA1A1335141AE47E16AC81B5541F6285C7F99335141CDCCCC1CC81B554152B81E458D335141A4703DAACB1B554185EB51B882335141AE47E19ADD1B5541E17A14DE8333514148E17A34DE1B55413D0AD7C3783351411F85EBB1E81B5541A4703D5A6F3351418FC2F5B8F11B55418FC2F5B878335141295C8FA2F61B55418FC2F5C87D3351417B14AE17FB1B5541B81E85BB803351418FC2F548FD1B554185EB514884335141CDCCCC2CFF1B55417B14AE27873351411F85EB91FE1B5541666666E68E335141C3F5288CF61B5541F6285CEF94335141000000E0EF1B5541E17A14DE9833514148E17AB4EC1B5541B81E858B9E3351419A9999C9F21B5541A4703D6AA1335141EC51B85EF51B55419A999949A6335141A4703D8AEC1B55410B000000CDCCCC2C853351418FC2F5D8E91B5541333333D387335141666666A6ED1B554100000040883351419A999939F01B5541AE47E17A8733514100000060F41B55410AD7A34085335141EC51B85EF71B55415C8FC2C58233514133333303F71B55415C8FC255813351418FC2F5A8EC1B5541000000507E335141B81E858BEA1B55410AD7A31081335141333333E3E71B55410000001083335141333333E3E71B5541CDCCCC2C853351418FC2F5D8E91B5541
+</a>
+
+<b>
+0106000000010000000103000000020000003B0000007B14AE27873351411F85EB91FE1B554103A258C289335141E90E5EDFFB1B55411FDF96778B335141A443751AFA1B5541568457DF8B33514160F6FCAEF91B55416D740C478C335141A7C99043F91B5541DDE9F3518C335141EB4F4538F91B5541D78CE97D8C3351416876BC0AF91B5541666666E68E335141C3F5288CF61B55416B072BCA91335141C1553F5AF31B554195285CEF94335141400000E0EF1B55412C7B14DE98335141FDE07AB4EC1B5541B81E858B9E3351419A9999C9F21B5541A4703D6AA1335141EC51B85EF51B55419A999949A6335141A4703D8AEC1B554152B81ED5A6335141CDCCCC6CE91B554114AE47C1A6335141333333E3E61B55417B14AE37A633514114AE4781E51B5541666666D6A23351419A999929E11B5541E17A14FEA13351419A999979DD1B5541333333C39F335141713D0A67D91B55419A9999399F3351410AD7A340D51B55419A999939A03351413D0AD7A3D21B5541B6C444A8A0335141B099513AD21B5541666666D6A1335141A4703D1AD11B5541713D0A87A33351418FC2F568D11B55415C8FC2D5A53351413D0AD7A3D11B554114AE47C1A73351418FC2F568D11B5541C3F528FCA8335141F6285CDFD01B554114AE4751AC335141AE47E14ACE1B55415C8FC255B3335141666666F6CB1B55410F349342B03351417CF6771AC51B5541F209D733B0335141DA9999F9C41B5541FEF0925FAD335141D580B9A4C51B554182F4E086AC3351417884ECD7C51B554190669185A933514185FEB08DC61B554101710F1FA8335141BDA965E2C61B55411F85EBA1A1335141AE47E16AC81B5541F6285C7F99335141CDCCCC1CC81B5541DA967D619233514176451D2ECA1B5541A6D7050190335141710AE5DECA1B554152B81E458D335141A4703DAACB1B554185EB51B882335141AE47E19ADD1B5541E17A14DE8333514148E17A34DE1B55413D0AD7C3783351411F85EBB1E81B5541A4703D5A6F3351418FC2F5B8F11B55411E1CCB137533514197DC51B9F41B5541C2C499D1763351417C240CA3F51B55418FC2F5B878335141295C8FA2F61B554132FA99EE7B335141779F0276F91B55416E9083937D335141B2FD9EE8FA1B55412CF102CE7D335141E805AB17FB1B5541C5526A0C7E3351413350DB49FB1B55413EDC9F9E7E335141234D9DB6FB1B554136D9A6617F3351410A87AF47FC1B55414635B36580335141DA6C1F09FD1B554154C7BFD6803351413EE67457FD1B554149F74E0E81335141833E0975FD1B554185EB514884335141CDCCCC2CFF1B55417B14AE27873351411F85EB91FE1B55410B000000CDCCCC2C853351418FC2F5D8E91B5541333333D387335141666666A6ED1B554100000040883351419A999939F01B5541AE47E17A8733514100000060F41B55410AD7A34085335141EC51B85EF71B55415C8FC2C58233514133333303F71B55415C8FC255813351418FC2F5A8EC1B5541000000507E335141B81E858BEA1B55410AD7A31081335141333333E3E71B55410000001083335141333333E3E71B5541CDCCCC2C853351418FC2F5D8E91B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>160434 - 359879
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000002000000230000009A999949A6335141A4703D8AEC1B554152B81ED5A6335141CDCCCC6CE91B554114AE47C1A6335141333333E3E61B55417B14AE37A633514114AE4781E51B5541666666D6A23351419A999929E11B5541E17A14FEA13351419A999979DD1B5541333333C39F335141713D0A67D91B55419A9999399F3351410AD7A340D51B55419A999939A03351413D0AD7A3D21B5541666666D6A1335141A4703D1AD11B5541713D0A87A33351418FC2F568D11B55415C8FC2D5A53351413D0AD7A3D11B554114AE47C1A73351418FC2F568D11B5541C3F528FCA8335141F6285CDFD01B554114AE4751AC335141AE47E14ACE1B55415C8FC255B3335141666666F6CB1B55413D0AD733B03351419A9999F9C41B55411F85EBA1A1335141AE47E16AC81B5541F6285C7F99335141CDCCCC1CC81B554152B81E458D335141A4703DAACB1B554185EB51B882335141AE47E19ADD1B5541E17A14DE8333514148E17A34DE1B55413D0AD7C3783351411F85EBB1E81B5541A4703D5A6F3351418FC2F5B8F11B55418FC2F5B878335141295C8FA2F61B55418FC2F5C87D3351417B14AE17FB1B5541B81E85BB803351418FC2F548FD1B554185EB514884335141CDCCCC2CFF1B55417B14AE27873351411F85EB91FE1B5541666666E68E335141C3F5288CF61B5541F6285CEF94335141000000E0EF1B5541E17A14DE9833514148E17AB4EC1B5541B81E858B9E3351419A9999C9F21B5541A4703D6AA1335141EC51B85EF51B55419A999949A6335141A4703D8AEC1B55410B000000CDCCCC2C853351418FC2F5D8E91B5541333333D387335141666666A6ED1B554100000040883351419A999939F01B5541AE47E17A8733514100000060F41B55410AD7A34085335141EC51B85EF71B55415C8FC2C58233514133333303F71B55415C8FC255813351418FC2F5A8EC1B5541000000507E335141B81E858BEA1B55410AD7A31081335141333333E3E71B55410000001083335141333333E3E71B5541CDCCCC2C853351418FC2F5D8E91B5541
+</a>
+
+<b>
+0106000000010000000103000000020000003B0000007B14AE27873351411F85EB91FE1B554103A258C289335141E90E5EDFFB1B55411FDF96778B335141A443751AFA1B5541568457DF8B33514160F6FCAEF91B55416D740C478C335141A7C99043F91B5541DDE9F3518C335141EB4F4538F91B5541D78CE97D8C3351416876BC0AF91B5541666666E68E335141C3F5288CF61B55416B072BCA91335141C1553F5AF31B554195285CEF94335141400000E0EF1B55412C7B14DE98335141FDE07AB4EC1B5541B81E858B9E3351419A9999C9F21B5541A4703D6AA1335141EC51B85EF51B55419A999949A6335141A4703D8AEC1B554152B81ED5A6335141CDCCCC6CE91B554114AE47C1A6335141333333E3E61B55417B14AE37A633514114AE4781E51B5541666666D6A23351419A999929E11B5541E17A14FEA13351419A999979DD1B5541333333C39F335141713D0A67D91B55419A9999399F3351410AD7A340D51B55419A999939A03351413D0AD7A3D21B5541B6C444A8A0335141B099513AD21B5541666666D6A1335141A4703D1AD11B5541713D0A87A33351418FC2F568D11B55415C8FC2D5A53351413D0AD7A3D11B554114AE47C1A73351418FC2F568D11B5541C3F528FCA8335141F6285CDFD01B554114AE4751AC335141AE47E14ACE1B55415C8FC255B3335141666666F6CB1B55410F349342B03351417CF6771AC51B5541F209D733B0335141DA9999F9C41B5541FEF0925FAD335141D580B9A4C51B554182F4E086AC3351417884ECD7C51B554190669185A933514185FEB08DC61B554101710F1FA8335141BDA965E2C61B55411F85EBA1A1335141AE47E16AC81B5541F6285C7F99335141CDCCCC1CC81B5541DA967D619233514176451D2ECA1B5541A6D7050190335141710AE5DECA1B554152B81E458D335141A4703DAACB1B554185EB51B882335141AE47E19ADD1B5541E17A14DE8333514148E17A34DE1B55413D0AD7C3783351411F85EBB1E81B5541A4703D5A6F3351418FC2F5B8F11B55411E1CCB137533514197DC51B9F41B5541C2C499D1763351417C240CA3F51B55418FC2F5B878335141295C8FA2F61B554132FA99EE7B335141779F0276F91B55416E9083937D335141B2FD9EE8FA1B55412CF102CE7D335141E805AB17FB1B5541C5526A0C7E3351413350DB49FB1B55413EDC9F9E7E335141234D9DB6FB1B554136D9A6617F3351410A87AF47FC1B55414635B36580335141DA6C1F09FD1B554154C7BFD6803351413EE67457FD1B554149F74E0E81335141833E0975FD1B554185EB514884335141CDCCCC2CFF1B55417B14AE27873351411F85EB91FE1B55410B000000CDCCCC2C853351418FC2F5D8E91B5541333333D387335141666666A6ED1B554100000040883351419A999939F01B5541AE47E17A8733514100000060F41B55410AD7A34085335141EC51B85EF71B55415C8FC2C58233514133333303F71B55415C8FC255813351418FC2F5A8EC1B5541000000507E335141B81E858BEA1B55410AD7A31081335141333333E3E71B55410000001083335141333333E3E71B5541CDCCCC2C853351418FC2F5D8E91B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>174213 - 5228493
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000400000068000000F6285C3FA4F85041EC51B82E424A544114AE4751A7F8504100000090464A54418FC2F5D8A8F85041D7A3705D4B4A544152B81EE5AAF85041E17A14CE4E4A544185EB5138AEF85041F6285CAF524A5441C3F528ECB1F850419A9999A9564A54410AD7A3D0B4F850418FC2F5F8584A54418FC2F578B7F8504185EB51185B4A54411F85EB61B8F8504133333363564A54410AD7A3B0BAF850419A9999794A4A5441A4703D6ABBF85041000000C0484A5441E17A14CEBEF8504114AE47B13C4A5441295C8F52BFF8504152B81ED53A4A544114AE4741CCF850418FC2F508404A544152B81ED5CFF8504152B81E15414A54419A999949D2F850418FC2F5A8414A5441EC51B8BED4F8504152B81EB5424A544185EB51B8D5F85041F6285CAF434A544152B81EF5DAF850415C8FC2F5454A54418FC2F5B8E5F8504185EB51F8494A54411F85EBB1ECF850411F85EB914C4A5441CDCCCC7CF3F85041D7A370FD4E4A5441295C8F32F8F85041EC51B8CE504A5441295C8FE2F8F85041B81E85BB4F4A544152B81EE5F9F85041713D0A274E4A544185EB51E8FBF85041E17A142E4A4A544148E17AF4FCF8504152B81E75464A54418FC2F558FDF8504114AE4701454A54413D0AD793FDF85041713D0A87434A54415C8FC2B5FDF850419A999949414A544148E17AE4FDF85041CDCCCC0C3F4A54410AD7A330FEF850411F85EB513C4A5441C3F5287CFEF850415C8FC2153A4A54419A9999B9FEF85041295C8F72384A5441333333F3FDF850417B14AE472F4A5441D7A3700DF9F85041F6285CCF2F4A54417B14AE07F5F85041EC51B83E304A544152B81E45F2F850413D0AD773304A5441713D0A67F1F8504148E17A84304A5441F6285CBFEDF85041E17A14AE304A5441713D0AF7ECF85041713D0AC7304A5441C3F528DCE9F85041AE47E12A314A544114AE4791E5F85041AE47E1CA304A544133333313E1F850410AD7A3A02F4A5441CDCCCC9CD9F850410AD7A3902D4A5441E17A143ED2F85041C3F5287C2B4A544185EB5158CBF85041AE47E16A294A5441713D0AB7C4F8504185EB5148274A5441EC51B86EC3F8504114AE47312B4A5441F6285C3FC2F850410AD7A3002F4A544152B81E75C0F8504148E17A94344A54415C8FC2F5BEF85041B81E85AB384A5441AE47E17ABEF850410AD7A3203A4A544148E17A54BBF85041C3F5284C384A5441295C8F52B3F85041E17A14DE334A544114AE4711A8F85041295C8FB22D4A5441000000E0A5F850418FC2F5D82C4A544148E17A149AF850410AD7A3E0264A544114AE47D199F850411F85EB21254A5441C3F5287C9AF850419A9999B9224A5441A4703DDAA4F85041E17A147EFA495441295C8FE29FF8504100000080FB4954419A9999399AF8504133333333FD4954419A99990995F85041B81E852BFF495441AE47E11A90F85041D7A370DD014A54419A9999F98CF85041C3F528CC034A54417B14AE778AF8504185EB5158054A5441E17A14BE86F85041666666D6084A5441AE47E15A86F850413D0AD733094A54410AD7A35082F85041F6285C7F0E4A5441D7A3705D7CF8504114AE47D1154A5441E17A14AE7AF850411F85EBD1174A5441E17A14EE78F850418FC2F5E8194A54413D0AD78378F8504148E17A641A4A54415C8FC21577F85041295C8F721B4A5441EC51B88E74F850410AD7A3501D4A5441C3F5288C73F85041D7A370BD1D4A54415C8FC26570F85041000000101F4A5441A4703DCA6AF85041713D0A07204A54411F85EBC166F850411F85EB31204A54418FC2F51864F85041E17A144E204A544152B81E9560F850413D0AD773204A5441C3F5281C5DF85041C3F5289C204A5441E17A14AE5BF850415C8FC2C5204A5441AE47E11A57F85041A4703D4A214A5441666666F650F85041A4703DAA224A5441C3F5286C52F85041713D0AB7244A54418FC2F57857F850418FC2F5A82A4A5441B81E854B5CF85041000000702F4A5441EC51B83E60F85041713D0AA7324A5441CDCCCCFC62F85041F6285C6F344A5441B81E854B63F8504148E17AA4384A5441295C8F926EF850415C8FC2F53C4A5441713D0AD777F850418FC2F5483F4A5441AE47E17A7BF85041E17A14EE3D4A5441CDCCCC4C84F85041F6285CEF3F4A5441EC51B81E86F85041B81E852B3F4A5441666666F688F85041C3F5280C3F4A5441D7A3706D8CF850419A9999493C4A54419A99992992F85041333333C33D4A5441A4703D1A96F85041CDCCCC7C3E4A5441000000209AF850410AD7A3003F4A5441F6285C4FA0F85041713D0AC73E4A5441F6285C3FA4F85041EC51B82E424A5441070000001F85EB918DF850417B14AED7364A544148E17A448BF850418FC2F5A8354A5441EC51B83E8FF85041295C8F32364A54415C8FC27593F8504152B81E25374A5441C3F528BC97F8504133333323384A54413333333399F85041F6285C7F394A54411F85EB918DF850417B14AED7364A54410B00000048E17AF4D4F85041295C8FF2334A54415C8FC235DAF8504100000040364A54419A999959E0F85041D7A3708D384A5441713D0AC7E4F85041713D0A273B4A5441F6285C3FE4F85041CDCCCC1C404A54413D0AD763DBF8504185EB51F8394A54410AD7A330D5F8504114AE4731364A544152B81E45CBF850419A999959314A5441D7A370BDCAF85041333333B3304A54418FC2F528CDF85041A4703D4A314A544148E17AF4D4F85041295C8FF2334A544108000000F6285C3FD2F85041295C8F722F4A54413D0AD773E5F85041F6285C4F344A54419A999949DFF8504148E17AD4334A54411F85EB61D9F850410AD7A300334A5441713D0AC7D4F850418FC2F568314A5441AE47E12ACFF850417B14AE572F4A54413D0AD7B3CAF8504148E17A542D4A5441F6285C3FD2F85041295C8F722F4A5441
+</a>
+
+<b>
+0106000000010000000103000000050000006A000000C86C689FC2F850414DE6D3CB2D4A5441F6285C3FC2F850410AD7A3002F4A544152B81E75C0F8504148E17A94344A54415C8FC2F5BEF85041B81E85AB384A5441AE47E17ABEF850410AD7A3203A4A544148E17A54BBF85041C3F5284C384A5441295C8F52B3F85041E17A14DE334A544114AE4711A8F85041295C8FB22D4A5441000000E0A5F850418FC2F5D82C4A544148E17A149AF850410AD7A3E0264A544114AE47D199F850411F85EB21254A5441C3F5287C9AF850419A9999B9224A5441A4703DDAA4F85041E17A147EFA495441295C8FE29FF8504100000080FB4954419A9999399AF8504133333333FD4954419A99990995F85041B81E852BFF495441AE47E11A90F85041D7A370DD014A54419A9999F98CF85041C3F528CC034A54417B14AE778AF8504185EB5158054A5441E17A14BE86F85041666666D6084A5441AE47E15A86F850413D0AD733094A54410AD7A35082F85041F6285C7F0E4A5441D7A3705D7CF8504114AE47D1154A5441E17A14AE7AF850411F85EBD1174A5441E17A14EE78F850418FC2F5E8194A54413D0AD78378F8504148E17A641A4A54415C8FC21577F85041295C8F721B4A5441EC51B88E74F850410AD7A3501D4A5441C3F5288C73F85041D7A370BD1D4A54415C8FC26570F85041000000101F4A5441A4703DCA6AF85041713D0A07204A54411F85EBC166F850411F85EB31204A54418FC2F51864F85041E17A144E204A544152B81E9560F850413D0AD773204A5441C3F5281C5DF85041C3F5289C204A5441E17A14AE5BF850415C8FC2C5204A5441AE47E11A57F85041A4703D4A214A5441666666F650F85041A4703DAA224A5441C3F5286C52F85041713D0AB7244A54418FC2F57857F850418FC2F5A82A4A5441B81E854B5CF85041000000702F4A5441EC51B83E60F85041713D0AA7324A5441CDCCCCFC62F85041F6285C6F344A5441B81E854B63F8504148E17AA4384A5441295C8F926EF850415C8FC2F53C4A5441713D0AD777F850418FC2F5483F4A5441AE47E17A7BF85041E17A14EE3D4A5441CDCCCC4C84F85041F6285CEF3F4A5441EC51B81E86F85041B81E852B3F4A5441666666F688F85041C3F5280C3F4A5441D7A3706D8CF850419A9999493C4A54419A99992992F85041333333C33D4A5441A4703D1A96F85041CDCCCC7C3E4A5441000000209AF850410AD7A3003F4A5441F6285C4FA0F85041713D0AC73E4A5441F6285C3FA4F85041EC51B82E424A544114AE4751A7F8504100000090464A54418FC2F5D8A8F85041D7A3705D4B4A544152B81EE5AAF85041E17A14CE4E4A544185EB5138AEF85041F6285CAF524A5441C3F528ECB1F850419A9999A9564A54410AD7A3D0B4F850418FC2F5F8584A54418FC2F578B7F8504185EB51185B4A54411F85EB61B8F8504133333363564A54410AD7A3B0BAF850419A9999794A4A5441A4703D6ABBF85041000000C0484A5441E17A14CEBEF8504114AE47B13C4A5441295C8F52BFF8504152B81ED53A4A544114AE4741CCF850418FC2F508404A544152B81ED5CFF8504152B81E15414A54419A999949D2F850418FC2F5A8414A5441EC51B8BED4F8504152B81EB5424A544185EB51B8D5F85041F6285CAF434A544152B81EF5DAF850415C8FC2F5454A54418FC2F5B8E5F8504185EB51F8494A54411F85EBB1ECF850411F85EB914C4A5441CDCCCC7CF3F85041D7A370FD4E4A5441295C8F32F8F85041EC51B8CE504A5441295C8FE2F8F85041B81E85BB4F4A544152B81EE5F9F85041713D0A274E4A544185EB51E8FBF85041E17A142E4A4A544148E17AF4FCF8504152B81E75464A54418FC2F558FDF8504114AE4701454A54413D0AD793FDF85041713D0A87434A54415C8FC2B5FDF850419A999949414A544148E17AE4FDF85041CDCCCC0C3F4A54410AD7A330FEF850411F85EB513C4A5441C3F5287CFEF850415C8FC2153A4A54419A9999B9FEF85041295C8F72384A5441333333F3FDF850417B14AE472F4A5441D7A3700DF9F85041F6285CCF2F4A54417B14AE07F5F85041EC51B83E304A544152B81E45F2F850413D0AD773304A5441713D0A67F1F8504148E17A84304A5441F6285CBFEDF85041E17A14AE304A5441713D0AF7ECF85041713D0AC7304A5441C3F528DCE9F85041AE47E12A314A544114AE4791E5F85041AE47E1CA304A544133333313E1F850410AD7A3A02F4A5441CDCCCC9CD9F850410AD7A3902D4A5441E17A143ED2F85041C3F5287C2B4A544185EB5158CBF85041AE47E16A294A5441713D0AB7C4F8504185EB5148274A5441EC51B86EC3F8504114AE47312B4A5441176B8744C3F8504136A1EEB82B4A5441C86C689FC2F850414DE6D3CB2D4A544111000000E1FAAEECD0F85041F0D0CB92324A544148E17AF4D4F85041295C8FF2334A5441488E0CE1D8F850415E51B7AA354A54413CE1FCE9DBF8504168E3DBD8364A54415961305BDEF85041BF2E09CE374A54419A999959E0F85041D7A3708D384A5441A5347D86E0F850410FF5CCA7384A5441976AD46CE4F85041B4874E2F3A4A5441F8A09C76E4F850411160EB9A3A4A5441713D0AC7E4F85041713D0A273B4A5441F6285C3FE4F85041CDCCCC1C404A54413D0AD763DBF8504185EB51F8394A54410AD7A330D5F8504114AE4731364A544152B81E45CBF850419A999959314A5441D7A370BDCAF85041333333B3304A54418FC2F528CDF85041A4703D4A314A5441E1FAAEECD0F85041F0D0CB92324A5441070000001F85EB918DF850417B14AED7364A544148E17A448BF850418FC2F5A8354A5441EC51B83E8FF85041295C8F32364A54415C8FC27593F8504152B81E25374A5441C3F528BC97F8504133333323384A54413333333399F85041F6285C7F394A54411F85EB918DF850417B14AED7364A54410900000033CF1BDADAF850416D41249A414A5441575D2CF0D5F85041C17E50C63F4A5441F425653FCDF85041F1B9397C3C4A5441ADADACF2C3F8504186B37019384A5441799933B8C4F8504112DEA504384A5441CFB436D2C8F85041AC1F581D394A54417F55E193D0F850419539D93D3C4A544115A1217FD8F8504135541BDB3F4A544133CF1BDADAF850416D41249A414A544109000000F6285C3FD2F85041295C8F722F4A54413D0AD773E5F85041F6285C4F344A5441A9B99F89E4F85041F84C28ED354A5441C6F9C656DFF85041F977ED83344A54411F85EB61D9F850410AD7A300334A5441713D0AC7D4F850418FC2F568314A5441AE47E12ACFF850417B14AE572F4A54413D0AD7B3CAF8504148E17A542D4A5441F6285C3FD2F85041295C8F722F4A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>239473 - 284195
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000A0000003D0AD74314BD5041F6285C0FD6D254415C8FC2E518BD504148E17A54D0D2544148E17A6419BD5041A4703DAACFD25441713D0AB7FCBC504100000080A7D25441EC51B8DEF8BC504148E17A14A8D25441F6285CBFF7BC50413D0AD7B3A9D254418FC2F5B8F7BC5041666666E6B2D254419A9999D9F5BC5041EC51B83EB7D25441C3F5289C0FBD504133333353DBD254413D0AD74314BD5041F6285C0FD6D25441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000060A799D9F5BC5041F631B83EB7D25441D941299C0FBD504124DD3253DBD2544149A128E812BD504161239A98D7D25441F189D64314BD5041C3015C0FD6D254417E901CD016BD5041CD858EE8D2D254415C8FC2E518BD504148E17A54D0D25441120C231219BD5041B8CFDC18D0D254418D5D7A6419BD504125B83CAACFD25441713D0AB7FCBC504100000080A7D25441AC8CB9DEF8BC5041CEB17A14A8D254411BFFD835F8BC5041F2EA9208A9D254412EF36516F8BC5041372D0836A9D254416C405CBFF7BC504154E8D6B3A9D254419189F6B8F7BC5041CEAC66E6B2D254410EAD8406F6BC5041068D7DD6B6D2544160A799D9F5BC5041F631B83EB7D25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>239494 - 178029
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000130000008FC2F56859BE5041E17A141E3BCE54413D0AD74356BE504148E17A843ACE5441000000E055BE50418FC2F5283BCE5441F6285CFF54BE5041D7A3707D3BCE544152B81EB553BE50417B14AE873BCE54419A99991953BE5041D7A370BD3BCE544185EB51784DBE504148E17AA43ACE5441D7A3709D4DBE5041CDCCCCDC38CE54418FC2F5384CBE50417B14AE9738CE5441EC51B88E4BBE50411F85EBA140CE5441D7A3709D44BE50415C8FC20540CE54418FC2F57844BE5041333333D341CE5441C3F5286C43BE5041333333F34ECE5441EC51B8AE47BE504148E17A344FCE54418FC2F5C84ABE50418FC2F5C851CE5441C3F528BC4FBE5041713D0AE755CE544114AE479151BE50417B14AEE744CE54410000005058BE5041CDCCCC9C46CE54418FC2F56859BE5041E17A141E3BCE5441
+</a>
+
+<b>
+010600000001000000010300000001000000040000000CAA058651BE504177721A5045CE544135D0370851BE5041456302DF49CE54414B1F9D8C51BE50414C9A125145CE54410CAA058651BE504177721A5045CE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>239494 - 365329
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000130000008FC2F56859BE5041E17A141E3BCE54413D0AD74356BE504148E17A843ACE5441000000E055BE50418FC2F5283BCE5441F6285CFF54BE5041D7A3707D3BCE544152B81EB553BE50417B14AE873BCE54419A99991953BE5041D7A370BD3BCE544185EB51784DBE504148E17AA43ACE5441D7A3709D4DBE5041CDCCCCDC38CE54418FC2F5384CBE50417B14AE9738CE5441EC51B88E4BBE50411F85EBA140CE5441D7A3709D44BE50415C8FC20540CE54418FC2F57844BE5041333333D341CE5441C3F5286C43BE5041333333F34ECE5441EC51B8AE47BE504148E17A344FCE54418FC2F5C84ABE50418FC2F5C851CE5441C3F528BC4FBE5041713D0AE755CE544114AE479151BE50417B14AEE744CE54410000005058BE5041CDCCCC9C46CE54418FC2F56859BE5041E17A141E3BCE5441
+</a>
+
+<b>
+010600000001000000010300000001000000040000000CAA058651BE504177721A5045CE544135D0370851BE5041456302DF49CE54414B1F9D8C51BE50414C9A125145CE54410CAA058651BE504177721A5045CE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>162020 - 3360494
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000016000000D7A370BD39475141713D0A27444D5441B81E85FB3647514152B81E95444D544152B81E053347514148E17AE4444D544152B81E453147514152B81EB5454D5441C3F528DC31475141333333034A4D5441666666863247514185EB51A8514D5441333333E332475141F6285C3F584D5441B81E853B3347514148E17A145F4D5441B81E855B334751415C8FC245654D54415C8FC25534475141C3F528AC724D544166666666384751417B14AE67724D544114AE47713847514148E17A54714D54415C8FC2C53B47514185EB51C8704D5441B81E853B41475141CDCCCCAC704D5441F6285C7F454751418FC2F538714D54411F85EB614947514100000080714D5441666666064947514148E17A44644D5441295C8F12494751411F85EB01514D5441295C8F024947514185EB5178504D5441666666F648475141333333D3444D5441000000D03D475141C3F5286C434D5441D7A370BD39475141713D0A27444D5441
+</a>
+
+<b>
+0106000000010000000103000000010000002000000098A3BF5232475141EBE085564F4D544106A49ADC314751417A3A36F04A4D5441FCDB2B6B284751411A7652594C4D54414BF33FE520475141B9256A774C4D54413CEA7DA91E475141DD904A4F4C4D54412C55B7221B4751410517CA7B4F4D544140D1E355184751416DD9ABFC514D5441EC51B88E154751413D0AD753564D5441A4703DDA144751413D0AD7C3574D54418FC2F5781247514152B81ED55E4D54417B14AED71047514148E17A94664D5441A4703DDA0F475141D7A370CD6D4D54418FC2F5B80E4751417B14AE67754D5441AE47E1DA0C475141333333E37A4D5441AE1569800B475141D1432BF97E4D5441295C8F320A4751411F85EB61824D54415CA023770E47514147202D6F824D5441B81E856B10475141713D0A67824D5441CDCCCC8C23475141A4703DDA824D54411F85EB712347514185EB51D86F4D54413D0AD79323475141CDCCCCBC644D54410AD7A3A022475141EC51B81E594D54413D0AD7A32B47514100000090584D5441EC51B85E2C475141D7A3704D644D544148E17AA42D475141000000C0784D544152B81E153047514152B81E35754D54415C8FC25534475141C3F528AC724D5441B81E855B334751415C8FC245654D5441B81E853B3347514148E17A145F4D5441333333E332475141F6285C3F584D5441AEDE787D324751415CEAAE41514D544198A3BF5232475141EBE085564F4D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>199154 - 976789
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000019000000D36FB2A094C350416FD8E7F421395541278CBC6E97C35041139C314C22395541F559DDBD9BC350413CC5D12823395541B5D509769FC35041BE2BF09C2339554151C20F22A4C350410DB1F36D243955419E2912FDA7C3504128889FB324395541AD7B0694A8C35041022C3CBF24395541B3158064AAC35041B57375D624395541B097928CADC3504115E879542539554158BA00D7ADC350418C40669C24395541A83F04A8AEC350413036AB1C24395541792B26EDAFC3504176A5BC421E395541F2D9C99AB1C3504139842BB113395541D15AD4D9B2C350413E9B62D00D3955413EDA15BDB2C350415D1C91910D395541CE9228C8B3C350419439AE2007395541EBF953D1B4C3504109909CD7013955415693C00CB6C350414F2CAF27FA38554111A8360CB7C350418049CCB6F3385541DFC61B69B7C35041E72903F3EF3855415C8FC2B5B1C350411F85EB31F0385541AE47E12A9CC350415C8FC295F03855413D0AD7B398C3504152B81E4507395541EC51B84E95C3504114AE47811D395541D36FB2A094C350416FD8E7F421395541
+</a>
+
+<b>
+0106000000010000000103000000010000002C0000009BED8149B3C3504154D19C2E0A395541D15AD4D9B2C350413E9B62D00D3955417FA1918EB1C35041DFD91EFE1339554184D69FCEB0C350413B24DAB6183955411B857877B0C35041E624AFDB1A395541792B26EDAFC3504176A5BC421E395541A2E57B88AFC3504183F983122039554169E05F76AFC350416CC8F26520395541A3042BC2AEC35041D0732FA4233955417903BCB3AEC35041C0DDAEE6233955411B15B7AEAEC350413ABACEFD23395541A83F04A8AEC350413036AB1C24395541F2BD3EF2ADC35041CA5AC08B24395541B097928CADC3504115E8795425395541333D45A4AAC35041D946E9FC24395541B3158064AAC35041B57375D624395541AD7B0694A8C35041022C3CBF243955411C4ED01EA8C350411E0138B624395541F39A5BA7A7C350413DA592AD2439554151C20F22A4C350410DB1F36D2439554153FC4E12A4C3504162EF326B2439554102F003659FC3504151B8DC9A23395541F559DDBD9BC350413CC5D12823395541D81E34919BC35041D01FE31F23395541A4EF2E3E97C35041139C4A4622395541D36FB2A094C350416FD8E7F4213955418FC2F58891C350415C8FC2353639554148E17A848EC350419A9999F9493955415C8FC285A1C350417B14AEB73A39554185EB51C8A7C35041AE47E10A3639554152B81EE5A8C35041AE47E11A34395541A4703DAAB1C350411F85EB612C395541D7A370BDB6C35041295C8F6228395541295C8F92B9C350419A9999D9153955418FC2F598BCC350413D0AD713023955410AD7A370BFC35041B81E857BEF385541DC3A3A75B7C35041D3668FE5EF3855415287E621B7C350413F9DCBD5F238554111A8360CB7C350418049CCB6F33855415693C00CB6C350414F2CAF27FA385541E57E4801B6C35041A1553D6FFA385541EBF953D1B4C3504109909CD701395541FF9759CAB3C3504107887F15073955419BED8149B3C3504154D19C2E0A395541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>164277 - 227310
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000005C000000B81E85BBD339514185EB5158900B5541A4703D9AD039514166666656930B5541E17A143ECD3951418FC2F518960B55413D0AD753C939514185EB5108980B554148E17AD4C539514114AE4781990B5541295C8FC2C43951411F85EBD1980B554114AE4771C3395141B81E851B960B5541F6285CCFBF395141F6285CCF930B5541C3F5288CBD3951411F85EB91940B5541F6285C8FBA395141A4703DAA950B5541B81E854BB739514100000090960B55411F85EB31B53951418FC2F538970B5541EC51B83EB2395141E17A149E980B554114AE4741B1395141D7A370DD9A0B55413D0AD7E3B139514152B81E459C0B55410AD7A300B43951417B14AE879D0B5541A4703D4AB7395141B81E85CB9F0B5541000000B0BA395141F6285CAFA00B554100000040BA395141D7A3705DA40B5541C3F5281CB53951415C8FC225AC0B5541CDCCCC7CB2395141F6285C4FAF0B55410AD7A3F0B639514148E17A54B30B554114AE4771B939514148E17A74B00B5541E17A145EBC395141666666B6AC0B5541A4703DCABF395141295C8F12A90B55419A999979C3395141B81E85DBA40B554114AE4791C6395141295C8F42A10B5541A4703D6AC9395141AE47E11A9E0B55418FC2F548CB395141295C8FF29B0B5541295C8FF2CD395141666666169A0B5541EC51B8BED1395141A4703D0A980B554185EB5158D5395141CDCCCC3C960B5541295C8F52D6395141D7A3705D950B55411F85EB21D93951410AD7A350940B5541A4703D8ADB3951410AD7A350930B554166666606DE39514185EB5108930B5541A4703D1AE139514148E17A84920B5541E17A145EE4395141295C8FE2910B5541B81E85BBE7395141666666B6900B554185EB51B8EA3951417B14AEF78F0B55411F85EBA1EE395141C3F528AC8E0B554114AE47E1EF3951415C8FC2458E0B554100000010F0395141C3F5289C8C0B5541666666B6F23951410AD7A3008A0B5541D7A3705DF5395141666666A6870B5541295C8F12F83951418FC2F548870B55411F85EB71FA3951418FC2F578890B554185EB51F8FC395141B81E856B880B5541C3F5285CFF39514133333353870B55410AD7A320013A5141EC51B80E860B554114AE4781033A514148E17A94840B55411F85EB91053A514148E17AE4820B5541333333F3073A51417B14AE47810B55418FC2F548093A5141E17A148E800B5541713D0AE70B3A514100000060800B5541D7A3708D0E3A5141CDCCCCDC7F0B55419A999989103A5141D7A3709D7F0B5541C3F5286C133A5141AE47E1EA7E0B5541CDCCCCBC143A51418FC2F5687E0B5541A4703DDA133A5141AE47E1BA7A0B55413D0AD7F30F3A51411F85EBC17A0B5541CDCCCCFC083A5141333333F37A0B5541D7A370FD023A5141295C8FE27A0B554148E17A44FE39514114AE47017B0B554148E17AC4FA395141D7A370CD7A0B5541EC51B8DEF63951419A9999F9790B554152B81E45F2395141F6285CDF780B5541AE47E1CAEE395141EC51B81E770B5541295C8F82EC395141A4703DCA760B55415C8FC255E83951417B14AE67760B5541D7A3703DE7395141CDCCCCBC760B554133333373E73951413D0AD733770B554148E17AA4EC395141E17A14FE7E0B554148E17AC4EE395141E17A140E7F0B554114AE4761F1395141EC51B80E7F0B554114AE4761F339514185EB51787F0B55410AD7A380F5395141C3F5289C800B55410AD7A360F73951418FC2F5D8810B554133333373F8395141F6285CEF820B554185EB5178F839514185EB5158840B554100000060F7395141295C8FB2840B55410AD7A3B0F63951419A9999E9840B5541CDCCCC9CF3395141AE47E12A850B5541333333C3EF39514114AE4711860B5541CDCCCCECE639514152B81E55890B5541CDCCCC2CE53951417B14AE778A0B5541CDCCCC3CE3395141AE47E1FA8A0B5541333333A3E03951413D0AD7138B0B5541333333D3DE3951413D0AD7138B0B554148E17A54DB395141D7A3709D8C0B55411F85EB61D8395141333333F38D0B5541B81E85BBD339514185EB5158900B5541
+</a>
+
+<b>
+0106000000010000000103000000010000009A00000048E17AC4EE395141E17A140E7F0B55415CB6ADCFEF395141ECEF550E7F0B554114AE4761F1395141EC51B80E7F0B554114AE4761F339514185EB51787F0B55410AD7A380F5395141C3F5289C800B55410AD7A360F73951418FC2F5D8810B554127301FE1F73951417D203D5B820B554133333373F8395141F6285CEF820B55417A40EE8FF839514116C97051830B55416C63E82AF93951410F047169850B5541490B1F93F7395141885233D1850B55414D63810EF6395141744D792D860B5541F849FFDCF3395141C8C199A2860B5541473DE58EF239514107718EDF860B5541952924F4EF3951411C0DBF58870B5541410998E6ED3951419AA3DEA2870B55414DE7754CEC3951413EFCE5D7870B5541F9D90661EA395141E9AD2845880B5541070E43ADE939514108FFA46D880B55415F53147FE8395141BE9F7FC0880B5541CD16417CE839514192D28AC1880B55412E714B6EE8395141C119B3C6880B5541F8CAD763E83951416C9D8FCA880B5541CE01BC60E8395141DC9DB5CB880B5541B99C7BF4E6395141A3154852890B5541CDCCCC2CE53951417B14AE778A0B5541CDCCCC3CE3395141AE47E1FA8A0B5541C2416B2CE3395141B3897EFB8A0B5541B307BB46E2395141E28B1B048B0B5541333333A3E03951413D0AD7138B0B554123FEFCB0DF3951413D0AD7138B0B5541333333D3DE3951413D0AD7138B0B554148E17A54DB395141D7A3709D8C0B55411F85EB61D8395141333333F38D0B5541B81E85BBD339514185EB5158900B5541A4703D9AD039514166666656930B5541CBC3FC3DD0395141D2CF2DA2930B5541C025DF45D0395141D3CD32BA930B554128664E9DCF3951414CC12A26940B5541E17A143ECD3951418FC2F518960B55413D0AD753C939514185EB5108980B554148E17AD4C539514114AE4781990B5541295C8FC2C43951411F85EBD1980B554114AE4771C3395141B81E851B960B5541F6285CCFBF395141F6285CCF930B554174E953A4BD3951414640CD89940B55413D16D50CBB3951412B3F407C950B5541F6285C8FBA395141A4703DAA950B55410498AC77BA3951416C39C0B0950B5541B81E854BB739514100000090960B55411F85EB31B53951418FC2F538970B5541CC2FBB41B23951419AF3A79C980B554117FA790DB2395141F86CDF0D990B554114AE4741B1395141D7A370DD9A0B55413D0AD7E3B139514152B81E459C0B55410AD7A300B43951417B14AE879D0B5541E8CA75D4B6395141FD6F5F7A9F0B5541A4703D4AB7395141B81E85CB9F0B5541EE5B2D6EBA395141E0021E9EA00B554167A8DFB5BA395141432825AFA00B55418806CEAEBA395141B2D769B9A00B5541E29EB1A4BA3951417606760EA10B55419578A77CBA395141436D405FA20B554100000040BA395141D7A3705DA40B5541C3F5281CB53951415C8FC225AC0B5541A9831DB6B23951416F2E3E0AAF0B55410B95227FB23951412CE07751AF0B55410AD7A3F0B639514148E17A54B30B554120BDFA09B73951411D665E37B30B554114AE4771B939514148E17A74B00B5541E17A145EBC395141666666B6AC0B5541C010681CBE3951411B9DB5DBAA0B5541A50689DBBF3951417CF8C6FEA80B55410F9DD885C139514115D02617A70B554193795316C23951416544E471A60B5541E4B3FB82C239514168559BF5A50B554193870D3FC339514196DE7C1EA50B55415BF75626C4395141D07A9212A40B554114AE4791C6395141295C8F42A10B55411EE89D16C9395141F29988779E0B5541EC6179E3C9395141C6C4018F9D0B55417B7C0A40CB395141F9ABD9FC9B0B55418FC2F548CB395141295C8FF29B0B554135EBAD63CB39514102E2E4DF9B0B55417EAF9F35CD3951410DA6639A9A0B5541295C8FF2CD395141666666169A0B554162539DD0D03951413E939E8A980B5541EC51B8BED1395141A4703D0A980B5541015DA64BD4395141865752C3960B55418613A250D5395141A016A640960B5541E8DD9838D639514107309D74950B5541295C8F52D6395141D7A3705D950B5541F0B55001D939514123C1D25C940B5541FBB70719DB39514129F0A97F930B5541A4703D8ADB3951410AD7A350930B5541A39365B8DB3951418A8E644B930B5541DEA0365CDD395141A2CBAA1B930B554166666606DE39514185EB5108930B55419FA08108E0395141D09E49B2920B5541A4703D1AE139514148E17A84920B5541E3A4B084E2395141FF05443E920B55419749DC60E43951417E5697E1910B5541B81E85BBE7395141666666B6900B5541312F190EEA3951411BEA2022900B554185EB51B8EA3951417B14AEF78F0B5541ECDD9F9FEB395141C2D41EAB8F0B55411F85EBA1EE395141C3F528AC8E0B554114AE47E1EF3951415C8FC2458E0B554100000010F0395141C3F5289C8C0B5541666666B6F23951410AD7A3008A0B5541D7A3705DF5395141666666A6870B5541295C8F12F83951418FC2F548870B5541E92F4FB9F83951411DEDB4E2870B55412B34CE48FA395141A42C0D53890B55411F85EB71FA3951418FC2F578890B554185EB51F8FC395141B81E856B880B5541152CE366FD39514166D0DC38880B5541A657B164FF3951415FBF144D870B55412D18E4CA003A5141883C364C860B55410AD7A320013A5141EC51B80E860B5541A5A761A4013A51410360D9BC850B55411619578D033A51416DDE9F8A840B55411F85EB91053A514148E17AE4820B5541333333F3073A51417B14AE47810B55418FC2F548093A5141E17A148E800B554153C4EF520B3A5141894C2F6A800B5541713D0AE70B3A514100000060800B5541D7A3708D0E3A5141CDCCCCDC7F0B55419A999989103A5141D7A3709D7F0B5541E3CB5F55133A5141038D63F07E0B5541CA190EB2133A514197C0E7CF7E0B5541CDCCCCBC143A51418FC2F5687E0B55417F13CAAD143A5141E4F98A2A7E0B5541FBA3DAAB143A514129DC7E227E0B5541CDFFCEAA143A5141BCF4251E7E0B5541A4703DDA133A5141AE47E1BA7A0B55414911F6430C3A51417CD101DC7A0B5541CDCCCCFC083A5141333333F37A0B5541B5C0624F033A5141B8B772E37A0B5541713F9AAFFE3951414BD88EFE7A0B554148E17A44FE39514114AE47017B0B554135B1C2B1FD3951410E8ECAF87A0B5541E71595C1FA39514114749CCD7A0B5541D6E48667F73951413C70A5167A0B5541EC51B8DEF63951419A9999F9790B554152B81E45F2395141F6285CDF780B5541D4584C34F239514138F2E1D6780B554159FB1C97EE39514143C3A6F8770B5541AD34E5E2ED3951417195C4DE770B554191F88B7FEC39514191FA00AC770B5541AB1AEBD2EA395141D8BC4583770B554133333373E73951413D0AD733770B55419B0CD8B8EC395141FACEADFE7E0B554148E17AC4EE395141E17A140E7F0B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>164513 - 214695
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000008F00000085EB513858345141C3F5286C7205554152B81E355C3451417B14AE0770055541A4703DEA5E345141A4703D5A6C0555419A999969613451410000001069055541D7A370CD623451410AD7A390670555419A9999A9623451413D0AD70366055541A4703D0A633451413D0AD763640555418FC2F5D8633451411F85EBC161055541D7A3709D633451413D0AD70361055541D7A3707D63345141295C8FC2600555413D0AD72363345141295C8F92600555413333334362345141CDCCCC6C600555419A9999C96134514148E17A646005554148E17A4461345141295C8F1260055541C3F528FC60345141C3F5287C5F055541295C8FA260345141A4703D0A5F055541D7A3705D603451411F85EB115F055541A4703DEA5F345141AE47E17A5F0555417B14AEA75F345141713D0AD75F055541713D0AB75F3451410AD7A340600555410AD7A3F05F345141EC51B89E600555417B14AEF75F345141000000E060055541713D0AE75F34514114AE4751610555417B14AE975F3451415C8FC2B561055541CDCCCC2C5F345141666666F66105554185EB51F85D34514185EB517863055541C3F5282C5D345141713D0AA765055541295C8F225D3451417B14AE2766055541A4703DFA5C3451415C8FC28566055541EC51B8AE5C345141E17A141E6705554114AE47715C3451413D0AD76367055541EC51B8FE5B34514148E17AC46705554152B81E355B34514148E17A44680555415C8FC2555A345141000000B068055541C3F5287C5934514114AE4731690555413333339358345141C3F5288C690555417B14AEA75734514148E17AC469055541EC51B8CE56345141AE47E10A6A05554185EB51E8553451411F85EB116A0555410000003055345141295C8F526A0555410AD7A39054345141F6285CBF6A055541EC51B83E54345141666666066B055541E17A141E5434514148E17A646B05554152B81E3554345141CDCCCCFC6B055541CDCCCC7C543451413D0AD7C36C05554185EB51A85434514185EB51986D055541EC51B8BE54345141713D0A776E055541A4703D4A553451411F85EB617105554114AE47B152345141AE47E1FA73055541333333934F345141000000E07605554152B81E454B345141D7A370CD77055541AE47E15A49345141EC51B8FE79055541CDCCCC3C49345141B81E857B7A0555419A999919493451418FC2F5D87A055541295C8FD248345141295C8F827B055541E17A145E483451411F85EBE17B055541333333C34734514114AE47417C055541713D0A1747345141CDCCCC5C7C05554166666686463451410AD7A3907C05554185EB510846345141333333F37C055541000000F045345141EC51B8AE7D0555416666662646345141000000707E055541295C8F62463451411F85EBB17E055541000000C046345141333333337F0555417B14AEF7463451418FC2F5E87F055541666666C6463451419A9999898005554185EB51984634514185EB51188105554114AE47A145345141295C8F028405554133333383413451411F85EB218A0555415C8FC2A53A3451418FC2F5488C055541EC51B85E39345141F6285C4F8F0555413D0AD75339345141CDCCCCBC8F055541333333E338345141D7A3707D90055541AE47E15A38345141AE47E1FA900555418FC2F58837345141E17A147E91055541CDCCCCEC363451410AD7A30092055541C3F5287C36345141D7A3709D9205554114AE472135345141CDCCCC0C950555411F85EBE13334514148E17A449705554152B81EC53334514185EB51C8970555418FC2F5E83334514148E17A64980555418FC2F5683434514148E17A049A055541D7A370AD34345141333333739A055541295C8F9235345141B81E859B9B055541AE47E12A36345141AE47E1FA9B055541E17A145E36345141295C8F429C055541F6285C5F363451411F85EB819C0555410AD7A330363451419A9999099D0555415C8FC2A53534514114AE47A19D05554114AE47F13434514148E17AE49D055541F6285C1F343451413D0AD7239E055541295C8FB23334514114AE47719E0555415C8FC2B533345141713D0A179F055541CDCCCC9C3334514185EB5158A0055541713D0A3733345141A4703D1AA10555413D0AD7B332345141CDCCCCCCA1055541EC51B8BE3134514185EB5148A205554114AE471131345141EC51B86EA205554185EB514830345141666666B6A20555417B14AE17303451419A999939A40555416666665630345141F6285CAFA60555413D0AD7233134514152B81E45A90555413D0AD7633134514185EB51D8A905554166666666313451410AD7A370AA055541295C8FA2313451413D0AD7F3AA0555415C8FC27531345141B81E85BBAB055541333333D3313451419A9999A9AC05554114AE471132345141D7A3708DAD055541CDCCCC8C3234514166666626B0055541CDCCCC0C33345141E17A14AEB20555416666663633345141B81E85EBB3055541C3F528CC32345141B81E853BB505554114AE475132345141295C8F92B60555417B14AED73C3451418FC2F5C8BA055541AE47E1BA3B34514148E17AD4B6055541CDCCCC3C3B345141666666D6B3055541295C8F023A3451417B14AE17B1055541A4703D5A393451415C8FC215AF0555410000005039345141D7A3700DAC055541EC51B85E3834514152B81E35AA0555410000002038345141713D0A57A70555413D0AD773383451415C8FC215A5055541EC51B8AE39345141AE47E1CAA2055541EC51B8DE3A34514185EB51E8A00555417B14AE773C345141EC51B84E9F05554152B81EF53D34514185EB51D89E055541D7A3708D3F345141AE47E18A9C0555415C8FC255413451415C8FC2459905554148E17A7442345141AE47E10A97055541F6285CBF43345141AE47E15A93055541295C8F32443451410AD7A360920555417B14AE5744345141E17A14EE910555410AD7A31045345141295C8F828F0555415C8FC29545345141C3F5284C8D055541CDCCCC5C46345141E17A149E8B055541B81E853B47345141D7A370BD890555417B14AE674834514152B81E4588055541F6285CEF4934514185EB517886055541000000F04B3451418FC2F51884055541F6285CBF4E345141F6285C9F80055541AE47E17A51345141AE47E13A7D0555413D0AD7F35334514148E17A947705554185EB513858345141C3F5286C72055541
+</a>
+
+<b>
+0106000000010000000103000000010000005100000052F38EA2313451419925D6F3AA055541A552D48D3134514149433D50AB055541381EC37531345141F9C985BBAB055541F28A33D331345141021D9AA9AC0555415EFF4711323451414FF1708DAD05554110A570BA3234514148E90F0AB10555410D1CCE0C33345141D50415AEB20555410C93673633345141CB7E84EBB305554128DF8FE532345141B2AE2EEBB4055541C3F528CC32345141B81E853BB505554114AE475132345141295C8F92B6055541AAB6ACD73C3451418C36F5C8BA055541AE47E1BA3B34514148E17AD4B6055541CDCCCC3C3B345141666666D6B3055541295C8F023A3451417B14AE17B1055541A4703D5A393451415C8FC215AF0555410000005039345141D7A3700DAC055541EC51B85E3834514152B81E35AA055541C48309253834514154D3FE91A70555410000002038345141713D0A57A70555413D0AD773383451415C8FC215A5055541EC51B8AE39345141AE47E1CAA2055541EC51B8DE3A34514185EB51E8A00555417B14AE773C345141EC51B84E9F05554152B81EF53D34514185EB51D89E055541D7A3708D3F345141AE47E18A9C0555415C8FC255413451415C8FC24599055541FDDE38B441345141F5D9AD8998055541EBB379744234514197C1E00A9705554188F75ABF43345141D27FE25A93055541C80B837439345141C742C21B8F0555412335B95E39345141F00E5A4F8F055541BF1B3E593934514160C274868F0555413D0AD75339345141CDCCCCBC8F055541BFDD8D163934514159DA9C2590055541A94934E338345141A381717D9005554180002D7A38345141C3FD14DE90055541AE47E15A38345141AE47E1FA900555418FC2F58837345141E17A147E91055541B57C9B3337345141ADBD70C591055541B29BCCEC36345141651BA400920555419BB0A3CE36345141EDF99F2A92055541D8F8297C3634514199D7709D9205554106FB482135345141BE32CE0C95055541672EECE133345141CBF2794497055541746892D333345141079229869705554152B81EC53334514185EB51C8970555418FC2F5E83334514148E17A64980555418FC2F5683434514148E17A049A055541D7A370AD34345141333333739A055541295C8F9235345141B81E859B9B055541AE47E12A36345141AE47E1FA9B055541E17A145E36345141295C8F429C055541F6285C5F363451411F85EB819C0555410AD7A330363451419A9999099D0555415C8FC2A53534514114AE47A19D05554114AE47F13434514148E17AE49D055541E67EE28434345141606532059E055541B7265D1F34345141C706D8239E055541EE7B90B23334514142B948719E05554168CC8DB4333451416A6490D89E0555415C8FC2B533345141713D0A179F055541CDCCCC9C3334514185EB5158A0055541DEA08E4E33345141DA9F6CEDA0055541320F0B373334514164673C1AA1055541C489AA2D333451412E60FF26A10555413D0AD7B332345141CDCCCCCCA1055541920EF27C323451414F5476E8A1055541858DB8BE3134514182815248A2055541A4EEAC753134514180017E58A205554114AE471131345141EC51B86EA205554185EB514830345141666666B6A2055541E59C2A4830345141344E9FB7A205554104D77C183034514163A3B541A4055541DBECEB6630345141F63C94E4A60555413D0AD7233134514152B81E45A90555413D0AD7633134514185EB51D8A90555412783906531345141D385ED3EAA05554129E06666313451415D86A470AA055541E904B76D3134514158BE9780AA05554152F38EA2313451419925D6F3AA055541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>164513 - 389243
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000008F00000085EB513858345141C3F5286C7205554152B81E355C3451417B14AE0770055541A4703DEA5E345141A4703D5A6C0555419A999969613451410000001069055541D7A370CD623451410AD7A390670555419A9999A9623451413D0AD70366055541A4703D0A633451413D0AD763640555418FC2F5D8633451411F85EBC161055541D7A3709D633451413D0AD70361055541D7A3707D63345141295C8FC2600555413D0AD72363345141295C8F92600555413333334362345141CDCCCC6C600555419A9999C96134514148E17A646005554148E17A4461345141295C8F1260055541C3F528FC60345141C3F5287C5F055541295C8FA260345141A4703D0A5F055541D7A3705D603451411F85EB115F055541A4703DEA5F345141AE47E17A5F0555417B14AEA75F345141713D0AD75F055541713D0AB75F3451410AD7A340600555410AD7A3F05F345141EC51B89E600555417B14AEF75F345141000000E060055541713D0AE75F34514114AE4751610555417B14AE975F3451415C8FC2B561055541CDCCCC2C5F345141666666F66105554185EB51F85D34514185EB517863055541C3F5282C5D345141713D0AA765055541295C8F225D3451417B14AE2766055541A4703DFA5C3451415C8FC28566055541EC51B8AE5C345141E17A141E6705554114AE47715C3451413D0AD76367055541EC51B8FE5B34514148E17AC46705554152B81E355B34514148E17A44680555415C8FC2555A345141000000B068055541C3F5287C5934514114AE4731690555413333339358345141C3F5288C690555417B14AEA75734514148E17AC469055541EC51B8CE56345141AE47E10A6A05554185EB51E8553451411F85EB116A0555410000003055345141295C8F526A0555410AD7A39054345141F6285CBF6A055541EC51B83E54345141666666066B055541E17A141E5434514148E17A646B05554152B81E3554345141CDCCCCFC6B055541CDCCCC7C543451413D0AD7C36C05554185EB51A85434514185EB51986D055541EC51B8BE54345141713D0A776E055541A4703D4A553451411F85EB617105554114AE47B152345141AE47E1FA73055541333333934F345141000000E07605554152B81E454B345141D7A370CD77055541AE47E15A49345141EC51B8FE79055541CDCCCC3C49345141B81E857B7A0555419A999919493451418FC2F5D87A055541295C8FD248345141295C8F827B055541E17A145E483451411F85EBE17B055541333333C34734514114AE47417C055541713D0A1747345141CDCCCC5C7C05554166666686463451410AD7A3907C05554185EB510846345141333333F37C055541000000F045345141EC51B8AE7D0555416666662646345141000000707E055541295C8F62463451411F85EBB17E055541000000C046345141333333337F0555417B14AEF7463451418FC2F5E87F055541666666C6463451419A9999898005554185EB51984634514185EB51188105554114AE47A145345141295C8F028405554133333383413451411F85EB218A0555415C8FC2A53A3451418FC2F5488C055541EC51B85E39345141F6285C4F8F0555413D0AD75339345141CDCCCCBC8F055541333333E338345141D7A3707D90055541AE47E15A38345141AE47E1FA900555418FC2F58837345141E17A147E91055541CDCCCCEC363451410AD7A30092055541C3F5287C36345141D7A3709D9205554114AE472135345141CDCCCC0C950555411F85EBE13334514148E17A449705554152B81EC53334514185EB51C8970555418FC2F5E83334514148E17A64980555418FC2F5683434514148E17A049A055541D7A370AD34345141333333739A055541295C8F9235345141B81E859B9B055541AE47E12A36345141AE47E1FA9B055541E17A145E36345141295C8F429C055541F6285C5F363451411F85EB819C0555410AD7A330363451419A9999099D0555415C8FC2A53534514114AE47A19D05554114AE47F13434514148E17AE49D055541F6285C1F343451413D0AD7239E055541295C8FB23334514114AE47719E0555415C8FC2B533345141713D0A179F055541CDCCCC9C3334514185EB5158A0055541713D0A3733345141A4703D1AA10555413D0AD7B332345141CDCCCCCCA1055541EC51B8BE3134514185EB5148A205554114AE471131345141EC51B86EA205554185EB514830345141666666B6A20555417B14AE17303451419A999939A40555416666665630345141F6285CAFA60555413D0AD7233134514152B81E45A90555413D0AD7633134514185EB51D8A905554166666666313451410AD7A370AA055541295C8FA2313451413D0AD7F3AA0555415C8FC27531345141B81E85BBAB055541333333D3313451419A9999A9AC05554114AE471132345141D7A3708DAD055541CDCCCC8C3234514166666626B0055541CDCCCC0C33345141E17A14AEB20555416666663633345141B81E85EBB3055541C3F528CC32345141B81E853BB505554114AE475132345141295C8F92B60555417B14AED73C3451418FC2F5C8BA055541AE47E1BA3B34514148E17AD4B6055541CDCCCC3C3B345141666666D6B3055541295C8F023A3451417B14AE17B1055541A4703D5A393451415C8FC215AF0555410000005039345141D7A3700DAC055541EC51B85E3834514152B81E35AA0555410000002038345141713D0A57A70555413D0AD773383451415C8FC215A5055541EC51B8AE39345141AE47E1CAA2055541EC51B8DE3A34514185EB51E8A00555417B14AE773C345141EC51B84E9F05554152B81EF53D34514185EB51D89E055541D7A3708D3F345141AE47E18A9C0555415C8FC255413451415C8FC2459905554148E17A7442345141AE47E10A97055541F6285CBF43345141AE47E15A93055541295C8F32443451410AD7A360920555417B14AE5744345141E17A14EE910555410AD7A31045345141295C8F828F0555415C8FC29545345141C3F5284C8D055541CDCCCC5C46345141E17A149E8B055541B81E853B47345141D7A370BD890555417B14AE674834514152B81E4588055541F6285CEF4934514185EB517886055541000000F04B3451418FC2F51884055541F6285CBF4E345141F6285C9F80055541AE47E17A51345141AE47E13A7D0555413D0AD7F35334514148E17A947705554185EB513858345141C3F5286C72055541
+</a>
+
+<b>
+0106000000010000000103000000010000005100000052F38EA2313451419925D6F3AA055541A552D48D3134514149433D50AB055541381EC37531345141F9C985BBAB055541F28A33D331345141021D9AA9AC0555415EFF4711323451414FF1708DAD05554110A570BA3234514148E90F0AB10555410D1CCE0C33345141D50415AEB20555410C93673633345141CB7E84EBB305554128DF8FE532345141B2AE2EEBB4055541C3F528CC32345141B81E853BB505554114AE475132345141295C8F92B6055541AAB6ACD73C3451418C36F5C8BA055541AE47E1BA3B34514148E17AD4B6055541CDCCCC3C3B345141666666D6B3055541295C8F023A3451417B14AE17B1055541A4703D5A393451415C8FC215AF0555410000005039345141D7A3700DAC055541EC51B85E3834514152B81E35AA055541C48309253834514154D3FE91A70555410000002038345141713D0A57A70555413D0AD773383451415C8FC215A5055541EC51B8AE39345141AE47E1CAA2055541EC51B8DE3A34514185EB51E8A00555417B14AE773C345141EC51B84E9F05554152B81EF53D34514185EB51D89E055541D7A3708D3F345141AE47E18A9C0555415C8FC255413451415C8FC24599055541FDDE38B441345141F5D9AD8998055541EBB379744234514197C1E00A9705554188F75ABF43345141D27FE25A93055541C80B837439345141C742C21B8F0555412335B95E39345141F00E5A4F8F055541BF1B3E593934514160C274868F0555413D0AD75339345141CDCCCCBC8F055541BFDD8D163934514159DA9C2590055541A94934E338345141A381717D9005554180002D7A38345141C3FD14DE90055541AE47E15A38345141AE47E1FA900555418FC2F58837345141E17A147E91055541B57C9B3337345141ADBD70C591055541B29BCCEC36345141651BA400920555419BB0A3CE36345141EDF99F2A92055541D8F8297C3634514199D7709D9205554106FB482135345141BE32CE0C95055541672EECE133345141CBF2794497055541746892D333345141079229869705554152B81EC53334514185EB51C8970555418FC2F5E83334514148E17A64980555418FC2F5683434514148E17A049A055541D7A370AD34345141333333739A055541295C8F9235345141B81E859B9B055541AE47E12A36345141AE47E1FA9B055541E17A145E36345141295C8F429C055541F6285C5F363451411F85EB819C0555410AD7A330363451419A9999099D0555415C8FC2A53534514114AE47A19D05554114AE47F13434514148E17AE49D055541E67EE28434345141606532059E055541B7265D1F34345141C706D8239E055541EE7B90B23334514142B948719E05554168CC8DB4333451416A6490D89E0555415C8FC2B533345141713D0A179F055541CDCCCC9C3334514185EB5158A0055541DEA08E4E33345141DA9F6CEDA0055541320F0B373334514164673C1AA1055541C489AA2D333451412E60FF26A10555413D0AD7B332345141CDCCCCCCA1055541920EF27C323451414F5476E8A1055541858DB8BE3134514182815248A2055541A4EEAC753134514180017E58A205554114AE471131345141EC51B86EA205554185EB514830345141666666B6A2055541E59C2A4830345141344E9FB7A205554104D77C183034514163A3B541A4055541DBECEB6630345141F63C94E4A60555413D0AD7233134514152B81E45A90555413D0AD7633134514185EB51D8A90555412783906531345141D385ED3EAA05554129E06666313451415D86A470AA055541E904B76D3134514158BE9780AA05554152F38EA2313451419925D6F3AA055541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>165355 - 346845
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000003F000000333333D399275141295C8F8200015541AE47E17A932751418FC2F538E90055419A99993992275141CDCCCC9CE4005541666666D69527514148E17A84E10055411F85EB019A27514152B81E35E00055419A9999A9A12751411F85EB91DB00554114AE4761A52751415C8FC205D90055411F85EBE1A827514148E17AE4D600554133333333B0275141666666A6D200554152B81E55B3275141666666E6D0005541A4703D2AB7275141D7A3700DCF0055410AD7A370B7275141B81E85EBCE00554152B81E35B627514114AE4751CD00554133333393B327514185EB5138C800554100000030B32751418FC2F558C4005541E17A148EB527514152B81EA5C2005541CDCCCCBCB8275141295C8F82C500554148E17A84BB275141AE47E1CAC8005541666666D6BB275141CDCCCCBCCA00554100000090BE27514152B81E55CC0055415C8FC2B5C127514152B81EB5CF005541000000F0C4275141713D0AE7D10055415C8FC295C7275141E17A14BED20055411F85EB11CD27514148E17A94CF0055417B14AE87CA275141CDCCCCFCCC0055413D0AD753C9275141F6285C0FCB005541F6285CCFC627514152B81ED5C500554152B81E95C1275141333333B3BD0055417B14AE07BA275141C3F528FCB20055418FC2F548B62751410AD7A3A0AD0055413D0AD7A3B327514133333303AA00554152B81EE5AF275141D7A3704DA70055413D0AD7C3AB27514114AE47D1A500554185EB5158A8275141AE47E10AA30055410AD7A370A5275141EC51B88EA10055415C8FC215A4275141F6285C9FA100554152B81E15A2275141000000B0A30055419A9999E9A0275141C3F5288CA7005541B81E85EB9C2751418FC2F598B200554114AE47A19D275141D7A370FDBA005541333333E39D275141AE47E19AC00055417B14AE779E2751413D0AD7B3C30055410AD7A3E09C275141AE47E13ACA00554114AE47B1992751413D0AD783CF005541A4703DEA9427514133333373D1005541713D0A87902751418FC2F518D2005541CDCCCC4C8D2751415C8FC2B5D30055419A9999E98A27514185EB5108D6005541A4703D1A87275141F6285CCFDA005541CDCCCC6C83275141AE47E13ADE005541B81E855B81275141EC51B8AEE0005541C3F5286C8127514185EB51C8E30055411F85EB11842751415C8FC265E7005541F6285CBF872751410AD7A3C0EC00554185EB51D888275141EC51B86EEE005541713D0A978C275141C3F5280CF200554114AE47D18F27514114AE47B1F2005541B81E851B9327514148E17A14F5005541295C8FE295275141D7A3702DF8005541E17A144E97275141713D0A57FB005541000000909727514152B81E05FF005541CDCCCC9C97275141295C8FF200015541333333D399275141295C8F8200015541
+</a>
+
+<b>
+010600000001000000010300000001000000650000006186DC58C027514172D0003FCE005541886F9B67C02751412F773B33CE005541327D6516C127514145AF5258CD005541605E3E2AC22751418430D6F3CC00554143CC1FB5C6275141EA13CEACCC00554185EB51E8C62751411F85EB31CC0055411F85EBA1C42751410AD7A330C80055411F85EB61C32751410AD7A310C6005541D5A168A5C227514179972885C4005541713D0A57C12751417B14AEC7C1005541AD987AE4BD2751414C0C34E3BA005541AF02A3A0B4275141396E6796B00055417193ECB1B42751416B4CC2A5AF00554149173493B4275141FA84C3B5AE0055415F23EC81B12751411E4671DDAB0055411D9FFFFFAF2751418A675C0FAB005541DFFB5989AC275141388FF9EAA90055419A999929AA275141295C8F22A9005541EC51B84EA827514185EB5148A800554100000060A4275141CDCCCCACA60055418CF8AD27A3275141A270EA71A60055413B24AD07A2275141053048D1A600554193A299E9A02751417909298CA7005541F0CA47519D275141BDB73363B4005541023442339D27514188CDF0E8B5005541D9C4D5999D27514134F76FA5BA00554114AE47A19D275141D7A370FDBA005541C5C725C09D2751419A75889EBD0055414BAFACCE9D275141CF3C4EDBBE00554111B311CF9D275141A8F2E8E3BE005541048ABFE59D275141AA1B7DA8C000554145817E749E2751418E72D3A2C30055417B14AE779E2751413D0AD7B3C30055410A8864109E27514167BEDE5BC50055410AD7A3E09C275141AE47E13ACA005541E036EC219B275141FB0C2095CF0055415D1FAF579A275141E90F0BC7D00055415531136E99275141C3D45A8FD100554125EBAC3798275141B90DD703D2005541E8497C64952751416D8C3E4AD2005541AE47E11A94275141D7A3705DD3005541EC51B8EE8B275141C3F5284CD800554148595A028A2751417994C67CD9005541CDCCCCFC87275141D7A3704DDB00554102F36F4D862751416E5166E6DC0055417DDB1D65852751416BDDE12ADE005541F6285C2F85275141713D0AF7DF005541D7A3707D8527514152B81E35E2005541E17A14DE84275141B81E855BE40055415C8FC25587275141AE47E13AE9005541D7A370CD89275141EC51B85EED005541C3F5281C8B275141000000C0EE0055410AD7A3B08D27514185EB5168F1005541B537837F8E2751411362C76DF20055419726E0C38E275141C7DB707BF2005541FA4EBA5A8F275141E4819699F20055418217245C8F275141D8CEDE99F200554114AE47D18F27514114AE47B1F2005541B81E851B9327514148E17A14F500554188E1BC29942751414E7CD441F60055411382519B942751413B137FC0F6005541295C8FE295275141D7A3702DF8005541DED98BEF95275141ECA75C4AF8005541E17A144E97275141713D0A57FB0055415FD5934E97275141FE47265EFB0055416FB5B55A972751418828890BFC005541000000909727514152B81E05FF005541CDCCCC9C97275141295C8FF200015541F6D9DCD299275141416FA08200015541AE47E17A932751418FC2F538E90055419A99993992275141CDCCCC9CE4005541666666D69527514148E17A84E10055411F85EB019A27514152B81E35E00055414ABF16F69C275141BCDE056BDE005541653B99A9A1275141470BEB91DB0055414D0B4761A5275141A386C205D9005541DA548002A6275141B521B7A3D80055411F85EBE1A827514148E17AE4D6005541C0E1CD2FAD27514145B7A265D4005541B1183333B0275141A42265A6D2005541BA1FA8A3B22751410B9F8A49D100554152B81E55B3275141666666E6D0005541677069ADB427514107226E40D0005541C4963D2AB7275141DACE6F0DCF005541D1434643B72751416AC06001CF0055410AD7A370B7275141B81E85EBCE00554152B81E35B627514114AE4751CD00554133333393B327514185EB5138C8005541F6F59339B3275141AB8CADB8C400554100000030B32751418FC2F558C4005541E17A148EB527514152B81EA5C2005541E6779889B7275141EE06725DC300554105095DFFB82751410C5F3CAAC3005541DC47707DBB2751418EDB5A0FC50055418FC2F588BB27514100000000C60055413090F558BB275141DE293403C800554148E17A84BB275141AE47E1CAC80055419A3D71EDBB2751414C56FF6FC90055419B074941BD2751418E633DAACA00554100000090BE27514152B81E55CC0055416186DC58C027514172D0003FCE005541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>239734 - 365480
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000E000000D7A3701DD0BE50419A9999B94BCD5441AE47E1BACDBE5041000000B042CD5441EC51B8CECCBE5041AE47E16A3FCD5441666666F6CBBE5041666666863CCD54417B14AEA7C9BE5041F6285C4F34CD5441CDCCCC2CC5BE50413D0AD72325CD54415C8FC2C5A7BE5041333333B32ACD544185EB5168AEBE5041333333E341CD544100000000B0BE5041B81E85DB42CD5441F6285C5FB9BE50415C8FC21541CD5441CDCCCCDCB9BE50415C8FC24543CD544100000050BCBE5041B81E853B4ECD5441000000D0BDBE50417B14AE374FCD5441D7A3701DD0BE50419A9999B94BCD5441
+</a>
+
+<b>
+0106000000010000000103000000010000000900000073978A28ACBE50416EEDE1DE29CD54415F8FC2C5A7BE5041323333B32ACD544191EB5168AEBE50413A3333E341CD5441F56CA64EAFBE50412CC97E6F42CD544115000000B0BE5041AE1E85DB42CD5441A8283EEEB0BE504192D676AE42CD5441D776F4CAB5BE5041A65F11C341CD54411650A67DAEBE50417638F86D29CD544173978A28ACBE50416EEDE1DE29CD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>166446 - 218140
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001A0000008FC2F5081BDD5041C3F5288C12B15441D7A370BD1DDD5041333333F311B154410000004038DD50416666664609B1544152B81E7541DD50410000006004B15441295C8FC24ADD504152B81E05FFB05441666666764BDD5041C3F5287CFEB054411F85EBC14BDD50410AD7A340FEB0544114AE47D151DD5041AE47E17AF9B054410AD7A35057DD5041295C8F72F5B0544152B81E6554DD504148E17A94F3B05441000000D050DD5041713D0AF7F3B05441C3F5285C4EDD50413D0AD783F4B054411F85EB714BDD5041D7A370CDF5B0544152B81E354ADD504133333333F7B05441713D0A8747DD5041E17A14EEF6B054411F85EB3140DD504114AE4701F8B05441C3F528BC3DDD50418FC2F518F7B054413D0AD7D33ADD5041E17A14BEF6B05441D7A3709D34DD50415C8FC2B5F6B054417B14AEC72BDD5041A4703D5AF7B05441C3F528BC25DD50419A999969F8B054419A9999A921DD504100000020F9B05441000000B01BDD50411F85EB81FAB054416666664616DD50417B14AE47FCB054415C8FC2A513DD504114AE47C1FDB054418FC2F5081BDD5041C3F5288C12B15441
+</a>
+
+<b>
+0106000000010000000103000000010000003F000000000000B01BDD50411F85EB81FAB0544142D13A121BDD50411F4796B5FAB05441A766664616DD5041BB14AE47FCB0544186AD1B1E14DD50419E5CB87DFDB05441B28FC2A513DD5041EAAD47C1FDB054419270C53114DD50419450594BFFB05441C830E93414DD50414F832F54FFB054418BB9353919DD5041B7C3B2E1FCB05441B16414F521DD504115F05D8BFAB0544176F61B7A28DD5041AA1D708FF9B0544131CF0C3A30DD5041494B8293F8B05441958E26C335DD5041B4D68654F8B0544199C23B8B3BDD5041D4A70DF6F7B05441D151755B3FDD5041CAEEF630F9B05441B6B4038245DD5041FF900474F8B0544183B8389149DD5041494B8293F8B0544187A5641E4EDD504188A6A69BF6B05441247C6F9253DD5041B027B4C0F4B05441AE377DCF54DD5041CDD9AFA5F5B054417E33379450DD50419F0500B3F8B054411A741D0B4BDD5041A2F22B40FDB054418A8423C943DD5041BAB0DE6E01B154417604895C37DD50417F42E6F307B1544131CF0C3A30DD5041E15BBD2A0AB15441EC99901729DD504123A40DC00CB154419A05BBDD1FDD5041451BD7B30FB15441B468EE751ADD50415D1057EE10B15441796A7DF41ADD5041BABD8B5212B154411BBCF5081BDD504199E3288C12B154412BCBDFC01BDD5041A723896312B15441B910F7071CDD5041FB26D55312B15441CCA370BD1DDD5041283333F311B15441D90A004038DD5041A060664609B15441194D239A40DD5041C96989D404B1544152B81E7541DD50410000006004B1544134B4BA4D42DD504188F84EE303B15441095C8FC24ADD504127B81E05FFB0544103CA0B634BDD5041EF38E68AFEB05441666666764BDD5041C3F5287CFEB054411F85EBC14BDD50410AD7A340FEB0544177FBE61750DD5041DBB07BD6FAB054414AAE47D151DD50416E47E17AF9B054410AD7A35057DD5041295C8F72F5B0544152B81E6554DD504148E17A94F3B05441000000D050DD5041713D0AF7F3B05441C21EB6834EDD5041A45CF87AF4B05441ADF5285C4EDD5041480AD783F4B05441DFC624444EDD50415093728EF4B054411F85EB714BDD5041D7A370CDF5B0544152B81E354ADD504133333333F7B05441663D0A8747DD50412C7B14EEF6B05441DE84EB3140DD504160AE4701F8B05441EEF528BC3DDD5041A5C2F518F7B0544139D940463CDD504115864EEBF6B054413D0AD7D33ADD5041E17A14BEF6B05441D8804AA634DD5041E669CEB5F6B05441D7A3709D34DD50415C8FC2B5F6B054417B14AEC72BDD5041A4703D5AF7B054410085004E2BDD50412B90936FF7B05441CDF528BC25DD5041DA999969F8B05441C59999A921DD504140000020F9B05441A8D8620D1CDD504197EF4F6CFAB05441000000B01BDD50411F85EB81FAB05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>167077 - 58848
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000F00000048E17AE408DB5041000000C0BABB5441A4703D3A16DB50413D0AD7F3B0BB5441EC51B8BE16DB5041000000F0AFBB544114AE47D112DB504148E17AA4A8BB5441F6285CBF05DB5041E17A145E90BB5441C3F5281C04DB5041EC51B81E8DBB54415C8FC2B5FDDA50411F85EBD191BB54411F85EBA1EFDA50418FC2F5289CBB5441A4703D9AECDA5041295C8F629EBB5441D7A3701DEDDA504114AE47619FBB54417B14AED7EFDA504114AE4771A3BB54413D0AD7A3FEDA5041E17A146EB7BB544185EB51F802DB50417B14AE47BDBB5441C3F528FC04DB5041F6285C9FBDBB544148E17AE408DB5041000000C0BABB5441
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000F6285CBF05DB5041E17A145E90BB54412FDA02AA04DB5041C0400A388EBB54417B7A2B5804DB5041425CBB958DBB5441ADD24E4D04DB504158BF30808DBB544144B3163104DB5041BCD239488DBB54418CB17EBCFDDA5041B73417CD91BB5441042A3EF0F4DA5041EBB7434398BB54411F85EBA1EFDA50418FC2F5289CBB5441ACC7E29FECDA504154036A5E9EBB544148E94469F0DA50417DB1EE35A4BB54415C03FA13F3DA504149D316D0A7BB5441FA770CAFFBDA5041AB06DB6FB3BB54414A49CE5EFDDA5041B6820BB7B5BB54413D0AD7A3FEDA5041E17A146EB7BB5441B08B12ED01DB504124399EDEBBBB544148072A3503DB5041C6A10552BDBB54410B1856EF03DB504112A9AA71BDBB5441DAE626F404DB504173B3FF9DBDBB5441D055894415DB5041E70B5DA8B1BB5441A4703D3A16DB50413D0AD7F3B0BB5441A214B6BE16DB50416B6404F0AFBB544129E8DC3012DB50415B48897AA7BB54410F9A1F3710DB5041890F39CFA3BB544140F266740FDB50413AD09065A2BB544102C0FC4A09DB50411687D2F396BB5441F6285CBF05DB5041E17A145E90BB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>167083 - 58850
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000007000000C3F528FC27DB5041CDCCCC0CE4BB544114AE47613DDB5041CDCCCC5CEABB5441A4703D5A4FDB504100000050DDBB54418FC2F54849DB50415C8FC2D5D7BB5441EC51B86E45DB504148E17A14D5BB54415C8FC24540DB5041AE47E16AD2BB5441C3F528FC27DB5041CDCCCC0CE4BB5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000A4703D5A4FDB504100000050DDBB54416E1430D74ADB50418DAE433DD9BB5441A3364DDC47DB50413448FCD0D6BB5441BE6EDC9A45DB50412DD10B34D5BB544124C7457545DB5041BA762A19D5BB54411D3CBC4540DB50413DDFE56AD2BB5441EB5AD3202CDB5041A43FC40AE1BB54418F20062828DB504182EABD19E4BB544139FCD89D2ADB5041008C91D3E4BB54418C8EA48A2EDB5041186707FCE5BB5441A4F4F6DA39DB50416E6B9352E9BB544141A748613DDB5041DF17CC5CEABB5441A4703D5A4FDB504100000050DDBB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>167655 - 137661
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000130000005C8FC2957CB25041713D0AB721955441713D0AB780B25041D7A3709D1E955441EC51B81E8AB25041713D0A772595544148E17AD48BB25041D7A370FD26955441666666268DB250417B14AE87269554416666661682B25041B81E855B1E955441713D0AF787B250413D0AD76317955441713D0AD78CB2504133333393119554410AD7A3908CB250418FC2F5A8109554417B14AE2785B250413D0AD7B30E955441295C8F9281B25041B81E858B07955441E17A14AE80B25041713D0AD701955441713D0A8772B25041A4703DEA099554413D0AD7E375B25041F6285C9F10955441EC51B8BE74B25041F6285C3F11955441666666866EB2504166666636159554410000004076B25041D7A3709D2495544185EB51B87CB25041AE47E17A229554415C8FC2957CB25041713D0AB721955441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000D822B39472B25041C93672E209955441B9DCE4E975B25041462382AA109554419BC7420276B2504104B4469D10955441F513CE926EB250416F087E2E1595544197DD973476B250419A53B28624955441B0C7C8B37CB250412D70607C22955441BDA138997CB250415150A7CA219554415C8FC2957CB25041713D0AB721955441713D0AB780B25041D7A3709D1E95544108DA2CC380B250410F4C47A61E955441EC51B81E8AB25041713D0A77259554410A9D17F88AB250415036E53826955441C3A3C5F28BB250414639E2F226955441174FD43E8CB2504191FD60D8269554412898F5168DB25041BBEA457C2695544194CEB02D82B25041E7E3B96C1E9554416666661682B25041B81E855B1E955441713D0AF787B250413D0AD76317955441EB3414D18CB25041DE7B4F9A1195544170A9F3948CB25041017A4EB7109554412E43941885B250418DB7B2BF0E9554416518B99782B25041809F4C9509955441295C8F9281B25041B81E858B07955441376F9A8E81B250414A573A72079554410B8DF14681B25041C6F72AA805955441CF6210EA80B250418A997756039554412FBC98D180B250417F5C11BA02955441DF0F09B780B25041A6C8481002955441D822B39472B25041C93672E209955441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>167655 - 336095
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000130000005C8FC2957CB25041713D0AB721955441713D0AB780B25041D7A3709D1E955441EC51B81E8AB25041713D0A772595544148E17AD48BB25041D7A370FD26955441666666268DB250417B14AE87269554416666661682B25041B81E855B1E955441713D0AF787B250413D0AD76317955441713D0AD78CB2504133333393119554410AD7A3908CB250418FC2F5A8109554417B14AE2785B250413D0AD7B30E955441295C8F9281B25041B81E858B07955441E17A14AE80B25041713D0AD701955441713D0A8772B25041A4703DEA099554413D0AD7E375B25041F6285C9F10955441EC51B8BE74B25041F6285C3F11955441666666866EB2504166666636159554410000004076B25041D7A3709D2495544185EB51B87CB25041AE47E17A229554415C8FC2957CB25041713D0AB721955441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000D822B39472B25041C93672E209955441B9DCE4E975B25041462382AA109554419BC7420276B2504104B4469D10955441F513CE926EB250416F087E2E1595544197DD973476B250419A53B28624955441B0C7C8B37CB250412D70607C22955441BDA138997CB250415150A7CA219554415C8FC2957CB25041713D0AB721955441713D0AB780B25041D7A3709D1E95544108DA2CC380B250410F4C47A61E955441EC51B81E8AB25041713D0A77259554410A9D17F88AB250415036E53826955441C3A3C5F28BB250414639E2F226955441174FD43E8CB2504191FD60D8269554412898F5168DB25041BBEA457C2695544194CEB02D82B25041E7E3B96C1E9554416666661682B25041B81E855B1E955441713D0AF787B250413D0AD76317955441EB3414D18CB25041DE7B4F9A1195544170A9F3948CB25041017A4EB7109554412E43941885B250418DB7B2BF0E9554416518B99782B25041809F4C9509955441295C8F9281B25041B81E858B07955441376F9A8E81B250414A573A72079554410B8DF14681B25041C6F72AA805955441CF6210EA80B250418A997756039554412FBC98D180B250417F5C11BA02955441DF0F09B780B25041A6C8481002955441D822B39472B25041C93672E209955441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>168126 - 1781575
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000A0000001F85EB710EB2504185EB51986A8654410000008010B250418FC2F5A86E865441CDCCCC6C2BB250413D0AD7B36F865441EC51B8DE2FB250410AD7A39059865441B81E856B1BB250413D0AD743598654413D0AD7D313B2504148E17AE45986544152B81EB50CB25041C3F528BC59865441F6285CDF09B25041A4703D5A5986544148E17A140AB25041333333235A8654411F85EB710EB2504185EB51986A865441
+</a>
+
+<b>
+010600000001000000010300000001000000190000004A742A4F24B25041CBF47DBF6D8654413BDA831026B25041F9C56BCC6D8654410806242127B25041016713B86D8654414F0AE3DC2BB25041FF9FA55D6D8654411C0604A82BB25041AA3DD0776E86544169933DAC2BB2504179DCE2776E865441F5FAF0AC2DB25041B01114516486544143029FB92FB25041EBBF0D9058865441FD448E5527B250419DD4990659865441A82124C621B250414477E26759865441520E1EA71BB25041B99FFB455986544149DF2E4118B2504122F14B7D598654416F565D3F14B250414FACD6DC598654417FA992F210B25041175FCFD7598654417D86CEF50CB25041A34697BD59865441D039D90C0BB25041AF7FBE8D598654412E09A0020BB250413E5583985986544189D817160CB250415EB406215D865441CBD87E3E0CB250410779B0A55D8654415381A7610CB250413B9722195E8654417C7943F210B250410CA752166D8654415C3E234B17B250412E8F889D6D865441B2DF6AAE17B250410E78CBA56D865441CCB521FB1BB25041DAD025826D8654414A742A4F24B25041CBF47DBF6D865441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>168290 - 43300
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000220000005C8FC2A5EBBC5041000000B04B81544100000080ECBC504148E17A94498154417B14AEA7EDBC5041EC51B81E468154411F85EB81EEBC50419A9999A9438154418FC2F5A8EFBC50417B14AEA740815441CDCCCC9CF0BC5041C3F5280C3E815441E17A141EF2BC5041333333E33A8154418FC2F5B8F3BC5041E17A142E38815441A4703D7AF5BC5041295C8F1236815441713D0AC7F6BC504185EB5178358154418FC2F548E7BC5041666666A6308154419A999929E3BC50417B14AE573E8154417B14AE47E1BC504185EB51B8458154410AD7A340E0BC50418FC2F5084D815441B81E85BBDFBC5041295C8FF254815441000000B0DFBC5041000000705C8154410AD7A360E0BC50413333330364815441000000C0E1BC5041C3F528BC6B815441C3F528BCE2BC5041C3F5288C708154419A999939E4BC5041AE47E19A718154419A999999EEBC50411F85EB01708154417B14AE27EEBC50419A9999496E8154413D0AD733EDBC504114AE47216B815441CDCCCC8CECBC5041C3F528EC68815441C3F528CCEBBC5041A4703D2A66815441295C8F32EBBC5041AE47E15A6381544152B81EE5EABC504100000080618154411F85EB71EABC5041A4703DCA5D815441B81E854BEABC50411F85EBA15B815441B81E854BEABC5041B81E85EB568154411F85EB71EABC50416666663654815441EC51B8BEEABC5041AE47E19A51815441295C8F32EBBC50411F85EB314E8154415C8FC2A5EBBC5041000000B04B815441
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000008B1BE1BFF1BC5041919AFBC03D815441999F0B43F3BC5041598326523B815441FDA519DCF4BC5041C7482D6538815441BD5ED4ACF6BC50419E0250B835815441872CB398F5BC50417A069809368154412DC0B373F5BC5041BA37691A36815441C99C61E1F3BC504176368AFD37815441AA6CE79CF3BC5041D579685D38815441F20D8215F3BC5041A94ACF413981544128CF1134F1BC5041C916C9D53C81544115438400F0BC5041AB5BFBCF3F815441EC9BB7A8ECBC50416A244A4449815441E90C06B8EBBC50413B6CA0FB4B815441C10D5BFAEABC5041338678D94F815441D27386E8EABC5041C3F4D65F50815441394E1977EABC50419BF6FF6D56815441B81E854BEABC5041230586115B815441B81E854BEABC50411F85EBA15B815441C079B45AEBBC50410E37EF06578154412FB93A71EBBC50415383386556815441A045C4D3EBBC504135F1671551815441331F65BBECBC50416B473CF54D81544131EAB8E8ECBC504138E984274D815441AE47E10AEDBC5041D7A3706D4C815441BF456711EDBC5041DBBFE36E4C815441993723CDEDBC5041E789DD1A49815441D8435B5CEEBC5041A4170F3A478154412D1FD9A4EEBC50417AE23B0746815441FDC890DBEFBC50415CF83BB742815441FDC890DBEFBC5041C15CE5F2418154418B1BE1BFF1BC5041919AFBC03D815441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>168290 - 80892
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000220000005C8FC2A5EBBC5041000000B04B81544100000080ECBC504148E17A94498154417B14AEA7EDBC5041EC51B81E468154411F85EB81EEBC50419A9999A9438154418FC2F5A8EFBC50417B14AEA740815441CDCCCC9CF0BC5041C3F5280C3E815441E17A141EF2BC5041333333E33A8154418FC2F5B8F3BC5041E17A142E38815441A4703D7AF5BC5041295C8F1236815441713D0AC7F6BC504185EB5178358154418FC2F548E7BC5041666666A6308154419A999929E3BC50417B14AE573E8154417B14AE47E1BC504185EB51B8458154410AD7A340E0BC50418FC2F5084D815441B81E85BBDFBC5041295C8FF254815441000000B0DFBC5041000000705C8154410AD7A360E0BC50413333330364815441000000C0E1BC5041C3F528BC6B815441C3F528BCE2BC5041C3F5288C708154419A999939E4BC5041AE47E19A718154419A999999EEBC50411F85EB01708154417B14AE27EEBC50419A9999496E8154413D0AD733EDBC504114AE47216B815441CDCCCC8CECBC5041C3F528EC68815441C3F528CCEBBC5041A4703D2A66815441295C8F32EBBC5041AE47E15A6381544152B81EE5EABC504100000080618154411F85EB71EABC5041A4703DCA5D815441B81E854BEABC50411F85EBA15B815441B81E854BEABC5041B81E85EB568154411F85EB71EABC50416666663654815441EC51B8BEEABC5041AE47E19A51815441295C8F32EBBC50411F85EB314E8154415C8FC2A5EBBC5041000000B04B815441
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000008B1BE1BFF1BC5041919AFBC03D815441999F0B43F3BC5041598326523B815441FDA519DCF4BC5041C7482D6538815441BD5ED4ACF6BC50419E0250B835815441872CB398F5BC50417A069809368154412DC0B373F5BC5041BA37691A36815441C99C61E1F3BC504176368AFD37815441AA6CE79CF3BC5041D579685D38815441F20D8215F3BC5041A94ACF413981544128CF1134F1BC5041C916C9D53C81544115438400F0BC5041AB5BFBCF3F815441EC9BB7A8ECBC50416A244A4449815441E90C06B8EBBC50413B6CA0FB4B815441C10D5BFAEABC5041338678D94F815441D27386E8EABC5041C3F4D65F50815441394E1977EABC50419BF6FF6D56815441B81E854BEABC5041230586115B815441B81E854BEABC50411F85EBA15B815441C079B45AEBBC50410E37EF06578154412FB93A71EBBC50415383386556815441A045C4D3EBBC504135F1671551815441331F65BBECBC50416B473CF54D81544131EAB8E8ECBC504138E984274D815441AE47E10AEDBC5041D7A3706D4C815441BF456711EDBC5041DBBFE36E4C815441993723CDEDBC5041E789DD1A49815441D8435B5CEEBC5041A4170F3A478154412D1FD9A4EEBC50417AE23B0746815441FDC890DBEFBC50415CF83BB742815441FDC890DBEFBC5041C15CE5F2418154418B1BE1BFF1BC5041919AFBC03D815441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>170884 - 2961276
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001F000000C3F528FCC4A35041EC51B8FE125854417B14AE47C2A350413D0AD7530D585441713D0AD7BEA35041AE47E1DA0B58544152B81E55BBA350413D0AD7B32858544148E17A34BAA35041295C8FE231585441713D0A17BDA35041B81E858B31585441A4703DFAC3A3504148E17A443258544148E17A04CCA35041F6285CEF33585441EC51B81ED5A350411F85EB013758544152B81EB5E0A35041EC51B85E3A585441CDCCCCBCECA35041AE47E13A3D585441D7A3703DF6A35041666666964158544114AE4711FDA350411F85EBF145585441E17A149E00A4504114AE479145585441D7A370ED04A45041666666E642585441EC51B8DE04A45041295C8F72425854413D0AD7E305A45041EC51B8AE3E585441295C8F1206A45041666666163E5854415C8FC275FFA35041B81E85CB3A58544114AE47C1FCA3504114AE475137585441B81E85EBF9A35041295C8F6235585441666666D6F2A35041666666E635585441CDCCCC7CEFA35041CDCCCC9C345854419A999999E6A350411F85EBF12E5854418FC2F588F1A35041CDCCCCEC33585441C3F5288CF8A35041295C8F923158544166666696D9A350418FC2F5981F5854419A999979D8A35041666666F61E585441C3F528ECD9A35041AE47E13A1A585441C3F5283CC9A35041AE47E1BA16585441C3F528FCC4A35041EC51B8FE12585441
+</a>
+
+<b>
+0106000000010000000103000000010000001F00000097AF905FC8A35041E41D04F9155854416DE7FB89C9A350419A9999A9165854413F355E3ACBA3504121B072E816585441BE9F1AB7CCA35041A69BC48015585441FA7E6A7CCDA3504114AE47691258544100000058D1A350411D5A644312585441A01A2F8DD1A350413BDF4F7511585441250681D5CEA35041B6F3FD540F5854416891ED74CEA35041CFF753930C5854411F85EB99CDA35041DF4F8D2709585441A8C64BC7CFA3504152B81E85085854411D5A6413D1A3504114AE47A90958544173689165D2A35041333333930D585441022B87CED3A35041C3F528E40E5854410E2DB20DD6A35041508D97D60E585441DBF97E9AD5A35041713D0A2F0C58544154E3A563D4A35041EC51B8E60958544175931884D1A35041E92631C0065854416DE7FB59CCA35041986E122B0558544104560EF5C9A350414260E5D8075854419318042EC7A3504139B4C8A6065854418B6CE743C3A350413BDF4FA503585441A8C64BEFC1A350418B6CE72B055854415839B4D0C0A35041C1CAA11D095854414A0C0253BFA35041A69BC4F00B5854411418F995BFA35041B6FC9B2C0C5854417B14AE47C2A350413D0AD7530D585441ECEBEA52C3A350419338C1830F5854417B14AEC7C3A35041759318EC0F585441B369679CC5A350411CD18B8B1358544197AF905FC8A35041E41D04F915585441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>170884 - 3812928
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001F000000C3F528FCC4A35041EC51B8FE125854417B14AE47C2A350413D0AD7530D585441713D0AD7BEA35041AE47E1DA0B58544152B81E55BBA350413D0AD7B32858544148E17A34BAA35041295C8FE231585441713D0A17BDA35041B81E858B31585441A4703DFAC3A3504148E17A443258544148E17A04CCA35041F6285CEF33585441EC51B81ED5A350411F85EB013758544152B81EB5E0A35041EC51B85E3A585441CDCCCCBCECA35041AE47E13A3D585441D7A3703DF6A35041666666964158544114AE4711FDA350411F85EBF145585441E17A149E00A4504114AE479145585441D7A370ED04A45041666666E642585441EC51B8DE04A45041295C8F72425854413D0AD7E305A45041EC51B8AE3E585441295C8F1206A45041666666163E5854415C8FC275FFA35041B81E85CB3A58544114AE47C1FCA3504114AE475137585441B81E85EBF9A35041295C8F6235585441666666D6F2A35041666666E635585441CDCCCC7CEFA35041CDCCCC9C345854419A999999E6A350411F85EBF12E5854418FC2F588F1A35041CDCCCCEC33585441C3F5288CF8A35041295C8F923158544166666696D9A350418FC2F5981F5854419A999979D8A35041666666F61E585441C3F528ECD9A35041AE47E13A1A585441C3F5283CC9A35041AE47E1BA16585441C3F528FCC4A35041EC51B8FE12585441
+</a>
+
+<b>
+0106000000010000000103000000010000001F00000097AF905FC8A35041E41D04F9155854416DE7FB89C9A350419A9999A9165854413F355E3ACBA3504121B072E816585441BE9F1AB7CCA35041A69BC48015585441FA7E6A7CCDA3504114AE47691258544100000058D1A350411D5A644312585441A01A2F8DD1A350413BDF4F7511585441250681D5CEA35041B6F3FD540F5854416891ED74CEA35041CFF753930C5854411F85EB99CDA35041DF4F8D2709585441A8C64BC7CFA3504152B81E85085854411D5A6413D1A3504114AE47A90958544173689165D2A35041333333930D585441022B87CED3A35041C3F528E40E5854410E2DB20DD6A35041508D97D60E585441DBF97E9AD5A35041713D0A2F0C58544154E3A563D4A35041EC51B8E60958544175931884D1A35041E92631C0065854416DE7FB59CCA35041986E122B0558544104560EF5C9A350414260E5D8075854419318042EC7A3504139B4C8A6065854418B6CE743C3A350413BDF4FA503585441A8C64BEFC1A350418B6CE72B055854415839B4D0C0A35041C1CAA11D095854414A0C0253BFA35041A69BC4F00B5854411418F995BFA35041B6FC9B2C0C5854417B14AE47C2A350413D0AD7530D585441ECEBEA52C3A350419338C1830F5854417B14AEC7C3A35041759318EC0F585441B369679CC5A350411CD18B8B1358544197AF905FC8A35041E41D04F915585441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>966442 - 1151056
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000200000014000000F5482441F25A5141B78BFACE63455441302304B9F05A514168EC87CA644554414331E255EF5A5141DDBB805E6545544185EB5188EE5A5141C3F528AC654554411F85EBE1ED5A514166666626784554419A9999F9EE5A51413333336378455441F6285C0FED5A5141CDCCCCDC7F455441EC51B8FEF35A51419A999959814554411F85EB51FD5A51419A99993984455441333333B3065B5141B81E852B864554413D0AD7E3065B51416666667685455441F6285C3F095B5141EC51B8FE7B455441EC51B89E105B5141F6285CDF6B455441EC51B81E0D5B51418FC2F5B86C455441E17A14CE085B514148E17A646C4554417B14AEB7025B5141000000006945544192813A0F035B51418453385C6845544171983FDAF85A5141B30F8BEA61455441DDCC892EF65A51411AEFD63A60455441F5482441F25A5141B78BFACE63455441230000008C6452F2FC5A5141E10343117545544140DA896DFC5A5141D95D4CE374455441213B1C59FC5A5141498E15D974455441DB564A02FC5A51417B8003A67445544138952F6EFB5A514174DA0C7874455441C1BE6F4AFB5A5141E40AD66D74455441DAB7E630FB5A51418DD3835E744554411250CB2BFB5A5141BEC5712B7445544169871D3BFB5A5141B81F7BFD7345544177D30A97FB5A51414CF644647345544194D314DAFA5A514176423C0373455441B47282EEFA5A51411865F3C572455441518EA654FB5A514186F658EA71455441AF6BEF91FB5A5141B1425089714554412CE8A5E3FB5A5141AB9C595B714554411A95252BFC5A5141E3343E5671455441E9A2375EFC5A5141C395D04171455441EF482E8CFC5A51418457F51871455441DDF5ADD3FC5A5141EEE1C7E07045544122DA7F2AFD5A5141780B08BD70455441F1E7915DFD5A5141B0A3ECB770455441875DBF95FD5A5141277AACDB70455441750A3FDDFD5A5141CF425ACC7045544144185110FE5A514197AA75D17045544183562C39FE5A5141B749E3E57045544151643E6CFE5A51412E20A30971455441FA2CEC5CFE5A514103D4AB6A71455441A2F5994DFE5A514161B1F4A7714554417103AC80FE5A5141C08E3DE5714554417103AC80FE5A5141E6D3A12772455441A2F5994DFE5A51414B57E19272455441C2940762FE5A514178423C037345544105DA75E7FD5A5141D8BEE8117445544168BE5181FD5A5141B91F7BFD734554418C6452F2FC5A5141E103431175455441
+</a>
+
+<b>
+01060000000100000001030000000200000014000000F5482441F25A5141B78BFACE63455441302304B9F05A514168EC87CA644554414331E255EF5A5141DDBB805E6545544185EB5188EE5A5141C3F528AC654554411F85EBE1ED5A514166666626784554419A9999F9EE5A51413333336378455441F6285C0FED5A5141CDCCCCDC7F455441EC51B8FEF35A51419A999959814554411F85EB51FD5A51419A99993984455441333333B3065B5141B81E852B864554413D0AD7E3065B51416666667685455441F6285C3F095B5141EC51B8FE7B455441EC51B89E105B5141F6285CDF6B455441EC51B81E0D5B51418FC2F5B86C455441E17A14CE085B514148E17A646C4554417B14AEB7025B5141000000006945544191813A0F035B51418453385C6845544171983FDAF85A5141B30F8BEA61455441DDCC892EF65A51411AEFD63A60455441F5482441F25A5141B78BFACE6345544123000000916452F2FC5A5141E1034311754554413FDA896DFC5A5141DC5D4CE3744554411F3B1C59FC5A5141478E15D974455441DC564A02FC5A51417E8003A67445544139952F6EFB5A514179DA0C7874455441BFBE6F4AFB5A5141E40AD66D74455441DAB7E630FB5A51418AD3835E744554411550CB2BFB5A5141C0C5712B7445544165871D3BFB5A5141BC1F7BFD7345544178D30A97FB5A514149F644647345544197D314DAFA5A514171423C0373455441B77282EEFA5A51411D65F3C572455441548EA654FB5A514187F658EA71455441B36BEF91FB5A5141AE4250897145544127E8A5E3FB5A5141A99C595B714554411B95252BFC5A5141E4343E5671455441E4A2375EFC5A5141C595D04171455441F3482E8CFC5A51418557F51871455441DDF5ADD3FC5A5141ECE1C7E07045544120DA7F2AFD5A51417D0B08BD70455441F4E7915DFD5A5141ADA3ECB770455441835DBF95FD5A5141277AACDB70455441770A3FDDFD5A5141CC425ACC7045544141185110FE5A51419CAA75D17045544180562C39FE5A5141BC49E3E57045544154643E6CFE5A51412B20A30971455441FA2CEC5CFE5A514104D4AB6A714554419FF5994DFE5A514163B1F4A7714554417403AC80FE5A5141C18E3DE5714554417403AC80FE5A5141E5D3A127724554419FF5994DFE5A51414857E19272455441BF940762FE5A51417B423C037345544102DA75E7FD5A5141DBBEE8117445544164BE5181FD5A5141BC1F7BFD73455441916452F2FC5A5141E103431175455441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>966442 - 3945193
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000200000014000000F5482441F25A5141B78BFACE63455441302304B9F05A514168EC87CA644554414331E255EF5A5141DDBB805E6545544185EB5188EE5A5141C3F528AC654554411F85EBE1ED5A514166666626784554419A9999F9EE5A51413333336378455441F6285C0FED5A5141CDCCCCDC7F455441EC51B8FEF35A51419A999959814554411F85EB51FD5A51419A99993984455441333333B3065B5141B81E852B864554413D0AD7E3065B51416666667685455441F6285C3F095B5141EC51B8FE7B455441EC51B89E105B5141F6285CDF6B455441EC51B81E0D5B51418FC2F5B86C455441E17A14CE085B514148E17A646C4554417B14AEB7025B5141000000006945544192813A0F035B51418453385C6845544171983FDAF85A5141B30F8BEA61455441DDCC892EF65A51411AEFD63A60455441F5482441F25A5141B78BFACE63455441230000008C6452F2FC5A5141E10343117545544140DA896DFC5A5141D95D4CE374455441213B1C59FC5A5141498E15D974455441DB564A02FC5A51417B8003A67445544138952F6EFB5A514174DA0C7874455441C1BE6F4AFB5A5141E40AD66D74455441DAB7E630FB5A51418DD3835E744554411250CB2BFB5A5141BEC5712B7445544169871D3BFB5A5141B81F7BFD7345544177D30A97FB5A51414CF644647345544194D314DAFA5A514176423C0373455441B47282EEFA5A51411865F3C572455441518EA654FB5A514186F658EA71455441AF6BEF91FB5A5141B1425089714554412CE8A5E3FB5A5141AB9C595B714554411A95252BFC5A5141E3343E5671455441E9A2375EFC5A5141C395D04171455441EF482E8CFC5A51418457F51871455441DDF5ADD3FC5A5141EEE1C7E07045544122DA7F2AFD5A5141780B08BD70455441F1E7915DFD5A5141B0A3ECB770455441875DBF95FD5A5141277AACDB70455441750A3FDDFD5A5141CF425ACC7045544144185110FE5A514197AA75D17045544183562C39FE5A5141B749E3E57045544151643E6CFE5A51412E20A30971455441FA2CEC5CFE5A514103D4AB6A71455441A2F5994DFE5A514161B1F4A7714554417103AC80FE5A5141C08E3DE5714554417103AC80FE5A5141E6D3A12772455441A2F5994DFE5A51414B57E19272455441C2940762FE5A514178423C037345544105DA75E7FD5A5141D8BEE8117445544168BE5181FD5A5141B91F7BFD734554418C6452F2FC5A5141E103431175455441
+</a>
+
+<b>
+01060000000100000001030000000200000014000000F5482441F25A5141B78BFACE63455441302304B9F05A514168EC87CA644554414331E255EF5A5141DDBB805E6545544185EB5188EE5A5141C3F528AC654554411F85EBE1ED5A514166666626784554419A9999F9EE5A51413333336378455441F6285C0FED5A5141CDCCCCDC7F455441EC51B8FEF35A51419A999959814554411F85EB51FD5A51419A99993984455441333333B3065B5141B81E852B864554413D0AD7E3065B51416666667685455441F6285C3F095B5141EC51B8FE7B455441EC51B89E105B5141F6285CDF6B455441EC51B81E0D5B51418FC2F5B86C455441E17A14CE085B514148E17A646C4554417B14AEB7025B5141000000006945544191813A0F035B51418453385C6845544171983FDAF85A5141B30F8BEA61455441DDCC892EF65A51411AEFD63A60455441F5482441F25A5141B78BFACE6345544123000000916452F2FC5A5141E1034311754554413FDA896DFC5A5141DC5D4CE3744554411F3B1C59FC5A5141478E15D974455441DC564A02FC5A51417E8003A67445544139952F6EFB5A514179DA0C7874455441BFBE6F4AFB5A5141E40AD66D74455441DAB7E630FB5A51418AD3835E744554411550CB2BFB5A5141C0C5712B7445544165871D3BFB5A5141BC1F7BFD7345544178D30A97FB5A514149F644647345544197D314DAFA5A514171423C0373455441B77282EEFA5A51411D65F3C572455441548EA654FB5A514187F658EA71455441B36BEF91FB5A5141AE4250897145544127E8A5E3FB5A5141A99C595B714554411B95252BFC5A5141E4343E5671455441E4A2375EFC5A5141C595D04171455441F3482E8CFC5A51418557F51871455441DDF5ADD3FC5A5141ECE1C7E07045544120DA7F2AFD5A51417D0B08BD70455441F4E7915DFD5A5141ADA3ECB770455441835DBF95FD5A5141277AACDB70455441770A3FDDFD5A5141CC425ACC7045544141185110FE5A51419CAA75D17045544180562C39FE5A5141BC49E3E57045544154643E6CFE5A51412B20A30971455441FA2CEC5CFE5A514104D4AB6A714554419FF5994DFE5A514163B1F4A7714554417403AC80FE5A5141C18E3DE5714554417403AC80FE5A5141E5D3A127724554419FF5994DFE5A51414857E19272455441BF940762FE5A51417B423C037345544102DA75E7FD5A5141DBBEE8117445544164BE5181FD5A5141BC1F7BFD73455441916452F2FC5A5141E103431175455441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>171816 - 3184818
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000020000000103000000010000001E00000014AE472105945141713D0A3770A95441D7A3706D05945141EC51B83E77A954415C8FC2A5089451411F85EBC187A95441D7A370AD099451419A9999498AA9544185EB51D80994514114AE47A18AA9544152B81EC50C945141EC51B89E88A95441D7A3707D0F9451411F85EBC185A9544148E17AF4119451417B14AE3783A9544114AE472115945141CDCCCCEC7CA954418FC2F5C816945141B81E855B77A95441A4703D9A199451411F85EB3173A95441000000901A945141666666A671A95441AE47E1FA199451418FC2F54870A95441EC51B86E169451418FC2F5F867A95441D7A3706D0F945141CDCCCC5C53A954417B14AE570F9451410AD7A32053A95441A4703D2A0F945141C3F5282C55A954418FC2F5380B945141AE47E10A58A95441000000200D94514185EB51C85FA95441AE47E1AA0F9451413D0AD7F364A9544114AE471111945141E17A140E6AA95441E17A14CE10945141C3F5285C6AA954410AD7A3A01394514185EB51E870A95441666666E6129451410000003074A95441295C8F3210945141D7A3700D75A95441E17A146E0F945141EC51B81E73A954413D0AD7C310945141EC51B8AE6DA95441713D0AE70F94514185EB51786BA95441AE47E1CA0C945141AE47E14A6FA9544114AE472105945141713D0A3770A9544101030000000100000016000000000000400A9451417B14AE1765A95441000000A00C945141E17A149E6EA95441F6285CAF0C945141C3F528DC6EA954419A99999910945141B81E853B6AA9544185EB51380F9451417B14AE2765A954411F85EBB10C945141CDCCCCCC5FA95441E17A14AE0A94514152B81EB557A95441295C8FB20E945141B81E85EB54A9544152B81EE50E9451417B14AE1753A9544114AE47F10A945141713D0A7748A95441713D0AF708945141D7A370FD45A954419A9999C907945141EC51B87E41A95441EC51B84E04945141333333533CA95441E17A141E019451411F85EB613DA9544100000040FF93514152B81E853CA954418FC2F5C8FD93514152B81E7538A95441D7A370BDFA93514152B81E4539A9544100000080FA93514114AE479139A9544152B81E95FA935141D7A370CD39A95441CDCCCCACFC935141A4703DBA3FA9544114AE4781039451410AD7A38050A95441000000400A9451417B14AE1765A95441
+</a>
+
+<b>
+0106000000010000000103000000010000009700000056EC45901094514156DF2AA86AA954410AD7A3A01394514185EB51E870A95441666666E6129451410000003074A95441295C8F3210945141D7A3700D75A95441E17A146E0F945141EC51B81E73A95441BF3023CF109451415EFE61986DA954417CB7E2C20F945141E19CF3A06BA95441F11609C20F94514108C980B16BA9544156A0809B0F945141888E8BE26BA95441897CB1200D945141622064E16EA954416A0F28C10C94514101F60C4C6FA95441F3A6276B0C945141BA8C67566FA95441CD03D7730B945141ABDA2D746FA954413BE2307D0A94514192A1DF916FA9544196F4BE2D0A9451412A25709B6FA954415D3AA28608945141728F60CE6FA95441A6D5071007945141D5E979FB6FA954412475438D069451416A2F380B70A954418501F172069451410970630E70A95441E51ABC44069451417689F31370A954418EF323AB059451419459712670A954419246882005945141320B0A3E70A954419138D9890594514111E266D077A954419BBC876E06945141E3151B657CA95441DB32AB8007945141C4C6EAE281A95441B11A65AD08945141EA7CACD487A9544185EB51D80994514114AE47A18AA9544152B81EC50C945141EC51B89E88A95441D7A3707D0F9451411F85EBC185A9544148E17AF4119451417B14AE3783A95441BF885788149451417C09E81B7EA95441D58F1FA3149451419B5662E17DA95441F7CF0701159451410105B72C7DA954414EA614421594514100FD747E7CA95441F081467C15945141BEDFAFBA7BA95441547C6591169451413644701678A95441156CD5DC169451410DBE283E77A95441AB9CC73E1794514123CC74AD76A95441C17FC88A1A945141CCB8CBAE71A9544141BB98E819945141234D1E1E70A9544150A7D787199451417569673B6FA954411CF03EB6189451416C7B8C656DA9544172D8307318945141A5F4BDBF6CA9544101F0FB1118945141482561CF6BA95441536AC3AF17945141F2833AE96AA95441EB51E018179451410587AB8769A95441D436B1A5169451418F5BC57968A95441586B11701694514181651EFC67A95441ECFEDA43169451412738D87A67A9544119464E9015945141F08A936A65A954417F55063E159451417D8D7D7864A954416C8AFF251594514147C9CC3164A95441EBF8D25C149451414BA1E8E161A95441471597031494514181B35DDB60A95441F7026CB413945141943E70F25FA9544125E6A222139451418DA882455EA95441B54A2CBD12945141AD94FC1A5DA954411E33D9CB11945141621DF7545AA95441B8465C1511945141AA520D3C58A954411A98702C1094514195B3C18E55A95441B06E1E620F945141BB1B803D53A95441490EA59F0D945141ED688AAC4FA95441C5659EAE0C945141750578244DA95441692CED3D0C945141A81876F54BA95441C8D5971B0C945141804825994BA95441023C90D20B9451418A77C8D44AA95441694F579C0B945141EE5FFD424AA95441392438750B945141248BCCD949A954411D6BCF1A0B9451411CE8B4E648A95441358A8DE30A945141F302DC6548A954413A05292109945141C227283246A95441767F1008099451418159BF1246A95441F69321DD07945141E44847C941A954411258F7B3079451413982945E41A9544111056A2506945141FD757A0E3FA95441AEDA28CE049451410D4287103DA95441455C47A60494514198B447D53CA95441DE8AE27904945141DD09C3E33BA9544166D7C4C903945141071F467F3CA954410222CC2002945141686A270C3DA95441EA74F30B0194514155138C593DA95441DE470633FF935141BE7723613CA954412873C8D0FE935141E10AB6503BA9544162958212FE93514129C1134139A9544196C56FBBFD9351413E7CBA7838A954415F6649B9FC935141955E9CBD38A9544183BDA492FB93514179103B0C39A95441D7A370BDFA93514152B81E4539A9544152B81E95FA935141D7A370CD39A954412D636E1FFB935141E2E812553BA95441EE7285C3FB935141CCA2B3253DA954415A0F0B3AFC9351417E284D753EA9544184AE558EFC93514142EAF9633FA95441D08BF236FD93514167350A0741A95441EB62ED14FE9351418573BD2E43A95441FE4C331B00945141A282A82748A954418D012AE900945141185085214AA9544102EAE59601945141788739CC4BA9544194245D5102945141A7E232964DA9544172059D7A029451412DC082FB4DA954417A37745E039451418CC81A2B50A954417C6E307B039451410B35AE7150A95441C9CC709E03945141D519A8D950A95441EC8BC5B803945141ED1D092A51A95441C1FFF6D1039451414FEBF07651A95441865D8F0504945141FB31711452A9544106F5BA430594514181E5B2DF55A9544181D1633B06945141205EB6D358A9544165761E5A069451417A55843159A954414FBD0C9A06945141468CACF459A95441E53BECCD06945141BEF305935AA954413E9A3470079451417C9A69825CA95441371D37140894514164F412775EA9544198E4B552089451410755D9355FA954417E32D5C508945141C65D469560A9544158FE1454099451414460824762A9544110939D690994514133413E8962A954418C2379C30994514169A98B9B63A95441ED65D13A0A9451410B74DC0765A954417AC460650A945141B3DF95AD65A95441ECE7709A0A945141286B658266A95441FCFF34FF0A9451411855851668A95441D92D9B290B945141B34D90C068A95441379F636B0B945141BA5763C869A9544195AEF7810B945141F16CF0226AA95441F72FACE90B945141B6E7D9C26BA954415ECCEA670C945141788B28BD6DA95441537FD2810C945141FB250D256EA9544106CFD6AA0C945141ED54E3C96EA954414CCC1EE20D945141FE5892716DA954416342F47A0E945141295AECBC6CA9544121B36F4E0F9451412DB57DA36BA9544156A0809B0F945141F8C76C566BA9544135DC5DA50F94514179F8F4686BA95441547DAD72109451418983B7666AA95441EF63D48D10945141F0B56E496AA95441A12C2E720F945141098491FC65A9544123E829D20E945141F718074F64A9544141E0AE670E945141665C346D63A954412FC7E7830D94514173A5228A61A95441C204F2980C94514160AC7F685FA95441D2783CAF0A9451413D76C3B957A95441878848B30E9451414EAED3E454A954414F4330D10E94514179F41BD053A95441D01F67420F94514152E8C61554A954412E6EA41B0F945141CC5EC93655A954414181403C0B94514168D8451858A95441B4ADCF290D945141243F45DC5FA95441499487950F94514139E96CC864A9544114AE471111945141E17A140E6AA9544156EC45901094514156DF2AA86AA95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>171816 - 3588935
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000020000000103000000010000001E00000014AE472105945141713D0A3770A95441D7A3706D05945141EC51B83E77A954415C8FC2A5089451411F85EBC187A95441D7A370AD099451419A9999498AA9544185EB51D80994514114AE47A18AA9544152B81EC50C945141EC51B89E88A95441D7A3707D0F9451411F85EBC185A9544148E17AF4119451417B14AE3783A9544114AE472115945141CDCCCCEC7CA954418FC2F5C816945141B81E855B77A95441A4703D9A199451411F85EB3173A95441000000901A945141666666A671A95441AE47E1FA199451418FC2F54870A95441EC51B86E169451418FC2F5F867A95441D7A3706D0F945141CDCCCC5C53A954417B14AE570F9451410AD7A32053A95441A4703D2A0F945141C3F5282C55A954418FC2F5380B945141AE47E10A58A95441000000200D94514185EB51C85FA95441AE47E1AA0F9451413D0AD7F364A9544114AE471111945141E17A140E6AA95441E17A14CE10945141C3F5285C6AA954410AD7A3A01394514185EB51E870A95441666666E6129451410000003074A95441295C8F3210945141D7A3700D75A95441E17A146E0F945141EC51B81E73A954413D0AD7C310945141EC51B8AE6DA95441713D0AE70F94514185EB51786BA95441AE47E1CA0C945141AE47E14A6FA9544114AE472105945141713D0A3770A9544101030000000100000016000000000000400A9451417B14AE1765A95441000000A00C945141E17A149E6EA95441F6285CAF0C945141C3F528DC6EA954419A99999910945141B81E853B6AA9544185EB51380F9451417B14AE2765A954411F85EBB10C945141CDCCCCCC5FA95441E17A14AE0A94514152B81EB557A95441295C8FB20E945141B81E85EB54A9544152B81EE50E9451417B14AE1753A9544114AE47F10A945141713D0A7748A95441713D0AF708945141D7A370FD45A954419A9999C907945141EC51B87E41A95441EC51B84E04945141333333533CA95441E17A141E019451411F85EB613DA9544100000040FF93514152B81E853CA954418FC2F5C8FD93514152B81E7538A95441D7A370BDFA93514152B81E4539A9544100000080FA93514114AE479139A9544152B81E95FA935141D7A370CD39A95441CDCCCCACFC935141A4703DBA3FA9544114AE4781039451410AD7A38050A95441000000400A9451417B14AE1765A95441
+</a>
+
+<b>
+0106000000010000000103000000010000009700000056EC45901094514156DF2AA86AA954410AD7A3A01394514185EB51E870A95441666666E6129451410000003074A95441295C8F3210945141D7A3700D75A95441E17A146E0F945141EC51B81E73A95441BF3023CF109451415EFE61986DA954417CB7E2C20F945141E19CF3A06BA95441F11609C20F94514108C980B16BA9544156A0809B0F945141888E8BE26BA95441897CB1200D945141622064E16EA954416A0F28C10C94514101F60C4C6FA95441F3A6276B0C945141BA8C67566FA95441CD03D7730B945141ABDA2D746FA954413BE2307D0A94514192A1DF916FA9544196F4BE2D0A9451412A25709B6FA954415D3AA28608945141728F60CE6FA95441A6D5071007945141D5E979FB6FA954412475438D069451416A2F380B70A954418501F172069451410970630E70A95441E51ABC44069451417689F31370A954418EF323AB059451419459712670A954419246882005945141320B0A3E70A954419138D9890594514111E266D077A954419BBC876E06945141E3151B657CA95441DB32AB8007945141C4C6EAE281A95441B11A65AD08945141EA7CACD487A9544185EB51D80994514114AE47A18AA9544152B81EC50C945141EC51B89E88A95441D7A3707D0F9451411F85EBC185A9544148E17AF4119451417B14AE3783A95441BF885788149451417C09E81B7EA95441D58F1FA3149451419B5662E17DA95441F7CF0701159451410105B72C7DA954414EA614421594514100FD747E7CA95441F081467C15945141BEDFAFBA7BA95441547C6591169451413644701678A95441156CD5DC169451410DBE283E77A95441AB9CC73E1794514123CC74AD76A95441C17FC88A1A945141CCB8CBAE71A9544141BB98E819945141234D1E1E70A9544150A7D787199451417569673B6FA954411CF03EB6189451416C7B8C656DA9544172D8307318945141A5F4BDBF6CA9544101F0FB1118945141482561CF6BA95441536AC3AF17945141F2833AE96AA95441EB51E018179451410587AB8769A95441D436B1A5169451418F5BC57968A95441586B11701694514181651EFC67A95441ECFEDA43169451412738D87A67A9544119464E9015945141F08A936A65A954417F55063E159451417D8D7D7864A954416C8AFF251594514147C9CC3164A95441EBF8D25C149451414BA1E8E161A95441471597031494514181B35DDB60A95441F7026CB413945141943E70F25FA9544125E6A222139451418DA882455EA95441B54A2CBD12945141AD94FC1A5DA954411E33D9CB11945141621DF7545AA95441B8465C1511945141AA520D3C58A954411A98702C1094514195B3C18E55A95441B06E1E620F945141BB1B803D53A95441490EA59F0D945141ED688AAC4FA95441C5659EAE0C945141750578244DA95441692CED3D0C945141A81876F54BA95441C8D5971B0C945141804825994BA95441023C90D20B9451418A77C8D44AA95441694F579C0B945141EE5FFD424AA95441392438750B945141248BCCD949A954411D6BCF1A0B9451411CE8B4E648A95441358A8DE30A945141F302DC6548A954413A05292109945141C227283246A95441767F1008099451418159BF1246A95441F69321DD07945141E44847C941A954411258F7B3079451413982945E41A9544111056A2506945141FD757A0E3FA95441AEDA28CE049451410D4287103DA95441455C47A60494514198B447D53CA95441DE8AE27904945141DD09C3E33BA9544166D7C4C903945141071F467F3CA954410222CC2002945141686A270C3DA95441EA74F30B0194514155138C593DA95441DE470633FF935141BE7723613CA954412873C8D0FE935141E10AB6503BA9544162958212FE93514129C1134139A9544196C56FBBFD9351413E7CBA7838A954415F6649B9FC935141955E9CBD38A9544183BDA492FB93514179103B0C39A95441D7A370BDFA93514152B81E4539A9544152B81E95FA935141D7A370CD39A954412D636E1FFB935141E2E812553BA95441EE7285C3FB935141CCA2B3253DA954415A0F0B3AFC9351417E284D753EA9544184AE558EFC93514142EAF9633FA95441D08BF236FD93514167350A0741A95441EB62ED14FE9351418573BD2E43A95441FE4C331B00945141A282A82748A954418D012AE900945141185085214AA9544102EAE59601945141788739CC4BA9544194245D5102945141A7E232964DA9544172059D7A029451412DC082FB4DA954417A37745E039451418CC81A2B50A954417C6E307B039451410B35AE7150A95441C9CC709E03945141D519A8D950A95441EC8BC5B803945141ED1D092A51A95441C1FFF6D1039451414FEBF07651A95441865D8F0504945141FB31711452A9544106F5BA430594514181E5B2DF55A9544181D1633B06945141205EB6D358A9544165761E5A069451417A55843159A954414FBD0C9A06945141468CACF459A95441E53BECCD06945141BEF305935AA954413E9A3470079451417C9A69825CA95441371D37140894514164F412775EA9544198E4B552089451410755D9355FA954417E32D5C508945141C65D469560A9544158FE1454099451414460824762A9544110939D690994514133413E8962A954418C2379C30994514169A98B9B63A95441ED65D13A0A9451410B74DC0765A954417AC460650A945141B3DF95AD65A95441ECE7709A0A945141286B658266A95441FCFF34FF0A9451411855851668A95441D92D9B290B945141B34D90C068A95441379F636B0B945141BA5763C869A9544195AEF7810B945141F16CF0226AA95441F72FACE90B945141B6E7D9C26BA954415ECCEA670C945141788B28BD6DA95441537FD2810C945141FB250D256EA9544106CFD6AA0C945141ED54E3C96EA954414CCC1EE20D945141FE5892716DA954416342F47A0E945141295AECBC6CA9544121B36F4E0F9451412DB57DA36BA9544156A0809B0F945141F8C76C566BA9544135DC5DA50F94514179F8F4686BA95441547DAD72109451418983B7666AA95441EF63D48D10945141F0B56E496AA95441A12C2E720F945141098491FC65A9544123E829D20E945141F718074F64A9544141E0AE670E945141665C346D63A954412FC7E7830D94514173A5228A61A95441C204F2980C94514160AC7F685FA95441D2783CAF0A9451413D76C3B957A95441878848B30E9451414EAED3E454A954414F4330D10E94514179F41BD053A95441D01F67420F94514152E8C61554A954412E6EA41B0F945141CC5EC93655A954414181403C0B94514168D8451858A95441B4ADCF290D945141243F45DC5FA95441499487950F94514139E96CC864A9544114AE471111945141E17A140E6AA9544156EC45901094514156DF2AA86AA95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>172316 - 211366
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000020000000103000000010000000C000000000000F01E8A514114AE47D1AEAC5441713D0AC70D8A514152B81E85AFAC5441F6285C6FEB895141CDCCCCACA8AC54418FC2F5F8EA895141C3F5284CB7AC5441C3F5285C098A51411F85EBC1BBAC54415C8FC2850F8A514100000040BCAC5441295C8F72118A5141713D0A67BCAC54410AD7A3002A8A514185EB5148B9AC5441F6285CCF388A514100000040B7AC5441C3F528FC388A5141F6285C2FACAC5441EC51B84E2B8A514114AE4791ADAC5441000000F01E8A514114AE47D1AEAC54410103000000010000000B000000EC51B82E3A8A5141713D0AF7ABAC5441666666063A8A514152B81E05B6AC5441EC51B89E538A5141666666E6B1AC5441B81E850B748A51418FC2F598A9AC5441295C8F02758A51419A999959A8AC544100000000758A51415C8FC2A5A3AC54415C8FC215748A514185EB51A8A0AC5441CDCCCCAC728A51411F85EB619CAC54410AD7A350568A5141B81E859BA2AC5441666666463A8A5141713D0A77A7AC5441EC51B82E3A8A5141713D0AF7ABAC5441
+</a>
+
+<b>
+0106000000010000000103000000010000001100000085FCF43C2F8A5141C3965890B8AC54419EF15ACF388A5141BC2A0040B7AC54410F1088FB388A5141DF450857ACAC5441EC51B84E2B8A514114AE4791ADAC54418779A6FE1E8A5141E8B0CCCFAEAC54418269FFEF1E8A51418FCA47D1AEAC5441730209C70D8A514133701F85AFAC544106D75C6FEB895141486ECDACA8AC54418B2BF6F8EA8951412705294CB7AC5441C3F5285C098A51411F85EBC1BBAC5441DC6FA56A098A5141B0E513C3BBAC5441C3D7F86B118A5141FBA18466BCAC5441295C8F72118A5141713D0A67BCAC5441459A5D4B1F8A5141A587A1A4BAAC54417967A3002A8A5141C85B5148B9AC5441891AD43C2F8A5141371A5D90B8AC544185FCF43C2F8A5141C3965890B8AC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>172316 - 345247
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000020000000103000000010000000C000000000000F01E8A514114AE47D1AEAC5441713D0AC70D8A514152B81E85AFAC5441F6285C6FEB895141CDCCCCACA8AC54418FC2F5F8EA895141C3F5284CB7AC5441C3F5285C098A51411F85EBC1BBAC54415C8FC2850F8A514100000040BCAC5441295C8F72118A5141713D0A67BCAC54410AD7A3002A8A514185EB5148B9AC5441F6285CCF388A514100000040B7AC5441C3F528FC388A5141F6285C2FACAC5441EC51B84E2B8A514114AE4791ADAC5441000000F01E8A514114AE47D1AEAC54410103000000010000000B000000EC51B82E3A8A5141713D0AF7ABAC5441666666063A8A514152B81E05B6AC5441EC51B89E538A5141666666E6B1AC5441B81E850B748A51418FC2F598A9AC5441295C8F02758A51419A999959A8AC544100000000758A51415C8FC2A5A3AC54415C8FC215748A514185EB51A8A0AC5441CDCCCCAC728A51411F85EB619CAC54410AD7A350568A5141B81E859BA2AC5441666666463A8A5141713D0A77A7AC5441EC51B82E3A8A5141713D0AF7ABAC5441
+</a>
+
+<b>
+0106000000010000000103000000010000001100000085FCF43C2F8A5141C3965890B8AC54419EF15ACF388A5141BC2A0040B7AC54410F1088FB388A5141DF450857ACAC5441EC51B84E2B8A514114AE4791ADAC54418779A6FE1E8A5141E8B0CCCFAEAC54418269FFEF1E8A51418FCA47D1AEAC5441730209C70D8A514133701F85AFAC544106D75C6FEB895141486ECDACA8AC54418B2BF6F8EA8951412705294CB7AC5441C3F5285C098A51411F85EBC1BBAC5441DC6FA56A098A5141B0E513C3BBAC5441C3D7F86B118A5141FBA18466BCAC5441295C8F72118A5141713D0A67BCAC5441459A5D4B1F8A5141A587A1A4BAAC54417967A3002A8A5141C85B5148B9AC5441891AD43C2F8A5141371A5D90B8AC544185FCF43C2F8A5141C3965890B8AC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>172349 - 1181184
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000040000000103000000010000003300000052B81E25618C514148E17AA4F8AC5441AE47E19A638C5141A4703D0AFBAC5441E17A14CE638C514148E17AC4FDAC54415C8FC255618C51416666661600AD5441333333A35E8C5141666666B6FFAC5441D7A3709D5A8C5141F6285C3F06AD5441A4703DFA5F8C51410AD7A3C00BAD544114AE47E1638C514152B81EB510AD544100000030678C514152B81EA513AD5441CDCCCC6C6B8C5141AE47E19A17AD5441333333F36E8C5141333333B314AD5441000000407C8C514152B81E6509AD54417B14AE57758C5141295C8F02FAAC54417B14AE07748C514148E17A94F6AC5441D7A3700D738C51415C8FC265F3AC5441D7A3709D6F8C514114AE4751F0AC5441AE47E12A6D8C51415C8FC275EEAC5441713D0A07688C514166666676EBAC544152B81EC5658C5141295C8FC2EAAC544148E17AE4638C514152B81E75EAAC5441AE47E1BA618C514148E17A44EAAC544185EB51B85F8C514152B81E75EAAC54411F85EB115E8C5141E17A14EEEAAC5441A4703DCA5A8C51411F85EB41ECAC54418FC2F538578C51415C8FC205EEAC5441713D0A87508C514114AE4761F1AC5441333333534A8C51417B14AEB7F4AC5441AE47E1CA478C5141295C8FA2F5AC5441F6285C6F438C5141713D0A97F6AC54413D0AD7033E8C51410AD7A300F7AC544152B81E353F8C5141B81E853BFEAC54410AD7A3A0408C51410AD7A32001AD5441AE47E1EA428C514185EB517805AD54410AD7A3B0458C5141AE47E1CA09AD54411F85EB01488C51418FC2F56808AD54417B14AE17488C51411F85EBA106AD5441AE47E16A4C8C51417B14AEC705AD54413D0AD733528C51413D0AD75302AD544148E17A94558C5141CDCCCC7CFFAC5441666666D6548C5141AE47E11AFBAC5441B81E85DB538C51419A999939F8AC5441EC51B8CE558C514100000090F4AC5441295C8F72548C5141B81E858BF0AC54417B14AEC7568C5141E17A14FEEEAC54411F85EBB1598C51411F85EBB1EDAC544185EB51385C8C514100000040EFAC5441EC51B8DE5C8C5141CDCCCC6CF2AC54411F85EBD15A8C5141EC51B88EF4AC544114AE47515C8C5141713D0AC7F7AC5441EC51B8AE5E8C5141713D0AE7F8AC544152B81E25618C514148E17AA4F8AC544101030000000100000035000000E17A14CE5E8C5141333333D3D8AC5441CDCCCC3C5D8C51419A999999D8AC5441CDCCCCDC538C51419A999929DDAC5441D7A370FD498C51418FC2F538E2AC54415C8FC2D53D8C514100000010EAAC5441EC51B8FE3D8C514185EB5178F5AC54410AD7A3003E8C5141713D0A17F6AC5441F6285C8F438C51417B14AEB7F5AC5441000000C0478C5141333333E3F4AC5441A4703DDA498C5141C3F528ECF3AC54410AD7A3204C8C5141AE47E11AF3AC5441F6285CFF4F8C514100000000F1AC5441666666B6568C5141B81E855BEDAC5441713D0A475A8C51410AD7A3B0EBAC544152B81EF55D8C514148E17A44EAAC544148E17AE45F8C5141C3F528BCE9AC5441E17A149E618C51415C8FC295E9AC5441D7A3708D638C5141F6285C9FE9AC54417B14AE07658C5141EC51B8DEE9AC544133333353678C514100000070EAAC5441713D0A276A8C51410AD7A3B0EBAC544114AE47816C8C51417B14AE17EDAC544185EB51886E8C51413D0AD783EEAC5441E17A141E738C5141F6285C5FF2AC544148E17A34738C514166666606F1AC544100000020728C5141F6285C7FEFAC5441A4703D8A718C51413D0AD7F3EDAC5441295C8F12718C51410AD7A390EBAC544148E17A24718C5141333333A3E8AC544148E17A84718C514133333383E7AC54413D0AD773728C51411F85EB91E5AC54415C8FC2A5738C5141295C8F12E4AC544185EB51C8798C51413D0AD743DEAC54411F85EB417B8C514185EB5188DCAC5441F6285C7F7C8C5141295C8FA2DAAC5441B81E854B7D8C5141713D0A17D9AC5441F6285C9F7D8C5141F6285C7FD7AC5441D7A370BD7D8C5141CDCCCC2CD1AC5441AE47E1CA7E8C5141C3F528BCCAAC5441295C8FC2808C51417B14AEB7C4AC5441000000C0828C5141333333D3BFAC544114AE4741858C514152B81E35B7AC5441D7A3709D868C514166666606B4AC544152B81E65828C5141F6285CDFB3AC5441666666C67D8C514100000010B3AC5441CDCCCC2C7B8C5141C3F5285CB7AC5441666666666E8C5141EC51B8EEBBAC54419A9999A96D8C51418FC2F548CBAC54413D0AD7B3718C5141AE47E19AD3AC5441CDCCCC7C6F8C5141AE47E13AD4AC544152B81EB56C8C5141295C8F02CFAC5441D7A3703D668C5141C3F5288CD3AC5441E17A14CE5E8C5141333333D3D8AC544101030000000100000020000000B81E854B738C514185EB5198EFAC5441713D0AB7748C514185EB5138ECAC544148E17A74768C5141AE47E10AEAAC5441AE47E1AA798C5141A4703D0AE7AC54417B14AE177B8C5141AE47E1DAE5AC54417B14AEC77A8C5141F6285C0FE4AC5441666666867E8C51410AD7A390E1AC544100000040818C51415C8FC2E5DEAC544166666636878C5141EC51B87EDEAC544185EB51C8898C5141713D0A87DDAC5441295C8FC2898C51411F85EB91DCAC5441B81E85BB8D8C5141B81E855BDAAC5441000000A08D8C5141D7A3705DD4AC54415C8FC2758B8C5141D7A370FDD3AC544114AE4791888C5141B81E85EBD2AC5441295C8F82838C514114AE47B1D0AC544185EB51E8808C51413D0AD7D3CFAC5441D7A3707D7F8C514166666616D0AC544114AE47A17E8C51417B14AEC7D0AC5441D7A3703D7E8C5141F6285C9FD7AC54419A9999897D8C514100000090DAAC5441C3F5288C7C8C5141295C8F12DCAC54418FC2F5487A8C51410AD7A310DFAC544100000080778C51417B14AEB7E1AC5441E17A145E758C514185EB51B8E3AC54417B14AE77738C5141EC51B89EE5AC544114AE4781728C51417B14AE27E7AC54419A999909728C5141CDCCCC4CE8AC5441D7A370CD718C5141333333E3E9AC5441000000C0718C5141D7A3703DEBAC5441D7A370CD718C5141EC51B89EECAC5441B81E854B738C514185EB5198EFAC544101030000000100000016000000295C8FF28F8C5141F6285C7FC9AC54417B14AE778B8C514185EB5188CAAC5441333333F3898C514114AE4741C4AC544152B81EB58A8C51419A999999C2AC54413D0AD753898C5141CDCCCC0CC0AC5441EC51B80E8E8C5141C3F528DCBCAC544185EB51A88C8C5141E17A143EB4AC5441713D0A77878C5141E17A140EB4AC5441666666D6858C51410AD7A3D0B8AC54411F85EBC1838C51418FC2F5A8BFAC54415C8FC2A5818C514152B81EB5C4AC5441E17A14FE7E8C514148E17A44CDAC5441EC51B8AE7E8C5141666666B6CFAC5441000000C07F8C5141C3F5286CCFAC5441B81E85EB818C5141C3F5286CCFAC544100000040838C5141AE47E1DACFAC5441A4703D8A888C51419A999939D2AC544185EB51188C8C5141713D0A87D3AC544148E17A248D8C5141CDCCCCBCD3AC5441295C8F428D8C514185EB5138D3AC5441E17A146E928C514152B81E15D3AC5441295C8FF28F8C5141F6285C7FC9AC5441
+</a>
+
+<b>
+0106000000010000000103000000010000009B0000007B14AEC77A8C5141F6285C0FE4AC5441666666867E8C51410AD7A390E1AC544100000040818C51415C8FC2E5DEAC544166666636878C5141EC51B87EDEAC544185EB51C8898C5141713D0A87DDAC5441295C8FC2898C51411F85EB91DCAC5441B81E85BB8D8C5141B81E855BDAAC5441000000A08D8C5141D7A3705DD4AC5441508D4C3D8D8C5141359B7D4FD3AC5441295C8F428D8C514185EB5138D3AC54414F0D85B28C8C5141E4CCCE30D2AC5441E01238DF878C51416CC7EB70D0AC5441DF630854858C51411DBC18E8CEAC54411633EEFA838C51419B82F101CEAC54410A5B40A9838C5141F22BC17DCCAC544147111A22858C5141433D9D35CAAC5441928DDA07878C5141F4C047ABC8AC54411447D00D898C514104DCD97FC6AC54414B816988898C5141AE9FD38BC3AC5441C423F7268A8C51414918E32BC0AC5441EB8A1FCC8C8C51415529861AC0AC5441EC51B80E8E8C5141C3F528DCBCAC54414C7BBFB38C8C5141515B6C84B4AC5441D7A3709D868C514166666606B4AC544152B81E65828C5141F6285CDFB3AC5441666666C67D8C514100000010B3AC5441CDCCCC2C7B8C5141C3F5285CB7AC5441666666666E8C5141EC51B8EEBBAC54419A9999A96D8C51418FC2F548CBAC54413D0AD7B3718C5141AE47E19AD3AC5441CDCCCC7C6F8C5141AE47E13AD4AC544152B81EB56C8C5141295C8F02CFAC5441D7A3703D668C5141C3F5288CD3AC5441E17A14CE5E8C5141333333D3D8AC5441CDCCCC3C5D8C51419A999999D8AC5441CDCCCCDC538C51419A999929DDAC5441D7A370FD498C51418FC2F538E2AC54415C8FC2D53D8C514100000010EAAC5441EC51B8FE3D8C514185EB5178F5AC544194D894083E8C51411E937D57F8AC544152B81E353F8C5141B81E853BFEAC54410AD7A3A0408C51410AD7A32001AD5441AE47E1EA428C514185EB517805AD54410AD7A3B0458C5141AE47E1CA09AD54411F85EB01488C51418FC2F56808AD5441BE3CA24E498C5141C21BD18807AD5441AE47E16A4C8C51417B14AEC705AD54413D0AD733528C51413D0AD75302AD544148E17A94558C5141CDCCCC7CFFAC5441666666D6548C5141AE47E11AFBAC5441B81E85DB538C51419A999939F8AC5441EC51B8CE558C514100000090F4AC5441295C8F72548C5141B81E858BF0AC54417B14AEC7568C5141E17A14FEEEAC54411F85EBB1598C51411F85EBB1EDAC544185EB51385C8C514100000040EFAC5441EC51B8DE5C8C5141CDCCCC6CF2AC54411F85EBD15A8C5141EC51B88EF4AC544114AE47515C8C5141713D0AC7F7AC5441EC51B8AE5E8C5141713D0AE7F8AC544152B81E25618C514148E17AA4F8AC5441AE47E19A638C5141A4703D0AFBAC5441E17A14CE638C514148E17AC4FDAC54415C8FC255618C51416666661600AD5441333333A35E8C5141666666B6FFAC5441D7A3709D5A8C5141F6285C3F06AD5441A4703DFA5F8C51410AD7A3C00BAD544114AE47E1638C514152B81EB510AD544100000030678C514152B81EA513AD5441CDCCCC6C6B8C5141AE47E19A17AD5441A06F7F69728C5141CB9ACDB311AD5441451FDE3B778C514158BA05B00DAD54410F9652407C8C5141C2EA486609AD54410878FA267C8C5141868ED53009AD5441DBF4B1FF7B8C5141068BF3D808AD5441B5ACCCD07B8C514119C1716D08AD5441DF8237A67B8C5141E330C61008AD544162685E8D7B8C5141B1642FD907AD54416B5662747B8C5141A15E4AA107AD5441D8D496477B8C514134BD133D07AD5441F03FD2FF7A8C5141EF5B859C06AD54418AD7FDEA7A8C5141B8EAEB6D06AD54416787F7C97A8C514101470A2406AD54419B5C2AA37A8C5141DA3D9ECD05AD54414A49DB5C7A8C51417B18053105AD5441CB19A7437A8C51416F36E2F804AD54412B64F0DF798C51414ED9CA1A04AD5441FD879D80798C5141669F7A4603AD54417144E130798C5141B89BE29402AD54414A9FDD1D798C514178F4886A02AD5441E76BDFD4788C5141DE61F5C701AD54419523AB80788C5141BB4E690C01AD544131EC8065778C514111A2B895FEAC54419170E14F778C51410B838F65FEAC54419A30B496768C5141D74F1EC9FCAC54410C671771768C5141D4375875FCAC544158C68F2E768C51419FDB29E1FBAC5441613A5E24768C514187A475CAFBAC544112F0DAD5758C514103B6961BFBAC5441D19D75A4758C514177EC91ADFAAC544130C24A3F758C5141DD7AD3C2F9AC544145E2923A758C514199E67EB6F9AC54414817DA01758C5141863A4322F9AC54417E118ABF748C51410B39F774F8AC5441F9175B8B748C51412961B5E0F7AC544173786653748C5141FDC05C5AF7AC54419A13CD09748C514138E9059AF6AC5441F69C54CC738C5141E6D4C5D2F5AC54418A03B2B2738C51415C78CA7FF5AC54414673B4A2738C514116D5BA4BF5AC5441B46AF455738C5141D1A8D951F4AC54417F8BFA3B738C5141C242B101F4AC54414FF9A01B738C5141BBB5DD9DF3AC5441A02DD007738C514100E8B760F3AC544140424410738C5141F5A52F39F3AC54411B299415738C5141110B6BE5F2AC544189071519738C51417A6EB2C7F2AC5441BF1DE31C738C514128832B72F2AC5441B179E924738C51410DB9242DF2AC5441AE394A26738C51413E48EDE0F1AC54418301572A738C514176DC8EA2F1AC54410C1BDC31738C5141196F142EF1AC5441313D2A36738C5141094E30EAF0AC5441A6F07A37738C51413CC36BD5F0AC54419C292941738C5141D893EA3CF0AC54412E22BA44738C5141A87B4004F0AC54414CDD3E49738C5141515075BCEFAC5441748E0A4A738C514152545F95EFAC544159724D59738C5141AAEE8F77EFAC544115C1386C738C5141C68C984AEFAC5441B2D4787B738C51419C7E5926EFAC5441E508259A738C51419CAF72DDEEAC54410A9733BB738C5141EA37E18EEEAC544172B3D7D2738C5141BECCB056EEAC5441E9D4FAF7738C51415DA06CFEEDAC54414CACCE22748C51415C33A298EDAC5441B5789773748C5141F8E4A0D8ECAC54417152EDA6748C5141C2DC9D5EECAC54419FC5EFBE748C5141BE19702EECAC54419C8FC9D7748C51414AB9560FECAC5441D8AD7400758C51411EDE71DCEBAC544116BE0E1D758C5141A4C4A6B8EBAC54411BA7105F758C51410B1A0C66EBAC5441D6F1FC93758C51415A45D123EBAC54414EA6C0AB758C514114E61306EBAC5441671F0DD2758C5141783826D6EAAC54416C7591D8758C51414D67FECDEAAC5441372D6CFC758C51417AD11FA1EAAC544170B8004C768C51411ADE883DEAAC5441E591C9BF768C5141D1D47EC4E9AC544168D68FEE768C514105819595E9AC5441A118B730778C514103A93C53E9AC5441A84B9653778C51419E524330E9AC54418E79CD6D778C5141E001DB21E9AC54417B14AEC77A8C5141F6285C0FE4AC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>172349 - 3192934
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000040000000103000000010000003300000052B81E25618C514148E17AA4F8AC5441AE47E19A638C5141A4703D0AFBAC5441E17A14CE638C514148E17AC4FDAC54415C8FC255618C51416666661600AD5441333333A35E8C5141666666B6FFAC5441D7A3709D5A8C5141F6285C3F06AD5441A4703DFA5F8C51410AD7A3C00BAD544114AE47E1638C514152B81EB510AD544100000030678C514152B81EA513AD5441CDCCCC6C6B8C5141AE47E19A17AD5441333333F36E8C5141333333B314AD5441000000407C8C514152B81E6509AD54417B14AE57758C5141295C8F02FAAC54417B14AE07748C514148E17A94F6AC5441D7A3700D738C51415C8FC265F3AC5441D7A3709D6F8C514114AE4751F0AC5441AE47E12A6D8C51415C8FC275EEAC5441713D0A07688C514166666676EBAC544152B81EC5658C5141295C8FC2EAAC544148E17AE4638C514152B81E75EAAC5441AE47E1BA618C514148E17A44EAAC544185EB51B85F8C514152B81E75EAAC54411F85EB115E8C5141E17A14EEEAAC5441A4703DCA5A8C51411F85EB41ECAC54418FC2F538578C51415C8FC205EEAC5441713D0A87508C514114AE4761F1AC5441333333534A8C51417B14AEB7F4AC5441AE47E1CA478C5141295C8FA2F5AC5441F6285C6F438C5141713D0A97F6AC54413D0AD7033E8C51410AD7A300F7AC544152B81E353F8C5141B81E853BFEAC54410AD7A3A0408C51410AD7A32001AD5441AE47E1EA428C514185EB517805AD54410AD7A3B0458C5141AE47E1CA09AD54411F85EB01488C51418FC2F56808AD54417B14AE17488C51411F85EBA106AD5441AE47E16A4C8C51417B14AEC705AD54413D0AD733528C51413D0AD75302AD544148E17A94558C5141CDCCCC7CFFAC5441666666D6548C5141AE47E11AFBAC5441B81E85DB538C51419A999939F8AC5441EC51B8CE558C514100000090F4AC5441295C8F72548C5141B81E858BF0AC54417B14AEC7568C5141E17A14FEEEAC54411F85EBB1598C51411F85EBB1EDAC544185EB51385C8C514100000040EFAC5441EC51B8DE5C8C5141CDCCCC6CF2AC54411F85EBD15A8C5141EC51B88EF4AC544114AE47515C8C5141713D0AC7F7AC5441EC51B8AE5E8C5141713D0AE7F8AC544152B81E25618C514148E17AA4F8AC544101030000000100000035000000E17A14CE5E8C5141333333D3D8AC5441CDCCCC3C5D8C51419A999999D8AC5441CDCCCCDC538C51419A999929DDAC5441D7A370FD498C51418FC2F538E2AC54415C8FC2D53D8C514100000010EAAC5441EC51B8FE3D8C514185EB5178F5AC54410AD7A3003E8C5141713D0A17F6AC5441F6285C8F438C51417B14AEB7F5AC5441000000C0478C5141333333E3F4AC5441A4703DDA498C5141C3F528ECF3AC54410AD7A3204C8C5141AE47E11AF3AC5441F6285CFF4F8C514100000000F1AC5441666666B6568C5141B81E855BEDAC5441713D0A475A8C51410AD7A3B0EBAC544152B81EF55D8C514148E17A44EAAC544148E17AE45F8C5141C3F528BCE9AC5441E17A149E618C51415C8FC295E9AC5441D7A3708D638C5141F6285C9FE9AC54417B14AE07658C5141EC51B8DEE9AC544133333353678C514100000070EAAC5441713D0A276A8C51410AD7A3B0EBAC544114AE47816C8C51417B14AE17EDAC544185EB51886E8C51413D0AD783EEAC5441E17A141E738C5141F6285C5FF2AC544148E17A34738C514166666606F1AC544100000020728C5141F6285C7FEFAC5441A4703D8A718C51413D0AD7F3EDAC5441295C8F12718C51410AD7A390EBAC544148E17A24718C5141333333A3E8AC544148E17A84718C514133333383E7AC54413D0AD773728C51411F85EB91E5AC54415C8FC2A5738C5141295C8F12E4AC544185EB51C8798C51413D0AD743DEAC54411F85EB417B8C514185EB5188DCAC5441F6285C7F7C8C5141295C8FA2DAAC5441B81E854B7D8C5141713D0A17D9AC5441F6285C9F7D8C5141F6285C7FD7AC5441D7A370BD7D8C5141CDCCCC2CD1AC5441AE47E1CA7E8C5141C3F528BCCAAC5441295C8FC2808C51417B14AEB7C4AC5441000000C0828C5141333333D3BFAC544114AE4741858C514152B81E35B7AC5441D7A3709D868C514166666606B4AC544152B81E65828C5141F6285CDFB3AC5441666666C67D8C514100000010B3AC5441CDCCCC2C7B8C5141C3F5285CB7AC5441666666666E8C5141EC51B8EEBBAC54419A9999A96D8C51418FC2F548CBAC54413D0AD7B3718C5141AE47E19AD3AC5441CDCCCC7C6F8C5141AE47E13AD4AC544152B81EB56C8C5141295C8F02CFAC5441D7A3703D668C5141C3F5288CD3AC5441E17A14CE5E8C5141333333D3D8AC544101030000000100000020000000B81E854B738C514185EB5198EFAC5441713D0AB7748C514185EB5138ECAC544148E17A74768C5141AE47E10AEAAC5441AE47E1AA798C5141A4703D0AE7AC54417B14AE177B8C5141AE47E1DAE5AC54417B14AEC77A8C5141F6285C0FE4AC5441666666867E8C51410AD7A390E1AC544100000040818C51415C8FC2E5DEAC544166666636878C5141EC51B87EDEAC544185EB51C8898C5141713D0A87DDAC5441295C8FC2898C51411F85EB91DCAC5441B81E85BB8D8C5141B81E855BDAAC5441000000A08D8C5141D7A3705DD4AC54415C8FC2758B8C5141D7A370FDD3AC544114AE4791888C5141B81E85EBD2AC5441295C8F82838C514114AE47B1D0AC544185EB51E8808C51413D0AD7D3CFAC5441D7A3707D7F8C514166666616D0AC544114AE47A17E8C51417B14AEC7D0AC5441D7A3703D7E8C5141F6285C9FD7AC54419A9999897D8C514100000090DAAC5441C3F5288C7C8C5141295C8F12DCAC54418FC2F5487A8C51410AD7A310DFAC544100000080778C51417B14AEB7E1AC5441E17A145E758C514185EB51B8E3AC54417B14AE77738C5141EC51B89EE5AC544114AE4781728C51417B14AE27E7AC54419A999909728C5141CDCCCC4CE8AC5441D7A370CD718C5141333333E3E9AC5441000000C0718C5141D7A3703DEBAC5441D7A370CD718C5141EC51B89EECAC5441B81E854B738C514185EB5198EFAC544101030000000100000016000000295C8FF28F8C5141F6285C7FC9AC54417B14AE778B8C514185EB5188CAAC5441333333F3898C514114AE4741C4AC544152B81EB58A8C51419A999999C2AC54413D0AD753898C5141CDCCCC0CC0AC5441EC51B80E8E8C5141C3F528DCBCAC544185EB51A88C8C5141E17A143EB4AC5441713D0A77878C5141E17A140EB4AC5441666666D6858C51410AD7A3D0B8AC54411F85EBC1838C51418FC2F5A8BFAC54415C8FC2A5818C514152B81EB5C4AC5441E17A14FE7E8C514148E17A44CDAC5441EC51B8AE7E8C5141666666B6CFAC5441000000C07F8C5141C3F5286CCFAC5441B81E85EB818C5141C3F5286CCFAC544100000040838C5141AE47E1DACFAC5441A4703D8A888C51419A999939D2AC544185EB51188C8C5141713D0A87D3AC544148E17A248D8C5141CDCCCCBCD3AC5441295C8F428D8C514185EB5138D3AC5441E17A146E928C514152B81E15D3AC5441295C8FF28F8C5141F6285C7FC9AC5441
+</a>
+
+<b>
+0106000000010000000103000000010000009B0000007B14AEC77A8C5141F6285C0FE4AC5441666666867E8C51410AD7A390E1AC544100000040818C51415C8FC2E5DEAC544166666636878C5141EC51B87EDEAC544185EB51C8898C5141713D0A87DDAC5441295C8FC2898C51411F85EB91DCAC5441B81E85BB8D8C5141B81E855BDAAC5441000000A08D8C5141D7A3705DD4AC5441508D4C3D8D8C5141359B7D4FD3AC5441295C8F428D8C514185EB5138D3AC54414F0D85B28C8C5141E4CCCE30D2AC5441E01238DF878C51416CC7EB70D0AC5441DF630854858C51411DBC18E8CEAC54411633EEFA838C51419B82F101CEAC54410A5B40A9838C5141F22BC17DCCAC544147111A22858C5141433D9D35CAAC5441928DDA07878C5141F4C047ABC8AC54411447D00D898C514104DCD97FC6AC54414B816988898C5141AE9FD38BC3AC5441C423F7268A8C51414918E32BC0AC5441EB8A1FCC8C8C51415529861AC0AC5441EC51B80E8E8C5141C3F528DCBCAC54414C7BBFB38C8C5141515B6C84B4AC5441D7A3709D868C514166666606B4AC544152B81E65828C5141F6285CDFB3AC5441666666C67D8C514100000010B3AC5441CDCCCC2C7B8C5141C3F5285CB7AC5441666666666E8C5141EC51B8EEBBAC54419A9999A96D8C51418FC2F548CBAC54413D0AD7B3718C5141AE47E19AD3AC5441CDCCCC7C6F8C5141AE47E13AD4AC544152B81EB56C8C5141295C8F02CFAC5441D7A3703D668C5141C3F5288CD3AC5441E17A14CE5E8C5141333333D3D8AC5441CDCCCC3C5D8C51419A999999D8AC5441CDCCCCDC538C51419A999929DDAC5441D7A370FD498C51418FC2F538E2AC54415C8FC2D53D8C514100000010EAAC5441EC51B8FE3D8C514185EB5178F5AC544194D894083E8C51411E937D57F8AC544152B81E353F8C5141B81E853BFEAC54410AD7A3A0408C51410AD7A32001AD5441AE47E1EA428C514185EB517805AD54410AD7A3B0458C5141AE47E1CA09AD54411F85EB01488C51418FC2F56808AD5441BE3CA24E498C5141C21BD18807AD5441AE47E16A4C8C51417B14AEC705AD54413D0AD733528C51413D0AD75302AD544148E17A94558C5141CDCCCC7CFFAC5441666666D6548C5141AE47E11AFBAC5441B81E85DB538C51419A999939F8AC5441EC51B8CE558C514100000090F4AC5441295C8F72548C5141B81E858BF0AC54417B14AEC7568C5141E17A14FEEEAC54411F85EBB1598C51411F85EBB1EDAC544185EB51385C8C514100000040EFAC5441EC51B8DE5C8C5141CDCCCC6CF2AC54411F85EBD15A8C5141EC51B88EF4AC544114AE47515C8C5141713D0AC7F7AC5441EC51B8AE5E8C5141713D0AE7F8AC544152B81E25618C514148E17AA4F8AC5441AE47E19A638C5141A4703D0AFBAC5441E17A14CE638C514148E17AC4FDAC54415C8FC255618C51416666661600AD5441333333A35E8C5141666666B6FFAC5441D7A3709D5A8C5141F6285C3F06AD5441A4703DFA5F8C51410AD7A3C00BAD544114AE47E1638C514152B81EB510AD544100000030678C514152B81EA513AD5441CDCCCC6C6B8C5141AE47E19A17AD5441A06F7F69728C5141CB9ACDB311AD5441451FDE3B778C514158BA05B00DAD54410F9652407C8C5141C2EA486609AD54410878FA267C8C5141868ED53009AD5441DBF4B1FF7B8C5141068BF3D808AD5441B5ACCCD07B8C514119C1716D08AD5441DF8237A67B8C5141E330C61008AD544162685E8D7B8C5141B1642FD907AD54416B5662747B8C5141A15E4AA107AD5441D8D496477B8C514134BD133D07AD5441F03FD2FF7A8C5141EF5B859C06AD54418AD7FDEA7A8C5141B8EAEB6D06AD54416787F7C97A8C514101470A2406AD54419B5C2AA37A8C5141DA3D9ECD05AD54414A49DB5C7A8C51417B18053105AD5441CB19A7437A8C51416F36E2F804AD54412B64F0DF798C51414ED9CA1A04AD5441FD879D80798C5141669F7A4603AD54417144E130798C5141B89BE29402AD54414A9FDD1D798C514178F4886A02AD5441E76BDFD4788C5141DE61F5C701AD54419523AB80788C5141BB4E690C01AD544131EC8065778C514111A2B895FEAC54419170E14F778C51410B838F65FEAC54419A30B496768C5141D74F1EC9FCAC54410C671771768C5141D4375875FCAC544158C68F2E768C51419FDB29E1FBAC5441613A5E24768C514187A475CAFBAC544112F0DAD5758C514103B6961BFBAC5441D19D75A4758C514177EC91ADFAAC544130C24A3F758C5141DD7AD3C2F9AC544145E2923A758C514199E67EB6F9AC54414817DA01758C5141863A4322F9AC54417E118ABF748C51410B39F774F8AC5441F9175B8B748C51412961B5E0F7AC544173786653748C5141FDC05C5AF7AC54419A13CD09748C514138E9059AF6AC5441F69C54CC738C5141E6D4C5D2F5AC54418A03B2B2738C51415C78CA7FF5AC54414673B4A2738C514116D5BA4BF5AC5441B46AF455738C5141D1A8D951F4AC54417F8BFA3B738C5141C242B101F4AC54414FF9A01B738C5141BBB5DD9DF3AC5441A02DD007738C514100E8B760F3AC544140424410738C5141F5A52F39F3AC54411B299415738C5141110B6BE5F2AC544189071519738C51417A6EB2C7F2AC5441BF1DE31C738C514128832B72F2AC5441B179E924738C51410DB9242DF2AC5441AE394A26738C51413E48EDE0F1AC54418301572A738C514176DC8EA2F1AC54410C1BDC31738C5141196F142EF1AC5441313D2A36738C5141094E30EAF0AC5441A6F07A37738C51413CC36BD5F0AC54419C292941738C5141D893EA3CF0AC54412E22BA44738C5141A87B4004F0AC54414CDD3E49738C5141515075BCEFAC5441748E0A4A738C514152545F95EFAC544159724D59738C5141AAEE8F77EFAC544115C1386C738C5141C68C984AEFAC5441B2D4787B738C51419C7E5926EFAC5441E508259A738C51419CAF72DDEEAC54410A9733BB738C5141EA37E18EEEAC544172B3D7D2738C5141BECCB056EEAC5441E9D4FAF7738C51415DA06CFEEDAC54414CACCE22748C51415C33A298EDAC5441B5789773748C5141F8E4A0D8ECAC54417152EDA6748C5141C2DC9D5EECAC54419FC5EFBE748C5141BE19702EECAC54419C8FC9D7748C51414AB9560FECAC5441D8AD7400758C51411EDE71DCEBAC544116BE0E1D758C5141A4C4A6B8EBAC54411BA7105F758C51410B1A0C66EBAC5441D6F1FC93758C51415A45D123EBAC54414EA6C0AB758C514114E61306EBAC5441671F0DD2758C5141783826D6EAAC54416C7591D8758C51414D67FECDEAAC5441372D6CFC758C51417AD11FA1EAAC544170B8004C768C51411ADE883DEAAC5441E591C9BF768C5141D1D47EC4E9AC544168D68FEE768C514105819595E9AC5441A118B730778C514103A93C53E9AC5441A84B9653778C51419E524330E9AC54418E79CD6D778C5141E001DB21E9AC54417B14AEC77A8C5141F6285C0FE4AC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>172411 - 210814
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003200000000000030B6895141AE47E1AA68AC54415C8FC2B5B3895141D7A3708D68AC5441EC51B89EB189514148E17A2469AC5441AE47E18AB38951415C8FC2A56CAC5441CDCCCCBCB6895141295C8F726CAC54410AD7A3D0B889514152B81EC570AC5441F6285C7FB28951415C8FC2F56FAC54413D0AD753AF895141D7A3700D6BAC5441295C8FA2AE895141F6285C2F6CAC54413D0AD733AE8951417B14AE576FAC54411F85EB21B08951413333335373AC54411F85EB91B0895141F6285C4F75AC54418FC2F508B08951410000003078AC5441D7A3707DAD895141E17A149E7EAC5441D7A370EDAC8951418FC2F59881AC544148E17A04AD895141A4703D1A82AC54411F85EBB1BA8951411F85EBF187AC5441713D0A87BE8951419A9999B980AC5441000000E0C48951413D0AD71385AC54418FC2F5B8C3895141CDCCCCCC8BAC544133333303E0895141B81E855B99AC54418FC2F5B8E08951419A99999999AC544100000000E48951419A9999F985AC5441E17A143EE5895141D7A3700D82AC5441333333C3E68951410AD7A3407FAC54418FC2F5D8E98951417B14AEE77AAC544114AE47C1EC89514148E17A4477AC544152B81E75F28951413D0AD76370AC54417B14AEA7F689514152B81E056EAC5441C3F5282CFB895141CDCCCC3C6AAC54415C8FC2B5FD895141F6285C8F65AC544133333333008A514185EB51A860AC54413D0AD7F3028A5141713D0A0754AC5441D7A3705DFD895141A4703D7A56AC54410AD7A310F9895141C3F5285C57AC5441666666F6F3895141000000E056AC544148E17AD4EF895141CDCCCCBC55AC54410AD7A3D0E4895141A4703DAA5AAC54411F85EB91E5895141AE47E1AA5CAC544166666626EB895141666666866DAC54419A999979DC895141D7A370AD81AC54415C8FC205D0895141B81E851B7BAC544166666656CD895141E17A143E78AC5441CDCCCC6CCB895141CDCCCCEC78AC544148E17A84C8895141C3F528CC78AC5441AE47E10AC58951413D0AD78376AC54418FC2F528C289514148E17A1474AC54419A9999A9BF895141D7A3702D71AC5441A4703DBAB789514114AE477169AC544100000030B6895141AE47E1AA68AC5441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000D4E68CF9E18951418961F81992AC54418FC2F5B8E08951419A99999999AC544166666616E28951418FC2F5C89CAC5441713D0A47E08951415C8FC245A1AC5441213895E9DF895141E57BCC16A2AC5441213895E9DF8951416E83E064A2AC544177787858E289514127DFC76AA0AC54417100A0BEE48951412C392A9E9EAC5441713D0A57E4895141295C8F229DAC54415C8FC275E98951417B14AE3793AC5441C999DC39EA895141DB6CCE2992AC5441A771B78EEA8951410F2986AA91AC5441742A1356F0895141F063359B89AC5441120F0FBFF4895141120F0F5F83AC5441826DE3DAFB895141A1948FCE79AC544188CEC50EFD895141F0EC201878AC544147D8DFB1F0895141AD93108472AC544109248352EF8951419D35D32B74AC544160357BE2E889514118B641607CAC5441E9BC028AE5895141D19EE48B81AC5441B8E8A22BE48951415DE7158085AC5441D4E68CF9E18951418961F81992AC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>172411 - 261065
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003200000000000030B6895141AE47E1AA68AC54415C8FC2B5B3895141D7A3708D68AC5441EC51B89EB189514148E17A2469AC5441AE47E18AB38951415C8FC2A56CAC5441CDCCCCBCB6895141295C8F726CAC54410AD7A3D0B889514152B81EC570AC5441F6285C7FB28951415C8FC2F56FAC54413D0AD753AF895141D7A3700D6BAC5441295C8FA2AE895141F6285C2F6CAC54413D0AD733AE8951417B14AE576FAC54411F85EB21B08951413333335373AC54411F85EB91B0895141F6285C4F75AC54418FC2F508B08951410000003078AC5441D7A3707DAD895141E17A149E7EAC5441D7A370EDAC8951418FC2F59881AC544148E17A04AD895141A4703D1A82AC54411F85EBB1BA8951411F85EBF187AC5441713D0A87BE8951419A9999B980AC5441000000E0C48951413D0AD71385AC54418FC2F5B8C3895141CDCCCCCC8BAC544133333303E0895141B81E855B99AC54418FC2F5B8E08951419A99999999AC544100000000E48951419A9999F985AC5441E17A143EE5895141D7A3700D82AC5441333333C3E68951410AD7A3407FAC54418FC2F5D8E98951417B14AEE77AAC544114AE47C1EC89514148E17A4477AC544152B81E75F28951413D0AD76370AC54417B14AEA7F689514152B81E056EAC5441C3F5282CFB895141CDCCCC3C6AAC54415C8FC2B5FD895141F6285C8F65AC544133333333008A514185EB51A860AC54413D0AD7F3028A5141713D0A0754AC5441D7A3705DFD895141A4703D7A56AC54410AD7A310F9895141C3F5285C57AC5441666666F6F3895141000000E056AC544148E17AD4EF895141CDCCCCBC55AC54410AD7A3D0E4895141A4703DAA5AAC54411F85EB91E5895141AE47E1AA5CAC544166666626EB895141666666866DAC54419A999979DC895141D7A370AD81AC54415C8FC205D0895141B81E851B7BAC544166666656CD895141E17A143E78AC5441CDCCCC6CCB895141CDCCCCEC78AC544148E17A84C8895141C3F528CC78AC5441AE47E10AC58951413D0AD78376AC54418FC2F528C289514148E17A1474AC54419A9999A9BF895141D7A3702D71AC5441A4703DBAB789514114AE477169AC544100000030B6895141AE47E1AA68AC5441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000D4E68CF9E18951418961F81992AC54418FC2F5B8E08951419A99999999AC544166666616E28951418FC2F5C89CAC5441713D0A47E08951415C8FC245A1AC5441213895E9DF895141E57BCC16A2AC5441213895E9DF8951416E83E064A2AC544177787858E289514127DFC76AA0AC54417100A0BEE48951412C392A9E9EAC5441713D0A57E4895141295C8F229DAC54415C8FC275E98951417B14AE3793AC5441C999DC39EA895141DB6CCE2992AC5441A771B78EEA8951410F2986AA91AC5441742A1356F0895141F063359B89AC5441120F0FBFF4895141120F0F5F83AC5441826DE3DAFB895141A1948FCE79AC544188CEC50EFD895141F0EC201878AC544147D8DFB1F0895141AD93108472AC544109248352EF8951419D35D32B74AC544160357BE2E889514118B641607CAC5441E9BC028AE5895141D19EE48B81AC5441B8E8A22BE48951415DE7158085AC5441D4E68CF9E18951418961F81992AC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>172646 - 54028
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C000000F6285C8FB78E514148E17A4487AB54417B14AE17B68E514148E17A0485AB54411F85EBC1B48E5141EC51B82E84AB544166666676B38E5141D7A3709D84AB5441295C8FB29F8E5141B81E85DB8FAB54413D0AD763828E51411F85EB41A1AB544152B81E35828E5141EC51B88EA2AB54411F85EB61838E5141D7A370ADA4AB5441AE47E10A888E5141C3F5284CACAB544185EB51A8A08E5141EC51B8EE9DAB5441333333B3BB8E51415C8FC2258EAB5441F6285C8FB78E514148E17A4487AB5441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000A17E9E43828E5141254FE1A8A2AB5441D9B2C14C848E51410C79712DA6AB544175003E52848E51419EC76936A6AB544185F0D052848E5141240D5A37A6AB544185F0D052848E514175D09929A6AB5441AE47E10A888E5141C3F5284CACAB544170861C158D8E5141B388325BA9AB5441655368D58F8E5141CEDE2DC0A7AB5441206EC0159A8E51417239A5C4A1AB5441E9307AE59A8E51418B5C6B4BA1AB544185EB51A8A08E5141EC51B8EE9DAB54419C861195A98E51414E6C16B998AB54417A5B267DA98E5141FC814F8898AB5441293BEC60A68E5141B2D4BAB695AB5441C437DE65A08E51419F21364B90AB544147AD395F9D8E5141F49617FA91AB5441628F50D3938E5141DD6D945097AB5441350F229B8B8E5141025932C99BAB5441CC8BAADB888E5141D125D96A9DAB5441FA2ABDE0848E51413445CAC79FAB544109464B62828E514194ADEE4CA1AB5441A17E9E43828E5141254FE1A8A2AB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>540637 - 142868
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000020000000103000000010000001D00000052B81E85E75C5141000000F0644954411F85EB11E95C514148E17A445D495441333333D3E95C5141D7A370BD584954418FC2F528EA5C5141AE47E18A5349544148E17A94EA5C5141295C8FE24D49544185EB5108E65C51419A9999B94B4954418FC2F598E25C51411F85EBF1494954417B14AE47E25C5141D7A3709D4A495441CDCCCC1CDB5C5141713D0A2766495441EC51B8FEDA5C5141000000C068495441E17A140EDB5C51410AD7A3506A495441D7A370BDDD5C51410AD7A3606B495441713D0AA7DD5C51418FC2F5A86F495441B81E85CBDC5C5141E17A145E704954410AD7A3E0DA5C514152B81ED575495441333333C3DB5C51410000004077495441F6285CFFDA5C514185EB515878495441E17A14CED75C5141F6285C2F78495441CDCCCCCCD85C5141A4703DAA7B495441AE47E18ADB5C51417B14AEE77B4954413D0AD713DC5C5141D7A370FD7C4954415C8FC2D5E25C5141E17A14AE7E495441EC51B83EE65C5141E17A142E7F495441C3F528ECE85C514185EB51487F495441F6285C7FEB5C51415C8FC2F57E495441713D0AE7E85C51410AD7A30077495441F6285C6FE75C5141D7A3702D71495441EC51B80EE75C51415C8FC2256C49544152B81E85E75C5141000000F0644954410103000000010000001600000033333363D15C5141B81E85BB7A495441E17A146ED15C5141A4703DBA79495441A4703D0AD05C5141C3F5286C764954413D0AD7D3CF5C51419A9999697449544133333393C95C5141000000F071495441C3F528ACC65C5141F6285C4F714954410AD7A380C85C5141000000D06C4954417B14AE57CA5C5141B81E856B644954411F85EB21B75C5141D7A3709D5F4954411F85EB21B45C514148E17A145F495441B81E859BB35C51418FC2F5A86149544166666636B25C5141EC51B89E74495441CDCCCC2CB25C5141F6285C2F7549544185EB5138B25C51419A99992983495441A4703D3AB25C5141B81E855B85495441295C8F32B85C5141713D0A17844954411F85EB11BF5C5141713D0A67824954410AD7A380C45C5141C3F5285C81495441CDCCCCDCCA5C51410AD7A3708049544114AE47F1CD5C51410AD7A3907F4954410AD7A3A0CF5C51410AD7A3207E49544133333363D15C5141B81E85BB7A495441
+</a>
+
+<b>
+01060000000100000001030000000100000055000000AE1AF966B35C5141C3BFAB1B85495441732FAF20B95C514146EE91DC834954411F85EB11BF5C5141713D0A67824954410AD7A380C45C5141C3F5285C8149544103111820C85C514116FFFFD58049544178B60010CC5C5141BFD15D1980495441ECC31D46CC5C5141044BFE0980495441E63B43F7CC5C5141D7EBAAD77F49544157783154CE5C5141326C413C7F49544100285B97CE5C5141F337F5027F49544107EA6F4ACF5C5141A7552E6A7E49544143CEB118D05C5141F8B70E397D49544179F0A935D05C5141572A2D017D495441564384E6D05C5141230608AC7B495441065BEE26D15C5141A002C72F7B495441CDE33A67D15C514176B0385C7A495441AD3F8C67D15C51417CCAB4547A495441C4DF266AD15C5141EC0F21177A495441EE148A25D15C5141EAA4C20D79495441AD7E1E0AD15C5141003090CC784954413D9CCE8CD05C514150EA9BA277495441B6A2B986D05C51415FE625947749544174BD0A74D05C5141979EB96777495441F771713AD05C514181C3C5DE764954412191882ED05C5141D17374C276495441A4703D0AD05C5141C3F5286C7649544180091B01D05C5141756BC2157649544191F1D9FDCF5C5141E155FAF6754954413D0AD7D3CF5C51419A99996974495441988F21C6CD5C5141BBA48099734954418446D694CD5C51418F67FD85734954417FC4ECC7CC5C51419089E0347349544154C664C2CB5C51412E265ACD7249544140B7BF52CB5C5141439328A1724954418103DC2FCB5C51411109599372495441CA6E3AB7CA5C5141AED198637249544170BAE83BC95C5141C4D920DD714954410C7933B7C85C5141A11270C07149544141780F7EC85C5141109A15B471495441F988F043C85C514198E184A7714954411D5E086DC75C51413FC60E7971495441C3F528ACC65C5141F6285C4F7149544156255000C85C5141A0F9610B6E495441225FD0AFC85C51419B3BD5F86B4954417C27A80AC95C514176527C5A6A495441496184C3C95C51415AD74F0F674954410B5893FEC95C51414B1CF001664954417B14AE57CA5C5141B81E856B64495441748373DDC75C51413259E1CC6349544120EF442BC75C51416BC44FA063495441F48E3886C35C51418296EDB6624954416A780486C35C5141238FE0B6624954413A87FA47C35C5141B8015CA762495441C710842EBF5C51415A6DDBA0614954411D18AD79B75C51410DF563B35F4954419B9E9167B75C51413D7CDCAE5F4954411F85EB21B45C514148E17A145F495441E4F5B7A5B35C51410158D7766149544187A78A6AB35C5141C708A5426449544135DFEC44B35C5141523DE741664954414E6E7620B35C51415A577B3168495441A6A009EEB25C5141EE05D4DE6A495441A0FC65DCB25C51418BE491CE6B49544188C54CBDB25C51419BEF3D756D49544101F92AB2B25C5141E8AF8A0C6E495441DE77F096B25C51410B969D7E6F4954414988F27EB25C51418014B3C4704954411E46E47DB25C51413C450CD3704954411BAAD270B25C514178C7AB84714954416311DE69B25C5141469334E371495441A3A4EE4FB25C5141ABA3B3437349544164D4122DB25C5141DD2554847549544157A8122EB25C51411425BBBA764954419594392FB25C5141857291207849544170C7CD2FB25C5141A39861D478495441C7E6F32FB25C5141E6D8A20279495441C8168732B25C51413CD071227C495441C91AEC32B25C51415764029D7C49544173EA2433B25C5141DB93F0E17C4954410E63AC33B25C51410D694F867D495441D94A1937B25C51413AFC47AE814954410F175338B25C51415C0AF02A8349544100C0A138B25C5141D62DDD84834954417EA4343AB25C51417C65765185495441AE1AF966B35C5141C3BFAB1B85495441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>540637 - 329298
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000020000000103000000010000001D00000052B81E85E75C5141000000F0644954411F85EB11E95C514148E17A445D495441333333D3E95C5141D7A370BD584954418FC2F528EA5C5141AE47E18A5349544148E17A94EA5C5141295C8FE24D49544185EB5108E65C51419A9999B94B4954418FC2F598E25C51411F85EBF1494954417B14AE47E25C5141D7A3709D4A495441CDCCCC1CDB5C5141713D0A2766495441EC51B8FEDA5C5141000000C068495441E17A140EDB5C51410AD7A3506A495441D7A370BDDD5C51410AD7A3606B495441713D0AA7DD5C51418FC2F5A86F495441B81E85CBDC5C5141E17A145E704954410AD7A3E0DA5C514152B81ED575495441333333C3DB5C51410000004077495441F6285CFFDA5C514185EB515878495441E17A14CED75C5141F6285C2F78495441CDCCCCCCD85C5141A4703DAA7B495441AE47E18ADB5C51417B14AEE77B4954413D0AD713DC5C5141D7A370FD7C4954415C8FC2D5E25C5141E17A14AE7E495441EC51B83EE65C5141E17A142E7F495441C3F528ECE85C514185EB51487F495441F6285C7FEB5C51415C8FC2F57E495441713D0AE7E85C51410AD7A30077495441F6285C6FE75C5141D7A3702D71495441EC51B80EE75C51415C8FC2256C49544152B81E85E75C5141000000F0644954410103000000010000001600000033333363D15C5141B81E85BB7A495441E17A146ED15C5141A4703DBA79495441A4703D0AD05C5141C3F5286C764954413D0AD7D3CF5C51419A9999697449544133333393C95C5141000000F071495441C3F528ACC65C5141F6285C4F714954410AD7A380C85C5141000000D06C4954417B14AE57CA5C5141B81E856B644954411F85EB21B75C5141D7A3709D5F4954411F85EB21B45C514148E17A145F495441B81E859BB35C51418FC2F5A86149544166666636B25C5141EC51B89E74495441CDCCCC2CB25C5141F6285C2F7549544185EB5138B25C51419A99992983495441A4703D3AB25C5141B81E855B85495441295C8F32B85C5141713D0A17844954411F85EB11BF5C5141713D0A67824954410AD7A380C45C5141C3F5285C81495441CDCCCCDCCA5C51410AD7A3708049544114AE47F1CD5C51410AD7A3907F4954410AD7A3A0CF5C51410AD7A3207E49544133333363D15C5141B81E85BB7A495441
+</a>
+
+<b>
+01060000000100000001030000000100000055000000AE1AF966B35C5141C3BFAB1B85495441732FAF20B95C514146EE91DC834954411F85EB11BF5C5141713D0A67824954410AD7A380C45C5141C3F5285C8149544103111820C85C514116FFFFD58049544178B60010CC5C5141BFD15D1980495441ECC31D46CC5C5141044BFE0980495441E63B43F7CC5C5141D7EBAAD77F49544157783154CE5C5141326C413C7F49544100285B97CE5C5141F337F5027F49544107EA6F4ACF5C5141A7552E6A7E49544143CEB118D05C5141F8B70E397D49544179F0A935D05C5141572A2D017D495441564384E6D05C5141230608AC7B495441065BEE26D15C5141A002C72F7B495441CDE33A67D15C514176B0385C7A495441AD3F8C67D15C51417CCAB4547A495441C4DF266AD15C5141EC0F21177A495441EE148A25D15C5141EAA4C20D79495441AD7E1E0AD15C5141003090CC784954413D9CCE8CD05C514150EA9BA277495441B6A2B986D05C51415FE625947749544174BD0A74D05C5141979EB96777495441F771713AD05C514181C3C5DE764954412191882ED05C5141D17374C276495441A4703D0AD05C5141C3F5286C7649544180091B01D05C5141756BC2157649544191F1D9FDCF5C5141E155FAF6754954413D0AD7D3CF5C51419A99996974495441988F21C6CD5C5141BBA48099734954418446D694CD5C51418F67FD85734954417FC4ECC7CC5C51419089E0347349544154C664C2CB5C51412E265ACD7249544140B7BF52CB5C5141439328A1724954418103DC2FCB5C51411109599372495441CA6E3AB7CA5C5141AED198637249544170BAE83BC95C5141C4D920DD714954410C7933B7C85C5141A11270C07149544141780F7EC85C5141109A15B471495441F988F043C85C514198E184A7714954411D5E086DC75C51413FC60E7971495441C3F528ACC65C5141F6285C4F7149544156255000C85C5141A0F9610B6E495441225FD0AFC85C51419B3BD5F86B4954417C27A80AC95C514176527C5A6A495441496184C3C95C51415AD74F0F674954410B5893FEC95C51414B1CF001664954417B14AE57CA5C5141B81E856B64495441748373DDC75C51413259E1CC6349544120EF442BC75C51416BC44FA063495441F48E3886C35C51418296EDB6624954416A780486C35C5141238FE0B6624954413A87FA47C35C5141B8015CA762495441C710842EBF5C51415A6DDBA0614954411D18AD79B75C51410DF563B35F4954419B9E9167B75C51413D7CDCAE5F4954411F85EB21B45C514148E17A145F495441E4F5B7A5B35C51410158D7766149544187A78A6AB35C5141C708A5426449544135DFEC44B35C5141523DE741664954414E6E7620B35C51415A577B3168495441A6A009EEB25C5141EE05D4DE6A495441A0FC65DCB25C51418BE491CE6B49544188C54CBDB25C51419BEF3D756D49544101F92AB2B25C5141E8AF8A0C6E495441DE77F096B25C51410B969D7E6F4954414988F27EB25C51418014B3C4704954411E46E47DB25C51413C450CD3704954411BAAD270B25C514178C7AB84714954416311DE69B25C5141469334E371495441A3A4EE4FB25C5141ABA3B3437349544164D4122DB25C5141DD2554847549544157A8122EB25C51411425BBBA764954419594392FB25C5141857291207849544170C7CD2FB25C5141A39861D478495441C7E6F32FB25C5141E6D8A20279495441C8168732B25C51413CD071227C495441C91AEC32B25C51415764029D7C49544173EA2433B25C5141DB93F0E17C4954410E63AC33B25C51410D694F867D495441D94A1937B25C51413AFC47AE814954410F175338B25C51415C0AF02A8349544100C0A138B25C5141D62DDD84834954417EA4343AB25C51417C65765185495441AE1AF966B35C5141C3BFAB1B85495441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>173295 - 427179
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000300000022000000B81E854B00F15041333333434E2154410000003005F15041666666B64F2154410000004006F15041713D0A0750215441000000300CF150411F85EBC152215441E17A146E16F1504152B81E9558215441CDCCCCDC1AF150411F85EBD1592154419A99992919F15041CDCCCC6C572154417B14AE5718F15041713D0AD755215441F6285C0F13F15041CDCCCCDC46215441F6285C1F0CF15041E17A140E332154413D0AD7530AF150411F85EB812E2154410000004009F15041000000202D215441A4703DEA04F15041713D0A272E215441333333A3F5F050411F85EB11312154410AD7A3A0F4F05041666666E6312154411F85EBE1F3F050413D0AD783322154415C8FC255F2F05041713D0A273421544114AE4741F1F05041A4703DEA35215441333333D3EFF05041000000D03921544148E17A04CDF0504114AE47F10221544166666656C9F050418FC2F5D808215441E17A147EC5F050418FC2F5C808215441F6285CDFC6F0504152B81E5500215441333333C3BFF05041CDCCCC2C032154417B14AE57BEF050413D0AD72303215441AE47E13ABEF0504148E17A240721544152B81EB5C3F050418FC2F5080E2154418FC2F5E8CAF05041295C8F1217215441EC51B8FED6F050415C8FC25526215441713D0AA7D9F050413D0AD7332A215441A4703DDADFF05041C3F5285C322154415C8FC2E5EDF050413333332344215441C3F5289CF3F0504114AE47C14C215441B81E854B00F15041333333434E2154410500000048E17AE407F15041B81E85AB31215441D7A3704D07F15041666666362F215441A4703D0A09F15041B81E85CB2E215441E17A149E09F15041F6285C3F3121544148E17AE407F15041B81E85AB31215441090000005C8FC24508F15041000000D03B215441713D0AC709F150415C8FC2F53A21544114AE47810CF150415C8FC2153B21544114AE47710CF15041F6285CFF3E215441EC51B8DE0AF15041C3F528CC3F2154417B14AEB708F15041666666063F215441A4703DEA07F15041F6285C1F3E215441F6285CDF07F15041EC51B8DE3C2154415C8FC24508F15041000000D03B215441
+</a>
+
+<b>
+01060000000100000001030000000200000034000000FF524C63D8F05041C92AD9DD142154410A1F3CF3DEF05041D26D2E361F2154418FA95A30E0F050412C85BE631F215441004DCC42E1F05041EC0CDBBA1E215441BB6821FEE2F050418847A2D21D2154411F2E5AE6E3F05041BBE14C511E2154412BBCCD25E3F050415C8C830D1F215441CFBFD90DE0F0504147DA95F320215441333333D3EFF05041000000D039215441F17012B3F0F050413ACFD46D37215441D57D9921F1F05041FFF495403621544114AE4741F1F05041A4703DEA3521544184E57A10F2F05041AF61A38A34215441CA4DF535F2F050415751F05A342154415C8FC255F2F05041713D0A2734215441061D008BF2F05041C803B4EE332154419BEB917AF3F0504191E5CBBD32215441B2957E26F5F050417469F4F030215441A54DD3A2F4F0504161ED1C242F215441862D2694F2F050411EDBD7E52A21544174B14EC7F0F05041F7A09432282154415591A1B8EEF05041B7188F912321544109E6A48BEDF05041FAB6DEBB20215441995A1DCEECF0504176966EFB1E215441288573E4EBF0504172BE9ECF1E21544100A75AEFE8F05041736274111F215441625C3DC9E6F05041AF72303C1E2154415D37217AE4F05041638B307E1D215441B9A894EBE3F050414B845B1C1C215441AC60E967E3F050411A8CAC82182154415D37217AE4F050410DEBDB0C18215441E549AFA1E5F05041CFE1147917215441042B3D45E8F0504152CF86511621544117E45920E6F05041FC2E32E010215441B41E2138E5F05041E9BCC0510E21544182F392CEE4F0504186F787690D215441437BAF25E4F0504181D26B1A0B215441D3465A28E3F05041941C6CE00821544160D63ADFE4F050411481C33008215441D7BA5845E3F05041562C5D40042154418E403C59E1F05041F3EEBE31042154417EB0E551E0F05041E45E682A032154417D0C1010E0F05041C53EBB1B012154417C683ACEDFF05041AE94CE6FFF2054416B340E85DEF05041875A8BBCFC2054414F5C0CFADCF0504159AA87A6F9205441707FC92DDCF050417017D0E1F820544125278F1DCBF050418234C8ACFE205441F1B3594AD6F05041A253A3CB1021544153038FCCD6F05041AFA6DB0712215441D2FC1430D7F0504185BB8EF912215441FF524C63D8F05041C92AD9DD1421544110000000F36E9318E1F05041BD9714B3192154412BE42148DFF05041D6E469F219215441AFD19320DEF050418AFD69341921544197F35AF6DDF05041195AF8211821544195843EE1DDF05041C372F86317215441332E220EDDF0504114C6BFBD1521544195843EE1DDF05041C94DDC14152154411F750533DFF05041B00087D514215441A8F6AF6FE0F05041C94DDC1415215441C14305AFE0F0504114C6BFBD15215441A8F6AF6FE0F0504152CF865116215441A8F6AF6FE0F05041AA25A32417215441D9213ED9E0F05041D050318E17215441199A2182E1F0504134166A761821544131785AACE1F05041966C864919215441F36E9318E1F05041BD9714B319215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>173295 - 429774
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000300000022000000B81E854B00F15041333333434E2154410000003005F15041666666B64F2154410000004006F15041713D0A0750215441000000300CF150411F85EBC152215441E17A146E16F1504152B81E9558215441CDCCCCDC1AF150411F85EBD1592154419A99992919F15041CDCCCC6C572154417B14AE5718F15041713D0AD755215441F6285C0F13F15041CDCCCCDC46215441F6285C1F0CF15041E17A140E332154413D0AD7530AF150411F85EB812E2154410000004009F15041000000202D215441A4703DEA04F15041713D0A272E215441333333A3F5F050411F85EB11312154410AD7A3A0F4F05041666666E6312154411F85EBE1F3F050413D0AD783322154415C8FC255F2F05041713D0A273421544114AE4741F1F05041A4703DEA35215441333333D3EFF05041000000D03921544148E17A04CDF0504114AE47F10221544166666656C9F050418FC2F5D808215441E17A147EC5F050418FC2F5C808215441F6285CDFC6F0504152B81E5500215441333333C3BFF05041CDCCCC2C032154417B14AE57BEF050413D0AD72303215441AE47E13ABEF0504148E17A240721544152B81EB5C3F050418FC2F5080E2154418FC2F5E8CAF05041295C8F1217215441EC51B8FED6F050415C8FC25526215441713D0AA7D9F050413D0AD7332A215441A4703DDADFF05041C3F5285C322154415C8FC2E5EDF050413333332344215441C3F5289CF3F0504114AE47C14C215441B81E854B00F15041333333434E2154410500000048E17AE407F15041B81E85AB31215441D7A3704D07F15041666666362F215441A4703D0A09F15041B81E85CB2E215441E17A149E09F15041F6285C3F3121544148E17AE407F15041B81E85AB31215441090000005C8FC24508F15041000000D03B215441713D0AC709F150415C8FC2F53A21544114AE47810CF150415C8FC2153B21544114AE47710CF15041F6285CFF3E215441EC51B8DE0AF15041C3F528CC3F2154417B14AEB708F15041666666063F215441A4703DEA07F15041F6285C1F3E215441F6285CDF07F15041EC51B8DE3C2154415C8FC24508F15041000000D03B215441
+</a>
+
+<b>
+01060000000100000001030000000200000034000000FF524C63D8F05041C92AD9DD142154410A1F3CF3DEF05041D26D2E361F2154418FA95A30E0F050412C85BE631F215441004DCC42E1F05041EC0CDBBA1E215441BB6821FEE2F050418847A2D21D2154411F2E5AE6E3F05041BBE14C511E2154412BBCCD25E3F050415C8C830D1F215441CFBFD90DE0F0504147DA95F320215441333333D3EFF05041000000D039215441F17012B3F0F050413ACFD46D37215441D57D9921F1F05041FFF495403621544114AE4741F1F05041A4703DEA3521544184E57A10F2F05041AF61A38A34215441CA4DF535F2F050415751F05A342154415C8FC255F2F05041713D0A2734215441061D008BF2F05041C803B4EE332154419BEB917AF3F0504191E5CBBD32215441B2957E26F5F050417469F4F030215441A54DD3A2F4F0504161ED1C242F215441862D2694F2F050411EDBD7E52A21544174B14EC7F0F05041F7A09432282154415591A1B8EEF05041B7188F912321544109E6A48BEDF05041FAB6DEBB20215441995A1DCEECF0504176966EFB1E215441288573E4EBF0504172BE9ECF1E21544100A75AEFE8F05041736274111F215441625C3DC9E6F05041AF72303C1E2154415D37217AE4F05041638B307E1D215441B9A894EBE3F050414B845B1C1C215441AC60E967E3F050411A8CAC82182154415D37217AE4F050410DEBDB0C18215441E549AFA1E5F05041CFE1147917215441042B3D45E8F0504152CF86511621544117E45920E6F05041FC2E32E010215441B41E2138E5F05041E9BCC0510E21544182F392CEE4F0504186F787690D215441437BAF25E4F0504181D26B1A0B215441D3465A28E3F05041941C6CE00821544160D63ADFE4F050411481C33008215441D7BA5845E3F05041562C5D40042154418E403C59E1F05041F3EEBE31042154417EB0E551E0F05041E45E682A032154417D0C1010E0F05041C53EBB1B012154417C683ACEDFF05041AE94CE6FFF2054416B340E85DEF05041875A8BBCFC2054414F5C0CFADCF0504159AA87A6F9205441707FC92DDCF050417017D0E1F820544125278F1DCBF050418234C8ACFE205441F1B3594AD6F05041A253A3CB1021544153038FCCD6F05041AFA6DB0712215441D2FC1430D7F0504185BB8EF912215441FF524C63D8F05041C92AD9DD1421544110000000F36E9318E1F05041BD9714B3192154412BE42148DFF05041D6E469F219215441AFD19320DEF050418AFD69341921544197F35AF6DDF05041195AF8211821544195843EE1DDF05041C372F86317215441332E220EDDF0504114C6BFBD1521544195843EE1DDF05041C94DDC14152154411F750533DFF05041B00087D514215441A8F6AF6FE0F05041C94DDC1415215441C14305AFE0F0504114C6BFBD15215441A8F6AF6FE0F0504152CF865116215441A8F6AF6FE0F05041AA25A32417215441D9213ED9E0F05041D050318E17215441199A2182E1F0504134166A761821544131785AACE1F05041966C864919215441F36E9318E1F05041BD9714B319215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>173361 - 1070288
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000020000000D00000033333323F7F25041713D0A475623544185EB5118F7F250411F85EB21552354410AD7A350EBF250417B14AE4757235441713D0A67EBF2504185EB51785E2354418FC2F5F8E9F250417B14AEE776235441EC51B80EEAF250411F85EBF1782354415C8FC2A5EBF25041E17A141E7D23544166666616EFF250418FC2F5688023544148E17A24F4F250411F85EB718423544100000050F6F25041713D0AB7802354413D0AD7C3F6F250418FC2F5987C23544148E17A34F8F250418FC2F5087323544133333323F7F25041713D0A475623544105000000EC51B87EEDF2504148E17A346323544133333373EDF25041AE47E12A622354418FC2F578EEF25041AE47E11A6223544148E17A84EEF25041F6285C2F63235441EC51B87EEDF2504148E17A3463235441
+</a>
+
+<b>
+0106000000010000000103000000010000001F00000000000070D7F25041E17A14FE8F235441C3F5289CE5F250413D0AD713902354412C6192E8E6F25041751857128F2354413524B234E9F25041DD9D31738D2354411F78C6DAECF25041E881D53B8C2354419FC879F7F0F25041295DDF568B235441B4FD6C04F2F25041FAC5A47D8A235441B4FD6C04F2F2504187623CBE87235441E596C597EFF2504146C3629784235441FAA2A059EBF250418D93CCF17F2354413524B234E9F25041F00A0E737923544191C5E8CCE8F2504164951019732354417AEA053CEAF250415DB7BE6D72235441DFA389C6EAF2504165C7E32E69235441713D0A67EBF2504185EB51785E2354410AD7A350EBF250417B14AE47572354416601648BE8F250418C2127D850235441D0C7083AE1F250415DBCC2DD4F235441BAA763F1DDF2504143E5DB334F235441A4703DAADDF25041666666F64F23544185EB5108DCF25041E17A14DE522354411F85EB31D8F250413D0AD7A358235441713D0AF7D6F250415C8FC2755B23544166666666D5F250418FC2F5F85F2354413D0AD783D4F25041EC51B83E64235441AE47E1BAD3F250413333339369235441AE47E14AD3F25041000000606F2354411F85EB31D3F25041666666A67523544152B81EB5D3F250419A9999697A2354417B14AEC7D4F25041A4703DAA8123544100000070D7F25041E17A14FE8F235441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>173361 - 5257195
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000020000000D00000033333323F7F25041713D0A475623544185EB5118F7F250411F85EB21552354410AD7A350EBF250417B14AE4757235441713D0A67EBF2504185EB51785E2354418FC2F5F8E9F250417B14AEE776235441EC51B80EEAF250411F85EBF1782354415C8FC2A5EBF25041E17A141E7D23544166666616EFF250418FC2F5688023544148E17A24F4F250411F85EB718423544100000050F6F25041713D0AB7802354413D0AD7C3F6F250418FC2F5987C23544148E17A34F8F250418FC2F5087323544133333323F7F25041713D0A475623544105000000EC51B87EEDF2504148E17A346323544133333373EDF25041AE47E12A622354418FC2F578EEF25041AE47E11A6223544148E17A84EEF25041F6285C2F63235441EC51B87EEDF2504148E17A3463235441
+</a>
+
+<b>
+0106000000010000000103000000010000001F00000000000070D7F25041E17A14FE8F235441C3F5289CE5F250413D0AD713902354412C6192E8E6F25041751857128F2354413524B234E9F25041DD9D31738D2354411F78C6DAECF25041E881D53B8C2354419FC879F7F0F25041295DDF568B235441B4FD6C04F2F25041FAC5A47D8A235441B4FD6C04F2F2504187623CBE87235441E596C597EFF2504146C3629784235441FAA2A059EBF250418D93CCF17F2354413524B234E9F25041F00A0E737923544191C5E8CCE8F2504164951019732354417AEA053CEAF250415DB7BE6D72235441DFA389C6EAF2504165C7E32E69235441713D0A67EBF2504185EB51785E2354410AD7A350EBF250417B14AE47572354416601648BE8F250418C2127D850235441D0C7083AE1F250415DBCC2DD4F235441BAA763F1DDF2504143E5DB334F235441A4703DAADDF25041666666F64F23544185EB5108DCF25041E17A14DE522354411F85EB31D8F250413D0AD7A358235441713D0AF7D6F250415C8FC2755B23544166666666D5F250418FC2F5F85F2354413D0AD783D4F25041EC51B83E64235441AE47E1BAD3F250413333339369235441AE47E14AD3F25041000000606F2354411F85EB31D3F25041666666A67523544152B81EB5D3F250419A9999697A2354417B14AEC7D4F25041A4703DAA8123544100000070D7F25041E17A14FE8F235441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>173472 - 405710
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000600000085EB51E886F0504133333313C6205441D7A3708D80F050410AD7A3D0BC2054419A99990939F050419A999949D62054419A9999E93AF05041D7A370CDD7205441D7A3700D41F0504148E17AF4DE20544185EB51E886F0504133333313C6205441
+</a>
+
+<b>
+0106000000010000000103000000010000000A00000050E1F8E844F050413A32060FD2205441230E383B47F0504149CA24B5D3205441CCF453D749F05041F96E1E1DD6205441A3E262C44BF050414A6E4130D92054418E30968F4CF050412A0AA8C6DA2054410462C6924CF050414AB206DADA205441259105A04CF05041EDDE4ED5DA20544185EB51E886F0504133333313C6205441D7A3708D80F050410AD7A3D0BC20544150E1F8E844F050413A32060FD2205441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>173472 - 414460
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000600000085EB51E886F0504133333313C6205441D7A3708D80F050410AD7A3D0BC2054419A99990939F050419A999949D62054419A9999E93AF05041D7A370CDD7205441D7A3700D41F0504148E17AF4DE20544185EB51E886F0504133333313C6205441
+</a>
+
+<b>
+0106000000010000000103000000010000000A00000050E1F8E844F050413A32060FD2205441230E383B47F0504149CA24B5D3205441CCF453D749F05041F96E1E1DD6205441A3E262C44BF050414A6E4130D92054418E30968F4CF050412A0AA8C6DA2054410462C6924CF050414AB206DADA205441259105A04CF05041EDDE4ED5DA20544185EB51E886F0504133333313C6205441D7A3708D80F050410AD7A3D0BC20544150E1F8E844F050413A32060FD2205441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>173941 - 245752
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000000F000000E17A147E20FA5041F6285CEFB12D5441C3F528BC20FA5041CDCCCC9CB42D5441333333D320FA50413D0AD7B3B52D54415C8FC22524FA5041E17A146EB52D5441D7A370BD26FA504152B81E55B52D5441333333032AFA50417B14AE07B52D54415C8FC2352CFA50411F85EBE1B42D54411F85EB712DFA5041C3F5288CAB2D5441A4703D4A23FA50411F85EB21AB2D5441D7A3703D21FA5041A4703DFAAA2D54419A9999F920FA5041D7A3704DAC2D544152B81E7520FA50417B14AEA7AD2D54413D0AD75320FA504185EB5148AF2D5441D7A3703D20FA5041CDCCCC5CB02D5441E17A147E20FA5041F6285CEFB12D54410103000000020000001B000000CDCCCCFCF6F95041666666F6B82D544133333343FBF95041E17A141EB82D544148E17A9402FA5041F6285CEFB62D54413333335308FA5041AE47E11AB62D5441A4703D0A09FA504152B81E05B62D5441A4703D9A0AFA50410AD7A3D0B52D54419A9999390EFA504133333333B52D5441F6285CDF0FFA504114AE4701B52D54413333332313FA504166666656B52D5441CDCCCCFC16FA50417B14AE47B52D544114AE47011DFA50419A999979B52D5441C3F5284C20FA5041666666A6B52D5441C3F5282C20FA5041B81E854BB42D54416666660620FA504185EB5198B12D544185EB51C81FFA5041CDCCCCFCAF2D544152B81EC51FFA5041B81E854BAE2D54416666662620FA5041EC51B81EAD2D5441C3F5288C20FA50417B14AED7AA2D5441295C8F720FFA50419A999939AA2D5441C3F5288CFEF95041713D0AB7A92D54418FC2F578EAF9504133333353A92D5441A4703D7AE2F950418FC2F548A92D544152B81EC5E6F9504148E17A94AF2D5441C3F528ECEBF950418FC2F568B72D5441E17A14EEECF9504185EB5158B82D5441CDCCCCFCF2F95041AE47E1DAB82D5441CDCCCCFCF6F95041666666F6B82D54410500000033333393E7F95041713D0A07AD2D544152B81E75E7F9504114AE4731AE2D544148E17A64E6F950415C8FC215AE2D5441295C8F82E6F95041B81E85EBAC2D544133333393E7F95041713D0A07AD2D5441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000F4C5D39D19FA5041CB617D5DB52D5441A02D4A881CFA504181E3AD75B52D544114AE47011DFA50419A999979B52D5441D07A0E2C20FA50412794B1A4B52D5441C3F5284C20FA5041666666A6B52D5441C3F5282C20FA5041B81E854BB42D544185B8AE3020FA50417E6AA14FB22D54417DC9485220FA504143B982F3AF2D5441231B009F20FA5041A226DB00AE2D5441D7A3703D21FA5041A4703DFAAA2D5441C3F5288C20FA50417B14AED7AA2D5441ABCF202513FA5041CB18C85BAA2D5441156A5F3312FA504100FFF93DB52D54413333332313FA504166666656B52D5441CDCCCCFC16FA50417B14AE47B52D5441F4C5D39D19FA5041CB617D5DB52D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>173941 - 282133
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000000F000000E17A147E20FA5041F6285CEFB12D5441C3F528BC20FA5041CDCCCC9CB42D5441333333D320FA50413D0AD7B3B52D54415C8FC22524FA5041E17A146EB52D5441D7A370BD26FA504152B81E55B52D5441333333032AFA50417B14AE07B52D54415C8FC2352CFA50411F85EBE1B42D54411F85EB712DFA5041C3F5288CAB2D5441A4703D4A23FA50411F85EB21AB2D5441D7A3703D21FA5041A4703DFAAA2D54419A9999F920FA5041D7A3704DAC2D544152B81E7520FA50417B14AEA7AD2D54413D0AD75320FA504185EB5148AF2D5441D7A3703D20FA5041CDCCCC5CB02D5441E17A147E20FA5041F6285CEFB12D54410103000000020000001B000000CDCCCCFCF6F95041666666F6B82D544133333343FBF95041E17A141EB82D544148E17A9402FA5041F6285CEFB62D54413333335308FA5041AE47E11AB62D5441A4703D0A09FA504152B81E05B62D5441A4703D9A0AFA50410AD7A3D0B52D54419A9999390EFA504133333333B52D5441F6285CDF0FFA504114AE4701B52D54413333332313FA504166666656B52D5441CDCCCCFC16FA50417B14AE47B52D544114AE47011DFA50419A999979B52D5441C3F5284C20FA5041666666A6B52D5441C3F5282C20FA5041B81E854BB42D54416666660620FA504185EB5198B12D544185EB51C81FFA5041CDCCCCFCAF2D544152B81EC51FFA5041B81E854BAE2D54416666662620FA5041EC51B81EAD2D5441C3F5288C20FA50417B14AED7AA2D5441295C8F720FFA50419A999939AA2D5441C3F5288CFEF95041713D0AB7A92D54418FC2F578EAF9504133333353A92D5441A4703D7AE2F950418FC2F548A92D544152B81EC5E6F9504148E17A94AF2D5441C3F528ECEBF950418FC2F568B72D5441E17A14EEECF9504185EB5158B82D5441CDCCCCFCF2F95041AE47E1DAB82D5441CDCCCCFCF6F95041666666F6B82D54410500000033333393E7F95041713D0A07AD2D544152B81E75E7F9504114AE4731AE2D544148E17A64E6F950415C8FC215AE2D5441295C8F82E6F95041B81E85EBAC2D544133333393E7F95041713D0A07AD2D5441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000F4C5D39D19FA5041CB617D5DB52D5441A02D4A881CFA504181E3AD75B52D544114AE47011DFA50419A999979B52D5441D07A0E2C20FA50412794B1A4B52D5441C3F5284C20FA5041666666A6B52D5441C3F5282C20FA5041B81E854BB42D544185B8AE3020FA50417E6AA14FB22D54417DC9485220FA504143B982F3AF2D5441231B009F20FA5041A226DB00AE2D5441D7A3703D21FA5041A4703DFAAA2D5441C3F5288C20FA50417B14AED7AA2D5441ABCF202513FA5041CB18C85BAA2D5441156A5F3312FA504100FFF93DB52D54413333332313FA504166666656B52D5441CDCCCCFC16FA50417B14AE47B52D5441F4C5D39D19FA5041CB617D5DB52D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>174396 - 3090944
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000061000000C3F5282CBFF350413D0AD723EB31544166666626BDF35041EC51B8AEEE3154413D0AD7A3BAF3504148E17A34F431544185EB5108B8F35041C3F5280CFB315441713D0A97B5F3504185EB51C8FF315441A4703D0AB3F350410AD7A390043254411F85EB31B0F350419A9999C908325441A4703D5AADF3504185EB51880C3254411F85EB2190F350413D0AD78329325441EC51B85E93F3504148E17A842C325441E17A141E97F35041B81E857B29325441E17A149E99F35041B81E855B23325441B81E85FB9FF35041E17A142E1E3254410AD7A380A4F35041CDCCCC5C1932544100000080A9F35041666666B613325441333333F3ACF35041713D0AF70F325441A4703DDAAEF35041C3F5281C0D32544100000020B2F35041E17A143E0932544148E17A44B4F3504148E17A840732544152B81EE5B7F35041C3F528EC06325441A4703D6ABCF35041EC51B8EE07325441295C8F82BFF350419A9999990932544148E17AD4C1F35041D7A370BD0B325441D7A370BDC4F350411F85EB010E325441F6285C6FC6F350413D0AD7630B3254417B14AE27C8F350410AD7A3B009325441713D0AB7CCF3504114AE47C1073254415C8FC245CFF350418FC2F5E805325441F6285C7FD3F35041000000A006325441D7A3704DD7F350418FC2F52807325441E17A146EDDF35041D7A370CD063254413D0AD7F3E1F350410AD7A3D007325441333333B3E5F350419A9999590832544185EB51A8ECF35041713D0A1706325441713D0AF7F2F350410AD7A320043254413D0AD793FAF35041E17A145EFF31544114AE4781FEF35041CDCCCC3CFE31544148E17A6404F450417B14AEA7FE31544114AE47110CF4504114AE4721FF315441713D0AC711F4504152B81E1500325441CDCCCCAC16F4504185EB5198FE315441D7A370DD1CF45041B81E85BBFE315441333333C31FF45041713D0AA7FF315441713D0AF722F4504114AE47C1FE3154416666662625F450418FC2F598FF31544114AE47212AF4504100000080FD315441D7A370FD37F450418FC2F5A8F731544152B81E8545F4504114AE4721F6315441AE47E12A46F4504166666606F63154415C8FC2B546F450410AD7A3F0F5315441D7A3702D4AF45041295C8F62F53154418FC2F50853F45041713D0AF7F331544148E17A2467F45041EC51B8BEF0315441D7A3702D60F45041713D0AD7E0315441D7A370BD5DF450419A9999B9DA3154417B14AE4759F45041EC51B8EED2315441CDCCCCEC53F45041000000E0CD31544152B81E954FF45041E17A141EC931544148E17A644BF45041AE47E19AC131544152B81EF546F45041EC51B87EBB315441A4703D5A45F450413D0AD7A3B83154417B14AEC746F45041AE47E1AAB0315441A4703DCA47F4504185EB5178A9315441E17A143E45F450413D0AD763A9315441D7A3708D3CF450413D0AD7D3B031544185EB513836F45041A4703D3AB53154415C8FC29530F4504152B81E15B831544114AE47E120F450418FC2F5B8BE315441666666F619F450415C8FC2F5C1315441713D0A4715F450418FC2F5C8C4315441AE47E1CA10F45041A4703D8AC93154411F85EB510AF45041713D0A07D23154413D0AD72307F4504152B81E55D5315441333333F3FFF350413D0AD753D931544114AE4791FAF35041666666B6DA315441713D0A37FDF3504185EB5188E0315441CDCCCC7CFDF350411F85EB61E131544148E17AD4FCF350417B14AE97E1315441AE47E1EAFDF35041E17A142EE63154415C8FC205FDF3504148E17AD4E7315441666666C6FFF35041E17A148EF4315441C3F528FCFDF350418FC2F508F53154417B14AEB7FBF3504152B81E95EA315441F6285CAFFAF3504133333383EA3154418FC2F578F2F3504152B81EC5EA315441F6285C1FEFF35041B81E853BEA31544133333363EEF35041F6285CEFE8315441C3F5281CEBF3504152B81E85E431544185EB51A8E8F3504166666636DF31544166666646E5F350418FC2F5C8DF315441F6285CCFD5F3504114AE4761E13154419A999929CDF3504100000080E23154418FC2F5B8C9F35041AE47E14AE3315441A4703D3AC6F350418FC2F5C8E4315441295C8F22C3F350413D0AD7D3E6315441EC51B8CEC0F350418FC2F5F8E8315441C3F5282CBFF350413D0AD723EB315441
+</a>
+
+<b>
+010600000001000000010300000001000000180000002D737E084BF45041ED2E713FF5315441355561664DF450415E1CAD8CFA315441E8D3A5B74BF450410348C0D0FB315441B492CD484CF450419922F35DFE315441D5C5EB524DF45041FD5E6A1100325441E48D6C8D4EF45041C91D92A20032544114890BD250F45041706362FF023254412B8D9AF258F4504193399D9E02325441DCB195CA60F45041619BE1C4013254413EA24ABC6BF450413D34B3F4FF315441A71ABE3C6DF45041D4BB3F74FE31544139FAFB5167F4504129C33AB7F0315441CA20D46A5FF450419F6B6BFBF13154411C59A08E5EF450414BC1AE1EF23154413975E1AD5DF450416C59AC42F2315441FA0C896F5CF450417A1FA775F2315441143C42C35BF4504104B73D91F2315441ED9144615AF45041EBCCEDC9F2315441CDA4F01659F45041E7CDD3FEF23154413E89778C57F45041DF7BFF3DF331544171B4913255F450416EAC629EF33154418010441E53F45041B2CAA0F3F3315441FE8C50BA50F45041C4E0AF55F43154412D737E084BF45041ED2E713FF5315441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>174396 - 3433660
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000061000000C3F5282CBFF350413D0AD723EB31544166666626BDF35041EC51B8AEEE3154413D0AD7A3BAF3504148E17A34F431544185EB5108B8F35041C3F5280CFB315441713D0A97B5F3504185EB51C8FF315441A4703D0AB3F350410AD7A390043254411F85EB31B0F350419A9999C908325441A4703D5AADF3504185EB51880C3254411F85EB2190F350413D0AD78329325441EC51B85E93F3504148E17A842C325441E17A141E97F35041B81E857B29325441E17A149E99F35041B81E855B23325441B81E85FB9FF35041E17A142E1E3254410AD7A380A4F35041CDCCCC5C1932544100000080A9F35041666666B613325441333333F3ACF35041713D0AF70F325441A4703DDAAEF35041C3F5281C0D32544100000020B2F35041E17A143E0932544148E17A44B4F3504148E17A840732544152B81EE5B7F35041C3F528EC06325441A4703D6ABCF35041EC51B8EE07325441295C8F82BFF350419A9999990932544148E17AD4C1F35041D7A370BD0B325441D7A370BDC4F350411F85EB010E325441F6285C6FC6F350413D0AD7630B3254417B14AE27C8F350410AD7A3B009325441713D0AB7CCF3504114AE47C1073254415C8FC245CFF350418FC2F5E805325441F6285C7FD3F35041000000A006325441D7A3704DD7F350418FC2F52807325441E17A146EDDF35041D7A370CD063254413D0AD7F3E1F350410AD7A3D007325441333333B3E5F350419A9999590832544185EB51A8ECF35041713D0A1706325441713D0AF7F2F350410AD7A320043254413D0AD793FAF35041E17A145EFF31544114AE4781FEF35041CDCCCC3CFE31544148E17A6404F450417B14AEA7FE31544114AE47110CF4504114AE4721FF315441713D0AC711F4504152B81E1500325441CDCCCCAC16F4504185EB5198FE315441D7A370DD1CF45041B81E85BBFE315441333333C31FF45041713D0AA7FF315441713D0AF722F4504114AE47C1FE3154416666662625F450418FC2F598FF31544114AE47212AF4504100000080FD315441D7A370FD37F450418FC2F5A8F731544152B81E8545F4504114AE4721F6315441AE47E12A46F4504166666606F63154415C8FC2B546F450410AD7A3F0F5315441D7A3702D4AF45041295C8F62F53154418FC2F50853F45041713D0AF7F331544148E17A2467F45041EC51B8BEF0315441D7A3702D60F45041713D0AD7E0315441D7A370BD5DF450419A9999B9DA3154417B14AE4759F45041EC51B8EED2315441CDCCCCEC53F45041000000E0CD31544152B81E954FF45041E17A141EC931544148E17A644BF45041AE47E19AC131544152B81EF546F45041EC51B87EBB315441A4703D5A45F450413D0AD7A3B83154417B14AEC746F45041AE47E1AAB0315441A4703DCA47F4504185EB5178A9315441E17A143E45F450413D0AD763A9315441D7A3708D3CF450413D0AD7D3B031544185EB513836F45041A4703D3AB53154415C8FC29530F4504152B81E15B831544114AE47E120F450418FC2F5B8BE315441666666F619F450415C8FC2F5C1315441713D0A4715F450418FC2F5C8C4315441AE47E1CA10F45041A4703D8AC93154411F85EB510AF45041713D0A07D23154413D0AD72307F4504152B81E55D5315441333333F3FFF350413D0AD753D931544114AE4791FAF35041666666B6DA315441713D0A37FDF3504185EB5188E0315441CDCCCC7CFDF350411F85EB61E131544148E17AD4FCF350417B14AE97E1315441AE47E1EAFDF35041E17A142EE63154415C8FC205FDF3504148E17AD4E7315441666666C6FFF35041E17A148EF4315441C3F528FCFDF350418FC2F508F53154417B14AEB7FBF3504152B81E95EA315441F6285CAFFAF3504133333383EA3154418FC2F578F2F3504152B81EC5EA315441F6285C1FEFF35041B81E853BEA31544133333363EEF35041F6285CEFE8315441C3F5281CEBF3504152B81E85E431544185EB51A8E8F3504166666636DF31544166666646E5F350418FC2F5C8DF315441F6285CCFD5F3504114AE4761E13154419A999929CDF3504100000080E23154418FC2F5B8C9F35041AE47E14AE3315441A4703D3AC6F350418FC2F5C8E4315441295C8F22C3F350413D0AD7D3E6315441EC51B8CEC0F350418FC2F5F8E8315441C3F5282CBFF350413D0AD723EB315441
+</a>
+
+<b>
+010600000001000000010300000001000000180000002D737E084BF45041ED2E713FF5315441355561664DF450415E1CAD8CFA315441E8D3A5B74BF450410348C0D0FB315441B492CD484CF450419922F35DFE315441D5C5EB524DF45041FD5E6A1100325441E48D6C8D4EF45041C91D92A20032544114890BD250F45041706362FF023254412B8D9AF258F4504193399D9E02325441DCB195CA60F45041619BE1C4013254413EA24ABC6BF450413D34B3F4FF315441A71ABE3C6DF45041D4BB3F74FE31544139FAFB5167F4504129C33AB7F0315441CA20D46A5FF450419F6B6BFBF13154411C59A08E5EF450414BC1AE1EF23154413975E1AD5DF450416C59AC42F2315441FA0C896F5CF450417A1FA775F2315441143C42C35BF4504104B73D91F2315441ED9144615AF45041EBCCEDC9F2315441CDA4F01659F45041E7CDD3FEF23154413E89778C57F45041DF7BFF3DF331544171B4913255F450416EAC629EF33154418010441E53F45041B2CAA0F3F3315441FE8C50BA50F45041C4E0AF55F43154412D737E084BF45041ED2E713FF5315441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>174465 - 266661
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000020000000103000000010000000F0000003D0AD7C372F85041295C8F224E2C5441AE47E17A7BF85041F6285CEF4B2C54419A9999C97DF85041CDCCCCCC4B2C544114AE47317CF850415C8FC205452C5441666666967BF8504114AE47A1442C54417B14AE0748F8504185EB51E84E2C5441713D0A4748F850411F85EB21502C54410AD7A36043F8504100000020512C544114AE47513CF85041713D0A47512C5441EC51B87E3CF8504148E17A04562C5441713D0AC74FF850418FC2F5F8542C5441000000E054F85041EC51B8EE542C54415C8FC2555FF85041EC51B8EE532C5441333333D368F8504152B81E75512C54413D0AD7C372F85041295C8F224E2C54410103000000010000001A000000E17A141E80F85041A4703DAA4B2C54410AD7A32085F8504185EB51B84B2C54411F85EBE18EF85041EC51B84E492C54418FC2F5A898F850415C8FC205462C54411F85EB71A6F850411F85EB61402C5441A4703D3AB4F85041E17A148E3A2C5441EC51B8CEBDF8504185EB5118372C544185EB5178D0F85041E17A149E302C5441000000F0DFF85041EC51B86E2A2C5441295C8F32DAF85041295C8F221F2C544166666686D5F85041AE47E11A142C5441CDCCCCACB7F85041AE47E12A1E2C5441F6285CFF9CF8504185EB51E8272C544185EB51B89BF8504166666606292C5441AE47E12A97F85041B81E852B222C5441E17A144E94F85041C3F528AC2C2C54413D0AD74392F8504148E17A54322C54416666669690F850411F85EB21362C5441E17A146E8EF85041F6285C7F3A2C54415C8FC2058CF85041713D0A173D2C54410000007089F85041666666363F2C54410AD7A32087F850410AD7A390402C54413D0AD77384F8504152B81E95412C5441666666067DF850410AD7A310432C5441B81E850B7FF85041A4703DBA4B2C5441E17A141E80F85041A4703DAA4B2C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000060530EE8ABF8504159138BC6272C5441C6F97E87ABF850414B94179A222C5441F6285CFF9CF8504185EB51E8272C544185EB51B89BF8504166666606292C5441AE47E12A97F85041B81E852B222C5441E17A144E94F85041C3F528AC2C2C54413D0AD74392F8504148E17A54322C5441BA85CC3A92F850419259F968322C5441B785CC3A92F850419B59F968322C544122B29CCA93F85041DC655A7E312C544109FC401097F85041A2A3CD922F2C54411BA41B9B99F85041AE7512692E2C5441732432CC9AF8504103BA82DD2D2C5441F06020A3A0F85041043B63322C2C54413B180B89A6F85041D4B8DF272A2C544160530EE8ABF8504159138BC6272C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>176737 - 1151451
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000250000009A99998919D75041000000F03B3854419A9999D91AD75041AE47E1EA3A3854413333339320D750418FC2F578233854416666662626D75041333333930A3854410AD7A32024D7504100000050093854415C8FC25520D7504152B81E7506385441713D0A571FD750415C8FC2B505385441F6285C1F1BD750415C8FC25502385441000000E01AD75041D7A3700D023854418FC2F50819D7504114AE47F1FF37544152B81E9518D750413D0AD773FF37544114AE47A112D7504185EB518805385441666666B60DD750411F85EBF1093854413D0AD7030BD75041295C8F420C38544114AE477103D75041E17A144E26385441C3F5287CFDD65041CDCCCC5C3E38544100000080FCD65041F6285C2F3E3854413D0AD783F9D65041AE47E10A3D385441A4703D7AF7D6504185EB51383C385441713D0A37F2D65041CDCCCCFC4F385441E17A145EF1D650416666663652385441EC51B8EEE7D65041C3F5283C723854410AD7A360EBD65041F6285CFF72385441333333A3EED6504166666676723854418FC2F5F8F0D6504114AE4771713854411F85EB41F3D650417B14AE976F3854415C8FC285F4D6504148E17AC46E3854413D0AD7F3F5D650415C8FC2856E385441F6285C1FF8D65041B81E853B6E385441A4703DEAFBD650410AD7A3B06F38544114AE47B105D75041F6285C6F733854413D0AD7F308D7504114AE47F174385441AE47E1CA0BD750410AD7A3D06C385441000000C00FD750413333331361385441D7A3700D15D75041333333E34F385441F6285C9F17D75041EC51B8EE433854419A99998919D75041000000F03B385441
+</a>
+
+<b>
+010600000001000000010300000001000000350000009A9999D91AD75041AE47E1EA3A385441A55162851BD750416EF9632B38385441342C21F21BD75041D0650E6E36385441796176041CD75041CFC9FA22363854416220D98B1CD75041F6698CF833385441A702027A1DD750418CDA3C293038544108F371381ED750415D155C1D2D3854411C6D86121FD75041FF7F47A0293854413B1D6BCF1FD75041405CB99A2638544135A4037920D750414B2632E4233854413B72C4B421D75041AA87C66B1E38544109FF9ECA22D75041283CE79219385441FE19E83A23D750413DEA719D173854419AC80FAB23D7504143DC91A815385441894969EB24D750416509EA1110385441F7DA186E25D75041892B48CA0D3854416666662626D75041333333930A3854410AD7A32024D7504100000050093854415C8FC25520D7504152B81E7506385441713D0A571FD750415C8FC2B505385441F6285C1F1BD750415C8FC25502385441000000E01AD75041D7A3700D023854418FC2F50819D7504114AE47F1FF37544152B81E9518D750413D0AD773FF37544114AE47A112D7504185EB518805385441666666B60DD750411F85EBF1093854413D0AD7030BD75041295C8F420C385441381C0CFC03D75041D114CD702438544114AE477103D75041E17A144E26385441C3F5287CFDD65041CDCCCC5C3E38544100000080FCD65041F6285C2F3E3854413D0AD783F9D65041AE47E10A3D385441A4703D7AF7D6504185EB51383C385441713D0A37F2D65041CDCCCCFC4F385441E17A145EF1D650416666663652385441EC51B8EEE7D65041C3F5283C723854410AD7A360EBD65041F6285CFF72385441333333A3EED6504166666676723854418FC2F5F8F0D6504114AE4771713854411F85EB41F3D650417B14AE976F3854415C8FC285F4D6504148E17AC46E3854413D0AD7F3F5D650415C8FC2856E385441F6285C1FF8D65041B81E853B6E385441A4703DEAFBD650410AD7A3B06F38544114AE47B105D75041F6285C6F733854413D0AD7F308D7504114AE47F174385441AE47E1CA0BD750410AD7A3D06C385441000000C00FD750413333331361385441D7A3700D15D75041333333E34F385441F6285C9F17D75041EC51B8EE433854416F64E07619D7504157542B3E3C3854419A99998919D75041000000F03B3854419A9999D91AD75041AE47E1EA3A385441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>177989 - 4163805
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000011000000CDCCCC7C1929514148E17A14A92E5541CDCCCC8C1929514148E17AA4A62E5541CDCCCC4C1829514148E17AE4A12E5541CDCCCC7CFD28514148E17A14A02E5541CDCCCCBCFA28514148E17A24A02E55413D0AD723D128514133333313AB2E55410AD7A370D428514148E17AC4BA2E55417B14AE97D928514114AE4741D32E554133333303EC2851419A9999D9CD2E554152B81EC502295141F6285C6FC72E55415C8FC2450F2951419A999939C42E5541CDCCCC8C1129514148E17A94C32E5541CDCCCC6C1229514148E17A74BC2E5541CDCCCC7C1329514148E17AD4B82E5541CDCCCC2C1529514148E17AC4B42E5541CDCCCCBC1829514148E17AD4AD2E5541CDCCCC7C1929514148E17A14A92E5541
+</a>
+
+<b>
+01060000000100000001030000000100000030000000BE07DDDDD6285141DCA3DF4CC62E5541831B7882D72851411A992B5BC92E5541A1B9525DD8285141B6BF486BCD2E55417B14AE97D928514114AE4741D32E5541AA887B2AE82851418EDA22FCCE2E5541E26C4D11E9285141EA23D1B6CE2E554165F92124EB285141EB0B0E1BCE2E5541324D6B4AEC2851410C3E86C5CD2E55413E7737BFED285141DA35705CCD2E554130F22655EF285141A7DB02EACC2E5541E5A3E025F028514139B22CAFCC2E5541A76DE581F12851416FC4124DCC2E554152B81EC502295141F6285C6FC72E5541F8882F06042951410444ED1CC72E55415C8FC2450F2951419A999939C42E55416AB793FB0F29514136C41B06C42E5541CDCCCC8C1129514148E17A94C32E55419D33112612295141867772B4BE2E5541CDCCCC6C1229514148E17A74BC2E55410CA4943113295141445D1CD5B92E5541CDCCCC7C1329514148E17AD4B82E5541225B1E8B14295141A28AB649B62E5541D9CEF7FB14295141BC749340B62E55413D0AD72B1729514189416095B12E5541C3F528C4182951413BDF4F1DAE2E554185EB5180192951417F6ABCCCAB2E55419318048E192951413D0AD7B3A72E55418F67BA8619295141CB4D4891A72E55411C19628C192951414641BCB4A62E55413F650F7E192951415EF1776CA62E554156F4D76C19295141B7AA0B2BA62E5541DB0E093C192951417D0F9371A52E5541F1603F06192951416B472EA5A42E5541D4BE05E218295141FA78861BA42E5541E2E308841829514100395FB6A22E5541CDCCCC4C1829514148E17AE4A12E55414DCD08E41729514186DF65DDA12E55417D3F357617295141C3F528B4A02E554154E3A5E3132951414A0C02CB9F2E55414260E5C8092951416F1283509F2E5541F4FDD4C800295141621058199F2E5541A01A2F15FE285141FCA9F11A9F2E5541E7FBA951F7285141CDCCCCC4A02E5541022B87AEE628514137894110A52E55418FE29515D1285141147E76CFAA2E5541DF4F8DE7D0285141A245B6DBAA2E554177BE9F4AD328514114AE4781B52E5541BE07DDDDD6285141DCA3DF4CC62E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>178315 - 2090126
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E000000D7A370CD5C345141666666E6292A5541F6285C8F5134514152B81E45292A55415C8FC2D547345141A4703D4A292A5541A4703D7A42345141333333D3292A554114AE476142345141EC51B82E2B2A554152B81EF52634514148E17A34292A5541AE47E1AA243451413D0AD7E3282A554148E17AA41E3451417B14AE672E2A5541666666D63E345141333333C3302A55418FC2F54849345141713D0AF7302A554148E17A7462345141A4703DEA312A5541C3F5288C69345141EC51B82E332A55415C8FC2656A345141A4703D7A2B2A5541D7A370CD5C345141666666E6292A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000C07A64005E345141916F040A2A2A5541B0A156DD61345141B61CC57C2A2A55414CB8D34A6534514118F296E22A2A55415C8FC2656A345141A4703D7A2B2A554185EB51386B345141EC51B8FE232A55413D0AD7D35834514100000020222A5541D7A370DD48345141E17A146E212A5541E17A14DE4734514133333363212A554185EB51A84634514148E17A34212A5541295C8F0246345141CDCCCC7C202A5541EC51B85E463451411F85EB611F2A55411F85EBE147345141EC51B8EE1D2A554185EB51084534514148E17A041E2A55411F85EB613434514185EB5138212A5541AE47E1AA243451413D0AD7E3282A5541209C18BF27345141F2820B43292A554148A34EB02A345141C85A5C79292A55414CE3D5812D3451418D4F64AD292A55416C84862F3A345141053172972A2A554114AE476142345141EC51B82E2B2A5541A4703D7A42345141333333D3292A55414836C73D463451415927FB72292A5541940DB5AA4A34514168C5BF48292A554112F5F1074F345141DD917346292A55417B0C3A15583451415FE6B1A2292A5541C07A64005E345141916F040A2A2A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>178315 - 4617761
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E000000D7A370CD5C345141666666E6292A5541F6285C8F5134514152B81E45292A55415C8FC2D547345141A4703D4A292A5541A4703D7A42345141333333D3292A554114AE476142345141EC51B82E2B2A554152B81EF52634514148E17A34292A5541AE47E1AA243451413D0AD7E3282A554148E17AA41E3451417B14AE672E2A5541666666D63E345141333333C3302A55418FC2F54849345141713D0AF7302A554148E17A7462345141A4703DEA312A5541C3F5288C69345141EC51B82E332A55415C8FC2656A345141A4703D7A2B2A5541D7A370CD5C345141666666E6292A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000C07A64005E345141916F040A2A2A5541B0A156DD61345141B61CC57C2A2A55414CB8D34A6534514118F296E22A2A55415C8FC2656A345141A4703D7A2B2A554185EB51386B345141EC51B8FE232A55413D0AD7D35834514100000020222A5541D7A370DD48345141E17A146E212A5541E17A14DE4734514133333363212A554185EB51A84634514148E17A34212A5541295C8F0246345141CDCCCC7C202A5541EC51B85E463451411F85EB611F2A55411F85EBE147345141EC51B8EE1D2A554185EB51084534514148E17A041E2A55411F85EB613434514185EB5138212A5541AE47E1AA243451413D0AD7E3282A5541209C18BF27345141F2820B43292A554148A34EB02A345141C85A5C79292A55414CE3D5812D3451418D4F64AD292A55416C84862F3A345141053172972A2A554114AE476142345141EC51B82E2B2A5541A4703D7A42345141333333D3292A55414836C73D463451415927FB72292A5541940DB5AA4A34514168C5BF48292A554112F5F1074F345141DD917346292A55417B0C3A15583451415FE6B1A2292A5541C07A64005E345141916F040A2A2A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>178315 - 34885
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E000000D7A370CD5C345141666666E6292A5541F6285C8F5134514152B81E45292A55415C8FC2D547345141A4703D4A292A5541A4703D7A42345141333333D3292A554114AE476142345141EC51B82E2B2A554152B81EF52634514148E17A34292A5541AE47E1AA243451413D0AD7E3282A554148E17AA41E3451417B14AE672E2A5541666666D63E345141333333C3302A55418FC2F54849345141713D0AF7302A554148E17A7462345141A4703DEA312A5541C3F5288C69345141EC51B82E332A55415C8FC2656A345141A4703D7A2B2A5541D7A370CD5C345141666666E6292A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000005C8FC2656A345141A4703D7A2B2A5541CDCCCC0C68345141C3F5281C2A2A5541000000405E34514152B81E15292A5541000000F05334514114AE4711282A554185EB51084B34514114AE47C1272A554185EB51A8463451419A999999272A554185EB5108413451419A999929292A5541C3F528DC3A34514152B81E65292A5541C3F5280C2E345141D7A3709D282A554185EB51C827345141EC51B85E272A5541576B44DF273451413F018553272A5541F3E516DF27345141EA7B8553272A5541AE47E1AA243451413D0AD7E3282A5541209C18BF27345141F2820B43292A554148A34EB02A345141C85A5C79292A55414CE3D5812D3451418D4F64AD292A55416C84862F3A345141053172972A2A554114AE476142345141EC51B82E2B2A5541A4703D7A42345141333333D3292A55414836C73D463451415927FB72292A5541940DB5AA4A34514168C5BF48292A554112F5F1074F345141DD917346292A55417B0C3A15583451415FE6B1A2292A5541C07A64005E345141916F040A2A2A5541B0A156DD61345141B61CC57C2A2A55414CB8D34A6534514118F296E22A2A55415C8FC2656A345141A4703D7A2B2A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>178315 - 58135
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E000000D7A370CD5C345141666666E6292A5541F6285C8F5134514152B81E45292A55415C8FC2D547345141A4703D4A292A5541A4703D7A42345141333333D3292A554114AE476142345141EC51B82E2B2A554152B81EF52634514148E17A34292A5541AE47E1AA243451413D0AD7E3282A554148E17AA41E3451417B14AE672E2A5541666666D63E345141333333C3302A55418FC2F54849345141713D0AF7302A554148E17A7462345141A4703DEA312A5541C3F5288C69345141EC51B82E332A55415C8FC2656A345141A4703D7A2B2A5541D7A370CD5C345141666666E6292A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000005C8FC2656A345141A4703D7A2B2A5541CDCCCC0C68345141C3F5281C2A2A5541000000405E34514152B81E15292A5541000000F05334514114AE4711282A554185EB51084B34514114AE47C1272A554185EB51A8463451419A999999272A554185EB5108413451419A999929292A5541C3F528DC3A34514152B81E65292A5541C3F5280C2E345141D7A3709D282A554185EB51C827345141EC51B85E272A5541576B44DF273451413F018553272A5541F3E516DF27345141EA7B8553272A5541AE47E1AA243451413D0AD7E3282A5541209C18BF27345141F2820B43292A554148A34EB02A345141C85A5C79292A55414CE3D5812D3451418D4F64AD292A55416C84862F3A345141053172972A2A554114AE476142345141EC51B82E2B2A5541A4703D7A42345141333333D3292A55414836C73D463451415927FB72292A5541940DB5AA4A34514168C5BF48292A554112F5F1074F345141DD917346292A55417B0C3A15583451415FE6B1A2292A5541C07A64005E345141916F040A2A2A5541B0A156DD61345141B61CC57C2A2A55414CB8D34A6534514118F296E22A2A55415C8FC2656A345141A4703D7A2B2A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>178351 - 1490885
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002D000000A4703D8A603451410AD7A3702E2B5541295C8FE26234514148E17AE42D2B5541A4703D4A643451410AD7A3B02F2B5541B81E855B6634514152B81EB5302B55417B14AED7693451413D0AD7232F2B5541AE47E1FA6A345141333333032E2B55413D0AD73366345141A4703DBA272B5541333333F3623451411F85EB71292B5541B81E856B5E3451419A999979222B554114AE47215C345141333333631E2B554114AE47A14D345141A4703D1A2F2B5541666666264B345141F6285CBF322B55411F85EBE14A3451418FC2F558342B554152B81E95483451418FC2F558342B5541713D0AE74534514166666646332B55411F85EB11423451417B14AEF7322B5541F6285C8F3A345141CDCCCC1C332B5541A4703DAA243451413D0AD7D3322B5541C3F528AC21345141666666D6322B5541333333031F34514166666676332B5541666666561C3451417B14AEB7342B5541EC51B81E1A345141333333A3362B5541F6285CBF1C34514148E17A743A2B5541A4703DAA1D34514185EB51783A2B5541A4703DBA2B345141C3F5288C3A2B5541D7A370CD49345141C3F5283C3A2B55413D0AD7B36E3451415C8FC2C5372B5541A4703DDA6D3451418FC2F538362B55415C8FC24573345141D7A3704D332B5541E17A144E73345141295C8F62312B5541295C8F3273345141C3F528CC2F2B554148E17AB4703451418FC2F558302B55418FC2F5A86C345141E17A143E312B5541F6285C4F6C345141E17A148E2E2B5541B81E85CB66345141333333E3312B5541F6285CAF64345141F6285CAF312B5541B81E85BB5C345141CDCCCCBC322B5541A4703D6A52345141295C8F32342B55410AD7A3F04C3451413D0AD7F3332B554114AE47D14C3451417B14AE77332B5541EC51B89E5134514148E17AE4322B5541A4703DFA59345141C3F528CC312B5541666666565D34514185EB51B8312B5541666666565D34514185EB51D82F2B5541A4703D8A603451410AD7A3702E2B5541
+</a>
+
+<b>
+0106000000010000000103000000010000003600000017F48C74213451411ECE7507412B5541834CDD4D213451410E87F20C412B55416A536F5C21345141DF904028412B55419A99993923345141D7A370DD432B5541666666A627345141F6285CEF482B5541C3F528EC2F345141E17A14AE482B554114AE47213234514185EB51B8472B554152B81E3535345141A4703DFA482B55416666662640345141333333734D2B554100000020433451417B14AEC74F2B5541EC51B8AE473451418FC2F518502B5541B81E859B4B345141000000F04E2B55417B14AED75134514185EB5128492B5541CDCCCC9C653451418FC2F5B8432B5541713D0A576B3451419A9999E9402B5541405A93F96B3451414B1DA770402B55411F85EB516E3451411F85EBB13E2B55412143058E6F345141AD2DC2523D2B55412F12B8F370345141809B62C53B2B5541EC51B82E713451413D0AD7833B2B554114AE47A172345141B81E855B382B5541FE889B036F345141D92FA4D1372B55413D0AD7B36E3451415C8FC2C5372B5541E45C29B56B345141A780ECF8372B5541479F49746A3451413551560E382B5541419ED2A868345141E2D1FF2C382B5541A5D2D09963345141D4BB6B83382B55415D816D2F633451414A44858A382B5541AF8BF5C361345141A4C4C6A2382B55413687ED625F3451413D776BCB382B5541C2C4E2B05B34514177A88D0A392B5541480547B8553451419E6B9070392B5541E909590D52345141A81A39AF392B5541D7A370CD49345141C3F5283C3A2B55410B598A6E47345141AF5277423A2B5541FD9FF4C8463451410DC82F443A2B5541E35EA1DE44345141FE0D48493A2B554135E4AC1F4234514138ED95503A2B55412C6B17D64134514136A959513A2B55414C4D5C0B41345141B9ED74533A2B5541F4EB9FFA3F34514118694A563A2B55419211C3213F345141D9448B583A2B5541A68FCBF13C3451413ECA5C5E3A2B554162A232C636345141978BC66E3A2B5541AA208FB72E345141D13235843A2B5541A4703DBA2B345141C3F5288C3A2B554100C0E8FF263451411A5F7D853A2B5541F7B1A27023345141C4B477803A2B5541F2D2494A213451417C406F7D3A2B5541A4703DAA1D34514185EB51783A2B5541F6285CBF1C34514148E17A743A2B55418633E5891F345141331C80823E2B5541D65DD64A213451410050AB08412B554117F48C74213451411ECE7507412B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>178351 - 3128988
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000002D000000A4703D8A603451410AD7A3702E2B5541295C8FE26234514148E17AE42D2B5541A4703D4A643451410AD7A3B02F2B5541B81E855B6634514152B81EB5302B55417B14AED7693451413D0AD7232F2B5541AE47E1FA6A345141333333032E2B55413D0AD73366345141A4703DBA272B5541333333F3623451411F85EB71292B5541B81E856B5E3451419A999979222B554114AE47215C345141333333631E2B554114AE47A14D345141A4703D1A2F2B5541666666264B345141F6285CBF322B55411F85EBE14A3451418FC2F558342B554152B81E95483451418FC2F558342B5541713D0AE74534514166666646332B55411F85EB11423451417B14AEF7322B5541F6285C8F3A345141CDCCCC1C332B5541A4703DAA243451413D0AD7D3322B5541C3F528AC21345141666666D6322B5541333333031F34514166666676332B5541666666561C3451417B14AEB7342B5541EC51B81E1A345141333333A3362B5541F6285CBF1C34514148E17A743A2B5541A4703DAA1D34514185EB51783A2B5541A4703DBA2B345141C3F5288C3A2B5541D7A370CD49345141C3F5283C3A2B55413D0AD7B36E3451415C8FC2C5372B5541A4703DDA6D3451418FC2F538362B55415C8FC24573345141D7A3704D332B5541E17A144E73345141295C8F62312B5541295C8F3273345141C3F528CC2F2B554148E17AB4703451418FC2F558302B55418FC2F5A86C345141E17A143E312B5541F6285C4F6C345141E17A148E2E2B5541B81E85CB66345141333333E3312B5541F6285CAF64345141F6285CAF312B5541B81E85BB5C345141CDCCCCBC322B5541A4703D6A52345141295C8F32342B55410AD7A3F04C3451413D0AD7F3332B554114AE47D14C3451417B14AE77332B5541EC51B89E5134514148E17AE4322B5541A4703DFA59345141C3F528CC312B5541666666565D34514185EB51B8312B5541666666565D34514185EB51D82F2B5541A4703D8A603451410AD7A3702E2B5541
+</a>
+
+<b>
+0106000000010000000103000000010000003A000000D7A370CD49345141C3F5283C3A2B5541C2C2027A4D345141103D64FD392B55413C95580D52345141712239AF392B5541AF8BF5C361345141A4C4C6A2382B5541CBD5D099633451419EBB6B83382B5541F59748B664345141BDE16F70382B55412BC3CCAF68345141609F882C382B5541969849746A345141A851560E382B55413D0AD7B36E3451415C8FC2C5372B5541A4703DDA6D3451418FC2F538362B55415C8FC24573345141D7A3704D332B5541E17A144E73345141295C8F62312B5541295C8F3273345141C3F528CC2F2B554148E17AB4703451418FC2F558302B55418FC2F5A86C345141E17A143E312B5541F6285C4F6C345141E17A148E2E2B5541B81E85CB66345141333333E3312B5541F6285CAF64345141F6285CAF312B5541B81E85BB5C345141CDCCCCBC322B5541A4703D6A52345141295C8F32342B55410AD7A3F04C3451413D0AD7F3332B554114AE47D14C3451417B14AE77332B5541EC51B89E5134514148E17AE4322B5541A4703DFA59345141C3F528CC312B5541666666565D34514185EB51B8312B5541666666565D34514185EB51D82F2B5541A4703D8A603451410AD7A3702E2B5541295C8FE26234514148E17AE42D2B5541A4703D4A643451410AD7A3B02F2B5541B81E855B6634514152B81EB5302B55417B14AED7693451413D0AD7232F2B5541AE47E1FA6A345141333333032E2B55413D0AD73366345141A4703DBA272B5541333333F3623451411F85EB71292B5541B81E856B5E3451419A999979222B554114AE47215C345141333333631E2B554114AE47A14D345141A4703D1A2F2B5541666666264B345141F6285CBF322B55411F85EBE14A3451418FC2F558342B554152B81E95483451418FC2F558342B5541713D0AE74534514166666646332B55411F85EB11423451417B14AEF7322B5541F6285C8F3A345141CDCCCC1C332B5541A4703DAA243451413D0AD7D3322B5541C3F528AC21345141666666D6322B5541333333031F34514166666676332B5541666666561C3451417B14AEB7342B5541EC51B81E1A345141333333A3362B5541F6285CBF1C34514148E17A743A2B5541F2D2494A213451417C406F7D3A2B55416FB2A27023345141C5B477803A2B554100C0E8FF263451411A5F7D853A2B554192208FB72E345141D13235843A2B55419AE3AC1F423451413AED95503A2B55416676794542345141616131503A2B5541717D7CBE453451411A98F4463A2B55416C738B5946345141D92258453A2B5541D7A370CD49345141C3F5283C3A2B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>178351 - 3515394
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000002D000000A4703D8A603451410AD7A3702E2B5541295C8FE26234514148E17AE42D2B5541A4703D4A643451410AD7A3B02F2B5541B81E855B6634514152B81EB5302B55417B14AED7693451413D0AD7232F2B5541AE47E1FA6A345141333333032E2B55413D0AD73366345141A4703DBA272B5541333333F3623451411F85EB71292B5541B81E856B5E3451419A999979222B554114AE47215C345141333333631E2B554114AE47A14D345141A4703D1A2F2B5541666666264B345141F6285CBF322B55411F85EBE14A3451418FC2F558342B554152B81E95483451418FC2F558342B5541713D0AE74534514166666646332B55411F85EB11423451417B14AEF7322B5541F6285C8F3A345141CDCCCC1C332B5541A4703DAA243451413D0AD7D3322B5541C3F528AC21345141666666D6322B5541333333031F34514166666676332B5541666666561C3451417B14AEB7342B5541EC51B81E1A345141333333A3362B5541F6285CBF1C34514148E17A743A2B5541A4703DAA1D34514185EB51783A2B5541A4703DBA2B345141C3F5288C3A2B5541D7A370CD49345141C3F5283C3A2B55413D0AD7B36E3451415C8FC2C5372B5541A4703DDA6D3451418FC2F538362B55415C8FC24573345141D7A3704D332B5541E17A144E73345141295C8F62312B5541295C8F3273345141C3F528CC2F2B554148E17AB4703451418FC2F558302B55418FC2F5A86C345141E17A143E312B5541F6285C4F6C345141E17A148E2E2B5541B81E85CB66345141333333E3312B5541F6285CAF64345141F6285CAF312B5541B81E85BB5C345141CDCCCCBC322B5541A4703D6A52345141295C8F32342B55410AD7A3F04C3451413D0AD7F3332B554114AE47D14C3451417B14AE77332B5541EC51B89E5134514148E17AE4322B5541A4703DFA59345141C3F528CC312B5541666666565D34514185EB51B8312B5541666666565D34514185EB51D82F2B5541A4703D8A603451410AD7A3702E2B5541
+</a>
+
+<b>
+0106000000010000000103000000010000003A000000D7A370CD49345141C3F5283C3A2B5541C2C2027A4D345141103D64FD392B55413C95580D52345141712239AF392B5541AF8BF5C361345141A4C4C6A2382B5541CBD5D099633451419EBB6B83382B5541F59748B664345141BDE16F70382B55412BC3CCAF68345141609F882C382B5541969849746A345141A851560E382B55413D0AD7B36E3451415C8FC2C5372B5541A4703DDA6D3451418FC2F538362B55415C8FC24573345141D7A3704D332B5541E17A144E73345141295C8F62312B5541295C8F3273345141C3F528CC2F2B554148E17AB4703451418FC2F558302B55418FC2F5A86C345141E17A143E312B5541F6285C4F6C345141E17A148E2E2B5541B81E85CB66345141333333E3312B5541F6285CAF64345141F6285CAF312B5541B81E85BB5C345141CDCCCCBC322B5541A4703D6A52345141295C8F32342B55410AD7A3F04C3451413D0AD7F3332B554114AE47D14C3451417B14AE77332B5541EC51B89E5134514148E17AE4322B5541A4703DFA59345141C3F528CC312B5541666666565D34514185EB51B8312B5541666666565D34514185EB51D82F2B5541A4703D8A603451410AD7A3702E2B5541295C8FE26234514148E17AE42D2B5541A4703D4A643451410AD7A3B02F2B5541B81E855B6634514152B81EB5302B55417B14AED7693451413D0AD7232F2B5541AE47E1FA6A345141333333032E2B55413D0AD73366345141A4703DBA272B5541333333F3623451411F85EB71292B5541B81E856B5E3451419A999979222B554114AE47215C345141333333631E2B554114AE47A14D345141A4703D1A2F2B5541666666264B345141F6285CBF322B55411F85EBE14A3451418FC2F558342B554152B81E95483451418FC2F558342B5541713D0AE74534514166666646332B55411F85EB11423451417B14AEF7322B5541F6285C8F3A345141CDCCCC1C332B5541A4703DAA243451413D0AD7D3322B5541C3F528AC21345141666666D6322B5541333333031F34514166666676332B5541666666561C3451417B14AEB7342B5541EC51B81E1A345141333333A3362B5541F6285CBF1C34514148E17A743A2B5541F2D2494A213451417C406F7D3A2B55416FB2A27023345141C5B477803A2B554100C0E8FF263451411A5F7D853A2B554192208FB72E345141D13235843A2B55419AE3AC1F423451413AED95503A2B55416676794542345141616131503A2B5541717D7CBE453451411A98F4463A2B55416C738B5946345141D92258453A2B5541D7A370CD49345141C3F5283C3A2B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>178351 - 3515627
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002D000000A4703D8A603451410AD7A3702E2B5541295C8FE26234514148E17AE42D2B5541A4703D4A643451410AD7A3B02F2B5541B81E855B6634514152B81EB5302B55417B14AED7693451413D0AD7232F2B5541AE47E1FA6A345141333333032E2B55413D0AD73366345141A4703DBA272B5541333333F3623451411F85EB71292B5541B81E856B5E3451419A999979222B554114AE47215C345141333333631E2B554114AE47A14D345141A4703D1A2F2B5541666666264B345141F6285CBF322B55411F85EBE14A3451418FC2F558342B554152B81E95483451418FC2F558342B5541713D0AE74534514166666646332B55411F85EB11423451417B14AEF7322B5541F6285C8F3A345141CDCCCC1C332B5541A4703DAA243451413D0AD7D3322B5541C3F528AC21345141666666D6322B5541333333031F34514166666676332B5541666666561C3451417B14AEB7342B5541EC51B81E1A345141333333A3362B5541F6285CBF1C34514148E17A743A2B5541A4703DAA1D34514185EB51783A2B5541A4703DBA2B345141C3F5288C3A2B5541D7A370CD49345141C3F5283C3A2B55413D0AD7B36E3451415C8FC2C5372B5541A4703DDA6D3451418FC2F538362B55415C8FC24573345141D7A3704D332B5541E17A144E73345141295C8F62312B5541295C8F3273345141C3F528CC2F2B554148E17AB4703451418FC2F558302B55418FC2F5A86C345141E17A143E312B5541F6285C4F6C345141E17A148E2E2B5541B81E85CB66345141333333E3312B5541F6285CAF64345141F6285CAF312B5541B81E85BB5C345141CDCCCCBC322B5541A4703D6A52345141295C8F32342B55410AD7A3F04C3451413D0AD7F3332B554114AE47D14C3451417B14AE77332B5541EC51B89E5134514148E17AE4322B5541A4703DFA59345141C3F528CC312B5541666666565D34514185EB51B8312B5541666666565D34514185EB51D82F2B5541A4703D8A603451410AD7A3702E2B5541
+</a>
+
+<b>
+0106000000010000000103000000010000003600000017F48C74213451411ECE7507412B5541834CDD4D213451410E87F20C412B55416A536F5C21345141DF904028412B55419A99993923345141D7A370DD432B5541666666A627345141F6285CEF482B5541C3F528EC2F345141E17A14AE482B554114AE47213234514185EB51B8472B554152B81E3535345141A4703DFA482B55416666662640345141333333734D2B554100000020433451417B14AEC74F2B5541EC51B8AE473451418FC2F518502B5541B81E859B4B345141000000F04E2B55417B14AED75134514185EB5128492B5541CDCCCC9C653451418FC2F5B8432B5541713D0A576B3451419A9999E9402B5541405A93F96B3451414B1DA770402B55411F85EB516E3451411F85EBB13E2B55412143058E6F345141AD2DC2523D2B55412F12B8F370345141809B62C53B2B5541EC51B82E713451413D0AD7833B2B554114AE47A172345141B81E855B382B5541FE889B036F345141D92FA4D1372B55413D0AD7B36E3451415C8FC2C5372B5541E45C29B56B345141A780ECF8372B5541479F49746A3451413551560E382B5541419ED2A868345141E2D1FF2C382B5541A5D2D09963345141D4BB6B83382B55415D816D2F633451414A44858A382B5541AF8BF5C361345141A4C4C6A2382B55413687ED625F3451413D776BCB382B5541C2C4E2B05B34514177A88D0A392B5541480547B8553451419E6B9070392B5541E909590D52345141A81A39AF392B5541D7A370CD49345141C3F5283C3A2B55410B598A6E47345141AF5277423A2B5541FD9FF4C8463451410DC82F443A2B5541E35EA1DE44345141FE0D48493A2B554135E4AC1F4234514138ED95503A2B55412C6B17D64134514136A959513A2B55414C4D5C0B41345141B9ED74533A2B5541F4EB9FFA3F34514118694A563A2B55419211C3213F345141D9448B583A2B5541A68FCBF13C3451413ECA5C5E3A2B554162A232C636345141978BC66E3A2B5541AA208FB72E345141D13235843A2B5541A4703DBA2B345141C3F5288C3A2B554100C0E8FF263451411A5F7D853A2B5541F7B1A27023345141C4B477803A2B5541F2D2494A213451417C406F7D3A2B5541A4703DAA1D34514185EB51783A2B5541F6285CBF1C34514148E17A743A2B55418633E5891F345141331C80823E2B5541D65DD64A213451410050AB08412B554117F48C74213451411ECE7507412B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>178607 - 197120
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000B90000003D0AD7530F2751410AD7A3E0862155419A99992910275141D7A3700D88215541B81E854B0F275141AE47E17A892155419A999989122751415C8FC2D58A215541AE47E1DA1127514185EB51588C21554152B81E8510275141EC51B84E8F215541B81E858B1027514100000070932155417B14AE9710275141713D0AC7962155410AD7A3800F275141333333439A215541000000E014275141F6285C4F9C215541713D0A37182751418FC2F5F89C215541713D0AB71B2751418FC2F5689D215541713D0A671E2751418FC2F5789D215541713D0A77212751418FC2F5E89D215541713D0AB7222751418FC2F5889E215541713D0AB7222751418FC2F5A89F215541713D0A67222751418FC2F598A0215541713D0AC7222751418FC2F558A1215541713D0A87232751418FC2F578A1215541713D0A67242751418FC2F518A1215541713D0AB7252751418FC2F548A0215541713D0A27282751418FC2F578A1215541713D0A972A2751418FC2F5D8A2215541713D0AE72C2751418FC2F518A3215541713D0A672F2751418FC2F588A4215541713D0AA7302751418FC2F5E8A5215541713D0A27342751418FC2F5C8A6215541713D0A47342751418FC2F5D8A9215541713D0AB7372751418FC2F5D8AD215541713D0A673A2751418FC2F508AD215541713D0A673C2751418FC2F568AB215541713D0A373D2751418FC2F558A8215541713D0A473D2751418FC2F5E8A6215541713D0A373C2751418FC2F578A6215541713D0A973A2751418FC2F5D8A7215541713D0A07392751418FC2F508A5215541713D0A773C2751418FC2F598A2215541713D0AA73F2751418FC2F568A6215541713D0A67432751418FC2F548AA215541713D0A77432751418FC2F5F8AE215541713D0AA73E2751418FC2F5E8B0215541713D0A573B2751418FC2F528B1215541713D0A47382751418FC2F5D8B2215541713D0A273B2751418FC2F5A8B5215541713D0A073F2751418FC2F548BB215541713D0A37402751418FC2F528C1215541713D0A07442751418FC2F518C3215541713D0A87462751418FC2F5C8C6215541713D0AD7482751418FC2F598CB215541713D0AF74B2751418FC2F528CC215541713D0A874D2751418FC2F598CE215541713D0A874D2751418FC2F528D2215541713D0AA74F2751418FC2F5A8D3215541B81E859B4F275141CDCCCCFCD8215541EC51B83E4F275141B81E853BDB2155411F85EBC14E275141A4703D5ADD215541713D0A674F2751418FC2F598E02155419A99994952275141A4703DBAE1215541713D0A57522751418FC2F588E3215541713D0A97542751418FC2F568E6215541C3F5287C5827514148E17A74EA215541333333435E275141E17A148EE9215541713D0AF7602751418FC2F5D8EA215541713D0AE7652751418FC2F5B8E9215541713D0AE7682751418FC2F578E8215541713D0A676A2751418FC2F598E8215541713D0A776C2751418FC2F538EB215541713D0A776E2751418FC2F5B8EB215541713D0AD7712751418FC2F558EB215541713D0A57742751418FC2F5F8EB215541713D0AE7732751418FC2F518EF215541713D0A87742751418FC2F548F2215541713D0AF7772751418FC2F548F4215541713D0A777C2751418FC2F508F5215541713D0AF77E2751418FC2F538F4215541713D0A277B2751418FC2F528ED215541713D0A877D2751418FC2F528ED215541713D0A27812751418FC2F548F5215541713D0AA7812751418FC2F568F7215541713D0AE7842751418FC2F508F9215541713D0A77872751418FC2F5F8F7215541713D0AE7882751418FC2F5D8F8215541713D0A47892751418FC2F568FD215541713D0A578C2751418FC2F598012255413333334390275141B81E857B0322554148E17AD4912751419A99990904225541713D0AA7942751418FC2F51802225541295C8FA298275141C3F528ECFB2155417B14AE9796275141A4703DDAF821554114AE471195275141A4703DCAFA215541F6285C7F932751415C8FC295FC21554148E17AF49027514185EB51C8FD215541000000208B275141C3F528BCF42155410AD7A330862751418FC2F508ED2155415C8FC2D57F27514114AE47F1E221554148E17AE4832751413D0AD773DA21554185EB51588327514148E17A14D9215541666666F68127514185EB5108CF215541333333D3812751417B14AE57C6215541EC51B83E82275141CDCCCCBCBE21554185EB518883275141713D0AF7B5215541E17A143E8427514148E17A34AC215541B81E853B85275141E17A140EA821554185EB51E885275141F6285CAFA5215541C3F5285C8627514148E17AC4A32155419A999999862751419A9999F9A1215541A4703D8A86275141F6285C2FA0215541EC51B88E86275141B81E85EB9E215541CDCCCCEC86275141C3F5281C9B21554148E17A448527514148E17AB4932155419A99994983275141E17A149E8C215541D7A3700D8227514114AE4701892155418FC2F52880275141F6285C0F86215541666666067E27514152B81EE584215541D7A3707D7B275141EC51B80E842155411F85EBE178275141B81E859B83215541C3F5280C74275141B81E856B8321554185EB519872275141713D0A7783215541713D0A37712751418FC2F50884215541713D0A17712751418FC2F58885215541713D0AA7702751418FC2F57886215541713D0AA76F2751418FC2F50887215541713D0A576E2751418FC2F53887215541713D0AE76C2751418FC2F5E886215541713D0A776D2751418FC2F5188E215541713D0AF76E2751418FC2F5D88D215541713D0A776E2751418FC2F5F88E215541713D0A376C2751418FC2F5688F215541713D0A07692751418FC2F5988E215541AE47E11A6727514185EB51588D215541713D0AB7612751418FC2F5588E215541713D0A37582751418FC2F53891215541713D0A875A2751418FC2F5A896215541713D0A67572751418FC2F56897215541713D0AE7552751418FC2F51899215541713D0AD7542751418FC2F5489B215541713D0A37542751418FC2F5589C215541713D0AD7522751418FC2F5989C215541713D0A37502751418FC2F5789D215541713D0A974F2751418FC2F5389D215541713D0A174F2751418FC2F5D89A215541713D0A174E2751418FC2F57899215541713D0AB74D2751418FC2F57897215541713D0AE74D2751418FC2F5A895215541713D0A474C2751418FC2F59892215541713D0A874A2751418FC2F59893215541713D0AC7492751418FC2F55892215541713D0AF74A2751418FC2F51891215541713D0A97492751418FC2F5F88A215541666666A641275141666666E68921554152B81EF53E275141000000D089215541333333833B27514114AE47B18921554185EB5158392751410AD7A3A089215541CDCCCCBC362751413D0AD74389215541666666B632275141C3F528CC882155415C8FC2752C275141F6285CBF872155419A99992929275141C3F5280C862155411F85EB31262751417B14AE4784215541A4703D7A23275141333333B382215541B81E855B2027514148E17AC480215541C3F528EC1C275141000000A07E215541F6285C1F1B2751413D0AD7837D21554185EB51B8182751411F85EB417C215541B81E85AB14275141D7A3709D7A2155411F85EBC11227514114AE47D1792155415C8FC2250F27514185EB513878215541000000400C275141EC51B8BE762155413D0AD7C3082751418FC2F58875215541B81E85BB03275141A4703DCA732155413D0AD7F3FF265141F6285C8F72215541EC51B8BEFE2651413333330373215541CDCCCC9CFD265141D7A370FD73215541C3F528FCFC265141C3F528CC7821554152B81E95FC26514114AE47117C215541EC51B8AEFC2651413D0AD7D37D215541000000A0FB265141AE47E10A80215541666666F6FA2651413333336382215541E17A14EEFC2651411F85EBF1822155415C8FC275FD26514148E17A6480215541E17A14EEFD265141E17A142E7E215541E17A14BE002751411F85EB117F2155415C8FC2650427514152B81E3580215541D7A370BD07275141B81E853B81215541CDCCCC6C0F275141CDCCCCAC842155413D0AD7530F2751410AD7A3E086215541
+</a>
+
+<b>
+0106000000010000000103000000010000004A000000713D0A57522751418FC2F588E32155415F087B65542751411354A229E6215541C3F5287C5827514148E17A74EA215541333333435E275141E17A148EE9215541A5460A2561275141B04BD9CBE9215541D9E10C4766275141D54758A8E82155419087EFB16827514183A790D5E7215541B8E5E71A6B275141CA17F6DBE8215541F7D163626C275141178597BAEA2155415E33C68A6E275141586EC4B6EB2155410D8B8028712751419A645A6CEB21554199B97ED8712751411D305B1FEB2155416FFC81E9732751418C2E10F1E921554109D42E4A75275141EF0DB47FE9215541D0950CC4762751410F59AEBEE9215541233224BE7727514124F03FFBEA215541606CFF2D7927514100FCCE99EB215541783B6E5E7A2751418C630632EC215541BDBAC3337C2751410F0FC886EB215541386BEEAF7E27514134DD69B2EC2155415ACC67CB7F27514192FA7944EF215541109F0BA3802751410DF83446F121554109D18C1B8127514126C7A376F2215541A44BBDA0812751419508E934F3215541E1859810832751419EC45E78F421554157DA9A9985275141896230B1F4215541A61B537C86275141D8A3E893F5215541D43DFA1B88275141233ADD11F621554188D3EE9988275141EF50F726F72155410260A1BB892751414B074816F8215541382034078A27514101A9C91EF921554116DF846C8A275141A14B58F0F9215541A4D539C8892751414B954566FA215541A4D539C889275141BA21F887FB215541E695CC138A27514182E3D501FD215541D2F7E0678B2751419990E494FE215541918DD5E58B275141DEAD6A860022554138AE31578C275141562E901D01225541C404B9208D27514112254EC101225541036C68E68E2751415E77E7D302225541478A99F88E275141BC7EA5DC022255410AA84B078F275141BD6BB5E302225541C21427369127514168866215032255413F7886B893275141B4F06D9702225541AF8A7F1F95275141BD8E594301225541878A915C9527514168727EFF00225541295C8FA298275141C3F528ECFB2155414C649BE5972751419BFD26D0FA215541FD4DA8C797275141411B8CABFA215541F421BFCB96275141C49BB142FB215541648AE02F962751413A1B95B9FC215541A2AF83E791275141D27B1B5B0022554129FD007D8E275141C30C605FFD215541DE1C7D9D8B275141E8B0EB1DF8215541F6E7A3A885275141034639D4F0215541360820798027514160ACCC61EA215541DE249F187D27514167444844E92155418668DF557A2751412152B8B3E821554143F96B4679275141B21C178AE82155418B70CFC7722751414BBC4D64E8215541AEC1D4086B27514177E26CD2E521554180DECEAE672751411ED21AAFE7215541690FC51862275141C1459D14E92155419827C04D5F275141EF4A9C85E8215541E438853F5F2751417B45A081E8215541C0CE8D6F5E2751413547B557E82155411D7EF14A5C2751418ED3C8ADE721554120500DA65A2751410F56EF37E7215541D40841455A2751418A30700DE721554164FC41E058275141433ADD9EE6215541FFC6A67857275141180DD5D2E5215541D7F0DBD4562751417764EC8AE52155418CE4D65152275141335DE9D5E2215541713D0A57522751418FC2F588E3215541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>178607 - 382437
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000B90000003D0AD7530F2751410AD7A3E0862155419A99992910275141D7A3700D88215541B81E854B0F275141AE47E17A892155419A999989122751415C8FC2D58A215541AE47E1DA1127514185EB51588C21554152B81E8510275141EC51B84E8F215541B81E858B1027514100000070932155417B14AE9710275141713D0AC7962155410AD7A3800F275141333333439A215541000000E014275141F6285C4F9C215541713D0A37182751418FC2F5F89C215541713D0AB71B2751418FC2F5689D215541713D0A671E2751418FC2F5789D215541713D0A77212751418FC2F5E89D215541713D0AB7222751418FC2F5889E215541713D0AB7222751418FC2F5A89F215541713D0A67222751418FC2F598A0215541713D0AC7222751418FC2F558A1215541713D0A87232751418FC2F578A1215541713D0A67242751418FC2F518A1215541713D0AB7252751418FC2F548A0215541713D0A27282751418FC2F578A1215541713D0A972A2751418FC2F5D8A2215541713D0AE72C2751418FC2F518A3215541713D0A672F2751418FC2F588A4215541713D0AA7302751418FC2F5E8A5215541713D0A27342751418FC2F5C8A6215541713D0A47342751418FC2F5D8A9215541713D0AB7372751418FC2F5D8AD215541713D0A673A2751418FC2F508AD215541713D0A673C2751418FC2F568AB215541713D0A373D2751418FC2F558A8215541713D0A473D2751418FC2F5E8A6215541713D0A373C2751418FC2F578A6215541713D0A973A2751418FC2F5D8A7215541713D0A07392751418FC2F508A5215541713D0A773C2751418FC2F598A2215541713D0AA73F2751418FC2F568A6215541713D0A67432751418FC2F548AA215541713D0A77432751418FC2F5F8AE215541713D0AA73E2751418FC2F5E8B0215541713D0A573B2751418FC2F528B1215541713D0A47382751418FC2F5D8B2215541713D0A273B2751418FC2F5A8B5215541713D0A073F2751418FC2F548BB215541713D0A37402751418FC2F528C1215541713D0A07442751418FC2F518C3215541713D0A87462751418FC2F5C8C6215541713D0AD7482751418FC2F598CB215541713D0AF74B2751418FC2F528CC215541713D0A874D2751418FC2F598CE215541713D0A874D2751418FC2F528D2215541713D0AA74F2751418FC2F5A8D3215541B81E859B4F275141CDCCCCFCD8215541EC51B83E4F275141B81E853BDB2155411F85EBC14E275141A4703D5ADD215541713D0A674F2751418FC2F598E02155419A99994952275141A4703DBAE1215541713D0A57522751418FC2F588E3215541713D0A97542751418FC2F568E6215541C3F5287C5827514148E17A74EA215541333333435E275141E17A148EE9215541713D0AF7602751418FC2F5D8EA215541713D0AE7652751418FC2F5B8E9215541713D0AE7682751418FC2F578E8215541713D0A676A2751418FC2F598E8215541713D0A776C2751418FC2F538EB215541713D0A776E2751418FC2F5B8EB215541713D0AD7712751418FC2F558EB215541713D0A57742751418FC2F5F8EB215541713D0AE7732751418FC2F518EF215541713D0A87742751418FC2F548F2215541713D0AF7772751418FC2F548F4215541713D0A777C2751418FC2F508F5215541713D0AF77E2751418FC2F538F4215541713D0A277B2751418FC2F528ED215541713D0A877D2751418FC2F528ED215541713D0A27812751418FC2F548F5215541713D0AA7812751418FC2F568F7215541713D0AE7842751418FC2F508F9215541713D0A77872751418FC2F5F8F7215541713D0AE7882751418FC2F5D8F8215541713D0A47892751418FC2F568FD215541713D0A578C2751418FC2F598012255413333334390275141B81E857B0322554148E17AD4912751419A99990904225541713D0AA7942751418FC2F51802225541295C8FA298275141C3F528ECFB2155417B14AE9796275141A4703DDAF821554114AE471195275141A4703DCAFA215541F6285C7F932751415C8FC295FC21554148E17AF49027514185EB51C8FD215541000000208B275141C3F528BCF42155410AD7A330862751418FC2F508ED2155415C8FC2D57F27514114AE47F1E221554148E17AE4832751413D0AD773DA21554185EB51588327514148E17A14D9215541666666F68127514185EB5108CF215541333333D3812751417B14AE57C6215541EC51B83E82275141CDCCCCBCBE21554185EB518883275141713D0AF7B5215541E17A143E8427514148E17A34AC215541B81E853B85275141E17A140EA821554185EB51E885275141F6285CAFA5215541C3F5285C8627514148E17AC4A32155419A999999862751419A9999F9A1215541A4703D8A86275141F6285C2FA0215541EC51B88E86275141B81E85EB9E215541CDCCCCEC86275141C3F5281C9B21554148E17A448527514148E17AB4932155419A99994983275141E17A149E8C215541D7A3700D8227514114AE4701892155418FC2F52880275141F6285C0F86215541666666067E27514152B81EE584215541D7A3707D7B275141EC51B80E842155411F85EBE178275141B81E859B83215541C3F5280C74275141B81E856B8321554185EB519872275141713D0A7783215541713D0A37712751418FC2F50884215541713D0A17712751418FC2F58885215541713D0AA7702751418FC2F57886215541713D0AA76F2751418FC2F50887215541713D0A576E2751418FC2F53887215541713D0AE76C2751418FC2F5E886215541713D0A776D2751418FC2F5188E215541713D0AF76E2751418FC2F5D88D215541713D0A776E2751418FC2F5F88E215541713D0A376C2751418FC2F5688F215541713D0A07692751418FC2F5988E215541AE47E11A6727514185EB51588D215541713D0AB7612751418FC2F5588E215541713D0A37582751418FC2F53891215541713D0A875A2751418FC2F5A896215541713D0A67572751418FC2F56897215541713D0AE7552751418FC2F51899215541713D0AD7542751418FC2F5489B215541713D0A37542751418FC2F5589C215541713D0AD7522751418FC2F5989C215541713D0A37502751418FC2F5789D215541713D0A974F2751418FC2F5389D215541713D0A174F2751418FC2F5D89A215541713D0A174E2751418FC2F57899215541713D0AB74D2751418FC2F57897215541713D0AE74D2751418FC2F5A895215541713D0A474C2751418FC2F59892215541713D0A874A2751418FC2F59893215541713D0AC7492751418FC2F55892215541713D0AF74A2751418FC2F51891215541713D0A97492751418FC2F5F88A215541666666A641275141666666E68921554152B81EF53E275141000000D089215541333333833B27514114AE47B18921554185EB5158392751410AD7A3A089215541CDCCCCBC362751413D0AD74389215541666666B632275141C3F528CC882155415C8FC2752C275141F6285CBF872155419A99992929275141C3F5280C862155411F85EB31262751417B14AE4784215541A4703D7A23275141333333B382215541B81E855B2027514148E17AC480215541C3F528EC1C275141000000A07E215541F6285C1F1B2751413D0AD7837D21554185EB51B8182751411F85EB417C215541B81E85AB14275141D7A3709D7A2155411F85EBC11227514114AE47D1792155415C8FC2250F27514185EB513878215541000000400C275141EC51B8BE762155413D0AD7C3082751418FC2F58875215541B81E85BB03275141A4703DCA732155413D0AD7F3FF265141F6285C8F72215541EC51B8BEFE2651413333330373215541CDCCCC9CFD265141D7A370FD73215541C3F528FCFC265141C3F528CC7821554152B81E95FC26514114AE47117C215541EC51B8AEFC2651413D0AD7D37D215541000000A0FB265141AE47E10A80215541666666F6FA2651413333336382215541E17A14EEFC2651411F85EBF1822155415C8FC275FD26514148E17A6480215541E17A14EEFD265141E17A142E7E215541E17A14BE002751411F85EB117F2155415C8FC2650427514152B81E3580215541D7A370BD07275141B81E853B81215541CDCCCC6C0F275141CDCCCCAC842155413D0AD7530F2751410AD7A3E086215541
+</a>
+
+<b>
+0106000000010000000103000000010000004A000000713D0A57522751418FC2F588E32155415F087B65542751411354A229E6215541C3F5287C5827514148E17A74EA215541333333435E275141E17A148EE9215541A5460A2561275141B04BD9CBE9215541D9E10C4766275141D54758A8E82155419087EFB16827514183A790D5E7215541B8E5E71A6B275141CA17F6DBE8215541F7D163626C275141178597BAEA2155415E33C68A6E275141586EC4B6EB2155410D8B8028712751419A645A6CEB21554199B97ED8712751411D305B1FEB2155416FFC81E9732751418C2E10F1E921554109D42E4A75275141EF0DB47FE9215541D0950CC4762751410F59AEBEE9215541233224BE7727514124F03FFBEA215541606CFF2D7927514100FCCE99EB215541783B6E5E7A2751418C630632EC215541BDBAC3337C2751410F0FC886EB215541386BEEAF7E27514134DD69B2EC2155415ACC67CB7F27514192FA7944EF215541109F0BA3802751410DF83446F121554109D18C1B8127514126C7A376F2215541A44BBDA0812751419508E934F3215541E1859810832751419EC45E78F421554157DA9A9985275141896230B1F4215541A61B537C86275141D8A3E893F5215541D43DFA1B88275141233ADD11F621554188D3EE9988275141EF50F726F72155410260A1BB892751414B074816F8215541382034078A27514101A9C91EF921554116DF846C8A275141A14B58F0F9215541A4D539C8892751414B954566FA215541A4D539C889275141BA21F887FB215541E695CC138A27514182E3D501FD215541D2F7E0678B2751419990E494FE215541918DD5E58B275141DEAD6A860022554138AE31578C275141562E901D01225541C404B9208D27514112254EC101225541036C68E68E2751415E77E7D302225541478A99F88E275141BC7EA5DC022255410AA84B078F275141BD6BB5E302225541C21427369127514168866215032255413F7886B893275141B4F06D9702225541AF8A7F1F95275141BD8E594301225541878A915C9527514168727EFF00225541295C8FA298275141C3F528ECFB2155414C649BE5972751419BFD26D0FA215541FD4DA8C797275141411B8CABFA215541F421BFCB96275141C49BB142FB215541648AE02F962751413A1B95B9FC215541A2AF83E791275141D27B1B5B0022554129FD007D8E275141C30C605FFD215541DE1C7D9D8B275141E8B0EB1DF8215541F6E7A3A885275141034639D4F0215541360820798027514160ACCC61EA215541DE249F187D27514167444844E92155418668DF557A2751412152B8B3E821554143F96B4679275141B21C178AE82155418B70CFC7722751414BBC4D64E8215541AEC1D4086B27514177E26CD2E521554180DECEAE672751411ED21AAFE7215541690FC51862275141C1459D14E92155419827C04D5F275141EF4A9C85E8215541E438853F5F2751417B45A081E8215541C0CE8D6F5E2751413547B557E82155411D7EF14A5C2751418ED3C8ADE721554120500DA65A2751410F56EF37E7215541D40841455A2751418A30700DE721554164FC41E058275141433ADD9EE6215541FFC6A67857275141180DD5D2E5215541D7F0DBD4562751417764EC8AE52155418CE4D65152275141335DE9D5E2215541713D0A57522751418FC2F588E3215541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>292859 - 3497072
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000004A000000E17A143EE96D51418FC2F598DCA65441F6285C0FE96D5141295C8F22DDA65441295C8F82E86D51413D0AD7F3DCA65441EC51B86EE86D514152B81EE5DCA65441F6285C5FE86D5141F6285C3FDDA65441C3F5284CE86D5141EC51B8AEDDA654419A9999D9E76D514185EB5158E0A65441713D0AA7E76D51411F85EBF1E2A654410AD7A380E76D514114AE47F1E5A6544148E17A74E76D51410AD7A3B0E6A65441713D0A77E76D5141AE47E16AE7A65441D7A3708DE76D514185EB5198EEA65441A4703D5AEC6D5141EC51B8EEEEA654418FC2F528ED6D51413D0AD7F3E7A65441D7A370BDED6D5141C3F528ECE4A6544185EB51F8EE6D5141EC51B82EE1A654418FC2F598F16D51418FC2F5A8DAA65441B81E85DBF16D51413D0AD763D7A6544166666626F16D5141666666B6D3A65441AE47E1EAEF6D5141CDCCCCBCCAA6544152B81E85EF6D51413D0AD743C8A65441A4703D2AEE6D5141AE47E1CAC4A654411F85EBE1EC6D5141F6285C7FC1A654413D0AD713ED6D5141C3F5287CBFA6544185EB5158F36D514185EB51B8C0A65441F6285CCFFA6D5141EC51B82EC2A65441F6285C5F016E51410AD7A340C4A65441B81E857B056E514148E17A24C5A6544114AE47D10F6E51411F85EBE1C7A654415C8FC235156E51411F85EB41C9A6544152B81E451C6E514185EB5118CAA654418FC2F5181F6E514152B81E65CAA65441B81E85FB216E5141666666B6CAA65441E17A142E226E5141D7A3705DCAA65441295C8F92136E51419A9999C9C3A654411F85EBF1136E5141000000F0C2A6544100000040136E514185EB51A8C2A6544152B81EB50E6E514148E17A84C0A6544152B81E35096E514148E17AF4BDA65441E17A14CE086E51417B14AED7BEA65441713D0A07086E5141D7A3708DC0A6544114AE47E1076E5141E17A14DEC0A654417B14AE37066E51417B14AE47C0A6544185EB5158036E5141295C8F92C1A65441AE47E10AFF6D5141713D0A37C0A654417B14AE87FE6D51410AD7A380BFA65441CDCCCC4CFC6D5141E17A14DEBDA6544133333353FA6D5141CDCCCCFCBBA6544148E17A74FB6D5141AE47E1FAB8A65441AE47E19AFB6D514152B81E95B8A654411F85EB01F66D514185EB5178B8A65441F6285C3FF36D51418FC2F578B8A6544114AE4781F06D51413D0AD753B8A65441F6285C9FEC6D514185EB5198B7A654413D0AD7A3E96D5141C3F5282CB7A65441000000F0E86D514185EB5148B7A6544152B81E75E86D514148E17A64B7A65441F6285C7FE76D5141333333E3B7A65441EC51B81EE76D51411F85EB51B8A65441000000C0E66D5141E17A14FEB8A6544185EB5158E66D514114AE47C1BAA65441D7A3708DE66D5141F6285CDFBBA65441295C8F82E76D5141713D0A17C3A65441EC51B80EE86D514148E17A34C8A6544185EB5138E86D51415C8FC205C9A6544133333383E96D5141AE47E12ACDA65441AE47E1CAE96D51411F85EBD1CEA6544152B81EF5E96D51413D0AD7D3D1A65441CDCCCCDCE96D514152B81E95D3A65441F6285C6FE96D5141A4703D4AD7A6544185EB51F8E86D5141333333B3D9A6544166666686E86D514166666656DCA6544114AE47B1E86D51418FC2F568DCA65441E17A143EE96D51418FC2F598DCA65441
+</a>
+
+<b>
+01060000000100000001030000000100000060000000E41C8576E76D51410DDF96F9C2A654413F250D30E76D51410EF719A9C0A65441CA6077D5E66D514199C448FEBDA6544185EB5158E66D514114AE47C1BAA65441000000C0E66D5141E17A14FEB8A65441EC51B81EE76D51411F85EB51B8A65441F6285C7FE76D5141333333E3B7A6544152B81E75E86D514148E17A64B7A654413D0AD7A3E96D5141C3F5282CB7A654417202ABCFE96D514183290451B6A65441295C8F02E96D5141A4703D1AB6A65441B81E857BE76D5141B81E858BB5A65441B07268B1E56D5141A69BC4C0B4A6544108AC1CFAE36D5141CDCCCC9CB3A654410C022B57DF6D5141378941B0AFA6544133333323DF6D5141666666D6AFA65441295C8F42DB6D514100000010B2A65441AE47E1FAD76D514148E17AB4B1A654410AD7A3C0D56D5141CDCCCCECB1A654411F85EBB1D36D5141A4703D0AB2A6544143F63821D16D51415581B50AB2A654413EA2A193D16D51415E3625EAACA65441D386FB94CD6D514136E89CD9ACA654418E6A60DFCB6D5141EA8D9275ABA65441C220604CCB6D5141C7A20410ABA654414E6210E0C96D5141AE47E192AAA65441882B9039C56D5141A2EE6C2FAAA65441E3AAECCDC26D5141FAAB553CAAA65441F853E3B5BC6D51419EEFA7AEABA654415EBA499CBC6D514133333303ADA65441F763A5DABC6D51417FC256ACAEA6544192F5D2DEB86D51415A1D1161AFA6544144321880B66D51416F8D85AEAFA65441224F46BCB46D5141B3DAF96DAFA65441A6AE8BEBB26D514145AD9C13AFA654410A66A2A6B06D5141601A2838AEA654418DC5E7D5AE6D5141DE7C5690ADA654418A8A4486AD6D51412C028576ADA65441A5F7CFAAAC6D5141F3ECCADDADA65441235AFE02AC6D514126056E9FAEA65441970372A6AB6D5141C75F0D6AAFA65441E7EFED83AB6D514158DED607B0A65441B52CA1A8AB6D51415E58B4B0B0A654413E80EFEDAB6D5141C3E6AA34B1A654416FEC1D18AD6D5141BEA514C2B1A654417B14AE47B26D51417B14AE37B4A654417B14AE47B26D5141C3F528FCB6A654411F85EBE1B16D5141AE47E10ABAA6544152B81EB5B06D5141C3F528ECBDA6544114AE4781AF6D514185EB51D8BFA6544100000080AD6D514166666606C2A654411F85EB61BC6D5141B81E850BC1A65441F6285C6FC66D5141295C8F62C0A65441295C8F42CB6D514114AE4711C0A654410AD7A350C96D51417B14AE87CAA65441333333D3C66D5141F6285C3FD3A654411F85EB31CB6D5141C3F5287CD3A65441295C8F3ACD6D514123DBF9E6D2A6544155E9F9BBD16D51417E5F9A43D0A65441A4703DEAD06D51413D0AD713D5A65441296D18CED06D514159B99989D7A654413B76DF98D26D5141B4970054D8A65441EEC41AC2D46D5141CEC6A338D7A65441E2C219D1D86D51412230B2BDD2A654415118DAD1DA6D5141CC9B0236D0A654411F85EB61DC6D5141A4703DFACDA65441538E05FBDD6D51414FD95A3CCAA6544137894180DF6D51413D0AD71BC9A6544133333313E26D5141E17A14DEC9A654418FC2F508E26D5141D7A3703DCAA65441295C8F72E06D51417B14AE27CFA65441A2B384AFDE6D51413EF60BDED1A65441C07ADEFADE6D51414C53FF0FD5A65441AE47E16AE06D5141F6285C3FD7A65441713D0AC7E16D5141EC51B85ED9A6544165F5B529E56D5141471621C0DCA654417F45F643E66D51412C39F8D9DDA65441E17A14EEE66D51413D0AD783DEA654410BEDFA3FE76D5141E55EC596DEA65441F25F961CE86D51410C80C3C9DEA65441A97B4C95E86D5141557518FEDBA65441E37273D3E86D514164B3B88DDAA6544134FD6D84E96D5141E9608393D6A65441C2035FB1E96D51413B230808D5A65441CDCCCCDCE96D514152B81E95D3A65441CB848DE0E96D51415FCEFDE8D2A6544152B81EF5E96D51413D0AD7D3D1A654410C09A4DAE96D5141251B32F1CFA65441AE47E1CAE96D51411F85EBD1CEA6544133333383E96D5141AE47E12ACDA654415894D72FE96D5141B4E68D1FCCA65441C2A25FA0E86D51414DBC7453CAA654416CE84243E86D5141AA39D928C9A654418BE0CE1AE86D5141FAE14A71C8A654410DC8DDEAE76D5141AAB284E5C6A65441E41C8576E76D51410DDF96F9C2A65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>178750 - 1489031
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000011000000A4703DEA652551415C8FC2B5062B5541666666C66125514152B81E750C2B554114AE47915C2551410AD7A3B0132B5541B81E857B572551413D0AD7C3102B5541295C8FF253255141B81E859B152B5541333333434F2551415C8FC2A51C2B5541C3F5286C4B25514100000020222B55413D0AD7134825514114AE4751262B5541B81E853B412551415C8FC2652E2B5541CDCCCC0C40255141EC51B86E302B55410000009041255141D7A370BD312B5541713D0A5745255141B81E855B342B55418FC2F5484D255141C3F5289C382B554148E17AB45F255141D7A3702D242B55415C8FC29572255141C3F5283C0F2B5541EC51B84E6C255141666666460B2B5541A4703DEA652551415C8FC2B5062B5541
+</a>
+
+<b>
+01060000000200000001030000000100000013000000571B270E69255141B941D9F3082B55417B30A8D266255141BCB1BB5B072B5541A4703DEA652551415C8FC2B5062B5541666666C66125514152B81E750C2B554114AE47915C2551410AD7A3B0132B5541B81E857B572551413D0AD7C3102B5541295C8FF253255141B81E859B152B5541333333434F2551415C8FC2A51C2B5541C3F5286C4B25514100000020222B55413D0AD7134825514114AE4751262B5541B81E853B412551415C8FC2652E2B5541CDCCCC0C40255141EC51B86E302B55410000009041255141D7A370BD312B5541A5B898C2432551413B0C4643332B5541FE74F3514E2551413D96DC1C272B5541E4CFA078562551412DAFFBBB1D2B55410CC86D935B255141B73769DC172B5541766C29A75F2551415099842B132B5541571B270E69255141B941D9F3082B55410103000000010000000400000065DE3EC54525514147B68196342B554173ED0A4E45255141A91C4955342B5541713D0A5745255141B81E855B342B554165DE3EC54525514147B68196342B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>178750 - 3376754
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000011000000A4703DEA652551415C8FC2B5062B5541666666C66125514152B81E750C2B554114AE47915C2551410AD7A3B0132B5541B81E857B572551413D0AD7C3102B5541295C8FF253255141B81E859B152B5541333333434F2551415C8FC2A51C2B5541C3F5286C4B25514100000020222B55413D0AD7134825514114AE4751262B5541B81E853B412551415C8FC2652E2B5541CDCCCC0C40255141EC51B86E302B55410000009041255141D7A370BD312B5541713D0A5745255141B81E855B342B55418FC2F5484D255141C3F5289C382B554148E17AB45F255141D7A3702D242B55415C8FC29572255141C3F5283C0F2B5541EC51B84E6C255141666666460B2B5541A4703DEA652551415C8FC2B5062B5541
+</a>
+
+<b>
+01060000000200000001030000000100000013000000571B270E69255141B941D9F3082B55417B30A8D266255141BCB1BB5B072B5541A4703DEA652551415C8FC2B5062B5541666666C66125514152B81E750C2B554114AE47915C2551410AD7A3B0132B5541B81E857B572551413D0AD7C3102B5541295C8FF253255141B81E859B152B5541333333434F2551415C8FC2A51C2B5541C3F5286C4B25514100000020222B55413D0AD7134825514114AE4751262B5541B81E853B412551415C8FC2652E2B5541CDCCCC0C40255141EC51B86E302B55410000009041255141D7A370BD312B5541A5B898C2432551413B0C4643332B5541FE74F3514E2551413D96DC1C272B5541E4CFA078562551412DAFFBBB1D2B55410CC86D935B255141B73769DC172B5541766C29A75F2551415099842B132B5541571B270E69255141B941D9F3082B55410103000000010000000400000065DE3EC54525514147B68196342B554173ED0A4E45255141A91C4955342B5541713D0A5745255141B81E855B342B554165DE3EC54525514147B68196342B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>179777 - 4168981
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000010000000CDCCCC5C302D51413D0AD713032B5541EC51B86E262D5141C3F528AC032B55411F85EB011B2D51415C8FC2A5FB2A55413D0AD783042D51411F85EBE1062B5541CDCCCC0C0F2D5141C3F5289C152B5541AE47E13A212D5141713D0A072F2B55413D0AD723232D5141E17A14FE2D2B5541F6285C7F282D51417B14AE47282B5541F6285C0F2F2D5141F6285C5F222B5541A4703D6A342D514152B81EE51E2B5541F6285C4F412D5141AE47E1BA162B55417B14AE07442D514100000050142B55411F85EB01462D51415C8FC2B5102B55419A999919482D5141295C8F320A2B55410AD7A3403D2D51411F85EB41022B5541CDCCCC5C302D51413D0AD713032B5541
+</a>
+
+<b>
+01060000000100000001030000000100000019000000433F0909472D51412BB6DC820D2B5541D722400A3D2D51413E12A0BE022B5541DA917E8D3C2D5141D087CD5F022B554159A22D6A3C2D5141E8A7A361022B5541BB6E2595342D5141A274E6C9022B5541A7B6064E332D5141F41556E8022B55414C129ED42B2D514137545D9A032B55418159938E292D51415CE984D0032B554148E17AB4252D5141E9263150042B5541B4D373B6242D51416B904FCF032B554118DC06C51C2D5141D1DD9EE2FC2A5541BA490CF21A2D5141B81E854BFB2A5541B29DEF57122D5141A4703D5AFE2A55419CE58911032D5141763390D5042B55413D0AD783042D51411F85EBE1062B5541CDCCCC0C0F2D5141C3F5289C152B5541AE47E13A212D5141713D0A072F2B55413D0AD723232D5141E17A14FE2D2B5541F6285C7F282D51417B14AE47282B5541F6285C0F2F2D5141F6285C5F222B5541A4703D6A342D514152B81EE51E2B5541F6285C4F412D5141AE47E1BA162B55417B14AE07442D514100000050142B55411F85EB01462D51415C8FC2B5102B5541433F0909472D51412BB6DC820D2B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>179777 - 4168982
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000010000000CDCCCC5C302D51413D0AD713032B5541EC51B86E262D5141C3F528AC032B55411F85EB011B2D51415C8FC2A5FB2A55413D0AD783042D51411F85EBE1062B5541CDCCCC0C0F2D5141C3F5289C152B5541AE47E13A212D5141713D0A072F2B55413D0AD723232D5141E17A14FE2D2B5541F6285C7F282D51417B14AE47282B5541F6285C0F2F2D5141F6285C5F222B5541A4703D6A342D514152B81EE51E2B5541F6285C4F412D5141AE47E1BA162B55417B14AE07442D514100000050142B55411F85EB01462D51415C8FC2B5102B55419A999919482D5141295C8F320A2B55410AD7A3403D2D51411F85EB41022B5541CDCCCC5C302D51413D0AD713032B5541
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000A7B6064E332D5141F41556E8022B5541BB6E2595342D5141A274E6C9022B554159A22D6A3C2D5141E8A7A361022B5541DA917E8D3C2D5141D087CD5F022B5541D722400A3D2D51413E12A0BE022B5541433F0909472D51412BB6DC820D2B55419A999919482D5141295C8F320A2B554166666636492D514152B81EA5052B554185EB51384B2D5141EC51B8DE012B5541AE47E18A4D2D514185EB51B8FE2A554148E17A744F2D5141AE47E13AFC2A554152B81ED54E2D5141333333C3FA2A55415C8FC2754D2D5141CDCCCCACF92A554114AE4711452D51415C8FC205F52A554148E17A942F2D51415C8FC2F5EF2A5541C3F5285C292D514148E17A04EC2A554152B81E95272D514185EB51D8EB2A55415C8FC295182D51410AD7A3B0F12A554114AE4771092D51417B14AE97F72A55415C8FC235FE2C5141C3F528FCFB2A55415C8FC2C5FD2C514152B81E75FD2A55419CE58911032D5141763390D5042B5541B29DEF57122D5141A4703D5AFE2A5541BA490CF21A2D5141B81E854BFB2A554118DC06C51C2D5141D1DD9EE2FC2A5541B4D373B6242D51416B904FCF032B554148E17AB4252D5141E9263150042B55418159938E292D51415CE984D0032B55414C129ED42B2D514137545D9A032B5541A7B6064E332D5141F41556E8022B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>217399 - 3109934
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A0000007B14AEB76FC15041713D0AD78C065541295C8F426EC150410AD7A3008D065541D7A3708D6BC15041F6285CAF8D065541E17A147E75C15041A4703DBAA50655419A9999C97BC15041333333F3B4065541C3F5289C92C1504114AE4751AD065541000000F082C150419A999969870655413D0AD72377C15041EC51B88E8A065541CDCCCCCC74C1504152B81E958B0655417B14AEB76FC15041713D0AD78C065541
+</a>
+
+<b>
+0106000000010000000103000000010000000E00000075BAFA2654C15041BFF1FD28A70655414A37953072C15041F2E52EBD9D065541D9B7943271C15041CDCD7D569B065541D7A3708D6BC15041F6285CAF8D065541D7A3702D5EC15041B81E850B910655418FC2F51858C15041B81E850B93065541EC51B81E54C150417B14AE1794065541C3F528EC4BC150411F85EB81950655410AD7A3C045C1504114AE47B1960655413D0AD7F348C150417B14AE379A0655413D0AD7E34DC15041D7A3703D9E0655418FC2F51850C15041C3F5286CA1065541295C8F8252C15041AE47E17AA406554175BAFA2654C15041BFF1FD28A7065541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>217399 - 3283083
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A0000007B14AEB76FC15041713D0AD78C065541295C8F426EC150410AD7A3008D065541D7A3708D6BC15041F6285CAF8D065541E17A147E75C15041A4703DBAA50655419A9999C97BC15041333333F3B4065541C3F5289C92C1504114AE4751AD065541000000F082C150419A999969870655413D0AD72377C15041EC51B88E8A065541CDCCCCCC74C1504152B81E958B0655417B14AEB76FC15041713D0AD78C065541
+</a>
+
+<b>
+0106000000010000000103000000010000000E00000075BAFA2654C15041BFF1FD28A70655414A37953072C15041F2E52EBD9D065541D9B7943271C15041CDCD7D569B065541D7A3708D6BC15041F6285CAF8D065541D7A3702D5EC15041B81E850B910655418FC2F51858C15041B81E850B93065541EC51B81E54C150417B14AE1794065541C3F528EC4BC150411F85EB81950655410AD7A3C045C1504114AE47B1960655413D0AD7F348C150417B14AE379A0655413D0AD7E34DC15041D7A3703D9E0655418FC2F51850C15041C3F5286CA1065541295C8F8252C15041AE47E17AA406554175BAFA2654C15041BFF1FD28A7065541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>918496 - 56969
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000030000004B00000066666626A79E50415C8FC265041F5441C3F5285CB39E504152B81E551E1F5441C3F5283CA69E5041295C8F82191F5441333333939B9E50410AD7A3A0151F5441F6285CBF8F9E50419A999949111F544166666646859E5041295C8F720D1F54418FC2F518749E5041F6285C1F091F5441D7A3702D699E50418FC2F598081F5441D7A3704D5F9E504100000020081F5441C3F528FC619E5041A4703D0A0C1F5441666666E6659E50419A9999790C1F5441295C8FC2649E5041E17A14CE111F544166666676609E5041D7A370ED131F5441AE47E1FA5F9E5041B81E854B1B1F54415C8FC2256B9E504148E17AB41B1F5441295C8F12709E50417B14AEC71A1F544185EB5148739E504114AE47511E1F54410AD7A350749E50410AD7A3F0221F5441AE47E1CA729E504148E17AC4251F5441333333636E9E504114AE47B1261F5441AE47E19A6E9E50413D0AD7D32A1F5441713D0A67759E504148E17A642A1F5441F6285CEF809E504185EB51482A1F5441EC51B82E8A9E5041713D0A272B1F544148E17A04979E50415C8FC2752C1F54413D0AD7939E9E504114AE47D12D1F544148E17AA4A89E50411F85EB112F1F5441713D0A87B09E5041EC51B8BE311F544148E17AB4B39E50418FC2F5D8321F5441AE47E12AB39E50417B14AE272F1F5441AE47E14AB79E50418FC2F5482D1F544100000080B99E50415C8FC2C52E1F54419A9999D9BB9E50418FC2F5582F1F54411F85EB61BC9E50413D0AD7B3311F5441713D0A47BF9E504114AE47112F1F5441B81E857BC19E5041295C8F722C1F5441F6285CFFC39E5041EC51B8DE281F5441EC51B82EC59E504185EB51A8261F5441AE47E11AC69E50410AD7A390231F5441C3F5284CC69E5041B81E85AB201F5441295C8FB2C59E5041A4703D0A161F5441EC51B8DEC59E504185EB51B8101F5441666666A6C69E504114AE47E10B1F5441EC51B8EEC79E50410AD7A3C0071F54417B14AEC7C89E5041713D0A07051F5441B81E850BC99E504100000070041F544185EB51E8C59E504166666626041F5441CDCCCC0CC69E5041C3F5285C021F544114AE47F1C99E504100000090021F5441EC51B86ECA9E504148E17AB4011F544114AE4771CC9E504185EB51E8FE1E54419A999959CE9E504152B81E55FD1E54415C8FC285D09E50413D0AD763FC1E5441EC51B8BED29E5041CDCCCC3CFC1E5441A4703DEAD59E5041F6285CAFFC1E5441E17A142ED99E5041333333B3FD1E54410AD7A310DE9E504185EB5138FF1E5441EC51B80EE19E50410AD7A3A0FF1E544148E17AA4E69E5041A4703DDAFF1E54413D0AD7A3E99E5041713D0A97FF1E544152B81E95EB9E5041713D0AF7FE1E5441C3F5284CEE9E50419A999959FC1E544133333363F29E504152B81E95F51E54415C8FC275F29E50419A999929F41E54417B14AE87F19E5041713D0A47F21E54411F85EB41EF9E504152B81E65F11E5441C3F5286CE49E5041295C8F22EC1E5441713D0A17D39E504133333353E81E5441EC51B85EC19E5041A4703D9AE41E5441EC51B87EBB9E5041B81E851BE41E544100000040989E50410AD7A300E41E54411F85EB719A9E50415C8FC2C5E81E544114AE47F19C9E5041295C8F32EE1E5441C3F528AC9D9E504185EB51C8EF1E544166666626A79E50415C8FC265041F54410B0000007B14AE778E9E5041CDCCCCBC161F54415C8FC245949E504166666616191F5441295C8FC2959E504114AE47A11B1F544152B81EE5949E5041295C8FD21B1F54417B14AEE78F9E504185EB51181A1F5441AE47E1FA8C9E50418FC2F5D8181F54413D0AD7C3899E50415C8FC2A5171F544185EB5168869E5041B81E85EB151F54410AD7A380869E5041CDCCCC6C131F5441C3F528CC879E5041C3F5289C121F54417B14AE778E9E5041CDCCCCBC161F54411F000000D7A3706DA99E5041A4703DEA211F544152B81EA5A69E5041000000E0221F54411F85EB01A49E5041C3F5285C241F54410AD7A320A19E50411F85EBE1231F5441C3F5284C9E9E5041000000E0221F5441000000309C9E5041EC51B80E221F5441CDCCCC8C999E5041C3F528EC221F54418FC2F588979E504185EB5108251F5441F6285C8F949E5041D7A3707D221F54413D0AD733919E504114AE47D1211F5441666666468E9E5041F6285C6F211F544114AE47B18C9E50418FC2F5A81F1F5441000000908E9E5041B81E855B1D1F5441E17A145E949E5041E17A141E1D1F54419A999959989E5041666666D61D1F5441F6285C8FA19E504148E17A54201F54413D0AD7F3A29E50418FC2F5B8211F54419A9999F9A59E5041D7A370CD1F1F544152B81E55A99E5041A4703DDA1F1F54413D0AD713B49E504152B81ED5231F544148E17A84B59E5041AE47E16A251F5441AE47E19AB49E50418FC2F5382B1F544133333393B29E504114AE47F12B1F54410AD7A370B19E5041B81E85FB2A1F5441D7A370EDB29E5041CDCCCCDC271F54413D0AD7A3B29E5041B81E853B261F5441AE47E17AB09E50419A999939251F5441C3F5280CB09E5041333333E3241F5441E17A14FEAE9E5041F6285C7F231F54418FC2F5B8AA9E504100000040221F5441D7A3706DA99E5041A4703DEA211F5441
+</a>
+
+<b>
+010600000001000000010300000001000000160000002E57135BE59E5041EA7A8B96EC1E5441DF74A27AE49E5041913E9629EC1E5441A0AA7C78D69E5041A0E87011E91E5441871ECCB1CA9E5041B58CB38FE61E54415B4A4E07C09E504125374E7DE41E5441CBCBCECEAF9E5041DC4D9B12E41E544109705725AF9E50410C0F1A12E41E5441BC94008FAD9E5041D528E410E41E544146BA38EDA99E5041410D1F0EE41E5441FEE7D7EAA39E504144CA8909E41E544100000040989E50410AD7A300E41E544164360CAB999E504194386715E71E5441B4B025D59B9E504178693D25E81E54418FF9827DA29E50416B708FC7E81E544144928F70B09E504178693D25E81E544128B7AB7FBF9E5041E573B818E91E5441DD4FB872CD9E5041B488AEFFEA1E544179F668AADC9E50419C3006A5EE1E5441DADCA204E69E5041FC41D33AF01E54416C0DE174EA9E5041B4C36763F01E54414AFCF2FBEA9E5041E86A0952EF1E54412E57135BE59E5041EA7A8B96EC1E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>918496 - 141838
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000030000004B00000066666626A79E50415C8FC265041F5441C3F5285CB39E504152B81E551E1F5441C3F5283CA69E5041295C8F82191F5441333333939B9E50410AD7A3A0151F5441F6285CBF8F9E50419A999949111F544166666646859E5041295C8F720D1F54418FC2F518749E5041F6285C1F091F5441D7A3702D699E50418FC2F598081F5441D7A3704D5F9E504100000020081F5441C3F528FC619E5041A4703D0A0C1F5441666666E6659E50419A9999790C1F5441295C8FC2649E5041E17A14CE111F544166666676609E5041D7A370ED131F5441AE47E1FA5F9E5041B81E854B1B1F54415C8FC2256B9E504148E17AB41B1F5441295C8F12709E50417B14AEC71A1F544185EB5148739E504114AE47511E1F54410AD7A350749E50410AD7A3F0221F5441AE47E1CA729E504148E17AC4251F5441333333636E9E504114AE47B1261F5441AE47E19A6E9E50413D0AD7D32A1F5441713D0A67759E504148E17A642A1F5441F6285CEF809E504185EB51482A1F5441EC51B82E8A9E5041713D0A272B1F544148E17A04979E50415C8FC2752C1F54413D0AD7939E9E504114AE47D12D1F544148E17AA4A89E50411F85EB112F1F5441713D0A87B09E5041EC51B8BE311F544148E17AB4B39E50418FC2F5D8321F5441AE47E12AB39E50417B14AE272F1F5441AE47E14AB79E50418FC2F5482D1F544100000080B99E50415C8FC2C52E1F54419A9999D9BB9E50418FC2F5582F1F54411F85EB61BC9E50413D0AD7B3311F5441713D0A47BF9E504114AE47112F1F5441B81E857BC19E5041295C8F722C1F5441F6285CFFC39E5041EC51B8DE281F5441EC51B82EC59E504185EB51A8261F5441AE47E11AC69E50410AD7A390231F5441C3F5284CC69E5041B81E85AB201F5441295C8FB2C59E5041A4703D0A161F5441EC51B8DEC59E504185EB51B8101F5441666666A6C69E504114AE47E10B1F5441EC51B8EEC79E50410AD7A3C0071F54417B14AEC7C89E5041713D0A07051F5441B81E850BC99E504100000070041F544185EB51E8C59E504166666626041F5441CDCCCC0CC69E5041C3F5285C021F544114AE47F1C99E504100000090021F5441EC51B86ECA9E504148E17AB4011F544114AE4771CC9E504185EB51E8FE1E54419A999959CE9E504152B81E55FD1E54415C8FC285D09E50413D0AD763FC1E5441EC51B8BED29E5041CDCCCC3CFC1E5441A4703DEAD59E5041F6285CAFFC1E5441E17A142ED99E5041333333B3FD1E54410AD7A310DE9E504185EB5138FF1E5441EC51B80EE19E50410AD7A3A0FF1E544148E17AA4E69E5041A4703DDAFF1E54413D0AD7A3E99E5041713D0A97FF1E544152B81E95EB9E5041713D0AF7FE1E5441C3F5284CEE9E50419A999959FC1E544133333363F29E504152B81E95F51E54415C8FC275F29E50419A999929F41E54417B14AE87F19E5041713D0A47F21E54411F85EB41EF9E504152B81E65F11E5441C3F5286CE49E5041295C8F22EC1E5441713D0A17D39E504133333353E81E5441EC51B85EC19E5041A4703D9AE41E5441EC51B87EBB9E5041B81E851BE41E544100000040989E50410AD7A300E41E54411F85EB719A9E50415C8FC2C5E81E544114AE47F19C9E5041295C8F32EE1E5441C3F528AC9D9E504185EB51C8EF1E544166666626A79E50415C8FC265041F54410B0000007B14AE778E9E5041CDCCCCBC161F54415C8FC245949E504166666616191F5441295C8FC2959E504114AE47A11B1F544152B81EE5949E5041295C8FD21B1F54417B14AEE78F9E504185EB51181A1F5441AE47E1FA8C9E50418FC2F5D8181F54413D0AD7C3899E50415C8FC2A5171F544185EB5168869E5041B81E85EB151F54410AD7A380869E5041CDCCCC6C131F5441C3F528CC879E5041C3F5289C121F54417B14AE778E9E5041CDCCCCBC161F54411F000000D7A3706DA99E5041A4703DEA211F544152B81EA5A69E5041000000E0221F54411F85EB01A49E5041C3F5285C241F54410AD7A320A19E50411F85EBE1231F5441C3F5284C9E9E5041000000E0221F5441000000309C9E5041EC51B80E221F5441CDCCCC8C999E5041C3F528EC221F54418FC2F588979E504185EB5108251F5441F6285C8F949E5041D7A3707D221F54413D0AD733919E504114AE47D1211F5441666666468E9E5041F6285C6F211F544114AE47B18C9E50418FC2F5A81F1F5441000000908E9E5041B81E855B1D1F5441E17A145E949E5041E17A141E1D1F54419A999959989E5041666666D61D1F5441F6285C8FA19E504148E17A54201F54413D0AD7F3A29E50418FC2F5B8211F54419A9999F9A59E5041D7A370CD1F1F544152B81E55A99E5041A4703DDA1F1F54413D0AD713B49E504152B81ED5231F544148E17A84B59E5041AE47E16A251F5441AE47E19AB49E50418FC2F5382B1F544133333393B29E504114AE47F12B1F54410AD7A370B19E5041B81E85FB2A1F5441D7A370EDB29E5041CDCCCCDC271F54413D0AD7A3B29E5041B81E853B261F5441AE47E17AB09E50419A999939251F5441C3F5280CB09E5041333333E3241F5441E17A14FEAE9E5041F6285C7F231F54418FC2F5B8AA9E504100000040221F5441D7A3706DA99E5041A4703DEA211F5441
+</a>
+
+<b>
+010600000001000000010300000001000000190000004AFCF2FBEA9E5041E86A0952EF1E5441A7F902EAE89E50417F74C550EE1E544124752B24E79E5041EC907274ED1E54419028385BE69E504136B5E412ED1E5441A7FF3243E59E5041DC28F48AEC1E5441DF74A27AE49E5041913E9629EC1E5441A0AA7C78D69E5041A0E87011E91E5441871ECCB1CA9E5041B58CB38FE61E54415B4A4E07C09E504125374E7DE41E5441D5CECECEAF9E5041DE4D9B12E41E54413C4FA141AD9E50419726A910E41E5441ACEBCAE4AC9E5041E6586210E41E544146BA38EDA99E5041410D1F0EE41E5441FEE7D7EAA39E504144CA8909E41E544100000040989E50410AD7A300E41E544164360CAB999E504194386715E71E5441B4B025D59B9E504178693D25E81E54418FF9827DA29E50416B708FC7E81E544144928F70B09E504178693D25E81E544128B7AB7FBF9E5041E573B818E91E5441DD4FB872CD9E5041B488AEFFEA1E544179F668AADC9E50419C3006A5EE1E5441DADCA204E69E5041FC41D33AF01E54416C0DE174EA9E5041B4C36763F01E54414AFCF2FBEA9E5041E86A0952EF1E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>918496 - 351924
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000030000004B00000066666626A79E50415C8FC265041F5441C3F5285CB39E504152B81E551E1F5441C3F5283CA69E5041295C8F82191F5441333333939B9E50410AD7A3A0151F5441F6285CBF8F9E50419A999949111F544166666646859E5041295C8F720D1F54418FC2F518749E5041F6285C1F091F5441D7A3702D699E50418FC2F598081F5441D7A3704D5F9E504100000020081F5441C3F528FC619E5041A4703D0A0C1F5441666666E6659E50419A9999790C1F5441295C8FC2649E5041E17A14CE111F544166666676609E5041D7A370ED131F5441AE47E1FA5F9E5041B81E854B1B1F54415C8FC2256B9E504148E17AB41B1F5441295C8F12709E50417B14AEC71A1F544185EB5148739E504114AE47511E1F54410AD7A350749E50410AD7A3F0221F5441AE47E1CA729E504148E17AC4251F5441333333636E9E504114AE47B1261F5441AE47E19A6E9E50413D0AD7D32A1F5441713D0A67759E504148E17A642A1F5441F6285CEF809E504185EB51482A1F5441EC51B82E8A9E5041713D0A272B1F544148E17A04979E50415C8FC2752C1F54413D0AD7939E9E504114AE47D12D1F544148E17AA4A89E50411F85EB112F1F5441713D0A87B09E5041EC51B8BE311F544148E17AB4B39E50418FC2F5D8321F5441AE47E12AB39E50417B14AE272F1F5441AE47E14AB79E50418FC2F5482D1F544100000080B99E50415C8FC2C52E1F54419A9999D9BB9E50418FC2F5582F1F54411F85EB61BC9E50413D0AD7B3311F5441713D0A47BF9E504114AE47112F1F5441B81E857BC19E5041295C8F722C1F5441F6285CFFC39E5041EC51B8DE281F5441EC51B82EC59E504185EB51A8261F5441AE47E11AC69E50410AD7A390231F5441C3F5284CC69E5041B81E85AB201F5441295C8FB2C59E5041A4703D0A161F5441EC51B8DEC59E504185EB51B8101F5441666666A6C69E504114AE47E10B1F5441EC51B8EEC79E50410AD7A3C0071F54417B14AEC7C89E5041713D0A07051F5441B81E850BC99E504100000070041F544185EB51E8C59E504166666626041F5441CDCCCC0CC69E5041C3F5285C021F544114AE47F1C99E504100000090021F5441EC51B86ECA9E504148E17AB4011F544114AE4771CC9E504185EB51E8FE1E54419A999959CE9E504152B81E55FD1E54415C8FC285D09E50413D0AD763FC1E5441EC51B8BED29E5041CDCCCC3CFC1E5441A4703DEAD59E5041F6285CAFFC1E5441E17A142ED99E5041333333B3FD1E54410AD7A310DE9E504185EB5138FF1E5441EC51B80EE19E50410AD7A3A0FF1E544148E17AA4E69E5041A4703DDAFF1E54413D0AD7A3E99E5041713D0A97FF1E544152B81E95EB9E5041713D0AF7FE1E5441C3F5284CEE9E50419A999959FC1E544133333363F29E504152B81E95F51E54415C8FC275F29E50419A999929F41E54417B14AE87F19E5041713D0A47F21E54411F85EB41EF9E504152B81E65F11E5441C3F5286CE49E5041295C8F22EC1E5441713D0A17D39E504133333353E81E5441EC51B85EC19E5041A4703D9AE41E5441EC51B87EBB9E5041B81E851BE41E544100000040989E50410AD7A300E41E54411F85EB719A9E50415C8FC2C5E81E544114AE47F19C9E5041295C8F32EE1E5441C3F528AC9D9E504185EB51C8EF1E544166666626A79E50415C8FC265041F54410B0000007B14AE778E9E5041CDCCCCBC161F54415C8FC245949E504166666616191F5441295C8FC2959E504114AE47A11B1F544152B81EE5949E5041295C8FD21B1F54417B14AEE78F9E504185EB51181A1F5441AE47E1FA8C9E50418FC2F5D8181F54413D0AD7C3899E50415C8FC2A5171F544185EB5168869E5041B81E85EB151F54410AD7A380869E5041CDCCCC6C131F5441C3F528CC879E5041C3F5289C121F54417B14AE778E9E5041CDCCCCBC161F54411F000000D7A3706DA99E5041A4703DEA211F544152B81EA5A69E5041000000E0221F54411F85EB01A49E5041C3F5285C241F54410AD7A320A19E50411F85EBE1231F5441C3F5284C9E9E5041000000E0221F5441000000309C9E5041EC51B80E221F5441CDCCCC8C999E5041C3F528EC221F54418FC2F588979E504185EB5108251F5441F6285C8F949E5041D7A3707D221F54413D0AD733919E504114AE47D1211F5441666666468E9E5041F6285C6F211F544114AE47B18C9E50418FC2F5A81F1F5441000000908E9E5041B81E855B1D1F5441E17A145E949E5041E17A141E1D1F54419A999959989E5041666666D61D1F5441F6285C8FA19E504148E17A54201F54413D0AD7F3A29E50418FC2F5B8211F54419A9999F9A59E5041D7A370CD1F1F544152B81E55A99E5041A4703DDA1F1F54413D0AD713B49E504152B81ED5231F544148E17A84B59E5041AE47E16A251F5441AE47E19AB49E50418FC2F5382B1F544133333393B29E504114AE47F12B1F54410AD7A370B19E5041B81E85FB2A1F5441D7A370EDB29E5041CDCCCCDC271F54413D0AD7A3B29E5041B81E853B261F5441AE47E17AB09E50419A999939251F5441C3F5280CB09E5041333333E3241F5441E17A14FEAE9E5041F6285C7F231F54418FC2F5B8AA9E504100000040221F5441D7A3706DA99E5041A4703DEA211F5441
+</a>
+
+<b>
+010600000001000000010300000001000000190000004AFCF2FBEA9E5041E86A0952EF1E5441A7F902EAE89E50417F74C550EE1E544124752B24E79E5041EC907274ED1E54419028385BE69E504136B5E412ED1E5441A7FF3243E59E5041DC28F48AEC1E5441DF74A27AE49E5041913E9629EC1E5441A0AA7C78D69E5041A0E87011E91E5441871ECCB1CA9E5041B58CB38FE61E54415B4A4E07C09E504125374E7DE41E5441D5CECECEAF9E5041DE4D9B12E41E54413C4FA141AD9E50419726A910E41E5441ACEBCAE4AC9E5041E6586210E41E544146BA38EDA99E5041410D1F0EE41E5441FEE7D7EAA39E504144CA8909E41E544100000040989E50410AD7A300E41E544164360CAB999E504194386715E71E5441B4B025D59B9E504178693D25E81E54418FF9827DA29E50416B708FC7E81E544144928F70B09E504178693D25E81E544128B7AB7FBF9E5041E573B818E91E5441DD4FB872CD9E5041B488AEFFEA1E544179F668AADC9E50419C3006A5EE1E5441DADCA204E69E5041FC41D33AF01E54416C0DE174EA9E5041B4C36763F01E54414AFCF2FBEA9E5041E86A0952EF1E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>967876 - 87036
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000C000000EC51B89E68B950417B14AE872AF75441D7A3709D73B950417B14AE072EF75441333333B374B9504185EB51582DF75441713D0A0776B9504152B81E6523F75441CDCCCCFC76B95041295C8FC223F75441EC51B80E7CB95041CDCCCCBCFDF65441713D0A8774B95041333333C3FDF65441B81E859B67B950410AD7A3D0FDF65441D7A370DD63B950413D0AD7D3FDF65441D7A3704D5DB950415C8FC2F527F754419A9999E960B950417B14AEC728F75441EC51B89E68B950417B14AE872AF75441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000A23EE6497AB950414B34BB000BF754416BA4780E7CB95041095AAABEFDF6544103A0C56478B9504159FEE9BFFDF65441713D0A8774B95041333333C3FDF65441B81E859B67B950410AD7A3D0FDF65441445D34C865B950413D6A33D2FDF6544176B225E163B950417B3C06D5FDF65441F19537605DB95041417106FA27F754419A9999E960B950417B14AEC728F75441EC51B89E68B950417B14AE872AF75441F43B382669B95041A929D0B22AF75441A49011EE71B95041EAF05C7E2DF75441062A51A373B950411938F8032EF75441EB33ACBA74B95041D5674F202DF75441A8D195F174B950410C78B9842BF75441D541222A75B95041C956E0DC29F7544173A3438675B950417D05552A27F754414DCD200576B950417633737323F75441713D0A0776B9504152B81E6523F75441C651D8F376B9504162BD27BF23F75441ECDF370679B95041AE1E2E7C14F75441A23EE6497AB950414B34BB000BF75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>967876 - 265500
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000C000000EC51B89E68B950417B14AE872AF75441D7A3709D73B950417B14AE072EF75441333333B374B9504185EB51582DF75441713D0A0776B9504152B81E6523F75441CDCCCCFC76B95041295C8FC223F75441EC51B80E7CB95041CDCCCCBCFDF65441713D0A8774B95041333333C3FDF65441B81E859B67B950410AD7A3D0FDF65441D7A370DD63B950413D0AD7D3FDF65441D7A3704D5DB950415C8FC2F527F754419A9999E960B950417B14AEC728F75441EC51B89E68B950417B14AE872AF75441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000A23EE6497AB950414B34BB000BF754416BA4780E7CB95041095AAABEFDF6544103A0C56478B9504159FEE9BFFDF65441713D0A8774B95041333333C3FDF65441B81E859B67B950410AD7A3D0FDF65441445D34C865B950413D6A33D2FDF6544176B225E163B950417B3C06D5FDF65441F19537605DB95041417106FA27F754419A9999E960B950417B14AEC728F75441EC51B89E68B950417B14AE872AF75441F43B382669B95041A929D0B22AF75441A49011EE71B95041EAF05C7E2DF75441062A51A373B950411938F8032EF75441EB33ACBA74B95041D5674F202DF75441A8D195F174B950410C78B9842BF75441D541222A75B95041C956E0DC29F7544173A3438675B950417D05552A27F754414DCD200576B950417633737323F75441713D0A0776B9504152B81E6523F75441C651D8F376B9504162BD27BF23F75441ECDF370679B95041AE1E2E7C14F75441A23EE6497AB950414B34BB000BF75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>218592 - 1632728
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C0000005C8FC29576B950415C8FC2C5CD4E554148E17AB478B950417B14AEB7CD4E55415C8FC25584B95041B81E856BCD4E55416666662691B950417B14AE17CD4E55417B14AEA78AB95041F6285C4FB14E5541E17A146E88B9504100000040B14E554148E17AA480B950418FC2F508B14E55416666665675B950419A9999B9B04E55419A99994971B95041D7A3705DBF4E554114AE47016FB95041E17A149EC74E5541C3F5283C6DB95041295C8F02CE4E55415C8FC29576B950415C8FC2C5CD4E5541
+</a>
+
+<b>
+010600000001000000010300000001000000080000000D16E4CA88B950415FB58042B14E5541606B64D588B950415AB56755B14E554159C7D9C288B95041D2F23051B54E5541D341FBA184B95041B2ABFD5CCD4E55411544E59084B95041433C026ACD4E55416666662691B950417B14AE17CD4E55417B14AEA78AB95041F6285C4FB14E55410D16E4CA88B950415FB58042B14E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>218592 - 5275187
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C0000005C8FC29576B950415C8FC2C5CD4E554148E17AB478B950417B14AEB7CD4E55415C8FC25584B95041B81E856BCD4E55416666662691B950417B14AE17CD4E55417B14AEA78AB95041F6285C4FB14E5541E17A146E88B9504100000040B14E554148E17AA480B950418FC2F508B14E55416666665675B950419A9999B9B04E55419A99994971B95041D7A3705DBF4E554114AE47016FB95041E17A149EC74E5541C3F5283C6DB95041295C8F02CE4E55415C8FC29576B950415C8FC2C5CD4E5541
+</a>
+
+<b>
+010600000001000000010300000001000000080000000D16E4CA88B950415FB58042B14E5541606B64D588B950415AB56755B14E554159C7D9C288B95041D2F23051B54E5541D341FBA184B95041B2ABFD5CCD4E55411544E59084B95041433C026ACD4E55416666662691B950417B14AE17CD4E55417B14AEA78AB95041F6285C4FB14E55410D16E4CA88B950415FB58042B14E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>218780 - 1631916
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000009000000C3F528ECD9B8504185EB51F8834D55419A999969E1B85041AE47E1EA734D55411F85EB61ECB85041295C8F525F4D5541295C8FC2E5B850419A999959644D55418FC2F518E2B850410AD7A330674D5541333333D3DFB85041CDCCCC1C694D554166666656D8B85041666666767B4D55413D0AD793D5B850419A999939824D5541C3F528ECD9B8504185EB51F8834D5541
+</a>
+
+<b>
+0106000000010000000103000000010000001D0000001F85EBC1B3B85041713D0A97994D55411F85EB71B2B85041000000409A4D554133333373ABB8504100000010B94D5541333333F3A8B85041A4703D4AC94D5541A4703DDAA9B85041C3F5288CCA4D554148E17AE4B2B85041C3F5286CCC4D5541000000A0BAB85041333333D3C64D5541333333E3C6B85041F6285CEFBD4D5541713D0A37D0B85041E17A144EBC4D5541295C8FA2D1B85041CDCCCC2CBB4D5541D7A3701DDBB85041295C8FB2A24D5541F6285C7FE4B85041666666768A4D5541666666F6E3B8504148E17A14894D554152BBD4C7D9B8504113C6C2EC844D5541B53CBB3FDAB850411103FAE8834D5541B3D4AD27DAB85041713FE115844D554181F67576DEB850412E99493D7A4D55412230F339E6B85041CC6346E16A4D5541AC42BAA3ECB850418A70EAE35E4D5541333333D3DFB85041CDCCCC1C694D55411F85EB21DCB850411F85EB31674D55417B14AE37D9B85041E17A14AE654D5541F6285CEFD6B85041EC51B87E644D554133333323D4B85041AE47E10A634D554148E17AA4CCB85041295C8F12764D5541295C8F22C5B850413D0AD723894D554114AE47A1BDB850413D0AD7339C4D5541F6285C3FBDB850411F85EB219D4D55411F85EBC1B3B85041713D0A97994D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>218780 - 5274395
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000009000000C3F528ECD9B8504185EB51F8834D55419A999969E1B85041AE47E1EA734D55411F85EB61ECB85041295C8F525F4D5541295C8FC2E5B850419A999959644D55418FC2F518E2B850410AD7A330674D5541333333D3DFB85041CDCCCC1C694D554166666656D8B85041666666767B4D55413D0AD793D5B850419A999939824D5541C3F528ECD9B8504185EB51F8834D5541
+</a>
+
+<b>
+0106000000010000000103000000010000001D0000001F85EBC1B3B85041713D0A97994D55411F85EB71B2B85041000000409A4D554133333373ABB8504100000010B94D5541333333F3A8B85041A4703D4AC94D5541A4703DDAA9B85041C3F5288CCA4D554148E17AE4B2B85041C3F5286CCC4D5541000000A0BAB85041333333D3C64D5541333333E3C6B85041F6285CEFBD4D5541713D0A37D0B85041E17A144EBC4D5541295C8FA2D1B85041CDCCCC2CBB4D5541D7A3701DDBB85041295C8FB2A24D5541F6285C7FE4B85041666666768A4D5541666666F6E3B8504148E17A14894D554152BBD4C7D9B8504113C6C2EC844D5541B53CBB3FDAB850411103FAE8834D5541B3D4AD27DAB85041713FE115844D554181F67576DEB850412E99493D7A4D55412230F339E6B85041CC6346E16A4D5541AC42BAA3ECB850418A70EAE35E4D5541333333D3DFB85041CDCCCC1C694D55411F85EB21DCB850411F85EB31674D55417B14AE37D9B85041E17A14AE654D5541F6285CEFD6B85041EC51B87E644D554133333323D4B85041AE47E10A634D554148E17AA4CCB85041295C8F12764D5541295C8F22C5B850413D0AD723894D554114AE47A1BDB850413D0AD7339C4D5541F6285C3FBDB850411F85EB219D4D55411F85EBC1B3B85041713D0A97994D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>219464 - 200565
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000090000001F85EB819EBC504148E17A14AD4D5541E17A149EA2BC5041D7A370ED9D4D554114AE47C1A7BC5041000000208B4D554152B81E05A7BC5041713D0A278A4D55413D0AD773A5BC504148E17A248A4D554100000040A0BC5041000000809D4D55418FC2F5C89BBC50417B14AE37AE4D5541E17A14EE9CBC504100000040AE4D55411F85EB819EBC504148E17A14AD4D5541
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000005EADF1DB9BBC5041F95531DCA54D5541F2E5CDCC99BC504136EFF428AE4D55415BDDF5C89BBC504125B0AD37AE4D55412CC4943F9DBC504136A00DBDA84D554100EDFF3FA0BC50410F38FF7F9D4D55411D866939A1BC5041A539FCDF994D55418ACAD673A5BC50414DCE7B248A4D554110F015B9A3BC5041A936C5218A4D5541241DF768A3BC504133B047218A4D554169A7384DA0BC50411B766018954D554185EB51089EBC50419A9999199D4D55415EADF1DB9BBC5041F95531DCA54D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>184518 - 243456
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000019000000EC51B80E9E17514148E17AA4933255410AD7A3D099175141C3F5286C96325541AE47E18A951751410AD7A300993255418FC2F588921751413D0AD7D39A3255411F85EBB19A17514166666646A6325541CDCCCC1CA01751418FC2F528A33255415C8FC2C5A5175141EC51B89EAA325541CDCCCC7CA7175141EC51B8FEAB3255417B14AEA7AA175141F6285CDFA9325541D7A3709DB3175141F6285CAFA332554152B81EB5B717514133333313A1325541C3F5286CBC175141D7A3703D9E325541B81E85CBBC17514185EB51C896325541EC51B8EEBD1751410000000093325541295C8FE2BF1751413D0AD71390325541333333A3CA1751413D0AD7B3823255417B14AE07CC175141713D0A778032554148E17AD4CC1751411F85EB417D32554148E17A34CC175141000000F07932554152B81E05CB175141713D0AA775325541333333A3C2175141C3F5285C7B325541295C8F12BC175141666666C67F3255417B14AEC7B1175141D7A3706D863255411F85EB51A817514148E17AB48C325541EC51B80E9E17514148E17AA493325541
+</a>
+
+<b>
+0106000000010000000103000000010000006A0000001EF3A4479F175141469EB3DC84325541333333039F1751413D0AD7E384325541D7A3706D9E175141E17A14DE8432554114AE47819D17514152B81E05853255415C8FC2C59B1751413333336385325541295C8FD299175141333333E385325541856716A197175141E7C81FC5863255413333332397175141B81E85FB863255413D0AD7D395175141EC51B87E87325541B81E852B951751413D0AD7D387325541F6285CBF9317514152B81E8588325541C3F5284C911751415C8FC2758A3255410AD7A3B08F1751410AD7A3F08B3255417B14AEF78E175141A4703D7A8C325541B38D84048E1751417BE4EDFE8C32554185EB51F88C17514114AE47918D32554185EB51C88B17514114AE47718E325541333333938A17514185EB51A88F325541AE47E1CA8A175141666666F68F3255411559DFC58B17514171B79D569132554176AAAC9B8C17514157A0A482923255412C2F2C0F8E175141C6C6F68B943255411A921DAF8F1751413C6AA7D3963255418FC2F588921751413D0AD7D39A325541AE47E18A951751410AD7A30099325541DCE94B3999175141FDF08CC7963255412B5526109B1751419027CB9A95325541FDD304A49B1751416316E639953255413747637F9C1751411BEA26AA94325541324971729E175141B72C116193325541FB8543419F1751419D4241D5923255417AAA314AA01751415029292292325541D469D58CA31751411CB9F0ED8F3255411F85EB51A817514148E17AB48C3255417B14AEC7B1175141D7A3706D86325541295C8F12BC175141666666C67F325541AA477973C3175141CE9859CE7A32554152B81E05CB175141713D0AA775325541C3F5284CCA175141C3F5280C7332554100000030CA1751410000007072325541B81E851BC917514100000000723255411F85EBE1C41751411F85EB91703255411F85EBE1C3175141F6285C5F703255417B14AE37C3175141713D0A577032554133333393C21751411F85EB3170325541B81E85ABC117514185EB5128703255418FC2F548C1175141AE47E11A70325541000000B0C0175141C3F5280C70325541A4703D0AC01751419A9999E96F325541B81E85BBBF175141E17A14DE6F325541A4703D3ABF1751415C8FC2856F3255410AD7A3B0BE17514114AE47616F325541B965379EBC1751419137C15B6F325541713D0A17BB1751417B14AE576F32554114AE47D1BA17514152B81EA56F32554185EB5178BA1751418FC2F5D86F325541666666D6B91751417B14AE1770325541295C8F32B91751417B14AE2770325541DFE305C6B817514181C3265070325541D7A3702DB81751411F85EBA170325541713D0A77B717514148E17A2471325541EC51B8EEB617514148E17A847132554152B81E15B61751411F85EB0172325541C3F5286CB51751411F85EB417232554166666646B41751410AD7A3B072325541B81E85BBB217514185EB51387332554133333303B217514185EB519873325541CDCCCC7CB1175141A4703DDA733255413D0AD773B0175141AE47E11A7432554100000080AF175141C3F5286C74325541D7A3709DAE1751413D0AD7B374325541AAD97416AE1751418154E8B87432554114AE4771AD175141AE47E1DA74325541CDCCCC9CAC1751410AD7A340753255410AD7A3E0AA1751415C8FC265763255417B14AED7A91751413D0AD7637732554133333333A91751418FC2F5E877325541F6285CAFA81751418FC2F53878325541D7A3705DA8175141B81E858B78325541C3F5282CA81751419A9999E978325541AE47E1EAA7175141713D0A47793255417B14AE87A7175141333333A379325541713D0A17A7175141CDCCCC0C7A32554148E17AE4A6175141333333537A325541E17A148EA617514152B81E957A325541666666C6A51751410AD7A3007B325541CDCCCC8CA517514148E17A347B325541713D0A27A5175141666666B67B325541940FC000A5175141DB4517DA7B3255415C8FC245A41751419A9999897C32554148E17A04A41751417B14AE077D325541295C8F72A3175141F6285CCF7D3255411F85EB51A317514114AE47A17E3255417B14AE37A3175141D7A3701D7F32554114AE47F1A21751413D0AD7D37F325541295C8FC2A217514148E17A7480325541F27DAE9BA21751410C3FD345813255418FC2F598A217514148E17A548132554152B81E65A2175141CDCCCCFC81325541333333F3A1175141D7A3700D83325541D7A370DDA0175141A4703D3A8432554114AE4771A017514152B81E758432554134ED76E19F175141E8831E9F843255418DD1A9DF9F175141121FD79F84325541B81E856B9F1751418FC2F5D8843255411EF3A4479F175141469EB3DC84325541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>184518 - 318335
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000019000000EC51B80E9E17514148E17AA4933255410AD7A3D099175141C3F5286C96325541AE47E18A951751410AD7A300993255418FC2F588921751413D0AD7D39A3255411F85EBB19A17514166666646A6325541CDCCCC1CA01751418FC2F528A33255415C8FC2C5A5175141EC51B89EAA325541CDCCCC7CA7175141EC51B8FEAB3255417B14AEA7AA175141F6285CDFA9325541D7A3709DB3175141F6285CAFA332554152B81EB5B717514133333313A1325541C3F5286CBC175141D7A3703D9E325541B81E85CBBC17514185EB51C896325541EC51B8EEBD1751410000000093325541295C8FE2BF1751413D0AD71390325541333333A3CA1751413D0AD7B3823255417B14AE07CC175141713D0A778032554148E17AD4CC1751411F85EB417D32554148E17A34CC175141000000F07932554152B81E05CB175141713D0AA775325541333333A3C2175141C3F5285C7B325541295C8F12BC175141666666C67F3255417B14AEC7B1175141D7A3706D863255411F85EB51A817514148E17AB48C325541EC51B80E9E17514148E17AA493325541
+</a>
+
+<b>
+0106000000010000000103000000010000006A0000001EF3A4479F175141469EB3DC84325541333333039F1751413D0AD7E384325541D7A3706D9E175141E17A14DE8432554114AE47819D17514152B81E05853255415C8FC2C59B1751413333336385325541295C8FD299175141333333E385325541856716A197175141E7C81FC5863255413333332397175141B81E85FB863255413D0AD7D395175141EC51B87E87325541B81E852B951751413D0AD7D387325541F6285CBF9317514152B81E8588325541C3F5284C911751415C8FC2758A3255410AD7A3B08F1751410AD7A3F08B3255417B14AEF78E175141A4703D7A8C325541B38D84048E1751417BE4EDFE8C32554185EB51F88C17514114AE47918D32554185EB51C88B17514114AE47718E325541333333938A17514185EB51A88F325541AE47E1CA8A175141666666F68F3255411559DFC58B17514171B79D569132554176AAAC9B8C17514157A0A482923255412C2F2C0F8E175141C6C6F68B943255411A921DAF8F1751413C6AA7D3963255418FC2F588921751413D0AD7D39A325541AE47E18A951751410AD7A30099325541DCE94B3999175141FDF08CC7963255412B5526109B1751419027CB9A95325541FDD304A49B1751416316E639953255413747637F9C1751411BEA26AA94325541324971729E175141B72C116193325541FB8543419F1751419D4241D5923255417AAA314AA01751415029292292325541D469D58CA31751411CB9F0ED8F3255411F85EB51A817514148E17AB48C3255417B14AEC7B1175141D7A3706D86325541295C8F12BC175141666666C67F325541AA477973C3175141CE9859CE7A32554152B81E05CB175141713D0AA775325541C3F5284CCA175141C3F5280C7332554100000030CA1751410000007072325541B81E851BC917514100000000723255411F85EBE1C41751411F85EB91703255411F85EBE1C3175141F6285C5F703255417B14AE37C3175141713D0A577032554133333393C21751411F85EB3170325541B81E85ABC117514185EB5128703255418FC2F548C1175141AE47E11A70325541000000B0C0175141C3F5280C70325541A4703D0AC01751419A9999E96F325541B81E85BBBF175141E17A14DE6F325541A4703D3ABF1751415C8FC2856F3255410AD7A3B0BE17514114AE47616F325541B965379EBC1751419137C15B6F325541713D0A17BB1751417B14AE576F32554114AE47D1BA17514152B81EA56F32554185EB5178BA1751418FC2F5D86F325541666666D6B91751417B14AE1770325541295C8F32B91751417B14AE2770325541DFE305C6B817514181C3265070325541D7A3702DB81751411F85EBA170325541713D0A77B717514148E17A2471325541EC51B8EEB617514148E17A847132554152B81E15B61751411F85EB0172325541C3F5286CB51751411F85EB417232554166666646B41751410AD7A3B072325541B81E85BBB217514185EB51387332554133333303B217514185EB519873325541CDCCCC7CB1175141A4703DDA733255413D0AD773B0175141AE47E11A7432554100000080AF175141C3F5286C74325541D7A3709DAE1751413D0AD7B374325541AAD97416AE1751418154E8B87432554114AE4771AD175141AE47E1DA74325541CDCCCC9CAC1751410AD7A340753255410AD7A3E0AA1751415C8FC265763255417B14AED7A91751413D0AD7637732554133333333A91751418FC2F5E877325541F6285CAFA81751418FC2F53878325541D7A3705DA8175141B81E858B78325541C3F5282CA81751419A9999E978325541AE47E1EAA7175141713D0A47793255417B14AE87A7175141333333A379325541713D0A17A7175141CDCCCC0C7A32554148E17AE4A6175141333333537A325541E17A148EA617514152B81E957A325541666666C6A51751410AD7A3007B325541CDCCCC8CA517514148E17A347B325541713D0A27A5175141666666B67B325541940FC000A5175141DB4517DA7B3255415C8FC245A41751419A9999897C32554148E17A04A41751417B14AE077D325541295C8F72A3175141F6285CCF7D3255411F85EB51A317514114AE47A17E3255417B14AE37A3175141D7A3701D7F32554114AE47F1A21751413D0AD7D37F325541295C8FC2A217514148E17A7480325541F27DAE9BA21751410C3FD345813255418FC2F598A217514148E17A548132554152B81E65A2175141CDCCCCFC81325541333333F3A1175141D7A3700D83325541D7A370DDA0175141A4703D3A8432554114AE4771A017514152B81E758432554134ED76E19F175141E8831E9F843255418DD1A9DF9F175141121FD79F84325541B81E856B9F1751418FC2F5D8843255411EF3A4479F175141469EB3DC84325541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>187860 - 190677
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000500000052B81E55F2D25041C3F5284C289154410AD7A39007D3504148E17A14EE905441713D0A0703D3504152B81E25EB90544148E17A24EED25041A4703D6A2691544152B81E55F2D25041C3F5284C28915441
+</a>
+
+<b>
+010600000001000000010300000001000000080000007372020703D35041F3D53425EB90544148E17A24EED25041A4703D6A26915441AC4A1F55F2D250417C64274C289154415723FAAEFAD25041A2D45B66119154415F0DF26802D350411300F536FC905441E194A39007D350417DB67A14EE9054414A00983807D35041576487DBED9054417372020703D35041F3D53425EB905441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>187860 - 385322
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000500000052B81E55F2D25041C3F5284C289154410AD7A39007D3504148E17A14EE905441713D0A0703D3504152B81E25EB90544148E17A24EED25041A4703D6A2691544152B81E55F2D25041C3F5284C28915441
+</a>
+
+<b>
+010600000001000000010300000001000000080000007372020703D35041F3D53425EB90544148E17A24EED25041A4703D6A26915441AC4A1F55F2D250417C64274C289154415723FAAEFAD25041A2D45B66119154415F0DF26802D350411300F536FC905441E194A39007D350417DB67A14EE9054414A00983807D35041576487DBED9054417372020703D35041F3D53425EB905441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>188833 - 56059
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000600000052B81E8534E75041713D0AD72C2E5541E17A14FE40E75041F6285C1F202E5541EC51B89E3AE750411F85EBA11C2E5541E17A140E38E75041C3F5281C1B2E5541713D0A172CE7504114AE47B1262E554152B81E8534E75041713D0AD72C2E5541
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000EC51B89E3AE750411F85EBA11C2E554124B9140E38E75041B81A291C1B2E55410331E01A2CE7504152C213B4262E5541242F65672CE7504115DAE0EB262E554132E7958F2CE750413CCE2F09272E5541FC75AD8B34E75041F4855AD02C2E55417D8C5ABA35E750410D61BB9B2B2E55410D65ABE240E750412C0D631D202E554161645F793EE75041329E46BE1E2E5541EC51B89E3AE750411F85EBA11C2E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>189022 - 7822
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000051000000333333F36FE650417B14AE27992C5541B81E85FB6AE65041D7A3704D9C2C55410000008061E65041713D0AD7A02C554114AE47D15BE650415C8FC235A32C554148E17AF457E650411F85EB11A52C55416666667656E650418FC2F5C8A52C5541B81E856B54E65041D7A3700DA72C55415C8FC2A557E6504100000020AD2C55413D0AD7535AE65041C3F5286CB12C554114AE47D15CE65041B81E851BB12C55410000008061E650419A999919AE2C55413333335369E650419A999959A92C5541CDCCCCDC6CE65041E17A14EEA72C5541D7A3700D70E6504166666646A62C5541B81E859B70E65041666666E6A52C5541713D0A3771E6504152B81E25A82C55418FC2F57871E6504100000060A92C5541F6285C6F71E65041A4703DAAAA2C554185EB519874E65041713D0AC7A72C55417B14AE6779E650415C8FC2C5A42C5541AE47E1DA7DE6504185EB51D8A12C55419A9999A980E6504114AE4771A02C5541EC51B8FE85E65041666666669F2C5541D7A3703D88E65041C3F5285C9F2C5541C3F5289C8DE650410AD7A3509D2C554148E17A4495E65041F6285C4F9B2C5541AE47E18A96E6504185EB51489B2C5541D7A370CD9AE65041295C8FC2972C55410000009093E65041C3F5288C992C5541E17A141E91E65041295C8F42982C5541CDCCCCAC91E65041295C8F62952C554185EB51E893E65041295C8FE2932C55419A99993999E65041CDCCCC1C932C5541AE47E15A99E6504152B81EB58D2C5541EC51B8AE9AE65041EC51B84E8B2C5541E17A14DE9CE6504148E17A94892C55418FC2F5F89EE6504114AE47A1842C5541333333A39CE65041B81E852B822C55417B14AEF798E6504152B81E957E2C55411F85EB4195E65041F6285C1F7B2C5541333333C392E6504185EB5198782C55416666661690E65041CDCCCC3C762C5541AE47E10A8EE65041E17A149E742C55411F85EB9191E6504185EB51686F2C55415C8FC20593E65041295C8F426D2C5541D7A3706D8EE65041F6285CFF692C55410AD7A32087E65041EC51B86E642C5541295C8F9284E6504185EB5178622C55410000004083E65041AE47E19A612C5541EC51B8BE81E6504114AE47B1602C55418FC2F54880E65041D7A3700D602C5541B81E850B7DE6504185EB51185F2C5541C3F5288C79E6504148E17AA45E2C5541A4703D5A78E6504185EB5198652C5541B81E85FB77E650419A999949672C5541295C8FB27CE65041D7A370AD692C55419A99997981E65041E17A145E6C2C5541A4703D9A85E6504148E17AE46E2C55415C8FC2E584E650413D0AD7E3702C55419A99992984E6504152B81E65742C55418FC2F50884E6504148E17A64772C55419A99992984E650411F85EB517C2C5541A4703DEA84E65041333333E3892C5541A4703D5A86E65041D7A370AD892C554114AE47718CE650413D0AD763882C55417B14AEE790E65041D7A3707D872C5541F6285CBF92E65041CDCCCC2C882C55417B14AE6792E6504152B81E55892C554148E17A8490E65041A4703DFA892C554185EB51A88CE65041333333C3892C55417B14AEA789E650410AD7A3E08A2C55419A99998985E65041B81E859B8B2C55415C8FC2F584E65041333333B38A2C5541666666D67FE65041B81E85FB8B2C55410AD7A3907FE65041AE47E10A8C2C55415C8FC23577E65041713D0AD78D2C5541D7A3700D76E650419A999989912C5541CDCCCCEC72E65041A4703D8A962C55413333339372E65041D7A3704D962C5541713D0A3771E65041A4703D8A982C5541333333F36FE650417B14AE27992C5541
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000004F9D43E684E650415AE8839B892C5541CB4447E684E65041FFCAC59B892C5541852155E684E65041DFB9BF9C892C554192BB5FE684E65041E5DF7E9D892C5541133B4FE784E65041EF303AA6892C5541C0050AEA84E65041781F10BC892C5541B17ABDEA84E65041E5B012C3892C5541DA8D61EB84E6504159707BC9892C5541DA8D61EB84E65041958A3ACC892C5541C5238E0685E6504189ACDAC98A2C55415E58D90D85E65041D2A4FBD68A2C55413A54801085E6504191D0C1DB8A2C5541307DDC1F85E65041010ECCF28A2C5541CC78813E85E65041D99CBA238B2C554191A5E4B185E650412AEAA7888B2C5541690E5CC386E65041ABCDA25F8B2C5541F981CC498AE65041B5FCE1AD8A2C55412870C0958CE6504167B06FC5892C5541F4E202AB8EE65041400F1CD3892C55411998ECA490E65041A28ACD098A2C5541497C15ED91E650410F35BE8E892C55414886E0F092E65041AEAF4154882C554122D1F6F690E650416063CF6B872C55416AC6FD818EE650415634901D882C55411193AA8C86E650418E51C3B7892C55417E3D9B1186E65041B6F216AA892C5541A6D4230085E65041400F1CD3892C55414F9D43E684E650415AE8839B892C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>189022 - 59517
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000051000000333333F36FE650417B14AE27992C5541B81E85FB6AE65041D7A3704D9C2C55410000008061E65041713D0AD7A02C554114AE47D15BE650415C8FC235A32C554148E17AF457E650411F85EB11A52C55416666667656E650418FC2F5C8A52C5541B81E856B54E65041D7A3700DA72C55415C8FC2A557E6504100000020AD2C55413D0AD7535AE65041C3F5286CB12C554114AE47D15CE65041B81E851BB12C55410000008061E650419A999919AE2C55413333335369E650419A999959A92C5541CDCCCCDC6CE65041E17A14EEA72C5541D7A3700D70E6504166666646A62C5541B81E859B70E65041666666E6A52C5541713D0A3771E6504152B81E25A82C55418FC2F57871E6504100000060A92C5541F6285C6F71E65041A4703DAAAA2C554185EB519874E65041713D0AC7A72C55417B14AE6779E650415C8FC2C5A42C5541AE47E1DA7DE6504185EB51D8A12C55419A9999A980E6504114AE4771A02C5541EC51B8FE85E65041666666669F2C5541D7A3703D88E65041C3F5285C9F2C5541C3F5289C8DE650410AD7A3509D2C554148E17A4495E65041F6285C4F9B2C5541AE47E18A96E6504185EB51489B2C5541D7A370CD9AE65041295C8FC2972C55410000009093E65041C3F5288C992C5541E17A141E91E65041295C8F42982C5541CDCCCCAC91E65041295C8F62952C554185EB51E893E65041295C8FE2932C55419A99993999E65041CDCCCC1C932C5541AE47E15A99E6504152B81EB58D2C5541EC51B8AE9AE65041EC51B84E8B2C5541E17A14DE9CE6504148E17A94892C55418FC2F5F89EE6504114AE47A1842C5541333333A39CE65041B81E852B822C55417B14AEF798E6504152B81E957E2C55411F85EB4195E65041F6285C1F7B2C5541333333C392E6504185EB5198782C55416666661690E65041CDCCCC3C762C5541AE47E10A8EE65041E17A149E742C55411F85EB9191E6504185EB51686F2C55415C8FC20593E65041295C8F426D2C5541D7A3706D8EE65041F6285CFF692C55410AD7A32087E65041EC51B86E642C5541295C8F9284E6504185EB5178622C55410000004083E65041AE47E19A612C5541EC51B8BE81E6504114AE47B1602C55418FC2F54880E65041D7A3700D602C5541B81E850B7DE6504185EB51185F2C5541C3F5288C79E6504148E17AA45E2C5541A4703D5A78E6504185EB5198652C5541B81E85FB77E650419A999949672C5541295C8FB27CE65041D7A370AD692C55419A99997981E65041E17A145E6C2C5541A4703D9A85E6504148E17AE46E2C55415C8FC2E584E650413D0AD7E3702C55419A99992984E6504152B81E65742C55418FC2F50884E6504148E17A64772C55419A99992984E650411F85EB517C2C5541A4703DEA84E65041333333E3892C5541A4703D5A86E65041D7A370AD892C554114AE47718CE650413D0AD763882C55417B14AEE790E65041D7A3707D872C5541F6285CBF92E65041CDCCCC2C882C55417B14AE6792E6504152B81E55892C554148E17A8490E65041A4703DFA892C554185EB51A88CE65041333333C3892C55417B14AEA789E650410AD7A3E08A2C55419A99998985E65041B81E859B8B2C55415C8FC2F584E65041333333B38A2C5541666666D67FE65041B81E85FB8B2C55410AD7A3907FE65041AE47E10A8C2C55415C8FC23577E65041713D0AD78D2C5541D7A3700D76E650419A999989912C5541CDCCCCEC72E65041A4703D8A962C55413333339372E65041D7A3704D962C5541713D0A3771E65041A4703D8A982C5541333333F36FE650417B14AE27992C5541
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000004F9D43E684E650415AE8839B892C5541CB4447E684E65041FFCAC59B892C5541852155E684E65041DFB9BF9C892C554192BB5FE684E65041E5DF7E9D892C5541133B4FE784E65041EF303AA6892C5541C0050AEA84E65041781F10BC892C5541B17ABDEA84E65041E5B012C3892C5541DA8D61EB84E6504159707BC9892C5541DA8D61EB84E65041958A3ACC892C5541C5238E0685E6504189ACDAC98A2C55415E58D90D85E65041D2A4FBD68A2C55413A54801085E6504191D0C1DB8A2C5541307DDC1F85E65041010ECCF28A2C5541CC78813E85E65041D99CBA238B2C554191A5E4B185E650412AEAA7888B2C5541690E5CC386E65041ABCDA25F8B2C5541F981CC498AE65041B5FCE1AD8A2C55412870C0958CE6504167B06FC5892C5541F4E202AB8EE65041400F1CD3892C55411998ECA490E65041A28ACD098A2C5541497C15ED91E650410F35BE8E892C55414886E0F092E65041AEAF4154882C554122D1F6F690E650416063CF6B872C55416AC6FD818EE650415634901D882C55411193AA8C86E650418E51C3B7892C55417E3D9B1186E65041B6F216AA892C5541A6D4230085E65041400F1CD3892C55414F9D43E684E650415AE8839B892C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>189363 - 3043792
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000019000000EC51B8BEB5E450417B14AEA7F72C55413D0AD7D3B6E450418FC2F538F52C554152B81E95B3E45041E17A14EEEC2C5541B81E856BB1E4504185EB5158E72C55415C8FC2F5B1E45041EC51B84EE12C554185EB51F8B0E4504100000020E12C55418FC2F578ABE45041295C8FE2E72C5541F6285C6FA5E45041295C8FA2EF2C554152B81E15A4E45041295C8F82F32C5541A4703D5AA4E450410AD7A390F72C55418FC2F5B8A3E450417B14AEB7FA2C5541C3F5284CA0E45041C3F5287C002D55419A9999399EE450411F85EBD1032D554148E17AF49DE45041666666B6052D55417B14AE379FE45041B81E850B092D5541295C8FF29EE4504152B81E050C2D5541A4703D6A9DE450419A9999F9102D554148E17AE49AE45041713D0AA7162D55415C8FC245A3E45041D7A3702D192D554166666686A5E45041333333D3172D554148E17AB4A5E45041B81E85AB142D55413D0AD783A6E45041295C8FE2102D5541E17A14BEABE450418FC2F5C8072D5541295C8FB2B0E45041295C8F52FE2C5541EC51B8BEB5E450417B14AEA7F72C5541
+</a>
+
+<b>
+010600000001000000010300000001000000220000003E169FED9AE45041BA5FCBA9162D55415C8FC245A3E45041D7A3702D192D55416AAD8A29A3E450418A09D4E8192D554129ACAEABA8E45041DF1899131B2D55414082E62DB1E4504162C4FAF91E2D55416696A00FB5E450413B4E7D821C2D55414BE32755BAE45041F6D01A54152D55415F2AE8B7C4E45041115F2BAF052D5541B5380937C3E45041358EA6CF022D5541538A58EAC4E4504130D04DB5FE2C5541DA3B88F2CCE45041EADEB6D6EC2C554190F17A4CD0E45041F886024BE52C5541835350D1D4E450417838A1B1DC2C55419F9B03D2D1E45041E2F026DFDA2C55412F09C517CAE45041BD48AA51D72C5541E04AC33BC0E45041715944C9D22C55419BEE047EBBE45041BD71B208D12C5541BA4A4C48B9E450410A0C769AD52C5541DE4005A3B5E4504141563C24DD2C5541CC1DE16EB1E45041B2426AD5E52C554123BED2EEB1E4504195F1469CE12C55414C566621B1E45041E8A19227E12C55412AE4BBE5ADE4504186B439E7E42C55413790C629A8E4504124040B22EC2C55414799E8E4A4E45041C0743B2FF12C55414E6BB70DA4E4504196E8BC53F42C5541939B6E1FA4E450412ABEE9B6F82C5541E23B2828A3E450414EFF84ABFB2C5541AAB02D05A0E45041819461EE002D55411768660E9EE450411446B800052D5541467539369FE450417DDC8E1B092D554158F11E049FE45041EB0EA0430B2D5541CD8257309DE450412CF5E97B112D55413E169FED9AE45041BA5FCBA9162D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>189363 - 3287368
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000019000000EC51B8BEB5E450417B14AEA7F72C55413D0AD7D3B6E450418FC2F538F52C554152B81E95B3E45041E17A14EEEC2C5541B81E856BB1E4504185EB5158E72C55415C8FC2F5B1E45041EC51B84EE12C554185EB51F8B0E4504100000020E12C55418FC2F578ABE45041295C8FE2E72C5541F6285C6FA5E45041295C8FA2EF2C554152B81E15A4E45041295C8F82F32C5541A4703D5AA4E450410AD7A390F72C55418FC2F5B8A3E450417B14AEB7FA2C5541C3F5284CA0E45041C3F5287C002D55419A9999399EE450411F85EBD1032D554148E17AF49DE45041666666B6052D55417B14AE379FE45041B81E850B092D5541295C8FF29EE4504152B81E050C2D5541A4703D6A9DE450419A9999F9102D554148E17AE49AE45041713D0AA7162D55415C8FC245A3E45041D7A3702D192D554166666686A5E45041333333D3172D554148E17AB4A5E45041B81E85AB142D55413D0AD783A6E45041295C8FE2102D5541E17A14BEABE450418FC2F5C8072D5541295C8FB2B0E45041295C8F52FE2C5541EC51B8BEB5E450417B14AEA7F72C5541
+</a>
+
+<b>
+010600000001000000010300000001000000220000003E169FED9AE45041BA5FCBA9162D55415C8FC245A3E45041D7A3702D192D55416AAD8A29A3E450418A09D4E8192D554129ACAEABA8E45041DF1899131B2D55414082E62DB1E4504162C4FAF91E2D55416696A00FB5E450413B4E7D821C2D55414BE32755BAE45041F6D01A54152D55415F2AE8B7C4E45041115F2BAF052D5541B5380937C3E45041358EA6CF022D5541538A58EAC4E4504130D04DB5FE2C5541DA3B88F2CCE45041EADEB6D6EC2C554190F17A4CD0E45041F886024BE52C5541835350D1D4E450417838A1B1DC2C55419F9B03D2D1E45041E2F026DFDA2C55412F09C517CAE45041BD48AA51D72C5541E04AC33BC0E45041715944C9D22C55419BEE047EBBE45041BD71B208D12C5541BA4A4C48B9E450410A0C769AD52C5541DE4005A3B5E4504141563C24DD2C5541CC1DE16EB1E45041B2426AD5E52C554123BED2EEB1E4504195F1469CE12C55414C566621B1E45041E8A19227E12C55412AE4BBE5ADE4504186B439E7E42C55413790C629A8E4504124040B22EC2C55414799E8E4A4E45041C0743B2FF12C55414E6BB70DA4E4504196E8BC53F42C5541939B6E1FA4E450412ABEE9B6F82C5541E23B2828A3E450414EFF84ABFB2C5541AAB02D05A0E45041819461EE002D55411768660E9EE450411446B800052D5541467539369FE450417DDC8E1B092D554158F11E049FE45041EB0EA0430B2D5541CD8257309DE450412CF5E97B112D55413E169FED9AE45041BA5FCBA9162D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>189369 - 56451
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000010000000CDCCCCDC67E65041D7A3701DD32C554148E17AC46EE65041CDCCCC5CCE2C55413333330376E650418FC2F518CA2C5541C3F528DC79E650413D0AD7E3C82C55419A9999D97CE65041F6285CCFC82C554114AE47917FE65041295C8F02C82C5541713D0AF77AE6504114AE47D1BD2C554185EB51887AE65041B81E85DBBC2C554148E17AB477E650411F85EBC1BE2C5541666666B66EE65041D7A3705DC52C5541C3F528EC67E65041EC51B85ECA2C55413D0AD78364E65041CDCCCC2CCD2C5541A4703D6A5FE6504185EB51E8D02C55417B14AE975CE650413D0AD763D32C55415C8FC25560E650413D0AD7B3D82C5541CDCCCCDC67E65041D7A3701DD32C5541
+</a>
+
+<b>
+01060000000100000001030000000100000016000000C3F528DC79E650413D0AD7E3C82C55417A0E5FBD7CE6504128831DD0C82C554105A2B3CA7EE65041C6E4043DC82C554114AE47917FE65041295C8F02C82C55419FF8E6017BE65041BEC455E9BD2C5541A0C3B1F27AE650413BC633F0BD2C55411C82E8867AE6504170A2BCE2BC2C554106A1241377E65041C58B7738BF2C5541301FF9E974E6504182B4ECCEC02C55411F59B41973E65041A9390F24C22C5541DA4978AF68E65041114129D5C92C5541975EA8AE64E65041769B8D09CD2C55413D0AD78364E65041CDCCCC2CCD2C55411EE9EF0A64E650414DC74885CD2C55410D20BF3B5FE650419A793611D12C55418BA9C8975CE65041EBA8BF63D32C5541DFEEED5360E65041EBC537AAD82C5541CDCCCCDC67E65041D7A3701DD32C5541F5EB664468E65041A84622D6D22C554148E17AC46EE65041CDCCCC5CCE2C55413333330376E650418FC2F518CA2C5541C3F528DC79E650413D0AD7E3C82C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>189439 - 160711
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000007000000C3F5282C52EB504114AE4741518D54416666668633EB50411F85EBB12F8D54410000001032EB5041CDCCCCAC318D544114AE474130EB504152B81E75348D544114AE47F14AEB5041F6285C1F548D54415C8FC2D54EEB50419A999949528D5441C3F5282C52EB504114AE4741518D5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000CA35689645EB5041F7F83413588D5441A4703D5A46EB5041C3F5282C578D54410AD7A37047EB50418FC2F528568D54414EFB47B049EB50419D0218DA548D5441DB6547F14AEB504107F45B1F548D5441ED1B4E0549EB5041AF69A0D7518D5441CB71484130EB504189A01F75348D54413725ECB12FEB50413CA0EC41358D5441756567662EEB50411FA69869378D5441059F5C3F2CEB5041D918ECD1398D5441B48570FD44EB5041C6EEADC7588D5441CA35689645EB5041F7F83413588D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>189439 - 330749
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000007000000C3F5282C52EB504114AE4741518D54416666668633EB50411F85EBB12F8D54410000001032EB5041CDCCCCAC318D544114AE474130EB504152B81E75348D544114AE47F14AEB5041F6285C1F548D54415C8FC2D54EEB50419A999949528D5441C3F5282C52EB504114AE4741518D5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000CA35689645EB5041F7F83413588D5441A4703D5A46EB5041C3F5282C578D54410AD7A37047EB50418FC2F528568D54414EFB47B049EB50419D0218DA548D5441DB6547F14AEB504107F45B1F548D5441ED1B4E0549EB5041AF69A0D7518D5441CB71484130EB504189A01F75348D54413725ECB12FEB50413CA0EC41358D5441756567662EEB50411FA69869378D5441059F5C3F2CEB5041D918ECD1398D5441B48570FD44EB5041C6EEADC7588D5441CA35689645EB5041F7F83413588D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>190729 - 3098863
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000B00000048E17AB435E55041E17A14BEE18F5441CDCCCC6C32E5504148E17A44DB8F5441AE47E19A17E5504152B81E55A68F5441713D0A1712E550418FC2F5B8AE8F5441EC51B81E11E5504114AE4701B08F54411F85EB010CE5504152B81EC5B68F54413D0AD7931DE55041A4703DAAD98F5441E17A14DE2BE55041C3F5280CF68F5441EC51B83E2DE550415C8FC2A5F38F5441CDCCCC1C30E550415C8FC295ED8F544148E17AB435E55041E17A14BEE18F5441
+</a>
+
+<b>
+01060000000100000001030000000100000005000000F138289F1CE55041284149C4D78F5441ADD26F0E23E55041B78EC7F2D38F5441D7CB5AD412E5504179E81995B48F54411114579B0DE550412F5240F2B98F5441F138289F1CE55041284149C4D78F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>190729 - 3453064
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000B00000048E17AB435E55041E17A14BEE18F5441CDCCCC6C32E5504148E17A44DB8F5441AE47E19A17E5504152B81E55A68F5441713D0A1712E550418FC2F5B8AE8F5441EC51B81E11E5504114AE4701B08F54411F85EB010CE5504152B81EC5B68F54413D0AD7931DE55041A4703DAAD98F5441E17A14DE2BE55041C3F5280CF68F5441EC51B83E2DE550415C8FC2A5F38F5441CDCCCC1C30E550415C8FC295ED8F544148E17AB435E55041E17A14BEE18F5441
+</a>
+
+<b>
+01060000000100000001030000000100000005000000F138289F1CE55041284149C4D78F5441ADD26F0E23E55041B78EC7F2D38F5441D7CB5AD412E5504179E81995B48F54411114579B0DE550412F5240F2B98F5441F138289F1CE55041284149C4D78F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>191097 - 2916421
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000065000000D7A370CDE662514133333383275B5441AE47E14AE7625141AE47E1BA255B54411F85EBB1E7625141D7A370CD255B544148E17A64EA6251418FC2F5281A5B544114AE47F1EB625141F6285C1F125B5441B81E85CBEF62514152B81EA5FF5A54411F85EBC1F162514100000080F75A5441E17A148EF262514152B81E25F45A5441E17A14FEF36251417B14AE77F05A544185EB51B8F7625141713D0AF7E95A5441AE47E19AFA62514114AE4761E55A54413D0AD763FC62514166666666E25A5441333333B3FF6251413D0AD773DD5A5441D7A3700D00635141666666E6DB5A5441CDCCCC4C0063514114AE4781D95A544166666666FF625141D7A370DDD75A54417B14AEE7FD625141CDCCCC2CD65A5441295C8F52FC62514133333363D45A5441AE47E10AFA6251419A999919D35A54417B14AE17F7625141713D0A27D15A54419A999969F46251417B14AE27CF5A54410AD7A330F262514166666666CD5A5441713D0A87ED6251418FC2F5A8C75A5441E17A14FEEA625141AE47E18AC35A5441D7A3708DE7625141D7A3700DBD5A544100000040E5625141713D0A17B95A5441D7A370CDE3625141F6285CDFB55A5441295C8FA2E3625141E17A140EB35A5441F6285C3FDF625141D7A370FDB15A544185EB51D8DD6251410AD7A390B25A5441000000B0DC625141D7A3709DB15A54410AD7A310DA625141295C8F62B15A54415C8FC225D162514185EB5128B15A54410AD7A320C8625141C3F5281CB15A5441B81E852BC16251410AD7A320B15A5441A4703D7ABC6251411F85EB51B15A544114AE47D1B6625141AE47E1CAB15A54410AD7A3C0A96251415C8FC255B35A54411F85EBF1A8625141E17A146EB35A544152B81E95A2625141D7A3703DB45A5441C3F528EC99625141E17A147EB55A5441666666C691625141B81E85CBB65A5441EC51B8AE876251411F85EB81B85A5441000000B086625141D7A370FDB85A5441666666E68562514152B81EC5B95A5441CDCCCC9C8562514114AE4731BA5A54415C8FC2158562514185EB51F8BA5A54411F85EB718462514166666676BC5A54418FC2F5D88362514152B81E55BE5A544185EB512883625141EC51B8DEC15A5441713D0AF78162514166666626C95A54415C8FC2758062514185EB5188D15A5441C3F5287C7D62514166666616E15A5441333333037D625141AE47E1DAE25A54410AD7A3207D6251410AD7A3C0E35A54417B14AE477D625141F6285CEFE45A54419A99998982625141713D0AC7EB5A544148E17A5487625141333333A3F15A5441A4703D6A8C625141713D0A97F75A544148E17A849162514114AE4721FD5A5441333333E39462514148E17A74005B544166666686986251415C8FC2A5035B5441713D0A079C6251415C8FC255065B5441666666B6A0625141EC51B89E095B5441B81E85BBA5625141B81E85BB0C5B5441333333A3A962514152B81ED50E5B5441CDCCCCECAD625141713D0AE7105B54411F85EB91B2625141295C8FE2125B54411F85EBE1B762514100000020155B54418FC2F5B8B9625141A4703D5A145B5441C3F5289CBB6251419A9999790B5B544148E17AB4BB625141D7A3702D0A5B544152B81E55BB62514133333353095B5441F6285C2FBA625141E17A14FE085B5441A4703D7AB96251411F85EB710A5B5441B81E852BB762514148E17A54095B544166666646B562514114AE47E1095B54411F85EB01B362514148E17AD4085B54419A999949B4625141AE47E1FA055B54410AD7A340B162514185EB51D8025B544133333303B2625141CDCCCC3C015B5441EC51B8BEAE6251419A999969FE5A544152B81EB5B2625141EC51B80EF75A5441F6285CFFB662514100000000F95A54410AD7A330B962514152B81EB5F45A544185EB51A8BB625141CDCCCCECF55A5441D7A3709DBB6251415C8FC245F75A5441E17A140EC46251413D0AD703FB5A5441D7A3703DC5625141A4703DDAFB5A5441295C8FD2C362514133333303005B5441C3F5282CC162514133333343055B54419A999949BD62514185EB5108095B5441D7A3703DBC6251417B14AEC70B5B544152B81E85BA62514152B81EC5145B5441E17A14AEBB6251413D0AD743175B5441B81E855BC1625141EC51B80E1B5B54415C8FC215CA62514185EB5108215B5441B81E859BCD6251415C8FC235235B5441EC51B82ED162514148E17A04255B5441295C8F52D4625141E17A145E265B5441D7A370CDE662514133333383275B5441
+</a>
+
+<b>
+01060000000100000001030000000100000022000000AE1D0350C5625141A4FAF81DB15A544186B9883CB06251412CDB48CEB35A54417105C6BEA46251410D14FE4DB55A544110B2FA739A6251418AAF1EB4B65A5441D66D2E429362514176D5ECB3B75A5441B10394108B6251412A36E4E6B85A544168C7D3FA856251410925E3B0B95A5441666666E68562514152B81EC5B95A5441CDCCCC9C8562514114AE4731BA5A54415C8FC2158562514185EB51F8BA5A54411F85EB718462514166666676BC5A54418FC2F5D88362514152B81E55BE5A544185EB512883625141EC51B8DEC15A5441713D0AF78162514166666626C95A54415C8FC2758062514185EB5188D15A5441C3F5287C7D62514166666616E15A5441F041495E7D625141D9782686E15A5441EAABA7B78762514137A80E51E05A5441330D9AC69A62514180BB4900DE5A5441C0561CAFB062514133D687CBDA5A5441AF0394A8BA62514195E0588CD95A5441DA9B6920C762514173EC901FD85A544105343F98D3625141D5F661E0D65A544156EB8752DC625141B3029A73D55A544149C3AA21E1625141150D6B34D45A5441E38D2E8BE762514155237488D15A544101B06F72E3625141EE9F4092C25A54410C20D3EDDD625141D3CDD287B25A544185EB51D8DD6251410AD7A390B25A5441000000B0DC625141D7A3709DB15A54410AD7A310DA625141295C8F62B15A54415C8FC225D162514185EB5128B15A54410AD7A320C8625141C3F5281CB15A5441AE1D0350C5625141A4FAF81DB15A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>191097 - 2916437
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000065000000D7A370CDE662514133333383275B5441AE47E14AE7625141AE47E1BA255B54411F85EBB1E7625141D7A370CD255B544148E17A64EA6251418FC2F5281A5B544114AE47F1EB625141F6285C1F125B5441B81E85CBEF62514152B81EA5FF5A54411F85EBC1F162514100000080F75A5441E17A148EF262514152B81E25F45A5441E17A14FEF36251417B14AE77F05A544185EB51B8F7625141713D0AF7E95A5441AE47E19AFA62514114AE4761E55A54413D0AD763FC62514166666666E25A5441333333B3FF6251413D0AD773DD5A5441D7A3700D00635141666666E6DB5A5441CDCCCC4C0063514114AE4781D95A544166666666FF625141D7A370DDD75A54417B14AEE7FD625141CDCCCC2CD65A5441295C8F52FC62514133333363D45A5441AE47E10AFA6251419A999919D35A54417B14AE17F7625141713D0A27D15A54419A999969F46251417B14AE27CF5A54410AD7A330F262514166666666CD5A5441713D0A87ED6251418FC2F5A8C75A5441E17A14FEEA625141AE47E18AC35A5441D7A3708DE7625141D7A3700DBD5A544100000040E5625141713D0A17B95A5441D7A370CDE3625141F6285CDFB55A5441295C8FA2E3625141E17A140EB35A5441F6285C3FDF625141D7A370FDB15A544185EB51D8DD6251410AD7A390B25A5441000000B0DC625141D7A3709DB15A54410AD7A310DA625141295C8F62B15A54415C8FC225D162514185EB5128B15A54410AD7A320C8625141C3F5281CB15A5441B81E852BC16251410AD7A320B15A5441A4703D7ABC6251411F85EB51B15A544114AE47D1B6625141AE47E1CAB15A54410AD7A3C0A96251415C8FC255B35A54411F85EBF1A8625141E17A146EB35A544152B81E95A2625141D7A3703DB45A5441C3F528EC99625141E17A147EB55A5441666666C691625141B81E85CBB65A5441EC51B8AE876251411F85EB81B85A5441000000B086625141D7A370FDB85A5441666666E68562514152B81EC5B95A5441CDCCCC9C8562514114AE4731BA5A54415C8FC2158562514185EB51F8BA5A54411F85EB718462514166666676BC5A54418FC2F5D88362514152B81E55BE5A544185EB512883625141EC51B8DEC15A5441713D0AF78162514166666626C95A54415C8FC2758062514185EB5188D15A5441C3F5287C7D62514166666616E15A5441333333037D625141AE47E1DAE25A54410AD7A3207D6251410AD7A3C0E35A54417B14AE477D625141F6285CEFE45A54419A99998982625141713D0AC7EB5A544148E17A5487625141333333A3F15A5441A4703D6A8C625141713D0A97F75A544148E17A849162514114AE4721FD5A5441333333E39462514148E17A74005B544166666686986251415C8FC2A5035B5441713D0A079C6251415C8FC255065B5441666666B6A0625141EC51B89E095B5441B81E85BBA5625141B81E85BB0C5B5441333333A3A962514152B81ED50E5B5441CDCCCCECAD625141713D0AE7105B54411F85EB91B2625141295C8FE2125B54411F85EBE1B762514100000020155B54418FC2F5B8B9625141A4703D5A145B5441C3F5289CBB6251419A9999790B5B544148E17AB4BB625141D7A3702D0A5B544152B81E55BB62514133333353095B5441F6285C2FBA625141E17A14FE085B5441A4703D7AB96251411F85EB710A5B5441B81E852BB762514148E17A54095B544166666646B562514114AE47E1095B54411F85EB01B362514148E17AD4085B54419A999949B4625141AE47E1FA055B54410AD7A340B162514185EB51D8025B544133333303B2625141CDCCCC3C015B5441EC51B8BEAE6251419A999969FE5A544152B81EB5B2625141EC51B80EF75A5441F6285CFFB662514100000000F95A54410AD7A330B962514152B81EB5F45A544185EB51A8BB625141CDCCCCECF55A5441D7A3709DBB6251415C8FC245F75A5441E17A140EC46251413D0AD703FB5A5441D7A3703DC5625141A4703DDAFB5A5441295C8FD2C362514133333303005B5441C3F5282CC162514133333343055B54419A999949BD62514185EB5108095B5441D7A3703DBC6251417B14AEC70B5B544152B81E85BA62514152B81EC5145B5441E17A14AEBB6251413D0AD743175B5441B81E855BC1625141EC51B80E1B5B54415C8FC215CA62514185EB5108215B5441B81E859BCD6251415C8FC235235B5441EC51B82ED162514148E17A04255B5441295C8F52D4625141E17A145E265B5441D7A370CDE662514133333383275B5441
+</a>
+
+<b>
+0106000000010000000103000000010000001200000068C7D3FA856251410925E3B0B95A5441B10394108B6251412A36E4E6B85A5441D66D2E429362514176D5ECB3B75A544110B2FA739A6251418AAF1EB4B65A54417105C6BEA46251410D14FE4DB55A544186B9883CB06251412CDB48CEB35A5441AE1D0350C5625141A4FAF81DB15A5441B81E852BC16251410AD7A320B15A5441A4703D7ABC6251411F85EB51B15A544114AE47D1B6625141AE47E1CAB15A54410AD7A3C0A96251415C8FC255B35A54411F85EBF1A8625141E17A146EB35A544152B81E95A2625141D7A3703DB45A5441C3F528EC99625141E17A147EB55A5441666666C691625141B81E85CBB65A5441EC51B8AE876251411F85EB81B85A5441000000B086625141D7A370FDB85A544168C7D3FA856251410925E3B0B95A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>191097 - 3801228
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000065000000D7A370CDE662514133333383275B5441AE47E14AE7625141AE47E1BA255B54411F85EBB1E7625141D7A370CD255B544148E17A64EA6251418FC2F5281A5B544114AE47F1EB625141F6285C1F125B5441B81E85CBEF62514152B81EA5FF5A54411F85EBC1F162514100000080F75A5441E17A148EF262514152B81E25F45A5441E17A14FEF36251417B14AE77F05A544185EB51B8F7625141713D0AF7E95A5441AE47E19AFA62514114AE4761E55A54413D0AD763FC62514166666666E25A5441333333B3FF6251413D0AD773DD5A5441D7A3700D00635141666666E6DB5A5441CDCCCC4C0063514114AE4781D95A544166666666FF625141D7A370DDD75A54417B14AEE7FD625141CDCCCC2CD65A5441295C8F52FC62514133333363D45A5441AE47E10AFA6251419A999919D35A54417B14AE17F7625141713D0A27D15A54419A999969F46251417B14AE27CF5A54410AD7A330F262514166666666CD5A5441713D0A87ED6251418FC2F5A8C75A5441E17A14FEEA625141AE47E18AC35A5441D7A3708DE7625141D7A3700DBD5A544100000040E5625141713D0A17B95A5441D7A370CDE3625141F6285CDFB55A5441295C8FA2E3625141E17A140EB35A5441F6285C3FDF625141D7A370FDB15A544185EB51D8DD6251410AD7A390B25A5441000000B0DC625141D7A3709DB15A54410AD7A310DA625141295C8F62B15A54415C8FC225D162514185EB5128B15A54410AD7A320C8625141C3F5281CB15A5441B81E852BC16251410AD7A320B15A5441A4703D7ABC6251411F85EB51B15A544114AE47D1B6625141AE47E1CAB15A54410AD7A3C0A96251415C8FC255B35A54411F85EBF1A8625141E17A146EB35A544152B81E95A2625141D7A3703DB45A5441C3F528EC99625141E17A147EB55A5441666666C691625141B81E85CBB65A5441EC51B8AE876251411F85EB81B85A5441000000B086625141D7A370FDB85A5441666666E68562514152B81EC5B95A5441CDCCCC9C8562514114AE4731BA5A54415C8FC2158562514185EB51F8BA5A54411F85EB718462514166666676BC5A54418FC2F5D88362514152B81E55BE5A544185EB512883625141EC51B8DEC15A5441713D0AF78162514166666626C95A54415C8FC2758062514185EB5188D15A5441C3F5287C7D62514166666616E15A5441333333037D625141AE47E1DAE25A54410AD7A3207D6251410AD7A3C0E35A54417B14AE477D625141F6285CEFE45A54419A99998982625141713D0AC7EB5A544148E17A5487625141333333A3F15A5441A4703D6A8C625141713D0A97F75A544148E17A849162514114AE4721FD5A5441333333E39462514148E17A74005B544166666686986251415C8FC2A5035B5441713D0A079C6251415C8FC255065B5441666666B6A0625141EC51B89E095B5441B81E85BBA5625141B81E85BB0C5B5441333333A3A962514152B81ED50E5B5441CDCCCCECAD625141713D0AE7105B54411F85EB91B2625141295C8FE2125B54411F85EBE1B762514100000020155B54418FC2F5B8B9625141A4703D5A145B5441C3F5289CBB6251419A9999790B5B544148E17AB4BB625141D7A3702D0A5B544152B81E55BB62514133333353095B5441F6285C2FBA625141E17A14FE085B5441A4703D7AB96251411F85EB710A5B5441B81E852BB762514148E17A54095B544166666646B562514114AE47E1095B54411F85EB01B362514148E17AD4085B54419A999949B4625141AE47E1FA055B54410AD7A340B162514185EB51D8025B544133333303B2625141CDCCCC3C015B5441EC51B8BEAE6251419A999969FE5A544152B81EB5B2625141EC51B80EF75A5441F6285CFFB662514100000000F95A54410AD7A330B962514152B81EB5F45A544185EB51A8BB625141CDCCCCECF55A5441D7A3709DBB6251415C8FC245F75A5441E17A140EC46251413D0AD703FB5A5441D7A3703DC5625141A4703DDAFB5A5441295C8FD2C362514133333303005B5441C3F5282CC162514133333343055B54419A999949BD62514185EB5108095B5441D7A3703DBC6251417B14AEC70B5B544152B81E85BA62514152B81EC5145B5441E17A14AEBB6251413D0AD743175B5441B81E855BC1625141EC51B80E1B5B54415C8FC215CA62514185EB5108215B5441B81E859BCD6251415C8FC235235B5441EC51B82ED162514148E17A04255B5441295C8F52D4625141E17A145E265B5441D7A370CDE662514133333383275B5441
+</a>
+
+<b>
+0106000000010000000103000000010000001200000068C7D3FA856251410925E3B0B95A5441B10394108B6251412A36E4E6B85A5441D66D2E429362514176D5ECB3B75A544110B2FA739A6251418AAF1EB4B65A54417105C6BEA46251410D14FE4DB55A544186B9883CB06251412CDB48CEB35A5441AE1D0350C5625141A4FAF81DB15A5441B81E852BC16251410AD7A320B15A5441A4703D7ABC6251411F85EB51B15A544114AE47D1B6625141AE47E1CAB15A54410AD7A3C0A96251415C8FC255B35A54411F85EBF1A8625141E17A146EB35A544152B81E95A2625141D7A3703DB45A5441C3F528EC99625141E17A147EB55A5441666666C691625141B81E85CBB65A5441EC51B8AE876251411F85EB81B85A5441000000B086625141D7A370FDB85A544168C7D3FA856251410925E3B0B95A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>191097 - 3802584
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000065000000D7A370CDE662514133333383275B5441AE47E14AE7625141AE47E1BA255B54411F85EBB1E7625141D7A370CD255B544148E17A64EA6251418FC2F5281A5B544114AE47F1EB625141F6285C1F125B5441B81E85CBEF62514152B81EA5FF5A54411F85EBC1F162514100000080F75A5441E17A148EF262514152B81E25F45A5441E17A14FEF36251417B14AE77F05A544185EB51B8F7625141713D0AF7E95A5441AE47E19AFA62514114AE4761E55A54413D0AD763FC62514166666666E25A5441333333B3FF6251413D0AD773DD5A5441D7A3700D00635141666666E6DB5A5441CDCCCC4C0063514114AE4781D95A544166666666FF625141D7A370DDD75A54417B14AEE7FD625141CDCCCC2CD65A5441295C8F52FC62514133333363D45A5441AE47E10AFA6251419A999919D35A54417B14AE17F7625141713D0A27D15A54419A999969F46251417B14AE27CF5A54410AD7A330F262514166666666CD5A5441713D0A87ED6251418FC2F5A8C75A5441E17A14FEEA625141AE47E18AC35A5441D7A3708DE7625141D7A3700DBD5A544100000040E5625141713D0A17B95A5441D7A370CDE3625141F6285CDFB55A5441295C8FA2E3625141E17A140EB35A5441F6285C3FDF625141D7A370FDB15A544185EB51D8DD6251410AD7A390B25A5441000000B0DC625141D7A3709DB15A54410AD7A310DA625141295C8F62B15A54415C8FC225D162514185EB5128B15A54410AD7A320C8625141C3F5281CB15A5441B81E852BC16251410AD7A320B15A5441A4703D7ABC6251411F85EB51B15A544114AE47D1B6625141AE47E1CAB15A54410AD7A3C0A96251415C8FC255B35A54411F85EBF1A8625141E17A146EB35A544152B81E95A2625141D7A3703DB45A5441C3F528EC99625141E17A147EB55A5441666666C691625141B81E85CBB65A5441EC51B8AE876251411F85EB81B85A5441000000B086625141D7A370FDB85A5441666666E68562514152B81EC5B95A5441CDCCCC9C8562514114AE4731BA5A54415C8FC2158562514185EB51F8BA5A54411F85EB718462514166666676BC5A54418FC2F5D88362514152B81E55BE5A544185EB512883625141EC51B8DEC15A5441713D0AF78162514166666626C95A54415C8FC2758062514185EB5188D15A5441C3F5287C7D62514166666616E15A5441333333037D625141AE47E1DAE25A54410AD7A3207D6251410AD7A3C0E35A54417B14AE477D625141F6285CEFE45A54419A99998982625141713D0AC7EB5A544148E17A5487625141333333A3F15A5441A4703D6A8C625141713D0A97F75A544148E17A849162514114AE4721FD5A5441333333E39462514148E17A74005B544166666686986251415C8FC2A5035B5441713D0A079C6251415C8FC255065B5441666666B6A0625141EC51B89E095B5441B81E85BBA5625141B81E85BB0C5B5441333333A3A962514152B81ED50E5B5441CDCCCCECAD625141713D0AE7105B54411F85EB91B2625141295C8FE2125B54411F85EBE1B762514100000020155B54418FC2F5B8B9625141A4703D5A145B5441C3F5289CBB6251419A9999790B5B544148E17AB4BB625141D7A3702D0A5B544152B81E55BB62514133333353095B5441F6285C2FBA625141E17A14FE085B5441A4703D7AB96251411F85EB710A5B5441B81E852BB762514148E17A54095B544166666646B562514114AE47E1095B54411F85EB01B362514148E17AD4085B54419A999949B4625141AE47E1FA055B54410AD7A340B162514185EB51D8025B544133333303B2625141CDCCCC3C015B5441EC51B8BEAE6251419A999969FE5A544152B81EB5B2625141EC51B80EF75A5441F6285CFFB662514100000000F95A54410AD7A330B962514152B81EB5F45A544185EB51A8BB625141CDCCCCECF55A5441D7A3709DBB6251415C8FC245F75A5441E17A140EC46251413D0AD703FB5A5441D7A3703DC5625141A4703DDAFB5A5441295C8FD2C362514133333303005B5441C3F5282CC162514133333343055B54419A999949BD62514185EB5108095B5441D7A3703DBC6251417B14AEC70B5B544152B81E85BA62514152B81EC5145B5441E17A14AEBB6251413D0AD743175B5441B81E855BC1625141EC51B80E1B5B54415C8FC215CA62514185EB5108215B5441B81E859BCD6251415C8FC235235B5441EC51B82ED162514148E17A04255B5441295C8F52D4625141E17A145E265B5441D7A370CDE662514133333383275B5441
+</a>
+
+<b>
+01060000000100000001030000000100000022000000AE1D0350C5625141A4FAF81DB15A544186B9883CB06251412CDB48CEB35A54417105C6BEA46251410D14FE4DB55A544110B2FA739A6251418AAF1EB4B65A5441D66D2E429362514176D5ECB3B75A5441B10394108B6251412A36E4E6B85A544168C7D3FA856251410925E3B0B95A5441666666E68562514152B81EC5B95A5441CDCCCC9C8562514114AE4731BA5A54415C8FC2158562514185EB51F8BA5A54411F85EB718462514166666676BC5A54418FC2F5D88362514152B81E55BE5A544185EB512883625141EC51B8DEC15A5441713D0AF78162514166666626C95A54415C8FC2758062514185EB5188D15A5441C3F5287C7D62514166666616E15A5441F041495E7D625141D9782686E15A5441EAABA7B78762514137A80E51E05A5441330D9AC69A62514180BB4900DE5A5441C0561CAFB062514133D687CBDA5A5441AF0394A8BA62514195E0588CD95A5441DA9B6920C762514173EC901FD85A544105343F98D3625141D5F661E0D65A544156EB8752DC625141B3029A73D55A544149C3AA21E1625141150D6B34D45A5441E38D2E8BE762514155237488D15A544101B06F72E3625141EE9F4092C25A54410C20D3EDDD625141D3CDD287B25A544185EB51D8DD6251410AD7A390B25A5441000000B0DC625141D7A3709DB15A54410AD7A310DA625141295C8F62B15A54415C8FC225D162514185EB5128B15A54410AD7A320C8625141C3F5281CB15A5441AE1D0350C5625141A4FAF81DB15A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>191144 - 995717
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000020000001400000085EB51A80A665141A4703D7A815D5441A4703D2AF0655141F6285C6F815D54417B14AEA7D36551410AD7A3C0815D544148E17AE4B365514152B81ED5815D544148E17A24B565514166666696705D5441AE47E15AB065514114AE47F1725D5441713D0A87AE6551418FC2F5F8735D544114AE4781AC6551410AD7A3D0755D5441666666A6AB6551413D0AD7A3795D54415C8FC275A6655141000000D08E5D5441A4703D7AAA6551417B14AE278F5D5441CDCCCC2CB365514148E17A84915D5441E17A148EB86551419A9999A9925D544152B81EC5BF655141CDCCCCFC955D544166666676C76551415C8FC2D5955D5441000000C0C5655141333333C3A05D544133333313FC6551413D0AD7C3A05D5441D7A3701DFD65514152B81E459E5D5441666666F600665141666666D6955D544185EB51A80A665141A4703D7A815D544105000000A4703D9AAB655141A4703D6A8B5D54419A999989AA655141B81E85CB8C5D5441A4703D4AA9655141E17A14EE8B5D5441AE47E15AAA655141C3F5288C8A5D5441A4703D9AAB655141A4703D6A8B5D5441
+</a>
+
+<b>
+0106000000010000000103000000010000001100000079C9BEE4B365514108E075D1815D5441DB817AA3B265514128BDA2EF875D5441242E5164B265514178D97C4B8C5D5441471D0628B2655141A63BA53D915D5441CDCCCC2CB365514148E17A84915D5441E17A148EB86551419A9999A9925D544152B81EC5BF655141CDCCCCFC955D544166666676C76551415C8FC2D5955D5441000000C0C5655141333333C3A05D544133333313FC6551413D0AD7C3A05D5441D7A3701DFD65514152B81E459E5D5441666666F600665141666666D6955D544185EB51A80A665141A4703D7A815D5441A4703D2AF0655141F6285C6F815D54417B14AEA7D36551410AD7A3C0815D544148E17AE4B365514152B81ED5815D544179C9BEE4B365514108E075D1815D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>191144 - 3639031
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000020000001400000085EB51A80A665141A4703D7A815D5441A4703D2AF0655141F6285C6F815D54417B14AEA7D36551410AD7A3C0815D544148E17AE4B365514152B81ED5815D544148E17A24B565514166666696705D5441AE47E15AB065514114AE47F1725D5441713D0A87AE6551418FC2F5F8735D544114AE4781AC6551410AD7A3D0755D5441666666A6AB6551413D0AD7A3795D54415C8FC275A6655141000000D08E5D5441A4703D7AAA6551417B14AE278F5D5441CDCCCC2CB365514148E17A84915D5441E17A148EB86551419A9999A9925D544152B81EC5BF655141CDCCCCFC955D544166666676C76551415C8FC2D5955D5441000000C0C5655141333333C3A05D544133333313FC6551413D0AD7C3A05D5441D7A3701DFD65514152B81E459E5D5441666666F600665141666666D6955D544185EB51A80A665141A4703D7A815D544105000000A4703D9AAB655141A4703D6A8B5D54419A999989AA655141B81E85CB8C5D5441A4703D4AA9655141E17A14EE8B5D5441AE47E15AAA655141C3F5288C8A5D5441A4703D9AAB655141A4703D6A8B5D5441
+</a>
+
+<b>
+0106000000010000000103000000010000001100000079C9BEE4B365514108E075D1815D5441DB817AA3B265514128BDA2EF875D5441242E5164B265514178D97C4B8C5D5441471D0628B2655141A63BA53D915D5441CDCCCC2CB365514148E17A84915D5441E17A148EB86551419A9999A9925D544152B81EC5BF655141CDCCCCFC955D544166666676C76551415C8FC2D5955D5441000000C0C5655141333333C3A05D544133333313FC6551413D0AD7C3A05D5441D7A3701DFD65514152B81E459E5D5441666666F600665141666666D6955D544185EB51A80A665141A4703D7A815D5441A4703D2AF0655141F6285C6F815D54417B14AEA7D36551410AD7A3C0815D544148E17AE4B365514152B81ED5815D544179C9BEE4B365514108E075D1815D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>191269 - 48543
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001D0000008FC2F558CF6351418FC2F508C15B5441EC51B84ED0635141295C8FE2C25B5441295C8FB2D2635141B81E857BC75B5441A4703D5AD563514185EB5198CC5B5441713D0AC7CF63514100000080D15B54419A999909D3635141CDCCCC5CD35B5441AE47E1AAD563514133333343D55B54411F85EB81D9635141CDCCCCBCD85B5441CDCCCC3CDC63514114AE47D1DB5B5441713D0A47DE635141F6285C8FDE5B54419A9999D9E1635141D7A3701DE45B544152B81EB5E4635141CDCCCCECE75B5441000000D0E663514133333343EA5B54419A999929EB635141A4703D0AED5B5441D7A3704DF663514114AE4741D95B544148E17A94F56351415C8FC2F5D85B544114AE4731F36351410AD7A320D75B54418FC2F5A8F16351413D0AD753D55B544152B81E75EF635141000000E0D15B544148E17A84EE63514166666666D05B54413D0AD763EA63514114AE4771CC5B544114AE4761E4635141E17A14BEC55B5441B81E85DBDD635141D7A3702DBD5B5441713D0AA7DC6351413D0AD7C3BC5B54418FC2F5C8DA63514100000090BC5B54417B14AEB7D86351419A9999F9BC5B5441E17A14CED5635141E17A14AEBD5B544152B81E05D3635141E17A141EBF5B54418FC2F558CF6351418FC2F508C15B5441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000008EA01EF5DF6351414DF11A2CE15B54412D3B8809E0635141CD68D84BE15B5441A50ED998E06351414418B12AE25B54417E9102BBEF63514160A907A1D55B5441440E7530EF635141EBA2EC8BD45B54411A0DC628EF6351418ECE5392D45B5441C4B7F033EF635141AC53BFA3D45B544195B00ED9E2635141E2F55BF3DE5B544135E569CAE2635141CCEFF5E0DE5B54414EC456CAE26351418DE005E1DE5B54418EA01EF5DF6351414DF11A2CE15B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>191269 - 84107
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001D0000008FC2F558CF6351418FC2F508C15B5441EC51B84ED0635141295C8FE2C25B5441295C8FB2D2635141B81E857BC75B5441A4703D5AD563514185EB5198CC5B5441713D0AC7CF63514100000080D15B54419A999909D3635141CDCCCC5CD35B5441AE47E1AAD563514133333343D55B54411F85EB81D9635141CDCCCCBCD85B5441CDCCCC3CDC63514114AE47D1DB5B5441713D0A47DE635141F6285C8FDE5B54419A9999D9E1635141D7A3701DE45B544152B81EB5E4635141CDCCCCECE75B5441000000D0E663514133333343EA5B54419A999929EB635141A4703D0AED5B5441D7A3704DF663514114AE4741D95B544148E17A94F56351415C8FC2F5D85B544114AE4731F36351410AD7A320D75B54418FC2F5A8F16351413D0AD753D55B544152B81E75EF635141000000E0D15B544148E17A84EE63514166666666D05B54413D0AD763EA63514114AE4771CC5B544114AE4761E4635141E17A14BEC55B5441B81E85DBDD635141D7A3702DBD5B5441713D0AA7DC6351413D0AD7C3BC5B54418FC2F5C8DA63514100000090BC5B54417B14AEB7D86351419A9999F9BC5B5441E17A14CED5635141E17A14AEBD5B544152B81E05D3635141E17A141EBF5B54418FC2F558CF6351418FC2F508C15B5441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000008EA01EF5DF6351414DF11A2CE15B54412D3B8809E0635141CD68D84BE15B5441A50ED998E06351414418B12AE25B54417E9102BBEF63514160A907A1D55B5441440E7530EF635141EBA2EC8BD45B54411A0DC628EF6351418ECE5392D45B5441C4B7F033EF635141AC53BFA3D45B544195B00ED9E2635141E2F55BF3DE5B544135E569CAE2635141CCEFF5E0DE5B54414EC456CAE26351418DE005E1DE5B54418EA01EF5DF6351414DF11A2CE15B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>191347 - 53315
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000006200000000000050BD61514114AE47C1DA5C5441C3F528CCB761514100000040D75C5441713D0A57B361514152B81E35D55C54411F85EB81B0615141D7A3700DD45C5441F6285C8FAE61514114AE4721D55C544148E17A24AC61514152B81E55D65C544166666696A9615141AE47E14AD65C5441AE47E16AA16151413D0AD793CD5C54418FC2F5889D6151415C8FC225C95C5441D7A3703D9861514114AE47C1C35C5441EC51B8EE94615141B81E85BBC05C5441C3F5280C92615141295C8FD2BD5C5441295C8FE28F61514152B81E25BA5C5441A4703D2A8E615141000000A0B35C5441F6285C3F88615141F6285C2FB55C54415C8FC2957F61514185EB5158A95C5441A4703DBA7D615141B81E851BA75C5441666666B67B61514100000010A65C5441E17A140E796151411F85EBD1A55C5441295C8FF26A61514114AE4741A75C5441C3F528EC69615141E17A149EA45C54410000006066615141AE47E16AA55C54416666667663615141CDCCCC8CAC5C54419A999949656151419A999949AF5C5441B81E859B656151417B14AEE7B55C544148E17A346761514152B81E45B65C54410AD7A31068615141000000C0C05C5441EC51B80E6861514114AE4751C85C5441F6285CCF65615141295C8F32CD5C5441000000C0646151419A999959D15C54415C8FC2D565615141AE47E12AD45C5441333333D367615141713D0A67DA5C5441B81E850B6B615141000000C0DE5C54413D0AD7436E61514166666636E25C5441D7A3702D73615141666666D6E55C544148E17AD478615141A4703D0AE75C5441713D0AD77C615141B81E855BEC5C544185EB51887F6151419A999919F05C5441EC51B8FE7B6151419A999919F85C544185EB5148796151417B14AE67FB5C544148E17AF478615141666666C6FD5C5441AE47E16A7E6151418FC2F5E8085D544148E17A2480615141A4703D9A0E5D54417B14AE47826151419A999939125D5441EC51B8DE85615141E17A14EE145D54418FC2F5C88861514152B81E45155D5441A4703D5A8B61514148E17A040F5D5441666666768F615141E17A14BE075D5441295C8F52936151410AD7A3D0085D5441E17A14DE96615141F6285C7F0C5D5441B81E85BB9D6151415C8FC2F5105D544100000050A26151419A9999C9125D5441333333E3A96151413D0AD763155D5441A4703DDAAD615141295C8FB2155D5441B81E85DBAE615141AE47E17A1C5D5441000000E0AB61514148E17AA41D5D5441C3F528FCB2615141000000E01A5D5441D7A370EDBA61514152B81EF5165D54410AD7A360BB615141295C8F32105D54410AD7A360BB6151418FC2F5080B5D54413D0AD7F3BA61514114AE47D1065D5441713D0A57B961514185EB5108FE5C5441295C8F22B9615141E17A14AEFB5C5441EC51B89EB96151410AD7A3E0F95C54419A999909BB61514166666696F85C5441B81E858BBB6151418FC2F508F75C5441C3F528DCB561514133333363F85C54418FC2F5E8B161514185EB51C8F85C5441B81E85CBAE615141AE47E1BAF75C544185EB51D8AA615141E17A14EEF55C54413D0AD763A661514166666676F35C54419A999999A061514166666696F05C544148E17A949E615141D7A370CDEF5C5441E17A148E9C615141713D0A97F05C5441666666B69761514185EB5168ED5C5441295C8F429461514152B81E95EA5C54418FC2F5F891615141295C8F52E65C5441295C8FF293615141AE47E1CAE15C54410AD7A380966151415C8FC225DF5C5441000000609961514100000020E05C5441000000309B615141C3F528FCDF5C5441CDCCCC1CA66151411F85EBB1E85C5441C3F528FCA861514185EB51D8EB5C5441E17A14AEA661514133333313EF5C5441C3F5285CA5615141CDCCCCECF05C5441B81E85EBA4615141A4703D8AF15C5441AE47E14AAC615141C3F5285CF55C54418FC2F5E8B1615141C3F5286CF75C54415C8FC2C5B561514148E17A64F75C5441AE47E16ABC61514100000030F55C5441B81E85BBBA6151411F85EB81F25C54415C8FC275B96151413D0AD763EF5C5441AE47E15ABC615141333333B3E65C54419A999949BE61514148E17A54E45C544148E17AF4BF61514185EB51E8E05C5441666666F6C061514114AE4701DE5C5441295C8FA2BF615141333333C3DC5C544100000050BD61514114AE47C1DA5C5441
+</a>
+
+<b>
+0106000000020000000103000000010000001A000000F9BC5ECFBA615141D86E64CBF85C5441C6839056BB61514191F3F4AAF75C5441BBACDC6ABB6151412F4FDD6CF75C544130F7C570BB6151412CFBC75AF75C54411A166573BB6151415CF2C252F75C5441E2665582BB615141A2EE0F25F75C5441786F5A99B96151416C2C7A7FF75C5441C3F528DCB561514133333363F85C54414736105DB5615141F3DFE86FF85C54411D2B59DFB3615141ADA6A7C3F85C54414BCF0F8CB3615141C4F403DBF85C5441CD278AF0B36151416F203D33FB5C54410B0FAE7CB4615141E710CEFFFD5C5441253B6A38B5615141A98F8590025D54413C6D83A9B5615141F7F524EE045D54410BEA6609B6615141629D7CD0075D5441CF27864CB66151419D900A50095D544141253C99B6615141CD44D4B20A5D544161E288EFB66151414F39070C0C5D54410AD7A360BB615141DF9EF2F60B5D54410AD7A360BB6151418FC2F5080B5D54413D0AD7F3BA61514114AE47D1065D5441713D0A57B961514185EB5108FE5C5441295C8F22B9615141E17A14AEFB5C5441EC51B89EB96151410AD7A3E0F95C5441F9BC5ECFBA615141D86E64CBF85C54410103000000010000000B0000002D904268B4615141E2CE3167F75C54415C8FC2C5B561514148E17A64F75C5441576EDAC7BA615141CC840BBBF55C54416B1C33A5BB615141F5909871F55C5441816BE088BA615141DD1D5766F25C54417944410EB8615141A53991E9F05C5441FDC8B401B4615141C13AD0F1F65C5441BCC0D3CDB3615141E7DF6468F75C544183400130B4615141B9A9A167F75C544157504741B46151411E517F67F75C54412D904268B4615141E2CE3167F75C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>126070 - 427396
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000001000000120000000AD7A3900CBE504114AE47313E465541EC51B88EFDBD5041B81E85DB4246554185EB5138ECBD5041E17A14DE48465541CDCCCC3CE6BD5041B81E85AB4A46554133333393E6BD5041EC51B83E4C4655410AD7A390E5BD5041CDCCCC1C514655417B14AED7E0BD5041F6285C1F59465541713D0A2701BE50417B14AEE74A465541D7A370CD1FBE504185EB51E8454655418FC2F5485BBE5041F6285CAF44465541B81E852B5ABE5041C3F5283C3F46554148E17A045ABE5041B81E852B3E4655419A99996951BE5041E17A145E3C46554185EB51F843BE5041666666A63A465541CDCCCC5C38BE5041CDCCCCDC394655410000000027BE5041E17A141E3A4655416666663617BE50417B14AE173C4655410AD7A3900CBE504114AE47313E465541
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000D3BEA17908BE504135403D643F465541789B9633FFBD5041F1A6B4EB41465541251364A0F4BD504166E2F13545465541641F8722E6BD5041AB07694D4A465541AB9690E7E5BD504179A4A4854C46554117BF8CE6F2BD5041E10D5EB9474655410194B49EFDBD5041E61C12FD43465541A43637FF06BE5041EEA4121741465541274E90FF0EBE50411D32C8B53E465541730CC6D319BE504173F0AACE3C46554176F1A70F26BE5041D43FA44C3B4655414AF4EA8334BE504111EC5CE53A4655410988854A40BE5041863ECC9F3B465541EFD09D514ABE5041B2459BC53C4655412FE3624852BE5041E3F280DE3D4655417FD762765ABE5041182108903F4655418D49BB735ABE50414A45807F3F465541928DACDA5ABE50417120435F3E465541B51E764B51BE5041DBB999E33B465541C88ABD4F4EBE50410FAC0E663B4655417874ADDB45BE5041242A52023A46554104A0E26838BE5041CA7D1B9039465541FB7F52E42EBE50416052E9C9394655416027314A26BE50411FD05F163A465541FCFA95A125BE5041FC78AD2A3A465541B14F025417BE5041DBB999E33B4655415C8CF1490FBE50416551C0A73D4655415AB9F8FC0CBE5041848725293E465541D3BEA17908BE504135403D643F465541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>128236 - 3174384
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B000000EC51B89E35BC504148E17A44BB4B5541F6285C9F4BBC5041A4703D8AB64B55419A9999894CBC504185EB5168B54B5541EC51B84E4CBC5041295C8F02AB4B5541333333234CBC5041D7A370FDA04B554148E17AE43DBC504114AE4701AB4B5541E17A14EE2FBC5041D7A3707DB44B55413D0AD7D323BC5041AE47E13ABC4B55413D0AD7C31FBC5041C3F5283CBF4B55419A99990920BC5041A4703DEABF4B5541EC51B89E35BC504148E17A44BB4B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000300C396D42BC5041802737D1A74B5541D1C2F6C13EBC5041639E9065AA4B5541EC00C4F942BC5041C7EA7FB6A94B55416F5D39914ABC50418FAF583EA84B55418717E5B04ABC50417940D985B44B554138B9E3B74ABC504134317C61B64B554108FCC64A4BBC50412FFB738BB64B554125CAFF724CBC5041072D3B63B54B55413D0D56034CBC50414633E022A14B55418A9F12044CBC504189965D22A14B5541898919034CBC50415EF2E2F4A04B5541973BC5B446BC50412295FCCEA44B5541300C396D42BC5041802737D1A74B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>128236 - 5277894
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B000000EC51B89E35BC504148E17A44BB4B5541F6285C9F4BBC5041A4703D8AB64B55419A9999894CBC504185EB5168B54B5541EC51B84E4CBC5041295C8F02AB4B5541333333234CBC5041D7A370FDA04B554148E17AE43DBC504114AE4701AB4B5541E17A14EE2FBC5041D7A3707DB44B55413D0AD7D323BC5041AE47E13ABC4B55413D0AD7C31FBC5041C3F5283CBF4B55419A99990920BC5041A4703DEABF4B5541EC51B89E35BC504148E17A44BB4B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000300C396D42BC5041802737D1A74B5541D1C2F6C13EBC5041639E9065AA4B5541EC00C4F942BC5041C7EA7FB6A94B55416F5D39914ABC50418FAF583EA84B55418717E5B04ABC50417940D985B44B554138B9E3B74ABC504134317C61B64B554108FCC64A4BBC50412FFB738BB64B554125CAFF724CBC5041072D3B63B54B55413D0D56034CBC50414633E022A14B55418A9F12044CBC504189965D22A14B5541898919034CBC50415EF2E2F4A04B5541973BC5B446BC50412295FCCEA44B5541300C396D42BC5041802737D1A74B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>128277 - 56402
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000004000000010300000001000000050000005C8FC2C5D6BD5041713D0A27624A5541E17A142EB8BD504100000080654A5541666666D6B7BD504148E17AA4694A55415C8FC205D7BD50417B14AE17664A55415C8FC2C5D6BD5041713D0A27624A5541010300000001000000090000000AD7A370B9BD5041B81E85DB564A5541295C8F62B9BD5041D7A3704D574A5541EC51B86EB8BD5041EC51B80E624A554148E17A94D6BD504114AE47A15E4A554166666636D6BD5041C3F5284C574A554148E17AE4D5BD5041000000F0534A5541666666B6D5BD50411F85EB01514A55411F85EB61BDBD50411F85EBD1534A55410AD7A370B9BD5041B81E85DB564A554101030000000100000008000000000000A0B8BD504152B81E85574A5541666666F6B5BD5041000000B0594A5541A4703DAAB4BD5041D7A3700D5B4A5541EC51B84EB2BD5041B81E850B784A55415C8FC295AFBD50418FC2F598994A554133333343B3BD5041F6285C2F994A554100000030B6BD5041F6285C5F754A5541000000A0B8BD504152B81E85574A55410103000000010000000600000048E17A94B4BD50417B14AE67924A55419A999909B4BD50418FC2F518994A5541C3F5281CD9BD504100000030954A55418FC2F5A8D9BD50419A999989944A5541F6285C4FD9BD50418FC2F5588E4A554148E17A94B4BD50417B14AE67924A5541
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000D1EA0EA0B8BD5041A4551C09624A55417336B9F4C4BD5041FEE739A2604A554126034492D6BD5041D45119755E4A5541AC502F67D6BD5041668D88195B4A5541EE2F0321D6BD5041D439976B564A554148E17AE4D5BD5041000000F0534A5541F05965BBD5BD504164013E53514A554174503DB4D5BD504147518B05514A5541A6D4BA7BBDBD5041F9A506D6534A5541ABFE236FB9BD5041CDC6A6E7564A55415E16346EB9BD504185D83BEF564A55415916126EB9BD5041F5EF4EF0564A5541D1EA0EA0B8BD5041A4551C09624A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>128767 - 383183
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000006000000C30000000AD7A380709D5041295C8F32D252554148E17A64719D5041333333B3C85255413D0AD753719D5041C3F5288CC7525541A4703D7A649D5041AE47E16AC55255417B14AE37679D5041295C8F92B65255418FC2F558749D50418FC2F5A8BA52554185EB5158829D5041F6285C0FBF52554152B81EB5849D504185EB5128B8525541666666A6869D50413D0AD7D3B1525541000000D08B9D5041C3F528ACA8525541D7A370FD949D5041A4703DAA975255417B14AE87999D504114AE472199525541666666869A9D5041D7A370CD965255413D0AD7939B9D5041A4703D3A97525541295C8FA2969D5041D7A3707DA3525541666666468E9D50413D0AD793B352554185EB51F88C9D5041AE47E1BAB7525541C3F5289C879D5041F6285C0FC9525541CDCCCC8C889D5041AE47E1EAC95255411F85EBB1A19D5041C3F5280CCB5255417B14AE07A39D5041CDCCCC4CCB5255417B14AE57A79D5041EC51B84EC05255417B14AEB7A79D50419A999959BF525541A4703DDA9F9D5041B81E850BBD525541B81E857BB19D5041666666269C52554133333363B09D50415C8FC2A5985255410AD7A3E0B39D5041D7A370AD975255418FC2F518BD9D50419A9999C98352554152B81E758E9D5041D7A3705D0F525541AE47E15A8D9D50418FC2F5E80E52554152B81E458C9D504114AE47410E525541F6285C6F8A9D5041EC51B80E0D525541AE47E1AA889D5041C3F5289C0B525541AE47E14A879D5041295C8F820A525541713D0A77859D50410AD7A3F0085255415C8FC295849D5041AE47E1FA07525541AE47E1DA839D5041F6285C0F075255419A999949839D5041F6285C1F065255413D0AD7A3829D504148E17AE404525541B81E85EB7F9D5041713D0A37FE5155411F85EBA1529D50410AD7A300EB515541C3F5284C5F9D50413D0AD713DC515541713D0A775F9D504152B81E35DB51554114AE4761639D504166666676C85155411F85EB41639D5041A4703DFAC1515541B81E85FB629D5041F6285CDFBE515541D7A3705D629D5041B81E85BBBA515541D7A3703D5D9D504185EB51A8B8515541295C8FE25C9D504100000010B4515541F6285C2F4A9D5041C3F5288CAF51554166666676359D5041C3F528CCAF515541EC51B8DE269D50413D0AD7E3B6515541333333A31A9D504148E17A84BA51554100000060179D5041EC51B8EEB95155413D0AD7C3139D5041EC51B86EB95155415C8FC2F50F9D5041C3F528ECB851554152B81EA50C9D50411F85EB71B8515541000000E0089D504114AE47F1B7515541333333C3049D50418FC2F548B751554114AE4791029D5041F6285CDFB6515541AE47E1CA039D5041D7A370DDAA5155417B14AE17029D5041713D0A77A051554166666676009D5041CDCCCCECA1515541F6285CBFFE9C504185EB51C8A251554152B81E25FB9C504100000020A3515541333333E3FA9C5041666666D6A1515541B81E853BFE9C5041666666D6A1515541333333F3FF9C5041295C8F52A15155413D0AD793019D50411F85EB019F515541E17A147E019D50411F85EB519B5155411F85EB51FE9C5041A4703DDA8D5155413D0AD733FA9C50416666669681515541333333E3F79C50410AD7A31075515541EC51B85EF49C5041E17A14BE69515541A4703D8AF49C50413D0AD72363515541A4703D9AF39C5041F6285C5F5E5155410AD7A370F19C50410AD7A3C058515541CDCCCC6CF09C5041CDCCCCAC585155419A9999D9EA9C5041CDCCCC1C6551554148E17A04E89C504166666676715155417B14AE87E59C50419A9999898B515541AE47E1BAE39C50417B14AE0794515541AE47E10AE09C50417B14AE27A451554185EB51C8DC9C5041D7A370EDA7515541CDCCCCFCBA9C50413D0AD7B3AB5155415C8FC245B99C504114AE47A1C05155417B14AED7B59C50417B14AEB7C35155415C8FC295B59C5041713D0A27CD515541AE47E15AC19C50410AD7A320D85155411F85EB21C79C50419A999939DA51554166666606CD9C504114AE47C1DC515541A4703DDACD9C504152B81E75DD515541F6285CDFCE9C50417B14AEF7DE515541E17A140ED39C50411F85EBC1E6515541CDCCCCECD49C504148E17AD4EA515541713D0AA7D69C5041E17A145EEF515541A4703D8AD89C5041B81E855BF45155418FC2F578D99C5041295C8F92F6515541EC51B86EDB9C504133333303FA51554114AE4721DC9C5041D7A370FDFA5155418FC2F518DD9C5041EC51B80EFD51554152B81EB5DD9C5041CDCCCC1CFE515541CDCCCC6CDE9C504185EB5178FF51554152B81E55DE9C5041CDCCCC8C0052554152B81EE5DD9C504185EB51B802525541B81E859BDD9C5041F6285CAF0452554166666656DD9C50413D0AD7030752554152B81EC5DC9C50419A99997909525541B81E855BDC9C504152B81EA50B52554100000030DC9C504148E17A240D525541A4703D4ADC9C5041000000A00E525541A4703D4ADC9C504152B81EF50F52554152B81E35DC9C50417B14AE771152554114AE47E1DB9C5041C3F5286C13525541D7A370BDDB9C5041C3F5283C1552554152B81EB5DB9C5041D7A3701D16525541E17A14DEDB9C504185EB5148175255410AD7A320E09C5041C3F5288C1B5255417B14AED7E19C504100000070205255413D0AD703E29C50410AD7A3C022525541D7A3703DDE9C5041713D0AD725525541AE47E1AADB9C50410AD7A3D02A52554114AE4771DF9C5041A4703DCA2F525541AE47E16ADB9C5041A4703D6A355255410AD7A320C49C50417B14AEC74352554148E17AE4A29C504148E17A944352554185EB51989B9C50413D0AD73341525541EC51B8FE9A9C504148E17A344452554148E17A64979C50418FC2F55846525541D7A3700D9A9C50415C8FC285495255418FC2F5389A9C5041D7A3708D4D525541333333C3929C50413333330352525541EC51B83E8F9C5041C3F5289C4C525541AE47E15A8A9C5041F6285C7F4E52554100000020889C50418FC2F5785352554166666626839C504166666696575255418FC2F5F8769C504152B81EF552525541666666566F9C504152B81E954E525541713D0AA76E9C5041A4703DAA48525541000000E0679C5041E17A142E49525541F6285CDF649C504148E17AC4375255410AD7A310579C504148E17A6433525541F6285CBF549C504152B81E65365255418FC2F558529C504148E17A1437525541CDCCCCDC529C504148E17A64335255411F85EB414C9C504148E17AB42F52554100000040439C5041D7A3705D35525541CDCCCC7C329C5041000000B033525541CDCCCCDC279C50411F85EB81355255418FC2F5581F9C504148E17AC437525541E17A14DE169C504114AE4781375255411F85EBA1129C5041EC51B81E38525541A4703DEA159C5041713D0A07415255411F85EB611B9C5041EC51B84E495255411F85EBF1219C5041EC51B8BE51525541A4703D5A289C5041713D0A1759525541A4703D5A2D9C5041713D0A375C525541A4703DFA329C5041713D0A9760525541A4703D0A379C5041EC51B8EE62525541A4703D7A3F9C5041EC51B83E635255411F85EB214C9C5041EC51B8AE61525541A4703D3A529C5041EC51B8AE615255411F85EBA1589C5041EC51B8FE6B525541713D0AC75E9C5041713D0A477B525541713D0AE7769C5041E17A148E6E52554185EB5198889C5041D7A3700D66525541666666D6959C504152B81E456C525541D7A3702DAB9C50418FC2F5686F525541D7A3702DBD9C5041000000D0715255418FC2F518CF9C5041C3F5281C75525541B81E853BDD9C5041C3F5287C78525541CDCCCC0CE99C504152B81EC579525541A4703D0AE99C504185EB51E87C525541AE47E15AFF9C5041D7A370BD8B52554114AE4791099D5041F6285CFF925255411F85EB01169D5041EC51B80E84525541A4703DEA239D5041EC51B8FE89525541A4703D3A339D5041713D0AE78D525541A4703D1A359D5041EC51B8CE8C5255411F85EBE1499D5041713D0A3793525541A4703DDA4C9D5041EC51B8DEA452554185EB5138469D5041713D0AB7B3525541D7A370BD299D5041AE47E1CAB35255415C8FC2C52B9D50410AD7A320B6525541C3F5284C3B9D504152B81EF5C95255418FC2F528409D50411F85EBB1D0525541A4703DFA4A9D5041713D0AC7CB5255411F85EB114C9D5041EC51B8FED9525541713D0A57409D5041713D0AF7DC525541D7A3706D409D5041A4703DEAE25255411F85EB21469D5041713D0A27DF5255415C8FC2A55A9D50417B14AE07DC5255410AD7A3305B9D5041AE47E1BACF5255411F85EB11659D5041E17A142ED25255410AD7A380709D5041295C8F32D2525541070000000AD7A3C0839D5041000000106C525541A4703D8A889D5041EC51B8AE60525541666666D6939D50418FC2F51863525541295C8F52929D5041713D0A376F525541F6285C6F8E9D50413333335372525541D7A3708D859D50413D0AD7D36F5255410AD7A3C0839D5041000000106C52554108000000A4703DCAA29D5041A4703D2A75525541F6285C0F9F9D5041000000C074525541C3F528CC9F9D504148E17A246E525541C3F5282CA39D504152B81E856E52554114AE47E1AF9D5041000000F06F52554148E17A24AF9D5041AE47E18A76525541E17A14EEA89D50419A9999D975525541A4703DCAA29D5041A4703D2A75525541080000007B14AE67B19D5041713D0AC78E5255413D0AD793B39D5041666666A687525541A4703D1AB69D50410AD7A3D07C525541A4703D2AB99D50411F85EBE17D525541D7A370ADB89D504148E17A94835255418FC2F5C8B69D50410AD7A39089525541F6285C7FB49D50415C8FC2F58E5255417B14AE67B19D5041713D0AC78E525541060000005C8FC2F5E99C5041B81E85BB59525541B81E859BE89C5041E17A140E59525541295C8F92E89C50415C8FC2F556525541666666D6EA9C5041F6285CCF55525541EC51B8AEEB9C5041B81E85AB575255415C8FC2F5E99C5041B81E85BB595255410A000000295C8F82DF9C50415C8FC2155B525541666666B6DF9C5041666666D65E525541AE47E1DADD9C504152B81ED560525541EC51B8FEDB9C504148E17A245F5255410AD7A370DA9C5041EC51B84E5A52554148E17AA4DA9C50411F85EB015852554100000020DE9C504100000070555255410AD7A3C0E49C5041295C8F72585255417B14AE77E39C5041CDCCCC9C5A525541295C8F82DF9C50415C8FC2155B525541
+</a>
+
+<b>
+0106000000010000000103000000010000006B000000DBDA0C32DC9C50412883E55334525541BBFEF06BDB9C5041CFB6C16835525541D6323E5CF19C5041C423B36437525541487AA617F49C5041B361E8C527525541E817446EF49C50413522DCE025525541895A5CB3F49C5041479D6F4F23525541A01A2D3DF79C50411ECFFC1E11525541ECC6D807F99C5041204CA127065255413D37E35DFB9C50413F384040F951554117F863AAFE9C5041B49786BAE5515541E9948DCCFF9C50416FB9DB18DF51554105A45C11019D504186849AE0CC51554177158EFF019D50414648B89EBC515541C3F5287C029D5041000000B0B7515541AE87E9E2FA9C50413ABCB346B6515541D975D466F59C5041DF2BC080B45155411AD93AFDF09C504197A20386B2515541C3F528BCED9C5041CDCCCC5CB05155417B14AE17EB9C50417B14AE17AE515541AE47E1EAE99C50411F85EB11AC5155410AD7A330E99C5041D7A3701DAA51554114AE47D1E89C5041713D0A77A8515541B81E85BBE89C504133333303A7515541295C8FC2E89C50417B14AED7A5515541F6285C0FE99C504148E17AF4A35155419A999989E99C504166666686A251554185EB51D8EA9C5041713D0A27A1515541AE47E17AED9C5041CDCCCC4C9F515541B2A81DE8F09C50410EA7445E9D515541655BC02CF39C5041CF993A419C515541CDCCCC5CF69C50419A9999699C515541D7A3701DFA9C5041000000009C51554126104264FE9C5041908C30249B5155411F85EB21FF9C504114AE47A19A515541C3F5284C009D50419A999929995155413E5E44BC009D50413A692B1B985155411F85EB51FE9C5041A4703DDA8D5155412BD4E224FA9C5041025512BD81515541333333E3F79C50410AD7A31075515541CD005954F49C5041AE1C90DC69515541A22D4088F49C50416474805D635155411644B0D6F39C5041A8C713C261515541C9CCC547F39C50416CFFF16B60515541292F28F1F29C50417AA975385F515541272AE384F29C50416CD655D55D515541EA61C12EF19C50417506064459515541CECEBBFBF09C5041D7B1B6B758515541CDCCCC6CF09C5041CDCCCCAC5851554167DCCAE2EA9C50418F5610296551554148E17A04E89C504166666676715155415E65CCFFE79C50411E82B0E97151554105704E8EE69C5041F1D12814815155418AC37E9BE59C50410D424C4E8B5155410004897EE59C50412EDFBEB48B5155412F338BD5E39C5041FBB2D3019451554114DB4F69E09C50410D51E8E4A2515541AE47E10AE09C50417B14AE27A451554185EB51C8DC9C5041D7A370EDA75155411A0DA612D89C50410FF41D74A85155416754AEFABC9C5041D782E27AAB515541CDCCCCFCBA9C50413D0AD7B3AB5155413EE30AECB09C5041B33144D3A35155411F6F8985B19C5041E8514CFDA851554154F625ADB19C50417B2ACA94AB5155415CF0F754B59C504105EF737EB05155417AD1EA4DB79C504199C8BB35B8515541E7670F47B99C50414256E047BA5155415C8FC245B99C504114AE47A1C05155417B14AED7B59C50417B14AEB7C35155419257EBE1B19C5041725FFB69CC515541AE47E15AC19C50410AD7A320D85155411F85EB21C79C50419A999939DA51554166666606CD9C504114AE47C1DC515541A4703DDACD9C504152B81E75DD515541F6285CDFCE9C50417B14AEF7DE515541E17A140ED39C50411F85EBC1E6515541CDCCCCECD49C504148E17AD4EA515541713D0AA7D69C5041E17A145EEF515541A4703D8AD89C5041B81E855BF45155418FC2F578D99C5041295C8F92F6515541EC51B86EDB9C504133333303FA51554114AE4721DC9C5041D7A370FDFA5155418FC2F518DD9C5041EC51B80EFD51554152B81EB5DD9C5041CDCCCC1CFE515541CDCCCC6CDE9C504185EB5178FF51554100EA2179DE9C504187D9518100525541A8C772FADD9C50416A2BBA9B02525541B81E859BDD9C5041F6285CAF04525541F474A666DD9C50410030C5FA0652554152B81EC5DC9C50419A9999790952554179C8D673DC9C5041EB5DB6A30B52554100000030DC9C504148E17A240D525541A4703D4ADC9C5041000000A00E525541A4703D4ADC9C504152B81EF50F52554152B81E35DC9C50417B14AE771152554114AE47E1DB9C5041C3F5286C13525541D7A370BDDB9C5041C3F5283C1552554152B81EB5DB9C5041D7A3701D16525541E17A14DEDB9C504185EB5148175255410AD7A320E09C5041C3F5288C1B5255417B14AED7E19C504100000070205255413D0AD703E29C50410AD7A3C022525541D7A3703DDE9C5041713D0AD725525541AE47E1AADB9C50410AD7A3D02A525541AB3CA6FDDB9C5041FD5BB83D2B52554114AE4771DF9C5041A4703DCA2F525541DBDA0C32DC9C50412883E55334525541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>129848 - 1630647
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000009000000713D0AD791BE5041A4703D0A31475541B81E85DB83BE504185EB51A833475541EC51B88E8ABE50418FC2F5B84D475541295C8F6290BE50415C8FC26564475541CDCCCC1C9CBE504185EB51F858475541C3F5280CA3BE50419A99992952475541295C8FC29EBE5041F6285C7F41475541000000209ABE5041CDCCCC7C2F475541713D0AD791BE5041A4703D0A31475541
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000243D93C3A2BE5041C3AB780F51475541295C8FC29EBE5041F6285C7F41475541000000209ABE5041CDCCCC7C2F475541713D0AD791BE5041A4703D0A31475541B81E85DB83BE504185EB51A833475541EC51B88E8ABE50418FC2F5B84D47554104D39F2290BE50417EECFB6C63475541ECC2660790BE504179B7C1F8624755413CE1481290BE5041B21A5AEE62475541ECC2660790BE5041C4AF019A62475541B092AA7190BE5041837383366247554141EF362892BE5041128DA1EF60475541243D93C3A2BE5041C3AB780F51475541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>129848 - 5272592
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000009000000713D0AD791BE5041A4703D0A31475541B81E85DB83BE504185EB51A833475541EC51B88E8ABE50418FC2F5B84D475541295C8F6290BE50415C8FC26564475541CDCCCC1C9CBE504185EB51F858475541C3F5280CA3BE50419A99992952475541295C8FC29EBE5041F6285C7F41475541000000209ABE5041CDCCCC7C2F475541713D0AD791BE5041A4703D0A31475541
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000243D93C3A2BE5041C3AB780F51475541295C8FC29EBE5041F6285C7F41475541000000209ABE5041CDCCCC7C2F475541713D0AD791BE5041A4703D0A31475541B81E85DB83BE504185EB51A833475541EC51B88E8ABE50418FC2F5B84D47554104D39F2290BE50417EECFB6C63475541ECC2660790BE504179B7C1F8624755413CE1481290BE5041B21A5AEE62475541ECC2660790BE5041C4AF019A62475541B092AA7190BE5041837383366247554141EF362892BE5041128DA1EF60475541243D93C3A2BE5041C3AB780F51475541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>129881 - 1630222
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000009000000C3F5282C96BE50417B14AE9759485541AE47E14A98BE50410AD7A33078485541AE47E1CA98BE5041A4703DBA784855419A999969ADBE5041F6285C8F7B485541EC51B8FEAABE5041713D0A7759485541000000F0A8BE5041333333733C4855419A99996995BE5041000000203B48554152B81E1594BE5041AE47E10A3B485541C3F5282C96BE50417B14AE9759485541
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000001C6EC99796BE504152CBB360554855411C3B9C2295BE50415DB4981B3B485541D4049A3D95BE5041B851451D3B485541C9FD4A2095BE5041E53CB2163B48554152B81E1594BE5041AE47E10A3B48554154F1FC7294BE5041C8A6C9D74048554125A0C1AC94BE50419CD8018D434855417810402496BE50416DB8FEFC58485541CB80BE9B97BE5041401B6FE870485541AE47E14A98BE50410AD7A33078485541AE47E1CA98BE5041A4703DBA784855414D4278D998BE5041DF4CE73D784855411C6EC99796BE504152CBB36055485541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>129881 - 3172855
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000009000000C3F5282C96BE50417B14AE9759485541AE47E14A98BE50410AD7A33078485541AE47E1CA98BE5041A4703DBA784855419A999969ADBE5041F6285C8F7B485541EC51B8FEAABE5041713D0A7759485541000000F0A8BE5041333333733C4855419A99996995BE5041000000203B48554152B81E1594BE5041AE47E10A3B485541C3F5282C96BE50417B14AE9759485541
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000D3049A3D95BE5041B851451D3B4855411C3B9C2295BE50415DB4981B3B4855410693135D98BE50410AEC06BC704855414D4278D998BE5041DF4CE73D78485541143AB9D398BE50410BB1DF6E784855414D4278D998BE5041EB0153CE784855419A999969ADBE5041F6285C8F7B485541EC51B8FEAABE5041713D0A7759485541000000F0A8BE5041333333733C4855419A99996995BE5041000000203B485541D3049A3D95BE5041B851451D3B485541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>129881 - 3562421
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000009000000C3F5282C96BE50417B14AE9759485541AE47E14A98BE50410AD7A33078485541AE47E1CA98BE5041A4703DBA784855419A999969ADBE5041F6285C8F7B485541EC51B8FEAABE5041713D0A7759485541000000F0A8BE5041333333733C4855419A99996995BE5041000000203B48554152B81E1594BE5041AE47E10A3B485541C3F5282C96BE50417B14AE9759485541
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000001C6EC99796BE504152CBB360554855411C3B9C2295BE50415DB4981B3B485541D4049A3D95BE5041B851451D3B485541C9FD4A2095BE5041E53CB2163B48554152B81E1594BE5041AE47E10A3B48554154F1FC7294BE5041C8A6C9D74048554125A0C1AC94BE50419CD8018D434855417810402496BE50416DB8FEFC58485541CB80BE9B97BE5041401B6FE870485541AE47E14A98BE50410AD7A33078485541AE47E1CA98BE5041A4703DBA784855414D4278D998BE5041DF4CE73D784855411C6EC99796BE504152CBB36055485541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>129881 - 3562424
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000009000000C3F5282C96BE50417B14AE9759485541AE47E14A98BE50410AD7A33078485541AE47E1CA98BE5041A4703DBA784855419A999969ADBE5041F6285C8F7B485541EC51B8FEAABE5041713D0A7759485541000000F0A8BE5041333333733C4855419A99996995BE5041000000203B48554152B81E1594BE5041AE47E10A3B485541C3F5282C96BE50417B14AE9759485541
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000D3049A3D95BE5041B851451D3B4855411C3B9C2295BE50415DB4981B3B4855410693135D98BE50410AEC06BC704855414D4278D998BE5041DF4CE73D78485541143AB9D398BE50410BB1DF6E784855414D4278D998BE5041EB0153CE784855419A999969ADBE5041F6285C8F7B485541EC51B8FEAABE5041713D0A7759485541000000F0A8BE5041333333733C4855419A99996995BE5041000000203B485541D3049A3D95BE5041B851451D3B485541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>414 - 2975038
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000E00000014AE4721856850411F85EB914E3255410AD7A300886850413D0AD7933E32554185EB51A88A6850410AD7A3D02F325541AE47E15A7F685041A4703DDA32325541295C8F0278685041C3F528FC343255418FC2F5A8616850419A9999793B325541C3F5284C5E685041000000703C3255415C8FC2C559685041000000A05532554114AE47D154685041E17A142E71325541A4703D3A6268504114AE47B1683255415C8FC25570685041295C8FB25F3255419A9999297268504185EB51885E325541713D0A778268504114AE47615D32554114AE4721856850411F85EB914E325541
+</a>
+
+<b>
+010600000001000000010300000001000000070000002136520C83685041ED1728DC31325541315311AF7F685041110EE2E440325541FF87F7F080685041E36B3377413255413C4C442287685041AC2410C3303255419BC2C211876850412CBD7FC730325541DED34519836850410E09ADD8313255412136520C83685041ED1728DC31325541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>414 - 3654744
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000E00000014AE4721856850411F85EB914E3255410AD7A300886850413D0AD7933E32554185EB51A88A6850410AD7A3D02F325541AE47E15A7F685041A4703DDA32325541295C8F0278685041C3F528FC343255418FC2F5A8616850419A9999793B325541C3F5284C5E685041000000703C3255415C8FC2C559685041000000A05532554114AE47D154685041E17A142E71325541A4703D3A6268504114AE47B1683255415C8FC25570685041295C8FB25F3255419A9999297268504185EB51885E325541713D0A778268504114AE47615D32554114AE4721856850411F85EB914E325541
+</a>
+
+<b>
+010600000001000000010300000001000000070000002136520C83685041ED1728DC31325541315311AF7F685041110EE2E440325541FF87F7F080685041E36B3377413255413C4C442287685041AC2410C3303255419BC2C211876850412CBD7FC730325541DED34519836850410E09ADD8313255412136520C83685041ED1728DC31325541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>880 - 2975626
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A000000E17A147E576950413D0AD7D34A2C55413D0AD7531E695041C3F5282C5B2C554114AE47311F69504152B81E955E2C554133333303246950417B14AE57672C5541713D0A6725695041E17A14BE672C55411F85EBF138695041F6285CAF5D2C5541333333C3486950413D0AD783562C5541C3F5281C586950413D0AD7834F2C55418FC2F5A858695041713D0A274E2C5541E17A147E576950413D0AD7D34A2C5541
+</a>
+
+<b>
+010600000001000000010300000001000000060000005F9A1A8F22695041C9216CB3642C55411A94BBFA43695041BD4B3F65552C554128356DCA42695041377CEEA6532C5541E48884C73F695041CAECF034542C5541B7156C3E21695041B11F874F622C55415F9A1A8F22695041C9216CB3642C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>880 - 3659069
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A000000E17A147E576950413D0AD7D34A2C55413D0AD7531E695041C3F5282C5B2C554114AE47311F69504152B81E955E2C554133333303246950417B14AE57672C5541713D0A6725695041E17A14BE672C55411F85EBF138695041F6285CAF5D2C5541333333C3486950413D0AD783562C5541C3F5281C586950413D0AD7834F2C55418FC2F5A858695041713D0A274E2C5541E17A147E576950413D0AD7D34A2C5541
+</a>
+
+<b>
+010600000001000000010300000001000000060000005F9A1A8F22695041C9216CB3642C55411A94BBFA43695041BD4B3F65552C554128356DCA42695041377CEEA6532C5541E48884C73F695041CAECF034542C5541B7156C3E21695041B11F874F622C55415F9A1A8F22695041C9216CB3642C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>4283 - 3125175
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001A000000A4703DBAFC7350418FC2F5A8DFFF5441CDCCCC7CFD7350413D0AD7B3DAFF54417B14AE970174504100000090DBFF544114AE4731047450410AD7A390D5FF5441B81E856B0674504114AE4761D0FF54410AD7A3200874504166666656CDFF54419A9999090B7450417B14AEA7C9FF54417B14AEB70E7450410AD7A360C5FF54418FC2F5681274504133333343C1FF5441F6285C0F1674504114AE4771BDFF5441AE47E18A16745041000000F0BCFF544185EB51480A745041D7A3706DB2FF5441A4703D1A03745041EC51B8DEC0FF544152B81EC50174504166666626C3FF5441D7A3705DFD735041EC51B80ECCFF5441F6285C7FF573504166666656D7FF5441AE47E11AF0735041D7A3701DE1FF544133333323F87350411F85EB41E3FF54413D0AD753F8735041AE47E1FAECFF5441C3F5287CF8735041D7A370DDEDFF5441F6285C4FFB7350410AD7A3C0EDFF5441C3F5288CFB735041295C8F62EBFF5441B81E85DBFB73504114AE4751E8FF54410AD7A330FC7350415C8FC2F5E4FF544133333373FC735041E17A146EE2FF5441A4703DBAFC7350418FC2F5A8DFFF5441
+</a>
+
+<b>
+0106000000010000000103000000010000003C0000009A9999090B7450417B14AEA7C9FF54410AD7A3200874504166666656CDFF5441B81E856B0674504114AE4761D0FF544114AE4731047450410AD7A390D5FF54417B14AE970174504100000090DBFF5441CDCCCC7CFD7350413D0AD7B3DAFF5441024E4C8BFC7350417D96887DE1FF54411F40EDC2FB7350412753A244E9FF54411FE76A38FB7350413E8705A3EEFF544185EB51F8FA735041F6285C1FF1FF5441B81E85DBFA735041E17A145EF3FF5441F6285CCFFA735041EC51B84EF4FF544114AE47C1FA73504148E17A84F6FF544185EB51B8FA735041713D0AF7F7FF54413D0AD773FC735041F6285C7FFBFF54419A9999C9FB7350415C8FC255FFFF54419A999969FD735041EC51B80E04005541EC51B85EFE7350417B14AEF707005541000000A0FF7350419A9999190C005541B81E859BFF7350415C8FC22510005541B81E85EBFF7350416666669614005541713D0A3700745041E17A143E1700554148E17A54FF7350415C8FC2251D0055411F85EBA1FD735041D7A3709D20005541F6285CBFFC735041F6285C8F25005541F6285CBFFC735041713D0A072900554152B81EE5FC7350418FC2F5582C005541C3F5287CFD7350416666669631005541AE47E1DAFD735041666666E63600554148E17A44FD73504185EB51683B005541295C8F5209745041F6285C7F36005541333333C325745041D7A370CD2A0055411F85EB512674504152B81E952A005541B81E85BB26745041B81E856B2A005541AE47E19A26745041EC51B81E2800554152B81EB526745041295C8FC225005541C3F5281C277450415C8FC275220055419A99993927745041EC51B82E21005541713D0AB7287450411F85EBA11C00554114AE47B12B74504114AE4791160055417B14AE17327450410AD7A39009005541C3F5289C32745041B81E85EB08005541C3F5287C34745041E17A144E05005541295C8FD235745041F6285CCF0200554114AE47013774504114AE477100005541666666063974504152B81EE5FCFF5441F6285CDF3A74504148E17AA4FAFF5441CDCCCC9C3C745041A4703D3AF9FF54419A9999393F74504148E17A74F7FF544114AE47F13E7450413D0AD7F3F6FF54418FC2F5A83074504148E17A44E9FF5441EC51B85E3B74504148E17A14DDFF5441A4703D8A3B745041333333E3DCFF5441295C8FD22D745041D7A370DDD0FF5441666666461B745041F6285CFFC0FF5441AE47E18A16745041000000F0BCFF5441F6285C0F1674504114AE4771BDFF54418FC2F5681274504133333343C1FF54417B14AEB70E7450410AD7A360C5FF54419A9999090B7450417B14AEA7C9FF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>4283 - 5311234
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001A000000A4703DBAFC7350418FC2F5A8DFFF5441CDCCCC7CFD7350413D0AD7B3DAFF54417B14AE970174504100000090DBFF544114AE4731047450410AD7A390D5FF5441B81E856B0674504114AE4761D0FF54410AD7A3200874504166666656CDFF54419A9999090B7450417B14AEA7C9FF54417B14AEB70E7450410AD7A360C5FF54418FC2F5681274504133333343C1FF5441F6285C0F1674504114AE4771BDFF5441AE47E18A16745041000000F0BCFF544185EB51480A745041D7A3706DB2FF5441A4703D1A03745041EC51B8DEC0FF544152B81EC50174504166666626C3FF5441D7A3705DFD735041EC51B80ECCFF5441F6285C7FF573504166666656D7FF5441AE47E11AF0735041D7A3701DE1FF544133333323F87350411F85EB41E3FF54413D0AD753F8735041AE47E1FAECFF5441C3F5287CF8735041D7A370DDEDFF5441F6285C4FFB7350410AD7A3C0EDFF5441C3F5288CFB735041295C8F62EBFF5441B81E85DBFB73504114AE4751E8FF54410AD7A330FC7350415C8FC2F5E4FF544133333373FC735041E17A146EE2FF5441A4703DBAFC7350418FC2F5A8DFFF5441
+</a>
+
+<b>
+0106000000010000000103000000010000003C0000009A9999090B7450417B14AEA7C9FF54410AD7A3200874504166666656CDFF5441B81E856B0674504114AE4761D0FF544114AE4731047450410AD7A390D5FF54417B14AE970174504100000090DBFF5441CDCCCC7CFD7350413D0AD7B3DAFF5441024E4C8BFC7350417D96887DE1FF54411F40EDC2FB7350412753A244E9FF54411FE76A38FB7350413E8705A3EEFF544185EB51F8FA735041F6285C1FF1FF5441B81E85DBFA735041E17A145EF3FF5441F6285CCFFA735041EC51B84EF4FF544114AE47C1FA73504148E17A84F6FF544185EB51B8FA735041713D0AF7F7FF54413D0AD773FC735041F6285C7FFBFF54419A9999C9FB7350415C8FC255FFFF54419A999969FD735041EC51B80E04005541EC51B85EFE7350417B14AEF707005541000000A0FF7350419A9999190C005541B81E859BFF7350415C8FC22510005541B81E85EBFF7350416666669614005541713D0A3700745041E17A143E1700554148E17A54FF7350415C8FC2251D0055411F85EBA1FD735041D7A3709D20005541F6285CBFFC735041F6285C8F25005541F6285CBFFC735041713D0A072900554152B81EE5FC7350418FC2F5582C005541C3F5287CFD7350416666669631005541AE47E1DAFD735041666666E63600554148E17A44FD73504185EB51683B005541295C8F5209745041F6285C7F36005541333333C325745041D7A370CD2A0055411F85EB512674504152B81E952A005541B81E85BB26745041B81E856B2A005541AE47E19A26745041EC51B81E2800554152B81EB526745041295C8FC225005541C3F5281C277450415C8FC275220055419A99993927745041EC51B82E21005541713D0AB7287450411F85EBA11C00554114AE47B12B74504114AE4791160055417B14AE17327450410AD7A39009005541C3F5289C32745041B81E85EB08005541C3F5287C34745041E17A144E05005541295C8FD235745041F6285CCF0200554114AE47013774504114AE477100005541666666063974504152B81EE5FCFF5441F6285CDF3A74504148E17AA4FAFF5441CDCCCC9C3C745041A4703D3AF9FF54419A9999393F74504148E17A74F7FF544114AE47F13E7450413D0AD7F3F6FF54418FC2F5A83074504148E17A44E9FF5441EC51B85E3B74504148E17A14DDFF5441A4703D8A3B745041333333E3DCFF5441295C8FD22D745041D7A370DDD0FF5441666666461B745041F6285CFFC0FF5441AE47E18A16745041000000F0BCFF5441F6285C0F1674504114AE4771BDFF54418FC2F5681274504133333343C1FF54417B14AEB70E7450410AD7A360C5FF54419A9999090B7450417B14AEA7C9FF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>4291 - 1686462
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+01060000000100000001030000000200000015000000E17A144E61645041A4703D7ACD0455417B14AE775C645041AE47E1EADA045541A4703D9A506450418FC2F588D70455410AD7A3804C6450418FC2F5C8E2045541666666E64464504152B81E35E004554114AE4711396450418FC2F548DC04554185EB51382B64504148E17A2403055541E17A149E3E645041A4703DBA090555415C8FC2654A645041A4703DBA0D05554152B81E5557645041EC51B81E120555411F85EBC1636450419A999929EF045541C3F5289C69645041333333B3DE0455418FC2F5386F6450410AD7A3B0CE045541B81E85FB686450415C8FC215CD04554152B81EC56864504148E17A74D30455410AD7A3C063645041C3F5289CD20455411F85EB41646450410AD7A380D0045541A4703D9A646450419A9999E9CE0455418FC2F5A864645041E17A14BECD0455413D0AD7036364504133333393CD045541E17A144E61645041A4703D7ACD0455410E000000666666B658645041D7A3700DE8045541713D0AD75A645041713D0A57E8045541B81E85EB5B645041C3F5287CF0045541EC51B83E5864504133333393FA045541AE47E18A55645041A4703DAAFC04554148E17AB453645041295C8F22FD045541000000C0506450418FC2F528FC045541D7A370CD526450419A999949F60455417B14AE275264504166666606F5045541CDCCCC8C52645041B81E851BF2045541295C8FE253645041E17A146EEE04554133333343566450415C8FC295EB045541A4703D6A57645041CDCCCCACE9045541666666B658645041D7A3700DE8045541
+</a>
+
+<b>
+010600000001000000010300000001000000190000005C8FC2654A645041A4703DBA0D05554152B81E5557645041EC51B81E120555411F85EBC1636450419A999929EF045541C3F5289C69645041333333B3DE0455418FC2F5386F6450410AD7A3B0CE045541B81E85FB686450415C8FC215CD04554152B81EC56864504148E17A74D30455410AD7A3C063645041C3F5289CD20455411F85EB41646450410AD7A380D0045541A4703D9A646450419A9999E9CE0455418FC2F5A864645041E17A14BECD0455413D0AD7036364504133333393CD045541E17A144E61645041A4703D7ACD0455417B14AE775C645041AE47E1EADA04554179A816F356645041510C4472EA045541A4703D6A57645041CDCCCCACE9045541666666B658645041D7A3700DE8045541713D0AD75A645041713D0A57E8045541B81E85EB5B645041C3F5287CF0045541EC51B83E5864504133333393FA045541AE47E18A55645041A4703DAAFC04554148E17AB453645041295C8F22FD045541B91A1F0052645041D2790496FC045541020EB0A15064504100A37131FC0455415C8FC2654A645041A4703DBA0D055541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>4291 - 3402280
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+01060000000100000001030000000200000015000000E17A144E61645041A4703D7ACD0455417B14AE775C645041AE47E1EADA045541A4703D9A506450418FC2F588D70455410AD7A3804C6450418FC2F5C8E2045541666666E64464504152B81E35E004554114AE4711396450418FC2F548DC04554185EB51382B64504148E17A2403055541E17A149E3E645041A4703DBA090555415C8FC2654A645041A4703DBA0D05554152B81E5557645041EC51B81E120555411F85EBC1636450419A999929EF045541C3F5289C69645041333333B3DE0455418FC2F5386F6450410AD7A3B0CE045541B81E85FB686450415C8FC215CD04554152B81EC56864504148E17A74D30455410AD7A3C063645041C3F5289CD20455411F85EB41646450410AD7A380D0045541A4703D9A646450419A9999E9CE0455418FC2F5A864645041E17A14BECD0455413D0AD7036364504133333393CD045541E17A144E61645041A4703D7ACD0455410E000000666666B658645041D7A3700DE8045541713D0AD75A645041713D0A57E8045541B81E85EB5B645041C3F5287CF0045541EC51B83E5864504133333393FA045541AE47E18A55645041A4703DAAFC04554148E17AB453645041295C8F22FD045541000000C0506450418FC2F528FC045541D7A370CD526450419A999949F60455417B14AE275264504166666606F5045541CDCCCC8C52645041B81E851BF2045541295C8FE253645041E17A146EEE04554133333343566450415C8FC295EB045541A4703D6A57645041CDCCCCACE9045541666666B658645041D7A3700DE8045541
+</a>
+
+<b>
+010600000001000000010300000001000000190000005C8FC2654A645041A4703DBA0D05554152B81E5557645041EC51B81E120555411F85EBC1636450419A999929EF045541C3F5289C69645041333333B3DE0455418FC2F5386F6450410AD7A3B0CE045541B81E85FB686450415C8FC215CD04554152B81EC56864504148E17A74D30455410AD7A3C063645041C3F5289CD20455411F85EB41646450410AD7A380D0045541A4703D9A646450419A9999E9CE0455418FC2F5A864645041E17A14BECD0455413D0AD7036364504133333393CD045541E17A144E61645041A4703D7ACD0455417B14AE775C645041AE47E1EADA04554179A816F356645041510C4472EA045541A4703D6A57645041CDCCCCACE9045541666666B658645041D7A3700DE8045541713D0AD75A645041713D0A57E8045541B81E85EB5B645041C3F5287CF0045541EC51B83E5864504133333393FA045541AE47E18A55645041A4703DAAFC04554148E17AB453645041295C8F22FD045541B91A1F0052645041D2790496FC045541020EB0A15064504100A37131FC0455415C8FC2654A645041A4703DBA0D055541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>35801 - 2959918
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000011000000C3F5285C608C5041C3F5284C76065541EC51B8BE528C5041F6285CEF7D0655411F85EB81528C5041333333337F06554166666636588C5041A4703D2A86065541333333D35F8C5041C3F5288C8B06554148E17AB4608C5041B81E852B8C065541EC51B8CE5F8C504152B81E758F06554114AE4771608C5041B81E85DB900655417B14AE57688C5041A4703DAA9406554100000030768C5041A4703D4A9A0655410AD7A370778C504185EB51B899065541EC51B8DE7C8C50410AD7A3108A0655417B14AE47828C50419A9999797A065541CDCCCCBC818C50418FC2F50879065541EC51B89E6F8C5041713D0AB76E06554114AE47E16D8C504152B81EB56E065541C3F5285C608C5041C3F5284C76065541
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000C2B3BF19748C504156B0EBB596065541737BD6F0758C50411CEB00539706554137B24608788C504109F12403980655410D3CEB27788C504175A0EAA79706554174915E5F7C8C5041408DCC7F8B06554127327A33818C50417F8C88957D0655417B14AE47828C50419A9999797A065541CDCCCCBC818C50418FC2F508790655415AB36D80788C5041A7B22DC673065541EC51B89E6F8C5041713D0AB76E06554114AE47E16D8C504152B81EB56E065541EA044C125E8C50413A98CE94770655413C7459B2548C5041CB3716D77C065541EC51B8BE528C5041F6285CEF7D0655411F85EB81528C5041333333337F0655414BB7C701568C5041EA37EB788306554166666636588C5041A4703D2A86065541DF0192405C8C50414D157605890655411BE0D6A45F8C50415E55616B8B06554148E17AB4608C5041B81E852B8C0655417715E47A608C50416D8C56F28C0655411F49D740658C504173A75D8D8F065541EABAFA13678C5041F8095D8C9006554191C47261688C5041D8056542910655410FE865916A8C504123260E74920655416F6A5006718C50415712004E9506554185B6B108738C50418FE91C3996065541529E31C7738C5041B3BA2F9096065541C2B3BF19748C504156B0EBB596065541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>35801 - 3620000
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000011000000C3F5285C608C5041C3F5284C76065541EC51B8BE528C5041F6285CEF7D0655411F85EB81528C5041333333337F06554166666636588C5041A4703D2A86065541333333D35F8C5041C3F5288C8B06554148E17AB4608C5041B81E852B8C065541EC51B8CE5F8C504152B81E758F06554114AE4771608C5041B81E85DB900655417B14AE57688C5041A4703DAA9406554100000030768C5041A4703D4A9A0655410AD7A370778C504185EB51B899065541EC51B8DE7C8C50410AD7A3108A0655417B14AE47828C50419A9999797A065541CDCCCCBC818C50418FC2F50879065541EC51B89E6F8C5041713D0AB76E06554114AE47E16D8C504152B81EB56E065541C3F5285C608C5041C3F5284C76065541
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000C2B3BF19748C504156B0EBB596065541737BD6F0758C50411CEB00539706554137B24608788C504109F12403980655410D3CEB27788C504175A0EAA79706554174915E5F7C8C5041408DCC7F8B06554127327A33818C50417F8C88957D0655417B14AE47828C50419A9999797A065541CDCCCCBC818C50418FC2F508790655415AB36D80788C5041A7B22DC673065541EC51B89E6F8C5041713D0AB76E06554114AE47E16D8C504152B81EB56E065541EA044C125E8C50413A98CE94770655413C7459B2548C5041CB3716D77C065541EC51B8BE528C5041F6285CEF7D0655411F85EB81528C5041333333337F0655414BB7C701568C5041EA37EB788306554166666636588C5041A4703D2A86065541DF0192405C8C50414D157605890655411BE0D6A45F8C50415E55616B8B06554148E17AB4608C5041B81E852B8C0655417715E47A608C50416D8C56F28C0655411F49D740658C504173A75D8D8F065541EABAFA13678C5041F8095D8C9006554191C47261688C5041D8056542910655410FE865916A8C504123260E74920655416F6A5006718C50415712004E9506554185B6B108738C50418FE91C3996065541529E31C7738C5041B3BA2F9096065541C2B3BF19748C504156B0EBB596065541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>35849 - 3106543
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000F000000AE47E16A308E50417B14AE17C60855415C8FC275308E50415C8FC2E5CA0855419A999979308E5041CDCCCC2CCD08554152B81E85308E50411F85EB11D3085541D7A3708D308E504185EB5148D6085541295C8FA2308E5041713D0A47E0085541333333834E8E50413D0AD7A3E4085541D7A3702D6F8E50410AD7A370E90855413D0AD7036E8E5041AE47E14ADF08554148E17AA46D8E50415C8FC205DC0855415C8FC2F56C8E50419A999909D60855411F85EBB16C8E5041A4703DBAD3085541333333236C8E504185EB51D8CE08554185EB51E84C8E504148E17A44CA085541AE47E16A308E50417B14AE17C6085541
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000009E0BBF794D8E5041D5B1CB59CA0855410C148A79428E5041B750D5B3C808554199BD1259378E5041B1CAAC1BC7085541AE47E16A308E50417B14AE17C6085541969BCD77308E5041F9A4FA1BCC08554149AC8485308E50415C2E4939D3085541A50EA896308E504181E3E8A4DA085541A8D85F67348E50419DA7D02FDB085541E6C04DB83D8E5041B0BEFD82DC0855411A4CD287488E504118E3930CDE085541555C752B498E504151CFBB80DB08554116915F874A8E504102A6D216D60855419E0BBF794D8E5041D5B1CB59CA085541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>35849 - 3310590
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000F000000AE47E16A308E50417B14AE17C60855415C8FC275308E50415C8FC2E5CA0855419A999979308E5041CDCCCC2CCD08554152B81E85308E50411F85EB11D3085541D7A3708D308E504185EB5148D6085541295C8FA2308E5041713D0A47E0085541333333834E8E50413D0AD7A3E4085541D7A3702D6F8E50410AD7A370E90855413D0AD7036E8E5041AE47E14ADF08554148E17AA46D8E50415C8FC205DC0855415C8FC2F56C8E50419A999909D60855411F85EBB16C8E5041A4703DBAD3085541333333236C8E504185EB51D8CE08554185EB51E84C8E504148E17A44CA085541AE47E16A308E50417B14AE17C6085541
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000009E0BBF794D8E5041D5B1CB59CA0855410C148A79428E5041B750D5B3C808554199BD1259378E5041B1CAAC1BC7085541AE47E16A308E50417B14AE17C6085541969BCD77308E5041F9A4FA1BCC08554149AC8485308E50415C2E4939D3085541A50EA896308E504181E3E8A4DA085541A8D85F67348E50419DA7D02FDB085541E6C04DB83D8E5041B0BEFD82DC0855411A4CD287488E504118E3930CDE085541555C752B498E504151CFBB80DB08554116915F874A8E504102A6D216D60855419E0BBF794D8E5041D5B1CB59CA085541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>36041 - 3160132
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001C000000A4703D3A9E8A50417B14AE775103554148E17AD49D8A504148E17AA454035541A4703D2A9D8A5041A4703DFA59035541E17A148E9E8A5041AE47E15A690355415C8FC2859F8A5041EC51B8BE6803554152B81E65A38A5041D7A370DD750355410AD7A3A0A18A5041AE47E14A770355419A9999E9A28A5041D7A3701D7D035541295C8FF2AA8A50410AD7A3A08F03554152B81EE5AF8A50410AD7A3309C03554185EB5148B38A5041B81E85CBA403554166666696B88A50413D0AD723A60355415C8FC265B48A50417B14AE779A03554133333393B28A50417B14AE5795035541AE47E17AAF8A50413D0AD7338A035541F6285C9FAD8A5041295C8F52840355419A9999A9AB8A5041A4703DCA7D0355415C8FC2C5A98A5041713D0A7777035541C3F528FCA78A504148E17AE471035541F6285C0FA68A504152B81E656B035541D7A3709DA48A5041AE47E17A65035541AE47E17AA38A5041D7A3701D610355417B14AEA7A28A5041EC51B80E5D03554148E17AD4A18A5041000000A057035541713D0A97A18A5041A4703D4A540355415C8FC295A18A50415C8FC265510355410AD7A3509F8A5041EC51B8BE50035541A4703D3A9E8A50417B14AE7751035541
+</a>
+
+<b>
+010600000001000000010300000001000000190000009A9999E9A28A5041D7A3701D7D035541295C8FF2AA8A50410AD7A3A08F035541CAA9B69CB28A5041BF70A31BA3035541216883FCB68A5041952DD8B4A10355418B154401B58A504184AD40489C03554149E68A88B28A504121F65131950355411A8421ACAF8A5041F6DA25FB8A0355419E710E76AF8A504102EBCF358A035541FA442041AB8A50415D909C6C7C035541BED0EED9A78A504103FAAA717103554165F8F947A68A50416F75B32B6C03554112FFA0E0A58A5041918401B66A035541165BCED1A48A504190943C516603554117BFC613A48A504147935E80630355411D614A85A38A50419298765A6103554113303DA9A28A5041653463165D0355413C4C39FBA18A504143471F9F58035541E1905BD4A18A504166DD4C9E57035541CB02DCA8A18A50414711768955035541C089FC96A18A5041F3E1462B54035541C12F6F96A18A50416302DBEB520355410F7D61FF9D8A50414335CA4E530355410F9842309D8A5041859F9AD35903554182E998809E8A50410DDC9043690355419A9999E9A28A5041D7A3701D7D035541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>36041 - 3298375
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001C000000A4703D3A9E8A50417B14AE775103554148E17AD49D8A504148E17AA454035541A4703D2A9D8A5041A4703DFA59035541E17A148E9E8A5041AE47E15A690355415C8FC2859F8A5041EC51B8BE6803554152B81E65A38A5041D7A370DD750355410AD7A3A0A18A5041AE47E14A770355419A9999E9A28A5041D7A3701D7D035541295C8FF2AA8A50410AD7A3A08F03554152B81EE5AF8A50410AD7A3309C03554185EB5148B38A5041B81E85CBA403554166666696B88A50413D0AD723A60355415C8FC265B48A50417B14AE779A03554133333393B28A50417B14AE5795035541AE47E17AAF8A50413D0AD7338A035541F6285C9FAD8A5041295C8F52840355419A9999A9AB8A5041A4703DCA7D0355415C8FC2C5A98A5041713D0A7777035541C3F528FCA78A504148E17AE471035541F6285C0FA68A504152B81E656B035541D7A3709DA48A5041AE47E17A65035541AE47E17AA38A5041D7A3701D610355417B14AEA7A28A5041EC51B80E5D03554148E17AD4A18A5041000000A057035541713D0A97A18A5041A4703D4A540355415C8FC295A18A50415C8FC265510355410AD7A3509F8A5041EC51B8BE50035541A4703D3A9E8A50417B14AE7751035541
+</a>
+
+<b>
+010600000001000000010300000001000000190000009A9999E9A28A5041D7A3701D7D035541295C8FF2AA8A50410AD7A3A08F035541CAA9B69CB28A5041BF70A31BA3035541216883FCB68A5041952DD8B4A10355418B154401B58A504184AD40489C03554149E68A88B28A504121F65131950355411A8421ACAF8A5041F6DA25FB8A0355419E710E76AF8A504102EBCF358A035541FA442041AB8A50415D909C6C7C035541BED0EED9A78A504103FAAA717103554165F8F947A68A50416F75B32B6C03554112FFA0E0A58A5041918401B66A035541165BCED1A48A504190943C516603554117BFC613A48A504147935E80630355411D614A85A38A50419298765A6103554113303DA9A28A5041653463165D0355413C4C39FBA18A504143471F9F58035541E1905BD4A18A504166DD4C9E57035541CB02DCA8A18A50414711768955035541C089FC96A18A5041F3E1462B54035541C12F6F96A18A50416302DBEB520355410F7D61FF9D8A50414335CA4E530355410F9842309D8A5041859F9AD35903554182E998809E8A50410DDC9043690355419A9999E9A28A5041D7A3701D7D035541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>37014 - 2913804
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000180000005C8FC265899F50419A9999C9FD145541CDCCCC1C8F9F5041333333E3FF1455410AD7A3F0939F504152B81EC50015554114AE4751A79F50411F85EBB102155541F6285CDFA79F5041F6285C7F01155541C3F5283C7B9F504133333373F51455410AD7A3607A9F50419A9999F9F514554185EB51A8789F5041AE47E18AF5145541A4703DBA739F504148E17A44F4145541AE47E1EA6F9F5041B81E859BF2145541E17A140E679F504185EB5198EF14554148E17A14609F5041AE47E14AED145541B81E850B559F50415C8FC255E8145541F6285C1F4F9F5041295C8FF2E6145541C3F5288C549F50418FC2F5C8EA1455413D0AD7235A9F50413D0AD713EE14554166666666609F5041C3F5280CF114554114AE4711669F5041666666D6F214554114AE4771729F5041000000F0F614554133333313799F50413D0AD793F81455413D0AD793789F504100000090F9145541EC51B82E7B9F5041D7A3701DFA1455410AD7A360819F5041C3F5289CFB1455415C8FC265899F50419A9999C9FD145541
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000D7A3706D9A9F50418FC2F588131555413D0AD753AA9F50418FC2F5080515554114AE4751A79F50411F85EBB102155541F92002C1A29F5041448DDC3D02155541F4EA3E5C999F504113B2F74E01155541BEC131EE919F5041FE681367001555415726C7D38E9F504186BB9AEAFF14554144A61CC5899F5041CB2FA3ECFD14554152142BB97B9F5041E5D0D93EFA1455414F2E3C95789F5041C632388DF9145541F79A99E9789F50417EE131A2F81455414E3D4C5C689F50415BFFE298F31455415C930B84609F5041E8E48515F11455415F219FE2599F5041399371EDED14554153ACF716519F50414568CC56E8145541D730DF004E9F504189CD957CE61455413D170A71499F5041F70DA581E414554185EB5188419F50413D0AD7B3E0145541E17A14FE3B9F5041CDCCCC3CEB145541CB0FC448439F504129A5C871ED145541262EBD8E559F50413D9FCDEEF3145541C557CB35619F504131F48C2BF81455410E17B227699F5041F1836AF3FA1455411C01690A709F5041611E7C77FD1455417FC27B467E9F50418430F65B03155541AD517869879F5041D58ACF76071555411141492A8E9F5041DF0752B50A155541DC4DA930949F50419687E1E20D155541D7A3706D9A9F50418FC2F58813155541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>37014 - 3800659
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000180000005C8FC265899F50419A9999C9FD145541CDCCCC1C8F9F5041333333E3FF1455410AD7A3F0939F504152B81EC50015554114AE4751A79F50411F85EBB102155541F6285CDFA79F5041F6285C7F01155541C3F5283C7B9F504133333373F51455410AD7A3607A9F50419A9999F9F514554185EB51A8789F5041AE47E18AF5145541A4703DBA739F504148E17A44F4145541AE47E1EA6F9F5041B81E859BF2145541E17A140E679F504185EB5198EF14554148E17A14609F5041AE47E14AED145541B81E850B559F50415C8FC255E8145541F6285C1F4F9F5041295C8FF2E6145541C3F5288C549F50418FC2F5C8EA1455413D0AD7235A9F50413D0AD713EE14554166666666609F5041C3F5280CF114554114AE4711669F5041666666D6F214554114AE4771729F5041000000F0F614554133333313799F50413D0AD793F81455413D0AD793789F504100000090F9145541EC51B82E7B9F5041D7A3701DFA1455410AD7A360819F5041C3F5289CFB1455415C8FC265899F50419A9999C9FD145541
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000D7A3706D9A9F50418FC2F588131555413D0AD753AA9F50418FC2F5080515554114AE4751A79F50411F85EBB102155541F92002C1A29F5041448DDC3D02155541F4EA3E5C999F504113B2F74E01155541BEC131EE919F5041FE681367001555415726C7D38E9F504186BB9AEAFF14554144A61CC5899F5041CB2FA3ECFD14554152142BB97B9F5041E5D0D93EFA1455414F2E3C95789F5041C632388DF9145541F79A99E9789F50417EE131A2F81455414E3D4C5C689F50415BFFE298F31455415C930B84609F5041E8E48515F11455415F219FE2599F5041399371EDED14554153ACF716519F50414568CC56E8145541D730DF004E9F504189CD957CE61455413D170A71499F5041F70DA581E414554185EB5188419F50413D0AD7B3E0145541E17A14FE3B9F5041CDCCCC3CEB145541CB0FC448439F504129A5C871ED145541262EBD8E559F50413D9FCDEEF3145541C557CB35619F504131F48C2BF81455410E17B227699F5041F1836AF3FA1455411C01690A709F5041611E7C77FD1455417FC27B467E9F50418430F65B03155541AD517869879F5041D58ACF76071555411141492A8E9F5041DF0752B50A155541DC4DA930949F50419687E1E20D155541D7A3706D9A9F50418FC2F58813155541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>37200 - 2998217
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000B00000014AE4741259F5041C3F5282CD0105541AE47E16A0B9F504185EB51E8CB105541295C8F52EF9E504152B81E35C71055419A999959EE9E5041CDCCCCDCC810554152B81E85ED9E50417B14AE47CA1055418FC2F518F29E504185EB5148CC1055418FC2F5B8F69E5041666666F6CC1055410AD7A350FC9E5041295C8FF2CE10554148E17AE4029F5041E17A145ED2105541B81E85AB249F504133333303D610554114AE4741259F5041C3F5282CD0105541
+</a>
+
+<b>
+01060000000100000001030000000100000017000000FBD9993AEE9E50417BBB26D4C810554152B81E85ED9E50417B14AE47CA1055418FC2F518F29E504185EB5148CC1055418FC2F5B8F69E5041666666F6CC1055410AD7A350FC9E5041295C8FF2CE105541FD21EB46019F504111000C87D110554148E17AE4029F5041E17A145ED210554167F7360F079F5041AC8C31D1D210554107FA0D7D059F5041B5B76BE7D1105541A9D4DD24049F5041370012D4D0105541E3DC0C99029F504100892F39D0105541FD521252019F504141AD82AFCF105541B0F676D7FF9E5041D9DAE17BCF105541FAC73A29FE9E50413A915EADCE1055412407D5BFFC9E504134753AABCD10554118CF8CBBFA9E5041952BB7DCCC1055410B9744B7F89E50415EB4D441CC1055413F834F29F69E504137068784CB10554121827247F49E504147CF1B62CB1055418DE55F54F29E5041B94E2D71CA105541F8484D61F09E5041E9A9EB09CA105541853E6429EE9E50413B97D35DC9105541FBD9993AEE9E50417BBB26D4C8105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>37200 - 3379511
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000B00000014AE4741259F5041C3F5282CD0105541AE47E16A0B9F504185EB51E8CB105541295C8F52EF9E504152B81E35C71055419A999959EE9E5041CDCCCCDCC810554152B81E85ED9E50417B14AE47CA1055418FC2F518F29E504185EB5148CC1055418FC2F5B8F69E5041666666F6CC1055410AD7A350FC9E5041295C8FF2CE10554148E17AE4029F5041E17A145ED2105541B81E85AB249F504133333303D610554114AE4741259F5041C3F5282CD0105541
+</a>
+
+<b>
+01060000000100000001030000000100000017000000FBD9993AEE9E50417BBB26D4C810554152B81E85ED9E50417B14AE47CA1055418FC2F518F29E504185EB5148CC1055418FC2F5B8F69E5041666666F6CC1055410AD7A350FC9E5041295C8FF2CE105541FD21EB46019F504111000C87D110554148E17AE4029F5041E17A145ED210554167F7360F079F5041AC8C31D1D210554107FA0D7D059F5041B5B76BE7D1105541A9D4DD24049F5041370012D4D0105541E3DC0C99029F504100892F39D0105541FD521252019F504141AD82AFCF105541B0F676D7FF9E5041D9DAE17BCF105541FAC73A29FE9E50413A915EADCE1055412407D5BFFC9E504134753AABCD10554118CF8CBBFA9E5041952BB7DCCC1055410B9744B7F89E50415EB4D441CC1055413F834F29F69E504137068784CB10554121827247F49E504147CF1B62CB1055418DE55F54F29E5041B94E2D71CA105541F8484D61F09E5041E9A9EB09CA105541853E6429EE9E50413B97D35DC9105541FBD9993AEE9E50417BBB26D4C8105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>37234 - 3073768
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000E000000F6285C1FBE9F50410AD7A39000115541B81E852BB99F5041F6285CEFFD1055419A9999E9AE9F5041000000602F1155418FC2F548B49F50413D0AD72330115541000000E0B99F5041F6285CEF30115541C3F528DCBB9F504185EB5138311155415C8FC2D5D39F504114AE47A134115541AE47E15AD79F504114AE472135115541C3F5281CE09F5041666666E60A11554152B81EA5D59F5041AE47E1DA0B115541295C8FA2CA9F504152B81E350711554185EB5128C59F5041C3F5284C041155410AD7A350C39F50411F85EB5103115541F6285C1FBE9F50410AD7A39000115541
+</a>
+
+<b>
+0106000000010000000103000000010000001800000093B4292BB99F5041ADC414F1FD10554117A335D6B09F50415566AD192611554185152B4AB09F5041BD0BA9BC28115541FC8BE9F7AF9F5041BC0320492A115541C79563EAAE9F50411368445F2F1155412381B951B49F5041322416253011554108498295B89F5041FFAE5BC0301155413EB251EABD9F5041A3092883311155413C6B6AAAC59F50414C7F5B9D321155410AD9906CCC9F504123727093331155418BBBE66DD49F50414317E4B6341155411053A05ED79F504173F9CF21351155411D24AB19E09F50411877D6E40A115541457E1E18D99F504188EF4C8A0B115541827A3CDFD69F50410AFF36BE0B115541CDB752A6D59F5041542CC5DA0B11554174F1115BD09F5041CA42509F09115541D3BEADCFCC9F504198F2492008115541B3A5E0A4CA9F5041FD271936071155410AD7A350C39F50411F85EB5103115541D3A8D20BC19F50416810C11D021155416089B21EBF9F504182781D18011155417AFFB192BC9F50410C44FEBDFF10554193B4292BB99F5041ADC414F1FD105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>37234 - 3370448
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000E000000F6285C1FBE9F50410AD7A39000115541B81E852BB99F5041F6285CEFFD1055419A9999E9AE9F5041000000602F1155418FC2F548B49F50413D0AD72330115541000000E0B99F5041F6285CEF30115541C3F528DCBB9F504185EB5138311155415C8FC2D5D39F504114AE47A134115541AE47E15AD79F504114AE472135115541C3F5281CE09F5041666666E60A11554152B81EA5D59F5041AE47E1DA0B115541295C8FA2CA9F504152B81E350711554185EB5128C59F5041C3F5284C041155410AD7A350C39F50411F85EB5103115541F6285C1FBE9F50410AD7A39000115541
+</a>
+
+<b>
+0106000000010000000103000000010000001800000093B4292BB99F5041ADC414F1FD10554117A335D6B09F50415566AD192611554185152B4AB09F5041BD0BA9BC28115541FC8BE9F7AF9F5041BC0320492A115541C79563EAAE9F50411368445F2F1155412381B951B49F5041322416253011554108498295B89F5041FFAE5BC0301155413EB251EABD9F5041A3092883311155413C6B6AAAC59F50414C7F5B9D321155410AD9906CCC9F504123727093331155418BBBE66DD49F50414317E4B6341155411053A05ED79F504173F9CF21351155411D24AB19E09F50411877D6E40A115541457E1E18D99F504188EF4C8A0B115541827A3CDFD69F50410AFF36BE0B115541CDB752A6D59F5041542CC5DA0B11554174F1115BD09F5041CA42509F09115541D3BEADCFCC9F504198F2492008115541B3A5E0A4CA9F5041FD271936071155410AD7A350C39F50411F85EB5103115541D3A8D20BC19F50416810C11D021155416089B21EBF9F504182781D18011155417AFFB192BC9F50410C44FEBDFF10554193B4292BB99F5041ADC414F1FD105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>37397 - 1732632
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000120000003D0AD763E5A150418FC2F5982BF7544152B81E65E5A15041A4703D8A2AF7544152B81E85E4A15041EC51B8EE29F754415C8FC245DAA1504114AE47512EF75441713D0A57CAA15041295C8F2235F75441D7A3701DC6A15041B81E85BB36F7544148E17A24BCA15041666666863BF75441C3F5286CB7A150419A99998975F754411F85EB41BEA15041EC51B89E75F75441CDCCCC9CD4A15041000000E073F754415C8FC265D7A1504185EB51A873F75441A4703D5AD9A1504114AE478173F75441EC51B80EDCA150417B14AE3767F7544133333383DEA150419A9999E95AF754419A999959E2A150413D0AD77347F75441E17A148EE4A150419A99994939F75441D7A370EDE4A150411F85EB9135F754413D0AD763E5A150418FC2F5982BF75441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000ECDE4ACFE4A1504122D2C9BE36F7544137203963DAA15041F68086A645F754410DFD68DFD7A15041180BEE2E73F7544178DABBBED7A15041B32C61A173F75441777486BDD7A15041722D78B673F75441A4703D5AD9A1504114AE478173F75441EC51B80EDCA150417B14AE3767F7544133333383DEA150419A9999E95AF754419A999959E2A150413D0AD77347F75441E17A148EE4A150419A99994939F75441ECDE4ACFE4A1504122D2C9BE36F75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>37397 - 3481885
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000120000003D0AD763E5A150418FC2F5982BF7544152B81E65E5A15041A4703D8A2AF7544152B81E85E4A15041EC51B8EE29F754415C8FC245DAA1504114AE47512EF75441713D0A57CAA15041295C8F2235F75441D7A3701DC6A15041B81E85BB36F7544148E17A24BCA15041666666863BF75441C3F5286CB7A150419A99998975F754411F85EB41BEA15041EC51B89E75F75441CDCCCC9CD4A15041000000E073F754415C8FC265D7A1504185EB51A873F75441A4703D5AD9A1504114AE478173F75441EC51B80EDCA150417B14AE3767F7544133333383DEA150419A9999E95AF754419A999959E2A150413D0AD77347F75441E17A148EE4A150419A99994939F75441D7A370EDE4A150411F85EB9135F754413D0AD763E5A150418FC2F5982BF75441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000ECDE4ACFE4A1504122D2C9BE36F7544137203963DAA15041F68086A645F754410DFD68DFD7A15041180BEE2E73F7544178DABBBED7A15041B32C61A173F75441777486BDD7A15041722D78B673F75441A4703D5AD9A1504114AE478173F75441EC51B80EDCA150417B14AE3767F7544133333383DEA150419A9999E95AF754419A999959E2A150413D0AD77347F75441E17A148EE4A150419A99994939F75441ECDE4ACFE4A1504122D2C9BE36F75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>38230 - 193329
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000F000000CDCCCCFCCD855041EC51B81EB0055541C3F5285CD48550415C8FC2A5B3055541C3F528BCD685504114AE4711B40555410AD7A330D985504185EB5168B30555410AD7A360DA855041333333A3B1055541B81E850BD1855041B81E858BA9055541D7A3704DC7855041713D0A17A1055541F6285C9FB6855041333333A392055541AE47E1FAB38550418FC2F528900555418FC2F558AE85504114AE476198055541713D0AC7B0855041CDCCCCDC99055541A4703D8ABB85504152B81E35A10555411F85EB81C685504148E17A24A905554133333383CB855041C3F5285CAF055541CDCCCCFCCD855041EC51B81EB0055541
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000AD55EC81C68550415CE47B24A9055541461EF994C9855041A5EC33F6AC05554104513283CB855041C8DC275CAF055541B9F9CCFCCD8550414635B81EB005554155FD830BD18550419323848BA90555419A207F9BCC855041B11BA0B1A5055541A7F2704DC7855041B0FA0A17A105554138606D57BE8550415A81605399055541F6285C9FB6855041333333A392055541AE47E1FAB38550418FC2F528900555412940F658AE855041C6F646619805554156F7AD6FAF855041FB65520B99055541713D0AC7B0855041CDCCCCDC99055541A4703D8ABB85504152B81E35A1055541AD55EC81C68550415CE47B24A9055541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>38230 - 432384
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000F000000CDCCCCFCCD855041EC51B81EB0055541C3F5285CD48550415C8FC2A5B3055541C3F528BCD685504114AE4711B40555410AD7A330D985504185EB5168B30555410AD7A360DA855041333333A3B1055541B81E850BD1855041B81E858BA9055541D7A3704DC7855041713D0A17A1055541F6285C9FB6855041333333A392055541AE47E1FAB38550418FC2F528900555418FC2F558AE85504114AE476198055541713D0AC7B0855041CDCCCCDC99055541A4703D8ABB85504152B81E35A10555411F85EB81C685504148E17A24A905554133333383CB855041C3F5285CAF055541CDCCCCFCCD855041EC51B81EB0055541
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000AD55EC81C68550415CE47B24A9055541461EF994C9855041A5EC33F6AC05554104513283CB855041C8DC275CAF055541B9F9CCFCCD8550414635B81EB005554155FD830BD18550419323848BA90555419A207F9BCC855041B11BA0B1A5055541A7F2704DC7855041B0FA0A17A105554138606D57BE8550415A81605399055541F6285C9FB6855041333333A392055541AE47E1FAB38550418FC2F528900555412940F658AE855041C6F646619805554156F7AD6FAF855041FB65520B99055541713D0AC7B0855041CDCCCCDC99055541A4703D8ABB85504152B81E35A1055541AD55EC81C68550415CE47B24A9055541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>38460 - 3173465
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000D0000008FC2F5084EA050418FC2F5F8941B5541713D0A974EA05041713D0AD79B1B5541E17A14AE4EA05041AE47E1DAAB1B5541F6285CFF4DA05041AE47E12AB71B5541333333F34DA05041CDCCCCACC31B5541E17A14AE4EA05041D7A3703DCE1B5541666666B64FA05041713D0AF7CE1B55413333339357A05041333333C3CC1B55418FC2F55863A0504100000010891B5541C3F5283C5DA050410AD7A3108D1B5541713D0A3759A050415C8FC2F58E1B5541E17A14DE4EA050411F85EB91931B55418FC2F5084EA050418FC2F5F8941B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000E55E4C9D4EA05041717EAC30A01B5541E00D59C14FA050416A6C3A14A01B55419BEE414152A05041331CE0D59F1B5541F954DD9853A05041F00AC076911B55414C82B6E04EA05041513ABF90931B55418FBA55CE4EA050419D1072AC931B5541362B1D0A4EA05041DD1604F7941B55417A44B80A4EA050417048BC0E951B55416D1D91524EA05041B40EC387981B55410EA601964EA050414A3840CA9B1B5541E55E4C9D4EA05041717EAC30A01B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>38460 - 3376885
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000D0000008FC2F5084EA050418FC2F5F8941B5541713D0A974EA05041713D0AD79B1B5541E17A14AE4EA05041AE47E1DAAB1B5541F6285CFF4DA05041AE47E12AB71B5541333333F34DA05041CDCCCCACC31B5541E17A14AE4EA05041D7A3703DCE1B5541666666B64FA05041713D0AF7CE1B55413333339357A05041333333C3CC1B55418FC2F55863A0504100000010891B5541C3F5283C5DA050410AD7A3108D1B5541713D0A3759A050415C8FC2F58E1B5541E17A14DE4EA050411F85EB91931B55418FC2F5084EA050418FC2F5F8941B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000E55E4C9D4EA05041717EAC30A01B5541E00D59C14FA050416A6C3A14A01B55419BEE414152A05041331CE0D59F1B5541F954DD9853A05041F00AC076911B55414C82B6E04EA05041513ABF90931B55418FBA55CE4EA050419D1072AC931B5541362B1D0A4EA05041DD1604F7941B55417A44B80A4EA050417048BC0E951B55416D1D91524EA05041B40EC387981B55410EA601964EA050414A3840CA9B1B5541E55E4C9D4EA05041717EAC30A01B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>42715 - 2986107
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000014000000000000C00DCB5041C3F5288CFA3155411F85EB2103CB5041D7A370CDF83155419A999979FFCA5041A4703D3AF9315541333333A3FDCA5041666666F6F93155417B14AE37FBCA5041295C8F62FB315541D7A370CDF3CA5041CDCCCCBC00325541C3F528DCEECA50411F85EBE103325541295C8FF2F0CA5041F6285C9F043255410AD7A3D0F5CA50419A999919063255410AD7A310FBCA50417B14AE7707325541295C8F9201CB504114AE47F108325541C3F5288C06CB5041D7A370ED09325541C3F528AC0CCB50413D0AD7130B325541666666760FCB50415C8FC2750B32554114AE479113CB50418FC2F5780B325541295C8F721ECB5041AE47E15A0B325541AE47E1FA25CB50411F85EB310B32554114AE473125CB5041CDCCCCDC06325541EC51B8AE23CB5041A4703DEA04325541000000C00DCB5041C3F5288CFA315541
+</a>
+
+<b>
+01060000000100000001030000000100000014000000EC51B86E23CB50411F85EBA116325541AE47E18A26CB504166666636153255419A99997927CB5041C3F5286C13325541F840BCF025CB5041ECC01BFA0A325541C0A00BF51FCB50414BA9AB520B325541C14336F118CB504179B6196A0B3255412AD1B23813CB5041B2C3A5870B325541FA4BB8FC0ECB50418B3A613B0C325541670EFCD00ACB5041E354BD730C325541252E451B06CB504192E17B520C325541A7D8072604CB5041DE3A7DED0B325541E17A14BEFBCA5041AE47E1DA0A3255418FC2F518F9CA5041CDCCCC8C0A325541B81E853BFFCA5041AE47E13A0E32554173F02FBE04CB5041C8AA736314325541E605B92D08CB504175CD64D114325541721445870BCB5041D91247AD1532554141B524DC13CB5041D281170D17325541E1489C321FCB50419F05DFAE18325541EC51B86E23CB50411F85EBA116325541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>42715 - 3701702
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000014000000000000C00DCB5041C3F5288CFA3155411F85EB2103CB5041D7A370CDF83155419A999979FFCA5041A4703D3AF9315541333333A3FDCA5041666666F6F93155417B14AE37FBCA5041295C8F62FB315541D7A370CDF3CA5041CDCCCCBC00325541C3F528DCEECA50411F85EBE103325541295C8FF2F0CA5041F6285C9F043255410AD7A3D0F5CA50419A999919063255410AD7A310FBCA50417B14AE7707325541295C8F9201CB504114AE47F108325541C3F5288C06CB5041D7A370ED09325541C3F528AC0CCB50413D0AD7130B325541666666760FCB50415C8FC2750B32554114AE479113CB50418FC2F5780B325541295C8F721ECB5041AE47E15A0B325541AE47E1FA25CB50411F85EB310B32554114AE473125CB5041CDCCCCDC06325541EC51B8AE23CB5041A4703DEA04325541000000C00DCB5041C3F5288CFA315541
+</a>
+
+<b>
+01060000000100000001030000000100000014000000EC51B86E23CB50411F85EBA116325541AE47E18A26CB504166666636153255419A99997927CB5041C3F5286C13325541F840BCF025CB5041ECC01BFA0A325541C0A00BF51FCB50414BA9AB520B325541C14336F118CB504179B6196A0B3255412AD1B23813CB5041B2C3A5870B325541FA4BB8FC0ECB50418B3A613B0C325541670EFCD00ACB5041E354BD730C325541252E451B06CB504192E17B520C325541A7D8072604CB5041DE3A7DED0B325541E17A14BEFBCA5041AE47E1DA0A3255418FC2F518F9CA5041CDCCCC8C0A325541B81E853BFFCA5041AE47E13A0E32554173F02FBE04CB5041C8AA736314325541E605B92D08CB504175CD64D114325541721445870BCB5041D91247AD1532554141B524DC13CB5041D281170D17325541E1489C321FCB50419F05DFAE18325541EC51B86E23CB50411F85EBA116325541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>42715 - 45009
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000014000000000000C00DCB5041C3F5288CFA3155411F85EB2103CB5041D7A370CDF83155419A999979FFCA5041A4703D3AF9315541333333A3FDCA5041666666F6F93155417B14AE37FBCA5041295C8F62FB315541D7A370CDF3CA5041CDCCCCBC00325541C3F528DCEECA50411F85EBE103325541295C8FF2F0CA5041F6285C9F043255410AD7A3D0F5CA50419A999919063255410AD7A310FBCA50417B14AE7707325541295C8F9201CB504114AE47F108325541C3F5288C06CB5041D7A370ED09325541C3F528AC0CCB50413D0AD7130B325541666666760FCB50415C8FC2750B32554114AE479113CB50418FC2F5780B325541295C8F721ECB5041AE47E15A0B325541AE47E1FA25CB50411F85EB310B32554114AE473125CB5041CDCCCCDC06325541EC51B8AE23CB5041A4703DEA04325541000000C00DCB5041C3F5288CFA315541
+</a>
+
+<b>
+01060000000100000001030000000100000012000000A7D8072604CB5041DE3A7DED0B325541A2FEC84604CB50412054B12A0E3255410B8FE45807CB50411B2EF0090E325541EC9846B40ECB50412054B12A0E325541B7BE214B15CB504123C1501A0E32554138ECE55219CB504123C1501A0E325541E953FB451FCB50411B2EF0090E325541C758B92E26CB50411B2EF0090E3255412F2DD47026CB50417D124A1D0F325541DD9242B126CB5041281DA11D0F325541F840BCF025CB5041ECC01BFA0A325541C0A00BF51FCB50414BA9AB520B325541C14336F118CB504179B6196A0B3255412AD1B23813CB5041B2C3A5870B325541FA4BB8FC0ECB50418B3A613B0C325541670EFCD00ACB5041E354BD730C325541252E451B06CB504192E17B520C325541A7D8072604CB5041DE3A7DED0B325541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>42715 - 79822
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000014000000000000C00DCB5041C3F5288CFA3155411F85EB2103CB5041D7A370CDF83155419A999979FFCA5041A4703D3AF9315541333333A3FDCA5041666666F6F93155417B14AE37FBCA5041295C8F62FB315541D7A370CDF3CA5041CDCCCCBC00325541C3F528DCEECA50411F85EBE103325541295C8FF2F0CA5041F6285C9F043255410AD7A3D0F5CA50419A999919063255410AD7A310FBCA50417B14AE7707325541295C8F9201CB504114AE47F108325541C3F5288C06CB5041D7A370ED09325541C3F528AC0CCB50413D0AD7130B325541666666760FCB50415C8FC2750B32554114AE479113CB50418FC2F5780B325541295C8F721ECB5041AE47E15A0B325541AE47E1FA25CB50411F85EB310B32554114AE473125CB5041CDCCCCDC06325541EC51B8AE23CB5041A4703DEA04325541000000C00DCB5041C3F5288CFA315541
+</a>
+
+<b>
+01060000000100000001030000000100000012000000A7D8072604CB5041DE3A7DED0B325541A2FEC84604CB50412054B12A0E3255410B8FE45807CB50411B2EF0090E325541EC9846B40ECB50412054B12A0E325541B7BE214B15CB504123C1501A0E32554138ECE55219CB504123C1501A0E325541E953FB451FCB50411B2EF0090E325541C758B92E26CB50411B2EF0090E3255412F2DD47026CB50417D124A1D0F325541DD9242B126CB5041281DA11D0F325541F840BCF025CB5041ECC01BFA0A325541C0A00BF51FCB50414BA9AB520B325541C14336F118CB504179B6196A0B3255412AD1B23813CB5041B2C3A5870B325541FA4BB8FC0ECB50418B3A613B0C325541670EFCD00ACB5041E354BD730C325541252E451B06CB504192E17B520C325541A7D8072604CB5041DE3A7DED0B325541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>42823 - 4307920
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000015000000EC51B89E53C65041B81E85AB5133554152B81E2554C65041713D0A1754335541AE47E1BA62C650410AD7A3E062335541EC51B87E6BC650413D0AD7C36B3355413333330376C65041E17A146E76335541EC51B84E77C65041A4703DDA75335541EC51B89E84C65041E17A14EE6F3355417B14AE4788C65041D7A3709D6C335541A4703DBA88C6504185EB51D85F335541666666F691C65041E17A142E513355411F85EB0196C65041295C8F1245335541713D0A8797C65041666666F63C335541F6285C2F96C65041713D0AC739335541C3F5287C8AC650419A9999D933335541666666767BC65041000000202B335541F6285CAF73C6504152B81E5523335541AE47E15A72C6504185EB516823335541D7A370DD61C65041C3F5283C38335541666666F652C65041EC51B80E4B335541EC51B88E52C6504114AE47D14C335541EC51B89E53C65041B81E85AB51335541
+</a>
+
+<b>
+01060000000100000001030000000100000018000000EC51B89E53C65041B81E85AB51335541BF14481F55C65041B104900C55335541BFC98A7C5AC65041D61E9C1D61335541240717E96AC65041D84F19F26C335541EE7C3F256CC65041AAF1D2D56D3355412E0E292E74C65041D962769274335541C330BE1975C65041A74745837533554111D2CD1477C65041A6121EE174335541670583727FC65041B466383472335541EC51B89E84C65041E17A14EE6F3355417B14AE4788C65041D7A3709D6C335541A4703DBA88C6504185EB51D85F335541666666F691C65041E17A142E513355411F85EB0196C65041295C8F1245335541713D0A8797C65041666666F63C335541F6285C2F96C65041713D0AC739335541C3F5287C8AC650419A9999D933335541666666767BC65041000000202B335541F6285CAF73C6504152B81E5523335541AE47E15A72C6504185EB516823335541D7A370DD61C65041C3F5283C38335541666666F652C65041EC51B80E4B335541EC51B88E52C6504114AE47D14C335541EC51B89E53C65041B81E85AB51335541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>72228 - 132443
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000180000000000005037C4504152B81E156C305541713D0A5731C45041A4703D8A673055410AD7A3801EC45041AE47E13A59305541A4703DCA0BC45041333333034B305541713D0A77FFC35041666666A641305541000000C0F8C35041C3F5288C3C3055419A999959DBC35041295C8FD2603055418FC2F5C8E3C35041CDCCCCCC63305541E17A147EE6C3504114AE47C16430554114AE4731F5C35041EC51B82E6F305541333333D306C45041000000B07B3055417B14AEE719C450417B14AE3789305541713D0A971DC450415C8FC2D58B3055413D0AD77331C45041EC51B8EE993055413D0AD7D345C4504152B81E65A83055415C8FC2E550C45041295C8F92AF305541EC51B87E54C45041E17A148EAC3055419A99994958C45041D7A3709DA13055410000007059C45041C3F5288C9C305541EC51B8CE59C45041333333C3983055418FC2F5785AC45041B81E85EB8E305541D7A3700D5AC4504148E17A7487305541D7A370FD53C450411F85EBE1813055410000005037C4504152B81E156C305541
+</a>
+
+<b>
+010600000001000000010300000001000000090000009A999959DBC35041295C8FD26030554172F55B64DFC35041E895363662305541048161F3FBC35041CD96C7FA3E3055417A9375E5FBC35041447B33F03E3055415CF3802CFBC3504149DFA8633E3055415583B4F1FAC350418109FB363E3055418362B1D0F8C35041F300B9D43C305541BE05C42BE4C35041743A56F0553055419A999959DBC35041295C8FD260305541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>72228 - 143144
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000180000000000005037C4504152B81E156C305541713D0A5731C45041A4703D8A673055410AD7A3801EC45041AE47E13A59305541A4703DCA0BC45041333333034B305541713D0A77FFC35041666666A641305541000000C0F8C35041C3F5288C3C3055419A999959DBC35041295C8FD2603055418FC2F5C8E3C35041CDCCCCCC63305541E17A147EE6C3504114AE47C16430554114AE4731F5C35041EC51B82E6F305541333333D306C45041000000B07B3055417B14AEE719C450417B14AE3789305541713D0A971DC450415C8FC2D58B3055413D0AD77331C45041EC51B8EE993055413D0AD7D345C4504152B81E65A83055415C8FC2E550C45041295C8F92AF305541EC51B87E54C45041E17A148EAC3055419A99994958C45041D7A3709DA13055410000007059C45041C3F5288C9C305541EC51B8CE59C45041333333C3983055418FC2F5785AC45041B81E85EB8E305541D7A3700D5AC4504148E17A7487305541D7A370FD53C450411F85EBE1813055410000005037C4504152B81E156C305541
+</a>
+
+<b>
+0106000000010000000103000000010000000F00000094628FFE03C4504167403617453055413F5D203CFCC3504140FDAC3E3F3055412C89AEABDFC350416EC7FE3E62305541694D16ACE3C35041E6A99BC2633055418FC2F5C8E3C35041CDCCCCCC63305541E17A147EE6C3504114AE47C16430554121F604B6E6C3504193F7F5E864305541BA7D091DE7C3504119C3F00F653055415B28F5A11EC4504117872E168C3055418C9FA5EF37C45041E3E67A8E6C3055410000005037C4504152B81E156C305541713D0A5731C45041A4703D8A673055410AD7A3801EC45041AE47E13A59305541A4703DCA0BC45041333333034B30554194628FFE03C450416740361745305541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>72228 - 244662
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000180000000000005037C4504152B81E156C305541713D0A5731C45041A4703D8A673055410AD7A3801EC45041AE47E13A59305541A4703DCA0BC45041333333034B305541713D0A77FFC35041666666A641305541000000C0F8C35041C3F5288C3C3055419A999959DBC35041295C8FD2603055418FC2F5C8E3C35041CDCCCCCC63305541E17A147EE6C3504114AE47C16430554114AE4731F5C35041EC51B82E6F305541333333D306C45041000000B07B3055417B14AEE719C450417B14AE3789305541713D0A971DC450415C8FC2D58B3055413D0AD77331C45041EC51B8EE993055413D0AD7D345C4504152B81E65A83055415C8FC2E550C45041295C8F92AF305541EC51B87E54C45041E17A148EAC3055419A99994958C45041D7A3709DA13055410000007059C45041C3F5288C9C305541EC51B8CE59C45041333333C3983055418FC2F5785AC45041B81E85EB8E305541D7A3700D5AC4504148E17A7487305541D7A370FD53C450411F85EBE1813055410000005037C4504152B81E156C305541
+</a>
+
+<b>
+010600000001000000010300000001000000160000006E65DD0329C4504140414837613055411F1FD24326C4504133A373205F3055410AD7A3801EC45041AE47E13A593055413AE6D9900FC45041662C9EE14D3055410A0F5F3008C450419298EA46483055418C8E82EFFBC35041D5188EFF3E3055419C3A0C8EEFC35041A7B00B484E305541C8554697E3C35041EF23B3175D30554132FDE261DFC35041B751F33E623055418FC2F5C8E3C35041CDCCCCCC63305541E17A147EE6C3504114AE47C164305541BE16745EF1C35041DDBF62786C30554114AE4731F5C35041EC51B82E6F305541D6F5297004C45041EBF1A6FE79305541A6B734D41DC45041E1BA61E28B305541020BDCC421C450419FA2F4D986305541DFE19FBF2BC4504106D35EBE7A30554156B3555337C450412AAFA7176C3055410000005037C4504152B81E156C305541420B5A4836C4504108E4984C6B3055414F536EF62FC45041F2F8607E663055416E65DD0329C450414041483761305541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>72228 - 331394
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000180000000000005037C4504152B81E156C305541713D0A5731C45041A4703D8A673055410AD7A3801EC45041AE47E13A59305541A4703DCA0BC45041333333034B305541713D0A77FFC35041666666A641305541000000C0F8C35041C3F5288C3C3055419A999959DBC35041295C8FD2603055418FC2F5C8E3C35041CDCCCCCC63305541E17A147EE6C3504114AE47C16430554114AE4731F5C35041EC51B82E6F305541333333D306C45041000000B07B3055417B14AEE719C450417B14AE3789305541713D0A971DC450415C8FC2D58B3055413D0AD77331C45041EC51B8EE993055413D0AD7D345C4504152B81E65A83055415C8FC2E550C45041295C8F92AF305541EC51B87E54C45041E17A148EAC3055419A99994958C45041D7A3709DA13055410000007059C45041C3F5288C9C305541EC51B8CE59C45041333333C3983055418FC2F5785AC45041B81E85EB8E305541D7A3700D5AC4504148E17A7487305541D7A370FD53C450411F85EBE1813055410000005037C4504152B81E156C305541
+</a>
+
+<b>
+010600000001000000010300000001000000090000009A999959DBC35041295C8FD26030554172F55B64DFC35041E895363662305541048161F3FBC35041CD96C7FA3E3055417A9375E5FBC35041447B33F03E3055415CF3802CFBC3504149DFA8633E3055415583B4F1FAC350418109FB363E3055418362B1D0F8C35041F300B9D43C305541BE05C42BE4C35041743A56F0553055419A999959DBC35041295C8FD260305541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>72228 - 347851
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000180000000000005037C4504152B81E156C305541713D0A5731C45041A4703D8A673055410AD7A3801EC45041AE47E13A59305541A4703DCA0BC45041333333034B305541713D0A77FFC35041666666A641305541000000C0F8C35041C3F5288C3C3055419A999959DBC35041295C8FD2603055418FC2F5C8E3C35041CDCCCCCC63305541E17A147EE6C3504114AE47C16430554114AE4731F5C35041EC51B82E6F305541333333D306C45041000000B07B3055417B14AEE719C450417B14AE3789305541713D0A971DC450415C8FC2D58B3055413D0AD77331C45041EC51B8EE993055413D0AD7D345C4504152B81E65A83055415C8FC2E550C45041295C8F92AF305541EC51B87E54C45041E17A148EAC3055419A99994958C45041D7A3709DA13055410000007059C45041C3F5288C9C305541EC51B8CE59C45041333333C3983055418FC2F5785AC45041B81E85EB8E305541D7A3700D5AC4504148E17A7487305541D7A370FD53C450411F85EBE1813055410000005037C4504152B81E156C305541
+</a>
+
+<b>
+010600000001000000010300000001000000160000006E65DD0329C4504140414837613055411F1FD24326C4504133A373205F3055410AD7A3801EC45041AE47E13A593055413AE6D9900FC45041662C9EE14D3055410A0F5F3008C450419298EA46483055418C8E82EFFBC35041D5188EFF3E3055419C3A0C8EEFC35041A7B00B484E305541C8554697E3C35041EF23B3175D30554132FDE261DFC35041B751F33E623055418FC2F5C8E3C35041CDCCCCCC63305541E17A147EE6C3504114AE47C164305541BE16745EF1C35041DDBF62786C30554114AE4731F5C35041EC51B82E6F305541D6F5297004C45041EBF1A6FE79305541A6B734D41DC45041E1BA61E28B305541020BDCC421C450419FA2F4D986305541DFE19FBF2BC4504106D35EBE7A30554156B3555337C450412AAFA7176C3055410000005037C4504152B81E156C305541420B5A4836C4504108E4984C6B3055414F536EF62FC45041F2F8607E663055416E65DD0329C450414041483761305541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>72421 - 3549809
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000D0000007B14AEB7B6C55041D7A3701D54305541AE47E11AB3C550411F85EBC154305541295C8F62B7C55041E17A146E6A305541C3F5287CC2C5504114AE477167305541295C8F72C3C550410AD7A3706730554166666616DFC5504133333383683055418FC2F568F3C550419A9999996A3055417B14AEA7F6C55041A4703DCA4F3055413D0AD723F0C550413D0AD7D350305541B81E85BBE8C5504148E17A945130554152B81EE5CEC550419A99999952305541666666F6BCC550417B14AE47533055417B14AEB7B6C55041D7A3701D54305541
+</a>
+
+<b>
+01060000000100000001030000000100000018000000F74A26BFB8C55041465DECC66A30554156E8C5EBC2C550419757AC9A67305541295C8F72C3C550410AD7A37067305541AF5D2C1EDAC550411BA0D5516830554166666616DFC55041333333836830554108958117E0C55041EEF4A6A768305541501D87D6ECC55041949146346A305541342CE5B3F3C550415F6A7AF76A305541094258D3F3C550410712C4FE69305541A1FED167F5C550417DFF0D805D3055415E5D072BF7C55041A6B4AEB34F305541FD2D8573E8C55041E98652975130554131B8839DD9C550417316422D52305541F552E43BCFC5504191A92C96523055415E19E198C6C5504170B226EA5230554177752725BEC550410417333C53305541FCE93DE6B9C550411E0487B053305541AE47E11AB3C550411F85EBC154305541E17A141EA8C5504148E17AB4563055410AD7A360A3C55041F6285CFF5730554148E17AA49FC5504114AE47D15930554185EB5108A9C55041D7A370AD6F3055410AD7A370B7C55041F6285C2F6B305541F74A26BFB8C55041465DECC66A305541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>72443 - 2363227
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000B0000001F85EB1133C55041F6285C7F4331554152B81E352FC55041666666E6403155411F85EB812AC550415C8FC2A55E3155415C8FC24549C550413D0AD723673155410AD7A32067C5504114AE47316F315541A4703D6A69C550416666661646315541D7A370BD42C55041B81E853B40315541295C8FB241C5504148E17A14413155415C8FC22541C55041EC51B8FE4A3155416666662640C550410AD7A3F04A3155411F85EB1133C55041F6285C7F43315541
+</a>
+
+<b>
+0106000000010000000103000000010000000D00000068301B812AC55041029F7EA95E3155413333336328C55041EC51B80E6C31554123E9770D46C55041405A697B743155411F85EB5166C5504152B81EA57D315541CBBC862067C550415F8D50336F315541DD2E6A4E61C550410641B0A06D3155413777CBF25FC550417D14C3426D31554139DC415760C55041512EAC5C6D315541420DBA2D4DC550414D258D3168315541029D2AD136C550410FB1A40B623155415E4141E834C55041BB9FAE8461315541317F43BE33C55041C86A69336131554168301B812AC55041029F7EA95E315541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>72443 - 4817792
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000B0000001F85EB1133C55041F6285C7F4331554152B81E352FC55041666666E6403155411F85EB812AC550415C8FC2A55E3155415C8FC24549C550413D0AD723673155410AD7A32067C5504114AE47316F315541A4703D6A69C550416666661646315541D7A370BD42C55041B81E853B40315541295C8FB241C5504148E17A14413155415C8FC22541C55041EC51B8FE4A3155416666662640C550410AD7A3F04A3155411F85EB1133C55041F6285C7F43315541
+</a>
+
+<b>
+0106000000010000000103000000010000000D00000068301B812AC55041029F7EA95E3155413333336328C55041EC51B80E6C31554123E9770D46C55041405A697B743155411F85EB5166C5504152B81EA57D315541CBBC862067C550415F8D50336F315541DD2E6A4E61C550410641B0A06D3155413777CBF25FC550417D14C3426D31554139DC415760C55041512EAC5C6D315541420DBA2D4DC550414D258D3168315541029D2AD136C550410FB1A40B623155415E4141E834C55041BB9FAE8461315541317F43BE33C55041C86A69336131554168301B812AC55041029F7EA95E315541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>73583 - 87044
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E000000B81E85BBDDC050419A9999E95D345541A4703D5ADCC05041A4703DEA5E3455417B14AED7DAC0504185EB5188623455418FC2F528DBC050413D0AD763673455418FC2F5D8E0C05041000000306D3455413D0AD7A3E6C05041000000C071345541295C8FC2F0C05041713D0AB777345541D7A370CDFFC050417B14AE2782345541295C8F4203C150419A9999597C345541EC51B83EF8C0504148E17A94753455413D0AD743EDC050410AD7A3C06D3455417B14AE97E8C05041333333A369345541AE47E1FAE3C050410AD7A34065345541B81E85BBDDC050419A9999E95D345541
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000005747068FF6C05041E642618D703455411F85EB61EFC050410AD7A3206B345541B81E85CBE7C0504152B81EE563345541AE47E15AE4C05041000000A05F345541C3F5280CE1C05041F6285C9F5B345541E14839C5E0C05041332FACC05B3455413250C2E5DDC0504153D25E155E345541E11F5D1DE0C05041344D16B6603455416B69CB37E0C050411DCF23D5603455416E637BA6E2C050414973B7B063345541E97E50DBE2C0504144B1C9EE63345541CED5F343E9C05041B0F2EA3A6A3455417862B38DE9C05041A0E1DD7B6A34554103FB3B95E9C05041D45D80826A345541DC3C9FA3E9C05041C6272C8F6A34554133F5BE43EBC050416481A5FD6B345541AF963B68EDC050417F87FFD66D3455418CBBDA7AEEC050416DB05B9E6E345541EC51B83EF8C0504148E17A9475345541C8242F31FDC050415CA3DE9E78345541838A2057FFC050419205C3E47934554129A39E0703C150418A1C69187C345541CDCCCC0C04C15041666666067B34554170F48AD404C15041CB85C8B679345541B236D93E05C15041C7241EF27834554114AE4791FFC05041A4703DFA75345541C3B0C960F9C050417C1BAE4F723455415747068FF6C05041E642618D70345541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>73583 - 330732
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E000000B81E85BBDDC050419A9999E95D345541A4703D5ADCC05041A4703DEA5E3455417B14AED7DAC0504185EB5188623455418FC2F528DBC050413D0AD763673455418FC2F5D8E0C05041000000306D3455413D0AD7A3E6C05041000000C071345541295C8FC2F0C05041713D0AB777345541D7A370CDFFC050417B14AE2782345541295C8F4203C150419A9999597C345541EC51B83EF8C0504148E17A94753455413D0AD743EDC050410AD7A3C06D3455417B14AE97E8C05041333333A369345541AE47E1FAE3C050410AD7A34065345541B81E85BBDDC050419A9999E95D345541
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000005747068FF6C05041E642618D703455411F85EB61EFC050410AD7A3206B345541B81E85CBE7C0504152B81EE563345541AE47E15AE4C05041000000A05F345541C3F5280CE1C05041F6285C9F5B345541E14839C5E0C05041332FACC05B3455413250C2E5DDC0504153D25E155E345541E11F5D1DE0C05041344D16B6603455416B69CB37E0C050411DCF23D5603455416E637BA6E2C050414973B7B063345541E97E50DBE2C0504144B1C9EE63345541CED5F343E9C05041B0F2EA3A6A3455417862B38DE9C05041A0E1DD7B6A34554103FB3B95E9C05041D45D80826A345541DC3C9FA3E9C05041C6272C8F6A34554133F5BE43EBC050416481A5FD6B345541AF963B68EDC050417F87FFD66D3455418CBBDA7AEEC050416DB05B9E6E345541EC51B83EF8C0504148E17A9475345541C8242F31FDC050415CA3DE9E78345541838A2057FFC050419205C3E47934554129A39E0703C150418A1C69187C345541CDCCCC0C04C15041666666067B34554170F48AD404C15041CB85C8B679345541B236D93E05C15041C7241EF27834554114AE4791FFC05041A4703DFA75345541C3B0C960F9C050417C1BAE4F723455415747068FF6C05041E642618D70345541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>75176 - 131675
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000016000000295C8F528DCD50418FC2F5F81A345541B81E85FB8DCD50411F85EB411C3455415C8FC2F5ABCD50418FC2F5782734554152B81E95BCCD5041333333933A34554148E17A04BECD5041B81E850B3C3455415C8FC205C0CD50417B14AE073F3455411F85EBF1C9CD50418FC2F5F83734554100000080D8CD5041E17A149E2D34554148E17A44DACD5041EC51B87E2B345541F6285CDFDBCD5041C3F5286C28345541F6285CBFDCCD5041EC51B81E25345541F6285CAFDCCD5041333333B321345541A4703D6AD8CD5041000000A001345541AE47E1DAD6CD5041EC51B89E10345541E17A14CECCCD504185EB51080E3455418FC2F568CBCD50418FC2F598153455418FC2F588C6CD5041CDCCCCCC1434554133333363BBCD5041B81E85EB10345541F6285CEFB1CD5041CDCCCC3C0D345541C3F528FC93CD5041F6285CBF0534554185EB51E88FCD5041C3F5289C12345541295C8F528DCD50418FC2F5F81A345541
+</a>
+
+<b>
+01060000000100000001030000000100000017000000295C8F528DCD50418FC2F5F81A345541B81E85FB8DCD50411F85EB411C3455415C8FC2F5ABCD50418FC2F5782734554152B81E95BCCD5041333333933A34554114BFD8E8BDCD50414D7236EF3B34554132B08AA3D5CD50418EE909092B345541C2D0D7D9D6CD5041C79F68A6293455412D930219D8CD5041D8BF63D927345541B0B0DCA6D8CD5041798A430B2534554126CB438CD8CD5041161DE2C921345541399B8C55D7CD5041AE328D7A1734554116D5CB91D6CD5041F2C2C84F17345541C59DC1EBCBCD5041A858149F153455418FC2F568CBCD50418FC2F5981534554174EE7E60CBCD5041004A939715345541BA49D071CBCD5041EE8A0BC0153455417B626941CBCD50411B847D92153455418FC2F588C6CD5041CDCCCCCC1434554133333363BBCD5041B81E85EB10345541F6285CEFB1CD5041CDCCCC3C0D345541C3F528FC93CD5041F6285CBF0534554185EB51E88FCD5041C3F5289C12345541295C8F528DCD50418FC2F5F81A345541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>75176 - 284128
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000016000000295C8F528DCD50418FC2F5F81A345541B81E85FB8DCD50411F85EB411C3455415C8FC2F5ABCD50418FC2F5782734554152B81E95BCCD5041333333933A34554148E17A04BECD5041B81E850B3C3455415C8FC205C0CD50417B14AE073F3455411F85EBF1C9CD50418FC2F5F83734554100000080D8CD5041E17A149E2D34554148E17A44DACD5041EC51B87E2B345541F6285CDFDBCD5041C3F5286C28345541F6285CBFDCCD5041EC51B81E25345541F6285CAFDCCD5041333333B321345541A4703D6AD8CD5041000000A001345541AE47E1DAD6CD5041EC51B89E10345541E17A14CECCCD504185EB51080E3455418FC2F568CBCD50418FC2F598153455418FC2F588C6CD5041CDCCCCCC1434554133333363BBCD5041B81E85EB10345541F6285CEFB1CD5041CDCCCC3C0D345541C3F528FC93CD5041F6285CBF0534554185EB51E88FCD5041C3F5289C12345541295C8F528DCD50418FC2F5F81A345541
+</a>
+
+<b>
+01060000000100000001030000000100000017000000295C8F528DCD50418FC2F5F81A345541B81E85FB8DCD50411F85EB411C3455415C8FC2F5ABCD50418FC2F5782734554152B81E95BCCD5041333333933A34554114BFD8E8BDCD50414D7236EF3B34554132B08AA3D5CD50418EE909092B345541C2D0D7D9D6CD5041C79F68A6293455412D930219D8CD5041D8BF63D927345541B0B0DCA6D8CD5041798A430B2534554126CB438CD8CD5041161DE2C921345541399B8C55D7CD5041AE328D7A1734554116D5CB91D6CD5041F2C2C84F17345541C59DC1EBCBCD5041A858149F153455418FC2F568CBCD50418FC2F5981534554174EE7E60CBCD5041004A939715345541BA49D071CBCD5041EE8A0BC0153455417B626941CBCD50411B847D92153455418FC2F588C6CD5041CDCCCCCC1434554133333363BBCD5041B81E85EB10345541F6285CEFB1CD5041CDCCCC3C0D345541C3F528FC93CD5041F6285CBF0534554185EB51E88FCD5041C3F5289C12345541295C8F528DCD50418FC2F5F81A345541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>75266 - 6679
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000011000000B81E85FBD3CC5041EC51B84E4C3455415C8FC285CDCC504114AE47514F345541EC51B85EAECC5041D7A370DD5F345541E17A146EACCC50415C8FC2B56534554114AE47D1A0CC5041AE47E12A6B34554166666656A0CC50417B14AEB773345541B81E859B9DCC50410AD7A3A082345541C3F528FC9DCC5041A4703DBA87345541A4703D4AA0CC50411F85EB918F3455410AD7A390A0CC5041AE47E16A933455419A999969B4CC5041295C8F728A3455410AD7A3C0C7CC504148E17AB4813455417B14AE17DBCC5041666666F6783455417B14AEA7D9CC50419A99998966345541D7A3704DD8CC5041A4703DFA54345541EC51B8FED5CC504185EB515850345541B81E85FBD3CC5041EC51B84E4C345541
+</a>
+
+<b>
+010600000002000000010300000001000000180000007B14AEA7D9CC50419A999989663455417A67D969D8CC5041E362166B563455416EB4AF44D8CC50418EDB3B1055345541131820B0D7CC504128EC6ABE53345541EC51B8FED5CC504185EB5158503455416EB7D87AD5CC5041B57B425B4F345541B15BD5A0CACC5041C8381E265534554108985671C3CC5041563D2DF658345541D8D15C06B6CC5041CBF1D1C75F3455415BF6CC7FAFCC5041A053915F63345541848AE46FACCC504188654CB065345541E17A146EACCC50415C8FC2B56534554114AE47D1A0CC5041AE47E12A6B34554166666656A0CC50417B14AEB773345541B81E859B9DCC50410AD7A3A082345541C3F528FC9DCC5041A4703DBA8734554121938CD79FCC5041F884B20B8E345541A4703D4AA0CC50411F85EB918F34554102FDF452A0CC50418EE8E00B903455410AD7A390A0CC5041AE47E16A933455419A999969B4CC5041295C8F728A3455410AD7A3C0C7CC504148E17AB4813455417B14AE17DBCC5041666666F6783455417B14AEA7D9CC50419A99998966345541010300000001000000050000003406A884D5CC50415A3D6F634F345541F0C71084D5CC504156D03F624F345541D5417C82D5CC5041E940145F4F3455416EB7D87AD5CC5041B57B425B4F3455413406A884D5CC50415A3D6F634F345541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>242127 - 146230
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000030000007200000085EB51885ED85041A4703DDAC02055415C8FC2C55ED85041AE47E1CABE2055417B14AE475FD850418FC2F518BE205541295C8F5260D850418FC2F528BD20554114AE478160D8504100000080BC205541E17A141E60D85041C3F5282CBC20554148E17A445FD85041A4703DFABB2055410AD7A3905ED850415C8FC285BB205541EC51B8CE5DD850417B14AEF7BB205541333333B35CD8504152B81E45BC205541295C8F025BD850410AD7A390BB2055410AD7A3D059D850411F85EB41BC2055413D0AD77358D8504114AE4731BC2055416666668657D85041E17A149EBB205541F6285CAF56D8504114AE4711BA205541CDCCCC1C57D850415C8FC2C5B8205541713D0AD757D850413D0AD7C3B7205541A4703DBA58D8504148E17AD4B72055417B14AED759D8504152B81E05B8205541A4703D9A5AD85041666666F6B72055419A9999895BD850419A999949B62055419A9999995DD85041CDCCCC7CB62055411F85EBD15DD85041D7A3700DB62055413D0AD7535CD850418FC2F558B5205541295C8F525AD85041D7A370DDB4205541D7A370BD59D85041A4703D2AB4205541E17A145E5AD8504100000020B32055419A9999195AD85041D7A3707DB2205541CDCCCC3C59D85041AE47E14AB12055415C8FC26558D85041F6285CEFAF2055410000008056D85041000000E0AD205541AE47E12A56D8504148E17AF4AC205541CDCCCCAC56D850413D0AD733AC2055418FC2F59857D85041666666B6AB2055417B14AEC757D85041B81E85DBAA205541A4703DEA56D85041A4703DAAAA205541CDCCCC6C55D85041713D0AD7AA20554148E17A1454D8504148E17A94AA20554152B81E0553D850410AD7A3C0A9205541EC51B82E52D8504114AE4761A8205541CDCCCC1C52D8504185EB51A8A62055410000006052D8504152B81E95A5205541000000F052D85041F6285C8FA4205541E17A14EE53D850410AD7A310A42055416666665655D850413D0AD743A42055410AD7A3F055D85041713D0AA7A420554148E17AC456D85041713D0A47A42055413D0AD78356D8504148E17AA4A32055410AD7A3E055D850413D0AD783A32055411F85EB6154D8504185EB51C8A220554148E17A7453D8504152B81E05A2205541EC51B89E53D85041C3F528CCA020554148E17A5454D85041AE47E1AA9F2055417B14AE0755D85041EC51B8EE9F20554114AE47D155D8504114AE47D1A020554152B81ED556D850413D0AD7B3A02055419A99997957D8504114AE47B19F205541A4703D2A57D850418FC2F5E89E2055417B14AEB756D85041713D0A379E2055418FC2F5F856D85041CDCCCC5C9D205541E17A144E57D85041C3F5283C9C205541713D0AF757D85041D7A3703D9C205541AE47E19A58D85041295C8F829B205541D7A3704D58D850410AD7A3809A205541EC51B85E58D850418FC2F5A8992055413D0AD72359D850413D0AD78398205541F6285CEF59D8504185EB5108972055418FC2F5085BD85041713D0AF7942055411F85EB515BD850417B14AED78D205541F6285C0F57D85041CDCCCC8C8B205541A4703DAA53D85041C3F528AC89205541C3F528EC50D850413D0AD78388205541B81E854B4FD85041333333038820554185EB51384DD85041295C8FB2862055411F85EB714CD8504185EB5108862055410AD7A3304BD85041F6285C4F852055411F85EBB14AD850413333331385205541AE47E12A45D85041EC51B86E832055413333330341D850418FC2F5A8892055415C8FC2E53CD850418FC2F5688E205541295C8FE238D850415C8FC2B594205541CDCCCC5C38D8504185EB51D895205541A4703D7A35D85041B81E858B9B205541D7A370AD34D850415C8FC2B59C2055418FC2F56831D85041AE47E10AA0205541D7A3703D2ED85041CDCCCC4CA32055410AD7A3802FD850417B14AEC7A32055416666663631D8504148E17AA4A12055411F85EBA134D850411F85EBC19E2055413D0AD78337D8504185EB51689C205541D7A3709D3AD8504148E17A749820554185EB51083ED85041713D0A979A2055413333333342D850415C8FC2D59C2055416666665644D85041666666F6A12055413D0AD75347D850419A9999A9A62055419A99990949D85041000000F0AA205541E17A14AE49D850417B14AEF7AC20554185EB51884AD85041CDCCCCBCB22055418FC2F5984CD85041AE47E12ABB20554152B81EA550D85041EC51B85EBF205541EC51B8AE53D8504114AE4731C520554185EB51C855D850415C8FC2C5C2205541AE47E1EA56D8504114AE47D1C1205541713D0AF757D850413D0AD793C0205541AE47E14A5ED85041A4703D3AC8205541A4703D1A5ED85041AE47E18AC6205541C3F528DC5ED85041B81E85BBC42055417B14AE0760D85041B81E85FBC3205541AE47E1FA60D85041EC51B82EC4205541E17A14AE61D8504152B81E95C4205541CDCCCC7C61D85041CDCCCC2CC3205541E17A145E5FD850415C8FC255C3205541A4703D7A5ED85041A4703DBAC220554185EB51885ED85041A4703DDAC02055410C0000000000008052D85041CDCCCC3CBB205541E17A142E4FD85041E17A141EB42055415C8FC28550D85041EC51B8FEB22055411F85EB5150D85041F6285C1FB220554152B81E4551D85041713D0AE7B12055418FC2F57851D85041666666C6B2205541B81E851B53D85041713D0A27B3205541C3F528DC54D8504166666666B8205541A4703D1A55D85041D7A370FDB9205541F6285C5F54D8504185EB5118BB2055413D0AD74353D85041D7A3703DBB2055410000008052D85041CDCCCC3CBB2055410C0000008FC2F5E84DD85041D7A3709DAF205541A4703D9A4BD8504114AE47819F205541666666F64AD85041C3F5287C9A205541295C8F4249D85041EC51B84E95205541CDCCCCFC44D85041295C8F128F205541F6285CEF49D85041713D0AF7872055417B14AEC757D850410AD7A3B08F20554114AE47D158D850415C8FC2C5922055410AD7A3B050D85041D7A3704D9D2055410000001051D850417B14AE07A42055413333336351D8504114AE4771AF2055418FC2F5E84DD85041D7A3709DAF205541
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000AB6F7CB750D85041B63B15C99D2055410AD7A3B050D85041D7A3704D9D2055412BEA80B250D85041968A064B9D2055412D505EB250D85041A11F9B479D205541215C01FD52D85041E83127539A20554114AE47D158D850415C8FC2C5922055419506A5C957D850415B227AB68F205541F3C0B00753D8504184A1290A8D205541F6285CEF49D85041713D0AF78720554183C8DD0645D850415A0940218F205541FA2A34E748D85041BE9E66C9942055414DFA885049D8504136CA8B619520554113F0554C4AD850412887F97698205541666666F64AD85041C3F5287C9A205541AD93C6034BD85041D85813E59A205541E597C1044BD85041D09E66E89A2055414248CE664DD8504102FBC110AC205541B924EDA84DD85041253F62DEAD205541A016AEE84DD850413B427C9BAF205541FD09027E4ED8504129EF6395AF205541FE00ACC84ED85041BCC55792AF2055413333336351D8504114AE4771AF2055419D29495151D85041213637FCAC20554112013C1951D85041307D9D9AA52055410E09160D51D8504185A80DD3A3205541AB6F7CB750D85041B63B15C99D205541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>242127 - 299104
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000030000007200000085EB51885ED85041A4703DDAC02055415C8FC2C55ED85041AE47E1CABE2055417B14AE475FD850418FC2F518BE205541295C8F5260D850418FC2F528BD20554114AE478160D8504100000080BC205541E17A141E60D85041C3F5282CBC20554148E17A445FD85041A4703DFABB2055410AD7A3905ED850415C8FC285BB205541EC51B8CE5DD850417B14AEF7BB205541333333B35CD8504152B81E45BC205541295C8F025BD850410AD7A390BB2055410AD7A3D059D850411F85EB41BC2055413D0AD77358D8504114AE4731BC2055416666668657D85041E17A149EBB205541F6285CAF56D8504114AE4711BA205541CDCCCC1C57D850415C8FC2C5B8205541713D0AD757D850413D0AD7C3B7205541A4703DBA58D8504148E17AD4B72055417B14AED759D8504152B81E05B8205541A4703D9A5AD85041666666F6B72055419A9999895BD850419A999949B62055419A9999995DD85041CDCCCC7CB62055411F85EBD15DD85041D7A3700DB62055413D0AD7535CD850418FC2F558B5205541295C8F525AD85041D7A370DDB4205541D7A370BD59D85041A4703D2AB4205541E17A145E5AD8504100000020B32055419A9999195AD85041D7A3707DB2205541CDCCCC3C59D85041AE47E14AB12055415C8FC26558D85041F6285CEFAF2055410000008056D85041000000E0AD205541AE47E12A56D8504148E17AF4AC205541CDCCCCAC56D850413D0AD733AC2055418FC2F59857D85041666666B6AB2055417B14AEC757D85041B81E85DBAA205541A4703DEA56D85041A4703DAAAA205541CDCCCC6C55D85041713D0AD7AA20554148E17A1454D8504148E17A94AA20554152B81E0553D850410AD7A3C0A9205541EC51B82E52D8504114AE4761A8205541CDCCCC1C52D8504185EB51A8A62055410000006052D8504152B81E95A5205541000000F052D85041F6285C8FA4205541E17A14EE53D850410AD7A310A42055416666665655D850413D0AD743A42055410AD7A3F055D85041713D0AA7A420554148E17AC456D85041713D0A47A42055413D0AD78356D8504148E17AA4A32055410AD7A3E055D850413D0AD783A32055411F85EB6154D8504185EB51C8A220554148E17A7453D8504152B81E05A2205541EC51B89E53D85041C3F528CCA020554148E17A5454D85041AE47E1AA9F2055417B14AE0755D85041EC51B8EE9F20554114AE47D155D8504114AE47D1A020554152B81ED556D850413D0AD7B3A02055419A99997957D8504114AE47B19F205541A4703D2A57D850418FC2F5E89E2055417B14AEB756D85041713D0A379E2055418FC2F5F856D85041CDCCCC5C9D205541E17A144E57D85041C3F5283C9C205541713D0AF757D85041D7A3703D9C205541AE47E19A58D85041295C8F829B205541D7A3704D58D850410AD7A3809A205541EC51B85E58D850418FC2F5A8992055413D0AD72359D850413D0AD78398205541F6285CEF59D8504185EB5108972055418FC2F5085BD85041713D0AF7942055411F85EB515BD850417B14AED78D205541F6285C0F57D85041CDCCCC8C8B205541A4703DAA53D85041C3F528AC89205541C3F528EC50D850413D0AD78388205541B81E854B4FD85041333333038820554185EB51384DD85041295C8FB2862055411F85EB714CD8504185EB5108862055410AD7A3304BD85041F6285C4F852055411F85EBB14AD850413333331385205541AE47E12A45D85041EC51B86E832055413333330341D850418FC2F5A8892055415C8FC2E53CD850418FC2F5688E205541295C8FE238D850415C8FC2B594205541CDCCCC5C38D8504185EB51D895205541A4703D7A35D85041B81E858B9B205541D7A370AD34D850415C8FC2B59C2055418FC2F56831D85041AE47E10AA0205541D7A3703D2ED85041CDCCCC4CA32055410AD7A3802FD850417B14AEC7A32055416666663631D8504148E17AA4A12055411F85EBA134D850411F85EBC19E2055413D0AD78337D8504185EB51689C205541D7A3709D3AD8504148E17A749820554185EB51083ED85041713D0A979A2055413333333342D850415C8FC2D59C2055416666665644D85041666666F6A12055413D0AD75347D850419A9999A9A62055419A99990949D85041000000F0AA205541E17A14AE49D850417B14AEF7AC20554185EB51884AD85041CDCCCCBCB22055418FC2F5984CD85041AE47E12ABB20554152B81EA550D85041EC51B85EBF205541EC51B8AE53D8504114AE4731C520554185EB51C855D850415C8FC2C5C2205541AE47E1EA56D8504114AE47D1C1205541713D0AF757D850413D0AD793C0205541AE47E14A5ED85041A4703D3AC8205541A4703D1A5ED85041AE47E18AC6205541C3F528DC5ED85041B81E85BBC42055417B14AE0760D85041B81E85FBC3205541AE47E1FA60D85041EC51B82EC4205541E17A14AE61D8504152B81E95C4205541CDCCCC7C61D85041CDCCCC2CC3205541E17A145E5FD850415C8FC255C3205541A4703D7A5ED85041A4703DBAC220554185EB51885ED85041A4703DDAC02055410C0000000000008052D85041CDCCCC3CBB205541E17A142E4FD85041E17A141EB42055415C8FC28550D85041EC51B8FEB22055411F85EB5150D85041F6285C1FB220554152B81E4551D85041713D0AE7B12055418FC2F57851D85041666666C6B2205541B81E851B53D85041713D0A27B3205541C3F528DC54D8504166666666B8205541A4703D1A55D85041D7A370FDB9205541F6285C5F54D8504185EB5118BB2055413D0AD74353D85041D7A3703DBB2055410000008052D85041CDCCCC3CBB2055410C0000008FC2F5E84DD85041D7A3709DAF205541A4703D9A4BD8504114AE47819F205541666666F64AD85041C3F5287C9A205541295C8F4249D85041EC51B84E95205541CDCCCCFC44D85041295C8F128F205541F6285CEF49D85041713D0AF7872055417B14AEC757D850410AD7A3B08F20554114AE47D158D850415C8FC2C5922055410AD7A3B050D85041D7A3704D9D2055410000001051D850417B14AE07A42055413333336351D8504114AE4771AF2055418FC2F5E84DD85041D7A3709DAF205541
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000AB6F7CB750D85041B63B15C99D2055410AD7A3B050D85041D7A3704D9D2055412BEA80B250D85041968A064B9D2055412D505EB250D85041A11F9B479D205541215C01FD52D85041E83127539A20554114AE47D158D850415C8FC2C5922055419506A5C957D850415B227AB68F205541F3C0B00753D8504184A1290A8D205541F6285CEF49D85041713D0AF78720554183C8DD0645D850415A0940218F205541FA2A34E748D85041BE9E66C9942055414DFA885049D8504136CA8B619520554113F0554C4AD850412887F97698205541666666F64AD85041C3F5287C9A205541AD93C6034BD85041D85813E59A205541E597C1044BD85041D09E66E89A2055414248CE664DD8504102FBC110AC205541B924EDA84DD85041253F62DEAD205541A016AEE84DD850413B427C9BAF205541FD09027E4ED8504129EF6395AF205541FE00ACC84ED85041BCC55792AF2055413333336351D8504114AE4771AF2055419D29495151D85041213637FCAC20554112013C1951D85041307D9D9AA52055410E09160D51D8504185A80DD3A3205541AB6F7CB750D85041B63B15C99D205541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>242168 - 1419666
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001E000000AE47E13A050751413D0AD703ACFE5441C3F528BCF5065141EC51B8FEAAFE54419A9999A9F5065141E17A14EEC5FE54415C8FC2A5F60651415C8FC215C7FE5441C3F5283C1907514133333383CCFE54415C8FC25520075141E17A148ECDFE5441E17A14FE2407514133333363CEFE54415C8FC2653A075141295C8FC2D4FE54419A9999C94107514148E17A14D5FE5441CDCCCCDC47075141AE47E1AAD6FE54418FC2F5584C0751410AD7A3A0C9FE5441E17A143E710751410AD7A370D6FE544185EB514871075141CDCCCC9CD4FE54418FC2F5F87107514166666656CFFE5441CDCCCCAC730751417B14AE37CAFE54413D0AD74374075141CDCCCC1CC9FE544166666606630751410AD7A360C1FE5441E17A140E53075141713D0A37BAFE5441F6285C0F500751415C8FC235BDFE544114AE479148075141D7A3704DC0FE5441F6285C0F430751411F85EB51C5FE5441333333A3370751411F85EBB1C1FE5441B81E85CB2E075141E17A147EBFFE5441E17A148E330751419A999939B8FE5441000000503807514152B81EB5B2FE5441C3F5280C34075141C3F528CCB1FE5441CDCCCCBC290751411F85EB31B0FE5441295C8F321407514100000000ADFE54419A9999990F075141295C8FB2ACFE5441AE47E13A050751413D0AD703ACFE5441
+</a>
+
+<b>
+0106000000010000000103000000010000002100000050F958582B07514125815B47D0FE54415C8FC2653A075141295C8FC2D4FE54419A9999C94107514148E17A14D5FE5441CDCCCCDC47075141AE47E1AAD6FE54418FC2F5584C0751410AD7A3A0C9FE5441E17A143E710751410AD7A370D6FE544185EB514871075141CDCCCC9CD4FE54418FC2F5F87107514166666656CFFE5441CDCCCCAC730751417B14AE37CAFE54413D0AD74374075141CDCCCC1CC9FE544166666606630751410AD7A360C1FE5441E17A140E53075141713D0A37BAFE5441F6285C0F500751415C8FC235BDFE544114AE479148075141D7A3704DC0FE5441F6285C0F430751411F85EB51C5FE5441333333A3370751411F85EBB1C1FE5441B81E85CB2E075141E17A147EBFFE5441E17A148E330751419A999939B8FE5441000000503807514152B81EB5B2FE5441C3F5280C34075141C3F528CCB1FE5441CDCCCCBC290751411F85EB31B0FE5441295C8F321407514100000000ADFE54419A9999990F075141295C8FB2ACFE5441AE47E13A050751413D0AD703ACFE5441C3F528BCF5065141EC51B8FEAAFE5441B25066B5F506514145B24CCEB4FE5441A44C49CFF5065141AFA936A3AEFE544199F7E5B70B07514107BA6029B0FE5441DB70E7F522075141AC98EF04B3FE54418FA02B583307514152777EE0B5FE54412E5F833F2D07514137D16542BEFE5441D64E59B92B07514114FACE11C2FE544150F958582B07514125815B47D0FE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>242168 - 3394195
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001E000000AE47E13A050751413D0AD703ACFE5441C3F528BCF5065141EC51B8FEAAFE54419A9999A9F5065141E17A14EEC5FE54415C8FC2A5F60651415C8FC215C7FE5441C3F5283C1907514133333383CCFE54415C8FC25520075141E17A148ECDFE5441E17A14FE2407514133333363CEFE54415C8FC2653A075141295C8FC2D4FE54419A9999C94107514148E17A14D5FE5441CDCCCCDC47075141AE47E1AAD6FE54418FC2F5584C0751410AD7A3A0C9FE5441E17A143E710751410AD7A370D6FE544185EB514871075141CDCCCC9CD4FE54418FC2F5F87107514166666656CFFE5441CDCCCCAC730751417B14AE37CAFE54413D0AD74374075141CDCCCC1CC9FE544166666606630751410AD7A360C1FE5441E17A140E53075141713D0A37BAFE5441F6285C0F500751415C8FC235BDFE544114AE479148075141D7A3704DC0FE5441F6285C0F430751411F85EB51C5FE5441333333A3370751411F85EBB1C1FE5441B81E85CB2E075141E17A147EBFFE5441E17A148E330751419A999939B8FE5441000000503807514152B81EB5B2FE5441C3F5280C34075141C3F528CCB1FE5441CDCCCCBC290751411F85EB31B0FE5441295C8F321407514100000000ADFE54419A9999990F075141295C8FB2ACFE5441AE47E13A050751413D0AD703ACFE5441
+</a>
+
+<b>
+0106000000010000000103000000010000002100000050F958582B07514125815B47D0FE54415C8FC2653A075141295C8FC2D4FE54419A9999C94107514148E17A14D5FE5441CDCCCCDC47075141AE47E1AAD6FE54418FC2F5584C0751410AD7A3A0C9FE5441E17A143E710751410AD7A370D6FE544185EB514871075141CDCCCC9CD4FE54418FC2F5F87107514166666656CFFE5441CDCCCCAC730751417B14AE37CAFE54413D0AD74374075141CDCCCC1CC9FE544166666606630751410AD7A360C1FE5441E17A140E53075141713D0A37BAFE5441F6285C0F500751415C8FC235BDFE544114AE479148075141D7A3704DC0FE5441F6285C0F430751411F85EB51C5FE5441333333A3370751411F85EBB1C1FE5441B81E85CB2E075141E17A147EBFFE5441E17A148E330751419A999939B8FE5441000000503807514152B81EB5B2FE5441C3F5280C34075141C3F528CCB1FE5441CDCCCCBC290751411F85EB31B0FE5441295C8F321407514100000000ADFE54419A9999990F075141295C8FB2ACFE5441AE47E13A050751413D0AD703ACFE5441C3F528BCF5065141EC51B8FEAAFE5441B25066B5F506514145B24CCEB4FE5441A44C49CFF5065141AFA936A3AEFE544199F7E5B70B07514107BA6029B0FE5441DB70E7F522075141AC98EF04B3FE54418FA02B583307514152777EE0B5FE54412E5F833F2D07514137D16542BEFE5441D64E59B92B07514114FACE11C2FE544150F958582B07514125815B47D0FE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>94631 - 198349
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000A000000B81E85ABBC9450418FC2F588DC3455415C8FC245C09450415C8FC295DF345541295C8FB2C294504133333303E0345541A4703D7AC4945041B81E852BE034554185EB5198C594504152B81E45E03455415C8FC295C6945041B81E855BE03455415C8FC295C79450411F85EB71E0345541CDCCCC2CC8945041F6285C7FD9345541AE47E1DABC94504185EB5178D8345541B81E85ABBC9450418FC2F588DC345541
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000000E6FCD25C8945041B764643BD934554187DF40D7BC945041A7E41BB5D8345541D3052938BC945041CD197782DD34554109C9385FC094504132A63F9ADF345541333EC288C1945041F875B3CEDF3455411DFEDCBDC294504139173304E03455417835C032C394504123F08A0EE03455418377ACDCC39450414BFA931DE03455416F965A95C7945041515EB55BE03455412369BE98C7945041B7DAC84EE0345541CDCCCC2CC8945041F6285C7FD93455410E6FCD25C8945041B764643BD9345541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>94631 - 355633
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000A000000B81E85ABBC9450418FC2F588DC3455415C8FC245C09450415C8FC295DF345541295C8FB2C294504133333303E0345541A4703D7AC4945041B81E852BE034554185EB5198C594504152B81E45E03455415C8FC295C6945041B81E855BE03455415C8FC295C79450411F85EB71E0345541CDCCCC2CC8945041F6285C7FD9345541AE47E1DABC94504185EB5178D8345541B81E85ABBC9450418FC2F588DC345541
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000000E6FCD25C8945041B764643BD934554187DF40D7BC945041A7E41BB5D8345541D3052938BC945041CD197782DD34554109C9385FC094504132A63F9ADF345541333EC288C1945041F875B3CEDF3455411DFEDCBDC294504139173304E03455417835C032C394504123F08A0EE03455418377ACDCC39450414BFA931DE03455416F965A95C7945041515EB55BE03455412369BE98C7945041B7DAC84EE0345541CDCCCC2CC8945041F6285C7FD93455410E6FCD25C8945041B764643BD9345541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>97481 - 1611805
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001500000052B81EF5649E5041EC51B87E553B5541D7A370DD5B9E50419A9999C9673B554166666606549E504100000080753B5541AE47E1FA3F9E5041D7A3707D983B5541F6285C3F409E5041D7A370DD993B5541AE47E1EA4F9E5041666666C6A33B5541E17A143E659E5041295C8F42B13B554152B81EA5669E50419A9999F9B03B554166666626819E5041713D0A57893B55415C8FC235819E50413D0AD7A3873B5541D7A370DD7F9E504100000040853B5541EC51B89E7D9E504152B81E557F3B5541000000D07B9E5041AE47E14A793B5541B81E852B779E5041CDCCCC8C663B554133333393759E504152B81E15623B5541A4703D1A759E50413D0AD7C3603B5541295C8FB2729E5041E17A140E5B3B55418FC2F5F86F9E5041B81E858B553B55411F85EBF16C9E504148E17A24503B5541D7A370AD699E5041C3F5288C4B3B554152B81EF5649E5041EC51B87E553B5541
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000003FBEE1557D9E50410E32EE97893B554161AE4ADD7F9E5041166D2E438B3B554197BF2719809E504179A7A9E98A3B554166666626819E5041713D0A57893B55415C8FC235819E50413D0AD7A3873B5541D7A370DD7F9E504100000040853B5541EC51B89E7D9E504152B81E557F3B5541000000D07B9E5041AE47E14A793B5541B81E852B779E5041CDCCCC8C663B554133333393759E504152B81E15623B5541A4703D1A759E50413D0AD7C3603B5541295C8FB2729E5041E17A140E5B3B55418FC2F5F86F9E5041B81E858B553B55411F85EBF16C9E504148E17A24503B5541D7A370AD699E5041C3F5288C4B3B554152B81EF5649E5041EC51B87E553B5541D7A370DD5B9E50419A9999C9673B554166666606549E504100000080753B5541AE47E1FA3F9E5041D7A3707D983B5541F6285C3F409E5041D7A370DD993B5541AE47E1EA4F9E5041666666C6A33B55419C182FCD599E504196317406AA3B554133CB4F3F5A9E50416C04C26AA93B5541A4938A55649E50412A38CDD9AF3B55410AEED5E2639E5041C052FA66B03B5541E17A143E659E5041295C8F42B13B554152B81EA5669E50419A9999F9B03B5541B8F161537A9E504160E67D8B933B554183DD2F327B9E504168A2503E923B5541FF0AC327799E504134114B04913B55413FBEE1557D9E50410E32EE97893B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>97481 - 3160737
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001500000052B81EF5649E5041EC51B87E553B5541D7A370DD5B9E50419A9999C9673B554166666606549E504100000080753B5541AE47E1FA3F9E5041D7A3707D983B5541F6285C3F409E5041D7A370DD993B5541AE47E1EA4F9E5041666666C6A33B5541E17A143E659E5041295C8F42B13B554152B81EA5669E50419A9999F9B03B554166666626819E5041713D0A57893B55415C8FC235819E50413D0AD7A3873B5541D7A370DD7F9E504100000040853B5541EC51B89E7D9E504152B81E557F3B5541000000D07B9E5041AE47E14A793B5541B81E852B779E5041CDCCCC8C663B554133333393759E504152B81E15623B5541A4703D1A759E50413D0AD7C3603B5541295C8FB2729E5041E17A140E5B3B55418FC2F5F86F9E5041B81E858B553B55411F85EBF16C9E504148E17A24503B5541D7A370AD699E5041C3F5288C4B3B554152B81EF5649E5041EC51B87E553B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000500000083DD2F327B9E504168A2503E923B554165AE4ADD7F9E5041186D2E438B3B55413FBEE1557D9E50410E32EE97893B5541FF0AC327799E504134114B04913B554183DD2F327B9E504168A2503E923B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>97481 - 3192317
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001500000052B81EF5649E5041EC51B87E553B5541D7A370DD5B9E50419A9999C9673B554166666606549E504100000080753B5541AE47E1FA3F9E5041D7A3707D983B5541F6285C3F409E5041D7A370DD993B5541AE47E1EA4F9E5041666666C6A33B5541E17A143E659E5041295C8F42B13B554152B81EA5669E50419A9999F9B03B554166666626819E5041713D0A57893B55415C8FC235819E50413D0AD7A3873B5541D7A370DD7F9E504100000040853B5541EC51B89E7D9E504152B81E557F3B5541000000D07B9E5041AE47E14A793B5541B81E852B779E5041CDCCCC8C663B554133333393759E504152B81E15623B5541A4703D1A759E50413D0AD7C3603B5541295C8FB2729E5041E17A140E5B3B55418FC2F5F86F9E5041B81E858B553B55411F85EBF16C9E504148E17A24503B5541D7A370AD699E5041C3F5288C4B3B554152B81EF5649E5041EC51B87E553B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000500000083DD2F327B9E504168A2503E923B554165AE4ADD7F9E5041186D2E438B3B55413FBEE1557D9E50410E32EE97893B5541FF0AC327799E504134114B04913B554183DD2F327B9E504168A2503E923B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>97481 - 3335585
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001500000052B81EF5649E5041EC51B87E553B5541D7A370DD5B9E50419A9999C9673B554166666606549E504100000080753B5541AE47E1FA3F9E5041D7A3707D983B5541F6285C3F409E5041D7A370DD993B5541AE47E1EA4F9E5041666666C6A33B5541E17A143E659E5041295C8F42B13B554152B81EA5669E50419A9999F9B03B554166666626819E5041713D0A57893B55415C8FC235819E50413D0AD7A3873B5541D7A370DD7F9E504100000040853B5541EC51B89E7D9E504152B81E557F3B5541000000D07B9E5041AE47E14A793B5541B81E852B779E5041CDCCCC8C663B554133333393759E504152B81E15623B5541A4703D1A759E50413D0AD7C3603B5541295C8FB2729E5041E17A140E5B3B55418FC2F5F86F9E5041B81E858B553B55411F85EBF16C9E504148E17A24503B5541D7A370AD699E5041C3F5288C4B3B554152B81EF5649E5041EC51B87E553B5541
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000003FBEE1557D9E50410E32EE97893B554161AE4ADD7F9E5041166D2E438B3B554197BF2719809E504179A7A9E98A3B554166666626819E5041713D0A57893B55415C8FC235819E50413D0AD7A3873B5541D7A370DD7F9E504100000040853B5541EC51B89E7D9E504152B81E557F3B5541000000D07B9E5041AE47E14A793B5541B81E852B779E5041CDCCCC8C663B554133333393759E504152B81E15623B5541A4703D1A759E50413D0AD7C3603B5541295C8FB2729E5041E17A140E5B3B55418FC2F5F86F9E5041B81E858B553B55411F85EBF16C9E504148E17A24503B5541D7A370AD699E5041C3F5288C4B3B554152B81EF5649E5041EC51B87E553B5541D7A370DD5B9E50419A9999C9673B554166666606549E504100000080753B5541AE47E1FA3F9E5041D7A3707D983B5541F6285C3F409E5041D7A370DD993B5541AE47E1EA4F9E5041666666C6A33B55419C182FCD599E504196317406AA3B554133CB4F3F5A9E50416C04C26AA93B5541A4938A55649E50412A38CDD9AF3B55410AEED5E2639E5041C052FA66B03B5541E17A143E659E5041295C8F42B13B554152B81EA5669E50419A9999F9B03B5541B8F161537A9E504160E67D8B933B554183DD2F327B9E504168A2503E923B5541FF0AC327799E504134114B04913B55413FBEE1557D9E50410E32EE97893B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>97789 - 3690270
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000005A0000009A99991947A35041F6285C0F5F385541E17A14DE46A350413D0AD7735E3855415C8FC2A546A350410AD7A3E05D3855410AD7A3203FA35041EC51B8FE603855418FC2F5983EA3504185EB51486138554114AE47513DA35041A4703DFA6138554114AE47C13BA35041295C8FD2623855411F85EBC139A3504185EB51E8633855410AD7A38038A350416666669664385541EC51B8BE37A35041F6285CFF6438554114AE475137A35041AE47E13A653855411F85EB7136A350413D0AD7B3653855418FC2F5982DA35041CDCCCC7C6A385541AE47E1EA2DA35041C3F5289C6C385541713D0A2730A35041C3F5280C6F3855410AD7A3E031A35041A4703DFA70385541B81E856B33A35041713D0A2772385541EC51B84E35A35041666666A673385541F6285CDF37A35041713D0AA775385541D7A3703D3CA35041F6285C1F793855411F85EB1142A35041295C8F4274385541CDCCCC9C43A35041666666167338554114AE477146A350417B14AE3771385541333333234AA35041666666E66E3855417B14AE974CA35041F6285C6F6D385541713D0A374CA3504152B81E756C3855413D0AD7834FA3504148E17A146C3855413D0AD71356A350417B14AED76B3855417B14AEE75AA35041713D0AE76B385541C3F528CC5CA35041A4703D1A6C385541000000F05FA350418FC2F5886C3855419A99995963A35041D7A3704D6D3855413D0AD70365A35041D7A370AD6D3855417B14AE376EA35041666666B6703855417B14AEB76FA350415C8FC24571385541CDCCCCBC70A350415C8FC2556F38554185EB51F870A35041000000E06E3855411F85EB1172A35041295C8FE26C385541CDCCCC2C72A350411F85EBB16C385541713D0AD772A35041EC51B87E6B385541EC51B8BE73A35041A4703DDA6938554148E17A0474A35041C3F5285C693855417B14AEC774A35041AE47E1FA67385541666666E674A350413D0AD7C3673855413D0AD78375A3504148E17AA46638554152B81E1576A35041F6285C9F65385541A4703D2A77A35041AE47E1AA63385541713D0A4777A35041B81E856B63385541333333C378A3504148E17AA4603855410AD7A3107AA350415C8FC2355E385541AE47E1EA7BA3504152B81EE55E38554114AE47C187A35041AE47E1DA633855418FC2F58889A35041C3F528DC64385541EC51B85E8DA35041E17A141E67385541C3F5288C95A350411F85EBD16C38554152B81E65A0A350419A999929753855417B14AE47A1A35041295C8F5274385541333333A3A1A35041B81E85FB73385541E17A141EA2A35041713D0A8773385541A4703DBAA2A35041295C8FF272385541C3F5289CA3A35041B81E851B7238554185EB5158A4A350418FC2F56871385541E17A14FEA4A35041AE47E1CA7038554148E17A74A5A35041A4703D5A70385541B81E85EBA5A350418FC2F5E86F385541B81E858BA6A35041000000506F3855410AD7A310A7A3504148E17AD46E385541F6285C5FA7A3504185EB51886E3855419A9999999CA3504185EB51B8663855410AD7A3B093A35041CDCCCCEC60385541333333D38CA3504114AE47915D385541A4703D5A81A35041295C8F125A385541F6285CEF7CA350418FC2F5D8583855419A9999096FA350417B14AEF755385541295C8FB268A350413D0AD713563855410AD7A3B068A350418FC2F548573855417B14AE9768A35041D7A3702D593855410000006068A35041C3F5282C5C3855413D0AD76366A3504114AE47F15B38554152B81E5564A35041713D0AB75B3855415C8FC28561A35041713D0AA75B385541000000C05FA35041713D0AA75B38554185EB51185DA3504185EB51C85B3855413D0AD71359A350415C8FC2255C385541B81E854B55A35041000000A05C385541A4703D0A54A35041C3F528CC5C38554152B81E5550A35041D7A3708D5D385541F6285C2F4BA35041C3F528DC5E3855419A99997947A35041A4703D0A603855419A99991947A35041F6285C0F5F385541
+</a>
+
+<b>
+0106000000010000000103000000010000002300000085EB518853A350413D0AD79384385541C3F5283C59A35041F6285CEF83385541333333735BA350413D0AD7538538554148E17A145FA35041C3F5289C873855410AD7A37063A35041A4703D5A8A385541E17A14CE64A3504114AE47B1873855419A99995966A35041713D0A4783385541295C8F6269A35041E17A140E7B3855415C8FC2A56AA35041B81E852B783855415C8FC2156DA35041EC51B86E74385541CC20F1B27CA35041E78070CC58385541716915EC6FA3504108539D2656385541AF6F4F836EA35041EC8B02FA553855418089009A68A35041A782831456385541BB694B9D68A3504146A375C058385541BC5A716168A350412EE84A185C385541A67A4E9860A35041713D0AA75B385541565E067759A350419EB1BF1C5C385541BFC4DE8E52A3504152546A195D385541EDB05D974DA3504100B7B03F5E385541CD35B88747A3504196C7BF0560385541D6736CAC46A350415380E8DD5D385541CEC44BFB43A350416A2690FB5E3855411E6EADCA3EA3504162C2592D61385541AE5F9A8837A3504129C3CA1C6538554137E4A5852EA3504131CE1FFD69385541BF05BDBC2DA35041499000EA6A3855413201AA892DA350411F41DB7D6B3855417F2E0B8C2DA35041CC9B2B0E6C385541E82FFE0D2EA350414595D9D66D385541D7A3703D3CA35041F6285C1F79385541C3F528AC40A350415C8FC2A57C385541CDCCCC1C44A35041EC51B84E7F385541E17A14DE4BA3504114AE47718538554185EB518853A350413D0AD79384385541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>905276 - 59579
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000000A0000007B14AEA789DC5041AE47E13A6B235541295C8FD288DC50417B14AEF76A235541D7A3701D7DDC5041F6285C0F832355419A99990983DC50415C8FC26586235541295C8F8282DC5041EC51B8CE8623554148E17A8486DC5041F6285CFF8823554185EB515896DC50415C8FC245732355410AD7A39094DC5041AE47E1CA71235541EC51B8DE8FDC5041F6285C7F6E2355417B14AEA789DC5041AE47E13A6B235541
+</a>
+
+<b>
+01060000000100000001030000000100000013000000C2A57D1D7DDC50416D64410F83235541532CFB507DDC504134A9672C832355419A99990983DC50415C8FC26586235541619CC70683DC504118BAF367862355413F41930A83DC504134CA196A86235541B146588682DC50410203D9CE862355417662848786DC5041DBF230FB8823554169AC7D9787DC50419183E08587235541DE2FF50B89DC504134FB9F8685235541E4C596788EDC5041201493147E2355417F60944F96DC504171075C477323554162ADC68E94DC5041F86692C971235541F6284FB293DC50415A8FD82E71235541229C11E38FDC504104EEF18B6E235541215E328F89DC50416C93F7356B23554166BC5CD388DC5041A106B9FB6A235541423AB85386DC50416D67541A70235541D0C026317EDC5041E06CFBD780235541C2A57D1D7DDC50416D64410F83235541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>180179 - 1741516
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001A00000048E17A9468A750418FC2F5284E1655416666666668A7504152B81E154E165541F6285C7F5AA7504133333313491655410AD7A3C042A75041C3F5280C38165541F6285CDF34A75041AE47E1EA311655411F85EB9133A75041F6285C6F32165541C3F5284C2CA7504152B81EA543165541B81E85BB28A75041D7A3704D4B165541713D0A2724A75041713D0AB752165541713D0AD71AA750413D0AD7836B165541C3F5287C1BA7504185EB51786C1655419A99997939A750419A9999F96C165541295C8FA235A75041F6285C8F7D1655417B14AE772EA750415C8FC27593165541713D0A272FA750419A99997994165541666666163FA750417B14AE7795165541E17A14AE37A75041CDCCCC8CA7165541B81E854B38A7504166666696A81655417B14AE3746A75041EC51B81EAA1655418FC2F5984BA75041713D0AB7AA165541CDCCCC8C57A750418FC2F508AC16554148E17AE464A750411F85EB81AD165541AE47E17A73A750415C8FC27586165541B81E851B84A7504152B81EF55916554185EB51686DA75041A4703D3A5016554148E17A9468A750418FC2F5284E165541
+</a>
+
+<b>
+010600000001000000010300000001000000250000008D06320252A7504140C9D3FC421655416FE920F851A750416688A3124316554114AE47C142A7504152B81E0538165541F6285CDF34A75041AE47E1EA311655411F85EB9133A75041F6285C6F32165541295C8FD230A75041295C8F4238165541C3F5284C2CA7504152B81EA5431655415F3BF4E429A7504173CC8FCE48165541B81E85BB28A75041D7A3704D4B165541A02F4DFF27A75041DBEA0F7E4C165541D351CB3A27A75041986F19BC4D165541713D0A2724A75041713D0AB752165541713D0AD71AA750413D0AD7836B1655410C51E6D01BA750419936BF796C16554188D20CF81FA75041E035A68B6C16554127E8D3CE23A750413DBD329C6C1655410A7233EE28A750418EC447B26C1655411FE4AD0E2DA75041C70012C46C16554153A423AD30A7504154C2ABD36C1655419A99997939A750419A9999F96C165541295C8FA235A75041F6285C8F7D1655417B14AE772EA750415C8FC27593165541713D0A272FA750419A99997994165541666666163FA750417B14AE7795165541E17A14AE37A75041CDCCCC8CA7165541B81E854B38A7504166666696A81655417B14AE3746A75041EC51B81EAA1655418FC2F5984BA75041713D0AB7AA165541CDCCCC8C57A750418FC2F508AC16554148E17AE464A750411F85EB81AD165541AE47E17A73A750415C8FC27586165541B81E851B84A7504152B81EF55916554185EB51686DA75041A4703D3A5016554148E17A9468A750418FC2F5284E1655416666666668A7504152B81E154E165541F6285C7F5AA7504133333313491655418D06320252A7504140C9D3FC42165541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>180179 - 3403417
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001A00000048E17A9468A750418FC2F5284E1655416666666668A7504152B81E154E165541F6285C7F5AA7504133333313491655410AD7A3C042A75041C3F5280C38165541F6285CDF34A75041AE47E1EA311655411F85EB9133A75041F6285C6F32165541C3F5284C2CA7504152B81EA543165541B81E85BB28A75041D7A3704D4B165541713D0A2724A75041713D0AB752165541713D0AD71AA750413D0AD7836B165541C3F5287C1BA7504185EB51786C1655419A99997939A750419A9999F96C165541295C8FA235A75041F6285C8F7D1655417B14AE772EA750415C8FC27593165541713D0A272FA750419A99997994165541666666163FA750417B14AE7795165541E17A14AE37A75041CDCCCC8CA7165541B81E854B38A7504166666696A81655417B14AE3746A75041EC51B81EAA1655418FC2F5984BA75041713D0AB7AA165541CDCCCC8C57A750418FC2F508AC16554148E17AE464A750411F85EB81AD165541AE47E17A73A750415C8FC27586165541B81E851B84A7504152B81EF55916554185EB51686DA75041A4703D3A5016554148E17A9468A750418FC2F5284E165541
+</a>
+
+<b>
+010600000001000000010300000001000000250000008D06320252A7504140C9D3FC421655416FE920F851A750416688A3124316554114AE47C142A7504152B81E0538165541F6285CDF34A75041AE47E1EA311655411F85EB9133A75041F6285C6F32165541295C8FD230A75041295C8F4238165541C3F5284C2CA7504152B81EA5431655415F3BF4E429A7504173CC8FCE48165541B81E85BB28A75041D7A3704D4B165541A02F4DFF27A75041DBEA0F7E4C165541D351CB3A27A75041986F19BC4D165541713D0A2724A75041713D0AB752165541713D0AD71AA750413D0AD7836B1655410C51E6D01BA750419936BF796C16554188D20CF81FA75041E035A68B6C16554127E8D3CE23A750413DBD329C6C1655410A7233EE28A750418EC447B26C1655411FE4AD0E2DA75041C70012C46C16554153A423AD30A7504154C2ABD36C1655419A99997939A750419A9999F96C165541295C8FA235A75041F6285C8F7D1655417B14AE772EA750415C8FC27593165541713D0A272FA750419A99997994165541666666163FA750417B14AE7795165541E17A14AE37A75041CDCCCC8CA7165541B81E854B38A7504166666696A81655417B14AE3746A75041EC51B81EAA1655418FC2F5984BA75041713D0AB7AA165541CDCCCC8C57A750418FC2F508AC16554148E17AE464A750411F85EB81AD165541AE47E17A73A750415C8FC27586165541B81E851B84A7504152B81EF55916554185EB51686DA75041A4703D3A5016554148E17A9468A750418FC2F5284E1655416666666668A7504152B81E154E165541F6285C7F5AA7504133333313491655418D06320252A7504140C9D3FC42165541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>182432 - 2913192
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000012000000C3F5282C0E9A50416666668606FD5441F6285C6F0B9A504152B81E55C8FC544152B81E05099A50416666667691FC5441D7A3706DE89950413D0AD7739EFC544148E17AF4E49950418FC2F5B89FFC5441A4703D3AE2995041C3F5281CA0FC5441CDCCCC8CDD995041AE47E19AA1FC54419A9999F9D8995041295C8F42A1FC5441B81E85CBD7995041AE47E16AA2FC54417B14AE07D9995041000000E0B7FC544114AE4761CD995041E17A148EB8FC54415C8FC2C5CD9950415C8FC2B5C1FC544100000000CE995041F6285CDFC5FC54410AD7A390CE9950415C8FC245C7FC54419A999939D299504185EB514808FD544114AE4751D499504185EB518808FD5441C3F528BCF2995041AE47E17A07FD5441C3F5282C0E9A50416666668606FD5441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000C3F5282C0E9A50416666668606FD5441B1843E80169A50418F78013C06FD5441DDF22E4A169A50411D22896302FD54419138B540139A5041DAC76D3DC6FC54413ABC967E109A504119F78D9C8FFC5441F036CA71109A50417F21F9CD8EFC544148E17AF40F9A5041AE47E1DA8EFC54415CB3FC0D0E9A5041032746778FFC5441DBB2CB05099A50418B6A367691FC544122830B21099A5041FF82DEF093FC5441F86254C1099A50415BCE9D2AA2FC544152A81F3D0A9A5041733A4727ADFC54415C9B60850A9A5041F91BEB90B3FC5441019AFAF20A9A5041D8B01E4BBDFC54410EEB6B820B9A504131962C06CAFC5441B196C8A60B9A50419FAD4540CDFC544122F7DDFF0B9A504100AE2228D5FC54414C6643780C9A5041534262D7DFFC54417A73F80C0D9A50419A6FD209EDFC5441C3F5282C0E9A50416666668606FD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>221475 - 5296217
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000012000000AE47E16AD23F51418FC2F518D7A954418FC2F568D33F5141CDCCCC7CD6A9544148E17A84D43F5141E17A14DED4A95441E17A14FED43F51418FC2F5C8CEA954415C8FC2C5D53F514133333303C7A95441EC51B82ED63F51415C8FC295C3A95441A4703D3AD63F5141CDCCCC6CC0A954413D0AD713D63F5141D7A3703DBDA954411F85EB91D53F51417B14AE37BAA954413D0AD743D43F5141333333F3B6A95441C3F5284CD33F5141AE47E11AB4A95441E17A143ED23F51410AD7A390B1A954419A9999A9D03F5141E17A14AEAEA9544185EB5138BC3F51413D0AD7E3ACA95441713D0A47AD3F5141A4703D8AABA9544133333393A83F5141AE47E1CAD2A9544152B81ED5A83F51417B14AE77D3A95441AE47E16AD23F51418FC2F518D7A95441
+</a>
+
+<b>
+01060000000100000001030000000100000027000000A1C95C53703F51418489D0D3CDA954415075C6A8753F5141AB02104BCEA9544116D0C1BB7F3F514183AE9B52CFA95441D213EFFB8A3F5141E878FA6CD0A954413C90A1259D3F51413C191F0BD2A954416A8A43B1B23F5141CB3390F4D3A9544156EF68F5CA3F51419BC84D29D6A9544143A23A2AD23F514116BDE6BFD6A954412F7800AED23F514167616D87D6A95441CBA93F6AD33F5141F36CD4F0D5A95441A355CB71D43F5141DD46FC9DD4A954412A5DD0B1D53F5141A50E36C7C8A95441D8B849EAD53F5141FAD14EB4C3A954418714C322D63F5141477E99CEBFA95441B97BA3C4D53F51418100AA6CBCA95441AA209095D53F5141DE60604DBAA95441F11C076FD33F5141893E6981B4A9544190AAE758D23F51417EA442AFB1A95441E72964ACD03F51413FD474AEAEA95441544566D0CD3F514192E6AFA2AAA95441E13EFDB3C93F51410CD85C11A6A95441B40C15E1C63F514101D5A80FA3A95441628F2C6AC53F51419D6B1365A1A954416C08FBD9C23F514134930F6B9EA95441F1F88A1BC13F51412D7ADAD49BA95441B0B90B23BF3F514161C6127C98A95441316EBAF7BC3F514195B86C5698A95441F969275FB33F514126F0C49097A95441AA505BEAAA3F5141B5271DCB96A95441C8ADD2A09F3F5141964AFCCC95A95441DFFD2379913F5141DB518F8394A954412CD77182873F514114FFAAA193A95441F2002497863F5141BB746E8593A95441ECB9710E773F51414A5C782492A954415A9F0025753F514140FB5F8AA2A95441C3712392723F5141FF173752B6A954413657B2A8703F5141516E1129C7A95441BA621912703F5141D4568443CDA95441A1C95C53703F51418489D0D3CDA95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>649536 - 1305857
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000004F0000005C8FC23557545141C3F5282C58E154415C8FC225545451410AD7A30057E154419A9999894E545141E17A14EE5DE15441713D0A574A545141713D0A3759E15441713D0A87495451410000003057E154418FC2F5B8495451415C8FC23550E154417B14AEE7475451415C8FC2154EE154417B14AEE747545141D7A370ED48E15441AE47E15A49545141000000603EE154418FC2F5084B5451410000003037E15441F6285C4F4C54514185EB512831E15441666666964D5451419A9999B92AE154413D0AD7834E5451411F85EBE123E154415C8FC2354F54514148E17AF41AE154415C8FC2354F5451415C8FC2E516E15441AE47E18A48545141713D0AD70AE15441D7A370DD46545141F6285CEF06E1544114AE4751445451418FC2F5B805E15441D7A3705D3F5451415C8FC2A503E1544152B81E253B545141C3F528AC01E15441D7A370AD365451411F85EB21FFE054415C8FC225355451413D0AD703FEE05441F6285C0F34545141EC51B8DEFCE05441D7A3701D325451418FC2F568FAE054417B14AE373054514152B81EF5F7E05441CDCCCCAC2E5451415C8FC275F5E054418FC2F5E82A545141F6285CDFEEE054417B14AEF7245451417B14AE97E5E05441F6285CFF0E545141F6285CAFEBE05441666666661454514185EB5178FBE054415C8FC2051A545141713D0AE70BE15441B81E858B1B545141D7A370DD10E1544114AE47311E545141CDCCCC0C18E154413D0AD7C31F54514152B81EF51BE15441C3F5287C235451413D0AD7B323E15441B81E852B28545141333333632EE15441AE47E10A2B545141D7A3707D35E154413D0AD7C32C545141EC51B8AE3CE154411F85EB912D545141666666A642E15441EC51B8AE2D5451410AD7A3D048E1544148E17A142D545141CDCCCC1C4FE1544148E17AD42A545141713D0AF757E15441D7A3708D27545141B81E856B63E15441B81E856B23545141CDCCCCDC71E154418FC2F5081D54514114AE476186E15441E17A14BE1B545141E17A145E8DE15441D7A370AD1B5451418FC2F57895E15441CDCCCC4C1C545141AE47E12A9BE15441C3F528BC1D545141713D0A87A1E154410AD7A3901F5451419A999959A7E15441A4703D7A205451418FC2F5C8A8E15441A4703D8A245451417B14AEE7A8E1544185EB5128305451413D0AD753A8E154419A9999F932545141713D0AE7A7E15441713D0A173554514166666606A5E154417B14AE973754514148E17AB4A2E15441D7A3702D3A5451418FC2F538A0E15441713D0AC73D545141EC51B8EE9DE15441000000D03B5451416666661697E154417B14AE473B545141333333E394E1544152B81ED53A5451418FC2F5A893E15441A4703D1A3E5451417B14AE2792E1544100000000405451419A99995992E1544114AE478141545141713D0A1792E154415C8FC2A54B545141B81E85EB8CE154415C8FC2055454514148E17A1488E15441666666A659545141A4703DCA85E1544152B81EC55D545141333333D383E15441000000206054514185EB517881E154413D0AD73363545141C3F5289C7DE15441F6285C9F65545141295C8FF279E154411F85EB4167545141333333D375E15441EC51B85E68545141F6285C4F71E1544185EB513869545141333333136CE15441CDCCCC3C69545141AE47E13A68E1544133333323685451417B14AE9763E15441295C8FC265545141AE47E13A60E15441000000805F545141333333A35CE154415C8FC23557545141C3F5282C58E15441
+</a>
+
+<b>
+010600000001000000010300000001000000250000007E9131C436545141671C3A6B75E15441FF0B8BA236545141FDB4753E74E154417549D53936545141FF5E47CB73E154412D79357B35545141A103807E73E15441FC8B13C633545141F0D7012373E15441C42DD2DE2D54514111486FE372E1544176C86C5F27545141A60A6F5B72E15441285F6E7A23545141480CB0A871E154418FC2F5081D54514114AE476186E15441E17A14BE1B545141E17A145E8DE15441D7A370AD1B5451418FC2F57895E15441CDCCCC4C1C545141AE47E12A9BE15441C3F528BC1D545141713D0A87A1E154410AD7A3901F5451419A999959A7E15441A4703D7A205451418FC2F5C8A8E15441A4703D8A245451417B14AEE7A8E1544185EB5128305451413D0AD753A8E154419A9999F932545141713D0AE7A7E15441713D0A173554514166666606A5E154417B14AE973754514148E17AB4A2E15441D7A3702D3A5451418FC2F538A0E15441713D0AC73D545141EC51B8EE9DE15441000000D03B5451416666661697E154417B14AE473B545141333333E394E1544152B81ED53A5451418FC2F5A893E154411A60A9BF3C5451411DDB30C792E15441A9C0CE0B3D54514108CAB5AA92E15441279897513B545141F5463B9891E154417C1E8C6439545141F9911AA68FE154411860FC4C38545141C5D6D12F8DE154417F696B72375451415B7CF4958AE15441BE8899C5365451413AC1DE7E86E15441BB21066536545141F01B889582E15441E10B473736545141D22E993F7FE1544124F99B4B365451416A1F9BB37AE15441779B44B136545141BF89DB7376E154417E9131C436545141671C3A6B75E15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>649536 - 3436032
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000004F0000005C8FC23557545141C3F5282C58E154415C8FC225545451410AD7A30057E154419A9999894E545141E17A14EE5DE15441713D0A574A545141713D0A3759E15441713D0A87495451410000003057E154418FC2F5B8495451415C8FC23550E154417B14AEE7475451415C8FC2154EE154417B14AEE747545141D7A370ED48E15441AE47E15A49545141000000603EE154418FC2F5084B5451410000003037E15441F6285C4F4C54514185EB512831E15441666666964D5451419A9999B92AE154413D0AD7834E5451411F85EBE123E154415C8FC2354F54514148E17AF41AE154415C8FC2354F5451415C8FC2E516E15441AE47E18A48545141713D0AD70AE15441D7A370DD46545141F6285CEF06E1544114AE4751445451418FC2F5B805E15441D7A3705D3F5451415C8FC2A503E1544152B81E253B545141C3F528AC01E15441D7A370AD365451411F85EB21FFE054415C8FC225355451413D0AD703FEE05441F6285C0F34545141EC51B8DEFCE05441D7A3701D325451418FC2F568FAE054417B14AE373054514152B81EF5F7E05441CDCCCCAC2E5451415C8FC275F5E054418FC2F5E82A545141F6285CDFEEE054417B14AEF7245451417B14AE97E5E05441F6285CFF0E545141F6285CAFEBE05441666666661454514185EB5178FBE054415C8FC2051A545141713D0AE70BE15441B81E858B1B545141D7A370DD10E1544114AE47311E545141CDCCCC0C18E154413D0AD7C31F54514152B81EF51BE15441C3F5287C235451413D0AD7B323E15441B81E852B28545141333333632EE15441AE47E10A2B545141D7A3707D35E154413D0AD7C32C545141EC51B8AE3CE154411F85EB912D545141666666A642E15441EC51B8AE2D5451410AD7A3D048E1544148E17A142D545141CDCCCC1C4FE1544148E17AD42A545141713D0AF757E15441D7A3708D27545141B81E856B63E15441B81E856B23545141CDCCCCDC71E154418FC2F5081D54514114AE476186E15441E17A14BE1B545141E17A145E8DE15441D7A370AD1B5451418FC2F57895E15441CDCCCC4C1C545141AE47E12A9BE15441C3F528BC1D545141713D0A87A1E154410AD7A3901F5451419A999959A7E15441A4703D7A205451418FC2F5C8A8E15441A4703D8A245451417B14AEE7A8E1544185EB5128305451413D0AD753A8E154419A9999F932545141713D0AE7A7E15441713D0A173554514166666606A5E154417B14AE973754514148E17AB4A2E15441D7A3702D3A5451418FC2F538A0E15441713D0AC73D545141EC51B8EE9DE15441000000D03B5451416666661697E154417B14AE473B545141333333E394E1544152B81ED53A5451418FC2F5A893E15441A4703D1A3E5451417B14AE2792E1544100000000405451419A99995992E1544114AE478141545141713D0A1792E154415C8FC2A54B545141B81E85EB8CE154415C8FC2055454514148E17A1488E15441666666A659545141A4703DCA85E1544152B81EC55D545141333333D383E15441000000206054514185EB517881E154413D0AD73363545141C3F5289C7DE15441F6285C9F65545141295C8FF279E154411F85EB4167545141333333D375E15441EC51B85E68545141F6285C4F71E1544185EB513869545141333333136CE15441CDCCCC3C69545141AE47E13A68E1544133333323685451417B14AE9763E15441295C8FC265545141AE47E13A60E15441000000805F545141333333A35CE154415C8FC23557545141C3F5282C58E15441
+</a>
+
+<b>
+010600000001000000010300000001000000250000007E9131C436545141671C3A6B75E15441FF0B8BA236545141FDB4753E74E154417549D53936545141FF5E47CB73E154412D79357B35545141A103807E73E15441FC8B13C633545141F0D7012373E15441C42DD2DE2D54514111486FE372E1544176C86C5F27545141A60A6F5B72E15441285F6E7A23545141480CB0A871E154418FC2F5081D54514114AE476186E15441E17A14BE1B545141E17A145E8DE15441D7A370AD1B5451418FC2F57895E15441CDCCCC4C1C545141AE47E12A9BE15441C3F528BC1D545141713D0A87A1E154410AD7A3901F5451419A999959A7E15441A4703D7A205451418FC2F5C8A8E15441A4703D8A245451417B14AEE7A8E1544185EB5128305451413D0AD753A8E154419A9999F932545141713D0AE7A7E15441713D0A173554514166666606A5E154417B14AE973754514148E17AB4A2E15441D7A3702D3A5451418FC2F538A0E15441713D0AC73D545141EC51B8EE9DE15441000000D03B5451416666661697E154417B14AE473B545141333333E394E1544152B81ED53A5451418FC2F5A893E154411A60A9BF3C5451411DDB30C792E15441A9C0CE0B3D54514108CAB5AA92E15441279897513B545141F5463B9891E154417C1E8C6439545141F9911AA68FE154411860FC4C38545141C5D6D12F8DE154417F696B72375451415B7CF4958AE15441BE8899C5365451413AC1DE7E86E15441BB21066536545141F01B889582E15441E10B473736545141D22E993F7FE1544124F99B4B365451416A1F9BB37AE15441779B44B136545141BF89DB7376E154417E9131C436545141671C3A6B75E15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>224518 - 56258
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001D000000EC51B84E0DC850411F85EB214B5D5441713D0A3709C850417B14AE17535D5441C3F5286C09C85041F6285CDF535D5441E17A14DE09C85041B81E859B545D544185EB51C80EC850415C8FC2455C5D5441000000F010C8504114AE4721605D5441D7A370DD12C85041AE47E1FA675D54411F85EB8117C85041000000206E5D54413D0AD7A329C85041E17A147E685D5441B81E850B48C850419A9999095F5D5441666666A645C8504148E17A54555D54410000004043C850418FC2F5A84B5D5441CDCCCCFC40C85041CDCCCC7C425D5441D7A370BD3CC85041AE47E1EA415D5441333333333AC85041713D0AE7405D544148E17A6438C85041295C8F02405D54419A9999B937C850411F85EBF1405D54417B14AEB736C850419A999909465D544185EB51A830C8504185EB5108475D5441D7A3707D2FC85041A4703DDA435D5441A4703DAA2CC8504185EB5128455D54415C8FC23529C85041EC51B80E3B5D54417B14AE7723C8504148E17AD43B5D54413D0AD73321C850413D0AD7233C5D5441EC51B83E12C85041B81E85DB3D5D54415C8FC2850CC85041CDCCCC3C3E5D5441E17A145E0AC8504152B81E953D5D5441333333230DC850419A9999D9455D5441EC51B84E0DC850411F85EB214B5D5441
+</a>
+
+<b>
+0106000000010000000103000000010000002B000000333333230DC850419A9999D9455D54414B53B1310DC85041184AF09B475D5441052DEA340DC850413C4E0F00485D544104A43B440DC85041E50E0DDC495D5441EC51B84E0DC850411F85EB214B5D54418721EE220DC85041CF9317774B5D5441C55F17000DC850410BC0DABA4B5D54413D8842D80AC8504109AB2DEC4F5D54419DDCDAC00AC850415C98B319505D54410EA0BA7B0AC85041522727A0505D5441EBF293A409C850414F5BA042525D5441713D0A3709C850417B14AE17535D5441B707843F09C8504146668A37535D5441C3F5286C09C85041F6285CDF535D5441CD06E0B809C8504129B8115E545D54414F59B8350AC85041B61E3224555D54416FCAAB2E0DC85041D85DE8C6595D544185EB51C80EC850415C8FC2455C5D5441000000F010C8504114AE4721605D5441D7A370DD12C85041AE47E1FA675D5441877CB60C13C850417AC57339685D54411F85EB8117C85041000000206E5D5441B81E850B48C850419A9999095F5D54411CCF2C7B44C85041954DDA9E505D54410000004043C850418FC2F5A84B5D5441CDCCCCFC40C85041CDCCCC7C425D5441D7A370BD3CC85041AE47E1EA415D5441333333333AC85041713D0AE7405D544148E17A6438C85041295C8F02405D54419A9999B937C850411F85EBF1405D54417B14AEB736C850419A999909465D544185EB51A830C8504185EB5108475D5441D7A3707D2FC85041A4703DDA435D5441A4703DAA2CC8504185EB5128455D54415C8FC23529C85041EC51B80E3B5D54417B14AE7723C8504148E17AD43B5D54413D0AD73321C850413D0AD7233C5D5441EC51B83E12C85041B81E85DB3D5D544118C8F9070DC85041993027343E5D54415C8FC2850CC85041CDCCCC3C3E5D5441FC2D47FF0BC850411FCBEC133E5D5441E17A145E0AC8504152B81E953D5D5441333333230DC850419A9999D9455D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>975159 - 1759254
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000200000001030000000200000008000000EAFB60066DDC5041D41B89A68B7F5441BBF6E21787DC504142216F5A907F54415D84AE7F8DDC50410502DF7F917F54412294DB938EDC50412AB3FD1A8C7F54414EC8B9C48DDC50413D9EAFC48B7F54412394DB938EDC5041C798C434897F54419B67252B70DC5041E6EB68F2837F5441EAFB60066DDC5041D41B89A68B7F54410E000000495DE3A671DC504178693DF8857F5441014FA81781DC5041FB2A1D43887F5441B044669382DC5041F4CCA265887F54416AC75BDB83DC5041D325FC00897F544154ADEC4284DC5041B27E559C897F544166989EEC83DC50419C64E6038A7F5441873F455183DC5041983529158A7F5441EB34397F81DC5041BD0B8D68897F5441A692E90E7EDC5041E2E1F0BB887F54413C1A364B7BDC5041FB2A1D43887F5441D7D03F7678DC504124303E85877F5441718749A175DC50413E796A0C877F5441EA96AC6773DC504150641CB6867F5441495DE3A671DC504178693DF8857F5441010300000001000000040000004709E1FF6CDC504140CD6CB38B7F5441EAFB60066DDC5041D41B89A68B7F54414B389EEE6CDC504143FC29A28B7F54414709E1FF6CDC504140CD6CB38B7F5441
+</a>
+
+<b>
+0106000000010000000103000000020000000800000090A5DF066DDC5041CD7E59A58B7F5441BBF6E21787DC504140216F5A907F54416284AE7F8DDC50410402DF7F917F54412594DB938EDC504129B3FD1A8C7F54414EC8B9C48DDC50413E9EAFC48B7F54412594DB938EDC5041CC98C434897F54419967252B70DC5041E7EB68F2837F544190A5DF066DDC5041CD7E59A58B7F54410E000000485DE3A671DC504178693DF8857F5441FF4EA81781DC5041FE2A1D43887F5441AE44669382DC5041F4CCA265887F544167C75BDB83DC5041D625FC00897F544152ADEC4284DC5041AD7E559C897F544167989EEC83DC50419964E6038A7F5441853F455183DC5041993529158A7F5441EA34397F81DC5041C20B8D68897F5441AB92E90E7EDC5041E0E1F0BB887F5441391A364B7BDC5041FE2A1D43887F5441DBD03F7678DC504127303E85877F5441738749A175DC50413B796A0C877F5441ED96AC6773DC50414F641CB6867F5441485DE3A671DC504178693DF8857F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>975159 - 4398340
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000200000001030000000200000008000000EAFB60066DDC5041D41B89A68B7F5441BBF6E21787DC504142216F5A907F54415D84AE7F8DDC50410502DF7F917F54412294DB938EDC50412AB3FD1A8C7F54414EC8B9C48DDC50413D9EAFC48B7F54412394DB938EDC5041C798C434897F54419B67252B70DC5041E6EB68F2837F5441EAFB60066DDC5041D41B89A68B7F54410E000000495DE3A671DC504178693DF8857F5441014FA81781DC5041FB2A1D43887F5441B044669382DC5041F4CCA265887F54416AC75BDB83DC5041D325FC00897F544154ADEC4284DC5041B27E559C897F544166989EEC83DC50419C64E6038A7F5441873F455183DC5041983529158A7F5441EB34397F81DC5041BD0B8D68897F5441A692E90E7EDC5041E2E1F0BB887F54413C1A364B7BDC5041FB2A1D43887F5441D7D03F7678DC504124303E85877F5441718749A175DC50413E796A0C877F5441EA96AC6773DC504150641CB6867F5441495DE3A671DC504178693DF8857F5441010300000001000000040000004709E1FF6CDC504140CD6CB38B7F5441EAFB60066DDC5041D41B89A68B7F54414B389EEE6CDC504143FC29A28B7F54414709E1FF6CDC504140CD6CB38B7F5441
+</a>
+
+<b>
+0106000000010000000103000000020000000800000090A5DF066DDC5041CD7E59A58B7F5441BBF6E21787DC504140216F5A907F54416284AE7F8DDC50410402DF7F917F54412594DB938EDC504129B3FD1A8C7F54414EC8B9C48DDC50413E9EAFC48B7F54412594DB938EDC5041CC98C434897F54419967252B70DC5041E7EB68F2837F544190A5DF066DDC5041CD7E59A58B7F54410E000000485DE3A671DC504178693DF8857F5441FF4EA81781DC5041FE2A1D43887F5441AE44669382DC5041F4CCA265887F544167C75BDB83DC5041D625FC00897F544152ADEC4284DC5041AD7E559C897F544167989EEC83DC50419964E6038A7F5441853F455183DC5041993529158A7F5441EA34397F81DC5041C20B8D68897F5441AB92E90E7EDC5041E0E1F0BB887F5441391A364B7BDC5041FE2A1D43887F5441DBD03F7678DC504127303E85877F5441738749A175DC50413B796A0C877F5441ED96AC6773DC50414F641CB6867F5441485DE3A671DC504178693DF8857F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>224927 - 249885
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000A00000052B81EC5BAFB504185EB51B83A8954410AD7A370B8FB5041295C8FB239895441EC51B8EEB8FB50415C8FC225358954419A999999B5FB5041E17A144E358954413D0AD7C3BBFB50418FC2F5A86D89544152B81EF5BCFB5041AE47E1FA6C89544148E17AB4BFFB5041CDCCCC8C6B895441000000B0BFFB5041D7A370ED69895441C3F528BCC2FB5041B81E857B6989544152B81EC5BAFB504185EB51B83A895441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000000000B0BFFB5041D7A370ED6989544175413AB1C0FB50412019E1C7698954413FF20FBAC2FB50417B003A6F69895441444C4523BDFB50411D93079F48895441F6F7F4ECBCFB50418F48276047895441E8DB4383BCFB5041460BA3F34489544195BE1EC5BAFB50414B1052B83A895441AC1E59A0B9FB504188F2D6373A8954410AD7A370B8FB5041295C8FB23989544128F469CEB8FB50414EFD385036895441A3DF07D8B8FB5041675960F735895441D79D6FE4B8FB504173FFC484358954418D4BB8EEB8FB50413BCAC22535895441CA219A99B5FB50412843154E358954410C5AED13BAFB5041B30ECB3C5E8954413D0AD7C3BBFB50418FC2F5A86D89544152B81EF5BCFB5041AE47E1FA6C89544162039CCDBEFB50417541F6046C8954419853748CBFFB504190EA739D6B895441852611B0BFFB5041AFBBA6F369895441000000B0BFFB5041D7A370ED69895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>224927 - 304509
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000A00000052B81EC5BAFB504185EB51B83A8954410AD7A370B8FB5041295C8FB239895441EC51B8EEB8FB50415C8FC225358954419A999999B5FB5041E17A144E358954413D0AD7C3BBFB50418FC2F5A86D89544152B81EF5BCFB5041AE47E1FA6C89544148E17AB4BFFB5041CDCCCC8C6B895441000000B0BFFB5041D7A370ED69895441C3F528BCC2FB5041B81E857B6989544152B81EC5BAFB504185EB51B83A895441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000000000B0BFFB5041D7A370ED6989544175413AB1C0FB50412019E1C7698954413FF20FBAC2FB50417B003A6F69895441444C4523BDFB50411D93079F48895441F6F7F4ECBCFB50418F48276047895441E8DB4383BCFB5041460BA3F34489544195BE1EC5BAFB50414B1052B83A895441AC1E59A0B9FB504188F2D6373A8954410AD7A370B8FB5041295C8FB23989544128F469CEB8FB50414EFD385036895441A3DF07D8B8FB5041675960F735895441D79D6FE4B8FB504173FFC484358954418D4BB8EEB8FB50413BCAC22535895441CA219A99B5FB50412843154E358954410C5AED13BAFB5041B30ECB3C5E8954413D0AD7C3BBFB50418FC2F5A86D89544152B81EF5BCFB5041AE47E1FA6C89544162039CCDBEFB50417541F6046C8954419853748CBFFB504190EA739D6B895441852611B0BFFB5041AFBBA6F369895441000000B0BFFB5041D7A370ED69895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>227494 - 247231
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000020000000D7A370EDB8185141EC51B8DECB0D5541713D0A37B718514133333353C70D55418FC2F5E8B5185141F6285C4FC40D554148E17AF4B4185141CDCCCC5CC10D5541D7A3701DB31851417B14AEB7BD0D55418FC2F548B2185141E17A14BEBA0D554100000090B1185141666666C6BA0D5541C3F5289CB0185141295C8FF2BA0D55415C8FC255AE185141A4703D2ABB0D55418FC2F5A8AD185141B81E85ABBB0D554148E17AE4AC1851410AD7A380BC0D554166666666AC185141F6285C6FBE0D55411F85EB91AC185141C3F5289CBF0D554148E17AF4AC1851411F85EBD1C00D55415C8FC2C5AD18514114AE4791C20D55415C8FC2D5AF185141E17A143EC50D554100000060B01851418FC2F568C60D55415C8FC2C5AF185141A4703DBAC60D5541D7A3701DB218514152B81E85CA0D55419A999949B5185141000000B0CD0D554100000000BC185141333333C3D20D55413D0AD793C118514185EB5168DB0D554133333393C7185141EC51B83EE30D5541F6285C2FC9185141B81E859BE20D5541CDCCCC7CCA1851417B14AE17E20D55411F85EB61C71851415C8FC215DF0D5541F6285C2FC61851419A999969DD0D55415C8FC215C5185141713D0A07DC0D55410AD7A310C1185141000000F0D40D5541C3F5281CC01851415C8FC2D5D30D55411F85EB71BD185141F6285C3FD10D5541D7A370EDB8185141EC51B8DECB0D5541
+</a>
+
+<b>
+0106000000010000000103000000010000002B000000D7A370EDB8185141EC51B8DECB0D55418DCA0379B8185141F4D0B9A9CA0D5541D3C5433DB8185141BCF5250BCA0D55419C91559EB71851413E2E5865C80D55412F8ECC80B71851410724F516C80D5541FE90C2F9B51851417B812C76C40D55418FC2F5E8B5185141F6285C4FC40D55412EBCF631B51851414817901AC20D55417D406A0CB5185141613EACA6C10D554139FB65E5B41851419571EC3EC10D55412A23D9C2B418514103007BFAC00D55416AE8945AB3185141E4E1CC30BE0D5541E26D1D4AB3185141601C2E10BE0D5541D7A3701DB31851417B14AEB7BD0D55418FC2F548B2185141E17A14BEBA0D5541FF2F0199B1185141D9B4FEC5BA0D5541DC47690DB118514140C80CDEBA0D5541C3F5289CB0185141295C8FF2BA0D55415C8FC255AE185141A4703D2ABB0D55414C21FBDCAD18514116C19984BB0D55411752437FAD1851416195BFD8BB0D554148E17AE4AC1851410AD7A380BC0D554166666666AC185141F6285C6FBE0D55411F85EB91AC185141C3F5289CBF0D554148E17AF4AC1851411F85EBD1C00D55415C8FC2C5AD18514114AE4791C20D55415C8FC2D5AF185141E17A143EC50D554100000060B01851418FC2F568C60D55415C8FC2C5AF185141A4703DBAC60D5541B895322BB2185141351DDB92CA0D55419A999949B5185141000000B0CD0D55414603554CB71851410F0F2A35CF0D5541616BCD9EB71851419B238473CF0D5541A41532A7BA185141988A82BED10D55413B67329BBB185141C4D2FC76D20D55413ECAFD00BD185141B6DCEEB8D00D55412FB37DFFBC1851410EA725B7D00D5541676064ADBC185141B43E6B55D00D55418D6E3B0DBC1851411BEBC496CF0D5541A6CE5905BC1851416D32638DCF0D5541FB92640DBB185141E6C03966CE0D5541A7D11393B918514142D3E3A3CC0D5541D7A370EDB8185141EC51B8DECB0D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>227494 - 264867
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000020000000D7A370EDB8185141EC51B8DECB0D5541713D0A37B718514133333353C70D55418FC2F5E8B5185141F6285C4FC40D554148E17AF4B4185141CDCCCC5CC10D5541D7A3701DB31851417B14AEB7BD0D55418FC2F548B2185141E17A14BEBA0D554100000090B1185141666666C6BA0D5541C3F5289CB0185141295C8FF2BA0D55415C8FC255AE185141A4703D2ABB0D55418FC2F5A8AD185141B81E85ABBB0D554148E17AE4AC1851410AD7A380BC0D554166666666AC185141F6285C6FBE0D55411F85EB91AC185141C3F5289CBF0D554148E17AF4AC1851411F85EBD1C00D55415C8FC2C5AD18514114AE4791C20D55415C8FC2D5AF185141E17A143EC50D554100000060B01851418FC2F568C60D55415C8FC2C5AF185141A4703DBAC60D5541D7A3701DB218514152B81E85CA0D55419A999949B5185141000000B0CD0D554100000000BC185141333333C3D20D55413D0AD793C118514185EB5168DB0D554133333393C7185141EC51B83EE30D5541F6285C2FC9185141B81E859BE20D5541CDCCCC7CCA1851417B14AE17E20D55411F85EB61C71851415C8FC215DF0D5541F6285C2FC61851419A999969DD0D55415C8FC215C5185141713D0A07DC0D55410AD7A310C1185141000000F0D40D5541C3F5281CC01851415C8FC2D5D30D55411F85EB71BD185141F6285C3FD10D5541D7A370EDB8185141EC51B8DECB0D5541
+</a>
+
+<b>
+0106000000010000000103000000010000002B000000D7A370EDB8185141EC51B8DECB0D55418DCA0379B8185141F4D0B9A9CA0D5541D3C5433DB8185141BCF5250BCA0D55419C91559EB71851413E2E5865C80D55412F8ECC80B71851410724F516C80D5541FE90C2F9B51851417B812C76C40D55418FC2F5E8B5185141F6285C4FC40D55412EBCF631B51851414817901AC20D55417D406A0CB5185141613EACA6C10D554139FB65E5B41851419571EC3EC10D55412A23D9C2B418514103007BFAC00D55416AE8945AB3185141E4E1CC30BE0D5541E26D1D4AB3185141601C2E10BE0D5541D7A3701DB31851417B14AEB7BD0D55418FC2F548B2185141E17A14BEBA0D5541FF2F0199B1185141D9B4FEC5BA0D5541DC47690DB118514140C80CDEBA0D5541C3F5289CB0185141295C8FF2BA0D55415C8FC255AE185141A4703D2ABB0D55414C21FBDCAD18514116C19984BB0D55411752437FAD1851416195BFD8BB0D554148E17AE4AC1851410AD7A380BC0D554166666666AC185141F6285C6FBE0D55411F85EB91AC185141C3F5289CBF0D554148E17AF4AC1851411F85EBD1C00D55415C8FC2C5AD18514114AE4791C20D55415C8FC2D5AF185141E17A143EC50D554100000060B01851418FC2F568C60D55415C8FC2C5AF185141A4703DBAC60D5541B895322BB2185141351DDB92CA0D55419A999949B5185141000000B0CD0D55414603554CB71851410F0F2A35CF0D5541616BCD9EB71851419B238473CF0D5541A41532A7BA185141988A82BED10D55413B67329BBB185141C4D2FC76D20D55413ECAFD00BD185141B6DCEEB8D00D55412FB37DFFBC1851410EA725B7D00D5541676064ADBC185141B43E6B55D00D55418D6E3B0DBC1851411BEBC496CF0D5541A6CE5905BC1851416D32638DCF0D5541FB92640DBB185141E6C03966CE0D5541A7D11393B918514142D3E3A3CC0D5541D7A370EDB8185141EC51B8DECB0D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>227496 - 247232
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000017000000E17A141ED71851411F85EB81DD0D55418FC2F5A8D61851415C8FC295DC0D55419A999979D41851419A9999D9DD0D5541F6285C1FD218514152B81E85DE0D5541A4703D1ACD185141E17A14BEE00D5541CDCCCC7CCA1851417B14AE17E20D5541F6285C2FC9185141B81E859BE20D554133333393C7185141EC51B83EE30D5541D7A3704DCC1851413D0AD773EA0D5541C3F528DCCF185141D7A3708DF30D5541E17A14AED71851418FC2F588070E5541EC51B8FED7185141C3F5286C0A0E5541C3F528FCD91851419A9999D90C0E55417B14AEA7DE185141713D0A470F0E5541000000E0E5185141713D0A970F0E55413D0AD733EB185141C3F528EC0E0E554166666646EA1851418FC2F5180C0E55411F85EBE1E9185141666666E60A0E5541713D0AC7E618514152B81E55010E5541CDCCCCCCE5185141295C8F52FE0D5541295C8F62E4185141713D0AF7F90D5541333333D3DF1851419A999929EF0D5541E17A141ED71851411F85EB81DD0D5541
+</a>
+
+<b>
+01060000000100000001030000000100000024000000BD3E8883DE1851417C0740340F0E554164149327E6185141287B128E0F0E5541CCBFAC2BEB185141604E4AD30E0E554166666646EA1851418FC2F5180C0E55413BC2E105EA1851414E391E540B0E55411F85EBE1E9185141666666E60A0E5541E6264A9FE71851414D5974EF030E554158C707ABE618514181D5DEFE000E5541CDCCCCCCE5185141295C8F52FE0D5541255D4B85E51851411FAC5B76FD0D5541E3289E4CE4185141D6430FC3F90D554120101DA9E2185141E55044E1F50D55416D4A2AD3DF18514132898729EF0D55414DA01144DA185141CDDB1CE4E30D55418FC2F5A8D61851415C8FC295DC0D55419A999979D41851419A9999D9DD0D5541A019E8F0D318514127DE8700DE0D5541464CA1D4D1185141508234A6DE0D5541D0A76ABACC1851415E8E8CEFE00D5541CDCCCC7CCA1851417B14AE17E20D5541F6285C2FC9185141B81E859BE20D554133333393C7185141EC51B83EE30D5541F2DCC655C81851411A2C723DE40D554117C02DE7C918514160E157CBE60D5541D7A3704DCC1851413D0AD773EA0D55415F93D954CE1851417F667AA4EF0D5541E3F7812ECF18514159D53DD1F10D5541177177D9D0185141774DB714F60D5541CAB6C15CD118514108DD3364F70D5541C59C9C0CD4185141E826E241FE0D5541E17A14AED71851418FC2F588070E554176E1A0B9D71851418D19D2F2070E55412BDD3507D81851411E5B84760A0E554168CF9131DA185141D9D85CF50C0E5541FBEA78E3DB1851417393E8D60D0E5541BD3E8883DE1851417C0740340F0E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>227496 - 264926
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000017000000E17A141ED71851411F85EB81DD0D55418FC2F5A8D61851415C8FC295DC0D55419A999979D41851419A9999D9DD0D5541F6285C1FD218514152B81E85DE0D5541A4703D1ACD185141E17A14BEE00D5541CDCCCC7CCA1851417B14AE17E20D5541F6285C2FC9185141B81E859BE20D554133333393C7185141EC51B83EE30D5541D7A3704DCC1851413D0AD773EA0D5541C3F528DCCF185141D7A3708DF30D5541E17A14AED71851418FC2F588070E5541EC51B8FED7185141C3F5286C0A0E5541C3F528FCD91851419A9999D90C0E55417B14AEA7DE185141713D0A470F0E5541000000E0E5185141713D0A970F0E55413D0AD733EB185141C3F528EC0E0E554166666646EA1851418FC2F5180C0E55411F85EBE1E9185141666666E60A0E5541713D0AC7E618514152B81E55010E5541CDCCCCCCE5185141295C8F52FE0D5541295C8F62E4185141713D0AF7F90D5541333333D3DF1851419A999929EF0D5541E17A141ED71851411F85EB81DD0D5541
+</a>
+
+<b>
+01060000000100000001030000000100000024000000BD3E8883DE1851417C0740340F0E554164149327E6185141287B128E0F0E5541CCBFAC2BEB185141604E4AD30E0E554166666646EA1851418FC2F5180C0E55413BC2E105EA1851414E391E540B0E55411F85EBE1E9185141666666E60A0E5541E6264A9FE71851414D5974EF030E554158C707ABE618514181D5DEFE000E5541CDCCCCCCE5185141295C8F52FE0D5541255D4B85E51851411FAC5B76FD0D5541E3289E4CE4185141D6430FC3F90D554120101DA9E2185141E55044E1F50D55416D4A2AD3DF18514132898729EF0D55414DA01144DA185141CDDB1CE4E30D55418FC2F5A8D61851415C8FC295DC0D55419A999979D41851419A9999D9DD0D5541A019E8F0D318514127DE8700DE0D5541464CA1D4D1185141508234A6DE0D5541D0A76ABACC1851415E8E8CEFE00D5541CDCCCC7CCA1851417B14AE17E20D5541F6285C2FC9185141B81E859BE20D554133333393C7185141EC51B83EE30D5541F2DCC655C81851411A2C723DE40D554117C02DE7C918514160E157CBE60D5541D7A3704DCC1851413D0AD773EA0D55415F93D954CE1851417F667AA4EF0D5541E3F7812ECF18514159D53DD1F10D5541177177D9D0185141774DB714F60D5541CAB6C15CD118514108DD3364F70D5541C59C9C0CD4185141E826E241FE0D5541E17A14AED71851418FC2F588070E554176E1A0B9D71851418D19D2F2070E55412BDD3507D81851411E5B84760A0E554168CF9131DA185141D9D85CF50C0E5541FBEA78E3DB1851417393E8D60D0E5541BD3E8883DE1851417C0740340F0E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>228418 - 58889
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000026000000D7A370EDD6D95041D7A3708D4DC15441E17A149EDBD9504148E17AD442C15441713D0A27D5D95041000000C03CC15441AE47E13AD1D9504185EB51D839C15441F6285CCFCFD950419A99991939C15441C3F5281CCDD95041EC51B8AE37C15441666666D6C8D950411F85EBF135C15441B81E85CBBFD95041B81E859B33C154415C8FC2B5B6D950413D0AD7D331C154413D0AD793ADD950418FC2F58830C1544148E17A34A4D95041CDCCCCEC2FC154417B14AEE799D950410AD7A3B02FC1544152B81ED58CD950415C8FC2E530C154415C8FC26585D95041E17A14BE31C15441F6285CDF7AD950410AD7A3F032C15441A4703DBA73D950419A9999E933C154417B14AED76FD9504114AE477134C15441F6285CBF66D95041713D0A6736C1544114AE472161D950410AD7A30038C154418FC2F58860D95041E17A148E45C15441C3F5286C61D950413333335345C15441B81E85FB64D950415C8FC22545C1544185EB518868D95041713D0AA745C15441713D0AF76BD95041E17A149E46C154413333331378D95041D7A3704D4CC154410AD7A3C07CD950418FC2F5F84DC15441295C8F1284D950413D0AD7F34FC15441CDCCCC8C85D95041A4703D5A50C15441C3F5286C8AD9504185EB514851C15441000000608FD9504114AE477151C15441713D0A47ABD95041295C8F7250C1544148E17AD4AED9504148E17AA450C1544114AE4741B2D950410000009051C15441D7A3706DB5D950413333332353C15441D7A3703DB8D950417B14AE6755C154418FC2F588B8D950411F85EBB155C1544185EB5108C5D950413D0AD74346C15441D7A370EDD6D95041D7A3708D4DC15441
+</a>
+
+<b>
+010600000001000000010300000001000000380000003D0AD793ADD950418FC2F58830C154417E369F8AA6D950415DBFBA1330C1544148E17A34A4D95041CDCCCCEC2FC154417B14AEE799D950410AD7A3B02FC1544108BCF2EC94D9504161E5622630C1544152B81ED58CD950415C8FC2E530C15441E97F714887D95041CBE4388731C15441E5C4721580D95041D90FDA5832C15441F6285CDF7AD950410AD7A3F032C154418E3D76F570D95041BD034B4A34C154417B14AED76FD9504114AE477134C15441CCCCA8AC68D95041AC84BBFC35C15441F6285CBF66D95041713D0A6736C1544114AE472161D950410AD7A30038C15441DAEBA91D61D95041D131F8013BC15441421165F560D95041F7BC28DD3DC154418FC2F58860D95041E17A148E45C15441C3F5286C61D950413333335345C15441B81E85FB64D950415C8FC22545C1544185EB518868D95041713D0AA745C154414213BDC06BD95041005CD08E46C15441713D0AF76BD95041E17A149E46C154416FB7A45B71D950416624332649C154417D375E5678D9504181BF6B654CC15441D7DED6F27BD95041C4BB7BAF4DC154416272EF157FD95041A903869A4EC15441012A822383D950413BB32DB34FC154410795CAAD85D950414876896050C15441A8EE53BE87D95041A9CD6AC550C154417A131F6289D9504126BF8A1551C154413809AF278AD95041B708403B51C15441DB88E3BE8DD95041B8EECD6351C15441F4A188D58DD950410738896451C154418DC8196592D95041C918B65551C1544112EF763D99D9504147E3381751C1544119B31B32ABD95041E8714E7350C15441713D0A47ABD95041295C8F7250C1544148E17AD4AED9504148E17AA450C1544114AE4741B2D950410000009051C15441D7A3706DB5D950413333332353C15441D7A3703DB8D950417B14AE6755C154418FC2F588B8D950411F85EBB155C1544185EB5108C5D950413D0AD74346C15441D7A370EDD6D95041D7A3708D4DC15441E17A149EDBD9504148E17AD442C15441713D0A27D5D95041000000C03CC154410E9A9F19D4D95041296878F83BC15441AE47E13AD1D9504185EB51D839C15441F6285CCFCFD950419A99991939C154412A0E693ECCD95041E77B8A5437C15441666666D6C8D950411F85EBF135C1544106A5A08AC2D95041A03C465134C15441B81E85CBBFD95041B81E859B33C154415C8FC2B5B6D950413D0AD7D331C15441F1F69629B4D95041E33A8A7731C154413D0AD793ADD950418FC2F58830C15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>229448 - 262501
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000A000000C3F5281C93A55041C3F528FC016854410000005092A55041EC51B89E03685441E17A145EBFA5504114AE474106685441EC51B87EBFA55041EC51B8DEFC675441F6285C4FBBA55041AE47E10ADA675441EC51B8FEB3A550417B14AE67DF6754419A9999F9ABA55041C3F528ACEB675441295C8FC2A8A55041333333D3EE675441B81E852B9BA55041A4703DDAFA675441C3F5281C93A55041C3F528FC01685441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000E2E9968BBCA55041A5628952E4675441F6285C4FBBA55041AE47E10ADA67544158CA118EBAA550410EF39398DA6754414538B9FEB3A550418906AF67DF675441C0F29AF9ABA55041E07B28ACEB675441F94D1D92AAA55041C336A80CED675441295C8FC2A8A55041333333D3EE6754410FBB842B9BA55041D5C83DDAFA67544193D1B77EBFA5504184E5B8DEFC675441E2E9968BBCA55041A5628952E4675441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>230175 - 1151957
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003B000000A4703D0A40F750418FC2F5681B2E5441D7A3705D4EF750413D0AD7C31A2E54418FC2F5985AF75041713D0A371A2E5441C3F5281C65F75041B81E855B1A2E54417B14AE4763F750417B14AEC7182E544114AE47A160F75041D7A3700D172E5441D7A370BD5DF75041AE47E12A152E5441D7A3707D5CF750417B14AE57142E5441000000B05BF7504152B81ED5132E54417B14AE475AF750418FC2F5D8122E54411F85EB0159F750411F85EBE1112E544185EB51C853F75041333333830C2E5441E17A149E50F75041A4703D9A082E544152B81EE54FF750413D0AD793072E5441295C8F224EF75041EC51B8FE042E5441E17A143E4DF750411F85EB91032E544114AE471149F75041D7A370FDFC2D5441AE47E1AA48F7504185EB5158FC2D5441713D0A7747F750413D0AD763FA2D544148E17AC445F750410AD7A390F72D54415C8FC2F540F7504166666696EF2D54417B14AE273AF75041A4703DEAE52D5441333333F336F7504148E17A74E12D54418FC2F57833F75041CDCCCC0CDD2D5441EC51B81E31F75041EC51B85EDA2D5441713D0AF72EF75041713D0A47D82D544185EB51482CF7504114AE47D1D52D5441713D0AC72AF75041B81E855BD42D5441EC51B8FE29F75041E17A147ED32D544185EB517829F750419A9999E9D22D54413D0AD76329F7504114AE4751D32D54411F85EB312AF75041AE47E16ADC2D54417B14AEA722F7504152B81ED5DC2D5441A4703DCA22F7504114AE47A1DE2D5441333333931FF75041B81E85CBDE2D5441D7A3705D20F750411F85EBF1E42D5441000000A020F75041E17A14CEE62D544148E17AA41CF75041A4703DDAE72D5441A4703DCA16F75041D7A3704DEE2D544152B81E9519F7504185EB51E8FA2D5441A4703DFA1CF75041295C8F32012E5441A4703D0A1EF750410AD7A3A0022E5441295C8F521FF75041295C8F42042E54418FC2F5B820F750413D0AD703062E54419A99993922F750418FC2F5E8072E5441F6285CDF23F7504152B81EE5092E54410000003025F75041EC51B86E0B2E5441AE47E1FA25F75041EC51B86E0C2E5441EC51B89E26F750411F85EB810D2E544148E17AC427F75041713D0AB70F2E544148E17A9428F7504185EB5168112E5441B81E858B2BF75041D7A3700D192E54413D0AD73333F750417B14AEB7172E5441F6285C2F37F7504152B81E05172E5441AE47E14A38F75041CDCCCC7C192E5441F6285C7F39F75041333333F31C2E5441A4703D4A3DF75041666666F61B2E5441AE47E1CA3FF750410AD7A3701B2E5441A4703D0A40F750418FC2F5681B2E5441
+</a>
+
+<b>
+0106000000010000000103000000010000002D0000003D3B453733F75041A56C93D6FF2D5441BDA61AA92EF750411B8E4CB4F92D544114D537572DF75041096253EDF72D5441000000A020F75041E17A14CEE62D544148E17AA41CF75041A4703DDAE72D5441DC66A89C1BF75041058C8D66E92D5441E501448419F750411396264CEB2D54418B555D1C18F750417293CBD8EC2D5441A4703DCA16F75041D7A3704DEE2D5441B836C3C517F750419EF6D163EE2D5441DA51FFF819F75041B3BAAF73EE2D5441B5D3E0E41CF75041A85B6E68EE2D5441D271549D1DF75041445C6B42EF2D54414840BB4F1DF750413199EAD3EF2D5441DA96FDD51CF7504100372EB8F02D5441E8E310331DF750418E9C9C87F32D54413D0826EE1EF75041522FB49DF72D54414EB12C2F22F750416D5BD2F1FC2D54418BA77FB123F750416F5FAE5BFF2D5441A53434AB25F7504104A0FAF9012E54415D691DCC27F75041BCD4E31A042E5441E763E95D2EF75041D37FBD6E0B2E5441D94A3F0A32F7504186596609132E5441860C394134F7504195DC5988172E5441F6285C2F37F7504152B81E05172E5441AE47E14A38F75041CDCCCC7C192E5441F6285C7F39F75041333333F31C2E5441A4703D4A3DF75041666666F61B2E5441AE47E1CA3FF750410AD7A3701B2E5441A4703D0A40F750418FC2F5681B2E5441D7A3705D4EF750413D0AD7C31A2E54418FC2F5985AF75041713D0A371A2E5441C3F5281C65F75041B81E855B1A2E54417B14AE4763F750417B14AEC7182E544114AE47A160F75041D7A3700D172E5441D7A370BD5DF75041AE47E12A152E5441D7A3707D5CF750417B14AE57142E5441000000B05BF7504152B81ED5132E54417B14AE475AF750418FC2F5D8122E54411F85EB0159F750411F85EBE1112E5441CE9F4E1842F750413AEE8DDF132E54415198AFCD3EF75041A5C3F0700F2E54413A72B34C39F750418389B307082E54419E04106836F7504196036922042E54413D3B453733F75041A56C93D6FF2D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>230175 - 5261197
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003B000000A4703D0A40F750418FC2F5681B2E5441D7A3705D4EF750413D0AD7C31A2E54418FC2F5985AF75041713D0A371A2E5441C3F5281C65F75041B81E855B1A2E54417B14AE4763F750417B14AEC7182E544114AE47A160F75041D7A3700D172E5441D7A370BD5DF75041AE47E12A152E5441D7A3707D5CF750417B14AE57142E5441000000B05BF7504152B81ED5132E54417B14AE475AF750418FC2F5D8122E54411F85EB0159F750411F85EBE1112E544185EB51C853F75041333333830C2E5441E17A149E50F75041A4703D9A082E544152B81EE54FF750413D0AD793072E5441295C8F224EF75041EC51B8FE042E5441E17A143E4DF750411F85EB91032E544114AE471149F75041D7A370FDFC2D5441AE47E1AA48F7504185EB5158FC2D5441713D0A7747F750413D0AD763FA2D544148E17AC445F750410AD7A390F72D54415C8FC2F540F7504166666696EF2D54417B14AE273AF75041A4703DEAE52D5441333333F336F7504148E17A74E12D54418FC2F57833F75041CDCCCC0CDD2D5441EC51B81E31F75041EC51B85EDA2D5441713D0AF72EF75041713D0A47D82D544185EB51482CF7504114AE47D1D52D5441713D0AC72AF75041B81E855BD42D5441EC51B8FE29F75041E17A147ED32D544185EB517829F750419A9999E9D22D54413D0AD76329F7504114AE4751D32D54411F85EB312AF75041AE47E16ADC2D54417B14AEA722F7504152B81ED5DC2D5441A4703DCA22F7504114AE47A1DE2D5441333333931FF75041B81E85CBDE2D5441D7A3705D20F750411F85EBF1E42D5441000000A020F75041E17A14CEE62D544148E17AA41CF75041A4703DDAE72D5441A4703DCA16F75041D7A3704DEE2D544152B81E9519F7504185EB51E8FA2D5441A4703DFA1CF75041295C8F32012E5441A4703D0A1EF750410AD7A3A0022E5441295C8F521FF75041295C8F42042E54418FC2F5B820F750413D0AD703062E54419A99993922F750418FC2F5E8072E5441F6285CDF23F7504152B81EE5092E54410000003025F75041EC51B86E0B2E5441AE47E1FA25F75041EC51B86E0C2E5441EC51B89E26F750411F85EB810D2E544148E17AC427F75041713D0AB70F2E544148E17A9428F7504185EB5168112E5441B81E858B2BF75041D7A3700D192E54413D0AD73333F750417B14AEB7172E5441F6285C2F37F7504152B81E05172E5441AE47E14A38F75041CDCCCC7C192E5441F6285C7F39F75041333333F31C2E5441A4703D4A3DF75041666666F61B2E5441AE47E1CA3FF750410AD7A3701B2E5441A4703D0A40F750418FC2F5681B2E5441
+</a>
+
+<b>
+0106000000010000000103000000010000002D0000003D3B453733F75041A56C93D6FF2D5441BDA61AA92EF750411B8E4CB4F92D544114D537572DF75041096253EDF72D5441000000A020F75041E17A14CEE62D544148E17AA41CF75041A4703DDAE72D5441DC66A89C1BF75041058C8D66E92D5441E501448419F750411396264CEB2D54418B555D1C18F750417293CBD8EC2D5441A4703DCA16F75041D7A3704DEE2D5441B836C3C517F750419EF6D163EE2D5441DA51FFF819F75041B3BAAF73EE2D5441B5D3E0E41CF75041A85B6E68EE2D5441D271549D1DF75041445C6B42EF2D54414840BB4F1DF750413199EAD3EF2D5441DA96FDD51CF7504100372EB8F02D5441E8E310331DF750418E9C9C87F32D54413D0826EE1EF75041522FB49DF72D54414EB12C2F22F750416D5BD2F1FC2D54418BA77FB123F750416F5FAE5BFF2D5441A53434AB25F7504104A0FAF9012E54415D691DCC27F75041BCD4E31A042E5441E763E95D2EF75041D37FBD6E0B2E5441D94A3F0A32F7504186596609132E5441860C394134F7504195DC5988172E5441F6285C2F37F7504152B81E05172E5441AE47E14A38F75041CDCCCC7C192E5441F6285C7F39F75041333333F31C2E5441A4703D4A3DF75041666666F61B2E5441AE47E1CA3FF750410AD7A3701B2E5441A4703D0A40F750418FC2F5681B2E5441D7A3705D4EF750413D0AD7C31A2E54418FC2F5985AF75041713D0A371A2E5441C3F5281C65F75041B81E855B1A2E54417B14AE4763F750417B14AEC7182E544114AE47A160F75041D7A3700D172E5441D7A370BD5DF75041AE47E12A152E5441D7A3707D5CF750417B14AE57142E5441000000B05BF7504152B81ED5132E54417B14AE475AF750418FC2F5D8122E54411F85EB0159F750411F85EBE1112E5441CE9F4E1842F750413AEE8DDF132E54415198AFCD3EF75041A5C3F0700F2E54413A72B34C39F750418389B307082E54419E04106836F7504196036922042E54413D3B453733F75041A56C93D6FF2D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>230526 - 1005667
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000090000000103000000010000006000000085EB51488FFE50411F85EB713B295441AE47E15A8EFE504152B81E653A295441000000008EFE50413D0AD7C3392954415C8FC2458DFE5041EC51B84E392954415C8FC2958CFE5041AE47E13A39295441CDCCCC5C8BFE5041EC51B84E39295441A4703D9A89FE5041666666A63929544185EB515887FE50415C8FC2253A2954418FC2F57885FE504152B81EA53A29544114AE47F183FE5041A4703D1A3B295441CDCCCCFC82FE5041D7A370AD3B2954419A99996982FE504185EB51983C29544152B81E2582FE5041EC51B81E3F295441E17A14AE82FE50419A999909402954411F85EBE180FE5041C3F5282C43295441AE47E1CA7CFE5041E17A148E432954415C8FC29578FE50419A999949432954415C8FC25575FE5041F6285CDF412954418FC2F50874FE50415C8FC2453F2954410000003074FE5041295C8F723B29544114AE471175FE5041295C8F323829544185EB510877FE5041CDCCCCFC35295441EC51B83E77FE5041B81E859B332954418FC2F5687CFE5041CDCCCCCC3329544152B81E557CFE5041713D0A97362954415C8FC2D57BFE5041EC51B86E37295441A4703D6A7BFE5041A4703DDA3729544185EB51087BFE50419A99995938295441B81E851B7BFE50410000000039295441C3F528CC7BFE50413D0AD713392954411F85EBF17CFE5041B81E856B39295441E17A14BE7EFE50413333339339295441E17A14BE7EFE5041000000E03A2954413D0AD79380FE5041000000E03A295441666666B683FE5041CDCCCC4C3A2954417B14AE7786FE5041333333933929544114AE47C189FE5041295C8FE238295441AE47E15A8CFE50419A999959382954415C8FC2458DFE504152B81E15382954411F85EBB18DFE5041CDCCCCBC37295441666666068EFE5041666666E636295441C3F5281C8DFE504185EB51983329544152B81E658BFE504114AE47B12A295441295C8F128BFE5041295C8F0229295441EC51B8DE8AFE5041713D0AD723295441C3F528DC79FE50418FC2F5B8222954411F85EB7169FE504148E17AA421295441F6285C8F68FE50417B14AE071E2954413333335360FE504148E17A1420295441D7A370FD58FE5041000000D02129544152B81EF551FE5041E17A149E232954413D0AD7B34CFE5041E17A14DE242954417B14AEA744FE5041295C8FC2262954418FC2F5D843FE5041295C8FF2262954410AD7A33045FE5041EC51B88E2C295441666666F645FE5041CDCCCC4C2C295441A4703DFA4EFE5041F6285C1F2A295441CDCCCC7C55FE5041B81E859B28295441F6285C3F58FE50410AD7A3D027295441F6285CEF69FE504148E17AA423295441713D0AA76AFE504148E17A9426295441AE47E12A6BFE5041E17A14AE28295441000000506BFE5041713D0A47292954413D0AD7F36BFE5041E17A14EE2B295441C3F528AC6CFE5041C3F528EC2E295441CDCCCC4C6DFE50415C8FC2853129544148E17A746DFE5041B81E852B322954417B14AEF75BFE504114AE476136295441D7A3705D49FE50418FC2F5B83A29544114AE47B14AFE50417B14AE47402954410AD7A3704BFE504185EB5168432954417B14AE274CFE50415C8FC26546295441E17A147E4CFE50411F85EB5146295441A4703D5A51FE50411F85EB1145295441F6285C2F57FE5041E17A147E43295441EC51B8DE5BFE50419A9999694229544152B81E9561FE5041F6285CEF4029544185EB510870FE5041B81E855B3D2954415C8FC2B571FE50415C8FC2D542295441F6285CFF72FE5041CDCCCC8C482954410000009073FE50417B14AE774B2954410AD7A32074FE504148E17A644E295441713D0A8775FE50413D0AD703542954417B14AEF775FE5041666666C655295441295C8FE276FE5041D7A370DD5529544185EB518879FE5041EC51B86E56295441A4703D1A80FE50415C8FC26557295441E17A145E85FE50413333330356295441A4703D7A88FE504148E17A84542954413D0AD7A38CFE5041D7A3707D522954416666660690FE504148E17AF450295441C3F5287C93FE5041295C8F224F29544185EB512896FE504148E17A944E2954417B14AEE791FE504148E17AF4432954415C8FC23590FE504152B81E753E29544185EB51488FFE50411F85EB713B2954410103000000010000000A00000014AE47E15BFE50415C8FC2D590295441C3F5286C39FE5041AE47E10A99295441A4703DEA3AFE504114AE47219C29544148E17A743FFE5041C3F5287C9B2954417B14AEB743FE50417B14AEC79A29544185EB51C847FE5041295C8F229A2954413D0AD78350FE50419A9999A9982954413D0AD7B355FE504185EB5198952954410AD7A3E058FE5041B81E852B9329544114AE47E15BFE50415C8FC2D5902954410103000000010000000B000000CDCCCC0C41FE5041713D0A771B2954410AD7A37040FE5041333333E318295441CDCCCCCC35FE50415C8FC2951B2954410AD7A3001EFE50418FC2F508212954410AD7A3901DFE504100000010212954411F85EB311EFE50411F85EB0124295441666666D61EFE5041713D0AD726295441F6285C4F1FFE5041CDCCCC8C26295441295C8FD234FE504114AE4781212954417B14AEC741FE5041666666661E295441CDCCCC0C41FE5041713D0A771B29544101030000000100000013000000F6285C0F42FE5041F6285C6F2129544148E17AC43BFE50419A9999D9222954418FC2F5982DFE504152B81E552629544185EB51D825FE5041000000202829544114AE47811FFE5041295C8FB2292954418FC2F52820FE50417B14AE872C2954419A9999C920FE5041666666162F29544152B81E8521FE50415C8FC245322954413333332322FE50411F85EB213529544114AE47D122FE5041A4703D1A38295441AE47E19A28FE50419A99999936295441CDCCCC1C2CFE5041EC51B8BE352954417B14AE4732FE5041295C8F5234295441F6285C4F36FE5041F6285C2F332954411F85EBB138FE5041F6285CAF322954415C8FC25540FE504148E17AE430295441A4703D4A45FE5041295C8FA22F295441295C8FF243FE50419A9999192A295441F6285C0F42FE5041F6285C6F212954410103000000010000000D000000AE47E16A44FE50415C8FC25581295441A4703DDA47FE5041AE47E17A8029544148E17AE450FE50413D0AD7537E29544114AE477158FE5041333333A37C295441713D0AB757FE5041C3F5289C7929544114AE47D147FE5041E17A147E7D295441713D0A5741FE5041295C8FF27E295441295C8FF23CFE5041AE47E1FA7F29544114AE476139FE5041B81E85DB802954413D0AD70334FE504185EB51488229544148E17AB434FE5041B81E85EB84295441A4703D6A3EFE5041CDCCCCAC82295441AE47E16A44FE50415C8FC2558129544101030000000100000026000000CDCCCC6C66FE5041C3F5284C15295441295C8F525FFE50418FC2F50817295441D7A3704D54FE5041295C8FD2192954415C8FC2254CFE504152B81EE51B295441CDCCCCBC44FE5041295C8FB21D295441333333A342FE5041333333331E295441E17A142E42FE5041000000501E295441C3F528DC42FE5041E17A143E21295441295C8F5243FE5041D7A3701D212954415C8FC2F550FE5041713D0AC71D295441AE47E11A67FE5041295C8F121829544148E17AD467FE5041AE47E10A1B295441295C8F1268FE50418FC2F5081C2954417B14AE1779FE50418FC2F5381D2954418FC2F5A88AFE5041295C8F721E295441000000908AFE5041AE47E1FA1B2954418FC2F5288AFE5041C3F5282C16295441333333E389FE50411F85EB4112295441EC51B87E89FE5041666666960C295441EC51B81E89FE50415C8FC2350729544114AE47C188FE5041F6285CEF01295441D7A3706D88FE50415C8FC235FD28544148E17A6485FE5041D7A3700DFD285441AE47E16A80FE504166666696FC2854410AD7A36078FE5041E17A14FEFB2854419A9999496FFE504114AE4761FB285441AE47E1EA60FE5041713D0A27FA285441666666F65FFE50411F85EB41FB285441CDCCCCCC60FE50418FC2F5A8FE2854411F85EB1162FE50413D0AD7D3032954413333334363FE5041EC51B8AE082954413333338363FE50413D0AD7B309295441B81E856B64FE50418FC2F5180D2954417B14AED764FE504114AE47D10E2954415C8FC21565FE504114AE47D10F2954418FC2F5A865FE5041AE47E12A122954417B14AED765FE50419A9999E912295441CDCCCC6C66FE5041C3F5284C152954410103000000010000000B000000F6285C3F86FE5041713D0A37DB285441000000F084FE5041D7A370DDDD285441F6285C0F81FE50410AD7A380E428544148E17AE47EFE5041C3F5285CE8285441000000B07CFE504148E17A54EC28544114AE47A17FFE50415C8FC285EC2854410000009082FE5041713D0AD7EC285441713D0A5787FE5041F6285C8FED28544148E17AD486FE5041713D0AD7E52854410AD7A39086FE504114AE4701E1285441F6285C3F86FE5041713D0A37DB2854410103000000010000000B000000E17A144E1CFE50410AD7A3701B295441295C8FE21CFE5041EC51B83E1E2954411F85EB411DFE5041AE47E11A1E2954415C8FC24528FE50411F85EB911B295441333333D333FE5041333333F318295441D7A370BD3FFE5041B81E85FB15295441713D0A073FFE504185EB51081329544114AE479132FE50411F85EBF1152954410AD7A3F029FE5041AE47E12A182954413D0AD7E31CFE5041666666361B295441E17A144E1CFE50410AD7A3701B2954410103000000010000000B0000005C8FC23546FE5041AE47E1AA5F295441F6285C8F50FE5041B81E851B5D295441D7A370DD50FE504185EB51085D295441713D0A2750FE5041CDCCCC2C5A29544114AE47013DFE5041EC51B8BE5E29544152B81EC52CFE50419A9999896229544114AE47712DFE50419A99997965295441295C8F6232FE5041EC51B86E64295441666666E637FE50413D0AD70363295441EC51B8AE3CFE50417B14AEE7612954415C8FC23546FE5041AE47E1AA5F295441
+</a>
+
+<b>
+010600000001000000010300000001000000110000000AD7A36041FE5041666666A61829544114AE47F141FE5041EC51B83E1B295441333333A342FE5041333333331E2954418F3298134BFE5041EBB7CF271C295441B086BEAA5BFE50413980ACF517295441CDCCCC6C66FE5041C3F5284C152954418FC2F5A865FE5041AE47E12A122954415C8FC21565FE504114AE47D10F2954417B14AED764FE504114AE47D10E295441B81E856B64FE50418FC2F5180D2954418FC2F5D85DFE5041B81E85AB0E295441333333135AFE50417B14AE870F29544114AE478155FE504148E17AC410295441666666164CFE5041C3F5281C132954417B14AE2747FE5041333333231429544152B81EB540FE5041E17A14BE152954410AD7A36041FE5041666666A618295441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>230526 - 3332578
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000090000000103000000010000006000000085EB51488FFE50411F85EB713B295441AE47E15A8EFE504152B81E653A295441000000008EFE50413D0AD7C3392954415C8FC2458DFE5041EC51B84E392954415C8FC2958CFE5041AE47E13A39295441CDCCCC5C8BFE5041EC51B84E39295441A4703D9A89FE5041666666A63929544185EB515887FE50415C8FC2253A2954418FC2F57885FE504152B81EA53A29544114AE47F183FE5041A4703D1A3B295441CDCCCCFC82FE5041D7A370AD3B2954419A99996982FE504185EB51983C29544152B81E2582FE5041EC51B81E3F295441E17A14AE82FE50419A999909402954411F85EBE180FE5041C3F5282C43295441AE47E1CA7CFE5041E17A148E432954415C8FC29578FE50419A999949432954415C8FC25575FE5041F6285CDF412954418FC2F50874FE50415C8FC2453F2954410000003074FE5041295C8F723B29544114AE471175FE5041295C8F323829544185EB510877FE5041CDCCCCFC35295441EC51B83E77FE5041B81E859B332954418FC2F5687CFE5041CDCCCCCC3329544152B81E557CFE5041713D0A97362954415C8FC2D57BFE5041EC51B86E37295441A4703D6A7BFE5041A4703DDA3729544185EB51087BFE50419A99995938295441B81E851B7BFE50410000000039295441C3F528CC7BFE50413D0AD713392954411F85EBF17CFE5041B81E856B39295441E17A14BE7EFE50413333339339295441E17A14BE7EFE5041000000E03A2954413D0AD79380FE5041000000E03A295441666666B683FE5041CDCCCC4C3A2954417B14AE7786FE5041333333933929544114AE47C189FE5041295C8FE238295441AE47E15A8CFE50419A999959382954415C8FC2458DFE504152B81E15382954411F85EBB18DFE5041CDCCCCBC37295441666666068EFE5041666666E636295441C3F5281C8DFE504185EB51983329544152B81E658BFE504114AE47B12A295441295C8F128BFE5041295C8F0229295441EC51B8DE8AFE5041713D0AD723295441C3F528DC79FE50418FC2F5B8222954411F85EB7169FE504148E17AA421295441F6285C8F68FE50417B14AE071E2954413333335360FE504148E17A1420295441D7A370FD58FE5041000000D02129544152B81EF551FE5041E17A149E232954413D0AD7B34CFE5041E17A14DE242954417B14AEA744FE5041295C8FC2262954418FC2F5D843FE5041295C8FF2262954410AD7A33045FE5041EC51B88E2C295441666666F645FE5041CDCCCC4C2C295441A4703DFA4EFE5041F6285C1F2A295441CDCCCC7C55FE5041B81E859B28295441F6285C3F58FE50410AD7A3D027295441F6285CEF69FE504148E17AA423295441713D0AA76AFE504148E17A9426295441AE47E12A6BFE5041E17A14AE28295441000000506BFE5041713D0A47292954413D0AD7F36BFE5041E17A14EE2B295441C3F528AC6CFE5041C3F528EC2E295441CDCCCC4C6DFE50415C8FC2853129544148E17A746DFE5041B81E852B322954417B14AEF75BFE504114AE476136295441D7A3705D49FE50418FC2F5B83A29544114AE47B14AFE50417B14AE47402954410AD7A3704BFE504185EB5168432954417B14AE274CFE50415C8FC26546295441E17A147E4CFE50411F85EB5146295441A4703D5A51FE50411F85EB1145295441F6285C2F57FE5041E17A147E43295441EC51B8DE5BFE50419A9999694229544152B81E9561FE5041F6285CEF4029544185EB510870FE5041B81E855B3D2954415C8FC2B571FE50415C8FC2D542295441F6285CFF72FE5041CDCCCC8C482954410000009073FE50417B14AE774B2954410AD7A32074FE504148E17A644E295441713D0A8775FE50413D0AD703542954417B14AEF775FE5041666666C655295441295C8FE276FE5041D7A370DD5529544185EB518879FE5041EC51B86E56295441A4703D1A80FE50415C8FC26557295441E17A145E85FE50413333330356295441A4703D7A88FE504148E17A84542954413D0AD7A38CFE5041D7A3707D522954416666660690FE504148E17AF450295441C3F5287C93FE5041295C8F224F29544185EB512896FE504148E17A944E2954417B14AEE791FE504148E17AF4432954415C8FC23590FE504152B81E753E29544185EB51488FFE50411F85EB713B2954410103000000010000000A00000014AE47E15BFE50415C8FC2D590295441C3F5286C39FE5041AE47E10A99295441A4703DEA3AFE504114AE47219C29544148E17A743FFE5041C3F5287C9B2954417B14AEB743FE50417B14AEC79A29544185EB51C847FE5041295C8F229A2954413D0AD78350FE50419A9999A9982954413D0AD7B355FE504185EB5198952954410AD7A3E058FE5041B81E852B9329544114AE47E15BFE50415C8FC2D5902954410103000000010000000B000000CDCCCC0C41FE5041713D0A771B2954410AD7A37040FE5041333333E318295441CDCCCCCC35FE50415C8FC2951B2954410AD7A3001EFE50418FC2F508212954410AD7A3901DFE504100000010212954411F85EB311EFE50411F85EB0124295441666666D61EFE5041713D0AD726295441F6285C4F1FFE5041CDCCCC8C26295441295C8FD234FE504114AE4781212954417B14AEC741FE5041666666661E295441CDCCCC0C41FE5041713D0A771B29544101030000000100000013000000F6285C0F42FE5041F6285C6F2129544148E17AC43BFE50419A9999D9222954418FC2F5982DFE504152B81E552629544185EB51D825FE5041000000202829544114AE47811FFE5041295C8FB2292954418FC2F52820FE50417B14AE872C2954419A9999C920FE5041666666162F29544152B81E8521FE50415C8FC245322954413333332322FE50411F85EB213529544114AE47D122FE5041A4703D1A38295441AE47E19A28FE50419A99999936295441CDCCCC1C2CFE5041EC51B8BE352954417B14AE4732FE5041295C8F5234295441F6285C4F36FE5041F6285C2F332954411F85EBB138FE5041F6285CAF322954415C8FC25540FE504148E17AE430295441A4703D4A45FE5041295C8FA22F295441295C8FF243FE50419A9999192A295441F6285C0F42FE5041F6285C6F212954410103000000010000000D000000AE47E16A44FE50415C8FC25581295441A4703DDA47FE5041AE47E17A8029544148E17AE450FE50413D0AD7537E29544114AE477158FE5041333333A37C295441713D0AB757FE5041C3F5289C7929544114AE47D147FE5041E17A147E7D295441713D0A5741FE5041295C8FF27E295441295C8FF23CFE5041AE47E1FA7F29544114AE476139FE5041B81E85DB802954413D0AD70334FE504185EB51488229544148E17AB434FE5041B81E85EB84295441A4703D6A3EFE5041CDCCCCAC82295441AE47E16A44FE50415C8FC2558129544101030000000100000026000000CDCCCC6C66FE5041C3F5284C15295441295C8F525FFE50418FC2F50817295441D7A3704D54FE5041295C8FD2192954415C8FC2254CFE504152B81EE51B295441CDCCCCBC44FE5041295C8FB21D295441333333A342FE5041333333331E295441E17A142E42FE5041000000501E295441C3F528DC42FE5041E17A143E21295441295C8F5243FE5041D7A3701D212954415C8FC2F550FE5041713D0AC71D295441AE47E11A67FE5041295C8F121829544148E17AD467FE5041AE47E10A1B295441295C8F1268FE50418FC2F5081C2954417B14AE1779FE50418FC2F5381D2954418FC2F5A88AFE5041295C8F721E295441000000908AFE5041AE47E1FA1B2954418FC2F5288AFE5041C3F5282C16295441333333E389FE50411F85EB4112295441EC51B87E89FE5041666666960C295441EC51B81E89FE50415C8FC2350729544114AE47C188FE5041F6285CEF01295441D7A3706D88FE50415C8FC235FD28544148E17A6485FE5041D7A3700DFD285441AE47E16A80FE504166666696FC2854410AD7A36078FE5041E17A14FEFB2854419A9999496FFE504114AE4761FB285441AE47E1EA60FE5041713D0A27FA285441666666F65FFE50411F85EB41FB285441CDCCCCCC60FE50418FC2F5A8FE2854411F85EB1162FE50413D0AD7D3032954413333334363FE5041EC51B8AE082954413333338363FE50413D0AD7B309295441B81E856B64FE50418FC2F5180D2954417B14AED764FE504114AE47D10E2954415C8FC21565FE504114AE47D10F2954418FC2F5A865FE5041AE47E12A122954417B14AED765FE50419A9999E912295441CDCCCC6C66FE5041C3F5284C152954410103000000010000000B000000F6285C3F86FE5041713D0A37DB285441000000F084FE5041D7A370DDDD285441F6285C0F81FE50410AD7A380E428544148E17AE47EFE5041C3F5285CE8285441000000B07CFE504148E17A54EC28544114AE47A17FFE50415C8FC285EC2854410000009082FE5041713D0AD7EC285441713D0A5787FE5041F6285C8FED28544148E17AD486FE5041713D0AD7E52854410AD7A39086FE504114AE4701E1285441F6285C3F86FE5041713D0A37DB2854410103000000010000000B000000E17A144E1CFE50410AD7A3701B295441295C8FE21CFE5041EC51B83E1E2954411F85EB411DFE5041AE47E11A1E2954415C8FC24528FE50411F85EB911B295441333333D333FE5041333333F318295441D7A370BD3FFE5041B81E85FB15295441713D0A073FFE504185EB51081329544114AE479132FE50411F85EBF1152954410AD7A3F029FE5041AE47E12A182954413D0AD7E31CFE5041666666361B295441E17A144E1CFE50410AD7A3701B2954410103000000010000000B0000005C8FC23546FE5041AE47E1AA5F295441F6285C8F50FE5041B81E851B5D295441D7A370DD50FE504185EB51085D295441713D0A2750FE5041CDCCCC2C5A29544114AE47013DFE5041EC51B8BE5E29544152B81EC52CFE50419A9999896229544114AE47712DFE50419A99997965295441295C8F6232FE5041EC51B86E64295441666666E637FE50413D0AD70363295441EC51B8AE3CFE50417B14AEE7612954415C8FC23546FE5041AE47E1AA5F295441
+</a>
+
+<b>
+010600000001000000010300000001000000110000000AD7A36041FE5041666666A61829544114AE47F141FE5041EC51B83E1B295441333333A342FE5041333333331E2954418F3298134BFE5041EBB7CF271C295441B086BEAA5BFE50413980ACF517295441CDCCCC6C66FE5041C3F5284C152954418FC2F5A865FE5041AE47E12A122954415C8FC21565FE504114AE47D10F2954417B14AED764FE504114AE47D10E295441B81E856B64FE50418FC2F5180D2954418FC2F5D85DFE5041B81E85AB0E295441333333135AFE50417B14AE870F29544114AE478155FE504148E17AC410295441666666164CFE5041C3F5281C132954417B14AE2747FE5041333333231429544152B81EB540FE5041E17A14BE152954410AD7A36041FE5041666666A618295441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>877892 - 28656
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000007000000E17A14FEE8A25041F6285CDFCEF55441D7A370CDE0A25041EC51B81EE9F5544185EB51C8EDA250415C8FC2A5EBF55441B81E85EBF2A25041C3F5284CD1F5544185EB51F8F5A25041E17A144EB9F55441AE47E17AEBA2504185EB5188B6F55441E17A14FEE8A25041F6285CDFCEF55441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000EDB9B0FDE7A2504155210B15D2F55441C1E4AF6AE6A25041CFAAB38BD7F554417AD2DDD0E3A2504137669EFFDFF554413E6DD19FE7A2504148A4E89DD6F5544190FD4CF2E9A25041E377EA4CD0F554412182C198EAA25041A7E3C16BCDF554410C866E27EBA250413CC80685C9F55441B306363FEBA25041BBB0F82CC6F55441938C3915ECA25041AB452AF1B6F55441A9888C86EBA25041AB452AF1B6F55441CE7AE1C2E9A250411DE0AD59C7F55441553885AAE9A25041C0340B48C8F55441F3FA2E93E9A2504198D62B90CBF55441B077491CE9A250417CEB1B89CEF5544116509B07E8A25041E26843F5D1F55441EDB9B0FDE7A2504155210B15D2F55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>873264 - 1362186
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001B000000BE0D2DB03F405141710C45EE5BE5544150BC81EB32405141207AD77F5BE55441B24AC6B11E40514180FE588560E55441CBB5E9B3064051419AC31A6166E55441A456DFAD074051418DF23F8977E554410277FF180840514111726AFA76E554414D2B51641F405141F34847846CE55441704906FC414051410BAAA7C56DE554417B065B5263405141E54A9DBF6EE55441B76264FF5E405141C122256765E554419CC552E35E4051413138D04565E55441D198074B6040514187D0468668E55441423D88765E40514146B69FC464E554413F0635205D405141F2E41C2E63E55441E395E0075B405141F6D4C23861E5544170FD2BDC564051412703AB8A5DE5544160C86DC055405141AB3E98C75CE55441727CDC1756405141B0EB73DD5CE55441933AECA655405141FA1ACD795CE554417C65450D514051413E3A7B625CE554419A39418954405141FA1ACD795CE554419C7CA90C55405141BA2BA79A5CE55441315CCCC7324051415E3A42C75BE554418228C0D01E40514121AA087E60E55441701C370F334051413FDA8CA35BE5544102C7DA313F4051417D9AF7EA5BE55441BE0D2DB03F405141710C45EE5BE55441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000C00D2DB03F4051416F0C45EE5BE554414DBC81EB32405141257AD77F5BE55441B24AC6B11E4051417FFE588560E55441C6B5E9B3064051419BC31A6166E55441A856DFAD0740514189F23F8977E554410477FF18084051410F726AFA76E554414C2B51641F405141F54847846CE55441704906FC4140514108AAA7C56DE5544176065B5263405141EA4A9DBF6EE55441B66264FF5E405141C422256765E55441A0C552E35E4051413138D04565E55441D198074B6040514189D0468668E55441463D88765E40514149B69FC464E554413C0635205D405141F3E41C2E63E55441E295E0075B405141F2D4C23861E5544174FD2BDC564051412303AB8A5DE5544165C86DC055405141A63E98C75CE554416D7CDC1756405141B5EB73DD5CE55441913AECA655405141FB1ACD795CE554417A65450D514051413E3A7B625CE554419C39418954405141FB1ACD795CE554419B7CA90C55405141BE2BA79A5CE554412F5CCCC732405141623A42C75BE554418428C0D01E4051411EAA087E60E554416C1C370F3340514144DA8CA35BE5544101C7DA313F405141819AF7EA5BE55441C00D2DB03F4051416F0C45EE5BE55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>873264 - 4082440
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001B000000BE0D2DB03F405141710C45EE5BE5544150BC81EB32405141207AD77F5BE55441B24AC6B11E40514180FE588560E55441CBB5E9B3064051419AC31A6166E55441A456DFAD074051418DF23F8977E554410277FF180840514111726AFA76E554414D2B51641F405141F34847846CE55441704906FC414051410BAAA7C56DE554417B065B5263405141E54A9DBF6EE55441B76264FF5E405141C122256765E554419CC552E35E4051413138D04565E55441D198074B6040514187D0468668E55441423D88765E40514146B69FC464E554413F0635205D405141F2E41C2E63E55441E395E0075B405141F6D4C23861E5544170FD2BDC564051412703AB8A5DE5544160C86DC055405141AB3E98C75CE55441727CDC1756405141B0EB73DD5CE55441933AECA655405141FA1ACD795CE554417C65450D514051413E3A7B625CE554419A39418954405141FA1ACD795CE554419C7CA90C55405141BA2BA79A5CE55441315CCCC7324051415E3A42C75BE554418228C0D01E40514121AA087E60E55441701C370F334051413FDA8CA35BE5544102C7DA313F4051417D9AF7EA5BE55441BE0D2DB03F405141710C45EE5BE55441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000C00D2DB03F4051416F0C45EE5BE554414DBC81EB32405141257AD77F5BE55441B24AC6B11E4051417FFE588560E55441C6B5E9B3064051419BC31A6166E55441A856DFAD0740514189F23F8977E554410477FF18084051410F726AFA76E554414C2B51641F405141F54847846CE55441704906FC4140514108AAA7C56DE5544176065B5263405141EA4A9DBF6EE55441B66264FF5E405141C422256765E55441A0C552E35E4051413138D04565E55441D198074B6040514189D0468668E55441463D88765E40514149B69FC464E554413C0635205D405141F3E41C2E63E55441E295E0075B405141F2D4C23861E5544174FD2BDC564051412303AB8A5DE5544165C86DC055405141A63E98C75CE554416D7CDC1756405141B5EB73DD5CE55441913AECA655405141FB1ACD795CE554417A65450D514051413E3A7B625CE554419C39418954405141FB1ACD795CE554419B7CA90C55405141BE2BA79A5CE554412F5CCCC732405141623A42C75BE554418428C0D01E4051411EAA087E60E554416C1C370F3340514144DA8CA35BE5544101C7DA313F405141819AF7EA5BE55441C00D2DB03F4051416F0C45EE5BE55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>905542 - 2966542
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000018000000000000E037BD5041713D0A37F3125541713D0AA72ABD504100000010F8125541D7A3706D28BD50411F85EB01FB125541E17A144E27BD5041D7A3707DFC125541666666461BBD5041F6285CEFFC1255413D0AD7331ABD5041AE47E10A07135541713D0AD725BD5041B81E855B0A1355413D0AD7332BBD5041AE47E10A0A135541A4703DBA34BD504152B81E950C1355411F85EBB136BD5041295C8FE20D13554185EB51983BBD504100000030141355417B14AE6754BD5041333333D3121355418FC2F5485FBD5041A4703D1A121355417B14AE6768BD50415C8FC2350B135541CDCCCC5C6ABD504148E17A7405135541295C8FA26FBD5041AE47E15AF9125541713D0AF76FBD5041AE47E1FAF61255416666661670BD5041E17A14AEF41255419A99992970BD50411F85EB41F31255417B14AEC76FBD5041D7A3701DF1125541713D0AD76EBD5041AE47E12AEF125541A4703D3A6DBD5041C3F5287CEE12554185EB51185DBD5041D7A370EDEF125541000000E037BD5041713D0A37F3125541
+</a>
+
+<b>
+0106000000010000000103000000010000001E00000051FA22383ABD5041043A1237FA12554130C4370B41BD5041938FDEB1F812554127848CCC44BD5041A53AAA79F71255411294791C46BD5041822F4B0CF7125541321C6FA047BD5041C5C7ABDAF612554193A8561349BD50419BD03AABF61255414FAB782F50BD5041CB0B6CC2F51255415DCC035455BD5041C261176CF5125541FF511A4457BD5041249C8F4BF5125541A879DC615BBD5041E96EA3A5F41255419E88C16761BD50411ACEA488F312554133113BA867BD5041C891239BF21255413637D4F467BD5041A3994704F6125541BCBC5D6568BD5041B4B53146F9125541891B1FBE6FBD5041E31221BEF8125541527892DB6FBD504136B790C0F7125541887843FE6FBD504123074173F61255419EA8CF1A70BD504112356A5AF4125541F434AA2670BD504170BC7A31F31255419E1342CD6FBD5041AC49AF3CF1125541D78311DD6EBD504177A65E37EF125541B7EC67416DBD5041936A317FEE125541BAAB239462BD50418499EA6FEF12554123ACE5E656BD5041656D7979F0125541A306F52445BD504150F2FF0AF2125541000000E037BD5041713D0A37F3125541713D0AA72ABD504100000010F8125541C15DD6F127BD504168DF29A5FB125541254F96352FBD50413CD887FDFA12554151FA22383ABD5041043A1237FA125541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>905542 - 3506861
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000018000000000000E037BD5041713D0A37F3125541713D0AA72ABD504100000010F8125541D7A3706D28BD50411F85EB01FB125541E17A144E27BD5041D7A3707DFC125541666666461BBD5041F6285CEFFC1255413D0AD7331ABD5041AE47E10A07135541713D0AD725BD5041B81E855B0A1355413D0AD7332BBD5041AE47E10A0A135541A4703DBA34BD504152B81E950C1355411F85EBB136BD5041295C8FE20D13554185EB51983BBD504100000030141355417B14AE6754BD5041333333D3121355418FC2F5485FBD5041A4703D1A121355417B14AE6768BD50415C8FC2350B135541CDCCCC5C6ABD504148E17A7405135541295C8FA26FBD5041AE47E15AF9125541713D0AF76FBD5041AE47E1FAF61255416666661670BD5041E17A14AEF41255419A99992970BD50411F85EB41F31255417B14AEC76FBD5041D7A3701DF1125541713D0AD76EBD5041AE47E12AEF125541A4703D3A6DBD5041C3F5287CEE12554185EB51185DBD5041D7A370EDEF125541000000E037BD5041713D0A37F3125541
+</a>
+
+<b>
+0106000000010000000103000000010000001E00000051FA22383ABD5041043A1237FA12554130C4370B41BD5041938FDEB1F812554127848CCC44BD5041A53AAA79F71255411294791C46BD5041822F4B0CF7125541321C6FA047BD5041C5C7ABDAF612554193A8561349BD50419BD03AABF61255414FAB782F50BD5041CB0B6CC2F51255415DCC035455BD5041C261176CF5125541FF511A4457BD5041249C8F4BF5125541A879DC615BBD5041E96EA3A5F41255419E88C16761BD50411ACEA488F312554133113BA867BD5041C891239BF21255413637D4F467BD5041A3994704F6125541BCBC5D6568BD5041B4B53146F9125541891B1FBE6FBD5041E31221BEF8125541527892DB6FBD504136B790C0F7125541887843FE6FBD504123074173F61255419EA8CF1A70BD504112356A5AF4125541F434AA2670BD504170BC7A31F31255419E1342CD6FBD5041AC49AF3CF1125541D78311DD6EBD504177A65E37EF125541B7EC67416DBD5041936A317FEE125541BAAB239462BD50418499EA6FEF12554123ACE5E656BD5041656D7979F0125541A306F52445BD504150F2FF0AF2125541000000E037BD5041713D0A37F3125541713D0AA72ABD504100000010F8125541C15DD6F127BD504168DF29A5FB125541254F96352FBD50413CD887FDFA12554151FA22383ABD5041043A1237FA125541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>601743 - 1610062
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000002E00000066666636E05B50413D0AD74386265541A4703DAAE45B50411F85EBB181265541C3F5289CED5B504114AE47717B265541000000A0F65B5041E17A14BE7726554152B81E25FE5B50417B14AE9775265541C3F5288C115C5041000000C073265541E17A143E145C5041000000506B265541A4703D9A125C5041000000606A265541666666B6145C5041000000B06526554148E17A641B5C50419A9999D9682655410AD7A3601F5C50413D0AD7C3602655413D0AD773205C50415C8FC2655C265541D7A3705D1C5C50415C8FC2455B2655410AD7A310185C50418FC2F59859265541333333A3115C5041AE47E1EA56265541AE47E15A0F5C5041AE47E1CA5526554114AE47B10E5C5041E17A147E5526554148E17A540C5C5041CDCCCCFC57265541F6285C1F075C5041000000605D26554152B81E45015C504114AE479163265541EC51B8CEFE5B50413D0AD7036626554185EB5118FC5B50411F85EB81682655419A999919F95B504148E17A046B2655418FC2F5A8F75B5041295C8F426C2655419A9999B9F55B50415C8FC2056E26554185EB5168EB5B50417B14AEE777265541295C8F92DE5B50411F85EB11842655411F85EB41D55B50410AD7A3008D2655415C8FC295CC5B504185EB51789526554133333383C45B5041000000809D265541B81E85FBBB5B5041E17A141EA6265541A4703D0AB45B5041295C8F52AE265541C3F5286CAB5B5041E17A145EB7265541295C8F82A15B5041D7A370FDC1265541D7A3707D9D5B504166666656C626554152B81E35985B5041C3F5284CCC265541F6285CFF955B5041295C8F12CF26554100000080925B504166666636D326554100000090925B5041C3F528FCD3265541EC51B80E955B50413D0AD763D4265541EC51B8DE975B5041C3F528BCD126554166666696995B5041C3F5285CD2265541A4703DDAA55B50411F85EB31C5265541A4703DCAC45B50419A9999F9A22655410AD7A350D55B50413D0AD7739226554166666636E05B50413D0AD74386265541
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000B5DA507ADF5B50418558D0AA85265541B955BB1AE25B50410BAB69228326554162DF8748E45B50419A316038812655415A768038EC5B504158B51AD47A265541AD085C7DF35B50418A4A4EA5742655419FDBE73BF95B504194073912702655411795F43FFF5B50419D8EA0396B265541925A3A3F065C5041EAEC0ED06426554179BF499E0C5C5041597294C65E2655417AD04606145C5041AF6BACE957265541333333A3115C5041AE47E1EA5626554114AE47B10E5C5041E17A147E552655414E348E0E0A5C504196CBD6565A26554105502F4B055C5041AAAD5F4F5F265541B10B23B3015C50410F27DF1C632655417E18D043FF5B50419EDB758F65265541B6B0B45CFB5B5041BB0F271F69265541A3D40F31F75B50414402C5AF6C26554130BEA660F45B504148472A506F2655412DC5E0FCF05B5041411A5A8F7226554185EB5168EB5B50417B14AEE777265541295C8F92DE5B50411F85EB11842655411F85EB41D55B50410AD7A3008D2655415C8FC295CC5B504185EB51789526554133333383C45B5041000000809D265541B81E85FBBB5B5041E17A141EA6265541A4703D0AB45B5041295C8F52AE265541C3F5286CAB5B5041E17A145EB7265541295C8F82A15B5041D7A370FDC1265541D7A3707D9D5B504166666656C626554152B81E35985B5041C3F5284CCC265541F6285CFF955B5041295C8F12CF26554100000080925B504166666636D326554100000090925B5041C3F528FCD3265541EC51B80E955B50413D0AD763D4265541EC51B8DE975B5041C3F528BCD1265541BCC9AC98A25B50415183F9D4C5265541668468DBB35B504113F00012B326554171F5A7BCBB5B504135459F58AA265541EC98E385C35B50419C065C5FA2265541D3B48420D45B50413BB8BEDC91265541B5DA507ADF5B50418558D0AA85265541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>888700 - 368017
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000033000000CFFFF425B0D35041A9A9AB578E2B5441BA2292F4B4D350416B911EF18D2B544164887BA7CED35041F7152DF38B2B5441E3D93932CDD35041E8BC1FAF802B544149F80AE8CAD350410CC889DA742B54419588FCC9CBD35041188A4D186E2B5441D3A08930CCD35041D0C2DCAF682B5441F22CD063CCD3504162D059AE642B544156706F63CBD350418F9A37AD612B54411FF7AD62C9D350411A09E9455F2B54416C4DD294C6D350415FC041125E2B5441FD5A4F93C2D350414034FBDE5D2B54415BFF222DC3D350412D67B049692B54413C73DCF9C2D3504141C5774D732B544151503F2BBED350413A26ACE7742B54410989CEC2B8D350413387E081762B5441631D8AC0B2D350413387E081762B5441610D7224ACD350413387E081762B5441F21AEF22A8D3504106AB2142552B54417D89A0BBA5D35041EEBDA674532B544184286C21A4D35041EBAD8ED84C2B544184286C21A4D35041018BF109482B5441A3B4B254A4D35041AF149D9F3D2B54413431B3E48AD35041972722D23B2B5441B061CDB18BD35041A1D605D4402B544132341FB08FD35041AC41320B492B5441C699822391D350419BE903974E2B5441AC09A47E92D3504195A58FC1512B54414F0C868696D3504132FF945D5A2B54410C87051E9BD3504124B8CC47642B544189B71FEB9BD350411C1901E2652B5441C7CFAC519CD350414344137B642B5441E65BF3849CD350414AE3DEE0622B5441FE486E529ED350414AE3DEE0622B54419905CF529FD350414AE3DEE0622B5441F7A9A2EC9FD3504124B8CC47642B5441926603EDA0D3504162D059AE642B54416C3BF153A2D3504162D059AE642B5441AA537EBAA2D350417ABDD47B662B5441E96B0B21A3D35041731E0916682B54414610DFBAA3D350410EDB6916692B54418BC73787A2D35041AA97CA166A2B5441B1F24920A1D3504126C8E4E36A2B54413C61FBB89ED3504145542B176B2B5441C030E1EB9DD3504145542B176B2B5441822E220CA2D3504142ACB98A732B54418FB095F7A3D350413ABBAA7D772B54413DF428BBA6D3504151DCA79A7D2B5441E2A731E3A8D350416F93EB59812B54418ED74F23A9D35041E2A10886812B5441CFFFF425B0D35041A9A9AB578E2B5441
+</a>
+
+<b>
+01060000000100000001030000000100000031000000D7A3708D9FD35041C3F5283C802B5441713D0A87A2D3504133333333842B5441CDCCCC9CA3D350417B14AE77862B5441AE47E19AA4D3504133333373882B54419A9999F9A5D35041A4703D1A8A2B54419A999949A8D3504152B81EB58B2B54415C8FC2C5ACD35041D7A3701D8E2B54413D0AD733AFD35041666666468F2B5441B81E851BB0D35041C3F5284C8E2B54413D0AD7A3A8D3504185EB51E8802B544166666656A5D3504114AE47317B2B54411F85EB11A4D350413D0AD7B3772B54418FC2F5A8A1D35041EC51B8BE722B5441CDCCCC3C9DD35041666666F6682B5441000000D098D3504148E17A445F2B544185EB51A892D3504133333313522B5441295C8F6291D3504152B81E954F2B54419A99997990D35041A4703DEA4B2B5441D7A3709D8FD35041713D0AC7482B54411F85EB218FD35041EC51B85E472B544114AE47718ED3504148E17AC4452B54417B14AE678DD3504152B81E35442B544114AE47718CD35041CDCCCCFC412B54419A9999D98BD3504114AE4761402B54419A9999D98AD35041C3F5282C3D2B5441AE47E14A8AD35041333333E33B2B5441333333C388D35041A4703DFA382B5441713D0AF789D3504114AE4701392B54417B14AEF789D350419A9999E9352B5441713D0AF789D350418FC2F528332B5441CDCCCC0C5AD3504166666636322B5441000000905BD350417B14AE67342B5441713D0A675DD350415C8FC285372B5441EC51B83E5FD35041AE47E18A3A2B5441A4703D3A61D350418FC2F5D83D2B5441EC51B87E63D3504185EB51B8412B5441EC51B8CE65D35041E17A14EE442B5441666666D667D3504100000000482B54410AD7A3006BD35041E17A144E4B2B54415C8FC2D56DD35041AE47E10A4E2B5441295C8FD274D35041C3F528FC542B54413333337379D3504148E17AB4592B544185EB51487CD35041E17A14AE5C2B5441666666D683D3504114AE47D1622B5441D7A3709D87D35041F6285CEF652B5441C3F5286C8DD350411F85EBB16B2B5441AE47E15A95D350419A999949742B5441333333339CD35041000000F07B2B5441D7A3708D9FD35041C3F5283C802B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>888700 - 1152515
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000033000000CFFFF425B0D35041A9A9AB578E2B5441BA2292F4B4D350416B911EF18D2B544164887BA7CED35041F7152DF38B2B5441E3D93932CDD35041E8BC1FAF802B544149F80AE8CAD350410CC889DA742B54419588FCC9CBD35041188A4D186E2B5441D3A08930CCD35041D0C2DCAF682B5441F22CD063CCD3504162D059AE642B544156706F63CBD350418F9A37AD612B54411FF7AD62C9D350411A09E9455F2B54416C4DD294C6D350415FC041125E2B5441FD5A4F93C2D350414034FBDE5D2B54415BFF222DC3D350412D67B049692B54413C73DCF9C2D3504141C5774D732B544151503F2BBED350413A26ACE7742B54410989CEC2B8D350413387E081762B5441631D8AC0B2D350413387E081762B5441610D7224ACD350413387E081762B5441F21AEF22A8D3504106AB2142552B54417D89A0BBA5D35041EEBDA674532B544184286C21A4D35041EBAD8ED84C2B544184286C21A4D35041018BF109482B5441A3B4B254A4D35041AF149D9F3D2B54413431B3E48AD35041972722D23B2B5441B061CDB18BD35041A1D605D4402B544132341FB08FD35041AC41320B492B5441C699822391D350419BE903974E2B5441AC09A47E92D3504195A58FC1512B54414F0C868696D3504132FF945D5A2B54410C87051E9BD3504124B8CC47642B544189B71FEB9BD350411C1901E2652B5441C7CFAC519CD350414344137B642B5441E65BF3849CD350414AE3DEE0622B5441FE486E529ED350414AE3DEE0622B54419905CF529FD350414AE3DEE0622B5441F7A9A2EC9FD3504124B8CC47642B5441926603EDA0D3504162D059AE642B54416C3BF153A2D3504162D059AE642B5441AA537EBAA2D350417ABDD47B662B5441E96B0B21A3D35041731E0916682B54414610DFBAA3D350410EDB6916692B54418BC73787A2D35041AA97CA166A2B5441B1F24920A1D3504126C8E4E36A2B54413C61FBB89ED3504145542B176B2B5441C030E1EB9DD3504145542B176B2B5441822E220CA2D3504142ACB98A732B54418FB095F7A3D350413ABBAA7D772B54413DF428BBA6D3504151DCA79A7D2B5441E2A731E3A8D350416F93EB59812B54418ED74F23A9D35041E2A10886812B5441CFFFF425B0D35041A9A9AB578E2B5441
+</a>
+
+<b>
+01060000000100000001030000000100000031000000D7A3708D9FD35041C3F5283C802B5441713D0A87A2D3504133333333842B5441CDCCCC9CA3D350417B14AE77862B5441AE47E19AA4D3504133333373882B54419A9999F9A5D35041A4703D1A8A2B54419A999949A8D3504152B81EB58B2B54415C8FC2C5ACD35041D7A3701D8E2B54413D0AD733AFD35041666666468F2B5441B81E851BB0D35041C3F5284C8E2B54413D0AD7A3A8D3504185EB51E8802B544166666656A5D3504114AE47317B2B54411F85EB11A4D350413D0AD7B3772B54418FC2F5A8A1D35041EC51B8BE722B5441CDCCCC3C9DD35041666666F6682B5441000000D098D3504148E17A445F2B544185EB51A892D3504133333313522B5441295C8F6291D3504152B81E954F2B54419A99997990D35041A4703DEA4B2B5441D7A3709D8FD35041713D0AC7482B54411F85EB218FD35041EC51B85E472B544114AE47718ED3504148E17AC4452B54417B14AE678DD3504152B81E35442B544114AE47718CD35041CDCCCCFC412B54419A9999D98BD3504114AE4761402B54419A9999D98AD35041C3F5282C3D2B5441AE47E14A8AD35041333333E33B2B5441333333C388D35041A4703DFA382B5441713D0AF789D3504114AE4701392B54417B14AEF789D350419A9999E9352B5441713D0AF789D350418FC2F528332B5441CDCCCC0C5AD3504166666636322B5441000000905BD350417B14AE67342B5441713D0A675DD350415C8FC285372B5441EC51B83E5FD35041AE47E18A3A2B5441A4703D3A61D350418FC2F5D83D2B5441EC51B87E63D3504185EB51B8412B5441EC51B8CE65D35041E17A14EE442B5441666666D667D3504100000000482B54410AD7A3006BD35041E17A144E4B2B54415C8FC2D56DD35041AE47E10A4E2B5441295C8FD274D35041C3F528FC542B54413333337379D3504148E17AB4592B544185EB51487CD35041E17A14AE5C2B5441666666D683D3504114AE47D1622B5441D7A3709D87D35041F6285CEF652B5441C3F5286C8DD350411F85EBB16B2B5441AE47E15A95D350419A999949742B5441333333339CD35041000000F07B2B5441D7A3708D9FD35041C3F5283C802B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>888700 - 3946341
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000033000000CFFFF425B0D35041A9A9AB578E2B5441BA2292F4B4D350416B911EF18D2B544164887BA7CED35041F7152DF38B2B5441E3D93932CDD35041E8BC1FAF802B544149F80AE8CAD350410CC889DA742B54419588FCC9CBD35041188A4D186E2B5441D3A08930CCD35041D0C2DCAF682B5441F22CD063CCD3504162D059AE642B544156706F63CBD350418F9A37AD612B54411FF7AD62C9D350411A09E9455F2B54416C4DD294C6D350415FC041125E2B5441FD5A4F93C2D350414034FBDE5D2B54415BFF222DC3D350412D67B049692B54413C73DCF9C2D3504141C5774D732B544151503F2BBED350413A26ACE7742B54410989CEC2B8D350413387E081762B5441631D8AC0B2D350413387E081762B5441610D7224ACD350413387E081762B5441F21AEF22A8D3504106AB2142552B54417D89A0BBA5D35041EEBDA674532B544184286C21A4D35041EBAD8ED84C2B544184286C21A4D35041018BF109482B5441A3B4B254A4D35041AF149D9F3D2B54413431B3E48AD35041972722D23B2B5441B061CDB18BD35041A1D605D4402B544132341FB08FD35041AC41320B492B5441C699822391D350419BE903974E2B5441AC09A47E92D3504195A58FC1512B54414F0C868696D3504132FF945D5A2B54410C87051E9BD3504124B8CC47642B544189B71FEB9BD350411C1901E2652B5441C7CFAC519CD350414344137B642B5441E65BF3849CD350414AE3DEE0622B5441FE486E529ED350414AE3DEE0622B54419905CF529FD350414AE3DEE0622B5441F7A9A2EC9FD3504124B8CC47642B5441926603EDA0D3504162D059AE642B54416C3BF153A2D3504162D059AE642B5441AA537EBAA2D350417ABDD47B662B5441E96B0B21A3D35041731E0916682B54414610DFBAA3D350410EDB6916692B54418BC73787A2D35041AA97CA166A2B5441B1F24920A1D3504126C8E4E36A2B54413C61FBB89ED3504145542B176B2B5441C030E1EB9DD3504145542B176B2B5441822E220CA2D3504142ACB98A732B54418FB095F7A3D350413ABBAA7D772B54413DF428BBA6D3504151DCA79A7D2B5441E2A731E3A8D350416F93EB59812B54418ED74F23A9D35041E2A10886812B5441CFFFF425B0D35041A9A9AB578E2B5441
+</a>
+
+<b>
+01060000000100000001030000000100000031000000D7A3708D9FD35041C3F5283C802B5441713D0A87A2D3504133333333842B5441CDCCCC9CA3D350417B14AE77862B5441AE47E19AA4D3504133333373882B54419A9999F9A5D35041A4703D1A8A2B54419A999949A8D3504152B81EB58B2B54415C8FC2C5ACD35041D7A3701D8E2B54413D0AD733AFD35041666666468F2B5441B81E851BB0D35041C3F5284C8E2B54413D0AD7A3A8D3504185EB51E8802B544166666656A5D3504114AE47317B2B54411F85EB11A4D350413D0AD7B3772B54418FC2F5A8A1D35041EC51B8BE722B5441CDCCCC3C9DD35041666666F6682B5441000000D098D3504148E17A445F2B544185EB51A892D3504133333313522B5441295C8F6291D3504152B81E954F2B54419A99997990D35041A4703DEA4B2B5441D7A3709D8FD35041713D0AC7482B54411F85EB218FD35041EC51B85E472B544114AE47718ED3504148E17AC4452B54417B14AE678DD3504152B81E35442B544114AE47718CD35041CDCCCCFC412B54419A9999D98BD3504114AE4761402B54419A9999D98AD35041C3F5282C3D2B5441AE47E14A8AD35041333333E33B2B5441333333C388D35041A4703DFA382B5441713D0AF789D3504114AE4701392B54417B14AEF789D350419A9999E9352B5441713D0AF789D350418FC2F528332B5441CDCCCC0C5AD3504166666636322B5441000000905BD350417B14AE67342B5441713D0A675DD350415C8FC285372B5441EC51B83E5FD35041AE47E18A3A2B5441A4703D3A61D350418FC2F5D83D2B5441EC51B87E63D3504185EB51B8412B5441EC51B8CE65D35041E17A14EE442B5441666666D667D3504100000000482B54410AD7A3006BD35041E17A144E4B2B54415C8FC2D56DD35041AE47E10A4E2B5441295C8FD274D35041C3F528FC542B54413333337379D3504148E17AB4592B544185EB51487CD35041E17A14AE5C2B5441666666D683D3504114AE47D1622B5441D7A3709D87D35041F6285CEF652B5441C3F5286C8DD350411F85EBB16B2B5441AE47E15A95D350419A999949742B5441333333339CD35041000000F07B2B5441D7A3708D9FD35041C3F5283C802B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>422869 - 401176
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000170000004C810CAB9A60504155E051F3212B5541216E292594605041C8B293D2212B55415A271C118E605041F8427EF3212B554144969731806050411F09A11A222B55415C3D708A816050414BB0BF40222B5541FCF89FA080605041534A2846222B5541F090E38A7B6050415AB99D71222B55415DCC0E626B6050415CEBC6E11F2B55419A78E41D69605041C0930FD01D2B554185EB51D85C605041A4703DFA1B2B5541666666865A60504185EB51381D2B55410AD7A3705A6050419A9999591F2B5541AF224D5E6E605041DCFA5A8C222B5541F6285C4F6D6050418FC2F598292B55411F85EB51776050411F85EB312B2B55412CA4A48E7A60504145093BE8242B5541EA61538284605041CE7BCD98252B5541F6285CCF8F605041295C8FC2252B55410600A6A396605041A77F5A66252B55413E48297F996050417F83E733252B554194F874DC99605041C6B3E230242B554185EB5188996050417B14AEE7242B55414C810CAB9A60504155E051F3212B5541
+</a>
+
+<b>
+01060000000100000001030000000100000026000000333333D38A60504185EB5198152B5541B81E857B8460504185EB5178152B55410AD7A33080605041333333C3142B55418FC2F5887A605041D7A3709D122B55418FC2F5587160504185EB51080E2B5541B81E85BB70605041B81E855B0F2B554152B81EE56F605041F6285C3F112B55417B14AED765605041333333530D2B554185EB51A86460504152B81E85142B5541AE47E19A68605041CDCCCC4C152B554185EB511868605041CDCCCC6C172B554152B81E2565605041D7A370AD162B5541A4703DFA60605041EC51B83E162B55418FC2F5E85D605041A4703D2A162B5541666666565C6050410AD7A3E0182B5541AE47E14A6160504114AE4731192B554152B81E956760504152B81E051A2B554152B81E557D605041666666961F2B55410AD7A3607E605041D7A370BD1F2B554152B81E057D605041B81E855B222B55411F85EB719B605041D7A370ED1F2B554185EB51189B605041713D0AD7202B554152B81ED5A6605041AE47E1CA162B5541A4703DFAA6605041A4703D0A162B55411F85EB11A9605041D7A3703D0F2B5541CDCCCC2CAB6050415C8FC265082B5541C3F5282CAD60504185EB51E8012B5541B81E853BAA605041F6285C4F022B55410AD7A3E0A7605041D7A370BD042B554133333383A5605041EC51B8EE082B554133333323A3605041AE47E1EA0C2B5541C3F5280CA360504114AE47010D2B554152B81E459F605041295C8F92102B55417B14AED79960504152B81E05132B5541E17A14AE96605041C3F528FC132B55410000000094605041713D0A67142B554114AE4721906050410AD7A300152B5541333333D38A60504185EB5198152B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>422869 - 1606659
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000170000004C810CAB9A60504155E051F3212B5541216E292594605041C8B293D2212B55415A271C118E605041F8427EF3212B554144969731806050411F09A11A222B55415C3D708A816050414BB0BF40222B5541FCF89FA080605041534A2846222B5541F090E38A7B6050415AB99D71222B55415DCC0E626B6050415CEBC6E11F2B55419A78E41D69605041C0930FD01D2B554185EB51D85C605041A4703DFA1B2B5541666666865A60504185EB51381D2B55410AD7A3705A6050419A9999591F2B5541AF224D5E6E605041DCFA5A8C222B5541F6285C4F6D6050418FC2F598292B55411F85EB51776050411F85EB312B2B55412CA4A48E7A60504145093BE8242B5541EA61538284605041CE7BCD98252B5541F6285CCF8F605041295C8FC2252B55410600A6A396605041A77F5A66252B55413E48297F996050417F83E733252B554194F874DC99605041C6B3E230242B554185EB5188996050417B14AEE7242B55414C810CAB9A60504155E051F3212B5541
+</a>
+
+<b>
+01060000000100000001030000000100000026000000333333D38A60504185EB5198152B5541B81E857B8460504185EB5178152B55410AD7A33080605041333333C3142B55418FC2F5887A605041D7A3709D122B55418FC2F5587160504185EB51080E2B5541B81E85BB70605041B81E855B0F2B554152B81EE56F605041F6285C3F112B55417B14AED765605041333333530D2B554185EB51A86460504152B81E85142B5541AE47E19A68605041CDCCCC4C152B554185EB511868605041CDCCCC6C172B554152B81E2565605041D7A370AD162B5541A4703DFA60605041EC51B83E162B55418FC2F5E85D605041A4703D2A162B5541666666565C6050410AD7A3E0182B5541AE47E14A6160504114AE4731192B554152B81E956760504152B81E051A2B554152B81E557D605041666666961F2B55410AD7A3607E605041D7A370BD1F2B554152B81E057D605041B81E855B222B55411F85EB719B605041D7A370ED1F2B554185EB51189B605041713D0AD7202B554152B81ED5A6605041AE47E1CA162B5541A4703DFAA6605041A4703D0A162B55411F85EB11A9605041D7A3703D0F2B5541CDCCCC2CAB6050415C8FC265082B5541C3F5282CAD60504185EB51E8012B5541B81E853BAA605041F6285C4F022B55410AD7A3E0A7605041D7A370BD042B554133333383A5605041EC51B8EE082B554133333323A3605041AE47E1EA0C2B5541C3F5280CA360504114AE47010D2B554152B81E459F605041295C8F92102B55417B14AED79960504152B81E05132B5541E17A14AE96605041C3F528FC132B55410000000094605041713D0A67142B554114AE4721906050410AD7A300152B5541333333D38A60504185EB5198152B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>422869 - 4269115
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000170000004C810CAB9A60504155E051F3212B5541216E292594605041C8B293D2212B55415A271C118E605041F8427EF3212B554144969731806050411F09A11A222B55415C3D708A816050414BB0BF40222B5541FCF89FA080605041534A2846222B5541F090E38A7B6050415AB99D71222B55415DCC0E626B6050415CEBC6E11F2B55419A78E41D69605041C0930FD01D2B554185EB51D85C605041A4703DFA1B2B5541666666865A60504185EB51381D2B55410AD7A3705A6050419A9999591F2B5541AF224D5E6E605041DCFA5A8C222B5541F6285C4F6D6050418FC2F598292B55411F85EB51776050411F85EB312B2B55412CA4A48E7A60504145093BE8242B5541EA61538284605041CE7BCD98252B5541F6285CCF8F605041295C8FC2252B55410600A6A396605041A77F5A66252B55413E48297F996050417F83E733252B554194F874DC99605041C6B3E230242B554185EB5188996050417B14AEE7242B55414C810CAB9A60504155E051F3212B5541
+</a>
+
+<b>
+01060000000100000001030000000100000026000000333333D38A60504185EB5198152B5541B81E857B8460504185EB5178152B55410AD7A33080605041333333C3142B55418FC2F5887A605041D7A3709D122B55418FC2F5587160504185EB51080E2B5541B81E85BB70605041B81E855B0F2B554152B81EE56F605041F6285C3F112B55417B14AED765605041333333530D2B554185EB51A86460504152B81E85142B5541AE47E19A68605041CDCCCC4C152B554185EB511868605041CDCCCC6C172B554152B81E2565605041D7A370AD162B5541A4703DFA60605041EC51B83E162B55418FC2F5E85D605041A4703D2A162B5541666666565C6050410AD7A3E0182B5541AE47E14A6160504114AE4731192B554152B81E956760504152B81E051A2B554152B81E557D605041666666961F2B55410AD7A3607E605041D7A370BD1F2B554152B81E057D605041B81E855B222B55411F85EB719B605041D7A370ED1F2B554185EB51189B605041713D0AD7202B554152B81ED5A6605041AE47E1CA162B5541A4703DFAA6605041A4703D0A162B55411F85EB11A9605041D7A3703D0F2B5541CDCCCC2CAB6050415C8FC265082B5541C3F5282CAD60504185EB51E8012B5541B81E853BAA605041F6285C4F022B55410AD7A3E0A7605041D7A370BD042B554133333383A5605041EC51B8EE082B554133333323A3605041AE47E1EA0C2B5541C3F5280CA360504114AE47010D2B554152B81E459F605041295C8F92102B55417B14AED79960504152B81E05132B5541E17A14AE96605041C3F528FC132B55410000000094605041713D0A67142B554114AE4721906050410AD7A300152B5541333333D38A60504185EB5198152B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>878156 - 1557734
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000007000000666666D64BA350413D0AD783DAF65441F6285C5F4DA350413D0AD773CDF65441B81E85DB44A350419A999979CCF65441AE47E1AA43A350419A999949CCF6544148E17AC43FA35041A4703DFAEBF654417B14AE5749A350418FC2F598EDF65441666666D64BA350413D0AD783DAF65441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000E6285C5F4DA350413B0AD773CDF65441B81E85DB44A350419A999979CCF65441AE47E1AA43A350419A999949CCF6544148E17AC43FA35041A4703DFAEBF654418D0D6E4D49A350419ECC3997EDF6544163D0D54849A3504111BA81BBEDF654417B14AE5749A350418FC2F598EDF65441AE47E1BA5BA3504152B81EC5F0F6544185EB513860A350418FC2F518D0F65441D7A370AD5AA350415C8FC235CFF65441E6285C5F4DA350413B0AD773CDF65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>878156 - 3509314
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000007000000666666D64BA350413D0AD783DAF65441F6285C5F4DA350413D0AD773CDF65441B81E85DB44A350419A999979CCF65441AE47E1AA43A350419A999949CCF6544148E17AC43FA35041A4703DFAEBF654417B14AE5749A350418FC2F598EDF65441666666D64BA350413D0AD783DAF65441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000E6285C5F4DA350413B0AD773CDF65441B81E85DB44A350419A999979CCF65441AE47E1AA43A350419A999949CCF6544148E17AC43FA35041A4703DFAEBF654418D0D6E4D49A350419ECC3997EDF6544163D0D54849A3504111BA81BBEDF654417B14AE5749A350418FC2F598EDF65441AE47E1BA5BA3504152B81EC5F0F6544185EB513860A350418FC2F518D0F65441D7A370AD5AA350415C8FC235CFF65441E6285C5F4DA350413B0AD773CDF65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>905855 - 954901
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000200000015000000295C8F021FDA5041B81E853B063455419A9999F923DA5041CDCCCC8C0A3455418FC2F53829DA50413D0AD703113455413D0AD7A32DDA5041713D0AA719345541AE47E13A34DA50410000008020345541AE47E1DA36DA50413D0AD72321345541EC51B8DE3CDA504152B81EA51E345541D7A370FD41DA5041CDCCCC4C1D3455413D0AD7A344DA5041A4703D6A1D345541666666A645DA5041713D0A971B345541A4703D9A4EDA504152B81E650B345541C3F528BC4FDA504114AE47D108345541666666864BDA504185EB5128073455415C8FC21546DA5041A4703DBA04345541A4703D7A41DA50418FC2F5D8013455415C8FC2B538DA5041E17A14BEFA335541B81E85CB2FDA50417B14AE77F2335541F6285C4F25DA504148E17A44FB335541E17A14EE22DA50411F85EB01FF33554114AE47A120DA50410000001005345541295C8F021FDA5041B81E853B0634554107000000A4703D0A2BDA5041333333B3F7335541666666B62BDA504185EB5118F733554148E17AD42EDA5041AE47E1DAF9335541B81E853B32DA504114AE47D1FC335541295C8F6231DA5041F6285CBFFD3355415C8FC2E52DDA5041333333E3FA335541A4703D0A2BDA5041333333B3F7335541
+</a>
+
+<b>
+01060000000100000001030000000100000019000000A19D558340DA50418973DF10013455415287564541DA50419FDD16AE01345541FD0DC64144DA50419E7FB795033455415846B26444DA504112BE8BAB03345541EF37691F45DA5041FF5241200434554150D6801746DA504143A1E1AA0434554104C5D5404BDA504141F63E0907345541065CA04D4BDA50413DB1F50E07345541CA6EFC6E4BDA5041BD77DC1D0734554161FB7DBD4FDA5041DF8424BA08345541F8611FC64FDA5041B1B7E1A8083455416C6CCCA051DA5041B7D3F68B04345541FE7304FA52DA504184C486D901345541C9E915B555DA504104A8F4CAFC335541C9E915B555DA504111A7CD9FFC335541934C1B1155DA504111A7CD9FFC335541DC9678794CDA5041EB9BED1FF93355419FD15C9E43DA5041EB9BED1FF9335541D452579640DA50417DD137D7F9335541EE6D8CEA39DA5041C71BA6B4F63355410A8A4A7937DA50417BD0AE9CF533554197C9AE8931DA504137895D4CF233554117C01CC12FDA504179F31B5CF23355415C8FC2B538DA5041E17A14BEFA335541A19D558340DA50418973DF1001345541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>454165 - 367124
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000004A0000008772598481AE5041791E613CE0D65441CE932C8181AE5041D68DF73DE0D65441B81E85CB80AE5041D7A3703DE1D65441EC51B86E7FAE5041C3F5289CE5D654413D0AD7737FAE50411F85EBE1EAD6544114AE470182AE504185EB5118ECD6544114AE47C17EAE5041C3F5281CEFD6544148E17AE47BAE5041B81E85CBF1D654418FC2F55886AE504152B81EC5FED65441295C8F2278AE5041713D0A3701D75441713D0A5774AE50410000005002D75441295C8F4279AE504152B81E1506D7544114AE47917FAE50417B14AE1705D75441C3F5287C89AE5041713D0A5706D754413333337393AE50411F85EB8105D75441EC51B8FE94AE504152B81E3505D754419A9999A990AE5041AE47E1BAF9D654413D0AD7F38EAE50410AD7A390FAD6544148E17AF48FAE504114AE4701F9D65441CDCCCCEC95AE504185EB51B8EFD6544152B81EF591AE5041B81E856BECD6544152B81E4592AE504185EB5178EBD654413D0AD7E396AE5041A4703DEAEDD6544148E17A349EAE50410AD7A3E0EED65441713D0A57A7AE5041666666A6EED65441295C8FE2AAAE5041EC51B8AEEED65441CDCCCC8CAEAE504152B81E25E0D654410AD7A390AAAE5041333333B3DFD654413D0AD743A8AE504185EB5138E1D654417B14AE67A6AE5041E17A140EE4D65441000000D0A4AE5041713D0AC7E0D65441666666A6A0AE5041713D0AC7E0D65441295C8F329DAE5041B81E850BE1D65441666666469AAE504148E17AE4DFD65441000000309AAE50419A999969DDD6544114AE478198AE5041E17A149EDCD65441295C8F029AAE5041AE47E1AADAD65441D7A3702DA1AE504114AE4721DDD65441666666B6A3AE5041B81E851BD6D65441713D0AA7A6AE50419A9999E9CDD654418FC2F5B891AE50419A999959C4D654419A9999F990AE50417B14AEF7C4D65441E17A141E90AE5041295C8FB2C5D65441CDCCCCDC82AE50410AD7A310C4D65441A4703D8A80AE50417B14AE97C1D654419A9999497FAE504100000010BED65441D7A3709D7AAE5041000000A0C0D654419A99997974AE504148E17AD4C2D6544114AE47916DAE5041C3F5282CC6D65441B236413F6AAE5041537932BEC9D65441F7930E226EAE50415B9F353DCAD654411F85EB716EAE5041C3F5281CCAD65441646129496EAE5041C50B0262CAD65441F7A2FC446CAE5041A20805EACDD65441F7A2FC446CAE5041D699516ECFD65441677DEDA86DAE50418BE0FDD7D2D65441BF2FD7FA73AE5041B7B9F200D6D65441F591E8697DAE504152407E44DBD65441E17A141E7EAE50410AD7A360DBD654418FC2F59880AE504133333343DCD65441B81E858B82AE5041CDCCCC2CDCD654411F85EBA182AE5041713D0A97DDD65441AE47E17A82AE5041B81E85DBDFD6544114AE47F184AE50415C8FC285E1D654417B14AEF78DAE5041333333F3E7D65441A4703DFA90AE5041A4703D2AEAD6544114AE470190AE5041A4703D4AECD65441B81E853B8EAE50411F85EBB1EAD654410AD7A3C08BAE50411F85EBC1EBD654417B14AEB789AE504185EB51A8E8D6544152B81EC587AE5041333333D3E5D65441A4703D4A85AE50419A9999C9E3D654411F85EBA182AE50410AD7A3C0E1D654418772598481AE5041791E613CE0D6544109000000A4703D9A8AAE50415C8FC275D1D6544152B81ED588AE50410AD7A3F0D3D65441B81E85BB85AE50411F85EB41D2D654416666664687AE5041333333B3CED65441D7A3704D89AE50417B14AEA7C9D65441F6285CBF8CAE504148E17A84C8D65441F6285C5F8CAE5041EC51B8FECAD65441F6285C4F8BAE5041AE47E1EACDD65441A4703D9A8AAE50415C8FC275D1D65441
+</a>
+
+<b>
+0106000000010000000103000000010000001600000052B81E4592AE504185EB5178EBD654413D0AD7E396AE5041A4703DEAEDD654414BE7C3AB9BAE50414A65488BEED6544157AE79349EAE5041020EA3E0EED654419FD70A57A7AE5041A76066A6EED65441304B586DA7AE5041B4BF9AA6EED654413DFF6A3DA9AE5041CBE9DBAAEED654410643E54AA9AE5041718BFBAAEED65441FD499DDCA9AE5041CD8A51ACEED65441421F7FE7A9AE504110156BACEED6544105A98EE2AAAE50414850B8AEEED65441469D56BDACAE504175CC7953E7D654410EBEAEA4ADAE50417BCFD4BDE3D65441CF9BCC8CAEAE50419A7A1F25E0D65441066CA290AAAE50417E2334B3DFD654419A9999B9A4AE50410AD7A3F0DDD65441295CEC629AAE504151199A9BDBD654414F468F629AAE5041153C859BDBD6544171AE025699AE504112F79802DDD654419E250A6796AE50410129B9EEE0D654419208090794AE504155E7EA21E6D6544152B81E4592AE504185EB5178EBD65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>955638 - 236416
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000004000000B70000000AD7A3A003AB504166666666D30B54413D0AD78304AB5041D7A3706DD20B5441EC51B86E04AB50410AD7A300CF0B5441B81E851B05AB50415C8FC225CC0B5441CDCCCCDC06AB50419A9999E9C80B544152B81ED506AB5041F6285CFFC60B5441E17A14BE04AB50411F85EBD1C50B5441666666A602AB5041713D0A57C40B54415C8FC23500AB5041713D0A07C10B54410AD7A360FDAA5041333333C3BE0B54411F85EB11FBAA5041EC51B87EBC0B5441B81E85ABF7AA504166666646BB0B544185EB5168F6AA504185EB51F8BA0B544114AE47A1F4AA50413D0AD783BB0B5441295C8F02F3AA50413D0AD7F3BB0B54419A999979EFAA5041713D0AE7BC0B5441295C8F32EDAA5041295C8F52BC0B54410AD7A380ECAA5041F6285CFFBB0B54410AD7A3F0EBAA5041000000C0BB0B5441E17A14FEEAAA5041CDCCCC3CBB0B54418FC2F528E9AA5041D7A3704DB70B5441D7A370DDE3AA504133333323BC0B544185EB51D8E0AA50419A9999A9BA0B5441CDCCCC7CDEAA5041CDCCCCACB80B544152B81EA5DCAA5041B81E853BB80B5441713D0A37DAAA5041CDCCCCACB80B54419A999939D8AA50413D0AD763BD0B54415C8FC2A5D5AA5041F6285CBFBF0B5441AE47E1BAD3AA5041B81E854BC10B5441F6285C5FD0AA504166666676C20B544100000080CEAA50413D0AD783C10B5441A4703D5ACEAA504152B81ED5BD0B5441713D0A17CFAA50419A9999A9BA0B54413D0AD713D1AA50418FC2F558B70B54410AD7A3F0D2AA5041F6285CDFB50B54419A999949D3AA5041B81E856BB50B544152B81EA5D2AA50419A999909B30B544185EB5118D2AA5041F6285CFFB00B54411F85EBF1D0AA50418FC2F5B8AC0B544152B81EA5CCAA504166666636AC0B54419A9999C9BAAA5041A4703D5AB10B5441D7A3704DB5AA5041EC51B8EEB20B5441CDCCCC9CB3AA5041C3F5282CB30B5441D7A370BDB2AA50413D0AD703BB0B544148E17A04B3AA5041666666D6BB0B54415C8FC255C0AA504100000080BC0B5441295C8F82C1AA5041CDCCCC6CC30B5441AE47E18AC2AA50417B14AE07C90B5441A4703DFAC5AA5041713D0AD7CC0B5441A4703DBAC7AA50411F85EBF1CF0B54415C8FC235CBAA50415C8FC2A5D40B54417B14AE17CEAA50410AD7A330DA0B54415C8FC2A5CDAA504100000020DA0B54415C8FC215C8AA504100000050D90B5441AE47E14AC3AA5041713D0AD7D80B5441EC51B81EBEAA504148E17AC4D80B5441C3F528CCB7AA5041713D0AE7D80B54418FC2F528B6AA50417B14AE57D80B54410AD7A380B4AA5041713D0AC7D70B5441B81E856BB1AA504100000000D70B5441666666A6B1AA5041F6285C3FDC0B544185EB5108B3AA5041C3F5286CDF0B5441A4703D1AB3AA50411F85EB71E20B5441F6285CCFB3AA504185EB5198E70B5441713D0A37B5AA504100000000EE0B5441713D0A27B6AA50419A9999C9F10B54413D0AD7D3B7AA5041F6285CFFF60B544166666626BBAA5041A4703DFAFE0B54417B14AEE7BCAA5041C3F5285C020C54417B14AEF7C0AA5041F6285CAF090C5441AE47E14AC3AA50411F85EB910D0C5441F6285CCFC5AA504152B81E75110C544166666606C9AA5041B81E859B150C5441B81E853BC9AA5041000000E0150C544152B81EA5CBAA50417B14AEC7180C5441AE47E14ACCAA504185EB5108180C544152B81E25CCAA50415C8FC285150C5441AE47E1EACDAA5041713D0A27150C5441C3F528CCD0AA50413D0AD783170C54410AD7A3A0D8AA504185EB51181C0C5441E17A147ED6AA5041713D0A771F0C54410AD7A350D2AA5041D7A3708D1F0C54419A999969D5AA5041713D0A47220C54411F85EBE1DAAA504148E17A84260C5441B81E858BE0AA50418FC2F5782A0C5441F6285C9FE6AA5041F6285C8F2E0C5441713D0A17EEAA5041000000D0320C54413D0AD7C3F1AA504100000020350C54418FC2F538F2AA504152B81E25350C54419A999939F4AA50418FC2F548340C5441333333C3F2AA50415C8FC215310C54417B14AE47F2AA50413D0AD7832F0C544185EB51D8F9AA50418FC2F5F82C0C54415C8FC225FFAA50419A9999292B0C5441713D0A0700AB5041F6285CDF2A0C544148E17A9401AB504152B81E552F0C5441F6285C4F06AB5041F6285CEF2D0C54410000000009AB504148E17A442D0C54417B14AE1710AB5041EC51B8AE2B0C54410AD7A3B010AB5041713D0A772B0C5441CDCCCC3C11AB50417B14AE272B0C5441A4703DEA11AB50417B14AE972A0C5441000000B012AB50419A999949290C54416666665613AB5041295C8F62270C54417B14AEC713AB5041A4703DAA250C54417B14AE5714AB5041000000F0220C54416666668614AB504133333353220C54419A99994915AB504185EB51A8200C5441295C8FE216AB5041EC51B88E1E0C54410000005017AB5041295C8F621D0C5441713D0A5717AB50411F85EBC11C0C5441666666A616AB5041AE47E1FA190C5441713D0A170EAB5041CDCCCC5C1F0C5441EC51B8DE0BAB50418FC2F578200C5441EC51B8CE08AB5041B81E858B210C54411F85EBD105AB50410AD7A380220C5441E17A14DE03AB5041A4703D8A220C5441A4703DEA01AB50419A999959220C5441B81E85BBFFAA504185EB5158230C54417B14AE77FEAA5041CDCCCC9C230C5441AE47E1AAFCAA5041EC51B84E230C5441C3F528ACFBAA5041C3F528EC220C5441E17A142EFAAA5041713D0A27230C54410AD7A3E0F8AA5041AE47E16A240C5441A4703DBAF7AA504185EB51B8250C5441E17A14CEF6AA50419A999929260C54418FC2F5A8F5AA504100000040270C544166666696F4AA504152B81E65290C5441295C8FD2F3AA50419A9999092C0C544114AE47F1F2AA5041B81E859B2D0C544152B81E55F1AA50413D0AD7A32E0C5441D7A370ADF1AA5041E17A14DE2F0C544185EB5108F0AA50418FC2F5C8300C54413D0AD743EFAA5041D7A3702D2F0C5441713D0A07F1AA504185EB51382E0C5441E17A145EF1AA5041D7A3706D2D0C5441AE47E16AEFAA5041E17A14CE270C54410AD7A3D0EDAA50410AD7A330230C544148E17A04ECAA50417B14AEE71D0C5441AE47E1EAE7AA5041C3F5285C0B0C5441CDCCCC8CD9AA5041C3F5289C0F0C5441713D0AF7D7AA5041C3F528EC0A0C5441333333E3D3AA5041CDCCCC4C0C0C5441295C8F62D2AA50419A9999F9070C544166666686DDAA504114AE4791030C54419A999989DCAA5041666666B6FD0B5441CDCCCCCCD4AA5041AE47E15AFD0B544114AE4771CCAA504148E17AD4FE0B544100000070C8AA50413D0AD7F3F30B54411F85EB51C2AA504148E17AC4F10B5441A4703D7ABEAA50415C8FC2C5EF0B544148E17AE4BBAA5041713D0AF7EC0B544148E17A54BEAA5041B81E850BEB0B5441E17A147EC4AA5041C3F5283CE90B5441B81E854BC8AA504185EB51B8E70B544148E17A44CBAA5041AE47E12AE50B5441A4703D9ACDAA5041713D0AF7E10B54411F85EB61D0AA50418FC2F508DE0B5441E17A14DED5AA5041D7A3705DDD0B5441EC51B84EDDAA504152B81E85E90B5441CDCCCCACE1AA504152B81E75E70B5441A4703D9AE2AA50410AD7A3E0E60B5441CDCCCC1CE7AA50411F85EB51E40B54418FC2F528E9AA50418FC2F588E30B5441F6285C3FE9AA504166666666E00B54413D0AD7A3E9AA50410AD7A380DF0B5441CDCCCCFCEAAA5041EC51B8AEDE0B5441713D0AB7EFAA5041713D0A67DB0B544100000000EFAA504166666636DA0B544114AE4701F1AA5041295C8F62D90B5441E17A14FEF2AA50411F85EB21D90B54415C8FC2B5F5AA5041D7A3706DD90B544100000010F8AA5041666666C6D80B5441D7A3703DF9AA50418FC2F528D60B54411F85EB91FAAA5041333333E3D30B5441D7A370CDF9AA5041A4703D8AD00B5441EC51B8BEFBAA504148E17A14D00B544185EB5188FCAA504185EB5168D30B5441666666F6FDAA5041B81E856BD30B54418FC2F51800AB5041295C8FD2D30B54419A9999A901AB504185EB51F8D30B5441713D0A8702AB504185EB51E8D30B54410AD7A3A003AB504166666666D30B54410500000033333303C1AA50415C8FC2A5070C544185EB5168C0AA504185EB51E8050C544114AE4711C2AA50415C8FC275050C544114AE4791C2AA50419A999939070C544133333303C1AA50415C8FC2A5070C544105000000000000E0E3AA5041C3F5286CCA0B54411F85EB81E2AA504100000060CA0B544185EB5188E2AA5041E17A142EC90B5441EC51B8FEE3AA504100000040C90B5441000000E0E3AA5041C3F5286CCA0B544109000000E17A149ECAAA50415C8FC2D5B70B544114AE47E1CAAA50413D0AD743B60B5441713D0A67CBAA5041666666A6B30B54410AD7A3C0CCAA504148E17A64B40B5441C3F5285CCCAA504148E17AB4B80B544114AE4771CAAA50413D0AD723B90B5441713D0A87C9AA504185EB5188B90B5441CDCCCC0CC9AA50419A999939B80B5441E17A149ECAAA50415C8FC2D5B70B5441
+</a>
+
+<b>
+0106000000010000000103000000010000001100000066666686DDAA504114AE4791030C544184999989DCAA50417C6666B6FD0B54414DCACD18D5AA50411943645EFD0B5441D1CCCCCCD4AA5041AE47E15AFD0B54411FAE4771CCAA50415DE17AD4FE0B54417B1682FEC5AA50419AA82D14000C54411A8FED59C6AA504122F4F95E000C5441C1F3BF3DC9AA50416B26E3D0010C5441E73B15CACAAA5041DE74499A040C5441D100E2B7CBAA50415605F4B2070C5441AF164ED2CBAA5041CE0B05F0080C5441F553D694CBAA5041089BD3600A0C544120576E4CCDAA5041231F6FC8090C54418C4FBE50D1AA50414CD3F363080C5441552ADA65D2AA504139A51303080C5441295C8F62D2AA50419A9999F9070C544166666686DDAA504114AE4791030C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>888917 - 354166
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000200000033000000F6285C6FECB55041000000E02C2854418FC2F598EDB5504185EB51282D2854413D0AD773EFB55041CDCCCC4C282854419A999929F0B550417B14AE572528544114AE47A1EFB550410AD7A3002228544114AE4751ECB5504114AE47C11A28544152B81E85E6B55041A4703D8A132854410AD7A3A0E4B55041AE47E14A112854415C8FC2C5DEB550419A9999A909285441F6285C5FDCB55041000000400628544114AE47E1DAB5504148E17A14042854418FC2F5C8D8B55041CDCCCC5CFD275441713D0AC7CCB550416666662600285441A4703D9ACAB55041A4703DDA08285441C3F5287CCDB55041EC51B8CE12285441D7A3708DCFB550418FC2F548212854419A999909B3B55041666666D61D28544114AE4761ADB5504166666606252854415C8FC275A4B55041333333E32628544185EB51E8A1B55041F6285C3F24285441295C8F62A2B550419A999909222854411F85EB219DB5504185EB51C820285441CDCCCCAC9BB55041E17A14AE1D285441713D0AA79DB550417B14AE671428544152B81E95A1B550418FC2F5C812285441713D0A579CB5504133333373062854415C8FC20598B55041AE47E19A072854413D0AD70395B550419A9999390928544114AE47A194B55041AE47E18A0D285441D7A3706D91B55041295C8F620C2854410000000082B550419A9999F9F42754419A9999897FB55041C3F5280CF52754419A9999D977B5504185EB5138F52754417B14AE3774B55041E17A144EF52754413333339374B55041D7A3709D292854413D0AD7A39DB55041D7A3704D32285441EC51B80EB0B550410AD7A30035285441000000D0B3B550413D0AD7B335285441C3F5289CC0B55041E17A149E38285441A4703D6AD0B550413D0AD7F33B285441D7A370EDD5B55041EC51B8EE3C2854411F85EB61D6B55041000000203A285441CDCCCC5CDBB5504114AE47F13A285441713D0A77DBB55041D7A370FD3D2854418FC2F5B8E2B5504185EB51683F285441AE47E1CAE4B55041B81E85CB3F28544166666656E7B550415C8FC2654028544185EB51E8E7B550415C8FC2853E28544114AE4751EAB55041666666063F28544185EB5178EAB5504185EB51E831285441F6285C6FECB55041000000E02C2854410A00000048E17A24B9B5504114AE475127285441713D0A37B9B55041333333732528544148E17A94BAB55041D7A3704D2428544100000060BCB550416666669624285441713D0A07BEB55041CDCCCCBC25285441F6285C3FBFB5504152B81EF5262854415C8FC2F5BEB550417B14AE77282854413D0AD773BDB550411F85EB41292854410AD7A3F0BAB55041EC51B8AE2828544148E17A24B9B5504114AE475127285441
+</a>
+
+<b>
+0106000000010000000103000000010000002C00000096B4A0769EB55041DC1593B1182854419E8DA8829CB55041AF3B250D162854411C8111A09CB5504135089636142854414A5B7F449FB5504145D406601228544119505ADAA1B55041FAA6DC07112854410361612BA2B55041406629C3102854419AF5F97BA2B550411A13C7800F2854417835EDE8A1B55041FE2CF5450F285441DD5BB290A1B5504121ECCE8C0D285441D043318CA1B55041A5C235250D285441D5684973A1B55041F31161E80A285441896D3D56A1B550414E8A412F08285441239CB92FA1B5504150E2D4CF07285441FE015E12A0B550411B834A470528544174F493E39DB550410890E12905285441625F3CB29DB55041C8AD8F1C05285441EB125DF29CB55041B65A140F05285441155522249CB55041291418B10428544156E6966899B5504129368DAB03285441B801045F97B5504116499E7D042854419A4F8C7396B5504109B4E6EB052854418386DDED95B550411C54CB4B06285441FD4AE9E493B550413E51210908285441F4AE747F94B55041433376240928544132FE5E9594B550418BC4A34C092854419C5A6ECE94B5504107028B900B28544140B1A1F992B550410506FD510D285441E74B49EB92B55041B99884420D28544165DBB1DC92B5504111E19F4F0D285441BEA0C52291B550417441606A0B2854413697D9F090B550419B715C200B285441E13BB91D8DB5504103C47000072854412E6ECA4A80B55041E4DE7806F52754412190964280B55041B0B1B606F5275441A18F682B80B5504197666507F52754419311C2AC7FB550413265B76CF527544191A13EE689B55041BB1C5FE6032854413D6F15A88CB5504125847D93072854419FFD2B4992B5504132C609E50D28544140B1A1F992B550410EF9656F0D285441C3E5631C97B55041E0AD41B8122854417011CE8B98B550418B8AFABF152854416200F8799BB550414B3D8BA51A28544196B4A0769EB55041DC1593B118285441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>874571 - 2348678
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000160000004F1ED8EBF35E51418329A6D128AF544184F23C40F75E51413E502B8627AF544104B37785FC5E51416D31C26C25AF544199078065085F514192EBC17820AF54416CEADDA50C5F514175D1838D1EAF5441A4456A8F155F5141C1F78D311AAF54415869F6AB1A5F514179FBDFCD16AF544129D6632A135F5141E1B1160D13AF5441F7DECC59105F5141F8A170F40FAF5441F9104F010E5F5141A5DB939C10AF5441D643E2050D5F5141CC47430D0EAF54418B77CD310C5F5141B6FCFDCC0AAF5441B02E2228015F5141987B58DE0EAF5441DF6727CCF25E51410A8B44CA12AF5441DF30CFD2F05E51410EB6BB5F13AF544129447D21EE5E51411FD11D3A14AF5441F7401892EB5E5141E07F946515AF54419FA8EDE6ED5E51410D6AC8311CAF54419045DB8CEF5E51414F75323A20AF5441A07E9236F15E514158BF4CC023AF5441E8CBA5FBF25E5141F58C460927AF54414F1ED8EBF35E51418329A6D128AF5441
+</a>
+
+<b>
+0106000000010000000103000000010000001D0000003D0AD743EF5E514148E17AD413AF5441F6285C9FEC5E514114AE47C114AF544100000070EB5E51411F85EB2115AF54415C8FC255EE5E5141F6285C6F1DAF5441E17A147EF05E514148E17A6422AF5441AE47E1AAF55E5141B81E856B20AF544114AE4781FA5E5141D7A370AD1EAF5441713D0A17005F514114AE47811CAF5441333333C3075F51410AD7A36019AF54419A9999C9095F514148E17A8418AF54410AD7A3D00C5F51413D0AD7F316AF5441F6285C4F0E5F5141F6285C1F16AF5441AE47E1EA0F5F51413D0AD71315AF54417B14AE07115F5141C3F5285C14AF5441B81E85AB125F51413D0AD72313AF54415C8FC235145F5141AE47E1EA11AF5441000000B0125F5141F6285C9F10AF54411F85EB81115F5141B81E858B0FAF5441D7A3702D0F5F5141E17A14EE0CAF544185EB51F80B5F5141666666D609AF5441B81E85BB095F5141333333130BAF54419A9999D9065F514114AE47310CAF544148E17A14035F5141AE47E19A0DAF5441713D0AE7FF5E5141A4703DAA0EAF5441713D0AD7FC5E5141A4703DAA0FAF5441713D0AC7F75E514148E17A1411AF5441EC51B8BEF45E51416666663612AF5441AE47E13AF15E514114AE474113AF54413D0AD743EF5E514148E17AD413AF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>874571 - 5167512
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000160000004F1ED8EBF35E51418329A6D128AF544184F23C40F75E51413E502B8627AF544104B37785FC5E51416D31C26C25AF544199078065085F514192EBC17820AF54416CEADDA50C5F514175D1838D1EAF5441A4456A8F155F5141C1F78D311AAF54415869F6AB1A5F514179FBDFCD16AF544129D6632A135F5141E1B1160D13AF5441F7DECC59105F5141F8A170F40FAF5441F9104F010E5F5141A5DB939C10AF5441D643E2050D5F5141CC47430D0EAF54418B77CD310C5F5141B6FCFDCC0AAF5441B02E2228015F5141987B58DE0EAF5441DF6727CCF25E51410A8B44CA12AF5441DF30CFD2F05E51410EB6BB5F13AF544129447D21EE5E51411FD11D3A14AF5441F7401892EB5E5141E07F946515AF54419FA8EDE6ED5E51410D6AC8311CAF54419045DB8CEF5E51414F75323A20AF5441A07E9236F15E514158BF4CC023AF5441E8CBA5FBF25E5141F58C460927AF54414F1ED8EBF35E51418329A6D128AF5441
+</a>
+
+<b>
+0106000000010000000103000000010000001D0000003D0AD743EF5E514148E17AD413AF5441F6285C9FEC5E514114AE47C114AF544100000070EB5E51411F85EB2115AF54415C8FC255EE5E5141F6285C6F1DAF5441E17A147EF05E514148E17A6422AF5441AE47E1AAF55E5141B81E856B20AF544114AE4781FA5E5141D7A370AD1EAF5441713D0A17005F514114AE47811CAF5441333333C3075F51410AD7A36019AF54419A9999C9095F514148E17A8418AF54410AD7A3D00C5F51413D0AD7F316AF5441F6285C4F0E5F5141F6285C1F16AF5441AE47E1EA0F5F51413D0AD71315AF54417B14AE07115F5141C3F5285C14AF5441B81E85AB125F51413D0AD72313AF54415C8FC235145F5141AE47E1EA11AF5441000000B0125F5141F6285C9F10AF54411F85EB81115F5141B81E858B0FAF5441D7A3702D0F5F5141E17A14EE0CAF544185EB51F80B5F5141666666D609AF5441B81E85BB095F5141333333130BAF54419A9999D9065F514114AE47310CAF544148E17A14035F5141AE47E19A0DAF5441713D0AE7FF5E5141A4703DAA0EAF5441713D0AD7FC5E5141A4703DAA0FAF5441713D0AC7F75E514148E17A1411AF5441EC51B8BEF45E51416666663612AF5441AE47E13AF15E514114AE474113AF54413D0AD743EF5E514148E17AD413AF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>889155 - 1000276
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000200000033000000EC51B88EB06B51419A9999093334544152B81E15B16B5141E17A149E34345441D7A3704DB26B5141CDCCCCDC3634544152B81EB5B46B514152B81EA53A34544185EB51B8B56B51418FC2F5B837345441CDCCCC1CB86B5141E17A141E353454418FC2F5D8BC6B5141000000B0303454413D0AD7A3C06B5141D7A370BD2D3454419A999909C56B5141F6285CBF2A34544133333323D66B5141F6285CDF20345441AE47E1EAE16B514166666666193454419A999939E86B5141EC51B8DE153454413D0AD7F3F36B51413333337312345441F6285CCFF56B5141F6285C9F11345441B81E852BF76B5141713D0A37103454413D0AD713F86B5141000000400E34544166666646F86B5141F6285C0F0B34544114AE4791F76B51411F85EBC107345441713D0A77F56B51416666665601345441A4703D6AF36B5141CDCCCC2CFD335441A4703DAAEE6B51417B14AEE7F6335441666666E6E96B514166666666F433544152B81E05E86B514148E17A44F4335441D7A370FDE76B514148E17AA4F43354418FC2F568E66B51413D0AD783F433544133333373E66B51415C8FC225F4335441D7A3701DE26B5141F6285C5FF33354410AD7A3F0DB6B5141EC51B8FEF1335441B81E858BD76B5141CDCCCCBCF0335441D7A3700DCC6B5141B81E85BBED3354413D0AD713C66B51419A999959ED33544148E17A04C26B5141713D0A17ED335441B81E859BC06B514185EB51B8ED33544114AE4751BE6B5141E17A14BEEE335441B81E855BB86B5141713D0A27F6335441295C8F22AB6B5141A4703D1A043454419A999939AA6B5141E17A146E063454418FC2F598AA6B51415C8FC235093454417B14AE17AB6B51415C8FC2E50C3454419A9999A9AB6B514152B81E950E345441333333D3AB6B5141AE47E10A103454410AD7A3F0AC6B51415C8FC2551534544100000090AD6B51415C8FC2051634544152B81EE5AD6B5141295C8FF21D345441A4703DBAAE6B5141333333E31F34544148E17A64AF6B5141713D0AC71F345441F6285C4FAF6B5141EC51B8CE2A345441B81E856BAF6B514185EB51782C345441EC51B8CEAF6B5141713D0A772E3454410AD7A340B06B5141713D0AA731345441EC51B88EB06B51419A99990933345441190000008FC2F5E8DD6B51417B14AE07F7335441000000D0E36B514148E17AC4F5335441713D0A07E96B51418FC2F5A8F73354413D0AD7B3EE6B5141A4703D5AFA33544114AE47F1F26B51411F85EBA101345441F6285C7FED6B514185EB510802345441000000E0E56B5141333333F302345441EC51B8CEE16B5141333333A3033454410AD7A340DE6B51410AD7A37004345441E17A146ECC6B5141E17A14AE083454410AD7A390C96B51417B14AEA70934544148E17A04C86B5141A4703D3A0A345441C3F5284CC66B51413D0AD7330B345441B81E85FBBB6B51411F85EBE1123454419A999999B86B5141E17A141E1534544152B81E35B16B5141295C8F12193454411F85EBF1AF6B51415C8FC26513345441CDCCCC1CAE6B5141D7A370DD0C345441EC51B83EB56B5141C3F528CC07345441F6285CDFBD6B5141C3F5287C00345441666666F6BE6B5141EC51B8AEFF33544152B81E15C16B51415C8FC2B5FE33544148E17A14CA6B5141AE47E1BAFB33544114AE4781D26B5141CDCCCC8CF93354418FC2F5E8DD6B51417B14AE07F7335441
+</a>
+
+<b>
+0106000000010000000103000000010000005F00000019D4BA90B66B514114A1120BF8335441C901082EB86B5141BF100857F6335441E8FBF013B96B5141A444C041F5335441B2D7D8A8BA6B5141311F564AF333544139D7EBC0BB6B514152931FEEF133544198E62C78BD6B51412EF100CCEF33544114AE4751BE6B5141E17A14BEEE335441604B91F0BE6B51411002F576EE3354412CBAB858BE6B51412FEB1ED0EC33544138C55ADFBC6B5141C90E2E39EC33544101B9FB5EBA6B51412D5FCE6AEC335441137F8FFAB46B514101C98626ED3354419CEC803EAE6B5141ED12FA10EE3354418DC86B40A86B514157439576EE335441AE47E19AA66B5141295C8F72EE335441A4703DAA9F6B51410AD7A3C0EF335441CDCCCC5C9B6B5141EC51B88EF0335441F6285C8F946B5141000000C0F133544100000050916B5141713D0A47F2335441295C8FB28F6B51419A9999B9F2335441EC51B8BE8F6B5141AE47E14AF3335441D7A3708D936B5141CDCCCC2CF3335441295C8F42956B514114AE4701F7335441D7A3705D976B514152B81EE5F53354419A999909986B51413D0AD733F7335441CDCCCCBC956B51417B14AE97F8335441D7A3709D936B514114AE4711F9335441295C8F62926B51410AD7A360F93354418FC2F548926B51411F85EBB1FA335441000000A0946B5141D7A3709DFA335441000000A0946B514100000040FB33544133333353926B514114AE4721FB33544166666616926B5141AE47E10AFC33544100000000936B51417B14AEB7FC33544185EB5128936B5141713D0A97FD335441A4703D7A8E6B51416666667603345441295C8F928C6B51418FC2F508023454410AD7A3908D6B5141713D0A870034544114AE4751896B51418FC2F518FF33544166666676866B514152B81E95FE335441D7A3704D866B5141F6285C2FFE3354415C8FC255876B5141295C8F52FC3354417B14AE67886B5141CDCCCCECFB3354410AD7A390886B5141B81E852BFB3354419A999939866B51417B14AE17FB3354419A9999C9836B51419A999929F73354419A999909836B5141AE47E1AAF733544166666686816B5141F6285CAFF8335441C3F5281C7F6B5141E17A141EFB335441CDCCCC2C7B6B5141B81E85EBFF33544133333333766B514114AE47B105345441E17A147E736B5141CDCCCC5C0834544114AE47016C6B51411F85EB810F3454417B14AE07676B5141EC51B80E153454417B14AEC7646B51419A99993918345441000000906B6B5141B81E85FB1B345441D7A3700D6F6B5141AE47E14A1D345441EC51B8DE766B5141CDCCCC5C1E345441F6285C4F786B51410AD7A3602334544100000050796B5141295C8F7223345441C3F528EC7A6B51410AD7A370213454419A9999F97C6B51410AD7A30023345441333333C37B6B5141CDCCCC9C243454413D0AD7B37C6B51419A9999A9253454415C8FC2C57D6B514148E17A542734544185EB51E8806B514152B81E8528345441AE47E11A816B5141A4703DCA29345441666666F67E6B5141713D0A072A345441E17A14BE7C6B5141C3F528CC283454417B14AE277B6B51417B14AEA72634544185EB5138796B5141666666B626345441A4703D8A776B5141C3F5284C27345441713D0AF7746B514133333313293454417B14AE57746B51417B14AEA72A3454410AD7A380746B514114AE47E12B3454410AD7A3C0786B51415C8FC2152F3454419A9999B97E6B5141333333233034544185EB5178806B514148E17A743034544152B81EA5836B514152B81E852D345441713D0A17856B5141C3F528FC2C345441A4703D6A866B5141000000F02A34544148E17A84886B51410AD7A3402A345441AE47E11A8A6B5141D7A3702D26345441F6285CDF8F6B514152B81E651E3454419A999969916B5141295C8F321A3454410AD7A3C0986B5141E17A147E13345441EC51B8CE9B6B51413333334312345441EC51B8FE9E6B5141C3F5280C12345441C3F528CCA16B5141C3F5287C10345441F6285C1FA96B514152B81EF50D3454417B14AE17AB6B51415C8FC2E50C3454418FC2F598AA6B51415C8FC235093454419A999939AA6B5141E17A146E06345441295C8F22AB6B5141A4703D1A0434544119D4BA90B66B514114A1120BF8335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>889155 - 3809084
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000200000033000000EC51B88EB06B51419A9999093334544152B81E15B16B5141E17A149E34345441D7A3704DB26B5141CDCCCCDC3634544152B81EB5B46B514152B81EA53A34544185EB51B8B56B51418FC2F5B837345441CDCCCC1CB86B5141E17A141E353454418FC2F5D8BC6B5141000000B0303454413D0AD7A3C06B5141D7A370BD2D3454419A999909C56B5141F6285CBF2A34544133333323D66B5141F6285CDF20345441AE47E1EAE16B514166666666193454419A999939E86B5141EC51B8DE153454413D0AD7F3F36B51413333337312345441F6285CCFF56B5141F6285C9F11345441B81E852BF76B5141713D0A37103454413D0AD713F86B5141000000400E34544166666646F86B5141F6285C0F0B34544114AE4791F76B51411F85EBC107345441713D0A77F56B51416666665601345441A4703D6AF36B5141CDCCCC2CFD335441A4703DAAEE6B51417B14AEE7F6335441666666E6E96B514166666666F433544152B81E05E86B514148E17A44F4335441D7A370FDE76B514148E17AA4F43354418FC2F568E66B51413D0AD783F433544133333373E66B51415C8FC225F4335441D7A3701DE26B5141F6285C5FF33354410AD7A3F0DB6B5141EC51B8FEF1335441B81E858BD76B5141CDCCCCBCF0335441D7A3700DCC6B5141B81E85BBED3354413D0AD713C66B51419A999959ED33544148E17A04C26B5141713D0A17ED335441B81E859BC06B514185EB51B8ED33544114AE4751BE6B5141E17A14BEEE335441B81E855BB86B5141713D0A27F6335441295C8F22AB6B5141A4703D1A043454419A999939AA6B5141E17A146E063454418FC2F598AA6B51415C8FC235093454417B14AE17AB6B51415C8FC2E50C3454419A9999A9AB6B514152B81E950E345441333333D3AB6B5141AE47E10A103454410AD7A3F0AC6B51415C8FC2551534544100000090AD6B51415C8FC2051634544152B81EE5AD6B5141295C8FF21D345441A4703DBAAE6B5141333333E31F34544148E17A64AF6B5141713D0AC71F345441F6285C4FAF6B5141EC51B8CE2A345441B81E856BAF6B514185EB51782C345441EC51B8CEAF6B5141713D0A772E3454410AD7A340B06B5141713D0AA731345441EC51B88EB06B51419A99990933345441190000008FC2F5E8DD6B51417B14AE07F7335441000000D0E36B514148E17AC4F5335441713D0A07E96B51418FC2F5A8F73354413D0AD7B3EE6B5141A4703D5AFA33544114AE47F1F26B51411F85EBA101345441F6285C7FED6B514185EB510802345441000000E0E56B5141333333F302345441EC51B8CEE16B5141333333A3033454410AD7A340DE6B51410AD7A37004345441E17A146ECC6B5141E17A14AE083454410AD7A390C96B51417B14AEA70934544148E17A04C86B5141A4703D3A0A345441C3F5284CC66B51413D0AD7330B345441B81E85FBBB6B51411F85EBE1123454419A999999B86B5141E17A141E1534544152B81E35B16B5141295C8F12193454411F85EBF1AF6B51415C8FC26513345441CDCCCC1CAE6B5141D7A370DD0C345441EC51B83EB56B5141C3F528CC07345441F6285CDFBD6B5141C3F5287C00345441666666F6BE6B5141EC51B8AEFF33544152B81E15C16B51415C8FC2B5FE33544148E17A14CA6B5141AE47E1BAFB33544114AE4781D26B5141CDCCCC8CF93354418FC2F5E8DD6B51417B14AE07F7335441
+</a>
+
+<b>
+0106000000010000000103000000010000005F00000019D4BA90B66B514114A1120BF8335441C901082EB86B5141BF100857F6335441E8FBF013B96B5141A444C041F5335441B2D7D8A8BA6B5141311F564AF333544139D7EBC0BB6B514152931FEEF133544198E62C78BD6B51412EF100CCEF33544114AE4751BE6B5141E17A14BEEE335441604B91F0BE6B51411002F576EE3354412CBAB858BE6B51412FEB1ED0EC33544138C55ADFBC6B5141C90E2E39EC33544101B9FB5EBA6B51412D5FCE6AEC335441137F8FFAB46B514101C98626ED3354419CEC803EAE6B5141ED12FA10EE3354418DC86B40A86B514157439576EE335441AE47E19AA66B5141295C8F72EE335441A4703DAA9F6B51410AD7A3C0EF335441CDCCCC5C9B6B5141EC51B88EF0335441F6285C8F946B5141000000C0F133544100000050916B5141713D0A47F2335441295C8FB28F6B51419A9999B9F2335441EC51B8BE8F6B5141AE47E14AF3335441D7A3708D936B5141CDCCCC2CF3335441295C8F42956B514114AE4701F7335441D7A3705D976B514152B81EE5F53354419A999909986B51413D0AD733F7335441CDCCCCBC956B51417B14AE97F8335441D7A3709D936B514114AE4711F9335441295C8F62926B51410AD7A360F93354418FC2F548926B51411F85EBB1FA335441000000A0946B5141D7A3709DFA335441000000A0946B514100000040FB33544133333353926B514114AE4721FB33544166666616926B5141AE47E10AFC33544100000000936B51417B14AEB7FC33544185EB5128936B5141713D0A97FD335441A4703D7A8E6B51416666667603345441295C8F928C6B51418FC2F508023454410AD7A3908D6B5141713D0A870034544114AE4751896B51418FC2F518FF33544166666676866B514152B81E95FE335441D7A3704D866B5141F6285C2FFE3354415C8FC255876B5141295C8F52FC3354417B14AE67886B5141CDCCCCECFB3354410AD7A390886B5141B81E852BFB3354419A999939866B51417B14AE17FB3354419A9999C9836B51419A999929F73354419A999909836B5141AE47E1AAF733544166666686816B5141F6285CAFF8335441C3F5281C7F6B5141E17A141EFB335441CDCCCC2C7B6B5141B81E85EBFF33544133333333766B514114AE47B105345441E17A147E736B5141CDCCCC5C0834544114AE47016C6B51411F85EB810F3454417B14AE07676B5141EC51B80E153454417B14AEC7646B51419A99993918345441000000906B6B5141B81E85FB1B345441D7A3700D6F6B5141AE47E14A1D345441EC51B8DE766B5141CDCCCC5C1E345441F6285C4F786B51410AD7A3602334544100000050796B5141295C8F7223345441C3F528EC7A6B51410AD7A370213454419A9999F97C6B51410AD7A30023345441333333C37B6B5141CDCCCC9C243454413D0AD7B37C6B51419A9999A9253454415C8FC2C57D6B514148E17A542734544185EB51E8806B514152B81E8528345441AE47E11A816B5141A4703DCA29345441666666F67E6B5141713D0A072A345441E17A14BE7C6B5141C3F528CC283454417B14AE277B6B51417B14AEA72634544185EB5138796B5141666666B626345441A4703D8A776B5141C3F5284C27345441713D0AF7746B514133333313293454417B14AE57746B51417B14AEA72A3454410AD7A380746B514114AE47E12B3454410AD7A3C0786B51415C8FC2152F3454419A9999B97E6B5141333333233034544185EB5178806B514148E17A743034544152B81EA5836B514152B81E852D345441713D0A17856B5141C3F528FC2C345441A4703D6A866B5141000000F02A34544148E17A84886B51410AD7A3402A345441AE47E11A8A6B5141D7A3702D26345441F6285CDF8F6B514152B81E651E3454419A999969916B5141295C8F321A3454410AD7A3C0986B5141E17A147E13345441EC51B8CE9B6B51413333334312345441EC51B8FE9E6B5141C3F5280C12345441C3F528CCA16B5141C3F5287C10345441F6285C1FA96B514152B81EF50D3454417B14AE17AB6B51415C8FC2E50C3454418FC2F598AA6B51415C8FC235093454419A999939AA6B5141E17A146E06345441295C8F22AB6B5141A4703D1A0434544119D4BA90B66B514114A1120BF8335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>874040 - 1470090
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002B0000009A9999A9DAFE5041AE47E19A1B245541B81E855BD8FE5041C3F528EC1924554166666606D5FE5041666666B61724554133333383D1FE50411F85EB011624554152B81E35CFFE5041B81E85EB14245541F6285C7FCCFE5041F6285C4F1324554114AE47D1CAFE504148E17A441624554148E17AC4C8FE5041AE47E19A192455410AD7A390C6FE5041CDCCCCBC1D24554148E17AB4C3FE5041E17A140E232455413D0AD723C1FE5041666666C627245541295C8FA2C0FE504148E17A042924554185EB5108C4FE5041D7A370FD2924554152B81E85C8FE50419A9999192C245541CDCCCC1CCDFE5041C3F5281C2F245541713D0AD7D0FE5041E17A143E30245541F6285CBFD3FE50410AD7A3203124554166666626D6FE5041F6285CBF302455419A999919DBFE5041A4703DDA30245541AE47E1CADCFE50413D0AD723352455410AD7A3D0E0FE50413333338333245541D7A370FDE1FE5041E17A140E3324554114AE4731E3FE5041A4703DEA322455415C8FC295E4FE5041AE47E10A332455413D0AD703EAFE50410000006034245541D7A3700DECFE50413D0AD7A334245541AE47E10AEEFE50419A9999E9342455415C8FC275EFFE50411F85EBF13424554114AE4721F1FE50418FC2F5683324554148E17AD4F5FE504148E17A6431245541C3F528BCF7FE50415C8FC23530245541D7A370FDF8FE50417B14AE172F245541F6285CDFF6FE50411F85EB612A2455417B14AEE7EFFE50415C8FC2A5252455417B14AE97EBFE50410AD7A3D022245541AE47E12AEBFE5041A4703D9A22245541D7A3704DEAFE504148E17A34222455415C8FC265E8FE504166666686212455415C8FC295E6FE5041000000C020245541295C8F32E4FE50417B14AEC71F24554152B81EA5E1FE50417B14AEA71E245541B81E852BDDFE5041EC51B8BE1C2455419A9999A9DAFE5041AE47E19A1B245541
+</a>
+
+<b>
+010600000001000000010300000001000000150000004F19C176C5FE50413A0755A51A24554107A23146C7FE50417DB964481B245541031EE6B8C7FE50415BAEC47E1B24554120F5F2B7C8FE5041253B64B219245541C6E61D07C9FE5041655C642E1924554114AE47D1CAFE504148E17A4416245541F6285C7FCCFE5041F6285C4F132455418FC2F558C8FE5041333333031124554185EB51F8C7FE5041F6285CBF0E2455419A999929C3FE50415C8FC2450C2455418FC2F558C1FE5041333333830B24554185EB51F8BEFE5041A4703D5A102455418FC2F5D8BDFE50419A9999C90F2455413D0AD703BDFE5041AE47E14A112455419A9999A9BBFE50415C8FC2F513245541D88FD970BAFE5041A6238207162455419F2759B2BAFE5041BFB9053A16245541C0F16AB5BAFE5041E460733B1624554152B81EB5BAFE5041C3F5283C162455417B14AE17C0FE5041CDCCCCBC182455414F19C176C5FE50413A0755A51A245541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>874040 - 3445350
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002B0000009A9999A9DAFE5041AE47E19A1B245541B81E855BD8FE5041C3F528EC1924554166666606D5FE5041666666B61724554133333383D1FE50411F85EB011624554152B81E35CFFE5041B81E85EB14245541F6285C7FCCFE5041F6285C4F1324554114AE47D1CAFE504148E17A441624554148E17AC4C8FE5041AE47E19A192455410AD7A390C6FE5041CDCCCCBC1D24554148E17AB4C3FE5041E17A140E232455413D0AD723C1FE5041666666C627245541295C8FA2C0FE504148E17A042924554185EB5108C4FE5041D7A370FD2924554152B81E85C8FE50419A9999192C245541CDCCCC1CCDFE5041C3F5281C2F245541713D0AD7D0FE5041E17A143E30245541F6285CBFD3FE50410AD7A3203124554166666626D6FE5041F6285CBF302455419A999919DBFE5041A4703DDA30245541AE47E1CADCFE50413D0AD723352455410AD7A3D0E0FE50413333338333245541D7A370FDE1FE5041E17A140E3324554114AE4731E3FE5041A4703DEA322455415C8FC295E4FE5041AE47E10A332455413D0AD703EAFE50410000006034245541D7A3700DECFE50413D0AD7A334245541AE47E10AEEFE50419A9999E9342455415C8FC275EFFE50411F85EBF13424554114AE4721F1FE50418FC2F5683324554148E17AD4F5FE504148E17A6431245541C3F528BCF7FE50415C8FC23530245541D7A370FDF8FE50417B14AE172F245541F6285CDFF6FE50411F85EB612A2455417B14AEE7EFFE50415C8FC2A5252455417B14AE97EBFE50410AD7A3D022245541AE47E12AEBFE5041A4703D9A22245541D7A3704DEAFE504148E17A34222455415C8FC265E8FE504166666686212455415C8FC295E6FE5041000000C020245541295C8F32E4FE50417B14AEC71F24554152B81EA5E1FE50417B14AEA71E245541B81E852BDDFE5041EC51B8BE1C2455419A9999A9DAFE5041AE47E19A1B245541
+</a>
+
+<b>
+010600000001000000010300000001000000150000004F19C176C5FE50413A0755A51A24554107A23146C7FE50417DB964481B245541031EE6B8C7FE50415BAEC47E1B24554120F5F2B7C8FE5041253B64B219245541C6E61D07C9FE5041655C642E1924554114AE47D1CAFE504148E17A4416245541F6285C7FCCFE5041F6285C4F132455418FC2F558C8FE5041333333031124554185EB51F8C7FE5041F6285CBF0E2455419A999929C3FE50415C8FC2450C2455418FC2F558C1FE5041333333830B24554185EB51F8BEFE5041A4703D5A102455418FC2F5D8BDFE50419A9999C90F2455413D0AD703BDFE5041AE47E14A112455419A9999A9BBFE50415C8FC2F513245541D88FD970BAFE5041A6238207162455419F2759B2BAFE5041BFB9053A16245541C0F16AB5BAFE5041E460733B1624554152B81EB5BAFE5041C3F5283C162455417B14AE17C0FE5041CDCCCCBC182455414F19C176C5FE50413A0755A51A245541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>874092 - 874023
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000018000000713D0A0732FF5041B81E858BB7245541333333A330FF5041713D0AF7BD245541F6285CEF21FF5041E17A14EEBA245541666666761BFF5041C3F5286CB9245541000000001BFF50413D0AD763BE2455418FC2F59824FF504148E17A44C124554114AE47B12FFF5041713D0AB7C224554148E17AB44BFF50413D0AD713C7245541000000104DFF5041C3F528FCC324554152B81E754FFF50419A999959C1245541F6285C4F55FF5041F6285CEFB9245541713D0AC757FF5041AE47E15AB624554185EB51F85BFF5041EC51B81EB0245541A4703D4A5BFF5041E17A148EAF245541B81E858B56FF504133333303AD2455419A99995952FF50418FC2F5D8A92455410AD7A39051FF504114AE4751A9245541B81E852B50FF50419A9999C9AC245541E17A148E4BFF504148E17AD4B1245541E17A147E46FF5041713D0AA7BA2455413D0AD7D33EFF5041F6285C7FB82455411F85EBC13CFF504100000010B8245541E17A143E36FF50411F85EB61B7245541713D0A0732FF5041B81E858BB7245541
+</a>
+
+<b>
+01060000000100000001030000000100000012000000B3D2D66657FF50411798B778AD245541F4AA16AC5BFF5041CC4ECEB1AF245541B30B9A165CFF50412BFF0FE7AF2455418A81F4585FFF5041BBB4E013AA245541A694C21461FF5041878C3B80A5245541E8B23A1C60FF5041697B76E0A4245541D7A3703D5FFF5041EC51B83EA4245541C3F528BC54FF50415C8FC2B59C24554152B81E754DFF5041B81E857B97245541F6285C1F49FF5041CDCCCC5C94245541295C8FA247FF50415C8FC2E5932455417B14AEA73EFF5041295C8FF29C2455410000007042FF5041F6285CAF9F245541295C8FD245FF5041EC51B8FEA124554114AE470151FF5041000000C0A8245541081EDC7554FF504117672B65AB245541A4FD2F8F56FF5041C2452A05AD245541B3D2D66657FF50411798B778AD245541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>889276 - 3176899
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000004D000000CDCCCC7CD96851411F85EBA1CA335441295C8FC2D96851419A999979CD33544148E17AC4DA68514148E17A24CD3354417B14AE97E0685141E17A148ECA33544148E17A84E2685141713D0A07CA33544166666626E46851418FC2F518CA3354419A999939E56851419A9999E9CA33544185EB51F8E56851417B14AED7CB335441A4703D6AE6685141C3F528ECCC335441B81E859BE668514114AE4781CE33544114AE4781E668514100000090D03354419A999929E668514114AE4701D3335441000000B0E5685141A4703D2AD5335441EC51B8CEE46851411F85EB91D7335441666666F6E3685141F6285C2FD9335441C3F528FCE568514114AE4701DB335441AE47E13AEC685141AE47E1CADF33544133333323FA68514185EB5198EB335441713D0AA7F0685141E17A146EF233544114AE4771E76851411F85EB11F9335441B81E853BE868514152B81E55F93354418FC2F5A8EB6851418FC2F5A8FA33544166666636EF6851413D0AD7B3FB335441CDCCCC9CF268514133333373FC33544152B81E65F66851417B14AEE7FC335441AE47E13AFA6851410AD7A320FD33544148E17AB4FD6851418FC2F508FD33544152B81E3505695141E17A14BEFC33544148E17A94096951411F85EB91FC335441000000300D6951418FC2F518FB335441C3F528EC0F69514133333333F8335441C3F528DC12695141C3F528FCF3335441333333631E69514185EB51C8EA33544148E17A342269514185EB5168E63354415C8FC25524695141000000C0DF33544152B81E45296951411F85EBD1D8335441A4703DAA2F695141713D0A97D83354419A9999193169514148E17A54D83354415C8FC2F53469514114AE4721D5335441000000E0386951410AD7A360D3335441295C8F223B69514152B81EE5D333544148E17A343E695141A4703DDAD6335441713D0A373F695141E17A148ED6335441295C8F823C695141713D0AB7D3335441AE47E1DA326951419A9999E9CE335441333333B32B695141A4703D5ACB3354413D0AD74326695141666666A6C8335441EC51B89E1F695141666666C6C9335441295C8FD21A695141C3F528BCCA3354416666666614695141B81E859BC9335441A4703D1A106951415C8FC255C83354411F85EB610D69514152B81EE5C63354411F85EB610969514100000060C733544152B81E950469514133333393C63354419A9999A9FE685141F6285CEFC53354413D0AD7B3F96851419A9999F9C43354419A9999A9F6685141A4703D6AC2335441713D0AE7F46851417B14AEA7C033544133333343F0685141CDCCCC2CC03354417B14AE57EA685141E17A140EBB33544185EB51C8E768514114AE4741B63354415C8FC295E668514185EB51F8B3335441D7A3703DE36851419A9999A9B133544166666636E16851415C8FC2E5B1335441CDCCCC9CDF685141B81E858BB3335441666666C6DD685141B81E859BB633544152B81E05DD685141EC51B8AEB833544185EB5138DC685141A4703D6ABB335441713D0A77DB68514152B81E95BD335441D7A3700DDA685141000000C0BF33544100000040D96851418FC2F5C8C03354419A999949DA685141EC51B8DEC1335441295C8F22DB68514152B81ED5C03354419A999959DD6851410AD7A390C3335441713D0A77DB6851419A999919C733544152B81EF5D968514148E17A44C9335441CDCCCC7CD96851411F85EBA1CA335441
+</a>
+
+<b>
+01060000000100000001030000000200000032000000F39297E430695141556AAE08D8335441A30ADC4E306951419763B16ED8335441DB7AB1272F695141CB3F158ED8335441166334082F69514189588697D8335441FE4E4FE42D695141BCA95DA7D83354414653D90229695141784BBD21D93354419D5E5FDC25695141032FC98FDD335441F8FDFA0B24695141ABF8329BE03354416E5FEFE621695141AB6AE7C8E63354417A2A8AB62069514188BF091EE833544179A56FC81E69514125B04C54EA33544132AD1A97176951418876DA25F0335441001C8702176951419F9F339DF03354414045136E12695141B7BCD88FF43354417E6377AB1069514110C43A1DF7335441F4EA8B4210695141A5FF5CB5F7335441B8CB68F40F695141BC32AB0FF8335441D83D97690E695141B3E4F8D7F9335441815CA5F00D6951411D29BA42FA3354413179F9F50C6951416B0FFD1FFB335441474566A70C695141DD94E843FB335441BDF80D850C6951416B6EBC5EFB33544126EC810D0B695141ABA749FFFB3354419245E8D3096951418FD6A58EFC335441F6285CBF0D695141AE47E15AFC335441F6285C9F13695141713D0A17FC3354416666662616695141CDCCCCBCFB335441EC51B84E1A69514166666696FB33544185EB515820695141B81E853BF8335441A4703DDA21695141666666C6F6335441713D0A8723695141A4703DAAF43354410000009025695141295C8FE2F1335441D7A370BD28695141F6285C3FEC33544114AE47612B6951418FC2F598E6335441295C8F022D6951417B14AE97E3335441A4703DAA2F695141EC51B8AEE03354418FC2F5F8336951419A999939DD335441EC51B87E37695141AE47E10ADB335441000000E03C69514185EB51F8D8335441E17A145E3E69514114AE47C1D7335441C610B4333F6951413BEECD92D6335441D9296B303E695141E7D253D6D6335441579093813B695141B3097026D43354413EB3E84539695141625E1F48D3335441666A78FA38695141E30F7468D3335441000000E0386951410AD7A360D33354411CBA74D9356951419AFE08BFD43354413B08FBAC356951418437DAD5D43354414DDBF72C346951411ABF23CCD5335441F39297E430695141556AAE08D8335441050000003D0AD7F31D695141D7A3702DF533544185EB51B81E695141A4703DAAF4335441333333331F695141F6285C7FF5335441EC51B86E1E6951411F85EB01F63354413D0AD7F31D695141D7A3702DF5335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>889276 - 3396048
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000004D000000CDCCCC7CD96851411F85EBA1CA335441295C8FC2D96851419A999979CD33544148E17AC4DA68514148E17A24CD3354417B14AE97E0685141E17A148ECA33544148E17A84E2685141713D0A07CA33544166666626E46851418FC2F518CA3354419A999939E56851419A9999E9CA33544185EB51F8E56851417B14AED7CB335441A4703D6AE6685141C3F528ECCC335441B81E859BE668514114AE4781CE33544114AE4781E668514100000090D03354419A999929E668514114AE4701D3335441000000B0E5685141A4703D2AD5335441EC51B8CEE46851411F85EB91D7335441666666F6E3685141F6285C2FD9335441C3F528FCE568514114AE4701DB335441AE47E13AEC685141AE47E1CADF33544133333323FA68514185EB5198EB335441713D0AA7F0685141E17A146EF233544114AE4771E76851411F85EB11F9335441B81E853BE868514152B81E55F93354418FC2F5A8EB6851418FC2F5A8FA33544166666636EF6851413D0AD7B3FB335441CDCCCC9CF268514133333373FC33544152B81E65F66851417B14AEE7FC335441AE47E13AFA6851410AD7A320FD33544148E17AB4FD6851418FC2F508FD33544152B81E3505695141E17A14BEFC33544148E17A94096951411F85EB91FC335441000000300D6951418FC2F518FB335441C3F528EC0F69514133333333F8335441C3F528DC12695141C3F528FCF3335441333333631E69514185EB51C8EA33544148E17A342269514185EB5168E63354415C8FC25524695141000000C0DF33544152B81E45296951411F85EBD1D8335441A4703DAA2F695141713D0A97D83354419A9999193169514148E17A54D83354415C8FC2F53469514114AE4721D5335441000000E0386951410AD7A360D3335441295C8F223B69514152B81EE5D333544148E17A343E695141A4703DDAD6335441713D0A373F695141E17A148ED6335441295C8F823C695141713D0AB7D3335441AE47E1DA326951419A9999E9CE335441333333B32B695141A4703D5ACB3354413D0AD74326695141666666A6C8335441EC51B89E1F695141666666C6C9335441295C8FD21A695141C3F528BCCA3354416666666614695141B81E859BC9335441A4703D1A106951415C8FC255C83354411F85EB610D69514152B81EE5C63354411F85EB610969514100000060C733544152B81E950469514133333393C63354419A9999A9FE685141F6285CEFC53354413D0AD7B3F96851419A9999F9C43354419A9999A9F6685141A4703D6AC2335441713D0AE7F46851417B14AEA7C033544133333343F0685141CDCCCC2CC03354417B14AE57EA685141E17A140EBB33544185EB51C8E768514114AE4741B63354415C8FC295E668514185EB51F8B3335441D7A3703DE36851419A9999A9B133544166666636E16851415C8FC2E5B1335441CDCCCC9CDF685141B81E858BB3335441666666C6DD685141B81E859BB633544152B81E05DD685141EC51B8AEB833544185EB5138DC685141A4703D6ABB335441713D0A77DB68514152B81E95BD335441D7A3700DDA685141000000C0BF33544100000040D96851418FC2F5C8C03354419A999949DA685141EC51B8DEC1335441295C8F22DB68514152B81ED5C03354419A999959DD6851410AD7A390C3335441713D0A77DB6851419A999919C733544152B81EF5D968514148E17A44C9335441CDCCCC7CD96851411F85EBA1CA335441
+</a>
+
+<b>
+01060000000100000001030000000200000032000000F39297E430695141556AAE08D8335441A30ADC4E306951419763B16ED8335441DB7AB1272F695141CB3F158ED8335441166334082F69514189588697D8335441FE4E4FE42D695141BCA95DA7D83354414653D90229695141784BBD21D93354419D5E5FDC25695141032FC98FDD335441F8FDFA0B24695141ABF8329BE03354416E5FEFE621695141AB6AE7C8E63354417A2A8AB62069514188BF091EE833544179A56FC81E69514125B04C54EA33544132AD1A97176951418876DA25F0335441001C8702176951419F9F339DF03354414045136E12695141B7BCD88FF43354417E6377AB1069514110C43A1DF7335441F4EA8B4210695141A5FF5CB5F7335441B8CB68F40F695141BC32AB0FF8335441D83D97690E695141B3E4F8D7F9335441815CA5F00D6951411D29BA42FA3354413179F9F50C6951416B0FFD1FFB335441474566A70C695141DD94E843FB335441BDF80D850C6951416B6EBC5EFB33544126EC810D0B695141ABA749FFFB3354419245E8D3096951418FD6A58EFC335441F6285CBF0D695141AE47E15AFC335441F6285C9F13695141713D0A17FC3354416666662616695141CDCCCCBCFB335441EC51B84E1A69514166666696FB33544185EB515820695141B81E853BF8335441A4703DDA21695141666666C6F6335441713D0A8723695141A4703DAAF43354410000009025695141295C8FE2F1335441D7A370BD28695141F6285C3FEC33544114AE47612B6951418FC2F598E6335441295C8F022D6951417B14AE97E3335441A4703DAA2F695141EC51B8AEE03354418FC2F5F8336951419A999939DD335441EC51B87E37695141AE47E10ADB335441000000E03C69514185EB51F8D8335441E17A145E3E69514114AE47C1D7335441C610B4333F6951413BEECD92D6335441D9296B303E695141E7D253D6D6335441579093813B695141B3097026D43354413EB3E84539695141625E1F48D3335441666A78FA38695141E30F7468D3335441000000E0386951410AD7A360D33354411CBA74D9356951419AFE08BFD43354413B08FBAC356951418437DAD5D43354414DDBF72C346951411ABF23CCD5335441F39297E430695141556AAE08D8335441050000003D0AD7F31D695141D7A3702DF533544185EB51B81E695141A4703DAAF4335441333333331F695141F6285C7FF5335441EC51B86E1E6951411F85EB01F63354413D0AD7F31D695141D7A3702DF5335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>889277 - 3176899
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000200000020000000F6285CBF0D695141AE47E15AFC335441F6285C9F13695141713D0A17FC3354416666662616695141CDCCCCBCFB335441EC51B84E1A69514166666696FB33544185EB515820695141B81E853BF8335441A4703DDA21695141666666C6F6335441713D0A8723695141A4703DAAF43354410000009025695141295C8FE2F1335441D7A370BD28695141F6285C3FEC33544114AE47612B6951418FC2F598E6335441295C8F022D6951417B14AE97E3335441A4703DAA2F695141EC51B8AEE03354418FC2F5F8336951419A999939DD335441EC51B87E37695141AE47E10ADB335441000000E03C69514185EB51F8D8335441E17A145E3E69514114AE47C1D7335441713D0A373F695141E17A148ED633544148E17A343E695141A4703DDAD6335441295C8F223B69514152B81EE5D3335441000000E0386951410AD7A360D33354415C8FC2F53469514114AE4721D53354419A9999193169514148E17A54D8335441A4703DAA2F695141713D0A97D833544152B81E45296951411F85EBD1D83354415C8FC25524695141000000C0DF33544148E17A342269514185EB5168E6335441333333631E69514185EB51C8EA335441C3F528DC12695141C3F528FCF3335441C3F528EC0F69514133333333F8335441000000300D6951418FC2F518FB33544148E17A94096951411F85EB91FC335441F6285CBF0D695141AE47E15AFC335441050000003D0AD7F31D695141D7A3702DF533544185EB51B81E695141A4703DAAF4335441333333331F695141F6285C7FF5335441EC51B86E1E6951411F85EB01F63354413D0AD7F31D695141D7A3702DF5335441
+</a>
+
+<b>
+01060000000100000001030000000200000032000000F39297E430695141556AAE08D8335441A30ADC4E306951419763B16ED8335441DB7AB1272F695141CB3F158ED8335441166334082F69514189588697D8335441FE4E4FE42D695141BCA95DA7D83354414653D90229695141784BBD21D93354419D5E5FDC25695141032FC98FDD335441F8FDFA0B24695141ABF8329BE03354416E5FEFE621695141AB6AE7C8E63354417A2A8AB62069514188BF091EE833544179A56FC81E69514125B04C54EA33544132AD1A97176951418876DA25F0335441001C8702176951419F9F339DF03354414045136E12695141B7BCD88FF43354417E6377AB1069514110C43A1DF7335441F4EA8B4210695141A5FF5CB5F7335441B8CB68F40F695141BC32AB0FF8335441D83D97690E695141B3E4F8D7F9335441815CA5F00D6951411D29BA42FA3354413179F9F50C6951416B0FFD1FFB335441474566A70C695141DD94E843FB335441BDF80D850C6951416B6EBC5EFB33544126EC810D0B695141ABA749FFFB3354419245E8D3096951418FD6A58EFC335441F6285CBF0D695141AE47E15AFC335441F6285C9F13695141713D0A17FC3354416666662616695141CDCCCCBCFB335441EC51B84E1A69514166666696FB33544185EB515820695141B81E853BF8335441A4703DDA21695141666666C6F6335441713D0A8723695141A4703DAAF43354410000009025695141295C8FE2F1335441D7A370BD28695141F6285C3FEC33544114AE47612B6951418FC2F598E6335441295C8F022D6951417B14AE97E3335441A4703DAA2F695141EC51B8AEE03354418FC2F5F8336951419A999939DD335441EC51B87E37695141AE47E10ADB335441000000E03C69514185EB51F8D8335441E17A145E3E69514114AE47C1D7335441C610B4333F6951413BEECD92D6335441D9296B303E695141E7D253D6D6335441579093813B695141B3097026D43354413EB3E84539695141625E1F48D3335441666A78FA38695141E30F7468D3335441000000E0386951410AD7A360D33354411CBA74D9356951419AFE08BFD43354413B08FBAC356951418437DAD5D43354414DDBF72C346951411ABF23CCD5335441F39297E430695141556AAE08D8335441050000003D0AD7F31D695141D7A3702DF533544185EB51B81E695141A4703DAAF4335441333333331F695141F6285C7FF5335441EC51B86E1E6951411F85EB01F63354413D0AD7F31D695141D7A3702DF5335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>889277 - 3396048
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000200000020000000F6285CBF0D695141AE47E15AFC335441F6285C9F13695141713D0A17FC3354416666662616695141CDCCCCBCFB335441EC51B84E1A69514166666696FB33544185EB515820695141B81E853BF8335441A4703DDA21695141666666C6F6335441713D0A8723695141A4703DAAF43354410000009025695141295C8FE2F1335441D7A370BD28695141F6285C3FEC33544114AE47612B6951418FC2F598E6335441295C8F022D6951417B14AE97E3335441A4703DAA2F695141EC51B8AEE03354418FC2F5F8336951419A999939DD335441EC51B87E37695141AE47E10ADB335441000000E03C69514185EB51F8D8335441E17A145E3E69514114AE47C1D7335441713D0A373F695141E17A148ED633544148E17A343E695141A4703DDAD6335441295C8F223B69514152B81EE5D3335441000000E0386951410AD7A360D33354415C8FC2F53469514114AE4721D53354419A9999193169514148E17A54D8335441A4703DAA2F695141713D0A97D833544152B81E45296951411F85EBD1D83354415C8FC25524695141000000C0DF33544148E17A342269514185EB5168E6335441333333631E69514185EB51C8EA335441C3F528DC12695141C3F528FCF3335441C3F528EC0F69514133333333F8335441000000300D6951418FC2F518FB33544148E17A94096951411F85EB91FC335441F6285CBF0D695141AE47E15AFC335441050000003D0AD7F31D695141D7A3702DF533544185EB51B81E695141A4703DAAF4335441333333331F695141F6285C7FF5335441EC51B86E1E6951411F85EB01F63354413D0AD7F31D695141D7A3702DF5335441
+</a>
+
+<b>
+01060000000100000001030000000200000032000000F39297E430695141556AAE08D8335441A30ADC4E306951419763B16ED8335441DB7AB1272F695141CB3F158ED8335441166334082F69514189588697D8335441FE4E4FE42D695141BCA95DA7D83354414653D90229695141784BBD21D93354419D5E5FDC25695141032FC98FDD335441F8FDFA0B24695141ABF8329BE03354416E5FEFE621695141AB6AE7C8E63354417A2A8AB62069514188BF091EE833544179A56FC81E69514125B04C54EA33544132AD1A97176951418876DA25F0335441001C8702176951419F9F339DF03354414045136E12695141B7BCD88FF43354417E6377AB1069514110C43A1DF7335441F4EA8B4210695141A5FF5CB5F7335441B8CB68F40F695141BC32AB0FF8335441D83D97690E695141B3E4F8D7F9335441815CA5F00D6951411D29BA42FA3354413179F9F50C6951416B0FFD1FFB335441474566A70C695141DD94E843FB335441BDF80D850C6951416B6EBC5EFB33544126EC810D0B695141ABA749FFFB3354419245E8D3096951418FD6A58EFC335441F6285CBF0D695141AE47E15AFC335441F6285C9F13695141713D0A17FC3354416666662616695141CDCCCCBCFB335441EC51B84E1A69514166666696FB33544185EB515820695141B81E853BF8335441A4703DDA21695141666666C6F6335441713D0A8723695141A4703DAAF43354410000009025695141295C8FE2F1335441D7A370BD28695141F6285C3FEC33544114AE47612B6951418FC2F598E6335441295C8F022D6951417B14AE97E3335441A4703DAA2F695141EC51B8AEE03354418FC2F5F8336951419A999939DD335441EC51B87E37695141AE47E10ADB335441000000E03C69514185EB51F8D8335441E17A145E3E69514114AE47C1D7335441C610B4333F6951413BEECD92D6335441D9296B303E695141E7D253D6D6335441579093813B695141B3097026D43354413EB3E84539695141625E1F48D3335441666A78FA38695141E30F7468D3335441000000E0386951410AD7A360D33354411CBA74D9356951419AFE08BFD43354413B08FBAC356951418437DAD5D43354414DDBF72C346951411ABF23CCD5335441F39297E430695141556AAE08D8335441050000003D0AD7F31D695141D7A3702DF533544185EB51B81E695141A4703DAAF4335441333333331F695141F6285C7FF5335441EC51B86E1E6951411F85EB01F63354413D0AD7F31D695141D7A3702DF5335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>577949 - 2960503
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001700000085EB51E8521B5141EC51B80EFB6B5441604F96AA511B514199C8A639F66B5441C3F5281C371B514152B81E45F86B544114AE47B1161B5141295C8FC2FA6B54411F85EB81F61A5141B81E853BFD6B544114AE4781D51A5141EC51B8EEFD6B54415C8FC275B51A5141CDCCCC9CFE6B544114AE47F1B41A5141F6285C9FFE6B5441EC51B8FEB41A514166666616FF6B54418FC2F588B51A5141C3F528DC036C5441D7A370CDB61A51413D0AD7130F6C54418FC2F5D8B61A514114AE47710F6C5441B81E85BBB71A5141333333730F6C54419A9999D9B81A51415C8FC2750F6C544185EB51C8D11A5141B81E85AB0F6C54415C8FC2E5E51A51411F85EBF10E6C5441E17A14FEF31A514185EB51B80E6C54415C8FC2E5FE1A5141CDCCCC4C0D6C5441B81E85AB0C1B514148E17AB40A6C54417B14AE87161B5141713D0A170A6C5441EC51B88E381B51415C8FC205076C544114AE47B1551B5141E17A14EE036C544185EB51E8521B5141EC51B80EFB6B5441
+</a>
+
+<b>
+0106000000010000000103000000010000001100000000D87558511B51417F185EEFF56B544170A5E8024D1B5141776DFDECE66B54413E87B243311B5141F24566FEE76B5441052635C6201B51411EF9EEC3E86B54411224FB7B131B514197AB2122E96B544178B76914091B51413C3567B0E96B544116405F37FD1A514192BC8FB6EA6B54414AD3E707F21A5141C81CFA0DEA6B5441EBF4CF62E81A51417E8D0934E96B5441CC388813E21A5141EEAE0BA6E86B5441DCDA3FE1E11A5141961096ABFD6B54413B1DE473F21A514130818951FD6B5441793626F0111B5141BCD20F20FB6B54412BB0D871351B51415084DD65F86B5441B30EFB513A1B5141F465F0F8F76B544169477FBC461B5141CFFF54ECF66B544100D87558511B51417F185EEFF56B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>129256 - 199954
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000070000008DE2647844BB504146BA637F05465541CDCCCCDC43BB5041666666A60346554152B81EF539BB5041333333B304465541FB0EF2B12FBB50416A1A7AC705465541E900FCD12FBB504140982F1008465541E17F26053ABB504143A9C9C7064655418DE2647844BB504146BA637F05465541
+</a>
+
+<b>
+010600000001000000010300000001000000090000004E465A1C3BBB5041AB3BE7930446554114111FF539BB5041CA2933B304465541F56AD50C3ABB5041391AA4C606465541C70E466A44BB5041DAB33D600546554195D026D843BB5041FE8BE4A603465541E2FC621D3EBB50418B55614204465541C47C84613CBB504162F86E7104465541EE69601F3BBB50413A2B9593044655414E465A1C3BBB5041AB3BE79304465541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>129256 - 367288
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000070000008DE2647844BB504146BA637F05465541CDCCCCDC43BB5041666666A60346554152B81EF539BB5041333333B304465541FB0EF2B12FBB50416A1A7AC705465541E900FCD12FBB504140982F1008465541E17F26053ABB504143A9C9C7064655418DE2647844BB504146BA637F05465541
+</a>
+
+<b>
+010600000001000000010300000001000000090000004E465A1C3BBB5041AB3BE7930446554114111FF539BB5041CA2933B304465541F56AD50C3ABB5041391AA4C606465541C70E466A44BB5041DAB33D600546554195D026D843BB5041FE8BE4A603465541E2FC621D3EBB50418B55614204465541C47C84613CBB504162F86E7104465541EE69601F3BBB50413A2B9593044655414E465A1C3BBB5041AB3BE79304465541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>963102 - 36242
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000022000000A6670D27E2D150411F0AF018BE3655413EDA7C44E2D150416D451375BF365541244C1B5EE3D15041DC302563C436554107A29439E4D1504172B381F2C936554132E82782E4D150419E04DE7DCE365541CED15F11E4D15041BF8CB346D6365541D0D15F11E4D15041F8020268E0365541250AAF4DE4D15041704EBC92E836554177EBEB3EE5D15041649B601BEC36554138168035E7D1504174F90C6DF036554132114954E9D15041A316E61DF4365541BA1496D7EBD15041EF9BD9E2F73655415D80FD6EEED15041AE6F5B8EFA3655413A3F384FF1D15041718662B3FC3655416FC720DFF4D15041257B8803FF365541EE85AD17F8D15041F4EF177200375541CD5D480500D2504131D2DA28023755413DF296E109D25041E9FB14CD033755412D9381900CD25041868365CCFB36554185EB53CE0FD2504150D96A1DF8365541FB2CE30D13D250418DBEE079F43655417AD24A3215D2504139E28863F2365541CEAEA24817D25041C8A8B04AEC3655412CD26D6D14D25041A527AB99E9365541AAE4FBEB14D25041564B5383E736554151E5B57516D2504130EF69CFE5365541738BD7231AD25041E2EDF5BBE236554110B244F91ED25041BC910C08E1365541887D5F6924D25041664660FADB36554182BD0ADF21D2504120DEB55CD6365541A03072291CD25041C179C8F7D3365541584CDA8A03D25041FC6FFE28CA365541BD252F86ECD1504153C044A7C1365541A6670D27E2D150411F0AF018BE365541
+</a>
+
+<b>
+01060000000100000001030000000100000022000000E17A14BEF6D150417B14AE2701375541D9ABBEF5F7D150416A95EC130237554188C1A2EB08D25041C6796EB503375541EA85AD17F8D15041F6EF1772003755416BC720DFF4D15041247B8803FF365541373F384FF1D15041728662B3FC3655415E80FD6EEED15041B36F5B8EFA365541BF1496D7EBD15041F39BD9E2F736554136114954E9D15041A016E61DF43655413B168035E7D1504178F90C6DF036554176EBEB3EE5D15041619B601BEC365541240AAF4DE4D15041704EBC92E8365541CDD15F11E4D15041FA020268E0365541CDD15F11E4D15041C08CB346D636554131E82782E4D15041A304DE7DCE36554103A29439E4D1504174B381F2C9365541214C1B5EE3D15041DC302563C43655413BDA7C44E2D150416D451375BF3655413EF36B28E2D1504109022229BE3655419142DBA5E1D15041CA2E24FDBD3655416E8996BFE2D15041BAC42A1FC436554114AE47D1E3D1504148E17AA4CD3655410AD7A360E3D150413D0AD7E3D136554152B81E15E3D15041C3F528FCD73655414AB3A228E3D15041BA1DC0FEDD365541E807751EE3D15041186569EEE136554114AE4731E3D1504114AE4761E63655418FC2F5C8E3D15041713D0AF7EA365541C3F5287CE5D15041E17A145EEF365541666666C6E7D150411F85EBA1F3365541295C8FF2EAD15041E17A14EEF7365541666666B6EDD1504166666606FB36554100000080F0D15041713D0A37FD365541E17A14BEF6D150417B14AE2701375541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>963102 - 61623
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000022000000A6670D27E2D150411F0AF018BE3655413EDA7C44E2D150416D451375BF365541244C1B5EE3D15041DC302563C436554107A29439E4D1504172B381F2C936554132E82782E4D150419E04DE7DCE365541CED15F11E4D15041BF8CB346D6365541D0D15F11E4D15041F8020268E0365541250AAF4DE4D15041704EBC92E836554177EBEB3EE5D15041649B601BEC36554138168035E7D1504174F90C6DF036554132114954E9D15041A316E61DF4365541BA1496D7EBD15041EF9BD9E2F73655415D80FD6EEED15041AE6F5B8EFA3655413A3F384FF1D15041718662B3FC3655416FC720DFF4D15041257B8803FF365541EE85AD17F8D15041F4EF177200375541CD5D480500D2504131D2DA28023755413DF296E109D25041E9FB14CD033755412D9381900CD25041868365CCFB36554185EB53CE0FD2504150D96A1DF8365541FB2CE30D13D250418DBEE079F43655417AD24A3215D2504139E28863F2365541CEAEA24817D25041C8A8B04AEC3655412CD26D6D14D25041A527AB99E9365541AAE4FBEB14D25041564B5383E736554151E5B57516D2504130EF69CFE5365541738BD7231AD25041E2EDF5BBE236554110B244F91ED25041BC910C08E1365541887D5F6924D25041664660FADB36554182BD0ADF21D2504120DEB55CD6365541A03072291CD25041C179C8F7D3365541584CDA8A03D25041FC6FFE28CA365541BD252F86ECD1504153C044A7C1365541A6670D27E2D150411F0AF018BE365541
+</a>
+
+<b>
+01060000000100000001030000000100000022000000E17A14BEF6D150417B14AE2701375541D9ABBEF5F7D150416A95EC130237554188C1A2EB08D25041C6796EB503375541EA85AD17F8D15041F6EF1772003755416BC720DFF4D15041247B8803FF365541373F384FF1D15041728662B3FC3655415E80FD6EEED15041B36F5B8EFA365541BF1496D7EBD15041F39BD9E2F736554136114954E9D15041A016E61DF43655413B168035E7D1504178F90C6DF036554176EBEB3EE5D15041619B601BEC365541240AAF4DE4D15041704EBC92E8365541CDD15F11E4D15041FA020268E0365541CDD15F11E4D15041C08CB346D636554131E82782E4D15041A304DE7DCE36554103A29439E4D1504174B381F2C9365541214C1B5EE3D15041DC302563C43655413BDA7C44E2D150416D451375BF3655413EF36B28E2D1504109022229BE3655419142DBA5E1D15041CA2E24FDBD3655416E8996BFE2D15041BAC42A1FC436554114AE47D1E3D1504148E17AA4CD3655410AD7A360E3D150413D0AD7E3D136554152B81E15E3D15041C3F528FCD73655414AB3A228E3D15041BA1DC0FEDD365541E807751EE3D15041186569EEE136554114AE4731E3D1504114AE4761E63655418FC2F5C8E3D15041713D0AF7EA365541C3F5287CE5D15041E17A145EEF365541666666C6E7D150411F85EBA1F3365541295C8FF2EAD15041E17A14EEF7365541666666B6EDD1504166666606FB36554100000080F0D15041713D0A37FD365541E17A14BEF6D150417B14AE2701375541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>889581 - 57812
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000400000046000000000000D06A6851410000001039335441CDCCCCBC6A685141295C8F323F3354415C8FC2A56A685141AE47E13A40335441AE47E10A6A6851413D0AD7734233544185EB51A8696851415C8FC2E543335441A4703DFA69685141CDCCCC7C45335441713D0A776B6851413D0AD7334A3354411F85EBA16C68514114AE47314C3354410AD7A3B06E685141A4703D4A4D3354419A999929716851410AD7A3904D335441B81E855B73685141666666364F3354417B14AE1778685141295C8FF25333544114AE47517B6851415C8FC2E55633544185EB51B87D6851415C8FC295573354413D0AD7437F68514152B81E75573354415C8FC275826851416666660656335441E17A14CE87685141F6285C5F543354411F85EBE18B6851415C8FC2C553335441E17A14EE8D685141F6285CAF53335441713D0AC78F6851411F85EB6153335441C3F5284C9368514148E17A0452335441F6285C9F956851418FC2F558513354417B14AE579B6851419A9999094E335441E17A147E9D6851417B14AE774C335441B81E855BA16851415C8FC21549335441A4703D0AA5685141A4703DFA46335441B81E854BA9685141E17A14BE45335441295C8F32AE685141EC51B82E45335441E17A144EAF6851417B14AE674433544133333313B4685141AE47E1BA41335441CDCCCC1CB7685141CDCCCC7C4133544185EB5118B868514148E17AA441335441EC51B89EBC685141CDCCCC4C3C335441000000A0C0685141EC51B8AE343354419A9999E9C268514185EB51082A33544100000040C36851417B14AE77283354415C8FC245C3685141D7A3706D2333544166666646C3685141A4703DBA22335441CDCCCC0CC2685141D7A3708D1F335441333333A3C0685141000000801F335441D7A370CDBE685141EC51B8EE1C335441B81E855BBC685141AE47E1DA1A335441EC51B8CEBB68514185EB5198183354415C8FC255B668514185EB51A81833544166666646AD685141AE47E17A19335441295C8FE2A8685141E17A14EE18335441D7A3705DA26851413D0AD7C3173354411F85EB419C685141C3F5286C173354413D0AD72398685141E17A14EE1833544114AE4741966851415C8FC2951A335441E17A149E8F685141B81E858B17335441D7A370ED86685141295C8FB210335441F6285C5F866851417B14AE6710335441F6285C2F80685141D7A370DD0B335441CDCCCC7C7A6851410AD7A3700B335441B81E857B75685141CDCCCCCC0C335441A4703D5A726851411F85EB610F335441C3F528AC6C6851418FC2F5880F335441CDCCCC6C6B685141B81E855B113354418FC2F5B868685141AE47E19A17335441713D0AB765685141713D0A871F335441666666466468514114AE475123335441A4703DBA64685141B81E858B243354418FC2F568676851411F85EBB1243354419A9999096A6851418FC2F54826335441666666A66A685141CDCCCC5C283354410000007069685141333333632B335441A4703D4A6A68514185EB51C82D335441295C8FE26A685141A4703D4A36335441000000D06A6851410000001039335441090000009A9999E98F685141000000702A335441B81E85AB9068514114AE47E12A3354413D0AD7F39068514185EB51782A335441E17A14CE9168514114AE47012B3354415C8FC28591685141295C8F822B33544152B81E3593685141000000002D335441EC51B8FE91685141AE47E19A2E335441666666B68E68514148E17A342C3354419A9999E98F685141000000702A335441050000003D0AD70394685141D7A3705D29335441F6285C4F956851410000004027335441B81E85EB966851411F85EB01283354410AD7A3B0956851417B14AE472A3354413D0AD70394685141D7A3705D2933544105000000EC51B8DE886851418FC2F5B82733544185EB515889685141CDCCCC0C26335441C3F528DC8A685141E17A149E26335441295C8F628A685141A4703D2A28335441EC51B8DE886851418FC2F5B827335441
+</a>
+
+<b>
+01060000000100000001030000000400000047000000C8D76D9E7A685141230626730B335441CDCCCC7C7A6851410AD7A3700B335441B81E857B75685141CDCCCCCC0C335441A4703D5A726851411F85EB610F335441C3F528AC6C6851418FC2F5880F335441CDCCCC6C6B685141B81E855B113354418FC2F5B868685141AE47E19A17335441713D0AB765685141713D0A871F335441666666466468514114AE475123335441A4703DBA64685141B81E858B243354418FC2F568676851411F85EBB1243354419A9999096A6851418FC2F54826335441666666A66A685141CDCCCC5C283354410000007069685141333333632B335441A4703D4A6A68514185EB51C82D335441295C8FE26A685141A4703D4A36335441000000D06A6851410000001039335441CDCCCCBC6A685141295C8F323F3354415C8FC2A56A685141AE47E13A40335441AE47E10A6A6851413D0AD7734233544185EB51A8696851415C8FC2E543335441A4703DFA69685141CDCCCC7C45335441713D0A776B6851413D0AD7334A3354411F85EBA16C68514114AE47314C3354410AD7A3B06E685141A4703D4A4D3354419A999929716851410AD7A3904D335441B81E855B73685141666666364F3354417B14AE1778685141295C8FF25333544114AE47517B6851415C8FC2E55633544185EB51B87D6851415C8FC295573354413D0AD7437F68514152B81E75573354415C8FC275826851416666660656335441E17A14CE87685141F6285C5F543354411F85EBE18B6851415C8FC2C553335441E17A14EE8D685141F6285CAF53335441713D0AC78F6851411F85EB6153335441C3F5284C9368514148E17A0452335441F6285C9F956851418FC2F558513354417B14AE579B6851419A9999094E335441E17A147E9D6851417B14AE774C335441B81E855BA16851415C8FC21549335441A4703D0AA5685141A4703DFA46335441B81E854BA9685141E17A14BE45335441295C8F32AE685141EC51B82E45335441E17A144EAF6851417B14AE674433544133333313B4685141AE47E1BA41335441CDCCCC1CB7685141CDCCCC7C4133544185EB5118B868514148E17AA441335441EC51B89EBC685141CDCCCC4C3C335441000000A0C0685141EC51B8AE343354419A9999E9C268514185EB51082A33544100000040C36851417B14AE77283354415C8FC245C3685141D7A3706D2333544166666646C3685141A4703DBA22335441CDCCCC0CC2685141D7A3708D1F335441333333A3C0685141000000801F335441D7A370CDBE685141EC51B8EE1C335441B81E855BBC685141AE47E1DA1A335441EC51B8CEBB68514185EB5198183354415C8FC255B668514185EB51A81833544166666646AD685141AE47E17A19335441295C8FE2A8685141E17A14EE18335441D7A3705DA26851413D0AD7C3173354411F85EB419C685141C3F5286C173354413D0AD72398685141E17A14EE1833544114AE4741966851415C8FC2951A335441E17A149E8F685141B81E858B17335441D7A370ED86685141295C8FB210335441F6285C5F866851417B14AE671033544150F5AD6583685141417BCE380E335441C8D76D9E7A685141230626730B335441090000009A9999E98F685141000000702A335441B81E85AB9068514114AE47E12A3354413D0AD7F39068514185EB51782A335441E17A14CE9168514114AE47012B3354415C8FC28591685141295C8F822B33544152B81E3593685141000000002D335441EC51B8FE91685141AE47E19A2E335441666666B68E68514148E17A342C3354419A9999E98F685141000000702A335441050000003D0AD70394685141D7A3705D29335441F6285C4F956851410000004027335441B81E85EB966851411F85EB01283354410AD7A3B0956851417B14AE472A3354413D0AD70394685141D7A3705D2933544105000000EC51B8DE886851418FC2F5B82733544185EB515889685141CDCCCC0C26335441C3F528DC8A685141E17A149E26335441295C8F628A685141A4703D2A28335441EC51B8DE886851418FC2F5B827335441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>874797 - 2985137
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002A000000EC51B86EABE350418FC2F5589CEF5441A4703DCAADE3504152B81E45A0EF544185EB5188AFE350410AD7A370A3EF54419A999939C0E35041A4703DCA9AEF544114AE4781CEE35041CDCCCC1C93EF5441666666F6CDE3504185EB51889CEF5441AE47E15ACDE3504114AE4701A7EF54411F85EB21D1E35041F6285C4FA5EF54418FC2F568D4E350417B14AE57A4EF5441B81E85ABD8E3504152B81E15A4EF5441CDCCCCDCD7E3504133333313A3EF54418FC2F588D5E35041666666A69EEF54413D0AD7B3D3E35041295C8F7299EF5441E17A142ED3E35041E17A14FE94EF5441CDCCCC0CD4E35041666666F681EF544133333353D4E35041A4703DEA7DEF5441F6285CCFD4E35041713D0AC776EF54418FC2F518D5E35041D7A3708D72EF5441F6285C3FD6E35041A4703D9A61EF544166666696D6E3504148E17A945CEF54419A999909D7E35041CDCCCCAC56EF544133333363D4E350417B14AEA757EF5441CDCCCCACD1E35041333333C358EF544133333393D1E350411F85EB415EEF5441EC51B85EC0E3504185EB515864EF544100000020BAE35041E17A148E66EF544114AE4751A4E35041295C8F926DEF544152B81E85A3E35041A4703D5A72EF54419A9999D9A2E35041C3F5285C76EF54413D0AD753B6E350415C8FC2D570EF544152B81EB5C1E3504148E17A746DEF544185EB51F8D0E350419A9999A968EF5441B81E85BBD0E35041EC51B8BE6CEF544152B81E25D0E3504152B81ED576EF544166666696CAE35041295C8FB277EF54417B14AE37BAE35041333333C379EF5441F6285C6FBBE35041F6285C0F85EF544148E17A14B7E35041EC51B83E86EF5441E17A147EA2E350419A99993990EF544185EB5198A3E35041EC51B85E91EF5441A4703D1AABE350411F85EBE19BEF5441EC51B86EABE350418FC2F5589CEF5441
+</a>
+
+<b>
+0106000000010000000103000000010000003F00000017A21B23D0E3504178882BA8A5EF54415E38D0D1D1E35041BDA90BE2A4EF5441D3F50F5ED3E3504173463858A4EF5441D83703AED4E35041FBBBD9F0A3EF5441DCACD722D7E35041C0762ABDA3EF5441450C9A70D5E3504142F39E929FEF5441384600BED3E350416917BB709BEF5441485683AFD2E350418E84604099EF54413FAB03A9D3E35041F93EDFAB88EF5441DC02A4FAD4E35041ACE05A4874EF54410E1EC5D8D5E35041E31D138167EF5441AEBF4DFFD5E35041B5D18A6765EF5441F6285C3FD6E35041A4703D9A61EF544166666696D6E3504148E17A945CEF5441FCDDFDCBD6E35041D4BF36405AEF5441F4AAB1EDD6E350412BD3136A58EF54411BBAEAE2D6E350418C68F2FA56EF5441A639BF6FD1E350414795A0B758EF54412D97038BCBE35041AC5651515AEF54416793915DCAE35041972C51C456EF5441EE494E46BCE3504157E62B1B5AEF54414924DD1CB2E350413DF37F915CEF544185D67228A6E350413B245BC860EF5441CC5E7821A3E35041AA230C0962EF5441FC9E7645A4E350415092D5AD66EF54414FC20352A4E350417806B1046BEF5441F86D6599A4E350419352B25C6DEF5441845CBBE3A3E35041F771292370EF54412767DDD2A3E35041D8406B4472EF5441FC8D5E56A3E350414625DF7173EF5441987FF50DA3E350413BCD4E4D76EF5441841EE46EA1E35041F0A9A5767AEF5441E039526EA0E3504152F423707CEF544104DC8F709FE35041877C4CE77DEF54413FD5BE2AA0E350416F86CE497EEF54417798A441A5E350416045AC657DEF5441472751C4ACE35041F29704157CEF544110FDCC82B5E35041B9AF098D7AEF54416F565BDDB9E350416346D5C979EF5441F9C7C33CBAE350412C8C1FB979EF54414BB063CBBAE350411B89D51D7FEF5441F6285C6FBBE35041F6285C0F85EF544148E17A14B7E35041EC51B83E86EF5441D0913C77B1E35041093870F788EF54417BA3CC45ADE35041B747CCFF8AEF54411B8E4DE2ABE35041B0E320AC8BEF544190D2F5ADA2E35041A272536B90EF5441B9C98200A4E35041DB709DF091EF5441F20FE185A7E350415C9DFA6996EF5441D7486D4EA9E350416521E10999EF544102A3D950AAE350410706AC739AEF54410418AEC5ACE350413BE4FE159EEF544168EAAA20AFE35041B9252542A2EF544178FE26B1AFE350412E177B5BA3EF5441F6B3492CBEE35041DB7D74DA9BEF5441B31C93EBC5E350413FDA5FBA97EF54413DFBAE11CCE35041BD08126C94EF544114AE4781CEE35041CDCCCC1C93EF54414F803B51CEE35041D7C8195F96EF5441EB42DD9ECDE350419517E470A2EF5441707B5D69CDE35041679DE876A6EF5441D9E7977ACDE35041DE2747DEA6EF544117A21B23D0E3504178882BA8A5EF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>875670 - 401277
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000008000000010300000001000000260000000000000051F85041AE47E1AA1CDD5441C3F528DC50F85041E17A14EE1BDD5441295C8F624CF8504148E17A141CDD5441D7A370DD45F850418FC2F5E820DD5441F6285CBF3FF8504148E17AB424DD5441C3F5286C39F85041D7A3708D27DD5441713D0A772CF850411F85EBD12CDD54419A9999192DF850415C8FC2E52EDD5441EC51B83E2EF85041E17A149E2EDD54415C8FC27530F850411F85EB312EDD5441C3F5285C34F85041333333832EDD5441F6285CFF36F85041A4703D5A2DDD54416666668637F85041333333232BDD5441333333F339F85041F6285CDF29DD5441295C8F323DF8504152B81EA52BDD5441E17A147E3EF85041EC51B8BE2BDD5441D7A3707D3FF85041C3F5281C2CDD544148E17AF43FF85041713D0AD72CDD54419A99994940F85041666666D62DDD544114AE475141F85041EC51B8EE2EDD544185EB517845F850418FC2F5B831DD544185EB516847F85041CDCCCC7C32DD5441B81E85DB48F850416666661632DD544114AE474149F85041EC51B88E31DD544114AE474149F85041EC51B87E30DD5441D7A370FD48F850418FC2F5082EDD5441E17A140E49F850413D0AD7A32CDD5441CDCCCC7C49F85041A4703DEA2ADD5441333333734AF8504148E17AF428DD5441EC51B83E4CF85041C3F5285C27DD5441333333234EF850415C8FC26526DD5441AE47E13A50F850411F85EBA125DD54419A99992950F8504152B81EF524DD5441D7A3705D50F850417B14AE7724DD5441F6285CDF50F850415C8FC21523DD5441A4703D6A51F85041B81E850B21DD54417B14AEE750F85041F6285C0F1FDD54410000000051F85041AE47E1AA1CDD544101030000000100000017000000C3F5286C62F750410AD7A31039DD5441295C8F126AF75041AE47E1CA34DD5441D7A3700D6BF750415C8FC2C535DD5441EC51B8DE6BF7504114AE47E138DD54413D0AD7036DF75041F6285C6F3ADD54418FC2F5186FF750411F85EB3139DD54418FC2F5786EF750410AD7A31036DD54418FC2F5786EF75041F6285C1F32DD54418FC2F5986EF75041E17A144E2EDD54418FC2F5686EF75041D7A3705D2CDD544148E17A846DF75041B81E85AB28DD5441A4703D5A6AF75041295C8F7229DD5441666666D667F75041CDCCCC9C2ADD54417B14AE3764F750419A9999492CDD5441333333735FF750417B14AE772EDD5441295C8F4255F7504148E17A0432DD54415C8FC2454BF750418FC2F54833DD5441C3F528DC45F75041E17A14AE33DD544114AE47414AF75041A4703DBA34DD54411F85EB614FF750410AD7A3A035DD544152B81E6558F75041C3F528EC36DD5441713D0A775DF75041666666B637DD5441C3F5286C62F750410AD7A31039DD54410103000000010000000B000000000000D05EF75041A4703D0A3ADD54413D0AD70359F75041295C8FC238DD5441713D0A274FF750411F85EB0138DD5441666666C64EF7504152B81EC53BDD54413D0AD7734FF75041F6285CAF3FDD5441666666E650F750410AD7A3A043DD544152B81EA553F750417B14AE9744DD5441EC51B89E66F75041333333F343DD54416666666665F75041D7A3705D40DD54413D0AD7E363F75041A4703D3A3DDD5441000000D05EF75041A4703D0A3ADD54410103000000010000001F000000295C8FF2D5F95041C3F5287C0EDD544148E17A14D9F950418FC2F5C80BDD544114AE4721DCF95041295C8FB209DD544152B81E25DDF95041000000E006DD544166666616DDF950413D0AD7D303DD5441295C8FA2DEF950419A9999B902DD5441333333C3DEF95041CDCCCC1C02DD5441C3F528ECDEF95041CDCCCC4C01DD5441F6285C4FDFF9504114AE47B100DD54413D0AD7C3DFF9504152B81E1500DD54411F85EB41E0F95041E17A147EFFDC5441EC51B85EE1F95041AE47E1FAFEDC5441295C8F12DCF95041CDCCCC5CF9DC544148E17A14D3F95041CDCCCC4CFBDC54413D0AD7E3D1F950415C8FC2B5FCDC544133333353D1F9504148E17A54FDDC54410AD7A3D0D1F95041C3F528FCFDDC544152B81EF5D2F9504114AE4701FFDC5441C3F528BCD3F9504152B81ED5FFDC5441A4703D2AD4F95041295C8FB200DD544185EB5158D4F950413333337301DD544148E17AA4D4F9504148E17A6403DD54415C8FC2B5D4F95041CDCCCC2C05DD544185EB51A8D4F950410000004006DD544185EB51A8D4F95041EC51B81E07DD5441B81E85ABD4F950413333332308DD5441295C8FA2D4F950413D0AD7C309DD54410AD7A3D0D4F9504152B81E150BDD54410AD7A310D5F95041713D0A570CDD5441713D0A57D5F95041AE47E18A0DDD5441295C8FF2D5F95041C3F5287C0EDD54410103000000010000003000000085EB5148D0F65041CDCCCC9C03DD5441CDCCCCFCCEF65041E17A143E03DD5441E17A143EB8F6504114AE47E1FDDC54415C8FC2A5B1F65041AE47E15AFBDC5441E17A149EAAF65041D7A3709DFBDC544185EB5108A8F650419A9999A9FBDC5441D7A370EDAAF650415C8FC245FDDC54413D0AD7E3B3F650411F85EB4102DD5441C3F528BCC2F65041E17A14FE0ADD5441B81E856BCBF650417B14AEE70EDD54415C8FC2B5CCF65041A4703D7A0FDD544114AE4751DCF65041295C8F7216DD5441666666C6D4F650410AD7A39020DD544166666606C5F650411F85EBE118DD544148E17A94BDF65041B81E851B14DD5441EC51B89EBAF650418FC2F52816DD5441D7A370CDB7F65041E17A145E1DDD544148E17A34C0F65041E17A146E23DD5441E17A147ED5F65041EC51B87E2ADD544185EB5108DDF650411F85EB412BDD544114AE4731E4F650410AD7A3E02BDD5441A4703D4AF9F65041E17A141E2CDD544114AE47E100F7504152B81EA52DDD5441295C8F2208F75041713D0A072FDD54416666666613F75041D7A3702D31DD5441666666D617F750416666667631DD54413333333318F750417B14AE1731DD54413333337320F75041EC51B83E2FDD54411F85EBE12AF75041E17A141E2CDD54419A99990931F7504152B81E852BDD5441EC51B81E39F750413D0AD7A32EDD5441AE47E14A3EF750419A9999992FDD54417B14AED73EF750415C8FC27516DD5441713D0A7739F75041713D0A2717DD54415C8FC2552EF7504152B81E9518DD5441333333D322F750413D0AD7C319DD5441C3F5286C1DF75041B81E853B1ADD544148E17A3418F75041713D0AA719DD5441F6285C8F12F75041AE47E1BA19DD544114AE47710CF7504148E17AE417DD5441B81E850B05F750419A99996916DD5441713D0A57FDF65041E17A141E15DD5441CDCCCC2CEFF65041EC51B85E0EDD5441A4703DFAEEF65041713D0A470EDD54410AD7A350EDF650419A9999790DDD54410AD7A360E4F65041713D0AB709DD5441A4703D2ADDF6504114AE47E106DD544185EB5148D0F65041CDCCCC9C03DD54410103000000010000000F000000F6285C0F4CF85041C3F5280C1BDD5441000000C04BF8504114AE47111ADD5441AE47E1AA4BF85041666666E619DD5441CDCCCC5C4BF85041AE47E14A19DD5441B81E85CB41F85041A4703D3A1DDD54413D0AD7F33BF85041A4703D9A1EDD544148E17A7436F85041A4703DFA1FDD54418FC2F5F82FF850411F85EBA122DD5441AE47E10A31F8504148E17A3426DD5441A4703D3A31F850411F85EBD126DD54413333330332F850411F85EB7129DD5441A4703DCA38F85041F6285C7F26DD54419A9999893FF85041713D0AA723DD5441D7A370DD45F85041A4703D8A1FDD5441F6285C0F4CF85041C3F5280C1BDD54410103000000010000005B000000A4703DFAE2F6504148E17A7455DD54418FC2F5C8E1F650419A9999C952DD5441000000C0E0F65041EC51B8EE50DD5441AE47E1DADEF65041CDCCCC0C4FDD544148E17AA4DDF65041713D0AD74DDD544152B81ED5DCF650410AD7A3304CDD544152B81E65D9F65041E17A142E4EDD54413D0AD7A3D1F650418FC2F57847DD54410AD7A330CAF650411F85EB9143DD54411F85EB81C0F650417B14AEF73BDD5441666666A6BCF650416666662638DD544114AE47D1B8F65041F6285C8F31DD5441A4703DAAB1F65041295C8F9230DD544152B81EA5AAF65041AE47E16A31DD544133333333ABF650410AD7A3E032DD5441D7A3703DABF650415C8FC20534DD54411F85EBA1AAF65041E17A141E35DD544185EB5198AAF65041A4703D1A36DD54417B14AE97AAF65041295C8F3236DD544152B81E05ABF65041EC51B85E38DD544166666636ACF65041295C8FD23ADD5441C3F5286CACF6504114AE47713DDD54415C8FC2D5ABF650415C8FC2453FDD544152B81EC5ADF65041EC51B89E40DD5441F6285C9FB0F65041A4703D5A41DD5441B81E85DBB4F650417B14AE7740DD5441F6285C2FB6F65041713D0A5740DD5441D7A370ADB7F650416666663641DD544148E17A04B9F65041295C8F9242DD5441C3F5286CB9F65041C3F5283C44DD5441CDCCCC1CB9F650413D0AD7D345DD544114AE4701B8F65041CDCCCCFC46DD54413D0AD733B8F65041A4703D6A48DD5441E17A140EB9F650410AD7A3304ADD54410AD7A300B9F65041713D0A174CDD54418FC2F5F8B8F65041CDCCCC3C4DDD544185EB5198B8F650417B14AED74EDD5441AE47E13AB3F650415C8FC26553DD5441E17A14DEB2F65041AE47E13A54DD544114AE47B1B3F65041713D0A2755DD54413D0AD793B7F6504114AE470156DD5441000000C0B9F6504185EB513856DD5441B81E85EBB9F65041C3F5285C54DD54419A9999B9BBF650411F85EB2154DD54410AD7A370BDF65041713D0AE754DD5441A4703D1AC5F6504185EB51A852DD544100000060C9F6504114AE47B14EDD54417B14AE37CBF6504148E17AB44DDD5441A4703DBACCF65041B81E85AB4DDD544185EB5108CEF650418FC2F5184EDD5441EC51B8BECFF650419A9999D94FDD5441666666A6D1F6504114AE473154DD544152B81E35D2F65041E17A148E55DD5441C3F528ECD1F65041F6285CFF56DD544100000050D1F650413D0AD71359DD54410AD7A340D1F650411F85EB315ADD544133333353D1F65041F6285CEF5BDD5441CDCCCC5CD1F65041E17A14AE5CDD544148E17A64D1F650411F85EB415DDD5441EC51B85ED1F65041D7A370AD5EDD5441F6285C2FD0F650418FC2F5C862DD544133333313D0F650413D0AD71364DD5441A4703D1AD1F65041713D0A1765DD5441E17A146ED2F650419A9999C965DD5441000000A0D4F650413333338366DD5441D7A3704DD6F6504152B81ED565DD5441AE47E15AD8F6504148E17A4463DD5441C3F5287CD9F65041EC51B82E61DD54417B14AE77D9F650415C8FC21560DD5441F6285CAFD9F65041C3F5284C5FDD54413D0AD763DAF65041CDCCCCCC5EDD544133333373DBF650415C8FC2855EDD544114AE4771DCF65041713D0A775DDD54417B14AE47DEF65041F6285CCF5CDD544133333313E0F6504114AE47315CDD5441F6285CDFE0F65041D7A370FD5BDD5441B81E850BE2F65041333333235DDD544100000020E3F65041333333835DDD5441C3F5280CE4F65041E17A143E5DDD54417B14AE97E5F65041000000D05CDD5441AE47E17AE7F6504185EB51285CDD54417B14AE77EAF650410000005059DD5441E17A147EEAF650419A99994959DD544114AE47C1EBF6504152B81E9558DD5441CDCCCC2CECF6504185EB51A857DD54419A9999D9EBF650413D0AD72357DD54413D0AD7A3EAF6504152B81EB556DD5441AE47E1AAE8F650410000007057DD54415C8FC205E7F650411F85EB5157DD544185EB5158E4F65041D7A3706D56DD5441A4703DFAE2F6504148E17A7455DD5441010300000005000000900000000000000000F750413333330386DD54415C8FC2D50BF750415C8FC2E56ADD5441333333A31FF750418FC2F5F871DD54410AD7A3905CF75041333333037CDD54416666663676F75041CDCCCC3C84DD5441D7A3703D88F75041B81E852B85DD5441CDCCCC2C8DF75041713D0A3784DD5441CDCCCC2C8DF75041E17A149E7BDD5441B81E85CB8DF7504148E17A1479DD544148E17AE48DF75041E17A14AE78DD54417B14AE678EF75041D7A3709D77DD544152B81ED58DF75041666666F677DD5441D7A370BD8BF75041EC51B8AE78DD5441C3F528CC89F75041713D0A3779DD5441B81E85DB87F750413D0AD75378DD54417B14AEC785F75041CDCCCC9C77DD5441E17A142E85F750415C8FC2D577DD5441EC51B8BE84F75041295C8F3279DD5441A4703D9A82F7504185EB51387DDD54419A9999C980F7504152B81EA57EDD5441B81E85DB7EF750419A99990980DD54413D0AD7837DF750411F85EB9180DD5441333333937CF75041CDCCCC0C80DD5441B81E857B7BF750411F85EB717FDD5441713D0AE779F75041333333A37DDD54410000000079F75041C3F528BC7ADD54413333336379F75041D7A370DD76DD5441713D0AC77AF750419A99993974DD54411F85EBC17AF750419A99996973DD5441A4703D7A79F75041F6285CBF72DD54413D0AD76376F750417B14AED770DD5441CDCCCC8C75F750413333335370DD5441F6285C6F72F75041B81E85CB6DDD5441EC51B84E6FF75041D7A3708D6ADD5441000000306DF750416666660666DD5441EC51B80E6BF75041EC51B89E63DD5441D7A3707D69F75041713D0A3763DD5441A4703DFA66F750419A99994962DD5441E17A141E66F75041E17A146E60DD5441F6285C3F66F75041000000305FDD544114AE47D167F750411F85EBB15BDD5441EC51B8EE66F7504148E17A545ADD5441295C8F5264F7504148E17AA459DD5441A4703D3A62F750415C8FC2B558DD544185EB511860F75041C3F5280C56DD5441E17A14AE5DF75041666666F654DD544148E17AB45BF75041713D0AE754DD54419A9999B959F750415C8FC29555DD5441AE47E18A53F75041D7A3705D57DD54417B14AE4751F75041713D0AF756DD544148E17AB44FF75041EC51B80E56DD5441A4703D6A48F750411F85EBA156DD5441C3F5284C45F75041EC51B8FE5BDD544114AE47E147F75041000000B05DDD5441F6285CAF48F750419A9999195FDD5441D7A3706D47F7504148E17A5462DD5441E17A142E46F750415C8FC28563DD5441B81E850B45F750410AD7A30063DD54411F85EB2141F75041E17A14BE62DD5441B81E85EB3CF750415C8FC23563DD544148E17AB439F750411F85EBB163DD5441295C8FC237F7504114AE470164DD5441713D0AE735F750419A99992963DD5441666666D633F75041F6285CFF61DD5441295C8FE232F750418FC2F50861DD5441D7A370CD32F750419A9999795FDD544152B81ED534F75041666666B65CDD5441A4703DFA34F75041F6285CAF5BDD54417B14AE4734F75041EC51B8CE5ADD54419A99991933F750417B14AE075ADD5441C3F5281C31F75041295C8F8259DD5441333333F32DF7504114AE475158DD5441EC51B82E2CF75041333333C357DD54411F85EB012AF75041CDCCCC7C58DD5441D7A370CD24F7504152B81E2559DD5441D7A370CD1EF75041AE47E1FA59DD5441D7A3707D1BF7504152B81EF559DD5441EC51B8EE15F750415C8FC23558DD544185EB516813F75041D7A370DD58DD544148E17AA40FF750415C8FC25559DD5441C3F528BC0AF7504152B81E2559DD5441E17A14EE07F7504114AE478158DD54416666660605F7504114AE47B156DD54415C8FC2F500F750413D0AD71353DD5441000000A0FEF65041000000F04FDD5441666666C6FDF6504152B81ED54EDD54410AD7A300FDF65041C3F5283C4EDD544100000090FCF650410AD7A3604EDD544148E17A14FCF650418FC2F5884EDD5441CDCCCC6CFBF650415C8FC2354FDD54417B14AE77F9F650417B14AED751DD54418FC2F5F8F7F6504114AE473153DD544185EB5118F6F65041333333B353DD5441AE47E13AEFF6504114AE47F157DD54410AD7A3B0EEF650410AD7A34059DD54418FC2F5C8EDF6504148E17AF459DD544185EB51B8EBF6504185EB51585BDD54417B14AE07EAF650419A9999B95DDD5441C3F528BCE7F65041E17A14EE5EDD5441C3F5286CE3F650410000002060DD5441C3F5284CE1F650417B14AE3760DD5441A4703DBAE0F6504152B81E055FDD5441713D0A57DFF65041713D0A875FDD544152B81E05DDF650411F85EBC161DD54410AD7A3B0DBF6504148E17AC463DD5441000000E0DAF650413333332365DD5441F6285C5FD9F65041AE47E16A67DD5441B81E850BD6F650415C8FC27569DD5441713D0A27D4F65041A4703DBA69DD5441713D0A17D0F65041295C8F1268DD544100000040CEF65041295C8F8266DD5441A4703DBACDF65041666666C665DD544133333323CDF65041A4703D3A64DD544133333343CDF65041000000F060DD544166666636CEF65041333333935CDD5441000000C0CEF65041C3F5282C57DD5441333333B3CCF65041F6285C0F51DD5441713D0AE7CBF650419A99999950DD5441713D0A07CBF6504152B81EC551DD5441F6285C0FC9F65041333333B353DD5441EC51B8DEC5F65041D7A370BD55DD5441EC51B8AEBFF65041E17A14AE57DD544185EB5168BBF65041F6285CEF58DD54418FC2F5A8B3F65041A4703D1A5ADD54413D0AD7F3AFF65041A4703D1A5ADD5441CDCCCCFCADF65041333333935BDD54417B14AED7AFF65041E17A141E62DD5441000000C0B1F65041CDCCCCFC68DD5441F6285C7FB0F650411F85EBB16CDD5441295C8F42B1F650411F85EB2170DD54419A9999C9AEF65041333333F371DD544185EB5108B8F65041D7A3704D74DD544148E17A94BBF650413333333375DD5441713D0AC7D0F6504152B81E0577DD544114AE47B1D9F65041E17A142E78DD5441713D0A27DEF65041C3F528CC78DD54417B14AE27DFF65041000000F078DD54411F85EBE1E4F65041333333037ADD5441F6285CEFE9F6504114AE47817BDD5441F6285CCFEFF65041713D0AD77DDD54411F85EB81F0F65041E17A141E7EDD5441E17A14CEF6F65041B81E851B81DD5441AE47E1BAFDF6504185EB515885DD54410000000000F750413333330386DD54410F000000666666A604F75041AE47E1BA63DD544152B81E2505F75041CDCCCC6C61DD54411F85EB9109F750410AD7A35060DD544114AE47A10BF750417B14AED75EDD5441D7A3702D0DF75041D7A3703D5EDD5441A4703DDA0DF750418FC2F5C85EDD5441E17A14BE0DF75041F6285C2F60DD5441F6285C2F0CF75041EC51B85E62DD544148E17A740BF75041713D0A4764DD5441F6285C9F0AF750416666662666DD5441A4703DFA08F750416666661666DD54413333336306F750417B14AED765DD544114AE47F104F75041C3F5280C66DD54416666663604F750417B14AED764DD5441666666A604F75041AE47E1BA63DD5441120000007B14AEE725F750415C8FC2955DDD5441D7A370BD26F750415C8FC2D55EDD5441F6285C6F28F75041B81E859B5FDD5441D7A370BD2AF750411F85EB9162DD54419A9999E92BF7504185EB516865DD5441B81E85FB2CF75041CDCCCCEC66DD5441295C8F422CF7504185EB513868DD5441D7A370AD2AF75041713D0AE768DD5441A4703D7A29F750417B14AE6768DD54418FC2F54828F750415C8FC27567DD5441000000C026F7504148E17A0465DD5441295C8F2225F7504114AE470164DD5441AE47E1CA22F750417B14AEF762DD544185EB515821F750413D0AD75361DD5441C3F528FC20F750411F85EB515FDD544148E17A5422F75041713D0AC75DDD54410000002024F750417B14AE375DDD54417B14AEE725F750415C8FC2955DDD54410B000000B81E85DBF0F650419A99992976DD5441000000F0EAF650418FC2F59873DD5441F6285C1FECF650415C8FC2D570DD5441AE47E15AF8F65041A4703DAA6EDD544166666646FEF650418FC2F5186CDD54411F85EB3104F75041295C8F126EDD544185EB516803F7504114AE470173DD544133333343FFF65041000000B07BDD544133333383FBF65041A4703D7A7CDD5441713D0AC7F6F65041713D0AB779DD5441B81E85DBF0F650419A99992976DD5441130000008FC2F5E810F75041CDCCCC6C60DD5441666666F610F750410AD7A3805FDD54416666668611F750415C8FC2F55EDD54410AD7A35012F75041000000B05EDD54413D0AD75314F75041713D0AD75EDD5441F6285CCF16F75041E17A14AE5EDD5441713D0AD718F75041666666065EDD544148E17AC41CF75041EC51B8CE5DDD54417B14AEA71DF75041295C8F325EDD54413D0AD7131EF7504148E17AF45FDD5441E17A14BE1EF75041F6285C5F61DD5441AE47E13A1EF75041713D0A0762DD5441295C8FD21CF75041CDCCCC4C61DD5441000000801BF750417B14AE6761DD54410AD7A3F018F750417B14AED760DD5441713D0A1716F750410000009060DD5441B81E85BB13F75041EC51B89E60DD5441C3F528CC11F750410AD7A3E060DD54418FC2F5E810F75041CDCCCC6C60DD5441
+</a>
+
+<b>
+010600000001000000010300000001000000120000008F67BA7D5CF75041BFA6088739DD54413D0AD70359F75041295C8FC238DD5441713D0A274FF750411F85EB0138DD5441666666C64EF7504152B81EC53BDD5441B1B30B144FF7504123A7CD853DDD54411A79AE2C4FF7504126F0DCAE3DDD5441F38836DF50F75041A032C2FA3FDD54416DDDD1DE51F75041A3FD366042DD5441201A5C1A52F750410519E70C44DD5441E90950A453F75041EB6B659744DD5441FF7CA69E66F75041C5CD33F343DD5441D467AF9E66F75041798033F343DD5441C851B89E66F75041343333F343DD5441A06610D365F750418185C09C41DD5441232A3B0F63F75041BC3EF1BF3CDD5441D672CDE762F750418ABF049C3CDD544126F4F7845FF750413CB8D87B3ADD54418F67BA7D5CF75041BFA6088739DD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>875670 - 418387
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000008000000010300000001000000260000000000000051F85041AE47E1AA1CDD5441C3F528DC50F85041E17A14EE1BDD5441295C8F624CF8504148E17A141CDD5441D7A370DD45F850418FC2F5E820DD5441F6285CBF3FF8504148E17AB424DD5441C3F5286C39F85041D7A3708D27DD5441713D0A772CF850411F85EBD12CDD54419A9999192DF850415C8FC2E52EDD5441EC51B83E2EF85041E17A149E2EDD54415C8FC27530F850411F85EB312EDD5441C3F5285C34F85041333333832EDD5441F6285CFF36F85041A4703D5A2DDD54416666668637F85041333333232BDD5441333333F339F85041F6285CDF29DD5441295C8F323DF8504152B81EA52BDD5441E17A147E3EF85041EC51B8BE2BDD5441D7A3707D3FF85041C3F5281C2CDD544148E17AF43FF85041713D0AD72CDD54419A99994940F85041666666D62DDD544114AE475141F85041EC51B8EE2EDD544185EB517845F850418FC2F5B831DD544185EB516847F85041CDCCCC7C32DD5441B81E85DB48F850416666661632DD544114AE474149F85041EC51B88E31DD544114AE474149F85041EC51B87E30DD5441D7A370FD48F850418FC2F5082EDD5441E17A140E49F850413D0AD7A32CDD5441CDCCCC7C49F85041A4703DEA2ADD5441333333734AF8504148E17AF428DD5441EC51B83E4CF85041C3F5285C27DD5441333333234EF850415C8FC26526DD5441AE47E13A50F850411F85EBA125DD54419A99992950F8504152B81EF524DD5441D7A3705D50F850417B14AE7724DD5441F6285CDF50F850415C8FC21523DD5441A4703D6A51F85041B81E850B21DD54417B14AEE750F85041F6285C0F1FDD54410000000051F85041AE47E1AA1CDD544101030000000100000017000000C3F5286C62F750410AD7A31039DD5441295C8F126AF75041AE47E1CA34DD5441D7A3700D6BF750415C8FC2C535DD5441EC51B8DE6BF7504114AE47E138DD54413D0AD7036DF75041F6285C6F3ADD54418FC2F5186FF750411F85EB3139DD54418FC2F5786EF750410AD7A31036DD54418FC2F5786EF75041F6285C1F32DD54418FC2F5986EF75041E17A144E2EDD54418FC2F5686EF75041D7A3705D2CDD544148E17A846DF75041B81E85AB28DD5441A4703D5A6AF75041295C8F7229DD5441666666D667F75041CDCCCC9C2ADD54417B14AE3764F750419A9999492CDD5441333333735FF750417B14AE772EDD5441295C8F4255F7504148E17A0432DD54415C8FC2454BF750418FC2F54833DD5441C3F528DC45F75041E17A14AE33DD544114AE47414AF75041A4703DBA34DD54411F85EB614FF750410AD7A3A035DD544152B81E6558F75041C3F528EC36DD5441713D0A775DF75041666666B637DD5441C3F5286C62F750410AD7A31039DD54410103000000010000000B000000000000D05EF75041A4703D0A3ADD54413D0AD70359F75041295C8FC238DD5441713D0A274FF750411F85EB0138DD5441666666C64EF7504152B81EC53BDD54413D0AD7734FF75041F6285CAF3FDD5441666666E650F750410AD7A3A043DD544152B81EA553F750417B14AE9744DD5441EC51B89E66F75041333333F343DD54416666666665F75041D7A3705D40DD54413D0AD7E363F75041A4703D3A3DDD5441000000D05EF75041A4703D0A3ADD54410103000000010000001F000000295C8FF2D5F95041C3F5287C0EDD544148E17A14D9F950418FC2F5C80BDD544114AE4721DCF95041295C8FB209DD544152B81E25DDF95041000000E006DD544166666616DDF950413D0AD7D303DD5441295C8FA2DEF950419A9999B902DD5441333333C3DEF95041CDCCCC1C02DD5441C3F528ECDEF95041CDCCCC4C01DD5441F6285C4FDFF9504114AE47B100DD54413D0AD7C3DFF9504152B81E1500DD54411F85EB41E0F95041E17A147EFFDC5441EC51B85EE1F95041AE47E1FAFEDC5441295C8F12DCF95041CDCCCC5CF9DC544148E17A14D3F95041CDCCCC4CFBDC54413D0AD7E3D1F950415C8FC2B5FCDC544133333353D1F9504148E17A54FDDC54410AD7A3D0D1F95041C3F528FCFDDC544152B81EF5D2F9504114AE4701FFDC5441C3F528BCD3F9504152B81ED5FFDC5441A4703D2AD4F95041295C8FB200DD544185EB5158D4F950413333337301DD544148E17AA4D4F9504148E17A6403DD54415C8FC2B5D4F95041CDCCCC2C05DD544185EB51A8D4F950410000004006DD544185EB51A8D4F95041EC51B81E07DD5441B81E85ABD4F950413333332308DD5441295C8FA2D4F950413D0AD7C309DD54410AD7A3D0D4F9504152B81E150BDD54410AD7A310D5F95041713D0A570CDD5441713D0A57D5F95041AE47E18A0DDD5441295C8FF2D5F95041C3F5287C0EDD54410103000000010000003000000085EB5148D0F65041CDCCCC9C03DD5441CDCCCCFCCEF65041E17A143E03DD5441E17A143EB8F6504114AE47E1FDDC54415C8FC2A5B1F65041AE47E15AFBDC5441E17A149EAAF65041D7A3709DFBDC544185EB5108A8F650419A9999A9FBDC5441D7A370EDAAF650415C8FC245FDDC54413D0AD7E3B3F650411F85EB4102DD5441C3F528BCC2F65041E17A14FE0ADD5441B81E856BCBF650417B14AEE70EDD54415C8FC2B5CCF65041A4703D7A0FDD544114AE4751DCF65041295C8F7216DD5441666666C6D4F650410AD7A39020DD544166666606C5F650411F85EBE118DD544148E17A94BDF65041B81E851B14DD5441EC51B89EBAF650418FC2F52816DD5441D7A370CDB7F65041E17A145E1DDD544148E17A34C0F65041E17A146E23DD5441E17A147ED5F65041EC51B87E2ADD544185EB5108DDF650411F85EB412BDD544114AE4731E4F650410AD7A3E02BDD5441A4703D4AF9F65041E17A141E2CDD544114AE47E100F7504152B81EA52DDD5441295C8F2208F75041713D0A072FDD54416666666613F75041D7A3702D31DD5441666666D617F750416666667631DD54413333333318F750417B14AE1731DD54413333337320F75041EC51B83E2FDD54411F85EBE12AF75041E17A141E2CDD54419A99990931F7504152B81E852BDD5441EC51B81E39F750413D0AD7A32EDD5441AE47E14A3EF750419A9999992FDD54417B14AED73EF750415C8FC27516DD5441713D0A7739F75041713D0A2717DD54415C8FC2552EF7504152B81E9518DD5441333333D322F750413D0AD7C319DD5441C3F5286C1DF75041B81E853B1ADD544148E17A3418F75041713D0AA719DD5441F6285C8F12F75041AE47E1BA19DD544114AE47710CF7504148E17AE417DD5441B81E850B05F750419A99996916DD5441713D0A57FDF65041E17A141E15DD5441CDCCCC2CEFF65041EC51B85E0EDD5441A4703DFAEEF65041713D0A470EDD54410AD7A350EDF650419A9999790DDD54410AD7A360E4F65041713D0AB709DD5441A4703D2ADDF6504114AE47E106DD544185EB5148D0F65041CDCCCC9C03DD54410103000000010000000F000000F6285C0F4CF85041C3F5280C1BDD5441000000C04BF8504114AE47111ADD5441AE47E1AA4BF85041666666E619DD5441CDCCCC5C4BF85041AE47E14A19DD5441B81E85CB41F85041A4703D3A1DDD54413D0AD7F33BF85041A4703D9A1EDD544148E17A7436F85041A4703DFA1FDD54418FC2F5F82FF850411F85EBA122DD5441AE47E10A31F8504148E17A3426DD5441A4703D3A31F850411F85EBD126DD54413333330332F850411F85EB7129DD5441A4703DCA38F85041F6285C7F26DD54419A9999893FF85041713D0AA723DD5441D7A370DD45F85041A4703D8A1FDD5441F6285C0F4CF85041C3F5280C1BDD54410103000000010000005B000000A4703DFAE2F6504148E17A7455DD54418FC2F5C8E1F650419A9999C952DD5441000000C0E0F65041EC51B8EE50DD5441AE47E1DADEF65041CDCCCC0C4FDD544148E17AA4DDF65041713D0AD74DDD544152B81ED5DCF650410AD7A3304CDD544152B81E65D9F65041E17A142E4EDD54413D0AD7A3D1F650418FC2F57847DD54410AD7A330CAF650411F85EB9143DD54411F85EB81C0F650417B14AEF73BDD5441666666A6BCF650416666662638DD544114AE47D1B8F65041F6285C8F31DD5441A4703DAAB1F65041295C8F9230DD544152B81EA5AAF65041AE47E16A31DD544133333333ABF650410AD7A3E032DD5441D7A3703DABF650415C8FC20534DD54411F85EBA1AAF65041E17A141E35DD544185EB5198AAF65041A4703D1A36DD54417B14AE97AAF65041295C8F3236DD544152B81E05ABF65041EC51B85E38DD544166666636ACF65041295C8FD23ADD5441C3F5286CACF6504114AE47713DDD54415C8FC2D5ABF650415C8FC2453FDD544152B81EC5ADF65041EC51B89E40DD5441F6285C9FB0F65041A4703D5A41DD5441B81E85DBB4F650417B14AE7740DD5441F6285C2FB6F65041713D0A5740DD5441D7A370ADB7F650416666663641DD544148E17A04B9F65041295C8F9242DD5441C3F5286CB9F65041C3F5283C44DD5441CDCCCC1CB9F650413D0AD7D345DD544114AE4701B8F65041CDCCCCFC46DD54413D0AD733B8F65041A4703D6A48DD5441E17A140EB9F650410AD7A3304ADD54410AD7A300B9F65041713D0A174CDD54418FC2F5F8B8F65041CDCCCC3C4DDD544185EB5198B8F650417B14AED74EDD5441AE47E13AB3F650415C8FC26553DD5441E17A14DEB2F65041AE47E13A54DD544114AE47B1B3F65041713D0A2755DD54413D0AD793B7F6504114AE470156DD5441000000C0B9F6504185EB513856DD5441B81E85EBB9F65041C3F5285C54DD54419A9999B9BBF650411F85EB2154DD54410AD7A370BDF65041713D0AE754DD5441A4703D1AC5F6504185EB51A852DD544100000060C9F6504114AE47B14EDD54417B14AE37CBF6504148E17AB44DDD5441A4703DBACCF65041B81E85AB4DDD544185EB5108CEF650418FC2F5184EDD5441EC51B8BECFF650419A9999D94FDD5441666666A6D1F6504114AE473154DD544152B81E35D2F65041E17A148E55DD5441C3F528ECD1F65041F6285CFF56DD544100000050D1F650413D0AD71359DD54410AD7A340D1F650411F85EB315ADD544133333353D1F65041F6285CEF5BDD5441CDCCCC5CD1F65041E17A14AE5CDD544148E17A64D1F650411F85EB415DDD5441EC51B85ED1F65041D7A370AD5EDD5441F6285C2FD0F650418FC2F5C862DD544133333313D0F650413D0AD71364DD5441A4703D1AD1F65041713D0A1765DD5441E17A146ED2F650419A9999C965DD5441000000A0D4F650413333338366DD5441D7A3704DD6F6504152B81ED565DD5441AE47E15AD8F6504148E17A4463DD5441C3F5287CD9F65041EC51B82E61DD54417B14AE77D9F650415C8FC21560DD5441F6285CAFD9F65041C3F5284C5FDD54413D0AD763DAF65041CDCCCCCC5EDD544133333373DBF650415C8FC2855EDD544114AE4771DCF65041713D0A775DDD54417B14AE47DEF65041F6285CCF5CDD544133333313E0F6504114AE47315CDD5441F6285CDFE0F65041D7A370FD5BDD5441B81E850BE2F65041333333235DDD544100000020E3F65041333333835DDD5441C3F5280CE4F65041E17A143E5DDD54417B14AE97E5F65041000000D05CDD5441AE47E17AE7F6504185EB51285CDD54417B14AE77EAF650410000005059DD5441E17A147EEAF650419A99994959DD544114AE47C1EBF6504152B81E9558DD5441CDCCCC2CECF6504185EB51A857DD54419A9999D9EBF650413D0AD72357DD54413D0AD7A3EAF6504152B81EB556DD5441AE47E1AAE8F650410000007057DD54415C8FC205E7F650411F85EB5157DD544185EB5158E4F65041D7A3706D56DD5441A4703DFAE2F6504148E17A7455DD5441010300000005000000900000000000000000F750413333330386DD54415C8FC2D50BF750415C8FC2E56ADD5441333333A31FF750418FC2F5F871DD54410AD7A3905CF75041333333037CDD54416666663676F75041CDCCCC3C84DD5441D7A3703D88F75041B81E852B85DD5441CDCCCC2C8DF75041713D0A3784DD5441CDCCCC2C8DF75041E17A149E7BDD5441B81E85CB8DF7504148E17A1479DD544148E17AE48DF75041E17A14AE78DD54417B14AE678EF75041D7A3709D77DD544152B81ED58DF75041666666F677DD5441D7A370BD8BF75041EC51B8AE78DD5441C3F528CC89F75041713D0A3779DD5441B81E85DB87F750413D0AD75378DD54417B14AEC785F75041CDCCCC9C77DD5441E17A142E85F750415C8FC2D577DD5441EC51B8BE84F75041295C8F3279DD5441A4703D9A82F7504185EB51387DDD54419A9999C980F7504152B81EA57EDD5441B81E85DB7EF750419A99990980DD54413D0AD7837DF750411F85EB9180DD5441333333937CF75041CDCCCC0C80DD5441B81E857B7BF750411F85EB717FDD5441713D0AE779F75041333333A37DDD54410000000079F75041C3F528BC7ADD54413333336379F75041D7A370DD76DD5441713D0AC77AF750419A99993974DD54411F85EBC17AF750419A99996973DD5441A4703D7A79F75041F6285CBF72DD54413D0AD76376F750417B14AED770DD5441CDCCCC8C75F750413333335370DD5441F6285C6F72F75041B81E85CB6DDD5441EC51B84E6FF75041D7A3708D6ADD5441000000306DF750416666660666DD5441EC51B80E6BF75041EC51B89E63DD5441D7A3707D69F75041713D0A3763DD5441A4703DFA66F750419A99994962DD5441E17A141E66F75041E17A146E60DD5441F6285C3F66F75041000000305FDD544114AE47D167F750411F85EBB15BDD5441EC51B8EE66F7504148E17A545ADD5441295C8F5264F7504148E17AA459DD5441A4703D3A62F750415C8FC2B558DD544185EB511860F75041C3F5280C56DD5441E17A14AE5DF75041666666F654DD544148E17AB45BF75041713D0AE754DD54419A9999B959F750415C8FC29555DD5441AE47E18A53F75041D7A3705D57DD54417B14AE4751F75041713D0AF756DD544148E17AB44FF75041EC51B80E56DD5441A4703D6A48F750411F85EBA156DD5441C3F5284C45F75041EC51B8FE5BDD544114AE47E147F75041000000B05DDD5441F6285CAF48F750419A9999195FDD5441D7A3706D47F7504148E17A5462DD5441E17A142E46F750415C8FC28563DD5441B81E850B45F750410AD7A30063DD54411F85EB2141F75041E17A14BE62DD5441B81E85EB3CF750415C8FC23563DD544148E17AB439F750411F85EBB163DD5441295C8FC237F7504114AE470164DD5441713D0AE735F750419A99992963DD5441666666D633F75041F6285CFF61DD5441295C8FE232F750418FC2F50861DD5441D7A370CD32F750419A9999795FDD544152B81ED534F75041666666B65CDD5441A4703DFA34F75041F6285CAF5BDD54417B14AE4734F75041EC51B8CE5ADD54419A99991933F750417B14AE075ADD5441C3F5281C31F75041295C8F8259DD5441333333F32DF7504114AE475158DD5441EC51B82E2CF75041333333C357DD54411F85EB012AF75041CDCCCC7C58DD5441D7A370CD24F7504152B81E2559DD5441D7A370CD1EF75041AE47E1FA59DD5441D7A3707D1BF7504152B81EF559DD5441EC51B8EE15F750415C8FC23558DD544185EB516813F75041D7A370DD58DD544148E17AA40FF750415C8FC25559DD5441C3F528BC0AF7504152B81E2559DD5441E17A14EE07F7504114AE478158DD54416666660605F7504114AE47B156DD54415C8FC2F500F750413D0AD71353DD5441000000A0FEF65041000000F04FDD5441666666C6FDF6504152B81ED54EDD54410AD7A300FDF65041C3F5283C4EDD544100000090FCF650410AD7A3604EDD544148E17A14FCF650418FC2F5884EDD5441CDCCCC6CFBF650415C8FC2354FDD54417B14AE77F9F650417B14AED751DD54418FC2F5F8F7F6504114AE473153DD544185EB5118F6F65041333333B353DD5441AE47E13AEFF6504114AE47F157DD54410AD7A3B0EEF650410AD7A34059DD54418FC2F5C8EDF6504148E17AF459DD544185EB51B8EBF6504185EB51585BDD54417B14AE07EAF650419A9999B95DDD5441C3F528BCE7F65041E17A14EE5EDD5441C3F5286CE3F650410000002060DD5441C3F5284CE1F650417B14AE3760DD5441A4703DBAE0F6504152B81E055FDD5441713D0A57DFF65041713D0A875FDD544152B81E05DDF650411F85EBC161DD54410AD7A3B0DBF6504148E17AC463DD5441000000E0DAF650413333332365DD5441F6285C5FD9F65041AE47E16A67DD5441B81E850BD6F650415C8FC27569DD5441713D0A27D4F65041A4703DBA69DD5441713D0A17D0F65041295C8F1268DD544100000040CEF65041295C8F8266DD5441A4703DBACDF65041666666C665DD544133333323CDF65041A4703D3A64DD544133333343CDF65041000000F060DD544166666636CEF65041333333935CDD5441000000C0CEF65041C3F5282C57DD5441333333B3CCF65041F6285C0F51DD5441713D0AE7CBF650419A99999950DD5441713D0A07CBF6504152B81EC551DD5441F6285C0FC9F65041333333B353DD5441EC51B8DEC5F65041D7A370BD55DD5441EC51B8AEBFF65041E17A14AE57DD544185EB5168BBF65041F6285CEF58DD54418FC2F5A8B3F65041A4703D1A5ADD54413D0AD7F3AFF65041A4703D1A5ADD5441CDCCCCFCADF65041333333935BDD54417B14AED7AFF65041E17A141E62DD5441000000C0B1F65041CDCCCCFC68DD5441F6285C7FB0F650411F85EBB16CDD5441295C8F42B1F650411F85EB2170DD54419A9999C9AEF65041333333F371DD544185EB5108B8F65041D7A3704D74DD544148E17A94BBF650413333333375DD5441713D0AC7D0F6504152B81E0577DD544114AE47B1D9F65041E17A142E78DD5441713D0A27DEF65041C3F528CC78DD54417B14AE27DFF65041000000F078DD54411F85EBE1E4F65041333333037ADD5441F6285CEFE9F6504114AE47817BDD5441F6285CCFEFF65041713D0AD77DDD54411F85EB81F0F65041E17A141E7EDD5441E17A14CEF6F65041B81E851B81DD5441AE47E1BAFDF6504185EB515885DD54410000000000F750413333330386DD54410F000000666666A604F75041AE47E1BA63DD544152B81E2505F75041CDCCCC6C61DD54411F85EB9109F750410AD7A35060DD544114AE47A10BF750417B14AED75EDD5441D7A3702D0DF75041D7A3703D5EDD5441A4703DDA0DF750418FC2F5C85EDD5441E17A14BE0DF75041F6285C2F60DD5441F6285C2F0CF75041EC51B85E62DD544148E17A740BF75041713D0A4764DD5441F6285C9F0AF750416666662666DD5441A4703DFA08F750416666661666DD54413333336306F750417B14AED765DD544114AE47F104F75041C3F5280C66DD54416666663604F750417B14AED764DD5441666666A604F75041AE47E1BA63DD5441120000007B14AEE725F750415C8FC2955DDD5441D7A370BD26F750415C8FC2D55EDD5441F6285C6F28F75041B81E859B5FDD5441D7A370BD2AF750411F85EB9162DD54419A9999E92BF7504185EB516865DD5441B81E85FB2CF75041CDCCCCEC66DD5441295C8F422CF7504185EB513868DD5441D7A370AD2AF75041713D0AE768DD5441A4703D7A29F750417B14AE6768DD54418FC2F54828F750415C8FC27567DD5441000000C026F7504148E17A0465DD5441295C8F2225F7504114AE470164DD5441AE47E1CA22F750417B14AEF762DD544185EB515821F750413D0AD75361DD5441C3F528FC20F750411F85EB515FDD544148E17A5422F75041713D0AC75DDD54410000002024F750417B14AE375DDD54417B14AEE725F750415C8FC2955DDD54410B000000B81E85DBF0F650419A99992976DD5441000000F0EAF650418FC2F59873DD5441F6285C1FECF650415C8FC2D570DD5441AE47E15AF8F65041A4703DAA6EDD544166666646FEF650418FC2F5186CDD54411F85EB3104F75041295C8F126EDD544185EB516803F7504114AE470173DD544133333343FFF65041000000B07BDD544133333383FBF65041A4703D7A7CDD5441713D0AC7F6F65041713D0AB779DD5441B81E85DBF0F650419A99992976DD5441130000008FC2F5E810F75041CDCCCC6C60DD5441666666F610F750410AD7A3805FDD54416666668611F750415C8FC2F55EDD54410AD7A35012F75041000000B05EDD54413D0AD75314F75041713D0AD75EDD5441F6285CCF16F75041E17A14AE5EDD5441713D0AD718F75041666666065EDD544148E17AC41CF75041EC51B8CE5DDD54417B14AEA71DF75041295C8F325EDD54413D0AD7131EF7504148E17AF45FDD5441E17A14BE1EF75041F6285C5F61DD5441AE47E13A1EF75041713D0A0762DD5441295C8FD21CF75041CDCCCC4C61DD5441000000801BF750417B14AE6761DD54410AD7A3F018F750417B14AED760DD5441713D0A1716F750410000009060DD5441B81E85BB13F75041EC51B89E60DD5441C3F528CC11F750410AD7A3E060DD54418FC2F5E810F75041CDCCCC6C60DD5441
+</a>
+
+<b>
+010600000001000000010300000001000000120000008F67BA7D5CF75041BFA6088739DD54413D0AD70359F75041295C8FC238DD5441713D0A274FF750411F85EB0138DD5441666666C64EF7504152B81EC53BDD5441B1B30B144FF7504123A7CD853DDD54411A79AE2C4FF7504126F0DCAE3DDD5441F38836DF50F75041A032C2FA3FDD54416DDDD1DE51F75041A3FD366042DD5441201A5C1A52F750410519E70C44DD5441E90950A453F75041EB6B659744DD5441FF7CA69E66F75041C5CD33F343DD5441D467AF9E66F75041798033F343DD5441C851B89E66F75041343333F343DD5441A06610D365F750418185C09C41DD5441232A3B0F63F75041BC3EF1BF3CDD5441D672CDE762F750418ABF049C3CDD544126F4F7845FF750413CB8D87B3ADD54418F67BA7D5CF75041BFA6088739DD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979017 - 254458
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000019000000A9588C0E80A650417B3C84FB1D03554172F5275A80A650414FFAEB2D1E0355413BBF6E8381A650414E77C1841E035541D70C383688A6504194AAA7D31E03554115AADBE99AA65041EE84F0AF1F0355419A999919A9A65041713D0A5720035541D048A33CA9A650415DF11CD31D035541C71939ABAAA650417CFF5169030355414F812345A5A65041C4A3FF010303554177CDD43BA1A65041FB0664B6020355413098C57C97A6504173CD2C1F020355411B74782A8CA65041797B8AD700035541E0BBF0C27FA65041CCAD182BFF025541389CDCCE7CA65041EDEFB0F8FE02554128296EA07BA65041CCAD182BFF025541B61003F07AA650417F29E88FFF0255413AF8973F7AA65041381826230103554119B6FF717AA65041C4A3FF0103035541A1EF36097BA650416615B63D07035541E7C509EC7BA65041B68FCDAF0A0355418972AFB17DA6504136BFEB1D0F0355416EA385127FA65041B29C674412035541D59A24DC7FA650414E9BAF5115035541A9588C0E80A65041102E327419035541A9588C0E80A650417B3C84FB1D035541
+</a>
+
+<b>
+010600000001000000010300000001000000230000006EA385127FA65041B29C674412035541F829988D7FA65041FD654F2114035541FB376DA1A9A65041DB3A0790160355417DFA94DEA9A650411142FF27120355413BE9BC29AAA65041BDF6B7BD0C035541950A0E96AAA650411172C6EF04035541C71939ABAAA650417CFF516903035541C6322280A1A650414C7263BB0203554177CDD43BA1A65041FB0664B6020355413098C57C97A6504173CD2C1F02035541350B205390A650417DA9E44F010355411B74782A8CA65041797B8AD7000355417AB8086880A650417BF65E41FF0255411C7D1FA47FA65041AEBA0A29FF025541A063D4D47EA650412CEC381BFF0255417F20A9F87CA65041144E7AFBFE025541665EABC67CA650413B7A0EFAFE025541C2EF589F7BA65041BD17B72BFF025541B61003F07AA650417F29E88FFF025541C32263D77AA65041CB2431C8FF0255413AF8973F7AA6504138182623010355417603464D7AA65041E5821BA501035541B4D1185C7AA650411A2AEE31020355410277718A7AA650419CDF2EB103035541EB13B4FC7AA6504121440CE4060355411DF9A2857BA65041EA1D932109035541F710A1D37BA65041EF08E1500A0355418E532A237CA65041D6F19E390B0355411947A7357DA65041A352D7E70D0355412EE325A47DA65041D3D813FC0E035541C187B0CC7DA650414914A55B0F035541E1639A857EA65041DCE64D02110355413AA57CBE7EA65041860DAF7F1103554131EE8BE17EA6504170FE75D4110355416EA385127FA65041B29C674412035541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>979017 - 285869
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000019000000A9588C0E80A650417B3C84FB1D03554172F5275A80A650414FFAEB2D1E0355413BBF6E8381A650414E77C1841E035541D70C383688A6504194AAA7D31E03554115AADBE99AA65041EE84F0AF1F0355419A999919A9A65041713D0A5720035541D048A33CA9A650415DF11CD31D035541C71939ABAAA650417CFF5169030355414F812345A5A65041C4A3FF010303554177CDD43BA1A65041FB0664B6020355413098C57C97A6504173CD2C1F020355411B74782A8CA65041797B8AD700035541E0BBF0C27FA65041CCAD182BFF025541389CDCCE7CA65041EDEFB0F8FE02554128296EA07BA65041CCAD182BFF025541B61003F07AA650417F29E88FFF0255413AF8973F7AA65041381826230103554119B6FF717AA65041C4A3FF0103035541A1EF36097BA650416615B63D07035541E7C509EC7BA65041B68FCDAF0A0355418972AFB17DA6504136BFEB1D0F0355416EA385127FA65041B29C674412035541D59A24DC7FA650414E9BAF5115035541A9588C0E80A65041102E327419035541A9588C0E80A650417B3C84FB1D035541
+</a>
+
+<b>
+010600000001000000010300000001000000230000006EA385127FA65041B29C674412035541F829988D7FA65041FD654F2114035541FB376DA1A9A65041DB3A0790160355417DFA94DEA9A650411142FF27120355413BE9BC29AAA65041BDF6B7BD0C035541950A0E96AAA650411172C6EF04035541C71939ABAAA650417CFF516903035541C6322280A1A650414C7263BB0203554177CDD43BA1A65041FB0664B6020355413098C57C97A6504173CD2C1F02035541350B205390A650417DA9E44F010355411B74782A8CA65041797B8AD7000355417AB8086880A650417BF65E41FF0255411C7D1FA47FA65041AEBA0A29FF025541A063D4D47EA650412CEC381BFF0255417F20A9F87CA65041144E7AFBFE025541665EABC67CA650413B7A0EFAFE025541C2EF589F7BA65041BD17B72BFF025541B61003F07AA650417F29E88FFF025541C32263D77AA65041CB2431C8FF0255413AF8973F7AA6504138182623010355417603464D7AA65041E5821BA501035541B4D1185C7AA650411A2AEE31020355410277718A7AA650419CDF2EB103035541EB13B4FC7AA6504121440CE4060355411DF9A2857BA65041EA1D932109035541F710A1D37BA65041EF08E1500A0355418E532A237CA65041D6F19E390B0355411947A7357DA65041A352D7E70D0355412EE325A47DA65041D3D813FC0E035541C187B0CC7DA650414914A55B0F035541E1639A857EA65041DCE64D02110355413AA57CBE7EA65041860DAF7F1103554131EE8BE17EA6504170FE75D4110355416EA385127FA65041B29C674412035541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>290910 - 58732
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000007000000F6285CBF16BB504185EB5198ABD25441B81E85EB19BB5041CDCCCC5CCCD254413D0AD7F324BB50413D0AD7B3CAD25441B81E85DB2ABB50415C8FC295C9D25441EC51B8DE2ABB5041EC51B82EAFD25441713D0A771FBB504133333323ADD25441F6285CBF16BB504185EB5198ABD25441
+</a>
+
+<b>
+01060000000100000001030000000100000008000000742D85DB2ABB5041E0FE4895C9D2544153A5D9DD2ABB5041FDC6F45BB6D25441B57936DE2ABB50410034AC2FAFD254413E9F60BF16BB5041B4018098ABD25441B81E85EB19BB5041CDCCCC5CCCD254413D0AD7F324BB50413D0AD7B3CAD254416225340A25BB504193959BAFCAD25441742D85DB2ABB5041E0FE4895C9D25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>879926 - 3128081
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000100000004EBC38F1FC22514164A40317FF935441C3F5284CD722514185EB5178EE9354413D0AD723DC2251419A9999F9DE935441927A2455BC225141AA5390A2D9935441E17A146EBD2251418FC2F5C8DA935441C3F5282CC3225141B81E859BE1935441CDCCCC0CC8225141C3F5280CE8935441CDCCCC4CCB22514185EB5188ED9354410AD7A370CD22514185EB5188F2935441AE47E12ACF2251417B14AEA7F8935441CDCCCCBCCF2251411F85EB210094544152B81E85CF225141666666A6039454415C8FC295D0225141C3F5281C059454411F85EB71D3225141295C8FA206945441CDCCCC4CF422514148E17A640F9454414EBC38F1FC22514164A40317FF935441
+</a>
+
+<b>
+0106000000010000000103000000010000001200000093165164D72251412C2BFC82EE935441C3F5284CD722514185EB5178EE9354413D0AD723DC2251419A9999F9DE9354418D62107CBC225141809159CBD993544182A44E7EC2225141F26FF8CCE09354410E71C522C4225141F8FF21E1E2935441DD222386C722514156B55B5AE79354418B65C5A8CA225141015A7D73EC935441DDCF3B8CCC2251413608A972F09354415636DF5BCE225141D2BD03CAF59354419429DE49CF225141C3F8303EFA93544184CE5D85CF225141C2226AA203945441AE34C8A1D122514151E812AB05945441A908FFCCD4225141F7BA12FF069454413DBD8738F4225141282441770F94544144D41CF1FC2251415C52F716FF935441A5A176FFF2225141067F14B3FA93544193165164D72251412C2BFC82EE935441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>879926 - 3511321
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000100000004EBC38F1FC22514164A40317FF935441C3F5284CD722514185EB5178EE9354413D0AD723DC2251419A9999F9DE935441927A2455BC225141AA5390A2D9935441E17A146EBD2251418FC2F5C8DA935441C3F5282CC3225141B81E859BE1935441CDCCCC0CC8225141C3F5280CE8935441CDCCCC4CCB22514185EB5188ED9354410AD7A370CD22514185EB5188F2935441AE47E12ACF2251417B14AEA7F8935441CDCCCCBCCF2251411F85EB210094544152B81E85CF225141666666A6039454415C8FC295D0225141C3F5281C059454411F85EB71D3225141295C8FA206945441CDCCCC4CF422514148E17A640F9454414EBC38F1FC22514164A40317FF935441
+</a>
+
+<b>
+0106000000010000000103000000010000001200000093165164D72251412C2BFC82EE935441C3F5284CD722514185EB5178EE9354413D0AD723DC2251419A9999F9DE9354418D62107CBC225141809159CBD993544182A44E7EC2225141F26FF8CCE09354410E71C522C4225141F8FF21E1E2935441DD222386C722514156B55B5AE79354418B65C5A8CA225141015A7D73EC935441DDCF3B8CCC2251413608A972F09354415636DF5BCE225141D2BD03CAF59354419429DE49CF225141C3F8303EFA93544184CE5D85CF225141C2226AA203945441AE34C8A1D122514151E812AB05945441A908FFCCD4225141F7BA12FF069454413DBD8738F4225141282441770F94544144D41CF1FC2251415C52F716FF935441A5A176FFF2225141067F14B3FA93544193165164D72251412C2BFC82EE935441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>906679 - 4302890
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000001000000180000000000001023CA5041AE47E1DACB37554152B81E6519CA50417B14AED7CE375541CDCCCC9C11CA50410AD7A350D337554152B81E9510CA504100000050DA37554114AE47510ACA504185EB5178E7375541CDCCCC6C05CA50410AD7A390F9375541A4703DFA05CA504152B81ED50E385541CDCCCC1C28CA5041A4703D1A18385541D7A3707D46CA50410AD7A39020385541295C8FB249CA5041E17A142E17385541CDCCCC8C4CCA5041A4703D6A1138554152B81E0550CA5041333333B30B3855416666664654CA50411F85EBF1043855413333338357CA50417B14AE37FF375541CDCCCC8C5BCA5041F6285C0FF43755419A9999C95ECA5041B81E85EBE9375541F6285C3F61CA5041333333B3E137554148E17A4467CA5041C3F5287CCF375541295C8FD269CA50411F85EB81C73755413D0AD7E357CA5041E17A14EEC53755410000005051CA5041EC51B8DEC53755410000000049CA5041EC51B83EC63755413333332336CA5041EC51B8DEC93755410000001023CA5041AE47E1DACB375541
+</a>
+
+<b>
+01060000000100000001030000000100000023000000A8E88DA25CCA504180DAEF58C637554183C0CAC950CA5041BC749330C6375541EC51B8E648CA50419A9999A1C63755419318047642CA504183C0CA69C7375541A4703D923CCA504117D9CE7FC9375541CDCCCC9C36CA50419A999959CA3755411F85EB792DCA5041DD2406B1CA375541B318E88527CA504196D72A29CB3755410000001023CA5041AE47E1DACB375541B2BB73DD1FCA504168AC4978CC375541011DE5861CCA5041AA566284CD37554170D362B619CA50413316FEB1CE375541D34D625017CA5041986E120BD03755415839B47815CA5041DBF97E6AD1375541B072681913CA50410E2DB22DD4375541F6285C1F0ECA5041759318E4E2375541F4FDD4300CCA5041C3F5289CE73755416DE7FB3909CA50417B14AEEFEF375541D366853807CA504125FDC277FA375541C520B0B206CA5041560E2D420D385541295C8FC206CA5041894160ED0D3855411D5A642B0ACA5041BE9F1AA70E385541C74B378923CA5041A4703DB2153855419D0DED5B2BCA5041AB3F810418385541FBBC210133CA50419FA7AD1B1A38554183C0CAF143CA5041F6285C071E385541AAF1D29D45CA5041A8C64B6F1E385541B6F3FD944ACA5041E3A59B2413385541F4FDD46055CA5041FED478F9013855415167B93D5BCA5041FFE5793FF3375541D8F20C6D60CA5041D3A2A94FE2375541E2C5976D66CA5041B25D1943D0375541A245B62B69CA5041A8C64B7FC737554165AE8F1A67CA5041D79FB144C7375541A8E88DA25CCA504180DAEF58C6375541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>644083 - 3133413
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000280000008FC2F5D835F650411F85EB5115C1544148E17AF435F650415C8FC27516C15441FD042DD936F6504191A77EAE18C154417240B4103AF65041D7737EDE1AC15441BCC14AF73AF650416A76ABAB1CC1544199450EAB3DF6504180D323D41DC15441713D0A273EF650415C8FC2F51BC15441333333A340F65041295C8FB21BC154419A99992944F650419A99993921C15441AE47E13A4BF650413333331322C15441F6285C7F4BF650419A9999E91FC1544152B81EB54BF65041A4703DEA1EC15441713D0AF76AF650413D0AD7F320C154411F85EB416DF650417B14AEA721C15441B88DFA1B70F65041F059145522C154413407365878F65041F059145522C154414A64AE8079F650414CAF05161EC1544154FA54566FF6504194FF707F09C1544158AFEB0C6EF6504198B4073608C15441F51B46476DF650410DF08E6D0BC1544179CE83735DF650414114AD2B0BC15441FB28CFCE5CF650410CC4150513C15441577EC08F58F6504126D624E412C15441EC35841359F650418A9543120CC15441CDE5C02F54F65041D9CB70AF0BC15441352EFDAB53F650410CC4150513C15441F061FD7B51F6504126D624E412C154416D07B22052F65041D9CB70AF0BC15441E36EB2C04DF6504127029E4C0BC154417DDB0CFB4CF650415AFA42A212C1544151211CAA4AF650410CC4150513C154413A0F0DCB4AF6504127029E4C0BC15441C6D3859347F6504127029E4C0BC154412E1CC20F47F650410CC4150513C1544168AA0D3B44F650415AFA42A212C154411A74E09D44F6504127029E4C0BC154412305D55E1DF650414114AD2B0BC154410000000031F65041333333C312C15441C3F528BC35F650410AD7A3B013C154418FC2F5D835F650411F85EB5115C15441
+</a>
+
+<b>
+010600000001000000010300000001000000280000008FC2F5D835F650411F85EB5115C1544148E17AF435F650415C8FC27516C15441FC042DD936F6504190A77EAE18C154416F40B4103AF65041D9737EDE1AC15441BAC14AF73AF650416676ABAB1CC154419E450EAB3DF6504184D323D41DC15441713D0A273EF650415C8FC2F51BC15441333333A340F65041295C8FB21BC154419A99992944F650419A99993921C15441AE47E13A4BF650413333331322C15441F6285C7F4BF650419A9999E91FC1544152B81EB54BF65041A4703DEA1EC15441713D0AF76AF650413D0AD7F320C154411F85EB416DF650417B14AEA721C15441BB8DFA1B70F65041F459145522C154413907365878F65041F459145522C154414C64AE8079F650414CAF05161EC1544158FA54566FF6504192FF707F09C154415BAFEB0C6EF6504195B4073608C15441F91B46476DF6504108F08E6D0BC1544176CE83735DF650414014AD2B0BC15441FD28CFCE5CF650410DC4150513C15441557EC08F58F6504123D624E412C15441F035841359F650418C9543120CC15441CEE5C02F54F65041DBCB70AF0BC15441342EFDAB53F650410DC4150513C15441EB61FD7B51F6504123D624E412C154416F07B22052F65041DBCB70AF0BC15441E86EB2C04DF6504129029E4C0BC154417BDB0CFB4CF650415BFA42A212C1544154211CAA4AF650410DC4150513C154413D0F0DCB4AF6504129029E4C0BC15441CAD3859347F6504129029E4C0BC154412F1CC20F47F650410DC4150513C154416DAA0D3B44F650415BFA42A212C154411F74E09D44F6504129029E4C0BC154412005D55E1DF650414014AD2B0BC154410000000031F65041333333C312C15441C3F528BC35F650410AD7A3B013C154418FC2F5D835F650411F85EB5115C15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>644083 - 3513135
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000280000008FC2F5D835F650411F85EB5115C1544148E17AF435F650415C8FC27516C15441FD042DD936F6504191A77EAE18C154417240B4103AF65041D7737EDE1AC15441BCC14AF73AF650416A76ABAB1CC1544199450EAB3DF6504180D323D41DC15441713D0A273EF650415C8FC2F51BC15441333333A340F65041295C8FB21BC154419A99992944F650419A99993921C15441AE47E13A4BF650413333331322C15441F6285C7F4BF650419A9999E91FC1544152B81EB54BF65041A4703DEA1EC15441713D0AF76AF650413D0AD7F320C154411F85EB416DF650417B14AEA721C15441B88DFA1B70F65041F059145522C154413407365878F65041F059145522C154414A64AE8079F650414CAF05161EC1544154FA54566FF6504194FF707F09C1544158AFEB0C6EF6504198B4073608C15441F51B46476DF650410DF08E6D0BC1544179CE83735DF650414114AD2B0BC15441FB28CFCE5CF650410CC4150513C15441577EC08F58F6504126D624E412C15441EC35841359F650418A9543120CC15441CDE5C02F54F65041D9CB70AF0BC15441352EFDAB53F650410CC4150513C15441F061FD7B51F6504126D624E412C154416D07B22052F65041D9CB70AF0BC15441E36EB2C04DF6504127029E4C0BC154417DDB0CFB4CF650415AFA42A212C1544151211CAA4AF650410CC4150513C154413A0F0DCB4AF6504127029E4C0BC15441C6D3859347F6504127029E4C0BC154412E1CC20F47F650410CC4150513C1544168AA0D3B44F650415AFA42A212C154411A74E09D44F6504127029E4C0BC154412305D55E1DF650414114AD2B0BC154410000000031F65041333333C312C15441C3F528BC35F650410AD7A3B013C154418FC2F5D835F650411F85EB5115C15441
+</a>
+
+<b>
+010600000001000000010300000001000000280000008FC2F5D835F650411F85EB5115C1544148E17AF435F650415C8FC27516C15441FC042DD936F6504190A77EAE18C154416F40B4103AF65041D9737EDE1AC15441BAC14AF73AF650416676ABAB1CC154419E450EAB3DF6504184D323D41DC15441713D0A273EF650415C8FC2F51BC15441333333A340F65041295C8FB21BC154419A99992944F650419A99993921C15441AE47E13A4BF650413333331322C15441F6285C7F4BF650419A9999E91FC1544152B81EB54BF65041A4703DEA1EC15441713D0AF76AF650413D0AD7F320C154411F85EB416DF650417B14AEA721C15441BB8DFA1B70F65041F459145522C154413907365878F65041F459145522C154414C64AE8079F650414CAF05161EC1544158FA54566FF6504192FF707F09C154415BAFEB0C6EF6504195B4073608C15441F91B46476DF6504108F08E6D0BC1544176CE83735DF650414014AD2B0BC15441FD28CFCE5CF650410DC4150513C15441557EC08F58F6504123D624E412C15441F035841359F650418C9543120CC15441CEE5C02F54F65041DBCB70AF0BC15441342EFDAB53F650410DC4150513C15441EB61FD7B51F6504123D624E412C154416F07B22052F65041DBCB70AF0BC15441E86EB2C04DF6504129029E4C0BC154417BDB0CFB4CF650415BFA42A212C1544154211CAA4AF650410DC4150513C154413D0F0DCB4AF6504129029E4C0BC15441CAD3859347F6504129029E4C0BC154412F1CC20F47F650410DC4150513C154416DAA0D3B44F650415BFA42A212C154411F74E09D44F6504129029E4C0BC154412005D55E1DF650414014AD2B0BC154410000000031F65041333333C312C15441C3F528BC35F650410AD7A3B013C154418FC2F5D835F650411F85EB5115C15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>876984 - 121241
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000013000000C6D6E97DE0D85041DD485DF0D0CA544157C77278E0D85041F6775F0CD1CA544107030E69E0D850413A6F4CA2D3CA5441FF4C0140E0D8504189212979DCCA54417A70AF4CD2D85041F22C4608DCCA5441699F7AE8C3D85041D80A208DDBCA5441CB25CD78BCD850418C352840DBCA54413C1A5483A1D8504190EEA0F2D9CA5441CB332079A1D8504190EEA0F2D9CA54418FC2F578A1D8504152B81EF5D9CA5441EC51B81EA1D85041CDCCCC3CDFCA5441D7A3709DA8D850417B14AE27DFCA5441AE47E19AB0D850419A999969DFCA5441CDCCCCDCBBD8504133333353E0CA5441AE47E1AABBD85041B81E85DBE1CA54413D0AD753D7D850417B14AE87E1CA54418FC2F5E8E2D85041B81E85EBE2CA54413D0AD773E1D85041000000C0DCCA5441C6D6E97DE0D85041DD485DF0D0CA5441
+</a>
+
+<b>
+0106000000010000000103000000010000002F0000009A7C9467E0D85041C58097F3D3CA5441FC4C0140E0D850418C212979DCCA5441C8ED763FE0D85041D6C12479DCCA54416B08733FE0D85041372E0C7ADCCA54418F45A819DAD85041D0946547DCCA54417B70AF4CD2D85041F62C4608DCCA54411C012636C6D850419EE7D5A0DBCA54416B46E941C3D8504194780A88DBCA5441F6FB72B6C1D850416BCE6676DBCA5441CE25CD78BCD8504189352840DBCA5441E3278259ABD850418B37536CDACA54415F575B79A1D85041F449B2F4D9CA54416429C871A1D85041E198A360DACA544102614866A1D8504165B4E10CDBCA5441B8D43B63A1D8504137518D3ADBCA5441A8327124A1D85041F5C5D63ADFCA54414F72C99AA5D85041D2AF2930DFCA5441D7A3709DA8D850417B14AE27DFCA5441EF97A8E5A8D85041E2E7012ADFCA5441C34BACFCA8D85041FF24DB29DFCA54415B8861B6A9D8504158EEBB30DFCA544108C925CDACD85041C300384ADFCA5441FD81F4A1B0D8504150D84B65DFCA5441CAD027A7B6D85041830FABE4DFCA5441DB315660BBD85041AD821C49E0CA5441CDCCCCDCBBD8504133333353E0CA5441D3533DBCBBD850412B771753E1CA54413CB19CADBBD85041B21BAAD9E1CA54413551973BC1D8504199B0A6CAE1CA54413D0AD753D7D850417B14AE87E1CA54414C009D60D7D85041E6803689E1CA54419051F770D7D8504119DFFE88E1CA5441ED5B3347DAD85041806D54E2E1CA54412809CD98E0D8504129AF74A4E2CA544142B51C2BE2D85041F992BCD4E2CA5441AB1B37E5E2D85041D21212EBE2CA5441E4141B84E2D850413A869340E1CA5441C34CF67DE1D85041C184D9EADCCA5441B1592471E1D8504103B2FABDDCCA54410E7FD12DE1D8504121BD1763D9CA5441EEC669D9E0D85041C5995755D5CA54413DF8A27EE0D85041857141F9D0CA54417F4E6278E0D8504194C3230FD1CA5441D2D8C570E0D8504122876B56D2CA54411EB1EB6AE0D850417B311052D3CA54416F92B06AE0D850418058FE5BD3CA54419A7C9467E0D85041C58097F3D3CA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>876984 - 321317
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000013000000C6D6E97DE0D85041DD485DF0D0CA544157C77278E0D85041F6775F0CD1CA544107030E69E0D850413A6F4CA2D3CA5441FF4C0140E0D8504189212979DCCA54417A70AF4CD2D85041F22C4608DCCA5441699F7AE8C3D85041D80A208DDBCA5441CB25CD78BCD850418C352840DBCA54413C1A5483A1D8504190EEA0F2D9CA5441CB332079A1D8504190EEA0F2D9CA54418FC2F578A1D8504152B81EF5D9CA5441EC51B81EA1D85041CDCCCC3CDFCA5441D7A3709DA8D850417B14AE27DFCA5441AE47E19AB0D850419A999969DFCA5441CDCCCCDCBBD8504133333353E0CA5441AE47E1AABBD85041B81E85DBE1CA54413D0AD753D7D850417B14AE87E1CA54418FC2F5E8E2D85041B81E85EBE2CA54413D0AD773E1D85041000000C0DCCA5441C6D6E97DE0D85041DD485DF0D0CA5441
+</a>
+
+<b>
+0106000000010000000103000000010000002F0000009A7C9467E0D85041C58097F3D3CA5441FC4C0140E0D850418C212979DCCA5441C8ED763FE0D85041D6C12479DCCA54416B08733FE0D85041372E0C7ADCCA54418F45A819DAD85041D0946547DCCA54417B70AF4CD2D85041F62C4608DCCA54411C012636C6D850419EE7D5A0DBCA54416B46E941C3D8504194780A88DBCA5441F6FB72B6C1D850416BCE6676DBCA5441CE25CD78BCD8504189352840DBCA5441E3278259ABD850418B37536CDACA54415F575B79A1D85041F449B2F4D9CA54416429C871A1D85041E198A360DACA544102614866A1D8504165B4E10CDBCA5441B8D43B63A1D8504137518D3ADBCA5441A8327124A1D85041F5C5D63ADFCA54414F72C99AA5D85041D2AF2930DFCA5441D7A3709DA8D850417B14AE27DFCA5441EF97A8E5A8D85041E2E7012ADFCA5441C34BACFCA8D85041FF24DB29DFCA54415B8861B6A9D8504158EEBB30DFCA544108C925CDACD85041C300384ADFCA5441FD81F4A1B0D8504150D84B65DFCA5441CAD027A7B6D85041830FABE4DFCA5441DB315660BBD85041AD821C49E0CA5441CDCCCCDCBBD8504133333353E0CA5441D3533DBCBBD850412B771753E1CA54413CB19CADBBD85041B21BAAD9E1CA54413551973BC1D8504199B0A6CAE1CA54413D0AD753D7D850417B14AE87E1CA54414C009D60D7D85041E6803689E1CA54419051F770D7D8504119DFFE88E1CA5441ED5B3347DAD85041806D54E2E1CA54412809CD98E0D8504129AF74A4E2CA544142B51C2BE2D85041F992BCD4E2CA5441AB1B37E5E2D85041D21212EBE2CA5441E4141B84E2D850413A869340E1CA5441C34CF67DE1D85041C184D9EADCCA5441B1592471E1D8504103B2FABDDCCA54410E7FD12DE1D8504121BD1763D9CA5441EEC669D9E0D85041C5995755D5CA54413DF8A27EE0D85041857141F9D0CA54417F4E6278E0D8504194C3230FD1CA5441D2D8C570E0D8504122876B56D2CA54411EB1EB6AE0D850417B311052D3CA54416F92B06AE0D850418058FE5BD3CA54419A7C9467E0D85041C58097F3D3CA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>799125 - 1108772
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000017000000D7A370CD54FB5041000000A0AD895441B438B65854FB5041FF3FC013B189544194AF2D0554FB5041561B43D1B2895441CCB5440154FB5041BB3637EBB28954413E8A6FB07BFB5041CB011C26B3895441295C8F227CFB504114AE4731B18954411F85EB117BFB5041AE47E13AB0895441666666A679FB5041000000F0AF895441AE47E11A78FB50417B14AE87AF895441A4703D7A76FB50419A999909AF8954413333333375FB504133333393AE8954415C8FC2B570FB5041C3F5289CAD89544152B81EA56EFB50415C8FC215AD8954410AD7A3906DFB50413D0AD7B3AC8954413D0AD7D36CFB504114AE4771AC895441D7A370AD6AFB504152B81EB5AB8954413D0AD7A366FB50415C8FC295AA8954410AD7A32063FB5041C3F5281CA98954413D0AD7835EFB5041CDCCCCDCA78954411F85EBE15AFB5041EC51B8EEA6895441D808D79C55FB50412D03655FA68954415588A82C55FB5041F6B4D5D8A9895441D7A370CD54FB5041000000A0AD895441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000FA538F6F53FB5041D20260B2B6895441BFACAA4F7AFB5041BBE6CDC3B6895441317118E17BFB50417424381BAE895441255F467E76FB5041F7AEB5ECAB895441FDD54F3E74FB504140EA2C3EAB89544128776A6168FB5041DD11307EAA895441B277A09B66FB50418925A48FAA8954411B23313B64FB5041E9CBCF92A9895441E603C61C63FB5041A9C59829A98954417025B2EC5BFB5041973F0533A78954411F85EBE15AFB5041EC51B8EEA6895441DB08D79C55FB50412F03655FA68954415588A82C55FB5041F3B4D5D8A9895441D7A370CD54FB5041000000A0AD895441B738B65854FB50410140C013B189544191AF2D0554FB5041531B43D1B289544188F4636653FB5041599F3796B6895441BFE27E7353FB504112374098B6895441FA538F6F53FB5041D20260B2B6895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>799125 - 3561787
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000017000000D7A370CD54FB5041000000A0AD895441B438B65854FB5041FF3FC013B189544194AF2D0554FB5041561B43D1B2895441CCB5440154FB5041BB3637EBB28954413E8A6FB07BFB5041CB011C26B3895441295C8F227CFB504114AE4731B18954411F85EB117BFB5041AE47E13AB0895441666666A679FB5041000000F0AF895441AE47E11A78FB50417B14AE87AF895441A4703D7A76FB50419A999909AF8954413333333375FB504133333393AE8954415C8FC2B570FB5041C3F5289CAD89544152B81EA56EFB50415C8FC215AD8954410AD7A3906DFB50413D0AD7B3AC8954413D0AD7D36CFB504114AE4771AC895441D7A370AD6AFB504152B81EB5AB8954413D0AD7A366FB50415C8FC295AA8954410AD7A32063FB5041C3F5281CA98954413D0AD7835EFB5041CDCCCCDCA78954411F85EBE15AFB5041EC51B8EEA6895441D808D79C55FB50412D03655FA68954415588A82C55FB5041F6B4D5D8A9895441D7A370CD54FB5041000000A0AD895441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000FA538F6F53FB5041D20260B2B6895441BFACAA4F7AFB5041BBE6CDC3B6895441317118E17BFB50417424381BAE895441255F467E76FB5041F7AEB5ECAB895441FDD54F3E74FB504140EA2C3EAB89544128776A6168FB5041DD11307EAA895441B277A09B66FB50418925A48FAA8954411B23313B64FB5041E9CBCF92A9895441E603C61C63FB5041A9C59829A98954417025B2EC5BFB5041973F0533A78954411F85EBE15AFB5041EC51B8EEA6895441DB08D79C55FB50412F03655FA68954415588A82C55FB5041F3B4D5D8A9895441D7A370CD54FB5041000000A0AD895441B738B65854FB50410140C013B189544191AF2D0554FB5041531B43D1B289544188F4636653FB5041599F3796B6895441BFE27E7353FB504112374098B6895441FA538F6F53FB5041D20260B2B6895441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>879878 - 1032260
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000000B0000007B14AE0782105141A4703D0A3EA554416A5E1E43AB1051412FD5592E46A554413F66D443AB105141E03CBE2A46A55441EE5F1355BB105141C23BFA5649A5544100A78D67BA105141540C68D006A55441FBE931B7B2105141F55E267605A5544148EA378F97105141EBBE8AD801A554417B14AE078110514148E17AD4FEA45441E433215181105141308C57E610A55441091000AA81105141074232D326A554417B14AE0782105141A4703D0A3EA55441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000A50FBEC29F1051416A61FDE343A55441655E1E43AB10514133D5592E46A554413E66D443AB105141DC3CBE2A46A554417B14AEE7D110514185EB51C84DA55441E17A148ED5105141EC51B87E4DA5544185EB5178D410514152B81E9509A5544152B81E95CC1051417B14AEE708A5544113297ECCB81051415742764506A55441F006CBE2A31051418CFFC27C03A55441C92111459E105141C80C5EBD02A55441097299FB9E10514103BF23982BA554412372605C9F105141FA86116038A55441A50FBEC29F1051416A61FDE343A55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>879878 - 3465668
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000000B0000007B14AE0782105141A4703D0A3EA554416A5E1E43AB1051412FD5592E46A554413F66D443AB105141E03CBE2A46A55441EE5F1355BB105141C23BFA5649A5544100A78D67BA105141540C68D006A55441FBE931B7B2105141F55E267605A5544148EA378F97105141EBBE8AD801A554417B14AE078110514148E17AD4FEA45441E433215181105141308C57E610A55441091000AA81105141074232D326A554417B14AE0782105141A4703D0A3EA55441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000A50FBEC29F1051416A61FDE343A55441655E1E43AB10514133D5592E46A554413E66D443AB105141DC3CBE2A46A554417B14AEE7D110514185EB51C84DA55441E17A148ED5105141EC51B87E4DA5544185EB5178D410514152B81E9509A5544152B81E95CC1051417B14AEE708A5544113297ECCB81051415742764506A55441F006CBE2A31051418CFFC27C03A55441C92111459E105141C80C5EBD02A55441097299FB9E10514103BF23982BA554412372605C9F105141FA86116038A55441A50FBEC29F1051416A61FDE343A55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>890586 - 2950809
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000002000000010300000001000000080000003D0AD72311005141A4703D4AA3E15441666666B61000514185EB5188A6E15441295C8F6220005141295C8F12ABE1544100000030340051410AD7A3D0B0E15441E17A143E350051417B14AE47ADE15441333333332A00514114AE4751AAE15441C3F528EC1A005141E17A141EA6E154413D0AD72311005141A4703D4AA3E154410103000000010000000F00000014AE470136005141D7A370BDACE1544152B81EE5330051410AD7A3B0B3E154410AD7A3B031005141000000D0B9E15441B81E85DB2F005141D7A3705DBDE1544152B81E053100514152B81E75BEE1544114AE478134005141333333E3B9E15441A4703D2A3B005141EC51B89EB4E15441295C8F223E00514185EB51F8B2E15441B81E858B45005141295C8F72B0E15441E17A14FE4900514185EB5188AFE15441B81E851B4B005141F6285C8FABE15441AE47E1CA46005141333333B3AAE15441C3F5286C3C00514133333313A7E15441D7A370ED3700514114AE47D1A5E1544114AE470136005141D7A370BDACE15441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000900C532C11005141BC98F54DAAE15441146EA8891F005141BE37F049AEE15441EE720AB82C00514179C2230CB2E15441000000503200514148E17AA4B3E1544152B81E1533005141CDCCCCDCB3E15441BB82B121340051417CC27DCCB0E15441AE47E14A33005141E17A148EB0E154416EF930F229005141806358D8ADE154418BFFE74A1100514186D556B3A6E15441900C532C11005141BC98F54DAAE15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>890586 - 3590973
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000002000000010300000001000000080000003D0AD72311005141A4703D4AA3E15441666666B61000514185EB5188A6E15441295C8F6220005141295C8F12ABE1544100000030340051410AD7A3D0B0E15441E17A143E350051417B14AE47ADE15441333333332A00514114AE4751AAE15441C3F528EC1A005141E17A141EA6E154413D0AD72311005141A4703D4AA3E154410103000000010000000F00000014AE470136005141D7A370BDACE1544152B81EE5330051410AD7A3B0B3E154410AD7A3B031005141000000D0B9E15441B81E85DB2F005141D7A3705DBDE1544152B81E053100514152B81E75BEE1544114AE478134005141333333E3B9E15441A4703D2A3B005141EC51B89EB4E15441295C8F223E00514185EB51F8B2E15441B81E858B45005141295C8F72B0E15441E17A14FE4900514185EB5188AFE15441B81E851B4B005141F6285C8FABE15441AE47E1CA46005141333333B3AAE15441C3F5286C3C00514133333313A7E15441D7A370ED3700514114AE47D1A5E1544114AE470136005141D7A370BDACE15441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000900C532C11005141BC98F54DAAE15441146EA8891F005141BE37F049AEE15441EE720AB82C00514179C2230CB2E15441000000503200514148E17AA4B3E1544152B81E1533005141CDCCCCDCB3E15441BB82B121340051417CC27DCCB0E15441AE47E14A33005141E17A148EB0E154416EF930F229005141806358D8ADE154418BFFE74A1100514186D556B3A6E15441900C532C11005141BC98F54DAAE15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>290929 - 176832
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000000F0000008FC2F558FDB850417B14AE2726D35441D7A370DD0CB95041EC51B86E02D354415C8FC2B501B9504166666696FDD25441F6285C7FFBB85041AE47E18AFAD25441EC51B8FEF5B8504100000000F7D25441F6285CAFF1B85041E17A145EF3D2544148E17A44F0B850411F85EBA1F1D2544114AE47C1C5B85041E17A142EEED25441F6285C3FC2B850419A9999C9FDD254418FC2F5B8C0B85041B81E850B08D3544185EB5138C2B8504152B81EF50AD35441EC51B85EC8B8504152B81E350ED35441E17A14DEDAB850410AD7A30018D3544114AE4701E5B850410AD7A3F01BD354418FC2F558FDB850417B14AE2726D35441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000D3B2F902C1B85041CAEFAC1906D35441A031F6B8C0B85041741F840B08D3544199AA789DC1B85041211FF4C709D3544185EB5138C2B8504152B81EF50AD35441EC51B85EC8B8504152B81E350ED35441E17A14DEDAB850410AD7A30018D3544114AE4701E5B850410AD7A3F01BD354417B52DFADEEB85041818CE8FF1FD3544179A2F558FDB850412CE2AC2726D35441860B6FDD0CB9504194A0B76E02D354415C8FC2B501B9504166666696FDD25441060004D5FEB85041109F4A2DFCD25441F6EC5A7FFBB850417F28E28AFAD25441532FF9E0F7B8504103517936F8D25441EC51B8FEF5B8504100000000F7D25441F6285CAFF1B85041E17A145EF3D2544148E17A44F0B850411F85EBA1F1D2544114AE47C1C5B85041E17A142EEED25441F6285C3FC2B850419A9999C9FDD25441D3B2F902C1B85041CAEFAC1906D35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>290929 - 364371
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000000F0000008FC2F558FDB850417B14AE2726D35441D7A370DD0CB95041EC51B86E02D354415C8FC2B501B9504166666696FDD25441F6285C7FFBB85041AE47E18AFAD25441EC51B8FEF5B8504100000000F7D25441F6285CAFF1B85041E17A145EF3D2544148E17A44F0B850411F85EBA1F1D2544114AE47C1C5B85041E17A142EEED25441F6285C3FC2B850419A9999C9FDD254418FC2F5B8C0B85041B81E850B08D3544185EB5138C2B8504152B81EF50AD35441EC51B85EC8B8504152B81E350ED35441E17A14DEDAB850410AD7A30018D3544114AE4701E5B850410AD7A3F01BD354418FC2F558FDB850417B14AE2726D35441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000D3B2F902C1B85041CAEFAC1906D35441A031F6B8C0B85041741F840B08D3544199AA789DC1B85041211FF4C709D3544185EB5138C2B8504152B81EF50AD35441EC51B85EC8B8504152B81E350ED35441E17A14DEDAB850410AD7A30018D3544114AE4701E5B850410AD7A3F01BD354417B52DFADEEB85041818CE8FF1FD3544179A2F558FDB850412CE2AC2726D35441860B6FDD0CB9504194A0B76E02D354415C8FC2B501B9504166666696FDD25441060004D5FEB85041109F4A2DFCD25441F6EC5A7FFBB850417F28E28AFAD25441532FF9E0F7B8504103517936F8D25441EC51B8FEF5B8504100000000F7D25441F6285CAFF1B85041E17A145EF3D2544148E17A44F0B850411F85EBA1F1D2544114AE47C1C5B85041E17A142EEED25441F6285C3FC2B850419A9999C9FDD25441D3B2F902C1B85041CAEFAC1906D35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>244199 - 630287
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000031000000713D0A37C8015141C3F528BC01125541333333E3C6015141A4703DDAFC115541B81E85CBC5015141E17A14FEF6115541D7A3706DC40151410AD7A300F0115541EC51B8AED8015141F6285C4FEE115541E17A140EDE015141713D0AD7ED11554152B81EC5E101514185EB5198ED115541713D0A47E6015141295C8F52ED1155415C8FC225E8015141D7A3704DED11554166666646E801514114AE47B1EA115541A4703D8AE8015141AE47E14AE5115541D7A3706DDB015141295C8F82E41155419A999999D70151410AD7A3F0E411554148E17A14D20151417B14AE07E51155419A9999E9C8015141D7A3702DE51155419A999949C101514152B81E45E6115541D7A3705DB70151413D0AD783E61155417B14AE17B6015141E17A142EE6115541A4703D6AA401514114AE4761E811554133333373A4015141F6285C7FE81155417B14AE57A5015141EC51B87EEB115541713D0A87A6015141E17A14EEEF115541713D0AC7A7015141D7A370FDF4115541713D0AE7A8015141CDCCCC3CFA115541713D0AE7A90151413D0AD773FE11554166666616AB015141B81E85AB02125541CDCCCC6CAC015141F6285C4F06125541666666C6AD015141A4703D8A091255410AD7A390AE015141AE47E10A0B125541A4703D7AB70151418FC2F5C80C12554114AE47F1B40151417B14AEB709125541EC51B8DEB3015141713D0AA707125541CDCCCC5CB2015141D7A3705D04125541333333E3B0015141295C8F82FF115541B81E854BAF01514166666626F8115541B81E85FBAD015141295C8F72F1115541F6285C9FBE01514166666616F0115541B81E852BC0015141E17A144EF7115541713D0A27C1015141666666E6FB115541333333F3C1015141E17A14FEFE115541713D0AD7C2015141A4703DAA0112554133333333C4015141E17A149E04125541B81E856BC5015141666666F606125541713D0A27C7015141295C8F8208125541F6285CBFC8015141295C8F420912554133333333CD015141A4703D4A0A125541EC51B8EECC01514152B81EE509125541CDCCCC3CCA015141713D0A4706125541713D0A37C8015141C3F528BC01125541
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000A95E5CCACC01514139A750B40912554192A78B22CD0151414806F2DF0912554100000030D00151411F85EB91091255418FC2F528D2015141D7A370DD08125541AE47E10AD00151416666663604125541713D0A57CD01514114AE4751FB115541666666F6CA01514152B81E75EF115541D7A3706DC40151410AD7A300F0115541848325ACC401514107622A41F111554158E6E729C5015141DB8BFCC3F31155417FCC9D81C50151418D0A5284F511554107E602CBC5015141CDD97AFBF61155415631F523C60151419E4E72D8F8115541A3F55E64C6015141AFD9F231FA115541D80757ACC601514171B3FAB3FB115541B3E199F8C60151416BD8F328FD11554192B97D65C70151417B4072B9FE1155415B6BA9BAC70151414280B3F2FF1155419FE97524C80151415659D37701125541BF3B458CC8015141A20A967B021255410C5D549FC901514186345DE504125541686FBE0CCA0151416E571BDB0512554111309CEDCA015141824F5F3407125541EC2D069FCB015141F1E7832208125541A8116230CC0151413472A1E508125541A95E5CCACC01514139A750B409125541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>245203 - 36238
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001D00000014AE47B113FF504114AE47811D105541333333F312FF5041E17A14FE1D1055413D0AD76312FF5041666666761F10554185EB510819FF5041AE47E10A25105541A4703DAA22FF50411F85EBF12C105541F6285C1F2DFF5041AE47E18A3510554148E17AF43AFF504152B81E5532105541713D0AF73EFF5041000000D031105541C3F5280C45FF504185EB513832105541D7A3704D45FF5041B81E854B30105541D7A3705D45FF50411F85EBD12F1055419A9999593DFF5041333333632E1055416666664636FF504148E17A842C105541AE47E10A31FF5041B81E856B2A105541B81E856B2DFF5041EC51B8CE28105541713D0A5726FF50418FC2F55824105541EC51B87E1EFF5041CDCCCC1C1E105541295C8F2217FF50418FC2F558161055411F85EBE117FF5041D7A370BD19105541666666461AFF5041EC51B82E1D105541EC51B82E26FF5041CDCCCC9C25105541CDCCCC6C26FF5041666666B6271055417B14AEF71FFF5041713D0A0723105541B81E85BB1AFF50418FC2F5681F105541C3F5280C18FF504148E17AA41D1055413333335316FF50411F85EB211C105541295C8FB214FF504114AE47511C1055418FC2F51814FF5041333333131D10554114AE47B113FF504114AE47811D105541
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000001F85EBE117FF5041D7A370BD191055413333335316FF50411F85EB211C105541D3AAD70A15FF50419CAC3E471C105541E952514919FF5041609AE74C1E10554128CDDEAA1BFF504149385B0E20105541867AE6F71DFF5041D39463A521105541B7C2874C20FF5041DB99994423105541A16D6E4326FF5041ABF262982710554164B67E6026FF5041F1A542B525105541687B79201EFF5041D88BD1E81F105541502DB1651AFF504131209F171D1055411F85EBE117FF5041D7A370BD19105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>245203 - 60219
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001D00000014AE47B113FF504114AE47811D105541333333F312FF5041E17A14FE1D1055413D0AD76312FF5041666666761F10554185EB510819FF5041AE47E10A25105541A4703DAA22FF50411F85EBF12C105541F6285C1F2DFF5041AE47E18A3510554148E17AF43AFF504152B81E5532105541713D0AF73EFF5041000000D031105541C3F5280C45FF504185EB513832105541D7A3704D45FF5041B81E854B30105541D7A3705D45FF50411F85EBD12F1055419A9999593DFF5041333333632E1055416666664636FF504148E17A842C105541AE47E10A31FF5041B81E856B2A105541B81E856B2DFF5041EC51B8CE28105541713D0A5726FF50418FC2F55824105541EC51B87E1EFF5041CDCCCC1C1E105541295C8F2217FF50418FC2F558161055411F85EBE117FF5041D7A370BD19105541666666461AFF5041EC51B82E1D105541EC51B82E26FF5041CDCCCC9C25105541CDCCCC6C26FF5041666666B6271055417B14AEF71FFF5041713D0A0723105541B81E85BB1AFF50418FC2F5681F105541C3F5280C18FF504148E17AA41D1055413333335316FF50411F85EB211C105541295C8FB214FF504114AE47511C1055418FC2F51814FF5041333333131D10554114AE47B113FF504114AE47811D105541
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000001F85EBE117FF5041D7A370BD191055413333335316FF50411F85EB211C105541D3AAD70A15FF50419CAC3E471C105541E952514919FF5041609AE74C1E10554128CDDEAA1BFF504149385B0E20105541867AE6F71DFF5041D39463A521105541B7C2874C20FF5041DB99994423105541A16D6E4326FF5041ABF262982710554164B67E6026FF5041F1A542B525105541687B79201EFF5041D88BD1E81F105541502DB1651AFF504131209F171D1055411F85EBE117FF5041D7A370BD19105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>245225 - 1407881
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000016000000666666F6EC015141666666268C11554166666686E90151416666662688115541666666F6E6015141666666668511554166666676E2015141666666A67E115541666666E6DD0151416666662677115541666666B6D8015141666666A66E11554166666696D5015141666666D66811554166666636D30151416666660663115541666666C6CF015141666666466311554166666626CD015141666666666311554166666626CC015141666666D66311554166666666C60151416666660667115541666666D6C8015141666666566B115541666666A6CF015141666666E676115541666666A6D6015141666666A68311554166666626DA015141666666768911554166666656DD015141666666568E115541666666C6E4015141666666D69711554166666686E9015141666666269D115541666666F6EA015141666666C694115541666666E6EC015141666666568D115541666666F6EC015141666666268C115541
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000F039AD21D3015141163BE80763115541666666C6CF015141666666466311554166666626CD015141666666666311554166666626CC015141666666D66311554166666666C60151416666660667115541666666D6C8015141666666566B115541666666A6CF015141666666E676115541666666A6D6015141666666A68311554166666626DA015141666666768911554166666656DD015141666666568E115541666666C6E4015141666666D69711554166666686E9015141666666269D115541666666F6EA015141666666C694115541666666E6EC015141666666568D115541666666F6EC015141666666268C115541424C2045EA01514182FD5504891155417A85CBFDE9015141D4F801C688115541D482DF1CE9015141D6CF26B587115541666666F6E6015141666666668511554166666676E2015141666666A67E1155412ABB5749E1015141B6E382B77C1155413ED76DA6DE015141758376A4781155410DB74FC4DB015141DEAC9AA773115541666666B6D8015141666666A66E11554166666696D5015141666666D668115541B50680FCD3015141CA5339EB6411554181EDBB1DD30151417E72900863115541F039AD21D3015141163BE80763115541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>245225 - 3403502
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000016000000666666F6EC015141666666268C11554166666686E90151416666662688115541666666F6E6015141666666668511554166666676E2015141666666A67E115541666666E6DD0151416666662677115541666666B6D8015141666666A66E11554166666696D5015141666666D66811554166666636D30151416666660663115541666666C6CF015141666666466311554166666626CD015141666666666311554166666626CC015141666666D66311554166666666C60151416666660667115541666666D6C8015141666666566B115541666666A6CF015141666666E676115541666666A6D6015141666666A68311554166666626DA015141666666768911554166666656DD015141666666568E115541666666C6E4015141666666D69711554166666686E9015141666666269D115541666666F6EA015141666666C694115541666666E6EC015141666666568D115541666666F6EC015141666666268C115541
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000F039AD21D3015141163BE80763115541666666C6CF015141666666466311554166666626CD015141666666666311554166666626CC015141666666D66311554166666666C60151416666660667115541666666D6C8015141666666566B115541666666A6CF015141666666E676115541666666A6D6015141666666A68311554166666626DA015141666666768911554166666656DD015141666666568E115541666666C6E4015141666666D69711554166666686E9015141666666269D115541666666F6EA015141666666C694115541666666E6EC015141666666568D115541666666F6EC015141666666268C115541424C2045EA01514182FD5504891155417A85CBFDE9015141D4F801C688115541D482DF1CE9015141D6CF26B587115541666666F6E6015141666666668511554166666676E2015141666666A67E1155412ABB5749E1015141B6E382B77C1155413ED76DA6DE015141758376A4781155410DB74FC4DB015141DEAC9AA773115541666666B6D8015141666666A66E11554166666696D5015141666666D668115541B50680FCD3015141CA5339EB6411554181EDBB1DD30151417E72900863115541F039AD21D3015141163BE80763115541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>246448 - 967704
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001000000033333313C16C5141333333130FA0544185EB5188B86C514148E17A0431A054419A999939B06C514185EB510852A0544114AE4711B36C514114AE470153A05441EC51B81EDB6C51411F85EBF15DA05441C3F5281CDD6C5141B81E85FB5EA05441B81E854BDD6C5141000000405FA05441295C8F62E06C51418FC2F5D856A05441CDCCCCBCE26C51411F85EBB14EA054411F85EB11E86C51418FC2F58835A05441C3F5287CE86C5141B81E85EB33A054418FC2F508E86C5141295C8F0234A05441EC51B80EDE6C51419A99994921A05441C3F528ECDA6C51413D0AD7F31DA054418FC2F5A8CF6C5141EC51B8DE15A0544133333313C16C5141333333130FA05441
+</a>
+
+<b>
+010600000001000000010300000001000000290000007DCCE927FB6C5141CED0A32315A05441C246E8C3F16C51412DD84D942AA05441FB856A5DEA6C514194B5780720A05441BAB9DB23E96C5141589F9BD11EA054418DCF667DE66C51410C122E3D1CA05441CC0D0494E86C5141DC46471220A0544190187BB7EB6C5141C0C99BCF25A05441929C25B8ED6C51419C79247929A05441F38A0C0EF06C5141EC118DBE2DA05441A787B03BEB6C514100DF734638A0544104AE67DDEA6C51411CEDB69337A05441FD7E5A13EA6C514101659B1636A05441FE7680D1E96C514134AFD79735A05441D80CB2E2E86C5141045B21D333A0544184C3A480E86C514124A99AE633A05441EC1DE80DE86C5141BD4AE59B35A054410669E3B3E66C514143147EFC3BA054411317971FE66C514145BF32B83EA05441D4B3E69CE36C5141F1B58E904AA05441BCFAE3C4E26C51414834BF8B4EA05441331757A4E26C5141D93CAF064FA0544156370BD6E06C5141DF54C14855A054417BF7495AE06C5141677E73EF56A0544119F8D7D5DF6C5141C7919A5758A054419FD15253DD6C5141C6D5103F5FA054419B6157ECDE6C5141DE95389A61A0544106EA7B80E06C5141BD91B31C5DA05441BEC6736CE26C51417353C4BF57A054419DD7F78AE36C514173ECC17054A0544188393798E36C51413F741E4554A0544150AE04C4E36C514137881AC853A05441C87F5C74E66C5141D149E5D54AA05441BF5C4FD4E66C5141D4F3CD7449A054416A903AF1E66C5141592B620A49A054412B08B3A3E96C5141D00F9F263FA05441DEF92ACFE96C5141085F10BF3EA05441DAC1ED68ED6C51417C1FB9B035A05441456B0168F26C5141B861ED742BA05441F50D2DA8F56C514178F6114B24A0544125BE2866FC6C5141BFCF1FC915A054417DCCE927FB6C5141CED0A32315A05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>246448 - 1172959
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001000000033333313C16C5141333333130FA0544185EB5188B86C514148E17A0431A054419A999939B06C514185EB510852A0544114AE4711B36C514114AE470153A05441EC51B81EDB6C51411F85EBF15DA05441C3F5281CDD6C5141B81E85FB5EA05441B81E854BDD6C5141000000405FA05441295C8F62E06C51418FC2F5D856A05441CDCCCCBCE26C51411F85EBB14EA054411F85EB11E86C51418FC2F58835A05441C3F5287CE86C5141B81E85EB33A054418FC2F508E86C5141295C8F0234A05441EC51B80EDE6C51419A99994921A05441C3F528ECDA6C51413D0AD7F31DA054418FC2F5A8CF6C5141EC51B8DE15A0544133333313C16C5141333333130FA05441
+</a>
+
+<b>
+0106000000010000000103000000010000002900000082CCE927FB6C5141CAD0A32315A05441C646E8C3F16C514130D84D942AA05441FB856A5DEA6C514194B5780720A05441BAB9DB23E96C5141589F9BD11EA054418DCF667DE66C51410C122E3D1CA05441CC0D0494E86C5141DC46471220A0544190187BB7EB6C5141C0C99BCF25A05441929C25B8ED6C51419C79247929A05441F38A0C0EF06C5141EC118DBE2DA05441A787B03BEB6C514100DF734638A0544104AE67DDEA6C51411CEDB69337A05441FD7E5A13EA6C514101659B1636A05441FE7680D1E96C514134AFD79735A05441D80CB2E2E86C5141045B21D333A0544184C3A480E86C514124A99AE633A05441EC1DE80DE86C5141BD4AE59B35A054410669E3B3E66C514143147EFC3BA054411317971FE66C514145BF32B83EA05441D4B3E69CE36C5141F1B58E904AA05441BCFAE3C4E26C51414834BF8B4EA05441331757A4E26C5141D93CAF064FA0544156370BD6E06C5141DF54C14855A054417BF7495AE06C5141677E73EF56A0544119F8D7D5DF6C5141C7919A5758A054419FD15253DD6C5141C6D5103F5FA054419B6157ECDE6C5141DE95389A61A0544106EA7B80E06C5141BD91B31C5DA05441C1C6736CE26C51417753C4BF57A054419DD7F78AE36C514174ECC17054A0544188393798E36C51413F741E4554A0544150AE04C4E36C514137881AC853A05441C87F5C74E66C5141D149E5D54AA05441BF5C4FD4E66C5141D4F3CD7449A054416A903AF1E66C5141592B620A49A054412B08B3A3E96C5141D00F9F263FA05441DEF92ACFE96C5141085F10BF3EA05441DAC1ED68ED6C51417C1FB9B035A05441456B0168F26C5141B861ED742BA05441F50D2DA8F56C514178F6114B24A0544125BE2866FC6C5141BFCF1FC915A0544182CCE927FB6C5141CAD0A32315A05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>246448 - 3603118
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001000000033333313C16C5141333333130FA0544185EB5188B86C514148E17A0431A054419A999939B06C514185EB510852A0544114AE4711B36C514114AE470153A05441EC51B81EDB6C51411F85EBF15DA05441C3F5281CDD6C5141B81E85FB5EA05441B81E854BDD6C5141000000405FA05441295C8F62E06C51418FC2F5D856A05441CDCCCCBCE26C51411F85EBB14EA054411F85EB11E86C51418FC2F58835A05441C3F5287CE86C5141B81E85EB33A054418FC2F508E86C5141295C8F0234A05441EC51B80EDE6C51419A99994921A05441C3F528ECDA6C51413D0AD7F31DA054418FC2F5A8CF6C5141EC51B8DE15A0544133333313C16C5141333333130FA05441
+</a>
+
+<b>
+0106000000010000000103000000010000002900000082CCE927FB6C5141CAD0A32315A05441C646E8C3F16C514130D84D942AA05441FB856A5DEA6C514194B5780720A05441BAB9DB23E96C5141589F9BD11EA054418DCF667DE66C51410C122E3D1CA05441CC0D0494E86C5141DC46471220A0544190187BB7EB6C5141C0C99BCF25A05441929C25B8ED6C51419C79247929A05441F38A0C0EF06C5141EC118DBE2DA05441A787B03BEB6C514100DF734638A0544104AE67DDEA6C51411CEDB69337A05441FD7E5A13EA6C514101659B1636A05441FE7680D1E96C514134AFD79735A05441D80CB2E2E86C5141045B21D333A0544184C3A480E86C514124A99AE633A05441EC1DE80DE86C5141BD4AE59B35A054410669E3B3E66C514143147EFC3BA054411317971FE66C514145BF32B83EA05441D4B3E69CE36C5141F1B58E904AA05441BCFAE3C4E26C51414834BF8B4EA05441331757A4E26C5141D93CAF064FA0544156370BD6E06C5141DF54C14855A054417BF7495AE06C5141677E73EF56A0544119F8D7D5DF6C5141C7919A5758A054419FD15253DD6C5141C6D5103F5FA054419B6157ECDE6C5141DE95389A61A0544106EA7B80E06C5141BD91B31C5DA05441C1C6736CE26C51417753C4BF57A054419DD7F78AE36C514174ECC17054A0544188393798E36C51413F741E4554A0544150AE04C4E36C514137881AC853A05441C87F5C74E66C5141D149E5D54AA05441BF5C4FD4E66C5141D4F3CD7449A054416A903AF1E66C5141592B620A49A054412B08B3A3E96C5141D00F9F263FA05441DEF92ACFE96C5141085F10BF3EA05441DAC1ED68ED6C51417C1FB9B035A05441456B0168F26C5141B861ED742BA05441F50D2DA8F56C514178F6114B24A0544125BE2866FC6C5141BFCF1FC915A0544182CCE927FB6C5141CAD0A32315A05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>306375 - 29796
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000007000000F6285C2FE86D50411F85EBB112285541666666E6FA6D5041B81E85FB1428554166666686F26D504114AE474107285541F6285C5FEF6D5041B81E857B01285541A4703D6AE06D50417B14AEA7FF275541CDCCCC3CE06D50410000002004285541F6285C2FE86D50411F85EBB112285541
+</a>
+
+<b>
+010600000001000000010300000001000000180000004BD84CC2E36D50419FFBB3940A285541D14C325CE66D50414F617A590F285541B3E406B9E76D5041E273FBD811285541034A40F1E86D504193A27E0B11285541ABC46551E96D5041D7DAAE5C1028554107899E6BE96D50419AF3AF700F285541E12DA848E96D5041B8D0E99E0E2855411897EA3FE96D5041C69FD7F80D285541E22DA848E96D5041F58A5DFB0C285541E12DA848E96D5041D3413AC30A28554128A53614E96D50415FF1F8DF09285541EEFC95A2E86D5041921BDD5C09285541444312C8E76D5041C545C1D90828554199898EEDE66D504158733CEB0828554170EF3950E66D50412549586E09285541A3191ECDE56D5041BBB531FA09285541AA6A4F32E46D504151F57FF607285541FC9EF86CE56D5041B40AEA7506285541721F5832E46D5041EF5001CA052855414F5BD1E7E26D504199F9BF2905285541C5DB9F56E06D5041AC5FA2F102285541DE708E47E06D50417F32B83304285541DD8E47C6E26D50413FACADC6082855414BD84CC2E36D50419FFBB3940A285541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>306375 - 72268
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000007000000F6285C2FE86D50411F85EBB112285541666666E6FA6D5041B81E85FB1428554166666686F26D504114AE474107285541F6285C5FEF6D5041B81E857B01285541A4703D6AE06D50417B14AEA7FF275541CDCCCC3CE06D50410000002004285541F6285C2FE86D50411F85EBB112285541
+</a>
+
+<b>
+010600000001000000010300000001000000180000004BD84CC2E36D50419FFBB3940A285541D14C325CE66D50414F617A590F285541B3E406B9E76D5041E273FBD811285541034A40F1E86D504193A27E0B11285541ABC46551E96D5041D7DAAE5C1028554107899E6BE96D50419AF3AF700F285541E12DA848E96D5041B8D0E99E0E2855411897EA3FE96D5041C69FD7F80D285541E22DA848E96D5041F58A5DFB0C285541E12DA848E96D5041D3413AC30A28554128A53614E96D50415FF1F8DF09285541EEFC95A2E86D5041921BDD5C09285541444312C8E76D5041C545C1D90828554199898EEDE66D504158733CEB0828554170EF3950E66D50412549586E09285541A3191ECDE56D5041BBB531FA09285541AA6A4F32E46D504151F57FF607285541FC9EF86CE56D5041B40AEA7506285541721F5832E46D5041EF5001CA052855414F5BD1E7E26D504199F9BF2905285541C5DB9F56E06D5041AC5FA2F102285541DE708E47E06D50417F32B83304285541DD8E47C6E26D50413FACADC6082855414BD84CC2E36D50419FFBB3940A285541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>622747 - 3038553
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000026000000EC51B84ECEEA5041A4703D9AE6075541713D0A47CEEA5041C3F528BCE7075541CDCCCCECE5EA504185EB51E8E3075541F6285C8FE5EA5041666666D6E2075541713D0A47E4EA50417B14AE17DF07554152B81EC5E3EA5041B81E859BDD0755410AD7A3B0E2EA5041333333B3D9075541713D0A07E2EA5041B81E855BD60755410AD7A3E0E1EA5041C3F528ECD40755418FC2F588E1EA5041F6285CAFD10755418FC2F568E1EA5041AE47E11ACD07554152B81E55E2EA5041EC51B86EC4075541000000E0E2EA5041295C8F52BF0755418FC2F568E4EA5041B81E857BB7075541713D0A97E4EA50419A999939B6075541CDCCCC3CD3EA504133333343B707554152B81EC5CDEA50410AD7A330B8075541713D0A57C4EA50417B14AE97B90755417B14AEB7BDEA50419A9999B9BA07554100000050B6EA50411F85EB81BC0755415C8FC245B5EA5041713D0AC7BC075541CDCCCCDCA9EA5041B81E85BBBF075541000000F0A7EA50417B14AE57C0075541C3F5289C9BEA50418FC2F528C2075541B81E858B9EEA504185EB5168CF075541B81E851BA1EA50419A9999F9DA075541666666B6A7EA50418FC2F508DB0755410AD7A340ADEA5041F6285C4FDB07554166666646AFEA504148E17A04DD075541295C8F52AFEA5041B81E851BDD075541EC51B86EB0EA5041B81E853BDF0755417B14AE87AFEA5041CDCCCCDCE20755415C8FC285B1EA504152B81ED5E307554100000000B3EA5041000000A0E40755411F85EB31B8EA5041713D0A27E4075541C3F5281CBDEA5041F6285C6FE5075541A4703D6ACEEA50411F85EBA1E2075541EC51B84ECEEA5041A4703D9AE6075541
+</a>
+
+<b>
+01060000000100000001030000000100000027000000ED8CBD18A1EA50419E780DEDDA075541507F58D0A7EA50418D773F0ADB07554178828989ADEA5041A250E78CDB0755416FC86193AFEA5041F5B89D97DD07554192F3A24CB0EA504146F49BC4DF075541FE396E91AFEA5041CAE594B5E20755412DF10969B3EA5041EE4FE060E4075541F4F057BBB9EA504165C5B28DE40755416FAEF9C1BDEA504108B38154E507554121816A77CEEA5041A50EBBB7E2075541DE7CEE46CEEA50414D0B3AC0E70755413F0F668DE1EA50412797809DE40755416D76A5F0E5EA5041AEDF8CF3E30755411B24954AE4EA50413D4D0622DF0755416096038CE2EA50411A5A69FAD8075541AE6732C5E1EA5041B1A6C0E8D3075541CC4AB770E1EA5041E32D0F37CE075541E71410FCE1EA5041013CF4B3C7075541E64975B3E2EA50414C8B1DF6C007554160F5FAC4E3EA5041BC810BC1BA0755415EF30489E4EA504135C68C9BB60755413787CB9BE4EA50413AD6BD05B607554114D9A6C7DDEA5041512AD6A1B6075541A49A57E0D2EA5041D469E252B7075541DA3BB28CC7EA5041EC257A1DB9075541B809CCBDBCEA50414EE3C0F5BA075541A5BC0267B2EA5041CAD35285BD075541C0CF71B2A8EA50417E73101AC00755412AB678CDA1EA5041ED043B3FC10755418186C6AA9AEA5041D0502884C2075541F02FBE4999EA50417D7BF86EBD0755413DC5260298EA50415F4D3A57BC075541BD5FEAA483EA504116EDC400BA075541F1D0B3B082EA50415A2653F3BA0755415C073E0183EA504140BC3DF1BE075541DE85468C84EA50412D721290CA075541AD4172269DEA50413EDDE9EACD075541F8BCECB19EEA50417C48AF15D0075541ED8CBD18A1EA50419E780DEDDA075541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>622747 - 3274933
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000026000000EC51B84ECEEA5041A4703D9AE6075541713D0A47CEEA5041C3F528BCE7075541CDCCCCECE5EA504185EB51E8E3075541F6285C8FE5EA5041666666D6E2075541713D0A47E4EA50417B14AE17DF07554152B81EC5E3EA5041B81E859BDD0755410AD7A3B0E2EA5041333333B3D9075541713D0A07E2EA5041B81E855BD60755410AD7A3E0E1EA5041C3F528ECD40755418FC2F588E1EA5041F6285CAFD10755418FC2F568E1EA5041AE47E11ACD07554152B81E55E2EA5041EC51B86EC4075541000000E0E2EA5041295C8F52BF0755418FC2F568E4EA5041B81E857BB7075541713D0A97E4EA50419A999939B6075541CDCCCC3CD3EA504133333343B707554152B81EC5CDEA50410AD7A330B8075541713D0A57C4EA50417B14AE97B90755417B14AEB7BDEA50419A9999B9BA07554100000050B6EA50411F85EB81BC0755415C8FC245B5EA5041713D0AC7BC075541CDCCCCDCA9EA5041B81E85BBBF075541000000F0A7EA50417B14AE57C0075541C3F5289C9BEA50418FC2F528C2075541B81E858B9EEA504185EB5168CF075541B81E851BA1EA50419A9999F9DA075541666666B6A7EA50418FC2F508DB0755410AD7A340ADEA5041F6285C4FDB07554166666646AFEA504148E17A04DD075541295C8F52AFEA5041B81E851BDD075541EC51B86EB0EA5041B81E853BDF0755417B14AE87AFEA5041CDCCCCDCE20755415C8FC285B1EA504152B81ED5E307554100000000B3EA5041000000A0E40755411F85EB31B8EA5041713D0A27E4075541C3F5281CBDEA5041F6285C6FE5075541A4703D6ACEEA50411F85EBA1E2075541EC51B84ECEEA5041A4703D9AE6075541
+</a>
+
+<b>
+01060000000100000001030000000100000027000000ED8CBD18A1EA50419E780DEDDA075541507F58D0A7EA50418D773F0ADB07554178828989ADEA5041A250E78CDB0755416FC86193AFEA5041F5B89D97DD07554192F3A24CB0EA504146F49BC4DF075541FE396E91AFEA5041CAE594B5E20755412DF10969B3EA5041EE4FE060E4075541F4F057BBB9EA504165C5B28DE40755416FAEF9C1BDEA504108B38154E507554121816A77CEEA5041A50EBBB7E2075541DE7CEE46CEEA50414D0B3AC0E70755413F0F668DE1EA50412797809DE40755416D76A5F0E5EA5041AEDF8CF3E30755411B24954AE4EA50413D4D0622DF0755416096038CE2EA50411A5A69FAD8075541AE6732C5E1EA5041B1A6C0E8D3075541CC4AB770E1EA5041E32D0F37CE075541E71410FCE1EA5041013CF4B3C7075541E64975B3E2EA50414C8B1DF6C007554160F5FAC4E3EA5041BC810BC1BA0755415EF30489E4EA504135C68C9BB60755413787CB9BE4EA50413AD6BD05B607554114D9A6C7DDEA5041512AD6A1B6075541A49A57E0D2EA5041D469E252B7075541DA3BB28CC7EA5041EC257A1DB9075541B809CCBDBCEA50414EE3C0F5BA075541A5BC0267B2EA5041CAD35285BD075541C0CF71B2A8EA50417E73101AC00755412AB678CDA1EA5041ED043B3FC10755418186C6AA9AEA5041D0502884C2075541F02FBE4999EA50417D7BF86EBD0755413DC5260298EA50415F4D3A57BC075541BD5FEAA483EA504116EDC400BA075541F1D0B3B082EA50415A2653F3BA0755415C073E0183EA504140BC3DF1BE075541DE85468C84EA50412D721290CA075541AD4172269DEA50413EDDE9EACD075541F8BCECB19EEA50417C48AF15D0075541ED8CBD18A1EA50419E780DEDDA075541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>249081 - 1043804
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000020000000B0000003D0AD7B3A52A514114AE47016E725441713D0A378F2A51419A9999F978725441CDCCCCBCAF2A51419A9999C982725441F6285C2FC62A51419A9999D98A7254418FC2F548CA2A51418FC2F5088C725441AE47E1CAD12A5141333333E3767254419A9999F9D12A5141EC51B80E73725441C3F5284CC22A5141000000106E7254413D0AD7B3B12A5141EC51B8DE6B725441C3F528ACAA2A51417B14AE576C7254413D0AD7B3A52A514114AE47016E7254411600000048E17A84B62A514114AE47017272544185EB51A8B32A51413D0AD74371725441EC51B82EB22A51415C8FC2C574725441AE47E11AB32A5141713D0A4778725441AE47E1DABA2A51410AD7A3F07972544114AE4711C32A5141CDCCCCCC7C725441F6285C4FC72A5141E17A145E7E72544114AE47D1CA2A51418FC2F5988172544166666686C92A5141D7A3706D82725441D7A370EDC52A5141F6285CEF7F7254417B14AE67C12A5141E17A145E7E7254411F85EB31B92A5141713D0A277C725441F6285CFFB12A51411F85EB9179725441D7A3709DB02A51415C8FC2C574725441E17A145EB22A51419A9999F96F725441C3F528ACB42A5141333333836F72544100000060BF2A5141EC51B87E74725441295C8F72CA2A5141295C8F62797254415C8FC2B5C92A5141D7A370AD7A725441C3F5283CC22A51417B14AE177872544100000080BB2A5141D7A370DD7472544148E17A84B62A514114AE470172725441
+</a>
+
+<b>
+0106000000010000000103000000020000000B0000003D0AD7B3A52A514114AE47016E725441713D0A378F2A51419A9999F978725441CDCCCCBCAF2A51419A9999C982725441F6285C2FC62A51419A9999D98A7254418FC2F548CA2A51418FC2F5088C725441AE47E1CAD12A5141333333E3767254419A9999F9D12A5141EC51B80E73725441C3F5284CC22A5141000000106E7254413D0AD7B3B12A5141EC51B8DE6B725441C3F528ACAA2A51417B14AE576C7254413D0AD7B3A52A514114AE47016E72544114000000E42AB046C92A5141C9384C41827254414173A18BC62A5141C723B345807254415ACABD80C62A514117A76A558072544186EBE12AC22A514180BCBCA17E725441689F1D14BA2A5141BEE510647C725441F6285CFFB12A51411F85EB91797254418402F2AEB02A514184A48102757254412A5D7250B22A5141E0DAEB1E70725441C64E77B2B42A514190C022866F725441CC78C071CA2A5141B4FD336279725441BC7365C7C92A5141AE19888E7A725441E7255C54C22A5141077F0C2078725441A03EFB37B72A514198C05068727254414BC24CDBB32A51419BD40751717254415F6B3331B22A5141F2972FCF74725441BB1B1909B32A514178747A03787254410CAB6C28BB2A51411014A50B7A72544175321661C72A5141247C676E7E72544114AE47D1CA2A51418FC2F59881725441E42AB046C92A5141C9384C4182725441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>249081 - 3372588
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000020000000B0000003D0AD7B3A52A514114AE47016E725441713D0A378F2A51419A9999F978725441CDCCCCBCAF2A51419A9999C982725441F6285C2FC62A51419A9999D98A7254418FC2F548CA2A51418FC2F5088C725441AE47E1CAD12A5141333333E3767254419A9999F9D12A5141EC51B80E73725441C3F5284CC22A5141000000106E7254413D0AD7B3B12A5141EC51B8DE6B725441C3F528ACAA2A51417B14AE576C7254413D0AD7B3A52A514114AE47016E7254411600000048E17A84B62A514114AE47017272544185EB51A8B32A51413D0AD74371725441EC51B82EB22A51415C8FC2C574725441AE47E11AB32A5141713D0A4778725441AE47E1DABA2A51410AD7A3F07972544114AE4711C32A5141CDCCCCCC7C725441F6285C4FC72A5141E17A145E7E72544114AE47D1CA2A51418FC2F5988172544166666686C92A5141D7A3706D82725441D7A370EDC52A5141F6285CEF7F7254417B14AE67C12A5141E17A145E7E7254411F85EB31B92A5141713D0A277C725441F6285CFFB12A51411F85EB9179725441D7A3709DB02A51415C8FC2C574725441E17A145EB22A51419A9999F96F725441C3F528ACB42A5141333333836F72544100000060BF2A5141EC51B87E74725441295C8F72CA2A5141295C8F62797254415C8FC2B5C92A5141D7A370AD7A725441C3F5283CC22A51417B14AE177872544100000080BB2A5141D7A370DD7472544148E17A84B62A514114AE470172725441
+</a>
+
+<b>
+0106000000010000000103000000020000000B0000003D0AD7B3A52A514114AE47016E725441713D0A378F2A51419A9999F978725441CDCCCCBCAF2A51419A9999C982725441F6285C2FC62A51419A9999D98A7254418FC2F548CA2A51418FC2F5088C725441AE47E1CAD12A5141333333E3767254419A9999F9D12A5141EC51B80E73725441C3F5284CC22A5141000000106E7254413D0AD7B3B12A5141EC51B8DE6B725441C3F528ACAA2A51417B14AE576C7254413D0AD7B3A52A514114AE47016E72544114000000E42AB046C92A5141C9384C41827254414173A18BC62A5141C723B345807254415ACABD80C62A514117A76A558072544186EBE12AC22A514180BCBCA17E725441689F1D14BA2A5141BEE510647C725441F6285CFFB12A51411F85EB91797254418402F2AEB02A514184A48102757254412A5D7250B22A5141E0DAEB1E70725441C64E77B2B42A514190C022866F725441CC78C071CA2A5141B4FD336279725441BC7365C7C92A5141AE19888E7A725441E7255C54C22A5141077F0C2078725441A03EFB37B72A514198C05068727254414BC24CDBB32A51419BD40751717254415F6B3331B22A5141F2972FCF74725441BB1B1909B32A514178747A03787254410CAB6C28BB2A51411014A50B7A72544175321661C72A5141247C676E7E72544114AE47D1CA2A51418FC2F59881725441E42AB046C92A5141C9384C4182725441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>662586 - 1498262
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000110000007EFADE6E10BA50414B6C2D0147D95441A6E896CA0EBA50413CAD6D7047D9544168A33BA210BA5041076B7C2E4DD9544148E17A7428BA5041B81E857B46D95441713D0AE72CBA50415C8FC2B546D95441666666A632BA504148E17A9447D95441EC51B80E36BA5041666666A648D954416666667638BA504152B81E854AD9544148E17A443ABA5041333333534CD95441AE47E15A3BBA5041EC51B89E4DD954413333334344BA50419A9999394BD95441D7A370FD44BA5041D7A3702D34D954413D0AD7731CBA50413D0AD7133FD95441F6285CBF22BA5041A4703D1A43D95441713D0A3719BA50415C8FC26545D954416A9EB59C10BA504130A2F3F546D954417EFADE6E10BA50414B6C2D0147D95441
+</a>
+
+<b>
+0106000000010000000103000000010000001100000082FADE6E10BA50414A6C2D0147D95441A5E896CA0EBA504137AD6D7047D9544164A33BA210BA50410B6B7C2E4DD9544148E17A7428BA5041B81E857B46D95441713D0AE72CBA50415C8FC2B546D95441666666A632BA504148E17A9447D95441EC51B80E36BA5041666666A648D954416666667638BA504152B81E854AD9544148E17A443ABA5041333333534CD95441AE47E15A3BBA5041EC51B89E4DD954413333334344BA50419A9999394BD95441D7A370FD44BA5041D7A3702D34D954413D0AD7731CBA50413D0AD7133FD95441F6285CBF22BA5041A4703D1A43D95441713D0A3719BA50415C8FC26545D95441689EB59C10BA50412EA2F3F546D9544182FADE6E10BA50414A6C2D0147D95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>662586 - 4175906
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000110000007EFADE6E10BA50414B6C2D0147D95441A6E896CA0EBA50413CAD6D7047D9544168A33BA210BA5041076B7C2E4DD9544148E17A7428BA5041B81E857B46D95441713D0AE72CBA50415C8FC2B546D95441666666A632BA504148E17A9447D95441EC51B80E36BA5041666666A648D954416666667638BA504152B81E854AD9544148E17A443ABA5041333333534CD95441AE47E15A3BBA5041EC51B89E4DD954413333334344BA50419A9999394BD95441D7A370FD44BA5041D7A3702D34D954413D0AD7731CBA50413D0AD7133FD95441F6285CBF22BA5041A4703D1A43D95441713D0A3719BA50415C8FC26545D954416A9EB59C10BA504130A2F3F546D954417EFADE6E10BA50414B6C2D0147D95441
+</a>
+
+<b>
+0106000000010000000103000000010000001100000082FADE6E10BA50414A6C2D0147D95441A5E896CA0EBA504137AD6D7047D9544164A33BA210BA50410B6B7C2E4DD9544148E17A7428BA5041B81E857B46D95441713D0AE72CBA50415C8FC2B546D95441666666A632BA504148E17A9447D95441EC51B80E36BA5041666666A648D954416666667638BA504152B81E854AD9544148E17A443ABA5041333333534CD95441AE47E15A3BBA5041EC51B89E4DD954413333334344BA50419A9999394BD95441D7A370FD44BA5041D7A3702D34D954413D0AD7731CBA50413D0AD7133FD95441F6285CBF22BA5041A4703D1A43D95441713D0A3719BA50415C8FC26545D95441689EB59C10BA50412EA2F3F546D9544182FADE6E10BA50414A6C2D0147D95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>662586 - 142908
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000110000007EFADE6E10BA50414B6C2D0147D95441A6E896CA0EBA50413CAD6D7047D9544168A33BA210BA5041076B7C2E4DD9544148E17A7428BA5041B81E857B46D95441713D0AE72CBA50415C8FC2B546D95441666666A632BA504148E17A9447D95441EC51B80E36BA5041666666A648D954416666667638BA504152B81E854AD9544148E17A443ABA5041333333534CD95441AE47E15A3BBA5041EC51B89E4DD954413333334344BA50419A9999394BD95441D7A370FD44BA5041D7A3702D34D954413D0AD7731CBA50413D0AD7133FD95441F6285CBF22BA5041A4703D1A43D95441713D0A3719BA50415C8FC26545D954416A9EB59C10BA504130A2F3F546D954417EFADE6E10BA50414B6C2D0147D95441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000A5E896CA0EBA504137AD6D7047D9544181F19E9E10BA504198403A234DD9544155DF0EAD10BA50417E15712B4DD9544148E17A7428BA5041B81E857B46D95441713D0AE72CBA50415C8FC2B546D95441666666A632BA504148E17A9447D95441EC51B80E36BA5041666666A648D954416666667638BA504152B81E854AD9544148E17A443ABA5041333333534CD95441AE47E15A3BBA5041EC51B89E4DD954413333334344BA50419A9999394BD95441D7A370FD44BA5041D7A3702D34D954413D0AD7731CBA50413D0AD7133FD95441F6285CBF22BA5041A4703D1A43D95441713D0A3719BA50415C8FC26545D95441689EB59C10BA50412EA2F3F546D9544182FADE6E10BA50414A6C2D0147D95441A5E896CA0EBA504137AD6D7047D95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>662586 - 294865
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000110000007EFADE6E10BA50414B6C2D0147D95441A6E896CA0EBA50413CAD6D7047D9544168A33BA210BA5041076B7C2E4DD9544148E17A7428BA5041B81E857B46D95441713D0AE72CBA50415C8FC2B546D95441666666A632BA504148E17A9447D95441EC51B80E36BA5041666666A648D954416666667638BA504152B81E854AD9544148E17A443ABA5041333333534CD95441AE47E15A3BBA5041EC51B89E4DD954413333334344BA50419A9999394BD95441D7A370FD44BA5041D7A3702D34D954413D0AD7731CBA50413D0AD7133FD95441F6285CBF22BA5041A4703D1A43D95441713D0A3719BA50415C8FC26545D954416A9EB59C10BA504130A2F3F546D954417EFADE6E10BA50414B6C2D0147D95441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000A5E896CA0EBA504137AD6D7047D9544181F19E9E10BA504198403A234DD9544155DF0EAD10BA50417E15712B4DD9544148E17A7428BA5041B81E857B46D95441713D0AE72CBA50415C8FC2B546D95441666666A632BA504148E17A9447D95441EC51B80E36BA5041666666A648D954416666667638BA504152B81E854AD9544148E17A443ABA5041333333534CD95441AE47E15A3BBA5041EC51B89E4DD954413333334344BA50419A9999394BD95441D7A370FD44BA5041D7A3702D34D954413D0AD7731CBA50413D0AD7133FD95441F6285CBF22BA5041A4703D1A43D95441713D0A3719BA50415C8FC26545D95441689EB59C10BA50412EA2F3F546D9544182FADE6E10BA50414A6C2D0147D95441A5E896CA0EBA504137AD6D7047D95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>307750 - 3731
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000019000000713D0AC7BF565141A4703D0ADBC554417B14AEE7BF56514100000040D6C5544114AE47E1C05651413D0AD773CDC5544114AE47C1C156514185EB5198C4C5544152B81E45C156514100000000BDC554418FC2F5B8C05651417B14AE47B5C55441E17A14FEBF565141000000C0AFC55441333333C3BF5651419A999949ACC554410AD7A3D0B6565141B81E852BAEC55441A4703DEAA9565141EC51B8FEB0C55441CDCCCC3CAB5651413D0AD713B5C55441D7A3701DAB5651411F85EBF1B6C55441B81E858BAB565141C3F528ACB8C55441295C8F92AC5651411F85EB81BAC55441295C8FC2AD56514133333383BCC55441C3F528ACAE565141E17A146EBFC55441A4703DFAAE5651415C8FC295C0C554410AD7A340B0565141B81E85FBC1C55441F6285C9FB2565141B81E852BC4C554417B14AEA7B3565141A4703D8AC6C55441A4703D5AB35651413D0AD7A3C9C55441000000C0B2565141333333E3CDC554411F85EB51B75651411F85EB31D2C5544166666616BC565141B81E85CBD6C55441713D0AC7BF565141A4703D0ADBC55441
+</a>
+
+<b>
+0106000000010000000103000000010000004A00000026E4AE73AA5651412D38CCE9B6C554416A57F9B6AA5651414F0E3B60B8C554417222C1FBAA5651417C248194B9C554418F64E4CAAB565141342191B8BAC554417626F6E0AB5651412DEA36D9BAC554417BABB107AC5651419EE61510BBC55441B0E6B5D3AC5651416D3F1C42BCC55441CCEFABECAC565141174D8D67BCC554417C6D7936AD5651419F8941D6BCC55441EA1FB578AD56514144159B39BDC5544106104882AD565141C9958F67BDC55441C6244896AD56514164F98FC7BDC55441FDE099BEAD565141A04D1889BEC554413ED318C9AD5651413EA579BBBEC55441296510E0AD565141DB94B729BFC554418CEAC003AE5651419B2B10C7BFC554418EEDFF30AE565141C0D1FA83C0C5544118D1A85AAE5651418F107A32C1C55441D96EAA73AE56514170C0B37BC1C5544166666646AF565141333333D3C1C5544149807757AF56514146710BE4C1C55441D3A0A104B05651417BAAF48EC2C5544107129CB1B05651416F09943AC3C55441F292F0D5B056514169A59F5EC3C554417B14AEA7B1565141EC51B82EC4C554412BCDE6D8B1565141016E129EC4C554416171911FB2565141A22AF03DC5C55441227C4F6BB2565141467C49E9C5C55441634476AAB2565141CBF32678C6C554413D0AD7D3B25651415C8FC2D5C6C554419F8E3AC3B25651416B8FB23CC7C55441610B90B5B2565141DE516291C7C5544191B7538EB256514195838584C8C55441B4875285B2565141AD6952BCC8C55441295C8F82B2565141D7A370CDC8C554413A365445B2565141B5867A14C9C55441255B63D2B15651414274D499C9C55441B4476B2FB15651416BF7E656CAC554410DD2EAF0B05651412D456A9FCAC55441EFAE9D98B0565141C724DC05CBC554413F66E642B0565141D5C6538ACBC554418A3F36C0B2565141CD3564E3CDC554416237FACEB25651414132BBF0CDC554415A6F9086B356514157BD1B2EC8C55441EA432A9FB3565141C107FFE1C6C55441EA432A9FB356514139CB4A73C6C55441CE621753B35651410A4413C8C5C5544149CABC17B35651411699D53FC5C55441677D54CCB25651413184BE92C4C554411463CA87B256514116F9C315C4C5544101D67A1BB2565141738FCBB1C3C55441DFF21694B156514174A1D434C3C55441C4A4F7D2B0565141565C9482C2C55441E9B9D940B056514153DBB6FBC1C55441E2FA3CD2AF5651410ACF8282C1C554413CC4945CAF56514142B18C01C1C55441446CF2F7AE565141F997138DC0C55441287331C7AE565141AE9473D4BFC55441E13A1870AE5651416D1209AEBEC55441110C2012AE565141B6319781BDC55441992E93D4AD5651413465CCBCBCC554415DBFDBA8AD565141340BCE57BCC55441579FA031AD56514122287E8EBBC55441D31F3B9DAC5651416DE3EF93BAC55441A3D55649AC5651413AE527FFB9C554410940AFEDAB5651414F8F785BB9C55441DFE470B0AB56514143C518EEB8C55441CD5A727CAB56514140989A6FB8C554419DBF035CAB565141655B4FEDB7C5544143B4253AAB5651413DF53F65B7C55441A9CD9123AB565141E1C87994B6C55441FD06F62DAB56514137F10EF6B5C55441E5C0D03AAB56514140281832B5C5544126E4AE73AA5651412D38CCE9B6C55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>307750 - 57714
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000019000000713D0AC7BF565141A4703D0ADBC554417B14AEE7BF56514100000040D6C5544114AE47E1C05651413D0AD773CDC5544114AE47C1C156514185EB5198C4C5544152B81E45C156514100000000BDC554418FC2F5B8C05651417B14AE47B5C55441E17A14FEBF565141000000C0AFC55441333333C3BF5651419A999949ACC554410AD7A3D0B6565141B81E852BAEC55441A4703DEAA9565141EC51B8FEB0C55441CDCCCC3CAB5651413D0AD713B5C55441D7A3701DAB5651411F85EBF1B6C55441B81E858BAB565141C3F528ACB8C55441295C8F92AC5651411F85EB81BAC55441295C8FC2AD56514133333383BCC55441C3F528ACAE565141E17A146EBFC55441A4703DFAAE5651415C8FC295C0C554410AD7A340B0565141B81E85FBC1C55441F6285C9FB2565141B81E852BC4C554417B14AEA7B3565141A4703D8AC6C55441A4703D5AB35651413D0AD7A3C9C55441000000C0B2565141333333E3CDC554411F85EB51B75651411F85EB31D2C5544166666616BC565141B81E85CBD6C55441713D0AC7BF565141A4703D0ADBC55441
+</a>
+
+<b>
+0106000000010000000103000000010000004A00000026E4AE73AA5651412D38CCE9B6C554416A57F9B6AA5651414F0E3B60B8C554417222C1FBAA5651417C248194B9C554418F64E4CAAB565141342191B8BAC554417626F6E0AB5651412DEA36D9BAC554417BABB107AC5651419EE61510BBC55441B0E6B5D3AC5651416D3F1C42BCC55441CCEFABECAC565141174D8D67BCC554417C6D7936AD5651419F8941D6BCC55441EA1FB578AD56514144159B39BDC5544106104882AD565141C9958F67BDC55441C6244896AD56514164F98FC7BDC55441FDE099BEAD565141A04D1889BEC554413ED318C9AD5651413EA579BBBEC55441296510E0AD565141DB94B729BFC554418CEAC003AE5651419B2B10C7BFC554418EEDFF30AE565141C0D1FA83C0C5544118D1A85AAE5651418F107A32C1C55441D96EAA73AE56514170C0B37BC1C5544166666646AF565141333333D3C1C5544149807757AF56514146710BE4C1C55441D3A0A104B05651417BAAF48EC2C5544107129CB1B05651416F09943AC3C55441F292F0D5B056514169A59F5EC3C554417B14AEA7B1565141EC51B82EC4C554412BCDE6D8B1565141016E129EC4C554416171911FB2565141A22AF03DC5C55441227C4F6BB2565141467C49E9C5C55441634476AAB2565141CBF32678C6C554413D0AD7D3B25651415C8FC2D5C6C554419F8E3AC3B25651416B8FB23CC7C55441610B90B5B2565141DE516291C7C5544191B7538EB256514195838584C8C55441B4875285B2565141AD6952BCC8C55441295C8F82B2565141D7A370CDC8C554413A365445B2565141B5867A14C9C55441255B63D2B15651414274D499C9C55441B4476B2FB15651416BF7E656CAC554410DD2EAF0B05651412D456A9FCAC55441EFAE9D98B0565141C724DC05CBC554413F66E642B0565141D5C6538ACBC554418A3F36C0B2565141CD3564E3CDC554416237FACEB25651414132BBF0CDC554415A6F9086B356514157BD1B2EC8C55441EA432A9FB3565141C107FFE1C6C55441EA432A9FB356514139CB4A73C6C55441CE621753B35651410A4413C8C5C5544149CABC17B35651411699D53FC5C55441677D54CCB25651413184BE92C4C554411463CA87B256514116F9C315C4C5544101D67A1BB2565141738FCBB1C3C55441DFF21694B156514174A1D434C3C55441C4A4F7D2B0565141565C9482C2C55441E9B9D940B056514153DBB6FBC1C55441E2FA3CD2AF5651410ACF8282C1C554413CC4945CAF56514142B18C01C1C55441446CF2F7AE565141F997138DC0C55441287331C7AE565141AE9473D4BFC55441E13A1870AE5651416D1209AEBEC55441110C2012AE565141B6319781BDC55441992E93D4AD5651413465CCBCBCC554415DBFDBA8AD565141340BCE57BCC55441579FA031AD56514122287E8EBBC55441D31F3B9DAC5651416DE3EF93BAC55441A3D55649AC5651413AE527FFB9C554410940AFEDAB5651414F8F785BB9C55441DFE470B0AB56514143C518EEB8C55441CD5A727CAB56514140989A6FB8C554419DBF035CAB565141655B4FEDB7C5544143B4253AAB5651413DF53F65B7C55441A9CD9123AB565141E1C87994B6C55441FD06F62DAB56514137F10EF6B5C55441E5C0D03AAB56514140281832B5C5544126E4AE73AA5651412D38CCE9B6C55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>366083 - 2910616
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000030000000103000000010000000B00000014AE47C19B905041713D0A274B385541666666869A905041A4703D6A4A38554185EB51A88A905041C3F5286C4A385541295C8F82829050413D0AD7434A3855413D0AD7F382905041295C8FA24B385541EC51B8EE85905041C3F528DC5438554133333353869050413D0AD71356385541333333D3869050417B14AE1756385541295C8FE28F905041C3F528DC553855417B14AEB79990504114AE47E15338554114AE47C19B905041713D0A274B38554101030000000100000017000000AE47E1DA4A9050415C8FC2D54B3855411F85EBC14A905041CDCCCC6C4A3855410AD7A3604A9050411F85EBE144385541B81E854B4A905041D7A3702D44385541000000702F905041E17A141E4038554114AE47712C905041EC51B86E473855415C8FC2152A90504185EB51B8493855415C8FC26526905041B81E85AB4E38554148E17A0426905041B81E853B4F385541A4703D1A2C905041A4703DAA51385541C3F528AC2F905041AE47E10A57385541CDCCCC7C36905041713D0A775E385541333333633D905041EC51B8AE653855410000002044905041EC51B8EE69385541F6285CAF5690504148E17AD471385541EC51B8EE58905041C3F5288C66385541F6285C2F55905041D7A3700D6638554185EB51584F9050417B14AE47633855413D0AD7234F9050415C8FC2755D38554148E17AF44D90504185EB5198563855410AD7A3304C905041CDCCCC0C4F38554185EB51784B9050419A9999F94B385541AE47E1DA4A9050415C8FC2D54B3855410103000000010000000B000000F6285C0F769050413D0AD7C34A385541333333937590504148E17AA44938554133333393709050410AD7A32049385541D7A370AD63905041CDCCCC7C47385541333333F3669050419A9999195138554133333373679050411F85EB9152385541A4703D0A729050419A9999D954385541CDCCCCAC7A905041295C8FA255385541000000C07A90504148E17AA455385541AE47E12A7A905041AE47E14A54385541F6285C0F769050413D0AD7C34A385541
+</a>
+
+<b>
+010600000001000000010300000001000000170000000248EF7928905041D1A324E14B38554192FC197229905041836CB16C4C3855410FE8E972299050415D13326E4C3855413ED87BE329905041E942733E4D385541CEC08C7C2A905041B7C67A824D38554130E2F9532B90504164A2DCF34D38554179C56A4D2C9050412ABC3A434E385541F424D4022D90504100AAEB7B4E38554182489E4B4F905041B35113DF613855413D0AD7234F9050415C8FC2755D38554148E17AF44D90504185EB5198563855410AD7A3304C905041CDCCCC0C4F38554185EB51784B9050419A9999F94B385541AE47E1DA4A9050415C8FC2D54B3855411F85EBC14A905041CDCCCC6C4A3855410AD7A3604A9050411F85EBE144385541B81E854B4A905041D7A3702D44385541000000702F905041E17A141E4038554114AE47712C905041EC51B86E473855415C8FC2152A90504185EB51B8493855416F29436028905041C924D3004C385541E16DC36128905041720B97014C3855410248EF7928905041D1A324E14B385541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>366083 - 3644341
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000030000000103000000010000000B00000014AE47C19B905041713D0A274B385541666666869A905041A4703D6A4A38554185EB51A88A905041C3F5286C4A385541295C8F82829050413D0AD7434A3855413D0AD7F382905041295C8FA24B385541EC51B8EE85905041C3F528DC5438554133333353869050413D0AD71356385541333333D3869050417B14AE1756385541295C8FE28F905041C3F528DC553855417B14AEB79990504114AE47E15338554114AE47C19B905041713D0A274B38554101030000000100000017000000AE47E1DA4A9050415C8FC2D54B3855411F85EBC14A905041CDCCCC6C4A3855410AD7A3604A9050411F85EBE144385541B81E854B4A905041D7A3702D44385541000000702F905041E17A141E4038554114AE47712C905041EC51B86E473855415C8FC2152A90504185EB51B8493855415C8FC26526905041B81E85AB4E38554148E17A0426905041B81E853B4F385541A4703D1A2C905041A4703DAA51385541C3F528AC2F905041AE47E10A57385541CDCCCC7C36905041713D0A775E385541333333633D905041EC51B8AE653855410000002044905041EC51B8EE69385541F6285CAF5690504148E17AD471385541EC51B8EE58905041C3F5288C66385541F6285C2F55905041D7A3700D6638554185EB51584F9050417B14AE47633855413D0AD7234F9050415C8FC2755D38554148E17AF44D90504185EB5198563855410AD7A3304C905041CDCCCC0C4F38554185EB51784B9050419A9999F94B385541AE47E1DA4A9050415C8FC2D54B3855410103000000010000000B000000F6285C0F769050413D0AD7C34A385541333333937590504148E17AA44938554133333393709050410AD7A32049385541D7A370AD63905041CDCCCC7C47385541333333F3669050419A9999195138554133333373679050411F85EB9152385541A4703D0A729050419A9999D954385541CDCCCCAC7A905041295C8FA255385541000000C07A90504148E17AA455385541AE47E12A7A905041AE47E14A54385541F6285C0F769050413D0AD7C34A385541
+</a>
+
+<b>
+010600000001000000010300000001000000170000000248EF7928905041D1A324E14B38554192FC197229905041836CB16C4C3855410FE8E972299050415D13326E4C3855413ED87BE329905041E942733E4D385541CEC08C7C2A905041B7C67A824D38554130E2F9532B90504164A2DCF34D38554179C56A4D2C9050412ABC3A434E385541F424D4022D90504100AAEB7B4E38554182489E4B4F905041B35113DF613855413D0AD7234F9050415C8FC2755D38554148E17AF44D90504185EB5198563855410AD7A3304C905041CDCCCC0C4F38554185EB51784B9050419A9999F94B385541AE47E1DA4A9050415C8FC2D54B3855411F85EBC14A905041CDCCCC6C4A3855410AD7A3604A9050411F85EBE144385541B81E854B4A905041D7A3702D44385541000000702F905041E17A141E4038554114AE47712C905041EC51B86E473855415C8FC2152A90504185EB51B8493855416F29436028905041C924D3004C385541E16DC36128905041720B97014C3855410248EF7928905041D1A324E14B385541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>702499 - 5238100
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000044000000BD7F7C4128165141088B6D22EB665441CC5475E829165141E7730BD0DE6654419A9999292A165141A4703DEADC665441AE47E13A2F165141666666D6B8665441B2B3AC512F165141DFC15125B866544182E6D07130165141A477E266AF6654419BFD5C8E30165141E95B1D89AE6654413C28B8873216514183BE3D339F665441A459D34C331651418D0E043899665441823A2A9D331651414AACE5C796665441D1BC1DC334165141232B54DC8D665441FCC50B0B351651410B348AAD8B6654410BA582ED35165141E6C03ECE846654413D0AD7133616514148E17AA48366544148E17A741D165141713D0A67816654414A8313691D16514105B9916681665441006297AB1C165141B135BF5E816654415F2AA51018165141DBE0132E8166544110A246A2171651417C79852981665441A4703D1A0F165141F6285CCF806654416F1789500E16514157BE29C48066544148E17A24FC1551411F85EBC17F6654415C8FC2B5F41551415C8FC2259A665441333333D3EE155141E17A14DEB1665441666666B6EE15514148E17A84B2665441C3F5280CE4155141B81E859BB0665441333333F3DB155141333333C3AE665441A4703DDAD3155141B81E85EBAC6654413D0AD773CE15514114AE4721AC665441713D0AF7CA1551415C8FC275AC6654415C8FC2A5C9155141EC51B82EAD66544133333383C415514114AE4771B8665441EC51B89EC6155141E17A14AEBA665441295C8FF2C6155141E17A14EEBB665441295C8FF2C61551413D0AD793BD66544100000040C415514152B81E15C56654415C8FC275C3155141666666A6C76654415C8FC275C3155141666666E6C866544100000030C915514114AE4731CC665441D7A370EDCD155141713D0AE7CD665441713D0AF7CA15514166666626DA665441C3F528ECC8155141AE47E19AE566544152B81E45A8155141EC51B8FEE066544148E17A04A7155141AE47E19AE566544109B46A46A615514100CEE265EA665441847FB2C7A6155141906119B3EE665441E3844191A715514161EAD5A1FC6654411796F744A7155141BBE2847BFF665441E6F3BE52A61551410BA6861D02675441E55AEDEFA3155141E048AA8B076754411FA42A98A4155141CB7619BA0D67544143EEDE26A51551417982FB3A14675441A65E6AA3A615514191210FBB2F675441E3844191A71551419F15822C666754416666661617165141000000C0706754414B6EBB3E1B1651413C7472D34D675441D3425DEF201651415D6D0A072467544179EFB1E52116514170A588A41C67544176748411A5155141751E293F116754419E40351EA4155141159DD8AD0767544128176787A6155141FE9EFE120267544166C02784A7155141ADDBFC70FF665441C6F1DFCDA715514129FCDAA4FC665441C86BC705A7155141A8AC41BDEE665441AA26954226165141BED89C39FA6654416F6670A42616514104FF5D35F7665441CDCCCCBC2616514152B81E75F6665441BD7F7C4128165141088B6D22EB665441
+</a>
+
+<b>
+01060000000100000001030000000100000032000000D39D90DCA6155141384AB15FEC665441D39D90DCA61551414850CCD9EE665441D676523F2616514162877024FA66544176CA2DAC26165141CF9E49F8F66654418F4F084727165141DE8B3A6EF2665441F3F995EF2716514114D43685ED665441328A9C0E29165141AE5FAC28E56654416DAFCEE92916514122EBFBC5DE665441D36834622A165141C6BD3F57DB665441389B1C772E16514151752648BE665441676D2D292F165141286B6E54B9665441380AD9CC2F165141D1E27168B46654419F8D6EA5EE155141A6FCF597B2665441015191A5EA15514137DBBB2FB2665441F827A942DF155141F3742273AF665441744FE882D3155141D05ABEDEAC665441B59019D0CF15514126A83A54AC6654413D0AD773CE15514114AE4721AC665441067ED051CD155141E728B93CAC665441713D0AF7CA1551415C8FC275AC6654415C8FC2A5C9155141EC51B82EAD66544133333383C415514114AE4771B86654410CE82928C5155141D38CC72AB966544107AA77F7C5155141B08EE3EDB9665441EC51B89EC6155141E17A14AEBA665441EDF9A3E4C61551415BC7F3B8BB665441295C8FF2C6155141E17A14EEBB665441295C8FF2C6155141DB59638ABC665441295C8FF2C61551413D0AD793BD6654415BF45FBEC615514199A70725BE665441FAC99491C4155141ABF02432C466544177C45630C4155141CEB90448C56654415C8FC275C3155141666666A6C76654415C8FC275C3155141666666E6C8665441A77E8707C615514160268660CA66544100000030C915514114AE4731CC665441D7A370EDCD155141713D0AE7CD665441713D0AF7CA15514166666626DA665441C3F528ECC8155141AE47E19AE56654413666842FC015514154401A5FE466544176331E8AB615514105B47602E3665441802D07E6B51551414AFF4BEBE266544115EC4B71AE155141E2ACD0DDE166544152B81E45A8155141EC51B8FEE066544182E008F5A7155141B1F021F1E1665441E320D766A7155141ECE1D930E466544148E17A04A7155141AE47E19AE56654417A5DFBB7A6155141AEFE73A8E7665441981D2DC4A6155141FEC2A46BE9665441D39D90DCA6155141384AB15FEC665441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>252648 - 3116377
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000E0000003333330326E9504185EB51F85F01554152B81E052EE9504185EB51387401554152B81E5535E950416666665671015541AE47E14A37E9504148E17AD475015541D7A370CD3DE95041CDCCCCEC720155410AD7A30051E9504185EB51C86A01554114AE47E14DE95041D7A3702D64015541000000404DE95041AE47E17A64015541AE47E1EA49E95041EC51B83E5E0155411F85EBD14AE95041000000D05D015541EC51B8AE3DE95041295C8F824201554114AE47111FE95041B81E85CB4F0155415C8FC26520E9504152B81EF5520155413333330326E9504185EB51F85F015541
+</a>
+
+<b>
+010600000001000000010300000001000000140000007E32554545E950418D40B84752015541BB87036E38E9504108997E95580155413E4587962FE95041CC53BBBC5901554137D08BD225E95041148F551959015541D1A2FA1A23E95041756B9F3B59015541E30B2D6C23E9504144F4CAF7590155413333330326E9504185EB51F85F01554196C476852CE950410DDC807C70015541B0F5B5BA33E95041E2F3A5FF6D015541824E88CA36E95041087896C274015541F40ED06C3DE95041351FC4B271015541D7A370CD3DE95041CDCCCCEC720155410AD7A30051E9504185EB51C86A01554114AE47E14DE95041D7A3702D64015541000000404DE95041AE47E17A64015541AE47E1EA49E95041EC51B83E5E0155411F85EBD14AE95041000000D05D015541D859407445E9504176F739A952015541A6F1BC4745E9504163E7B74C520155417E32554545E950418D40B84752015541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>252648 - 3474832
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000E0000003333330326E9504185EB51F85F01554152B81E052EE9504185EB51387401554152B81E5535E950416666665671015541AE47E14A37E9504148E17AD475015541D7A370CD3DE95041CDCCCCEC720155410AD7A30051E9504185EB51C86A01554114AE47E14DE95041D7A3702D64015541000000404DE95041AE47E17A64015541AE47E1EA49E95041EC51B83E5E0155411F85EBD14AE95041000000D05D015541EC51B8AE3DE95041295C8F824201554114AE47111FE95041B81E85CB4F0155415C8FC26520E9504152B81EF5520155413333330326E9504185EB51F85F015541
+</a>
+
+<b>
+010600000001000000010300000001000000140000007E32554545E950418D40B84752015541BB87036E38E9504108997E95580155413E4587962FE95041CC53BBBC5901554137D08BD225E95041148F551959015541D1A2FA1A23E95041756B9F3B59015541E30B2D6C23E9504144F4CAF7590155413333330326E9504185EB51F85F01554196C476852CE950410DDC807C70015541B0F5B5BA33E95041E2F3A5FF6D015541824E88CA36E95041087896C274015541F40ED06C3DE95041351FC4B271015541D7A370CD3DE95041CDCCCCEC720155410AD7A30051E9504185EB51C86A01554114AE47E14DE95041D7A3702D64015541000000404DE95041AE47E17A64015541AE47E1EA49E95041EC51B83E5E0155411F85EBD14AE95041000000D05D015541D859407445E9504176F739A952015541A6F1BC4745E9504163E7B74C520155417E32554545E950418D40B84752015541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>580765 - 57041
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001E000000C28D8EC455CE5041DF02701EE1395541D00E6D8056CE504100603498E13955416384F41457CE5041B03579F8E1395541E522D6525DCE5041FFC0B1EFE33955413E51226566CE5041640F6032E6395541818DF4FF67CE50414F8B7718E23955416429290077CE504107575980E4395541000000A07FCE5041713D0A47CC395541713D0A177FCE5041333333A3C9395541D7A3704D75CE504185EB5178C73955413D0AD7E366CE50418FC2F578C4395541C3F528BC5DCE50417B14AEC7C2395541CDCCCC7C5DCE5041A4703D4AC4395541E17A14DE55CE504152B81E65C13955411F85EBC14DCE5041333333D3BF395541B81E854B44CE504100000010BC395541AE47E1FA3FCE504185EB5138B93955419A9999A940CE5041E17A148EBA395541333333033FCE504152B81E85BC3955415C8FC27540CE5041295C8FA2BE395541E17A144E42CE5041CDCCCCBCC2395541D7A3703D44CE504185EB5168C8395541C3F5287C45CE504166666696CB3955419A9999F947CE50410AD7A3A0D1395541713D0A774ECE504114AE4711DC3955412C8C887C4FCE5041661424E3DC3955410EAB3E7050CE50410156E8C1DC395541F2ED250353CE504199562544DF395541954D753753CE5041F1032277DF395541C28D8EC455CE5041DF02701EE1395541
+</a>
+
+<b>
+010600000001000000010300000001000000230000000CAB3E7050CE50410056E8C1DC395541E4ED250353CE50418F562544DF395541066AA8B753CE50415AA939CADF395541C28D8EC455CE5041DD02701EE1395541CC0E6D8056CE504104603498E13955411F8DA2685ACE50419E906BB7E2395541FC3ED09657CE5041E998FB01DC3955417AF3F36F57CE504118C82FC9DB395541D7A3705D57CE5041CDCCCCDCDB3955410000005055CE50419A999919DA395541713D0A6753CE50419A999949D8395541B81E852B51CE5041A4703DEAD539554185EB51084FCE50410AD7A350D3395541F6285C8F4CCE5041D7A370FDCF39554185EB51D849CE50417B14AED7CB3955410AD7A30048CE504185EB5118C93955411F85EBF145CE5041A4703D3AC5395541B81E859B43CE5041713D0AD7C0395541A4703DEA41CE5041C3F5289CBD3955418D9999A940CE5041147B148EBA395541333333033FCE504152B81E85BC3955415C8FC27540CE5041295C8FA2BE395541E17A144E42CE5041CDCCCCBCC2395541D7A3703D44CE504185EB5168C8395541C3F5287C45CE504166666696CB3955419A9999F947CE50410AD7A3A0D1395541713D0A774ECE504114AE4711DC3955412D8C887C4FCE5041671424E3DC3955416478408C4FCE5041EB5CFFE0DC3955412CAF478D4FCE50415B78DBE0DC395541E7DAA1A54FCE50411E5B89DDDC39554171CCCBC54FCE5041A28B26D9DC395541666666E64FCE5041000000B0DC395541D0D1410C50CE5041B8D08ACFDC3955410CAB3E7050CE50410056E8C1DC395541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>253101 - 3057549
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000D000000000000A002B65041E17A141E5F26554114AE47311AB65041713D0AA755265541A4703D1A21B650410AD7A3E052265541CDCCCC7C29B65041295C8F824F2655410AD7A36016B650415C8FC29538265541C3F528AC00B65041B81E858B1E26554166666616F8B550411F85EBE12126554100000020F1B55041713D0A972426554133333333DCB55041295C8F3231265541F6285C3FD3B55041CDCCCCCC37265541713D0A47E7B550415C8FC2A54F26554148E17AE4F7B55041D7A3706D63265541000000A002B65041E17A141E5F265541
+</a>
+
+<b>
+010600000001000000010300000002000000A30000004C85D817A1B55041406122B1752655410A585067A4B55041E09C7A8D6E265541F3BE08B4A8B55041FA46B8BA6626554101A0CB84AAB550416F881BCB63265541E17A147EACB55041B81E850B60265541DE692428AEB5504134C3EEE85D265541118E2B4DAEB5504145160DAD5D265541EEF476B6B2B550417606AD1058265541FEB45497B4B5504140D5A1A755265541C289DF20B8B5504116BEA51D51265541000000C0B9B550418FC2F5084F26554190E4B406BBB55041AA3CD3B24D26554135149AE3BBB55041C07254AE4C2655416A63DD87BEB55041D048F59849265541969FE7B0C1B55041422A507546265541242EFA70C4B550419088EFB94326554153B42C89C6B55041AA5A50A541265541EC51B80EC8B55041D7A3700D4026554193FBD119C8B550410DF2400540265541E66C4C34C9B5504108CCBEFE3E265541D578E95EC9B55041FA7E6AD43E265541B23B3772CEB550412E9C042B3B2655419AB37AF9D0B5504114C70A5839265541C064C0FFD6B55041F0045AFF342655411E30648DDAB550415435A5693226554133333333DCB55041295C8F3231265541169B57F2E9B55041FDCA3EEA282655416A16CB05EEB5504168808E75262655417BE5C9ABEFB55041A3F84C772526554100000020F1B55041713D0A9724265541BE099140F2B55041594FD326242655413BA0F1C3F2B55041AC3BEDE323265541B55AFE10F6B55041EB8F1FAB2226554166666616F8B550411F85EBE1212655410D869DEFF8B5504173B9798D2126554123063F45FCB550411E509E4120265541D46260E9FEB550416F2FC43A1F26554163047CA200B65041130E488F1E265541C3F528AC00B65041B81E858B1E2655415548AFC903B65041C5214AA11D2655411E9B597905B650414CC882221D265541295C8F0208B650413D0AD7631C265541F27618B30AB650415D7CB4991B265541A0883EF70FB650412707ED0D1A26554104AB7C6413B65041BC47640C192655410B8C83E515B6504103ED1450182655415C9FB5871CB650415C59135D162655416CE0D17521B65041BBFA35EA1426554161DA61C823B65041FF25983B14265541F6285C1F2DB65041D7A3707D112655410DCF67432EB6504114A6F02F112655411101B7AB2FB650413E2E53D010265541AB66176B34B65041F612CD8D0F2655414EF485CA37B65041AA2FACA80E26554135101F6F3CB6504175C2CF6C0D26554175CECEB745B650413209C3EB0A26554109E18A144BB65041CFF1DF59092655417449F74B51B6504184D0C5870726554130C667A652B65041F45CF41F0726554199DBE69652B6504101861912062655411F85EB9152B65041AE47E10A0626554137BF689652B65041F570860906265541E5982E9552B650417B5C2AF40526554126BD1D914FB65041C829C3C006265541EC62336E49B6504117AA306A08265541416200BD41B650412BA87A7F0A265541FF20F9413EB650419976DA4D0B2655417431E06F37B65041EDC578D20C265541DACDBEEF33B65041880AEB990D265541067A0D5B2EB6504164C887320F26554156EF949E26B65041313B5C6911265541F15C852923B65041A8F547631226554134C81E6E1FB65041C89B5569132655415337CC8F1CB6504113BFBF3214265541EA3CB4BE13B650416DBFD69D162655419F5BE10D10B6504177EB4BB0172655418F3A6F430DB65041E3DBDEE018265541EBB70ED50BB65041B45B0F7D19265541F6564D350AB65041D6C24C2E1A265541428AA10D09B65041525F2D991A2655416199DBCB07B65041D777FCEC1A265541F2E89AC401B650412A00F17E1C2655418FBBDBB1FEB550418776DB4B1D265541C58ED1E3FBB55041C1B2E0061E265541B7AE08CFF8B55041BC0A53D41E265541014387ACF6B550411BDFA2CB1F265541AFD2BCB3F2B550418C365DC62126554192E71273EFB55041A598546523265541AC6D1691EAB55041072383DD252655410072FE94E7B55041C49CA19C272655414F74C03CE6B550416CA51166282655417E29DEF2DFB55041EDE01C142C265541219722F8DCB55041B68824EC2D2655413E41CAB4D9B550415B0F133C30265541BDE0FA4DD8B550412477543A312655419319A7B7D6B55041F7A7415A32265541974AE8D0D2B550413E91F91D35265541077BE619CFB55041A196DDBF3726554180E45528CDB55041A646F84B392655415461335CC8B55041645CF7723D265541A2BF1B59C2B550413CA41BA74226554104923410BDB55041D64A2E2848265541E8B1D601B7B550417ECAA79A4E265541C09E94EFB4B55041F32306625126554174F9CABCB1B550410E4678AC552655416BE18A88AFB5504169D470A15826554100085A03ADB550419F58FF025C2655418C5439CDABB5504157A757A95D265541636B7EC3A8B55041883299B96226554118880504A7B550410E7268A3652655411791D924A5B550410C3B0DC268265541919D90F7A2B55041B2C944A06C265541CA517556A1B5504138DAC9F46F26554117A2D076A0B55041ED01E4BD71265541393028199EB55041E1DEC99376265541022DA6769CB55041B41C2CEB79265541C733E4619AB5504102F3112C7E2655417150CDBB98B55041C72EC68A81265541FFB1D0D095B550416651888187265541221F4F7F93B55041A624DC478C265541BBF7781D93B55041D060EEB592265541E14FFC0B92B55041F9A62524932655417F6ABC6491B55041508D97BE912655416F01D5AB8FB550418759349C942655418729A14B8DB55041E5A32E90982655410D31C7578AB550418F95D4799D26554130A8578D87B550414251911EA2265541A476D6BE86B55041B78D9288A32655412420093186B55041FFF7483BA52655412D667EFA84B550413E874AF3A82655418178F2FA83B5504146B9B302AC2655414898A78183B550414A2C8A76AD265541B7A88B1A82B5504150556FC3B1265541E7772BA180B55041D468AE4BB4265541967779AB7EB55041DF8B029DB7265541948B6AFA7DB550410D5637D1B8265541E7A0F3627DB55041572CE47DBA265541A0AB03717CB55041226E9F2ABD2655416E2C8D987BB55041DAA2418FBF2655417BF5E01A7BB55041377ADAECC0265541FF92F38579B55041A694BBE5C22655418294AA4776B550419E09F7F0C626554154066FAA74B55041649DCA02C92655417697FE3773B55041183FB0C6CA265541105BDDCC73B5504193874634CB265541BACF734C79B550410FF05BC2C4265541E07D6EAA7EB550415656D677BE265541504CC88A81B550410680CB22BB2655412BB19B5E83B55041332A1F52B92655417EBC97DF87B550415701D259B6265541A00533D38EB550413619A590B2265541C14ECEC695B55041DB5C467CAE265541C087C2BC9AB550413CB98D62AB2655413E2C4E9AA2B550418C19AD01A126554117002D08A1B55041335D670C9E26554116D207AA9BB55041FD51013A972655410996B08895B550411C6221BD8F265541BC1E4A8C95B550412FBDF5AC8F2655413333338396B5504148E17A248B2655414855B89996B55041CC11A5F28A26554162788E659AB55041EE030B8C8226554185EB51D89AB55041E17A148E812655414C85D817A1B55041406122B17526554106000000C473F32998B5504120A55416A22655416FB78AC397B55041B7BB235CA1265541256367ED96B55041033D8ECE9E2655413F79AC539AB550412CF793269D26554158CF9F189BB5504172977A3EA0265541C473F32998B5504120A55416A2265541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>253101 - 3334958
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000D000000000000A002B65041E17A141E5F26554114AE47311AB65041713D0AA755265541A4703D1A21B650410AD7A3E052265541CDCCCC7C29B65041295C8F824F2655410AD7A36016B650415C8FC29538265541C3F528AC00B65041B81E858B1E26554166666616F8B550411F85EBE12126554100000020F1B55041713D0A972426554133333333DCB55041295C8F3231265541F6285C3FD3B55041CDCCCCCC37265541713D0A47E7B550415C8FC2A54F26554148E17AE4F7B55041D7A3706D63265541000000A002B65041E17A141E5F265541
+</a>
+
+<b>
+010600000001000000010300000002000000A30000004C85D817A1B55041406122B1752655410A585067A4B55041E09C7A8D6E265541F3BE08B4A8B55041FA46B8BA6626554101A0CB84AAB550416F881BCB63265541E17A147EACB55041B81E850B60265541DE692428AEB5504134C3EEE85D265541118E2B4DAEB5504145160DAD5D265541EEF476B6B2B550417606AD1058265541FEB45497B4B5504140D5A1A755265541C289DF20B8B5504116BEA51D51265541000000C0B9B550418FC2F5084F26554190E4B406BBB55041AA3CD3B24D26554135149AE3BBB55041C07254AE4C2655416A63DD87BEB55041D048F59849265541969FE7B0C1B55041422A507546265541242EFA70C4B550419088EFB94326554153B42C89C6B55041AA5A50A541265541EC51B80EC8B55041D7A3700D4026554193FBD119C8B550410DF2400540265541E66C4C34C9B5504108CCBEFE3E265541D578E95EC9B55041FA7E6AD43E265541B23B3772CEB550412E9C042B3B2655419AB37AF9D0B5504114C70A5839265541C064C0FFD6B55041F0045AFF342655411E30648DDAB550415435A5693226554133333333DCB55041295C8F3231265541169B57F2E9B55041FDCA3EEA282655416A16CB05EEB5504168808E75262655417BE5C9ABEFB55041A3F84C772526554100000020F1B55041713D0A9724265541BE099140F2B55041594FD326242655413BA0F1C3F2B55041AC3BEDE323265541B55AFE10F6B55041EB8F1FAB2226554166666616F8B550411F85EBE1212655410D869DEFF8B5504173B9798D2126554123063F45FCB550411E509E4120265541D46260E9FEB550416F2FC43A1F26554163047CA200B65041130E488F1E265541C3F528AC00B65041B81E858B1E2655415548AFC903B65041C5214AA11D2655411E9B597905B650414CC882221D265541295C8F0208B650413D0AD7631C265541F27618B30AB650415D7CB4991B265541A0883EF70FB650412707ED0D1A26554104AB7C6413B65041BC47640C192655410B8C83E515B6504103ED1450182655415C9FB5871CB650415C59135D162655416CE0D17521B65041BBFA35EA1426554161DA61C823B65041FF25983B14265541F6285C1F2DB65041D7A3707D112655410DCF67432EB6504114A6F02F112655411101B7AB2FB650413E2E53D010265541AB66176B34B65041F612CD8D0F2655414EF485CA37B65041AA2FACA80E26554135101F6F3CB6504175C2CF6C0D26554175CECEB745B650413209C3EB0A26554109E18A144BB65041CFF1DF59092655417449F74B51B6504184D0C5870726554130C667A652B65041F45CF41F0726554199DBE69652B6504101861912062655411F85EB9152B65041AE47E10A0626554137BF689652B65041F570860906265541E5982E9552B650417B5C2AF40526554126BD1D914FB65041C829C3C006265541EC62336E49B6504117AA306A08265541416200BD41B650412BA87A7F0A265541FF20F9413EB650419976DA4D0B2655417431E06F37B65041EDC578D20C265541DACDBEEF33B65041880AEB990D265541067A0D5B2EB6504164C887320F26554156EF949E26B65041313B5C6911265541F15C852923B65041A8F547631226554134C81E6E1FB65041C89B5569132655415337CC8F1CB6504113BFBF3214265541EA3CB4BE13B650416DBFD69D162655419F5BE10D10B6504177EB4BB0172655418F3A6F430DB65041E3DBDEE018265541EBB70ED50BB65041B45B0F7D19265541F6564D350AB65041D6C24C2E1A265541428AA10D09B65041525F2D991A2655416199DBCB07B65041D777FCEC1A265541F2E89AC401B650412A00F17E1C2655418FBBDBB1FEB550418776DB4B1D265541C58ED1E3FBB55041C1B2E0061E265541B7AE08CFF8B55041BC0A53D41E265541014387ACF6B550411BDFA2CB1F265541AFD2BCB3F2B550418C365DC62126554192E71273EFB55041A598546523265541AC6D1691EAB55041072383DD252655410072FE94E7B55041C49CA19C272655414F74C03CE6B550416CA51166282655417E29DEF2DFB55041EDE01C142C265541219722F8DCB55041B68824EC2D2655413E41CAB4D9B550415B0F133C30265541BDE0FA4DD8B550412477543A312655419319A7B7D6B55041F7A7415A32265541974AE8D0D2B550413E91F91D35265541077BE619CFB55041A196DDBF3726554180E45528CDB55041A646F84B392655415461335CC8B55041645CF7723D265541A2BF1B59C2B550413CA41BA74226554104923410BDB55041D64A2E2848265541E8B1D601B7B550417ECAA79A4E265541C09E94EFB4B55041F32306625126554174F9CABCB1B550410E4678AC552655416BE18A88AFB5504169D470A15826554100085A03ADB550419F58FF025C2655418C5439CDABB5504157A757A95D265541636B7EC3A8B55041883299B96226554118880504A7B550410E7268A3652655411791D924A5B550410C3B0DC268265541919D90F7A2B55041B2C944A06C265541CA517556A1B5504138DAC9F46F26554117A2D076A0B55041ED01E4BD71265541393028199EB55041E1DEC99376265541022DA6769CB55041B41C2CEB79265541C733E4619AB5504102F3112C7E2655417150CDBB98B55041C72EC68A81265541FFB1D0D095B550416651888187265541221F4F7F93B55041A624DC478C265541BBF7781D93B55041D060EEB592265541E14FFC0B92B55041F9A62524932655417F6ABC6491B55041508D97BE912655416F01D5AB8FB550418759349C942655418729A14B8DB55041E5A32E90982655410D31C7578AB550418F95D4799D26554130A8578D87B550414251911EA2265541A476D6BE86B55041B78D9288A32655412420093186B55041FFF7483BA52655412D667EFA84B550413E874AF3A82655418178F2FA83B5504146B9B302AC2655414898A78183B550414A2C8A76AD265541B7A88B1A82B5504150556FC3B1265541E7772BA180B55041D468AE4BB4265541967779AB7EB55041DF8B029DB7265541948B6AFA7DB550410D5637D1B8265541E7A0F3627DB55041572CE47DBA265541A0AB03717CB55041226E9F2ABD2655416E2C8D987BB55041DAA2418FBF2655417BF5E01A7BB55041377ADAECC0265541FF92F38579B55041A694BBE5C22655418294AA4776B550419E09F7F0C626554154066FAA74B55041649DCA02C92655417697FE3773B55041183FB0C6CA265541105BDDCC73B5504193874634CB265541BACF734C79B550410FF05BC2C4265541E07D6EAA7EB550415656D677BE265541504CC88A81B550410680CB22BB2655412BB19B5E83B55041332A1F52B92655417EBC97DF87B550415701D259B6265541A00533D38EB550413619A590B2265541C14ECEC695B55041DB5C467CAE265541C087C2BC9AB550413CB98D62AB2655413E2C4E9AA2B550418C19AD01A126554117002D08A1B55041335D670C9E26554116D207AA9BB55041FD51013A972655410996B08895B550411C6221BD8F265541BC1E4A8C95B550412FBDF5AC8F2655413333338396B5504148E17A248B2655414855B89996B55041CC11A5F28A26554162788E659AB55041EE030B8C8226554185EB51D89AB55041E17A148E812655414C85D817A1B55041406122B17526554106000000C473F32998B5504120A55416A22655416FB78AC397B55041B7BB235CA1265541256367ED96B55041033D8ECE9E2655413F79AC539AB550412CF793269D26554158CF9F189BB5504172977A3EA0265541C473F32998B5504120A55416A2265541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>253612 - 1665394
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000012000000333333E32EC75041D7A370BD09255541713D0AC730C750411F85EB610F25554152B81EB52FC750410000003003255541AE47E13A32C75041C3F5284C032555419A9999E92FC75041EC51B8EEE8245541D7A370FD24C7504148E17A34EA245541CDCCCC8C1BC750419A999929EA245541333333531CC75041CDCCCC1CF6245541CDCCCC8C15C750419A9999A9F6245541E17A148E16C750417B14AE1702255541D7A3705D17C75041E17A142E03255541D7A3709D18C7504185EB516811255541A4703D5A1DC75041F6285CDF0E255541CDCCCCAC22C750415C8FC2050C255541AE47E17A28C75041A4703DEA08255541E17A14AE29C750415C8FC24508255541A4703DBA2EC750413D0AD74309255541333333E32EC75041D7A370BD09255541
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000D7A3709D18C7504185EB5168112555417B14AE2714C75041AE47E1CA1325554185EB514812C75041B81E85CB142555417B14AE871BC75041CDCCCCDC252555418FC2F5D821C75041CDCCCCFC222555411F85EBF126C75041B81E857B202555413F3DD58C2EC7504114182E301C255541BAA3FE1F28C7504157227E430D255541E2FC12CC2EC750419602C97809255541063887C12EC7504127127A5909255541E17A14AE29C750415C8FC24508255541AE47E17A28C75041A4703DEA08255541CDCCCCAC22C750415C8FC2050C255541A4703D5A1DC75041F6285CDF0E255541D7A3709D18C7504185EB516811255541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>253612 - 3191927
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000012000000333333E32EC75041D7A370BD09255541713D0AC730C750411F85EB610F25554152B81EB52FC750410000003003255541AE47E13A32C75041C3F5284C032555419A9999E92FC75041EC51B8EEE8245541D7A370FD24C7504148E17A34EA245541CDCCCC8C1BC750419A999929EA245541333333531CC75041CDCCCC1CF6245541CDCCCC8C15C750419A9999A9F6245541E17A148E16C750417B14AE1702255541D7A3705D17C75041E17A142E03255541D7A3709D18C7504185EB516811255541A4703D5A1DC75041F6285CDF0E255541CDCCCCAC22C750415C8FC2050C255541AE47E17A28C75041A4703DEA08255541E17A14AE29C750415C8FC24508255541A4703DBA2EC750413D0AD74309255541333333E32EC75041D7A370BD09255541
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000D7A3709D18C7504185EB5168112555417B14AE2714C75041AE47E1CA1325554185EB514812C75041B81E85CB142555417B14AE871BC75041CDCCCCDC252555418FC2F5D821C75041CDCCCCFC222555411F85EBF126C75041B81E857B202555413F3DD58C2EC7504114182E301C255541BAA3FE1F28C7504157227E430D255541E2FC12CC2EC750419602C97809255541063887C12EC7504127127A5909255541E17A14AE29C750415C8FC24508255541AE47E17A28C75041A4703DEA08255541CDCCCCAC22C750415C8FC2050C255541A4703D5A1DC75041F6285CDF0E255541D7A3709D18C7504185EB516811255541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>311186 - 3011808
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B0000000000005049C6504100000010F16F54413333333362C65041A4703D6AE96F544114AE47D184C650413D0AD733E16F54411F85EBC181C650418FC2F588D86F54411F85EB517EC65041AE47E1CACE6F5441B81E85BB71C6504148E17AA4D16F54410AD7A3D05EC65041CDCCCCECD56F5441B81E85AB57C650411F85EBE1D76F5441F6285C8F50C6504114AE4711DA6F5441A4703DFA42C6504114AE4721DF6F54410000005049C6504100000010F16F5441
+</a>
+
+<b>
+0106000000010000000103000000010000001500000077A819AFC3C650410AAD2176C96F5441713D0A37C6C6504100000040BE6F5441F6285C9F91C65041C3F5286CCA6F54411F85EB517EC65041AE47E1CACE6F5441B81E85BB71C6504148E17AA4D16F54410AD7A3D05EC65041CDCCCCECD56F5441B81E85AB57C650411F85EBE1D76F5441F6285C8F50C6504114AE4711DA6F5441A4703DFA42C6504114AE4721DF6F54410000005049C6504100000010F16F5441A4F83F5A49C65041A3F4022DF16F544126F482675FC6504177BB6490EA6F544134E7F03C61C65041B43E091BEA6F544126CB093665C6504142C63309E96F54419146581A75C65041921939EEE46F5441B949558C77C65041B067824CE46F54418904DAE584C650413A940E6EE16F544132D2EB8F82C65041AB4BE8CFDA6F54414813442082C65041E0618C93D96F5441D6DBE603C3C65041AF0B8FB8CA6F544177A819AFC3C650410AAD2176C96F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>311186 - 3330511
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B0000000000005049C6504100000010F16F54413333333362C65041A4703D6AE96F544114AE47D184C650413D0AD733E16F54411F85EBC181C650418FC2F588D86F54411F85EB517EC65041AE47E1CACE6F5441B81E85BB71C6504148E17AA4D16F54410AD7A3D05EC65041CDCCCCECD56F5441B81E85AB57C650411F85EBE1D76F5441F6285C8F50C6504114AE4711DA6F5441A4703DFA42C6504114AE4721DF6F54410000005049C6504100000010F16F5441
+</a>
+
+<b>
+0106000000010000000103000000010000001500000077A819AFC3C650410AAD2176C96F5441713D0A37C6C6504100000040BE6F5441F6285C9F91C65041C3F5286CCA6F54411F85EB517EC65041AE47E1CACE6F5441B81E85BB71C6504148E17AA4D16F54410AD7A3D05EC65041CDCCCCECD56F5441B81E85AB57C650411F85EBE1D76F5441F6285C8F50C6504114AE4711DA6F5441A4703DFA42C6504114AE4721DF6F54410000005049C6504100000010F16F5441A4F83F5A49C65041A3F4022DF16F544126F482675FC6504177BB6490EA6F544134E7F03C61C65041B43E091BEA6F544126CB093665C6504142C63309E96F54419146581A75C65041921939EEE46F5441B949558C77C65041B067824CE46F54418904DAE584C650413A940E6EE16F544132D2EB8F82C65041AB4BE8CFDA6F54414813442082C65041E0618C93D96F5441D6DBE603C3C65041AF0B8FB8CA6F544177A819AFC3C650410AAD2176C96F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>254158 - 3070811
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000007000000F6285C7FAF8650411F85EBD1B72055410AD7A3E0A986504148E17A74A820554100000030A3865041EC51B8BEAB20554185EB5128A986504152B81E95BA205541295C8F62AF86504185EB51C8C920554166666636B5865041B81E857BC7205541F6285C7FAF8650411F85EBD1B7205541
+</a>
+
+<b>
+0106000000010000000103000000010000000700000066666636B5865041B81E857BC72055419A999909BF865041A4703D9AC3205541E17A14AEBF86504166666646C22055410436F9BEBB8650416C66D028B520554138C39EF2AF8650414F2ACD0DB920554191177A1EB58650410132E184C720554166666636B5865041B81E857BC7205541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>254158 - 3365027
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000007000000F6285C7FAF8650411F85EBD1B72055410AD7A3E0A986504148E17A74A820554100000030A3865041EC51B8BEAB20554185EB5128A986504152B81E95BA205541295C8F62AF86504185EB51C8C920554166666636B5865041B81E857BC7205541F6285C7FAF8650411F85EBD1B7205541
+</a>
+
+<b>
+0106000000010000000103000000010000000700000066666636B5865041B81E857BC72055419A999909BF865041A4703D9AC3205541E17A14AEBF86504166666646C22055410436F9BEBB8650416C66D028B520554138C39EF2AF8650414F2ACD0DB920554191177A1EB58650410132E184C720554166666636B5865041B81E857BC7205541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>254419 - 374082
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000090000000AD7A3B074B150411F85EBE1A722544152B81E0569B15041EC51B84E982254415C8FC28566B150410AD7A3909A225441E17A143E64B15041000000A09C2254410AD7A3F07AB150419A999929B82254410AD7A34085B150418FC2F5D8BD2254418FC2F58888B15041EC51B8CEB9225441C3F528EC7DB1504152B81E35B42254410AD7A3B074B150411F85EBE1A7225441
+</a>
+
+<b>
+010600000001000000010300000001000000180000000BFCF27F72B15041AEE32AB0A4225441FEB4F2B874B150412270851EA3225441B39451C86CB15041B4C98215982254418EF6B29D6BB1504147E52B6696225441A4501F866AB150417BFCB13397225441CEA4380F69B15041EA574B47982254415BD70B1169B15041720CB8499822544138E287B368B150414E037898982254415A67EF6767B15041940A33C49922544104EB78A666B150419F3912739A2254417EDE18A16AB1504130D33CC19F225441931DBC656EB150419C0FD700A5225441FC2E91A071B1504101389380A82254416EDDAE3878B1504104285D62B12254416D384B4C79B150416EDE9589B322544175F18CF879B15041F61F42D3B522544122C1B5E97AB15041DD61EE1CB82254418CDACE5885B1504152F936BBBD225441F1C9287688B1504111FADBE5B9225441FF35270D84B1504187B40B71B7225441C3F528EC7DB1504152B81E35B42254410AD7A3B074B150411F85EBE1A72254419216D0D274B15041DD0C8CCBA72254410BFCF27F72B15041AEE32AB0A4225441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>256135 - 367713
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000B0000006666667612C050419A999999522A54418FC2F5D813C05041713D0A27562A54410AD7A34025C0504152B81E25552A54413D0AD7333EC050418FC2F588532A5441713D0A2757C05041CDCCCCEC512A54415C8FC2756CC05041CDCCCC8C502A5441F6285C7F6BC05041295C8F424D2A5441F6285CEF65C05041713D0A473A2A5441AE47E19A50C05041B81E857B402A544152B81ED52EC0504152B81E554A2A54416666667612C050419A999999522A5441
+</a>
+
+<b>
+01060000000100000001030000000100000009000000713D0A2757C05041CDCCCCEC512A5441677A56726CC05041AD55058D502A5441146EC3B16BC05041F16159044E2A5441306B52721CC05041453D8A60532A5441088679DB16C05041486A9979542A5441F502C4F513C0504166605F25562A54410AD7A34025C0504152B81E25552A54413D0AD7333EC050418FC2F588532A5441713D0A2757C05041CDCCCCEC512A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>256271 - 367713
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000001E0000003333331371C050410AD7A340502A54415C8FC2756CC05041CDCCCC8C502A5441713D0A2757C05041CDCCCCEC512A54413D0AD7333EC050418FC2F588532A54410AD7A34025C0504152B81E25552A54418FC2F5D813C05041713D0A27562A54416666667612C050419A999999522A544148E17A640EC050411F85EB31482A5441C3F528FC0CC0504133333303492A544148E17AC40BC050417B14AEB7492A5441000000D007C05041EC51B84E4B2A54415C8FC22501C05041F6285C2F4E2A5441295C8F32FABF5041E17A149E512A544148E17A44F9BF5041713D0A17522A5441B81E855BF9BF50413D0AD783522A54410AD7A350FCBF5041B81E858B602A5441E17A14CEFDBF5041D7A3709D672A5441CDCCCC5CFEBF50413D0AD7436A2A54410AD7A3A000C0504133333303752A5441295C8FD202C05041CDCCCC6C7F2A54419A9999990BC0504185EB51C8812A54419A99997911C05041E17A144E852A5441000000901AC05041A4703D7A702A5441666666E645C05041713D0A676B2A544152B81ED566C0504185EB5148712A54416666662665C050413D0AD7A3672A5441B81E850B67C05041AE47E16A602A544148E17A0473C050418FC2F588622A5441000000D071C05041B81E850B562A54413333331371C050410AD7A340502A5441
+</a>
+
+<b>
+01060000000100000001030000000100000009000000713D0A2757C05041CDCCCCEC512A5441677A56726CC05041AD55058D502A5441146EC3B16BC05041F16159044E2A5441306B52721CC05041453D8A60532A5441088679DB16C05041486A9979542A5441F502C4F513C0504166605F25562A54410AD7A34025C0504152B81E25552A54413D0AD7333EC050418FC2F588532A5441713D0A2757C05041CDCCCCEC512A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>256369 - 189705
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003200000014AE4771ABBF50410AD7A37086275441B81E855BAEBF50415C8FC2B587275441F6285CBFB1BF50415C8FC2458A27544166666606B4BF5041EC51B84E8C2754415C8FC225B8BF504114AE47D1902754418FC2F538BBBF5041F6285C7F962754415C8FC2D5BBBF5041AE47E1BA992754418FC2F538BBBF50413D0AD7439C275441E17A14CEBEBF50411F85EBA1A02754415C8FC275C3BF504152B81EC59D2754413D0AD713C4BF5041CDCCCC5C9D27544185EB51C8C4BF50415C8FC2E59C275441D7A3708DC2BF5041CDCCCCDC9927544100000060C1BF504185EB510898275441E17A147EC0BF50418FC2F5B8962754413D0AD743BFBF50418FC2F53895275441333333B3BEBF5041F6285C5F942754411F85EB41BEBF5041E17A141E93275441A4703D8ABDBF50418FC2F5889127544148E17AC4BCBF50417B14AE479027544114AE4791BBBF5041295C8F328F275441713D0A07BABF5041AE47E1DA8D27544166666636B9BF5041B81E852B8D275441713D0A47B8BF50417B14AE178C2754417B14AE97B7BF5041333333438B275441AE47E12AB7BF504185EB51A88A2754418FC2F5B8B6BF5041C3F5283C8A275441AE47E12AB7BF5041D7A3701D89275441F6285CFFB7BF5041333333938727544152B81EF5B3BF5041666666B682275441A4703DAAB4BF50413D0AD7F380275441AE47E15AB2BF50415C8FC2757E275441B81E856BAEBF5041D7A3701D78275441000000B0AABF50418FC2F598792754418FC2F548A7BF5041666666F67627544152B81E45A1BF5041AE47E11A77275441EC51B8DEA1BF5041713D0A3778275441CDCCCCFCA1BF5041295C8F427927544100000040A3BF5041A4703D9A7B2754415C8FC2A5A4BF5041D7A370BD7D275441E17A140EA0BF5041B81E859B8127544152B81E55A0BF5041713D0A57822754418FC2F5A89FBF5041D7A370AD832754410AD7A3C09ABF504152B81EF5862754419A9999A99CBF50411F85EB51882754410AD7A3A0A0BF50419A9999398627544148E17AD4A3BF5041713D0A4785275441E17A14CEA7BF5041CDCCCC8C84275441D7A3701DA9BF50418FC2F5088527544114AE4771ABBF50410AD7A37086275441
+</a>
+
+<b>
+010600000001000000010300000001000000280000005C8FC225B8BF504114AE47D1902754418180CC16BABF5041BB33636794275441F7039264BABF504125260BF79427544147754BA3BABF5041D9B9E76A952754411F85EB41BEBF5041E17A141E93275441A4703D8ABDBF50418FC2F5889127544148E17AC4BCBF50417B14AE4790275441713D0A07BABF5041AE47E1DA8D27544166666636B9BF5041B81E852B8D275441713D0A47B8BF50417B14AE178C2754417B14AE97B7BF5041333333438B275441AE47E12AB7BF504185EB51A88A2754418FC2F5B8B6BF5041C3F5283C8A275441AE47E12AB7BF5041D7A3701D89275441F6285CFFB7BF5041333333938727544152B81EF5B3BF5041666666B682275441A4703DAAB4BF50413D0AD7F380275441AE47E15AB2BF50415C8FC2757E275441B81E856BAEBF5041D7A3701D78275441000000B0AABF50418FC2F598792754418FC2F548A7BF5041666666F67627544152B81E45A1BF5041AE47E11A77275441EC51B8DEA1BF5041713D0A3778275441CDCCCCFCA1BF5041295C8F427927544100000040A3BF5041A4703D9A7B2754415C8FC2A5A4BF5041D7A370BD7D275441E17A140EA0BF5041B81E859B8127544152B81E55A0BF5041713D0A57822754418FC2F5A89FBF5041D7A370AD832754410AD7A3C09ABF504152B81EF5862754419A9999A99CBF50411F85EB51882754410AD7A3A0A0BF50419A9999398627544148E17AD4A3BF5041713D0A4785275441E17A14CEA7BF5041CDCCCC8C84275441D7A3701DA9BF50418FC2F5088527544114AE4771ABBF50410AD7A37086275441B81E855BAEBF50415C8FC2B587275441F6285CBFB1BF50415C8FC2458A27544166666606B4BF5041EC51B84E8C2754415C8FC225B8BF504114AE47D190275441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>256369 - 350223
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003200000014AE4771ABBF50410AD7A37086275441B81E855BAEBF50415C8FC2B587275441F6285CBFB1BF50415C8FC2458A27544166666606B4BF5041EC51B84E8C2754415C8FC225B8BF504114AE47D1902754418FC2F538BBBF5041F6285C7F962754415C8FC2D5BBBF5041AE47E1BA992754418FC2F538BBBF50413D0AD7439C275441E17A14CEBEBF50411F85EBA1A02754415C8FC275C3BF504152B81EC59D2754413D0AD713C4BF5041CDCCCC5C9D27544185EB51C8C4BF50415C8FC2E59C275441D7A3708DC2BF5041CDCCCCDC9927544100000060C1BF504185EB510898275441E17A147EC0BF50418FC2F5B8962754413D0AD743BFBF50418FC2F53895275441333333B3BEBF5041F6285C5F942754411F85EB41BEBF5041E17A141E93275441A4703D8ABDBF50418FC2F5889127544148E17AC4BCBF50417B14AE479027544114AE4791BBBF5041295C8F328F275441713D0A07BABF5041AE47E1DA8D27544166666636B9BF5041B81E852B8D275441713D0A47B8BF50417B14AE178C2754417B14AE97B7BF5041333333438B275441AE47E12AB7BF504185EB51A88A2754418FC2F5B8B6BF5041C3F5283C8A275441AE47E12AB7BF5041D7A3701D89275441F6285CFFB7BF5041333333938727544152B81EF5B3BF5041666666B682275441A4703DAAB4BF50413D0AD7F380275441AE47E15AB2BF50415C8FC2757E275441B81E856BAEBF5041D7A3701D78275441000000B0AABF50418FC2F598792754418FC2F548A7BF5041666666F67627544152B81E45A1BF5041AE47E11A77275441EC51B8DEA1BF5041713D0A3778275441CDCCCCFCA1BF5041295C8F427927544100000040A3BF5041A4703D9A7B2754415C8FC2A5A4BF5041D7A370BD7D275441E17A140EA0BF5041B81E859B8127544152B81E55A0BF5041713D0A57822754418FC2F5A89FBF5041D7A370AD832754410AD7A3C09ABF504152B81EF5862754419A9999A99CBF50411F85EB51882754410AD7A3A0A0BF50419A9999398627544148E17AD4A3BF5041713D0A4785275441E17A14CEA7BF5041CDCCCC8C84275441D7A3701DA9BF50418FC2F5088527544114AE4771ABBF50410AD7A37086275441
+</a>
+
+<b>
+010600000001000000010300000001000000280000005C8FC225B8BF504114AE47D1902754418180CC16BABF5041BB33636794275441F7039264BABF504125260BF79427544147754BA3BABF5041D9B9E76A952754411F85EB41BEBF5041E17A141E93275441A4703D8ABDBF50418FC2F5889127544148E17AC4BCBF50417B14AE4790275441713D0A07BABF5041AE47E1DA8D27544166666636B9BF5041B81E852B8D275441713D0A47B8BF50417B14AE178C2754417B14AE97B7BF5041333333438B275441AE47E12AB7BF504185EB51A88A2754418FC2F5B8B6BF5041C3F5283C8A275441AE47E12AB7BF5041D7A3701D89275441F6285CFFB7BF5041333333938727544152B81EF5B3BF5041666666B682275441A4703DAAB4BF50413D0AD7F380275441AE47E15AB2BF50415C8FC2757E275441B81E856BAEBF5041D7A3701D78275441000000B0AABF50418FC2F598792754418FC2F548A7BF5041666666F67627544152B81E45A1BF5041AE47E11A77275441EC51B8DEA1BF5041713D0A3778275441CDCCCCFCA1BF5041295C8F427927544100000040A3BF5041A4703D9A7B2754415C8FC2A5A4BF5041D7A370BD7D275441E17A140EA0BF5041B81E859B8127544152B81E55A0BF5041713D0A57822754418FC2F5A89FBF5041D7A370AD832754410AD7A3C09ABF504152B81EF5862754419A9999A99CBF50411F85EB51882754410AD7A3A0A0BF50419A9999398627544148E17AD4A3BF5041713D0A4785275441E17A14CEA7BF5041CDCCCC8C84275441D7A3701DA9BF50418FC2F5088527544114AE4771ABBF50410AD7A37086275441B81E855BAEBF50415C8FC2B587275441F6285CBFB1BF50415C8FC2458A27544166666606B4BF5041EC51B84E8C2754415C8FC225B8BF504114AE47D190275441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>256382 - 34387
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000020000006D00000000000000C9C050411F85EB51E52A5441C3F5283CCAC0504152B81E85E52A54418FC2F508CCC050419A999999E52A5441B81E85CBCDC050419A999999E52A54418FC2F5B8CEC05041A4703DBAE52A5441EC51B80ED0C050410AD7A3A0E52A54417B14AE97D1C050413D0AD723E52A5441AE47E1CAD2C05041A4703DEAE42A5441CDCCCC6CD5C0504185EB51B8E42A54413D0AD743D6C05041F6285C1FE42A544185EB51B8D8C05041AE47E13AE22A5441E17A14DEDAC0504185EB51B8E02A54415C8FC295DCC050411F85EBC1DF2A5441CDCCCC4CDEC05041D7A370EDDE2A5441000000D0DFC05041A4703DDADD2A5441295C8F12E1C050413D0AD743DC2A54419A9999D9E2C0504100000080DA2A5441B81E856BE4C05041EC51B86ED92A544166666626E5C050417B14AE57D82A5441EC51B8CEE5C0504185EB5108D82A544148E17A64E6C05041E17A145ED82A5441CDCCCC6CE6C0504100000000D92A5441C3F528FCE6C05041A4703D7AD92A54410AD7A360E7C05041AE47E17ADA2A5441A4703DFAE7C050417B14AEB7D82A5441713D0A47E8C0504100000040D82A54417B14AEA7E8C05041CDCCCC0CD82A5441295C8F32E9C050411F85EB21D82A54413D0AD713EAC050411F85EBF1D82A54418FC2F598EAC050419A999909D92A54419A999919EBC05041E17A146ED92A5441D7A3709DEBC05041F6285C4FD92A54410AD7A330ECC0504166666646D92A5441A4703D9AECC05041AE47E1EAD92A5441A4703D1AEDC0504133333333DB2A5441295C8F72EDC05041295C8FE2D92A5441C3F528FCEDC05041713D0A67D92A5441F6285C4FEFC0504185EB5128D92A5441CDCCCCFCEFC05041295C8FC2D82A54417B14AE87EEC05041E17A144ED82A5441AE47E1CAEBC05041CDCCCCFCD62A5441D7A3706DEAC0504100000010D62A5441A4703D1AE9C0504133333353D52A544166666676E6C05041666666E6D32A5441295C8FB2E4C050411F85EB11D32A5441F6285C2FE3C050419A9999B9D22A544166666606E1C05041C3F5289CD02A544185EB51C8DFC05041F6285CCFD02A54410AD7A350DEC0504100000080D02A54410AD7A3B0DCC050418FC2F598CF2A544148E17AC4DBC05041333333A3CE2A5441D7A3707DDAC05041A4703DAACC2A544152B81EF5D9C050419A999949CB2A54419A9999C9D9C0504114AE4771CB2A54419A999969D4C05041713D0A57D02A544133333353D1C0504100000040CF2A544148E17A74CEC050419A9999D9CC2A54410AD7A3D0CCC0504148E17A24C82A544185EB5108CCC050415C8FC235C32A5441C3F528BCCCC0504166666646BE2A544114AE47E1CDC0504148E17A04BD2A5441F6285C1FD1C050413D0AD773B92A54410AD7A380D4C0504114AE47C1B52A5441D7A3700DD9C050413D0AD7C3B02A54417B14AE77D9C05041B81E85FBAF2A5441333333E3DCC05041AE47E18AA92A54411F85EBC1D1C05041F6285C0F9E2A5441F6285C6FDAC050413D0AD713972A54418FC2F5B8DFC05041CDCCCCFC922A5441F6285CCFE3C050415C8FC2658F2A54410AD7A380E7C050417B14AEE78B2A544152B81EE5E9C05041D7A3709D882A54410AD7A390EBC050419A999909862A5441C3F5287CEBC0504114AE47F1802A544185EB5158EAC05041666666167F2A5441F6285C5FE8C05041CDCCCCEC762A5441AE47E12ADEC0504133333323792A5441D7A3705DD4C05041295C8F427B2A5441C3F5289CCAC05041000000607D2A544152B81E25C3C0504148E17A747F2A5441E17A14DEBDC05041CDCCCCEC802A54413D0AD753C0C050415C8FC2C58D2A5441D7A3704DBCC05041000000508E2A544152B81E95BBC05041666666768E2A54410AD7A310B8C050415C8FC2558F2A5441A4703DCAB0C050413D0AD743902A54411F85EB81B0C0504166666616962A5441D7A3708DAFC0504152B81ED5A02A544100000000B1C050417B14AE57A82A5441E17A140EB1C0504185EB5118B92A5441AE47E16AB1C05041CDCCCC8CBD2A5441A4703DAAB3C050417B14AEE7C32A544148E17AA4AFC05041B81E85EBD42A5441295C8F62ADC05041C3F5286CD92A5441D7A3703DACC05041C3F528ECDA2A54411F85EB91ABC0504100000040DD2A544148E17AF4ACC05041F6285C8FDD2A544148E17A14ADC0504166666696DD2A54410AD7A390AFC05041AE47E1FADD2A544185EB5188B0C05041713D0A67DE2A544133333363B3C05041AE47E1AADF2A54418FC2F568B7C05041EC51B8EEE12A5441713D0A17B9C0504148E17AA4E22A54415C8FC2A5BCC05041D7A370EDE32A5441AE47E1DABFC05041B81E850BE52A54413D0AD7E3C0C050410AD7A320E52A5441295C8F02C6C05041A4703D4AE52A54413D0AD7E3C7C0504185EB5168E52A544100000000C9C050411F85EB51E52A544105000000EC51B82ECCC05041A4703D7AD32A5441E17A142ECBC05041295C8F12D22A54417B14AE27CCC050411F85EB61D12A54417B14AE27CDC050418FC2F5C8D22A5441EC51B82ECCC05041A4703D7AD32A5441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000F6285C1FD1C050413D0AD773B92A54410A471DE6D1C05041C4686A9AB82A544144CE2B45D6C0504185D5FCD0B32A5441656D937CD9C0504105044DF2AF2A544189A9C27CD9C050410412F4F1AF2A54416E516637D0C0504108F423EBB32A544150C4C610CEC050416878AEA2B42A5441EA561CEBCCC050418CEE6D37B72A54417E005257CBC05041450E6338B82A5441CCC97CC4CAC05041F84438CBB82A5441781732E9CAC05041FE2D5839B92A544191BBB1A1CCC05041450E6338B82A544197A4D10FCDC05041AB7B0D5EB92A544197A4D10FCDC05041BD366DA8BA2A544197A4D10FCDC050411DBBF75FBB2A5441E46DFC7CCCC05041CFF1CCF2BB2A5441E46DFC7CCCC050418811C2F3BC2A54411EA8D6BACDC050417DA8782EBD2A54418DB1B08FCEC05041FE0FB944BC2A5441F6285C1FD1C050413D0AD773B92A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>256382 - 75777
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000020000006D00000000000000C9C050411F85EB51E52A5441C3F5283CCAC0504152B81E85E52A54418FC2F508CCC050419A999999E52A5441B81E85CBCDC050419A999999E52A54418FC2F5B8CEC05041A4703DBAE52A5441EC51B80ED0C050410AD7A3A0E52A54417B14AE97D1C050413D0AD723E52A5441AE47E1CAD2C05041A4703DEAE42A5441CDCCCC6CD5C0504185EB51B8E42A54413D0AD743D6C05041F6285C1FE42A544185EB51B8D8C05041AE47E13AE22A5441E17A14DEDAC0504185EB51B8E02A54415C8FC295DCC050411F85EBC1DF2A5441CDCCCC4CDEC05041D7A370EDDE2A5441000000D0DFC05041A4703DDADD2A5441295C8F12E1C050413D0AD743DC2A54419A9999D9E2C0504100000080DA2A5441B81E856BE4C05041EC51B86ED92A544166666626E5C050417B14AE57D82A5441EC51B8CEE5C0504185EB5108D82A544148E17A64E6C05041E17A145ED82A5441CDCCCC6CE6C0504100000000D92A5441C3F528FCE6C05041A4703D7AD92A54410AD7A360E7C05041AE47E17ADA2A5441A4703DFAE7C050417B14AEB7D82A5441713D0A47E8C0504100000040D82A54417B14AEA7E8C05041CDCCCC0CD82A5441295C8F32E9C050411F85EB21D82A54413D0AD713EAC050411F85EBF1D82A54418FC2F598EAC050419A999909D92A54419A999919EBC05041E17A146ED92A5441D7A3709DEBC05041F6285C4FD92A54410AD7A330ECC0504166666646D92A5441A4703D9AECC05041AE47E1EAD92A5441A4703D1AEDC0504133333333DB2A5441295C8F72EDC05041295C8FE2D92A5441C3F528FCEDC05041713D0A67D92A5441F6285C4FEFC0504185EB5128D92A5441CDCCCCFCEFC05041295C8FC2D82A54417B14AE87EEC05041E17A144ED82A5441AE47E1CAEBC05041CDCCCCFCD62A5441D7A3706DEAC0504100000010D62A5441A4703D1AE9C0504133333353D52A544166666676E6C05041666666E6D32A5441295C8FB2E4C050411F85EB11D32A5441F6285C2FE3C050419A9999B9D22A544166666606E1C05041C3F5289CD02A544185EB51C8DFC05041F6285CCFD02A54410AD7A350DEC0504100000080D02A54410AD7A3B0DCC050418FC2F598CF2A544148E17AC4DBC05041333333A3CE2A5441D7A3707DDAC05041A4703DAACC2A544152B81EF5D9C050419A999949CB2A54419A9999C9D9C0504114AE4771CB2A54419A999969D4C05041713D0A57D02A544133333353D1C0504100000040CF2A544148E17A74CEC050419A9999D9CC2A54410AD7A3D0CCC0504148E17A24C82A544185EB5108CCC050415C8FC235C32A5441C3F528BCCCC0504166666646BE2A544114AE47E1CDC0504148E17A04BD2A5441F6285C1FD1C050413D0AD773B92A54410AD7A380D4C0504114AE47C1B52A5441D7A3700DD9C050413D0AD7C3B02A54417B14AE77D9C05041B81E85FBAF2A5441333333E3DCC05041AE47E18AA92A54411F85EBC1D1C05041F6285C0F9E2A5441F6285C6FDAC050413D0AD713972A54418FC2F5B8DFC05041CDCCCCFC922A5441F6285CCFE3C050415C8FC2658F2A54410AD7A380E7C050417B14AEE78B2A544152B81EE5E9C05041D7A3709D882A54410AD7A390EBC050419A999909862A5441C3F5287CEBC0504114AE47F1802A544185EB5158EAC05041666666167F2A5441F6285C5FE8C05041CDCCCCEC762A5441AE47E12ADEC0504133333323792A5441D7A3705DD4C05041295C8F427B2A5441C3F5289CCAC05041000000607D2A544152B81E25C3C0504148E17A747F2A5441E17A14DEBDC05041CDCCCCEC802A54413D0AD753C0C050415C8FC2C58D2A5441D7A3704DBCC05041000000508E2A544152B81E95BBC05041666666768E2A54410AD7A310B8C050415C8FC2558F2A5441A4703DCAB0C050413D0AD743902A54411F85EB81B0C0504166666616962A5441D7A3708DAFC0504152B81ED5A02A544100000000B1C050417B14AE57A82A5441E17A140EB1C0504185EB5118B92A5441AE47E16AB1C05041CDCCCC8CBD2A5441A4703DAAB3C050417B14AEE7C32A544148E17AA4AFC05041B81E85EBD42A5441295C8F62ADC05041C3F5286CD92A5441D7A3703DACC05041C3F528ECDA2A54411F85EB91ABC0504100000040DD2A544148E17AF4ACC05041F6285C8FDD2A544148E17A14ADC0504166666696DD2A54410AD7A390AFC05041AE47E1FADD2A544185EB5188B0C05041713D0A67DE2A544133333363B3C05041AE47E1AADF2A54418FC2F568B7C05041EC51B8EEE12A5441713D0A17B9C0504148E17AA4E22A54415C8FC2A5BCC05041D7A370EDE32A5441AE47E1DABFC05041B81E850BE52A54413D0AD7E3C0C050410AD7A320E52A5441295C8F02C6C05041A4703D4AE52A54413D0AD7E3C7C0504185EB5168E52A544100000000C9C050411F85EB51E52A544105000000EC51B82ECCC05041A4703D7AD32A5441E17A142ECBC05041295C8F12D22A54417B14AE27CCC050411F85EB61D12A54417B14AE27CDC050418FC2F5C8D22A5441EC51B82ECCC05041A4703D7AD32A5441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000F6285C1FD1C050413D0AD773B92A54410A471DE6D1C05041C4686A9AB82A544144CE2B45D6C0504185D5FCD0B32A5441656D937CD9C0504105044DF2AF2A544189A9C27CD9C050410412F4F1AF2A54416E516637D0C0504108F423EBB32A544150C4C610CEC050416878AEA2B42A5441EA561CEBCCC050418CEE6D37B72A54417E005257CBC05041450E6338B82A5441CCC97CC4CAC05041F84438CBB82A5441781732E9CAC05041FE2D5839B92A544191BBB1A1CCC05041450E6338B82A544197A4D10FCDC05041AB7B0D5EB92A544197A4D10FCDC05041BD366DA8BA2A544197A4D10FCDC050411DBBF75FBB2A5441E46DFC7CCCC05041CFF1CCF2BB2A5441E46DFC7CCCC050418811C2F3BC2A54411EA8D6BACDC050417DA8782EBD2A54418DB1B08FCEC05041FE0FB944BC2A5441F6285C1FD1C050413D0AD773B92A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>256805 - 182216
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000900000052B81E5598AE50418FC2F5F86D105541F6285C0F99AE5041666666E66E10554114AE47A19FAE5041E17A140E7610554152B81E65A4AE504185EB51287A10554152B81E55A8AE5041B81E859B7C1055410AD7A3A0C5AE5041AE47E1EA51105541000000A0B4AE5041EC51B8AE43105541666666069BAE5041E17A14FE6810554152B81E5598AE50418FC2F5F86D105541
+</a>
+
+<b>
+0106000000010000000103000000010000000900000004D39A65BAAE5041A4EE824862105541F93E0C4EB6AE5041F6100F3F68105541AAB0BEE3DAAE504132DEFFE18510554149833835E9AE50410AF37D1F71105541DAFEF324E9AE504194280489701055410A299712E9AE5041CF6E29DF6F105541502CBB8FDFAE504184F317A26710554113EFD0C1C5AE50413EEFA8065210554104D39A65BAAE5041A4EE824862105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>256805 - 368783
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000900000052B81E5598AE50418FC2F5F86D105541F6285C0F99AE5041666666E66E10554114AE47A19FAE5041E17A140E7610554152B81E65A4AE504185EB51287A10554152B81E55A8AE5041B81E859B7C1055410AD7A3A0C5AE5041AE47E1EA51105541000000A0B4AE5041EC51B8AE43105541666666069BAE5041E17A14FE6810554152B81E5598AE50418FC2F5F86D105541
+</a>
+
+<b>
+0106000000010000000103000000010000000900000004D39A65BAAE5041A4EE824862105541F93E0C4EB6AE5041F6100F3F68105541AAB0BEE3DAAE504132DEFFE18510554149833835E9AE50410AF37D1F71105541DAFEF324E9AE504194280489701055410A299712E9AE5041CF6E29DF6F105541502CBB8FDFAE504184F317A26710554113EFD0C1C5AE50413EEFA8065210554104D39A65BAAE5041A4EE824862105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>256885 - 182216
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000000A00000052B81E55A8AE5041B81E859B7C105541E17A14DEB0AE5041C3F528EC81105541E17A140EC3AE5041EC51B80E8F105541D7A3703DC7AE5041295C8FD292105541CDCCCCCCCCAE5041A4703D0A991055418FC2F508CEAE5041666666F698105541AE47E13AE9AE50413D0AD75371105541A4703D0AE9AE50411F85EB916F1055410AD7A3A0C5AE5041AE47E1EA5110554152B81E55A8AE5041B81E859B7C105541
+</a>
+
+<b>
+0106000000010000000103000000010000000900000004D39A65BAAE5041A4EE824862105541F93E0C4EB6AE5041F6100F3F68105541AAB0BEE3DAAE504132DEFFE18510554149833835E9AE50410AF37D1F71105541DAFEF324E9AE504194280489701055410A299712E9AE5041CF6E29DF6F105541502CBB8FDFAE504184F317A26710554113EFD0C1C5AE50413EEFA8065210554104D39A65BAAE5041A4EE824862105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>256885 - 368783
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000000A00000052B81E55A8AE5041B81E859B7C105541E17A14DEB0AE5041C3F528EC81105541E17A140EC3AE5041EC51B80E8F105541D7A3703DC7AE5041295C8FD292105541CDCCCCCCCCAE5041A4703D0A991055418FC2F508CEAE5041666666F698105541AE47E13AE9AE50413D0AD75371105541A4703D0AE9AE50411F85EB916F1055410AD7A3A0C5AE5041AE47E1EA5110554152B81E55A8AE5041B81E859B7C105541
+</a>
+
+<b>
+0106000000010000000103000000010000000900000004D39A65BAAE5041A4EE824862105541F93E0C4EB6AE5041F6100F3F68105541AAB0BEE3DAAE504132DEFFE18510554149833835E9AE50410AF37D1F71105541DAFEF324E9AE504194280489701055410A299712E9AE5041CF6E29DF6F105541502CBB8FDFAE504184F317A26710554113EFD0C1C5AE50413EEFA8065210554104D39A65BAAE5041A4EE824862105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>257685 - 1459393
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000001000000240000009A99996917FC504152B81E75B94955410000007019FC5041713D0A47B6495541B81E85BB1AFC5041E17A143EB4495541A4703D8A19FC504114AE4771B34955418FC2F5C81CFC50410AD7A3C0AD49554185EB517819FC504148E17A44AB495541EC51B89E15FC50419A999989A8495541F6285CEF10FC504114AE47C1A4495541B81E853B0DFC504152B81E35A14955411F85EB110CFC50417B14AE37A049554152B81E9509FC50415C8FC2459E49554114AE47A1FEFB5041713D0AA7B4495541AE47E1BAFFFB5041E17A14DEB6495541C3F5281C00FC5041CDCCCC8CB74955410AD7A3C003FC504114AE47D1BE49554185EB519807FC504133333303C74955418FC2F5880AFC5041AE47E14ACA4955419A99999910FC5041295C8FB2CE49554114AE474116FC5041D7A3706DD349554185EB51981DFC5041E17A14FED949554185EB518823FC5041B81E851BDF4955417B14AEB72CFC5041EC51B8BEDE495541D7A370AD34FC50411F85EBD1DC4955415C8FC24534FC504166666646DB49554148E17AA433FC50411F85EB21D94955416666662633FC5041CDCCCCBCD5495541EC51B88E33FC504152B81E35D349554114AE47E133FC5041D7A370CDD04955417B14AEC734FC504114AE4781CE4955411F85EBA135FC504152B81E85CB495541D7A3701D36FC5041A4703DEAC9495541666666162BFC5041D7A370DDC34955410AD7A3C025FC5041B81E85CBC0495541F6285CBF21FC504166666676BE495541E17A149E19FC504166666686BA4955419A99996917FC504152B81E75B9495541
+</a>
+
+<b>
+0106000000010000000103000000010000002D0000009A99996917FC504152B81E75B949554167D9B7E118FC5041A2E1F932B6495541B7B45B8A19FC50414F06A6A2B4495541B304C1C319FC5041ECF74FB1B3495541A4703D8A19FC504114AE4771B3495541C99C1AC01CFC50418F5500BAAD4955410A045A5419FC50418AA3F92AAB4955413A9E783215FC5041274F2355A84955411D25368F10FC5041360FDEB1A4495541F50001430CFC5041C4A36EF9A0495541E555F7AE09FC504154C43B299F49554119F5890408FC50417C34259B9F495541B891C89C05FC5041A87F6221A349554183B27E5E01FC50416CB3E070AB495541D52CF50100FC5041288CB235AE495541B48DA96BFFFB50415703E24CAF4955419A357097FDFB50414DBE7783B2495541AE47E1BAFFFB5041E17A14DEB6495541C3F5281C00FC5041CDCCCC8CB74955410AD7A3C003FC504114AE47D1BE49554185EB519807FC504133333303C74955418FC2F5880AFC5041AE47E14ACA4955419A99999910FC5041295C8FB2CE49554114AE474116FC5041D7A3706DD349554185EB51981DFC5041E17A14FED949554185EB518823FC5041B81E851BDF4955417B14AEB72CFC5041EC51B8BEDE4955417FCDC85E2EFC5041AB6880F5DD4955416B7392532FFC50415A4B65A1DD495541EFC14A9A31FC5041CF7E4790DD49554170485ACE32FC50419E99C745DD495541C694167F34FC5041AA78B578DC4955415C8FC24534FC504166666646DB49554148E17AA433FC50411F85EB21D94955416666662633FC5041CDCCCCBCD5495541EC51B88E33FC504152B81E35D349554114AE47E133FC5041D7A370CDD04955417B14AEC734FC504114AE4781CE49554111B3F38B35FC50414FF01097CB495541CD6A6BFC35FC50419F9506F5C9495541666666162BFC5041D7A370DDC34955410AD7A3C025FC5041B81E85CBC0495541F6285CBF21FC504166666676BE495541E17A149E19FC504166666686BA4955419A99996917FC504152B81E75B9495541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>257685 - 3606219
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000001000000240000009A99996917FC504152B81E75B94955410000007019FC5041713D0A47B6495541B81E85BB1AFC5041E17A143EB4495541A4703D8A19FC504114AE4771B34955418FC2F5C81CFC50410AD7A3C0AD49554185EB517819FC504148E17A44AB495541EC51B89E15FC50419A999989A8495541F6285CEF10FC504114AE47C1A4495541B81E853B0DFC504152B81E35A14955411F85EB110CFC50417B14AE37A049554152B81E9509FC50415C8FC2459E49554114AE47A1FEFB5041713D0AA7B4495541AE47E1BAFFFB5041E17A14DEB6495541C3F5281C00FC5041CDCCCC8CB74955410AD7A3C003FC504114AE47D1BE49554185EB519807FC504133333303C74955418FC2F5880AFC5041AE47E14ACA4955419A99999910FC5041295C8FB2CE49554114AE474116FC5041D7A3706DD349554185EB51981DFC5041E17A14FED949554185EB518823FC5041B81E851BDF4955417B14AEB72CFC5041EC51B8BEDE495541D7A370AD34FC50411F85EBD1DC4955415C8FC24534FC504166666646DB49554148E17AA433FC50411F85EB21D94955416666662633FC5041CDCCCCBCD5495541EC51B88E33FC504152B81E35D349554114AE47E133FC5041D7A370CDD04955417B14AEC734FC504114AE4781CE4955411F85EBA135FC504152B81E85CB495541D7A3701D36FC5041A4703DEAC9495541666666162BFC5041D7A370DDC34955410AD7A3C025FC5041B81E85CBC0495541F6285CBF21FC504166666676BE495541E17A149E19FC504166666686BA4955419A99996917FC504152B81E75B9495541
+</a>
+
+<b>
+0106000000010000000103000000010000002D0000009A99996917FC504152B81E75B949554167D9B7E118FC5041A2E1F932B6495541B7B45B8A19FC50414F06A6A2B4495541B304C1C319FC5041ECF74FB1B3495541A4703D8A19FC504114AE4771B3495541C99C1AC01CFC50418F5500BAAD4955410A045A5419FC50418AA3F92AAB4955413A9E783215FC5041274F2355A84955411D25368F10FC5041360FDEB1A4495541F50001430CFC5041C4A36EF9A0495541E555F7AE09FC504154C43B299F49554119F5890408FC50417C34259B9F495541B891C89C05FC5041A87F6221A349554183B27E5E01FC50416CB3E070AB495541D52CF50100FC5041288CB235AE495541B48DA96BFFFB50415703E24CAF4955419A357097FDFB50414DBE7783B2495541AE47E1BAFFFB5041E17A14DEB6495541C3F5281C00FC5041CDCCCC8CB74955410AD7A3C003FC504114AE47D1BE49554185EB519807FC504133333303C74955418FC2F5880AFC5041AE47E14ACA4955419A99999910FC5041295C8FB2CE49554114AE474116FC5041D7A3706DD349554185EB51981DFC5041E17A14FED949554185EB518823FC5041B81E851BDF4955417B14AEB72CFC5041EC51B8BEDE4955417FCDC85E2EFC5041AB6880F5DD4955416B7392532FFC50415A4B65A1DD495541EFC14A9A31FC5041CF7E4790DD49554170485ACE32FC50419E99C745DD495541C694167F34FC5041AA78B578DC4955415C8FC24534FC504166666646DB49554148E17AA433FC50411F85EB21D94955416666662633FC5041CDCCCCBCD5495541EC51B88E33FC504152B81E35D349554114AE47E133FC5041D7A370CDD04955417B14AEC734FC504114AE4781CE49554111B3F38B35FC50414FF01097CB495541CD6A6BFC35FC50419F9506F5C9495541666666162BFC5041D7A370DDC34955410AD7A3C025FC5041B81E85CBC0495541F6285CBF21FC504166666676BE495541E17A149E19FC504166666686BA4955419A99996917FC504152B81E75B9495541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>259719 - 3176739
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000300000001030000000100000011000000C3F528AC2B3A5141CDCCCCFCEE7E5441D7A370BD293A51411F85EB31EE7E544152B81E951A3A5141713D0A77F87E54411F85EBA1113A5141CDCCCC1C007F5441EC51B83E0D3A514114AE4791057F544148E17A840A3A514148E17AC4087F54415C8FC285033A5141EC51B83E117F544148E17A34003A51419A999909157F54417B14AE97F539514152B81EB51F7F5441A4703D1AF939514152B81E55217F544152B81EB5FC3951417B14AEF7227F544100000090083A514185EB5128157F54419A999939123A5141C3F5283C087F5441F6285C8F173A5141AE47E18A027F5441C3F528FC203A5141EC51B83EFA7E5441D7A370CD2C3A51417B14AE97EF7E5441C3F528AC2B3A5141CDCCCCFCEE7E544101030000000100000017000000A4703D5AE73951417B14AE07067F544114AE47F1E2395141B81E85CB0B7F54411F85EB31DE395141C3F528BC0E7F5441F6285CDFDE3951418FC2F508107F54418FC2F518E33951418FC2F5080D7F544114AE47F1E5395141F6285C4F0A7F544114AE47D1F539514133333313F97E54419A999929E939514114AE47B1F57E5441AE47E11AE9395141E17A142EF87E5441A4703D8AE8395141D7A370FDF97E54419A9999F9E73951417B14AEF7FB7E5441EC51B88EE939514100000070FD7E544114AE47E1E8395141CDCCCCECFF7E54418FC2F538E63951419A9999D9FE7E5441295C8F42E53951413D0AD7D3007F544100000090E639514133333373017F5441CDCCCCDCE73951411F85EB81017F54419A999929E93951413D0AD703027F5441B81E85ABE9395141EC51B8CE027F5441713D0AD7E9395141B81E851B047F5441AE47E11AE9395141713D0A77057F544133333333E83951410AD7A3B0057F5441A4703D5AE73951417B14AE07067F54410103000000010000000C000000295C8F72EA395141F6285C8F1B7F54411F85EB31E83951410AD7A3501A7F54411F85EB11E7395141000000D0197F5441666666B6E53951413D0AD713197F5441A4703DFAE43951419A999979197F544100000090E63951413D0AD7731B7F5441F6285CBFE7395141CDCCCC4C1C7F5441F6285CEFE8395141295C8FB21C7F544133333393EA3951418FC2F5081D7F544185EB5158ED3951415C8FC2251D7F5441EC51B87EF0395141E17A14EE1D7F5441295C8F72EA395141F6285C8F1B7F5441
+</a>
+
+<b>
+010600000001000000010300000001000000150000003114263BFD3951414F758C5B227F5441E99DB703093A51418CAF8F8D147F54419A999939123A5141C3F5283C087F5441F6285C8F173A5141AE47E18A027F54415A8550C41C3A5141379062F5FD7E54416DD06CCA243A5141352380D0F67E5441DBCD46CC2C3A5141F08DBA98EF7E5441639869A4293A5141DAA0E042EE7E544175B1A7831A3A51415498F685F87E5441B904941A143A5141D0873600FE7E5441DB68D5FC113A5141FAF91DCFFF7E5441AF39E9190E3A5141A93BC280047F5441EC51B83E0D3A514114AE4791057F5441F40C3B5D0C3A5141DD04D599067F544144FB3F30073A51411C4954CD0C7F54415C8FC285033A5141EC51B83E117F544148E17A34003A51419A999909157F5441B64111C7F53951419ED079851F7F544198876E48FA39514142766CB1217F544163FBC7C3FC395141C2DE99E6227F54413114263BFD3951414F758C5B227F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>259719 - 3176745
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000300000001030000000100000011000000C3F528AC2B3A5141CDCCCCFCEE7E5441D7A370BD293A51411F85EB31EE7E544152B81E951A3A5141713D0A77F87E54411F85EBA1113A5141CDCCCC1C007F5441EC51B83E0D3A514114AE4791057F544148E17A840A3A514148E17AC4087F54415C8FC285033A5141EC51B83E117F544148E17A34003A51419A999909157F54417B14AE97F539514152B81EB51F7F5441A4703D1AF939514152B81E55217F544152B81EB5FC3951417B14AEF7227F544100000090083A514185EB5128157F54419A999939123A5141C3F5283C087F5441F6285C8F173A5141AE47E18A027F5441C3F528FC203A5141EC51B83EFA7E5441D7A370CD2C3A51417B14AE97EF7E5441C3F528AC2B3A5141CDCCCCFCEE7E544101030000000100000017000000A4703D5AE73951417B14AE07067F544114AE47F1E2395141B81E85CB0B7F54411F85EB31DE395141C3F528BC0E7F5441F6285CDFDE3951418FC2F508107F54418FC2F518E33951418FC2F5080D7F544114AE47F1E5395141F6285C4F0A7F544114AE47D1F539514133333313F97E54419A999929E939514114AE47B1F57E5441AE47E11AE9395141E17A142EF87E5441A4703D8AE8395141D7A370FDF97E54419A9999F9E73951417B14AEF7FB7E5441EC51B88EE939514100000070FD7E544114AE47E1E8395141CDCCCCECFF7E54418FC2F538E63951419A9999D9FE7E5441295C8F42E53951413D0AD7D3007F544100000090E639514133333373017F5441CDCCCCDCE73951411F85EB81017F54419A999929E93951413D0AD703027F5441B81E85ABE9395141EC51B8CE027F5441713D0AD7E9395141B81E851B047F5441AE47E11AE9395141713D0A77057F544133333333E83951410AD7A3B0057F5441A4703D5AE73951417B14AE07067F54410103000000010000000C000000295C8F72EA395141F6285C8F1B7F54411F85EB31E83951410AD7A3501A7F54411F85EB11E7395141000000D0197F5441666666B6E53951413D0AD713197F5441A4703DFAE43951419A999979197F544100000090E63951413D0AD7731B7F5441F6285CBFE7395141CDCCCC4C1C7F5441F6285CEFE8395141295C8FB21C7F544133333393EA3951418FC2F5081D7F544185EB5158ED3951415C8FC2251D7F5441EC51B87EF0395141E17A14EE1D7F5441295C8F72EA395141F6285C8F1B7F5441
+</a>
+
+<b>
+01060000000100000001030000000100000027000000F5C5A1DFDE3951419954C408107F5441FC4386F5E2395141CD0E1F220D7F5441FAAB04E5E3395141383F82450C7F5441F665A6CFE5395141FE4E926F0A7F544193E32A33E6395141FFF2D3070A7F5441FBB22D97E6395141B0C33F9B097F544107953435E93951417E4BD2C3067F54418CB4583FEC395141E77E0477037F5441F8543E50EE3951414973CF38017F54418F413CE5EF3951410A831F81FF7E5441D290C495F43951411DEBBD69FA7E5441CF35DCDAF5395141F373CC08F97E544142227A98EC395141CA8A7681F67E544103DF4C5EE93951414F0E83ADF57E544116840540E939514101300432F87E54419C07126CE83951413F9EF086FA7E5441E7C6B30DE73951411B29C0A8FB7E5441229700D9E7395141104D666BFC7E54417BBDA0A8E83951412BDA5ACBFB7E544173AAA50FEA395141E50ED7E8FC7E5441AD99CFB4E9395141B7B16A8CFE7E5441921FD6EDE8395141C57AC930FF7E54412E6778D5E6395141AC0CB2AAFE7E5441491F2C50E53951415A3A1570017F54414AF46C35E6395141D9AA2603027F5441C9647EC8E6395141BB48F1BD017F54413EED53DDE73951415A3A1570017F54412829BE21E9395141FB007A07027F5441543C8E89E939514179718B9A027F54414197D5A7E9395141AB4DBAA6037F544170C982E9E8395141DD29E9B2047F54417AD09B41E7395141A346A14E057F5441D90937AAE6395141B3CC7C56067F544114CEA134E73951414F9FC32E077F5441C09B1F24E63951413DCF4B32087F5441B25FE010E339514182DBD7100C7F5441F906B11EE03951412AF0FF8A0D7F5441A70BDD35DE395141AEC9B7B90E7F5441F5C5A1DFDE3951419954C408107F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>259719 - 3371275
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000300000001030000000100000011000000C3F528AC2B3A5141CDCCCCFCEE7E5441D7A370BD293A51411F85EB31EE7E544152B81E951A3A5141713D0A77F87E54411F85EBA1113A5141CDCCCC1C007F5441EC51B83E0D3A514114AE4791057F544148E17A840A3A514148E17AC4087F54415C8FC285033A5141EC51B83E117F544148E17A34003A51419A999909157F54417B14AE97F539514152B81EB51F7F5441A4703D1AF939514152B81E55217F544152B81EB5FC3951417B14AEF7227F544100000090083A514185EB5128157F54419A999939123A5141C3F5283C087F5441F6285C8F173A5141AE47E18A027F5441C3F528FC203A5141EC51B83EFA7E5441D7A370CD2C3A51417B14AE97EF7E5441C3F528AC2B3A5141CDCCCCFCEE7E544101030000000100000017000000A4703D5AE73951417B14AE07067F544114AE47F1E2395141B81E85CB0B7F54411F85EB31DE395141C3F528BC0E7F5441F6285CDFDE3951418FC2F508107F54418FC2F518E33951418FC2F5080D7F544114AE47F1E5395141F6285C4F0A7F544114AE47D1F539514133333313F97E54419A999929E939514114AE47B1F57E5441AE47E11AE9395141E17A142EF87E5441A4703D8AE8395141D7A370FDF97E54419A9999F9E73951417B14AEF7FB7E5441EC51B88EE939514100000070FD7E544114AE47E1E8395141CDCCCCECFF7E54418FC2F538E63951419A9999D9FE7E5441295C8F42E53951413D0AD7D3007F544100000090E639514133333373017F5441CDCCCCDCE73951411F85EB81017F54419A999929E93951413D0AD703027F5441B81E85ABE9395141EC51B8CE027F5441713D0AD7E9395141B81E851B047F5441AE47E11AE9395141713D0A77057F544133333333E83951410AD7A3B0057F5441A4703D5AE73951417B14AE07067F54410103000000010000000C000000295C8F72EA395141F6285C8F1B7F54411F85EB31E83951410AD7A3501A7F54411F85EB11E7395141000000D0197F5441666666B6E53951413D0AD713197F5441A4703DFAE43951419A999979197F544100000090E63951413D0AD7731B7F5441F6285CBFE7395141CDCCCC4C1C7F5441F6285CEFE8395141295C8FB21C7F544133333393EA3951418FC2F5081D7F544185EB5158ED3951415C8FC2251D7F5441EC51B87EF0395141E17A14EE1D7F5441295C8F72EA395141F6285C8F1B7F5441
+</a>
+
+<b>
+010600000001000000010300000001000000150000003114263BFD3951414F758C5B227F5441E99DB703093A51418CAF8F8D147F54419A999939123A5141C3F5283C087F5441F6285C8F173A5141AE47E18A027F54415A8550C41C3A5141379062F5FD7E54416DD06CCA243A5141352380D0F67E5441DBCD46CC2C3A5141F08DBA98EF7E5441639869A4293A5141DAA0E042EE7E544175B1A7831A3A51415498F685F87E5441B904941A143A5141D0873600FE7E5441DB68D5FC113A5141FAF91DCFFF7E5441AF39E9190E3A5141A93BC280047F5441EC51B83E0D3A514114AE4791057F5441F40C3B5D0C3A5141DD04D599067F544144FB3F30073A51411C4954CD0C7F54415C8FC285033A5141EC51B83E117F544148E17A34003A51419A999909157F5441B64111C7F53951419ED079851F7F544198876E48FA39514142766CB1217F544163FBC7C3FC395141C2DE99E6227F54413114263BFD3951414F758C5B227F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>259719 - 3456882
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000300000001030000000100000011000000C3F528AC2B3A5141CDCCCCFCEE7E5441D7A370BD293A51411F85EB31EE7E544152B81E951A3A5141713D0A77F87E54411F85EBA1113A5141CDCCCC1C007F5441EC51B83E0D3A514114AE4791057F544148E17A840A3A514148E17AC4087F54415C8FC285033A5141EC51B83E117F544148E17A34003A51419A999909157F54417B14AE97F539514152B81EB51F7F5441A4703D1AF939514152B81E55217F544152B81EB5FC3951417B14AEF7227F544100000090083A514185EB5128157F54419A999939123A5141C3F5283C087F5441F6285C8F173A5141AE47E18A027F5441C3F528FC203A5141EC51B83EFA7E5441D7A370CD2C3A51417B14AE97EF7E5441C3F528AC2B3A5141CDCCCCFCEE7E544101030000000100000017000000A4703D5AE73951417B14AE07067F544114AE47F1E2395141B81E85CB0B7F54411F85EB31DE395141C3F528BC0E7F5441F6285CDFDE3951418FC2F508107F54418FC2F518E33951418FC2F5080D7F544114AE47F1E5395141F6285C4F0A7F544114AE47D1F539514133333313F97E54419A999929E939514114AE47B1F57E5441AE47E11AE9395141E17A142EF87E5441A4703D8AE8395141D7A370FDF97E54419A9999F9E73951417B14AEF7FB7E5441EC51B88EE939514100000070FD7E544114AE47E1E8395141CDCCCCECFF7E54418FC2F538E63951419A9999D9FE7E5441295C8F42E53951413D0AD7D3007F544100000090E639514133333373017F5441CDCCCCDCE73951411F85EB81017F54419A999929E93951413D0AD703027F5441B81E85ABE9395141EC51B8CE027F5441713D0AD7E9395141B81E851B047F5441AE47E11AE9395141713D0A77057F544133333333E83951410AD7A3B0057F5441A4703D5AE73951417B14AE07067F54410103000000010000000C000000295C8F72EA395141F6285C8F1B7F54411F85EB31E83951410AD7A3501A7F54411F85EB11E7395141000000D0197F5441666666B6E53951413D0AD713197F5441A4703DFAE43951419A999979197F544100000090E63951413D0AD7731B7F5441F6285CBFE7395141CDCCCC4C1C7F5441F6285CEFE8395141295C8FB21C7F544133333393EA3951418FC2F5081D7F544185EB5158ED3951415C8FC2251D7F5441EC51B87EF0395141E17A14EE1D7F5441295C8F72EA395141F6285C8F1B7F5441
+</a>
+
+<b>
+01060000000100000001030000000100000027000000F5C5A1DFDE3951419954C408107F5441FC4386F5E2395141CD0E1F220D7F5441FAAB04E5E3395141383F82450C7F5441F665A6CFE5395141FE4E926F0A7F544193E32A33E6395141FFF2D3070A7F5441FBB22D97E6395141B0C33F9B097F544107953435E93951417E4BD2C3067F54418CB4583FEC395141E77E0477037F5441F8543E50EE3951414973CF38017F54418F413CE5EF3951410A831F81FF7E5441D290C495F43951411DEBBD69FA7E5441CF35DCDAF5395141F373CC08F97E544142227A98EC395141CA8A7681F67E544103DF4C5EE93951414F0E83ADF57E544116840540E939514101300432F87E54419C07126CE83951413F9EF086FA7E5441E7C6B30DE73951411B29C0A8FB7E5441229700D9E7395141104D666BFC7E54417BBDA0A8E83951412BDA5ACBFB7E544173AAA50FEA395141E50ED7E8FC7E5441AD99CFB4E9395141B7B16A8CFE7E5441921FD6EDE8395141C57AC930FF7E54412E6778D5E6395141AC0CB2AAFE7E5441491F2C50E53951415A3A1570017F54414AF46C35E6395141D9AA2603027F5441C9647EC8E6395141BB48F1BD017F54413EED53DDE73951415A3A1570017F54412829BE21E9395141FB007A07027F5441543C8E89E939514179718B9A027F54414197D5A7E9395141AB4DBAA6037F544170C982E9E8395141DD29E9B2047F54417AD09B41E7395141A346A14E057F5441D90937AAE6395141B3CC7C56067F544114CEA134E73951414F9FC32E077F5441C09B1F24E63951413DCF4B32087F5441B25FE010E339514182DBD7100C7F5441F906B11EE03951412AF0FF8A0D7F5441A70BDD35DE395141AEC9B7B90E7F5441F5C5A1DFDE3951419954C408107F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>260029 - 3176739
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000022000000A4703D8A2B3A5141EC51B8BE287F5441E17A14CE2E3A5141295C8F02247F544114AE47C1323A5141AE47E10A1E7F5441AE47E10A393A5141713D0AC7157F54419A9999193A3A514114AE47A1157F54411F85EB11453A514114AE47511B7F5441000000C04C3A5141F6285C7F117F5441B81E85AB513A51415C8FC235097F54411F85EB51593A514148E17A140A7F54411F85EBA1633A5141C3F5289C097F5441E17A145E6B3A514185EB5148087F5441A4703D5A6C3A5141C3F528AC077F54413D0AD7836C3A51411F85EB71027F5441F6285C7F6C3A51418FC2F598FF7E54417B14AEB75C3A5141F6285C5F007F5441A4703DCA563A51417B14AE47007F5441B81E85CB513A51419A9999B9FF7E544148E17A544C3A5141B81E855BFE7E5441000000D0483A51410AD7A300FD7E5441D7A3706D3F3A51413D0AD7B3F87E5441B81E85AB383A51418FC2F5A8F57E5441AE47E15A353A51417B14AE07F47E5441D7A370CD2C3A51417B14AE97EF7E5441C3F528FC203A5141EC51B83EFA7E5441F6285C8F173A5141AE47E18A027F54419A999939123A5141C3F5283C087F544100000090083A514185EB5128157F544152B81EB5FC3951417B14AEF7227F544100000010053A514148E17A74277F5441C3F528EC0A3A51410AD7A3D02A7F5441A4703DCA133A514148E17A942F7F5441A4703DFA1F3A514185EB5128377F5441E17A144E213A5141EC51B8CE367F5441A4703D8A2B3A5141EC51B8BE287F5441
+</a>
+
+<b>
+010600000001000000010300000001000000150000003114263BFD3951414F758C5B227F5441E99DB703093A51418CAF8F8D147F54419A999939123A5141C3F5283C087F5441F6285C8F173A5141AE47E18A027F54415A8550C41C3A5141379062F5FD7E54416DD06CCA243A5141352380D0F67E5441DBCD46CC2C3A5141F08DBA98EF7E5441639869A4293A5141DAA0E042EE7E544175B1A7831A3A51415498F685F87E5441B904941A143A5141D0873600FE7E5441DB68D5FC113A5141FAF91DCFFF7E5441AF39E9190E3A5141A93BC280047F5441EC51B83E0D3A514114AE4791057F5441F40C3B5D0C3A5141DD04D599067F544144FB3F30073A51411C4954CD0C7F54415C8FC285033A5141EC51B83E117F544148E17A34003A51419A999909157F5441B64111C7F53951419ED079851F7F544198876E48FA39514142766CB1217F544163FBC7C3FC395141C2DE99E6227F54413114263BFD3951414F758C5B227F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>260029 - 3371275
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000022000000A4703D8A2B3A5141EC51B8BE287F5441E17A14CE2E3A5141295C8F02247F544114AE47C1323A5141AE47E10A1E7F5441AE47E10A393A5141713D0AC7157F54419A9999193A3A514114AE47A1157F54411F85EB11453A514114AE47511B7F5441000000C04C3A5141F6285C7F117F5441B81E85AB513A51415C8FC235097F54411F85EB51593A514148E17A140A7F54411F85EBA1633A5141C3F5289C097F5441E17A145E6B3A514185EB5148087F5441A4703D5A6C3A5141C3F528AC077F54413D0AD7836C3A51411F85EB71027F5441F6285C7F6C3A51418FC2F598FF7E54417B14AEB75C3A5141F6285C5F007F5441A4703DCA563A51417B14AE47007F5441B81E85CB513A51419A9999B9FF7E544148E17A544C3A5141B81E855BFE7E5441000000D0483A51410AD7A300FD7E5441D7A3706D3F3A51413D0AD7B3F87E5441B81E85AB383A51418FC2F5A8F57E5441AE47E15A353A51417B14AE07F47E5441D7A370CD2C3A51417B14AE97EF7E5441C3F528FC203A5141EC51B83EFA7E5441F6285C8F173A5141AE47E18A027F54419A999939123A5141C3F5283C087F544100000090083A514185EB5128157F544152B81EB5FC3951417B14AEF7227F544100000010053A514148E17A74277F5441C3F528EC0A3A51410AD7A3D02A7F5441A4703DCA133A514148E17A942F7F5441A4703DFA1F3A514185EB5128377F5441E17A144E213A5141EC51B8CE367F5441A4703D8A2B3A5141EC51B8BE287F5441
+</a>
+
+<b>
+010600000001000000010300000001000000150000003114263BFD3951414F758C5B227F5441E99DB703093A51418CAF8F8D147F54419A999939123A5141C3F5283C087F5441F6285C8F173A5141AE47E18A027F54415A8550C41C3A5141379062F5FD7E54416DD06CCA243A5141352380D0F67E5441DBCD46CC2C3A5141F08DBA98EF7E5441639869A4293A5141DAA0E042EE7E544175B1A7831A3A51415498F685F87E5441B904941A143A5141D0873600FE7E5441DB68D5FC113A5141FAF91DCFFF7E5441AF39E9190E3A5141A93BC280047F5441EC51B83E0D3A514114AE4791057F5441F40C3B5D0C3A5141DD04D599067F544144FB3F30073A51411C4954CD0C7F54415C8FC285033A5141EC51B83E117F544148E17A34003A51419A999909157F5441B64111C7F53951419ED079851F7F544198876E48FA39514142766CB1217F544163FBC7C3FC395141C2DE99E6227F54413114263BFD3951414F758C5B227F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>260357 - 3185554
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000200000001030000000100000004000000D7A3700D1732514166666696647B544166666616163251418FC2F5C8647B54419A99999916325141A4703D9A657B5441D7A3700D1732514166666696647B544101030000000100000029000000B81E85EB49325141000000407D7B54411F85EB714A325141CDCCCCDC6E7B54418FC2F5C84A3251410AD7A3705F7B5441B81E856B4A32514133333373597B5441AE47E16A4A3251415C8FC285547B5441000000704A32514152B81E354D7B54419A9999E94932514148E17A843F7B54419A999979493251410AD7A380397B5441713D0A6749325141E17A14EE327B5441B81E859B49325141B81E85BB2D7B5441EC51B8EE47325141F6285CFF2E7B5441666666C642325141B81E857B317B5441E17A149E4132514152B81E15317B5441B81E85DB3D325141295C8F52327B54418FC2F5A83A32514185EB5178347B544148E17AB437325141713D0A87377B544166666696353251418FC2F5183B7B5441AE47E1CA3432514114AE47313C7B5441CDCCCC5C32325141713D0A97417B5441713D0A373032514100000010467B5441295C8F622E3251417B14AEC7497B5441F6285CAF2B3251410AD7A3104E7B5441AE47E15A2932514114AE4731517B5441B81E855B24325141A4703D1A567B5441B81E853B213251418FC2F578597B5441E17A142E20325141D7A370CD5A7B54410AD7A3E01D325141295C8FE25C7B5441713D0AD71A3251413D0AD763607B54413D0AD7F318325141666666C6627B5441000000E017325141AE47E16A647B5441D7A370ED16325141F6285C1F667B5441295C8F7232325141EC51B8EE917B5441333333E339325141295C8FF29C7B5441EC51B88E41325141F6285C9FA07B54416666668643325141B81E854B9D7B5441AE47E19A443251417B14AEC7997B54416666669645325141B81E851B977B544152B81E95473251417B14AE57937B5441B81E856B4832514114AE47318E7B5441EC51B8FE483251410AD7A370897B5441B81E85EB49325141000000407D7B5441
+</a>
+
+<b>
+01060000000100000001030000000100000034000000A91F5CA217325141AEFAB309667B544185B0BD131832514155A292EB677B54412C589CF51932514147A383776A7B5441901D9F081E3251416E19606F717B54415313DB73273251410528E66D807B54410564823E2E3251418D23B83D8B7B54419D3857D23432514154BE8B72957B5441CEB7FF083A325141A5C29D049D7B54413072F226423251416C8A3F9D9F7B5441249B60F343325141801DAE0E9E7B5441B577D09C44325141B1D639E59B7B5441B08389AD453251411D5F2D81997B54415462037546325141C3E60C3F977B54418DC83962473251412D343808947B5441A8E7D41648325141D2D20C3A907B544155510C0D493251411194D1B3887B5441E7CF4E6B49325141DDCAA0D9837B544171D24ED049325141A5829CA67E7B5441B72747DF493251411F9354E17D7B54414BF7FF004A325141466F59F37A7B54418A4D540B4A3251410C0346D8797B54415D0C732E4A32514144C6D015767B544151C8F55E4A325141375264E4707B5441F1590C934A325141D8CB17FE687B5441088E66B54A325141E423DCE7627B5441D2B931B14A32514187019FEA5D7B54416C30A69C4A32514111F774995C7B5441A5DA1C6B4A32514171116F50567B5441022A45684A325141C5378E6B4C7B5441067DE3234A32514130E26C74457B54414DDD72024A325141686C700C427B544101B1A9C1493251411DBE665F3D7B54419515EB7049325141E24B996D367B5441D9249F7149325141C1DACBE1317B544128E4635949325141E06B19022F7B544153B848C7473251419AA2B00A2E7B5441F589189943325141AAB7AE07307B54413C2F138F3C3251419F13D631337B5441A431BAFB39325141D3C48F2B357B5441BCB56C95383251419DEE4A9E367B544105566FD1363251412AA7D305397B544143ECF69C343251416E6144973C7B5441EE4CA1262E325141237FCA264A7B5441E6D7C8EB2A3251416CEE27174F7B5441AC4CB4C927325141877E6EBB527B5441BA7E9A5524325141C3CF9E20567B54419C075C6C2232514189993830587B5441DD222BEF1F325141332557065B7B54416750D7781D32514130A6555A5D7B544121D929A61B325141C098D6745F7B54412AB8A7FF173251414C47A03A647B5441A91F5CA217325141AEFAB309667B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>260357 - 3399435
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000200000001030000000100000004000000D7A3700D1732514166666696647B544166666616163251418FC2F5C8647B54419A99999916325141A4703D9A657B5441D7A3700D1732514166666696647B544101030000000100000029000000B81E85EB49325141000000407D7B54411F85EB714A325141CDCCCCDC6E7B54418FC2F5C84A3251410AD7A3705F7B5441B81E856B4A32514133333373597B5441AE47E16A4A3251415C8FC285547B5441000000704A32514152B81E354D7B54419A9999E94932514148E17A843F7B54419A999979493251410AD7A380397B5441713D0A6749325141E17A14EE327B5441B81E859B49325141B81E85BB2D7B5441EC51B8EE47325141F6285CFF2E7B5441666666C642325141B81E857B317B5441E17A149E4132514152B81E15317B5441B81E85DB3D325141295C8F52327B54418FC2F5A83A32514185EB5178347B544148E17AB437325141713D0A87377B544166666696353251418FC2F5183B7B5441AE47E1CA3432514114AE47313C7B5441CDCCCC5C32325141713D0A97417B5441713D0A373032514100000010467B5441295C8F622E3251417B14AEC7497B5441F6285CAF2B3251410AD7A3104E7B5441AE47E15A2932514114AE4731517B5441B81E855B24325141A4703D1A567B5441B81E853B213251418FC2F578597B5441E17A142E20325141D7A370CD5A7B54410AD7A3E01D325141295C8FE25C7B5441713D0AD71A3251413D0AD763607B54413D0AD7F318325141666666C6627B5441000000E017325141AE47E16A647B5441D7A370ED16325141F6285C1F667B5441295C8F7232325141EC51B8EE917B5441333333E339325141295C8FF29C7B5441EC51B88E41325141F6285C9FA07B54416666668643325141B81E854B9D7B5441AE47E19A443251417B14AEC7997B54416666669645325141B81E851B977B544152B81E95473251417B14AE57937B5441B81E856B4832514114AE47318E7B5441EC51B8FE483251410AD7A370897B5441B81E85EB49325141000000407D7B5441
+</a>
+
+<b>
+01060000000100000001030000000100000034000000A91F5CA217325141AEFAB309667B544185B0BD131832514155A292EB677B54412C589CF51932514147A383776A7B5441901D9F081E3251416E19606F717B54415313DB73273251410528E66D807B54410564823E2E3251418D23B83D8B7B54419D3857D23432514154BE8B72957B5441CEB7FF083A325141A5C29D049D7B54413072F226423251416C8A3F9D9F7B5441249B60F343325141801DAE0E9E7B5441B577D09C44325141B1D639E59B7B5441B08389AD453251411D5F2D81997B54415462037546325141C3E60C3F977B54418DC83962473251412D343808947B5441A8E7D41648325141D2D20C3A907B544155510C0D493251411194D1B3887B5441E7CF4E6B49325141DDCAA0D9837B544171D24ED049325141A5829CA67E7B5441B72747DF493251411F9354E17D7B54414BF7FF004A325141466F59F37A7B54418A4D540B4A3251410C0346D8797B54415D0C732E4A32514144C6D015767B544151C8F55E4A325141375264E4707B5441F1590C934A325141D8CB17FE687B5441088E66B54A325141E423DCE7627B5441D2B931B14A32514187019FEA5D7B54416C30A69C4A32514111F774995C7B5441A5DA1C6B4A32514171116F50567B5441022A45684A325141C5378E6B4C7B5441067DE3234A32514130E26C74457B54414DDD72024A325141686C700C427B544101B1A9C1493251411DBE665F3D7B54419515EB7049325141E24B996D367B5441D9249F7149325141C1DACBE1317B544128E4635949325141E06B19022F7B544153B848C7473251419AA2B00A2E7B5441F589189943325141AAB7AE07307B54413C2F138F3C3251419F13D631337B5441A431BAFB39325141D3C48F2B357B5441BCB56C95383251419DEE4A9E367B544105566FD1363251412AA7D305397B544143ECF69C343251416E6144973C7B5441EE4CA1262E325141237FCA264A7B5441E6D7C8EB2A3251416CEE27174F7B5441AC4CB4C927325141877E6EBB527B5441BA7E9A5524325141C3CF9E20567B54419C075C6C2232514189993830587B5441DD222BEF1F325141332557065B7B54416750D7781D32514130A6555A5D7B544121D929A61B325141C098D6745F7B54412AB8A7FF173251414C47A03A647B5441A91F5CA217325141AEFAB309667B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>261394 - 3077246
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000200000001030000000200000013000000A4703D0AE46E5141E17A140E32395441D7A3707DE46E5141CDCCCCAC31395441713D0A87E36E51416666661631395441295C8FF2E06E5141CDCCCC4C3B395441713D0A47D96E514148E17AB4443954413D0AD7B3DF6E51417B14AEC7463954419A999909E06E5141666666F645395441000000C0E76E5141713D0A27333954413D0AD7C3E66E51410AD7A31033395441D7A370FDE46E5141AE47E1FA313954418FC2F588E46E5141C3F528BC3239544185EB51D8E46E5141295C8F523339544114AE4781E46E5141295C8F923339544114AE4761E46E51410000008034395441F6285CDFE36E5141A4703D9A34395441E17A14BEE36E514148E17AC43239544100000040E36E5141CDCCCC4C32395441A4703D6AE36E5141666666A631395441A4703D0AE46E5141E17A140E3239544106000000000000A0E16E51419A9999893A395441B81E859BE36E51417B14AE473B39544152B81E05E36E5141C3F528FC3C395441EC51B82EE26E5141C3F528CC3C3954419A9999E9E06E51415C8FC2453C395441000000A0E16E51419A9999893A39544101030000000100000033000000B81E853B426F514148E17A84A9395441C3F5285C436F5141AE47E13AA739544114AE4711456F514152B81E15A8395441A4703DDA456F5141A4703DDAA639544185EB5148446F5141295C8F22A63954415C8FC2A5456F514114AE4781A339544185EB5198476F514152B81E65A4395441CDCCCC2C486F514114AE4781A33954413D0AD7534A6F5141E17A14CEA43954410AD7A3004C6F5141CDCCCCDCA539544185EB51D84D6F51418FC2F578A339544152B81E15526F51415C8FC245A6395441C3F5281C4F6F514185EB51C8AA39544185EB51784D6F5141333333D3A939544148E17A144B6F51411F85EB11AD395441000000A04B6F51413D0AD783AD395441B81E850B4B6F5141713D0AC7AE395441A4703DBA4B6F5141F6285C3FB0395441D7A3702D4F6F5141B81E857BB4395441E17A14DE4F6F5141F6285C9FB4395441A4703D1A556F5141295C8F02AF395441AE47E15A5A6F5141AE47E16AA9395441F6285CDF606F5141F6285C4FA139544166666666536F514166666656963954411F85EB414F6F5141666666F692395441B81E850B4B6F514114AE471192395441C3F5285C466F51415C8FC2459139544152B81E55416F51415C8FC26590395441713D0AF73B6F514185EB51489D3954413D0AD793366F514166666636AA39544114AE4731316F5141295C8F22B739544185EB5198356F514133333383B93954417B14AE273A6F5141713D0A97BB395441C3F5280C446F51418FC2F518C0395441AE47E16A456F5141666666E6C03954419A999969496F51411F85EBB1BB39544185EB51684C6F51415C8FC255B83954419A9999A94E6F5141A4703DEAB53954415C8FC2754E6F5141666666F6B4395441B81E856B4B6F514133333383B1395441F6285CAF486F51418FC2F538B139544152B81E25466F51411F85EB61B1395441D7A3700D436F5141EC51B84EB13954413D0AD7E3416F514152B81E95B23954413D0AD7733E6F514152B81E85B0395441D7A370DD3E6F5141295C8FE2AF395441295C8F12406F51418FC2F5F8AD395441E17A149E416F5141000000E0AB3954419A999959446F5141AE47E17AAD3954415C8FC2A5456F51415C8FC265AB395441B81E853B426F514148E17A84A9395441
+</a>
+
+<b>
+0106000000010000000103000000010000007F0000000B9F7AA0366F5141E27A8CFBB9395441FBDE2F9F356F5141CD1B5486B93954417B14AE671E6F514114AE47F1BD395441CDCCCC8C186F51418FC2F528BF395441ACFC3455186F5141F1D5D286BF39544168D08C30226F5141247D7B69BF39544100581B521F6F514152E6CF04C83954410C5B542C1E6F5141B05E41E3CA395441D179E8381C6F5141E983A12AD03954417448A4881B6F51416990DF19D5395441AEE2E24D1B6F5141F55829B5D6395441D18F2B3D276F5141C6D766CEE03954413A96F7772E6F51418C3D2809E1395441D1A8A71B316F5141BAD42DF4E1395441F0CA87B9326F5141C1BB47A3E2395441A4703DBA326F51411F85EBA1E2395441713D0A97366F5141A4703D3ADB3954417B14AE27366F5141AE47E17ADA39544166666696356F51418FC2F5E8D9395441CDCCCCAC346F51411F85EB91D939544100000080336F5141D7A3704DD939544185EB5118326F514114AE4761D9395441B81E85EB306F51411F85EBC1D939544148E17AB42F6F5141AE47E17ADA39544148E17AA42E6F51410AD7A350DB395441E17A149E2D6F51410AD7A360DC3954417B14AED7296F51410AD7A340DC395441EC51B88E296F5141AE47E1AADD395441EC51B85E266F5141F6285C0FDD395441EC51B88E266F51417B14AE77DB3954417B14AE07236F51415C8FC2E5DA395441F6285C6F216F51411F85EB91D9395441333333A3206F514114AE4771DA395441F6285C1F1C6F514152B81E75D6395441CDCCCC8C1C6F51417B14AEF7D3395441B81E85EB1C6F51415C8FC265CF395441EC51B80E1E6F5141C3F5285CCF395441666666661E6F514133333363CD395441295C8F52216F5141A4703DBACD39544152B81E45226F514100000080CD39544148E17A24236F51415C8FC245CD3954415C8FC285236F5141F6285C3FCF3954413D0AD7F3256F51417B14AEE7CE395441A4703D1A266F5141CDCCCC6CCD3954415C8FC2B5266F51413D0AD793CD395441C3F528DC296F5141C3F528BCC4395441D7A3706D2D6F51410AD7A340C6395441F6285CDF2B6F5141F6285C1FCA3954419A9999292D6F514114AE47B1CA3954415C8FC2F52A6F5141295C8F62D0395441333333232C6F5141000000B0D0395441E17A149E2D6F5141E17A14FED0395441A4703D7A2F6F5141333333A3D139544114AE47E1306F5141295C8F82D2395441C3F5282C326F51413D0AD7F3D339544148E17AF4336F514185EB5188D63954415C8FC265356F5141E17A146ED8395441B81E853B366F5141CDCCCC1CD93954410AD7A3E0366F5141A4703D3AD939544185EB51B8376F5141F6285C0FD9395441295C8F72396F5141EC51B8BED539544148E17A14406F5141D7A370FDC8395441713D0A97426F514152B81EE5C4395441865B7588456F5141A2C82AC0C039544164F26C80456F5141DC2754CAC0395441A9797474496F51419C961BA9BB395441CE64B1AD4E6F5141177E6DEBB5395441D960E1714E6F5141F2FFA1F3B439544108760B644B6F5141BEE9427FB1395441C06B1CA3486F5141C4E57243B13954411107B204476F51417979CF58B1395441D1C53055456F5141E59EA065B1395441ECE8B218436F5141C8E57243B1395441A3AFD1E0416F5141F269F694B2395441BA07FE743E6F51412B46A67AB039544148B33AF13F6F5141D7435731AE395441643D769C416F5141834108E8AB3954411B6B4E4C446F5141EC37E77DAD39544165A617A2456F514125149763AB3954415747FE31426F51415EF41685A9395441375B0E5D436F51410AF2C73BA73954419B53D510456F51413C6EAB15A839544163AAE7DD456F5141AAC63ED5A6395441D8FCC243446F5141E2711426A6395441D6CBE8AE456F514173B2C77EA339544131C87F9E476F5141F09C3661A439544191F5F022486F5141BE205387A33954414BEE1E024C6F51415A912DD9A5395441C49F13D84D6F514178B2C77EA3395441BE0C8519526F5141C0BCB63FA6395441C66C51254F6F51412253C9C9AA395441CF995B7E4D6F5141CC1DB8CDA93954413627990E4B6F514173551813AD395441BA0B50974B6F5141FA37E77DAD395441CA01C8014B6F51416B280EBAAE395441D7C47DB94B6F514164F91B43B0395441534968364F6F514115F8017CB4395441670A36D04F6F514136B12F9EB43954418F62F543506F5141A7CA8F32B4395441D1E701D4566F5141074C322CAD395441943038DA606F5141272CC155A1395441613CCB565B6F51415D0AA8CD9C395441F6285CDF606F5141F6285C4FA13954417B14AE77686F51410AD7A300983954415C8FC2C5706F5141D7A370FD8D395441EC51B83E676F51417B14AE678F395441CDCCCC8C5B6F51419A9999899139544148E17A14526F5141295C8FA292395441CDCCCC1C526F514152B81E15933954415C8FC265546F5141CDCCCC0C933954415C8FC275546F51415C8FC21595395441D7A3706D536F51415C8FC205953954418D569766536F5141DA44424D963954415362F1664F6F514150AF1BF2923954411F85EB414F6F5141666666F69239544196F3196F4B6F51410BF66F2692395441961938B2466F514102095D5491395441C3F5285C466F51415C8FC2459139544197559AC7426F5141A5673DA690395441689BFC7B416F51410F44866C903954419EC9B572406F51417F314585923954416396FCAB3F6F5141C04E516294395441E7CCE8D5396F5141D02CA264A2395441F3BD924E336F514110699B0FB2395441B171AC44316F51417480082DB73954415B596B78336F5141ABA0795DB83954410B9F7AA0366F5141E27A8CFBB9395441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>261394 - 3385138
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000200000001030000000200000013000000A4703D0AE46E5141E17A140E32395441D7A3707DE46E5141CDCCCCAC31395441713D0A87E36E51416666661631395441295C8FF2E06E5141CDCCCC4C3B395441713D0A47D96E514148E17AB4443954413D0AD7B3DF6E51417B14AEC7463954419A999909E06E5141666666F645395441000000C0E76E5141713D0A27333954413D0AD7C3E66E51410AD7A31033395441D7A370FDE46E5141AE47E1FA313954418FC2F588E46E5141C3F528BC3239544185EB51D8E46E5141295C8F523339544114AE4781E46E5141295C8F923339544114AE4761E46E51410000008034395441F6285CDFE36E5141A4703D9A34395441E17A14BEE36E514148E17AC43239544100000040E36E5141CDCCCC4C32395441A4703D6AE36E5141666666A631395441A4703D0AE46E5141E17A140E3239544106000000000000A0E16E51419A9999893A395441B81E859BE36E51417B14AE473B39544152B81E05E36E5141C3F528FC3C395441EC51B82EE26E5141C3F528CC3C3954419A9999E9E06E51415C8FC2453C395441000000A0E16E51419A9999893A39544101030000000100000033000000B81E853B426F514148E17A84A9395441C3F5285C436F5141AE47E13AA739544114AE4711456F514152B81E15A8395441A4703DDA456F5141A4703DDAA639544185EB5148446F5141295C8F22A63954415C8FC2A5456F514114AE4781A339544185EB5198476F514152B81E65A4395441CDCCCC2C486F514114AE4781A33954413D0AD7534A6F5141E17A14CEA43954410AD7A3004C6F5141CDCCCCDCA539544185EB51D84D6F51418FC2F578A339544152B81E15526F51415C8FC245A6395441C3F5281C4F6F514185EB51C8AA39544185EB51784D6F5141333333D3A939544148E17A144B6F51411F85EB11AD395441000000A04B6F51413D0AD783AD395441B81E850B4B6F5141713D0AC7AE395441A4703DBA4B6F5141F6285C3FB0395441D7A3702D4F6F5141B81E857BB4395441E17A14DE4F6F5141F6285C9FB4395441A4703D1A556F5141295C8F02AF395441AE47E15A5A6F5141AE47E16AA9395441F6285CDF606F5141F6285C4FA139544166666666536F514166666656963954411F85EB414F6F5141666666F692395441B81E850B4B6F514114AE471192395441C3F5285C466F51415C8FC2459139544152B81E55416F51415C8FC26590395441713D0AF73B6F514185EB51489D3954413D0AD793366F514166666636AA39544114AE4731316F5141295C8F22B739544185EB5198356F514133333383B93954417B14AE273A6F5141713D0A97BB395441C3F5280C446F51418FC2F518C0395441AE47E16A456F5141666666E6C03954419A999969496F51411F85EBB1BB39544185EB51684C6F51415C8FC255B83954419A9999A94E6F5141A4703DEAB53954415C8FC2754E6F5141666666F6B4395441B81E856B4B6F514133333383B1395441F6285CAF486F51418FC2F538B139544152B81E25466F51411F85EB61B1395441D7A3700D436F5141EC51B84EB13954413D0AD7E3416F514152B81E95B23954413D0AD7733E6F514152B81E85B0395441D7A370DD3E6F5141295C8FE2AF395441295C8F12406F51418FC2F5F8AD395441E17A149E416F5141000000E0AB3954419A999959446F5141AE47E17AAD3954415C8FC2A5456F51415C8FC265AB395441B81E853B426F514148E17A84A9395441
+</a>
+
+<b>
+0106000000010000000103000000010000007F0000000B9F7AA0366F5141E27A8CFBB9395441FBDE2F9F356F5141CD1B5486B93954417B14AE671E6F514114AE47F1BD395441CDCCCC8C186F51418FC2F528BF395441ACFC3455186F5141F1D5D286BF39544168D08C30226F5141247D7B69BF39544100581B521F6F514152E6CF04C83954410C5B542C1E6F5141B05E41E3CA395441D179E8381C6F5141E983A12AD03954417448A4881B6F51416990DF19D5395441AEE2E24D1B6F5141F55829B5D6395441D18F2B3D276F5141C6D766CEE03954413A96F7772E6F51418C3D2809E1395441D1A8A71B316F5141BAD42DF4E1395441F0CA87B9326F5141C1BB47A3E2395441A4703DBA326F51411F85EBA1E2395441713D0A97366F5141A4703D3ADB3954417B14AE27366F5141AE47E17ADA39544166666696356F51418FC2F5E8D9395441CDCCCCAC346F51411F85EB91D939544100000080336F5141D7A3704DD939544185EB5118326F514114AE4761D9395441B81E85EB306F51411F85EBC1D939544148E17AB42F6F5141AE47E17ADA39544148E17AA42E6F51410AD7A350DB395441E17A149E2D6F51410AD7A360DC3954417B14AED7296F51410AD7A340DC395441EC51B88E296F5141AE47E1AADD395441EC51B85E266F5141F6285C0FDD395441EC51B88E266F51417B14AE77DB3954417B14AE07236F51415C8FC2E5DA395441F6285C6F216F51411F85EB91D9395441333333A3206F514114AE4771DA395441F6285C1F1C6F514152B81E75D6395441CDCCCC8C1C6F51417B14AEF7D3395441B81E85EB1C6F51415C8FC265CF395441EC51B80E1E6F5141C3F5285CCF395441666666661E6F514133333363CD395441295C8F52216F5141A4703DBACD39544152B81E45226F514100000080CD39544148E17A24236F51415C8FC245CD3954415C8FC285236F5141F6285C3FCF3954413D0AD7F3256F51417B14AEE7CE395441A4703D1A266F5141CDCCCC6CCD3954415C8FC2B5266F51413D0AD793CD395441C3F528DC296F5141C3F528BCC4395441D7A3706D2D6F51410AD7A340C6395441F6285CDF2B6F5141F6285C1FCA3954419A9999292D6F514114AE47B1CA3954415C8FC2F52A6F5141295C8F62D0395441333333232C6F5141000000B0D0395441E17A149E2D6F5141E17A14FED0395441A4703D7A2F6F5141333333A3D139544114AE47E1306F5141295C8F82D2395441C3F5282C326F51413D0AD7F3D339544148E17AF4336F514185EB5188D63954415C8FC265356F5141E17A146ED8395441B81E853B366F5141CDCCCC1CD93954410AD7A3E0366F5141A4703D3AD939544185EB51B8376F5141F6285C0FD9395441295C8F72396F5141EC51B8BED539544148E17A14406F5141D7A370FDC8395441713D0A97426F514152B81EE5C4395441865B7588456F5141A2C82AC0C039544164F26C80456F5141DC2754CAC0395441A9797474496F51419C961BA9BB395441CE64B1AD4E6F5141177E6DEBB5395441D960E1714E6F5141F2FFA1F3B439544108760B644B6F5141BEE9427FB1395441C06B1CA3486F5141C4E57243B13954411107B204476F51417979CF58B1395441D1C53055456F5141E59EA065B1395441ECE8B218436F5141C8E57243B1395441A3AFD1E0416F5141F269F694B2395441BA07FE743E6F51412B46A67AB039544148B33AF13F6F5141D7435731AE395441643D769C416F5141834108E8AB3954411B6B4E4C446F5141EC37E77DAD39544165A617A2456F514125149763AB3954415747FE31426F51415EF41685A9395441375B0E5D436F51410AF2C73BA73954419B53D510456F51413C6EAB15A839544163AAE7DD456F5141AAC63ED5A6395441D8FCC243446F5141E2711426A6395441D6CBE8AE456F514173B2C77EA339544131C87F9E476F5141F09C3661A439544191F5F022486F5141BE205387A33954414BEE1E024C6F51415A912DD9A5395441C49F13D84D6F514178B2C77EA3395441BE0C8519526F5141C0BCB63FA6395441C66C51254F6F51412253C9C9AA395441CF995B7E4D6F5141CC1DB8CDA93954413627990E4B6F514173551813AD395441BA0B50974B6F5141FA37E77DAD395441CA01C8014B6F51416B280EBAAE395441D7C47DB94B6F514164F91B43B0395441534968364F6F514115F8017CB4395441670A36D04F6F514136B12F9EB43954418F62F543506F5141A7CA8F32B4395441D1E701D4566F5141074C322CAD395441943038DA606F5141272CC155A1395441613CCB565B6F51415D0AA8CD9C395441F6285CDF606F5141F6285C4FA13954417B14AE77686F51410AD7A300983954415C8FC2C5706F5141D7A370FD8D395441EC51B83E676F51417B14AE678F395441CDCCCC8C5B6F51419A9999899139544148E17A14526F5141295C8FA292395441CDCCCC1C526F514152B81E15933954415C8FC265546F5141CDCCCC0C933954415C8FC275546F51415C8FC21595395441D7A3706D536F51415C8FC205953954418D569766536F5141DA44424D963954415362F1664F6F514150AF1BF2923954411F85EB414F6F5141666666F69239544196F3196F4B6F51410BF66F2692395441961938B2466F514102095D5491395441C3F5285C466F51415C8FC2459139544197559AC7426F5141A5673DA690395441689BFC7B416F51410F44866C903954419EC9B572406F51417F314585923954416396FCAB3F6F5141C04E516294395441E7CCE8D5396F5141D02CA264A2395441F3BD924E336F514110699B0FB2395441B171AC44316F51417480082DB73954415B596B78336F5141ABA0795DB83954410B9F7AA0366F5141E27A8CFBB9395441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>261526 - 207320
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000030000000103000000010000000E000000AE47E15A566C5141F6285CAFDD3A54415C8FC2C5606C514185EB5118D93A5441F6285C0F546C5141C3F5280CBC3A5441C3F5288C536C51410AD7A3E0BA3A54413D0AD743556C514100000020BA3A54415C8FC2D5556C5141000000E0B93A5441E17A142E516C514166666616B53A5441E17A142E446C514185EB5178AD3A5441CDCCCCAC3F6C514166666656A83A5441333333733E6C514152B81EA5A33A5441333333D3376C5141F6285C6FA33A54417B14AE07346C5141A4703D7AA33A5441F6285CDF376C5141EC51B8FEA93A5441AE47E15A566C5141F6285CAFDD3A5441010300000001000000080000001F85EB217C6C5141E17A14CE063B54411F85EB61786C514148E17A04093B5441666666E68F6C51419A9999392C3B5441CDCCCCEC906C51415C8FC2C52B3B544100000090936C5141333333E3293B54411F85EBE1936C5141EC51B81E283B5441713D0AE77D6C51415C8FC235073B54411F85EB217C6C5141E17A14CE063B544101030000000100000007000000EC51B83E6F6C514133333323D63A544185EB51F8676C5141EC51B85ED93A54417B14AEC76A6C5141C3F5282CE03A54413D0AD7236D6C51411F85EBE1E53A5441C3F5289C7A6C5141C3F5287C063B544185EB5188816C5141713D0A67023B5441EC51B83E6F6C514133333323D63A5441
+</a>
+
+<b>
+01060000000100000001030000000100000018000000E17A142E516C514166666616B53A54415E4440E74E6C51412871C8FCB33A5441804B10014C6C51413ACBFD0DB23A5441FBC935AF496C5141CA1B04B2B03A544118BDCB41466C51415C154FFBAE3A5441D18C4DE4446C51417B4A5012AE3A544144A74272446C5141F06445A0AD3A5441E17A142E446C514185EB5178AD3A5441A8F66963436C514158B46C91AC3A5441EBDE9063426C5141A09C9391AB3A54410531D4E23F6C5141FC3B97D6A83A5441C16BEDC73F6C5141BD554E75A83A5441CDCCCCAC3F6C514166666656A83A5441333333733E6C514152B81EA5A33A54417B14AE07346C5141A4703D7AA33A544161F45270356C5141F2751BA7A53A54418B05D93E3C6C5141F2751BA7A53A54414D9BD6103E6C51412F37141DAB3A5441382C5129426C51410FC88E35AF3A54414BB84888486C5141D6404A9FB23A54415E4440E74E6C514193B90509B63A5441C3F5288C536C51410AD7A3E0BA3A54415C8FC2D5556C5141000000E0B93A5441E17A142E516C514166666616B53A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>261526 - 368963
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000030000000103000000010000000E000000AE47E15A566C5141F6285CAFDD3A54415C8FC2C5606C514185EB5118D93A5441F6285C0F546C5141C3F5280CBC3A5441C3F5288C536C51410AD7A3E0BA3A54413D0AD743556C514100000020BA3A54415C8FC2D5556C5141000000E0B93A5441E17A142E516C514166666616B53A5441E17A142E446C514185EB5178AD3A5441CDCCCCAC3F6C514166666656A83A5441333333733E6C514152B81EA5A33A5441333333D3376C5141F6285C6FA33A54417B14AE07346C5141A4703D7AA33A5441F6285CDF376C5141EC51B8FEA93A5441AE47E15A566C5141F6285CAFDD3A5441010300000001000000080000001F85EB217C6C5141E17A14CE063B54411F85EB61786C514148E17A04093B5441666666E68F6C51419A9999392C3B5441CDCCCCEC906C51415C8FC2C52B3B544100000090936C5141333333E3293B54411F85EBE1936C5141EC51B81E283B5441713D0AE77D6C51415C8FC235073B54411F85EB217C6C5141E17A14CE063B544101030000000100000007000000EC51B83E6F6C514133333323D63A544185EB51F8676C5141EC51B85ED93A54417B14AEC76A6C5141C3F5282CE03A54413D0AD7236D6C51411F85EBE1E53A5441C3F5289C7A6C5141C3F5287C063B544185EB5188816C5141713D0A67023B5441EC51B83E6F6C514133333323D63A5441
+</a>
+
+<b>
+01060000000100000001030000000100000018000000E17A142E516C514166666616B53A54415E4440E74E6C51412871C8FCB33A5441804B10014C6C51413ACBFD0DB23A5441FBC935AF496C5141CA1B04B2B03A544118BDCB41466C51415C154FFBAE3A5441D18C4DE4446C51417B4A5012AE3A544144A74272446C5141F06445A0AD3A5441E17A142E446C514185EB5178AD3A5441A8F66963436C514158B46C91AC3A5441EBDE9063426C5141A09C9391AB3A54410531D4E23F6C5141FC3B97D6A83A5441C16BEDC73F6C5141BD554E75A83A5441CDCCCCAC3F6C514166666656A83A5441333333733E6C514152B81EA5A33A54417B14AE07346C5141A4703D7AA33A544161F45270356C5141F2751BA7A53A54418B05D93E3C6C5141F2751BA7A53A54414D9BD6103E6C51412F37141DAB3A5441382C5129426C51410FC88E35AF3A54414BB84888486C5141D6404A9FB23A54415E4440E74E6C514193B90509B63A5441C3F5288C536C51410AD7A3E0BA3A54415C8FC2D5556C5141000000E0B93A5441E17A142E516C514166666616B53A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>261584 - 207358
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000070000000AD7A3C08E6C5141AE47E10A063F54419A9999B9956C51410AD7A320FE3E544114AE4751956C5141666666D6FD3E54419A999959776C51418FC2F598E83E54418FC2F568706C514185EB5188F03E544185EB51588E6C51410AD7A3C0053F54410AD7A3C08E6C5141AE47E10A063F5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000F8D72294776C514192D172C2E83E544114AE4751956C5141666666D6FD3E544127EA96A0956C5141E453D70EFE3E54414DAACBA1996C51418AB0DDB0F93E544131A96D1E926C5141B01171A1F43E54413469F0B68E6C5141EC259516F23E5441E4439AC28D6C5141349A7F41F13E54413D0AD7638D6C514114AE4701F13E54412C6901278D6C5141E6A5CDB9F03E544118B23A028B6C5141F32938DBEE3E5441FD63A5647C6C5141DF25A70AE33E54418FF2BE79776C51416441BEAFE83E5441F8D72294776C514192D172C2E83E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>261584 - 339075
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000070000000AD7A3C08E6C5141AE47E10A063F54419A9999B9956C51410AD7A320FE3E544114AE4751956C5141666666D6FD3E54419A999959776C51418FC2F598E83E54418FC2F568706C514185EB5188F03E544185EB51588E6C51410AD7A3C0053F54410AD7A3C08E6C5141AE47E10A063F5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000F8D72294776C514192D172C2E83E544114AE4751956C5141666666D6FD3E544127EA96A0956C5141E453D70EFE3E54414DAACBA1996C51418AB0DDB0F93E544131A96D1E926C5141B01171A1F43E54413469F0B68E6C5141EC259516F23E5441E4439AC28D6C5141349A7F41F13E54413D0AD7638D6C514114AE4701F13E54412C6901278D6C5141E6A5CDB9F03E544118B23A028B6C5141F32938DBEE3E5441FD63A5647C6C5141DF25A70AE33E54418FF2BE79776C51416441BEAFE83E5441F8D72294776C514192D172C2E83E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>261795 - 227266
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000002000000290000005C8FC245356B514133333313D93B5441A4703D8A2C6B5141AE47E14AEF3B5441F6285CCF2B6B514152B81E25F13B544133333343276B51415C8FC285FC3B5441B81E85BB256B51411F85EB01FF3B54418FC2F508246B5141AE47E13A013C544114AE4771226B51418FC2F588023C5441E17A141E186B51419A9999F9083C5441E17A147E166B5141A4703D5A0A3C54413D0AD723146B51410AD7A3800D3C544100000020086B5141CDCCCC1C1E3C5441CDCCCC4C026B5141C3F5281C263C5441D7A3704D006B514114AE47412A3C54417B14AEC70E6B51418FC2F568203C5441AE47E16A176B5141CDCCCCCC193C5441A4703D2A216B514114AE47B1113C54415C8FC225276B51419A9999490C3C5441EC51B8CE2D6B5141713D0AF7053C544166666636336B5141C3F5289C003C5441AE47E1DA3F6B514185EB5198F43B5441A4703D5A4C6B51413D0AD793E83B544114AE47415E6B5141E17A14FED83B5441713D0AD75D6B514152B81EE5D73B54411F85EB615D6B5141666666C6D63B5441A4703D7A486B5141C3F5288CA33B5441E17A143E456B514185EB5118A63B54410AD7A3C03F6B5141666666F6A93B54419A999989356B51411F85EBA1B03B5441F6285C1F3A6B51418FC2F538B23B544152B81ED53D6B51413D0AD7D3B43B5441713D0AB73F6B51411F85EB61BA3B544133333313386B51413D0AD773BE3B5441E17A141E376B5141CDCCCCACBF3B54413D0AD753366B5141AE47E19AC43B54411F85EB91366B5141F6285C5FC93B5441A4703DAA376B5141AE47E10ACF3B5441CDCCCC9C376B51413D0AD793CF3B544152B81E053B6B51410AD7A3C0D03B5441333333B3396B5141E17A14FED53B54413D0AD793366B51419A999919D53B54415C8FC245356B514133333313D93B544105000000CDCCCC7C3B6B5141E17A143EC03B544185EB51883D6B514152B81E65C03B5441AE47E15A3D6B5141EC51B89EC23B5441F6285C4F3B6B514114AE4771C23B5441CDCCCC7C3B6B5141E17A143EC03B5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000D8630556486B51412E85AEA8A33B5441E17A143E456B514185EB5118A63B54410AD7A3C03F6B5141666666F6A93B5441EBACF7093C6B51413A032763AC3B5441D7155222396B5141019BB948AE3B5441CC90B49A386B5141AFCD46A1AE3B5441EE5FED99386B514105DEC8A1AE3B5441F0A23AE6366B5141AF5947BEAF3B5441860C30A0356B514161C6C0A9B03B5441964737A7396B514110CC4B0FB23B544125F8F239496B51416214A3AFA63B5441D8630556486B51412E85AEA8A33B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>261795 - 337446
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000002000000290000005C8FC245356B514133333313D93B5441A4703D8A2C6B5141AE47E14AEF3B5441F6285CCF2B6B514152B81E25F13B544133333343276B51415C8FC285FC3B5441B81E85BB256B51411F85EB01FF3B54418FC2F508246B5141AE47E13A013C544114AE4771226B51418FC2F588023C5441E17A141E186B51419A9999F9083C5441E17A147E166B5141A4703D5A0A3C54413D0AD723146B51410AD7A3800D3C544100000020086B5141CDCCCC1C1E3C5441CDCCCC4C026B5141C3F5281C263C5441D7A3704D006B514114AE47412A3C54417B14AEC70E6B51418FC2F568203C5441AE47E16A176B5141CDCCCCCC193C5441A4703D2A216B514114AE47B1113C54415C8FC225276B51419A9999490C3C5441EC51B8CE2D6B5141713D0AF7053C544166666636336B5141C3F5289C003C5441AE47E1DA3F6B514185EB5198F43B5441A4703D5A4C6B51413D0AD793E83B544114AE47415E6B5141E17A14FED83B5441713D0AD75D6B514152B81EE5D73B54411F85EB615D6B5141666666C6D63B5441A4703D7A486B5141C3F5288CA33B5441E17A143E456B514185EB5118A63B54410AD7A3C03F6B5141666666F6A93B54419A999989356B51411F85EBA1B03B5441F6285C1F3A6B51418FC2F538B23B544152B81ED53D6B51413D0AD7D3B43B5441713D0AB73F6B51411F85EB61BA3B544133333313386B51413D0AD773BE3B5441E17A141E376B5141CDCCCCACBF3B54413D0AD753366B5141AE47E19AC43B54411F85EB91366B5141F6285C5FC93B5441A4703DAA376B5141AE47E10ACF3B5441CDCCCC9C376B51413D0AD793CF3B544152B81E053B6B51410AD7A3C0D03B5441333333B3396B5141E17A14FED53B54413D0AD793366B51419A999919D53B54415C8FC245356B514133333313D93B544105000000CDCCCC7C3B6B5141E17A143EC03B544185EB51883D6B514152B81E65C03B5441AE47E15A3D6B5141EC51B89EC23B5441F6285C4F3B6B514114AE4771C23B5441CDCCCC7C3B6B5141E17A143EC03B5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000D8630556486B51412E85AEA8A33B5441E17A143E456B514185EB5118A63B54410AD7A3C03F6B5141666666F6A93B5441EBACF7093C6B51413A032763AC3B5441D7155222396B5141019BB948AE3B5441CC90B49A386B5141AFCD46A1AE3B5441EE5FED99386B514105DEC8A1AE3B5441F0A23AE6366B5141AF5947BEAF3B5441860C30A0356B514161C6C0A9B03B5441964737A7396B514110CC4B0FB23B544125F8F239496B51416214A3AFA63B5441D8630556486B51412E85AEA8A33B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>310946 - 203531
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000001200000014AE47E17BBB5041AE47E1BA0F415541AE47E1BA7FBB5041E17A149E0A415541A4703D8A86BB5041F6285CCF0141554148E17A4481BB504185EB5118FE405541333333937BBB5041D7A370CD04415541295C8F2276BB50419A9999F909415541713D0A676FBB5041EC51B84E0F4155419A9999F968BB50419A9999B9084155419A99994968BB50415C8FC27509415541D7A3702D69BB5041AE47E11A0A415541CDCCCCEC69BB50415C8FC2B51341554152B81E6571BB5041E17A149E174155417B14AE3771BB5041EC51B81E184155410000007082BB504152B81E0522415541CDCCCC4C83BB504148E17A84224155419A99996985BB5041666666361C415541E17A144E78BB5041A4703D2A1441554114AE47E17BBB5041AE47E1BA0F415541
+</a>
+
+<b>
+01060000000100000001030000000100000012000000C696AC5970BB50412C6F8A8E0E41554109EFDF2670BB50410BD1C6B60E415541B67A144E78BB5041B9703D2A144155411CC39DBB79BB50415B42C5641241554114AE47E17BBB5041AE47E1BA0F415541697591907DBB504184B2297E0D4155417847E1BA7FBB5041E17A149E0A415541CFC6025786BB50412E999D1102415541810BEE0986BB5041C5AC97FB014155416CC8C72284BB50417B64D61401415541FF0C0ABB80BB50410CBC68FAFE405541C3B1F8867EBB504138FAF3E101415541613961067DBB50414E3D1AC903415541E4601D527ABB504157C8019706415541937A245075BB5041C1960F4C0B41554117A2E09B72BB5041303F7D660D41554171C1408F70BB50412922B9640E415541C696AC5970BB50412C6F8A8E0E415541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262302 - 207282
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000018000000D7A370BDA36B514148E17AA4534054413D0AD7B3A76B5141AE47E18A4F4054411F85EB91A36B51417B14AE274D405441E17A14BEA46B5141D7A3701D4B405441EC51B8DEA86B51411F85EBF149405441C3F5289CAB6B5141713D0A274B40544185EB5198B86B5141EC51B88E3C40544185EB51A8C46B514148E17A942E405441B81E857BC66B51411F85EB312C405441C3F5282CA96B5141666666F61B405441666666F6A26B514152B81EA529405441E17A146EA06B51419A9999392F405441CDCCCC7C9B6B5141E17A147E384054415C8FC2E5816B5141D7A3706D5E405441AE47E1DA756B51415C8FC285694054418FC2F558696B5141B81E850B754054415C8FC285846B5141E17A14EE80405441A4703D2A8F6B51417B14AE9774405441CDCCCCBC946B514114AE47216E4054418FC2F5D8976B5141AE47E1EA694054418FC2F5A8996B51418FC2F53866405441E17A146E9C6B5141F6285C9F5E405441666666569F6B5141A4703D5A59405441D7A370BDA36B514148E17AA453405441
+</a>
+
+<b>
+01060000000100000001030000000100000050000000AD72EA08986B51411AC51D89694054415561A511986B51413E9751776940544137BBC53F986B514188D7481969405441D9AC41A8996B514191AC88366640544169245CC69B6B514195D4876B60405441E17A146E9C6B5141F6285C9F5E405441D5E5B18C9E6B51410E60D7C75A405441666666569F6B5141A4703D5A594054418347DC849F6B51417C31FB1D594054410AB7188C9F6B51416E50F913594054415DED70FBA06B5141D05A273857405441D7A370BDA36B514148E17AA453405441B5A3C949A66B5141A5E47E0151405441D0F9BBB3A76B51418648FD8A4F40544157F68459A76B514133CAB2564F40544178E0BA43A76B5141FA1E1C4A4F4054411AB4371FA76B5141B2E803354F40544168CD0687A66B5141C6BC16DD4E40544190754A51A56B5141DD94242A4E405441AC36819FA46B514109E06DC34D4054411F85EB91A36B51417B14AE274D405441C74FD592A36B5141FE4F17264D405441420A7F86A46B51418A0B267E4B405441E17A14BEA46B5141D7A3701D4B405441D85AD110A66B5141877A6BBD4A4054416D1D7F12A66B51410B13EFBC4A4054418FF67DDCA86B5141A5EF7CF0494054419B5B6C3EAA6B514176CFE98C4A405441F082BD9BAB6B51415DE3DA264B405441E908D1AAB16B5141B85AD05744405441AFB0DC11BA6B5141359D3DD93A40544186B389ECBD6B51412876EC613640544170790EB5C26B51419EFE40D530405441C2B8F7F5C26B5141A0E0C98B30405441105079E5C36B5141525B42762F405441AA83E538C46B51418B50F9132F4054412640A5F5C46B5141A45D6D2F2E40544160F83409C56B5141E307DD152E40544192FB891AC56B51412B8636FF2D40544168A0C11FC56B5141EE0965F82D405441BA312D7AC66B514167F469312C405441852756F6C16B514178F469B1294054415046DB41AE6B5141F93174C81E40544179A26A44AD6B51412D65A73B1E4054415046DBA1AC6B514194CB0DE21D405441F8B6182CA96B5141F65AD0F71B40544144796DEFA46B5141635D644C25405441666666F6A26B514152B81EA5294054416D210D2CA26B51417860F7622B4054415C46DB21A16B514152EA92AD2D405441211C71E4A06B5141A483CE342E405441E17A146EA06B51419A9999392F405441EE0216859F6B5141F47F7AEE30405441CDCCCC7C9B6B5141E17A147E384054417C19F4779B6B514186B6438538405441BFD59D779B6B5141D5D5E48538405441BA7CA2D1966B51419416846C3F4054419AB5327C8F6B51410F81F3484A405441D8BAB9608F6B51416C4CAD714A40544193F938D38D6B5141FBF7F0BE4C405441EF2E01BE8A6B514198C9E35051405441BE251EB18A6B5141EB53FE63514054416B26214A896B5141CFBE2978534054412CFF5B99876B5141E0F82B0156405441C9B843DF866B51413BE8930D574054415C8FC2E5816B5141D7A3706D5E40544111C76DDA786B51414A079AC266405441F35A89C9756B5141DE5AD09769405441144BD37A8E6B51414B4C086375405441A4703D2A8F6B51417B14AE9774405441978BBD93906B5141527D71F4724054414613A8EE936B51412B4622106F40544195CBC6B3946B5141DD8D032B6E40544196658D78966B51412C7D37C86B405441A85F8EA3966B5141E8CFF78D6B40544144F999B6966B5141D6CD2B746B405441B450B225976B5141BE0818D96A4054416C6F37D1976B51416C50F9F369405441AF6F6C07986B5141FF8B288C69405441AD72EA08986B51411AC51D8969405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262302 - 310888
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000018000000D7A370BDA36B514148E17AA4534054413D0AD7B3A76B5141AE47E18A4F4054411F85EB91A36B51417B14AE274D405441E17A14BEA46B5141D7A3701D4B405441EC51B8DEA86B51411F85EBF149405441C3F5289CAB6B5141713D0A274B40544185EB5198B86B5141EC51B88E3C40544185EB51A8C46B514148E17A942E405441B81E857BC66B51411F85EB312C405441C3F5282CA96B5141666666F61B405441666666F6A26B514152B81EA529405441E17A146EA06B51419A9999392F405441CDCCCC7C9B6B5141E17A147E384054415C8FC2E5816B5141D7A3706D5E405441AE47E1DA756B51415C8FC285694054418FC2F558696B5141B81E850B754054415C8FC285846B5141E17A14EE80405441A4703D2A8F6B51417B14AE9774405441CDCCCCBC946B514114AE47216E4054418FC2F5D8976B5141AE47E1EA694054418FC2F5A8996B51418FC2F53866405441E17A146E9C6B5141F6285C9F5E405441666666569F6B5141A4703D5A59405441D7A370BDA36B514148E17AA453405441
+</a>
+
+<b>
+01060000000100000001030000000100000050000000AD72EA08986B51411AC51D89694054415561A511986B51413E9751776940544137BBC53F986B514188D7481969405441D9AC41A8996B514191AC88366640544169245CC69B6B514195D4876B60405441E17A146E9C6B5141F6285C9F5E405441D5E5B18C9E6B51410E60D7C75A405441666666569F6B5141A4703D5A594054418347DC849F6B51417C31FB1D594054410AB7188C9F6B51416E50F913594054415DED70FBA06B5141D05A273857405441D7A370BDA36B514148E17AA453405441B5A3C949A66B5141A5E47E0151405441D0F9BBB3A76B51418648FD8A4F40544157F68459A76B514133CAB2564F40544178E0BA43A76B5141FA1E1C4A4F4054411AB4371FA76B5141B2E803354F40544168CD0687A66B5141C6BC16DD4E40544190754A51A56B5141DD94242A4E405441AC36819FA46B514109E06DC34D4054411F85EB91A36B51417B14AE274D405441C74FD592A36B5141FE4F17264D405441420A7F86A46B51418A0B267E4B405441E17A14BEA46B5141D7A3701D4B405441D85AD110A66B5141877A6BBD4A4054416D1D7F12A66B51410B13EFBC4A4054418FF67DDCA86B5141A5EF7CF0494054419B5B6C3EAA6B514176CFE98C4A405441F082BD9BAB6B51415DE3DA264B405441E908D1AAB16B5141B85AD05744405441AFB0DC11BA6B5141359D3DD93A40544186B389ECBD6B51412876EC613640544170790EB5C26B51419EFE40D530405441C2B8F7F5C26B5141A0E0C98B30405441105079E5C36B5141525B42762F405441AA83E538C46B51418B50F9132F4054412640A5F5C46B5141A45D6D2F2E40544160F83409C56B5141E307DD152E40544192FB891AC56B51412B8636FF2D40544168A0C11FC56B5141EE0965F82D405441BA312D7AC66B514167F469312C405441852756F6C16B514178F469B1294054415046DB41AE6B5141F93174C81E40544179A26A44AD6B51412D65A73B1E4054415046DBA1AC6B514194CB0DE21D405441F8B6182CA96B5141F65AD0F71B40544144796DEFA46B5141635D644C25405441666666F6A26B514152B81EA5294054416D210D2CA26B51417860F7622B4054415C46DB21A16B514152EA92AD2D405441211C71E4A06B5141A483CE342E405441E17A146EA06B51419A9999392F405441EE0216859F6B5141F47F7AEE30405441CDCCCC7C9B6B5141E17A147E384054417C19F4779B6B514186B6438538405441BFD59D779B6B5141D5D5E48538405441BA7CA2D1966B51419416846C3F4054419AB5327C8F6B51410F81F3484A405441D8BAB9608F6B51416C4CAD714A40544193F938D38D6B5141FBF7F0BE4C405441EF2E01BE8A6B514198C9E35051405441BE251EB18A6B5141EB53FE63514054416B26214A896B5141CFBE2978534054412CFF5B99876B5141E0F82B0156405441C9B843DF866B51413BE8930D574054415C8FC2E5816B5141D7A3706D5E40544111C76DDA786B51414A079AC266405441F35A89C9756B5141DE5AD09769405441144BD37A8E6B51414B4C086375405441A4703D2A8F6B51417B14AE9774405441978BBD93906B5141527D71F4724054414613A8EE936B51412B4622106F40544195CBC6B3946B5141DD8D032B6E40544196658D78966B51412C7D37C86B405441A85F8EA3966B5141E8CFF78D6B40544144F999B6966B5141D6CD2B746B405441B450B225976B5141BE0818D96A4054416C6F37D1976B51416C50F9F369405441AF6F6C07986B5141FF8B288C69405441AD72EA08986B51411AC51D8969405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262372 - 207265
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000200000009000000D7A3702D006B5141AE47E13A344054411F85EB810C6B5141EC51B85E3F40544185EB51B8166B514152B81EB533405441000000D02A6B51417B14AE971C40544148E17A242B6B51411F85EB511C405441EC51B88E406B5141D7A370ED03405441E17A144E2B6B5141713D0AB7024054411F85EB41276B5141CDCCCC9C07405441D7A3702D006B5141AE47E13A34405441050000000AD7A3D00F6B5141F6285C7F2C4054419A9999A90E6B514148E17A842B405441EC51B8DE0F6B51418FC2F5182A4054415C8FC205116B51413D0AD7132B4054410AD7A3D00F6B5141F6285C7F2C405441
+</a>
+
+<b>
+010600000001000000010300000001000000120000002A100FA0166B51418D3AFC991A405441FE45D2D3126B5141B642FCEF1E405441C96788D11F6B51412080863D29405441000000D02A6B51417B14AE971C40544131D563052B6B514177C3976B1C40544148E17A242B6B51411F85EB511C4054418BAE859B306B5141FF915B181640544161B9EFD7306B5141D4288BD315405441EC51B88E406B5141D7A370ED0340544171A98E4F406B5141967A65EA0340544103F065BA2B6B51419D4338BD02405441711DF94D2B6B514119503EB80240544109992C222A6B51411D88ED21044054411F85EB41276B5141CDCCCC9C074054411C4F0B1C196B5141E00DE2C3174054418475AF61186B5141C3F0A598184054410092E9AE166B514165EB06891A4054412A100FA0166B51418D3AFC991A405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262372 - 388828
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000200000009000000D7A3702D006B5141AE47E13A344054411F85EB810C6B5141EC51B85E3F40544185EB51B8166B514152B81EB533405441000000D02A6B51417B14AE971C40544148E17A242B6B51411F85EB511C405441EC51B88E406B5141D7A370ED03405441E17A144E2B6B5141713D0AB7024054411F85EB41276B5141CDCCCC9C07405441D7A3702D006B5141AE47E13A34405441050000000AD7A3D00F6B5141F6285C7F2C4054419A9999A90E6B514148E17A842B405441EC51B8DE0F6B51418FC2F5182A4054415C8FC205116B51413D0AD7132B4054410AD7A3D00F6B5141F6285C7F2C405441
+</a>
+
+<b>
+010600000001000000010300000001000000120000002A100FA0166B51418D3AFC991A405441FE45D2D3126B5141B642FCEF1E405441C96788D11F6B51412080863D29405441000000D02A6B51417B14AE971C40544131D563052B6B514177C3976B1C40544148E17A242B6B51411F85EB511C4054418BAE859B306B5141FF915B181640544161B9EFD7306B5141D4288BD315405441EC51B88E406B5141D7A370ED0340544171A98E4F406B5141967A65EA0340544103F065BA2B6B51419D4338BD02405441711DF94D2B6B514119503EB80240544109992C222A6B51411D88ED21044054411F85EB41276B5141CDCCCC9C074054411C4F0B1C196B5141E00DE2C3174054418475AF61186B5141C3F0A598184054410092E9AE166B514165EB06891A4054412A100FA0166B51418D3AFC991A405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262446 - 2961012
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000020000004F000000AE47E12A216A5141000000B0883F5441AE47E12A226A5141F6285C3F873F54413D0AD7C3256A5141CDCCCC9C873F5441CDCCCCCC2A6A51417B14AE97883F544152B81E752F6A5141E17A14FE893F5441AE47E1FA336A514152B81EB58B3F5441D7A370ED416A5141F6285CFF903F54415C8FC2C5476A5141713D0A37933F5441713D0A074C6A5141B81E856B933F54410AD7A3804D6A5141713D0AD7913F5441295C8F32486A51418FC2F5788D3F544114AE47E1496A51413D0AD7838B3F54418FC2F5B8486A51415C8FC2858A3F54415C8FC2454D6A514133333373853F5441E17A144E506A5141CDCCCCBC873F5441713D0A47516A514133333343883F5441EC51B87E526A514185EB51E8843F5441713D0A774D6A5141EC51B85E7E3F54411F85EB01546A5141D7A3701D783F54413D0AD783586A514114AE47817B3F5441CDCCCC9C606A5141A4703D3A7C3F5441713D0A87606A5141C3F5289C803F54410AD7A340686A51417B14AE87853F5441F6285CFF626A5141333333F3923F544148E17A94626A51413D0AD703943F5441666666C6616A5141295C8F12963F54411F85EBC1596A51418FC2F5489B3F54415C8FC2355B6A514148E17A249F3F54419A9999E95B6A5141EC51B83EA43F5441AE47E1EA5C6A51415C8FC215A73F54410AD7A3705E6A5141713D0A17A83F54418FC2F508616A5141D7A3708DA73F5441713D0A57646A51410AD7A390A43F54418FC2F5686A6A5141333333E39B3F5441A4703DEA6A6A5141E17A14AE9B3F544133333373696A5141666666869A3F5441EC51B84E6A6A5141295C8F32993F5441666666966C6A5141D7A370FD9A3F5441333333436D6A51415C8FC2B59A3F54411F85EBF16D6A51419A999949963F5441AE47E12A726A5141333333538E3F544152B81EC5766A514100000060813F5441333333D3776A514185EB51E87B3F5441C3F528EC776A51419A999989763F5441666666D6786A51413D0AD793743F5441B81E851B776A5141333333736B3F544148E17A24776A51419A9999A9653F5441333333B3786A514100000050523F544185EB51E8726A51413D0AD7B34D3F5441EC51B84E6C6A51419A9999F9483F5441F6285C9F696A514133333393443F5441E17A140E696A514133333343423F5441295C8F22666A5141D7A370ED3F3F54410AD7A3104E6A51417B14AEA73F3F544152B81E75486A514152B81EF54C3F5441000000D0456A5141A4703D3A533F54415C8FC295446A514114AE4721553F544166666606426A51411F85EBE1573F5441CDCCCC2C436A5141666666965A3F5441295C8FA23C6A5141713D0A575F3F5441F6285C6F3C6A5141B81E850B603F544148E17A443B6A51419A999989613F5441CDCCCC7C376A51415C8FC285643F5441713D0AA7336A5141D7A370ED663F54418FC2F5282F6A51410AD7A300693F5441A4703DDA296A5141A4703DCA6A3F54418FC2F5A8216A5141CDCCCC9C6C3F544152B81E65196A5141295C8F12703F544152B81E25126A5141E17A14FE7B3F5441EC51B89E116A5141C3F5289C7F3F5441B81E859B0C6A51410AD7A330A23F544148E17A240C6A5141D7A370ADA43F5441D7A3705D0F6A514152B81EF5A53F54417B14AE77156A514152B81E25943F544148E17A04176A5141AE47E1BA903F5441A4703D7A196A51419A9999798D3F5441000000401C6A5141B81E851B8B3F544148E17A841F6A5141EC51B84E893F5441AE47E12A216A5141000000B0883F5441090000005C8FC285646A5141A4703D6A953F54415C8FC205666A5141CDCCCC1C963F5441AE47E1AA666A514185EB51B8973F544114AE47C1656A51418FC2F538993F54417B14AE77646A5141000000D0993F54419A9999E9626A5141D7A3707D993F5441B81E85BB616A5141AE47E1AA973F5441C3F528DC626A5141EC51B8AE953F54415C8FC285646A5141A4703D6A953F5441
+</a>
+
+<b>
+0106000000010000000103000000010000001900000078EB301D776A51415E72DF5E6A3F5441DFFE8D1E776A51419A45657D693F544148E17A24776A51419A9999A9653F54415AD8CA2A776A51415F3E2D5B653F5441CA196593776A5141ADBA9E47603F54418E3B65F0776A5141AC4E34C45B3F544172D4E797786A5141BB6119A3533F5441A3FF9089786A51415099DD2E523F5441188F3DA9716A5141B58549CF4C3F544138DD8F5B6C6A5141936DCC02493F544177B0C2296C6A5141C38108BD483F5441164DA8A3696A5141CF093E9A443F5441B3293D2C696A5141EC2118BE423F5441E645D2FF686A5141D548CC37423F54416A89291E666A5141F7E463ED3F3F54410805420E4E6A5141F16454AD3F3F5441FADFE186466A5141472EB788513F5441A31A23CE456A51418594203D533F544174B557C5446A5141C92388D7543F544108B78E4B446A51416CEC0F71553F5441C8455110426A514171BC41D7573F5441D26A8E13436A51417CC0055B5A3F5441EFF9723B466A5141F2686521603F5441079F841C776A5141981A3F7A6A3F544178EB301D776A51415E72DF5E6A3F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262446 - 3344423
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000020000004F000000AE47E12A216A5141000000B0883F5441AE47E12A226A5141F6285C3F873F54413D0AD7C3256A5141CDCCCC9C873F5441CDCCCCCC2A6A51417B14AE97883F544152B81E752F6A5141E17A14FE893F5441AE47E1FA336A514152B81EB58B3F5441D7A370ED416A5141F6285CFF903F54415C8FC2C5476A5141713D0A37933F5441713D0A074C6A5141B81E856B933F54410AD7A3804D6A5141713D0AD7913F5441295C8F32486A51418FC2F5788D3F544114AE47E1496A51413D0AD7838B3F54418FC2F5B8486A51415C8FC2858A3F54415C8FC2454D6A514133333373853F5441E17A144E506A5141CDCCCCBC873F5441713D0A47516A514133333343883F5441EC51B87E526A514185EB51E8843F5441713D0A774D6A5141EC51B85E7E3F54411F85EB01546A5141D7A3701D783F54413D0AD783586A514114AE47817B3F5441CDCCCC9C606A5141A4703D3A7C3F5441713D0A87606A5141C3F5289C803F54410AD7A340686A51417B14AE87853F5441F6285CFF626A5141333333F3923F544148E17A94626A51413D0AD703943F5441666666C6616A5141295C8F12963F54411F85EBC1596A51418FC2F5489B3F54415C8FC2355B6A514148E17A249F3F54419A9999E95B6A5141EC51B83EA43F5441AE47E1EA5C6A51415C8FC215A73F54410AD7A3705E6A5141713D0A17A83F54418FC2F508616A5141D7A3708DA73F5441713D0A57646A51410AD7A390A43F54418FC2F5686A6A5141333333E39B3F5441A4703DEA6A6A5141E17A14AE9B3F544133333373696A5141666666869A3F5441EC51B84E6A6A5141295C8F32993F5441666666966C6A5141D7A370FD9A3F5441333333436D6A51415C8FC2B59A3F54411F85EBF16D6A51419A999949963F5441AE47E12A726A5141333333538E3F544152B81EC5766A514100000060813F5441333333D3776A514185EB51E87B3F5441C3F528EC776A51419A999989763F5441666666D6786A51413D0AD793743F5441B81E851B776A5141333333736B3F544148E17A24776A51419A9999A9653F5441333333B3786A514100000050523F544185EB51E8726A51413D0AD7B34D3F5441EC51B84E6C6A51419A9999F9483F5441F6285C9F696A514133333393443F5441E17A140E696A514133333343423F5441295C8F22666A5141D7A370ED3F3F54410AD7A3104E6A51417B14AEA73F3F544152B81E75486A514152B81EF54C3F5441000000D0456A5141A4703D3A533F54415C8FC295446A514114AE4721553F544166666606426A51411F85EBE1573F5441CDCCCC2C436A5141666666965A3F5441295C8FA23C6A5141713D0A575F3F5441F6285C6F3C6A5141B81E850B603F544148E17A443B6A51419A999989613F5441CDCCCC7C376A51415C8FC285643F5441713D0AA7336A5141D7A370ED663F54418FC2F5282F6A51410AD7A300693F5441A4703DDA296A5141A4703DCA6A3F54418FC2F5A8216A5141CDCCCC9C6C3F544152B81E65196A5141295C8F12703F544152B81E25126A5141E17A14FE7B3F5441EC51B89E116A5141C3F5289C7F3F5441B81E859B0C6A51410AD7A330A23F544148E17A240C6A5141D7A370ADA43F5441D7A3705D0F6A514152B81EF5A53F54417B14AE77156A514152B81E25943F544148E17A04176A5141AE47E1BA903F5441A4703D7A196A51419A9999798D3F5441000000401C6A5141B81E851B8B3F544148E17A841F6A5141EC51B84E893F5441AE47E12A216A5141000000B0883F5441090000005C8FC285646A5141A4703D6A953F54415C8FC205666A5141CDCCCC1C963F5441AE47E1AA666A514185EB51B8973F544114AE47C1656A51418FC2F538993F54417B14AE77646A5141000000D0993F54419A9999E9626A5141D7A3707D993F5441B81E85BB616A5141AE47E1AA973F5441C3F528DC626A5141EC51B8AE953F54415C8FC285646A5141A4703D6A953F5441
+</a>
+
+<b>
+0106000000010000000103000000010000001900000078EB301D776A51415E72DF5E6A3F5441DFFE8D1E776A51419A45657D693F544148E17A24776A51419A9999A9653F54415AD8CA2A776A51415F3E2D5B653F5441CA196593776A5141ADBA9E47603F54418E3B65F0776A5141AC4E34C45B3F544172D4E797786A5141BB6119A3533F5441A3FF9089786A51415099DD2E523F5441188F3DA9716A5141B58549CF4C3F544138DD8F5B6C6A5141936DCC02493F544177B0C2296C6A5141C38108BD483F5441164DA8A3696A5141CF093E9A443F5441B3293D2C696A5141EC2118BE423F5441E645D2FF686A5141D548CC37423F54416A89291E666A5141F7E463ED3F3F54410805420E4E6A5141F16454AD3F3F5441FADFE186466A5141472EB788513F5441A31A23CE456A51418594203D533F544174B557C5446A5141C92388D7543F544108B78E4B446A51416CEC0F71553F5441C8455110426A514171BC41D7573F5441D26A8E13436A51417CC0055B5A3F5441EFF9723B466A5141F2686521603F5441079F841C776A5141981A3F7A6A3F544178EB301D776A51415E72DF5E6A3F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262450 - 263066
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000020000000103000000010000000C000000713D0AB7466B5141A4703D4AAC3F5441666666F62C6B514100000050A03F5441713D0A872C6B5141EC51B81EA03F544185EB51880B6B51418FC2F5A8AA3F5441B81E85DB096B5141C3F5287CAB3F544148E17A64096B51413D0AD793AB3F544166666626256B51411F85EB81B73F5441295C8FA2346B5141AE47E1FABD3F544148E17A84446B5141D7A3709DC43F5441295C8F624C6B5141713D0AE7C73F5441295C8F22576B51413D0AD763B43F5441713D0AB7466B5141A4703D4AAC3F544101030000000200000009000000E17A148E316B5141713D0A4731405441C3F5287C256B51410AD7A3F0264054417B14AE97156B5141295C8F323940544152B81E85216B514114AE4751434054415C8FC2B5276B514114AE479148405441F6285C9F376B51419A999949364054410AD7A3D0336B5141EC51B80E33405441295C8F12336B5141D7A3706D32405441E17A148E316B5141713D0A4731405441050000005C8FC2E5306B5141000000A03640544152B81E25306B5141A4703DEA354054419A999909316B514185EB51F834405441A4703DCA316B5141E17A14AE354054415C8FC2E5306B5141000000A036405441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000822EADE64E6B5141A559B0FEC83F54413AE4EC1D536B5141F11941D3CA3F5441ED35B188556B514193BCE5DFCB3F54417F7DFC60586B5141F4BB171CCD3F5441C7A583635B6B5141E6CD9F6ACE3F544125FA48DB5D6B514146C2E97CCF3F54413EB7EB46606B5141A1F5EE89D03F54416FA35A73626B5141C88C837BD13F544173D2C1FA646B5141DFF19694D23F54418FC2F5A8696B5141CDCCCC9CD43F5441E427E8B1776B5141FB123773C43F54412F879822576B5141E58FDB63B43F5441FC379022576B5141AA76D763B43F5441E1B48D22576B51418B0ADA63B43F54410ADF8F624C6B5141E24F09E7C73F5441822EADE64E6B5141A559B0FEC83F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262610 - 207276
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000020000000E000000CDCCCC0C576B5141E17A142E54405441333333F33C6B5141B81E85CB7340544148E17AC4396B5141666666A6774054415C8FC2053E6B5141A4703D4A7B4054417B14AE37606B5141EC51B8DE514054419A999989686B51419A9999594740544133333323796B5141E17A14BE49405441713D0AC7916B5141333333832B405441295C8F32866B51416666661626405441B81E853B6D6B5141E17A142E46405441295C8F42686B5141D7A370AD45405441EC51B81E676B51413D0AD7C346405441EC51B8DE626B514152B81E9546405441CDCCCC0C576B5141E17A142E54405441050000000AD7A3F0436B514114AE47917140544185EB5138436B51418FC2F5D8704054419A999979446B51417B14AE976F4054411F85EB31456B514100000050704054410AD7A3F0436B514114AE4791714054410103000000010000000600000052B81EA5786B5141E17A145EC33F544114AE4761806B5141EC51B88EBA3F5441666666F66E6B51411F85EBA1AE3F54411F85EBA16E6B51411F85EB01AF3F544114AE4721656B514152B81ED5B93F544152B81EA5786B5141E17A145EC33F5441
+</a>
+
+<b>
+01060000000100000001030000000100000011000000EC51B8DE626B514152B81E9546405441165643C8616B514101BA16DD4740544159C72B76606B514122D5625A49405441896816805B6B51417831770F4F405441DCC041CB5F6B5141120BB88E51405441260E313F606B51419FDD38D55140544173072A9C636B51413FAC96944D4054410A634D21646B514196A79EE54C4054418063CF22666B5141875BF4624A4054419A999989686B51419A9999594740544133333323796B5141E17A14BE49405441713D0AC7916B5141333333832B405441295C8F32866B51416666661626405441B81E853B6D6B5141E17A142E46405441295C8F42686B5141D7A370AD45405441EC51B81E676B51413D0AD7C346405441EC51B8DE626B514152B81E9546405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262700 - 207265
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000000C0000001F85EB41276B5141CDCCCC9C07405441E17A144E2B6B5141713D0AB702405441AE47E18A1E6B5141CDCCCCFC01405441A4703D8A0F6B514114AE47610840544114AE4721076B51419A9999591040544148E17A14056B51419A9999891140544185EB51D8046B514152B81E851140544100000070F96A51415C8FC2F528405441CDCCCC6CF56A5141000000702A40544100000080F66A5141AE47E17A2B405441D7A3702D006B5141AE47E13A344054411F85EB41276B5141CDCCCC9C074054410500000085EB51E8056B5141EC51B88E134054415C8FC215056B51418FC2F5F8124054415C8FC295056B514152B81E451240544185EB5168066B5141AE47E1DA1240544185EB51E8056B5141EC51B88E13405441
+</a>
+
+<b>
+010600000001000000010300000001000000120000002A100FA0166B51418D3AFC991A405441FE45D2D3126B5141B642FCEF1E405441C96788D11F6B51412080863D29405441000000D02A6B51417B14AE971C40544131D563052B6B514177C3976B1C40544148E17A242B6B51411F85EB511C4054418BAE859B306B5141FF915B181640544161B9EFD7306B5141D4288BD315405441EC51B88E406B5141D7A370ED0340544171A98E4F406B5141967A65EA0340544103F065BA2B6B51419D4338BD02405441711DF94D2B6B514119503EB80240544109992C222A6B51411D88ED21044054411F85EB41276B5141CDCCCC9C074054411C4F0B1C196B5141E00DE2C3174054418475AF61186B5141C3F0A598184054410092E9AE166B514165EB06891A4054412A100FA0166B51418D3AFC991A405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262700 - 388828
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000000C0000001F85EB41276B5141CDCCCC9C07405441E17A144E2B6B5141713D0AB702405441AE47E18A1E6B5141CDCCCCFC01405441A4703D8A0F6B514114AE47610840544114AE4721076B51419A9999591040544148E17A14056B51419A9999891140544185EB51D8046B514152B81E851140544100000070F96A51415C8FC2F528405441CDCCCC6CF56A5141000000702A40544100000080F66A5141AE47E17A2B405441D7A3702D006B5141AE47E13A344054411F85EB41276B5141CDCCCC9C074054410500000085EB51E8056B5141EC51B88E134054415C8FC215056B51418FC2F5F8124054415C8FC295056B514152B81E451240544185EB5168066B5141AE47E1DA1240544185EB51E8056B5141EC51B88E13405441
+</a>
+
+<b>
+010600000001000000010300000001000000120000002A100FA0166B51418D3AFC991A405441FE45D2D3126B5141B642FCEF1E405441C96788D11F6B51412080863D29405441000000D02A6B51417B14AE971C40544131D563052B6B514177C3976B1C40544148E17A242B6B51411F85EB511C4054418BAE859B306B5141FF915B181640544161B9EFD7306B5141D4288BD315405441EC51B88E406B5141D7A370ED0340544171A98E4F406B5141967A65EA0340544103F065BA2B6B51419D4338BD02405441711DF94D2B6B514119503EB80240544109992C222A6B51411D88ED21044054411F85EB41276B5141CDCCCC9C074054411C4F0B1C196B5141E00DE2C3174054418475AF61186B5141C3F0A598184054410092E9AE166B514165EB06891A4054412A100FA0166B51418D3AFC991A405441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262793 - 207243
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000F000000A4703D1AAF6B514114AE4721FC3F54418FC2F5785F6B5141333333C3E43F54411F85EB415B6B5141713D0A67E93F544185EB5178526B514152B81E65F33F54418FC2F5F8676B51415C8FC2C5F93F5441E17A144E5E6B5141E17A140E0840544148E17A44626B51415C8FC2D508405441295C8F82656B5141A4703D0A0A40544114AE4701696B5141333333B30A405441A4703D6A6B6B5141666666D60B405441333333E36C6B51413D0AD7230D405441000000506F6B51417B14AE3710405441A4703DFA6F6B51418FC2F588104054410AD7A3B07E6B51411F85EB0111405441A4703D1AAF6B514114AE4721FC3F5441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000332852F8676B51413643B4C6F93F54412D9776FD676B5141CAFA3AC8F93F54413AB574B5646B5141C3641C98FE3F5441385137555E6B5141848F89030840544148E17A44626B51415C8FC2D508405441B50F12CB636B514143F7E9660940544180F746F7636B5141AFA15777094054417BACA00A656B51417D7FABDD094054413CD98B7A656B5141160B43070A40544101F33CD3666B5141EA95D1490A40544114AE4701696B5141333333B30A405441A4703D6A6B6B5141666666D60B405441333333E36C6B51413D0AD7230D4054418CB88C886E6B51414F8F40350F405441A3C19D446F6B51411A86400E10405441B239ACC86F6B514125604B7110405441A4703DFA6F6B51418FC2F588104054410ECF526D7E6B51415F12C2FF10405441D26C65F87E6B51414FC274DE104054411B40A5CD996B514156D9AA5005405441A4703D1AAF6B514114AE4721FC3F54418FC2F5785F6B5141333333C3E43F5441DEAC5F505D6B514172F58023E73F5441AC95FA0E5A6B5141F6EFFCD2EA3F5441A42AD5EC586B5141C4FD000EEC3F54416D4D848B586B51415E12AA7CEC3F54416A64BE75586B514135506C95EC3F544157D6F280526B5141CEDEAD67F33F54418FC2F5F8676B51415C8FC2C5F93F5441332852F8676B51413643B4C6F93F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262793 - 343152
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000F000000A4703D1AAF6B514114AE4721FC3F54418FC2F5785F6B5141333333C3E43F54411F85EB415B6B5141713D0A67E93F544185EB5178526B514152B81E65F33F54418FC2F5F8676B51415C8FC2C5F93F5441E17A144E5E6B5141E17A140E0840544148E17A44626B51415C8FC2D508405441295C8F82656B5141A4703D0A0A40544114AE4701696B5141333333B30A405441A4703D6A6B6B5141666666D60B405441333333E36C6B51413D0AD7230D405441000000506F6B51417B14AE3710405441A4703DFA6F6B51418FC2F588104054410AD7A3B07E6B51411F85EB0111405441A4703D1AAF6B514114AE4721FC3F5441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000332852F8676B51413643B4C6F93F54412D9776FD676B5141CAFA3AC8F93F54413AB574B5646B5141C3641C98FE3F5441385137555E6B5141848F89030840544148E17A44626B51415C8FC2D508405441B50F12CB636B514143F7E9660940544180F746F7636B5141AFA15777094054417BACA00A656B51417D7FABDD094054413CD98B7A656B5141160B43070A40544101F33CD3666B5141EA95D1490A40544114AE4701696B5141333333B30A405441A4703D6A6B6B5141666666D60B405441333333E36C6B51413D0AD7230D4054418CB88C886E6B51414F8F40350F405441A3C19D446F6B51411A86400E10405441B239ACC86F6B514125604B7110405441A4703DFA6F6B51418FC2F588104054410ECF526D7E6B51415F12C2FF10405441D26C65F87E6B51414FC274DE104054411B40A5CD996B514156D9AA5005405441A4703D1AAF6B514114AE4721FC3F54418FC2F5785F6B5141333333C3E43F5441DEAC5F505D6B514172F58023E73F5441AC95FA0E5A6B5141F6EFFCD2EA3F5441A42AD5EC586B5141C4FD000EEC3F54416D4D848B586B51415E12AA7CEC3F54416A64BE75586B514135506C95EC3F544157D6F280526B5141CEDEAD67F33F54418FC2F5F8676B51415C8FC2C5F93F5441332852F8676B51413643B4C6F93F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262920 - 238718
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001A000000D7A3704DC36A51413D0AD783453F5441000000D0DC6A514148E17AE45A3F544114AE4741E96A5141D7A370FD653F5441B81E853BFC6A5141D7A3701D793F54410AD7A340FE6A51419A999969773F5441B81E853BFF6A51411F85EB11763F5441B81E85DB006B5141B81E85BB703F544166666656016B5141CDCCCC5C703F5441EC51B8AE046B514148E17A84693F5441CDCCCC1C056B5141EC51B87E673F544148E17AA4056B5141295C8F42643F5441D7A3701DCC6A5141EC51B86E2A3F5441295C8FC2C16A51417B14AE77343F5441F6285C7FBE6A51410AD7A3A0373F5441C3F5281CBD6A514133333353363F5441E17A14CEBB6A514185EB51E8343F5441AE47E11AAF6A5141C3F5284C243F54418FC2F5E8AE6A5141295C8FA2253F5441A4703DFAAD6A51417B14AE77283F5441C3F5288CAE6A5141AE47E1CA2C3F5441D7A3709DAB6A5141B81E851B2F3F544133333313AA6A51413D0AD7932F3F5441B81E858BAB6A51417B14AE77343F54411F85EBF1B26A5141C3F528BC3A3F54415C8FC2F5BB6A514152B81E15403F5441D7A3704DC36A51413D0AD783453F5441
+</a>
+
+<b>
+0106000000010000000103000000010000004F000000295C8FC2C16A51417B14AE77343F5441C93FE6F6C06A5141AB2AF13C353F5441882F5588BE6A51411FCDB99A373F5441089FD386BE6A5141AF6E6899373F5441F6285C7FBE6A51410AD7A3A0373F544187F664A7BD6A51413E9BE7D5363F5441C3F5281CBD6A514133333353363F5441F4DA501BBD6A51412F774852363F544167F8AA16BD6A5141C16AEA4D363F5441856E8A03BC6A5141F5B16322353F5441E17A14CEBB6A514185EB51E8343F5441A90AD21AAF6A5141C47A914C243F5441B5B1AD01AF6A5141C93804F9243F544143D557F4AE6A5141BDCE7B54253F5441CA3FCBE6AE6A514110E553B3253F5441B6A44B75AE6A5141DB14E501273F544181CFD94FAE6A5141B65EA273273F54410CAE5CFAAD6A51418F1E9B78283F5441C75C4729AE6A51419ACE98DC293F54410FDCB56DAE6A5141073FD6E32B3F5441C3F5288CAE6A5141AE47E1CA2C3F5441C8C0D630AC6A51414EB928A72E3F5441D7A3709DAB6A5141B81E851B2F3F5441D1038292AA6A51411A7EFC6C2F3F544169749913AA6A5141977DCA932F3F54416CFF148DAB6A5141A8BFDA78343F5441DB797495AC6A5141D988EA58353F5441F42ABDD7AF6A51418055851B383F54411F85EBF1B26A5141C3F528BC3A3F544129608722BA6A514114FEF7FF3E3F54414F302D5ABB6A51412C62C3B53F3F544176E9B2A5BB6A5141D826A1E53F3F54415C8FC2F5BB6A514152B81E15403F5441FB86C4E1BD6A5141005C2481413F544176ECB322BE6A514193C9CBB0413F544158353BFCBF6A514193A2790F433F54415EA412D3C16A5141A2B1E56B443F5441D7A3704DC36A51413D0AD783453F5441000000D0DC6A514148E17AE45A3F54417FD68E1FE36A5141338D6685603F5441A50F32D6E36A51417CA0C722613F54414D7316A8E46A5141D2BA7FE3613F544114AE4741E96A5141D7A370FD653F5441D930949AEA6A514154336C59673F54414AB77ECDEB6A5141D992208B683F54419D2F450DF06A5141571512D66C3F5441AD0D2C1AF26A5141119170E76E3F5441FB59FE4CF46A5141D4AE211F713F544125E28218F96A514118A330F4753F54413D0034D8F96A51412E2B5FB5763F5441AC76F136FC6A51418C3F5018793F5441469AAB06FD6A5141F7A6CA70783F54417F2EB5CFFD6A5141F321C8C8773F54410AD7A340FE6A51419A999969773F5441646670FEFE6A51411A3B9865763F5441B81E853BFF6A51411F85EB11763F544137723647FF6A5141479883EB753F5441884A3BDB006B5141909E08B8703F5441880B4857016B5141D20DFF5A703F54414525100F046B5141FD2731CB6A3F54410E16D676046B51417244D6F6693F5441EC51B8AE046B514148E17A84693F54418E495CBA046B51416DA3BA4D693F5441CDCCCC1C056B5141EC51B87E673F544148E17AA4056B5141295C8F42643F54417233A117026B5141765AF8B0603F544187C81EF3FE6A514193E743885D3F54416F5C4935FE6A5141410D71C95C3F5441B9280EEBFC6A51418EFC7C7D5B3F5441AA39EFF3FB6A51410534B1855A3F54417462B435FA6A5141539485C4583F544115E69C35F86A5141B071C2C1563F5441DDE332B1F46A5141CB5EA638533F54410B95D7DEF06A51415EF130614F3F5441E3B3749EF06A5141670694204F3F5441E934FFDFE46A51419DDF7B52433F54416E612BE2E36A5141F9412E53423F5441D7A3701DCC6A5141EC51B86E2A3F5441295C8FC2C16A51417B14AE77343F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262920 - 385655
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001A000000D7A3704DC36A51413D0AD783453F5441000000D0DC6A514148E17AE45A3F544114AE4741E96A5141D7A370FD653F5441B81E853BFC6A5141D7A3701D793F54410AD7A340FE6A51419A999969773F5441B81E853BFF6A51411F85EB11763F5441B81E85DB006B5141B81E85BB703F544166666656016B5141CDCCCC5C703F5441EC51B8AE046B514148E17A84693F5441CDCCCC1C056B5141EC51B87E673F544148E17AA4056B5141295C8F42643F5441D7A3701DCC6A5141EC51B86E2A3F5441295C8FC2C16A51417B14AE77343F5441F6285C7FBE6A51410AD7A3A0373F5441C3F5281CBD6A514133333353363F5441E17A14CEBB6A514185EB51E8343F5441AE47E11AAF6A5141C3F5284C243F54418FC2F5E8AE6A5141295C8FA2253F5441A4703DFAAD6A51417B14AE77283F5441C3F5288CAE6A5141AE47E1CA2C3F5441D7A3709DAB6A5141B81E851B2F3F544133333313AA6A51413D0AD7932F3F5441B81E858BAB6A51417B14AE77343F54411F85EBF1B26A5141C3F528BC3A3F54415C8FC2F5BB6A514152B81E15403F5441D7A3704DC36A51413D0AD783453F5441
+</a>
+
+<b>
+0106000000010000000103000000010000004F000000295C8FC2C16A51417B14AE77343F5441C93FE6F6C06A5141AB2AF13C353F5441882F5588BE6A51411FCDB99A373F5441089FD386BE6A5141AF6E6899373F5441F6285C7FBE6A51410AD7A3A0373F544187F664A7BD6A51413E9BE7D5363F5441C3F5281CBD6A514133333353363F5441F4DA501BBD6A51412F774852363F544167F8AA16BD6A5141C16AEA4D363F5441856E8A03BC6A5141F5B16322353F5441E17A14CEBB6A514185EB51E8343F5441A90AD21AAF6A5141C47A914C243F5441B5B1AD01AF6A5141C93804F9243F544143D557F4AE6A5141BDCE7B54253F5441CA3FCBE6AE6A514110E553B3253F5441B6A44B75AE6A5141DB14E501273F544181CFD94FAE6A5141B65EA273273F54410CAE5CFAAD6A51418F1E9B78283F5441C75C4729AE6A51419ACE98DC293F54410FDCB56DAE6A5141073FD6E32B3F5441C3F5288CAE6A5141AE47E1CA2C3F5441C8C0D630AC6A51414EB928A72E3F5441D7A3709DAB6A5141B81E851B2F3F5441D1038292AA6A51411A7EFC6C2F3F544169749913AA6A5141977DCA932F3F54416CFF148DAB6A5141A8BFDA78343F5441DB797495AC6A5141D988EA58353F5441F42ABDD7AF6A51418055851B383F54411F85EBF1B26A5141C3F528BC3A3F544129608722BA6A514114FEF7FF3E3F54414F302D5ABB6A51412C62C3B53F3F544176E9B2A5BB6A5141D826A1E53F3F54415C8FC2F5BB6A514152B81E15403F5441FB86C4E1BD6A5141005C2481413F544176ECB322BE6A514193C9CBB0413F544158353BFCBF6A514193A2790F433F54415EA412D3C16A5141A2B1E56B443F5441D7A3704DC36A51413D0AD783453F5441000000D0DC6A514148E17AE45A3F54417FD68E1FE36A5141338D6685603F5441A50F32D6E36A51417CA0C722613F54414D7316A8E46A5141D2BA7FE3613F544114AE4741E96A5141D7A370FD653F5441D930949AEA6A514154336C59673F54414AB77ECDEB6A5141D992208B683F54419D2F450DF06A5141571512D66C3F5441AD0D2C1AF26A5141119170E76E3F5441FB59FE4CF46A5141D4AE211F713F544125E28218F96A514118A330F4753F54413D0034D8F96A51412E2B5FB5763F5441AC76F136FC6A51418C3F5018793F5441469AAB06FD6A5141F7A6CA70783F54417F2EB5CFFD6A5141F321C8C8773F54410AD7A340FE6A51419A999969773F5441646670FEFE6A51411A3B9865763F5441B81E853BFF6A51411F85EB11763F544137723647FF6A5141479883EB753F5441884A3BDB006B5141909E08B8703F5441880B4857016B5141D20DFF5A703F54414525100F046B5141FD2731CB6A3F54410E16D676046B51417244D6F6693F5441EC51B8AE046B514148E17A84693F54418E495CBA046B51416DA3BA4D693F5441CDCCCC1C056B5141EC51B87E673F544148E17AA4056B5141295C8F42643F54417233A117026B5141765AF8B0603F544187C81EF3FE6A514193E743885D3F54416F5C4935FE6A5141410D71C95C3F5441B9280EEBFC6A51418EFC7C7D5B3F5441AA39EFF3FB6A51410534B1855A3F54417462B435FA6A5141539485C4583F544115E69C35F86A5141B071C2C1563F5441DDE332B1F46A5141CB5EA638533F54410B95D7DEF06A51415EF130614F3F5441E3B3749EF06A5141670694204F3F5441E934FFDFE46A51419DDF7B52433F54416E612BE2E36A5141F9412E53423F5441D7A3701DCC6A5141EC51B86E2A3F5441295C8FC2C16A51417B14AE77343F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>262986 - 3295786
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000040000000103000000010000001300000085EB5128106A51418FC2F548CB3E5441F6285C9F156A5141000000E0CA3E54417B14AE07216A51418FC2F5F8CB3E544114AE4771276A5141F6285CBFCD3E54413D0AD7E3296A5141C3F5287CB83E5441E17A149E296A51410AD7A380B83E5441AE47E17A296A5141E17A140EB83E5441E17A143E2A6A5141E17A144EB53E5441E17A14EE266A5141E17A149EB43E5441A4703D4A256A514166666616B43E5441000000F0226A5141CDCCCCFCB33E5441B81E85EB156A5141295C8F52B03E54410AD7A370116A51417B14AE67AE3E544148E17AE40D6A51419A999999AF3E544152B81E75096A5141AE47E1AAB03E544114AE4711066A5141EC51B8FED23E54419A999979086A51418FC2F598CF3E5441D7A3700D0B6A514100000040CD3E544185EB5128106A51418FC2F548CB3E544101030000000100000007000000CDCCCC6C256A5141B81E85EB1A3F54410AD7A3E0226A5141B81E855B1B3F5441A4703DAA206A5141295C8F121C3F5441AE47E16A256A51417B14AEE71C3F54411F85EB21266A51417B14AE071D3F544185EB5138266A5141333333B31B3F5441CDCCCC6C256A5141B81E85EB1A3F54410103000000010000002D000000333333E33C6A51419A9999790A3F5441EC51B85E3E6A5141AE47E1EA003F54417B14AE173F6A51415C8FC275FB3E544148E17A543A6A514133333343EE3E5441EC51B88E376A5141CDCCCCCCE63E5441F6285CDF3B6A5141C3F5284CD13E5441E17A142E366A5141CDCCCC8CD13E5441B81E851B2F6A51413D0AD7A3D03E54413D0AD743276A51415C8FC2D5CE3E544185EB51D8206A5141EC51B81ECD3E54413D0AD793156A5141295C8F02CC3E5441E17A145E106A51419A999969CC3E5441D7A370AD0B6A51415C8FC245CE3E5441295C8F82096A51419A999969D03E5441B81E859B036A514152B81E05D83E5441F6285CBF046A514152B81EE5D73E544133333333056A5141B81E853BE33E54410AD7A350026A51419A9999B9F13E5441F6285C8FFF6951418FC2F5E8F63E54419A999939FE69514114AE4711F93E5441B81E85BBFC6951417B14AE17FD3E54413D0AD7A3FA695141F6285C7F003F544185EB51C8F4695141333333E3093F5441D7A370ADF16951413D0AD7C3123F5441F6285CDFEE6951415C8FC2A5133F54413D0AD7B3EE695141F6285CBF153F5441CDCCCCDCED6951419A999959173F5441713D0A17EF6951415C8FC2B5173F54410AD7A360F76951419A9999691B3F5441000000E0FB695141CDCCCC0C1D3F54413D0AD783006A514152B81EF51D3F54411F85EB71056A51410AD7A3701E3F544133333363136A5141CDCCCC4C1E3F544152B81EC5196A5141295C8F021E3F5441D7A370DD1B6A51417B14AE671D3F544185EB5128206A5141E17A14EE1A3F544148E17A14246A5141000000D0053F54413D0AD7D3306A5141A4703D9A073F5441AE47E11A376A514166666616093F544133333363356A51415C8FC2A5103F5441295C8F52356A5141333333E3113F544148E17AA4346A514185EB51A81E3F5441D7A3705D3B6A5141000000F01E3F5441F6285C8F3C6A5141295C8F920C3F5441333333E33C6A51419A9999790A3F54410103000000010000002900000033333363356A514114AE4701513F54417B14AE67346A514100000030513F5441EC51B88E166A514185EB51B8563F544166666696156A51415C8FC2555F3F5441000000A0146A5141C3F5281C633F544100000090126A5141CDCCCC7C653F5441295C8F220F6A5141B81E854B673F5441C3F528AC0A6A5141E17A141E683F54418FC2F5B8056A514185EB5178673F5441713D0A67FE6951411F85EBE1653F54419A9999C9FB69514152B81EB5653F544185EB5198F869514100000010663F5441E17A145EFA695141713D0AE76F3F544133333313F869514148E17AB4773F544185EB5118F36951410AD7A320803F54411F85EB71E669514133333323883F5441A4703DCAE669514152B81E458B3F5441D7A3709DE76951411F85EB11903F544114AE47A1E8695141CDCCCCFC943F5441EC51B8FEE96951413D0AD7E3993F54413D0AD783EB6951410AD7A3409E3F54410AD7A3F0ED6951411F85EBD1A33F54418FC2F568F16951417B14AE17AA3F544100000010F5695141AE47E17AAF3F54413D0AD783F96951411F85EBE1B43F5441000000D0FC69514100000050B83F544100000060006A5141D7A3708DBB3F5441713D0A97046A514152B81EE5BE3F544100000020086A514185EB51E8B73F544114AE47110C6A514114AE4721A23F544148E17A140C6A51410AD7A380A13F5441CDCCCC9C116A51417B14AEE77B3F544114AE4711196A5141AE47E18A6F3F544166666636216A51419A9999396B3F5441AE47E18A296A51419A999989693F5441F6285C4F336A5141F6285CDF653F544185EB51683B6A514114AE4711603F54418FC2F5683C6A5141A4703D9A5D3F5441295C8F823F6A5141EC51B88E593F54410AD7A3B0416A514100000080573F544133333363356A514114AE4701513F5441
+</a>
+
+<b>
+0106000000010000000103000000010000004600000033333363356A514114AE4701513F54417B14AE67346A514100000030513F5441EC51B88E166A514185EB51B8563F544166666696156A51415C8FC2555F3F5441000000A0146A5141C3F5281C633F544100000090126A5141CDCCCC7C653F5441295C8F220F6A5141B81E854B673F5441C3F528AC0A6A5141E17A141E683F54418FC2F5B8056A514185EB5178673F5441713D0A67FE6951411F85EBE1653F54419A9999C9FB69514152B81EB5653F544185EB5198F869514100000010663F5441E17A145EFA695141713D0AE76F3F544133333313F869514148E17AB4773F544185EB5118F36951410AD7A320803F544141E638A8E8695141B2D39DBC863F5441C3C4542DE96951418C1520A88A3F5441D9978CCBE6695141B6B3BC4C8B3F544114AC9034E76951416529BDAF8D3F5441F65109A5E769514113742A36903F54413DEE7426E8695141B619BEA9923F5441CB592898E869514152889AD0943F544150D0FD6AEC695141F5BC9D28963F54418753A6A9EE69514153E7113B983F5441A79DF149F2695141578A91079C3F54414FB97CD0F769514136404667983F544184B635A8026A51416759567CA43F54414076A810086A5141534A5F59AA3F5441FA69D131FF695141ACAF9027B23F544122B129E6F0695141CA7E9065A43F54412441295AEE695141E5F6A990A43F5441EF5963C8EE6951418609EA57A53F54417FEF8266EF695141466DBE75A63F5441749811BCEF695141A37B6610A73F54418B05B45FF069514199293138A83F5441237BE819F1695141916DC888A93F5441E5FE27A4F169514142D6FE6EAA3F5441D9B1ACDAF2695141A4ED0339AC3F54413AE66169F3695141BC07830BAD3F54411A7637DFF369514117C051B9AD3F5441DF053118F5695141F951F365AF3F544173F15B3DF6695141C170FEDEB03F54417CB5B5C3F6695141C9E48D8BB13F544160342C6DF7695141F19E2C59B23F5441A80BC9F0F7695141E046DEF8B23F544186CC32FBF9695141A8515937B53F544148CC0156FB69514109D910B3B63F544107473818FC6951415E10B587B73F54417D6EE2C0FC69514186824A3FB83F5441761365BFFE69514187E09D11BA3F5441A646E6A3FF695141BC2458E2BA3F5441C202E35D016A5141D8F22156BC3F54419DFCADC5026A5141A2811274BD3F54414BF4C047036A514195D23CDBBD3F544102787743046A514154808E82BE3F544162B3CE8B076A5141D5223F0DB93F54416EDCFC14096A5141C6D10F9FB23F5441F35A49590A6A51417867880EAD3F544114AE47110C6A514114AE4721A23F544148E17A140C6A51410AD7A380A13F5441CDCCCC9C116A51417B14AEE77B3F544114AE4711196A5141AE47E18A6F3F544166666636216A51419A9999396B3F5441AE47E18A296A51419A999989693F5441F6285C4F336A5141F6285CDF653F544185EB51683B6A514114AE4711603F54418FC2F5683C6A5141A4703D9A5D3F5441295C8F823F6A5141EC51B88E593F54410AD7A3B0416A514100000080573F544133333363356A514114AE4701513F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>298323 - 4482939
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001000000033333373B5C950413D0AD71355AF544114AE47A1BBC95041713D0A1754AF5441C3F5287CBFC95041E17A143E54AF5441AE47E1AABFC95041333333934AAF5441EC51B87EBEC95041666666F648AF54419A9999E991C950413D0AD7733BAF5441CDCCCCAC90C95041333333533CAF5441EC51B82E90C95041EC51B8CE5CAF544114AE479197C9504152B81EC55EAF5441295C8F5299C95041A4703D1A5FAF5441295C8FD29AC950411F85EB515FAF5441666666A69CC95041333333235FAF544166666616A3C95041333333235CAF544100000090A9C9504148E17AF458AF5441B81E85ABAFC95041D7A3709D56AF544133333373B5C950413D0AD71355AF5441
+</a>
+
+<b>
+010600000001000000010300000001000000110000009A9999E991C950413D0AD7733BAF5441CDCCCCAC90C95041333333533CAF5441EC51B82E90C95041EC51B8CE5CAF544114AE479197C9504152B81EC55EAF5441295C8F5299C95041A4703D1A5FAF5441295C8FD29AC950411F85EB515FAF5441666666A69CC95041333333235FAF544166666616A3C95041333333235CAF544195C515CCA3C950416597E6C95BAF54415F5E4BE6A4C950414E76313F5BAF544165052B8DA5C950416B812CED5AAF5441BC51D9C2A6C9504182CF34C541AF5441E5FC5A66A6C95041697A2DA941AF54418C51A9FBA5C950410F84D88841AF54410790E09CA4C9504142DC8B1E41AF54417036BF78A3C95041370DA2B540AF54419A9999E991C950413D0AD7733BAF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>263076 - 1096700
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000A0000003D0AD783FF0651419A9999B9EA495441713D0AA7F7065141EC51B8DEE849544133333363F50651410AD7A330F0495441EC51B8FEF4065141713D0A47F1495441295C8FA208075141E17A148EF94954418FC2F5D8080751410AD7A3E0F8495441C3F5283C0C0751410AD7A3B0ED49544185EB512809075141E17A14FEEC49544185EB5158010751417B14AE27EB4954413D0AD783FF0651419A9999B9EA495441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000E1AE0FE0080751417AFF2FC9F8495441DE7A12A4080751410342A784F9495441E2D24A4306075141F6D00681F84954412CA20F2C07075141FA283F20F6495441B4145F7309075141D2F9AEE2F6495441C3F5283C0C0751410AD7A3B0ED49544185EB512809075141E17A14FEEC49544185EB5158010751417B14AE27EB4954413D0AD783FF0651419A9999B9EA495441713D0AA7F7065141EC51B8DEE849544133333363F50651410AD7A330F0495441EC51B8FEF4065141713D0A47F1495441295C8FA208075141E17A148EF94954418FC2F5D8080751410AD7A3E0F8495441E1AE0FE0080751417AFF2FC9F8495441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>263076 - 3899995
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000A0000003D0AD783FF0651419A9999B9EA495441713D0AA7F7065141EC51B8DEE849544133333363F50651410AD7A330F0495441EC51B8FEF4065141713D0A47F1495441295C8FA208075141E17A148EF94954418FC2F5D8080751410AD7A3E0F8495441C3F5283C0C0751410AD7A3B0ED49544185EB512809075141E17A14FEEC49544185EB5158010751417B14AE27EB4954413D0AD783FF0651419A9999B9EA495441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000E1AE0FE0080751417AFF2FC9F8495441DE7A12A4080751410342A784F9495441E2D24A4306075141F6D00681F84954412CA20F2C07075141FA283F20F6495441B4145F7309075141D2F9AEE2F6495441C3F5283C0C0751410AD7A3B0ED49544185EB512809075141E17A14FEEC49544185EB5158010751417B14AE27EB4954413D0AD783FF0651419A9999B9EA495441713D0AA7F7065141EC51B8DEE849544133333363F50651410AD7A330F0495441EC51B8FEF4065141713D0A47F1495441295C8FA208075141E17A148EF94954418FC2F5D8080751410AD7A3E0F8495441E1AE0FE0080751417AFF2FC9F8495441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>263547 - 3077886
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000020000000103000000010000000E000000B81E854BFD135141EC51B83E8B82544114AE4711FC1351418FC2F5887E825441EC51B8DEFB1351417B14AEE77A825441713D0A87FB1351418FC2F598748254411F85EB01FB135141F6285C1F7182544148E17AE4F71351410AD7A34072825441F6285CAFF3135141295C8FE272825441EC51B85EED135141A4703DBA73825441CDCCCC4CE9135141000000F073825441EC51B8DEE813514185EB513872825441D7A3708DEA135141000000A0848254419A9999F9EA135141D7A370ED8C82544148E17A84ED13514152B81E458D825441B81E854BFD135141EC51B83E8B82544101030000000100000011000000A4703D4A1914514100000020388254418FC2F55823145141C3F5288C35825441E17A14DE211451417B14AEE726825441295C8F921D1451413D0AD7032882544148E17A1417145141F6285C1F2A825441D7A370FD0D145141D7A3707D2C8254410AD7A3B005145141AE47E1BA2E8254418FC2F5A8FB135141B81E85FB318254415C8FC295FF1351415C8FC2B5308254417B14AE9700145141EC51B82E378254417B14AE27011451413D0AD7F33B82544166666616031451415C8FC2153D825441F6285C9F06145141333333533C82544148E17A040914514148E17A243C8254413D0AD7B30B1451411F85EBB13B8254417B14AE470F1451417B14AE873A825441A4703D4A191451410000002038825441
+</a>
+
+<b>
+0106000000010000000103000000010000000D00000033DF80CBEC1351414F00D6C173825441CE44500FE9135141CF7FE34B74825441175AD13AEA135141DB64301881825441C02A65FDEA13514150556FF28C825441C0DC2D4EEB135141841F56838D825441C9F8E2C5F0135141758C27DA8C8254414A36A458FD1351415E080F3D8B825441549AE2B1FB13514138C5FFAD77825441B6764901FB1351419BF2961F7182544148E17AE4F71351410AD7A34072825441F6285CAFF3135141295C8FE272825441EC51B85EED135141A4703DBA7382544133DF80CBEC1351414F00D6C173825441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>263547 - 3390630
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000020000000103000000010000000E000000B81E854BFD135141EC51B83E8B82544114AE4711FC1351418FC2F5887E825441EC51B8DEFB1351417B14AEE77A825441713D0A87FB1351418FC2F598748254411F85EB01FB135141F6285C1F7182544148E17AE4F71351410AD7A34072825441F6285CAFF3135141295C8FE272825441EC51B85EED135141A4703DBA73825441CDCCCC4CE9135141000000F073825441EC51B8DEE813514185EB513872825441D7A3708DEA135141000000A0848254419A9999F9EA135141D7A370ED8C82544148E17A84ED13514152B81E458D825441B81E854BFD135141EC51B83E8B82544101030000000100000011000000A4703D4A1914514100000020388254418FC2F55823145141C3F5288C35825441E17A14DE211451417B14AEE726825441295C8F921D1451413D0AD7032882544148E17A1417145141F6285C1F2A825441D7A370FD0D145141D7A3707D2C8254410AD7A3B005145141AE47E1BA2E8254418FC2F5A8FB135141B81E85FB318254415C8FC295FF1351415C8FC2B5308254417B14AE9700145141EC51B82E378254417B14AE27011451413D0AD7F33B82544166666616031451415C8FC2153D825441F6285C9F06145141333333533C82544148E17A040914514148E17A243C8254413D0AD7B30B1451411F85EBB13B8254417B14AE470F1451417B14AE873A825441A4703D4A191451410000002038825441
+</a>
+
+<b>
+0106000000010000000103000000010000000D00000033DF80CBEC1351414F00D6C173825441CE44500FE9135141CF7FE34B74825441175AD13AEA135141DB64301881825441C02A65FDEA13514150556FF28C825441C0DC2D4EEB135141841F56838D825441C9F8E2C5F0135141758C27DA8C8254414A36A458FD1351415E080F3D8B825441549AE2B1FB13514138C5FFAD77825441B6764901FB1351419BF2961F7182544148E17AE4F71351410AD7A34072825441F6285CAFF3135141295C8FE272825441EC51B85EED135141A4703DBA7382544133DF80CBEC1351414F00D6C173825441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>263738 - 3159377
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000001B000000C3F5286C4217514100000070008854415C8FC2B5411751417B14AE770A88544114AE4751411751419A9999E90E88544185EB51A840175141000000601388544148E17AE43F175141AE47E11A17885441F6285C8F3E175141CDCCCCEC1B88544148E17A743D175141A4703D1A20885441AE47E12A3C1751416666666625885441EC51B81E3F175141CDCCCC0C288854419A999979421751410AD7A3202B885441EC51B8EE46175141F6285CFF18885441EC51B87E47175141F6285CFF15885441A4703D2A48175141713D0A07128854413D0AD78348175141CDCCCCFC0C88544185EB51384817514148E17AC406885441CDCCCCEC4717514114AE47010488544148E17AE44617514185EB51E8F987544133333393451751410AD7A300ED8754411F85EBD144175141B81E85DBE78754418FC2F5D8431751415C8FC295E1875441666666A641175141000000D0E2875441713D0A773E17514185EB5188E5875441B81E85DB3F17514100000020E9875441F6285CCF4017514133333383EC87544166666666411751411F85EB11F08754419A99994942175141E17A14BEFA875441C3F5286C421751410000007000885441
+</a>
+
+<b>
+0106000000010000000103000000010000001A00000031077E434817514134880BB007885441AF899A7347175141755A0560FF87544120918AA34617514147AB3D6CF78754413E36F28145175141A6F70F8BEC87544194658FF0431751413B57FA2DE2875441DDEFF18D36175141EEB4365EEA875441724953513217514179C27DBAEC87544197334CC82F175141936FE44FED875441D22C21F22F17514156DC168AEE875441B6F81B27311751415B657128F48754410C9B124731175141EB43215DF6875441448690BC30175141D3E3CA10FC875441D2FAE8B130175141BE703FE30588544162F2B486321751414DE597D8058854410AD7A34034175141F6285CCF05885441C3F5285C3417514166666646098854410AD7A34034175141000000100D88544152B81E65331751413D0AD7B311885441EC51B81E32175141E17A147E1C885441C3F5280C3A1751413D0AD7C323885441AE47E12A3C1751416666666625885441933D3B9A42175141070FEB9B2A8854413E355048451751417D20286A2288544143EEC6B14617514101BA3BF7198854411DFF05344817514142A0287A1188544131077E434817514134880BB007885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>263738 - 3567823
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000001B000000C3F5286C4217514100000070008854415C8FC2B5411751417B14AE770A88544114AE4751411751419A9999E90E88544185EB51A840175141000000601388544148E17AE43F175141AE47E11A17885441F6285C8F3E175141CDCCCCEC1B88544148E17A743D175141A4703D1A20885441AE47E12A3C1751416666666625885441EC51B81E3F175141CDCCCC0C288854419A999979421751410AD7A3202B885441EC51B8EE46175141F6285CFF18885441EC51B87E47175141F6285CFF15885441A4703D2A48175141713D0A07128854413D0AD78348175141CDCCCCFC0C88544185EB51384817514148E17AC406885441CDCCCCEC4717514114AE47010488544148E17AE44617514185EB51E8F987544133333393451751410AD7A300ED8754411F85EBD144175141B81E85DBE78754418FC2F5D8431751415C8FC295E1875441666666A641175141000000D0E2875441713D0A773E17514185EB5188E5875441B81E85DB3F17514100000020E9875441F6285CCF4017514133333383EC87544166666666411751411F85EB11F08754419A99994942175141E17A14BEFA875441C3F5286C421751410000007000885441
+</a>
+
+<b>
+0106000000010000000103000000010000001A00000031077E434817514134880BB007885441AF899A7347175141755A0560FF87544120918AA34617514147AB3D6CF78754413E36F28145175141A6F70F8BEC87544194658FF0431751413B57FA2DE2875441DDEFF18D36175141EEB4365EEA875441724953513217514179C27DBAEC87544197334CC82F175141936FE44FED875441D22C21F22F17514156DC168AEE875441B6F81B27311751415B657128F48754410C9B124731175141EB43215DF6875441448690BC30175141D3E3CA10FC875441D2FAE8B130175141BE703FE30588544162F2B486321751414DE597D8058854410AD7A34034175141F6285CCF05885441C3F5285C3417514166666646098854410AD7A34034175141000000100D88544152B81E65331751413D0AD7B311885441EC51B81E32175141E17A147E1C885441C3F5280C3A1751413D0AD7C323885441AE47E12A3C1751416666666625885441933D3B9A42175141070FEB9B2A8854413E355048451751417D20286A2288544143EEC6B14617514101BA3BF7198854411DFF05344817514142A0287A1188544131077E434817514134880BB007885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>263760 - 2940207
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000013000000AE47E1FA38165141E17A143EF98254417B14AE0739165141E17A141EFD825441CDCCCC0C39165141E17A140E03835441E17A14DE38165141A4703D2A07835441E17A146E381651419A9999A90D83544114AE470139165141A4703D1A12835441C3F528DC381651419A999919168354413D0AD78338165141666666A619835441AE47E10A37165141E17A142E1D8354410AD7A3F03A1651410AD7A3F01A83544185EB510842165141666666661783544114AE471146165141AE47E14A15835441000000A041165141CDCCCC7C118354419A9999F940165141D7A3707D078354419A9999E940165141333333C3FC8254413D0AD753401651415C8FC2F5ED825441A4703D4A3E1651413D0AD793ED8254413D0AD7C33B16514148E17A14F4825441AE47E1FA38165141E17A143EF9825441
+</a>
+
+<b>
+010600000001000000010300000001000000140000007AE7A94437165141F2C0DE0C1D83544179BED191321651412B6E1085268354410D9F560D2C16514143E275162F83544195B0E1F224165141E33DD8F23783544148E2C66D2B1651411AB2CC6C438354417B14AEB72E165141EC51B8BE4A8354413D0AD7F3371651410AD7A31055835441EC51B82E4116514152B81EE55C835441D7A370CD41165141F6285C8F5C83544152B81EF54E1651413D0AD74366835441EC51B83E5716514114AE47715C835441000000605C165141333333E355835441D7A3709D5E1651416666660653835441666666265D1651419A9999A94583544185EB51185E1651410AD7A3F03C8354414407483E5D1651413ADB93FD308354414C8CEE575A165141EA5937D829835441DA7DC25248165141C3711B3314835441A16740C6381651411A20432F1C8354417AE7A94437165141F2C0DE0C1D835441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>263760 - 3273925
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000013000000AE47E1FA38165141E17A143EF98254417B14AE0739165141E17A141EFD825441CDCCCC0C39165141E17A140E03835441E17A14DE38165141A4703D2A07835441E17A146E381651419A9999A90D83544114AE470139165141A4703D1A12835441C3F528DC381651419A999919168354413D0AD78338165141666666A619835441AE47E10A37165141E17A142E1D8354410AD7A3F03A1651410AD7A3F01A83544185EB510842165141666666661783544114AE471146165141AE47E14A15835441000000A041165141CDCCCC7C118354419A9999F940165141D7A3707D078354419A9999E940165141333333C3FC8254413D0AD753401651415C8FC2F5ED825441A4703D4A3E1651413D0AD793ED8254413D0AD7C33B16514148E17A14F4825441AE47E1FA38165141E17A143EF9825441
+</a>
+
+<b>
+010600000001000000010300000001000000140000007AE7A94437165141F2C0DE0C1D83544179BED191321651412B6E1085268354410D9F560D2C16514143E275162F83544195B0E1F224165141E33DD8F23783544148E2C66D2B1651411AB2CC6C438354417B14AEB72E165141EC51B8BE4A8354413D0AD7F3371651410AD7A31055835441EC51B82E4116514152B81EE55C835441D7A370CD41165141F6285C8F5C83544152B81EF54E1651413D0AD74366835441EC51B83E5716514114AE47715C835441000000605C165141333333E355835441D7A3709D5E1651416666660653835441666666265D1651419A9999A94583544185EB51185E1651410AD7A3F03C8354414407483E5D1651413ADB93FD308354414C8CEE575A165141EA5937D829835441DA7DC25248165141C3711B3314835441A16740C6381651411A20432F1C8354417AE7A94437165141F2C0DE0C1D835441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>263961 - 2976495
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000013000000333333B33C145141E17A14EEC0875441D7A370ED39145141C3F5282CB08754410AD7A3103B1451415C8FC275AF8754415C8FC21534145141713D0A17B08754411F85EB413414514152B81EE5B1875441CDCCCCEC381451413D0AD783CC875441B81E85CB411451411F85EB41FD875441EC51B80E4214514152B81E35FE875441EC51B81E43145141A4703D6A03885441AE47E13A471451419A99997904885441AE47E1FA49145141B81E85EB03885441B81E85AB48145141F6285C8FFE8754415C8FC22548145141C3F5286CFC875441295C8F82461451417B14AEC7F387544185EB51F84214514152B81E15E1875441A4703DCA421451417B14AED7DF8754411F85EB214114514100000000D587544114AE47E13E145141C3F528CCCA875441333333B33C145141E17A14EEC0875441
+</a>
+
+<b>
+01060000000100000001030000000100000022000000AE47E1FA49145141B81E85EB03885441B81E853B5214514133333393FF875441EC51B8AE5214514133333303FD87544114AE47615214514114AE4781FB87544148E17AF451145141D7A3705DF9875441AE47E1DA4E1451411F85EB01E7875441000000C04D14514114AE47D1DE875441E17A142E4B145141F6285CAFCB875441333333B347145141D7A370DDC6875441B81E857B461451415C8FC245C587544114AE471145145141F6285C6FC3875441E17A14FE41145141713D0A67BF8754418F238C884014514186374A0CBD875441965BC66A3F14514143534926BB875441D61A95D73E145141379B83ECB987544187DF8CE83D145141256604A2B78754416BE8ABD43C1451410B85B0DAB3875441B556DFE53B145141A4DF252EB0875441492E79063B145141C0E6C9F3AA8754412DD84CA13A1451410A2D64A1AA875441B591B5CF3A145141BDCC009DAC875441648C8E0E3B145141691B615EAF87544122C1F0C03A1451416819F47CAF8754410AD7A3103B1451415C8FC275AF875441D7A370ED39145141C3F5282CB0875441333333B33C145141E17A14EEC087544114AE47E13E145141C3F528CCCA8754411F85EB214114514100000000D5875441A4703DCA421451417B14AED7DF87544185EB51F84214514152B81E15E1875441295C8F82461451417B14AEC7F38754415C8FC22548145141C3F5286CFC875441B81E85AB48145141F6285C8FFE875441AE47E1FA49145141B81E85EB03885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>263961 - 3531287
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000013000000333333B33C145141E17A14EEC0875441D7A370ED39145141C3F5282CB08754410AD7A3103B1451415C8FC275AF8754415C8FC21534145141713D0A17B08754411F85EB413414514152B81EE5B1875441CDCCCCEC381451413D0AD783CC875441B81E85CB411451411F85EB41FD875441EC51B80E4214514152B81E35FE875441EC51B81E43145141A4703D6A03885441AE47E13A471451419A99997904885441AE47E1FA49145141B81E85EB03885441B81E85AB48145141F6285C8FFE8754415C8FC22548145141C3F5286CFC875441295C8F82461451417B14AEC7F387544185EB51F84214514152B81E15E1875441A4703DCA421451417B14AED7DF8754411F85EB214114514100000000D587544114AE47E13E145141C3F528CCCA875441333333B33C145141E17A14EEC0875441
+</a>
+
+<b>
+01060000000100000001030000000100000022000000AE47E1FA49145141B81E85EB03885441B81E853B5214514133333393FF875441EC51B8AE5214514133333303FD87544114AE47615214514114AE4781FB87544148E17AF451145141D7A3705DF9875441AE47E1DA4E1451411F85EB01E7875441000000C04D14514114AE47D1DE875441E17A142E4B145141F6285CAFCB875441333333B347145141D7A370DDC6875441B81E857B461451415C8FC245C587544114AE471145145141F6285C6FC3875441E17A14FE41145141713D0A67BF8754418F238C884014514186374A0CBD875441965BC66A3F14514143534926BB875441D61A95D73E145141379B83ECB987544187DF8CE83D145141256604A2B78754416BE8ABD43C1451410B85B0DAB3875441B556DFE53B145141A4DF252EB0875441492E79063B145141C0E6C9F3AA8754412DD84CA13A1451410A2D64A1AA875441B591B5CF3A145141BDCC009DAC875441648C8E0E3B145141691B615EAF87544122C1F0C03A1451416819F47CAF8754410AD7A3103B1451415C8FC275AF875441D7A370ED39145141C3F5282CB0875441333333B33C145141E17A14EEC087544114AE47E13E145141C3F528CCCA8754411F85EB214114514100000000D5875441A4703DCA421451417B14AED7DF87544185EB51F84214514152B81E15E1875441295C8F82461451417B14AEC7F38754415C8FC22548145141C3F5286CFC875441B81E85AB48145141F6285C8FFE875441AE47E1FA49145141B81E85EB03885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>264234 - 1062512
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000017000000B81E852B9C19514152B81E456D8454410AD7A3F09A1951410000009065845441713D0A17991951410AD7A3E05884544152B81E7597195141CDCCCC6C4984544185EB51A8961951415C8FC25541845441713D0A5790195141C3F5284C40845441666666B68C1951411F85EBB13F84544114AE4781851951413D0AD7833E8454417B14AEC786195141666666264E8454419A9999D987195141C3F528EC628454419A9999198819514114AE47F16D8454416666669687195141A4703D1A768454410000004087195141B81E857B7B8454419A9999398F195141B81E859B7C845441A4703D2A9E1951418FC2F5A87B84544114AE47C1AA195141713D0AB77A845441EC51B8BEB81951411F85EBB179845441CDCCCC0CC01951417B14AE077884544152B81E95BE1951415C8FC2F5748454418FC2F5B8AB195141F6285CEF758454410AD7A3A0AB195141CDCCCCFC74845441C3F5282C9E1951410AD7A37076845441B81E852B9C19514152B81E456D845441
+</a>
+
+<b>
+0106000000010000000103000000010000002B000000A74648DCBE1951419471843B7A8454414DC0D2DDC1195141508F5E8A798454411C8AD00EC019514141F15A09788454412A4E97D7BF1951411CC6CE1378845441C6F3F6E9BD195141BE6A518478845441C24C63D2BA1951419D30BD3879845441FFF49FEDB819514199AA3AA77984544197FA51BBB8195141D4F92AB2798454417C02715DB8195141723303B9798454410290C925B71951416226BCCF79845441D1CABB6BB41951412228A1027A845441FDC32DB5A919514147DF29CB7A845441A4703D2A9E1951418FC2F5A87B8454419A9999398F195141B81E859B7C8454410000004087195141B81E857B7B845441CDCCCC6C7A195141F6285C3F7C8454418FC2F5A86B19514185EB51187D845441A4703D5A6C195141713D0A07828454410AD7A360761951418FC2F5D88184544152B81E6577195141E17A149E858454411F85EB5183195141333333A384845441F6285C7F8B19514148E17AE484845441333333A38B19514152B81E65868454410AD7A310951951413333338386845441EC51B80E9A195141AE47E19A868454413D0AD7539E195141EC51B8AE86845441295C8F329E1951411F85EBB18D845441F6285C6F9F1951410AD7A300938454413D0AD7A3A019514185EB5158958454410AD7A3D0A319514152B81E859B845441B81E858BA719514100000070A28454410420B491B11951412633358C9B845441E87C95F4B51951413769D9E9988454413A4C54BAB4195141921B4DEF96845441BC817562AA1951411BD53043868454411BC5BF7BA619514135FA5DF97F8454415DD19AC6AB19514158C481B97E8454415FC0F188AE1951410C4EC0127E84544177FED9B2B119514143778B537D845441BC45991AB31951419A369DFE7C8454410BB45093BC195141BC302DC27A8454419A5762B3BD1951410F002B7E7A845441A74648DCBE1951419471843B7A845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>264234 - 3602435
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000017000000B81E852B9C19514152B81E456D8454410AD7A3F09A1951410000009065845441713D0A17991951410AD7A3E05884544152B81E7597195141CDCCCC6C4984544185EB51A8961951415C8FC25541845441713D0A5790195141C3F5284C40845441666666B68C1951411F85EBB13F84544114AE4781851951413D0AD7833E8454417B14AEC786195141666666264E8454419A9999D987195141C3F528EC628454419A9999198819514114AE47F16D8454416666669687195141A4703D1A768454410000004087195141B81E857B7B8454419A9999398F195141B81E859B7C845441A4703D2A9E1951418FC2F5A87B84544114AE47C1AA195141713D0AB77A845441EC51B8BEB81951411F85EBB179845441CDCCCC0CC01951417B14AE077884544152B81E95BE1951415C8FC2F5748454418FC2F5B8AB195141F6285CEF758454410AD7A3A0AB195141CDCCCCFC74845441C3F5282C9E1951410AD7A37076845441B81E852B9C19514152B81E456D845441
+</a>
+
+<b>
+0106000000010000000103000000010000002B000000A74648DCBE1951419471843B7A8454414DC0D2DDC1195141508F5E8A798454411C8AD00EC019514141F15A09788454412A4E97D7BF1951411CC6CE1378845441C6F3F6E9BD195141BE6A518478845441C24C63D2BA1951419D30BD3879845441FFF49FEDB819514199AA3AA77984544197FA51BBB8195141D4F92AB2798454417C02715DB8195141723303B9798454410290C925B71951416226BCCF79845441D1CABB6BB41951412228A1027A845441FDC32DB5A919514147DF29CB7A845441A4703D2A9E1951418FC2F5A87B8454419A9999398F195141B81E859B7C8454410000004087195141B81E857B7B845441CDCCCC6C7A195141F6285C3F7C8454418FC2F5A86B19514185EB51187D845441A4703D5A6C195141713D0A07828454410AD7A360761951418FC2F5D88184544152B81E6577195141E17A149E858454411F85EB5183195141333333A384845441F6285C7F8B19514148E17AE484845441333333A38B19514152B81E65868454410AD7A310951951413333338386845441EC51B80E9A195141AE47E19A868454413D0AD7539E195141EC51B8AE86845441295C8F329E1951411F85EBB18D845441F6285C6F9F1951410AD7A300938454413D0AD7A3A019514185EB5158958454410AD7A3D0A319514152B81E859B845441B81E858BA719514100000070A28454410420B491B11951412633358C9B845441E87C95F4B51951413769D9E9988454413A4C54BAB4195141921B4DEF96845441BC817562AA1951411BD53043868454411BC5BF7BA619514135FA5DF97F8454415DD19AC6AB19514158C481B97E8454415FC0F188AE1951410C4EC0127E84544177FED9B2B119514143778B537D845441BC45991AB31951419A369DFE7C8454410BB45093BC195141BC302DC27A8454419A5762B3BD1951410F002B7E7A845441A74648DCBE1951419471843B7A845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>264432 - 25576
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000034000000295C8F42051351410AD7A3401482544148E17A640513514152B81E7511825441B81E85CB0513514152B81EC50B825441713D0A3706135141F6285C0F078254415C8FC2550613514185EB519805825441E17A147E06135141713D0AA7038254411F85EB910613514152B81EF5FF81544148E17A9406135141E17A149EFB815441AE47E17A0613514185EB5148F881544148E17A640613514152B81ED5F58154417B14AE87061351418FC2F578F3815441E17A14AE06135141666666E6EF8154417B14AE87061351413D0AD783ED815441EC51B89E06135141C3F528BCE981544148E17A9406135141D7A370EDE581544185EB51880613514185EB5168E18154417B14AEB706135141666666E6DB815441E17A149E06135141C3F528BCD481544133333393061351415C8FC2B5D1815441666666660613514166666626CE81544148E17A0406135141295C8FF2CB815441713D0A5705135141333333C3C881544185EB514804135141713D0A47C4815441D7A3704DFF125141C3F5280CC68154418FC2F528FD1251415C8FC2D5C581544166666676F912514185EB5148C6815441713D0A97F7125141A4703D5AC5815441C3F5284CF712514152B81E35C581544148E17A34F7125141B81E85DBC5815441B81E85EBF61251419A999999C8815441EC51B8EEF6125141713D0AE7C98154413D0AD7F3F6125141CDCCCCBCCB81544148E17A94F712514148E17A84D28154419A9999F9F712514166666676D5815441E17A140EF81251410AD7A3F0D5815441EC51B84EF81251413D0AD763D681544114AE4741F71251418FC2F528D78154411F85EBE1F61251415C8FC2B5D6815441EC51B87EF51251419A999959D7815441E17A14AEF4125141E17A14DEF2815441295C8F62F4125141D7A370DDFC815441CDCCCC6CF31251419A9999591D825441AE47E11AF21251410AD7A3401D82544185EB51F8EE125141E17A14DE1C825441295C8F92ED125141000000D02282544152B81EA500135141EC51B81E22825441C3F5280C0013514185EB51B81D825441333333230513514114AE47011D8254419A99990905135141D7A370ED1782544152B81EE50413514114AE47C1168254417B14AE37051351413333336315825441295C8F42051351410AD7A34014825441
+</a>
+
+<b>
+01060000000100000001030000000100000030000000580815910613514112DA7763E08154410A3205A0061351414E7DC1A6DE815441DF99EFB3061351413C6223DADA815441C7E5E2B2061351414BC7EE8EDA81544128CFA0AF0613514110597CA5D9815441A9C3459906135141F7F5FA65D3815441C6B7EA90F7125141C42EBA53D2815441CF226796F7125141ABFDD092D28154411D7815C7F7125141835CC4FDD38154418EA2A4E0F7125141BB3754BCD48154419A9999F9F712514166666676D58154419187D600F8125141BF129AA1D5815441967B2919F8125141D368BCF6D58154412D4DEE51F8125141B07BEB5CD681544101B6FB4CF8125141DCAABE60D6815441EC51B84EF81251413D0AD763D681544114AE4741F71251418FC2F528D78154411F85EBE1F61251415C8FC2B5D6815441EC51B87EF51251419A999959D7815441E17A14AEF4125141E17A14DEF2815441295C8F62F4125141D7A370DDFC815441CDCCCC6CF31251419A9999591D825441AE47E11AF21251410AD7A3401D82544185EB51F8EE125141E17A14DE1C825441295C8F92ED125141000000D02282544152B81EA500135141EC51B81E22825441C3F5280C0013514185EB51B81D825441333333230513514114AE47011D8254419A99990905135141D7A370ED1782544152B81EE50413514114AE47C1168254417B14AE37051351413333336315825441295C8F42051351410AD7A3401482544148E17A640513514152B81E7511825441B81E85CB0513514152B81EC50B825441713D0A3706135141F6285C0F078254415C8FC2550613514185EB519805825441E17A147E06135141713D0AA7038254411F85EB910613514152B81EF5FF81544148E17A9406135141E17A149EFB815441AE47E17A0613514185EB5148F881544148E17A640613514152B81ED5F58154417B14AE87061351418FC2F578F3815441E17A14AE06135141666666E6EF8154417B14AE87061351413D0AD783ED815441EC51B89E06135141C3F528BCE981544148E17A9406135141D7A370EDE581544185EB51880613514185EB5168E1815441580815910613514112DA7763E0815441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>267158 - 1378048
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001B000000D7A3707DC24B5141713D0A2748E15441333333A3C24B51419A99991945E15441B81E85CBC64B5141666666C627E154419A999999C74B5141A4703DAA22E154411F85EB71C84B5141B81E85EB1EE1544114AE4751C94B5141F6285C6F1CE154417B14AE47954B5141E17A140E15E15441713D0AE78E4B51415C8FC2351AE154410AD7A3408F4B5141EC51B8EE1BE154415C8FC295904B5141F6285C0F1DE15441CDCCCCDC914B5141B81E856B20E15441F6285CAF934B51413333337323E15441CDCCCCCC974B514148E17A3427E154411F85EB31994B51418FC2F53829E15441666666169A4B51418FC2F5C82AE15441A4703D0A9B4B514148E17A742CE15441713D0A879F4B51415C8FC2E530E154411F85EB41A04B514148E17A8433E154419A999949A34B5141C3F5289C37E154413D0AD783A74B51415C8FC2953EE154419A999949AA4B51413D0AD76345E1544185EB5178AB4B51413D0AD75347E15441295C8F72AD4B5141C3F5283C4CE15441EC51B88EC44B5141333333D351E15441F6285C7FC34B5141A4703D3A4EE15441666666D6C24B5141CDCCCC5C4BE15441D7A3707DC24B5141713D0A2748E15441
+</a>
+
+<b>
+010600000001000000010300000001000000150000003E05D2549A4B5141D4FCD5112BE15441A4703D0A9B4B514148E17A742CE15441713D0A879F4B51415C8FC2E530E154411F85EB41A04B514148E17A8433E154419A999949A34B5141C3F5289C37E154413D0AD783A74B51415C8FC2953EE154419A999949AA4B51413D0AD76345E1544185EB5178AB4B51413D0AD75347E15441295C8F72AD4B5141C3F5283C4CE15441EC51B88EC44B5141333333D351E15441F6285C7FC34B5141A4703D3A4EE15441666666D6C24B5141CDCCCC5C4BE15441D7A3707DC24B5141713D0A2748E15441333333A3C24B51419A99991945E15441B81E85CBC64B5141666666C627E15441C93180D4C64B514152CFE59627E15441657609D3C64B51413302AF9627E15441350053CCC64B514120814BC127E15441AAB3B358BB4B5141765FFAE825E15441E52EC910B64B5141672D0E792DE154413E05D2549A4B5141D4FCD5112BE15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>267158 - 3705101
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001B000000D7A3707DC24B5141713D0A2748E15441333333A3C24B51419A99991945E15441B81E85CBC64B5141666666C627E154419A999999C74B5141A4703DAA22E154411F85EB71C84B5141B81E85EB1EE1544114AE4751C94B5141F6285C6F1CE154417B14AE47954B5141E17A140E15E15441713D0AE78E4B51415C8FC2351AE154410AD7A3408F4B5141EC51B8EE1BE154415C8FC295904B5141F6285C0F1DE15441CDCCCCDC914B5141B81E856B20E15441F6285CAF934B51413333337323E15441CDCCCCCC974B514148E17A3427E154411F85EB31994B51418FC2F53829E15441666666169A4B51418FC2F5C82AE15441A4703D0A9B4B514148E17A742CE15441713D0A879F4B51415C8FC2E530E154411F85EB41A04B514148E17A8433E154419A999949A34B5141C3F5289C37E154413D0AD783A74B51415C8FC2953EE154419A999949AA4B51413D0AD76345E1544185EB5178AB4B51413D0AD75347E15441295C8F72AD4B5141C3F5283C4CE15441EC51B88EC44B5141333333D351E15441F6285C7FC34B5141A4703D3A4EE15441666666D6C24B5141CDCCCC5C4BE15441D7A3707DC24B5141713D0A2748E15441
+</a>
+
+<b>
+010600000001000000010300000001000000150000003E05D2549A4B5141D4FCD5112BE15441A4703D0A9B4B514148E17A742CE15441713D0A879F4B51415C8FC2E530E154411F85EB41A04B514148E17A8433E154419A999949A34B5141C3F5289C37E154413D0AD783A74B51415C8FC2953EE154419A999949AA4B51413D0AD76345E1544185EB5178AB4B51413D0AD75347E15441295C8F72AD4B5141C3F5283C4CE15441EC51B88EC44B5141333333D351E15441F6285C7FC34B5141A4703D3A4EE15441666666D6C24B5141CDCCCC5C4BE15441D7A3707DC24B5141713D0A2748E15441333333A3C24B51419A99991945E15441B81E85CBC64B5141666666C627E15441C93180D4C64B514152CFE59627E15441657609D3C64B51413302AF9627E15441350053CCC64B514120814BC127E15441AAB3B358BB4B5141765FFAE825E15441E52EC910B64B5141672D0E792DE154413E05D2549A4B5141D4FCD5112BE15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>955016 - 111975
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000001500000048E17AF4F83D5141A4703D4A8EDA544159EABF50F73D5141531F6D7C8FDA544107C4851FF93D5141887F0F6D91DA54411DE1539AFD3D5141E8BE8DB194DA5441B58C2EC4013E5141894592CD97DA54413D40C69D073E514125AF7D8B9BDA5441995A23F10E3E514128CC4B06A0DA544156F683BB0F3E5141F900E7569FDA5441424030D7113E5141D64ADE559CDA54411AAFB200153E51414B5D14C097DA54410EF95E1C173E5141AC94203894DA5441DEE53CE0183E5141A814F45D91DA5441D7A370CD063E5141EC51B8AE84DA5441869CA823053E514116FE378383DA544172295587043E51418F0E511283DA544152B81E85043E514148E17A1483DA54413D0AD7C3013E51413D0AD7C385DA5441EC51B8AEFF3D5141B81E85CB87DA5441333333F3FE3D5141713D0A7788DA54417B14AEA7FA3D514148E17A648CDA544148E17AF4F83D5141A4703D4A8EDA544101030000000100000006000000D7C3C706F73D51414A73391C8FDA5441297D0C01F73D5141F8218C148FDA5441DC915BF6F63D5141A9946B1B8FDA54418F9DF345F73D51417B8ED6708FDA54414F0EDF15F73D5141981170308FDA5441D7C3C706F73D51414A73391C8FDA5441
+</a>
+
+<b>
+010600000001000000010300000001000000100000003D0AD793F43D514148E17AD48BDA5441F6285C4FF73D5141D7A3707D8FDA544148E17AF4F83D5141A4703D4A8EDA54417B14AEA7FA3D514148E17A648CDA5441333333F3FE3D5141713D0A7788DA5441EC51B8AEFF3D5141B81E85CB87DA54413D0AD7C3013E51413D0AD7C385DA544152B81E85043E514148E17A1483DA54417B14AE87053E51417B14AE1782DA5441295C8F12063E51410AD7A36081DA5441D7A3706D093E514152B81EF57CDA544114AE47F10B3E51413D0AD7D378DA5441EC51B85E0C3E51410000008075DA544114AE4731023E51419A9999797ADA54419A999999EE3D5141666666A682DA54413D0AD793F43D514148E17AD48BDA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>955016 - 1366869
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000001500000048E17AF4F83D5141A4703D4A8EDA544159EABF50F73D5141531F6D7C8FDA544107C4851FF93D5141887F0F6D91DA54411DE1539AFD3D5141E8BE8DB194DA5441B58C2EC4013E5141894592CD97DA54413D40C69D073E514125AF7D8B9BDA5441995A23F10E3E514128CC4B06A0DA544156F683BB0F3E5141F900E7569FDA5441424030D7113E5141D64ADE559CDA54411AAFB200153E51414B5D14C097DA54410EF95E1C173E5141AC94203894DA5441DEE53CE0183E5141A814F45D91DA5441D7A370CD063E5141EC51B8AE84DA5441869CA823053E514116FE378383DA544172295587043E51418F0E511283DA544152B81E85043E514148E17A1483DA54413D0AD7C3013E51413D0AD7C385DA5441EC51B8AEFF3D5141B81E85CB87DA5441333333F3FE3D5141713D0A7788DA54417B14AEA7FA3D514148E17A648CDA544148E17AF4F83D5141A4703D4A8EDA544101030000000100000006000000D7C3C706F73D51414A73391C8FDA5441297D0C01F73D5141F8218C148FDA5441DC915BF6F63D5141A9946B1B8FDA54418F9DF345F73D51417B8ED6708FDA54414F0EDF15F73D5141981170308FDA5441D7C3C706F73D51414A73391C8FDA5441
+</a>
+
+<b>
+010600000001000000010300000001000000100000003D0AD793F43D514148E17AD48BDA5441F6285C4FF73D5141D7A3707D8FDA544148E17AF4F83D5141A4703D4A8EDA54417B14AEA7FA3D514148E17A648CDA5441333333F3FE3D5141713D0A7788DA5441EC51B8AEFF3D5141B81E85CB87DA54413D0AD7C3013E51413D0AD7C385DA544152B81E85043E514148E17A1483DA54417B14AE87053E51417B14AE1782DA5441295C8F12063E51410AD7A36081DA5441D7A3706D093E514152B81EF57CDA544114AE47F10B3E51413D0AD7D378DA5441EC51B85E0C3E51410000008075DA544114AE4731023E51419A9999797ADA54419A999999EE3D5141666666A682DA54413D0AD793F43D514148E17AD48BDA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>955016 - 5293243
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000001500000048E17AF4F83D5141A4703D4A8EDA544159EABF50F73D5141531F6D7C8FDA544107C4851FF93D5141887F0F6D91DA54411DE1539AFD3D5141E8BE8DB194DA5441B58C2EC4013E5141894592CD97DA54413D40C69D073E514125AF7D8B9BDA5441995A23F10E3E514128CC4B06A0DA544156F683BB0F3E5141F900E7569FDA5441424030D7113E5141D64ADE559CDA54411AAFB200153E51414B5D14C097DA54410EF95E1C173E5141AC94203894DA5441DEE53CE0183E5141A814F45D91DA5441D7A370CD063E5141EC51B8AE84DA5441869CA823053E514116FE378383DA544172295587043E51418F0E511283DA544152B81E85043E514148E17A1483DA54413D0AD7C3013E51413D0AD7C385DA5441EC51B8AEFF3D5141B81E85CB87DA5441333333F3FE3D5141713D0A7788DA54417B14AEA7FA3D514148E17A648CDA544148E17AF4F83D5141A4703D4A8EDA544101030000000100000006000000D7C3C706F73D51414A73391C8FDA5441297D0C01F73D5141F8218C148FDA5441DC915BF6F63D5141A9946B1B8FDA54418F9DF345F73D51417B8ED6708FDA54414F0EDF15F73D5141981170308FDA5441D7C3C706F73D51414A73391C8FDA5441
+</a>
+
+<b>
+010600000001000000010300000001000000100000003D0AD793F43D514148E17AD48BDA5441F6285C4FF73D5141D7A3707D8FDA544148E17AF4F83D5141A4703D4A8EDA54417B14AEA7FA3D514148E17A648CDA5441333333F3FE3D5141713D0A7788DA5441EC51B8AEFF3D5141B81E85CB87DA54413D0AD7C3013E51413D0AD7C385DA544152B81E85043E514148E17A1483DA54417B14AE87053E51417B14AE1782DA5441295C8F12063E51410AD7A36081DA5441D7A3706D093E514152B81EF57CDA544114AE47F10B3E51413D0AD7D378DA5441EC51B85E0C3E51410000008075DA544114AE4731023E51419A9999797ADA54419A999999EE3D5141666666A682DA54413D0AD793F43D514148E17AD48BDA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>758716 - 1383793
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000200000030000000909830B7F8255141893F3086561455413833C1C2F8255141FE03E19456145541DE5BFB22FB25514131BFEDCC59145541E6E52297FB2551416E0BED7D5A145541572F9E6AFC25514170012FC05B1455414EF00189FC25514156DE7DEE5B145541A86F46E6FD2551412B47D5365D1455418E09CA91FF255141E09546785E1455417C6E05AF012651417D17E2D15F145541F8287D8F03265141BC9EEADA6014554137C1128505265141D8C2C5AC61145541FE04FFE806265141FAA38C17621455417C15E17E07265141EDA883446214554120623D12092651413802279B621455416642DF220A2651419451976E621455414BE6728F05265141279B22E450145541C0432AD8032651415FA26A5C4A14554197D5AD1402265141F6DD7EC8431455416D673151002651416608B5D23B14554182901CA6FE255141913EE56233145541D9506F13FD25514100C6B9CE2B14554185EB5138FC255141D7A3707D281455418FC2F5D8F92551418FC2F56824145541E17A14FEF6255141666666D61F145541333333F3F1255141B81E854B25145541D7A3703DEC2551410000001020145541EC51B82EE7255141E17A140E2514554133333303E525514185EB5168271455419A999999DE2551411F85EBE1301455419A999999DA2551413D0AD7B33414554114AE47F1CF2551419A999969391455417B14AEB7CF25514114AE47613A145541AE47E1DABF25514152B81E0540145541713D0AA7CA2551411F85EB9150145541D7A3701DC825514114AE474157145541D7A3704DC92551417B14AEB75814554148E17AE4CC2551413D0AD7D35914554185EB5158CE25514152B81EB55B14554114AE47F1CE2551418FC2F5C85E145541666666A6CD255141B81E85EB61145541A4703DFAD3255141A4703D3A62145541A4703DBADF25514148E17A44621455413D0AD7C3EC255141666666965814554147A3ABBCF1255141FAB74968551455418A5DCEECF52551414463BAFA5214554135F3A7F9F5255141A10C0D0B53145541D39C3E06F62551415515790353145541909830B7F8255141893F30865614554106000000295C8F22D62551415C8FC23541145541A4703D4AD52551411F85EB313F1455410AD7A310DB25514114AE47D13C1455419A999919DD255141666666663E145541EC51B87EDC25514185EB51B83F145541295C8F22D62551415C8FC23541145541
+</a>
+
+<b>
+01060000000100000001030000000100000019000000A4703DBADF25514148E17A4462145541295C8F82F0255141713D0A5779145541CDCCCC1C0E265141000000307E145541F1F7EA000F2651417867C6CD7D145541572B6CD90F26514100A98D797C145541BA7EA6990F265141677839667B145541E77177340F2651410BAFAA2877145541A4FAF1510E2651415651F4B7711455410E2821850D2651417313F3656D1455412289205C0B2651412DE60C4764145541459F2E230B265141E81CF64D63145541D71FB8F50A2651418CD161D662145541C8FC10DA0926514146ED7EC462145541246314A1072651413640C64E62145541F7364590042651412CE6546361145541D0466C1C0226514192A6C915601455412CAD6FE3FF255141839F9FB45E1455418EC02B20FE255141E95F14675D14554173B901BFFC2551415CAFC6405C145541E15BFB22FB25514136BFEDCC591455413C33C1C2F8255141FC03E19456145541865DCEECF52551414863BAFA5214554147A3ABBCF1255141FAB74968551455413D0AD7C3EC2551416666669658145541A4703DBADF25514148E17A4462145541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>758716 - 4100624
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000200000030000000909830B7F8255141893F3086561455413833C1C2F8255141FE03E19456145541DE5BFB22FB25514131BFEDCC59145541E6E52297FB2551416E0BED7D5A145541572F9E6AFC25514170012FC05B1455414EF00189FC25514156DE7DEE5B145541A86F46E6FD2551412B47D5365D1455418E09CA91FF255141E09546785E1455417C6E05AF012651417D17E2D15F145541F8287D8F03265141BC9EEADA6014554137C1128505265141D8C2C5AC61145541FE04FFE806265141FAA38C17621455417C15E17E07265141EDA883446214554120623D12092651413802279B621455416642DF220A2651419451976E621455414BE6728F05265141279B22E450145541C0432AD8032651415FA26A5C4A14554197D5AD1402265141F6DD7EC8431455416D673151002651416608B5D23B14554182901CA6FE255141913EE56233145541D9506F13FD25514100C6B9CE2B14554185EB5138FC255141D7A3707D281455418FC2F5D8F92551418FC2F56824145541E17A14FEF6255141666666D61F145541333333F3F1255141B81E854B25145541D7A3703DEC2551410000001020145541EC51B82EE7255141E17A140E2514554133333303E525514185EB5168271455419A999999DE2551411F85EBE1301455419A999999DA2551413D0AD7B33414554114AE47F1CF2551419A999969391455417B14AEB7CF25514114AE47613A145541AE47E1DABF25514152B81E0540145541713D0AA7CA2551411F85EB9150145541D7A3701DC825514114AE474157145541D7A3704DC92551417B14AEB75814554148E17AE4CC2551413D0AD7D35914554185EB5158CE25514152B81EB55B14554114AE47F1CE2551418FC2F5C85E145541666666A6CD255141B81E85EB61145541A4703DFAD3255141A4703D3A62145541A4703DBADF25514148E17A44621455413D0AD7C3EC255141666666965814554147A3ABBCF1255141FAB74968551455418A5DCEECF52551414463BAFA5214554135F3A7F9F5255141A10C0D0B53145541D39C3E06F62551415515790353145541909830B7F8255141893F30865614554106000000295C8F22D62551415C8FC23541145541A4703D4AD52551411F85EB313F1455410AD7A310DB25514114AE47D13C1455419A999919DD255141666666663E145541EC51B87EDC25514185EB51B83F145541295C8F22D62551415C8FC23541145541
+</a>
+
+<b>
+01060000000100000001030000000100000019000000A4703DBADF25514148E17A4462145541295C8F82F0255141713D0A5779145541CDCCCC1C0E265141000000307E145541F1F7EA000F2651417867C6CD7D145541572B6CD90F26514100A98D797C145541BA7EA6990F265141677839667B145541E77177340F2651410BAFAA2877145541A4FAF1510E2651415651F4B7711455410E2821850D2651417313F3656D1455412289205C0B2651412DE60C4764145541459F2E230B265141E81CF64D63145541D71FB8F50A2651418CD161D662145541C8FC10DA0926514146ED7EC462145541246314A1072651413640C64E62145541F7364590042651412CE6546361145541D0466C1C0226514192A6C915601455412CAD6FE3FF255141839F9FB45E1455418EC02B20FE255141E95F14675D14554173B901BFFC2551415CAFC6405C145541E15BFB22FB25514136BFEDCC591455413C33C1C2F8255141FC03E19456145541865DCEECF52551414863BAFA5214554147A3ABBCF1255141FAB74968551455413D0AD7C3EC2551416666669658145541A4703DBADF25514148E17A4462145541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>269715 - 54949
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000028000000F6285C7FDC8F51418FC2F5888C8D5441EC51B86EE28F51419A999969888D54417B14AE87F48F5141C3F528BC788D54410AD7A3B0F48F51413D0AD753758D544133333343F28F51419A999949708D5441AE47E11AEE8F5141D7A370ED5E8D5441A4703D2AEC8F5141AE47E1EA5E8D5441333333A3EB8F51418FC2F5C85D8D544152B81E95E98F5141A4703D8A5A8D5441C3F5289CE78F5141295C8F22558D5441A4703D3AE68F5141EC51B80E508D544148E17A44E58F5141A4703D7A4F8D54417B14AE17E28F5141AE47E1EA4C8D544148E17A54E18F5141A4703DAA4C8D5441AE47E18AE48F51411F85EB51588D544133333323E18F5141AE47E18A5D8D544152B81E75E28F514166666616648D5441F6285CAFDC8F51417B14AEB75A8D54417B14AEF7D18F514148E17AD4638D544100000030D08F5141B81E856B648D544100000010D28F5141AE47E14A698D544185EB5158D58F51413D0AD7636F8D54418FC2F508D78F514152B81ED5748D54418FC2F518D98F5141666666667B8D544114AE4751DA8F5141EC51B84E7E8D544114AE4711D88F5141E17A147E7B8D54410AD7A3A0D58F5141CDCCCC4C758D544185EB5138D48F5141C3F5280C708D54417B14AE37D18F514133333393698D5441EC51B81ECF8F5141666666C6648D54417B14AE07CB8F514114AE4721668D5441B81E85BBC98F5141AE47E18A6C8D5441666666A6CE8F514185EB5148768D544185EB51B8D18F51418FC2F5D8758D5441E17A148ED28F5141CDCCCC8C788D5441F6285CCFCF8F5141E17A14EE7A8D5441F6285C2FD28F514185EB5178858D54411F85EB61D18F51418FC2F578888D54418FC2F598D58F51415C8FC2F58F8D5441F6285C7FDC8F51418FC2F5888C8D5441
+</a>
+
+<b>
+0106000000010000000103000000010000004F000000F6285CCFCF8F5141E17A14EE7A8D5441C7FCA78FD18F5141004492B3828D5441E2BA7439D28F514174E0488B858D54411D4D8C65D18F51418CC9626B888D54417E384563D18F51411658E873888D54414F87F19CD38F51410994526F8C8D5441D3728D95D58F5141C6FDB4EF8F8D54417164C58EDC8F5141795E417E8C8D5441AF2BE2C5DD8F5141CF7227A68B8D5441BCBA409DE28F5141E51C4E3B888D5441350C7DC5E98F51416E890F0E828D5441C49A1409F18F5141853022C37B8D5441D1753488F48F5141D414FBB0788D54419D8D9B8EF48F514108869F28788D54411D15BE98F48F51413E28C850778D5441DEE0F3ABF48F5141E8AA1B4A758D544174CDA033F38F51418B81C73C728D5441806A4E41F28F5141416D5A65708D5441F0425B2CF18F514115CE43BD6B8D54417F9FE5A1EF8F51418F422A4E658D5441DF594D1CEE8F5141A1D960F35E8D5441EC7D1438EC8F51412F8923FE5E8D5441DDECE22CEC8F5141AEC5E4EA5E8D5441A4703D2AEC8F5141AE47E1EA5E8D5441C5B3A11FEC8F51414FCF1AD45E8D5441163DBC27EA8F514168B2C1715B8D544152B81E95E98F5141A4703D8A5A8D5441C3F5289CE78F5141295C8F22558D544134E57C83E78F51417962F2C7548D54416E0AF275E78F51412A7691A3548D5441F49AD2F6E68F5141259853C3528D5441D84B263FE68F5141765EC020508D544123E9799AE58F51410E3032AE4F8D544148E17A44E58F5141A4703D7A4F8D5441BF4A0426E28F5141AC9170F64C8D54411B1D14C3E18F5141374CDDCE4C8D544148E17A54E18F5141A4703DAA4C8D544149DF6FA2E28F5141AA58D765518D54418215CF98E48F514138054962588D5441077EDF16E28F5141A80424155C8D544133333323E18F5141AE47E18A5D8D544152B81E75E28F514166666616648D5441C1DDD76FE28F514108ADD50D648D54414A022370E28F514171FF390F648D544194EB11ACDC8F5141AB307ABA5A8D54417B14AEF7D18F514148E17AD4638D54410FE0BE7DD18F51412A7EE5FC638D5441552F1932D08F51419E15F970648D54413BBAE02BD18F51417F0911FA668D5441D5EBCF0CD28F514133909842698D54416DE64E10D28F5141D5D7734B698D544185EB5158D58F51413D0AD7636F8D54418FC2F508D78F514152B81ED5748D54418FC2F518D98F5141666666667B8D544114AE4751DA8F5141EC51B84E7E8D5441EC6BA14BDA8F5141D9E3A6477E8D54418DDECB54DA8F5141FDC4CD5C7E8D544164869C73D98F5141E65263397D8D544114AE4711D88F5141E17A147E7B8D5441889C1763D68F5141225F4D3A778D54417A23C7BFD58F5141E79B8EA3758D5441774DB0B8D58F5141D658D589758D54410AD7A3A0D58F5141CDCCCC4C758D54410AEC89A2D48F5141B3E88B98718D5441BF150335D48F514161FC1E0B708D544133EB02BED38F5141F5B87F046F8D54417B14AE37D18F514133333393698D5441F503E8A1CF8F514126A09CF2658D5441AF68811ACF8F5141B8D6CBC7648D54417B14AE07CB8F514114AE4721668D54418A5BE66ECA8F5141BB7F5914698D54418226E2C3C98F5141F70114906C8D5441023CE4AACE8F5141DEFEAE47768D544185EB51B8D18F51418FC2F5D8758D5441E17A148ED28F5141CDCCCC8C788D5441FD6C118DD28F51417768AD8D788D5441CF2BB093D28F514125DB87A2788D5441DA232AE8CF8F5141C6D992D87A8D5441F6285CCFCF8F5141E17A14EE7A8D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>270225 - 55002
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000F0000003D0AD7C3009151418FC2F5C8958C5441D7A370DDFE90514152B81ED59C8C54411F85EB61039151419A9999A9A68C544148E17A1405915141295C8FD2AA8C54413D0AD7C306915141333333F3AE8C54410AD7A39008915141AE47E19AB58C5441000000E0089151413D0AD733B98C544148E17AC409915141C3F5289CB78C54413D0AD7E30A9151411F85EB31B38C5441C3F528EC0B915141CDCCCCCCAD8C5441C3F5288C0D915141295C8F72A68C5441666666960B915141713D0AF7A68C544133333373099151411F85EBA19F8C5441D7A3706D059151413D0AD7739C8C54413D0AD7C3009151418FC2F5C8958C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001800000048E17A1405915141295C8FD2AA8C5441517354980591514171958815AC8C544151574FD4069151417AE484F8AE8C5441B367A799089151410F8A5C98B58C544159C5D2A808915141D10886B3B68C5441D6D1D0DE0891514162AE1826B98C544136E8584209915141058A5B84B88C544148E17AC409915141C3F5289CB78C54411A04C4290A915141F9DFC80DB68C54410816D56E0D91514126AB4D7AA68C54410206BF1A0C915141DFB718D4A68C544184ECCEAE0B915141096B13F8A68C544172BAB4AC0B915141DD8926F1A68C5441666666960B915141713D0AF7A68C544133333373099151411F85EBA19F8C5441D7A3706D059151413D0AD7739C8C5441EDD7C56305915141BC0304669C8C54419EC4205205915141BB0803589C8C544103D4C50A03915141B5C9910A998C5441F74665C900915141EB98E7D0958C54419BBE1B51FF90514137E614289B8C5441D7A370DDFE90514152B81ED59C8C54411F85EB61039151419A9999A9A68C544148E17A1405915141295C8FD2AA8C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>308674 - 1046945
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000070000009A9999D94F1D5141EC51B80E03675441E17A14DE4D1D51418FC2F5D8076754413D0AD7834A1D514152B81E250F675441333333936E1D51413D0AD7131E6754411F85EBD1711D5141C3F528BC166754417B14AED7731D51419A999929126754419A9999D94F1D5141EC51B80E03675441
+</a>
+
+<b>
+0106000000010000000103000000010000000A00000052B81E35571D5141AE47E1CAF666544148E17A74301D51419A999989E66654411F85EB312E1D5141A4703DCAEB665441E052081D2B1D51417118DCB6F36654414ED2082D681D5141D43231440D675441A2CA2C3F741D5141833B6E4812675441A45D1A39761D51412B8FEEAB0D67544185006936691D51415119781208675441000000B06C1D5141E17A14CEFF66544152B81E35571D5141AE47E1CAF6665441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>308674 - 3803180
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000070000009A9999D94F1D5141EC51B80E03675441E17A14DE4D1D51418FC2F5D8076754413D0AD7834A1D514152B81E250F675441333333936E1D51413D0AD7131E6754411F85EBD1711D5141C3F528BC166754417B14AED7731D51419A999929126754419A9999D94F1D5141EC51B80E03675441
+</a>
+
+<b>
+0106000000010000000103000000010000000A00000052B81E35571D5141AE47E1CAF666544148E17A74301D51419A999989E66654411F85EB312E1D5141A4703DCAEB665441E052081D2B1D51417118DCB6F36654414ED2082D681D5141D43231440D675441A2CA2C3F741D5141833B6E4812675441A45D1A39761D51412B8FEEAB0D67544185006936691D51415119781208675441000000B06C1D5141E17A14CEFF66544152B81E35571D5141AE47E1CAF6665441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>540538 - 541002
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000014000000C3F5281C45655141C3F5283C564B544103AAB4FF35655141FB60783D624B54418A2FD89E2A6551415DFB2A496B4B5441E17A146E58655141666666F68A4B5441656BC5CF6A655141C69136B47B4B544152ADD27C75655141036892DA724B5441666666566F655141666666566C4B54419F19EE4B756551410991C8A9694B54417093C7C5756551416D7BB475694B5441CDCCCC6C7E6551419A9999E9664B5441DF14303F82655141D4C800CD674B544127C3DECE82655141E75A9AF0674B5441E6EC951A84655141CC96E8E5664B5441C2846150846551417524D7B9664B544162499E5A986551418AB7768E554B54418D05A3B7766551414D9E64AF314B54413FC7DD33756551417A736612304B54412CC7BCFE6C655141CEEA0E95364B5441639C1D435E6551415AFB5B46424B5441C3F5281C45655141C3F5283C564B5441
+</a>
+
+<b>
+010600000001000000010300000001000000180000006666662625655141295C8FA24D4B5441AE47E18A23655141333333934F4B544185EB514822655141333333C3504B5441713D0A27206551415C8FC285524B544185EB51281A6551415C8FC2D5564B54419A9999B91F6551415C8FC2455C4B5441CDCCCC8C166551417B14AE17634B544148E17AF41A655141C3F5282C674B54415C8FC285246551418FC2F518704B5441C3F5281C45655141C3F5283C564B5441AE47E1EA4A6551410AD7A3A0514B5441295C8F3275655141295C8F12304B5441C3F5285C55655141A4703D4A0E4B5441F6285C3F546551419A9999890F4B5441666666C651655141E17A14EE124B5441713D0AD74F6551417B14AE67164B54418FC2F5A84D65514185EB51D81B4B54415C8FC2A54B6551419A999979204B54410AD7A330496551419A999969254B5441A4703D6A44655141A4703D5A2C4B5441666666563D6551418FC2F548344B54410AD7A3902B655141713D0A27464B544148E17AF4276551413D0AD7E3494B54416666662625655141295C8FA24D4B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>540538 - 1150603
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000014000000C3F5281C45655141C3F5283C564B544103AAB4FF35655141FB60783D624B54418A2FD89E2A6551415DFB2A496B4B5441E17A146E58655141666666F68A4B5441656BC5CF6A655141C69136B47B4B544152ADD27C75655141036892DA724B5441666666566F655141666666566C4B54419F19EE4B756551410991C8A9694B54417093C7C5756551416D7BB475694B5441CDCCCC6C7E6551419A9999E9664B5441DF14303F82655141D4C800CD674B544127C3DECE82655141E75A9AF0674B5441E6EC951A84655141CC96E8E5664B5441C2846150846551417524D7B9664B544162499E5A986551418AB7768E554B54418D05A3B7766551414D9E64AF314B54413FC7DD33756551417A736612304B54412CC7BCFE6C655141CEEA0E95364B5441639C1D435E6551415AFB5B46424B5441C3F5281C45655141C3F5283C564B5441
+</a>
+
+<b>
+010600000001000000010300000001000000180000006666662625655141295C8FA24D4B5441AE47E18A23655141333333934F4B544185EB514822655141333333C3504B5441713D0A27206551415C8FC285524B544185EB51281A6551415C8FC2D5564B54419A9999B91F6551415C8FC2455C4B5441CDCCCC8C166551417B14AE17634B544148E17AF41A655141C3F5282C674B54415C8FC285246551418FC2F518704B5441C3F5281C45655141C3F5283C564B5441AE47E1EA4A6551410AD7A3A0514B5441295C8F3275655141295C8F12304B5441C3F5285C55655141A4703D4A0E4B5441F6285C3F546551419A9999890F4B5441666666C651655141E17A14EE124B5441713D0AD74F6551417B14AE67164B54418FC2F5A84D65514185EB51D81B4B54415C8FC2A54B6551419A999979204B54410AD7A330496551419A999969254B5441A4703D6A44655141A4703D5A2C4B5441666666563D6551418FC2F548344B54410AD7A3902B655141713D0A27464B544148E17AF4276551413D0AD7E3494B54416666662625655141295C8FA24D4B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>540538 - 3944807
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000014000000C3F5281C45655141C3F5283C564B544103AAB4FF35655141FB60783D624B54418A2FD89E2A6551415DFB2A496B4B5441E17A146E58655141666666F68A4B5441656BC5CF6A655141C69136B47B4B544152ADD27C75655141036892DA724B5441666666566F655141666666566C4B54419F19EE4B756551410991C8A9694B54417093C7C5756551416D7BB475694B5441CDCCCC6C7E6551419A9999E9664B5441DF14303F82655141D4C800CD674B544127C3DECE82655141E75A9AF0674B5441E6EC951A84655141CC96E8E5664B5441C2846150846551417524D7B9664B544162499E5A986551418AB7768E554B54418D05A3B7766551414D9E64AF314B54413FC7DD33756551417A736612304B54412CC7BCFE6C655141CEEA0E95364B5441639C1D435E6551415AFB5B46424B5441C3F5281C45655141C3F5283C564B5441
+</a>
+
+<b>
+010600000001000000010300000001000000180000006666662625655141295C8FA24D4B5441AE47E18A23655141333333934F4B544185EB514822655141333333C3504B5441713D0A27206551415C8FC285524B544185EB51281A6551415C8FC2D5564B54419A9999B91F6551415C8FC2455C4B5441CDCCCC8C166551417B14AE17634B544148E17AF41A655141C3F5282C674B54415C8FC285246551418FC2F518704B5441C3F5281C45655141C3F5283C564B5441AE47E1EA4A6551410AD7A3A0514B5441295C8F3275655141295C8F12304B5441C3F5285C55655141A4703D4A0E4B5441F6285C3F546551419A9999890F4B5441666666C651655141E17A14EE124B5441713D0AD74F6551417B14AE67164B54418FC2F5A84D65514185EB51D81B4B54415C8FC2A54B6551419A999979204B54410AD7A330496551419A999969254B5441A4703D6A44655141A4703D5A2C4B5441666666563D6551418FC2F548344B54410AD7A3902B655141713D0A27464B544148E17AF4276551413D0AD7E3494B54416666662625655141295C8FA24D4B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>838646 - 985532
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000006000000D7DD6BD8E16951417BFD680D193A5441094D4C5B016A514144F2B900153A5441C3F5280C046A514100000010033A544114AE47D1006A51419A999999033A544191BFEE3BE169514130D091E1083A5441D7DD6BD8E16951417BFD680D193A5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000001AE4493CE16951410EF4FCEA083A5441EFEC41EBD36951413C91292B0B3A5441FE45D1F7D2695141A0B2D95B0B3A5441C3136F6EDB6951413775C9AC163A54413C6727E8DB6951418B3DEAD0173A544147992F31DC695141FE1BE05F203A54410EDC8F92DC695141BBDE29F1223A54419F88D718DC69514101A71D75283A544169F2BE3DDB695141F9633633353A5441FE8A30AED76951418A9E46013A3A54412D0344F6D66951410D217C913D3A544140FF2164D46951417E4CD7B43F3A544168638481CB6951417323B6B3463A5441C0A46437CC6951411D37245C493A5441C1D66C80CC6951414D74AD2A4B3A5441ACA46437CC695141733120294F3A5441B6866E91F1695141A054E09B533A54411E62EF41F7695141FA63F448463A5441C671ADA4FB69514138573C8A3B3A5441FC932F0EFE69514146D139882B3A54413C9A0356016A51417CC86701153A544175A7E716FE695141C053366C153A5441D4DD6BD8E16951417AFD680D193A5441EFC18DA9E1695141EE518C35143A5441C11EC353E1695141E0216B730D3A5441CFEC015BE16951415A7FA4170C3A54411AE4493CE16951410EF4FCEA083A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>130708 - 168528
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001F0000000DF8F49D21AD51414F9922C24C90544139D0FAF511AD51415864CFE747905441DAD0AAB113AD514179968AF5449054413D0AD7830EAD51411F85EB6143905441C3F528BC0FAD51417B14AE07409054411F85EBF110AD514152B81EB53C905441295C8F4206AD5141F6285C3F389054411F85EBB105AD5141A4703DCA3590544100000000FBAC51419A999969369054415C8FC2D5F8AC51413D0AD77336905441F6285C4FFAAC51411F85EB01429054419A999989FAAC51410000006046905441EC51B81EFAAC51410AD7A3604A905441EC51B8CEFBAC51417B14AE874B90544185EB51E805AD51417B14AE874B905441295C8F2206AD51419A9999294F9054419A9999B907AD5141713D0A9753905441CDCCCC6C02AD514185EB51C856905441EC51B86EFFAC5141A4703D5A58905441295C8F7200AD51418FC2F53859905441EC51B8AE01AD514185EB51885B9054417B14AE6701AD5141D7A370ED5C905441E17A14EE06AD5141333333C35B90544185EB51C80FAD5141333333835A905441A4703DFA18AD5141E17A147E59905441713D0A3724AD514148E17A0458905441A4703DFA23AD51410AD7A3F053905441F6285C0F27AD5141F6285C0F549054419AEAC38D2BAD5141568931C34F90544195B6F84C29AD5141CB334C2F4F9054410DF8F49D21AD51414F9922C24C905441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000000FF8F49D21AD5141529922C24C9054418FF03A7127AD51411A4610994E9054419BEAC38D2BAD51415A8931C34F905441639037212EAD51410196FACE4E905441789AF7892EAD514189CE2FA84E9054414CB2250833AD5141F9A23DFE4C9054418F38B9702EAD51410FAFCA544C905441F6285C9F2BAD5141CDCCCCEC4B905441D9D0AAB113AD51417C968AF5449054414847BFF611AD5141701CDFE7479054410FF8F49D21AD5141529922C24C905441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>130708 - 342914
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001F0000000DF8F49D21AD51414F9922C24C90544139D0FAF511AD51415864CFE747905441DAD0AAB113AD514179968AF5449054413D0AD7830EAD51411F85EB6143905441C3F528BC0FAD51417B14AE07409054411F85EBF110AD514152B81EB53C905441295C8F4206AD5141F6285C3F389054411F85EBB105AD5141A4703DCA3590544100000000FBAC51419A999969369054415C8FC2D5F8AC51413D0AD77336905441F6285C4FFAAC51411F85EB01429054419A999989FAAC51410000006046905441EC51B81EFAAC51410AD7A3604A905441EC51B8CEFBAC51417B14AE874B90544185EB51E805AD51417B14AE874B905441295C8F2206AD51419A9999294F9054419A9999B907AD5141713D0A9753905441CDCCCC6C02AD514185EB51C856905441EC51B86EFFAC5141A4703D5A58905441295C8F7200AD51418FC2F53859905441EC51B8AE01AD514185EB51885B9054417B14AE6701AD5141D7A370ED5C905441E17A14EE06AD5141333333C35B90544185EB51C80FAD5141333333835A905441A4703DFA18AD5141E17A147E59905441713D0A3724AD514148E17A0458905441A4703DFA23AD51410AD7A3F053905441F6285C0F27AD5141F6285C0F549054419AEAC38D2BAD5141568931C34F90544195B6F84C29AD5141CB334C2F4F9054410DF8F49D21AD51414F9922C24C905441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000000FF8F49D21AD5141529922C24C9054418FF03A7127AD51411A4610994E9054419BEAC38D2BAD51415A8931C34F905441639037212EAD51410196FACE4E905441789AF7892EAD514189CE2FA84E9054414CB2250833AD5141F9A23DFE4C9054418F38B9702EAD51410FAFCA544C905441F6285C9F2BAD5141CDCCCCEC4B905441D9D0AAB113AD51417C968AF5449054414847BFF611AD5141701CDFE7479054410FF8F49D21AD5141529922C24C905441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>274147 - 3151344
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000015000000333333F305395141A4703D5AB238544185EB51F8073951413D0AD723B138544148E17A14093951417B14AE57B1385441E17A14CE0B395141E17A148EB23854410AD7A31013395141666666F6B038544133333343E0385141A4703DFA91385441295C8F62CE3851413333331387385441B81E85CBCA3851410AD7A350893854418FC2F518C83851417B14AE278B385441295C8FA2C53851411F85EB118D38544114AE4771CD38514152B81ED59138544148E17A54D63851410AD7A34097385441F6285CDFCE385141D7A3701DA038544152B81EC5F5385141713D0AD7B7385441EC51B81EF8385141A4703D4AB6385441000000A0F83851411F85EB11B4385441333333D3F8385141F6285CBFB1385441C3F5286CF83851410AD7A3A0AF38544148E17A44FD3851418FC2F5D8B1385441F6285CCF013951411F85EBC1B2385441333333F305395141A4703D5AB2385441
+</a>
+
+<b>
+010600000001000000010300000001000000140000008DA47C97C338514135FBE2539238544157ABEE9ED738514140158F719F38544126A282A0E1385141F91355CF92385441939F2F99D8385141904DB74D8D385441CAAF7864CE385141FF9C5D1487385441C9B67C5DCD385141570A19B68738544110344471CC3851411F317D4988385441D7F82EC5CB385141E271DCB48838544115679FACCA3851415B29B765893854418095E6F6C9385141B19EABE18938544180D97E2AC9385141230D196D8A38544134B2AC34C83851410888C6148B385441FE366CC7C73851417AB416678B38544103CFC467C7385141FDB379B18B385441EB3F3C9BC538514172C715188D38544184184C19C438514168BFEC5C8E385441927EC418C238514175B2500C903854413E3133B9C1385141D677EE6090385441CCEAE047C13851416AF986CF903854418DA47C97C338514135FBE25392385441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>274147 - 3270547
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000015000000333333F305395141A4703D5AB238544185EB51F8073951413D0AD723B138544148E17A14093951417B14AE57B1385441E17A14CE0B395141E17A148EB23854410AD7A31013395141666666F6B038544133333343E0385141A4703DFA91385441295C8F62CE3851413333331387385441B81E85CBCA3851410AD7A350893854418FC2F518C83851417B14AE278B385441295C8FA2C53851411F85EB118D38544114AE4771CD38514152B81ED59138544148E17A54D63851410AD7A34097385441F6285CDFCE385141D7A3701DA038544152B81EC5F5385141713D0AD7B7385441EC51B81EF8385141A4703D4AB6385441000000A0F83851411F85EB11B4385441333333D3F8385141F6285CBFB1385441C3F5286CF83851410AD7A3A0AF38544148E17A44FD3851418FC2F5D8B1385441F6285CCF013951411F85EBC1B2385441333333F305395141A4703D5AB2385441
+</a>
+
+<b>
+010600000001000000010300000001000000140000008DA47C97C338514135FBE2539238544157ABEE9ED738514140158F719F38544126A282A0E1385141F91355CF92385441939F2F99D8385141904DB74D8D385441CAAF7864CE385141FF9C5D1487385441C9B67C5DCD385141570A19B68738544110344471CC3851411F317D4988385441D7F82EC5CB385141E271DCB48838544115679FACCA3851415B29B765893854418095E6F6C9385141B19EABE18938544180D97E2AC9385141230D196D8A38544134B2AC34C83851410888C6148B385441FE366CC7C73851417AB416678B38544103CFC467C7385141FDB379B18B385441EB3F3C9BC538514172C715188D38544184184C19C438514168BFEC5C8E385441927EC418C238514175B2500C903854413E3133B9C1385141D677EE6090385441CCEAE047C13851416AF986CF903854418DA47C97C338514135FBE25392385441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>274299 - 3142577
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E000000AE47E15A78385141A4703DCA993954419A99991981385141333333E39A395441C3F5285C81385141B81E85EB9A395441713D0A07813851416666661699395441C3F528CC80385141D7A370BD9639544133333383623851419A9999E98D395441295C8F025F38514148E17AE48D395441CDCCCC4C52385141000000D08D395441713D0A874B38514152B81EC58D3954416666668646385141666666C68D395441CDCCCCDC45385141A4703D5A96395441C3F528AC48385141EC51B85E963954413D0AD7935D385141295C8F8296395441AE47E15A78385141A4703DCA99395441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000E2ACB45F65385141310F0977973954415A3C6DC16A3851416E2DCB1F98395441BF5ABDE46D3851413533318298395441DFE6EC48723851417D0BE50B99395441FAB38E38743851411AE99A4899395441AE47E15A78385141A4703DCA99395441A5C9DB5A783851414F6BF9CA9939544132ABFA197C385141CF729B429A3954416EFB855C81385141B5C628EB9A3954414EB53B0681385141CC6D2A0E99395441C3F528CC80385141D7A370BD963954413D0AD7B380385141EC51B8FE95395441CDCCCC5C8038514114AE4741943954413D0AD7237C385141A4703D8A9239544166666606563851411F85EBA17D395441E17A145E5438514148E17A247C395441682DDE45543851413A3B5D187C39544150B9723452385141F7E0D8CF8D39544128951F86463851415D60C2C48D395441BC51D028463851414CBD138292395441AC8071DE45385141BAEF845A9639544163BDE3E9483851419026225F96395441C4CFBAE44A385141B416876296395441FC99114850385141BFDBC36B963954417165CBB250385141D7D47A6C96395441E77DE7CE583851411229627A963954416F9D9ACD5A38514127B7CD7D96395441B9B8978E5D385141255D8682963954413D0AD7935D385141295C8F8296395441E2ACB45F65385141310F097797395441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>274299 - 3433487
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E000000AE47E15A78385141A4703DCA993954419A99991981385141333333E39A395441C3F5285C81385141B81E85EB9A395441713D0A07813851416666661699395441C3F528CC80385141D7A370BD9639544133333383623851419A9999E98D395441295C8F025F38514148E17AE48D395441CDCCCC4C52385141000000D08D395441713D0A874B38514152B81EC58D3954416666668646385141666666C68D395441CDCCCCDC45385141A4703D5A96395441C3F528AC48385141EC51B85E963954413D0AD7935D385141295C8F8296395441AE47E15A78385141A4703DCA99395441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000E2ACB45F65385141310F0977973954415A3C6DC16A3851416E2DCB1F98395441BF5ABDE46D3851413533318298395441DFE6EC48723851417D0BE50B99395441FAB38E38743851411AE99A4899395441AE47E15A78385141A4703DCA99395441A5C9DB5A783851414F6BF9CA9939544132ABFA197C385141CF729B429A3954416EFB855C81385141B5C628EB9A3954414EB53B0681385141CC6D2A0E99395441C3F528CC80385141D7A370BD963954413D0AD7B380385141EC51B8FE95395441CDCCCC5C8038514114AE4741943954413D0AD7237C385141A4703D8A9239544166666606563851411F85EBA17D395441E17A145E5438514148E17A247C395441682DDE45543851413A3B5D187C39544150B9723452385141F7E0D8CF8D39544128951F86463851415D60C2C48D395441BC51D028463851414CBD138292395441AC8071DE45385141BAEF845A9639544163BDE3E9483851419026225F96395441C4CFBAE44A385141B416876296395441FC99114850385141BFDBC36B963954417165CBB250385141D7D47A6C96395441E77DE7CE583851411229627A963954416F9D9ACD5A38514127B7CD7D96395441B9B8978E5D385141255D8682963954413D0AD7935D385141295C8F8296395441E2ACB45F65385141310F097797395441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>274338 - 221198
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000A00000048E17A1488395141333333D3B0395441C3F5288C95395141295C8FC2AF395441B81E856B953951415C8FC275AB395441D7A370ED89395141B81E85DBAB3954417B14AE678939514114AE4751A73954415C8FC21570395141AE47E10AA9395441B81E856B6D3951419A999939A9395441A4703DEA6E3951419A9999E9B239544114AE47D17E395141AE47E1AAB139544148E17A1488395141333333D3B0395441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000FCB955068539514115CAAC9DA739544123055CE2703951410FE9F0FCA8395441BF09F10C703951418E101E0CA93954418DA9506C6D395141668AC03EA939544156E4942B6E3951412E792516AE3954410EE455E86E395141625042DDB2395441AB1B892E703951417A0636D0B23954413627C9937039514185C148C8B2395441874F8E397339514120CC3893B2395441149185DF73395141CCE9459AB139544176529E82743951411615616BB0395441AF3069F7753951412E71FA99B0395441A3BC808377395141B07AE0DFB0395441DC9A4BF878395141058EAC6BB1395441C0654AE179395141F5CC93C8B03954416B8CE2F87A395141110295DFAF395441EDCF2CE27C395141BCEEC853AF3954414730299D7F395141F5922F25AF395441FE040ECC803951413EF8AE99AF395441E1CF0CB581395141930B7B25B0395441E2097158833951414AA6FBB0AF395441A99F6E2A853951415A2DB0B0AE3954413757A18785395141728949DFAE395441C50ED4E485395141218949DFAE3954418D6A6D13863951417762B1C7AD3954414818BA2A86395141118ECC98AC39544181BC20FC8539514100934F52AA395441956C69E5853951418E2CD4A8A7395441FCB955068539514115CAAC9DA7395441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>274338 - 384406
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000A00000048E17A1488395141333333D3B0395441C3F5288C95395141295C8FC2AF395441B81E856B953951415C8FC275AB395441D7A370ED89395141B81E85DBAB3954417B14AE678939514114AE4751A73954415C8FC21570395141AE47E10AA9395441B81E856B6D3951419A999939A9395441A4703DEA6E3951419A9999E9B239544114AE47D17E395141AE47E1AAB139544148E17A1488395141333333D3B0395441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000FCB955068539514115CAAC9DA739544123055CE2703951410FE9F0FCA8395441BF09F10C703951418E101E0CA93954418DA9506C6D395141668AC03EA939544156E4942B6E3951412E792516AE3954410EE455E86E395141625042DDB2395441AB1B892E703951417A0636D0B23954413627C9937039514185C148C8B2395441874F8E397339514120CC3893B2395441149185DF73395141CCE9459AB139544176529E82743951411615616BB0395441AF3069F7753951412E71FA99B0395441A3BC808377395141B07AE0DFB0395441DC9A4BF878395141058EAC6BB1395441C0654AE179395141F5CC93C8B03954416B8CE2F87A395141110295DFAF395441EDCF2CE27C395141BCEEC853AF3954414730299D7F395141F5922F25AF395441FE040ECC803951413EF8AE99AF395441E1CF0CB581395141930B7B25B0395441E2097158833951414AA6FBB0AF395441A99F6E2A853951415A2DB0B0AE3954413757A18785395141728949DFAE395441C50ED4E485395141218949DFAE3954418D6A6D13863951417762B1C7AD3954414818BA2A86395141118ECC98AC39544181BC20FC8539514100934F52AA395441956C69E5853951418E2CD4A8A7395441FCB955068539514115CAAC9DA7395441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>274573 - 3141635
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000C0000000AD7A3F02339514148E17AB40A3A544148E17A4420395141EC51B85E093A5441D7A370DD183951417B14AE17063A5441AE47E13A183951411F85EB51073A5441333333C31C395141F6285C9F203A5441F6285CDF223951419A999999423A5441AE47E19A23395141B81E857B433A54417B14AEC724395141D7A370CD433A54418FC2F54834395141E17A144E423A5441F6285C3F2B395141000000200D3A54413D0AD743283951415C8FC2350C3A54410AD7A3F02339514148E17AB40A3A5441
+</a>
+
+<b>
+010600000001000000010300000001000000240000006005191A22395141477E86E1093A5441124A30361D39514104D3B1B4073A5441E4F579EE1A395141BACF466E063A54419A88746E193951418123FA0C053A5441AE75F819193951415F0B2309053A5441082990931839514138311BB2053A5441F867D77418395141EE3E3C57063A54412706A27818395141F4188CDA063A544173762FAE1C395141053871941F3A54410DA37BEA22395141E7D811D7423A54418E7F0D9523395141DF174AAC433A5441A53E8747253951419C2441C9433A5441F3E16C4834395141F00AEF4A423A54413588141A3439514165CE383A413A544168E2CCA1333951416D5673763E3A54411819DD3D33395141EEDA622A3C3A5441119AA9E1323951416322D70B3A3A544169E9C27C3239514173C719BA373A54410EB72A2132395141E3E51F9F353A5441336514BA313951416B798540333A54419BE03C5E31395141CCFC1624313A544181751E0A31395141CB7C1A352F3A5441AE268BBD30395141795B81722D3A5441596C9D4F30395141C0FFA4EB2A3A544143B260FC2F395141218DD801293A5441FFD1F3B12F395141C35DE64B273A5441BE1AE5582F3951417145DA3F253A54412C15A5E82E3951410FDE54AB223A544129FC83A82E3951413F94F831213A54415677E0682E395141493E7FBB1F3A54412AADC9382E3951413FFE85A01E3A5441F11DB8102E395141B3C9D4DA1D3A5441F02BF9CF2D395141BA96C1371C3A544197F5685D2D3951412C849F95193A5441F6285C3F2B395141000000200D3A54416005191A22395141477E86E1093A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>274573 - 3533175
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000C0000000AD7A3F02339514148E17AB40A3A544148E17A4420395141EC51B85E093A5441D7A370DD183951417B14AE17063A5441AE47E13A183951411F85EB51073A5441333333C31C395141F6285C9F203A5441F6285CDF223951419A999999423A5441AE47E19A23395141B81E857B433A54417B14AEC724395141D7A370CD433A54418FC2F54834395141E17A144E423A5441F6285C3F2B395141000000200D3A54413D0AD743283951415C8FC2350C3A54410AD7A3F02339514148E17AB40A3A5441
+</a>
+
+<b>
+010600000001000000010300000001000000240000006005191A22395141477E86E1093A5441124A30361D39514104D3B1B4073A5441E4F579EE1A395141BACF466E063A54419A88746E193951418123FA0C053A5441AE75F819193951415F0B2309053A5441082990931839514138311BB2053A5441F867D77418395141EE3E3C57063A54412706A27818395141F4188CDA063A544173762FAE1C395141053871941F3A54410DA37BEA22395141E7D811D7423A54418E7F0D9523395141DF174AAC433A5441A53E8747253951419C2441C9433A5441F3E16C4834395141F00AEF4A423A54413588141A3439514165CE383A413A544168E2CCA1333951416D5673763E3A54411819DD3D33395141EEDA622A3C3A5441119AA9E1323951416322D70B3A3A544169E9C27C3239514173C719BA373A54410EB72A2132395141E3E51F9F353A5441336514BA313951416B798540333A54419BE03C5E31395141CCFC1624313A544181751E0A31395141CB7C1A352F3A5441AE268BBD30395141795B81722D3A5441596C9D4F30395141C0FFA4EB2A3A544143B260FC2F395141218DD801293A5441FFD1F3B12F395141C35DE64B273A5441BE1AE5582F3951417145DA3F253A54412C15A5E82E3951410FDE54AB223A544129FC83A82E3951413F94F831213A54415677E0682E395141493E7FBB1F3A54412AADC9382E3951413FFE85A01E3A5441F11DB8102E395141B3C9D4DA1D3A5441F02BF9CF2D395141BA96C1371C3A544197F5685D2D3951412C849F95193A5441F6285C3F2B395141000000200D3A54416005191A22395141477E86E1093A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>309196 - 1672378
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000B000000333333B334AB5041713D0A172105554152B81E353CAB50411F85EB2120055541295C8F724AAB5041713D0AE7190555415C8FC23557AB5041C3F5282C140555415C8FC25562AB5041C3F5289C0D055541713D0A8763AB5041F6285CBF0C055541295C8F4264AB50411F85EB210B055541713D0AD762AB504114AE4711FA04554114AE472133AB50411F85EBB10D055541AE47E1BA33AB5041E17A14DE14055541333333B334AB5041713D0A1721055541
+</a>
+
+<b>
+01060000000100000001030000000100000062000000AC65FCCB47AB5041FF579F79E9045541601539DE47AB5041EED81D5AEA045541224FB3FB47AB5041C239FAC4EB045541D535C51E48AB50418A36AE74ED0455412BAC8C4A48AB5041139C978FEF045541CA5C8D7D48AB504163976C03F2045541D3FBE5A748AB50415B41B20CF4045541E965B1DD48AB50417156E5A2F6045541D8ADD00149AB50417E558D5FF80455412421FA2349AB5041F4E71304FA045541716F615149AB5041B53EFC32FC04554190ECDB7C49AB5041131D324AFE0455411689689D49AB504160BADEDAFF045541A7EBE8C949AB5041A97BACFE010555410AC399054AAB5041654774DD04055541AA6AFA4C4AAB504126A4184C08055541C6F7A6814AAB5041E48080D40A055541A4EED8C44AAB504189E6A80F0E055541697CB6F94AAB504102F96B9A10055541EE9B581E4BAB50410B9B5E5D12055541755368AC4BAB5041A358CD58190555415C8FC23557AB5041C3F5282C14055541CF0AB2B25FAB5041B5495F2A0F05554103830A4762AB504162AFD7A40D0555413333334365AB5041713D0A770B0555412B476F8E61AB5041A488EF0CDF045541778BB85E5DAB5041779647C1E0045541F6285C8F61AB50418FC2F508DF0455419A9999A95FAB5041713D0AA7C70455417B14AED75DAB504152B81E35B1045541713D0A375DAB50417B14AE27B10455417B14AE8759AB50417B14AED7B0045541AAE76AD058AB50418BE215C8B004554128AD8B3C58AB5041D3A280BBB004554177AF453057AB5041DF8EACA4B0045541C7B1FF2356AB5041F67AD88DB0045541A9CD6EA555AB5041BF5C1383B0045541AC8E1E3854AB50412C5CFD63B0045541437EAE6753AB50418CBE4052B0045541740D528C52AB5041872C963FB0045541FA2EDFE251AB50419CE52A31B004554122B27EE150AB50415130441BB004554127D8A4FD4FAB5041A9ACE007B0045541973747174FAB5041ED6046F4AF04554122814C444EAB5041886552E2AF045541A49380204DAB504186E37DC9AF0455410A93D6784CAB5041047D39BBAF045541214621E44AAB50413F4FC998AF045541A341C48049AB5041980F8C7AAF0455418E2D3C0F48AB5041F02B1A5BAF045541C7D315A646AB5041E8DE5E3CAF045541ADEC2FD345AB5041D5A86C2AAF04554196CE096C44AB504149F2DC0BAF0455416A99D60A43AB5041F90CCDEDAE0455410508D11443AB5041CDF1A16DAF0455412C6E732C43AB504163069190B004554145DF574543AB5041E661FCC2B1045541A00AAA5743AB5041F65583A4B204554149D44D6843AB5041E3625871B3045541351C626943AB5041E957A17EB30455412D45708443AB504129DAACCBB4045541B8D66C8E43AB5041EEA59B46B5045541561A46AC43AB5041B5ED09B6B60455415A8B07C143AB5041DB3989B5B7045541A463F9D043AB5041A2D6CF79B8045541EA4C6FE843AB50411C499B9AB90455413462ECFF43AB50414204BFBBBA04554108EB3B0A44AB5041171BAB3ABB045541AAAF381E44AB50415265B530BC04554117BA714944AB5041ED9CC544BE0455417693506344AB5041F7D3F982BF0455414B62E28D44AB504148C38A8EC10455412C621AAA44AB504119782CEAC20455416567FAD744AB5041EEB1531FC5045541B6E03DF844AB5041C2827DACC604554179E81A1445AB5041B28B7B03C80455412848AA2945AB5041A3D2E10CC9045541CBDFB75C45AB504172A15581CB04554141B2E98145AB5041062B314BCD04554175BDDDA745AB5041E587631ECF0455415DBC46CB45AB50412BA247D2D0045541C49ECDF545AB50417EC9C6DDD2045541E5DC5C1D46AB5041ACEABEC4D404554104C6DB4A46AB504189D3C9F4D6045541352C5F7746AB50417EAFBC18D9045541C861CD9F46AB50415A7C6D0ADB045541620632B846AB5041DDAAB336DC04554150F84FCA46AB5041E0BFB715DD045541347017F346AB5041184FB30BDF0455415ACB8F0D47AB504107C38A51E0045541BDFCAF2447AB50413609376EE1045541EEF8254D47AB5041298E4760E304554101642E6547AB5041D1781E88E40455417E5EE76547AB5041F9830391E40455419410306E47AB504120D0FCF6E4045541C7AC689C47AB504152A4F52FE7045541C14CA1B147AB50413C0F3035E8045541AC65FCCB47AB5041FF579F79E9045541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>309196 - 3483506
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000B000000333333B334AB5041713D0A172105554152B81E353CAB50411F85EB2120055541295C8F724AAB5041713D0AE7190555415C8FC23557AB5041C3F5282C140555415C8FC25562AB5041C3F5289C0D055541713D0A8763AB5041F6285CBF0C055541295C8F4264AB50411F85EB210B055541713D0AD762AB504114AE4711FA04554114AE472133AB50411F85EBB10D055541AE47E1BA33AB5041E17A14DE14055541333333B334AB5041713D0A1721055541
+</a>
+
+<b>
+01060000000100000001030000000100000062000000AC65FCCB47AB5041FF579F79E9045541601539DE47AB5041EED81D5AEA045541224FB3FB47AB5041C239FAC4EB045541D535C51E48AB50418A36AE74ED0455412BAC8C4A48AB5041139C978FEF045541CA5C8D7D48AB504163976C03F2045541D3FBE5A748AB50415B41B20CF4045541E965B1DD48AB50417156E5A2F6045541D8ADD00149AB50417E558D5FF80455412421FA2349AB5041F4E71304FA045541716F615149AB5041B53EFC32FC04554190ECDB7C49AB5041131D324AFE0455411689689D49AB504160BADEDAFF045541A7EBE8C949AB5041A97BACFE010555410AC399054AAB5041654774DD04055541AA6AFA4C4AAB504126A4184C08055541C6F7A6814AAB5041E48080D40A055541A4EED8C44AAB504189E6A80F0E055541697CB6F94AAB504102F96B9A10055541EE9B581E4BAB50410B9B5E5D12055541755368AC4BAB5041A358CD58190555415C8FC23557AB5041C3F5282C14055541CF0AB2B25FAB5041B5495F2A0F05554103830A4762AB504162AFD7A40D0555413333334365AB5041713D0A770B0555412B476F8E61AB5041A488EF0CDF045541778BB85E5DAB5041779647C1E0045541F6285C8F61AB50418FC2F508DF0455419A9999A95FAB5041713D0AA7C70455417B14AED75DAB504152B81E35B1045541713D0A375DAB50417B14AE27B10455417B14AE8759AB50417B14AED7B0045541AAE76AD058AB50418BE215C8B004554128AD8B3C58AB5041D3A280BBB004554177AF453057AB5041DF8EACA4B0045541C7B1FF2356AB5041F67AD88DB0045541A9CD6EA555AB5041BF5C1383B0045541AC8E1E3854AB50412C5CFD63B0045541437EAE6753AB50418CBE4052B0045541740D528C52AB5041872C963FB0045541FA2EDFE251AB50419CE52A31B004554122B27EE150AB50415130441BB004554127D8A4FD4FAB5041A9ACE007B0045541973747174FAB5041ED6046F4AF04554122814C444EAB5041886552E2AF045541A49380204DAB504186E37DC9AF0455410A93D6784CAB5041047D39BBAF045541214621E44AAB50413F4FC998AF045541A341C48049AB5041980F8C7AAF0455418E2D3C0F48AB5041F02B1A5BAF045541C7D315A646AB5041E8DE5E3CAF045541ADEC2FD345AB5041D5A86C2AAF04554196CE096C44AB504149F2DC0BAF0455416A99D60A43AB5041F90CCDEDAE0455410508D11443AB5041CDF1A16DAF0455412C6E732C43AB504163069190B004554145DF574543AB5041E661FCC2B1045541A00AAA5743AB5041F65583A4B204554149D44D6843AB5041E3625871B3045541351C626943AB5041E957A17EB30455412D45708443AB504129DAACCBB4045541B8D66C8E43AB5041EEA59B46B5045541561A46AC43AB5041B5ED09B6B60455415A8B07C143AB5041DB3989B5B7045541A463F9D043AB5041A2D6CF79B8045541EA4C6FE843AB50411C499B9AB90455413462ECFF43AB50414204BFBBBA04554108EB3B0A44AB5041171BAB3ABB045541AAAF381E44AB50415265B530BC04554117BA714944AB5041ED9CC544BE0455417693506344AB5041F7D3F982BF0455414B62E28D44AB504148C38A8EC10455412C621AAA44AB504119782CEAC20455416567FAD744AB5041EEB1531FC5045541B6E03DF844AB5041C2827DACC604554179E81A1445AB5041B28B7B03C80455412848AA2945AB5041A3D2E10CC9045541CBDFB75C45AB504172A15581CB04554141B2E98145AB5041062B314BCD04554175BDDDA745AB5041E587631ECF0455415DBC46CB45AB50412BA247D2D0045541C49ECDF545AB50417EC9C6DDD2045541E5DC5C1D46AB5041ACEABEC4D404554104C6DB4A46AB504189D3C9F4D6045541352C5F7746AB50417EAFBC18D9045541C861CD9F46AB50415A7C6D0ADB045541620632B846AB5041DDAAB336DC04554150F84FCA46AB5041E0BFB715DD045541347017F346AB5041184FB30BDF0455415ACB8F0D47AB504107C38A51E0045541BDFCAF2447AB50413609376EE1045541EEF8254D47AB5041298E4760E304554101642E6547AB5041D1781E88E40455417E5EE76547AB5041F9830391E40455419410306E47AB504120D0FCF6E4045541C7AC689C47AB504152A4F52FE7045541C14CA1B147AB50413C0F3035E8045541AC65FCCB47AB5041FF579F79E9045541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>274755 - 3072455
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000200000025000000F6285C0FA02951417B14AEF7BB3754410000007097295141D7A370ADBE375441C3F5287C9A295141AE47E14AC8375441AE47E10AA1295141E17A142EDC3754417B14AE87A12951419A9999A9DD375441E17A141EA52951410AD7A3E0E8375441713D0A77A7295141000000C0EF37544185EB51F8A729514152B81E65F137544148E17AF4A72951418FC2F5E8F1375441EC51B87EA8295141CDCCCCFCF1375441EC51B8EEA92951413D0AD7C3F237544166666676AA29514185EB51E8F23754411F85EB11AC295141AE47E1EAF2375441B81E85EBAC295141000000D0F237544148E17A14B42951417B14AE47F03754413D0AD7D3D729514185EB5198E337544152B81E85DC29514148E17AF4E237544114AE4781DD29514185EB5108E237544185EB51F8DE29514100000080E2375441AE47E16AE4295141CDCCCC0CE23754415C8FC2C5EF29514114AE47F1E0375441F6285C0FFF2951415C8FC255DF37544166666606042A5141333333F3DE375441295C8FF2F529514148E17A14AE375441333333E3F52951415C8FC2B5AD37544148E17AE4F129514114AE47F1AE375441AE47E1CAEE29514152B81E75AF3754415C8FC2E5E9295141295C8FD2AF3754419A9999D9E429514148E17A94AF375441713D0A57DD295141A4703DCAAE37544166666636DB2951419A9999D9AE375441C3F5282CCF295141A4703D1AB2375441C3F5284CB82951419A999909B73754417B14AEA7B4295141AE47E1BAB73754415C8FC2A5AA2951413D0AD763B9375441D7A3705DA5295141E17A146EBA375441F6285C0FA02951417B14AEF7BB375441050000007B14AEB7D92951413D0AD783B537544185EB5158D9295141D7A370CDB237544152B81E45DB2951411F85EB91B2375441E17A149EDB29514185EB5148B53754417B14AEB7D92951413D0AD783B5375441
+</a>
+
+<b>
+010600000001000000010300000001000000270000004FD3E657EA295141AEAFD678E13754411CFE4E43EE2951414AE2F816E13754415CC1A54BF0295141363261E2E0375441FB2DD8CBFC2951411E61B292DF37544175D3F2D2FE2951416CC21C5CDF37544131B1DF48002A5141DD02733DDF375441F723A80C042A51414B3E82F2DE375441333333E3F52951415C8FC2B5AD375441263ABEF5F1295141AF43F4EBAE375441918FB3C0F12951410F4F39F7AE375441B38FFCDCEF295141A23B9547AF3754410A77437DEF295141AA3D7C57AF3754418A6E07EEEE295141A2DD476FAF375441775AD9BDEE29514161771776AF3754412CB6583BEE295141789CD27FAF375441F016E54FED295141C11D6191AF375441EDDF5B6FEC295141F9401FA2AF375441BBAD5DF6E9295141205F52D1AF375441A73BA00EE9295141506439C8AF375441A4EED4AAE829514106026EC3AF37544197D6E26BE72951419E3E1BB4AF3754410FBA1D97E6295141695AE2A9AF375441D571E618E52951413A6B8597AF3754410F35C48AE4295141EEEF2F8CAF3754418F58C178E32951411EF95C6FAF37544136510DFAE12951417BFE1A47AF3754413AB886F4E02951413941982BAF37544110BDF05EE02951413CFEDB1BAF37544101C72510DF295141D836A4F8AE375441D8F381E1DD2951413E4BCED8AE375441DC95575BDD2951413E4BB1CAAE375441C493EF07DD295141318D78CCAE3754410417AF42DC295141C6A808D2AE3754416534CB90E429514171FDF6B0CC375441BD966AF9E4295141275BC22ACE3754416EF983F4E8295141EF49296FDC375441BD1B3AA1E9295141039B26DADE3754412D3D5851EA295141A61D5951E13754414FD3E657EA295141AEAFD678E1375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>274755 - 3370931
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000200000025000000F6285C0FA02951417B14AEF7BB3754410000007097295141D7A370ADBE375441C3F5287C9A295141AE47E14AC8375441AE47E10AA1295141E17A142EDC3754417B14AE87A12951419A9999A9DD375441E17A141EA52951410AD7A3E0E8375441713D0A77A7295141000000C0EF37544185EB51F8A729514152B81E65F137544148E17AF4A72951418FC2F5E8F1375441EC51B87EA8295141CDCCCCFCF1375441EC51B8EEA92951413D0AD7C3F237544166666676AA29514185EB51E8F23754411F85EB11AC295141AE47E1EAF2375441B81E85EBAC295141000000D0F237544148E17A14B42951417B14AE47F03754413D0AD7D3D729514185EB5198E337544152B81E85DC29514148E17AF4E237544114AE4781DD29514185EB5108E237544185EB51F8DE29514100000080E2375441AE47E16AE4295141CDCCCC0CE23754415C8FC2C5EF29514114AE47F1E0375441F6285C0FFF2951415C8FC255DF37544166666606042A5141333333F3DE375441295C8FF2F529514148E17A14AE375441333333E3F52951415C8FC2B5AD37544148E17AE4F129514114AE47F1AE375441AE47E1CAEE29514152B81E75AF3754415C8FC2E5E9295141295C8FD2AF3754419A9999D9E429514148E17A94AF375441713D0A57DD295141A4703DCAAE37544166666636DB2951419A9999D9AE375441C3F5282CCF295141A4703D1AB2375441C3F5284CB82951419A999909B73754417B14AEA7B4295141AE47E1BAB73754415C8FC2A5AA2951413D0AD763B9375441D7A3705DA5295141E17A146EBA375441F6285C0FA02951417B14AEF7BB375441050000007B14AEB7D92951413D0AD783B537544185EB5158D9295141D7A370CDB237544152B81E45DB2951411F85EB91B2375441E17A149EDB29514185EB5148B53754417B14AEB7D92951413D0AD783B5375441
+</a>
+
+<b>
+010600000001000000010300000001000000270000004FD3E657EA295141AEAFD678E13754411CFE4E43EE2951414AE2F816E13754415CC1A54BF0295141363261E2E0375441FB2DD8CBFC2951411E61B292DF37544175D3F2D2FE2951416CC21C5CDF37544131B1DF48002A5141DD02733DDF375441F723A80C042A51414B3E82F2DE375441333333E3F52951415C8FC2B5AD375441263ABEF5F1295141AF43F4EBAE375441918FB3C0F12951410F4F39F7AE375441B38FFCDCEF295141A23B9547AF3754410A77437DEF295141AA3D7C57AF3754418A6E07EEEE295141A2DD476FAF375441775AD9BDEE29514161771776AF3754412CB6583BEE295141789CD27FAF375441F016E54FED295141C11D6191AF375441EDDF5B6FEC295141F9401FA2AF375441BBAD5DF6E9295141205F52D1AF375441A73BA00EE9295141506439C8AF375441A4EED4AAE829514106026EC3AF37544197D6E26BE72951419E3E1BB4AF3754410FBA1D97E6295141695AE2A9AF375441D571E618E52951413A6B8597AF3754410F35C48AE4295141EEEF2F8CAF3754418F58C178E32951411EF95C6FAF37544136510DFAE12951417BFE1A47AF3754413AB886F4E02951413941982BAF37544110BDF05EE02951413CFEDB1BAF37544101C72510DF295141D836A4F8AE375441D8F381E1DD2951413E4BCED8AE375441DC95575BDD2951413E4BB1CAAE375441C493EF07DD295141318D78CCAE3754410417AF42DC295141C6A808D2AE3754416534CB90E429514171FDF6B0CC375441BD966AF9E4295141275BC22ACE3754416EF983F4E8295141EF49296FDC375441BD1B3AA1E9295141039B26DADE3754412D3D5851EA295141A61D5951E13754414FD3E657EA295141AEAFD678E1375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>274887 - 2916470
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000013000000D7A3707DE6295141EC51B86E3837544148E17A44E52951418FC2F53839375441000000D0E2295141E17A14CE3A375441E17A142ED029514148E17AD446375441333333A3CD295141000000C04A375441EC51B83ED729514185EB510856375441CDCCCC5CE5295141AE47E19A6637544148E17A84E8295141295C8FA26C3754417B14AEF7E8295141F6285C7F6D375441B81E85CBFC2951419A99994967375441713D0AA7F62951419A9999A95C375441A4703DCAF3295141E17A14AE57375441F6285C3FF1295141B81E852B52375441333333C3EF295141B81E854B4D3754413D0AD753EF29514152B81E454737544152B81EF5EB295141EC51B84E41375441E17A145EE92951415C8FC2B53C375441F6285C3FE8295141B81E857B3A375441D7A3707DE6295141EC51B86E38375441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000C039A237E5295141D2A23D413937544176058692E5295141985F19B639375441D2A1CE10EB2951413517D39842375441CE06FB07EE29514101BA635F47375441A0EA4483EE295141A6EEEB214D3754417AD4BEB9EE2951411196D3FB4D3754418A2B5262F02951410AA3FED252375441A3A1E84FF22951419DAE2E475737544148D35BD0F2295141F5B68B7458375441330066B5F6295141CD28F63D5F375441C694923BFB295141D934C5BF66375441D58A98D6EE295141055B84856A375441DFF39B8BE8295141756A39B06C375441131A6A92E82951412C62BFBD6C3754417B14AEF7E8295141F6285C7F6D375441B81E85CBFC2951419A99994967375441713D0AA7F62951419A9999A95C375441A4703DCAF3295141E17A14AE57375441F6285C3FF1295141B81E852B52375441333333C3EF295141B81E854B4D3754413D0AD753EF29514152B81E454737544152B81EF5EB295141EC51B84E41375441E17A145EE92951415C8FC2B53C375441F6285C3FE8295141B81E857B3A375441D7A3707DE6295141EC51B86E3837544148E17A44E52951418FC2F53839375441C039A237E5295141D2A23D4139375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>274887 - 3801700
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000013000000D7A3707DE6295141EC51B86E3837544148E17A44E52951418FC2F53839375441000000D0E2295141E17A14CE3A375441E17A142ED029514148E17AD446375441333333A3CD295141000000C04A375441EC51B83ED729514185EB510856375441CDCCCC5CE5295141AE47E19A6637544148E17A84E8295141295C8FA26C3754417B14AEF7E8295141F6285C7F6D375441B81E85CBFC2951419A99994967375441713D0AA7F62951419A9999A95C375441A4703DCAF3295141E17A14AE57375441F6285C3FF1295141B81E852B52375441333333C3EF295141B81E854B4D3754413D0AD753EF29514152B81E454737544152B81EF5EB295141EC51B84E41375441E17A145EE92951415C8FC2B53C375441F6285C3FE8295141B81E857B3A375441D7A3707DE6295141EC51B86E38375441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000C039A237E5295141D2A23D413937544176058692E5295141985F19B639375441D2A1CE10EB2951413517D39842375441CE06FB07EE29514101BA635F47375441A0EA4483EE295141A6EEEB214D3754417AD4BEB9EE2951411196D3FB4D3754418A2B5262F02951410AA3FED252375441A3A1E84FF22951419DAE2E475737544148D35BD0F2295141F5B68B7458375441330066B5F6295141CD28F63D5F375441C694923BFB295141D934C5BF66375441D58A98D6EE295141055B84856A375441DFF39B8BE8295141756A39B06C375441131A6A92E82951412C62BFBD6C3754417B14AEF7E8295141F6285C7F6D375441B81E85CBFC2951419A99994967375441713D0AA7F62951419A9999A95C375441A4703DCAF3295141E17A14AE57375441F6285C3FF1295141B81E852B52375441333333C3EF295141B81E854B4D3754413D0AD753EF29514152B81E454737544152B81EF5EB295141EC51B84E41375441E17A145EE92951415C8FC2B53C375441F6285C3FE8295141B81E857B3A375441D7A3707DE6295141EC51B86E3837544148E17A44E52951418FC2F53839375441C039A237E5295141D2A23D4139375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>275092 - 53337
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000012000000D7A3704D3A2D51410AD7A350E4395441AE47E16A3D2D51419A999949E43954417B14AE273D2D51419A999909E3395441A4703DEA3E2D5141A4703D3ADB395441AE47E1AA3E2D5141E17A147ED8395441EC51B80E3E2D5141AE47E18AD1395441000000703D2D5141CDCCCC7CCD395441E17A14CE3C2D5141F6285CAFC9395441333333433C2D5141000000A0C6395441295C8F823B2D51418FC2F5D8C3395441AE47E1DA302D514185EB51A8C4395441333333F31D2D514148E17A84C5395441EC51B81E252D5141A4703DEAD1395441A4703DFA262D5141295C8F22D5395441000000302A2D5141CDCCCCECD63954418FC2F538302D5141EC51B84EDD39544166666686372D51413D0AD713E2395441D7A3704D3A2D51410AD7A350E4395441
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000EC51B81E252D5141A4703DEAD1395441A67783EC262D5141F0D7C30AD5395441D85BB837272D51411AE4D744D5395441000000302A2D5141CDCCCCECD6395441C1D17C0D2D2D51417BB985F4D93954412603FB842F2D51416E8D6090DC395441B053363A302D5141F1B6894FDD3954415EB51416312D5141730828DFDD3954411DE1D8A3312D5141231DC23BDE39544166666686372D51413D0AD713E2395441B8DDD991392D514182A085B9E3395441D7A3704D3A2D51410AD7A350E4395441186B83423B2D514163F7794EE43954412228C24C3D2D5141FDACDD49E43954417B14AE273D2D51419A999909E3395441EB6B9DD03D2D51419885F31BE0395441A18725D23E2D5141A18A27A5DB39544147543CE73E2D514193600A19DB39544196E2F6DC3E2D514121B189A7DA39544128F410D43E2D514161663545DA3954411D0056B73E2D51419173B907D9395441AE47E1AA3E2D5141E17A147ED8395441846B11313E2D5141CAF53812D3395441841C46C53D2D51413CC584AACF395441C86A45F83C2D51416ADB01ADCA39544145E3FD4B3C2D5141AC1F97D1C639544169A76AB63B2D514154445D98C4395441295C8F823B2D51418FC2F5D8C339544161E72AFE392D514129607CF6C33954416E11C2A0332D5141A4C75A72C4395441AE47E1DA302D514185EB51A8C43954417310C3A42D2D51418BF9B7CDC4395441E67C4CB52A2D51413836E7EFC4395441E9F94CB8292D5141858669FBC4395441EAAC3466272D51417D1D7016C5395441A429F018262D514129379925C5395441645A5598242D5141B82A1837C5395441219FE48D242D514146C09137C539544145BF4AF8222D5141AB37054AC5395441333333F31D2D514148E17A84C539544192406015222D5141B38026AACC395441EC51B81E252D5141A4703DEAD1395441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>275129 - 384120
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000200000001030000000100000009000000E17A146E8A2B5141B81E85FB8A3754418FC2F5788F2B51415C8FC2C58A375441AE47E1DA9A2B5141000000808A375441AE47E10A9C2B5141295C8F728A3754413D0AD7D3A12B5141AE47E1FA86375441A4703D3AA02B5141295C8F028737544114AE4721962B5141A4703D4A87375441713D0A778A2B51419A99998987375441E17A146E8A2B5141B81E85FB8A37544101030000000100000009000000C3F5283CB92B51419A9999D989375441EC51B82EB92B5141AE47E1BA8637544133333323A62B51417B14AEE78637544166666676A32B51413D0AD7F38637544133333333A32B514152B81EF586375441F6285C7F9D2B5141713D0A578A3754413D0AD7439E2B51413D0AD7538A3754418FC2F558A62B51410AD7A3308A375441C3F5283CB92B51419A9999D989375441
+</a>
+
+<b>
+01060000000100000001030000000100000007000000ABEA7DD0B02B5141547E90CE86375441D17118A9B02B514194AF78D586375441899E0EA3B02B5141FBCB70FE893754416B2DEBC4B02B514182FB9C008A375441C3F5283CB92B51419A9999D989375441EC51B82EB92B5141AE47E1BA86375441ABEA7DD0B02B5141547E90CE86375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>275448 - 2922014
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001C00000014AE471163295141F6285C7F74385441C3F5286C5E2951413D0AD7E367385441A4703DEA5A295141EC51B85E5E3854418FC2F53855295141666666364F385441EC51B8AE51295141713D0AC74538544148E17AF450295141713D0AD743385441C3F528FC4E2951411F85EB61443854419A9999F948295141CDCCCCAC4638544148E17A744529514114AE472148385441295C8FE237295141666666764E385441B81E857B2C29514152B81E1554385441AE47E1CA23295141F6285C2F583854418FC2F59822295141AE47E19A583854410AD7A3B020295141D7A370DD58385441713D0AA71C295141D7A370DD583854413333337313295141A4703D8A58385441B81E85BB1829514166666676653854413D0AD7B319295141EC51B8DE67385441666666A61E295141A4703D9A743854410000000023295141666666167F385441D7A3705D28295141E17A140E8B385441713D0AA72B2951416666666692385441AE47E1DA2C295141D7A370ED9238544148E17AA42F2951417B14AEE792385441CDCCCCDC652951415C8FC2A57E3854419A99996965295141713D0A677D385441EC51B83E66295141F6285C1F7D38544114AE471163295141F6285C7F74385441
+</a>
+
+<b>
+0106000000010000000103000000010000002E0000002A1984C019295141F47637C3583854413333337313295141A4703D8A583854418B52BC871C295141766BAE256F385441666666A61E295141A4703D9A743854410000000023295141666666167F385441D7A3705D28295141E17A140E8B385441713D0AA72B2951416666666692385441AE47E1DA2C295141D7A370ED9238544148E17AA42F2951417B14AEE792385441CDCCCCDC652951415C8FC2A57E3854415FB6540E66295141AA7F11767E385441F6285C6F662951411F85EBA17D385441EC51B83E66295141F6285C1F7D38544114AE471163295141F6285C7F74385441C3F5286C5E2951413D0AD7E367385441A4703DEA5A295141EC51B85E5E385441D273D33557295141B5585D8154385441B1573C6F1E295141F0789EEC6C3854413C1C97851829514166AFE58C5F38544186B3AF0746295141E645EAF44B3854411C2AE86D512951410CF6146647385441D0F0B22C52295141EA57CE164738544148E17AF450295141713D0AD743385441F3C4412D4F295141F74F6654443854419D6E3AF04A295141D0DB12ED45385441A13FF04548295141A14110F746385441E356D9BF44295141677F92754838544183E8C67E40295141E7DFCA714A3854418837CF933D295141A63F5ECE4B38544151A7FF1436295141734AE4594F3854419855331532295141A1E07E5251385441B3BC159429295141726D177455385441E31139D92729514142062A45563854414C7639B727295141D8F236555638544109BC991A2629514171170318573854412ACBB8F824295141D2B6DCA057385441D102BEF123295141926B031D5838544143EEB92523295141FDD8676958385441CB8A6E9E2229514173F4F498583854419FD2ED0F2229514167D18EAD583854416BDD4BE320295141A70B89D65838544125F676BF202951417A596BDB583854417674599520295141D7A370DD5838544128A3E73E20295141D7A370DD583854418188FAAA1C295141D7A370DD583854412A1984C019295141F47637C358385441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>275448 - 3387742
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001C00000014AE471163295141F6285C7F74385441C3F5286C5E2951413D0AD7E367385441A4703DEA5A295141EC51B85E5E3854418FC2F53855295141666666364F385441EC51B8AE51295141713D0AC74538544148E17AF450295141713D0AD743385441C3F528FC4E2951411F85EB61443854419A9999F948295141CDCCCCAC4638544148E17A744529514114AE472148385441295C8FE237295141666666764E385441B81E857B2C29514152B81E1554385441AE47E1CA23295141F6285C2F583854418FC2F59822295141AE47E19A583854410AD7A3B020295141D7A370DD58385441713D0AA71C295141D7A370DD583854413333337313295141A4703D8A58385441B81E85BB1829514166666676653854413D0AD7B319295141EC51B8DE67385441666666A61E295141A4703D9A743854410000000023295141666666167F385441D7A3705D28295141E17A140E8B385441713D0AA72B2951416666666692385441AE47E1DA2C295141D7A370ED9238544148E17AA42F2951417B14AEE792385441CDCCCCDC652951415C8FC2A57E3854419A99996965295141713D0A677D385441EC51B83E66295141F6285C1F7D38544114AE471163295141F6285C7F74385441
+</a>
+
+<b>
+0106000000010000000103000000010000002E0000002A1984C019295141F47637C3583854413333337313295141A4703D8A583854418B52BC871C295141766BAE256F385441666666A61E295141A4703D9A743854410000000023295141666666167F385441D7A3705D28295141E17A140E8B385441713D0AA72B2951416666666692385441AE47E1DA2C295141D7A370ED9238544148E17AA42F2951417B14AEE792385441CDCCCCDC652951415C8FC2A57E3854415FB6540E66295141AA7F11767E385441F6285C6F662951411F85EBA17D385441EC51B83E66295141F6285C1F7D38544114AE471163295141F6285C7F74385441C3F5286C5E2951413D0AD7E367385441A4703DEA5A295141EC51B85E5E385441D273D33557295141B5585D8154385441B1573C6F1E295141F0789EEC6C3854413C1C97851829514166AFE58C5F38544186B3AF0746295141E645EAF44B3854411C2AE86D512951410CF6146647385441D0F0B22C52295141EA57CE164738544148E17AF450295141713D0AD743385441F3C4412D4F295141F74F6654443854419D6E3AF04A295141D0DB12ED45385441A13FF04548295141A14110F746385441E356D9BF44295141677F92754838544183E8C67E40295141E7DFCA714A3854418837CF933D295141A63F5ECE4B38544151A7FF1436295141734AE4594F3854419855331532295141A1E07E5251385441B3BC159429295141726D177455385441E31139D92729514142062A45563854414C7639B727295141D8F236555638544109BC991A2629514171170318573854412ACBB8F824295141D2B6DCA057385441D102BEF123295141926B031D5838544143EEB92523295141FDD8676958385441CB8A6E9E2229514173F4F498583854419FD2ED0F2229514167D18EAD583854416BDD4BE320295141A70B89D65838544125F676BF202951417A596BDB583854417674599520295141D7A370DD5838544128A3E73E20295141D7A370DD583854418188FAAA1C295141D7A370DD583854412A1984C019295141F47637C358385441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>275562 - 3361837
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000E000000AE47E1DABA2D514148E17A54BD3C5441D7A3704DBA2D5141EC51B84EA23C5441713D0A17BA2D5141AE47E16A963C5441E17A149EB82D5141B81E85EB943C5441CDCCCC8CAB2D51413D0AD7A3873C544166666686A42D514100000080803C5441A4703D8A9B2D5141333333338A3C5441EC51B81E952D51419A9999B9903C5441E17A147E912D51419A999919943C54410AD7A3D0A52D5141F6285C5FAB3C5441EC51B83EB92D5141AE47E1AABC3C54418FC2F5D8BA2D51411F85EB81BE3C5441E17A14DEBA2D51419A9999E9BD3C5441AE47E1DABA2D514148E17A54BD3C5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000008FC2F5D8BA2D51411F85EB81BE3C54410AD7A3C0BE2D5141EC51B8FEC23C5441000000C0BF2D5141000000F0C13C5441B81E850BBF2D514152B81E858F3C5441E17A145EBE2D51419A9999295F3C5441CDCCCC4CBA2D5141E17A148E5B3C54410AD7A300B92D5141000000105C3C54415287AC97B92D514144D9A1F87B3C544136AB1718BA2D5141DA9CC4A5963C54414BDDE007B92D5141DFAC7E33953C5441028739EAB92D514174B3776DBD3C5441D8EE8E24BA2D5141CE1FC8B2BD3C54418FC2F5D8BA2D51411F85EB81BE3C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276283 - 3065117
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A00000048E17A047826514166666626043D5441713D0A3790265141295C8F22FE3C544166666626A826514100000030F83C54419A9999F9A7265141713D0A67F73C5441000000F0A026514133333333F93C5441CDCCCC1C9F26514152B81E35F13C54413D0AD7038E2651415C8FC285F53C5441C3F5281C7726514185EB5158FB3C5441E17A14BE75265141333333E3FB3C544148E17A047826514166666626043D5441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000A800370278265141925C2C1E043D54412AFFCC027B265141CB8FE867033D544195870C6F80265141548CD10E023D544159FA7648882651414FB5511B003D5441BE603BD88D2651412F6566B9FE3C54413F617756902651417242C01AFE3C5441299206FE932651419C314732FD3C544148741386952651413AFADBD0FC3C54416E426DF29C265141ED52A6F8FA3C544127F9854CA4265141A5DDF924F93C544166666626A826514100000030F83C54419A9999F9A7265141713D0A67F73C5441000000F0A026514133333333F93C5441CDCCCC1C9F26514152B81E35F13C54413D0AD7038E2651415C8FC285F53C5441C3F5281C7726514185EB5158FB3C5441E17A14BE75265141333333E3FB3C5441A800370278265141925C2C1E043D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276283 - 3288516
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A00000048E17A047826514166666626043D5441713D0A3790265141295C8F22FE3C544166666626A826514100000030F83C54419A9999F9A7265141713D0A67F73C5441000000F0A026514133333333F93C5441CDCCCC1C9F26514152B81E35F13C54413D0AD7038E2651415C8FC285F53C5441C3F5281C7726514185EB5158FB3C5441E17A14BE75265141333333E3FB3C544148E17A047826514166666626043D5441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000A800370278265141925C2C1E043D54412AFFCC027B265141CB8FE867033D544195870C6F80265141548CD10E023D544159FA7648882651414FB5511B003D5441BE603BD88D2651412F6566B9FE3C54413F617756902651417242C01AFE3C5441299206FE932651419C314732FD3C544148741386952651413AFADBD0FC3C54416E426DF29C265141ED52A6F8FA3C544127F9854CA4265141A5DDF924F93C544166666626A826514100000030F83C54419A9999F9A7265141713D0A67F73C5441000000F0A026514133333333F93C5441CDCCCC1C9F26514152B81E35F13C54413D0AD7038E2651415C8FC285F53C5441C3F5281C7726514185EB5158FB3C5441E17A14BE75265141333333E3FB3C5441A800370278265141925C2C1E043D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>298548 - 271392
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000000B000000666666B661C95041B81E853BC6AF5441C3F5283C6BC950418FC2F588BBAF5441713D0A275BC9504152B81E35BBAF54410AD7A33058C95041AE47E16ABBAF54413D0AD7432EC950419A999939C3AF5441A4703D3A07C9504166666696CAAF54411F85EBB109C950411F85EB31CCAF5441E17A149E0CC95041666666A6CEAF5441F6285C1F10C950419A999919D2AF54415C8FC2D512C95041E17A140ED5AF5441666666B661C95041B81E853BC6AF5441
+</a>
+
+<b>
+010600000001000000010300000001000000120000007C16993B0CC95041C9F7AB53CEAF544169F4139E0CC95041A5A765A6CEAF544112DE5C1F10C95041814B9919D2AF5441DB55C2D512C95041B537130ED5AF5441CCF765B661C950411CEB833BC6AF5441B972B63966C950416FA8A629C1AF54413126283C6BC95041BEABF688BBAF54415808897B64C95041703BC265BBAF5441713D0A275BC9504152B81E35BBAF54415197F5FE58C95041A43C415CBBAF54419204A53058C9504145B4E16ABBAF5441EA3F27494CC950414B4166A2BDAF54413D0AD7432EC950419A999939C3AF5441FE0F98392EC95041A04B883BC3AF54414951287F07C95041E41042A2CAAF5441195BD8B109C950410009DF31CCAF54411F85EBB109C950411F85EB31CCAF54417C16993B0CC95041C9F7AB53CEAF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276761 - 2938563
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000C000000E17A140E80AF504148E17A1471D154410AD7A3907DAF5041EC51B83E70D15441D7A3706D79AF5041C3F528DC6ED1544152B81E4578AF5041F6285CBF6FD15441F6285C8F78AF5041D7A370CD7DD154419A99999979AF5041E17A147E89D154417B14AE978AAF5041EC51B87E8ED15441333333D391AF5041000000A090D15441B81E850B91AF5041AE47E18A8FD1544114AE47F188AF5041D7A3704D84D1544185EB51F881AF504114AE472173D15441E17A140E80AF504148E17A1471D15441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000A205A3978AAF5041A9A49E7E8ED15441333333D391AF5041000000A090D1544103D2DB2B8EAF5041ADF2598E8BD15441C42689B98BAF504181F37F2988D15441CBFA2AEE88AF50416D74C64584D154411BFEEB1986AF50415174094E7DD1544148141D4F83AF50413CFA8A6D76D1544146C0375082AF50418836C3F973D15441218B453382AF5041F9AF78B273D154416C2CCE1C82AF50413FB2237B73D1544151EDE9ED81AF5041CDE2231673D154417558948D81AF504172C203AF72D154410D19DB1681AF50412EE8EB2F72D154419BEA329980AF5041A6FE67A971D15441C8A1BE0980AF5041D31D071371D15441254EAF987DAF5041D91CA74170D154411ED0E42A7FAF5041E77955F773D1544115A5EF8483AF5041D50C27127ED154414194560487AF50413C41493186D15441CD1897D488AF5041A0F4495F8AD15441A205A3978AAF5041A9A49E7E8ED15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276761 - 3808402
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000C000000E17A140E80AF504148E17A1471D154410AD7A3907DAF5041EC51B83E70D15441D7A3706D79AF5041C3F528DC6ED1544152B81E4578AF5041F6285CBF6FD15441F6285C8F78AF5041D7A370CD7DD154419A99999979AF5041E17A147E89D154417B14AE978AAF5041EC51B87E8ED15441333333D391AF5041000000A090D15441B81E850B91AF5041AE47E18A8FD1544114AE47F188AF5041D7A3704D84D1544185EB51F881AF504114AE472173D15441E17A140E80AF504148E17A1471D15441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000A205A3978AAF5041A9A49E7E8ED15441333333D391AF5041000000A090D1544103D2DB2B8EAF5041ADF2598E8BD15441C42689B98BAF504181F37F2988D15441CBFA2AEE88AF50416D74C64584D154411BFEEB1986AF50415174094E7DD1544148141D4F83AF50413CFA8A6D76D1544146C0375082AF50418836C3F973D15441218B453382AF5041F9AF78B273D154416C2CCE1C82AF50413FB2237B73D1544151EDE9ED81AF5041CDE2231673D154417558948D81AF504172C203AF72D154410D19DB1681AF50412EE8EB2F72D154419BEA329980AF5041A6FE67A971D15441C8A1BE0980AF5041D31D071371D15441254EAF987DAF5041D91CA74170D154411ED0E42A7FAF5041E77955F773D1544115A5EF8483AF5041D50C27127ED154414194560487AF50413C41493186D15441CD1897D488AF5041A0F4495F8AD15441A205A3978AAF5041A9A49E7E8ED15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276796 - 2933165
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000020000000103000000010000001E000000B81E851B03AF5041E17A14FE55D0544152B81E7504AF5041E17A14FE53D054419A9999D905AF5041F6285C4F52D054417B14AED7FCAE504152B81E3546D0544152B81EC5F3AE50415C8FC2853BD05441C3F5284CEFAE50417B14AE3737D0544100000000E7AE50415C8FC2752FD05441AE47E12AD5AE50411F85EB711ED05441295C8F42D3AE50413D0AD7131FD0544148E17A34C8AE5041713D0A373DD05441E17A14DEC1AE5041D7A3707D4ED05441B81E855BBEAE5041EC51B80E58D05441F6285CFFC8AE50410AD7A3A05DD05441CDCCCCACCEAE5041EC51B80E60D0544100000080D4AE50415C8FC22562D0544133333343ECAE5041B81E85DB69D05441666666C6F2AE504148E17A646CD0544185EB51F8F8AE504185EB51186FD0544114AE4701FFAE504148E17A7472D054418FC2F5680EAF50419A9999997BD054418FC2F55812AF5041295C8F8277D05441000000C016AF50411F85EB516DD054413D0AD7F30EAF50410AD7A3905FD05441000000100BAF50419A9999B958D054419A9999B909AF5041AE47E1BA59D054417B14AEE708AF5041666666F65AD054415C8FC2B508AF5041295C8F325CD05441295C8F8206AF50415C8FC2E55AD054411F85EB0105AF504152B81E6559D05441B81E851B03AF5041E17A14FE55D05441010300000001000000150000001F85EBF1BBAE50413D0AD7035FD054418FC2F548C7AE50413D0AD70364D05441F6285CBFD2AE5041E17A14CE68D0544152B81E55DEAE5041AE47E19A6CD05441C3F5289CEAAE50418FC2F5786FD054417B14AEB7F0AE50418FC2F59871D05441A4703D9AF6AE5041F6285C3F74D0544133333363FCAE504114AE472177D05441295C8FD201AF50415C8FC2657AD054415C8FC2E50BAF5041B81E85AB80D05441E17A141E0DAF5041000000607CD05441A4703D8AFEAE50419A99994973D0544100000090F8AE50411F85EB1170D05441E17A146EF2AE50413D0AD7436DD0544133333303ECAE50419A9999A96AD05441F6285C3FD4AE5041C3F528FC62D0544114AE4761CEAE504185EB51D860D0544114AE47A1C8AE50410AD7A3605ED05441295C8F92BDAE5041AE47E1CA58D05441AE47E19ABBAE50410AD7A3D05DD054411F85EBF1BBAE50413D0AD7035FD05441
+</a>
+
+<b>
+0106000000010000000103000000010000002B0000004A334DD1C1AE50416B1ADBAB4ED0544152B81EC5CEAE504114AE47B153D0544133333323E8AE5041295C8F325DD05441C3F5280CF6AE50413D0AD7F363D05441D7A3704DFDAE504148E17AF467D0544152B81EB504AF504185EB51286CD0544126DFBD3E0CAF504136813C9C70D05441FAD1558312AF50414436D45374D0544152F88F1013AF5041F517451773D05441333333F314AF5041E17A14AE6ED05441E6320ACE14AF5041ADE873036DD054410AD7A3B014AF50411F85EBB16BD054410AD7A3F00DAF5041B81E85CB5FD05441A4703D9A0CAF50418FC2F5685ED054415C8FC2B508AF5041295C8F325CD054419F570F1609AF5041FE61A3F65AD054415C084FC009AF5041F01B37D559D05441F41D0B390AAF5041E3D5818059D05441AC7A412B09AF5041BF76F7B757D05441F703F54D07AF50415D6BFF8F54D054411F85EB7106AF5041B81E851B53D0544191D6257704AF50411CDFB87250D0544170FCF27002AF5041EEF292BA4DD054410C23611D01AF50413F6065F24BD05441C3E7ACF8FDAE504154425BB947D054410610CFE9FCAE5041404C366D46D05441858F4934FCAE5041F70EA08E45D05441C1DF671DFAAE504198F0BCFE42D05441E96358C3F7AE5041019FAB3940D0544175B492A7F6AE5041DB4276EB3ED0544169829D04F4AE50419C648AD03BD0544130C784CAF2AE5041CC408B943AD054419B3E7C89EFAE5041C368B57237D05441201C8922EBAE50415900685333D05441EB6902ECE8AE5041C1C26A4831D05441CA853F23E1AE50413CB8CEDD29D054414BDD56A6DCAE50412B83919525D05441068F5340D8AE50413AF42C6321D05441B11AED1CD5AE5041BF008C761ED05441E1CA523FD3AE50412BD5A91C1FD05441F97C2C0ED0AE5041964F54D027D05441CFC05830CAAE504125F585CE37D054414A334DD1C1AE50416B1ADBAB4ED05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276796 - 3788383
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000020000000103000000010000001E000000B81E851B03AF5041E17A14FE55D0544152B81E7504AF5041E17A14FE53D054419A9999D905AF5041F6285C4F52D054417B14AED7FCAE504152B81E3546D0544152B81EC5F3AE50415C8FC2853BD05441C3F5284CEFAE50417B14AE3737D0544100000000E7AE50415C8FC2752FD05441AE47E12AD5AE50411F85EB711ED05441295C8F42D3AE50413D0AD7131FD0544148E17A34C8AE5041713D0A373DD05441E17A14DEC1AE5041D7A3707D4ED05441B81E855BBEAE5041EC51B80E58D05441F6285CFFC8AE50410AD7A3A05DD05441CDCCCCACCEAE5041EC51B80E60D0544100000080D4AE50415C8FC22562D0544133333343ECAE5041B81E85DB69D05441666666C6F2AE504148E17A646CD0544185EB51F8F8AE504185EB51186FD0544114AE4701FFAE504148E17A7472D054418FC2F5680EAF50419A9999997BD054418FC2F55812AF5041295C8F8277D05441000000C016AF50411F85EB516DD054413D0AD7F30EAF50410AD7A3905FD05441000000100BAF50419A9999B958D054419A9999B909AF5041AE47E1BA59D054417B14AEE708AF5041666666F65AD054415C8FC2B508AF5041295C8F325CD05441295C8F8206AF50415C8FC2E55AD054411F85EB0105AF504152B81E6559D05441B81E851B03AF5041E17A14FE55D05441010300000001000000150000001F85EBF1BBAE50413D0AD7035FD054418FC2F548C7AE50413D0AD70364D05441F6285CBFD2AE5041E17A14CE68D0544152B81E55DEAE5041AE47E19A6CD05441C3F5289CEAAE50418FC2F5786FD054417B14AEB7F0AE50418FC2F59871D05441A4703D9AF6AE5041F6285C3F74D0544133333363FCAE504114AE472177D05441295C8FD201AF50415C8FC2657AD054415C8FC2E50BAF5041B81E85AB80D05441E17A141E0DAF5041000000607CD05441A4703D8AFEAE50419A99994973D0544100000090F8AE50411F85EB1170D05441E17A146EF2AE50413D0AD7436DD0544133333303ECAE50419A9999A96AD05441F6285C3FD4AE5041C3F528FC62D0544114AE4761CEAE504185EB51D860D0544114AE47A1C8AE50410AD7A3605ED05441295C8F92BDAE5041AE47E1CA58D05441AE47E19ABBAE50410AD7A3D05DD054411F85EBF1BBAE50413D0AD7035FD05441
+</a>
+
+<b>
+0106000000010000000103000000010000002B0000004A334DD1C1AE50416B1ADBAB4ED0544152B81EC5CEAE504114AE47B153D0544133333323E8AE5041295C8F325DD05441C3F5280CF6AE50413D0AD7F363D05441D7A3704DFDAE504148E17AF467D0544152B81EB504AF504185EB51286CD0544126DFBD3E0CAF504136813C9C70D05441FAD1558312AF50414436D45374D0544152F88F1013AF5041F517451773D05441333333F314AF5041E17A14AE6ED05441E6320ACE14AF5041ADE873036DD054410AD7A3B014AF50411F85EBB16BD054410AD7A3F00DAF5041B81E85CB5FD05441A4703D9A0CAF50418FC2F5685ED054415C8FC2B508AF5041295C8F325CD054419F570F1609AF5041FE61A3F65AD054415C084FC009AF5041F01B37D559D05441F41D0B390AAF5041E3D5818059D05441AC7A412B09AF5041BF76F7B757D05441F703F54D07AF50415D6BFF8F54D054411F85EB7106AF5041B81E851B53D0544191D6257704AF50411CDFB87250D0544170FCF27002AF5041EEF292BA4DD054410C23611D01AF50413F6065F24BD05441C3E7ACF8FDAE504154425BB947D054410610CFE9FCAE5041404C366D46D05441858F4934FCAE5041F70EA08E45D05441C1DF671DFAAE504198F0BCFE42D05441E96358C3F7AE5041019FAB3940D0544175B492A7F6AE5041DB4276EB3ED0544169829D04F4AE50419C648AD03BD0544130C784CAF2AE5041CC408B943AD054419B3E7C89EFAE5041C368B57237D05441201C8922EBAE50415900685333D05441EB6902ECE8AE5041C1C26A4831D05441CA853F23E1AE50413CB8CEDD29D054414BDD56A6DCAE50412B83919525D05441068F5340D8AE50413AF42C6321D05441B11AED1CD5AE5041BF008C761ED05441E1CA523FD3AE50412BD5A91C1FD05441F97C2C0ED0AE5041964F54D027D05441CFC05830CAAE504125F585CE37D054414A334DD1C1AE50416B1ADBAB4ED05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276839 - 2931554
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000022000000A4703D6A0BAF5041D7A3701DC1D25441000000200CAF5041C3F5285CBFD254419A99990913AF50418FC2F548BDD25441F6285C7F1EAF50411F85EB61B8D25441D7A370FD20AF5041AE47E1EAC0D2544148E17A3422AF5041C3F5287CC1D254410AD7A3C02EAF5041EC51B83EBCD25441EC51B8EE36AF50415C8FC235B8D254410000007040AF504100000020B4D254411F85EB8149AF5041C3F528BCB0D25441E17A144E4AAF5041EC51B82EAFD2544148E17A6449AF504148E17AE4ABD254415C8FC2A544AF5041EC51B85E9ED25441C3F528CC47AF50419A9999E99AD25441F6285C7F47AF5041AE47E10A99D25441C3F5287C41AF50411F85EBF194D25441666666B63EAF50415C8FC2C592D25441E17A145E33AF504152B81E7588D25441F6285C7F31AF5041F6285C6F88D25441AE47E15A2AAF5041C3F5287C90D254419A99998925AF5041C3F5284C94D2544114AE47F11DAF5041713D0A7799D254417B14AE3715AF5041AE47E1CA9ED25441D7A3702D09AF5041C3F5285CA8D254419A99996900AF5041CDCCCC7CADD25441B81E855BE7AE5041713D0AA7BDD25441A4703D5AE9AE50418FC2F5B8BED254418FC2F508EFAE5041713D0AE7BFD25441EC51B8CEEDAE50417B14AE37C4D254413D0AD7B3EDAE504100000030C5D254410AD7A370EDAE50415C8FC255C7D254413D0AD753FBAE50411F85EB11D0D254410AD7A320FDAE5041F6285C5FCBD25441A4703D6A0BAF5041D7A3701DC1D25441
+</a>
+
+<b>
+010600000001000000010300000001000000250000005F12A14811AF5041E6D5EFF5A1D25441AD20FE3F0EAF5041FD3D4654A4D25441EE6296A009AF5041E9ADA800A8D254413D22EA3809AF5041D776685FA8D25441013E4F9106AF504199B003E3A9D25441BC6C224304AF50418AE0433CABD25441C97C363F01AF5041FD4BD6FFACD25441C242370900AF5041A90BFEBAADD25441A70232BBFCAE5041BA38E4DCAFD254416DDFA5A5F9AE5041E4DE59DAB1D2544166BF0BA2F3AE5041CE1DD8BEB5D2544129ECA000ECAE5041D599B5A8BAD2544129ECA000ECAE5041D47AC3ABBAD25441A1AFEA2FECAE5041641AB4C6BAD25441420BE463EEAE504115EC39EDBBD2544101C88372F1AE5041C8C3AF37BDD254418A5D957FF7AE50417F42C51BBFD254411E24994EFBAE5041E73EF33DC0D254413FC61A2AFEAE5041BD19D8BCC0D2544195E9C0E700AF504188F4BC3BC1D2544156C866EA03AF5041AC8DF180C1D2544160F91E8305AF50416512FD6FC1D25441923A057508AF5041FAF60500C1D25441B806345A0AAF504103DE5754C0D25441000000200CAF5041C3F5285CBFD25441F7BEE5F010AF50419A9E2AE2BDD25441519F853B11AF50412B9EE18CBDD25441D5E18D5013AF504111DD58A2BCD254413395D30A16AF5041D9DB7DA2BBD25441A41247321EAF50416725F311B8D25441AB4D33EB21AF5041A462CE66B5D25441DB6FAD2828AF50415533489AAFD2544100E58E0B2AAF5041FE5341C6ADD25441A4FD2ED426AF5041D4A0834FACD25441C5C65D6D1FAF5041D7DCB0C3A8D2544147640E9518AF5041B5C70987A5D254415F12A14811AF5041E6D5EFF5A1D25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276839 - 3440527
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000022000000A4703D6A0BAF5041D7A3701DC1D25441000000200CAF5041C3F5285CBFD254419A99990913AF50418FC2F548BDD25441F6285C7F1EAF50411F85EB61B8D25441D7A370FD20AF5041AE47E1EAC0D2544148E17A3422AF5041C3F5287CC1D254410AD7A3C02EAF5041EC51B83EBCD25441EC51B8EE36AF50415C8FC235B8D254410000007040AF504100000020B4D254411F85EB8149AF5041C3F528BCB0D25441E17A144E4AAF5041EC51B82EAFD2544148E17A6449AF504148E17AE4ABD254415C8FC2A544AF5041EC51B85E9ED25441C3F528CC47AF50419A9999E99AD25441F6285C7F47AF5041AE47E10A99D25441C3F5287C41AF50411F85EBF194D25441666666B63EAF50415C8FC2C592D25441E17A145E33AF504152B81E7588D25441F6285C7F31AF5041F6285C6F88D25441AE47E15A2AAF5041C3F5287C90D254419A99998925AF5041C3F5284C94D2544114AE47F11DAF5041713D0A7799D254417B14AE3715AF5041AE47E1CA9ED25441D7A3702D09AF5041C3F5285CA8D254419A99996900AF5041CDCCCC7CADD25441B81E855BE7AE5041713D0AA7BDD25441A4703D5AE9AE50418FC2F5B8BED254418FC2F508EFAE5041713D0AE7BFD25441EC51B8CEEDAE50417B14AE37C4D254413D0AD7B3EDAE504100000030C5D254410AD7A370EDAE50415C8FC255C7D254413D0AD753FBAE50411F85EB11D0D254410AD7A320FDAE5041F6285C5FCBD25441A4703D6A0BAF5041D7A3701DC1D25441
+</a>
+
+<b>
+010600000001000000010300000001000000250000005F12A14811AF5041E6D5EFF5A1D25441AD20FE3F0EAF5041FD3D4654A4D25441EE6296A009AF5041E9ADA800A8D254413D22EA3809AF5041D776685FA8D25441013E4F9106AF504199B003E3A9D25441BC6C224304AF50418AE0433CABD25441C97C363F01AF5041FD4BD6FFACD25441C242370900AF5041A90BFEBAADD25441A70232BBFCAE5041BA38E4DCAFD254416DDFA5A5F9AE5041E4DE59DAB1D2544166BF0BA2F3AE5041CE1DD8BEB5D2544129ECA000ECAE5041D599B5A8BAD2544129ECA000ECAE5041D47AC3ABBAD25441A1AFEA2FECAE5041641AB4C6BAD25441420BE463EEAE504115EC39EDBBD2544101C88372F1AE5041C8C3AF37BDD254418A5D957FF7AE50417F42C51BBFD254411E24994EFBAE5041E73EF33DC0D254413FC61A2AFEAE5041BD19D8BCC0D2544195E9C0E700AF504188F4BC3BC1D2544156C866EA03AF5041AC8DF180C1D2544160F91E8305AF50416512FD6FC1D25441923A057508AF5041FAF60500C1D25441B806345A0AAF504103DE5754C0D25441000000200CAF5041C3F5285CBFD25441F7BEE5F010AF50419A9E2AE2BDD25441519F853B11AF50412B9EE18CBDD25441D5E18D5013AF504111DD58A2BCD254413395D30A16AF5041D9DB7DA2BBD25441A41247321EAF50416725F311B8D25441AB4D33EB21AF5041A462CE66B5D25441DB6FAD2828AF50415533489AAFD2544100E58E0B2AAF5041FE5341C6ADD25441A4FD2ED426AF5041D4A0834FACD25441C5C65D6D1FAF5041D7DCB0C3A8D2544147640E9518AF5041B5C70987A5D254415F12A14811AF5041E6D5EFF5A1D25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276856 - 2931636
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000001000000190000001F85EBA110B0504152B81EF553D254419A99992918B0504114AE473162D2544114AE47B11EB05041000000A06CD25441F6285C5F25B050411F85EBA172D254418FC2F5882AB050417B14AE7778D2544152B81E6530B050417B14AE177CD25441E17A14EE34B050417B14AE377ED254417B14AEC735B05041A4703D9A84D25441E17A148E37B050419A9999F98DD254418FC2F5883AB05041AE47E16A92D25441000000E040B05041EC51B86E9AD254411F85EB9143B05041E17A14BE9DD25441E17A145E51B05041B81E859B5AD254415C8FC2A550B050410000006059D25441D7A3706D48B05041E17A14FE56D25441C3F5285C36B050413333330351D25441AE47E1DA32B05041333333434FD25441A4703D1A2CB05041666666F64AD254413D0AD72325B0504114AE475147D2544148E17A6416B0504148E17A3445D2544185EB51F80EB05041CDCCCC0C45D2544114AE47410EB05041C3F528BC45D25441333333F30BB05041000000C046D254418FC2F5180BB050415C8FC2D548D254411F85EBA110B0504152B81EF553D25441
+</a>
+
+<b>
+01060000000100000001030000000100000027000000B4A9264248B0504162CF2B5A85D254415B48559348B050413B9D586785D25441D8AA302449B05041DBB439A282D2544116D83CC34AB05041659BB6BE7AD25441E0DAC8D94EB05041A5E17DDA66D254415E47AA5C51B05041450C5D9C5AD254410EE6E81651B05041CBF8C38D5AD2544134C9E1E250B05041288E690F5AD254410DEDE4094EB05041A0F9EDDB59D25441ECB51A5A4AB05041EB51BE9459D254410D3321B344B0504151C0CBB158D2544163468B8D42B05041678F197258D254414791076E40B05041D7C1F95458D25441ABFD12A83DB0504145C753AD58D25441364B2AD33BB05041B38BDD1D59D2544170CAF6D539B05041968A60CE59D254410483B14D37B05041DA8561E75AD25441D4FEF0CC34B05041FB2E20FD5BD25441818692D032B0504153010DFE5CD254414B69C6FA2BB05041383BAEFB61D254414B778B5A2AB05041F0944B4E64D25441EF0D2EC928B050411445903567D2544101825AFC26B05041A9C499816BD254419D57A1A824B05041204D610372D25441F6285C5F25B050411F85EBA172D254417253060128B05041422E579B75D254411D987BC82AB0504168A9F99E78D25441BC2BBFAD2CB05041EAEC28CB79D25441ED408CAC2FB05041C4E880A57BD254410A597F1B32B050418D0A18E57CD2544176E8A29A34B05041EC8594107ED254416D2773623CB050411F2FE24781D254418BEFA0723FB0504132FD1F8A82D2544152EE1DA440B0504157A6A80783D25441A376AF0142B05041F347468183D254419414C23B44B05041D64D183284D25441EA0EE6FD45B050411B21EFC084D25441CFFAADB746B05041F949CEF984D25441B4A9264248B0504162CF2B5A85D25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276856 - 3377342
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000001000000190000001F85EBA110B0504152B81EF553D254419A99992918B0504114AE473162D2544114AE47B11EB05041000000A06CD25441F6285C5F25B050411F85EBA172D254418FC2F5882AB050417B14AE7778D2544152B81E6530B050417B14AE177CD25441E17A14EE34B050417B14AE377ED254417B14AEC735B05041A4703D9A84D25441E17A148E37B050419A9999F98DD254418FC2F5883AB05041AE47E16A92D25441000000E040B05041EC51B86E9AD254411F85EB9143B05041E17A14BE9DD25441E17A145E51B05041B81E859B5AD254415C8FC2A550B050410000006059D25441D7A3706D48B05041E17A14FE56D25441C3F5285C36B050413333330351D25441AE47E1DA32B05041333333434FD25441A4703D1A2CB05041666666F64AD254413D0AD72325B0504114AE475147D2544148E17A6416B0504148E17A3445D2544185EB51F80EB05041CDCCCC0C45D2544114AE47410EB05041C3F528BC45D25441333333F30BB05041000000C046D254418FC2F5180BB050415C8FC2D548D254411F85EBA110B0504152B81EF553D25441
+</a>
+
+<b>
+01060000000100000001030000000100000027000000B4A9264248B0504162CF2B5A85D254415B48559348B050413B9D586785D25441D8AA302449B05041DBB439A282D2544116D83CC34AB05041659BB6BE7AD25441E0DAC8D94EB05041A5E17DDA66D254415E47AA5C51B05041450C5D9C5AD254410EE6E81651B05041CBF8C38D5AD2544134C9E1E250B05041288E690F5AD254410DEDE4094EB05041A0F9EDDB59D25441ECB51A5A4AB05041EB51BE9459D254410D3321B344B0504151C0CBB158D2544163468B8D42B05041678F197258D254414791076E40B05041D7C1F95458D25441ABFD12A83DB0504145C753AD58D25441364B2AD33BB05041B38BDD1D59D2544170CAF6D539B05041968A60CE59D254410483B14D37B05041DA8561E75AD25441D4FEF0CC34B05041FB2E20FD5BD25441818692D032B0504153010DFE5CD254414B69C6FA2BB05041383BAEFB61D254414B778B5A2AB05041F0944B4E64D25441EF0D2EC928B050411445903567D2544101825AFC26B05041A9C499816BD254419D57A1A824B05041204D610372D25441F6285C5F25B050411F85EBA172D254417253060128B05041422E579B75D254411D987BC82AB0504168A9F99E78D25441BC2BBFAD2CB05041EAEC28CB79D25441ED408CAC2FB05041C4E880A57BD254410A597F1B32B050418D0A18E57CD2544176E8A29A34B05041EC8594107ED254416D2773623CB050411F2FE24781D254418BEFA0723FB0504132FD1F8A82D2544152EE1DA440B0504157A6A80783D25441A376AF0142B05041F347468183D254419414C23B44B05041D64D183284D25441EA0EE6FD45B050411B21EFC084D25441CFFAADB746B05041F949CEF984D25441B4A9264248B0504162CF2B5A85D25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276903 - 2932142
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001E0000001F85EB5127AC50415C8FC28568D45441EC51B82E24AC5041F6285C2F68D454410AD7A32021AC50418FC2F56867D45441D7A370FD1BAC5041F6285C3F65D4544148E17AB419AC50418FC2F50864D4544152B81E150AAC504148E17AA489D454415C8FC2750AAC50415C8FC2B589D4544148E17AF40CAC50415C8FC2E589D454416666665615AC504185EB51A88AD45441CDCCCC8C1DAC5041C3F528FC7ED45441C3F528CC22AC5041666666767AD4544148E17A4425AC5041A4703D7A7BD454418FC2F5B81EAC5041B81E853B8BD454413D0AD74322AC50417B14AE078BD4544185EB51D82BAC50411F85EB8189D45441000000C037AC50410000006085D45441D7A3706D3BAC50415C8FC2357FD45441713D0AE73AAC5041F6285C7F7BD45441C3F5286C3DAC5041EC51B8AE72D454418FC2F5583FAC50410AD7A36070D45441D7A370ED43AC504114AE47F16CD45441EC51B87E45AC504152B81EC568D45441295C8F6246AC5041713D0AC761D45441B81E851B45AC50410AD7A3B060D454413D0AD76341AC504148E17A8461D454411F85EBA13CAC5041A4703DAA63D45441B81E85FB35AC50417B14AE5767D454415C8FC26532AC5041295C8F7268D45441F6285CCF2DAC50419A9999C968D454411F85EB5127AC50415C8FC28568D45441
+</a>
+
+<b>
+0106000000010000000103000000010000002B00000036A365BD2AAC50414E86EAAB89D4544185EB51D82BAC50411F85EB8189D45441A3C46AE231AC504160EB3B6987D45441D18AF7BE37AC50413EEA3B5485D4544136E7D3C538AC5041EDFA219E83D4544107CE73093BAC5041B15D61DD7FD4544118D646373BAC504121578F907FD45441F79368673BAC5041179905367FD45441EC735A5E3BAC5041186113CB7ED4544170ABD74A3BAC504181201B417ED454414A725A163BAC50413FC3EECD7CD45441512429FA3AAC5041DB1B92067CD45441DC9EF5EB3AAC5041ADD3266E7BD4544136D5DD7B3BAC5041F32DC37679D454414834A3E33CAC5041D81E478C74D454412860A76F3DAC50412454069772D45441361BF2353FAC504135F1908A70D45441906678673FAC5041735D8A5270D4544102796DCB40AC5041E127BA406FD454413674B7A142AC5041CD9112EA6DD454415A67F6EA43AC5041676BD0EB6CD45441636625ED44AC5041E4DC9E486AD454411DCB348045AC5041400DE5CA68D454412BEA5C8845AC5041FF9B5B7968D45441A476A92146AC5041F154EDC463D4544141F7836046AC5041513261C761D45441D7FFCC1C45AC50410D3B71B460D45441BD32B76F41AC504195E77C7F61D45441AD9092E13EAC5041330E65A662D45441E47B208F3CAC504180188BB363D454419EC62E7A3AAC504173D85ADB64D45441F68649BF38AC50414C8747D065D45441DB37730037AC5041BE3A62C766D454411788570E36AC50410835825667D4544167EBD89C35AC5041915FDC7467D454418E196E5034AC5041464652DB67D45441B4944E5C32AC50413A4F007668D45441B7E6CFF731AC5041146FB57A68D45441171A4D2E30AC5041BCEC9D9C68D45441868E31332EAC5041FBD167C568D45441CADE314D2DAC5041D6C424C868D45441BB3F3AF737AC5041727DE1EA6DD4544136A365BD2AAC50414E86EAAB89D45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276903 - 3768881
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001E0000001F85EB5127AC50415C8FC28568D45441EC51B82E24AC5041F6285C2F68D454410AD7A32021AC50418FC2F56867D45441D7A370FD1BAC5041F6285C3F65D4544148E17AB419AC50418FC2F50864D4544152B81E150AAC504148E17AA489D454415C8FC2750AAC50415C8FC2B589D4544148E17AF40CAC50415C8FC2E589D454416666665615AC504185EB51A88AD45441CDCCCC8C1DAC5041C3F528FC7ED45441C3F528CC22AC5041666666767AD4544148E17A4425AC5041A4703D7A7BD454418FC2F5B81EAC5041B81E853B8BD454413D0AD74322AC50417B14AE078BD4544185EB51D82BAC50411F85EB8189D45441000000C037AC50410000006085D45441D7A3706D3BAC50415C8FC2357FD45441713D0AE73AAC5041F6285C7F7BD45441C3F5286C3DAC5041EC51B8AE72D454418FC2F5583FAC50410AD7A36070D45441D7A370ED43AC504114AE47F16CD45441EC51B87E45AC504152B81EC568D45441295C8F6246AC5041713D0AC761D45441B81E851B45AC50410AD7A3B060D454413D0AD76341AC504148E17A8461D454411F85EBA13CAC5041A4703DAA63D45441B81E85FB35AC50417B14AE5767D454415C8FC26532AC5041295C8F7268D45441F6285CCF2DAC50419A9999C968D454411F85EB5127AC50415C8FC28568D45441
+</a>
+
+<b>
+0106000000010000000103000000010000002B00000036A365BD2AAC50414E86EAAB89D4544185EB51D82BAC50411F85EB8189D45441A3C46AE231AC504160EB3B6987D45441D18AF7BE37AC50413EEA3B5485D4544136E7D3C538AC5041EDFA219E83D4544107CE73093BAC5041B15D61DD7FD4544118D646373BAC504121578F907FD45441F79368673BAC5041179905367FD45441EC735A5E3BAC5041186113CB7ED4544170ABD74A3BAC504181201B417ED454414A725A163BAC50413FC3EECD7CD45441512429FA3AAC5041DB1B92067CD45441DC9EF5EB3AAC5041ADD3266E7BD4544136D5DD7B3BAC5041F32DC37679D454414834A3E33CAC5041D81E478C74D454412860A76F3DAC50412454069772D45441361BF2353FAC504135F1908A70D45441906678673FAC5041735D8A5270D4544102796DCB40AC5041E127BA406FD454413674B7A142AC5041CD9112EA6DD454415A67F6EA43AC5041676BD0EB6CD45441636625ED44AC5041E4DC9E486AD454411DCB348045AC5041400DE5CA68D454412BEA5C8845AC5041FF9B5B7968D45441A476A92146AC5041F154EDC463D4544141F7836046AC5041513261C761D45441D7FFCC1C45AC50410D3B71B460D45441BD32B76F41AC504195E77C7F61D45441AD9092E13EAC5041330E65A662D45441E47B208F3CAC504180188BB363D454419EC62E7A3AAC504173D85ADB64D45441F68649BF38AC50414C8747D065D45441DB37730037AC5041BE3A62C766D454411788570E36AC50410835825667D4544167EBD89C35AC5041915FDC7467D454418E196E5034AC5041464652DB67D45441B4944E5C32AC50413A4F007668D45441B7E6CFF731AC5041146FB57A68D45441171A4D2E30AC5041BCEC9D9C68D45441868E31332EAC5041FBD167C568D45441CADE314D2DAC5041D6C424C868D45441BB3F3AF737AC5041727DE1EA6DD4544136A365BD2AAC50414E86EAAB89D45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276937 - 2939636
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000001300000048E17A04B6AC5041295C8F5272CF544114AE47C1B9AC504114AE471170CF5441B81E853BBFAC5041CDCCCC1C6DCF5441C3F528ACB6AC5041AE47E13A31CF544152B81E65A9AC50417B14AE073BCF544148E17A84A5AC504148E17AE43DCF54413D0AD703A3AC5041D7A370BD3FCF5441AE47E19AA1AC50417B14AEC740CF54410AD7A360A1AC50418FC2F58841CF5441CDCCCCCCA0AC50413333337343CF5441E17A14AE9FAC50417B14AE4744CF5441713D0AE7A1AC50417B14AE674ACF54411F85EB91A2AC5041EC51B88E4DCF5441295C8FD2A2AC50410AD7A3C04ECF5441E17A14EEA3AC50411F85EB6155CF5441E17A149EA7AC504148E17A2471CF544114AE4751ABAC504185EB511870CF5441CDCCCC4CB4AC504114AE47216DCF544148E17A04B6AC5041295C8F5272CF5441
+</a>
+
+<b>
+010600000001000000010300000001000000180000007FCD851EB0AC5041643BDF7F52CF5441EE531FD4ACAC5041928E9C4C51CF5441874FB3C1A9AC50418AD4C42D50CF5441FA5A69A3A3AC5041377279F24DCF5441BFF75099A2AC504169FE27904DCF54415AA88E99A2AC5041D97181914DCF5441ADDC1EFCA2AC50411FC070B94FCF544157B810B8A3AC50416F3E901E54CF5441E17A14EEA3AC50411F85EB6155CF5441FCBFBEA0A4AC5041006BEFA25ACF5441D246FA0CA5AC5041956FB9D15DCF5441B67420D1A5AC50410A965C9663CF54411926616DA6AC5041E639A72E68CF5441D09F54A9A7AC5041EEDC8A2E71CF5441AFAFF58BAAAC5041F618AC4970CF544120651244B4AC504163DAB3EF6CCF5441837F9624B3AC50419CC3BD8E66CF5441C777B3B5B2AC50411F44E21864CF544150D27637B2AC50414BD5D54B61CF5441CE7A5CAFB1AC504184FDBE465ECF5441D0D27864B1AC5041C414B2375CCF5441FE383DE0B0AC50411C1E6C4658CF54411370BB8EB0AC50412A0451D855CF54417FCD851EB0AC5041643BDF7F52CF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>276937 - 3345039
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000001300000048E17A04B6AC5041295C8F5272CF544114AE47C1B9AC504114AE471170CF5441B81E853BBFAC5041CDCCCC1C6DCF5441C3F528ACB6AC5041AE47E13A31CF544152B81E65A9AC50417B14AE073BCF544148E17A84A5AC504148E17AE43DCF54413D0AD703A3AC5041D7A370BD3FCF5441AE47E19AA1AC50417B14AEC740CF54410AD7A360A1AC50418FC2F58841CF5441CDCCCCCCA0AC50413333337343CF5441E17A14AE9FAC50417B14AE4744CF5441713D0AE7A1AC50417B14AE674ACF54411F85EB91A2AC5041EC51B88E4DCF5441295C8FD2A2AC50410AD7A3C04ECF5441E17A14EEA3AC50411F85EB6155CF5441E17A149EA7AC504148E17A2471CF544114AE4751ABAC504185EB511870CF5441CDCCCC4CB4AC504114AE47216DCF544148E17A04B6AC5041295C8F5272CF5441
+</a>
+
+<b>
+010600000001000000010300000001000000180000007FCD851EB0AC5041643BDF7F52CF5441EE531FD4ACAC5041928E9C4C51CF5441874FB3C1A9AC50418AD4C42D50CF5441FA5A69A3A3AC5041377279F24DCF5441BFF75099A2AC504169FE27904DCF54415AA88E99A2AC5041D97181914DCF5441ADDC1EFCA2AC50411FC070B94FCF544157B810B8A3AC50416F3E901E54CF5441E17A14EEA3AC50411F85EB6155CF5441FCBFBEA0A4AC5041006BEFA25ACF5441D246FA0CA5AC5041956FB9D15DCF5441B67420D1A5AC50410A965C9663CF54411926616DA6AC5041E639A72E68CF5441D09F54A9A7AC5041EEDC8A2E71CF5441AFAFF58BAAAC5041F618AC4970CF544120651244B4AC504163DAB3EF6CCF5441837F9624B3AC50419CC3BD8E66CF5441C777B3B5B2AC50411F44E21864CF544150D27637B2AC50414BD5D54B61CF5441CE7A5CAFB1AC504184FDBE465ECF5441D0D27864B1AC5041C414B2375CCF5441FE383DE0B0AC50411C1E6C4658CF54411370BB8EB0AC50412A0451D855CF54417FCD851EB0AC5041643BDF7F52CF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277005 - 2927359
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000001000000260000001F85EB61D3AC5041EC51B84EB5CE544133333323A9AC504152B81EE5B8CE54417B14AE678CAC504133333393BBCE5441A4703D4A7FAC5041295C8F52BDCE54413D0AD7337FAC5041713D0A37BECE54410AD7A3707EAC5041D7A370FDC5CE544148E17AF47AAC5041B81E859BDECE5441295C8F827BAC5041F6285C9FE0CE5441EC51B8EE80AC5041D7A3700DE2CE54413D0AD7A396AC5041B81E85ABE4CE5441F6285CAFA7AC5041AE47E1DAE6CE5441AE47E12AAAAC5041C3F5280CE7CE544152B81E65ACAC5041B81E859BE6CE544114AE47F1ACAC504133333383DCCE544148E17AC4B8AC5041B81E851BDBCE5441C3F5281CC9AC5041EC51B83EDCCE5441B81E852BCFAC5041F6285CFFDCCE5441295C8F12D3AC50419A9999D9C4CE5441EC51B81ED3AC5041AE47E1AAC3CE5441AE47E11AD4AC5041D7A370DDC3CE544185EB5138D0AC50411F85EB31DDCE5441F6285CFFCAAC5041AE47E17AEECE5441C3F528ECCCAC5041333333B3F1CE5441000000F0CDAC504166666636F2CE544148E17AF4E1AC5041CDCCCC4CDFCE54411F85EB01EDAC5041C3F5285CD4CE5441F6285C0FF4AC504166666606CECE5441E17A147E06AD504185EB5128BDCE54418FC2F50818AD5041EC51B8BEACCE5441B81E85AB16AD50410AD7A360ABCE5441E17A14BE11AD5041C3F5284CACCE5441333333C30CAD5041295C8FE2ABCE54410AD7A330F4AC50415C8FC285A7CE544185EB51B8DCAC50410AD7A3E0A3CE5441713D0AA7DBAC5041A4703D2AA6CE544148E17A54D8AC504148E17A24B3CE544114AE4761D7AC50418FC2F568B4CE54411F85EB61D3AC5041EC51B84EB5CE5441
+</a>
+
+<b>
+010600000001000000010300000001000000330000001F85EB01EDAC5041C3F5285CD4CE544106F96DF7F2AC50413F29F8FDCECE54414DDB541FFEAC5041CFDD14CCC4CE5441AC302C130BAD50419B7C4CDEB8CE5441436FD2F410AD5041021CC353B3CE54418FC2F50818AD5041EC51B8BEACCE5441B81E85AB16AD50410AD7A360ABCE5441E17A14BE11AD5041C3F5284CACCE5441333333C30CAD5041295C8FE2ABCE5441107A99EFF3AC5041ABDAA07EA7CE54413A636611EAAC5041BB2AE4FCA5CE54414158E5B7DCAC50413875BEE3A3CE5441713D0AA7DBAC5041A4703D2AA6CE544148E17A54D8AC504148E17A24B3CE544114AE4761D7AC50418FC2F568B4CE54414DC82D6DD3AC504133EC654CB5CE544110EB344ED3AC5041159C2E50B5CE5441A966D9AECCAC5041EEE394E0B5CE54412D46FB4AC2AC504167D43EC2B6CE544114E200DDABAC5041BB93DCA9B8CE5441FCBEA11491AC504181824F24BBCE54410CEE25C08AAC5041C7461ACABBCE5441789E08E285AC5041272A3E75BCCE544178DC36B47FAC504166847044BDCE54412E3906487FAC50415E062B4BBDCE5441CA4A9A3A7FAC50416135FE24BECE544130491E497FAC504155561B23BECE544126CABA497FAC5041B5F56D1DBECE54418BB1686386AC5041D3AAD436BDCE5441F14A5F398BAC504115062194BCCE5441C94DDC9C99AC50410B3F972CBBCE54418F24E4EA99AC50417F824F24BBCE544106FACBD39AAC504186BD6C16BBCE54414229C467A6AC504197DF7C2FBACE5441A2407437AAAC50416DA26AEBB9CE544110385041ACAC5041D683F3E8BFCE54419B1E4F68ADAC50414404E5C0C2CE5441C44685B8B9AC5041FD6A20BAC1CE54415CFBAA1EBEAC5041A58D1154C1CE54413FD63A6FBEAC5041C1F74056C1CE5441EBEFA189BEAC5041A58D1154C1CE544183AD9C49C3AC5041E6F3F377C1CE5441BACBE845C8AC50411A2B4D1FC2CE5441693D35CECDAC504137DD8598C3CE5441C10EAEFAD2AC5041DFAC62DCC4CE5441E6FEC709D3AC50413B0FE5CBC4CE5441B72FDBEBD3AC50412B2E05D5C3CE54414DD7B6C7DBAC5041013FA2F5C4CE54410F168E34E4AC5041AA8E0C30C6CE54416AAD6E54EDAC50417A76D43AC7CE54411F85EB01EDAC5041C3F5285CD4CE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277005 - 3556138
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000001000000260000001F85EB61D3AC5041EC51B84EB5CE544133333323A9AC504152B81EE5B8CE54417B14AE678CAC504133333393BBCE5441A4703D4A7FAC5041295C8F52BDCE54413D0AD7337FAC5041713D0A37BECE54410AD7A3707EAC5041D7A370FDC5CE544148E17AF47AAC5041B81E859BDECE5441295C8F827BAC5041F6285C9FE0CE5441EC51B8EE80AC5041D7A3700DE2CE54413D0AD7A396AC5041B81E85ABE4CE5441F6285CAFA7AC5041AE47E1DAE6CE5441AE47E12AAAAC5041C3F5280CE7CE544152B81E65ACAC5041B81E859BE6CE544114AE47F1ACAC504133333383DCCE544148E17AC4B8AC5041B81E851BDBCE5441C3F5281CC9AC5041EC51B83EDCCE5441B81E852BCFAC5041F6285CFFDCCE5441295C8F12D3AC50419A9999D9C4CE5441EC51B81ED3AC5041AE47E1AAC3CE5441AE47E11AD4AC5041D7A370DDC3CE544185EB5138D0AC50411F85EB31DDCE5441F6285CFFCAAC5041AE47E17AEECE5441C3F528ECCCAC5041333333B3F1CE5441000000F0CDAC504166666636F2CE544148E17AF4E1AC5041CDCCCC4CDFCE54411F85EB01EDAC5041C3F5285CD4CE5441F6285C0FF4AC504166666606CECE5441E17A147E06AD504185EB5128BDCE54418FC2F50818AD5041EC51B8BEACCE5441B81E85AB16AD50410AD7A360ABCE5441E17A14BE11AD5041C3F5284CACCE5441333333C30CAD5041295C8FE2ABCE54410AD7A330F4AC50415C8FC285A7CE544185EB51B8DCAC50410AD7A3E0A3CE5441713D0AA7DBAC5041A4703D2AA6CE544148E17A54D8AC504148E17A24B3CE544114AE4761D7AC50418FC2F568B4CE54411F85EB61D3AC5041EC51B84EB5CE5441
+</a>
+
+<b>
+010600000001000000010300000001000000330000001F85EB01EDAC5041C3F5285CD4CE544106F96DF7F2AC50413F29F8FDCECE54414DDB541FFEAC5041CFDD14CCC4CE5441AC302C130BAD50419B7C4CDEB8CE5441436FD2F410AD5041021CC353B3CE54418FC2F50818AD5041EC51B8BEACCE5441B81E85AB16AD50410AD7A360ABCE5441E17A14BE11AD5041C3F5284CACCE5441333333C30CAD5041295C8FE2ABCE5441107A99EFF3AC5041ABDAA07EA7CE54413A636611EAAC5041BB2AE4FCA5CE54414158E5B7DCAC50413875BEE3A3CE5441713D0AA7DBAC5041A4703D2AA6CE544148E17A54D8AC504148E17A24B3CE544114AE4761D7AC50418FC2F568B4CE54414DC82D6DD3AC504133EC654CB5CE544110EB344ED3AC5041159C2E50B5CE5441A966D9AECCAC5041EEE394E0B5CE54412D46FB4AC2AC504167D43EC2B6CE544114E200DDABAC5041BB93DCA9B8CE5441FCBEA11491AC504181824F24BBCE54410CEE25C08AAC5041C7461ACABBCE5441789E08E285AC5041272A3E75BCCE544178DC36B47FAC504166847044BDCE54412E3906487FAC50415E062B4BBDCE5441CA4A9A3A7FAC50416135FE24BECE544130491E497FAC504155561B23BECE544126CABA497FAC5041B5F56D1DBECE54418BB1686386AC5041D3AAD436BDCE5441F14A5F398BAC504115062194BCCE5441C94DDC9C99AC50410B3F972CBBCE54418F24E4EA99AC50417F824F24BBCE544106FACBD39AAC504186BD6C16BBCE54414229C467A6AC504197DF7C2FBACE5441A2407437AAAC50416DA26AEBB9CE544110385041ACAC5041D683F3E8BFCE54419B1E4F68ADAC50414404E5C0C2CE5441C44685B8B9AC5041FD6A20BAC1CE54415CFBAA1EBEAC5041A58D1154C1CE54413FD63A6FBEAC5041C1F74056C1CE5441EBEFA189BEAC5041A58D1154C1CE544183AD9C49C3AC5041E6F3F377C1CE5441BACBE845C8AC50411A2B4D1FC2CE5441693D35CECDAC504137DD8598C3CE5441C10EAEFAD2AC5041DFAC62DCC4CE5441E6FEC709D3AC50413B0FE5CBC4CE5441B72FDBEBD3AC50412B2E05D5C3CE54414DD7B6C7DBAC5041013FA2F5C4CE54410F168E34E4AC5041AA8E0C30C6CE54416AAD6E54EDAC50417A76D43AC7CE54411F85EB01EDAC5041C3F5285CD4CE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277086 - 362851
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000019000000AE47E10A62AB50418FC2F5E8C6D054413D0AD74369AB50415C8FC255C3D05441713D0A3772AB50410AD7A3A0BFD0544148E17A3474AB5041EC51B84EBCD054417B14AE5774AB504152B81E35AED054413D0AD73374AB504133333303ADD05441CDCCCC9C6AAB50413D0AD763AFD05441A4703D9A65AB5041C3F5282CB1D05441C3F528DC5CAB5041333333B3B2D054411F85EBC15BAB5041C3F5285CB2D054413D0AD7135BAB50419A9999D9B1D054418FC2F5084BAB5041B81E857BB4D054413D0AD7F341AB5041EC51B83EB5D05441F6285C6F3CAB504148E17A54B5D054416666661637AB504148E17A24B4D05441E17A140E2CAB5041C3F5282CB1D054411F85EBF11CAB504100000040ACD05441295C8FE218AB5041295C8F72AAD05441A4703DCA24AB504133333393B2D05441B81E85FB2AAB5041E17A14CEB6D05441295C8F623CAB5041EC51B88EBED054411F85EBE148AB504133333323C3D05441D7A3706D52AB5041295C8F82C5D05441B81E857B57AB50413D0AD753C6D05441AE47E10A62AB50418FC2F5E8C6D05441
+</a>
+
+<b>
+01060000000100000001030000000100000028000000C4674A3A4BAB504158D16C73B4D054418FC2F5084BAB5041B81E857BB4D054419D434A084BAB50417D84937BB4D05441DF478DD04AAB5041C46F4180B4D054413D0AD7F341AB5041EC51B83EB5D05441F6285C6F3CAB504148E17A54B5D05441A61E917C3BAB5041B755901EB5D0544172CEFC6D3BAB50417583531BB5D0544189C259C337AB5041FFF2E24AB4D054416666661637AB504148E17A24B4D05441E17A140E2CAB5041C3F5282CB1D054411F85EBF11CAB504100000040ACD05441295C8FE218AB5041295C8F72AAD05441A4703DCA24AB504133333393B2D05441951685FB2AAB50414D7514CEB6D054419E424F6D31AB5041281208ADB9D05441745C8F623CAB50410152B88EBED05441AA29A8163DAB5041B97FB8D0BED054411F85EBE148AB504133333323C3D05441559CD1204FAB5041E3149FB0C4D05441B7A3706D52AB5041E95B8F82C5D0544184E4A03854AB50412F09D2CCC5D05441B81E857B57AB50413D0AD753C6D054411733E51E5EAB50417C4794B1C6D05441A347E10A62AB50414FC2F5E8C6D054413CB7BF5C65AB50412A844A44C5D054413D0AD74369AB50415C8FC255C3D05441EA986E5171AB5041890FC1FFBFD054417B3D0A3772AB5041F5D6A3A0BFD0544148E17A3474AB5041EC51B84EBCD054417B14AE5774AB504152B81E35AED054413D0AD73374AB504133333303ADD05441CDCCCC9C6AAB50413D0AD763AFD05441A4703D9A65AB5041C3F5282CB1D05441C3F528DC5CAB5041333333B3B2D054411F85EBC15BAB5041C3F5285CB2D054413D0AD7135BAB50419A9999D9B1D054416647053B50AB50419B6143A1B3D0544137A314294DAB5041AD793B22B4D05441C4674A3A4BAB504158D16C73B4D05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277088 - 2930490
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001600000085EB51C888AF5041A4703DAACAD15441666666E697AF5041CDCCCCACD2D15441F6285CCF9CAF50415C8FC275CED15441A4703D9AA5AF504152B81E95C1D15441666666A6A6AF504100000050BAD154415C8FC225A8AF5041AE47E14AB7D1544114AE4731A8AF5041B81E85CBB2D15441B81E855BAAAF5041AE47E15AADD154415C8FC2B5ABAF5041D7A370CDABD1544152B81EE5AAAF504148E17AC4AAD15441AE47E1DA9FAF504148E17A84A7D154410AD7A3B09CAF5041295C8F52A1D1544114AE47C199AF5041D7A3709D9BD15441333333D391AF5041000000A090D154417B14AE978AAF5041EC51B87E8ED154419A99999979AF5041E17A147E89D15441000000407AAF504114AE47D190D154411F85EBA17AAF5041EC51B82E9CD15441F6285C2F7AAF5041E17A143EA5D154418FC2F5E876AF504100000030C0D1544185EB51D878AF504185EB5138C2D1544185EB51C888AF5041A4703DAACAD15441
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000008FC2F5E876AF504100000030C0D1544185EB51D878AF504185EB5138C2D15441A6FFAD9982AF50410F3F9663C7D154419C0BD41989AF504107005DD5CAD15441A59700F389AF5041F7BD1F2DC3D154416AA8108E8BAF5041616CAFDEB8D15441894BD3388DAF5041C6957D2BAED15441FACB7A6D8FAF50417F5C3603A0D1544102635A0B91AF5041D8B7BBA295D15441451908DD91AF50414F1CA0AD90D15441C5E34A5C8EAF5041A8CADE9A8FD15441C27058F386AF50415C7D5B6C8DD15441A0A268DE80AF5041E1E9F3A18BD15441577B8E127BAF5041FEF710ED89D15441062905A879AF50415E41538289D154414BCEA1D079AF5041FCB83FEA8BD1544185FF103F7AAF50410950C2C690D15441C97C68687AAF5041FF6AE78195D154413441D09F7AAF5041021733F99BD154410597659E7AAF50410DA00C769CD15441B6749F397AAF50410CBF4C6EA4D154414A707E347AAF504171CC3B1BA5D154413165190B7AAF5041EF13866CA6D154418AAD7F9879AF504171C24917AAD1544146159CB878AF5041C7B85449B1D1544100B000C377AF5041D3D60E2EB9D154418FC2F5E876AF504100000030C0D15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277088 - 3752831
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001600000085EB51C888AF5041A4703DAACAD15441666666E697AF5041CDCCCCACD2D15441F6285CCF9CAF50415C8FC275CED15441A4703D9AA5AF504152B81E95C1D15441666666A6A6AF504100000050BAD154415C8FC225A8AF5041AE47E14AB7D1544114AE4731A8AF5041B81E85CBB2D15441B81E855BAAAF5041AE47E15AADD154415C8FC2B5ABAF5041D7A370CDABD1544152B81EE5AAAF504148E17AC4AAD15441AE47E1DA9FAF504148E17A84A7D154410AD7A3B09CAF5041295C8F52A1D1544114AE47C199AF5041D7A3709D9BD15441333333D391AF5041000000A090D154417B14AE978AAF5041EC51B87E8ED154419A99999979AF5041E17A147E89D15441000000407AAF504114AE47D190D154411F85EBA17AAF5041EC51B82E9CD15441F6285C2F7AAF5041E17A143EA5D154418FC2F5E876AF504100000030C0D1544185EB51D878AF504185EB5138C2D1544185EB51C888AF5041A4703DAACAD15441
+</a>
+
+<b>
+0106000000010000000103000000010000001B0000008FC2F5E876AF504100000030C0D1544185EB51D878AF504185EB5138C2D15441A6FFAD9982AF50410F3F9663C7D154419C0BD41989AF504107005DD5CAD15441A59700F389AF5041F7BD1F2DC3D154416AA8108E8BAF5041616CAFDEB8D15441894BD3388DAF5041C6957D2BAED15441FACB7A6D8FAF50417F5C3603A0D1544102635A0B91AF5041D8B7BBA295D15441451908DD91AF50414F1CA0AD90D15441C5E34A5C8EAF5041A8CADE9A8FD15441C27058F386AF50415C7D5B6C8DD15441A0A268DE80AF5041E1E9F3A18BD15441577B8E127BAF5041FEF710ED89D15441062905A879AF50415E41538289D154414BCEA1D079AF5041FCB83FEA8BD1544185FF103F7AAF50410950C2C690D15441C97C68687AAF5041FF6AE78195D154413441D09F7AAF5041021733F99BD154410597659E7AAF50410DA00C769CD15441B6749F397AAF50410CBF4C6EA4D154414A707E347AAF504171CC3B1BA5D154413165190B7AAF5041EF13866CA6D154418AAD7F9879AF504171C24917AAD1544146159CB878AF5041C7B85449B1D1544100B000C377AF5041D3D60E2EB9D154418FC2F5E876AF504100000030C0D15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277398 - 56444
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E000000666666A6C7F75041AE47E1EA5D305541F6285C7FCFF7504152B81EA55E3055417B14AEC7D6F75041666666465F305541295C8F02DFF750411F85EB115B305541666666F6E4F75041EC51B80E58305541295C8F42E9F75041295C8F22563055410AD7A3E0F1F75041E17A142E523055413D0AD713F6F75041295C8FF24F305541EC51B82EF7F750415C8FC2554F305541D7A3700DF8F750418FC2F5984C305541713D0A67FEF75041666666E64030554114AE4791F1F7504152B81ED54730554114AE4781DFF750413D0AD71351305541666666A6C7F75041AE47E1EA5D305541
+</a>
+
+<b>
+010600000001000000010300000001000000110000008855ED99CCF75041008FA1405B305541A34C92B1C7F7504102EFDDE45D30554194F2A675CEF75041C7D57C8C5E305541F6285C7FCFF7504152B81EA55E3055417B14AEC7D6F75041666666465F305541295C8F02DFF750411F85EB115B305541666666F6E4F75041EC51B80E58305541295C8F42E9F75041295C8F225630554174027A64EDF750412F85073D543055418A172A65F6F7504144637BC54F305541EC51B82EF7F750415C8FC2554F305541D7A3700DF8F750418FC2F5984C305541713D0A67FEF75041666666E64030554114AE4791F1F7504152B81ED547305541B2B6C0C8E5F7504107B714DD4D30554145EC4971CDF75041F555B6CC5A3055418855ED99CCF75041008FA1405B305541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277638 - 3177958
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000040000000103000000010000001900000014AE47514FF050417B14AE9796315541AE47E19A56F0504114AE477198315541B81E852B62F05041000000309B3155419A9999296EF050418FC2F5089E3155415C8FC2F579F050415C8FC2D5A031554114AE471186F050415C8FC2B5A3315541713D0A1788F050411F85EB419E3155413D0AD75389F050415C8FC2659B315541AE47E18A7FF050410AD7A32098315541EC51B8FE71F050418FC2F57893315541CDCCCC9C64F05041C3F5283C8F315541CDCCCC3C54F05041F6285C7F8A315541713D0A174DF050410AD7A38088315541B81E85DB45F050417B14AE1786315541E17A144E3FF05041295C8F9283315541AE47E1CA38F050416666667681315541D7A3700D3AF050416666669683315541295C8FD23DF050413D0AD7F38B315541E17A148E41F05041000000B08C31554114AE470144F05041B81E852B8D3155413D0AD76348F0504152B81E358E3155413D0AD7334AF05041333333A38E315541000000A04FF05041CDCCCC3C903155418FC2F5584EF050418FC2F5589631554114AE47514FF050417B14AE97963155410103000000010000001E00000014AE47B15BF050410AD7A3602C31554185EB51E85CF05041666666E62E31554185EB51485DF05041C3F5289C31315541C3F5286C5DF050419A99996934315541C3F528DC5CF050417B14AE773631554185EB51B85CF05041A4703DAA38315541295C8FD25EF050410AD7A3E03931554148E17A3461F05041C3F5280C3B315541713D0A0763F05041F6285C1F3C31554114AE474166F05041666666263E315541666666366BF050418FC2F518403155415C8FC2456EF0504100000070413155416666669670F05041295C8F42433155413D0AD7D370F050410AD7A31044315541295C8FE270F05041E17A14EE47315541C3F528EC71F0504152B81EE547315541CDCCCC1C72F050417B14AE37443155411F85EB0171F0504114AE47F13D315541EC51B8DE70F050411F85EB913B3155415C8FC27570F050415C8FC29534315541CDCCCC3C6DF05041CDCCCC9C333155413333330369F05041D7A3705D32315541EC51B8AE66F050410AD7A310313155415C8FC2A563F05041A4703DCA2E315541E17A142E60F05041C3F5287C2B3155415C8FC2555CF050417B14AE5728315541666666D657F05041E17A141E2431554148E17A5458F05041CDCCCCDC263155413D0AD7B358F05041713D0AF72831554114AE47B15BF050410AD7A3602C3155410103000000010000001F000000E17A143E59F0504114AE47F11B3155410AD7A31058F050410AD7A3001B315541D7A3706D56F05041713D0AF719315541B81E85EB54F0504185EB513819315541CDCCCC7C53F050410AD7A3201931554152B81ED54DF05041A4703D0A193155419A99995949F0504185EB51F8183155418FC2F51847F05041000000C018315541A4703D5A41F050418FC2F5B8173155413D0AD7233CF0504185EB51C81631554114AE470135F05041C3F528EC15315541AE47E1BA32F05041D7A370DD153155411F85EB4131F0504148E17AD4153155415C8FC23530F050413D0AD71317315541F6285C6F2EF05041EC51B82E19315541E17A142E2EF0504152B81E251C315541333333F332F050410AD7A3301C315541000000A037F0504148E17A741C3155417B14AE773CF0504152B81EC51C3155411F85EB4141F05041B81E851B1D315541E17A14CE45F05041EC51B8AE1D31554148E17A3448F05041D7A3700D1E315541713D0A974AF050410AD7A3701E315541666666964EF050411F85EB411F315541333333A352F050418FC2F558203155415C8FC27556F0504185EB514822315541333333B357F05041AE47E1DA22315541B81E850B59F05041D7A370ED23315541D7A3701D5BF0504185EB51F81F315541A4703DDA5BF050415C8FC2B51E315541E17A143E59F0504114AE47F11B3155410103000000010000002000000048E17A8430F05041F6285C9F383155415C8FC2B52CF0504185EB5178393155410AD7A3B028F05041CDCCCCBC3A3155418FC2F59820F0504185EB51E83C31554114AE47F11BF05041000000203E3155410AD7A3D017F0504100000030403155415C8FC29513F05041AE47E15A423155418FC2F5080FF0504185EB5178443155417B14AE3709F05041295C8F0247315541C3F5285C06F050417B14AE474831554148E17AB403F05041CDCCCCBC493155413333339303F050415C8FC2254A315541B81E852B04F05041333333734B3155419A99994905F05041B81E852B4D31554148E17A6406F05041D7A3700D4E315541AE47E1BA09F05041F6285C6F5031554114AE47610CF050416666665652315541EC51B84E19F05041CDCCCC2C5A31554152B81EB51CF05041B81E858B5C3155413D0AD77322F050419A99997961315541F6285CEF25F0504185EB5188643155417B14AE7728F05041CDCCCC7C653155417B14AE872DF05041B81E858B65315541E17A140E34F050411F85EB51653155415C8FC24538F05041C3F528AC65315541D7A370ED38F0504148E17A3459315541713D0AB738F05041333333B3523155415C8FC26538F05041EC51B82E4A31554152B81E4538F05041B81E85BB4131554152B81EE536F05041713D0AD7373155415C8FC25536F050410AD7A3E03631554148E17A8430F05041F6285C9F38315541
+</a>
+
+<b>
+01060000000100000001030000000100000028000000C3F528EC71F0504152B81EE547315541CDCCCC1C72F050417B14AE37443155411F85EB0171F0504114AE47F13D315541EC51B8DE70F050411F85EB913B3155415C8FC27570F050415C8FC29534315541CDCCCC3C6DF05041CDCCCC9C333155413333330369F05041D7A3705D32315541EC51B8AE66F050410AD7A310313155415C8FC2A563F05041A4703DCA2E315541E17A142E60F05041C3F5287C2B3155415C8FC2555CF050417B14AE5728315541666666D657F05041E17A141E2431554148E17A5458F05041CDCCCCDC263155413D0AD7B358F05041713D0AF72831554114AE47B15BF050410AD7A3602C31554185EB51E85CF05041666666E62E31554185EB51485DF05041C3F5289C3131554103F81F545DF05041A3E6778832315541436218555DF050414B0FD79032315541436218555DF0504148A3E49B32315541C3F5286C5DF050419A99996934315541436218555DF0504126FCDCBD34315541436218555DF05041E2EB34CB343155411A95652B5DF05041BF97335635315541C3F528DC5CF050417B14AE773631554171D9FBB95CF05041B6DE1F9038315541C779A5BC5CF050414329BCAC3831554198F8BC195DF05041C1A66BE23831554108DEF0F35DF05041CABD4160393155419377BFB05EF050415B2E15CA393155415B5F0B2E60F05041F76D488B3A31554148E17A3461F05041C3F5280C3B315541713D0A0763F05041F6285C1F3C31554114AE474166F05041666666263E315541666666366BF050418FC2F518403155415C8FC2456EF0504100000070413155416666669670F05041295C8F42433155413D0AD7D370F050410AD7A31044315541295C8FE270F05041E17A14EE47315541C3F528EC71F0504152B81EE547315541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>277638 - 3525911
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000040000000103000000010000001900000014AE47514FF050417B14AE9796315541AE47E19A56F0504114AE477198315541B81E852B62F05041000000309B3155419A9999296EF050418FC2F5089E3155415C8FC2F579F050415C8FC2D5A031554114AE471186F050415C8FC2B5A3315541713D0A1788F050411F85EB419E3155413D0AD75389F050415C8FC2659B315541AE47E18A7FF050410AD7A32098315541EC51B8FE71F050418FC2F57893315541CDCCCC9C64F05041C3F5283C8F315541CDCCCC3C54F05041F6285C7F8A315541713D0A174DF050410AD7A38088315541B81E85DB45F050417B14AE1786315541E17A144E3FF05041295C8F9283315541AE47E1CA38F050416666667681315541D7A3700D3AF050416666669683315541295C8FD23DF050413D0AD7F38B315541E17A148E41F05041000000B08C31554114AE470144F05041B81E852B8D3155413D0AD76348F0504152B81E358E3155413D0AD7334AF05041333333A38E315541000000A04FF05041CDCCCC3C903155418FC2F5584EF050418FC2F5589631554114AE47514FF050417B14AE97963155410103000000010000001E00000014AE47B15BF050410AD7A3602C31554185EB51E85CF05041666666E62E31554185EB51485DF05041C3F5289C31315541C3F5286C5DF050419A99996934315541C3F528DC5CF050417B14AE773631554185EB51B85CF05041A4703DAA38315541295C8FD25EF050410AD7A3E03931554148E17A3461F05041C3F5280C3B315541713D0A0763F05041F6285C1F3C31554114AE474166F05041666666263E315541666666366BF050418FC2F518403155415C8FC2456EF0504100000070413155416666669670F05041295C8F42433155413D0AD7D370F050410AD7A31044315541295C8FE270F05041E17A14EE47315541C3F528EC71F0504152B81EE547315541CDCCCC1C72F050417B14AE37443155411F85EB0171F0504114AE47F13D315541EC51B8DE70F050411F85EB913B3155415C8FC27570F050415C8FC29534315541CDCCCC3C6DF05041CDCCCC9C333155413333330369F05041D7A3705D32315541EC51B8AE66F050410AD7A310313155415C8FC2A563F05041A4703DCA2E315541E17A142E60F05041C3F5287C2B3155415C8FC2555CF050417B14AE5728315541666666D657F05041E17A141E2431554148E17A5458F05041CDCCCCDC263155413D0AD7B358F05041713D0AF72831554114AE47B15BF050410AD7A3602C3155410103000000010000001F000000E17A143E59F0504114AE47F11B3155410AD7A31058F050410AD7A3001B315541D7A3706D56F05041713D0AF719315541B81E85EB54F0504185EB513819315541CDCCCC7C53F050410AD7A3201931554152B81ED54DF05041A4703D0A193155419A99995949F0504185EB51F8183155418FC2F51847F05041000000C018315541A4703D5A41F050418FC2F5B8173155413D0AD7233CF0504185EB51C81631554114AE470135F05041C3F528EC15315541AE47E1BA32F05041D7A370DD153155411F85EB4131F0504148E17AD4153155415C8FC23530F050413D0AD71317315541F6285C6F2EF05041EC51B82E19315541E17A142E2EF0504152B81E251C315541333333F332F050410AD7A3301C315541000000A037F0504148E17A741C3155417B14AE773CF0504152B81EC51C3155411F85EB4141F05041B81E851B1D315541E17A14CE45F05041EC51B8AE1D31554148E17A3448F05041D7A3700D1E315541713D0A974AF050410AD7A3701E315541666666964EF050411F85EB411F315541333333A352F050418FC2F558203155415C8FC27556F0504185EB514822315541333333B357F05041AE47E1DA22315541B81E850B59F05041D7A370ED23315541D7A3701D5BF0504185EB51F81F315541A4703DDA5BF050415C8FC2B51E315541E17A143E59F0504114AE47F11B3155410103000000010000002000000048E17A8430F05041F6285C9F383155415C8FC2B52CF0504185EB5178393155410AD7A3B028F05041CDCCCCBC3A3155418FC2F59820F0504185EB51E83C31554114AE47F11BF05041000000203E3155410AD7A3D017F0504100000030403155415C8FC29513F05041AE47E15A423155418FC2F5080FF0504185EB5178443155417B14AE3709F05041295C8F0247315541C3F5285C06F050417B14AE474831554148E17AB403F05041CDCCCCBC493155413333339303F050415C8FC2254A315541B81E852B04F05041333333734B3155419A99994905F05041B81E852B4D31554148E17A6406F05041D7A3700D4E315541AE47E1BA09F05041F6285C6F5031554114AE47610CF050416666665652315541EC51B84E19F05041CDCCCC2C5A31554152B81EB51CF05041B81E858B5C3155413D0AD77322F050419A99997961315541F6285CEF25F0504185EB5188643155417B14AE7728F05041CDCCCC7C653155417B14AE872DF05041B81E858B65315541E17A140E34F050411F85EB51653155415C8FC24538F05041C3F528AC65315541D7A370ED38F0504148E17A3459315541713D0AB738F05041333333B3523155415C8FC26538F05041EC51B82E4A31554152B81E4538F05041B81E85BB4131554152B81EE536F05041713D0AD7373155415C8FC25536F050410AD7A3E03631554148E17A8430F05041F6285C9F38315541
+</a>
+
+<b>
+01060000000100000001030000000100000028000000C3F528EC71F0504152B81EE547315541CDCCCC1C72F050417B14AE37443155411F85EB0171F0504114AE47F13D315541EC51B8DE70F050411F85EB913B3155415C8FC27570F050415C8FC29534315541CDCCCC3C6DF05041CDCCCC9C333155413333330369F05041D7A3705D32315541EC51B8AE66F050410AD7A310313155415C8FC2A563F05041A4703DCA2E315541E17A142E60F05041C3F5287C2B3155415C8FC2555CF050417B14AE5728315541666666D657F05041E17A141E2431554148E17A5458F05041CDCCCCDC263155413D0AD7B358F05041713D0AF72831554114AE47B15BF050410AD7A3602C31554185EB51E85CF05041666666E62E31554185EB51485DF05041C3F5289C3131554103F81F545DF05041A3E6778832315541436218555DF050414B0FD79032315541436218555DF0504148A3E49B32315541C3F5286C5DF050419A99996934315541436218555DF0504126FCDCBD34315541436218555DF05041E2EB34CB343155411A95652B5DF05041BF97335635315541C3F528DC5CF050417B14AE773631554171D9FBB95CF05041B6DE1F9038315541C779A5BC5CF050414329BCAC3831554198F8BC195DF05041C1A66BE23831554108DEF0F35DF05041CABD4160393155419377BFB05EF050415B2E15CA393155415B5F0B2E60F05041F76D488B3A31554148E17A3461F05041C3F5280C3B315541713D0A0763F05041F6285C1F3C31554114AE474166F05041666666263E315541666666366BF050418FC2F518403155415C8FC2456EF0504100000070413155416666669670F05041295C8F42433155413D0AD7D370F050410AD7A31044315541295C8FE270F05041E17A14EE47315541C3F528EC71F0504152B81EE547315541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>278165 - 961295
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000018000000E17A149E75E650411F85EB71372E5541000000807BE650418FC2F598382E5541C3F5284C7DE650419A9999A9382E554148E17A447FE65041CDCCCC5C382E5541A4703D5A81E65041E17A142E372E55410000007082E6504114AE47F1352E55410AD7A3A084E65041333333B3322E55410000006086E65041EC51B89E2F2E5541D7A3706D89E65041295C8FF2292E5541295C8FD28BE650415C8FC265252E5541F6285C4F8FE65041295C8F121D2E5541D7A3709D86E65041333333231B2E554152B81E457DE6504152B81E35172E55416666666666E65041666666C60C2E5541295C8FF261E65041A4703D2A0A2E5541000000A05AE65041F6285C4F032E55418FC2F56856E6504152B81ED5002E5541713D0AF751E65041000000D0FE2D5541CDCCCCEC4CE65041E17A145EFD2D554152B81EC539E65041AE47E1AA1A2E55411F85EB3163E65041666666F6322E55417B14AEF76BE65041B81E851B382E5541666666E671E650417B14AE27362E5541E17A149E75E650411F85EB71372E5541
+</a>
+
+<b>
+010600000001000000010300000001000000260000008AD1C70E8FE650418B3930041D2E5541A98428A98FE65041FC74C0311C2E5541992091248FE650416BD6DEB21A2E55411DECA96B8AE650412D5CCA7C1A2E5541B5C311AF87E65041A698A11B1A2E55416BB7D72C84E6504181D67BED182E5541B898C16473E650416ECE97A9112E5541236271FF6AE650416EE67BA90D2E55415DAF25BB63E65041108BF0D7082E5541FB795B6261E6504169FE6624072E55417B8A3E635EE650411FA1DB7B042E5541B437347B5AE65041A4BBCAC4012E5541B5A26AEE55E650412986CE0FFF2D55415A56581D51E65041E371421BFD2D5541B42527F04DE65041597E6635FC2D55413DC15FEC4DE650415A233B46FC2D5541B002084C4DE6504189276279FD2D5541D2C728AC4DE6504122A5F194FD2D55413F04F32A51E65041AA637C95FE2D5541713D0AF751E65041000000D0FE2D55418FC2F56856E6504152B81ED5002E5541000000A05AE65041F6285C4F032E554169F9BBC860E65041D3C26D13092E5541A311265A63E650414DC306FD0A2E5541CC92FF2165E65041AC623D080C2E5541ABC790FF65E6504151A61E8A0C2E55413BF93F5068E65041823EDAA50D2E55418AC1DFF568E650418A8D67F10D2E55414CE6C2E76BE65041AB3C4D490F2E554117C504996FE650412ECA7EF8102E55410E0E04A472E65041D1C4D85B122E5541FDD38CB378E650417C529A1F152E55415AF28CA17EE65041A2A7A6C7172E5541AA3E234582E65041950D6D4F192E5541A9F4AEC784E65041A757A55D1A2E554138516D7E8AE65041B1562E001C2E5541E186BE068DE650413A6875901C2E55418AD1C70E8FE650418B3930041D2E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>278380 - 246581
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000014000000CDCCCC0CE9F35041C3F5283C302D554148E17A7400F4504185EB51A8302D55410AD7A33002F45041295C8F42322D55418FC2F56802F450413D0AD793342D55415C8FC2D509F45041C3F5284C342D55418FC2F5380DF450415C8FC225362D55411F85EBB10FF4504166666686352D55415C8FC2C511F4504114AE4741322D5541EC51B84E12F45041CDCCCC1C312D5541C3F528BC12F45041A4703DEA2F2D5541F6285C0F13F450417B14AEB72E2D554152B81E6513F45041AE47E18A2D2D5541F6285CDF13F450415C8FC2A52A2D5541D7A3708D13F45041B81E85DB2A2D55415C8FC2550DF45041AE47E1DA2A2D55418FC2F5A805F45041AE47E14A2B2D5541F6285CFF00F450415C8FC2752C2D5541F6285C5FF9F35041EC51B8EE2D2D5541666666E6EAF3504148E17AA42F2D5541CDCCCC0CE9F35041C3F5283C302D5541
+</a>
+
+<b>
+01060000000100000001030000000100000006000000F649ED5DF9F35041EFAAE3EE2D2D55416B8091C6F8F350410ADA34DB2A2D5541396B0511EBF35041EFAF719F2F2D5541B16558E8F2F3504102BA44B22E2D5541B8F07D7FF3F35041E5E268A02E2D5541F649ED5DF9F35041EFAAE3EE2D2D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>278380 - 270680
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000014000000CDCCCC0CE9F35041C3F5283C302D554148E17A7400F4504185EB51A8302D55410AD7A33002F45041295C8F42322D55418FC2F56802F450413D0AD793342D55415C8FC2D509F45041C3F5284C342D55418FC2F5380DF450415C8FC225362D55411F85EBB10FF4504166666686352D55415C8FC2C511F4504114AE4741322D5541EC51B84E12F45041CDCCCC1C312D5541C3F528BC12F45041A4703DEA2F2D5541F6285C0F13F450417B14AEB72E2D554152B81E6513F45041AE47E18A2D2D5541F6285CDF13F450415C8FC2A52A2D5541D7A3708D13F45041B81E85DB2A2D55415C8FC2550DF45041AE47E1DA2A2D55418FC2F5A805F45041AE47E14A2B2D5541F6285CFF00F450415C8FC2752C2D5541F6285C5FF9F35041EC51B8EE2D2D5541666666E6EAF3504148E17AA42F2D5541CDCCCC0CE9F35041C3F5283C302D5541
+</a>
+
+<b>
+01060000000100000001030000000100000006000000F649ED5DF9F35041EFAAE3EE2D2D55416B8091C6F8F350410ADA34DB2A2D5541396B0511EBF35041EFAF719F2F2D5541B16558E8F2F3504102BA44B22E2D5541B8F07D7FF3F35041E5E268A02E2D5541F649ED5DF9F35041EFAAE3EE2D2D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>278623 - 298603
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000001400000014AE4741A6E150418FC2F5F8EC325541C3F5280CA2E15041CDCCCC7CF43255411F85EBE1A6E1504166666686F7325541D7A3709DADE15041D7A3706DEF32554100000000B2E150415C8FC2B5EB32554152B81EA5B7E1504100000070E8325541D7A3708DBBE150417B14AE67E5325541E17A14EEBDE15041C3F5283CE2325541713D0AA7C0E1504185EB5168E1325541C3F528ECC5E1504114AE47D1DF32554114AE47F1C7E15041CDCCCC9CE032554152B81EB5CCE15041A4703DAADE325541295C8F92CDE15041CDCCCC7CDB32554114AE4701CEE1504114AE47E1D7325541EC51B8DECDE1504114AE47D1D4325541C3F5282CC6E150415C8FC275D6325541EC51B8CEAFE150410AD7A300DF325541A4703D3AACE15041CDCCCC7CE13255419A999939AAE1504148E17A54E432554114AE4741A6E150418FC2F5F8EC325541
+</a>
+
+<b>
+0106000000010000000103000000010000001C00000052B81EB5CCE15041A4703DAADE3255413643E67ACDE150413B01B7D3DB325541295C8F92CDE15041CDCCCC7CDB32554114AE4701CEE1504114AE47E1D7325541EC51B8DECDE1504114AE47D1D43255416B82613CCBE1504137CF2B61D5325541C3F5282CC6E150415C8FC275D6325541B4E2B8B0C1E15041EC94082CD8325541038DB7FBB6E15041F8C8FB42DC325541CD448DEEAFE15041C8C6AE00DF325541A4703D3AACE15041CDCCCC7CE13255419A999939AAE1504148E17A54E432554114AE4741A6E150418FC2F5F8EC32554151D2100DA2E1504147AC2E7BF4325541624098EDA5E15041063AE8ECF63255411F85EBE1A6E1504166666686F7325541D7A3709DADE15041D7A3706DEF32554100000000B2E150415C8FC2B5EB325541676D8918B6E15041CCE4E755E93255411BCC0D5EB7E1504172E20A90E83255414FC173D4BAE15041876A3EF7E5325541D7A3708DBBE150417B14AE67E5325541E1493502BCE150411837FDCBE4325541E17A14EEBDE15041C3F5283CE2325541713D0AA7C0E1504185EB5168E1325541C3F528ECC5E1504114AE47D1DF32554114AE47F1C7E15041CDCCCC9CE032554152B81EB5CCE15041A4703DAADE325541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>279525 - 1109695
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000100000000AD7A32002FB504166666656AA965441713D0A07FBFA5041EC51B8EEA896544152B81E35F6FA5041000000B0AB965441713D0AD7EFFA5041D7A3703DAE965441E17A14BECEFA5041EC51B89EB8965441CDCCCC3CBDFA5041AE47E1FABD9654417B14AE77AFFA5041CDCCCC7CC2965441D7A3707DAFFA5041D7A370BDC396544166666636B9FA50413D0AD773C3965441D7A3704DC6FA5041713D0A37C3965441C3F528FCD2FA504133333343C39654418FC2F5A8E1FA504114AE47E1C396544114AE4761EEFA504148E17A14C596544114AE47F1F9FA50415C8FC2C5C6965441AE47E15AFFFA5041CDCCCCDCC79654410AD7A32002FB504166666656AA965441
+</a>
+
+<b>
+0106000000010000000103000000010000000D00000003B6BF4016FB504106E47FB9CD9654410AD7A3B019FB504148E17AB4CE9654411F85EB411BFB5041EC51B82ECF965441C029268724FB50412A1730A6D2965441666666A627FB50413D0AD7C3B1965441AE47E1EA25FB5041C3F5286CB1965441CDCCCC9C1CFB504148E17A94AF9654413333333319FB50417B14AEE7AE965441684D3F2E02FB5041D8774F51AA96544132C94A3EFFFA5041C8F50AD7C7965441FD8CA4FE05FB5041ADE0B540C9965441D14F5F670CFB5041A5D062EBCA96544103B6BF4016FB504106E47FB9CD965441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>279525 - 3911091
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000100000000AD7A32002FB504166666656AA965441713D0A07FBFA5041EC51B8EEA896544152B81E35F6FA5041000000B0AB965441713D0AD7EFFA5041D7A3703DAE965441E17A14BECEFA5041EC51B89EB8965441CDCCCC3CBDFA5041AE47E1FABD9654417B14AE77AFFA5041CDCCCC7CC2965441D7A3707DAFFA5041D7A370BDC396544166666636B9FA50413D0AD773C3965441D7A3704DC6FA5041713D0A37C3965441C3F528FCD2FA504133333343C39654418FC2F5A8E1FA504114AE47E1C396544114AE4761EEFA504148E17A14C596544114AE47F1F9FA50415C8FC2C5C6965441AE47E15AFFFA5041CDCCCCDCC79654410AD7A32002FB504166666656AA965441
+</a>
+
+<b>
+0106000000010000000103000000010000000D00000003B6BF4016FB504106E47FB9CD9654410AD7A3B019FB504148E17AB4CE9654411F85EB411BFB5041EC51B82ECF965441C029268724FB50412A1730A6D2965441666666A627FB50413D0AD7C3B1965441AE47E1EA25FB5041C3F5286CB1965441CDCCCC9C1CFB504148E17A94AF9654413333333319FB50417B14AEE7AE965441684D3F2E02FB5041D8774F51AA96544132C94A3EFFFA5041C8F50AD7C7965441FD8CA4FE05FB5041ADE0B540C9965441D14F5F670CFB5041A5D062EBCA96544103B6BF4016FB504106E47FB9CD965441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>279666 - 56891
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000013000000E17A14FE73F75041AE47E1BAD6945441EC51B86E63F75041295C8F52FB945441E17A14CE66F75041CDCCCC0CFD945441A4703D5A6CF7504152B81EE5FF945441D7A370ED7AF75041A4703DAAE0945441E17A144E7DF7504114AE4791DB945441295C8F7287F75041D7A370ADE0945441B81E85DB95F75041F6285CEFE7945441295C8FE297F75041EC51B8AEE2945441EC51B82E98F750419A9999E9E19454416666667694F75041295C8F02E0945441295C8F928DF7504185EB5178DC945441666666768AF75041EC51B8DEDA945441F6285C1F87F750417B14AE27D99454415C8FC27580F75041AE47E1BAD59454413D0AD70380F750410AD7A380D59454413D0AD7F37CF75041295C8F62DB945441CDCCCCBC78F750411F85EB31D9945441E17A14FE73F75041AE47E1BAD6945441
+</a>
+
+<b>
+01060000000100000001030000000100000021000000E17A14FE73F75041AE47E1BAD6945441511DF8A966F750413013982EF4945441D02552A266F7504120947E3FF4945441B8A0CB7466F75041737A17A4F4945441FCDFC72B66F75041E37E6E45F5945441F2B2ECB763F75041D8E4CCB0FA9454413551C67D63F750418E364B31FB9454418D2E677163F750412F31EF53FB945441112B4B3F64F7504120DF65BDFB94544155325C7964F75041423424DBFB9454416051707A65F750413DCBE747FC945441BDDE900F6BF750417730893BFF9454413C04FF5B6CF7504166685BE1FF945441D7A370ED7AF75041A4703DAAE0945441E17A144E7DF7504114AE4791DB945441F222A85C7DF75041E8C39F98DB945441E4D5F45E7DF75041517FCB93DB94544148F8B7D195F7504110277FE1E79454416CE38E0A96F750414C688075E7945441295C8FE297F75041EC51B8AEE2945441EC51B82E98F750419A9999E9E19454413B3E85F896F75041B4CFF44AE1945441119E6F8095F750412B0CFF93E09454418EC789F792F750415FA4D93DDF945441295C8F928DF7504185EB5178DC945441666666768AF75041EC51B8DEDA945441F6285C1F87F750417B14AE27D99454415C8FC27580F75041AE47E1BAD59454415CA6110B80F7504134F05584D5945441C9B0C6457FF7504118C0B7EDD69454413D0AD7F37CF75041295C8F62DB945441CDCCCCBC78F750411F85EB31D9945441E17A14FE73F75041AE47E1BAD6945441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>309716 - 350723
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000007000000014AE47C1880F51410AD7A3D0B84A554100000060890F514114AE4791B84A5541713D0A878A0F51410AD7A3D0B74A554152B81E858E0F51410AD7A370B74A55413D0AD783910F5141F6285CAFB84A5541A4703D0A930F5141B81E85ABB94A55418FC2F518940F5141E17A144EBA4A55417B14AEF7940F5141D7A370ADBA4A55415C8FC245950F51415C8FC2C5BA4A5541CDCCCCCC950F5141D7A370DDBA4A5541B81E857B960F51413D0AD7E3BA4A55411F85EBA1970F5141D7A370DDBA4A5541EC51B86E980F5141F6285CBFBA4A5541B81E857B980F514148E17AB4B94A5541A4703D7A990F5141F6285CEFB84A55419A9999C99B0F514152B81E35B94A55418FC2F5189E0F5141713D0A07B94A5541C3F528DCA00F514152B81E35B94A554100000070A40F51413D0AD7E3B84A5541A4703D7AA50F5141E17A14CEB74A554114AE4761A70F514148E17AC4B54A5541C3F5280CAB0F51415C8FC245B44A5541295C8F52AC0F5141E17A148EB44A55415C8FC2C5AF0F5141295C8F02B24A554100000050B10F5141000000F0B04A55418FC2F5F8B20F5141EC51B8AEAF4A55410AD7A3C0B40F5141CDCCCC7CAE4A5541EC51B8BEB90F5141E17A144EAB4A55418FC2F5F8B90F5141295C8F62AB4A5541295C8F32BA0F5141E17A148EAB4A5541CDCCCC1CBB0F5141E17A148EAC4A5541EC51B8FEBC0F5141EC51B86EAC4A55410AD7A3A0BF0F514166666616AC4A55418FC2F5A8C00F5141F6285CFFAB4A554114AE4701C10F5141EC51B8EEAB4A5541295C8F92C10F5141000000B0AB4A55417B14AE07C30F514148E17A14AB4A5541EC51B8EEC40F5141AE47E14AAA4A5541666666C6C60F5141295C8F92A94A5541B81E85FBC80F51411F85EBE1A84A55410AD7A3B0C90F51418FC2F5A8A84A55411F85EB71CC0F5141F6285C5FA74A554148E17A34D30F514148E17A74A34A554133333353D60F51415C8FC295A64A5541F6285CCFDB0F51418FC2F5C8A14A5541EC51B87EDD0F514114AE4731A04A5541CDCCCC7CDE0F51418FC2F5E89D4A554148E17AA4DF0F514148E17A749D4A5541CDCCCC7CE10F5141C3F5281C9B4A5541713D0AB7E20F514133333323944A5541CDCCCC4CE30F51410AD7A340904A5541CDCCCC1CE50F514185EB51888F4A5541EC51B8DEE70F5141666666468E4A554185EB51E8E60F5141713D0AA78D4A5541A4703DEAE50F5141000000308D4A5541F6285C9FE30F5141295C8F828C4A55411F85EB81E20F5141E17A147E8C4A554114AE4731E10F5141000000D08D4A55413D0AD703E00F5141666666B68E4A55413D0AD773DF0F51410AD7A3408F4A5541CDCCCC1CDE0F5141713D0AD7904A55413D0AD7C3DC0F5141E17A148E924A5541CDCCCC6CDC0F5141A4703DBA924A5541333333D3D90F5141B81E857B934A55410AD7A330D90F514166666696934A5541E17A145ED80F5141F6285C5F934A554100000060D70F514100000010934A5541AE47E17AD60F514148E17A34934A55419A999979D50F514185EB51A8934A5541713D0AB7D40F5141CDCCCC1C944A5541E17A147ED40F51415C8FC275944A5541D7A3701DD40F5141713D0A17954A5541AE47E17AD30F51411F85EBE1954A55410AD7A390D20F51411F85EBA1964A5541713D0AA7D10F514185EB5148974A5541C3F528ACD00F51411F85EBE1974A5541D7A3709DCF0F51410AD7A340984A5541000000B0CD0F5141333333C3984A554185EB5158CA0F51417B14AE67994A5541CDCCCCACC30F5141E17A146E9A4A554114AE4771C20F514185EB51489B4A5541A4703D1AC10F514185EB51189C4A554133333373BF0F514152B81EB59C4A5541295C8FA2BD0F51417B14AE779D4A5541CDCCCCDCBB0F514185EB51389E4A5541AE47E18AB90F5141B81E851B9F4A55410AD7A3D0B70F5141666666A69F4A5541C3F528FCB60F5141295C8FE29F4A554114AE4721B60F5141AE47E11AA04A554152B81E45B40F514133333383A04A5541B81E85BBB10F51419A999919A14A5541E17A143EAF0F5141A4703DAAA14A554148E17AC4AA0F51410AD7A370A24A5541A4703D7AA90F51410AD7A3A0A24A554185EB5198A80F5141295C8FB2A24A5541A4703D8AA70F5141EC51B8BEA24A55411F85EBE1A40F514185EB51E8A24A5541295C8F82A20F514166666606A34A554152B81EA59F0F5141295C8F12A34A5541E17A14FE9B0F5141AE47E1FAA24A5541713D0A57980F5141AE47E1FAA24A554166666636970F5141295C8FC2A64A5541713D0AE7920F5141295C8FB2A94A55410AD7A3308F0F514133333303B24A55417B14AE278E0F51417B14AEF7B14A5541666666168D0F514152B81EA5B44A5541A4703D7A8C0F514133333393B44A5541A4703DBA890F5141E17A144EB34A554114AE47C1870F5141B81E857BB24A55417B14AE67860F5141E17A142EB74A55418FC2F588880F514185EB5198B84A554114AE47C1880F51410AD7A3D0B84A5541
+</a>
+
+<b>
+010600000001000000010300000001000000400000006CA609B7E20F5141058D3623944A5541657CCC4CE30F514182EEA240904A554188DA202BE40F5141A86D52E88F4A5541CDCCCC1CE50F514185EB51888F4A55418F6E7D3CE60F5141D70120058F4A554148CFB6DEE70F5141576C65468E4A5541A18293D0E70F51412AA1403D8E4A554167C71DCAE70F5141CC1213398E4A5541EDDFFDBFE70F51413FC086328E4A554175D3DEABE70F5141244B83258E4A5541C65556A8E70F5141A04F3A238E4A554170AFB69CE70F5141C6CCB51B8E4A55415412A89AE70F5141F535611A8E4A554179E26095E70F51418953F7168E4A5541FF9E52E8E60F5141797E0BA78D4A5541C1913EEAE50F5141F45401308D4A55413DEE5B9FE30F5141F0668F828C4A5541F481267EE30F51410EED09828C4A5541A4ED1A7AE30F514129ACF9818C4A55419B5F1C68E30F5141505FB1818C4A5541856E3B03E30F5141520C1C808C4A5541B02267F4E20F51410A77E07F8C4A5541B491EB81E20F5141177B147E8C4A55411A112A6AE20F51417D0EED958C4A554114AE4731E10F5141000000D08D4A55413D0AD703E00F5141666666B68E4A5541DBBEFFC4DF0F5141E333BAF28E4A5541BD3FD873DF0F5141DC6CA4408F4A5541199959C4DE0F514105148B10904A5541CDCCCC1CDE0F5141713D0AD7904A55413D0AD7C3DC0F5141E17A148E924A55416D01E189DC0F5141B9997CAB924A55418ECACD6CDC0F514158C83DBA924A554128AC7D2EDB0F5141580CAC16934A5541333333D3D90F5141B81E857B934A55410AD7A330D90F514166666696934A5541DFFB3A8FD80F51411F34356C934A55418C45155ED80F514113AC5C5F934A554187FA553CD80F514101FDD154934A554100000060D70F514100000010934A55412617A5F1D60F5141C80C9221934A5541748DE07AD60F5141D23C7C34934A55413A5391C6D50F5141A257AA85934A55419A999979D50F514185EB51A8934A5541713D0AB7D40F5141CDCCCC1C944A55412E95F3A6D40F51414E4FED35944A5541DDF6147ED40F5141CE7DC375944A554143255B2BD40F5141D3DDD0FF944A5541D7A3701DD40F5141713D0A17954A5541AE47E17AD30F51411F85EBE1954A55410AD7A390D20F51411F85EBA1964A5541713D0AA7D10F514185EB5148974A554154A970BFD00F514178A91DD6974A554105EE29ACD00F5141AE0FEBE1974A5541413BAFD6D00F51419E4BE928984A554192D6B155D30F5141F24A0A349C4A5541CDCCCC1CD60F51411F85EBB1A04A5541000000D0D80F514148E17AC49E4A554159F157D3D80F5141D69208C79E4A5541D7A3704DDA0F5141D7A370EDA04A5541CDCCCC7CDE0F51418FC2F5E89D4A554148E17AA4DF0F514148E17A749D4A5541CDCCCC7CE10F5141C3F5281C9B4A55416CA609B7E20F5141058D3623944A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>280688 - 1726290
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000D000000C3F528AC55A7504133333373451F554152B81E8556A750417B14AE27431F5541A4703D3A57A75041F6285C1F401F5541D7A3709D44A7504114AE47213C1F5541333333232DA750417B14AE17371F5541D7A3702D18A7504185EB5198321F55417B14AE6717A750417B14AE17381F55418FC2F52817A750413D0AD7D3391F55413333339316A750413D0AD7F33D1F5541AE47E13A2AA75041B81E852B421F55410AD7A3D040A750413D0AD703471F5541B81E859B53A75041B81E850B4B1F5541C3F528AC55A7504133333373451F5541
+</a>
+
+<b>
+0106000000010000000103000000010000000A00000052B81E953CA7504148E17A24531F5541366E237B42A750417B3F5C68541F5541FCF9CCD743A7504165585E074F1F5541984D3FC73FA75041D5F6C6454E1F5541BCF4F84341A75041B99E921C471F5541AE47E13A2AA75041B81E852B421F55413333339316A750413D0AD7F33D1F5541A4703DCA14A75041B81E859B4A1F5541E17A14FE26A75041333333834E1F554152B81E953CA7504148E17A24531F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>281258 - 144467
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000F000000CDCCCC5C2BBC5041666666B6CFE65441713D0A9733BC50410AD7A350CDE6544114AE47B139BC504114AE4771C8E65441295C8F723CBC50419A999939C4E65441CDCCCC1C41BC504114AE47A1BAE65441AE47E12A4DBC5041713D0A779DE65441F6285C5F50BC50416666668697E654418FC2F51856BC50419A9999898EE6544185EB514849BC5041713D0AF787E654415C8FC2B544BC5041E17A149E85E65441EC51B86E3CBC50411F85EB4181E654418FC2F56838BC50410AD7A38080E6544148E17A8425BC5041CDCCCCBCC8E65441F6285CBF23BC50411F85EB81CFE65441CDCCCC5C2BBC5041666666B6CFE65441
+</a>
+
+<b>
+0106000000010000000103000000010000001200000063877F8B40BC5041254023CCBBE65441F187B84446BC50415D5FF527AEE65441AE47E12A4DBC5041713D0A779DE65441F6285C5F50BC50416666668697E654418FC2F51856BC50419A9999898EE6544184F7130855BC5041343FA5FD8DE654417FD97D6F49BC5041DF51210B88E65441B863E2FB44BC5041CBE67BA795E654416BF09FEF3DBC504152099553ABE65441F646CC9934BC5041E3D159F3A6E65441319415772BBC5041EC0A07D2C9E65441CDAEDAA125BC5041643E7D4CC8E6544198D929C023BC504104C9D87ECFE65441CDCCCC5C2BBC5041666666B6CFE654413C02916533BC5041957F0E5FCDE65441B839179C39BC504191CC3282C8E65441E54CEA493CBC50417037D277C4E6544163877F8B40BC5041254023CCBBE65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>466188 - 3072591
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000A000000F6285C8F26A5504114AE47111D1F55419A9999C926A55041295C8FC21B1F5541C3F528AC0BA55041AE47E13AF81E554152B81EF5F6A45041000000C0D61E5541F6285C0FF5A45041EC51B88ED51E5541295C8FE2E7A45041C3F5285CD41E55418FC2F568E6A450417B14AE77D41E55411F85EB2101A5504152B81E55001F5541A4703D1A1CA550415C8FC2A5231F5541F6285C8F26A5504114AE47111D1F5541
+</a>
+
+<b>
+0106000000010000000103000000010000000800000081649D95F3A4504145CEA078D81E5541D85D39BAF4A45041D8E5536BD81E5541D0D78DD0F6A450412D5F379ED81E5541C5A26F08F7A450418E1238DFD61E5541A77AF94EF5A450419AF7B2B6D51E5541F270E2E5F4A450418941F38AD51E5541FA48048EF3A450417808B26BD51E554181649D95F3A4504145CEA078D81E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>466188 - 3371247
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000A000000F6285C8F26A5504114AE47111D1F55419A9999C926A55041295C8FC21B1F5541C3F528AC0BA55041AE47E13AF81E554152B81EF5F6A45041000000C0D61E5541F6285C0FF5A45041EC51B88ED51E5541295C8FE2E7A45041C3F5285CD41E55418FC2F568E6A450417B14AE77D41E55411F85EB2101A5504152B81E55001F5541A4703D1A1CA550415C8FC2A5231F5541F6285C8F26A5504114AE47111D1F5541
+</a>
+
+<b>
+0106000000010000000103000000010000000800000081649D95F3A4504145CEA078D81E5541D85D39BAF4A45041D8E5536BD81E5541D0D78DD0F6A450412D5F379ED81E5541C5A26F08F7A450418E1238DFD61E5541A77AF94EF5A450419AF7B2B6D51E5541F270E2E5F4A450418941F38AD51E5541FA48048EF3A450417808B26BD51E554181649D95F3A4504145CEA078D81E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>281921 - 976957
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000002400000085EB511813BD5041E17A141E9DE65441D7A3702D0FBD5041EC51B83E9DE65441F6285C1F04BD5041A4703D9A9DE6544100000030FABC5041EC51B88E9DE6544114AE4751F3BC5041295C8F429DE6544148E17AB4ECBC504148E17AA49CE6544148E17AD4E6BC5041C3F5282C9BE654417B14AED7E1BC504114AE472199E65441B81E851BDDBC504114AE475196E654415C8FC215D7BC5041F6285C8F91E654413D0AD793CEBC50413D0AD7338AE6544148E17A84C7BC5041713D0AD784E654419A9999E9C2BC50417B14AEE781E65441EC51B8CEBABC5041713D0A977DE65441295C8F52B6BC50411F85EBC186E65441B81E85ABB4BC5041A4703DDA88E654419A999949BEBC50419A99997990E654418FC2F5B8C0BC5041295C8FA292E654411F85EB31C1BC5041713D0AA793E65441EC51B8FEC0BC5041EC51B8FE94E6544185EB5128BFBC50410AD7A3E097E65441AE47E11ABDBC5041A4703D4A99E65441A4703D5ABEBC5041AE47E1CA9BE65441F6285C0FC6BC50410AD7A3F0A4E65441EC51B84ECABC5041000000E0A8E6544133333393CEBC5041D7A3700DACE65441B81E850BD6BC5041000000B0B0E654419A999919DDBC50418FC2F528B4E6544185EB5168E3BC5041E17A141EB6E6544185EB5178F0BC50410AD7A300B9E65441E17A147EF7BC5041D7A3703DABE654410AD7A370FDBC5041AE47E1FA9FE65441EC51B8FE09BD5041C3F5286C9FE65441E17A14BE12BD5041CDCCCCCC9EE65441F6285C9F13BD504148E17A249DE6544185EB511813BD5041E17A141E9DE65441050000005C8FC245BEBC504152B81E659BE654415C8FC225BEBC50411F85EBE199E65441D7A3709DBFBC50410AD7A3C099E65441AE47E1BABFBC50415C8FC2459BE654415C8FC245BEBC504152B81E659BE65441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000F507727EF0BC5041EF2A99FCB8E65441D569CAE2F6BC5041AC6F3F67BAE65441FCE985DBF9BC5041FD0B510FBBE65441BA1083C1FABC50416699ED5EBBE6544118D4084102BD5041388048C1BDE654412173FAB612BD5041452D4ECD9EE654410B2B64610BBD50414BA3EB529FE65441EC51B8FE09BD5041C3F5286C9FE654410C0E4F7BFDBC50415E0068FA9FE6544184AFBE18F3BC5041E828D7DAB3E65441F507727EF0BC5041EF2A99FCB8E65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>282448 - 229672
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001600000052B81E953CB350413D0AD793B8EB544114AE47413CB3504166666686AFEB5441F6285CEF35B350410AD7A3C0AEEB5441F6285CDF28B350410AD7A330AEEB54419A99991928B350410AD7A3A0ADEB54410AD7A3F028B35041666666469DEB5441C3F528FC1EB35041B81E851B9DEB5441AE47E1FA12B350419A9999399CEB54416666664604B35041B81E859B9AEB54417B14AE0702B35041CDCCCC5C9AEB54418FC2F50801B350415C8FC2459AEB54419A999989DFB250413333334397EB54410AD7A370DEB250410000003098EB5441AE47E16ADAB250419A9999A9BCEB5441CDCCCC4CDBB250415C8FC2B5BDEB5441EC51B82EE1B250413D0AD7E3BDEB54419A999949F1B2504114AE4741BFEB5441A4703DBAFEB25041CDCCCC2CC1EB544148E17AA431B35041295C8F12C1EB5441EC51B84E39B350418FC2F528C0EB54411F85EB113DB35041AE47E12AC0EB544152B81E953CB350413D0AD793B8EB5441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000122C6AE428B35041B67664349EEB5441ACCB416018B3504191BD25629DEB54413F00CAF1FBB25041AF0EA9D099EB544153D29AA7FBB250411D2DF3DF9AEB54417AF588AD28B350417D333471A1EB5441D7C57BCD28B35041A710CDF29FEB54419B3C62D228B350414E1668939FEB5441B53114DD28B35041818D33C39EEB5441BB80F6E128B3504154771F649EEB5441CE5781E328B350418A0219469EEB5441122C6AE428B35041B67664349EEB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>282448 - 396109
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001600000052B81E953CB350413D0AD793B8EB544114AE47413CB3504166666686AFEB5441F6285CEF35B350410AD7A3C0AEEB5441F6285CDF28B350410AD7A330AEEB54419A99991928B350410AD7A3A0ADEB54410AD7A3F028B35041666666469DEB5441C3F528FC1EB35041B81E851B9DEB5441AE47E1FA12B350419A9999399CEB54416666664604B35041B81E859B9AEB54417B14AE0702B35041CDCCCC5C9AEB54418FC2F50801B350415C8FC2459AEB54419A999989DFB250413333334397EB54410AD7A370DEB250410000003098EB5441AE47E16ADAB250419A9999A9BCEB5441CDCCCC4CDBB250415C8FC2B5BDEB5441EC51B82EE1B250413D0AD7E3BDEB54419A999949F1B2504114AE4741BFEB5441A4703DBAFEB25041CDCCCC2CC1EB544148E17AA431B35041295C8F12C1EB5441EC51B84E39B350418FC2F528C0EB54411F85EB113DB35041AE47E12AC0EB544152B81E953CB350413D0AD793B8EB5441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000122C6AE428B35041B67664349EEB5441ACCB416018B3504191BD25629DEB54413F00CAF1FBB25041AF0EA9D099EB544153D29AA7FBB250411D2DF3DF9AEB54417AF588AD28B350417D333471A1EB5441D7C57BCD28B35041A710CDF29FEB54419B3C62D228B350414E1668939FEB5441B53114DD28B35041818D33C39EEB5441BB80F6E128B3504154771F649EEB5441CE5781E328B350418A0219469EEB5441122C6AE428B35041B67664349EEB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>282544 - 255772
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000030000000103000000020000005900000033333383BBA650411F85EBC1C5DD54418FC2F548C0A65041295C8FC2C7DD5441CDCCCCFCC6A650410AD7A380CADD5441713D0AA7CAA6504114AE47A1CBDD5441000000E0CAA65041F6285CDFCADD544148E17A14CCA650418FC2F538CBDD5441666666D6CBA65041E17A14FECBDD544148E17A74CCA65041EC51B82ECCDD544185EB51E8CFA65041AE47E15ACDDD5441AE47E1DAD4A65041D7A3701DCFDD544100000010D3A650410AD7A390CBDD54419A999979D4A6504166666616C8DD54418FC2F568D7A650419A999969C3DD5441C3F528ACD3A65041A4703D7AC1DD54419A999949D2A65041E17A141EBCDD54418FC2F5A8CAA6504114AE4791B9DD5441D7A3707DC5A65041CDCCCCECB7DD5441C3F5286CC3A650410AD7A330B7DD544185EB51F8BBA65041E17A14BEB3DD54411F85EBE1B8A65041295C8F52B2DD5441C3F528BCB1A6504148E17A44AEDD54413D0AD723ACA65041AE47E17AABDD5441AE47E1EAA4A6504148E17A84A7DD5441713D0AC7A1A65041295C8F42A6DD544114AE47B19EA65041F6285C0FA5DD5441B81E851B9CA650418FC2F558A4DD544152B81E8599A650418FC2F5A8A3DD5441713D0A5797A65041D7A3702DA3DD54417B14AEC794A65041CDCCCCBCA2DD544185EB513892A650417B14AE57A2DD54418FC2F5788DA65041F6285CCFA1DD54415C8FC2B583A6504148E17A84A0DD5441295C8FA27EA65041713D0A17A0DD544152B81E8578A650411F85EB819FDD54415C8FC2B571A65041713D0A579EDD5441E17A14EE67A65041E17A149E9CDD5441AE47E17A5EA650411F85EB319ADD5441295C8FD25BA65041333333D398DD5441295C8F5258A650415C8FC28597DD5441E17A144E4FA6504148E17A6493DD54417B14AE274DA650411F85EBD194DD5441E17A149E4DA6504114AE47C197DD544148E17A4455A65041333333B39CDD5441B81E859B5CA650415C8FC205A0DD544185EB51B864A65041B81E85CBA0DD544185EB51F868A65041333333F3A0DD54411F85EB116EA6504114AE4781A4DD54418FC2F5E86CA650410AD7A370A7DD5441B81E85AB6AA65041333333D3A7DD5441A4703D6A65A65041CDCCCC5CA7DD544185EB51285FA6504152B81EE5A5DD5441E17A146E57A65041666666E6A6DD544185EB51C84FA650419A999959A4DD5441CDCCCC6C44A650411F85EBA19EDD54417B14AE8739A65041C3F5289C99DD544152B81E552FA65041666666E695DD54413D0AD7032DA650415C8FC2F591DD54415C8FC2C52AA65041666666068FDD5441713D0A772AA65041EC51B82E90DD5441AE47E19A27A650411F85EB418FDD54413D0AD73323A650419A9999298BDD5441713D0A671CA650413D0AD72386DD54418FC2F53816A65041666666A67FDD54411F85EBE10EA650411F85EB6177DD5441713D0A370BA65041F6285C2F76DD54416666666608A650419A9999D977DD54418FC2F5280BA650413D0AD7637BDD544152B81E550CA65041C3F5287C7DDD5441A4703DFA12A650417B14AE4783DD54410AD7A30019A65041A4703D8A89DD54419A9999791BA650418FC2F5C88CDD544185EB51B81EA65041F6285C7F91DD54418FC2F5E820A65041A4703D8A93DD54419A9999C92DA65041295C8FC298DD5441D7A370FD38A650418FC2F5789DDD544185EB51B841A6504185EB5108A2DD5441333333734AA650413D0AD733A6DD54410AD7A3F050A65041CDCCCCACA8DD5441EC51B8BE58A65041713D0AD7AADD5441000000A060A65041A4703D8AACDD5441E17A14CE66A65041AE47E18AADDD544148E17A746EA650415C8FC215AEDD54413D0AD7A375A650411F85EB01AEDD544148E17A9479A650411F85EB01AEDD544114AE47B181A6504152B81EB5AFDD54417B14AE5790A65041F6285C2FB3DD5441666666E69EA65041295C8F82B7DD5441D7A3709DACA6504133333363BDDD544133333383BBA650411F85EBC1C5DD54410B0000005C8FC20575A650410AD7A370A7DD5441EC51B82E76A65041A4703D5AA5DD5441CDCCCC5C7CA650418FC2F548A7DD54413333331381A65041CDCCCC0CA6DD5441A4703D6A88A65041F6285C6FA6DD54410AD7A3208DA6504148E17AC4ABDD54410AD7A3808AA6504100000050ADDD544114AE47F185A65041B81E85EBABDD54415C8FC2D57EA650415C8FC2D5A9DD54419A99995979A65041A4703D9AA9DD54415C8FC20575A650410AD7A370A7DD544101030000000100000047000000E17A145E92A65041A4703D3AA1DD54415C8FC2F594A650410AD7A3A0A1DD5441EC51B88E97A65041295C8F12A2DD54419A9999C999A6504114AE4791A2DD5441666666669CA6504133333343A3DD5441C3F5280C9FA65041D7A370FDA3DD54410AD7A330A2A6504166666636A5DD544166666666A5A65041F6285C7FA6DD54419A9999A9ACA65041B81E857BAADD54413D0AD743B2A6504166666646ADDD544152B81E65B9A650411F85EB51B1DD54410AD7A370BCA6504185EB51B8B2DD54418FC2F5D8C3A650415C8FC225B6DD54418FC2F5D8C5A65041B81E85DBB6DD544152B81E05CBA6504100000080B8DD5441295C8F02CEA650410AD7A390B9DD5441333333D3D8A65041D7A3701DBDDD544148E17AB4E1A650410AD7A340C0DD544185EB5158E9A650410AD7A330C3DD544148E17AD4EDA650419A9999C9C4DD5441AE47E10AF0A650411F85EBC1C5DD5441AE47E1AAF3A650413D0AD753C7DD544148E17A74F7A6504114AE47B1C3DD544133333323F6A65041E17A143EC0DD5441713D0AA7F0A65041F6285CDFBCDD5441EC51B83EECA65041295C8F92BBDD5441C3F5282CEBA650413D0AD733BBDD54417B14AE97E9A6504152B81E45BADD5441F6285CCFE7A65041F6285C8FB9DD54410AD7A310E6A65041713D0A17B9DD5441713D0AD7E3A65041333333F3B8DD54413D0AD773E1A65041295C8F72B9DD5441CDCCCC6CDFA650411F85EBE1B9DD5441713D0A57DDA65041AE47E1EAB9DD5441EC51B8FEDAA650410AD7A3D0B9DD544166666636D8A650418FC2F588B9DD54413D0AD7F3D5A65041A4703D0AB9DD544133333303D1A650413D0AD7E3B7DD5441666666D6C7A650413D0AD7F3B5DD544166666696C5A65041713D0AF7B4DD54411F85EB11C3A6504100000060B3DD54419A999969BEA65041295C8FF2A6DD544185EB5108B5A6504100000020A2DD54413D0AD7E3B3A6504185EB51D8A1DD544166666606B3A65041B81E85ABA1DD544166666626AFA65041B81E85EBA1DD5441295C8FE2A8A6504185EB51A89FDD54417B14AE87A6A650411F85EBC19EDD544166666656A4A650419A9999399EDD544133333333A2A650415C8FC2C59DDD5441A4703D1AA0A65041B81E850B9DDD54410AD7A3909DA650411F85EB519CDD544148E17A549AA65041CDCCCCFC9BDD5441D7A3701D98A6504152B81EE59BDD54410AD7A3B095A650413D0AD7139CDD5441C3F5285C91A650411F85EB419CDD544152B81E758EA65041295C8F529CDD544152B81E658AA65041333333039BDD544114AE47B184A650410AD7A3809ADD5441C3F5282C7AA6504152B81ED598DD54410000005075A65041D7A3704D98DD5441333333636CA65041CDCCCC4C97DD544148E17A7469A650411F85EBB196DD54415C8FC22569A6504152B81EE597DD54416666663668A65041666666869BDD5441713D0AE771A65041B81E853B9DDD5441AE47E1AA78A6504148E17A649EDD5441C3F528BC7EA6504185EB51F89EDD544148E17AD483A650415C8FC2659FDD5441C3F5289C8DA6504114AE47B1A0DD5441E17A145E92A65041A4703D3AA1DD544101030000000100000022000000A4703D4AC4A65041CDCCCCBCA8DD5441666666C6BEA650410AD7A3D0A5DD544152B81E35C1A6504133333373AADD5441AE47E1DAC2A65041713D0AF7AEDD5441295C8F92C3A65041C3F528DCB1DD54410AD7A380C4A65041666666F6B2DD544133333373C5A6504100000090B2DD5441E17A145EC6A65041295C8FB2B3DD5441D7A3704DC8A650417B14AE57B3DD54411F85EBA1CCA65041C3F528FCB4DD5441295C8F02D1A65041D7A3700DB6DD54419A999919D7A65041E17A140EB7DD544100000010DBA65041CDCCCC1CB8DD544185EB5118E0A6504100000090B7DD5441A4703D7AE4A650417B14AE87B7DD5441EC51B8BEE7A6504114AE47F1B7DD5441713D0AB7E9A65041E17A14AEB8DD544114AE47E1EBA65041D7A370ADB9DD5441B81E85CBF1A6504166666616BBDD5441666666F6F6A65041E17A140EBFDD5441E17A149EF5A65041EC51B8BEBCDD5441EC51B86EF4A65041D7A370CDBADD54419A999919F3A65041D7A3705DB9DD54419A999969F0A65041F6285C6FB7DD54415C8FC2B5EDA6504148E17A94B5DD5441AE47E18AE9A6504152B81E75B3DD5441713D0AB7E7A650413D0AD7A3B2DD54411F85EB51E0A65041C3F528FCAFDD5441A4703DEADCA6504148E17AF4AEDD54419A999999D7A650410AD7A330AEDD544185EB5108D4A650411F85EB91ADDD5441713D0A37D1A65041333333B3ACDD544148E17AD4CAA6504114AE4701AADD5441A4703D4AC4A65041CDCCCCBCA8DD5441
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000D5D4C997E8A6504106169DE6C2DD544199205258E9A6504116D3A330C3DD54418CCC7AD4EDA65041544599C9C4DD54419B72E20AF0A650411017EBC1C5DD5441FCD5E488F2A65041E5FA3ED6C6DD5441AE47E1AAF3A650413D0AD753C7DD544148E17A74F7A6504114AE47B1C3DD5441E21422E7F6A650416251263FC2DD54417EFD3123F6A650414F5B143EC0DD54418E6645C0F3A650414137B9C6BEDD5441713D0AA7F0A65041F6285CDFBCDD5441D8D9BF75EDA6504175764CEEBBDD54413EA5B93EECA65041DCFC8F92BBDD54410C5EB212ECA65041925B5F83BBDD5441C3F5282CEBA650413D0AD733BBDD54417B14AE97E9A6504152B81E45BADD5441F6285CCFE7A65041F6285C8FB9DD5441EA3F7C09E7A650417D9E1597B9DD54413524AFF7E3A65041AFDAC3B5B9DD5441592B9546E2A6504102BDA414BADD544133333323E1A6504148E17A54BADD5441A4703DFADEA650410AD7A3D0BADD5441DBB2ABF4DDA65041CD5E2608BBDD5441D3AD1EA5DCA6504111C95C4FBBDD5441640840C8DBA650413EABE059BBDD544114AE47C1DAA6504166666666BBDD5441B5AC705DD8A650416FA4703DBBDD5441F6A433D3D8A650414F29701DBDDD5441CC11257BDCA65041DE442168BEDD544148E17AB4E1A650410AD7A340C0DD5441D5D4C997E8A6504106169DE6C2DD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>967937 - 56877
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001E00000000000020BCD350410000001059335541666666E6BBD35041C3F5288C56335541AE47E1BABDD35041A4703D6A4F335541C3F5280CC1D35041713D0A7742335541E17A141EC0D35041A4703DEA41335541713D0A47BDD3504148E17AC44B3355415C8FC2F5A1D35041000000403D335541295C8F429ED35041295C8FB23B33554152B81EF59DD350415C8FC20543335541295C8FC29ED3504152B81E754A335541666666269FD35041295C8F2255335541F6285C6FA0D3504185EB51F855335541EC51B8CEA4D350419A999989573355415C8FC2C5ADD350413D0AD7735A335541B81E853BB1D350413D0AD7C35B335541B81E85FBB1D3504152B81E555D33554152B81E05B4D3504185EB51485D335541E17A142EAED3504114AE47B16D335541F6285C2FB9D35041713D0A17713355413D0AD7F3BDD3504133333353633355418FC2F558BED35041A4703DCA6233554100000090B5D350419A9999F95D335541CDCCCCDCB4D3504185EB51685C335541295C8FB2B4D3504114AE47E154335541CDCCCC5CB5D3504114AE47E154335541666666F6B5D350410AD7A3E05833554152B81E65B6D350410AD7A3705D33554152B81EE5BED35041CDCCCC0C623355415C8FC2A5BFD350417B14AE076133554100000020BCD350410000001059335541
+</a>
+
+<b>
+01060000000100000001030000000100000053000000FEC8373FA3D3504170DC61FA5633554157415B42A3D35041C5E581FB5633554139F254E4A4D35041558DA090573355414361B430A8D3504176852DA35833554196218E05ABD35041068DDD8E5933554156F71983ACD350419E2DED0A5A3355415C8FC2C5ADD350413D0AD7735A33554185D592EFAED3504108AACFE45A3355419515841EAFD350411E3B9EF65A335541B81E853BB1D350413D0AD7C35B335541B81E85FBB1D3504152B81E555D33554152B81E05B4D3504185EB51485D335541236975F6B3D350415C7684715D33554194EF12F4B3D35041C5DA37785D335541A523FFFBB1D350419E15A40063335541F66B8FBDB0D3504138E86C7F663355412936CDB4B0D35041365D099866335541A9DB3C4AB0D35041F94979C3673355410A59A736B0D35041C9E880FA67335541E5267733B0D35041235D760368335541731284D1AFD35041EB9EB116693355412CA6706DAFD35041CE71E62F6A33554130706559AFD35041AFCB38686A335541255D2D2FAED35041666A32AE6D33554112778886AED35041EC6796CC6D33554145C165B7AED35041B650ACDB6D33554136D549F5AFD35041FB3DD03D6E335541D1656B31B9D350410EF81711713355413D0AD7F3BDD3504133333353633355418FC2F558BED35041A4703DCA62335541CBFFE871B8D35041112C0B8E5F335541B5206B86B5D35041904DF0005E33554190B51053B5D35041BE5426715D335541CDCCCCDCB4D3504185EB51685C3355412835A3B4B4D35041DB360F4055335541E25D49AFB4D35041F63C64DA5433554193E6CD26B5D35041F63C64DA54335541DDC28628B5D3504114AE47E154335541CDCCCC5CB5D3504114AE47E154335541864555ABB5D35041CDB881EC563355410DB01EECB5D35041398C178658335541CF5D45F1B5D35041FFC077BE58335541666666F6B5D350410AD7A3E058335541555FE54FB6D35041D4BBBE905C335541BDFE4173B6D35041FDC798765D335541B188EC80BAD350419DA6A0A15F335541F15DA3E0BED35041C688BF01623355415C8FC2A5BFD350417B14AE076133554100000020BCD3504100000010593355415AE5D50ABCD35041F1A26D23583355415E23AF03BCD350414FD57DD35733554153B187EEBBD35041E42F09E7563355410BA5C4EABBD350416E73FCBC56335541666666E6BBD35041C3F5288C56335541AE47E1BABDD35041A4703D6A4F335541C3F5280CC1D35041713D0A77423355412998545FC0D35041A337D4104233554137261718C0D3504126DB04FF41335541713D0A47BDD3504148E17AC44B3355412444431FBDD350413F4857AF4B33554137FA9A16BDD35041D57ABFCB4B3355419F5B85AEADD350410E2D557C433355415C75DB98A0D3504117309AAD3C335541B9135BC69FD350410CEA46553C335541FEBD548D9ED3504101FBEED13B3355410E5A3E769ED35041FE043ED43B3355410CA06D409ED3504109432EE63B33554126E5EC369ED35041FF844ACC3C3355410377A0049ED3504160AE438E413355418C683B109ED35041E8A1F200443355416B6EC5119ED35041D62C350F443355416F7B887B9ED35041B80912E347335541AD45F4BD9ED35041FB1D108E49335541F15C72FA9ED350415EF6399B4F335541CF7F911D9FD3504168F1BD8B53335541CF7F911D9FD35041A9F4C33054335541666666269FD35041295C8F2255335541546751389FD350411B05342E553355417E0834ABA0D3504133F3C50D56335541B12DEB01A1D350415922DC2C56335541785764FDA2D350410EC7C8E256335541013E4F38A3D35041E5DAE7F756335541FEC8373FA3D3504170DC61FA56335541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>283984 - 237037
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000200000021000000F6285CFFF7365141000000409403554166666666FA3651411F85EB2187035541B81E85ABFA36514185EB51A885035541F6285CCFF0365141713D0AF784035541EC51B84EEB365141EC51B88E840355419A999909E63651410000000084035541A4703D5AE23651418FC2F5F8830355419A9999E9E13651417B14AEF783035541A4703D5AE0365141AE47E11A84035541B81E851BDE36514185EB51A884035541F6285C3FDD365141A4703DDA84035541EC51B87EDA36514152B81EB585035541F6285CAFD83651418FC2F50886035541000000F0D5365141A4703D7A870355415C8FC235D93651413D0AD76392035541F6285C8FDC365141E17A14CE9D03554148E17A34E336514100000090AA0355413D0AD783E6365141C3F5282CA40355419A999979E9365141C3F5283CA5035541C3F528ECF3365141CDCCCCFCA9035541A4703DCAF3365141000000B0AA035541D7A370EDFF365141AE47E13AAF0355419A99995900375141D7A3708DAA035541E17A142E0037514133333313A5035541713D0AE7003751411F85EB51A00355411F85EBE102375141000000509A0355418FC2F578F8365141D7A370AD97035541D7A370CDF73651410AD7A3909803554114AE4761F6365141D7A370FD970355417B14AE97F5365141D7A3700D97035541D7A370CDF53651418FC2F59895035541666666B6F63651418FC2F5A894035541F6285CFFF736514100000040940355410E000000E17A14BEE4365141EC51B8FE91035541B81E85EBE5365141666666769003554114AE4711E936514114AE47C18F035541B81E855BEF36514152B81E758E03554133333333F636514152B81E558C0355417B14AEA7F63651419A9999598D035541713D0A87F3365141F6285C7F8E0355419A999919EE3651419A99995992035541CDCCCC8CED365141C3F528EC930355419A9999A9EB365141295C8F52960355413D0AD7C3E736514185EB519899035541C3F5283CE63651411F85EBE19A035541D7A3704DE23651410AD7A3F099035541E17A14BEE4365141EC51B8FE91035541
+</a>
+
+<b>
+0106000000010000000103000000010000001E00000024D5B5F5FE3651413D942ADEAE0355411968E990FF365141BF5A5E88A9035541CB03BF2E003751414CDBD00EA503554105685669003751415D23358DA3035541CF9842E300375141E79ED850A003554158BB4E2A013751417CFBD2859F035541D6F65C1A02375141284179AD9C035541078376DB023751416E5F175C9A035541F2D42EBA02375141A1924A4F9A0355414D98593701375141B2B92AFB9B035541A59D1C58FF36514110C9F3ED9A035541CC514F86FF3651419C0FE29899035541BCBB2307FA36514100C9918B98035541F3C92858F83651415FF0B6BC98035541EC3528C8F73651414745D391980355419A7D0943F7365141EBB5105C98035541C72A08FEF6365141CD3C98AC99035541F825538DF6365141D9A23D019C0355410DDD6EA9F5365141FFE6AAB7A0035541F7242C98F43651415FDB9367A60355411139DECFF3365141BF371BB2AA0355410E803A2CF4365141EC2AACD4AA0355418B9D0BF9F536514103812281AB03554117A29E6AF63651413AEDA3ABAB035541EE2D7E7DF63651412226B4B2AB0355414C43C1D8FC365141EA43B613AE0355417C603A93FD3651413F0A8059AE035541DD2197B1FD3651410E05DD64AE035541E5030DDAFD365141FA7D0174AE03554124D5B5F5FE3651413D942ADEAE035541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>283984 - 372666
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000200000021000000F6285CFFF7365141000000409403554166666666FA3651411F85EB2187035541B81E85ABFA36514185EB51A885035541F6285CCFF0365141713D0AF784035541EC51B84EEB365141EC51B88E840355419A999909E63651410000000084035541A4703D5AE23651418FC2F5F8830355419A9999E9E13651417B14AEF783035541A4703D5AE0365141AE47E11A84035541B81E851BDE36514185EB51A884035541F6285C3FDD365141A4703DDA84035541EC51B87EDA36514152B81EB585035541F6285CAFD83651418FC2F50886035541000000F0D5365141A4703D7A870355415C8FC235D93651413D0AD76392035541F6285C8FDC365141E17A14CE9D03554148E17A34E336514100000090AA0355413D0AD783E6365141C3F5282CA40355419A999979E9365141C3F5283CA5035541C3F528ECF3365141CDCCCCFCA9035541A4703DCAF3365141000000B0AA035541D7A370EDFF365141AE47E13AAF0355419A99995900375141D7A3708DAA035541E17A142E0037514133333313A5035541713D0AE7003751411F85EB51A00355411F85EBE102375141000000509A0355418FC2F578F8365141D7A370AD97035541D7A370CDF73651410AD7A3909803554114AE4761F6365141D7A370FD970355417B14AE97F5365141D7A3700D97035541D7A370CDF53651418FC2F59895035541666666B6F63651418FC2F5A894035541F6285CFFF736514100000040940355410E000000E17A14BEE4365141EC51B8FE91035541B81E85EBE5365141666666769003554114AE4711E936514114AE47C18F035541B81E855BEF36514152B81E758E03554133333333F636514152B81E558C0355417B14AEA7F63651419A9999598D035541713D0A87F3365141F6285C7F8E0355419A999919EE3651419A99995992035541CDCCCC8CED365141C3F528EC930355419A9999A9EB365141295C8F52960355413D0AD7C3E736514185EB519899035541C3F5283CE63651411F85EBE19A035541D7A3704DE23651410AD7A3F099035541E17A14BEE4365141EC51B8FE91035541
+</a>
+
+<b>
+0106000000010000000103000000010000001E00000024D5B5F5FE3651413D942ADEAE0355411968E990FF365141BF5A5E88A9035541CB03BF2E003751414CDBD00EA503554105685669003751415D23358DA3035541CF9842E300375141E79ED850A003554158BB4E2A013751417CFBD2859F035541D6F65C1A02375141284179AD9C035541078376DB023751416E5F175C9A035541F2D42EBA02375141A1924A4F9A0355414D98593701375141B2B92AFB9B035541A59D1C58FF36514110C9F3ED9A035541CC514F86FF3651419C0FE29899035541BCBB2307FA36514100C9918B98035541F3C92858F83651415FF0B6BC98035541EC3528C8F73651414745D391980355419A7D0943F7365141EBB5105C98035541C72A08FEF6365141CD3C98AC99035541F825538DF6365141D9A23D019C0355410DDD6EA9F5365141FFE6AAB7A0035541F7242C98F43651415FDB9367A60355411139DECFF3365141BF371BB2AA0355410E803A2CF4365141EC2AACD4AA0355418B9D0BF9F536514103812281AB03554117A29E6AF63651413AEDA3ABAB035541EE2D7E7DF63651412226B4B2AB0355414C43C1D8FC365141EA43B613AE0355417C603A93FD3651413F0A8059AE035541DD2197B1FD3651410E05DD64AE035541E5030DDAFD365141FA7D0174AE03554124D5B5F5FE3651413D942ADEAE035541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>284620 - 3099307
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003100000052B81E25E93D5141333333639705554100000040EC3D51413D0AD7B393055541295C8FB2EC3D514152B81E45920555413D0AD7A3E73D5141666666668D055541CDCCCCDCE63D51418FC2F5A8800555418FC2F528E63D51413333334375055541C3F5287CE53D51410AD7A3507105554114AE4741E43D5141295C8FE26A0555417B14AE17E33D5141295C8F82670555417B14AEB7E13D51413D0AD77364055541AE47E15AE03D514148E17A0462055541B81E851BDD3D51415C8FC2456105554148E17AF4DA3D51417B14AE4760055541666666F6D93D51419A9999095F05554133333363D83D5141E17A144E5C05554148E17A94D43D51413D0AD7D35805554185EB51F8CF3D5141295C8F625605554152B81EB5CD3D5141F6285C2F55055541B81E857BC93D5141333333B35205554166666656C43D514152B81E154F055541AE47E13ABD3D51417B14AED748055541D7A370BDBB3D51419A999959480555410AD7A3A0BA3D5141E17A14EE520555411F85EB21BA3D51413D0AD7335405554133333303BA3D5141A4703D2A55055541EC51B8DEB93D5141C3F5283C59055541D7A3706DBA3D514185EB51185C0555419A999959BB3D51417B14AE775F055541A4703DCABC3D51410AD7A3106605554185EB5108BD3D5141D7A3702D69055541E17A141EBD3D51411F85EB016C05554148E17AF4BC3D51418FC2F5F86E055541713D0AF7BC3D514114AE47C16F055541D7A370EDBC3D51419A9999B97205554100000090BC3D5141A4703D0A760555415C8FC265BC3D51418FC2F5787A05554133333393BC3D5141A4703D8A7D0555418FC2F5C8BC3D5141B81E85BB7F055541C3F5283CBD3D5141D7A3701D810555417B14AEF7BD3D5141A4703DDA830555413D0AD7D3BE3D5141713D0A8786055541D7A370FDBF3D51411F85EBD188055541CDCCCC1CC13D5141A4703DBA8A05554114AE47E1C23D51413D0AD7638A0555410AD7A350C33D514152B81E558A055541333333A3CA3D5141295C8FD28D055541B81E85DBD43D5141AE47E14A920555410AD7A350E63D5141713D0AD79A05554152B81E25E93D51413333336397055541
+</a>
+
+<b>
+010600000001000000010300000001000000190000009A999979F53D5141F6285CEF720555413D0AD7F3F33D51410000004066055541B81E85ABF03D51416666660666055541199FFD60EB3D514142280B4D65055541E75F03BAE93D5141B4ED2FE86205554121E7C049E03D5141076923E761055541E9247A29E33D5141A1A43AB667055541857EFF4EE53D5141834FB5A86F055541F8EE572EE63D514110F68A9A7505554188EA7483E63D5141A42C2E687B055541AD96979EE73D5141BC20D4758D055541295C8FB2EC3D514152B81E45920555415A01A6C7F13D5141A580359196055541708B8FE0F33D51415B102D5798055541D7A370EDF83D514148E17AA49B055541F6285C2FFF3D5141C3F5280C9F05554166666666FF3D51415C8FC2259F055541922DB120FE3D51411EA931AF990555419A0322A6FD3D5141169752FC97055541769C61D7FC3D51413E8B1228950555415F838CA6F93D5141FAB743798B05554133333383F83D514152B81E058805554133333333F73D514152B81E45830555417B14AE47F63D514152B81E357D0555419A999979F53D5141F6285CEF72055541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>284620 - 3454392
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003100000052B81E25E93D5141333333639705554100000040EC3D51413D0AD7B393055541295C8FB2EC3D514152B81E45920555413D0AD7A3E73D5141666666668D055541CDCCCCDCE63D51418FC2F5A8800555418FC2F528E63D51413333334375055541C3F5287CE53D51410AD7A3507105554114AE4741E43D5141295C8FE26A0555417B14AE17E33D5141295C8F82670555417B14AEB7E13D51413D0AD77364055541AE47E15AE03D514148E17A0462055541B81E851BDD3D51415C8FC2456105554148E17AF4DA3D51417B14AE4760055541666666F6D93D51419A9999095F05554133333363D83D5141E17A144E5C05554148E17A94D43D51413D0AD7D35805554185EB51F8CF3D5141295C8F625605554152B81EB5CD3D5141F6285C2F55055541B81E857BC93D5141333333B35205554166666656C43D514152B81E154F055541AE47E13ABD3D51417B14AED748055541D7A370BDBB3D51419A999959480555410AD7A3A0BA3D5141E17A14EE520555411F85EB21BA3D51413D0AD7335405554133333303BA3D5141A4703D2A55055541EC51B8DEB93D5141C3F5283C59055541D7A3706DBA3D514185EB51185C0555419A999959BB3D51417B14AE775F055541A4703DCABC3D51410AD7A3106605554185EB5108BD3D5141D7A3702D69055541E17A141EBD3D51411F85EB016C05554148E17AF4BC3D51418FC2F5F86E055541713D0AF7BC3D514114AE47C16F055541D7A370EDBC3D51419A9999B97205554100000090BC3D5141A4703D0A760555415C8FC265BC3D51418FC2F5787A05554133333393BC3D5141A4703D8A7D0555418FC2F5C8BC3D5141B81E85BB7F055541C3F5283CBD3D5141D7A3701D810555417B14AEF7BD3D5141A4703DDA830555413D0AD7D3BE3D5141713D0A8786055541D7A370FDBF3D51411F85EBD188055541CDCCCC1CC13D5141A4703DBA8A05554114AE47E1C23D51413D0AD7638A0555410AD7A350C33D514152B81E558A055541333333A3CA3D5141295C8FD28D055541B81E85DBD43D5141AE47E14A920555410AD7A350E63D5141713D0AD79A05554152B81E25E93D51413333336397055541
+</a>
+
+<b>
+010600000001000000010300000001000000190000009A999979F53D5141F6285CEF720555413D0AD7F3F33D51410000004066055541B81E85ABF03D51416666660666055541199FFD60EB3D514142280B4D65055541E75F03BAE93D5141B4ED2FE86205554121E7C049E03D5141076923E761055541E9247A29E33D5141A1A43AB667055541857EFF4EE53D5141834FB5A86F055541F8EE572EE63D514110F68A9A7505554188EA7483E63D5141A42C2E687B055541AD96979EE73D5141BC20D4758D055541295C8FB2EC3D514152B81E45920555415A01A6C7F13D5141A580359196055541708B8FE0F33D51415B102D5798055541D7A370EDF83D514148E17AA49B055541F6285C2FFF3D5141C3F5280C9F05554166666666FF3D51415C8FC2259F055541922DB120FE3D51411EA931AF990555419A0322A6FD3D5141169752FC97055541769C61D7FC3D51413E8B1228950555415F838CA6F93D5141FAB743798B05554133333383F83D514152B81E058805554133333333F73D514152B81E45830555417B14AE47F63D514152B81E357D0555419A999979F53D5141F6285CEF72055541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>284993 - 3186162
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000001E00000014AE47912B425141D7A3704D0C0655413333335329425141295C8FB20C065541D7A3708D264251410AD7A3500D06554185EB5118234251411F85EBD10D0655418FC2F5781F425141E17A146E0E065541AE47E1CA1B4251413D0AD7430F065541295C8FD219425141F6285CEF0F06554114AE4771174251417B14AE3711065541CDCCCC0C144251410AD7A3A01606554114AE47B110425141E17A148E19065541333333930C425141AE47E1DA1C065541713D0A870D4251411F85EB21210655413333336310425141CDCCCC3C21065541EC51B89E13425141B81E853B20065541B81E85EB1F425141000000201C065541D7A3700D24425141A4703D1A1B0655410000003025425141D7A370BD19065541EC51B82E29425141C3F528AC170655417B14AEB72B425141EC51B8CE16065541295C8FC23042514148E17A7415065541CDCCCC3C344251418FC2F5F814065541A4703DBA38425141EC51B89E14065541B81E85AB374251419A99994912065541A4703DCA364251413333334310065541713D0AC735425141C3F5288C0E0655416666662634425141333333230D065541B81E852B32425141A4703D7A0C06554185EB51F82F425141B81E852B0C06554148E17AC42D42514152B81E150C06554114AE47912B425141D7A3704D0C0655410103000000010000000E0000009A9999F934425141A4703DCA09065541666666F633425141E17A140E090655419A99992933425141B81E850B08065541AE47E13A2D42514114AE47910806554152B81EB529425141F6285C1F080655419A99997924425141295C8F0206065541E17A14EE224251415C8FC2D50C06554152B81ED527425141EC51B8EE0B065541CDCCCCCC2A4251418FC2F5580B065541F6285C4F2E4251418FC2F5180B065541713D0A8731425141E17A144E0B0655413D0AD79333425141F6285CCF0B06554133333383354251419A9999C90B0655419A9999F934425141A4703DCA09065541
+</a>
+
+<b>
+01060000000100000001030000000100000035000000AAB073B50D42514122BA9F23210655413333336310425141CDCCCC3C21065541EC51B89E13425141B81E853B200655412F790A2C17425141AF262E051F0655412B5B22251942514199A72F631E0655414DF025161B4251410F3636BD1D065541D3E352091D42514157F983161D0655414E2C34DE1E42514147B0EF791C065541A66232E51F425141B4901C221C0655410158D44B234251418514254A1B065541D7A3700D24425141A4703D1A1B0655410000003025425141D7A370BD19065541EC51B82E29425141C3F528AC170655417B14AEB72B425141EC51B8CE16065541624340DF2C4251414BA2FE8216065541CDCCCC3C344251418FC2F5F814065541729CF1F938425141E655B08014065541269BA0E9354251417F319FD20D0655419070C17434425141029A53DE0C065541E1B24E7F32425141F11FBF030C0655413D14003431425141266B5AF50B065541A0BE618A2F42514163021FE00B065541DBA9E6752F4251413536E0550B065541CFCD0DF4314251419446A0840B065541BC88DC8433425141A009C7CF0B0655417A055020354251419B3E7EB30C06554147DAAF74364251411B283E850D065541BF90E21A3642514121E9ABB60C065541F1EB600B364251416EACBE9C0C06554124A790823542514195873DC70B065541098671F8344251412A5811CA09065541666666F633425141E17A140E090655419A99992933425141B81E850B080655415F875E3A32425141720D972008065541AE47E13A2D42514114AE47910806554152B81EB529425141F6285C1F08065541913C176026425141D6BFAFDD0606554146E8C58B25425141EEBBE0F909065541670D081A254251416EACBE9C0C065541ED96B10B284251414EF33D3A0C06554117FA736D2A425141677DB5AA0B065541EE9DE4AA2A425141F63FAB330C065541E7FCCA95264251413F311FEC0C06554107A7175A1F425141ED20637B0E065541ED60014D1D4251418E12AE2B0F0655415756679519425141EE01FF7E1006554116465C751742514110A0A93A11065541E1F80069144251416F679A0D16065541CDCCCC0C144251410AD7A3A01606554114AE47B110425141E17A148E19065541333333930C425141AE47E1DA1C065541713D0A870D4251411F85EB2121065541AAB073B50D42514122BA9F2321065541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>284993 - 3593391
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000001E00000014AE47912B425141D7A3704D0C0655413333335329425141295C8FB20C065541D7A3708D264251410AD7A3500D06554185EB5118234251411F85EBD10D0655418FC2F5781F425141E17A146E0E065541AE47E1CA1B4251413D0AD7430F065541295C8FD219425141F6285CEF0F06554114AE4771174251417B14AE3711065541CDCCCC0C144251410AD7A3A01606554114AE47B110425141E17A148E19065541333333930C425141AE47E1DA1C065541713D0A870D4251411F85EB21210655413333336310425141CDCCCC3C21065541EC51B89E13425141B81E853B20065541B81E85EB1F425141000000201C065541D7A3700D24425141A4703D1A1B0655410000003025425141D7A370BD19065541EC51B82E29425141C3F528AC170655417B14AEB72B425141EC51B8CE16065541295C8FC23042514148E17A7415065541CDCCCC3C344251418FC2F5F814065541A4703DBA38425141EC51B89E14065541B81E85AB374251419A99994912065541A4703DCA364251413333334310065541713D0AC735425141C3F5288C0E0655416666662634425141333333230D065541B81E852B32425141A4703D7A0C06554185EB51F82F425141B81E852B0C06554148E17AC42D42514152B81E150C06554114AE47912B425141D7A3704D0C0655410103000000010000000E0000009A9999F934425141A4703DCA09065541666666F633425141E17A140E090655419A99992933425141B81E850B08065541AE47E13A2D42514114AE47910806554152B81EB529425141F6285C1F080655419A99997924425141295C8F0206065541E17A14EE224251415C8FC2D50C06554152B81ED527425141EC51B8EE0B065541CDCCCCCC2A4251418FC2F5580B065541F6285C4F2E4251418FC2F5180B065541713D0A8731425141E17A144E0B0655413D0AD79333425141F6285CCF0B06554133333383354251419A9999C90B0655419A9999F934425141A4703DCA09065541
+</a>
+
+<b>
+01060000000100000001030000000100000035000000AAB073B50D42514122BA9F23210655413333336310425141CDCCCC3C21065541EC51B89E13425141B81E853B200655412F790A2C17425141AF262E051F0655412B5B22251942514199A72F631E0655414DF025161B4251410F3636BD1D065541D3E352091D42514157F983161D0655414E2C34DE1E42514147B0EF791C065541A66232E51F425141B4901C221C0655410158D44B234251418514254A1B065541D7A3700D24425141A4703D1A1B0655410000003025425141D7A370BD19065541EC51B82E29425141C3F528AC170655417B14AEB72B425141EC51B8CE16065541624340DF2C4251414BA2FE8216065541CDCCCC3C344251418FC2F5F814065541729CF1F938425141E655B08014065541269BA0E9354251417F319FD20D0655419070C17434425141029A53DE0C065541E1B24E7F32425141F11FBF030C0655413D14003431425141266B5AF50B065541A0BE618A2F42514163021FE00B065541DBA9E6752F4251413536E0550B065541CFCD0DF4314251419446A0840B065541BC88DC8433425141A009C7CF0B0655417A055020354251419B3E7EB30C06554147DAAF74364251411B283E850D065541BF90E21A3642514121E9ABB60C065541F1EB600B364251416EACBE9C0C06554124A790823542514195873DC70B065541098671F8344251412A5811CA09065541666666F633425141E17A140E090655419A99992933425141B81E850B080655415F875E3A32425141720D972008065541AE47E13A2D42514114AE47910806554152B81EB529425141F6285C1F08065541913C176026425141D6BFAFDD0606554146E8C58B25425141EEBBE0F909065541670D081A254251416EACBE9C0C065541ED96B10B284251414EF33D3A0C06554117FA736D2A425141677DB5AA0B065541EE9DE4AA2A425141F63FAB330C065541E7FCCA95264251413F311FEC0C06554107A7175A1F425141ED20637B0E065541ED60014D1D4251418E12AE2B0F0655415756679519425141EE01FF7E1006554116465C751742514110A0A93A11065541E1F80069144251416F679A0D16065541CDCCCC0C144251410AD7A3A01606554114AE47B110425141E17A148E19065541333333930C425141AE47E1DA1C065541713D0A870D4251411F85EB2121065541AAB073B50D42514122BA9F2321065541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>285039 - 4060288
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001B000000AE47E14AC23C514148E17A5474045541E17A144EBE3C5141D7A3701D7604554152B81E45BF3C514152B81EF578045541333333E3BF3C514185EB51787B0455413D0AD793C13C5141B81E852B83045541333333E3C23C51413D0AD7038A045541295C8FA2C43C5141666666E691045541D7A370FDC53C514148E17AC49704554152B81E75C63C5141C3F5288C98045541CDCCCCECC63C5141D7A370FD9C0455410AD7A3E0CB3C5141EC51B8EE9A045541295C8FA2D13C5141A4703D7A98045541B81E85ABD73C5141AE47E1DA94045541AE47E1AAD53C51411F85EB9194045541CDCCCCCCD33C5141EC51B8BE94045541666666C6D03C5141333333C39504554114AE4751D03C51411F85EBD1940455410AD7A3C0D03C5141C3F528AC94045541B81E85DBD53C5141D7A370FD91045541D7A3705DD43C51413D0AD7C38E04554114AE4701D33C51411F85EBA18A045541C3F528FCD13C51413333337385045541F6285C9FD03C5141CDCCCC0C7E04554166666686CF3C51410AD7A3F077045541D7A3708DCD3C5141EC51B89E6F045541D7A3703DC73C51410000005072045541AE47E14AC23C514148E17A5474045541
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000236E83B8D73C51416E017337710455419318047ED63C51411283C06A6C045541801ED789D33C514167F0503A6D04554163690B27D23C5141362906B36D04554177A9310ECE3C51411E7AAD1B6F045541D7A3708DCD3C5141EC51B89E6F04554153D7B448CE3C514181F79BB4720455417488D381CF3C5141472059DD7704554166666686CF3C51410AD7A3F0770455416107E3CBCF3C514179A97C73790455414C8DEB73D03C514134388E177D04554107A46231D13C51414741E425810455417D2540BDD13C51410E782019840455410548B0A3D23C514156A264C6880455417E9F5B03D33C51412E8613A88A045541BFB9C1D1D33C5141B39C940B8D045541EC444937D43C5141E2E0E74F8E045541C196ECACD43C514140F8966F8F045541D9CEF7B3D53C51413D0AD79391045541432F8E95D83C514172BB0720900455418C33E826DC3C5141A63B06558E04554151AA34EFDE3C51416030340E8D0455417B14AE27DD3C5141E17A145E89045541A4703DFADB3C51419A9999D985045541CDCCCC4CDA3C514114AE47B17D045541F6285C6FD83C5141B81E858B74045541236E83B8D73C51416E01733771045541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>285039 - 86409
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001B000000AE47E14AC23C514148E17A5474045541E17A144EBE3C5141D7A3701D7604554152B81E45BF3C514152B81EF578045541333333E3BF3C514185EB51787B0455413D0AD793C13C5141B81E852B83045541333333E3C23C51413D0AD7038A045541295C8FA2C43C5141666666E691045541D7A370FDC53C514148E17AC49704554152B81E75C63C5141C3F5288C98045541CDCCCCECC63C5141D7A370FD9C0455410AD7A3E0CB3C5141EC51B8EE9A045541295C8FA2D13C5141A4703D7A98045541B81E85ABD73C5141AE47E1DA94045541AE47E1AAD53C51411F85EB9194045541CDCCCCCCD33C5141EC51B8BE94045541666666C6D03C5141333333C39504554114AE4751D03C51411F85EBD1940455410AD7A3C0D03C5141C3F528AC94045541B81E85DBD53C5141D7A370FD91045541D7A3705DD43C51413D0AD7C38E04554114AE4701D33C51411F85EBA18A045541C3F528FCD13C51413333337385045541F6285C9FD03C5141CDCCCC0C7E04554166666686CF3C51410AD7A3F077045541D7A3708DCD3C5141EC51B89E6F045541D7A3703DC73C51410000005072045541AE47E14AC23C514148E17A5474045541
+</a>
+
+<b>
+010600000001000000010300000001000000220000006B20CAACD03C51412158384F7E04554107A46231D13C51414741E42581045541FA78E98DD13C5141E3D98219830455417F2540BDD13C514110782019840455410748B0A3D23C514157A264C688045541839F5B03D33C51412F8613A88A045541BEB9C1D1D33C5141B09C940B8D045541BEB9C1D1D33C5141B19C940B8D045541BFB9C1D1D33C5141B39C940B8D0455412B868504D43C51419E54BEAD8D045541EC444937D43C5141E2E0E74F8E045541EC444937D43C5141E3E0E74F8E045541ED444937D43C5141E5E0E74F8E0455416FFC9747D43C5141C028C9778E045541C296ECACD43C51413FF8966F8F045541D9CEF7B3D53C51413D0AD79391045541D5F1D010D53C5141676BF55C8F04554169BAA8ADD43C51418E586E048E045541AF496F60D43C51415A2B1CF88C045541DD43632DD43C51415A4738A98B04554146862AABD33C5141B31FADC988045541F5A6DCD8D23C5141716B794784045541447A8052D23C5141119D126681045541E6A2EB9CD13C5141832E82817D0455419704E6D3D03C5141319175A0790455411C683688CE3C5141545BC59E700455417BA9310ECE3C5141217AAD1B6F045541D7A3708DCD3C5141EC51B89E6F04554158D7B448CE3C514182F79BB4720455417388D381CF3C5141422059DD7704554166666686CF3C51410AD7A3F0770455416107E3CBCF3C514174A97C73790455414D8DEB73D03C514132388E177D0455416B20CAACD03C51412158384F7E045541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>285442 - 1335447
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000200000001030000000100000069000000713D0A87953B5141D7A370DD9C035541EC51B8EE953B51417B14AE379C035541666666E69A3B51413D0AD7238F0355410AD7A3709C3B5141C3F5283C8B0355417B14AE47973B5141333333138A035541E17A147E873B51413D0AD7D38503554100000080853B5141F6285C0F84035541EC51B84E843B5141C3F5289C800355417B14AE77833B51418FC2F5587B035541F6285CFF833B51411F85EBA177035541CDCCCCDC883B5141E17A149E6C035541666666968A3B51419A9999D96A035541CDCCCC8C8D3B5141AE47E12A69035541AE47E13A913B51415C8FC24566035541EC51B8CE903B5141AE47E12A600355417B14AE57923B5141333333135D035541CDCCCC8C953B5141AE47E19A5B03554148E17A64963B5141000000005C0355419A999909973B514148E17AF45B035541C3F5280C993B5141666666E65C035541F6285C7F9A3B5141333333935D0355417B14AEC79A3B51410AD7A3005E0355419A9999899B3B5141295C8F225E0355415C8FC2059C3B5141A4703DEA5D035541000000009D3B5141333333A35E0355415C8FC2A59D3B514114AE47915E035541666666D69E3B51413D0AD7435F035541CDCCCC3C9F3B5141EC51B8CE5E03554185EB51D89F3B5141000000105F0355410AD7A340A03B5141AE47E17A5F0355418FC2F598A13B51417B14AE475F035541AE47E12AA23B51415C8FC2755F0355410AD7A320A33B5141EC51B8DE5E0355410AD7A380A43B5141B81E85CB5B035541A4703DDAA53B514185EB51F8580355415C8FC2C5A63B51417B14AEF75603554166666686A53B514185EB51B856035541C3F5282CA23B5141D7A3705D5503554148E17A549F3B5141CDCCCCDC5203554148E17A849E3B5141666666E64E035541CDCCCCEC9E3B514185EB51284C035541EC51B81E983B5141666666764C035541666666E6963B514148E17A644E03554166666616963B5141295C8F5250035541D7A3701D943B5141C3F528DC510355410AD7A340913B51418FC2F53851035541D7A3704D923B514166666636530355410AD7A3E0923B5141295C8F625403554114AE47C1923B51417B14AE9755035541E17A146E923B51410AD7A38056035541EC51B8CE913B51413333331357035541AE47E10A913B5141295C8F3257035541333333C38F3B5141C3F5285C57035541EC51B86E8E3B51415C8FC22557035541C3F5286C8D3B51419A9999C957035541295C8FB28C3B5141EC51B81E580355410AD7A3508C3B5141713D0AB75703554152B81E558C3B51413D0AD713570355415C8FC2758B3B514152B81E45570355410AD7A3508A3B514114AE470158035541E17A149E893B514114AE47715803554148E17AF4883B514148E17A14590355411F85EB51883B514185EB51C859035541F6285CCF873B51411F85EBE15903554148E17A04863B514148E17A645A0355411F85EB81853B514152B81E755A03554166666696833B5141E17A14EE5A035541EC51B87E813B514148E17AA45A0355418FC2F5987F3B5141F6285C1F5A0355413D0AD7537E3B51417B14AE375A035541666666467C3B5141E17A14AE5A035541B81E854B783B51417B14AEC75B0355413D0AD7D3743B5141333333C35C03554152B81ED5743B51418FC2F5685D035541EC51B85E753B51418FC2F5685F035541295C8F82753B5141666666F6600355410AD7A330753B51413D0AD773620355418FC2F598743B51415C8FC2C565035541713D0A27743B5141D7A3705D6703554152B81E55733B5141AE47E1AA68035541E17A141E763B5141EC51B83E69035541000000807A3B5141F6285C7F69035541D7A370DD7A3B51417B14AE976A035541E17A140E763B514114AE47516D035541AE47E18A713B51413D0AD783710355410AD7A380703B5141E17A149E72035541D7A3708D743B514148E17AA4760355410AD7A3107A3B51418FC2F588780355411F85EB31823B514185EB51987A03554152B81E45843B5141C3F528FC84035541000000907E3B5141D7A3701D8403554152B81E65773B514114AE476182035541333333D3713B51413D0AD7237F035541000000206E3B5141D7A370FD7B035541A4703D2A703B5141CDCCCC5C7F035541B81E853B723B5141EC51B8CE82035541C3F528CC723B514114AE47C186035541B81E858B723B5141295C8F228903554148E17AB4713B5141295C8FB28B0355413D0AD7537D3B5141A4703D0A91035541E17A141E7F3B5141CDCCCCDC9103554152B81E658F3B51418FC2F55899035541713D0A17933B51418FC2F5789B0355415C8FC205943B5141E17A141E9C035541713D0A87953B5141D7A370DD9C03554101030000000100000031000000C3F528DC9F3B5141295C8F2267035541E17A14AEA93B5141F6285C1F6E03554133333343AB3B514148E17A4470035541F6285CCFB33B5141CDCCCC8C74035541CDCCCC5CB53B5141333333A36F03554114AE4751B83B5141F6285C8F6C035541F6285C8FBB3B5141666666866A035541AE47E12ABE3B51410000003069035541295C8FD2BF3B514114AE476169035541F6285CAFC23B5141295C8FB269035541C3F528CCC63B51411F85EB416A03554185EB5148C83B51415C8FC2756A03554185EB51F8CB3B5141713D0AB76A0355410AD7A360D13B5141B81E85BB6B035541EC51B89ED43B5141E17A145E6C03554148E17AD4D53B51410AD7A3F06C035541CDCCCCCCDA3B5141333333236E0355417B14AEC7DA3B51410AD7A3706D035541295C8FB2DA3B514114AE47916A03554148E17A94DA3B51415C8FC2656603554152B81EC5DA3B5141EC51B8EE6403554166666636D93B5141AE47E1CA6303554100000030D43B514152B81EB56103554114AE4741CF3B5141B81E858B5F035541CDCCCC4CCD3B514148E17A945E035541000000A0C93B5141D7A3700D5C035541E17A14CEC63B51413D0AD7035A03554114AE4701C13B514148E17A945803554166666666BA3B5141C3F5280C570355415C8FC235B63B5141295C8F8256035541EC51B84EB43B514148E17A64560355411F85EB41B13B5141D7A3706D560355415C8FC255AE3B5141666666865603554166666606AC3B51410AD7A3205603554114AE4771A93B514148E17AD455035541E17A14DEA83B5141C3F528FC5503554114AE4761A83B514185EB517856035541713D0A87A73B51418FC2F5A8570355419A9999F9A63B514114AE47E158035541EC51B8BEAC3B51417B14AE775A035541EC51B8AEAB3B5141295C8F025E035541000000E0A93B5141D7A3704D610355419A999939A53B5141A4703D4A60035541A4703D6AA33B51411F85EBA160035541D7A3703DA23B5141F6285CFF61035541EC51B86EA03B5141AE47E1CA62035541AE47E19A9E3B5141666666A662035541D7A3704D9D3B5141CDCCCC7C66035541C3F528DC9F3B5141295C8F2267035541
+</a>
+
+<b>
+0106000000010000000103000000010000009D000000C59999F9A63B514127AE47E158035541EC51B8BEAC3B51417B14AE775A035541EC51B8AEAB3B5141295C8F025E035541000000E0A93B5141D7A3704D610355419A999939A53B5141A4703D4A60035541A4703D6AA33B51411F85EBA160035541D7A3703DA23B5141F6285CFF61035541EC51B86EA03B5141AE47E1CA62035541AE47E19A9E3B5141666666A662035541D7A3704D9D3B5141CDCCCC7C66035541C3F528DC9F3B5141295C8F2267035541E17A14AEA93B5141F6285C1F6E03554133333343AB3B514148E17A4470035541F6285CCFB33B5141CDCCCC8C74035541CDCCCC5CB53B5141333333A36F03554114AE4751B83B5141F6285C8F6C035541F6285C8FBB3B5141666666866A035541AE47E12ABE3B51410000003069035541295C8FD2BF3B514114AE476169035541F6285CAFC23B5141295C8FB269035541C3F528CCC63B51411F85EB416A03554185EB5148C83B51415C8FC2756A03554185EB51F8CB3B5141713D0AB76A0355410AD7A360D13B5141B81E85BB6B035541EC51B89ED43B5141E17A145E6C03554148E17AD4D53B51410AD7A3F06C035541CDCCCCCCDA3B5141333333236E0355417B14AEC7DA3B51410AD7A3706D035541295C8FB2DA3B514114AE47916A03554148E17A94DA3B51415C8FC2656603554152B81EC5DA3B5141EC51B8EE6403554166666636D93B5141AE47E1CA6303554100000030D43B514152B81EB56103554114AE4741CF3B5141B81E858B5F035541CDCCCC4CCD3B514148E17A945E035541000000A0C93B5141D7A3700D5C035541E17A14CEC63B51413D0AD7035A03554114AE4701C13B514148E17A945803554166666666BA3B5141C3F5280C570355415C8FC235B63B5141295C8F8256035541EC51B84EB43B514148E17A64560355411F85EB41B13B5141D7A3706D560355415C8FC255AE3B5141666666865603554166666606AC3B51410AD7A3205603554114AE4771A93B514148E17AD455035541E17A14DEA83B5141C3F528FC5503554114AE4761A83B514185EB517856035541713D0A87A73B51418FC2F5A8570355417B85DB28A73B5141C1B7ED7858035541BA9A5B03A63B5141A759D29E580355415C8FC2C5A63B51417B14AEF75603554166666686A53B514185EB51B856035541C3F5282CA23B5141D7A3705D5503554148E17A549F3B5141CDCCCCDC5203554148E17A849E3B5141666666E64E035541CDCCCCEC9E3B514185EB51284C035541EC51B81E983B5141666666764C035541666666E6963B514148E17A644E03554166666616963B5141295C8F5250035541D7A3701D943B5141C3F528DC510355410AD7A340913B51418FC2F53851035541D7A3704D923B514166666636530355410AD7A3E0923B5141295C8F625403554114AE47C1923B51417B14AE9755035541E17A146E923B51410AD7A38056035541EC51B8CE913B51413333331357035541AE47E10A913B5141295C8F3257035541333333C38F3B5141C3F5285C57035541EC51B86E8E3B51415C8FC22557035541C3F5286C8D3B51419A9999C957035541295C8FB28C3B5141EC51B81E580355410AD7A3508C3B5141713D0AB75703554152B81E558C3B51413D0AD713570355415C8FC2758B3B514152B81E45570355410AD7A3508A3B514114AE470158035541E17A149E893B514114AE47715803554148E17AF4883B514148E17A14590355411F85EB51883B514185EB51C859035541F6285CCF873B51411F85EBE15903554148E17A04863B514148E17A645A0355411F85EB81853B514152B81E755A03554166666696833B5141E17A14EE5A035541EC51B87E813B514148E17AA45A0355418FC2F5987F3B5141F6285C1F5A0355413D0AD7537E3B51417B14AE375A035541666666467C3B5141E17A14AE5A035541B81E854B783B51417B14AEC75B0355413D0AD7D3743B5141333333C35C03554152B81ED5743B51418FC2F5685D035541EC51B85E753B51418FC2F5685F035541295C8F82753B5141666666F6600355410AD7A330753B51413D0AD773620355418FC2F598743B51415C8FC2C565035541713D0A27743B5141D7A3705D6703554152B81E55733B5141AE47E1AA68035541E17A141E763B5141EC51B83E69035541000000807A3B5141F6285C7F69035541D7A370DD7A3B51417B14AE976A035541E17A140E763B514114AE47516D035541AE47E18A713B51413D0AD783710355410AD7A380703B5141E17A149E72035541D7A3708D743B514148E17AA4760355410AD7A3107A3B51418FC2F588780355411F85EB31823B514185EB51987A03554152B81E45843B5141C3F528FC84035541000000907E3B5141D7A3701D8403554152B81E65773B514114AE476182035541333333D3713B51413D0AD7237F035541000000206E3B5141D7A370FD7B035541A4703D2A703B5141CDCCCC5C7F035541B81E853B723B5141EC51B8CE82035541C3F528CC723B514114AE47C186035541B81E858B723B5141295C8F228903554148E17AB4713B5141295C8FB28B0355413D0AD7537D3B5141A4703D0A91035541E17A141E7F3B5141CDCCCCDC9103554152B81E658F3B51418FC2F55899035541713D0A17933B51418FC2F5789B0355415C8FC205943B5141E17A141E9C035541713D0A87953B5141D7A370DD9C035541EC51B8EE953B51417B14AE379C035541666666E69A3B51413D0AD7238F0355410AD7A3709C3B5141C3F5283C8B0355417B14AE47973B5141333333138A035541E17A147E873B51413D0AD7D38503554100000080853B5141F6285C0F84035541EC51B84E843B5141C3F5289C800355417B14AE77833B51418FC2F5587B035541F6285CFF833B51411F85EBA177035541CDCCCCDC883B5141E17A149E6C035541666666968A3B51419A9999D96A035541CDCCCC8C8D3B5141AE47E12A69035541AE47E13A913B51415C8FC24566035541EC51B8CE903B5141AE47E12A600355417B14AE57923B5141333333135D035541CDCCCC8C953B5141AE47E19A5B03554148E17A64963B5141000000005C0355419A999909973B514148E17AF45B035541C3F5280C993B5141666666E65C035541F6285C7F9A3B5141333333935D0355417B14AEC79A3B51410AD7A3005E0355419A9999899B3B5141295C8F225E0355415C8FC2059C3B5141A4703DEA5D035541000000009D3B5141333333A35E0355415C8FC2A59D3B514114AE47915E035541666666D69E3B51413D0AD7435F035541CDCCCC3C9F3B5141EC51B8CE5E03554185EB51D89F3B5141000000105F0355410AD7A340A03B5141AE47E17A5F0355418FC2F598A13B51417B14AE475F035541AE47E12AA23B51415C8FC2755F0355410AD7A320A33B5141EC51B8DE5E0355410AD7A380A43B5141B81E85CB5B035541A4703DDAA53B514185EB51F8580355415FCA96FDA53B514109D460AB5803554163DC5B22A73B51413552478758035541C59999F9A63B514127AE47E158035541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>285442 - 3582579
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000200000001030000000100000069000000713D0A87953B5141D7A370DD9C035541EC51B8EE953B51417B14AE379C035541666666E69A3B51413D0AD7238F0355410AD7A3709C3B5141C3F5283C8B0355417B14AE47973B5141333333138A035541E17A147E873B51413D0AD7D38503554100000080853B5141F6285C0F84035541EC51B84E843B5141C3F5289C800355417B14AE77833B51418FC2F5587B035541F6285CFF833B51411F85EBA177035541CDCCCCDC883B5141E17A149E6C035541666666968A3B51419A9999D96A035541CDCCCC8C8D3B5141AE47E12A69035541AE47E13A913B51415C8FC24566035541EC51B8CE903B5141AE47E12A600355417B14AE57923B5141333333135D035541CDCCCC8C953B5141AE47E19A5B03554148E17A64963B5141000000005C0355419A999909973B514148E17AF45B035541C3F5280C993B5141666666E65C035541F6285C7F9A3B5141333333935D0355417B14AEC79A3B51410AD7A3005E0355419A9999899B3B5141295C8F225E0355415C8FC2059C3B5141A4703DEA5D035541000000009D3B5141333333A35E0355415C8FC2A59D3B514114AE47915E035541666666D69E3B51413D0AD7435F035541CDCCCC3C9F3B5141EC51B8CE5E03554185EB51D89F3B5141000000105F0355410AD7A340A03B5141AE47E17A5F0355418FC2F598A13B51417B14AE475F035541AE47E12AA23B51415C8FC2755F0355410AD7A320A33B5141EC51B8DE5E0355410AD7A380A43B5141B81E85CB5B035541A4703DDAA53B514185EB51F8580355415C8FC2C5A63B51417B14AEF75603554166666686A53B514185EB51B856035541C3F5282CA23B5141D7A3705D5503554148E17A549F3B5141CDCCCCDC5203554148E17A849E3B5141666666E64E035541CDCCCCEC9E3B514185EB51284C035541EC51B81E983B5141666666764C035541666666E6963B514148E17A644E03554166666616963B5141295C8F5250035541D7A3701D943B5141C3F528DC510355410AD7A340913B51418FC2F53851035541D7A3704D923B514166666636530355410AD7A3E0923B5141295C8F625403554114AE47C1923B51417B14AE9755035541E17A146E923B51410AD7A38056035541EC51B8CE913B51413333331357035541AE47E10A913B5141295C8F3257035541333333C38F3B5141C3F5285C57035541EC51B86E8E3B51415C8FC22557035541C3F5286C8D3B51419A9999C957035541295C8FB28C3B5141EC51B81E580355410AD7A3508C3B5141713D0AB75703554152B81E558C3B51413D0AD713570355415C8FC2758B3B514152B81E45570355410AD7A3508A3B514114AE470158035541E17A149E893B514114AE47715803554148E17AF4883B514148E17A14590355411F85EB51883B514185EB51C859035541F6285CCF873B51411F85EBE15903554148E17A04863B514148E17A645A0355411F85EB81853B514152B81E755A03554166666696833B5141E17A14EE5A035541EC51B87E813B514148E17AA45A0355418FC2F5987F3B5141F6285C1F5A0355413D0AD7537E3B51417B14AE375A035541666666467C3B5141E17A14AE5A035541B81E854B783B51417B14AEC75B0355413D0AD7D3743B5141333333C35C03554152B81ED5743B51418FC2F5685D035541EC51B85E753B51418FC2F5685F035541295C8F82753B5141666666F6600355410AD7A330753B51413D0AD773620355418FC2F598743B51415C8FC2C565035541713D0A27743B5141D7A3705D6703554152B81E55733B5141AE47E1AA68035541E17A141E763B5141EC51B83E69035541000000807A3B5141F6285C7F69035541D7A370DD7A3B51417B14AE976A035541E17A140E763B514114AE47516D035541AE47E18A713B51413D0AD783710355410AD7A380703B5141E17A149E72035541D7A3708D743B514148E17AA4760355410AD7A3107A3B51418FC2F588780355411F85EB31823B514185EB51987A03554152B81E45843B5141C3F528FC84035541000000907E3B5141D7A3701D8403554152B81E65773B514114AE476182035541333333D3713B51413D0AD7237F035541000000206E3B5141D7A370FD7B035541A4703D2A703B5141CDCCCC5C7F035541B81E853B723B5141EC51B8CE82035541C3F528CC723B514114AE47C186035541B81E858B723B5141295C8F228903554148E17AB4713B5141295C8FB28B0355413D0AD7537D3B5141A4703D0A91035541E17A141E7F3B5141CDCCCCDC9103554152B81E658F3B51418FC2F55899035541713D0A17933B51418FC2F5789B0355415C8FC205943B5141E17A141E9C035541713D0A87953B5141D7A370DD9C03554101030000000100000031000000C3F528DC9F3B5141295C8F2267035541E17A14AEA93B5141F6285C1F6E03554133333343AB3B514148E17A4470035541F6285CCFB33B5141CDCCCC8C74035541CDCCCC5CB53B5141333333A36F03554114AE4751B83B5141F6285C8F6C035541F6285C8FBB3B5141666666866A035541AE47E12ABE3B51410000003069035541295C8FD2BF3B514114AE476169035541F6285CAFC23B5141295C8FB269035541C3F528CCC63B51411F85EB416A03554185EB5148C83B51415C8FC2756A03554185EB51F8CB3B5141713D0AB76A0355410AD7A360D13B5141B81E85BB6B035541EC51B89ED43B5141E17A145E6C03554148E17AD4D53B51410AD7A3F06C035541CDCCCCCCDA3B5141333333236E0355417B14AEC7DA3B51410AD7A3706D035541295C8FB2DA3B514114AE47916A03554148E17A94DA3B51415C8FC2656603554152B81EC5DA3B5141EC51B8EE6403554166666636D93B5141AE47E1CA6303554100000030D43B514152B81EB56103554114AE4741CF3B5141B81E858B5F035541CDCCCC4CCD3B514148E17A945E035541000000A0C93B5141D7A3700D5C035541E17A14CEC63B51413D0AD7035A03554114AE4701C13B514148E17A945803554166666666BA3B5141C3F5280C570355415C8FC235B63B5141295C8F8256035541EC51B84EB43B514148E17A64560355411F85EB41B13B5141D7A3706D560355415C8FC255AE3B5141666666865603554166666606AC3B51410AD7A3205603554114AE4771A93B514148E17AD455035541E17A14DEA83B5141C3F528FC5503554114AE4761A83B514185EB517856035541713D0A87A73B51418FC2F5A8570355419A9999F9A63B514114AE47E158035541EC51B8BEAC3B51417B14AE775A035541EC51B8AEAB3B5141295C8F025E035541000000E0A93B5141D7A3704D610355419A999939A53B5141A4703D4A60035541A4703D6AA33B51411F85EBA160035541D7A3703DA23B5141F6285CFF61035541EC51B86EA03B5141AE47E1CA62035541AE47E19A9E3B5141666666A662035541D7A3704D9D3B5141CDCCCC7C66035541C3F528DC9F3B5141295C8F2267035541
+</a>
+
+<b>
+0106000000010000000103000000010000009D000000C59999F9A63B514127AE47E158035541EC51B8BEAC3B51417B14AE775A035541EC51B8AEAB3B5141295C8F025E035541000000E0A93B5141D7A3704D610355419A999939A53B5141A4703D4A60035541A4703D6AA33B51411F85EBA160035541D7A3703DA23B5141F6285CFF61035541EC51B86EA03B5141AE47E1CA62035541AE47E19A9E3B5141666666A662035541D7A3704D9D3B5141CDCCCC7C66035541C3F528DC9F3B5141295C8F2267035541E17A14AEA93B5141F6285C1F6E03554133333343AB3B514148E17A4470035541F6285CCFB33B5141CDCCCC8C74035541CDCCCC5CB53B5141333333A36F03554114AE4751B83B5141F6285C8F6C035541F6285C8FBB3B5141666666866A035541AE47E12ABE3B51410000003069035541295C8FD2BF3B514114AE476169035541F6285CAFC23B5141295C8FB269035541C3F528CCC63B51411F85EB416A03554185EB5148C83B51415C8FC2756A03554185EB51F8CB3B5141713D0AB76A0355410AD7A360D13B5141B81E85BB6B035541EC51B89ED43B5141E17A145E6C03554148E17AD4D53B51410AD7A3F06C035541CDCCCCCCDA3B5141333333236E0355417B14AEC7DA3B51410AD7A3706D035541295C8FB2DA3B514114AE47916A03554148E17A94DA3B51415C8FC2656603554152B81EC5DA3B5141EC51B8EE6403554166666636D93B5141AE47E1CA6303554100000030D43B514152B81EB56103554114AE4741CF3B5141B81E858B5F035541CDCCCC4CCD3B514148E17A945E035541000000A0C93B5141D7A3700D5C035541E17A14CEC63B51413D0AD7035A03554114AE4701C13B514148E17A945803554166666666BA3B5141C3F5280C570355415C8FC235B63B5141295C8F8256035541EC51B84EB43B514148E17A64560355411F85EB41B13B5141D7A3706D560355415C8FC255AE3B5141666666865603554166666606AC3B51410AD7A3205603554114AE4771A93B514148E17AD455035541E17A14DEA83B5141C3F528FC5503554114AE4761A83B514185EB517856035541713D0A87A73B51418FC2F5A8570355417B85DB28A73B5141C1B7ED7858035541BA9A5B03A63B5141A759D29E580355415C8FC2C5A63B51417B14AEF75603554166666686A53B514185EB51B856035541C3F5282CA23B5141D7A3705D5503554148E17A549F3B5141CDCCCCDC5203554148E17A849E3B5141666666E64E035541CDCCCCEC9E3B514185EB51284C035541EC51B81E983B5141666666764C035541666666E6963B514148E17A644E03554166666616963B5141295C8F5250035541D7A3701D943B5141C3F528DC510355410AD7A340913B51418FC2F53851035541D7A3704D923B514166666636530355410AD7A3E0923B5141295C8F625403554114AE47C1923B51417B14AE9755035541E17A146E923B51410AD7A38056035541EC51B8CE913B51413333331357035541AE47E10A913B5141295C8F3257035541333333C38F3B5141C3F5285C57035541EC51B86E8E3B51415C8FC22557035541C3F5286C8D3B51419A9999C957035541295C8FB28C3B5141EC51B81E580355410AD7A3508C3B5141713D0AB75703554152B81E558C3B51413D0AD713570355415C8FC2758B3B514152B81E45570355410AD7A3508A3B514114AE470158035541E17A149E893B514114AE47715803554148E17AF4883B514148E17A14590355411F85EB51883B514185EB51C859035541F6285CCF873B51411F85EBE15903554148E17A04863B514148E17A645A0355411F85EB81853B514152B81E755A03554166666696833B5141E17A14EE5A035541EC51B87E813B514148E17AA45A0355418FC2F5987F3B5141F6285C1F5A0355413D0AD7537E3B51417B14AE375A035541666666467C3B5141E17A14AE5A035541B81E854B783B51417B14AEC75B0355413D0AD7D3743B5141333333C35C03554152B81ED5743B51418FC2F5685D035541EC51B85E753B51418FC2F5685F035541295C8F82753B5141666666F6600355410AD7A330753B51413D0AD773620355418FC2F598743B51415C8FC2C565035541713D0A27743B5141D7A3705D6703554152B81E55733B5141AE47E1AA68035541E17A141E763B5141EC51B83E69035541000000807A3B5141F6285C7F69035541D7A370DD7A3B51417B14AE976A035541E17A140E763B514114AE47516D035541AE47E18A713B51413D0AD783710355410AD7A380703B5141E17A149E72035541D7A3708D743B514148E17AA4760355410AD7A3107A3B51418FC2F588780355411F85EB31823B514185EB51987A03554152B81E45843B5141C3F528FC84035541000000907E3B5141D7A3701D8403554152B81E65773B514114AE476182035541333333D3713B51413D0AD7237F035541000000206E3B5141D7A370FD7B035541A4703D2A703B5141CDCCCC5C7F035541B81E853B723B5141EC51B8CE82035541C3F528CC723B514114AE47C186035541B81E858B723B5141295C8F228903554148E17AB4713B5141295C8FB28B0355413D0AD7537D3B5141A4703D0A91035541E17A141E7F3B5141CDCCCCDC9103554152B81E658F3B51418FC2F55899035541713D0A17933B51418FC2F5789B0355415C8FC205943B5141E17A141E9C035541713D0A87953B5141D7A370DD9C035541EC51B8EE953B51417B14AE379C035541666666E69A3B51413D0AD7238F0355410AD7A3709C3B5141C3F5283C8B0355417B14AE47973B5141333333138A035541E17A147E873B51413D0AD7D38503554100000080853B5141F6285C0F84035541EC51B84E843B5141C3F5289C800355417B14AE77833B51418FC2F5587B035541F6285CFF833B51411F85EBA177035541CDCCCCDC883B5141E17A149E6C035541666666968A3B51419A9999D96A035541CDCCCC8C8D3B5141AE47E12A69035541AE47E13A913B51415C8FC24566035541EC51B8CE903B5141AE47E12A600355417B14AE57923B5141333333135D035541CDCCCC8C953B5141AE47E19A5B03554148E17A64963B5141000000005C0355419A999909973B514148E17AF45B035541C3F5280C993B5141666666E65C035541F6285C7F9A3B5141333333935D0355417B14AEC79A3B51410AD7A3005E0355419A9999899B3B5141295C8F225E0355415C8FC2059C3B5141A4703DEA5D035541000000009D3B5141333333A35E0355415C8FC2A59D3B514114AE47915E035541666666D69E3B51413D0AD7435F035541CDCCCC3C9F3B5141EC51B8CE5E03554185EB51D89F3B5141000000105F0355410AD7A340A03B5141AE47E17A5F0355418FC2F598A13B51417B14AE475F035541AE47E12AA23B51415C8FC2755F0355410AD7A320A33B5141EC51B8DE5E0355410AD7A380A43B5141B81E85CB5B035541A4703DDAA53B514185EB51F8580355415FCA96FDA53B514109D460AB5803554163DC5B22A73B51413552478758035541C59999F9A63B514127AE47E158035541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>285765 - 394431
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000090000007B14AE976DD15041A4703D1AC3BB54418FC2F5587CD15041C3F5286CC1BB54415C8FC2A576D150413D0AD72378BB5441A4703DFA60D15041713D0AA77ABB544185EB517863D150410AD7A3E09ABB5441F6285C7F60D1504114AE47219BBB544185EB512863D150415C8FC255BDBB5441E17A144E6BD150410AD7A390C2BB54417B14AE976DD15041A4703D1AC3BB5441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000FAC8F9C061D15041ACC73F487ABB54414672C94761D15041129E223C78BB54413D48F7F060D150410099664578BB5441E0D99CD45DD150419D3831D678BB5441F6285C7F60D1504114AE47219BBB544185EB512863D150415C8FC255BDBB5441E17A144E6BD150410AD7A390C2BB5441E66DC2656DD150413E92820EC3BB54419114AE976DD15041A2703D1AC3BB5441E216AE976DD150415E703D1AC3BB5441CD18AE976DD1504123703D1AC3BB54412B2084BF77D15041B4E9E7D7C1BB544175F5D5B677D15041A0745C74C1BB54414497416F77D150416327DB74C1BB544113F3CB6771D150412775571B79BB5441FAC8F9C061D15041ACC73F487ABB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>286402 - 242470
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000001000000110000006666663662D150410AD7A330B5BE5441F6285CBF7DD15041333333E389BE5441A4703D4A7ED15041C3F528AC88BE5441333333B37CD15041AE47E1EA88BE5441A4703DCA7AD150415C8FC28589BE54419A99995978D15041CDCCCC7C8ABE544185EB510874D150419A9999898CBE5441666666D664D15041295C8FD28CBE54419A99992964D1504152B81EE58FBE5441F6285C1F63D150417B14AE1795BE5441EC51B8BE61D150419A9999A99BBE544148E17A5460D15041F6285C0FA2BE5441333333635FD15041A4703D7AA6BE5441000000B05AD150415C8FC2C5B3BE5441C3F528FC5DD15041F6285C8FB4BE544152B81ED561D150419A9999C9B5BE54416666663662D150410AD7A330B5BE5441
+</a>
+
+<b>
+010600000001000000010300000001000000080000001005863E78D15041020BC98A92BE5441078C5BBF7DD15041002A34E389BE5441155A520874D150416CB199898CBE54412AF1CA5571D150417E428D968CBE544193C195185FD1504159965A9AB4BE54412E48653662D15041A386A330B5BE5441D96146BD74D150410067D40D98BE54411005863E78D15041020BC98A92BE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>286527 - 57074
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001B000000EC51B81E67D6504185EB51C818BC5441F6285CAF63D650417B14AE471BBC5441EC51B88E5FD65041B81E858B1DBC54418FC2F5485BD6504114AE47311FBC54417B14AED756D650413D0AD75320BC5441EC51B80E54D650413D0AD7B320BC544185EB515852D65041F6285CEF20BC54416666662636D65041C3F5282C23BC544152B81EA52DD65041E17A146E23BC54419A99994925D65041F6285CFF22BC54419A9999C90CD65041D7A370FD1FBC5441C3F528AC0BD65041C3F528DC20BC54418FC2F5E807D6504152B81E2540BC544114AE47B105D650413D0AD79352BC5441713D0A4702D65041AE47E1FA6EBC54415C8FC22503D6504185EB511870BC5441A4703D3A31D650410AD7A3C075BC54410AD7A34033D65041713D0AE774BC544114AE470143D65041295C8F1261BC544148E17A0448D650418FC2F5B85ABC54419A99997955D65041B81E85AB49BC5441E17A14EE69D650410AD7A3C02FBC54418FC2F5B872D6504185EB517824BC5441F6285CDF74D650415C8FC2B521BC5441713D0A9774D65041C3F5280C20BC5441E17A142E69D650419A9999B918BC5441EC51B81E67D6504185EB51C818BC5441
+</a>
+
+<b>
+01060000000100000001030000000100000021000000D41D524253D65041DF35577A4CBC54419A99997955D65041B81E85AB49BC54415A24B85E56D65041A0E7368948BC54413298C0F556D65041F81FD9C947BC5441E96444EF5CD650414C7FE03740BC5441A49253B75FD65041BD98A9B13CBC54416E43274F65D65041F17B779B35BC54415F1396796AD65041DE4CA00D2FBC544158F13C7E70D65041F505AB5427BC5441F6285CDF74D650415C8FC2B521BC5441713D0A9774D65041C3F5280C20BC5441E17A142E69D650419A9999B918BC5441EC51B81E67D6504185EB51C818BC5441F6285CAF63D650417B14AE471BBC5441EC51B88E5FD65041B81E858B1DBC54418FC2F5485BD6504114AE47311FBC54417B14AED756D650413D0AD75320BC544185EB515852D65041F6285CEF20BC54416666662636D65041C3F5282C23BC544152B81EA52DD65041E17A146E23BC54419A99994925D65041F6285CFF22BC54419A9999C90CD65041D7A370FD1FBC5441C3F528AC0BD65041C3F528DC20BC54418FC2F5E807D6504152B81E2540BC5441713D0A4702D65041AE47E1FA6EBC54415C8FC22503D6504185EB511870BC5441A4703D3A31D650410AD7A3C075BC54410AD7A34033D65041713D0AE774BC54417105443338D65041EEC0EEAA6EBC5441DD1BA9843AD6504151A38EC16BBC54417AF27DC33ED650415BE0666966BC5441D05B6DCF3FD6504194BA1C1865BC5441D41D524253D65041DF35577A4CBC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>286582 - 362073
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000040000000B81E857B37D55041E17A148EFDBE5441A4703D6A38D550411F85EBD1F3BE5441D7A3704D38D550411F85EBF1E8BE5441B81E85DB37D550413D0AD7A3E0BE54417B14AE473AD5504166666626E1BE5441666666063DD55041CDCCCC7CE0BE54415C8FC20540D5504133333343D8BE54419A99999945D55041295C8F02CDBE54411F85EB414ED550418FC2F558C0BE544152B81E9556D550417B14AE87B6BE54417B14AED756D55041AE47E13AB6BE5441295C8F723ED55041AE47E1EAA6BE5441295C8F2227D55041AE47E1EAD6BE54415C8FC2F525D55041D7A370FDD7BE54413D0AD7D326D550413D0AD7B3D8BE5441E17A143E26D55041D7A3704DD9BE5441000000F026D55041713D0AD7D9BE544185EB515827D55041295C8F52DABE54417B14AED72BD550417B14AEA7DCBE54410AD7A3702FD5504166666646DEBE544152B81EC535D55041B81E855BE0BE54415C8FC2B535D550411F85EBC1E0BE5441666666462FD55041713D0A97DEBE54411F85EBB12BD550411F85EB01DDBE54413333332327D5504185EB5188DABE5441E17A148E26D55041295C8F52DABE544152B81EE524D5504148E17AF4D8BE544114AE47B121D55041EC51B8DEDBBE5441666666961ED5504100000070DDBE5441000000E01AD5504166666636DEBE5441E17A14DE15D55041666666C6DDBE5441D7A3700D19D55041F6285C9FEBBE54410AD7A3B01AD55041713D0A07EBBE54419A9999991CD550411F85EB11E5BE544148E17A641ED55041B81E85BBE0BE5441D7A3707D1FD55041F6285CFFDEBE5441F6285C5F21D550419A999999DDBE544114AE470120D5504114AE47F1E0BE54419A9999B91DD55041C3F5282CE7BE54418FC2F5C819D55041E17A14CEEEBE5441A4703D3A1AD55041000000D0F1BE5441333333031AD55041F6285C1FF5BE54411F85EB5119D55041B81E851BF8BE5441295C8F621BD55041D7A370ADF8BE54415C8FC22520D55041C3F528DCF8BE5441CDCCCCBC25D550419A9999D9F8BE54411F85EBD127D550410AD7A380F8BE5441EC51B87E29D55041D7A3701DF7BE544114AE47012CD55041E17A147EF2BE54418FC2F5382FD55041B81E85EBEBBE54419A99999931D55041C3F528ACF0BE544114AE47F12ED55041AE47E13AF5BE5441A4703D7A2CD55041D7A3705DFABE544185EB516829D55041A4703D7AFCBE54411F85EB3123D550415C8FC2F5FDBE5441AE47E10A1DD550411F85EBD1FDBE544185EB513817D55041C3F528CCFCBE5441666666F613D55041AE47E15A03BF5441D7A3708D13D55041295C8F5204BF54410AD7A37023D55041B81E852B08BF54410000006031D55041713D0AE70FBF5441295C8F7233D55041C3F5280C0CBF54411F85EBF133D55041F6285C1F0BBF5441B81E857B37D55041E17A148EFDBE5441
+</a>
+
+<b>
+0106000000010000000103000000010000002E0000005976D82318D550419EA490F2FABE54412F7567F613D550415792E15A03BF5441A24AEAF133D55041E2725D1F0BBF54417D9BE45735D55041B6D369C205BF5441B81E857B37D55041E17A148EFDBE5441A4703D6A38D550411F85EBD1F3BE54415C8FC20540D5504133333343D8BE54419A99999945D55041295C8F02CDBE5441BCC6C9CD4BD550417F24ABEFC3BE5441FA3FEA414ED55041F1CCF658C0BE544162921F9556D5504158BDAC87B6BE5441F8A56B9D56D55041593D1A7EB6BE5441F555D4C056D5504122FC3E55B6BE544142E1ADD756D55041C882E13AB6BE5441694A53CD52D550414C36A0B1B3BE5441E443184142D5504175F9954EA9BE5441C00BAADB3FD5504188A38ACDA7BE54418B1190723ED5504188B9E1EAA6BE5441E74364AC30D550417FC63147C3BE5441295C8F2227D55041AE47E1EAD6BE54415C8FC2F525D55041D7A370FDD7BE54413D0AD7D326D550413D0AD7B3D8BE5441E17A143E26D55041D7A3704DD9BE5441000000F026D55041713D0AD7D9BE544185EB515827D55041295C8F52DABE54417B14AED72BD550417B14AEA7DCBE54410AD7A3702FD5504166666646DEBE544152B81EC535D55041B81E855BE0BE54415C8FC2B535D550411F85EBC1E0BE5441666666462FD55041713D0A97DEBE54411F85EBB12BD550411F85EB01DDBE54413333332327D5504185EB5188DABE5441E17A148E26D55041295C8F52DABE544112373EE524D5504156D394F4D8BE5441C1F748B121D55041538CB9DEDBBE54419EF79EF51ED5504187F4ED3FDDBE5441666666961ED5504100000070DDBE544131F1F1A11DD5504118EF07A3DDBE54419C2900E01AD55041169F6736DEBE5441339214DE15D5504157A966C6DDBE5441BADBF5C819D550417AC513CEEEBE5441BAC93D3A1AD55041567BFFCFF1BE544133C3E0281AD55041545C4BDBF2BE5441333333031AD55041F6285C1FF5BE544135B2EB5119D550410E5E851BF8BE54415976D82318D550419EA490F2FABE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>287562 - 1176641
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000012000000D7A3705D13AA5141CDCCCCEC00A454416666662613AA51411F85EB2108A45441AE47E11A13AA5141333333A309A454415C8FC2E512AA51419A99999910A454419A9999B912AA5141A4703D5A16A45441D7A370AD12AA5141EC51B8EE17A45441EC51B8AE1CAA51413D0AD7F314A45441AE47E17A27AA51419A9999C911A45441666666E62FAA51411F85EB6114A454417B14AE9737AA51419A99992914A454410000003038AA514114AE470111A454413333334331AA5141CDCCCCCC10A454413D0AD71330AA514148E17AA40DA4544148E17A8430AA5141F6285C3F08A45441295C8F6235AA5141295C8F9205A454413333330336AA51416666666601A454410AD7A3602BAA5141C3F528ECFFA35441D7A3705D13AA5141CDCCCCEC00A45441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000D7A3705D13AA5141CDCCCCEC00A454416666662613AA51411F85EB2108A45441AE47E11A13AA5141333333A309A454415C8FC2E512AA51419A99999910A454419A9999B912AA5141A4703D5A16A45441D7A370AD12AA5141EC51B8EE17A45441EC51B8AE1CAA51413D0AD7F314A45441AE47E17A27AA51419A9999C911A45441666666E62FAA51411F85EB6114A454417B14AE9737AA51419A99992914A454410000003038AA514114AE470111A454413333334331AA5141CDCCCCCC10A45441DB6AB66830AA51416463F8AE0DA4544133013D5030AA51414ABBA0E80BA4544103B1BE5F30AA5141E055C8010AA45441ABD8D80E31AA51416DB0376508A45441AB7D12EB33AA5141F0DB8FE806A454415957FF6935AA51418692490406A454413333330336AA51416666666601A454410AD7A3602BAA5141C3F528ECFFA35441D7A3705D13AA5141CDCCCCEC00A45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>287562 - 3614725
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000012000000D7A3705D13AA5141CDCCCCEC00A454416666662613AA51411F85EB2108A45441AE47E11A13AA5141333333A309A454415C8FC2E512AA51419A99999910A454419A9999B912AA5141A4703D5A16A45441D7A370AD12AA5141EC51B8EE17A45441EC51B8AE1CAA51413D0AD7F314A45441AE47E17A27AA51419A9999C911A45441666666E62FAA51411F85EB6114A454417B14AE9737AA51419A99992914A454410000003038AA514114AE470111A454413333334331AA5141CDCCCCCC10A454413D0AD71330AA514148E17AA40DA4544148E17A8430AA5141F6285C3F08A45441295C8F6235AA5141295C8F9205A454413333330336AA51416666666601A454410AD7A3602BAA5141C3F528ECFFA35441D7A3705D13AA5141CDCCCCEC00A45441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000D7A3705D13AA5141CDCCCCEC00A454416666662613AA51411F85EB2108A45441AE47E11A13AA5141333333A309A454415C8FC2E512AA51419A99999910A454419A9999B912AA5141A4703D5A16A45441D7A370AD12AA5141EC51B8EE17A45441EC51B8AE1CAA51413D0AD7F314A45441AE47E17A27AA51419A9999C911A45441666666E62FAA51411F85EB6114A454417B14AE9737AA51419A99992914A454410000003038AA514114AE470111A454413333334331AA5141CDCCCCCC10A45441DB6AB66830AA51416463F8AE0DA4544133013D5030AA51414ABBA0E80BA4544103B1BE5F30AA5141E055C8010AA45441ABD8D80E31AA51416DB0376508A45441AB7D12EB33AA5141F0DB8FE806A454415957FF6935AA51418692490406A454413333330336AA51416666666601A454410AD7A3602BAA5141C3F528ECFFA35441D7A3705D13AA5141CDCCCCEC00A45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>287750 - 3614486
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000036000000295C8F4224A951417B14AEC738A55441295C8FA229A951419A9999593CA55441C3F5283C2AA95141666666363BA554419A9999E92AA95141CDCCCC8C3BA55441CDCCCC5C2AA9514152B81ED53CA55441000000802DA95141D7A370FD3DA55441B81E85EB30A951410AD7A30040A554419A9999E932A951415C8FC28541A55441713D0A8740A951419A99997937A55441333333234CA9514148E17A142FA554413D0AD7034CA951418FC2F5982DA55441666666164AA95141AE47E17A2AA55441AE47E13A49A951419A9999F929A5544152B81E4542A95141333333832DA554410AD7A3703CA951419A99997924A554411F85EB4146A95141D7A370FD1EA55441666666E64BA951417B14AE3727A554419A9999194AA95141D7A3707D28A55441F6285C1F4DA951419A9999192DA554411F85EB214EA951418FC2F5A82DA55441B81E85DB52A95141D7A3703D2AA5544185EB51C850A951417B14AE0726A5544152B81E4556A9514114AE47E121A554419A99994953A95141AE47E1BA19A554410AD7A3E051A95141000000E015A554417B14AE674EA95141C3F5287C0CA554410AD7A3B04CA9514148E17AB407A55441AE47E19A25A95141F6285C8F1EA55441D7A3702D1FA951417B14AE470EA554415C8FC2A50DA95141CDCCCC6C24A554419A999999F8A8514152B81E9527A55441713D0AF7EEA85141713D0A0729A5544114AE47C1E8A8514114AE470128A554417B14AEB7EAA85141F6285C6F2FA55441713D0AD7EAA85141F6285C0F35A5544185EB5168E7A851411F85EBF138A55441EC51B80EEBA851418FC2F5983DA554417B14AEA7F4A85141713D0AB747A554415C8FC20502A9514148E17AC44FA55441666666960FA9514185EB51C84EA55441CDCCCCFC10A95141000000404EA554418FC2F5581EA95141EC51B87E49A55441C3F5284C20A951419A99991949A5544148E17AA42CA95141F6285C6F46A55441E17A14DE2AA951413333337345A554413D0AD7832AA951413333335345A55441E17A148E28A95141295C8FA244A55441B81E85CB24A95141B81E85CB42A55441A4703D6A23A951418FC2F5C842A55441EC51B8FE21A951410000007043A55441A4703DDA1CA951415C8FC25548A55441295C8FC215A95141A4703D6A44A554417B14AEC71BA9514152B81ED538A55441295C8F4224A951417B14AEC738A55441
+</a>
+
+<b>
+0106000000010000000103000000010000004E000000295C8F4224A951417B14AEC738A55441295C8FA229A951419A9999593CA55441C3F5283C2AA95141666666363BA554419A9999E92AA95141CDCCCC8C3BA55441CDCCCC5C2AA9514152B81ED53CA55441000000802DA95141D7A370FD3DA55441B81E85EB30A951410AD7A30040A554419A9999E932A951415C8FC28541A55441713D0A8740A951419A99997937A55441333333234CA9514148E17A142FA554413D0AD7034CA951418FC2F5982DA55441666666164AA95141AE47E17A2AA55441AE47E13A49A951419A9999F929A5544152B81E4542A95141333333832DA554410AD7A3703CA951419A99997924A554411F85EB4146A95141D7A370FD1EA55441666666E64BA951417B14AE3727A554419A9999194AA95141D7A3707D28A55441F6285C1F4DA951419A9999192DA554411F85EB214EA951418FC2F5A82DA55441B81E85DB52A95141D7A3703D2AA5544185EB51C850A951417B14AE0726A5544152B81E4556A9514114AE47E121A554419A99994953A95141AE47E1BA19A554410AD7A3E051A95141000000E015A554417B14AE674EA95141C3F5287C0CA554410AD7A3B04CA9514148E17AB407A55441AE47E19A25A95141F6285C8F1EA55441D7A3702D1FA951417B14AE470EA554415C8FC2A50DA95141CDCCCC6C24A554419D21B4A5F8A85141CD5AF9A227A554416354062DFAA851414112346129A55441C1329B84FEA85141B16FE6542EA554419E6CFB0609A9514131329A513AA554416362BD220BA95141A86458B93CA554412B3AB69A0BA9514183E334423DA5544152B81EA50BA95141E17A144E3DA554418B1D1AAB0BA951414D2189683DA55441D734D2CB0BA95141FDAF3CF93DA55441A485A36D0DA951413FDF0C3145A55441798896C70DA95141A8A3DABE46A5544145322AEA0EA951410BB3F0C34BA554417964AD0E0FA95141D8006B654CA55441E1CD81340FA95141C0A7B80C4DA55441F6285C5F0FA95141A4703DCA4DA5544143D911FF10A95141F23B43354DA5544136DBEF2111A951419E6EC4284DA5544184E0F53413A95141EF0F776A4CA5544184F6D71917A95141209D36054BA5544100FF5BC817A95141CE1EACC64AA5544182CEEDFB18A9514169F372584AA5544144922DBC19A951413E8F8D134AA554412C3B3DF21AA9514109CE6FA449A554418504486F1CA951412016E21B49A554413E3079521DA95141F7F076CA48A55441AFEC71EF1DA95141FFFC359248A55441F9C817541FA95141904CB83248A55441E8269D2621A95141A043E6BA47A55441A961E10122A95141AA5B958247A55441C6FEAD5223A951414A9A142C47A55441217BEF8226A95141854A6F5A46A5544152F5738729A95141CFCC059445A5544144ECE87D2AA95141C5C21C5145A55441293CB3B529A95141E55EA10A45A554413BA240F928A9514186014AC844A554415DC34A7528A951415B026E9644A55441C8F3D31628A9514122DE336844A55441C2D8D6D827A951419C22DE4944A554411BDDC2D425A9514104A2514D43A5544160C862D324A951417229FDCE42A554419FEECC0524A95141065616CA42A55441A4703D6A23A951418FC2F5C842A5544144B10F8722A9514192A7593143A554418F62F80422A9514145C2206D43A55441A4703DDA1CA951415C8FC25548A55441295C8FC215A95141A4703D6A44A554417B14AEC71BA9514152B81ED538A55441295C8F4224A951417B14AEC738A55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>287762 - 210912
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000210000009A99996953AA5141295C8F52A1A354419A99998952AA51415C8FC255A9A354417B14AE775AAA514114AE4761ACA3544114AE473161AA5141CDCCCC9CAEA35441295C8FD267AA5141E17A14EEB0A354417B14AEE769AA5141713D0A27B1A3544152B81E256DAA514100000050A7A3544152B81EA56EAA514100000030A3A354410000006070AA5141EC51B86E9EA354418FC2F5885BAA51410AD7A37098A35441000000F036AA51419A9999098FA354411F85EBD111AA51410AD7A38085A354418FC2F5680AAA514152B81E4584A354418FC2F50806AA5141666666C682A354416666660604AA51410AD7A37085A35441D7A3701D01AA5141D7A370ED87A35441CDCCCC7C02AA51413D0AD7238BA35441AE47E15A03AA514148E17AE48FA3544185EB518806AA5141000000B093A35441E17A14BE0AAA514148E17AC496A35441713D0A372AAA51417B14AEC79EA35441C3F528AC26AA5141CDCCCCCCACA35441C3F528CC32AA5141713D0AC7AFA35441D7A3705D41AA5141AE47E15AB3A354415C8FC2F54EAA51411F85EBB1B6A35441B81E85DB4FAA5141F6285CEFB5A35441E17A140E4FAA5141EC51B8DEAAA35441E17A140E4BAA5141E17A140EA9A3544114AE47514BAA5141C3F5280CA6A35441C3F528DC43AA5141CDCCCCACA5A354415C8FC2A545AA51411F85EB7197A354417B14AE474EAA5141000000F098A354419A99996953AA5141295C8F52A1A35441
+</a>
+
+<b>
+0106000000010000000103000000010000002A0000007BE7A1EC4EAA51412B74ADAFB6A3544158725BC54FAA51418D9B2002B6A354419B4F6CAD4FAA514182B1C473B3A35441CDC95D4A4FAA51415946F51DAEA354413F58C92B4FAA5141346D5178ACA3544165B7A2FB4EAA51414DBED9E3AAA35441A33D27D34AAA51411C0887FFA8A35441DB011D4749AA51412D5238C6A6A35441D809D2D243AA51415908E1BEA5A35441E3E014E743AA51411C68F68EA4A35441C058422B45AA514116AC8A6D9AA3544117DF0A6845AA5141D90BA03D99A354416D65D3A445AA51412D95F73897A35441181459CD45AA5141744A9BDE92A35441E5C69D7439AA5141619F29B48FA35441B33B6CBA32AA5141D61A6BF68DA354415D4AFE7731AA514124E4F4A18DA35441F85550F122AA5141782FADE689A35441FD25240318AA51412CD2DC1787A354416F58286D13AA514167180CF885A35441B4E2343E12AA51419518759C85A354411F85EBD111AA51410AD7A38085A3544199B95AD20FAA514182398D2B85A35441D105D4D60AAA5141F4AEF46C84A35441D60BF25306AA5141C0B0FEEB82A354417D88B8D503AA5141E6FD64C585A354416B6E8C3C01AA5141FED7403688A35441CDCCCC7C02AA51413D0AD7238BA35441AE47E15A03AA514148E17AE48FA3544185EB518806AA5141000000B093A35441E17A14BE0AAA514148E17AC496A35441AFC4AA921AAA514175A437CC9AA35441B7E9F43C1DAA51414CD9526F9BA354417D79895020AA51412D796D429CA35441A4E5F15D27AA514173C60F0E9EA354417B43C8422AAA514156DC95BA9EA354413AF27A8829AA5141C16D927CA1A35441ABF7CB7F29AA51417CD9E49CA1A35441C3F528AC26AA5141CDCCCCCCACA35441C3F528CC32AA5141713D0AC7AFA35441D7A3705D41AA5141AE47E15AB3A354417BE7A1EC4EAA51412B74ADAFB6A35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>287762 - 349179
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000210000009A99996953AA5141295C8F52A1A354419A99998952AA51415C8FC255A9A354417B14AE775AAA514114AE4761ACA3544114AE473161AA5141CDCCCC9CAEA35441295C8FD267AA5141E17A14EEB0A354417B14AEE769AA5141713D0A27B1A3544152B81E256DAA514100000050A7A3544152B81EA56EAA514100000030A3A354410000006070AA5141EC51B86E9EA354418FC2F5885BAA51410AD7A37098A35441000000F036AA51419A9999098FA354411F85EBD111AA51410AD7A38085A354418FC2F5680AAA514152B81E4584A354418FC2F50806AA5141666666C682A354416666660604AA51410AD7A37085A35441D7A3701D01AA5141D7A370ED87A35441CDCCCC7C02AA51413D0AD7238BA35441AE47E15A03AA514148E17AE48FA3544185EB518806AA5141000000B093A35441E17A14BE0AAA514148E17AC496A35441713D0A372AAA51417B14AEC79EA35441C3F528AC26AA5141CDCCCCCCACA35441C3F528CC32AA5141713D0AC7AFA35441D7A3705D41AA5141AE47E15AB3A354415C8FC2F54EAA51411F85EBB1B6A35441B81E85DB4FAA5141F6285CEFB5A35441E17A140E4FAA5141EC51B8DEAAA35441E17A140E4BAA5141E17A140EA9A3544114AE47514BAA5141C3F5280CA6A35441C3F528DC43AA5141CDCCCCACA5A354415C8FC2A545AA51411F85EB7197A354417B14AE474EAA5141000000F098A354419A99996953AA5141295C8F52A1A35441
+</a>
+
+<b>
+0106000000010000000103000000010000002A0000007BE7A1EC4EAA51412B74ADAFB6A3544158725BC54FAA51418D9B2002B6A354419B4F6CAD4FAA514182B1C473B3A35441CDC95D4A4FAA51415946F51DAEA354413F58C92B4FAA5141346D5178ACA3544165B7A2FB4EAA51414DBED9E3AAA35441A33D27D34AAA51411C0887FFA8A35441DB011D4749AA51412D5238C6A6A35441D809D2D243AA51415908E1BEA5A35441E3E014E743AA51411C68F68EA4A35441C058422B45AA514116AC8A6D9AA3544117DF0A6845AA5141D90BA03D99A354416D65D3A445AA51412D95F73897A35441181459CD45AA5141744A9BDE92A35441E5C69D7439AA5141619F29B48FA35441B33B6CBA32AA5141D61A6BF68DA354415D4AFE7731AA514124E4F4A18DA35441F85550F122AA5141782FADE689A35441FD25240318AA51412CD2DC1787A354416F58286D13AA514167180CF885A35441B4E2343E12AA51419518759C85A354411F85EBD111AA51410AD7A38085A3544199B95AD20FAA514182398D2B85A35441D105D4D60AAA5141F4AEF46C84A35441D60BF25306AA5141C0B0FEEB82A354417D88B8D503AA5141E6FD64C585A354416B6E8C3C01AA5141FED7403688A35441CDCCCC7C02AA51413D0AD7238BA35441AE47E15A03AA514148E17AE48FA3544185EB518806AA5141000000B093A35441E17A14BE0AAA514148E17AC496A35441AFC4AA921AAA514175A437CC9AA35441B7E9F43C1DAA51414CD9526F9BA354417D79895020AA51412D796D429CA35441A4E5F15D27AA514173C60F0E9EA354417B43C8422AAA514156DC95BA9EA354413AF27A8829AA5141C16D927CA1A35441ABF7CB7F29AA51417CD9E49CA1A35441C3F528AC26AA5141CDCCCCCCACA35441C3F528CC32AA5141713D0AC7AFA35441D7A3705D41AA5141AE47E15AB3A354417BE7A1EC4EAA51412B74ADAFB6A35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>287920 - 222222
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000300000001030000000100000007000000AE47E1AA8FA2514114AE47A124A854416666660683A25141A4703D9A23A85441F6285CFF84A25141666666962FA85441F6285C3F92A251419A9999C930A85441D7A370BD96A25141666666B630A85441C3F5282C93A25141EC51B80E25A85441AE47E1AA8FA2514114AE47A124A854410103000000010000000B00000048E17A444DA25141AE47E1AA2DA85441000000203DA25141CDCCCCFC30A854413333335333A25141D7A370FD33A85441D7A3707D25A25141CDCCCC7C37A85441F6285CEF25A2514152B81E8540A854418FC2F5B82BA25141A4703D5A3FA854413D0AD7C33EA2514152B81E853AA85441F6285C8F45A25141B81E854B39A85441EC51B84E4DA25141B81E858B38A85441A4703D9A52A25141A4703D1A37A8544148E17A444DA25141AE47E1AA2DA854410103000000010000000C000000713D0AC781A251410AD7A3B023A8544185EB51D869A25141C3F5283C23A854411F85EBA156A251413D0AD7332AA85441AE47E1EA4DA25141CDCCCC5C2DA85441B81E856B53A25141A4703DBA36A854413D0AD76359A251416666665634A85441F6285C8F5FA2514114AE47A131A854411F85EBD165A2514148E17A842FA854417B14AE7769A251411F85EBC12EA85441F6285C0F77A25141C3F5286C2EA854418FC2F5D883A251417B14AE672FA85441713D0AC781A251410AD7A3B023A85441
+</a>
+
+<b>
+010600000001000000010300000001000000190000005B9A84A14FA251417E47E5D831A85441C16D75434DA251415F0D17AB2DA854413E068F7B4CA25141D70034D42DA85441E7D103B73FA25141CA59707430A85441C3CDDB533DA25141726322F230A8544177F8BCB33BA2514171D2666C31A854413333335333A25141D7A370FD33A85441D7A3707D25A25141CDCCCC7C37A85441133F15D225A25141EFD0DC323EA85441984031D825A25141359FDEAE3EA854417C2DB8E725A2514194AC08EA3FA85441DA807AE925A25141D845BD0D40A854411C3156EE25A25141E05A597040A854411DF67DF125A25141DD9DB08440A85441A75AFAE928A25141B35947EB3FA854411DFEBC4A2AA251413CFC1DA43FA854412CD1A69731A25141762FE5DC3DA854413D0AD7C33EA2514152B81E853AA85441F6285C8F45A25141B81E854B39A85441D1A70A9345A251419EE1294B39A854419AE0D72B47A25141D2E1962339A854412ECCAB964CA251413A41569D38A85441A1ACF89A4DA251418240BF7638A85441A4703D9A52A25141A4703D1A37A854415B9A84A14FA251417E47E5D831A85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>287920 - 374842
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000300000001030000000100000007000000AE47E1AA8FA2514114AE47A124A854416666660683A25141A4703D9A23A85441F6285CFF84A25141666666962FA85441F6285C3F92A251419A9999C930A85441D7A370BD96A25141666666B630A85441C3F5282C93A25141EC51B80E25A85441AE47E1AA8FA2514114AE47A124A854410103000000010000000B00000048E17A444DA25141AE47E1AA2DA85441000000203DA25141CDCCCCFC30A854413333335333A25141D7A370FD33A85441D7A3707D25A25141CDCCCC7C37A85441F6285CEF25A2514152B81E8540A854418FC2F5B82BA25141A4703D5A3FA854413D0AD7C33EA2514152B81E853AA85441F6285C8F45A25141B81E854B39A85441EC51B84E4DA25141B81E858B38A85441A4703D9A52A25141A4703D1A37A8544148E17A444DA25141AE47E1AA2DA854410103000000010000000C000000713D0AC781A251410AD7A3B023A8544185EB51D869A25141C3F5283C23A854411F85EBA156A251413D0AD7332AA85441AE47E1EA4DA25141CDCCCC5C2DA85441B81E856B53A25141A4703DBA36A854413D0AD76359A251416666665634A85441F6285C8F5FA2514114AE47A131A854411F85EBD165A2514148E17A842FA854417B14AE7769A251411F85EBC12EA85441F6285C0F77A25141C3F5286C2EA854418FC2F5D883A251417B14AE672FA85441713D0AC781A251410AD7A3B023A85441
+</a>
+
+<b>
+010600000001000000010300000001000000190000005B9A84A14FA251417E47E5D831A85441C16D75434DA251415F0D17AB2DA854413E068F7B4CA25141D70034D42DA85441E7D103B73FA25141CA59707430A85441C3CDDB533DA25141726322F230A8544177F8BCB33BA2514171D2666C31A854413333335333A25141D7A370FD33A85441D7A3707D25A25141CDCCCC7C37A85441133F15D225A25141EFD0DC323EA85441984031D825A25141359FDEAE3EA854417C2DB8E725A2514194AC08EA3FA85441DA807AE925A25141D845BD0D40A854411C3156EE25A25141E05A597040A854411DF67DF125A25141DD9DB08440A85441A75AFAE928A25141B35947EB3FA854411DFEBC4A2AA251413CFC1DA43FA854412CD1A69731A25141762FE5DC3DA854413D0AD7C33EA2514152B81E853AA85441F6285C8F45A25141B81E854B39A85441D1A70A9345A251419EE1294B39A854419AE0D72B47A25141D2E1962339A854412ECCAB964CA251413A41569D38A85441A1ACF89A4DA251418240BF7638A85441A4703D9A52A25141A4703D1A37A854415B9A84A14FA251417E47E5D831A85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288103 - 239526
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000200000035000000EC51B8EE359D5141000000B061A75441CDCCCC8C299D51419A99997961A754418FC2F548259D51413D0AD7635EA75441E17A141E1C9D514114AE47415BA754410AD7A3D0179D51415C8FC2F559A7544185EB51F8139D5141333333A356A75441EC51B81E119D5141B81E852B52A7544148E17A440E9D51410AD7A3F04CA7544185EB51680F9D51415C8FC2154CA754419A999989169D5141000000B055A754418FC2F588189D5141C3F528EC56A75441000000D01C9D5141333333D358A7544114AE4721279D51411F85EBD15AA754410AD7A3600D9D5141713D0AD743A75441295C8F92069D514185EB51C83DA754410AD7A340FB9C5141C3F5289C33A754415C8FC215F39C5141666666962CA754411F85EBC1E59C514185EB51081AA75441E17A142EDF9C514152B81E651CA75441C3F528ACDB9C51415C8FC2A51DA7544185EB51B8D99C514114AE47C120A7544133333383D89C5141CDCCCCBC23A75441713D0AB7D79C51419A99996927A75441AE47E1FAD99C5141666666562AA7544114AE47B1DB9C51418FC2F5A82FA75441B81E858BDE9C5141713D0AD735A75441E17A14AEDE9C5141AE47E10A3AA7544148E17A34E19C5141666666C63EA75441A4703DBAE29C5141EC51B80E41A754410AD7A3A0E49C514148E17AC442A754417B14AE57E99C51419A9999C946A75441CDCCCCDCEB9C5141AE47E15A48A754410AD7A340EE9C5141B81E85CB4AA7544152B81EE5EE9C51417B14AE474AA7544100000020F49C514185EB51D84CA75441000000E0FA9C514152B81E7550A75441CDCCCCDC009D5141AE47E15A54A75441D7A3709D059D5141EC51B84E55A754417B14AE77089D514152B81E3557A75441AE47E1CA0D9D5141333333D358A754410AD7A3B0119D514185EB51585AA75441295C8F72149D5141D7A370DD5BA754410AD7A370189D51413D0AD7935DA754415C8FC2251C9D514185EB51E85EA75441CDCCCC6C209D51417B14AEE760A75441A4703D6A269D5141C3F5283C62A7544152B81EA5299D5141713D0A1763A754411F85EB212D9D51413333332366A7544114AE47412F9D5141E17A14FE64A754415C8FC295309D5141B81E853B64A75441AE47E1EA319D51417B14AE4763A75441295C8F32349D51415C8FC2B562A75441EC51B8EE359D5141000000B061A754410B000000AE47E1BAE09C5141295C8F0227A754413D0AD703E19C5141E17A140E28A75441AE47E1EAE29C5141000000D02AA75441C3F5287CE59C51415C8FC2B52EA7544152B81E25E89C51417B14AE172DA7544152B81E55EA9C51419A9999792DA754418FC2F5E8E69C51417B14AE472FA754419A999919E79C51413333338332A754419A9999E9E49C514148E17AB430A754411F85EB71E09C51416666662628A75441AE47E1BAE09C5141295C8F0227A75441
+</a>
+
+<b>
+01060000000100000001030000000100000068000000F95238AF089D51411C4197A93FA75441295C8F92069D514185EB51C83DA754414ACC7D4A049D5141703F75BB3BA754414016194C029D51411B84CDF039A754410297B07AFD9C5141869D6C9C35A75441A9B5B28BF79C51419802406C30A7544146A07BA7F39C514143AEB1132DA754415C8FC215F39C5141666666962CA75441088873C2EE9C5141EC5DC49026A7544149DF08E3EB9C51410C7CF01B29A7544147BAD7D4E99C5141DAD5CC0A2EA7544122D84224F39C5141BEFD15BA38A75441ABC89631FB9C5141DFAE2A6B3FA754414DE49616009D51416073F0B144A75441CB93E19CFD9C51419C53695846A75441629C87EEF69C5141B3DDBD8441A754414AC3BDBCF09C51414BC40E6D3CA754419100E646EA9C5141FF85968F36A75441433D062AE59C51419DC3B67231A75441F76C40A6E09C5141B010686D2AA75441FF782B5ADE9C5141CB5CD53526A754414D6DF653DB9C51413E84C1B220A75441933B3200DB9C51418FE672B71EA75441312F3C3DD99C5141919BC60122A754414733E298D89C5141D9A4298923A754412207BB58D89C51410872F38025A75441C93618D9D79C51412AE9939527A75441E367D44BD99C51414178577429A75441C8DBEFA4D99C5141E1F769E729A75441AE47E1FAD99C5141666666562AA75441A9658854DB9C51418DF1B2882EA7544114AE47B1DB9C51418FC2F5A82FA75441A810B8A6DC9C5141956AB5BC31A7544177C49E48DD9C5141F98C781B33A75441E0B77220DE9C5141430A11EF34A754419A0FC74EDE9C514180B7705335A7544134D47781DE9C5141E32643C135A75441D813F982DE9C514108CD85C435A75441B81E858BDE9C5141713D0AD735A7544139C661ADDE9C5141E53C26F539A754417FE9C69BDF9C51417AA762C83BA754419E3D39B0E09C5141D47784CE3DA75441D82C74DEE19C5141189E38C53FA754417166DBF3E19C5141DDF44EE53FA75441545D8D04E29C5141E36456FE3FA75441D9E0EB0FE29C51416FC6610F40A75441B6676680E29C5141ADEC01B840A75441A4703DBAE29C5141EC51B80E41A754410AD7A3A0E49C514148E17AC442A7544170A670D1E49C5141E13916EE42A75441F516768AE79C51417CA55D4045A75441C6204C05E89C51418C7A18A945A75441866E16C1EA9C51412E7667AA47A75441CDCCCCDCEB9C5141AE47E15A48A7544100BBDC4AEC9C514142AA3ECB48A75441A22ECE73EE9C51414C0F82A24AA7544152B81EE5EE9C51417B14AE474AA7544100000020F49C514185EB51D84CA75441762CB9DDF69C5141FD36DF4F4EA75441000000E0FA9C514152B81E7550A75441D8DE23E7FE9C5141146D541453A75441E5BC40EB009D51411AD3C65D54A754416AF84C10059D5141DFC76E3255A75441D7A3709D059D5141EC51B84E55A75441E736CB04079D51411449143E56A754413D22A6C6089D514108771B4D57A75441AE47E1CA0D9D5141333333D358A754410AD7A3B0119D514185EB51585AA754417D2A368C129D5141A5655AD15AA754412A7B39E4149D5141CFAC310E5CA7544150034907199D5141F89CE1C95DA754415C8FC2251C9D514185EB51E85EA7544149CD30C81E9D5141A4B7432360A75441994D7920219D514138FE920F61A75441A4703D6A269D5141C3F5283C62A7544152B81EA5299D5141713D0A1763A75441A5499BFB2C9D51410C6CB80166A754417F6C861E2F9D51417C2DD41065A754413459B5F7309D5141911D81F563A75441AE47E1EA319D51417B14AE4763A75441ED5A5B00349D5141AB8F4FC262A7544132AFA0C7359D51417C4154AF61A7544109A9F377319D5141DB7A639C61A75441CDCCCC8C299D51419A99997961A75441908BF97D299D51416961E06E61A75441194F9C8E289D5141A1C0BCC160A75441DC0492BF269D5141ED84CE725FA754412717E558259D514160BD5D6F5EA75441433918F31C9D51414FD71F8A5BA754411B74A9FB179D5141F685B5025AA754410AD7A3D0179D51415C8FC2F559A7544186356A09149D5141B3CAF8B156A7544185EB51F8139D5141333333A356A75441EC51B81E119D5141B81E852B52A75441019982C9109D5141001C4A8F51A75441EF9B01450F9D5141EFC4F9C64EA7544148E17A440E9D51410AD7A3F04CA7544185EB51680F9D51415C8FC2154CA754411331C581169D5141BE8374A555A75441FFD91FF2199D51414877CB8C57A754415B7CE21B1D9D51414E85DFE158A7544114AE4721279D51411F85EBD15AA754410AD7A3600D9D5141713D0AD743A75441F95238AF089D51411C4197A93FA75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288103 - 288355
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000200000035000000EC51B8EE359D5141000000B061A75441CDCCCC8C299D51419A99997961A754418FC2F548259D51413D0AD7635EA75441E17A141E1C9D514114AE47415BA754410AD7A3D0179D51415C8FC2F559A7544185EB51F8139D5141333333A356A75441EC51B81E119D5141B81E852B52A7544148E17A440E9D51410AD7A3F04CA7544185EB51680F9D51415C8FC2154CA754419A999989169D5141000000B055A754418FC2F588189D5141C3F528EC56A75441000000D01C9D5141333333D358A7544114AE4721279D51411F85EBD15AA754410AD7A3600D9D5141713D0AD743A75441295C8F92069D514185EB51C83DA754410AD7A340FB9C5141C3F5289C33A754415C8FC215F39C5141666666962CA754411F85EBC1E59C514185EB51081AA75441E17A142EDF9C514152B81E651CA75441C3F528ACDB9C51415C8FC2A51DA7544185EB51B8D99C514114AE47C120A7544133333383D89C5141CDCCCCBC23A75441713D0AB7D79C51419A99996927A75441AE47E1FAD99C5141666666562AA7544114AE47B1DB9C51418FC2F5A82FA75441B81E858BDE9C5141713D0AD735A75441E17A14AEDE9C5141AE47E10A3AA7544148E17A34E19C5141666666C63EA75441A4703DBAE29C5141EC51B80E41A754410AD7A3A0E49C514148E17AC442A754417B14AE57E99C51419A9999C946A75441CDCCCCDCEB9C5141AE47E15A48A754410AD7A340EE9C5141B81E85CB4AA7544152B81EE5EE9C51417B14AE474AA7544100000020F49C514185EB51D84CA75441000000E0FA9C514152B81E7550A75441CDCCCCDC009D5141AE47E15A54A75441D7A3709D059D5141EC51B84E55A754417B14AE77089D514152B81E3557A75441AE47E1CA0D9D5141333333D358A754410AD7A3B0119D514185EB51585AA75441295C8F72149D5141D7A370DD5BA754410AD7A370189D51413D0AD7935DA754415C8FC2251C9D514185EB51E85EA75441CDCCCC6C209D51417B14AEE760A75441A4703D6A269D5141C3F5283C62A7544152B81EA5299D5141713D0A1763A754411F85EB212D9D51413333332366A7544114AE47412F9D5141E17A14FE64A754415C8FC295309D5141B81E853B64A75441AE47E1EA319D51417B14AE4763A75441295C8F32349D51415C8FC2B562A75441EC51B8EE359D5141000000B061A754410B000000AE47E1BAE09C5141295C8F0227A754413D0AD703E19C5141E17A140E28A75441AE47E1EAE29C5141000000D02AA75441C3F5287CE59C51415C8FC2B52EA7544152B81E25E89C51417B14AE172DA7544152B81E55EA9C51419A9999792DA754418FC2F5E8E69C51417B14AE472FA754419A999919E79C51413333338332A754419A9999E9E49C514148E17AB430A754411F85EB71E09C51416666662628A75441AE47E1BAE09C5141295C8F0227A75441
+</a>
+
+<b>
+01060000000100000001030000000100000068000000F95238AF089D51411C4197A93FA75441295C8F92069D514185EB51C83DA754414ACC7D4A049D5141703F75BB3BA754414016194C029D51411B84CDF039A754410297B07AFD9C5141869D6C9C35A75441A9B5B28BF79C51419802406C30A7544146A07BA7F39C514143AEB1132DA754415C8FC215F39C5141666666962CA75441088873C2EE9C5141EC5DC49026A7544149DF08E3EB9C51410C7CF01B29A7544147BAD7D4E99C5141DAD5CC0A2EA7544122D84224F39C5141BEFD15BA38A75441ABC89631FB9C5141DFAE2A6B3FA754414DE49616009D51416073F0B144A75441CB93E19CFD9C51419C53695846A75441629C87EEF69C5141B3DDBD8441A754414AC3BDBCF09C51414BC40E6D3CA754419100E646EA9C5141FF85968F36A75441433D062AE59C51419DC3B67231A75441F76C40A6E09C5141B010686D2AA75441FF782B5ADE9C5141CB5CD53526A754414D6DF653DB9C51413E84C1B220A75441933B3200DB9C51418FE672B71EA75441312F3C3DD99C5141919BC60122A754414733E298D89C5141D9A4298923A754412207BB58D89C51410872F38025A75441C93618D9D79C51412AE9939527A75441E367D44BD99C51414178577429A75441C8DBEFA4D99C5141E1F769E729A75441AE47E1FAD99C5141666666562AA75441A9658854DB9C51418DF1B2882EA7544114AE47B1DB9C51418FC2F5A82FA75441A810B8A6DC9C5141956AB5BC31A7544177C49E48DD9C5141F98C781B33A75441E0B77220DE9C5141430A11EF34A754419A0FC74EDE9C514180B7705335A7544134D47781DE9C5141E32643C135A75441D813F982DE9C514108CD85C435A75441B81E858BDE9C5141713D0AD735A7544139C661ADDE9C5141E53C26F539A754417FE9C69BDF9C51417AA762C83BA754419E3D39B0E09C5141D47784CE3DA75441D82C74DEE19C5141189E38C53FA754417166DBF3E19C5141DDF44EE53FA75441545D8D04E29C5141E36456FE3FA75441D9E0EB0FE29C51416FC6610F40A75441B6676680E29C5141ADEC01B840A75441A4703DBAE29C5141EC51B80E41A754410AD7A3A0E49C514148E17AC442A7544170A670D1E49C5141E13916EE42A75441F516768AE79C51417CA55D4045A75441C6204C05E89C51418C7A18A945A75441866E16C1EA9C51412E7667AA47A75441CDCCCCDCEB9C5141AE47E15A48A7544100BBDC4AEC9C514142AA3ECB48A75441A22ECE73EE9C51414C0F82A24AA7544152B81EE5EE9C51417B14AE474AA7544100000020F49C514185EB51D84CA75441762CB9DDF69C5141FD36DF4F4EA75441000000E0FA9C514152B81E7550A75441D8DE23E7FE9C5141146D541453A75441E5BC40EB009D51411AD3C65D54A754416AF84C10059D5141DFC76E3255A75441D7A3709D059D5141EC51B84E55A75441E736CB04079D51411449143E56A754413D22A6C6089D514108771B4D57A75441AE47E1CA0D9D5141333333D358A754410AD7A3B0119D514185EB51585AA754417D2A368C129D5141A5655AD15AA754412A7B39E4149D5141CFAC310E5CA7544150034907199D5141F89CE1C95DA754415C8FC2251C9D514185EB51E85EA7544149CD30C81E9D5141A4B7432360A75441994D7920219D514138FE920F61A75441A4703D6A269D5141C3F5283C62A7544152B81EA5299D5141713D0A1763A75441A5499BFB2C9D51410C6CB80166A754417F6C861E2F9D51417C2DD41065A754413459B5F7309D5141911D81F563A75441AE47E1EA319D51417B14AE4763A75441ED5A5B00349D5141AB8F4FC262A7544132AFA0C7359D51417C4154AF61A7544109A9F377319D5141DB7A639C61A75441CDCCCC8C299D51419A99997961A75441908BF97D299D51416961E06E61A75441194F9C8E289D5141A1C0BCC160A75441DC0492BF269D5141ED84CE725FA754412717E558259D514160BD5D6F5EA75441433918F31C9D51414FD71F8A5BA754411B74A9FB179D5141F685B5025AA754410AD7A3D0179D51415C8FC2F559A7544186356A09149D5141B3CAF8B156A7544185EB51F8139D5141333333A356A75441EC51B81E119D5141B81E852B52A75441019982C9109D5141001C4A8F51A75441EF9B01450F9D5141EFC4F9C64EA7544148E17A440E9D51410AD7A3F04CA7544185EB51680F9D51415C8FC2154CA754411331C581169D5141BE8374A555A75441FFD91FF2199D51414877CB8C57A754415B7CE21B1D9D51414E85DFE158A7544114AE4721279D51411F85EBD15AA754410AD7A3600D9D5141713D0AD743A75441F95238AF089D51411C4197A93FA75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288213 - 1176925
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000002000000010300000001000000140000008FC2F5C8189F5141B81E857B2FA154411F85EB411A9F51415C8FC2C52FA15441666666261C9F514148E17A0430A154411F85EBB11E9F5141D7A3707D31A15441EC51B85E219F5141713D0A4730A15441C3F528EC209F5141000000402FA15441295C8FC2239F514114AE47812EA1544114AE4761269F5141C3F5287C2EA1544114AE47C1299F514114AE47312CA1544148E17AB42B9F51413D0AD7E329A15441CDCCCCFC2C9F5141666666E628A15441D7A3701D2C9F514114AE470128A15441D7A3703D2B9F5141CDCCCC1C27A1544148E17A34189F51410AD7A3A013A154419A999999179F5141295C8F0214A15441333333C30C9F51411F85EBF11AA15441666666B6049F5141F6285C8F1EA154415C8FC225109F51413333333328A1544148E17AD4179F5141D7A370AD2EA154418FC2F5C8189F5141B81E857B2FA154410103000000010000000F000000B81E85EB079F5141295C8FE21BA154415C8FC2E50B9F514152B81EE519A15441666666560A9F51413D0AD79318A154418FC2F598F69E5141C3F5281C09A1544185EB5138EE9E5141AE47E14A02A1544185EB5158E69E5141295C8F92FAA0544133333363D79E5141C3F528CCECA0544152B81EA5D69E5141E17A143EEEA0544152B81E35D59E51411F85EB41F1A05441295C8F62D39E51413D0AD713F5A05441E17A14EEDE9E5141666666B6FFA054410AD7A3B0E39E51417B14AE7704A15441C3F5282CF09E51415C8FC2D50EA15441CDCCCCCC039F5141C3F528DC1DA15441B81E85EB079F5141295C8FE21BA15441
+</a>
+
+<b>
+0106000000010000000103000000010000001400000077A647A80A9F514109E4FDD818A154418DCE9C35009F5141EC693BA410A15441668FC7F3F09E5141634D178404A154417ADC8BEEEF9E51418EBB80AF03A154412F1D0171EE9E5141CD4C027902A15441DDAACAC6EC9E514122FB9FE000A1544130D28284D79E5141FD68D6EAECA0544133333363D79E5141C3F528CCECA0544152B81EA5D69E5141E17A143EEEA0544152B81E35D59E51411F85EB41F1A05441295C8F62D39E51413D0AD713F5A05441E17A14EEDE9E5141666666B6FFA054410AD7A3B0E39E51417B14AE7704A15441C3F5282CF09E51415C8FC2D50EA15441CDCCCCCC039F5141C3F528DC1DA154418BA6F431049F51412045C2291EA154416CFF589C079F51419EF0E94D1CA1544163CBA0320A9F514188FA2F061BA15441211DBC090C9F51418D410C1E1AA1544177A647A80A9F514109E4FDD818A15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288213 - 3478977
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000002000000010300000001000000140000008FC2F5C8189F5141B81E857B2FA154411F85EB411A9F51415C8FC2C52FA15441666666261C9F514148E17A0430A154411F85EBB11E9F5141D7A3707D31A15441EC51B85E219F5141713D0A4730A15441C3F528EC209F5141000000402FA15441295C8FC2239F514114AE47812EA1544114AE4761269F5141C3F5287C2EA1544114AE47C1299F514114AE47312CA1544148E17AB42B9F51413D0AD7E329A15441CDCCCCFC2C9F5141666666E628A15441D7A3701D2C9F514114AE470128A15441D7A3703D2B9F5141CDCCCC1C27A1544148E17A34189F51410AD7A3A013A154419A999999179F5141295C8F0214A15441333333C30C9F51411F85EBF11AA15441666666B6049F5141F6285C8F1EA154415C8FC225109F51413333333328A1544148E17AD4179F5141D7A370AD2EA154418FC2F5C8189F5141B81E857B2FA154410103000000010000000F000000B81E85EB079F5141295C8FE21BA154415C8FC2E50B9F514152B81EE519A15441666666560A9F51413D0AD79318A154418FC2F598F69E5141C3F5281C09A1544185EB5138EE9E5141AE47E14A02A1544185EB5158E69E5141295C8F92FAA0544133333363D79E5141C3F528CCECA0544152B81EA5D69E5141E17A143EEEA0544152B81E35D59E51411F85EB41F1A05441295C8F62D39E51413D0AD713F5A05441E17A14EEDE9E5141666666B6FFA054410AD7A3B0E39E51417B14AE7704A15441C3F5282CF09E51415C8FC2D50EA15441CDCCCCCC039F5141C3F528DC1DA15441B81E85EB079F5141295C8FE21BA15441
+</a>
+
+<b>
+0106000000010000000103000000010000001400000077A647A80A9F514109E4FDD818A154418DCE9C35009F5141EC693BA410A15441668FC7F3F09E5141634D178404A154417ADC8BEEEF9E51418EBB80AF03A154412F1D0171EE9E5141CD4C027902A15441DDAACAC6EC9E514122FB9FE000A1544130D28284D79E5141FD68D6EAECA0544133333363D79E5141C3F528CCECA0544152B81EA5D69E5141E17A143EEEA0544152B81E35D59E51411F85EB41F1A05441295C8F62D39E51413D0AD713F5A05441E17A14EEDE9E5141666666B6FFA054410AD7A3B0E39E51417B14AE7704A15441C3F5282CF09E51415C8FC2D50EA15441CDCCCCCC039F5141C3F528DC1DA154418BA6F431049F51412045C2291EA154416CFF589C079F51419EF0E94D1CA1544163CBA0320A9F514188FA2F061BA15441211DBC090C9F51418D410C1E1AA1544177A647A80A9F514109E4FDD818A15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288399 - 240066
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000200000019000000CDCCCCCCF0A051419A99999941A55441EC51B81EF1A05141A4703DCA44A55441AE47E18AF1A05141A4703DCA48A554415C8FC275F2A05141CDCCCC6C50A55441AE47E19AFDA051417B14AEC74DA5544152B81E8507A15141EC51B86E4BA554417B14AE2711A15141295C8F2249A55441F6285CCF1FA15141CDCCCCAC45A55441D7A3708D21A151411F85EB4145A55441EC51B82E2EA15141E17A143E42A55441713D0AF72EA15141F6285C0F42A55441AE47E1AA25A15141B81E85BB34A55441F6285CCF1DA1514185EB517829A55441D7A3704D1AA151410AD7A3802AA554419A9999A914A1514152B81E352CA5544185EB518814A15141EC51B8CE2CA554418FC2F54811A151410AD7A3F02DA554419A9999190EA15141D7A3700D2FA5544148E17A1408A151417B14AE5731A55441EC51B81EFDA05141295C8FE235A554413D0AD793F7A051416666661637A55441B81E85FBF4A051415C8FC24537A55441C3F528ACEDA051415C8FC2F538A55441D7A3706DEFA05141F6285CEF3EA55441CDCCCCCCF0A051419A99999941A55441050000009A999959F3A051413D0AD7A34AA554415C8FC2D5F4A05141EC51B86E4AA5544185EB5138F5A05141A4703D2A4DA55441713D0AB7F3A05141EC51B85E4DA554419A999959F3A051413D0AD7A34AA55441
+</a>
+
+<b>
+010600000001000000010300000001000000250000006EF925D2F0A051417F8EEACE41A55441A2665223F1A051415FDECEF544A554412FB5BD83F2A0514107B2924546A55441B06A36FFF3A05141B28A6D4347A5544178ED0E5FF5A05141D4A602CF47A5544129E3CDE4F7A05141A2A3162F49A55441966DD3D5F7A05141722F7BD64AA5544120B5EAFBF6A05141361F35854CA55441B081504EF6A05141604FA4694FA5544168ECFBCAFFA05141A68011434DA554414BA552A70EA15141AC6441BB49A55441C428D8261AA1514181B10CEC46A5544188A78A131CA15141400E1A9D45A55441420668811DA15141332C872C45A55441F09B7CAB20A15141769007FE43A55441D88942911BA151414EAEA1AD3CA554414F400A4F17A15141CBDC49183DA55441E334EDA714A151415FDC22FF3CA554418B23AEA010A151412EE081E13DA554417708EE560AA1514190E3B9AA3EA55441E4FD1EE207A1514169E407DD3EA554411FECB8C103A1514141E5550F3FA5544120E1C23301A1514190E3B9AA3EA5544120D6CCA5FEA0514124E392913EA554418CCBFD30FCA0514155DF33AF3DA5544103BE1D0CF9A05141FDCDF4A739A55441211D0683F7A05141A496F47137A55441314EB37FF5A051412D34563C37A554412D623FEBF1A0514169CECEFA37A55441CBDF2CACEDA05141D6E2CFF538A55441F077B0BDEDA05141758B703139A55441FAA118CEEDA05141C83F4C6939A55441439E2BE2EDA05141B339A4AD39A55441E38BB17AEEA05141545EEAB43BA554416136CCF0EFA05141E3396BEE3FA55441CDCCCCCCF0A051419A99999941A554416EF925D2F0A051417F8EEACE41A55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288405 - 211047
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000002000000010300000001000000120000003D0AD7D38EA35141000000D02AA75441A4703DEA96A35141000000E022A75441F6285C6F92A351416666665621A7544148E17AB48EA3514185EB51A820A75441B81E855B88A35141666666C61AA7544148E17AF478A35141666666E611A7544185EB518878A3514114AE47B119A75441B81E85EB70A35141AE47E1FA13A754415C8FC2856BA35141AE47E10A10A754413D0AD7E36BA351419A9999990DA754417B14AE0764A35141295C8F220AA754418FC2F51857A35141AE47E15A06A75441333333B34EA35141EC51B87E12A7544148E17AF469A3514148E17AF41CA75441F6285CEF71A351416666665621A75441333333C37FA35141295C8FD22CA75441CDCCCCCC86A351417B14AEA730A754413D0AD7D38EA35141000000D02AA754410103000000010000000E00000085EB510892A3514152B81E359CA75441D7A370ED87A35141CDCCCCAC70A75441F6285C4F7EA351410000001074A754410AD7A3907CA351410AD7A3707CA7544148E17A8477A35141C3F528DC7FA75441666666E677A351418FC2F5A88BA7544152B81E9575A35141AE47E14A8FA75441CDCCCC9C71A3514148E17A7490A754410AD7A34072A35141CDCCCC3C93A754410000009073A351419A99991998A75441F6285C1F76A35141295C8F52A3A754410AD7A39079A35141D7A3700DADA75441D7A370ED7BA3514185EB5148B4A7544185EB510892A3514152B81E359CA75441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000D1CFC9AE91A35141E9876AB39AA7544164EB7C8091A351415115F4EB99A75441BFF9FF0F91A3514194645A0798A75441470BC6108DA35141F70998D487A7544171A8B5F28CA35141EC04C34D86A75441A2377F9B8CA35141FF5B0CD684A75441FA41C4BA8BA351411113E80D81A75441290918388BA351416A5FF7DA7EA75441614AC94089A35141090A70AD7AA75441BF56537987A35141E4EEB91174A75441CA3CEEF285A3514142FB434A72A754414C6E16D57EA3514132A2DB9374A75441C2E9CE477FA3514143D1B29477A754416AFF33927EA35141DC81952E7AA754413E8A66377EA35141AD39EF8B7CA75441598192507AA35141BEB790CD80A754412D0CC5F579A351415F27448885A75441F5044E327AA35141F5044EDA8AA75441918809147AA351416DD20C828CA754410C29A10379A351418223870B8EA75441DDF8A66D75A351412ADC3A0B91A75441CBD6DC2B73A35141BF39D5A493A75441073DA92A74A351418DFB76BD97A754411B8E23B475A35141B2CA92889DA75441CE9F3EB777A3514191376D13A6A754410D145D097CA351413994C809B3A75441CA3CEEF285A351418751D299A7A7544136DFD0DA91A35141B86F16719BA75441D1CFC9AE91A35141E9876AB39AA75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288405 - 364888
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000002000000010300000001000000120000003D0AD7D38EA35141000000D02AA75441A4703DEA96A35141000000E022A75441F6285C6F92A351416666665621A7544148E17AB48EA3514185EB51A820A75441B81E855B88A35141666666C61AA7544148E17AF478A35141666666E611A7544185EB518878A3514114AE47B119A75441B81E85EB70A35141AE47E1FA13A754415C8FC2856BA35141AE47E10A10A754413D0AD7E36BA351419A9999990DA754417B14AE0764A35141295C8F220AA754418FC2F51857A35141AE47E15A06A75441333333B34EA35141EC51B87E12A7544148E17AF469A3514148E17AF41CA75441F6285CEF71A351416666665621A75441333333C37FA35141295C8FD22CA75441CDCCCCCC86A351417B14AEA730A754413D0AD7D38EA35141000000D02AA754410103000000010000000E00000085EB510892A3514152B81E359CA75441D7A370ED87A35141CDCCCCAC70A75441F6285C4F7EA351410000001074A754410AD7A3907CA351410AD7A3707CA7544148E17A8477A35141C3F528DC7FA75441666666E677A351418FC2F5A88BA7544152B81E9575A35141AE47E14A8FA75441CDCCCC9C71A3514148E17A7490A754410AD7A34072A35141CDCCCC3C93A754410000009073A351419A99991998A75441F6285C1F76A35141295C8F52A3A754410AD7A39079A35141D7A3700DADA75441D7A370ED7BA3514185EB5148B4A7544185EB510892A3514152B81E359CA75441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000D1CFC9AE91A35141E9876AB39AA7544164EB7C8091A351415115F4EB99A75441BFF9FF0F91A3514194645A0798A75441470BC6108DA35141F70998D487A7544171A8B5F28CA35141EC04C34D86A75441A2377F9B8CA35141FF5B0CD684A75441FA41C4BA8BA351411113E80D81A75441290918388BA351416A5FF7DA7EA75441614AC94089A35141090A70AD7AA75441BF56537987A35141E4EEB91174A75441CA3CEEF285A3514142FB434A72A754414C6E16D57EA3514132A2DB9374A75441C2E9CE477FA3514143D1B29477A754416AFF33927EA35141DC81952E7AA754413E8A66377EA35141AD39EF8B7CA75441598192507AA35141BEB790CD80A754412D0CC5F579A351415F27448885A75441F5044E327AA35141F5044EDA8AA75441918809147AA351416DD20C828CA754410C29A10379A351418223870B8EA75441DDF8A66D75A351412ADC3A0B91A75441CBD6DC2B73A35141BF39D5A493A75441073DA92A74A351418DFB76BD97A754411B8E23B475A35141B2CA92889DA75441CE9F3EB777A3514191376D13A6A754410D145D097CA351413994C809B3A75441CA3CEEF285A351418751D299A7A7544136DFD0DA91A35141B86F16719BA75441D1CFC9AE91A35141E9876AB39AA75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288428 - 391580
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000020000000103000000010000001C000000713D0AA706A35141F6285C3FE5A6544185EB51A802A35141F6285CFFDFA65441C3F5282CFDA2514148E17A54E1A6544148E17A74F3A251419A999949E3A6544133333323F2A2514152B81EE5E3A65441713D0A47F5A25141D7A3703DE4A65441333333F3F6A2514152B81E95E4A6544152B81E65F8A2514166666616E5A65441666666D6F9A25141A4703DBAE5A65441E17A144EFBA25141D7A3708DE6A65441E17A14AEFCA25141F6285C4FE7A65441CDCCCCECFEA25141CDCCCC5CE8A654416666661602A351419A999909EAA65441295C8F2205A35141B81E85BBEBA65441666666E606A351417B14AEB7ECA654417B14AEC708A3514166666696EDA654419A9999290BA351411F85EBC1EEA65441000000800DA35141A4703D0AF0A654418FC2F5080FA3514152B81EF5F0A654417B14AEB711A35141333333B3F2A654411F85EB7114A3514185EB5188F4A65441C3F5282C1AA35141AE47E1DAF7A65441713D0A871BA351413D0AD763F8A65441713D0A271AA3514152B81E85F2A65441AE47E1AA16A3514148E17AB4E9A654410AD7A39012A35141B81E856BEAA654419A9999B90EA35141C3F5286CE6A65441713D0AA706A35141F6285C3FE5A654410103000000010000002200000014AE470119A35141295C8FF2F7A65441A4703D1A17A351411F85EB01F7A654413D0AD77315A35141B81E850BF6A6544114AE478113A35141D7A370FDF4A6544152B81E6511A35141EC51B86EF3A65441D7A3705D10A35141CDCCCCACF2A654413D0AD7E30DA3514185EB5118F1A65441A4703D1A0CA35141A4703D0AF0A65441E17A140E09A35141CDCCCC8CEEA65441C3F528FC05A351415C8FC215EDA654418FC2F55803A3514166666686EBA654418FC2F5F8FEA25141CDCCCC0CE9A65441C3F5284CFDA2514148E17A74E8A65441F6285C0FFCA25141666666D6E7A65441CDCCCCCCFAA25141EC51B80EE7A65441E17A143EF9A25141295C8F12E6A654410AD7A3C0F7A25141B81E858BE5A65441B81E856BF0A25141295C8F42E4A65441B81E85BBEDA25141F6285C3FE5A65441C3F5287CE4A251413D0AD7F3E5A65441713D0AE7DDA251418FC2F598E7A65441E17A145EE6A25141295C8F82F3A6544166666606F1A251418FC2F59800A7544114AE4711EBA251415C8FC2C501A754415C8FC265F0A25141295C8F9207A75441A4703DBAF5A25141EC51B8FE08A75441CDCCCCEC05A351416666663609A75441AE47E1AA0BA3514152B81EA508A75441F6285C8F1AA35141B81E850B04A7544185EB51481CA35141A4703D2A02A75441E17A144E1DA3514185EB51F8FFA654417B14AEB71BA351411F85EB31F9A654411F85EBE11AA35141295C8FE2F8A6544114AE470119A35141295C8FF2F7A65441
+</a>
+
+<b>
+010600000001000000010300000001000000360000004D5CFB2104A35141852E3D3009A75441BD68592804A3514164CE335308A75441ADCA975706A35141BEADC99807A75441BB2BD68608A35141BEADC99807A75441E87CDF580AA3514164CE335308A75441192F275A0EA35141377D2A8106A754410F93B65C16A351410A2C21AF04A7544139155F4619A3514135EB4C3A03A75441779607301CA351416379D9AD00A75441A1C8A8721CA35141EAFCA366FCA654414200B81D1CA35141A775BE06FBA65441D917AEB71BA351417E93EB31F9A65441B06A1AB31BA35141FC873830F9A6544187E56CA91AA351413FCA560CF8A65441B12664F91AA351414689E92BF8A65441C165BE851BA351416F045463F8A6544139155F4619A35141B5326392F3A654410DC4557417A35141D45FB1D6EEA654416A724CA215A3514196DE08EDEBA654412CF1A3B812A3514199AD69D5EAA65441192F275A0EA351413D3CF648E8A6544147BDB3CD0BA35141B50B5731E7A65441BA99F83F05A3514186EBEC76E6A65441DD2785B302A351415808065EE1A65441926D0C3CFFA25141FABBF421E2A65441FCA72341FCA25141BBD78FBBE2A6544132AD8FDEF4A25141D7ECF531E4A654413FC14BE8F2A251415C3727B2E4A65441EE3BAB20ECA2514186EBEC76E6A65441F00A0C09EBA2514168FB21D4E6A65441FE07BB35E5A25141652CC1EBE7A65441DF85124CE2A25141954C2BA6E8A65441B065A891E1A251414B9D3478EAA6544168488FAAE6A2514188E159C0F1A654411D5C15DBECA2514142561E20FAA65441A9EDF221F0A2514125F830C4FDA654414E0E5DDCF0A25141AD28D0DBFEA65441882EC796F1A2514152493A96FFA65441882EC796F1A25141278A0E0B01A75441D1DDBDC4EFA25141099A436801A75441C54BE07DECA25141AEBAAD2202A7544121BD530AEFA25141915CC0C605A754412D4F3151F2A25141BEADC99807A754418CA38FD4F5A2514139D8D93E07A754415E017952F6A25141BEADC99807A7544132F51F1CF8A251411FD7E80609A75441F1C09E5EFAA25141FB74AD0E09A75441814C06AAFAA2514138AAB00F09A75441D55D1EACFAA25141FDDCB70F09A75441DEA3848700A351418F53951409A754414750C0D102A35141BA5DB92B09A754419AFA3A2203A35141C904CE2C09A75441C217323F03A35141BE96312D09A754414D5CFB2104A35141852E3D3009A75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288435 - 211158
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002B000000666666F6879B5141AE47E1BAA6B05441F6285C1F789B5141333333739BB05441A4703D9A739B5141B81E853BA2B0544152B81E35759B5141EC51B8BEA2B05441AE47E13A739B51417B14AE37A9B05441D7A3702D709B5141295C8FE2A9B05441295C8F926F9B51419A999919A7B0544148E17AD46E9B51413D0AD7F3A7B05441000000806C9B5141F6285C9FA3B05441295C8F02699B51411F85EBB19EB05441295C8F52669B514148E17A349CB0544100000010649B514114AE47019AB0544114AE4731609B5141E17A144E94B0544114AE47115F9B514148E17A1491B05441000000905D9B5141295C8F128CB054417B14AE575B9B514152B81ED588B054411F85EBC1579B5141A4703D4A85B05441B81E85AB519B51419A9999997DB05441E17A14EE509B51417B14AE277EB05441713D0A174E9B5141333333D37AB05441D7A3704D4D9B514114AE471181B05441AE47E15A4D9B5141F6285C4F8AB0544166666626509B5141000000A091B054413D0AD7C3509B5141C3F5287C92B0544185EB5148589B5141CDCCCCFC9CB054419A999919609B514114AE4791A5B05441D7A3709D689B5141713D0A57AEB05441D7A3704D729B51419A9999D9BAB05441713D0A778A9B5141EC51B86ECDB05441C3F528EC909B5141295C8F12CBB054419A9999A99A9B5141C3F528FCC5B054413D0AD7339F9B5141F6285C7FC2B054411F85EB419E9B514152B81E05C0B0544133333353A09B51415C8FC2D5BBB0544148E17A04A39B51417B14AE27BDB0544152B81E45A49B51417B14AE07BDB054411F85EBD1A59B5141CDCCCCFCBAB054417B14AE57A79B5141A4703D8AB7B05441295C8F029C9B5141B81E850BB3B054411F85EB71999B5141713D0A07B2B054417B14AE27979B5141EC51B8BEB0B054413D0AD713909B51418FC2F5C8ACB05441666666F6879B5141AE47E1BAA6B05441
+</a>
+
+<b>
+01060000000100000001030000000100000064000000AE47E15A4D9B5141F6285C4F8AB054412A8243CB4D9B514117D77C758BB0544120C4C08D4F9B5141B8288EBF8FB05441EEE94DC6509B5141999F9B6690B05441DEBDD111529B5141BFE2D16F91B05441B25DC7E3529B5141147F7CDC92B05441457F6268539B5141289DCCFB93B05441579CA4DC539B5141C1841B5E95B05441FDB88554549B5141C2BEDD4D96B05441DC973B74559B5141BD60681598B054412B5A101C569B514159B70B7D99B05441338EAA2B569B51411B8A77099AB0544185EB5148589B5141CDCCCCFC9CB05441A450D35B589B5141183D35129DB0544104DB5003599B51415F9F143C9DB05441C73343245A9B5141951E9B389DB05441A5E2E0855B9B514169BE900A9EB05441858AE81C5E9B5141DC873326A1B054413598C8F55E9B5141FA45893AA3B05441EDF7BEFC629B5141D1777959A7B0544142A29C63679B5141EBEE7254ABB05441682BE9A3699B5141A3173FF3ADB05441CAB6FC8A6C9B5141BCD141CAB1B0544109BA6661739B5141D4B0A7D7B9B054419675A4CB769B5141D74C0290BCB054419C5DAD8A7A9B5141973874B7BEB05441D35AC5F0819B51414D06111AC4B054414F846270839B51410DF28241C6B05441AE15C8C7859B514196762C91C7B054417175BECE899B5141E8AC8518CAB054412E9514628C9B5141D28B3B38CBB05441A0F873D18E9B514183C96690CAB05441A36CF8B0909B51413DCDCFF8C8B05441FD3A8960929B514153EE19D9C7B05441220A1A10949B5141F7D03861C7B054417A9EE8CF949B5141CDDDF468C8B05441140BBD14959B51410957C7C4C8B054419A9999A99A9B5141C3F528FCC5B054412E91568B9B9B5141D21AC14EC5B05441D8A453D59E9B5141DCDC739AC2B05441374B16119F9B5141BE3AD66CC2B0544189E27E2D9E9B5141B5D320FBBFB0544142516B49A09B5141E8E08EE9BBB0544133333353A09B51415C8FC2D5BBB054413CEAB5F5A29B514192757020BDB05441D694AE48A49B51418D66DE02BDB0544198EF2849A49B514115405B02BDB0544166303D48A59B51414D5E3AB2BBB05441A0B290ABA59B5141F0396804BBB054410A9F41A3A69B51417819C922B9B05441DE9B0043A79B51415E7B77A6B7B0544120DBAC5CA19B5141D40BE14DB5B054416EEEB966999B51417340B906B2B054415FAA2309909B5141F12E13C8ACB0544104183DE3879B5141964495EDA6B0544140E766D5789B51418700D6F49BB05441EE6A0EA9789B5141FFA741D59BB05441E4E99E68789B51419FDB5EA79BB05441977A8137789B51415C0C65849BB05441165F6822789B51411BCE5E759BB05441184F8EED749B514100D4A447A0B05441D413179D739B51419A1A6E3CA2B0544152B81E35759B5141EC51B8BEA2B05441AE47E13A739B51417B14AE37A9B05441D6D6D2D9719B51419B4CE284A9B054418DA43CB3719B51417165528DA9B05441D7A3702D709B5141295C8FE2A9B054415B188FE46F9B5141D0F91093A8B05441D3CCA8C66F9B514148EA6D09A8B0544167B786996F9B514156EFAA39A7B0544164DF5BDA6E9B5141E41517EDA7B0544148E17AD46E9B51413D0AD7F3A7B0544193A4AD7D6E9B514192C78752A7B054419CF01A556D9B51417174F263A5B05441EEC30D776C9B51410A1BD8A7A3B054415210D9FE689B5141349E8CAF9EB054417E55AE2E669B5141B195673F9CB0544129268CEE639B5141126745FF99B05441A2632A5A629B5141A458687C97B0544114AE4731609B5141E17A144E94B05441E09B79755F9B51411BADB43392B0544114AA40F65E9B51416BAABCFE90B05441473C1D3A5E9B5141693A92488EB05441000000905D9B5141295C8F128CB054416D6E7FC95C9B514161A3DAF08AB05441DA571C925C9B51417E865CAA8AB054419BBF42F45B9B514127ABA4B989B054417B14AE575B9B514152B81ED588B054411582E5AE5A9B51413762562E88B05441E26F41C4579B51418F6F525A85B0544128F22403549B5141D6A86AA580B05441E29969B4519B51417880E7AD7DB0544194B3C6F9509B5141F569E81E7EB05441E17A14EE509B51417B14AE277EB05441511821ED509B5141D8B390267EB05441A9486ADD509B5141A46914307EB054416C3DDD114F9B5141BEDB4CF97BB05441713D0A174E9B5141333333D37AB05441D7A3704D4D9B514114AE471181B05441AE47E15A4D9B5141F6285C4F8AB05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288435 - 371529
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002B000000666666F6879B5141AE47E1BAA6B05441F6285C1F789B5141333333739BB05441A4703D9A739B5141B81E853BA2B0544152B81E35759B5141EC51B8BEA2B05441AE47E13A739B51417B14AE37A9B05441D7A3702D709B5141295C8FE2A9B05441295C8F926F9B51419A999919A7B0544148E17AD46E9B51413D0AD7F3A7B05441000000806C9B5141F6285C9FA3B05441295C8F02699B51411F85EBB19EB05441295C8F52669B514148E17A349CB0544100000010649B514114AE47019AB0544114AE4731609B5141E17A144E94B0544114AE47115F9B514148E17A1491B05441000000905D9B5141295C8F128CB054417B14AE575B9B514152B81ED588B054411F85EBC1579B5141A4703D4A85B05441B81E85AB519B51419A9999997DB05441E17A14EE509B51417B14AE277EB05441713D0A174E9B5141333333D37AB05441D7A3704D4D9B514114AE471181B05441AE47E15A4D9B5141F6285C4F8AB0544166666626509B5141000000A091B054413D0AD7C3509B5141C3F5287C92B0544185EB5148589B5141CDCCCCFC9CB054419A999919609B514114AE4791A5B05441D7A3709D689B5141713D0A57AEB05441D7A3704D729B51419A9999D9BAB05441713D0A778A9B5141EC51B86ECDB05441C3F528EC909B5141295C8F12CBB054419A9999A99A9B5141C3F528FCC5B054413D0AD7339F9B5141F6285C7FC2B054411F85EB419E9B514152B81E05C0B0544133333353A09B51415C8FC2D5BBB0544148E17A04A39B51417B14AE27BDB0544152B81E45A49B51417B14AE07BDB054411F85EBD1A59B5141CDCCCCFCBAB054417B14AE57A79B5141A4703D8AB7B05441295C8F029C9B5141B81E850BB3B054411F85EB71999B5141713D0A07B2B054417B14AE27979B5141EC51B8BEB0B054413D0AD713909B51418FC2F5C8ACB05441666666F6879B5141AE47E1BAA6B05441
+</a>
+
+<b>
+01060000000100000001030000000100000064000000AE47E15A4D9B5141F6285C4F8AB054412A8243CB4D9B514117D77C758BB0544120C4C08D4F9B5141B8288EBF8FB05441EEE94DC6509B5141999F9B6690B05441DEBDD111529B5141BFE2D16F91B05441B25DC7E3529B5141147F7CDC92B05441457F6268539B5141289DCCFB93B05441579CA4DC539B5141C1841B5E95B05441FDB88554549B5141C2BEDD4D96B05441DC973B74559B5141BD60681598B054412B5A101C569B514159B70B7D99B05441338EAA2B569B51411B8A77099AB0544185EB5148589B5141CDCCCCFC9CB05441A450D35B589B5141183D35129DB0544104DB5003599B51415F9F143C9DB05441C73343245A9B5141951E9B389DB05441A5E2E0855B9B514169BE900A9EB05441858AE81C5E9B5141DC873326A1B054413598C8F55E9B5141FA45893AA3B05441EDF7BEFC629B5141D1777959A7B0544142A29C63679B5141EBEE7254ABB05441682BE9A3699B5141A3173FF3ADB05441CAB6FC8A6C9B5141BCD141CAB1B0544109BA6661739B5141D4B0A7D7B9B054419675A4CB769B5141D74C0290BCB054419C5DAD8A7A9B5141973874B7BEB05441D35AC5F0819B51414D06111AC4B054414F846270839B51410DF28241C6B05441AE15C8C7859B514196762C91C7B054417175BECE899B5141E8AC8518CAB054412E9514628C9B5141D28B3B38CBB05441A0F873D18E9B514183C96690CAB05441A36CF8B0909B51413DCDCFF8C8B05441FD3A8960929B514153EE19D9C7B05441220A1A10949B5141F7D03861C7B054417A9EE8CF949B5141CDDDF468C8B05441140BBD14959B51410957C7C4C8B054419A9999A99A9B5141C3F528FCC5B054412E91568B9B9B5141D21AC14EC5B05441D8A453D59E9B5141DCDC739AC2B05441374B16119F9B5141BE3AD66CC2B0544189E27E2D9E9B5141B5D320FBBFB0544142516B49A09B5141E8E08EE9BBB0544133333353A09B51415C8FC2D5BBB054413CEAB5F5A29B514192757020BDB05441D694AE48A49B51418D66DE02BDB0544198EF2849A49B514115405B02BDB0544166303D48A59B51414D5E3AB2BBB05441A0B290ABA59B5141F0396804BBB054410A9F41A3A69B51417819C922B9B05441DE9B0043A79B51415E7B77A6B7B0544120DBAC5CA19B5141D40BE14DB5B054416EEEB966999B51417340B906B2B054415FAA2309909B5141F12E13C8ACB0544104183DE3879B5141964495EDA6B0544140E766D5789B51418700D6F49BB05441EE6A0EA9789B5141FFA741D59BB05441E4E99E68789B51419FDB5EA79BB05441977A8137789B51415C0C65849BB05441165F6822789B51411BCE5E759BB05441184F8EED749B514100D4A447A0B05441D413179D739B51419A1A6E3CA2B0544152B81E35759B5141EC51B8BEA2B05441AE47E13A739B51417B14AE37A9B05441D6D6D2D9719B51419B4CE284A9B054418DA43CB3719B51417165528DA9B05441D7A3702D709B5141295C8FE2A9B054415B188FE46F9B5141D0F91093A8B05441D3CCA8C66F9B514148EA6D09A8B0544167B786996F9B514156EFAA39A7B0544164DF5BDA6E9B5141E41517EDA7B0544148E17AD46E9B51413D0AD7F3A7B0544193A4AD7D6E9B514192C78752A7B054419CF01A556D9B51417174F263A5B05441EEC30D776C9B51410A1BD8A7A3B054415210D9FE689B5141349E8CAF9EB054417E55AE2E669B5141B195673F9CB0544129268CEE639B5141126745FF99B05441A2632A5A629B5141A458687C97B0544114AE4731609B5141E17A144E94B05441E09B79755F9B51411BADB43392B0544114AA40F65E9B51416BAABCFE90B05441473C1D3A5E9B5141693A92488EB05441000000905D9B5141295C8F128CB054416D6E7FC95C9B514161A3DAF08AB05441DA571C925C9B51417E865CAA8AB054419BBF42F45B9B514127ABA4B989B054417B14AE575B9B514152B81ED588B054411582E5AE5A9B51413762562E88B05441E26F41C4579B51418F6F525A85B0544128F22403549B5141D6A86AA580B05441E29969B4519B51417880E7AD7DB0544194B3C6F9509B5141F569E81E7EB05441E17A14EE509B51417B14AE277EB05441511821ED509B5141D8B390267EB05441A9486ADD509B5141A46914307EB054416C3DDD114F9B5141BEDB4CF97BB05441713D0A174E9B5141333333D37AB05441D7A3704D4D9B514114AE471181B05441AE47E15A4D9B5141F6285C4F8AB05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288473 - 1178206
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000200000001030000000200000032000000666666A66A9A5141A4703D2A0EB0544185EB5168699A51419A9999390EB0544133333393679A5141F6285CEF0DB0544185EB5158679A5141A4703DEA0EB054417B14AE57649A51411F85EB710EB05441F6285C9F649A51411F85EBC10CB05441F6285C3F629A51411F85EB910CB0544166666646629A5141EC51B8BE0BB05441713D0A07619A514114AE47A10BB05441AE47E15A619A5141F6285C4F07B05441F6285C8F659A51417B14AEB707B05441E17A14FE669A5141A4703D7A05B05441000000D0689A5141000000D001B054418FC2F518659A51415C8FC2A500B0544185EB51E8609A51418FC2F54803B05441E17A145E609A5141B81E85AB03B054413D0AD763619A5141D7A370AD04B05441AE47E1AA609A5141CDCCCCBC05B0544148E17A845F9A5141B81E851B06B05441CDCCCC2C5E9A5141F6285C7F06B0544185EB51585D9A5141C3F5288C08B054411F85EB515C9A5141C3F528AC0BB05441333333735B9A514152B81EA50DB05441666666865A9A5141A4703DAA10B0544185EB5118609A514114AE472112B054413D0AD733689A5141B81E859B14B0544185EB51086E9A5141D7A3704D16B0544152B81EC56D9A5141295C8F4214B0544114AE47C16E9A51417B14AEA712B0544114AE47E16F9A5141D7A3704D12B054418FC2F528719A5141EC51B88E12B05441A4703DAA729A51413D0AD71314B054417B14AE27739A51415C8FC20514B054410AD7A340739A51410AD7A3D00EB05441333333D3739A5141D7A370DD0EB05441713D0A87759A514114AE47D107B054418FC2F588719A5141D7A370FD04B054411F85EBE16C9A5141713D0AB706B0544114AE47E16D9A51418FC2F53809B054413D0AD7C36D9A5141B81E851B0AB05441000000B06D9A5141666666B60AB054417B14AE176D9A5141295C8FA20AB05441D7A370ED6C9A51419A9999890BB05441D7A370DD6C9A5141E17A14CE0BB054418FC2F5986C9A5141E17A14BE0BB054418FC2F5A86C9A51419A9999790BB054415C8FC2C56C9A5141CDCCCCCC0AB054418FC2F5F86C9A514114AE476109B05441D7A3706D6B9A514114AE474109B05441666666A66A9A5141A4703D2A0EB0544107000000666666965F9A5141D7A3705D0FB0544114AE47F15E9A51417B14AEE70EB0544114AE47F15E9A51413D0AD7130EB054413D0AD703609A5141713D0A670DB0544148E17A84619A5141B81E852B0EB05441EC51B80E619A51413D0AD7A30FB05441666666965F9A5141D7A3705D0FB054410103000000010000000D00000048E17A94699A51418FC2F5E801B054417B14AE77679A5141000000A005B054418FC2F5A8669A51410000003007B0544114AE47C1659A5141EC51B83E09B05441E17A145E659A51411F85EBA10AB05441EC51B81E659A5141D7A3703D0CB054419A9999A9679A51415C8FC2A50CB054411F85EB21689A514148E17A6409B054419A999979689A51416666661607B05441AE47E1CA689A514148E17AA405B05441295C8FB26C9A51418FC2F56806B05441C3F528DC709A51411F85EB9104B0544148E17A94699A51418FC2F5E801B05441
+</a>
+
+<b>
+0106000000010000000103000000020000003C000000FD3EB5CC709A5141A41CC09804B05441006072C0709A51412CD7C09404B0544148E17A94699A51418FC2F5E801B054417B14AE77679A5141000000A005B054418FC2F5A8669A51410000003007B0544114AE47C1659A5141EC51B83E09B05441E17A145E659A51411F85EBA10AB05441EC51B81E659A5141D7A3703D0CB054419A9999A9679A51415C8FC2A50CB05441F1A5AB21689A5141E839356609B0544100D34FC5689A51412D63D2BD05B0544104AF8D0C6D9A51410181945106B05441B75D63B06C9A5141503A176608B05441A6AED8ED6D9A51419E8B41C208B05441EDA20C216E9A514150A26F1E0AB0544164179BE36D9A51410A1694A30BB054418FC2F5986C9A5141E17A14BE0BB05441690C39546C9A51413439F8090BB05441690C39546C9A51417468DD5B09B05441F88162736B9A5141F6CEC24109B05441D31C8D036B9A514126C4FADD0BB05441666666A66A9A5141A4703D2A0EB0544185EB5168699A51419A9999390EB0544133333393679A5141F6285CEF0DB0544185EB5158679A5141A4703DEA0EB054417B14AE57649A51411F85EB710EB05441F6285C9F649A51411F85EBC10CB05441F6285C3F629A51411F85EB910CB0544166666646629A5141EC51B8BE0BB05441713D0A07619A514114AE47A10BB05441AE47E15A619A5141F6285C4F07B05441F6285C8F659A51417B14AEB707B05441E17A14FE669A5141A4703D7A05B05441000000D0689A5141000000D001B054418FC2F518659A51415C8FC2A500B0544185EB51E8609A51418FC2F54803B05441E17A145E609A5141B81E85AB03B054413D0AD763619A5141D7A370AD04B05441AE47E1AA609A5141CDCCCCBC05B0544148E17A845F9A5141B81E851B06B05441CDCCCC2C5E9A5141F6285C7F06B0544185EB51585D9A5141C3F5288C08B054411F85EB515C9A5141C3F528AC0BB05441333333735B9A514152B81EA50DB05441666666865A9A5141A4703DAA10B0544185EB5118609A514114AE472112B054413D0AD733689A5141B81E859B14B0544185EB51086E9A5141D7A3704D16B0544152B81EC56D9A5141295C8F4214B0544114AE47C16E9A51417B14AEA712B0544114AE47E16F9A5141D7A3704D12B054418FC2F528719A5141EC51B88E12B05441A4703DAA729A51413D0AD71314B054417B14AE27739A51415C8FC20514B054410AD7A340739A51410AD7A3D00EB05441333333D3739A5141D7A370DD0EB05441713D0A87759A514114AE47D107B054418FC2F588719A5141D7A370FD04B054418E244DCE709A5141EBCD0B9804B05441FD3EB5CC709A5141A41CC09804B0544107000000666666965F9A5141D7A3705D0FB0544114AE47F15E9A51417B14AEE70EB0544114AE47F15E9A51413D0AD7130EB054413D0AD703609A5141713D0A670DB0544148E17A84619A5141B81E852B0EB05441EC51B80E619A51413D0AD7A30FB05441666666965F9A5141D7A3705D0FB05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288473 - 3593679
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000200000001030000000200000032000000666666A66A9A5141A4703D2A0EB0544185EB5168699A51419A9999390EB0544133333393679A5141F6285CEF0DB0544185EB5158679A5141A4703DEA0EB054417B14AE57649A51411F85EB710EB05441F6285C9F649A51411F85EBC10CB05441F6285C3F629A51411F85EB910CB0544166666646629A5141EC51B8BE0BB05441713D0A07619A514114AE47A10BB05441AE47E15A619A5141F6285C4F07B05441F6285C8F659A51417B14AEB707B05441E17A14FE669A5141A4703D7A05B05441000000D0689A5141000000D001B054418FC2F518659A51415C8FC2A500B0544185EB51E8609A51418FC2F54803B05441E17A145E609A5141B81E85AB03B054413D0AD763619A5141D7A370AD04B05441AE47E1AA609A5141CDCCCCBC05B0544148E17A845F9A5141B81E851B06B05441CDCCCC2C5E9A5141F6285C7F06B0544185EB51585D9A5141C3F5288C08B054411F85EB515C9A5141C3F528AC0BB05441333333735B9A514152B81EA50DB05441666666865A9A5141A4703DAA10B0544185EB5118609A514114AE472112B054413D0AD733689A5141B81E859B14B0544185EB51086E9A5141D7A3704D16B0544152B81EC56D9A5141295C8F4214B0544114AE47C16E9A51417B14AEA712B0544114AE47E16F9A5141D7A3704D12B054418FC2F528719A5141EC51B88E12B05441A4703DAA729A51413D0AD71314B054417B14AE27739A51415C8FC20514B054410AD7A340739A51410AD7A3D00EB05441333333D3739A5141D7A370DD0EB05441713D0A87759A514114AE47D107B054418FC2F588719A5141D7A370FD04B054411F85EBE16C9A5141713D0AB706B0544114AE47E16D9A51418FC2F53809B054413D0AD7C36D9A5141B81E851B0AB05441000000B06D9A5141666666B60AB054417B14AE176D9A5141295C8FA20AB05441D7A370ED6C9A51419A9999890BB05441D7A370DD6C9A5141E17A14CE0BB054418FC2F5986C9A5141E17A14BE0BB054418FC2F5A86C9A51419A9999790BB054415C8FC2C56C9A5141CDCCCCCC0AB054418FC2F5F86C9A514114AE476109B05441D7A3706D6B9A514114AE474109B05441666666A66A9A5141A4703D2A0EB0544107000000666666965F9A5141D7A3705D0FB0544114AE47F15E9A51417B14AEE70EB0544114AE47F15E9A51413D0AD7130EB054413D0AD703609A5141713D0A670DB0544148E17A84619A5141B81E852B0EB05441EC51B80E619A51413D0AD7A30FB05441666666965F9A5141D7A3705D0FB054410103000000010000000D00000048E17A94699A51418FC2F5E801B054417B14AE77679A5141000000A005B054418FC2F5A8669A51410000003007B0544114AE47C1659A5141EC51B83E09B05441E17A145E659A51411F85EBA10AB05441EC51B81E659A5141D7A3703D0CB054419A9999A9679A51415C8FC2A50CB054411F85EB21689A514148E17A6409B054419A999979689A51416666661607B05441AE47E1CA689A514148E17AA405B05441295C8FB26C9A51418FC2F56806B05441C3F528DC709A51411F85EB9104B0544148E17A94699A51418FC2F5E801B05441
+</a>
+
+<b>
+0106000000010000000103000000020000003C000000FD3EB5CC709A5141A41CC09804B05441006072C0709A51412CD7C09404B0544148E17A94699A51418FC2F5E801B054417B14AE77679A5141000000A005B054418FC2F5A8669A51410000003007B0544114AE47C1659A5141EC51B83E09B05441E17A145E659A51411F85EBA10AB05441EC51B81E659A5141D7A3703D0CB054419A9999A9679A51415C8FC2A50CB05441F1A5AB21689A5141E839356609B0544100D34FC5689A51412D63D2BD05B0544104AF8D0C6D9A51410181945106B05441B75D63B06C9A5141503A176608B05441A6AED8ED6D9A51419E8B41C208B05441EDA20C216E9A514150A26F1E0AB0544164179BE36D9A51410A1694A30BB054418FC2F5986C9A5141E17A14BE0BB05441690C39546C9A51413439F8090BB05441690C39546C9A51417468DD5B09B05441F88162736B9A5141F6CEC24109B05441D31C8D036B9A514126C4FADD0BB05441666666A66A9A5141A4703D2A0EB0544185EB5168699A51419A9999390EB0544133333393679A5141F6285CEF0DB0544185EB5158679A5141A4703DEA0EB054417B14AE57649A51411F85EB710EB05441F6285C9F649A51411F85EBC10CB05441F6285C3F629A51411F85EB910CB0544166666646629A5141EC51B8BE0BB05441713D0A07619A514114AE47A10BB05441AE47E15A619A5141F6285C4F07B05441F6285C8F659A51417B14AEB707B05441E17A14FE669A5141A4703D7A05B05441000000D0689A5141000000D001B054418FC2F518659A51415C8FC2A500B0544185EB51E8609A51418FC2F54803B05441E17A145E609A5141B81E85AB03B054413D0AD763619A5141D7A370AD04B05441AE47E1AA609A5141CDCCCCBC05B0544148E17A845F9A5141B81E851B06B05441CDCCCC2C5E9A5141F6285C7F06B0544185EB51585D9A5141C3F5288C08B054411F85EB515C9A5141C3F528AC0BB05441333333735B9A514152B81EA50DB05441666666865A9A5141A4703DAA10B0544185EB5118609A514114AE472112B054413D0AD733689A5141B81E859B14B0544185EB51086E9A5141D7A3704D16B0544152B81EC56D9A5141295C8F4214B0544114AE47C16E9A51417B14AEA712B0544114AE47E16F9A5141D7A3704D12B054418FC2F528719A5141EC51B88E12B05441A4703DAA729A51413D0AD71314B054417B14AE27739A51415C8FC20514B054410AD7A340739A51410AD7A3D00EB05441333333D3739A5141D7A370DD0EB05441713D0A87759A514114AE47D107B054418FC2F588719A5141D7A370FD04B054418E244DCE709A5141EBCD0B9804B05441FD3EB5CC709A5141A41CC09804B0544107000000666666965F9A5141D7A3705D0FB0544114AE47F15E9A51417B14AEE70EB0544114AE47F15E9A51413D0AD7130EB054413D0AD703609A5141713D0A670DB0544148E17A84619A5141B81E852B0EB05441EC51B80E619A51413D0AD7A30FB05441666666965F9A5141D7A3705D0FB05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288556 - 211307
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000370000003D0AD7A304915141E17A14AE43AC54418FC2F588019151413D0AD7F340AC544148E17A7400915141000000F040AC544133333373FF905141000000D03FAC54413D0AD753FD905141B81E855B3DAC5441E17A143EFA905141F6285CDF3AAC54419A9999C9F6905141AE47E11A3BAC544100000010F5905141A4703D7A3BAC5441713D0A07F4905141333333C33CAC54419A999939F690514114AE47013FAC54413D0AD733FB905141713D0AE744AC54413D0AD7C3009151419A99998941AC5441D7A370CD0391514152B81E6544AC5441AE47E1BA04915141713D0A1746AC54410AD7A37007915141A4703DCA4CAC5441EC51B8DE0A91514114AE47D14CAC5441D7A370BD0A915141B81E859B4EAC544100000030089151413D0AD7A34EAC544114AE478108915141CDCCCC6C4FAC5441CDCCCCCC0C915141E17A148E4FAC5441295C8F321D915141F6285CFF51AC5441D7A3705D1F915141295C8F2261AC544152B81E55259151413D0AD74362AC54415C8FC2A530915141713D0AE761AC5441F6285CAF30915141EC51B80E67AC54410000002038915141A4703D2A65AC5441333333F33E915141333333B360AC5441000000003E9151419A9999D954AC5441C3F5289C44915141D7A3703D53AC544185EB51B83F915141CDCCCCCC49AC5441D7A3700D3E915141A4703D2A49AC54417B14AEB73E915141F6285C5F44AC5441666666E654915141F6285C6F2EAC54415C8FC2B5589151418FC2F5B82AAC5441AE47E1FA5D9151415C8FC29525AC5441F6285CBF6B915141AE47E10A18AC54411F85EB816C915141C3F5284C17AC54413D0AD7A369915141A4703D5A12AC5441713D0A37669151417B14AE670CAC5441B81E85EB63915141666666260CAC5441E17A142E629151415C8FC2D50BAC5441295C8FD2609151413D0AD7730BAC54417B14AEF7509151410AD7A3E018AC5441A4703D0A3B9151419A9999392EAC544166666656369151417B14AED72FAC54410AD7A3202F915141A4703D4A32AC54413333333325915141B81E85AB35AC5441CDCCCC8C1B9151418FC2F52838AC5441713D0A1718915141F6285CAF38AC5441EC51B81E0F915141EC51B85E39AC54411F85EBF10E915141666666363DAC5441A4703D5A0E91514152B81E9540AC5441B81E852B0D915141D7A3704D43AC54411F85EB51089151413D0AD7F343AC54413D0AD7A304915141E17A14AE43AC5441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000E6EC3F0A3B9151412C2E97392EAC544166666656369151417B14AED72FAC5441AC2214AE369151411DAF009032AC544102A378463C9151410D30A2EE39AC5441F1AFD0FB3D915141A4C250633CAC54413737D2F13E9151410AD654F33EAC54416AABADB73E9151413FF25C5F44AC5441907031025491514137E00B512FAC5441FD7067E6549151413D1D5B6F2EAC5441BFDC521E559151415910DE382EAC54415C8FC2B5589151418FC2F5B82AAC5441EACFEA605A91514169E08A1829AC54413776E0FA5D9151417941C29525AC54415EFB5BBF6B91514191EDDF0A18AC544127BC35126C915141A850AAB917AC54411F85EB816C915141C3F5284C17AC54413D0AD7A369915141A4703D5A12AC5441713D0A37669151417B14AE670CAC544135A792A665915141E6CAA0570CAC5441C4DC83EB63915141C3B367260CAC5441E5B2132E6291514153B6C2D50BAC5441DAB5079460915141055203B30BAC5441CF72D4A55A915141B2194DAE10AC54417B14AEF7509151410AD7A3E018AC5441E6EC3F0A3B9151412C2E97392EAC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>288556 - 263226
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000370000003D0AD7A304915141E17A14AE43AC54418FC2F588019151413D0AD7F340AC544148E17A7400915141000000F040AC544133333373FF905141000000D03FAC54413D0AD753FD905141B81E855B3DAC5441E17A143EFA905141F6285CDF3AAC54419A9999C9F6905141AE47E11A3BAC544100000010F5905141A4703D7A3BAC5441713D0A07F4905141333333C33CAC54419A999939F690514114AE47013FAC54413D0AD733FB905141713D0AE744AC54413D0AD7C3009151419A99998941AC5441D7A370CD0391514152B81E6544AC5441AE47E1BA04915141713D0A1746AC54410AD7A37007915141A4703DCA4CAC5441EC51B8DE0A91514114AE47D14CAC5441D7A370BD0A915141B81E859B4EAC544100000030089151413D0AD7A34EAC544114AE478108915141CDCCCC6C4FAC5441CDCCCCCC0C915141E17A148E4FAC5441295C8F321D915141F6285CFF51AC5441D7A3705D1F915141295C8F2261AC544152B81E55259151413D0AD74362AC54415C8FC2A530915141713D0AE761AC5441F6285CAF30915141EC51B80E67AC54410000002038915141A4703D2A65AC5441333333F33E915141333333B360AC5441000000003E9151419A9999D954AC5441C3F5289C44915141D7A3703D53AC544185EB51B83F915141CDCCCCCC49AC5441D7A3700D3E915141A4703D2A49AC54417B14AEB73E915141F6285C5F44AC5441666666E654915141F6285C6F2EAC54415C8FC2B5589151418FC2F5B82AAC5441AE47E1FA5D9151415C8FC29525AC5441F6285CBF6B915141AE47E10A18AC54411F85EB816C915141C3F5284C17AC54413D0AD7A369915141A4703D5A12AC5441713D0A37669151417B14AE670CAC5441B81E85EB63915141666666260CAC5441E17A142E629151415C8FC2D50BAC5441295C8FD2609151413D0AD7730BAC54417B14AEF7509151410AD7A3E018AC5441A4703D0A3B9151419A9999392EAC544166666656369151417B14AED72FAC54410AD7A3202F915141A4703D4A32AC54413333333325915141B81E85AB35AC5441CDCCCC8C1B9151418FC2F52838AC5441713D0A1718915141F6285CAF38AC5441EC51B81E0F915141EC51B85E39AC54411F85EBF10E915141666666363DAC5441A4703D5A0E91514152B81E9540AC5441B81E852B0D915141D7A3704D43AC54411F85EB51089151413D0AD7F343AC54413D0AD7A304915141E17A14AE43AC5441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000E6EC3F0A3B9151412C2E97392EAC544166666656369151417B14AED72FAC5441AC2214AE369151411DAF009032AC544102A378463C9151410D30A2EE39AC5441F1AFD0FB3D915141A4C250633CAC54413737D2F13E9151410AD654F33EAC54416AABADB73E9151413FF25C5F44AC5441907031025491514137E00B512FAC5441FD7067E6549151413D1D5B6F2EAC5441BFDC521E559151415910DE382EAC54415C8FC2B5589151418FC2F5B82AAC5441EACFEA605A91514169E08A1829AC54413776E0FA5D9151417941C29525AC54415EFB5BBF6B91514191EDDF0A18AC544127BC35126C915141A850AAB917AC54411F85EB816C915141C3F5284C17AC54413D0AD7A369915141A4703D5A12AC5441713D0A37669151417B14AE670CAC544135A792A665915141E6CAA0570CAC5441C4DC83EB63915141C3B367260CAC5441E5B2132E6291514153B6C2D50BAC5441DAB5079460915141055203B30BAC5441CF72D4A55A915141B2194DAE10AC54417B14AEF7509151410AD7A3E018AC5441E6EC3F0A3B9151412C2E97392EAC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>484247 - 214009
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000130000008FC2F5880F1C5141666666564608554152B81E751C1C5141E17A144E39085541F6285C3F161C5141713D0AA736085541A4703D3A141C51415C8FC20535085541E17A141E131C51419A99993933085541C3F528DC121C51417B14AE27320855419A999929121C514114AE47D12F085541713D0AB7131C51411F85EB312A085541000000500F1C5141D7A3700D29085541A4703D9A0D1C5141F6285C5F2A0855413D0AD7F30A1C5141E17A143E2D085541A4703D8A061C5141B81E852B3208554133333333021C51419A9999993908554148E17A54FF1B514185EB51B83D085541D7A370BDF91B51415C8FC2B544085541713D0AB7F51B514148E17AB447085541F6285C5F001C51415C8FC2A552085541C3F528BC061C5141AE47E10A4D0855418FC2F5880F1C51416666665646085541
+</a>
+
+<b>
+01060000000100000001030000000100000024000000A4703D8A061C5141B81E852B3208554166138137061C51415C8329B93208554171EE06BD051C514103556B513408554181DAE0CE041C51410571FB5F35085541186A2495031C5141DA3B617037085541B9194D06031C5141E4B74BD7380855415F5BA20C021C51413E76F6D039085541C5E72D04021C51416C9E19DD39085541A3912EFC011C5141FFA694E8390855419FF8F7DF011C514113FB14113A085541322FF0AA011C5141AFE83B1A3B08554199E85CC3001C514127A57DAF3C0855417CCD388BFE1B51410D8FFBB33E085541CF71C509FE1B5141CA93DA553F0855412BE2B2C9FB1B514130958404430855410AB1C286F91B514151C67447450855411A91A29DF71B51415EAA674A46085541ACCBA024F71B5141AA3472A446085541C35DC5EAF51B514190ADFC8D4708554112EF256CFE1B51417248B0665008554168FD926B081C51416FC729E345085541D094A5AD081C514199F1BA904208554119E78C88131C514197CA19FF34085541B18A56FC131C514197CA19FF3408554159889F66131C5141ACC7E8FD3308554180A0F9A0121C514110E0BCA33308554180A0F9A0121C51417C6A0EF6320855415C41EE97101C51414B80B19A310855412244C314131C5141D93374B92B08554192FC2F2D121C51414F1BFC972A085541606F095E101C514154ECE0D12A085541953E191B0E1C514145BEC50B2B08554177B0F24B0C1C5141DBD63D2D2C085541C209545B091C5141C06739793008554140FBD1D9061C5141FCD1A6D231085541A4703D8A061C5141B81E852B32085541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>484247 - 357131
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000130000008FC2F5880F1C5141666666564608554152B81E751C1C5141E17A144E39085541F6285C3F161C5141713D0AA736085541A4703D3A141C51415C8FC20535085541E17A141E131C51419A99993933085541C3F528DC121C51417B14AE27320855419A999929121C514114AE47D12F085541713D0AB7131C51411F85EB312A085541000000500F1C5141D7A3700D29085541A4703D9A0D1C5141F6285C5F2A0855413D0AD7F30A1C5141E17A143E2D085541A4703D8A061C5141B81E852B3208554133333333021C51419A9999993908554148E17A54FF1B514185EB51B83D085541D7A370BDF91B51415C8FC2B544085541713D0AB7F51B514148E17AB447085541F6285C5F001C51415C8FC2A552085541C3F528BC061C5141AE47E10A4D0855418FC2F5880F1C51416666665646085541
+</a>
+
+<b>
+01060000000100000001030000000100000029000000A4703D8A061C5141B81E852B3208554165138137061C51415F8329B93208554171EE06BD051C514103556B51340855417EDAE0CE041C51410A71FB5F35085541156A2495031C5141D73B617037085541B9194D06031C5141E4B74BD7380855415A5BA20C021C51414376F6D039085541C2E72D04021C51416F9E19DD390855411EEB5CE6011C5141CF13E7073A085541A0F8F7DF011C514111FB14113A085541322FF0AA011C5141AFE83B1A3B08554199E85CC3001C514127A57DAF3C0855417ACD388BFE1B51410C8FFBB33E085541CB71C509FE1B5141C893DA553F0855412BE2B2C9FB1B514130958404430855410AB1C286F91B514151C67447450855411991A29DF71B514159AA674A46085541DC91786CF61B5141E4317A2D470855415A724918F61B5141475F1E6C47085541BE5DC5EAF51B514194ADFC8D4708554115EF256CFE1B51417148B0665008554164FD926B081C51416FC729E345085541D094A5AD081C514199F1BA904208554119E78C88131C514197CA19FF34085541B18A56FC131C514197CA19FF34085541E9ED1192131C51414A436EF5330855419BAE0A8D131C5141C8BB49ED33085541A124D985131C51410A9AA3E133085541C19E7C83131C5141E0A7D0DD3308554161AB6D82131C5141F3E219DC3308554180A0F9A0121C514110E0BCA33308554180A0F9A0121C51417C6A0EF6320855415C41EE97101C51414B80B19A310855412244C314131C5141D93374B92B08554192FC2F2D121C51414F1BFC972A085541606F095E101C514154ECE0D12A085541953E191B0E1C514145BEC50B2B08554177B0F24B0C1C5141DBD63D2D2C085541C209545B091C5141C0673979300855413EFBD1D9061C5141F9D1A6D231085541A4703D8A061C5141B81E852B32085541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>289275 - 1008404
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000090000000000006073005141F6285C7FAB34544148E17AA469005141B81E859BAB34544148E17A64700051410AD7A360DA345441666666467400514185EB5148F534544114AE47C184005141B81E85EBF13454413D0AD713A7005141AE47E1EAEA3454413D0AD7A3BF0051417B14AEE7E53454413D0AD7A3C5005141EC51B8AEE43454410000006073005141F6285C7FAB345441
+</a>
+
+<b>
+010600000001000000010300000001000000070000009898EDFC96005141DD1FD340C43454410000006073005141F6285C7FAB34544148E17AA469005141B81E859BAB345441C6BAECD26D0051412E378394C834544169CC5EB96E00514163903ED1CE34544150F2AC9D9E0051415F191447C93454419898EDFC96005141DD1FD340C4345441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>289275 - 3828283
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000090000000000006073005141F6285C7FAB34544148E17AA469005141B81E859BAB34544148E17A64700051410AD7A360DA345441666666467400514185EB5148F534544114AE47C184005141B81E85EBF13454413D0AD713A7005141AE47E1EAEA3454413D0AD7A3BF0051417B14AEE7E53454413D0AD7A3C5005141EC51B8AEE43454410000006073005141F6285C7FAB345441
+</a>
+
+<b>
+010600000001000000010300000001000000070000009898EDFC96005141DD1FD340C43454410000006073005141F6285C7FAB34544148E17AA469005141B81E859BAB345441C6BAECD26D0051412E378394C834544169CC5EB96E00514163903ED1CE34544150F2AC9D9E0051415F191447C93454419898EDFC96005141DD1FD340C4345441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>289371 - 1008326
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000003300000085EB51F87F035141295C8FA28C325441CDCCCC0C820351415C8FC2E58C325441AE47E1DA94035141666666D68D325441666666E6970351410AD7A3F08D32544185EB514895035141B81E851B8C3254411F85EB8194035141CDCCCC9C8C325441666666F693035141CDCCCC9C8C325441E17A144E9303514114AE47618C325441666666D69203514148E17AA48B32544148E17AF4920351417B14AEE78A325441D7A3709D93035141713D0A178A32544148E17A8495035141E17A146E893254417B14AE77940351415C8FC21586325441D7A370CD96035141666666268532544152B81E05960351415C8FC2258332544185EB51089C035141C3F5288C80325441713D0AA79C035141000000C0813254415C8FC275A7035141295C8F727D325441A4703DEAA6035141A4703D9A7A32544133333343A60351410000009075325441666666C6A503514148E17A047032544100000070A403514114AE47B15B325441D7A3700DA3035141713D0AA74532544114AE4791A103514148E17AF42E3254415C8FC275A0035141333333B31D32544114AE47D19F035141B81E854B14325441713D0A578E0351415C8FC21515325441E17A140E8903514152B81E750632544114AE47218603514148E17AA408325441C3F528EC82035141295C8FE20A3254418FC2F52880035141EC51B8FE0B325441000000407D0351413D0AD7430C3254410AD7A3B07A035141C3F528EC0C325441C3F5287C7A035141333333F30C325441295C8FE277035141EC51B84E0D325441D7A3709D78035141713D0A57123254415C8FC2D578035141EC51B8DE1432544148E17A347903514185EB51C8193254413D0AD7137903514185EB51381E3254418FC2F59878035141295C8F322332544185EB51F87703514185EB51582832544152B81E657703514114AE47812C32544114AE472176035141A4703D7A2F325441333333B375035141CDCCCCBC3A3254413D0AD753480351415C8FC23544325441AE47E1EA4B0351418FC2F5484D3254418FC2F5085B035141295C8FF25A3254411F85EBC1740351417B14AE9755325441666666067D035141CDCCCCCC61325441C3F528CC7A035141D7A3700D8232544185EB51F87F035141295C8FA28C325441
+</a>
+
+<b>
+0106000000010000000103000000010000001900000014AE47C1430351411F85EB213A32544107B3067544035141371DD9BE3B325441CE6E637B440351415F5417BC3B3254413D0AD753480351415C8FC235443254413519533F51035141ED69DE99403254413FCC699A5A035141C9B6A82A3D3254417FB2983F630351416C50F1083B325441333333B375035141CDCCCCBC3A32544144CDD9B5750351414C288D773A3254418908B5247F03514121A4B7CD383254410750673F88035141AA58B93237325441F219D7CFA1035141C6C6AEB03232544154FA3009A1035141912E33AC2632544114AE472176035141A4703D7A2F3254410000001073035141CDCCCC8C2F3254415C8FC2556E035141B81E855B2F325441E17A14AE690351419A9999692F3254416666664665035141C3F5284C2F32544152B81EC560035141A4703DDA2E325441B81E855B5B035141E17A14DE303254416D82FEE552035141CAA22D25343254412C2FDE984E035141D355C8B8353254416A3203084A035141376AB66F373254412F29DD6F46035141448B85D83832544114AE47C1430351411F85EB213A325441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>289371 - 3737279
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000003300000085EB51F87F035141295C8FA28C325441CDCCCC0C820351415C8FC2E58C325441AE47E1DA94035141666666D68D325441666666E6970351410AD7A3F08D32544185EB514895035141B81E851B8C3254411F85EB8194035141CDCCCC9C8C325441666666F693035141CDCCCC9C8C325441E17A144E9303514114AE47618C325441666666D69203514148E17AA48B32544148E17AF4920351417B14AEE78A325441D7A3709D93035141713D0A178A32544148E17A8495035141E17A146E893254417B14AE77940351415C8FC21586325441D7A370CD96035141666666268532544152B81E05960351415C8FC2258332544185EB51089C035141C3F5288C80325441713D0AA79C035141000000C0813254415C8FC275A7035141295C8F727D325441A4703DEAA6035141A4703D9A7A32544133333343A60351410000009075325441666666C6A503514148E17A047032544100000070A403514114AE47B15B325441D7A3700DA3035141713D0AA74532544114AE4791A103514148E17AF42E3254415C8FC275A0035141333333B31D32544114AE47D19F035141B81E854B14325441713D0A578E0351415C8FC21515325441E17A140E8903514152B81E750632544114AE47218603514148E17AA408325441C3F528EC82035141295C8FE20A3254418FC2F52880035141EC51B8FE0B325441000000407D0351413D0AD7430C3254410AD7A3B07A035141C3F528EC0C325441C3F5287C7A035141333333F30C325441295C8FE277035141EC51B84E0D325441D7A3709D78035141713D0A57123254415C8FC2D578035141EC51B8DE1432544148E17A347903514185EB51C8193254413D0AD7137903514185EB51381E3254418FC2F59878035141295C8F322332544185EB51F87703514185EB51582832544152B81E657703514114AE47812C32544114AE472176035141A4703D7A2F325441333333B375035141CDCCCCBC3A3254413D0AD753480351415C8FC23544325441AE47E1EA4B0351418FC2F5484D3254418FC2F5085B035141295C8FF25A3254411F85EBC1740351417B14AE9755325441666666067D035141CDCCCCCC61325441C3F528CC7A035141D7A3700D8232544185EB51F87F035141295C8FA28C325441
+</a>
+
+<b>
+0106000000010000000103000000010000001900000014AE47C1430351411F85EB213A32544107B3067544035141371DD9BE3B325441CE6E637B440351415F5417BC3B3254413D0AD753480351415C8FC235443254413519533F51035141ED69DE99403254413FCC699A5A035141C9B6A82A3D3254417FB2983F630351416C50F1083B325441333333B375035141CDCCCCBC3A32544144CDD9B5750351414C288D773A3254418908B5247F03514121A4B7CD383254410750673F88035141AA58B93237325441F219D7CFA1035141C6C6AEB03232544154FA3009A1035141912E33AC2632544114AE472176035141A4703D7A2F3254410000001073035141CDCCCC8C2F3254415C8FC2556E035141B81E855B2F325441E17A14AE690351419A9999692F3254416666664665035141C3F5284C2F32544152B81EC560035141A4703DDA2E325441B81E855B5B035141E17A14DE303254416D82FEE552035141CAA22D25343254412C2FDE984E035141D355C8B8353254416A3203084A035141376AB66F373254412F29DD6F46035141448B85D83832544114AE47C1430351411F85EB213A325441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>290039 - 1127807
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000007000000A4703DDAC5395141C3F5284CD54954410AD7A310B0395141B81E85CBB84954410AD7A390AE395141666666C6B6495441F6285C7F88395141A4703D9ACF4954416666664690395141000000E0E5495441713D0A1797395141D7A370ADF5495441A4703DDAC5395141C3F5284CD5495441
+</a>
+
+<b>
+0106000000010000000103000000010000000C00000083650D5DC4395141485DAA66D3495441A1D7A163C4395141FBB21862D34954411276F14CC4395141DA8FA54DD34954410AD7A310B0395141B81E85CBB84954410AD7A390AE395141666666C6B6495441F6285C7F88395141A4703D9ACF4954416666664690395141000000E0E54954413449550696395141207FF13AF3495441B8678844AD395141952D4570E349544186063B3BB4395141972F619ADE495441B0F3FC5BC43951415CBF8D65D349544183650D5DC4395141485DAA66D3495441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>290039 - 3331122
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000007000000A4703DDAC5395141C3F5284CD54954410AD7A310B0395141B81E85CBB84954410AD7A390AE395141666666C6B6495441F6285C7F88395141A4703D9ACF4954416666664690395141000000E0E5495441713D0A1797395141D7A370ADF5495441A4703DDAC5395141C3F5284CD5495441
+</a>
+
+<b>
+0106000000010000000103000000010000000C00000083650D5DC4395141485DAA66D3495441A1D7A163C4395141FBB21862D34954411276F14CC4395141DA8FA54DD34954410AD7A310B0395141B81E85CBB84954410AD7A390AE395141666666C6B6495441F6285C7F88395141A4703D9ACF4954416666664690395141000000E0E54954413449550696395141207FF13AF3495441B8678844AD395141952D4570E349544186063B3BB4395141972F619ADE495441B0F3FC5BC43951415CBF8D65D349544183650D5DC4395141485DAA66D3495441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>294619 - 203665
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000002000000010300000001000000240000000AD7A3E0D6C750410AD7A36075455541295C8F12D5C750411F85EB218145554166666616D4C750411F85EBE1804555411F85EBE1D3C7504148E17AD480455541AE47E1EACEC750413D0AD7039A45554114AE47E1D0C75041B81E857B9A4555419A9999E9D3C750413D0AD7339B4555415C8FC2C5D4C75041D7A3706D9B455541AE47E10AD6C75041CDCCCCBC9B4555419A999969D8C7504148E17A548F455541713D0AD7DAC75041B81E859B824555415C8FC275DDC75041713D0A478345554152B81E65DAC7504148E17A3491455541AE47E1DAD8C75041C3F5286C9C4555411F85EBD1D9C75041F6285C6F9C45554152B81E65DDC750417B14AEB79C455541C3F5288CDEC75041EC51B8CE9C45554114AE4741DFC75041D7A370DD9C455541F6285C8FE1C750419A9999F992455541295C8FE2E4C75041C3F5282C854555411F85EB91E6C75041AE47E19A854555413D0AD753E8C75041C3F5280C86455541EC51B88EEBC750411F85EB517A4555411F85EBE1EAC750413D0AD7237A455541D7A370EDE9C75041295C8FE2794555410AD7A390E9C75041A4703DCA79455541A4703D6AE8C75041A4703D7A79455541D7A370BDE7C75041C3F5284C79455541AE47E14AE6C750417B14AEE77845554185EB5178E5C75041EC51B8AE78455541C3F5281CE5C750415C8FC295784555410AD7A360E4C750413333336378455541B81E85FBE1C75041D7A370BD77455541E17A145EDFC750418FC2F50877455541D7A3709DDDC75041F6285C8F764555410AD7A3E0D6C750410AD7A36075455541010300000001000000090000009A9999B9E8C750416666662686455541B81E854BE5C750419A99995994455541E17A140EE3C7504152B81E459D455541AE47E15AE6C7504114AE47019E4555419A999989E7C75041A4703DDA9845554133333363E8C7504185EB51C895455541000000B0ECC75041B81E852B8745554185EB5138E9C75041713D0A47864555419A9999B9E8C750416666662686455541
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000002B73912AEAC7504189D6E1F27945554187E2EAE1EAC75041D3DED6237A455541007F86CBEDC7504133FE9AC96C45554151657B49EBC750410173836F6C455541B485F648EAC750411A3A854B6C455541028D72BDE7C750413578294C79455541A4703D6AE8C75041A4703D7A79455541EFBA9D90E9C750419DC73BCA794555412FB4A390E9C7504140453CCA79455541C3A470EDE9C75041BE098FE2794555412B73912AEAC7504189D6E1F279455541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>294619 - 203680
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000002000000010300000001000000240000000AD7A3E0D6C750410AD7A36075455541295C8F12D5C750411F85EB218145554166666616D4C750411F85EBE1804555411F85EBE1D3C7504148E17AD480455541AE47E1EACEC750413D0AD7039A45554114AE47E1D0C75041B81E857B9A4555419A9999E9D3C750413D0AD7339B4555415C8FC2C5D4C75041D7A3706D9B455541AE47E10AD6C75041CDCCCCBC9B4555419A999969D8C7504148E17A548F455541713D0AD7DAC75041B81E859B824555415C8FC275DDC75041713D0A478345554152B81E65DAC7504148E17A3491455541AE47E1DAD8C75041C3F5286C9C4555411F85EBD1D9C75041F6285C6F9C45554152B81E65DDC750417B14AEB79C455541C3F5288CDEC75041EC51B8CE9C45554114AE4741DFC75041D7A370DD9C455541F6285C8FE1C750419A9999F992455541295C8FE2E4C75041C3F5282C854555411F85EB91E6C75041AE47E19A854555413D0AD753E8C75041C3F5280C86455541EC51B88EEBC750411F85EB517A4555411F85EBE1EAC750413D0AD7237A455541D7A370EDE9C75041295C8FE2794555410AD7A390E9C75041A4703DCA79455541A4703D6AE8C75041A4703D7A79455541D7A370BDE7C75041C3F5284C79455541AE47E14AE6C750417B14AEE77845554185EB5178E5C75041EC51B8AE78455541C3F5281CE5C750415C8FC295784555410AD7A360E4C750413333336378455541B81E85FBE1C75041D7A370BD77455541E17A145EDFC750418FC2F50877455541D7A3709DDDC75041F6285C8F764555410AD7A3E0D6C750410AD7A36075455541010300000001000000090000009A9999B9E8C750416666662686455541B81E854BE5C750419A99995994455541E17A140EE3C7504152B81E459D455541AE47E15AE6C7504114AE47019E4555419A999989E7C75041A4703DDA9845554133333363E8C7504185EB51C895455541000000B0ECC75041B81E852B8745554185EB5138E9C75041713D0A47864555419A9999B9E8C750416666662686455541
+</a>
+
+<b>
+0106000000010000000103000000010000001600000086C58F12D5C75041F4D6E821814555410AD7A3E0D6C750410AD7A3607545554148E17AA4D8C75041F6285C7F69455541AE47E10AD9C75041EC51B8CE66455541A5AAEDC6D3C75041748A9927664555411B4E6626D0C750419AA87BB4654555415C8FC255CFC7504148E17A646C4555417F4ABD1DCFC75041272FA9A46D455541A49FD7B3CEC75041589AEB01704555418B0E5298CDC7504180DCB88E75455541280E0170CCC75041D7885C6F7B4555418656864BCCC75041E4ED52287C455541D89EF608CCC75041753134737D4555419CA218E7CBC750414AF8DF167E4555414026D7C3CBC75041B02647C17E4555415133E2BACFC7504157AE79C47F455541ABA27187D3C75041177354BD804555411F85EBE1D3C7504148E17AD4804555410A1E31E2D3C7504127B48CD48045554170A53111D5C750419AC2922181455541A1B68E12D5C750411C5BEB218145554186C58F12D5C75041F4D6E82181455541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>888517 - 2961624
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000040000000103000000010000003E000000295C8FE2989B514152B81E85AB8C5441E968D00F989B514161D6E3C4A78C5441D7874E9F979B51411262992FA38C5441A334DF3E979B51410922406B9F8C54410DF12DC3979B51411FBDE25C9F8C544152B81E15969B5141D7A3707D9F8C544166666636969B514114AE4741A28C544152B81E25979B514114AE4731A98C544152B81E95979B5141EC51B81EAB8C5441EC51B83E9C9B5141F6285CEFB18C54413D0AD793A29B5141AE47E17AB98C54411F85EB91A59B5141713D0A37BD8C54413D0AD743A69B514100000070BE8C544114AE4711A99B5141D7A3705DC28C5441AE47E1CAAC9B51418FC2F5C8C88C54415C8FC215AF9B51418FC2F518CE8C544100000090B19B51411F85EB71D38C5441F6285CAFB29B514148E17AE4D48C54419A9999D9BD9B51418FC2F558D18C54415C8FC2A5C89B5141C3F528ECCD8C5441D7A3702DD49B514133333343CA8C54411F85EB41D99B5141D7A3700DCB8C54410AD7A360DD9B5141E17A144ECC8C54411F85EBC1EA9B514100000060CA8C5441713D0A97F79B5141F6285C1FC88C544133333393FE9B51415C8FC2E5C68C54418FC2F5480A9C5141C3F528CCC38C544114AE47010E9C5141295C8F42C28C5441E17A148E169C5141E17A144EBE8C5441D7A3703D199C514152B81E75BD8C5441CDCCCC8C1B9C514133333313BD8C5441713D0A271E9C5141AE47E16ABC8C54417B14AE67209C5141EC51B83EBC8C5441EC51B84E239C514114AE4751BC8C54410AD7A310269C5141F6285CFFBC8C5441D7A3708D279C51418FC2F588B68C5441E17A149E289C5141295C8FE2B18C544148E17A842F9C51410AD7A350B28C5441A4703D7A2C9C514166666666A48C5441E17A146E2D9C51411F85EB51A28C5441B81E857B309C51418FC2F5E8A08C54417B14AE572F9C51415C8FC2A59D8C5441713D0A772D9C514148E17AA4998C544148E17A742B9C5141EC51B87E948C54419A999929299C5141B81E851B958C54418FC2F5C8209C514185EB5158978C54413D0AD7F31F9C514114AE4791978C5441713D0A67109C5141C3F5284C958C54411F85EB310B9C514152B81E65948C544100000070029C514114AE47E1928C544185EB5108F99B5141AE47E13A928C544160A8F46AF69B5141E8701B43928C5441713D0A47EB9B51413D0AD743BE8C544152B81E15E09B5141333333D3BE8C54410AD7A340D59B5141EC51B8BEBF8C5441F6285C9FC99B514100000010C18C544114AE4741BD9B51411F85EB31C38C54411F85EBA1AD9B514133333363C68C544100000020A99B5141000000C0BF8C54411F85EBB1A09B51411F85EB91B58C54411F85EB119C9B5141333333F3AF8C5441295C8FE2989B514152B81E85AB8C54410103000000010000000400000083CFB2A1A39B5141C4B4DDF69D8C544110A05108A19B51414A063B5B9E8C5441622F8E3BA29B5141929ADF399E8C544183CFB2A1A39B5141C4B4DDF69D8C5441010300000001000000090000007B57EFBAC09B5141F7F7CE4D988C54418AFDC332C49B514161F855B2978C544120462C7BCB9B5141811A2DB1968C5441882B6836D59B51416EE9944F958C5441D1E707E6E39B5141C4182B96938C544148E17A04D59B5141B81E854B958C5441C3F528BCC49B5141D7A3709D978C54411F85EBD1C39B5141EC51B8BE978C54417B57EFBAC09B5141F7F7CE4D988C544101030000000100000005000000D3F5EBDAEA9B514127CA4EDB928C54412B1D29A6EA9B514176E094DE928C5441369548C3F59B5141E9052B45928C5441295C8FF2F39B5141AE47E14A928C5441D3F5EBDAEA9B514127CA4EDB928C5441
+</a>
+
+<b>
+0106000000010000000103000000010000003F00000070A05108A19B51413C063B5B9E8C54410DE3319AA29B5141D7C59C1E9E8C544100000080A59B5141EC51B8AE9D8C5441AE47E1EAAB9B51419A9999799C8C54418FC2F5F8B59B5141000000409A8C5441BF58EFBAC09B5141BCF7CE4D988C54411F85EBD1C39B5141EC51B8BE978C544148E17A04D59B5141B81E854B958C5441D7A3708DE99B5141000000F0928C5441295C8FF2F39B5141AE47E14A928C54413A9548C3F59B5141E8052B45928C544185EB5108F99B5141AE47E13A928C544100000070029C514114AE47E1928C54411F85EB310B9C514152B81E65948C5441713D0A67109C5141C3F5284C958C54413D0AD7F31F9C514114AE4791978C54418FC2F5C8209C514185EB5158978C544179F42AD4209C5141469A5355978C544158780ADE209C514148361826938C5441A5EF61C91F9C51410075C2BA8E8C5441C03A2B9F1C9C51416C41474C8C8C5441D64BC0C11C9C5141B0326D9A8B8C5441E864BA4A219C51418D9674F28A8C5441DFEB1FFC269C5141F9355C1F918C544138720DA0289C51415E05142F928C54411418AE11299C5141FB7C2721938C544145FD7025299C514165511119958C544148E17A742B9C5141EC51B87E948C5441713D0AD7349C514166666666918C54418FC2F5783A9C5141B81E85FB8F8C544100000050369C51410AD7A390868C5441713D0AC7319C51419A999919878C5441295C8F52299C5141E17A14BE888C5441A4703D5A219C51413D0AD7238A8C544166666656219C51419A9999D9858C5441EC51B85E159C5141713D0AE7838C54411F85EB81119C514166666646838C54419A999939129C51415C8FC2558B8C5441C3F528EC0B9C5141A4703DBA8A8C544114AE47F1079C51413D0AD7A38A8C544100000000059C5141D7A3705D8A8C54417B14AE47FF9B514166666656898C54411F85EB61F99B5141C3F5287C888C54413D0AD723F29B5141E17A140E898C5441C3F5283CE69B5141F6285CEF8A8C544114AE47F1E19B51415C8FC2458B8C5441E17A146ED49B51418FC2F5B88C8C5441E17A144EC79B5141A4703D3A8E8C544114AE4791C39B5141EC51B88E8E8C5441AE47E1AABF9B5141A4703D0A8F8C54417B14AE77B69B514100000030918C5441AE47E10AB19B51417B14AE37928C5441295C8F42AC9B514152B81EF5928C54415C8FC265A99B5141C3F5283C938C544114AE4711A39B51419A9999D9938C5441295C8FF2A29B5141CDCCCC7C998C54415C8FC2F59E9B5141713D0AB7998C5441295C8F32969B51411F85EB51998C5441E17A14FE959B5141333333939D8C544152B81E15969B5141D7A3707D9F8C5441713D0AF7979B51418FC2F5589F8C544114AE4721A09B5141E17A147E9E8C544170A05108A19B51413C063B5B9E8C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>888517 - 3325956
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000040000000103000000010000003E000000295C8FE2989B514152B81E85AB8C5441E968D00F989B514161D6E3C4A78C5441D7874E9F979B51411262992FA38C5441A334DF3E979B51410922406B9F8C54410DF12DC3979B51411FBDE25C9F8C544152B81E15969B5141D7A3707D9F8C544166666636969B514114AE4741A28C544152B81E25979B514114AE4731A98C544152B81E95979B5141EC51B81EAB8C5441EC51B83E9C9B5141F6285CEFB18C54413D0AD793A29B5141AE47E17AB98C54411F85EB91A59B5141713D0A37BD8C54413D0AD743A69B514100000070BE8C544114AE4711A99B5141D7A3705DC28C5441AE47E1CAAC9B51418FC2F5C8C88C54415C8FC215AF9B51418FC2F518CE8C544100000090B19B51411F85EB71D38C5441F6285CAFB29B514148E17AE4D48C54419A9999D9BD9B51418FC2F558D18C54415C8FC2A5C89B5141C3F528ECCD8C5441D7A3702DD49B514133333343CA8C54411F85EB41D99B5141D7A3700DCB8C54410AD7A360DD9B5141E17A144ECC8C54411F85EBC1EA9B514100000060CA8C5441713D0A97F79B5141F6285C1FC88C544133333393FE9B51415C8FC2E5C68C54418FC2F5480A9C5141C3F528CCC38C544114AE47010E9C5141295C8F42C28C5441E17A148E169C5141E17A144EBE8C5441D7A3703D199C514152B81E75BD8C5441CDCCCC8C1B9C514133333313BD8C5441713D0A271E9C5141AE47E16ABC8C54417B14AE67209C5141EC51B83EBC8C5441EC51B84E239C514114AE4751BC8C54410AD7A310269C5141F6285CFFBC8C5441D7A3708D279C51418FC2F588B68C5441E17A149E289C5141295C8FE2B18C544148E17A842F9C51410AD7A350B28C5441A4703D7A2C9C514166666666A48C5441E17A146E2D9C51411F85EB51A28C5441B81E857B309C51418FC2F5E8A08C54417B14AE572F9C51415C8FC2A59D8C5441713D0A772D9C514148E17AA4998C544148E17A742B9C5141EC51B87E948C54419A999929299C5141B81E851B958C54418FC2F5C8209C514185EB5158978C54413D0AD7F31F9C514114AE4791978C5441713D0A67109C5141C3F5284C958C54411F85EB310B9C514152B81E65948C544100000070029C514114AE47E1928C544185EB5108F99B5141AE47E13A928C544160A8F46AF69B5141E8701B43928C5441713D0A47EB9B51413D0AD743BE8C544152B81E15E09B5141333333D3BE8C54410AD7A340D59B5141EC51B8BEBF8C5441F6285C9FC99B514100000010C18C544114AE4741BD9B51411F85EB31C38C54411F85EBA1AD9B514133333363C68C544100000020A99B5141000000C0BF8C54411F85EBB1A09B51411F85EB91B58C54411F85EB119C9B5141333333F3AF8C5441295C8FE2989B514152B81E85AB8C54410103000000010000000400000083CFB2A1A39B5141C4B4DDF69D8C544110A05108A19B51414A063B5B9E8C5441622F8E3BA29B5141929ADF399E8C544183CFB2A1A39B5141C4B4DDF69D8C5441010300000001000000090000007B57EFBAC09B5141F7F7CE4D988C54418AFDC332C49B514161F855B2978C544120462C7BCB9B5141811A2DB1968C5441882B6836D59B51416EE9944F958C5441D1E707E6E39B5141C4182B96938C544148E17A04D59B5141B81E854B958C5441C3F528BCC49B5141D7A3709D978C54411F85EBD1C39B5141EC51B8BE978C54417B57EFBAC09B5141F7F7CE4D988C544101030000000100000005000000D3F5EBDAEA9B514127CA4EDB928C54412B1D29A6EA9B514176E094DE928C5441369548C3F59B5141E9052B45928C5441295C8FF2F39B5141AE47E14A928C5441D3F5EBDAEA9B514127CA4EDB928C5441
+</a>
+
+<b>
+0106000000010000000103000000010000003F00000070A05108A19B51413C063B5B9E8C54410DE3319AA29B5141D7C59C1E9E8C544100000080A59B5141EC51B8AE9D8C5441AE47E1EAAB9B51419A9999799C8C54418FC2F5F8B59B5141000000409A8C5441BF58EFBAC09B5141BCF7CE4D988C54411F85EBD1C39B5141EC51B8BE978C544148E17A04D59B5141B81E854B958C5441D7A3708DE99B5141000000F0928C5441295C8FF2F39B5141AE47E14A928C54413A9548C3F59B5141E8052B45928C544185EB5108F99B5141AE47E13A928C544100000070029C514114AE47E1928C54411F85EB310B9C514152B81E65948C5441713D0A67109C5141C3F5284C958C54413D0AD7F31F9C514114AE4791978C54418FC2F5C8209C514185EB5158978C544179F42AD4209C5141469A5355978C544158780ADE209C514148361826938C5441A5EF61C91F9C51410075C2BA8E8C5441C03A2B9F1C9C51416C41474C8C8C5441D64BC0C11C9C5141B0326D9A8B8C5441E864BA4A219C51418D9674F28A8C5441DFEB1FFC269C5141F9355C1F918C544138720DA0289C51415E05142F928C54411418AE11299C5141FB7C2721938C544145FD7025299C514165511119958C544148E17A742B9C5141EC51B87E948C5441713D0AD7349C514166666666918C54418FC2F5783A9C5141B81E85FB8F8C544100000050369C51410AD7A390868C5441713D0AC7319C51419A999919878C5441295C8F52299C5141E17A14BE888C5441A4703D5A219C51413D0AD7238A8C544166666656219C51419A9999D9858C5441EC51B85E159C5141713D0AE7838C54411F85EB81119C514166666646838C54419A999939129C51415C8FC2558B8C5441C3F528EC0B9C5141A4703DBA8A8C544114AE47F1079C51413D0AD7A38A8C544100000000059C5141D7A3705D8A8C54417B14AE47FF9B514166666656898C54411F85EB61F99B5141C3F5287C888C54413D0AD723F29B5141E17A140E898C5441C3F5283CE69B5141F6285CEF8A8C544114AE47F1E19B51415C8FC2458B8C5441E17A146ED49B51418FC2F5B88C8C5441E17A144EC79B5141A4703D3A8E8C544114AE4791C39B5141EC51B88E8E8C5441AE47E1AABF9B5141A4703D0A8F8C54417B14AE77B69B514100000030918C5441AE47E10AB19B51417B14AE37928C5441295C8F42AC9B514152B81EF5928C54415C8FC265A99B5141C3F5283C938C544114AE4711A39B51419A9999D9938C5441295C8FF2A29B5141CDCCCC7C998C54415C8FC2F59E9B5141713D0AB7998C5441295C8F32969B51411F85EB51998C5441E17A14FE959B5141333333939D8C544152B81E15969B5141D7A3707D9F8C5441713D0AF7979B51418FC2F5589F8C544114AE4721A09B5141E17A147E9E8C544170A05108A19B51413C063B5B9E8C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>295154 - 203680
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001000000085EB5198CDC75041EC51B88E7545554100000070CCC75041F6285C6F7B455541B81E854BCCC7504185EB51287C4555418FC2F508CCC75041333333737D4555413D0AD7C3CBC7504114AE47C17E455541AE47E1BACFC7504148E17AC47F4555411F85EBE1D3C7504148E17AD48045554166666616D4C750411F85EBE180455541295C8F12D5C750411F85EB21814555410AD7A3E0D6C750410AD7A3607545554148E17AA4D8C75041F6285C7F69455541AE47E10AD9C75041EC51B8CE6645554166666626D0C7504148E17AB4654555415C8FC255CFC7504148E17A646C4555413D0AD7B3CEC750411F85EB017045554185EB5198CDC75041EC51B88E75455541
+</a>
+
+<b>
+0106000000010000000103000000010000001600000086C58F12D5C75041F4D6E821814555410AD7A3E0D6C750410AD7A3607545554148E17AA4D8C75041F6285C7F69455541AE47E10AD9C75041EC51B8CE66455541A5AAEDC6D3C75041748A9927664555411B4E6626D0C750419AA87BB4654555415C8FC255CFC7504148E17A646C4555417F4ABD1DCFC75041272FA9A46D455541A49FD7B3CEC75041589AEB01704555418B0E5298CDC7504180DCB88E75455541280E0170CCC75041D7885C6F7B4555418656864BCCC75041E4ED52287C455541D89EF608CCC75041753134737D4555419CA218E7CBC750414AF8DF167E4555414026D7C3CBC75041B02647C17E4555415133E2BACFC7504157AE79C47F455541ABA27187D3C75041177354BD804555411F85EBE1D3C7504148E17AD4804555410A1E31E2D3C7504127B48CD48045554170A53111D5C750419AC2922181455541A1B68E12D5C750411C5BEB218145554186C58F12D5C75041F4D6E82181455541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>295291 - 203581
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000008000000E17A142E7CC750417B14AEA7CA4555419A9999A985C750411F85EB91CC455541295C8F628EC7504100000060CE455541000000108FC750417B14AE87CE455541CDCCCC5C8EC75041B81E85CBCA455541B81E85CB7CC75041AE47E1DAC5455541EC51B89E7BC7504185EB5168CA455541E17A142E7CC750417B14AEA7CA455541
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000004225A7517CC750411CD60CB3C7455541EC51B89E7BC7504185EB5168CA455541E17A142E7CC750417B14AEA7CA4555419A9999A985C750411F85EB91CC455541251F50988AC750418D8B3897CD455541791690628EC7504116A8FF5FCE455541CAEA0DA78EC750419A98AB6FCE4555411CFFFE0F8FC75041B5D9AD87CE455541D234B4B68EC750419AC038ABCC455541ADD5CC5C8EC75041134E85CBCA455541CE52EC568BC7504165ADE7F1C945554163D885CB7CC75041E47BE1DAC54555414225A7517CC750411CD60CB3C7455541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>295291 - 381533
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000008000000E17A142E7CC750417B14AEA7CA4555419A9999A985C750411F85EB91CC455541295C8F628EC7504100000060CE455541000000108FC750417B14AE87CE455541CDCCCC5C8EC75041B81E85CBCA455541B81E85CB7CC75041AE47E1DAC5455541EC51B89E7BC7504185EB5168CA455541E17A142E7CC750417B14AEA7CA455541
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000004225A7517CC750411CD60CB3C7455541EC51B89E7BC7504185EB5168CA455541E17A142E7CC750417B14AEA7CA4555419A9999A985C750411F85EB91CC455541251F50988AC750418D8B3897CD455541791690628EC7504116A8FF5FCE455541CAEA0DA78EC750419A98AB6FCE4555411CFFFE0F8FC75041B5D9AD87CE455541D234B4B68EC750419AC038ABCC455541ADD5CC5C8EC75041134E85CBCA455541D052EC568BC7504166ADE7F1C945554163D885CB7CC75041E47BE1DAC54555414225A7517CC750411CD60CB3C7455541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>310161 - 2804322
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000041000000295C8F22470F51410AD7A3B0E4475541333333B3450F5141666666B6E3475541E17A14DE3B0F514133333333E04755410AD7A3F0310F51410AD7A3B0DC475541F6285CEF310F5141AE47E19ADD475541B81E85CB320F5141F6285C2FE3475541E17A142E330F5141000000B0E547554114AE4781350F5141F6285CAFE94755413D0AD7E3370F5141D7A3703DED47554148E17A74380F5141D7A3701DEF4755419A9999D9380F5141E17A145EF8475541C3F528FC370F5141F6285CEFFD475541E17A146E370F514100000020024855410AD7A320390F5141F6285CEF0648554148E17AE43B0F5141D7A370CD0B485541B81E852B410F5141D7A3700D0F485541B81E857B470F51411F85EBE110485541713D0A07490F5141C3F5284C0C4855410AD7A3A0410F51415C8FC24509485541D7A3709D400F514185EB5188064855410AD7A3A0410F514114AE471100485541E17A14BE440F5141B81E85CBFC4755417B14AE67480F51417B14AE17FC475541CDCCCC4C4C0F5141B81E857BFC4755419A9999394F0F514166666686FF4755417B14AEC7510F514152B81EC508485541666666464D0F5141295C8F420E48554148E17A044A0F5141F6285C8F1148554114AE47614C0F514166666656124855413D0AD7A34E0F514148E17A24134855411F85EB41510F5141CDCCCC2C144855413D0AD7D3530F51419A9999F9144855419A999989550F5141C3F5287C15485541F6285CCF560F5141D7A370AD1548554152B81ED5570F51415C8FC2A515485541713D0A37590F51413D0AD72315485541295C8F625B0F5141713D0A4714485541AE47E16A5D0F51416666666613485541AE47E14A5F0F5141D7A3709D12485541EC51B8FE600F5141B81E85DB114855415C8FC2B5620F514100000030114855419A999949640F51411F85EBB110485541666666B6660F5141333333F30F48554152B81EE5680F5141000000500F4855411F85EBA1690F5141333333C30E48554152B81EE5690F5141333333030F485541A4703D9A7B0F5141EC51B85E064855415C8FC2757B0F5141EC51B81E06485541C3F528CC7A0F514114AE4771054855418FC2F5087A0F5141E17A141E04485541333333F3780F51411F85EB4102485541295C8FE2770F5141AE47E15A00485541F6285C6F760F514114AE47B1FD475541AE47E1BA6C0F5141CDCCCCEC00485541A4703DBA6A0F51417B14AE8701485541A4703DAA690F5141295C8FB201485541713D0AC7660F5141C3F5281C02485541666666A6610F51419A999939034855411F85EBF15C0F5141713D0A97034855410AD7A340520F51417B14AE47FB475541666666E6520F5141295C8F72FA4755418FC2F5C8540F514166666606F84755418FC2F598580F5141C3F528CCF247554185EB51C84C0F514166666606E9475541295C8F22470F51410AD7A3B0E4475541
+</a>
+
+<b>
+010600000001000000010300000001000000640000000AD7A3F0310F51410AD7A3B0DC475541E17A14DE3B0F514133333333E0475541333333B3450F5141666666B6E3475541295C8F22470F51410AD7A3B0E447554185EB51C84C0F514166666606E94755410CF4326E500F5141A70CD60AEC475541295C8FA2500F51413D0AD713EC475541B40E99F3500F5141B6812C79EC475541867E60B4540F51414B15DC93EF475541295C8F42550F5141E17A14BEEF475541F60B428E550F5141462D1348F0475541177C6B25580F5141D4FB976CF2475541E17A14BE580F514100000040F2475541AE47E1BA590F5141000000B0F1475541A4703DEA5A0F514100000080F04755415C8FC2455C0F5141713D0A77EF475541D7A370BD5D0F5141D7A3708DEE475541666666565F0F5141D7A370EDED47554114AE4701610F51413D0AD783ED475541E17A14CE630F514185EB5198ED47554185EB51B86C0F514166666626EE4755411F85EB51710F514166666616EF47554100000020750F51418FC2F5D8EF475541F6285CFF770F5141713D0AC7EB475541666666867A0F5141EC51B81EE94755415C8FC2057D0F5141EC51B80EE647554148E17AB4800F51419A9999F9E24755410AD7A350870F51413D0AD703DC475541000000D0850F51419A9999A9DA475541A4703D4A810F5141AE47E1BAD94755419A9999B97C0F5141CDCCCCCCD84755411F85EBB1720F5141A4703DFAD6475541A4703DBA6F0F5141AE47E11AD6475541CDCCCCAC6D0F5141E17A144ED5475541C3F5282C6C0F51413D0AD773D447554185EB51F86A0F51410AD7A340D3475541EC51B81E6B0F51419A999999D2475541E17A145E690F51418FC2F598D04755410AD7A390670F51417B14AED7CD4755419A9999E9650F5141333333E3CA47554166666676650F5141CDCCCCBCC9475541666666B6650F5141295C8FE2C8475541333333536D0F51413D0AD753C4475541713D0A876F0F5141713D0A87C34755417B14AE87710F51413D0AD793C3475541295C8F22740F5141A4703D7AC4475541E17A147E780F514152B81E55C7475541F6285C3F7C0F51418FC2F588C8475541713D0A37870F514166666616CB475541D7A370DD860F51415C8FC205C1475541D7A3704D890F514133333303BD4755418FC2F5E8840F514185EB5128B7475541B81E859B820F5141C3F5288CB0475541CDCCCCFC7E0F514185EB51E8AF4755418FC2F5D8780F5141713D0AC7AE47554152B81EB5720F5141666666A6AD475541295C8FA2730F514185EB51C8A647554185EB51C8720F514148E17AD4A447554148E17A94710F5141A4703DBAA3475541D7A370ED6F0F5141D7A3702DA34755411F85EB51630F5141295C8F92A147554133333323350F5141E17A14DE9D47554166666616350F514152B81E859E4755418FC2F508340F514185EB51F89E47554148E17AD4350F5141AE47E13AA04755419A9999C9390F51419A999969A2475541B81E85BB3F0F5141E17A14FEA447554148E17A84460F5141D7A3702DA8475541713D0A174E0F5141D7A3703DAB475541AE47E18A570F5141713D0A77AF475541B81E854B5C0F514185EB5168B1475541C3F5281C6B0F5141CDCCCC1CB7475541295C8F02620F51419A999979C04755411F85EB91610F5141D7A370DDC0475541A4703DCA600F51417B14AE37C1475541A4703DDA560F51413D0AD703C647554133333383530F5141000000C0C7475541E17A146E510F5141D7A3703DC9475541EC51B85E4E0F5141D7A3707DCB475541CDCCCCCC4A0F51413D0AD793CD47554185EB51B8480F51419A999959CE475541C3F528DC460F5141E17A14CECE4755413D0AD723430F5141A4703DEACF4755411F85EB51420F51411F85EBC1D0475541713D0AC73E0F51418FC2F518D1475541AE47E19A3C0F5141CDCCCC5CD147554148E17A843B0F5141E17A14AED1475541E17A14FE390F5141F6285C5FD2475541333333F3380F51415C8FC225D34755419A9999F9370F5141CDCCCC0CD4475541CDCCCCFC360F51415C8FC285D447554100000010360F5141295C8F12D54755411F85EBB1350F51410AD7A3F0D5475541A4703DCA350F5141CDCCCC0CD7475541F6285C7F350F5141713D0A07D8475541D7A370FD340F51415C8FC2B5D8475541B81E85CB320F514148E17A94D847554166666636320F514185EB5168D84755413D0AD7F3310F51413D0AD7C3D94755410AD7A3F0310F51410AD7A3B0DC475541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>299110 - 36908
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001500000014AE47816D0D5141AE47E10AA6EB54413D0AD7736C0D514114AE4741AAEB5441EC51B8CE6A0D51410AD7A3E0ABEB54411F85EBE1650D514185EB51E8B0EB54418FC2F568640D5141F6285C6FB3EB544185EB5148600D5141A4703D6ABDEB544148E17AB4680D5141A4703D6ABDEB544114AE4761710D5141F6285C3FBDEB5441295C8FA2790D51415C8FC295BDEB54410AD7A300810D514114AE4701BEEB5441295C8F82810D51411F85EB31BCEB544185EB51D8810D5141D7A370ADB6EB5441B81E85FB820D5141295C8FC2AAEB54413D0AD733780D514185EB51D8AAEB5441CDCCCCAC750D5141CDCCCCACAAEB54411F85EB81750D5141713D0A67A8EB5441295C8FE2750D51418FC2F548A5EB54410AD7A320750D5141EC51B80EA5EB54410AD7A3806F0D514133333303A4EB5441C3F528AC6D0D51411F85EBC1A3EB544114AE47816D0D5141AE47E10AA6EB5441
+</a>
+
+<b>
+010600000001000000010300000001000000130000007824E2AF750D5141F0413EA7AAEB54413D0AD733780D514185EB51D8AAEB5441E17A14EE790D5141A4703DBAA7EB5441295C8FA27D0D5141E17A141EA5EB5441E453ED967D0D514195282A69A0EB54419A9999E97B0D5141F6285C0FA0EB54419FB6BEAF790D51417FC72A6CA0EB54418B48B00A770D5141F15D3ADEA0EB544172FDF7BD750D51414F11D8AFA3EB54414BF69B24750D514152B7540FA5EB544142597EE9750D5141B0C44540A5EB544155EA1BC5750D514147972C3CA6EB54419F3825C2750D51413619A654A6EB5441A15A22BB750D5141589C8C8EA6EB5441736C87B6750D5141BA8B94B4A6EB5441C3E689A2750D5141BC77AA59A7EB54412ED3A77B750D5141B293EC20A8EB5441F07AFC86750D5141C64FC6ABA8EB54417824E2AF750D5141F0413EA7AAEB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>299110 - 77472
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001500000014AE47816D0D5141AE47E10AA6EB54413D0AD7736C0D514114AE4741AAEB5441EC51B8CE6A0D51410AD7A3E0ABEB54411F85EBE1650D514185EB51E8B0EB54418FC2F568640D5141F6285C6FB3EB544185EB5148600D5141A4703D6ABDEB544148E17AB4680D5141A4703D6ABDEB544114AE4761710D5141F6285C3FBDEB5441295C8FA2790D51415C8FC295BDEB54410AD7A300810D514114AE4701BEEB5441295C8F82810D51411F85EB31BCEB544185EB51D8810D5141D7A370ADB6EB5441B81E85FB820D5141295C8FC2AAEB54413D0AD733780D514185EB51D8AAEB5441CDCCCCAC750D5141CDCCCCACAAEB54411F85EB81750D5141713D0A67A8EB5441295C8FE2750D51418FC2F548A5EB54410AD7A320750D5141EC51B80EA5EB54410AD7A3806F0D514133333303A4EB5441C3F528AC6D0D51411F85EBC1A3EB544114AE47816D0D5141AE47E10AA6EB5441
+</a>
+
+<b>
+010600000001000000010300000001000000130000007824E2AF750D5141F0413EA7AAEB54413D0AD733780D514185EB51D8AAEB5441E17A14EE790D5141A4703DBAA7EB5441295C8FA27D0D5141E17A141EA5EB5441E453ED967D0D514195282A69A0EB54419A9999E97B0D5141F6285C0FA0EB54419FB6BEAF790D51417FC72A6CA0EB54418B48B00A770D5141F15D3ADEA0EB544172FDF7BD750D51414F11D8AFA3EB54414BF69B24750D514152B7540FA5EB544142597EE9750D5141B0C44540A5EB544155EA1BC5750D514147972C3CA6EB54419F3825C2750D51413619A654A6EB5441A15A22BB750D5141589C8C8EA6EB5441736C87B6750D5141BA8B94B4A6EB5441C3E689A2750D5141BC77AA59A7EB54412ED3A77B750D5141B293EC20A8EB5441F07AFC86750D5141C64FC6ABA8EB54417824E2AF750D5141F0413EA7AAEB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>623806 - 4123961
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001D00000085EB51F8C2E650413D0AD7D3FE015541B81E856BC2E65041713D0A770702554166666696C7E65041C3F5288C07025541713D0AD7C7E650411F85EB210E02554152B81ED5E7E650419A9999790C02554133333303E8E6504133333343090255419A999949E8E65041F6285C5F040255415C8FC295E8E650411F85EBD10002554100000080E9E65041F6285CFFFD015541EC51B8DEECE65041AE47E1DAF6015541F6285C8FEFE6504185EB5128F1015541666666A6F0E65041666666B6EF0155417B14AE07F1E6504152B81E35EF015541E17A14DEF2E65041295C8FD2ED015541C3F5281CF6E6504100000060EC015541000000F0F6E6504114AE47D1E9015541CDCCCC7CF6E65041C3F528ECE6015541295C8F32F4E6504185EB5188E3015541000000A0F3E65041A4703D8AE20155417B14AE57EEE6504114AE4741DD015541E17A14DEDBE65041295C8F52DC0155417B14AE77C8E65041D7A3704DD6015541295C8F72C7E65041E17A147EDA015541B81E85ABC5E65041D7A370CDE10155415C8FC285C5E650417B14AE67E2015541D7A370BDC4E650413D0AD723E6015541CDCCCC1CC4E65041713D0AD7ED01554148E17AD4C3E6504185EB5108F201554185EB51F8C2E650413D0AD7D3FE015541
+</a>
+
+<b>
+0106000000010000000103000000010000003B000000225CDC78E7E650414341E98D0B025541D6ACF2F5E7E65041A345FE2D090255417773D419E8E65041BBE0D7C8040255418A515B2AE8E65041B68E9CC20202554190C1A76AE8E650415C1F9FE5000255410C68956AE9E65041D73DEBA9FD0155415C743428EAE6504184473C02FC0155418CBD3EB1EAE65041CD60B0C0FA01554102BB015EECE650412A2CA8D2F601554139E96F68ECE650419DA8D6D4F601554135C03841EDE65041510F8290F40155418645836BEDE6504122488E99F4015541A7825504F0E65041A0CED5CAEF015541A5D2DDD9EFE650413B6EEBBAEF015541105E1B53F1E650414E33B183EE0155416FB967E4F2E65041E99347A6ED01554124B8F119F6E6504111BFCEE5EB015541837DE8C2F6E6504126712BEAEA01554148882821F7E650419BBDEC3EEA015541B29CA2F5F6E65041430D5F8EE8015541CB24ABA0F6E65041B809EAD2E7015541CDCCCC7CF6E65041C3F528ECE6015541E04AEDABF5E65041E972F4B6E5015541608298F8F4E650415C8A4E2BE401554103E74036F4E65041A05F4770E3015541C352216BF3E65041D3A6FFA3E2015541CEE2F9D0F1E650416FB3F1F8E00155412C3585B3F0E65041DBE3B9CFDF0155413423B994EFE65041C7DEF3C2DE0155417B14AE57EEE6504114AE4741DD0155417ED434BCE2E65041998A4CABDC015541A68B6713E1E650417592DB95DC015541E17A14DEDBE65041295C8F52DC0155414062097AC8E65041EACE7E47D6015541F4684D2EC8E650412C1EDD7AD7015541E4F49480C7E65041DCED9D4BD7015541459D58B8C6E6504183DDF267DA015541A1A38BEDC6E65041127D9072DA015541CF7E0511C6E650419BB4144DDF015541258743A6C5E65041617A50ADE10155415C8FC285C5E650417B14AE67E2015541B8D38824C5E65041DEA6A9E1E40155416B7F8B49C4E650412B1CB730EC015541CDCCCC1CC4E65041713D0AD7ED01554160B12018C4E650411673F680EE015541718205DEC3E65041BB1AFA80F2015541FF9C728FC3E65041B907B2E9F70155418A538D2CC3E65041987D8CB8FE015541374A8CB5C2E650412389C6E906025541F6BFC92AC4E65041FD422E7E07025541F08444B4C6E650417B1F6C8008025541335DC9B6C7E6504144BCC6D80A025541515E2948C8E650410423A6E60D0255413AA91883CDE650410FD7D67E0D02554154FD4695D1E65041EB89092E0D0255419928D25DD6E65041DFAF18CF0C02554115F72085DCE65041287D4A580C025541A1CAB5B5E1E65041201364F80B025541225CDC78E7E650414341E98D0B025541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>455049 - 454997
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001800000047B708B3CABE504176C76B823EC6544142F7EDE6CBBE50417C378D013DC6544141D73E1ACCBE50418767C94C3AC6544141D73E1ACCBE50418C5FB82539C65441469759E6CABE504196A719B136C654417E1F68D1BCBE50419E1FC5BC34C65441B7A776BCAEBE5041A41F3E2233C65441BEAF79AEACBE50419E67ADE233C65441C21711A1ABBE50419BAF1CA334C65441CBE73F86A9BE50418B5FB82539C65441C9873220AABE50417D77EB9A3CC65441BEE74DBBACBE5041799721023EC65441B06F294AB0BE504176870DE93EC65441A7D7CE71B2BE5041764F39DC3EC65441A12FD9E5B3BE5041752F8A0F3FC6544194F7120EB7BE5041740FDB423FC654418E87F18EB8BE504174EF2B763FC65441855F3FD0BABE504172AFCDDC3FC6544177777245BEBE50416F4FC07640C6544166D7147BC2BE50416AC779B741C654415D6F0423C5BE504167F7C33742C65441576F8BBDC6BE504167F7C33742C654414F2FB4BEC8BE50416D0F62DD40C6544147B708B3CABE504176C76B823EC65441
+</a>
+
+<b>
+010600000001000000010300000002000000330000005D6F0423C5BE504167F7C33742C6544168D7147BC2BE5041693722D141C65441A3445388C2BE50416C7BF9B941C654414096F382C2BE50416CEBF5B841C65441C3F5287CC1BE504114AE476143C65441713D0A37C3BE5041EC51B8EE43C6544166666646C3BE5041EC51B88E43C65441B81E85CBC8BE5041D7A3703D42C6544114AE47B1C9BE504114AE470141C654418FC2F588CCBE50418FC2F5E83DC65441CDCCCC2CCEBE5041713D0A673EC65441F6285C8FCDBE50411F85EBA13FC654419A999989CDBE5041B81E851B41C65441A4703DFACEBE5041333333C340C65441295C8F02D1BE504152B81E8537C654415C8FC205CFBE5041B81E853B37C65441C3F528BCBDBE5041D7A370BD34C654410AD7A320A8BE5041EC51B84E32C65441F6285C7FA7BE5041A4703DCA35C6544166666666A8BE5041000000C035C654419A9999F9A8BE50413D0AD76337C654418FC2F5C8A7BE5041000000E03AC65441295C8F12A7BE50411F85EBA13DC65441A4703D2AAABE5041C3F528AC3FC654415C8FC285ABBE5041666666E640C6544148E17AF4ACBE5041E17A148E41C65441CDCCCC4CAEBE5041C3F528EC41C65441CDCCCC8CB3BE5041D7A3705D41C65441713D0A07B8BE50415C8FC2B541C65441B81E853BB8BE504152B81E3540C654410AB382C9B8BE5041466395803FC654418E87F18EB8BE504174EF2B763FC6544194F7120EB7BE5041740FDB423FC65441A12FD9E5B3BE5041752F8A0F3FC65441A7D7CE71B2BE5041764F39DC3EC65441B06F294AB0BE504176870DE93EC65441BEE74DBBACBE5041799721023EC65441C9873220AABE50417D77EB9A3CC65441CBE73F86A9BE50418B5FB82539C65441C21711A1ABBE50419BAF1CA334C65441BEAF79AEACBE50419E67ADE233C65441B7A776BCAEBE5041A41F3E2233C654417E1F68D1BCBE50419E1FC5BC34C65441469759E6CABE504196A719B136C6544141D73E1ACCBE50418C5FB82539C6544141D73E1ACCBE50418767C94C3AC6544142F7EDE6CBBE50417C378D013DC6544147B708B3CABE504176C76B823EC654414F2FB4BEC8BE50416D0F62DD40C65441576F8BBDC6BE504167F7C33742C654415D6F0423C5BE504167F7C33742C65441070000009A999999CDBE50418FC2F5683BC65441D7A370EDCDBE50410AD7A3C03AC65441E17A141ECFBE50417B14AE573AC65441666666C6CFBE50413D0AD7533BC65441C3F5289CCFBE5041AE47E13A3CC654415C8FC295CEBE5041D7A370ED3CC654419A999999CDBE50418FC2F5683BC65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>624262 - 1433369
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000017000000A4703DBA10FE5041EC51B84EA50755411F85EB910EFE50417B14AE87A9075541F6285CDF0CFE504114AE4761AD075541CDCCCCBC0BFE5041AE47E14AB007554114AE47810EFE5041AE47E12AB007554114AE475110FE5041E17A143EB0075541C3F5282C14FE5041D7A3702DB1075541333333B318FE504166666676B20755411F85EB6120FE5041EC51B87EB4075541AE47E18A25FE5041AE47E1FAB50755410AD7A33028FE5041713D0AD7B60755413D0AD7332DFE5041333333D3B8075541D7A370CD30FE5041295C8F42B4075541A4703D8A31FE5041CDCCCCFCB20755417B14AE6732FE50417B14AE87AF075541000000D032FE50418FC2F5C8AC075541333333C332FE50419A999939A90755416666662632FE5041EC51B80EA507554114AE477125FE504148E17A24A1075541D7A3703D1CFE50410AD7A3C09E0755410AD7A39015FE5041000000309D075541EC51B89E14FE5041CDCCCCBC9E075541A4703DBA10FE5041EC51B84EA5075541
+</a>
+
+<b>
+01060000000100000001030000000100000045000000BB2A465732FE504138895AC1A40755411AD05CF114FE50416314DF0B9E07554153DB06F114FE5041A156060C9E075541E39DFCB914FE50413AF09F059E075541B6AB126F12FE5041108C6E57A2075541A4703DBA10FE5041EC51B84EA50755411F85EB910EFE50417B14AE87A9075541AD197DCC0CFE5041F2F8F962AD075541DAECA0840BFE50416A3C204AB0075541CDCCCCBC0BFE5041AE47E14AB007554114AE47810EFE5041AE47E12AB007554114AE475110FE5041E17A143EB0075541C3F5282C14FE5041D7A3702DB1075541333333B318FE504166666676B20755411F85EB6120FE5041EC51B87EB4075541AE47E18A25FE5041AE47E1FAB50755410AD7A33028FE5041713D0AD7B60755412827E1342DFE5041053C01D2B80755413D0AD7332DFE5041333333D3B807554148E17A542CFE504185EB5108BC07554114AE47412AFE50413D0AD793BF075541C3F5283C29FE50415C8FC215C10755419A99994928FE504152B81E65C2075541B81E859B26FE5041295C8FF2C50755413D0AD70328FE5041CDCCCCECC60755413D0AD7C32DFE5041AE47E14ACA07554114AE473132FE5041C3F528CCCC0755415C8FC20536FE50410AD7A380CE07554114AE47B139FE50411F85EB41D0075541333333633DFE5041A4703DCAD107554148E17A1444FE504152B81E15D5075541C3F528CC49FE50411F85EBB1D7075541333333434BFE5041D7A3705DD80755411F85EBF152FE50410AD7A390DB075541E17A14FE53FE504148E17A64DC0755410AD7A35055FE504148E17A74DD075541F6285CFF57FE5041B81E858BDF075541713D0A375BFE50418FC2F508E2075541A4703D5A5CFE50411F85EBE1E20755417B14AE7764FE5041295C8F92D10755410000004065FE5041666666B6D0075541B81E859B63FE5041A4703D7AD00755417B14AE9762FE5041A4703DEACE0755417B14AE9762FE50419A9999B9CC075541333333335DFE504152B81EF5C7075541666666265AFE504114AE4751C6075541295C8FD258FE5041CDCCCC3CC6075541A4703DCA56FE504152B81EC5C5075541D7A3705D4FFE5041000000C0BF075541666666B64AFE504185EB51B8BB0755413D0AD77346FE50413D0AD7E3BE0755417B14AEA744FE504148E17A14C1075541B81E858B42FE50410AD7A3A0C1075541B81E85AB40FE5041C3F5285CBF075541EC51B85E3CFE504100000090BD0755410AD7A3C03DFE5041A4703D9AB80755413510DA1631FE504115532D5BB40755416C48207731FE5041C291C71DB30755415B1B288131FE5041D7D29CFDB20755418534BCB531FE5041B9EBF14EB2075541E5FD6F8832FE5041EDC31EB8AF0755415EF7EBD732FE5041A6A39DD1AE075541B19482BF32FE50417A110A38AD075541135F06C832FE50410FB1B8BEAB075541C8C620B832FE504188E81A1BA90755412781B57532FE5041AB5F266EA60755418DD39B4932FE50412C50FCD6A4075541109B0D5232FE504197469EC9A4075541BB2A465732FE504138895AC1A4075541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>624262 - 3529499
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000017000000A4703DBA10FE5041EC51B84EA50755411F85EB910EFE50417B14AE87A9075541F6285CDF0CFE504114AE4761AD075541CDCCCCBC0BFE5041AE47E14AB007554114AE47810EFE5041AE47E12AB007554114AE475110FE5041E17A143EB0075541C3F5282C14FE5041D7A3702DB1075541333333B318FE504166666676B20755411F85EB6120FE5041EC51B87EB4075541AE47E18A25FE5041AE47E1FAB50755410AD7A33028FE5041713D0AD7B60755413D0AD7332DFE5041333333D3B8075541D7A370CD30FE5041295C8F42B4075541A4703D8A31FE5041CDCCCCFCB20755417B14AE6732FE50417B14AE87AF075541000000D032FE50418FC2F5C8AC075541333333C332FE50419A999939A90755416666662632FE5041EC51B80EA507554114AE477125FE504148E17A24A1075541D7A3703D1CFE50410AD7A3C09E0755410AD7A39015FE5041000000309D075541EC51B89E14FE5041CDCCCCBC9E075541A4703DBA10FE5041EC51B84EA5075541
+</a>
+
+<b>
+01060000000100000001030000000100000045000000BB2A465732FE504138895AC1A40755411AD05CF114FE50416314DF0B9E07554153DB06F114FE5041A156060C9E075541E39DFCB914FE50413AF09F059E075541B6AB126F12FE5041108C6E57A2075541A4703DBA10FE5041EC51B84EA50755411F85EB910EFE50417B14AE87A9075541AD197DCC0CFE5041F2F8F962AD075541DAECA0840BFE50416A3C204AB0075541CDCCCCBC0BFE5041AE47E14AB007554114AE47810EFE5041AE47E12AB007554114AE475110FE5041E17A143EB0075541C3F5282C14FE5041D7A3702DB1075541333333B318FE504166666676B20755411F85EB6120FE5041EC51B87EB4075541AE47E18A25FE5041AE47E1FAB50755410AD7A33028FE5041713D0AD7B60755412827E1342DFE5041053C01D2B80755413D0AD7332DFE5041333333D3B807554148E17A542CFE504185EB5108BC07554114AE47412AFE50413D0AD793BF075541C3F5283C29FE50415C8FC215C10755419A99994928FE504152B81E65C2075541B81E859B26FE5041295C8FF2C50755413D0AD70328FE5041CDCCCCECC60755413D0AD7C32DFE5041AE47E14ACA07554114AE473132FE5041C3F528CCCC0755415C8FC20536FE50410AD7A380CE07554114AE47B139FE50411F85EB41D0075541333333633DFE5041A4703DCAD107554148E17A1444FE504152B81E15D5075541C3F528CC49FE50411F85EBB1D7075541333333434BFE5041D7A3705DD80755411F85EBF152FE50410AD7A390DB075541E17A14FE53FE504148E17A64DC0755410AD7A35055FE504148E17A74DD075541F6285CFF57FE5041B81E858BDF075541713D0A375BFE50418FC2F508E2075541A4703D5A5CFE50411F85EBE1E20755417B14AE7764FE5041295C8F92D10755410000004065FE5041666666B6D0075541B81E859B63FE5041A4703D7AD00755417B14AE9762FE5041A4703DEACE0755417B14AE9762FE50419A9999B9CC075541333333335DFE504152B81EF5C7075541666666265AFE504114AE4751C6075541295C8FD258FE5041CDCCCC3CC6075541A4703DCA56FE504152B81EC5C5075541D7A3705D4FFE5041000000C0BF075541666666B64AFE504185EB51B8BB0755413D0AD77346FE50413D0AD7E3BE0755417B14AEA744FE504148E17A14C1075541B81E858B42FE50410AD7A3A0C1075541B81E85AB40FE5041C3F5285CBF075541EC51B85E3CFE504100000090BD0755410AD7A3C03DFE5041A4703D9AB80755413510DA1631FE504115532D5BB40755416C48207731FE5041C291C71DB30755415B1B288131FE5041D7D29CFDB20755418534BCB531FE5041B9EBF14EB2075541E5FD6F8832FE5041EDC31EB8AF0755415EF7EBD732FE5041A6A39DD1AE075541B19482BF32FE50417A110A38AD075541135F06C832FE50410FB1B8BEAB075541C8C620B832FE504188E81A1BA90755412781B57532FE5041AB5F266EA60755418DD39B4932FE50412C50FCD6A4075541109B0D5232FE504197469EC9A4075541BB2A465732FE504138895AC1A4075541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>301609 - 35509
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000015000000CDCCCC6C613F5141F6285CEF7F26554114AE47B1703F514185EB51787A265541AE47E1AA753F51418FC2F548782655419A9999497A3F5141A4703DAA75265541D7A3707D7C3F5141D7A370CD73265541C3F5283C7C3F5141C3F5285C7326554148E17A14793F5141713D0A87742655413D0AD783733F5141E17A149E75265541D7A3702D6C3F514152B81EB576265541000000F0673F51413D0AD75377265541713D0A57633F51419A999979782655418FC2F5285C3F5141333333337A2655411F85EB11593F5141A4703DBA7A265541E17A141E503F5141333333E37D2655410AD7A350513F51413D0AD7637F26554114AE47514E3F514148E17A9482265541000000804D3F51413333332384265541333333F3473F5141CDCCCC6C852655417B14AE17493F51418FC2F5688826554133333393523F514114AE470185265541CDCCCC6C613F5141F6285CEF7F265541
+</a>
+
+<b>
+01060000000100000001030000000100000024000000EE1ECE1E733F5141B0C316AD752655410797CC6F723F51419E1E16C775265541C21FFFEC703F5141CDF38B0076265541F7B9EF42703F51419138CF1976265541D1D0FA076F3F5141D4725A4C76265541F203D333683F5141C61BEC49772655411B982099633F51414AE91A6978265541713D0A57633F51419A99997978265541F67EC6A85D3F514165F3FCD679265541063434615C3F5141C8F6AF257A2655418FC2F5285C3F5141333333337A26554148B5210D5A3F5141BCEB5A8F7A265541BF247B89583F5141F23F66EA7A26554110ED0F50563F51412EB463B37B2655416E181113563F51416155EBC87B2655419715A394553F5141E3B18BF57B26554130703109533F5141830C7DDB7C265541E17A141E503F5141333333E37D265541952D9C89463F5141D6ED7AA181265541333333F3473F5141CDCCCC6C85265541000000804D3F5141333333238426554114AE47514E3F514148E17A94822655410AD7A350513F51413D0AD7637F26554169DF17AD523F5141391BC74F7E26554117DD6885553F5141853AA68E7C2655410B17C9B3573F5141926543157C265541551DD3735A3F514112B3C43A7B26554166126B645D3F5141F4F78C787A265541DCFE496D603F51419E2BE3E67926554112F7E6BD643F5141568AD6DB78265541F787D7316A3F51410FE9C9D0772655415FFA3E9F753F5141A98C850376265541F2A1556A793F51412092398B74265541AB0A5E61773F5141F8A343DC742655413D0AD783733F5141E17A149E75265541EE1ECE1E733F5141B0C316AD75265541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>301609 - 74602
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000015000000CDCCCC6C613F5141F6285CEF7F26554114AE47B1703F514185EB51787A265541AE47E1AA753F51418FC2F548782655419A9999497A3F5141A4703DAA75265541D7A3707D7C3F5141D7A370CD73265541C3F5283C7C3F5141C3F5285C7326554148E17A14793F5141713D0A87742655413D0AD783733F5141E17A149E75265541D7A3702D6C3F514152B81EB576265541000000F0673F51413D0AD75377265541713D0A57633F51419A999979782655418FC2F5285C3F5141333333337A2655411F85EB11593F5141A4703DBA7A265541E17A141E503F5141333333E37D2655410AD7A350513F51413D0AD7637F26554114AE47514E3F514148E17A9482265541000000804D3F51413333332384265541333333F3473F5141CDCCCC6C852655417B14AE17493F51418FC2F5688826554133333393523F514114AE470185265541CDCCCC6C613F5141F6285CEF7F265541
+</a>
+
+<b>
+01060000000100000001030000000100000024000000EE1ECE1E733F5141B0C316AD752655410797CC6F723F51419E1E16C775265541C21FFFEC703F5141CDF38B0076265541F7B9EF42703F51419138CF1976265541D1D0FA076F3F5141D4725A4C76265541F203D333683F5141C61BEC49772655411B982099633F51414AE91A6978265541713D0A57633F51419A99997978265541F67EC6A85D3F514165F3FCD679265541063434615C3F5141C8F6AF257A2655418FC2F5285C3F5141333333337A26554148B5210D5A3F5141BCEB5A8F7A265541BF247B89583F5141F23F66EA7A26554110ED0F50563F51412EB463B37B2655416E181113563F51416155EBC87B2655419715A394553F5141E3B18BF57B26554130703109533F5141830C7DDB7C265541E17A141E503F5141333333E37D265541952D9C89463F5141D6ED7AA181265541333333F3473F5141CDCCCC6C85265541000000804D3F5141333333238426554114AE47514E3F514148E17A94822655410AD7A350513F51413D0AD7637F26554169DF17AD523F5141391BC74F7E26554117DD6885553F5141853AA68E7C2655410B17C9B3573F5141926543157C265541551DD3735A3F514112B3C43A7B26554166126B645D3F5141F4F78C787A265541DCFE496D603F51419E2BE3E67926554112F7E6BD643F5141568AD6DB78265541F787D7316A3F51410FE9C9D0772655415FFA3E9F753F5141A98C850376265541F2A1556A793F51412092398B74265541AB0A5E61773F5141F8A343DC742655413D0AD783733F5141E17A149E75265541EE1ECE1E733F5141B0C316AD75265541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>976900 - 59719
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000270000001F85EB112607514148E17A54F7765441EC51B83E28075141C3F5288CFA76544148E17A542A075141333333D3FC765441E17A148E2D075141D7A370CDFF765441333333C32F0751415C8FC2B501775441295C8F0234075141C3F5282C00775441A4703DAA3807514166666636FE7654418FC2F5083F0751418FC2F5A8FA7654413D0AD723460751410AD7A320F6765441D7A3707D4D075141B81E85FBF07654410AD7A31056075141713D0AB7EB765441E17A14AE5C0751413D0AD733E67654417B14AE0764075141295C8F52E07654410AD7A370680751413D0AD703DD765441000000A06B07514152B81EB5D9765441A4703DCA6F075141F6285CAFD4765441AE47E12A710751413D0AD783D4765441A4703D4A7C075141295C8F02C8765441E17A140E88075141CDCCCCCCBA765441D7A3706D87075141F6285CAFB8765441AE47E1BA83075141713D0A07B6765441000000A081075141D7A370BDB57654413D0AD7A37E075141295C8F32BA765441CDCCCCBC7B0751419A9999D9BC765441A4703D3A75075141B81E857BC27654411F85EBF16F0751419A999959C67654410AD7A3806907514148E17AD4CB765441333333A36807514114AE4781CC76544148E17A5467075141C3F5286CCC765441000000306607514114AE47C1CB7654413D0AD79358075141295C8F12C27654417B14AEB75207514185EB5108C076544148E17AF44F075141E17A14DEBE765441333333E332075141CDCCCC1CD2765441713D0A371A075141C3F5287CE276544148E17AC41E075141EC51B8FEE8765441EC51B81E23075141333333C3F1765441C3F528DC2407514114AE4731F57654411F85EB112607514148E17A54F7765441
+</a>
+
+<b>
+0106000000010000000103000000010000003A000000BEB57E6430075141FAF45F7B01775441A4703DAA3807514166666636FE7654418FC2F5083F0751418FC2F5A8FA7654413D0AD723460751410AD7A320F6765441D7A3707D4D075141B81E85FBF07654410AD7A31056075141713D0AB7EB765441E17A14AE5C0751413D0AD733E67654417B14AE0764075141295C8F52E07654410AD7A370680751413D0AD703DD765441000000A06B07514152B81EB5D9765441A4703DCA6F075141F6285CAFD4765441AE47E12A710751413D0AD783D4765441A4703D4A7C075141295C8F02C8765441E17A140E88075141CDCCCCCCBA765441D7A3706D87075141F6285CAFB8765441AE47E1BA83075141713D0A07B6765441000000A081075141D7A370BDB57654413D0AD7A37E075141295C8F32BA765441CDCCCCBC7B0751419A9999D9BC765441A4703D3A75075141B81E857BC27654411F85EBF16F0751419A999959C67654410AD7A3806907514148E17AD4CB765441333333A36807514114AE4781CC76544148E17A5467075141C3F5286CCC765441000000306607514114AE47C1CB7654412CB5AA6164075141174B5D78CA765441940AD41662075141C660DFD6C876544137B0830C61075141C0FC6819C876544197E782356007514113937380C7765441D2D019CD5F07514135D22B36C77654415B40218D5F075141EF1DA908C7765441DD9585525F075141A520F7DEC676544128AA9B005E075141C79D90EEC5765441A737DF705D07514132B04E88C57654418457547C5A0751414775156EC3765441227BE1245A0751414CE0DE2FC37654417473E56359075141DF9793A6C2765441169C862258075141B2DC1CEBC1765441E248C9BF570751414B3FBDC8C1765441328AB68B5707514197829CB6C17654417A056A145707514144A8148DC17654419A15088F5607514101ADA55EC1765441885C444B5607514169890E47C1765441BA65274155075141D0AD6AEAC07654417B14AEB75207514185EB5108C07654413B790AEC51075141DA0171B2BF76544109387C704F075141BD967835BF7654415FE4406C4F07514163D64538BF765441866F2E634607514193F3B533C576544134DDCD7E3F0751417276DEC3C9765441756B36033D075141C465AE68CB765441558DFDE03C07514127CA567FCB7654413D2A43E0380751410366CA25CE7654416C266BD03607514100E84383CF7654414486D3C636075141D9B99D89CF7654415A3F7E221B0751411F38EADFE1765441C4D9C5AD27075141FD7645B2F7765441BEB57E6430075141FAF45F7B01775441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>960633 - 1293786
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003B00000043F60A6AA86D51417177132DDFD2544137EFAFA5A86D51417DAA1198DFD2544189503C2BB76D5141E6EE36F9FAD25441714A2CD1B86D5141822B4080FED25441FBC0284CBA6D514154E1A98900D35441E1BB0999BB6D514131A30CD1FED254418605F0D4BD6D51419C967A82FAD25441F068CEE4BD6D514132339C72FAD2544194F6695FC06D5141876ED5B9F5D2544186E32108C16D5141B0ED7FDEF4D254415787B64FC16D514188B1855EF4D254411C2B1C51B26D5141507BD9B0D8D25441713D0AB7AE6D514152B81EB5D2D25441DB7F155FAD6D51411632646ECFD25441C54046FDAC6D514172FF9C58CED25441B01C4C77AB6D5141AA205025CCD254410068F80AAB6D5141E84D0174CAD25441CC0D073CA76D514199C3179DC4D25441B4164D36AB6D5141BE2555BFBFD25441A4176083A96D5141AB1470BFBDD25441F3EAA941A86D5141ECE9B12CBBD254418DD6C64FA66D5141CEA99450B7D254410A4EEE2FA46D51410E805215B4D254410EC55764A26D5141768384C7B1D2544107DF26DEA06D514170A3772CB4D254419916D0079F6D51416B24CD63B4D254411A547A7D9E6D5141F1E021A2B3D25441B77F210F9A6D514173207786B3D25441F1DFF61C9A6D51413CB64A4FB1D25441BA053D93956D5141FCF486F5B0D254413B6F44F2916D5141FCF486F5B0D25441AF769A24916D514104D1C92CB0D254417B896D478E6D51413CB64A4FB1D254417B14AE278D6D514185EB51D8B0D25441B81E85DB8E6D51415C8FC205B6D254417A4418058F6D5141A4861D5AB8D25441E17A143E8F6D5141B81E858BBBD2544152B81E358F6D5141F6285C6FBED25441FB1DCE958E6D5141CCA8C3B1C3D2544185EB5188916D514100000010C4D25441A4703D0A946D514152B81E65C4D25441B81E85DB956D5141D7A3707DC4D25441D7A3700D986D5141B81E854BC5D2544114AE4741996D5141AE47E1DAC5D2544152B81E259B6D5141EC51B85EC6D25441713D0A679B6D51415C8FC215C7D254417B14AE979C6D514133333323C8D254418FC2F5B89D6D5141333333D3CAD25441333333B39E6D5141CDCCCC1CCCD25441B81E854BA06D51419A999999D0D2544114AE4741A16D514166666686D2D25441A4703DFAA16D5141713D0AD7D4D25441F6285C2FA26D5141333333D3D5D25441D7A3706DA36D5141F6285C6FD7D254419A9999C9A46D51411F85EB81D9D2544185EB51E8A56D514133333333DBD25441A4703DDAA66D5141AE47E15ADCD25441A21BE963A86D51419D3C1530DFD2544143F60A6AA86D51417177132DDFD25441
+</a>
+
+<b>
+0106000000010000000103000000010000003A000000F93D45AAAC6D514136C730BED3D254413D7C6942AE6D5141F9FFA7AED1D254418602D672AE6D5141A95CCE0ED2D25441D97F155FAD6D51411932646ECFD25441C24046FDAC6D514175FF9C58CED25441AE1C4C77AB6D5141AA205025CCD25441FB67F80AAB6D5141E94D0174CAD25441D10D073CA76D514196C3179DC4D25441B4164D36AB6D5141C22555BFBFD25441A3176083A96D5141B01470BFBDD25441F6EAA941A86D5141E8E9B12CBBD2544189D6C64FA66D5141D0A99450B7D25441074EEE2FA46D51410A805215B4D254410EC55764A26D5141728384C7B1D2544107DF26DEA06D514170A3772CB4D254419916D0079F6D51416B24CD63B4D254411A547A7D9E6D5141F1E021A2B3D25441B77F210F9A6D514173207786B3D25441F1DFF61C9A6D51413CB64A4FB1D25441BA053D93956D5141FCF486F5B0D254413B6F44F2916D5141FCF486F5B0D25441AF769A24916D514104D1C92CB0D254417B896D478E6D51413CB64A4FB1D254417B14AE278D6D514185EB51D8B0D25441B81E85DB8E6D51415C8FC205B6D254417A4418058F6D5141A4861D5AB8D25441E17A143E8F6D5141B81E858BBBD2544152B81E358F6D5141F6285C6FBED25441FB1DCE958E6D5141CCA8C3B1C3D2544185EB5188916D514100000010C4D25441A4703D0A946D514152B81E65C4D25441B81E85DB956D5141D7A3707DC4D25441D7A3700D986D5141B81E854BC5D2544114AE4741996D5141AE47E1DAC5D2544152B81E259B6D5141EC51B85EC6D25441713D0A679B6D51415C8FC215C7D254417B14AE979C6D514133333323C8D254418FC2F5B89D6D5141333333D3CAD25441333333B39E6D5141CDCCCC1CCCD25441B81E854BA06D51419A999999D0D2544114AE4741A16D514166666686D2D25441A4703DFAA16D5141713D0AD7D4D25441F6285C2FA26D5141333333D3D5D25441D7A3706DA36D5141F6285C6FD7D254419A9999C9A46D51411F85EB81D9D2544185EB51E8A56D514133333333DBD25441A4703DDAA66D5141AE47E15ADCD25441A21BE963A86D51419D3C1530DFD254413EF60A6AA86D51417677132DDFD254413CEFAFA5A86D514182AA1198DFD254413FFB8974A96D51413D5D121EE1D25441BCABDA72A96D5141BAB22C07E1D25441C2DE0BABA86D51414FB0548DDFD25441B3E24A3BA96D51412C571214DED2544100F77B51A96D5141474B5563DCD254416B990403AA6D5141AA88DEEAD9D25441CE7018E1AA6D5141BB83BC9CD7D25441F93D45AAAC6D514136C730BED3D25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>960633 - 3350232
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003B00000043F60A6AA86D51417177132DDFD2544137EFAFA5A86D51417DAA1198DFD2544189503C2BB76D5141E6EE36F9FAD25441714A2CD1B86D5141822B4080FED25441FBC0284CBA6D514154E1A98900D35441E1BB0999BB6D514131A30CD1FED254418605F0D4BD6D51419C967A82FAD25441F068CEE4BD6D514132339C72FAD2544194F6695FC06D5141876ED5B9F5D2544186E32108C16D5141B0ED7FDEF4D254415787B64FC16D514188B1855EF4D254411C2B1C51B26D5141507BD9B0D8D25441713D0AB7AE6D514152B81EB5D2D25441DB7F155FAD6D51411632646ECFD25441C54046FDAC6D514172FF9C58CED25441B01C4C77AB6D5141AA205025CCD254410068F80AAB6D5141E84D0174CAD25441CC0D073CA76D514199C3179DC4D25441B4164D36AB6D5141BE2555BFBFD25441A4176083A96D5141AB1470BFBDD25441F3EAA941A86D5141ECE9B12CBBD254418DD6C64FA66D5141CEA99450B7D254410A4EEE2FA46D51410E805215B4D254410EC55764A26D5141768384C7B1D2544107DF26DEA06D514170A3772CB4D254419916D0079F6D51416B24CD63B4D254411A547A7D9E6D5141F1E021A2B3D25441B77F210F9A6D514173207786B3D25441F1DFF61C9A6D51413CB64A4FB1D25441BA053D93956D5141FCF486F5B0D254413B6F44F2916D5141FCF486F5B0D25441AF769A24916D514104D1C92CB0D254417B896D478E6D51413CB64A4FB1D254417B14AE278D6D514185EB51D8B0D25441B81E85DB8E6D51415C8FC205B6D254417A4418058F6D5141A4861D5AB8D25441E17A143E8F6D5141B81E858BBBD2544152B81E358F6D5141F6285C6FBED25441FB1DCE958E6D5141CCA8C3B1C3D2544185EB5188916D514100000010C4D25441A4703D0A946D514152B81E65C4D25441B81E85DB956D5141D7A3707DC4D25441D7A3700D986D5141B81E854BC5D2544114AE4741996D5141AE47E1DAC5D2544152B81E259B6D5141EC51B85EC6D25441713D0A679B6D51415C8FC215C7D254417B14AE979C6D514133333323C8D254418FC2F5B89D6D5141333333D3CAD25441333333B39E6D5141CDCCCC1CCCD25441B81E854BA06D51419A999999D0D2544114AE4741A16D514166666686D2D25441A4703DFAA16D5141713D0AD7D4D25441F6285C2FA26D5141333333D3D5D25441D7A3706DA36D5141F6285C6FD7D254419A9999C9A46D51411F85EB81D9D2544185EB51E8A56D514133333333DBD25441A4703DDAA66D5141AE47E15ADCD25441A21BE963A86D51419D3C1530DFD2544143F60A6AA86D51417177132DDFD25441
+</a>
+
+<b>
+0106000000010000000103000000010000003A000000F93D45AAAC6D514136C730BED3D254413D7C6942AE6D5141F9FFA7AED1D254418602D672AE6D5141A95CCE0ED2D25441D97F155FAD6D51411932646ECFD25441C24046FDAC6D514175FF9C58CED25441AE1C4C77AB6D5141AA205025CCD25441FB67F80AAB6D5141E94D0174CAD25441D10D073CA76D514196C3179DC4D25441B4164D36AB6D5141C22555BFBFD25441A3176083A96D5141B01470BFBDD25441F6EAA941A86D5141E8E9B12CBBD2544189D6C64FA66D5141D0A99450B7D25441074EEE2FA46D51410A805215B4D254410EC55764A26D5141728384C7B1D2544107DF26DEA06D514170A3772CB4D254419916D0079F6D51416B24CD63B4D254411A547A7D9E6D5141F1E021A2B3D25441B77F210F9A6D514173207786B3D25441F1DFF61C9A6D51413CB64A4FB1D25441BA053D93956D5141FCF486F5B0D254413B6F44F2916D5141FCF486F5B0D25441AF769A24916D514104D1C92CB0D254417B896D478E6D51413CB64A4FB1D254417B14AE278D6D514185EB51D8B0D25441B81E85DB8E6D51415C8FC205B6D254417A4418058F6D5141A4861D5AB8D25441E17A143E8F6D5141B81E858BBBD2544152B81E358F6D5141F6285C6FBED25441FB1DCE958E6D5141CCA8C3B1C3D2544185EB5188916D514100000010C4D25441A4703D0A946D514152B81E65C4D25441B81E85DB956D5141D7A3707DC4D25441D7A3700D986D5141B81E854BC5D2544114AE4741996D5141AE47E1DAC5D2544152B81E259B6D5141EC51B85EC6D25441713D0A679B6D51415C8FC215C7D254417B14AE979C6D514133333323C8D254418FC2F5B89D6D5141333333D3CAD25441333333B39E6D5141CDCCCC1CCCD25441B81E854BA06D51419A999999D0D2544114AE4741A16D514166666686D2D25441A4703DFAA16D5141713D0AD7D4D25441F6285C2FA26D5141333333D3D5D25441D7A3706DA36D5141F6285C6FD7D254419A9999C9A46D51411F85EB81D9D2544185EB51E8A56D514133333333DBD25441A4703DDAA66D5141AE47E15ADCD25441A21BE963A86D51419D3C1530DFD254413EF60A6AA86D51417677132DDFD254413CEFAFA5A86D514182AA1198DFD254413FFB8974A96D51413D5D121EE1D25441BCABDA72A96D5141BAB22C07E1D25441C2DE0BABA86D51414FB0548DDFD25441B3E24A3BA96D51412C571214DED2544100F77B51A96D5141474B5563DCD254416B990403AA6D5141AA88DEEAD9D25441CE7018E1AA6D5141BB83BC9CD7D25441F93D45AAAC6D514136C730BED3D25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>891834 - 2945182
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000011000000A4703D1ABE01514166666606D2E15441B81E852BC10151418FC2F558D3E154419A9999F9C50151417B14AE17D5E1544133333363C7015141F6285C7FD5E154410AD7A310CA01514166666646CEE1544148E17AB4CE0151411F85EB71C0E154415C8FC2B5D001514166666676B7E15441EC51B82ECB015141713D0AA7B5E1544152B81E75C7015141B81E854BB4E154413D0AD713C60151415C8FC2B5B3E154417B14AE57C301514152B81E65B2E15441F6285CFFBC0151410AD7A310AFE15441F6285C3FAF0151413D0AD7D3C9E154417B14AEF7B30151411F85EB91CCE1544152B81E85B601514133333313CEE15441713D0A77BA015141D7A3706DD0E15441A4703D1ABE01514166666606D2E15441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000AE47E1AAC6015141295C8FB2D7E1544187CD822BC8015141C759750ED8E15441F3BB14F8C90151418E806C89D8E15441A616AC07CA0151418BC5EC5DD8E15441A3E60E21CA0151416C531917D8E154419AE11F71CA015141F640E114D7E15441965C3CC0CA015141A2B5BD15D6E154410901766ACB015141827BF3ECD3E15441E91147FFCC0151411C4C37C1CEE1544108BF0949CE015141926FE98ACAE15441DC9FC286CF015141C8EFF87BC6E15441388AEA15D001514180A5DBA7C4E15441ACDCF373D0015141A9026C6CC3E15441ACDC5EDAD0015141AA821600C2E15441CAD5561CD10151410D816A15C1E15441D728DC2BD1015141B2B143C5C0E154413C480FF5D10151418AFC431FBCE15441E17A14AED20151418FC2F5D8B7E154415C8FC2B5D001514166666676B7E15441C8694682CF015141E6A9F2D7BCE154415D2EFACECE01514127FE35FBBFE1544129DEA6A9CE01514101CA3192C0E154412014BC5CCE0151412B397477C1E15441EF7F3D27CD015141ED28EF11C5E15441D5253A20CB015141190CE81CCBE15441F7AE1320CA01514193856318CEE154417EFECAABC9015141A7CC6E56CFE15441B90B4AA2C7015141BF972DD5D4E15441AE47E1AAC6015141295C8FB2D7E15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>891834 - 3447612
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000011000000A4703D1ABE01514166666606D2E15441B81E852BC10151418FC2F558D3E154419A9999F9C50151417B14AE17D5E1544133333363C7015141F6285C7FD5E154410AD7A310CA01514166666646CEE1544148E17AB4CE0151411F85EB71C0E154415C8FC2B5D001514166666676B7E15441EC51B82ECB015141713D0AA7B5E1544152B81E75C7015141B81E854BB4E154413D0AD713C60151415C8FC2B5B3E154417B14AE57C301514152B81E65B2E15441F6285CFFBC0151410AD7A310AFE15441F6285C3FAF0151413D0AD7D3C9E154417B14AEF7B30151411F85EB91CCE1544152B81E85B601514133333313CEE15441713D0A77BA015141D7A3706DD0E15441A4703D1ABE01514166666606D2E15441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000AE47E1AAC6015141295C8FB2D7E1544187CD822BC8015141C759750ED8E15441F3BB14F8C90151418E806C89D8E15441A616AC07CA0151418BC5EC5DD8E15441A3E60E21CA0151416C531917D8E154419AE11F71CA015141F640E114D7E15441965C3CC0CA015141A2B5BD15D6E154410901766ACB015141827BF3ECD3E15441E91147FFCC0151411C4C37C1CEE1544108BF0949CE015141926FE98ACAE15441DC9FC286CF015141C8EFF87BC6E15441388AEA15D001514180A5DBA7C4E15441ACDCF373D0015141A9026C6CC3E15441ACDC5EDAD0015141AA821600C2E15441CAD5561CD10151410D816A15C1E15441D728DC2BD1015141B2B143C5C0E154413C480FF5D10151418AFC431FBCE15441E17A14AED20151418FC2F5D8B7E154415C8FC2B5D001514166666676B7E15441C8694682CF015141E6A9F2D7BCE154415D2EFACECE01514127FE35FBBFE1544129DEA6A9CE01514101CA3192C0E154412014BC5CCE0151412B397477C1E15441EF7F3D27CD015141ED28EF11C5E15441D5253A20CB015141190CE81CCBE15441F7AE1320CA01514193856318CEE154417EFECAABC9015141A7CC6E56CFE15441B90B4AA2C7015141BF972DD5D4E15441AE47E1AAC6015141295C8FB2D7E15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>891932 - 405789
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000004E000000333333F3CBEF5041D7A3704DD1E154411F85EB91CCEF5041C3F5289CD0E15441C3F528FCCCEF5041713D0A07D0E1544114AE4711CDEF5041C3F528DCCFE15441AE47E15AB8EF5041713D0A67C0E154415C8FC24590EF5041F6285C7FA2E15441295C8F4280EF50415C8FC2F5B7E15441F6285C2F63EF5041CDCCCCECDEE15441AE47E11A46EF5041666666E605E254411F85EBA14AEF504148E17A4409E25441D7A3706D4BEF5041AE47E17A08E25441CDCCCCEC60EF50417B14AE97EBE15441F6285C4F63EF50415C8FC245E8E15441A4703D6A6BEF504185EB5148DEE1544114AE472176EF50417B14AE17D0E1544185EB51E878EF504152B81EA5CCE15441C3F528AC7BEF50411F85EB31C7E15441666666167FEF50415C8FC265C0E154413D0AD7C387EF5041E17A14FEB3E1544114AE47118AEF5041F6285C9FB0E15441D7A3708D8AEF5041C3F528FCB0E15441E17A144E88EF5041E17A145EB4E15441CDCCCCAC7FEF5041E17A14CEC0E15441C3F528CC7AEF5041CDCCCCECCAE15441713D0AA780EF5041E17A14CEC4E154410000005081EF5041F6285C8FC5E15441D7A3709D7BEF5041AE47E16ACBE15441000000606EEF504152B81E05DEE15441CDCCCCDC6EEF50411F85EBD1DFE15441713D0AF775EF504166666646E5E15441B81E85AB7DEF5041C3F528DCEAE1544152B81ED587EF504152B81ED5F1E15441D7A3705D8EEF5041CDCCCC6CF7E1544148E17AF493EF504185EB51E8FBE15441C3F5283C9BEF50413D0AD71301E2544152B81EA59BEF50418FC2F56801E254411F85EB819CEF504148E17AF401E25441F6285CAF9DEF50417B14AEA702E25441AE47E19A9EEF5041CDCCCC3C03E2544152B81E759FEF50411F85EBE103E254410AD7A350A0EF50417B14AE8704E2544166666696A0EF5041F6285CCF04E25441E17A146EA1EF504152B81E8505E25441D7A370EDA1EF5041000000F005E25441C3F528ACA2EF50413333334306E25441B81E859BA3EF5041EC51B82E06E25441A4703DFAA5EF50418FC2F5A804E25441F6285CDFA9EF504114AE4721FFE15441333333F3B5EF5041EC51B8AEEEE15441D7A370EDB6EF50419A999959EDE15441C3F5289CB8EF5041EC51B80EEBE15441AE47E1BABFEF5041C3F5285CE1E15441A4703DEABFEF50418FC2F508E1E15441713D0A27C0EF50419A9999C9E0E15441F6285C6FC0EF5041E17A147EE0E154419A9999D9C0EF504114AE47E1DFE15441295C8F12C1EF504100000090DFE15441B81E859BC1EF504148E17AF4DEE1544152B81E45C2EF5041B81E850BDEE154419A999919C3EF5041C3F528FCDCE1544152B81EF5C3EF504148E17AD4DBE15441AE47E1BAC4EF5041F6285CBFDAE1544114AE4741C5EF5041295C8F02DAE154419A9999B9C5EF50418FC2F558D9E15441A4703D3AC6EF50417B14AEB7D8E15441AE47E1BAC6EF50419A9999F9D7E15441CDCCCC6CC7EF5041F6285C1FD7E15441A4703D2AC8EF50410AD7A340D6E154411F85EB71C8EF5041B81E85EBD5E154419A9999A9C8EF5041D7A3709DD5E15441EC51B8CEC8EF504133333343D5E15441000000E0C8EF5041C3F528DCD4E154418FC2F508C9EF504185EB5178D4E1544152B81E35C9EF5041A4703D2AD4E15441666666D6C9EF5041E17A145ED3E154410AD7A390CAEF504148E17A94D2E1544166666636CBEF504100000000D2E15441333333F3CBEF5041D7A3704DD1E15441
+</a>
+
+<b>
+01060000000100000001030000000100000078000000885D9167CCEF50417FF276CBD0E15441DD7905B6CCEF504121D17C69D0E15441FE033611CDEF5041F7D24CDCCFE15441AE5E54D6CBEF5041A6DC4BF1CEE154419A6C51EBC7EF50411663B904CCE15441AE47E15AB8EF5041713D0A67C0E154417C2B9021A7EF5041363CC15BB3E15441D92E285BA6EF5041ED2768C9B2E15441F2D97241A6EF5041FECE19E6B2E154415C8FC24590EF5041F6285C7FA2E15441295C8F4280EF50415C8FC2F5B7E15441B79207F076EF504143831474C4E154412326E09A69EF504190183C52D6E15441DCFB1D005AEF50411E9B183CEBE15441AE47E11A46EF5041666666E605E254411F85EBA14AEF504148E17A4409E25441BC8431744BEF5041A714CE7108E2544102B9D36057EF50414C99CB6BF8E154412890309D61EF50413CBE23A2EAE15441F6285C4F63EF50415C8FC245E8E1544113EDFB8767EF5041ECFECF11E3E15441355440596AEF50419662CC98DFE15441058B5F456FEF504195440C2DD9E1544114AE472176EF50417B14AE17D0E1544179CB180877EF5041CD3E2FF9CEE1544185EB51E878EF504152B81EA5CCE15441006325D479EF504110854AD4CAE15441908037047BEF50417F80F27CC8E15441BC4B72607DEF50410FC77FCDC3E15441666666167FEF50415C8FC265C0E15441EFD738C280EF504126BE2902BEE15441A726546F83EF5041F233C32EBAE154410C7D02C987EF50411D7283F6B3E15441BE6FB50289EF5041AE11602BB2E1544114AE47118AEF5041F6285C9FB0E15441D7A3708D8AEF5041C3F528FCB0E15441E73C1A4089EF5041B3B5D5F1B2E15441E17A144E88EF5041E17A145EB4E15441E3D6BF8C86EF5041A902A7E5B6E154414B37DDBD82EF5041CC92A662BCE15441CDCCCCAC7FEF5041E17A14CEC0E15441884D96397EEF504169EE48D0C3E154418C54FCB47CEF5041DD7391F6C6E154415C9A84D77BEF50416CA413C2C8E15441C3F528CC7AEF5041CDCCCCECCAE15441713D0AA780EF5041E17A14CEC4E154410000005081EF5041F6285C8FC5E154417BF823B07EEF50413C441642C8E1544159DA0DAC7CEF50411C97AA54CAE15441D7A3709D7BEF5041AE47E16ACBE15441D13281DF7AEF50412A51BE75CCE15441879BEF3C77EF504194AB3691D1E154419612EAA570EF50417E6484D3DAE15441E965F2A16EEF5041739176A8DDE154413D1BEA786EEF50417582D3FBDDE15441AFA7EF786EEF504177233161DEE15441BAA7ADAC6EEF504164723D20DFE15441A27308CE6EEF5041954F659BDFE15441E8E14DFA6EEF5041C89594E8DFE154410BC6DA6671EF5041210330C5E1E154417722BB7678EF504156231516E7E15441E40727CA7BEF504158233D7FE9E154416843F2577EEF5041873C7652EBE154417EDA97C784EF50411DEDE9BCEFE1544152B81ED587EF504152B81ED5F1E15441191A56ED8DEF504133DDD30CF7E154415DCEB96593EF50415E37D975FBE1544132B9A58496EF504170964EBAFDE15441C3F5283C9BEF50413D0AD71301E2544101626B969BEF50410BC9095D01E25441AB6C49B59BEF5041FEF02C7301E254417D1685429CEF5041F0206BCC01E254411F85EB819CEF504148E17AF401E25441F6285CAF9DEF50417B14AEA702E25441AE47E19A9EEF5041CDCCCC3C03E2544152B81E759FEF50411F85EBE103E254410AD7A350A0EF50417B14AE8704E2544166666696A0EF5041F6285CCF04E25441F65C9EC1A0EF5041E417C8F304E254410FA165FEA1EF504158B865F705E25441C3F528ACA2EF50413333334306E25441E28A4E84A3EF50419DC6B43006E25441852BE0ABA5EF5041AF384DDB04E25441A4703DFAA5EF50418FC2F5A804E254414B1B24ECA6EF5041D833845103E25441BF247CCEA9EF5041EC1A3D39FFE15441F6285CDFA9EF504114AE4721FFE154419E7F005CAAEF5041C3F38977FEE1544199C1157FB3EF50411B141B06F2E1544145ED1A0DB7EF50411F55742EEDE15441C3F5289CB8EF5041EC51B80EEBE1544195EA3A02BBEF504145EE59CAE7E15441AE47E1BABFEF5041C3F5285CE1E15441A4703DEABFEF50418FC2F508E1E15441713D0A27C0EF50419A9999C9E0E15441F6285C6FC0EF5041E17A147EE0E154419A9999D9C0EF504114AE47E1DFE15441295C8F12C1EF504100000090DFE15441B81E859BC1EF504148E17AF4DEE1544152B81E45C2EF5041B81E850BDEE154419A999919C3EF5041C3F528FCDCE1544152B81EF5C3EF504148E17AD4DBE15441AE47E1BAC4EF5041F6285CBFDAE1544114AE4741C5EF5041295C8F02DAE154419A9999B9C5EF50418FC2F558D9E15441A4703D3AC6EF50417B14AEB7D8E15441AE47E1BAC6EF50419A9999F9D7E15441CDCCCC6CC7EF5041F6285C1FD7E15441A4703D2AC8EF50410AD7A340D6E154411F85EB71C8EF5041B81E85EBD5E154419A9999A9C8EF5041D7A3709DD5E15441EC51B8CEC8EF504133333343D5E15441000000E0C8EF5041C3F528DCD4E154418FC2F508C9EF504185EB5178D4E1544152B81E35C9EF5041A4703D2AD4E15441666666D6C9EF5041E17A145ED3E154410AD7A390CAEF504148E17A94D2E1544166666636CBEF504100000000D2E15441333333F3CBEF5041D7A3704DD1E15441885D9167CCEF50417FF276CBD0E15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235975 - 235971
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000110000001FBA177521F950415DA28E2F212C544107BA177521F9504103A28E2F212C5441A47F2B6F21F9504156F1C91D212C54418E60DA15F9F85041B6BBD0AF302C5441465BA02DE7F85041A0DF410B382C544120EDF74BE7F850413B779C4E382C5441EC73C3FFE7F850413893F1323B2C5441CDCCCCFCE7F8504148E17A343B2C544119CC1D0AE8F85041337A325A3B2C5441E85532D6E9F8504153CAAD70402C544168C39321FAF85041A5AB7CD7392C5441D0A30EFD06F950416C39EEBF342C5441EA14503612F950414A0BC050302C5441D15E5AC919F950415EB27A4D2D2C54411765C61923F95041149B02E3292C54413982737223F950418CF6E7C4292C54411FBA177521F950415DA28E2F212C5441
+</a>
+
+<b>
+0106000000010000000103000000040000001500000052B81E852CF95041E17A149E182C54410AD7A3902AF95041295C8FE2122C5441A4703DDA25F950410AD7A3D0142C5441713D0AD71DF95041000000E0172C544148E17A1413F95041D7A370AD1B2C54418FC2F5480BF95041F6285C9F1E2C5441295C8F4200F9504185EB5108232C54411F85EB01EFF8504100000060292C5441A4703DBAECF850419A9999592A2C5441666666C6EAF850417B14AE872B2C5441333333B3E4F85041D7A370AD302C5441713D0A57E4F850419A9999F9332C54410AD7A390E4F850415C8FC265382C54416FB1A29BE5F85041F4988D2D3F2C544132DBA5B4EAF8504166591581532C544152B81EB5EDF85041F6285CCF602C5441F6285CDF3CF95041B81E856B412C5441D7A3705D37F95041F6285C0F352C5441295C8F5237F95041713D0AF7342C54419A9999992DF950415C8FC2751B2C544152B81E852CF95041E17A149E182C5441050000000AD7A3402BF95041713D0A171E2C5441666666C62CF950411F85EB811D2C5441666666062EF95041AE47E1CA202C5441000000802CF95041F6285C5F212C54410AD7A3402BF95041713D0A171E2C54410F0000000AD7A38008F95041713D0AA7522C544166666656FCF8504152B81E85572C54410AD7A380F0F8504152B81ED55B2C5441E17A142EEEF85041D7A370DD542C54413D0AD713ECF8504148E17A044C2C54419A999979F6F850410AD7A3D0472C5441E17A14DE01F95041AE47E12A432C5441CDCCCCDC1AF9504133333353392C54417B14AE9725F95041B81E853B352C54418FC2F57827F95041D7A370DD3C2C544114AE472129F95041AE47E1BA412C544152B81E752AF95041E17A147E452C54410000006024F950417B14AE97472C54415C8FC2C516F95041333333034D2C54410AD7A38008F95041713D0AA7522C544117000000A07F2B6F21F950415BF1C91D212C544187BA177521F95041FAA18E2F212C54413882737223F9504189F6E7C4292C54411465C61923F95041109B02E3292C5441D15E5AC919F9504163B27A4D2D2C5441EB14503612F95041480BC050302C5441D2A30EFD06F950416F39EEBF342C54416CC39321FAF85041A2AB7CD7392C5441E95532D6E9F8504153CAAD70402C5441F6285CBFE9F850410AD7A330402C544119CC1D0AE8F85041307A325A3B2C54415EDC6309E8F850413323955A3B2C544179577D07E8F85041C9D2C1523B2C5441CDCCCCFCE7F8504148E17A343B2C5441E873C3FFE7F850413593F1323B2C544122EDF74BE7F850413A779C4E382C54418964C63BE7F85041EE11C12A382C54414A5BA02DE7F850419EDF410B382C54418960DA15F9F85041BABBD0AF302C54415880828C1FF9504191730BD8212C5441C0DFBB3921F950411D7AE81C212C5441E1A9F44021F9504196659F2F212C5441A07F2B6F21F950415BF1C91D212C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235975 - 1157879
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000110000001FBA177521F950415DA28E2F212C544107BA177521F9504103A28E2F212C5441A47F2B6F21F9504156F1C91D212C54418E60DA15F9F85041B6BBD0AF302C5441465BA02DE7F85041A0DF410B382C544120EDF74BE7F850413B779C4E382C5441EC73C3FFE7F850413893F1323B2C5441CDCCCCFCE7F8504148E17A343B2C544119CC1D0AE8F85041337A325A3B2C5441E85532D6E9F8504153CAAD70402C544168C39321FAF85041A5AB7CD7392C5441D0A30EFD06F950416C39EEBF342C5441EA14503612F950414A0BC050302C5441D15E5AC919F950415EB27A4D2D2C54411765C61923F95041149B02E3292C54413982737223F950418CF6E7C4292C54411FBA177521F950415DA28E2F212C5441
+</a>
+
+<b>
+0106000000010000000103000000040000001500000052B81E852CF95041E17A149E182C54410AD7A3902AF95041295C8FE2122C5441A4703DDA25F950410AD7A3D0142C5441713D0AD71DF95041000000E0172C544148E17A1413F95041D7A370AD1B2C54418FC2F5480BF95041F6285C9F1E2C5441295C8F4200F9504185EB5108232C54411F85EB01EFF8504100000060292C5441A4703DBAECF850419A9999592A2C5441666666C6EAF850417B14AE872B2C5441333333B3E4F85041D7A370AD302C5441713D0A57E4F850419A9999F9332C54410AD7A390E4F850415C8FC265382C544170B1A29BE5F85041F0988D2D3F2C544131DBA5B4EAF8504163591581532C544152B81EB5EDF85041F6285CCF602C5441F6285CDF3CF95041B81E856B412C5441D7A3705D37F95041F6285C0F352C5441295C8F5237F95041713D0AF7342C54419A9999992DF950415C8FC2751B2C544152B81E852CF95041E17A149E182C5441050000000AD7A3402BF95041713D0A171E2C5441666666C62CF950411F85EB811D2C5441666666062EF95041AE47E1CA202C5441000000802CF95041F6285C5F212C54410AD7A3402BF95041713D0A171E2C54410F0000000AD7A38008F95041713D0AA7522C544166666656FCF8504152B81E85572C54410AD7A380F0F8504152B81ED55B2C5441E17A142EEEF85041D7A370DD542C54413D0AD713ECF8504148E17A044C2C54419A999979F6F850410AD7A3D0472C5441E17A14DE01F95041AE47E12A432C5441CDCCCCDC1AF9504133333353392C54417B14AE9725F95041B81E853B352C54418FC2F57827F95041D7A370DD3C2C544114AE472129F95041AE47E1BA412C544152B81E752AF95041E17A147E452C54410000006024F950417B14AE97472C54415C8FC2C516F95041333333034D2C54410AD7A38008F95041713D0AA7522C544117000000A07F2B6F21F950415BF1C91D212C544187BA177521F95041FAA18E2F212C54413882737223F9504189F6E7C4292C54411465C61923F95041109B02E3292C5441D15E5AC919F9504163B27A4D2D2C5441EB14503612F95041480BC050302C5441D2A30EFD06F950416F39EEBF342C54416CC39321FAF85041A2AB7CD7392C5441E95532D6E9F8504153CAAD70402C5441F6285CBFE9F850410AD7A330402C544119CC1D0AE8F85041307A325A3B2C54415EDC6309E8F850413323955A3B2C544179577D07E8F85041C9D2C1523B2C5441CDCCCCFCE7F8504148E17A343B2C5441E873C3FFE7F850413593F1323B2C544122EDF74BE7F850413A779C4E382C54418964C63BE7F85041EE11C12A382C54414A5BA02DE7F850419EDF410B382C54418960DA15F9F85041BABBD0AF302C54415880828C1FF9504191730BD8212C5441C0DFBB3921F950411D7AE81C212C5441E1A9F44021F9504196659F2F212C5441A07F2B6F21F950415BF1C91D212C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>235975 - 5255529
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000110000001FBA177521F950415DA28E2F212C544107BA177521F9504103A28E2F212C5441A47F2B6F21F9504156F1C91D212C54418E60DA15F9F85041B6BBD0AF302C5441465BA02DE7F85041A0DF410B382C544120EDF74BE7F850413B779C4E382C5441EC73C3FFE7F850413893F1323B2C5441CDCCCCFCE7F8504148E17A343B2C544119CC1D0AE8F85041337A325A3B2C5441E85532D6E9F8504153CAAD70402C544168C39321FAF85041A5AB7CD7392C5441D0A30EFD06F950416C39EEBF342C5441EA14503612F950414A0BC050302C5441D15E5AC919F950415EB27A4D2D2C54411765C61923F95041149B02E3292C54413982737223F950418CF6E7C4292C54411FBA177521F950415DA28E2F212C5441
+</a>
+
+<b>
+0106000000010000000103000000040000001500000052B81E852CF95041E17A149E182C54410AD7A3902AF95041295C8FE2122C5441A4703DDA25F950410AD7A3D0142C5441713D0AD71DF95041000000E0172C544148E17A1413F95041D7A370AD1B2C54418FC2F5480BF95041F6285C9F1E2C5441295C8F4200F9504185EB5108232C54411F85EB01EFF8504100000060292C5441A4703DBAECF850419A9999592A2C5441666666C6EAF850417B14AE872B2C5441333333B3E4F85041D7A370AD302C5441713D0A57E4F850419A9999F9332C54410AD7A390E4F850415C8FC265382C544170B1A29BE5F85041F0988D2D3F2C544131DBA5B4EAF8504163591581532C544152B81EB5EDF85041F6285CCF602C5441F6285CDF3CF95041B81E856B412C5441D7A3705D37F95041F6285C0F352C5441295C8F5237F95041713D0AF7342C54419A9999992DF950415C8FC2751B2C544152B81E852CF95041E17A149E182C5441050000000AD7A3402BF95041713D0A171E2C5441666666C62CF950411F85EB811D2C5441666666062EF95041AE47E1CA202C5441000000802CF95041F6285C5F212C54410AD7A3402BF95041713D0A171E2C54410F0000000AD7A38008F95041713D0AA7522C544166666656FCF8504152B81E85572C54410AD7A380F0F8504152B81ED55B2C5441E17A142EEEF85041D7A370DD542C54413D0AD713ECF8504148E17A044C2C54419A999979F6F850410AD7A3D0472C5441E17A14DE01F95041AE47E12A432C5441CDCCCCDC1AF9504133333353392C54417B14AE9725F95041B81E853B352C54418FC2F57827F95041D7A370DD3C2C544114AE472129F95041AE47E1BA412C544152B81E752AF95041E17A147E452C54410000006024F950417B14AE97472C54415C8FC2C516F95041333333034D2C54410AD7A38008F95041713D0AA7522C544117000000A07F2B6F21F950415BF1C91D212C544187BA177521F95041FAA18E2F212C54413882737223F9504189F6E7C4292C54411465C61923F95041109B02E3292C5441D15E5AC919F9504163B27A4D2D2C5441EB14503612F95041480BC050302C5441D2A30EFD06F950416F39EEBF342C54416CC39321FAF85041A2AB7CD7392C5441E95532D6E9F8504153CAAD70402C5441F6285CBFE9F850410AD7A330402C544119CC1D0AE8F85041307A325A3B2C54415EDC6309E8F850413323955A3B2C544179577D07E8F85041C9D2C1523B2C5441CDCCCCFCE7F8504148E17A343B2C5441E873C3FFE7F850413593F1323B2C544122EDF74BE7F850413A779C4E382C54418964C63BE7F85041EE11C12A382C54414A5BA02DE7F850419EDF410B382C54418960DA15F9F85041BABBD0AF302C54415880828C1FF9504191730BD8212C5441C0DFBB3921F950411D7AE81C212C5441E1A9F44021F9504196659F2F212C5441A07F2B6F21F950415BF1C91D212C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>880102 - 53370
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000007000000C3F5280C173F51410AD7A3A05C46544114AE4731153F5141295C8F4257465441E17A145E0E3F5141666666265E465441CDCCCCAC073F5141EC51B89E68465441C3F528BC083F5141000000D06946544148E17A640A3F5141713D0A3769465441C3F5280C173F51410AD7A3A05C465441
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000000A8B05610A3F51417B63493869465441F5BDBF640A3F5141CBBEC53669465441C3F5280C173F51410AD7A3A05C46544128E63530153F514196BFA343574654410C115D67133F5141D76AD610594654412A8ADE5F0E3F5141C7501F275E4654419AB68A2E093F514156FF334B664654417B1FE12E083F51412F0938D367465441FF0740AE073F5141458D739C6846544151844F94083F514160602BA369465441C3F528BC083F5141000000D0694654410A8B05610A3F51417B63493869465441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>498274 - 1010394
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000003E000000F1328B80B707514189AEFA20F13454416B01B25AB7075141A906E6E1F03454411682E3F0B407514179F4A389F03454412E8B041DB5075141E7BDDD80EF3454415C8FC265B5075141AE47E1EAE8345441AE47E1DAA607514166666666E8345441295C8F02A40751413D0AD7F3E9345441AE47E17A9D0751418FC2F518E9345441E17A148E95075141F6285C3FE9345441D7A3707D900751411F85EBC1E9345441A4703D4A8C075141CDCCCCECEC3454416666661688075141C3F528CCEC345441295C8FB285075141F6285C2FED345441295C8FC285075141C3F5289CF0345441C3F528BC8807514185EB51D8F5345441295C8FA2870751418FC2F5E8F5345441BA52595F85075141A20C62C5F3345441713D0A7782075141B81E85BBEC3454417B14AEA78007514148E17A04EA345441AE47E12A7F0751413D0AD7D3EB345441EC51B88E7F0751419A999969EE3454410AD7A3D07F0751410AD7A320F13454411F85EBA17D075141333333C3F334544185EB51C87B0751417B14AE77F1345441795726EA7907514186051836F134544124C24FD178075141BFD32075EC345441379C7E5478075141E5877E7BEB34544166BD731C77075141E5C7FA30E83454412402CC8675075141C05319E0E53454414EC2F23A720751413457F647E63454417FD43493720751413A09AC3AE73454410A77ACC472075141504E9B9DE73454418CB14DD872075141F8A129B4E7345441BDD1656F7307514180FAAB53E9345441977FF21974075141DAB5ABCEEA3454414AB6298D74075141E5877E7BEB34544178E1343F75075141452CCDBEEC3454411E6F66817507514138D56185ED345441C3FC97C37507514181F0C409EE34544122211C74760751416F4B0FC3EF345441E9FC6FAA77075141FF557C45F2345441CD6003A97707514193B89BD4F1345441FD724501780751410CE640B1F2345441CFAC804D7E075141C7C0CEF5FF3454419E4B1EFA8F07514113A9826DF7345441CDCCCC2C94075141000000C0F63454413D0AD7C398075141C3F5282CF8345441295C8FB29907514148E17A64FA34544148E17AB49D0751410AD7A3F0F73454417B14AE27A4075141B81E850BF5345441CCACADCBA50751419B9FCA03F43454412BAF1BA6A6075141205696E4F334544164FD2B7AA8075141B8E69048F3345441AF256BD1A9075141460AF4EAF234544163BDAFC4AB075141D42D578DF2345441CC2CB560AC0751416351BA2FF2345441909E28D7AD075141E8078610F2345441E533FFEFAE0751416DBE51F1F134544147366DCAAF0751416CBE51F1F1345441905EAC21B1075141054F4C55F1345441728A3472B7075141BB0C5A50F1345441F1328B80B707514189AEFA20F13454410A000000053B3A55A40751416CBE51F1F13454412282009AA3075141D5AD4FF8EB345441516379ACA5075141801879DFEA3454415A9094B8A807514121160B05EA345441FB4DAA28AB0751419C5F3F24EA345441B95286DDAC0751415A641BD9EB3454411755F4B7AD075141AFB9753CF03454415123FDF6A80751417F988074F134544118D5EC22A7075141FBE1B493F1345441053B3A55A40751416CBE51F1F1345441
+</a>
+
+<b>
+01060000000100000001030000000300000091000000F18081BF60075141BDD75CB1E83454414966F3E362075141FF7551E9ED345441AA35E49065075141E357AA94F13454413462A820690751416D17A067F73454416A053ABD6B075141E8DAD5CFFB345441FC4D300D6E075141A1C2CBA5FF345441E4A218A86F075141C3FADAC7023554413E4D395870075141EBAD60FF04355441B2AB7D2F710751418E99BC2108355441D2A1B8CC720751413EC55689093554419BF36115770751416E2E5FAC0935544195E2FAFF770751415AB3DDB3093554412B0AE6ED7A075141EED8DFDF0835544146118A857D075141D5B4C71E08355441316DCD507F0751419DE5269907355441E2751C9481075141AA29478B06355441725A858B830751415DE98E7D0535544143354A1C850751413BFCD4A604355441E58742FB860751412DEA34A6033554414B3F3EF887075141C07A7B03033554417DC02E2789075141834CD35F02355441F35FF9348B07514133EF21C301355441EFD9C2058E0751416639C3E700355441DF8295CF900751414189C9BFFF345441EE31857A930751411E4C4E33FE34544111F3D9029707514174FAB009FC345441295C8FB29907514148E17A64FA34544148E17AB49D0751410AD7A3F0F73454417B14AE27A4075141B81E850BF5345441CCACADCBA5075141969FCA03F434544128AF1BA6A6075141235696E4F33454415FFD2B7AA8075141B8E69048F3345441B3256BD1A9075141490AF4EAF234544168BDAFC4AB075141CF2D578DF2345441C82CB560AC0751416051BA2FF23454418F9E28D7AD075141EC078610F2345441E833FFEFAE0751416EBE51F1F134544144366DCAAF0751416EBE51F1F13454418D5EAC21B1075141034F4C55F1345441768A3472B7075141BC0C5A50F134544148E17A54B7075141295C8FB2F13454411C772FF2BF0751417DA0EC74F234544148E17AA4C9075141D7A3700DF63454412B9A944CD1075141710189D1F83454411197F171D407514146310C86F93454414B98420ED9075141EC692829F934544191311065DD075141C32DFE99F8345441D6198413DF0751415D3BCB38F834544194F9E454F207514152A11757F3345441AE8C7C5EF5075141D763C703F3345441305648E3F607514148DB59BEF23454415C8FC24505085141EC51B8FEF13454411F85EB710A0851410AD7A300F334544184A61F0708085141EE6D86B6F1345441053D2948080851419B2384F5F0345441C102188408085141A7C67047F1345441D254514E0A0851413F159C25F2345441E17A148E0B0851419A9999E9F234544114AE47610C08514133333313F3345441A4703D6A0C085141713D0AE7F23454417B14AE770D085141E17A141EF3345441EC51B86E0D085141A4703D4AF334544148E17A840E085141295C8FA2F33454415C8FC2F50F085141D7A3701DF4345441905FE62311085141DDB500CEF434544112A4524F13085141FD001EC0F4345441F6285CBF13085141EC51B8CEF3345441D7A3709D13085141EC51B8BEF0345441CDCCCCFC1308514152B81E75EF345441D7A370DD14085141295C8F32EF345441000000801608514152B81EF5EF34544185EB5158180851419A999919EE345441D7A3703D1A08514152B81E05EE3454416666661619085141EC51B8AEEA34544114AE47A10E085141C3F528FCE7345441AE47E1CAFB07514152B81E95E23454410AD7A370F207514185EB5178DE345441A4703DFAF2075141B81E85FBDC345441F6285CCFE7075141666666D6D53454410AD7A3B0E1075141B81E85BBD134544114AE47F1D907514114AE4781CB34544148E17A14D10751419A9999E9C4345441CDCCCC3CC90751411F85EB11C534544152B81EB5CE07514152B81E75BB345441AE47E16AC70751415C8FC2D5BB3454413D0AD7F3C007514185EB5188BC345441B81E85BBBF075141E17A140EBD345441B81E85BBBF075141E17A144EBE345441B81E85CBC1075141666666F6BF345441037A5FABC1075141A76B9872C434544137655766BF075141EBD6C0FEC5345441CDF4E083C10751411AEFB761C8345441F4CB79A7C2075141E499DBBCC934544186626304C607514128C4940DCF345441DBFB123CC807514183FAF50ED1345441FB025DCBCA0751412925A340D3345441C6E16703CC0751416EE04AD6D4345441689F7D73CE075141FDC331C3D734544117D41A1BD00751419B247199D83454411D56D799D20751413A7AB84FDB345441C6BCB573D6075141BA984F39E13454411D31A553D90751419251AB44E63454418EA8370ED9075141BFF51DD9E93454418FC2F5B8D607514166666666EB34544185EB51F8D407514100000080EC34544148E17A04D007514133333333EA34544166666606CD0751411F85EB01EA3454415C8FC265CB075141D7A3703DEE34544185EB51C8B70751413D0AD733F0345441CD755CCEB707514174B595BCF03454411B82E3F0B40751417CF4A389F03454412A8B041DB5075141ECBDDD80EF345441F2B9AE21B5075141AC31CD6EE9345441AE47E1DAA607514166666666E8345441295C8F02A40751413D0AD7F3E9345441AE47E17A9D0751418FC2F518E9345441E17A148E95075141F6285C3FE9345441D7A3707D900751411F85EBC1E9345441B45C15EC8E075141591860C1EC345441B5F25CD491075141775D89E8F0345441E823FC778D0751414C8DEDD4EE345441BD5360648B075141B5820F11ED3454416666661688075141C3F528CCEC3454410140DF93850751415248CD60ED345441CC6F43808307514199D34800EE345441713D0A7782075141B81E85BBEC3454417B14AEA78007514148E17A04EA345441AE47E12A7F0751413D0AD7D3EB345441EC51B88E7F0751419A999969EE3454410AD7A3D07F0751410AD7A320F13454411F85EBA17D075141333333C3F334544185EB51C87B0751417B14AE77F1345441785726EA7907514185051836F13454419BC7A30379075141C631D621EC3454419BC7A30379075141F7D483B7EB34544167BD731C77075141E8C7FA30E83454412202CC8675075141C45319E0E53454412A6F68FB7207514118164630E6345441F3305DED71075141042668FFE33454410C36F9A76B075141D5CFF80AE5345441C28FA238660751418225F29FE43454417EE85F0A62075141DAD0E4C9E3345441B2EEE8225F075141B7DD7B24E5345441D4FAF28B60075141052556AEE8345441F18081BF60075141BDD75CB1E83454410A000000053B3A55A40751416EBE51F1F13454412682009AA3075141D3AD4FF8EB3454414E6379ACA5075141851879DFEA3454415B9094B8A80751411E160B05EA345441FD4DAA28AB0751419C5F3F24EA345441B55286DDAC07514155641BD9EB3454411C55F4B7AD075141ABB9753CF03454414C23FDF6A807514181988074F134544115D5EC22A7075141FFE1B493F1345441053B3A55A40751416EBE51F1F134544105000000211C942287075141D7FDC00FF53454418456D6D28607514190724570F4345441DFC91F7C880751415FDBB055F4345441993EA4DC87075141E2F1A794F5345441211C942287075141D7FDC00FF5345441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>498274 - 3298612
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000003E000000F1328B80B707514189AEFA20F13454416B01B25AB7075141A906E6E1F03454411682E3F0B407514179F4A389F03454412E8B041DB5075141E7BDDD80EF3454415C8FC265B5075141AE47E1EAE8345441AE47E1DAA607514166666666E8345441295C8F02A40751413D0AD7F3E9345441AE47E17A9D0751418FC2F518E9345441E17A148E95075141F6285C3FE9345441D7A3707D900751411F85EBC1E9345441A4703D4A8C075141CDCCCCECEC3454416666661688075141C3F528CCEC345441295C8FB285075141F6285C2FED345441295C8FC285075141C3F5289CF0345441C3F528BC8807514185EB51D8F5345441295C8FA2870751418FC2F5E8F5345441BA52595F85075141A20C62C5F3345441713D0A7782075141B81E85BBEC3454417B14AEA78007514148E17A04EA345441AE47E12A7F0751413D0AD7D3EB345441EC51B88E7F0751419A999969EE3454410AD7A3D07F0751410AD7A320F13454411F85EBA17D075141333333C3F334544185EB51C87B0751417B14AE77F1345441795726EA7907514186051836F134544124C24FD178075141BFD32075EC345441379C7E5478075141E5877E7BEB34544166BD731C77075141E5C7FA30E83454412402CC8675075141C05319E0E53454414EC2F23A720751413457F647E63454417FD43493720751413A09AC3AE73454410A77ACC472075141504E9B9DE73454418CB14DD872075141F8A129B4E7345441BDD1656F7307514180FAAB53E9345441977FF21974075141DAB5ABCEEA3454414AB6298D74075141E5877E7BEB34544178E1343F75075141452CCDBEEC3454411E6F66817507514138D56185ED345441C3FC97C37507514181F0C409EE34544122211C74760751416F4B0FC3EF345441E9FC6FAA77075141FF557C45F2345441CD6003A97707514193B89BD4F1345441FD724501780751410CE640B1F2345441CFAC804D7E075141C7C0CEF5FF3454419E4B1EFA8F07514113A9826DF7345441CDCCCC2C94075141000000C0F63454413D0AD7C398075141C3F5282CF8345441295C8FB29907514148E17A64FA34544148E17AB49D0751410AD7A3F0F73454417B14AE27A4075141B81E850BF5345441CCACADCBA50751419B9FCA03F43454412BAF1BA6A6075141205696E4F334544164FD2B7AA8075141B8E69048F3345441AF256BD1A9075141460AF4EAF234544163BDAFC4AB075141D42D578DF2345441CC2CB560AC0751416351BA2FF2345441909E28D7AD075141E8078610F2345441E533FFEFAE0751416DBE51F1F134544147366DCAAF0751416CBE51F1F1345441905EAC21B1075141054F4C55F1345441728A3472B7075141BB0C5A50F1345441F1328B80B707514189AEFA20F13454410A000000053B3A55A40751416CBE51F1F13454412282009AA3075141D5AD4FF8EB345441516379ACA5075141801879DFEA3454415A9094B8A807514121160B05EA345441FB4DAA28AB0751419C5F3F24EA345441B95286DDAC0751415A641BD9EB3454411755F4B7AD075141AFB9753CF03454415123FDF6A80751417F988074F134544118D5EC22A7075141FBE1B493F1345441053B3A55A40751416CBE51F1F1345441
+</a>
+
+<b>
+01060000000100000001030000000300000091000000F18081BF60075141BDD75CB1E83454414966F3E362075141FF7551E9ED345441AA35E49065075141E357AA94F13454413462A820690751416D17A067F73454416A053ABD6B075141E8DAD5CFFB345441FC4D300D6E075141A1C2CBA5FF345441E4A218A86F075141C3FADAC7023554413E4D395870075141EBAD60FF04355441B2AB7D2F710751418E99BC2108355441D2A1B8CC720751413EC55689093554419BF36115770751416E2E5FAC0935544195E2FAFF770751415AB3DDB3093554412B0AE6ED7A075141EED8DFDF0835544146118A857D075141D5B4C71E08355441316DCD507F0751419DE5269907355441E2751C9481075141AA29478B06355441725A858B830751415DE98E7D0535544143354A1C850751413BFCD4A604355441E58742FB860751412DEA34A6033554414B3F3EF887075141C07A7B03033554417DC02E2789075141834CD35F02355441F35FF9348B07514133EF21C301355441EFD9C2058E0751416639C3E700355441DF8295CF900751414189C9BFFF345441EE31857A930751411E4C4E33FE34544111F3D9029707514174FAB009FC345441295C8FB29907514148E17A64FA34544148E17AB49D0751410AD7A3F0F73454417B14AE27A4075141B81E850BF5345441CCACADCBA5075141969FCA03F434544128AF1BA6A6075141235696E4F33454415FFD2B7AA8075141B8E69048F3345441B3256BD1A9075141490AF4EAF234544168BDAFC4AB075141CF2D578DF2345441C82CB560AC0751416051BA2FF23454418F9E28D7AD075141EC078610F2345441E833FFEFAE0751416EBE51F1F134544144366DCAAF0751416EBE51F1F13454418D5EAC21B1075141034F4C55F1345441768A3472B7075141BC0C5A50F134544148E17A54B7075141295C8FB2F13454411C772FF2BF0751417DA0EC74F234544148E17AA4C9075141D7A3700DF63454412B9A944CD1075141710189D1F83454411197F171D407514146310C86F93454414B98420ED9075141EC692829F934544191311065DD075141C32DFE99F8345441D6198413DF0751415D3BCB38F834544194F9E454F207514152A11757F3345441AE8C7C5EF5075141D763C703F3345441305648E3F607514148DB59BEF23454415C8FC24505085141EC51B8FEF13454411F85EB710A0851410AD7A300F334544184A61F0708085141EE6D86B6F1345441053D2948080851419B2384F5F0345441C102188408085141A7C67047F1345441D254514E0A0851413F159C25F2345441E17A148E0B0851419A9999E9F234544114AE47610C08514133333313F3345441A4703D6A0C085141713D0AE7F23454417B14AE770D085141E17A141EF3345441EC51B86E0D085141A4703D4AF334544148E17A840E085141295C8FA2F33454415C8FC2F50F085141D7A3701DF4345441905FE62311085141DDB500CEF434544112A4524F13085141FD001EC0F4345441F6285CBF13085141EC51B8CEF3345441D7A3709D13085141EC51B8BEF0345441CDCCCCFC1308514152B81E75EF345441D7A370DD14085141295C8F32EF345441000000801608514152B81EF5EF34544185EB5158180851419A999919EE345441D7A3703D1A08514152B81E05EE3454416666661619085141EC51B8AEEA34544114AE47A10E085141C3F528FCE7345441AE47E1CAFB07514152B81E95E23454410AD7A370F207514185EB5178DE345441A4703DFAF2075141B81E85FBDC345441F6285CCFE7075141666666D6D53454410AD7A3B0E1075141B81E85BBD134544114AE47F1D907514114AE4781CB34544148E17A14D10751419A9999E9C4345441CDCCCC3CC90751411F85EB11C534544152B81EB5CE07514152B81E75BB345441AE47E16AC70751415C8FC2D5BB3454413D0AD7F3C007514185EB5188BC345441B81E85BBBF075141E17A140EBD345441B81E85BBBF075141E17A144EBE345441B81E85CBC1075141666666F6BF345441037A5FABC1075141A76B9872C434544137655766BF075141EBD6C0FEC5345441CDF4E083C10751411AEFB761C8345441F4CB79A7C2075141E499DBBCC934544186626304C607514128C4940DCF345441DBFB123CC807514183FAF50ED1345441FB025DCBCA0751412925A340D3345441C6E16703CC0751416EE04AD6D4345441689F7D73CE075141FDC331C3D734544117D41A1BD00751419B247199D83454411D56D799D20751413A7AB84FDB345441C6BCB573D6075141BA984F39E13454411D31A553D90751419251AB44E63454418EA8370ED9075141BFF51DD9E93454418FC2F5B8D607514166666666EB34544185EB51F8D407514100000080EC34544148E17A04D007514133333333EA34544166666606CD0751411F85EB01EA3454415C8FC265CB075141D7A3703DEE34544185EB51C8B70751413D0AD733F0345441CD755CCEB707514174B595BCF03454411B82E3F0B40751417CF4A389F03454412A8B041DB5075141ECBDDD80EF345441F2B9AE21B5075141AC31CD6EE9345441AE47E1DAA607514166666666E8345441295C8F02A40751413D0AD7F3E9345441AE47E17A9D0751418FC2F518E9345441E17A148E95075141F6285C3FE9345441D7A3707D900751411F85EBC1E9345441B45C15EC8E075141591860C1EC345441B5F25CD491075141775D89E8F0345441E823FC778D0751414C8DEDD4EE345441BD5360648B075141B5820F11ED3454416666661688075141C3F528CCEC3454410140DF93850751415248CD60ED345441CC6F43808307514199D34800EE345441713D0A7782075141B81E85BBEC3454417B14AEA78007514148E17A04EA345441AE47E12A7F0751413D0AD7D3EB345441EC51B88E7F0751419A999969EE3454410AD7A3D07F0751410AD7A320F13454411F85EBA17D075141333333C3F334544185EB51C87B0751417B14AE77F1345441785726EA7907514185051836F13454419BC7A30379075141C631D621EC3454419BC7A30379075141F7D483B7EB34544167BD731C77075141E8C7FA30E83454412202CC8675075141C45319E0E53454412A6F68FB7207514118164630E6345441F3305DED71075141042668FFE33454410C36F9A76B075141D5CFF80AE5345441C28FA238660751418225F29FE43454417EE85F0A62075141DAD0E4C9E3345441B2EEE8225F075141B7DD7B24E5345441D4FAF28B60075141052556AEE8345441F18081BF60075141BDD75CB1E83454410A000000053B3A55A40751416EBE51F1F13454412682009AA3075141D3AD4FF8EB3454414E6379ACA5075141851879DFEA3454415B9094B8A80751411E160B05EA345441FD4DAA28AB0751419C5F3F24EA345441B55286DDAC07514155641BD9EB3454411C55F4B7AD075141ABB9753CF03454414C23FDF6A807514181988074F134544115D5EC22A7075141FFE1B493F1345441053B3A55A40751416EBE51F1F134544105000000211C942287075141D7FDC00FF53454418456D6D28607514190724570F4345441DFC91F7C880751415FDBB055F4345441993EA4DC87075141E2F1A794F5345441211C942287075141D7FDC00FF5345441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>498274 - 229355
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000003E000000F1328B80B707514189AEFA20F13454416B01B25AB7075141A906E6E1F03454411682E3F0B407514179F4A389F03454412E8B041DB5075141E7BDDD80EF3454415C8FC265B5075141AE47E1EAE8345441AE47E1DAA607514166666666E8345441295C8F02A40751413D0AD7F3E9345441AE47E17A9D0751418FC2F518E9345441E17A148E95075141F6285C3FE9345441D7A3707D900751411F85EBC1E9345441A4703D4A8C075141CDCCCCECEC3454416666661688075141C3F528CCEC345441295C8FB285075141F6285C2FED345441295C8FC285075141C3F5289CF0345441C3F528BC8807514185EB51D8F5345441295C8FA2870751418FC2F5E8F5345441BA52595F85075141A20C62C5F3345441713D0A7782075141B81E85BBEC3454417B14AEA78007514148E17A04EA345441AE47E12A7F0751413D0AD7D3EB345441EC51B88E7F0751419A999969EE3454410AD7A3D07F0751410AD7A320F13454411F85EBA17D075141333333C3F334544185EB51C87B0751417B14AE77F1345441795726EA7907514186051836F134544124C24FD178075141BFD32075EC345441379C7E5478075141E5877E7BEB34544166BD731C77075141E5C7FA30E83454412402CC8675075141C05319E0E53454414EC2F23A720751413457F647E63454417FD43493720751413A09AC3AE73454410A77ACC472075141504E9B9DE73454418CB14DD872075141F8A129B4E7345441BDD1656F7307514180FAAB53E9345441977FF21974075141DAB5ABCEEA3454414AB6298D74075141E5877E7BEB34544178E1343F75075141452CCDBEEC3454411E6F66817507514138D56185ED345441C3FC97C37507514181F0C409EE34544122211C74760751416F4B0FC3EF345441E9FC6FAA77075141FF557C45F2345441CD6003A97707514193B89BD4F1345441FD724501780751410CE640B1F2345441CFAC804D7E075141C7C0CEF5FF3454419E4B1EFA8F07514113A9826DF7345441CDCCCC2C94075141000000C0F63454413D0AD7C398075141C3F5282CF8345441295C8FB29907514148E17A64FA34544148E17AB49D0751410AD7A3F0F73454417B14AE27A4075141B81E850BF5345441CCACADCBA50751419B9FCA03F43454412BAF1BA6A6075141205696E4F334544164FD2B7AA8075141B8E69048F3345441AF256BD1A9075141460AF4EAF234544163BDAFC4AB075141D42D578DF2345441CC2CB560AC0751416351BA2FF2345441909E28D7AD075141E8078610F2345441E533FFEFAE0751416DBE51F1F134544147366DCAAF0751416CBE51F1F1345441905EAC21B1075141054F4C55F1345441728A3472B7075141BB0C5A50F1345441F1328B80B707514189AEFA20F13454410A000000053B3A55A40751416CBE51F1F13454412282009AA3075141D5AD4FF8EB345441516379ACA5075141801879DFEA3454415A9094B8A807514121160B05EA345441FB4DAA28AB0751419C5F3F24EA345441B95286DDAC0751415A641BD9EB3454411755F4B7AD075141AFB9753CF03454415123FDF6A80751417F988074F134544118D5EC22A7075141FBE1B493F1345441053B3A55A40751416CBE51F1F1345441
+</a>
+
+<b>
+01060000000100000001030000000300000047000000B45C15EC8E075141591860C1EC3454417E08011B920751417D95FC08F1345441A9C530D391075141AD94DCE6F0345441B5F25CD491075141775D89E8F0345441E823FC778D0751414C8DEDD4EE345441BD5360648B075141B5820F11ED3454416666661688075141C3F528CCEC3454410140DF93850751415248CD60ED345441CC6F43808307514199D34800EE345441713D0A7782075141B81E85BBEC3454417B14AEA78007514148E17A04EA345441AE47E12A7F0751413D0AD7D3EB345441EC51B88E7F0751419A999969EE3454410AD7A3D07F0751410AD7A320F13454411F85EBA17D075141333333C3F334544185EB51C87B0751417B14AE77F1345441785726EA7907514185051836F13454419BC7A30379075141C631D621EC3454419BC7A30379075141F7D483B7EB34544167BD731C77075141E8C7FA30E83454412202CC8675075141C45319E0E53454412A6F68FB7207514118164630E63454410A5C4CFA710751412445451AE4345441C8CB728A71075141368CE40FE43454410C36F9A76B075141D5CFF80AE5345441C28FA238660751418225F29FE43454417EE85F0A62075141DAD0E4C9E3345441B2EEE8225F075141B7DD7B24E53454415AFDEF97600751415B480AAFE8345441F18081BF60075141BDD75CB1E8345441427D33E360075141D8095008E93454418274AB27620751410AFBC4FEE834544185A3B8D26307514111F6EF08E934544169EBEE4A6507514111F6EF08E93454413B42A4A4660751418CF53A20ED345441694EDE96680751411DB224B5EF345441A4BA4ACA72075141D7F22F6AED345441D88F7DF173075141D5AB8EB0ED34544122EEDEA5740751416FA9F93CEE345441B07BE5567A0751410CA98793F93454418D827C9B7C0751418ED568BAFD34544158DE06EB7D075141F3B42508003554415512E98B7F075141B0EB4C98FF34544129C179748C075141C9111A29F9345441281F94CA8F075141EAC9E3B0F7345441CDCCCC2C94075141000000C0F63454412519550398075141F0C40EBBF7345441BF9C8701990751415970E967F8345441DC7308289A0751419ED2961CFA34544148E17AB49D0751410AD7A3F0F73454417B14AE27A4075141B81E850BF5345441CCACADCBA5075141969FCA03F434544128AF1BA6A6075141235696E4F33454415FFD2B7AA8075141B8E69048F3345441B3256BD1A9075141490AF4EAF234544168BDAFC4AB075141CF2D578DF2345441C82CB560AC0751416051BA2FF23454418F9E28D7AD075141EC078610F2345441E833FFEFAE0751416EBE51F1F134544144366DCAAF0751416EBE51F1F13454418D5EAC21B1075141034F4C55F1345441768A3472B7075141BC0C5A50F1345441CD755CCEB707514174B595BCF03454411B82E3F0B40751417CF4A389F0345441F2B9AE21B5075141AC31CD6EE9345441AE47E1DAA607514166666666E8345441295C8F02A40751413D0AD7F3E9345441AE47E17A9D0751418FC2F518E9345441E17A148E95075141F6285C3FE9345441D7A3707D900751411F85EBC1E9345441B45C15EC8E075141591860C1EC3454410A000000053B3A55A40751416EBE51F1F13454412682009AA3075141D3AD4FF8EB3454414E6379ACA5075141851879DFEA3454415B9094B8A80751411E160B05EA345441FD4DAA28AB0751419C5F3F24EA345441B55286DDAC07514155641BD9EB3454411C55F4B7AD075141ABB9753CF03454414C23FDF6A807514181988074F134544115D5EC22A7075141FFE1B493F1345441053B3A55A40751416EBE51F1F134544105000000211C942287075141D7FDC00FF53454418456D6D28607514190724570F4345441DFC91F7C880751415FDBB055F4345441993EA4DC87075141E2F1A794F5345441211C942287075141D7FDC00FF5345441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>498274 - 371310
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000003E000000F1328B80B707514189AEFA20F13454416B01B25AB7075141A906E6E1F03454411682E3F0B407514179F4A389F03454412E8B041DB5075141E7BDDD80EF3454415C8FC265B5075141AE47E1EAE8345441AE47E1DAA607514166666666E8345441295C8F02A40751413D0AD7F3E9345441AE47E17A9D0751418FC2F518E9345441E17A148E95075141F6285C3FE9345441D7A3707D900751411F85EBC1E9345441A4703D4A8C075141CDCCCCECEC3454416666661688075141C3F528CCEC345441295C8FB285075141F6285C2FED345441295C8FC285075141C3F5289CF0345441C3F528BC8807514185EB51D8F5345441295C8FA2870751418FC2F5E8F5345441BA52595F85075141A20C62C5F3345441713D0A7782075141B81E85BBEC3454417B14AEA78007514148E17A04EA345441AE47E12A7F0751413D0AD7D3EB345441EC51B88E7F0751419A999969EE3454410AD7A3D07F0751410AD7A320F13454411F85EBA17D075141333333C3F334544185EB51C87B0751417B14AE77F1345441795726EA7907514186051836F134544124C24FD178075141BFD32075EC345441379C7E5478075141E5877E7BEB34544166BD731C77075141E5C7FA30E83454412402CC8675075141C05319E0E53454414EC2F23A720751413457F647E63454417FD43493720751413A09AC3AE73454410A77ACC472075141504E9B9DE73454418CB14DD872075141F8A129B4E7345441BDD1656F7307514180FAAB53E9345441977FF21974075141DAB5ABCEEA3454414AB6298D74075141E5877E7BEB34544178E1343F75075141452CCDBEEC3454411E6F66817507514138D56185ED345441C3FC97C37507514181F0C409EE34544122211C74760751416F4B0FC3EF345441E9FC6FAA77075141FF557C45F2345441CD6003A97707514193B89BD4F1345441FD724501780751410CE640B1F2345441CFAC804D7E075141C7C0CEF5FF3454419E4B1EFA8F07514113A9826DF7345441CDCCCC2C94075141000000C0F63454413D0AD7C398075141C3F5282CF8345441295C8FB29907514148E17A64FA34544148E17AB49D0751410AD7A3F0F73454417B14AE27A4075141B81E850BF5345441CCACADCBA50751419B9FCA03F43454412BAF1BA6A6075141205696E4F334544164FD2B7AA8075141B8E69048F3345441AF256BD1A9075141460AF4EAF234544163BDAFC4AB075141D42D578DF2345441CC2CB560AC0751416351BA2FF2345441909E28D7AD075141E8078610F2345441E533FFEFAE0751416DBE51F1F134544147366DCAAF0751416CBE51F1F1345441905EAC21B1075141054F4C55F1345441728A3472B7075141BB0C5A50F1345441F1328B80B707514189AEFA20F13454410A000000053B3A55A40751416CBE51F1F13454412282009AA3075141D5AD4FF8EB345441516379ACA5075141801879DFEA3454415A9094B8A807514121160B05EA345441FB4DAA28AB0751419C5F3F24EA345441B95286DDAC0751415A641BD9EB3454411755F4B7AD075141AFB9753CF03454415123FDF6A80751417F988074F134544118D5EC22A7075141FBE1B493F1345441053B3A55A40751416CBE51F1F1345441
+</a>
+
+<b>
+01060000000100000001030000000300000047000000B45C15EC8E075141591860C1EC3454417E08011B920751417D95FC08F1345441A9C530D391075141AD94DCE6F0345441B5F25CD491075141775D89E8F0345441E823FC778D0751414C8DEDD4EE345441BD5360648B075141B5820F11ED3454416666661688075141C3F528CCEC3454410140DF93850751415248CD60ED345441CC6F43808307514199D34800EE345441713D0A7782075141B81E85BBEC3454417B14AEA78007514148E17A04EA345441AE47E12A7F0751413D0AD7D3EB345441EC51B88E7F0751419A999969EE3454410AD7A3D07F0751410AD7A320F13454411F85EBA17D075141333333C3F334544185EB51C87B0751417B14AE77F1345441785726EA7907514185051836F13454419BC7A30379075141C631D621EC3454419BC7A30379075141F7D483B7EB34544167BD731C77075141E8C7FA30E83454412202CC8675075141C45319E0E53454412A6F68FB7207514118164630E63454410A5C4CFA710751412445451AE4345441C8CB728A71075141368CE40FE43454410C36F9A76B075141D5CFF80AE5345441C28FA238660751418225F29FE43454417EE85F0A62075141DAD0E4C9E3345441B2EEE8225F075141B7DD7B24E53454415AFDEF97600751415B480AAFE8345441F18081BF60075141BDD75CB1E8345441427D33E360075141D8095008E93454418274AB27620751410AFBC4FEE834544185A3B8D26307514111F6EF08E934544169EBEE4A6507514111F6EF08E93454413B42A4A4660751418CF53A20ED345441694EDE96680751411DB224B5EF345441A4BA4ACA72075141D7F22F6AED345441D88F7DF173075141D5AB8EB0ED34544122EEDEA5740751416FA9F93CEE345441B07BE5567A0751410CA98793F93454418D827C9B7C0751418ED568BAFD34544158DE06EB7D075141F3B42508003554415512E98B7F075141B0EB4C98FF34544129C179748C075141C9111A29F9345441281F94CA8F075141EAC9E3B0F7345441CDCCCC2C94075141000000C0F63454412519550398075141F0C40EBBF7345441BF9C8701990751415970E967F8345441DC7308289A0751419ED2961CFA34544148E17AB49D0751410AD7A3F0F73454417B14AE27A4075141B81E850BF5345441CCACADCBA5075141969FCA03F434544128AF1BA6A6075141235696E4F33454415FFD2B7AA8075141B8E69048F3345441B3256BD1A9075141490AF4EAF234544168BDAFC4AB075141CF2D578DF2345441C82CB560AC0751416051BA2FF23454418F9E28D7AD075141EC078610F2345441E833FFEFAE0751416EBE51F1F134544144366DCAAF0751416EBE51F1F13454418D5EAC21B1075141034F4C55F1345441768A3472B7075141BC0C5A50F1345441CD755CCEB707514174B595BCF03454411B82E3F0B40751417CF4A389F0345441F2B9AE21B5075141AC31CD6EE9345441AE47E1DAA607514166666666E8345441295C8F02A40751413D0AD7F3E9345441AE47E17A9D0751418FC2F518E9345441E17A148E95075141F6285C3FE9345441D7A3707D900751411F85EBC1E9345441B45C15EC8E075141591860C1EC3454410A000000053B3A55A40751416EBE51F1F13454412682009AA3075141D3AD4FF8EB3454414E6379ACA5075141851879DFEA3454415B9094B8A80751411E160B05EA345441FD4DAA28AB0751419C5F3F24EA345441B55286DDAC07514155641BD9EB3454411C55F4B7AD075141ABB9753CF03454414C23FDF6A807514181988074F134544115D5EC22A7075141FFE1B493F1345441053B3A55A40751416EBE51F1F134544105000000211C942287075141D7FDC00FF53454418456D6D28607514190724570F4345441DFC91F7C880751415FDBB055F4345441993EA4DC87075141E2F1A794F5345441211C942287075141D7FDC00FF5345441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>880141 - 2952080
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000010000000E66F4458D4E8504117DC54D7C090544166666696B0E850413D0AD7F3A9905441F9059597B0E85041BFB3A9F2A99054418D394D77AFE85041560B123AA9905441295C8FD2A3E8504100000050B690544101A8D92F9AE850411E21FB1EC290544116A6341994E85041D51284C0C7905441FA06573493E850410B882F94C8905441389C66ED90E850412BCCE105CB9054414C96C62D9FE85041D924A535D0905441F012B861A3E850416E7EB1B3D0905441D0D42C13AAE85041BEFB071FD0905441C0F359A7B4E8504189ED53BACB905441CAC4AFADBEE85041AC76D5B0C7905441BFCB32FBCFE85041253051AFC3905441E66F4458D4E8504117DC54D7C0905441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000333333D3A9E850419A999939D090544114AE47A1BDE8504100000000C890544185EB5178C3E85041713D0A47C6905441E17A14FECFE85041EC51B8AEC3905441CDCCCC9CD4E8504133333303C190544166666696B0E850413D0AD7F3A99054410AD7A370AFE850415C8FC235A9905441295C8FD2A3E8504100000050B69054418FC2F5589AE850418FC2F5F8C1905441A4703DAA90E85041D7A370EDCA905441C3F5283C9FE85041AE47E13AD09054411F85EB11A3E850419A9999B9D0905441333333D3A9E850419A999939D0905441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>880141 - 3280428
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000010000000E66F4458D4E8504117DC54D7C090544166666696B0E850413D0AD7F3A9905441F9059597B0E85041BFB3A9F2A99054418D394D77AFE85041560B123AA9905441295C8FD2A3E8504100000050B690544101A8D92F9AE850411E21FB1EC290544116A6341994E85041D51284C0C7905441FA06573493E850410B882F94C8905441389C66ED90E850412BCCE105CB9054414C96C62D9FE85041D924A535D0905441F012B861A3E850416E7EB1B3D0905441D0D42C13AAE85041BEFB071FD0905441C0F359A7B4E8504189ED53BACB905441CAC4AFADBEE85041AC76D5B0C7905441BFCB32FBCFE85041253051AFC3905441E66F4458D4E8504117DC54D7C0905441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000333333D3A9E850419A999939D090544114AE47A1BDE8504100000000C890544185EB5178C3E85041713D0A47C6905441E17A14FECFE85041EC51B8AEC3905441CDCCCC9CD4E8504133333303C190544166666696B0E850413D0AD7F3A99054410AD7A370AFE850415C8FC235A9905441295C8FD2A3E8504100000050B69054418FC2F5589AE850418FC2F5F8C1905441A4703DAA90E85041D7A370EDCA905441C3F5283C9FE85041AE47E13AD09054411F85EB11A3E850419A9999B9D0905441333333D3A9E850419A999939D0905441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>880438 - 14647
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002700000052B81EB52DF55041AE47E1DACA4D544185EB518834F55041CDCCCC3CC84D54410000005040F55041000000C0C34D54411F85EB9153F55041D7A3705DBC4D5441C3F5285C66F55041295C8F12B54D5441000000406CF5504148E17AA4B24D54413D0AD7D366F5504133333393A94D54411F85EB815EF55041C3F528DC9C4D5441D7A370ED59F550411F85EB91954D5441F6285CEF56F55041D7A370CD904D54418FC2F5C854F5504185EB51388C4D54411F85EB9153F55041C3F5288C874D54413D0AD75351F550419A999929804D544148E17A3450F550413D0AD7E37C4D5441D7A370CD4EF550415C8FC2457A4D5441F6285CFF4BF5504114AE4751754D5441333333F346F55041666666666E4D544185EB510840F5504148E17AE4654D54416666662637F5504152B81E055A4D54411F85EB3132F55041A4703DBA524D5441333333D326F55041EC51B8FE434D544152B81E4516F55041295C8F62494D5441AE47E18A02F55041E17A145E4F4D54413D0AD703F9F450411F85EB91524D5441295C8F62F0F450410AD7A3F0554D5441C3F5289CECF450419A999999574D5441295C8F02E9F4504185EB5158594D544166666676E3F45041CDCCCC8C5C4D5441EC51B82EE3F45041F6285CBF5D4D544133333373D1F450418FC2F508674D5441E17A149ED4F450417B14AEB76C4D5441AE47E16AE4F4504166666646844D5441EC51B8DEF4F450413D0AD7839D4D54415C8FC23501F5504166666606B04D5441713D0A9715F5504185EB5168CE4D5441CDCCCCAC18F55041D7A370CDD24D544114AE47A11DF55041EC51B8EED04D5441A4703D2A27F5504114AE4761CD4D544152B81EB52DF55041AE47E1DACA4D5441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000C3F5286C19F550418FC2F508D44D5441EDAFDDF120F5504182516F81D14D5441DB00F0FD23F55041B0598049D04D5441333333132DF550417B14AEA7CC4D54419A01D0CD53F55041A1ED1086BD4D5441CABC60045BF550410AE8DBB2BA4D5441DE14372462F55041A920A6E6B74D5441F6285C9F6DF55041CDCCCC4CB34D5441000000406CF5504148E17AA4B24D5441C3F5285C66F55041295C8F12B54D54416D853C7F59F550414FB48F10BA4D544101EF28EF52F55041763BDB9BBC4D5441F1A389DD4AF55041AFDCFEB3BF4D54418A549C813BF550416E12B594C54D54417313E93638F550410F3ABAD5C64D5441644D4C902EF550418F54D286CA4D5441E7A2594E27F5504111FE5753CD4D5441CDCCCCAC18F55041D7A370CDD24D5441C3F5286C19F550418FC2F508D44D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>880438 - 62655
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002700000052B81EB52DF55041AE47E1DACA4D544185EB518834F55041CDCCCC3CC84D54410000005040F55041000000C0C34D54411F85EB9153F55041D7A3705DBC4D5441C3F5285C66F55041295C8F12B54D5441000000406CF5504148E17AA4B24D54413D0AD7D366F5504133333393A94D54411F85EB815EF55041C3F528DC9C4D5441D7A370ED59F550411F85EB91954D5441F6285CEF56F55041D7A370CD904D54418FC2F5C854F5504185EB51388C4D54411F85EB9153F55041C3F5288C874D54413D0AD75351F550419A999929804D544148E17A3450F550413D0AD7E37C4D5441D7A370CD4EF550415C8FC2457A4D5441F6285CFF4BF5504114AE4751754D5441333333F346F55041666666666E4D544185EB510840F5504148E17AE4654D54416666662637F5504152B81E055A4D54411F85EB3132F55041A4703DBA524D5441333333D326F55041EC51B8FE434D544152B81E4516F55041295C8F62494D5441AE47E18A02F55041E17A145E4F4D54413D0AD703F9F450411F85EB91524D5441295C8F62F0F450410AD7A3F0554D5441C3F5289CECF450419A999999574D5441295C8F02E9F4504185EB5158594D544166666676E3F45041CDCCCC8C5C4D5441EC51B82EE3F45041F6285CBF5D4D544133333373D1F450418FC2F508674D5441E17A149ED4F450417B14AEB76C4D5441AE47E16AE4F4504166666646844D5441EC51B8DEF4F450413D0AD7839D4D54415C8FC23501F5504166666606B04D5441713D0A9715F5504185EB5168CE4D5441CDCCCCAC18F55041D7A370CDD24D544114AE47A11DF55041EC51B8EED04D5441A4703D2A27F5504114AE4761CD4D544152B81EB52DF55041AE47E1DACA4D5441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000C3F5286C19F550418FC2F508D44D5441EDAFDDF120F5504182516F81D14D5441DB00F0FD23F55041B0598049D04D5441333333132DF550417B14AEA7CC4D54419A01D0CD53F55041A1ED1086BD4D5441CABC60045BF550410AE8DBB2BA4D5441DE14372462F55041A920A6E6B74D5441F6285C9F6DF55041CDCCCC4CB34D5441000000406CF5504148E17AA4B24D5441C3F5285C66F55041295C8F12B54D54416D853C7F59F550414FB48F10BA4D544101EF28EF52F55041763BDB9BBC4D5441F1A389DD4AF55041AFDCFEB3BF4D54418A549C813BF550416E12B594C54D54417313E93638F550410F3ABAD5C64D5441644D4C902EF550418F54D286CA4D5441E7A2594E27F5504111FE5753CD4D5441CDCCCCAC18F55041D7A370CDD24D5441C3F5286C19F550418FC2F508D44D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>941693 - 2961172
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A000000295C8F125516514152B81EF5CCAE5441295C8FE25416514100000030D4AE54419A99992953165141D7A3700D17AF5441EC51B86E6B165141C3F5283C16AF5441E17A14BE6C1651419A999969E3AE54413333337368165141EC51B88EE3AE5441AE47E1EA681651410AD7A360D1AE5441EC51B8AE68165141EC51B8DECCAE54411F85EB6167165141B81E85BBCBAE5441295C8F125516514152B81EF5CCAE5441
+</a>
+
+<b>
+01060000000100000001030000000100000090000000CAA48E295316514191E2190F17AF5441BD49577D53165141D78A9E0A17AF5441547A9157541651412CC5440317AF54418FB075165516514101B7D6FC16AF5441B1052404561651419A31D5F416AF5441E3C0125A5716514160B650E916AF54411862BD82581651413E8F52DF16AF5441AF363E1B5A165141240A90D116AF54418C494B6F5B1651413DC81BC616AF544120AC7BD45C16514197BE13BA16AF54411EDF13735E16514110B31CAC16AF5441B46D120F601651415D133C9E16AF54410AC4A1E7611651411332518E16AF5441FA09F4E963165141F134FE7C16AF5441EB75D75B65165141A2A9887016AF5441616375C3661651416DB06B6416AF5441F6DBD4776816514161D9B85516AF5441FDCB5F056A16514177D7544816AF5441256AB26E6B1651410FC4153D16AF5441D2C2BF776B165141D5C0DEDD14AF54417AC0147C6B1651418090CE3514AF54418F502F816B165141A069CD6F13AF54410EB205856B1651410B29EDDA12AF5441DC7B6A8A6B165141345FAC0912AF5441F52BBB8F6B1651411065773B11AF5441DEBC56956B1651418675E96110AF5441E8A6309B6B16514126ADE87E0FAF5441377562A26B1651412F57CA670EAF5441B5E47AA86B16514163FE4F7B0DAF5441AF8344B36B1651417CB1CCD80BAF5441147C37B86B165141CB90CB180BAF5441D41FFEBD6B165141198EB6380AAF544140788EC46B1651417735103A09AF5441F2576DCA6B165141AD034F5608AF5441BB0D99D06B16514133E5E86607AF54414A70A0D76B165141F34F385606AF544119FD76DA6B16514195381DE805AF5441AFA34DE06B1651415E0C9B0505AF5441E27AFCE56B1651412657212904AF5441C72AC9EB6B16514100B7214803AF544117EA29F26B1651414EF9B15002AF5441DB4B26FA6B165141268AE01A01AF544144088BFD6B165141213B399700AF5441AF601B046C1651417DE29298FFAE5441F54AA50C6C1651411D8E4E4DFEAE5441670462136C165141727DEE47FDAE5441E435A2176C1651417B2805A3FCAE5441EE6C25206C16514100C4C458FBAE5441383C2B256C16514140BFE895FAAE544187EDFF2A6C165141558AB2B3F9AE544152826B316C165141577D9EBAF8AE54415CEAC9396C165141BF1DF275F7AE54419CC1A9416C165141ABF47344F6AE54419464D64A6C16514154B786E0F4AE5441D82AC7546C165141A926E05EF3AE54411432385D6C165141D1536117F2AE54415380DB616C1651415BDA7263F1AE54419F548E646C165141D193C1FAF0AE54418792446B6C1651413C025DF6EFAE54417E9671716C165141E73EC406EFAE544132B746776C1651415C287D24EEAE5441D1BC757E6C165141B1D3CA0DEDAE544170B389866C165141DE8766D4EBAE5441FF347D8E6C165141B670ED9FEAAE5441A7EC9F976C1651413406813DE9AE5441B126419E6C165141CDC04B3CE8AE54416D76D8A56C1651416A6DCB15E7AE5441124208AB6C1651419089924CE6AE54416C20CBB36C16514160A7ACF8E4AE5441203E82BB6C165141C3715ACDE3AE5441C250DFBD6C1651412729A871E3AE5441132FDEC06C16514154CF8169E3AE544187DADD8A6C1651419879546BE3AE5441A7077FC56B1651417043FF71E3AE544137E1A73B6B1651410E42A776E3AE54419D4F64B56A1651410D53307BE3AE54416A4615FD6916514104296A81E3AE5441AFE6D517691651415F9C2889E3AE544175A0149A681651414218688DE3AE54413333337368165141EC51B88EE3AE5441EC5E1474681651411DF2836CE3AE5441DA579575681651413B410932E3AE54419002497C681651419DEA6A2DE2AE544192417F8268165141C3E6D93BE1AE54412F613D8A681651415CADC10EE0AE5441FE893091681651414B427E00DFAE54418411A99768165141D2A3DB04DEAE5441C469E19F68165141268332C5DCAE54417A5A35A868165141E4415881DBAE5441B6E604B2681651415AF0D303DAAE5441CA9AF2BA6816514146309EA8D8AE544171B8A7C368165141FCFF0056D7AE54413778AECC68165141AF47FDF6D5AE5441207F45D468165141A16DD5CFD4AE544128E7CADC68165141F58C7784D3AE544188ADA7E468165141ED5CB752D2AE54410C6F2DEA68165141813C2A53D1AE5441F506A8DE681651418D1B2E76D0AE5441AF0BA3CB68165141E4E55E09CFAE5441CB450CB76816514150FC747ECDAE5441EA55B2B1681651417C6DD017CDAE5441D3EB8AAF6816514175D47FEECCAE5441D67143AE68165141D90D52DECCAE5441D1CF5EF06716514114002A38CCAE54410AA7907A67165141669C15D1CBAE544141CDC7606716514105A098BBCBAE54418D92C88B66165141B2B0D8C9CBAE5441576517B86416514194F822E9CBAE5441862D7A7F62165141DCC6200FCCAE54414AFE271C6116514116C2E226CCAE5441E9B62D015F165141595DEC4ACCAE54415993C8B85C165141FA5FFF71CCAE5441C36D04BD5B16514187D2D482CCAE544189300A7358165141EBD520BBCCAE54412E7B6E14551651417EFBCDF4CCAE5441FF49DF08551651418241AE6ACEAE5441C5DD9D0455165141CA65C60ECFAE54410AAF2CEA541651419713620AD3AE5441C7BFB7E05416514166438377D4AE5441E6E0BF7D5416514179B95179E3AE5441A32118795416514104A7072EE4AE5441C95C6C695416514116D15A8EE6AE54418FEBA058541651412A0D4D1AE9AE54419837BC4654165141146DE5D0EBAE54411F8F973654165141C2558D43EEAE54415D1921235416514165581137F1AE5441DA95CD1154165141C4ADA5D7F3AE5441F692CEFD53165141976ADEDFF6AE5441179146DD5316514186D0AFCEFBAE5441BBB526D053165141E0AD28CCFDAE54410F612FBF53165141EF99C25E00AF544150375AB95316514172112D4101AF54414CBFC6A95316514194EFD09D03AF5441110C47A253165141A7F6E8C004AF54414528458F53165141D9E2BFA207AF5441F3E8248553165141AE3DD32B09AF544182C50B7853165141514E47280BAF54417B3F3F74531651415249BFBB0BAF544161DD5E6353165141FC6ADE4A0EAF54413830B35A531651414D19739B0FAF544174465D49531651413593643C12AF5441E458C13F53165141D47A67B113AF5441FD504735531651416F1A184815AF5441CAA48E295316514191E2190F17AF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>941693 - 3214398
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A000000295C8F125516514152B81EF5CCAE5441295C8FE25416514100000030D4AE54419A99992953165141D7A3700D17AF5441EC51B86E6B165141C3F5283C16AF5441E17A14BE6C1651419A999969E3AE54413333337368165141EC51B88EE3AE5441AE47E1EA681651410AD7A360D1AE5441EC51B8AE68165141EC51B8DECCAE54411F85EB6167165141B81E85BBCBAE5441295C8F125516514152B81EF5CCAE5441
+</a>
+
+<b>
+01060000000100000001030000000100000090000000CAA48E295316514191E2190F17AF5441BD49577D53165141D78A9E0A17AF5441547A9157541651412CC5440317AF54418FB075165516514101B7D6FC16AF5441B1052404561651419A31D5F416AF5441E3C0125A5716514160B650E916AF54411862BD82581651413E8F52DF16AF5441AF363E1B5A165141240A90D116AF54418C494B6F5B1651413DC81BC616AF544120AC7BD45C16514197BE13BA16AF54411EDF13735E16514110B31CAC16AF5441B46D120F601651415D133C9E16AF54410AC4A1E7611651411332518E16AF5441FA09F4E963165141F134FE7C16AF5441EB75D75B65165141A2A9887016AF5441616375C3661651416DB06B6416AF5441F6DBD4776816514161D9B85516AF5441FDCB5F056A16514177D7544816AF5441256AB26E6B1651410FC4153D16AF5441D2C2BF776B165141D5C0DEDD14AF54417AC0147C6B1651418090CE3514AF54418F502F816B165141A069CD6F13AF54410EB205856B1651410B29EDDA12AF5441DC7B6A8A6B165141345FAC0912AF5441F52BBB8F6B1651411065773B11AF5441DEBC56956B1651418675E96110AF5441E8A6309B6B16514126ADE87E0FAF5441377562A26B1651412F57CA670EAF5441B5E47AA86B16514163FE4F7B0DAF5441AF8344B36B1651417CB1CCD80BAF5441147C37B86B165141CB90CB180BAF5441D41FFEBD6B165141198EB6380AAF544140788EC46B1651417735103A09AF5441F2576DCA6B165141AD034F5608AF5441BB0D99D06B16514133E5E86607AF54414A70A0D76B165141F34F385606AF544119FD76DA6B16514195381DE805AF5441AFA34DE06B1651415E0C9B0505AF5441E27AFCE56B1651412657212904AF5441C72AC9EB6B16514100B7214803AF544117EA29F26B1651414EF9B15002AF5441DB4B26FA6B165141268AE01A01AF544144088BFD6B165141213B399700AF5441AF601B046C1651417DE29298FFAE5441F54AA50C6C1651411D8E4E4DFEAE5441670462136C165141727DEE47FDAE5441E435A2176C1651417B2805A3FCAE5441EE6C25206C16514100C4C458FBAE5441383C2B256C16514140BFE895FAAE544187EDFF2A6C165141558AB2B3F9AE544152826B316C165141577D9EBAF8AE54415CEAC9396C165141BF1DF275F7AE54419CC1A9416C165141ABF47344F6AE54419464D64A6C16514154B786E0F4AE5441D82AC7546C165141A926E05EF3AE54411432385D6C165141D1536117F2AE54415380DB616C1651415BDA7263F1AE54419F548E646C165141D193C1FAF0AE54418792446B6C1651413C025DF6EFAE54417E9671716C165141E73EC406EFAE544132B746776C1651415C287D24EEAE5441D1BC757E6C165141B1D3CA0DEDAE544170B389866C165141DE8766D4EBAE5441FF347D8E6C165141B670ED9FEAAE5441A7EC9F976C1651413406813DE9AE5441B126419E6C165141CDC04B3CE8AE54416D76D8A56C1651416A6DCB15E7AE5441124208AB6C1651419089924CE6AE54416C20CBB36C16514160A7ACF8E4AE5441203E82BB6C165141C3715ACDE3AE5441C250DFBD6C1651412729A871E3AE5441132FDEC06C16514154CF8169E3AE544187DADD8A6C1651419879546BE3AE5441A7077FC56B1651417043FF71E3AE544137E1A73B6B1651410E42A776E3AE54419D4F64B56A1651410D53307BE3AE54416A4615FD6916514104296A81E3AE5441AFE6D517691651415F9C2889E3AE544175A0149A681651414218688DE3AE54413333337368165141EC51B88EE3AE5441EC5E1474681651411DF2836CE3AE5441DA579575681651413B410932E3AE54419002497C681651419DEA6A2DE2AE544192417F8268165141C3E6D93BE1AE54412F613D8A681651415CADC10EE0AE5441FE893091681651414B427E00DFAE54418411A99768165141D2A3DB04DEAE5441C469E19F68165141268332C5DCAE54417A5A35A868165141E4415881DBAE5441B6E604B2681651415AF0D303DAAE5441CA9AF2BA6816514146309EA8D8AE544171B8A7C368165141FCFF0056D7AE54413778AECC68165141AF47FDF6D5AE5441207F45D468165141A16DD5CFD4AE544128E7CADC68165141F58C7784D3AE544188ADA7E468165141ED5CB752D2AE54410C6F2DEA68165141813C2A53D1AE5441F506A8DE681651418D1B2E76D0AE5441AF0BA3CB68165141E4E55E09CFAE5441CB450CB76816514150FC747ECDAE5441EA55B2B1681651417C6DD017CDAE5441D3EB8AAF6816514175D47FEECCAE5441D67143AE68165141D90D52DECCAE5441D1CF5EF06716514114002A38CCAE54410AA7907A67165141669C15D1CBAE544141CDC7606716514105A098BBCBAE54418D92C88B66165141B2B0D8C9CBAE5441576517B86416514194F822E9CBAE5441862D7A7F62165141DCC6200FCCAE54414AFE271C6116514116C2E226CCAE5441E9B62D015F165141595DEC4ACCAE54415993C8B85C165141FA5FFF71CCAE5441C36D04BD5B16514187D2D482CCAE544189300A7358165141EBD520BBCCAE54412E7B6E14551651417EFBCDF4CCAE5441FF49DF08551651418241AE6ACEAE5441C5DD9D0455165141CA65C60ECFAE54410AAF2CEA541651419713620AD3AE5441C7BFB7E05416514166438377D4AE5441E6E0BF7D5416514179B95179E3AE5441A32118795416514104A7072EE4AE5441C95C6C695416514116D15A8EE6AE54418FEBA058541651412A0D4D1AE9AE54419837BC4654165141146DE5D0EBAE54411F8F973654165141C2558D43EEAE54415D1921235416514165581137F1AE5441DA95CD1154165141C4ADA5D7F3AE5441F692CEFD53165141976ADEDFF6AE5441179146DD5316514186D0AFCEFBAE5441BBB526D053165141E0AD28CCFDAE54410F612FBF53165141EF99C25E00AF544150375AB95316514172112D4101AF54414CBFC6A95316514194EFD09D03AF5441110C47A253165141A7F6E8C004AF54414528458F53165141D9E2BFA207AF5441F3E8248553165141AE3DD32B09AF544182C50B7853165141514E47280BAF54417B3F3F74531651415249BFBB0BAF544161DD5E6353165141FC6ADE4A0EAF54413830B35A531651414D19739B0FAF544174465D49531651413593643C12AF5441E458C13F53165141D47A67B113AF5441FD504735531651416F1A184815AF5441CAA48E295316514191E2190F17AF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>121078 - 213008
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000470000001F85EB710F0E51417B14AEB725BB54417B14AE77110E51419A9999D923BB544185EB51D8160E51411F85EB8121BB54410AD7A370130E5141A4703D3A20BB544148E17A84110E5141AE47E12A20BB54418FC2F5C80F0E5141E17A14BE1EBB54415C8FC2750E0E5141A4703DEA1EBB5441295C8FB20D0E5141D7A370AD1FBB5441AE47E13A0D0E51419A9999F924BB5441713D0AD70C0E5141295C8F9225BB544148E17A140C0E514114AE47F125BB5441C3F5281C0A0E51418FC2F5D825BB5441666666F6080E514114AE470125BB544133333323080E5141000000B024BB5441295C8FE2060E51417B14AE5723BB5441B81E85BB060E5141666666E620BB5441295C8F82070E5141E17A14DE1DBB544100000050070E5141E17A149E1BBB5441C3F528AC060E5141666666361ABB544133333383050E51411F85EB3118BB5441A4703D5A040E5141295C8FE214BB544185EB5118030E514148E17AE412BB54419A9999B9010E51413D0AD7C30FBB544185EB51B8010E51417B14AE270BBB54413D0AD7E3FE0D5141CDCCCC5C0ABB5441A4703D8AFD0D51416666664607BB5441C3F5288CFD0D51416666667605BB54417B14AEF7FC0D514152B81E9503BB5441F6285CCFFA0D5141B81E857BFFBA5441333333D3F90D5141C3F528FCFDBA54415C8FC225F60D514114AE4731F9BA54419A9999D9F20D514114AE4791F6BA544152B81EE5F00D51410AD7A350F5BA5441F6285C4FEE0D514185EB51D8F3BA54411F85EB31ED0D5141CDCCCC7CF2BA5441333333E3EB0D5141666666B6F1BA544133333373EA0D51410AD7A3F0EFBA5441713D0A47EF0D5141295C8F82E3BA5441713D0AE7F10D5141333333B3E0BA5441D7A370DDF00D5141295C8FC2DCBA5441AE47E19AEE0D51418FC2F5A8DBBA5441666666A6EC0D5141295C8FB2D8BA5441D7A370DDEC0D51417B14AE77D6BA5441A4703D5AEE0D514152B81EB5D4BA5441666666F6EA0D5141295C8F12D2BA5441F6285CBFE10D51415C8FC2F5D5BA54418FC2F5F8CC0D51418FC2F578DEBA544148E17AD4CF0D5141000000D0E0BA54410AD7A3C0D20D51415C8FC215E3BA544148E17A44D40D5141EC51B84EE4BA5441EC51B8AED50D5141F6285CCFE3BA54410AD7A370DD0D5141295C8F62E4BA544166666606E00D5141C3F528CCE6BA54419A9999D9E40D51415C8FC215ECBA544100000090E90D5141295C8F32F1BA5441666666D6EC0D514148E17AF4F3BA54419A999929F00D5141D7A3703DF7BA54415C8FC275F30D514152B81E55FBBA544166666676F70D51411F85EB5101BB5441EC51B8BEFC0D514148E17A440ABB54415C8FC255FE0D5141B81E851B0DBB5441AE47E12AFC0D51419A99991918BB5441E17A14BEFB0D51411F85EB4118BB5441CDCCCC2CFD0D5141D7A3703D1BBB5441E17A148E010E5141EC51B89E25BB544114AE4761040E5141A4703DBA28BB544100000020060E51411F85EB3129BB54413D0AD7E3070E514148E17A3429BB5441AE47E1CA0A0E5141F6285C0F28BB54417B14AE670D0E51418FC2F5D826BB54411F85EB710F0E51417B14AEB725BB5441
+</a>
+
+<b>
+0106000000010000000103000000010000002200000066666676F70D51411F85EB5101BB54415133C15DFA0D5141A1AE033D06BB54412B90325EFA0D514127B2C33D06BB5441EC51B8BEFC0D514148E17A440ABB54415C8FC255FE0D5141B81E851B0DBB5441A4703D8AFD0D51416666664607BB5441C3F5288CFD0D51416666667605BB54418D14AEF7FC0D51418CB81E9503BB54416D7DF042FC0D5141196AA63D02BB544195CB550DFC0D51412F86C8D701BB54412281F10AFC0D514174F53CD301BB54414A287B18FB0D514154B9790600BB5441F6285CCFFA0D5141B81E857BFFBA5441333333D3F90D5141C3F528FCFDBA54415C8FC225F60D514114AE4731F9BA5441935B054FF30D5141AAFAC0EEF6BA544186B548BCF10D5141C1F07CDAF5BA54411CDFA8A5F00D514176638D2CF5BA5441F6285C4FEE0D514185EB51D8F3BA54411F85EB31ED0D5141CDCCCC7CF2BA5441333333E3EB0D5141666666B6F1BA544133333373EA0D51410AD7A3F0EFBA544100000090E90D5141295C8F32F1BA5441666666D6EC0D514148E17AF4F3BA544166423E0FED0D5141E5ADA32CF4BA5441E47F7896ED0D514108A8F49FF4BA54419A999929F00D5141D7A3703DF7BA5441DDF334BCF10D5141F6AD1C31F9BA54415C8FC275F30D514152B81E55FBBA544125E85009F40D5141ACE0DA31FCBA54419DFD72DBF40D5141049A336CFDBA54412B06F496F50D5141F544B284FEBA54418317BB97F50D51410C10DC85FEBA544166666676F70D51411F85EB5101BB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>121078 - 262653
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000470000001F85EB710F0E51417B14AEB725BB54417B14AE77110E51419A9999D923BB544185EB51D8160E51411F85EB8121BB54410AD7A370130E5141A4703D3A20BB544148E17A84110E5141AE47E12A20BB54418FC2F5C80F0E5141E17A14BE1EBB54415C8FC2750E0E5141A4703DEA1EBB5441295C8FB20D0E5141D7A370AD1FBB5441AE47E13A0D0E51419A9999F924BB5441713D0AD70C0E5141295C8F9225BB544148E17A140C0E514114AE47F125BB5441C3F5281C0A0E51418FC2F5D825BB5441666666F6080E514114AE470125BB544133333323080E5141000000B024BB5441295C8FE2060E51417B14AE5723BB5441B81E85BB060E5141666666E620BB5441295C8F82070E5141E17A14DE1DBB544100000050070E5141E17A149E1BBB5441C3F528AC060E5141666666361ABB544133333383050E51411F85EB3118BB5441A4703D5A040E5141295C8FE214BB544185EB5118030E514148E17AE412BB54419A9999B9010E51413D0AD7C30FBB544185EB51B8010E51417B14AE270BBB54413D0AD7E3FE0D5141CDCCCC5C0ABB5441A4703D8AFD0D51416666664607BB5441C3F5288CFD0D51416666667605BB54417B14AEF7FC0D514152B81E9503BB5441F6285CCFFA0D5141B81E857BFFBA5441333333D3F90D5141C3F528FCFDBA54415C8FC225F60D514114AE4731F9BA54419A9999D9F20D514114AE4791F6BA544152B81EE5F00D51410AD7A350F5BA5441F6285C4FEE0D514185EB51D8F3BA54411F85EB31ED0D5141CDCCCC7CF2BA5441333333E3EB0D5141666666B6F1BA544133333373EA0D51410AD7A3F0EFBA5441713D0A47EF0D5141295C8F82E3BA5441713D0AE7F10D5141333333B3E0BA5441D7A370DDF00D5141295C8FC2DCBA5441AE47E19AEE0D51418FC2F5A8DBBA5441666666A6EC0D5141295C8FB2D8BA5441D7A370DDEC0D51417B14AE77D6BA5441A4703D5AEE0D514152B81EB5D4BA5441666666F6EA0D5141295C8F12D2BA5441F6285CBFE10D51415C8FC2F5D5BA54418FC2F5F8CC0D51418FC2F578DEBA544148E17AD4CF0D5141000000D0E0BA54410AD7A3C0D20D51415C8FC215E3BA544148E17A44D40D5141EC51B84EE4BA5441EC51B8AED50D5141F6285CCFE3BA54410AD7A370DD0D5141295C8F62E4BA544166666606E00D5141C3F528CCE6BA54419A9999D9E40D51415C8FC215ECBA544100000090E90D5141295C8F32F1BA5441666666D6EC0D514148E17AF4F3BA54419A999929F00D5141D7A3703DF7BA54415C8FC275F30D514152B81E55FBBA544166666676F70D51411F85EB5101BB5441EC51B8BEFC0D514148E17A440ABB54415C8FC255FE0D5141B81E851B0DBB5441AE47E12AFC0D51419A99991918BB5441E17A14BEFB0D51411F85EB4118BB5441CDCCCC2CFD0D5141D7A3703D1BBB5441E17A148E010E5141EC51B89E25BB544114AE4761040E5141A4703DBA28BB544100000020060E51411F85EB3129BB54413D0AD7E3070E514148E17A3429BB5441AE47E1CA0A0E5141F6285C0F28BB54417B14AE670D0E51418FC2F5D826BB54411F85EB710F0E51417B14AEB725BB5441
+</a>
+
+<b>
+0106000000010000000103000000010000002200000066666676F70D51411F85EB5101BB54415133C15DFA0D5141A1AE033D06BB54412B90325EFA0D514127B2C33D06BB5441EC51B8BEFC0D514148E17A440ABB54415C8FC255FE0D5141B81E851B0DBB5441A4703D8AFD0D51416666664607BB5441C3F5288CFD0D51416666667605BB54418D14AEF7FC0D51418CB81E9503BB54416D7DF042FC0D5141196AA63D02BB544195CB550DFC0D51412F86C8D701BB54412281F10AFC0D514174F53CD301BB54414A287B18FB0D514154B9790600BB5441F6285CCFFA0D5141B81E857BFFBA5441333333D3F90D5141C3F528FCFDBA54415C8FC225F60D514114AE4731F9BA5441935B054FF30D5141AAFAC0EEF6BA544186B548BCF10D5141C1F07CDAF5BA54411CDFA8A5F00D514176638D2CF5BA5441F6285C4FEE0D514185EB51D8F3BA54411F85EB31ED0D5141CDCCCC7CF2BA5441333333E3EB0D5141666666B6F1BA544133333373EA0D51410AD7A3F0EFBA544100000090E90D5141295C8F32F1BA5441666666D6EC0D514148E17AF4F3BA544166423E0FED0D5141E5ADA32CF4BA5441E47F7896ED0D514108A8F49FF4BA54419A999929F00D5141D7A3703DF7BA5441DDF334BCF10D5141F6AD1C31F9BA54415C8FC275F30D514152B81E55FBBA544125E85009F40D5141ACE0DA31FCBA54419DFD72DBF40D5141049A336CFDBA54412B06F496F50D5141F544B284FEBA54418317BB97F50D51410C10DC85FEBA544166666676F70D51411F85EB5101BB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>814356 - 973323
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000020000004D000000666666165C8E50411F85EB71481B5441D7A370FD578E50413D0AD753491B54411F85EB415B8E504148E17A144E1B54415C8FC2A55C8E5041295C8F62501B5441A4703D2A5D8E5041B81E857B501B5441A4703D2A5E8E504148E17AB44F1B5441666666A65E8E5041E17A14EE4D1B544114AE47115D8E5041CDCCCCEC4A1B54415C8FC2A55C8E504148E17AF4481B54418FC2F5F85E8E5041713D0A47481B5441E17A148E5F8E5041713D0A374A1B5441C3F5284C5F8E50417B14AE374C1B54417B14AEC75F8E504148E17AC44D1B5441C3F5284C5F8E5041A4703D6A4F1B5441B81E851B5E8E5041EC51B83E511B5441000000A05F8E504152B81E95521B544148E17AD4608E50415C8FC235541B5441000000C0618E5041A4703DCA551B5441A4703DAA628E5041A4703DFA581B54415C8FC2C5638E5041B81E85BB631B54413D0AD773638E5041D7A3709D691B544166666646638E50417B14AE476B1B5441E17A149E648E504185EB51886B1B5441000000F0668E5041EC51B8FE6B1B544133333343698E5041666666B66C1B5441A4703DCA6A8E5041000000906D1B5441EC51B86E6B8E5041AE47E13A6E1B5441AE47E13A6C8E5041EC51B87E6F1B5441A4703DFA6C8E5041B81E85CB701B5441D7A370DD6D8E50419A999939721B54410AD7A3D06E8E5041CDCCCC6C731B544152B81E75708E5041C3F5288C741B5441EC51B89E728E5041A4703DEA751B544148E17AA4748E5041C3F5280C771B5441333333C3768E5041EC51B8DE771B5441E17A14BE778E50415C8FC225781B544114AE4781798E5041B81E85BB781B5441C3F5281C7B8E50413D0AD723791B5441B81E858B7B8E5041F6285C4F761B5441B81E854B7B8E50410AD7A360751B544114AE47217B8E50411F85EB51741B5441295C8FD2898E5041E17A140E711B5441CDCCCC0C8B8E5041A4703D6A721B544114AE4751908E5041713D0A076D1B54415C8FC255998E50418FC2F5986A1B544185EB5198A38E504152B81ED5671B5441C3F528BCAD8E50419A999919651B5441D7A3705DB08E5041E17A147E631B5441CDCCCC1CB58E5041E17A14FE5F1B544166666696BC8E50417B14AE175E1B5441D7A370BDC78E504166666686591B54415C8FC245C88E5041000000305B1B5441D7A3705DC58E504152B81E255D1B544148E17A64C18E50411F85EB815E1B5441666666B6BD8E504185EB5168601B5441713D0A57BB8E50411F85EB31631B54410AD7A380C08E5041AE47E18A621B544148E17A64C18E50410AD7A3A0651B54415C8FC2C5BD8E5041E17A14FE661B544114AE4721BE8E5041F6285C8F6B1B544152B81E55C18E5041E17A14CE6C1B5441713D0A17C98E50417B14AE87661B5441295C8F62D18E5041CDCCCCCC601B5441D7A370BDCE8E5041F6285CDF581B544152B81ED5D28E50411F85EB81571B544133333323D48E5041A4703D9A5B1B54415C8FC245D68E5041EC51B86E5C1B544148E17A94D98E50418FC2F568581B54417B14AE97D68E504114AE4781541B5441D7A3707DBC8E5041295C8FE2311B5441CDCCCCDCB78E5041713D0AF7321B544133333393A78E5041E17A14EE361B5441F6285C8F968E504185EB51083B1B5441B81E858B858E5041333333233F1B54415C8FC2F5768E50417B14AEA7421B5441295C8F225F8E50419A9999C9471B5441666666165C8E50411F85EB71481B54410B00000052B81E85AE8E5041A4703DBA591B54410AD7A3D0A88E50417B14AE87591B5441EC51B8CEA58E50411F85EB71561B54415C8FC2B5A38E5041AE47E19A521B5441CDCCCC5CA38E5041A4703D9A481B544133333373A88E504114AE47C1441B54418FC2F5B8AD8E5041AE47E1FA461B544152B81ED5AF8E5041F6285C5F4C1B5441D7A3701DB38E504152B81E65551B5441D7A3703DB18E504114AE4761591B544152B81E85AE8E5041A4703DBA591B5441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000276C2549638E5041F987EB2D6B1B54412183CA6D628E504158C0BFDE721B5441A0C75B76628E5041AAE5A3EA721B544106ADE7FA668E5041B8963739751B5441F97E6853688E50410DBEC5F1751B54412599646E698E50419A2DCF6C761B544179369D506C8E5041457CEBDD771B544165715E556E8E50419AA37996781B54419CB9D9176E8E50412A272EBE741B5441C7AA41926E8E504135F3FF1D731B5441D7A370DD6D8E50419A999939721B5441A4703DFA6C8E5041B81E85CB701B5441AE47E13A6C8E5041EC51B87E6F1B54412CF5FD976B8E50413F91587C6E1B54413FE90CCA6A8E5041D2FEE48F6D1B544172E8812A6A8E5041244D1D376D1B5441BF36ED90688E5041680040866C1B5441F571FED5668E504180D2E8FE6B1B54412F635B26668E5041A99285D66B1B5441E17A149E648E504185EB51886B1B544166666646638E50417B14AE476B1B5441276C2549638E5041F987EB2D6B1B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>624815 - 4128154
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000190000003D0AD76357FD5041F6285CBFB40C55415C8FC2E556FD5041F6285CDFB50C55415C8FC27557FD504185EB5108B70C5541EC51B82E59FD50415C8FC235B70C55410AD7A3E05AFD504166666676B70C554185EB51A863FD5041D7A3700DB80C5541F6285C4F65FD504166666666B60C5541EC51B83E67FD504114AE4791B50C55418FC2F52869FD5041000000E0B40C55417B14AE3771FD504185EB5168B50C5541295C8FD273FD504148E17AF4B20C5541333333C372FD5041666666E6B10C5541D7A3709D72FD504185EB5118AA0C554148E17A5470FD50418FC2F5C8AA0C5541295C8F026CFD5041CDCCCC4CAB0C55413D0AD74366FD504152B81E75AB0C5541EC51B87E60FD5041333333D3AA0C55419A99992957FD504114AE47C1A90C5541D7A3709D56FD5041295C8F02AB0C5541AE47E13A56FD504148E17A34AC0C5541CDCCCC4C56FD5041A4703D8AAD0C554148E17AB457FD5041B81E853BB10C5541EC51B8BE58FD5041333333C3B20C55410AD7A36059FD50410AD7A3C0B30C55413D0AD76357FD5041F6285CBFB40C5541
+</a>
+
+<b>
+010600000001000000010300000001000000220000008FF6C4C372FD5041BBDB1217B20C554193373D3073FD5041E210DB7BB20C554164274CAA73FD504171B0621AB30C55414C8BEF2077FD50415E5A2E9AB00C554177A9A27878FD504105DA98A5AF0C5541B0BE4DE978FD50415B806B55AF0C5541A381749E7BFD50418694BB04AF0C5541B104CB1280FD5041BB758E8FAF0C5541FED4784185FD50414A0C024BAF0C55412FDD242E87FD5041E5D0228BAF0C55414E62106087FD5041190456F6AF0C5541B07268698BFD504160E5D0A2AF0C55416666660692FD5041DD240669AF0C554199E8C07791FD5041C0029EA4AB0C5541EC51B8AE91FD5041E5D022F3A80C554148E17A0C8DFD504152B81E1DA80C55413333335B8BFD5041B4C876BEA50C5541931804FE86FD5041819543BBA50C55411904568E86FD5041986E1283A40C5541C74B373986FD5041C976BE47A20C55416ABC744B88FD5041022B871EA10C55410D4543BF8CFD50411FCEEF2C9F0C554148E17A548CFD5041CDCCCCBC9C0C55419E7DA5D38BFD5041FCFCCB409C0C55417593180C88FD50419318049E9C0C5541EE7C3F9582FD5041000000B09D0C55412731089C7CFD504191ED7CC79D0C55419318043E75FD5041E5D0226B9D0C554153C6DD8E74FD5041EB57E70AA30C55415DEA632574FD5041B21D2859A40C5541D7A3709D72FD504185EB5118AA0C5541486A25A672FD5041B72002E5AB0C5541333333C372FD5041666666E6B10C55418FF6C4C372FD5041BBDB1217B20C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>624815 - 314521
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000190000003D0AD76357FD5041F6285CBFB40C55415C8FC2E556FD5041F6285CDFB50C55415C8FC27557FD504185EB5108B70C5541EC51B82E59FD50415C8FC235B70C55410AD7A3E05AFD504166666676B70C554185EB51A863FD5041D7A3700DB80C5541F6285C4F65FD504166666666B60C5541EC51B83E67FD504114AE4791B50C55418FC2F52869FD5041000000E0B40C55417B14AE3771FD504185EB5168B50C5541295C8FD273FD504148E17AF4B20C5541333333C372FD5041666666E6B10C5541D7A3709D72FD504185EB5118AA0C554148E17A5470FD50418FC2F5C8AA0C5541295C8F026CFD5041CDCCCC4CAB0C55413D0AD74366FD504152B81E75AB0C5541EC51B87E60FD5041333333D3AA0C55419A99992957FD504114AE47C1A90C5541D7A3709D56FD5041295C8F02AB0C5541AE47E13A56FD504148E17A34AC0C5541CDCCCC4C56FD5041A4703D8AAD0C554148E17AB457FD5041B81E853BB10C5541EC51B8BE58FD5041333333C3B20C55410AD7A36059FD50410AD7A3C0B30C55413D0AD76357FD5041F6285CBFB40C5541
+</a>
+
+<b>
+010600000001000000010300000001000000240000005FE632A286FD5041A393EB78AF0C55412FDD242E87FD5041E5D0228BAF0C55414E62106087FD5041190456F6AF0C5541B07268698BFD504160E5D0A2AF0C55416666660692FD5041DD240669AF0C554199E8C07791FD5041C0029EA4AB0C5541EC51B8AE91FD5041E5D022F3A80C554148E17A0C8DFD504152B81E1DA80C55413333335B8BFD5041B4C876BEA50C5541931804FE86FD5041819543BBA50C55411904568E86FD5041986E1283A40C5541C74B373986FD5041C976BE47A20C55416ABC744B88FD5041022B871EA10C55410D4543BF8CFD50411FCEEF2C9F0C554148E17A548CFD5041CDCCCCBC9C0C55419E7DA5D38BFD5041FCFCCB409C0C55417593180C88FD50419318049E9C0C5541EE7C3F9582FD5041000000B09D0C55412731089C7CFD504191ED7CC79D0C554154B1525E75FD5041C7CCB76C9D0C55410E93B03A75FD50410F817A869D0C554153C6DD8E74FD5041EB57E70AA30C55415DEA632574FD5041B21D2859A40C5541D7A3709D72FD504185EB5118AA0C5541486A25A672FD5041B72002E5AB0C5541333333C372FD5041666666E6B10C55418FF6C4C372FD5041BBDB1217B20C554193373D3073FD5041E210DB7BB20C554164274CAA73FD504171B0621AB30C55414C8BEF2077FD50415E5A2E9AB00C554177A9A27878FD504105DA98A5AF0C5541B0BE4DE978FD50415B806B55AF0C5541A381749E7BFD50418694BB04AF0C5541B104CB1280FD5041BB758E8FAF0C5541FED4784185FD50414A0C024BAF0C55415FE632A286FD5041A393EB78AF0C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>893141 - 2909887
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000160000001F85EB310B5E504185EB51389F1C55419A9999F90E5E504152B81E45A41C55411F85EB51195E504114AE47A19F1C554152B81EF5145E50417B14AE27981C5541D7A3702D135E5041C3F5288C931C554133333303125E50418FC2F5888E1C55419A9999D9115E50415C8FC2D58D1C55417B14AE57105E50418FC2F5E8821C5541F6285C4F0F5E504152B81E35761C55411F85EBC10D5E5041EC51B8BE6E1C5541713D0A370D5E504152B81E256C1C5541B81E856B015E504185EB5168681C55415C8FC275005E5041B81E851B691C55419A999959005E5041295C8FC2741C55417B14AE47005E5041666666567C1C5541A4703D4A005E5041295C8F22821C5541EC51B88E005E50415C8FC225881C554100000010025E504185EB51F88D1C5541713D0A57045E504148E17AA4931C554114AE47C1045E5041B81E857B941C5541EC51B8FE065E504133333303991C55411F85EB310B5E504185EB51389F1C5541
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000009A9999F90E5E504152B81E45A41C55411F85EB51195E504114AE47A19F1C55415FDA7484155E50418E44481D991C554152B81EF5145E50417B14AE27981C5541D9D780D8135E5041FD56F446951C5541A382C627135E504105ABC973931C554133333303125E50418FC2F5888E1C554114AE47C1045E5041B81E857B941C5541EE26C928075E504103475F41991C55410878F84C085E5041FEE236F19A1C55412E96F3440B5E5041DEE5BE519F1C55419A9999F90E5E504152B81E45A41C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>893141 - 3635576
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000160000001F85EB310B5E504185EB51389F1C55419A9999F90E5E504152B81E45A41C55411F85EB51195E504114AE47A19F1C554152B81EF5145E50417B14AE27981C5541D7A3702D135E5041C3F5288C931C554133333303125E50418FC2F5888E1C55419A9999D9115E50415C8FC2D58D1C55417B14AE57105E50418FC2F5E8821C5541F6285C4F0F5E504152B81E35761C55411F85EBC10D5E5041EC51B8BE6E1C5541713D0A370D5E504152B81E256C1C5541B81E856B015E504185EB5168681C55415C8FC275005E5041B81E851B691C55419A999959005E5041295C8FC2741C55417B14AE47005E5041666666567C1C5541A4703D4A005E5041295C8F22821C5541EC51B88E005E50415C8FC225881C554100000010025E504185EB51F88D1C5541713D0A57045E504148E17AA4931C554114AE47C1045E5041B81E857B941C5541EC51B8FE065E504133333303991C55411F85EB310B5E504185EB51389F1C5541
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000009A9999F90E5E504152B81E45A41C55411F85EB51195E504114AE47A19F1C55415FDA7484155E50418E44481D991C554152B81EF5145E50417B14AE27981C5541D9D780D8135E5041FD56F446951C5541A382C627135E504105ABC973931C554133333303125E50418FC2F5888E1C554114AE47C1045E5041B81E857B941C5541EE26C928075E504103475F41991C55410878F84C085E5041FEE236F19A1C55412E96F3440B5E5041DEE5BE519F1C55419A9999F90E5E504152B81E45A41C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>893328 - 2947988
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000500000008FC2F5C82E6B504152B81EC5421A5541000000702F6B504133333383441A554114AE4721306B50410AD7A360461A5541F6285C2F326B5041F6285C2F4A1A55413D0AD7A3346B50415C8FC2354D1A5541E17A14FE386B50411F85EB21511A5541295C8F323C6B50410AD7A3E0521A5541666666E6486B5041333333A3571A5541713D0A474D6B50415C8FC2A5591A55419A9999A9536B504185EB51585C1A5541295C8F525F6B50413D0AD713611A5541000000005F6B504100000040621A5541CDCCCC4C5F6B50415C8FC255621A55415C8FC295736B5041CDCCCC2C681A554185EB51A8746B5041C3F5287C681A554152B81E55746B50417B14AE77691A554166666656736B5041295C8F726B1A5541CDCCCCAC746B5041C3F5282C6C1A5541EC51B87E796B50418FC2F5C86E1A5541EC51B8BE7A6B5041666666766F1A554114AE4791796B50410AD7A360731A5541F6285C3F796B50410AD7A370741A5541D7A370BD786B5041A4703D1A761A5541295C8F22786B504166666616781A5541CDCCCCDC786B50410AD7A3F0781A55417B14AE177A6B5041F6285C7F7A1A5541666666F67A6B5041E17A140E7C1A55415C8FC2257C6B5041333333B37E1A5541666666467E6B5041B81E85EB831A55415C8FC2B57F6B50410AD7A3E0871A5541E17A141E806B504133333353851A5541A4703D6A806B5041AE47E11A841A554133333313846B5041295C8F22791A554100000020866B5041333333B3721A55411F85EB31866B5041333333B36F1A55419A9999E9846B5041D7A3702D6F1A5541B81E85EB846B5041D7A3707D6E1A5541713D0A27856B50415C8FC2F5591A55418FC2F528856B50417B14AEA7591A55419A9999B9846B504166666686591A554148E17A14836B5041E17A14CE581A55415C8FC265826B504114AE4781581A5541C3F5283C826B504133333353591A5541A4703D7A816B504152B81E355D1A5541295C8FB2806B504114AE47D15C1A554185EB51487A6B50410AD7A3B0591A554133333343796B50410AD7A330591A5541CDCCCC7C786B5041295C8FC25C1A554114AE4751786B50418FC2F5985D1A554114AE4751776B5041295C8F92601A554148E17A04766B5041F6285C6F641A5541F6285C7F746B50410AD7A310641A5541713D0A47626B5041CDCCCC9C5F1A5541333333E35F6B50418FC2F5085F1A5541295C8F12606B5041B81E855B5E1A554148E17A745E6B504152B81ED55D1A5541D7A3705D506B504185EB5198581A55419A9999394F6B5041B81E854B581A5541713D0AF74F6B50419A9999A9551A5541D7A3704D506B5041713D0A77541A5541666666A6506B5041A4703D3A531A5541713D0A57516B50417B14AEC7501A55413D0AD7F34E6B504114AE4721501A5541B81E857B426B50415C8FC2A54C1A554148E17A243A6B50419A999949491A5541713D0AF7366B504148E17A64471A554133333363336B5041E17A143E431A55415C8FC275306B5041EC51B8FE3D1A5541000000502F6B50415C8FC2F53A1A55418FC2F5D82D6B50418FC2F5083B1A5541295C8F722D6B5041713D0A173B1A55418FC2F5282D6B50418FC2F5283B1A5541000000D02C6B5041F6285C5F3B1A55411F85EBA12C6B50419A9999A93B1A5541295C8F922C6B5041666666063C1A55413D0AD7A32C6B5041E17A147E3C1A554185EB51B82C6B504152B81EF53C1A55419A9999592D6B5041E17A14BE3E1A5541EC51B8FE2D6B5041E17A149E401A55418FC2F5C82E6B504152B81EC5421A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000B7E3D422746B5041135BC0DB691A5541F10CD779746B50415B28AC08691A5541E208C9A6746B5041B9AECC80681A5541C6A45D3D726B50412C58A6C9671A554107DCD7316F6B50413E2A3AE9661A55414CD8EC1F6C6B504190A1F606661A55412C6815A0696B50415330C14E651A5541BB06CCE0666B50417DBB4784641A5541BDFB95FD646B5041703A2AF9631A5541EC964901616B50411A736CD3621A55411AE47987616B5041F7A712EF631A55413B6C7776616B5041AD562B99641A5541A68702C3616B50411031CA6D651A55411A26208F626B50414A00D9D3651A55416D3C406C636B504132FB6D64661A55412E352EAB646B5041E6C10E63671A5541D0D5F4AC676B5041C9CB2338691A554130C50276696B50410013C0406A1A5541C7B342E2696B50418D97E37C6A1A554125B9E44B6B6B5041093A1D1C6B1A5541253D315B6D6B5041B7A7494E6C1A55412E026AE26E6B5041F1B8FEBB6D1A5541A2A087AE6F6B50411283A2B26E1A5541F4B6A78B706B5041DEF539546F1A5541EC75BB13716B50419F68D1F56F1A5541EC75BB13716B504118C548BA6F1A5541798308F7716B50414D76FF0E6E1A5541AB9596E7726B5041ED86F1456C1A5541B7E3D422746B5041135BC0DB691A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>893328 - 3811272
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000500000008FC2F5C82E6B504152B81EC5421A5541000000702F6B504133333383441A554114AE4721306B50410AD7A360461A5541F6285C2F326B5041F6285C2F4A1A55413D0AD7A3346B50415C8FC2354D1A5541E17A14FE386B50411F85EB21511A5541295C8F323C6B50410AD7A3E0521A5541666666E6486B5041333333A3571A5541713D0A474D6B50415C8FC2A5591A55419A9999A9536B504185EB51585C1A5541295C8F525F6B50413D0AD713611A5541000000005F6B504100000040621A5541CDCCCC4C5F6B50415C8FC255621A55415C8FC295736B5041CDCCCC2C681A554185EB51A8746B5041C3F5287C681A554152B81E55746B50417B14AE77691A554166666656736B5041295C8F726B1A5541CDCCCCAC746B5041C3F5282C6C1A5541EC51B87E796B50418FC2F5C86E1A5541EC51B8BE7A6B5041666666766F1A554114AE4791796B50410AD7A360731A5541F6285C3F796B50410AD7A370741A5541D7A370BD786B5041A4703D1A761A5541295C8F22786B504166666616781A5541CDCCCCDC786B50410AD7A3F0781A55417B14AE177A6B5041F6285C7F7A1A5541666666F67A6B5041E17A140E7C1A55415C8FC2257C6B5041333333B37E1A5541666666467E6B5041B81E85EB831A55415C8FC2B57F6B50410AD7A3E0871A5541E17A141E806B504133333353851A5541A4703D6A806B5041AE47E11A841A554133333313846B5041295C8F22791A554100000020866B5041333333B3721A55411F85EB31866B5041333333B36F1A55419A9999E9846B5041D7A3702D6F1A5541B81E85EB846B5041D7A3707D6E1A5541713D0A27856B50415C8FC2F5591A55418FC2F528856B50417B14AEA7591A55419A9999B9846B504166666686591A554148E17A14836B5041E17A14CE581A55415C8FC265826B504114AE4781581A5541C3F5283C826B504133333353591A5541A4703D7A816B504152B81E355D1A5541295C8FB2806B504114AE47D15C1A554185EB51487A6B50410AD7A3B0591A554133333343796B50410AD7A330591A5541CDCCCC7C786B5041295C8FC25C1A554114AE4751786B50418FC2F5985D1A554114AE4751776B5041295C8F92601A554148E17A04766B5041F6285C6F641A5541F6285C7F746B50410AD7A310641A5541713D0A47626B5041CDCCCC9C5F1A5541333333E35F6B50418FC2F5085F1A5541295C8F12606B5041B81E855B5E1A554148E17A745E6B504152B81ED55D1A5541D7A3705D506B504185EB5198581A55419A9999394F6B5041B81E854B581A5541713D0AF74F6B50419A9999A9551A5541D7A3704D506B5041713D0A77541A5541666666A6506B5041A4703D3A531A5541713D0A57516B50417B14AEC7501A55413D0AD7F34E6B504114AE4721501A5541B81E857B426B50415C8FC2A54C1A554148E17A243A6B50419A999949491A5541713D0AF7366B504148E17A64471A554133333363336B5041E17A143E431A55415C8FC275306B5041EC51B8FE3D1A5541000000502F6B50415C8FC2F53A1A55418FC2F5D82D6B50418FC2F5083B1A5541295C8F722D6B5041713D0A173B1A55418FC2F5282D6B50418FC2F5283B1A5541000000D02C6B5041F6285C5F3B1A55411F85EBA12C6B50419A9999A93B1A5541295C8F922C6B5041666666063C1A55413D0AD7A32C6B5041E17A147E3C1A554185EB51B82C6B504152B81EF53C1A55419A9999592D6B5041E17A14BE3E1A5541EC51B8FE2D6B5041E17A149E401A55418FC2F5C82E6B504152B81EC5421A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000B7E3D422746B5041135BC0DB691A5541F10CD779746B50415B28AC08691A5541E208C9A6746B5041B9AECC80681A5541C6A45D3D726B50412C58A6C9671A554107DCD7316F6B50413E2A3AE9661A55414CD8EC1F6C6B504190A1F606661A55412C6815A0696B50415330C14E651A5541BB06CCE0666B50417DBB4784641A5541BDFB95FD646B5041703A2AF9631A5541EC964901616B50411A736CD3621A55411AE47987616B5041F7A712EF631A55413B6C7776616B5041AD562B99641A5541A68702C3616B50411031CA6D651A55411A26208F626B50414A00D9D3651A55416D3C406C636B504132FB6D64661A55412E352EAB646B5041E6C10E63671A5541D0D5F4AC676B5041C9CB2338691A554130C50276696B50410013C0406A1A5541C7B342E2696B50418D97E37C6A1A554125B9E44B6B6B5041093A1D1C6B1A5541253D315B6D6B5041B7A7494E6C1A55412E026AE26E6B5041F1B8FEBB6D1A5541A2A087AE6F6B50411283A2B26E1A5541F4B6A78B706B5041DEF539546F1A5541EC75BB13716B50419F68D1F56F1A5541EC75BB13716B504118C548BA6F1A5541798308F7716B50414D76FF0E6E1A5541AB9596E7726B5041ED86F1456C1A5541B7E3D422746B5041135BC0DB691A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>893335 - 4338095
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001A000000E17A14FE596B50415C8FC245DE195541A4703DFA586B504148E17A44DE1955417B14AE47546B504100000040DE195541A4703DFA536B5041295C8F52DE195541E17A145E4F6B5041D7A370EDDE19554148E17AF4576B5041AE47E1CAF1195541713D0A27546B5041C3F5285CF21955418FC2F5D8506B504185EB51C8F219554148E17AC4516B504100000040F51955411F85EB41566B50410AD7A340011A5541C3F5285C576B504185EB51C8031A55419A9999B9636B5041E17A145E041A5541CDCCCCFC666B50419A9999D9041A5541B81E854B686B5041A4703D0A051A5541AE47E1DA696B504166666646051A554152B81E556C6B5041B81E85AB051A5541713D0A076D6B5041D7A370CD051A5541AE47E18A6E6B50417B14AE07061A55418FC2F5486E6B5041B81E858B051A55410AD7A390636B50419A999959F1195541A4703D1A696B5041AE47E18AF119554185EB51586A6B50417B14AE97F11955411F85EBA1696B5041713D0A47F019554152B81EE55F6B50410AD7A350DE1955419A9999495C6B504185EB5148DE195541E17A14FE596B50415C8FC245DE195541
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000007B437C01696B50411AFB048AF1195541A4703D1A696B5041AE47E18AF119554185EB51586A6B50417B14AE97F11955411F85EBA1696B5041713D0A47F019554152B81EE55F6B50410AD7A350DE1955419A9999495C6B504185EB5148DE195541E17A14FE596B50415C8FC245DE195541A4703DFA586B504148E17A44DE1955417B14AE47546B504100000040DE195541A4703DFA536B5041295C8F52DE195541E17A145E4F6B5041D7A370EDDE19554148E17AF4576B5041AE47E1CAF1195541713D0A27546B5041C3F5285CF21955418FC2F5D8506B504185EB51C8F219554148E17AC4516B504100000040F51955411F85EB41566B50410AD7A340011A5541C3F5285C576B504185EB51C8031A55419A9999B9636B5041E17A145E041A5541CDCCCCFC666B50419A9999D9041A5541B81E854B686B5041A4703D0A051A5541AE47E1DA696B504166666646051A554152B81E556C6B5041B81E85AB051A5541713D0A076D6B5041D7A370CD051A5541AE47E18A6E6B50417B14AE07061A55418FC2F5486E6B5041B81E858B051A5541CC2DFF5B6C6B5041896AD8EA011A5541776A83276A6B5041C8BD6FC3FD195541261E9827666B50414D0F303BF6195541AD5DB48E636B5041910E8859F119554154E64301696B5041EAC6018AF11955417B437C01696B50411AFB048AF1195541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>311735 - 33901
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000020000000103000000010000000C000000295C8F229FC75041F6285C6FDA725441B81E85FB9DC75041E17A145EDF725441A4703D9A9EC750411F85EB41E1725441B81E859B9FC7504100000000E272544152B81E55A3C7504114AE47C1E4725441F6285C5FCEC75041C3F528ACF572544133333393D0C750411F85EB71EF7254415C8FC275C5C7504185EB51A8EA7254418FC2F5E8BBC75041E17A148EE67254410AD7A3F0A7C75041E17A148EDF725441EC51B87EA0C7504185EB51E8D9725441295C8F229FC75041F6285C6FDA7254410103000000010000000E0000009A999959D0C750419A9999C9F572544185EB51F8D8C750419A9999B9F7725441B81E856BE9C75041D7A370BDFA725441EC51B84EF5C7504148E17A84FE72544148E17A24FBC75041A4703D3A00735441C3F5283C05C850413333330302735441666666E60FC85041B81E85BB0573544148E17A7411C850413D0AD7F304735441D7A3707D13C8504148E17A84FE725441A4703D3AFFC750411F85EB01FA72544152B81E95EFC7504185EB51D8F5725441A4703D6AD8C7504133333303F27254415C8FC205D2C75041B81E85EBEF7254419A999959D0C750419A9999C9F5725441
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000000AD7A3F0A7C75041E17A148EDF72544147BB2C22A1C75041A3884F64DA725441EC51B87EA0C7504185EB51E8D9725441295C8F229FC75041F6285C6FDA725441533ECE56A0C750415DFBA5CADB7254412C14FC46A3C75041EEF0CE6ADE7254415E0326F7A5C750415352E7FADF72544101898737ACC7504194540E7BE27254410C700108B4C75041856333DBE472544197BC6BD8BAC750411E6C594BE7725441CA4AF388C3C750417AEF930BEB7254413E5E66E9CAC750414CB2C42BEE7254410030BC69D0C75041EDCDE76BF0725441738B4B9AD9C750411AAA144CF37254414ECBB78AE0C75041EB37266CF4725441BADDC2F8ECC75041787B3F14F672544193EF6BBDEEC75041645259D0F5725441FD6AF0C3E8C75041374A9FB7F4725441505CCF76E6C75041A2452A56F4725441E8229078E4C750414AD5C101F4725441A4703D6AD8C7504133333303F27254418C2F899BD7C7504149C489BFF17254415C8FC205D2C75041B81E85EBEF725441BE2FA0D1D1C75041247B69DAEF72544133333393D0C750411F85EB71EF725441CE3CBD5AD0C7504110D99959EF725441A2274571C5C750413E2864A6EA725441A5823F89BFC7504197E5DA1CE8725441DB6EC200BCC750410AC74D98E67254413AE2C041BBC7504158447853E67254410AD7A3F0A7C75041E17A148EDF725441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>311735 - 73278
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000020000000103000000010000000C000000295C8F229FC75041F6285C6FDA725441B81E85FB9DC75041E17A145EDF725441A4703D9A9EC750411F85EB41E1725441B81E859B9FC7504100000000E272544152B81E55A3C7504114AE47C1E4725441F6285C5FCEC75041C3F528ACF572544133333393D0C750411F85EB71EF7254415C8FC275C5C7504185EB51A8EA7254418FC2F5E8BBC75041E17A148EE67254410AD7A3F0A7C75041E17A148EDF725441EC51B87EA0C7504185EB51E8D9725441295C8F229FC75041F6285C6FDA7254410103000000010000000E0000009A999959D0C750419A9999C9F572544185EB51F8D8C750419A9999B9F7725441B81E856BE9C75041D7A370BDFA725441EC51B84EF5C7504148E17A84FE72544148E17A24FBC75041A4703D3A00735441C3F5283C05C850413333330302735441666666E60FC85041B81E85BB0573544148E17A7411C850413D0AD7F304735441D7A3707D13C8504148E17A84FE725441A4703D3AFFC750411F85EB01FA72544152B81E95EFC7504185EB51D8F5725441A4703D6AD8C7504133333303F27254415C8FC205D2C75041B81E85EBEF7254419A999959D0C750419A9999C9F5725441
+</a>
+
+<b>
+0106000000010000000103000000010000001F0000000AD7A3F0A7C75041E17A148EDF72544147BB2C22A1C75041A3884F64DA725441EC51B87EA0C7504185EB51E8D9725441295C8F229FC75041F6285C6FDA725441533ECE56A0C750415DFBA5CADB7254412C14FC46A3C75041EEF0CE6ADE7254415E0326F7A5C750415352E7FADF72544101898737ACC7504194540E7BE27254410C700108B4C75041856333DBE472544197BC6BD8BAC750411E6C594BE7725441CA4AF388C3C750417AEF930BEB7254413E5E66E9CAC750414CB2C42BEE7254410030BC69D0C75041EDCDE76BF0725441738B4B9AD9C750411AAA144CF37254414ECBB78AE0C75041EB37266CF4725441BADDC2F8ECC75041787B3F14F672544193EF6BBDEEC75041645259D0F5725441FD6AF0C3E8C75041374A9FB7F4725441505CCF76E6C75041A2452A56F4725441E8229078E4C750414AD5C101F4725441A4703D6AD8C7504133333303F27254418C2F899BD7C7504149C489BFF17254415C8FC205D2C75041B81E85EBEF725441BE2FA0D1D1C75041247B69DAEF72544133333393D0C750411F85EB71EF725441CE3CBD5AD0C7504110D99959EF725441A2274571C5C750413E2864A6EA725441A5823F89BFC7504197E5DA1CE8725441DB6EC200BCC750410AC74D98E67254413AE2C041BBC7504158447853E67254410AD7A3F0A7C75041E17A148EDF725441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>312287 - 4013453
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000029000000EC51B81E154F514185EB51388EA95441713D0A27244F5141D7A3708D8CA95441713D0AB7254F5141AE47E11A8CA95441C3F528CC264F51417B14AE878BA95441713D0A17274F51411F85EB018AA95441E17A14CE254F5141A4703DFA83A9544148E17AE4204F5141B81E858B70A95441713D0AB71D4F51413D0AD7A363A95441EC51B8BE044F5141000000A009A954413D0AD733F94E5141EC51B8FEB2A85441F6285C9F8F4E514185EB51A8AAA85441000000A08E4E514148E17A94AAA85441CDCCCCBC8E4E5141E17A140EACA85441C3F528FC904E51415C8FC2D5C1A8544148E17A94914E5141295C8F82C6A854418FC2F568924E5141F6285C4FCBA85441C3F5289C934E5141C3F5280CD0A8544100000000954E5141C3F528ACD4A85441D7A3708D964E5141B81E855BD9A8544166666636984E5141AE47E1EADDA854410AD7A3209B4E5141D7A370ADE5A85441C3F5280C9E4E5141CDCCCC7CECA854415C8FC265A14E5141CDCCCC4CF3A8544152B81ED5A64E5141333333F3FCA854417B14AEE7CA4E5141F6285C2F41A954419A9999D9CC4E5141E17A142E45A95441A4703DFACE4E51418FC2F5584AA95441F6285C7FD04E5141295C8F624FA95441666666B6D14E51410AD7A3D054A9544114AE47C1D24E5141E17A14AE5AA95441333333C3D44E51413D0AD71373A954417B14AED7D64E5141B81E850B81A95441E17A14DED74E514148E17A4485A95441CDCCCC1CDA4E5141C3F5284C91A9544185EB5108DB4E5141F6285C3F92A954417B14AEF7DB4E5141D7A370CD92A95441F6285C4FDF4E5141B81E85AB92A95441D7A370DDEA4E5141CDCCCCDC91A954418FC2F508F34E51418FC2F59891A9544152B81EC5034F5141000000F08FA95441EC51B81E154F514185EB51388EA95441
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000FCFD9FCB034F51417C4E7F7F02A95441C82597A9034F5141E6BC0E8001A954415C7ED962A54E51417E2EC661FAA85441BCB319D5A54E51413039A12CFBA8544152B81ED5A64E5141333333F3FCA854417B14AEE7CA4E5141F6285C2F41A954419A9999D9CC4E5141E17A142E45A95441A4703DFACE4E51418FC2F5584AA95441F6285C7FD04E5141295C8F624FA95441666666B6D14E51410AD7A3D054A9544114AE47C1D24E5141E17A14AE5AA95441333333C3D44E51413D0AD71373A954417B14AED7D64E5141B81E850B81A95441E17A14DED74E514148E17A4485A95441CDCCCC1CDA4E5141C3F5284C91A9544185EB5108DB4E5141F6285C3F92A954417B14AEF7DB4E5141D7A370CD92A95441F6285C4FDF4E5141B81E85AB92A95441D7A370DDEA4E5141CDCCCCDC91A954418FC2F508F34E51418FC2F59891A9544152B81EC5034F5141000000F08FA95441EC51B81E154F514185EB51388EA95441713D0A27244F5141D7A3708D8CA95441713D0AB7254F5141AE47E11A8CA95441C3F528CC264F51417B14AE878BA95441713D0A17274F51411F85EB018AA95441E17A14CE254F5141A4703DFA83A9544148E17AE4204F5141B81E858B70A95441713D0AB71D4F51413D0AD7A363A95441EC51B8BE044F5141000000A009A95441FCFD9FCB034F51417C4E7F7F02A95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>312334 - 3808988
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001100000033333343B99A5041F6285C4FC910554133333393BA9A504114AE47E1C81055418FC2F528BE9A504152B81EB5C7105541E17A143EBF9A5041AE47E15AC71055419A9999A9C09A50415C8FC2E5C6105541A4703D8ABD9A504166666656BF105541E17A146EB99A504148E17A04B51055411F85EB41B89A5041F6285C7FB210554148E17AA4B69A5041AE47E16AAF105541C3F5285CB19A50417B14AEC7A41055418FC2F518AF9A5041A4703DDA9F105541C3F5288CAD9A50419A9999D9A0105541666666F6AA9A504185EB5128A21055419A999909AA9A504152B81E75A2105541EC51B8EEAF9A5041C3F5287CB1105541295C8F22B79A5041EC51B8FEC210554133333343B99A5041F6285C4FC9105541
+</a>
+
+<b>
+010600000001000000010300000001000000150000009A999909AA9A504152B81E75A21055415FCE206AAB9A50419B60C8F7A51055413E8EA873AD9A504158C24329AB10554178FC4FF3AF9A50415A1F5387B1105541864AAC20B39A50411D92AF40B9105541A6DDC7A1B49A5041BDDAEBE8BC1055410EA6A15DB79A504138650FAEC310554133333343B99A5041F6285C4FC9105541F6285CCFC19A5041713D0A87C61055410AD7A300C39A504148E17A24C61055410AD7A390C59A504114AE4751C51055410AD7A380C29A5041EC51B8DEBD10554185EB5158BE9A504152B81EC5B31055417B14AE87B69A5041CDCCCC9CA41055410AD7A330B49A50413D0AD7C3A0105541E17A145EB19A50413D0AD7639C10554185EB51E8AF9A50419A9999999D1055411F85EB91AE9A504152B81EB59E105541A3C057E0AB9A50410C6FB7EFA01055412E3A1EDEAA9A50417754C7C5A11055419A999909AA9A504152B81E75A2105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>312341 - 3186235
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003300000014AE47F1C29A504152B81EC549105541F6285C3FC29A50415C8FC255461055418FC2F5D8C19A5041666666864510554152B81E55C19A50417B14AE77441055413D0AD7C3C09A5041295C8FD24310554148E17A84C09A5041A4703D8A43105541A4703D5ABF9A50410000009042105541713D0A27BF9A504148E17A6442105541713D0AA7BC9A5041333333733F10554100000070BB9A504148E17A043E105541D7A370EDB69A5041295C8FA239105541CDCCCC6CB69A50415C8FC2D538105541C3F528DCB39A50418FC2F5C8391055415C8FC215AF9A5041E17A148E3B105541713D0A979B9A5041713D0AD741105541CDCCCC5C9A9A5041AE47E1BA3D1055417B14AEB7999A504114AE47913B1055418FC2F588879A5041C3F5282C40105541B81E85FB7E9A50418FC2F50842105541713D0A776B9A5041713D0AA745105541000000806B9A5041EC51B86E46105541CDCCCC8C6B9A504100000090471055413D0AD7A36B9A5041333333034A10554152B81EB56B9A5041000000D04B105541F6285CCF6B9A5041F6285C5F4D1055419A9999E96B9A504114AE47E14E105541E17A14FE6B9A50413D0AD7335010554185EB51C86B9A5041E17A147E5110554185EB51F86B9A50411F85EB5153105541000000206C9A5041713D0AD754105541333333436C9A5041AE47E12A5610554185EB51486C9A5041EC51B85E56105541AE47E17A6C9A5041D7A370DD57105541666666F66C9A5041295C8F725B105541D7A3707D709A50410AD7A3B05A1055415C8FC235759A5041F6285C4F59105541CDCCCC3C799A50413D0AD76358105541E17A14AE7F9A50418FC2F52858105541B81E856B8B9A504114AE4781581055418FC2F598909A5041E17A14EE571055410AD7A380979A50411F85EB015710554133333303A19A50417B14AEC753105541713D0A17A69A504114AE47E1511055411F85EBB1AD9A50415C8FC2555010554148E17AC4AF9A5041A4703D4A50105541B81E85CBB19A50418FC2F5384F105541713D0A67B49A50415C8FC2554E105541F6285CFFB79A5041295C8F524C10554166666636BB9A5041333333C34B105541713D0A37BF9A50419A9999494A10554114AE47F1C29A504152B81EC549105541
+</a>
+
+<b>
+0106000000010000000103000000080000008D00000035160610DA99504192AEB934AA10554150DD4CF7E29950412DA9221CA8105541DB730580EB99504183D81B0CA6105541E7A7E89AF6995041FE16627DA3105541F92739A3029A5041026F8708A11055413F1CFBEC099A50416758788D9F105541A375E12C129A5041D95092889D105541C2E8D8EC149A50415A66A8C39C105541DFF7A4F6189A50419B86499C9B105541E17A143E1C9A504185EB51A8991055415C8FC295239A5041C3F5284C961055415C8FC2F5279A504185EB51B8931055415C8FC2C52A9A504148E17A6492105541E71ED3732C9A504187C0D30A92105541F00485133A9A5041FF06C5338F1055411F85EBC1429A504148E17A648D1055417EE6498B459A50418DC34D478B105541874B2C564A9A50416B5C90A487105541A1E0DDD64B9A5041C65E318086105541ECFDF5094F9A5041CAAB4FBA83105541611B42AF529A5041CB1A7491801055419C258FDF549A5041DB00DCAB7E105541BE33DE74579A50419A783C9E7C1055415951641F589A504135B9AB1C7C10554136607E4B589A50416D5F6D0D7C1055411C9A91E9599A50418110F37B7B105541544C9712649A5041EF3746FB77105541E86FE0C2649A50410048C4BD77105541A7707B8F679A504154322070761055414DA827656A9A50418063431E75105541D35B57E86A9A50418876EDEF741055410440698B719A50413361A9A9721055415A2A276B789A50415DC4D6F96F10554146FA617D7D9A50411AB009C96C105541E17A14EE7F9A5041000000406B105541596EBB51829A5041FF587D356A10554181A5E9F2879A50410D1289C167105541A81104B9899A5041E1EBE0F0661055415128F3EE8C9A5041DC10A65565105541A371F2F38F9A5041133338DD621055411F85EB81919A5041000000F0601055411F85EB31919A504148E17AD45E105541D52115C78E9A50417B9E6BA85D105541BC5A9D8B899A5041E7DAF2805D1055417BA82CD9849A50414B9D56ED5C105541210D0F18849A5041C2A4C2D65C105541E83EB1FD829A50412E1BA5C95C105541883D21DB7A9A504159F5E9685C1055413602EA11789A50416F9DE44A5C105541000000206D9A50417B14AEA75C1055414BF705556C9A5041BE12E1BE5610554108991F2C6C9A5041D610164C5510554162B04A0A6A9A50410EBEB66551105541D2D66F90699A5041A9A4958A4E105541B023BA9C689A5041CB91F6044A1055412BBA8D8A679A50410D320D734610554142A191EE899A5041388F1C5541105541F5F376D5909A5041EAB80206401055410C607D979A9A50410B090E3D3E105541713D0A979B9A5041713D0AD741105541501734A8A39A5041404F403D3F10554139711173AA9A50419773A80C3D105541A6C03BADAF9A5041A286EE553B105541BE089175B69A50415778B7E338105541C7CDE317B39A5041A93AF58233105541729CE3FCB19A5041ED9DC5BE311055419F7CA483B19A504162BF69DA301055410A92F9B0AF9A504108FEB4252D105541AE8DFD3FAE9A504191902A442A105541F6A7BAE3AD9A504137D1F5CA291055416FD64B53AB9A5041A26D966C26105541C02DD1E7AA9A50413D0712B5251055410B1A57BCA69A50415C1667351E1055411D3696EDA49A5041410189071B10554153387819A19A504180ABE1FD15105541FD30CDD69B9A5041BA59D26B0F105541333333C3989A5041000000E00B1055416045CA79969A5041783669CB0810554148F393C7949A5041231DBDA506105541AB411AB0939A50411E907E76051055411B99B71C8F9A504163007C7F0010554157DEABBE889A504148711908FA0F55415C8FC235889A5041D7A3707DF90F5541B81E852B879A5041C3F5281CFA0F5541E3F39865849A5041DCD7B967F60F55414D057C45839A5041D37C1210F50F55412EFD0FBA829A5041E70CF931F50F5541A00B1866829A504114795D48F50F55419AE93744819A5041405C8500F60F554191EA69297B9A5041C8020B85F70F5541481CEBE3739A5041C03ED253F90F554161053CCE6F9A5041C9C1C857FA0F554101A6D69D689A50417F597C28FC0F5541B5C44163629A50412CE2A6BCFD0F554149A8265D5E9A50413E7A63CDFE0F55415376BAAF569A5041B5DAC3D500105541A29CBD8E549A5041FC200F66011055411237D557339A5041EB5956310A105541CBBB0DC8279A504110A38F5D0D105541CB7C7E311E9A50419CEC5C011010554115B0EDB5189A50418CC3CC8311105541B5765385139A5041AC5D91F212105541A6438CF30B9A504170E7A40C15105541FB4A1DCB079A5041137A3634161055412F021804049A5041C46DBB4017105541E0F98585FE995041DFE84DC7181055415C8FC2F5FA99504148E17AC419105541B54E3BC1FA995041317BDF1C1A1055410BD7D31BF99950416A8EFFE11C10554124E36E00F9995041AC01F9411D10554199737746F8995041FF8883BF211055413D232A48F7995041046E77E3271055419B8EC888F69950418EC728632C105541AB08D206F6995041FB4AB7B72F10554131EC8F1CF5995041C2E1D002321055418B1532B7F499504194D07CFB32105541A2A1F493F3995041444E8FA03510554100ED832FF2995041D913AAD737105541A256CA77F09950417B37EC4D3A105541C90E6EBCEE99504195C8AB8B3C1055414C4DB11EEC9950412812196F3F105541A5752E85E899504125D913E24210554178B16B7DE5995041E64707F8451055415AE0A58ADD9950410F99578D4E10554143806DF1DB995041C0FF9DCC501055414A5AD983DC9950415D423CFA56105541116DD8CDDC995041ACA5829F5A10554181F0ECB6D7995041CFFF201C5B105541D19C26CCD49950418C4779635B10554164D106B0D4995041CF890BF15F105541F32ED48AD4995041816532E966105541CD112B67D49950410B769E976D1055418DD80F3FD49950410DF31320751055419CC97317D499504135206E9A7C10554106F9F6AFD39950419A57CAA487105541A2C33C45D3995041AC374A8D901055410756F2D5D2995041FB21E7A9A1105541B15FBE1AD4995041B8EC9E65A7105541B49CB46CD5995041AB39A4E4AA105541A4004D41D6995041221ACBEFAA10554135160610DA99504192AEB934AA10554105000000A4703DEA3A9A5041713D0A371D1055418C5028153B9A5041BF4533101C105541713D0A473C9A5041000000201C1055418FC2F5183C9A5041666666461D105541A4703DEA3A9A5041713D0A371D105541050000007B14AE47389A50418FC2F50815105541E17A147E389A5041333333D313105541CDCCCC9C399A504114AE471114105541EC51B85E399A504100000030151055417B14AE47389A50418FC2F50815105541050000009A9999696C9A5041333333B31E1055419A9999696C9A5041C3F5288C1D105541713D0AA76D9A5041CDCCCC7C1D105541713D0AA76D9A5041AE47E1BA1E1055419A9999696C9A5041333333B31E10554105000000295C8F22749A504185EB51E827105541295C8F22749A5041A4703DAA261055410AD7A360759A50411F85EBB1261055410AD7A360759A5041000000F027105541295C8F22749A504185EB51E827105541050000005C8FC2C59F9A504114AE4771301055411F85EBB19F9A50410AD7A3402F105541000000F0A09A50410AD7A3402F1055413D0AD703A19A5041EC51B87E301055415C8FC2C59F9A504114AE4771301055410500000000000030A09A5041AE47E16A281055419A999929A09A50410AD7A340271055417B14AE67A19A5041A4703D3A271055417B14AE67A19A504114AE47712810554100000030A09A5041AE47E16A2810554105000000B42B2BBA4E9A50415427486E0810554178768424509A504111404B51081055418B97C048509A504120F6E98809105541559FA9C84E9A5041341726AD09105541B42B2BBA4E9A50415427486E08105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>312341 - 3204383
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003300000014AE47F1C29A504152B81EC549105541F6285C3FC29A50415C8FC255461055418FC2F5D8C19A5041666666864510554152B81E55C19A50417B14AE77441055413D0AD7C3C09A5041295C8FD24310554148E17A84C09A5041A4703D8A43105541A4703D5ABF9A50410000009042105541713D0A27BF9A504148E17A6442105541713D0AA7BC9A5041333333733F10554100000070BB9A504148E17A043E105541D7A370EDB69A5041295C8FA239105541CDCCCC6CB69A50415C8FC2D538105541C3F528DCB39A50418FC2F5C8391055415C8FC215AF9A5041E17A148E3B105541713D0A979B9A5041713D0AD741105541CDCCCC5C9A9A5041AE47E1BA3D1055417B14AEB7999A504114AE47913B1055418FC2F588879A5041C3F5282C40105541B81E85FB7E9A50418FC2F50842105541713D0A776B9A5041713D0AA745105541000000806B9A5041EC51B86E46105541CDCCCC8C6B9A504100000090471055413D0AD7A36B9A5041333333034A10554152B81EB56B9A5041000000D04B105541F6285CCF6B9A5041F6285C5F4D1055419A9999E96B9A504114AE47E14E105541E17A14FE6B9A50413D0AD7335010554185EB51C86B9A5041E17A147E5110554185EB51F86B9A50411F85EB5153105541000000206C9A5041713D0AD754105541333333436C9A5041AE47E12A5610554185EB51486C9A5041EC51B85E56105541AE47E17A6C9A5041D7A370DD57105541666666F66C9A5041295C8F725B105541D7A3707D709A50410AD7A3B05A1055415C8FC235759A5041F6285C4F59105541CDCCCC3C799A50413D0AD76358105541E17A14AE7F9A50418FC2F52858105541B81E856B8B9A504114AE4781581055418FC2F598909A5041E17A14EE571055410AD7A380979A50411F85EB015710554133333303A19A50417B14AEC753105541713D0A17A69A504114AE47E1511055411F85EBB1AD9A50415C8FC2555010554148E17AC4AF9A5041A4703D4A50105541B81E85CBB19A50418FC2F5384F105541713D0A67B49A50415C8FC2554E105541F6285CFFB79A5041295C8F524C10554166666636BB9A5041333333C34B105541713D0A37BF9A50419A9999494A10554114AE47F1C29A504152B81EC549105541
+</a>
+
+<b>
+0106000000010000000103000000080000008D00000035160610DA99504192AEB934AA10554150DD4CF7E29950412DA9221CA8105541DB730580EB99504183D81B0CA6105541E7A7E89AF6995041FE16627DA3105541F92739A3029A5041026F8708A11055413F1CFBEC099A50416758788D9F105541A375E12C129A5041D95092889D105541C2E8D8EC149A50415A66A8C39C105541DFF7A4F6189A50419B86499C9B105541E17A143E1C9A504185EB51A8991055415C8FC295239A5041C3F5284C961055415C8FC2F5279A504185EB51B8931055415C8FC2C52A9A504148E17A6492105541E71ED3732C9A504187C0D30A92105541F00485133A9A5041FF06C5338F1055411F85EBC1429A504148E17A648D1055417EE6498B459A50418DC34D478B105541874B2C564A9A50416B5C90A487105541A1E0DDD64B9A5041C65E318086105541ECFDF5094F9A5041CAAB4FBA83105541611B42AF529A5041CB1A7491801055419C258FDF549A5041DB00DCAB7E105541BE33DE74579A50419A783C9E7C1055415951641F589A504135B9AB1C7C10554136607E4B589A50416D5F6D0D7C1055411C9A91E9599A50418110F37B7B105541544C9712649A5041EF3746FB77105541E86FE0C2649A50410048C4BD77105541A7707B8F679A504154322070761055414DA827656A9A50418063431E75105541D35B57E86A9A50418876EDEF741055410440698B719A50413361A9A9721055415A2A276B789A50415DC4D6F96F10554146FA617D7D9A50411AB009C96C105541E17A14EE7F9A5041000000406B105541596EBB51829A5041FF587D356A10554181A5E9F2879A50410D1289C167105541A81104B9899A5041E1EBE0F0661055415128F3EE8C9A5041DC10A65565105541A371F2F38F9A5041133338DD621055411F85EB81919A5041000000F0601055411F85EB31919A504148E17AD45E105541D52115C78E9A50417B9E6BA85D105541BC5A9D8B899A5041E7DAF2805D1055417BA82CD9849A50414B9D56ED5C105541210D0F18849A5041C2A4C2D65C105541E83EB1FD829A50412E1BA5C95C105541883D21DB7A9A504159F5E9685C1055413602EA11789A50416F9DE44A5C105541000000206D9A50417B14AEA75C1055414BF705556C9A5041BE12E1BE5610554108991F2C6C9A5041D610164C5510554162B04A0A6A9A50410EBEB66551105541D2D66F90699A5041A9A4958A4E105541B023BA9C689A5041CB91F6044A1055412BBA8D8A679A50410D320D734610554142A191EE899A5041388F1C5541105541F5F376D5909A5041EAB80206401055410C607D979A9A50410B090E3D3E105541713D0A979B9A5041713D0AD741105541501734A8A39A5041404F403D3F10554139711173AA9A50419773A80C3D105541A6C03BADAF9A5041A286EE553B105541BE089175B69A50415778B7E338105541C7CDE317B39A5041A93AF58233105541729CE3FCB19A5041ED9DC5BE311055419F7CA483B19A504162BF69DA301055410A92F9B0AF9A504108FEB4252D105541AE8DFD3FAE9A504191902A442A105541F6A7BAE3AD9A504137D1F5CA291055416FD64B53AB9A5041A26D966C26105541C02DD1E7AA9A50413D0712B5251055410B1A57BCA69A50415C1667351E1055411D3696EDA49A5041410189071B10554153387819A19A504180ABE1FD15105541FD30CDD69B9A5041BA59D26B0F105541333333C3989A5041000000E00B1055416045CA79969A5041783669CB0810554148F393C7949A5041231DBDA506105541AB411AB0939A50411E907E76051055411B99B71C8F9A504163007C7F0010554157DEABBE889A504148711908FA0F55415C8FC235889A5041D7A3707DF90F5541B81E852B879A5041C3F5281CFA0F5541E3F39865849A5041DCD7B967F60F55414D057C45839A5041D37C1210F50F55412EFD0FBA829A5041E70CF931F50F5541A00B1866829A504114795D48F50F55419AE93744819A5041405C8500F60F554191EA69297B9A5041C8020B85F70F5541481CEBE3739A5041C03ED253F90F554161053CCE6F9A5041C9C1C857FA0F554101A6D69D689A50417F597C28FC0F5541B5C44163629A50412CE2A6BCFD0F554149A8265D5E9A50413E7A63CDFE0F55415376BAAF569A5041B5DAC3D500105541A29CBD8E549A5041FC200F66011055411237D557339A5041EB5956310A105541CBBB0DC8279A504110A38F5D0D105541CB7C7E311E9A50419CEC5C011010554115B0EDB5189A50418CC3CC8311105541B5765385139A5041AC5D91F212105541A6438CF30B9A504170E7A40C15105541FB4A1DCB079A5041137A3634161055412F021804049A5041C46DBB4017105541E0F98585FE995041DFE84DC7181055415C8FC2F5FA99504148E17AC419105541B54E3BC1FA995041317BDF1C1A1055410BD7D31BF99950416A8EFFE11C10554124E36E00F9995041AC01F9411D10554199737746F8995041FF8883BF211055413D232A48F7995041046E77E3271055419B8EC888F69950418EC728632C105541AB08D206F6995041FB4AB7B72F10554131EC8F1CF5995041C2E1D002321055418B1532B7F499504194D07CFB32105541A2A1F493F3995041444E8FA03510554100ED832FF2995041D913AAD737105541A256CA77F09950417B37EC4D3A105541C90E6EBCEE99504195C8AB8B3C1055414C4DB11EEC9950412812196F3F105541A5752E85E899504125D913E24210554178B16B7DE5995041E64707F8451055415AE0A58ADD9950410F99578D4E10554143806DF1DB995041C0FF9DCC501055414A5AD983DC9950415D423CFA56105541116DD8CDDC995041ACA5829F5A10554181F0ECB6D7995041CFFF201C5B105541D19C26CCD49950418C4779635B10554164D106B0D4995041CF890BF15F105541F32ED48AD4995041816532E966105541CD112B67D49950410B769E976D1055418DD80F3FD49950410DF31320751055419CC97317D499504135206E9A7C10554106F9F6AFD39950419A57CAA487105541A2C33C45D3995041AC374A8D901055410756F2D5D2995041FB21E7A9A1105541B15FBE1AD4995041B8EC9E65A7105541B49CB46CD5995041AB39A4E4AA105541A4004D41D6995041221ACBEFAA10554135160610DA99504192AEB934AA10554105000000A4703DEA3A9A5041713D0A371D1055418C5028153B9A5041BF4533101C105541713D0A473C9A5041000000201C1055418FC2F5183C9A5041666666461D105541A4703DEA3A9A5041713D0A371D105541050000007B14AE47389A50418FC2F50815105541E17A147E389A5041333333D313105541CDCCCC9C399A504114AE471114105541EC51B85E399A504100000030151055417B14AE47389A50418FC2F50815105541050000009A9999696C9A5041333333B31E1055419A9999696C9A5041C3F5288C1D105541713D0AA76D9A5041CDCCCC7C1D105541713D0AA76D9A5041AE47E1BA1E1055419A9999696C9A5041333333B31E10554105000000295C8F22749A504185EB51E827105541295C8F22749A5041A4703DAA261055410AD7A360759A50411F85EBB1261055410AD7A360759A5041000000F027105541295C8F22749A504185EB51E827105541050000005C8FC2C59F9A504114AE4771301055411F85EBB19F9A50410AD7A3402F105541000000F0A09A50410AD7A3402F1055413D0AD703A19A5041EC51B87E301055415C8FC2C59F9A504114AE4771301055410500000000000030A09A5041AE47E16A281055419A999929A09A50410AD7A340271055417B14AE67A19A5041A4703D3A271055417B14AE67A19A504114AE47712810554100000030A09A5041AE47E16A2810554105000000B42B2BBA4E9A50415427486E0810554178768424509A504111404B51081055418B97C048509A504120F6E98809105541559FA9C84E9A5041341726AD09105541B42B2BBA4E9A50415427486E08105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>312566 - 1743404
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B0000001F85EBA1099D50411F85EBC1CB125541713D0A07E89C5041D7A370ADB6125541AE47E1EACE9C504152B81EB5D012554133333303C79C5041D7A3704DE212554114AE47B10A9D5041295C8FC20C135541000000400D9D504185EB51E80A1355419A9999C9209D50417B14AEE7FA12554185EB51782B9D504100000020F01255419A9999B9339D5041AE47E12AE6125541B81E857B0A9D5041AE47E14ACC1255411F85EBA1099D50411F85EBC1CB125541
+</a>
+
+<b>
+0106000000010000000103000000010000002F00000014AE47B10A9D5041295C8FC20C135541652A883F029D504147D06F76071355419D378B0BFF9C5041A2370974051355414AED78F8FB9C504169E4488603135541E9C47919F89C5041A2099B180113554102CAAEBEF49C5041C48DDCFDFE125541E7DD1F3FEF9C504196AEDC8AFB1255410AF21DDBEC9C504184E1EE0AFA12554169063492EB9C504167BB983CF912554130ED8937E99C5041E66287C2F71255419B9A9270E79C50411DC41DA5F61255415E24A4E0E49C5041B0F5A109F512554187A18B27E29C504164595354F3125541D731F4BEDE9C504118DCEC30F11255412430102ADD9C5041E724ED32F0125541FEEFDE7ADB9C5041617B6D24EF125541A658247DD99C5041B831A9E4ED12554195875972D69C5041F2781AFCEB125541B79FD9E2D39C50415D05E460EA1255415F41FFB8D19C5041EC957105E91255416B9D1A92CF9C5041637EDAABE71255416E3B0C34CD9C50412273A82FE61255418F7C452ECB9C50416FC5D7EAE4125541D15B7158C99C50411C4B1BC4E31255411A32A78DC79C5041BA9E4BA4E2125541E96B5D18C79C504170C5F86FE21255413217E559C19C50412665E384EF125541AD59DB3DC09C50413ED4DAA0F11255417EAD16C6C39C50412DB7DADAF31255413317E579C79C5041A079912CF61255412E3D97B0C99C5041D2EFF490F7125541638993E5CC9C5041FCADFD93F91255417556DBD7D09C5041CFD5C60DFC1255414E4569C0D39C504160E2DCE0FD12554107202683D99C50411F01057E0113554108E4B126DE9C5041FEB69B6304135541C58918D5DF9C5041A941047505135541A25398D4E39C50418D4F18F707135541F34E3D4DE59C5041FCB460E3081355414728CEECEA9C50414949786A0C135541E6FF292EEF9C50414A44DD150F1355417D775F33F49C504123681F3C121355418EC0D010FC9C5041F2BDD12B17135541085B2B69FE9C50410D9C237815135541CF68C126029D5041F28EEFF1121355414121EEB6069D5041A9F9FFA30F13554114AE47B10A9D5041295C8FC20C135541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>312566 - 3347215
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B0000001F85EBA1099D50411F85EBC1CB125541713D0A07E89C5041D7A370ADB6125541AE47E1EACE9C504152B81EB5D012554133333303C79C5041D7A3704DE212554114AE47B10A9D5041295C8FC20C135541000000400D9D504185EB51E80A1355419A9999C9209D50417B14AEE7FA12554185EB51782B9D504100000020F01255419A9999B9339D5041AE47E12AE6125541B81E857B0A9D5041AE47E14ACC1255411F85EBA1099D50411F85EBC1CB125541
+</a>
+
+<b>
+0106000000010000000103000000010000002F00000014AE47B10A9D5041295C8FC20C135541652A883F029D504147D06F76071355419D378B0BFF9C5041A2370974051355414AED78F8FB9C504169E4488603135541E9C47919F89C5041A2099B180113554102CAAEBEF49C5041C48DDCFDFE125541E7DD1F3FEF9C504196AEDC8AFB1255410AF21DDBEC9C504184E1EE0AFA12554169063492EB9C504167BB983CF912554130ED8937E99C5041E66287C2F71255419B9A9270E79C50411DC41DA5F61255415E24A4E0E49C5041B0F5A109F512554187A18B27E29C504164595354F3125541D731F4BEDE9C504118DCEC30F11255412430102ADD9C5041E724ED32F0125541FEEFDE7ADB9C5041617B6D24EF125541A658247DD99C5041B831A9E4ED12554195875972D69C5041F2781AFCEB125541B79FD9E2D39C50415D05E460EA1255415F41FFB8D19C5041EC957105E91255416B9D1A92CF9C5041637EDAABE71255416E3B0C34CD9C50412273A82FE61255418F7C452ECB9C50416FC5D7EAE4125541D15B7158C99C50411C4B1BC4E31255411A32A78DC79C5041BA9E4BA4E2125541E96B5D18C79C504170C5F86FE21255413217E559C19C50412665E384EF125541AD59DB3DC09C50413ED4DAA0F11255417EAD16C6C39C50412DB7DADAF31255413317E579C79C5041A079912CF61255412E3D97B0C99C5041D2EFF490F7125541638993E5CC9C5041FCADFD93F91255417556DBD7D09C5041CFD5C60DFC1255414E4569C0D39C504160E2DCE0FD12554107202683D99C50411F01057E0113554108E4B126DE9C5041FEB69B6304135541C58918D5DF9C5041A941047505135541A25398D4E39C50418D4F18F707135541F34E3D4DE59C5041FCB460E3081355414728CEECEA9C50414949786A0C135541E6FF292EEF9C50414A44DD150F1355417D775F33F49C504123681F3C121355418EC0D010FC9C5041F2BDD12B17135541085B2B69FE9C50410D9C237815135541CF68C126029D5041F28EEFF1121355414121EEB6069D5041A9F9FFA30F13554114AE47B10A9D5041295C8FC20C135541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>312987 - 1328539
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000009000000B81E850B85015141333333836FCD54418FC2F5C885015141333333C370CD544148E17A74CA015141C3F5289C84CD544152B81E15CE0151415C8FC2E586CD54411F85EBE1CF01514185EB510887CD5441E17A147EE6015141A4703D6A7DCD5441EC51B80ED0015141F6285CEF76CD5441CDCCCC0C880151413D0AD72362CD5441B81E850B85015141333333836FCD5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000007AAA80469A01514104FE4DAF76CD5441E8F9814CAA015141CE55E5507BCD5441A33DE033AC015141E72EC2DD7BCD5441E811E57EAF015141B7F60F886DCD544103AD5AA4AD015141FF2305FF6CCD54414B6C171FA5015141AA3818896ACD5441DCEC7609A5015141F456D9826ACD54416BB20A8CA40151412AD3A05E6ACD5441CDCCCC0C880151413D0AD72362CD5441B81E850B85015141333333836FCD54418FC2F5C885015141333333C370CD544196CD9AD699015141C88EF68E76CD54417AAA80469A01514104FE4DAF76CD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>312987 - 3793702
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000009000000B81E850B85015141333333836FCD54418FC2F5C885015141333333C370CD544148E17A74CA015141C3F5289C84CD544152B81E15CE0151415C8FC2E586CD54411F85EBE1CF01514185EB510887CD5441E17A147EE6015141A4703D6A7DCD5441EC51B80ED0015141F6285CEF76CD5441CDCCCC0C880151413D0AD72362CD5441B81E850B85015141333333836FCD5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000007AAA80469A01514104FE4DAF76CD5441E8F9814CAA015141CE55E5507BCD5441A33DE033AC015141E72EC2DD7BCD5441E811E57EAF015141B7F60F886DCD544103AD5AA4AD015141FF2305FF6CCD54414B6C171FA5015141AA3818896ACD5441DCEC7609A5015141F456D9826ACD54416BB20A8CA40151412AD3A05E6ACD5441CDCCCC0C880151413D0AD72362CD5441B81E850B85015141333333836FCD54418FC2F5C885015141333333C370CD544196CD9AD699015141C88EF68E76CD54417AAA80469A01514104FE4DAF76CD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>313766 - 242246
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001100000085EB519808315141F6285CEF53435541D7A3704D05315141A4703D3A6143554148E17A1404315141D7A3708D69435541666666F6023151418FC2F54873435541A4703DAA1F31514148E17A2478435541713D0A8725315141D7A3708D6D435541EC51B89E25315141E17A149E6B435541D7A3706D243151417B14AE7769435541D7A3707D223151417B14AEC767435541B81E857B20315141A4703D6A65435541E17A14FE1E3151413D0AD763624355410AD7A3F01D315141D7A370AD5E435541EC51B8EE1C315141CDCCCC3C59435541CDCCCC7C1C3151413333333356435541000000200E315141713D0A3750435541AE47E16A0A3151413D0AD7435043554185EB519808315141F6285CEF53435541
+</a>
+
+<b>
+0106000000010000000103000000010000003C0000009F6548571E3151418A5B7E1760435541EDE7432D1F315141F1B4A2C36243554187774A401F3151411AED42EA6243554194673604203151410594057864435541237567EB20315141C3770CEE654355413245FE2522315141B518A9606743554160921B0D24315141C915C72369435541D7A3706D243151417B14AE7769435541FDF9FE4925315141D60054056B435541EC51B89E25315141E17A149E6B4355415E67189325315141306E41916C435541713D0A8725315141D7A3708D6D435541C09187FA24315141D2EF418B6E4355410EAE796424315141D7A7509A6F4355418354036A23315141ECD2BF5E7143554153A4A6A222315141CC52E0C6724355411CA2D54522315141DE208A6E734355411180CC93203151414283947E76435541495F0F622031514181976DD876435541A4703DAA1F31514148E17A247843554186CB124C1A315141B1DEEB3B77435541642E2E88173151416FCB1EC476435541E23FBE29163151416B4BD08876435541111730090A3151416725697B74435541F23E5A2106315141D0D433D273435541666666F6023151418FC2F54873435541CCCFABD80231514127E3994C744355413A1F4BBD0231514160EA193B75435541D759ED9D0231514101723F4C76435541E17A148E02315141666666D676435541F1552E3102315141A7F0525D784355417DCC0B2E02315141FD0E846A784355413799351F02315141DB16F3A878435541F6285CCF013151418FC2F5F87943554152B81EC5FF305141713D0A877E4355413D0AD7A3083151418FC2F5488143554199CC90F40A315141F5DAEABA80435541000000900C31514185EB515880435541000000100F3151415C8FC23580435541CDCCCC0C12315141B81E852B80435541A4703D0A1B31514185EB5108834355410D4F0C0B1D3151419FCED15E7F435541606309B31E315141243EB2577C435541919C43D31E3151412C6EC71C7C4355414BEFEE2D213151419342FFCE774355413382F3CD22315141481672D674435541000DA7CC263151419108C6886D43554152B81E2527315141713D0AE76C435541C5813597273151411252495267435541F6285CAF273151413D0AD723664355416B52C8142831514173D5254C614355413D0AD77328315141666666B65C4355410BDA1E3D24315141ECD186895B435541882616FC23315141383663775B435541B81E855B22315141333333035B4355410EB039CA2031514196F35F7A5A435541EC51B8EE1C315141CDCCCC3C59435541A19298521D3151410DAD14585B4355410965DCAE1D31514103FE434A5D4355419F6548571E3151418A5B7E1760435541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>313766 - 265644
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001100000085EB519808315141F6285CEF53435541D7A3704D05315141A4703D3A6143554148E17A1404315141D7A3708D69435541666666F6023151418FC2F54873435541A4703DAA1F31514148E17A2478435541713D0A8725315141D7A3708D6D435541EC51B89E25315141E17A149E6B435541D7A3706D243151417B14AE7769435541D7A3707D223151417B14AEC767435541B81E857B20315141A4703D6A65435541E17A14FE1E3151413D0AD763624355410AD7A3F01D315141D7A370AD5E435541EC51B8EE1C315141CDCCCC3C59435541CDCCCC7C1C3151413333333356435541000000200E315141713D0A3750435541AE47E16A0A3151413D0AD7435043554185EB519808315141F6285CEF53435541
+</a>
+
+<b>
+0106000000010000000103000000010000003C0000009F6548571E3151418A5B7E1760435541EDE7432D1F315141F1B4A2C36243554187774A401F3151411AED42EA6243554194673604203151410594057864435541237567EB20315141C3770CEE654355413245FE2522315141B518A9606743554160921B0D24315141C915C72369435541D7A3706D243151417B14AE7769435541FDF9FE4925315141D60054056B435541EC51B89E25315141E17A149E6B4355415E67189325315141306E41916C435541713D0A8725315141D7A3708D6D435541C09187FA24315141D2EF418B6E4355410EAE796424315141D7A7509A6F4355418354036A23315141ECD2BF5E7143554153A4A6A222315141CC52E0C6724355411CA2D54522315141DE208A6E734355411180CC93203151414283947E76435541495F0F622031514181976DD876435541A4703DAA1F31514148E17A247843554186CB124C1A315141B1DEEB3B77435541642E2E88173151416FCB1EC476435541E23FBE29163151416B4BD08876435541111730090A3151416725697B74435541F23E5A2106315141D0D433D273435541666666F6023151418FC2F54873435541CCCFABD80231514127E3994C744355413A1F4BBD0231514160EA193B75435541D759ED9D0231514101723F4C76435541E17A148E02315141666666D676435541F1552E3102315141A7F0525D784355417DCC0B2E02315141FD0E846A784355413799351F02315141DB16F3A878435541F6285CCF013151418FC2F5F87943554152B81EC5FF305141713D0A877E4355413D0AD7A3083151418FC2F5488143554199CC90F40A315141F5DAEABA80435541000000900C31514185EB515880435541000000100F3151415C8FC23580435541CDCCCC0C12315141B81E852B80435541A4703D0A1B31514185EB5108834355410D4F0C0B1D3151419FCED15E7F435541606309B31E315141243EB2577C435541919C43D31E3151412C6EC71C7C4355414BEFEE2D213151419342FFCE774355413382F3CD22315141481672D674435541000DA7CC263151419108C6886D43554152B81E2527315141713D0AE76C435541C5813597273151411252495267435541F6285CAF273151413D0AD723664355416B52C8142831514173D5254C614355413D0AD77328315141666666B65C4355410BDA1E3D24315141ECD186895B435541882616FC23315141383663775B435541B81E855B22315141333333035B4355410EB039CA2031514196F35F7A5A435541EC51B8EE1C315141CDCCCC3C59435541A19298521D3151410DAD14585B4355410965DCAE1D31514103FE434A5D4355419F6548571E3151418A5B7E1760435541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>314252 - 192687
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000002400000085EB51082CB95041B81E85BB4C2C5541E17A14DE2DB950417B14AE974B2C5541C3F528CC2EB950419A9999594B2C5541CDCCCCCC31B9504114AE47914B2C5541CDCCCC1C34B95041A4703DAA4B2C55416666660636B95041666666A64A2C5541CDCCCCBC37B950419A9999494A2C554185EB51B839B950411F85EB014B2C55419A9999C93AB95041713D0AB74A2C55411F85EB013CB95041000000C0492C55418FC2F5383DB9504114AE47014A2C55411F85EB413FB950419A9999B94A2C554114AE47D141B95041B81E852B4A2C5541B81E858B42B950418FC2F5884A2C55410000006044B950411F85EBE1492C55418FC2F51845B9504148E17A04482C5541713D0AA745B950415C8FC2B5472C5541F6285C4F46B950419A9999D9472C55416666661647B9504100000070472C55415C8FC2B547B95041EC51B85E462C5541713D0A7748B9504185EB51A8432C5541E17A14DE48B950419A999969422C5541295C8FC245B95041F6285C7F3D2C5541A4703DEA3EB950410AD7A3003E2C55417B14AE273EB95041F6285C8F422C55417B14AE173DB95041D7A370CD422C5541B81E859B34B95041C3F5285C432C5541CDCCCCBC2BB95041CDCCCC7C432C5541713D0AC727B950418FC2F508432C5541D7A3707D27B9504152B81E05442C5541713D0AC727B95041295C8F02462C554185EB518827B95041333333A3492C5541713D0AC727B950417B14AEE74A2C55411F85EBA128B9504114AE47514C2C5541000000002AB95041713D0A374D2C554185EB51082CB95041B81E85BB4C2C5541
+</a>
+
+<b>
+010600000001000000010300000001000000450000008FC2F5383DB9504114AE47014A2C5541D0681E593EB95041F8A43B674A2C5541F23CF74E3FB95041408FC5B64A2C5541ABF67FC43FB95041FC6A4A9D4A2C5541604E550540B95041782A3C8F4A2C5541DD9DA95F40B950413CE3A67B4A2C554114AE47D141B95041B81E852B4A2C5541E5ADE88B42B95041EB42D2884A2C554107FEC2A742B950414CE5E37E4A2C554198F7F88F42B950419A948655492C55412F1A4D5F43B950415BF61CA0482C5541B2FD5EB345B95041E788FE8F472C554176D65F6846B95041812654CC472C5541F7D0E2AC46B9504191E7FAA7472C55416296A6C647B950418271EE04442C55410A12BCAC47B95041953DF0CD422C554126C5759748B95041E346E7F9412C5541295C8FC245B95041F6285C7F3D2C554176AAB2EA3EB9504105319B003E2C5541BE33EDE13EB950413B447E323E2C55417B14AE273EB95041F6285C8F422C5541CC8D211D3EB95041F083C491422C55413A39AA1B3EB95041EF341B9A422C5541863530DE3DB950413D2622A0422C55417B14AE173DB95041D7A370CD422C55416B5764F839B95041ABE1F401432C55419CDCF1F138B9504193CAAF1B432C5541709AFCE438B9504184E42EB7432C5541FAB99D2238B950412AED03EB432C5541612409A137B950410D918F42432C55413938221935B9504165157A5C432C55411E4FEE2234B95041CE82986C442C55410266BA2C33B9504176FEAD52442C5541114C3B9132B95041B3996476432C5541E59830612BB95041DFDB5983432C5541F8E9347F27B95041063E5911442C55415EDD308527B950418301C53A442C5541CAB44B8527B95041B0CB7E3B442C554132826B8B27B95041F1B6E265442C5541A1C315E327B95041808E2032462C554179251F9B27B950411FFBD18C482C554185EB518827B95041333333A3492C554100E8099527B95041F6F1FFE4492C5541713D0AC727B950417B14AEE74A2C5541EAF5161128B95041227803624B2C55411F85EBA128B9504114AE47514C2C5541000000002AB95041713D0A374D2C554185EB51082CB95041B81E85BB4C2C554158064F712CB95041BE9AEC784C2C554178D503CC2CB95041A424F9344B2C554139C70CF62DB950410B8F64B34A2C5541AEA76BB82EB95041FDA8E34E4B2C554115A2491630B9504129EBD85B4B2C5541BBAA1E4A30B9504139449A724A2C5541268B7D0C31B95041B30A7A994A2C55412858AAD531B95041705EA7914B2C5541DA7177ED32B950411A68739D4B2C5541F20CF91534B95041FB35A39C4B2C55414C0424E233B9504187C8848C4A2C5541463BD5AA36B95041F0A530BD492C55413755544637B95041E1BFAF584A2C55412D0CD55E37B950418FB17D5D4A2C5541CDCCCCBC37B950419A9999494A2C55412BD819A238B950413A84E09C4A2C554185EB51B839B950411F85EB014B2C55419A9999C93AB95041713D0AB74A2C55411F85EB013CB95041000000C0492C55419B9C30EC3CB95041F7F12AF1492C55418FC2F5383DB9504114AE47014A2C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>314252 - 359450
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000002400000085EB51082CB95041B81E85BB4C2C5541E17A14DE2DB950417B14AE974B2C5541C3F528CC2EB950419A9999594B2C5541CDCCCCCC31B9504114AE47914B2C5541CDCCCC1C34B95041A4703DAA4B2C55416666660636B95041666666A64A2C5541CDCCCCBC37B950419A9999494A2C554185EB51B839B950411F85EB014B2C55419A9999C93AB95041713D0AB74A2C55411F85EB013CB95041000000C0492C55418FC2F5383DB9504114AE47014A2C55411F85EB413FB950419A9999B94A2C554114AE47D141B95041B81E852B4A2C5541B81E858B42B950418FC2F5884A2C55410000006044B950411F85EBE1492C55418FC2F51845B9504148E17A04482C5541713D0AA745B950415C8FC2B5472C5541F6285C4F46B950419A9999D9472C55416666661647B9504100000070472C55415C8FC2B547B95041EC51B85E462C5541713D0A7748B9504185EB51A8432C5541E17A14DE48B950419A999969422C5541295C8FC245B95041F6285C7F3D2C5541A4703DEA3EB950410AD7A3003E2C55417B14AE273EB95041F6285C8F422C55417B14AE173DB95041D7A370CD422C5541B81E859B34B95041C3F5285C432C5541CDCCCCBC2BB95041CDCCCC7C432C5541713D0AC727B950418FC2F508432C5541D7A3707D27B9504152B81E05442C5541713D0AC727B95041295C8F02462C554185EB518827B95041333333A3492C5541713D0AC727B950417B14AEE74A2C55411F85EBA128B9504114AE47514C2C5541000000002AB95041713D0A374D2C554185EB51082CB95041B81E85BB4C2C5541
+</a>
+
+<b>
+010600000001000000010300000001000000450000008FC2F5383DB9504114AE47014A2C5541D0681E593EB95041F8A43B674A2C5541F23CF74E3FB95041408FC5B64A2C5541ABF67FC43FB95041FC6A4A9D4A2C5541604E550540B95041782A3C8F4A2C5541DD9DA95F40B950413CE3A67B4A2C554114AE47D141B95041B81E852B4A2C5541E5ADE88B42B95041EB42D2884A2C554107FEC2A742B950414CE5E37E4A2C554198F7F88F42B950419A948655492C55412F1A4D5F43B950415BF61CA0482C5541B2FD5EB345B95041E788FE8F472C554176D65F6846B95041812654CC472C5541F7D0E2AC46B9504191E7FAA7472C55416296A6C647B950418271EE04442C55410A12BCAC47B95041953DF0CD422C554126C5759748B95041E346E7F9412C5541295C8FC245B95041F6285C7F3D2C554176AAB2EA3EB9504105319B003E2C5541BE33EDE13EB950413B447E323E2C55417B14AE273EB95041F6285C8F422C5541CC8D211D3EB95041F083C491422C55413A39AA1B3EB95041EF341B9A422C5541863530DE3DB950413D2622A0422C55417B14AE173DB95041D7A370CD422C55416B5764F839B95041ABE1F401432C55419CDCF1F138B9504193CAAF1B432C5541709AFCE438B9504184E42EB7432C5541FAB99D2238B950412AED03EB432C5541612409A137B950410D918F42432C55413938221935B9504165157A5C432C55411E4FEE2234B95041CE82986C442C55410266BA2C33B9504176FEAD52442C5541114C3B9132B95041B3996476432C5541E59830612BB95041DFDB5983432C5541F8E9347F27B95041063E5911442C55415EDD308527B950418301C53A442C5541CAB44B8527B95041B0CB7E3B442C554132826B8B27B95041F1B6E265442C5541A1C315E327B95041808E2032462C554179251F9B27B950411FFBD18C482C554185EB518827B95041333333A3492C554100E8099527B95041F6F1FFE4492C5541713D0AC727B950417B14AEE74A2C5541EAF5161128B95041227803624B2C55411F85EBA128B9504114AE47514C2C5541000000002AB95041713D0A374D2C554185EB51082CB95041B81E85BB4C2C554158064F712CB95041BE9AEC784C2C554178D503CC2CB95041A424F9344B2C554139C70CF62DB950410B8F64B34A2C5541AEA76BB82EB95041FDA8E34E4B2C554115A2491630B9504129EBD85B4B2C5541BBAA1E4A30B9504139449A724A2C5541268B7D0C31B95041B30A7A994A2C55412858AAD531B95041705EA7914B2C5541DA7177ED32B950411A68739D4B2C5541F20CF91534B95041FB35A39C4B2C55414C0424E233B9504187C8848C4A2C5541463BD5AA36B95041F0A530BD492C55413755544637B95041E1BFAF584A2C55412D0CD55E37B950418FB17D5D4A2C5541CDCCCCBC37B950419A9999494A2C55412BD819A238B950413A84E09C4A2C554185EB51B839B950411F85EB014B2C55419A9999C93AB95041713D0AB74A2C55411F85EB013CB95041000000C0492C55419B9C30EC3CB95041F7F12AF1492C55418FC2F5383DB9504114AE47014A2C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>315463 - 242941
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000E000000EC51B82EB32451417B14AE67783955419A999959B824514133333303753955419A999909BB24514166666666733955411F85EBC1B7245141000000B068395541AE47E16AB52451410AD7A380633955410AD7A3E0B1245141295C8FC25E39554152B81EF5AD2451419A9999995B395541666666F6A82451413333337359395541F6285C1FA1245141EC51B80E58395541000000F09B245141EC51B8DE573955411F85EB1197245141F6285C3F58395541E17A14DE8F245141E17A146E5A395541D7A370FD8A245141666666065C395541EC51B82EB32451417B14AE6778395541
+</a>
+
+<b>
+010600000001000000010300000001000000250000009A999909BB2451416666666673395541830E2B26BA245141F0379B7F70395541CE72A26DB92451419F1AEB246E3955415E3BA03AB92451419CE3527E6D3955411401AA0FB824514181A2E9AD69395541C4B5084EB72451416EED37AF67395541C95E642AB7245141311B3E6067395541285F8C27B62451419B8BB1226539554162B779BEB5245141D42EDF39643955417CA8A822B5245141EFD4E21F633955412EBAACF6B3245141C525008E61395541E46920E0B22451414C2AD51860395541D291D6CDB2245141F3F254006039554165695A90B22451414907F6AD5F39554115C6F1F3B124514100046CDC5E3955410D22641AB0245141973A61545D39554152B81EF5AD2451419A9999995B395541666666F6A82451413333337359395541F6285C1FA1245141EC51B80E583955417AEEBADC9B245141BAE736E0573955412276C77C9B2451412BEEA7E757395541CE36C8089B2451419BF3A6F05739554103E1DE9C9A245141BA7005F95739554137F6B4A1992451413A14800C583955411F85EB1197245141F6285C3F583955419553C228942451416893282159395541EEABA9729324514134585658593955411062F5AD92245141D74BF193593955417E7BA641922451418118C3B45939554126F75DB78F245141C955BD7A5A395541D7A370FD8A245141666666065C395541864F68F69F245141B22370D56A3955412BEDB549A3245141EE798B2E6D3955419061AAC2A5245141EAB879ED6E395541EC51B82EB32451417B14AE67783955419A999959B824514133333303753955419A999909BB2451416666666673395541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>315463 - 349355
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000E000000EC51B82EB32451417B14AE67783955419A999959B824514133333303753955419A999909BB24514166666666733955411F85EBC1B7245141000000B068395541AE47E16AB52451410AD7A380633955410AD7A3E0B1245141295C8FC25E39554152B81EF5AD2451419A9999995B395541666666F6A82451413333337359395541F6285C1FA1245141EC51B80E58395541000000F09B245141EC51B8DE573955411F85EB1197245141F6285C3F58395541E17A14DE8F245141E17A146E5A395541D7A370FD8A245141666666065C395541EC51B82EB32451417B14AE6778395541
+</a>
+
+<b>
+010600000001000000010300000001000000250000009A999909BB2451416666666673395541830E2B26BA245141F0379B7F70395541CE72A26DB92451419F1AEB246E3955415E3BA03AB92451419CE3527E6D3955411401AA0FB824514181A2E9AD69395541C4B5084EB72451416EED37AF67395541C95E642AB7245141311B3E6067395541285F8C27B62451419B8BB1226539554162B779BEB5245141D42EDF39643955417CA8A822B5245141EFD4E21F633955412EBAACF6B3245141C525008E61395541E46920E0B22451414C2AD51860395541D291D6CDB2245141F3F254006039554165695A90B22451414907F6AD5F39554115C6F1F3B124514100046CDC5E3955410D22641AB0245141973A61545D39554152B81EF5AD2451419A9999995B395541666666F6A82451413333337359395541F6285C1FA1245141EC51B80E583955417AEEBADC9B245141BAE736E0573955412276C77C9B2451412BEEA7E757395541CE36C8089B2451419BF3A6F05739554103E1DE9C9A245141BA7005F95739554137F6B4A1992451413A14800C583955411F85EB1197245141F6285C3F583955419553C228942451416893282159395541EEABA9729324514134585658593955411062F5AD92245141D74BF193593955417E7BA641922451418118C3B45939554126F75DB78F245141C955BD7A5A395541D7A370FD8A245141666666065C395541864F68F69F245141B22370D56A3955412BEDB549A3245141EE798B2E6D3955419061AAC2A5245141EAB879ED6E395541EC51B82EB32451417B14AE67783955419A999959B824514133333303753955419A999909BB2451416666666673395541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>316209 - 2316364
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001800000085EB51781BE85041295C8FD28F285541B81E85DB20E8504185EB515898285541666666A621E85041713D0AC799285541EC51B87E25E85041713D0A479D285541E17A14BE28E85041AE47E1DAA2285541F6285C0F2CE85041A4703D4AA8285541000000702DE85041CDCCCCBCAC2855419A9999492EE850411F85EB01AE285541F6285CDF2FE85041D7A370DDB0285541A4703D5A31E8504148E17AD4B32855413D0AD7C334E85041EC51B8CEBA285541CDCCCCAC3BE85041EC51B83EB9285541AE47E1EA40E8504166666626B828554185EB51C84AE8504185EB5148B52855411F85EB2150E85041B81E85DBB3285541F6285CDF45E85041C3F528ACA8285541B81E856B35E8504152B81E5594285541AE47E1DA30E85041AE47E17A8E285541E17A144E23E85041666666A682285541D7A3701D1DE8504114AE4731862855413D0AD72317E850418FC2F55886285541F6285CDF15E85041000000E0862855410AD7A3E017E85041AE47E11A8A28554185EB51781BE85041295C8FD28F285541
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000004F9C2AEC15E850417498ABDA862855419A654C840FE85041D863574589285541D07C38F902E850417D1399038E2855418FC2F518FBE750413210AFDC9028554100000040FCE750419A9999A99D2855417B14AE67FCE750415C8FC285A128554166666626FEE75041A4703D6AA0285541EC51B8CE02E85041AE47E1AA9D2855418FC2F52809E850411F85EB719A2855413333335314E85041AE47E11A9428554185EB51781BE85041295C8FD28F2855414F9C2AEC15E850417498ABDA86285541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>316209 - 3433256
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001800000085EB51781BE85041295C8FD28F285541B81E85DB20E8504185EB515898285541666666A621E85041713D0AC799285541EC51B87E25E85041713D0A479D285541E17A14BE28E85041AE47E1DAA2285541F6285C0F2CE85041A4703D4AA8285541000000702DE85041CDCCCCBCAC2855419A9999492EE850411F85EB01AE285541F6285CDF2FE85041D7A370DDB0285541A4703D5A31E8504148E17AD4B32855413D0AD7C334E85041EC51B8CEBA285541CDCCCCAC3BE85041EC51B83EB9285541AE47E1EA40E8504166666626B828554185EB51C84AE8504185EB5148B52855411F85EB2150E85041B81E85DBB3285541F6285CDF45E85041C3F528ACA8285541B81E856B35E8504152B81E5594285541AE47E1DA30E85041AE47E17A8E285541E17A144E23E85041666666A682285541D7A3701D1DE8504114AE4731862855413D0AD72317E850418FC2F55886285541F6285CDF15E85041000000E0862855410AD7A3E017E85041AE47E11A8A28554185EB51781BE85041295C8FD28F285541
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000004F9C2AEC15E850417498ABDA862855419A654C840FE85041D863574589285541D07C38F902E850417D1399038E2855418FC2F518FBE750413210AFDC9028554100000040FCE750419A9999A99D2855417B14AE67FCE750415C8FC285A128554166666626FEE75041A4703D6AA0285541EC51B8CE02E85041AE47E1AA9D2855418FC2F52809E850411F85EB719A2855413333335314E85041AE47E11A9428554185EB51781BE85041295C8FD28F2855414F9C2AEC15E850417498ABDA86285541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>317014 - 3086572
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000010000000A4703D9A97485141F6285C2F92025541333333B38B4851411F85EB11900255413D0AD7038C485141295C8F5285025541666666568348514152B81E458102554148E17A54824851415C8FC2D594025541E17A145E8148514100000090A702554148E17A04834851413D0AD703A90255413D0AD74386485141F6285C7FAB02554152B81E058B485141CDCCCCCCAF0255413D0AD7238D4851415C8FC2C5B40255415C8FC2258F4851411F85EB11BE025541AE47E1EA9048514133333333C3025541EC51B89E944851410AD7A320CA025541713D0AB7944851418FC2F548CA025541295C8F62964851413D0AD7D3A9025541A4703D9A97485141F6285C2F92025541
+</a>
+
+<b>
+01060000000100000001030000000100000011000000DB4D9CA49448514143F77E04CA025541E33553DD95485141A64A9032B202554152B81EB58F485141295C8F02B2025541EC51B82E90485141000000C0A80255419A999999894851413D0AD7A3A8025541F6285C3F87485141713D0AB7AB0255410AD7A35087485141295C8F72AC02554152B81E058B485141CDCCCCCCAF025541F6285CEF8B485141295C8FF2B10255413D0AD7238D4851415C8FC2C5B4025541E96E2CF78D485141C6CB8698B8025541AD4EEBE28E48514157C45ADCBC025541DB3C24868F485141985D4329BF0255413525CC7E90485141379BF1F9C1025541F3E76F71924851415800F20DC60255413343C69593485141D60AEB30C8025541DB4D9CA49448514143F77E04CA025541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>317292 - 238812
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000200000022000000AE47E12AF6475141295C8F0216025541C3F528ECF8475141F6285C3F16025541A4703D1AFA475141C3F5286C16025541F6285CCFFE4751410AD7A320170255410AD7A3A0FF47514152B81E45170255415C8FC2450B485141F6285C9F180255417B14AE9713485141EC51B86E1702554148E17A9413485141AE47E18A16025541F6285CBF16485141000000201602554114AE47A121485141666666D616025541666666E622485141666666E6150255413D0AD7F323485141A4703DDA11025541C3F5289C26485141F6285C8F0C0255415C8FC23514485141B81E851B080255418FC2F5081348514185EB5158FA015541EC51B88E0F48514114AE4791EC0155417B14AE370E4851411F85EB91EF0155411F85EB110C485141B81E85DBF0015541EC51B87E0948514152B81E65F10155419A999999064851410AD7A3A0F20155415C8FC225024851413D0AD793F5015541AE47E10AF74751419A999929FE015541D7A3709DF64751419A999969FD015541E17A143EF147514114AE4721000255419A9999C9EB47514185EB5148030255419A999909E8475141F6285C6F060255418FC2F5F8E647514166666686080255411F85EBC1E6475141E17A146E0A025541A4703D5AE74751410AD7A3E00C0255413D0AD783E84751413D0AD7E30E0255419A9999D9EA47514148E17AD4110255415C8FC225F14751413D0AD783160255410AD7A310F44751411F85EBD115025541AE47E12AF6475141295C8F02160255410C00000014AE47B1F04751415C8FC2650D02554133333343EE475141000000B00D025541CDCCCC0CEC475141CDCCCC3C0C025541C3F5283CEA475141666666E608025541AE47E18AEB47514148E17A4407025541713D0A77ED475141F6285CFF05025541713D0A47EF4751418FC2F59805025541F6285C4FF147514152B81EB50502554133333353F247514148E17AD406025541B81E853BF34751413D0AD78309025541713D0AA7F2475141D7A370CD0B02554114AE47B1F04751415C8FC2650D025541
+</a>
+
+<b>
+0106000000010000000103000000020000002F0000005C8FC23514485141B81E851B0802554162DAB50014485141A37A29AE05025541BC5E79E413485141D38B373D05025541B418A5D712485141F6CEECBCFA015541A2AF664411485141384D5DF6F4015541196992371048514105EF37B6EF015541BFE51F6F0E4851412CFEF27BF001554196BBBCC60B485141AA65312DF1015541BD2F0D030A4851413A0798FCF0015541FF2AB8F0FF475141C9D90510F7015541AD024C6CF6475141EABFDC04FE01554187CB3F6DF547514178354C29FE015541A133E500F4475141383CB1F1FE015541611FB6A7F1475141C4A3642700025541D4AA0600E747514141D8273A0A025541DECD7086E747514120996F1D0D025541EE5919A0E9475141436BEC4310025541A2B83EE0EE475141299572BA14025541EB434D9DEF4751411B4FDF5F150255415C8FC225F14751413D0AD78316025541AF309245F14751415E15437C1602554111052FDDF347514131DB46C715025541B6A6D67CF44751417A9FB2DB15025541AE47E12AF6475141295C8F0216025541C3F528ECF8475141F6285C3F16025541A4703D1AFA475141C3F5286C16025541F6285CCFFE4751410AD7A320170255410AD7A3A0FF47514152B81E45170255415C8FC2450B485141F6285C9F18025541EACFC09B0E4851411DDF362518025541F04BB60D114851411125AFCB170255410FDE0FE81248514127A4D687170255417B14AE9713485141EC51B86E17025541A84BCC9413485141BD1186A11602554148E17A9413485141AE47E18A16025541F6285CBF16485141000000201602554114AE47A121485141666666D6160255419CB01645224851411E707A5D16025541C433159822485141F6EC7B0A16025541CCB37141234851418CA62B5E13025541C0FF9EF7234851410F4D341711025541E4DCC151254851410D7ECDAB0E025541F028FC4426485141167605970C02554123422B4E17485141F5801EEA08025541099318AE14485141F65DB4630802554160EDA2A21448514147C7DD35080255415C8FC23514485141B81E851B0802554109000000CD1A6183EC47514129BCD9A30D02554140C35733EB475141BEA3887009025541112C96C6EC475141EE17E05607025541A1DBA866EF475141DBD10B4A06025541007986C3F14751412906AB1307025541C4AD258DF2475141F5801EEA0802554109BF5AD0F2475141DD64D0530C025541B4217D73F047514128DF432A0E025541CD1A6183EC47514129BCD9A30D025541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>317299 - 290020
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000150000001F85EB11D04751417B14AEF74802554152B81E05D04751417B14AE474B025541C3F5287CD24751411F85EBF14D02554185EB5168D44751415C8FC2455002554100000090DF475141AE47E1FA4D025541713D0A97EE47514148E17A944B02554152B81E15F94751411F85EB814C0255417B14AE57F7475141C3F528CC45025541CDCCCC3CF6475141F6285C5F41025541F6285CDFF34751418FC2F5D83C0255411F85EB41F1475141666666C63802554114AE4771EE475141B81E859B350255410AD7A3A0EB475141295C8FF233025541713D0A77E94751415C8FC2E53302554185EB5158E6475141C3F5283C34025541E17A140EE3475141713D0AA735025541AE47E1AADE475141295C8F223802554148E17A04D947514114AE47613C02554133333343D7475141295C8F023F0255418FC2F588D247514152B81E25450255411F85EB11D04751417B14AEF748025541
+</a>
+
+<b>
+0106000000010000000103000000010000002400000000000090DF475141AE47E1FA4D025541822B36CDEC475141DA3699DD4B025541484421B3ED475141F5234BB34B025541814A81DAED475141D92397B24B025541713D0A97EE47514148E17A944B02554152B81E15F94751411F85EB814C0255417FC5A4B9F74751413377F04547025541CECD977CF54751415B4B9BEF3F0255411F36654FF54751419E0E21993F0255411122647CF4475141522469053E025541ACCE1A3AF4475141896795863D0255413091A553F2475141B703B1703A025541DF300EDAF1475141E67054B3390255412A02D87CF147514153662A22390255413E12C862F14751414BC893F93802554114AE4771EE475141B81E859B350255414D49F696EB475141551356F233025541AB0E5151EB475141CAD6B9F0330255419D68401DEB47514184A985EF33025541DED73741E947514132EFAB0F340255412BAA176DE6475141AF66D7AA34025541B79B1FD4E0475141BE3987E93602554183BD3FBCE0475141C26409F736025541D571E556E04751413D1E623037025541D2D74736E0475141316CD64237025541DC64F7B0DE47514155D0552A39025541ABF983F9D9475141FCD7DB8C3C0255412C3DA2E3D8475141793FAA8E3D02554183ED2F7CD8475141AA0648913E025541D6AE66DED6475141A4F59EC73F02554128709D40D547514182FB0568420255412307B008D04751414297ADA24A0255416EC02708D0475141815D4CBB4A025541584D45F4D3475141FD6D43B94F02554185EB5168D44751415C8FC2455002554100000090DF475141AE47E1FA4D025541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>318592 - 247559
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000600000005C8FC2756248514148E17A2419C55441B81E850B624851417B14AEE71BC55441A4703DFA61485141295C8F021FC554413D0AD763624851413333335322C55441000000E064485141E17A141E22C554416666664665485141000000F024C55441A4703DBA674851417B14AEE720C55441EC51B87E69485141F6285C3F1EC554419A9999196B4851411F85EB611BC55441C3F5284C6C485141713D0A6717C5544148E17A446D48514152B81EF50DC55441A4703D4A6E485141A4703D3A0AC554419A999919704851413D0AD74307C55441A4703D0A754851411F85EB4101C55441EC51B82E7A4851417B14AE37FCC454415C8FC2C584485141D7A370FDF3C4544114AE47F17D4851419A9999C9EDC45441D7A3706D794851415C8FC2D5EDC45441AE47E17A7148514148E17A94ECC454413D0AD7736F485141F6285CCFEBC45441666666266D485141713D0A17EAC45441713D0A476848514148E17AA4E4C45441E17A14DE65485141713D0AD7E2C45441AE47E17A62485141EC51B80EE1C45441666666C660485141CDCCCC3CE0C454418FC2F5685F4851418FC2F548DFC45441D7A3709D5E485141F6285C3FDDC454418FC2F5A85E485141A4703D1ADCC45441D7A3709D5E485141C3F5287CDAC45441D7A370AD5E485141AE47E12AD9C45441D7A3701D5E485141A4703D4AD8C45441CDCCCCDC5D4851419A999969D7C45441D7A3705D5E48514185EB5188D6C45441E17A144E5F48514185EB5138D6C45441F6285C4F6048514185EB5178D6C4544114AE47F16148514152B81E55D3C45441295C8F6263485141333333E3D0C45441000000D064485141AE47E12ACFC45441295C8FC26B4851411F85EB41C9C454413D0AD7F36D4851411F85EB41C7C45441CDCCCC2C6E485141713D0AF7C4C45441CDCCCCBC6D4851415C8FC295C3C45441B81E855B6C48514148E17A94C2C4544148E17A946A4851411F85EB71C2C45441666666766748514152B81EF5C2C45441295C8FB2634851415C8FC265C3C454410AD7A350614851415C8FC2E5C3C45441EC51B86E5F48514166666646C4C45441C3F528CC5C48514166666646C4C45441A4703D1A5B48514166666676C4C454418FC2F5B8594851417B14AE87C5C45441713D0A07584851418FC2F5B8C6C454415C8FC2C5564851419A999979C7C4544152B81EB5554851418FC2F5E8C6C4544114AE474152485141713D0A27C5C45441EC51B87E4F48514166666636C4C45441C3F5283C4D48514152B81E25C3C454419A9999494A4851413D0AD7A3C1C45441713D0AF7474851411F85EB01C0C4544152B81ED545485141EC51B8BEBCC454413D0AD75344485141B81E857BB9C45441295C8F224348514185EB5158B6C454411F85EB6142485141666666E6B3C45441C3F5281C424851415C8FC225B2C454411F85EB814048514152B81EB5B2C454419A999939394851419A999989B5C45441D7A3708D38485141CDCCCCCCB5C454418FC2F55839485141A4703DBAB7C45441A4703D2A3B485141EC51B87EBCC45441B81E851B3C4851410AD7A370BEC45441D7A3700D3E48514133333313C1C45441EC51B85E3F48514152B81EE5C2C45441F6285C0F40485141713D0AC7C4C4544152B81E154048514133333393C5C45441F6285CFF4148514152B81E25C8C45441C3F5287C4448514152B81E65CAC454418FC2F52849485141EC51B86ECCC45441295C8FA24E4851415C8FC2D5D3C454415C8FC2C564485141F6285C1FF2C454411F85EB9165485141333333C3F3C45441B81E850B66485141E17A144EF5C454418FC2F53866485141713D0AF7F6C45441333333A366485141A4703D1AF9C45441F6285CEF6648514100000000FBC45441F6285CEF66485141A4703D9AFCC4544148E17A846648514133333373FFC45441E17A146E67485141CDCCCC0CFFC454415C8FC21567485141B81E85FB00C554410AD7A3E0664851415C8FC26503C55441B81E85AB66485141666666B606C554410000003066485141B81E853B0AC554415C8FC2C5654851415C8FC2450FC55441F6285C7F654851413D0AD78312C55441295C8F52644851418FC2F55815C55441E17A14CE6248514152B81ED517C554415C8FC2756248514148E17A2419C55441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000654544AF684851411DA30119E5C454413CE0219C664851418729C095E3C45441D23F1D305F4851413BB23B78E3C45441210EC0EF5A48514190FC55AAE4C45441D2D7EF1760485141CBD38DB8EBC45441F58905E460485141A3F6C5CFECC454415C8FC2C564485141F6285C1FF2C454411F85EB9165485141333333C3F3C45441B81E850B66485141E17A144EF5C4544162990C326648514132D968B6F6C45441F7DE907167485141C6B53475FBC454413080B049674851415473F5C4FBC454410B04D9DE6A48514121280F1FF9C4544122D43DE56C485141DE62FDA4F1C45441E97A55CA6C4851414CF81BB0E9C45441654544AF684851411DA30119E5C45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>318592 - 328830
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000600000005C8FC2756248514148E17A2419C55441B81E850B624851417B14AEE71BC55441A4703DFA61485141295C8F021FC554413D0AD763624851413333335322C55441000000E064485141E17A141E22C554416666664665485141000000F024C55441A4703DBA674851417B14AEE720C55441EC51B87E69485141F6285C3F1EC554419A9999196B4851411F85EB611BC55441C3F5284C6C485141713D0A6717C5544148E17A446D48514152B81EF50DC55441A4703D4A6E485141A4703D3A0AC554419A999919704851413D0AD74307C55441A4703D0A754851411F85EB4101C55441EC51B82E7A4851417B14AE37FCC454415C8FC2C584485141D7A370FDF3C4544114AE47F17D4851419A9999C9EDC45441D7A3706D794851415C8FC2D5EDC45441AE47E17A7148514148E17A94ECC454413D0AD7736F485141F6285CCFEBC45441666666266D485141713D0A17EAC45441713D0A476848514148E17AA4E4C45441E17A14DE65485141713D0AD7E2C45441AE47E17A62485141EC51B80EE1C45441666666C660485141CDCCCC3CE0C454418FC2F5685F4851418FC2F548DFC45441D7A3709D5E485141F6285C3FDDC454418FC2F5A85E485141A4703D1ADCC45441D7A3709D5E485141C3F5287CDAC45441D7A370AD5E485141AE47E12AD9C45441D7A3701D5E485141A4703D4AD8C45441CDCCCCDC5D4851419A999969D7C45441D7A3705D5E48514185EB5188D6C45441E17A144E5F48514185EB5138D6C45441F6285C4F6048514185EB5178D6C4544114AE47F16148514152B81E55D3C45441295C8F6263485141333333E3D0C45441000000D064485141AE47E12ACFC45441295C8FC26B4851411F85EB41C9C454413D0AD7F36D4851411F85EB41C7C45441CDCCCC2C6E485141713D0AF7C4C45441CDCCCCBC6D4851415C8FC295C3C45441B81E855B6C48514148E17A94C2C4544148E17A946A4851411F85EB71C2C45441666666766748514152B81EF5C2C45441295C8FB2634851415C8FC265C3C454410AD7A350614851415C8FC2E5C3C45441EC51B86E5F48514166666646C4C45441C3F528CC5C48514166666646C4C45441A4703D1A5B48514166666676C4C454418FC2F5B8594851417B14AE87C5C45441713D0A07584851418FC2F5B8C6C454415C8FC2C5564851419A999979C7C4544152B81EB5554851418FC2F5E8C6C4544114AE474152485141713D0A27C5C45441EC51B87E4F48514166666636C4C45441C3F5283C4D48514152B81E25C3C454419A9999494A4851413D0AD7A3C1C45441713D0AF7474851411F85EB01C0C4544152B81ED545485141EC51B8BEBCC454413D0AD75344485141B81E857BB9C45441295C8F224348514185EB5158B6C454411F85EB6142485141666666E6B3C45441C3F5281C424851415C8FC225B2C454411F85EB814048514152B81EB5B2C454419A999939394851419A999989B5C45441D7A3708D38485141CDCCCCCCB5C454418FC2F55839485141A4703DBAB7C45441A4703D2A3B485141EC51B87EBCC45441B81E851B3C4851410AD7A370BEC45441D7A3700D3E48514133333313C1C45441EC51B85E3F48514152B81EE5C2C45441F6285C0F40485141713D0AC7C4C4544152B81E154048514133333393C5C45441F6285CFF4148514152B81E25C8C45441C3F5287C4448514152B81E65CAC454418FC2F52849485141EC51B86ECCC45441295C8FA24E4851415C8FC2D5D3C454415C8FC2C564485141F6285C1FF2C454411F85EB9165485141333333C3F3C45441B81E850B66485141E17A144EF5C454418FC2F53866485141713D0AF7F6C45441333333A366485141A4703D1AF9C45441F6285CEF6648514100000000FBC45441F6285CEF66485141A4703D9AFCC4544148E17A846648514133333373FFC45441E17A146E67485141CDCCCC0CFFC454415C8FC21567485141B81E85FB00C554410AD7A3E0664851415C8FC26503C55441B81E85AB66485141666666B606C554410000003066485141B81E853B0AC554415C8FC2C5654851415C8FC2450FC55441F6285C7F654851413D0AD78312C55441295C8F52644851418FC2F55815C55441E17A14CE6248514152B81ED517C554415C8FC2756248514148E17A2419C55441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000654544AF684851411DA30119E5C454413CE0219C664851418729C095E3C45441D23F1D305F4851413BB23B78E3C45441210EC0EF5A48514190FC55AAE4C45441D2D7EF1760485141CBD38DB8EBC45441F58905E460485141A3F6C5CFECC454415C8FC2C564485141F6285C1FF2C454411F85EB9165485141333333C3F3C45441B81E850B66485141E17A144EF5C4544162990C326648514132D968B6F6C45441F7DE907167485141C6B53475FBC454413080B049674851415473F5C4FBC454410B04D9DE6A48514121280F1FF9C4544122D43DE56C485141DE62FDA4F1C45441E97A55CA6C4851414CF81BB0E9C45441654544AF684851411DA30119E5C45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>318745 - 102751
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000003F000000D7A3704D2146514152B81E5508C15441D7A3706D214651411F85EBE108C15441B81E85FB224651419A9999F90CC15441666666462546514152B81EA50CC154410AD7A3803046514148E17A540DC154417B14AE373D465141666666160EC15441EC51B8DE474651411F85EBF10EC154413D0AD72351465141D7A3707D0FC1544166666636534651417B14AE870FC15441F6285C1F544651413D0AD7E30EC1544185EB5108554651411F85EB910DC15441AE47E12A564651418FC2F5A80BC15441CDCCCCFC56465141333333330AC154417B14AEF754465141B81E85BB09C1544114AE4721554651419A9999F908C15441EC51B88E564651419A9999C906C1544148E17AD454465141295C8FE205C154417B14AE37544651413333338305C15441333333635246514148E17AD404C1544166666606514651413333335304C15441E17A148E4F4651413D0AD7A303C154410AD7A3F04D46514185EB518803C15441A4703D1A4C465141B81E856B03C15441713D0A4748465141EC51B83E04C15441D7A3709D4546514152B81EF504C15441713D0A2744465141EC51B82E05C154413D0AD763424651411F85EB1105C154410AD7A390414651411F85EBE104C154410AD7A3404046514152B81E6504C154413D0AD7333F465141B81E852B04C154413D0AD7433E46514185EB51E803C15441000000403D465141E17A14EE02C15441666666463C4651417B14AEF702C15441333333133B4651417B14AE9702C15441CDCCCC6C3946514114AE471102C15441333333433846514114AE47E101C154413333339336465141E17A144E00C15441D7A370CD35465141D7A370BDFFC054416666667633465141AE47E17AFFC05441CDCCCC2C314651417B14AEA7FEC05441333333432F46514114AE4751FEC05441666666362E465141E17A140EFEC05441000000E02D465141AE47E1CAFDC054419A9999D92B465141E17A14AEFDC05441666666062B4651417B14AEB7FDC05441666666162A465141AE47E19AFDC0544166666686294651417B14AE57FDC05441000000D0254651417B14AE57FDC054410000001025465141AE47E16AFDC05441333333632446514148E17AD4FDC054419A9999292446514148E17A94FEC05441CDCCCC7C2346514114AE4771FFC05441333333B322465141AE47E13A00C15441333333232246514114AE472101C15441666666A62146514148E17A5402C15441CDCCCC6C214651417B14AEC702C15441CDCCCC0C214651417B14AE2703C1544133333303214651411F85EB2104C154419A9999F92046514185EB510805C154410000005020465141A4703D4A05C15441F6285C6F20465141000000C005C15441D7A370DD204651413D0AD70307C15441D7A3704D2146514152B81E5508C15441
+</a>
+
+<b>
+010600000001000000010300000001000000850000005E17DB582046514158997E6B05C154410CD11BEA2046514178A2FD2907C15441D7A3704D2146514152B81E5508C15441329B196421465141B6F8D2B808C15441011D017E21465141A3BC830D09C154418441619D214651413FFE166009C15441CA8EAAFA214651412E969A550AC154410EBF1B4E22465141D0A935310BC15441E4CA4F8C224651411017EBD40BC15441FD8221A1224651412005B60B0CC154411406E7F1224651413DC649E00CC1544119F4EF0F234651417070D4E60CC15441D705D1ED2346514132D4B8D60CC15441580F0A9924465141742A13BE0CC15441666666462546514152B81EA50CC154416A11B67029465141D0362DE60CC15441A72592732A4651413F4AF8F50CC15441E0F4CDE12C46514109D4EE1B0DC1544102A5FC7B2D46514195F856250DC15441A99CDD8D33465141E59105830DC15441370D1D3734465141BCD01A8D0DC15441808FAA2A37465141EAF51DBA0DC154412C3A840839465141ABC995D60DC154417B14AE373D465141666666160EC15441F461851D44465141E2BC8BA40EC1544128BAEE5347465141B379BFE60EC15441174A455F4D465141F031BB440FC15441C83D406850465141084B69720FC15441A232761F534651417F4035870FC1544197659B2454465141C89B3ADC0EC15441FC7179395446514101B4F5BD0EC15441A5D8F455544651415C2AA5940EC1544183049C89544651412E4DB8490EC154416ADDA342554651418D1EC72F0DC15441ACA11ECD55465141D8E1BD460CC15441B0164804564651413705EAE90BC154410DEEDCE0564651417A04F1640AC1544112AA2FC355465141A05B9EEA09C15441E58CD3F3544651419731ACCD09C15441CBBB28F95446514101C1DCBB09C154417B14AEF754465141B81E85BB09C1544114AE4721554651419A9999F908C154411AD39F42554651416CD180C608C1544189A556DD55465141D4DC21B707C154413BFC7780564651413C4E70DF06C154411F91002B56465141921A819506C1544142D00F5455465141DA73362506C15441BE40B98753465141E4B1934105C154419028BC545246514168601ECF04C1544166666606514651413333335304C154419551D9855046514110044C1704C15441AF45E6A34F46514172F101AE03C154416ED5DCD54E46514134EE939703C15441663941484D4651414ABD027E03C15441582B054D4C4651419405A16E03C15441921ECC7A4B46514116DBE88D03C15441C77FE6164A4651414EF3ABDA03C15441663AEADB494651411DDF64E703C1544135034150494651417659840504C1544134396B3949465141B634710A04C1544187EB05B64746514143FF866504C15441A0B82F6047465141A46A7F7C04C15441EF5D9AA046465141CD3AC4AF04C15441D7A3709D4546514152B81EF504C15441527642DF44465141B5E6601205C15441713D0A2744465141EC51B82E05C15441EF6F31E14346514101FE422A05C15441C113E149434651410A9F904705C15441CABF3794424651418E08021505C154413D0AD763424651411F85EB1105C154410AD7A390414651411F85EBE104C15441424EAF7441465141F26089D704C1544166DE26AD404651411AA56C8D04C15441E7D4009240465141E433578304C154411340D67E4046514113C2387C04C1544193D3AC3E3F465141BB80D72D04C154413D0AD7333F465141B81E852B04C15441C384702A3F465141494BE32804C154413D0AD7433E46514185EB51E803C15441C4FC45B53D465141DE47055F03C154412CE077773D465141CBBA7F2303C154417D043E553D465141E195890203C15441DAD70B6C3C4651414BCD7B0503C15441543BE02D3B465141012704A002C15441333333133B4651417B14AE9702C15441FFF716BE39465141E918252B02C15441DDA0305838465141AB5CAAE401C15441333333433846514114AE47E101C15441F7B7DB2737465141BBE5D3D800C15441C2F1A5E436465141B72C199A00C154411C5C1DD83546514109543FC5FFC05441C2E1A07F354651415E55CBB4FFC054418E1EA2F5344651413D2376A5FFC054416666667633465141AE47E17AFFC05441AE6AC3F0324651417AE4AE4AFFC054415DD5C24332465141D3226C6DFFC05441DD75787C3146514155E469C4FEC054415E4C508E304651410E3AB68BFEC0544120600A9F2F465141FEB57C61FEC0544106FBC6AA2E4651415ECB1661FEC0544168797D382E465141A73F9A0EFEC05441666666362E465141E17A140EFEC054416D4BCD242E46514156826400FEC054416FBB2D792D4651418BEE2AC5FDC054413D639F332D465141AE61EB1AFEC054418BA5CA8A2B465141F685A9B1FDC05441666666062B4651417B14AEB7FDC05441666666162A465141AE47E19AFDC054415033C5002A465141E740C990FDC0544191E0FAA729465141F8C45967FDC054418343F7CE284651417B14AE57FDC0544173D5DD64274651417B14AE57FDC054419990BF4D264651417B14AE57FDC05441499BCD4D25465141901EB364FDC0544112350BB22446514178354CA4FDC05441222CD15B24465141CBF816EDFDC054419A9999292446514148E17A94FEC05441CDCCCC7C2346514114AE4771FFC05441DE5E0E6D23465141041C0681FFC05441AB698DAC22465141C623844500C1544182A89C9A22465141038C386200C15441D1CBE69422465141AF865B6B00C154418E1031342246514185E5170601C1544193DF83AF214651410CF20A3E02C15441666666A62146514148E17A5402C15441CDCCCC6C214651417B14AEC702C1544160B1C66121465141E82FB4D202C1544193531C1A21465141B58D5E1A03C1544170012C09214651419BA7408603C1544133333303214651411F85EB2104C154419A9999F92046514185EB510805C154419C451AE920465141A470BB0E05C154415E17DB582046514158997E6B05C15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>318745 - 304245
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000003F000000D7A3704D2146514152B81E5508C15441D7A3706D214651411F85EBE108C15441B81E85FB224651419A9999F90CC15441666666462546514152B81EA50CC154410AD7A3803046514148E17A540DC154417B14AE373D465141666666160EC15441EC51B8DE474651411F85EBF10EC154413D0AD72351465141D7A3707D0FC1544166666636534651417B14AE870FC15441F6285C1F544651413D0AD7E30EC1544185EB5108554651411F85EB910DC15441AE47E12A564651418FC2F5A80BC15441CDCCCCFC56465141333333330AC154417B14AEF754465141B81E85BB09C1544114AE4721554651419A9999F908C15441EC51B88E564651419A9999C906C1544148E17AD454465141295C8FE205C154417B14AE37544651413333338305C15441333333635246514148E17AD404C1544166666606514651413333335304C15441E17A148E4F4651413D0AD7A303C154410AD7A3F04D46514185EB518803C15441A4703D1A4C465141B81E856B03C15441713D0A4748465141EC51B83E04C15441D7A3709D4546514152B81EF504C15441713D0A2744465141EC51B82E05C154413D0AD763424651411F85EB1105C154410AD7A390414651411F85EBE104C154410AD7A3404046514152B81E6504C154413D0AD7333F465141B81E852B04C154413D0AD7433E46514185EB51E803C15441000000403D465141E17A14EE02C15441666666463C4651417B14AEF702C15441333333133B4651417B14AE9702C15441CDCCCC6C3946514114AE471102C15441333333433846514114AE47E101C154413333339336465141E17A144E00C15441D7A370CD35465141D7A370BDFFC054416666667633465141AE47E17AFFC05441CDCCCC2C314651417B14AEA7FEC05441333333432F46514114AE4751FEC05441666666362E465141E17A140EFEC05441000000E02D465141AE47E1CAFDC054419A9999D92B465141E17A14AEFDC05441666666062B4651417B14AEB7FDC05441666666162A465141AE47E19AFDC0544166666686294651417B14AE57FDC05441000000D0254651417B14AE57FDC054410000001025465141AE47E16AFDC05441333333632446514148E17AD4FDC054419A9999292446514148E17A94FEC05441CDCCCC7C2346514114AE4771FFC05441333333B322465141AE47E13A00C15441333333232246514114AE472101C15441666666A62146514148E17A5402C15441CDCCCC6C214651417B14AEC702C15441CDCCCC0C214651417B14AE2703C1544133333303214651411F85EB2104C154419A9999F92046514185EB510805C154410000005020465141A4703D4A05C15441F6285C6F20465141000000C005C15441D7A370DD204651413D0AD70307C15441D7A3704D2146514152B81E5508C15441
+</a>
+
+<b>
+010600000001000000010300000001000000850000005E17DB582046514158997E6B05C154410CD11BEA2046514178A2FD2907C15441D7A3704D2146514152B81E5508C15441329B196421465141B6F8D2B808C15441011D017E21465141A3BC830D09C154418441619D214651413FFE166009C15441CA8EAAFA214651412E969A550AC154410EBF1B4E22465141D0A935310BC15441E4CA4F8C224651411017EBD40BC15441FD8221A1224651412005B60B0CC154411406E7F1224651413DC649E00CC1544119F4EF0F234651417070D4E60CC15441D705D1ED2346514132D4B8D60CC15441580F0A9924465141742A13BE0CC15441666666462546514152B81EA50CC154416A11B67029465141D0362DE60CC15441A72592732A4651413F4AF8F50CC15441E0F4CDE12C46514109D4EE1B0DC1544102A5FC7B2D46514195F856250DC15441A99CDD8D33465141E59105830DC15441370D1D3734465141BCD01A8D0DC15441808FAA2A37465141EAF51DBA0DC154412C3A840839465141ABC995D60DC154417B14AE373D465141666666160EC15441F461851D44465141E2BC8BA40EC1544128BAEE5347465141B379BFE60EC15441174A455F4D465141F031BB440FC15441C83D406850465141084B69720FC15441A232761F534651417F4035870FC1544197659B2454465141C89B3ADC0EC15441FC7179395446514101B4F5BD0EC15441A5D8F455544651415C2AA5940EC1544183049C89544651412E4DB8490EC154416ADDA342554651418D1EC72F0DC15441ACA11ECD55465141D8E1BD460CC15441B0164804564651413705EAE90BC154410DEEDCE0564651417A04F1640AC1544112AA2FC355465141A05B9EEA09C15441E58CD3F3544651419731ACCD09C15441CBBB28F95446514101C1DCBB09C154417B14AEF754465141B81E85BB09C1544114AE4721554651419A9999F908C154411AD39F42554651416CD180C608C1544189A556DD55465141D4DC21B707C154413BFC7780564651413C4E70DF06C154411F91002B56465141921A819506C1544142D00F5455465141DA73362506C15441BE40B98753465141E4B1934105C154419028BC545246514168601ECF04C1544166666606514651413333335304C154419551D9855046514110044C1704C15441AF45E6A34F46514172F101AE03C154416ED5DCD54E46514134EE939703C15441663941484D4651414ABD027E03C15441582B054D4C4651419405A16E03C15441921ECC7A4B46514116DBE88D03C15441C77FE6164A4651414EF3ABDA03C15441663AEADB494651411DDF64E703C1544135034150494651417659840504C1544134396B3949465141B634710A04C1544187EB05B64746514143FF866504C15441A0B82F6047465141A46A7F7C04C15441EF5D9AA046465141CD3AC4AF04C15441D7A3709D4546514152B81EF504C15441527642DF44465141B5E6601205C15441713D0A2744465141EC51B82E05C15441EF6F31E14346514101FE422A05C15441C113E149434651410A9F904705C15441CABF3794424651418E08021505C154413D0AD763424651411F85EB1105C154410AD7A390414651411F85EBE104C15441424EAF7441465141F26089D704C1544166DE26AD404651411AA56C8D04C15441E7D4009240465141E433578304C154411340D67E4046514113C2387C04C1544193D3AC3E3F465141BB80D72D04C154413D0AD7333F465141B81E852B04C15441C384702A3F465141494BE32804C154413D0AD7433E46514185EB51E803C15441C4FC45B53D465141DE47055F03C154412CE077773D465141CBBA7F2303C154417D043E553D465141E195890203C15441DAD70B6C3C4651414BCD7B0503C15441543BE02D3B465141012704A002C15441333333133B4651417B14AE9702C15441FFF716BE39465141E918252B02C15441DDA0305838465141AB5CAAE401C15441333333433846514114AE47E101C15441F7B7DB2737465141BBE5D3D800C15441C2F1A5E436465141B72C199A00C154411C5C1DD83546514109543FC5FFC05441C2E1A07F354651415E55CBB4FFC054418E1EA2F5344651413D2376A5FFC054416666667633465141AE47E17AFFC05441AE6AC3F0324651417AE4AE4AFFC054415DD5C24332465141D3226C6DFFC05441DD75787C3146514155E469C4FEC054415E4C508E304651410E3AB68BFEC0544120600A9F2F465141FEB57C61FEC0544106FBC6AA2E4651415ECB1661FEC0544168797D382E465141A73F9A0EFEC05441666666362E465141E17A140EFEC054416D4BCD242E46514156826400FEC054416FBB2D792D4651418BEE2AC5FDC054413D639F332D465141AE61EB1AFEC054418BA5CA8A2B465141F685A9B1FDC05441666666062B4651417B14AEB7FDC05441666666162A465141AE47E19AFDC054415033C5002A465141E740C990FDC0544191E0FAA729465141F8C45967FDC054418343F7CE284651417B14AE57FDC0544173D5DD64274651417B14AE57FDC054419990BF4D264651417B14AE57FDC05441499BCD4D25465141901EB364FDC0544112350BB22446514178354CA4FDC05441222CD15B24465141CBF816EDFDC054419A9999292446514148E17A94FEC05441CDCCCC7C2346514114AE4771FFC05441DE5E0E6D23465141041C0681FFC05441AB698DAC22465141C623844500C1544182A89C9A22465141038C386200C15441D1CBE69422465141AF865B6B00C154418E1031342246514185E5170601C1544193DF83AF214651410CF20A3E02C15441666666A62146514148E17A5402C15441CDCCCC6C214651417B14AEC702C1544160B1C66121465141E82FB4D202C1544193531C1A21465141B58D5E1A03C1544170012C09214651419BA7408603C1544133333303214651411F85EB2104C154419A9999F92046514185EB510805C154419C451AE920465141A470BB0E05C154415E17DB582046514158997E6B05C15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>318747 - 58337
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000840000001F85EBA1A64551411F85EBC14EC15441295C8F42A6455141A4703DEA4FC154413D0AD7C3A5455141713D0A4751C154410AD7A390A44551410AD7A34053C154410AD7A3A0C0455141000000404FC154417B14AE47C9455141000000404DC1544185EB51E8D1455141EC51B8CE4AC15441D7A3708DD745514114AE47A148C154413D0AD753DD455141713D0AE745C154413D0AD7D3E24551411F85EB1142C154417B14AE07E7455141E17A148E3EC154411F85EB31ED455141C3F5286C38C1544100000090F2455141C3F5286C33C1544133333313F745514148E17AA430C15441713D0AA7FD455141713D0A372CC154415C8FC2C5014651415C8FC2E529C154415C8FC235054651418FC2F58826C15441C3F5289C0746514114AE476123C1544152B81EC50946514114AE47A11FC15441295C8FF2074651419A9999F91CC154419A99994908465141713D0A171BC15441CDCCCCCC0A4651413D0AD7A319C154419A9999890C4651411F85EB6118C1544148E17A940E465141AE47E14A16C15441295C8F620B46514148E17A2413C15441F6285CDF0A46514185EB519812C15441E17A14CE084651415C8FC2D513C154410000003007465141713D0AE714C154413D0AD7530546514114AE47B116C15441D7A370BD044651413333337317C15441A4703D6A0246514152B81E4519C154419A9999D900465141F6285CFF1AC1544133333393FF455141F6285CAF1CC15441CDCCCC4CFF455141CDCCCC3C1DC1544152B81EA5FE455141666666A61DC154410AD7A370FD455141D7A3704D1FC15441A4703D3AFC4551417B14AE5720C1544166666666FB4551415C8FC2E523C1544185EB5188FA45514185EB515825C1544185EB5118F8455141F6285C1F27C154417B14AE37F3455141295C8FA22AC15441295C8F72F0455141A4703DEA2BC154410AD7A300EF455141F6285CCF2EC15441E17A146EED455141F6285C5F31C1544100000090EC455141B81E853B33C1544114AE47F1EB4551417B14AED734C15441295C8F72EB4551415C8FC2D535C1544114AE47A1E94551413333331337C15441A4703D9AE7455141B81E855B38C15441C3F528DCE6455141F6285CCF38C1544133333313E64551417B14AEF739C1544152B81EF5E44551415C8FC2153BC15441713D0A17E44551418FC2F5083CC154413D0AD743E3455141713D0AC73CC15441666666E6E14551415C8FC2A53DC154417B14AE47E145514148E17A243EC1544166666656DF455141EC51B86E3EC1544114AE4791DC45514185EB51B83EC154419A999949DB455141D7A370CD3EC15441E17A142ED9455141333333C33EC15441AE47E11AD845514185EB51F83EC15441000000A0D6455141333333933FC1544133333323D4455141666666B63FC154419A999979D34551410000004040C154417B14AEE7D14551410000006040C154415C8FC255D0455141F6285C9F40C15441713D0A97CF4551419A9999E940C1544133333323CF455141713D0A2742C15441F6285C4FCE45514114AE475142C1544152B81E25CE4551411F85EB1142C15441E17A14CECC45514185EB51F841C15441E17A14EECB45514152B81E6542C15441C3F5283CCB455141E17A14DE42C1544152B81EB5CA4551413D0AD78343C15441295C8F32CA4551411F85EB7144C154417B14AE77C84551413D0AD76346C15441D7A3709DC7455141D7A3707D46C15441E17A14CEC64551410AD7A31047C154410AD7A300C645514114AE475147C1544185EB51F8C4455141C3F5285C47C15441EC51B84EC445514114AE473147C1544152B81EC5C3455141D7A370BD46C1544185EB5148C2455141D7A370BD46C15441F6285C9FC1455141CDCCCCFC46C154413D0AD773C04551411F85EB3147C154419A999939BF455141AE47E1DA47C1544166666626BE4551419A99995948C154418FC2F5E8BC455141333333E348C15441AE47E10ABC455141333333E348C1544114AE4781BB455141333333A348C1544114AE4731B9455141E17A145E49C15441C3F528ACB8455141AE47E1AA49C1544148E17A54B7455141C3F528CC49C1544166666696B6455141000000804AC15441295C8FE2B545514152B81E954AC1544148E17A84B5455141C3F5281C4AC15441E17A144EB5455141C3F528EC49C15441F6285CCFB4455141C3F528EC49C1544100000050B44551415C8FC2354AC154415C8FC2C5B3455141F6285C7F4AC15441CDCCCC5CB3455141F6285CBF4AC15441EC51B89EB245514152B81E954AC15441000000E0B1455141B81E852B4AC15441F6285C0FB145514152B81E054AC154411F85EB61B0455141713D0A274AC15441E17A144EB0455141CDCCCC8C49C15441AE47E13AAF4551411F85EB8149C1544114AE47B1AE4551417B14AE5749C15441713D0A67AE4551413333330349C15441CDCCCC3CAE4551410000001048C154417B14AE27AE4551416666668647C15441CDCCCC3CAE455141CDCCCCDC46C15441333333B3AD4551418FC2F52846C154413D0AD793AD455141B81E85EB44C1544148E17A34AD4551417B14AE3744C15441000000C0AC455141E17A14CE43C154411F85EBC1AB4551413D0AD7A343C15441D7A3708DAB455141EC51B86E43C15441AE47E11AAA45514148E17A4443C15441C3F5285CA9455141EC51B84E43C15441333333B3A8455141EC51B84E43C15441F6285CFFA745514152B81E0543C1544114AE47E1A64551415C8FC2C542C1544185EB5158A64551416666664642C15441E17A14EEA545514114AE473142C154419A9999B9A54551410AD7A37042C1544185EB51A8A3455141713D0A2742C15441713D0A87A345514185EB51B842C154413D0AD7A3A5455141E17A14EE48C154411F85EBA1A6455141D7A3709D4BC15441C3F528CCA645514152B81E454DC154411F85EBA1A64551411F85EBC14EC15441
+</a>
+
+<b>
+010600000001000000010300000001000000850000000AF814E60146514104AF24C629C154415C8FC235054651418FC2F58826C15441C3F5289C0746514114AE476123C1544152B81EC50946514114AE47A11FC15441295C8FF2074651419A9999F91CC154419A99994908465141713D0A171BC15441CDCCCCCC0A4651413D0AD7A319C154419A9999890C4651411F85EB6118C1544148E17A940E465141AE47E14A16C15441295C8F620B46514148E17A2413C15441F6285CDF0A46514185EB519812C15441E17A14CE084651415C8FC2D513C154410000003007465141713D0AE714C154413D0AD7530546514114AE47B116C15441D7A370BD044651413333337317C15441A4703D6A0246514152B81E4519C154419A9999D900465141F6285CFF1AC1544133333393FF455141F6285CAF1CC15441CDCCCC4CFF455141CDCCCC3C1DC1544152B81EA5FE455141666666A61DC154410AD7A370FD455141D7A3704D1FC15441A4703D3AFC4551417B14AE5720C1544166666666FB4551415C8FC2E523C1544185EB5188FA45514185EB515825C1544185EB5118F8455141F6285C1F27C154417B14AE37F3455141295C8FA22AC15441295C8F72F0455141A4703DEA2BC154410AD7A300EF455141F6285CCF2EC15441E17A146EED455141F6285C5F31C1544100000090EC455141B81E853B33C1544114AE47F1EB4551417B14AED734C15441295C8F72EB4551415C8FC2D535C1544114AE47A1E94551413333331337C15441A4703D9AE7455141B81E855B38C15441C3F528DCE6455141F6285CCF38C1544133333313E64551417B14AEF739C1544152B81EF5E44551415C8FC2153BC15441713D0A17E44551418FC2F5083CC154413D0AD743E3455141713D0AC73CC15441666666E6E14551415C8FC2A53DC154417B14AE47E145514148E17A243EC1544166666656DF455141EC51B86E3EC1544114AE4791DC45514185EB51B83EC154419A999949DB455141D7A370CD3EC15441E17A142ED9455141333333C33EC15441AE47E11AD845514185EB51F83EC15441000000A0D6455141333333933FC1544133333323D4455141666666B63FC154419A999979D34551410000004040C154417B14AEE7D14551410000006040C154415C8FC255D0455141F6285C9F40C15441713D0A97CF4551419A9999E940C1544133333323CF455141713D0A2742C15441F6285C4FCE45514114AE475142C1544152B81E25CE4551411F85EB1142C15441E17A14CECC45514185EB51F841C15441E17A14EECB45514152B81E6542C15441C3F5283CCB455141E17A14DE42C1544152B81EB5CA4551413D0AD78343C15441295C8F32CA4551411F85EB7144C154417B14AE77C84551413D0AD76346C15441D7A3709DC7455141D7A3707D46C15441E17A14CEC64551410AD7A31047C154410AD7A300C645514114AE475147C1544185EB51F8C4455141C3F5285C47C15441EC51B84EC445514114AE473147C1544152B81EC5C3455141D7A370BD46C1544185EB5148C2455141D7A370BD46C15441F6285C9FC1455141CDCCCCFC46C154413D0AD773C04551411F85EB3147C154419A999939BF455141AE47E1DA47C1544166666626BE4551419A99995948C154418FC2F5E8BC455141333333E348C15441AE47E10ABC455141333333E348C1544114AE4781BB455141333333A348C1544114AE4731B9455141E17A145E49C15441C3F528ACB8455141AE47E1AA49C1544148E17A54B7455141C3F528CC49C1544166666696B6455141000000804AC15441295C8FE2B545514152B81E954AC1544148E17A84B5455141C3F5281C4AC15441E17A144EB5455141C3F528EC49C15441F6285CCFB4455141C3F528EC49C1544100000050B44551415C8FC2354AC154415C8FC2C5B3455141F6285C7F4AC15441CDCCCC5CB3455141F6285CBF4AC15441EC51B89EB245514152B81E954AC15441000000E0B1455141B81E852B4AC15441F6285C0FB145514152B81E054AC154411F85EB61B0455141713D0A274AC15441E17A144EB0455141CDCCCC8C49C15441AE47E13AAF4551411F85EB8149C1544114AE47B1AE4551417B14AE5749C15441713D0A67AE4551413333330349C15441CDCCCC3CAE4551410000001048C154417B14AE27AE4551416666668647C15441CDCCCC3CAE455141CDCCCCDC46C15441333333B3AD4551418FC2F52846C154413D0AD793AD455141B81E85EB44C1544148E17A34AD4551417B14AE3744C15441000000C0AC455141E17A14CE43C154411F85EBC1AB4551413D0AD7A343C15441D7A3708DAB455141EC51B86E43C15441AE47E11AAA45514148E17A4443C15441C3F5285CA9455141EC51B84E43C15441333333B3A8455141EC51B84E43C15441F6285CFFA745514152B81E0543C1544114AE47E1A64551415C8FC2C542C1544185EB5158A64551416666664642C15441E17A14EEA545514114AE473142C154419A9999B9A54551410AD7A37042C1544185EB51A8A3455141713D0A2742C15441713D0A87A345514185EB51B842C154413D0AD7A3A5455141E17A14EE48C154411F85EBA1A6455141D7A3709D4BC15441C3F528CCA645514152B81E454DC154411F85EBA1A64551411F85EBC14EC15441295C8F42A6455141A4703DEA4FC154413D0AD7C3A5455141713D0A4751C154410AD7A390A44551410AD7A34053C154410AD7A3A0C0455141000000404FC154417B14AE47C9455141000000404DC1544185EB51E8D1455141EC51B8CE4AC15441D7A3708DD745514114AE47A148C154413D0AD753DD455141713D0AE745C154413D0AD7D3E24551411F85EB1142C154417B14AE07E7455141E17A148E3EC154411F85EB31ED455141C3F5286C38C1544100000090F2455141C3F5286C33C1544133333313F745514148E17AA430C15441713D0AA7FD455141713D0A372CC15441D4962CA40146514129EBA6F829C154410AF814E60146514104AF24C629C15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>198525 - 198720
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001D00000066C51D4753F55041B8F5A7A8420C5541E6E8A7DB52F550417879C420440C55410D5E097951F5504185CB522F460C5541E7BDE45650F55041386FB846470C5541C11DC0344FF55041041AA048480C554178FA219E4EF55041DFFECB1F490C55416F17F7B952F55041B04871F64B0C5541EDBCE11655F55041C096EC844D0C5541977771F859F5504113B59039500C5541D2C0A3755FF55041C47FF3C4520C5541969AA99163F55041C856B318540C55411796D9FF65F55041903BC5FE530C554143EE31506AF550418169138B530C55417BF4CFDC6AF55041B7A046BD510C5541765CE0F36AF55041A06BAD76510C5541629B71276CF55041F9B66D7E4F0C5541F237EF506DF5504173CD27944D0C554100A3D03D6EF55041224D20A44B0C5541CA5361C56EF550417955A6C44A0C55413C8C842B6CF550415E3AA0ED4A0C55418ABD5B8F68F5504144331E034B0C55414AA4DDD465F55041AB4F26AD4A0C5541F0CFAF9F63F55041180B760B4A0C55419EB1B08A62F55041FA9206A0490C554194CD28E15DF55041B5A08113470C5541F7E3F15057F55041DAC7111A420C55419C073D8E55F550417F4960C1400C55413955925C54F55041E29058E63F0C554166C51D4753F55041B8F5A7A8420C5541
+</a>
+
+<b>
+0106000000010000000103000000010000001800000014AE47B164F5504148E17A64540C5541AE47E19A62F550417B14AED7530C5541E17A14BE5FF5504152B81EE5520C5541F6285CBF5CF550410AD7A390510C554185EB51585AF55041CDCCCC6C500C5541CDCCCCCC57F550410AD7A3104F0C5541AE47E10A55F55041E17A147E4D0C554185EB515853F550413D0AD7634C0C5541E17A143E4EF55041D7A370DD480C55413D0AD7434DF55041E17A142E4A0C5541333333734CF550417B14AE474B0C5541B81E855B4BF55041E17A146E4C0C5541D7A370FD4AF55041D7A370CD4C0C5541295C8FB24AF550419A9999B94C0C5541A4703D1A4CF5504152B81EF5520C55413D0AD79353F5504100000040560C5541C3F528BC5CF550417B14AED75A0C5541333333335FF5504148E17A245C0C5541E17A144E63F550413D0AD7E35D0C5541A4703D7A68F55041F6285C4F5E0C554114AE471169F55041AE47E13A5E0C5541713D0AF769F55041295C8F52550C5541E17A144E68F55041CDCCCC5C550C554114AE47B164F5504148E17A64540C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>198525 - 1443905
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001D00000066C51D4753F55041B8F5A7A8420C5541E6E8A7DB52F550417879C420440C55410D5E097951F5504185CB522F460C5541E7BDE45650F55041386FB846470C5541C11DC0344FF55041041AA048480C554178FA219E4EF55041DFFECB1F490C55416F17F7B952F55041B04871F64B0C5541EDBCE11655F55041C096EC844D0C5541977771F859F5504113B59039500C5541D2C0A3755FF55041C47FF3C4520C5541969AA99163F55041C856B318540C55411796D9FF65F55041903BC5FE530C554143EE31506AF550418169138B530C55417BF4CFDC6AF55041B7A046BD510C5541765CE0F36AF55041A06BAD76510C5541629B71276CF55041F9B66D7E4F0C5541F237EF506DF5504173CD27944D0C554100A3D03D6EF55041224D20A44B0C5541CA5361C56EF550417955A6C44A0C55413C8C842B6CF550415E3AA0ED4A0C55418ABD5B8F68F5504144331E034B0C55414AA4DDD465F55041AB4F26AD4A0C5541F0CFAF9F63F55041180B760B4A0C55419EB1B08A62F55041FA9206A0490C554194CD28E15DF55041B5A08113470C5541F7E3F15057F55041DAC7111A420C55419C073D8E55F550417F4960C1400C55413955925C54F55041E29058E63F0C554166C51D4753F55041B8F5A7A8420C5541
+</a>
+
+<b>
+0106000000010000000103000000010000001800000014AE47B164F5504148E17A64540C5541AE47E19A62F550417B14AED7530C5541E17A14BE5FF5504152B81EE5520C5541F6285CBF5CF550410AD7A390510C554185EB51585AF55041CDCCCC6C500C5541CDCCCCCC57F550410AD7A3104F0C5541AE47E10A55F55041E17A147E4D0C554185EB515853F550413D0AD7634C0C5541E17A143E4EF55041D7A370DD480C55413D0AD7434DF55041E17A142E4A0C5541333333734CF550417B14AE474B0C5541B81E855B4BF55041E17A146E4C0C5541D7A370FD4AF55041D7A370CD4C0C5541295C8FB24AF550419A9999B94C0C5541A4703D1A4CF5504152B81EF5520C55413D0AD79353F5504100000040560C5541C3F528BC5CF550417B14AED75A0C5541333333335FF5504148E17A245C0C5541E17A144E63F550413D0AD7E35D0C5541A4703D7A68F55041F6285C4F5E0C554114AE471169F55041AE47E13A5E0C5541713D0AF769F55041295C8F52550C5541E17A144E68F55041CDCCCC5C550C554114AE47B164F5504148E17A64540C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>198525 - 4130688
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001D00000066C51D4753F55041B8F5A7A8420C5541E6E8A7DB52F550417879C420440C55410D5E097951F5504185CB522F460C5541E7BDE45650F55041386FB846470C5541C11DC0344FF55041041AA048480C554178FA219E4EF55041DFFECB1F490C55416F17F7B952F55041B04871F64B0C5541EDBCE11655F55041C096EC844D0C5541977771F859F5504113B59039500C5541D2C0A3755FF55041C47FF3C4520C5541969AA99163F55041C856B318540C55411796D9FF65F55041903BC5FE530C554143EE31506AF550418169138B530C55417BF4CFDC6AF55041B7A046BD510C5541765CE0F36AF55041A06BAD76510C5541629B71276CF55041F9B66D7E4F0C5541F237EF506DF5504173CD27944D0C554100A3D03D6EF55041224D20A44B0C5541CA5361C56EF550417955A6C44A0C55413C8C842B6CF550415E3AA0ED4A0C55418ABD5B8F68F5504144331E034B0C55414AA4DDD465F55041AB4F26AD4A0C5541F0CFAF9F63F55041180B760B4A0C55419EB1B08A62F55041FA9206A0490C554194CD28E15DF55041B5A08113470C5541F7E3F15057F55041DAC7111A420C55419C073D8E55F550417F4960C1400C55413955925C54F55041E29058E63F0C554166C51D4753F55041B8F5A7A8420C5541
+</a>
+
+<b>
+0106000000010000000103000000010000001800000014AE47B164F5504148E17A64540C5541AE47E19A62F550417B14AED7530C5541E17A14BE5FF5504152B81EE5520C5541F6285CBF5CF550410AD7A390510C554185EB51585AF55041CDCCCC6C500C5541CDCCCCCC57F550410AD7A3104F0C5541AE47E10A55F55041E17A147E4D0C554185EB515853F550413D0AD7634C0C5541E17A143E4EF55041D7A370DD480C55413D0AD7434DF55041E17A142E4A0C5541333333734CF550417B14AE474B0C5541B81E855B4BF55041E17A146E4C0C5541D7A370FD4AF55041D7A370CD4C0C5541295C8FB24AF550419A9999B94C0C5541A4703D1A4CF5504152B81EF5520C55413D0AD79353F5504100000040560C5541C3F528BC5CF550417B14AED75A0C5541333333335FF5504148E17A245C0C5541E17A144E63F550413D0AD7E35D0C5541A4703D7A68F55041F6285C4F5E0C554114AE471169F55041AE47E13A5E0C5541713D0AF769F55041295C8F52550C5541E17A144E68F55041CDCCCC5C550C554114AE47B164F5504148E17A64540C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>319825 - 56431
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000E0000003333331355C15041CDCCCC4C0F4B5541333333A35CC15041333333B30F4B55415C8FC25572C150419A9999D9104B5541295C8FC274C15041AE47E16A0B4B5541F6285C2F76C15041B81E85BB0A4B55410AD7A30077C15041D7A370FD084B554152B81E657EC1504148E17AB4004B5541F6285C4F87C1504148E17A64FA4A55418FC2F5685FC1504100000030DF4A5541E17A140E5FC1504133333343DF4A5541713D0AB745C150411F85EBB1E44A55419A99992940C15041666666E6E54A55418FC2F5283EC1504185EB51180E4B55413333331355C15041CDCCCC4C0F4B5541
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000E17A140E5FC1504133333343DF4A5541D9341E2B5AC1504115FF624FE04A5541AB79389C54C15041E3046F80E14A5541F296A65E50C15041B1B22969E24A5541B3FDB06A49C150419523C2E6E34A554138E099B445C15041E50473B2E44A55410F89B6B441C150416A1FA790E54A55419A99992940C15041666666E6E54A554192770F353FC150410C0CE612F94A5541D9E93E2C3EC15041110FEF0F0E4B55416EE0484E3EC15041C761481A0E4B55413333331355C15041CDCCCC4C0F4B5541333333A35CC15041333333B30F4B55415C8FC25572C150419A9999D9104B5541B73F039674C150411BD7ACCE0B4B5541295C8FC274C15041AE47E16A0B4B5541FA5CAB6A75C150413ACC111A0B4B554137DD27A675C150413F6E79FD0A4B55412566F81976C1504195014AB50A4B5541BF61E66776C150419C5601430A4B55410AD7A30077C15041D7A370FD084B55415FFDEC3B77C150415625FFBA084B554119D11DC579C15041D9C76DE3054B554135EAEC257BC15041586A0658044B55411BD2CC747BC1504134BBA0FF034B554152B81E657EC1504148E17AB4004B5541A3FB82F183C1504194FFBBC6FC4A55414095A44A87C15041A115C667FA4A5541AD91580B87C1504172241B36FA4A55415A8A859D84C15041EEB7208EF84A554130785BCE80C15041215F3BF5F54A55418DAE108C7BC150419B454A5FF24A554128DCE2E578C15041D53BE390F04A55414D3CBDDD78C150417C31558BF04A5541CC7EFC8575C150418FEBDA43EE4A5541E746C82F74C15041F6C5875AED4A554194AACE9F6CC15041CF7B8632E84A55419E81A7016AC15041EA5F9869E64A5541CB0FA28365C1504129097A59E34A5541B35C14AC5FC15041359BC35DDF4A554178FAA3605FC1504130F4C131DF4A5541E17A140E5FC1504133333343DF4A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>319873 - 130563
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000E00000052B81E85ADC050410AD7A3B0FA4A55411F85EB41ADC050419A999939F64A5541AE47E17AACC050415C8FC205E94A55413D0AD70387C05041295C8FC2F04A5541AE47E16A84C050419A999999F14A5541CDCCCC2C81C05041F6285C0FF34A5541000000D07DC05041E17A14FEF54A5541295C8FA278C05041D7A370ADFE4A5541EC51B8EE79C0504166666646FF4A55411F85EB617CC050410AD7A3A0FE4A55413D0AD73395C050411F85EB31F94A5541666666269DC0504133333323F94A5541AE47E1BAA7C050413D0AD723FB4A554152B81E85ADC050410AD7A3B0FA4A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000A18758D579C05041B46CD2AAFC4A5541A92395E878C050414908FB37FE4A55414B4D2FD378C05041E3EDD4C3FE4A5541D19862FF79C05041B685E53DFF4A5541480C8C617AC0504172870D28FF4A55411F85EB617CC050410AD7A3A0FE4A55418266444593C05041DC892B9EF94A5541EA9CB80195C05041BD50443BF94A5541C5D6220995C05041BD50443BF94A55413D0AD73395C050411F85EB31F94A5541666666269DC0504133333323F94A5541942052609EC0504103D29D5EF94A55413E5C8FDAA7C05041E30E2716FB4A55418B0D2704A9C05041E3B53F0AFB4A5541895E25C4A9C05041E1BC53FBFA4A5541A2C41B69ADC05041F62AD1B2FA4A5541D7A779CEACC0504180134491EE4A5541AE47E17AACC050415C8FC205E94A5541520F6E048CC0504171B315BAEF4A5541EEA472FC86C050417956F3C4F04A55410407915484C05041BAA7A5A3F14A554117A326C783C050410A8052E3F14A554167E6138482C05041B8D9CA74F24A55418F0B3DC881C050415AE95EC9F24A55415FA07DAB80C05041B7102280F34A5541648AE0697EC05041977FE177F54A5541FCE2F1F17DC050417CDD79E0F54A55417E1312BF7CC05041B6D1E7C7F74A5541A18758D579C05041B46CD2AAFC4A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>319873 - 418284
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000E00000052B81E85ADC050410AD7A3B0FA4A55411F85EB41ADC050419A999939F64A5541AE47E17AACC050415C8FC205E94A55413D0AD70387C05041295C8FC2F04A5541AE47E16A84C050419A999999F14A5541CDCCCC2C81C05041F6285C0FF34A5541000000D07DC05041E17A14FEF54A5541295C8FA278C05041D7A370ADFE4A5541EC51B8EE79C0504166666646FF4A55411F85EB617CC050410AD7A3A0FE4A55413D0AD73395C050411F85EB31F94A5541666666269DC0504133333323F94A5541AE47E1BAA7C050413D0AD723FB4A554152B81E85ADC050410AD7A3B0FA4A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000A18758D579C05041B46CD2AAFC4A5541A92395E878C050414908FB37FE4A55414B4D2FD378C05041E3EDD4C3FE4A5541D19862FF79C05041B685E53DFF4A5541480C8C617AC0504172870D28FF4A55411F85EB617CC050410AD7A3A0FE4A55418266444593C05041DC892B9EF94A5541EA9CB80195C05041BD50443BF94A5541C5D6220995C05041BD50443BF94A55413D0AD73395C050411F85EB31F94A5541666666269DC0504133333323F94A5541942052609EC0504103D29D5EF94A55413E5C8FDAA7C05041E30E2716FB4A55418B0D2704A9C05041E3B53F0AFB4A5541895E25C4A9C05041E1BC53FBFA4A5541A2C41B69ADC05041F62AD1B2FA4A5541D7A779CEACC0504180134491EE4A5541AE47E17AACC050415C8FC205E94A5541520F6E048CC0504171B315BAEF4A5541EEA472FC86C050417956F3C4F04A55410407915484C05041BAA7A5A3F14A554117A326C783C050410A8052E3F14A554167E6138482C05041B8D9CA74F24A55418F0B3DC881C050415AE95EC9F24A55415FA07DAB80C05041B7102280F34A5541648AE0697EC05041977FE177F54A5541FCE2F1F17DC050417CDD79E0F54A55417E1312BF7CC05041B6D1E7C7F74A5541A18758D579C05041B46CD2AAFC4A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>319903 - 56432
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000016000000295C8F8253C050411F85EB61494C5541713D0A4752C050418FC2F5E8494C55418FC2F53851C05041C3F528EC454C55415C8FC27550C0504166666676424C55410AD7A32045C0504148E17A84424C5541CDCCCCBC45C05041B81E852B494C5541D7A370FD46C05041713D0AF74E4C5541295C8F7248C05041B81E858B534C5541713D0A574AC05041A4703DAA584C5541666666664CC05041B81E856B5D4C5541C3F5284C50C05041000000D0644C55413D0AD7F356C050410AD7A350704C5541713D0A2759C050413D0AD7336E4C5541E17A145E62C05041713D0A17604C5541713D0A8770C05041000000504D4C5541F6285C5F76C050417B14AE47424C554152B81E3568C050418FC2F558424C55413333336367C05041B81E850B444C5541EC51B87E58C05041CDCCCC6C424C5541CDCCCCCC54C0504114AE4771424C5541EC51B89E55C05041713D0A37464C5541295C8F8253C050411F85EB61494C5541
+</a>
+
+<b>
+0106000000010000000103000000010000003F000000E110425758C0504145A5FC6C424C5541286FCAD554C05041C999A49A424C55419426020755C05041B7FA127D434C5541EC51B89E55C05041713D0A37464C5541295C8F8253C050411F85EB61494C554183F9919952C05041D042A3C5494C5541E97F024C52C05041423ED5E6494C5541713D0A4752C050418FC2F5E8494C55418FC2F53851C05041C3F528EC454C554127FFA18250C050418B1ED0B0424C55412677176550C05041071C7B76424C5541FD3729B44AC05041C1438D7D424C5541759F60C948C050413209EF7F424C5541F32C0C4445C0504159E34E84424C554132DC994A45C05041B488184E444C5541CED0898B45C0504149084912474C55418D4AC31046C050419FAEFEAF4A4C5541E131263C46C050417982BB784B4C5541FB66F66646C05041719CD13E4C4C5541A7D3B34047C05041D33E67CA4F4C55415C16404048C05041BEB76DED524C5541505B66EB49C05041254F0787574C554191EA1BAC4AC0504169D0996E594C55417ED447BC4BC050414469D7E25B4C5541C287F01F4EC05041253200B1604C55419BDECEE051C05041BFC4648B674C55411C74CDF351C05041DC4139AC674C5541C8F1FD1A52C050415969F5EF674C5541D2DD4DD752C050412EF86F35694C55412AA4D90357C0504154404441704C55416A9FF50558C05041B54A6C496F4C554155CFB77159C050410B0C79C16D4C554129C028495BC05041D58079EF6A4C55418E98BAA75DC05041F7F2874E674C55413EADE24D5EC05041FC321150664C5541E17A145E62C05041713D0A17604C55419AF2E59264C050415C9E092A5D4C55417B11F0E565C05041AD6670685B4C5541116A0C4368C050415B460146584C5541E7A0F8DF69C05041E92D6E22564C5541596237086BC0504102D09499544C5541209D9C626BC05041275AB521544C554180F7DCC76CC05041C292F547524C55416F6E2B8B6EC050419DF07BF14F4C55418F0A0EA370C0504101261F1B4D4C5541ECCF8E4A72C050418255C1FB494C55418E65257D73C05041061111B9474C5541A5F28B7474C050418C6C18E6454C55416CA1B91A75C05041028B6EAC444C5541E62E645076C050419B8FC047424C55412547B2F872C05041F009E14B424C55417312316D70C05041256A054F424C554145C0D2F06AC05041F64ECB55424C55410C6DCA6668C05041DBDDED58424C55411405C0A867C05041BCF88A7B434C55413333336367C05041B81E850B444C55412C40DE5A64C050415F2912B7434C554150BF46D761C05041DDB00F71434C55415DB1AA535FC050419EB90C2B434C554126574B155EC05041F5D26A08434C55415341C5A35DC05041617611FC424C554175B672895DC05041517234F9424C5541E110425758C0504145A5FC6C424C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>319903 - 130565
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000016000000295C8F8253C050411F85EB61494C5541713D0A4752C050418FC2F5E8494C55418FC2F53851C05041C3F528EC454C55415C8FC27550C0504166666676424C55410AD7A32045C0504148E17A84424C5541CDCCCCBC45C05041B81E852B494C5541D7A370FD46C05041713D0AF74E4C5541295C8F7248C05041B81E858B534C5541713D0A574AC05041A4703DAA584C5541666666664CC05041B81E856B5D4C5541C3F5284C50C05041000000D0644C55413D0AD7F356C050410AD7A350704C5541713D0A2759C050413D0AD7336E4C5541E17A145E62C05041713D0A17604C5541713D0A8770C05041000000504D4C5541F6285C5F76C050417B14AE47424C554152B81E3568C050418FC2F558424C55413333336367C05041B81E850B444C5541EC51B87E58C05041CDCCCC6C424C5541CDCCCCCC54C0504114AE4771424C5541EC51B89E55C05041713D0A37464C5541295C8F8253C050411F85EB61494C5541
+</a>
+
+<b>
+0106000000010000000103000000010000003F000000DC10425758C0504142A5FC6C424C5541246FCAD554C05041C899A49A424C55419626020755C05041B9FA127D434C5541EC51B89E55C05041713D0A37464C5541295C8F8253C050411F85EB61494C554187F9919952C05041D042A3C5494C5541ED7F024C52C05041403ED5E6494C5541713D0A4752C050418FC2F5E8494C55418FC2F53851C05041C3F528EC454C554124FFA18250C05041861ED0B0424C55412B77176550C050410B1C7B76424C5541FD3729B44AC05041C0438D7D424C5541729F60C948C050412D09EF7F424C5541F42C0C4445C050415DE34E84424C554135DC994A45C05041B888184E444C5541CFD0898B45C0504147084912474C55418D4AC31046C050419CAEFEAF4A4C5541E331263C46C050417882BB784B4C5541FA66F66646C05041759CD13E4C4C5541A2D3B34047C05041D33E67CA4F4C55415B16404048C05041BEB76DED524C5541545B66EB49C050412A4F0787574C55418CEA1BAC4AC050416BD0996E594C554180D447BC4BC050414869D7E25B4C5541BD87F01F4EC050412A3200B1604C5541A0DECEE051C05041BBC4648B674C55411C74CDF351C05041E04139AC674C5541C8F1FD1A52C050415969F5EF674C5541CFDD4DD752C050412BF86F35694C55412BA4D90357C0504157404441704C5541699FF50558C05041B74A6C496F4C55415ACFB77159C05041100C79C16D4C554128C028495BC05041D58079EF6A4C55418D98BAA75DC05041F3F2874E674C55413FADE24D5EC05041F8321150664C5541E17A145E62C05041713D0A17604C554198F2E59264C050415A9E092A5D4C55418011F0E565C05041B06670685B4C5541116A0C4368C050415C460146584C5541E6A0F8DF69C05041E62D6E22564C5541576237086BC0504106D09499544C5541249D9C626BC050412A5AB521544C55417DF7DCC76CC05041BF92F547524C55416E6E2B8B6EC050419CF07BF14F4C55418F0A0EA370C0504100261F1B4D4C5541E7CF8E4A72C050418055C1FB494C55418A65257D73C050410A1111B9474C5541A7F28B7474C05041886C18E6454C55416CA1B91A75C05041038B6EAC444C5541E92E645076C050419D8FC047424C55412547B2F872C05041F109E14B424C55417212316D70C05041226A054F424C554141C0D2F06AC05041F34ECB55424C55410C6DCA6668C05041DFDDED58424C55411305C0A867C05041B7F88A7B434C55413333336367C05041B81E850B444C55412740DE5A64C05041632912B7434C55414CBF46D761C05041D8B00F71434C554159B1AA535FC05041A2B90C2B434C554121574B155EC05041F2D26A08434C55415341C5A35DC05041607611FC424C554176B672895DC050414D7234F9424C5541DC10425758C0504142A5FC6C424C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>319903 - 418286
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000016000000295C8F8253C050411F85EB61494C5541713D0A4752C050418FC2F5E8494C55418FC2F53851C05041C3F528EC454C55415C8FC27550C0504166666676424C55410AD7A32045C0504148E17A84424C5541CDCCCCBC45C05041B81E852B494C5541D7A370FD46C05041713D0AF74E4C5541295C8F7248C05041B81E858B534C5541713D0A574AC05041A4703DAA584C5541666666664CC05041B81E856B5D4C5541C3F5284C50C05041000000D0644C55413D0AD7F356C050410AD7A350704C5541713D0A2759C050413D0AD7336E4C5541E17A145E62C05041713D0A17604C5541713D0A8770C05041000000504D4C5541F6285C5F76C050417B14AE47424C554152B81E3568C050418FC2F558424C55413333336367C05041B81E850B444C5541EC51B87E58C05041CDCCCC6C424C5541CDCCCCCC54C0504114AE4771424C5541EC51B89E55C05041713D0A37464C5541295C8F8253C050411F85EB61494C5541
+</a>
+
+<b>
+0106000000010000000103000000010000003F000000DC10425758C0504142A5FC6C424C5541246FCAD554C05041C899A49A424C55419626020755C05041B9FA127D434C5541EC51B89E55C05041713D0A37464C5541295C8F8253C050411F85EB61494C554187F9919952C05041D042A3C5494C5541ED7F024C52C05041403ED5E6494C5541713D0A4752C050418FC2F5E8494C55418FC2F53851C05041C3F528EC454C554124FFA18250C05041861ED0B0424C55412B77176550C050410B1C7B76424C5541FD3729B44AC05041C0438D7D424C5541729F60C948C050412D09EF7F424C5541F42C0C4445C050415DE34E84424C554135DC994A45C05041B888184E444C5541CFD0898B45C0504147084912474C55418D4AC31046C050419CAEFEAF4A4C5541E331263C46C050417882BB784B4C5541FA66F66646C05041759CD13E4C4C5541A2D3B34047C05041D33E67CA4F4C55415B16404048C05041BEB76DED524C5541545B66EB49C050412A4F0787574C55418CEA1BAC4AC050416BD0996E594C554180D447BC4BC050414869D7E25B4C5541BD87F01F4EC050412A3200B1604C5541A0DECEE051C05041BBC4648B674C55411C74CDF351C05041E04139AC674C5541C8F1FD1A52C050415969F5EF674C5541CFDD4DD752C050412BF86F35694C55412BA4D90357C0504157404441704C5541699FF50558C05041B74A6C496F4C55415ACFB77159C05041100C79C16D4C554128C028495BC05041D58079EF6A4C55418D98BAA75DC05041F3F2874E674C55413FADE24D5EC05041F8321150664C5541E17A145E62C05041713D0A17604C554198F2E59264C050415A9E092A5D4C55418011F0E565C05041B06670685B4C5541116A0C4368C050415C460146584C5541E6A0F8DF69C05041E62D6E22564C5541576237086BC0504106D09499544C5541249D9C626BC050412A5AB521544C55417DF7DCC76CC05041BF92F547524C55416E6E2B8B6EC050419CF07BF14F4C55418F0A0EA370C0504100261F1B4D4C5541E7CF8E4A72C050418055C1FB494C55418A65257D73C050410A1111B9474C5541A7F28B7474C05041886C18E6454C55416CA1B91A75C05041038B6EAC444C5541E92E645076C050419D8FC047424C55412547B2F872C05041F109E14B424C55417212316D70C05041226A054F424C554141C0D2F06AC05041F34ECB55424C55410C6DCA6668C05041DFDDED58424C55411305C0A867C05041B7F88A7B434C55413333336367C05041B81E850B444C55412740DE5A64C05041632912B7434C55414CBF46D761C05041D8B00F71434C554159B1AA535FC05041A2B90C2B434C554121574B155EC05041F2D26A08434C55415341C5A35DC05041607611FC424C554176B672895DC050414D7234F9424C5541DC10425758C0504142A5FC6C424C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>976925 - 58870
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000010000000D7A370FDC2A750415C8FC2E5465C54411F85EB51C1A750417B14AE674A5C54415C8FC235D3A7504185EB5198515C5441D7A370ADD4A750418FC2F5684E5C54419A999989D8A7504133333303465C5441713D0AD7DBA7504185EB51383F5C54413D0AD773DFA75041666666E6375C5441F6285C7FE3A750410AD7A3702F5C54417B14AE17E6A75041AE47E19A295C5441EC51B8DEE8A750415C8FC295235C54411F85EB51EBA75041C3F5285C1E5C544166666606DCA75041D7A3709D145C5441713D0A97D0A75041E17A140E285C5441E17A14DECDA75041A4703D1A2D5C5441EC51B8CECAA7504185EB5158335C5441D7A370FDC2A750415C8FC2E5465C5441
+</a>
+
+<b>
+010600000001000000010300000001000000180000005C8FC235D3A7504185EB5198515C5441D7A370ADD4A750418FC2F5684E5C54419A999989D8A7504133333303465C5441713D0AD7DBA7504185EB51383F5C54413ECBD933DCA7504154FE417C3E5C5441A73F7247E1A750411A406A14345C54412A8C388BE2A75041CAF63F6F315C54413367D465E3A75041872F09A62F5C54416FC51844E4A75041F83E44B62D5C54417B14AE17E6A75041AE47E19A295C544146D7649DE6A75041AAF41079285C54417C7C85B2E7A750413217EE0E265C54411F85EB51EBA75041C3F5285C1E5C544166666606DCA75041D7A3709D145C544139C9C389D5A7504123AC97A41F5C5441125AE652D0A75041415A698C285C54412484A3CCCFA7504147B15485295C5441CA0334B3CEA75041F35C1C8F2B5C5441DA79BF64CCA75041277C021C305C54419FE2E654CBA75041F3A49546325C5441169A57DECAA7504117417338335C5441D7A370FDC2A750415C8FC2E5465C54411F85EB51C1A750417B14AE674A5C54415C8FC235D3A7504185EB5198515C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>320557 - 3146838
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000470000005C8FC2B5117C51411F85EB717D6F5441EC51B82E0F7C5141B81E855B7F6F5441666666B6077C514185EB5158876F5441B81E85BBFF7B5141C3F5287C906F544166666646FC7B5141A4703D8A936F5441F6285CCFF97B51417B14AEA7956F5441B81E859BF27B514114AE4751996F5441C3F5287CEA7B5141713D0A579D6F54411F85EB41E67B51413D0AD713A06F5441F6285CFFE37B51413D0AD773A76F5441000000C0E67B5141B81E85EBAC6F5441D7A3701DF27B5141A4703DCAB16F5441713D0A37F27B51415C8FC2E5B26F5441CDCCCCBCF97B5141C3F5284CB76F5441F6285C2FFF7B514148E17AE4BA6F5441C3F528DC067C514148E17AB4C06F54417B14AED70A7C5141C3F528FCC26F544185EB51B8137C514133333303C76F5441AE47E1DA1C7C5141C3F5289CC96F54415C8FC295207C5141F6285C4FCA6F5441C3F5287C277C514114AE4761CA6F54413D0AD7A3337C5141F6285C4FC96F5441666666663D7C5141333333D3C66F544148E17AB43F7C5141CDCCCC3CC66F544185EB5128437C51413D0AD753C56F544148E17A34467C5141D7A3701DC46F54411F85EB11487C514100000050BF6F544100000080487C514114AE47F1BB6F54419A9999C9487C5141CDCCCC2CBA6F54417B14AEB7497C51413D0AD7B3B86F5441C3F5288C4C7C5141333333D3B76F54418FC2F5384F7C5141F6285CEFB66F54418FC2F558527C5141C3F528ACBA6F5441D7A3709D547C5141000000D0BF6F5441666666E6527C5141EC51B88EC36F544114AE47B1557C514148E17A14C46F54413D0AD7F35C7C514100000000C86F54419A9999C9677C5141EC51B87ECF6F544114AE47016C7C5141666666C6CB6F5441E17A148E667C5141713D0AD7BB6F54417B14AE37647C5141D7A3706DB56F54410AD7A320627C514133333323B06F5441B81E851B607C5141C3F528FCAC6F5441AE47E1CA5C7C51411F85EBF1A86F5441295C8F22597C514166666656A56F5441295C8FA2557C5141CDCCCCACA26F5441333333B3537C5141295C8F82A16F5441F6285C9F517C5141D7A3706DA56F54410AD7A3C0507C514114AE4711A76F5441000000E04E7C514133333313A66F5441D7A370FD4C7C514148E17A14A56F544185EB5138457C51419A9999F9A06F5441D7A3700D437C5141B81E85EBA16F5441CDCCCC3C407C51413D0AD7B3A16F54413D0AD7933E7C51418FC2F5F89F6F54411F85EB113E7C514185EB51C89E6F5441B81E859B3D7C5141A4703DCA9C6F544185EB51783C7C51418FC2F5D89C6F5441F6285C3F3B7C514114AE47B19B6F54410AD7A3E0397C51411F85EBA19B6F5441000000C0387C5141C3F528FC996F5441EC51B86E387C51417B14AE07986F5441D7A3706D357C51415C8FC2D5976F5441B81E85FB337C5141A4703D8A996F544152B81EA52F7C51411F85EB01966F54411F85EB212C7C51419A999969926F54417B14AEA7297C514152B81E858F6F5441EC51B88E1C7C5141AE47E1CA836F544185EB5108167C5141B81E850B7E6F54418FC2F5C8137C5141C3F528BC7C6F54415C8FC2B5117C51411F85EB717D6F5441
+</a>
+
+<b>
+01060000000100000001030000000100000033000000E81569C3477C51418E082691BB6F5441603AFB8C4B7C51411369F5E4B76F544181478DBF517C5141A36F3EFEBA6F54415F929B20547C5141A843F40CBE6F5441977B8B54547C5141BC77A652C06F5441A9EF6135547C51418F686BA6C36F544109589913557C5141656F93D4C36F544168C7C65C567C514170221471C46F544147839BA65A7C514167CED8C1C66F5441CB7228C95C7C5141193EF4E8C76F54414E8285A65F7C5141ED97C5DDC96F5441968D7758637C514176B31E6CCC6F5441FF78926E667C51410DC4AA8ECE6F5441721FE6D8677C5141AA9C8C7FCF6F5441D03CC9076C7C51414847DCBFCB6F544194F7AC64687C5141B81BFE36C16F544173B2CEBD657C514140BDAE9BB96F544111828B6E637C51412BD45870B36F54410AD7A320627C514133333323B06F5441E50A369B617C5141A30DF752AF6F5441B58BC101607C51412DEAC2DCAC6F5441CC4717A55E7C51416E9CD733AB6F5441AB0C15365C7C5141E607285FA86F5441D705A6F6587C514147F4FE34A56F54414E9A50FC557C5141B4EA13F1A26F54417F07B573547C514197D013E4A16F544143124478537C51410AD4DDC6A26F5441A69A1FB7507C514161207C7BA76F54413AB2CA77457C5141273133F9A16F5441AAD91AF5437C5141CBB9DCEFA06F5441BF129ACB417C514123B69416A26F54410D345D9D3F7C51412F2770BEA16F54413EF8CA3C3E7C514171D757E89F6F5441231091D13F7C51416F5705D39B6F54414B69A6E43D7C5141FE2D64019C6F544109688E923C7C5141A16878A99B6F5441998A69B63B7C51410E1ADE8B9B6F5441E4308EA5397C514112957C6E9B6F5441F897A612397C51416D271BE8986F54419955CB98347C5141828E3355986F54417A85B50E347C51414AFBB45C996F5441AE663D0C357C51417FA2E52A9E6F54412C95C921367C5141A6C3C613A36F5441106836F6377C5141B61D84E3A76F5441B0A507A3397C5141F2845FBFAB6F5441CD99B8893B7C5141D3C3AD56AF6F54419A85CCD93D7C514107F110AFB26F5441012716E4407C51411556F20FB66F544164A29C10447C514176A15604B96F54411E557545467C5141B8D6566BBA6F5441E81569C3477C51418E082691BB6F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>320557 - 3308208
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000470000005C8FC2B5117C51411F85EB717D6F5441EC51B82E0F7C5141B81E855B7F6F5441666666B6077C514185EB5158876F5441B81E85BBFF7B5141C3F5287C906F544166666646FC7B5141A4703D8A936F5441F6285CCFF97B51417B14AEA7956F5441B81E859BF27B514114AE4751996F5441C3F5287CEA7B5141713D0A579D6F54411F85EB41E67B51413D0AD713A06F5441F6285CFFE37B51413D0AD773A76F5441000000C0E67B5141B81E85EBAC6F5441D7A3701DF27B5141A4703DCAB16F5441713D0A37F27B51415C8FC2E5B26F5441CDCCCCBCF97B5141C3F5284CB76F5441F6285C2FFF7B514148E17AE4BA6F5441C3F528DC067C514148E17AB4C06F54417B14AED70A7C5141C3F528FCC26F544185EB51B8137C514133333303C76F5441AE47E1DA1C7C5141C3F5289CC96F54415C8FC295207C5141F6285C4FCA6F5441C3F5287C277C514114AE4761CA6F54413D0AD7A3337C5141F6285C4FC96F5441666666663D7C5141333333D3C66F544148E17AB43F7C5141CDCCCC3CC66F544185EB5128437C51413D0AD753C56F544148E17A34467C5141D7A3701DC46F54411F85EB11487C514100000050BF6F544100000080487C514114AE47F1BB6F54419A9999C9487C5141CDCCCC2CBA6F54417B14AEB7497C51413D0AD7B3B86F5441C3F5288C4C7C5141333333D3B76F54418FC2F5384F7C5141F6285CEFB66F54418FC2F558527C5141C3F528ACBA6F5441D7A3709D547C5141000000D0BF6F5441666666E6527C5141EC51B88EC36F544114AE47B1557C514148E17A14C46F54413D0AD7F35C7C514100000000C86F54419A9999C9677C5141EC51B87ECF6F544114AE47016C7C5141666666C6CB6F5441E17A148E667C5141713D0AD7BB6F54417B14AE37647C5141D7A3706DB56F54410AD7A320627C514133333323B06F5441B81E851B607C5141C3F528FCAC6F5441AE47E1CA5C7C51411F85EBF1A86F5441295C8F22597C514166666656A56F5441295C8FA2557C5141CDCCCCACA26F5441333333B3537C5141295C8F82A16F5441F6285C9F517C5141D7A3706DA56F54410AD7A3C0507C514114AE4711A76F5441000000E04E7C514133333313A66F5441D7A370FD4C7C514148E17A14A56F544185EB5138457C51419A9999F9A06F5441D7A3700D437C5141B81E85EBA16F5441CDCCCC3C407C51413D0AD7B3A16F54413D0AD7933E7C51418FC2F5F89F6F54411F85EB113E7C514185EB51C89E6F5441B81E859B3D7C5141A4703DCA9C6F544185EB51783C7C51418FC2F5D89C6F5441F6285C3F3B7C514114AE47B19B6F54410AD7A3E0397C51411F85EBA19B6F5441000000C0387C5141C3F528FC996F5441EC51B86E387C51417B14AE07986F5441D7A3706D357C51415C8FC2D5976F5441B81E85FB337C5141A4703D8A996F544152B81EA52F7C51411F85EB01966F54411F85EB212C7C51419A999969926F54417B14AEA7297C514152B81E858F6F5441EC51B88E1C7C5141AE47E1CA836F544185EB5108167C5141B81E850B7E6F54418FC2F5C8137C5141C3F528BC7C6F54415C8FC2B5117C51411F85EB717D6F5441
+</a>
+
+<b>
+01060000000100000001030000000100000033000000E81569C3477C51418E082691BB6F5441603AFB8C4B7C51411369F5E4B76F544181478DBF517C5141A36F3EFEBA6F54415F929B20547C5141A843F40CBE6F5441977B8B54547C5141BC77A652C06F5441A9EF6135547C51418F686BA6C36F544109589913557C5141656F93D4C36F544168C7C65C567C514170221471C46F544147839BA65A7C514167CED8C1C66F5441CB7228C95C7C5141193EF4E8C76F54414E8285A65F7C5141ED97C5DDC96F5441968D7758637C514176B31E6CCC6F5441FF78926E667C51410DC4AA8ECE6F5441721FE6D8677C5141AA9C8C7FCF6F5441D03CC9076C7C51414847DCBFCB6F544194F7AC64687C5141B81BFE36C16F544173B2CEBD657C514140BDAE9BB96F544111828B6E637C51412BD45870B36F54410AD7A320627C514133333323B06F5441E50A369B617C5141A30DF752AF6F5441B58BC101607C51412DEAC2DCAC6F5441CC4717A55E7C51416E9CD733AB6F5441AB0C15365C7C5141E607285FA86F5441D705A6F6587C514147F4FE34A56F54414E9A50FC557C5141B4EA13F1A26F54417F07B573547C514197D013E4A16F544143124478537C51410AD4DDC6A26F5441A69A1FB7507C514161207C7BA76F54413AB2CA77457C5141273133F9A16F5441AAD91AF5437C5141CBB9DCEFA06F5441BF129ACB417C514123B69416A26F54410D345D9D3F7C51412F2770BEA16F54413EF8CA3C3E7C514171D757E89F6F5441231091D13F7C51416F5705D39B6F54414B69A6E43D7C5141FE2D64019C6F544109688E923C7C5141A16878A99B6F5441998A69B63B7C51410E1ADE8B9B6F5441E4308EA5397C514112957C6E9B6F5441F897A612397C51416D271BE8986F54419955CB98347C5141828E3355986F54417A85B50E347C51414AFBB45C996F5441AE663D0C357C51417FA2E52A9E6F54412C95C921367C5141A6C3C613A36F5441106836F6377C5141B61D84E3A76F5441B0A507A3397C5141F2845FBFAB6F5441CD99B8893B7C5141D3C3AD56AF6F54419A85CCD93D7C514107F110AFB26F5441012716E4407C51411556F20FB66F544164A29C10447C514176A15604B96F54411E557545467C5141B8D6566BBA6F5441E81569C3477C51418E082691BB6F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>320630 - 3144577
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000850000003D0AD763357F514114AE47611F6F5441E17A142E317F5141000000201D6F54417B14AE07247F5141295C8FC2136F5441EC51B86E227F5141295C8F12166F544152B81E851F7F5141E17A143E186F54418FC2F5181A7F5141000000201A6F5441713D0A37157F51415C8FC2351A6F54413D0AD7C30F7F5141333333031A6F54419A9999C90C7F5141295C8FC2176F5441EC51B8AE0A7F51410AD7A3D0166F544148E17AD4077F5141333333B3166F5441EC51B8BE067F51417B14AE37136F544152B81E25057F514114AE4731106F5441F6285CBF027F5141E17A14AE0D6F54413D0AD793FF7E51413D0AD7C30E6F5441C3F5289CFD7E5141E17A144E106F5441D7A3703DFC7E5141B81E85BB116F5441B81E857BF97E5141B81E85EB126F5441AE47E16AF67E51410AD7A330126F5441D7A370ADF37E5141AE47E11A116F54413D0AD783EF7E5141B81E856B0F6F544114AE4761EE7E5141CDCCCCAC0F6F5441666666E6EC7E51417B14AE87106F5441295C8FE2EA7E51411F85EB21126F544148E17A84E77E5141B81E855B166F544166666676E57E51411F85EB11186F5441F6285C2FDB7E514114AE47111C6F5441A4703D2AD47E514185EB51681E6F5441AE47E1FACD7E5141295C8FD21E6F54410AD7A330CB7E5141295C8F721F6F5441E17A141ECA7E51417B14AE67206F5441A4703DFAC67E5141C3F5283C1E6F5441713D0A27C37E514152B81E351F6F5441B81E85ABBD7E51413D0AD733236F5441713D0A97B87E51415C8FC2C5256F5441713D0AF7B17E5141A4703D7A276F54419A999999AE7E51413D0AD7D3276F544166666616A37E51410AD7A320256F5441CDCCCCFCA17E51415C8FC2C5286F5441AE47E17AA17E5141B81E852B2C6F5441F6285CCFA47E514133333343336F544166666636AD7E5141EC51B87E366F54415C8FC275BE7E5141E17A14FE3C6F5441D7A3702DC17E5141D7A3709D3D6F54417B14AE37C67E5141B81E85CB3E6F5441A4703D3AC67E514152B81EC5386F5441713D0A57D47E514148E17A64316F5441F6285C6FE57E51413D0AD773286F544152B81E75F07E51410AD7A3B0226F54419A9999C9F67E5141E17A145E296F5441F6285C2FFF7E51419A999939326F5441C3F5283C007F5141A4703D7A316F544185EB5118007F51410AD7A3A02F6F5441E17A148E007F514185EB51382D6F5441A4703D7A017F5141AE47E12A2B6F5441D7A370ED027F514114AE4771286F54410AD7A390037F5141295C8FE2266F54410AD7A390037F5141D7A370DD246F5441F6285C3F037F5141EC51B88E236F54410AD7A380027F514114AE4751226F54419A9999B9FF7E5141333333E3226F5441AE47E14AFF7E514114AE47B1216F5441295C8F22FF7E5141CDCCCC1C216F5441EC51B86EFE7E5141E17A14CE1F6F5441CDCCCC2CFB7E5141C3F5288C206F5441A4703D4AFA7E5141000000001E6F5441B81E85EBFF7E5141713D0AE71C6F544133333383017F51417B14AE771D6F54417B14AE87037F5141CDCCCC5C1D6F54419A999999037F5141EC51B84E1B6F5441D7A3700D097F51415C8FC265196F54411F85EB010A7F5141AE47E1FA1B6F54419A9999A90C7F51415C8FC2451B6F54418FC2F5F80D7F51410AD7A3A01B6F54417B14AE770E7F5141F6285C0F1F6F54418FC2F5F80D7F514114AE4731206F5441B81E85EB0B7F51411F85EBF1236F54417B14AE87077F5141C3F5289C256F54410AD7A380067F5141F6285C0F236F5441EC51B84E047F5141295C8FB2236F5441AE47E1FA047F51417B14AE77256F544114AE4761047F5141D7A3700D286F5441AE47E1CA027F514185EB51A82A6F544148E17AA4017F5141F6285C5F2D6F544114AE4731017F514148E17AF42E6F5441AE47E11A017F5141B81E85DB306F54411F85EB11027F5141B81E852B306F544166666646027F51413D0AD7A3326F54417B14AEB7027F5141F6285CAF316F54415C8FC285037F51413D0AD773306F5441000000C0057F5141D7A370BD2F6F54415C8FC265097F51418FC2F5682F6F5441000000900E7F514152B81E752F6F5441EC51B88E0F7F5141A4703D5A316F5441D7A3705D107F51410AD7A3A0336F5441EC51B8EE107F514133333323366F544148E17AA4117F5141F6285C1F396F5441B81E85BB127F51413D0AD7333C6F544100000040147F514166666646416F544114AE4731167F51411F85EB71456F544166666616187F5141295C8FC2486F54417B14AE071A7F5141333333B34B6F54418FC2F5C81B7F5141A4703DFA4C6F544148E17AF41F7F51411F85EBE14C6F544133333343257F5141D7A3708D4C6F5441CDCCCC5C277F5141D7A3705D4C6F5441666666B6287F51417B14AEE7466F5441333333032A7F51418FC2F538426F54417B14AE672B7F5141A4703D7A3F6F5441AE47E1EA2D7F5141CDCCCCBC3C6F544133333383427F5141295C8F022E6F544185EB51783D7F514148E17A642F6F5441E17A14EE347F5141295C8F62316F54418FC2F5882B7F51419A9999A9336F5441F6285CFF297F5141AE47E19A336F5441C3F5287C297F514166666626336F5441C3F5281C2A7F514185EB5128316F54418FC2F5882B7F5141713D0AB72C6F544152B81EF52C7F5141000000E0276F5441C3F528BC337F5141AE47E12A266F5441A4703D6A3D7F51413D0AD7E3236F544100000020467F5141713D0AD7216F5441CDCCCC4C4D7F5141333333B3206F5441713D0A17507F51418FC2F578206F5441A4703D8A527F51410AD7A3D0206F54417B14AEF7537F5141713D0A87216F5441D7A3705D557F5141713D0A87206F54417B14AE475D7F5141713D0A071A6F544114AE4721597F5141295C8F12186F5441E17A14AE417F51417B14AE77186F5441000000E0407F5141713D0AB7186F5441713D0AF7397F5141F6285CBF1C6F54413D0AD763357F514114AE47611F6F5441
+</a>
+
+<b>
+010600000001000000010300000001000000220000009363CF4F027F5141FABB4403306F5441C5D120740C7F51410D10B9522B6F5441F60E9A1D107F5141DA897DB4296F544182726232157F51419B59EA0F296F544142DFD5C81D7F5141324CAE47296F54412A8077F7257F5141EA02E0CC296F54419F43A15A357F51413BA380671F6F54415BAC724E317F5141445456311D6F5441451137082F7F5141E67967981B6F5441B3373A05247F5141CF3C1CC6136F544136B65322227F5141B3F64B1C166F5441D15927E81E7F514101A2DEAC196F5441CA516D4E167F51418538B2791B6F5441B40281AA107F5141ABA1298E1A6F544181718E0F0E7F51413EC60F88196F54414C01020F0C7F514149FFDE5B196F54410B061E63097F5141DF011DE2196F5441603BBA9E097F5141FB0AA5EE1A6F54413750C7E50A7F514114F91BE31A6F54417F6C62FC0D7F5141AE95A8A21B6F5441F32D153D0E7F5141EE666C951F6F5441303A5E3F0D7F5141D3AFBB9E216F5441E9D92DF00B7F51413CE666E9236F5441108B4B95077F51414F06FF96256F5441D1A90774067F514178BA0513236F5441BD414F50047F514193DE7BAD236F5441E97B40FC047F5141AA4BCEA2256F54415D3C3B7D047F5141D51E0495276F54410C42AE39047F514112792A5B286F54412A153CC2027F51417EFDBABC2A6F5441805FC8B6017F5141735226342D6F54419E6DA22F017F5141031942182F6F5441475B871C017F5141F46A58DA306F54419363CF4F027F5141FABB4403306F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>321833 - 28568
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001B000000666666D6C71551418FC2F598418454418FC2F5A8BB155141333333F34A84544100000070AD155141AE47E1AA5484544152B81EF59B155141D7A3706D60845441B81E853B8F155141000000E068845441B81E859B8E155141A4703D4A69845441333333938F155141713D0AE76A8454413D0AD77390155141A4703D9A6C84544114AE4781901551413D0AD7B36C845441AE47E12A93155141295C8F026B845441295C8F529A1551413D0AD79366845441A4703D6A9E1551411F85EB416484544114AE4781A51551411F85EB3160845441A4703D2AAD155141F6285CFF5B84544133333313B31551418FC2F5E85884544166666626C01551413D0AD733528454418FC2F588D6155141713D0A0744845441F6285C5FE5155141295C8F123984544148E17A04F115514100000030308454415C8FC2050116514148E17A342284544185EB51F8FB155141B81E855B1D845441713D0AE7F7155141333333E318845441713D0AD7E5155141B81E85FB28845441B81E857BDC155141AE47E19A3084544152B81E55CE155141666666463C84544152B81E55C91551413D0AD77340845441666666D6C71551418FC2F59841845441
+</a>
+
+<b>
+0106000000010000000103000000010000002F000000FDF5C03B9515514106902BE464845441231193059C155141D614AA5B6084544150B51FB5A1155141D2AFD48E5C8454414A48189FAE15514186C6C0D5538454418D50A9A9B91551411C5D71504C845441ADBE00F1B9155141CB98121E4C845441ABDE0F09C815514137CE347041845441BBF45825CE1551412A5E506E3C845441A3667020DB15514182A40AC231845441313FE2DEE115514109A831342C845441F5CBFB81E7155141B65FE66D2784544196621599E8155141D623818126845441D2E817DBF0155141457C21121F845441E1FCBBF3F5155141D578A2771A8454410F04192BF815514190142177188454410B838262F715514109533F4A178454419D17C968E415514173238716288454416BD37547CA155141F6E7E0153D845441B7C1690FAF1551419E2898C55184544133FD0F109A155141045E6E6460845441BC090B998B155141DE8FA891698454416740FBAF851551418190B54D5F84544132ABA7EDA2155141610A9104458454411CF73FAEBD155141D50F54AA2B845441E5CC5ECFE61551418132A92C05845441E29DF131E5155141F2582AC604845441F37986D0C715514181B051DF1F8454414543400FBA155141ED7FB3942C845441483FCAEAAB155141893FC3013A84544150BBB0B7A015514108C7CFF444845441303A63649C1551418C89AF3649845441C9A15872951551413B308A005084544197213526951551412979284B50845441A2D420239515514135A0F74D508454418FEE75009515514123EFD96F5084544141DD54AD941551419E5F6EB950845441BCF4673690155141D2FD19CC548454415424522C8D1551417FCFC45D57845441CFC947FD8C1551416F77878557845441BCDCBFC98C155141A854FAAA5784544159AF815E86155141DF1719B25C8454413AA9791486155141949E20EE5C8454412082CDAE83155141A4AD328D5E8454416D0B9E3184155141098C68815F845441730051B58A1551418CB975496B845441F54A96BD8C1551417DF5D8406A845441FDF5C03B9515514106902BE464845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>321833 - 72134
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001B000000666666D6C71551418FC2F598418454418FC2F5A8BB155141333333F34A84544100000070AD155141AE47E1AA5484544152B81EF59B155141D7A3706D60845441B81E853B8F155141000000E068845441B81E859B8E155141A4703D4A69845441333333938F155141713D0AE76A8454413D0AD77390155141A4703D9A6C84544114AE4781901551413D0AD7B36C845441AE47E12A93155141295C8F026B845441295C8F529A1551413D0AD79366845441A4703D6A9E1551411F85EB416484544114AE4781A51551411F85EB3160845441A4703D2AAD155141F6285CFF5B84544133333313B31551418FC2F5E85884544166666626C01551413D0AD733528454418FC2F588D6155141713D0A0744845441F6285C5FE5155141295C8F123984544148E17A04F115514100000030308454415C8FC2050116514148E17A342284544185EB51F8FB155141B81E855B1D845441713D0AE7F7155141333333E318845441713D0AD7E5155141B81E85FB28845441B81E857BDC155141AE47E19A3084544152B81E55CE155141666666463C84544152B81E55C91551413D0AD77340845441666666D6C71551418FC2F59841845441
+</a>
+
+<b>
+0106000000010000000103000000010000002F000000FDF5C03B9515514106902BE464845441231193059C155141D614AA5B6084544150B51FB5A1155141D2AFD48E5C8454414A48189FAE15514186C6C0D5538454418D50A9A9B91551411C5D71504C845441ADBE00F1B9155141CB98121E4C845441ABDE0F09C815514137CE347041845441BBF45825CE1551412A5E506E3C845441A3667020DB15514182A40AC231845441313FE2DEE115514109A831342C845441F5CBFB81E7155141B65FE66D2784544196621599E8155141D623818126845441D2E817DBF0155141457C21121F845441E1FCBBF3F5155141D578A2771A8454410F04192BF815514190142177188454410B838262F715514109533F4A178454419D17C968E415514173238716288454416BD37547CA155141F6E7E0153D845441B7C1690FAF1551419E2898C55184544133FD0F109A155141045E6E6460845441BC090B998B155141DE8FA891698454416740FBAF851551418190B54D5F84544132ABA7EDA2155141610A9104458454411CF73FAEBD155141D50F54AA2B845441E5CC5ECFE61551418132A92C05845441E29DF131E5155141F2582AC604845441F37986D0C715514181B051DF1F8454414543400FBA155141ED7FB3942C845441483FCAEAAB155141893FC3013A84544150BBB0B7A015514108C7CFF444845441303A63649C1551418C89AF3649845441C9A15872951551413B308A005084544197213526951551412979284B50845441A2D420239515514135A0F74D508454418FEE75009515514123EFD96F5084544141DD54AD941551419E5F6EB950845441BCF4673690155141D2FD19CC548454415424522C8D1551417FCFC45D57845441CFC947FD8C1551416F77878557845441BCDCBFC98C155141A854FAAA5784544159AF815E86155141DF1719B25C8454413AA9791486155141949E20EE5C8454412082CDAE83155141A4AD328D5E8454416D0B9E3184155141098C68815F845441730051B58A1551418CB975496B845441F54A96BD8C1551417DF5D8406A845441FDF5C03B9515514106902BE464845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>321858 - 1062002
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000003A0000000AD7A3402C1A51417B14AEB73D845441EC51B8CE2A1A51411F85EB512A845441CDCCCCCC281A5141C3F528AC1D845441A4703D8A331A5141CDCCCC0C0C845441A4703D3A341A5141B81E85EB0A8454419A9999E9391A51417B14AE9701845441333333F33C1A51418FC2F5E80284544185EB5148411A514166666626048454415C8FC2F5491A5141D7A370DD058454419A999959451A51410AD7A380F2835441A4703D9A431A5141AE47E12AEB8354413D0AD753421A5141000000D0E58354419A999919411A514185EB51A8E0835441C3F528AC311A5141AE47E19AE18354419A9999792E1A51418FC2F518E28354415C8FC2A52A1A514148E17AF4E28354411F85EBE1181A5141B81E857BE78354410AD7A330121A5141C3F528ACE8835441C3F528FC0E1A5141EC51B81EE9835441666666360E1A51410AD7A3D0E9835441A4703D6A101A5141D7A370CDEF835441000000D0141A5141666666C6FD83544114AE47F1171A5141000000E0058454419A9999F9191A51415C8FC205058454417B14AEC71D1A5141333333230A84544152B81E951F1A5141B81E852B0B84544100000050211A51413D0AD7E30D845441B81E85CB221A5141713D0A770E845441D7A370BD271A51418FC2F5181984544166666686241A5141295C8F521B845441E17A14BE181A51419A9999791C8454415C8FC2B50C1A5141F6285C4F1E8454419A9999E90B1A51411F85EB411D8454419A999989031A51411F85EBB11E8454419A9999B9021A51411F85EB011D8454419A9999B9061A51411F85EB611B8454419A999909071A51411F85EB31168454419A999999051A51411F85EB41138454419A999909FE1951411F85EB71088454419A999949FC1951411F85EB810684544185EB51D8DD1951419A9999E90F845441295C8FA2C6195141B81E85DB1784544114AE4791C11951411F85EB811A845441F6285C3FBD195141B81E85EB1F84544100000050BA195141C3F5287C26845441333333B3B8195141333333932A8454413D0AD793BF1951413D0AD7532E8454415C8FC255C2195141B81E85CB3084544133333333C719514185EB51183684544114AE4741D019514185EB519833845441333333D3D719514148E17A843E845441EC51B8FEDD195141AE47E1CA4684544100000090E91951417B14AE9744845441000000F0F8195141D7A370ED4384544185EB51D8071A51411F85EB2143845441A4703D9A0C1A51410000007042845441A4703D5A1D1A51417B14AEF73F8454410AD7A3402C1A51417B14AEB73D845441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000702DEA231A1A5141FC104FEF04845441A0C3A6F6191A51412EE95EAF0484544113C26A70191A514168536EA6038454410D3262DA181A514172F54E7E0284544162D092F3161A514125938478FE83544147C38CCA151A5141969BD6A5FB835441D97B2FDB131A5141C8E994F0F6835441394E2CCF121A51413911F568F78354415AB11632131A5141E6BF3FA3F8835441BF0451E7141A5141FB2E7DDCFD835441A2956E57171A5141039E1333058454412755DF31181A514140EB6EA90784544152B81E95191A5141333333830B8454417B14AEC71D1A5141333333230A845441A50ACC371C1A51412AADA2DE07845441702DEA231A1A5141FC104FEF04845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>321858 - 3010343
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000003A0000000AD7A3402C1A51417B14AEB73D845441EC51B8CE2A1A51411F85EB512A845441CDCCCCCC281A5141C3F528AC1D845441A4703D8A331A5141CDCCCC0C0C845441A4703D3A341A5141B81E85EB0A8454419A9999E9391A51417B14AE9701845441333333F33C1A51418FC2F5E80284544185EB5148411A514166666626048454415C8FC2F5491A5141D7A370DD058454419A999959451A51410AD7A380F2835441A4703D9A431A5141AE47E12AEB8354413D0AD753421A5141000000D0E58354419A999919411A514185EB51A8E0835441C3F528AC311A5141AE47E19AE18354419A9999792E1A51418FC2F518E28354415C8FC2A52A1A514148E17AF4E28354411F85EBE1181A5141B81E857BE78354410AD7A330121A5141C3F528ACE8835441C3F528FC0E1A5141EC51B81EE9835441666666360E1A51410AD7A3D0E9835441A4703D6A101A5141D7A370CDEF835441000000D0141A5141666666C6FD83544114AE47F1171A5141000000E0058454419A9999F9191A51415C8FC205058454417B14AEC71D1A5141333333230A84544152B81E951F1A5141B81E852B0B84544100000050211A51413D0AD7E30D845441B81E85CB221A5141713D0A770E845441D7A370BD271A51418FC2F5181984544166666686241A5141295C8F521B845441E17A14BE181A51419A9999791C8454415C8FC2B50C1A5141F6285C4F1E8454419A9999E90B1A51411F85EB411D8454419A999989031A51411F85EBB11E8454419A9999B9021A51411F85EB011D8454419A9999B9061A51411F85EB611B8454419A999909071A51411F85EB31168454419A999999051A51411F85EB41138454419A999909FE1951411F85EB71088454419A999949FC1951411F85EB810684544185EB51D8DD1951419A9999E90F845441295C8FA2C6195141B81E85DB1784544114AE4791C11951411F85EB811A845441F6285C3FBD195141B81E85EB1F84544100000050BA195141C3F5287C26845441333333B3B8195141333333932A8454413D0AD793BF1951413D0AD7532E8454415C8FC255C2195141B81E85CB3084544133333333C719514185EB51183684544114AE4741D019514185EB519833845441333333D3D719514148E17A843E845441EC51B8FEDD195141AE47E1CA4684544100000090E91951417B14AE9744845441000000F0F8195141D7A370ED4384544185EB51D8071A51411F85EB2143845441A4703D9A0C1A51410000007042845441A4703D5A1D1A51417B14AEF73F8454410AD7A3402C1A51417B14AEB73D845441
+</a>
+
+<b>
+010600000001000000010300000001000000130000005AD89B652B1A5141492E01AA178454416D7AF78B2C1A5141BBED5486178454417B12CB382E1A5141306CB3C6148454411C8DA5F62E1A5141CB142F8F13845441D6DA7A7A2F1A51418841DEB6128454414E1EB9D52F1A5141E8582721128454416CDFB1A7301A51415349A0C810845441A4703D8A331A5141CDCCCC0C0C845441A4703D3A341A5141B81E85EB0A8454416D20BCD5371A51415388520005845441C370524F341A514181A3ED9D06845441FBCAFB47291A5141B67A919A0B845441FCA0FFAE241A5141E4A7A0990D845441B7F018C7261A51413EFAC2D111845441970A83EA2A1A51413AA88866108454410BD4D7F02B1A514169D607F011845441EFEBA9DC2B1A5141022CFFE0158454419E7419212B1A5141F0BEF8B0178454415AD89B652B1A5141492E01AA17845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>321858 - 3827226
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000003A0000000AD7A3402C1A51417B14AEB73D845441EC51B8CE2A1A51411F85EB512A845441CDCCCCCC281A5141C3F528AC1D845441A4703D8A331A5141CDCCCC0C0C845441A4703D3A341A5141B81E85EB0A8454419A9999E9391A51417B14AE9701845441333333F33C1A51418FC2F5E80284544185EB5148411A514166666626048454415C8FC2F5491A5141D7A370DD058454419A999959451A51410AD7A380F2835441A4703D9A431A5141AE47E12AEB8354413D0AD753421A5141000000D0E58354419A999919411A514185EB51A8E0835441C3F528AC311A5141AE47E19AE18354419A9999792E1A51418FC2F518E28354415C8FC2A52A1A514148E17AF4E28354411F85EBE1181A5141B81E857BE78354410AD7A330121A5141C3F528ACE8835441C3F528FC0E1A5141EC51B81EE9835441666666360E1A51410AD7A3D0E9835441A4703D6A101A5141D7A370CDEF835441000000D0141A5141666666C6FD83544114AE47F1171A5141000000E0058454419A9999F9191A51415C8FC205058454417B14AEC71D1A5141333333230A84544152B81E951F1A5141B81E852B0B84544100000050211A51413D0AD7E30D845441B81E85CB221A5141713D0A770E845441D7A370BD271A51418FC2F5181984544166666686241A5141295C8F521B845441E17A14BE181A51419A9999791C8454415C8FC2B50C1A5141F6285C4F1E8454419A9999E90B1A51411F85EB411D8454419A999989031A51411F85EBB11E8454419A9999B9021A51411F85EB011D8454419A9999B9061A51411F85EB611B8454419A999909071A51411F85EB31168454419A999999051A51411F85EB41138454419A999909FE1951411F85EB71088454419A999949FC1951411F85EB810684544185EB51D8DD1951419A9999E90F845441295C8FA2C6195141B81E85DB1784544114AE4791C11951411F85EB811A845441F6285C3FBD195141B81E85EB1F84544100000050BA195141C3F5287C26845441333333B3B8195141333333932A8454413D0AD793BF1951413D0AD7532E8454415C8FC255C2195141B81E85CB3084544133333333C719514185EB51183684544114AE4741D019514185EB519833845441333333D3D719514148E17A843E845441EC51B8FEDD195141AE47E1CA4684544100000090E91951417B14AE9744845441000000F0F8195141D7A370ED4384544185EB51D8071A51411F85EB2143845441A4703D9A0C1A51410000007042845441A4703D5A1D1A51417B14AEF73F8454410AD7A3402C1A51417B14AEB73D845441
+</a>
+
+<b>
+010600000001000000010300000001000000130000005AD89B652B1A5141492E01AA178454416D7AF78B2C1A5141BBED5486178454417B12CB382E1A5141306CB3C6148454411C8DA5F62E1A5141CB142F8F13845441D6DA7A7A2F1A51418841DEB6128454414E1EB9D52F1A5141E8582721128454416CDFB1A7301A51415349A0C810845441A4703D8A331A5141CDCCCC0C0C845441A4703D3A341A5141B81E85EB0A8454416D20BCD5371A51415388520005845441C370524F341A514181A3ED9D06845441FBCAFB47291A5141B67A919A0B845441FCA0FFAE241A5141E4A7A0990D845441B7F018C7261A51413EFAC2D111845441970A83EA2A1A51413AA88866108454410BD4D7F02B1A514169D607F011845441EFEBA9DC2B1A5141022CFFE0158454419E7419212B1A5141F0BEF8B0178454415AD89B652B1A5141492E01AA17845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>321858 - 3827251
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000003A0000000AD7A3402C1A51417B14AEB73D845441EC51B8CE2A1A51411F85EB512A845441CDCCCCCC281A5141C3F528AC1D845441A4703D8A331A5141CDCCCC0C0C845441A4703D3A341A5141B81E85EB0A8454419A9999E9391A51417B14AE9701845441333333F33C1A51418FC2F5E80284544185EB5148411A514166666626048454415C8FC2F5491A5141D7A370DD058454419A999959451A51410AD7A380F2835441A4703D9A431A5141AE47E12AEB8354413D0AD753421A5141000000D0E58354419A999919411A514185EB51A8E0835441C3F528AC311A5141AE47E19AE18354419A9999792E1A51418FC2F518E28354415C8FC2A52A1A514148E17AF4E28354411F85EBE1181A5141B81E857BE78354410AD7A330121A5141C3F528ACE8835441C3F528FC0E1A5141EC51B81EE9835441666666360E1A51410AD7A3D0E9835441A4703D6A101A5141D7A370CDEF835441000000D0141A5141666666C6FD83544114AE47F1171A5141000000E0058454419A9999F9191A51415C8FC205058454417B14AEC71D1A5141333333230A84544152B81E951F1A5141B81E852B0B84544100000050211A51413D0AD7E30D845441B81E85CB221A5141713D0A770E845441D7A370BD271A51418FC2F5181984544166666686241A5141295C8F521B845441E17A14BE181A51419A9999791C8454415C8FC2B50C1A5141F6285C4F1E8454419A9999E90B1A51411F85EB411D8454419A999989031A51411F85EBB11E8454419A9999B9021A51411F85EB011D8454419A9999B9061A51411F85EB611B8454419A999909071A51411F85EB31168454419A999999051A51411F85EB41138454419A999909FE1951411F85EB71088454419A999949FC1951411F85EB810684544185EB51D8DD1951419A9999E90F845441295C8FA2C6195141B81E85DB1784544114AE4791C11951411F85EB811A845441F6285C3FBD195141B81E85EB1F84544100000050BA195141C3F5287C26845441333333B3B8195141333333932A8454413D0AD793BF1951413D0AD7532E8454415C8FC255C2195141B81E85CB3084544133333333C719514185EB51183684544114AE4741D019514185EB519833845441333333D3D719514148E17A843E845441EC51B8FEDD195141AE47E1CA4684544100000090E91951417B14AE9744845441000000F0F8195141D7A370ED4384544185EB51D8071A51411F85EB2143845441A4703D9A0C1A51410000007042845441A4703D5A1D1A51417B14AEF73F8454410AD7A3402C1A51417B14AEB73D845441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000702DEA231A1A5141FC104FEF04845441A0C3A6F6191A51412EE95EAF0484544113C26A70191A514168536EA6038454410D3262DA181A514172F54E7E0284544162D092F3161A514125938478FE83544147C38CCA151A5141969BD6A5FB835441D97B2FDB131A5141C8E994F0F6835441394E2CCF121A51413911F568F78354415AB11632131A5141E6BF3FA3F8835441BF0451E7141A5141FB2E7DDCFD835441A2956E57171A5141039E1333058454412755DF31181A514140EB6EA90784544152B81E95191A5141333333830B8454417B14AEC71D1A5141333333230A845441A50ACC371C1A51412AADA2DE07845441702DEA231A1A5141FC104FEF04845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>322183 - 3013384
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000034000000000000F0621B51411F85EBC185815441D7A3708D681B514148E17A447D815441713D0A37701B5141666666767281544185EB51A8771B514152B81EE5698154415C8FC2C57B1B51419A9999B9638154411F85EBF17C1B514185EB517861815441C3F5286C7C1B51411F85EBC1608154413D0AD793791B5141713D0A4760815441EC51B86E751B5141CDCCCC1C5F8154415C8FC2156F1B51417B14AEA75A81544148E17A146A1B51415C8FC2E55781544166666666671B51413D0AD7B3558154417B14AE57641B51410AD7A34053815441D7A370ED5E1B51419A9999694F8154417B14AE775A1B51411F85EB914C81544133333303581B51410AD7A3B04B815441F6285C2F551B51418FC2F5384B8154413D0AD703531B5141B81E85CB4A815441333333634B1B51418FC2F5D8498154417B14AE974A1B5141B81E854B4981544133333343491B5141A4703DBA48815441D7A3707D421B51411F85EBE14481544185EB51D8321B514185EB51483B8154419A9999D9261B5141EC51B80E33815441D7A3703D261B51418FC2F528398154417B14AE77271B5141D7A3704D40815441C3F528BC291B5141D7A370AD468154413D0AD7132C1B514152B81E854C815441AE47E18A2F1B514133333333538154411F85EBC1361B514114AE4701558154418FC2F5D83B1B51417B14AE77568154411F85EB31371B51410000008067815441B81E85EB361B514114AE475168815441C3F5289C301B514114AE4781788154410AD7A3202F1B514152B81E257C815441E17A14EE2C1B514148E17AB481815441CDCCCC5C2B1B51418FC2F5788781544152B81E452D1B5141AE47E1FA87815441D7A3706D351B51419A999979898154410AD7A340371B514152B81EC589815441295C8FD23C1B5141B81E85DB8A8154417B14AE373A1B5141B81E853B99815441CDCCCC6C3A1B5141AE47E15A9A815441EC51B83E421B5141000000B0968154417B14AEB7441B51418FC2F528958154413D0AD763451B51417B14AEF79581544185EB51B8451B51415C8FC2659681544152B81E555A1B5141000000408E81544148E17AA45D1B51419A9999598C815441EC51B84E5F1B5141B81E856B8C8154413D0AD7A3601B51419A9999F989815441000000F0621B51411F85EBC185815441
+</a>
+
+<b>
+0106000000010000000103000000010000002C000000BB3C8EAC5B1B5141D2DA79B78C815441B0C21B425C1B5141E5513F1F8D815441ECE8C2295C1B5141BA04822D8D815441EC51B84E5F1B5141B81E856B8C8154413D0AD7A3601B51419A9999F989815441000000F0621B51411F85EBC185815441D7A3708D681B514148E17A447D815441713D0A37701B5141666666767281544185EB51A8771B514152B81EE5698154415C8FC2C57B1B51419A9999B9638154411F85EBF17C1B514185EB517861815441C3F5286C7C1B51411F85EBC1608154413D0AD793791B5141713D0A4760815441EC51B86E751B5141CDCCCC1C5F8154415C8FC2156F1B51417B14AEA75A81544148E17A146A1B51415C8FC2E55781544166666666671B51413D0AD7B3558154417B14AE57641B51410AD7A34053815441D7A370ED5E1B51419A9999694F8154417B14AE775A1B51411F85EB914C81544133333303581B51410AD7A3B04B815441F6285C2F551B51418FC2F5384B8154413D0AD703531B5141B81E85CB4A81544175151CDB4D1B5141D791941A4A8154410F3AF1034D1B5141CD91A4304B8154410AA45F074A1B51414C6BB30C4F81544181C8CAF6481B51414442048C5081544148A1D78C461B5141CB98980B54815441C57ADE26431B514154476DF8588154411C3115E0401B51417CCCD3445C8154413B6964E53E1B51418BE2311A5F81544121E783FD3C1B5141C018A1D461815441DE422E593A1B51419906DB9C65815441D92B194F381B5141BDF9418868815441EFCCF201351B5141711028426D815441FA585AEC341B5141942A9D706D815441F02ABAA9341B5141A89E881B6E8154419C76B9B4331B5141D7950E9070815441C31E2F95331B5141D3EFF3E5708154416F60D0053B1B51418966880F768154417D889EE4461B5141A772174C7E815441474C0B844F1B5141C12EC64784815441F4667AE5581B51417C4613CA8A815441BB3C8EAC5B1B5141D2DA79B78C815441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>322183 - 3392696
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000034000000000000F0621B51411F85EBC185815441D7A3708D681B514148E17A447D815441713D0A37701B5141666666767281544185EB51A8771B514152B81EE5698154415C8FC2C57B1B51419A9999B9638154411F85EBF17C1B514185EB517861815441C3F5286C7C1B51411F85EBC1608154413D0AD793791B5141713D0A4760815441EC51B86E751B5141CDCCCC1C5F8154415C8FC2156F1B51417B14AEA75A81544148E17A146A1B51415C8FC2E55781544166666666671B51413D0AD7B3558154417B14AE57641B51410AD7A34053815441D7A370ED5E1B51419A9999694F8154417B14AE775A1B51411F85EB914C81544133333303581B51410AD7A3B04B815441F6285C2F551B51418FC2F5384B8154413D0AD703531B5141B81E85CB4A815441333333634B1B51418FC2F5D8498154417B14AE974A1B5141B81E854B4981544133333343491B5141A4703DBA48815441D7A3707D421B51411F85EBE14481544185EB51D8321B514185EB51483B8154419A9999D9261B5141EC51B80E33815441D7A3703D261B51418FC2F528398154417B14AE77271B5141D7A3704D40815441C3F528BC291B5141D7A370AD468154413D0AD7132C1B514152B81E854C815441AE47E18A2F1B514133333333538154411F85EBC1361B514114AE4701558154418FC2F5D83B1B51417B14AE77568154411F85EB31371B51410000008067815441B81E85EB361B514114AE475168815441C3F5289C301B514114AE4781788154410AD7A3202F1B514152B81E257C815441E17A14EE2C1B514148E17AB481815441CDCCCC5C2B1B51418FC2F5788781544152B81E452D1B5141AE47E1FA87815441D7A3706D351B51419A999979898154410AD7A340371B514152B81EC589815441295C8FD23C1B5141B81E85DB8A8154417B14AE373A1B5141B81E853B99815441CDCCCC6C3A1B5141AE47E15A9A815441EC51B83E421B5141000000B0968154417B14AEB7441B51418FC2F528958154413D0AD763451B51417B14AEF79581544185EB51B8451B51415C8FC2659681544152B81E555A1B5141000000408E81544148E17AA45D1B51419A9999598C815441EC51B84E5F1B5141B81E856B8C8154413D0AD7A3601B51419A9999F989815441000000F0621B51411F85EBC185815441
+</a>
+
+<b>
+0106000000010000000103000000010000002C000000BB3C8EAC5B1B5141D2DA79B78C815441B0C21B425C1B5141E5513F1F8D815441ECE8C2295C1B5141BA04822D8D815441EC51B84E5F1B5141B81E856B8C8154413D0AD7A3601B51419A9999F989815441000000F0621B51411F85EBC185815441D7A3708D681B514148E17A447D815441713D0A37701B5141666666767281544185EB51A8771B514152B81EE5698154415C8FC2C57B1B51419A9999B9638154411F85EBF17C1B514185EB517861815441C3F5286C7C1B51411F85EBC1608154413D0AD793791B5141713D0A4760815441EC51B86E751B5141CDCCCC1C5F8154415C8FC2156F1B51417B14AEA75A81544148E17A146A1B51415C8FC2E55781544166666666671B51413D0AD7B3558154417B14AE57641B51410AD7A34053815441D7A370ED5E1B51419A9999694F8154417B14AE775A1B51411F85EB914C81544133333303581B51410AD7A3B04B815441F6285C2F551B51418FC2F5384B8154413D0AD703531B5141B81E85CB4A81544175151CDB4D1B5141D791941A4A8154410F3AF1034D1B5141CD91A4304B8154410AA45F074A1B51414C6BB30C4F81544181C8CAF6481B51414442048C5081544148A1D78C461B5141CB98980B54815441C57ADE26431B514154476DF8588154411C3115E0401B51417CCCD3445C8154413B6964E53E1B51418BE2311A5F81544121E783FD3C1B5141C018A1D461815441DE422E593A1B51419906DB9C65815441D92B194F381B5141BDF9418868815441EFCCF201351B5141711028426D815441FA585AEC341B5141942A9D706D815441F02ABAA9341B5141A89E881B6E8154419C76B9B4331B5141D7950E9070815441C31E2F95331B5141D3EFF3E5708154416F60D0053B1B51418966880F768154417D889EE4461B5141A772174C7E815441474C0B844F1B5141C12EC64784815441F4667AE5581B51417C4613CA8A815441BB3C8EAC5B1B5141D2DA79B78C815441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>322195 - 2995598
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000032000000F6285C6F571D5141CDCCCC6CA6815441C3F5282C621D5141D7A3700DA781544148E17A34631D5141F6285CEFA181544166666606661D514148E17AD498815441CDCCCCEC681D5141333333D391815441A4703DBA6A1D5141000000E08D81544185EB51C86A1D5141EC51B87E8C815441B81E854B6A1D51417B14AE378B8154418FC2F538691D51418FC2F5588A8154417B14AEE7671D51417B14AE278A815441AE47E10A571D5141F6285C5F89815441295C8FC24B1D514185EB51F8888154413D0AD7334A1D51413D0AD7F388815441C3F5289C471D5141CDCCCCEC888154418FC2F5483E1D5141295C8FD288815441E17A145E3D1D5141000000D088815441F6285C7F3C1D5141CDCCCCFC888154413D0AD7E33B1D5141C3F5281C898154410AD7A3A0291D514114AE47218A8154413D0AD703191D51417B14AEB78B8154417B14AE77051D5141EC51B81E8E81544133333393041D514185EB51388E8154418FC2F5C8F61C51411F85EBC18F8154417B14AE87F01C5141EC51B86E918154419A999999E61C514152B81EA591815441000000A0DA1C514152B81EC592815441AE47E1CADA1C5141EC51B86E93815441713D0A87DB1C5141295C8F62978154411F85EBE1DB1C5141713D0A579A815441C3F5281CDC1C5141F6285C3F9D8154413D0AD713DC1C51417B14AEB7A781544148E17A24DC1C5141EC51B81EBA81544100000040DC1C514114AE47B1BE815441B81E855BDC1C514152B81E45C18154419A9999290B1D5141D7A370DDC8815441295C8F92231D5141295C8F72CC815441C3F5282C241D51413D0AD783C6815441A4703D1A251D5141CDCCCC3CBF8154410AD7A320251D51415C8FC2B5BC815441EC51B82E2B1D514185EB5118BD8154410AD7A3902C1D5141E17A141EBD815441333333332E1D51417B14AE47BD81544152B81E45331D5141AE47E12ABE815441000000E0371D514114AE4731BF815441AE47E1DA3E1D5141AE47E1CAC08154410AD7A330461D51415C8FC275C2815441C3F5283C4B1D514133333393C381544148E17A444E1D5141C3F5280CC481544148E17A54541D5141295C8FC2B9815441F6285C6F571D5141CDCCCC6CA6815441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000F27B123B381D514132931C6AA081544151E0068B3B1D51417D51EA498E815441E41FDE8B3B1D5141D40A0E4A8E81544172C0148C3B1D5141F177E3488E815441323CDF363D1D51412258EC908E81544163FBCB8B521D514110D0401B92815441FE1A0E09631D5141C514D7D794815441C2560C60671D514115F8399095815441EE7BC8F8671D51417D7EA020948154416730A507691D5141770A5F989181544107E656BB6A1D51410909EBD78D8154418DF060C86A1D5141D6D0AB7C8C815441D761664C6A1D5141EB7A853B8B8154418FC2F538691D51418FC2F5588A815441ECE3E80A681D5141A3D1D32C8A815441A7976735671D5141D73C681F8A815441080A2F58631D5141AFAC80F1898154414CE2D8ED581D5141CC9FC575898154410EE270934A1D5141DFD7DADF888154411D26FC863A1D5141ACA7B9208981544168DE0A95271D51413CB650538A815441B0181E4C201D5141895EBBFB8A815441916F7A6B201D5141FACCD2388C815441199F8EC0201D514197AD10958F81544147BF0B17221D514185D6011C9D8154413B229B3B231D5141BD4B79589D815441F27B123B381D514132931C6AA0815441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>322195 - 3807333
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000032000000F6285C6F571D5141CDCCCC6CA6815441C3F5282C621D5141D7A3700DA781544148E17A34631D5141F6285CEFA181544166666606661D514148E17AD498815441CDCCCCEC681D5141333333D391815441A4703DBA6A1D5141000000E08D81544185EB51C86A1D5141EC51B87E8C815441B81E854B6A1D51417B14AE378B8154418FC2F538691D51418FC2F5588A8154417B14AEE7671D51417B14AE278A815441AE47E10A571D5141F6285C5F89815441295C8FC24B1D514185EB51F8888154413D0AD7334A1D51413D0AD7F388815441C3F5289C471D5141CDCCCCEC888154418FC2F5483E1D5141295C8FD288815441E17A145E3D1D5141000000D088815441F6285C7F3C1D5141CDCCCCFC888154413D0AD7E33B1D5141C3F5281C898154410AD7A3A0291D514114AE47218A8154413D0AD703191D51417B14AEB78B8154417B14AE77051D5141EC51B81E8E81544133333393041D514185EB51388E8154418FC2F5C8F61C51411F85EBC18F8154417B14AE87F01C5141EC51B86E918154419A999999E61C514152B81EA591815441000000A0DA1C514152B81EC592815441AE47E1CADA1C5141EC51B86E93815441713D0A87DB1C5141295C8F62978154411F85EBE1DB1C5141713D0A579A815441C3F5281CDC1C5141F6285C3F9D8154413D0AD713DC1C51417B14AEB7A781544148E17A24DC1C5141EC51B81EBA81544100000040DC1C514114AE47B1BE815441B81E855BDC1C514152B81E45C18154419A9999290B1D5141D7A370DDC8815441295C8F92231D5141295C8F72CC815441C3F5282C241D51413D0AD783C6815441A4703D1A251D5141CDCCCC3CBF8154410AD7A320251D51415C8FC2B5BC815441EC51B82E2B1D514185EB5118BD8154410AD7A3902C1D5141E17A141EBD815441333333332E1D51417B14AE47BD81544152B81E45331D5141AE47E12ABE815441000000E0371D514114AE4731BF815441AE47E1DA3E1D5141AE47E1CAC08154410AD7A330461D51415C8FC275C2815441C3F5283C4B1D514133333393C381544148E17A444E1D5141C3F5280CC481544148E17A54541D5141295C8FC2B9815441F6285C6F571D5141CDCCCC6CA6815441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000F27B123B381D514132931C6AA081544151E0068B3B1D51417D51EA498E815441E41FDE8B3B1D5141D40A0E4A8E81544172C0148C3B1D5141F177E3488E815441323CDF363D1D51412258EC908E81544163FBCB8B521D514110D0401B92815441FE1A0E09631D5141C514D7D794815441C2560C60671D514115F8399095815441EE7BC8F8671D51417D7EA020948154416730A507691D5141770A5F989181544107E656BB6A1D51410909EBD78D8154418DF060C86A1D5141D6D0AB7C8C815441D761664C6A1D5141EB7A853B8B8154418FC2F538691D51418FC2F5588A815441ECE3E80A681D5141A3D1D32C8A815441A7976735671D5141D73C681F8A815441080A2F58631D5141AFAC80F1898154414CE2D8ED581D5141CC9FC575898154410EE270934A1D5141DFD7DADF888154411D26FC863A1D5141ACA7B9208981544168DE0A95271D51413CB650538A815441B0181E4C201D5141895EBBFB8A815441916F7A6B201D5141FACCD2388C815441199F8EC0201D514197AD10958F81544147BF0B17221D514185D6011C9D8154413B229B3B231D5141BD4B79589D815441F27B123B381D514132931C6AA0815441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>323591 - 189774
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000B000000E17A147E25C9504185EB51F86FA654410AD7A3C0FEC850415C8FC2056CA65441F6285C2FFDC85041A4703D5A6CA654415C8FC235FCC85041295C8FA26CA654411F85EB21FAC85041CDCCCCBC6DA65441C3F528CCF6C850415C8FC22570A65441AE47E1AAF4C850411F85EBF171A65441E17A145EF3C85041C3F5287C73A65441295C8FB2F0C85041EC51B86E78A65441666666B61FC9504185EB51B87CA65441E17A147E25C9504185EB51F86FA65441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000001184D7322C9504146EB36AE76A65441034A147E25C95041505752F86FA654418467B806FFC8504188A7E60C6CA65441EAB62A65FEC850412D7B04196CA65441F6285C2FFDC85041A4703D5A6CA654415C8FC235FCC85041295C8FA26CA654411F85EB21FAC85041CDCCCCBC6DA65441C3F528CCF6C850415C8FC22570A6544115821048F5C8504183C4456D71A65441AE47E1AAF4C850411F85EBF171A654411A872A5EF3C8504187D70E7C73A654413719155EF3C85041D935297C73A65441C6AC90B2F0C850419E70B86E78A654415C39C789F7C8504176CE6B0E79A654416EB866B61FC95041923651B87CA6544101184D7322C9504146EB36AE76A65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>323591 - 389148
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000B000000E17A147E25C9504185EB51F86FA654410AD7A3C0FEC850415C8FC2056CA65441F6285C2FFDC85041A4703D5A6CA654415C8FC235FCC85041295C8FA26CA654411F85EB21FAC85041CDCCCCBC6DA65441C3F528CCF6C850415C8FC22570A65441AE47E1AAF4C850411F85EBF171A65441E17A145EF3C85041C3F5287C73A65441295C8FB2F0C85041EC51B86E78A65441666666B61FC9504185EB51B87CA65441E17A147E25C9504185EB51F86FA65441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000001184D7322C9504146EB36AE76A65441034A147E25C95041505752F86FA654418467B806FFC8504188A7E60C6CA65441EAB62A65FEC850412D7B04196CA65441F6285C2FFDC85041A4703D5A6CA654415C8FC235FCC85041295C8FA26CA654411F85EB21FAC85041CDCCCCBC6DA65441C3F528CCF6C850415C8FC22570A6544115821048F5C8504183C4456D71A65441AE47E1AAF4C850411F85EBF171A654411A872A5EF3C8504187D70E7C73A654413719155EF3C85041D935297C73A65441C6AC90B2F0C850419E70B86E78A654415C39C789F7C8504176CE6B0E79A654416EB866B61FC95041923651B87CA6544101184D7322C9504146EB36AE76A65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>323853 - 234309
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A000000EC51B82E18C65041D7A370FDA5AB54410AD7A3B016C650415C8FC2F5A4AB5441CDCCCC1C15C65041EC51B83EA4AB54413D0AD7E30AC6504152B81EF5A1AB544148E17AA40CC65041A4703DBAC8AB5441295C8F420EC650415C8FC2A5C8AB5441A4703DBA19C6504152B81E15C8AB54415C8FC29520C65041F6285CBFC7AB54419A9999491FC65041333333E3AAAB5441EC51B82E18C65041D7A370FDA5AB5441
+</a>
+
+<b>
+0106000000010000000103000000010000000800000017113CBA19C65041A4C91E15C8AB544184FDF2F51CC650415660AFECC7AB54411364C29520C650418F935BBFC7AB54411A43675220C65041575F29E5C1AB54419A9999491FC65041333333E3AAAB54411F1424661DC650417C37F395A9AB54419C6EB82E18C65041CF0D72FDA5AB544117113CBA19C65041A4C91E15C8AB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>324422 - 191558
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000011000000000000001E9050410AD7A3C03D265541000000E020905041295C8F523D26554185EB51582290504185EB51483C26554185EB511826905041295C8FC23B265541CDCCCCAC21905041F6285C1F3A26554152B81E351F905041295C8FA2382655419A9999A91B90504152B81E9536265541AE47E10A169050413D0AD7A3342655413333333308905041D7A3704D3026554114AE4711FB8F5041C3F5286C2B265541CDCCCC1CF98F5041666666262E265541713D0A37F18F50417B14AED72B2655418FC2F558ED8F50410AD7A3402D265541E17A141EF28F50410AD7A370312655418FC2F5D803905041000000203526554148E17AD415905041E17A146E3B265541000000001E9050410AD7A3C03D265541
+</a>
+
+<b>
+0106000000010000000103000000010000002F00000008F773FF21905041542031873C26554185EB51582290504185EB51483C265541F0CF5A8F229050411BDEA6403C2655417CA3712924905041A8B2A0773B2655415911F9C52190504161A0312B3B265541377F80621F905041F7048BB83A265541A95AA2C91E905041A7499DB43826554114ED07FF1C9050418620281439265541A048204F1A9050417C17E7D636265541B2889B43199050417377A95C372655418656E56517905041029346B835265541750D2934169050413EA5B5043626554191EDE1A2149050418E5762CB3526554115097FFE12905041003384323526554115097FFE12905041EFE9C7003426554114A07B3B109050411B133DA133265541392072240E905041A8D758B43326554164E9243F0D9050412E53B895322655417629A0330C9050418DEE5E08332655417FC9DDAD0B905041E740494932265541A36E8CD3019050411CA1F8A02E2655419BC50D1C009050413F2A30C72E2655418A7C51EAFE8F5041863C9F132F2655411FE1AA77FE8F50413781B10F2D2655411A11B1D0FA8F504146B0B3C52B26554167BCABF3F98F5041315258FA2C265541FCE52E51F98F50412541361B2E2655411ED4CF24F98F50412541361B2E265541CDCCCC1CF98F5041666666262E2655413B2982F6F88F50412541361B2E26554105866CCBF88F50412541361B2E265541AE210010F58F50416C53A5672E265541299D5FF1F38F504175F3E2E12D26554157BD9354F18F504186D39B502C265541C74FEF0EEE8F5041347C64E02D2655418DFD3228EE8F50410D5992F62D265541FD55D93BEE8F50418A66D2072E265541E7FCB579EE8F50412A1F213E2E26554121F4E039F28F50411C0AFC6331265541F2297AD703905041E7A94C0C3526554152A0680D0C90504174D76BE2372655417934DFC0139050411933B0B33A265541D890EC9215905041984918573B265541E7C3925E1D9050418432AA8E3D265541D583176A1E9050418DD2E7083D265541987AE95A20905041D4E456553D26554108F773FF21905041542031873C265541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>325165 - 146824
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000030000000103000000020000000C00000052B81ED5E788514114AE47913FA15441713D0AF7E588514148E17AB43EA154415C8FC215E5885141A4703DFA3DA154411F85EB91E38851415C8FC22541A15441EC51B86EE5885141EC51B8AE42A15441E17A14EEE8885141E17A14AE44A15441713D0AD7EB8851413D0AD78345A1544185EB5158EE8851410AD7A3A045A15441D7A370DDEF8851413D0AD7F343A15441713D0AC7F0885141713D0A2741A154415C8FC275E98851413D0AD7133DA1544152B81ED5E788514114AE47913FA154410800000000000040EE885141D7A3700D41A15441C3F5284CEE8851419A9999E941A1544114AE47D1ED8851410AD7A37042A15441D7A3709DEB8851411F85EB3141A154419A9999D9EA8851413D0AD7C340A154419A9999A9EB885141AE47E1DA3FA154419A999919ED8851410AD7A33040A1544100000040EE885141D7A3700D41A154410103000000010000000F000000C3F5284C3B895141333333F350A15441EC51B85E378951417B14AE8752A1544185EB516835895141EC51B80E53A15441EC51B81E35895141CDCCCCBC55A15441CDCCCCBC34895141B81E85FB56A15441EC51B81E33895141E17A14DE56A1544152B81E053389514148E17A7459A154413333337334895141D7A370DD58A15441333333C335895141D7A370DD58A15441AE47E1EA37895141F6285CDF57A1544185EB51F8398951413D0AD7E357A15441B81E85AB3B895141D7A3708D57A15441295C8F623D895141F6285C1F56A15441C3F5281C3D8951411F85EB1152A15441C3F5284C3B895141333333F350A15441010300000002000000220000003D0AD7430D895141CDCCCC9C63A15441000000B00D895141000000D063A154419A9999690F8951410AD7A3A064A15441C3F528CC118951410AD7A3C065A154413D0AD7A3188951413333330365A15441E17A147E1E89514114AE476164A154411F85EB11218951410AD7A30062A1544185EB514821895141EC51B87E5FA1544152B81EC51B8951419A9999095FA1544148E17A84168951417B14AEF75DA154413D0AD703138951415C8FC2055CA15441F6285C5F11895141AE47E1BA58A15441713D0A8712895141EC51B8CE51A1544166666606128951418FC2F55850A154417B14AEB70D8951413D0AD7634EA15441000000D00A895141666666864AA154419A99994907895141CDCCCC3C45A1544114AE4741F2885141295C8FE23FA154413D0AD713F18851415C8FC22544A15441CDCCCCCCF0885141295C8FF245A15441CDCCCCCCF0885141AE47E13A47A154413D0AD713F188514152B81E4548A1544114AE4751F38851418FC2F5C84BA1544166666616F68851411F85EB414EA15441EC51B81EF988514148E17AD450A1544100000050FA8851419A9999D952A15441295C8F02FC88514148E17AB455A15441295C8F02FD8851410AD7A32057A15441333333A3FE885141CDCCCCDC59A154413333331301895141000000705EA15441295C8F82048951413D0AD73363A15441EC51B8CE068951419A99993965A1544185EB51B80789514114AE47F165A154413D0AD7430D895141CDCCCC9C63A1544106000000EC51B8CE0689514148E17A244CA154417B14AEA7098951418FC2F5584EA15441AE47E11A0989514185EB511850A15441CDCCCC2C0789514152B81EA550A154410000001005895141A4703D2A4EA15441EC51B8CE0689514148E17A244CA15441
+</a>
+
+<b>
+010600000001000000010300000003000000A2000000CDCCCCCCF0885141AE47E13A47A1544182D7AB09F18851410697021F48A1544158196E1EF188514172E7BC5548A154416ADD6529F188514118D7F26648A1544114AE4751F38851418FC2F5C84BA1544110AFE3FDF48851419C5389474DA1544186A45E58F58851411D914C984DA1544195F8333AF88851414873A01250A15441EC51B81EF988514148E17AD450A1544100000050FA8851419A9999D952A154410952E740FB88514129ADC56E54A15441D1FC3942FB88514127B1F97054A15441EE3A695BFC8851415EE1DE3256A15441295C8F02FD8851410AD7A32057A15441D14BF753FD885141342D71A957A1544191BDE07CFD8851411CB631EE57A15441333333A3FE885141CDCCCCDC59A15441DE821FEDFE885141C2468C675AA15441BFC51875FF885141667A91525BA15441B04F06C1FF885141E55845F55BA154413333331301895141000000705EA154413CAFE75B0389514120EC189B61A15441A28EF7A703895141823872F861A154412A074CA0048951418AA1664163A15441EC2DEBB5058951413DC6684264A1544129EDAC44068951410AB742A864A15441CF61A1AC06895141523C971B65A15441146EAB7907895141E49704C065A154414D686FD4078951412651AFFB65A15441A001EF82088951417C53433C66A1544114AE47F1098951413D0AD7C366A15441086359090C8951413039E45567A154411476EC730C89514124C8C26D67A15441812FF9370D89514141CC956167A154414DE245790D895141539A875D67A1544128CF23C00D895141D2E4205967A1544198C9A6220E8951419EA9025367A154413DD8BD500E89514105E1255067A15441AD55436E0E895141E684504E67A1544148E17AC40E8951418FC2F54867A15441A4703D4A11895141295C8F2267A15441D757724E11895141AD9F212267A154417859B57311895141C599551E67A1544141B3585912895141062EEF0667A15441A0705331138951411910EDF066A15441F5ACD1AC13895141EA9357E466A154412F15C9241489514139171ED866A1544146227854158951417E805EA066A154411F643C9D178951419F9F582A66A15441F1B8ECBF17895141C70BCE1E66A154416F72918D18895141DC9A62DA65A15441E6C481AD18895141F0E0336C65A154413D0AD7A3188951413333330365A15441FE8FFCA718895141427AC00265A154411D7B51A6188951410244E2E264A154413483B017198951419203AEF664A15441E17A147E1E89514114AE476164A154411F85EB11218951410AD7A30062A1544120ACD04621895141DF3D7A905FA15441DFAF782D2189514170E37D7C5FA154418D258F0221895141D429EE785FA154410E9E63B22089514199D946725FA15441DEF0D38F20895141948D686F5FA15441E58DBE5220895141A3C1566A5FA1544102068F531F895141050429555FA1544152B81EC51B8951419A9999095FA154413DF09C031B89514140222EE25EA15441FC8524AF198951415C77D29C5EA154414490F3BD18895141B53EB06B5EA15441C15B47BC17895141B98232375EA15441A629C4B517895141CDE1DE355EA1544148E17A84168951417B14AEF75DA1544121AE7F34158951415C8B1A3D5DA154419E59161D14895141DC0BF1A15CA15441D0206AEF138951413D2694885CA154413D0AD703138951415C8FC2055CA154418FD636FE118951412F5450F959A154415ECC43E4118951416FEA4BC559A154416245F0AA1189514184D9615259A15441AEA60289118951410AF35E0E59A15441F6285C5F11895141AE47E1BA58A154416A396976128951417DC5623252A1544187690287128951415A3CE7CE51A154410B15735412895141E015BB3B51A15441FCD4652312895141A95636AD50A154411DA4502012895141AE5D41A450A15441871C911D12895141A147459C50A15441AC646C121289514100C9E47B50A15441901B550F128951410EBAE97250A15441BBC916F510895141290BDDDC4FA15441C2001E2A0F895141D5732E0C4FA154417B14AEB70D8951413D0AD7634EA1544119FFC0AA0D895141D06BA4524EA15441559140A30D89514110FA024F4EA15441B99BFA0D0D895141A3080F824DA15441000000D00A895141666666864AA154419A99994907895141CDCCCC3C45A1544114AE47F10889514185EB518845A154413D0AD7A30A895141713D0A3745A154418B2DE9240C89514172F6B39245A154410E3CCC850D8951416A70B4E645A1544148E17A5411895141EC51B8CE46A15441C3F5280C158951419A9999F947A154411F85EB612389514114AE47A14AA154410E3CCAD324895141B2B75AED4AA15441F6AB8A0426895141DD08092C4BA154416C07C64926895141E159463A4BA15441E17A14FE26895141F6285C5F4BA15441333333132B895141AE47E18A4CA154417B14AE572C89514185EB51B84AA15441A4703D6A2E895141666666464BA154417B14AEA7308951410000004049A15441713D0AC7328951417B14AEB748A15441F2AD5F1934895141BAD094A446A15441E3310942348951411880C06446A15441244072D63489514145CFD22045A15441F47AE4E5348951417645FEFE44A154410E4A94F134895141819F65E544A15441062DDA263589514132FAB77044A15441E216B94A358951419698272244A15441A4703D8A35895141713D0A9743A1544185EB51B83389514152B81E9543A154414BC599A4328951418903326443A154419945A8BD318951412148373B43A1544152B81E6530895141E17A14FE42A15441E17A14AE2A8951418FC2F5C841A154417B14AE371A8951413D0AD7233EA15441D7A3703D19895141C3F528EC3DA154418FC2F59815895141CDCCCCEC3CA154410000004014895141E17A148E3CA1544179EFC1F6108951411877E4813BA1544183AE54541089514143631C4E3BA1544106399CDD0C895141ECC86C333AA15441D8E8A2BF0C8951419489DE293AA15441439910720C89514170B823113AA15441070A4A4C0B895141B2B4E0C239A15441666666060B8951410AD7A3B039A15441AE47E10A068951413333336338A15441AB14719E058951410A64D94638A1544199558C66038951416D1760B237A1544187FBC8F202895141B3071C9437A154415FD91E8602895141FD12B37737A15441D36BD2330089514117D0D4F736A154415E5581F9F48851416582609D34A154418BAE455DF48851410A7B608634A154418FC2F528F4885141295C8FF236A154411F85EBE1F388514148E17A9439A154415C8FC265F388514185EB51F83BA15441717E773CF388514190BFD1853CA1544169818E27F3885141B1CF78CD3CA1544152778D0FF388514108FEB91F3DA1544193904605F3885141904AF1423DA15441B43D38F7F2885141E5A61B733DA15441DFA42DF4F2885141C4AA877D3DA15441E814E6ECF28851414B8779963DA154417A7C27FFF1885141DBB3EED140A15441A82EA577F1885141432178BC42A15441D3930934F1885141B1EC34B143A154413060F018F1885141DA4C4D1344A154414A0472E2F08851412955286645A15441CDCCCCCCF0885141B080576046A15441CDCCCCCCF0885141AE47E13A47A1544106000000CDCCCC2C0789514152B81EA550A154410000001005895141A4703D2A4EA15441EC51B8CE0689514148E17A244CA154417B14AEA7098951418FC2F5584EA15441AE47E11A0989514185EB511850A15441CDCCCC2C0789514152B81EA550A1544106000000000000B00D895141000000D063A154419A9999690F8951410AD7A3A064A15441713D0AE70E895141CDCCCC2C65A15441713D0A870E8951410AD7A35065A15441F6285C4F0D8951410AD7A36064A15441000000B00D895141000000D063A15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>325176 - 146827
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000002000000010300000001000000190000001F85EBD1E188514152B81E0542A15441EC51B8AEE1885141295C8F9242A1544185EB51D8E1885141D7A3702D43A15441F6285C9FE38851411F85EBA144A15441A4703D3AE4885141B81E85AB48A15441AE47E12AE28851419A9999E948A1544100000090E188514148E17AF448A15441C3F5285CE1885141F6285CEF46A15441713D0A17E0885141000000F046A154419A9999A9E08851419A9999194CA154413D0AD7F3E0885141666666B64DA154419A9999A9E188514152B81E954BA1544148E17AA4E18851411F85EB914AA154418FC2F568E2885141666666F649A15441AE47E1DAE28851418FC2F5B849A154410AD7A310E48851418FC2F5B849A1544152B81ED5E488514152B81E854AA1544185EB5128E5885141666666664BA154417B14AE47E68851417B14AE574BA15441000000A0E68851413D0AD7534AA154410AD7A380E7885141E17A14BE47A1544148E17A54E58851413D0AD7E345A15441CDCCCC8CE4885141A4703D1A44A154410AD7A320E38851411F85EBC142A154411F85EBD1E188514152B81E0542A15441010300000001000000140000003D0AD793CA885141EC51B89E5DA1544152B81E45CA885141F6285CDF5EA15441000000E0D088514114AE47F162A1544133333373D48851418FC2F5585FA15441713D0A37D98851410AD7A3605CA15441000000A0DB885141D7A3705D5BA15441295C8FD2DE88514114AE470152A1544148E17AB4DD885141666666264AA15441295C8FB2DD88514185EB513849A154415C8FC2A5DD885141CDCCCCCC43A1544166666636DE885141333333E340A15441295C8FF2DC88514114AE476140A15441B81E858BDD885141333333F33EA1544114AE4711DD885141D7A3709D3EA15441D7A3701DDB88514185EB51C842A154410AD7A3F0D88851415C8FC27547A15441295C8FE2D78851419A9999B949A154418FC2F528D48851415C8FC2B551A15441D7A3701DCE885141C3F528CC4FA154413D0AD793CA885141EC51B89E5DA15441
+</a>
+
+<b>
+01060000000100000001030000000100000036000000ACF92928E78851410AD8A27247A1544148E17A54E58851413D0AD7E345A154419C1F0A98E4885141684EFF3344A1544158A40F8EE48851414649211D44A154419102931DE3885141B220C1C142A15441313F880CE288514173302E2642A1544117C93109E2885141313A4C2442A15441E11BB308E288514163C6042442A15441BF726304E28851415040962142A1544126E241F2E188514100295C1742A154414BC5CAE8E18851411A65051242A154415BBD99E6E18851417EF1C81042A154413AEFB2DAE1885141D161120A42A15441F39EF5D3E18851418036450642A15441CFB8A3B1E1885141CA29D48642A15441EC51B8AEE1885141295C8F9242A15441F42BA7D2E18851416064571843A154412E7317D9E1885141C154122E43A15441F6285C9FE38851411F85EBA144A15441CF0C6AA1E388514174ED8DAE44A15441F383ADBBE38851419B7BE65E45A15441964176BCE38851411B23226445A15441CFCB72BDE3885141BF79B76A45A154411E2862C4E38851418E70FF9845A15441DF6869C6E3885141DEB388A645A154417D0CFDCCE3885141098F6CD245A154412AC149D2E38851416F9BCAF545A15441040666D4E38851410F1FE00346A154411DB6C6ECE3885141CBAF8FA646A15441A5B69A3BE488514123F986AA48A15441332B233AE48851410FCCD5AA48A15441A4703D3AE4885141B81E85AB48A15441AE47E12AE28851419A9999E948A1544100000090E188514148E17AF448A15441C3F5285CE1885141F6285CEF46A15441713D0A17E0885141000000F046A15441B4D34678E08851417216D45C4AA154414D2DFE91E0885141EA3AB9444BA154419A9999A9E08851419A9999194CA15441A5901EDCE08851415D5881324DA154415EA300F5E0885141EF9AE9B24DA154419A9999A9E188514152B81E954BA1544148E17AA4E18851411F85EB914AA154418FC2F568E2885141666666F649A15441AE47E1DAE28851418FC2F5B849A154418FFD2A0FE4885141C9E68BB749A154419FCC1C1FE4885141D554BFC149A15441A9597791E48851411D5FD23E4AA1544152B81ED5E488514152B81E854AA1544185EB5128E5885141666666664BA154417B14AE47E68851417B14AE574BA15441000000A0E68851413D0AD7534AA15441D56B0480E7885141521BEABF47A15441ACF92928E78851410AD8A27247A15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>325406 - 1182046
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000020000000103000000010000000B000000713D0A471A86514152B81EF5B09B5441333333332086514185EB5158B79B54411F85EBF12C8651418FC2F518C59B5441A4703DFA4786514152B81E45BB9B54411F85EBA150865141F6285C1FB89B54411F85EB214D86514185EB5158B49B54419A999959418651411F85EBA1A79B54413D0AD7433386514100000070989B5441A4703D0A2B865141CDCCCCEC9C9B544133333393138651419A9999B9A99B5441713D0A471A86514152B81EF5B09B544101030000000100000007000000295C8FC20D86514133333373A39B5441D7A370DD1286514152B81EF5A89B5441F6285C8F32865141C3F528AC979B5441666666762C865141EC51B81E919B54415C8FC26525865141C3F5288C949B5441295C8F820E8651413D0AD713A19B5441295C8FC20D86514133333373A39B5441
+</a>
+
+<b>
+01060000000100000001030000000100000018000000867F56D932865141B0511014989B5441F6285C8F32865141C3F528AC979B54414A6863232D8651415EE89DD8919B5441F4DCB05825865141538E7609969B5441DF7BC3330E8651417E68190DA29B5441D9480FD80D865141D513658AA39B544130838AC211865141CC85EAC3A79B5441F94CA3EF128651419C1932EBA89B5441968553E41286514138535DF1A89B54417DE79AC51386514110AAFDEFA99B54411C7FF82D16865141F534B282AC9B5441B12EDE491A8651415727B8F7B09B54415571026E1D865141FCA53C5BB49B5441333333332086514185EB5158B79B54415F4BD48822865141293631DDB99B54416F0454DF2C8651410704E604C59B5441A4703DFA4786514152B81E45BB9B54411F85EBA150865141F6285C1FB89B54411F85EB214D86514185EB5158B49B54419A999959418651411F85EBA1A79B5441112D08FE35865141B0EA36619B9B54413CEA2C4334865141E62D7583999B54410EB81A58338651417181DC85989B5441867F56D932865141B0511014989B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>325406 - 3378659
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000020000000103000000010000000B000000713D0A471A86514152B81EF5B09B5441333333332086514185EB5158B79B54411F85EBF12C8651418FC2F518C59B5441A4703DFA4786514152B81E45BB9B54411F85EBA150865141F6285C1FB89B54411F85EB214D86514185EB5158B49B54419A999959418651411F85EBA1A79B54413D0AD7433386514100000070989B5441A4703D0A2B865141CDCCCCEC9C9B544133333393138651419A9999B9A99B5441713D0A471A86514152B81EF5B09B544101030000000100000007000000295C8FC20D86514133333373A39B5441D7A370DD1286514152B81EF5A89B5441F6285C8F32865141C3F528AC979B5441666666762C865141EC51B81E919B54415C8FC26525865141C3F5288C949B5441295C8F820E8651413D0AD713A19B5441295C8FC20D86514133333373A39B5441
+</a>
+
+<b>
+01060000000100000001030000000100000018000000867F56D932865141B0511014989B5441F6285C8F32865141C3F528AC979B54414A6863232D8651415EE89DD8919B5441F4DCB05825865141538E7609969B5441DF7BC3330E8651417E68190DA29B5441D9480FD80D865141D513658AA39B544130838AC211865141CC85EAC3A79B5441F94CA3EF128651419C1932EBA89B5441968553E41286514138535DF1A89B54417DE79AC51386514110AAFDEFA99B54411C7FF82D16865141F534B282AC9B5441B12EDE491A8651415727B8F7B09B54415571026E1D865141FCA53C5BB49B5441333333332086514185EB5158B79B54415F4BD48822865141293631DDB99B54416F0454DF2C8651410704E604C59B5441A4703DFA4786514152B81E45BB9B54411F85EBA150865141F6285C1FB89B54411F85EB214D86514185EB5158B49B54419A999959418651411F85EBA1A79B5441112D08FE35865141B0EA36619B9B54413CEA2C4334865141E62D7583999B54410EB81A58338651417181DC85989B5441867F56D932865141B0511014989B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>326475 - 1354014
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001200000048E17AF482235141713D0A0708BB544148E17A847C235141E17A14CE06BB544100000030732351410AD7A33006BB5441F6285CEF6B2351411F85EBE105BB544185EB51686A235141D7A3709D05BB544148E17AC465235141EC51B83E05BB5441295C8FF25E23514148E17A7404BB544114AE476155235141713D0AE703BB54417B14AE774D235141A4703D4A03BB54413D0AD7934C235141D7A370FD07BB5441A4703DFA62235141E17A148E0ABB5441000000307D235141CDCCCCBC0CBB5441B81E85BB8223514185EB51580DBB5441CDCCCC5C8B2351410AD7A3200FBB5441713D0A0797235141D7A3703D12BB54419A99998999235141AE47E1CA0DBB54419A99995996235141295C8FD20CBB544148E17AF482235141713D0A0708BB5441
+</a>
+
+<b>
+010600000001000000010300000001000000270000003F14EA9799235141491719CF0DBB54416F3B2DEE99235141DED6E0590BBB544123A89DDC9A235141A1CD77AC0ABB54414DCDCCFB9A23514159C5E3F708BB5441D67E24E3992351417049780B06BB54413D0AD7A398235141CDCCCC4C01BB54416666667696235141333333A3FCBA54419A9999399523514152B81E45F9BA544152B81E3595235141D7A3708DF7BA54419A99996995235141E17A143EF6BA544148E17A249623514148E17AC4F4BA5441C3F528BC9723514152B81ED5F1BA54413D0AD7A394235141713D0A57F0BA5441295C8F228F235141666666C6EEBA5441CDCCCCBC8D23514148E17A84EEBA54415C8FC2F588235141295C8FC2EEBA5441713D0A3783235141E17A14FEEEBA54413D0AD7137F2351417B14AE37EFBA5441A4703DFA7A2351415C8FC2F5EEBA544152B81E25772351415C8FC255EFBA5441666666C672235141C3F528FCEFBA5441713D0A076C2351417B14AED7F0BA5441CDCCCCFC69235141EC51B8FEF5BA54418FC2F54867235141F6285C7FF8BA5441666666665F235141AE47E17AFBBA5441CDCCCCBC62235141CDCCCC9CFDBA54418FC2F548672351417B14AE1701BB544185EB51686A235141D7A3709D05BB5441D2BF289C732351418EFBC43706BB5441F1AD96FA7A23514186B81DB406BB54411D3CD9A6812351411AB3AEC707BB54410FFF9E83842351410F18B86908BB5441DCA29D05882351415BA9BA4709BB5441E17DECFE8B23514186A23C430ABB5441511F0FDC8E23514156297DF80ABB5441632CB1F591235141569FB2BC0BBB54414E00FDB794235141577D506B0CBB5441D63C650197235141A1599F050DBB54413F14EA9799235141491719CF0DBB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>326475 - 3484953
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001200000048E17AF482235141713D0A0708BB544148E17A847C235141E17A14CE06BB544100000030732351410AD7A33006BB5441F6285CEF6B2351411F85EBE105BB544185EB51686A235141D7A3709D05BB544148E17AC465235141EC51B83E05BB5441295C8FF25E23514148E17A7404BB544114AE476155235141713D0AE703BB54417B14AE774D235141A4703D4A03BB54413D0AD7934C235141D7A370FD07BB5441A4703DFA62235141E17A148E0ABB5441000000307D235141CDCCCCBC0CBB5441B81E85BB8223514185EB51580DBB5441CDCCCC5C8B2351410AD7A3200FBB5441713D0A0797235141D7A3703D12BB54419A99998999235141AE47E1CA0DBB54419A99995996235141295C8FD20CBB544148E17AF482235141713D0A0708BB5441
+</a>
+
+<b>
+010600000001000000010300000001000000270000003F14EA9799235141491719CF0DBB54416F3B2DEE99235141DED6E0590BBB544123A89DDC9A235141A1CD77AC0ABB54414DCDCCFB9A23514159C5E3F708BB5441D67E24E3992351417049780B06BB54413D0AD7A398235141CDCCCC4C01BB54416666667696235141333333A3FCBA54419A9999399523514152B81E45F9BA544152B81E3595235141D7A3708DF7BA54419A99996995235141E17A143EF6BA544148E17A249623514148E17AC4F4BA5441C3F528BC9723514152B81ED5F1BA54413D0AD7A394235141713D0A57F0BA5441295C8F228F235141666666C6EEBA5441CDCCCCBC8D23514148E17A84EEBA54415C8FC2F588235141295C8FC2EEBA5441713D0A3783235141E17A14FEEEBA54413D0AD7137F2351417B14AE37EFBA5441A4703DFA7A2351415C8FC2F5EEBA544152B81E25772351415C8FC255EFBA5441666666C672235141C3F528FCEFBA5441713D0A076C2351417B14AED7F0BA5441CDCCCCFC69235141EC51B8FEF5BA54418FC2F54867235141F6285C7FF8BA5441666666665F235141AE47E17AFBBA5441CDCCCCBC62235141CDCCCC9CFDBA54418FC2F548672351417B14AE1701BB544185EB51686A235141D7A3709D05BB5441D2BF289C732351418EFBC43706BB5441F1AD96FA7A23514186B81DB406BB54411D3CD9A6812351411AB3AEC707BB54410FFF9E83842351410F18B86908BB5441DCA29D05882351415BA9BA4709BB5441E17DECFE8B23514186A23C430ABB5441511F0FDC8E23514156297DF80ABB5441632CB1F591235141569FB2BC0BBB54414E00FDB794235141577D506B0CBB5441D63C650197235141A1599F050DBB54413F14EA9799235141491719CF0DBB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>326475 - 36809
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001200000048E17AF482235141713D0A0708BB544148E17A847C235141E17A14CE06BB544100000030732351410AD7A33006BB5441F6285CEF6B2351411F85EBE105BB544185EB51686A235141D7A3709D05BB544148E17AC465235141EC51B83E05BB5441295C8FF25E23514148E17A7404BB544114AE476155235141713D0AE703BB54417B14AE774D235141A4703D4A03BB54413D0AD7934C235141D7A370FD07BB5441A4703DFA62235141E17A148E0ABB5441000000307D235141CDCCCCBC0CBB5441B81E85BB8223514185EB51580DBB5441CDCCCC5C8B2351410AD7A3200FBB5441713D0A0797235141D7A3703D12BB54419A99998999235141AE47E1CA0DBB54419A99995996235141295C8FD20CBB544148E17AF482235141713D0A0708BB5441
+</a>
+
+<b>
+010600000001000000010300000001000000180000006B8224826A23514180022ADF04BB544185EB51686A235141D7A3709D05BB5441D2BF289C732351418EFBC43706BB5441F1AD96FA7A23514186B81DB406BB54411D3CD9A6812351411AB3AEC707BB54410FFF9E83842351410F18B86908BB5441DCA29D05882351415BA9BA4709BB5441E17DECFE8B23514186A23C430ABB5441511F0FDC8E23514156297DF80ABB5441632CB1F591235141569FB2BC0BBB54414E00FDB794235141577D506B0CBB5441D63C650197235141A1599F050DBB5441588FC65299235141879212BA0DBB5441BA4CE9DE992351412C503AC90BBB54416F3B2DEE99235141DED6E0590BBB544186A57B029A2351419F2C1C4B0BBB5441B1FF7E179A235141EFEC9B000BBB544173B77BAC99235141335811DF0ABB544147F2C38699235141582316A50BBB5441590F978599235141EEF6F0A50BBB5441BDBCA49297235141F417D6EA0ABB544185EB519889235141C3F5287C07BB54413D0AD71381235141A4703D4A06BB54416B8224826A23514180022ADF04BB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>326475 - 76546
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001200000048E17AF482235141713D0A0708BB544148E17A847C235141E17A14CE06BB544100000030732351410AD7A33006BB5441F6285CEF6B2351411F85EBE105BB544185EB51686A235141D7A3709D05BB544148E17AC465235141EC51B83E05BB5441295C8FF25E23514148E17A7404BB544114AE476155235141713D0AE703BB54417B14AE774D235141A4703D4A03BB54413D0AD7934C235141D7A370FD07BB5441A4703DFA62235141E17A148E0ABB5441000000307D235141CDCCCCBC0CBB5441B81E85BB8223514185EB51580DBB5441CDCCCC5C8B2351410AD7A3200FBB5441713D0A0797235141D7A3703D12BB54419A99998999235141AE47E1CA0DBB54419A99995996235141295C8FD20CBB544148E17AF482235141713D0A0708BB5441
+</a>
+
+<b>
+010600000001000000010300000001000000180000006B8224826A23514180022ADF04BB544185EB51686A235141D7A3709D05BB5441D2BF289C732351418EFBC43706BB5441F1AD96FA7A23514186B81DB406BB54411D3CD9A6812351411AB3AEC707BB54410FFF9E83842351410F18B86908BB5441DCA29D05882351415BA9BA4709BB5441E17DECFE8B23514186A23C430ABB5441511F0FDC8E23514156297DF80ABB5441632CB1F591235141569FB2BC0BBB54414E00FDB794235141577D506B0CBB5441D63C650197235141A1599F050DBB5441588FC65299235141879212BA0DBB5441BA4CE9DE992351412C503AC90BBB54416F3B2DEE99235141DED6E0590BBB544186A57B029A2351419F2C1C4B0BBB5441B1FF7E179A235141EFEC9B000BBB544173B77BAC99235141335811DF0ABB544147F2C38699235141582316A50BBB5441590F978599235141EEF6F0A50BBB5441BDBCA49297235141F417D6EA0ABB544185EB519889235141C3F5287C07BB54413D0AD71381235141A4703D4A06BB54416B8224826A23514180022ADF04BB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>60205 - 955850
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000030000003300000054E3EC6912B450416FF15BC50CD95441060BE1F223B450414A0F31960ED95441B08B35573FB450418599FDC310D95441F1100ACC64B4504178F25D9F1AD954411DA890A560B4504120E0C8F731D9544152B81E4578B450417B14AE5737D95441EC51B80E79B45041F6285C6F37D95441666666F67EB450415C8FC2F537D954415C8FC2658AB45041713D0AD738D954416DD0744A90B4504195D6FE7710D9544113B88D307EB45041EEDE6FA80CD9544112575F4973B4504131A5C4CC09D95441CB7DF5586BB450418C5F1CE205D95441EF9AC1C474B45041256C8568E9D854417124CC2A7AB450412E24AA12D3D854410F54C0667EB45041BA754F0CD8D854418E2BE4E783B45041C03A4BBDE2D8544149B3A8DE86B45041364AD4AAE8D85441F7C0EB5C8AB45041E709FE0DECD85441A6CE2EDB8DB45041A443A9E9EED854416B1E8E6590B45041750D8AECF0D85441084E82A194B450414425840AF3D85441666666A698B450419A999929D8D8544185EB51E890B4504100000040D3D854411F85EB5182B450419A999919C4D8544152B81E956CB450415C8FC255ACD854417B14AE875CB45041000000C0A2D85441B81E85FB54B4504152B81E959DD85441A4703D2A51B450410AD7A3809BD85441F6285CFF4CB4504185EB51F89BD85441295C8FD244B45041F6285C2F9DD8544152B81EA53BB45041CDCCCC2CA0D854411F85EB3134B4504114AE4751A4D8544148E17A942EB450419A9999A9A8D8544174479CCE2AB450414CA131EBABD85441FF22340441B450418509EACEAAD85441D5CCC5F248B4504117A86A3CACD854411569E53E50B450413BE56B17AFD854415196135658B4504190AC426CB2D8544180766DCE62B45041D4B753EDB8D854413917654A70B450419E14113DC3D854414B7DA61F63B450410FC77E65FBD8544127CF261443B45041194FDDD0EFD85441729D20CD34B4504167E24CBDEAD85441C03090B92FB4504106CEA1C9E9D8544198849DA92DB450416B513EF2E9D8544158E87D5D26B4504106CEA1C9E9D85441D0D15B5B19B45041025FB094EAD85441B1ADC7B60BB4504167E24CBDEAD854413B2D8FE506B45041206AEE360BD9544154E3EC6912B450416FF15BC50CD9544105000000AE47E15A2EB450410AD7A360EBD85441AE47E18A2EB450418FC2F5E8E9D85441295C8F8232B45041CDCCCC7CEAD85441295C8F5232B4504148E17AD4EBD85441AE47E15A2EB450410AD7A360EBD8544112000000295C8F0287B450418FC2F5F81BD95441666666B686B450418FC2F5481AD95441666666D686B450410AD7A31019D954416666669685B450410AD7A38018D954416666663685B450418FC2F52818D95441A4703D1A85B450410AD7A3C017D95441295C8F1286B4504152B81ED517D95441295C8F1288B450418FC2F53818D95441EC51B83E8AB450418FC2F51819D95441EC51B8EE8AB450418FC2F5A819D95441295C8F228BB45041CDCCCC6C1AD95441295C8F028BB450418FC2F5881CD95441295C8FD28AB450410AD7A3301DD95441666666368AB4504152B81E251DD95441666666A689B45041CDCCCCAC1CD95441295C8F2288B450410AD7A3E01CD95441295C8F4287B450410AD7A3901CD95441295C8F0287B450418FC2F5F81BD95441
+</a>
+
+<b>
+0106000000010000000103000000010000001C000000219D12F168B450412299689EBDD854419A5E98B75EB450411BA50563B6D854410A956D5C58B450410BC33470B2D854411469E53E50B45041A1680840AFD854413950621B49B450417D2B0765ACD8544164A6D02C41B45041EA8C86F7AAD854413F4ED51F2BB45041B124CE13ACD85441A67BED4921B450417FF07C98B5D85441259932B01CB45041CBD97083BAD854413390825010B45041A8B769DACAD85441360F75DF0BB450416ECCD3BCEAD85441A8721E000CB45041B79272BCEAD85441319F71270CB450415183FDBBEAD85441E86B049914B45041025FB094EAD854415892F95E1CB4504137587743EAD854418CE1440C26B45041A14A05A1E9D854413ADFE3EA2BB4504106CEA1C9E9D85441C39F81EE2EB4504106CEA1C9E9D85441972632402FB45041CECEF7D2E9D85441C03090B92FB4504106CEA1C9E9D854416DB587F630B45041E6361005EAD85441A696E77B34B450419CDB136CEAD85441A7B1E1AD47B450411171FA66F1D85441CA44678754B450419353B500F6D854416A3D522763B450417543C744FBD85441DAC10E4970B450414827C542C3D85441FFEDC3F96BB45041BD9A59F0BFD85441219D12F168B450412299689EBDD85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>326726 - 3185315
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000200000001030000000100000007000000D7A3701D6D2151411F85EB81BCBA544148E17AD46D215141C3F528BCB8BA54417B14AE276E215141E17A14BEB4BA544133333373602151410AD7A3F0B1BA5441B81E85DB60215141A4703D5ABBBA54419A9999496021514114AE47D1BCBA5441D7A3701D6D2151411F85EB81BCBA54410103000000020000001300000066666606A92151410AD7A340F8BA5441EC51B8BEAD2151418FC2F5F8FABA5441F6285C0FB3215141A4703DBAF4BA5441AE47E19AB82151410AD7A3D0EEBA544100000030C02151417B14AE87E7BA5441295C8F62BB21514185EB51B8E4BA544152B81EC5B6215141EC51B88EE1BA54410AD7A370B62151413D0AD703E3BA5441333333E3B32151410AD7A370E3BA5441A4703D3AB4215141C3F528BCE5BA544148E17AE4B621514185EB5128E7BA544114AE4781B6215141F6285CEFE7BA544152B81E35B3215141AE47E16AE6BA5441D7A370BDB0215141295C8FF2E7BA5441B81E850BAE21514185EB5138E6BA5441713D0A47A821514100000080F1BA5441D7A3708DAB215141B81E85EBF2BA5441C3F5285CAA21514133333363F5BA544166666606A92151410AD7A340F8BA544106000000000000F0B12151419A999969EABA544114AE4791B221514185EB5178E8BA5441F6285C6FB521514185EB51C8E9BA5441E17A14CEB4215141D7A370CDEABA544152B81EF5B22151417B14AE87EBBA5441000000F0B12151419A999969EABA5441
+</a>
+
+<b>
+010600000001000000010300000002000000230000004F2C43DFB2215141F9E8C0F2F4BA5441C489391CB321514149CA85ACF4BA544147E13A63B4215141EC44D84FF3BA54415E66DC58B621514170C2F738F1BA5441B7A419F5B621514164A95F92F0BA5441EB81DB74B82151412EBA2EF9EEBA5441CC4A08BEB92151410D37E9B8EDBA544100000030C02151417B14AE87E7BA54415CA44FEFBD215141A0A04036E6BA5441CE3C4F49BC2151416994553FE5BA54413655E0B7BA215141623A5B43E4BA5441F64CF45DB8215141B348E1A6E2BA5441668438C8B62151412348D890E1BA54411C5AA3A7B62151415887EE10E2BA54410AD7A370B62151413D0AD703E3BA544124211584B4215141D73DDA55E3BA5441333333E3B32151410AD7A370E3BA544149ADD0F3B321514121CFCAE0E3BA5441A4703D3AB4215141C3F528BCE5BA5441AEC538F9B421514192BD1922E6BA544148E17AE4B621514185EB5128E7BA544114AE4781B6215141F6285CEFE7BA544194746031B321514128DA6B6BE6BA5441D7A370BDB0215141295C8FF2E7BA5441B81E850BAE21514185EB5138E6BA544176E9BB35AA2151416CF1B2B8EDBA5441713D0A47A821514100000080F1BA5441D7A3708DAB215141B81E85EBF2BA5441E4977C28A921514140D77CF7F7BA5441FD3C5B15A9215141064A4249F8BA5441EC51B8BEAD2151418FC2F5F8FABA544176188046AE2151415BD76B59FABA5441D2400A24AF215141310A1E55F9BA54416CDC8ED0B12151419B25D330F6BA54414F2C43DFB2215141F9E8C0F2F4BA544107000000296260FBB1215141460B6060EABA54412A05813FB2215141C3E4DB98E9BA5441AB6A7F88B22151413F11C079E8BA5441B66BE675B5215141444063CEE9BA5441B41B2EDAB4215141C8844CD0EABA54412D692702B32151414BA15984EBBA5441296260FBB1215141460B6060EABA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>326726 - 3393694
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000200000001030000000100000007000000D7A3701D6D2151411F85EB81BCBA544148E17AD46D215141C3F528BCB8BA54417B14AE276E215141E17A14BEB4BA544133333373602151410AD7A3F0B1BA5441B81E85DB60215141A4703D5ABBBA54419A9999496021514114AE47D1BCBA5441D7A3701D6D2151411F85EB81BCBA54410103000000020000001300000066666606A92151410AD7A340F8BA5441EC51B8BEAD2151418FC2F5F8FABA5441F6285C0FB3215141A4703DBAF4BA5441AE47E19AB82151410AD7A3D0EEBA544100000030C02151417B14AE87E7BA5441295C8F62BB21514185EB51B8E4BA544152B81EC5B6215141EC51B88EE1BA54410AD7A370B62151413D0AD703E3BA5441333333E3B32151410AD7A370E3BA5441A4703D3AB4215141C3F528BCE5BA544148E17AE4B621514185EB5128E7BA544114AE4781B6215141F6285CEFE7BA544152B81E35B3215141AE47E16AE6BA5441D7A370BDB0215141295C8FF2E7BA5441B81E850BAE21514185EB5138E6BA5441713D0A47A821514100000080F1BA5441D7A3708DAB215141B81E85EBF2BA5441C3F5285CAA21514133333363F5BA544166666606A92151410AD7A340F8BA544106000000000000F0B12151419A999969EABA544114AE4791B221514185EB5178E8BA5441F6285C6FB521514185EB51C8E9BA5441E17A14CEB4215141D7A370CDEABA544152B81EF5B22151417B14AE87EBBA5441000000F0B12151419A999969EABA5441
+</a>
+
+<b>
+010600000001000000010300000002000000230000004F2C43DFB2215141F9E8C0F2F4BA5441C489391CB321514149CA85ACF4BA544147E13A63B4215141EC44D84FF3BA54415E66DC58B621514170C2F738F1BA5441B7A419F5B621514164A95F92F0BA5441EB81DB74B82151412EBA2EF9EEBA5441CC4A08BEB92151410D37E9B8EDBA544100000030C02151417B14AE87E7BA54415CA44FEFBD215141A0A04036E6BA5441CE3C4F49BC2151416994553FE5BA54413655E0B7BA215141623A5B43E4BA5441F64CF45DB8215141B348E1A6E2BA5441668438C8B62151412348D890E1BA54411C5AA3A7B62151415887EE10E2BA54410AD7A370B62151413D0AD703E3BA544124211584B4215141D73DDA55E3BA5441333333E3B32151410AD7A370E3BA544149ADD0F3B321514121CFCAE0E3BA5441A4703D3AB4215141C3F528BCE5BA5441AEC538F9B421514192BD1922E6BA544148E17AE4B621514185EB5128E7BA544114AE4781B6215141F6285CEFE7BA544194746031B321514128DA6B6BE6BA5441D7A370BDB0215141295C8FF2E7BA5441B81E850BAE21514185EB5138E6BA544176E9BB35AA2151416CF1B2B8EDBA5441713D0A47A821514100000080F1BA5441D7A3708DAB215141B81E85EBF2BA5441E4977C28A921514140D77CF7F7BA5441FD3C5B15A9215141064A4249F8BA5441EC51B8BEAD2151418FC2F5F8FABA544176188046AE2151415BD76B59FABA5441D2400A24AF215141310A1E55F9BA54416CDC8ED0B12151419B25D330F6BA54414F2C43DFB2215141F9E8C0F2F4BA544107000000296260FBB1215141460B6060EABA54412A05813FB2215141C3E4DB98E9BA5441AB6A7F88B22151413F11C079E8BA5441B66BE675B5215141444063CEE9BA5441B41B2EDAB4215141C8844CD0EABA54412D692702B32151414BA15984EBBA5441296260FBB1215141460B6060EABA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>326726 - 253155
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000200000001030000000100000007000000D7A3701D6D2151411F85EB81BCBA544148E17AD46D215141C3F528BCB8BA54417B14AE276E215141E17A14BEB4BA544133333373602151410AD7A3F0B1BA5441B81E85DB60215141A4703D5ABBBA54419A9999496021514114AE47D1BCBA5441D7A3701D6D2151411F85EB81BCBA54410103000000020000001300000066666606A92151410AD7A340F8BA5441EC51B8BEAD2151418FC2F5F8FABA5441F6285C0FB3215141A4703DBAF4BA5441AE47E19AB82151410AD7A3D0EEBA544100000030C02151417B14AE87E7BA5441295C8F62BB21514185EB51B8E4BA544152B81EC5B6215141EC51B88EE1BA54410AD7A370B62151413D0AD703E3BA5441333333E3B32151410AD7A370E3BA5441A4703D3AB4215141C3F528BCE5BA544148E17AE4B621514185EB5128E7BA544114AE4781B6215141F6285CEFE7BA544152B81E35B3215141AE47E16AE6BA5441D7A370BDB0215141295C8FF2E7BA5441B81E850BAE21514185EB5138E6BA5441713D0A47A821514100000080F1BA5441D7A3708DAB215141B81E85EBF2BA5441C3F5285CAA21514133333363F5BA544166666606A92151410AD7A340F8BA544106000000000000F0B12151419A999969EABA544114AE4791B221514185EB5178E8BA5441F6285C6FB521514185EB51C8E9BA5441E17A14CEB4215141D7A370CDEABA544152B81EF5B22151417B14AE87EBBA5441000000F0B12151419A999969EABA5441
+</a>
+
+<b>
+010600000001000000010300000002000000230000004F2C43DFB2215141F9E8C0F2F4BA5441C489391CB321514149CA85ACF4BA544147E13A63B4215141EC44D84FF3BA54415E66DC58B621514170C2F738F1BA5441B7A419F5B621514164A95F92F0BA5441EB81DB74B82151412EBA2EF9EEBA5441CC4A08BEB92151410D37E9B8EDBA544100000030C02151417B14AE87E7BA54415CA44FEFBD215141A0A04036E6BA5441CE3C4F49BC2151416994553FE5BA54413655E0B7BA215141623A5B43E4BA5441F64CF45DB8215141B348E1A6E2BA5441668438C8B62151412348D890E1BA54411C5AA3A7B62151415887EE10E2BA54410AD7A370B62151413D0AD703E3BA544124211584B4215141D73DDA55E3BA5441333333E3B32151410AD7A370E3BA544149ADD0F3B321514121CFCAE0E3BA5441A4703D3AB4215141C3F528BCE5BA5441AEC538F9B421514192BD1922E6BA544148E17AE4B621514185EB5128E7BA544114AE4781B6215141F6285CEFE7BA544194746031B321514128DA6B6BE6BA5441D7A370BDB0215141295C8FF2E7BA5441B81E850BAE21514185EB5138E6BA544176E9BB35AA2151416CF1B2B8EDBA5441713D0A47A821514100000080F1BA5441D7A3708DAB215141B81E85EBF2BA5441E4977C28A921514140D77CF7F7BA5441FD3C5B15A9215141064A4249F8BA5441EC51B8BEAD2151418FC2F5F8FABA544176188046AE2151415BD76B59FABA5441D2400A24AF215141310A1E55F9BA54416CDC8ED0B12151419B25D330F6BA54414F2C43DFB2215141F9E8C0F2F4BA544107000000296260FBB1215141460B6060EABA54412A05813FB2215141C3E4DB98E9BA5441AB6A7F88B22151413F11C079E8BA5441B66BE675B5215141444063CEE9BA5441B41B2EDAB4215141C8844CD0EABA54412D692702B32151414BA15984EBBA5441296260FBB1215141460B6060EABA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>326726 - 274996
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000200000001030000000100000007000000D7A3701D6D2151411F85EB81BCBA544148E17AD46D215141C3F528BCB8BA54417B14AE276E215141E17A14BEB4BA544133333373602151410AD7A3F0B1BA5441B81E85DB60215141A4703D5ABBBA54419A9999496021514114AE47D1BCBA5441D7A3701D6D2151411F85EB81BCBA54410103000000020000001300000066666606A92151410AD7A340F8BA5441EC51B8BEAD2151418FC2F5F8FABA5441F6285C0FB3215141A4703DBAF4BA5441AE47E19AB82151410AD7A3D0EEBA544100000030C02151417B14AE87E7BA5441295C8F62BB21514185EB51B8E4BA544152B81EC5B6215141EC51B88EE1BA54410AD7A370B62151413D0AD703E3BA5441333333E3B32151410AD7A370E3BA5441A4703D3AB4215141C3F528BCE5BA544148E17AE4B621514185EB5128E7BA544114AE4781B6215141F6285CEFE7BA544152B81E35B3215141AE47E16AE6BA5441D7A370BDB0215141295C8FF2E7BA5441B81E850BAE21514185EB5138E6BA5441713D0A47A821514100000080F1BA5441D7A3708DAB215141B81E85EBF2BA5441C3F5285CAA21514133333363F5BA544166666606A92151410AD7A340F8BA544106000000000000F0B12151419A999969EABA544114AE4791B221514185EB5178E8BA5441F6285C6FB521514185EB51C8E9BA5441E17A14CEB4215141D7A370CDEABA544152B81EF5B22151417B14AE87EBBA5441000000F0B12151419A999969EABA5441
+</a>
+
+<b>
+010600000001000000010300000002000000230000004F2C43DFB2215141F9E8C0F2F4BA5441C489391CB321514149CA85ACF4BA544147E13A63B4215141EC44D84FF3BA54415E66DC58B621514170C2F738F1BA5441B7A419F5B621514164A95F92F0BA5441EB81DB74B82151412EBA2EF9EEBA5441CC4A08BEB92151410D37E9B8EDBA544100000030C02151417B14AE87E7BA54415CA44FEFBD215141A0A04036E6BA5441CE3C4F49BC2151416994553FE5BA54413655E0B7BA215141623A5B43E4BA5441F64CF45DB8215141B348E1A6E2BA5441668438C8B62151412348D890E1BA54411C5AA3A7B62151415887EE10E2BA54410AD7A370B62151413D0AD703E3BA544124211584B4215141D73DDA55E3BA5441333333E3B32151410AD7A370E3BA544149ADD0F3B321514121CFCAE0E3BA5441A4703D3AB4215141C3F528BCE5BA5441AEC538F9B421514192BD1922E6BA544148E17AE4B621514185EB5128E7BA544114AE4781B6215141F6285CEFE7BA544194746031B321514128DA6B6BE6BA5441D7A370BDB0215141295C8FF2E7BA5441B81E850BAE21514185EB5138E6BA544176E9BB35AA2151416CF1B2B8EDBA5441713D0A47A821514100000080F1BA5441D7A3708DAB215141B81E85EBF2BA5441E4977C28A921514140D77CF7F7BA5441FD3C5B15A9215141064A4249F8BA5441EC51B8BEAD2151418FC2F5F8FABA544176188046AE2151415BD76B59FABA5441D2400A24AF215141310A1E55F9BA54416CDC8ED0B12151419B25D330F6BA54414F2C43DFB2215141F9E8C0F2F4BA544107000000296260FBB1215141460B6060EABA54412A05813FB2215141C3E4DB98E9BA5441AB6A7F88B22151413F11C079E8BA5441B66BE675B5215141444063CEE9BA5441B41B2EDAB4215141C8844CD0EABA54412D692702B32151414BA15984EBBA5441296260FBB1215141460B6060EABA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>327122 - 1342040
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B00000085EB51C80021514185EB51985E0C5541EC51B84E032151415C8FC255510C554185EB51C8DE205141333333634A0C55417B14AE17DE205141F6285C3F4A0C5541333333B3E1205141000000D0580C554133333363E42051415C8FC2D5620C554100000030E72051415C8FC245670C55413D0AD723E92051410AD7A330690C554133333363FB2051418FC2F5B8740C5541D7A370ADFC2051419A999929740C554185EB51C80021514185EB51985E0C5541
+</a>
+
+<b>
+0106000000010000000103000000010000001400000085EB51C80021514185EB51985E0C5541EC51B84E032151415C8FC255510C55411C98D7DEF8205141D94989594F0C55415652D6A7EC20514139E9BD064D0C5541FCC4226FE6205141F966CAD74B0C5541101CE456E220514159D666104B0C554152B4E9E5DF205141BFF385994A0C5541143BC806DE20514107D3DE094A0C55417B14AE17DE205141F6285C3F4A0C5541FDC46B8ADF205141C2A13218500C5541333333B3E1205141000000D0580C554133333363E42051415C8FC2D5620C554100000030E72051415C8FC245670C55413D0AD723E92051410AD7A330690C55417D5C03CBEA2051418D57163C6A0C5541F93FDE4BEF205141B1D1BDED6A0C5541EA2C82BFF42051414B7F55B76B0C5541C0D01EF5F920514164917D0C6D0C55416469CBECFD205141526AB99B6D0C554185EB51C80021514185EB51985E0C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>327122 - 3551450
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B00000085EB51C80021514185EB51985E0C5541EC51B84E032151415C8FC255510C554185EB51C8DE205141333333634A0C55417B14AE17DE205141F6285C3F4A0C5541333333B3E1205141000000D0580C554133333363E42051415C8FC2D5620C554100000030E72051415C8FC245670C55413D0AD723E92051410AD7A330690C554133333363FB2051418FC2F5B8740C5541D7A370ADFC2051419A999929740C554185EB51C80021514185EB51985E0C5541
+</a>
+
+<b>
+0106000000010000000103000000010000001400000085EB51C80021514185EB51985E0C5541EC51B84E032151415C8FC255510C55411C98D7DEF8205141D94989594F0C55415652D6A7EC20514139E9BD064D0C5541FCC4226FE6205141F966CAD74B0C5541101CE456E220514159D666104B0C554152B4E9E5DF205141BFF385994A0C5541143BC806DE20514107D3DE094A0C55417B14AE17DE205141F6285C3F4A0C5541FDC46B8ADF205141C2A13218500C5541333333B3E1205141000000D0580C554133333363E42051415C8FC2D5620C554100000030E72051415C8FC245670C55413D0AD723E92051410AD7A330690C55417D5C03CBEA2051418D57163C6A0C5541F93FDE4BEF205141B1D1BDED6A0C5541EA2C82BFF42051414B7F55B76B0C5541C0D01EF5F920514164917D0C6D0C55416469CBECFD205141526AB99B6D0C554185EB51C80021514185EB51985E0C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>327161 - 214528
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000016000000C3F5280C1E2751418FC2F538EF0A5541000000601E27514166666646F00A5541A4703D8A1E2751410AD7A3B0F10A5541000000601E2751419A9999F9F20A55413D0AD70323275141CDCCCC3CF30A55418FC2F5C82727514114AE4791F30A5541B81E85EB2C275141713D0A07F40A55410000000031275141D7A3708DF40A55413D0AD74336275141EC51B83EF50A554114AE4731392751418FC2F568F50A554114AE47513C275141B81E859BF50A5541000000B03F275141EC51B88EF50A5541AE47E19A3F2751410AD7A3E0F40A55417B14AE4746275141A4703D4AF50A5541C3F5288C4D275141F6285C8FF50A55417B14AE3753275141B81E851BF00A5541E17A14AE4B275141D7A3709DEF0A55418FC2F5E841275141CDCCCCECEE0A5541333333333B275141EC51B84EEE0A5541E17A14FE2C275141E17A14EEEC0A55417B14AE271F2751413D0AD753EB0A5541C3F5280C1E2751418FC2F538EF0A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000AC813B072E275141D20F8C2BF40A554184FFEC772B275141EA89C0E5F30A55418FC2F5C82727514114AE4791F30A554183C2BD1325275141DD4B5261F30A554197F4FFCC24275141DD4B5261F30A554182A9C9BC212751416FE74E30F30A5541E9FC6B9520275141C6779619F30A5541000000601E2751419A9999F9F20A5541D7A3702D1E275141D7A370EDF30A55410FD622CB1D275141B00CCE44F50A5541E46782B71D275141B7037BADF50A5541A8C2B0A01D27514149E018D4F50A55415C8FC2F51C27514148E17A94F70A5541EC51B8CE1B2751410AD7A320F90A5541A049FFD11A275141CA167825F90A5541F38B96A21A275141EFBA882DF90A5541EDCCCC5C1B2751411CB81E25FD0A55419AD38201292751414ECAC976FC0A5541B81E850B2E27514166666636FC0A55410AD7A3203E275141E17A144EFB0A5541CDCCCCBC3D2751413D0AD793F90A55411F85EBC13E275141F6285C6FF70A5541000000B03F275141EC51B88EF50A554114AE47513C275141B81E859BF50A55410C9D08B83B27514172B7D591F50A5541525B137F3A275141574E0E7EF50A554114AE4731392751418FC2F568F50A55413D0AD74336275141EC51B83EF50A5541DE4275AC31275141F08B1FA4F40A5541AC813B072E275141D20F8C2BF40A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>327161 - 382994
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000016000000C3F5280C1E2751418FC2F538EF0A5541000000601E27514166666646F00A5541A4703D8A1E2751410AD7A3B0F10A5541000000601E2751419A9999F9F20A55413D0AD70323275141CDCCCC3CF30A55418FC2F5C82727514114AE4791F30A5541B81E85EB2C275141713D0A07F40A55410000000031275141D7A3708DF40A55413D0AD74336275141EC51B83EF50A554114AE4731392751418FC2F568F50A554114AE47513C275141B81E859BF50A5541000000B03F275141EC51B88EF50A5541AE47E19A3F2751410AD7A3E0F40A55417B14AE4746275141A4703D4AF50A5541C3F5288C4D275141F6285C8FF50A55417B14AE3753275141B81E851BF00A5541E17A14AE4B275141D7A3709DEF0A55418FC2F5E841275141CDCCCCECEE0A5541333333333B275141EC51B84EEE0A5541E17A14FE2C275141E17A14EEEC0A55417B14AE271F2751413D0AD753EB0A5541C3F5280C1E2751418FC2F538EF0A5541
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000AC813B072E275141D20F8C2BF40A554184FFEC772B275141EA89C0E5F30A55418FC2F5C82727514114AE4791F30A554183C2BD1325275141DD4B5261F30A554197F4FFCC24275141DD4B5261F30A554182A9C9BC212751416FE74E30F30A5541E9FC6B9520275141C6779619F30A5541000000601E2751419A9999F9F20A5541D7A3702D1E275141D7A370EDF30A55410FD622CB1D275141B00CCE44F50A5541E46782B71D275141B7037BADF50A5541A8C2B0A01D27514149E018D4F50A55415C8FC2F51C27514148E17A94F70A5541EC51B8CE1B2751410AD7A320F90A5541A049FFD11A275141CA167825F90A5541F38B96A21A275141EFBA882DF90A5541EDCCCC5C1B2751411CB81E25FD0A55419AD38201292751414ECAC976FC0A5541B81E850B2E27514166666636FC0A55410AD7A3203E275141E17A144EFB0A5541CDCCCCBC3D2751413D0AD793F90A55411F85EBC13E275141F6285C6FF70A5541000000B03F275141EC51B88EF50A554114AE47513C275141B81E859BF50A55410C9D08B83B27514172B7D591F50A5541525B137F3A275141574E0E7EF50A554114AE4731392751418FC2F568F50A55413D0AD74336275141EC51B83EF50A5541DE4275AC31275141F08B1FA4F40A5541AC813B072E275141D20F8C2BF40A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>328316 - 3098885
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000033000000A4703D5A1A1E514100000020E0F95441713D0A87101E514114AE47D1D2F954418FC2F5C8071E5141AE47E17AC7F95441B81E859B031E514148E17A34BEF95441F6285CDFFE1D5141EC51B8EEB3F9544152B81E15FE1D51417B14AEB7B2F95441E17A14EEF81D514152B81ED5AAF95441AE47E10AF51D5141B81E85BBA4F954417B14AEE7F01D51411F85EB21A0F954418FC2F568EF1D5141666666969FF95441713D0AB7ED1D514114AE4741A0F954418FC2F598EC1D5141C3F5284CA1F954419A9999D9E21D5141F6285CEFADF9544152B81E15DD1D5141B81E85BBB4F95441C3F5282CD71D51417B14AEC7BAF95441295C8F22CE1D51417B14AEF7C2F95441666666A6D11D51417B14AE97C9F95441000000B0C41D51417B14AE27D4F9544148E17A24C61D51419A999979D7F954415C8FC205C71D5141CDCCCC5CD9F954419A999939C51D5141AE47E1CADAF95441295C8F12BD1D51417B14AE97E3F9544114AE4721BB1D514148E17AD4E6F954411F85EBB1C01D5141CDCCCC1CEFF95441333333A3BB1D514166666666F1F954418FC2F5D8BC1D514152B81E55F6F95441A4703D8AC31D51419A999989F7F95441295C8F32C81D5141E17A143EF8F954410AD7A3B0C91D5141295C8F42F8F9544114AE47A1CB1D51415C8FC2F5F7F95441C3F5280CD01D51411F85EB01F7F95441C3F528ACD71D514152B81ED5F4F95441EC51B8FEDE1D514152B81E95F2F95441D7A3705DE21D514148E17A44F2F954410AD7A380E41D514185EB5138F2F95441AE47E1AAE61D514148E17A64F2F95441EC51B80EE81D51410AD7A3C0F2F954413D0AD723EB1D5141F6285C0FF4F95441C3F528ACEF1D5141AE47E19AF6F95441713D0A07F41D514185EB51D8F8F954418FC2F5E8F41D51418FC2F518F9F954417B14AE57F61D5141EC51B82EF9F95441CDCCCCDCF71D51413D0AD703F9F9544148E17A74F91D514114AE4781F8F95441E17A14EEFA1D51419A9999A9F7F95441EC51B80EFF1D51418FC2F538F4F95441D7A3708D021E5141713D0A87F1F954417B14AE07071E5141E17A142EEEF954413D0AD723101E514166666686E7F95441C3F5281C191E514133333313E1F95441A4703D5A1A1E514100000020E0F95441
+</a>
+
+<b>
+0106000000010000000103000000010000001400000059A8876EC61D5141DABB6D18D8F9544138A07DBAC61D51413D205BBBD8F95441F9CC5DEAC81D5141E39EE028D7F95441B3BEB2E0C91D514177034582D6F954418DAA7C4ACB1D514147BE2D9AD5F9544175FD462DCC1D5141202A250DD5F954411D2C860FCD1D514130469892D4F95441E4D0ED21CE1D51419977F5FDD3F95441BDC6E37BCE1D51413C322FCBD3F954411729DFF2CE1D5141AB498D7ED3F95441C46CE809D01D51412F6CD5CAD2F95441A5AAA5ECD01D5141065ACC38D2F954411440D8B2D11D5141CAFC8FBCD1F95441641B5283D31D5141466CB7A3D0F95441D230CB75D11D514161F762E2CCF95441CB226F02D11D5141C27F65C8CBF95441D4E2864FD01D51410D0112AFCAF95441000000B0C41D51417B14AE27D4F9544148E17A24C61D51419A999979D7F9544159A8876EC61D5141DABB6D18D8F95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>328316 - 3453447
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000033000000A4703D5A1A1E514100000020E0F95441713D0A87101E514114AE47D1D2F954418FC2F5C8071E5141AE47E17AC7F95441B81E859B031E514148E17A34BEF95441F6285CDFFE1D5141EC51B8EEB3F9544152B81E15FE1D51417B14AEB7B2F95441E17A14EEF81D514152B81ED5AAF95441AE47E10AF51D5141B81E85BBA4F954417B14AEE7F01D51411F85EB21A0F954418FC2F568EF1D5141666666969FF95441713D0AB7ED1D514114AE4741A0F954418FC2F598EC1D5141C3F5284CA1F954419A9999D9E21D5141F6285CEFADF9544152B81E15DD1D5141B81E85BBB4F95441C3F5282CD71D51417B14AEC7BAF95441295C8F22CE1D51417B14AEF7C2F95441666666A6D11D51417B14AE97C9F95441000000B0C41D51417B14AE27D4F9544148E17A24C61D51419A999979D7F954415C8FC205C71D5141CDCCCC5CD9F954419A999939C51D5141AE47E1CADAF95441295C8F12BD1D51417B14AE97E3F9544114AE4721BB1D514148E17AD4E6F954411F85EBB1C01D5141CDCCCC1CEFF95441333333A3BB1D514166666666F1F954418FC2F5D8BC1D514152B81E55F6F95441A4703D8AC31D51419A999989F7F95441295C8F32C81D5141E17A143EF8F954410AD7A3B0C91D5141295C8F42F8F9544114AE47A1CB1D51415C8FC2F5F7F95441C3F5280CD01D51411F85EB01F7F95441C3F528ACD71D514152B81ED5F4F95441EC51B8FEDE1D514152B81E95F2F95441D7A3705DE21D514148E17A44F2F954410AD7A380E41D514185EB5138F2F95441AE47E1AAE61D514148E17A64F2F95441EC51B80EE81D51410AD7A3C0F2F954413D0AD723EB1D5141F6285C0FF4F95441C3F528ACEF1D5141AE47E19AF6F95441713D0A07F41D514185EB51D8F8F954418FC2F5E8F41D51418FC2F518F9F954417B14AE57F61D5141EC51B82EF9F95441CDCCCCDCF71D51413D0AD703F9F9544148E17A74F91D514114AE4781F8F95441E17A14EEFA1D51419A9999A9F7F95441EC51B80EFF1D51418FC2F538F4F95441D7A3708D021E5141713D0A87F1F954417B14AE07071E5141E17A142EEEF954413D0AD723101E514166666686E7F95441C3F5281C191E514133333313E1F95441A4703D5A1A1E514100000020E0F95441
+</a>
+
+<b>
+0106000000010000000103000000010000001400000059A8876EC61D5141DABB6D18D8F9544138A07DBAC61D51413D205BBBD8F95441F9CC5DEAC81D5141E39EE028D7F95441B3BEB2E0C91D514177034582D6F954418DAA7C4ACB1D514147BE2D9AD5F9544175FD462DCC1D5141202A250DD5F954411D2C860FCD1D514130469892D4F95441E4D0ED21CE1D51419977F5FDD3F95441BDC6E37BCE1D51413C322FCBD3F954411729DFF2CE1D5141AB498D7ED3F95441C46CE809D01D51412F6CD5CAD2F95441A5AAA5ECD01D5141065ACC38D2F954411440D8B2D11D5141CAFC8FBCD1F95441641B5283D31D5141466CB7A3D0F95441D230CB75D11D514161F762E2CCF95441CB226F02D11D5141C27F65C8CBF95441D4E2864FD01D51410D0112AFCAF95441000000B0C41D51417B14AE27D4F9544148E17A24C61D51419A999979D7F9544159A8876EC61D5141DABB6D18D8F95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>328425 - 3096114
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001300000066666686921F51413D0AD7D3B2FA544114AE4791861F5141295C8F82ACFA544148E17AD45B1F5141E17A149ED9FA5441E17A148E5B1F5141D7A3702DDCFA5441000000D05A1F5141713D0A77DEFA54410AD7A3D0591F514152B81E55E1FA54413D0AD7D3591F51415C8FC2D5E4FA5441EC51B85E611F5141E17A149EE6FA54415C8FC275671F5141B81E855BE9FA544152B81EC56E1F5141EC51B8AEE9FA54411F85EB41731F51419A9999B9E9FA544185EB5168781F51411F85EBA1E4FA5441AE47E16A7B1F5141B81E853BE1FA54419A999979901F5141B81E856BC5FA5441713D0AE7911F5141A4703DDAC4FA5441B81E85EB911F5141F6285CBFC1FA5441713D0AC7961F514185EB51E8B9FA5441E17A149E991F51418FC2F5E8B7FA544166666686921F51413D0AD7D3B2FA5441
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000DA745BD65B1F51416D8E6E39D9FA5441670EAEFC611F5141B0E3781ED3FA544105A0A0646D1F51411E7C9914C7FA5441AB21301C781F51414635E5C4BBFA5441D32E5737831F51412989130CB0FA54413BB07D78851F5141CB8DEBAAADFA5441E3195C60861F51413333818BACFA54419413AE477D1F51413A3FD32CA8FA5441119948567A1F51415C4D5FD6A6FA5441565CA49F791F5141D1C6A743A8FA544197D178FC741F514122E4DC1AA7FA5441B495D9326E1F5141652852ACADFA5441B5AB30F6681F51412BF229ADB2FA5441ED6A9665611F5141A92A5CE7B9FA544191D863EA5A1F5141A33F8718C0FA544195F2B795571F51411EDD2747C3FA54414852956A551F5141F08F9EB1C5FA54416D325DA6561F5141598415F5C6FA5441DC6AA74A591F514175AC5B3BC9FA54417DE5121C5B1F5141AEC02743CBFA5441C724F0B55B1F51414D9C3CFDCCFA544185EB51585C1F5141F6285CAFCFFA54415B80893B5C1F51416F7C7ADAD1FA54417F3B9D0E5C1F5141E65CE13CD5FA544172FC2FED5B1F5141D6069A22D9FA5441DA745BD65B1F51416D8E6E39D9FA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>328425 - 3363722
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001300000066666686921F51413D0AD7D3B2FA544114AE4791861F5141295C8F82ACFA544148E17AD45B1F5141E17A149ED9FA5441E17A148E5B1F5141D7A3702DDCFA5441000000D05A1F5141713D0A77DEFA54410AD7A3D0591F514152B81E55E1FA54413D0AD7D3591F51415C8FC2D5E4FA5441EC51B85E611F5141E17A149EE6FA54415C8FC275671F5141B81E855BE9FA544152B81EC56E1F5141EC51B8AEE9FA54411F85EB41731F51419A9999B9E9FA544185EB5168781F51411F85EBA1E4FA5441AE47E16A7B1F5141B81E853BE1FA54419A999979901F5141B81E856BC5FA5441713D0AE7911F5141A4703DDAC4FA5441B81E85EB911F5141F6285CBFC1FA5441713D0AC7961F514185EB51E8B9FA5441E17A149E991F51418FC2F5E8B7FA544166666686921F51413D0AD7D3B2FA5441
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000DA745BD65B1F51416D8E6E39D9FA5441670EAEFC611F5141B0E3781ED3FA544105A0A0646D1F51411E7C9914C7FA5441AB21301C781F51414635E5C4BBFA5441D32E5737831F51412989130CB0FA54413BB07D78851F5141CB8DEBAAADFA5441E3195C60861F51413333818BACFA54419413AE477D1F51413A3FD32CA8FA5441119948567A1F51415C4D5FD6A6FA5441565CA49F791F5141D1C6A743A8FA544197D178FC741F514122E4DC1AA7FA5441B495D9326E1F5141652852ACADFA5441B5AB30F6681F51412BF229ADB2FA5441ED6A9665611F5141A92A5CE7B9FA544191D863EA5A1F5141A33F8718C0FA544195F2B795571F51411EDD2747C3FA54414852956A551F5141F08F9EB1C5FA54416D325DA6561F5141598415F5C6FA5441DC6AA74A591F514175AC5B3BC9FA54417DE5121C5B1F5141AEC02743CBFA5441C724F0B55B1F51414D9C3CFDCCFA544185EB51585C1F5141F6285CAFCFFA54415B80893B5C1F51416F7C7ADAD1FA54417F3B9D0E5C1F5141E65CE13CD5FA544172FC2FED5B1F5141D6069A22D9FA5441DA745BD65B1F51416D8E6E39D9FA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>328425 - 170898
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001300000066666686921F51413D0AD7D3B2FA544114AE4791861F5141295C8F82ACFA544148E17AD45B1F5141E17A149ED9FA5441E17A148E5B1F5141D7A3702DDCFA5441000000D05A1F5141713D0A77DEFA54410AD7A3D0591F514152B81E55E1FA54413D0AD7D3591F51415C8FC2D5E4FA5441EC51B85E611F5141E17A149EE6FA54415C8FC275671F5141B81E855BE9FA544152B81EC56E1F5141EC51B8AEE9FA54411F85EB41731F51419A9999B9E9FA544185EB5168781F51411F85EBA1E4FA5441AE47E16A7B1F5141B81E853BE1FA54419A999979901F5141B81E856BC5FA5441713D0AE7911F5141A4703DDAC4FA5441B81E85EB911F5141F6285CBFC1FA5441713D0AC7961F514185EB51E8B9FA5441E17A149E991F51418FC2F5E8B7FA544166666686921F51413D0AD7D3B2FA5441
+</a>
+
+<b>
+0106000000010000000103000000010000002100000076E2DEB09E1F5141103277BDD6FA5441B21630589F1F514167BA36E9D5FA5441D49D0C43A11F5141EF33988ED8FA54410BCD4FF5A11F51411ED9A65AD5FA5441F8ACB331A21F51418489810ED4FA5441FDB49A22A21F5141F8511195D2FA544106C56804A21F51417F3A3DDFD0FA54411EEDEBB8A11F5141DCDA49B1CFFA544147350B31A11F51412F6B88A1CEFA54418DAD944EA01F51419A234A46CDFA54413DDEDF109E1F514113F4C0BDCBFA544116D381119B1F5141D9813897C9FA5441713D0AE7911F5141A4703DDAC4FA5441A4309479901F5141FB438C6BC5FA5441B2CCDC338C1F51417B9F1D10CBFA5441754C40F1801F5141CF616FEFD9FA54417240A007801F5141DC260124DBFA54418E19A7997D1F51419F958159DEFA5441A5ADFA9F901F5141061D22E5E9FA5441FC86C52A951F51411CF197C6E3FA5441199E78C6941F5141138C9351E3FA544152B81E05941F514100000070E2FA54410AD7A310911F5141666666D6E5FA5441713D0A378D1F5141B81E856BE3FA544100000070901F51413D0AD713E2FA544152B81EB5901F514148E17A64DFFA544152B81E55911F514100000070DCFA54413783EA3C971F51414ACAD131E0FA544123F47C3E971F51410B45D32FE0FA544133333323981F514133333333DAFA5441C3F5285C9B1F51417B14AED7D9FA5441C3F528AC9E1F51415C8FC2B5D6FA544176E2DEB09E1F5141103277BDD6FA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>328425 - 346191
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001300000066666686921F51413D0AD7D3B2FA544114AE4791861F5141295C8F82ACFA544148E17AD45B1F5141E17A149ED9FA5441E17A148E5B1F5141D7A3702DDCFA5441000000D05A1F5141713D0A77DEFA54410AD7A3D0591F514152B81E55E1FA54413D0AD7D3591F51415C8FC2D5E4FA5441EC51B85E611F5141E17A149EE6FA54415C8FC275671F5141B81E855BE9FA544152B81EC56E1F5141EC51B8AEE9FA54411F85EB41731F51419A9999B9E9FA544185EB5168781F51411F85EBA1E4FA5441AE47E16A7B1F5141B81E853BE1FA54419A999979901F5141B81E856BC5FA5441713D0AE7911F5141A4703DDAC4FA5441B81E85EB911F5141F6285CBFC1FA5441713D0AC7961F514185EB51E8B9FA5441E17A149E991F51418FC2F5E8B7FA544166666686921F51413D0AD7D3B2FA5441
+</a>
+
+<b>
+0106000000010000000103000000010000001F00000076E2DEB09E1F5141103277BDD6FA5441B21630589F1F514167BA36E9D5FA5441D49D0C43A11F5141EF33988ED8FA54419355A8EEA11F5141DD2D4279D5FA5441F8ACB331A21F51418489810ED4FA5441FDB49A22A21F5141F8511195D2FA544106C56804A21F51417F3A3DDFD0FA54411EEDEBB8A11F5141DCDA49B1CFFA544147350B31A11F51412F6B88A1CEFA54418DAD944EA01F51419A234A46CDFA5441C84266E29D1F5141483E699CCBFA544116D381119B1F5141D9813897C9FA5441713D0AE7911F5141A4703DDAC4FA5441A4309479901F5141FB438C6BC5FA5441B2CCDC338C1F51417B9F1D10CBFA544195662E36811F5141DA9D6494D9FA54417240A007801F5141DC260124DBFA54418E19A7997D1F51419F958159DEFA5441A5ADFA9F901F5141061D22E5E9FA5441FC86C52A951F51411CF197C6E3FA544152B81E05941F514100000070E2FA54410AD7A310911F5141666666D6E5FA5441713D0A378D1F5141B81E856BE3FA544100000070901F51413D0AD713E2FA544152B81EB5901F514148E17A64DFFA544152B81E55911F514100000070DCFA5441E17A143E971F5141295C8F32E0FA544133333323981F514133333333DAFA5441C3F5285C9B1F51417B14AED7D9FA5441C3F528AC9E1F51415C8FC2B5D6FA544176E2DEB09E1F5141103277BDD6FA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>328497 - 346191
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000200000019000000AE47E16A7B1F5141B81E853BE1FA544185EB5168781F51411F85EBA1E4FA54411F85EB41731F51419A9999B9E9FA544152B81EC56E1F5141EC51B8AEE9FA54415C8FC275671F5141B81E855BE9FA544114AE4701691F51415C8FC215F0FA54410AD7A3506A1F51413D0AD713F3FA5441EC51B89E6B1F5141F6285C6FF6FA5441CDCCCC9C711F51418FC2F568FEFA5441D7A3707D751F5141E17A143EF4FA54413D0AD7B37A1F5141713D0A97E9FA5441E17A14FE831F514114AE4771EDFA5441A4703DCA8A1F51411F85EB11F1FA54415C8FC2358F1F5141B81E85EBF4FA54413D0AD7F3921F5141333333C3EFFA54419A999999A01F5141295C8FF2DCFA54413D0AD733A21F5141AE47E1DAD9FA544148E17AD4A21F514185EB5148D6FA54417B14AE47A31F5141295C8FE2D3FA5441F6285CBFA21F51410AD7A3C0D0FA5441666666E6A11F5141C3F5282CCEFA5441C3F528BCA01F514152B81E85CCFA5441713D0AE7911F5141A4703DDAC4FA54419A999979901F5141B81E856BC5FA5441AE47E16A7B1F5141B81E853BE1FA54411000000048E17AB4961F51411F85EB91E5FA544152B81E05941F514100000070E2FA54410AD7A310911F5141666666D6E5FA5441713D0A378D1F5141B81E856BE3FA544100000070901F51413D0AD713E2FA544152B81EB5901F514148E17A64DFFA544152B81E55911F514100000070DCFA5441E17A143E971F5141295C8F32E0FA544133333323981F514133333333DAFA5441C3F5285C9B1F51417B14AED7D9FA5441C3F528AC9E1F51415C8FC2B5D6FA544148E17AA4A01F5141EC51B8EED9FA54415C8FC2859C1F5141D7A370ADDEFA544148E17A049A1F51417B14AE17E1FA5441F6285C1F991F51419A999999E3FA544148E17AB4961F51411F85EB91E5FA5441
+</a>
+
+<b>
+0106000000010000000103000000010000001F00000076E2DEB09E1F5141103277BDD6FA5441B21630589F1F514167BA36E9D5FA5441D49D0C43A11F5141EF33988ED8FA54419355A8EEA11F5141DD2D4279D5FA5441F8ACB331A21F51418489810ED4FA5441FDB49A22A21F5141F8511195D2FA544106C56804A21F51417F3A3DDFD0FA54411EEDEBB8A11F5141DCDA49B1CFFA544147350B31A11F51412F6B88A1CEFA54418DAD944EA01F51419A234A46CDFA5441C84266E29D1F5141483E699CCBFA544116D381119B1F5141D9813897C9FA5441713D0AE7911F5141A4703DDAC4FA5441A4309479901F5141FB438C6BC5FA5441B2CCDC338C1F51417B9F1D10CBFA544195662E36811F5141DA9D6494D9FA54417240A007801F5141DC260124DBFA54418E19A7997D1F51419F958159DEFA5441A5ADFA9F901F5141061D22E5E9FA5441FC86C52A951F51411CF197C6E3FA544152B81E05941F514100000070E2FA54410AD7A310911F5141666666D6E5FA5441713D0A378D1F5141B81E856BE3FA544100000070901F51413D0AD713E2FA544152B81EB5901F514148E17A64DFFA544152B81E55911F514100000070DCFA5441E17A143E971F5141295C8F32E0FA544133333323981F514133333333DAFA5441C3F5285C9B1F51417B14AED7D9FA5441C3F528AC9E1F51415C8FC2B5D6FA544176E2DEB09E1F5141103277BDD6FA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>328595 - 1291101
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001B000000B81E85DBCB1C51415C8FC27560F754418FC2F5B8CF1C51411F85EB215DF75441B81E857BCF1C5141295C8FC258F754411F85EB31C61C51415C8FC2654FF75441E17A14DEBE1C514148E17A8446F754410AD7A370B71C51413D0AD7633DF75441C3F5287CB31C514185EB51A838F75441295C8FB2AF1C5141F6285C2F35F754415C8FC235AF1C5141295C8FE234F754411F85EBD1A81C5141000000F030F7544152B81E65A81C514148E17A4432F75441AE47E19AA51C51411F85EB013BF754415C8FC265A41C5141F6285CCF3EF75441B81E857BA21C5141713D0AD744F75441713D0AE7A51C51415C8FC25547F75441CDCCCC2CA81C51415C8FC23549F75441295C8FF2A91C51410AD7A3204BF754415C8FC2E5AB1C51418FC2F5984DF75441295C8FB2AD1C51410AD7A31050F7544148E17A74B11C514148E17A9455F754415C8FC265B31C5141CDCCCC7C58F754411F85EB11B51C514152B81EC55AF754419A9999C9BC1C5141713D0AD763F754410AD7A3F0C01C5141E17A146E64F7544100000010C61C51418FC2F52865F75441D7A3703DC81C514185EB517865F75441B81E85DBCB1C51415C8FC27560F75441
+</a>
+
+<b>
+01060000000100000001030000000100000026000000EB7D36B6AE1C51411837A08553F75441CA5F1E4EAF1C5141BE4065C752F754410497766FAF1C5141476CA39D52F7544123271BB7AE1C514113350D8F51F75441D7DBC5DFAD1C5141CD17005350F754415BC65944AD1C51418CB78F794FF754411976FB7FAC1C5141DC7E5F6C4EF7544190B117CAAB1C51411621EA754DF754418DDED05BAB1C5141CD153BEA4CF7544123B39F38AA1C5141253463794BF7544117876092A81C51413088A5A349F754414539EE49A71C51414EF1927A48F754412F85C018A61C51418DCAC67E47F754416EE4E477A31C51411CB0278F45F75441B81E857BA21C5141713D0AD744F75441CDCCCCEC991C5141D7A370AD3FF7544152B81ED5951C5141C3F5280C3EF75441EC51B8EE911C5141C3F5289C3CF75441CDCCCC7C8F1C5141D7A370FD3BF75441713D0AF78C1C514114AE47613BF754415C8FC2358A1C5141C3F528DC3AF754418FC2F5C8861C51411F85EB7139F75441295C8F127B1C5141666666D64BF75441F6285CDF7C1C5141295C8F724FF75441E17A14BE7E1C51417B14AEE751F75441C3F5286C801C5141E17A14BE54F75441A4703DFA811C5141F6285C9F58F7544152B81EC5821C51417B14AEB75BF75441295C8F72831C51419A9999095EF75441E17A140E841C514185EB51E85FF7544185EB5108861C514114AE479165F7544100000070881C5141EC51B81E6DF7544148E17A148F1C5141000000205CF754418FC2F588951C514152B81EE55CF75441B81E85EB9F1C514114AE475161F75441A4703D7AA21C51411F85EB115BF7544172768248A91C514163914BDB5DF75441EB7D36B6AE1C51411837A08553F75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>328595 - 3649755
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001B000000B81E85DBCB1C51415C8FC27560F754418FC2F5B8CF1C51411F85EB215DF75441B81E857BCF1C5141295C8FC258F754411F85EB31C61C51415C8FC2654FF75441E17A14DEBE1C514148E17A8446F754410AD7A370B71C51413D0AD7633DF75441C3F5287CB31C514185EB51A838F75441295C8FB2AF1C5141F6285C2F35F754415C8FC235AF1C5141295C8FE234F754411F85EBD1A81C5141000000F030F7544152B81E65A81C514148E17A4432F75441AE47E19AA51C51411F85EB013BF754415C8FC265A41C5141F6285CCF3EF75441B81E857BA21C5141713D0AD744F75441713D0AE7A51C51415C8FC25547F75441CDCCCC2CA81C51415C8FC23549F75441295C8FF2A91C51410AD7A3204BF754415C8FC2E5AB1C51418FC2F5984DF75441295C8FB2AD1C51410AD7A31050F7544148E17A74B11C514148E17A9455F754415C8FC265B31C5141CDCCCC7C58F754411F85EB11B51C514152B81EC55AF754419A9999C9BC1C5141713D0AD763F754410AD7A3F0C01C5141E17A146E64F7544100000010C61C51418FC2F52865F75441D7A3703DC81C514185EB517865F75441B81E85DBCB1C51415C8FC27560F75441
+</a>
+
+<b>
+01060000000100000001030000000100000026000000EB7D36B6AE1C51411837A08553F75441CA5F1E4EAF1C5141BE4065C752F754410497766FAF1C5141476CA39D52F7544123271BB7AE1C514113350D8F51F75441D7DBC5DFAD1C5141CD17005350F754415BC65944AD1C51418CB78F794FF754411976FB7FAC1C5141DC7E5F6C4EF7544190B117CAAB1C51411621EA754DF754418DDED05BAB1C5141CD153BEA4CF7544123B39F38AA1C5141253463794BF7544117876092A81C51413088A5A349F754414539EE49A71C51414EF1927A48F754412F85C018A61C51418DCAC67E47F754416EE4E477A31C51411CB0278F45F75441B81E857BA21C5141713D0AD744F75441CDCCCCEC991C5141D7A370AD3FF7544152B81ED5951C5141C3F5280C3EF75441EC51B8EE911C5141C3F5289C3CF75441CDCCCC7C8F1C5141D7A370FD3BF75441713D0AF78C1C514114AE47613BF754415C8FC2358A1C5141C3F528DC3AF754418FC2F5C8861C51411F85EB7139F75441295C8F127B1C5141666666D64BF75441F6285CDF7C1C5141295C8F724FF75441E17A14BE7E1C51417B14AEE751F75441C3F5286C801C5141E17A14BE54F75441A4703DFA811C5141F6285C9F58F7544152B81EC5821C51417B14AEB75BF75441295C8F72831C51419A9999095EF75441E17A140E841C514185EB51E85FF7544185EB5108861C514114AE479165F7544100000070881C5141EC51B81E6DF7544148E17A148F1C5141000000205CF754418FC2F588951C514152B81EE55CF75441B81E85EB9F1C514114AE475161F75441A4703D7AA21C51411F85EB115BF7544172768248A91C514163914BDB5DF75441EB7D36B6AE1C51411837A08553F75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>328677 - 195138
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001C00000085EB5158B41F514148E17A6431FA54411F85EB11AD1F51417B14AEB738FA54411F85EB41A51F5141E17A148E40FA5441295C8FE2A51F5141F6285C2F41FA544100000080A61F51416666663642FA5441AE47E13AA71F51410000007043FA5441000000F0A71F5141E17A148E44FA54415C8FC285A91F5141E17A149E47FA5441AE47E17AB41F51415C8FC2B540FA5441B81E857BC01F51413D0AD76339FA544185EB51D8C01F51413D0AD72339FA5441F6285C7FC11F514114AE478138FA5441AE47E17AC01F51418FC2F5D836FA54411F85EBD1BE1F51419A99995936FA54417B14AEE7BB1F5141E17A148E36FA54415C8FC245BA1F51417B14AE4736FA544152B81E75BB1F51419A99996935FA5441A4703DAAC21F5141F6285CFF2FFA544114AE4711CC1F5141713D0A1729FA54418FC2F528C91F5141E17A146E23FA5441666666B6C81F5141713D0A2722FA5441EC51B88EC81F51413333335321FA5441C3F5286CC71F514185EB51781DFA544185EB5118C71F51415C8FC2E51DFA544114AE4751BD1F51411F85EBF127FA5441AE47E1EAB51F51411F85EBD12FFA5441AE47E15AB51F5141EC51B85E30FA544185EB5158B41F514148E17A6431FA5441
+</a>
+
+<b>
+01060000000100000001030000000100000036000000B81E857BC01F51413D0AD76339FA54419AF9E1D3C01F51418C94961F39FA54414010058FC01F5141BDE055DC38FA5441960D631FC01F5141D6172C8638FA544134EAAD01C01F5141A582CA7338FA5441D686B140BF1F5141CF37792938FA54414CDDFAFDBD1F51410F8848F437FA54418E8E5020BD1F5141880160B937FA544101A06F76BC1F51416AD2757B37FA5441E9C55C34BC1F514140ECD86237FA5441852C47F1BB1F51413FABED4237FA54416AD9BD3DBB1F5141B44F0DF036FA54418F88CED0BA1F5141659677C036FA54418E32EC74BA1F5141F464258136FA5441EBDB5144BA1F51412B89C94836FA54418041162EBA1F514106BDF38C35FA5441F41F2928BA1F5141782CB04135FA54416174F525BA1F514125911E1C35FA5441E272BC27BA1F514167C6D1DC34FA544132E5832DBA1F5141F8B8FE0E34FA54415D9FC12CBA1F51411006E0F433FA5441C684FB13BA1F51415A877C8433FA544187E28ACFB91F51417A81632F33FA5441675B9364B91F5141611F17F732FA5441C3F528DCB81F514185EB51D832FA54418241CA57B81F51412D98B4DF32FA54419554187EB71F5141AB010E1B33FA544138FBE0C0B61F5141B947024C33FA54411C126DB3B61F5141C4AB745133FA544114BB4BA6B61F5141DC08F44A33FA544171B0B3FEB51F514125DAC02333FA5441A01EF6EFB51F5141B31BC71E33FA54418FA14A90B51F51411C8EB6F732FA5441A288DA2CB51F5141154387AC32FA5441756E1E27B51F5141693EA1A632FA54414A745CE0B41F5141DDA2E15732FA5441AECB1BA6B41F51414E4441FC31FA54414638B586B41F51417B7CABBF31FA544165008765B41F5141156DD28331FA54418C76C558B41F51412422406431FA54419F4EC34FB41F514156DC516D31FA54411FB8EF11AD1F514139DAA9B738FA54411F85EB11AD1F51417B14AEB738FA5441196130FCAC1F5141D4057BCD38FA54419A72EC41A51F5141B2E9148E40FA54411E1390E2A51F51415B065C2F41FA5441CBF7A135A61F5141C9F426BA41FA5441201BB153A61F51419F775FEC41FA544100000080A61F51416666663642FA5441AE47E13AA71F51410000007043FA5441000000F0A71F5141E17A148E44FA54415C8FC285A91F5141E17A149E47FA5441AE47E17AB41F51415C8FC2B540FA5441B81E857BC01F51413D0AD76339FA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>329014 - 3096114
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001000000048E17A744C1F514148E17A94B8FA54418FC2F5184D1F5141C3F5285CC1FA54417B14AE37501F5141295C8FF2C2FA5441295C8F82531F5141B81E858BC4FA54419A999939551F514185EB5188C5FA5441AE47E10A741F5141713D0A17A8FA54415C8FC2A56F1F51419A999909A6FA5441666666366B1F5141A4703DEAA2FA54413D0AD713661F5141F6285C3FA0FA54415C8FC215621F5141F6285CDF9FFA5441333333C35E1F5141AE47E1CAA0FA5441AE47E11A5D1F5141F6285C7FA1FA54410AD7A340551F5141666666A6A5FA5441333333534B1F5141CDCCCCECA8FA5441713D0A774B1F51413D0AD703ABFA544148E17A744C1F514148E17A94B8FA5441
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000DA745BD65B1F51416D8E6E39D9FA5441670EAEFC611F5141B0E3781ED3FA544105A0A0646D1F51411E7C9914C7FA5441AB21301C781F51414635E5C4BBFA5441D32E5737831F51412989130CB0FA54413BB07D78851F5141CB8DEBAAADFA5441E3195C60861F51413333818BACFA54419413AE477D1F51413A3FD32CA8FA5441119948567A1F51415C4D5FD6A6FA5441565CA49F791F5141D1C6A743A8FA544197D178FC741F514122E4DC1AA7FA5441B495D9326E1F5141652852ACADFA5441B5AB30F6681F51412BF229ADB2FA5441ED6A9665611F5141A92A5CE7B9FA544191D863EA5A1F5141A33F8718C0FA544195F2B795571F51411EDD2747C3FA54414852956A551F5141F08F9EB1C5FA54416D325DA6561F5141598415F5C6FA5441DC6AA74A591F514175AC5B3BC9FA54417DE5121C5B1F5141AEC02743CBFA5441C724F0B55B1F51414D9C3CFDCCFA544185EB51585C1F5141F6285CAFCFFA54415B80893B5C1F51416F7C7ADAD1FA54417F3B9D0E5C1F5141E65CE13CD5FA544172FC2FED5B1F5141D6069A22D9FA5441DA745BD65B1F51416D8E6E39D9FA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>329014 - 3363722
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001000000048E17A744C1F514148E17A94B8FA54418FC2F5184D1F5141C3F5285CC1FA54417B14AE37501F5141295C8FF2C2FA5441295C8F82531F5141B81E858BC4FA54419A999939551F514185EB5188C5FA5441AE47E10A741F5141713D0A17A8FA54415C8FC2A56F1F51419A999909A6FA5441666666366B1F5141A4703DEAA2FA54413D0AD713661F5141F6285C3FA0FA54415C8FC215621F5141F6285CDF9FFA5441333333C35E1F5141AE47E1CAA0FA5441AE47E11A5D1F5141F6285C7FA1FA54410AD7A340551F5141666666A6A5FA5441333333534B1F5141CDCCCCECA8FA5441713D0A774B1F51413D0AD703ABFA544148E17A744C1F514148E17A94B8FA5441
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000DA745BD65B1F51416D8E6E39D9FA5441670EAEFC611F5141B0E3781ED3FA544105A0A0646D1F51411E7C9914C7FA5441AB21301C781F51414635E5C4BBFA5441D32E5737831F51412989130CB0FA54413BB07D78851F5141CB8DEBAAADFA5441E3195C60861F51413333818BACFA54419413AE477D1F51413A3FD32CA8FA5441119948567A1F51415C4D5FD6A6FA5441565CA49F791F5141D1C6A743A8FA544197D178FC741F514122E4DC1AA7FA5441B495D9326E1F5141652852ACADFA5441B5AB30F6681F51412BF229ADB2FA5441ED6A9665611F5141A92A5CE7B9FA544191D863EA5A1F5141A33F8718C0FA544195F2B795571F51411EDD2747C3FA54414852956A551F5141F08F9EB1C5FA54416D325DA6561F5141598415F5C6FA5441DC6AA74A591F514175AC5B3BC9FA54417DE5121C5B1F5141AEC02743CBFA5441C724F0B55B1F51414D9C3CFDCCFA544185EB51585C1F5141F6285CAFCFFA54415B80893B5C1F51416F7C7ADAD1FA54417F3B9D0E5C1F5141E65CE13CD5FA544172FC2FED5B1F5141D6069A22D9FA5441DA745BD65B1F51416D8E6E39D9FA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>415163 - 1827175
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000001000000110000007B14AE5706C250419A9999A9F63E54413D0AD7C3DBC150418FC2F568F53E544148E17AE4DBC15041000000C0283F54419A99993913C2504185EB51A82A3F5441C3F5288C11C25041D7A3705D123F5441EC51B82E11C25041713D0A47063F5441E17A14DE10C25041000000C0F83E5441713D0A370FC25041E17A142EF73E5441B81E855B0EC25041AE47E16AF83E5441EC51B83E0EC25041C3F5286CFB3E54419A9999A90FC25041D7A3707DFB3E5441EC51B89E0FC25041F6285CDFFC3E54419A9999D906C25041713D0A77FC3E54413D0AD7E306C25041B81E850BFB3E54417B14AE3708C25041AE47E10AFB3E5441713D0A4708C2504114AE47F1F63E54417B14AE5706C250419A9999A9F63E5441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000AE91B8C6DBC15041122208F1F93E5441FCF373D3DBC15041BA5A41B4FA3E5441BD752992DCC150417E633D060C3F544120B8CE7FE1C15041DA0A7BF1283F54419A99993913C2504185EB51A82A3F5441C3F5288C11C25041D7A3705D123F5441EC51B82E11C25041713D0A47063F5441E17A14DE10C25041000000C0F83E5441713D0A370FC25041E17A142EF73E5441B81E855B0EC25041AE47E16AF83E5441EC51B83E0EC25041C3F5286CFB3E54419A9999A90FC25041D7A3707DFB3E5441EC51B89E0FC25041F6285CDFFC3E54419A9999D906C25041713D0A77FC3E54413D0AD7E306C25041B81E850BFB3E54417B14AE3708C25041AE47E10AFB3E5441713D0A4708C2504114AE47F1F63E54417B14AE5706C250419A9999A9F63E54413D0AD7C3DBC150418FC2F568F53E5441AE91B8C6DBC15041122208F1F93E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>415163 - 3180189
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000001000000110000007B14AE5706C250419A9999A9F63E54413D0AD7C3DBC150418FC2F568F53E544148E17AE4DBC15041000000C0283F54419A99993913C2504185EB51A82A3F5441C3F5288C11C25041D7A3705D123F5441EC51B82E11C25041713D0A47063F5441E17A14DE10C25041000000C0F83E5441713D0A370FC25041E17A142EF73E5441B81E855B0EC25041AE47E16AF83E5441EC51B83E0EC25041C3F5286CFB3E54419A9999A90FC25041D7A3707DFB3E5441EC51B89E0FC25041F6285CDFFC3E54419A9999D906C25041713D0A77FC3E54413D0AD7E306C25041B81E850BFB3E54417B14AE3708C25041AE47E10AFB3E5441713D0A4708C2504114AE47F1F63E54417B14AE5706C250419A9999A9F63E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000600000020B8CE7FE1C15041DA0A7BF1283F5441BD752992DCC150417E633D060C3F5441FCF373D3DBC15041BA5A41B4FA3E5441AE91B8C6DBC15041122208F1F93E544148E17AE4DBC15041000000C0283F544120B8CE7FE1C15041DA0A7BF1283F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>415163 - 3579672
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000001000000110000007B14AE5706C250419A9999A9F63E54413D0AD7C3DBC150418FC2F568F53E544148E17AE4DBC15041000000C0283F54419A99993913C2504185EB51A82A3F5441C3F5288C11C25041D7A3705D123F5441EC51B82E11C25041713D0A47063F5441E17A14DE10C25041000000C0F83E5441713D0A370FC25041E17A142EF73E5441B81E855B0EC25041AE47E16AF83E5441EC51B83E0EC25041C3F5286CFB3E54419A9999A90FC25041D7A3707DFB3E5441EC51B89E0FC25041F6285CDFFC3E54419A9999D906C25041713D0A77FC3E54413D0AD7E306C25041B81E850BFB3E54417B14AE3708C25041AE47E10AFB3E5441713D0A4708C2504114AE47F1F63E54417B14AE5706C250419A9999A9F63E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000600000020B8CE7FE1C15041DA0A7BF1283F5441BD752992DCC150417E633D060C3F5441FCF373D3DBC15041BA5A41B4FA3E5441AE91B8C6DBC15041122208F1F93E544148E17AE4DBC15041000000C0283F544120B8CE7FE1C15041DA0A7BF1283F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>415163 - 4455930
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000001000000110000007B14AE5706C250419A9999A9F63E54413D0AD7C3DBC150418FC2F568F53E544148E17AE4DBC15041000000C0283F54419A99993913C2504185EB51A82A3F5441C3F5288C11C25041D7A3705D123F5441EC51B82E11C25041713D0A47063F5441E17A14DE10C25041000000C0F83E5441713D0A370FC25041E17A142EF73E5441B81E855B0EC25041AE47E16AF83E5441EC51B83E0EC25041C3F5286CFB3E54419A9999A90FC25041D7A3707DFB3E5441EC51B89E0FC25041F6285CDFFC3E54419A9999D906C25041713D0A77FC3E54413D0AD7E306C25041B81E850BFB3E54417B14AE3708C25041AE47E10AFB3E5441713D0A4708C2504114AE47F1F63E54417B14AE5706C250419A9999A9F63E5441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000AE91B8C6DBC15041122208F1F93E5441FCF373D3DBC15041BA5A41B4FA3E5441BD752992DCC150417E633D060C3F544120B8CE7FE1C15041DA0A7BF1283F54419A99993913C2504185EB51A82A3F5441C3F5288C11C25041D7A3705D123F5441EC51B82E11C25041713D0A47063F5441E17A14DE10C25041000000C0F83E5441713D0A370FC25041E17A142EF73E5441B81E855B0EC25041AE47E16AF83E5441EC51B83E0EC25041C3F5286CFB3E54419A9999A90FC25041D7A3707DFB3E5441EC51B89E0FC25041F6285CDFFC3E54419A9999D906C25041713D0A77FC3E54413D0AD7E306C25041B81E850BFB3E54417B14AE3708C25041AE47E10AFB3E5441713D0A4708C2504114AE47F1F63E54417B14AE5706C250419A9999A9F63E54413D0AD7C3DBC150418FC2F568F53E5441AE91B8C6DBC15041122208F1F93E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>329767 - 5321975
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000110000001F85EB21170551415C8FC20588BE5441A4703D1AEB045141CDCCCC1C90BE54413D0AD7A3EB045141EC51B82E93BE5441A4703D7AE50451413D0AD75394BE544114AE4791ED045141AE47E18AABBE544114AE47A1F104514133333333B7BE5441C3F528CCF50451418FC2F528C3BE5441295C8FB2FD04514152B81ED5D9BE5441713D0A07FF045141E17A14BEDABE54413D0AD76318055141333333E3D9BE5441000000101905514185EB51E8D8BE54410AD7A3000D055141295C8F42B6BE54413D0AD7130E0551419A999939B6BE54413D0AD7A3380551410AD7A3D0B4BE54417B14AEC72E0551411F85EB81A9BE5441CDCCCCAC18055141C3F528AC88BE54411F85EB21170551415C8FC20588BE5441
+</a>
+
+<b>
+010600000001000000010300000001000000070000002812BA72E6045141AA57E51C97BE5441557586D2E90451418C17A5CBA0BE544143665166EF0451413D76547C9FBE5441E74A706D20055141D2C4293094BE5441B46A62661A0551415C1C183C8BBE544133A9A4320F05514156D00FA98DBE54412812BA72E6045141AA57E51C97BE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>330836 - 3168106
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000015000000C3F5280CF7065141E17A14CEDBC9544152B81E75F80651418FC2F5A8DDC95441B81E85FB070751415C8FC2D5E2C95441666666160C07514152B81E95E3C954411F85EBE11007514185EB5118E4C954411F85EBD112075141AE47E1BAE2C954419A999979200751413D0AD793CDC9544148E17A9422075141B81E854BC9C95441C3F5280C230751418FC2F578C6C95441713D0AC70C075141C3F5282CBFC9544100000010080751418FC2F528C3C95441295C8F62050751415C8FC2E5C4C954419A9999690207514152B81EF5C5C95441B81E85CB00075141E17A145EC6C9544185EB517800075141AE47E19AC7C9544185EB5168FF06514185EB5158C7C95441D7A370BDFD0651417B14AE77CEC95441B81E85BBF8065141AE47E14ACDC9544148E17A54F80651413D0AD7A3CFC954415C8FC2D5F6065141CDCCCC7CD9C95441C3F5280CF7065141E17A14CEDBC95441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000A6BEDA8500075141BF991D5CCEC95441A2DBAAE2FF0651416CA66111CEC95441861227990007514188EB14CCCCC954416D0C582F0207514171926F0ACBC954416F3CA46902075141A8078A8CC7C95441E73ABD8A0207514160704DE9C5C954416EAA6592020751418A343E20C3C95441F6285CBF010751410AD7A3D0C3C95441B81E85CB00075141E17A145EC6C9544185EB517800075141AE47E19AC7C9544185EB5168FF06514185EB5158C7C95441D7A370BDFD0651417B14AE77CEC95441B81E85BBF8065141AE47E14ACDC9544148E17A54F80651413D0AD7A3CFC954415C8FC2D5F6065141CDCCCC7CD9C95441C3F5280CF7065141E17A14CEDBC9544152B81E75F80651418FC2F5A8DDC95441D15EB85CF90651410FFA28F6DDC95441622A3783FB0651413F93A8ADDEC9544116660EEFFD065141D334CFCDD8C95441FE6C98FCFC0651412538E073D8C95441A6BEDA8500075141BF991D5CCEC95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>330836 - 3555668
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000015000000C3F5280CF7065141E17A14CEDBC9544152B81E75F80651418FC2F5A8DDC95441B81E85FB070751415C8FC2D5E2C95441666666160C07514152B81E95E3C954411F85EBE11007514185EB5118E4C954411F85EBD112075141AE47E1BAE2C954419A999979200751413D0AD793CDC9544148E17A9422075141B81E854BC9C95441C3F5280C230751418FC2F578C6C95441713D0AC70C075141C3F5282CBFC9544100000010080751418FC2F528C3C95441295C8F62050751415C8FC2E5C4C954419A9999690207514152B81EF5C5C95441B81E85CB00075141E17A145EC6C9544185EB517800075141AE47E19AC7C9544185EB5168FF06514185EB5158C7C95441D7A370BDFD0651417B14AE77CEC95441B81E85BBF8065141AE47E14ACDC9544148E17A54F80651413D0AD7A3CFC954415C8FC2D5F6065141CDCCCC7CD9C95441C3F5280CF7065141E17A14CEDBC95441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000A6BEDA8500075141BF991D5CCEC95441A2DBAAE2FF0651416CA66111CEC95441861227990007514188EB14CCCCC954416D0C582F0207514171926F0ACBC954416F3CA46902075141A8078A8CC7C95441E73ABD8A0207514160704DE9C5C954416EAA6592020751418A343E20C3C95441F6285CBF010751410AD7A3D0C3C95441B81E85CB00075141E17A145EC6C9544185EB517800075141AE47E19AC7C9544185EB5168FF06514185EB5158C7C95441D7A370BDFD0651417B14AE77CEC95441B81E85BBF8065141AE47E14ACDC9544148E17A54F80651413D0AD7A3CFC954415C8FC2D5F6065141CDCCCC7CD9C95441C3F5280CF7065141E17A14CEDBC9544152B81E75F80651418FC2F5A8DDC95441D15EB85CF90651410FFA28F6DDC95441622A3783FB0651413F93A8ADDEC9544116660EEFFD065141D334CFCDD8C95441FE6C98FCFC0651412538E073D8C95441A6BEDA8500075141BF991D5CCEC95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>331293 - 344706
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001C000000EC51B8BE15085141CDCCCC1CF7C55441D7A3709D17085141713D0A87F6C554419A99994919085141AE47E12AF7C554418FC2F5D81A08514133333373F8C554415C8FC2C51C08514114AE4741F8C554418FC2F5781E085141AE47E1FAF0C55441E17A146E1A085141AE47E16AEFC55441295C8F72170851410AD7A360EEC55441F6285CEF0F08514114AE47E1F3C55441713D0A970B0851410AD7A380F6C554417B14AE7707085141000000F0F7C554415C8FC2050408514148E17A14F8C5544148E17AA402085141EC51B84EFEC55441F6285C8F070851419A9999B914C654410AD7A3900F08514152B81E1513C65441E17A140E10085141B81E85FB12C65441CDCCCC0C0C08514114AE47E10DC65441AE47E15A0B085141E17A144E0AC65441000000100C085141F6285CFF08C654418FC2F5A80E085141C3F5280C07C65441E17A146E11085141713D0A1706C6544185EB51881108514185EB51B804C65441B81E85EB0F085141A4703D8A03C654418FC2F5580F085141A4703DAA00C654413D0AD713150851415C8FC255FEC55441EC51B8BE150851418FC2F528FCC554410AD7A3F015085141CDCCCC2CF9C55441EC51B8BE15085141CDCCCC1CF7C55441
+</a>
+
+<b>
+010600000001000000010300000001000000250000003F4D64EF0F08514174B741E1F3C554412BC1868F0D08514171042650F5C55441713D0A970B08514115D7A380F6C554419B14AE7707085141150000F0F7C554415C8FC2050408514148E17A14F8C5544121748DA402085141D180644EFEC55441EB00270505085141196E252509C654410B295C8F070851418F9999B914C654410AD7A3900F08514132B81E1513C65441228D081D0E0851417B05B78A11C65441BE7D84300C085141EEF17A110FC654413C76423A0B085141B1E1C8010DC654414F73B8D00A085141F1C9D4FB09C65441E47C560D0C085141D2BB7E3208C65441CA931CF00E08514195ABCC2206C654411678B2C40F08514193C814AA06C654417122CB3410085141AD44558306C6544114B53E5C10085141A22BB27506C654419D73911C110851411F4D373306C654411520C433110851412486747A04C654418D1E85EB0F085141AF703D8A03C654418FC2F5580F085141A4703DAA00C654417508354D120851416114E91DFFC55441A7AFC88212085141F76D8E4DFEC55441D1BD1E4C140851411C57C86AFBC55441D1BD1E4C14085141D43A1CD8F7C554411FC1A8B5140851412A2F2255F6C55441F5D6A3C01608514164C2F528F6C554414A7BCE6E1C085141532CB2C6F7C554418FC2F5781E085141AE47E1FAF0C5544112B2395D1A08514120B60065EFC55441A32859CF190851417BB68733EFC554411C78C34719085141FA6A4004EFC5544121601B2619085141C2FA83F8EEC554419248DC4718085141369E04ABEEC55441E2AA9672170851415D63A660EEC554413F4D64EF0F08514174B741E1F3C55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>415253 - 1827431
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000015000000C3F5289C22C1504185EB5178F83E54418FC2F53822C1504152B81E05F93E5441C3F5282C21C150410AD7A370F93E54413D0AD73320C1504152B81E05F93E5441666666D61FC15041CDCCCC3CF83E5441000000F01FC150417B14AE77F73E54413D0AD73320C1504100000000F73E54416666664621C150419A999999F63E54410AD7A3801FC1504114AE4721F63E5441EC51B86E1EC15041713D0A07F53E5441A4703D2A1EC15041EC51B88EF33E5441EC51B8EE1DC150419A999959F03E544148E17AE401C1504185EB5158DE3E54410AD7A36001C150413D0AD703DE3E544133333323F5C050418FC2F578F23E54413D0AD7E31DC15041AE47E18A0C3F5441F6285CCF26C15041E17A147EF73E5441A4703D5A25C15041D7A370CDF73E54418FC2F53822C1504100000000F73E5441C3F5289C22C15041D7A370CDF73E5441C3F5289C22C1504185EB5178F83E5441
+</a>
+
+<b>
+01060000000100000001030000000100000008000000D7A3709DD0C050418FC2F5B8BE3E54419A9999C9CEC050418FC2F5E8BE3E5441295C8F32CDC050411F85EBD1BF3E5441295C8F02BFC050418FC2F5D8CF3E5441D9AFAEA8F6C050419D2B1E72F33E54417EB430D601C150416245304FDE3E5441A4703DBAFEC05041295C8F52DC3E5441D7A3709DD0C050418FC2F5B8BE3E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>415253 - 4456115
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000015000000C3F5289C22C1504185EB5178F83E54418FC2F53822C1504152B81E05F93E5441C3F5282C21C150410AD7A370F93E54413D0AD73320C1504152B81E05F93E5441666666D61FC15041CDCCCC3CF83E5441000000F01FC150417B14AE77F73E54413D0AD73320C1504100000000F73E54416666664621C150419A999999F63E54410AD7A3801FC1504114AE4721F63E5441EC51B86E1EC15041713D0A07F53E5441A4703D2A1EC15041EC51B88EF33E5441EC51B8EE1DC150419A999959F03E544148E17AE401C1504185EB5158DE3E54410AD7A36001C150413D0AD703DE3E544133333323F5C050418FC2F578F23E54413D0AD7E31DC15041AE47E18A0C3F5441F6285CCF26C15041E17A147EF73E5441A4703D5A25C15041D7A370CDF73E54418FC2F53822C1504100000000F73E5441C3F5289C22C15041D7A370CDF73E5441C3F5289C22C1504185EB5178F83E5441
+</a>
+
+<b>
+01060000000100000001030000000100000008000000D7A3709DD0C050418FC2F5B8BE3E54419A9999C9CEC050418FC2F5E8BE3E5441295C8F32CDC050411F85EBD1BF3E5441295C8F02BFC050418FC2F5D8CF3E5441D9AFAEA8F6C050419D2B1E72F33E54417EB430D601C150416245304FDE3E5441A4703DBAFEC05041295C8F52DC3E5441D7A3709DD0C050418FC2F5B8BE3E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>331917 - 2916410
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000C00000085EB51688F0C5141295C8F12F18C5441A4703DFA8E0C5141333333B3F48C5441666666468E0C5141295C8FA2FA8C54418FC2F598A60C5141295C8F72078D54419A999959A20C51413D0AD703108D5441713D0A37BD0C51410AD7A3301E8D5441CDCCCC8CBF0C5141EC51B87E198D544185EB5168C10C514114AE47A1158D544152B81ED5C40C51410AD7A3800E8D5441295C8F62C40C51411F85EB210D8D5441F6285C8FAA0C51413D0AD773FF8C544185EB51688F0C5141295C8F12F18C5441
+</a>
+
+<b>
+010600000001000000010300000001000000090000009A999959A20C51413D0AD703108D544183427156AB0C51417B32DAC1148D5441713D0A37BD0C51410AD7A3301E8D54410F283A69BF0C5141BF1B3FC6198D544184208FBCBF0C51414658581B198D5441941F6724C00C51419B984543188D544187474F49C10C51412909CEE1158D544151FBBB7BA60C51413D9F82AD078D54419A999959A20C51413D0AD703108D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>331917 - 3802273
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000C00000085EB51688F0C5141295C8F12F18C5441A4703DFA8E0C5141333333B3F48C5441666666468E0C5141295C8FA2FA8C54418FC2F598A60C5141295C8F72078D54419A999959A20C51413D0AD703108D5441713D0A37BD0C51410AD7A3301E8D5441CDCCCC8CBF0C5141EC51B87E198D544185EB5168C10C514114AE47A1158D544152B81ED5C40C51410AD7A3800E8D5441295C8F62C40C51411F85EB210D8D5441F6285C8FAA0C51413D0AD773FF8C544185EB51688F0C5141295C8F12F18C5441
+</a>
+
+<b>
+010600000001000000010300000001000000090000009A999959A20C51413D0AD703108D544183427156AB0C51417B32DAC1148D5441713D0A37BD0C51410AD7A3301E8D54410F283A69BF0C5141BF1B3FC6198D544184208FBCBF0C51414658581B198D5441941F6724C00C51419B984543188D544187474F49C10C51412909CEE1158D544151FBBB7BA60C51413D9F82AD078D54419A999959A20C51413D0AD703108D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>332992 - 2915739
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000022000000B81E858B530D5141CDCCCCEC6F8C54410AD7A360540D5141F6285C5F718C54415C8FC285560D514148E17AD4708C5441E17A144E520D5141713D0A477F8C5441E17A147E590D5141D7A3705D808C544152B81EB55F0D514152B81E85818C5441295C8F32660D5141A4703DDA6A8C544152B81E056F0D51410AD7A3506C8C544114AE47F1740D51417B14AE876D8C54410AD7A300770D51419A999909688C5441E17A149E790D5141E17A144E618C54415C8FC2857B0D5141AE47E11A5C8C54413D0AD7637C0D5141666666D6588C5441333333537D0D51419A9999C9528C54418FC2F5187E0D51413D0AD7634F8C54417B14AE477F0D5141EC51B80E498C544148E17A84800D514148E17A64438C544185EB5148800D5141AE47E1AA3E8C544152B81E457F0D51410AD7A370398C54417B14AE877D0D514114AE47D1358C5441295C8F92670D5141E17A14AE368C5441D7A3708D570D514114AE4741388C5441A4703DEA530D5141CDCCCC8C388C5441C3F528DC520D51413D0AD7233B8C544114AE4761470D51418FC2F598558C5441295C8FA2450D5141AE47E14A5A8C5441295C8FB2450D51417B14AE475A8C5441AE47E17A440D5141EC51B8DE5E8C5441A4703D6A440D5141666666F65F8C54411F85EB41490D514185EB51B8678C54418FC2F5D84D0D5141C3F5288C6A8C5441D7A3707D500D5141666666866C8C5441E17A14EE510D5141D7A370ED6D8C5441B81E858B530D5141CDCCCCEC6F8C5441
+</a>
+
+<b>
+01060000000100000001030000000100000011000000DC452DB2470D5141112F85DE548C544152ADF5FF670D51419AC7B603538C54412B5D43937D0D514141B9D8AF518C5441EADB7A207E0D5141E6C9913B4F8C5441D12BDC607E0D51418966CDE24D8C54417CC6D5A97E0D5141950D025C4C8C544143CD8B207F0D514107004AE0498C544148E17A84800D514148E17A64438C544185EB5148800D5141AE47E1AA3E8C544152B81E457F0D51410AD7A370398C54417B14AE877D0D514114AE47D1358C5441295C8F92670D5141E17A14AE368C5441D7A3708D570D514114AE4741388C5441A4703DEA530D5141CDCCCC8C388C5441C3F528DC520D51413D0AD7233B8C54419CC6C90D4C0D51418F446AD34A8C5441DC452DB2470D5141112F85DE548C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>332992 - 3672768
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000022000000B81E858B530D5141CDCCCCEC6F8C54410AD7A360540D5141F6285C5F718C54415C8FC285560D514148E17AD4708C5441E17A144E520D5141713D0A477F8C5441E17A147E590D5141D7A3705D808C544152B81EB55F0D514152B81E85818C5441295C8F32660D5141A4703DDA6A8C544152B81E056F0D51410AD7A3506C8C544114AE47F1740D51417B14AE876D8C54410AD7A300770D51419A999909688C5441E17A149E790D5141E17A144E618C54415C8FC2857B0D5141AE47E11A5C8C54413D0AD7637C0D5141666666D6588C5441333333537D0D51419A9999C9528C54418FC2F5187E0D51413D0AD7634F8C54417B14AE477F0D5141EC51B80E498C544148E17A84800D514148E17A64438C544185EB5148800D5141AE47E1AA3E8C544152B81E457F0D51410AD7A370398C54417B14AE877D0D514114AE47D1358C5441295C8F92670D5141E17A14AE368C5441D7A3708D570D514114AE4741388C5441A4703DEA530D5141CDCCCC8C388C5441C3F528DC520D51413D0AD7233B8C544114AE4761470D51418FC2F598558C5441295C8FA2450D5141AE47E14A5A8C5441295C8FB2450D51417B14AE475A8C5441AE47E17A440D5141EC51B8DE5E8C5441A4703D6A440D5141666666F65F8C54411F85EB41490D514185EB51B8678C54418FC2F5D84D0D5141C3F5288C6A8C5441D7A3707D500D5141666666866C8C5441E17A14EE510D5141D7A370ED6D8C5441B81E858B530D5141CDCCCCEC6F8C5441
+</a>
+
+<b>
+01060000000100000001030000000100000011000000DC452DB2470D5141112F85DE548C544152ADF5FF670D51419AC7B603538C54412B5D43937D0D514141B9D8AF518C5441EADB7A207E0D5141E6C9913B4F8C5441D12BDC607E0D51418966CDE24D8C54417CC6D5A97E0D5141950D025C4C8C544143CD8B207F0D514107004AE0498C544148E17A84800D514148E17A64438C544185EB5148800D5141AE47E1AA3E8C544152B81E457F0D51410AD7A370398C54417B14AE877D0D514114AE47D1358C5441295C8F92670D5141E17A14AE368C5441D7A3708D570D514114AE4741388C5441A4703DEA530D5141CDCCCC8C388C5441C3F528DC520D51413D0AD7233B8C54419CC6C90D4C0D51418F446AD34A8C5441DC452DB2470D5141112F85DE548C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>335063 - 43752
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000030000000F6285C9F0F355141D7A3704D27385541E17A147E0A355141AE47E15A31385541D7A370AD023551410AD7A3503B38554152B81E55FD34514148E17AD440385541295C8FF2F8345141EC51B80E45385541A4703D8AF1345141E17A141E4B385541295C8FB2EC345141EC51B8CE4E385541A4703DDAF2345141B81E85BB52385541A4703D4AF6345141E17A141E55385541B81E85EBF8345141AE47E14A573855417B14AE17FD34514152B81EF5593855411F85EB5104355141666666B65D385541E17A147E0A355141EC51B8BE5F385541295C8F6212355141EC51B8BE61385541000000A01C355141CDCCCCAC6138554114AE4771323551413D0AD733603855410AD7A3E039355141666666265F38554185EB51083F3551413D0AD7335E3855415C8FC2154235514152B81EF55D385541C3F5287C47355141E17A14FE5D3855417B14AE974A355141F6285C5F5E3855417B14AEF74E355141C3F5289C5E38554185EB5138523551418FC2F5385F3855413D0AD7C3543551411F85EBA15F385541333333D35A355141B81E85CB60385541E17A14CE583551413D0AD7635D3855410AD7A3D0553551411F85EB915A38554114AE47414F355141333333C3543855411F85EBC14A35514148E17A6451385541333333B34635514114AE47314F385541CDCCCC0C3E355141F6285C7F4B385541B81E85DB3B355141EC51B8FE493855418FC2F5983935514148E17A84473855418FC2F5F8373551415C8FC2554438554185EB515835355141333333133C3855410000001034355141D7A3703D38385541C3F528BC31355141D7A3707D34385541CDCCCC8C2D355141713D0A672E385541B81E851B2A355141295C8F222A3855413D0AD7C3263551418FC2F56826385541295C8F6222355141E17A141E22385541000000B01B3551410AD7A3201C385541C3F528FC183551419A9999791A385541EC51B8EE1635514152B81ED518385541E17A14EE14355141AE47E16A163855419A9999B9133551417B14AE47173855410AD7A39012355141CDCCCCFC1C385541F6285C9F0F355141D7A3704D27385541
+</a>
+
+<b>
+0106000000010000000103000000010000002A000000FB8BC5423E355141A05926585E38554185EB51083F3551413D0AD7335E385541919D0B1A4035514188C7DE1D5E385541BB54E457403551414303E8185E3855415C8FC2154235514152B81EF55D3855418B315ECC43355141FA7BF6F75D38554155B423C444355141FB9991F95D385541C717991845355141BE9017D75D385541DA4A2B9341355141548E7F745D38554192190CE0333551418F01DB555E3855413DDD333F2A35514199518D6F5F38554155CBCC8D21355141D1307C0A60385541B8A44C641B3551416C56BD346038554145E52F2F14355141077CFE5E603855414D11375D0D35514151CB017960385541C77CEA810F3551418EF50C0461385541C8E7090E11355141891E6E68613855412132CB291235514187CB55B061385541FE2687DD123551414920E1BD613855410EB6247B163551418F4C8DB761385541EA2662E1163551410961DAB661385541CACDC8A11935514165AD09B26138554137C4C96F1C355141B62B21AD613855410DA8D64A1E3551413FF0FD8F61385541C2D7BAFC1E355141AE5AFC83613855411908964C2435514157EE3428613855413AC2C215263551419AEC590961385541E0F7D7952735514117CA6DEF60385541C6D2652D29355141F71EECD360385541C7EEBEB129355141746DFDCA6038554118DA8D952B355141DB3F56AA60385541FA4152992C3551414506CE98603855410FF5FD592E355141F0F2857A60385541155DF0082F355141163DB76E6038554171762E09323551410AA4DD3A60385541688D176633355141AC322F1160385541E800ECD434355141FA7F41DD5F385541185BE20C37355141BCE1DA8C5F385541CFE39C8538355141607586575F385541B0B841F83A355141587F01F35E38554197E176C73D355141DF5ED06E5E385541FB8BC5423E355141A05926585E385541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>516928 - 3278216
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000000F00000048E17A5401EA5041C3F5285CA8FA544148E17AB400EA5041CDCCCCFCADFA54419A9999C9FFE95041000000D0AFFA54411F85EB31FFE950413D0AD723B1FA54415C8FC2E5FFE950415C8FC235B1FA5441A4703D2A07EA5041C3F528ECB1FA54418FC2F5D807EA504133333303C9FA54418FC2F53811EA5041F6285C5FC9FA54416666660612EA504185EB5178B4FA544114AE471116EA50418FC2F568B5FA54416666663618EA5041A4703D9AADFA5441D7A3708D18EA5041713D0A57A7FA54417B14AE8713EA504148E17A04A7FA5441E17A141E01EA5041D7A370ADA6FA544148E17A5401EA5041C3F5285CA8FA5441
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000002B1B5D2A07EA5041C54558F0B1FA5441659DDAAC08EA50415CC66E92C9FA5441EA8CB59808EA50411CDF4B12CAFA544125F571980EEA504128AB961DCAFA5441AF298C6410EA5041C252BA29CAFA5441D22C587E10EA50411143BEA8C9FA5441D0B05E7A10EA5041D72021C5C7FA5441DAEA4B7510EA5041C5A22FC2C5FA5441E441C25D10EA504116261B6DBCFA54418281F14810EA50416CE0562CB4FA5441EF39B25F10EA50415338AB7BB3FA5441FF396F7015EA50415438C00BB4FA54412475A79116EA5041B4220715ACFA54412B8716B115EA5041EC51B81EA7FA54411BC4DE7F13EA5041AE8A660EA7FA544185E3DEEF08EA5041459EC5BFA6FA54417A59F07407EA5041FACCC0B4A6FA5441459EC10B05EA5041F069CEA2A6FA54411CC98C6703EA5041D0579696A6FA54417A35610901EA5041E5EEF584A6FA544192DF2CC300EA504116F3379CA6FA54414269FF5301EA5041D49C3E4EABFA544198F4BD9600EA5041BA12A048AFFA54414D1AE63A00EA5041A0D6D436B1FA5441C8EE446003EA50414578ED8CB1FA54410F70277F03EA50417DBE1790B1FA5441A4703D2A07EA5041C3F528ECB1FA54412B1B5D2A07EA5041C54558F0B1FA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>335974 - 256560
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000200000065000000D7A3704D037B504148E17A44462B55415C8FC2C5FD7A504133333303492B55419A999909F97A5041CDCCCC5C4B2B5541C3F5280CF67A504114AE47D14D2B5541B81E856BF37A504114AE47C14E2B5541A4703D1AF37A5041000000D04E2B55411F85EB61F17A5041F6285C1F4F2B5541EC51B85EF17A504152B81E25532B55411F85EBD1F27A50413D0AD783522B5541D7A3701DF57A5041295C8FD2572B5541EC51B8FEF27A504100000080582B5541F6285C6FF37A50415C8FC2E5592B5541D7A370ADF67A50415C8FC2755B2B5541333333D3F87A50415C8FC2355A2B55419A9999E9FB7A5041F6285CCF562B5541F6285CBFFD7A50415C8FC2A5582B554148E17A84007B504133333363592B55410AD7A380017B5041AE47E10A592B5541C3F528AC017B5041B81E85FB582B554100000090027B504148E17AA4582B55410AD7A3F0037B5041D7A3701D582B554100000020067B5041713D0A47572B554148E17AE4057B5041666666B6552B5541713D0A77067B504133333373552B554114AE4781077B50418FC2F5F8542B5541C3F5282C097B504166666636542B55411F85EBD1087B5041295C8F82532B55418FC2F598077B504185EB5108512B55418FC2F5A8067B5041B81E850B4F2B55419A999959067B50410AD7A3804E2B55418FC2F538077B5041B81E851B4E2B55417B14AE97077B504114AE47F14D2B5541A4703D1A087B5041EC51B8AE4D2B55419A999969087B5041333333334E2B5541CDCCCCAC0A7B504148E17AA4522B5541D7A3700D0B7B504166666656532B5541295C8FC20B7B50413D0AD7D3542B55419A9999D90B7B504166666616552B5541D7A370ED0C7B504185EB5198542B554148E17AC40D7B50415C8FC235542B5541CDCCCC8C0E7B50419A9999D9532B55411F85EB610F7B504185EB5178532B55417B14AE17117B5041000000B0522B5541D7A3705D117B504100000090522B55418FC2F5C8147B50413D0AD7D3502B5541CDCCCC8C157B50410AD7A370502B5541F6285C6F167B5041E17A14FE4F2B5541C3F5281C187B5041666666264F2B554148E17A041B7B5041AE47E1AA4D2B5541EC51B8AE1C7B50411F85EBD14C2B5541295C8F021E7B5041666666264C2B5541E17A145E1E7B504185EB51F84B2B5541A4703D8A207B504148E17A544B2B55419A999919257B5041CDCCCCFC492B55417B14AE97277B504114AE4741492B5541713D0A97297B5041713D0A97482B554114AE47C12B7B5041EC51B8DE472B554152B81EA52E7B50419A999939462B554185EB5128357B504152B81E85422B5541C3F5289C357B504133333343422B5541D7A370DD377B50417B14AEE7402B5541333333C33A7B504185EB51283F2B5541D7A370BD417B5041AE47E13A3A2B55415C8FC2B5457B5041EC51B8AE372B55417B14AE27467B504133333363372B55418FC2F518507B5041E17A140E322B55418FC2F5E8527B5041D7A3700D302B5541E17A14DE587B50418FC2F598292B55417B14AED75D7B5041CDCCCCAC242B55418FC2F5485F7B504166666626232B5541F6285C7F5C7B5041A4703D9A202B5541D7A370ED557B5041EC51B86E282B55419A999959547B5041C3F528BC262B55410AD7A370537B50415C8FC2C5272B5541AE47E13A537B504133333303282B5541295C8F724F7B50419A9999A9262B554114AE47114B7B5041EC51B82E232B5541666666D6467B5041B81E857B262B554114AE4791407B5041333333032B2B55417B14AEF7407B5041CDCCCCEC2E2B5541713D0A87427B504185EB51E8322B554133333303427B5041713D0A67342B5541EC51B8EE377B50417B14AE473C2B55411F85EB41327B5041EC51B8EE3E2B55413D0AD7832F7B5041AE47E1BA3E2B554148E17A342F7B50418FC2F5E83D2B5541333333E32E7B5041AE47E10A3E2B55417B14AE672E7B5041666666D63C2B55415C8FC2A52C7B5041333333C33D2B5541EC51B80E2B7B5041CDCCCC9C3A2B5541333333A31D7B50415C8FC2753D2B55415C8FC2451B7B5041333333133D2B55411F85EB11157B50415C8FC2C53C2B5541A4703D2A147B504114AE47D13D2B55411F85EBE10E7B5041C3F528BC422B554114AE4701107B50411F85EB01442B554148E17A94107B5041E17A14AE442B55411F85EB71117B5041CDCCCCAC452B5541F6285CFF127B50415C8FC275472B554133333323077B504114AE47214D2B5541D7A3704D037B504148E17A44462B554105000000D7A3702D287B5041C3F528AC402B5541A4703DFA297B50413D0AD733452B55411F85EBC1247B5041F6285C1F472B5541EC51B88E237B50411F85EB61422B5541D7A3702D287B5041C3F528AC402B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000A0000003E86EFF7407B504139DF73ED2E2B554143E7F5C8437B5041189B713D332B554128DA8F624C7B5041632FAF572D2B55411EDCE13A537B504122263403282B5541295C8F724F7B50419A9999A9262B554114AE47114B7B5041EC51B82E232B5541666666D6467B5041B81E857B262B554114AE4791407B5041333333032B2B55417B14AEF7407B5041CDCCCCEC2E2B55413E86EFF7407B504139DF73ED2E2B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>335974 - 262659
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000200000065000000D7A3704D037B504148E17A44462B55415C8FC2C5FD7A504133333303492B55419A999909F97A5041CDCCCC5C4B2B5541C3F5280CF67A504114AE47D14D2B5541B81E856BF37A504114AE47C14E2B5541A4703D1AF37A5041000000D04E2B55411F85EB61F17A5041F6285C1F4F2B5541EC51B85EF17A504152B81E25532B55411F85EBD1F27A50413D0AD783522B5541D7A3701DF57A5041295C8FD2572B5541EC51B8FEF27A504100000080582B5541F6285C6FF37A50415C8FC2E5592B5541D7A370ADF67A50415C8FC2755B2B5541333333D3F87A50415C8FC2355A2B55419A9999E9FB7A5041F6285CCF562B5541F6285CBFFD7A50415C8FC2A5582B554148E17A84007B504133333363592B55410AD7A380017B5041AE47E10A592B5541C3F528AC017B5041B81E85FB582B554100000090027B504148E17AA4582B55410AD7A3F0037B5041D7A3701D582B554100000020067B5041713D0A47572B554148E17AE4057B5041666666B6552B5541713D0A77067B504133333373552B554114AE4781077B50418FC2F5F8542B5541C3F5282C097B504166666636542B55411F85EBD1087B5041295C8F82532B55418FC2F598077B504185EB5108512B55418FC2F5A8067B5041B81E850B4F2B55419A999959067B50410AD7A3804E2B55418FC2F538077B5041B81E851B4E2B55417B14AE97077B504114AE47F14D2B5541A4703D1A087B5041EC51B8AE4D2B55419A999969087B5041333333334E2B5541CDCCCCAC0A7B504148E17AA4522B5541D7A3700D0B7B504166666656532B5541295C8FC20B7B50413D0AD7D3542B55419A9999D90B7B504166666616552B5541D7A370ED0C7B504185EB5198542B554148E17AC40D7B50415C8FC235542B5541CDCCCC8C0E7B50419A9999D9532B55411F85EB610F7B504185EB5178532B55417B14AE17117B5041000000B0522B5541D7A3705D117B504100000090522B55418FC2F5C8147B50413D0AD7D3502B5541CDCCCC8C157B50410AD7A370502B5541F6285C6F167B5041E17A14FE4F2B5541C3F5281C187B5041666666264F2B554148E17A041B7B5041AE47E1AA4D2B5541EC51B8AE1C7B50411F85EBD14C2B5541295C8F021E7B5041666666264C2B5541E17A145E1E7B504185EB51F84B2B5541A4703D8A207B504148E17A544B2B55419A999919257B5041CDCCCCFC492B55417B14AE97277B504114AE4741492B5541713D0A97297B5041713D0A97482B554114AE47C12B7B5041EC51B8DE472B554152B81EA52E7B50419A999939462B554185EB5128357B504152B81E85422B5541C3F5289C357B504133333343422B5541D7A370DD377B50417B14AEE7402B5541333333C33A7B504185EB51283F2B5541D7A370BD417B5041AE47E13A3A2B55415C8FC2B5457B5041EC51B8AE372B55417B14AE27467B504133333363372B55418FC2F518507B5041E17A140E322B55418FC2F5E8527B5041D7A3700D302B5541E17A14DE587B50418FC2F598292B55417B14AED75D7B5041CDCCCCAC242B55418FC2F5485F7B504166666626232B5541F6285C7F5C7B5041A4703D9A202B5541D7A370ED557B5041EC51B86E282B55419A999959547B5041C3F528BC262B55410AD7A370537B50415C8FC2C5272B5541AE47E13A537B504133333303282B5541295C8F724F7B50419A9999A9262B554114AE47114B7B5041EC51B82E232B5541666666D6467B5041B81E857B262B554114AE4791407B5041333333032B2B55417B14AEF7407B5041CDCCCCEC2E2B5541713D0A87427B504185EB51E8322B554133333303427B5041713D0A67342B5541EC51B8EE377B50417B14AE473C2B55411F85EB41327B5041EC51B8EE3E2B55413D0AD7832F7B5041AE47E1BA3E2B554148E17A342F7B50418FC2F5E83D2B5541333333E32E7B5041AE47E10A3E2B55417B14AE672E7B5041666666D63C2B55415C8FC2A52C7B5041333333C33D2B5541EC51B80E2B7B5041CDCCCC9C3A2B5541333333A31D7B50415C8FC2753D2B55415C8FC2451B7B5041333333133D2B55411F85EB11157B50415C8FC2C53C2B5541A4703D2A147B504114AE47D13D2B55411F85EBE10E7B5041C3F528BC422B554114AE4701107B50411F85EB01442B554148E17A94107B5041E17A14AE442B55411F85EB71117B5041CDCCCCAC452B5541F6285CFF127B50415C8FC275472B554133333323077B504114AE47214D2B5541D7A3704D037B504148E17A44462B554105000000D7A3702D287B5041C3F528AC402B5541A4703DFA297B50413D0AD733452B55411F85EBC1247B5041F6285C1F472B5541EC51B88E237B50411F85EB61422B5541D7A3702D287B5041C3F528AC402B5541
+</a>
+
+<b>
+0106000000010000000103000000010000000A0000003E86EFF7407B504139DF73ED2E2B554143E7F5C8437B5041189B713D332B554128DA8F624C7B5041632FAF572D2B55411EDCE13A537B504122263403282B5541295C8F724F7B50419A9999A9262B554114AE47114B7B5041EC51B82E232B5541666666D6467B5041B81E857B262B554114AE4791407B5041333333032B2B55417B14AEF7407B5041CDCCCCEC2E2B55413E86EFF7407B504139DF73ED2E2B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>336027 - 184171
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000095000000E17A142E3F79504100000050272E554148E17AB4417950411F85EB41252E554185EB510842795041CDCCCCFC222E5541000000D042795041F6285CFF222E5541E17A147E42795041B81E85CB1F2E5541CDCCCC9C42795041E17A148E1E2E5541000000D042795041B81E857B1C2E5541E17A143E437950415C8FC205182E5541295C8F82437950410AD7A340152E5541B81E85AB44795041EC51B8EE102E5541666666A64579504152B81E950A2E55415C8FC2F545795041F6285CAF022E55418FC2F5E8457950415C8FC215012E5541E17A149E44795041AE47E1CAFF2D5541B81E854B42795041D7A370ADFD2D5541E17A142E40795041CDCCCCCCFC2D5541000000103E795041CDCCCCCCFC2D55410AD7A3903C795041F6285CEFFD2D5541F6285CFF3B795041D7A370DDFE2D5541713D0A273C795041713D0A77002E5541D7A370ED3C7950411F85EB71012E5541F6285C2F3D7950419A9999C9022E554185EB51B83C79504148E17AC4032E5541AE47E1CA3B79504185EB5198042E5541E17A140E39795041AE47E1BA052E5541295C8F023679504148E17A54072E55417B14AED7337950413D0AD7D3082E5541B81E852B33795041A4703D9A092E5541EC51B81E3379504185EB51380A2E5541E17A146E33795041B81E855B0B2E554185EB51F8347950417B14AE170E2E55411F85EB21357950417B14AEB7102E55415C8FC2C53479504148E17AB4112E554148E17A043379504166666626132E5541CDCCCC7C30795041295C8FD2132E5541F6285C0F2E79504114AE4771142E55411F85EB212D795041E17A14AE152E5541F6285CDF2C795041D7A3702D172E55410AD7A3302D795041A4703DEA182E55418FC2F53827795041D7A370FD1D2E5541C3F528AC2179504114AE47D11E2E5541B81E851B20795041C3F528DC202E5541B81E856B1F7950418FC2F528232E5541713D0A371F79504114AE4741252E5541333333431F795041295C8F12262E5541666666461F79504185EB51D8262E5541666666661F795041713D0A472A2E5541C3F5281C1E79504185EB51082C2E55411F85EB011E7950417B14AE972F2E554114AE47211D7950411F85EB31312E5541666666C619795041C3F528AC332E5541AE47E10A18795041D7A3707D332E55410AD7A3A0167950411F85EB71342E5541713D0A6715795041295C8F12362E55419A9999D915795041A4703D6A3B2E554114AE47D114795041EC51B8FE3D2E5541AE47E12A137950411F85EB01402E55413D0AD78311795041C3F5286C402E5541E17A146E107950413D0AD7A3422E5541EC51B83E0F7950417B14AED7452E5541000000D00F7950419A9999D94A2E55418FC2F5280E79504185EB51884D2E5541000000100E795041713D0A874F2E5541CDCCCC5C147950418FC2F5884E2E55410AD7A300157950415C8FC2854E2E5541CDCCCCEC1779504152B81EF54D2E554185EB515818795041333333F34D2E5541295C8FD21B7950419A9999794D2E554114AE47411F7950419A9999F94C2E55411F85EBA126795041E17A148E4B2E5541C3F528CC2C795041713D0AE74A2E554152B81E852C795041B81E85CB4B2E5541000000202C795041F6285C3F4D2E5541C3F528BC2B795041EC51B86E4F2E5541B81E850B207950413D0AD743512E5541713D0AE71A79504148E17A54522E55417B14AEB71A7950417B14AE37512E5541333333031B795041295C8F02502E5541F6285CDF14795041D7A3700D512E554148E17A6414795041295C8F12512E55417B14AE470D79504166666686522E5541EC51B82E0D795041E17A14EE522E55417B14AE870B79504114AE4741552E55418FC2F5980A79504152B81E15572E5541EC51B8AE0B795041F6285C5F582E554152B81E050A795041EC51B89E5A2E5541666666260A795041295C8FE25B2E55417B14AED70A7950411F85EB61602E554114AE47A10B795041F6285CBF622E5541A4703DFA0D7950418FC2F5C8692E55418FC2F5580D7950417B14AE276B2E5541000000000D795041E17A14AE6B2E55410AD7A3300D7950411F85EB916E2E5541F6285C8F0C795041713D0AF76F2E55419A9999190C795041AE47E1EA722E55417B14AE970D795041C3F5283C752E554148E17A840C795041C3F528EC782E5541AE47E10A0C795041A4703D2A7B2E554152B81E750C795041666666E67D2E5541666666360E79504152B81EB57F2E554185EB51A80F7950415C8FC295802E55418FC2F5D811795041EC51B84E812E5541EC51B87E12795041CDCCCC3C822E554114AE472112795041EC51B8DE882E5541333333D31579504166666646882E5541C3F5287C1A795041A4703D9A872E55413D0AD7C31A795041EC51B80E882E5541B81E855B1B795041E17A147E892E55419A9999E91F79504148E17AA4892E55419A9999892B795041EC51B81E892E5541E17A142E2E795041A4703DDA882E55410AD7A3402F795041EC51B8BE882E554114AE47112D795041295C8F527F2E554114AE47C12C795041B81E850B782E5541AE47E1EA2C795041E17A143E752E55418FC2F5F82C795041B81E855B742E55415C8FC2152D795041295C8F82722E554114AE47412D7950411F85EBB16F2E55413D0AD7632D795041D7A3707D6D2E554185EB51A82D795041F6285C3F6B2E5541F6285CAF2D79504114AE47116B2E5541F6285C0F2E7950418FC2F5B8682E55417B14AE572E795041AE47E19A662E55417B14AE772E795041000000B0652E5541E17A147E3079504166666616662E554114AE47F1337950418FC2F588662E5541AE47E1AA357950417B14AEC75E2E5541666666A636795041EC51B85E5A2E554114AE475137795041295C8FD2572E554148E17A14387950418FC2F5E8542E55415C8FC2F538795041D7A3708D512E55415C8FC2C539795041333333734E2E55418FC2F5883B7950418FC2F5B8472E5541C3F5280C3D795041F6285CBF422E55418FC2F5983F795041D7A3705D3A2E55413D0AD733407950417B14AE37372E55418FC2F52841795041F6285C1F322E5541B81E85BB3F795041A4703D8A332E5541666666862F79504148E17AF42F2E5541713D0A972E795041F6285CBF2F2E5541F6285C3F2F795041A4703DAA2E2E554185EB515830795041000000302D2E55413D0AD7D32E7950413D0AD7532B2E5541F6285CEF2E7950410AD7A3202A2E5541E17A140E317950411F85EB81262E554133333323327950413D0AD713272E5541AE47E19A3A7950417B14AEC7282E5541713D0A573D79504152B81ED5282E5541E17A142E3F79504100000050272E5541
+</a>
+
+<b>
+01060000000100000001030000000100000011000000295C8FD21B7950419A9999794D2E554114AE47411F7950419A9999F94C2E55411F85EBA126795041E17A148E4B2E554188B022CC2C79504157E70AE74A2E55416EF08D022D79504136D0D5034A2E5541B7FAE00A2D7950411EDAEC01492E5541004190B21C7950414B97D7434A2E554130F0C1291B7950417108B26D4A2E5541773DC39E0F795041D1E186294B2E55418FC2F5280E79504185EB51884D2E5541538001100E7950410086EB864F2E55414F40BD5414795041CFD93A8A4E2E5541F3E8CD5C1479504102BDF5884E2E55410AD7A300157950415C8FC2854E2E5541CDCCCCEC1779504152B81EF54D2E554185EB515818795041333333F34D2E5541295C8FD21B7950419A9999794D2E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>336027 - 256624
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000095000000E17A142E3F79504100000050272E554148E17AB4417950411F85EB41252E554185EB510842795041CDCCCCFC222E5541000000D042795041F6285CFF222E5541E17A147E42795041B81E85CB1F2E5541CDCCCC9C42795041E17A148E1E2E5541000000D042795041B81E857B1C2E5541E17A143E437950415C8FC205182E5541295C8F82437950410AD7A340152E5541B81E85AB44795041EC51B8EE102E5541666666A64579504152B81E950A2E55415C8FC2F545795041F6285CAF022E55418FC2F5E8457950415C8FC215012E5541E17A149E44795041AE47E1CAFF2D5541B81E854B42795041D7A370ADFD2D5541E17A142E40795041CDCCCCCCFC2D5541000000103E795041CDCCCCCCFC2D55410AD7A3903C795041F6285CEFFD2D5541F6285CFF3B795041D7A370DDFE2D5541713D0A273C795041713D0A77002E5541D7A370ED3C7950411F85EB71012E5541F6285C2F3D7950419A9999C9022E554185EB51B83C79504148E17AC4032E5541AE47E1CA3B79504185EB5198042E5541E17A140E39795041AE47E1BA052E5541295C8F023679504148E17A54072E55417B14AED7337950413D0AD7D3082E5541B81E852B33795041A4703D9A092E5541EC51B81E3379504185EB51380A2E5541E17A146E33795041B81E855B0B2E554185EB51F8347950417B14AE170E2E55411F85EB21357950417B14AEB7102E55415C8FC2C53479504148E17AB4112E554148E17A043379504166666626132E5541CDCCCC7C30795041295C8FD2132E5541F6285C0F2E79504114AE4771142E55411F85EB212D795041E17A14AE152E5541F6285CDF2C795041D7A3702D172E55410AD7A3302D795041A4703DEA182E55418FC2F53827795041D7A370FD1D2E5541C3F528AC2179504114AE47D11E2E5541B81E851B20795041C3F528DC202E5541B81E856B1F7950418FC2F528232E5541713D0A371F79504114AE4741252E5541333333431F795041295C8F12262E5541666666461F79504185EB51D8262E5541666666661F795041713D0A472A2E5541C3F5281C1E79504185EB51082C2E55411F85EB011E7950417B14AE972F2E554114AE47211D7950411F85EB31312E5541666666C619795041C3F528AC332E5541AE47E10A18795041D7A3707D332E55410AD7A3A0167950411F85EB71342E5541713D0A6715795041295C8F12362E55419A9999D915795041A4703D6A3B2E554114AE47D114795041EC51B8FE3D2E5541AE47E12A137950411F85EB01402E55413D0AD78311795041C3F5286C402E5541E17A146E107950413D0AD7A3422E5541EC51B83E0F7950417B14AED7452E5541000000D00F7950419A9999D94A2E55418FC2F5280E79504185EB51884D2E5541000000100E795041713D0A874F2E5541CDCCCC5C147950418FC2F5884E2E55410AD7A300157950415C8FC2854E2E5541CDCCCCEC1779504152B81EF54D2E554185EB515818795041333333F34D2E5541295C8FD21B7950419A9999794D2E554114AE47411F7950419A9999F94C2E55411F85EBA126795041E17A148E4B2E5541C3F528CC2C795041713D0AE74A2E554152B81E852C795041B81E85CB4B2E5541000000202C795041F6285C3F4D2E5541C3F528BC2B795041EC51B86E4F2E5541B81E850B207950413D0AD743512E5541713D0AE71A79504148E17A54522E55417B14AEB71A7950417B14AE37512E5541333333031B795041295C8F02502E5541F6285CDF14795041D7A3700D512E554148E17A6414795041295C8F12512E55417B14AE470D79504166666686522E5541EC51B82E0D795041E17A14EE522E55417B14AE870B79504114AE4741552E55418FC2F5980A79504152B81E15572E5541EC51B8AE0B795041F6285C5F582E554152B81E050A795041EC51B89E5A2E5541666666260A795041295C8FE25B2E55417B14AED70A7950411F85EB61602E554114AE47A10B795041F6285CBF622E5541A4703DFA0D7950418FC2F5C8692E55418FC2F5580D7950417B14AE276B2E5541000000000D795041E17A14AE6B2E55410AD7A3300D7950411F85EB916E2E5541F6285C8F0C795041713D0AF76F2E55419A9999190C795041AE47E1EA722E55417B14AE970D795041C3F5283C752E554148E17A840C795041C3F528EC782E5541AE47E10A0C795041A4703D2A7B2E554152B81E750C795041666666E67D2E5541666666360E79504152B81EB57F2E554185EB51A80F7950415C8FC295802E55418FC2F5D811795041EC51B84E812E5541EC51B87E12795041CDCCCC3C822E554114AE472112795041EC51B8DE882E5541333333D31579504166666646882E5541C3F5287C1A795041A4703D9A872E55413D0AD7C31A795041EC51B80E882E5541B81E855B1B795041E17A147E892E55419A9999E91F79504148E17AA4892E55419A9999892B795041EC51B81E892E5541E17A142E2E795041A4703DDA882E55410AD7A3402F795041EC51B8BE882E554114AE47112D795041295C8F527F2E554114AE47C12C795041B81E850B782E5541AE47E1EA2C795041E17A143E752E55418FC2F5F82C795041B81E855B742E55415C8FC2152D795041295C8F82722E554114AE47412D7950411F85EBB16F2E55413D0AD7632D795041D7A3707D6D2E554185EB51A82D795041F6285C3F6B2E5541F6285CAF2D79504114AE47116B2E5541F6285C0F2E7950418FC2F5B8682E55417B14AE572E795041AE47E19A662E55417B14AE772E795041000000B0652E5541E17A147E3079504166666616662E554114AE47F1337950418FC2F588662E5541AE47E1AA357950417B14AEC75E2E5541666666A636795041EC51B85E5A2E554114AE475137795041295C8FD2572E554148E17A14387950418FC2F5E8542E55415C8FC2F538795041D7A3708D512E55415C8FC2C539795041333333734E2E55418FC2F5883B7950418FC2F5B8472E5541C3F5280C3D795041F6285CBF422E55418FC2F5983F795041D7A3705D3A2E55413D0AD733407950417B14AE37372E55418FC2F52841795041F6285C1F322E5541B81E85BB3F795041A4703D8A332E5541666666862F79504148E17AF42F2E5541713D0A972E795041F6285CBF2F2E5541F6285C3F2F795041A4703DAA2E2E554185EB515830795041000000302D2E55413D0AD7D32E7950413D0AD7532B2E5541F6285CEF2E7950410AD7A3202A2E5541E17A140E317950411F85EB81262E554133333323327950413D0AD713272E5541AE47E19A3A7950417B14AEC7282E5541713D0A573D79504152B81ED5282E5541E17A142E3F79504100000050272E5541
+</a>
+
+<b>
+0106000000010000000103000000010000001400000099B940CF15795041D85CBBBF392E55419D4B31B515795041718A96B7392E55419A9999D915795041A4703D6A3B2E554114AE47D114795041EC51B8FE3D2E5541AE47E12A137950411F85EB01402E5541606FD64712795041152EF03A402E554106F3D70312795041F3DC299C402E5541D335AE671079504190FC9AC9422E55415529A6591079504130240EDB422E554199D704D00F7950413D4D014F442E5541221720F51A795041DEFFACE7442E55419E0DD8D31D7950416B4D9012452E55416898D78621795041D444B34A452E5541F187D793207950415B51149E402E55411A8DF688207950411659A360402E554170283CDA20795041E9241FF53E2E5541AFF4712D2179504104D7EAA13D2E5541F062DD5421795041F6EC41893C2E554183808024177950414D539BF8392E554199B940CF15795041D85CBBBF392E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>336027 - 398923
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000095000000E17A142E3F79504100000050272E554148E17AB4417950411F85EB41252E554185EB510842795041CDCCCCFC222E5541000000D042795041F6285CFF222E5541E17A147E42795041B81E85CB1F2E5541CDCCCC9C42795041E17A148E1E2E5541000000D042795041B81E857B1C2E5541E17A143E437950415C8FC205182E5541295C8F82437950410AD7A340152E5541B81E85AB44795041EC51B8EE102E5541666666A64579504152B81E950A2E55415C8FC2F545795041F6285CAF022E55418FC2F5E8457950415C8FC215012E5541E17A149E44795041AE47E1CAFF2D5541B81E854B42795041D7A370ADFD2D5541E17A142E40795041CDCCCCCCFC2D5541000000103E795041CDCCCCCCFC2D55410AD7A3903C795041F6285CEFFD2D5541F6285CFF3B795041D7A370DDFE2D5541713D0A273C795041713D0A77002E5541D7A370ED3C7950411F85EB71012E5541F6285C2F3D7950419A9999C9022E554185EB51B83C79504148E17AC4032E5541AE47E1CA3B79504185EB5198042E5541E17A140E39795041AE47E1BA052E5541295C8F023679504148E17A54072E55417B14AED7337950413D0AD7D3082E5541B81E852B33795041A4703D9A092E5541EC51B81E3379504185EB51380A2E5541E17A146E33795041B81E855B0B2E554185EB51F8347950417B14AE170E2E55411F85EB21357950417B14AEB7102E55415C8FC2C53479504148E17AB4112E554148E17A043379504166666626132E5541CDCCCC7C30795041295C8FD2132E5541F6285C0F2E79504114AE4771142E55411F85EB212D795041E17A14AE152E5541F6285CDF2C795041D7A3702D172E55410AD7A3302D795041A4703DEA182E55418FC2F53827795041D7A370FD1D2E5541C3F528AC2179504114AE47D11E2E5541B81E851B20795041C3F528DC202E5541B81E856B1F7950418FC2F528232E5541713D0A371F79504114AE4741252E5541333333431F795041295C8F12262E5541666666461F79504185EB51D8262E5541666666661F795041713D0A472A2E5541C3F5281C1E79504185EB51082C2E55411F85EB011E7950417B14AE972F2E554114AE47211D7950411F85EB31312E5541666666C619795041C3F528AC332E5541AE47E10A18795041D7A3707D332E55410AD7A3A0167950411F85EB71342E5541713D0A6715795041295C8F12362E55419A9999D915795041A4703D6A3B2E554114AE47D114795041EC51B8FE3D2E5541AE47E12A137950411F85EB01402E55413D0AD78311795041C3F5286C402E5541E17A146E107950413D0AD7A3422E5541EC51B83E0F7950417B14AED7452E5541000000D00F7950419A9999D94A2E55418FC2F5280E79504185EB51884D2E5541000000100E795041713D0A874F2E5541CDCCCC5C147950418FC2F5884E2E55410AD7A300157950415C8FC2854E2E5541CDCCCCEC1779504152B81EF54D2E554185EB515818795041333333F34D2E5541295C8FD21B7950419A9999794D2E554114AE47411F7950419A9999F94C2E55411F85EBA126795041E17A148E4B2E5541C3F528CC2C795041713D0AE74A2E554152B81E852C795041B81E85CB4B2E5541000000202C795041F6285C3F4D2E5541C3F528BC2B795041EC51B86E4F2E5541B81E850B207950413D0AD743512E5541713D0AE71A79504148E17A54522E55417B14AEB71A7950417B14AE37512E5541333333031B795041295C8F02502E5541F6285CDF14795041D7A3700D512E554148E17A6414795041295C8F12512E55417B14AE470D79504166666686522E5541EC51B82E0D795041E17A14EE522E55417B14AE870B79504114AE4741552E55418FC2F5980A79504152B81E15572E5541EC51B8AE0B795041F6285C5F582E554152B81E050A795041EC51B89E5A2E5541666666260A795041295C8FE25B2E55417B14AED70A7950411F85EB61602E554114AE47A10B795041F6285CBF622E5541A4703DFA0D7950418FC2F5C8692E55418FC2F5580D7950417B14AE276B2E5541000000000D795041E17A14AE6B2E55410AD7A3300D7950411F85EB916E2E5541F6285C8F0C795041713D0AF76F2E55419A9999190C795041AE47E1EA722E55417B14AE970D795041C3F5283C752E554148E17A840C795041C3F528EC782E5541AE47E10A0C795041A4703D2A7B2E554152B81E750C795041666666E67D2E5541666666360E79504152B81EB57F2E554185EB51A80F7950415C8FC295802E55418FC2F5D811795041EC51B84E812E5541EC51B87E12795041CDCCCC3C822E554114AE472112795041EC51B8DE882E5541333333D31579504166666646882E5541C3F5287C1A795041A4703D9A872E55413D0AD7C31A795041EC51B80E882E5541B81E855B1B795041E17A147E892E55419A9999E91F79504148E17AA4892E55419A9999892B795041EC51B81E892E5541E17A142E2E795041A4703DDA882E55410AD7A3402F795041EC51B8BE882E554114AE47112D795041295C8F527F2E554114AE47C12C795041B81E850B782E5541AE47E1EA2C795041E17A143E752E55418FC2F5F82C795041B81E855B742E55415C8FC2152D795041295C8F82722E554114AE47412D7950411F85EBB16F2E55413D0AD7632D795041D7A3707D6D2E554185EB51A82D795041F6285C3F6B2E5541F6285CAF2D79504114AE47116B2E5541F6285C0F2E7950418FC2F5B8682E55417B14AE572E795041AE47E19A662E55417B14AE772E795041000000B0652E5541E17A147E3079504166666616662E554114AE47F1337950418FC2F588662E5541AE47E1AA357950417B14AEC75E2E5541666666A636795041EC51B85E5A2E554114AE475137795041295C8FD2572E554148E17A14387950418FC2F5E8542E55415C8FC2F538795041D7A3708D512E55415C8FC2C539795041333333734E2E55418FC2F5883B7950418FC2F5B8472E5541C3F5280C3D795041F6285CBF422E55418FC2F5983F795041D7A3705D3A2E55413D0AD733407950417B14AE37372E55418FC2F52841795041F6285C1F322E5541B81E85BB3F795041A4703D8A332E5541666666862F79504148E17AF42F2E5541713D0A972E795041F6285CBF2F2E5541F6285C3F2F795041A4703DAA2E2E554185EB515830795041000000302D2E55413D0AD7D32E7950413D0AD7532B2E5541F6285CEF2E7950410AD7A3202A2E5541E17A140E317950411F85EB81262E554133333323327950413D0AD713272E5541AE47E19A3A7950417B14AEC7282E5541713D0A573D79504152B81ED5282E5541E17A142E3F79504100000050272E5541
+</a>
+
+<b>
+0106000000010000000103000000010000001400000099B940CF15795041D85CBBBF392E55419D4B31B515795041718A96B7392E55419A9999D915795041A4703D6A3B2E554114AE47D114795041EC51B8FE3D2E5541AE47E12A137950411F85EB01402E5541606FD64712795041152EF03A402E554106F3D70312795041F3DC299C402E5541D335AE671079504190FC9AC9422E55415529A6591079504130240EDB422E554199D704D00F7950413D4D014F442E5541221720F51A795041DEFFACE7442E55419E0DD8D31D7950416B4D9012452E55416D98D78621795041D144B34A452E5541F187D793207950415B51149E402E55411A8DF688207950411659A360402E554170283CDA20795041E9241FF53E2E5541AFF4712D2179504104D7EAA13D2E5541F262DD5421795041F7EC41893C2E554183808024177950414D539BF8392E554199B940CF15795041D85CBBBF392E5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>336030 - 262907
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000060000000D7A3706D82795041295C8F02902D5541E17A14AE86795041B81E85EB912D55415C8FC2C5877950418FC2F5D8922D5541A4703D5A89795041AE47E13A932D554152B81EA58B795041CDCCCCBC922D554114AE47E18D7950417B14AE07922D554152B81EA58E795041713D0AE78F2D554152B81E8590795041295C8F22912D55418FC2F54891795041000000908F2D5541F6285C6F91795041E17A14DE8E2D55418FC2F5A8917950411F85EBD18D2D554185EB51E891795041C3F5289C8B2D5541F6285CFF91795041B81E85CB8A2D5541D7A3702D92795041B81E854B882D55419A99992992795041295C8F52862D554114AE473192795041A4703D8A852D55419A9999399079504133333393802D5541EC51B8BE9079504114AE47017F2D55415C8FC21590795041E17A14AE7D2D55413D0AD7E38F795041AE47E13A7D2D554148E17A648F79504185EB51187C2D55418FC2F5888E795041D7A370CD7A2D55419A9999C98D795041C3F5281C7A2D554114AE47A18C795041B81E850B792D5541CDCCCCDC8B7950413D0AD713782D55418FC2F5588579504185EB51C8762D554148E17A5480795041C3F528FC752D55415C8FC2D57F795041666666F6732D55410000006084795041C3F528CC742D5541666666F684795041D7A3708D722D5541A4703D2A89795041F6285C7F732D5541D7A370AD88795041666666D6702D55413D0AD7F38779504185EB5118702D5541C3F5283C87795041B81E857B6D2D5541D7A370DD8679504185EB51586C2D5541C3F528DC86795041333333F3692D5541D7A370AD867950411F85EB11692D55413D0AD743867950418FC2F5E8672D5541F6285CFF85795041AE47E15A672D554152B81EB585795041000000C0662D554114AE47F184795041B81E854B662D55419A9999D9837950411F85EB01652D55415C8FC21583795041C3F5280C642D55410AD7A3D0817950417B14AE07632D5541E17A141E8179504148E17AD4632D5541295C8F2280795041295C8F72632D554114AE47517F79504133333323622D5541713D0A977F7950410AD7A3F0602D554148E17AC481795041EC51B88E5F2D5541D7A3708D81795041C3F5287C5E2D5541713D0A0783795041CDCCCC2C5D2D5541AE47E15A84795041000000E05C2D5541AE47E17A8579504185EB51285B2D5541B81E850B85795041F6285CAF592D5541F6285CEF80795041E17A14BE582D55413D0AD7A382795041D7A3706D562D5541C3F528BC807950415C8FC215562D55417B14AE477E79504148E17A64542D554185EB51587D79504100000010532D5541D7A3708D7A795041713D0A47522D55411F85EB617A79504148E17AB4542D554148E17A147A795041A4703D6A562D5541CDCCCC7C797950415C8FC285582D5541D7A3704D787950418FC2F5785B2D5541EC51B8AE757950410AD7A3F0602D5541D7A3706D73795041C3F528FC642D55415C8FC27572795041AE47E1BA662D55417B14AE97717950418FC2F568682D55413333331370795041F6285CFF6B2D554152B81E9572795041C3F528AC6C2D554148E17A7471795041C3F528FC712D55411F85EBD16E795041AE47E13A712D55418FC2F5F86D795041B81E859B762D5541D7A370ED6D7950413D0AD7E3762D5541713D0A576D7950413D0AD703792D5541000000506C795041A4703D3A7B2D55418FC2F59869795041C3F5288C822D55418FC2F59868795041333333F3842D5541EC51B8FE667950413D0AD7E3872D5541F6285CCF65795041295C8F82892D554152B81E4563795041B81E859B8C2D55415C8FC2F561795041C3F5286C8E2D5541F6285C6F61795041000000708F2D5541D7A3705D6179504148E17A14902D55411F85EBA161795041A4703DCA902D5541D7A3702D6279504185EB5138912D5541AE47E1DA6D795041D7A3702D962D5541D7A3708D6E795041295C8FD2952D5541AE47E17A70795041E17A148E932D554148E17A5474795041D7A370CD922D554114AE4751767950415C8FC2A5912D5541295C8F22787950410AD7A3C0912D5541EC51B8CE7979504100000060912D5541D7A3706D7979504152B81E158F2D55411F85EB017E7950415C8FC2A58E2D5541D7A3706D82795041295C8F02902D5541
+</a>
+
+<b>
+0106000000010000000103000000020000007D00000025DD7AC481795041493DB88E5F2D5541D7A3708D81795041C3F5287C5E2D5541713D0A0783795041CDCCCC2C5D2D5541A98316B78379504117E103055D2D554122B628AC83795041C00B15EE5C2D554165D2F4E8827950414D56B96E5B2D5541944BC2D581795041D58E66065A2D5541AAD45EEF80795041AA1715BE582D55413D0AD7A382795041D7A3706D562D5541C3F528BC807950415C8FC215562D55417B14AE477E79504148E17A64542D554185EB51587D79504100000010532D5541D7A3708D7A795041713D0A47522D55411F85EB617A79504148E17AB4542D554148E17A147A795041A4703D6A562D55415087E7F479795041369D8DDA562D5541EA9BCD7C7979504121E1C385582D55418089704D7879504109D5F6785B2D5541F1F2C5B177795041AB75CFBD5C2D5541C5A2B8AE75795041532EA3F0602D554162768C9A7479504118A608E0622D554136B9716D73795041B5D729FC642D5541A263C37572795041E0F9E0BA662D5541CECAAE9771795041B0E5F468682D5541467B99B97C795041EBBFF5286C2D5541E632FFBF7C795041F524D7C36C2D5541E9970A977D7950417E06AD876E2D55412EB4EBF17C795041061E29AC6F2D5541D0B35B6F7B795041BA379A396F2D554141B284FB75795041A5CAC3956D2D5541224A3413707950410C745CFF6B2D554152B81E9572795041C3F528AC6C2D5541B856837471795041C31A01FC712D55412CBC478174795041F31186DB722D55410D3DB94E73795041C094E0EA772D55418FC2F5F86D795041B81E859B762D5541D7A370ED6D7950413D0AD7E3762D554185C409576D7950414B35D803792D55412E0417466D795041B39F5628792D5541000000506C795041A4703D3A7B2D5541E341A8DC6A79504131E56D237F2D5541F33CF6986979504155F7298C822D5541BBC000EE68795041C063E226842D55419717F59868795041DE6C34F3842D5541339A09176A7950417C938FE2852D5541C612B90E70795041D10DA4C0882D55417E04B83E747950413F4F66668B2D554130A77A84737950412EED6FFD8B2D554140095CCF727950414CA2A4908C2D55416585EAB1727950417F4AD7F38C2D5541C24409B7727950413DB7718D8D2D55419EB6C24573795041F62E98E98F2D55413C0C713D747950413EF4B68E922D554148A779547479504137E170CD922D554114AE4751767950415C8FC2A5912D554179AD902278795041E88AA3C0912D5541EC51B8CE7979504100000060912D5541D7A3706D7979504152B81E158F2D55411F85EB017E7950415C8FC2A58E2D5541D7A3706D82795041295C8F02902D5541E17A14AE86795041B81E85EB912D5541E1126C54877950410553BD78922D55415C8FC2C5877950418FC2F5D8922D5541A4703D5A89795041AE47E13A932D554152B81EA58B795041CDCCCCBC922D554114AE47E18D7950417B14AE07922D554152B81EA58E795041713D0AE78F2D554107061E8590795041F6E68E22912D5541B138F548917950415889FF8F8F2D55412EBDE05591795041FFA925548F2D5541BC0F5C6F91795041C1EF14DE8E2D55418FC2F5A8917950411F85EBD18D2D5541AB1EDEDB9179504105C3590B8C2D5541E9E051E89179504162B9279C8B2D5541E3CE5AFF9179504135EA84CB8A2D554125896F2D92795041C058844B882D55418B40722B92795041281D5945872D55419A99992992795041295C8F52862D5541CB6F642F9279504146097ABB852D554136504731927950411FE63D8A852D5541A3D890039179504104B4DC90822D55419A9999399079504133333393802D55418037F53B90795041D9BD148C802D5541020AB7BE90795041220B47017F2D5541A790462890795041356640D37D2D55415C8FC21590795041E17A14AE7D2D5541B89FD6E38F795041A954E03A7D2D5541EBB1FFD98F795041EBA06D247D2D5541578879648F795041EA9551187C2D554151AC5DA98E795041BBF948FE7A2D55418FC2F5888E795041D7A370CD7A2D554163020E408E7950415224E6897A2D5541B2A199C98D7950416F7B291C7A2D554100DAD16D8D79504171D7B6C7792D554114AE47A18C795041B81E850B792D5541CDCCCCDC8B7950413D0AD713782D55418FC2F5588579504185EB51C8762D5541D912DDF5847950412ABA91B8762D5541BA217C5480795041F6432AFC752D554182B1C2D57F795041AE6C66F6732D5541875646A0827950411966D079742D55410000006084795041C3F528CC742D5541666666F684795041D7A3708D722D55416FF1BC4A877950414B478913732D554162363D2A897950412B1F5B7F732D554164D170AD88795041087167D6702D554132F0D6F387795041A94C5218702D5541D8A116E18779504150150BD46F2D5541C3F5283C87795041B81E857B6D2D5541EAA5E4EC86795041D0F8D3876C2D5541761E70DD867950416E7251586C2D5541B77E7FDC86795041CF741D956A2D5541F2F528DC86795041938B33F3692D5541D796ECD286795041FB65AAC6692D5541D7A370AD867950411F85EB11692D55415040479F86795041C27C18EA682D5541B8B1D54386795041FE13F7E8672D5541AD855BFF85795041481EE15A672D554151FD7BB47F795041AFDA294C662D55414D74EBA17F7950413B25B9AE642D5541986C1D857F795041E462AF77632D554199E4699C7F79504137FF989B622D554114AE47517F79504133333323622D5541713D0A977F7950410AD7A3F0602D554125DD7AC481795041493DB88E5F2D5541090000004060ADE78A795041A6148F227C2D554161BBE01A8D7950414DCC48A17C2D5541B7C548418D7950413A251ED57F2D55410913EB018379504170129AB97D2D5541751066168379504179626FFD7C2D554117C8E03A83795041179B9A497C2D5541C736A3708A795041CCD1A3A07D2D554154C2B86E8A7950414531D6C37C2D55414060ADE78A795041A6148F227C2D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>336185 - 197446
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000C00000052B81EC5F65A5041333333C3322F5541713D0A37F55A504185EB51A8312F5541C3F528ACF35A5041EC51B88E302F5541AE47E1EAF05A50418FC2F5982E2F5541E17A143EDA5A5041E17A14FE6A2F55419A9999C9DC5A5041333333836D2F554166666636DE5A5041B81E85EB6E2F5541C3F5288CDE5A50410AD7A3406F2F554148E17AB4DF5A504133333333702F554148E17A34E15A5041E17A146E712F554114AE4751F85A5041D7A370DD332F554152B81EC5F65A5041333333C3322F5541
+</a>
+
+<b>
+01060000000100000001030000000100000013000000AD6227ACF35A50418F83BC8E302F55415E08E079F25A5041F58FD1B42F2F5541430EE1EAF05A50417C5BF6982E2F5541E17A143EDA5A5041E17A14FE6A2F554156CE268ADC5A504140F65F446D2F5541D1A18BC9DC5A50419C962E836D2F5541ED246636DE5A50410F4284EB6E2F5541BBE1298CDE5A5041B682A4406F2F55412F9C92A5DE5A5041093371556F2F5541E6C06DB4DF5A504190742833702F5541EE987A34E15A5041883F146E712F5541492C4851F85A5041AD0F71DD332F5541233E430DF85A50415655FBAC332F5541A00F1EC5F65A504154BB32C3322F554144498C83F65A50419F939A94322F5541F0B10937F55A5041244053A8312F5541DED30B10F45A50416A9FF3D5302F5541CC6A2ECCF35A504117288EA5302F5541AD6227ACF35A50418F83BC8E302F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>336750 - 3054526
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000340000003333333333B4504114AE47F1602F5441713D0A8730B45041E17A14BE5A2F5441AE47E19A2AB45041000000004D2F544185EB516827B4504100000050402F54413D0AD7B326B450410AD7A370332F54419A99995927B450417B14AEC72A2F5441A4703DEA27B450411F85EB31232F54417B14AEC721B45041B81E85BB202F544114AE470122B450415C8FC215202F54413D0AD70305B450413D0AD7A3172F54411F85EBA104B450410AD7A3B0192F544185EB518804B4504152B81EB5192F5441EC51B8CE00B450418FC2F5482E2F5441713D0AC7FDB350410AD7A3A03F2F5441713D0A77FBB35041E17A14DE4C2F5441EC51B87EF8B350413D0AD7635D2F5441A4703D5AF7B35041F6285C1F642F5441D7A3701DF5B3504100000050712F544100000080F3B3504148E17AD47A2F54417B14AEC7F0B350413D0AD7438D2F54415C8FC295F0B35041666666F68E2F5441A4703DEAEEB35041E17A146E9D2F5441000000F000B45041C3F5286CB22F544100000040F8B350418FC2F598A52F544148E17AE4F9B3504114AE4781A02F544166666616F8B35041666666B69D2F544148E17A94F8B3504152B81EC5992F54417B14AE97F7B350419A9999A9952F544114AE4771F6B35041CDCCCCAC942F54410AD7A390F9B35041F6285C4F8B2F54411F85EBC1F7B35041A4703D5A882F5441666666F61AB4504185EB5138702F544114AE47211BB45041AE47E1EA752F5441F6285C4F0BB45041B81E853B852F544185EB516810B45041E17A148E8A2F5441C3F5286C1AB4504100000020812F5441713D0AE71BB450415C8FC2F5802F544185EB51D81FB4504185EB51587D2F5441E17A141E24B45041A4703DDA7C2F544152B81EE527B45041CDCCCCAC7D2F5441666666562AB45041D7A3700D802F5441C3F5288C2CB4504100000040872F5441D7A370AD2DB45041295C8F628B2F544148E17AA42CB45041000000D08B2F5441B81E85CB2BB450418FC2F5D88C2F54415C8FC2B52BB4504185EB51B88D2F544148E17AB42DB45041E17A149E8D2F54417B14AE073BB45041000000408C2F544148E17AF443B450417B14AEF78B2F5441713D0A8738B45041333333637B2F5441333333F32AB45041EC51B8AE672F54413333333333B4504114AE47F1602F5441
+</a>
+
+<b>
+01060000000100000001030000000100000023000000DC5023A155B4504134801CC3932F5441BF56353056B450412061FB76922F54410EB6726755B45041D1685E24912F544181CE28AE52B45041A44829ED8D2F544141AF3AA751B450416E10C0B68C2F54410EEF74E450B450412CF27B418C2F5441E6896F454FB450412A493E058C2F54411C3301B14CB45041630BA8BE8B2F54411A72C1334AB45041E16FE7CE8B2F5441C90EE37547B45041E99BCCE08B2F5441CCEF1A7843B4504121E69DFB8B2F544122B37BBA40B45041FC32D3118C2F544169D1665D3DB45041F19C142D8C2F544131449D343AB45041CA34A9558C2F54414EAC3CCE36B45041F81FFCAE8C2F5441F34CF9852EB45041EE9194888D2F5441CA03AA7B2EB450410BF8327F8E2F54415F4979CB2EB45041A03D02CF8E2F5441F38E481B2FB45041C9C8A06E8F2F54414D522B4B2FB45041F3533F0E902F54411D1AE7BA2FB450413A20D4BD902F5441703024FA30B450416FF51AED912F5441A5056B2932B45041FD8D444C932F5441339E948833B45041E5E950DB942F5441264449A735B450414F94DE39972F5441EC51B80E37B45041E17A140E992F54415C8FC24540B45041A4703D8AA22F54413B09A1BD40B450413D4CC432A22F5441EB1ED3DF41B45041E546C733A12F5441D77E01FC41B4504175406F4AA12F5441C920EC5A44B45041FA1E8B8F9F2F5441F6285CFF46B450411F85EBA19D2F54411F85EBA14CB450410AD7A3D0992F5441D04BE32255B450418A35BC69942F5441DC5023A155B4504134801CC3932F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>336750 - 3318825
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000340000003333333333B4504114AE47F1602F5441713D0A8730B45041E17A14BE5A2F5441AE47E19A2AB45041000000004D2F544185EB516827B4504100000050402F54413D0AD7B326B450410AD7A370332F54419A99995927B450417B14AEC72A2F5441A4703DEA27B450411F85EB31232F54417B14AEC721B45041B81E85BB202F544114AE470122B450415C8FC215202F54413D0AD70305B450413D0AD7A3172F54411F85EBA104B450410AD7A3B0192F544185EB518804B4504152B81EB5192F5441EC51B8CE00B450418FC2F5482E2F5441713D0AC7FDB350410AD7A3A03F2F5441713D0A77FBB35041E17A14DE4C2F5441EC51B87EF8B350413D0AD7635D2F5441A4703D5AF7B35041F6285C1F642F5441D7A3701DF5B3504100000050712F544100000080F3B3504148E17AD47A2F54417B14AEC7F0B350413D0AD7438D2F54415C8FC295F0B35041666666F68E2F5441A4703DEAEEB35041E17A146E9D2F5441000000F000B45041C3F5286CB22F544100000040F8B350418FC2F598A52F544148E17AE4F9B3504114AE4781A02F544166666616F8B35041666666B69D2F544148E17A94F8B3504152B81EC5992F54417B14AE97F7B350419A9999A9952F544114AE4771F6B35041CDCCCCAC942F54410AD7A390F9B35041F6285C4F8B2F54411F85EBC1F7B35041A4703D5A882F5441666666F61AB4504185EB5138702F544114AE47211BB45041AE47E1EA752F5441F6285C4F0BB45041B81E853B852F544185EB516810B45041E17A148E8A2F5441C3F5286C1AB4504100000020812F5441713D0AE71BB450415C8FC2F5802F544185EB51D81FB4504185EB51587D2F5441E17A141E24B45041A4703DDA7C2F544152B81EE527B45041CDCCCCAC7D2F5441666666562AB45041D7A3700D802F5441C3F5288C2CB4504100000040872F5441D7A370AD2DB45041295C8F628B2F544148E17AA42CB45041000000D08B2F5441B81E85CB2BB450418FC2F5D88C2F54415C8FC2B52BB4504185EB51B88D2F544148E17AB42DB45041E17A149E8D2F54417B14AE073BB45041000000408C2F544148E17AF443B450417B14AEF78B2F5441713D0A8738B45041333333637B2F5441333333F32AB45041EC51B8AE672F54413333333333B4504114AE47F1602F5441
+</a>
+
+<b>
+01060000000100000001030000000100000023000000DC5023A155B4504134801CC3932F5441BF56353056B450412061FB76922F54410EB6726755B45041D1685E24912F544181CE28AE52B45041A44829ED8D2F544141AF3AA751B450416E10C0B68C2F54410EEF74E450B450412CF27B418C2F5441E6896F454FB450412A493E058C2F54411C3301B14CB45041630BA8BE8B2F54411A72C1334AB45041E16FE7CE8B2F5441C90EE37547B45041E99BCCE08B2F5441CCEF1A7843B4504121E69DFB8B2F544122B37BBA40B45041FC32D3118C2F544169D1665D3DB45041F19C142D8C2F544131449D343AB45041CA34A9558C2F54414EAC3CCE36B45041F81FFCAE8C2F5441F34CF9852EB45041EE9194888D2F5441CA03AA7B2EB450410BF8327F8E2F54415F4979CB2EB45041A03D02CF8E2F5441F38E481B2FB45041C9C8A06E8F2F54414D522B4B2FB45041F3533F0E902F54411D1AE7BA2FB450413A20D4BD902F5441703024FA30B450416FF51AED912F5441A5056B2932B45041FD8D444C932F5441339E948833B45041E5E950DB942F5441264449A735B450414F94DE39972F5441EC51B80E37B45041E17A140E992F54415C8FC24540B45041A4703D8AA22F54413B09A1BD40B450413D4CC432A22F5441EB1ED3DF41B45041E546C733A12F5441D77E01FC41B4504175406F4AA12F5441C920EC5A44B45041FA1E8B8F9F2F5441F6285CFF46B450411F85EBA19D2F54411F85EBA14CB450410AD7A3D0992F5441D04BE32255B450418A35BC69942F5441DC5023A155B4504134801CC3932F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>336857 - 1873543
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000570000009A999929B9B45041AE47E1BAF42E54413D0AD773C2B45041A4703D3AF72E54410AD7A3E0C7B450410AD7A3C0F12E5441B81E850BC9B450418FC2F5E8F22E54419A9999F9CBB45041EC51B89EED2E544100000050BCB450413D0AD7B3DD2E5441E17A144EACB4504133333313CD2E54415C8FC225A7B450419A9999A9C72E544100000090A1B45041C3F528BCC12E5441295C8FA29AB45041CDCCCC1CBB2E5441C3F5285C94B45041E17A14AEB92E5441713D0AB791B45041E17A14BEB22E5441EC51B84E8EB4504185EB5128A92E5441C3F5285C8CB45041CDCCCCCCA32E5441E17A143E87B45041295C8F72952E5441B81E857B85B450419A9999E98F2E544114AE47D178B450411F85EB61902E5441D7A3705D6BB4504148E17A04912E5441D7A3707D6FB45041CDCCCC1C7F2E5441B81E85FB71B45041A4703D4A742E54417B14AE3760B450410AD7A3F06E2E54413D0AD76359B450418FC2F5A87C2E54415C8FC2C54EB4504148E17AF4872E5441713D0A374AB4504185EB51D88B2E54413333333346B450419A9999F98D2E5441713D0AA73CB4504152B81EF58D2E5441A4703D9A3FB450418FC2F568942E5441CDCCCC4C41B4504148E17A94982E5441666666D64CB45041EC51B89E9C2E5441D7A3706D4EB450411F85EB019D2E5441A4703D5A50B450411F85EB019D2E544114AE478154B45041CDCCCC2C9C2E5441C3F5282C57B45041B81E850B9C2E5441A4703DCA58B450411F85EB919C2E54411F85EB515AB45041666666D69D2E5441713D0A075EB45041E17A14AE9F2E54410AD7A3D05DB450417B14AE27A02E544152B81E855FB45041C3F528FCA02E5441C3F5284C5EB4504100000000A42E5441666666A65CB45041E17A143EA32E54417B14AE275CB45041B81E850BA42E5441AE47E16A5CB4504114AE4701A52E54417B14AEB75CB450411F85EBF1A52E54415C8FC2A55EB45041F6285CCFA82E544152B81E4561B45041AE47E1EAAC2E5441295C8F3264B4504148E17A74AF2E5441713D0AC766B450411F85EBF1B12E544152B81ED568B4504133333363B32E5441295C8FC26BB45041666666F6B42E54418FC2F54870B450415C8FC2C5B62E54419A9999A96FB4504185EB5168B72E54418FC2F5486CB4504148E17A24B62E5441E17A14BE68B45041CDCCCC5CB42E5441295C8F6266B450413D0AD783B22E54415C8FC20564B45041D7A370ADB02E5441E17A147E62B45041B81E850BB42E54417B14AEB75BB45041295C8F12B12E5441666666265BB45041C3F528ACAF2E54419A9999695BB45041AE47E15AAD2E5441C3F5286C57B45041B81E85BBAC2E544114AE476155B4504100000000AC2E544152B81EA552B450417B14AE97AA2E54413333330352B45041B81E85DBA92E54419A9999A951B45041C3F5283CA72E5441B81E855B51B45041CDCCCC7CA52E5441CDCCCC7C51B450418FC2F598A12E54411F85EB0151B450417B14AE479F2E544185EB51D84FB450413D0AD7039E2E544114AE47414EB45041E17A149E9D2E5441E17A14AE4CB45041000000509D2E54411F85EBC142B45041D7A370FD992E5441666666D641B45041713D0AE7992E54413333333345B45041C3F5282CA22E544148E17AF446B45041EC51B8FEA62E544114AE47B148B45041B81E857BAB2E5441AE47E19A4AB450415C8FC225B02E5441E17A146E4CB4504185EB51A8B42E5441EC51B85E4EB45041EC51B80EB92E54413D0AD70356B450415C8FC245C92E5441000000505AB4504114AE4731D22E54419A9999795CB450415C8FC215D12E54415C8FC2555EB4504152B81EC5CF2E5441D7A3702D61B45041C3F5283CCC2E54413D0AD77365B450417B14AE37C82E5441AE47E17A76B45041AE47E10ABA2E5441CDCCCC6C97B45041A4703D0AD72E54419A999929B9B45041AE47E1BAF42E5441
+</a>
+
+<b>
+0106000000010000000103000000010000006100000034F65B4577B45041DF906A3EBF2E54414798071A7AB450413210F03ABD2E5441DDD55C2F7AB45041D9EEB64DBD2E5441A51B3A367AB4504143E92449BD2E5441CDCCCC6C97B45041A4703D0AD72E54419A999929B9B45041AE47E1BAF42E54413D0AD773C2B45041A4703D3AF72E54410AD7A3E0C7B450410AD7A3C0F12E5441B81E850BC9B450418FC2F5E8F22E54419A9999F9CBB45041EC51B89EED2E544100000050BCB450413D0AD7B3DD2E5441E17A144EACB4504133333313CD2E54415C8FC225A7B450419A9999A9C72E544100000090A1B45041C3F528BCC12E5441295C8FA29AB45041CDCCCC1CBB2E5441C3F5285C94B45041E17A14AEB92E5441713D0AB791B45041E17A14BEB22E5441EC51B84E8EB4504185EB5128A92E5441C3F5285C8CB45041CDCCCCCCA32E5441E17A143E87B45041295C8F72952E5441B81E857B85B450419A9999E98F2E544114AE47D178B450411F85EB61902E5441D7A3705D6BB4504148E17A04912E5441D7A3707D6FB45041CDCCCC1C7F2E5441B81E85FB71B45041A4703D4A742E54417B14AE3760B450410AD7A3F06E2E54413D0AD76359B450418FC2F5A87C2E54415C8FC2C54EB4504148E17AF4872E5441713D0A374AB4504185EB51D88B2E54413333333346B450419A9999F98D2E5441713D0AA73CB4504152B81EF58D2E5441A4703D9A3FB450418FC2F568942E54416C7916F141B450412E64B84E952E5441F1FA1D2E43B450410AE9AA43992E5441666666D64CB45041EC51B89E9C2E5441D7A3706D4EB450411F85EB019D2E5441A4703D5A50B450411F85EB019D2E544114AE478154B45041CDCCCC2C9C2E5441C3F5282C57B45041B81E850B9C2E5441A4703DCA58B450411F85EB919C2E54411F85EB515AB45041666666D69D2E5441713D0A075EB45041E17A14AE9F2E54410AD7A3D05DB450417B14AE27A02E544152B81E855FB45041C3F528FCA02E5441C3F5284C5EB4504100000000A42E5441666666A65CB45041E17A143EA32E54417B14AE275CB45041B81E850BA42E5441AE47E16A5CB4504114AE4701A52E54417B14AEB75CB450411F85EBF1A52E54415C8FC2A55EB45041F6285CCFA82E544152B81E4561B45041AE47E1EAAC2E5441295C8F3264B4504148E17A74AF2E5441713D0AC766B450411F85EBF1B12E544152B81ED568B4504133333363B32E5441295C8FC26BB45041666666F6B42E54418FC2F54870B450415C8FC2C5B62E54419A9999A96FB4504185EB5168B72E54418FC2F5486CB4504148E17A24B62E5441E17A14BE68B45041CDCCCC5CB42E5441295C8F6266B450413D0AD783B22E54415C8FC20564B45041D7A370ADB02E5441E17A147E62B45041B81E850BB42E54417B14AEB75BB45041295C8F12B12E5441666666265BB45041C3F528ACAF2E54419A9999695BB45041AE47E15AAD2E5441C3F5286C57B45041B81E85BBAC2E544114AE476155B4504100000000AC2E544152B81EA552B450417B14AE97AA2E54413333330352B45041B81E85DBA92E54419A9999A951B45041C3F5283CA72E5441B81E855B51B45041CDCCCC7CA52E5441CDCCCC7C51B450418FC2F598A12E54411F85EB0151B450417B14AE479F2E544185EB51D84FB450413D0AD7039E2E544114AE47414EB45041E17A149E9D2E5441E17A14AE4CB45041000000509D2E5441E28114D448B45041916C3F229C2E5441FB7AD93543B45041316A5F339A2E54415D5A774444B45041BEE84A0D9E2E54419CB9D65A45B4504119B698DBA12E544181EF531B47B45041ACBB57A1A62E54417B4CBFFA48B450413AC11667AB2E544159A92ADA4AB450414FB35E1DB02E54414CDFA79A4CB45041C8435386B42E5441C99D66C74EB450414DFB350EB92E54413E2E5B3053B45041EAF23C8AC22E544161EA252656B45041E21A0201C92E5441F24B797356B45041F068DE3EC92E544107C143D056B4504128A14F36CA2E5441D8532C705AB4504169765001D22E54419A9999795CB450415C8FC215D12E54415C8FC2555EB4504152B81EC5CF2E5441627913C761B45041BEF1ED8DCD2E544153C326AC6BB4504154745DF7C62E5441BB43B2676DB450416F9B0BD0C52E5441F3ADFA9872B45041777FFC5AC22E544134F65B4577B45041DF906A3EBF2E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>336857 - 3318369
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000570000009A999929B9B45041AE47E1BAF42E54413D0AD773C2B45041A4703D3AF72E54410AD7A3E0C7B450410AD7A3C0F12E5441B81E850BC9B450418FC2F5E8F22E54419A9999F9CBB45041EC51B89EED2E544100000050BCB450413D0AD7B3DD2E5441E17A144EACB4504133333313CD2E54415C8FC225A7B450419A9999A9C72E544100000090A1B45041C3F528BCC12E5441295C8FA29AB45041CDCCCC1CBB2E5441C3F5285C94B45041E17A14AEB92E5441713D0AB791B45041E17A14BEB22E5441EC51B84E8EB4504185EB5128A92E5441C3F5285C8CB45041CDCCCCCCA32E5441E17A143E87B45041295C8F72952E5441B81E857B85B450419A9999E98F2E544114AE47D178B450411F85EB61902E5441D7A3705D6BB4504148E17A04912E5441D7A3707D6FB45041CDCCCC1C7F2E5441B81E85FB71B45041A4703D4A742E54417B14AE3760B450410AD7A3F06E2E54413D0AD76359B450418FC2F5A87C2E54415C8FC2C54EB4504148E17AF4872E5441713D0A374AB4504185EB51D88B2E54413333333346B450419A9999F98D2E5441713D0AA73CB4504152B81EF58D2E5441A4703D9A3FB450418FC2F568942E5441CDCCCC4C41B4504148E17A94982E5441666666D64CB45041EC51B89E9C2E5441D7A3706D4EB450411F85EB019D2E5441A4703D5A50B450411F85EB019D2E544114AE478154B45041CDCCCC2C9C2E5441C3F5282C57B45041B81E850B9C2E5441A4703DCA58B450411F85EB919C2E54411F85EB515AB45041666666D69D2E5441713D0A075EB45041E17A14AE9F2E54410AD7A3D05DB450417B14AE27A02E544152B81E855FB45041C3F528FCA02E5441C3F5284C5EB4504100000000A42E5441666666A65CB45041E17A143EA32E54417B14AE275CB45041B81E850BA42E5441AE47E16A5CB4504114AE4701A52E54417B14AEB75CB450411F85EBF1A52E54415C8FC2A55EB45041F6285CCFA82E544152B81E4561B45041AE47E1EAAC2E5441295C8F3264B4504148E17A74AF2E5441713D0AC766B450411F85EBF1B12E544152B81ED568B4504133333363B32E5441295C8FC26BB45041666666F6B42E54418FC2F54870B450415C8FC2C5B62E54419A9999A96FB4504185EB5168B72E54418FC2F5486CB4504148E17A24B62E5441E17A14BE68B45041CDCCCC5CB42E5441295C8F6266B450413D0AD783B22E54415C8FC20564B45041D7A370ADB02E5441E17A147E62B45041B81E850BB42E54417B14AEB75BB45041295C8F12B12E5441666666265BB45041C3F528ACAF2E54419A9999695BB45041AE47E15AAD2E5441C3F5286C57B45041B81E85BBAC2E544114AE476155B4504100000000AC2E544152B81EA552B450417B14AE97AA2E54413333330352B45041B81E85DBA92E54419A9999A951B45041C3F5283CA72E5441B81E855B51B45041CDCCCC7CA52E5441CDCCCC7C51B450418FC2F598A12E54411F85EB0151B450417B14AE479F2E544185EB51D84FB450413D0AD7039E2E544114AE47414EB45041E17A149E9D2E5441E17A14AE4CB45041000000509D2E54411F85EBC142B45041D7A370FD992E5441666666D641B45041713D0AE7992E54413333333345B45041C3F5282CA22E544148E17AF446B45041EC51B8FEA62E544114AE47B148B45041B81E857BAB2E5441AE47E19A4AB450415C8FC225B02E5441E17A146E4CB4504185EB51A8B42E5441EC51B85E4EB45041EC51B80EB92E54413D0AD70356B450415C8FC245C92E5441000000505AB4504114AE4731D22E54419A9999795CB450415C8FC215D12E54415C8FC2555EB4504152B81EC5CF2E5441D7A3702D61B45041C3F5283CCC2E54413D0AD77365B450417B14AE37C82E5441AE47E17A76B45041AE47E10ABA2E5441CDCCCC6C97B45041A4703D0AD72E54419A999929B9B45041AE47E1BAF42E5441
+</a>
+
+<b>
+0106000000010000000103000000010000006100000034F65B4577B45041DF906A3EBF2E54414798071A7AB450413210F03ABD2E5441DDD55C2F7AB45041D9EEB64DBD2E5441A51B3A367AB4504143E92449BD2E5441CDCCCC6C97B45041A4703D0AD72E54419A999929B9B45041AE47E1BAF42E54413D0AD773C2B45041A4703D3AF72E54410AD7A3E0C7B450410AD7A3C0F12E5441B81E850BC9B450418FC2F5E8F22E54419A9999F9CBB45041EC51B89EED2E544100000050BCB450413D0AD7B3DD2E5441E17A144EACB4504133333313CD2E54415C8FC225A7B450419A9999A9C72E544100000090A1B45041C3F528BCC12E5441295C8FA29AB45041CDCCCC1CBB2E5441C3F5285C94B45041E17A14AEB92E5441713D0AB791B45041E17A14BEB22E5441EC51B84E8EB4504185EB5128A92E5441C3F5285C8CB45041CDCCCCCCA32E5441E17A143E87B45041295C8F72952E5441B81E857B85B450419A9999E98F2E544114AE47D178B450411F85EB61902E5441D7A3705D6BB4504148E17A04912E5441D7A3707D6FB45041CDCCCC1C7F2E5441B81E85FB71B45041A4703D4A742E54417B14AE3760B450410AD7A3F06E2E54413D0AD76359B450418FC2F5A87C2E54415C8FC2C54EB4504148E17AF4872E5441713D0A374AB4504185EB51D88B2E54413333333346B450419A9999F98D2E5441713D0AA73CB4504152B81EF58D2E5441A4703D9A3FB450418FC2F568942E54416C7916F141B450412E64B84E952E5441F1FA1D2E43B450410AE9AA43992E5441666666D64CB45041EC51B89E9C2E5441D7A3706D4EB450411F85EB019D2E5441A4703D5A50B450411F85EB019D2E544114AE478154B45041CDCCCC2C9C2E5441C3F5282C57B45041B81E850B9C2E5441A4703DCA58B450411F85EB919C2E54411F85EB515AB45041666666D69D2E5441713D0A075EB45041E17A14AE9F2E54410AD7A3D05DB450417B14AE27A02E544152B81E855FB45041C3F528FCA02E5441C3F5284C5EB4504100000000A42E5441666666A65CB45041E17A143EA32E54417B14AE275CB45041B81E850BA42E5441AE47E16A5CB4504114AE4701A52E54417B14AEB75CB450411F85EBF1A52E54415C8FC2A55EB45041F6285CCFA82E544152B81E4561B45041AE47E1EAAC2E5441295C8F3264B4504148E17A74AF2E5441713D0AC766B450411F85EBF1B12E544152B81ED568B4504133333363B32E5441295C8FC26BB45041666666F6B42E54418FC2F54870B450415C8FC2C5B62E54419A9999A96FB4504185EB5168B72E54418FC2F5486CB4504148E17A24B62E5441E17A14BE68B45041CDCCCC5CB42E5441295C8F6266B450413D0AD783B22E54415C8FC20564B45041D7A370ADB02E5441E17A147E62B45041B81E850BB42E54417B14AEB75BB45041295C8F12B12E5441666666265BB45041C3F528ACAF2E54419A9999695BB45041AE47E15AAD2E5441C3F5286C57B45041B81E85BBAC2E544114AE476155B4504100000000AC2E544152B81EA552B450417B14AE97AA2E54413333330352B45041B81E85DBA92E54419A9999A951B45041C3F5283CA72E5441B81E855B51B45041CDCCCC7CA52E5441CDCCCC7C51B450418FC2F598A12E54411F85EB0151B450417B14AE479F2E544185EB51D84FB450413D0AD7039E2E544114AE47414EB45041E17A149E9D2E5441E17A14AE4CB45041000000509D2E5441E28114D448B45041916C3F229C2E5441FB7AD93543B45041316A5F339A2E54415D5A774444B45041BEE84A0D9E2E54419CB9D65A45B4504119B698DBA12E544181EF531B47B45041ACBB57A1A62E54417B4CBFFA48B450413AC11667AB2E544159A92ADA4AB450414FB35E1DB02E54414CDFA79A4CB45041C8435386B42E5441C99D66C74EB450414DFB350EB92E54413E2E5B3053B45041EAF23C8AC22E544161EA252656B45041E21A0201C92E5441F24B797356B45041F068DE3EC92E544107C143D056B4504128A14F36CA2E5441D8532C705AB4504169765001D22E54419A9999795CB450415C8FC215D12E54415C8FC2555EB4504152B81EC5CF2E5441627913C761B45041BEF1ED8DCD2E544153C326AC6BB4504154745DF7C62E5441BB43B2676DB450416F9B0BD0C52E5441F3ADFA9872B45041777FFC5AC22E544134F65B4577B45041DF906A3EBF2E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>337363 - 4138727
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000001000000000000070B227514166666656303B554148E17A64B2275141E17A14EE303B5541333333A3C8275141CDCCCC3C373B5541666666C6D5275141295C8F823B3B55415C8FC235DE275141295C8F323F3B55417B14AE97E1275141C3F5285C403B5541A4703D9AE42751415C8FC265123B554100000070E627514152B81E95F63A554166666656DB2751413D0AD763F83A5541A4703DEAD32751415C8FC255FA3A554100000060CF2751415C8FC265FC3A5541333333A3CA27514185EB5198FF3A55417B14AE87C62751415C8FC235033B5541E17A141EC3275141A4703D0A073B554148E17AE4B327514148E17A341A3B554100000070B227514166666656303B5541
+</a>
+
+<b>
+01060000000100000001030000000100000016000000AE52DAA1B2275141115D12602D3B554179E926B9B4275141448B6C8F2D3B55416DE7FBE9B42751415C8FC2B5303B55417B48811BC8275141B0836341363B5541D7A3709DD2275141A4703D7A393B5541A245B6A3E0275141508D97263F3B55410C022BDFE127514123DBF9663E3B55415FCC70A5E2275141C8538D68333B5541447C59E9E3275141A6E4DD0F213B5541779BF5D1E42751419502533A123B55411E068B55E62751410AC02726F83A554121B07290E3275141C74B3729F83A554161D1C07CE3275141454E1A10F73A554166666656DB2751413D0AD763F83A5541A4703DEAD32751415C8FC255FA3A554100000060CF2751415C8FC265FC3A5541333333A3CA27514185EB5198FF3A55417B14AE87C62751415C8FC235033B5541E17A141EC3275141A4703D0A073B5541692154F4B3275141A3AC87201A3B5541C1CAA1BDB32751412FDD24EE1A3B5541AE52DAA1B2275141115D12602D3B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>338634 - 3652543
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001100000033333363C0D050410AD7A370428F5441713D0A67C0D05041B81E85FB438F54419A999959C0D0504148E17A14458F5441AE47E16AC0D05041CDCCCC5C5E8F5441F6285C2FC0D05041D7A3700D668F54413D0AD7E3BED050411F85EB617B8F54413D0AD773BDD05041E17A147E938F5441713D0A77B4D0504152B81E95EB8F5441E17A140EB9D0504148E17AC4EC8F54418FC2F5D8C2D05041D7A370BD928F5441A4703D0AC4D050411F85EB917B8F5441C3F5289CC4D05041713D0A276F8F544148E17A44C5D05041F6285CAF618F544100000080C5D05041EC51B81E438F54417B14AE97C5D0504148E17A14428F54410AD7A3A0C5D050413D0AD7E33D8F544133333363C0D050410AD7A370428F5441
+</a>
+
+<b>
+01060000000100000001030000000100000011000000E21C44A0C5D0504148F39A103E8F54410AD7A3A0C5D050413D0AD7E33D8F544133333363C0D050410AD7A370428F5441713D0A67C0D05041B81E85FB438F54419A999959C0D0504148E17A14458F5441AE47E16AC0D05041CDCCCC5C5E8F5441F6285C2FC0D05041D7A3700D668F54413D0AD7E3BED050411F85EB617B8F54413D0AD773BDD05041E17A147E938F5441713D0A77B4D0504152B81E95EB8F5441E17A140EB9D0504148E17AC4EC8F54418FC2F5D8C2D05041D7A370BD928F5441A4703D0AC4D050411F85EB917B8F5441C3F5289CC4D05041713D0A276F8F544148E17A44C5D05041F6285CAF618F544100000080C5D05041EC51B81E438F5441E21C44A0C5D0504148F39A103E8F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>339299 - 184546
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000005000000333333B3F1D050419A9999996991544100000020F3D05041EC51B8DE6D9154411F85EB3124D150417B14AED771915441AE47E19A23D150413D0AD7436D915441333333B3F1D050419A99999969915441
+</a>
+
+<b>
+010600000001000000010300000001000000070000008BC3B89DFAD05041A1323A416A915441C11834B3F1D05041FEE799996991544100000020F3D05041EC51B8DE6D915441EED6EA3124D150419CE2ADD771915441C45955AC23D15041E37340CB6D915441AE47E19A23D150413D0AD7436D9154418BC3B89DFAD05041A1323A416A915441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>339299 - 422568
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000005000000333333B3F1D050419A9999996991544100000020F3D05041EC51B8DE6D9154411F85EB3124D150417B14AED771915441AE47E19A23D150413D0AD7436D915441333333B3F1D050419A99999969915441
+</a>
+
+<b>
+010600000001000000010300000001000000070000008BC3B89DFAD05041A1323A416A915441C11834B3F1D05041FEE799996991544100000020F3D05041EC51B8DE6D915441EED6EA3124D150419CE2ADD771915441C45955AC23D15041E37340CB6D915441AE47E19A23D150413D0AD7436D9154418BC3B89DFAD05041A1323A416A915441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>341665 - 1223605
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000020000000B81E854BE38E514148E17A44399A5441CDCCCC0CEF8E5141CDCCCCDC359A54417B14AE07EA8E5141CDCCCC2C309A54411F85EB61E68E5141B81E850B2C9A5441AE47E18AE18E51418FC2F5D82C9A5441EC51B81EDE8E5141E17A140E289A54418FC2F5E8E08E5141000000501B9A5441666666D6E38E51419A9999D9199A5441CDCCCC5CE68E5141B81E85EB179A544152B81E95E88E5141B81E850B0F9A5441E17A144EE98E514114AE47D10A9A544100000000EA8E5141EC51B87E089A544152B81E25D98E514133333373089A5441713D0AF7D28E5141295C8FF2089A544166666626D38E514148E17A540B9A544100000080D58E51418FC2F5480A9A54418FC2F538DB8E5141295C8FA2099A5441C3F5286CE18E5141000000F0099A54419A9999B9E18E5141295C8F020F9A5441A4703DBAE08E514148E17AA4169A5441E17A140EDE8E5141295C8F321C9A5441A4703D8ADA8E514114AE4701229A54411F85EB01DA8E51418FC2F558249A5441EC51B86EDA8E51417B14AEE7269A5441AE47E10ADD8E5141D7A3702D2C9A5441AE47E14AE08E5141CDCCCCCC2F9A5441CDCCCCBCE68E51411F85EB91329A54417B14AE47E08E5141AE47E16A399A54411F85EB51D48E51419A999929439A544152B81E55D78E5141A4703D3A429A54419A999969DE8E5141D7A370AD3B9A5441B81E854BE38E514148E17A44399A5441
+</a>
+
+<b>
+0106000000010000000103000000010000002C000000BAE959F4E08E514143B53348099A544152B901F1DA8E5141915E1C40099A5441BBC3BB4CD58E514190DEEF3A0A9A544148A86C06D48E51413DCDA0B60A9A5441705F901CD38E5141E1DBE3100B9A54417B14AE37D38E5141713D0A370C9A54417B14AE57D38E51413D0AD7E30E9A5441C3F5286CD38E5141B81E857B119A5441A4703D2AD38E514114AE4761139A5441E17A14AED28E51419A999939159A54419A999999D18E5141F6285CBF179A5441713D0AD7CD8E51419A9999191E9A544114AE47E1C78E5141AE47E13A289A5441F6285CBFC38E5141B81E858B2F9A5441EC51B8BEC18E5141B81E853B339A54419A9999A9BE8E51413D0AD783389A54418FC2F588BC8E5141E17A140E3D9A5441A147EAF3BC8E51415439128F3E9A5441CEC56318C38E5141CFDCB5A0429A5441E17A14AEC58E5141713D0A77459A54417B14AE67C88E514133333373489A544148E17AF4C98E51419A999939499A54416E54CB8BCB8E51415BAFC8414A9A54414D0B9176CD8E514193B45729499A5441854E6377D48E5141BFBC1A9B439A54417B14AE47E08E5141AE47E16A399A54416D6D48B0E88E5141F62B8077329A54411950E5A7DF8E514163E62A6C2D9A5441FFC533EFDD8E5141E0B5A1172C9A54415B46E0D3DD8E5141E81860E12B9A544145901BB3DD8E5141356E81C72B9A54412BEE8911DC8E51419B393A63289A5441FB5B1D3CDB8E5141D5EA78BB269A544157979323DB8E5141828C7EC5249A544171B6FE86DB8E5141AD1CAFF9229A544179C74DB4DB8E5141F2C99C1D229A5441BD93D15BDC8E51412082EFBA209A544163D9F3A7DC8E5141E495FA15209A5441737C1A71DE8E5141CBF0094B1C9A5441374BDD9FDF8E514135706BEF189A544154E82952E08E5141AE89FEA6169A54415FAD822EE18E5141A0221C7E0F9A54416AA47E24E18E5141C139B3790E9A5441BAE959F4E08E514143B53348099A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>341665 - 3312397
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000020000000B81E854BE38E514148E17A44399A5441CDCCCC0CEF8E5141CDCCCCDC359A54417B14AE07EA8E5141CDCCCC2C309A54411F85EB61E68E5141B81E850B2C9A5441AE47E18AE18E51418FC2F5D82C9A5441EC51B81EDE8E5141E17A140E289A54418FC2F5E8E08E5141000000501B9A5441666666D6E38E51419A9999D9199A5441CDCCCC5CE68E5141B81E85EB179A544152B81E95E88E5141B81E850B0F9A5441E17A144EE98E514114AE47D10A9A544100000000EA8E5141EC51B87E089A544152B81E25D98E514133333373089A5441713D0AF7D28E5141295C8FF2089A544166666626D38E514148E17A540B9A544100000080D58E51418FC2F5480A9A54418FC2F538DB8E5141295C8FA2099A5441C3F5286CE18E5141000000F0099A54419A9999B9E18E5141295C8F020F9A5441A4703DBAE08E514148E17AA4169A5441E17A140EDE8E5141295C8F321C9A5441A4703D8ADA8E514114AE4701229A54411F85EB01DA8E51418FC2F558249A5441EC51B86EDA8E51417B14AEE7269A5441AE47E10ADD8E5141D7A3702D2C9A5441AE47E14AE08E5141CDCCCCCC2F9A5441CDCCCCBCE68E51411F85EB91329A54417B14AE47E08E5141AE47E16A399A54411F85EB51D48E51419A999929439A544152B81E55D78E5141A4703D3A429A54419A999969DE8E5141D7A370AD3B9A5441B81E854BE38E514148E17A44399A5441
+</a>
+
+<b>
+0106000000010000000103000000010000002C000000BAE959F4E08E514143B53348099A544152B901F1DA8E5141915E1C40099A5441BBC3BB4CD58E514190DEEF3A0A9A544148A86C06D48E51413DCDA0B60A9A5441705F901CD38E5141E1DBE3100B9A54417B14AE37D38E5141713D0A370C9A54417B14AE57D38E51413D0AD7E30E9A5441C3F5286CD38E5141B81E857B119A5441A4703D2AD38E514114AE4761139A5441E17A14AED28E51419A999939159A54419A999999D18E5141F6285CBF179A5441713D0AD7CD8E51419A9999191E9A544114AE47E1C78E5141AE47E13A289A5441F6285CBFC38E5141B81E858B2F9A5441EC51B8BEC18E5141B81E853B339A54419A9999A9BE8E51413D0AD783389A54418FC2F588BC8E5141E17A140E3D9A5441A147EAF3BC8E51415439128F3E9A5441CEC56318C38E5141CFDCB5A0429A5441E17A14AEC58E5141713D0A77459A54417B14AE67C88E514133333373489A544148E17AF4C98E51419A999939499A54416E54CB8BCB8E51415BAFC8414A9A54414D0B9176CD8E514193B45729499A5441854E6377D48E5141BFBC1A9B439A54417B14AE47E08E5141AE47E16A399A54416D6D48B0E88E5141F62B8077329A54411950E5A7DF8E514163E62A6C2D9A5441FFC533EFDD8E5141E0B5A1172C9A54415B46E0D3DD8E5141E81860E12B9A544145901BB3DD8E5141356E81C72B9A54412BEE8911DC8E51419B393A63289A5441FB5B1D3CDB8E5141D5EA78BB269A544157979323DB8E5141828C7EC5249A544171B6FE86DB8E5141AD1CAFF9229A544179C74DB4DB8E5141F2C99C1D229A5441BD93D15BDC8E51412082EFBA209A544163D9F3A7DC8E5141E495FA15209A5441737C1A71DE8E5141CBF0094B1C9A5441374BDD9FDF8E514135706BEF189A544154E82952E08E5141AE89FEA6169A54415FAD822EE18E5141A0221C7E0F9A54416AA47E24E18E5141C139B3790E9A5441BAE959F4E08E514143B53348099A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>342847 - 226032
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000004000000010300000001000000BF000000A4703D5AD9E750410000006080A85441C3F528BCD9E750419A99999981A85441C3F5288CDDE75041C3F528FC81A85441AE47E14ADEE7504148E17AA481A85441000000D0DFE75041CDCCCCAC81A854415C8FC225E1E7504152B81E6581A854415C8FC255E1E7504148E17AB481A8544133333373E2E750413D0AD73382A854419A999969E3E750418FC2F5C883A854418FC2F5F8E3E750410000006084A854415C8FC2B5E5E750417B14AE7784A8544148E17A94E6E750410AD7A32084A8544133333343E7E7504148E17AB481A854413D0AD703E7E75041E17A14CE80A85441713D0A87E9E75041000000D07FA85441F6285C3FE9E75041295C8F327EA854417B14AE57E9E7504148E17A247DA8544152B81EC5EAE7504148E17A147DA85441AE47E11AECE750419A9999B97EA854411F85EB81ECE750419A9999B97EA854419A9999D9ECE75041A4703D6A7EA85441A4703D5AECE7504148E17A547DA854419A999999ECE750415C8FC2557CA85441A4703D4AECE7504185EB51287BA854418FC2F518EDE750418FC2F5987AA85441713D0A27EEE750410AD7A3E07AA85441D7A3701DEFE75041E17A142E7CA8544133333343F0E750415C8FC2757CA85441F6285C8FF2E75041CDCCCC2C7DA8544166666626F3E75041B81E85CB7DA8544114AE4731F6E750411F85EB917EA854418FC2F538F6E75041333333237EA85441EC51B88EF7E750415C8FC2857CA85441C3F5281CF9E750410AD7A3F07AA8544114AE47A1FAE75041666666167CA85441EC51B8FEFBE750418FC2F5887AA85441E17A146EFCE75041C3F528CC78A8544166666626FCE7504148E17AC478A85441E17A146EFCE75041D7A3702D78A85441B81E852BF9E750413333335379A85441D7A3704DF8E750413333336379A85441EC51B86EF7E75041AE47E1AA79A854417B14AE07F7E750413333336379A85441000000E0F6E75041E17A149E77A85441666666C6F7E750415C8FC2E577A854413D0AD743F9E750416666668677A85441295C8FF2F9E75041000000D076A85441AE47E19AF9E7504185EB516876A85441AE47E18AF9E75041295C8F4275A854413D0AD703F9E75041CDCCCCEC73A8544148E17AA4F8E75041CDCCCCBC73A854415C8FC225F8E7504152B81ED573A85441713D0A37F7E75041295C8F4275A8544114AE4721F6E75041D7A3706D73A8544114AE4721F6E750410AD7A3B071A854418FC2F548F6E75041AE47E17A70A85441E17A140EF8E75041E17A148E6EA85441D7A3703DF8E750410AD7A3406DA85441E17A14FEF7E750419A9999A96CA854417B14AEF7F6E75041AE47E1BA6BA854410AD7A370F6E75041333333B36BA854419A9999C9F5E750415C8FC2456AA85441295C8F22F5E75041713D0A5769A854419A9999E9F5E75041A4703DBA67A85441333333F3F6E750418FC2F5B866A854419A9999C9F5E75041E17A144E65A85441A4703D9AF5E750415C8FC28565A85441295C8F22F5E7504148E17A3466A85441333333E3F4E7504148E17A5466A8544166666606F3E7504152B81ED565A8544166666606F3E750417B14AE8764A85441EC51B8CEF2E750410000005064A854411F85EB31F1E75041E17A147E65A8544152B81E45EFE75041B81E850B67A85441CDCCCC6CEFE750419A99991968A85441295C8F12ECE750417B14AE0769A854413D0AD773EBE750418FC2F53868A85441D7A3705DEAE750418FC2F56868A854415C8FC255EAE750413D0AD7B366A85441000000F0E8E750413D0AD78366A85441295C8F62E7E7504148E17A7466A85441AE47E13AE7E750415C8FC2C565A8544148E17A94E6E75041D7A370DD65A85441E17A145EE5E75041D7A370AD65A85441713D0A07E5E750416666666665A8544185EB5118E4E75041713D0A0765A854411F85EB41E3E750410000003064A85441B81E856BE2E750411F85EB4163A85441B81E856BE2E75041B81E852B62A85441CDCCCC9CE1E750417B14AED75FA854415C8FC235E1E7504185EB51A85FA85441666666A6E0E75041A4703D7A5EA85441EC51B86EE0E75041D7A370BD5CA85441666666D6E0E750418FC2F5885AA8544148E17AF4E1E75041AE47E15A59A8544133333373E2E7504152B81E6558A85441B81E856BE2E75041713D0A2757A85441295C8FD2E2E750417B14AEB756A85441295C8F02E3E75041AE47E1EA54A854418FC2F5D8E3E750413D0AD78354A8544114AE47E1E3E750413D0AD73354A85441E17A148EE5E75041E17A14FE52A8544166666686E5E7504114AE475151A85441CDCCCC5CE6E75041A4703DCA50A8544133333313E7E75041295C8FB250A85441A4703DCAE7E750410AD7A37051A854419A9999F9E7E75041EC51B89E52A854418FC2F598E8E75041E17A141E53A854417B14AE47E9E75041D7A3704D53A85441EC51B8BEE9E750417B14AE3752A85441EC51B8BEE9E750411F85EB0151A854417B14AE17E9E7504152B81EF54EA8544100000030E9E750415C8FC2A54EA85441000000F0E8E75041EC51B81E4EA85441000000F0E8E750410AD7A3104DA854410AD7A3A0E8E750410AD7A3E04CA8544114AE4771E8E750411F85EB614CA85441AE47E16AE7E750417B14AE874DA8544133333343E7E7504152B81E054FA854413D0AD7D3E6E7504148E17A844FA8544148E17AA4E6E75041C3F5287C4FA8544148E17A84E6E75041CDCCCC3C4FA854415C8FC2D5E5E7504152B81E154FA85441713D0A17E5E750410AD7A3304DA85441CDCCCC3CE6E750418FC2F56848A8544152B81E35E6E75041B81E85FB46A8544152B81E05E6E7504148E17A5446A8544152B81EF5E5E75041E17A142E45A85441D7A370CDE5E75041F6285C7F44A85441AE47E13AE7E750411F85EB0143A854419A9999F9E7E75041295C8FF242A854411F85EBF1E7E750411F85EB2143A854418FC2F558E8E750418FC2F5D843A8544100000030E9E750410AD7A3E043A85441EC51B89EE9E750418FC2F58843A85441E17A14FEE9E75041CDCCCCAC41A854417B14AE17E9E75041713D0A2740A854418FC2F5A8E8E75041F6285C1F40A854411F85EBF1E7E750410AD7A3503FA85441A4703D9AE7E75041000000803FA85441D7A370EDE5E7504185EB51A83FA85441713D0AE7E4E75041EC51B87E40A8544148E17A74E6E7504148E17AD441A8544166666686E5E75041295C8FA242A854417B14AEA7E4E75041A4703D0A43A854418FC2F5D8E3E750411F85EB2143A8544148E17AE4E1E75041C3F528EC41A8544185EB51C8DFE75041A4703DFA42A8544148E17A24DDE750413333337342A85441A4703DBADEE750416666666640A85441AE47E15ADEE750411F85EBA13EA85441C3F5288CDDE7504114AE47E13EA854417B14AE67DBE75041295C8F423EA85441C3F5280CD9E750411F85EB813EA85441B81E853BD9E7504114AE47F13EA85441A4703D2ADAE7504185EB51583FA854415C8FC2A5DCE750410AD7A3503FA85441CDCCCCFCDCE7504148E17AD441A85441EC51B8DEDBE750419A99993943A8544100000020DBE750418FC2F5C843A854411F85EB41DAE7504185EB51F843A8544133333393D9E75041F6285C8F44A8544133333353D9E750416666662645A8544166666636DCE750417B14AE5744A85441C3F5286CDDE750411F85EBB147A854413D0AD793DDE750417B14AED748A85441C3F5285CDDE75041A4703D1A4CA85441B81E85CBDDE7504185EB51184DA854413D0AD7B3DDE75041713D0A174EA85441A4703D6ADEE75041C3F528BC4FA85441295C8F42DEE75041295C8FB250A854411F85EBC1DEE75041C3F5283C54A85441A4703DBADEE75041295C8F3255A854411F85EBF1DEE750417B14AE9756A854410AD7A360DFE75041295C8F8259A854410AD7A380DFE7504114AE47715AA854418FC2F548DFE75041666666065CA8544114AE4701DFE75041EC51B80E5CA854410AD7A370DFE750417B14AEF75FA854417B14AE27E0E75041295C8F0263A85441F6285C1FE0E750410AD7A31064A85441F6285C5FE0E750417B14AE9764A85441EC51B87EE0E75041EC51B8FE64A85441E17A140EE1E75041E17A147E65A85441E17A140EE1E75041D7A370DD65A85441F6285C2FE0E7504152B81E0566A8544166666636E0E7504148E17A9466A85441666666D6DEE75041713D0AE767A85441E17A143EE1E75041AE47E11A7EA85441713D0A27E0E750410AD7A3807FA85441A4703D5AD9E750410000006080A854410103000000010000004800000048E17A54FDE75041713D0A5789A85441CDCCCC1CFDE75041713D0A8789A8544152B81EE5FCE75041713D0A8789A85441D7A370ADFCE75041F6285C3F89A854415C8FC275FCE750410AD7A3C088A85441D7A370ADFCE750418FC2F56888A854415C8FC295FCE750411F85EBF187A85441E17A148EFCE75041295C8F6287A8544152B81E15FDE75041AE47E15A87A8544148E17A54FDE750413333332387A85441C3F528BCFDE75041B81E851B87A8544148E17A74FDE75041C3F528BC86A85441D7A370EDFCE750413D0AD7B386A85441E17A149EFCE750415C8FC29585A8544166666646FCE750416666667685A85441F6285CBFFBE75041D7A370CD85A854417B14AE97FBE75041713D0AD784A854419A999999FAE750410000005084A854411F85EB41FAE750417B14AE6784A85441295C8FF2F9E75041F6285CBF84A85441B81E854BF9E75041D7A370ED85A85441C3F528ECF8E75041CDCCCC3C86A85441CDCCCCBCF8E7504152B81EF585A854415C8FC2E5F7E75041D7A370FD85A85441666666C6F7E750415C8FC28585A85441713D0A77F7E75041E17A146E85A85441713D0A37F7E75041CDCCCC4C86A854417B14AEF7F6E7504148E17A6486A85441000000F0F6E750413D0AD7B386A854410AD7A340F6E750413333334387A854419A9999F9F5E75041AE47E14A87A85441A4703D8AF5E75041AE47E17A87A854419A9999E9F5E750419A99993988A85441AE47E10AF5E75041000000F088A85441AE47E14AF5E750410000001089A85441333333C3F4E75041EC51B8BE89A85441AE47E13AF5E75041E17A141E8AA854411F85EBD1F5E750415C8FC2658AA854417B14AEC7F6E75041CDCCCC9C8AA85441000000F0F6E7504148E17A248BA85441713D0A47F7E75041B81E858B8BA8544166666696F7E75041333333938BA854415C8FC215F8E75041CDCCCCDC8AA85441D7A3703DF8E750415C8FC2558AA854413D0AD713F9E750415C8FC2658AA8544133333393F9E750411F85EB618CA854413D0AD703F9E750410AD7A3008DA8544148E17AC4F8E750410AD7A3008DA85441CDCCCCBCF8E7504114AE47B18CA8544148E17AD4F8E75041A4703D2A8CA854415C8FC205F8E7504114AE47B18CA8544185EB5178F6E75041000000908DA854417B14AED7F6E75041CDCCCC8C8FA85441E17A140EF8E75041C3F528EC8FA854410AD7A310FBE750413D0AD7F38FA854410AD7A300FBE7504148E17A848FA854418FC2F5A8FAE75041D7A370FD8EA85441EC51B8FEFBE750418FC2F5188DA854417B14AE87FBE75041333333C38BA85441F6285CAFFBE75041B81E85AB8BA85441D7A370ADFCE7504148E17A048BA85441D7A370ADFCE7504152B81E758AA85441CDCCCC4CFDE7504148E17AD48AA85441C3F5287CFDE75041CDCCCCBC8AA8544148E17A74FDE75041B81E857B8BA85441C3F528ACFDE75041333333E38BA85441AE47E13AFEE75041333333D38BA85441333333F3FDE750413D0AD7738BA8544133333323FEE75041CDCCCC9C8AA85441C3F5287CFDE75041EC51B8DE89A85441C3F5288CFDE75041F6285C5F89A8544148E17A54FDE75041713D0A5789A854410103000000010000000A000000666666D697E75041295C8FA243A85441666666A69DE75041EC51B85E45A854411F85EB019FE75041EC51B86E41A854416666662699E75041EC51B82E3FA85441E17A141E98E75041666666163FA85441E17A148E97E75041666666763FA85441A4703DDA96E750416666662641A854416666668696E75041EC51B82E42A85441E17A14CE96E75041A4703DCA42A85441666666D697E75041295C8FA243A854410103000000010000000F0000001F85EBF190E75041A4703DDA41A85441A4703D8A95E75041295C8FE242A854411F85EBA195E75041EC51B89E41A85441A4703DCA94E75041A4703DEA40A85441E17A141E95E75041295C8FE23FA85441A4703D1A96E750416666660640A85441A4703D4A96E75041295C8F623EA85441A4703DEA95E75041A4703DBA3DA85441A4703D6A85E75041295C8F0238A854411F85EB9184E75041A4703D4A38A854411F85EBA183E750416666664639A854416666660683E75041EC51B8DE3AA854416666667682E75041295C8FB23CA85441666666D682E75041EC51B82E3FA854411F85EBF190E75041A4703DDA41A85441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000A4703D1A96E750416666660640A85441A4703D4A96E75041295C8F623EA85441A4703DEA95E75041A4703DBA3DA85441A4703D6A85E75041295C8F0238A85441BD4A86DF84E750411E5E863038A85441791B9FDE84E7504124F9D23038A854419EA5CFC484E75041726D603938A854415071BBC384E750416BF3BB3938A854411F85EBA183E750416666664639A854416666660683E75041EC51B8DE3AA854416666667682E75041295C8FB23CA85441666666D682E75041EC51B82E3FA854411F85EBF190E75041A4703DDA41A85441A4703D8A95E75041295C8FE242A854411F85EBA195E75041EC51B89E41A85441A4703DCA94E75041A4703DEA40A85441E17A141E95E75041295C8FE23FA85441A4703D1A96E750416666660640A85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>342847 - 422968
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000004000000010300000001000000BF000000A4703D5AD9E750410000006080A85441C3F528BCD9E750419A99999981A85441C3F5288CDDE75041C3F528FC81A85441AE47E14ADEE7504148E17AA481A85441000000D0DFE75041CDCCCCAC81A854415C8FC225E1E7504152B81E6581A854415C8FC255E1E7504148E17AB481A8544133333373E2E750413D0AD73382A854419A999969E3E750418FC2F5C883A854418FC2F5F8E3E750410000006084A854415C8FC2B5E5E750417B14AE7784A8544148E17A94E6E750410AD7A32084A8544133333343E7E7504148E17AB481A854413D0AD703E7E75041E17A14CE80A85441713D0A87E9E75041000000D07FA85441F6285C3FE9E75041295C8F327EA854417B14AE57E9E7504148E17A247DA8544152B81EC5EAE7504148E17A147DA85441AE47E11AECE750419A9999B97EA854411F85EB81ECE750419A9999B97EA854419A9999D9ECE75041A4703D6A7EA85441A4703D5AECE7504148E17A547DA854419A999999ECE750415C8FC2557CA85441A4703D4AECE7504185EB51287BA854418FC2F518EDE750418FC2F5987AA85441713D0A27EEE750410AD7A3E07AA85441D7A3701DEFE75041E17A142E7CA8544133333343F0E750415C8FC2757CA85441F6285C8FF2E75041CDCCCC2C7DA8544166666626F3E75041B81E85CB7DA8544114AE4731F6E750411F85EB917EA854418FC2F538F6E75041333333237EA85441EC51B88EF7E750415C8FC2857CA85441C3F5281CF9E750410AD7A3F07AA8544114AE47A1FAE75041666666167CA85441EC51B8FEFBE750418FC2F5887AA85441E17A146EFCE75041C3F528CC78A8544166666626FCE7504148E17AC478A85441E17A146EFCE75041D7A3702D78A85441B81E852BF9E750413333335379A85441D7A3704DF8E750413333336379A85441EC51B86EF7E75041AE47E1AA79A854417B14AE07F7E750413333336379A85441000000E0F6E75041E17A149E77A85441666666C6F7E750415C8FC2E577A854413D0AD743F9E750416666668677A85441295C8FF2F9E75041000000D076A85441AE47E19AF9E7504185EB516876A85441AE47E18AF9E75041295C8F4275A854413D0AD703F9E75041CDCCCCEC73A8544148E17AA4F8E75041CDCCCCBC73A854415C8FC225F8E7504152B81ED573A85441713D0A37F7E75041295C8F4275A8544114AE4721F6E75041D7A3706D73A8544114AE4721F6E750410AD7A3B071A854418FC2F548F6E75041AE47E17A70A85441E17A140EF8E75041E17A148E6EA85441D7A3703DF8E750410AD7A3406DA85441E17A14FEF7E750419A9999A96CA854417B14AEF7F6E75041AE47E1BA6BA854410AD7A370F6E75041333333B36BA854419A9999C9F5E750415C8FC2456AA85441295C8F22F5E75041713D0A5769A854419A9999E9F5E75041A4703DBA67A85441333333F3F6E750418FC2F5B866A854419A9999C9F5E75041E17A144E65A85441A4703D9AF5E750415C8FC28565A85441295C8F22F5E7504148E17A3466A85441333333E3F4E7504148E17A5466A8544166666606F3E7504152B81ED565A8544166666606F3E750417B14AE8764A85441EC51B8CEF2E750410000005064A854411F85EB31F1E75041E17A147E65A8544152B81E45EFE75041B81E850B67A85441CDCCCC6CEFE750419A99991968A85441295C8F12ECE750417B14AE0769A854413D0AD773EBE750418FC2F53868A85441D7A3705DEAE750418FC2F56868A854415C8FC255EAE750413D0AD7B366A85441000000F0E8E750413D0AD78366A85441295C8F62E7E7504148E17A7466A85441AE47E13AE7E750415C8FC2C565A8544148E17A94E6E75041D7A370DD65A85441E17A145EE5E75041D7A370AD65A85441713D0A07E5E750416666666665A8544185EB5118E4E75041713D0A0765A854411F85EB41E3E750410000003064A85441B81E856BE2E750411F85EB4163A85441B81E856BE2E75041B81E852B62A85441CDCCCC9CE1E750417B14AED75FA854415C8FC235E1E7504185EB51A85FA85441666666A6E0E75041A4703D7A5EA85441EC51B86EE0E75041D7A370BD5CA85441666666D6E0E750418FC2F5885AA8544148E17AF4E1E75041AE47E15A59A8544133333373E2E7504152B81E6558A85441B81E856BE2E75041713D0A2757A85441295C8FD2E2E750417B14AEB756A85441295C8F02E3E75041AE47E1EA54A854418FC2F5D8E3E750413D0AD78354A8544114AE47E1E3E750413D0AD73354A85441E17A148EE5E75041E17A14FE52A8544166666686E5E7504114AE475151A85441CDCCCC5CE6E75041A4703DCA50A8544133333313E7E75041295C8FB250A85441A4703DCAE7E750410AD7A37051A854419A9999F9E7E75041EC51B89E52A854418FC2F598E8E75041E17A141E53A854417B14AE47E9E75041D7A3704D53A85441EC51B8BEE9E750417B14AE3752A85441EC51B8BEE9E750411F85EB0151A854417B14AE17E9E7504152B81EF54EA8544100000030E9E750415C8FC2A54EA85441000000F0E8E75041EC51B81E4EA85441000000F0E8E750410AD7A3104DA854410AD7A3A0E8E750410AD7A3E04CA8544114AE4771E8E750411F85EB614CA85441AE47E16AE7E750417B14AE874DA8544133333343E7E7504152B81E054FA854413D0AD7D3E6E7504148E17A844FA8544148E17AA4E6E75041C3F5287C4FA8544148E17A84E6E75041CDCCCC3C4FA854415C8FC2D5E5E7504152B81E154FA85441713D0A17E5E750410AD7A3304DA85441CDCCCC3CE6E750418FC2F56848A8544152B81E35E6E75041B81E85FB46A8544152B81E05E6E7504148E17A5446A8544152B81EF5E5E75041E17A142E45A85441D7A370CDE5E75041F6285C7F44A85441AE47E13AE7E750411F85EB0143A854419A9999F9E7E75041295C8FF242A854411F85EBF1E7E750411F85EB2143A854418FC2F558E8E750418FC2F5D843A8544100000030E9E750410AD7A3E043A85441EC51B89EE9E750418FC2F58843A85441E17A14FEE9E75041CDCCCCAC41A854417B14AE17E9E75041713D0A2740A854418FC2F5A8E8E75041F6285C1F40A854411F85EBF1E7E750410AD7A3503FA85441A4703D9AE7E75041000000803FA85441D7A370EDE5E7504185EB51A83FA85441713D0AE7E4E75041EC51B87E40A8544148E17A74E6E7504148E17AD441A8544166666686E5E75041295C8FA242A854417B14AEA7E4E75041A4703D0A43A854418FC2F5D8E3E750411F85EB2143A8544148E17AE4E1E75041C3F528EC41A8544185EB51C8DFE75041A4703DFA42A8544148E17A24DDE750413333337342A85441A4703DBADEE750416666666640A85441AE47E15ADEE750411F85EBA13EA85441C3F5288CDDE7504114AE47E13EA854417B14AE67DBE75041295C8F423EA85441C3F5280CD9E750411F85EB813EA85441B81E853BD9E7504114AE47F13EA85441A4703D2ADAE7504185EB51583FA854415C8FC2A5DCE750410AD7A3503FA85441CDCCCCFCDCE7504148E17AD441A85441EC51B8DEDBE750419A99993943A8544100000020DBE750418FC2F5C843A854411F85EB41DAE7504185EB51F843A8544133333393D9E75041F6285C8F44A8544133333353D9E750416666662645A8544166666636DCE750417B14AE5744A85441C3F5286CDDE750411F85EBB147A854413D0AD793DDE750417B14AED748A85441C3F5285CDDE75041A4703D1A4CA85441B81E85CBDDE7504185EB51184DA854413D0AD7B3DDE75041713D0A174EA85441A4703D6ADEE75041C3F528BC4FA85441295C8F42DEE75041295C8FB250A854411F85EBC1DEE75041C3F5283C54A85441A4703DBADEE75041295C8F3255A854411F85EBF1DEE750417B14AE9756A854410AD7A360DFE75041295C8F8259A854410AD7A380DFE7504114AE47715AA854418FC2F548DFE75041666666065CA8544114AE4701DFE75041EC51B80E5CA854410AD7A370DFE750417B14AEF75FA854417B14AE27E0E75041295C8F0263A85441F6285C1FE0E750410AD7A31064A85441F6285C5FE0E750417B14AE9764A85441EC51B87EE0E75041EC51B8FE64A85441E17A140EE1E75041E17A147E65A85441E17A140EE1E75041D7A370DD65A85441F6285C2FE0E7504152B81E0566A8544166666636E0E7504148E17A9466A85441666666D6DEE75041713D0AE767A85441E17A143EE1E75041AE47E11A7EA85441713D0A27E0E750410AD7A3807FA85441A4703D5AD9E750410000006080A854410103000000010000004800000048E17A54FDE75041713D0A5789A85441CDCCCC1CFDE75041713D0A8789A8544152B81EE5FCE75041713D0A8789A85441D7A370ADFCE75041F6285C3F89A854415C8FC275FCE750410AD7A3C088A85441D7A370ADFCE750418FC2F56888A854415C8FC295FCE750411F85EBF187A85441E17A148EFCE75041295C8F6287A8544152B81E15FDE75041AE47E15A87A8544148E17A54FDE750413333332387A85441C3F528BCFDE75041B81E851B87A8544148E17A74FDE75041C3F528BC86A85441D7A370EDFCE750413D0AD7B386A85441E17A149EFCE750415C8FC29585A8544166666646FCE750416666667685A85441F6285CBFFBE75041D7A370CD85A854417B14AE97FBE75041713D0AD784A854419A999999FAE750410000005084A854411F85EB41FAE750417B14AE6784A85441295C8FF2F9E75041F6285CBF84A85441B81E854BF9E75041D7A370ED85A85441C3F528ECF8E75041CDCCCC3C86A85441CDCCCCBCF8E7504152B81EF585A854415C8FC2E5F7E75041D7A370FD85A85441666666C6F7E750415C8FC28585A85441713D0A77F7E75041E17A146E85A85441713D0A37F7E75041CDCCCC4C86A854417B14AEF7F6E7504148E17A6486A85441000000F0F6E750413D0AD7B386A854410AD7A340F6E750413333334387A854419A9999F9F5E75041AE47E14A87A85441A4703D8AF5E75041AE47E17A87A854419A9999E9F5E750419A99993988A85441AE47E10AF5E75041000000F088A85441AE47E14AF5E750410000001089A85441333333C3F4E75041EC51B8BE89A85441AE47E13AF5E75041E17A141E8AA854411F85EBD1F5E750415C8FC2658AA854417B14AEC7F6E75041CDCCCC9C8AA85441000000F0F6E7504148E17A248BA85441713D0A47F7E75041B81E858B8BA8544166666696F7E75041333333938BA854415C8FC215F8E75041CDCCCCDC8AA85441D7A3703DF8E750415C8FC2558AA854413D0AD713F9E750415C8FC2658AA8544133333393F9E750411F85EB618CA854413D0AD703F9E750410AD7A3008DA8544148E17AC4F8E750410AD7A3008DA85441CDCCCCBCF8E7504114AE47B18CA8544148E17AD4F8E75041A4703D2A8CA854415C8FC205F8E7504114AE47B18CA8544185EB5178F6E75041000000908DA854417B14AED7F6E75041CDCCCC8C8FA85441E17A140EF8E75041C3F528EC8FA854410AD7A310FBE750413D0AD7F38FA854410AD7A300FBE7504148E17A848FA854418FC2F5A8FAE75041D7A370FD8EA85441EC51B8FEFBE750418FC2F5188DA854417B14AE87FBE75041333333C38BA85441F6285CAFFBE75041B81E85AB8BA85441D7A370ADFCE7504148E17A048BA85441D7A370ADFCE7504152B81E758AA85441CDCCCC4CFDE7504148E17AD48AA85441C3F5287CFDE75041CDCCCCBC8AA8544148E17A74FDE75041B81E857B8BA85441C3F528ACFDE75041333333E38BA85441AE47E13AFEE75041333333D38BA85441333333F3FDE750413D0AD7738BA8544133333323FEE75041CDCCCC9C8AA85441C3F5287CFDE75041EC51B8DE89A85441C3F5288CFDE75041F6285C5F89A8544148E17A54FDE75041713D0A5789A854410103000000010000000A000000666666D697E75041295C8FA243A85441666666A69DE75041EC51B85E45A854411F85EB019FE75041EC51B86E41A854416666662699E75041EC51B82E3FA85441E17A141E98E75041666666163FA85441E17A148E97E75041666666763FA85441A4703DDA96E750416666662641A854416666668696E75041EC51B82E42A85441E17A14CE96E75041A4703DCA42A85441666666D697E75041295C8FA243A854410103000000010000000F0000001F85EBF190E75041A4703DDA41A85441A4703D8A95E75041295C8FE242A854411F85EBA195E75041EC51B89E41A85441A4703DCA94E75041A4703DEA40A85441E17A141E95E75041295C8FE23FA85441A4703D1A96E750416666660640A85441A4703D4A96E75041295C8F623EA85441A4703DEA95E75041A4703DBA3DA85441A4703D6A85E75041295C8F0238A854411F85EB9184E75041A4703D4A38A854411F85EBA183E750416666664639A854416666660683E75041EC51B8DE3AA854416666667682E75041295C8FB23CA85441666666D682E75041EC51B82E3FA854411F85EBF190E75041A4703DDA41A85441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000A4703D1A96E750416666660640A85441A4703D4A96E75041295C8F623EA85441A4703DEA95E75041A4703DBA3DA85441A4703D6A85E75041295C8F0238A85441BD4A86DF84E750411E5E863038A85441791B9FDE84E7504124F9D23038A854419EA5CFC484E75041726D603938A854415071BBC384E750416BF3BB3938A854411F85EBA183E750416666664639A854416666660683E75041EC51B8DE3AA854416666667682E75041295C8FB23CA85441666666D682E75041EC51B82E3FA854411F85EBF190E75041A4703DDA41A85441A4703D8A95E75041295C8FE242A854411F85EBA195E75041EC51B89E41A85441A4703DCA94E75041A4703DEA40A85441E17A141E95E75041295C8FE23FA85441A4703D1A96E750416666660640A85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>342860 - 407645
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000005000000010300000003000000BE000000AE47E1FA18E950417B14AE975FA65441AE47E13A18E95041B81E85CB5EA65441EC51B80E17E95041B81E859B5EA65441EC51B8EE15E95041F6285C4F5CA65441295C8F5215E950417B14AE075CA65441EC51B8CE14E950417B14AE175BA65441295C8FA213E95041B81E852B5CA65441295C8FE212E95041333333135CA65441295C8FF211E95041333333F35AA65441713D0AC710E95041B81E85AB5AA65441713D0AA70FE950417B14AE9759A65441AE47E1FA0FE95041F6285CEF58A65441AE47E1FA0FE950417B14AEF756A65441EC51B89E0EE95041333333B355A65441AE47E1EA0DE95041333333E355A65441295C8FB20CE950417B14AE7755A65441EC51B88E0CE95041333333C354A65441713D0A870BE950413333339354A65441EC51B87E0AE95041333333F354A65441EC51B8DE0AE950417B14AE5754A65441EC51B87E0AE95041B81E85FB52A65441AE47E15A0AE95041B81E851B51A65441713D0A570BE95041B81E85EB50A65441AE47E13A0CE950413333331350A65441AE47E1BA0DE950417B14AED74FA65441AE47E11A0EE95041333333834FA65441EC51B8DE0DE95041333333F34EA65441295C8FF20BE95041B81E852B4DA65441AE47E14A0BE95041B81E859B4CA65441EC51B8AE0AE95041333333934BA65441EC51B8AE0AE95041F6285C4F4AA65441295C8F020BE950417B14AE074AA65441AE47E1AA0BE95041F6285C1F4AA65441AE47E1AA0BE950417B14AE2748A65441EC51B80E0BE95041F6285C1F47A65441295C8F020BE950413333332346A65441713D0A670AE950417B14AE8745A65441AE47E1CA09E95041B81E85AB45A65441EC51B8FE08E950413333330345A65441EC51B8CE08E95041B81E858B44A65441713D0AB708E950413333338343A65441295C8FB209E950417B14AE1743A65441AE47E1CA09E950417B14AE2742A65441AE47E1AA08E95041F6285CEF40A65441713D0AE708E950417B14AEA740A65441713D0AE708E950417B14AE573FA65441713D0AF707E95041F6285C3F3FA65441295C8F4207E95041F6285CDF3EA65441295C8F4207E95041B81E85FB3DA65441713D0A9707E95041B81E853B3DA65441AE47E14A08E95041333333533DA65441295C8F8209E950417B14AEB73CA65441AE47E16A09E950417B14AE073BA65441EC51B8FE08E95041B81E85DB39A65441AE47E11A0BE95041F6285C1F38A65441EC51B83E0BE950413D0AD78334A65441295C8FF20BE95041B81E85DB33A65441EC51B8BE0CE950413D0AD79333A65441AE47E12A0DE950417B14AEE733A65441295C8F620EE950413D0AD70333A65441EC51B81E0DE95041F6285C1F32A65441AE47E12A0DE95041333333F330A65441713D0A970DE95041F6285CAF2FA65441EC51B81E10E95041F6285CAF2CA65441713D0AD70FE950417B14AE472BA65441713D0A2711E950417B14AEC729A654413333335312E950417B14AE6729A654413333338312E95041333333E328A65441EC51B84E16E95041F6285C1F26A654413333330317E95041F6285C7F26A65441AE47E1DA17E950417B14AE0726A65441EC51B8EE18E95041B81E85FB25A65441713D0A6719E95041B81E855B26A65441AE47E1AA1AE95041F6285C1F26A65441EC51B81E1CE95041F6285C4F26A65441333333431CE950413333330327A65441EC51B8AE1CE950413333339327A65441AE47E1BA1CE950417B14AE1728A65441713D0A371CE95041B81E859B28A65441713D0AF71CE950417B14AE6729A65441713D0A871DE950417B14AE6729A65441EC51B82E1EE95041B81E85DB27A65441AE47E16A1EE95041B81E856B25A65441AE47E1DA1DE95041F6285C8F25A65441EC51B8DE1CE950417B14AE1725A65441713D0A371CE95041B81E85EB23A65441713D0AA71BE950417B14AE6723A65441333333B31BE95041333333F321A65441EC51B85E1BE950417B14AE5721A65441713D0A771EE95041333333B31FA65441713D0A071FE95041B81E851B21A65441333333B31EE95041B81E85DB21A65441EC51B8EE1EE95041F6285C5F22A65441333333E31EE950417B14AE3723A65441AE47E1FA1EE95041B81E851B24A65441AE47E19A1EE95041333333F324A65441AE47E14A20E950413333338325A65441AE47E1DA20E95041333333F324A65441AE47E1CA21E950417B14AE0723A65441EC51B8BE21E95041B81E850B22A65441713D0A7721E95041B81E85AB21A65441333333F320E950417B14AE1722A65441EC51B83E20E950417B14AEE721A65441713D0AC71FE950417B14AE3720A654413333339320E950417B14AE3720A654413333331322E95041333333F31EA65441333333D322E95041F6285C2F1FA65441333333C323E950417B14AE171FA65441EC51B87E25E95041B81E85FB1CA654413333330326E95041333333C31BA65441713D0AF725E95041F6285C0F1BA65441713D0A7727E95041B81E858B1AA65441AE47E1BA28E95041333333C318A65441AE47E1FA27E950417B14AE8718A65441AE47E19A27E950417B14AE2718A65441AE47E10A27E95041F6285C3F18A65441713D0A8726E95041F6285C0F18A65441EC51B8AE25E950417B14AE2718A65441AE47E12A25E95041F6285CDF17A654413333331325E95041F6285C7F17A654413333335324E95041B81E85FB16A65441713D0AE723E950413333332316A65441AE47E14A23E950413333339315A65441713D0A1721E95041B81E85DB15A65441333333A31FE950417B14AE6717A65441EC51B82E1EE95041F6285CDF17A65441713D0AC71CE95041B81E853B19A65441333333C31AE950417B14AE371AA65441EC51B81E19E95041F6285CCF1BA65441EC51B86E17E950417B14AE771CA65441AE47E12A16E95041F6285C7F1DA65441EC51B86E14E95041F6285C3F1EA65441333333D313E95041B81E853B1FA65441AE47E1DA11E95041F6285C1F20A65441EC51B84E10E95041B81E85DB21A65441EC51B82E0FE95041B81E853B22A65441333333630EE950417B14AE0723A65441333333D30DE95041B81E851B24A65441EC51B8BE0CE95041F6285C9F24A65441AE47E13A0CE95041F6285C9F24A65441713D0A170CE95041B81E858B26A65441EC51B86E0BE950417B14AE5727A65441713D0A970AE950417B14AE5727A65441713D0A4709E95041B81E859B28A65441713D0AB708E950417B14AEA728A654413333336308E950417B14AEE727A65441AE47E13A09E950417B14AE9726A65441713D0AE708E95041B81E853B25A65441713D0AF707E950417B14AE1725A654413333335306E950413333337326A65441AE47E17A05E950417B14AEC726A65441713D0A0704E950417B14AE1728A65441EC51B8CE02E950417B14AE7728A65441713D0AD700E950417B14AEC729A65441AE47E11A00E95041E17A141E2BA65441D7A3701DFDE850417B14AE8732A65441F6285C7FFCE850411F85EB5138A65441713D0A87FCE850413D0AD73339A65441EC51B82EFDE850413D0AD73339A65441EC51B85EFDE85041F6285C9F39A6544133333323FDE850413D0AD7533AA6544133333393FCE850413D0AD7533AA6544185EB51F8FDE85041AE47E1DA44A65441EC51B80EFFE850413D0AD7C348A65441713D0A87FFE85041B81E851B48A65441EC51B85E00E950413D0AD73348A65441EC51B81E01E950417B14AEB748A65441EC51B80E02E950413D0AD7C34BA65441333333D301E950417B14AE174CA65441AE47E12A01E95041F6285C2F4CA654413333332300E95041B81E85FB4CA65441713D0AA700E950413D0AD7D34DA65441AE47E1CA03E95041B81E858B50A65441EC51B85E06E950413D0AD72352A65441EC51B83E08E950417B14AE2754A65441EC51B8FE08E95041B81E850B55A65441333333B309E950417B14AE7755A65441333333E309E95041F6285C1F56A65441333333C30BE950413D0AD73357A65441EC51B88E0CE950413D0AD78358A65441333333030EE950413D0AD7635AA65441713D0A170FE95041F6285C9F5AA65441AE47E19A0FE95041F6285C8F5BA65441333333A310E950417B14AE075CA65441713D0A9710E95041B81E85EB5CA65441713D0A2714E95041F6285CDF5FA65441AE47E15A19E950417B14AE1764A65441AE47E13A1BE950417B14AE7761A65441713D0A9719E95041333333A35FA65441AE47E1FA18E950417B14AE975FA6544109000000295C8FA204E950417B14AEC74AA65441AE47E11A05E95041333333E349A65441AE47E17A05E95041B81E85AB48A65441295C8FC205E950413333339348A65441713D0A3707E95041F6285C4F4AA65441295C8FB206E950417B14AE274BA65441EC51B8FE05E950417B14AE274BA65441713D0AB705E950417B14AEC74AA65441295C8FA204E950417B14AEC74AA6544110000000AE47E1BA01E950413333332346A65441295C8FB200E950413333335346A65441295C8FC2FFE850413333338343A65441295C8F32FFE850413333339342A65441AE47E10A00E950417B14AE3741A65441295C8F1201E95041F6285CEF40A65441295C8F7201E95041B81E852B41A65441713D0A5702E950413333334341A65441EC51B8FE02E95041F6285CEF40A65441713D0A0704E95041B81E854B42A65441713D0AD703E95041F6285CCF42A65441295C8F4204E95041F6285C7F44A65441713D0AA703E950413333336345A65441AE47E10A03E95041F6285CFF45A65441295C8FC202E95041B81E856B46A65441AE47E1BA01E950413333332346A654410103000000010000000F0000007B14AE770FE95041E17A14EED5A65441295C8FD210E9504152B81E65D6A65441EC51B83E11E9504100000070D6A65441295C8FD210E95041333333E3D5A654418FC2F52811E9504148E17AD4D4A65441E17A146E12E95041C3F5281CD4A65441295C8F4212E95041F6285CAFD3A65441B81E857B10E9504133333343D3A654410000003010E95041713D0AF7D2A654418FC2F5D80FE95041D7A3702DD3A65441AE47E1EA0EE95041666666B6D2A65441EC51B89E0EE95041E17A144ED3A6544148E17AB40EE95041713D0A47D4A6544185EB51680EE9504148E17A24D6A654417B14AE770FE95041E17A14EED5A6544101030000000100000022000000295C8F3216E95041F6285C3FDAA65441EC51B87E16E95041295C8FB2D9A65441EC51B87E16E95041A4703DFAD8A654411F85EB6117E9504185EB5178D8A654417B14AE5717E9504166666646D9A654411F85EB4117E95041D7A370BDD9A654411F85EB6117E950413D0AD7F3D9A654413D0AD7C317E950411F85EB91D9A65441333333F318E950418FC2F5E8D9A6544185EB51E818E9504166666646D9A65441F6285CFF1BE9504152B81EB5D7A654415C8FC2351CE9504133333333D7A65441333333E31CE950411F85EBF1D6A65441AE47E17A1DE95041EC51B87ED7A65441C3F528DC1DE950411F85EBA1D5A65441295C8FC21CE95041B81E859BD6A65441666666561CE950411F85EBD1D6A65441EC51B8BE1BE95041EC51B80ED6A65441A4703DBA1AE95041EC51B82ED6A654413D0AD7631AE950411F85EBF1D6A6544152B81E7519E950415C8FC285D6A654410AD7A35018E95041AE47E17AD6A654417B14AE5717E950411F85EBF1D6A654416666661617E9504148E17A94D7A65441295C8F3216E950419A999989D7A65441EC51B82E15E95041CDCCCC4CD8A654416666662613E95041C3F5280CD8A65441B81E851B13E95041EC51B8AED8A65441D7A3709D13E9504114AE4771D9A65441A4703D2A14E95041B81E853BD9A6544152B81E1514E950413D0AD7F3D9A65441295C8FC214E95041295C8FB2D9A65441C3F528DC15E95041295C8FB2D9A65441295C8F3216E95041F6285C3FDAA6544101030000000A00000003020000295C8F024AE95041F6285C7FB3A65441AE47E12A49E95041F6285C4FB3A65441295C8FA249E95041B81E857BB1A65441295C8FB24BE9504133333323B2A65441AE47E1FA4EE95041B81E85FBAFA65441EC51B8AE4FE950417B14AE67ADA65441295C8FD24FE95041B81E855BAAA65441713D0A5750E950417B14AE37AAA65441295C8FC250E95041F6285C3FA8A65441AE47E17A50E950417B14AE37A7A65441295C8FD24FE95041B81E852BA7A65441AE47E1FA4EE95041F6285C0FA8A65441295C8F624DE95041F6285C3FA8A65441EC51B86E4DE95041F6285C4FA7A65441EC51B8FE4DE95041B81E85CBA6A65441295C8FC24DE95041B81E853BA6A65441EC51B84E4CE95041F6285CFFA5A65441713D0A474BE950417B14AEC7A4A65441AE47E10A4BE9504133333313A4A65441EC51B83E4AE95041B81E858BA4A65441AE47E18A49E95041F6285CAFA4A65441713D0AA748E950417B14AE07A4A65441295C8FF247E95041F6285CFFA2A65441713D0AD748E95041B81E85DBA2A65441295C8FE248E95041B81E85FBA0A65441AE47E10A48E950417B14AEB79FA65441713D0AE747E95041333333439EA65441EC51B8AE46E950417B14AE779DA65441295C8FA246E95041F6285C9F9CA65441713D0A3746E95041F6285CDF9BA65441713D0A3746E95041B81E856B9AA65441295C8FB245E95041B81E859B9AA65441EC51B80E44E950413333336399A65441295C8F9244E95041F6285CDF98A65441AE47E11A44E95041B81E855B98A65441EC51B8DE43E950417B14AEA797A65441295C8FB242E95041F6285C8F97A65441AE47E12A43E950417B14AEE796A65441713D0AE741E950413333339396A65441AE47E1EA40E95041B81E85FB94A65441295C8F7240E95041333333B394A65441EC51B81E40E95041B81E853B94A65441713D0A7742E95041F6285C1F92A65441AE47E16A42E950413333335391A65441EC51B82E45E95041F6285C6F90A65441EC51B85E45E95041B81E85BB8FA65441713D0A2747E95041F6285C1F8FA65441AE47E10A48E95041333333A38FA65441EC51B85E48E950417B14AE5790A65441295C8F1249E95041B81E857B90A65441295C8F024AE950413333330390A65441AE47E1CA48E95041B81E853B8EA65441713D0AD748E95041F6285C3F8DA65441EC51B8FE47E950417B14AEC78CA65441EC51B86E47E95041F6285CEF8BA65441713D0A2747E95041F6285C6F8AA65441295C8FA246E950417B14AE278AA65441EC51B87E46E950417B14AEC789A65441EC51B88E45E95041333333A389A65441295C8F2245E95041F6285C0F8AA65441AE47E17A44E95041B81E856B8BA65441AE47E1BA43E95041B81E859B8BA65441295C8F9241E95041F6285CDF8CA65441AE47E12A40E95041F6285CAF8CA65441AE47E1CA3FE95041B81E852B8CA65441AE47E1EA3DE95041F6285C7F8CA65441295C8F223CE95041333333438CA65441295C8FC23BE950417B14AEB78AA65441AE47E1EA3AE950417B14AE9789A65441713D0AF73AE95041B81E850B88A65441EC51B8AE3AE950417B14AE8787A65441EC51B8EE39E950413333333387A65441295C8FE239E95041F6285CAF86A65441EC51B88E39E95041B81E858B86A65441713D0A4739E95041B81E853B85A65441295C8F8239E95041B81E85DB84A65441EC51B8FE38E95041B81E854B84A65441713D0AB738E950417B14AE3783A65441295C8FA237E950413333330381A65441EC51B87E37E950417B14AEA77FA65441AE47E15A37E95041333333337EA65441295C8FB236E95041333333837CA65441713D0AF737E950417B14AE977AA65441295C8F6238E950417B14AE1779A65441AE47E19A39E950417B14AE5778A65441713D0A673AE950417B14AE5778A65441713D0AC73AE95041F6285C0F78A65441295C8FA23AE95041B81E855B77A65441295C8FD23AE95041F6285C2F76A65441AE47E1DA3BE950417B14AEB775A65441713D0AA73CE950417B14AE1773A65441713D0A973DE950417B14AEC771A65441713D0AE73EE950417B14AE6771A65441EC51B88E3FE95041F6285CAF71A65441AE47E16A3FE95041B81E85CB70A65441EC51B8AE3DE950417B14AED770A65441295C8F123DE95041F6285C5F70A65441EC51B85E3CE95041F6285C8F70A65441EC51B86E3BE950413333335370A65441295C8F423AE95041F6285C8F70A65441EC51B85E39E950413333335370A65441AE47E17A38E95041F6285C5F70A65441EC51B84E37E95041333333F36FA65441AE47E1EA34E95041333333F36FA65441EC51B86E35E95041333333536DA65441295C8FD234E95041333333536DA65441EC51B87E34E95041333333C36CA65441AE47E1FA33E95041333333236DA65441713D0A3734E95041F6285CBF6DA65441713D0AE732E950417B14AE676EA65441AE47E18A31E95041333333836DA65441295C8FE230E950417B14AEA76DA65441295C8F2230E95041F6285CFF6CA65441AE47E15A31E95041F6285C3F6CA65441713D0A6731E950417B14AE076BA65441713D0A1730E95041F6285C8F6AA65441EC51B8AE2EE95041333333E36AA65441295C8FE22DE95041F6285CAF6BA65441295C8F622CE950417B14AE376BA65441295C8F022CE950413333336369A65441713D0AB729E95041F6285C7F68A65441AE47E1BA28E95041333333A368A65441AE47E18A25E950417B14AEB766A65441AE47E18A25E95041B81E85BB65A65441713D0A7724E95041B81E853B64A65441713D0A8723E950417B14AEB763A65441295C8FA222E95041B81E855B65A65441713D0A1721E95041F6285C1F65A65441EC51B84E1FE95041B81E85AB63A65441EC51B8EE1EE95041333333C363A65441713D0AA71EE950413333335364A65441AE47E12A1FE95041B81E85FB64A65441713D0A671FE95041F6285C0F66A65441AE47E10A1EE950417B14AE8766A65441AE47E16A1EE95041F6285C5F67A65441713D0A671FE95041B81E855B68A65441AE47E12A22E950413333333369A65441EC51B85E24E95041333333B36AA65441EC51B8AE25E95041333333A36BA65441AE47E1AA26E95041B81E85EB6BA65441295C8F5227E95041F6285C4F6BA65441EC51B84E28E95041333333736BA65441295C8F9229E950417B14AE176DA65441AE47E16A2AE95041B81E859B6DA65441713D0A872FE950413333332370A65441295C8F1231E95041333333A371A65441713D0A9731E950417B14AEB772A65441AE47E13A33E95041F6285C1F74A65441713D0AF731E95041B81E85DB78A65441EC51B87E31E950417B14AE177CA65441AE47E12A31E950417B14AEA77CA65441EC51B84E31E950417B14AEF77DA65441EC51B85E30E95041333333037EA65441295C8FC22FE95041333333937EA65441EC51B87E2EE950417B14AE0780A65441713D0A572FE95041B81E85BB80A65441713D0A872FE95041B81E852B80A65441EC51B8EE30E95041333333237FA65441713D0A6731E95041333333937EA65441295C8F0232E950417B14AE777FA65441713D0AE732E95041333333E37FA65441295C8F8233E95041F6285C4F80A65441EC51B83E32E95041B81E85DB81A65441AE47E14A32E95041333333B382A65441AE47E11A32E95041F6285C4F83A65441295C8F9232E95041333333F384A65441713D0A7733E95041333333C384A65441EC51B8EE33E95041F6285C5F85A65441295C8F8233E95041333333E385A65441AE47E1CA33E95041F6285CAF86A65441AE47E1CA33E950413333339387A65441713D0A6734E950417B14AE1788A65441EC51B89E35E95041B81E85FB88A65441EC51B8EE36E95041B81E85FB88A65441713D0A7736E95041333333638AA65441AE47E1BA34E95041F6285CEF8BA65441AE47E1FA33E95041F6285CFF8DA65441713D0AE735E95041333333B391A65441295C8F8236E95041333333B391A65441EC51B8EE36E95041B81E85AB93A65441EC51B83E38E950417B14AE1794A65441AE47E11A3BE950417B14AEC798A65441EC51B80E3BE950417B14AE479AA65441713D0A673AE95041333333139BA65441AE47E1EA3AE950417B14AE679BA65441295C8F923BE95041F6285CCF9CA65441EC51B8FE3BE950417B14AEE79CA65441EC51B8EE3CE95041333333B39DA65441713D0A073DE950417B14AE379EA65441AE47E16A3CE950417B14AE579FA65441AE47E13A3CE950417B14AEF7A1A65441713D0AA73CE95041B81E854BA2A65441EC51B8EE3CE950417B14AE17A3A65441713D0A673DE950417B14AE77A3A65441EC51B87E3DE950417B14AE07A4A65441295C8F623EE95041B81E85EBA4A65441AE47E16A3FE95041F6285CDFA4A65441295C8F823FE95041F6285C6FA5A65441AE47E18A40E95041F6285C6FA5A65441EC51B89E41E950417B14AE47A6A65441EC51B82E42E9504133333353A6A65441EC51B8BE42E950417B14AE07A7A65441EC51B8BE42E95041F6285CCFA8A65441AE47E15A43E9504133333343AAA65441AE47E12A43E95041333333D3AAA65441295C8F4243E95041F6285C2FACA65441AE47E10A42E9504133333303AEA65441295C8F6241E950417B14AE27AEA65441AE47E14A41E95041F6285CDFADA65441295C8F823FE95041B81E85FBACA65441EC51B85E3FE95041B81E856BACA65441AE47E1DA3EE9504133333363ABA65441EC51B84E3DE95041333333B3ACA65441EC51B8BE3CE950417B14AE97ADA65441713D0AB73BE950417B14AEE7ABA65441EC51B82E39E950417B14AEB7ABA65441EC51B8FE38E95041F6285C6FABA65441295C8FD237E95041F6285CCFABA65441295C8FA237E95041B81E85BBAAA65441295C8FB236E950417B14AE37AAA65441713D0A7736E95041333333B3A9A65441AE47E17A35E950417B14AE37AAA65441295C8F0235E95041F6285CEFA9A65441713D0AC734E9504133333343AAA65441EC51B8AE34E9504133333333ABA65441713D0AD733E95041B81E854BABA65441713D0A4733E950417B14AEF7AAA65441713D0A5732E95041F6285C9FABA65441713D0A8732E950417B14AED7ACA65441EC51B82E33E95041F6285CAFADA65441713D0A1733E95041B81E850BAFA65441295C8F5233E9504133333313B0A65441AE47E17A35E95041F6285CAFB0A65441295C8F2236E9504133333383B2A65441295C8F1237E95041B81E852BB3A65441AE47E15A37E950417B14AE57B4A65441295C8FD237E95041F6285C6FB4A65441AE47E1DA38E95041B81E851BB4A65441EC51B82E39E95041333333D3B3A65441713D0A673AE95041B81E851BB4A65441713D0AF73AE95041F6285C0FB4A65441713D0A573BE95041B81E85ABB4A65441295C8FF23BE95041F6285C2FB5A65441AE47E19A3CE950417B14AE07B6A65441295C8F223FE950417B14AEB7B7A65441295C8F523FE95041B81E857BB7A65441713D0AD73FE950417B14AEE7B7A65441713D0AD73FE9504133333393BAA65441EC51B86E3EE95041B81E859BBBA65441EC51B86E3EE9504133333313BCA65441713D0AE73EE950417B14AE07BCA65441EC51B85E3FE95041B81E85EBBCA65441295C8F4240E950417B14AEB7BDA65441295C8FB23FE950417B14AE37BFA65441EC51B84E3DE950417B14AE27C0A65441295C8FD23AE950417B14AE67C2A65441EC51B88E39E95041B81E852BC2A65441AE47E1CA36E95041F6285C8FC1A65441EC51B88E36E95041F6285C4FC2A65441295C8FE236E95041333333D3C2A65441295C8FE236E95041F6285C6FC3A65441AE47E13A36E950417B14AEB7C3A65441713D0A2735E950417B14AED7C4A65441AE47E12A34E950417B14AE07C5A65441AE47E1FA33E950417B14AE97C5A65441AE47E10A33E950417B14AE57C6A65441EC51B89E32E950417B14AE67C5A65441AE47E11A32E950417B14AE37C5A65441EC51B8AE31E95041B81E85CBC4A65441295C8F5230E95041333333B3C4A65441AE47E1DA2FE950417B14AE97C5A65441AE47E1DA2FE950417B14AEF7C5A65441AE47E14A2FE95041333333C3C6A65441AE47E1BA2EE95041F6285CCFC6A65441EC51B81E2EE9504133333353C7A65441AE47E19A2DE9504133333353C7A65441295C8F122BE950417B14AEC7C8A65441AE47E19A2AE950417B14AE97C8A65441713D0A472AE95041F6285C0FC9A65441713D0A6728E9504133333373C8A65441AE47E17A26E95041333333A3C8A65441AE47E15A25E950417B14AE47C7A65441AE47E18A25E95041333333F3C6A65441AE47E1FA24E95041B81E856BC4A65441295C8FF223E9504133333393C3A65441713D0A2723E95041B81E85DBC3A65441713D0A9722E950417B14AEA7C4A65441AE47E1BA22E95041B81E858BC5A65441EC51B8FE20E95041B81E850BC7A65441AE47E1DA20E950417B14AEA7C7A65441713D0A471EE95041B81E85CBC7A65441713D0A271DE9504133333353C7A65441295C8F321DE95041B81E85ABC6A65441EC51B82E1BE95041B81E851BC6A65441295C8F321AE950417B14AE37C5A65441EC51B8FE17E95041F6285C5FC4A65441EC51B80E17E95041F6285C5FC4A65441713D0AA715E95041F6285CCFC3A65441AE47E19A15E95041F6285C0FC3A65441EC51B89E14E950417B14AEB7C3A65441295C8F3214E9504133333393C3A65441AE47E13A12E950417B14AE87C6A65441295C8F7213E95041F6285C9FC6A65441713D0A5714E95041F6285CFFC6A65441713D0AB714E95041B81E85ABC6A65441713D0A7715E95041B81E850BC7A65441713D0A7715E95041B81E85CBC7A65441EC51B88E15E95041F6285CAFC8A65441EC51B8CE14E95041F6285C9FC9A65441EC51B86E14E950417B14AE87C9A65441EC51B8DE13E95041B81E853BCAA65441295C8FD213E950417B14AE77CAA65441AE47E14A14E95041F6285C8FCAA65441295C8FC214E95041F6285C1FCBA65441AE47E13A15E95041333333B3CAA65441295C8FD216E95041B81E85FBCAA65441EC51B8DE16E9504133333383CAA65441AE47E14A17E950417B14AE47CAA65441AE47E11A17E95041B81E859BC7A65441713D0AA718E9504133333353C7A65441AE47E1EA19E95041333333C3C6A65441713D0A571AE950417B14AE37C8A65441713D0AF719E9504133333333C9A65441EC51B8AE19E95041333333C3C9A65441AE47E10A1BE95041B81E853BCAA65441EC51B81E1CE9504133333323CAA65441EC51B8DE1CE950417B14AE77CAA65441295C8F021DE95041F6285CEFCAA65441EC51B86E1DE95041B81E855BCBA65441EC51B86E1DE95041333333A3CBA65441EC51B81E1CE95041333333A3CBA65441EC51B8EE1BE9504133333313CBA65441713D0A271AE95041F6285C7FCBA65441295C8FA219E950417B14AEC7CBA65441AE47E14A1AE9504133333363CCA65441AE47E16A1BE9504133333363CCA65441EC51B87E1CE95041B81E859BCDA65441713D0A271DE95041333333E3CDA65441EC51B8FE1DE95041F6285CEFCDA65441713D0A471EE9504133333313CEA65441713D0AD71EE950417B14AED7CDA65441EC51B8BE21E95041F6285C8FCDA65441EC51B84E22E95041F6285C2FCDA65441713D0AC722E95041B81E856BCDA65441AE47E17A23E9504133333353CDA65441EC51B82E24E95041333333E3CDA65441295C8FC223E950417B14AEB7CFA65441AE47E1DA23E95041F6285C8FD0A65441295C8F7225E95041F6285CEFD0A65441AE47E1EA25E95041F6285C8FD0A65441EC51B8CE26E95041B81E85CBD0A65441713D0A4727E950417B14AE97D1A65441713D0AE726E950417B14AE77D3A65441EC51B85E27E95041B81E858BD4A65441EC51B8CE26E95041F6285C3FD5A65441AE47E1CA24E95041B81E851BD5A65441EC51B89E23E95041B81E85FBD3A65441AE47E14A23E95041F6285C1FD4A65441295C8F3223E95041F6285C0FD5A65441713D0A6722E950417B14AE87D5A65441295C8FD222E95041B81E850BD6A65441EC51B87E22E95041F6285C5FD6A65441AE47E19A21E95041F6285CCFD5A65441295C8F8221E9504133333323D6A65441295C8F6223E95041F6285CAFD7A65441EC51B89E23E950417B14AEC7D7A65441713D0AB723E9504133333313D7A65441AE47E1EA25E95041F6285C7FD7A65441AE47E14A26E95041B81E85FBD6A65441295C8F5227E95041B81E85CBD6A65441EC51B81E28E950417B14AE37D7A65441713D0A172AE95041B81E85CBD6A65441295C8FA22BE95041333333F3D5A65441713D0A772DE950417B14AE77D6A65441EC51B8EE2DE950417B14AEC7D7A65441EC51B80E2FE95041333333F3D8A65441EC51B8CE2FE950417B14AE17D9A65441EC51B82E30E95041F6285CCFD8A65441295C8F8230E9504133333323D9A65441AE47E12A31E95041F6285C2FD9A65441295C8FA231E950417B14AE07DAA65441AE47E17A32E950417B14AE37DAA65441713D0A4733E95041B81E85ABDBA65441EC51B89E32E950417B14AEA7DCA65441AE47E13A33E95041F6285C1FDDA65441713D0A7733E950417B14AEF7DDA65441AE47E1FA33E95041333333C3DEA65441AE47E1FA33E95041B81E859BDFA65441AE47E1EA34E950417B14AEF7E3A65441EC51B87E34E95041F6285CBFE5A65441AE47E1BA34E95041F6285C8FE8A65441713D0A0734E95041F6285C4FE9A65441EC51B8BE33E95041B81E857BEAA65441EC51B8FE32E95041F6285CCFEAA65441EC51B80E32E950417B14AE57EAA65441AE47E15A31E95041F6285CDFE9A65441EC51B87E31E95041F6285C7FE9A65441EC51B88E30E95041B81E859BE8A65441AE47E10A30E950417B14AE77E8A65441295C8FB22DE95041F6285C3FE7A65441AE47E13A2DE950417B14AE17E8A65441295C8FC22CE9504133333373ECA65441AE47E12A2EE950417B14AE37ECA65441EC51B81E2EE95041B81E856BEBA65441295C8F022FE950417B14AE17EBA65441295C8F2230E95041F6285CBFEBA65441295C8F7231E95041F6285C1FECA65441AE47E15A31E95041B81E856BEBA65441295C8F3232E95041B81E850BEBA65441295C8F8233E95041B81E858BECA65441295C8F6232E950417B14AEE7EDA65441295C8F6232E95041B81E859BEEA65441713D0AE732E95041B81E852BEFA65441295C8F9232E95041B81E85BBEFA65441713D0A9734E95041F6285C4FEFA65441295C8FD234E9504133333383EEA65441AE47E15A34E950417B14AE17EEA65441EC51B84E34E950417B14AE87EDA65441EC51B83E35E9504133333333EDA65441AE47E19A36E950417B14AE87EDA65441713D0AD736E95041B81E85CBEEA65441AE47E1BA37E950417B14AE57F0A65441AE47E17A38E9504133333373EFA65441AE47E1CA39E950417B14AED7EEA65441713D0A673AE95041333333A3EFA65441713D0A973AE9504133333393F0A65441AE47E13A3CE950417B14AEE7F0A65441713D0A773CE95041B81E856BF1A65441295C8F723DE95041F6285CAFECA65441EC51B88E3CE95041F6285C0FEDA65441295C8F023BE9504133333303EDA65441295C8F423AE950417B14AE37ECA65441EC51B81E3AE95041F6285C5FEBA65441713D0A673AE950417B14AEE7EAA65441EC51B8BE39E950417B14AE27EAA65441AE47E1DA38E95041B81E851BEAA65441AE47E11A38E95041F6285CAFE9A65441AE47E18A37E95041F6285C5FE8A65441713D0AA736E95041B81E85DBE7A65441713D0A2735E95041F6285C0FE7A65441EC51B89E35E950417B14AEF7E0A65441AE47E10A36E95041F6285C5FDFA65441AE47E19A36E95041F6285C9FDEA65441713D0A0737E95041F6285C1FDDA65441713D0A2738E950417B14AED7DCA65441295C8FF238E950417B14AE07DDA65441295C8F8239E950417B14AE07DDA65441295C8F123AE95041F6285C4FDDA65441295C8FD23AE95041F6285C1FDDA65441295C8F323BE9504133333383DCA65441713D0AE73BE9504133333323DCA65441EC51B8FE3BE95041B81E85BBDAA65441EC51B88E3CE9504133333313DAA65441EC51B8FE3BE95041B81E856BD9A65441713D0AE73BE9504133333393D8A65441AE47E1AA3BE950417B14AEC7D7A65441EC51B82E3CE950417B14AE67D7A65441713D0A473CE950417B14AEA7D6A65441AE47E18A3DE950417B14AE57D5A65441713D0A273EE95041B81E85ABD5A65441295C8F923EE950417B14AEC7D4A65441AE47E12A40E950417B14AE67D4A65441AE47E12A40E950417B14AEF7D4A65441EC51B84E40E95041F6285C9FD5A65441EC51B84E40E9504133333383D6A65441713D0A473FE950417B14AEA7D6A65441713D0A473FE95041B81E855BD7A65441EC51B8FE3EE9504133333303D8A65441295C8FB23FE95041B81E857BD8A65441295C8F7240E95041B81E854BD8A65441295C8F3241E95041F6285CAFD7A65441EC51B8FE41E95041B81E858BD7A65441295C8F1243E95041B81E857BD8A65441AE47E1FA42E95041F6285CFFD8A65441EC51B87E43E95041B81E85CBD9A65441713D0A9743E95041B81E858BDAA65441295C8F6244E95041F6285CDFDAA65441295C8F3244E95041333333C3DBA65441AE47E14A47E950417B14AE77DCA65441295C8F5248E95041F6285C5FDCA65441AE47E1CA48E9504133333313DDA65441EC51B83E4AE9504133333373DDA65441713D0A574AE95041B81E852BDDA65441713D0A374CE95041B81E858BDDA65441AE47E1CA4EE950417B14AEC7DDA65441AE47E18A4FE950417B14AE57DEA65441AE47E1BA52E950417B14AE47DFA65441AE47E1EA52E95041B81E850BDFA65441713D0AA754E95041F6285C8FDFA65441AE47E17A56E950417B14AEA7DFA65441EC51B81E58E95041F6285C7FE0A65441AE47E1CA5AE950417B14AE87E1A65441EC51B8CE5BE95041D7A370BDE1A65441713D0A175DE95041F6285CCFE1A65441EC51B87E5EE95041F6285C2FE2A65441AE47E11A62E95041F6285C2FD9A65441295C8F3259E95041B81E853BD6A65441AE47E1EA4FE95041F6285CEFD3A65441EC51B8AE4FE95041333333D3D4A65441295C8FC24DE95041F6285CAFD4A65441AE47E11A4DE95041B81E85FBD3A65441295C8F324DE95041F6285C8FD3A65441713D0AD74BE9504133333323D3A65441295C8F824BE950417B14AED7D3A65441EC51B8CE4AE950417B14AE07D4A65441713D0AF749E9504133333383D3A65441AE47E11A4AE95041333333C3D2A65441EC51B88E45E95041F6285C4FD1A65441AE47E1EA43E95041B81E852BD1A65441AE47E18A40E950417B14AEE7CFA65441713D0AE73EE950417B14AEB7CFA65441333333933EE950413D0AD7D3CEA65441295C8F323EE95041F6285CEFCDA65441713D0AB747E95041B81E850BB5A65441295C8F024AE95041F6285C7FB3A6544109000000EC51B80E3EE950417B14AE77D3A65441713D0AA73CE950417B14AEA7D3A65441295C8F223CE95041B81E856BD3A65441713D0A173CE95041B81E85BBD1A65441713D0AA73CE95041F6285C1FD1A65441295C8F423DE95041B81E852BD1A65441713D0AC73DE95041B81E85BBD1A65441AE47E14A3EE95041F6285CCFD2A65441EC51B80E3EE950417B14AE77D3A6544107000000713D0AB74AE950417B14AE77D6A65441295C8FE24BE95041F6285CCFD5A65441713D0A974CE95041F6285C5FD6A65441AE47E15A4CE95041B81E852BD7A65441AE47E1FA4BE95041F6285CBFD6A65441295C8F224BE95041B81E85CBD6A65441713D0AB74AE950417B14AE77D6A6544111000000EC51B82E48E95041333333A3D7A65441EC51B8BE48E95041B81E85FBD6A65441713D0AD748E9504133333353D6A65441713D0AC749E95041F6285C4FD7A65441AE47E1BA49E95041B81E85EBD7A65441713D0A874AE95041B81E851BD8A65441EC51B8FE4AE95041F6285CDFD7A65441295C8F524BE950417B14AE57D8A65441AE47E1CA4BE950417B14AE57D8A65441713D0A674CE95041333333C3D8A65441AE47E18A4CE95041F6285CEFD9A65441295C8FB24BE95041B81E85BBDAA65441713D0A574AE950417B14AE97DAA65441295C8FA249E95041333333F3D8A65441295C8FA249E95041B81E854BD8A65441EC51B8EE48E950417B14AE57D8A65441EC51B82E48E95041333333A3D7A6544108000000295C8FB254E95041333333E3D9A65441EC51B8EE54E950417B14AE97DAA65441EC51B82E54E95041B81E854BDBA65441EC51B89E53E95041F6285C3FDBA65441AE47E18A52E95041B81E858BDAA65441713D0A9752E950417B14AE37DAA65441EC51B83E53E95041333333B3D9A65441295C8FB254E95041333333E3D9A6544113000000295C8FB224E9504133333373CBA65441EC51B86E23E95041B81E855BCBA65441713D0A8723E950417B14AE97CBA65441EC51B87E22E950417B14AE97CBA65441713D0A7721E95041F6285C0FCCA65441AE47E1EA1FE95041F6285C4FCBA65441EC51B80E20E95041F6285C2FCAA65441EC51B8AE1FE95041F6285CFFC9A65441EC51B8AE1FE9504133333333C9A65441EC51B86E20E95041333333A3C8A65441295C8FB221E950417B14AEC7C8A65441295C8F4222E95041B81E854BC9A65441295C8FD222E950417B14AEE7C9A65441713D0AC722E95041B81E859BCAA65441713D0AB723E95041F6285CBFCAA65441713D0A4724E9504133333393C9A65441295C8F4225E95041F6285C5FCAA65441EC51B84E25E95041F6285CEFCAA65441295C8FB224E9504133333373CBA6544109000000AE47E1AA3EE95041B81E852BC2A65441713D0AA73FE95041B81E85BBC2A65441AE47E1CA3FE950417B14AE57C3A65441713D0A473FE9504133333383C4A65441AE47E1AA3EE9504133333323C4A65441295C8FD23DE950417B14AE17C4A65441AE47E1EA3DE950417B14AE27C3A65441295C8F323EE95041F6285C4FC2A65441AE47E1AA3EE95041B81E852BC2A654410D000000EC51B8AE31E950417B14AED77CA65441713D0AE732E950417B14AEF77AA65441713D0AE732E950417B14AE4779A65441AE47E17A32E950417B14AEE778A65441AE47E13A33E95041F6285C9F78A65441713D0AC734E95041B81E856B79A65441295C8FD234E95041333333D37AA65441295C8F4234E95041F6285C6F7BA65441295C8F4234E95041333333837CA65441713D0A6734E95041B81E855B7DA65441295C8FE233E95041333333D37DA65441EC51B82E33E950417B14AEF77DA65441EC51B8AE31E950417B14AED77CA6544107000000AE47E1EA49E95041B81E85BBADA65441295C8F024AE9504133333353ACA65441295C8F224BE95041F6285CFFABA65441AE47E1FA4BE950417B14AEE7ABA65441295C8F524BE950417B14AE67ADA65441295C8FC24AE950417B14AEC7ADA65441AE47E1EA49E95041B81E85BBADA654410A000000AE47E17A4DE950417B14AEE7AEA65441AE47E1AA4DE950417B14AED7AFA65441713D0AF74CE95041333333A3B0A65441295C8F824BE95041333333A3B0A65441EC51B8CE4AE95041B81E852BB0A65441713D0A874AE95041B81E857BAEA65441EC51B88E4BE95041F6285C6FAEA65441AE47E1BA4CE95041F6285CDFADA65441AE47E1AA4DE950417B14AEF7ADA65441AE47E17A4DE950417B14AEE7AEA6544101030000000B00000038030000666666F6BAE85041666666A6DBA75441F6285CAFB9E850417B14AEE7D9A75441A4703DEAB9E85041CDCCCCECD7A75441713D0AA7BAE850411F85EBD1D6A7544152B81E05BBE85041A4703DFAD4A7544148E17A14BCE8504152B81E75D3A75441A4703D6ABDE8504114AE4701D0A7544166666606BFE85041D7A3702DCFA7544100000080C0E85041AE47E1DACEA754413D0AD733C2E85041B81E85EBCCA754411F85EB91C6E8504185EB51F8BEA75441D7A3705DCBE85041E17A140EB0A75441000000D0CAE85041000000B0AFA75441F6285C3FC9E8504152B81E75AFA75441F6285C7FC7E8504148E17AC4AEA754413D0AD7B3C5E85041E17A146EADA75441CDCCCC8CC4E850415C8FC2A5ACA754413D0AD733C2E85041D7A370DDABA75441C3F5283CC1E85041EC51B8CEAAA75441E17A14FEBFE85041C3F5287CAAA75441333333E3BEE85041E17A143EA9A7544114AE4741BFE85041CDCCCC8CA8A75441F6285CBFC1E85041295C8F32A9A75441CDCCCC1CC2E850413D0AD703A8A75441295C8F42CAE85041E17A146E9BA754417B14AE07CAE850418FC2F5C89AA7544114AE4771CAE85041000000309AA7544166666616CBE85041AE47E18A99A754419A999939CBE8504148E17A6498A75441333333D3CBE8504185EB517897A754410AD7A3A0CAE850419A99996996A7544185EB51B8CAE8504148E17AC495A754418FC2F568CBE85041C3F528FC94A75441713D0AA7CCE8504114AE472192A75441A4703DAACDE85041B81E85AB91A7544114AE47D1CEE8504152B81E8590A75441A4703D6ACFE850415C8FC2758FA75441AE47E16AD1E85041E17A141E8EA75441AE47E10AD2E8504185EB51488CA75441AE47E16AD4E8504185EB512888A75441F6285CBFD5E850418FC2F54887A75441713D0AA7D6E850413D0AD72387A75441E17A145ED6E85041EC51B89E86A75441B81E85EBD6E85041713D0AF784A75441EC51B80ED7E85041333333F383A7544152B81E35D8E850411F85EB5184A754410AD7A370D8E850415C8FC22585A75441EC51B8AED9E85041E17A140E85A75441EC51B88EDAE850415C8FC20586A754411F85EB71DAE850418FC2F5E886A754411F85EBC1DBE85041A4703D2A86A754415C8FC285DDE85041295C8F6284A75441AE47E10ADDE85041D7A3705D84A7544152B81E95DCE85041C3F528FC82A7544133333313DCE85041CDCCCCEC81A75441A4703D7ADBE85041E17A14FE7FA7544148E17A04DBE850410AD7A3707FA75441666666C6D9E85041D7A3706D7EA754413D0AD793D8E85041333333237DA75441CDCCCC2CD9E85041D7A370AD7CA754411F85EBF1D8E85041D7A370CD7BA75441666666E6D8E85041B81E854B7BA754417B14AE87D8E85041F6285C8F7AA75441D7A370BDDAE850417B14AE377CA75441AE47E14ADBE85041333333437CA754410AD7A3C0DBE85041A4703D8A7CA75441CDCCCCCCDBE850415C8FC2757DA754411F85EB91DBE85041B81E85EB7DA75441F6285C1FDCE850410AD7A3907EA754419A999989DCE85041A4703DDA7FA7544185EB5178DEE850415C8FC21580A754410AD7A340DFE85041F6285C7F80A7544114AE47F1DFE850410AD7A3707FA75441295C8FC2DFE85041F6285CBF7EA75441C3F5282CE0E85041D7A3706D7EA75441E17A14AEE0E850419A9999697DA75441713D0A67E0E850410AD7A3F07BA75441AE47E1AADFE850418FC2F5F87AA754417B14AE87DFE850411F85EB017AA75441666666B6DFE850419A99993979A754411F85EB81E1E85041000000C077A754415C8FC2A5E1E8504148E17AD476A7544185EB51F8E1E850413333335376A754415C8FC2A5E1E850415C8FC2C575A75441CDCCCC9CE2E850416666669675A75441EC51B81EE3E850418FC2F5E875A75441295C8FF2E3E85041E17A148E76A7544148E17A74E4E850419A99999976A754411F85EB01E5E85041B81E853B76A75441A4703DCAE5E85041A4703D8A75A7544148E17A34E6E85041713D0A8774A75441333333A3EBE85041AE47E14A70A75441B81E856BECE850410000001070A75441713D0A57EDE85041295C8F6270A7544148E17AE4EDE85041000000D071A754411F85EB71EEE8504185EB519872A75441000000B0EFE85041000000D071A75441C3F528BCEFE850410AD7A3C070A75441A4703D1AF0E850417B14AE2770A75441B81E855BF2E85041CDCCCC0C6FA75441B81E853BF3E850417B14AE676EA754415C8FC2A5F3E85041CDCCCC4C6DA754413D0AD723F3E850411F85EB316CA7544100000030F3E8504185EB51E86AA754415C8FC2A5F3E850415C8FC2B569A75441D7A3709DF4E85041EC51B88E68A7544185EB51D8F4E850418FC2F51868A75441333333F3F5E8504185EB516867A754417B14AE77F7E850411F85EB2167A7544114AE47F1F8E85041EC51B85E64A75441EC51B89EF8E85041EC51B87E63A75441C3F5284CF8E850413D0AD72364A754418FC2F528F8E8504148E17AD464A75441EC51B8BEF7E85041E17A143E65A754410AD7A380F6E85041C3F528EC64A754415C8FC245F6E8504148E17AF463A7544185EB5198F6E85041EC51B87E63A75441666666F6F6E850417B14AE5762A75441333333D3F6E85041713D0AA761A754410AD7A380F6E85041E17A14EE61A75441EC51B8FEF5E85041333333B361A754411F85EB41F5E85041B81E859B61A75441B81E85FBF4E85041CDCCCC1C62A7544166666656F4E85041CDCCCC3C61A754418FC2F5A8F4E850419A99993960A754413D0AD7C3F5E850416666661660A7544114AE4751F6E850415C8FC2A55DA754413D0AD783F7E850418FC2F5A85EA7544114AE4711F8E8504114AE47915EA75441EC51B89EF8E85041D7A3707D5FA75441C3F5280CFAE850418FC2F5E85CA75441C3F5280CFAE85041000000505CA75441C3F528ECFAE850415C8FC2C55CA75441000000E0FAE850415C8FC2E55BA7544114AE47D1F9E85041713D0AD75AA75441A4703D8AF9E8504152B81E555AA75441A4703D8AF9E8504148E17AA459A75441713D0A87F8E85041713D0AF759A75441C3F5284CF8E8504185EB519859A754417B14AE77F7E850411F85EB115BA7544114AE4731F7E85041A4703D1A5AA7544185EB5198F6E85041333333B35AA7544166666656F4E85041B81E852B58A7544133333333F4E850411F85EB9157A75441E17A146EF4E85041EC51B86E57A7544133333353F3E85041C3F5283C56A7544100000030F3E85041333333A355A7544133333373F2E850410AD7A35055A754417B14AE47F3E850418FC2F55854A754415C8FC2A5F3E85041713D0AB754A754415C8FC285F4E85041EC51B8EE53A75441713D0AE7F5E850417B14AED753A75441E17A142EF6E85041295C8F1254A75441A4703DEAF6E85041AE47E1FA53A75441AE47E10AF6E8504152B81E8553A7544148E17A14F9E850410AD7A3B052A754417B14AE17FAE85041E17A143E53A75441713D0A87F8E850411F85EBA151A75441AE47E13AFAE85041D7A370AD51A75441AE47E13AFAE850415C8FC2B550A75441D7A370ADF9E85041A4703DAA50A75441CDCCCCFCF8E850419A9999F94FA754413D0AD783F7E85041000000604FA75441EC51B8DEF6E85041713D0AC74EA754413D0AD7A3F6E85041295C8FD24EA7544185EB5198F6E8504185EB51484FA75441D7A370BDF3E85041D7A3700D4FA754415C8FC2A5F3E85041CDCCCC5C4EA75441C3F528ECF3E850417B14AEB74DA7544152B81ED5F3E850418FC2F5C84BA7544114AE47D1F2E850419A9999994BA75441E17A14CEF1E85041333333734AA75441713D0AF7EFE85041AE47E1AA49A7544114AE4781EFE850410AD7A34049A754415C8FC245EFE85041E17A140E48A75441713D0AF7EFE85041333333D347A75441A4703DFAF0E85041D7A3707D46A754419A999969EFE85041D7A3709D45A754417B14AEC7EFE85041713D0A7744A7544148E17AA4EFE85041666666C643A75441713D0AF7EFE8504152B81E1543A75441E17A14EEF0E85041CDCCCC4C42A75441E17A14CEF1E850417B14AE8742A75441295C8FA2F2E8504114AE472143A754410AD7A300F3E85041F6285C5F44A75441F6285C7FF2E85041A4703D7A45A75441D7A370BDF3E85041E17A140E48A75441000000F0F4E85041B81E859B48A754413D0AD7A3F6E85041B81E859B48A754410AD7A360F7E8504152B81E3549A75441295C8FB2F7E85041D7A370FD49A75441C3F5286CF7E85041666666964AA754417B14AE77F7E85041713D0A274CA75441713D0AA7F7E85041666666364DA7544152B81EC5F9E850419A9999594DA75441EC51B85EFAE85041F6285CEF4CA7544133333303FBE850411F85EB414DA75441E17A141EFCE850413D0AD7E34CA7544185EB5188FCE85041B81E85FB4CA754410AD7A390FBE850419A9999394EA75441A4703D6AFAE8504152B81E454EA75441D7A3708DFAE850413D0AD7A34EA7544166666606FCE85041F6285CAF4EA75441AE47E1FAFBE850411F85EB014FA7544185EB51A8FBE85041000000604FA754413D0AD793FCE85041AE47E19A4FA7544100000080FDE850419A9999194FA75441D7A370EDFEE850419A9999194FA7544100000040FFE85041F6285C8F4FA754416666666600E95041CDCCCCFC50A75441F6285C1F00E950418FC2F5B851A7544185EB510800E950413333330353A75441C3F528DC00E95041295C8F1254A754411F85EB5101E95041C3F5283C56A75441E17A143E02E9504114AE47E156A754416666660603E95041B81E856B56A754415C8FC2E503E95041F6285C5F56A754415C8FC2E503E95041EC51B8AE55A75441A4703DFA02E95041CDCCCC0C56A75441EC51B8EE02E950418FC2F57853A754416666662602E95041B81E85EB52A75441713D0AD702E95041CDCCCCFC50A7544148E17A4404E9504114AE471150A754417B14AE4705E9504185EB512850A75441AE47E12A07E95041B81E852B51A754415C8FC26507E95041B81E850B52A75441EC51B8FE07E9504185EB51E851A754419A99991909E950411F85EB8152A75441713D0AA709E9504185EB51A853A75441AE47E1FA0DE95041CDCCCC3C4FA75441B81E851B0DE95041C3F5286C4FA75441C3F528EC0CE95041D7A3700D4FA75441A4703D4A0DE950411F85EB414DA75441666666760CE950410AD7A3C04CA75441E17A14CE0AE950418FC2F5884DA754411F85EBE109E95041EC51B81E4DA7544185EB517809E95041E17A146E4CA754410AD7A38008E950413D0AD7034CA75441333333F307E95041000000304BA75441000000D007E95041666666964AA754416666661608E95041AE47E1AA49A7544114AE477107E950413333339349A754413333331307E9504114AE471149A7544148E17A2405E9504152B81E3549A75441A4703DBA04E950417B14AEA748A75441CDCCCC2C04E950410000009048A75441C3F5287C03E950417B14AEC747A75441F6285CBF02E95041B81E85BB47A7544152B81E3503E950411F85EB5147A75441D7A3701D03E950417B14AEE746A75441C3F5289C02E95041000000D046A75441A4703D3A01E950411F85EB9145A7544114AE47A100E9504152B81EB545A75441F6285C1F00E9504148E17A0445A75441AE47E15A00E950417B14AE4744A754410AD7A3F0FFE850417B14AE8742A754419A9999A9FFE85041713D0AF740A7544148E17AE4FFE85041295C8F5240A7544185EB5128FFE850417B14AE373FA75441F6285C1F00E95041F6285C8F3DA754410AD7A3F0FFE8504152B81E253DA754413D0AD71300E95041A4703D0A3CA754411F85EB7100E9504114AE47713BA75441F6285CDF01E9504152B81E653BA754418FC2F55803E950411F85EB213CA75441AE47E1AA03E9504152B81E253DA75441CDCCCC2C04E95041F6285CAF3CA75441B81E851B06E95041E17A14DE3CA754413D0AD7E306E95041D7A370CD3EA75441CDCCCCAC07E950410AD7A3F03EA75441AE47E10A08E9504114AE47A13FA754419A99991909E950417B14AE373FA75441295C8F0209E950410AD7A3D03FA75441F6285C6F0AE950419A99996940A754413D0AD7630AE950413333330341A754410AD7A3200BE950411F85EB3141A7544148E17A140BE950418FC2F57841A754411F85EBA10BE9504114AE474142A754411F85EB810CE9504114AE474142A754413D0AD7030DE95041666666E642A75441333333C30EE9504148E17A4443A7544185EB51680FE95041666666A644A75441F6285C8F10E9504114AE47C145A754417B14AE7710E95041295C8F2247A7544114AE47A112E95041666666F647A75441295C8F5213E950417B14AEC747A754413D0AD79315E95041295C8F4246A75441F6285C7F16E95041C3F5285C43A75441CDCCCC2C16E95041E17A14FE42A754411F85EBD116E950417B14AE8742A75441C3F5283C17E95041AE47E11A41A75441CDCCCC0C17E9504114AE478140A75441F6285C5F17E9504152B81EC53FA754417B14AE6716E950413D0AD7133FA75441E17A14DE16E950415C8FC2F53CA75441295C8FA216E95041000000803CA7544148E17A6415E95041713D0A073BA75441B81E85AB15E95041AE47E11A3AA754416666660615E95041CDCCCCDC38A754418FC2F55815E950413D0AD74338A754415C8FC29512E95041D7A3703D36A75441CDCCCCFC11E950419A99991936A75441AE47E17A11E9504148E17A5436A75441E17A14BE10E9504152B81E7535A7544148E17A740FE9504152B81E9534A7544148E17A940EE950411F85EBB132A7544152B81EA50CE95041A4703D9A32A754413D0AD7230CE95041B81E853B32A754413D0AD7430BE9504185EB511832A75441333333930AE95041A4703DDA30A75441CDCCCCFC0AE950419A99992930A75441713D0AA709E95041C3F5289C2FA75441B81E85DB07E950410000005031A754410AD7A3C006E9504148E17A4431A75441D7A3709D06E950419A9999E931A754417B14AE4705E950417B14AE4732A754413333335305E95041E17A148E32A754419A99990904E9504152B81ED532A754410000007003E95041D7A370DD31A75441E17A143E02E950415C8FC2C531A754416666664601E95041AE47E18A31A75441F6285CFF00E9504148E17A6430A754411F85EB3102E95041EC51B80E2FA754415C8FC2A505E95041CDCCCC4C30A75441295C8F6206E95041AE47E1AA30A754417B14AE0707E950410000007030A7544152B81E9507E95041C3F5289C2FA75441AE47E1EA08E95041E17A143E2FA75441AE47E1CA09E95041F6285CDF2EA75441EC51B89E0AE95041B81E850B2EA75441A4703D8A0BE950410AD7A3D02DA75441B81E853B0CE950410AD7A3102CA7544114AE47B10CE950415C8FC2B52CA7544152B81E650EE950419A9999A92CA754415C8FC2350EE95041EC51B88E2BA754411F85EB0110E950417B14AEB729A75441EC51B8FE0EE950410AD7A37029A75441000000800FE95041000000C028A754413D0AD77316E95041333333E328A754417B14AE0719E95041B81E858B2AA75441E17A142E1AE9504185EB51682AA75441D7A3705D1AE950415C8FC2152AA75441F6285CDF1AE9504114AE47212AA754417B14AEA71BE950419A9999E92AA7544185EB51581CE95041D7A3700D2BA75441B81E855B1DE950410AD7A3102CA75441295C8FA21DE9504185EB51682AA75441333333531EE95041A4703D0A2AA75441295C8FF220E95041666666C62AA75441E17A142E21E95041295C8FB22BA75441C3F5288C21E9504148E17A042CA75441F6285C6F23E95041B81E854B2CA75441A4703DAA23E9504185EB51082DA754411F85EBA124E95041C3F528FC2CA754411F85EBA124E9504185EB51282CA75441E17A143E26E95041E17A14FE29A75441AE47E1FA26E95041F6285CCF29A75441666666E627E95041E17A141E29A75441000000A027E95041F6285C0F28A75441000000A027E950411F85EBC125A754411F85EB8125E95041AE47E15A26A7544148E17AF424E95041D7A370AD26A7544148E17A1424E950419A9999D925A75441713D0AA722E95041A4703DAA25A75441F6285C8F22E9504148E17A7423A7544114AE473122E95041333333F322A754417B14AE9721E95041333333F322A7544148E17A7421E950419A99991924A7544114AE477120E95041666666B625A75441713D0A271FE950410000002026A75441713D0A271FE9504152B81EC526A75441AE47E16A1EE95041CDCCCCDC26A75441AE47E18A1DE95041C3F5282C26A754415C8FC2E51CE95041E17A14EE24A7544114AE47F11CE95041F6285CAF23A754410AD7A3001EE950418FC2F5A821A75441713D0A671DE95041EC51B83E21A754417B14AE871CE95041B81E85DB22A75441CDCCCC6C1BE950410AD7A38023A75441333333D31AE950415C8FC24523A75441F6285C5F17E95041C3F5288C23A754419A9999E916E95041A4703D0A23A75441666666E615E95041333333F322A754418FC2F57814E9504148E17A9422A75441B81E850B13E9504114AE477122A7544152B81EC512E95041713D0A0722A75441295C8F9211E95041C3F528CC21A7544152B81E2510E950418FC2F5C820A75441C3F528CC0DE95041EC51B83E21A7544152B81EA50CE95041B81E851B21A754411F85EB810CE950415C8FC28521A75441B81E855B0BE950419A99997921A75441CDCCCCDC0BE950415C8FC2A520A75441CDCCCCDC0BE9504152B81EF51FA754413D0AD7430BE95041CDCCCC2C1FA7544148E17A140BE95041AE47E1EA1CA754417B14AE2706E950417B14AE671FA75441F6285C3F06E95041D7A370DD1FA7544148E17A4404E950410000003020A7544185EB513804E9504114AE477122A75441F6285C9F03E95041713D0AC723A754419A99994902E95041B81E859B24A754417B14AEC701E95041C3F5284C25A75441EC51B82E01E95041F6285C2F27A754413333334300E95041713D0A2728A75441F6285C1F00E95041F6285CEF28A75441D7A370CDFFE85041A4703D2A29A754415C8FC2D5FEE85041D7A3702D2AA75441EC51B88EFEE85041000000602BA75441AE47E1BAFDE850419A9999C92BA75441666666E6FCE85041713D0A772BA75441F6285CEFFBE85041666666A62BA75441B81E857BF8E85041713D0AD72FA75441666666D6F7E85041A4703DDA30A75441C3F528CCF4E85041E17A147E2DA75441C3F528ACF5E8504185EB51282CA75441295C8FB2F7E850410AD7A37029A75441A4703DCAF7E8504185EB51C827A75441C3F5284CF8E85041F6285C2F27A75441F6285C4FF9E85041A4703DCA24A75441A4703D8AF9E850416666661623A754410AD7A390FBE8504152B81E351EA754415C8FC235FCE85041000000B01CA754417B14AE97FDE85041666666861AA75441EC51B8AEFDE85041F6285C5F19A75441D7A370EDFEE85041D7A3708D15A754410AD7A310FFE850413D0AD7C313A75441E17A14BEFEE85041295C8FB212A75441AE47E17AFFE8504114AE475111A754416666666600E950418FC2F5C80EA754413D0AD7F300E95041000000D009A7544152B81E7501E9504152B81EF506A754410AD7A3B001E95041E17A14FE05A754411F85EB3102E950411F85EB1105A75441295C8F0202E95041AE47E15A02A75441B81E85CB02E95041295C8F9201A75441E17A146E02E9504148E17A5400A75441B81E85CB02E9504185EB5168FFA654413D0AD7B302E950413D0AD743FBA654416666662602E95041EC51B89EFAA654418FC2F57802E95041713D0AA7F9A65441CDCCCC6C02E950415C8FC245F8A65441713D0AF701E95041B81E85FBF6A65441EC51B80E02E95041E17A148EF5A65441D7A370CDFFE85041B81E853BF5A65441CDCCCC8C01E950417B14AE07F7A654413333332301E950418FC2F568F8A65441713D0A1701E950419A9999F9F9A6544152B81E7501E95041713D0A67FBA65441F6285CFF00E9504152B81EA5FCA65441AE47E15A00E950415C8FC2B501A75441AE47E15A00E95041713D0A1703A7544185EB510800E950419A99994904A75441C3F528FCFFE85041A4703DDA05A7544185EB5128FFE8504185EB511807A75441B81E856BFEE85041F6285CDF0AA7544114AE4701FEE850415C8FC2050CA754415C8FC2F5FDE85041713D0A870CA7544152B81E25FEE85041295C8FC20CA7544185EB5148FEE8504114AE47D10DA75441333333E3FBE8504148E17A7411A75441AE47E15AF9E8504185EB516818A75441E17A14EEF7E85041A4703D3A1CA754418FC2F548F7E85041D7A3703D1DA7544133333313F5E85041713D0AE722A7544185EB51F8F3E85041666666F623A75441B81E853BF3E85041F6285C2F27A75441A4703DDAF1E850410AD7A3302BA75441CDCCCC8CEFE85041D7A3701D30A754419A999989EEE8504152B81E1531A7544152B81EB5EDE8504148E17A2432A7544114AE4701ECE850413D0AD7A335A754415C8FC215EBE850415C8FC20537A754419A999909EBE85041A4703DAA37A754410AD7A330ECE850410000009036A7544114AE47E1ECE8504114AE475135A75441F6285CBFF0E8504152B81ED532A75441295C8FC2F1E850411F85EBD131A75441713D0A67F2E8504148E17A6430A75441295C8F82F3E8504148E17A842FA75441F6285C8FF7E85041AE47E18A31A75441713D0A07F5E85041333333F334A75441E17A14CEF1E85041713D0A6738A75441E17A149EEDE850417B14AE573EA754413D0AD733EDE85041295C8F923EA75441C3F5283CECE85041D7A370AD3FA754417B14AE27EDE850418FC2F59840A754417B14AE27EDE8504114AE476141A75441EC51B88EECE850410AD7A37042A75441D7A3702DEBE85041333333E341A75441E17A14FEEAE850419A99992942A754415C8FC215EBE85041D7A370BD44A75441333333A3EBE850413D0AD73345A754413D0AD773EBE85041295C8F4246A754413D0AD793EAE8504185EB51B846A7544166666626E9E85041B81E85DB46A7544185EB51C8E8E85041AE47E10A47A754417B14AE17E8E8504152B81E9546A75441F6285C4FE7E8504152B81E7547A75441CDCCCC3CE5E85041C3F5280C4BA75441713D0AA7E5E85041CDCCCCBC4BA754411F85EBE1E5E850417B14AED74CA754418FC2F5B8E7E8504148E17AD44BA75441AE47E11AE9E8504114AE47B14BA75441295C8F32E9E8504148E17AB44CA7544166666646E8E85041AE47E1BA4EA754417B14AE37E7E85041666666F64EA75441A4703DAAE6E8504114AE47514EA75441D7A370EDE5E85041713D0AE74DA754413D0AD7C3E3E8504114AE47314FA754413D0AD7E3E2E850413D0AD7834FA7544166666656E2E8504114AE47314FA75441F6285C2FE1E85041A4703DCA4FA75441E17A14EEDEE8504148E17AF451A754413D0AD783DEE85041AE47E11A53A754419A999989DCE85041B81E858B55A75441713D0A77DAE850418FC2F5D857A7544148E17A44D9E850418FC2F5B858A754413D0AD7F3D5E85041A4703DBA5CA75441713D0AE7D1E850419A99991961A75441000000C0D0E85041B81E857B62A75441A4703D5ACAE850410AD7A33068A75441C3F5287CC6E85041EC51B84E6AA75441EC51B82EC4E850419A9999496CA7544148E17A04C2E85041CDCCCC0C6FA75441D7A3700DC1E850410000001070A754411F85EB61BEE85041AE47E1CA73A754415C8FC275BDE8504185EB513875A7544114AE4751B9E85041E17A14BE7AA75441B81E85FBB7E8504185EB51287BA7544114AE4791B7E850411F85EBC17BA7544133333333B7E850417B14AE577BA754413D0AD7E3B7E85041333333837AA7544166666636B8E8504114AE477178A75441713D0AA7BAE85041295C8F3277A7544114AE47F1BBE850413D0AD74375A754419A9999B9BCE85041295C8F0273A7544185EB5188BFE850417B14AE2770A754410AD7A370BFE85041AE47E18A6EA754418FC2F538C0E850418FC2F5786CA754410AD7A330C1E85041666666466BA754411F85EB91C2E85041C3F528DC6AA75441C3F528DCC3E85041E17A149E69A75441B81E85EBC4E850413D0AD73369A75441333333B3C5E850418FC2F57868A75441713D0AB7C6E85041EC51B8AE67A75441713D0A97C7E850410AD7A35067A7544100000030C8E85041713D0A0766A754417B14AE07CAE85041F6285C2F64A75441E17A140ECCE85041F6285C4F63A754411F85EB81CFE85041333333F35FA7544148E17A94D1E85041000000F05EA754417B14AE97D2E850410AD7A3C05EA75441AE47E17AD4E850418FC2F5C85DA754415C8FC275D6E85041C3F5289C5AA75441C3F528BCD6E85041000000D058A7544114AE4761D7E85041C3F528FC57A7544100000050D9E85041EC51B88E56A754413D0AD773D9E85041333333C354A754413D0AD783DEE850413D0AD7C34DA7544114AE4711DFE85041A4703D4A4CA7544100000070DFE8504148E17AF44AA7544133333373E0E850419A9999D949A75441F6285CEFE2E85041F6285C1F46A75441D7A3702DE4E85041713D0A5745A75441713D0AC7E4E8504152B81EF543A75441CDCCCC7CE3E85041CDCCCC4C42A7544114AE4771E3E85041333333E341A754415C8FC2D5E2E85041EC51B87E41A7544133333393DFE850410AD7A3A03FA754410AD7A350D9E850417B14AE074AA75441CDCCCC1CD4E850410000002051A7544152B81E25D3E85041E17A143E53A754417B14AE77D3E85041B81E85AB54A7544185EB5148D3E85041F6285C5F56A75441E17A14DED2E850416666668657A75441CDCCCC5CD2E850417B14AE0758A754411F85EB41D1E850413D0AD7D359A7544148E17AD4CFE85041333333935BA75441A4703D8ACEE85041E17A14AE5CA75441E17A14EECCE8504152B81EB55EA75441EC51B8BECCE85041E17A144E5FA75441295C8F42CAE85041333333B361A754410AD7A3E0C8E85041666666B662A75441C3F5287CC6E850415C8FC25565A754413D0AD7D3C4E850413D0AD77367A754418FC2F5B8C3E850417B14AE7768A75441B81E854BC2E85041AE47E17A69A75441D7A3702DC0E8504114AE47816BA754410AD7A370BFE85041000000706DA75441EC51B87EBCE85041A4703D7A70A7544100000040BBE85041AE47E10A72A75441E17A140EBAE85041EC51B8DE72A7544100000010B7E850410AD7A3E076A75441295C8F82B6E850417B14AED777A75441295C8F82B4E850416666662678A75441A4703D1AB3E850419A9999197AA75441333333D3B2E8504148E17A347BA7544100000090B3E850415C8FC2B57BA75441000000B0B2E85041AE47E13A7DA75441C3F528BCB2E85041295C8F327EA7544114AE47F1B4E85041C3F5287C7FA7544152B81EF5B5E85041CDCCCC4C7FA7544185EB5118B6E85041713D0AB77FA754415C8FC205B4E850413D0AD73382A754415C8FC2E5B4E85041C3F528FC82A75441E17A14AEB5E850415C8FC26583A7544166666656B7E850415C8FC26583A7544166666636B8E85041F6285C1F83A75441E17A140EBAE85041333333F383A75441A4703DEAB9E85041713D0AF784A754417B14AE77BAE8504185EB515886A75441CDCCCCFCBBE850413333335388A75441EC51B87EBCE8504114AE47B188A754410AD7A3D0BCE85041C3F528CC89A754410AD7A3D0BCE8504148E17A948AA75441295C8F72BCE85041713D0AE78AA75441F6285CAFB9E85041A4703D2A8AA754415C8FC245B9E85041E17A146E89A75441E17A144EB8E8504148E17AD488A75441AE47E14AB7E85041713D0A2789A75441AE47E16AB6E85041EC51B85E88A7544166666676B6E85041C3F5282C87A75441D7A370DDB5E850417B14AE8786A7544166666676B6E8504148E17A8485A7544152B81E15B5E85041000000B084A754417B14AEA7B3E850417B14AEC784A75441CDCCCC8CB2E850410AD7A36085A7544148E17AC4B1E85041295C8F0285A7544166666666B1E850410AD7A38084A7544114AE47A1B1E8504148E17AC483A754417B14AEC7B2E850413D0AD71383A75441C3F528BCB2E850411F85EB9182A754415C8FC225B3E85041AE47E14A82A75441CDCCCC6CB3E85041B81E856B81A75441C3F528DCB1E850413D0AD73382A75441713D0A57B0E85041295C8F6282A75441C3F5283CAFE85041295C8F4283A75441F6285C7FAEE8504152B81EB582A754415C8FC2F5AEE85041B81E856B81A7544148E17A04B0E85041CDCCCC0C81A75441A4703D3AB2E85041B81E85AB7FA754417B14AEE7B1E85041333333E37EA7544148E17AE4B0E8504148E17A847EA7544114AE47E1AFE85041713D0AD77EA75441295C8F12AFE85041A4703DBA7FA754417B14AEF7ABE8504148E17AE482A75441D7A3706DACE85041F6285C1F83A75441D7A3708DABE85041295C8F2284A75441EC51B82EABE85041713D0AF784A75441A4703D8AAAE8504148E17A8485A7544166666666AAE850417B14AE8786A75441295C8F92A9E85041EC51B87E87A75441AE47E19AA8E85041B81E853B88A7544152B81E45A7E850411F85EB6189A75441EC51B85EA4E85041C3F5284C8DA7544185EB5118A4E85041713D0A678EA7544133333373A3E85041E17A145E8FA754413D0AD763A2E85041C3F5287C91A7544114AE47F1A2E85041333333A392A75441B81E859BA1E85041CDCCCCCC94A7544185EB5198A0E85041F6285CFF95A75441000000D09FE850416666664696A75441AE47E10AA0E850410000009097A7544152B81E959FE85041A4703DFA97A75441CDCCCCCC9EE850419A99992998A754417B14AE279EE850415C8FC2E598A75441CDCCCCEC9DE8504152B81EF599A75441C3F5283C9DE85041AE47E16A9AA754417B14AE479DE850418FC2F5C89AA75441EC51B8CE9BE850413D0AD7039BA75441295C8FE29AE850419A9999599CA75441295C8FE29AE850411F85EBE19EA75441E17A143E9AE85041F6285C4FA0A754411F85EB319AE8504100000000A1A754410AD7A3D098E85041295C8FF2A3A75441B81E854B97E850418FC2F598A8A75441AE47E19A96E85041E17A143EA9A75441B81E858B95E85041A4703DBAABA754411F85EB2195E8504148E17A24ACA754417B14AED793E85041E17A144EAEA75441A4703D2A94E85041B81E85DBAEA75441295C8F1294E85041B81E859BB0A7544148E17AB493E850418FC2F528B1A754413D0AD72392E850419A9999B9B2A75441EC51B85E92E85041CDCCCCBCB3A754418FC2F5E891E8504148E17AB4B4A75441E17A140E8FE85041713D0AC7B6A75441B81E859B8FE850410AD7A330B7A7544114AE471190E850419A999919B7A754419A9999598DE85041B81E85EBBAA75441B81E854B89E85041C3F528ACC4A754418FC2F5B886E85041295C8F72CBA75441F6285CDF87E8504185EB51A8CDA754418FC2F5F884E850419A9999E9CFA754418FC2F51884E85041A4703D5AD2A7544152B81E9586E850413D0AD713D2A754411F85EB5187E85041C3F528DCD2A754413D0AD7F386E85041C3F528BCD3A75441C3F5282C8BE85041EC51B89ED4A75441F6285C5F8BE8504166666606D5A75441295C8FA28AE85041333333B3DBA75441AE47E16A8BE85041B81E859BDBA754415C8FC2C58AE85041D7A3706DDFA7544114AE47718DE850411F85EB41E0A75441A4703D8A91E850415C8FC215E1A75441D7A3704D94E85041B81E859BDBA754410000008095E8504148E17A54DBA754410000006096E850418FC2F548DBA75441D7A370ED96E8504148E17A34DCA754410AD7A33096E850419A999989E4A75441666666A696E85041D7A3708DE5A7544152B81E2596E850418FC2F598E5A75441333333A395E850411F85EB51E5A7544152B81E4595E85041E17A141EE7A75441D7A3704D94E8504100000010EAA7544152B81E6594E85041295C8F42EBA75441F6285C0F93E850410AD7A340EEA75441713D0A4792E8504133333393EEA754411F85EBA191E8504166666696EFA75441B81E857B90E85041AE47E16AF0A754413D0AD7838FE85041AE47E16AF0A75441713D0AC78EE85041CDCCCC9CF1A754411F85EBE18FE85041713D0A07F2A754411F85EBE18FE850413D0AD7C3F2A7544148E17A548FE85041AE47E1BAF3A75441EC51B8DE8EE85041D7A370EDF4A75441EC51B8DE8EE85041A4703D8AF6A754413D0AD7E38CE85041000000A0F9A75441D7A3709D8CE8504114AE4701FBA75441E17A14AE8AE85041AE47E1EAFEA75441295C8F628CE850411F85EB1100A85441666666168EE850410000005001A8544148E17A248BE850411F85EB1100A85441AE47E18A8AE8504185EB515800A854417B14AE678AE85041AE47E14A03A8544185EB515889E85041B81E85FB03A854411F85EB3188E85041B81E859B06A85441C3F528BC87E85041A4703DAA07A85441B81E850B87E85041CDCCCC9C0AA854419A99998986E850417B14AEB70BA8544114AE47C185E85041CDCCCC8C10A854415C8FC2D584E850415C8FC26516A854411F85EBB184E8504185EB517818A854418FC2F51884E85041E17A14AE1AA85441AE47E1BA83E850418FC2F5F81FA854411F85EBD183E85041D7A3706D23A8544114AE470184E8504114AE472125A85441EC51B8AE83E850419A9999E925A8544148E17AC486E850411F85EB312AA854418FC2F51884E850410AD7A3C02EA85441C3F5283C84E85041295C8FF22FA85441CDCCCCCC85E850411F85EB2130A85441EC51B84E86E85041C3F5288C30A85441EC51B84E86E8504114AE473131A85441EC51B86E85E850419A9999F931A854410AD7A31085E85041713D0A6733A854418FC2F51884E85041CDCCCCDC33A85441EC51B88E84E8504114AE470138A854419A9999E983E85041F6285C3F39A85441B81E85AB82E8504114AE47A13AA85441C3F5285C83E85041F6285CFF3AA85441295C8F0287E85041713D0A473AA85441D7A3701D89E85041D7A3703D3CA854410000009088E85041C3F5289C3CA854416666662688E8504152B81E353DA8544148E17A8488E85041CDCCCC2C3EA854411F85EB3188E85041295C8F4241A85441295C8F2287E850418FC2F56842A854419A9999898AE8504152B81E8546A854415C8FC2858CE85041713D0A0748A85441C3F528AC8DE850415C8FC23548A85441000000D08DE85041000000C047A8544148E17A3490E85041C3F528CC47A854417B14AE3791E85041666666E648A854411F85EB8192E850413D0AD77349A85441EC51B85E92E850410AD7A37048A85441CDCCCC9C93E8504152B81EA546A85441CDCCCC9C93E850417B14AE1746A85441295C8F7291E85041C3F5282C45A85441CDCCCCFC90E8504114AE471144A854411F85EB6190E85041000000D043A85441B81E85FB8EE85041CDCCCCDC3EA8544185EB51788FE85041D7A3701D3DA85441B81E859B8FE85041295C8F223BA854415C8FC20590E85041B81E852B3AA854415C8FC2258FE85041A4703D5A3AA8544114AE47518EE8504114AE47C139A85441EC51B8DE8EE850410AD7A31039A85441B81E85BB8EE8504185EB518836A854410AD7A3608FE85041333333E335A85441EC51B89E90E85041B81E85AB36A85441C3F5282C91E85041333333E335A8544148E17AD492E85041AE47E11A35A85441EC51B83E93E85041E17A143E35A854416666669693E8504152B81EA534A85441D7A370ED94E850419A99997932A854413D0AD71398E85041B81E859B2AA85441713D0A3798E85041A4703D3A29A85441B81E854B97E850418FC2F5F826A854417B14AE9795E85041EC51B8CE24A8544114AE47E196E85041B81E850B22A85441B81E852B98E85041713D0AF722A85441713D0AF799E8504148E17A8423A85441EC51B8CE9BE850416666664622A8544185EB51789FE85041A4703D5A18A85441B81E855BA7E850413D0AD7B307A8544152B81EA5A9E85041295C8FC2FFA754410AD7A370AAE8504114AE4761FDA75441295C8FE2AEE850411F85EBE1F1A75441A4703D9AAFE8504148E17AF4EFA75441EC51B86EB0E85041295C8FE2EDA754417B14AE07B1E85041295C8F02EDA7544114AE47C1B0E85041A4703D5AEBA75441F6285CFFB1E8504185EB51F8E9A7544148E17AA4B2E85041CDCCCC2CE8A7544185EB5178B3E850410AD7A390E6A75441F6285C9FB4E85041713D0A17E5A754418FC2F508B5E8504152B81E05E3A75441C3F5280CB6E85041E17A14FEE0A7544100000010B7E85041F6285C2FDEA754411F85EB11BAE85041713D0AC7DEA754413D0AD793BAE85041C3F5285CDCA75441666666F6BAE85041666666A6DBA754410E0000009A9999A997E8504100000010EAA7544152B81EE597E85041F6285C5FE9A754410AD7A31097E85041C3F5283CE9A754417B14AE7796E85041EC51B8AEE8A754413333338396E85041B81E85ABE7A754410000004097E85041F6285CBFE6A75441B81E854B97E850413D0AD7D3E5A754415C8FC29598E850410AD7A3B0E5A75441EC51B82E99E8504133333323E5A754418FC2F59899E85041C3F528BCE5A75441A4703D1A9AE8504152B81E15E8A754415C8FC27599E85041000000F0EAA75441D7A370AD98E8504133333313EBA754419A9999A997E8504100000010EAA754410C0000001F85EB6193E85041B81E855B2CA85441CDCCCCBC92E85041E17A146E2EA8544114AE47D191E850411F85EB412FA85441C3F5284C90E8504148E17AB42EA854417B14AE5790E85041B81E853B2DA854417B14AE3791E850417B14AE872BA854417B14AE1792E8504185EB51782AA85441F6285C2F92E850411F85EB7128A85441D7A3706D93E850415C8FC26528A854419A99995994E85041B81E85BB29A85441A4703D2A94E85041D7A3701D2BA854411F85EB6193E85041B81E855B2CA854410D000000EC51B8AEEBE850411F85EBD143A754418FC2F5F8ECE850411F85EBD143A7544166666686EDE8504114AE472143A754410AD7A310EDE85041713D0AB742A75441F6285C3FEDE850415C8FC23542A7544166666666EEE85041C3F5289C41A754419A999989EEE85041A4703DFA41A7544148E17AA4EFE850413D0AD79342A7544148E17AA4EFE850411F85EBF142A754411F85EB51EFE85041713D0A9743A75441F6285CFFEEE85041AE47E14A45A754419A9999C9ECE8504185EB51F844A75441EC51B8AEEBE850411F85EBD143A7544112000000AE47E18AF2E8504114AE478140A75441A4703DDAF1E8504114AE47A13FA7544185EB5138F2E850410AD7A3F03EA7544185EB5118F3E850418FC2F5F83DA75441EC51B83EF4E8504185EB51483DA754419A999959F5E850418FC2F5183DA75441B81E859BF7E85041713D0A273AA7544114AE47F1F8E85041CDCCCC7C3BA7544152B81EE5F8E8504148E17A743CA754418FC2F528F8E850411F85EBE13DA754417B14AE57F8E850413D0AD7133FA75441CDCCCC1CF8E85041295C8F5240A75441B81E85BBF6E850410AD7A3B040A75441F6285CCFF5E850418FC2F59840A7544166666636F5E85041B81E85CB41A754410AD7A3C0F4E85041333333E341A75441E17A148EF3E8504114AE478140A75441AE47E18AF2E8504114AE478140A754410C0000001F85EBE1F7E85041B81E85BB35A75441AE47E15AF9E8504185EB519835A75441AE47E15AF9E85041D7A3703D36A754411F85EBA1F9E85041C3F5286C36A7544114AE47F1F8E850411F85EBE136A75441295C8F92F8E85041F6285C6F37A75441295C8F92F8E8504114AE47F137A7544114AE4731F7E850415C8FC2E537A75441C3F5288CF6E85041EC51B89E37A75441AE47E10AF6E85041B81E859B36A754413D0AD7A3F6E850419A99991936A754411F85EBE1F7E85041B81E85BB35A754410B000000C3F528BCB2E850411F85EBB1BEA75441E17A14EEB3E85041C3F528BCBAA75441CDCCCC4CB4E85041CDCCCCDCB9A7544152B81EF5B5E850417B14AE17BAA7544152B81EF5B5E850410AD7A3B0BAA7544185EB51F8B6E850418FC2F578BBA754419A999979B7E85041666666A6BEA7544133333353B6E85041EC51B82EC1A75441D7A3701DB4E8504114AE47A1C0A7544133333393B4E8504152B81EB5BFA75441C3F528BCB2E850411F85EBB1BEA75441110000000AD7A340A2E850415C8FC2F5FAA75441E17A14EEA1E8504148E17A04FCA75441E17A140EA1E85041C3F528FCFCA75441B81E85BBA0E8504185EB5148FBA75441666666F6A0E85041D7A3702DFAA7544100000090A1E850418FC2F578F8A75441EC51B89EA2E85041A4703DAAF5A7544185EB5138A3E850411F85EB41F2A75441666666B6A2E85041F6285C0FF1A754415C8FC2C5A3E8504166666696EFA754418FC2F5C8A4E85041EC51B87EEFA754419A999979A5E850417B14AEA7EDA75441CDCCCC7CA6E85041333333D3ECA75441333333A3A7E85041333333D3ECA7544166666616A7E8504185EB5118F0A7544133333393A3E85041B81E856BF8A754410AD7A340A2E850415C8FC2F5FAA7544109000000CDCCCCECAFE85041333333D3DAA754418FC2F538AEE850411F85EBE1DBA7544166666606ADE850413D0AD783DBA7544148E17A44AEE85041713D0A97D6A75441B81E856BAFE85041E17A14AED6A7544114AE47E1AFE85041295C8FA2D6A754418FC2F5D8B0E85041CDCCCCECD7A754411F85EB91B0E8504152B81E95D9A75441CDCCCCECAFE85041333333D3DAA754410E000000C3F5280CB6E8504100000010D8A754410AD7A300B6E8504152B81E15D6A75441E17A146EB7E85041CDCCCC8CD3A7544166666656B7E8504166666646D3A75441EC51B81EB8E85041295C8F22D3A7544166666636B8E850418FC2F518D0A75441E17A142EB9E850413D0AD793CEA7544148E17A54BAE85041295C8FF2CEA7544100000060BAE85041EC51B8AECFA75441713D0AE7B8E8504166666686D1A754419A999959B8E8504133333343D2A7544114AE4771B8E850413D0AD7D3D3A75441EC51B83EB7E850410AD7A300D7A75441C3F5280CB6E8504100000010D8A7544114000000A4703D8ABCE8504152B81E15C4A7544100000020BCE850410AD7A300C5A75441D7A370ADBCE85041E17A146EC6A7544148E17AD4BDE8504114AE47D1C4A75441713D0A27BEE85041295C8FC2C3A7544185EB51A8BEE850415C8FC2E5C3A754415C8FC255BEE850418FC2F5C8C5A75441A4703D4ABEE850418FC2F588C7A75441B81E85EBBDE85041C3F5286CC9A754417B14AE17BDE850419A9999D9CAA75441295C8F72BCE8504100000020CBA75441D7A370EDBAE85041C3F5282CCBA7544100000060BAE8504166666616C8A75441F6285C8FBAE850415C8FC285C6A75441C3F5284CBBE8504166666656C6A75441C3F5286CBAE8504133333373C4A754419A999919BAE85041713D0AD7C2A75441F6285C8FBAE85041B81E859BC2A754411F85EBE1BAE850411F85EB11C3A75441A4703D8ABCE8504152B81E15C4A75441
+</a>
+
+<b>
+01060000000100000001030000000100000084000000D9C1EF33B3E85041F0F6AF557CA754419F984E1EB3E850415BA6F2837CA75441D74ED2B1B2E85041AA5759397DA75441BE77E7D2B2E85041947AA0337EA75441A08DF740B3E85041A696127A7EA75441FFE5DCE4B4E850413FB8AF487CA75441C441A15AB6E85041BD4FF83E7AA75441912BB3E1B7E850419A38204A78A75441800BD703BFE8504109D6A3C06EA75441B9290A8DBFE85041C29AC03F6EA754418FC2F538C0E850418FC2F5786CA754414B5217EAC0E850410960B89D6BA7544107D30B26C1E850419CE52C4E6BA75441F693272CC1E8504145A2F34B6BA754410AD7A330C1E85041666666466BA754416EA9896EC1E85041C42BC9336BA754410F841E96C2E85041AEF62EC86AA75441F7C82AA9C3E85041FB7440C469A7544120646DC3C3E85041E4E8E6B569A75441C3F528DCC3E85041E17A149E69A7544162D2AE1EC4E85041E120098469A75441B8836406C5E85041CE286B0569A7544107DCA930C6E85041325CF8EB67A754412C542D84C6E85041998A07BD67A75441F934E3F5C7E8504154A88D7066A754410B779827C8E850419064261966A7544100000030C8E85041713D0A0766A75441A8E06434C8E85041C95CA50266A754411E7BA83BC8E850419B8EDFF565A75441E3463C56C9E85041E0432CD964A754414343AD82C9E850412EFA5CB464A754417B14AE07CAE85041F6285C2F64A75441E0955441CAE850412C07731664A75441E8C66C7CCAE8504191B480E563A754415A3A7407CBE85041A3561AAE63A75441E1CBCCFCD1E850416BF4286C5DA75441377B140ED8E85041ED6F3D2A56A7544144999979DDE85041EC1D859B4EA7544169492DF9DEE850417D6F968A4CA7544114AE4711DFE85041A4703D4A4CA7544100000070DFE8504148E17AF44AA7544133333373E0E850419A9999D949A75441B21FE1A4E0E85041DCB6148F49A754418BD1C821E1E85041BB7207AA48A7544164969A05E2E85041C9BACB6E47A75441CC3E014DE2E850413488E41247A75441F6285CEFE2E85041F6285C1F46A7544131A4E7A5E3E8504173AB65AC45A7544149512128E4E85041DF9FB94645A75441C6D30AB8E4E850416385D9E143A75441CDCCCC7CE3E85041CDCCCC4C42A7544114AE4771E3E85041333333E341A75441697918F2E2E850415F01079141A754415B178CE1E2E850418AD0C08841A754416BBD59E0E2E850418BDBAE8B41A75441711E6D88DFE85041F65032C93FA754416EE7B383DFE8504135D6D9C43FA754416BF57207DFE850415429A88B40A75441E3EC2B5FDDE85041A6C5E84943A754410AD7A350D9E850417B14AE074AA75441663F355DD4E85041A09729C850A75441F1AFCCE0D3E85041251C80AD51A75441B0C5B03BD3E850412D39175153A75441F28A8D61D3E85041B6DB934954A754417B14AE77D3E85041B81E85AB54A754416E6DAE74D3E850411F991DC754A75441920BE97DD3E85041CE35AF0355A75441078ED57ED3E8504196A8E40855A7544175935659D3E8504142CAB62C56A75441970A3F43D3E85041C20B8D7F56A75441C27B961BD3E850411B7B9DE956A75441A1F1DFFDD2E85041EB391A2E57A75441E17A14DED2E850416666668657A754412C1F278BD2E850411CC253D957A75441006B196DD2E8504113658CFF57A75441ADAF229BD1E85041B7576E5B59A754412906E15BD1E85041D0D19CA959A754411F85EB41D1E850413D0AD7D359A75441EB8004E4D0E8504172D6CA465AA75441A4E4D370D0E850419CD098E05AA7544113DDC524D0E85041BC71E8305BA7544148E17AD4CFE85041333333935BA75441684EBD90CFE85041C9CD39CD5BA75441E7027671CFE85041E03541EE5BA75441F8ABEF89CEE85041346A76AE5CA7544116BED62BCDE850415D9758675EA754417B102FD6CCE85041B2514C025FA75441EC51B8BECCE85041E17A144E5FA7544190774FFCCAE85041544D2D0061A75441E42B87DCCAE850415CE2AD2761A7544185B724ADC9E850415A14B24562A75441BFC46BCDC8E85041CCD933D362A754414C05F0E1C7E850418AE4CED363A75441BB8DCA62C7E850419513F55864A75441C8B3C8B5C6E850416BAD981665A75441488B31FAC5E850415B1D081A66A75441E276C52BC5E85041F160810367A754413D0AD7D3C4E850413D0AD77367A75441C69FBD77C4E85041951F70C867A75441FF9F7BE0C3E85041E011D36A68A75441A9F36E45C2E85041117AEC8B69A754411E48074FC0E850412BB19F616BA75441C8A29C4DC0E85041457683626BA75441DACEA442C0E8504144A2006D6BA75441282CED18C0E85041184E08B76BA75441ACB1FBC2BFE8504100A33B986CA75441016FFF84BFE850415716B95A6DA75441264FBE84BEE8504154D898726EA754416CAC4C84BDE850414C08AD946FA75441DB37F154BCE85041577B79B470A7544136634FEDBBE85041023A063171A7544100000040BBE85041AE47E10A72A754418AE591F7BAE85041CF1A093D72A754412437F51ABAE85041B8380DFC72A75441AD917468B9E85041D03C0AEF73A754417EF6EB9EB8E85041BA8700DA74A754411F84DC00B8E85041113B159E75A754411C64FDFFB7E850411E09409F75A7544163B2FADCB6E850413C6E363F77A75441C301B5BBB6E8504199D8DD7377A75441295C8F82B6E850417B14AED777A754411D3AFF7BB6E850418466B0D877A75441F236C077B6E850418F9E68DF77A754416E9D6630B5E850414308DF1878A75441202B3101B5E850417529EE1278A7544113CC32ABB4E850411DDF262078A75441229E972BB3E85041D8BB60087AA75441C863DF25B3E85041A71212147AA7544178AD4AEDB2E850414CF24A457BA754410F7C09FBB2E85041B71CC24F7BA7544100000090B3E850415C8FC2B57BA75441D9C1EF33B3E85041F0F6AF557CA75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>342860 - 422974
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000005000000010300000003000000BE000000AE47E1FA18E950417B14AE975FA65441AE47E13A18E95041B81E85CB5EA65441EC51B80E17E95041B81E859B5EA65441EC51B8EE15E95041F6285C4F5CA65441295C8F5215E950417B14AE075CA65441EC51B8CE14E950417B14AE175BA65441295C8FA213E95041B81E852B5CA65441295C8FE212E95041333333135CA65441295C8FF211E95041333333F35AA65441713D0AC710E95041B81E85AB5AA65441713D0AA70FE950417B14AE9759A65441AE47E1FA0FE95041F6285CEF58A65441AE47E1FA0FE950417B14AEF756A65441EC51B89E0EE95041333333B355A65441AE47E1EA0DE95041333333E355A65441295C8FB20CE950417B14AE7755A65441EC51B88E0CE95041333333C354A65441713D0A870BE950413333339354A65441EC51B87E0AE95041333333F354A65441EC51B8DE0AE950417B14AE5754A65441EC51B87E0AE95041B81E85FB52A65441AE47E15A0AE95041B81E851B51A65441713D0A570BE95041B81E85EB50A65441AE47E13A0CE950413333331350A65441AE47E1BA0DE950417B14AED74FA65441AE47E11A0EE95041333333834FA65441EC51B8DE0DE95041333333F34EA65441295C8FF20BE95041B81E852B4DA65441AE47E14A0BE95041B81E859B4CA65441EC51B8AE0AE95041333333934BA65441EC51B8AE0AE95041F6285C4F4AA65441295C8F020BE950417B14AE074AA65441AE47E1AA0BE95041F6285C1F4AA65441AE47E1AA0BE950417B14AE2748A65441EC51B80E0BE95041F6285C1F47A65441295C8F020BE950413333332346A65441713D0A670AE950417B14AE8745A65441AE47E1CA09E95041B81E85AB45A65441EC51B8FE08E950413333330345A65441EC51B8CE08E95041B81E858B44A65441713D0AB708E950413333338343A65441295C8FB209E950417B14AE1743A65441AE47E1CA09E950417B14AE2742A65441AE47E1AA08E95041F6285CEF40A65441713D0AE708E950417B14AEA740A65441713D0AE708E950417B14AE573FA65441713D0AF707E95041F6285C3F3FA65441295C8F4207E95041F6285CDF3EA65441295C8F4207E95041B81E85FB3DA65441713D0A9707E95041B81E853B3DA65441AE47E14A08E95041333333533DA65441295C8F8209E950417B14AEB73CA65441AE47E16A09E950417B14AE073BA65441EC51B8FE08E95041B81E85DB39A65441AE47E11A0BE95041F6285C1F38A65441EC51B83E0BE950413D0AD78334A65441295C8FF20BE95041B81E85DB33A65441EC51B8BE0CE950413D0AD79333A65441AE47E12A0DE950417B14AEE733A65441295C8F620EE950413D0AD70333A65441EC51B81E0DE95041F6285C1F32A65441AE47E12A0DE95041333333F330A65441713D0A970DE95041F6285CAF2FA65441EC51B81E10E95041F6285CAF2CA65441713D0AD70FE950417B14AE472BA65441713D0A2711E950417B14AEC729A654413333335312E950417B14AE6729A654413333338312E95041333333E328A65441EC51B84E16E95041F6285C1F26A654413333330317E95041F6285C7F26A65441AE47E1DA17E950417B14AE0726A65441EC51B8EE18E95041B81E85FB25A65441713D0A6719E95041B81E855B26A65441AE47E1AA1AE95041F6285C1F26A65441EC51B81E1CE95041F6285C4F26A65441333333431CE950413333330327A65441EC51B8AE1CE950413333339327A65441AE47E1BA1CE950417B14AE1728A65441713D0A371CE95041B81E859B28A65441713D0AF71CE950417B14AE6729A65441713D0A871DE950417B14AE6729A65441EC51B82E1EE95041B81E85DB27A65441AE47E16A1EE95041B81E856B25A65441AE47E1DA1DE95041F6285C8F25A65441EC51B8DE1CE950417B14AE1725A65441713D0A371CE95041B81E85EB23A65441713D0AA71BE950417B14AE6723A65441333333B31BE95041333333F321A65441EC51B85E1BE950417B14AE5721A65441713D0A771EE95041333333B31FA65441713D0A071FE95041B81E851B21A65441333333B31EE95041B81E85DB21A65441EC51B8EE1EE95041F6285C5F22A65441333333E31EE950417B14AE3723A65441AE47E1FA1EE95041B81E851B24A65441AE47E19A1EE95041333333F324A65441AE47E14A20E950413333338325A65441AE47E1DA20E95041333333F324A65441AE47E1CA21E950417B14AE0723A65441EC51B8BE21E95041B81E850B22A65441713D0A7721E95041B81E85AB21A65441333333F320E950417B14AE1722A65441EC51B83E20E950417B14AEE721A65441713D0AC71FE950417B14AE3720A654413333339320E950417B14AE3720A654413333331322E95041333333F31EA65441333333D322E95041F6285C2F1FA65441333333C323E950417B14AE171FA65441EC51B87E25E95041B81E85FB1CA654413333330326E95041333333C31BA65441713D0AF725E95041F6285C0F1BA65441713D0A7727E95041B81E858B1AA65441AE47E1BA28E95041333333C318A65441AE47E1FA27E950417B14AE8718A65441AE47E19A27E950417B14AE2718A65441AE47E10A27E95041F6285C3F18A65441713D0A8726E95041F6285C0F18A65441EC51B8AE25E950417B14AE2718A65441AE47E12A25E95041F6285CDF17A654413333331325E95041F6285C7F17A654413333335324E95041B81E85FB16A65441713D0AE723E950413333332316A65441AE47E14A23E950413333339315A65441713D0A1721E95041B81E85DB15A65441333333A31FE950417B14AE6717A65441EC51B82E1EE95041F6285CDF17A65441713D0AC71CE95041B81E853B19A65441333333C31AE950417B14AE371AA65441EC51B81E19E95041F6285CCF1BA65441EC51B86E17E950417B14AE771CA65441AE47E12A16E95041F6285C7F1DA65441EC51B86E14E95041F6285C3F1EA65441333333D313E95041B81E853B1FA65441AE47E1DA11E95041F6285C1F20A65441EC51B84E10E95041B81E85DB21A65441EC51B82E0FE95041B81E853B22A65441333333630EE950417B14AE0723A65441333333D30DE95041B81E851B24A65441EC51B8BE0CE95041F6285C9F24A65441AE47E13A0CE95041F6285C9F24A65441713D0A170CE95041B81E858B26A65441EC51B86E0BE950417B14AE5727A65441713D0A970AE950417B14AE5727A65441713D0A4709E95041B81E859B28A65441713D0AB708E950417B14AEA728A654413333336308E950417B14AEE727A65441AE47E13A09E950417B14AE9726A65441713D0AE708E95041B81E853B25A65441713D0AF707E950417B14AE1725A654413333335306E950413333337326A65441AE47E17A05E950417B14AEC726A65441713D0A0704E950417B14AE1728A65441EC51B8CE02E950417B14AE7728A65441713D0AD700E950417B14AEC729A65441AE47E11A00E95041E17A141E2BA65441D7A3701DFDE850417B14AE8732A65441F6285C7FFCE850411F85EB5138A65441713D0A87FCE850413D0AD73339A65441EC51B82EFDE850413D0AD73339A65441EC51B85EFDE85041F6285C9F39A6544133333323FDE850413D0AD7533AA6544133333393FCE850413D0AD7533AA6544185EB51F8FDE85041AE47E1DA44A65441EC51B80EFFE850413D0AD7C348A65441713D0A87FFE85041B81E851B48A65441EC51B85E00E950413D0AD73348A65441EC51B81E01E950417B14AEB748A65441EC51B80E02E950413D0AD7C34BA65441333333D301E950417B14AE174CA65441AE47E12A01E95041F6285C2F4CA654413333332300E95041B81E85FB4CA65441713D0AA700E950413D0AD7D34DA65441AE47E1CA03E95041B81E858B50A65441EC51B85E06E950413D0AD72352A65441EC51B83E08E950417B14AE2754A65441EC51B8FE08E95041B81E850B55A65441333333B309E950417B14AE7755A65441333333E309E95041F6285C1F56A65441333333C30BE950413D0AD73357A65441EC51B88E0CE950413D0AD78358A65441333333030EE950413D0AD7635AA65441713D0A170FE95041F6285C9F5AA65441AE47E19A0FE95041F6285C8F5BA65441333333A310E950417B14AE075CA65441713D0A9710E95041B81E85EB5CA65441713D0A2714E95041F6285CDF5FA65441AE47E15A19E950417B14AE1764A65441AE47E13A1BE950417B14AE7761A65441713D0A9719E95041333333A35FA65441AE47E1FA18E950417B14AE975FA6544109000000295C8FA204E950417B14AEC74AA65441AE47E11A05E95041333333E349A65441AE47E17A05E95041B81E85AB48A65441295C8FC205E950413333339348A65441713D0A3707E95041F6285C4F4AA65441295C8FB206E950417B14AE274BA65441EC51B8FE05E950417B14AE274BA65441713D0AB705E950417B14AEC74AA65441295C8FA204E950417B14AEC74AA6544110000000AE47E1BA01E950413333332346A65441295C8FB200E950413333335346A65441295C8FC2FFE850413333338343A65441295C8F32FFE850413333339342A65441AE47E10A00E950417B14AE3741A65441295C8F1201E95041F6285CEF40A65441295C8F7201E95041B81E852B41A65441713D0A5702E950413333334341A65441EC51B8FE02E95041F6285CEF40A65441713D0A0704E95041B81E854B42A65441713D0AD703E95041F6285CCF42A65441295C8F4204E95041F6285C7F44A65441713D0AA703E950413333336345A65441AE47E10A03E95041F6285CFF45A65441295C8FC202E95041B81E856B46A65441AE47E1BA01E950413333332346A654410103000000010000000F0000007B14AE770FE95041E17A14EED5A65441295C8FD210E9504152B81E65D6A65441EC51B83E11E9504100000070D6A65441295C8FD210E95041333333E3D5A654418FC2F52811E9504148E17AD4D4A65441E17A146E12E95041C3F5281CD4A65441295C8F4212E95041F6285CAFD3A65441B81E857B10E9504133333343D3A654410000003010E95041713D0AF7D2A654418FC2F5D80FE95041D7A3702DD3A65441AE47E1EA0EE95041666666B6D2A65441EC51B89E0EE95041E17A144ED3A6544148E17AB40EE95041713D0A47D4A6544185EB51680EE9504148E17A24D6A654417B14AE770FE95041E17A14EED5A6544101030000000100000022000000295C8F3216E95041F6285C3FDAA65441EC51B87E16E95041295C8FB2D9A65441EC51B87E16E95041A4703DFAD8A654411F85EB6117E9504185EB5178D8A654417B14AE5717E9504166666646D9A654411F85EB4117E95041D7A370BDD9A654411F85EB6117E950413D0AD7F3D9A654413D0AD7C317E950411F85EB91D9A65441333333F318E950418FC2F5E8D9A6544185EB51E818E9504166666646D9A65441F6285CFF1BE9504152B81EB5D7A654415C8FC2351CE9504133333333D7A65441333333E31CE950411F85EBF1D6A65441AE47E17A1DE95041EC51B87ED7A65441C3F528DC1DE950411F85EBA1D5A65441295C8FC21CE95041B81E859BD6A65441666666561CE950411F85EBD1D6A65441EC51B8BE1BE95041EC51B80ED6A65441A4703DBA1AE95041EC51B82ED6A654413D0AD7631AE950411F85EBF1D6A6544152B81E7519E950415C8FC285D6A654410AD7A35018E95041AE47E17AD6A654417B14AE5717E950411F85EBF1D6A654416666661617E9504148E17A94D7A65441295C8F3216E950419A999989D7A65441EC51B82E15E95041CDCCCC4CD8A654416666662613E95041C3F5280CD8A65441B81E851B13E95041EC51B8AED8A65441D7A3709D13E9504114AE4771D9A65441A4703D2A14E95041B81E853BD9A6544152B81E1514E950413D0AD7F3D9A65441295C8FC214E95041295C8FB2D9A65441C3F528DC15E95041295C8FB2D9A65441295C8F3216E95041F6285C3FDAA6544101030000000A00000003020000295C8F024AE95041F6285C7FB3A65441AE47E12A49E95041F6285C4FB3A65441295C8FA249E95041B81E857BB1A65441295C8FB24BE9504133333323B2A65441AE47E1FA4EE95041B81E85FBAFA65441EC51B8AE4FE950417B14AE67ADA65441295C8FD24FE95041B81E855BAAA65441713D0A5750E950417B14AE37AAA65441295C8FC250E95041F6285C3FA8A65441AE47E17A50E950417B14AE37A7A65441295C8FD24FE95041B81E852BA7A65441AE47E1FA4EE95041F6285C0FA8A65441295C8F624DE95041F6285C3FA8A65441EC51B86E4DE95041F6285C4FA7A65441EC51B8FE4DE95041B81E85CBA6A65441295C8FC24DE95041B81E853BA6A65441EC51B84E4CE95041F6285CFFA5A65441713D0A474BE950417B14AEC7A4A65441AE47E10A4BE9504133333313A4A65441EC51B83E4AE95041B81E858BA4A65441AE47E18A49E95041F6285CAFA4A65441713D0AA748E950417B14AE07A4A65441295C8FF247E95041F6285CFFA2A65441713D0AD748E95041B81E85DBA2A65441295C8FE248E95041B81E85FBA0A65441AE47E10A48E950417B14AEB79FA65441713D0AE747E95041333333439EA65441EC51B8AE46E950417B14AE779DA65441295C8FA246E95041F6285C9F9CA65441713D0A3746E95041F6285CDF9BA65441713D0A3746E95041B81E856B9AA65441295C8FB245E95041B81E859B9AA65441EC51B80E44E950413333336399A65441295C8F9244E95041F6285CDF98A65441AE47E11A44E95041B81E855B98A65441EC51B8DE43E950417B14AEA797A65441295C8FB242E95041F6285C8F97A65441AE47E12A43E950417B14AEE796A65441713D0AE741E950413333339396A65441AE47E1EA40E95041B81E85FB94A65441295C8F7240E95041333333B394A65441EC51B81E40E95041B81E853B94A65441713D0A7742E95041F6285C1F92A65441AE47E16A42E950413333335391A65441EC51B82E45E95041F6285C6F90A65441EC51B85E45E95041B81E85BB8FA65441713D0A2747E95041F6285C1F8FA65441AE47E10A48E95041333333A38FA65441EC51B85E48E950417B14AE5790A65441295C8F1249E95041B81E857B90A65441295C8F024AE950413333330390A65441AE47E1CA48E95041B81E853B8EA65441713D0AD748E95041F6285C3F8DA65441EC51B8FE47E950417B14AEC78CA65441EC51B86E47E95041F6285CEF8BA65441713D0A2747E95041F6285C6F8AA65441295C8FA246E950417B14AE278AA65441EC51B87E46E950417B14AEC789A65441EC51B88E45E95041333333A389A65441295C8F2245E95041F6285C0F8AA65441AE47E17A44E95041B81E856B8BA65441AE47E1BA43E95041B81E859B8BA65441295C8F9241E95041F6285CDF8CA65441AE47E12A40E95041F6285CAF8CA65441AE47E1CA3FE95041B81E852B8CA65441AE47E1EA3DE95041F6285C7F8CA65441295C8F223CE95041333333438CA65441295C8FC23BE950417B14AEB78AA65441AE47E1EA3AE950417B14AE9789A65441713D0AF73AE95041B81E850B88A65441EC51B8AE3AE950417B14AE8787A65441EC51B8EE39E950413333333387A65441295C8FE239E95041F6285CAF86A65441EC51B88E39E95041B81E858B86A65441713D0A4739E95041B81E853B85A65441295C8F8239E95041B81E85DB84A65441EC51B8FE38E95041B81E854B84A65441713D0AB738E950417B14AE3783A65441295C8FA237E950413333330381A65441EC51B87E37E950417B14AEA77FA65441AE47E15A37E95041333333337EA65441295C8FB236E95041333333837CA65441713D0AF737E950417B14AE977AA65441295C8F6238E950417B14AE1779A65441AE47E19A39E950417B14AE5778A65441713D0A673AE950417B14AE5778A65441713D0AC73AE95041F6285C0F78A65441295C8FA23AE95041B81E855B77A65441295C8FD23AE95041F6285C2F76A65441AE47E1DA3BE950417B14AEB775A65441713D0AA73CE950417B14AE1773A65441713D0A973DE950417B14AEC771A65441713D0AE73EE950417B14AE6771A65441EC51B88E3FE95041F6285CAF71A65441AE47E16A3FE95041B81E85CB70A65441EC51B8AE3DE950417B14AED770A65441295C8F123DE95041F6285C5F70A65441EC51B85E3CE95041F6285C8F70A65441EC51B86E3BE950413333335370A65441295C8F423AE95041F6285C8F70A65441EC51B85E39E950413333335370A65441AE47E17A38E95041F6285C5F70A65441EC51B84E37E95041333333F36FA65441AE47E1EA34E95041333333F36FA65441EC51B86E35E95041333333536DA65441295C8FD234E95041333333536DA65441EC51B87E34E95041333333C36CA65441AE47E1FA33E95041333333236DA65441713D0A3734E95041F6285CBF6DA65441713D0AE732E950417B14AE676EA65441AE47E18A31E95041333333836DA65441295C8FE230E950417B14AEA76DA65441295C8F2230E95041F6285CFF6CA65441AE47E15A31E95041F6285C3F6CA65441713D0A6731E950417B14AE076BA65441713D0A1730E95041F6285C8F6AA65441EC51B8AE2EE95041333333E36AA65441295C8FE22DE95041F6285CAF6BA65441295C8F622CE950417B14AE376BA65441295C8F022CE950413333336369A65441713D0AB729E95041F6285C7F68A65441AE47E1BA28E95041333333A368A65441AE47E18A25E950417B14AEB766A65441AE47E18A25E95041B81E85BB65A65441713D0A7724E95041B81E853B64A65441713D0A8723E950417B14AEB763A65441295C8FA222E95041B81E855B65A65441713D0A1721E95041F6285C1F65A65441EC51B84E1FE95041B81E85AB63A65441EC51B8EE1EE95041333333C363A65441713D0AA71EE950413333335364A65441AE47E12A1FE95041B81E85FB64A65441713D0A671FE95041F6285C0F66A65441AE47E10A1EE950417B14AE8766A65441AE47E16A1EE95041F6285C5F67A65441713D0A671FE95041B81E855B68A65441AE47E12A22E950413333333369A65441EC51B85E24E95041333333B36AA65441EC51B8AE25E95041333333A36BA65441AE47E1AA26E95041B81E85EB6BA65441295C8F5227E95041F6285C4F6BA65441EC51B84E28E95041333333736BA65441295C8F9229E950417B14AE176DA65441AE47E16A2AE95041B81E859B6DA65441713D0A872FE950413333332370A65441295C8F1231E95041333333A371A65441713D0A9731E950417B14AEB772A65441AE47E13A33E95041F6285C1F74A65441713D0AF731E95041B81E85DB78A65441EC51B87E31E950417B14AE177CA65441AE47E12A31E950417B14AEA77CA65441EC51B84E31E950417B14AEF77DA65441EC51B85E30E95041333333037EA65441295C8FC22FE95041333333937EA65441EC51B87E2EE950417B14AE0780A65441713D0A572FE95041B81E85BB80A65441713D0A872FE95041B81E852B80A65441EC51B8EE30E95041333333237FA65441713D0A6731E95041333333937EA65441295C8F0232E950417B14AE777FA65441713D0AE732E95041333333E37FA65441295C8F8233E95041F6285C4F80A65441EC51B83E32E95041B81E85DB81A65441AE47E14A32E95041333333B382A65441AE47E11A32E95041F6285C4F83A65441295C8F9232E95041333333F384A65441713D0A7733E95041333333C384A65441EC51B8EE33E95041F6285C5F85A65441295C8F8233E95041333333E385A65441AE47E1CA33E95041F6285CAF86A65441AE47E1CA33E950413333339387A65441713D0A6734E950417B14AE1788A65441EC51B89E35E95041B81E85FB88A65441EC51B8EE36E95041B81E85FB88A65441713D0A7736E95041333333638AA65441AE47E1BA34E95041F6285CEF8BA65441AE47E1FA33E95041F6285CFF8DA65441713D0AE735E95041333333B391A65441295C8F8236E95041333333B391A65441EC51B8EE36E95041B81E85AB93A65441EC51B83E38E950417B14AE1794A65441AE47E11A3BE950417B14AEC798A65441EC51B80E3BE950417B14AE479AA65441713D0A673AE95041333333139BA65441AE47E1EA3AE950417B14AE679BA65441295C8F923BE95041F6285CCF9CA65441EC51B8FE3BE950417B14AEE79CA65441EC51B8EE3CE95041333333B39DA65441713D0A073DE950417B14AE379EA65441AE47E16A3CE950417B14AE579FA65441AE47E13A3CE950417B14AEF7A1A65441713D0AA73CE95041B81E854BA2A65441EC51B8EE3CE950417B14AE17A3A65441713D0A673DE950417B14AE77A3A65441EC51B87E3DE950417B14AE07A4A65441295C8F623EE95041B81E85EBA4A65441AE47E16A3FE95041F6285CDFA4A65441295C8F823FE95041F6285C6FA5A65441AE47E18A40E95041F6285C6FA5A65441EC51B89E41E950417B14AE47A6A65441EC51B82E42E9504133333353A6A65441EC51B8BE42E950417B14AE07A7A65441EC51B8BE42E95041F6285CCFA8A65441AE47E15A43E9504133333343AAA65441AE47E12A43E95041333333D3AAA65441295C8F4243E95041F6285C2FACA65441AE47E10A42E9504133333303AEA65441295C8F6241E950417B14AE27AEA65441AE47E14A41E95041F6285CDFADA65441295C8F823FE95041B81E85FBACA65441EC51B85E3FE95041B81E856BACA65441AE47E1DA3EE9504133333363ABA65441EC51B84E3DE95041333333B3ACA65441EC51B8BE3CE950417B14AE97ADA65441713D0AB73BE950417B14AEE7ABA65441EC51B82E39E950417B14AEB7ABA65441EC51B8FE38E95041F6285C6FABA65441295C8FD237E95041F6285CCFABA65441295C8FA237E95041B81E85BBAAA65441295C8FB236E950417B14AE37AAA65441713D0A7736E95041333333B3A9A65441AE47E17A35E950417B14AE37AAA65441295C8F0235E95041F6285CEFA9A65441713D0AC734E9504133333343AAA65441EC51B8AE34E9504133333333ABA65441713D0AD733E95041B81E854BABA65441713D0A4733E950417B14AEF7AAA65441713D0A5732E95041F6285C9FABA65441713D0A8732E950417B14AED7ACA65441EC51B82E33E95041F6285CAFADA65441713D0A1733E95041B81E850BAFA65441295C8F5233E9504133333313B0A65441AE47E17A35E95041F6285CAFB0A65441295C8F2236E9504133333383B2A65441295C8F1237E95041B81E852BB3A65441AE47E15A37E950417B14AE57B4A65441295C8FD237E95041F6285C6FB4A65441AE47E1DA38E95041B81E851BB4A65441EC51B82E39E95041333333D3B3A65441713D0A673AE95041B81E851BB4A65441713D0AF73AE95041F6285C0FB4A65441713D0A573BE95041B81E85ABB4A65441295C8FF23BE95041F6285C2FB5A65441AE47E19A3CE950417B14AE07B6A65441295C8F223FE950417B14AEB7B7A65441295C8F523FE95041B81E857BB7A65441713D0AD73FE950417B14AEE7B7A65441713D0AD73FE9504133333393BAA65441EC51B86E3EE95041B81E859BBBA65441EC51B86E3EE9504133333313BCA65441713D0AE73EE950417B14AE07BCA65441EC51B85E3FE95041B81E85EBBCA65441295C8F4240E950417B14AEB7BDA65441295C8FB23FE950417B14AE37BFA65441EC51B84E3DE950417B14AE27C0A65441295C8FD23AE950417B14AE67C2A65441EC51B88E39E95041B81E852BC2A65441AE47E1CA36E95041F6285C8FC1A65441EC51B88E36E95041F6285C4FC2A65441295C8FE236E95041333333D3C2A65441295C8FE236E95041F6285C6FC3A65441AE47E13A36E950417B14AEB7C3A65441713D0A2735E950417B14AED7C4A65441AE47E12A34E950417B14AE07C5A65441AE47E1FA33E950417B14AE97C5A65441AE47E10A33E950417B14AE57C6A65441EC51B89E32E950417B14AE67C5A65441AE47E11A32E950417B14AE37C5A65441EC51B8AE31E95041B81E85CBC4A65441295C8F5230E95041333333B3C4A65441AE47E1DA2FE950417B14AE97C5A65441AE47E1DA2FE950417B14AEF7C5A65441AE47E14A2FE95041333333C3C6A65441AE47E1BA2EE95041F6285CCFC6A65441EC51B81E2EE9504133333353C7A65441AE47E19A2DE9504133333353C7A65441295C8F122BE950417B14AEC7C8A65441AE47E19A2AE950417B14AE97C8A65441713D0A472AE95041F6285C0FC9A65441713D0A6728E9504133333373C8A65441AE47E17A26E95041333333A3C8A65441AE47E15A25E950417B14AE47C7A65441AE47E18A25E95041333333F3C6A65441AE47E1FA24E95041B81E856BC4A65441295C8FF223E9504133333393C3A65441713D0A2723E95041B81E85DBC3A65441713D0A9722E950417B14AEA7C4A65441AE47E1BA22E95041B81E858BC5A65441EC51B8FE20E95041B81E850BC7A65441AE47E1DA20E950417B14AEA7C7A65441713D0A471EE95041B81E85CBC7A65441713D0A271DE9504133333353C7A65441295C8F321DE95041B81E85ABC6A65441EC51B82E1BE95041B81E851BC6A65441295C8F321AE950417B14AE37C5A65441EC51B8FE17E95041F6285C5FC4A65441EC51B80E17E95041F6285C5FC4A65441713D0AA715E95041F6285CCFC3A65441AE47E19A15E95041F6285C0FC3A65441EC51B89E14E950417B14AEB7C3A65441295C8F3214E9504133333393C3A65441AE47E13A12E950417B14AE87C6A65441295C8F7213E95041F6285C9FC6A65441713D0A5714E95041F6285CFFC6A65441713D0AB714E95041B81E85ABC6A65441713D0A7715E95041B81E850BC7A65441713D0A7715E95041B81E85CBC7A65441EC51B88E15E95041F6285CAFC8A65441EC51B8CE14E95041F6285C9FC9A65441EC51B86E14E950417B14AE87C9A65441EC51B8DE13E95041B81E853BCAA65441295C8FD213E950417B14AE77CAA65441AE47E14A14E95041F6285C8FCAA65441295C8FC214E95041F6285C1FCBA65441AE47E13A15E95041333333B3CAA65441295C8FD216E95041B81E85FBCAA65441EC51B8DE16E9504133333383CAA65441AE47E14A17E950417B14AE47CAA65441AE47E11A17E95041B81E859BC7A65441713D0AA718E9504133333353C7A65441AE47E1EA19E95041333333C3C6A65441713D0A571AE950417B14AE37C8A65441713D0AF719E9504133333333C9A65441EC51B8AE19E95041333333C3C9A65441AE47E10A1BE95041B81E853BCAA65441EC51B81E1CE9504133333323CAA65441EC51B8DE1CE950417B14AE77CAA65441295C8F021DE95041F6285CEFCAA65441EC51B86E1DE95041B81E855BCBA65441EC51B86E1DE95041333333A3CBA65441EC51B81E1CE95041333333A3CBA65441EC51B8EE1BE9504133333313CBA65441713D0A271AE95041F6285C7FCBA65441295C8FA219E950417B14AEC7CBA65441AE47E14A1AE9504133333363CCA65441AE47E16A1BE9504133333363CCA65441EC51B87E1CE95041B81E859BCDA65441713D0A271DE95041333333E3CDA65441EC51B8FE1DE95041F6285CEFCDA65441713D0A471EE9504133333313CEA65441713D0AD71EE950417B14AED7CDA65441EC51B8BE21E95041F6285C8FCDA65441EC51B84E22E95041F6285C2FCDA65441713D0AC722E95041B81E856BCDA65441AE47E17A23E9504133333353CDA65441EC51B82E24E95041333333E3CDA65441295C8FC223E950417B14AEB7CFA65441AE47E1DA23E95041F6285C8FD0A65441295C8F7225E95041F6285CEFD0A65441AE47E1EA25E95041F6285C8FD0A65441EC51B8CE26E95041B81E85CBD0A65441713D0A4727E950417B14AE97D1A65441713D0AE726E950417B14AE77D3A65441EC51B85E27E95041B81E858BD4A65441EC51B8CE26E95041F6285C3FD5A65441AE47E1CA24E95041B81E851BD5A65441EC51B89E23E95041B81E85FBD3A65441AE47E14A23E95041F6285C1FD4A65441295C8F3223E95041F6285C0FD5A65441713D0A6722E950417B14AE87D5A65441295C8FD222E95041B81E850BD6A65441EC51B87E22E95041F6285C5FD6A65441AE47E19A21E95041F6285CCFD5A65441295C8F8221E9504133333323D6A65441295C8F6223E95041F6285CAFD7A65441EC51B89E23E950417B14AEC7D7A65441713D0AB723E9504133333313D7A65441AE47E1EA25E95041F6285C7FD7A65441AE47E14A26E95041B81E85FBD6A65441295C8F5227E95041B81E85CBD6A65441EC51B81E28E950417B14AE37D7A65441713D0A172AE95041B81E85CBD6A65441295C8FA22BE95041333333F3D5A65441713D0A772DE950417B14AE77D6A65441EC51B8EE2DE950417B14AEC7D7A65441EC51B80E2FE95041333333F3D8A65441EC51B8CE2FE950417B14AE17D9A65441EC51B82E30E95041F6285CCFD8A65441295C8F8230E9504133333323D9A65441AE47E12A31E95041F6285C2FD9A65441295C8FA231E950417B14AE07DAA65441AE47E17A32E950417B14AE37DAA65441713D0A4733E95041B81E85ABDBA65441EC51B89E32E950417B14AEA7DCA65441AE47E13A33E95041F6285C1FDDA65441713D0A7733E950417B14AEF7DDA65441AE47E1FA33E95041333333C3DEA65441AE47E1FA33E95041B81E859BDFA65441AE47E1EA34E950417B14AEF7E3A65441EC51B87E34E95041F6285CBFE5A65441AE47E1BA34E95041F6285C8FE8A65441713D0A0734E95041F6285C4FE9A65441EC51B8BE33E95041B81E857BEAA65441EC51B8FE32E95041F6285CCFEAA65441EC51B80E32E950417B14AE57EAA65441AE47E15A31E95041F6285CDFE9A65441EC51B87E31E95041F6285C7FE9A65441EC51B88E30E95041B81E859BE8A65441AE47E10A30E950417B14AE77E8A65441295C8FB22DE95041F6285C3FE7A65441AE47E13A2DE950417B14AE17E8A65441295C8FC22CE9504133333373ECA65441AE47E12A2EE950417B14AE37ECA65441EC51B81E2EE95041B81E856BEBA65441295C8F022FE950417B14AE17EBA65441295C8F2230E95041F6285CBFEBA65441295C8F7231E95041F6285C1FECA65441AE47E15A31E95041B81E856BEBA65441295C8F3232E95041B81E850BEBA65441295C8F8233E95041B81E858BECA65441295C8F6232E950417B14AEE7EDA65441295C8F6232E95041B81E859BEEA65441713D0AE732E95041B81E852BEFA65441295C8F9232E95041B81E85BBEFA65441713D0A9734E95041F6285C4FEFA65441295C8FD234E9504133333383EEA65441AE47E15A34E950417B14AE17EEA65441EC51B84E34E950417B14AE87EDA65441EC51B83E35E9504133333333EDA65441AE47E19A36E950417B14AE87EDA65441713D0AD736E95041B81E85CBEEA65441AE47E1BA37E950417B14AE57F0A65441AE47E17A38E9504133333373EFA65441AE47E1CA39E950417B14AED7EEA65441713D0A673AE95041333333A3EFA65441713D0A973AE9504133333393F0A65441AE47E13A3CE950417B14AEE7F0A65441713D0A773CE95041B81E856BF1A65441295C8F723DE95041F6285CAFECA65441EC51B88E3CE95041F6285C0FEDA65441295C8F023BE9504133333303EDA65441295C8F423AE950417B14AE37ECA65441EC51B81E3AE95041F6285C5FEBA65441713D0A673AE950417B14AEE7EAA65441EC51B8BE39E950417B14AE27EAA65441AE47E1DA38E95041B81E851BEAA65441AE47E11A38E95041F6285CAFE9A65441AE47E18A37E95041F6285C5FE8A65441713D0AA736E95041B81E85DBE7A65441713D0A2735E95041F6285C0FE7A65441EC51B89E35E950417B14AEF7E0A65441AE47E10A36E95041F6285C5FDFA65441AE47E19A36E95041F6285C9FDEA65441713D0A0737E95041F6285C1FDDA65441713D0A2738E950417B14AED7DCA65441295C8FF238E950417B14AE07DDA65441295C8F8239E950417B14AE07DDA65441295C8F123AE95041F6285C4FDDA65441295C8FD23AE95041F6285C1FDDA65441295C8F323BE9504133333383DCA65441713D0AE73BE9504133333323DCA65441EC51B8FE3BE95041B81E85BBDAA65441EC51B88E3CE9504133333313DAA65441EC51B8FE3BE95041B81E856BD9A65441713D0AE73BE9504133333393D8A65441AE47E1AA3BE950417B14AEC7D7A65441EC51B82E3CE950417B14AE67D7A65441713D0A473CE950417B14AEA7D6A65441AE47E18A3DE950417B14AE57D5A65441713D0A273EE95041B81E85ABD5A65441295C8F923EE950417B14AEC7D4A65441AE47E12A40E950417B14AE67D4A65441AE47E12A40E950417B14AEF7D4A65441EC51B84E40E95041F6285C9FD5A65441EC51B84E40E9504133333383D6A65441713D0A473FE950417B14AEA7D6A65441713D0A473FE95041B81E855BD7A65441EC51B8FE3EE9504133333303D8A65441295C8FB23FE95041B81E857BD8A65441295C8F7240E95041B81E854BD8A65441295C8F3241E95041F6285CAFD7A65441EC51B8FE41E95041B81E858BD7A65441295C8F1243E95041B81E857BD8A65441AE47E1FA42E95041F6285CFFD8A65441EC51B87E43E95041B81E85CBD9A65441713D0A9743E95041B81E858BDAA65441295C8F6244E95041F6285CDFDAA65441295C8F3244E95041333333C3DBA65441AE47E14A47E950417B14AE77DCA65441295C8F5248E95041F6285C5FDCA65441AE47E1CA48E9504133333313DDA65441EC51B83E4AE9504133333373DDA65441713D0A574AE95041B81E852BDDA65441713D0A374CE95041B81E858BDDA65441AE47E1CA4EE950417B14AEC7DDA65441AE47E18A4FE950417B14AE57DEA65441AE47E1BA52E950417B14AE47DFA65441AE47E1EA52E95041B81E850BDFA65441713D0AA754E95041F6285C8FDFA65441AE47E17A56E950417B14AEA7DFA65441EC51B81E58E95041F6285C7FE0A65441AE47E1CA5AE950417B14AE87E1A65441EC51B8CE5BE95041D7A370BDE1A65441713D0A175DE95041F6285CCFE1A65441EC51B87E5EE95041F6285C2FE2A65441AE47E11A62E95041F6285C2FD9A65441295C8F3259E95041B81E853BD6A65441AE47E1EA4FE95041F6285CEFD3A65441EC51B8AE4FE95041333333D3D4A65441295C8FC24DE95041F6285CAFD4A65441AE47E11A4DE95041B81E85FBD3A65441295C8F324DE95041F6285C8FD3A65441713D0AD74BE9504133333323D3A65441295C8F824BE950417B14AED7D3A65441EC51B8CE4AE950417B14AE07D4A65441713D0AF749E9504133333383D3A65441AE47E11A4AE95041333333C3D2A65441EC51B88E45E95041F6285C4FD1A65441AE47E1EA43E95041B81E852BD1A65441AE47E18A40E950417B14AEE7CFA65441713D0AE73EE950417B14AEB7CFA65441333333933EE950413D0AD7D3CEA65441295C8F323EE95041F6285CEFCDA65441713D0AB747E95041B81E850BB5A65441295C8F024AE95041F6285C7FB3A6544109000000EC51B80E3EE950417B14AE77D3A65441713D0AA73CE950417B14AEA7D3A65441295C8F223CE95041B81E856BD3A65441713D0A173CE95041B81E85BBD1A65441713D0AA73CE95041F6285C1FD1A65441295C8F423DE95041B81E852BD1A65441713D0AC73DE95041B81E85BBD1A65441AE47E14A3EE95041F6285CCFD2A65441EC51B80E3EE950417B14AE77D3A6544107000000713D0AB74AE950417B14AE77D6A65441295C8FE24BE95041F6285CCFD5A65441713D0A974CE95041F6285C5FD6A65441AE47E15A4CE95041B81E852BD7A65441AE47E1FA4BE95041F6285CBFD6A65441295C8F224BE95041B81E85CBD6A65441713D0AB74AE950417B14AE77D6A6544111000000EC51B82E48E95041333333A3D7A65441EC51B8BE48E95041B81E85FBD6A65441713D0AD748E9504133333353D6A65441713D0AC749E95041F6285C4FD7A65441AE47E1BA49E95041B81E85EBD7A65441713D0A874AE95041B81E851BD8A65441EC51B8FE4AE95041F6285CDFD7A65441295C8F524BE950417B14AE57D8A65441AE47E1CA4BE950417B14AE57D8A65441713D0A674CE95041333333C3D8A65441AE47E18A4CE95041F6285CEFD9A65441295C8FB24BE95041B81E85BBDAA65441713D0A574AE950417B14AE97DAA65441295C8FA249E95041333333F3D8A65441295C8FA249E95041B81E854BD8A65441EC51B8EE48E950417B14AE57D8A65441EC51B82E48E95041333333A3D7A6544108000000295C8FB254E95041333333E3D9A65441EC51B8EE54E950417B14AE97DAA65441EC51B82E54E95041B81E854BDBA65441EC51B89E53E95041F6285C3FDBA65441AE47E18A52E95041B81E858BDAA65441713D0A9752E950417B14AE37DAA65441EC51B83E53E95041333333B3D9A65441295C8FB254E95041333333E3D9A6544113000000295C8FB224E9504133333373CBA65441EC51B86E23E95041B81E855BCBA65441713D0A8723E950417B14AE97CBA65441EC51B87E22E950417B14AE97CBA65441713D0A7721E95041F6285C0FCCA65441AE47E1EA1FE95041F6285C4FCBA65441EC51B80E20E95041F6285C2FCAA65441EC51B8AE1FE95041F6285CFFC9A65441EC51B8AE1FE9504133333333C9A65441EC51B86E20E95041333333A3C8A65441295C8FB221E950417B14AEC7C8A65441295C8F4222E95041B81E854BC9A65441295C8FD222E950417B14AEE7C9A65441713D0AC722E95041B81E859BCAA65441713D0AB723E95041F6285CBFCAA65441713D0A4724E9504133333393C9A65441295C8F4225E95041F6285C5FCAA65441EC51B84E25E95041F6285CEFCAA65441295C8FB224E9504133333373CBA6544109000000AE47E1AA3EE95041B81E852BC2A65441713D0AA73FE95041B81E85BBC2A65441AE47E1CA3FE950417B14AE57C3A65441713D0A473FE9504133333383C4A65441AE47E1AA3EE9504133333323C4A65441295C8FD23DE950417B14AE17C4A65441AE47E1EA3DE950417B14AE27C3A65441295C8F323EE95041F6285C4FC2A65441AE47E1AA3EE95041B81E852BC2A654410D000000EC51B8AE31E950417B14AED77CA65441713D0AE732E950417B14AEF77AA65441713D0AE732E950417B14AE4779A65441AE47E17A32E950417B14AEE778A65441AE47E13A33E95041F6285C9F78A65441713D0AC734E95041B81E856B79A65441295C8FD234E95041333333D37AA65441295C8F4234E95041F6285C6F7BA65441295C8F4234E95041333333837CA65441713D0A6734E95041B81E855B7DA65441295C8FE233E95041333333D37DA65441EC51B82E33E950417B14AEF77DA65441EC51B8AE31E950417B14AED77CA6544107000000AE47E1EA49E95041B81E85BBADA65441295C8F024AE9504133333353ACA65441295C8F224BE95041F6285CFFABA65441AE47E1FA4BE950417B14AEE7ABA65441295C8F524BE950417B14AE67ADA65441295C8FC24AE950417B14AEC7ADA65441AE47E1EA49E95041B81E85BBADA654410A000000AE47E17A4DE950417B14AEE7AEA65441AE47E1AA4DE950417B14AED7AFA65441713D0AF74CE95041333333A3B0A65441295C8F824BE95041333333A3B0A65441EC51B8CE4AE95041B81E852BB0A65441713D0A874AE95041B81E857BAEA65441EC51B88E4BE95041F6285C6FAEA65441AE47E1BA4CE95041F6285CDFADA65441AE47E1AA4DE950417B14AEF7ADA65441AE47E17A4DE950417B14AEE7AEA6544101030000000B00000038030000666666F6BAE85041666666A6DBA75441F6285CAFB9E850417B14AEE7D9A75441A4703DEAB9E85041CDCCCCECD7A75441713D0AA7BAE850411F85EBD1D6A7544152B81E05BBE85041A4703DFAD4A7544148E17A14BCE8504152B81E75D3A75441A4703D6ABDE8504114AE4701D0A7544166666606BFE85041D7A3702DCFA7544100000080C0E85041AE47E1DACEA754413D0AD733C2E85041B81E85EBCCA754411F85EB91C6E8504185EB51F8BEA75441D7A3705DCBE85041E17A140EB0A75441000000D0CAE85041000000B0AFA75441F6285C3FC9E8504152B81E75AFA75441F6285C7FC7E8504148E17AC4AEA754413D0AD7B3C5E85041E17A146EADA75441CDCCCC8CC4E850415C8FC2A5ACA754413D0AD733C2E85041D7A370DDABA75441C3F5283CC1E85041EC51B8CEAAA75441E17A14FEBFE85041C3F5287CAAA75441333333E3BEE85041E17A143EA9A7544114AE4741BFE85041CDCCCC8CA8A75441F6285CBFC1E85041295C8F32A9A75441CDCCCC1CC2E850413D0AD703A8A75441295C8F42CAE85041E17A146E9BA754417B14AE07CAE850418FC2F5C89AA7544114AE4771CAE85041000000309AA7544166666616CBE85041AE47E18A99A754419A999939CBE8504148E17A6498A75441333333D3CBE8504185EB517897A754410AD7A3A0CAE850419A99996996A7544185EB51B8CAE8504148E17AC495A754418FC2F568CBE85041C3F528FC94A75441713D0AA7CCE8504114AE472192A75441A4703DAACDE85041B81E85AB91A7544114AE47D1CEE8504152B81E8590A75441A4703D6ACFE850415C8FC2758FA75441AE47E16AD1E85041E17A141E8EA75441AE47E10AD2E8504185EB51488CA75441AE47E16AD4E8504185EB512888A75441F6285CBFD5E850418FC2F54887A75441713D0AA7D6E850413D0AD72387A75441E17A145ED6E85041EC51B89E86A75441B81E85EBD6E85041713D0AF784A75441EC51B80ED7E85041333333F383A7544152B81E35D8E850411F85EB5184A754410AD7A370D8E850415C8FC22585A75441EC51B8AED9E85041E17A140E85A75441EC51B88EDAE850415C8FC20586A754411F85EB71DAE850418FC2F5E886A754411F85EBC1DBE85041A4703D2A86A754415C8FC285DDE85041295C8F6284A75441AE47E10ADDE85041D7A3705D84A7544152B81E95DCE85041C3F528FC82A7544133333313DCE85041CDCCCCEC81A75441A4703D7ADBE85041E17A14FE7FA7544148E17A04DBE850410AD7A3707FA75441666666C6D9E85041D7A3706D7EA754413D0AD793D8E85041333333237DA75441CDCCCC2CD9E85041D7A370AD7CA754411F85EBF1D8E85041D7A370CD7BA75441666666E6D8E85041B81E854B7BA754417B14AE87D8E85041F6285C8F7AA75441D7A370BDDAE850417B14AE377CA75441AE47E14ADBE85041333333437CA754410AD7A3C0DBE85041A4703D8A7CA75441CDCCCCCCDBE850415C8FC2757DA754411F85EB91DBE85041B81E85EB7DA75441F6285C1FDCE850410AD7A3907EA754419A999989DCE85041A4703DDA7FA7544185EB5178DEE850415C8FC21580A754410AD7A340DFE85041F6285C7F80A7544114AE47F1DFE850410AD7A3707FA75441295C8FC2DFE85041F6285CBF7EA75441C3F5282CE0E85041D7A3706D7EA75441E17A14AEE0E850419A9999697DA75441713D0A67E0E850410AD7A3F07BA75441AE47E1AADFE850418FC2F5F87AA754417B14AE87DFE850411F85EB017AA75441666666B6DFE850419A99993979A754411F85EB81E1E85041000000C077A754415C8FC2A5E1E8504148E17AD476A7544185EB51F8E1E850413333335376A754415C8FC2A5E1E850415C8FC2C575A75441CDCCCC9CE2E850416666669675A75441EC51B81EE3E850418FC2F5E875A75441295C8FF2E3E85041E17A148E76A7544148E17A74E4E850419A99999976A754411F85EB01E5E85041B81E853B76A75441A4703DCAE5E85041A4703D8A75A7544148E17A34E6E85041713D0A8774A75441333333A3EBE85041AE47E14A70A75441B81E856BECE850410000001070A75441713D0A57EDE85041295C8F6270A7544148E17AE4EDE85041000000D071A754411F85EB71EEE8504185EB519872A75441000000B0EFE85041000000D071A75441C3F528BCEFE850410AD7A3C070A75441A4703D1AF0E850417B14AE2770A75441B81E855BF2E85041CDCCCC0C6FA75441B81E853BF3E850417B14AE676EA754415C8FC2A5F3E85041CDCCCC4C6DA754413D0AD723F3E850411F85EB316CA7544100000030F3E8504185EB51E86AA754415C8FC2A5F3E850415C8FC2B569A75441D7A3709DF4E85041EC51B88E68A7544185EB51D8F4E850418FC2F51868A75441333333F3F5E8504185EB516867A754417B14AE77F7E850411F85EB2167A7544114AE47F1F8E85041EC51B85E64A75441EC51B89EF8E85041EC51B87E63A75441C3F5284CF8E850413D0AD72364A754418FC2F528F8E8504148E17AD464A75441EC51B8BEF7E85041E17A143E65A754410AD7A380F6E85041C3F528EC64A754415C8FC245F6E8504148E17AF463A7544185EB5198F6E85041EC51B87E63A75441666666F6F6E850417B14AE5762A75441333333D3F6E85041713D0AA761A754410AD7A380F6E85041E17A14EE61A75441EC51B8FEF5E85041333333B361A754411F85EB41F5E85041B81E859B61A75441B81E85FBF4E85041CDCCCC1C62A7544166666656F4E85041CDCCCC3C61A754418FC2F5A8F4E850419A99993960A754413D0AD7C3F5E850416666661660A7544114AE4751F6E850415C8FC2A55DA754413D0AD783F7E850418FC2F5A85EA7544114AE4711F8E8504114AE47915EA75441EC51B89EF8E85041D7A3707D5FA75441C3F5280CFAE850418FC2F5E85CA75441C3F5280CFAE85041000000505CA75441C3F528ECFAE850415C8FC2C55CA75441000000E0FAE850415C8FC2E55BA7544114AE47D1F9E85041713D0AD75AA75441A4703D8AF9E8504152B81E555AA75441A4703D8AF9E8504148E17AA459A75441713D0A87F8E85041713D0AF759A75441C3F5284CF8E8504185EB519859A754417B14AE77F7E850411F85EB115BA7544114AE4731F7E85041A4703D1A5AA7544185EB5198F6E85041333333B35AA7544166666656F4E85041B81E852B58A7544133333333F4E850411F85EB9157A75441E17A146EF4E85041EC51B86E57A7544133333353F3E85041C3F5283C56A7544100000030F3E85041333333A355A7544133333373F2E850410AD7A35055A754417B14AE47F3E850418FC2F55854A754415C8FC2A5F3E85041713D0AB754A754415C8FC285F4E85041EC51B8EE53A75441713D0AE7F5E850417B14AED753A75441E17A142EF6E85041295C8F1254A75441A4703DEAF6E85041AE47E1FA53A75441AE47E10AF6E8504152B81E8553A7544148E17A14F9E850410AD7A3B052A754417B14AE17FAE85041E17A143E53A75441713D0A87F8E850411F85EBA151A75441AE47E13AFAE85041D7A370AD51A75441AE47E13AFAE850415C8FC2B550A75441D7A370ADF9E85041A4703DAA50A75441CDCCCCFCF8E850419A9999F94FA754413D0AD783F7E85041000000604FA75441EC51B8DEF6E85041713D0AC74EA754413D0AD7A3F6E85041295C8FD24EA7544185EB5198F6E8504185EB51484FA75441D7A370BDF3E85041D7A3700D4FA754415C8FC2A5F3E85041CDCCCC5C4EA75441C3F528ECF3E850417B14AEB74DA7544152B81ED5F3E850418FC2F5C84BA7544114AE47D1F2E850419A9999994BA75441E17A14CEF1E85041333333734AA75441713D0AF7EFE85041AE47E1AA49A7544114AE4781EFE850410AD7A34049A754415C8FC245EFE85041E17A140E48A75441713D0AF7EFE85041333333D347A75441A4703DFAF0E85041D7A3707D46A754419A999969EFE85041D7A3709D45A754417B14AEC7EFE85041713D0A7744A7544148E17AA4EFE85041666666C643A75441713D0AF7EFE8504152B81E1543A75441E17A14EEF0E85041CDCCCC4C42A75441E17A14CEF1E850417B14AE8742A75441295C8FA2F2E8504114AE472143A754410AD7A300F3E85041F6285C5F44A75441F6285C7FF2E85041A4703D7A45A75441D7A370BDF3E85041E17A140E48A75441000000F0F4E85041B81E859B48A754413D0AD7A3F6E85041B81E859B48A754410AD7A360F7E8504152B81E3549A75441295C8FB2F7E85041D7A370FD49A75441C3F5286CF7E85041666666964AA754417B14AE77F7E85041713D0A274CA75441713D0AA7F7E85041666666364DA7544152B81EC5F9E850419A9999594DA75441EC51B85EFAE85041F6285CEF4CA7544133333303FBE850411F85EB414DA75441E17A141EFCE850413D0AD7E34CA7544185EB5188FCE85041B81E85FB4CA754410AD7A390FBE850419A9999394EA75441A4703D6AFAE8504152B81E454EA75441D7A3708DFAE850413D0AD7A34EA7544166666606FCE85041F6285CAF4EA75441AE47E1FAFBE850411F85EB014FA7544185EB51A8FBE85041000000604FA754413D0AD793FCE85041AE47E19A4FA7544100000080FDE850419A9999194FA75441D7A370EDFEE850419A9999194FA7544100000040FFE85041F6285C8F4FA754416666666600E95041CDCCCCFC50A75441F6285C1F00E950418FC2F5B851A7544185EB510800E950413333330353A75441C3F528DC00E95041295C8F1254A754411F85EB5101E95041C3F5283C56A75441E17A143E02E9504114AE47E156A754416666660603E95041B81E856B56A754415C8FC2E503E95041F6285C5F56A754415C8FC2E503E95041EC51B8AE55A75441A4703DFA02E95041CDCCCC0C56A75441EC51B8EE02E950418FC2F57853A754416666662602E95041B81E85EB52A75441713D0AD702E95041CDCCCCFC50A7544148E17A4404E9504114AE471150A754417B14AE4705E9504185EB512850A75441AE47E12A07E95041B81E852B51A754415C8FC26507E95041B81E850B52A75441EC51B8FE07E9504185EB51E851A754419A99991909E950411F85EB8152A75441713D0AA709E9504185EB51A853A75441AE47E1FA0DE95041CDCCCC3C4FA75441B81E851B0DE95041C3F5286C4FA75441C3F528EC0CE95041D7A3700D4FA75441A4703D4A0DE950411F85EB414DA75441666666760CE950410AD7A3C04CA75441E17A14CE0AE950418FC2F5884DA754411F85EBE109E95041EC51B81E4DA7544185EB517809E95041E17A146E4CA754410AD7A38008E950413D0AD7034CA75441333333F307E95041000000304BA75441000000D007E95041666666964AA754416666661608E95041AE47E1AA49A7544114AE477107E950413333339349A754413333331307E9504114AE471149A7544148E17A2405E9504152B81E3549A75441A4703DBA04E950417B14AEA748A75441CDCCCC2C04E950410000009048A75441C3F5287C03E950417B14AEC747A75441F6285CBF02E95041B81E85BB47A7544152B81E3503E950411F85EB5147A75441D7A3701D03E950417B14AEE746A75441C3F5289C02E95041000000D046A75441A4703D3A01E950411F85EB9145A7544114AE47A100E9504152B81EB545A75441F6285C1F00E9504148E17A0445A75441AE47E15A00E950417B14AE4744A754410AD7A3F0FFE850417B14AE8742A754419A9999A9FFE85041713D0AF740A7544148E17AE4FFE85041295C8F5240A7544185EB5128FFE850417B14AE373FA75441F6285C1F00E95041F6285C8F3DA754410AD7A3F0FFE8504152B81E253DA754413D0AD71300E95041A4703D0A3CA754411F85EB7100E9504114AE47713BA75441F6285CDF01E9504152B81E653BA754418FC2F55803E950411F85EB213CA75441AE47E1AA03E9504152B81E253DA75441CDCCCC2C04E95041F6285CAF3CA75441B81E851B06E95041E17A14DE3CA754413D0AD7E306E95041D7A370CD3EA75441CDCCCCAC07E950410AD7A3F03EA75441AE47E10A08E9504114AE47A13FA754419A99991909E950417B14AE373FA75441295C8F0209E950410AD7A3D03FA75441F6285C6F0AE950419A99996940A754413D0AD7630AE950413333330341A754410AD7A3200BE950411F85EB3141A7544148E17A140BE950418FC2F57841A754411F85EBA10BE9504114AE474142A754411F85EB810CE9504114AE474142A754413D0AD7030DE95041666666E642A75441333333C30EE9504148E17A4443A7544185EB51680FE95041666666A644A75441F6285C8F10E9504114AE47C145A754417B14AE7710E95041295C8F2247A7544114AE47A112E95041666666F647A75441295C8F5213E950417B14AEC747A754413D0AD79315E95041295C8F4246A75441F6285C7F16E95041C3F5285C43A75441CDCCCC2C16E95041E17A14FE42A754411F85EBD116E950417B14AE8742A75441C3F5283C17E95041AE47E11A41A75441CDCCCC0C17E9504114AE478140A75441F6285C5F17E9504152B81EC53FA754417B14AE6716E950413D0AD7133FA75441E17A14DE16E950415C8FC2F53CA75441295C8FA216E95041000000803CA7544148E17A6415E95041713D0A073BA75441B81E85AB15E95041AE47E11A3AA754416666660615E95041CDCCCCDC38A754418FC2F55815E950413D0AD74338A754415C8FC29512E95041D7A3703D36A75441CDCCCCFC11E950419A99991936A75441AE47E17A11E9504148E17A5436A75441E17A14BE10E9504152B81E7535A7544148E17A740FE9504152B81E9534A7544148E17A940EE950411F85EBB132A7544152B81EA50CE95041A4703D9A32A754413D0AD7230CE95041B81E853B32A754413D0AD7430BE9504185EB511832A75441333333930AE95041A4703DDA30A75441CDCCCCFC0AE950419A99992930A75441713D0AA709E95041C3F5289C2FA75441B81E85DB07E950410000005031A754410AD7A3C006E9504148E17A4431A75441D7A3709D06E950419A9999E931A754417B14AE4705E950417B14AE4732A754413333335305E95041E17A148E32A754419A99990904E9504152B81ED532A754410000007003E95041D7A370DD31A75441E17A143E02E950415C8FC2C531A754416666664601E95041AE47E18A31A75441F6285CFF00E9504148E17A6430A754411F85EB3102E95041EC51B80E2FA754415C8FC2A505E95041CDCCCC4C30A75441295C8F6206E95041AE47E1AA30A754417B14AE0707E950410000007030A7544152B81E9507E95041C3F5289C2FA75441AE47E1EA08E95041E17A143E2FA75441AE47E1CA09E95041F6285CDF2EA75441EC51B89E0AE95041B81E850B2EA75441A4703D8A0BE950410AD7A3D02DA75441B81E853B0CE950410AD7A3102CA7544114AE47B10CE950415C8FC2B52CA7544152B81E650EE950419A9999A92CA754415C8FC2350EE95041EC51B88E2BA754411F85EB0110E950417B14AEB729A75441EC51B8FE0EE950410AD7A37029A75441000000800FE95041000000C028A754413D0AD77316E95041333333E328A754417B14AE0719E95041B81E858B2AA75441E17A142E1AE9504185EB51682AA75441D7A3705D1AE950415C8FC2152AA75441F6285CDF1AE9504114AE47212AA754417B14AEA71BE950419A9999E92AA7544185EB51581CE95041D7A3700D2BA75441B81E855B1DE950410AD7A3102CA75441295C8FA21DE9504185EB51682AA75441333333531EE95041A4703D0A2AA75441295C8FF220E95041666666C62AA75441E17A142E21E95041295C8FB22BA75441C3F5288C21E9504148E17A042CA75441F6285C6F23E95041B81E854B2CA75441A4703DAA23E9504185EB51082DA754411F85EBA124E95041C3F528FC2CA754411F85EBA124E9504185EB51282CA75441E17A143E26E95041E17A14FE29A75441AE47E1FA26E95041F6285CCF29A75441666666E627E95041E17A141E29A75441000000A027E95041F6285C0F28A75441000000A027E950411F85EBC125A754411F85EB8125E95041AE47E15A26A7544148E17AF424E95041D7A370AD26A7544148E17A1424E950419A9999D925A75441713D0AA722E95041A4703DAA25A75441F6285C8F22E9504148E17A7423A7544114AE473122E95041333333F322A754417B14AE9721E95041333333F322A7544148E17A7421E950419A99991924A7544114AE477120E95041666666B625A75441713D0A271FE950410000002026A75441713D0A271FE9504152B81EC526A75441AE47E16A1EE95041CDCCCCDC26A75441AE47E18A1DE95041C3F5282C26A754415C8FC2E51CE95041E17A14EE24A7544114AE47F11CE95041F6285CAF23A754410AD7A3001EE950418FC2F5A821A75441713D0A671DE95041EC51B83E21A754417B14AE871CE95041B81E85DB22A75441CDCCCC6C1BE950410AD7A38023A75441333333D31AE950415C8FC24523A75441F6285C5F17E95041C3F5288C23A754419A9999E916E95041A4703D0A23A75441666666E615E95041333333F322A754418FC2F57814E9504148E17A9422A75441B81E850B13E9504114AE477122A7544152B81EC512E95041713D0A0722A75441295C8F9211E95041C3F528CC21A7544152B81E2510E950418FC2F5C820A75441C3F528CC0DE95041EC51B83E21A7544152B81EA50CE95041B81E851B21A754411F85EB810CE950415C8FC28521A75441B81E855B0BE950419A99997921A75441CDCCCCDC0BE950415C8FC2A520A75441CDCCCCDC0BE9504152B81EF51FA754413D0AD7430BE95041CDCCCC2C1FA7544148E17A140BE95041AE47E1EA1CA754417B14AE2706E950417B14AE671FA75441F6285C3F06E95041D7A370DD1FA7544148E17A4404E950410000003020A7544185EB513804E9504114AE477122A75441F6285C9F03E95041713D0AC723A754419A99994902E95041B81E859B24A754417B14AEC701E95041C3F5284C25A75441EC51B82E01E95041F6285C2F27A754413333334300E95041713D0A2728A75441F6285C1F00E95041F6285CEF28A75441D7A370CDFFE85041A4703D2A29A754415C8FC2D5FEE85041D7A3702D2AA75441EC51B88EFEE85041000000602BA75441AE47E1BAFDE850419A9999C92BA75441666666E6FCE85041713D0A772BA75441F6285CEFFBE85041666666A62BA75441B81E857BF8E85041713D0AD72FA75441666666D6F7E85041A4703DDA30A75441C3F528CCF4E85041E17A147E2DA75441C3F528ACF5E8504185EB51282CA75441295C8FB2F7E850410AD7A37029A75441A4703DCAF7E8504185EB51C827A75441C3F5284CF8E85041F6285C2F27A75441F6285C4FF9E85041A4703DCA24A75441A4703D8AF9E850416666661623A754410AD7A390FBE8504152B81E351EA754415C8FC235FCE85041000000B01CA754417B14AE97FDE85041666666861AA75441EC51B8AEFDE85041F6285C5F19A75441D7A370EDFEE85041D7A3708D15A754410AD7A310FFE850413D0AD7C313A75441E17A14BEFEE85041295C8FB212A75441AE47E17AFFE8504114AE475111A754416666666600E950418FC2F5C80EA754413D0AD7F300E95041000000D009A7544152B81E7501E9504152B81EF506A754410AD7A3B001E95041E17A14FE05A754411F85EB3102E950411F85EB1105A75441295C8F0202E95041AE47E15A02A75441B81E85CB02E95041295C8F9201A75441E17A146E02E9504148E17A5400A75441B81E85CB02E9504185EB5168FFA654413D0AD7B302E950413D0AD743FBA654416666662602E95041EC51B89EFAA654418FC2F57802E95041713D0AA7F9A65441CDCCCC6C02E950415C8FC245F8A65441713D0AF701E95041B81E85FBF6A65441EC51B80E02E95041E17A148EF5A65441D7A370CDFFE85041B81E853BF5A65441CDCCCC8C01E950417B14AE07F7A654413333332301E950418FC2F568F8A65441713D0A1701E950419A9999F9F9A6544152B81E7501E95041713D0A67FBA65441F6285CFF00E9504152B81EA5FCA65441AE47E15A00E950415C8FC2B501A75441AE47E15A00E95041713D0A1703A7544185EB510800E950419A99994904A75441C3F528FCFFE85041A4703DDA05A7544185EB5128FFE8504185EB511807A75441B81E856BFEE85041F6285CDF0AA7544114AE4701FEE850415C8FC2050CA754415C8FC2F5FDE85041713D0A870CA7544152B81E25FEE85041295C8FC20CA7544185EB5148FEE8504114AE47D10DA75441333333E3FBE8504148E17A7411A75441AE47E15AF9E8504185EB516818A75441E17A14EEF7E85041A4703D3A1CA754418FC2F548F7E85041D7A3703D1DA7544133333313F5E85041713D0AE722A7544185EB51F8F3E85041666666F623A75441B81E853BF3E85041F6285C2F27A75441A4703DDAF1E850410AD7A3302BA75441CDCCCC8CEFE85041D7A3701D30A754419A999989EEE8504152B81E1531A7544152B81EB5EDE8504148E17A2432A7544114AE4701ECE850413D0AD7A335A754415C8FC215EBE850415C8FC20537A754419A999909EBE85041A4703DAA37A754410AD7A330ECE850410000009036A7544114AE47E1ECE8504114AE475135A75441F6285CBFF0E8504152B81ED532A75441295C8FC2F1E850411F85EBD131A75441713D0A67F2E8504148E17A6430A75441295C8F82F3E8504148E17A842FA75441F6285C8FF7E85041AE47E18A31A75441713D0A07F5E85041333333F334A75441E17A14CEF1E85041713D0A6738A75441E17A149EEDE850417B14AE573EA754413D0AD733EDE85041295C8F923EA75441C3F5283CECE85041D7A370AD3FA754417B14AE27EDE850418FC2F59840A754417B14AE27EDE8504114AE476141A75441EC51B88EECE850410AD7A37042A75441D7A3702DEBE85041333333E341A75441E17A14FEEAE850419A99992942A754415C8FC215EBE85041D7A370BD44A75441333333A3EBE850413D0AD73345A754413D0AD773EBE85041295C8F4246A754413D0AD793EAE8504185EB51B846A7544166666626E9E85041B81E85DB46A7544185EB51C8E8E85041AE47E10A47A754417B14AE17E8E8504152B81E9546A75441F6285C4FE7E8504152B81E7547A75441CDCCCC3CE5E85041C3F5280C4BA75441713D0AA7E5E85041CDCCCCBC4BA754411F85EBE1E5E850417B14AED74CA754418FC2F5B8E7E8504148E17AD44BA75441AE47E11AE9E8504114AE47B14BA75441295C8F32E9E8504148E17AB44CA7544166666646E8E85041AE47E1BA4EA754417B14AE37E7E85041666666F64EA75441A4703DAAE6E8504114AE47514EA75441D7A370EDE5E85041713D0AE74DA754413D0AD7C3E3E8504114AE47314FA754413D0AD7E3E2E850413D0AD7834FA7544166666656E2E8504114AE47314FA75441F6285C2FE1E85041A4703DCA4FA75441E17A14EEDEE8504148E17AF451A754413D0AD783DEE85041AE47E11A53A754419A999989DCE85041B81E858B55A75441713D0A77DAE850418FC2F5D857A7544148E17A44D9E850418FC2F5B858A754413D0AD7F3D5E85041A4703DBA5CA75441713D0AE7D1E850419A99991961A75441000000C0D0E85041B81E857B62A75441A4703D5ACAE850410AD7A33068A75441C3F5287CC6E85041EC51B84E6AA75441EC51B82EC4E850419A9999496CA7544148E17A04C2E85041CDCCCC0C6FA75441D7A3700DC1E850410000001070A754411F85EB61BEE85041AE47E1CA73A754415C8FC275BDE8504185EB513875A7544114AE4751B9E85041E17A14BE7AA75441B81E85FBB7E8504185EB51287BA7544114AE4791B7E850411F85EBC17BA7544133333333B7E850417B14AE577BA754413D0AD7E3B7E85041333333837AA7544166666636B8E8504114AE477178A75441713D0AA7BAE85041295C8F3277A7544114AE47F1BBE850413D0AD74375A754419A9999B9BCE85041295C8F0273A7544185EB5188BFE850417B14AE2770A754410AD7A370BFE85041AE47E18A6EA754418FC2F538C0E850418FC2F5786CA754410AD7A330C1E85041666666466BA754411F85EB91C2E85041C3F528DC6AA75441C3F528DCC3E85041E17A149E69A75441B81E85EBC4E850413D0AD73369A75441333333B3C5E850418FC2F57868A75441713D0AB7C6E85041EC51B8AE67A75441713D0A97C7E850410AD7A35067A7544100000030C8E85041713D0A0766A754417B14AE07CAE85041F6285C2F64A75441E17A140ECCE85041F6285C4F63A754411F85EB81CFE85041333333F35FA7544148E17A94D1E85041000000F05EA754417B14AE97D2E850410AD7A3C05EA75441AE47E17AD4E850418FC2F5C85DA754415C8FC275D6E85041C3F5289C5AA75441C3F528BCD6E85041000000D058A7544114AE4761D7E85041C3F528FC57A7544100000050D9E85041EC51B88E56A754413D0AD773D9E85041333333C354A754413D0AD783DEE850413D0AD7C34DA7544114AE4711DFE85041A4703D4A4CA7544100000070DFE8504148E17AF44AA7544133333373E0E850419A9999D949A75441F6285CEFE2E85041F6285C1F46A75441D7A3702DE4E85041713D0A5745A75441713D0AC7E4E8504152B81EF543A75441CDCCCC7CE3E85041CDCCCC4C42A7544114AE4771E3E85041333333E341A754415C8FC2D5E2E85041EC51B87E41A7544133333393DFE850410AD7A3A03FA754410AD7A350D9E850417B14AE074AA75441CDCCCC1CD4E850410000002051A7544152B81E25D3E85041E17A143E53A754417B14AE77D3E85041B81E85AB54A7544185EB5148D3E85041F6285C5F56A75441E17A14DED2E850416666668657A75441CDCCCC5CD2E850417B14AE0758A754411F85EB41D1E850413D0AD7D359A7544148E17AD4CFE85041333333935BA75441A4703D8ACEE85041E17A14AE5CA75441E17A14EECCE8504152B81EB55EA75441EC51B8BECCE85041E17A144E5FA75441295C8F42CAE85041333333B361A754410AD7A3E0C8E85041666666B662A75441C3F5287CC6E850415C8FC25565A754413D0AD7D3C4E850413D0AD77367A754418FC2F5B8C3E850417B14AE7768A75441B81E854BC2E85041AE47E17A69A75441D7A3702DC0E8504114AE47816BA754410AD7A370BFE85041000000706DA75441EC51B87EBCE85041A4703D7A70A7544100000040BBE85041AE47E10A72A75441E17A140EBAE85041EC51B8DE72A7544100000010B7E850410AD7A3E076A75441295C8F82B6E850417B14AED777A75441295C8F82B4E850416666662678A75441A4703D1AB3E850419A9999197AA75441333333D3B2E8504148E17A347BA7544100000090B3E850415C8FC2B57BA75441000000B0B2E85041AE47E13A7DA75441C3F528BCB2E85041295C8F327EA7544114AE47F1B4E85041C3F5287C7FA7544152B81EF5B5E85041CDCCCC4C7FA7544185EB5118B6E85041713D0AB77FA754415C8FC205B4E850413D0AD73382A754415C8FC2E5B4E85041C3F528FC82A75441E17A14AEB5E850415C8FC26583A7544166666656B7E850415C8FC26583A7544166666636B8E85041F6285C1F83A75441E17A140EBAE85041333333F383A75441A4703DEAB9E85041713D0AF784A754417B14AE77BAE8504185EB515886A75441CDCCCCFCBBE850413333335388A75441EC51B87EBCE8504114AE47B188A754410AD7A3D0BCE85041C3F528CC89A754410AD7A3D0BCE8504148E17A948AA75441295C8F72BCE85041713D0AE78AA75441F6285CAFB9E85041A4703D2A8AA754415C8FC245B9E85041E17A146E89A75441E17A144EB8E8504148E17AD488A75441AE47E14AB7E85041713D0A2789A75441AE47E16AB6E85041EC51B85E88A7544166666676B6E85041C3F5282C87A75441D7A370DDB5E850417B14AE8786A7544166666676B6E8504148E17A8485A7544152B81E15B5E85041000000B084A754417B14AEA7B3E850417B14AEC784A75441CDCCCC8CB2E850410AD7A36085A7544148E17AC4B1E85041295C8F0285A7544166666666B1E850410AD7A38084A7544114AE47A1B1E8504148E17AC483A754417B14AEC7B2E850413D0AD71383A75441C3F528BCB2E850411F85EB9182A754415C8FC225B3E85041AE47E14A82A75441CDCCCC6CB3E85041B81E856B81A75441C3F528DCB1E850413D0AD73382A75441713D0A57B0E85041295C8F6282A75441C3F5283CAFE85041295C8F4283A75441F6285C7FAEE8504152B81EB582A754415C8FC2F5AEE85041B81E856B81A7544148E17A04B0E85041CDCCCC0C81A75441A4703D3AB2E85041B81E85AB7FA754417B14AEE7B1E85041333333E37EA7544148E17AE4B0E8504148E17A847EA7544114AE47E1AFE85041713D0AD77EA75441295C8F12AFE85041A4703DBA7FA754417B14AEF7ABE8504148E17AE482A75441D7A3706DACE85041F6285C1F83A75441D7A3708DABE85041295C8F2284A75441EC51B82EABE85041713D0AF784A75441A4703D8AAAE8504148E17A8485A7544166666666AAE850417B14AE8786A75441295C8F92A9E85041EC51B87E87A75441AE47E19AA8E85041B81E853B88A7544152B81E45A7E850411F85EB6189A75441EC51B85EA4E85041C3F5284C8DA7544185EB5118A4E85041713D0A678EA7544133333373A3E85041E17A145E8FA754413D0AD763A2E85041C3F5287C91A7544114AE47F1A2E85041333333A392A75441B81E859BA1E85041CDCCCCCC94A7544185EB5198A0E85041F6285CFF95A75441000000D09FE850416666664696A75441AE47E10AA0E850410000009097A7544152B81E959FE85041A4703DFA97A75441CDCCCCCC9EE850419A99992998A754417B14AE279EE850415C8FC2E598A75441CDCCCCEC9DE8504152B81EF599A75441C3F5283C9DE85041AE47E16A9AA754417B14AE479DE850418FC2F5C89AA75441EC51B8CE9BE850413D0AD7039BA75441295C8FE29AE850419A9999599CA75441295C8FE29AE850411F85EBE19EA75441E17A143E9AE85041F6285C4FA0A754411F85EB319AE8504100000000A1A754410AD7A3D098E85041295C8FF2A3A75441B81E854B97E850418FC2F598A8A75441AE47E19A96E85041E17A143EA9A75441B81E858B95E85041A4703DBAABA754411F85EB2195E8504148E17A24ACA754417B14AED793E85041E17A144EAEA75441A4703D2A94E85041B81E85DBAEA75441295C8F1294E85041B81E859BB0A7544148E17AB493E850418FC2F528B1A754413D0AD72392E850419A9999B9B2A75441EC51B85E92E85041CDCCCCBCB3A754418FC2F5E891E8504148E17AB4B4A75441E17A140E8FE85041713D0AC7B6A75441B81E859B8FE850410AD7A330B7A7544114AE471190E850419A999919B7A754419A9999598DE85041B81E85EBBAA75441B81E854B89E85041C3F528ACC4A754418FC2F5B886E85041295C8F72CBA75441F6285CDF87E8504185EB51A8CDA754418FC2F5F884E850419A9999E9CFA754418FC2F51884E85041A4703D5AD2A7544152B81E9586E850413D0AD713D2A754411F85EB5187E85041C3F528DCD2A754413D0AD7F386E85041C3F528BCD3A75441C3F5282C8BE85041EC51B89ED4A75441F6285C5F8BE8504166666606D5A75441295C8FA28AE85041333333B3DBA75441AE47E16A8BE85041B81E859BDBA754415C8FC2C58AE85041D7A3706DDFA7544114AE47718DE850411F85EB41E0A75441A4703D8A91E850415C8FC215E1A75441D7A3704D94E85041B81E859BDBA754410000008095E8504148E17A54DBA754410000006096E850418FC2F548DBA75441D7A370ED96E8504148E17A34DCA754410AD7A33096E850419A999989E4A75441666666A696E85041D7A3708DE5A7544152B81E2596E850418FC2F598E5A75441333333A395E850411F85EB51E5A7544152B81E4595E85041E17A141EE7A75441D7A3704D94E8504100000010EAA7544152B81E6594E85041295C8F42EBA75441F6285C0F93E850410AD7A340EEA75441713D0A4792E8504133333393EEA754411F85EBA191E8504166666696EFA75441B81E857B90E85041AE47E16AF0A754413D0AD7838FE85041AE47E16AF0A75441713D0AC78EE85041CDCCCC9CF1A754411F85EBE18FE85041713D0A07F2A754411F85EBE18FE850413D0AD7C3F2A7544148E17A548FE85041AE47E1BAF3A75441EC51B8DE8EE85041D7A370EDF4A75441EC51B8DE8EE85041A4703D8AF6A754413D0AD7E38CE85041000000A0F9A75441D7A3709D8CE8504114AE4701FBA75441E17A14AE8AE85041AE47E1EAFEA75441295C8F628CE850411F85EB1100A85441666666168EE850410000005001A8544148E17A248BE850411F85EB1100A85441AE47E18A8AE8504185EB515800A854417B14AE678AE85041AE47E14A03A8544185EB515889E85041B81E85FB03A854411F85EB3188E85041B81E859B06A85441C3F528BC87E85041A4703DAA07A85441B81E850B87E85041CDCCCC9C0AA854419A99998986E850417B14AEB70BA8544114AE47C185E85041CDCCCC8C10A854415C8FC2D584E850415C8FC26516A854411F85EBB184E8504185EB517818A854418FC2F51884E85041E17A14AE1AA85441AE47E1BA83E850418FC2F5F81FA854411F85EBD183E85041D7A3706D23A8544114AE470184E8504114AE472125A85441EC51B8AE83E850419A9999E925A8544148E17AC486E850411F85EB312AA854418FC2F51884E850410AD7A3C02EA85441C3F5283C84E85041295C8FF22FA85441CDCCCCCC85E850411F85EB2130A85441EC51B84E86E85041C3F5288C30A85441EC51B84E86E8504114AE473131A85441EC51B86E85E850419A9999F931A854410AD7A31085E85041713D0A6733A854418FC2F51884E85041CDCCCCDC33A85441EC51B88E84E8504114AE470138A854419A9999E983E85041F6285C3F39A85441B81E85AB82E8504114AE47A13AA85441C3F5285C83E85041F6285CFF3AA85441295C8F0287E85041713D0A473AA85441D7A3701D89E85041D7A3703D3CA854410000009088E85041C3F5289C3CA854416666662688E8504152B81E353DA8544148E17A8488E85041CDCCCC2C3EA854411F85EB3188E85041295C8F4241A85441295C8F2287E850418FC2F56842A854419A9999898AE8504152B81E8546A854415C8FC2858CE85041713D0A0748A85441C3F528AC8DE850415C8FC23548A85441000000D08DE85041000000C047A8544148E17A3490E85041C3F528CC47A854417B14AE3791E85041666666E648A854411F85EB8192E850413D0AD77349A85441EC51B85E92E850410AD7A37048A85441CDCCCC9C93E8504152B81EA546A85441CDCCCC9C93E850417B14AE1746A85441295C8F7291E85041C3F5282C45A85441CDCCCCFC90E8504114AE471144A854411F85EB6190E85041000000D043A85441B81E85FB8EE85041CDCCCCDC3EA8544185EB51788FE85041D7A3701D3DA85441B81E859B8FE85041295C8F223BA854415C8FC20590E85041B81E852B3AA854415C8FC2258FE85041A4703D5A3AA8544114AE47518EE8504114AE47C139A85441EC51B8DE8EE850410AD7A31039A85441B81E85BB8EE8504185EB518836A854410AD7A3608FE85041333333E335A85441EC51B89E90E85041B81E85AB36A85441C3F5282C91E85041333333E335A8544148E17AD492E85041AE47E11A35A85441EC51B83E93E85041E17A143E35A854416666669693E8504152B81EA534A85441D7A370ED94E850419A99997932A854413D0AD71398E85041B81E859B2AA85441713D0A3798E85041A4703D3A29A85441B81E854B97E850418FC2F5F826A854417B14AE9795E85041EC51B8CE24A8544114AE47E196E85041B81E850B22A85441B81E852B98E85041713D0AF722A85441713D0AF799E8504148E17A8423A85441EC51B8CE9BE850416666664622A8544185EB51789FE85041A4703D5A18A85441B81E855BA7E850413D0AD7B307A8544152B81EA5A9E85041295C8FC2FFA754410AD7A370AAE8504114AE4761FDA75441295C8FE2AEE850411F85EBE1F1A75441A4703D9AAFE8504148E17AF4EFA75441EC51B86EB0E85041295C8FE2EDA754417B14AE07B1E85041295C8F02EDA7544114AE47C1B0E85041A4703D5AEBA75441F6285CFFB1E8504185EB51F8E9A7544148E17AA4B2E85041CDCCCC2CE8A7544185EB5178B3E850410AD7A390E6A75441F6285C9FB4E85041713D0A17E5A754418FC2F508B5E8504152B81E05E3A75441C3F5280CB6E85041E17A14FEE0A7544100000010B7E85041F6285C2FDEA754411F85EB11BAE85041713D0AC7DEA754413D0AD793BAE85041C3F5285CDCA75441666666F6BAE85041666666A6DBA754410E0000009A9999A997E8504100000010EAA7544152B81EE597E85041F6285C5FE9A754410AD7A31097E85041C3F5283CE9A754417B14AE7796E85041EC51B8AEE8A754413333338396E85041B81E85ABE7A754410000004097E85041F6285CBFE6A75441B81E854B97E850413D0AD7D3E5A754415C8FC29598E850410AD7A3B0E5A75441EC51B82E99E8504133333323E5A754418FC2F59899E85041C3F528BCE5A75441A4703D1A9AE8504152B81E15E8A754415C8FC27599E85041000000F0EAA75441D7A370AD98E8504133333313EBA754419A9999A997E8504100000010EAA754410C0000001F85EB6193E85041B81E855B2CA85441CDCCCCBC92E85041E17A146E2EA8544114AE47D191E850411F85EB412FA85441C3F5284C90E8504148E17AB42EA854417B14AE5790E85041B81E853B2DA854417B14AE3791E850417B14AE872BA854417B14AE1792E8504185EB51782AA85441F6285C2F92E850411F85EB7128A85441D7A3706D93E850415C8FC26528A854419A99995994E85041B81E85BB29A85441A4703D2A94E85041D7A3701D2BA854411F85EB6193E85041B81E855B2CA854410D000000EC51B8AEEBE850411F85EBD143A754418FC2F5F8ECE850411F85EBD143A7544166666686EDE8504114AE472143A754410AD7A310EDE85041713D0AB742A75441F6285C3FEDE850415C8FC23542A7544166666666EEE85041C3F5289C41A754419A999989EEE85041A4703DFA41A7544148E17AA4EFE850413D0AD79342A7544148E17AA4EFE850411F85EBF142A754411F85EB51EFE85041713D0A9743A75441F6285CFFEEE85041AE47E14A45A754419A9999C9ECE8504185EB51F844A75441EC51B8AEEBE850411F85EBD143A7544112000000AE47E18AF2E8504114AE478140A75441A4703DDAF1E8504114AE47A13FA7544185EB5138F2E850410AD7A3F03EA7544185EB5118F3E850418FC2F5F83DA75441EC51B83EF4E8504185EB51483DA754419A999959F5E850418FC2F5183DA75441B81E859BF7E85041713D0A273AA7544114AE47F1F8E85041CDCCCC7C3BA7544152B81EE5F8E8504148E17A743CA754418FC2F528F8E850411F85EBE13DA754417B14AE57F8E850413D0AD7133FA75441CDCCCC1CF8E85041295C8F5240A75441B81E85BBF6E850410AD7A3B040A75441F6285CCFF5E850418FC2F59840A7544166666636F5E85041B81E85CB41A754410AD7A3C0F4E85041333333E341A75441E17A148EF3E8504114AE478140A75441AE47E18AF2E8504114AE478140A754410C0000001F85EBE1F7E85041B81E85BB35A75441AE47E15AF9E8504185EB519835A75441AE47E15AF9E85041D7A3703D36A754411F85EBA1F9E85041C3F5286C36A7544114AE47F1F8E850411F85EBE136A75441295C8F92F8E85041F6285C6F37A75441295C8F92F8E8504114AE47F137A7544114AE4731F7E850415C8FC2E537A75441C3F5288CF6E85041EC51B89E37A75441AE47E10AF6E85041B81E859B36A754413D0AD7A3F6E850419A99991936A754411F85EBE1F7E85041B81E85BB35A754410B000000C3F528BCB2E850411F85EBB1BEA75441E17A14EEB3E85041C3F528BCBAA75441CDCCCC4CB4E85041CDCCCCDCB9A7544152B81EF5B5E850417B14AE17BAA7544152B81EF5B5E850410AD7A3B0BAA7544185EB51F8B6E850418FC2F578BBA754419A999979B7E85041666666A6BEA7544133333353B6E85041EC51B82EC1A75441D7A3701DB4E8504114AE47A1C0A7544133333393B4E8504152B81EB5BFA75441C3F528BCB2E850411F85EBB1BEA75441110000000AD7A340A2E850415C8FC2F5FAA75441E17A14EEA1E8504148E17A04FCA75441E17A140EA1E85041C3F528FCFCA75441B81E85BBA0E8504185EB5148FBA75441666666F6A0E85041D7A3702DFAA7544100000090A1E850418FC2F578F8A75441EC51B89EA2E85041A4703DAAF5A7544185EB5138A3E850411F85EB41F2A75441666666B6A2E85041F6285C0FF1A754415C8FC2C5A3E8504166666696EFA754418FC2F5C8A4E85041EC51B87EEFA754419A999979A5E850417B14AEA7EDA75441CDCCCC7CA6E85041333333D3ECA75441333333A3A7E85041333333D3ECA7544166666616A7E8504185EB5118F0A7544133333393A3E85041B81E856BF8A754410AD7A340A2E850415C8FC2F5FAA7544109000000CDCCCCECAFE85041333333D3DAA754418FC2F538AEE850411F85EBE1DBA7544166666606ADE850413D0AD783DBA7544148E17A44AEE85041713D0A97D6A75441B81E856BAFE85041E17A14AED6A7544114AE47E1AFE85041295C8FA2D6A754418FC2F5D8B0E85041CDCCCCECD7A754411F85EB91B0E8504152B81E95D9A75441CDCCCCECAFE85041333333D3DAA754410E000000C3F5280CB6E8504100000010D8A754410AD7A300B6E8504152B81E15D6A75441E17A146EB7E85041CDCCCC8CD3A7544166666656B7E8504166666646D3A75441EC51B81EB8E85041295C8F22D3A7544166666636B8E850418FC2F518D0A75441E17A142EB9E850413D0AD793CEA7544148E17A54BAE85041295C8FF2CEA7544100000060BAE85041EC51B8AECFA75441713D0AE7B8E8504166666686D1A754419A999959B8E8504133333343D2A7544114AE4771B8E850413D0AD7D3D3A75441EC51B83EB7E850410AD7A300D7A75441C3F5280CB6E8504100000010D8A7544114000000A4703D8ABCE8504152B81E15C4A7544100000020BCE850410AD7A300C5A75441D7A370ADBCE85041E17A146EC6A7544148E17AD4BDE8504114AE47D1C4A75441713D0A27BEE85041295C8FC2C3A7544185EB51A8BEE850415C8FC2E5C3A754415C8FC255BEE850418FC2F5C8C5A75441A4703D4ABEE850418FC2F588C7A75441B81E85EBBDE85041C3F5286CC9A754417B14AE17BDE850419A9999D9CAA75441295C8F72BCE8504100000020CBA75441D7A370EDBAE85041C3F5282CCBA7544100000060BAE8504166666616C8A75441F6285C8FBAE850415C8FC285C6A75441C3F5284CBBE8504166666656C6A75441C3F5286CBAE8504133333373C4A754419A999919BAE85041713D0AD7C2A75441F6285C8FBAE85041B81E859BC2A754411F85EBE1BAE850411F85EB11C3A75441A4703D8ABCE8504152B81E15C4A75441
+</a>
+
+<b>
+01060000000100000001030000000100000084000000D9C1EF33B3E85041F0F6AF557CA754419F984E1EB3E850415BA6F2837CA75441D74ED2B1B2E85041AA5759397DA75441BE77E7D2B2E85041947AA0337EA75441A08DF740B3E85041A696127A7EA75441FFE5DCE4B4E850413FB8AF487CA75441C441A15AB6E85041BD4FF83E7AA75441912BB3E1B7E850419A38204A78A75441800BD703BFE8504109D6A3C06EA75441B9290A8DBFE85041C29AC03F6EA754418FC2F538C0E850418FC2F5786CA754414B5217EAC0E850410960B89D6BA7544107D30B26C1E850419CE52C4E6BA75441F693272CC1E8504145A2F34B6BA754410AD7A330C1E85041666666466BA754416EA9896EC1E85041C42BC9336BA754410F841E96C2E85041AEF62EC86AA75441F7C82AA9C3E85041FB7440C469A7544120646DC3C3E85041E4E8E6B569A75441C3F528DCC3E85041E17A149E69A7544162D2AE1EC4E85041E120098469A75441B8836406C5E85041CE286B0569A7544107DCA930C6E85041325CF8EB67A754412C542D84C6E85041998A07BD67A75441F934E3F5C7E8504154A88D7066A754410B779827C8E850419064261966A7544100000030C8E85041713D0A0766A75441A8E06434C8E85041C95CA50266A754411E7BA83BC8E850419B8EDFF565A75441E3463C56C9E85041E0432CD964A754414343AD82C9E850412EFA5CB464A754417B14AE07CAE85041F6285C2F64A75441E0955441CAE850412C07731664A75441E8C66C7CCAE8504191B480E563A754415A3A7407CBE85041A3561AAE63A75441E1CBCCFCD1E850416BF4286C5DA75441377B140ED8E85041ED6F3D2A56A7544144999979DDE85041EC1D859B4EA7544169492DF9DEE850417D6F968A4CA7544114AE4711DFE85041A4703D4A4CA7544100000070DFE8504148E17AF44AA7544133333373E0E850419A9999D949A75441B21FE1A4E0E85041DCB6148F49A754418BD1C821E1E85041BB7207AA48A7544164969A05E2E85041C9BACB6E47A75441CC3E014DE2E850413488E41247A75441F6285CEFE2E85041F6285C1F46A7544131A4E7A5E3E8504173AB65AC45A7544149512128E4E85041DF9FB94645A75441C6D30AB8E4E850416385D9E143A75441CDCCCC7CE3E85041CDCCCC4C42A7544114AE4771E3E85041333333E341A75441697918F2E2E850415F01079141A754415B178CE1E2E850418AD0C08841A754416BBD59E0E2E850418BDBAE8B41A75441711E6D88DFE85041F65032C93FA754416EE7B383DFE8504135D6D9C43FA754416BF57207DFE850415429A88B40A75441E3EC2B5FDDE85041A6C5E84943A754410AD7A350D9E850417B14AE074AA75441663F355DD4E85041A09729C850A75441F1AFCCE0D3E85041251C80AD51A75441B0C5B03BD3E850412D39175153A75441F28A8D61D3E85041B6DB934954A754417B14AE77D3E85041B81E85AB54A754416E6DAE74D3E850411F991DC754A75441920BE97DD3E85041CE35AF0355A75441078ED57ED3E8504196A8E40855A7544175935659D3E8504142CAB62C56A75441970A3F43D3E85041C20B8D7F56A75441C27B961BD3E850411B7B9DE956A75441A1F1DFFDD2E85041EB391A2E57A75441E17A14DED2E850416666668657A754412C1F278BD2E850411CC253D957A75441006B196DD2E8504113658CFF57A75441ADAF229BD1E85041B7576E5B59A754412906E15BD1E85041D0D19CA959A754411F85EB41D1E850413D0AD7D359A75441EB8004E4D0E8504172D6CA465AA75441A4E4D370D0E850419CD098E05AA7544113DDC524D0E85041BC71E8305BA7544148E17AD4CFE85041333333935BA75441684EBD90CFE85041C9CD39CD5BA75441E7027671CFE85041E03541EE5BA75441F8ABEF89CEE85041346A76AE5CA7544116BED62BCDE850415D9758675EA754417B102FD6CCE85041B2514C025FA75441EC51B8BECCE85041E17A144E5FA7544190774FFCCAE85041544D2D0061A75441E42B87DCCAE850415CE2AD2761A7544185B724ADC9E850415A14B24562A75441BFC46BCDC8E85041CCD933D362A754414C05F0E1C7E850418AE4CED363A75441BB8DCA62C7E850419513F55864A75441C8B3C8B5C6E850416BAD981665A75441488B31FAC5E850415B1D081A66A75441E276C52BC5E85041F160810367A754413D0AD7D3C4E850413D0AD77367A75441C69FBD77C4E85041951F70C867A75441FF9F7BE0C3E85041E011D36A68A75441A9F36E45C2E85041117AEC8B69A754411E48074FC0E850412BB19F616BA75441C8A29C4DC0E85041457683626BA75441DACEA442C0E8504144A2006D6BA75441282CED18C0E85041184E08B76BA75441ACB1FBC2BFE8504100A33B986CA75441016FFF84BFE850415716B95A6DA75441264FBE84BEE8504154D898726EA754416CAC4C84BDE850414C08AD946FA75441DB37F154BCE85041577B79B470A7544136634FEDBBE85041023A063171A7544100000040BBE85041AE47E10A72A754418AE591F7BAE85041CF1A093D72A754412437F51ABAE85041B8380DFC72A75441AD917468B9E85041D03C0AEF73A754417EF6EB9EB8E85041BA8700DA74A754411F84DC00B8E85041113B159E75A754411C64FDFFB7E850411E09409F75A7544163B2FADCB6E850413C6E363F77A75441C301B5BBB6E8504199D8DD7377A75441295C8F82B6E850417B14AED777A754411D3AFF7BB6E850418466B0D877A75441F236C077B6E850418F9E68DF77A754416E9D6630B5E850414308DF1878A75441202B3101B5E850417529EE1278A7544113CC32ABB4E850411DDF262078A75441229E972BB3E85041D8BB60087AA75441C863DF25B3E85041A71212147AA7544178AD4AEDB2E850414CF24A457BA754410F7C09FBB2E85041B71CC24F7BA7544100000090B3E850415C8FC2B57BA75441D9C1EF33B3E85041F0F6AF557CA75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>344305 - 1331138
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003A000000333333F36B135141333333532AD8544152B81E856E135141713D0AF72BD8544185EB511876135141295C8FB22DD85441F6285CEF7813514114AE475130D85441AE47E1BA7B1351419A99996938D85441E17A145E841351413D0AD7D33ED85441713D0A778E1351410AD7A30042D85441A4703D7A83135141AE47E18A40D85441E17A148E80135141666666763FD85441295C8FB279135141C3F528EC38D85441F6285C2F72135141A4703D4A35D85441295C8F526A13514152B81E6532D85441000000906813514152B81EC535D85441F6285CEF65135141713D0AE737D85441AE47E17A62135141AE47E1FA38D85441295C8FF25E1351410AD7A39038D85441AE47E13A55135141A4703DAA36D85441713D0AF74F135141666666163BD85441D7A3709D49135141AE47E14A3DD85441C3F528CC461351418FC2F50843D85441AE47E1BA4D13514185EB510846D85441713D0AE752135141666666B649D8544114AE47815B1351419A9999294CD85441C3F528CC5E1351419A9999194DD854417B14AEC767135141713D0AE750D85441E17A14EE71135141E17A14DE53D85441CDCCCC0C821351419A9999B955D85441CDCCCCBC82135141D7A370ED55D85441EC51B81E8C135141295C8FB258D85441B81E858B96135141AE47E11A55D85441333333239813514185EB51384ED85441EC51B81E93135141C3F5288C47D854416666669698135141C3F528EC45D85441EC51B8CE99135141A4703DEA40D854413D0AD7B39E135141F6285C6F41D854413D0AD703A5135141EC51B8AE36D85441CDCCCC4CA51351415C8FC2F535D85441EC51B80EA713514148E17A4431D854417B14AE57A813514152B81EE52DD854413D0AD7F3AA13514185EB51F826D85441000000D0AB1351413D0AD7B324D85441F6285CCFAC13514152B81ED520D85441D7A3701DAC1351415C8FC2B516D8544133333383AF1351417B14AEF713D85441D7A370CDBC1351417B14AEA711D854418FC2F518B9135141A4703D6A00D8544100000060B813514114AE47B1FBD75441AE47E17AAA1351415C8FC225FED754411F85EB019F1351418FC2F5D8FFD75441A4703D8A8D135141E17A14DE02D85441CDCCCCEC8B135141EC51B84E03D85441000000A0851351417B14AE0706D854410AD7A3D081135141CDCCCC7C09D854413D0AD7237A135141CDCCCC2C14D8544152B81E55751351411F85EB011AD85441CDCCCCEC6E135141CDCCCC8C1FD85441CDCCCC1C6D135141AE47E1DA24D85441333333F36B135141333333532AD85441
+</a>
+
+<b>
+0106000000010000000103000000010000005400000051A5AFF37A13514174076B1E3AD854412CF54AAF791351415A8994EA38D854410163BE3972135141FFC3424F35D85441295C8F526A13514152B81E6532D85441000000906813514152B81EC535D85441F6285CEF65135141713D0AE737D85441AE47E17A62135141AE47E1FA38D85441295C8FF25E1351410AD7A39038D85441AE47E13A55135141A4703DAA36D85441713D0AF74F135141666666163BD85441D7A3709D49135141AE47E14A3DD85441C3F528CC461351418FC2F50843D85441AE47E1BA4D13514185EB510846D85441713D0AE752135141666666B649D8544114AE47815B1351419A9999294CD85441C3F528CC5E1351419A9999194DD854417B14AEC767135141713D0AE750D85441E17A14EE71135141E17A14DE53D85441CDCCCC0C821351419A9999B955D85441CDCCCCBC82135141D7A370ED55D85441EC51B81E8C135141295C8FB258D85441B81E858B96135141AE47E11A55D85441333333239813514185EB51384ED85441EC51B81E93135141C3F5288C47D854416666669698135141C3F528EC45D85441EC51B8CE99135141A4703DEA40D854413D0AD7B39E135141F6285C6F41D854413D0AD703A5135141EC51B8AE36D85441CDCCCC4CA51351415C8FC2F535D85441EC51B80EA713514148E17A4431D854417B14AE57A813514152B81EE52DD854413D0AD7F3AA13514185EB51F826D85441000000D0AB1351413D0AD7B324D85441F6285CCFAC13514152B81ED520D85441D7A3701DAC1351415C8FC2B516D8544133333383AF1351417B14AEF713D85441D7A370CDBC1351417B14AEA711D854418FC2F518B9135141A4703D6A00D8544100000060B813514114AE47B1FBD75441AE47E17AAA1351415C8FC225FED754411F85EB019F1351418FC2F5D8FFD75441A4703D8A8D135141E17A14DE02D85441CDCCCCEC8B135141EC51B84E03D85441000000A0851351417B14AE0706D854410AD7A3D081135141CDCCCC7C09D854413D0AD7237A135141CDCCCC2C14D8544152B81E55751351411F85EB011AD85441CDCCCCEC6E135141CDCCCC8C1FD85441CDCCCC1C6D135141AE47E1DA24D854410A3D60F76B1351415163DD552AD85441475F7DEA6C135141B5E900F12AD854418D23DA816E135141F563F4F42BD854418F9B8EA370135141D1321A732CD8544139931DE47513514124C39EA62DD854415CE94F0E761351414C6545B02DD85441066D4B3476135141F1195ECC2DD8544167D9D19E77135141774BCF1A2FD854417E5401A378135141890AD70A30D85441EDB0EEDD781351415ED1334130D85441C3F587F1781351417F69915730D8544167DB028279135141E87604FA31D85441FF3FED6B7A13514175717E9F34D854419C7AF0AC7A1351419E48C95B35D85441B32126237B135141636426B236D8544197C98D627B1351416C37C96937D85441412D91BC7B135141BE5DDA6A38D854411AD2D1ED7C135141A6BF8F4D39D854412F4A520E7E135141C456D4233AD8544199B6413B7E13514131D633453AD85441E6D187677E135141939515663AD8544172D7F7EE7F1351415C41CD883BD85441258A373182135141262D43363DD85441E846BDA9821351411CFEC58F3DD85441BEE6725D841351416F095FD33ED85441F247CBBF861351412A148E933FD85441713D0A778E1351410AD7A30042D85441AD518FC78A135141FFA0458341D8544180483FC58613514100B8E5FA40D854411CB45478831351414AAB2C8A40D8544120C7DE1A8313514194ECA26740D8544113664A8D80135141CEACA5753FD85441BA3A363F8013514193F32E2B3FD854414C4E50447D13514160719B533CD8544151A5AFF37A13514174076B1E3AD85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>344305 - 3701085
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000003A000000333333F36B135141333333532AD8544152B81E856E135141713D0AF72BD8544185EB511876135141295C8FB22DD85441F6285CEF7813514114AE475130D85441AE47E1BA7B1351419A99996938D85441E17A145E841351413D0AD7D33ED85441713D0A778E1351410AD7A30042D85441A4703D7A83135141AE47E18A40D85441E17A148E80135141666666763FD85441295C8FB279135141C3F528EC38D85441F6285C2F72135141A4703D4A35D85441295C8F526A13514152B81E6532D85441000000906813514152B81EC535D85441F6285CEF65135141713D0AE737D85441AE47E17A62135141AE47E1FA38D85441295C8FF25E1351410AD7A39038D85441AE47E13A55135141A4703DAA36D85441713D0AF74F135141666666163BD85441D7A3709D49135141AE47E14A3DD85441C3F528CC461351418FC2F50843D85441AE47E1BA4D13514185EB510846D85441713D0AE752135141666666B649D8544114AE47815B1351419A9999294CD85441C3F528CC5E1351419A9999194DD854417B14AEC767135141713D0AE750D85441E17A14EE71135141E17A14DE53D85441CDCCCC0C821351419A9999B955D85441CDCCCCBC82135141D7A370ED55D85441EC51B81E8C135141295C8FB258D85441B81E858B96135141AE47E11A55D85441333333239813514185EB51384ED85441EC51B81E93135141C3F5288C47D854416666669698135141C3F528EC45D85441EC51B8CE99135141A4703DEA40D854413D0AD7B39E135141F6285C6F41D854413D0AD703A5135141EC51B8AE36D85441CDCCCC4CA51351415C8FC2F535D85441EC51B80EA713514148E17A4431D854417B14AE57A813514152B81EE52DD854413D0AD7F3AA13514185EB51F826D85441000000D0AB1351413D0AD7B324D85441F6285CCFAC13514152B81ED520D85441D7A3701DAC1351415C8FC2B516D8544133333383AF1351417B14AEF713D85441D7A370CDBC1351417B14AEA711D854418FC2F518B9135141A4703D6A00D8544100000060B813514114AE47B1FBD75441AE47E17AAA1351415C8FC225FED754411F85EB019F1351418FC2F5D8FFD75441A4703D8A8D135141E17A14DE02D85441CDCCCCEC8B135141EC51B84E03D85441000000A0851351417B14AE0706D854410AD7A3D081135141CDCCCC7C09D854413D0AD7237A135141CDCCCC2C14D8544152B81E55751351411F85EB011AD85441CDCCCCEC6E135141CDCCCC8C1FD85441CDCCCC1C6D135141AE47E1DA24D85441333333F36B135141333333532AD85441
+</a>
+
+<b>
+0106000000010000000103000000010000005400000051A5AFF37A13514174076B1E3AD854412CF54AAF791351415A8994EA38D854410163BE3972135141FFC3424F35D85441295C8F526A13514152B81E6532D85441000000906813514152B81EC535D85441F6285CEF65135141713D0AE737D85441AE47E17A62135141AE47E1FA38D85441295C8FF25E1351410AD7A39038D85441AE47E13A55135141A4703DAA36D85441713D0AF74F135141666666163BD85441D7A3709D49135141AE47E14A3DD85441C3F528CC461351418FC2F50843D85441AE47E1BA4D13514185EB510846D85441713D0AE752135141666666B649D8544114AE47815B1351419A9999294CD85441C3F528CC5E1351419A9999194DD854417B14AEC767135141713D0AE750D85441E17A14EE71135141E17A14DE53D85441CDCCCC0C821351419A9999B955D85441CDCCCCBC82135141D7A370ED55D85441EC51B81E8C135141295C8FB258D85441B81E858B96135141AE47E11A55D85441333333239813514185EB51384ED85441EC51B81E93135141C3F5288C47D854416666669698135141C3F528EC45D85441EC51B8CE99135141A4703DEA40D854413D0AD7B39E135141F6285C6F41D854413D0AD703A5135141EC51B8AE36D85441CDCCCC4CA51351415C8FC2F535D85441EC51B80EA713514148E17A4431D854417B14AE57A813514152B81EE52DD854413D0AD7F3AA13514185EB51F826D85441000000D0AB1351413D0AD7B324D85441F6285CCFAC13514152B81ED520D85441D7A3701DAC1351415C8FC2B516D8544133333383AF1351417B14AEF713D85441D7A370CDBC1351417B14AEA711D854418FC2F518B9135141A4703D6A00D8544100000060B813514114AE47B1FBD75441AE47E17AAA1351415C8FC225FED754411F85EB019F1351418FC2F5D8FFD75441A4703D8A8D135141E17A14DE02D85441CDCCCCEC8B135141EC51B84E03D85441000000A0851351417B14AE0706D854410AD7A3D081135141CDCCCC7C09D854413D0AD7237A135141CDCCCC2C14D8544152B81E55751351411F85EB011AD85441CDCCCCEC6E135141CDCCCC8C1FD85441CDCCCC1C6D135141AE47E1DA24D854410A3D60F76B1351415163DD552AD85441475F7DEA6C135141B5E900F12AD854418D23DA816E135141F563F4F42BD854418F9B8EA370135141D1321A732CD8544139931DE47513514124C39EA62DD854415CE94F0E761351414C6545B02DD85441066D4B3476135141F1195ECC2DD8544167D9D19E77135141774BCF1A2FD854417E5401A378135141890AD70A30D85441EDB0EEDD781351415ED1334130D85441C3F587F1781351417F69915730D8544167DB028279135141E87604FA31D85441FF3FED6B7A13514175717E9F34D854419C7AF0AC7A1351419E48C95B35D85441B32126237B135141636426B236D8544197C98D627B1351416C37C96937D85441412D91BC7B135141BE5DDA6A38D854411AD2D1ED7C135141A6BF8F4D39D854412F4A520E7E135141C456D4233AD8544199B6413B7E13514131D633453AD85441E6D187677E135141939515663AD8544172D7F7EE7F1351415C41CD883BD85441258A373182135141262D43363DD85441E846BDA9821351411CFEC58F3DD85441BEE6725D841351416F095FD33ED85441F247CBBF861351412A148E933FD85441713D0A778E1351410AD7A30042D85441AD518FC78A135141FFA0458341D8544180483FC58613514100B8E5FA40D854411CB45478831351414AAB2C8A40D8544120C7DE1A8313514194ECA26740D8544113664A8D80135141CEACA5753FD85441BA3A363F8013514193F32E2B3FD854414C4E50447D13514160719B533CD8544151A5AFF37A13514174076B1E3AD85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>344815 - 226442
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000070000007B14AEA795FA504185EB5128ACC65441A4703DCA98FA504148E17A64B1C65441B81E855BB9FA50415C8FC285B0C65441F6285CAFB4FA50419A9999B9A8C654411F85EB0195FA5041295C8F92A9C6544114AE475194FA5041713D0A97A9C654417B14AEA795FA504185EB5128ACC65441
+</a>
+
+<b>
+0106000000010000000103000000010000000800000004CFFF9AB4FA5041210D25BAA8C65441DF8A6382B3FA50418DF5A6C1A8C654413AC5770C9AFA5041755D0870A9C6544175AE7D5097FA50414F86C282A9C65441CA0C6B469BFA5041663C7C53B1C65441B81E855BB9FA50415C8FC285B0C65441EB285CAFB4FA50419A9999B9A8C6544104CFFF9AB4FA5041210D25BAA8C65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>344815 - 291462
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000070000007B14AEA795FA504185EB5128ACC65441A4703DCA98FA504148E17A64B1C65441B81E855BB9FA50415C8FC285B0C65441F6285CAFB4FA50419A9999B9A8C654411F85EB0195FA5041295C8F92A9C6544114AE475194FA5041713D0A97A9C654417B14AEA795FA504185EB5128ACC65441
+</a>
+
+<b>
+0106000000010000000103000000010000000800000004CFFF9AB4FA5041210D25BAA8C65441DF8A6382B3FA50418DF5A6C1A8C654413AC5770C9AFA5041755D0870A9C6544175AE7D5097FA50414F86C282A9C65441CA0C6B469BFA5041663C7C53B1C65441B81E855BB9FA50415C8FC285B0C65441EB285CAFB4FA50419A9999B9A8C6544104CFFF9AB4FA5041210D25BAA8C65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>344829 - 232299
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001A000000AE47E1FAA6FA504148E17A2449C55441E17A143E8EFA5041E17A14BE47C55441666666168FFA5041000000D04BC55441000000508FFA50419A9999A94DC554413D0AD7D391FA5041E17A14CE4DC55441F6285C6FA5FA5041A4703DEA4EC554419A9999B9BAFA5041EC51B81E50C554411F85EBF1CFFA50411F85EB5151C554418FC2F5B8CFFA50419A9999B950C55441000000D0CBFA50419A9999394BC554413D0AD743C9FA504148E17AA447C55441F6285C2FC1FA5041A4703D0A33C55441AE47E17ABFFA5041E17A14CE31C5544114AE4751C1FA504185EB510837C554411F85EB31C1FA5041C3F5286C3BC55441F6285C9FC1FA50417B14AEA73EC55441A4703D5AC2FA504148E17AA441C5544148E17A54C3FA5041666666E643C554417B14AE47C5FA504148E17AA446C5544152B81E25C8FA5041D7A3704D4AC5544185EB51A8CCFA5041C3F5286C4FC55441CDCCCC7CC9FA5041CDCCCC5C4FC554419A9999D9C4FA504152B81ED54AC554415C8FC275BEFA504185EB51784AC5544100000040BDFA5041713D0A674AC55441AE47E1FAA6FA504148E17A2449C55441
+</a>
+
+<b>
+01060000000100000001030000000100000011000000970AD743C9FA5041C7E17AA447C55441FAD15C12C6FA5041517810803FC55441A4AB2D0EC6FA5041AB3C65753FC55441F6285C2FC1FA5041A4703D0A33C5544172340C92C0FA50414DD84A9832C55441C047E17ABFFA5041167B14CE31C554414D54E749C1FA504170B5EB3E37C55441542C4825C1FA5041755B7DAD39C554414D54E749C1FA504129E59C773CC55441B0F363DCC1FA50410D36D8F83FC5544101776ECAC2FA5041B15347D542C55441198EC8CAC3FA5041E8595CB144C554413EBC7CCBC5FA5041A3BBDC5647C55441F1459C95C8FA504178A067EA4AC55441B4B4208EC8FA50410D395BFF4AC55441CF48ACC7CBFA504141CFE32D4BC55441970AD743C9FA5041C7E17AA447C55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>351903 - 1282166
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000D0000008FC2F508031651419A9999190CF3544148E17AE4061651410AD7A3200EF3544185EB51E80C16514114AE470111F354418FC2F53811165141D7A3708D13F35441AE47E1BA111651415C8FC2F512F354411F85EB4114165141713D0AA70FF354417B14AED70B16514148E17AB40BF3544133333343041651417B14AEE708F35441713D0AC7FA15514148E17A0406F35441AE47E11AF2155141295C8F4204F35441AE47E1BAF1155141AE47E10A08F354413D0AD773FB155141295C8F020AF354418FC2F508031651419A9999190CF35441
+</a>
+
+<b>
+0106000000010000000103000000010000001600000048E17AE4061651410AD7A3200EF3544185EB51E80C16514114AE470111F354418FC2F53811165141D7A3708D13F354414C37898911165141EC51B8DE13F354414A0C02931216514148E17A1413F35441AD6D18571316514119F124F811F354415C8FC26513165141AE47E1E211F354412B8716390E165141A4703D6A0DF35441EC51B8AE0916514123DBF9AE0BF354414E6210A80416514191ED7C870AF354415839B4D800165141AAF1D2C508F354413D0AD703FE15514177BE9F1A06F3544119045696FA1551414E6210B005F35441713D0AAFF21551417F6ABCE403F3544191ED7C17F215514121B0723008F3544168B8F34DF31551410307D66C08F35441AB82B54FF31551415BB1CD5C08F354413D0AD773FB155141295C8F020AF354418FC2F508031651419A9999190CF35441E4884FC103165141A09F7E7A0CF35441B46B7E6A0416514181CD6AD30CF3544148E17AE4061651410AD7A3200EF35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>351903 - 3592729
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000D0000008FC2F508031651419A9999190CF3544148E17AE4061651410AD7A3200EF3544185EB51E80C16514114AE470111F354418FC2F53811165141D7A3708D13F35441AE47E1BA111651415C8FC2F512F354411F85EB4114165141713D0AA70FF354417B14AED70B16514148E17AB40BF3544133333343041651417B14AEE708F35441713D0AC7FA15514148E17A0406F35441AE47E11AF2155141295C8F4204F35441AE47E1BAF1155141AE47E10A08F354413D0AD773FB155141295C8F020AF354418FC2F508031651419A9999190CF35441
+</a>
+
+<b>
+0106000000010000000103000000010000001600000048E17AE4061651410AD7A3200EF3544185EB51E80C16514114AE470111F354418FC2F53811165141D7A3708D13F354414C37898911165141EC51B8DE13F354414A0C02931216514148E17A1413F35441AD6D18571316514119F124F811F354415C8FC26513165141AE47E1E211F354412B8716390E165141A4703D6A0DF35441EC51B8AE0916514123DBF9AE0BF354414E6210A80416514191ED7C870AF354415839B4D800165141AAF1D2C508F354413D0AD703FE15514177BE9F1A06F3544119045696FA1551414E6210B005F35441713D0AAFF21551417F6ABCE403F3544191ED7C17F215514121B0723008F3544168B8F34DF31551410307D66C08F35441AB82B54FF31551415BB1CD5C08F354413D0AD773FB155141295C8F020AF354418FC2F508031651419A9999190CF35441E4884FC103165141A09F7E7A0CF35441B46B7E6A0416514181CD6AD30CF3544148E17AE4061651410AD7A3200EF35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>346170 - 3027666
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000000D000000EC51B88EB25551417B14AE173C5B5441B81E853BB05551410AD7A3E03F5B5441E17A140EB655514185EB5158425B544133333343C75551410AD7A3504A5B54410AD7A300DD5551417B14AE57535B54419A999979EF5551415C8FC2055B5B5441295C8FB20256514100000060635B544185EB51D80256514152B81EF5625B5441666666660D565141EC51B82E4D5B5441F6285C8FE9555141F6285C5F385B544133333353C65551419A9999E9235B544114AE4761B4555141A4703DBA395B5441EC51B88EB25551417B14AE173C5B5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000002E64B39DC5555141DC046A8D495B54411CCE8313C555514160EA9802485B5441A895BB5DC4555141F13848C7455B5441546DE3DBC3555141C5A7D7F3435B5441F03C1340C3555141DB364788425B544128DC7208C255514102CEAE36415B54411D5BF268C0555141296516E53F5B5441E0C1897BBE555141610476AD3E5B5441B43019A8BC55514199A3D5753D5B5441CABF883CBB555141246B0DC03C5B54416C16301BB95551415C0A6D883B5B5441485E6415B655514139ECB45B425B54412E64B39DC5555141DC046A8D495B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>346170 - 3444574
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000000D000000EC51B88EB25551417B14AE173C5B5441B81E853BB05551410AD7A3E03F5B5441E17A140EB655514185EB5158425B544133333343C75551410AD7A3504A5B54410AD7A300DD5551417B14AE57535B54419A999979EF5551415C8FC2055B5B5441295C8FB20256514100000060635B544185EB51D80256514152B81EF5625B5441666666660D565141EC51B82E4D5B5441F6285C8FE9555141F6285C5F385B544133333353C65551419A9999E9235B544114AE4761B4555141A4703DBA395B5441EC51B88EB25551417B14AE173C5B5441
+</a>
+
+<b>
+0106000000010000000103000000010000000D0000002E64B39DC5555141DC046A8D495B54411CCE8313C555514160EA9802485B5441A895BB5DC4555141F13848C7455B5441546DE3DBC3555141C5A7D7F3435B5441F03C1340C3555141DB364788425B544128DC7208C255514102CEAE36415B54411D5BF268C0555141296516E53F5B5441E0C1897BBE555141610476AD3E5B5441B43019A8BC55514199A3D5753D5B5441CABF883CBB555141246B0DC03C5B54416C16301BB95551415C0A6D883B5B5441485E6415B655514139ECB45B425B54412E64B39DC5555141DC046A8D495B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>416115 - 34480
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000020000001B00000014AE47115C355141EC51B8FEF81F5541E17A14FE5A3551413D0AD7C3F61F5541666666D65A355141AE47E13AF41F5541A4703DEA5A355141295C8F62F11F5541EC51B8AE5B3551419A9999D9EE1F5541C3F5284C5D355141295C8FB2EC1F5541A4703D9A6035514133333303E61F55413D0AD72361355141C3F528DCE21F554148E17A3465355141EC51B83EDC1F5541A4703D5A6D35514148E17AB4D41F5541713D0AE7683551417B14AE97D41F55417B14AE175A355141EC51B87ED81F5541AE47E1BA5135514148E17A04DB1F5541AE47E17A45355141CDCCCCCCDE1F5541B81E851B443551411F85EB91E01F5541EC51B81E423551419A9999D9F51F55410000005045355141D7A3705DFA1F5541B81E85AB47355141E17A148EFC1F55415C8FC2754A35514114AE4701FE1F5541295C8FE26535514148E17AF406205541EC51B83E6D355141B81E855B09205541000000907D355141F6285C3F0B20554152B81ED57235514133333383042055410AD7A3606A355141EC51B8CEFF1F5541F6285CBF6835514148E17A240020554114AE47115D35514148E17A74FA1F554114AE47115C355141EC51B8FEF81F55410D000000295C8F426A355141EC51B83E012055417B14AE476D3551419A99992903205541B81E850B7035514114AE476104205541A4703D6A70355141713D0A2705205541713D0A57703551415C8FC22506205541A4703D5A6F35514185EB51F80720554152B81EA56E355141A4703D1A082055410AD7A3C0673551411F85EB4106205541F6285C4F67355141C3F5287C05205541295C8F62673551413D0AD773042055419A99999968355141E17A143E02205541295C8F726935514185EB514801205541295C8F426A355141EC51B83E01205541
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000140B46E15A3551411BA2B6ABF21F554132900CE85A3551418A1C875BF51F5541E4BB048C5B35514144A8C4E1F71F5541276F69D55C3551413B47E37DF71F5541437035165D35514143338BEFF21F55415D76977A5E355141A11D0100EE1F55413B848DA461355141AA04134EE81F5541E18FEB4C64355141ECEDBC1DE31F5541179719F265355141D4E2C495E01F5541F6A40F1C693551410FDB30D0DE1F55417ABE63EE6E35514131CD3AA6DB1F5541B0C59193703551416DC5A6E0D91F55419AB503E86C35514103B2B472D51F5541BD542F906A355141380F4B49D71F554102A01DB367355141F9E4B3EFD91F55417DF9C2F466355141BA0DDD9FDA1F554156464C616435514197BC6096DD1F554163737A94633551419FA0AEE3DE1F5541076F81F761355141041AB783E11F5541CB893F6961355141DC2B366BE21F5541B996BB0061355141146811AAE31F5541240BE6F660355141231ABFE3E31F5541A4703D9A6035514133333303E61F554107F4A98C5E355141DF71472AEA1F5541AC3C2F5E5E355141BEE44A88EA1F5541185046345E3551414B3610DDEA1F5541C3F5284C5D355141295C8FB2EC1F5541EC281ADA5B3551414B8BC79FEE1F554155F931295B355141028D9F92F01F5541140B46E15A3551411BA2B6ABF21F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>416115 - 74286
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000020000001B00000014AE47115C355141EC51B8FEF81F5541E17A14FE5A3551413D0AD7C3F61F5541666666D65A355141AE47E13AF41F5541A4703DEA5A355141295C8F62F11F5541EC51B8AE5B3551419A9999D9EE1F5541C3F5284C5D355141295C8FB2EC1F5541A4703D9A6035514133333303E61F55413D0AD72361355141C3F528DCE21F554148E17A3465355141EC51B83EDC1F5541A4703D5A6D35514148E17AB4D41F5541713D0AE7683551417B14AE97D41F55417B14AE175A355141EC51B87ED81F5541AE47E1BA5135514148E17A04DB1F5541AE47E17A45355141CDCCCCCCDE1F5541B81E851B443551411F85EB91E01F5541EC51B81E423551419A9999D9F51F55410000005045355141D7A3705DFA1F5541B81E85AB47355141E17A148EFC1F55415C8FC2754A35514114AE4701FE1F5541295C8FE26535514148E17AF406205541EC51B83E6D355141B81E855B09205541000000907D355141F6285C3F0B20554152B81ED57235514133333383042055410AD7A3606A355141EC51B8CEFF1F5541F6285CBF6835514148E17A240020554114AE47115D35514148E17A74FA1F554114AE47115C355141EC51B8FEF81F55410D000000295C8F426A355141EC51B83E012055417B14AE476D3551419A99992903205541B81E850B7035514114AE476104205541A4703D6A70355141713D0A2705205541713D0A57703551415C8FC22506205541A4703D5A6F35514185EB51F80720554152B81EA56E355141A4703D1A082055410AD7A3C0673551411F85EB4106205541F6285C4F67355141C3F5287C05205541295C8F62673551413D0AD773042055419A99999968355141E17A143E02205541295C8F726935514185EB514801205541295C8F426A355141EC51B83E01205541
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000140B46E15A3551411BA2B6ABF21F554132900CE85A3551418A1C875BF51F5541E4BB048C5B35514144A8C4E1F71F5541276F69D55C3551413B47E37DF71F5541437035165D35514143338BEFF21F55415D76977A5E355141A11D0100EE1F55413B848DA461355141AA04134EE81F5541E18FEB4C64355141ECEDBC1DE31F5541179719F265355141D4E2C495E01F5541F6A40F1C693551410FDB30D0DE1F55417ABE63EE6E35514131CD3AA6DB1F5541B0C59193703551416DC5A6E0D91F55419AB503E86C35514103B2B472D51F5541BD542F906A355141380F4B49D71F554102A01DB367355141F9E4B3EFD91F55417DF9C2F466355141BA0DDD9FDA1F554156464C616435514197BC6096DD1F554163737A94633551419FA0AEE3DE1F5541076F81F761355141041AB783E11F5541CB893F6961355141DC2B366BE21F5541B996BB0061355141146811AAE31F5541240BE6F660355141231ABFE3E31F5541A4703D9A6035514133333303E61F554107F4A98C5E355141DF71472AEA1F5541AC3C2F5E5E355141BEE44A88EA1F5541185046345E3551414B3610DDEA1F5541C3F5284C5D355141295C8FB2EC1F5541EC281ADA5B3551414B8BC79FEE1F554155F931295B355141028D9F92F01F5541140B46E15A3551411BA2B6ABF21F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>347539 - 3020177
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000017000000CDCCCCDC59F75041000000B074255441EC51B80E54F75041A4703DDA7425544114AE47F152F750418FC2F5887125544185EB517852F750411F85EB21702554416666660651F75041666666D66B255441D7A370FD48F75041E17A140E6D255441AE47E12A38F750417B14AE4770255441CDCCCCBC40F7504152B81E157A255441C3F5284C41F75041A4703D3A7B2554413D0AD75344F750413D0AD76381255441AE47E18A46F750416666668681255441CDCCCC0C49F75041A4703D4A8325544152B81E354DF75041713D0AB784255441E17A145E51F75041EC51B8AE85255441295C8F5256F7504152B81EB5862554410AD7A3B057F75041F6285CEF86255441AE47E1DA59F750411F85EB3186255441F6285C4F5AF75041A4703DBA80255441713D0AA75BF75041333333C37E255441C3F5280C5CF750413D0AD7A37C2554418FC2F5785CF750418FC2F5D879255441F6285C4F5AF75041F6285C7F77255441CDCCCCDC59F75041000000B074255441
+</a>
+
+<b>
+010600000001000000010300000001000000280000004FBA471534F75041D7AD32CB6C25544178D1972134F75041E7CEE7DA6C2554419F0C25C833F75041992587FC6C255441B81E850B30F75041C3F528FC6E2554417B14AE9730F75041EC51B80E7225544194B198AE31F750415EF2F9087725544186FAA7D336F750419D118B7E772554418267456739F75041A9660F7F7825544137AF43513BF7504177F695517A2554416F0D04DE40F7504177EFDA297B255441847F2F4E41F75041B90E5C3E7B255441CDCCCCBC40F7504152B81E157A255441AE47E12A38F750417B14AE47702554415DC2201E49F75041168120096D25544100A9ADC64CF75041C770377B6C2554416666660651F75041666666D66B25544114AE47F152F750418FC2F588712554411F85EBA15BF750413D0AD7F3702554419A9999B95AF7504114AE47616A255441656E66795FF750412F5174026A25544110F1543E63F75041FEEF31B7692554417AA9538167F750412EA6E86B69255441C3F5288C6FF75041295C8FF268255441040A8C676FF750412A873D4966255441B0519F4D6FF7504120D3D06664255441D7E30D436FF750417B5128A263255441B81E852B6FF7504148E17A0460255441B71BBC926BF75041BC41BB7F6025544123C9B49864F7504109C5CC6E6125544194D0BB9E5EF75041850E983B62255441D90F3C2E59F750417E90FCF562255441B81E85CB58F750413333330363255441EC51B8CE50F750410AD7A380642554418FF5CAF94AF7504115D7A3CB65255441A7A62F5B41F750417D31A1ED67255441D7A370ED3FF75041EC51B83E68255441E26938FB3CF75041FD183D4F69255441CDCCCC2C37F7504185EB51686B255441CC41E8F635F75041DDAB42F36B2554414FBA471534F75041D7AD32CB6C255441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>347539 - 3574020
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000017000000CDCCCCDC59F75041000000B074255441EC51B80E54F75041A4703DDA7425544114AE47F152F750418FC2F5887125544185EB517852F750411F85EB21702554416666660651F75041666666D66B255441D7A370FD48F75041E17A140E6D255441AE47E12A38F750417B14AE4770255441CDCCCCBC40F7504152B81E157A255441C3F5284C41F75041A4703D3A7B2554413D0AD75344F750413D0AD76381255441AE47E18A46F750416666668681255441CDCCCC0C49F75041A4703D4A8325544152B81E354DF75041713D0AB784255441E17A145E51F75041EC51B8AE85255441295C8F5256F7504152B81EB5862554410AD7A3B057F75041F6285CEF86255441AE47E1DA59F750411F85EB3186255441F6285C4F5AF75041A4703DBA80255441713D0AA75BF75041333333C37E255441C3F5280C5CF750413D0AD7A37C2554418FC2F5785CF750418FC2F5D879255441F6285C4F5AF75041F6285C7F77255441CDCCCCDC59F75041000000B074255441
+</a>
+
+<b>
+010600000001000000010300000001000000280000004FBA471534F75041D7AD32CB6C25544178D1972134F75041E7CEE7DA6C2554419F0C25C833F75041992587FC6C255441B81E850B30F75041C3F528FC6E2554417B14AE9730F75041EC51B80E7225544194B198AE31F750415EF2F9087725544186FAA7D336F750419D118B7E772554418267456739F75041A9660F7F7825544137AF43513BF7504177F695517A2554416F0D04DE40F7504177EFDA297B255441847F2F4E41F75041B90E5C3E7B255441CDCCCCBC40F7504152B81E157A255441AE47E12A38F750417B14AE47702554415DC2201E49F75041168120096D25544100A9ADC64CF75041C770377B6C2554416666660651F75041666666D66B25544114AE47F152F750418FC2F588712554411F85EBA15BF750413D0AD7F3702554419A9999B95AF7504114AE47616A255441656E66795FF750412F5174026A25544110F1543E63F75041FEEF31B7692554417AA9538167F750412EA6E86B69255441C3F5288C6FF75041295C8FF268255441040A8C676FF750412A873D4966255441B0519F4D6FF7504120D3D06664255441D7E30D436FF750417B5128A263255441B81E852B6FF7504148E17A0460255441B71BBC926BF75041BC41BB7F6025544123C9B49864F7504109C5CC6E6125544194D0BB9E5EF75041850E983B62255441D90F3C2E59F750417E90FCF562255441B81E85CB58F750413333330363255441EC51B8CE50F750410AD7A380642554418FF5CAF94AF7504115D7A3CB65255441A7A62F5B41F750417D31A1ED67255441D7A370ED3FF75041EC51B83E68255441E26938FB3CF75041FD183D4F69255441CDCCCC2C37F7504185EB51686B255441CC41E8F635F75041DDAB42F36B2554414FBA471534F75041D7AD32CB6C255441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>347539 - 151179
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000017000000CDCCCCDC59F75041000000B074255441EC51B80E54F75041A4703DDA7425544114AE47F152F750418FC2F5887125544185EB517852F750411F85EB21702554416666660651F75041666666D66B255441D7A370FD48F75041E17A140E6D255441AE47E12A38F750417B14AE4770255441CDCCCCBC40F7504152B81E157A255441C3F5284C41F75041A4703D3A7B2554413D0AD75344F750413D0AD76381255441AE47E18A46F750416666668681255441CDCCCC0C49F75041A4703D4A8325544152B81E354DF75041713D0AB784255441E17A145E51F75041EC51B8AE85255441295C8F5256F7504152B81EB5862554410AD7A3B057F75041F6285CEF86255441AE47E1DA59F750411F85EB3186255441F6285C4F5AF75041A4703DBA80255441713D0AA75BF75041333333C37E255441C3F5280C5CF750413D0AD7A37C2554418FC2F5785CF750418FC2F5D879255441F6285C4F5AF75041F6285C7F77255441CDCCCCDC59F75041000000B074255441
+</a>
+
+<b>
+01060000000100000001030000000100000028000000B0519F4D6FF7504120D3D06664255441D7E30D436FF750417B5128A263255441B81E852B6FF7504148E17A0460255441B71BBC926BF75041BC41BB7F6025544123C9B49864F7504109C5CC6E6125544194D0BB9E5EF75041850E983B62255441D90F3C2E59F750417E90FCF562255441B81E85CB58F750413333330363255441EC51B8CE50F750410AD7A380642554418FF5CAF94AF7504115D7A3CB65255441A7A62F5B41F750417D31A1ED67255441D7A370ED3FF75041EC51B83E68255441E26938FB3CF75041FD183D4F69255441CDCCCC2C37F7504185EB51686B255441CC41E8F635F75041DDAB42F36B2554414FBA471534F75041D7AD32CB6C25544178D1972134F75041E7CEE7DA6C2554419F0C25C833F75041992587FC6C255441B81E850B30F75041C3F528FC6E2554417B14AE9730F75041EC51B80E7225544194B198AE31F750415EF2F9087725544186FAA7D336F750419D118B7E772554418267456739F75041A9660F7F7825544137AF43513BF7504177F695517A2554416F0D04DE40F7504177EFDA297B255441847F2F4E41F75041B90E5C3E7B255441CDCCCCBC40F7504152B81E157A255441AE47E12A38F750417B14AE47702554415DC2201E49F75041168120096D25544100A9ADC64CF75041C770377B6C2554416666660651F75041666666D66B25544114AE47F152F750418FC2F588712554411F85EBA15BF750413D0AD7F3702554419A9999B95AF7504114AE47616A255441656E66795FF750412F5174026A25544110F1543E63F75041FEEF31B7692554417AA9538167F750412EA6E86B69255441C3F5288C6FF75041295C8FF268255441040A8C676FF750412A873D4966255441B0519F4D6FF7504120D3D06664255441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>347539 - 361571
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000017000000CDCCCCDC59F75041000000B074255441EC51B80E54F75041A4703DDA7425544114AE47F152F750418FC2F5887125544185EB517852F750411F85EB21702554416666660651F75041666666D66B255441D7A370FD48F75041E17A140E6D255441AE47E12A38F750417B14AE4770255441CDCCCCBC40F7504152B81E157A255441C3F5284C41F75041A4703D3A7B2554413D0AD75344F750413D0AD76381255441AE47E18A46F750416666668681255441CDCCCC0C49F75041A4703D4A8325544152B81E354DF75041713D0AB784255441E17A145E51F75041EC51B8AE85255441295C8F5256F7504152B81EB5862554410AD7A3B057F75041F6285CEF86255441AE47E1DA59F750411F85EB3186255441F6285C4F5AF75041A4703DBA80255441713D0AA75BF75041333333C37E255441C3F5280C5CF750413D0AD7A37C2554418FC2F5785CF750418FC2F5D879255441F6285C4F5AF75041F6285C7F77255441CDCCCCDC59F75041000000B074255441
+</a>
+
+<b>
+01060000000100000001030000000100000028000000B0519F4D6FF7504120D3D06664255441D7E30D436FF750417B5128A263255441B81E852B6FF7504148E17A0460255441B71BBC926BF75041BC41BB7F6025544123C9B49864F7504109C5CC6E6125544194D0BB9E5EF75041850E983B62255441D90F3C2E59F750417E90FCF562255441B81E85CB58F750413333330363255441EC51B8CE50F750410AD7A380642554418FF5CAF94AF7504115D7A3CB65255441A7A62F5B41F750417D31A1ED67255441D7A370ED3FF75041EC51B83E68255441E26938FB3CF75041FD183D4F69255441CDCCCC2C37F7504185EB51686B255441CC41E8F635F75041DDAB42F36B2554414FBA471534F75041D7AD32CB6C25544178D1972134F75041E7CEE7DA6C2554419F0C25C833F75041992587FC6C255441B81E850B30F75041C3F528FC6E2554417B14AE9730F75041EC51B80E7225544194B198AE31F750415EF2F9087725544186FAA7D336F750419D118B7E772554418267456739F75041A9660F7F7825544137AF43513BF7504177F695517A2554416F0D04DE40F7504177EFDA297B255441847F2F4E41F75041B90E5C3E7B255441CDCCCCBC40F7504152B81E157A255441AE47E12A38F750417B14AE47702554415DC2201E49F75041168120096D25544100A9ADC64CF75041C770377B6C2554416666660651F75041666666D66B25544114AE47F152F750418FC2F588712554411F85EBA15BF750413D0AD7F3702554419A9999B95AF7504114AE47616A255441656E66795FF750412F5174026A25544110F1543E63F75041FEEF31B7692554417AA9538167F750412EA6E86B69255441C3F5288C6FF75041295C8FF268255441040A8C676FF750412A873D4966255441B0519F4D6FF7504120D3D06664255441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>348248 - 1755044
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000200000012000000D7A3700D0DE85041E17A147EAE8454417B14AEC709E85041F6285C7FAC845441333333D305E850411F85EBE1AA845441EC51B88E04E85041F6285C0FAB845441A4703D2A03E85041295C8F82AC8454417B14AE2701E850415C8FC2E5AF845441AE47E14AFFE7504152B81EA5B2845441B81E85ABFCE7504185EB51E8B4845441EC51B86EF9E75041D7A3705DB6845441E17A145EF4E7504148E17A04B884544114AE47E1F4E750413D0AD703DB845441D7A3706DF5E75041D7A3706D00855441295C8F92F7E750410AD7A3A0FF8454419A99996908E850413D0AD7B3F9845441713D0A270AE8504185EB5128F98454418FC2F5980BE85041713D0AF7D38454419A9999C90CE85041A4703D4AB5845441D7A3700D0DE85041E17A147EAE845441090000008FC2F518FDE75041B81E85BBBF8454411F85EBD1FDE750413D0AD7C3BB845441295C8FB2FDE7504166666656B884544114AE47E1FDE75041D7A3700DB6845441333333D300E85041E17A14FEB5845441333333D300E850419A999999B984544185EB515800E850418FC2F5D8BC845441EC51B8AEFFE750419A9999E9BF8454418FC2F518FDE75041B81E85BBBF845441
+</a>
+
+<b>
+01060000000100000001030000000100000022000000AE47E14AFFE7504152B81EA5B2845441B81E85ABFCE7504185EB51E8B4845441EC51B86EF9E75041D7A3705DB6845441E17A145EF4E7504148E17A04B884544152B81E25ECE750413D0AD7B3BA845441713D0A17EBE75041AE47E1FABB845441AE47E1DAEAE75041295C8FC2BD84544148E17AE4EAE750419A999979C684544166666686EBE75041B81E859BDA845441713D0A47EBE750418FC2F548E2845441B81E85BBEBE750413D0AD763018554418FC2F5D8ECE75041CDCCCC8C028554410AD7A360EEE75041D7A3700D03855441D7A3706DF5E75041D7A3706D00855441295C8F92F7E750410AD7A3A0FF8454419A99996908E850413D0AD7B3F9845441713D0A270AE8504185EB5128F98454418FC2F5980BE85041713D0AF7D38454419A9999C90CE85041A4703D4AB5845441D7A3700D0DE85041E17A147EAE8454417B14AEC709E85041F6285C7FAC845441333333D305E850411F85EBE1AA845441EC51B88E04E85041F6285C0FAB845441A4703D2A03E85041295C8F82AC8454417511CE2802E8504181DA6B34AE845441965531F802E85041D86838F3AC8454418EE1C58102E8504115F37FBFB98454417DF9EE9401E85041ED5D1237BC8454415C2941BBFFE75041DD24E711C084544184BEAE43FDE75041E5985288C084544184BEAE43FDE75041921020E8BB84544184BEAE43FDE7504199D5DF96B784544184BEAE43FDE75041B9F6E1A8B4845441AE47E14AFFE7504152B81EA5B2845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>348248 - 3634375
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000200000012000000D7A3700D0DE85041E17A147EAE8454417B14AEC709E85041F6285C7FAC845441333333D305E850411F85EBE1AA845441EC51B88E04E85041F6285C0FAB845441A4703D2A03E85041295C8F82AC8454417B14AE2701E850415C8FC2E5AF845441AE47E14AFFE7504152B81EA5B2845441B81E85ABFCE7504185EB51E8B4845441EC51B86EF9E75041D7A3705DB6845441E17A145EF4E7504148E17A04B884544114AE47E1F4E750413D0AD703DB845441D7A3706DF5E75041D7A3706D00855441295C8F92F7E750410AD7A3A0FF8454419A99996908E850413D0AD7B3F9845441713D0A270AE8504185EB5128F98454418FC2F5980BE85041713D0AF7D38454419A9999C90CE85041A4703D4AB5845441D7A3700D0DE85041E17A147EAE845441090000008FC2F518FDE75041B81E85BBBF8454411F85EBD1FDE750413D0AD7C3BB845441295C8FB2FDE7504166666656B884544114AE47E1FDE75041D7A3700DB6845441333333D300E85041E17A14FEB5845441333333D300E850419A999999B984544185EB515800E850418FC2F5D8BC845441EC51B8AEFFE750419A9999E9BF8454418FC2F518FDE75041B81E85BBBF845441
+</a>
+
+<b>
+01060000000100000001030000000100000022000000AE47E14AFFE7504152B81EA5B2845441B81E85ABFCE7504185EB51E8B4845441EC51B86EF9E75041D7A3705DB6845441E17A145EF4E7504148E17A04B884544152B81E25ECE750413D0AD7B3BA845441713D0A17EBE75041AE47E1FABB845441AE47E1DAEAE75041295C8FC2BD84544148E17AE4EAE750419A999979C684544166666686EBE75041B81E859BDA845441713D0A47EBE750418FC2F548E2845441B81E85BBEBE750413D0AD763018554418FC2F5D8ECE75041CDCCCC8C028554410AD7A360EEE75041D7A3700D03855441D7A3706DF5E75041D7A3706D00855441295C8F92F7E750410AD7A3A0FF8454419A99996908E850413D0AD7B3F9845441713D0A270AE8504185EB5128F98454418FC2F5980BE85041713D0AF7D38454419A9999C90CE85041A4703D4AB5845441D7A3700D0DE85041E17A147EAE8454417B14AEC709E85041F6285C7FAC845441333333D305E850411F85EBE1AA845441EC51B88E04E85041F6285C0FAB845441A4703D2A03E85041295C8F82AC8454417511CE2802E8504181DA6B34AE845441965531F802E85041D86838F3AC8454418EE1C58102E8504115F37FBFB98454417DF9EE9401E85041ED5D1237BC8454415C2941BBFFE75041DD24E711C084544184BEAE43FDE75041E5985288C084544184BEAE43FDE75041921020E8BB84544184BEAE43FDE7504199D5DF96B784544184BEAE43FDE75041B9F6E1A8B4845441AE47E14AFFE7504152B81EA5B2845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>348319 - 3058813
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000049000000713D0A279FF050417B14AED7927854411F85EB91A2F05041EC51B80E99785441CDCCCCBCA5F0504185EB51589878544152B81E35A9F05041F6285CFF967854417B14AE67B4F05041000000309178544152B81E05ADF0504185EB511884785441D7A370DDA8F0504185EB51087E785441B81E85DBA4F050411F85EB017A7854415C8FC2B59EF05041713D0A7775785441713D0A6796F05041E17A145E707854410AD7A3908FF05041CDCCCC7C6C785441A4703D4A88F05041D7A370BD68785441666666B67DF050415C8FC2F563785441EC51B8CE77F05041CDCCCCDC617854418FC2F5886FF05041EC51B89E5F7854411F85EB316DF05041E17A14CE5E7854419A9999096CF05041AE47E1DA5D785441EC51B85E38F0504185EB51D850785441A4703DFA38F050417B14AEA74E78544152B81EB537F05041666666964E78544185EB51A826F050419A9999F94C785441CDCCCC4C26F050410AD7A310507854413D0AD74326F05041EC51B85E50785441713D0AE726F05041D7A370DD517854418FC2F5F827F05041AE47E1FA5278544148E17A5429F050413D0AD7E3537854410AD7A3A02DF0504148E17A8455785441F6285C0F34F050417B14AE07577854410AD7A3B037F050417B14AEF757785441AE47E1BA3CF0504148E17A5459785441333333634CF05041666666B65C785441666666464FF05041295C8F525E785441CDCCCCAC50F05041333333935F7854417B14AE9751F050410000003061785441C3F528EC51F0504114AE470163785441A4703D9A51F05041F6285CCF64785441333333034FF0504148E17AA46A785441EC51B80E4EF05041E17A145E6A785441D7A370AD35F05041C3F5285C637854410AD7A39024F0504114AE47715E785441EC51B8DE23F050419A9999D96178544152B81E5522F050413D0AD723667854417B14AE6720F05041B81E853B6A785441EC51B8CE1AF050413D0AD75374785441D7A3704D13F05041B81E85DB8178544185EB518812F05041A4703D0A84785441AE47E15A1BF05041A4703D7A89785441713D0AF71DF05041AE47E16A8D785441A4703D1A20F05041E17A14DE8E785441D7A370DD2BF0504114AE47D195785441D7A370FD37F0504152B81E359C7854415C8FC2C53EF0504148E17A149F785441713D0AF749F0504152B81E15A27854413D0AD7134CF05041C3F5285CA2785441295C8FB24CF050411F85EB619F785441CDCCCCBC4DF05041C3F5283C94785441000000404EF050419A9999E9907854410AD7A3104FF050418FC2F5288D785441D7A370AD52F05041295C8F628478544152B81EA553F05041295C8FA284785441A4703DAA65F0504185EB5148897854413D0AD76370F050411F85EB418A7854419A99993971F05041000000608A7854418FC2F5F871F050418FC2F5288678544185EB511873F0504185EB51D881785441AE47E12A75F05041F6285C1F7B785441A4703D5A77F05041E17A145E77785441D7A370BD7DF050415C8FC255707854418FC2F5E884F05041AE47E12A737854417B14AE278EF050419A999929797854418FC2F5E891F050411F85EB317D7854418FC2F56898F0504148E17A6487785441713D0A279FF050417B14AED792785441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000D6133FC035F05041E4C39061637854412E8762D635F050411CC0ED6763785441B90D17FD35F0504184BD0D7363785441EEB14AD243F05041751DE56C67785441EC51B80E4EF05041E17A145E6A785441360C753950F05041FC00916965785441606CB29D50F0504118590B8164785441FB06AFD750F050417317D02663785441D63908DD50F0504162A5AAF362785441BA4D36B250F050410154F50B62785441A4703D9A50F05041A4703D8A617854413E21A56750F05041B123873161785441BDED18E24FF0504164495E47607854418A3B971B4FF0504174D2488E5F78544149DB108D4EF050411F16B51A5F785441A323C93C4DF05041087A37675E78544169AA291B4CF05041BD25A1CC5D7854415590147D42F05041D40E14A05B7854410000008037F05041E17A141E59785441091D1BB836F05041AB817D815D785441D7A370AD35F05041C3F5285C63785441D6133FC035F05041E4C3906163785441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>348319 - 3341396
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000049000000713D0A279FF050417B14AED7927854411F85EB91A2F05041EC51B80E99785441CDCCCCBCA5F0504185EB51589878544152B81E35A9F05041F6285CFF967854417B14AE67B4F05041000000309178544152B81E05ADF0504185EB511884785441D7A370DDA8F0504185EB51087E785441B81E85DBA4F050411F85EB017A7854415C8FC2B59EF05041713D0A7775785441713D0A6796F05041E17A145E707854410AD7A3908FF05041CDCCCC7C6C785441A4703D4A88F05041D7A370BD68785441666666B67DF050415C8FC2F563785441EC51B8CE77F05041CDCCCCDC617854418FC2F5886FF05041EC51B89E5F7854411F85EB316DF05041E17A14CE5E7854419A9999096CF05041AE47E1DA5D785441EC51B85E38F0504185EB51D850785441A4703DFA38F050417B14AEA74E78544152B81EB537F05041666666964E78544185EB51A826F050419A9999F94C785441CDCCCC4C26F050410AD7A310507854413D0AD74326F05041EC51B85E50785441713D0AE726F05041D7A370DD517854418FC2F5F827F05041AE47E1FA5278544148E17A5429F050413D0AD7E3537854410AD7A3A02DF0504148E17A8455785441F6285C0F34F050417B14AE07577854410AD7A3B037F050417B14AEF757785441AE47E1BA3CF0504148E17A5459785441333333634CF05041666666B65C785441666666464FF05041295C8F525E785441CDCCCCAC50F05041333333935F7854417B14AE9751F050410000003061785441C3F528EC51F0504114AE470163785441A4703D9A51F05041F6285CCF64785441333333034FF0504148E17AA46A785441EC51B80E4EF05041E17A145E6A785441D7A370AD35F05041C3F5285C637854410AD7A39024F0504114AE47715E785441EC51B8DE23F050419A9999D96178544152B81E5522F050413D0AD723667854417B14AE6720F05041B81E853B6A785441EC51B8CE1AF050413D0AD75374785441D7A3704D13F05041B81E85DB8178544185EB518812F05041A4703D0A84785441AE47E15A1BF05041A4703D7A89785441713D0AF71DF05041AE47E16A8D785441A4703D1A20F05041E17A14DE8E785441D7A370DD2BF0504114AE47D195785441D7A370FD37F0504152B81E359C7854415C8FC2C53EF0504148E17A149F785441713D0AF749F0504152B81E15A27854413D0AD7134CF05041C3F5285CA2785441295C8FB24CF050411F85EB619F785441CDCCCCBC4DF05041C3F5283C94785441000000404EF050419A9999E9907854410AD7A3104FF050418FC2F5288D785441D7A370AD52F05041295C8F628478544152B81EA553F05041295C8FA284785441A4703DAA65F0504185EB5148897854413D0AD76370F050411F85EB418A7854419A99993971F05041000000608A7854418FC2F5F871F050418FC2F5288678544185EB511873F0504185EB51D881785441AE47E12A75F05041F6285C1F7B785441A4703D5A77F05041E17A145E77785441D7A370BD7DF050415C8FC255707854418FC2F5E884F05041AE47E12A737854417B14AE278EF050419A999929797854418FC2F5E891F050411F85EB317D7854418FC2F56898F0504148E17A6487785441713D0A279FF050417B14AED792785441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000D6133FC035F05041E4C39061637854412E8762D635F050411CC0ED6763785441B90D17FD35F0504184BD0D7363785441EEB14AD243F05041751DE56C67785441EC51B80E4EF05041E17A145E6A785441360C753950F05041FC00916965785441606CB29D50F0504118590B8164785441FB06AFD750F050417317D02663785441D63908DD50F0504162A5AAF362785441BA4D36B250F050410154F50B62785441A4703D9A50F05041A4703D8A617854413E21A56750F05041B123873161785441BDED18E24FF0504164495E47607854418A3B971B4FF0504174D2488E5F78544149DB108D4EF050411F16B51A5F785441A323C93C4DF05041087A37675E78544169AA291B4CF05041BD25A1CC5D7854415590147D42F05041D40E14A05B7854410000008037F05041E17A141E59785441091D1BB836F05041AB817D815D785441D7A370AD35F05041C3F5285C63785441D6133FC035F05041E4C3906163785441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>348484 - 59238
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000002B00000085EB51C854F2504185EB51A8DF785441666666964DF250417B14AE27D47854419A9999F94EF250417B14AE57D2785441713D0A7750F250419A9999A9D2785441295C8FE25AF25041B81E856BCC78544152B81ED559F2504148E17A34C778544185EB514858F25041EC51B88EBB785441C3F528CC57F2504133333363B6785441EC51B82E58F2504133333333B2785441C3F528EC57F25041713D0A17AF7854410000002056F25041713D0A27AA785441AE47E1DA47F25041F6285CBF97785441713D0A773FF25041F6285CFFA6785441F6285C7F40F250417B14AE27B6785441E17A14EE41F2504148E17AA4BD7854410AD7A37046F25041EC51B84ECA785441A4703D0A48F25041AE47E10AD0785441D7A3703D48F2504185EB51D8D1785441A4703D7A48F2504133333303D4785441333333134AF2504100000060D8785441F6285C3F45F2504114AE4711DB7854419A9999E943F2504114AE47B1DD7854417B14AEC743F2504148E17AE4E3785441713D0A474AF25041CDCCCC3CE3785441E17A14BE4DF250418FC2F538E2785441D7A370DD52F2504148E17A84E07854419A9999D954F25041713D0AC7DF7854411F85EBE15AF25041C3F5286CDD785441EC51B88E60F25041295C8F82DC785441295C8F9260F25041EC51B81EDB785441A4703DDA5DF250413D0AD763D77854413D0AD7935CF250418FC2F558D67854417B14AE975BF250415C8FC2B5D5785441295C8F425AF25041AE47E17AD5785441EC51B84E57F25041F6285CCFD6785441AE47E14A58F250411F85EB41D8785441EC51B84E59F25041E17A14BED77854415C8FC2155AF2504100000050D7785441F6285CFF5AF250417B14AEF7D8785441F6285C2F59F250419A9999D9D9785441F6285CAF5AF25041EC51B88EDC7854417B14AE6757F2504100000010DE78544185EB51C854F2504185EB51A8DF785441
+</a>
+
+<b>
+0106000000010000000103000000010000000B00000085C8DAB841F25041360D478EBC785441DFCA5EC641F25041DA1434BABC78544177FCE60E58F250416D96ECB7B97854419540B4CE57F250416DD7517EB678544155E6EBCB57F25041E001AA72B67854418311AEBA4FF25041077BD1E3B8785441D12B95F747F2504181FA93E4B9785441021C354446F25041A1108F27BA785441BFF2575241F2504125017776BA785441F000298F41F25041368758B4BB78544185C8DAB841F25041360D478EBC785441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>348484 - 136672
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000002B00000085EB51C854F2504185EB51A8DF785441666666964DF250417B14AE27D47854419A9999F94EF250417B14AE57D2785441713D0A7750F250419A9999A9D2785441295C8FE25AF25041B81E856BCC78544152B81ED559F2504148E17A34C778544185EB514858F25041EC51B88EBB785441C3F528CC57F2504133333363B6785441EC51B82E58F2504133333333B2785441C3F528EC57F25041713D0A17AF7854410000002056F25041713D0A27AA785441AE47E1DA47F25041F6285CBF97785441713D0A773FF25041F6285CFFA6785441F6285C7F40F250417B14AE27B6785441E17A14EE41F2504148E17AA4BD7854410AD7A37046F25041EC51B84ECA785441A4703D0A48F25041AE47E10AD0785441D7A3703D48F2504185EB51D8D1785441A4703D7A48F2504133333303D4785441333333134AF2504100000060D8785441F6285C3F45F2504114AE4711DB7854419A9999E943F2504114AE47B1DD7854417B14AEC743F2504148E17AE4E3785441713D0A474AF25041CDCCCC3CE3785441E17A14BE4DF250418FC2F538E2785441D7A370DD52F2504148E17A84E07854419A9999D954F25041713D0AC7DF7854411F85EBE15AF25041C3F5286CDD785441EC51B88E60F25041295C8F82DC785441295C8F9260F25041EC51B81EDB785441A4703DDA5DF250413D0AD763D77854413D0AD7935CF250418FC2F558D67854417B14AE975BF250415C8FC2B5D5785441295C8F425AF25041AE47E17AD5785441EC51B84E57F25041F6285CCFD6785441AE47E14A58F250411F85EB41D8785441EC51B84E59F25041E17A14BED77854415C8FC2155AF2504100000050D7785441F6285CFF5AF250417B14AEF7D8785441F6285C2F59F250419A9999D9D9785441F6285CAF5AF25041EC51B88EDC7854417B14AE6757F2504100000010DE78544185EB51C854F2504185EB51A8DF785441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000AB40B4CE57F2504147D8517EB67854419440B4CE57F2504156D7517EB678544158E6EBCB57F25041DC01AA72B67854418111AEBA4FF25041077BD1E3B8785441CC2B95F747F250417EFA93E4B9785441011C354446F250419F108F27BA785441BFF2575241F2504129017776BA7854418AC8DAB841F25041510D478EBC785441DCCA5EC641F25041DB1434BABC78544179FCE60E58F250416C96ECB7B9785441AB40B4CE57F2504147D8517EB6785441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>348484 - 275734
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000002B00000085EB51C854F2504185EB51A8DF785441666666964DF250417B14AE27D47854419A9999F94EF250417B14AE57D2785441713D0A7750F250419A9999A9D2785441295C8FE25AF25041B81E856BCC78544152B81ED559F2504148E17A34C778544185EB514858F25041EC51B88EBB785441C3F528CC57F2504133333363B6785441EC51B82E58F2504133333333B2785441C3F528EC57F25041713D0A17AF7854410000002056F25041713D0A27AA785441AE47E1DA47F25041F6285CBF97785441713D0A773FF25041F6285CFFA6785441F6285C7F40F250417B14AE27B6785441E17A14EE41F2504148E17AA4BD7854410AD7A37046F25041EC51B84ECA785441A4703D0A48F25041AE47E10AD0785441D7A3703D48F2504185EB51D8D1785441A4703D7A48F2504133333303D4785441333333134AF2504100000060D8785441F6285C3F45F2504114AE4711DB7854419A9999E943F2504114AE47B1DD7854417B14AEC743F2504148E17AE4E3785441713D0A474AF25041CDCCCC3CE3785441E17A14BE4DF250418FC2F538E2785441D7A370DD52F2504148E17A84E07854419A9999D954F25041713D0AC7DF7854411F85EBE15AF25041C3F5286CDD785441EC51B88E60F25041295C8F82DC785441295C8F9260F25041EC51B81EDB785441A4703DDA5DF250413D0AD763D77854413D0AD7935CF250418FC2F558D67854417B14AE975BF250415C8FC2B5D5785441295C8F425AF25041AE47E17AD5785441EC51B84E57F25041F6285CCFD6785441AE47E14A58F250411F85EB41D8785441EC51B84E59F25041E17A14BED77854415C8FC2155AF2504100000050D7785441F6285CFF5AF250417B14AEF7D8785441F6285C2F59F250419A9999D9D9785441F6285CAF5AF25041EC51B88EDC7854417B14AE6757F2504100000010DE78544185EB51C854F2504185EB51A8DF785441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000AB40B4CE57F2504147D8517EB67854419440B4CE57F2504156D7517EB678544158E6EBCB57F25041DC01AA72B67854418111AEBA4FF25041077BD1E3B8785441CC2B95F747F250417EFA93E4B9785441011C354446F250419F108F27BA785441BFF2575241F2504129017776BA7854418AC8DAB841F25041510D478EBC785441DCCA5EC641F25041DB1434BABC78544179FCE60E58F250416C96ECB7B9785441AB40B4CE57F2504147D8517EB6785441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>348584 - 3160979
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000002C00000085EB518892EA5041333333A3A28A54410AD7A3D09EEA50413D0AD793A48A54419A999949A9EA5041713D0A57A78A5441CDCCCCCCC3EA5041CDCCCC6CB08A544185EB51C8C5EA50411F85EB81B08A54419A999969C7EA50417B14AE47AF8A5441666666A6CEEA50415C8FC2C59D8A54417B14AE17CBEA50417B14AE779B8A544166666656C3EA50410AD7A340978A544148E17AA4C0EA5041713D0A97978A544152B81E45BDEA50418FC2F568968A54413D0AD713BBEA5041A4703D0A938A5441AE47E14AB8EA5041F6285CAF908A54418FC2F5A8A0EA50413D0AD763868A5441713D0A5781EA50413D0AD753788A5441D7A370BD69EA50410AD7A3806F8A54416666669657EA5041A4703D6A6F8A54417B14AE772DEA50410AD7A380708A5441B81E85EBEDE9504100000050768A5441E17A145EF7E9504185EB51485D8A5441666666C6F4E95041F6285C8F5D8A5441CDCCCC7CF0E95041F6285C0F5E8A54419A9999A9DAE95041CDCCCC9C608A544133333363C8E95041000000C0628A54413D0AD7C3C7E95041295C8FD2628A544152B81E65C7E9504148E17A546F8A544100000040C7E95041295C8F42748A544185EB5188C6E9504148E17A348E8A54418FC2F528CAE95041C3F5287C8E8A54418FC2F5D8CDE9504114AE47A18F8A5441295C8F92D1E95041D7A3707D918A54413D0AD723D6E95041F6285CDF948A544185EB51E8DBE950417B14AEB7988A54413D0AD743E1E950411F85EBE19A8A5441333333A3E6E95041295C8F029C8A544114AE4711F8E950419A9999A99F8A54415C8FC23501EA5041333333B3A08A54413D0AD7B354EA504133333353A48A54415C8FC2855EEA5041A4703D7AA48A5441EC51B88E67EA504185EB51F8A38A544148E17AD474EA504185EB5128A28A5441666666B67DEA504100000030A18A54418FC2F5D886EA504166666676A18A544185EB518892EA5041333333A3A28A5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000CC2623E56AEA50416BEAA383A38A544148E17AD474EA504185EB5128A28A5441666666B67DEA504100000030A18A54418FC2F5D886EA504166666676A18A544185EB518892EA5041333333A3A28A54410AD7A3D09EEA50413D0AD793A48A54419A999949A9EA5041713D0A57A78A5441CDCCCCCCC3EA5041CDCCCC6CB08A544185EB51C8C5EA50411F85EB81B08A54419A999969C7EA50417B14AE47AF8A5441666666A6CEEA50415C8FC2C59D8A54417B14AE17CBEA50417B14AE779B8A544166666656C3EA50410AD7A340978A544148E17AA4C0EA5041713D0A97978A544152B81E45BDEA50418FC2F568968A54413D0AD713BBEA5041A4703D0A938A5441AE47E14AB8EA5041F6285CAF908A54418FC2F5A8A0EA50413D0AD763868A5441713D0A5781EA50413D0AD753788A5441B1AF4A126AEA5041BD985EA06F8A544121AF3B2C48EA5041C25D20D06F8A544140007B0543EA50415DEC5E3B708A54417EC4B19242EA50419389FB58A38A5441C204A7B347EA50416A28B3C2A38A5441E20BB0555AEA5041225A9769A48A5441D4A5F87466EA50411A5D2508A48A5441CC2623E56AEA50416BEAA383A38A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>348584 - 3474393
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000002C00000085EB518892EA5041333333A3A28A54410AD7A3D09EEA50413D0AD793A48A54419A999949A9EA5041713D0A57A78A5441CDCCCCCCC3EA5041CDCCCC6CB08A544185EB51C8C5EA50411F85EB81B08A54419A999969C7EA50417B14AE47AF8A5441666666A6CEEA50415C8FC2C59D8A54417B14AE17CBEA50417B14AE779B8A544166666656C3EA50410AD7A340978A544148E17AA4C0EA5041713D0A97978A544152B81E45BDEA50418FC2F568968A54413D0AD713BBEA5041A4703D0A938A5441AE47E14AB8EA5041F6285CAF908A54418FC2F5A8A0EA50413D0AD763868A5441713D0A5781EA50413D0AD753788A5441D7A370BD69EA50410AD7A3806F8A54416666669657EA5041A4703D6A6F8A54417B14AE772DEA50410AD7A380708A5441B81E85EBEDE9504100000050768A5441E17A145EF7E9504185EB51485D8A5441666666C6F4E95041F6285C8F5D8A5441CDCCCC7CF0E95041F6285C0F5E8A54419A9999A9DAE95041CDCCCC9C608A544133333363C8E95041000000C0628A54413D0AD7C3C7E95041295C8FD2628A544152B81E65C7E9504148E17A546F8A544100000040C7E95041295C8F42748A544185EB5188C6E9504148E17A348E8A54418FC2F528CAE95041C3F5287C8E8A54418FC2F5D8CDE9504114AE47A18F8A5441295C8F92D1E95041D7A3707D918A54413D0AD723D6E95041F6285CDF948A544185EB51E8DBE950417B14AEB7988A54413D0AD743E1E950411F85EBE19A8A5441333333A3E6E95041295C8F029C8A544114AE4711F8E950419A9999A99F8A54415C8FC23501EA5041333333B3A08A54413D0AD7B354EA504133333353A48A54415C8FC2855EEA5041A4703D7AA48A5441EC51B88E67EA504185EB51F8A38A544148E17AD474EA504185EB5128A28A5441666666B67DEA504100000030A18A54418FC2F5D886EA504166666676A18A544185EB518892EA5041333333A3A28A5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000CC2623E56AEA50416BEAA383A38A544148E17AD474EA504185EB5128A28A5441666666B67DEA504100000030A18A54418FC2F5D886EA504166666676A18A544185EB518892EA5041333333A3A28A54410AD7A3D09EEA50413D0AD793A48A54419A999949A9EA5041713D0A57A78A5441CDCCCCCCC3EA5041CDCCCC6CB08A544185EB51C8C5EA50411F85EB81B08A54419A999969C7EA50417B14AE47AF8A5441666666A6CEEA50415C8FC2C59D8A54417B14AE17CBEA50417B14AE779B8A544166666656C3EA50410AD7A340978A544148E17AA4C0EA5041713D0A97978A544152B81E45BDEA50418FC2F568968A54413D0AD713BBEA5041A4703D0A938A5441AE47E14AB8EA5041F6285CAF908A54418FC2F5A8A0EA50413D0AD763868A5441713D0A5781EA50413D0AD753788A5441B1AF4A126AEA5041BD985EA06F8A544121AF3B2C48EA5041C25D20D06F8A544140007B0543EA50415DEC5E3B708A54417EC4B19242EA50419389FB58A38A5441C204A7B347EA50416A28B3C2A38A5441E20BB0555AEA5041225A9769A48A5441D4A5F87466EA50411A5D2508A48A5441CC2623E56AEA50416BEAA383A38A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>349899 - 50286
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000014000000C3F528DCA8E050419A999909B17C54419A9999B9ACE05041D7A3703DCB7C5441CDCCCCCCAEE05041C3F5285CD97C544133333333ADE05041713D0AF7E97C5441F6285C1FACE05041A4703D2AF57C5441CDCCCC6CABE05041713D0A87FC7C54410AD7A330AAE05041A4703D8A097D5441AE47E19AC8E05041F6285CBFF77C5441AE47E18AEFE0504185EB51F8E07C5441AE47E13AE2E0504185EB5188DD7C544148E17A84E2E05041C3F528CCDC7C544100000030E4E0504148E17A84D87C5441AE47E1DAF0E05041CDCCCCCCCD7C544100000020F3E050411F85EB41C97C5441B81E85FBF5E05041000000F0BF7C5441295C8F72F6E05041B81E856BBE7C544148E17A44F5E05041B81E857BA17C54413D0AD733F5E05041295C8FE29F7C544100000020F4E05041EC51B83E867C5441C3F528DCA8E050419A999909B17C5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000B2711851F4E05041D7CCFCCE8A7C544185BD8A46F4E05041AA186FC48A7C5441B8335823E3E050417DE8EC62947C544170B33C36D4E050413B27AD029D7C5441F29216B9C6E0504196A3E714A57C54410257F1C6BBE050417BCCDE9AAB7C5441BBD6D5D9ACE05041380B9F3AB47C54411C995B67ADE05041A0A80E1DB57C5441E1B2055CB6E05041D9EBBEEAAF7C5441A7614E2AC7E050415928F32FA67C5441F0EF707BCAE0504134E16187A47C54413CA8D07FDDE050413CCA5240997C54410F6A47BAF2E05041DC15D4168D7C54413E4C6060F4E05041B8949A3A8C7C5441B2711851F4E05041D7CCFCCE8A7C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>349899 - 84637
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000014000000C3F528DCA8E050419A999909B17C54419A9999B9ACE05041D7A3703DCB7C5441CDCCCCCCAEE05041C3F5285CD97C544133333333ADE05041713D0AF7E97C5441F6285C1FACE05041A4703D2AF57C5441CDCCCC6CABE05041713D0A87FC7C54410AD7A330AAE05041A4703D8A097D5441AE47E19AC8E05041F6285CBFF77C5441AE47E18AEFE0504185EB51F8E07C5441AE47E13AE2E0504185EB5188DD7C544148E17A84E2E05041C3F528CCDC7C544100000030E4E0504148E17A84D87C5441AE47E1DAF0E05041CDCCCCCCCD7C544100000020F3E050411F85EB41C97C5441B81E85FBF5E05041000000F0BF7C5441295C8F72F6E05041B81E856BBE7C544148E17A44F5E05041B81E857BA17C54413D0AD733F5E05041295C8FE29F7C544100000020F4E05041EC51B83E867C5441C3F528DCA8E050419A999909B17C5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000B2711851F4E05041D7CCFCCE8A7C544185BD8A46F4E05041AA186FC48A7C5441B8335823E3E050417DE8EC62947C544170B33C36D4E050413B27AD029D7C5441F29216B9C6E0504196A3E714A57C54410257F1C6BBE050417BCCDE9AAB7C5441BBD6D5D9ACE05041380B9F3AB47C54411C995B67ADE05041A0A80E1DB57C5441E1B2055CB6E05041D9EBBEEAAF7C5441A7614E2AC7E050415928F32FA67C5441F0EF707BCAE0504134E16187A47C54413CA8D07FDDE050413CCA5240997C54410F6A47BAF2E05041DC15D4168D7C54413E4C6060F4E05041B8949A3A8C7C5441B2711851F4E05041D7CCFCCE8A7C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>350067 - 1360857
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000140000007B14AEA78E4951418FC2F5C8B8B85441666666469149514133333343BDB854417B14AE879449514114AE4771C3B8544148E17AF496495141A4703D5AC7B85441CDCCCC4C9A495141713D0A87CBB8544148E17AB49D4951413D0AD723CFB854418FC2F578A249514152B81E15D4B854417B14AEA7A349514100000030D2B854417B14AE57A5495141295C8FA2CEB8544114AE47F1A64951417B14AE07CCB8544114AE4731A9495141A4703D2ACAB85441333333B3AE495141C3F5283CC7B854418FC2F578AB495141295C8F82C1B85441F6285CFFA649514152B81E15BAB85441D7A370BDA0495141A4703D7AB2B85441A4703DEA9A495141EC51B81EACB854419A9999B995495141C3F5283CA7B85441AE47E11A90495141C3F5289CABB854419A999949894951410AD7A350B0B854417B14AEA78E4951418FC2F5C8B8B85441
+</a>
+
+<b>
+0106000000010000000103000000010000003D0000009A9999B995495141C3F5283CA7B8544186C4E23396495141D66B42AFA7B8544147BAA4E799495141FE03522BABB85441FC2D65099B4951411C2CB940ACB8544145C7CD879C495141E71D17E2ADB854416E2481799E49514113F54901B0B85441C72F223CA149514133473714B3B854417303B421A3495141C4515962B5B854415C675580A549514155B29C43B8B854419CF2DCE8A64951414C4FC7F9B9B8544101C0477BA749514154CACCE2BAB854411E2F630EA94951418326DE7FBDB85441086D641AAA4951410529B23CBFB8544102A172A0AB49514146A99AC8C1B85441A253DC26AD495141A136207DC4B85441333333B3AE495141C3F5283CC7B85441809235A7AF495141B79083C8C6B8544101454960AE4951419F50C071C3B85441D798F524AA495141355E1D06BCB854412E9A0D2AA7495141706A6295B7B854415E2C52E0A04951413945E044AFB8544158F0A3B79D49514185EA4E05ACB85441BC6C8E599A495141AF5C989FA8B85441DA55D2C4974951414E0D89F5A6B85441295C8FF292495141E17A144EA6B85441D7A370DD8E495141D7A3700DA8B85441056E3C3A8B4951413F89326EAAB854411F85EBE1884951415C8FC2F5ABB85441CDCCCC0C87495141333333E3AFB85441EC51B8AE86495141EC51B88EB2B85441D1E8B1038649514136B3EFDFB6B854416D2F14F58349514113BC3ED0B9B854410000008080495141295C8F52B2B854411F85EB417F4951410AD7A360AAB8544197523A2576495141500E51A1AAB85441219BDAFF76495141AB13C658B3B85441685E4E107A49514135520429C1B8544100000080854951418FC2F5A8D3B8544185EB5198854951418FC2F5C8D6B85441D71A639F85495141F069900ADAB854411DA8D9078A495141F2D0B73CDAB85441816177168C49514169B941ECDAB85441E9E59E8E8D4951418A49CBC9D7B8544148D4B23390495141B9407CD9D4B854412C0FB3BF9249514198AD2D01D7B85441713D0AE7964951411F85EBF1D1B8544100000080984951410AD7A340D0B8544185EB51F89A495141295C8F12CFB854415C8FC2259D495141A4703DBACFB85441B3C53D599C495141907805E5CDB854415B09DB4F99495141B36FB6F4CAB854410B7C64E79449514184758E64C4B8544141A5E50A9049514165DD0328BBB85441E16669F28F495141B8A02BFEBAB854419D26778A89495141863A2ACDB0B854414EF7B29389495141D1CC91C5B0B854419A999949894951410AD7A350B0B85441A1DEA9888E495141A071BEB1ACB85441589F3C9D8F49514146783DCEABB85441818E3BD5904951411411170BABB854419A9999B995495141C3F5283CA7B85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>350067 - 3732077
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000140000007B14AEA78E4951418FC2F5C8B8B85441666666469149514133333343BDB854417B14AE879449514114AE4771C3B8544148E17AF496495141A4703D5AC7B85441CDCCCC4C9A495141713D0A87CBB8544148E17AB49D4951413D0AD723CFB854418FC2F578A249514152B81E15D4B854417B14AEA7A349514100000030D2B854417B14AE57A5495141295C8FA2CEB8544114AE47F1A64951417B14AE07CCB8544114AE4731A9495141A4703D2ACAB85441333333B3AE495141C3F5283CC7B854418FC2F578AB495141295C8F82C1B85441F6285CFFA649514152B81E15BAB85441D7A370BDA0495141A4703D7AB2B85441A4703DEA9A495141EC51B81EACB854419A9999B995495141C3F5283CA7B85441AE47E11A90495141C3F5289CABB854419A999949894951410AD7A350B0B854417B14AEA78E4951418FC2F5C8B8B85441
+</a>
+
+<b>
+0106000000010000000103000000010000003D0000009A9999B995495141C3F5283CA7B8544186C4E23396495141D66B42AFA7B8544147BAA4E799495141FE03522BABB85441FC2D65099B4951411C2CB940ACB8544145C7CD879C495141E71D17E2ADB854416E2481799E49514113F54901B0B85441C72F223CA149514133473714B3B854417303B421A3495141C4515962B5B854415C675580A549514155B29C43B8B854419CF2DCE8A64951414C4FC7F9B9B8544101C0477BA749514154CACCE2BAB854411E2F630EA94951418326DE7FBDB85441086D641AAA4951410529B23CBFB8544102A172A0AB49514146A99AC8C1B85441A253DC26AD495141A136207DC4B85441333333B3AE495141C3F5283CC7B85441809235A7AF495141B79083C8C6B8544101454960AE4951419F50C071C3B85441D798F524AA495141355E1D06BCB854412E9A0D2AA7495141706A6295B7B854415E2C52E0A04951413945E044AFB8544158F0A3B79D49514185EA4E05ACB85441BC6C8E599A495141AF5C989FA8B85441DA55D2C4974951414E0D89F5A6B85441295C8FF292495141E17A144EA6B85441D7A370DD8E495141D7A3700DA8B85441056E3C3A8B4951413F89326EAAB854411F85EBE1884951415C8FC2F5ABB85441CDCCCC0C87495141333333E3AFB85441EC51B8AE86495141EC51B88EB2B85441D1E8B1038649514136B3EFDFB6B854416D2F14F58349514113BC3ED0B9B854410000008080495141295C8F52B2B854411F85EB417F4951410AD7A360AAB8544197523A2576495141500E51A1AAB85441219BDAFF76495141AB13C658B3B85441685E4E107A49514135520429C1B8544100000080854951418FC2F5A8D3B8544185EB5198854951418FC2F5C8D6B85441D71A639F85495141F069900ADAB854411DA8D9078A495141F2D0B73CDAB85441816177168C49514169B941ECDAB85441E9E59E8E8D4951418A49CBC9D7B8544148D4B23390495141B9407CD9D4B854412C0FB3BF9249514198AD2D01D7B85441713D0AE7964951411F85EBF1D1B8544100000080984951410AD7A340D0B8544185EB51F89A495141295C8F12CFB854415C8FC2259D495141A4703DBACFB85441B3C53D599C495141907805E5CDB854415B09DB4F99495141B36FB6F4CAB854410B7C64E79449514184758E64C4B8544141A5E50A9049514165DD0328BBB85441E16669F28F495141B8A02BFEBAB854419D26778A89495141863A2ACDB0B854414EF7B29389495141D1CC91C5B0B854419A999949894951410AD7A350B0B85441A1DEA9888E495141A071BEB1ACB85441589F3C9D8F49514146783DCEABB85441818E3BD5904951411411170BABB854419A9999B995495141C3F5283CA7B85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>350789 - 54259
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000008000000295C8F528AB15041B81E854B50905441AE47E1BA88B1504133333373569054417B14AE7789B150413D0AD743579054411F85EB71A4B150411F85EB215390544185EB51C8AEB15041295C8F224F9054413D0AD7A3BAB15041D7A3705D4A905441333333738AB15041713D0A374F905441295C8F528AB15041B81E854B50905441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000FCEBC199ADB15041AC4565AD4B90544188E144738AB15041E67508374F905441295C8F528AB15041B81E854B509054419EA5043F89B150413AB17C7454905441C2DD6A2C89B15041F5EF60BC5490544176A7BCC988B1504145DA056956905441A5F93F7789B15041998F5E3F579054419029F176A4B15041047DE11A53905441D4E9E9B8AEB15041476B86254F9054418EF17C76BAB150417F1DAF6F4A90544120FAE976BAB15041E940836F4A905441B4EFB996BAB150412F20B7624A90544146ED999EBAB1504197238C5F4A905441C2A0F933B8B15041F8513A9C4A9054419B3A45DEB6B15041873B9EBE4A905441FCEBC199ADB15041AC4565AD4B905441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>350806 - 54261
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002A00000048E17AE43DB75041B81E85FB948F5441A4703D9A3EB75041F6285C3F8F8F544114AE47E13FB750415C8FC2B5898F5441B81E85BB40B75041295C8FD2868F544148E17AD441B7504185EB51C8838F54417B14AE8744B75041EC51B8DE7C8F5441B81E858B46B75041AE47E17A798F5441CDCCCCFC4CB75041295C8F02718F544152B81E4551B7504185EB51E86B8F5441B81E852B53B7504133333343698F54417B14AEA755B750410AD7A310658F5441295C8F4257B7504152B81EA55B8F5441D7A3703D5AB7504185EB51184B8F54418FC2F5D857B7504114AE47B1488F5441EC51B85E55B750415C8FC2C5428F54419A9999F954B75041666666A63F8F5441AE47E1AA55B75041713D0A773A8F544152B81EA555B75041EC51B8EE378F5441C3F5289C54B75041295C8F92348F5441D7A3703D52B75041C3F528AC318F544148E17A944FB75041000000C02C8F54411F85EBB14EB75041295C8FD2278F5441E17A14CE4EB75041CDCCCCAC248F5441C3F5284C50B75041CDCCCC8C1F8F5441CDCCCCAC4CB750415C8FC2A51F8F5441666666E649B750411F85EB31248F544114AE470149B75041295C8FB2278F54419A9999E948B7504114AE4711348F5441A4703DAA43B750411F85EB21478F5441EC51B8DE44B7504133333383498F54413D0AD71345B750417B14AE674B8F5441B81E85DB41B7504114AE47B15D8F54417B14AE0741B750419A999979618F54418FC2F5D840B75041F6285C4F628F5441B81E851B3BB750411F85EB01778F5441295C8FE238B750415C8FC205818F544148E17AC438B75041C3F5283C848F54415C8FC29538B75041713D0A178C8F54417B14AE273AB7504185EB51889D8F5441666666163EB75041B81E850B9E8F54419A9999A93DB75041C3F5286C9A8F544148E17AE43DB75041B81E85FB948F5441
+</a>
+
+<b>
+01060000000100000001030000000100000044000000A07124463EB750417BD2F2966B8F544172ED6E3C3CB75041B35A25F0728F54411AF08E6B3AB750412307D61A7A8F5441FE4C8EE238B750412F85DF05818F5441BCC146DD38B75041D74E3796818F5441F8EBD8D238B75041CCBB59B3828F5441E2A417A638B75041AECC1358898F5441DB41A29A38B750415AFF2F4D8C8F5441030AE16439B75041803A1B14958F5441B4B382293AB7504128FE8E889D8F54416A7404523AB75041396CD68D9D8F5441EF4B607C3AB7504153A35B939D8F544163136D1E3BB7504178BFEEA49D8F5441A90B6FD63DB75041C2032F039E8F544142B46A103EB75041C080BD0A9E8F5441BF4F08E13DB750412EE8A3449C8F54419A9999A93DB75041C3F5286C9A8F544148E17AE43DB75041B81E85FB948F5441A4703D9A3EB75041F6285C3F8F8F5441A1395C793FB75041D1E736788B8F544114AE47E13FB750415C8FC2B5898F5441B81E85BB40B75041295C8FD2868F544148E17AD441B7504185EB51C8838F5441C9BF195442B75041DD719681828F54417B14AE8744B75041EC51B8DE7C8F5441B81E858B46B75041AE47E17A798F5441CDCCCCFC4CB75041295C8F02718F5441804D16D14EB7504157509BD46E8F5441629F75D852B75041053AD4B6698F5441FDBC9FA055B75041A7496D11658F5441B55F6CDB55B750419E3CF3E0638F5441295C8F4257B7504152B81EA55B8F5441D7A3703D5AB7504185EB51184B8F54418FC2F5D857B7504114AE47B1488F544174000F1157B75041AA4F9DD3468F5441EC51B85E55B750415C8FC2C5428F54419A9999F954B75041666666A63F8F5441CE43833455B75041E0794CED3D8F54412FDD34AA55B750416FDC3B2B3A8F54419F49EA9055B75041F37631D0378F54412486A09554B7504158EB908A348F5441FD57098253B750418B785839338F5441D7A3703D52B75041C3F528AC318F544148E17A944FB75041000000C02C8F54411F85EBB14EB75041295C8FD2278F5441E17A14CE4EB75041CDCCCCAC248F54419EA696904FB750418DCAE310228F54411089F54950B75041807938931F8F5441F7703EDD4DB7504109DC909D1F8F5441CDCCCCAC4CB750415C8FC2A51F8F54418A7016444CB75041652E5B51208F5441721FF4F749B75041D7FE3B35248F54416FA3770449B75041C9677DBC278F5441DCA201F948B7504102CAFC042C8F54419A9999E948B7504114AE4711348F54413E01C3BA47B750417D198A5D388F544117A2837246B750417C671D063D8F5441D4E282BD43B750412564891F478F5441198EED4544B75041517B6B55488F5441EC51B8DE44B7504133333383498F54413D0AD71345B750417B14AE674B8F5441C88F2A9544B7504124B01A374E8F54413ACCD6CB43B750411CEF82AE528F544125BC353C43B75041233B3BDE558F5441B81E85DB41B7504114AE47B15D8F54417B14AE0741B750419A999979618F54418FC2F5D840B75041F6285C4F628F5441A07124463EB750417BD2F2966B8F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>351156 - 185836
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000050000000AD7A37065B6504114AE4701BC905441F6285CDF68B650419A999959B9905441000000203CB650413D0AD7D39A9054413D0AD7B33AB6504148E17AA49E9054410AD7A37065B6504114AE4701BC905441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000D79FD68E67B65041134BE55DBA90544135D2F01E68B650417D246FEEB9905441821D5CDF68B6504173A29959B9905441B9DCF5DE68B6504178D25359B990544142F280A062B650411F0B0317B590544181F106BE57B650416D8557AAAD9054412552713E3DB65041DA5839979B905441BEE91FAF3CB650412F5077359B905441C022FF433BB650419A9485079F9054419A2969043CB6504171F6B78B9F905441187B76164AB6504105B47B36A9905441887CB42158B6504181B691DCB29054419D61AC6665B65041D9B76EFABB905441C243A47065B650415AB44601BC905441574C9B0267B6504148045DCABA905441D79FD68E67B65041134BE55DBA905441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>351156 - 423613
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000050000000AD7A37065B6504114AE4701BC905441F6285CDF68B650419A999959B9905441000000203CB650413D0AD7D39A9054413D0AD7B33AB6504148E17AA49E9054410AD7A37065B6504114AE4701BC905441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000D79FD68E67B65041134BE55DBA90544135D2F01E68B650417D246FEEB9905441821D5CDF68B6504173A29959B9905441B9DCF5DE68B6504178D25359B990544142F280A062B650411F0B0317B590544181F106BE57B650416D8557AAAD9054412552713E3DB65041DA5839979B905441BEE91FAF3CB650412F5077359B905441C022FF433BB650419A9485079F9054419A2969043CB6504171F6B78B9F905441187B76164AB6504105B47B36A9905441887CB42158B6504181B691DCB29054419D61AC6665B65041D9B76EFABB905441C243A47065B650415AB44601BC905441574C9B0267B6504148045DCABA905441D79FD68E67B65041134BE55DBA905441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>423320 - 218527
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000A00000085EB5198E4BD50417B14AE9725375541F6285CCFE3BD50413D0AD71328375541CDCCCC7CE2BD5041F6285C5F3437554148E17A74E3BD5041A4703D0A35375541E17A142EF1BD5041A4703D5A2F375541AE47E1FA04BE504148E17A442137554152B81EF5E8BD5041C3F528FC1837554133333313E8BD5041D7A3707D19375541000000E0E6BD5041AE47E16A1D37554185EB5198E4BD50417B14AE9725375541
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000FFE7D598E7BD50414EB7ED0D1B37554144C000E0E6BD5041DA18E26A1D375541B7675298E4BD5041F660AF9725375541FFFC5BCFE3BD5041F4A2D8132837554144D7CC7CE2BD5041AFC75B5F343755412806B0A4E2BD5041EF1CE17A3437554148E17A74E3BD5041A4703D0A35375541E17A142EF1BD5041A4703D5A2F3755414FC78291FDBD5041E40C338A263755411B1EE1FA04BE5041FED47A442137554152B81EF5E8BD5041C3F528FC1837554133333313E8BD5041D7A3707D19375541FFE7D598E7BD50414EB7ED0D1B375541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>353230 - 56972
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000002000000260000003D0AD7532F8F5041295C8F62EE415541A4703D6A338F5041C3F528CCED4155418FC2F5F8358F5041EC51B8FEE84155410AD7A300378F5041F6285C0FE7415541CDCCCC4C388F50413D0AD7B3E341554114AE47D1328F50411F85EB91DD415541A4703D0A378F5041295C8FF2D241554185EB51E83C8F5041B81E85BBC94155419A9999B9358F504185EB5138CB41554148E17A842C8F50410AD7A320CD4155417B14AE97258F5041CDCCCC0CD04155417B14AE07248F5041D7A370FDC44155410AD7A370228F5041B81E856BBB4155415C8FC295128F5041295C8FD2C54155411F85EB01058F50415C8FC2A5CF41554152B81E25068F5041F6285CAFD0415541CDCCCC3C0A8F504114AE4751D941554100000000048F504148E17AE4E941554148E17AD4038F5041F6285C2FEE415541D7A3700D048F5041EC51B81EF141554185EB5198048F5041D7A3702DF5415541000000A0118F5041EC51B8EEF04155413D0AD7B3128F5041AE47E1BAF0415541CDCCCCEC138F5041C3F5288CF0415541713D0AC7158F5041D7A3702DF0415541713D0A17178F5041295C8FF2EF4155417B14AE97188F5041CDCCCCECEF415541C3F5280C1A8F50417B14AE07F04155411F85EB611B8F5041EC51B82EF0415541A4703D1A1C8F50415C8FC245F0415541333333331D8F5041C3F5281CF0415541D7A370DD1E8F5041D7A370BDEF41554185EB51A8208F5041D7A3706DEF41554100000060228F50418FC2F538EF41554100000090258F50411F85EB01EF41554133333383288F50413D0AD703EF4155415C8FC2952B8F5041D7A370BDEE4155413D0AD7532F8F5041295C8F62EE4155410E000000CDCCCCFC108F5041713D0A37EC415541295C8F52118F50417B14AE77EA41554185EB5178118F50417B14AE17E9415541F6285C3F118F5041B81E856BE7415541B81E85BB118F50418FC2F5B8E6415541A4703D1A128F5041AE47E19AE7415541A4703D1A128F5041EC51B83EEA41554148E17AC4118F504148E17AC4EB41554152B81E95118F5041E17A145EED415541B81E858B118F504133333343EF415541B81E858B118F5041AE47E10AF04155419A999919118F504114AE4701F0415541713D0AD7108F5041295C8F42EE415541CDCCCCFC108F5041713D0A37EC415541
+</a>
+
+<b>
+0106000000010000000103000000010000006C000000000000A0118F5041EC51B8EEF04155412A427E9C118F50414CB928DEF0415541DBE74A98118F5041335B52CAF0415541F702406F118F50414C697F08F0415541E90FA962118F504180D06F07F04155419A999919118F504114AE4701F041554165AFACDF108F5041F6D8827CEE415541713D0AD7108F5041295C8F42EE415541CDCCCCFC108F5041713D0A37EC415541AAE4B618118F50413A3B6DA5EB41554172625F35118F5041CB06EF0FEB415541DB209B53118F504134EFED6DEA4155416A8AAC65118F50410DAF7FC5E9415541A0883D6F118F50418316526CE94155411D22ED6F118F50419724ED65E9415541FB2CEF77118F5041E193461BE94155413FA51671118F5041E85152E1E84155411DB5C84E118F50414EC675DFE7415541E2408A45118F5041417CF999E7415541F6285C3F118F5041B81E856BE7415541B81E85BB118F50418FC2F5B8E64155416348FBCB118F5041FBFE87B5E6415541866910F6118F50413212C4ACE64155419A752001138F504154C12375E64155411B33EA5C148F50416C00B32CE6415541D24B52C6178F50412037C776E541554101525B9F188F504150769249E541554118E1AE04198F50411C3D2336E541554145971FB1198F5041F7572617E541554105A916F01E8F5041A28CAA27E441554168B3FB46288F5041E468BA8EE2415541F7BED4292A8F5041142D412FE24155417331A826308F504123302B00E1415541A2CD91F9318F5041E794D8A3E041554142FEE602328F504123F4CFA8E041554134E5B343328F5041032273CBE0415541D7A3700D358F50418FC2F548E2415541750EB928358F50418CFBC18BE24155418B3759F2368F504122125AECE641554130D75F01378F504144AD750DE741554168ED9053378F50413D51C638E64155415A3C5596378F50417716018CE5415541127EBE22388F504106ADAA20E4415541CDCCCC4C388F50413D0AD7B3E341554191AE670C378F50417093754DE2415541C1D00D61368F50419303CB8DE1415541EE178CCF338F5041713A55AEDE41554114AE47D1328F50411F85EB91DD415541BE854629338F504124F98CB4DC415541FAF43750338F50410CF89452DC415541A8B1714D348F5041BB868BD5D9415541A4703D0A378F5041295C8FF2D2415541A80B45A7388F504177F2E369D04155410C9455BB398F5041A4A253B8CE41554185EB51E83C8F5041B81E85BBC94155415A9AD72D388F504165EE35B6CA41554111EE0565348F5041DA6BE07ECB41554133B40E992D8F50416A8C57E7CC4155414FE0E0AA2C8F5041F060AF18CD4155413A7BB3A22C8F50413010611ACD4155417857F1842C8F50416C4C8B20CD415541ED14D872298F5041DA463D6CCE4155417B14AE97258F5041CDCCCC0CD041554189F07946258F5041E40602CECD41554181D66D7E248F50414F49FE45C841554106D90552248F5041C2CC9D20C7415541A7F0EF03248F504107F9DFFFC44155418FB360A8238F5041600AD4BFC24155413A8228E0228F50418554920CBE41554174EE3570228F5041323BCD6BBB41554142D9758C208F504168524FB0BC4155412F9D70EB1F8F5041C671F216BD4155410E2F7C0F1F8F5041846726A3BD4155419651E3301B8F5041273C152DC04155419D08CCC9198F50413EEDAE18C1415541B9572E8B198F5041B70AC441C1415541D85485E3188F5041599CC4AFC1415541EAF829DB188F5041B73F40B5C14155418226894A188F5041AB502414C2415541BBBFD6D5178F504194F9B460C24155418FF37347178F5041296C20BEC241554168E95D3A168F5041F9B3AC6EC3415541A00D8D2D138F5041D237F86EC5415541690E72A5128F5041BEC844C8C54155411B2BA720128F504114284D27C64155416F4060D0108F50414BAFA31AC7415541BBFF32FD0F8F504173AF73B3C7415541D901D5210D8F5041DFBBAFC4C94155416B1EDAF00C8F5041822B21E8C94155414B3E0240088F5041BE90164DCD41554175EB346E068F5041FE4C279ECE415541CA7C1604068F5041CC92F1EACE4155411F85EB01058F50415C8FC2A5CF41554152B81E25068F5041F6285CAFD0415541016D57290A8F5041853C3C28D9415541CDCCCC3C0A8F504114AE4751D94155412DF321B0048F50414EB27010E841554179CE7E09048F504156763FCBE9415541A82FBDFF038F5041FEED11EBE9415541A4EA85FE038F5041A87CC509EA41554118C3BED6038F504132232AF6ED415541B028BEDF038F50415386EDC3EE415541365BA80D048F504169095920F14155412C459521048F50419E1C60B5F14155419352832B048F504100CAA4FFF14155415501C434048F5041EDC9D844F241554185EB5198048F5041D7A3702DF5415541000000A0118F5041EC51B8EEF0415541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>353230 - 129553
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000002000000260000003D0AD7532F8F5041295C8F62EE415541A4703D6A338F5041C3F528CCED4155418FC2F5F8358F5041EC51B8FEE84155410AD7A300378F5041F6285C0FE7415541CDCCCC4C388F50413D0AD7B3E341554114AE47D1328F50411F85EB91DD415541A4703D0A378F5041295C8FF2D241554185EB51E83C8F5041B81E85BBC94155419A9999B9358F504185EB5138CB41554148E17A842C8F50410AD7A320CD4155417B14AE97258F5041CDCCCC0CD04155417B14AE07248F5041D7A370FDC44155410AD7A370228F5041B81E856BBB4155415C8FC295128F5041295C8FD2C54155411F85EB01058F50415C8FC2A5CF41554152B81E25068F5041F6285CAFD0415541CDCCCC3C0A8F504114AE4751D941554100000000048F504148E17AE4E941554148E17AD4038F5041F6285C2FEE415541D7A3700D048F5041EC51B81EF141554185EB5198048F5041D7A3702DF5415541000000A0118F5041EC51B8EEF04155413D0AD7B3128F5041AE47E1BAF0415541CDCCCCEC138F5041C3F5288CF0415541713D0AC7158F5041D7A3702DF0415541713D0A17178F5041295C8FF2EF4155417B14AE97188F5041CDCCCCECEF415541C3F5280C1A8F50417B14AE07F04155411F85EB611B8F5041EC51B82EF0415541A4703D1A1C8F50415C8FC245F0415541333333331D8F5041C3F5281CF0415541D7A370DD1E8F5041D7A370BDEF41554185EB51A8208F5041D7A3706DEF41554100000060228F50418FC2F538EF41554100000090258F50411F85EB01EF41554133333383288F50413D0AD703EF4155415C8FC2952B8F5041D7A370BDEE4155413D0AD7532F8F5041295C8F62EE4155410E000000CDCCCCFC108F5041713D0A37EC415541295C8F52118F50417B14AE77EA41554185EB5178118F50417B14AE17E9415541F6285C3F118F5041B81E856BE7415541B81E85BB118F50418FC2F5B8E6415541A4703D1A128F5041AE47E19AE7415541A4703D1A128F5041EC51B83EEA41554148E17AC4118F504148E17AC4EB41554152B81E95118F5041E17A145EED415541B81E858B118F504133333343EF415541B81E858B118F5041AE47E10AF04155419A999919118F504114AE4701F0415541713D0AD7108F5041295C8F42EE415541CDCCCCFC108F5041713D0A37EC415541
+</a>
+
+<b>
+0106000000010000000103000000010000008E000000D9B15F3C248F50413100B03FE3415541CA49AE6C248F504151D26C37E34155411BCB83DE258F504141342BF8E2415541B46974AF268F504110866ED4E241554142C4F6ED278F50413839F49DE2415541D571E3AF288F50414038FC79E2415541F4BED4292A8F5041112D412FE24155418986BB732C8F5041787A67BBE1415541F92632AA2C8F5041D399A2B0E1415541EC77F8422E8F5041CBDECE5FE1415541523405912E8F50419C136050E1415541402A9A392F8F504116A50A2FE1415541A3173FCC2F8F504106AC0B12E1415541119B0CEE328F5041A9118126E141554175AA1F4E338F5041EABCDB59E14155411A6A965E338F504127A0A862E1415541C7C630E8338F504128FD35ACE141554163FC4542348F5041D7C65CDCE14155411A9EBE44348F50411CEFAEDDE141554161169747348F5041B75134DFE1415541625A085B348F50417CCA98E9E1415541A53495A1348F50419DC34E0FE2415541D7A3700D358F50418FC2F548E2415541BF164B2D358F5041789EF296E24155413297CC66358F50416CDABD23E3415541B93548A8358F504150E210C4E3415541734C7531368F50416670EB13E54155416D5F387C368F504173B5FCCAE5415541EA9B0DD1368F504113D0CA9AE6415541CBBE88D1368F5041C8B8FF9BE64155418A3759F2368F504125125AECE64155412BD75F01378F504141AD750DE741554163ED9053378F50413D51C638E6415541F9EF6681378F50418C962AC2E5415541CDCCCC4C388F50413D0AD7B3E341554190AE670C378F50417593754DE2415541A5709673368F5041232886A2E141554114AE47D1328F50411F85EB91DD4155412BF55B4B338F5041307CCE5EDC415541F9F43750338F50410AF89452DC41554101BFFD77338F504108BF86EEDB415541A4703D0A378F5041295C8FF2D2415541A30B45A7388F504179F2E369D0415541A0861479398F5041593B6120CF41554185EB51E83C8F5041B81E85BBC94155415628D52D388F50410B7036B6CA41554116EE0565348F5041DB6BE07ECB41554138B40E992D8F50416E8C57E7CC415541CB03871B2D8F504187095901CD415541DE3F12D12C8F5041B1D1C510CD4155413C859CB12C8F50416C4B4A17CD4155416F0118952C8F50416ABA321DCD4155417B57F1842C8F50416F4C8B20CD415541EA14D872298F5041DD463D6CCE4155417B14AE97258F5041CDCCCC0CD041554187F07946258F5041E10602CECD4155417DD66D7E248F50415149FE45C841554108D90552248F5041C5CC9D20C7415541A9F0EF03248F504104F9DFFFC4415541EAB360A8238F5041920CD4BFC2415541358228E0228F50418154920CBE4155416FEE3570228F5041353BCD6BBB41554140D9758C208F504163524FB0BC4155412C9D70EB1F8F5041C271F216BD415541102F7C0F1F8F5041886726A3BD4155417B4AB1D81B8F50417F6AFCBEBF415541949A36031B8F5041C4D90C4BC04155417F545DA01A8F504121B2E78BC0415541A208CCC9198F50413EEDAE18C1415541B7572E8B198F5041BC0AC441C1415541D45485E3188F50415C9CC4AFC1415541EDF829DB188F5041B63F40B5C14155418526894A188F5041AD502414C2415541C0BFD6D5178F504192F9B460C2415541861EEFB0178F5041DB95EB78C241554157BBC1E0168F50412F7E8101C34155416AE95D3A168F5041FEB3AC6EC3415541A50D8D2D138F5041D537F86EC54155414ACAE5D2128F5041C78D72AAC5415541300E72A5128F5041E8C844C8C54155415D2FA720128F5041FF244D27C64155416F1EDAF00C8F50417F2B21E8C9415541BA4B62D50C8F5041389001FCC941554167430293078F5041146546CACD4155417AEB346E068F5041014D279ECE415541CF7C1604068F5041CA92F1EACE4155411F85EB01058F50415C8FC2A5CF41554152B81E25068F5041F6285CAFD0415541046D57290A8F5041873C3C28D9415541CDCCCC3C0A8F504114AE4751D94155412FF321B0048F50414FB27010E84155417DCE7E09048F504158763FCBE9415541AC2FBDFF038F5041FFED11EBE9415541A6EA85FE038F5041AC7CC509EA41554197D3F0F5038F5041A0027AE2EA41554115C3BED6038F50417B232AF6ED415541B028BEDF038F50415686EDC3EE415541335BA80D048F50413B095920F1415541BFC3C431048F504118656E2EF24155415701C434048F5041F1C9D844F241554185EB5198048F5041D7A3702DF5415541000000A0118F5041EC51B8EEF041554125427E9C118F504147B928DEF0415541DBE74A98118F5041375B52CAF0415541851AB06E118F5041C4487308F04155419A999919118F504114AE4701F041554161AFACDF108F5041F8D8827CEE415541713D0AD7108F5041295C8F42EE415541CDCCCCFC108F5041713D0A37EC41554119C8922B118F50418CF20C43EB41554171625F35118F5041C906EF0FEB415541D8209B53118F504131EFED6DEA4155417C532D5D118F5041971BB514EA415541FE2CEF77118F5041C593461BE94155413EA51671118F5041E75152E1E84155411BB5C84E118F50414BC675DFE7415541E1408A45118F5041437CF999E7415541F6285C3F118F5041B81E856BE7415541B81E85BB118F50418FC2F5B8E64155419082A9BD118F50414C8983B8E6415541EF1B7DF1128F5041F39B6578E64155416D2DF3F5128F504195BA7777E6415541B72594F7128F5041EAE02077E641554196752001138F504150C12375E6415541C8F71E1E138F504154BA196FE64155415ACB6C24138F5041E195C96DE64155412CDEBED5148F5041BB108813E64155410959B130178F50417DB7F195E54155417C27850D188F5041A0C2F267E541554100525B9F188F50414F769249E5415541F47C58C3188F5041F65EAB42E54155411BB98FE2188F5041D5F6443CE5415541462E4F02198F5041AECB9736E541554114E1AE04198F50411C3D2336E54155414A971FB1198F5041F9572617E5415541C15E3A3C1B8F50414865B1D0E44155417CABA0B91E8F5041CF6CF230E441554123CA09F01F8F50413D7DE3FBE3415541A4015700218F50411C7150CDE34155415B5989B8218F5041AE2CCFADE34155417CEE0656228F5041DD43DF92E3415541D9B15F3C248F50413100B03FE3415541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>353896 - 198665
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000B000000295C8F42598E504133333373BA355541666666364A8E5041713D0A47BA3555413D0AD723418E5041C3F5284CB9355541E17A14BE408E5041713D0AF7BA3555411F85EB714B8E5041333333F3BB355541666666F65A8E5041713D0A07BC355541AE47E1AA688E50413D0AD723BC355541D7A3701D698E50410AD7A3B0BA355541CDCCCC1C688E504185EB5168BA355541B81E854B5F8E5041EC51B86EBA355541295C8F42598E504133333373BA355541
+</a>
+
+<b>
+01060000000100000001030000000100000015000000F5130A22418E504176ECB753B9355541E17A14BE408E5041713D0AF7BA355541B040BC644A8E504126FB6CDABB355541D3CE24864A8E50419F1C80DDBB355541A2A68DD94A8E5041C24F2DE5BB35554154CED37D538E5041C7C77CFDBB3555419B3966F65A8E50411B170A07BC35554144309900618E5041E574BB13BC355541F1B3AA69628E5041CB36B216BC3555416F4670C1638E50416CC69017BC355541CF3FEE40658E5041A00682F7BB355541D9C25E27658E50412B451978BA355541C223A0F4638E5041E5AC5772BA35554197E4806C5C8E5041BCC7DB77BA3555419EFA1725598E50414846187FBA355541FF2631D74D8E5041876CC358BA3555412A98672F4A8E5041D328094EBA355541BFF7D01D4A8E504172DE224CBA355541F4556E114A8E504177DDF84BBA3555416FD9BEAB498E50414242D03FBA355541F5130A22418E504176ECB753B9355541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>353896 - 389843
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000B000000295C8F42598E504133333373BA355541666666364A8E5041713D0A47BA3555413D0AD723418E5041C3F5284CB9355541E17A14BE408E5041713D0AF7BA3555411F85EB714B8E5041333333F3BB355541666666F65A8E5041713D0A07BC355541AE47E1AA688E50413D0AD723BC355541D7A3701D698E50410AD7A3B0BA355541CDCCCC1C688E504185EB5168BA355541B81E854B5F8E5041EC51B86EBA355541295C8F42598E504133333373BA355541
+</a>
+
+<b>
+01060000000100000001030000000100000015000000F5130A22418E504176ECB753B9355541E17A14BE408E5041713D0AF7BA355541B040BC644A8E504126FB6CDABB355541D3CE24864A8E50419F1C80DDBB355541A2A68DD94A8E5041C24F2DE5BB35554154CED37D538E5041C7C77CFDBB3555419B3966F65A8E50411B170A07BC35554144309900618E5041E574BB13BC355541F1B3AA69628E5041CB36B216BC3555416F4670C1638E50416CC69017BC355541CF3FEE40658E5041A00682F7BB355541D9C25E27658E50412B451978BA355541C223A0F4638E5041E5AC5772BA35554197E4806C5C8E5041BCC7DB77BA3555419EFA1725598E50414846187FBA355541FF2631D74D8E5041876CC358BA3555412A98672F4A8E5041D328094EBA355541BFF7D01D4A8E504172DE224CBA355541F4556E114A8E504177DDF84BBA3555416FD9BEAB498E50414242D03FBA355541F5130A22418E504176ECB753B9355541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>354082 - 366670
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000060000005C8FC235B0CD5041A4703D6A0EC8544185EB510877CD5041C3F528CC22C85441AE47E1DA79CD50413333339329C8544185EB51B8ADCD50415C8FC21517C85441D7A370ADAFCD504148E17A4410C854415C8FC235B0CD5041A4703D6A0EC85441
+</a>
+
+<b>
+01060000000100000001030000000100000008000000797BACF9AFCD50410ABD453B0FC854415C8FC235B0CD5041A4703D6A0EC854417DE89D9B8FCD5041E31074091AC85441A11F520877CD5041E47229CC22C85441AE47E1DA79CD50413333339329C854414F1651B8ADCD50415FDBC21517C854412EDA6FADAFCD50418F867A4410C85441797BACF9AFCD50410ABD453B0FC85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>354690 - 1347683
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000120000008FC2F538C5325141EC51B85E260D5541F6285C9FBB325141B81E850B240D554114AE4711AD325141CDCCCC3C280D5541B81E853B9D325141B81E85CB2C0D5541000000F09D3251417B14AE77320D554114AE47D19F325141D7A3709D410D55413D0AD753AA32514166666676430D5541F6285C1FB0325141CDCCCC0C450D5541AE47E1BAB4325141A4703DFA450D554152B81E25B9325141C3F5287C460D5541A4703D9ACA32514100000030410D5541AE47E16ACE325141CDCCCC7C3D0D5541CDCCCC3CD132514114AE47413A0D55415C8FC295D2325141B81E85EB360D5541C3F5281CCF325141E17A145E320D554114AE4751CB3251411F85EBF12E0D55417B14AE17C9325141F6285C7F2B0D55418FC2F538C5325141EC51B85E260D5541
+</a>
+
+<b>
+01060000000100000001030000000100000019000000EE465636CA3251413A70843B2D0D5541D703690ECA325141F1DEB0032D0D5541C7426DB2C7325141978530B7290D5541CCFD1397C6325141D94BCA4F280D55418FC2F538C5325141EC51B85E260D5541C00DD6B8C23251415CF820CD250D5541AC933CB1BB325141D6AF1C26240D554114AE4711AD325141CDCCCC3C280D5541B81E853B9D325141B81E85CB2C0D5541000000F09D3251417B14AE77320D554114AE47D19F325141D7A3709D410D55413D0AD753AA32514166666676430D5541F6285C1FB0325141CDCCCC0C450D5541AE47E1BAB4325141A4703DFA450D554152B81E25B9325141C3F5287C460D5541A4703D9ACA32514100000030410D5541AE47E16ACE325141CDCCCC7C3D0D5541F27EDE3BD13251414711D03B3A0D5541E64EBC34D13251414277EA113A0D55415C8FC295D2325141B81E85EB360D55419A845525D03251417D227AB9330D5541735CE220D0325141FD73B8B3330D55414E8079F0CC3251418E4E4C79300D554159008158CC325141E6A976DF2F0D5541EE465636CA3251413A70843B2D0D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>354690 - 1347700
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000120000008FC2F538C5325141EC51B85E260D5541F6285C9FBB325141B81E850B240D554114AE4711AD325141CDCCCC3C280D5541B81E853B9D325141B81E85CB2C0D5541000000F09D3251417B14AE77320D554114AE47D19F325141D7A3709D410D55413D0AD753AA32514166666676430D5541F6285C1FB0325141CDCCCC0C450D5541AE47E1BAB4325141A4703DFA450D554152B81E25B9325141C3F5287C460D5541A4703D9ACA32514100000030410D5541AE47E16ACE325141CDCCCC7C3D0D5541CDCCCC3CD132514114AE47413A0D55415C8FC295D2325141B81E85EB360D5541C3F5281CCF325141E17A145E320D554114AE4751CB3251411F85EBF12E0D55417B14AE17C9325141F6285C7F2B0D55418FC2F538C5325141EC51B85E260D5541
+</a>
+
+<b>
+0106000000010000000103000000020000007000000029092459C5325141F27C0275260D554199B42CC8C63251411C52A76F280D5541EE465636CA3251413A70843B2D0D554159008158CC325141E6A976DF2F0D5541A4232121D03251414900F8B3330D55415C8FC295D2325141B81E85EB360D5541E64EBC34D13251414277EA113A0D5541CDCCCC3CD132514114AE47413A0D5541AE47E16ACE325141CDCCCC7C3D0D5541A4703D9ACA32514100000030410D554152B81E25B9325141C3F5287C460D5541B81E858BB8325141E17A142E480D554148E17A64BF325141333333734A0D554148E17A34C43251415C8FC2C54B0D554114AE47E1C6325141333333734C0D554133333393CA325141666666064D0D5541666666F6CF32514148E17AB44D0D554114AE4781D2325141CDCCCCBC4D0D5541CDCCCC6CD2325141713D0AB74E0D5541D7A370ADD232514152B81E654F0D554148E17A04D43251413D0AD7D3540D55417B14AEC7D432514114AE47B1570D554152B81E65D5325141333333035A0D5541295C8F72D73251418FC2F588600D5541D7A370DDD83251413D0AD7E3650D55418FC2F568DA3251413D0AD7C3650D5541000000C0DB3251410AD7A350650D55419A9999B9DD325141B81E858B630D5541713D0A77E032514152B81E05610D5541A4703DBAE1325141D7A370AD5F0D5541AE47E1CAE232514185EB51A85E0D5541A4703DEAE43251415C8FC2F55D0D554185EB5198E73251417B14AE775D0D554114AE4791E93251413D0AD7535D0D5541C3F5285CEC325141713D0A975D0D554114AE4771EF32514114AE47F15D0D5541295C8F12F132514114AE47415E0D5541666666B6F2325141EC51B86E5E0D5541C3F5281CF4325141B81E857B5E0D554166666616F5325141AE47E15A5E0D5541B81E85CBF5325141F6285CAF5E0D55415C8FC2E5F63251417B14AE775F0D554152B81EC5F8325141295C8F125F0D554100000000FC3251417B14AEB75D0D5541333333F305335141E17A144E5C0D5541D7A3709D0B335141000000F05A0D5541D7A3707D123351419A999919590D5541CDCCCC0C16335141333333D3570D554185EB51C81B335141E17A145E550D5541B81E858B20335141295C8F22540D554185EB51A825335141000000D0520D5541B81E853B2A335141666666B6510D5541B81E858B2C335141C3F528FC500D554185EB51A831335141D7A3700D4F0D554152B81E5535335141E17A143E4E0D55418FC2F52839335141E17A14AE4C0D5541AE47E17A3C335141E17A14CE4A0D554114AE4721413351413D0AD7A3470D5541AE47E1FA43335141B81E854B450D5541F6285CCF473351411F85EBD1410D5541F6285CFF493351415C8FC2653F0D5541333333434C3351417B14AED73B0D5541CDCCCCDC4D335141CDCCCC3C390D5541CDCCCCEC4D335141E17A14DE380D5541AE47E10A4E335141EC51B82E380D5541666666D6503351411F85EB31300D5541295C8FE25333514152B81E65300D55416666665654335141AE47E15A300D55410AD7A3F0543351419A999949300D554114AE474155335141295C8F62300D5541713D0AA757335141A4703D1A300D5541AE47E1BA583351411F85EB01300D5541713D0A575A335141C3F528EC2F0D5541E17A14EE59335141C3F528FC2C0D5541295C8FB23E335141AE47E1FA2F0D5541333333233C3351411F85EB41290D55419A99999936335141000000601F0D5541713D0A1733335141B81E859B180D5541A4703D1A313351417B14AE87160D5541EC51B8FE2E335141000000E0130D5541666666B62C335141000000A0100D554114AE471127335141295C8FC2150D554148E17AB421335141333333231A0D55418FC2F5B81C33514152B81EA51C0D5541F6285CAF173351415C8FC255200D5541AE47E1BA143351411F85EBE1210D55410AD7A3C012335141E17A14BE220D55410AD7A3A00B335141C3F528DC310D5541713D0A370B335141CDCCCC3C320D5541713D0AF70A3351410AD7A3A0320D554185EB51F80A335141AE47E14A330D554185EB51C80A335141B81E85CB330D55419A9999C90A335141EC51B87E340D5541333333F302335141CDCCCCAC350D5541C3F528BCFC3251419A999989350D5541666666E6F632514185EB5118360D554100000010F13251413D0AD793360D55415C8FC205EE325141A4703D1A370D5541EC51B87EEB325141295C8F42230D5541CDCCCC4CE53251415C8FC255230D55413D0AD7E3E13251413D0AD763230D5541A4703DEADA32514166666626230D5541A4703D1AD932514133333333230D5541A4703D5AD53251410AD7A3D0230D5541A4703D7AD3325141713D0A57240D5541CDCCCCFCCF3251413D0AD763250D5541B81E85FBCD325141CDCCCC3C260D554152B81EE5CC325141AE47E16A260D554152B81EA5CA325141A4703DDA260D5541AE47E13AC83251415C8FC255270D5541AE47E10AC7325141713D0AD7250D554129092459C5325141F27C0275260D55410F000000295C8F6235335141CDCCCC7C430D55419A99999928335141D7A370CD460D55413D0AD71310335141E17A14AE4D0D5541713D0A570F335141B81E853B4D0D5541E17A140E0F3351410AD7A3604C0D5541A4703DEA0D33514114AE47713B0D55410AD7A3300E335141E17A149E3A0D554185EB51882B335141E17A141E330D55419A9999793A33514185EB5188300D554148E17A343C335141333333C3300D55413D0AD7E33C33514114AE4721320D55413D0AD713403351417B14AEA73E0D5541000000303F335141713D0A97400D5541713D0A873D33514148E17A94410D5541295C8F6235335141CDCCCC7C430D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>354939 - 361807
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000023000000C3F528DCFD4251411F85EBD16A0655413333338300435141CDCCCC9C52065541EC51B8AE02435141295C8F02450655417B14AE470243514152B81EB540065541A4703DCA00435141A4703D5A3C06554185EB5118F542514148E17AA4390655410AD7A390F14251410000001048065541666666F6F24251410AD7A3504E065541B81E858BF742514152B81E055606554114AE47D1F7425141F6285CFF5606554152B81E15F742514185EB51F85A065541AE47E14AF542514185EB51F85C065541666666F6F24251418FC2F5F85F0655411F85EB41EE425141295C8F026306554100000090EC425141D7A3703D6406554100000050EB425141CDCCCC8C6706554133333323EC42514152B81E856C06554114AE47A1ED42514185EB51887006554185EB51C8EE42514152B81EA573065541B81E85EBEE425141A4703DDA77065541CDCCCCDCEE425141666666867B065541CDCCCC1CEF425141F6285C4F7F065541666666B6EF4251411F85EB01830655417B14AEF7EE425141333333638806554152B81E85EE425141000000908C065541EC51B8DEED425141B81E854B91065541AE47E10AED42514148E17AA495065541CDCCCC3CEC42514114AE472199065541F6285CBFEA425141333333839B065541666666D6E84251413D0AD7439C065541D7A3702DFD4251418FC2F5D89B0655419A9999F9FB425141AE47E16A8E0655411F85EB61FB4251411F85EB517F0655410AD7A3B0FB42514152B81E6577065541C3F528DCFD4251411F85EBD16A065541
+</a>
+
+<b>
+0106000000010000000103000000010000003200000085EB5118F542514148E17AA439065541E4A97DC1F142514137E37148470655418B6FE8E5F1425141FE767E8D4906554105FB6FCFF242514133AE51A24D0655414BC069B3F54251419F2F52EB52065541B81E858BF742514152B81E055606554114AE47D1F7425141F6285CFF5606554152B81E15F742514185EB51F85A065541E7CFB500F64251410D63282D5C06554126C0855DF4425141C06B2F2A5E065541666666F6F24251418FC2F5F85F065541E9E17A53EF425141ADD3F35162065541F896A6CFEC425141603F400F64065541AEB9617FEB4251419349550F6706554150D02465EB425141F0E62C0C6806554133333323EC42514152B81E856C0655412EE20ECCEC4251415CD9154B6E065541EBAE47A1ED42514151EC518870065541D0EB51C8EE425141C6B71EA573065541E31E85EBEE4251410F713DDA7706554118CDCCDCEE425141266666867B065541B115B4F6EE425141FD0C940E7D065541CDCCCC1CEF425141F6285C4F7F065541CA01D4B1EF425141FAF8BEE5820655415C6666B6EF425141C984EB01830655415A6666B6EF425141D684EB0183065541666666B6EF4251411F85EB0183065541B10B1CA5EF4251413455C87E830655418C8909A5EF425141DAFD4D7F830655414715AEF7EE425141D43333638806554172B81E85EE4251417FFFFF8F8C0655414BA7BB63EE425141163815838D065541D1D9D850EE425141D34C960C8E0655413F76512DEE42514195BA430F8F065541D408E923EE425141E7EEC2538F0655414B790A19EE425141B61DE6A28F065541EC51B8DEED425141B81E854B91065541BAF22C88ED425141937D341293065541A45317E5EC4251416D1319F09606554105A4A02AF2425141012DC4A59706554102C8BD5AF4425141727DE72C7706554127C3EB52F74251417952AE705D065541FD96A98FF8425141EDDF2F4655065541EDEA5B0EF9425141C86AC8974E065541326A67CCF9425141AC295E3842065541298E092CFA425141E70C9604410655416CE0D84E024351415B87763241065541A4703DCA00435141A4703D5A3C065541B03C2509FB4251419860440B3B06554185EB5118F542514148E17AA439065541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>355664 - 1285355
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000000F0000009A9999299C455141295C8F926101554152B81E759845514148E17AB46201554114AE47A19C455141713D0A476D0155411F85EBC19F45514148E17A546D015541295C8F229F45514100000070700155419A999949A0455141E17A140E73015541295C8F42A24551413D0AD7E372015541713D0AD7A845514114AE47C1720155415C8FC235AD455141EC51B88E70015541AE47E1BAB14551419A9999096D015541E17A142EB34551410AD7A3206A015541713D0A37B0455141A4703DBA64015541D7A3709DAC4551413D0AD7435E015541666666C6A5455141C3F5288C5F0155419A9999299C455141295C8F92610155410C000000333333D3A5455141CDCCCCEC6C0155419A999909A9455141F6285CCF6B01554100000090AB455141CDCCCCEC69015541F6285CBFAD45514114AE47F1680155415C8FC2A5AE4551418FC2F5486901554148E17A84AE4551413D0AD7236A015541B81E85EBAD455141B81E857B6A015541CDCCCCDCAB4551417B14AE776B0155415C8FC285A84551418FC2F5386D01554185EB5198A64551418FC2F5E86D015541C3F5289CA54551411F85EBB16D015541333333D3A5455141CDCCCCEC6C015541
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000710927FBAE45514182D7B8FE6D0155413C29E046B0455141637F46096B01554134B58E4DB0455141F7B58C056B015541C6497355B0455141ADD4CBF36A0155418A791800AB45514121CBF69F6D0155410FDF1AFFA3455141831FEB336F0155418FA1B630A4455141FDCDA8D86D015541B191D1C5A5455141AB56B91C6D0155415FC73F38A74551413BF1DF706C015541F166938FA9455141CD2DD65A6B01554134B908C4A94551415C352E446B015541B8F8BA7DAE455141B9FBB93969015541608FF88DAF4551415C1E26C468015541D58D9CC2B0455141547B5564680155415FE130BFAB455141F2AD1F505E015541AB715908AB455141775B3F905E015541E7FB2F21A04551419A02F1C76001554152B81E759845514148E17AB46201554114AE47A19C455141713D0A476D0155411F85EBC19F45514148E17A546D015541295C8F229F45514100000070700155419A999949A0455141E17A140E73015541295C8F42A24551413D0AD7E372015541713D0AD7A845514114AE47C1720155415C8FC235AD455141EC51B88E70015541710927FBAE45514182D7B8FE6D015541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>355664 - 3560216
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000000F0000009A9999299C455141295C8F926101554152B81E759845514148E17AB46201554114AE47A19C455141713D0A476D0155411F85EBC19F45514148E17A546D015541295C8F229F45514100000070700155419A999949A0455141E17A140E73015541295C8F42A24551413D0AD7E372015541713D0AD7A845514114AE47C1720155415C8FC235AD455141EC51B88E70015541AE47E1BAB14551419A9999096D015541E17A142EB34551410AD7A3206A015541713D0A37B0455141A4703DBA64015541D7A3709DAC4551413D0AD7435E015541666666C6A5455141C3F5288C5F0155419A9999299C455141295C8F92610155410C000000333333D3A5455141CDCCCCEC6C0155419A999909A9455141F6285CCF6B01554100000090AB455141CDCCCCEC69015541F6285CBFAD45514114AE47F1680155415C8FC2A5AE4551418FC2F5486901554148E17A84AE4551413D0AD7236A015541B81E85EBAD455141B81E857B6A015541CDCCCCDCAB4551417B14AE776B0155415C8FC285A84551418FC2F5386D01554185EB5198A64551418FC2F5E86D015541C3F5289CA54551411F85EBB16D015541333333D3A5455141CDCCCCEC6C015541
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000710927FBAE45514182D7B8FE6D0155413C29E046B0455141637F46096B01554134B58E4DB0455141F7B58C056B015541C6497355B0455141ADD4CBF36A0155418A791800AB45514121CBF69F6D0155410FDF1AFFA3455141831FEB336F0155418FA1B630A4455141FDCDA8D86D015541B191D1C5A5455141AB56B91C6D0155415FC73F38A74551413BF1DF706C015541F166938FA9455141CD2DD65A6B01554134B908C4A94551415C352E446B015541B8F8BA7DAE455141B9FBB93969015541608FF88DAF4551415C1E26C468015541D58D9CC2B0455141547B5564680155415FE130BFAB455141F2AD1F505E015541AB715908AB455141775B3F905E015541E7FB2F21A04551419A02F1C76001554152B81E759845514148E17AB46201554114AE47A19C455141713D0A476D0155411F85EBC19F45514148E17A546D015541295C8F229F45514100000070700155419A999949A0455141E17A140E73015541295C8F42A24551413D0AD7E372015541713D0AD7A845514114AE47C1720155415C8FC235AD455141EC51B88E70015541710927FBAE45514182D7B8FE6D015541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>355748 - 3061145
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001100000014AE4771552551411F85EB414DFB54413D0AD70348255141E17A14BE44FB5441AE47E14A41255141CDCCCC3C40FB544114AE47013F255141F6285C8F3FFB5441EC51B8DE03255141295C8F7240FB5441F6285C8F02255141713D0AB741FB54419A999939022551411F85EBD148FB54418FC2F578FF245141A4703D7A4CFB54413D0AD7A32E2551411F85EB6157FB5441666666E630255141D7A370BD55FB544152B81EA533255141A4703DEA52FB5441CDCCCCCC342551411F85EB814FFB5441333333D335255141D7A3707D4FFB5441B81E85CB442551413D0AD7434FFB5441EC51B8CE45255141AE47E13A4FFB544114AE47A157255141666666F64EFB544114AE4771552551411F85EB414DFB5441
+</a>
+
+<b>
+0106000000010000000103000000010000001400000072053F992E25514113A0CD6957FB5441666666E630255141D7A370BD55FB544152B81EA533255141A4703DEA52FB5441CDCCCCCC342551411F85EB814FFB5441333333D335255141D7A3707D4FFB5441B81E85CB442551413D0AD7434FFB5441EC51B8CE45255141AE47E13A4FFB544114AE47A157255141666666F64EFB544114AE4771552551411F85EB414DFB54413D0AD70348255141E17A14BE44FB5441AE47E14A41255141CDCCCC3C40FB544114AE47013F255141F6285C8F3FFB5441EC51B8DE03255141295C8F7240FB5441F6285C8F02255141713D0AB741FB54417D6CAB43022551412C925AFC47FB5441FAFCA1DCFF245141E9F220814CFB5441D7ED562C02255141B3C9151A4DFB5441CDEAEB6E142551418E02D65251FB54415E034A6221255141D310575154FB544172053F992E25514113A0CD6957FB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>355748 - 3348326
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001100000014AE4771552551411F85EB414DFB54413D0AD70348255141E17A14BE44FB5441AE47E14A41255141CDCCCC3C40FB544114AE47013F255141F6285C8F3FFB5441EC51B8DE03255141295C8F7240FB5441F6285C8F02255141713D0AB741FB54419A999939022551411F85EBD148FB54418FC2F578FF245141A4703D7A4CFB54413D0AD7A32E2551411F85EB6157FB5441666666E630255141D7A370BD55FB544152B81EA533255141A4703DEA52FB5441CDCCCCCC342551411F85EB814FFB5441333333D335255141D7A3707D4FFB5441B81E85CB442551413D0AD7434FFB5441EC51B8CE45255141AE47E13A4FFB544114AE47A157255141666666F64EFB544114AE4771552551411F85EB414DFB5441
+</a>
+
+<b>
+0106000000010000000103000000010000001400000072053F992E25514113A0CD6957FB5441666666E630255141D7A370BD55FB544152B81EA533255141A4703DEA52FB5441CDCCCCCC342551411F85EB814FFB5441333333D335255141D7A3707D4FFB5441B81E85CB442551413D0AD7434FFB5441EC51B8CE45255141AE47E13A4FFB544114AE47A157255141666666F64EFB544114AE4771552551411F85EB414DFB54413D0AD70348255141E17A14BE44FB5441AE47E14A41255141CDCCCC3C40FB544114AE47013F255141F6285C8F3FFB5441EC51B8DE03255141295C8F7240FB5441F6285C8F02255141713D0AB741FB54417D6CAB43022551412C925AFC47FB5441FAFCA1DCFF245141E9F220814CFB5441D7ED562C02255141B3C9151A4DFB5441CDEAEB6E142551418E02D65251FB54415E034A6221255141D310575154FB544172053F992E25514113A0CD6957FB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>285956 - 216973
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001600000085EB51180AD95041B81E854BC3C95441A4703D8A08D95041D7A3701DC4C95441AE47E15A06D9504185EB5108CBC95441F6285CDFFED850418FC2F538D5C954413D75E9CAF6D85041956A7263DEC954415C8FC275F6D850410AD7A390DFC95441A4703D9AF2D85041E17A144EE8C95441F6285C9F07D950418FC2F518EFC954411F85EB0122D95041A4703D9AF7C95441A4703DFA25D9504185EB5178F0C954416C98DDCA2DD95041E8C71933E1C954412B6D4E322AD9504181B8E727DFC95441B092CFB828D9504105DE68AEDDC95441738E8F4C27D95041B087DF3FDBC954414D6A47A927D9504146A6AE93DAC95441B092CFB828D95041ACA03544DAC95441AD6023B02AD950410EC9BD53DBC95441630D368D2FD95041AEF585CFDDC954413333330334D950417B14AE17D5C95441CDCCCC8C33D95041B81E858BD3C95441295C8F1219D95041F6285CDFC7C9544185EB51180AD95041B81E854BC3C95441
+</a>
+
+<b>
+0106000000010000000103000000010000002E000000F6285CDFFED850418FC2F538D5C954417A23AB30F9D8504146366335DCC95441D5E3C275F6D85041E7F4A390DFC95441810C3E9AF2D850413FAD144EE8C95441DB6BF709F4D850419FA9E8C4E8C954417761F940F5D8504135C76829E9C954410F87245AF8D8504129AAB729EAC954417E529C79FBD8504171AB0F2CEBC954417FAE4E36FCD850412C9C0969EBC95441A3F5876AFCD8504101D2E979EBC954410BC75C9F07D95041975BF518EFC95441A96BBADE21D95041964856D9F7C954416BB7EC0C25D95041C26FD921F2C9544160D0DB0026D950419C1D636BF0C954412DC31B7B2AD95041E2EA9DABE7C954413AAC6D8E2AD95041D09DDD85E7C9544123D0A67A2BD95041033249B8E5C954417BDF8BDE2DD95041652C8436E1C954412B6D4E322AD9504181B8E727DFC95441B092CFB828D9504105DE68AEDDC95441738E8F4C27D95041B087DF3FDBC954414D6A47A927D9504146A6AE93DAC95441B092CFB828D95041ACA03544DAC954419220E9692BD95041FB979AB2DBC954413AB9678B2FD9504141E699CEDDC95441BFC006332ED9504111746571E0C954416C6C2DD52DD9504126AAAA25E1C9544106A281E72DD950415855E025E1C954410F73B7BB2FD9504132CDAFB3DDC95441266FB5E431D950417A1E0E74DAC95441E10699B034D95041A68A2C7FD5C9544166FF320334D950412C67AD17D5C95441FD3890FB33D95041D7D420FED4C954411C4980FA33D95041E0F192FAD4C9544196D649ED33D9504172755DCED4C9544167BCEBEA33D950412A7971C6D4C954413D6EAFE633D95041417245B8D4C95441B5B331E233D9504134843EA9D4C95441E52BC1DB33D950415A9FB293D4C95441337ECC8C33D9504148EC858BD3C95441B5958F1219D950412C0D5DDFC7C954410BB651180AD95041F33A854BC3C95441592B019909D95041434BA88EC3C95441C6253D8A08D95041DC90711DC4C95441AE47E15A06D9504185EB5108CBC95441F6285CDFFED850418FC2F538D5C95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>285956 - 361645
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001600000085EB51180AD95041B81E854BC3C95441A4703D8A08D95041D7A3701DC4C95441AE47E15A06D9504185EB5108CBC95441F6285CDFFED850418FC2F538D5C954413D75E9CAF6D85041956A7263DEC954415C8FC275F6D850410AD7A390DFC95441A4703D9AF2D85041E17A144EE8C95441F6285C9F07D950418FC2F518EFC954411F85EB0122D95041A4703D9AF7C95441A4703DFA25D9504185EB5178F0C954416C98DDCA2DD95041E8C71933E1C954412B6D4E322AD9504181B8E727DFC95441B092CFB828D9504105DE68AEDDC95441738E8F4C27D95041B087DF3FDBC954414D6A47A927D9504146A6AE93DAC95441B092CFB828D95041ACA03544DAC95441AD6023B02AD950410EC9BD53DBC95441630D368D2FD95041AEF585CFDDC954413333330334D950417B14AE17D5C95441CDCCCC8C33D95041B81E858BD3C95441295C8F1219D95041F6285CDFC7C9544185EB51180AD95041B81E854BC3C95441
+</a>
+
+<b>
+0106000000010000000103000000010000002E000000F6285CDFFED850418FC2F538D5C954417A23AB30F9D8504146366335DCC95441D5E3C275F6D85041E7F4A390DFC95441810C3E9AF2D850413FAD144EE8C95441DB6BF709F4D850419FA9E8C4E8C954417761F940F5D8504135C76829E9C954410F87245AF8D8504129AAB729EAC954417E529C79FBD8504171AB0F2CEBC954417FAE4E36FCD850412C9C0969EBC95441A3F5876AFCD8504101D2E979EBC954410BC75C9F07D95041975BF518EFC95441A96BBADE21D95041964856D9F7C954416BB7EC0C25D95041C26FD921F2C9544160D0DB0026D950419C1D636BF0C954412DC31B7B2AD95041E2EA9DABE7C954413AAC6D8E2AD95041D09DDD85E7C9544123D0A67A2BD95041033249B8E5C954417BDF8BDE2DD95041652C8436E1C954412B6D4E322AD9504181B8E727DFC95441B092CFB828D9504105DE68AEDDC95441738E8F4C27D95041B087DF3FDBC954414D6A47A927D9504146A6AE93DAC95441B092CFB828D95041ACA03544DAC954419220E9692BD95041FB979AB2DBC954413AB9678B2FD9504141E699CEDDC95441BFC006332ED9504111746571E0C954416C6C2DD52DD9504126AAAA25E1C9544106A281E72DD950415855E025E1C954410F73B7BB2FD9504132CDAFB3DDC95441266FB5E431D950417A1E0E74DAC95441E10699B034D95041A68A2C7FD5C9544166FF320334D950412C67AD17D5C95441FD3890FB33D95041D7D420FED4C954411C4980FA33D95041E0F192FAD4C9544196D649ED33D9504172755DCED4C9544167BCEBEA33D950412A7971C6D4C954413D6EAFE633D95041417245B8D4C95441B5B331E233D9504134843EA9D4C95441E52BC1DB33D950415A9FB293D4C95441337ECC8C33D9504148EC858BD3C95441B5958F1219D950412C0D5DDFC7C954410BB651180AD95041F33A854BC3C95441592B019909D95041434BA88EC3C95441C6253D8A08D95041DC90711DC4C95441AE47E15A06D9504185EB5108CBC95441F6285CDFFED850418FC2F538D5C95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>356576 - 26005
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000014000000EC51B80E6B40514148E17AA42CEF5441CDCCCC1C65405141666666562EEF544185EB51485D405141E17A143E31EF5441713D0AC7584051419A99995933EF5441666666365A4051413D0AD7E337EF5441A4703D0A65405141666666B633EF5441D7A370BD714051411F85EB2131EF54411F85EB51854051418FC2F5D82FEF544152B81E558740514152B81E352FEF544148E17A248B405141000000902CEF5441295C8F82A84051411F85EB811BEF544100000000A74051415C8FC2350FEF5441295C8FF2A6405141295C8FF20BEF5441C3F5286C984051417B14AEE70FEF5441CDCCCC2C914051413333333313EF54417B14AE07864051419A99998919EF54417B14AED7794051416666663621EF544148E17AF478405141C3F5286C22EF5441E17A141E724051410AD7A3C02BEF5441EC51B80E6B40514148E17AA42CEF5441
+</a>
+
+<b>
+0106000000010000000103000000010000000E00000035E1E69266405141B00DBDEB2DEF5441832C890468405141ADD359822DEF54414B2835AA6A405141CE2E23C12CEF54414506B13E6C40514170496B832CEF5441234EF3046D40514146EC2A652CEF5441E17A141E724051410AD7A3C02BEF544148E17AF478405141C3F5286C22EF54417B14AE27714051413333339319EF544152B81E656E40514185EB51B81AEF5441295C8F326E405141A4703D6A1DEF544185EB51A86E405141F6285C6F20EF54415C8FC28572405141713D0AC728EF5441A4ADE383664051419F0C84C12DEF544135E1E69266405141B00DBDEB2DEF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>356576 - 70386
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000014000000EC51B80E6B40514148E17AA42CEF5441CDCCCC1C65405141666666562EEF544185EB51485D405141E17A143E31EF5441713D0AC7584051419A99995933EF5441666666365A4051413D0AD7E337EF5441A4703D0A65405141666666B633EF5441D7A370BD714051411F85EB2131EF54411F85EB51854051418FC2F5D82FEF544152B81E558740514152B81E352FEF544148E17A248B405141000000902CEF5441295C8F82A84051411F85EB811BEF544100000000A74051415C8FC2350FEF5441295C8FF2A6405141295C8FF20BEF5441C3F5286C984051417B14AEE70FEF5441CDCCCC2C914051413333333313EF54417B14AE07864051419A99998919EF54417B14AED7794051416666663621EF544148E17AF478405141C3F5286C22EF5441E17A141E724051410AD7A3C02BEF5441EC51B80E6B40514148E17AA42CEF5441
+</a>
+
+<b>
+0106000000010000000103000000010000000E00000035E1E69266405141B00DBDEB2DEF5441832C890468405141ADD359822DEF54414B2835AA6A405141CE2E23C12CEF54414506B13E6C40514170496B832CEF5441234EF3046D40514146EC2A652CEF5441E17A141E724051410AD7A3C02BEF544148E17AF478405141C3F5286C22EF54417B14AE27714051413333339319EF544152B81E656E40514185EB51B81AEF5441295C8F326E405141A4703D6A1DEF544185EB51A86E405141F6285C6F20EF54415C8FC28572405141713D0AC728EF5441A4ADE383664051419F0C84C12DEF544135E1E69266405141B00DBDEB2DEF5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>357597 - 347758
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000B0000007B14AE97DA515141295C8F32F3F55441D7A370DDCE51514100000020F3F55441295C8F22CE515141AE47E11AF3F55441EC51B82EBC5151418FC2F5A81AF654419A999969BD515141AE47E15A1AF654410AD7A300C4515141D7A3705D19F6544100000080CC515141AE47E1CA1AF654418FC2F538D9515141AE47E12A1FF65441666666C6E05151415C8FC2E525F65441295C8FB2E051514133333373F3F554417B14AE97DA515141295C8F32F3F55441
+</a>
+
+<b>
+01060000000100000001030000000100000025000000B2F910DFD951514180306B31F3F55441DAF53BBACE515141048DFC20F3F55441D15C46FDC35151412C214A920BF6544152326798BD515141F12FB1071AF65441094EB4E8C35151412AA5770A19F654412E5EA08BCC515141E28BED661AF6544189F8909CD9515141B9E7F5F81EF65441333E9733DC51514176FD74D221F6544161AD56C6E0515141F915C8BD25F65441D7343BC6E0515141FF51EE7725F65441FD078CC5E0515141E59082BA23F65441847CEEC4E0515141F00EEB2922F654411EEAD0C3E0515141F633CA531FF654416EA2B5C1E051514181AF8DF819F654415D2397C0E0515141430D132017F654417CC03FBDE051514163C811A10EF65441E02421BDE05151413A0D3E530EF654414B13E8BCE0515141110522C20DF654417A05DABCE051514111CA659E0DF65441251D6B9EE0515141F2B504B10CF65441E2178CBBE0515141F224504D0AF65441E41222BBE05151417B49BC3F09F654416F0EB3BAE05151411C1E732508F654417614A9BAE0515141601E150C08F6544117EE41BAE0515141EA36CD0507F65441932E26BAE0515141CDF73EBF06F65441D2A800BAE05151411340D65F06F65441251D6B9EE0515141256206BC03F65441BA4995B6E05151412AE103AEFDF55441850BDDB5E0515141D89389D9FBF55441CF2986B4E05151413DB8AF71F8F55441ECAFCBB2E0515141F459980CF4F55441D61CA9B2E0515141AC82AEB4F3F55441AA62A3B2E05151414A731EA6F3F554415CBC98B2E05151410B3A0A8BF3F554412EB38FB2E0515141C7771074F3F55441B2F910DFD951514180306B31F3F55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>366242 - 3055864
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002B00000033333313AA2A5141295C8FC2A21955418FC2F528A72A5141713D0A079B195541CDCCCCDCA42A5141B81E858B9619554185EB51A8A32A514114AE47319419554152B81EA5952A5141EC51B8DE94195541666666A6902A51411F85EBF19519554148E17AB48E2A5141F6285C9F99195541713D0AB78E2A5141666666F69F19554152B81EE58A2A5141EC51B83EA4195541B81E85DB7D2A51418FC2F598A2195541E17A145E7A2A5141C3F528DCA2195541CDCCCC3C6F2A5141D7A3702DA4195541E17A14AE682A514148E17AE4A1195541713D0AD7672A5141B81E85EB9B1955418FC2F568602A5141713D0A279E195541F6285C6F592A514114AE47A19F1955417B14AEE7532A5141E17A14CEA319554100000010532A514152B81EF5A3195541E17A14FE4E2A5141D7A370CDA4195541CDCCCCAC4A2A5141A4703D1AA5195541AE47E1EA462A51418FC2F528A619554152B81EE5452A5141295C8F72A6195541D7A3708D3F2A5141713D0A17AB195541F6285C6F452A51411F85EBF1AB195541333333634A2A514148E17A14AC19554114AE4751542A514185EB51C8AD19554185EB5168542A51415C8FC225AE1955411F85EBB16A2A51415C8FC205AA1955415C8FC2D57C2A5141EC51B89EA61955417B14AEC77D2A51417B14AE47A6195541F6285CBF7F2A514185EB5178A61955411F85EBF1802A51411F85EB21A619554152B81EA5822A51415C8FC2A5A6195541E17A142E862A5141CDCCCC1CA6195541000000E0892A514133333313A6195541713D0A078C2A51415C8FC245A6195541295C8F52912A5141F6285C8FA5195541713D0A37952A5141EC51B8DEA419554185EB5188982A51417B14AE37A419554152B81E259E2A5141E17A14BEA3195541D7A370DDA22A514133333363A3195541AE47E17AA62A5141C3F528BCA219554133333313AA2A5141295C8FC2A2195541
+</a>
+
+<b>
+0106000000010000000103000000010000002E000000B3A8BA42742A5141E238D1A87B1955418FC2F5D8702A5141C3F528AC7E195541E17A148E6C2A5141AE47E1FA7F195541E667FEE86A2A514158A5A47D7F19554141DE25346B2A51414FDFB88B81195541FFA8B49A6B2A514117FB222786195541896EA8016D2A5141A1C0168E87195541A316161C6F2A5141475BCF5A8719554156A798E9702A5141FAADC64086195541C31F306A722A5141BDCFE78C841955411EFD0E1E742A51417505592684195541E7372B53742A5141042C87198419554108C70F2C772A5141042C871984195541B5C97A2B792A5141C255353D84195541CA43B4537A2A5141593094C08519554185F0A6EC7B2A5141BE9E3368841955417B291FFD812A5141B7F61580841955415BAF6BCB852A5141B7F6158084195541E19564CD8A2A514122F17A80851955414CA79869912A5141D19E839A8619554101B0B2B7942A5141F6C4233589195541515385D2972A51415CA202E98A19554160C1E6539B2A51412725D0688A1955416F2CB0369D2A51410FE0753D89195541AF491909A02A514185C5B4018C195541E5351108A12A51411B7D4D388E195541F2FA1BB49F2A5141B034E66E901955419BC10AE69F2A5141884BCE5F94195541402AC0D1A02A514189CE68549419554119D6A16AA32A5141E9384334941955410274D1A1A32A5141E49055398D195541520E0106A32A5141BA4546D989195541D704A0349F2A5141671B8E408619554194C681539A2A514163AE5499831955412FD2D303932A514120014C7F8219554149F175018D2A514192D075E581195541AD90C9CD8B2A5141D3CBDAE58219554128E85BB3892A514180FBB07F831955418C0F18FF862A5141BB9B044C82195541E9194EFE842A5141FADAABE47F1955419459F596822A51416C70C9B1801955417F081A627E2A514194FDCC307E19554189CA8E7A7B2A514140B50B4A7D1955412CAF24DF762A5141AB057A857C19554161700B9F762A5141BCC8E9EF7B195541B3A8BA42742A5141E238D1A87B195541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>366242 - 3322890
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002B00000033333313AA2A5141295C8FC2A21955418FC2F528A72A5141713D0A079B195541CDCCCCDCA42A5141B81E858B9619554185EB51A8A32A514114AE47319419554152B81EA5952A5141EC51B8DE94195541666666A6902A51411F85EBF19519554148E17AB48E2A5141F6285C9F99195541713D0AB78E2A5141666666F69F19554152B81EE58A2A5141EC51B83EA4195541B81E85DB7D2A51418FC2F598A2195541E17A145E7A2A5141C3F528DCA2195541CDCCCC3C6F2A5141D7A3702DA4195541E17A14AE682A514148E17AE4A1195541713D0AD7672A5141B81E85EB9B1955418FC2F568602A5141713D0A279E195541F6285C6F592A514114AE47A19F1955417B14AEE7532A5141E17A14CEA319554100000010532A514152B81EF5A3195541E17A14FE4E2A5141D7A370CDA4195541CDCCCCAC4A2A5141A4703D1AA5195541AE47E1EA462A51418FC2F528A619554152B81EE5452A5141295C8F72A6195541D7A3708D3F2A5141713D0A17AB195541F6285C6F452A51411F85EBF1AB195541333333634A2A514148E17A14AC19554114AE4751542A514185EB51C8AD19554185EB5168542A51415C8FC225AE1955411F85EBB16A2A51415C8FC205AA1955415C8FC2D57C2A5141EC51B89EA61955417B14AEC77D2A51417B14AE47A6195541F6285CBF7F2A514185EB5178A61955411F85EBF1802A51411F85EB21A619554152B81EA5822A51415C8FC2A5A6195541E17A142E862A5141CDCCCC1CA6195541000000E0892A514133333313A6195541713D0A078C2A51415C8FC245A6195541295C8F52912A5141F6285C8FA5195541713D0A37952A5141EC51B8DEA419554185EB5188982A51417B14AE37A419554152B81E259E2A5141E17A14BEA3195541D7A370DDA22A514133333363A3195541AE47E17AA62A5141C3F528BCA219554133333313AA2A5141295C8FC2A2195541
+</a>
+
+<b>
+0106000000010000000103000000010000002E000000B3A8BA42742A5141E238D1A87B1955418FC2F5D8702A5141C3F528AC7E195541E17A148E6C2A5141AE47E1FA7F195541E667FEE86A2A514158A5A47D7F19554141DE25346B2A51414FDFB88B81195541FFA8B49A6B2A514117FB222786195541896EA8016D2A5141A1C0168E87195541A316161C6F2A5141475BCF5A8719554156A798E9702A5141FAADC64086195541C31F306A722A5141BDCFE78C841955411EFD0E1E742A51417505592684195541E7372B53742A5141042C87198419554108C70F2C772A5141042C871984195541B5C97A2B792A5141C255353D84195541CA43B4537A2A5141593094C08519554185F0A6EC7B2A5141BE9E3368841955417B291FFD812A5141B7F61580841955415BAF6BCB852A5141B7F6158084195541E19564CD8A2A514122F17A80851955414CA79869912A5141D19E839A8619554101B0B2B7942A5141F6C4233589195541515385D2972A51415CA202E98A19554160C1E6539B2A51412725D0688A1955416F2CB0369D2A51410FE0753D89195541AF491909A02A514185C5B4018C195541E5351108A12A51411B7D4D388E195541F2FA1BB49F2A5141B034E66E901955419BC10AE69F2A5141884BCE5F94195541402AC0D1A02A514189CE68549419554119D6A16AA32A5141E9384334941955410274D1A1A32A5141E49055398D195541520E0106A32A5141BA4546D989195541D704A0349F2A5141671B8E408619554194C681539A2A514163AE5499831955412FD2D303932A514120014C7F8219554149F175018D2A514192D075E581195541AD90C9CD8B2A5141D3CBDAE58219554128E85BB3892A514180FBB07F831955418C0F18FF862A5141BB9B044C82195541E9194EFE842A5141FADAABE47F1955419459F596822A51416C70C9B1801955417F081A627E2A514194FDCC307E19554189CA8E7A7B2A514140B50B4A7D1955412CAF24DF762A5141AB057A857C19554161700B9F762A5141BCC8E9EF7B195541B3A8BA42742A5141E238D1A87B195541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>358080 - 49047
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000210000006666669628565141713D0AD799E85441C3F5289C1D5651419A99996996E854419A99990911565141CDCCCC7C92E85441B81E859B03565141AE47E14A8EE85441000000800256514148E17A0497E8544166666696015651418FC2F5289AE85441B81E852B01565141D7A3704D9CE854418FC2F51801565141666666569DE85441F6285C2F0156514148E17A149EE854413D0AD7E301565141A4703DFA9EE85441A4703D9A02565141333333E39FE854410AD7A3B00156514152B81EB5A2E85441AE47E1FA005651417B14AE57A5E85441CDCCCCACFF555141666666F6ADE854411F85EBC103565141713D0A07AFE85441AE47E1BA05565141000000F0ADE854415C8FC2B50756514152B81E15ADE854417B14AE7709565141C3F5282CADE85441A4703DDA0B5651417B14AE57AEE85441F6285C7F0F5651413D0AD7A3B0E854417B14AE4713565141AE47E1DAB1E85441AE47E1FA15565141713D0A37B2E85441E17A148E17565141713D0A37B2E854419A999959195651413D0AD7B3B1E85441713D0A971B565141F6285C3FB0E85441EC51B88E2056514152B81E05ADE85441AE47E1BA265651411F85EBF1A8E8544152B81E652B5651413D0AD7D3A7E85441F6285CAF3056514114AE47E1A7E854415C8FC2953156514114AE4781A4E854413D0AD7D3325651417B14AE37A2E854418FC2F598365651417B14AE379EE854416666669628565141713D0AD799E85441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000713D0A971B565141F6285C3FB0E8544124EC72811A565141563556E4AFE85441CE7BC78D1956514123DF8976B0E85441AB61E8071856514120D3C0E1B0E85441D24257DC15565141C13EBA2FB1E85441E58A0D5913565141940080EBB0E85441FEEA55FF0F565141B2BD9301B0E85441FB81C1FA0D565141EC1F2904AFE85441AF3571C50B5651412282BE06AEE85441D0FE4D700A56514176A1671FACE854410C79759C0856514135CA7483ABE85441EF76284006565141058071AAABE85441CF68124F04565141FF67DF80ACE85441AC9FD5F901565141E4A2DD7DAEE85441C2F37CE9015651414201CC8BAEE854411E9FC3EE05565141808A7998AFE85441D7A370DD15565141CDCCCC1CB4E85441713D0A971B565141F6285C3FB0E85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>358080 - 89186
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000210000006666669628565141713D0AD799E85441C3F5289C1D5651419A99996996E854419A99990911565141CDCCCC7C92E85441B81E859B03565141AE47E14A8EE85441000000800256514148E17A0497E8544166666696015651418FC2F5289AE85441B81E852B01565141D7A3704D9CE854418FC2F51801565141666666569DE85441F6285C2F0156514148E17A149EE854413D0AD7E301565141A4703DFA9EE85441A4703D9A02565141333333E39FE854410AD7A3B00156514152B81EB5A2E85441AE47E1FA005651417B14AE57A5E85441CDCCCCACFF555141666666F6ADE854411F85EBC103565141713D0A07AFE85441AE47E1BA05565141000000F0ADE854415C8FC2B50756514152B81E15ADE854417B14AE7709565141C3F5282CADE85441A4703DDA0B5651417B14AE57AEE85441F6285C7F0F5651413D0AD7A3B0E854417B14AE4713565141AE47E1DAB1E85441AE47E1FA15565141713D0A37B2E85441E17A148E17565141713D0A37B2E854419A999959195651413D0AD7B3B1E85441713D0A971B565141F6285C3FB0E85441EC51B88E2056514152B81E05ADE85441AE47E1BA265651411F85EBF1A8E8544152B81E652B5651413D0AD7D3A7E85441F6285CAF3056514114AE47E1A7E854415C8FC2953156514114AE4781A4E854413D0AD7D3325651417B14AE37A2E854418FC2F598365651417B14AE379EE854416666669628565141713D0AD799E85441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000713D0A971B565141F6285C3FB0E8544124EC72811A565141563556E4AFE85441CE7BC78D1956514123DF8976B0E85441AB61E8071856514120D3C0E1B0E85441D24257DC15565141C13EBA2FB1E85441E58A0D5913565141940080EBB0E85441FEEA55FF0F565141B2BD9301B0E85441FB81C1FA0D565141EC1F2904AFE85441AF3571C50B5651412282BE06AEE85441D0FE4D700A56514176A1671FACE854410C79759C0856514135CA7483ABE85441EF76284006565141058071AAABE85441CF68124F04565141FF67DF80ACE85441AC9FD5F901565141E4A2DD7DAEE85441C2F37CE9015651414201CC8BAEE854411E9FC3EE05565141808A7998AFE85441D7A370DD15565141CDCCCC1CB4E85441713D0A971B565141F6285C3FB0E85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>358491 - 1293336
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000024000000713D0AB754645141AE47E1EA12C954411F85EB6153645141EC51B82E13C95441CDCCCCDC4F645141A4703D4A13C95441EC51B88E4C645141A4703D4A13C95441295C8F9249645141AE47E1EA12C954413D0AD7A346645141713D0A4712C9544114AE47114364514185EB512811C95441E17A14AE416451418FC2F56810C9544114AE47E140645141713D0A7710C95441A4703D8A40645141D7A3700D11C95441A4703D5A40645141B81E856B14C95441333333633F645141E17A147E21C95441C3F5286C3E6451410AD7A3902EC954411F85EB3146645141000000303EC954419A9999194A645141F6285CCF45C9544114AE47714F6451419A99995949C954413D0AD7D351645141333333F346C95441333333935464514114AE47B144C95441EC51B88E57645141713D0AB741C954413D0AD7635B645141CDCCCC4C3EC9544185EB51085D645141666666063CC954417B14AE675D645141295C8F9239C954411F85EBB15C645141B81E854B39C95441E17A142E5C6451417B14AE1739C95441666666E65A645141D7A3700D36C9544133333313586451411F85EBE130C95441F6285C6F57645141AE47E1DA2EC954413D0AD75357645141E17A143E2CC954419A999949586451410AD7A39024C954413D0AD7835964514185EB51681CC95441A4703DBA59645141E17A148E1BC95441713D0A375A6451413D0AD7131AC954419A999989586451413D0AD7E319C9544100000080586451413333331317C954419A9999A954645141CDCCCCDC16C95441713D0AB754645141AE47E1EA12C95441
+</a>
+
+<b>
+0106000000010000000103000000010000002600000014AE47714F6451419A99995949C95441A227A09E53645141936C3C7A45C954416EF012FD55645141103F034843C9544155775BA95A645141F0C7F7F23EC954413A37BE275B6451415C7DCC7D3EC95441A089001F5B6451419090238A3EC954413D0AD7635B645141CDCCCC4C3EC9544185EB51085D645141666666063CC954417B14AE675D645141295C8F9239C954411F85EBB15C645141B81E854B39C95441E17A142E5C6451417B14AE1739C95441AAAFC5BD5B64514183C1933338C95441B7B480ED5A645141303DF45136C95441146A37105A645141EBA7619734C954419A02C3B058645141C106973332C9544133333313586451411F85EBE130C954417E3A576B57645141A36A87FF2EC954413D0AD75357645141E17A143E2CC954419A999949586451410AD7A39024C95441305EFF66596451418EF6C49B1DC95441E29556BD5964514114E010EC1BC95441098E3546586451410E1359E11BC954414F99433758645141B48DAE4417C95441925FB8895464514159D102EB16C95441925FB88954645141846A3F7913C95441266E092353645141846A3F7913C95441C86CC42A4F6451412532F9C313C95441ADFAF2C74B645141CA754D6A13C95441E08B640D4764514114FDF5B612C95441DD46CB6E4364514149D3009B11C9544181C6289640645141946AD43A10C95441A4703D8A40645141D7A3700D11C95441A4703D5A40645141B81E856B14C95441333333633F645141E17A147E21C95441C3F5286C3E6451410AD7A3902EC954411F85EB3146645141000000303EC954419A9999194A645141F6285CCF45C9544114AE47714F6451419A99995949C95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>358491 - 3330364
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000024000000713D0AB754645141AE47E1EA12C954411F85EB6153645141EC51B82E13C95441CDCCCCDC4F645141A4703D4A13C95441EC51B88E4C645141A4703D4A13C95441295C8F9249645141AE47E1EA12C954413D0AD7A346645141713D0A4712C9544114AE47114364514185EB512811C95441E17A14AE416451418FC2F56810C9544114AE47E140645141713D0A7710C95441A4703D8A40645141D7A3700D11C95441A4703D5A40645141B81E856B14C95441333333633F645141E17A147E21C95441C3F5286C3E6451410AD7A3902EC954411F85EB3146645141000000303EC954419A9999194A645141F6285CCF45C9544114AE47714F6451419A99995949C954413D0AD7D351645141333333F346C95441333333935464514114AE47B144C95441EC51B88E57645141713D0AB741C954413D0AD7635B645141CDCCCC4C3EC9544185EB51085D645141666666063CC954417B14AE675D645141295C8F9239C954411F85EBB15C645141B81E854B39C95441E17A142E5C6451417B14AE1739C95441666666E65A645141D7A3700D36C9544133333313586451411F85EBE130C95441F6285C6F57645141AE47E1DA2EC954413D0AD75357645141E17A143E2CC954419A999949586451410AD7A39024C954413D0AD7835964514185EB51681CC95441A4703DBA59645141E17A148E1BC95441713D0A375A6451413D0AD7131AC954419A999989586451413D0AD7E319C9544100000080586451413333331317C954419A9999A954645141CDCCCCDC16C95441713D0AB754645141AE47E1EA12C95441
+</a>
+
+<b>
+0106000000010000000103000000010000002600000014AE47714F6451419A99995949C95441A227A09E53645141936C3C7A45C954416EF012FD55645141103F034843C9544155775BA95A645141F0C7F7F23EC954413A37BE275B6451415C7DCC7D3EC95441A089001F5B6451419090238A3EC954413D0AD7635B645141CDCCCC4C3EC9544185EB51085D645141666666063CC954417B14AE675D645141295C8F9239C954411F85EBB15C645141B81E854B39C95441E17A142E5C6451417B14AE1739C95441AAAFC5BD5B64514183C1933338C95441B7B480ED5A645141303DF45136C95441146A37105A645141EBA7619734C954419A02C3B058645141C106973332C9544133333313586451411F85EBE130C954417E3A576B57645141A36A87FF2EC954413D0AD75357645141E17A143E2CC954419A999949586451410AD7A39024C95441305EFF66596451418EF6C49B1DC95441E29556BD5964514114E010EC1BC95441098E3546586451410E1359E11BC954414F99433758645141B48DAE4417C95441925FB8895464514159D102EB16C95441925FB88954645141846A3F7913C95441266E092353645141846A3F7913C95441C86CC42A4F6451412532F9C313C95441ADFAF2C74B645141CA754D6A13C95441E08B640D4764514114FDF5B612C95441DD46CB6E4364514149D3009B11C9544181C6289640645141946AD43A10C95441A4703D8A40645141D7A3700D11C95441A4703D5A40645141B81E856B14C95441333333633F645141E17A147E21C95441C3F5286C3E6451410AD7A3902EC954411F85EB3146645141000000303EC954419A9999194A645141F6285CCF45C9544114AE47714F6451419A99995949C95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>489573 - 109012
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000D200000085EB5198F7235141000000F09A205541E17A144E0224514114AE47F1982055419A999979042451419A9999799A2055417B14AEA705245141000000A09B205541666666660B245141E17A14FE98205541B81E853B0B24514185EB515897205541C3F5289C0D2451411F85EB31982055413D0AD75315245141333333F39A2055419A9999890B2451411F85EB4196205541E17A145E0C24514152B81EA5932055413D0AD7830B2451418FC2F5589320554114AE47910A245141F6285CAF93205541000000100A24514166666606942055415C8FC2F5092451410AD7A390942055411F85EBF1082451411F85EBA19420554100000070082451410000002094205541F6285CAF0724514114AE471194205541EC51B89E0624514185EB51089420554148E17A8407245141A4703DFA942055417B14AE4707245141295C8F1296205541AE47E15A05245141CDCCCC1C972055415C8FC2B5032451410AD7A3F097205541D7A3702D02245141CDCCCC0C9820554185EB51B8022451417B14AEF795205541EC51B85E00245141E17A14BE9620554114AE47E1FF235141000000C098205541EC51B86EFF235141A4703D2A99205541333333A3FE2351419A9999F99820554114AE47D1FC235141A4703D2A992055415C8FC225FC23514152B81EA599205541A4703D7AFB235141CDCCCC9C992055419A999959FB2351419A9999F9982055419A999949FC235141713D0A6798205541B81E854BFC235141CDCCCC6C97205541A4703D7AFB2351419A99996997205541295C8F82FB2351413D0AD7639620554185EB5118FB235141D7A3702D95205541A4703D7AFB2351413333339391205541D7A3708DFD235141A4703D6A9120554152B81E85FD235141713D0AC790205541CDCCCC0CFF23514152B81E859020554148E17A840324514148E17A64902055419A999979042451410000001091205541D7A370ED05245141EC51B82E92205541CDCCCC0C07245141B81E855B93205541000000A008245141EC51B82E93205541EC51B82E0A245141C3F528DC92205541333333030D24514166666606922055413D0AD7C30F245141D7A3704D912055413D0AD7231224514185EB51A89020554148E17A5415245141EC51B8BE8F2055419A99995918245141295C8FF28E205541B81E85CB1C245141000000C08D205541295C8F4221245141666666368C2055417B14AEE7242451410AD7A3F08A20554148E17A5426245141D7A3706D8A205541D7A3700D27245141EC51B8EE89205541B81E85CB272451418FC2F548892055413D0AD74328245141F6285CCF832055418FC2F568292451415C8FC2957D205541F6285C8F29245141333333C37C205541E17A14DE2324514152B81E957E205541713D0A9723245141AE47E1BA7E205541EC51B86E23245141EC51B8CE7E2055411F85EB4123245141000000E07E205541295C8F222324514114AE47017F205541C3F5280C23245141000000207F2055419A9999F922245141CDCCCC4C7F205541C3F528EC222451417B14AE877F2055411F85EBE122245141EC51B8DE7F20554114AE47E1222451411F85EB41802055417B14AEE722245141F6285C7F80205541295C8FF2222451411F85EBC180205541CDCCCC0C232451411F85EB4181205541F6285C1F23245141295C8F8281205541B81E853B23245141EC51B8DE812055413333336323245141EC51B83E822055410000009023245141D7A3708D822055411F85EBC1232451419A9999D982205541000000C024245141A4703D5A84205541AE47E19A242451413D0AD733862055410AD7A31023245141F6285C1F87205541A4703DDA22245141F6285C4F8720554114AE476122245141A4703DBA872055418FC2F518222451411F85EBE1872055413D0AD7B3212451417B14AE0788205541D7A3704D2124514148E17A24882055415C8FC2F5202451419A9999298820554152B81E8520245141295C8F2288205541EC51B83E20245141E17A140E8820554114AE470120245141EC51B8EE87205541713D0AA71F245141F6285CAF87205541666666561F245141EC51B86E87205541E17A140E1F245141A4703D3A87205541000000C01E245141C3F528FC862055410AD7A3801E245141A4703DEA862055417B14AE271E245141295C8FE286205541713D0AC71D245141295C8FE286205541B81E857B1D245141CDCCCCEC86205541713D0A271D245141A4703D0A87205541D7A370CD1C245141F6285CFF862055418FC2F5681C24514148E17AE486205541D7A370FD1B2451411F85EBC1862055417B14AEA71B2451415C8FC2B586205541333333631B245141295C8FB28620554148E17A041B2451411F85EBC186205541D7A370BD1A24514152B81ED5862055418FC2F5381A245141AE47E1FA862055413D0AD7A3192451415C8FC2258720554114AE472119245141295C8FA287205541CDCCCC3C18245141CDCCCCDC872055411F85EBE117245141CDCCCC9C872055410AD7A330172451419A9999B98720554114AE4751162451418FC2F5C887205541713D0A771524514114AE47518820554148E17AB414245141A4703D7A89205541C3F5282C1424514148E17AB489205541333333E313245141B81E85FB8820554148E17AD41324514148E17A348820554185EB515813245141295C8FF287205541666666061324514114AE470188205541CDCCCCAC122451417B14AE1788205541CDCCCC5C1224514152B81E358820554152B81E05122451419A99995988205541C3F528BC112451413D0AD78388205541E17A146E11245141CDCCCCBC88205541CDCCCC2C11245141333333F388205541C3F528FC10245141AE47E12A89205541F6285CDF10245141F6285C5F89205541E17A14CE102451411F85EB9189205541B81E85CB1024514185EB51B88920554114AE47D1102451410AD7A3E089205541295C8FE210245141713D0A078A2055419A9999F910245141CDCCCC2C8A205541D7A3700D11245141AE47E16A8A20554166666616112451410AD7A3A08A205541B81E850B112451415C8FC2E58A205541AE47E1EA10245141D7A3702D8B205541AE47E1BA102451411F85EB618B205541666666761024514114AE47918B205541CDCCCC2C10245141A4703DBA8B205541666666860F245141666666068C2055418FC2F5480E245141713D0AA78C2055419A9999190C24514185EB51488D205541B81E85CB0B2451410AD7A3908D2055415C8FC2D509245141713D0A078E205541295C8FC208245141EC51B8BE8E2055413D0AD793072451418FC2F5988E2055413D0AD7F306245141E17A140E8E205541CDCCCC0C07245141C3F528CC8B2055418FC2F5F8052451419A9999A989205541EC51B8FE0324514114AE47A1892055418FC2F5E8022451413D0AD7038A2055413D0AD7E3012451413D0AD7138A205541F6285CFF00245141A4703DBA89205541D7A3709D002451417B14AE478920554166666646FF235141295C8FE289205541F6285C7FFE2351410AD7A3808920554114AE4701FE235141E17A14CE892055419A9999B9FC23514114AE47218A2055417B14AE77FC2351410AD7A3008B20554133333393FB235141295C8F528B205541B81E85FBFA23514114AE47B18A20554100000060FA235141F6285CEF8B205541713D0AD7FA235141AE47E1EA8C205541D7A3707DFA235141E17A149E8D205541EC51B83EF92351413D0AD7B38E20554114AE4731F82351415C8FC2158F205541C3F5282CF7235141D7A370FD8E2055418FC2F598F623514114AE47B18F20554166666626F62351410AD7A3A08F20554166666626F623514148E17AC48E2055419A999929F52351418FC2F5188E205541CDCCCC3CF4235141EC51B8BE8D205541F6285C3FF3235141333333038D205541C3F5289CF2235141713D0A478C205541666666E6F1235141F6285CAF8B205541A4703DAAF02351417B14AE678C205541F6285C1FF02351413D0AD7338D2055413D0AD753EF235141295C8F528D205541CDCCCC5CED2351413D0AD7738E205541F6285C8FEC2351411F85EB218E20554185EB5158E823514114AE47A19020554133333303E7235141F6285C2F9120554148E17AD4E5235141295C8F829120554148E17A84E4235141AE47E14A92205541295C8F32E3235141E17A149E93205541C3F5289CE22351416666667694205541713D0A17E223514114AE47F194205541CDCCCC2CE2235141CDCCCCAC952055413D0AD7E3DF235141D7A370ED952055418FC2F5E8DE23514114AE47419620554114AE47A1DE235141B81E85EB95205541713D0A17D9235141713D0AC79A2055413D0AD703DA235141EC51B80E9B205541AE47E18ADC235141EC51B87E9A205541AE47E13ADE235141713D0A579B20554152B81ED5DE235141A4703D1A9C2055417B14AEB7E223514148E17AE49C205541713D0A07DE2351418FC2F508A02055419A999969D9235141F6285CCFA32055419A9999E9DE2351413D0AD7B3A7205541F6285C8FE1235141C3F528DCA620554185EB51F8E323514114AE4741A520554148E17A04E6235141E17A14EEA3205541D7A3704DE7235141D7A3705DA22055410AD7A360E6235141D7A3703DA1205541AE47E16AE6235141EC51B88EA020554148E17AA4F2235141A4703D7A9B20554185EB5198F7235141000000F09A205541
+</a>
+
+<b>
+0106000000010000000103000000010000007E0100002EE0C82D07245141B1E3DA57932055411D8A065909245141297B680893205541E6BB083D0C2451418993DE4092205541333333030D24514166666606922055416E68EDC20F2451413FF7AD4D91205541971E0BED1424514111DC4EDC8F20554148E17A5415245141EC51B8BE8F205541D5F48F81152451419AA2D0B28F205541251E52C519245141DC7D92908E205541B41EBC541D2451415532C0908D205541340733A01F24514182DA75C68C205541E245FAEB22245141DF15E2A18B2055417A025B3F252451416A8A1BD18A2055416763635526245141F757D16C8A205541B5956E6A262451412C76665E8A205541CFCAEC9926245141FB9DDC3D8A205541A8699DA526245141414FDA358A205541875362CB26245141CFEEF91B8A205541813B75D026245141550680188A20554145DF367127245141141EB697892055417916AFD7272451411B5943BB88205541967223EE272451410612B1B5872055413D0AD74328245141F6285CCF832055414F824C89282451412EFBBB5582205541B0500E3F29245141F74194797E2055410BAA785D29245141325C38D47D2055410D70817D29245141E58BE8C87C2055417F7EE93C2924514190668FDD7C2055417B9ABC7C2724514170ADD96C7D20554194A2D79E26245141104DCBB37D20554181C101DD25245141EE5AC4F17D205541D2E0958B2424514112A3A55D7E205541A4F51CD623245141F32187997E205541C7C11D992324514113C3C6B97E205541713D0A9723245141AE47E1BA7E2055414730213323245141CD25B2EF7E2055414A4C0814232451419B1B34157F205541C3F5280C23245141000000207F2055418B16A20123245141F9DC68397F205541BEA130F6222451416A3BBD5B7F205541D0025BF4222451416A9EC6637F205541E62711E6222451414A6A78BB7F205541351598E422245141C72FBC6180205541987558E5222451415D00F3688020554147AAAF0A2324514180D69B37812055412241C64E2324514124A54D0D82205541F55F8CAD232451410B4F5EB6822055413C54AEA0242451418ADBD32A84205541000000C024245141A4703D5A84205541AE47E19A242451413D0AD73386205541F5A1A84623245141ADCD16FF862055410AD7A31023245141F6285C1F87205541A4703DDA22245141F6285C4F87205541D329769922245141B01B99888720554114AE476122245141A4703DBA87205541298ABE4C2224514185E381C5872055418FC2F518222451411F85EBE1872055413D0AD7B3212451417B14AE0788205541D7A3704D2124514148E17A24882055415C8FC2F5202451419A9999298820554152B81E8520245141295C8F2288205541D308E648202451418E810A1188205541EC51B83E20245141E17A140E8820554114AE470120245141EC51B8EE87205541E0A402C11F245141383098C187205541713D0AA71F245141F6285CAF8720554134E7EA841F24514160060294872055413EF4B2191F24514171E8AB42872055416B504DAD1E2451416126DFF686205541A0817DA81E2451417DC282F5862055412D8ACBA71E245141006D50F5862055418F419F541E245141D69C70E68620554116B3D2241E245141295C8FE286205541C58782CB1D245141295C8FE2862055416282F9A91D245141CB4580E686205541B81E857B1D245141CDCCCCEC86205541713D0A271D245141A4703D0A87205541D7A370CD1C245141F6285CFF862055418FC2F5681C24514148E17AE486205541A82764231C245141385D1ECE86205541E0D9DCF51B245141A979D8C086205541C0FAEA611B245141BC95C4B28620554177B45A371B245141608CABB986205541708BE2C81A2451419ADA06D28620554165722AA11924514158F3502887205541CD985F8C1924514105F8303C8720554114AE472119245141295C8FA287205541CDCCCC3C18245141CDCCCCDC872055411F85EBE117245141CDCCCC9C872055410AD7A330172451419A9999B987205541DF0E5A10172451414605D2BB872055417355515216245141D47DE3C887205541FC95C60D16245141EA1B20F3872055415E550BA3152451414520CB3588205541D5036A1D1524514121D013DA8820554148E17AB414245141A4703D7A892055418AAB8E7314245141D417FA9589205541C3F5282C1424514148E17AB489205541333333E313245141B81E85FB88205541D098E8DF1324514183A903CF8820554148E17AD41324514148E17A348820554185EB515813245141295C8FF2872055412599AE3613245141F8B49AF88720554164C303E812245141D856E00888205541CDCCCCAC122451417B14AE1788205541F25D6D5D122451419BA1E33488205541493B430612245141941E1B5A8820554124A939B111245141D926D18B88205541C38E945F112451419811E2C88820554142D60F3B1124514154AB50E788205541058B3FFD102451413260A22989205541910764D210245141B29D4E85892055417DA6EACC10245141E2A118C28920554114AE47D1102451410AD7A3E089205541ACC7DCDA102451415E2CEFF58920554173914CEC10245141BA5400178A2055419A9999F910245141CDCCCC2C8A20554114F960FC1024514172B57E358A205541D7A3700D11245141AE47E16A8A20554166666616112451410AD7A3A08A205541B81E850B112451415C8FC2E58A205541AE47E1EA10245141D7A3702D8B205541AE47E1BA102451411F85EB618B205541666666761024514114AE47918B205541CDCCCC2C10245141A4703DBA8B2055416DD4F722102451411870BDBE8B2055419098260C0F245141599743448C2055418FC2F5480E245141713D0AA78C205541484CD4FA0C2451411D3761078D2055418497C34C0C245141DD6191398D20554170A20A110C245141BF413F508D205541B81E85CB0B2451410AD7A3908D205541956544C30A2451412CDEFECE8D205541111511D409245141E728F40C8E205541118B3B55092451413F17D35C8E205541295C8FC208245141EC51B8BE8E205541BE222E8108245141119790B68E205541E7D440C307245141BAC6DF9E8E2055413D0AD793072451418FC2F5988E2055413D0AD7F306245141E17A140E8E20554145EA8305072451419A37D4748C2055412B40C608072451412D245E298C205541BE83040907245141EA7DBC238C205541EC0E0E09072451418084DF228C205541D7D9750907245141E0517C198C2055412A8A7A09072451411EC10F198C205541B5BAC309072451418D2271128C20554129B3620A0724514151C5C7C78B20554142A7CEA206245141185124FA8A205541A6504E6306245141C761517C8A2055415354E2570624514125AFAF658A2055419D915455062451413B4CA0608A205541D9E2FFF80524514112AAADA989205541D56E64C9052451418C77D1A88920554124668F17052451419344E5A589205541391050F30424514152C34CA58920554189BA4BD004245141626FB9A4892055418C0E4CA7042451419FF00CA4892055414190CF0504245141B2D94FA2892055417FD6E356032451413424D5DC892055418FC2F5E8022451413D0AD7038A2055413D0AD7E3012451413D0AD7138A205541F294B87101245141C56316E789205541F6285CFF00245141A4703DBA892055419021519F002451412639E049892055417F8A9D5F00245141A5E5976389205541E569F35900245141659E26668920554194B1505800245141EAAAE36689205541E0430D57002451417DB17567892055412ACD8150002451411B276A6A89205541B8CEFF4C002451411A97FF6B89205541F7E9154700245141151AAB6E892055413530891D002451410D816D8189205541C984C8BDFF2351419ACAA8AC89205541A928E4A3FF2351414D7259B88920554117F7FC63FF235141158033D58920554166666646FF235141295C8FE289205541F65FA5F4FE235141521657BA892055418F2D937FFE2351410866F782892055410753BD3CFE2351412C258FA98920554114AE4701FE235141E17A14CE89205541FEBE5CC1FC2351412BAF89218A2055417B14AE77FC2351410AD7A3008B205541100BB1DBFB235141429191388B2055414CCE7DACFB235141C3EE7D498B20554133333393FB235141295C8F528B2055415B947E71FB235141CF9FB82E8B2055413935C6FBFA23514182CF0BB58A2055419CD4BEDEFA2351415EB621EC8A20554164E17374FA235141556287C58B205541D6251B61FA235141796CB2F18B2055418EDA5294FA2351418B30EA5D8C205541713D0AD7FA235141AE47E1EA8C205541D7A3707DFA235141E17A149E8D205541D609E03BFA235141360638D78D205541EC51B83EF92351413D0AD7B38E20554114AE4731F82351415C8FC2158F205541B847C62CF7235141D94A7FFD8E20554167D17BF1F6235141968E20458F2055418FC2F598F623514114AE47B18F20554166666626F62351410AD7A3A08F2055412FE2F524F623514144D980C38E2055412A858A11F62351417BDF53B68E2055414E8C99F2F5235141CDA455A18E2055418B1047D0F5235141772E0C8A8E2055417B43C8BBF5235141A753247C8E205541B815EDB1F5235141D86574758E205541F7979BACF5235141E0A6D8718E2055416E00B09DF4235141D259A4E38D205541CDCCCC3CF4235141EC51B8BE8D205541F6285C3FF3235141333333038D20554181B73CE4F2235141BC07249A8C2055412AD48757F223514123ADC40D8C20554146AC49ECF123514170FD45B48B205541CBA9B4A7F12351417117E9D38B205541C4F8DDFFF0235141AC7FC2358C205541D93402FEF023514138DED7368C2055415A1CE3EAF02351415AB0FD418C205541BA54DDC2F0235141E7EF52598C205541C5F5583FF02351416420D1048D205541F6285C1FF02351413D0AD7338D20554175066518F02351414231E4348D2055413EE1D322EF2351417AC6BE6E8D205541EFF83C4BEE235141D50EB9EA8D20554101463EF6ED235141A2B1991B8E205541CDCCCC5CED2351413D0AD7738E205541F6285C8FEC2351411F85EB218E2055410BAD16E5EB235141E673CF868E20554166257726EB235141037AC2F78E2055414289E25DEA23514105E69B6E8F205541BA44792FEA235141E2DD1B8A8F20554185EB5158E823514114AE47A19020554133333303E7235141F6285C2F91205541976DCEABE6235141F61F61479120554148E17AD4E5235141295C8F82912055410D4C13C5E4235141F36C5E24922055418DE1BF71E323514121AFA65E93205541E47A61ACE2235141E2D6115F94205541C3F5289CE22351416666667694205541162D258EE22351415333568394205541FEB9641AE22351413DD02D0E95205541CDCCCC2CE2235141CDCCCCAC952055417553D040E02351410F852AE39520554121953D73DF23514120A31113962055418FC2F5E8DE23514114AE474196205541709588E5DE23514185332E3D9620554171D141A1DE235141F5C380EE952055415FB37F05DD235141236292549720554174FE35A8DA235141A2934A6799205541915669A2DA2351419454606C9920554193C8FC18D9235141531D55C59A205541E0A919DBD9235141D45163029B2055410A0EB316DB23514136AC8CD19A205541AE47E18ADC235141EC51B87E9A205541AE47E13ADE235141713D0A579B20554169D1714CDE2351411BE1446D9B205541DB6D13D1DE23514193371F159C20554152B2BF1DDF2351414C4002299C20554191760CBBDF23514185C0FE489C2055414895F4BFDF235141E32DFE499C20554159EDEBD2E0235141EBFDE7819C20554118C9A619E1235141DFF349909C2055418F878267E12351414AFF1EA09C2055415B49E7A1E123514122C5FEAB9C205541D7B60FB6E2235141D09E26E49C2055417B14AEB7E223514148E17AE49C2055415A138942E2235141B7CAF8329D205541CBE9BAE8DF235141AC0235C69E2055414A329F83DD2351416D427574A02055415C7F7F14DD235141AA0B5BCFA02055413DACE0C0DC235141E980C113A1205541F27C8652DC235141E9B9056EA1205541D2857DEEDB235141AD78D9BFA1205541BBC39C67DA23514102ED94FFA2205541B87F3A67DA235141384EE5FFA2205541C6CF7385D923514148C193B8A32055415D4319A8D9235141D28E97FBA320554173E08F0CDC235141218D0CADA520554138A4D149DE2351416831C242A72055417590FA02DF235141908BC3ABA720554157FF0C01E02351410F6FE95AA7205541CBFAA882E1235141E79033E0A6205541444BA420E32351418994EAD0A520554185EB51F8E323514114AE4741A5205541569CEC9CE523514177161831A42055410D63BD82E6235141C7EF4E54A320554145BB0C1FE7235141824BF095A22055416968E83CE72351410B129371A2205541E26DCA3EE7235141A2929F4BA22055410AD7A360E6235141D7A3703DA1205541EEDA3367E6235141B66177CDA0205541AE47E16AE6235141EC51B88EA02055419D7DE973E6235141DF7FF78AA020554182A5DF6CE82351419E5422B99F205541C6DB2F90EA23514124D5B3D59E20554148E17AA4F2235141A4703D7A9B2055416260E50DF52351412066EB369B2055415A8BA414F523514169132F369B20554152DB40B0F72351413BB58AEB9A205541245B04C0F72351414AFF9AE89A205541F1AC32CAF9235141412256879A205541D5C65E02FA235141C87CDF7C9A205541031E3BACFC2351413817DCFD99205541E17A144E0224514114AE47F1982055419A999979042451419A9999799A20554178D0F04105245141F7E6D83C9B205541ABADB9AA05245141365C629A9B2055412D450D0106245141FC8B03779B205541D8CD31FE072451419580B98D9A2055419A2221920A24514106A7575F99205541688CBF640B245141D5E74BF898205541D7F69B350B245141BBA50B509720554124FDAABA0B245141D918C78597205541863962090E2451413828E95898205541299EEB0A152451417A492BD99A2055413D0AD75315245141333333F39A205541596F33A90B245141BA1A1151962055419A9999890B2451411F85EB4196205541CB6AD5070C245141BB9096B494205541126705240C2451416399DD5B9420554117CD524C0C245141B0A702DD93205541E17A145E0C24514152B81EA5932055412CDC0BB20B245141BDB415699320554177346B830B2451414EB4AB5993205541F912EA540B245141ECC8AC6993205541F09D7F8A0A245141B20105B493205541D6CC54410A24514169D72FE5932055414DF0D30B0A2451416542611C942055415C8FC2F5092451410AD7A390942055411F85EBF1082451411F85EBA1942055419022FCDA082451419022FC8A94205541BDC68F6A082451412193CE2094205541C604EFE00624514134FC7E0A942055412D08C6C406245141FB11920994205541424489A4062451413ADA82089420554148E17A8407245141A4703DFA9420554125A71F8407245141780BE2FB942055412EC3667D0724514188AB3B2D952055417B14AE4707245141295C8F1296205541AE47E15A05245141CDCCCC1C972055415C8FC2B5032451410AD7A3F0972055413FCEF0A6032451410D26B4F197205541D7A3702D02245141CDCCCC0C98205541B63452AD02245141F9C9E621962055410788177602245141C56B850D96205541F4FA115B002451419B6908CD9620554114AE47E1FF235141000000C0982055412D4F14DFFF235141A3740AC298205541EC51B86EFF235141A4703D2A9920554194EAF16AFF235141BF79562999205541C6E5CF05FF23514188EC2A11992055419AFE53E6FE2351416BA8A409992055417268F4E3FE235141CE7213099920554107E96DDDFE235141C535840799205541325E8EDCFE235141E6C84E0799205541FE309B46FD2351415BDDFD1D9920554112C753ADFC235141C947FF43992055415C8FC225FC23514152B81EA599205541704134FFFB235141C5EF3FA399205541A4703D7AFB235141CDCCCC9C992055415AF6815FFB23514167692317992055419A999959FB2351419A9999F998205541BA0F84EBFB235141B8797EA098205541655D353DFC235141F9642A66982055414B04EC4AFC235141CF3EBFBA97205541BFB2584BFC23514163716A839720554104FD6A4BFC23514116A11A7A97205541A4703D7AFB2351419A999969972055415E71677EFB235141148397E69620554127323382FB23514179AA2A6F96205541B851C918FB235141C07CCD2E9520554185EB5118FB235141D7A3702D9520554137663E70FB235141B20359F191205541A4703D7AFB2351413333339391205541666D4F7DFD23514150D67B6B9120554152B81E85FD235141713D0AC790205541CDCCCC0CFF23514152B81E859020554148E17A840324514148E17A64902055419A999979042451410000001091205541D7A370ED05245141EC51B82E92205541B6A47E1006245141F60A6A53922055412EE0C82D07245141B1E3DA5793205541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>489573 - 259378
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000D200000085EB5198F7235141000000F09A205541E17A144E0224514114AE47F1982055419A999979042451419A9999799A2055417B14AEA705245141000000A09B205541666666660B245141E17A14FE98205541B81E853B0B24514185EB515897205541C3F5289C0D2451411F85EB31982055413D0AD75315245141333333F39A2055419A9999890B2451411F85EB4196205541E17A145E0C24514152B81EA5932055413D0AD7830B2451418FC2F5589320554114AE47910A245141F6285CAF93205541000000100A24514166666606942055415C8FC2F5092451410AD7A390942055411F85EBF1082451411F85EBA19420554100000070082451410000002094205541F6285CAF0724514114AE471194205541EC51B89E0624514185EB51089420554148E17A8407245141A4703DFA942055417B14AE4707245141295C8F1296205541AE47E15A05245141CDCCCC1C972055415C8FC2B5032451410AD7A3F097205541D7A3702D02245141CDCCCC0C9820554185EB51B8022451417B14AEF795205541EC51B85E00245141E17A14BE9620554114AE47E1FF235141000000C098205541EC51B86EFF235141A4703D2A99205541333333A3FE2351419A9999F99820554114AE47D1FC235141A4703D2A992055415C8FC225FC23514152B81EA599205541A4703D7AFB235141CDCCCC9C992055419A999959FB2351419A9999F9982055419A999949FC235141713D0A6798205541B81E854BFC235141CDCCCC6C97205541A4703D7AFB2351419A99996997205541295C8F82FB2351413D0AD7639620554185EB5118FB235141D7A3702D95205541A4703D7AFB2351413333339391205541D7A3708DFD235141A4703D6A9120554152B81E85FD235141713D0AC790205541CDCCCC0CFF23514152B81E859020554148E17A840324514148E17A64902055419A999979042451410000001091205541D7A370ED05245141EC51B82E92205541CDCCCC0C07245141B81E855B93205541000000A008245141EC51B82E93205541EC51B82E0A245141C3F528DC92205541333333030D24514166666606922055413D0AD7C30F245141D7A3704D912055413D0AD7231224514185EB51A89020554148E17A5415245141EC51B8BE8F2055419A99995918245141295C8FF28E205541B81E85CB1C245141000000C08D205541295C8F4221245141666666368C2055417B14AEE7242451410AD7A3F08A20554148E17A5426245141D7A3706D8A205541D7A3700D27245141EC51B8EE89205541B81E85CB272451418FC2F548892055413D0AD74328245141F6285CCF832055418FC2F568292451415C8FC2957D205541F6285C8F29245141333333C37C205541E17A14DE2324514152B81E957E205541713D0A9723245141AE47E1BA7E205541EC51B86E23245141EC51B8CE7E2055411F85EB4123245141000000E07E205541295C8F222324514114AE47017F205541C3F5280C23245141000000207F2055419A9999F922245141CDCCCC4C7F205541C3F528EC222451417B14AE877F2055411F85EBE122245141EC51B8DE7F20554114AE47E1222451411F85EB41802055417B14AEE722245141F6285C7F80205541295C8FF2222451411F85EBC180205541CDCCCC0C232451411F85EB4181205541F6285C1F23245141295C8F8281205541B81E853B23245141EC51B8DE812055413333336323245141EC51B83E822055410000009023245141D7A3708D822055411F85EBC1232451419A9999D982205541000000C024245141A4703D5A84205541AE47E19A242451413D0AD733862055410AD7A31023245141F6285C1F87205541A4703DDA22245141F6285C4F8720554114AE476122245141A4703DBA872055418FC2F518222451411F85EBE1872055413D0AD7B3212451417B14AE0788205541D7A3704D2124514148E17A24882055415C8FC2F5202451419A9999298820554152B81E8520245141295C8F2288205541EC51B83E20245141E17A140E8820554114AE470120245141EC51B8EE87205541713D0AA71F245141F6285CAF87205541666666561F245141EC51B86E87205541E17A140E1F245141A4703D3A87205541000000C01E245141C3F528FC862055410AD7A3801E245141A4703DEA862055417B14AE271E245141295C8FE286205541713D0AC71D245141295C8FE286205541B81E857B1D245141CDCCCCEC86205541713D0A271D245141A4703D0A87205541D7A370CD1C245141F6285CFF862055418FC2F5681C24514148E17AE486205541D7A370FD1B2451411F85EBC1862055417B14AEA71B2451415C8FC2B586205541333333631B245141295C8FB28620554148E17A041B2451411F85EBC186205541D7A370BD1A24514152B81ED5862055418FC2F5381A245141AE47E1FA862055413D0AD7A3192451415C8FC2258720554114AE472119245141295C8FA287205541CDCCCC3C18245141CDCCCCDC872055411F85EBE117245141CDCCCC9C872055410AD7A330172451419A9999B98720554114AE4751162451418FC2F5C887205541713D0A771524514114AE47518820554148E17AB414245141A4703D7A89205541C3F5282C1424514148E17AB489205541333333E313245141B81E85FB8820554148E17AD41324514148E17A348820554185EB515813245141295C8FF287205541666666061324514114AE470188205541CDCCCCAC122451417B14AE1788205541CDCCCC5C1224514152B81E358820554152B81E05122451419A99995988205541C3F528BC112451413D0AD78388205541E17A146E11245141CDCCCCBC88205541CDCCCC2C11245141333333F388205541C3F528FC10245141AE47E12A89205541F6285CDF10245141F6285C5F89205541E17A14CE102451411F85EB9189205541B81E85CB1024514185EB51B88920554114AE47D1102451410AD7A3E089205541295C8FE210245141713D0A078A2055419A9999F910245141CDCCCC2C8A205541D7A3700D11245141AE47E16A8A20554166666616112451410AD7A3A08A205541B81E850B112451415C8FC2E58A205541AE47E1EA10245141D7A3702D8B205541AE47E1BA102451411F85EB618B205541666666761024514114AE47918B205541CDCCCC2C10245141A4703DBA8B205541666666860F245141666666068C2055418FC2F5480E245141713D0AA78C2055419A9999190C24514185EB51488D205541B81E85CB0B2451410AD7A3908D2055415C8FC2D509245141713D0A078E205541295C8FC208245141EC51B8BE8E2055413D0AD793072451418FC2F5988E2055413D0AD7F306245141E17A140E8E205541CDCCCC0C07245141C3F528CC8B2055418FC2F5F8052451419A9999A989205541EC51B8FE0324514114AE47A1892055418FC2F5E8022451413D0AD7038A2055413D0AD7E3012451413D0AD7138A205541F6285CFF00245141A4703DBA89205541D7A3709D002451417B14AE478920554166666646FF235141295C8FE289205541F6285C7FFE2351410AD7A3808920554114AE4701FE235141E17A14CE892055419A9999B9FC23514114AE47218A2055417B14AE77FC2351410AD7A3008B20554133333393FB235141295C8F528B205541B81E85FBFA23514114AE47B18A20554100000060FA235141F6285CEF8B205541713D0AD7FA235141AE47E1EA8C205541D7A3707DFA235141E17A149E8D205541EC51B83EF92351413D0AD7B38E20554114AE4731F82351415C8FC2158F205541C3F5282CF7235141D7A370FD8E2055418FC2F598F623514114AE47B18F20554166666626F62351410AD7A3A08F20554166666626F623514148E17AC48E2055419A999929F52351418FC2F5188E205541CDCCCC3CF4235141EC51B8BE8D205541F6285C3FF3235141333333038D205541C3F5289CF2235141713D0A478C205541666666E6F1235141F6285CAF8B205541A4703DAAF02351417B14AE678C205541F6285C1FF02351413D0AD7338D2055413D0AD753EF235141295C8F528D205541CDCCCC5CED2351413D0AD7738E205541F6285C8FEC2351411F85EB218E20554185EB5158E823514114AE47A19020554133333303E7235141F6285C2F9120554148E17AD4E5235141295C8F829120554148E17A84E4235141AE47E14A92205541295C8F32E3235141E17A149E93205541C3F5289CE22351416666667694205541713D0A17E223514114AE47F194205541CDCCCC2CE2235141CDCCCCAC952055413D0AD7E3DF235141D7A370ED952055418FC2F5E8DE23514114AE47419620554114AE47A1DE235141B81E85EB95205541713D0A17D9235141713D0AC79A2055413D0AD703DA235141EC51B80E9B205541AE47E18ADC235141EC51B87E9A205541AE47E13ADE235141713D0A579B20554152B81ED5DE235141A4703D1A9C2055417B14AEB7E223514148E17AE49C205541713D0A07DE2351418FC2F508A02055419A999969D9235141F6285CCFA32055419A9999E9DE2351413D0AD7B3A7205541F6285C8FE1235141C3F528DCA620554185EB51F8E323514114AE4741A520554148E17A04E6235141E17A14EEA3205541D7A3704DE7235141D7A3705DA22055410AD7A360E6235141D7A3703DA1205541AE47E16AE6235141EC51B88EA020554148E17AA4F2235141A4703D7A9B20554185EB5198F7235141000000F09A205541
+</a>
+
+<b>
+0106000000010000000103000000010000007E0100002EE0C82D07245141B1E3DA57932055411D8A065909245141297B680893205541E6BB083D0C2451418993DE4092205541333333030D24514166666606922055416E68EDC20F2451413FF7AD4D91205541971E0BED1424514111DC4EDC8F20554148E17A5415245141EC51B8BE8F205541D5F48F81152451419AA2D0B28F205541251E52C519245141DC7D92908E205541B41EBC541D2451415532C0908D205541340733A01F24514182DA75C68C205541E245FAEB22245141DF15E2A18B2055417A025B3F252451416A8A1BD18A2055416763635526245141F757D16C8A205541B5956E6A262451412C76665E8A205541CFCAEC9926245141FB9DDC3D8A205541A8699DA526245141414FDA358A205541875362CB26245141CFEEF91B8A205541813B75D026245141550680188A20554145DF367127245141141EB697892055417916AFD7272451411B5943BB88205541967223EE272451410612B1B5872055413D0AD74328245141F6285CCF832055414F824C89282451412EFBBB5582205541B0500E3F29245141F74194797E2055410BAA785D29245141325C38D47D2055410D70817D29245141E58BE8C87C2055417F7EE93C2924514190668FDD7C2055417B9ABC7C2724514170ADD96C7D20554194A2D79E26245141104DCBB37D20554181C101DD25245141EE5AC4F17D205541D2E0958B2424514112A3A55D7E205541A4F51CD623245141F32187997E205541C7C11D992324514113C3C6B97E205541713D0A9723245141AE47E1BA7E2055414730213323245141CD25B2EF7E2055414A4C0814232451419B1B34157F205541C3F5280C23245141000000207F2055418B16A20123245141F9DC68397F205541BEA130F6222451416A3BBD5B7F205541D0025BF4222451416A9EC6637F205541E62711E6222451414A6A78BB7F205541351598E422245141C72FBC6180205541987558E5222451415D00F3688020554147AAAF0A2324514180D69B37812055412241C64E2324514124A54D0D82205541F55F8CAD232451410B4F5EB6822055413C54AEA0242451418ADBD32A84205541000000C024245141A4703D5A84205541AE47E19A242451413D0AD73386205541F5A1A84623245141ADCD16FF862055410AD7A31023245141F6285C1F87205541A4703DDA22245141F6285C4F87205541D329769922245141B01B99888720554114AE476122245141A4703DBA87205541298ABE4C2224514185E381C5872055418FC2F518222451411F85EBE1872055413D0AD7B3212451417B14AE0788205541D7A3704D2124514148E17A24882055415C8FC2F5202451419A9999298820554152B81E8520245141295C8F2288205541D308E648202451418E810A1188205541EC51B83E20245141E17A140E8820554114AE470120245141EC51B8EE87205541E0A402C11F245141383098C187205541713D0AA71F245141F6285CAF8720554134E7EA841F24514160060294872055413EF4B2191F24514171E8AB42872055416B504DAD1E2451416126DFF686205541A0817DA81E2451417DC282F5862055412D8ACBA71E245141006D50F5862055418F419F541E245141D69C70E68620554116B3D2241E245141295C8FE286205541C58782CB1D245141295C8FE2862055416282F9A91D245141CB4580E686205541B81E857B1D245141CDCCCCEC86205541713D0A271D245141A4703D0A87205541D7A370CD1C245141F6285CFF862055418FC2F5681C24514148E17AE486205541A82764231C245141385D1ECE86205541E0D9DCF51B245141A979D8C086205541C0FAEA611B245141BC95C4B28620554177B45A371B245141608CABB986205541708BE2C81A2451419ADA06D28620554165722AA11924514158F3502887205541CD985F8C1924514105F8303C8720554114AE472119245141295C8FA287205541CDCCCC3C18245141CDCCCCDC872055411F85EBE117245141CDCCCC9C872055410AD7A330172451419A9999B987205541DF0E5A10172451414605D2BB872055417355515216245141D47DE3C887205541FC95C60D16245141EA1B20F3872055415E550BA3152451414520CB3588205541D5036A1D1524514121D013DA8820554148E17AB414245141A4703D7A892055418AAB8E7314245141D417FA9589205541C3F5282C1424514148E17AB489205541333333E313245141B81E85FB88205541D098E8DF1324514183A903CF8820554148E17AD41324514148E17A348820554185EB515813245141295C8FF2872055412599AE3613245141F8B49AF88720554164C303E812245141D856E00888205541CDCCCCAC122451417B14AE1788205541F25D6D5D122451419BA1E33488205541493B430612245141941E1B5A8820554124A939B111245141D926D18B88205541C38E945F112451419811E2C88820554142D60F3B1124514154AB50E788205541058B3FFD102451413260A22989205541910764D210245141B29D4E85892055417DA6EACC10245141E2A118C28920554114AE47D1102451410AD7A3E089205541ACC7DCDA102451415E2CEFF58920554173914CEC10245141BA5400178A2055419A9999F910245141CDCCCC2C8A20554114F960FC1024514172B57E358A205541D7A3700D11245141AE47E16A8A20554166666616112451410AD7A3A08A205541B81E850B112451415C8FC2E58A205541AE47E1EA10245141D7A3702D8B205541AE47E1BA102451411F85EB618B205541666666761024514114AE47918B205541CDCCCC2C10245141A4703DBA8B2055416DD4F722102451411870BDBE8B2055419098260C0F245141599743448C2055418FC2F5480E245141713D0AA78C205541484CD4FA0C2451411D3761078D2055418497C34C0C245141DD6191398D20554170A20A110C245141BF413F508D205541B81E85CB0B2451410AD7A3908D205541956544C30A2451412CDEFECE8D205541111511D409245141E728F40C8E205541118B3B55092451413F17D35C8E205541295C8FC208245141EC51B8BE8E205541BE222E8108245141119790B68E205541E7D440C307245141BAC6DF9E8E2055413D0AD793072451418FC2F5988E2055413D0AD7F306245141E17A140E8E20554145EA8305072451419A37D4748C2055412B40C608072451412D245E298C205541BE83040907245141EA7DBC238C205541EC0E0E09072451418084DF228C205541D7D9750907245141E0517C198C2055412A8A7A09072451411EC10F198C205541B5BAC309072451418D2271128C20554129B3620A0724514151C5C7C78B20554142A7CEA206245141185124FA8A205541A6504E6306245141C761517C8A2055415354E2570624514125AFAF658A2055419D915455062451413B4CA0608A205541D9E2FFF80524514112AAADA989205541D56E64C9052451418C77D1A88920554124668F17052451419344E5A589205541391050F30424514152C34CA58920554189BA4BD004245141626FB9A4892055418C0E4CA7042451419FF00CA4892055414190CF0504245141B2D94FA2892055417FD6E356032451413424D5DC892055418FC2F5E8022451413D0AD7038A2055413D0AD7E3012451413D0AD7138A205541F294B87101245141C56316E789205541F6285CFF00245141A4703DBA892055419021519F002451412639E049892055417F8A9D5F00245141A5E5976389205541E569F35900245141659E26668920554194B1505800245141EAAAE36689205541E0430D57002451417DB17567892055412ACD8150002451411B276A6A89205541B8CEFF4C002451411A97FF6B89205541F7E9154700245141151AAB6E892055413530891D002451410D816D8189205541C984C8BDFF2351419ACAA8AC89205541A928E4A3FF2351414D7259B88920554117F7FC63FF235141158033D58920554166666646FF235141295C8FE289205541F65FA5F4FE235141521657BA892055418F2D937FFE2351410866F782892055410753BD3CFE2351412C258FA98920554114AE4701FE235141E17A14CE89205541FEBE5CC1FC2351412BAF89218A2055417B14AE77FC2351410AD7A3008B205541100BB1DBFB235141429191388B2055414CCE7DACFB235141C3EE7D498B20554133333393FB235141295C8F528B2055415B947E71FB235141CF9FB82E8B2055413935C6FBFA23514182CF0BB58A2055419CD4BEDEFA2351415EB621EC8A20554164E17374FA235141556287C58B205541D6251B61FA235141796CB2F18B2055418EDA5294FA2351418B30EA5D8C205541713D0AD7FA235141AE47E1EA8C205541D7A3707DFA235141E17A149E8D205541D609E03BFA235141360638D78D205541EC51B83EF92351413D0AD7B38E20554114AE4731F82351415C8FC2158F205541B847C62CF7235141D94A7FFD8E20554167D17BF1F6235141968E20458F2055418FC2F598F623514114AE47B18F20554166666626F62351410AD7A3A08F2055412FE2F524F623514144D980C38E2055412A858A11F62351417BDF53B68E2055414E8C99F2F5235141CDA455A18E2055418B1047D0F5235141772E0C8A8E2055417B43C8BBF5235141A753247C8E205541B815EDB1F5235141D86574758E205541F7979BACF5235141E0A6D8718E2055416E00B09DF4235141D259A4E38D205541CDCCCC3CF4235141EC51B8BE8D205541F6285C3FF3235141333333038D20554181B73CE4F2235141BC07249A8C2055412AD48757F223514123ADC40D8C20554146AC49ECF123514170FD45B48B205541CBA9B4A7F12351417117E9D38B205541C4F8DDFFF0235141AC7FC2358C205541D93402FEF023514138DED7368C2055415A1CE3EAF02351415AB0FD418C205541BA54DDC2F0235141E7EF52598C205541C5F5583FF02351416420D1048D205541F6285C1FF02351413D0AD7338D20554175066518F02351414231E4348D2055413EE1D322EF2351417AC6BE6E8D205541EFF83C4BEE235141D50EB9EA8D20554101463EF6ED235141A2B1991B8E205541CDCCCC5CED2351413D0AD7738E205541F6285C8FEC2351411F85EB218E2055410BAD16E5EB235141E673CF868E20554166257726EB235141037AC2F78E2055414289E25DEA23514105E69B6E8F205541BA44792FEA235141E2DD1B8A8F20554185EB5158E823514114AE47A19020554133333303E7235141F6285C2F91205541976DCEABE6235141F61F61479120554148E17AD4E5235141295C8F82912055410D4C13C5E4235141F36C5E24922055418DE1BF71E323514121AFA65E93205541E47A61ACE2235141E2D6115F94205541C3F5289CE22351416666667694205541162D258EE22351415333568394205541FEB9641AE22351413DD02D0E95205541CDCCCC2CE2235141CDCCCCAC952055417553D040E02351410F852AE39520554121953D73DF23514120A31113962055418FC2F5E8DE23514114AE474196205541709588E5DE23514185332E3D9620554171D141A1DE235141F5C380EE952055415FB37F05DD235141236292549720554174FE35A8DA235141A2934A6799205541915669A2DA2351419454606C9920554193C8FC18D9235141531D55C59A205541E0A919DBD9235141D45163029B2055410A0EB316DB23514136AC8CD19A205541AE47E18ADC235141EC51B87E9A205541AE47E13ADE235141713D0A579B20554169D1714CDE2351411BE1446D9B205541DB6D13D1DE23514193371F159C20554152B2BF1DDF2351414C4002299C20554191760CBBDF23514185C0FE489C2055414895F4BFDF235141E32DFE499C20554159EDEBD2E0235141EBFDE7819C20554118C9A619E1235141DFF349909C2055418F878267E12351414AFF1EA09C2055415B49E7A1E123514122C5FEAB9C205541D7B60FB6E2235141D09E26E49C2055417B14AEB7E223514148E17AE49C2055415A138942E2235141B7CAF8329D205541CBE9BAE8DF235141AC0235C69E2055414A329F83DD2351416D427574A02055415C7F7F14DD235141AA0B5BCFA02055413DACE0C0DC235141E980C113A1205541F27C8652DC235141E9B9056EA1205541D2857DEEDB235141AD78D9BFA1205541BBC39C67DA23514102ED94FFA2205541B87F3A67DA235141384EE5FFA2205541C6CF7385D923514148C193B8A32055415D4319A8D9235141D28E97FBA320554173E08F0CDC235141218D0CADA520554138A4D149DE2351416831C242A72055417590FA02DF235141908BC3ABA720554157FF0C01E02351410F6FE95AA7205541CBFAA882E1235141E79033E0A6205541444BA420E32351418994EAD0A520554185EB51F8E323514114AE4741A5205541569CEC9CE523514177161831A42055410D63BD82E6235141C7EF4E54A320554145BB0C1FE7235141824BF095A22055416968E83CE72351410B129371A2205541E26DCA3EE7235141A2929F4BA22055410AD7A360E6235141D7A3703DA1205541EEDA3367E6235141B66177CDA0205541AE47E16AE6235141EC51B88EA02055419D7DE973E6235141DF7FF78AA020554182A5DF6CE82351419E5422B99F205541C6DB2F90EA23514124D5B3D59E20554148E17AA4F2235141A4703D7A9B2055416260E50DF52351412066EB369B2055415A8BA414F523514169132F369B20554152DB40B0F72351413BB58AEB9A205541245B04C0F72351414AFF9AE89A205541F1AC32CAF9235141412256879A205541D5C65E02FA235141C87CDF7C9A205541031E3BACFC2351413817DCFD99205541E17A144E0224514114AE47F1982055419A999979042451419A9999799A20554178D0F04105245141F7E6D83C9B205541ABADB9AA05245141365C629A9B2055412D450D0106245141FC8B03779B205541D8CD31FE072451419580B98D9A2055419A2221920A24514106A7575F99205541688CBF640B245141D5E74BF898205541D7F69B350B245141BBA50B509720554124FDAABA0B245141D918C78597205541863962090E2451413828E95898205541299EEB0A152451417A492BD99A2055413D0AD75315245141333333F39A205541596F33A90B245141BA1A1151962055419A9999890B2451411F85EB4196205541CB6AD5070C245141BB9096B494205541126705240C2451416399DD5B9420554117CD524C0C245141B0A702DD93205541E17A145E0C24514152B81EA5932055412CDC0BB20B245141BDB415699320554177346B830B2451414EB4AB5993205541F912EA540B245141ECC8AC6993205541F09D7F8A0A245141B20105B493205541D6CC54410A24514169D72FE5932055414DF0D30B0A2451416542611C942055415C8FC2F5092451410AD7A390942055411F85EBF1082451411F85EBA1942055419022FCDA082451419022FC8A94205541BDC68F6A082451412193CE2094205541C604EFE00624514134FC7E0A942055412D08C6C406245141FB11920994205541424489A4062451413ADA82089420554148E17A8407245141A4703DFA9420554125A71F8407245141780BE2FB942055412EC3667D0724514188AB3B2D952055417B14AE4707245141295C8F1296205541AE47E15A05245141CDCCCC1C972055415C8FC2B5032451410AD7A3F0972055413FCEF0A6032451410D26B4F197205541D7A3702D02245141CDCCCC0C98205541B63452AD02245141F9C9E621962055410788177602245141C56B850D96205541F4FA115B002451419B6908CD9620554114AE47E1FF235141000000C0982055412D4F14DFFF235141A3740AC298205541EC51B86EFF235141A4703D2A9920554194EAF16AFF235141BF79562999205541C6E5CF05FF23514188EC2A11992055419AFE53E6FE2351416BA8A409992055417268F4E3FE235141CE7213099920554107E96DDDFE235141C535840799205541325E8EDCFE235141E6C84E0799205541FE309B46FD2351415BDDFD1D9920554112C753ADFC235141C947FF43992055415C8FC225FC23514152B81EA599205541704134FFFB235141C5EF3FA399205541A4703D7AFB235141CDCCCC9C992055415AF6815FFB23514167692317992055419A999959FB2351419A9999F998205541BA0F84EBFB235141B8797EA098205541655D353DFC235141F9642A66982055414B04EC4AFC235141CF3EBFBA97205541BFB2584BFC23514163716A839720554104FD6A4BFC23514116A11A7A97205541A4703D7AFB2351419A999969972055415E71677EFB235141148397E69620554127323382FB23514179AA2A6F96205541B851C918FB235141C07CCD2E9520554185EB5118FB235141D7A3702D9520554137663E70FB235141B20359F191205541A4703D7AFB2351413333339391205541666D4F7DFD23514150D67B6B9120554152B81E85FD235141713D0AC790205541CDCCCC0CFF23514152B81E859020554148E17A840324514148E17A64902055419A999979042451410000001091205541D7A370ED05245141EC51B82E92205541B6A47E1006245141F60A6A53922055412EE0C82D07245141B1E3DA5793205541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>358919 - 47497
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000016000000EC51B84E916151413D0AD73351C45441E17A144E8F61514152B81E754DC4544152B81E85886151411F85EBE151C45441B81E85CB816151415C8FC2F556C45441A4703D0A81615141333333F358C45441295C8FB280615141666666965CC45441713D0A978161514148E17AB460C45441666666F68261514148E17A9465C454418FC2F59883615141D7A3705D66C454410AD7A3208461514152B81E0567C454419A99999986615141333333A367C45441000000B08961514114AE474168C45441A4703D3A8C615141AE47E1AA68C454413D0AD7738F6151418FC2F59868C45441E17A14FE916151413333335368C4544152B81E6594615141E17A14CE68C454413D0AD7F399615141C3F5286C69C45441D7A370AD9D61514114AE474169C45441B81E850B9E615141C3F5287C66C45441EC51B89E9D6151413333334364C4544148E17A449861514148E17AC45BC45441EC51B84E916151413D0AD73351C45441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000295C8F12996151418FC2F5985BC45441268FDDAC98615141D0946FAE5BC45441CD39265598615141469FEFDE5BC454419DC75AA89A6151419972978F5FC45441CD35DED49A615141603C3DD65FC4544160BA283F9B615141F949EF7E60C45441EC51B89E9D6151413333334364C45441B81E850B9E615141C3F5287C66C454415CE12D079E615141AED5E09C66C4544175DDD3DC9D615141449A19DC67C45441D7A370AD9D61514114AE474169C45441407533D99E6151414E3E92A066C45441F00DBAE39E615141F252296F66C45441A71A6C539E6151412946B5FF63C454415026FABD9C61514167BA801061C45441A8D88E969B6151412FBF17ED5EC45441E2ADF2649A6151411F8ECCB65CC45441295C8F12996151418FC2F5985BC45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>358919 - 83941
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000016000000EC51B84E916151413D0AD73351C45441E17A144E8F61514152B81E754DC4544152B81E85886151411F85EBE151C45441B81E85CB816151415C8FC2F556C45441A4703D0A81615141333333F358C45441295C8FB280615141666666965CC45441713D0A978161514148E17AB460C45441666666F68261514148E17A9465C454418FC2F59883615141D7A3705D66C454410AD7A3208461514152B81E0567C454419A99999986615141333333A367C45441000000B08961514114AE474168C45441A4703D3A8C615141AE47E1AA68C454413D0AD7738F6151418FC2F59868C45441E17A14FE916151413333335368C4544152B81E6594615141E17A14CE68C454413D0AD7F399615141C3F5286C69C45441D7A370AD9D61514114AE474169C45441B81E850B9E615141C3F5287C66C45441EC51B89E9D6151413333334364C4544148E17A449861514148E17AC45BC45441EC51B84E916151413D0AD73351C45441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000295C8F12996151418FC2F5985BC45441268FDDAC98615141D0946FAE5BC45441CD39265598615141469FEFDE5BC454419DC75AA89A6151419972978F5FC45441CD35DED49A615141603C3DD65FC4544160BA283F9B615141F949EF7E60C45441EC51B89E9D6151413333334364C45441B81E850B9E615141C3F5287C66C454415CE12D079E615141AED5E09C66C4544175DDD3DC9D615141449A19DC67C45441D7A370AD9D61514114AE474169C45441407533D99E6151414E3E92A066C45441F00DBAE39E615141F252296F66C45441A71A6C539E6151412946B5FF63C454415026FABD9C61514167BA801061C45441A8D88E969B6151412FBF17ED5EC45441E2ADF2649A6151411F8ECCB65CC45441295C8F12996151418FC2F5985BC45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>244053 - 1407305
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002D0000004E92E1CB4D0251410F05437F69105541295C8FA253025141AE47E11A671055413D0AD7136102514185EB51A85B1055413D0AD71361025141A4703D4A5B105541C3F528AC600251413D0AD7534A105541C3F528FC5E025141333333C34B1055418FC2F5F85D025141E17A143E451055415C8FC2855C025141AE47E1DA3B1055417B14AEE75B025141EC51B81E3C105541C3F528BC5A02514148E17A8438105541C3F528EC59025141F6285CCF3810554148E17A94590251417B14AE0738105541C3F5286C52025141000000903A10554166666696490251410AD7A3803E1055418FC2F528450251416666660641105541EC51B84E400251417B14AE07441055416666668642025141C3F5281C4B1055411F85EBE14B0251410AD7A39047105541F6285C1F52025141C3F5283C45105541E17A149E5302514114AE47D144105541713D0A4750025141713D0A77501055419A9999794E025141666666A65510554180B503524E025141D86FB91756105541DD25DF114E025141A7C959CF5610554149C88FB14D025141328510E3571055411B24E2684D0251418ACE9FB25810554181A3E4064D0251410570DBCA5910554118D2FBBB4C025141D45125A15A10554128CDC3544C02514179F901BB5B105541BDC947D84B02514122AAF00E5D105541DDF785784B0251416E186D145E105541851EF5064B025141E1F78A4A5F10554125B0AFD24A025141CF16DCE85F1055417CEC78CB4A025141AE6C936A60105541D344CC1F4B02514176AFD4CB60105541AB7AD7134B025141195C887F61105541E9CD27354B025141EE2B06FF61105541DF74137E4B0251412E151716631055417AD5A5D44B0251415845666164105541B385A81E4C025141F20CA37C65105541FABFED774C02514131172A6F661055411C8DBCB04C025141EB0207256710554133739BF24C0251416577DDDC67105541F37553434D025141CD4A1E8E681055414E92E1CB4D0251410F05437F69105541
+</a>
+
+<b>
+0106000000010000000103000000010000002D0000004C92E1CB4D0251410D05437F69105541295C8FA253025141AE47E11A671055413D0AD7136102514185EB51A85B1055413D0AD71361025141A4703D4A5B105541C3F528AC600251413D0AD7534A105541C3F528FC5E025141333333C34B1055418FC2F5F85D025141E17A143E451055415C8FC2855C025141AE47E1DA3B1055417B14AEE75B025141EC51B81E3C105541C3F528BC5A02514148E17A8438105541C3F528EC59025141F6285CCF3810554148E17A94590251417B14AE0738105541C3F5286C52025141000000903A10554166666696490251410AD7A3803E1055418FC2F528450251416666660641105541EC51B84E400251417B14AE07441055416666668642025141C3F5281C4B1055411F85EBE14B0251410AD7A39047105541F6285C1F52025141C3F5283C45105541E17A149E5302514114AE47D144105541713D0A4750025141713D0A77501055419A9999794E025141666666A65510554182B503524E025141D96FB91756105541E025DF114E025141ABC959CF561055414AC88FB14D025141338510E3571055411724E2684D02514187CE9FB25810554183A3E4064D0251410870DBCA5910554113D2FBBB4C025141D45125A15A1055412ACDC3544C02514175F901BB5B105541B8C947D84B02514122AAF00E5D105541DCF785784B02514172186D145E105541851EF5064B025141E0F78A4A5F10554127B0AFD24A025141CC16DCE85F1055417BEC78CB4A025141AF6C936A60105541D244CC1F4B0251417AAFD4CB60105541A67AD7134B0251411A5C887F61105541E5CD27354B025141E92B06FF61105541DD74137E4B02514130151716631055417DD5A5D44B0251415945666164105541B085A81E4C025141F50CA37C65105541F7BFED774C02514135172A6F66105541198DBCB04C025141E9020725671055412E739BF24C0251416A77DDDC67105541F47553434D025141CF4A1E8E681055414C92E1CB4D0251410D05437F69105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>244053 - 3658849
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002D0000004E92E1CB4D0251410F05437F69105541295C8FA253025141AE47E11A671055413D0AD7136102514185EB51A85B1055413D0AD71361025141A4703D4A5B105541C3F528AC600251413D0AD7534A105541C3F528FC5E025141333333C34B1055418FC2F5F85D025141E17A143E451055415C8FC2855C025141AE47E1DA3B1055417B14AEE75B025141EC51B81E3C105541C3F528BC5A02514148E17A8438105541C3F528EC59025141F6285CCF3810554148E17A94590251417B14AE0738105541C3F5286C52025141000000903A10554166666696490251410AD7A3803E1055418FC2F528450251416666660641105541EC51B84E400251417B14AE07441055416666668642025141C3F5281C4B1055411F85EBE14B0251410AD7A39047105541F6285C1F52025141C3F5283C45105541E17A149E5302514114AE47D144105541713D0A4750025141713D0A77501055419A9999794E025141666666A65510554180B503524E025141D86FB91756105541DD25DF114E025141A7C959CF5610554149C88FB14D025141328510E3571055411B24E2684D0251418ACE9FB25810554181A3E4064D0251410570DBCA5910554118D2FBBB4C025141D45125A15A10554128CDC3544C02514179F901BB5B105541BDC947D84B02514122AAF00E5D105541DDF785784B0251416E186D145E105541851EF5064B025141E1F78A4A5F10554125B0AFD24A025141CF16DCE85F1055417CEC78CB4A025141AE6C936A60105541D344CC1F4B02514176AFD4CB60105541AB7AD7134B025141195C887F61105541E9CD27354B025141EE2B06FF61105541DF74137E4B0251412E151716631055417AD5A5D44B0251415845666164105541B385A81E4C025141F20CA37C65105541FABFED774C02514131172A6F661055411C8DBCB04C025141EB0207256710554133739BF24C0251416577DDDC67105541F37553434D025141CD4A1E8E681055414E92E1CB4D0251410F05437F69105541
+</a>
+
+<b>
+0106000000010000000103000000010000002D0000004C92E1CB4D0251410D05437F69105541295C8FA253025141AE47E11A671055413D0AD7136102514185EB51A85B1055413D0AD71361025141A4703D4A5B105541C3F528AC600251413D0AD7534A105541C3F528FC5E025141333333C34B1055418FC2F5F85D025141E17A143E451055415C8FC2855C025141AE47E1DA3B1055417B14AEE75B025141EC51B81E3C105541C3F528BC5A02514148E17A8438105541C3F528EC59025141F6285CCF3810554148E17A94590251417B14AE0738105541C3F5286C52025141000000903A10554166666696490251410AD7A3803E1055418FC2F528450251416666660641105541EC51B84E400251417B14AE07441055416666668642025141C3F5281C4B1055411F85EBE14B0251410AD7A39047105541F6285C1F52025141C3F5283C45105541E17A149E5302514114AE47D144105541713D0A4750025141713D0A77501055419A9999794E025141666666A65510554182B503524E025141D96FB91756105541E025DF114E025141ABC959CF561055414AC88FB14D025141338510E3571055411724E2684D02514187CE9FB25810554183A3E4064D0251410870DBCA5910554113D2FBBB4C025141D45125A15A1055412ACDC3544C02514175F901BB5B105541B8C947D84B02514122AAF00E5D105541DCF785784B02514172186D145E105541851EF5064B025141E0F78A4A5F10554127B0AFD24A025141CC16DCE85F1055417BEC78CB4A025141AF6C936A60105541D244CC1F4B0251417AAFD4CB60105541A67AD7134B0251411A5C887F61105541E5CD27354B025141E92B06FF61105541DD74137E4B02514130151716631055417DD5A5D44B0251415945666164105541B085A81E4C025141F50CA37C65105541F7BFED774C02514135172A6F66105541198DBCB04C025141E9020725671055412E739BF24C0251416A77DDDC67105541F47553434D025141CF4A1E8E681055414C92E1CB4D0251410D05437F69105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>360152 - 2728095
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000011000000333333D3D168514152B81E558F8E54413D0AD7D3CE685141B81E852B978E5441F6285C8FCE685141EC51B8DE978E5441B81E85EBCA685141EC51B8AE9F8E54417B14AED7C668514152B81E35A78E54415C8FC2B5C8685141A4703D4AB58E54417B14AE37CE6851417B14AEE7B08E5441E17A14EED0685141F6285C4FAE8E5441F6285CEFD2685141713D0A97AC8E5441F6285CEFD5685141EC51B88EAA8E54413D0AD703DC685141333333A3A78E5441713D0A37E0685141D7A3709DA88E544114AE47B1E0685141E17A14DE768E544114AE4791D7685141E17A14FE788E54417B14AE17D6685141666666B67F8E5441CDCCCC9CD4685141E17A145E868E5441333333D3D168514152B81E558F8E5441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000AE47E1AAC3685141295C8F12988E54417B14AEE7C2685141E17A14DE9C8E54410AD7A340C26851415C8FC235AD8E5441C3F528CCC268514166666646B58E54419A999919C3685141D7A3705DB88E544148E17AA4C36851413D0AD743B88E54411F85EB81C56851411F85EB71B78E5441AF102C9BC6685141DB954CF6B68E5441D11690B5C868514106D9C048B58E54419A999959C868514114AE4791B28E54417B14AED7C668514152B81E35A78E5441B81E85EBCA685141EC51B8AE9F8E5441F6285C8FCE685141EC51B8DE978E54413D0AD7D3CE685141B81E852B978E54418FC2F538CB685141CDCCCCCC968E5441E17A141EC76851410AD7A360968E54413D0AD7A3C56851419A999939968E5441B81E85BBC368514185EB51D8958E5441AE47E1AAC3685141295C8F12988E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>360152 - 3398239
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000011000000333333D3D168514152B81E558F8E54413D0AD7D3CE685141B81E852B978E5441F6285C8FCE685141EC51B8DE978E5441B81E85EBCA685141EC51B8AE9F8E54417B14AED7C668514152B81E35A78E54415C8FC2B5C8685141A4703D4AB58E54417B14AE37CE6851417B14AEE7B08E5441E17A14EED0685141F6285C4FAE8E5441F6285CEFD2685141713D0A97AC8E5441F6285CEFD5685141EC51B88EAA8E54413D0AD703DC685141333333A3A78E5441713D0A37E0685141D7A3709DA88E544114AE47B1E0685141E17A14DE768E544114AE4791D7685141E17A14FE788E54417B14AE17D6685141666666B67F8E5441CDCCCC9CD4685141E17A145E868E5441333333D3D168514152B81E558F8E5441
+</a>
+
+<b>
+01060000000100000001030000000100000013000000AE47E1AAC3685141295C8F12988E54417B14AEE7C2685141E17A14DE9C8E54410AD7A340C26851415C8FC235AD8E5441C3F528CCC268514166666646B58E54419A999919C3685141D7A3705DB88E544148E17AA4C36851413D0AD743B88E54411F85EB81C56851411F85EB71B78E5441AF102C9BC6685141DB954CF6B68E5441D11690B5C868514106D9C048B58E54419A999959C868514114AE4791B28E54417B14AED7C668514152B81E35A78E5441B81E85EBCA685141EC51B8AE9F8E5441F6285C8FCE685141EC51B8DE978E54413D0AD7D3CE685141B81E852B978E54418FC2F538CB685141CDCCCCCC968E5441E17A141EC76851410AD7A360968E54413D0AD7A3C56851419A999939968E5441B81E85BBC368514185EB51D8958E5441AE47E1AAC3685141295C8F12988E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>360585 - 361497
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000090000000AD7A33086ED504185EB512875875441E17A141E83ED50410AD7A340B28754413D0AD7638DED50410AD7A360B587544148E17AA494ED5041000000A0B6875441E17A14BE94ED504152B81E95B4875441AE47E1FA96ED5041B81E85FB7E875441E17A14BE93ED504152B81ED57587544185EB516892ED50418FC2F5E8748754410AD7A33086ED504185EB512875875441
+</a>
+
+<b>
+0106000000010000000103000000010000000C000000EDA9AAB383ED50415AB730A2A68754412C13553086ED5041231F702E7587544160D12FDB66ED50410D8AD2D375875441CDCCCCFC5BED50411F85EB01768754418FC2F5D859ED5041AE47E1DAA2875441BABFA53E5FED50416F803D63A5875441D2E6E23669ED5041BF173FA3A9875441843150906DED5041CFDD2781AB87544168A365B873ED50416671BFC4AD875441713D0A577CED50410AD7A330B08754418059B40583ED5041C2029B4BB2875441EDA9AAB383ED50415AB730A2A6875441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>363216 - 3178547
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000002F000000A4703D9AF6AF5041EC51B87EC83C5441F6285C3FF6AF5041295C8F62C73C5441295C8F22F1AF504152B81E55C63C54415C8FC265EEAF50410AD7A310CD3C54415C8FC215ECAF5041666666E6D23C544100000050E9AF5041A4703D0ADA3C5441A4703DBAF2AF5041AE47E18ADB3C5441F6285C4F03B0504100000030DE3C54419A99996912B050418FC2F598E03C5441295C8F621BB05041A4703DFAD93C5441D7A3707D22B050411F85EB51D63C5441D7A370DD28B05041C3F5284CD23C5441000000D02FB050413D0AD7A3CE3C544148E17A1436B05041EC51B8EECA3C54410000002029B050413D0AD753C73C54411F85EBD11EB05041D7A370CDC13C5441CDCCCC6C1FB05041295C8FA2BF3C5441AE47E1CA1FB0504114AE4751BE3C5441B81E85AB21B050418FC2F598B83C5441EC51B86E24B0504133333343B13C5441713D0A1740B050418FC2F5C8B33C54418FC2F5184AB05041B81E85FBB33C54417B14AE8756B05041333333A3B33C5441C3F5286C54B05041EC51B8FEAB3C54415C8FC2D552B05041EC51B89EA43C54418FC2F5E852B050413D0AD7B39F3C54418FC2F5A83CB050419A9999A99C3C5441CDCCCC7C34B05041B81E858B9B3C544148E17AD428B050413D0AD7F3993C544148E17A0415B05041EC51B83E973C54415C8FC23501B050419A999989943C544152B81EE500B05041F6285C4F973C5441713D0AB7FFAF50415C8FC2959F3C54413D0AD7E3FEAF504185EB51E8A43C5441295C8F02FCAF50413D0AD793AC3C54417B14AE97F8AF504152B81E85B43C54411F85EB11F7AF5041333333F3B73C54413D0AD723F6AF5041A4703D1AB93C544152B81E55F5AF5041A4703D1ABA3C5441000000A0F6AF5041B81E85EBBC3C544185EB51C8FAAF50413D0AD7D3BD3C544114AE476100B05041713D0A27C13C54411F85EB61FEAF5041A4703D8AC63C54415C8FC2A5F8AF50415C8FC295C63C5441A4703D9AF8AF5041F6285C2FC83C5441295C8FC2F7AF50417B14AEB7C83C5441A4703D9AF6AF5041EC51B87EC83C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000EC51B86E24B0504133333343B13C5441713D0A1740B050418FC2F5C8B33C54418FC2F5184AB05041B81E85FBB33C54412DFD968156B05041E8BB2496B33C5441E6E1E5C353B050417CAF8B75AB3C5441DE6806D652B0504138A5578DA43C5441B6E7BDDC52B0504161C75F8FA23C5441AE47E14A4EB050419A999959A23C5441507CBF084EB05041D313085BA53C544114AE47014EB050411F85EBB1A53C5441713D0A774CB05041713D0A37B13C54419A9999594BB0504133333343B13C5441F1F4886C4AB0504198DFF9DEB13C5441D7A3706D49B050411F85EBB1B23C5441199FB66242B0504103F8739BB13C544197690E9D40B05041AC6B6055B13C544185EB51183DB05041A4703DCAB03C544152B81E2539B05041F6285CEFB03C544166515F6F37B05041C14E49D4B03C54410AD7A3902FB050417B14AE57B03C54417B14AE5728B05041AE47E1CAB03C544152B81EB527B05041D7A370ADB03C544148E17A1427B05041D7A3704DB03C54412E6CD46226B05041E3A7B15FB03C544133413F0F26B050418E434868B03C54417B14AEB725B0504114AE4771B03C5441EC51B86E24B0504133333343B13C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>363216 - 3577090
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000002F000000A4703D9AF6AF5041EC51B87EC83C5441F6285C3FF6AF5041295C8F62C73C5441295C8F22F1AF504152B81E55C63C54415C8FC265EEAF50410AD7A310CD3C54415C8FC215ECAF5041666666E6D23C544100000050E9AF5041A4703D0ADA3C5441A4703DBAF2AF5041AE47E18ADB3C5441F6285C4F03B0504100000030DE3C54419A99996912B050418FC2F598E03C5441295C8F621BB05041A4703DFAD93C5441D7A3707D22B050411F85EB51D63C5441D7A370DD28B05041C3F5284CD23C5441000000D02FB050413D0AD7A3CE3C544148E17A1436B05041EC51B8EECA3C54410000002029B050413D0AD753C73C54411F85EBD11EB05041D7A370CDC13C5441CDCCCC6C1FB05041295C8FA2BF3C5441AE47E1CA1FB0504114AE4751BE3C5441B81E85AB21B050418FC2F598B83C5441EC51B86E24B0504133333343B13C5441713D0A1740B050418FC2F5C8B33C54418FC2F5184AB05041B81E85FBB33C54417B14AE8756B05041333333A3B33C5441C3F5286C54B05041EC51B8FEAB3C54415C8FC2D552B05041EC51B89EA43C54418FC2F5E852B050413D0AD7B39F3C54418FC2F5A83CB050419A9999A99C3C5441CDCCCC7C34B05041B81E858B9B3C544148E17AD428B050413D0AD7F3993C544148E17A0415B05041EC51B83E973C54415C8FC23501B050419A999989943C544152B81EE500B05041F6285C4F973C5441713D0AB7FFAF50415C8FC2959F3C54413D0AD7E3FEAF504185EB51E8A43C5441295C8F02FCAF50413D0AD793AC3C54417B14AE97F8AF504152B81E85B43C54411F85EB11F7AF5041333333F3B73C54413D0AD723F6AF5041A4703D1AB93C544152B81E55F5AF5041A4703D1ABA3C5441000000A0F6AF5041B81E85EBBC3C544185EB51C8FAAF50413D0AD7D3BD3C544114AE476100B05041713D0A27C13C54411F85EB61FEAF5041A4703D8AC63C54415C8FC2A5F8AF50415C8FC295C63C5441A4703D9AF8AF5041F6285C2FC83C5441295C8FC2F7AF50417B14AEB7C83C5441A4703D9AF6AF5041EC51B87EC83C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000EC51B86E24B0504133333343B13C5441713D0A1740B050418FC2F5C8B33C54418FC2F5184AB05041B81E85FBB33C54412DFD968156B05041E8BB2496B33C5441E6E1E5C353B050417CAF8B75AB3C5441DE6806D652B0504138A5578DA43C5441B6E7BDDC52B0504161C75F8FA23C5441AE47E14A4EB050419A999959A23C5441507CBF084EB05041D313085BA53C544114AE47014EB050411F85EBB1A53C5441713D0A774CB05041713D0A37B13C54419A9999594BB0504133333343B13C5441F1F4886C4AB0504198DFF9DEB13C5441D7A3706D49B050411F85EBB1B23C5441199FB66242B0504103F8739BB13C544197690E9D40B05041AC6B6055B13C544185EB51183DB05041A4703DCAB03C544152B81E2539B05041F6285CEFB03C544166515F6F37B05041C14E49D4B03C54410AD7A3902FB050417B14AE57B03C54417B14AE5728B05041AE47E1CAB03C544152B81EB527B05041D7A370ADB03C544148E17A1427B05041D7A3704DB03C54412E6CD46226B05041E3A7B15FB03C544133413F0F26B050418E434868B03C54417B14AEB725B0504114AE4771B03C5441EC51B86E24B0504133333343B13C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>363425 - 186116
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000009000000D7A3703DD9A45041B81E858B066454417B14AEF7C0A450411F85EB51F7635441295C8F62BEA450415C8FC235FA635441C3F5281CBBA45041A4703DAAFD63544114AE4751B8A45041000000C000645441E17A14CED1A45041CDCCCCCC11645441AE47E1FAD3A45041713D0A870E6454411F85EB91D6A45041EC51B8AE0A645441D7A3703DD9A45041B81E858B06645441
+</a>
+
+<b>
+010600000001000000010300000001000000060000001758EB91D6A45041C694B8AE0A645441D3A78F62BEA45041F408C335FA635441ECC5291CBBA450411CA53DAAFD635441536DE0FAD3A45041F3510A870E645441680B376CD5A450413AD2BD620C6454411758EB91D6A45041C694B8AE0A645441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>363425 - 371606
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000009000000D7A3703DD9A45041B81E858B066454417B14AEF7C0A450411F85EB51F7635441295C8F62BEA450415C8FC235FA635441C3F5281CBBA45041A4703DAAFD63544114AE4751B8A45041000000C000645441E17A14CED1A45041CDCCCCCC11645441AE47E1FAD3A45041713D0A870E6454411F85EB91D6A45041EC51B8AE0A645441D7A3703DD9A45041B81E858B06645441
+</a>
+
+<b>
+010600000001000000010300000001000000060000001758EB91D6A45041C694B8AE0A645441D3A78F62BEA45041F408C335FA635441ECC5291CBBA450411CA53DAAFD635441536DE0FAD3A45041F3510A870E645441680B376CD5A450413AD2BD620C6454411758EB91D6A45041C694B8AE0A645441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>364974 - 388663
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000004800000052B81EE50E315141A4703D5A05055541666666860E3151419A9999890305554114AE47A10C315141B81E857BF8045541713D0A470931514152B81E05E4045541F6285C9F0831514152B81E05E004554185EB51E80F31514100000070DF045541295C8FF2153151413D0AD793DE045541F6285C1F1831514100000070DE045541AE47E1CA1631514133333333DD045541C3F5281C14315141D7A370FDDB045541D7A3706D11315141000000F0DA045541CDCCCC1C0F31514133333333DA045541333333030E31514114AE4721D90455413D0AD7130C3151419A999989D80455411F85EBB109315141713D0AB7D7045541F6285C1F0731514114AE4741D7045541295C8F52053151419A9999E9D604554114AE4751033151418FC2F548D7045541000000B00131514152B81E85D70455419A9999B9FE305141C3F5286CD8045541E17A14AEFE305141B81E855BD804554166666686FC305141F6285C4FD904554166666686FC305141295C8F42D9045541B81E852BF930514133333303DB045541A4703D6AF73051410AD7A350DC04554185EB5168F3305141713D0AF7DC045541CDCCCCDCF1305141EC51B82EDD045541D7A3703DEF305141295C8FC2DD045541A4703D9AEC305141C3F5286CDE0455411F85EB51E2305141D7A3708DE0045541D7A370CDDF305141EC51B81EE2045541CDCCCC0CDE305141333333A3E2045541E17A14BED8305141713D0AE7E4045541B81E857BD230514185EB5168E6045541713D0AD7D23051419A999959F0045541B81E85FBD3305141F6285C3FF4045541B81E85EBD53051410AD7A370F50455411F85EB01D8305141D7A3707DF5045541C3F5286CE6305141713D0A07EF045541333333E3E7305141000000C0EF04554166666626EA305141A4703D3AEF045541CDCCCC3CEC305141333333A3ED045541E17A144EF230514152B81E95E504554148E17AA4FB30514148E17A74E2045541AE47E12AF830514148E17AD4E40455415C8FC235F4305141B81E853BE604554133333373F130514114AE47B1EE0455413D0AD7F3F3305141A4703DAAF00455410AD7A360F6305141333333E3F204554148E17AA4F3305141F6285C9FF5045541713D0A67EE3051413D0AD713F80455410AD7A330E9305141713D0A07FE0455415C8FC255E730514185EB510801055541713D0A57EA305141666666E6090555419A999959E630514114AE47C111055541E17A14AEE7305141666666561405554133333313FD305141E17A14CE0C05554148E17A94FE305141AE47E12A1305554152B81E1501315141AE47E18A20055541713D0A4702315141EC51B83E28055541F6285CDF04315141CDCCCCEC270555417B14AE6707315141C3F5289C2705554114AE47A1093151415C8FC255270555413333330313315141CDCCCCCC26055541C3F5285C133151417B14AEC7260555410000003012315141EC51B8FE1C05554148E17AD4113151416666662618055541F6285CFF11315141713D0AD715055541B81E85FB1131514185EB51E81305554148E17AA410315141C3F528CC0A055541CDCCCC4C0F315141666666460805554152B81EE50E315141A4703D5A05055541
+</a>
+
+<b>
+01060000000100000001030000000100000022000000C4144E460D315141B4B8E4A5DF04554121B2862F0D31514100FEB6A7DF04554106A8C02E0D315141C4D3C6A7DF045541EFA6E1220D3151418AD2B9A8DF045541CA3DF8FF0C315141807284ABDF04554116295C9F083151415DB81E05E0045541BC3D0A470931514152B81E05E40455411B5E39060C3151414256FFAAF404554193F9ECC415315141D42CEB75F40455413C3CFC811C31514115879AA1F3045541D7126AC126315141B1EBB5CEF2045541B5E8951E29315141437BD095F20455415959D348283151419F0A93EBF0045541ED04E43C28315141BA6F31E5F0045541713D0A3727315141AE47E1BAF00455410AD7A3602431514148E17A44EF045541A93FAF2224315141C13367C7EE04554123F7D5712331514151986062ED045541666666761F31514185EB5158E5045541EC51B8BE1E3151411F85EB01E1045541295C8FE21F315141AE47E11ADF045541D7A370DD213151417B14AEF7DD0455415C8FC24520315141713D0A67DE0455413D0AD7B31B315141E17A144EDE0455417B14AE871A3151417B14AE47DE045541F6285C1F1831514100000070DE045541457690F21531514114F8D693DE04554185EB51E80F31514100000070DF045541C92061B10D31514170F7549DDF04554115F7A5790D31514189C0C9A1DF04554149709B730D315141166945A2DF0455419459945C0D3151415FC61CA4DF045541FEE6CF460D3151415A57DAA5DF045541C4144E460D315141B4B8E4A5DF045541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>365816 - 3515256
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000002D000000000000E076F45041B81E85CB1323544185EB51D884F45041F6285C5F0E2354410000001090F45041CDCCCCDC0C2354415C8FC24597F45041D7A3701D0C23544148E17A1499F450419A9999590B235441666666C695F45041A4703D7A002354419A9999A991F45041F6285CAFF1225441A4703D6A89F45041C3F528DCE62254416666661684F450418FC2F518DF225441333333C380F450411F85EB81DA225441AE47E19A7EF45041B81E853BD822544152B81E856EF45041EC51B87ED12254410000005066F45041CDCCCCACCC225441EC51B8AE61F45041B81E854BCC22544114AE47615DF4504166666646D4225441A4703DBA5AF4504133333313D32254413D0AD78357F45041F6285C6FD022544148E17AA453F450417B14AEF7D022544185EB51F84CF450417B14AE87CD2254410AD7A3003DF45041713D0A47C7225441D7A370DD38F450415C8FC2B5C52254410AD7A32036F450417B14AEA7C22254419A99990932F45041C3F528FCBC225441EC51B88E2DF4504114AE4701BB22544114AE47512CF4504166666696BA225441D7A3705D28F4504152B81EA5C2225441A4703D4A27F45041333333E3C7225441C3F5288C26F4504152B81E05CC22544148E17A9425F45041713D0A77CE22544114AE472120F4504100000000D222544148E17A441EF4504152B81EA5D3225441666666661CF450419A999959D422544185EB51A826F45041D7A370ADDF2254418FC2F5A837F45041AE47E1FAF1225441A4703D1A38F45041C3F528BCF2225441E17A142E4CF45041C3F528DC03235441EC51B87E4CF45041295C8F12042354419A9999F958F450419A9999990E235441CDCCCC3C59F45041E17A14EE0E2354413333336362F45041B81E852B1D235441295C8F9262F45041713D0A871D23544185EB51F869F45041713D0A4719235441EC51B88E65F450411F85EB810C235441C3F5282C71F45041333333A308235441000000E076F45041B81E85CB13235441
+</a>
+
+<b>
+0106000000010000000103000000020000005F000000D79C27FF82F4504169BE7997DD225441333333C380F450411F85EB81DA2254411F85EB917FF4504100000040D9225441F3C0C42B7EF450418FE9838EDA225441BC901EA87BF45041E8224ADDDB225441AF9AD36B78F45041721971EFDC22544118451DCD73F4504168958E26DF225441E319F84D72F450419DE31C04E0225441C3F5280C72F450410AD7A360DF2254418119389374F45041DF86AFFCDD22544169E0BC1678F450416C541F59DC225441DD46D6B679F45041EABBF1C4DB22544160BD1ACF7BF450415CDD8519DB22544147BF20987DF45041AD458126DA225441DCFCFA1F7EF45041F63037D7D922544122EDBB997EF450415BD13438D922544167FFDFE77EF450417552907AD8225441AE47E19A7EF45041B81E853BD82254410886887377F45041F9A565E3D72254414FD9E15070F450411605808BD722544105E1944D6DF45041BCBD6266D7225441295C8F226AF45041F6285C3FD72254417C2B0D2369F450411B47A074D722544152F862A264F450415D50EC64D8225441101903A35CF4504105B2BD0FDA225441F7D3F9D457F45041456B908CDE225441815832A054F45041686545E1E12254418E5EFE8153F4504159981F11E1225441C304E2E552F450417A6EF733E0225441798EF24053F450414904A052DE2254412F18039C53F45041B9534D8BDC225441678540EE54F450414576EC75DA225441459166C556F450412C668FBED622544179DD2AC452F45041B52ACC7AD322544159924C534DF450411A322B8ACF225441E346712B48F4504157C49B72CC225441D70B5E6A46F45041CD9BB129CC225441E54416EE43F4504107434074CA2254410AD7A3003DF45041713D0A47C7225441D7A370DD38F450415C8FC2B5C52254410AD7A32036F450417B14AEA7C22254419A99990932F45041C3F528FCBC225441EC51B88E2DF4504114AE4701BB22544114AE47512CF4504166666696BA225441D7A3705D28F4504152B81EA5C2225441A4703D4A27F45041333333E3C7225441BCE17D8926F45041DEF2DC0BCC225441E936F67027F45041A72764ADCE225441585F0D6328F45041AC182C7DD1225441FFB33E3726F45041D8C956C7D122544190E18F1C23F45041567FDBDAD3225441FE281CBE1EF450417471B9BDD622544185EB51A826F45041D7A370ADDF2254418FC2F5A837F45041AE47E1FAF1225441A4703D1A38F45041C3F528BCF22254418D68696042F450410C6EF3C3FA225441E17A142E4CF45041C3F528DC03235441EC51B87E4CF45041295C8F1204235441EC51B8EE4EF4504114AE4721062354411FF77F6451F45041520918C605235441A6A152B857F4504149FA727C07235441494326575AF45041BAED25DD08235441782468CD5CF4504151E0C7290B235441C40623F95BF45041644A7F2D0E235441408432C55AF450412122102C11235441B947DAF55BF45041E5DC597E12235441CB3D613C5EF4504151C90D9E11235441AC7AB8DA60F450418D4F689B12235441F713B79B63F45041D817B6E2152354418E3F598D64F45041036FE1631C23544185EB51F869F45041713D0A47192354418D1A199966F45041CFE9D4840F2354415A2B258F65F45041188926830C2354416EE32B8869F45041545FEA2E0B23544171F664336CF45041BA95BE290A235441FE6149306EF45041B6FFB6A109235441D8C0C5576FF450412810433F09235441C3F5282C71F45041333333A308235441000000E076F45041B81E85CB13235441AC1057187AF4504167BD8C8B122354410AD7A3407BF450419A9999390F235441B81E856B79F45041D7A3707D0C235441EEC5CEAC7EF450418D615C560B2354419BCDD1D082F4504192F19C820A23544185EB51D884F45041F6285C5F0E2354410000001090F45041CDCCCCDC0C2354415C8FC24597F45041D7A3701D0C23544148E17A1499F450419A9999590B235441666666C695F45041A4703D7A002354419A9999A991F45041F6285CAFF1225441A4703D6A89F45041C3F528DCE62254418F258D4C87F4504164B66EFDE3225441E5AEB3FE85F450416A4272E0E1225441DAB4359484F45041CDD045D0DF225441D79C27FF82F4504169BE7997DD22544106000000D7A3706D4EF4504152B81E85032354414DBA2FB450F45041AA0539C5FC225441AE47E1DA50F450413D0AD7B3FC22544114AE479157F45041000000A0FF225441AE47E1AA56F45041C3F528EC02235441D7A3706D4EF4504152B81E8503235441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>365652 - 2984452
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A0000001F85EBA1E19250410AD7A3C0E70C5541E17A14DEDB92504152B81EB5FD0C5541713D0A97DC925041295C8FF2FE0C554152B81ED5EC925041713D0A37030D55410AD7A390F79250419A999909060D55411F85EBC1F89250413D0AD753050D554100000070FD9250411F85EBA1EE0C55413D0AD763FF9250418FC2F528E50C55419A999919E4925041295C8F62DE0C55411F85EBA1E19250410AD7A3C0E70C5541
+</a>
+
+<b>
+0106000000010000000103000000010000000700000068402D8EE09250411C58D55DF70C55417247C007F59250412E80FC15F90C554145A9452EFB92504115A88793F90C55418AA45386FB925041017F85E8F70C554146F2CAE1DD9250418F0E70D5F50C55417BA00599DD92504177A3401EF70C554168402D8EE09250411C58D55DF70C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>365652 - 5171779
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A0000001F85EBA1E19250410AD7A3C0E70C5541E17A14DEDB92504152B81EB5FD0C5541713D0A97DC925041295C8FF2FE0C554152B81ED5EC925041713D0A37030D55410AD7A390F79250419A999909060D55411F85EBC1F89250413D0AD753050D554100000070FD9250411F85EBA1EE0C55413D0AD763FF9250418FC2F528E50C55419A999919E4925041295C8F62DE0C55411F85EBA1E19250410AD7A3C0E70C5541
+</a>
+
+<b>
+0106000000010000000103000000010000000700000068402D8EE09250411C58D55DF70C55417247C007F59250412E80FC15F90C554145A9452EFB92504115A88793F90C55418AA45386FB925041017F85E8F70C554146F2CAE1DD9250418F0E70D5F50C55417BA00599DD92504177A3401EF70C554168402D8EE09250411C58D55DF70C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>366443 - 3467613
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000034000000EC51B83E452D5141D7A3708D0E1D5541295C8F52502D51410AD7A370101D55415C8FC2755E2D51419A9999D9121D5541A4703D0A5C2D5141E17A14DE0B1D5541CDCCCC7C592D5141E17A142E031D55410AD7A350572D5141000000C0FC1C55411F85EBC1552D5141713D0AD7F71C55411F85EB01552D5141666666B6F51C55419A9999A9542D5141E17A143EF41C5541CDCCCCBC532D5141B81E850BEF1C55415C8FC2B5522D51411F85EB51E71C554133333373522D51415C8FC235E21C554166666696502D51418FC2F578E11C55418FC2F5D84C2D5141000000E0E11C5541D7A370FD482D5141E17A147EE11C55418FC2F5A8422D51411F85EBE1E01C5541EC51B80E372D514100000050DD1C554114AE47B1FA2C514166666656CB1C5541F6285CEFF82C51411F85EBB1CD1C554114AE4701F62C51417B14AE17D11C5541A4703DDAF12C51410AD7A320D41C55415C8FC2B5EE2C51418FC2F558D61C55413D0AD7B3EF2C5141295C8F42D71C554152B81E35F02C5141E17A140ED81C55413D0AD793F12C5141C3F5283CD81C5541295C8FB2F22C51419A999929D81C5541A4703DDAF32C5141CDCCCC7CD81C55410AD7A3C0F42C514152B81E35D91C5541E17A145EF52C514185EB5178DA1C5541C3F5288CF52C5141C3F528FCDB1C5541AE47E10AF52C514152B81EA5DD1C554152B81EB5F32C51419A999969DF1C5541B81E85CBF12C514152B81E25E11C55413D0AD7C3EE2C5141295C8F82E51C554166666636ED2C5141B81E85FBE91C5541AE47E13AEC2C51418FC2F5C8EB1C554148E17A24022D5141EC51B8EEF51C5541D7A3707D022D5141713D0A37F51C554185EB5168052D51413D0AD753F51C55410AD7A3400C2D5141D7A370FDF41C5541EC51B89E0F2D51410AD7A3E0F41C5541EC51B8CE112D5141CDCCCC8CF51C5541A4703D2A142D51418FC2F5C8F61C5541AE47E1FA172D514114AE4741F91C5541EC51B8AE1B2D5141E17A148EFB1C55413D0AD7A3212D51419A9999A9FF1C5541295C8F62282D514148E17A64031D5541B81E858B2F2D5141333333A3051D5541A4703D4A342D514114AE4791071D5541E17A148E3B2D514148E17A040B1D55411F85EB71422D5141333333130E1D5541EC51B83E452D5141D7A3708D0E1D5541
+</a>
+
+<b>
+0106000000010000000103000000010000002100000014AE47B1FA2C514166666656CB1C554114AE4701F62C51417B14AE17D11C5541AB949F90F22C51419B21BF9BD31C55419001B138FA2C51416F0B0C1BD61C55419E09C072F92C51415890E591D91C55412B49A420F82C51417D51D186DF1C55418434F275F82C51410B0EDD9CDF1C5541B9544E39192D514143B67814E81C5541A6598A2D2A2D51410A962676EC1C554178AFC3CC402D514108EAD14EF21C5541455FC2AD552D5141124D3DB6F71C5541FE6F4F8D542D5141D757F5C8F31C55416A78312F542D5141EF4E498EF11C55414FC96FD7532D5141907330A1EF1C55414AFB175F532D5141D73A034BEC1C5541905091A1522D5141BC107905E61C554133333373522D51415C8FC235E21C5541AE47E12A522D5141D7A370BDD91C55411F85EBF14F2D5141D7A370DDD91C55415C8FC2F5482D5141B81E859BD91C55413D0AD703482D514133333393D91C5541AE47E1FA442D51411F85EB31D91C5541EC51B85E392D51419A999919D51C554114AE4711382D5141A4703DAAD41C5541F6285C5F352D5141333333C3D31C5541C3F5285C302D5141CDCCCC4CD11C55411F85EB512E2D51417B14AE97D01C5541AE47E1FA242D5141B81E855BCD1C5541B81E85DB162D51411F85EB61C81C5541A4703D2A052D51415C8FC215C11C5541A4703DAA002D51413D0AD783C41C55413D0AD793FD2C51418FC2F578C71C554114AE47B1FA2C514166666656CB1C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>346107 - 163158
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000014000000F6285C3F1A0351418FC2F5D8D88C54415C8FC2550E03514148E17A04C98C54415C8FC29509035141CDCCCC0CD08C54410AD7A330050351410AD7A3A0D78C54411F85EBD1010351419A9999D9DE8C5441666666F600035141713D0A47E28C5441AE47E13A01035141EC51B8DEE58C54415C8FC2B5020351415C8FC205EA8C5441000000B0030351410AD7A390EF8C5441D7A3705D04035141295C8FE2F48C5441295C8F22040351417B14AE57FA8C5441295C8F7203035141E17A144EFE8C54411F85EB4103035141EC51B84EFF8C5441D7A370AD0E035141EC51B88EFE8C544185EB51A8290351415C8FC295FC8C5441666666A62A035141EC51B84EFD8C5441EC51B87E30035141A4703DCAF88C5441000000003103514166666606F88C54415C8FC2F530035141CDCCCC0CF78C5441F6285C3F1A0351418FC2F5D8D88C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000F6285C3F1A0351418FC2F5D8D88C54415C8FC2550E03514148E17A04C98C5441378F7FD30A0351414F4F6136CE8C5441DC9BC29509035141CA88CD0CD08C5441F6C86E1F08035141DD382F92D28C54410AD7A330050351410AD7A3A0D78C54411F85EBD1010351419A9999D9DE8C5441F67B66F60003514141E70947E28C54414E8BAE0001035141AAB01FD1E28C5441AE47E13A01035141EC51B8DEE58C5441D1063D93010351416C85A1D6E68C5441FAE9C3B50203514113C9C205EA8C5441273000B0030351419CB8A290EF8C5441C5A939D003035141837BAF8DF08C5441D7A3705D04035141295C8FE2F48C5441295C8F22040351417B14AE57FA8C5441295C8F7203035141E17A144EFE8C5441C6CF3367030351419D9F018AFE8C54419394EC41030351411840B84EFF8C5441D7A370AD0E035141EC51B88EFE8C5441E55E41C51B035141A374AB99FD8C544108B642C51B0351418D5BAB99FD8C5441803D51A8290351411721C295FC8C544108D751A829035141DB90C295FC8C544185EB51A8290351415C8FC295FC8C544122F765A62A035141ED00B84EFD8C54416FACB87E3003514187E73CCAF88C54413C80CB9D30035141B0852A9BF88C54413AFDFFFF30035141CC226606F88C54415C8FC2F530035141CDCCCC0CF78C5441F6285C3F1A0351418FC2F5D8D88C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>346107 - 354607
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000014000000F6285C3F1A0351418FC2F5D8D88C54415C8FC2550E03514148E17A04C98C54415C8FC29509035141CDCCCC0CD08C54410AD7A330050351410AD7A3A0D78C54411F85EBD1010351419A9999D9DE8C5441666666F600035141713D0A47E28C5441AE47E13A01035141EC51B8DEE58C54415C8FC2B5020351415C8FC205EA8C5441000000B0030351410AD7A390EF8C5441D7A3705D04035141295C8FE2F48C5441295C8F22040351417B14AE57FA8C5441295C8F7203035141E17A144EFE8C54411F85EB4103035141EC51B84EFF8C5441D7A370AD0E035141EC51B88EFE8C544185EB51A8290351415C8FC295FC8C5441666666A62A035141EC51B84EFD8C5441EC51B87E30035141A4703DCAF88C5441000000003103514166666606F88C54415C8FC2F530035141CDCCCC0CF78C5441F6285C3F1A0351418FC2F5D8D88C5441
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000F6285C3F1A0351418FC2F5D8D88C54415C8FC2550E03514148E17A04C98C5441378F7FD30A0351414F4F6136CE8C5441DC9BC29509035141CA88CD0CD08C5441F6C86E1F08035141DD382F92D28C54410AD7A330050351410AD7A3A0D78C54411F85EBD1010351419A9999D9DE8C5441F67B66F60003514141E70947E28C54414E8BAE0001035141AAB01FD1E28C5441AE47E13A01035141EC51B8DEE58C5441D1063D93010351416C85A1D6E68C5441FAE9C3B50203514113C9C205EA8C5441273000B0030351419CB8A290EF8C5441C5A939D003035141837BAF8DF08C5441D7A3705D04035141295C8FE2F48C5441295C8F22040351417B14AE57FA8C5441295C8F7203035141E17A144EFE8C5441C6CF3367030351419D9F018AFE8C54419394EC41030351411840B84EFF8C5441D7A370AD0E035141EC51B88EFE8C5441E55E41C51B035141A374AB99FD8C544108B642C51B0351418D5BAB99FD8C5441803D51A8290351411721C295FC8C544108D751A829035141DB90C295FC8C544185EB51A8290351415C8FC295FC8C544122F765A62A035141ED00B84EFD8C54416FACB87E3003514187E73CCAF88C54413C80CB9D30035141B0852A9BF88C54413AFDFFFF30035141CC226606F88C54415C8FC2F530035141CDCCCC0CF78C5441F6285C3F1A0351418FC2F5D8D88C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>724440 - 725334
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000B000000A05C1591839E50412BA9D82FEA465541B5A0ECB8839E50417418779FEA465541927C9204879E5041BA5986E8E746554119FB2E8E8A9E50410CDA79D9E5465541C8EFAB21819E504126C8DBACCD46554154F107F97D9E5041EFE507C9CF46554175A986F27C9E5041DFBBC419D14655412F6C6F487B9E5041874C9AFAD2465541CCC4745E7B9E504188FB4B38D3465541000000607B9E504166666636D3465541A05C1591839E50412BA9D82FEA465541
+</a>
+
+<b>
+01060000000100000001030000000100000009000000A4703DAA839E504166666676EA465541000000607B9E504166666636D3465541713D0AB7749E504152B81E65DB465541E17A144E7A9E5041A4703D6AE6465541E17A145E7F9E5041713D0A47F0465541713D0A977F9E504152B81ED5F0465541F6285C3F849E50418FC2F528EC4655418FC2F518849E5041CDCCCCACEB465541A4703DAA839E504166666676EA465541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>724440 - 1639487
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000B000000A05C1591839E50412BA9D82FEA465541B5A0ECB8839E50417418779FEA465541927C9204879E5041BA5986E8E746554119FB2E8E8A9E50410CDA79D9E5465541C8EFAB21819E504126C8DBACCD46554154F107F97D9E5041EFE507C9CF46554175A986F27C9E5041DFBBC419D14655412F6C6F487B9E5041874C9AFAD2465541CCC4745E7B9E504188FB4B38D3465541000000607B9E504166666636D3465541A05C1591839E50412BA9D82FEA465541
+</a>
+
+<b>
+01060000000100000001030000000100000009000000A4703DAA839E504166666676EA465541000000607B9E504166666636D3465541713D0AB7749E504152B81E65DB465541E17A144E7A9E5041A4703D6AE6465541E17A145E7F9E5041713D0A47F0465541713D0A977F9E504152B81ED5F0465541F6285C3F849E50418FC2F528EC4655418FC2F518849E5041CDCCCCACEB465541A4703DAA839E504166666676EA465541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>724440 - 5290556
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000B000000A05C1591839E50412BA9D82FEA465541B5A0ECB8839E50417418779FEA465541927C9204879E5041BA5986E8E746554119FB2E8E8A9E50410CDA79D9E5465541C8EFAB21819E504126C8DBACCD46554154F107F97D9E5041EFE507C9CF46554175A986F27C9E5041DFBBC419D14655412F6C6F487B9E5041874C9AFAD2465541CCC4745E7B9E504188FB4B38D3465541000000607B9E504166666636D3465541A05C1591839E50412BA9D82FEA465541
+</a>
+
+<b>
+01060000000100000001030000000100000009000000A4703DAA839E504166666676EA465541000000607B9E504166666636D3465541713D0AB7749E504152B81E65DB465541E17A144E7A9E5041A4703D6AE6465541E17A145E7F9E5041713D0A47F0465541713D0A977F9E504152B81ED5F0465541F6285C3F849E50418FC2F528EC4655418FC2F518849E5041CDCCCCACEB465541A4703DAA839E504166666676EA465541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>368160 - 187145
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000001E00000085EB51E855BC5041666666664D375441D7A3708D55BC5041C3F5282C4E37544148E17A2442BC5041CDCCCC4C78375441000000D044BC5041295C8F227A375441F6285C6F49BC5041333333B37D37544148E17AF44CBC50415C8FC235803754411F85EB7151BC50411F85EBD183375441F6285CBF52BC504152B81EB584375441D7A370BD57BC50415C8FC26588375441000000305CBC5041C3F5289C8B3754410AD7A3C05FBC5041333333138E375441B81E857B62BC50411F85EB51903754411F85EB4163BC5041295C8F5291375441A4703DDA63BC5041295C8F929237544152B81E2565BC50415C8FC2058E3754410AD7A33066BC5041A4703D6A8A3754415C8FC2F567BC5041666666B684375441D7A370BD68BC5041A4703D6A84375441295C8F326BBC5041A4703DEA793754418FC2F5886EBC50419A9999796C375441000000506EBC5041666666C66B37544152B81E656DBC5041B81E854B6937544148E17AB475BC5041E17A14CE653754417B14AE676EBC5041713D0AA75C37544152B81E656ABC50413D0AD7335737544148E17AC466BC50419A99994955375441713D0A4766BC50417B14AE0755375441295C8F525DBC5041A4703DCA503754418FC2F57858BC50419A9999A94E37544185EB51E855BC5041666666664D375441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000470DBD8555BC50413B19E03C4E3754416E61930654BC504180F0847A4D375441B81E85FB51BC5041CDCCCC8C4C375441000000604CBC504152B81EF549375441C3F528AC49BC50418FC2F578483754417B14AE7744BC5041EC51B8DE45375441F6285CDF3EBC50415C8FC26543375441F6285C0F3DBC50410AD7A360423754417B14AE373CBC5041C3F5286C41375441D7A3704D3DBC504152B81EB53F3754415C8FC2453ABC5041E17A141E3E37544185EB512839BC5041C3F5287C3D37544152B81E8536BC5041666666B643375441EC51B81E3BBC504133333343483754412B0C9D3D3CBC504163C344BB46375441B57B9F8C46BC50419354BD054B3754417B96D2F053BC5041E3395582503754411CDA575954BC5041705F66BC503754417C8DB53B55BC5041B1778CDD4E375441E4E9464855BC5041588045C24E375441470DBD8555BC50413B19E03C4E375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>368165 - 187177
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+01060000000100000001030000000100000012000000D7A3709DB1BC50411F85EB91C137544100000090B4BC5041D7A370ADC1375441A4703D3AB8BC5041E17A142EC237544114AE4721BCBC5041C3F5284CC3375441CDCCCC5CBFBC50411F85EB81C43754413D0AD783BFBC50413D0AD7E3B13754418FC2F588BFBC50419A9999199C37544133333373BFBC50417B14AE9795375441CDCCCC1CBDBC50411F85EB3193375441A4703D1ABABC50411F85EB018D375441A4703DAAB5BC5041666666068F375441A4703D8AB1BC5041000000509037544133333393B1BC5041CDCCCC8C943754413D0AD7A3B1BC504185EB51089C3754418FC2F5B8B1BC5041295C8F52A63754417B14AEA7B1BC504148E17AD4B4375441E17A149EB1BC50410AD7A370C0375441D7A3709DB1BC50411F85EB91C1375441
+</a>
+
+<b>
+0106000000010000000103000000010000001D000000C5D5955DBCBC50411893D9A8913754417FEA6664BBBC5041DEE89DA88F37544142F1EB57BBBC5041E2F46D928F375441B9CAE53FBBBC50411BA0935D8F37544121E29D7FBABC5041A0D6D1E18D37544100D34FA7B9BC5041DEA6AC528E3754419B0749EAB7BC50411C207B768E3754418CEF326BB4BC5041DE2B0636903754413DBB3A89B2BC50414C460227913754419DC9ABBAB1BC5041AC1BAF9293375441604E3B9EB1BC504136EFF00A98375441B9036D9EB1BC5041333806449837544116F127ABB1BC5041EAA91B44983754411D1869AAB1BC5041ECA9D12898375441ED2511BFB3BC5041B79E9B4798375441A1FDA39CB3BC5041C66C89D79337544121E1C139B5BC5041EA0F24D3913754411CEB6687B9BC50410A1E950491375441C698A6D0BBBC5041BD94F6F993375441E9DA0FE4BCBC5041B9273A529537544116F50BD5BDBC5041ABBA7DAA9637544161448DD6BEBC5041236271AE97375441E9C1A47CBFBC5041506FAB6A98375441DF2E2374BFBC504154E772DF95375441B6107473BFBC5041F51614AB953754415F8F6633BFBC5041BAAA596095375441DFA0EF11BDBC50418599132C93375441375AAB70BCBC5041517A14D091375441C5D5955DBCBC50411893D9A891375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>368433 - 187145
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000160000007B14AE7744BC5041EC51B8DE45375441F6285CDF3EBC50415C8FC26543375441F6285C0F3DBC50410AD7A360423754417B14AE373CBC5041C3F5286C41375441D7A3704D3DBC504152B81EB53F3754415C8FC2453ABC5041E17A141E3E37544185EB512839BC5041C3F5287C3D37544152B81E8536BC5041666666B643375441EC51B81E3BBC50413333334348375441000000E034BC50418FC2F5D85637544152B81E152DBC5041AE47E10A6937544114AE47A12DBC504114AE47B169375441D7A3705D34BC5041333333936E3754413333338335BC5041333333536F375441C3F5281C3CBC50415C8FC22574375441E17A146E3FBC50413D0AD7B37637544148E17A2442BC5041CDCCCC4C78375441D7A3708D55BC5041C3F5282C4E375441B81E85FB51BC5041CDCCCC8C4C375441000000604CBC504152B81EF549375441C3F528AC49BC50418FC2F578483754417B14AE7744BC5041EC51B8DE45375441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000470DBD8555BC50413B19E03C4E3754416E61930654BC504180F0847A4D375441B81E85FB51BC5041CDCCCC8C4C375441000000604CBC504152B81EF549375441C3F528AC49BC50418FC2F578483754417B14AE7744BC5041EC51B8DE45375441F6285CDF3EBC50415C8FC26543375441F6285C0F3DBC50410AD7A360423754417B14AE373CBC5041C3F5286C41375441D7A3704D3DBC504152B81EB53F3754415C8FC2453ABC5041E17A141E3E37544185EB512839BC5041C3F5287C3D37544152B81E8536BC5041666666B643375441EC51B81E3BBC504133333343483754412B0C9D3D3CBC504163C344BB46375441B57B9F8C46BC50419354BD054B3754417B96D2F053BC5041E3395582503754411CDA575954BC5041705F66BC503754417C8DB53B55BC5041B1778CDD4E375441E4E9464855BC5041588045C24E375441470DBD8555BC50413B19E03C4E375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>368927 - 187142
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+01060000000100000001030000000100000040000000333333E383BB50413D0AD7030D375441713D0A1784BB50417B14AEB70E37544152B81E4585BB50410AD7A30010375441333333E385BB50415C8FC2C510375441AE47E19A86BB50410AD7A370113754419A9999E986BB5041A4703DFA1237544148E17A0487BB5041A4703D6A1437544185EB51A886BB5041C3F5281C1637544148E17A2486BB5041B81E856B183754410AD7A3E085BB50410AD7A3501A37544148E17AE485BB5041EC51B87E1B3754417B14AE1786BB50418FC2F5581D375441D7A370FD85BB5041D7A370FD1E3754419A9999E986BB50410AD7A36022375441713D0AF786BB50410000002026375441AE47E10A88BB50417B14AE4728375441E17A146E89BB504152B81E352B37544114AE47F189BB50413D0AD7632E375441CDCCCC0C8BBB5041D7A3706D343754411F85EB818ABB5041333333933537544114AE478188BB5041B81E85BB37375441F6285C8F87BB5041EC51B8AE38375441AE47E19A86BB5041666666663A375441EC51B8AE85BB50411F85EBA13B3754419A9999E984BB5041C3F5282C3D375441AE47E1DA83BB504114AE47013F3754416666664683BB504148E17A9440375441A4703DCA81BB5041713D0A17433754418FC2F53881BB5041CDCCCC5C44375441D7A3703D80BB5041713D0A0747375441F6285C8F7EBB5041A4703D0A4A375441B81E858B7EBB5041F6285C1F4C37544152B81E857DBB5041EC51B85E503754413D0AD7637CBB5041713D0A8752375441000000D07BBB5041B81E858B543754411F85EB017CBB5041CDCCCC1C5537544114AE47A1A0BB50411F85EBA1583754418FC2F5C8ABBB5041666666F659375441C3F5286CAFBB5041295C8F725A37544100000040ABBB50415C8FC2F5413754411F85EB21AABB5041EC51B86E3B375441000000009FBB50418FC2F598F93654418FC2F5D89EBB5041295C8FB2F83654410AD7A390A1BB50415C8FC2A5F4365441CDCCCCCCA0BB504114AE4701F4365441CDCCCC3C9FBB504100000000F2365441E17A146E9DBB5041000000C0EF3654415C8FC2A59CBB5041CDCCCCDCEE365441C3F528FC9ABB5041CDCCCC7CF0365441F6285C4F99BB5041EC51B85EF2365441295C8F5297BB5041B81E850BF4365441713D0AE796BB5041B81E854BF6365441D7A3702D95BB50415C8FC255F8365441295C8F3293BB50419A9999E9F83654418FC2F5A893BB5041A4703D1AFC365441D7A3703D93BB5041713D0A17FE365441D7A370FD90BB5041AE47E1FAFE365441F6285CCF8EBB504148E17AE4FE36544114AE47118DBB504185EB5108FF365441000000208CBB50413D0AD7B301375441666666068BBB504152B81EF502375441295C8FF288BB50419A9999290437544152B81E8587BB50410AD7A3F005375441333333E383BB50413D0AD7030D375441
+</a>
+
+<b>
+010600000001000000010300000001000000440000009C48AB4E86BB504151B44D4D08375441A22E6D0A86BB5041A51F38D208375441D59E8C1886BB504155E1ACEC09375441D1FFB63A84BB5041C8BFA4890C3754418BB1E35186BB50418510A77E1037544183D174B186BB50417E3038DE10375441602A0BBD87BB50413A8B45ED0E375441C77667A288BB5041ADF28C220D3754412CB6896189BB5041C8BFA4890C3754419302E6468ABB50412A5AD4570B3754416768B6788BBB50418CF403260A375441350DA9698DBB5041006FA29408375441FB4A542591BB5041FDC9AFA3063754414EFD0D5E92BB5041AA6F9125063754413F187C6092BB50410F62E52F06375441B8F5E60798BB5041F3C87E6703375441206AF01998BB504106C79B4F0337544110AD365098BB50416EA5783403375441AC6309779DBB5041182017A3013754412630066CA0BB5041DBB9B601023754413E44E714A0BB5041897780FEFF365441A52C7C04A0BB5041005D689DFF365441FCB34FDA9FBB5041E68E00A4FE3654418EB23E7E9BBB50410500A211FE36544197EA3A859BBB50415D424FEDFD3654419A649CDB9ABB5041E696B1D6FD3654415046283A9CBB50410373FADCF93654414A85E9C099BB50414D916E7EF8365441563AEBE69ABB50415385312BF7365441E54F8C499DBB50415F3A3351F836544169607B249FBB504123CE56C1F53654412903C59A9FBB504145591C2FF53654410E5A0448A0BB504116E08970F436544192B7816C9CBB50416CC474D6EF36544141A5E8E19BBB5041E45F5AA6F0365441771213369BBB5041EC508B56F13654417A8C748C9ABB5041D4B303D7F23654416B5D11109ABB5041BC167C57F4365441FD1F98FC97BB5041CEBF402AF436544186C8CCC597BB50410A4966AAF3365441DEB0EB9497BB50410BE997D3F33654410A9AF95297BB5041BC167C57F4365441B8F5E60798BB504123CE56C1F5365441DB926E8796BB5041C53C0C95F8365441780AF79995BB5041B019E66BF9365441F17FA66894BB50416BEF3477F9365441B0CF56CA93BB504106ED5B33F9365441D421E06F93BB5041D0F10DBBF9365441AA3884A093BB504134AA00E0FB3654418FC2F5A893BB5041A4703D1AFC365441D7A3703D93BB5041713D0A17FE365441D7A370FD90BB5041AE47E1FAFE365441F6285CCF8EBB504148E17AE4FE36544114AE47118DBB504185EB5108FF365441AD04F4BC8CBB5041FE6A35F7FF365441AB13C67C8DBB504184BA467100375441BDED170A8DBB5041F3E611F700375441FCE0DDE38CBB5041914CE228023754410EC14C848CBB5041E5BEEC80033754419E812AC58BBB5041031EA09F04375441705B7C528BBB5041031EA09F04375441A2D8C4F389BB504125A2699403375441DD0EA48B89BB50414336CFD003375441EF04A56789BB50410028B0E503375441555AADB986BB5041AE6DE27C07375441C60C5EA986BB50418BA4A69C0737544140E9979D86BB50419F4395B3073754419C48AB4E86BB504151B44D4D08375441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>369381 - 44980
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000001A000000AE47E17ACBA050417B14AEB7CF7D544185EB5148B9A050411F85EB51D07D54411F85EB61B9A050419A999929D57D544133333373C2A050415C8FC2E5D57D54410AD7A380C9A05041713D0AF7D57D54410AD7A310D2A05041A4703D3AD57D5441AE47E13AE2A05041AE47E19AD27D544133333373F0A05041713D0AD7CE7D5441A4703DDAFEA0504152B81E45CB7D544185EB51E800A1504114AE47E1CC7D5441666666E601A150410AD7A3C0CC7D5441F6285C2F07A15041713D0A57CC7D54419A9999E90CA15041B81E858BCC7D544114AE475115A15041EC51B88ECE7D544148E17A541FA150410AD7A310D37D54413D0AD76333A150415C8FC2A5DE7D5441F6285C2F38A1504148E17AE4D27D5441EC51B83E1EA15041C3F528ACC67D5441C3F5280C16A1504152B81E85C47D5441333333D30DA15041295C8FC2C37D544114AE47C106A150415C8FC2F5C37D54411F85EBF1FEA05041713D0A37C57D5441CDCCCC0CE8A050415C8FC2B5CA7D54419A999919E7A0504114AE47F1CA7D5441C3F5285CD7A0504185EB5168CE7D5441AE47E17ACBA050417B14AEB7CF7D5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000CF1E5F8C0CA15041ADE22E88CC7D54417DCC3C7F05A150418283C478CC7D5441C150CFE601A15041FD8B2CC3CC7D544158B9659502A15041B54FACFAD07D5441C870D04B04A15041C0D6D32ACF7D5441A694A29A0DA15041BBDFE351CF7D5441AF67E48915A15041618A1438D27D54411C7ED5441AA150411E08F55AD47D5441500087D420A15041D78EE5A4D67D5441D9E017A524A15041C0BB3568D77D54411958D6BB24A15041A66C612FD67D54417038EDFA19A1504100A315A8D07D544199FFF9AD18A150413DD33112D07D54413BBF6B3E11A1504129580495CD7D5441CF1E5F8C0CA15041ADE22E88CC7D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>369381 - 80874
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000001A000000AE47E17ACBA050417B14AEB7CF7D544185EB5148B9A050411F85EB51D07D54411F85EB61B9A050419A999929D57D544133333373C2A050415C8FC2E5D57D54410AD7A380C9A05041713D0AF7D57D54410AD7A310D2A05041A4703D3AD57D5441AE47E13AE2A05041AE47E19AD27D544133333373F0A05041713D0AD7CE7D5441A4703DDAFEA0504152B81E45CB7D544185EB51E800A1504114AE47E1CC7D5441666666E601A150410AD7A3C0CC7D5441F6285C2F07A15041713D0A57CC7D54419A9999E90CA15041B81E858BCC7D544114AE475115A15041EC51B88ECE7D544148E17A541FA150410AD7A310D37D54413D0AD76333A150415C8FC2A5DE7D5441F6285C2F38A1504148E17AE4D27D5441EC51B83E1EA15041C3F528ACC67D5441C3F5280C16A1504152B81E85C47D5441333333D30DA15041295C8FC2C37D544114AE47C106A150415C8FC2F5C37D54411F85EBF1FEA05041713D0A37C57D5441CDCCCC0CE8A050415C8FC2B5CA7D54419A999919E7A0504114AE47F1CA7D5441C3F5285CD7A0504185EB5168CE7D5441AE47E17ACBA050417B14AEB7CF7D5441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000CF1E5F8C0CA15041ADE22E88CC7D54417DCC3C7F05A150418283C478CC7D5441C150CFE601A15041FD8B2CC3CC7D544158B9659502A15041B54FACFAD07D5441C870D04B04A15041C0D6D32ACF7D5441A694A29A0DA15041BBDFE351CF7D5441AF67E48915A15041618A1438D27D54411C7ED5441AA150411E08F55AD47D5441500087D420A15041D78EE5A4D67D5441D9E017A524A15041C0BB3568D77D54411958D6BB24A15041A66C612FD67D54417038EDFA19A1504100A315A8D07D544199FFF9AD18A150413DD33112D07D54413BBF6B3E11A1504129580495CD7D5441CF1E5F8C0CA15041ADE22E88CC7D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>393829 - 978656
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000000A000000F6285C8F0CDA50413D0AD783407D5441713D0AA73FDA5041C3F5285C3F7D54410AD7A31066DA5041D7A3707D3E7D544185EB515865DA504148E17A94337D54415C8FC2153FDA50411F85EB71347D544185EB51880EDA5041AE47E18A357D544185EB51C8E8D950415C8FC265367D54413D0AD783E8D950417B14AE27387D5441E17A141EE7D95041CDCCCC5C417D5441F6285C8F0CDA50413D0AD783407D5441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000295F3A72E5D95041C8A6C5D24C7D5441E747C28AEFD95041775AC6864C7D544152B81E850ADA5041B81E85FB4B7D5441F9BF218C0FDA5041292B5FDE4B7D5441F79D6CBD2DDA50417197512F4B7D5441713D0A4740DA50413D0AD7C34A7D5441BD7019EC5FDA50410B016E0C4A7D54418EB5F5CF66DA5041FF892BDA497D544109A2050666DA504119C7F3823E7D5441E862875663DA5041F65D408D3E7D5441E096D30641DA50411C4331543F7D5441EC1E6DA32EDA5041AB8D9FBE3F7D5441073E57B921DA50414E5E5C09407D54419B1B190212DA5041007B4F64407D544108FCEE02FFD95041E2C858D2407D5441195A8022F3D95041DB852A17417D5441A5A93ECFECD95041DF47D13B417D544186B0A52AE7D95041137F0841417D5441D87F0139E7D9504198A30010427D54417E441C72E5D950418B4C96CD4C7D5441295F3A72E5D95041C8A6C5D24C7D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>345275 - 1234162
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000003E000000AE47E1CA19845141B81E852B4CB754411F85EBF121845141B81E85EB44B75441AE47E14A218451413D0AD72344B7544185EB51A81E8451413D0AD70343B754414AE58D2D168451419A9040C83EB75441C9AC23C71284514138258C623DB75441787129AD0C845141BBCB75383CB754416A1D6E40088451410F2CAF793BB75441625FC6C703845141449E86F63AB75441353E555AFD8351419BFEBF373AB754417B4AD32EF8835141DA06ABA839B754411E7532BDF6835141CA4470CC39B75441DB8DF30FF5835141C5AE5CD839B754419D3CC856F3835141B0560E083AB7544154BF75B5F1835141BA8235F039B75441C7A324AFF0835141B0560E083AB754416F649731EF835141B5EC21FC39B75441C3C4D072EE835141B5EC21FC39B754417F477ED1EC8351419F94D32B3AB754414DB88DF4EA8351419568AC433AB75441647E5B34E68351416BB80FA33AB7544173F755C8E38351416B22FCAE3AB7544106173A32E0835141122CAF793BB754417AFBE82BDF835141FDD360A93BB75441F275AB19DE835141E87B12D93BB75441D7A3706DDB835141713D0A673CB7544152B81E45D5835141CDCCCC9C3DB754415C8FC2B5CC835141A4703DAA3FB7544152B81E25CD835141713D0A7745B75441D7A370DDD0835141713D0A4744B75441EC51B8AED18351416666661644B754415C8FC245D8835141D7A3702D42B75441AE47E1EADE8351419A9999A940B75441F6285C5FE38351418FC2F51840B754417B14AEF7E38351413D0AD71340B75441D5620A2EE58351410DEA56F23FB7544152BC2058E683514112806AE63FB75441FE5BE716E783514117167EDA3FB75441900D4C11E88351412C6ECCAA3FB7544108D14E47E983514127D8B8B63FB754419982B341EA835141379AF3923FB7544144F65218EB835141376ECCAA3FB75441C6E57C36EC835141376ECCAA3FB7544148D5A654ED835141473007873FB75441C52EBD7EEE8351414CC61A7B3FB754416C387049EF835141429AF3923FB75441E3FB727FF0835141429AF3923FB7544195314D32F1835141429AF3923FB754412C79C520F283514132D8B8B63FB75441451A5439F4835141429AF3923FB75441C9CBB833F58351412C6ECCAA3FB75441295C8F62F58351411F85EBF13FB7544152B81E15F6835141E17A140E40B75441F85AA910F7835141F891082240B754419E645CDBF7835141F3FBF42D40B754414ED8FBB1F8835141E40D936940B754415696A32AFD8351418B17463441B7544194E7CEE3FE83514176BFF76341B754416E5FC6C703845141139D834642B754418B75BC100884514190F6997043B75441071813830B8451412CD4255344B75441AE47E1CA19845141B81E852B4CB75441
+</a>
+
+<b>
+01060000000100000001030000000100000044000000AE47E1CA19845141B81E852B4CB754411F85EBF121845141B81E85EB44B75441AE47E14A218451413D0AD72344B7544185EB51A81E8451413D0AD70343B7544146E58D2D168451419F9040C83EB75441CEAC23C7128451413D258C623DB75441737129AD0C845141BFCB75383CB75441185C75540A845141E475F3CB3BB754416A1D6E4008845141132CAF793BB75441B3E90A7A0384514189EE38E33AB75441353E555AFD8351419EFEBF373AB75441804AD32EF8835141DF06ABA839B754411D7532BDF6835141CC4470CC39B75441D78DF30FF5835141C2AE5CD839B754419A3CC856F3835141B0560E083AB7544155BF75B5F1835141B98235F039B75441C4A324AFF0835141B0560E083AB754416B649731EF835141BAEC21FC39B75441BFC4D072EE835141BAEC21FC39B7544184477ED1EC8351419D94D32B3AB754414FB88DF4EA8351419468AC433AB75441B88C5F37E6835141B0332A9A3AB75441CDCCCCACE38351418FC2F5C83AB7544108173A32E0835141132CAF793BB7544177FBE82BDF83514100D460A93BB754412D88B517DE835141137678E13BB75441D7A3706DDB835141713D0A673CB7544152B81E45D5835141CDCCCC9C3DB754415C8FC2B5CC835141A4703DAA3FB7544152B81E25CD835141713D0A7745B75441D7A370DDD0835141713D0A4744B75441EC51B8AED18351416666661644B754415C8FC245D8835141D7A3702D42B75441AE47E1EADE8351419A9999A940B75441F6285C5FE38351418FC2F51840B754417B14AEF7E38351413D0AD71340B75441D0620A2EE583514112EA56F23FB754414EBC2058E683514111806AE63FB75441FA5BE716E78351411B167EDA3FB75441950D4C11E88351412D6ECCAA3FB7544109D14E47E983514123D8B8B63FB754419982B341EA835141369AF3923FB7544147F65218EB835141386ECCAA3FB75441C4E57C36EC835141386ECCAA3FB754414CD5A654ED8351414B3007873FB75441CA2EBD7EEE8351414AC61A7B3FB754416D387049EF835141419AF3923FB75441E1FB727FF0835141419AF3923FB7544197314D32F1835141419AF3923FB754413179C520F28351412ED8B8B63FB75441491A5439F4835141419AF3923FB75441C4CBB833F58351412D6ECCAA3FB75441295C8F62F58351411F85EBF13FB7544152B81E15F6835141E17A140E40B75441F85AA910F7835141F591082240B754419A645CDBF7835141F6FBF42D40B7544153D8FBB1F8835141E40D936940B754415296A32AFD8351418717463441B754418FE7CEE3FE83514174BFF76341B754416B5FC6C7038451410E9D834642B754418775BC10088451418CF6997043B754410B1813830B84514130D4255344B754418C2296DF0B8451419677F88544B75441F92DFAA40D845141AA73B97C45B75441A27A10951284514163313F2A48B754417764EE12168451419669471A4AB75441EE63E04217845141A14C42C34AB75441AE47E1CA19845141B81E852B4CB75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>370176 - 2994765
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001F0000005C8FC295059450418FC2F5784C445541C3F528AC05945041B81E854B4844554166666696059450415C8FC2F53F4455418FC2F528F99350410AD7A3803844554133333313F1935041AE47E10A34445541E17A14CEED935041D7A3707D324455419A9999F9E99350417B14AEB730445541F6285C8FE3935041295C8F323B445541C3F5286CE19350419A9999293F44554152B81E15E093504185EB51284244554133333313DD93504133333393414455411F85EB61DC9350410AD7A37041445541B81E85CBD3935041000000C03F445541EC51B86ED193504185EB514846445541E17A146ED09350410AD7A3304A4455419A999999CF9350418FC2F5884E4455418FC2F568CE935041D7A3700D5444554152B81E45CD935041A4703D0A5B445541B81E857BD793504114AE47F15B445541A4703D0ADB9350411F85EB415C445541CDCCCC6CDA935041666666565E44554148E17A04DC93504152B81E955E4455415C8FC205E79350415C8FC245604455411F85EBC1FD9350418FC2F548644455410AD7A37001945041F6285CEF6444554152B81E6501945041D7A3705D5A44554185EB5128FF935041A4703D0A5A445541EC51B88EFF9350411F85EB015344554148E17AE4FF9350411F85EB214D445541D7A3707D059450417B14AEE74F4455415C8FC295059450418FC2F5784C445541
+</a>
+
+<b>
+010600000001000000010300000001000000130000008FB3769805945041EAB60CD64C4455414F79997D08945041C46E75074D445541293102AF089450416B4252A052445541C2515FE90794504156AC38A683445541E17A146E0A9450410AD7A32084445541EC51B8DE1394504185EB51F8854455419A9999F91E9450413D0AD783874455413D0AD7931F94504148E17A3480445541D7A3705D1F94504185EB5118794455410AD7A3F01E945041EC51B8AE73445541A4703DBA1E94504148E17AF46D445541295C8F321E9450416666669667445541E17A143E1D94504185EB51B85D445541EC51B85E1C945041A4703DEA56445541713D0A771B945041295C8F8250445541F6EF473A0A945041E9B60CD64C4455415C8FC295059450418FC2F5784C445541C6308F9105945041948EBC104D4455418FB3769805945041EAB60CD64C445541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>370176 - 3584761
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001F0000005C8FC295059450418FC2F5784C445541C3F528AC05945041B81E854B4844554166666696059450415C8FC2F53F4455418FC2F528F99350410AD7A3803844554133333313F1935041AE47E10A34445541E17A14CEED935041D7A3707D324455419A9999F9E99350417B14AEB730445541F6285C8FE3935041295C8F323B445541C3F5286CE19350419A9999293F44554152B81E15E093504185EB51284244554133333313DD93504133333393414455411F85EB61DC9350410AD7A37041445541B81E85CBD3935041000000C03F445541EC51B86ED193504185EB514846445541E17A146ED09350410AD7A3304A4455419A999999CF9350418FC2F5884E4455418FC2F568CE935041D7A3700D5444554152B81E45CD935041A4703D0A5B445541B81E857BD793504114AE47F15B445541A4703D0ADB9350411F85EB415C445541CDCCCC6CDA935041666666565E44554148E17A04DC93504152B81E955E4455415C8FC205E79350415C8FC245604455411F85EBC1FD9350418FC2F548644455410AD7A37001945041F6285CEF6444554152B81E6501945041D7A3705D5A44554185EB5128FF935041A4703D0A5A445541EC51B88EFF9350411F85EB015344554148E17AE4FF9350411F85EB214D445541D7A3707D059450417B14AEE74F4455415C8FC295059450418FC2F5784C445541
+</a>
+
+<b>
+010600000001000000010300000001000000130000008FB3769805945041EAB60CD64C4455414F79997D08945041C46E75074D445541293102AF089450416B4252A052445541C2515FE90794504156AC38A683445541E17A146E0A9450410AD7A32084445541EC51B8DE1394504185EB51F8854455419A9999F91E9450413D0AD783874455413D0AD7931F94504148E17A3480445541D7A3705D1F94504185EB5118794455410AD7A3F01E945041EC51B8AE73445541A4703DBA1E94504148E17AF46D445541295C8F321E9450416666669667445541E17A143E1D94504185EB51B85D445541EC51B85E1C945041A4703DEA56445541713D0A771B945041295C8F8250445541F6EF473A0A945041E9B60CD64C4455415C8FC295059450418FC2F5784C445541C6308F9105945041948EBC104D4455418FB3769805945041EAB60CD64C445541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>370351 - 3095133
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000A00000052B81EC592935041EC51B83EE33F55410AD7A3B093935041A4703D6AE33F5541D7A3708D97935041CDCCCC2CC13F55413D0AD7038F935041713D0A77BF3F5541B81E856B88935041295C8F22BD3F55415C8FC21585935041D7A370ADDA3F554148E17AA48A935041666666A6DF3F5541D7A3707D8C9350413D0AD713E13F55417B14AEE78E93504185EB5188E23F554152B81EC592935041EC51B83EE33F5541
+</a>
+
+<b>
+010600000001000000010300000001000000060000000AD7A3B093935041A4703D6AE33F5541F8884B2697935041BDCA26BFC43F5541ED5D5186979350418A9C5F2BC13F5541C60382EE9293504193FFDD3FC03F55414637CA188F935041418D5F91E23F55410AD7A3B093935041A4703D6AE33F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>370351 - 3445545
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000A00000052B81EC592935041EC51B83EE33F55410AD7A3B093935041A4703D6AE33F5541D7A3708D97935041CDCCCC2CC13F55413D0AD7038F935041713D0A77BF3F5541B81E856B88935041295C8F22BD3F55415C8FC21585935041D7A370ADDA3F554148E17AA48A935041666666A6DF3F5541D7A3707D8C9350413D0AD713E13F55417B14AEE78E93504185EB5188E23F554152B81EC592935041EC51B83EE33F5541
+</a>
+
+<b>
+010600000001000000010300000001000000060000000AD7A3B093935041A4703D6AE33F5541F8884B2697935041BDCA26BFC43F5541ED5D5186979350418A9C5F2BC13F5541C60382EE9293504193FFDD3FC03F55414637CA188F935041418D5F91E23F55410AD7A3B093935041A4703D6AE33F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>371340 - 2253555
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B000000000000A07FD65041D7A3709D0BAA5441A4703D9A8CD65041713D0AF710AA54415C8FC2E58ED650410AD7A39009AA5441295C8F0291D65041D7A3709D00AA54410AD7A3F07CD65041A4703D5AF7A95441C3F528CC58D650417B14AE47DEA95441EC51B86E53D6504185EB51A8E3A95441EC51B8CE4CD65041713D0A47EAA95441C3F5281C5BD65041A4703DBAF5A95441F6285C9F74D650415C8FC2E505AA5441000000A07FD65041D7A3709D0BAA5441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000000000404DD65041713D0A1701AA544185EB513859D65041A4703D9A0AAA54413D0AD7636FD650413D0AD7F317AA5441A4703DBA75D6504114AE47D11BAA5441D7A3700D86D65041AE47E1DA24AA5441F6285C9F88D65041E17A14CE1DAA5441A4703D9A8CD65041713D0AF710AA5441000000A07FD65041D7A3709D0BAA5441BBC347B374D65041D5971CF005AA54410766479F6AD6504175AC298FFFA95441CAFB7E7B68D65041B564F933FEA954411296F7045CD65041C576CB4DF6A95441C3F5281C5BD65041A4703DBAF5A95441EC51B8CE4CD65041713D0A47EAA9544148E17AF443D650410AD7A320F3A95441713D0AC746D650410AD7A380F8A95441C3F528CC4AD650413D0AD7D3FDA95441000000404DD65041713D0A1701AA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>371340 - 3519632
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B000000000000A07FD65041D7A3709D0BAA5441A4703D9A8CD65041713D0AF710AA54415C8FC2E58ED650410AD7A39009AA5441295C8F0291D65041D7A3709D00AA54410AD7A3F07CD65041A4703D5AF7A95441C3F528CC58D650417B14AE47DEA95441EC51B86E53D6504185EB51A8E3A95441EC51B8CE4CD65041713D0A47EAA95441C3F5281C5BD65041A4703DBAF5A95441F6285C9F74D650415C8FC2E505AA5441000000A07FD65041D7A3709D0BAA5441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000000000404DD65041713D0A1701AA544185EB513859D65041A4703D9A0AAA54413D0AD7636FD650413D0AD7F317AA5441A4703DBA75D6504114AE47D11BAA5441D7A3700D86D65041AE47E1DA24AA5441F6285C9F88D65041E17A14CE1DAA5441A4703D9A8CD65041713D0AF710AA5441000000A07FD65041D7A3709D0BAA5441BBC347B374D65041D5971CF005AA54410766479F6AD6504175AC298FFFA95441CAFB7E7B68D65041B564F933FEA954411296F7045CD65041C576CB4DF6A95441C3F5281C5BD65041A4703DBAF5A95441EC51B8CE4CD65041713D0A47EAA9544148E17AF443D650410AD7A320F3A95441713D0AC746D650410AD7A380F8A95441C3F528CC4AD650413D0AD7D3FDA95441000000404DD65041713D0A1701AA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>371340 - 44245
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B000000000000A07FD65041D7A3709D0BAA5441A4703D9A8CD65041713D0AF710AA54415C8FC2E58ED650410AD7A39009AA5441295C8F0291D65041D7A3709D00AA54410AD7A3F07CD65041A4703D5AF7A95441C3F528CC58D650417B14AE47DEA95441EC51B86E53D6504185EB51A8E3A95441EC51B8CE4CD65041713D0A47EAA95441C3F5281C5BD65041A4703DBAF5A95441F6285C9F74D650415C8FC2E505AA5441000000A07FD65041D7A3709D0BAA5441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000000000A07FD65041D7A3709D0BAA5441BBC347B374D65041D5971CF005AA54410766479F6AD6504175AC298FFFA95441CAFB7E7B68D65041B564F933FEA954411296F7045CD65041C576CB4DF6A95441C3F5281C5BD65041A4703DBAF5A95441000000B05AD6504166666626F6A95441295C8F7268D650418FC2F538FFA95441295C8F6274D650419A99996906AA5441000000A07FD65041D7A3709D0BAA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>371340 - 80706
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B000000000000A07FD65041D7A3709D0BAA5441A4703D9A8CD65041713D0AF710AA54415C8FC2E58ED650410AD7A39009AA5441295C8F0291D65041D7A3709D00AA54410AD7A3F07CD65041A4703D5AF7A95441C3F528CC58D650417B14AE47DEA95441EC51B86E53D6504185EB51A8E3A95441EC51B8CE4CD65041713D0A47EAA95441C3F5281C5BD65041A4703DBAF5A95441F6285C9F74D650415C8FC2E505AA5441000000A07FD65041D7A3709D0BAA5441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000000000A07FD65041D7A3709D0BAA5441BBC347B374D65041D5971CF005AA54410766479F6AD6504175AC298FFFA95441CAFB7E7B68D65041B564F933FEA954411296F7045CD65041C576CB4DF6A95441C3F5281C5BD65041A4703DBAF5A95441000000B05AD6504166666626F6A95441295C8F7268D650418FC2F538FFA95441295C8F6274D650419A99996906AA5441000000A07FD65041D7A3709D0BAA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>371442 - 386843
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001A000000295C8FD2D4C750419A999919D09E544185EB5108D9C750411F85EB51D69E544133333353D9C750413D0AD7A3D49E54415C8FC215DDC7504185EB51C8D99E5441C3F5281CE1C750417B14AE57DE9E5441EC51B8AEE7C75041000000D0E39E5441AE47E13AEBC75041C3F5281CE69E544114AE47A1F3C75041CDCCCC8CEB9E5441EC51B89E08C85041EC51B83EF39E544114AE47210BC850417B14AE87ED9E544148E17A140AC8504148E17AD4E99E5441C3F5282C0BC8504100000090E49E54411F85EBD103C8504152B81E95E19E54419A9999B902C850411F85EB81DD9E5441C3F5286C03C85041B81E85BBD99E5441666666B604C85041333333A3D89E5441CDCCCCAC0AC85041295C8F22D99E5441F6285C3F0FC850417B14AE07DA9E5441713D0A2713C850418FC2F5F8D89E54413D0AD7E30EC8504152B81E35D79E54417B14AE27FCC7504100000050D39E544166666666EAC75041C3F528DCCF9E5441AE47E15AE1C75041295C8FC2CC9E5441EC51B87EDBC75041000000C0CA9E5441E17A148ECBC750415C8FC285BF9E5441295C8FD2D4C750419A999919D09E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000C0000008DCFE3B4F3C750411B32FD93EB9E5441512111C802C85041CE85C61AF19E5441B55B6F9108C850414884D939F39E5441EF062A9A07C85041E8A8DBF9EE9E5441BA4AB9E107C85041CE9410C3EA9E544142DA960708C85041120D5A3FE89E5441143FC8B9FEC750416642DD23E79E5441B510ECC9EFC7504102C38BF8E29E544143629208EDC75041A6F0BF22E59E54416A5447D6EBC75041BB92CC80E69E54413C76A334F3C75041E9137146EB9E54418DCFE3B4F3C750411B32FD93EB9E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>371457 - 316448
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000007B000000B81E856B29E0504152B81E7564A55441CDCCCCFC29E05041B81E85CB5DA5544185EB51C828E050415C8FC2D558A55441CDCCCC3C25E0504152B81EC54EA554410AD7A33022E05041713D0AE746A5544148E17A141FE05041CDCCCC1C3FA554413D0AD7931AE05041C3F5288C3BA554413333338315E050413333336336A55441333333A313E05041AE47E10A34A55441AE47E16A12E05041E17A145E31A55441E17A140E12E05041EC51B88E2DA55441000000E011E0504152B81EF52AA554413D0AD76311E05041D7A3701D28A55441EC51B8BE0EE05041AE47E18A27A55441E17A146E0CE050417B14AEE72CA55441D7A370CD0BE05041E17A141E2FA55441A4703D6A0BE050413D0AD76332A55441000000A00BE0504185EB51F835A55441B81E85BB0CE05041A4703D1A3AA55441C3F528DC06E05041CDCCCC4C3CA55441CDCCCC9C05E050417B14AEB73CA55441EC51B88E08E05041EC51B87E43A554419A9999590CE0504148E17A1443A55441333333F30CE0504148E17A4444A5544185EB51D808E05041E17A14BE44A55441EC51B8EE0BE05041713D0A3753A5544148E17A940DE050415C8FC2155DA55441F6285CFF0DE05041EC51B8BE61A5544185EB516809E05041295C8F1262A55441B81E851B09E050415C8FC2E55DA554417B14AE2705E05041713D0A1755A55441CDCCCC6C02E050413D0AD71346A554411F85EB91FDDF5041E17A141E47A554411F85EB91FCDF5041CDCCCC9C48A55441C3F5287C01E05041D7A3701D5FA55441EC51B8CE02E05041C3F5285C68A554418FC2F59804E0504114AE474168A554411F85EB6103E05041AE47E1CA71A554415C8FC2C503E05041666666A674A55441EC51B8BE01E05041CDCCCC5C80A55441AE47E14A00E050417B14AEF78BA55441C3F5286CFFDF5041B81E854B91A55441EC51B82EFFDF5041713D0AA792A554417B14AEC7FBDF5041F6285C9F99A55441F6285CAFF8DF5041B81E85EB9DA55441333333B3F3DF50419A999919A3A5544152B81EF5E8DF5041B81E85DBABA554418FC2F5D8E0DF50417B14AE77B2A55441C3F5283CE3DF5041F6285C6FB5A55441000000B0E1DF50415C8FC235B9A5544185EB5198D8DF50419A9999D9C3A55441CDCCCC1CCEDF5041AE47E10ACBA55441B81E85FBCCDF5041B81E85BBCBA5544185EB51E8C6DF5041A4703DEAC8A55441B81E85CBC5DF5041713D0A27C8A554418FC2F568C0DF504185EB5178C4A5544100000070B6DF504185EB5128BBA55441D7A3703DAFDF50411F85EB81B2A5544152B81E75AEDF50410AD7A390B1A55441E17A142EADDF504185EB5178B2A554410AD7A360B0DF504100000010B8A5544152B81E35ABDF5041F6285CBFBAA5544152B81EB5A7DF5041D7A3709DBCA554418FC2F598A6DF50413D0AD7C3C0A55441AE47E1AAAADF5041333333F3C6A55441D7A3701DAEDF5041D7A370CDCAA55441295C8F02C0DF5041333333A3DBA55441E17A14FEBFDF504152B81E45DDA55441000000F0C4DF50410AD7A360DEA554411F85EBD1CDDF504100000000E5A55441C3F5282CD4DF5041A4703D5AE7A554410AD7A300D9DF5041666666A6E7A55441666666A6DDDF50413D0AD703E6A55441CDCCCC6CE5DF5041F6285C4FE1A55441C3F5288CEADF5041C3F5282CE2A55441295C8FB200E05041EC51B88ECAA55441D7A370DDEADF5041EC51B83ED9A5544152B81EC5E1DF50415C8FC2C5DDA5544152B81EE5DCDF5041E17A14DEDFA554419A9999F9D8DF50418FC2F538E1A554411F85EB01D4DF5041EC51B8FEE1A55441713D0AD7D0DF5041713D0A07DFA55441A4703DEAD0DF50417B14AEC7DDA5544152B81E95CFDF50418FC2F568D8A55441EC51B87ED0DF50413D0AD723D7A55441333333F3D0DF50411F85EB81D6A55441CDCCCC5CD7DF50419A999979D4A554411F85EBC1DADF5041EC51B8FED2A55441000000F0DDDF5041000000C0D0A5544133333313E3DF5041C3F5286CCAA55441295C8FF2EADF50413D0AD793C2A55441EC51B82EFADF504185EB5148B6A554417B14AEA7F8DF50413D0AD7D3B3A5544152B81EC5F9DF504133333343B3A55441713D0AC704E050410AD7A390ACA55441666666460CE05041AE47E18AA7A554415C8FC2C513E050413D0AD753A6A55441295C8FA213E050410AD7A3F0A1A55441EC51B8DE10E05041D7A3702D99A554410AD7A3D010E05041EC51B8DE90A554413D0AD77312E05041A4703D0A88A55441CDCCCC9C1CE05041D7A3705D94A55441E17A14FE1DE05041333333439AA554417B14AE471DE050418FC2F5E8AFA554410AD7A3301BE050413D0AD713B6A55441B81E85CB18E05041C3F5282CBAA55441666666160EE0504100000030C3A554410AD7A38007E0504166666646C9A55441C3F5281C09E05041295C8F82C9A55441C3F5286C0AE0504148E17A54C8A55441AE47E1BA0FE050415C8FC2B5C5A5544114AE47610FE05041B81E852BC5A55441EC51B8CE1BE05041A4703DBAB9A554419A9999091DE0504114AE4741B7A55441A4703D9A1EE05041D7A370FDAFA554418FC2F5881FE050418FC2F5389AA55441666666861EE050417B14AE0794A554419A99998922E05041EC51B85E92A5544148E17A3421E05041EC51B89E80A55441C3F5283C22E050418FC2F5A880A554413D0AD78323E050417B14AE5778A55441D7A370ED25E05041333333736EA55441B81E856B29E0504152B81E7564A55441
+</a>
+
+<b>
+0106000000010000000103000000010000004A000000DC68AEA7F8DF5041DB91D7D3B3A5544152B81EC5F9DF504133333343B3A554416EC37FC5FCDF50415F41AE6FB1A55441280C0AC704E05041D921A390ACA55441370A38E908E0504164CDC6CBA9A55441666666460CE05041AE47E18AA7A55441E1E5029E10E05041CD29BDD6A6A554417688C2C513E05041252ED653A6A55441295C8FA213E050410AD7A3F0A1A55441EC51B8DE10E05041D7A3702D99A55441F0E673D910E05041E63ED81196A55441F457A3D010E05041E9FAB8DE90A55441ED48D67312E0504182DE3E0A88A554417E10BCFB1BE050411B990D9A93A5544179021BF01AE0504177D59BC390A55441266714E317E05041E2F2092486A554414A40B2ED15E05041787AB54786A55441A64416AF14E05041070F02BC83A554419B4948E10BE05041EF8DC2157DA55441018FE28A0AE05041EE1B29AC8EA554412D60E14A00E050419718AEF78BA554413D4B296CFFDF5041B1A5854B91A55441AD9B0031FFDF5041465C219A92A55441EC51B82EFFDF5041713D0AA792A55441F4B94508FFDF504149BBCCF592A554417680AFC7FBDF504109965B9F99A554411122A9F7F9DF5041BE29AA239CA55441F6285CAFF8DF5041B81E85EB9DA5544184ECBCD0F4DF50419A7CE4F0A1A55441A11E32B3F3DF504187F09A19A3A554416389FC3BF1DF50411D872D1CA5A5544152B81EF5E8DF5041B81E85DBABA5544140D4723AE5DF504181519EE5AEA554419AA3F6D8E0DF5041322CAF77B2A55441B8C098F3E0DF5041BB9FC998B2A5544175F43F10E1DF5041E9C766BCB2A55441A3EC4B89E1DF5041C1B7DA52B3A55441CDE8283CE3DF5041F0BC5A6FB5A55441000000B0E1DF50415C8FC235B9A5544185EB5198D8DF50419A9999D9C3A5544162D47BAFD3DF5041445BF837C7A554412FC1CC1CCEDF5041A7ABE20ACBA554419CF484FBCCDF50415F0686BBCBA554410EBAB4CAC7DF504189113C53C9A5544185EB51E8C6DF5041A4703DEAC8A55441B81E85CBC5DF5041713D0A27C8A55441EE46CFEAC2DF50410FBC3E2FC6A554416372F468C0DF504113CE5178C4A55441D9714C41BADF50419864F0B8BEA5544100000070B6DF504185EB5128BBA55441F81AF510B4DF5041AAC2C54EB8A55441C51A703DAFDF5041CDE2EC81B2A5544108B51D75AEDF5041B98EA490B1A55441E73F5872AEDF5041D5259B92B1A55441609D296BAEDF504101AAB197B1A55441AC518A5AAEDF5041C92D78A3B1A55441B5DBAB53AEDF50410DE655A8B1A554417EE9BFE7ADDF504154F2C9F4B1A554419FB9142EADDF504142595278B2A55441B52C5FDCADDF5041530729A9B3A554415FD3DD0AAFDF50412FFC3ABAB5A55441013AA560B0DF5041411D0110B8A55441634D1D35ABDF50413A615DBFBAA554416CDC709DB7DF50415C5D4871C8A55441DED5FE8FBBDF5041BBC58FA2CBA5544175D7297CC1DF50412A6C4801CFA55441BC838E02C7DF5041A0C7A220D2A5544191D3D5D3CEDF5041126D0180DBA5544162288E02CDDF5041B2C333B3D6A55441DB2BB74ED9DF5041C68BA410D1A554415521D6D3E1DF5041CC48B77EC8A55441AEED5028EBDF50413581E0BABDA554410EA85248F5DF50416BBAFFBFB5A55441DC68AEA7F8DF5041DB91D7D3B3A55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>371826 - 232923
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B000000F6285C4F27D65041C3F528BC7EAA5441D7A3707D26D650410AD7A35080AA5441713D0A3728D65041EC51B8CE83AA544152B81E752AD650417B14AE2787AA544152B81EF52AD65041000000C087AA54417B14AEC74DD6504185EB51F876AA5441AE47E11A4BD65041333333F372AA5441CDCCCCFC46D650413D0AD7436FAA54418FC2F5F844D6504185EB51E86BAA54413D0AD7133FD65041C3F528EC76AA5441F6285C4F27D65041C3F528BC7EAA5441
+</a>
+
+<b>
+0106000000010000000103000000010000001100000042D7170345D65041B55034F96BAA54415FE5F5F844D650418C2E52E86BAA54411643203D43D650413266A3256FAA54413D0AD7133FD65041C3F528EC76AA5441F6285C4F27D65041C3F528BC7EAA5441D7A3707D26D650410AD7A35080AA5441D9A1339D27D65041E8CE409782AA544154A40A3728D650414304B7CE83AA54414CFA1E752AD650412F6FAD2787AA544152B81EF52AD65041000000C087AA54414D0F1AC64DD650412F2502F976AA54415472ADC74DD650413F3252F876AA5441784424F64BD65041CB0EB53C74AA5441735DE11A4BD65041EA5333F372AA5441242880EE4AD6504170717BCB72AA5441CDCCCCFC46D650413D0AD7436FAA544142D7170345D65041B55034F96BAA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>777984 - 5222569
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000020000002900000085EB51D8AA5E51419A9999E9E984544152B81EC5B25E514114AE4761E6845441E17A14EEBE5E5141F6285C7FE1845441C3F528CCCB5E51419A9999B9DB845441A4703DFACD5E514185EB51E8DA845441440E3FDEE75E5141AAD0586FCB8454413063D51BCB5E5141CFA0D25A98845441DCE44966C85E51413DB3D2ED9384544134527CBCC65E514123CA28D190845441702136F7C45E514108E17EB48D8454413E780DC4C25E5141EA19DB92898454410DCFE490C05E5141508B98F5848454413393EEB3BC5E51413DEA85DB7C8454410AD7A300965E5141295C8F028D845441D7A3707D915E514114AE47218F845441295C8FF2875E5141E17A145E938454418FC2F528835E5141C3F5282C9584544152B81E857B5E51416666663696845441000000B0775E5141295C8FF296845441713D0A376F5E5141E17A14CE9F84544114AE4781685E5141A4703DFAA5845441F6285CEF645E514100000030A9845441CDCCCCDC615E514133333353AD845441F6285C1F615E5141E17A141EB08454419A9999E95F5E5141295C8FE2B4845441295C8F425F5E5141D7A370EDB78454413D0AD7D35D5E5141295C8F92BC845441AE47E18A5D5E514152B81E85BD8454413D0AD7E35C5E5141333333B3BF845441D7A3706D5B5E514114AE47E1C2845441C3F528DC585E514185EB5178C884544114AE4741565E51411F85EB51D1845441333333E3525E51419A9999A9E2845441666666D6525E51410AD7A3A0E4845441713D0AA76F5E5141E17A14BEE38454419A9999598D5E514148E17A44E284544114AE47A18E5E5141333333D3E7845441C3F528FC9E5E5141A4703D1AEF84544114AE4761A25E514100000050EE84544185EB5178A85E5141A4703D2AEB84544185EB51D8AA5E51419A9999E9E9845441060000008FC2F528A85E51415C8FC255C98454411F85EB51A95E51417B14AED7C884544133333393A95E5141295C8FC2C8845441E17A144EAA5E5141D7A3702DCA8454413D0AD7E3A85E514185EB51E8CA8454418FC2F528A85E51415C8FC255C9845441
+</a>
+
+<b>
+010600000001000000010300000001000000580000000FF00C1FE25E51410CEE8CDECE84544166666696EB5E5141B81E857BC98454413D0AD793EE5E514133333383C4845441333333B3F75E51417B14AE37C18454410AD7A350FE5E514114AE47B1BF845441295C8F32FF5E51417B14AE47BF84544148E17AF4FF5E51417B14AEB7BE8454411F85EBA1005F51410AD7A3A0BE8454419A9999190E5F5141D7A370ADB7845441AE47E1BA155F514166666616B3845441EC51B8BE1C5F514100000060AF8454410AD7A3C0215F51415C8FC2A5AC84544185EB51A8235F5141C3F5289CAB845441666666D62A5F5141666666D6A6845441000000702A5F5141B81E85DBA584544152B81E45215F5141295C8F829284544148E17A741F5F5141EC51B88E8C84544114AE47311A5F514148E17A148384544166666666195F51410AD7A3D08184544152B81E25165F51410AD7A3A07C84544114AE47D1145F5141E17A144E7A8454413D0AD7C3125F5141713D0AB776845441713D0A370E5F5141E17A145E6F84544185EB5168065F51418FC2F5986484544100000020035F5141D7A3700D61845441CDCCCCEC015F5141F6285C0F61845441B81E856BF35E51417B14AEE766845441713D0A57E05E51410AD7A3506E8454410AD7A330E15E5141D7A370CD72845441713D0A97E25E5141666666F678845441AE47E1FAE25E51419A9999B97C845441000000C0E25E5141B81E85CB7D8454410AD7A380E25E51410AD7A3007F845441000000B0E15E51410AD7A34081845441A4703D8ADF5E51417B14AE2783845441A4703D7ADC5E5141295C8FB283845441AE47E1DACF5E5141713D0A07838454410AD7A340CE5E5141CDCCCC7C828454418FC2F5A8CD5E5141713D0A4781845441713D0AF7CC5E5141F6285C8F7D8454411F85EBF1CC5E5141EC51B82E7D845441666666A6CC5E514114AE479176845441295C8FF2CB5E51418FC2F5C876845441AE47E1AACB5E514148E17A0477845441A4703D2AC85E51413D0AD70378845441F6285C3FC45E5141B81E85AB79845441DFF4532FBE5E5141DF6618057C8454413EC410BBBC5E51418E3654B67C845441A03A50AEBC5E5141834210D17C84544140A071B3BC5E5141B710BADB7C8454413193EEB3BC5E51413AEA85DB7C8454415852C2F4BC5E51413BE27A637D845441AFDBD859BD5E51414EA595357E8454417428034CBE5E5141EE6F182E8084544109F38544C05E5141A177344E848454414797F3C3C15E514132226C7587845441F9621D3DC25E5141D0C7D0778884544143780DC4C25E5141ED19DB9289845441466C89ABC35E5141212F98458B8454410FD5B527C55E5141DDE9F1F28D845441327DD08BC65E5141D8B09D7B9084544136527CBCC65E514124CA28D190845441BDD08DFBC65E5141127D284791845441CE874A52C85E5141B5EF7AB7938454413128FE5AC95E51412A9B947D95845441FEE13E20CA5E51417ADCD1BF96845441C8EDB48ACA5E514110D1815E97845441634BBA05CB5E514148BBB536988454413463D51BCB5E5141CCA0D25A98845441A0BE68AECB5E51413C97285F998454417D6F1BA1CD5E5141550298CB9C845441BB44B734CF5E514176E0B99E9F845441F8E824B4D05E514149542246A28454414EE5FEFCD35E5141886A6511A884544194149AB5D55E51410EE46E24AB845441C92DDAFBD65E5141C26A4D6AAD845441489600CCD85E51418D4E10A9B084544181F35A92D95E51415986F10AB2845441538B0D8ADB5E514117129289B5845441C0EA46DEDD5E51415D0F8B9BB98454416E895E50DF5E5141A625DD3DBC845441F7E8B297DF5E51410BC08DBCBC8454414A05D99CE15E51414C41CA44C08454417A034641E35E5141B258772FC3845441E1C56B36E55E514185C767A7C6845441D46A02F2E75E514195A9978ACB8454415FA1754EE25E5141FCE637C2CE8454410FF00C1FE25E51410CEE8CDECE845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>372269 - 2887542
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000250000005C8FC2556ED650413D0AD7D318AA5441295C8F926BD65041AE47E1AA16AA54411F85EB7161D650413333334311AA5441AE47E10A5CD6504148E17A240EAA54413D0AD7A357D650419A9999190BAA5441EC51B88E53D65041A4703DFA07AA544152B81E654DD65041333333F302AA54419A9999294ED650411F85EB910AAA544148E17AF451D65041E17A142E0DAA544114AE475155D650418FC2F5380FAA54413D0AD7A359D65041D7A370DD11AA5441CDCCCCEC60D65041B81E851B16AA544148E17A5469D65041EC51B8DE1AAA54418FC2F5F86CD650415C8FC2451DAA5441713D0A3770D650419A9999E91EAA544114AE476175D6504114AE47C121AA5441713D0A7780D65041333333A326AA5441CDCCCC4C78D65041B81E85CB23AA54415C8FC2556FD65041AE47E1CA1FAA5441A4703DDA6AD65041000000501DAA544148E17A5468D65041713D0A971BAA544148E17AC464D650413D0AD76319AA544114AE470160D65041F6285CBF16AA5441CDCCCC5C5BD65041C3F528FC13AA5441713D0AD756D65041D7A3704D11AA5441CDCCCCCC4ED650419A9999790CAA54413333339351D65041A4703DEA14AA5441E17A143E57D65041CDCCCC9C18AA54411F85EB1169D650417B14AE6722AA544148E17AE47DD6504114AE47412CAA54419A99994982D65041E17A144E2EAA54419A99998984D650410000008028AA5441D7A3700D86D65041AE47E1DA24AA54419A99993980D6504114AE47A121AA5441C3F5286C79D650411F85EBA11EAA54416666665673D650411F85EB111CAA54415C8FC2556ED650413D0AD7D318AA5441
+</a>
+
+<b>
+010600000001000000010300000001000000130000003327FE6669D65041FC5FEC8F22AA54411F85EB1169D650417B14AE6722AA544141DAF6C361D650419C5287641EAA544179C107EB5FD6504184F5BF601DAA5441E17A143E57D65041CDCCCC9C18AA54411F85EB0157D65041D7A370ED18AA5441A4703D6A56D650419A9999B919AA54417B14AE8755D650418FC2F5D81AAA544148E17A445BD650413D0AD7C320AA5441D7A3709D5FD6504152B81E8524AA54415C8FC2F56BD65041666666062BAA5441E17A14EE73D650415C8FC23530AA5441295C8FE279D65041D7A3705D34AA544148E17AE47DD6504114AE47412CAA54417B14AE8775D65041CDCCCC4C28AA54418CB37FC16DD6504197CD229F24AA54411BF24E136CD6504167D6A2D323AA5441A95FF09C6AD6504131C98A2223AA54413327FE6669D65041FC5FEC8F22AA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>372269 - 3311764
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000250000005C8FC2556ED650413D0AD7D318AA5441295C8F926BD65041AE47E1AA16AA54411F85EB7161D650413333334311AA5441AE47E10A5CD6504148E17A240EAA54413D0AD7A357D650419A9999190BAA5441EC51B88E53D65041A4703DFA07AA544152B81E654DD65041333333F302AA54419A9999294ED650411F85EB910AAA544148E17AF451D65041E17A142E0DAA544114AE475155D650418FC2F5380FAA54413D0AD7A359D65041D7A370DD11AA5441CDCCCCEC60D65041B81E851B16AA544148E17A5469D65041EC51B8DE1AAA54418FC2F5F86CD650415C8FC2451DAA5441713D0A3770D650419A9999E91EAA544114AE476175D6504114AE47C121AA5441713D0A7780D65041333333A326AA5441CDCCCC4C78D65041B81E85CB23AA54415C8FC2556FD65041AE47E1CA1FAA5441A4703DDA6AD65041000000501DAA544148E17A5468D65041713D0A971BAA544148E17AC464D650413D0AD76319AA544114AE470160D65041F6285CBF16AA5441CDCCCC5C5BD65041C3F528FC13AA5441713D0AD756D65041D7A3704D11AA5441CDCCCCCC4ED650419A9999790CAA54413333339351D65041A4703DEA14AA5441E17A143E57D65041CDCCCC9C18AA54411F85EB1169D650417B14AE6722AA544148E17AE47DD6504114AE47412CAA54419A99994982D65041E17A144E2EAA54419A99998984D650410000008028AA5441D7A3700D86D65041AE47E1DA24AA54419A99993980D6504114AE47A121AA5441C3F5286C79D650411F85EBA11EAA54416666665673D650411F85EB111CAA54415C8FC2556ED650413D0AD7D318AA5441
+</a>
+
+<b>
+010600000001000000010300000001000000130000003327FE6669D65041FC5FEC8F22AA54411F85EB1169D650417B14AE6722AA544141DAF6C361D650419C5287641EAA544179C107EB5FD6504184F5BF601DAA5441E17A143E57D65041CDCCCC9C18AA54411F85EB0157D65041D7A370ED18AA5441A4703D6A56D650419A9999B919AA54417B14AE8755D650418FC2F5D81AAA544148E17A445BD650413D0AD7C320AA5441D7A3709D5FD6504152B81E8524AA54415C8FC2F56BD65041666666062BAA5441E17A14EE73D650415C8FC23530AA5441295C8FE279D65041D7A3705D34AA544148E17AE47DD6504114AE47412CAA54417B14AE8775D65041CDCCCC4C28AA54418CB37FC16DD6504197CD229F24AA54411BF24E136CD6504167D6A2D323AA5441A95FF09C6AD6504131C98A2223AA54413327FE6669D65041FC5FEC8F22AA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>417296 - 1382174
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000150000000AD7A3E01330514133333303A91055419A9999D901305141A4703DDAA71055419A9999690030514114AE4701A7105541CDCCCC0CFE2F5141A4703D2AAA105541A4703DCAFD2F514185EB51B8AB105541B81E857BFE2F514185EB51D8AC105541B81E855B03305141713D0AE7AE105541F6285C4F073051419A9999F9B010554114AE47410F30514148E17A24B51055417B14AE8712305141EC51B8CEB6105541666666B61E3051418FC2F5F8B7105541333333232D305141713D0A47BB105541CDCCCC4C293051419A999999B6105541F6285CAF24305141EC51B86EB21055415C8FC2B52030514148E17A64AF10554148E17AE41E30514114AE4771B0105541AE47E15A1E30514166666666AF1055419A9999F91E3051413D0AD713AF1055417B14AE471F305141EC51B86EAE105541A4703D6A19305141C3F5284CAB1055410AD7A3E01330514133333303A9105541
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000B2B0AEB61B3051417A73F67FAC105541CFC476611930514123E48948AB105541A192FEEF17305141E79014B0AA105541432301ED13305141F7544D08A91055413097973A09305141CC12CA53A8105541EC584E8403305141BC0730EBA71055415B77D1DC01305141DE7372DAA7105541F5A5196C00305141BD48A502A71055412789210BFE2F514113CF3834AA105541E1D0C1D2FD2F51410A0748B0AB105541876F7F77FE2F5141C925C9D1AC105541F082EFF40230514184ED08BAAE105541480CFE5F04305141117F9E6FAF105541D09700F10D30514106701674B41055416A3A388112305141BD816FCBB6105541F0C36FA71A305141C8E09A95B7105541BED265CB1E30514141EFC4FDB7105541DDA482AB27305141AB395906BA105541E5FD6C162D305141FC8CDC39BB105541867B6DEE293051410D549B5EB7105541D4D3F8E92830514105E05A40B6105541C8C3728E243051414FBF8C55B2105541A52181B52130514194741128B0105541919E2495203051415353954EAF105541988AC9D61E305141BD346032AE105541B2B0AEB61B3051417A73F67FAC105541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>372624 - 392552
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000A00000048E17A9476D050411F85EB7149935441CDCCCCAC79D0504152B81EE54F935441295C8FE279D0504148E17A54509354418FC2F55880D050417B14AEA75D9354415C8FC22584D05041D7A3707D65935441713D0AE797D05041C3F5288C6A935441000000A09AD050411F85EB6164935441713D0A679FD05041D7A3708D599354415C8FC2A5A1D0504185EB51785493544148E17A9476D050411F85EB7149935441
+</a>
+
+<b>
+01060000000100000001030000000100000009000000000000A09AD050411F85EB6164935441713D0A679FD05041D7A3708D599354415C8FC2A5A1D0504185EB517854935441A7FD96499ED05041E93C1F9C5393544173D1D6FC94D050410AD01FCD699354410A87B3FD94D05041135158CD69935441B25AEC4695D05041783317E069935441713D0AE797D05041C3F5288C6A935441000000A09AD050411F85EB6164935441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>373242 - 234899
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000004400000085EB511872E45041D7A370ED66A054419A99997974E4504148E17A145FA054418FC2F51875E45041EC51B8BE59A054411F85EB5176E45041000000005AA054410AD7A3307BE45041F6285CCF5BA054419A9999697FE450415C8FC2B55DA05441EC51B8AE83E450415C8FC2D560A054413D0AD7238AE450415C8FC25563A054418FC2F50894E450415C8FC22566A05441295C8F129DE4504185EB516868A05441E17A142EA4E45041000000E06BA054413D0AD7D3A7E45041000000B06EA05441E17A140EABE45041AE47E14A71A054413D0AD703AFE45041AE47E11A74A0544100000020AFE45041D7A370AD78A05441713D0A87B8E45041333333237BA05441B81E85FBBBE450415C8FC2857BA05441C3F5287CCBE45041713D0A577DA05441AE47E12AD6E45041E17A144E7EA054418FC2F5E8DFE450410AD7A37080A05441EC51B86EEBE450410000005085A0544166666606EBE450411F85EB8181A0544185EB51C8E3E45041C3F5280C68A05441F6285C2FE3E450415C8FC2C560A05441B81E853BCBE45041333333A361A054413D0AD703C4E4504148E17A7461A05441AE47E1BAC2E450415C8FC23561A05441333333F3ADE45041AE47E1CA5CA0544114AE4701A6E45041E17A14BE5AA05441E17A14FE8DE45041D7A3708D4CA0544114AE477188E45041A4703D1A4AA05441333333F388E450417B14AE0748A05441AE47E1FA8AE45041295C8FE23FA05441EC51B85E80E4504185EB51383FA054411F85EBA179E45041B81E853B41A054417B14AE8777E450413D0AD7F340A05441CDCCCC9C6FE45041E17A144E3EA0544185EB51D873E450417B14AE3743A0544114AE47B165E45041F6285C0F4BA05441C3F5280C5CE45041C3F5282C53A0544114AE472158E4504148E17A4451A05441B81E85EB56E450413D0AD7D358A05441EC51B8DE4FE45041295C8F1266A054417B14AEE74BE45041AE47E15A70A054417B14AE374CE45041F6285CBF74A0544185EB51A84DE4504185EB515879A05441713D0AE74FE450417B14AE677CA05441CDCCCC5C52E45041EC51B83E7EA05441B81E854B54E45041EC51B82E72A054417B14AE5759E450413333331374A05441EC51B89E5FE4504152B81E057CA054415C8FC2E562E45041C3F5285C7DA05441CDCCCC1C62E4504152B81E8582A05441F6285C2F68E4504152B81E7583A05441D7A3705D69E4504148E17A9486A05441295C8F8275E45041AE47E1BA87A054418FC2F54878E4504152B81E0588A054416666667678E45041666666867DA05441AE47E11A67E450410000002074A054410000004064E45041713D0AB773A054418FC2F5A85EE4504148E17AD470A054413D0AD7835AE450415C8FC2B569A05441666666665DE45041295C8FC263A054413D0AD71363E45041EC51B86E5FA054415C8FC29567E45041D7A370CD5EA054419A9999E96BE45041713D0A2760A05441D7A3706D6FE45041F6285C4F63A0544185EB511872E45041D7A370ED66A05441
+</a>
+
+<b>
+010600000001000000010300000001000000630000003D0AD7835AE450415C8FC2B569A05441699D65585DE450414B9770DF63A05441666666665DE45041295C8FC263A054416FB9F2EF5DE45041E5D8B75963A054417F30441761E450419B585DF260A054413D0AD71363E45041EC51B86E5FA054415C8FC29567E45041D7A370CD5EA054419A9999E96BE45041713D0A2760A05441D7A3706D6FE45041F6285C4F63A0544185EB511872E45041D7A370ED66A054411AAAF4B472E45041F24BF8E864A054419A99997974E4504148E17A145FA0544149C5A1D574E450412098BDFF5BA054418FC2F51875E45041EC51B8BE59A054411F85EB5176E45041000000005AA054410AD7A3307BE45041F6285CCF5BA05441295C8F129DE4504185EB516868A05441295C8F02B1E4504152B81ED56FA05441B32B6B93AFE45041B173CB0A74A0544100000020AFE45041D7A370AD78A05441953B8645AFE4504170F141B778A05441A61A12FBB5E450416FA59F787AA05441351578B2B8E4504160170A287BA05441B81E85FBBBE450415C8FC2857BA0544107219855BFE450416F225CEA7BA05441C3F5287CCBE45041713D0A577DA05441AE47E12AD6E45041E17A144E7EA05441C6D8BA69DAE450413066413C7FA054418FC2F5E8DFE450410AD7A37080A05441EC51B86EEBE450410000005085A0544166666606EBE450411F85EB8181A0544185EB51C8E3E45041C3F5280C68A05441F6285C2FE3E450415C8FC2C560A05441B62AE619DEE45041EE84C2F460A05441B81E853BCBE45041333333A361A054417A77E425CBE450419533A7A261A054413D0AD703C4E4504148E17A7461A05441AE47E1BAC2E450415C8FC23561A054411C2A6942B8E45041283FEFFB5EA05441333333F3ADE45041AE47E1CA5CA054416C82E14CA9E45041EECBBF975BA0544114AE4701A6E45041E17A14BE5AA05441C78D2DB3A5E45041531BED8F5AA05441295580319AE450411B9633C353A05441DAC5C75D96E4504147383E8051A05441C6EA999E8FE45041DC7994834DA05441E17A14FE8DE45041D7A3708D4CA0544114AE477188E45041A4703D1A4AA05441328C207588E45041297E870A4AA05441333333F388E450417B14AE0748A05441AE47E1FA8AE45041295C8FE23FA05441EC51B85E80E4504185EB51383FA054411F85EBA179E45041B81E853B41A054417B14AE8777E450413D0AD7F340A05441CDCCCC9C6FE45041E17A144E3EA0544185EB51D873E450417B14AE3743A0544114AE47B165E45041F6285C0F4BA05441C3F5280C5CE45041C3F5282C53A05441107FB04458E450411DEAB25551A05441D332773C58E45041BC26B35151A0544114AE472158E4504148E17A4451A0544177EEAD7C57E4504121BFE44855A05441B81E85EB56E450413D0AD7D358A05441BD2667C655E45041C2A086FA5AA05441CC58CE3053E45041CEC37BD55FA05441EC51B8DE4FE45041295C8F1266A0544185D6F0034EE450416F14D0E16AA054417B14AEE74BE45041AE47E15A70A054417B14AE374CE45041F6285CBF74A0544185EB51A84DE4504185EB515879A05441713D0AE74FE450417B14AE677CA05441CDCCCC5C52E45041EC51B83E7EA054411F644CFE53E45041B409BB1074A05441B81E854B54E45041EC51B82E72A054417B14AE5759E450413333331374A05441D7C763E75BE450419A35165177A05441EC51B89E5FE4504152B81E057CA054410FA105DC60E450416C2DD9867CA054415C8FC2E562E45041C3F5285C7DA05441CDCCCC1C62E4504152B81E8582A054415409CCAD65E450415996121283A05441FB6F291268E450412CC5655F83A054414B4E021A68E4504171E0D27183A05441F6285C2F68E4504152B81E7583A05441C07883CC68E450417D45FA1485A05441D7A3705D69E4504148E17A9486A05441295C8F8275E45041AE47E1BA87A054418FC2F54878E4504152B81E0588A054411D8C8D6C78E45041AE40A0CC7FA054416666667678E45041666666867DA05441F07A9A8174E4504124D7EA617BA054417FC73A7E71E45041D3842DC079A05441A0AEAB1F6EE45041F6840EED77A05441AE47E11A67E450410000002074A054416EDF079E66E450417C18120E74A054410DA69C5266E45041F26D3D0374A054410000004064E45041713D0AB773A054418FC2F5A85EE4504148E17AD470A054413D0AD7835AE450415C8FC2B569A05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>373295 - 190308
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000D00000052B81EF5B4CB5041333333F3E99E5441333333B3A1CB5041D7A370BDF09E5441EC51B8FEA9CB50411F85EB61FB9E5441D7A3707DD0CB5041295C8FE2FA9E5441F6285C8FEACB50413D0AD703F99E54410AD7A3C0E8CB504114AE4751F69E54417B14AED7E2CB5041E17A147EED9E544166666686E2CB50419A9999A9EC9E5441D7A370EDDFCB5041000000E0E59E544133333333DDCB50419A999919E69E5441CDCCCCCCCECB50417B14AEE7E79E5441AE47E13AC1CB5041AE47E13AE69E544152B81EF5B4CB5041333333F3E99E5441
+</a>
+
+<b>
+0106000000010000000103000000010000001600000023CCAE80BACB50414B22E844E89E54410A46D854BACB50415EDE3152E89E54413162FC27B2CB5041F05E03FBEA9E5441846869B6A1CB5041DF888FC1F09E5441650B782BA5CB5041E4331731F59E5441D62EC19BA9CB50414D7EF2E2FA9E5441239A88CDD9CB50419B8F8C37FA9E544117A1B3A6DACB504168BBF827FA9E54417BFA23EADACB50416D5C2223FA9E5441073716DADBCB50417B42EC11FA9E5441C781F8E0E7CB5041712005C4F89E54418FDF7A67E5CB5041CF81083BF59E54416A97FE83E1CB504159EA0D93EF9E5441144AB681DDCB50412B7A1438E69E544144B40608D9CB504100CD1A11E89E5441C06F0B15D4CB504175A99390E99E5441596038E5CCCB504122CBDD2AE99E5441B88C4027C4CB50411155B4C5E89E544177D5C79BBCCB50411FD256A6E79E544196CA7CDDBBCB50418EA12DDBE79E544122D60B43BBCB50417DF1FD09E89E544123CCAE80BACB50414B22E844E89E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>373520 - 3147768
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000110000000AD7A38027D150418FC2F598EF8F544185EB51582CD1504114AE4711D88F54413D0AD78337D15041D7A370CDA48F54417B14AED741D15041295C8F12748F544152B81E254AD1504114AE4731458F5441B81E857B4FD150419A9999A9268F54413333333353D1504114AE47F10E8F5441295C8FA250D1504100000020148F54413D0AD7834DD15041E17A144E268F54419A99993948D15041C3F528EC448F5441C3F528BC3FD15041AE47E16A738F5441713D0A6735D15041E17A144EA48F5441666666562AD150413D0AD7A3D78F54417B14AEA725D15041D7A3704DEF8F5441B81E850B1FD1504114AE47110C905441CDCCCCEC20D15041666666A60C9054410AD7A38027D150418FC2F598EF8F5441
+</a>
+
+<b>
+0106000000010000000103000000010000001D00000007B21D6A50D150412696B569158F54411EC3DE164ED15041E4F5FB47188F54415C8FC2B54BD150413D0AD713268F54418FC2F56846D1504185EB5178448F5441666666D63DD1504133333313738F5441713D0A9733D15041E17A141EA48F54410AD7A31028D150411F85EB11D78F544148E17AB423D15041A4703D0AEF8F54419A9999291DD150415C8FC2850B905441B81E850B1FD1504114AE47110C90544153E3AA9825D150412E36C58EEF8F5441316E096B27D1504139C88E64E68F5441ED9431FD28D150418A614D74DE8F5441C79209DA2AD150418C1C7EB2D58F54419B44001A2DD150416C75AF1ECB8F54410A352A0032D15041C7CF6B16B48F54413F75881833D150417919AE01AF8F54412F15B63935D150411CD96020A58F5441B96220B237D15041E8415274998F54410FDE02F939D150418C7671AE8E8F5441CC2093A63BD150412757FEBD868F544101390DC03ED15041C386B613788F544173D53CBE3FD15041EF80805F738F54415D50ED9143D15041EB7459445F8F5441460DA19245D15041485B8172538F5441915A781049D15041B4798810408F5441C0EC834D49D15041881B37AF3E8F5441CA2B35424DD150413275F2C9278F544107B21D6A50D150412696B569158F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>373520 - 400731
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000110000000AD7A38027D150418FC2F598EF8F544185EB51582CD1504114AE4711D88F54413D0AD78337D15041D7A370CDA48F54417B14AED741D15041295C8F12748F544152B81E254AD1504114AE4731458F5441B81E857B4FD150419A9999A9268F54413333333353D1504114AE47F10E8F5441295C8FA250D1504100000020148F54413D0AD7834DD15041E17A144E268F54419A99993948D15041C3F528EC448F5441C3F528BC3FD15041AE47E16A738F5441713D0A6735D15041E17A144EA48F5441666666562AD150413D0AD7A3D78F54417B14AEA725D15041D7A3704DEF8F5441B81E850B1FD1504114AE47110C905441CDCCCCEC20D15041666666A60C9054410AD7A38027D150418FC2F598EF8F5441
+</a>
+
+<b>
+0106000000010000000103000000010000001D00000007B21D6A50D150412696B569158F54411EC3DE164ED15041E4F5FB47188F54415C8FC2B54BD150413D0AD713268F54418FC2F56846D1504185EB5178448F5441666666D63DD1504133333313738F5441713D0A9733D15041E17A141EA48F54410AD7A31028D150411F85EB11D78F544148E17AB423D15041A4703D0AEF8F54413656152C20D1504180347E6BFE8F544136E0A10922D15041EC9407D0FE8F544153E3AA9825D150412E36C58EEF8F5441316E096B27D1504139C88E64E68F5441ED9431FD28D150418A614D74DE8F5441C79209DA2AD150418C1C7EB2D58F54419B44001A2DD150416C75AF1ECB8F54410A352A0032D15041C7CF6B16B48F54413F75881833D150417919AE01AF8F54412F15B63935D150411CD96020A58F5441B96220B237D15041E8415274998F54410FDE02F939D150418C7671AE8E8F5441CC2093A63BD150412757FEBD868F544101390DC03ED15041C386B613788F544173D53CBE3FD15041EF80805F738F54415D50ED9143D15041EB7459445F8F5441460DA19245D15041485B8172538F5441915A781049D15041B4798810408F5441C0EC834D49D15041881B37AF3E8F5441CA2B35424DD150413275F2C9278F544107B21D6A50D150412696B569158F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>893650 - 3079127
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000024000000C3F5284CC96B504114AE47F1951955417B14AE57CA6B504152B81EE59519554100000050CC6B50415C8FC2C59519554114AE4711CF6B50416666669695195541333333B3D46B5041713D0A379519554166666676D76B504185EB5108951955417B14AEA7DB6B504152B81EC594195541713D0A87DE6B5041A4703D3A941955411F85EBE1E06B504185EB51C893195541A4703D3AE36B5041713D0A579319554185EB5158E76B50410AD7A3909219554114AE47C1E76B5041CDCCCC7C921955410AD7A350EE6B5041EC51B84E91195541AE47E15AEE6B5041333333638C195541295C8F72EE6B50410000000084195541AE47E10AEE6B50411F85EBB17B19554152B81EE5ED6B5041EC51B8CE79195541F6285C7FEC6B5041E17A14DE79195541F6285CBFE66B5041EC51B81E7A1955417B14AE27E26B50411F85EB517A195541D7A370CDDF6B5041C3F5286C7A1955415C8FC295DF6B50410AD7A3707A1955415C8FC285DE6B5041D7A3707D7A19554133333333DD6B5041AE47E18A7A1955418FC2F598D66B50415C8FC2C57A195541CDCCCC1CD66B5041A4703DCA7A19554148E17AF4D26B5041666666E67A195541D7A3701DD16B5041666666F67A195541A4703D7ACD6B5041C3F5280C7B195541295C8FD2CC6B504114AE47117B19554114AE47C1CA6B50419A9999197B1955410AD7A3C0C76B5041C3F5281C7B19554148E17A04C86B5041333333837D19554114AE4701C96B5041E17A14CE86195541AE47E13AC96B5041E17A14EE92195541C3F5284CC96B504114AE47F195195541
+</a>
+
+<b>
+0106000000010000000103000000010000000F0000001972B001C96B5041DC2F22E486195541572F2A04C96B5041AEB0896987195541123C5608C96B50410CB45D4A88195541C3F5284CC96B504114AE47F1951955417B14AE57CA6B504152B81EE59519554100000050CC6B50415C8FC2C59519554152B81E45CC6B5041AE47E1BA92195541F6285CFFCB6B504185EB518886195541C3F528DCCA6B50419A9999A97C19554114AE47C1CA6B50419A9999197B1955410AD7A3C0C76B5041C3F5281C7B19554148E17A04C86B5041333333837D19554198D814C7C86B50411E916CAA8419554114AE4701C96B5041E17A14CE861955411972B001C96B5041DC2F22E486195541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>893650 - 3393140
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000024000000C3F5284CC96B504114AE47F1951955417B14AE57CA6B504152B81EE59519554100000050CC6B50415C8FC2C59519554114AE4711CF6B50416666669695195541333333B3D46B5041713D0A379519554166666676D76B504185EB5108951955417B14AEA7DB6B504152B81EC594195541713D0A87DE6B5041A4703D3A941955411F85EBE1E06B504185EB51C893195541A4703D3AE36B5041713D0A579319554185EB5158E76B50410AD7A3909219554114AE47C1E76B5041CDCCCC7C921955410AD7A350EE6B5041EC51B84E91195541AE47E15AEE6B5041333333638C195541295C8F72EE6B50410000000084195541AE47E10AEE6B50411F85EBB17B19554152B81EE5ED6B5041EC51B8CE79195541F6285C7FEC6B5041E17A14DE79195541F6285CBFE66B5041EC51B81E7A1955417B14AE27E26B50411F85EB517A195541D7A370CDDF6B5041C3F5286C7A1955415C8FC295DF6B50410AD7A3707A1955415C8FC285DE6B5041D7A3707D7A19554133333333DD6B5041AE47E18A7A1955418FC2F598D66B50415C8FC2C57A195541CDCCCC1CD66B5041A4703DCA7A19554148E17AF4D26B5041666666E67A195541D7A3701DD16B5041666666F67A195541A4703D7ACD6B5041C3F5280C7B195541295C8FD2CC6B504114AE47117B19554114AE47C1CA6B50419A9999197B1955410AD7A3C0C76B5041C3F5281C7B19554148E17A04C86B5041333333837D19554114AE4701C96B5041E17A14CE86195541AE47E13AC96B5041E17A14EE92195541C3F5284CC96B504114AE47F195195541
+</a>
+
+<b>
+0106000000010000000103000000010000000F0000001972B001C96B5041DC2F22E486195541572F2A04C96B5041AEB0896987195541123C5608C96B50410CB45D4A88195541C3F5284CC96B504114AE47F1951955417B14AE57CA6B504152B81EE59519554100000050CC6B50415C8FC2C59519554152B81E45CC6B5041AE47E1BA92195541F6285CFFCB6B504185EB518886195541C3F528DCCA6B50419A9999A97C19554114AE47C1CA6B50419A9999197B1955410AD7A3C0C76B5041C3F5281C7B19554148E17A04C86B5041333333837D19554198D814C7C86B50411E916CAA8419554114AE4701C96B5041E17A14CE861955411972B001C96B5041DC2F22E486195541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>374782 - 24824
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000001C00000014AE47E10EC75041B81E850B604A5441713D0AE70FC750418FC2F5E8604A544152B81E4510C75041295C8F12624A54415C8FC25511C750419A999969624A5441B81E850B12C7504100000010634A5441AE47E16A12C75041EC51B8CE634A5441F6285CBF12C750411F85EBA1644A5441EC51B81E13C75041B81E850B654A5441295C8FD213C750415C8FC255654A5441000000F014C750410AD7A320654A5441D7A370ED15C75041713D0AB7644A54410AD7A3E016C75041CDCCCC6C644A54418FC2F58817C75041E17A142E644A54411F85EB2117C750417B14AEB7564A54410AD7A3C00DC75041CDCCCCEC584A54417B14AEA70DC750411F85EBB1564A5441A4703D3AEEC65041C3F528EC5D4A54417B14AE57C6C6504185EB5118674A544114AE4731C7C650419A999929784A54411F85EB91EFC65041F6285CDF6E4A5441AE47E16A10C7504114AE4751674A544185EB51380FC7504100000040674A5441E17A143E0EC75041CDCCCCEC664A54413D0AD7630DC75041295C8F12664A54411F85EB210DC75041713D0AD7644A5441333333830CC750418FC2F598624A54411F85EBB10CC7504185EB51C8604A544114AE47E10EC75041B81E850B604A5441
+</a>
+
+<b>
+010600000001000000010300000001000000070000006E76AC08C7C6504101C03FFA744A54416F00000FC7C65041C3585401754A5441B889DC45C8C65041C75592FA744A54410F4830B1C7C65041B725533B694A5441CBBB9173C6C65041B3281542694A5441B8EB4973C6C650415B01B042694A54416E76AC08C7C6504101C03FFA744A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>374782 - 70211
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000001C00000014AE47E10EC75041B81E850B604A5441713D0AE70FC750418FC2F5E8604A544152B81E4510C75041295C8F12624A54415C8FC25511C750419A999969624A5441B81E850B12C7504100000010634A5441AE47E16A12C75041EC51B8CE634A5441F6285CBF12C750411F85EBA1644A5441EC51B81E13C75041B81E850B654A5441295C8FD213C750415C8FC255654A5441000000F014C750410AD7A320654A5441D7A370ED15C75041713D0AB7644A54410AD7A3E016C75041CDCCCC6C644A54418FC2F58817C75041E17A142E644A54411F85EB2117C750417B14AEB7564A54410AD7A3C00DC75041CDCCCCEC584A54417B14AEA70DC750411F85EBB1564A5441A4703D3AEEC65041C3F528EC5D4A54417B14AE57C6C6504185EB5118674A544114AE4731C7C650419A999929784A54411F85EB91EFC65041F6285CDF6E4A5441AE47E16A10C7504114AE4751674A544185EB51380FC7504100000040674A5441E17A143E0EC75041CDCCCCEC664A54413D0AD7630DC75041295C8F12664A54411F85EB210DC75041713D0AD7644A5441333333830CC750418FC2F598624A54411F85EBB10CC7504185EB51C8604A544114AE47E10EC75041B81E850B604A5441
+</a>
+
+<b>
+010600000001000000010300000001000000070000006E76AC08C7C6504101C03FFA744A54416F00000FC7C65041C3585401754A5441B889DC45C8C65041C75592FA744A54410F4830B1C7C65041B725533B694A5441CBBB9173C6C65041B3281542694A5441B8EB4973C6C650415B01B042694A54416E76AC08C7C6504101C03FFA744A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>417628 - 1380825
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000010000000D7A3705D9845514185EB5188E90B5541713D0AF79845514100000080F60B554185EB5108994551417B14AE57FC0B55418FC2F5889945514133333363FF0B5541000000009A455141666666D6010C55419A9999799B4551419A999979060C55415C8FC2359C455141CDCCCC2C080C554148E17A84A0455141C3F528BC0F0C55415C8FC2C5AD455141A4703D9A0D0C5541A4703D1AA345514114AE4761F40B55415C8FC225A745514148E17A64F30B5541C3F5282CA1455141A4703DDAE10B55417B14AEE79F455141C3F528DCE00B55410000002098455141E17A149EE20B55413D0AD783974551417B14AEC7E20B5541D7A3705D9845514185EB5188E90B5541
+</a>
+
+<b>
+0106000000010000000103000000010000001100000074B39DB0AB455141B1E2F4AD080C5541A4703D1AA345514114AE4761F40B55415C8FC225A745514148E17A64F30B5541C3F5282CA1455141A4703DDAE10B55417B14AEE79F455141C3F528DCE00B55410000002098455141E17A149EE20B55413D0AD783974551417B14AEC7E20B5541D7A3705D9845514185EB5188E90B5541713D0AF79845514100000080F60B554185EB5108994551417B14AE57FC0B55418FC2F5889945514133333363FF0B5541000000009A455141666666D6010C55419A9999799B4551419A999979060C55415C8FC2359C455141CDCCCC2C080C554148E17A84A0455141C3F528BC0F0C554117298FBEAD455141D502669B0D0C554174B39DB0AB455141B1E2F4AD080C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>417628 - 3621310
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000010000000D7A3705D9845514185EB5188E90B5541713D0AF79845514100000080F60B554185EB5108994551417B14AE57FC0B55418FC2F5889945514133333363FF0B5541000000009A455141666666D6010C55419A9999799B4551419A999979060C55415C8FC2359C455141CDCCCC2C080C554148E17A84A0455141C3F528BC0F0C55415C8FC2C5AD455141A4703D9A0D0C5541A4703D1AA345514114AE4761F40B55415C8FC225A745514148E17A64F30B5541C3F5282CA1455141A4703DDAE10B55417B14AEE79F455141C3F528DCE00B55410000002098455141E17A149EE20B55413D0AD783974551417B14AEC7E20B5541D7A3705D9845514185EB5188E90B5541
+</a>
+
+<b>
+0106000000010000000103000000010000001100000074B39DB0AB455141B1E2F4AD080C5541A4703D1AA345514114AE4761F40B55415C8FC225A745514148E17A64F30B5541C3F5282CA1455141A4703DDAE10B55417B14AEE79F455141C3F528DCE00B55410000002098455141E17A149EE20B55413D0AD783974551417B14AEC7E20B5541D7A3705D9845514185EB5188E90B5541713D0AF79845514100000080F60B554185EB5108994551417B14AE57FC0B55418FC2F5889945514133333363FF0B5541000000009A455141666666D6010C55419A9999799B4551419A999979060C55415C8FC2359C455141CDCCCC2C080C554148E17A84A0455141C3F528BC0F0C554117298FBEAD455141D502669B0D0C554174B39DB0AB455141B1E2F4AD080C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>380289 - 215129
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001C0000001F85EBF11E465141C3F5287CE4095541A4703D0A28465141EC51B81EE9095541C3F5285C284651418FC2F528E8095541295C8FE2294651418FC2F5A8E90955415C8FC2F52B465141D7A370CDE8095541D7A370BD2D4651410AD7A350E80955418FC2F50830465141A4703DFAE709554148E17A24324651417B14AED7E70955417B14AEA73B4651418FC2F578E8095541713D0A973E465141EC51B8BEE00955410AD7A38039465141B81E852BE0095541713D0AF7354651411F85EBB1DF09554100000070354651411F85EB71DB095541666666163C4651415C8FC245D1095541F6285C4F3E4651413D0AD763CD095541E17A14FE40465141295C8F72CB095541666666E642465141E17A141EC6095541295C8FF244465141E17A14EEBD095541A4703D7A404651419A999949BC095541D7A3709D37465141333333B3BC095541713D0AD7354651411F85EBD1C3095541B81E853B33465141295C8FA2CB0955415C8FC29530465141CDCCCC9CD609554185EB51C82F4651411F85EB71D6095541CDCCCC4C2A46514100000080D6095541F6285CBF2746514114AE4711DA09554133333323274651415C8FC2E5DA0955411F85EBF11E465141C3F5287CE4095541
+</a>
+
+<b>
+0106000000010000000103000000010000003F000000BB0FA8BF3A4651419D7DDC8DBC0955413B118EA8394651410217DA9ABC095541D7A3709D37465141333333B3BC095541713D0AD7354651411F85EBD1C3095541B81E853B33465141295C8FA2CB0955415C8FC29530465141CDCCCC9CD609554185EB51C82F4651411F85EB71D60955411B2D964D2E465141182CB875D6095541D9D00D852D46514120104307D7095541A547F4C82B4651419DC89708D80955412939FBAE2A465141F3BEF483D8095541A083C2A0284651417D0540D6D8095541F6285CBF2746514114AE4711DA09554133333323274651415C8FC2E5DA09554177094422274651417972DAE6DA0955418F9AB10926465141DA51332FDC0955410889C201224651416982D9E6E009554171B608161F4651415480908EE40955411B964CEA27465141FF72900DE90955415510AAEB27465141C253230FE9095541A4703D0A28465141EC51B81EE9095541EF5F704E28465141FF831F52E80955414D610A5C284651415F2F6628E8095541C3F5285C284651418FC2F528E8095541295C8FE2294651418FC2F5A8E90955415C8FC2F52B465141D7A370CDE8095541D7A370BD2D4651410AD7A350E809554147330BD92E4651412EFEEE26E809554140AC8E2F30465141C6A4E2EBE7095541FFA70D8A304651412B7EF8F1E709554148E17A24324651417B14AED7E7095541469C8C813746514126D49D32E80955418038DD8237465141371FB432E8095541207D958537465141203CE232E8095541ADBD328837465141FA8E0E33E8095541C30EC48837465141C02E1833E80955413599B18D374651419BBB6B33E8095541CC2D279E37465141E1CA8234E80955413A7BC2E03946514160CCD45AE80955417B14AEA73B4651418FC2F578E80955410CAD3DAC3B465141FC9EF36CE809554172644EAC3B465141D69BC76CE809554118B160AC3B465141BD6D976CE809554198340DAD3B4651419438D16AE80955413F3BBFAD3B465141F97FFC68E8095541713D0A973E465141EC51B8BEE00955410AD7A38039465141B81E852BE0095541B347621936465141A01388B6DF095541E060750736465141D2314CBCDF095541BAB59209364651412D9668B4DF095541713D0AF7354651411F85EBB1DF09554100000070354651411F85EB71DB095541C33F51A336465141271CD19BD9095541666666163C4651415C8FC245D1095541F6285C4F3E4651413D0AD763CD095541E17A14FE40465141295C8F72CB095541666666E642465141E17A141EC6095541295C8FF244465141E17A14EEBD095541A4703D7A404651419A999949BC0955411DF64EE83C465141A76F2374BC0955414850DB2F3C465141673FB97CBC09554176CE7EF43B465141758F7C7FBC095541BB0FA8BF3A4651419D7DDC8DBC095541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>424153 - 4301646
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000001000000050000007B14AE2764C05041333333A3FC365541A4703D9A36C050410AD7A3D0F4365541EC51B88E36C05041C3F5281CF636554152B81ED563C0504100000010FE3655417B14AE2764C05041333333A3FC365541
+</a>
+
+<b>
+0106000000010000000103000000010000000800000093BEA1D65DC050418B0E7802FD36554152B81ED563C0504100000010FE3655417B14AE2764C05041333333A3FC365541A4703D9A36C050410AD7A3D0F4365541C3F5289C36C05041EC51B86EF5365541F6285C5F49C05041713D0AB7F8365541713D0A4754C050410AD7A3E0FA36554193BEA1D65DC050418B0E7802FD365541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>380669 - 215121
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000002000000085EB5148CA4B51418FC2F528CB0B5541EC51B8EECE4B514114AE4721CC0B5541E17A14EED64B5141C3F5283CB20B5541D7A370DDD74B51418FC2F538AF0B55410AD7A3E0D84B5141666666F6AB0B5541EC51B85ED94B5141AE47E1AAAA0B55411F85EB51DB4B51415C8FC285A50B5541295C8F82DB4B514152B81E05A50B5541A4703DAADC4B5141B81E85EB9C0B5541F6285C1FDC4B5141713D0A67970B554185EB51B8DC4B5141CDCCCC0C920B55415C8FC2A5DB4B51411F85EB51900B5541295C8F22DA4B51418FC2F5488F0B554100000020D54B5141A4703D5A8E0B55419A999999C64B5141666666A68B0B554148E17AB4C44B5141295C8FF2970B55415C8FC2A5C44B51417B14AEA7990B5541E17A141EC54B5141CDCCCC4C9B0B5541C3F5283CC74B51417B14AE97A00B55411F85EBF1C74B5141AE47E1EAA10B5541CDCCCC3CCA4B5141666666D6A50B5541EC51B89ECA4B5141B81E85FBA60B55419A9999C9CA4B514148E17AF4A70B55410AD7A390CA4B5141E17A147EA90B5541AE47E13AC74B5141295C8FD2A90B5541713D0A27BF4B51410AD7A350AA0B5541295C8FB2BD4B5141C3F5285CAA0B55415C8FC295B64B51419A999909A90B5541D7A3700DB54B51415C8FC275B90B5541666666D6B34B514185EB5178C60B554166666616C04B51417B14AE07C90B554185EB5148CA4B51418FC2F528CB0B5541
+</a>
+
+<b>
+01060000000100000001030000000100000014000000F94A62EEB44B514102704DC2BA0B5541666666D6B34B514185EB5178C60B5541750209EBBC4B51416F0E1F5EC80B5541A07EC450C04B51410ACFD30CC90B554135EBBC7AC14B514185C16628C60B5541656ADCECC34B514169446773BD0B5541E069947DC54B5141D7456D25B90B55419FD17FE2C64B51415D378E99B50B55410869BF08C84B514146C80ECFB10B5541BDE826EAC84B51411FC9E343AF0B5541342AD53AC94B5141B5A09E9CAC0B554156914616BC4B514174EF7F0FAA0B55414515272DB94B5141B08EF384A90B5541B399A4A1B64B5141DF3CCF0BA90B5541F7F5B0DEB54B5141BC1DA726B10B5541483358A9B54B5141504A10EFB20B5541D7A3700DB54B51415C8FC275B90B5541B6796DF1B44B51417A17B6A1BA0B5541E838AFF0B44B51414BE9B8AABA0B5541F94A62EEB44B514102704DC2BA0B5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>186114 - 4489536
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000C000000B81E85FB3FDD50411F85EB01BD905441E17A146E41DD5041D7A370EDB19054415C8FC2A543DD5041CDCCCC1CA19054413333338315DD504152B81EA5AA905441CDCCCC4C15DD5041EC51B8FEAD9054413333338312DD504100000060BE90544148E17A7411DD5041D7A3705DC6905441C3F5284C11DD504100000090C7905441EC51B86E10DD504148E17A04D090544185EB51F810DD50418FC2F5E8CF9054418FC2F5B83EDD504185EB51A8C6905441B81E85FB3FDD50411F85EB01BD905441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000ED0A181812DD504168F73E89C1905441556EEC9811DD504101B3164AC590544148E17A7411DD5041D7A3705DC6905441C3F5284C11DD504100000090C7905441EC51B86E10DD504148E17A04D090544185EB51F810DD50418FC2F5E8CF9054418FC2F5B83EDD504185EB51A8C6905441B81E85FB3FDD50411F85EB01BD905441524EC11240DD50416DAC1050BC905441B1706B9D40DD5041FE79A52AB8905441ED0A181812DD504168F73E89C1905441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>394356 - 3186204
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000020000008400000052B81EB50C9C50417B14AE67AA1354410AD7A3C0119C5041A4703D7AAC135441666666F6159C5041AE47E17AAD135441D7A370BD1A9C50417B14AE57AC1354410AD7A3D01E9C504114AE4701AA1354418FC2F538269C5041D7A370FDA5135441666666462B9C50418FC2F5D8A0135441000000F0289C50410AD7A3209F135441D7A370FD059C50413D0AD7238513544148E17AA4049C5041D7A3703D84135441EC51B8FE009C5041B81E85BB7E135441E17A141EF69B50418FC2F5C8751354413D0AD713F69B504152B81E9574135441F6285C4FF69B5041713D0A17731354419A999969F79B5041AE47E11A6E13544152B81EC5F89B504148E17AB4621354413D0AD783F69B504185EB51E863135441F6285CDFF49B5041CDCCCCAC641354419A9999D9F39B504114AE47116513544133333313F39B504148E17AC4641354418FC2F588F19B5041EC51B8CE6313544114AE4701EF9B5041713D0AA7621354419A999929EC9B50418FC2F588601354410AD7A390E99B504185EB51D85E135441E17A147EE89B50415C8FC2655E135441295C8F42EB9B5041666666965B135441B81E854BEB9B504152B81E755A1354411F85EB01EC9B5041B81E856B53135441E17A141EEC9B504148E17A9451135441D7A370CDEA9B50416666663651135441333333A3E59B5041666666664F135441CDCCCC3CDE9B5041C3F528CC4D13544133333353D89B50410AD7A3304A13544185EB5178D49B5041D7A3709D46135441713D0A97CA9B5041CDCCCCFC42135441D7A3707DC99B5041EC51B87E4213544166666686BE9B504185EB51884013544152B81E05AB9B504148E17AD43C135441B81E856BA99B5041E17A14FE3B13544166666626A89B504148E17A04391354411F85EB81A49B5041E17A142E371354415C8FC255A29B5041E17A14BE37135441D7A3704DA29B5041C3F5287C40135441C3F5285CA69B50419A999949451354410AD7A340A99B5041D7A3700D481354410AD7A3B0AB9B5041D7A3709D46135441C3F5284CAE9B50418FC2F5284B13544100000010AE9B5041B81E853B4E135441E17A142EB29B50410AD7A3C056135441713D0A27B89B5041EC51B89E5713544148E17A74B99B5041EC51B87E5B13544166666676BC9B5041B81E85DB591354415C8FC265BD9B5041666666E65C1354411F85EB81B99B50410AD7A3C05E1354411F85EB31B49B504185EB51885F135441D7A3700DA99B50411F85EB316A13544114AE4771A59B50410AD7A3006D135441A4703D2A9C9B5041F6285C5F6F13544114AE4731989B5041000000F07013544148E17AA4969B50410AD7A33071135441CDCCCC2C959B5041EC51B88E7113544152B81ED5929B504152B81ED5721354418FC2F558909B5041B81E85DB74135441E17A14CE8D9B50413D0AD7B37513544148E17A448C9B5041AE47E16A761354411F85EBB18A9B5041D7A3706D771354413D0AD7A3899B5041295C8F6278135441B81E858B899B5041D7A370CD78135441CDCCCCCC8A9B5041666666C6791354419A9999E98B9B50411F85EBF17A1354418FC2F5888C9B504152B81EF57B135441A4703DCA8C9B5041295C8FE27C1354418FC2F5E88C9B50417B14AE177E135441CDCCCCCC8C9B50413D0AD7037F1354417B14AE978C9B5041E17A145E7F13544114AE47918B9B5041295C8FE27F1354417B14AEE78A9B5041AE47E15A80135441F6285C2F8A9B504152B81E758413544133333363939B50418FC2F5288A13544185EB51E8989B50415C8FC2C58D135441D7A3705DB09B50413D0AD7139F135441D7A3706DB29B5041C3F528BCA013544114AE4731BC9B504114AE47F1A91354415C8FC245C39B5041000000F0B01354418FC2F558C99B5041AE47E1AAB6135441E17A14DECF9B5041D7A3707DBD13544152B81E65D39B50418FC2F548C113544185EB5118D89B5041E17A141EC6135441E17A147EDD9B504152B81EE5CB1354418FC2F5B8DE9B5041EC51B84ECD1354410AD7A390DE9B5041AE47E1DACD135441666666C6E29B50418FC2F5F8CD135441C3F528CCEC9B50413D0AD743CC135441B81E852BED9B504114AE4741C5135441713D0AD7ED9B5041713D0A17C1135441D7A3709DF19B50410AD7A3E0BB1354419A999989ED9B50419A999989B8135441EC51B86EEA9B50415C8FC255B71354419A9999B9E79B504100000000B71354415C8FC215E59B50411F85EB21B6135441A4703DEAE29B504152B81EE5B41354410AD7A3E0E09B5041C3F5285CB3135441CDCCCC3CDE9B50410AD7A340B0135441AE47E1AADC9B50413D0AD713AD1354410AD7A390DB9B5041CDCCCC4CA81354415C8FC265DB9B50413D0AD763A31354410AD7A310DC9B50419A9999B9951354415C8FC225D39B504185EB51389113544133333353D29B5041D7A3707D8C135441CDCCCC4CD19B5041D7A3703D88135441A4703DBACC9B5041D7A3707D7E1354417B14AEB7D59B5041EC51B86E74135441D7A3701DDB9B5041AE47E11A77135441A4703DBAD79B5041D7A3709D801354413D0AD753DD9B5041E17A140E8213544114AE4721E19B5041713D0A6787135441C3F5288CE39B504114AE47B18A135441713D0A57F79B5041AE47E1AA80135441EC51B81EFC9B50413D0AD7438413544185EB5168E99B5041666666F690135441666666F6E89B50413D0AD7F39213544133333393EE9B50410000002095135441EC51B8BEF09B5041B81E853B98135441D7A3700DF49B5041EC51B8DE9A135441AE47E14AF79B5041E17A14CE9B13544100000060FE9B50417B14AE1796135441666666B6FF9B5041EC51B8CE9C135441295C8F72009C5041F6285CAFA0135441713D0AA7029C5041B81E855BA313544148E17A64059C5041333333C3A5135441713D0AF7079C504185EB5188A713544152B81EB50C9C50417B14AE67AA13544113000000666666F6CD9B50411F85EB116913544148E17A04D49B5041B81E855B6B1354419A999919D59B50413D0AD70372135441C3F5287CD09B5041713D0A477213544166666686D09B504114AE4771781354413D0AD713CB9B5041333333237A135441D7A370FDC89B50417B14AEB76E135441000000D0CA9B50413D0AD7F36913544100000000C19B50419A999929651354410AD7A330C29B5041AE47E12A5E13544114AE4701C59B50419A99990957135441A4703D1AC99B5041CDCCCC6C55135441295C8F42D09B50418FC2F5D859135441B81E856BD79B504148E17A6455135441666666A6DD9B5041E17A14FE5F135441C3F5284CD89B5041295C8F7264135441AE47E17AD39B5041000000A05E135441E17A14DED09B504148E17AD465135441666666F6CD9B50411F85EB1169135441
+</a>
+
+<b>
+01060000000100000001030000000100000026000000C3F528CCEC9B50413D0AD743CC135441699AA8E6EC9B504112122B51CA13544172EC9AE6EC9B50418B2DA021CA135441EABD73F9EC9B5041AA407FEFC8135441BF422E32ED9B504107D0DF17C513544115F15584ED9B504155168426C31354418A5264D2ED9B50419C7BCB35C1135441D7A3709DF19B50410AD7A3E0BB13544158D89D0AEF9B5041FAC7929EB7135441FFB6DE7EEA9B5041C398C1A6B513544167EE324DE79B50414CCBEB44B51354414B1F92ECE49B5041647496BCB41354411C4CFCBBE29B50411AB67F44B3135441597E3912E19B504141ABD936B2135441E59B024BDE9B504123D85D51B0135441F9AD8717DE9B504127E644F5AF13544158E3B8A3DC9B5041C7ACD2F4AC1354411BC93F8FDB9B5041619F0724A8135441DA7A8466DB9B5041647F0B7AA31354417ADFB801D49B50412A2AD1BA9F1354417A873B4DD39B504199CDF2E39E1354415F9BCD63D09B504117612F9D9B135441A9FB552ACB9B5041080BC2309E135441F31E55DAC69B5041E4BB6962A0135441FDB21D9CC29B504160DF9127A31354416AAF3553BE9B50412902B12CA713544136CC654EBC9B5041BD0F470EAA1354416E8EF9B5C29B504192E9F061B0135441B7BF1612C89B504107699276B513544178C238C4CD9B50417A9DA04ABB135441BA4959FDD09B5041C93F7EB2BE135441D486F4A6D59B5041C3D0159BC3135441C49E9DE4D89B5041EE3BC2F8C61354413A9556ACDA9B50418CC190E0C81354418FC2F5B8DE9B5041EC51B84ECD1354410AD7A390DE9B5041AE47E1DACD135441666666C6E29B50418FC2F5F8CD135441C3F528CCEC9B50413D0AD743CC135441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>394356 - 3591106
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000020000008400000052B81EB50C9C50417B14AE67AA1354410AD7A3C0119C5041A4703D7AAC135441666666F6159C5041AE47E17AAD135441D7A370BD1A9C50417B14AE57AC1354410AD7A3D01E9C504114AE4701AA1354418FC2F538269C5041D7A370FDA5135441666666462B9C50418FC2F5D8A0135441000000F0289C50410AD7A3209F135441D7A370FD059C50413D0AD7238513544148E17AA4049C5041D7A3703D84135441EC51B8FE009C5041B81E85BB7E135441E17A141EF69B50418FC2F5C8751354413D0AD713F69B504152B81E9574135441F6285C4FF69B5041713D0A17731354419A999969F79B5041AE47E11A6E13544152B81EC5F89B504148E17AB4621354413D0AD783F69B504185EB51E863135441F6285CDFF49B5041CDCCCCAC641354419A9999D9F39B504114AE47116513544133333313F39B504148E17AC4641354418FC2F588F19B5041EC51B8CE6313544114AE4701EF9B5041713D0AA7621354419A999929EC9B50418FC2F588601354410AD7A390E99B504185EB51D85E135441E17A147EE89B50415C8FC2655E135441295C8F42EB9B5041666666965B135441B81E854BEB9B504152B81E755A1354411F85EB01EC9B5041B81E856B53135441E17A141EEC9B504148E17A9451135441D7A370CDEA9B50416666663651135441333333A3E59B5041666666664F135441CDCCCC3CDE9B5041C3F528CC4D13544133333353D89B50410AD7A3304A13544185EB5178D49B5041D7A3709D46135441713D0A97CA9B5041CDCCCCFC42135441D7A3707DC99B5041EC51B87E4213544166666686BE9B504185EB51884013544152B81E05AB9B504148E17AD43C135441B81E856BA99B5041E17A14FE3B13544166666626A89B504148E17A04391354411F85EB81A49B5041E17A142E371354415C8FC255A29B5041E17A14BE37135441D7A3704DA29B5041C3F5287C40135441C3F5285CA69B50419A999949451354410AD7A340A99B5041D7A3700D481354410AD7A3B0AB9B5041D7A3709D46135441C3F5284CAE9B50418FC2F5284B13544100000010AE9B5041B81E853B4E135441E17A142EB29B50410AD7A3C056135441713D0A27B89B5041EC51B89E5713544148E17A74B99B5041EC51B87E5B13544166666676BC9B5041B81E85DB591354415C8FC265BD9B5041666666E65C1354411F85EB81B99B50410AD7A3C05E1354411F85EB31B49B504185EB51885F135441D7A3700DA99B50411F85EB316A13544114AE4771A59B50410AD7A3006D135441A4703D2A9C9B5041F6285C5F6F13544114AE4731989B5041000000F07013544148E17AA4969B50410AD7A33071135441CDCCCC2C959B5041EC51B88E7113544152B81ED5929B504152B81ED5721354418FC2F558909B5041B81E85DB74135441E17A14CE8D9B50413D0AD7B37513544148E17A448C9B5041AE47E16A761354411F85EBB18A9B5041D7A3706D771354413D0AD7A3899B5041295C8F6278135441B81E858B899B5041D7A370CD78135441CDCCCCCC8A9B5041666666C6791354419A9999E98B9B50411F85EBF17A1354418FC2F5888C9B504152B81EF57B135441A4703DCA8C9B5041295C8FE27C1354418FC2F5E88C9B50417B14AE177E135441CDCCCCCC8C9B50413D0AD7037F1354417B14AE978C9B5041E17A145E7F13544114AE47918B9B5041295C8FE27F1354417B14AEE78A9B5041AE47E15A80135441F6285C2F8A9B504152B81E758413544133333363939B50418FC2F5288A13544185EB51E8989B50415C8FC2C58D135441D7A3705DB09B50413D0AD7139F135441D7A3706DB29B5041C3F528BCA013544114AE4731BC9B504114AE47F1A91354415C8FC245C39B5041000000F0B01354418FC2F558C99B5041AE47E1AAB6135441E17A14DECF9B5041D7A3707DBD13544152B81E65D39B50418FC2F548C113544185EB5118D89B5041E17A141EC6135441E17A147EDD9B504152B81EE5CB1354418FC2F5B8DE9B5041EC51B84ECD1354410AD7A390DE9B5041AE47E1DACD135441666666C6E29B50418FC2F5F8CD135441C3F528CCEC9B50413D0AD743CC135441B81E852BED9B504114AE4741C5135441713D0AD7ED9B5041713D0A17C1135441D7A3709DF19B50410AD7A3E0BB1354419A999989ED9B50419A999989B8135441EC51B86EEA9B50415C8FC255B71354419A9999B9E79B504100000000B71354415C8FC215E59B50411F85EB21B6135441A4703DEAE29B504152B81EE5B41354410AD7A3E0E09B5041C3F5285CB3135441CDCCCC3CDE9B50410AD7A340B0135441AE47E1AADC9B50413D0AD713AD1354410AD7A390DB9B5041CDCCCC4CA81354415C8FC265DB9B50413D0AD763A31354410AD7A310DC9B50419A9999B9951354415C8FC225D39B504185EB51389113544133333353D29B5041D7A3707D8C135441CDCCCC4CD19B5041D7A3703D88135441A4703DBACC9B5041D7A3707D7E1354417B14AEB7D59B5041EC51B86E74135441D7A3701DDB9B5041AE47E11A77135441A4703DBAD79B5041D7A3709D801354413D0AD753DD9B5041E17A140E8213544114AE4721E19B5041713D0A6787135441C3F5288CE39B504114AE47B18A135441713D0A57F79B5041AE47E1AA80135441EC51B81EFC9B50413D0AD7438413544185EB5168E99B5041666666F690135441666666F6E89B50413D0AD7F39213544133333393EE9B50410000002095135441EC51B8BEF09B5041B81E853B98135441D7A3700DF49B5041EC51B8DE9A135441AE47E14AF79B5041E17A14CE9B13544100000060FE9B50417B14AE1796135441666666B6FF9B5041EC51B8CE9C135441295C8F72009C5041F6285CAFA0135441713D0AA7029C5041B81E855BA313544148E17A64059C5041333333C3A5135441713D0AF7079C504185EB5188A713544152B81EB50C9C50417B14AE67AA13544113000000666666F6CD9B50411F85EB116913544148E17A04D49B5041B81E855B6B1354419A999919D59B50413D0AD70372135441C3F5287CD09B5041713D0A477213544166666686D09B504114AE4771781354413D0AD713CB9B5041333333237A135441D7A370FDC89B50417B14AEB76E135441000000D0CA9B50413D0AD7F36913544100000000C19B50419A999929651354410AD7A330C29B5041AE47E12A5E13544114AE4701C59B50419A99990957135441A4703D1AC99B5041CDCCCC6C55135441295C8F42D09B50418FC2F5D859135441B81E856BD79B504148E17A6455135441666666A6DD9B5041E17A14FE5F135441C3F5284CD89B5041295C8F7264135441AE47E17AD39B5041000000A05E135441E17A14DED09B504148E17AD465135441666666F6CD9B50411F85EB1169135441
+</a>
+
+<b>
+01060000000100000001030000000100000026000000C3F528CCEC9B50413D0AD743CC135441699AA8E6EC9B504112122B51CA13544172EC9AE6EC9B50418B2DA021CA135441EABD73F9EC9B5041AA407FEFC8135441BF422E32ED9B504107D0DF17C513544115F15584ED9B504155168426C31354418A5264D2ED9B50419C7BCB35C1135441D7A3709DF19B50410AD7A3E0BB13544158D89D0AEF9B5041FAC7929EB7135441FFB6DE7EEA9B5041C398C1A6B513544167EE324DE79B50414CCBEB44B51354414B1F92ECE49B5041647496BCB41354411C4CFCBBE29B50411AB67F44B3135441597E3912E19B504141ABD936B2135441E59B024BDE9B504123D85D51B0135441F9AD8717DE9B504127E644F5AF13544158E3B8A3DC9B5041C7ACD2F4AC1354411BC93F8FDB9B5041619F0724A8135441DA7A8466DB9B5041647F0B7AA31354417ADFB801D49B50412A2AD1BA9F1354417A873B4DD39B504199CDF2E39E1354415F9BCD63D09B504117612F9D9B135441A9FB552ACB9B5041080BC2309E135441F31E55DAC69B5041E4BB6962A0135441FDB21D9CC29B504160DF9127A31354416AAF3553BE9B50412902B12CA713544136CC654EBC9B5041BD0F470EAA1354416E8EF9B5C29B504192E9F061B0135441B7BF1612C89B504107699276B513544178C238C4CD9B50417A9DA04ABB135441BA4959FDD09B5041C93F7EB2BE135441D486F4A6D59B5041C3D0159BC3135441C49E9DE4D89B5041EE3BC2F8C61354413A9556ACDA9B50418CC190E0C81354418FC2F5B8DE9B5041EC51B84ECD1354410AD7A390DE9B5041AE47E1DACD135441666666C6E29B50418FC2F5F8CD135441C3F528CCEC9B50413D0AD743CC135441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>381490 - 3178374
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000009000000B81E852BFCF650415C8FC2D55E765441C3F5285CF7F650410AD7A3F0477654415C8FC2D5F1F65041000000D0497654418FC2F5E8DBF65041295C8FA253765441A4703DBAE5F650419A99992985765441A4703D7A02F750418FC2F5D880765441C3F5282C03F75041E17A14BE807654416666661600F750419A99999972765441B81E852BFCF650415C8FC2D55E765441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000CF83CA50F6F65041378CCC014A7654416C01ECCEF6F65041E34901074B7654417B7BDD08F7F65041AA22007F4B7654417227AD64F7F6504117CD8D634C765441933B018BF7F65041073744B84C765441BB6F0DC1F7F65041507583494D7654412BE1143EF8F65041B5929F804E765441852A0D9AF8F6504166D517AB4F76544109429C91F9F650418D5D898152765441C5F4B195F9F65041F3648E8752765441C3F5285CF7F650410AD7A3F04776544122A17992F5F6504161C5E6884876544101B1B493F5F6504182B6568B487654412D6AC0A4F5F650412FC98F8548765441CF83CA50F6F65041378CCC014A765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>381490 - 3575359
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000009000000B81E852BFCF650415C8FC2D55E765441C3F5285CF7F650410AD7A3F0477654415C8FC2D5F1F65041000000D0497654418FC2F5E8DBF65041295C8FA253765441A4703DBAE5F650419A99992985765441A4703D7A02F750418FC2F5D880765441C3F5282C03F75041E17A14BE807654416666661600F750419A99999972765441B81E852BFCF650415C8FC2D55E765441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000CF83CA50F6F65041378CCC014A7654416C01ECCEF6F65041E34901074B7654417B7BDD08F7F65041AA22007F4B7654417227AD64F7F6504117CD8D634C765441933B018BF7F65041073744B84C765441BB6F0DC1F7F65041507583494D7654412BE1143EF8F65041B5929F804E765441852A0D9AF8F6504166D517AB4F76544109429C91F9F650418D5D898152765441C5F4B195F9F65041F3648E8752765441C3F5285CF7F650410AD7A3F04776544122A17992F5F6504161C5E6884876544101B1B493F5F6504182B6568B487654412D6AC0A4F5F650412FC98F8548765441CF83CA50F6F65041378CCC014A765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>382954 - 3159147
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000007000000295C8FE27EBF504114AE475129F9544148E17AF493BF504152B81E1533F95441A4703D0A9FBF50413333332336F954417B14AE079FBF5041666666E630F95441B81E856B90BF5041295C8F3228F9544152B81E5584BF504148E17AF420F95441295C8FE27EBF504114AE475129F95441
+</a>
+
+<b>
+01060000000100000001030000000100000011000000D2E4E15582BF5041550AA9EA2AF95441295C8FE27EBF504114AE475129F954412D3D6BAD7CBF50418852A69E2CF95441A24507E47CBF5041E98AB60A2EF954419438FD7989BF50412DDD179336F9544148E17AF491BF5041C3F5284C3CF95441FF7107D797BF50410FD82CE73CF9544184B523909DBF50411FFD46033DF954411668469E9EBF5041684591D63BF954411806C7089FBF50416333F83636F954416B3EEAFB9BBF504160D3974B35F95441F5D6DAED93BF50410D53231733F95441E5DEF9AB8DBF50414CE2023F30F954416E1AAFD987BF50419E8FF7782DF95441F4ED026283BF5041F114ED662BF954412527489482BF504184142E0E2BF95441D2E4E15582BF5041550AA9EA2AF95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>382954 - 3567028
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000007000000295C8FE27EBF504114AE475129F9544148E17AF493BF504152B81E1533F95441A4703D0A9FBF50413333332336F954417B14AE079FBF5041666666E630F95441B81E856B90BF5041295C8F3228F9544152B81E5584BF504148E17AF420F95441295C8FE27EBF504114AE475129F95441
+</a>
+
+<b>
+01060000000100000001030000000100000011000000D2E4E15582BF5041550AA9EA2AF95441295C8FE27EBF504114AE475129F954412D3D6BAD7CBF50418852A69E2CF95441A24507E47CBF5041E98AB60A2EF954419438FD7989BF50412DDD179336F9544148E17AF491BF5041C3F5284C3CF95441FF7107D797BF50410FD82CE73CF9544184B523909DBF50411FFD46033DF954411668469E9EBF5041684591D63BF954411806C7089FBF50416333F83636F954416B3EEAFB9BBF504160D3974B35F95441F5D6DAED93BF50410D53231733F95441E5DEF9AB8DBF50414CE2023F30F954416E1AAFD987BF50419E8FF7782DF95441F4ED026283BF5041F114ED662BF954412527489482BF504184142E0E2BF95441D2E4E15582BF5041550AA9EA2AF95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>382958 - 3027631
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000E000000F6285CCF0EBE504185EB51C8920D5541333333C30BBE50411F85EB819C0D55413D0AD75310BE5041B81E857B970D55411F85EBD11BBE50413D0AD783960D5541B81E853B3DBE50411F85EB21A00D5541713D0AE755BE504133333353AC0D5541000000605FBE50411F85EB01B10D5541295C8F3267BE5041EC51B8CEA70D55418FC2F5F86BBE50419A999929A20D5541713D0A2757BE50419A999999940D55416666664644BE5041D7A3704D880D5541E17A143E2EBE5041333333F3810D554152B81E3516BE504148E17A047B0D5541F6285CCF0EBE504185EB51C8920D5541
+</a>
+
+<b>
+010600000001000000010300000001000000100000004D843CB612BE5041209C5B3F860D5541B85F8BF211BE5041754708B4880D5541A5202DF633BE504187C5CF35930D554143EB433D47BE504108A5151E9A0D55415410EF4A45BE50415791EB519D0D5541862064E610BE5041557D7E118C0D5541F6285CCF0EBE504185EB51C8920D5541333333C30BBE50411F85EB819C0D55413D0AD75310BE5041B81E857B970D55411F85EBD11BBE50413D0AD783960D5541B81E853B3DBE50411F85EB21A00D5541713D0AE755BE504133333353AC0D5541000000605FBE50411F85EB01B10D5541295C8F3267BE5041EC51B8CEA70D55411C2342643EBE5041B1540594920D55414D843CB612BE5041209C5B3F860D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>382958 - 3270269
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000E000000F6285CCF0EBE504185EB51C8920D5541333333C30BBE50411F85EB819C0D55413D0AD75310BE5041B81E857B970D55411F85EBD11BBE50413D0AD783960D5541B81E853B3DBE50411F85EB21A00D5541713D0AE755BE504133333353AC0D5541000000605FBE50411F85EB01B10D5541295C8F3267BE5041EC51B8CEA70D55418FC2F5F86BBE50419A999929A20D5541713D0A2757BE50419A999999940D55416666664644BE5041D7A3704D880D5541E17A143E2EBE5041333333F3810D554152B81E3516BE504148E17A047B0D5541F6285CCF0EBE504185EB51C8920D5541
+</a>
+
+<b>
+010600000001000000010300000001000000100000004D843CB612BE5041209C5B3F860D5541B85F8BF211BE5041754708B4880D5541A5202DF633BE504187C5CF35930D554143EB433D47BE504108A5151E9A0D55415410EF4A45BE50415791EB519D0D5541862064E610BE5041557D7E118C0D5541F6285CCF0EBE504185EB51C8920D5541333333C30BBE50411F85EB819C0D55413D0AD75310BE5041B81E857B970D55411F85EBD11BBE50413D0AD783960D5541B81E853B3DBE50411F85EB21A00D5541713D0AE755BE504133333353AC0D5541000000605FBE50411F85EB01B10D5541295C8F3267BE5041EC51B8CEA70D55411C2342643EBE5041B1540594920D55414D843CB612BE5041209C5B3F860D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>383010 - 182094
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000020000002F000000295C8F2271A950419A9999399DFD544185EB51F875A95041A4703D1A97FD5441EC51B84E7CA950411F85EB0192FD5441333333C37CA95041EC51B87E92FD54417B14AE2782A950413333334398FD5441AE47E17A88A9504185EB51C89EFD54419A99990989A95041F6285CFF9CFD5441713D0A5790A95041713D0A9797FD544148E17A4497A950418FC2F56892FD5441CDCCCC0C9AA9504114AE475191FD544148E17A8498A95041A4703DDA90FD5441F6285C0F94A95041A4703DBA8AFD544148E17A948CA950413333337380FD54410AD7A3E08AA95041E17A149E7FFD544114AE474188A950411F85EB817FFD544152B81E0584A95041713D0A6781FD5441E17A140E7EA95041E17A144E85FD5441EC51B8DE78A95041713D0AA789FD54413D0AD7F370A950410AD7A32092FD5441E17A14FE6BA950413333333397FD5441333333436AA95041CDCCCC0C9CFD54415C8FC29566A95041295C8F32A6FD544185EB517865A9504133333343A9FD544152B81E0564A95041D7A3700DADFD544148E17A7461A95041A4703D6AB5FD54413333332361A95041E17A14FEB9FD544152B81E7562A95041F6285C5FBBFD5441713D0A1768A950419A9999F9BCFD5441C3F528BC70A95041AE47E17ABEFD54415C8FC23573A9504166666646BBFD5441713D0A9775A95041C3F528ACB9FD544114AE47C176A950415C8FC2B5B6FD544185EB518877A9504166666636AEFD5441295C8F2279A9504152B81E85AAFD54410AD7A3607BA95041EC51B85EA8FD544152B81EC57CA9504148E17AF4A9FD54411F85EBF17EA9504100000050A7FD5441295C8FD275A950418FC2F5A8A0FD54411F85EBA174A95041713D0A77A3FD5441295C8F1273A95041D7A370DDA6FD5441333333F36FA9504148E17AC4AAFD5441B81E851B6DA9504148E17AE4AEFD5441AE47E18A6AA9504148E17A64AEFD544114AE47D169A9504114AE47F1ACFD5441A4703D9A6BA95041D7A3707DAAFD54410AD7A3006FA950418FC2F568A3FD5441295C8F2271A950419A9999399DFD544105000000295C8F9283A95041D7A370AD90FD54419A99996985A95041AE47E12A8EFD5441713D0A9788A95041295C8F8290FD5441EC51B84E87A95041B81E85CB92FD5441295C8F9283A95041D7A370AD90FD5441
+</a>
+
+<b>
+0106000000010000000103000000010000002900000094C450F875A95041415F3E1A97FD5441851636FE75A95041CDF4801597FD5441339B64277CA95041712CDCD791FD54415C8FC2B578A950418FC2F5288EFD54413333330377A9504185EB51288EFD5441E17A145E72A95041E17A141E93FD5441F6285C2F6BA950417B14AE379BFD5441B81E854B67A9504185EB51C8A5FD5441A4703D2A66A9504185EB5148A9FD5441F6285CDF64A950419A999909ACFD5441F6285C2F62A950410AD7A3B0B4FD5441D48E5F9561A9504163D158BBB7FD54414D929B1262A950419D2BD2D8B7FD54416549B20562A95041B22801B1B9FD544152B81E7562A95041F6285C5FBBFD5441713D0A1768A950419A9999F9BCFD5441C3F528BC70A95041AE47E17ABEFD54415C8FC23573A9504166666646BBFD5441713D0A9775A95041C3F528ACB9FD544114AE47C176A950415C8FC2B5B6FD544185EB518877A9504166666636AEFD5441295C8F2279A9504152B81E85AAFD54410AD7A3607BA95041EC51B85EA8FD5441E21862907CA9504119C8FB9AA5FD5441A045443D76A95041805EC6F6A0FD5441BB92C1C175A95041B1CC46EAA3FD54419FEB6B6974A9504181AB63B5A5FD5441171957D773A95041A954E541A7FD544157F8969470A950418D7B2921ABFD5441D03EB5666DA9504148E0B80FB0FD5441AC3831CA6CA95041E413281AB0FD5441C0998B426CA950415C411388AFFD5441F45D6C676BA95041E0702A2AAFFD54414885D3386AA9504170A26D00AFFD544144E2D54869A95041E8CF586EAEFD544138E0A91469A95041ACC57C69ADFD5441E015455369A95041E0895D8EACFD5441F0BA6E776AA9504155144B0CABFD5441C8DF86226EA95041B92B752EA3FD5441295C8F2271A950419A9999399DFD544194C450F875A95041415F3E1A97FD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>383010 - 356418
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000020000002F000000295C8F2271A950419A9999399DFD544185EB51F875A95041A4703D1A97FD5441EC51B84E7CA950411F85EB0192FD5441333333C37CA95041EC51B87E92FD54417B14AE2782A950413333334398FD5441AE47E17A88A9504185EB51C89EFD54419A99990989A95041F6285CFF9CFD5441713D0A5790A95041713D0A9797FD544148E17A4497A950418FC2F56892FD5441CDCCCC0C9AA9504114AE475191FD544148E17A8498A95041A4703DDA90FD5441F6285C0F94A95041A4703DBA8AFD544148E17A948CA950413333337380FD54410AD7A3E08AA95041E17A149E7FFD544114AE474188A950411F85EB817FFD544152B81E0584A95041713D0A6781FD5441E17A140E7EA95041E17A144E85FD5441EC51B8DE78A95041713D0AA789FD54413D0AD7F370A950410AD7A32092FD5441E17A14FE6BA950413333333397FD5441333333436AA95041CDCCCC0C9CFD54415C8FC29566A95041295C8F32A6FD544185EB517865A9504133333343A9FD544152B81E0564A95041D7A3700DADFD544148E17A7461A95041A4703D6AB5FD54413333332361A95041E17A14FEB9FD544152B81E7562A95041F6285C5FBBFD5441713D0A1768A950419A9999F9BCFD5441C3F528BC70A95041AE47E17ABEFD54415C8FC23573A9504166666646BBFD5441713D0A9775A95041C3F528ACB9FD544114AE47C176A950415C8FC2B5B6FD544185EB518877A9504166666636AEFD5441295C8F2279A9504152B81E85AAFD54410AD7A3607BA95041EC51B85EA8FD544152B81EC57CA9504148E17AF4A9FD54411F85EBF17EA9504100000050A7FD5441295C8FD275A950418FC2F5A8A0FD54411F85EBA174A95041713D0A77A3FD5441295C8F1273A95041D7A370DDA6FD5441333333F36FA9504148E17AC4AAFD5441B81E851B6DA9504148E17AE4AEFD5441AE47E18A6AA9504148E17A64AEFD544114AE47D169A9504114AE47F1ACFD5441A4703D9A6BA95041D7A3707DAAFD54410AD7A3006FA950418FC2F568A3FD5441295C8F2271A950419A9999399DFD544105000000295C8F9283A95041D7A370AD90FD54419A99996985A95041AE47E12A8EFD5441713D0A9788A95041295C8F8290FD5441EC51B84E87A95041B81E85CB92FD5441295C8F9283A95041D7A370AD90FD5441
+</a>
+
+<b>
+0106000000010000000103000000010000002900000094C450F875A95041415F3E1A97FD5441851636FE75A95041CDF4801597FD5441339B64277CA95041712CDCD791FD54415C8FC2B578A950418FC2F5288EFD54413333330377A9504185EB51288EFD5441E17A145E72A95041E17A141E93FD5441F6285C2F6BA950417B14AE379BFD5441B81E854B67A9504185EB51C8A5FD5441A4703D2A66A9504185EB5148A9FD5441F6285CDF64A950419A999909ACFD5441F6285C2F62A950410AD7A3B0B4FD5441D48E5F9561A9504163D158BBB7FD54414D929B1262A950419D2BD2D8B7FD54416549B20562A95041B22801B1B9FD544152B81E7562A95041F6285C5FBBFD5441713D0A1768A950419A9999F9BCFD5441C3F528BC70A95041AE47E17ABEFD54415C8FC23573A9504166666646BBFD5441713D0A9775A95041C3F528ACB9FD544114AE47C176A950415C8FC2B5B6FD544185EB518877A9504166666636AEFD5441295C8F2279A9504152B81E85AAFD54410AD7A3607BA95041EC51B85EA8FD5441E21862907CA9504119C8FB9AA5FD5441A045443D76A95041805EC6F6A0FD5441BB92C1C175A95041B1CC46EAA3FD54419FEB6B6974A9504181AB63B5A5FD5441171957D773A95041A954E541A7FD544157F8969470A950418D7B2921ABFD5441D03EB5666DA9504148E0B80FB0FD5441AC3831CA6CA95041E413281AB0FD5441C0998B426CA950415C411388AFFD5441F45D6C676BA95041E0702A2AAFFD54414885D3386AA9504170A26D00AFFD544144E2D54869A95041E8CF586EAEFD544138E0A91469A95041ACC57C69ADFD5441E015455369A95041E0895D8EACFD5441F0BA6E776AA9504155144B0CABFD5441C8DF86226EA95041B92B752EA3FD5441295C8F2271A950419A9999399DFD544194C450F875A95041415F3E1A97FD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>383095 - 182096
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000012000000C3F5289C41A95041CDCCCC7C46FE5441666666863BA95041D7A3700D44FE54411F85EBB13CA95041333333C34EFE54418FC2F5083DA9504152B81EB55DFE54417B14AE273EA950410AD7A36064FE54419A99994944A9504185EB51F86BFE5441AE47E16A4CA950410AD7A33078FE5441F6285C3F4EA95041713D0A7778FE5441333333D350A95041F6285CAF75FE5441C3F5287C50A9504152B81EB573FE544114AE47214FA950411F85EBD170FE544114AE47014BA95041AE47E15A6CFE544148E17A5448A950410AD7A3506AFE5441AE47E12A45A95041B81E853B60FE5441666666C644A95041333333835DFE5441713D0A7741A95041EC51B84E56FE544152B81ED540A95041333333334FFE5441C3F5289C41A95041CDCCCC7C46FE5441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000AE47E12A45A95041B81E853B60FE54414166865B44A95041CF87C2255DFE5441C30AD8C340A950414A1E340356FE5441EC5FE11A40A95041695AFFDF4EFE5441CCADD61341A95041063EAF4746FE5441EFA9D7F840A95041ED35723B46FE54414976D7F33CA9504130C9F56844FE5441D19F0BA73DA95041BFEDCDDC4EFE5441D19F0BA73DA95041CFCCE16A5AFE5441BBB4842B3EA950419AA58F1262FE54412969323345A950415B6F46216BFE5441EA03AE074DA95041EB7A799478FE54418DC65B3F4EA95041BC460A7778FE5441242B33D350A950411AFA5BAF75FE54419895F8AB50A95041018932CB74FE544112A0287C50A95041C7261EB573FE5441E8BCB82D50A9504140D7F70D73FE544114AE47214FA950411F85EBD170FE544114AE47014BA95041AE47E15A6CFE5441E13DAEB747A9504193E8FEEF69FE5441AE47E12A45A95041B81E853B60FE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>383095 - 375784
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000012000000C3F5289C41A95041CDCCCC7C46FE5441666666863BA95041D7A3700D44FE54411F85EBB13CA95041333333C34EFE54418FC2F5083DA9504152B81EB55DFE54417B14AE273EA950410AD7A36064FE54419A99994944A9504185EB51F86BFE5441AE47E16A4CA950410AD7A33078FE5441F6285C3F4EA95041713D0A7778FE5441333333D350A95041F6285CAF75FE5441C3F5287C50A9504152B81EB573FE544114AE47214FA950411F85EBD170FE544114AE47014BA95041AE47E15A6CFE544148E17A5448A950410AD7A3506AFE5441AE47E12A45A95041B81E853B60FE5441666666C644A95041333333835DFE5441713D0A7741A95041EC51B84E56FE544152B81ED540A95041333333334FFE5441C3F5289C41A95041CDCCCC7C46FE5441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000AE47E12A45A95041B81E853B60FE54414166865B44A95041CF87C2255DFE5441C30AD8C340A950414A1E340356FE5441EC5FE11A40A95041695AFFDF4EFE5441CCADD61341A95041063EAF4746FE5441EFA9D7F840A95041ED35723B46FE54414976D7F33CA9504130C9F56844FE5441D19F0BA73DA95041BFEDCDDC4EFE5441D19F0BA73DA95041CFCCE16A5AFE5441BBB4842B3EA950419AA58F1262FE54412969323345A950415B6F46216BFE5441EA03AE074DA95041EB7A799478FE54418DC65B3F4EA95041BC460A7778FE5441242B33D350A950411AFA5BAF75FE54419895F8AB50A95041018932CB74FE544112A0287C50A95041C7261EB573FE5441E8BCB82D50A9504140D7F70D73FE544114AE47214FA950411F85EBD170FE544114AE47014BA95041AE47E15A6CFE5441E13DAEB747A9504193E8FEEF69FE5441AE47E12A45A95041B81E853B60FE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>383362 - 32482
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000270000005C8FC2B509B7504148E17A54FF1155417B14AE4709B7504185EB5188FF115541A4703DAA08B750419A999979FF115541EC51B8BE07B7504185EB5168FF115541D7A370DD06B75041E17A145EFF1155417B14AEE705B750410AD7A370FF1155419A99991905B750411F85EBA1FF115541C3F528DC04B75041333333B3FF1155418FC2F55804B750413D0AD7C3FF115541713D0A0702B75041EC51B82E001255411F85EBC101B75041713D0A57001255418FC2F54801B7504152B81E75001255410000009000B75041295C8F72001255411F85EB0100B75041CDCCCC2C0012554152B81E15FEB650417B14AEC7FF11554185EB51E8FEB650413D0AD7030212554114AE47C100B7504148E17A0407125541CDCCCC5C03B750415C8FC2D50A1255410AD7A3800AB75041713D0AE709125541F6285CCF0DB750419A9999F9081255415C8FC23511B7504148E17A3407125541C3F528FC1AB750417B14AE6700125541B81E85AB1BB7504185EB51D8FE115541E17A14DE1AB750413D0AD703F91155418FC2F5881AB75041AE47E19AF6115541E17A147E1AB75041EC51B8AEF611554148E17A141AB75041A4703DEAF6115541666666A618B7504148E17A24F7115541713D0A8713B75041CDCCCC4CFB11554152B81E0513B75041F6285C9FFB11554152B81E3512B75041AE47E1BAFB11554185EB511811B75041D7A3702DFC115541E17A149E10B750413D0AD763FC115541AE47E15A10B7504185EB51F8FC115541CDCCCC3C10B7504114AE4771FD115541B81E85CB0FB750413D0AD7D3FD115541666666860EB7504185EB5128FE115541F6285C4F0DB75041713D0A27FE1155415C8FC2B509B7504148E17A54FF115541
+</a>
+
+<b>
+0106000000010000000103000000010000002D00000083F400D010B75041DD649F4DFC115541B4C0BB3D10B75041F0C8866DFD115541CDCCCC3C10B7504114AE4771FD1155417D1E0E3B10B750415051CC72FD115541B81E85CB0FB750413D0AD7D3FD1155413AEB8FBD0FB75041748277D7FD11554180D7DF910FB75041BD9BD1E2FD115541666666860EB7504185EB5128FE115541E508CA810EB7504102104D28FE115541BB1650D309B750415652D04AFF115541D2F13F7F09B75041C087266EFF1155417B14AE4709B7504185EB5188FF115541A4703DAA08B750419A999979FF115541EC51B8BE07B7504185EB5168FF115541D7A370DD06B75041E17A145EFF11554147C343FE05B75041D733EF6EFF115541984701B405B75041B03FFF7CFF1155419A99991905B750411F85EBA1FF115541C3F528DC04B75041333333B3FF1155418FC2F55804B750413D0AD7C3FF1155410FFCDE3802B75041E5A7C0250012554114F228FF01B7504138135133001255411F85EBC101B75041713D0A57001255418FC2F54801B7504152B81E75001255410000009000B75041295C8F72001255413CF7423E00B75041515B6D4A00125541790DC328FEB6504124DEB5CBFF115541ED9E4546FFB650411AC0D0E6021255412255A17D08B75041D723E190011255414DBF38AB08B750413794AF6E01125541E85C08F514B75041373C1DABFC115541D20B9D5B15B75041DE67EE4FFC115541302AADE01AB7504128D7B316F9115541E17A14DE1AB750413D0AD703F9115541312C288B1AB75041E0B6CDAAF6115541416E6D7E1AB75041A71D16AEF6115541E17A147E1AB75041EC51B8AEF611554148E17A141AB75041A4703DEAF611554152F62FC818B7504134D01A1FF71155413DBF8ED613B750411D25430CFB115541713D0A8713B75041CDCCCC4CFB11554104EBCA3E13B7504123FCB57AFB11554152B81E0513B75041F6285C9FFB115541BF022AB212B75041A4F055AAFB11554183F400D010B75041DD649F4DFC115541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>383362 - 71405
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000270000005C8FC2B509B7504148E17A54FF1155417B14AE4709B7504185EB5188FF115541A4703DAA08B750419A999979FF115541EC51B8BE07B7504185EB5168FF115541D7A370DD06B75041E17A145EFF1155417B14AEE705B750410AD7A370FF1155419A99991905B750411F85EBA1FF115541C3F528DC04B75041333333B3FF1155418FC2F55804B750413D0AD7C3FF115541713D0A0702B75041EC51B82E001255411F85EBC101B75041713D0A57001255418FC2F54801B7504152B81E75001255410000009000B75041295C8F72001255411F85EB0100B75041CDCCCC2C0012554152B81E15FEB650417B14AEC7FF11554185EB51E8FEB650413D0AD7030212554114AE47C100B7504148E17A0407125541CDCCCC5C03B750415C8FC2D50A1255410AD7A3800AB75041713D0AE709125541F6285CCF0DB750419A9999F9081255415C8FC23511B7504148E17A3407125541C3F528FC1AB750417B14AE6700125541B81E85AB1BB7504185EB51D8FE115541E17A14DE1AB750413D0AD703F91155418FC2F5881AB75041AE47E19AF6115541E17A147E1AB75041EC51B8AEF611554148E17A141AB75041A4703DEAF6115541666666A618B7504148E17A24F7115541713D0A8713B75041CDCCCC4CFB11554152B81E0513B75041F6285C9FFB11554152B81E3512B75041AE47E1BAFB11554185EB511811B75041D7A3702DFC115541E17A149E10B750413D0AD763FC115541AE47E15A10B7504185EB51F8FC115541CDCCCC3C10B7504114AE4771FD115541B81E85CB0FB750413D0AD7D3FD115541666666860EB7504185EB5128FE115541F6285C4F0DB75041713D0A27FE1155415C8FC2B509B7504148E17A54FF115541
+</a>
+
+<b>
+0106000000010000000103000000010000002D00000083F400D010B75041DD649F4DFC115541B4C0BB3D10B75041F0C8866DFD115541CDCCCC3C10B7504114AE4771FD1155417D1E0E3B10B750415051CC72FD115541B81E85CB0FB750413D0AD7D3FD1155413AEB8FBD0FB75041748277D7FD11554180D7DF910FB75041BD9BD1E2FD115541666666860EB7504185EB5128FE115541E508CA810EB7504102104D28FE115541BB1650D309B750415652D04AFF115541D2F13F7F09B75041C087266EFF1155417B14AE4709B7504185EB5188FF115541A4703DAA08B750419A999979FF115541EC51B8BE07B7504185EB5168FF115541D7A370DD06B75041E17A145EFF11554147C343FE05B75041D733EF6EFF115541984701B405B75041B03FFF7CFF1155419A99991905B750411F85EBA1FF115541C3F528DC04B75041333333B3FF1155418FC2F55804B750413D0AD7C3FF1155410FFCDE3802B75041E5A7C0250012554114F228FF01B7504138135133001255411F85EBC101B75041713D0A57001255418FC2F54801B7504152B81E75001255410000009000B75041295C8F72001255413CF7423E00B75041515B6D4A00125541790DC328FEB6504124DEB5CBFF115541ED9E4546FFB650411AC0D0E6021255412255A17D08B75041D723E190011255414DBF38AB08B750413794AF6E01125541E85C08F514B75041373C1DABFC115541D20B9D5B15B75041DE67EE4FFC115541302AADE01AB7504128D7B316F9115541E17A14DE1AB750413D0AD703F9115541312C288B1AB75041E0B6CDAAF6115541416E6D7E1AB75041A71D16AEF6115541E17A147E1AB75041EC51B8AEF611554148E17A141AB75041A4703DEAF611554152F62FC818B7504134D01A1FF71155413DBF8ED613B750411D25430CFB115541713D0A8713B75041CDCCCC4CFB11554104EBCA3E13B7504123FCB57AFB11554152B81E0513B75041F6285C9FFB115541BF022AB212B75041A4F055AAFB11554183F400D010B75041DD649F4DFC115541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>384255 - 2925933
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000001400000000000010A0A35041713D0AF756FD54418FC2F5C8ABA35041EC51B8DE56FD544114AE47C1AFA35041713D0AD756FD5441AE47E14ABAA35041D7A3708D5DFD544114AE4701C0A350418FC2F5B857FD54418FC2F5C8D5A3504148E17A6441FD544114AE47C1D5A35041713D0AF73FFD544148E17AE4C3A35041A4703D5A2EFD544185EB5188C1A3504185EB51782DFD5441CDCCCC2CB1A35041B81E855B31FD54418FC2F54898A350416666664637FD54411F85EBC18AA35041AE47E14A35FD5441AE47E10A87A350411F85EB3133FD544185EB51A885A3504185EB517837FD54410AD7A3A084A35041C3F528CC3EFD54413333337384A35041713D0AC745FD54418FC2F5E884A3504148E17AC44BFD5441EC51B89E86A350417B14AE1752FD5441666666A68AA35041D7A3703D5CFD544100000010A0A35041713D0AF756FD5441
+</a>
+
+<b>
+010600000001000000010300000001000000100000003A14B58086A3504156896C1A4EFD54412F700AE195A35041FC8E22EC36FD54410A44265095A350416DE9DFD636FD54419A061C9994A35041BFA1FEBB36FD544135F26D3194A35041CB78A2AC36FD5441123263B68EA350410CAE42DF35FD54411F85EBC18AA35041AE47E14A35FD5441AE47E10A87A350411F85EB3133FD544185EB51A885A3504185EB517837FD54410AD7A3A084A35041C3F528CC3EFD54413333337384A35041713D0AC745FD54418FC2F5E884A3504148E17AC44BFD5441EC51B89E86A350417B14AE1752FD5441666666A68AA35041D7A3703D5CFD54414E21C1588BA3504183E6D1005CFD54413A14B58086A3504156896C1A4EFD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>384255 - 3725721
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000001400000000000010A0A35041713D0AF756FD54418FC2F5C8ABA35041EC51B8DE56FD544114AE47C1AFA35041713D0AD756FD5441AE47E14ABAA35041D7A3708D5DFD544114AE4701C0A350418FC2F5B857FD54418FC2F5C8D5A3504148E17A6441FD544114AE47C1D5A35041713D0AF73FFD544148E17AE4C3A35041A4703D5A2EFD544185EB5188C1A3504185EB51782DFD5441CDCCCC2CB1A35041B81E855B31FD54418FC2F54898A350416666664637FD54411F85EBC18AA35041AE47E14A35FD5441AE47E10A87A350411F85EB3133FD544185EB51A885A3504185EB517837FD54410AD7A3A084A35041C3F528CC3EFD54413333337384A35041713D0AC745FD54418FC2F5E884A3504148E17AC44BFD5441EC51B89E86A350417B14AE1752FD5441666666A68AA35041D7A3703D5CFD544100000010A0A35041713D0AF756FD5441
+</a>
+
+<b>
+010600000001000000010300000001000000100000003A14B58086A3504156896C1A4EFD54412F700AE195A35041FC8E22EC36FD54410A44265095A350416DE9DFD636FD54419A061C9994A35041BFA1FEBB36FD544135F26D3194A35041CB78A2AC36FD5441123263B68EA350410CAE42DF35FD54411F85EBC18AA35041AE47E14A35FD5441AE47E10A87A350411F85EB3133FD544185EB51A885A3504185EB517837FD54410AD7A3A084A35041C3F528CC3EFD54413333337384A35041713D0AC745FD54418FC2F5E884A3504148E17AC44BFD5441EC51B89E86A350417B14AE1752FD5441666666A68AA35041D7A3703D5CFD54414E21C1588BA3504183E6D1005CFD54413A14B58086A3504156896C1A4EFD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>387015 - 1720912
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000E0000009A9999D92EB45041B81E858BCE2C5541295C8F6234B45041A4703DEAC62C5541B81E851B2EB45041713D0AF7C52C554185EB514820B45041F6285CDFC42C5541AE47E19A1FB45041E17A14CEC42C5541E17A14CE1BB45041AE47E11ACA2C5541D7A370AD16B45041B81E85EBD02C5541F6285C7F13B450411F85EB41D42C55413D0AD75318B4504100000060DA2C55413D0AD7131AB4504185EB5118DC2C55417B14AE0720B45041CDCCCC6CE02C5541AE47E10A22B4504166666626DE2C55415C8FC2052BB45041B81E856BD32C55419A9999D92EB45041B81E858BCE2C5541
+</a>
+
+<b>
+01060000000100000001030000000100000012000000BCE3AE9E1AB45041E48820AECB2C55411283C0EA16B45041BA490CE2D02C554196438BDC13B450412DB29D67D42C55417B14AE5719B4504160E5D092DA2C55415EBA493422B450415C8FC2C5DF2C55419318047624B4504137894150E02C5541C520B0DA2CB45041F2D24D72E32C5541AAF1D23530B45041CBA145D6E22C5541AAF1D22D35B45041D578E9FEE32C55413AF67A963BB45041AFACD04AD92C5541713D0ABF3EB45041736891F5D32C55414E6210F843B450419EEFA75EC92C55416891ED043DB450412B8716C1C82C5541FED4780930B450411D5A6473C62C5541295C8F4225B4504196438BCCC52C55410CD3132B1FB45041ECE0036AC52C5541E17A14CE1BB45041AE47E11ACA2C5541BCE3AE9E1AB45041E48820AECB2C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>387015 - 4366387
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000E0000009A9999D92EB45041B81E858BCE2C5541295C8F6234B45041A4703DEAC62C5541B81E851B2EB45041713D0AF7C52C554185EB514820B45041F6285CDFC42C5541AE47E19A1FB45041E17A14CEC42C5541E17A14CE1BB45041AE47E11ACA2C5541D7A370AD16B45041B81E85EBD02C5541F6285C7F13B450411F85EB41D42C55413D0AD75318B4504100000060DA2C55413D0AD7131AB4504185EB5118DC2C55417B14AE0720B45041CDCCCC6CE02C5541AE47E10A22B4504166666626DE2C55415C8FC2052BB45041B81E856BD32C55419A9999D92EB45041B81E858BCE2C5541
+</a>
+
+<b>
+01060000000100000001030000000100000012000000BCE3AE9E1AB45041E48820AECB2C55411283C0EA16B45041BA490CE2D02C554196438BDC13B450412DB29D67D42C55417B14AE5719B4504160E5D092DA2C55415EBA493422B450415C8FC2C5DF2C55419318047624B4504137894150E02C5541C520B0DA2CB45041F2D24D72E32C5541AAF1D23530B45041CBA145D6E22C5541AAF1D22D35B45041D578E9FEE32C55413AF67A963BB45041AFACD04AD92C5541713D0ABF3EB45041736891F5D32C55414E6210F843B450419EEFA75EC92C55416891ED043DB450412B8716C1C82C5541FED4780930B450411D5A6473C62C5541295C8F4225B4504196438BCCC52C55410CD3132B1FB45041ECE0036AC52C5541E17A14CE1BB45041AE47E11ACA2C5541BCE3AE9E1AB45041E48820AECB2C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>387424 - 2991175
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000000C0000008FC2F58856F6504148E17AF42B765441713D0A275FF650415C8FC2A52976544152B81E0563F650410AD7A3601A7654411F85EB915DF65041D7A3709DF87554413D0AD76358F650417B14AE87D875544114AE47C155F650415C8FC2B5D87554417B14AEE74EF650418FC2F5B8D975544114AE47514AF65041E17A14CEDA7554419A99997945F65041C3F5286CDC75544152B81E1543F65041000000E0DD755441000000504FF65041295C8F022E7654418FC2F58856F6504148E17AF42B765441
+</a>
+
+<b>
+0106000000010000000103000000010000000F00000096A3F43B4FF650413EEF9DDD2D765441D8A3192C5FF65041F1F2C79129765441FC017F0363F65041D3909A671A765441FF0416BF5CF65041C7F18783F3755441CC43887158F650412C7F7DDCD875544117219A2E53F65041608C1E17D9755441392333FC4DF65041349086F0D9755441E80472DC49F650418BF41AF5DA755441D3AE1B2547F6504168EE5CDDDB7554417313134245F650411643E18DDC75544145ADB41B44F65041D878A540DD75544182935F1843F650414C01CBEDDD75544118FDB38C49F65041BC5FED3F08765441DFFC0ED04CF6504144C373A11D76544196A3F43B4FF650413EEF9DDD2D765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>387424 - 3306376
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000010000000103000000010000000C0000008FC2F58856F6504148E17AF42B765441713D0A275FF650415C8FC2A52976544152B81E0563F650410AD7A3601A7654411F85EB915DF65041D7A3709DF87554413D0AD76358F650417B14AE87D875544114AE47C155F650415C8FC2B5D87554417B14AEE74EF650418FC2F5B8D975544114AE47514AF65041E17A14CEDA7554419A99997945F65041C3F5286CDC75544152B81E1543F65041000000E0DD755441000000504FF65041295C8F022E7654418FC2F58856F6504148E17AF42B765441
+</a>
+
+<b>
+0106000000010000000103000000010000000F00000096A3F43B4FF650413EEF9DDD2D765441D8A3192C5FF65041F1F2C79129765441FC017F0363F65041D3909A671A765441FF0416BF5CF65041C7F18783F3755441CC43887158F650412C7F7DDCD875544117219A2E53F65041608C1E17D9755441392333FC4DF65041349086F0D9755441E80472DC49F650418BF41AF5DA755441D3AE1B2547F6504168EE5CDDDB7554417313134245F650411643E18DDC75544145ADB41B44F65041D878A540DD75544182935F1843F650414C01CBEDDD75544118FDB38C49F65041BC5FED3F08765441DFFC0ED04CF6504144C373A11D76544196A3F43B4FF650413EEF9DDD2D765441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>388207 - 2959703
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000000900000052B81EF5B68150418FC2F508570F5541CDCCCCACC08150415C8FC295620F554148E17A14C3815041F6285C4F630F55413D0AD773D6815041E17A149E5D0F5541A4703D3ADB8150411F85EB715D0F55418FC2F588DF815041A4703D4A5D0F55417B14AE37EE81504148E17AC45C0F5541F6285C2FDF81504114AE47D1400F554152B81EF5B68150418FC2F508570F5541
+</a>
+
+<b>
+0106000000010000000103000000010000000500000064652ADECF815041CE4EAC9E3D0F5541AA0B09C1B38150411359F01D530F55412452536DB9815041C17F8EF8590F55411736068ED68150419FEC7C95450F554164652ADECF815041CE4EAC9E3D0F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>388207 - 3618854
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000000900000052B81EF5B68150418FC2F508570F5541CDCCCCACC08150415C8FC295620F554148E17A14C3815041F6285C4F630F55413D0AD773D6815041E17A149E5D0F5541A4703D3ADB8150411F85EB715D0F55418FC2F588DF815041A4703D4A5D0F55417B14AE37EE81504148E17AC45C0F5541F6285C2FDF81504114AE47D1400F554152B81EF5B68150418FC2F508570F5541
+</a>
+
+<b>
+0106000000010000000103000000010000000500000064652ADECF815041CE4EAC9E3D0F5541AA0B09C1B38150411359F01D530F55412452536DB9815041C17F8EF8590F55411736068ED68150419FEC7C95450F554164652ADECF815041CE4EAC9E3D0F5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>133745 - 2988031
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000002000000270000009A999919ED08514133333373198B5441EC51B8BEF8085141295C8F92228B54411F85EBB1FF08514185EB5168268B54413D0AD763060951418FC2F5882A8B544114AE479114095141713D0A77348B5441EC51B8FE2C095141713D0AB7428B5441713D0A072E09514185EB5118428B544114AE47112C095141AE47E1DA0E8B54415C8FC2852A095141D7A3700DE78A5441AE47E17A2A095141F6285CEFE58A5441D7A3707D290951410AD7A3F0DA8A54413D0AD723290951413D0AD703D18A54410AD7A32025095141D7A3707DC28A544114AE473124095141D7A3701DBF8A5441295C8FB220095141EC51B88EB28A5441D7A3705D1F095141D7A370DDAD8A544185EB51C8EC085141EC51B8FEB88A54413D0AD703EE085141EC51B8EEBA8A54417B14AEB7F10851411F85EBB1C58A5441EC51B88EF008514152B81EC5CB8A5441A4703DAAF30851419A999919CD8A5441AE47E17AF40851417B14AEB7CD8A54411F85EB21F5085141D7A3709DCF8A5441AE47E15AF40851410AD7A310D68A5441F6285C0FF30851415C8FC295D68A54411F85EBF1EC085141E17A144ED88A544166666656E50851417B14AE17DA8A54410AD7A350E408514185EB51D8DA8A54418FC2F5B8DF085141713D0AA7DF8A5441666666D6DE08514166666636E48A544166666676E00851413D0AD753E88A5441A4703DAAE20851419A999959EE8A5441AE47E1DAE2085141295C8FB2F38A5441AE47E15AE2085141A4703D0AF88A544152B81E45E40851419A9999F9FD8A544139B6E478E6085141105836EA028B544178FE5732E9085141349AAD06098B54413D0AD753EA0851418FC2F5C80C8B54419A999919ED08514133333373198B5441110000008FC2F5681709514152B81E45CE8A54417B14AE2712095141CDCCCC0CD28A5441AE47E10A0E09514133333323D48A54413D0AD7230B0951418FC2F518D98A54418FC2F5A80C0951413D0AD7F3DF8A544114AE47610D0951419A999919E78A54413333339309095141E17A14BEE78A54419A9999490609514152B81E15D98A54417B14AEC70C09514185EB51F8C98A54419A9999C91609514152B81EE5C58A5441333333631C095141F6285C9FC38A5441B81E85CB1C095141CDCCCC7CC48A5441E17A14FE1E09514185EB5118C98A544148E17A4421095141713D0A97D58A54415C8FC2251B095141CDCCCC4CD68A5441713D0AB7190951410AD7A300CE8A54418FC2F5681709514152B81E45CE8A5441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000BB5F400FF4085141C78DEAE61E8B5441DA537DA2F5085141BB67CE22208B54413ED8884FF3085141B1B6FD7BD68A54411F85EBF1EC085141E17A144ED88A544166666656E50851417B14AE17DA8A54410AD7A350E408514185EB51D8DA8A54418FC2F5B8DF085141713D0AA7DF8A5441666666D6DE08514166666636E48A544166666676E00851413D0AD753E88A5441A4703DAAE20851419A999959EE8A5441AE47E1DAE2085141295C8FB2F38A5441AE47E15AE2085141A4703D0AF88A544152B81E45E40851419A9999F9FD8A544138B6E478E60851410C5836EA028B544179FE5732E9085141379AAD06098B54413D0AD753EA0851418FC2F5C80C8B54419A999919ED08514133333373198B5441BB5F400FF4085141C78DEAE61E8B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>133745 - 3408736
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+010600000001000000010300000002000000270000009A999919ED08514133333373198B5441EC51B8BEF8085141295C8F92228B54411F85EBB1FF08514185EB5168268B54413D0AD763060951418FC2F5882A8B544114AE479114095141713D0A77348B5441EC51B8FE2C095141713D0AB7428B5441713D0A072E09514185EB5118428B544114AE47112C095141AE47E1DA0E8B54415C8FC2852A095141D7A3700DE78A5441AE47E17A2A095141F6285CEFE58A5441D7A3707D290951410AD7A3F0DA8A54413D0AD723290951413D0AD703D18A54410AD7A32025095141D7A3707DC28A544114AE473124095141D7A3701DBF8A5441295C8FB220095141EC51B88EB28A5441D7A3705D1F095141D7A370DDAD8A544185EB51C8EC085141EC51B8FEB88A54413D0AD703EE085141EC51B8EEBA8A54417B14AEB7F10851411F85EBB1C58A5441EC51B88EF008514152B81EC5CB8A5441A4703DAAF30851419A999919CD8A5441AE47E17AF40851417B14AEB7CD8A54411F85EB21F5085141D7A3709DCF8A5441AE47E15AF40851410AD7A310D68A5441F6285C0FF30851415C8FC295D68A54411F85EBF1EC085141E17A144ED88A544166666656E50851417B14AE17DA8A54410AD7A350E408514185EB51D8DA8A54418FC2F5B8DF085141713D0AA7DF8A5441666666D6DE08514166666636E48A544166666676E00851413D0AD753E88A5441A4703DAAE20851419A999959EE8A5441AE47E1DAE2085141295C8FB2F38A5441AE47E15AE2085141A4703D0AF88A544152B81E45E40851419A9999F9FD8A544139B6E478E6085141105836EA028B544178FE5732E9085141349AAD06098B54413D0AD753EA0851418FC2F5C80C8B54419A999919ED08514133333373198B5441110000008FC2F5681709514152B81E45CE8A54417B14AE2712095141CDCCCC0CD28A5441AE47E10A0E09514133333323D48A54413D0AD7230B0951418FC2F518D98A54418FC2F5A80C0951413D0AD7F3DF8A544114AE47610D0951419A999919E78A54413333339309095141E17A14BEE78A54419A9999490609514152B81E15D98A54417B14AEC70C09514185EB51F8C98A54419A9999C91609514152B81EE5C58A5441333333631C095141F6285C9FC38A5441B81E85CB1C095141CDCCCC7CC48A5441E17A14FE1E09514185EB5118C98A544148E17A4421095141713D0A97D58A54415C8FC2251B095141CDCCCC4CD68A5441713D0AB7190951410AD7A300CE8A54418FC2F5681709514152B81E45CE8A5441
+</a>
+
+<b>
+01060000000100000001030000000100000012000000BB5F400FF4085141C78DEAE61E8B5441DA537DA2F5085141BB67CE22208B54413ED8884FF3085141B1B6FD7BD68A54411F85EBF1EC085141E17A144ED88A544166666656E50851417B14AE17DA8A54410AD7A350E408514185EB51D8DA8A54418FC2F5B8DF085141713D0AA7DF8A5441666666D6DE08514166666636E48A544166666676E00851413D0AD753E88A5441A4703DAAE20851419A999959EE8A5441AE47E1DAE2085141295C8FB2F38A5441AE47E15AE2085141A4703D0AF88A544152B81E45E40851419A9999F9FD8A544138B6E478E60851410C5836EA028B544179FE5732E9085141379AAD06098B54413D0AD753EA0851418FC2F5C80C8B54419A999919ED08514133333373198B5441BB5F400FF4085141C78DEAE61E8B5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>394916 - 261968
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+0106000000030000000103000000050000002C010000AE47E1CAE19E5041EC51B8FEF81B544148E17AD4E09E5041295C8F42F91B5441D7A3706DDE9E5041F6285C1FFA1B54417B14AEA7D29E50411F85EB91FF1B54415C8FC2C5CC9E5041295C8F62021C5441AE47E10AC49E5041AE47E17A051C54417B14AEE7BB9E504133333373081C5441AE47E1FAB79E5041713D0A37091C5441B81E851BB19E504114AE47910A1C5441D7A370CDAC9E5041B81E857B0A1C5441AE47E1EAAB9E5041CDCCCC9C0A1C54418FC2F508A89E50418FC2F5B80B1C544152B81EC59F9E5041000000300E1C5441666666F6A09E5041A4703D6A0A1C5441CDCCCC9C9C9E5041EC51B8EE091C5441B81E858B9C9E5041CDCCCCEC091C54415C8FC205989E504114AE47F1081C54418FC2F5D8949E5041295C8F42081C544185EB51C8949E5041C3F528FC0C1C544185EB51F8929E50413D0AD7D30D1C544185EB51A88F9E5041666666760F1C54411F85EB118D9E50419A999929111C54413D0AD7A38B9E5041D7A3703D121C544114AE47B1899E50415C8FC2E5131C544185EB51A8899E5041F6285CEF131C544133333313879E50410AD7A390161C5441AE47E12A859E5041CDCCCC9C171C54419A999959839E5041C3F528DC191C54413D0AD7F3829E5041B81E851B1C1C544166666696829E50418FC2F5F81F1C5441713D0A27839E504166666666221C54418FC2F5C8839E5041B81E856B241C5441E17A144E849E5041C3F528DC251C5441A4703D3A859E504133333343291C54410AD7A3B0859E5041295C8F822B1C5441F6285C7F869E50411F85EBB12D1C54417B14AE37879E50415C8FC2E5301C5441EC51B80E879E50410AD7A360331C544185EB51A8869E5041B81E85DB351C5441D7A3707D859E5041C3F5289C371C544185EB5158829E50411F85EBB1391C5441D7A3705D819E50411F85EB713A1C54413D0AD753809E50410AD7A3403B1C5441CDCCCC3C7F9E5041E17A14BE3B1C54419A9999397F9E504114AE47A13C1C5441C3F528BC809E5041C3F528DC3D1C54417B14AE37839E50415C8FC2753D1C5441B81E85DB839E50411F85EBD13E1C5441B81E85DB839E50418FC2F538411C54411F85EBD1849E5041713D0AA7461C5441713D0AE7859E5041E17A144E4B1C54415C8FC2D5879E504114AE47A14F1C5441B81E85AB899E50419A999959521C5441000000C08C9E50419A9999B9551C544114AE47818B9E504148E17A045A1C5441333333538C9E5041F6285C4F5E1C5441B81E855B8A9E50413D0AD763611C5441D7A3707D8A9E50417B14AE67641C5441C3F528DC8A9E5041E17A14CE641C5441AE47E1DA899E50417B14AE87661C54410AD7A3A0889E50413D0AD7C3671C544148E17AF4859E50418FC2F5C8681C54411F85EB61839E50418FC2F5C8681C54419A999919819E504152B81E256A1C54410AD7A320809E504114AE47F16B1C544148E17A84809E5041295C8FE26D1C5441666666867E9E50413D0AD7D36F1C544148E17A547E9E504185EB5108731C5441295C8F027F9E50415C8FC2C5761C5441B81E856B809E5041666666367C1C5441B81E851B779E50418FC2F5387D1C5441295C8F02739E5041F6285C3F7E1C54415C8FC2156C9E50419A9999297E1C544152B81E956A9E5041295C8F927E1C54418FC2F5B86A9E50413D0AD733801C5441C3F5286C6D9E5041AE47E17A801C5441D7A3706D719E5041D7A3708D811C544185EB5168769E50418FC2F5C8811C544114AE47817A9E50411F85EB51831C54411F85EB817C9E5041295C8F22831C5441295C8F527E9E5041713D0AB7821C5441666666A6809E50417B14AE87821C5441713D0A07859E5041D7A3708D831C54411F85EBD1879E5041333333C3821C54415C8FC225899E504185EB51287F1C5441E17A14FE889E5041EC51B83E7C1C544114AE47118A9E5041333333A3791C5441EC51B8BE8E9E504114AE4791771C5441AE47E16A949E5041F6285C7F751C544114AE4741979E5041295C8F32731C544114AE4781919E5041CDCCCCAC6D1C5441AE47E11A8E9E5041CDCCCC1C6B1C544152B81E858A9E50419A999969681C5441C3F5282C8C9E5041B81E85EB651C54415C8FC2458F9E5041EC51B80E691C5441E17A14AE929E5041E17A14AE691C544114AE47F1929E5041EC51B86E6C1C544166666606949E50410AD7A3F06D1C5441295C8FC2959E504148E17AF46E1C54411F85EB11999E50417B14AE376F1C5441B81E85DB999E5041B81E853B701C54411F85EBC19B9E50417B14AE97721C5441713D0A379E9E5041EC51B8DE751C5441295C8FE29F9E504152B81E75781C5441F6285C4FA29E5041D7A370DD7B1C54413D0AD703A49E5041A4703D4A7E1C544148E17A74A59E50410AD7A330801C544148E17A74A59E504100000080831C5441C3F528BCA49E5041B81E857B861C544100000010A59E5041D7A3705D891C5441713D0AA7A59E504148E17AF48B1C5441E17A14EEA59E5041713D0A978D1C54413D0AD773A99E504152B81E158E1C5441D7A370FDAB9E504114AE47018E1C5441C3F528FCAF9E50413D0AD7638F1C5441CDCCCCACB39E504185EB5128911C5441B81E85FBB49E50410AD7A300931C54413D0AD7D3B59E504166666676931C54415C8FC235B79E50413D0AD713931C54413D0AD783BA9E5041F6285C4F931C5441AE47E1AABD9E5041B81E853B941C5441E17A143EC19E504114AE4771951C544152B81EE5C09E5041E17A149E931C54411F85EBD1BF9E504148E17A14921C54410AD7A320BE9E5041000000508E1C54417B14AE97BC9E5041333333B38C1C5441CDCCCC5CBA9E5041333333B38B1C5441000000C0B69E50413D0AD7638D1C544133333323B49E5041F6285C9F8D1C544185EB51E8B19E50418FC2F5288D1C544100000010B09E50411F85EB018C1C5441B81E854BAF9E5041333333B38A1C5441AE47E19AAC9E5041713D0A17861C54419A9999E9AC9E5041F6285CEF841C54413D0AD723AF9E50417B14AE17821C5441AE47E14AB09E5041E17A148E801C544100000010B09E5041D7A370DD7E1C54410AD7A310AE9E5041A4703DCA7B1C544185EB5138AC9E504100000090781C5441EC51B8AEAB9E5041B81E85CB741C54411F85EBC1AB9E504166666656701C544100000060AB9E50419A9999B96B1C5441C3F5285CBE9E50413D0AD7E35D1C5441D7A3700DBE9E5041A4703D5A5C1C54415C8FC295C39E504152B81EE5581C54418FC2F5A8C59E5041C3F5280C5A1C5441713D0AF7CA9E504152B81EE5571C544133333343D79E50418FC2F548511C54417B14AE07D89E5041EC51B8BE521C5441CDCCCCCCD69E50411F85EBD1551C5441F6285CCFD69E5041666666B6561C5441C3F5287CD59E504148E17A54571C54417B14AE87D49E5041AE47E10A581C544152B81EE5D39E5041B81E85BB581C5441D7A3703DD39E50411F85EBB1591C544100000070D29E5041000000F05A1C544185EB51B8D19E50419A9999D95B1C54410AD7A3D0CF9E5041713D0AA75D1C544148E17A64CF9E5041C3F5287C5E1C5441295C8FE2CE9E504152B81E255F1C5441D7A3704DCE9E50410AD7A3C05F1C54411F85EBE1CF9E5041B81E85BB631C5441AE47E16AD59E504185EB51A8601C54413D0AD7F3D99E5041000000D05D1C544152B81E55DE9E50419A999959611C5441295C8F42DB9E50411F85EBE1661C5441B81E851BD99E50419A9999B96B1C5441B81E851BD79E50413D0AD7F3701C54418FC2F5B8D89E5041D7A3707D721C544148E17AA4DC9E504114AE4791701C544114AE4741E09E504152B81EF56A1C5441295C8FA2E59E50417B14AEA7631C544152B81E45E99E5041AE47E16A681C544152B81E05EE9E5041CDCCCC3C6E1C5441AE47E1FAEF9E5041B81E85DB711C5441295C8FA2F09E50418FC2F508781C5441F6285CEFF09E50413D0AD7537C1C5441E17A143EF19E5041713D0A677D1C5441CDCCCC8CF09E5041B81E852B801C54411F85EB51EF9E5041D7A3708D821C5441CDCCCC8CEE9E50411F85EB51851C5441A4703DDAEE9E504148E17A94871C5441A4703D2AF19E50418FC2F578861C544185EB5178F39E50415C8FC265861C5441333333B3F49E5041CDCCCC8C871C5441B81E858BF59E50415C8FC2158C1C5441EC51B8DEF69E504166666636911C5441A4703DFAF59E504148E17A84921C54415C8FC2C5F29E50411F85EBE1931C544133333363EF9E5041AE47E16A941C544100000010EC9E50419A999989941C544152B81E15E89E5041CDCCCC4C941C54418FC2F538E49E5041000000E0921C5441666666D6E09E50411F85EBB1921C5441E17A142EDD9E50411F85EBB1921C5441AE47E11ADB9E50417B14AE27941C5441F6285C2FD89E50419A999989951C544100000070D59E5041D7A370CD971C5441F6285C4FD49E50418FC2F558991C544185EB5158D19E5041000000B0991C544152B81E45CE9E50417B14AED7981C54413D0AD743CB9E5041666666C6971C5441F6285CCFCB9E5041000000B09A1C544148E17A44CF9E5041EC51B8FE9B1C5441CDCCCC1CD29E5041AE47E1EA9C1C54415C8FC2A5D59E50410AD7A3609E1C54411F85EB91D69E5041AE47E19AA01C5441F6285C2FD69E504100000060A11C5441A4703DAAD49E5041D7A370FDA11C54419A999939DC9E504133333363A41C5441A4703DAAE29E5041C3F5282CA51C544152B81E55EB9E5041C3F5285CA41C544100000010EF9E5041333333A3A41C5441CDCCCC9CF49E504133333393A41C5441E17A14DEF99E5041EC51B89EA31C544114AE4741FD9E50419A9999D9A21C54415C8FC235029F504148E17AC4A11C54410AD7A3B0099F5041000000A09F1C5441F6285C4F119F50417B14AEB79A1C54417B14AEA7159F50411F85EB21971C5441333333631C9F50417B14AE57941C5441000000E01A9F504114AE47318B1C5441AE47E1FA179F5041000000A08A1C54411F85EB71149F5041AE47E1DA881C5441EC51B82E129F504148E17AC4871C5441EC51B82E129F504133333383861C54415C8FC2C5149F50417B14AE87851C5441713D0A07149F5041295C8F22831C5441D7A3703D119F5041D7A3706D801C544152B81E650D9F5041C3F5287C7F1C5441C3F5284C0C9F5041AE47E17A7D1C544148E17A240C9F5041F6285C8F7A1C54415C8FC2D50C9F504114AE4741781C54417B14AE370E9F50413D0AD7A3761C5441666666860E9F504148E17AC4731C5441000000100F9F504114AE4791721C5441CDCCCCAC149F50410AD7A390741C54413D0AD7D3179F5041CDCCCC1C771C5441713D0A77169F5041000000106E1C544152B81ED50F9F5041295C8F926A1C5441295C8FC2099F5041CDCCCC1C681C5441A4703DEA089F50411F85EBE1671C54419A999939079F5041666666A6691C5441D7A370FD099F5041F6285C2F6D1C5441C3F5283C0B9F50419A9999D9701C5441C3F5280C0A9F50419A999939731C5441D7A370CD089F5041C3F5289C761C5441CDCCCC4C089F5041F6285C8F7B1C5441CDCCCCFC049F50411F85EB91821C5441295C8F12039F50413D0AD703811C54418FC2F588019F50419A9999C97F1C544100000000009F5041C3F5282C7D1C5441C3F528ECFD9E50418FC2F5187A1C5441E17A149EFA9E5041CDCCCC7C751C54410AD7A360F99E5041F6285CBF711C5441E17A142EF99E5041E17A141E6D1C544114AE47A1F89E5041CDCCCCCC681C5441666666F6F79E50417B14AEB7641C5441F6285CBFF69E504185EB51E85E1C5441AE47E1AAF49E504152B81E05591C5441A4703DCAF79E50410AD7A3F0581C544114AE47A1FB9E504114AE47E15A1C5441EC51B8CEF79E5041E17A146E541C5441D7A370FDF49E504148E17A44501C5441B81E858BF39E5041C3F5286C4D1C544166666676F29E5041713D0A074B1C544114AE47B1F19E504100000080481C54410AD7A360F19E504114AE47B1461C5441CDCCCCACED9E5041D7A3703D461C54418FC2F568EC9E504148E17AB4441C5441000000E0EA9E50411F85EB913D1C54410AD7A3C0E89E50419A9999F93D1C5441C3F528CCE89E50415C8FC2453A1C544114AE47E1E99E504148E17A54381C54415C8FC265E79E50418FC2F5D8351C5441713D0A57E69E50419A9999E9321C5441F6285C4FE49E50419A999959301C54419A999949E69E5041666666362E1C5441F6285CDFE79E5041713D0A972C1C5441E17A141EE99E5041EC51B83E291C54415C8FC2E5EB9E50417B14AED7201C5441D7A3702DED9E5041CDCCCC6C191C54411F85EB41EA9E5041C3F528CC121C5441AE47E12AE99E504152B81E55121C5441C3F5285CE59E504185EB51D8141C544152B81E15E39E5041CDCCCC3C151C5441B81E85FBDF9E50413D0AD7C3141C54418FC2F578DF9E5041A4703D5A131C5441C3F5289CE09E5041000000A0111C5441EC51B87EE29E5041295C8F72101C54410AD7A360E49E5041D7A3706D0F1C5441F6285C7FE69E504185EB5118101C5441295C8F02E99E50413D0AD763111C5441B81E856BE89E50411F85EBD10D1C5441CDCCCCACE79E50413D0AD7F3081C5441A4703D2AE79E5041CDCCCCFC041C5441D7A3704DE69E5041B81E850B021C544114AE4701E59E5041C3F5284CFF1B54410AD7A310E49E504114AE4741FD1B5441AE47E1CAE19E5041EC51B8FEF81B54410B0000009A9999C9E89E5041CDCCCCBC5C1C544133333353E89E5041295C8F82581C5441EC51B83EEB9E504100000020581C5441000000F0ED9E504166666696591C5441000000A0F19E5041A4703D0A621C544114AE4751F29E5041D7A3701D651C544152B81E65F29E50417B14AE57691C54419A999979EE9E504152B81EF5681C544114AE47A1EB9E5041F6285CCF631C5441E17A148EE89E504114AE47815E1C54419A9999C9E89E5041CDCCCCBC5C1C54411B00000048E17AC4B79E50411F85EBD1201C544185EB5108B69E5041713D0AD71E1C5441E17A141EB59E504152B81E451E1C54417B14AEC7B39E5041B81E858B1D1C5441D7A3708DB19E50417B14AEE71C1C54410AD7A330B09E50415C8FC2B51C1C544114AE47A1AE9E5041B81E85CB1C1C5441EC51B82EAD9E5041295C8F121D1C5441A4703DCAAB9E504148E17A441D1C54419A999949AA9E5041A4703D5A1D1C54415C8FC275AC9E504152B81E351B1C54413D0AD783AC9E5041AE47E1CA1B1C54410AD7A3E0AC9E50417B14AE271C1C544114AE47E1AE9E5041EC51B82E1C1C5441333333A3B19E50411F85EB111C1C544114AE47F1B19E50413D0AD7031C1C544100000000B29E5041A4703DCA1A1C544100000080B29E5041D7A370ED191C54419A9999E9B39E5041000000D0181C54419A9999E9B59E504114AE47F1161C5441A4703D5AB89E5041D7A3708D191C5441C3F5285CBA9E50413D0AD7B31B1C5441EC51B81EB99E5041CDCCCCDC1C1C5441C3F5285CB89E5041295C8F921D1C544152B81EF5B79E504114AE47E11D1C5441F6285C4FB99E50418FC2F5781F1C544148E17AC4B79E50411F85EBD1201C5441120000005C8FC2E5829E5041AE47E15A771C5441713D0A77809E50415C8FC265711C544100000030829E5041295C8F12711C544100000060849E5041AE47E19A701C54418FC2F548869E5041CDCCCCAC6F1C54411F85EB01889E5041666666D66E1C54413D0AD713899E5041EC51B88E6E1C5441A4703DEA899E5041333333536E1C544185EB51D88A9E5041CDCCCC4C6D1C54415C8FC2858C9E50418FC2F5586D1C54413D0AD7A38D9E5041CDCCCCAC6F1C54410AD7A3F08C9E5041A4703D8A731C544148E17A148B9E50410AD7A360761C5441295C8F62889E5041A4703DAA781C5441D7A3707D869E5041A4703D8A791C544185EB5178859E5041713D0A97791C544114AE47B1849E504114AE4701791C54415C8FC2E5829E5041AE47E15A771C5441100000001F85EB41D29E5041295C8FD2331C5441C3F5289CCD9E5041EC51B80E321C5441C3F5283CCD9E5041C3F528EC2F1C54411F85EBD1D49E50419A9999692D1C544133333333D99E504185EB51F82B1C54417B14AEC7DC9E50411F85EB11281C5441666666A6DE9E5041D7A3702D281C54415C8FC265DF9E50410AD7A300271C5441EC51B81EE29E504148E17A54241C5441295C8F82E39E5041F6285C8F251C5441B81E85BBE09E50410AD7A3802C1C5441000000A0E09E5041AE47E17A2E1C54417B14AEA7E29E50417B14AE97321C54415C8FC285D29E5041AE47E1AA371C54417B14AEA7D09E50415C8FC295351C54411F85EB41D29E5041295C8FD2331C54410103000000030000009C0000005C8FC2D5569E504114AE47A1801C54411F85EBD15D9E50410AD7A330811C54410AD7A3905D9E5041666666A67F1C5441295C8FC25C9E504185EB51A87E1C5441F6285C6F599E5041EC51B88E7D1C544185EB51F8559E5041713D0A777C1C5441D7A3700D539E504148E17AA47B1C5441D7A370AD4F9E50411F85EBD1791C5441EC51B84E4D9E50411F85EBA1771C5441333333634A9E5041CDCCCCFC741C54410AD7A390489E5041713D0A57711C54415C8FC2D5479E50417B14AEC76C1C5441D7A370BD469E50413D0AD7F3691C544114AE47D1459E5041000000D0671C544148E17A04489E504152B81E65661C544185EB5148459E50410AD7A3C0631C54419A999919459E50419A999979621C54410AD7A390489E504152B81EA55E1C5441EC51B81E4C9E50415C8FC2755D1C5441333333934B9E5041E17A142E5B1C54413D0AD7934C9E504114AE47A1591C5441333333F34F9E5041AE47E12A571C544185EB5198529E504148E17AE4561C5441295C8F82549E504148E17A14581C5441D7A3703D559E5041CDCCCC5C5B1C5441AE47E19A559E504152B81EA55E1C5441F6285C0F569E50417B14AE77601C5441CDCCCCCC579E50418FC2F578601C5441666666F65A9E50419A999909601C54410AD7A3905D9E5041AE47E18A5F1C5441A4703D8A609E5041CDCCCCAC5E1C54413D0AD783639E5041EC51B89E5D1C5441D7A3707D669E5041295C8F025C1C54418FC2F5A8689E504114AE47915C1C5441713D0A67699E5041AE47E1AA5F1C544148E17AC46A9E50417B14AE07611C5441000000006D9E50418FC2F558601C5441AE47E15A6F9E5041B81E851B5F1C54415C8FC295719E5041C3F5280C5F1C54411F85EB51739E50419A999929601C5441C3F5283C769E504152B81E25621C54417B14AE47789E5041295C8F62631C54413D0AD7F3799E504133333343631C54411F85EBE17A9E504148E17AA4621C5441000000E07B9E5041713D0A77611C5441F6285C3F7C9E5041F6285C6F5D1C5441EC51B88E7C9E5041C3F5285C571C54411F85EB71809E504166666636551C54418FC2F5387F9E504152B81EE54B1C5441713D0AF77F9E504114AE4721461C54415C8FC2D57F9E50410AD7A360411C54419A9999C97E9E5041EC51B88E3D1C5441CDCCCC3C7D9E504148E17A343D1C5441713D0A67789E504185EB51583B1C544114AE47D1739E50419A9999993A1C544114AE47C16E9E5041AE47E12A3A1C5441295C8FA26C9E504185EB5128381C544114AE47916A9E5041EC51B8CE341C54417B14AEB7669E50410AD7A320321C5441B81E85FB639E50415C8FC265301C5441EC51B8AE5F9E50417B14AE07351C5441666666565D9E5041EC51B8CE341C54410AD7A320549E5041A4703DDA321C5441B81E852B519E504152B81E05331C5441AE47E19A4F9E504148E17A94331C544148E17A444E9E504152B81E15341C544148E17A344D9E5041D7A3705D351C5441AE47E1EA499E50413D0AD7F3351C5441B81E857B499E50410AD7A340371C54419A9999594A9E5041B81E85EB391C5441E17A145E4C9E5041C3F5281C3A1C5441295C8FC24C9E504152B81E653B1C5441333333334C9E5041F6285C9F3C1C544114AE47B14A9E5041B81E85CB3D1C544152B81EF5479E5041C3F528BC3C1C544185EB5148469E50411F85EB013C1C5441713D0A47459E5041B81E85AB3A1C54410AD7A3F0439E50418FC2F5383A1C5441AE47E18A429E50418FC2F5383A1C544152B81EA5409E504185EB51483B1C544114AE47A13D9E5041AE47E14A3D1C5441E17A149E3A9E504185EB51D83C1C54415C8FC2A5379E50413D0AD7033A1C544133333373369E504114AE4731381C544185EB5188349E5041C3F528FC361C54413D0AD793329E50419A999989361C5441666666B6319E50415C8FC245381C54413D0AD763319E5041CDCCCC5C3A1C5441F6285C4F319E50419A9999493C1C5441CDCCCC8C319E5041713D0A373E1C54418FC2F548319E5041CDCCCC3C3F1C5441D7A370DD2F9E5041295C8F423F1C5441D7A3702D2E9E5041E17A140E3E1C5441C3F528AC2C9E50417B14AEE73B1C544152B81E25299E50410AD7A3803A1C544148E17A94279E50419A999919381C54418FC2F558259E5041F6285CDF361C5441AE47E1DA229E5041E17A147E321C544152B81E351F9E5041B81E854B321C5441F6285C3F1C9E50418FC2F5B82E1C54418FC2F5D8199E5041713D0AA72B1C544152B81ED5169E5041AE47E10A2C1C544185EB51F80F9E50411F85EB11241C54417B14AE770E9E5041D7A3704D241C54413D0AD7E30A9E5041C3F5281C261C544185EB51E8069E5041AE47E11A281C54415C8FC285029E5041333333F3291C544185EB5198FF9D50419A9999192B1C5441EC51B88EFC9D50417B14AE172C1C5441666666B6FC9D5041C3F528CC2E1C54411F85EBC1FD9D5041E17A143E301C5441F6285C8FFE9D504152B81EA5301C5441CDCCCCECFF9D5041E17A145E311C54413D0AD773019E50410AD7A3B0311C5441C3F528DC039E5041713D0A87311C54418FC2F5B8099E5041CDCCCCCC391C54418FC2F5480A9E50419A9999D93C1C5441F6285CCF0B9E5041B81E858B401C5441F6285C5F0C9E5041AE47E10A451C544185EB51F80B9E5041A4703D4A471C54413D0AD7E30B9E5041713D0A574A1C5441CDCCCC9C0C9E5041666666B64D1C54410AD7A3800F9E504185EB51B84F1C54419A999959119E50415C8FC215511C54411F85EB71159E504133333393531C5441AE47E1FA189E50410AD7A310561C5441B81E85FB129E504152B81ED55C1C544166666686109E50418FC2F5385D1C5441F6285C9F0D9E5041E17A140E5D1C54419A9999290A9E5041D7A3708D5C1C5441F6285C4F069E50410AD7A3F05B1C5441AE47E1CA029E5041E17A147E5B1C54417B14AEB7FE9D50417B14AEA75A1C54418FC2F558FB9D5041E17A148E581C544100000030F09D5041713D0A97571C54411F85EB71F09D504152B81EA5591C5441F6285CDFF19D5041C3F5286C601C5441D7A370ADFD9D5041C3F528AC621C5441D7A370CD099E5041B81E859B661C544114AE47910D9E5041295C8F32631C5441CDCCCC8C159E5041AE47E10A661C54413D0AD7B3179E504152B81E35641C544152B81E75299E50419A9999896B1C5441713D0A872B9E50415C8FC2A56C1C54415C8FC2152C9E5041B81E85BB6F1C5441713D0AA72D9E5041D7A3706D6F1C5441666666C62F9E504152B81ED56F1C54418FC2F5C8309E50410AD7A3C0711C5441CDCCCC1C329E504148E17A74731C54410AD7A390359E5041F6285C7F741C54415C8FC2D5379E5041EC51B82E771C54411F85EB31449E50410AD7A3F07B1C54415C8FC2F54A9E504185EB51287E1C5441CDCCCC7C4F9E5041713D0A277F1C54419A999939559E5041EC51B87E801C54415C8FC2D5569E504114AE47A1801C54410F000000000000A0799E504152B81E954A1C54418FC2F588799E504148E17AF44C1C54418FC2F558789E504185EB51984E1C5441B81E85CB759E50410AD7A3B04F1C54418FC2F5F8749E5041C3F528AC4E1C544100000010749E5041B81E850B4D1C5441B81E859B739E504114AE47214B1C5441295C8FB2739E5041CDCCCC7C491C54415C8FC255749E504133333363461C5441B81E85CB759E5041E17A14BE431C544185EB5158779E5041713D0AA7431C54410AD7A370789E504152B81E05451C5441666666B6789E50411F85EB91461C5441C3F528FC779E50418FC2F5084A1C5441000000A0799E504152B81E954A1C544127000000A4703DAA689E5041D7A3709D541C544185EB51086A9E5041D7A3709D541C5441EC51B84E6B9E5041EC51B83E531C54410AD7A3506D9E50418FC2F5C8501C54418FC2F598709E5041333333534F1C544148E17A54729E504148E17A244F1C544185EB51C8739E5041713D0A774F1C54415C8FC225749E5041F6285C0F501C544100000010749E5041A4703D9A501C54411F85EBB1729E5041333333B3521C5441295C8F82719E50417B14AE57551C54419A999999719E5041A4703D5A581C5441666666F6709E504114AE47A1591C544114AE47516E9E50417B14AEE75A1C54411F85EB216D9E504152B81E455B1C54415C8FC2956C9E504148E17A445A1C54410AD7A3506D9E50410AD7A3A0581C5441E17A14AE6D9E5041AE47E12A571C5441C3F528AC6D9E50413D0AD753551C544185EB51386C9E504152B81EB5551C5441F6285C1F6A9E504148E17AE4561C544114AE47C1689E5041713D0AB7571C544114AE4791669E5041713D0AB7571C54411F85EB31649E5041B81E852B581C54410AD7A330629E5041D7A370FD581C5441D7A3705D609E504185EB51B8591C5441333333735E9E504148E17A445A1C5441666666E65C9E5041D7A3702D5A1C5441AE47E12A5B9E50419A999989591C544114AE47415A9E5041CDCCCCFC571C544152B81EE55A9E5041EC51B89E561C54415C8FC2E55B9E5041B81E85FB551C544152B81E155D9E5041F6285C6F551C5441E17A145E619E50413D0AD7E3551C54410AD7A300619E5041D7A3706D531C54411F85EB01629E504148E17A84521C54415C8FC2A5639E504133333383511C5441D7A370ED659E5041D7A3706D531C5441A4703DAA689E5041D7A3709D541C54410103000000010000001B000000D7A3708DF99E5041B81E852B511C544185EB51E8FA9E5041333333E3521C5441A4703D5AFC9E50419A999979531C5441713D0A87FD9E5041EC51B8EE521C5441A4703DFAFD9E5041CDCCCC4C521C5441B81E851BFF9E50415C8FC235521C5441CDCCCC0C019F50417B14AEA7531C54417B14AE07049F50415C8FC2A5541C5441D7A370BD069F504152B81E25551C544166666646089F5041713D0AF7541C544185EB51B8099F50418FC2F5C8541C5441333333130B9F50410AD7A330551C5441333333E30B9F50413D0AD723561C5441C3F5288C0F9F50410AD7A300561C544114AE47A1109F50410AD7A330551C5441A4703D8A109F5041295C8F32541C54410AD7A350109F50415C8FC235521C544148E17A640B9F5041B81E855B501C5441F6285C5F079F5041666666464F1C5441C3F5282C039F504152B81E554D1C54417B14AE77FF9E5041D7A3709D4B1C5441E17A146EF79E504148E17A74481C54415C8FC235F69E5041B81E855B491C54410AD7A3F0F59E5041CDCCCC4C4B1C54419A9999A9F69E5041E17A143E4D1C5441D7A370EDF79E5041000000804F1C5441D7A3708DF99E5041B81E852B511C5441
+</a>
+
+<b>
+01060000000100000001030000000300000090000000AE47E1DA229E5041E17A147E321C54411313DA69209E5041299F3C5C321C544152B81E351F9E5041B81E854B321C5441CC5962111F9E5041E1B76320321C5441F6285C3F1C9E50418FC2F5B82E1C54418FC2F5D8199E5041713D0AA72B1C544152B81ED5169E5041AE47E10A2C1C544185EB51F80F9E50411F85EB11241C54417B14AE770E9E5041D7A3704D241C54413D0AD7E30A9E5041C3F5281C261C544185EB51E8069E5041AE47E11A281C544199F56C1B069E50416DFF1671281C54415C8FC285029E5041333333F3291C544185EB5198FF9D50419A9999192B1C5441EC51B88EFC9D50417B14AE172C1C5441666666B6FC9D5041C3F528CC2E1C54411F85EBC1FD9D5041E17A143E301C5441529FFA6DFE9D5041EFA36094301C54416344A12C009E50416B6E8E6B311C54413D0AD773019E50410AD7A3B0311C54416700A636039E5041712B3692311C5441C3F528DC039E5041713D0A87311C54410A6F7ABF069E50417A5E489A351C5441E328FD63099E5041B9FAE554391C54418FC2F5B8099E5041CDCCCCCC391C5441C6D4FF340A9E5041236E5E6D3C1C5441844EBE600A9E504168D939133D1C5441F6285CCF0B9E5041B81E858B401C5441A8D816430C9E5041B1EFD628441C5441F6285C5F0C9E5041AE47E10A451C5441DC52DB130C9E5041EC9E7AB0461C5441A5F826EF0B9E504143DCC2A7481C54413D0AD7E30B9E5041713D0A574A1C54413D499BC70C9E5041FD9022D44D1C5441C4810A41139E5041C718273E521C54411F85EB71159E504133333393531C54413B20EAFE199E5041251F7C05561C54419CF2A79C469E5041E06E1F0D671C544148E17A04489E504152B81E65661C544185EB5148459E50410AD7A3C0631C54419A999919459E50419A999979621C54410AD7A390489E504152B81EA55E1C5441EC51B81E4C9E50415C8FC2755D1C5441333333934B9E5041E17A142E5B1C54413D0AD7934C9E504114AE47A1591C5441333333F34F9E5041AE47E12A571C54412B348E15519E5041931AB10C571C544185EB5198529E504148E17AE4561C5441295C8F82549E504148E17A14581C5441B6E63DA5549E5041D6E86DB0581C54419650FD8F569E50413AB40C78601C5441BECD54F25C9E5041A697FDA85F1C5441B55323AB629E50414C3891EB5D1C544166E69966669E5041667AEB0E5C1C5441D7A3707D669E5041295C8F025C1C54418FC2F5A8689E504114AE47915C1C5441D54DCD46699E5041DE9348245F1C5441E66A750A6B9E5041426849F2601C54419EDCED996D9E5041A606E907601C5441AE47E15A6F9E5041B81E851B5F1C5441657485866F9E5041FB85581A5F1C544105137B8F719E5041F335540C5F1C54415C8FC295719E5041C3F5280C5F1C54415A9040A2719E50414E2930145F1C54411F85EB51739E50419A999929601C544116991BE8759E504108B3F4EB611C544158223A51769E5041A2E8E431621C54417B14AE47789E5041295C8F62631C54413D0AD7F3799E504133333343631C54411F85EBE17A9E504148E17AA4621C5441000000E07B9E5041713D0A77611C54414C752D417C9E504104D1BD4B5D1C5441EC51B88E7C9E5041C3F5285C571C54411F85EB71809E504166666636551C54417F410837809E5041869B9375531C5441AA8A8C04809E5041DB3BCFF4511C5441343C30DC7F9E504171BB31C1501C54418FC2F5387F9E504152B81EE54B1C544150BD5E3E7F9E5041614F1DBB4B1C5441E4C21BD57F9E50410531BC28471C5441D11743EA7F9E5041F617264E441C54411521161B7F9E50415B918CA33E1C54419A9999C97E9E5041EC51B88E3D1C54417C3FEB8C7D9E5041555AB3463D1C5441CDCCCC3C7D9E504148E17A343D1C544111823BBF7B9E5041C961B1A13C1C5441160A27EF779E5041AD04D7443B1C5441882D31CD719E50416870826D3A1C544114AE47C16E9E5041AE47E12A3A1C54419FB363AC6C9E50415EB2A331381C5441295C8FA26C9E504185EB5128381C5441DF3ADD9A6C9E5041A1B0D91B381C544114AE47916A9E5041EC51B8CE341C5441B81E85FB639E50415C8FC265301C5441EC51B8AE5F9E50417B14AE07351C5441666666565D9E5041EC51B8CE341C5441E58F87FE5C9E50416D5B11BC341C5441270809FB539E504127A95EDC321C54412C7ECCAE509E5041FAA8BF31331C544148E17A444E9E504152B81E15341C544148E17A344D9E5041D7A3705D351C5441AE47E1EA499E50413D0AD7F3351C5441B81E857B499E50410AD7A340371C544187A63CC4499E50414E413D20381C54419A9999594A9E5041B81E85EB391C5441433886154C9E504112B653153A1C5441E17A145E4C9E5041C3F5281C3A1C5441295C8FC24C9E504152B81E653B1C5441333333334C9E5041F6285C9F3C1C54416E5EB01F4C9E5041570789AE3C1C544114AE47B14A9E5041B81E85CB3D1C54410C0C9F164A9E5041AC42948F3D1C544152B81EF5479E5041C3F528BC3C1C544185EB5148469E50411F85EB013C1C5441268F9544469E504152C0F2FC3B1C54418CE1502C459E5041572494A23A1C54410AD7A3F0439E50418FC2F5383A1C5441AE47E18A429E50418FC2F5383A1C544114FD80ED419E5041CCFFDF903A1C544152B81EA5409E504185EB51483B1C544114AE47A13D9E5041AE47E14A3D1C544131074B243D9E5041194050383D1C5441E17A149E3A9E504185EB51D83C1C54415C8FC2A5379E50413D0AD7033A1C544133333373369E504114AE4731381C544185EB5188349E5041C3F528FC361C54413D0AD793329E50419A999989361C5441666666B6319E50415C8FC245381C54418E31CB96319E50416F989612391C5441D0291956319E504116B575A73B1C54416644165A319E5041F545C09F3C1C5441CDCCCC8C319E5041713D0A373E1C54419F3D3563319E504141BF85D73E1C54418FC2F548319E5041CDCCCC3C3F1C5441D7A370DD2F9E5041295C8F423F1C5441D7A3702D2E9E5041E17A140E3E1C5441C3F528AC2C9E50417B14AEE73B1C5441683706112A9E5041BAEA6EDE3A1C544152B81E25299E50410AD7A3803A1C5441BDDF3A0D299E50411823F75B3A1C5441F431BF68279E504199DA8D01381C5441ED9CE780259E504157A952F5361C54418FC2F558259E5041F6285CDF361C5441AE47E1DA229E5041E17A147E321C54410F000000000000A0799E504152B81E954A1C54418FC2F588799E504148E17AF44C1C54418FC2F558789E504185EB51984E1C5441B81E85CB759E50410AD7A3B04F1C54418FC2F5F8749E5041C3F528AC4E1C544100000010749E5041B81E850B4D1C5441B81E859B739E504114AE47214B1C5441295C8FB2739E5041CDCCCC7C491C54415C8FC255749E504133333363461C5441B81E85CB759E5041E17A14BE431C544185EB5158779E5041713D0AA7431C54410AD7A370789E504152B81E05451C5441666666B6789E50411F85EB91461C5441C3F528FC779E50418FC2F5084A1C5441000000A0799E504152B81E954A1C544127000000A4703DAA689E5041D7A3709D541C544185EB51086A9E5041D7A3709D541C5441EC51B84E6B9E5041EC51B83E531C54410AD7A3506D9E50418FC2F5C8501C54418FC2F598709E5041333333534F1C544148E17A54729E504148E17A244F1C544185EB51C8739E5041713D0A774F1C54415C8FC225749E5041F6285C0F501C544100000010749E5041A4703D9A501C54411F85EBB1729E5041333333B3521C5441295C8F82719E50417B14AE57551C54419A999999719E5041A4703D5A581C5441666666F6709E504114AE47A1591C544114AE47516E9E50417B14AEE75A1C54411F85EB216D9E504152B81E455B1C54415C8FC2956C9E504148E17A445A1C54410AD7A3506D9E50410AD7A3A0581C5441E17A14AE6D9E5041AE47E12A571C5441C3F528AC6D9E50413D0AD753551C544185EB51386C9E504152B81EB5551C5441F6285C1F6A9E504148E17AE4561C544114AE47C1689E5041713D0AB7571C544114AE4791669E5041713D0AB7571C54411F85EB31649E5041B81E852B581C54410AD7A330629E5041D7A370FD581C5441D7A3705D609E504185EB51B8591C5441333333735E9E504148E17A445A1C5441666666E65C9E5041D7A3702D5A1C5441AE47E12A5B9E50419A999989591C544114AE47415A9E5041CDCCCCFC571C544152B81EE55A9E5041EC51B89E561C54415C8FC2E55B9E5041B81E85FB551C544152B81E155D9E5041F6285C6F551C5441E17A145E619E50413D0AD7E3551C54410AD7A300619E5041D7A3706D531C54411F85EB01629E504148E17A84521C54415C8FC2A5639E504133333383511C5441D7A370ED659E5041D7A3706D531C5441A4703DAA689E5041D7A3709D541C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>389154 - 968671
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+0106000000010000000103000000010000002E000000AE47E11A1098504148E17AA465215441E17A142E139850411F85EBE162215441F6285C9F17985041D7A3709D5E2154419A9999A91A985041000000105C215441A4703DAA1C9850415C8FC2E559215441A4703DAA199850417B14AEF754215441666666A6159850419A9999794F215441D7A3707D11985041A4703DFA4921544152B81E150E985041F6285C3F45215441D7A3700D0B9850413333335345215441EC51B88E0B985041A4703D8A422154418FC2F5580C9850418FC2F5D83F2154417B14AE170D985041D7A3704D3E2154411F85EB610E985041A4703D8A3D2154411F85EB911198504185EB51083C2154417B14AE7715985041000000503A2154410AD7A37014985041713D0AA7312154419A9999A9109850413D0AD7D3312154413D0AD7630E985041AE47E1CA312154418FC2F5F80D985041D7A3701D30215441713D0A670D9850413D0AD7E32A21544114AE47D108985041000000302B215441E17A144E08985041EC51B8FE1C2154419A9999A9FA9750415C8FC2151F21544152B81E35FA9750416666663621215441E17A14DEF997504148E17A04242154410AD7A360F9975041B81E85EB262154418FC2F5D8F8975041A4703DFA292154419A999939F897504185EB51582F215441CDCCCC0CF89750415C8FC2F533215441B81E854BF897504152B81E5538215441B81E85EBF897504185EB51183B21544114AE4791FA975041B81E85FB3C2154411F85EB01FA975041295C8F2243215441B81E854BF89750419A9999F943215441E17A148EF7975041C3F5284C49215441CDCCCC0CF897504148E17A544C21544114AE4791F8975041B81E859B4E21544148E17A44FC9750411F85EBC153215441B81E85DB00985041C3F528BC5A2154417B14AEB705985041F6285C5F62215441333333B309985041AE47E1BA67215441713D0AF70A98504152B81E35682154419A9999890C98504148E17A146821544152B81E250E9850410AD7A34067215441AE47E11A1098504148E17AA465215441
+</a>
+
+<b>
+010600000001000000010300000001000000390000004E36937314985041F7F8C6BF312154411462536F14985041B8D319A7312154419A9999A9109850413D0AD7D331215441C8677A7910985041304E19D33121544197482D590E98504118C598F6312154413D6770430E98504149BAB148312154418FC2F5F80D985041D7A3701D30215441713D0A670D9850413D0AD7E32A215441AA879E5B09985041031706272B215441968BF5CD089850414FCD423B2B2154412C7A0D27089850413FEBB2041D2154419A9999A9FA9750415C8FC2151F21544152B81E35FA97504166666636212154410AD7A390F9975041B81E853B2421544148E17AD4F8975041AE47E15A27215441CDCCCC4CF89750410AD7A3F029215441CDCCCCDCF79750415C8FC2152E21544133333363F7975041666666D632215441713D0A47F7975041CDCCCC7C362154419A9999F9F69750413D0AD7E33A2154418E380675F69750418DA24BEF4121544170260DF7F89750418DA24BEF41215441A7EBEEC6F79750412634D00646215441B9828F61F79750416931424548215441B9828F61F7975041AD2EB4834A215441577324A5F7975041F02B26C24C21544114AE4791F8975041B81E859B4E21544148E17A44FC9750411F85EBC153215441B81E85DB00985041C3F528BC5A2154417B14AEB705985041F6285C5F62215441333333B309985041AE47E1BA67215441713D0AF70A98504152B81E35682154419A9999890C98504148E17A1468215441A4703DEA0D98504152B81E95672154417B14AEB70F9850413D0AD74366215441333333C3129850415C8FC2C563215441D7A370CD169850419A9999096021544152B81EB5189850411F85EB715E21544114AE47111B9850415C8FC2555C2154410AD7A3201C985041333333635B215441AE47E1FA1C985041A4703D6A5A21544191DE058623985041A2E6A172532154416666665620985041A4703DAA4F215441666666261D98504185EB51C84A215441D842266B1A985041393312BA4621544198C29C6F19985041E952A67F4521544159896640199850412CA703F2442154415DF100091898504133BFB60A432154413197E9FB1798504107659FFD42215441AB1901F417985041382BDAE94221544114AE479117985041F6285C4F422154417961FC0616985041BF451F9B3D2154418C8A0C0116985041562032943D215441DB02D722169850418CE513643C2154413D1242DF15985041629B8A773B2154414FA9E27915985041ABF70CE2392154414E36937314985041F7F8C6BF31215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>389215 - 968671
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000003500000048E17A942A985041AE47E1CA4E2154419A99992928985041295C8F124B215441713D0A5723985041B81E852B442154415C8FC2852F98504148E17A143C215441EC51B87E2D985041EC51B8AE332154415C8FC2052B985041C3F528AC29215441CDCCCC1C2B985041295C8FF226215441EC51B86E27985041B81E85EB1A215441EC51B83E239850413D0AD7E31B215441666666261E985041F6285C8F1D215441666666161D9850415C8FC2D519215441713D0A071B985041EC51B89E12215441666666261A985041666666360D215441666666461A98504152B81E8509215441C3F528EC1A985041A4703D5A06215441EC51B81E1C985041C3F5287C022154419A9999291D9850418FC2F568FF205441000000D01F9850415C8FC295F920544114AE47D1249850411F85EB61F22054413D0AD743249850419A999989F1205441000000C01F985041EC51B87EEA205441E17A146E1B985041713D0A77E3205441B81E857B17985041295C8F52E6205441A4703DBA1398504185EB51C8E9205441713D0A97109850417B14AE57ED205441A4703DCA0C98504152B81E65F220544114AE478109985041B81E85DBF6205441CDCCCCDC05985041F6285C8FFC205441F6285C9F03985041C3F528AC00215441AE47E1AA0198504148E17A6405215441AE47E10A00985041713D0AF709215441AE47E1BAFD975041AE47E15A10215441AE47E13AFC97504152B81EB5162154411F85EB51FB97504114AE47911B2154419A9999A9FA9750415C8FC2151F215441E17A144E08985041EC51B8FE1C21544114AE47D108985041000000302B215441713D0A670D9850413D0AD7E32A2154418FC2F5F80D985041D7A3701D302154413D0AD7630E985041AE47E1CA312154419A9999A9109850413D0AD7D3312154410AD7A37014985041713D0AA7312154417B14AE7715985041000000503A215441CDCCCCAC159850417B14AE873C21544114AE479117985041F6285C4F42215441C3F528DC199850415C8FC2E545215441666666261D98504185EB51C84A2154416666665620985041A4703DAA4F215441713D0A87239850413D0AD77353215441CDCCCC6C2498504100000090542154417B14AE87259850416666668653215441E17A14CE2898504148E17A745021544148E17A942A985041AE47E1CA4E215441
+</a>
+
+<b>
+010600000001000000010300000001000000390000004E36937314985041F7F8C6BF312154411462536F14985041B8D319A7312154419A9999A9109850413D0AD7D331215441C8677A7910985041304E19D33121544197482D590E98504118C598F6312154413D6770430E98504149BAB148312154418FC2F5F80D985041D7A3701D30215441713D0A670D9850413D0AD7E32A215441AA879E5B09985041031706272B215441968BF5CD089850414FCD423B2B2154412C7A0D27089850413FEBB2041D2154419A9999A9FA9750415C8FC2151F21544152B81E35FA97504166666636212154410AD7A390F9975041B81E853B2421544148E17AD4F8975041AE47E15A27215441CDCCCC4CF89750410AD7A3F029215441CDCCCCDCF79750415C8FC2152E21544133333363F7975041666666D632215441713D0A47F7975041CDCCCC7C362154419A9999F9F69750413D0AD7E33A2154418E380675F69750418DA24BEF4121544170260DF7F89750418DA24BEF41215441A7EBEEC6F79750412634D00646215441B9828F61F79750416931424548215441B9828F61F7975041AD2EB4834A215441577324A5F7975041F02B26C24C21544114AE4791F8975041B81E859B4E21544148E17A44FC9750411F85EBC153215441B81E85DB00985041C3F528BC5A2154417B14AEB705985041F6285C5F62215441333333B309985041AE47E1BA67215441713D0AF70A98504152B81E35682154419A9999890C98504148E17A1468215441A4703DEA0D98504152B81E95672154417B14AEB70F9850413D0AD74366215441333333C3129850415C8FC2C563215441D7A370CD169850419A9999096021544152B81EB5189850411F85EB715E21544114AE47111B9850415C8FC2555C2154410AD7A3201C985041333333635B215441AE47E1FA1C985041A4703D6A5A21544191DE058623985041A2E6A172532154416666665620985041A4703DAA4F215441666666261D98504185EB51C84A215441D842266B1A985041393312BA4621544198C29C6F19985041E952A67F4521544159896640199850412CA703F2442154415DF100091898504133BFB60A432154413197E9FB1798504107659FFD42215441AB1901F417985041382BDAE94221544114AE479117985041F6285C4F422154417961FC0616985041BF451F9B3D2154418C8A0C0116985041562032943D215441DB02D722169850418CE513643C2154413D1242DF15985041629B8A773B2154414FA9E27915985041ABF70CE2392154414E36937314985041F7F8C6BF31215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>389215 - 1819783
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000003500000048E17A942A985041AE47E1CA4E2154419A99992928985041295C8F124B215441713D0A5723985041B81E852B442154415C8FC2852F98504148E17A143C215441EC51B87E2D985041EC51B8AE332154415C8FC2052B985041C3F528AC29215441CDCCCC1C2B985041295C8FF226215441EC51B86E27985041B81E85EB1A215441EC51B83E239850413D0AD7E31B215441666666261E985041F6285C8F1D215441666666161D9850415C8FC2D519215441713D0A071B985041EC51B89E12215441666666261A985041666666360D215441666666461A98504152B81E8509215441C3F528EC1A985041A4703D5A06215441EC51B81E1C985041C3F5287C022154419A9999291D9850418FC2F568FF205441000000D01F9850415C8FC295F920544114AE47D1249850411F85EB61F22054413D0AD743249850419A999989F1205441000000C01F985041EC51B87EEA205441E17A146E1B985041713D0A77E3205441B81E857B17985041295C8F52E6205441A4703DBA1398504185EB51C8E9205441713D0A97109850417B14AE57ED205441A4703DCA0C98504152B81E65F220544114AE478109985041B81E85DBF6205441CDCCCCDC05985041F6285C8FFC205441F6285C9F03985041C3F528AC00215441AE47E1AA0198504148E17A6405215441AE47E10A00985041713D0AF709215441AE47E1BAFD975041AE47E15A10215441AE47E13AFC97504152B81EB5162154411F85EB51FB97504114AE47911B2154419A9999A9FA9750415C8FC2151F215441E17A144E08985041EC51B8FE1C21544114AE47D108985041000000302B215441713D0A670D9850413D0AD7E32A2154418FC2F5F80D985041D7A3701D302154413D0AD7630E985041AE47E1CA312154419A9999A9109850413D0AD7D3312154410AD7A37014985041713D0AA7312154417B14AE7715985041000000503A215441CDCCCCAC159850417B14AE873C21544114AE479117985041F6285C4F42215441C3F528DC199850415C8FC2E545215441666666261D98504185EB51C84A2154416666665620985041A4703DAA4F215441713D0A87239850413D0AD77353215441CDCCCC6C2498504100000090542154417B14AE87259850416666668653215441E17A14CE2898504148E17A745021544148E17A942A985041AE47E1CA4E215441
+</a>
+
+<b>
+010600000001000000010300000001000000390000005336937314985041F8F8C6BF312154411262536F14985041BCD319A7312154419A9999A9109850413D0AD7D331215441C5677A7910985041304E19D33121544198482D590E98504113C598F6312154413B6770430E9850414DBAB148312154418FC2F5F80D985041D7A3701D30215441713D0A670D9850413D0AD7E32A215441AB879E5B09985041061706272B215441938BF5CD089850414FCD423B2B215441317A0D27089850413AEBB2041D2154419A9999A9FA9750415C8FC2151F21544152B81E35FA97504166666636212154410AD7A390F9975041B81E853B2421544148E17AD4F8975041AE47E15A27215441CDCCCC4CF89750410AD7A3F029215441CDCCCCDCF79750415C8FC2152E21544133333363F7975041666666D632215441713D0A47F7975041CDCCCC7C362154419A9999F9F69750413D0AD7E33A21544189380675F69750418BA24BEF412154416F260DF7F89750418BA24BEF41215441A6EBEEC6F79750412B34D00646215441B5828F61F79750416831424548215441B5828F61F7975041B12EB4834A215441527324A5F7975041EE2B26C24C21544114AE4791F8975041B81E859B4E21544148E17A44FC9750411F85EBC153215441B81E85DB00985041C3F528BC5A2154417B14AEB705985041F6285C5F62215441333333B309985041AE47E1BA67215441713D0AF70A98504152B81E35682154419A9999890C98504148E17A1468215441A4703DEA0D98504152B81E95672154417B14AEB70F9850413D0AD74366215441333333C3129850415C8FC2C563215441D7A370CD169850419A9999096021544152B81EB5189850411F85EB715E21544114AE47111B9850415C8FC2555C2154410AD7A3201C985041333333635B215441AE47E1FA1C985041A4703D6A5A21544191DE058623985041A5E6A172532154416666665620985041A4703DAA4F215441666666261D98504185EB51C84A215441D542266B1A9850413E3312BA4621544199C29C6F19985041E652A67F45215441578966401998504129A703F24421544162F10009189850412FBFB60A432154413397E9FB179850410B659FFD42215441A61901F4179850413A2BDAE94221544114AE479117985041F6285C4F422154417A61FC0616985041C0451F9B3D215441888A0C0116985041592032943D215441DC02D7221698504190E513643C2154413E1242DF15985041649B8A773B2154414DA9E27915985041AAF70CE2392154415336937314985041F8F8C6BF31215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>389215 - 4450309
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000003500000048E17A942A985041AE47E1CA4E2154419A99992928985041295C8F124B215441713D0A5723985041B81E852B442154415C8FC2852F98504148E17A143C215441EC51B87E2D985041EC51B8AE332154415C8FC2052B985041C3F528AC29215441CDCCCC1C2B985041295C8FF226215441EC51B86E27985041B81E85EB1A215441EC51B83E239850413D0AD7E31B215441666666261E985041F6285C8F1D215441666666161D9850415C8FC2D519215441713D0A071B985041EC51B89E12215441666666261A985041666666360D215441666666461A98504152B81E8509215441C3F528EC1A985041A4703D5A06215441EC51B81E1C985041C3F5287C022154419A9999291D9850418FC2F568FF205441000000D01F9850415C8FC295F920544114AE47D1249850411F85EB61F22054413D0AD743249850419A999989F1205441000000C01F985041EC51B87EEA205441E17A146E1B985041713D0A77E3205441B81E857B17985041295C8F52E6205441A4703DBA1398504185EB51C8E9205441713D0A97109850417B14AE57ED205441A4703DCA0C98504152B81E65F220544114AE478109985041B81E85DBF6205441CDCCCCDC05985041F6285C8FFC205441F6285C9F03985041C3F528AC00215441AE47E1AA0198504148E17A6405215441AE47E10A00985041713D0AF709215441AE47E1BAFD975041AE47E15A10215441AE47E13AFC97504152B81EB5162154411F85EB51FB97504114AE47911B2154419A9999A9FA9750415C8FC2151F215441E17A144E08985041EC51B8FE1C21544114AE47D108985041000000302B215441713D0A670D9850413D0AD7E32A2154418FC2F5F80D985041D7A3701D302154413D0AD7630E985041AE47E1CA312154419A9999A9109850413D0AD7D3312154410AD7A37014985041713D0AA7312154417B14AE7715985041000000503A215441CDCCCCAC159850417B14AE873C21544114AE479117985041F6285C4F42215441C3F528DC199850415C8FC2E545215441666666261D98504185EB51C84A2154416666665620985041A4703DAA4F215441713D0A87239850413D0AD77353215441CDCCCC6C2498504100000090542154417B14AE87259850416666668653215441E17A14CE2898504148E17A745021544148E17A942A985041AE47E1CA4E215441
+</a>
+
+<b>
+010600000001000000010300000001000000390000005336937314985041F8F8C6BF312154411262536F14985041BCD319A7312154419A9999A9109850413D0AD7D331215441C5677A7910985041304E19D33121544198482D590E98504113C598F6312154413B6770430E9850414DBAB148312154418FC2F5F80D985041D7A3701D30215441713D0A670D9850413D0AD7E32A215441AB879E5B09985041061706272B215441938BF5CD089850414FCD423B2B215441317A0D27089850413AEBB2041D2154419A9999A9FA9750415C8FC2151F21544152B81E35FA97504166666636212154410AD7A390F9975041B81E853B2421544148E17AD4F8975041AE47E15A27215441CDCCCC4CF89750410AD7A3F029215441CDCCCCDCF79750415C8FC2152E21544133333363F7975041666666D632215441713D0A47F7975041CDCCCC7C362154419A9999F9F69750413D0AD7E33A21544189380675F69750418BA24BEF412154416F260DF7F89750418BA24BEF41215441A6EBEEC6F79750412B34D00646215441B5828F61F79750416831424548215441B5828F61F7975041B12EB4834A215441527324A5F7975041EE2B26C24C21544114AE4791F8975041B81E859B4E21544148E17A44FC9750411F85EBC153215441B81E85DB00985041C3F528BC5A2154417B14AEB705985041F6285C5F62215441333333B309985041AE47E1BA67215441713D0AF70A98504152B81E35682154419A9999890C98504148E17A1468215441A4703DEA0D98504152B81E95672154417B14AEB70F9850413D0AD74366215441333333C3129850415C8FC2C563215441D7A370CD169850419A9999096021544152B81EB5189850411F85EB715E21544114AE47111B9850415C8FC2555C2154410AD7A3201C985041333333635B215441AE47E1FA1C985041A4703D6A5A21544191DE058623985041A5E6A172532154416666665620985041A4703DAA4F215441666666261D98504185EB51C84A215441D542266B1A9850413E3312BA4621544199C29C6F19985041E652A67F45215441578966401998504129A703F24421544162F10009189850412FBFB60A432154413397E9FB179850410B659FFD42215441A61901F4179850413A2BDAE94221544114AE479117985041F6285C4F422154417A61FC0616985041C0451F9B3D215441888A0C0116985041592032943D215441DC02D7221698504190E513643C2154413E1242DF15985041649B8A773B2154414DA9E27915985041AAF70CE2392154415336937314985041F8F8C6BF31215441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>389277 - 396354
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A0000000AD7A3808A98504148E17A145E1C54413333335396985041713D0A97621C54410AD7A3A0A5985041E17A146E681C5441D7A370BDB2985041EC51B86E6D1C5441295C8F22C3985041E17A141E731C5441A4703D5AC3985041A4703D3A721C54410AD7A3C0C3985041D7A370CD6F1C5441CDCCCC0CA49850417B14AE57641C5441F6285CFF89985041E17A14FE5A1C54410AD7A3808A98504148E17A145E1C5441
+</a>
+
+<b>
+010600000001000000010300000001000000110000000AD7A3A0A5985041E17A146E681C54415CCDB47EAA9850418C4576496A1C5441E10B72BDB29850414317B76E6D1C5441ABF07D41BF985041D54ABBC5711C54418DB0FED2C2985041049A7D02731C54418B538E22C39850411C1F141E731C5441A3F13C5AC398504163C83D3A721C5441A5185AA6C398504101B6CF6C701C54418FF857AEC398504192985C3C701C544119C0A3C0C3985041CC2E71CD6F1C5441C90D1627B69850411D7AE8E26A1C5441CDCCCC0CA49850417B14AE57641C54417A905CFF899850410BA014FE5A1C5441A412A4808A985041CA6A7A145E1C5441CA1D32539698504165CE0897621C5441EFFAD2E49D9850417250827A651C54410AD7A3A0A5985041E17A146E681C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>395054 - 2130970
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000003E0000005C8FC265BCAF50411F85EB11B71F54415C8FC2E5C2AF50411F85EB51BD1F544185EB5148C9AF50411F85EBF1C11F544114AE47C1CCAF504152B81ED5C31F54419A999949D6AF5041EC51B88EC61F54418FC2F578DEAF50417B14AED7C91F5441EC51B8AEE2AF504133333323CB1F5441A4703D3AE5AF504148E17A64C71F544114AE4701E9AF5041AE47E1BAC81F544185EB51C8ECAF50415C8FC225CA1F544148E17AF4EEAF50410AD7A300CB1F54410AD7A380F2AF5041E17A147ECC1F54418FC2F598F5AF50419A9999E9CD1F5441C3F5287CFCAF5041F6285C2FD11F544114AE47B102B0504148E17A14D41F5441F6285C3F06B0504152B81EF5D51F5441713D0AA70CB05041A4703D7AD91F5441295C8FE210B0504166666626DC1F5441E17A148E16B05041CDCCCC7CE11F5441CDCCCC0C18B05041B81E853BE31F5441AE47E1DA1BB05041295C8FF2E81F544152B81E151EB050411F85EBB1EB1F5441D7A370BD1FB0504185EB51C8EB1F54410000003023B050417B14AE47F01F5441B81E85AB22B0504148E17A44F11F5441F6285C3F2CB05041C3F5284CFA1F544152B81E852CB0504148E17A74FA1F5441666666C62DB05041B81E85EBF71F54411F85EB512FB05041CDCCCCCCF41F5441E17A14FE30B0504148E17A64F11F5441713D0A9732B050413D0AD723EE1F544152B81EE535B050418FC2F568E71F54410AD7A3D02FB0504114AE47E1E31F544148E17A442AB0504152B81E65E11F54411F85EBA122B05041B81E85CBDA1F5441713D0A271DB05041C3F5282CD61F5441713D0A9717B0504100000040D11F5441B81E851B15B05041E17A140ECD1F5441F6285C6F15B05041D7A3707DCB1F5441E17A140E10B05041295C8F42C81F5441E17A14BE08B0504114AE47F1C31F5441E17A140E06B0504100000080C21F544185EB51F804B05041713D0A57C31F5441CDCCCCDC00B05041F6285C2FC21F5441D7A370BDFAAF504133333393BF1F544100000090F5AF504152B81EB5BC1F544114AE4741F0AF5041000000A0B91F5441295C8F22EAAF5041A4703D1AB41F5441C3F5289CE7AF5041AE47E1CAB11F5441EC51B8AEE7AF50419A999919B01F54419A999969C9AF5041AE47E10A9C1F5441C3F5281CC5AF5041E17A147E991F5441CDCCCCCCB5AF50418FC2F5C8901F54415C8FC245B4AF50413D0AD7F38F1F544148E17A14A5AF50419A999949871F54419A999979A5AF50415C8FC2E58C1F544185EB5198A6AF5041A4703D5A941F54413D0AD7B3A6AF504133333313951F5441A4703DEAABAF5041B81E858B9D1F5441B81E85EBB3AF5041D7A370ADA91F5441AE47E17AB9AF5041D7A3704DB31F54415C8FC265BCAF50411F85EB11B71F5441050000000AD7A350CEAF504148E17A34BE1F54415C8FC245CEAF5041C3F5283CBC1F5441000000A0D0AF50411F85EB51BC1F544152B81E95D0AF50419A999929BE1F54410AD7A350CEAF504148E17A34BE1F5441
+</a>
+
+<b>
+01060000000100000001030000000100000067000000043EFFEB31B05041212B6D1AE51F5441ADA0761743B05041665B5949ED1F54419A99991943B05041A4703D4AED1F5441B81E859B49B05041F6285C1FEF1F5441F6285CDF4CB050411F85EB31F01F5441295C8F5251B05041C3F5280CF21F54411F85EBF157B0504185EB5178F51F5441F6285C2F5AB05041CDCCCCFCF61F544158FD99895BB05041B9E121EDF71F5441F6285C9F61B0504166666626FC1F544148E17A5469B05041EC51B82E03205441D839935069B050412A40853403205441C1FE02B569B05041106BBE86032054416FD66CCB71B050416A30BE6BFB1F544192AE933071B05041D251B0E1FA1F5441B81E850B71B0504148E17A14FB1F5441333333E370B0504152B81E05FB1F54410AD7A3406EB05041A4703D8AF81F544111DBC5E868B050412AD0C97FF31F5441A4703D8A63B050417B14AE97F71F544136EAD6E356B05041840F5DF9EC1F54416B53A4ED42B05041872C2CC0E61F544148E17AF441B050417B14AE87E61F544150C7D0B13EB050416B2937ABE61F54413D0AD7533CB050410AD7A340E51F544185EB51D839B050417B14AEF7E31F5441150BE13C3AB050414D28FB48E31F54418FC2F54835B05041F6285C4FE11F54412166D86F3AB05041FE827C4CDD1F54412923EBC23DB050414CC6EE5ED91F5441D5F08B9744B050418CA077C9D21F5441C75E667E3FB05041D5EBB78DCD1F54410A906CE03BB05041B3226B77CA1F5441B27A481134B05041341C3977C51F54417B14AE0734B050411F85EB71C51F54417B14AE6732B05041CDCCCC1CC41F5441AE47E12A2FB0504166666606C11F5441828F04BB2EB050418F617C8DC01F5441CDCCCCCC2BB05041295C8F62BD1F54419514CBE629B05041CF6354F5BA1F54412CECDFE128B05041D5BA0EC7B91F54419A99994929B05041CDCCCC4CB91F5441CDCCCC9C2BB05041CDCCCC3CB61F5441A4703DCA2CB050411F85EBA1B41F54411F85EB912DB050411F85EB91B31F544185EB51282FB050418FC2F528B11F54419A9999C92FB05041F6285CCFAF1F5441AE47E18A2EB050413D0AD763AC1F5441666666E62BB050419A999969A51F54415C8FC2352BB050419A999979A51F54417B14AE6726B050419A9999D9A51F54415C8FC20520B05041713D0A47A01F54410AD7A3B01FB05041F6285C8FA01F5441A4703D3A1FB0504166666626A11F5441EC51B8DE1EB05041F6285C1FA21F5441B81E85EB1DB0504152B81E05A21F54411F85EBF11DB050419A9999A99F1F544114AE47D11DB05041295C8FA29E1F5441AE47E1CA1CB050417B14AEF79C1F5441B81E85EB1BB05041A4703DCA9B1F5441333333A31BB0504114AE47F19A1F5441295C8F821BB050418FC2F5A8991F54419A9999A91BB05041B81E859B971F54415C8FC2051CB050419A999939961F544185EB51681CB05041C3F5282C951F5441713D0AB71CB050413D0AD7E3941F54413D0AD7431DB050417B14AEB7931F5441C3F528FC1AB0504148E17A94911F5441AE47E19A18B05041A4703D1A8F1F5441D7A3706D15B05041B81E859B8B1F54411F85EB7112B05041F6285C2F881F544185EB51080EB05041000000F08D1F5441AE47E1CA03B050419A9999499B1F5441CDCCCC1CFDAF50413D0AD7B3A11F5441C3F5289CFDAF50411F85EB91A21F544166666636FEAF50415C8FC225A41F5441333333E3FDAF50411F85EBD1A51F54413D0AD793FDAF504100000010A71F54419A9999E9FCAF504185EB51E8A71F5441CDCCCC9CFBAF50411F85EBE1A81F544148E17A14FAAF50417B14AEB7A91F54413D0AD7F3F7AF50415C8FC225AA1F5441CDCCCCECF6AF5041B81E85DBA91F544152B81E95F5AF50417B14AEE7A81F5441D7A3709DF3AF504185EB51B8AA1F5441B81E853BEEAF5041CDCCCC3CB01F5441A4703DDAECAF50415C8FC2B5B11F54413D0AD703ECAF504185EB51F8B21F544114AE47B1F6AF50411F85EB11BA1F54411F85EB2101B05041C3F528DCBF1F5441E17A140E06B0504100000080C21F5441E17A14BE08B0504114AE47F1C31F5441E17A140E10B05041295C8F42C81F5441F6285C6F15B05041D7A3707DCB1F5441B81E851B15B05041E17A140ECD1F5441B5A6FE0F16B050412C5033ABCE1F54417A4777BA17B050411797595FD11F544151364DB919B050418D2C6923D31F5441369197BB1EB05041FF7D2381D71F544196BF635D27B050411DCDDD80DE1F54412F50FA182BB0504199224889E11F544198D3F1A92DB05041ACF4BA00E21F5441043EFFEB31B05041212B6D1AE51F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>395097 - 235229
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002A01000066666676F2B65041E17A148E7D185441295C8F02EDB65041B81E857B81185441F6285C1FEAB650411F85EB9183185441666666A6F3B65041E17A149E8A1854413D0AD743F4B65041295C8F828B18544133333363F7B650417B14AE0792185441666666F6FAB65041F6285C4F8F185441C3F528ACFEB6504152B81E858C1854413D0AD793FFB650417B14AED78B18544185EB519802B750411F85EB81891854418FC2F5B805B750418FC2F528871854413333333308B75041EC51B84E8518544114AE47110CB75041EC51B84E821854413333338309B75041F6285CDF7E185441666666260BB750411F85EBC17D1854418FC2F5280FB750417B14AEE77A18544152B81EE513B750417B14AEA7771854411F85EBD116B7504148E17A9475185441C3F5288C17B7504114AE471175185441AE47E12A18B75041E17A14AE741854419A9999A918B75041C3F5286C74185441000000001DB7504185EB510872185441713D0AB721B750417B14AE676F1854417B14AE8726B75041C3F528CC6C185441C3F5286C2BB75041A4703D1A6A1854410AD7A32030B750413D0AD77367185441E17A14FE33B750415C8FC275651854410AD7A3B033B750415C8FC2F5631854418FC2F56833B75041D7A370ED611854413D0AD71333B75041295C8F825F1854413D0AD70333B75041333333735E185441B81E852B33B75041E17A14EE5D1854413333335333B750411F85EB915D185441295C8F8233B750419A9999395D185441E17A14BE33B750415C8FC2D55C18544152B81E2534B75041D7A3706D5C18544185EB51A834B750411F85EBE15B1854410AD7A39036B75041666666065A1854415C8FC2A537B75041333333D3591854413D0AD7C339B750418FC2F5F85818544185EB51983AB750418FC2F59858185441C3F528FC3BB75041D7A3703D58185441713D0A573DB75041F6285CEF57185441B81E856B3EB75041C3F5287C57185441AE47E17A3FB750419A9999F956185441D7A370DD40B7504185EB51485618544185EB51C843B75041295C8F52561854416666665646B750413333335356185441A4703D6A47B750413D0AD75356185441A4703DAA49B750418FC2F5185618544114AE479149B750419A9999E953185441C3F528AC48B75041D7A3709D531854413333336349B7504114AE47F151185441713D0A674EB7504114AE47A150185441295C8FC24EB75041A4703D3A51185441295C8FA24FB75041713D0A1751185441713D0A674FB75041333333A34F18544185EB51D84EB750410AD7A3504C1854419A9999A94EB75041295C8F424B185441AE47E17A4EB750419A9999A94A185441295C8F224EB75041666666464A185441295C8F624DB75041B81E854B4A1854417B14AEE74CB750410AD7A3904A1854417B14AE874CB750411F85EBB14A185441C3F5283C4BB75041A4703D8A4A1854410AD7A3004AB75041F6285C3F4A1854413333335349B750418FC2F5384A18544148E17A3449B75041A4703DAA4B185441AE47E1FA48B75041C3F528FC4B185441E17A14AE48B75041F6285C1F4C1854415C8FC24548B75041A4703D1A4C185441A4703DDA47B7504152B81EF54B18544152B81E8547B750415C8FC2B54B1854418FC2F51847B750415C8FC2554B18544114AE47C146B75041EC51B8CE4A185441F6285C7F46B750417B14AE474A1854410AD7A32046B75041E17A143E49185441B81E85BB44B7504148E17AB44918544185EB515842B75041D7A3704D4A185441A4703D8A3FB75041C3F5286C4A185441333333D33AB750410AD7A3104A185441333333C339B7504114AE47A14A1854417B14AE1739B750415C8FC2454B1854413D0AD71338B7504148E17AA44C185441F6285C0F37B75041713D0AB74E18544152B81EC535B750419A9999B951185441295C8FA234B750416666662654185441295C8F0234B7504148E17A345518544185EB515833B750418FC2F53856185441C3F5288C31B750418FC2F51858185441F6285C6F2FB750419A9999F959185441713D0A672DB75041E17A149E5B185441295C8FC22BB75041A4703D1A5D1854411F85EBE129B750418FC2F5C85E1854413D0AD78328B75041713D0AD75F18544152B81E7527B75041F6285C4F601854413333334327B75041D7A370CD5F1854411F85EB5128B75041713D0A375F1854417B14AE8729B75041CDCCCC3C5E18544185EB51682BB75041E17A148E5C185441295C8F022DB750417B14AE075B18544114AE47012FB75041B81E858B591854413D0AD71331B75041713D0A9757185441000000E032B750410AD7A3C0551854410AD7A3D033B75041C3F5286C54185441AE47E11A35B75041D7A3707D511854418FC2F57836B75041EC51B83E4E185441D7A3702D37B7504185EB51B84C1854413D0AD71338B750413D0AD7634B1854415C8FC2E538B750417B14AE874A18544114AE47A139B75041295C8FE249185441F6285C1F37B750419A99994949185441000000C035B750418FC2F5584918544152B81E0534B7504114AE47014A18544152B81EB532B750415C8FC2F54A1854411F85EBA131B7504114AE47A14C1854418FC2F5B82FB75041C3F528BC4F185441B81E852B2EB750419A99994951185441A4703DEA2CB75041666666365218544114AE47812BB750415C8FC2C552185441666666F628B750413D0AD76353185441C3F5282C26B75041A4703DDA531854415C8FC20524B750411F85EB915418544152B81EC522B7504185EB51585518544114AE47C121B750418FC2F5E85518544152B81E5521B75041F6285C2F55185441A4703D5A22B750411F85EB91541854415C8FC20524B75041B81E85BB53185441C3F5282C26B75041333333235318544114AE47B129B75041A4703D8A5218544148E17A142CB75041295C8FD2511854410AD7A3C02DB75041F6285CCF501854410AD7A3102FB7504114AE47514F185441EC51B88E30B75041D7A370FD4C185441E17A14EE31B75041C3F5286C4A18544185EB51B833B750419A9999494918544114AE47A135B750411F85EBA1481854417B14AEC737B7504114AE47B148185441713D0A773AB75041A4703D3A49185441F6285CBF3DB750415C8FC2A5491854413D0AD71340B750413D0AD7C349185441EC51B81E43B750417B14AE77491854417B14AE8745B75041000000B0481854410AD7A35045B75041D7A3708D48185441F6285CFF44B75041CDCCCC5C481854419A9999D944B75041CDCCCC2C48185441F6285CBF44B75041D7A370DD471854418FC2F5A844B75041A4703D6A47185441AE47E17A44B75041295C8F12471854410000001044B75041295C8FA246185441CDCCCCDC43B750415C8FC215461854411F85EBA143B75041D7A370BD451854415C8FC2F542B75041D7A3702D45185441C3F528AC41B75041B81E853B44185441EC51B88E3FB7504185EB51B842185441C3F5280C3DB75041713D0AE740185441713D0AC738B75041D7A3700D3E18544152B81E3537B75041713D0AB7401854417B14AE0736B75041D7A3702D4218544152B81E5534B75041333333A343185441CDCCCC1C32B7504148E17A4445185441D7A3702D31B75041B81E854B4618544148E17A2431B75041CDCCCC4C46185441000000D030B7504148E17A2446185441295C8F2230B750411F85EB61451854418FC2F5C82FB750416666661645185441333333232FB75041C3F528AC44185441295C8F322DB75041A4703D7A431854410000007029B75041D7A3702D43185441B81E85AB26B75041000000D042185441713D0A4725B75041CDCCCCAC42185441B81E851B23B750417B14AEA743185441D7A370DD22B750413D0AD7D3431854417B14AE4722B7504152B81EE543185441295C8FB221B75041A4703DCA43185441EC51B86E21B75041EC51B8DE43185441AE47E1FA20B75041B81E853B4418544152B81E6520B75041C3F528AC44185441F6285CCF1FB750410000000045185441D7A3707D1FB75041AE47E10A45185441EC51B80E1EB7504185EB5128451854410AD7A3301DB7504148E17A34451854419A9999791BB7504185EB51F843185441000000D01AB75041C3F5285C43185441F6285CCF19B75041E17A14AE421854410000009019B75041B81E859B421854416666665619B75041C3F5289C421854410000003019B75041333333C342185441E17A140E19B750410AD7A3E042185441713D0AE718B7504114AE47E142185441EC51B89E18B75041A4703DCA421854411F85EB0117B750415C8FC2A541185441F6285CAF16B75041C3F5287C4118544152B81E4516B750415C8FC26541185441295C8FF215B7504152B81E4541185441C3F5288C15B75041000000F040185441CDCCCCFC14B750413D0AD753401854419A99997914B750411F85EB513F1854419A99990914B75041666666D63E185441CDCCCC3C13B7504148E17A443E1854411F85EBA112B750411F85EBE13D1854413333332312B75041F6285CAF3D18544148E17AA411B75041E17A149E3D1854413D0AD7D310B75041D7A3708D3D18544152B81ED50FB75041333333833D185441713D0AE70EB75041EC51B86E3D1854413D0AD7630EB750411F85EB613D1854418FC2F5B80DB750415C8FC2253D1854415C8FC2350DB7504152B81E153D185441AE47E1CA0CB75041666666163D185441AE47E14A0CB75041B81E852B3D185441A4703D1A0CB75041D7A3701D3D185441CDCCCCDC0BB750411F85EB013D185441F6285C3F0BB75041D7A3707D3C1854418FC2F5D80AB75041295C8F323C1854413D0AD7930AB75041AE47E11A3C185441C3F5283C0AB750418FC2F5083C185441666666060AB750419A9999093C1854418FC2F5B809B75041713D0A273C185441EC51B87E09B75041B81E853B3C18544152B81E0509B750411F85EB413C18544185EB510808B75041D7A370FD3B1854415C8FC24507B75041F6285CCF3B185441333333F306B75041B81E85CB3B185441000000A006B750419A9999E93B185441F6285C3F06B750415C8FC2153C1854411F85EBF105B75041A4703D2A3C1854417B14AE6705B750410AD7A3003C1854417B14AE0704B75041333333233B18544114AE47A103B7504152B81EE53A1854418FC2F55803B750411F85EBE13A185441333333C302B7504152B81E353B18544185EB515802B750417B14AE573B185441CDCCCCBC01B7504114AE47713B185441CDCCCC1C01B75041666666863B1854410AD7A39000B750417B14AEB73B1854413333331300B75041AE47E10A3C18544185EB5198FFB65041D7A3702D3C185441000000C0FDB650415C8FC2153C185441000000D0FEB65041E17A140E3F18544114AE4791FFB65041295C8FF240185441295C8FD2FFB65041E17A14CE4118544185EB51F8FFB650418FC2F5A843185441C3F5285C00B75041713D0AE7461854411F85EB2101B75041000000804E185441713D0A6701B750418FC2F598501854413D0AD76302B7504100000070501854418FC2F52803B750415C8FC2255018544185EB511804B75041666666C64F185441EC51B8BE04B750417B14AE674F1854410000006005B75041EC51B8FE4E18544114AE470106B75041A4703DBA4E185441713D0AB707B75041000000204E1854415C8FC2B509B750419A9999994D18544148E17AE40AB75041333333534D18544114AE47D10BB75041F6285CCF4C18544185EB51680CB75041AE47E18A4C1854410AD7A3E00CB7504152B81E754C185441666666B60DB7504185EB51584C185441E17A141E0EB750413D0AD7234C185441666666960EB75041EC51B8DE4B1854418FC2F5180FB75041A4703D9A4B185441D7A3701D11B75041713D0A574B185441713D0A9716B75041AE47E1AA4A18544152B81E4518B7504114AE47514B185441713D0A671BB7504152B81E2553185441713D0AF71CB7504148E17A34571854413D0AD7931EB75041F6285C4F5A185441A4703DEA1EB7504185EB51985A185441AE47E1DA1EB75041A4703DEA5A185441F6285C7F1EB7504185EB51F85B185441CDCCCCFC1DB75041C3F528AC5C185441295C8FB21DB750411F85EB915E185441A4703D1A1CB75041D7A3703D611854417B14AEC71BB75041333333C361185441E17A14BE1AB75041713D0A67631854415C8FC2551AB750417B14AED76318544148E17A041AB7504114AE47C163185441EC51B89E19B75041EC51B8AE63185441E17A143E19B750417B14AEA7631854418FC2F5D818B75041713D0AB763185441E17A142E18B7504185EB51E8631854410AD7A3C016B7504152B81E9564185441713D0A1715B750415C8FC28565185441666666C611B750411F85EB316718544185EB51380FB750419A99993968185441EC51B8FE0DB750410AD7A30069185441C3F528BC0AB7504114AE47316B1854415C8FC25509B7504148E17AB46C185441295C8F2207B7504185EB51586E185441C3F528FC04B750411F85EBF16F1854411F85EB0104B7504152B81EB57018544185EB510803B750411F85EBF17218544148E17A0403B75041CDCCCCAC76185441333333A3F7B65041666666667D185441713D0A27F6B6504185EB51687B185441A4703D4AF3B65041666666067D18544166666676F2B65041E17A148E7D185441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000D7A3702D31B75041B81E854B4618544193D3EC2831B75041793C2A4C461854419D71126A31B750414D951A634B185441E17A14EE31B75041C3F5286C4A18544185EB51B833B750419A999949491854413177CEF033B75041F69D3A3649185441A1B75D0D34B75041036125FE491854419FB75D0D34B75041046125FE491854419FB75D0D34B75041076125FE4918544152B81E0534B7504114AE47014A18544152B81EB532B750415C8FC2F54A1854411F85EBA131B7504114AE47A14C1854412746BB3431B75041805FC8524D1854412D2EC41431B750417C184ED04F185441FC49C6F130B7504199CFC15C51185441B2E3353B32B75041C2FB280754185441629D8F6834B75041FFEBF9F74E1854414544D25C36B7504167B497B24C1854415C8FC2E538B750417B14AE874A18544114AE47A139B75041295C8FE249185441F6285C1F37B750419A99994949185441000000C035B750418FC2F55849185441774FF52434B7504109FC2DF549185441774FF52434B750419F2F58244918544114AE47A135B750411F85EBA1481854417B14AEC737B7504114AE47B1481854411C925E0E39B750412AEC1CE548185441BE701F6C38B750419F0D71E245185441DFC9E34035B75041C0BFD69E45185441D7A3702D31B75041B81E854B46185441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>395097 - 397580
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002A01000066666676F2B65041E17A148E7D185441295C8F02EDB65041B81E857B81185441F6285C1FEAB650411F85EB9183185441666666A6F3B65041E17A149E8A1854413D0AD743F4B65041295C8F828B18544133333363F7B650417B14AE0792185441666666F6FAB65041F6285C4F8F185441C3F528ACFEB6504152B81E858C1854413D0AD793FFB650417B14AED78B18544185EB519802B750411F85EB81891854418FC2F5B805B750418FC2F528871854413333333308B75041EC51B84E8518544114AE47110CB75041EC51B84E821854413333338309B75041F6285CDF7E185441666666260BB750411F85EBC17D1854418FC2F5280FB750417B14AEE77A18544152B81EE513B750417B14AEA7771854411F85EBD116B7504148E17A9475185441C3F5288C17B7504114AE471175185441AE47E12A18B75041E17A14AE741854419A9999A918B75041C3F5286C74185441000000001DB7504185EB510872185441713D0AB721B750417B14AE676F1854417B14AE8726B75041C3F528CC6C185441C3F5286C2BB75041A4703D1A6A1854410AD7A32030B750413D0AD77367185441E17A14FE33B750415C8FC275651854410AD7A3B033B750415C8FC2F5631854418FC2F56833B75041D7A370ED611854413D0AD71333B75041295C8F825F1854413D0AD70333B75041333333735E185441B81E852B33B75041E17A14EE5D1854413333335333B750411F85EB915D185441295C8F8233B750419A9999395D185441E17A14BE33B750415C8FC2D55C18544152B81E2534B75041D7A3706D5C18544185EB51A834B750411F85EBE15B1854410AD7A39036B75041666666065A1854415C8FC2A537B75041333333D3591854413D0AD7C339B750418FC2F5F85818544185EB51983AB750418FC2F59858185441C3F528FC3BB75041D7A3703D58185441713D0A573DB75041F6285CEF57185441B81E856B3EB75041C3F5287C57185441AE47E17A3FB750419A9999F956185441D7A370DD40B7504185EB51485618544185EB51C843B75041295C8F52561854416666665646B750413333335356185441A4703D6A47B750413D0AD75356185441A4703DAA49B750418FC2F5185618544114AE479149B750419A9999E953185441C3F528AC48B75041D7A3709D531854413333336349B7504114AE47F151185441713D0A674EB7504114AE47A150185441295C8FC24EB75041A4703D3A51185441295C8FA24FB75041713D0A1751185441713D0A674FB75041333333A34F18544185EB51D84EB750410AD7A3504C1854419A9999A94EB75041295C8F424B185441AE47E17A4EB750419A9999A94A185441295C8F224EB75041666666464A185441295C8F624DB75041B81E854B4A1854417B14AEE74CB750410AD7A3904A1854417B14AE874CB750411F85EBB14A185441C3F5283C4BB75041A4703D8A4A1854410AD7A3004AB75041F6285C3F4A1854413333335349B750418FC2F5384A18544148E17A3449B75041A4703DAA4B185441AE47E1FA48B75041C3F528FC4B185441E17A14AE48B75041F6285C1F4C1854415C8FC24548B75041A4703D1A4C185441A4703DDA47B7504152B81EF54B18544152B81E8547B750415C8FC2B54B1854418FC2F51847B750415C8FC2554B18544114AE47C146B75041EC51B8CE4A185441F6285C7F46B750417B14AE474A1854410AD7A32046B75041E17A143E49185441B81E85BB44B7504148E17AB44918544185EB515842B75041D7A3704D4A185441A4703D8A3FB75041C3F5286C4A185441333333D33AB750410AD7A3104A185441333333C339B7504114AE47A14A1854417B14AE1739B750415C8FC2454B1854413D0AD71338B7504148E17AA44C185441F6285C0F37B75041713D0AB74E18544152B81EC535B750419A9999B951185441295C8FA234B750416666662654185441295C8F0234B7504148E17A345518544185EB515833B750418FC2F53856185441C3F5288C31B750418FC2F51858185441F6285C6F2FB750419A9999F959185441713D0A672DB75041E17A149E5B185441295C8FC22BB75041A4703D1A5D1854411F85EBE129B750418FC2F5C85E1854413D0AD78328B75041713D0AD75F18544152B81E7527B75041F6285C4F601854413333334327B75041D7A370CD5F1854411F85EB5128B75041713D0A375F1854417B14AE8729B75041CDCCCC3C5E18544185EB51682BB75041E17A148E5C185441295C8F022DB750417B14AE075B18544114AE47012FB75041B81E858B591854413D0AD71331B75041713D0A9757185441000000E032B750410AD7A3C0551854410AD7A3D033B75041C3F5286C54185441AE47E11A35B75041D7A3707D511854418FC2F57836B75041EC51B83E4E185441D7A3702D37B7504185EB51B84C1854413D0AD71338B750413D0AD7634B1854415C8FC2E538B750417B14AE874A18544114AE47A139B75041295C8FE249185441F6285C1F37B750419A99994949185441000000C035B750418FC2F5584918544152B81E0534B7504114AE47014A18544152B81EB532B750415C8FC2F54A1854411F85EBA131B7504114AE47A14C1854418FC2F5B82FB75041C3F528BC4F185441B81E852B2EB750419A99994951185441A4703DEA2CB75041666666365218544114AE47812BB750415C8FC2C552185441666666F628B750413D0AD76353185441C3F5282C26B75041A4703DDA531854415C8FC20524B750411F85EB915418544152B81EC522B7504185EB51585518544114AE47C121B750418FC2F5E85518544152B81E5521B75041F6285C2F55185441A4703D5A22B750411F85EB91541854415C8FC20524B75041B81E85BB53185441C3F5282C26B75041333333235318544114AE47B129B75041A4703D8A5218544148E17A142CB75041295C8FD2511854410AD7A3C02DB75041F6285CCF501854410AD7A3102FB7504114AE47514F185441EC51B88E30B75041D7A370FD4C185441E17A14EE31B75041C3F5286C4A18544185EB51B833B750419A9999494918544114AE47A135B750411F85EBA1481854417B14AEC737B7504114AE47B148185441713D0A773AB75041A4703D3A49185441F6285CBF3DB750415C8FC2A5491854413D0AD71340B750413D0AD7C349185441EC51B81E43B750417B14AE77491854417B14AE8745B75041000000B0481854410AD7A35045B75041D7A3708D48185441F6285CFF44B75041CDCCCC5C481854419A9999D944B75041CDCCCC2C48185441F6285CBF44B75041D7A370DD471854418FC2F5A844B75041A4703D6A47185441AE47E17A44B75041295C8F12471854410000001044B75041295C8FA246185441CDCCCCDC43B750415C8FC215461854411F85EBA143B75041D7A370BD451854415C8FC2F542B75041D7A3702D45185441C3F528AC41B75041B81E853B44185441EC51B88E3FB7504185EB51B842185441C3F5280C3DB75041713D0AE740185441713D0AC738B75041D7A3700D3E18544152B81E3537B75041713D0AB7401854417B14AE0736B75041D7A3702D4218544152B81E5534B75041333333A343185441CDCCCC1C32B7504148E17A4445185441D7A3702D31B75041B81E854B4618544148E17A2431B75041CDCCCC4C46185441000000D030B7504148E17A2446185441295C8F2230B750411F85EB61451854418FC2F5C82FB750416666661645185441333333232FB75041C3F528AC44185441295C8F322DB75041A4703D7A431854410000007029B75041D7A3702D43185441B81E85AB26B75041000000D042185441713D0A4725B75041CDCCCCAC42185441B81E851B23B750417B14AEA743185441D7A370DD22B750413D0AD7D3431854417B14AE4722B7504152B81EE543185441295C8FB221B75041A4703DCA43185441EC51B86E21B75041EC51B8DE43185441AE47E1FA20B75041B81E853B4418544152B81E6520B75041C3F528AC44185441F6285CCF1FB750410000000045185441D7A3707D1FB75041AE47E10A45185441EC51B80E1EB7504185EB5128451854410AD7A3301DB7504148E17A34451854419A9999791BB7504185EB51F843185441000000D01AB75041C3F5285C43185441F6285CCF19B75041E17A14AE421854410000009019B75041B81E859B421854416666665619B75041C3F5289C421854410000003019B75041333333C342185441E17A140E19B750410AD7A3E042185441713D0AE718B7504114AE47E142185441EC51B89E18B75041A4703DCA421854411F85EB0117B750415C8FC2A541185441F6285CAF16B75041C3F5287C4118544152B81E4516B750415C8FC26541185441295C8FF215B7504152B81E4541185441C3F5288C15B75041000000F040185441CDCCCCFC14B750413D0AD753401854419A99997914B750411F85EB513F1854419A99990914B75041666666D63E185441CDCCCC3C13B7504148E17A443E1854411F85EBA112B750411F85EBE13D1854413333332312B75041F6285CAF3D18544148E17AA411B75041E17A149E3D1854413D0AD7D310B75041D7A3708D3D18544152B81ED50FB75041333333833D185441713D0AE70EB75041EC51B86E3D1854413D0AD7630EB750411F85EB613D1854418FC2F5B80DB750415C8FC2253D1854415C8FC2350DB7504152B81E153D185441AE47E1CA0CB75041666666163D185441AE47E14A0CB75041B81E852B3D185441A4703D1A0CB75041D7A3701D3D185441CDCCCCDC0BB750411F85EB013D185441F6285C3F0BB75041D7A3707D3C1854418FC2F5D80AB75041295C8F323C1854413D0AD7930AB75041AE47E11A3C185441C3F5283C0AB750418FC2F5083C185441666666060AB750419A9999093C1854418FC2F5B809B75041713D0A273C185441EC51B87E09B75041B81E853B3C18544152B81E0509B750411F85EB413C18544185EB510808B75041D7A370FD3B1854415C8FC24507B75041F6285CCF3B185441333333F306B75041B81E85CB3B185441000000A006B750419A9999E93B185441F6285C3F06B750415C8FC2153C1854411F85EBF105B75041A4703D2A3C1854417B14AE6705B750410AD7A3003C1854417B14AE0704B75041333333233B18544114AE47A103B7504152B81EE53A1854418FC2F55803B750411F85EBE13A185441333333C302B7504152B81E353B18544185EB515802B750417B14AE573B185441CDCCCCBC01B7504114AE47713B185441CDCCCC1C01B75041666666863B1854410AD7A39000B750417B14AEB73B1854413333331300B75041AE47E10A3C18544185EB5198FFB65041D7A3702D3C185441000000C0FDB650415C8FC2153C185441000000D0FEB65041E17A140E3F18544114AE4791FFB65041295C8FF240185441295C8FD2FFB65041E17A14CE4118544185EB51F8FFB650418FC2F5A843185441C3F5285C00B75041713D0AE7461854411F85EB2101B75041000000804E185441713D0A6701B750418FC2F598501854413D0AD76302B7504100000070501854418FC2F52803B750415C8FC2255018544185EB511804B75041666666C64F185441EC51B8BE04B750417B14AE674F1854410000006005B75041EC51B8FE4E18544114AE470106B75041A4703DBA4E185441713D0AB707B75041000000204E1854415C8FC2B509B750419A9999994D18544148E17AE40AB75041333333534D18544114AE47D10BB75041F6285CCF4C18544185EB51680CB75041AE47E18A4C1854410AD7A3E00CB7504152B81E754C185441666666B60DB7504185EB51584C185441E17A141E0EB750413D0AD7234C185441666666960EB75041EC51B8DE4B1854418FC2F5180FB75041A4703D9A4B185441D7A3701D11B75041713D0A574B185441713D0A9716B75041AE47E1AA4A18544152B81E4518B7504114AE47514B185441713D0A671BB7504152B81E2553185441713D0AF71CB7504148E17A34571854413D0AD7931EB75041F6285C4F5A185441A4703DEA1EB7504185EB51985A185441AE47E1DA1EB75041A4703DEA5A185441F6285C7F1EB7504185EB51F85B185441CDCCCCFC1DB75041C3F528AC5C185441295C8FB21DB750411F85EB915E185441A4703D1A1CB75041D7A3703D611854417B14AEC71BB75041333333C361185441E17A14BE1AB75041713D0A67631854415C8FC2551AB750417B14AED76318544148E17A041AB7504114AE47C163185441EC51B89E19B75041EC51B8AE63185441E17A143E19B750417B14AEA7631854418FC2F5D818B75041713D0AB763185441E17A142E18B7504185EB51E8631854410AD7A3C016B7504152B81E9564185441713D0A1715B750415C8FC28565185441666666C611B750411F85EB316718544185EB51380FB750419A99993968185441EC51B8FE0DB750410AD7A30069185441C3F528BC0AB7504114AE47316B1854415C8FC25509B7504148E17AB46C185441295C8F2207B7504185EB51586E185441C3F528FC04B750411F85EBF16F1854411F85EB0104B7504152B81EB57018544185EB510803B750411F85EBF17218544148E17A0403B75041CDCCCCAC76185441333333A3F7B65041666666667D185441713D0A27F6B6504185EB51687B185441A4703D4AF3B65041666666067D18544166666676F2B65041E17A148E7D185441
+</a>
+
+<b>
+0106000000010000000103000000010000001E000000D7A3702D31B75041B81E854B4618544193D3EC2831B75041793C2A4C461854419D71126A31B750414D951A634B185441E17A14EE31B75041C3F5286C4A18544185EB51B833B750419A999949491854413177CEF033B75041F69D3A3649185441A1B75D0D34B75041036125FE491854419FB75D0D34B75041046125FE491854419FB75D0D34B75041076125FE4918544152B81E0534B7504114AE47014A18544152B81EB532B750415C8FC2F54A1854411F85EBA131B7504114AE47A14C1854412746BB3431B75041805FC8524D1854412D2EC41431B750417C184ED04F185441FC49C6F130B7504199CFC15C51185441B2E3353B32B75041C2FB280754185441629D8F6834B75041FFEBF9F74E1854414544D25C36B7504167B497B24C1854415C8FC2E538B750417B14AE874A18544114AE47A139B75041295C8FE249185441F6285C1F37B750419A99994949185441000000C035B750418FC2F55849185441774FF52434B7504109FC2DF549185441774FF52434B750419F2F58244918544114AE47A135B750411F85EBA1481854417B14AEC737B7504114AE47B1481854411C925E0E39B750412AEC1CE548185441BE701F6C38B750419F0D71E245185441DFC9E34035B75041C0BFD69E45185441D7A3702D31B75041B81E854B46185441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>395171 - 1746675
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000020000000103000000030000006A000000C3F528CCB4A05041A4703DFA091A5441F6285CBFBBA05041CDCCCCACFF195441F6285C2FBFA050418FC2F5A8FA19544100000040BEA0504100000070F9195441B81E856BBBA05041AE47E12AF6195441713D0A67B8A050415C8FC2E5F21954417B14AEB7B3A05041EC51B87EEE195441666666E6ADA05041EC51B85EE9195441F6285C8FA9A050418FC2F598E51954413D0AD753A7A05041D7A3707DE31954418FC2F5C8A5A05041AE47E1DAE1195441713D0A77A4A0504100000040E0195441C3F528BCA2A0504148E17AF4DD19544114AE47F1A0A0504185EB5148DB195441713D0A379FA050413D0AD793D819544148E17AB49DA050417B14AEC7D51954418FC2F5989BA050418FC2F5D8D1195441E17A14EE99A050413D0AD753CE19544148E17AC498A0504185EB5108CC1954411F85EB2197A0504152B81E65CA1954413333330398A050418FC2F5C8CC1954410AD7A3F093A05041F6285C7FD0195441CDCCCCFC8EA050417B14AEB7CB1954418FC2F5788CA05041295C8FD2CD195441EC51B81E8BA050410AD7A360CC195441F6285C9F8BA05041000000E0CB195441000000F08EA0504148E17AC4C81954411F85EBE18CA050418FC2F5A8C719544148E17AC48EA050413D0AD763C4195441B81E850B8EA05041AE47E1EAC3195441E17A14AE8AA0504185EB5148C219544114AE47D187A0504166666606C1195441666666A685A05041CDCCCC1CC0195441C3F5284C84A05041C3F528BCBF195441000000B081A05041B81E851BBF195441333333A37EA05041A4703D4ABE195441666666B67BA050419A9999C9BD195441AE47E15A79A0504185EB5148BD195441713D0A3777A0504185EB51F8BC1954410AD7A3C074A05041666666E6BC195441666666B670A050411F85EB91C2195441B81E857B62A050418FC2F578C21954410AD7A30061A05041C3F528BCC31954410AD7A3F05EA05041C3F5283CC71954410AD7A3805EA05041C3F5280CCB1954410AD7A3A05BA05041C3F5286CCE1954410AD7A3C05AA05041C3F528DCD21954410AD7A39057A05041C3F528BCD51954410AD7A3D055A05041C3F5280CDB1954410AD7A3404DA05041C3F528ECE81954410AD7A3904AA05041C3F5285CF01954410AD7A3A04AA05041C3F5284CF51954410AD7A3404CA05041C3F528ECFC1954413D0AD7F348A05041A4703DBA021A544114AE47C149A05041F6285C7F031A5441F6285C4F4DA05041295C8FB2061A5441AE47E12A4DA050411F85EB11091A5441666666B64EA05041E17A140E0A1A5441AE47E15A53A05041A4703D6A051A5441AE47E1DA57A0504148E17AD4011A5441CDCCCC4C5BA050411F85EBF1FE1954418FC2F5885EA0504166666666FD19544148E17A1460A0504166666666FD195441295C8F4262A0504148E17A74FE195441295C8F9260A05041A4703DEA001A5441AE47E15A5CA0504185EB5138041A5441EC51B8FE57A0504166666616081A54418FC2F54853A0504185EB51380D1A5441AE47E1AA51A05041000000C00F1A5441AE47E1DA4EA05041C3F528FC121A5441CDCCCC5C4EA05041E17A144E151A5441EC51B88E4FA0504185EB5108191A5441295C8F1253A05041000000B01C1A5441AE47E1BA56A05041666666C61B1A54415C8FC2555AA05041295C8F521B1A54418FC2F5185FA0504185EB5168251A5441E17A142E64A05041C3F528DC261A5441295C8FB269A05041E17A144E271A5441CDCCCCEC6BA05041C3F528FC231A5441AE47E12A6FA05041A4703D3A221A54410AD7A3E072A0504100000080221A5441666666E676A0504185EB51D8241A5441EC51B81E7BA050413D0AD7132A1A5441CDCCCC0C7EA050411F85EBA12D1A5441EC51B81E7BA0504185EB5158311A54413D0AD7A37DA0504166666606341A5441F6285C1F81A05041C3F5281C351A54410000006085A0504148E17AF4341A5441F6285CEF88A05041E17A14CE351A544152B81E558BA050417B14AEA7361A544114AE470188A0504185EB51F8371A5441D7A3705D83A05041AE47E1AA381A5441E17A14DE7CA0504148E17AE4371A5441D7A3702D7DA05041000000C0391A54417B14AEF780A050411F85EB513F1A5441B81E85FB83A050415C8FC205411A5441CDCCCC9C86A05041EC51B82E421A5441666666B68AA05041E17A147E421A544114AE47B18CA0504133333393441A544114AE47A193A05041D7A3705D3A1A544148E17AF496A0504152B81E85351A5441000000609CA05041713D0A972D1A544114AE4701A5A050413D0AD7F3201A54415C8FC2C5ACA050411F85EB81151A54411F85EB71B1A0504152B81EB50E1A5441C3F528CCB4A05041A4703DFA091A54410A000000EC51B87E9BA0504166666696151A5441EC51B85E9AA05041E17A146E161A54410AD7A35099A05041C3F5283C151A54410AD7A31097A0504148E17AD4131A54416666667694A0504148E17A94111A5441CDCCCCFC92A050411F85EB410F1A54418FC2F58894A05041000000F00C1A54418FC2F53896A0504185EB51580E1A544148E17A7499A0504148E17A94111A5441EC51B87E9BA0504166666696151A54410D00000048E17AC473A0504100000010FC1954418FC2F51871A0504148E17A34FC1954410AD7A3206FA0504185EB5188F9195441AE47E13A6DA050411F85EB91FB195441CDCCCCEC69A0504166666646FC1954418FC2F5A868A0504185EB51F8F81954418FC2F5E86AA0504100000090F71954410AD7A3506CA0504148E17A34F3195441295C8F126EA05041C3F528ACF0195441CDCCCC3C71A05041C3F528ACF0195441AE47E1FA73A0504100000080F2195441EC51B81E74A0504185EB51D8F719544148E17AC473A0504100000010FC1954410103000000010000004400000033333313D6A050415C8FC2E5D81954417B14AE47DDA050418FC2F538CE195441AE47E18ADFA0504148E17AF4CA195441E17A144EDEA0504185EB5138C91954413D0AD7A3DCA05041C3F5282CC7195441295C8FF2D8A0504100000090C3195441B81E853BD5A05041F6285CAFBF195441295C8FD2D3A05041295C8F22BE1954410AD7A390D1A0504148E17A24BA195441CDCCCC6CCFA05041295C8F72B71954410AD7A350CEA0504152B81E85B6195441A4703D8ACCA05041C3F528BCB4195441CDCCCC2CCDA050410AD7A350B31954413D0AD733CBA050410AD7A3B0B11954411F85EB21C4A0504133333323B519544152B81E85BAA050417B14AE47A91954415C8FC285AEA050417B14AEB7A719544114AE47C1AFA0504166666626A51954411F85EB51AFA050418FC2F548A51954410AD7A3F0ABA05041CDCCCC4CA619544100000000ABA050411F85EBD1A61954419A999919A9A05041B81E855BA7195441EC51B86EA8A05041C3F528ECA71954419A9999D9A5A05041A4703DDAA8195441EC51B82EA4A05041E17A14DEA9195441AE47E12A9FA050410AD7A3F0AC1954410AD7A30096A0504185EB51F8AD19544152B81E558FA05041713D0A07AF19544148E17A8489A05041D7A370BDAF1954413D0AD76385A05041CDCCCC9CB01954411F85EB717AA0504185EB51E8B4195441AE47E13A78A0504148E17A04B81954417B14AE2775A0504166666656BC195441F6285C4F77A05041713D0A67BC1954413D0AD7237AA050417B14AEC7BC195441000000907CA050410AD7A330BD1954415C8FC25580A050411F85EB11BE195441A4703D0A83A05041295C8FB2BE195441E17A14BE85A050413D0AD783BF195441A4703D2A88A050415C8FC275C0195441666666D68AA050417B14AE97C1195441AE47E1AA8DA050419A9999F9C2195441EC51B81E90A05041B81E854BC4195441333333C392A05041666666D6C5195441D7A3702D94A0504148E17AC4C41954410AD7A34096A05041CDCCCC0CC51954411F85EB0197A0504100000010C71954410AD7A32096A050411F85EB21C8195441A4703D6A97A0504148E17AA4C9195441D7A3705D99A050417B14AEC7CB1954417B14AED79AA050413D0AD793CE195441295C8F829CA050419A999939D219544152B81E259EA05041713D0A57D5195441666666269FA0504114AE47E1D6195441295C8F92A1A0504185EB5128DB195441EC51B80EA4A05041D7A3709DDE1954411F85EB01A6A050411F85EB31E1195441C3F5288CA7A0504148E17AE4E219544185EB5128AAA0504185EB5138E51954417B14AEF7AEA05041713D0A77E919544114AE47F1B4A05041713D0AC7EE195441713D0A87B8A05041CDCCCC2CF21954413D0AD763BBA050419A999939F51954410AD7A370BEA05041EC51B89EF81954418FC2F598BFA05041F6285C0FFA1954410AD7A3E0C3A05041F6285CCFF319544114AE47A1CDA0504114AE4771E519544133333313D6A050415C8FC2E5D8195441
+</a>
+
+<b>
+010600000001000000010300000003000000BB00000026266E09B7A05041C52026C3F0195441713D0A87B8A05041CDCCCC2CF21954413D0AD763BBA050419A999939F51954410AD7A370BEA05041EC51B89EF81954418FC2F598BFA05041F6285C0FFA195441E17A148EC1A05041A4703D3AFC195441EC51B8FEC3A05041D7A3702DFF1954417B14AE37C6A0504133333333021A544132A254D7D0A050412CC45232F21954416982E619DDA05041D47A38A7E019544100708831DBA05041448B5B50D11954417B14AE47DDA050418FC2F538CE195441AE47E18ADFA0504148E17AF4CA195441E17A144EDEA0504185EB5138C91954413D0AD7A3DCA05041C3F5282CC7195441295C8FF2D8A0504100000090C3195441B81E853BD5A05041F6285CAFBF195441295C8FD2D3A05041295C8F22BE1954410AD7A390D1A0504148E17A24BA195441CDCCCC6CCFA05041295C8F72B71954410AD7A350CEA0504152B81E85B6195441A4703D8ACCA05041C3F528BCB4195441CDCCCC2CCDA050410AD7A350B31954411F85EB21D3A05041B81E859BA61954415C8FC2A5D0A05041295C8F82A7195441F6285C1FCEA05041B81E853BA81954410AD7A330CCA05041A4703D4AA8195441C57F4D15CBA050411188DD2BAB195441ADDC896BC8A0504181DDFA90AC1954413B4191CAC3A050416B801223AD1954418C6F035EC0A0504130C6952FAC19544152B81E85BAA050417B14AE47A91954415C8FC285AEA050417B14AEB7A719544114AE47C1AFA0504166666626A51954411F85EB51AFA050418FC2F548A51954410AD7A3F0ABA05041CDCCCC4CA619544100000000ABA050411F85EBD1A61954419A999919A9A05041B81E855BA7195441EC51B86EA8A05041C3F528ECA71954419A9999D9A5A05041A4703DDAA8195441EC51B82EA4A05041E17A14DEA9195441AE47E12A9FA050410AD7A3F0AC1954410AD7A30096A0504185EB51F8AD19544152B81E558FA05041713D0A07AF19544148E17A8489A05041D7A370BDAF1954413D0AD76385A05041CDCCCC9CB01954411F85EB717AA0504185EB51E8B4195441AE47E13A78A0504148E17A04B81954417B14AE2775A0504166666656BC195441F6285C4F77A05041713D0A67BC1954413D0AD7237AA050417B14AEC7BC195441000000907CA050410AD7A330BD1954415C8FC25580A050411F85EB11BE195441A4703D0A83A05041295C8FB2BE195441E17A14BE85A050413D0AD783BF195441A4703D2A88A050415C8FC275C0195441666666D68AA050417B14AE97C1195441AE47E1AA8DA050419A9999F9C2195441EC51B81E90A05041B81E854BC4195441333333C392A05041666666D6C5195441D7A3702D94A0504148E17AC4C41954410AD7A34096A05041CDCCCC0CC51954411F85EB0197A0504100000010C71954410AD7A32096A050411F85EB21C8195441A4703D6A97A0504148E17AA4C9195441D7A3705D99A050417B14AEC7CB1954417B14AED79AA050413D0AD793CE195441295C8F829CA050419A999939D219544152B81E259EA05041713D0A57D5195441666666269FA0504114AE47E1D6195441295C8F92A1A0504185EB5128DB195441EC51B80EA4A05041D7A3709DDE1954411F85EB01A6A050411F85EB31E1195441C3F5288CA7A0504148E17AE4E219544185EB5128AAA0504185EB5138E51954417B14AEF7AEA05041713D0A77E919544114AE47F1B4A05041713D0AC7EE19544143DE7D4FB5A0504146045320EF1954417B14AEB7B3A05041EC51B87EEE195441666666E6ADA05041EC51B85EE9195441F6285C8FA9A050418FC2F598E51954413D0AD753A7A05041D7A3707DE31954418FC2F5C8A5A05041AE47E1DAE1195441713D0A77A4A0504100000040E0195441C3F528BCA2A0504148E17AF4DD19544114AE47F1A0A0504185EB5148DB195441713D0A379FA050413D0AD793D819544148E17AB49DA050417B14AEC7D51954418FC2F5989BA050418FC2F5D8D1195441E17A14EE99A050413D0AD753CE19544148E17AC498A0504185EB5108CC1954411F85EB2197A0504152B81E65CA1954413333330398A050418FC2F5C8CC1954410AD7A3F093A05041F6285C7FD0195441CDCCCCFC8EA050417B14AEB7CB1954418FC2F5788CA05041295C8FD2CD195441EC51B81E8BA050410AD7A360CC195441F6285C9F8BA05041000000E0CB195441000000F08EA0504148E17AC4C81954411F85EBE18CA050418FC2F5A8C719544148E17AC48EA050413D0AD763C4195441B81E850B8EA05041AE47E1EAC3195441E17A14AE8AA0504185EB5148C219544114AE47D187A0504166666606C1195441666666A685A05041CDCCCC1CC0195441C3F5284C84A05041C3F528BCBF195441000000B081A05041B81E851BBF195441333333A37EA05041A4703D4ABE195441666666B67BA050419A9999C9BD195441AE47E15A79A0504185EB5148BD195441713D0A3777A0504185EB51F8BC1954410AD7A3C074A05041666666E6BC195441666666B670A050411F85EB91C2195441B81E857B62A050418FC2F578C21954410AD7A30061A05041C3F528BCC31954410AD7A3F05EA05041C3F5283CC71954410AD7A3805EA05041C3F5280CCB1954410AD7A3A05BA05041C3F5286CCE1954410AD7A3C05AA05041C3F528DCD21954410AD7A39057A05041C3F528BCD51954410AD7A3D055A05041C3F5280CDB1954410AD7A3404DA05041C3F528ECE81954410AD7A3904AA05041C3F5285CF01954410AD7A3A04AA05041C3F5284CF51954410AD7A3404CA05041C3F528ECFC1954413D0AD7F348A05041A4703DBA021A544114AE47C149A05041F6285C7F031A5441F6285C4F4DA05041295C8FB2061A5441AE47E12A4DA050411F85EB11091A5441666666B64EA05041E17A140E0A1A5441AE47E15A53A05041A4703D6A051A5441AE47E1DA57A0504148E17AD4011A5441CDCCCC4C5BA050411F85EBF1FE1954418FC2F5885EA0504166666666FD19544148E17A1460A0504166666666FD195441295C8F4262A0504148E17A74FE195441295C8F9260A05041A4703DEA001A5441AE47E15A5CA0504185EB5138041A5441EC51B8FE57A0504166666616081A54418FC2F54853A0504185EB51380D1A5441AE47E1AA51A05041000000C00F1A5441AE47E1DA4EA05041C3F528FC121A5441CDCCCC5C4EA05041E17A144E151A5441EC51B88E4FA0504185EB5108191A5441295C8F1253A05041000000B01C1A5441AE47E1BA56A05041666666C61B1A54415C8FC2555AA05041295C8F521B1A54418FC2F5185FA0504185EB5168251A5441E17A142E64A05041C3F528DC261A5441295C8FB269A05041E17A144E271A5441CDCCCCEC6BA05041C3F528FC231A5441AE47E12A6FA05041A4703D3A221A54410AD7A3E072A0504100000080221A5441666666E676A0504185EB51D8241A5441EC51B81E7BA050413D0AD7132A1A5441CDCCCC0C7EA050411F85EBA12D1A5441EC51B81E7BA0504185EB5158311A54413D0AD7A37DA0504166666606341A5441F6285C1F81A05041C3F5281C351A54410000006085A0504148E17AF4341A5441F6285CEF88A05041E17A14CE351A544152B81E558BA050417B14AEA7361A544114AE470188A0504185EB51F8371A5441D7A3705D83A05041AE47E1AA381A5441E17A14DE7CA0504148E17AE4371A5441D7A3702D7DA05041000000C0391A54417B14AEF780A050411F85EB513F1A5441B81E85FB83A050415C8FC205411A5441CDCCCC9C86A05041EC51B82E421A5441666666B68AA05041E17A147E421A544114AE47B18CA0504133333393441A54413972FF0C92A05041E20853D5441A54418852BC5D99A050419C4B6E473F1A5441CD2BA34EA2A0504176B18C8A361A54415FE54690B2A050413E6F736D1E1A544128D09962BCA05041F256B256101A54413F8197BAC5A050418DBDC1E8021A54419A999969C3A050417B14AE77FF195441CDCCCC4CC1A0504148E17AF4FC195441F6285C2FBFA050418FC2F5A8FA19544100000040BEA0504100000070F9195441B81E856BBBA05041AE47E12AF6195441713D0A67B8A050415C8FC2E5F2195441584F7732B5A05041CAAF61E0EF195441B3B289C3B3A0504115A76A8BEE19544199F8DC62B5A05041F406EF30EF19544126266E09B7A05041C52026C3F01954410A000000EC51B87E9BA0504166666696151A5441EC51B85E9AA05041E17A146E161A54410AD7A35099A05041C3F5283C151A54410AD7A31097A0504148E17AD4131A54416666667694A0504148E17A94111A5441CDCCCCFC92A050411F85EB410F1A54418FC2F58894A05041000000F00C1A54418FC2F53896A0504185EB51580E1A544148E17A7499A0504148E17A94111A5441EC51B87E9BA0504166666696151A54410D00000048E17AC473A0504100000010FC1954418FC2F51871A0504148E17A34FC1954410AD7A3206FA0504185EB5188F9195441AE47E13A6DA050411F85EB91FB195441CDCCCCEC69A0504166666646FC1954418FC2F5A868A0504185EB51F8F81954418FC2F5E86AA0504100000090F71954410AD7A3506CA0504148E17A34F3195441295C8F126EA05041C3F528ACF0195441CDCCCC3C71A05041C3F528ACF0195441AE47E1FA73A0504100000080F2195441EC51B81E74A0504185EB51D8F719544148E17AC473A0504100000010FC195441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>395171 - 3214062
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000020000000103000000030000006A000000C3F528CCB4A05041A4703DFA091A5441F6285CBFBBA05041CDCCCCACFF195441F6285C2FBFA050418FC2F5A8FA19544100000040BEA0504100000070F9195441B81E856BBBA05041AE47E12AF6195441713D0A67B8A050415C8FC2E5F21954417B14AEB7B3A05041EC51B87EEE195441666666E6ADA05041EC51B85EE9195441F6285C8FA9A050418FC2F598E51954413D0AD753A7A05041D7A3707DE31954418FC2F5C8A5A05041AE47E1DAE1195441713D0A77A4A0504100000040E0195441C3F528BCA2A0504148E17AF4DD19544114AE47F1A0A0504185EB5148DB195441713D0A379FA050413D0AD793D819544148E17AB49DA050417B14AEC7D51954418FC2F5989BA050418FC2F5D8D1195441E17A14EE99A050413D0AD753CE19544148E17AC498A0504185EB5108CC1954411F85EB2197A0504152B81E65CA1954413333330398A050418FC2F5C8CC1954410AD7A3F093A05041F6285C7FD0195441CDCCCCFC8EA050417B14AEB7CB1954418FC2F5788CA05041295C8FD2CD195441EC51B81E8BA050410AD7A360CC195441F6285C9F8BA05041000000E0CB195441000000F08EA0504148E17AC4C81954411F85EBE18CA050418FC2F5A8C719544148E17AC48EA050413D0AD763C4195441B81E850B8EA05041AE47E1EAC3195441E17A14AE8AA0504185EB5148C219544114AE47D187A0504166666606C1195441666666A685A05041CDCCCC1CC0195441C3F5284C84A05041C3F528BCBF195441000000B081A05041B81E851BBF195441333333A37EA05041A4703D4ABE195441666666B67BA050419A9999C9BD195441AE47E15A79A0504185EB5148BD195441713D0A3777A0504185EB51F8BC1954410AD7A3C074A05041666666E6BC195441666666B670A050411F85EB91C2195441B81E857B62A050418FC2F578C21954410AD7A30061A05041C3F528BCC31954410AD7A3F05EA05041C3F5283CC71954410AD7A3805EA05041C3F5280CCB1954410AD7A3A05BA05041C3F5286CCE1954410AD7A3C05AA05041C3F528DCD21954410AD7A39057A05041C3F528BCD51954410AD7A3D055A05041C3F5280CDB1954410AD7A3404DA05041C3F528ECE81954410AD7A3904AA05041C3F5285CF01954410AD7A3A04AA05041C3F5284CF51954410AD7A3404CA05041C3F528ECFC1954413D0AD7F348A05041A4703DBA021A544114AE47C149A05041F6285C7F031A5441F6285C4F4DA05041295C8FB2061A5441AE47E12A4DA050411F85EB11091A5441666666B64EA05041E17A140E0A1A5441AE47E15A53A05041A4703D6A051A5441AE47E1DA57A0504148E17AD4011A5441CDCCCC4C5BA050411F85EBF1FE1954418FC2F5885EA0504166666666FD19544148E17A1460A0504166666666FD195441295C8F4262A0504148E17A74FE195441295C8F9260A05041A4703DEA001A5441AE47E15A5CA0504185EB5138041A5441EC51B8FE57A0504166666616081A54418FC2F54853A0504185EB51380D1A5441AE47E1AA51A05041000000C00F1A5441AE47E1DA4EA05041C3F528FC121A5441CDCCCC5C4EA05041E17A144E151A5441EC51B88E4FA0504185EB5108191A5441295C8F1253A05041000000B01C1A5441AE47E1BA56A05041666666C61B1A54415C8FC2555AA05041295C8F521B1A54418FC2F5185FA0504185EB5168251A5441E17A142E64A05041C3F528DC261A5441295C8FB269A05041E17A144E271A5441CDCCCCEC6BA05041C3F528FC231A5441AE47E12A6FA05041A4703D3A221A54410AD7A3E072A0504100000080221A5441666666E676A0504185EB51D8241A5441EC51B81E7BA050413D0AD7132A1A5441CDCCCC0C7EA050411F85EBA12D1A5441EC51B81E7BA0504185EB5158311A54413D0AD7A37DA0504166666606341A5441F6285C1F81A05041C3F5281C351A54410000006085A0504148E17AF4341A5441F6285CEF88A05041E17A14CE351A544152B81E558BA050417B14AEA7361A544114AE470188A0504185EB51F8371A5441D7A3705D83A05041AE47E1AA381A5441E17A14DE7CA0504148E17AE4371A5441D7A3702D7DA05041000000C0391A54417B14AEF780A050411F85EB513F1A5441B81E85FB83A050415C8FC205411A5441CDCCCC9C86A05041EC51B82E421A5441666666B68AA05041E17A147E421A544114AE47B18CA0504133333393441A544114AE47A193A05041D7A3705D3A1A544148E17AF496A0504152B81E85351A5441000000609CA05041713D0A972D1A544114AE4701A5A050413D0AD7F3201A54415C8FC2C5ACA050411F85EB81151A54411F85EB71B1A0504152B81EB50E1A5441C3F528CCB4A05041A4703DFA091A54410A000000EC51B87E9BA0504166666696151A5441EC51B85E9AA05041E17A146E161A54410AD7A35099A05041C3F5283C151A54410AD7A31097A0504148E17AD4131A54416666667694A0504148E17A94111A5441CDCCCCFC92A050411F85EB410F1A54418FC2F58894A05041000000F00C1A54418FC2F53896A0504185EB51580E1A544148E17A7499A0504148E17A94111A5441EC51B87E9BA0504166666696151A54410D00000048E17AC473A0504100000010FC1954418FC2F51871A0504148E17A34FC1954410AD7A3206FA0504185EB5188F9195441AE47E13A6DA050411F85EB91FB195441CDCCCCEC69A0504166666646FC1954418FC2F5A868A0504185EB51F8F81954418FC2F5E86AA0504100000090F71954410AD7A3506CA0504148E17A34F3195441295C8F126EA05041C3F528ACF0195441CDCCCC3C71A05041C3F528ACF0195441AE47E1FA73A0504100000080F2195441EC51B81E74A0504185EB51D8F719544148E17AC473A0504100000010FC1954410103000000010000004400000033333313D6A050415C8FC2E5D81954417B14AE47DDA050418FC2F538CE195441AE47E18ADFA0504148E17AF4CA195441E17A144EDEA0504185EB5138C91954413D0AD7A3DCA05041C3F5282CC7195441295C8FF2D8A0504100000090C3195441B81E853BD5A05041F6285CAFBF195441295C8FD2D3A05041295C8F22BE1954410AD7A390D1A0504148E17A24BA195441CDCCCC6CCFA05041295C8F72B71954410AD7A350CEA0504152B81E85B6195441A4703D8ACCA05041C3F528BCB4195441CDCCCC2CCDA050410AD7A350B31954413D0AD733CBA050410AD7A3B0B11954411F85EB21C4A0504133333323B519544152B81E85BAA050417B14AE47A91954415C8FC285AEA050417B14AEB7A719544114AE47C1AFA0504166666626A51954411F85EB51AFA050418FC2F548A51954410AD7A3F0ABA05041CDCCCC4CA619544100000000ABA050411F85EBD1A61954419A999919A9A05041B81E855BA7195441EC51B86EA8A05041C3F528ECA71954419A9999D9A5A05041A4703DDAA8195441EC51B82EA4A05041E17A14DEA9195441AE47E12A9FA050410AD7A3F0AC1954410AD7A30096A0504185EB51F8AD19544152B81E558FA05041713D0A07AF19544148E17A8489A05041D7A370BDAF1954413D0AD76385A05041CDCCCC9CB01954411F85EB717AA0504185EB51E8B4195441AE47E13A78A0504148E17A04B81954417B14AE2775A0504166666656BC195441F6285C4F77A05041713D0A67BC1954413D0AD7237AA050417B14AEC7BC195441000000907CA050410AD7A330BD1954415C8FC25580A050411F85EB11BE195441A4703D0A83A05041295C8FB2BE195441E17A14BE85A050413D0AD783BF195441A4703D2A88A050415C8FC275C0195441666666D68AA050417B14AE97C1195441AE47E1AA8DA050419A9999F9C2195441EC51B81E90A05041B81E854BC4195441333333C392A05041666666D6C5195441D7A3702D94A0504148E17AC4C41954410AD7A34096A05041CDCCCC0CC51954411F85EB0197A0504100000010C71954410AD7A32096A050411F85EB21C8195441A4703D6A97A0504148E17AA4C9195441D7A3705D99A050417B14AEC7CB1954417B14AED79AA050413D0AD793CE195441295C8F829CA050419A999939D219544152B81E259EA05041713D0A57D5195441666666269FA0504114AE47E1D6195441295C8F92A1A0504185EB5128DB195441EC51B80EA4A05041D7A3709DDE1954411F85EB01A6A050411F85EB31E1195441C3F5288CA7A0504148E17AE4E219544185EB5128AAA0504185EB5138E51954417B14AEF7AEA05041713D0A77E919544114AE47F1B4A05041713D0AC7EE195441713D0A87B8A05041CDCCCC2CF21954413D0AD763BBA050419A999939F51954410AD7A370BEA05041EC51B89EF81954418FC2F598BFA05041F6285C0FFA1954410AD7A3E0C3A05041F6285CCFF319544114AE47A1CDA0504114AE4771E519544133333313D6A050415C8FC2E5D8195441
+</a>
+
+<b>
+010600000001000000010300000003000000BB00000026266E09B7A05041C52026C3F0195441713D0A87B8A05041CDCCCC2CF21954413D0AD763BBA050419A999939F51954410AD7A370BEA05041EC51B89EF81954418FC2F598BFA05041F6285C0FFA195441E17A148EC1A05041A4703D3AFC195441EC51B8FEC3A05041D7A3702DFF1954417B14AE37C6A0504133333333021A544132A254D7D0A050412CC45232F21954416982E619DDA05041D47A38A7E019544100708831DBA05041448B5B50D11954417B14AE47DDA050418FC2F538CE195441AE47E18ADFA0504148E17AF4CA195441E17A144EDEA0504185EB5138C91954413D0AD7A3DCA05041C3F5282CC7195441295C8FF2D8A0504100000090C3195441B81E853BD5A05041F6285CAFBF195441295C8FD2D3A05041295C8F22BE1954410AD7A390D1A0504148E17A24BA195441CDCCCC6CCFA05041295C8F72B71954410AD7A350CEA0504152B81E85B6195441A4703D8ACCA05041C3F528BCB4195441CDCCCC2CCDA050410AD7A350B31954411F85EB21D3A05041B81E859BA61954415C8FC2A5D0A05041295C8F82A7195441F6285C1FCEA05041B81E853BA81954410AD7A330CCA05041A4703D4AA8195441C57F4D15CBA050411188DD2BAB195441ADDC896BC8A0504181DDFA90AC1954413B4191CAC3A050416B801223AD1954418C6F035EC0A0504130C6952FAC19544152B81E85BAA050417B14AE47A91954415C8FC285AEA050417B14AEB7A719544114AE47C1AFA0504166666626A51954411F85EB51AFA050418FC2F548A51954410AD7A3F0ABA05041CDCCCC4CA619544100000000ABA050411F85EBD1A61954419A999919A9A05041B81E855BA7195441EC51B86EA8A05041C3F528ECA71954419A9999D9A5A05041A4703DDAA8195441EC51B82EA4A05041E17A14DEA9195441AE47E12A9FA050410AD7A3F0AC1954410AD7A30096A0504185EB51F8AD19544152B81E558FA05041713D0A07AF19544148E17A8489A05041D7A370BDAF1954413D0AD76385A05041CDCCCC9CB01954411F85EB717AA0504185EB51E8B4195441AE47E13A78A0504148E17A04B81954417B14AE2775A0504166666656BC195441F6285C4F77A05041713D0A67BC1954413D0AD7237AA050417B14AEC7BC195441000000907CA050410AD7A330BD1954415C8FC25580A050411F85EB11BE195441A4703D0A83A05041295C8FB2BE195441E17A14BE85A050413D0AD783BF195441A4703D2A88A050415C8FC275C0195441666666D68AA050417B14AE97C1195441AE47E1AA8DA050419A9999F9C2195441EC51B81E90A05041B81E854BC4195441333333C392A05041666666D6C5195441D7A3702D94A0504148E17AC4C41954410AD7A34096A05041CDCCCC0CC51954411F85EB0197A0504100000010C71954410AD7A32096A050411F85EB21C8195441A4703D6A97A0504148E17AA4C9195441D7A3705D99A050417B14AEC7CB1954417B14AED79AA050413D0AD793CE195441295C8F829CA050419A999939D219544152B81E259EA05041713D0A57D5195441666666269FA0504114AE47E1D6195441295C8F92A1A0504185EB5128DB195441EC51B80EA4A05041D7A3709DDE1954411F85EB01A6A050411F85EB31E1195441C3F5288CA7A0504148E17AE4E219544185EB5128AAA0504185EB5138E51954417B14AEF7AEA05041713D0A77E919544114AE47F1B4A05041713D0AC7EE19544143DE7D4FB5A0504146045320EF1954417B14AEB7B3A05041EC51B87EEE195441666666E6ADA05041EC51B85EE9195441F6285C8FA9A050418FC2F598E51954413D0AD753A7A05041D7A3707DE31954418FC2F5C8A5A05041AE47E1DAE1195441713D0A77A4A0504100000040E0195441C3F528BCA2A0504148E17AF4DD19544114AE47F1A0A0504185EB5148DB195441713D0A379FA050413D0AD793D819544148E17AB49DA050417B14AEC7D51954418FC2F5989BA050418FC2F5D8D1195441E17A14EE99A050413D0AD753CE19544148E17AC498A0504185EB5108CC1954411F85EB2197A0504152B81E65CA1954413333330398A050418FC2F5C8CC1954410AD7A3F093A05041F6285C7FD0195441CDCCCCFC8EA050417B14AEB7CB1954418FC2F5788CA05041295C8FD2CD195441EC51B81E8BA050410AD7A360CC195441F6285C9F8BA05041000000E0CB195441000000F08EA0504148E17AC4C81954411F85EBE18CA050418FC2F5A8C719544148E17AC48EA050413D0AD763C4195441B81E850B8EA05041AE47E1EAC3195441E17A14AE8AA0504185EB5148C219544114AE47D187A0504166666606C1195441666666A685A05041CDCCCC1CC0195441C3F5284C84A05041C3F528BCBF195441000000B081A05041B81E851BBF195441333333A37EA05041A4703D4ABE195441666666B67BA050419A9999C9BD195441AE47E15A79A0504185EB5148BD195441713D0A3777A0504185EB51F8BC1954410AD7A3C074A05041666666E6BC195441666666B670A050411F85EB91C2195441B81E857B62A050418FC2F578C21954410AD7A30061A05041C3F528BCC31954410AD7A3F05EA05041C3F5283CC71954410AD7A3805EA05041C3F5280CCB1954410AD7A3A05BA05041C3F5286CCE1954410AD7A3C05AA05041C3F528DCD21954410AD7A39057A05041C3F528BCD51954410AD7A3D055A05041C3F5280CDB1954410AD7A3404DA05041C3F528ECE81954410AD7A3904AA05041C3F5285CF01954410AD7A3A04AA05041C3F5284CF51954410AD7A3404CA05041C3F528ECFC1954413D0AD7F348A05041A4703DBA021A544114AE47C149A05041F6285C7F031A5441F6285C4F4DA05041295C8FB2061A5441AE47E12A4DA050411F85EB11091A5441666666B64EA05041E17A140E0A1A5441AE47E15A53A05041A4703D6A051A5441AE47E1DA57A0504148E17AD4011A5441CDCCCC4C5BA050411F85EBF1FE1954418FC2F5885EA0504166666666FD19544148E17A1460A0504166666666FD195441295C8F4262A0504148E17A74FE195441295C8F9260A05041A4703DEA001A5441AE47E15A5CA0504185EB5138041A5441EC51B8FE57A0504166666616081A54418FC2F54853A0504185EB51380D1A5441AE47E1AA51A05041000000C00F1A5441AE47E1DA4EA05041C3F528FC121A5441CDCCCC5C4EA05041E17A144E151A5441EC51B88E4FA0504185EB5108191A5441295C8F1253A05041000000B01C1A5441AE47E1BA56A05041666666C61B1A54415C8FC2555AA05041295C8F521B1A54418FC2F5185FA0504185EB5168251A5441E17A142E64A05041C3F528DC261A5441295C8FB269A05041E17A144E271A5441CDCCCCEC6BA05041C3F528FC231A5441AE47E12A6FA05041A4703D3A221A54410AD7A3E072A0504100000080221A5441666666E676A0504185EB51D8241A5441EC51B81E7BA050413D0AD7132A1A5441CDCCCC0C7EA050411F85EBA12D1A5441EC51B81E7BA0504185EB5158311A54413D0AD7A37DA0504166666606341A5441F6285C1F81A05041C3F5281C351A54410000006085A0504148E17AF4341A5441F6285CEF88A05041E17A14CE351A544152B81E558BA050417B14AEA7361A544114AE470188A0504185EB51F8371A5441D7A3705D83A05041AE47E1AA381A5441E17A14DE7CA0504148E17AE4371A5441D7A3702D7DA05041000000C0391A54417B14AEF780A050411F85EB513F1A5441B81E85FB83A050415C8FC205411A5441CDCCCC9C86A05041EC51B82E421A5441666666B68AA05041E17A147E421A544114AE47B18CA0504133333393441A54413972FF0C92A05041E20853D5441A54418852BC5D99A050419C4B6E473F1A5441CD2BA34EA2A0504176B18C8A361A54415FE54690B2A050413E6F736D1E1A544128D09962BCA05041F256B256101A54413F8197BAC5A050418DBDC1E8021A54419A999969C3A050417B14AE77FF195441CDCCCC4CC1A0504148E17AF4FC195441F6285C2FBFA050418FC2F5A8FA19544100000040BEA0504100000070F9195441B81E856BBBA05041AE47E12AF6195441713D0A67B8A050415C8FC2E5F2195441584F7732B5A05041CAAF61E0EF195441B3B289C3B3A0504115A76A8BEE19544199F8DC62B5A05041F406EF30EF19544126266E09B7A05041C52026C3F01954410A000000EC51B87E9BA0504166666696151A5441EC51B85E9AA05041E17A146E161A54410AD7A35099A05041C3F5283C151A54410AD7A31097A0504148E17AD4131A54416666667694A0504148E17A94111A5441CDCCCCFC92A050411F85EB410F1A54418FC2F58894A05041000000F00C1A54418FC2F53896A0504185EB51580E1A544148E17A7499A0504148E17A94111A5441EC51B87E9BA0504166666696151A54410D00000048E17AC473A0504100000010FC1954418FC2F51871A0504148E17A34FC1954410AD7A3206FA0504185EB5188F9195441AE47E13A6DA050411F85EB91FB195441CDCCCCEC69A0504166666646FC1954418FC2F5A868A0504185EB51F8F81954418FC2F5E86AA0504100000090F71954410AD7A3506CA0504148E17A34F3195441295C8F126EA05041C3F528ACF0195441CDCCCC3C71A05041C3F528ACF0195441AE47E1FA73A0504100000080F2195441EC51B81E74A0504185EB51D8F719544148E17AC473A0504100000010FC195441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>390579 - 4074305
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001B00000066666626BF27514148E17A64B4C9544114AE4741C12751410AD7A310A6C95441AE47E1AAC227514133333313A6C95441F6285CEFC227514152B81E45A3C954417B14AE07C3275141CDCCCCDCA0C954415C8FC2F5C2275141E17A142E9EC9544185EB51A8C2275141713D0A179BC9544114AE47F1C127514185EB513896C95441713D0A77BF275141E17A146E8DC95441295C8F92BE2751413D0AD7738AC95441F6285C8FBD275141666666D687C95441D7A370BDB727514152B81E4589C954411F85EB31B8275141B81E859B8AC95441B81E85ABB82751418FC2F5C88CC954413D0AD7D3B82751413D0AD7D38FC954417B14AEE7B8275141713D0A9793C954419A9999C9B82751415C8FC2E595C9544152B81E15B82751411F85EB819BC95441000000F0B62751417B14AEC7A1C9544100000020B62751411F85EBC1A5C9544152B81EF5B4275141D7A370CDAAC9544114AE4761B4275141AE47E10AADC95441AE47E1EAB82751410AD7A3A0AFC954418FC2F528BB275141F6285C2FB1C954411F85EB71BD2751410AD7A3E0B2C954415C8FC255BE275141B81E859BB3C9544166666626BF27514148E17A64B4C95441
+</a>
+
+<b>
+01060000000100000001030000000100000017000000F6285C8FBD275141666666D687C95441D7A370BDB727514152B81E4589C954411F85EB31B8275141B81E859B8AC95441B81E85ABB82751418FC2F5C88CC954413D0AD7D3B82751413D0AD7D38FC954417B14AEE7B8275141713D0A9793C954419A9999C9B82751415C8FC2E595C9544152B81E15B82751411F85EB819BC95441000000F0B62751417B14AEC7A1C9544100000020B62751411F85EBC1A5C9544152B81EF5B4275141D7A370CDAAC9544114AE4761B4275141AE47E10AADC95441AE47E1EAB82751410AD7A3A0AFC954418FC2F528BB275141F6285C2FB1C954411F85EB71BD2751410AD7A3E0B2C954415C8FC255BE275141B81E859BB3C9544166666626BF27514148E17A64B4C9544114AE4741C12751410AD7A310A6C95441AE47E1AAC227514133333313A6C9544190CE6FEFC2275141191E7DED9DC95441DA82DD47C2275141C194118698C954411C027677C0275141BD10D8FB90C95441F6285C8FBD275141666666D687C95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>390579 - 5186262
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001B00000066666626BF27514148E17A64B4C9544114AE4741C12751410AD7A310A6C95441AE47E1AAC227514133333313A6C95441F6285CEFC227514152B81E45A3C954417B14AE07C3275141CDCCCCDCA0C954415C8FC2F5C2275141E17A142E9EC9544185EB51A8C2275141713D0A179BC9544114AE47F1C127514185EB513896C95441713D0A77BF275141E17A146E8DC95441295C8F92BE2751413D0AD7738AC95441F6285C8FBD275141666666D687C95441D7A370BDB727514152B81E4589C954411F85EB31B8275141B81E859B8AC95441B81E85ABB82751418FC2F5C88CC954413D0AD7D3B82751413D0AD7D38FC954417B14AEE7B8275141713D0A9793C954419A9999C9B82751415C8FC2E595C9544152B81E15B82751411F85EB819BC95441000000F0B62751417B14AEC7A1C9544100000020B62751411F85EBC1A5C9544152B81EF5B4275141D7A370CDAAC9544114AE4761B4275141AE47E10AADC95441AE47E1EAB82751410AD7A3A0AFC954418FC2F528BB275141F6285C2FB1C954411F85EB71BD2751410AD7A3E0B2C954415C8FC255BE275141B81E859BB3C9544166666626BF27514148E17A64B4C95441
+</a>
+
+<b>
+0106000000010000000103000000010000000B000000AE47E1AAC227514133333313A6C954410AD7A330C72751419A999919A6C95441D4AC8C47C6275141D8F1C5179CC954412B2F759FC42751417FFE5AFD93C9544103685B7EC22751419CF487EA8AC954411F85EB81C127514152B81ED586C95441F6285C8FBD275141666666D687C954411C027677C0275141BD10D8FB90C95441DA82DD47C2275141C194118698C9544190CE6FEFC2275141191E7DED9DC95441AE47E1AAC227514133333313A6C95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>392117 - 1353179
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000360000009A9999C9F9215141D7A3708D9BBE54417B14AEC7FE21514185EB51E89BBE54411F85EB510222514185EB51B89ABE54419A9999B90322514148E17A0499BE5441D7A3706D052251419A9999A998BE5441EC51B80E06225141713D0A2798BE54419A99996906225141713D0A8797BE5441A4703D7A09225141D7A3706D98BE544185EB51980E225141EC51B88E9ABE5441B81E853B102251417B14AEF79ABE54411F85EB911422514148E17A949BBE5441E17A147E182251411F85EB019CBE5441CDCCCC7C1922514148E17A3499BE5441F6285CCF1A225141EC51B8EE95BE5441000000301B225141CDCCCC4C94BE5441000000901B225141F6285CCF90BE544152B81EE51B225141295C8F528FBE5441713D0A171D225141CDCCCC1C8CBE544114AE47711D225141C3F528CC89BE5441B81E85BB1D22514148E17AC485BE5441666666961E225141F6285C7F7EBE5441000000D016225141CDCCCCDC7DBE544185EB5118102251411F85EB817DBE5441D7A3705D0B22514185EB51A87DBE5441666666F60A2251413D0AD7C378BE5441AE47E1EA0A2251415C8FC2B576BE5441333333530B2251413333334372BE5441F6285CCF0B225141333333136FBE54419A9999390D2251417B14AEE765BE5441AE47E1BA0E225141EC51B8AE63BE5441F6285C6F0F22514148E17AF45FBE5441F6285C0F10225141C3F5283C5BBE5441666666561022514114AE47D157BE5441F6285C6F102251411F85EB7155BE5441EC51B89E0F225141333333F351BE5441713D0A770B2251410AD7A38051BE54418FC2F5C803225141A4703DCA50BE5441C3F5287CFF215141EC51B8AE4FBE5441EC51B81EFE2151418FC2F5684FBE5441E17A149EFC215141AE47E15A4FBE5441C3F528ACF9215141EC51B89E4FBE544148E17AE4F9215141F6285C4F57BE544152B81EC5F92151418FC2F5685EBE5441F6285CDFF8215141F6285CEF66BE544114AE4721F8215141713D0A576ABE5441B81E85DBF7215141EC51B8BE6CBE5441D7A370ADF72151415C8FC21573BE5441713D0A57F7215141713D0A877ABE54417B14AE17F82151419A99990982BE5441E17A14EEF7215141CDCCCC0C85BE544166666606F8215141CDCCCC3C88BE54418FC2F5D8F82151415C8FC2F58EBE544185EB51B8F92151410000005096BE54419A9999C9F9215141D7A3708D9BBE5441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000F44F7FF6192251415CA8570798BE54410248432D192251416AF2F0139CBE5441EC51B8CE1F225141295C8FC29CBE544185EB51E8242251413D0AD7B37FBE5441B81E858B27225141713D0AF76BBE54411F85EBD128225141AE47E13A60BE54413D0AD7B327225141B81E85BB57BE5441DDC5BA2321225141A816F28A56BE5441257509F0202251411BF6FAA557BE5441333333A320225141B81E858B58BE5441C3F528CC20225141D7A3709D59BE5441A3B40E2F222251415FF6F3475DBE5441666666D62222514152B81ED561BE54410AD7A3E01E225141666666B67EBE54414E74E1131E2251419FE527D582BE5441F44F7FF6192251415CA8570798BE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>392117 - 1353182
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000360000009A9999C9F9215141D7A3708D9BBE54417B14AEC7FE21514185EB51E89BBE54411F85EB510222514185EB51B89ABE54419A9999B90322514148E17A0499BE5441D7A3706D052251419A9999A998BE5441EC51B80E06225141713D0A2798BE54419A99996906225141713D0A8797BE5441A4703D7A09225141D7A3706D98BE544185EB51980E225141EC51B88E9ABE5441B81E853B102251417B14AEF79ABE54411F85EB911422514148E17A949BBE5441E17A147E182251411F85EB019CBE5441CDCCCC7C1922514148E17A3499BE5441F6285CCF1A225141EC51B8EE95BE5441000000301B225141CDCCCC4C94BE5441000000901B225141F6285CCF90BE544152B81EE51B225141295C8F528FBE5441713D0A171D225141CDCCCC1C8CBE544114AE47711D225141C3F528CC89BE5441B81E85BB1D22514148E17AC485BE5441666666961E225141F6285C7F7EBE5441000000D016225141CDCCCCDC7DBE544185EB5118102251411F85EB817DBE5441D7A3705D0B22514185EB51A87DBE5441666666F60A2251413D0AD7C378BE5441AE47E1EA0A2251415C8FC2B576BE5441333333530B2251413333334372BE5441F6285CCF0B225141333333136FBE54419A9999390D2251417B14AEE765BE5441AE47E1BA0E225141EC51B8AE63BE5441F6285C6F0F22514148E17AF45FBE5441F6285C0F10225141C3F5283C5BBE5441666666561022514114AE47D157BE5441F6285C6F102251411F85EB7155BE5441EC51B89E0F225141333333F351BE5441713D0A770B2251410AD7A38051BE54418FC2F5C803225141A4703DCA50BE5441C3F5287CFF215141EC51B8AE4FBE5441EC51B81EFE2151418FC2F5684FBE5441E17A149EFC215141AE47E15A4FBE5441C3F528ACF9215141EC51B89E4FBE544148E17AE4F9215141F6285C4F57BE544152B81EC5F92151418FC2F5685EBE5441F6285CDFF8215141F6285CEF66BE544114AE4721F8215141713D0A576ABE5441B81E85DBF7215141EC51B8BE6CBE5441D7A370ADF72151415C8FC21573BE5441713D0A57F7215141713D0A877ABE54417B14AE17F82151419A99990982BE5441E17A14EEF7215141CDCCCC0C85BE544166666606F8215141CDCCCC3C88BE54418FC2F5D8F82151415C8FC2F58EBE544185EB51B8F92151410000005096BE54419A9999C9F9215141D7A3708D9BBE5441
+</a>
+
+<b>
+010600000001000000010300000001000000330000000AD7A3E01E225141666666B67EBE54416C45EA901E2251414A5CFFAD7EBE5441000000D016225141CDCCCCDC7DBE544185EB5118102251411F85EB817DBE5441D7A3705D0B22514185EB51A87DBE5441666666F60A2251413D0AD7C378BE5441AE47E1EA0A2251415C8FC2B576BE5441333333530B2251413333334372BE5441F6285CCF0B225141333333136FBE54419A9999390D2251417B14AEE765BE5441AE47E1BA0E225141EC51B8AE63BE5441F6285C6F0F22514148E17AF45FBE5441F6285C0F10225141C3F5283C5BBE5441666666561022514114AE47D157BE5441F6285C6F102251411F85EB7155BE5441EC51B89E0F225141333333F351BE5441713D0A770B2251410AD7A38051BE54418FC2F5C803225141A4703DCA50BE5441C3F5287CFF215141EC51B8AE4FBE5441EC51B81EFE2151418FC2F5684FBE5441E17A149EFC215141AE47E15A4FBE5441C3F528ACF9215141EC51B89E4FBE544148E17AE4F9215141F6285C4F57BE544152B81EC5F92151418FC2F5685EBE5441F6285CDFF8215141F6285CEF66BE544114AE4721F8215141713D0A576ABE5441B81E85DBF7215141EC51B8BE6CBE5441D7A370ADF72151415C8FC21573BE5441713D0A57F7215141713D0A877ABE54417B14AE17F82151419A99990982BE5441E17A14EEF7215141CDCCCC0C85BE544166666606F8215141CDCCCC3C88BE54418FC2F5D8F82151415C8FC2F58EBE544185EB51B8F92151410000005096BE54419A9999C9F9215141D7A3708D9BBE544162DF99CDF9215141FF0E3CBB9CBE54411ED88DC7FC21514176087BA29CBE54412581572CFF215141C438952F9CBE54416E94532A02225141ABAD20429BBE544149D0FD1805225141FFF9FD639ABE54419F3743D5062251410A16C1F899BE5441315F96CB09225141797B74D299BE5441A25150750C22514177ED12089ABE544185EB51980E225141EC51B88E9ABE5441B81E853B102251417B14AEF79ABE54411F85EB911422514148E17A949BBE54413D0AD7231922514148E17A449CBE54410248432D192251416AF2F0139CBE5441F34F7FF61922514160A8570798BE54414E74E1131E2251419FE527D582BE54410AD7A3E01E225141666666B67EBE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>392117 - 3468495
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000360000009A9999C9F9215141D7A3708D9BBE54417B14AEC7FE21514185EB51E89BBE54411F85EB510222514185EB51B89ABE54419A9999B90322514148E17A0499BE5441D7A3706D052251419A9999A998BE5441EC51B80E06225141713D0A2798BE54419A99996906225141713D0A8797BE5441A4703D7A09225141D7A3706D98BE544185EB51980E225141EC51B88E9ABE5441B81E853B102251417B14AEF79ABE54411F85EB911422514148E17A949BBE5441E17A147E182251411F85EB019CBE5441CDCCCC7C1922514148E17A3499BE5441F6285CCF1A225141EC51B8EE95BE5441000000301B225141CDCCCC4C94BE5441000000901B225141F6285CCF90BE544152B81EE51B225141295C8F528FBE5441713D0A171D225141CDCCCC1C8CBE544114AE47711D225141C3F528CC89BE5441B81E85BB1D22514148E17AC485BE5441666666961E225141F6285C7F7EBE5441000000D016225141CDCCCCDC7DBE544185EB5118102251411F85EB817DBE5441D7A3705D0B22514185EB51A87DBE5441666666F60A2251413D0AD7C378BE5441AE47E1EA0A2251415C8FC2B576BE5441333333530B2251413333334372BE5441F6285CCF0B225141333333136FBE54419A9999390D2251417B14AEE765BE5441AE47E1BA0E225141EC51B8AE63BE5441F6285C6F0F22514148E17AF45FBE5441F6285C0F10225141C3F5283C5BBE5441666666561022514114AE47D157BE5441F6285C6F102251411F85EB7155BE5441EC51B89E0F225141333333F351BE5441713D0A770B2251410AD7A38051BE54418FC2F5C803225141A4703DCA50BE5441C3F5287CFF215141EC51B8AE4FBE5441EC51B81EFE2151418FC2F5684FBE5441E17A149EFC215141AE47E15A4FBE5441C3F528ACF9215141EC51B89E4FBE544148E17AE4F9215141F6285C4F57BE544152B81EC5F92151418FC2F5685EBE5441F6285CDFF8215141F6285CEF66BE544114AE4721F8215141713D0A576ABE5441B81E85DBF7215141EC51B8BE6CBE5441D7A370ADF72151415C8FC21573BE5441713D0A57F7215141713D0A877ABE54417B14AE17F82151419A99990982BE5441E17A14EEF7215141CDCCCC0C85BE544166666606F8215141CDCCCC3C88BE54418FC2F5D8F82151415C8FC2F58EBE544185EB51B8F92151410000005096BE54419A9999C9F9215141D7A3708D9BBE5441
+</a>
+
+<b>
+010600000001000000010300000001000000330000000AD7A3E01E225141666666B67EBE54416C45EA901E2251414A5CFFAD7EBE5441000000D016225141CDCCCCDC7DBE544185EB5118102251411F85EB817DBE5441D7A3705D0B22514185EB51A87DBE5441666666F60A2251413D0AD7C378BE5441AE47E1EA0A2251415C8FC2B576BE5441333333530B2251413333334372BE5441F6285CCF0B225141333333136FBE54419A9999390D2251417B14AEE765BE5441AE47E1BA0E225141EC51B8AE63BE5441F6285C6F0F22514148E17AF45FBE5441F6285C0F10225141C3F5283C5BBE5441666666561022514114AE47D157BE5441F6285C6F102251411F85EB7155BE5441EC51B89E0F225141333333F351BE5441713D0A770B2251410AD7A38051BE54418FC2F5C803225141A4703DCA50BE5441C3F5287CFF215141EC51B8AE4FBE5441EC51B81EFE2151418FC2F5684FBE5441E17A149EFC215141AE47E15A4FBE5441C3F528ACF9215141EC51B89E4FBE544148E17AE4F9215141F6285C4F57BE544152B81EC5F92151418FC2F5685EBE5441F6285CDFF8215141F6285CEF66BE544114AE4721F8215141713D0A576ABE5441B81E85DBF7215141EC51B8BE6CBE5441D7A370ADF72151415C8FC21573BE5441713D0A57F7215141713D0A877ABE54417B14AE17F82151419A99990982BE5441E17A14EEF7215141CDCCCC0C85BE544166666606F8215141CDCCCC3C88BE54418FC2F5D8F82151415C8FC2F58EBE544185EB51B8F92151410000005096BE54419A9999C9F9215141D7A3708D9BBE544162DF99CDF9215141FF0E3CBB9CBE54411ED88DC7FC21514176087BA29CBE54412581572CFF215141C438952F9CBE54416E94532A02225141ABAD20429BBE544149D0FD1805225141FFF9FD639ABE54419F3743D5062251410A16C1F899BE5441315F96CB09225141797B74D299BE5441A25150750C22514177ED12089ABE544185EB51980E225141EC51B88E9ABE5441B81E853B102251417B14AEF79ABE54411F85EB911422514148E17A949BBE54413D0AD7231922514148E17A449CBE54410248432D192251416AF2F0139CBE5441F34F7FF61922514160A8570798BE54414E74E1131E2251419FE527D582BE54410AD7A3E01E225141666666B67EBE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>392117 - 3469099
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000360000009A9999C9F9215141D7A3708D9BBE54417B14AEC7FE21514185EB51E89BBE54411F85EB510222514185EB51B89ABE54419A9999B90322514148E17A0499BE5441D7A3706D052251419A9999A998BE5441EC51B80E06225141713D0A2798BE54419A99996906225141713D0A8797BE5441A4703D7A09225141D7A3706D98BE544185EB51980E225141EC51B88E9ABE5441B81E853B102251417B14AEF79ABE54411F85EB911422514148E17A949BBE5441E17A147E182251411F85EB019CBE5441CDCCCC7C1922514148E17A3499BE5441F6285CCF1A225141EC51B8EE95BE5441000000301B225141CDCCCC4C94BE5441000000901B225141F6285CCF90BE544152B81EE51B225141295C8F528FBE5441713D0A171D225141CDCCCC1C8CBE544114AE47711D225141C3F528CC89BE5441B81E85BB1D22514148E17AC485BE5441666666961E225141F6285C7F7EBE5441000000D016225141CDCCCCDC7DBE544185EB5118102251411F85EB817DBE5441D7A3705D0B22514185EB51A87DBE5441666666F60A2251413D0AD7C378BE5441AE47E1EA0A2251415C8FC2B576BE5441333333530B2251413333334372BE5441F6285CCF0B225141333333136FBE54419A9999390D2251417B14AEE765BE5441AE47E1BA0E225141EC51B8AE63BE5441F6285C6F0F22514148E17AF45FBE5441F6285C0F10225141C3F5283C5BBE5441666666561022514114AE47D157BE5441F6285C6F102251411F85EB7155BE5441EC51B89E0F225141333333F351BE5441713D0A770B2251410AD7A38051BE54418FC2F5C803225141A4703DCA50BE5441C3F5287CFF215141EC51B8AE4FBE5441EC51B81EFE2151418FC2F5684FBE5441E17A149EFC215141AE47E15A4FBE5441C3F528ACF9215141EC51B89E4FBE544148E17AE4F9215141F6285C4F57BE544152B81EC5F92151418FC2F5685EBE5441F6285CDFF8215141F6285CEF66BE544114AE4721F8215141713D0A576ABE5441B81E85DBF7215141EC51B8BE6CBE5441D7A370ADF72151415C8FC21573BE5441713D0A57F7215141713D0A877ABE54417B14AE17F82151419A99990982BE5441E17A14EEF7215141CDCCCC0C85BE544166666606F8215141CDCCCC3C88BE54418FC2F5D8F82151415C8FC2F58EBE544185EB51B8F92151410000005096BE54419A9999C9F9215141D7A3708D9BBE5441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000F44F7FF6192251415CA8570798BE54410248432D192251416AF2F0139CBE5441EC51B8CE1F225141295C8FC29CBE544185EB51E8242251413D0AD7B37FBE5441B81E858B27225141713D0AF76BBE54411F85EBD128225141AE47E13A60BE54413D0AD7B327225141B81E85BB57BE5441DDC5BA2321225141A816F28A56BE5441257509F0202251411BF6FAA557BE5441333333A320225141B81E858B58BE5441C3F528CC20225141D7A3709D59BE5441A3B40E2F222251415FF6F3475DBE5441666666D62222514152B81ED561BE54410AD7A3E01E225141666666B67EBE54414E74E1131E2251419FE527D582BE5441F44F7FF6192251415CA8570798BE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>392178 - 432615
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000051000000AE47E19AB027514133333333BBC6544166666686AB275141F6285C6FBDC654418FC2F5D8A027514148E17A94C6C6544185EB5118A12751417B14AEF7C9C65441295C8F02A127514114AE4701CDC6544166666656A12751415C8FC285CFC65441B81E85EBA1275141CDCCCCACD1C6544114AE47B1A3275141333333A3D5C654410AD7A310A427514114AE4781D6C65441E17A140EA5275141B81E859BD8C654411F85EB21A5275141AE47E1FADAC65441CDCCCC8CA1275141A4703DFAE0C65441EC51B8AEA0275141D7A370BDE3C654415C8FC205A02751419A999939E5C65441D7A3709D9F27514148E17AA4E6C654411F85EB219F27514148E17A14E7C6544185EB51389F275141F6285C8FE7C654415C8FC2759F27514114AE4731E8C65441EC51B82EA02751413D0AD7D3E8C654410AD7A3D0A02751417B14AE27E9C6544100000010A227514133333363E9C654411F85EB61A32751413D0AD7E3E9C65441F6285C4FA427514166666666EAC65441B81E85BBA5275141CDCCCCCCEBC6544133333313A6275141CDCCCC9CECC65441D7A3705DA6275141E17A144EEDC65441CDCCCCACA6275141E17A143EEFC65441C3F528DCA62751415C8FC2B5EFC65441295C8F32A727514166666656F0C6544152B81E95A7275141713D0A27F1C65441AE47E1EAA72751417B14AE97F1C654415C8FC235A82751419A999929F2C65441E17A146EA7275141666666D6F2C65441666666B6A627514185EB5198F3C6544148E17A74A52751419A999909F5C654413D0AD7E3A42751413D0AD7D3F6C654413D0AD7B3A4275141EC51B8CEF8C6544148E17A94A527514166666606F9C65441E17A14DEA6275141EC51B80EF9C65441D7A370CDA82751410AD7A3C0F8C65441AE47E18AAA2751415C8FC235F8C65441CDCCCCBCAB275141CDCCCC8CF7C6544166666636AD27514148E17AD4F6C6544185EB51F8AE275141AE47E1FAF5C65441333333F3B0275141A4703D2AF5C65441713D0AE7B327514185EB51F8F3C654410AD7A330B5275141F6285C3FF3C6544166666656B6275141713D0A77F2C65441295C8FF2B82751411F85EBB1EFC65441F6285C8FB8275141666666F6EEC654411F85EB71B827514166666646EEC65441C3F528ACB8275141713D0AD7EDC654410AD7A350B9275141CDCCCC2CEDC65441713D0A87BA275141E17A144EECC65441C3F528ACBB275141666666F6EBC65441000000C0BC27514185EB5198EBC654411F85EB11BD275141713D0A87EBC65441A4703D5ABE275141B81E85CBEAC6544185EB51E8BF275141D7A3707DE9C6544114AE47C1C0275141295C8F52E8C654418FC2F578C22751417B14AEC7E5C654419A999959C4275141A4703D1AE3C6544100000040C62751411F85EB31E0C65441E17A143EC8275141F6285C4FDDC65441F6285CFFC8275141CDCCCC0CDCC6544152B81EB5C9275141EC51B8BEDAC65441F6285C6FC9275141CDCCCC3CD6C654410AD7A390C92751417B14AEB7D1C654411F85EBF1C82751417B14AEF7D1C6544152B81E25C8275141333333A3CCC65441B81E859BC527514114AE4701C8C65441EC51B81EC2275141E17A140EC7C6544148E17A74BF27514133333323C4C65441EC51B84EBF275141EC51B89EC1C654413D0AD743BF275141713D0AE7C0C65441B81E858BB427514152B81E55C0C6544148E17AD4B3275141B81E853BC0C65441A4703D5AB42751413D0AD783BEC65441CDCCCC6CB4275141B81E85DBBCC654410AD7A320B327514148E17AB4BBC65441AE47E19AB027514133333333BBC65441
+</a>
+
+<b>
+0106000000010000000103000000010000004E00000095A6157CA5275141EB6F5A00F9C6544177881292A62751410626CD0CF9C65441F0D64AFCA7275141C73E9BE1F8C65441D85BF47FAA275141AF962A39F8C654412AA772F6AA2751411114EDECF7C654413F85AB8EA42751412AA52D0FE3C65441EAC44C26A7275141062B526ADBC654411A3B3CE2A627514192E672D3D7C6544105E33BC3A227514135867157C7C654411B1256A5B3275141CFD0098FC1C65441141B9A57BF2751419BD55036C2C65441EC51B84EBF275141EC51B89EC1C654413D0AD743BF275141713D0AE7C0C65441E4BAA153BA2751410DCC7D9FC0C654417E70096BB82751414030D789C0C65441421F4606B7275141D0F3DE76C0C65441E29D4610B6275141FE70CA69C0C65441D50D5E3CB5275141CCF4855EC0C65441B81E858BB427514152B81E55C0C6544148E17AD4B3275141B81E853BC0C65441A4703D5AB42751413D0AD783BEC65441CDCCCC6CB4275141B81E85DBBCC6544148E284F5B22751419C4603A9BBC654413717E573B22751412D964590BBC654419330C2C5B1275141B3F2086FBBC6544140D29B7AB0275141A5EA6541BBC65441D167DC63AB275141F118F18CBDC6544159917401A6275141439D8229C2C65441E0EF512EA32751418F50DB94C4C654410332E4F1A12751411D9EDEA3C5C654418FC2F5D8A027514148E17A94C6C65441F56BAD17A12751419B79A40ECAC654412A314E2CA12751414B9A2D42CEC65441CEF07654A1275141E1F3E176CFC6544179F360EFA12751418C236DB5D1C65441473FFEFBA22751419EEAEC0DD4C6544114AE47B1A3275141333333A3D5C654411094ACF6A32751410025CF44D6C6544135025F1DA4275141584C519CD6C654416AF56207A5275141F80C4E8DD8C65441D7878B0EA52751413A65C633D9C65441F2BA5115A5275141F0184FD1D9C654410D824D21A5275141F712FCE7DAC6544187FAA945A42751414427A45EDCC6544161DF46ABA3275141B513FE65DDC65441D7799122A3275141F41C304FDEC65441726C23ACA227514192313419DFC65441CDCCCC8CA1275141A4703DFAE0C65441EC51B8AEA0275141D7A370BDE3C654415C8FC205A02751419A999939E5C65441D7A3709D9F27514148E17AA4E6C654411F85EB219F27514148E17A14E7C6544185EB51389F275141F6285C8FE7C654415C8FC2759F27514114AE4731E8C65441EC51B82EA02751413D0AD7D3E8C654410AD7A3D0A02751417B14AE27E9C6544100000010A227514133333363E9C65441A1DB680CA3275141A59400BEE9C654411F85EB61A32751413D0AD7E3E9C65441F6285C4FA427514166666666EAC65441B81E85BBA5275141CDCCCCCCEBC6544133333313A6275141CDCCCC9CECC65441526EA01DA62751414ABDB2B5ECC654415838603FA6275141984AA329EDC654413EFB4765A627514126F1DAABEDC654415FB72F75A6275141F2B47EE2EDC654415508AEA6A6275141F12ED417EFC65441295C8F32A727514166666656F0C6544137EBDB99A7275141F6B1432DF1C6544153C024E7A7275141A4B35AAAF1C654415C8FC235A82751419A999929F2C65441E17A146EA7275141666666D6F2C6544156FC7C02A72751418D6BFD47F3C65441F70F601BA6275141E8CD264AF4C6544148E17A74A52751419A999909F5C654413D0AD7E3A42751413D0AD7D3F6C654413D0AD7B3A4275141EC51B8CEF8C6544195A6157CA5275141EB6F5A00F9C65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>396251 - 236110
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000014000000295C8F62C320514166666666E2CA54410AD7A360C0205141AE47E1EAE7CA544148E17A84BB2051418FC2F528FCCA544166666636BD205141EC51B8FEFBCA54418FC2F548BF2051411F85EBE1FBCA54413D0AD793C920514152B81E55FBCA5441B81E852BCE205141AE47E1FAFBCA5441CDCCCCFCD420514148E17A14FDCA544152B81E45D8205141713D0A07FDCA54415C8FC2F5DB20514100000090FBCA54411F85EBA1DE2051411F85EB71F8CA5441AE47E10AE3205141F6285C8FEBCA5441C3F5288CE52051413D0AD7F3E3CA5441AE47E15AE9205141333333C3DBCA5441E17A146EEC2051410AD7A330D5CA544185EB51B8EC205141D7A3706DD4CA54415C8FC2B5D9205141B81E852BD6CA5441713D0A07CB2051410AD7A3B0D8CA544152B81E75C9205141D7A370BDDACA5441295C8F62C320514166666666E2CA5441
+</a>
+
+<b>
+01060000000100000001030000000100000015000000E2A1A7F8BF20514135BBFD9BE9CA5441EF24145EC0205141EB1994EFE7CA54415C8FC275BE205141F6285C6FEBCA5441CB75A82ABE205141220DB6F5EBCA54415485EB71BA205141EC7A149EF2CA544184EED491AE20514167DAD9F5F7CA54419A999979A92051410AD7A340FACA5441B43BC50EA92051416E7F93FCFBCA54410B0000B0A820514165666686FDCA544141FB0E91A9205141520B247AFDCA54415475EAEFAF205141585B4E21FDCA54414884AB91B0205141BCC17E18FDCA5441330AD7B3B3205141B7CCCCECFCCA5441F3484F61BB205141241C672CFCCA5441D29A1966BB2051413211EF2BFCCA544148E17A84BB2051418FC2F528FCCA5441ACFBCBF6BB2051410AFED04CFACA54415EEB7935BD205141EF277A1DF5CA54417758F47BBD2051413E39EDF7F3CA5441E3F7949DBD205141433FDD6BF3CA5441E2A1A7F8BF20514135BBFD9BE9CA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>397509 - 1008901
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000017000000CDCCCCDC4FFA5041A4703D7A3B3854418FC2F5C84FFA5041666666964C38544152B81E154FFA5041E17A14CE55385441CDCCCC9C4EFA5041A4703D7A5938544114AE474150FA50411F85EBE15A38544114AE474150FA50416666669660385441CDCCCC0C57FA5041A4703DBA643854418FC2F5485CFA5041666666F65F38544114AE47B15DFA5041666666D6573854418FC2F5885DFA5041666666565038544152B81E9560FA5041A4703D5A4738544152B81E8561FA504166666656413854418FC2F5285EFA5041E17A145E3E38544152B81E755DFA5041A4703DCA3B38544114AE47E15FFA5041E17A140E3938544152B81EE55BFA504166666616363854418FC2F5285EFA5041A4703DFA3338544152B81E155EFA5041A4703DCA31385441CDCCCC0C57FA5041A4703DBA2D38544114AE471158FA5041E17A141E293854411F85EB8152FA5041D7A370AD29385441CDCCCCDC4FFA50411F85EB5127385441CDCCCCDC4FFA5041A4703D7A3B385441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000E904B8D050FA5041081D56603B385441A12ECCF750FA5041613B5C5C3D385441E572F14750FA5041D43314524C3854415134530D50FA504168BC2F4055385441760B853A50FA504189D3B6755838544114AE474150FA50411F85EBE15A3854414F55A40551FA50419FF572B55C385441E904B8D050FA5041C2B679786038544177564EDC54FA5041B3A5E437633854416D6946AD58FA50416E61BFE7633854415E18A3995CFA5041B3F931FE6138544114AE47B15DFA5041666666D657385441594C2CED5CFA504152A9524A51385441A7C675B85CFA50411EC845CE4D385441061D2F735EFA504140E9E88C4A38544152B81E9560FA5041A4703D5A47385441D2E25E9D60FA50418B13ABC5433854419DAFCE8D5EFA50419A244006413854418FC2F5285EFA5041E17A145E3E38544152B81E755DFA5041A4703DCA3B385441F32AC4B55CFA5041C240F2BC3838544152B81EE55BFA504166666616363854411C148C1C5CFA5041AAB4D2B030385441E1F3F3DD5DFA50417A13092A2F385441B4E4F0DF5CFA50411D633CA52C385441DB2AA87258FA5041C9B26F202A385441347EF32C56FA5041B37FDC4E29385441C2FF22C354FA5041A5954D732938544109F0DA0153FA504181B27A842A3854419308B2B051FA504181407E602B38544155C6199650FA5041D0D6FC312B385441E904B8D050FA5041081D56603B385441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>397509 - 3488896
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000017000000CDCCCCDC4FFA5041A4703D7A3B3854418FC2F5C84FFA5041666666964C38544152B81E154FFA5041E17A14CE55385441CDCCCC9C4EFA5041A4703D7A5938544114AE474150FA50411F85EBE15A38544114AE474150FA50416666669660385441CDCCCC0C57FA5041A4703DBA643854418FC2F5485CFA5041666666F65F38544114AE47B15DFA5041666666D6573854418FC2F5885DFA5041666666565038544152B81E9560FA5041A4703D5A4738544152B81E8561FA504166666656413854418FC2F5285EFA5041E17A145E3E38544152B81E755DFA5041A4703DCA3B38544114AE47E15FFA5041E17A140E3938544152B81EE55BFA504166666616363854418FC2F5285EFA5041A4703DFA3338544152B81E155EFA5041A4703DCA31385441CDCCCC0C57FA5041A4703DBA2D38544114AE471158FA5041E17A141E293854411F85EB8152FA5041D7A370AD29385441CDCCCCDC4FFA50411F85EB5127385441CDCCCCDC4FFA5041A4703D7A3B385441
+</a>
+
+<b>
+01060000000100000001030000000100000020000000E904B8D050FA5041081D56603B385441A12ECCF750FA5041613B5C5C3D385441E572F14750FA5041D43314524C3854415134530D50FA504168BC2F4055385441760B853A50FA504189D3B6755838544114AE474150FA50411F85EBE15A3854414F55A40551FA50419FF572B55C385441E904B8D050FA5041C2B679786038544177564EDC54FA5041B3A5E437633854416D6946AD58FA50416E61BFE7633854415E18A3995CFA5041B3F931FE6138544114AE47B15DFA5041666666D657385441594C2CED5CFA504152A9524A51385441A7C675B85CFA50411EC845CE4D385441061D2F735EFA504140E9E88C4A38544152B81E9560FA5041A4703D5A47385441D2E25E9D60FA50418B13ABC5433854419DAFCE8D5EFA50419A244006413854418FC2F5285EFA5041E17A145E3E38544152B81E755DFA5041A4703DCA3B385441F32AC4B55CFA5041C240F2BC3838544152B81EE55BFA504166666616363854411C148C1C5CFA5041AAB4D2B030385441E1F3F3DD5DFA50417A13092A2F385441B4E4F0DF5CFA50411D633CA52C385441DB2AA87258FA5041C9B26F202A385441347EF32C56FA5041B37FDC4E29385441C2FF22C354FA5041A5954D732938544109F0DA0153FA504181B27A842A3854419308B2B051FA504181407E602B38544155C6199650FA5041D0D6FC312B385441E904B8D050FA5041081D56603B385441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>397613 - 3584717
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000050000000103000000010000000E000000000000E0A3FB5041E17A145E633C5441F6285C8FA5FB5041666666A6603C5441E17A142EAAFB5041B81E853B5A3C544148E17AB4ACFB50413D0AD763553C5441F6285C4FA9FB5041C3F528AC523C5441E17A144EAAFB504152B81E954C3C5441EC51B87EABFB504152B81E35473C544152B81E05ADFB5041EC51B8AE443C544148E17A34A9FB50411F85EB81433C5441000000C0A0FB50415C8FC2E5403C544185EB5168A1FB504114AE47A14D3C5441CDCCCC0CA2FB50419A9999195A3C5441F6285CAFA2FB5041295C8F62663C5441000000E0A3FB5041E17A145E633C5441010300000001000000370000008FC2F55856FB5041EC51B86E2E3C5441713D0A7745FB5041E17A14EE3C3C54415C8FC2353BFB50419A999929473C54413D0AD7C339FB5041333333E3483C5441713D0A2736FB50411F85EB314D3C544185EB51E833FB5041295C8FA2503C5441666666C631FB504152B81E75543C54413333336330FB5041EC51B83E573C5441B81E850B2FFB5041000000E05A3C5441AE47E1DA2DFB504185EB51B85E3C5441C3F5284C2DFB5041666666D6613C5441D7A3704D2DFB5041C3F5280C673C544114AE47612DFB5041AE47E1CA673C544114AE47E12DFB5041D7A370AD6D3C5441A4703D6A2FFB5041A4703D5A6D3C544148E17A6430FB504152B81E256D3C5441AE47E1FA30FB504152B81E056D3C5441B81E858B31FB5041E17A143E703C5441B81E85AB32FB5041713D0AB7743C54418FC2F51834FB50413D0AD7337A3C54410AD7A38034FB5041295C8F227C3C54411F85EB6136FB5041EC51B86E813C54415C8FC2F537FB50411F85EBC1853C54416666664639FB50417B14AE17893C5441CDCCCC9C43FB50417B14AEF7863C5441A4703D3A44FB5041F6285CDF813C54411F85EB3144FB504152B81E35803C54419A99990943FB5041AE47E13A7A3C54411F85EB5142FB50411F85EB31753C5441295C8F1242FB50410AD7A3A0723C5441A4703DFA41FB5041CDCCCC0C703C544114AE470142FB5041666666666D3C54418FC2F52842FB5041E17A14AE6A3C5441AE47E19A42FB5041B81E85CB673C5441000000B043FB504185EB5108633C544148E17A7444FB504185EB5178603C54413333336345FB5041C3F528DC5D3C5441E17A147E45FB504152B81E955D3C54411F85EB4146FB5041713D0AD75B3C5441AE47E14A47FB5041AE47E10A5A3C5441CDCCCC5C48FB5041713D0A37583C54413D0AD7D349FB5041A4703DDA553C544152B81E854BFB50418FC2F548533C544152B81E154DFB50411F85EB01513C5441000000804EFB5041D7A3702D4F3C5441A4703D4A50FB5041713D0AE74C3C5441C3F5287C53FB5041AE47E1BA493C54413D0AD78356FB5041EC51B80E473C54417B14AE575CFB5041EC51B8CE423C544152B81E4561FB50411F85EBD13E3C5441E17A142E64FB50417B14AE473C3C5441F6285C2F66FB5041E17A145E3A3C544152B81EC561FB504148E17A04373C544152B81E655CFB50417B14AEA7323C54418FC2F55856FB5041EC51B86E2E3C5441010300000001000000230000000AD7A3401EFB50413D0AD7734D3C54419A9999F91DFB5041F6285CDF4E3C5441F6285C5F1DFB5041F6285CEF513C5441AE47E1EA1CFB504114AE4741543C544114AE47411CFB50411F85EBF1583C5441D7A3709D1CFB50418FC2F5C85E3C5441AE47E11A1DFB5041F6285CCF613C544152B81E951DFB5041A4703DEA633C5441CDCCCC8C1FFB5041F6285C4F6C3C5441E17A140E21FB50418FC2F508723C54419A99999927FB5041295C8F32703C5441D7A3702D27FB504152B81E956E3C5441A4703DBA25FB50411F85EB416A3C5441F6285C1F25FB5041666666D6673C544148E17AA424FB50411F85EB61653C54411F85EB5124FB504100000020633C54418FC2F54824FB5041333333C3613C5441B81E85FB22FB504148E17AC4613C54411F85EB8120FB5041AE47E15A613C5441713D0A6720FB50417B14AE175F3C54413D0AD74320FB5041333333235C3C54413333335320FB5041333333D3593C5441C3F5286C20FB504133333373573C544148E17AC420FB50417B14AEA7553C5441D7A3703D21FB5041A4703DBA533C544152B81E0522FB504185EB5118513C544114AE471123FB5041333333534E3C54410AD7A36024FB504152B81E054B3C5441713D0A1725FB50419A999989493C54417B14AEA725FB50411F85EB41483C5441C3F528AC26FB5041B81E85FB463C5441EC51B82E27FB5041C3F5282C443C5441666666B61EFB5041EC51B89E493C5441295C8FE21EFB5041C3F5283C4A3C54410AD7A3401EFB50413D0AD7734D3C544101030000000100000014000000000000B06AFB50419A999979593C5441295C8F1269FB5041B81E858B593C54411F85EBC160FB5041713D0A975D3C544152B81E7563FB5041AE47E12A653C5441F6285C5F66FB5041E17A140E6D3C54417B14AE976AFB5041C3F5281C793C5441C3F5283C6CFB5041D7A370CD7D3C5441E17A14CE6EFB504148E17A04853C54410AD7A38071FB5041B81E852B843C544148E17A7473FB5041B81E856B853C544148E17A0475FB5041B81E851B853C54410AD7A39075FB50417B14AE47863C544148E17AE476FB5041F6285C7F853C54413333333377FB504114AE4731863C5441D7A3705D81FB50410AD7A3807F3C5441F6285C9F7EFB504152B81EA5773C54413D0AD7E379FB5041713D0A176A3C544114AE476176FB50417B14AE07603C54418FC2F59872FB504114AE4731553C5441000000B06AFB50419A999979593C5441010300000001000000200000008FC2F5B8B9FB5041333333D36F3C54417B14AE37BAFB50417B14AE676E3C5441666666F6B9FB50418FC2F5486B3C5441713D0A37BAFB5041713D0A87693C54411F85EBE1BAFB5041295C8F42683C544152B81EA5BBFB5041D7A370DD663C5441666666D6BBFB5041C3F5289C643C544148E17AD4BBFB5041A4703DDA623C544152B81EA5BBFB5041295C8F425F3C54410AD7A3F0BAFB5041333333135F3C54418FC2F5F8B9FB504148E17AB45E3C544152B81E05B2FB5041713D0A07593C5441713D0A37B1FB504100000080583C5441333333C3ADFB5041CDCCCC3C563C5441CDCCCC6CADFB50417B14AEF7553C544148E17AE4AAFB5041EC51B8BE5A3C5441D7A3704DA6FB50411F85EB21613C5441C3F528ACA4FB50413D0AD7C3633C54419A999989A3FB50417B14AE97663C544185EB5138A2FB5041EC51B8FE6D3C54415C8FC295A1FB5041713D0A27703C5441295C8FF2A4FB50417B14AEA7723C54419A9999F9A7FB5041713D0AF7743C544185EB51E8A8FB5041C3F528CC753C544100000020A6FB5041A4703D1A793C544148E17AF49FFB5041000000A07F3C5441AE47E1DA99FB5041CDCCCC2C853C5441666666D698FB50418FC2F528863C5441000000C097FB5041EC51B80E8E3C54410AD7A3509FFB504148E17A64863C544152B81E35AFFB5041295C8FB2773C54418FC2F5B8B9FB5041333333D36F3C5441
+</a>
+
+<b>
+010600000001000000010300000001000000410000002EACA7B5BBFB50410FB9A683603C5441948E54C1BBFB50417207B4C9603C5441261F9870E0FB5041FEE91324563C5441261F9870E0FB504147F37815533C5441F6285CBFFBFB5041000000404F3C5441CDCCCC0CFBFB5041EC51B8AE473C5441B81E853B03FC5041713D0AC7463C5441B81E85AB02FC50411F85EBF1403C5441295C8F62FCFB5041EC51B8AE383C54410AD7A310F6FB5041C3F528DC383C544185EB51E8F4FB5041713D0A67303C5441F6285C4FF9FB5041666666B62F3C544133333323F9FB50418FC2F5A82E3C5441A4703D2AFEFB50411F85EB812B3C544114AE473101FC5041A4703DBA293C5441CDCCCCDC03FC50410AD7A3E0263C5441D7A370AD02FC50413D0AD7A3243C5441A4703D9A01FC504114AE47C1233C5441C3F5284C00FC5041EC51B88E223C54410AD7A350FFFB5041A4703D8A213C54418FC2F5A8FDFB5041666666B61F3C5441B81E85EBFBFB5041F6285C8F1D3C5441CDCCCCACFAFB504114AE47E11B3C54417B14AE47FAFB50419A9999391B3C54419A9999C9F9FB5041CDCCCC2C1A3C54410AD7A320F9FB5041CDCCCCAC183C54411F85EBE1F8FB504148E17AE4173C544100000040F8FB50419A999979153C54411F85EBE1F7FB504114AE4751143C5441AE47E16AF7FB5041295C8FF2123C544152B81EF5F5FB5041B81E850B103C544152B81E35F4FB5041295C8F420E3C54410AD7A3E0F2FB5041D7A370CD0D3C5441B81E85EBF2FB50418FC2F5B80E3C544185EB51A8F4FB5041EC51B89E153C544152B81E45EFFB5041EC51B86E183C54413D0AD703EAFB504185EB51881B3C5441B81E85BBE4FB5041C3F5288C1E3C54419A999979DFFB5041666666C6213C544148E17A84DCFB5041F6285CAF233C54411F85EB21D9FB50411F85EB01263C5441F6285C5FD7FB50411F85EB61273C5441666666D6D5FB5041295C8F82283C544152B81E75D4FB5041666666A6293C54419A999979D3FB50411F85EB712A3C54417B14AE47D3FB5041EC51B89E293C5441C3F5283CD1FB504185EB51682B3C5441AE47E10ACEFB5041B81E858B2E3C54419A999979CDFB5041A4703D1A2F3C544152B81EA5C7FB5041EC51B81E353C54415C8FC2F5C4FB504114AE4711383C5441713D0A77C3FB50410AD7A3D0393C54417B14AEC7C2FB50410AD7A3C03A3C5441E17A144EBBFB504114AE47A1463C5441333333D3B7FB50415C8FC2954C3C5441B81E85FBB6FB50415C8FC2854E3C544185EB5198B6FB5041713D0A574F3C54412BB1FEE5B2FB5041F777D358573C5441A1E6E9D5B1FB5041454E1BE8583C544152B81E05B2FB5041713D0A07593C5441BF2C2E14B8FB5041A90C625A5D3C5441D4539FA7BAFB504169A446F75E3C54410AD7A3F0BAFB5041333333135F3C544152B81EA5BBFB5041295C8F425F3C54412EACA7B5BBFB50410FB9A683603C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>418788 - 16153
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000052000000713D0AF725D150413D0AD75391245441A4703D3A22D15041AE47E1CA8B2454411F85EBA117D150419A9999797E2454417B14AE7716D15041666666E67B2454410AD7A3A015D1504133333393792454411F85EB1115D150410AD7A3907724544185EB517814D15041C3F5285C7524544114AE473114D15041B81E853B73245441B81E856B14D150413333336370245441AE47E11A15D15041713D0AA76B2454410AD7A33011D1504152B81E256B245441000000D00CD1504152B81E856A245441D7A3702D0BD1504114AE47D16A2454418FC2F5C805D150415C8FC2F56C245441CDCCCC4C02D15041E17A14FE6B24544133333363FDD050415C8FC2956B24544148E17A84FBD05041F6285CEF6924544185EB5148F9D05041AE47E1CA67245441D7A3709DF6D050419A999939672454417B14AEB7F4D05041D7A370ED66245441000000E0F2D05041D7A3701D6724544148E17AC4EDD05041C3F5281C6724544185EB5198E9D05041AE47E12A66245441E17A14AEE5D05041A4703D2A6824544148E17AA4E3D050410AD7A3206B245441AE47E11AE4D050418FC2F5A86D24544100000020E5D0504114AE47F16F245441333333B3E6D05041C3F5281C7424544114AE4741E7D0504114AE47A177245441C3F528ECE8D0504114AE47417A24544148E17A54EBD050419A9999197A2454410AD7A3B0F1D05041F6285CCF7A2454415C8FC285F7D0504114AE47A17C24544100000060F9D05041CDCCCC0C7E245441B81E85ABF0D050415C8FC2E57D24544100000040EAD05041E17A14AE7D24544148E17AB4E8D05041333333A37E24544185EB5178E7D050411F85EB81812454417B14AE37E5D0504148E17AF485245441F6285CAFE2D05041F6285CEF89245441EC51B86EE0D05041EC51B8BE8C245441EC51B8DEDDD050415C8FC2858F24544166666666DBD05041C3F528BC92245441295C8F12DAD050413D0AD7439524544152B81E55D9D0504166666606972454415C8FC215D9D0504148E17A149A24544100000070D8D0504148E17AC49C2454411F85EBB1D7D05041EC51B8FEA0245441A4703DBAD7D050410AD7A310A324544152B81E35D8D05041713D0AA7A524544148E17A74D9D050418FC2F518A8245441295C8FC2DAD05041EC51B86EAA2454417B14AE17DDD050410AD7A3A0AD2454411F85EB01E2D0504185EB5108B324544152B81EE5E4D050419A999979B6245441B81E850BE7D05041F6285CBFB8245441000000B0E9D0504114AE47F1BB245441666666D6EBD050417B14AE17BE245441AE47E1FAEDD05041F6285CBFC0245441D7A370BDEFD050410AD7A350BF24544185EB51E8F5D0504185EB5148C1245441AE47E18AFBD050417B14AE27C22454415C8FC2F5FED0504114AE47C1C124544148E17AD401D1504185EB51E8BD2454416666661605D1504133333313BF2454418FC2F51808D150417B14AEA7C1245441EC51B80E0ED1504114AE4771BF2454417B14AE3713D15041A4703D7ABD2454413D0AD79317D15041295C8F92BB2454410AD7A3F01BD15041CDCCCC5CB92454411F85EB411FD150413D0AD7C3B72454415C8FC2F521D150415C8FC245B7245441A4703DFA24D150417B14AE07B7245441B81E859B1FD15041CDCCCC9CB3245441A4703D0A18D15041F6285C4FB0245441E17A14FE16D150413D0AD7F3A9245441A4703D7A17D150411F85EB91A42454415C8FC2F51AD15041295C8FC2A4245441F6285CAF1ED15041D7A3708DA42454417B14AEC722D15041AE47E19AA324544185EB512827D15041CDCCCC4CA3245441713D0AF725D150413D0AD75391245441
+</a>
+
+<b>
+0106000000010000000103000000010000000F0000000B113D4E03D15041F6B68C456C2454410B20EBC504D150414866D8AD6C245441F70FE9CA04D150414D05A3C56B24544186635D7706D15041303CBD4E6A245441128CCA6E03D1504113E2D8C869245441121DC97D02D1504113E2D8C869245441833856C201D1504184FD650D69245441113FC69B00D15041F687F442692454414A158CC5FFD0504113E2D8C869245441BB30190AFFD050416812837869245441D7ACFAADFDD050416812837869245441305BC74EFED05041A7384DA96B245441D6ABDEE900D15041EE50A3E06B245441CDCCCC4C02D15041E17A14FE6B2454410B113D4E03D15041F6B68C456C245441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>418788 - 62741
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000052000000713D0AF725D150413D0AD75391245441A4703D3A22D15041AE47E1CA8B2454411F85EBA117D150419A9999797E2454417B14AE7716D15041666666E67B2454410AD7A3A015D1504133333393792454411F85EB1115D150410AD7A3907724544185EB517814D15041C3F5285C7524544114AE473114D15041B81E853B73245441B81E856B14D150413333336370245441AE47E11A15D15041713D0AA76B2454410AD7A33011D1504152B81E256B245441000000D00CD1504152B81E856A245441D7A3702D0BD1504114AE47D16A2454418FC2F5C805D150415C8FC2F56C245441CDCCCC4C02D15041E17A14FE6B24544133333363FDD050415C8FC2956B24544148E17A84FBD05041F6285CEF6924544185EB5148F9D05041AE47E1CA67245441D7A3709DF6D050419A999939672454417B14AEB7F4D05041D7A370ED66245441000000E0F2D05041D7A3701D6724544148E17AC4EDD05041C3F5281C6724544185EB5198E9D05041AE47E12A66245441E17A14AEE5D05041A4703D2A6824544148E17AA4E3D050410AD7A3206B245441AE47E11AE4D050418FC2F5A86D24544100000020E5D0504114AE47F16F245441333333B3E6D05041C3F5281C7424544114AE4741E7D0504114AE47A177245441C3F528ECE8D0504114AE47417A24544148E17A54EBD050419A9999197A2454410AD7A3B0F1D05041F6285CCF7A2454415C8FC285F7D0504114AE47A17C24544100000060F9D05041CDCCCC0C7E245441B81E85ABF0D050415C8FC2E57D24544100000040EAD05041E17A14AE7D24544148E17AB4E8D05041333333A37E24544185EB5178E7D050411F85EB81812454417B14AE37E5D0504148E17AF485245441F6285CAFE2D05041F6285CEF89245441EC51B86EE0D05041EC51B8BE8C245441EC51B8DEDDD050415C8FC2858F24544166666666DBD05041C3F528BC92245441295C8F12DAD050413D0AD7439524544152B81E55D9D0504166666606972454415C8FC215D9D0504148E17A149A24544100000070D8D0504148E17AC49C2454411F85EBB1D7D05041EC51B8FEA0245441A4703DBAD7D050410AD7A310A324544152B81E35D8D05041713D0AA7A524544148E17A74D9D050418FC2F518A8245441295C8FC2DAD05041EC51B86EAA2454417B14AE17DDD050410AD7A3A0AD2454411F85EB01E2D0504185EB5108B324544152B81EE5E4D050419A999979B6245441B81E850BE7D05041F6285CBFB8245441000000B0E9D0504114AE47F1BB245441666666D6EBD050417B14AE17BE245441AE47E1FAEDD05041F6285CBFC0245441D7A370BDEFD050410AD7A350BF24544185EB51E8F5D0504185EB5148C1245441AE47E18AFBD050417B14AE27C22454415C8FC2F5FED0504114AE47C1C124544148E17AD401D1504185EB51E8BD2454416666661605D1504133333313BF2454418FC2F51808D150417B14AEA7C1245441EC51B80E0ED1504114AE4771BF2454417B14AE3713D15041A4703D7ABD2454413D0AD79317D15041295C8F92BB2454410AD7A3F01BD15041CDCCCC5CB92454411F85EB411FD150413D0AD7C3B72454415C8FC2F521D150415C8FC245B7245441A4703DFA24D150417B14AE07B7245441B81E859B1FD15041CDCCCC9CB3245441A4703D0A18D15041F6285C4FB0245441E17A14FE16D150413D0AD7F3A9245441A4703D7A17D150411F85EB91A42454415C8FC2F51AD15041295C8FC2A4245441F6285CAF1ED15041D7A3708DA42454417B14AEC722D15041AE47E19AA324544185EB512827D15041CDCCCC4CA3245441713D0AF725D150413D0AD75391245441
+</a>
+
+<b>
+0106000000010000000103000000010000000F0000000B113D4E03D15041F6B68C456C2454410B20EBC504D150414866D8AD6C245441F70FE9CA04D150414D05A3C56B24544186635D7706D15041303CBD4E6A245441128CCA6E03D1504113E2D8C869245441121DC97D02D1504113E2D8C869245441833856C201D1504184FD650D69245441113FC69B00D15041F687F442692454414A158CC5FFD0504113E2D8C869245441BB30190AFFD050416812837869245441D7ACFAADFDD050416812837869245441305BC74EFED05041A7384DA96B245441D6ABDEE900D15041EE50A3E06B245441CDCCCC4C02D15041E17A14FE6B2454410B113D4E03D15041F6B68C456C245441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>418898 - 148565
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000280000003D0AD7232CBC5041333333039E2C54410AD7A34028BC504185EB51E89A2C54419A99992927BC5041C3F528BC9B2C54417B14AE9728BC50410AD7A3A0A02C5441AE47E1CA2EBC5041713D0AF7A42C5441A4703DDA30BC50415C8FC2B5A82C54417B14AED72FBC5041EC51B8DEAA2C5441CDCCCC4C26BC5041295C8FD2AF2C54417B14AE1726BC50419A999999B32C54419A9999B927BC5041333333F3B42C5441F6285CEF2DBC50417B14AE17B22C5441A4703D2A31BC5041D7A370BDAE2C54411F85EB3136BC504152B81EB5AA2C5441E17A14AE41BC5041B81E852BAE2C5441B81E855B46BC5041F6285CBFAF2C5441666666164ABC5041EC51B8BEB12C544185EB51084CBC50417B14AE87B32C5441F6285CDF4DBC504166666636B62C5441333333734FBC5041F6285CFFB82C5441CDCCCC3C51BC50415C8FC285BA2C5441CDCCCC8C53BC50415C8FC2D5BB2C54411F85EB6154BC5041666666E6BB2C544148E17A7457BC5041AE47E10ABC2C54411F85EB8156BC5041B81E855BAA2C5441B81E855B55BC5041000000A0AA2C5441A4703D2A53BC5041E17A149EA72C54418FC2F5A851BC5041713D0AE7A72C544114AE47B14DBC50410AD7A3A0AB2C5441CDCCCC2C4BBC5041F6285CDFAB2C5441333333F347BC504185EB51D8AB2C54410000001043BC5041C3F5281CAB2C5441E17A147E3FBC504185EB5168A92C5441000000203CBC50410AD7A3D0A62C544148E17A6437BC5041C3F5282CA32C54410000009034BC5041E17A145E9D2C54411F85EB1137BC5041000000B09C2C5441B81E857B32BC5041E17A14FE972C5441AE47E1CA31BC5041A4703D5A9A2C5441D7A3708D31BC50417B14AE779B2C54413D0AD7232CBC5041333333039E2C5441
+</a>
+
+<b>
+01060000000100000001030000000100000052000000FDE8959927BC5041DCAB4C3B9D2C544152EAE49927BC50415EF95A3C9D2C54418E6CA59D27BC5041AD3031499D2C5441734011A527BC50410A2095629D2C5441443FBEBF27BC5041E35CD9BD9D2C5441BD9460F827BC50419FED9C7F9E2C5441A9C3F19528BC50419EB0B39AA02C5441603626DE28BC50418FA8F0D1A02C5441AE47E1CA2EBC5041713D0AF7A42C5441A4703DDA30BC50415C8FC2B5A82C54417B14AED72FBC5041EC51B8DEAA2C5441CDCCCC4C26BC5041295C8FD2AF2C5441C0AE714626BC5041F0BC4446B02C544194961C1926BC5041C079D285B32C54417FF50D5126BC5041ABD8C3BDB32C54413C6C603328BC5041831C43E6B42C54412C20BFAB2ABC5041DD7D3815B42C54417E07BBC031BC5041CBD77588AE2C54412108C8FB31BC5041981AA053AE2C54411BC1838D35BC50411EE95F09AB2C5441319C418837BC504194FBD401AC2C54410A45F26C39BC50417DA97665AC2C54410AD8D7A93BBC504134520AEEAC2C5441A1567E043EBC5041A6C1D92BAD2C54414222764544BC5041C7E7EDDCAE2C5441A7F9E40148BC504137349066B02C54413B14FC5E4ABC50410EC128C9B12C5441C5F0DBDE4BBC504109EC3316B32C544118AE260A4DBC5041EB5A5374B42C5441B5A5B3D14DBC50410C885035B62C5441F6285CDF4DBC504166666636B62C5441C6A20E674EBC5041FD7FF725B72C5441A8AED5664FBC5041DC8232D2B82C54410885A2FA50BC5041C5ED402CBA2C5441937BEA7A52BC50419625651DBB2C54412603568953BC50410F985FC7BB2C54411F85EB6154BC5041666666E6BB2C54411BA87A7457BC50410745E10ABC2C54415F43C28256BC50410B482D6BAA2C54415514B1AF55BC5041DCC16B8CAA2C5441B81E855B55BC5041000000A0AA2C5441B8D8625755BC5041E157549AAA2C54418E86A5FE53BC5041435771C1A82C5441F085D86F53BC5041F34D8FFDA72C5441A4703D2A53BC5041E17A149EA72C5441900BA92F52BC5041C42E88CDA72C54418FC2F5A851BC5041713D0AE7A72C544114AE47B14DBC50410AD7A3A0AB2C5441CDCCCC2C4BBC5041F6285CDFAB2C5441333333F347BC504185EB51D8AB2C54410DFF265E47BC5041FDD9E7C1AB2C54417E68744743BC504110DE7F24AB2C54410000001043BC5041C3F5281CAB2C5441E17A147E3FBC504185EB5168A92C5441EF9E14A83CBC5041CB1F6739A72C5441244612A437BC5041F6D81A5DA32C544148E17A6437BC5041C3F5282CA32C5441C194D69C34BC50412F096A789D2C54410000009034BC5041E17A145E9D2C5441F9EFDC1435BC5041F0A10C3A9D2C5441774A0C1037BC50417E8A15AE9C2C5441B189C05535BC50419C7E6CE99A2C54413AB8760E33BC5041FC947794982C54410F2270F832BC504172DDEC7D982C5441F795C4EF32BC50417C4E0D75982C5441B81E857B32BC5041E17A14FE972C5441290C9C5C32BC5041497BCD67982C5441A996A35232BC504193A1E789982C544103A172E431BC50410C73CA029A2C54416FF6B0AC31BC50411AEA7DE69A2C5441D7A3708D31BC50417B14AE779B2C54413D0AD7232CBC5041333333039E2C5441CA69786629BC5041F86021D39B2C54414417C69728BC5041233BEA2D9B2C5441F5A9649228BC50419F0F9E299B2C5441DE3D4F9128BC5041E57AC0289B2C54413DF75D8828BC5041F5009C219B2C5441D7CF928728BC5041EEBDF9209B2C54415608534228BC5041250009EA9A2C544164F41FD727BC504144A66C389B2C54419A99992927BC5041C3F528BC9B2C5441FDE8959927BC5041DCAB4C3B9D2C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>418918 - 148609
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000002500000085EB51485DBB504100000060A72C5441000000F03BBB50415C8FC205992C5441B81E853B3DBB50411F85EB919D2C5441713D0A473DBB5041B81E859B9E2C54410AD7A3F03DBB50417B14AE979F2C5441E17A140E3EBB5041C3F5286CA02C5441A4703D6A3FBB50410AD7A380A12C5441CDCCCCFC40BB5041295C8F92A32C544114AE47D141BB50415C8FC2C5A42C54413D0AD7C341BB50415C8FC215A62C54413D0AD77341BB5041E17A146EA82C54411F85EBE141BB504185EB5158AA2C54417B14AEC742BB50415C8FC205AC2C5441E17A14EE44BB5041A4703D0AAD2C5441295C8F9245BB5041C3F5284CAF2C54415C8FC2C545BB5041B81E85FBAF2C5441B81E85BB45BB50415C8FC295B02C5441A4703DDA45BB5041C3F5287CB52C544185EB510846BB5041EC51B8DEB62C5441EC51B89E46BB50415C8FC225B92C54417B14AE6748BB50415C8FC2A5BB2C5441E17A144E4ABB5041295C8F72BE2C54411F85EB914BBB504185EB5198BF2C544185EB51384CBB5041EC51B8CEBF2C544148E17AD44CBB50418FC2F548C02C54418FC2F5C84DBB5041A4703DFAC12C5441EC51B84E4EBB504166666666C22C5441C3F528BC4FBB5041CDCCCCECC32C54410AD7A31050BB5041B81E85CBC42C5441D7A370FD50BB50411F85EB81C52C544185EB51D852BB504152B81E65C52C5441666666F657BB50411F85EB81C52C5441CDCCCC7C5EBB5041EC51B87EC42C544152B81E555FBB5041295C8F22C32C5441A4703D5A5EBB5041A4703DDAB52C5441713D0A475EBB5041D7A370DDB42C544185EB51485DBB504100000060A72C5441
+</a>
+
+<b>
+0106000000010000000103000000010000004C0000004ED7AB7841BB50411E8F9883A82C5441D29460E341BB5041A6330B5BAA2C54412BAC6EE341BB5041128A255BAA2C5441EB9DB1E341BB5041E9A9A25BAA2C5441761A85E641BB50411DEBEA60AA2C54417B05E3E641BB504176759A61AA2C5441FB0B951042BB5041141389AFAA2C5441DDEF3ECC42BB50415989ECFEAB2C54418A48E14643BB5041AFB53D3CAC2C5441A21FD3E244BB504142D2E904AD2C5441E17A14EE44BB5041A4703D0AAD2C5441295C8F9245BB5041C3F5284CAF2C54415C8FC2C545BB5041B81E85FBAF2C544192FD13C545BB5041AA92CA05B02C54417CAE01D045BB5041BD7D4BDAB32C5441A4703DDA45BB5041C3F5287CB52C5441B22A41FC45BB50417714E281B62C54410CDB462046BB5041753B973BB72C5441C6315F9E46BB5041600E6924B92C5441E41D04C546BB5041265E655BB92C54417B14AE6748BB50415C8FC2A5BB2C5441EFB1741F49BB5041EC6996B4BC2C5441F0A85F584ABB50412EC5E57BBE2C5441A0C1B6884ABB5041B566BFA7BE2C544197AE8EDB4ABB5041B36BE5F2BE2C5441D253055C4BBB5041B2606D67BF2C5441A914BC7D4BBB5041D2750286BF2C5441F5B027A64BBB50410170EF9EBF2C544185EB51384CBB5041EC51B8CEBF2C54413FB5F47B4CBB504160CE8C03C02C54415AEABFDB4CBB5041D0BF5F4EC02C5441C49F34D24DBB5041D550B701C22C5441EC51B84E4EBB504166666666C22C5441C3F528BC4FBB5041CDCCCCECC32C5441507CBBBC4FBB504140184FEEC32C54413A350B0250BB5041C2FF09A5C42C54413147250E50BB50417CA3F1C4C42C54411CBC432A50BB50410E0342DFC42C5441AD5050BD50BB50414288F84DC52C5441D6EBC7F450BB5041250C407BC52C54412E4970FC50BB5041DB0E2681C52C5441811F658951BB504131A26E79C52C544185EB51D852BB504152B81E65C52C54419D5E2C9F54BB504113851E6FC52C5441347FCAFD57BB504134EBC580C52C5441168DE7AE5DBB50416557AB9EC42C5441CC7D6B7D5EBB504150E9B87DC42C5441ABA360885EBB5041F91D166CC42C5441F15616A95EBB504141EB7037C42C5441158E5A545FBB5041AC17BB23C32C54417CFB5B625EBB50410196394BB62C54416D9B22525EBB5041A7CE866FB52C5441713D0A475EBB5041D7A370DDB42C544181E8BEAE5DBB5041CF9FAACCAC2C544185EB51485DBB504100000060A72C5441AF0DCE014ABB5041798510149F2C5441A7F6FFA649BB504193D6FAEC9E2C5441ABC8C10748BB50419DCA3F3A9E2C54411AC57BF23BBB5041FB35D406992C5441318FDAF43CBB5041B703C5999C2C54418B72ACF63CBB5041EC0429A09C2C544108F02B063DBB5041BC3095D69C2C5441C270F61C3DBB50410B889D269D2C5441F247D4363DBB5041A0AC72819D2C5441B81E853B3DBB50411F85EB919D2C5441AA23D33E3DBB50411DF71CDE9D2C5441301A5D503DBB50418BE361A99E2C54410AD7A3F03DBB50417B14AE979F2C5441AB7D670D3EBB5041106E4867A02C54418881AD313FBB5041A111B953A12C5441A4703D6A3FBB50410AD7A380A12C5441CDCCCCFC40BB5041295C8F92A32C544114AE47D141BB50415C8FC2C5A42C54413D0AD7C341BB50415C8FC215A62C5441D632A08241BB504166A620FFA72C54414ED7AB7841BB50411E8F9883A82C5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>419022 - 3115680
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000007000000666666A6FFCB5041333333D3FB4E5441CDCCCCDCE3CB5041AE47E1CADA4E544114AE4771DDCB50418FC2F518DA4E5441C3F5283CBCCB50417B14AED7D94E54417B14AE07E9CB50419A9999190F4F5441713D0A47EECB5041AE47E19A0A4F5441666666A6FFCB5041333333D3FB4E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000007E27A829E7CB5041FCF734B7DE4E5441666666A6FFCB5041333333D3FB4E544185EB512814CC50411F85EB61EA4E54410000004019CC5041C3F5283CE64E54417B14AEA719CC5041B81E859BE04E5441CDCCCCDCE3CB5041AE47E1CADA4E544140B6B9F3E6CB50418A811877DE4E5441E46BB53BE6CB504149EFE660DD4E54416B8EA7DFE6CB50417EBBFB6ADC4E54415B563535E8CB50418D00E0B2DD4E54417E27A829E7CB5041FCF734B7DE4E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>419022 - 3415349
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000007000000666666A6FFCB5041333333D3FB4E5441CDCCCCDCE3CB5041AE47E1CADA4E544114AE4771DDCB50418FC2F518DA4E5441C3F5283CBCCB50417B14AED7D94E54417B14AE07E9CB50419A9999190F4F5441713D0A47EECB5041AE47E19A0A4F5441666666A6FFCB5041333333D3FB4E5441
+</a>
+
+<b>
+0106000000010000000103000000010000000B0000007E27A829E7CB5041FCF734B7DE4E5441666666A6FFCB5041333333D3FB4E544185EB512814CC50411F85EB61EA4E54410000004019CC5041C3F5283CE64E54417B14AEA719CC5041B81E859BE04E5441CDCCCCDCE3CB5041AE47E1CADA4E544140B6B9F3E6CB50418A811877DE4E5441E46BB53BE6CB504149EFE660DD4E54416B8EA7DFE6CB50417EBBFB6ADC4E54415B563535E8CB50418D00E0B2DD4E54417E27A829E7CB5041FCF734B7DE4E5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>419286 - 222666
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001E000000333333231DD55041D7A370CD3A235441CDCCCC1C21D55041AE47E1AA37235441000000F023D5504100000070352354417B14AE3725D550410AD7A39034235441F6285C6F29D55041000000B031235441F6285C4F25D55041666666062F2354411F85EB611DD55041295C8FF22E23544114AE470119D550418FC2F5E82F235441295C8FD213D55041D7A370CD31235441E17A142E13D550415C8FC2E5302354413D0AD70312D550411F85EB4131235441F6285C3F0BD55041CDCCCC8C34235441295C8F820BD5504185EB510835235441EC51B8EE0AD55041D7A370CD3523544148E17A4404D55041AE47E15A38235441333333E3F1D4504114AE47614223544148E17AD4E7D45041D7A370DD47235441333333A3EAD45041A4703D0A4D235441C3F5285CECD450416666667650235441F6285C0FEED4504152B81E0550235441E17A149EF5D45041C3F5280C4E2354413333338309D55041B81E85DB48235441CDCCCC0C0AD550410000005041235441666666C60BD55041333333B3402354417B14AE8710D55041EC51B87E402354410000005013D5504100000060402354419A9999D916D55041000000803F2354410000005019D550419A9999193E235441000000F01BD55041000000C03B235441333333231DD55041D7A370CD3A235441
+</a>
+
+<b>
+01060000000100000001030000000100000021000000333333231DD55041D7A370CD3A235441DD29DB8A1DD55041BA46B07B3A235441CADE71411DD55041E975F4D3382354419380C5BA12D55041E39BF74D31235441295C8F820BD5504185EB510835235441EC51B8EE0AD55041D7A370CD35235441F78D9C7808D5504174CBC0BE362354416506245D08D550413E0C46C936235441576CC00708D55041C4A2F9E9362354414CD015B107D5504144752A0B372354419B47038307D55041646BCF1C37235441AC09A43C07D55041E7BAC23737235441EB8A3C2F07D5504171E4E43C3723544145E42A89F2D45041D7C0B3D742235441A863FE2CF5D4504153C7AE2846235441967DB24D00D55041D7A671B2452354410D482BD300D55041DD42D9434A2354418E3849CE00D5504118D25F434A2354411D2E83D500D550415CC910854A235441E347A5C601D550417FDE947A4A2354410C9B7A8609D5504105357EAD48235441CDCCCC0C0AD550410000005041235441666666C60BD55041333333B3402354417B14AE8710D55041EC51B87E40235441941FE58E11D550410D505E7340235441A67BCD5F13D55041BA59175C4023544117BD45A613D55041B118A94A402354418558813514D55041C65E3B27402354419A9999D916D55041000000803F235441BA1BBAE618D55041A55D73553E2354410000005019D550419A9999193E235441000000F01BD55041000000C03B235441333333231DD55041D7A370CD3A235441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>419286 - 359939
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001E000000333333231DD55041D7A370CD3A235441CDCCCC1C21D55041AE47E1AA37235441000000F023D5504100000070352354417B14AE3725D550410AD7A39034235441F6285C6F29D55041000000B031235441F6285C4F25D55041666666062F2354411F85EB611DD55041295C8FF22E23544114AE470119D550418FC2F5E82F235441295C8FD213D55041D7A370CD31235441E17A142E13D550415C8FC2E5302354413D0AD70312D550411F85EB4131235441F6285C3F0BD55041CDCCCC8C34235441295C8F820BD5504185EB510835235441EC51B8EE0AD55041D7A370CD3523544148E17A4404D55041AE47E15A38235441333333E3F1D4504114AE47614223544148E17AD4E7D45041D7A370DD47235441333333A3EAD45041A4703D0A4D235441C3F5285CECD450416666667650235441F6285C0FEED4504152B81E0550235441E17A149EF5D45041C3F5280C4E2354413333338309D55041B81E85DB48235441CDCCCC0C0AD550410000005041235441666666C60BD55041333333B3402354417B14AE8710D55041EC51B87E402354410000005013D5504100000060402354419A9999D916D55041000000803F2354410000005019D550419A9999193E235441000000F01BD55041000000C03B235441333333231DD55041D7A370CD3A235441
+</a>
+
+<b>
+01060000000100000001030000000100000021000000333333231DD55041D7A370CD3A235441DD29DB8A1DD55041BA46B07B3A235441CADE71411DD55041E975F4D3382354419380C5BA12D55041E39BF74D31235441295C8F820BD5504185EB510835235441EC51B8EE0AD55041D7A370CD35235441F78D9C7808D5504174CBC0BE362354416506245D08D550413E0C46C936235441576CC00708D55041C4A2F9E9362354414CD015B107D5504144752A0B372354419B47038307D55041646BCF1C37235441AC09A43C07D55041E7BAC23737235441EB8A3C2F07D5504171E4E43C3723544145E42A89F2D45041D7C0B3D742235441A863FE2CF5D4504153C7AE2846235441967DB24D00D55041D7A671B2452354410D482BD300D55041DD42D9434A2354418E3849CE00D5504118D25F434A2354411D2E83D500D550415CC910854A235441E347A5C601D550417FDE947A4A2354410C9B7A8609D5504105357EAD48235441CDCCCC0C0AD550410000005041235441666666C60BD55041333333B3402354417B14AE8710D55041EC51B87E40235441941FE58E11D550410D505E7340235441A67BCD5F13D55041BA59175C4023544117BD45A613D55041B118A94A402354418558813514D55041C65E3B27402354419A9999D916D55041000000803F235441BA1BBAE618D55041A55D73553E2354410000005019D550419A9999193E235441000000F01BD55041000000C03B235441333333231DD55041D7A370CD3A235441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>419312 - 26866
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000200000001030000000300000013000000B81E856B58D35041D7A370FD7A245441F6285C4F59D350410AD7A37079245441AE47E17A5AD350415C8FC2B5772454417B14AE575BD350418FC2F5D876245441AE47E1CA5CD350417B14AEC775245441E17A148E5DD35041B81E852B75245441AE47E14A5ED35041A4703D1A7424544114AE47515ED3504114AE47717324544185EB51985DD350410AD7A3307324544114AE47115AD350411F85EB517424544185EB517853D35041C3F5281C78245441B81E857B4DD3504148E17A847B245441000000E04DD3504185EB51087C2454413D0AD73351D350417B14AEB77C24544114AE479153D35041333333337D2454419A99999955D35041E17A146E7D24544152B81EC556D3504152B81EE57C2454411F85EBA157D350411F85EB217C245441B81E856B58D35041D7A370FD7A24544107000000666666565AD350417B14AE27762454413D0AD7F359D35041C3F5288C75245441F6285CFF59D350417B14AE5775245441CDCCCC2C5AD35041C3F5283C75245441EC51B85E5AD3504185EB514875245441295C8FC25AD35041333333E375245441666666565AD350417B14AE277624544106000000AE47E18A53D350415C8FC2657B245441D7A3707D56D35041CDCCCC0C7A2454413333331357D35041CDCCCC8C7B245441713D0AF754D35041333333637C2454418FC2F5F853D35041A4703D8A7C245441AE47E18A53D350415C8FC2657B24544101030000000100000033000000CDCCCC8C67D3504148E17AA48D2454413333331368D35041000000F0922454419A9999696AD35041A4703D0A96245441713D0AA76AD35041295C8FC2992454413D0AD7736CD350413D0AD7239C245441295C8F6271D350419A9999D99C2454419A9999F96ED350415C8FC29590245441D7A3708D6ED35041713D0A078C245441E17A14AE6BD35041EC51B8CE8624544148E17A5469D3504185EB5128832454417B14AE5769D35041B81E850B7A245441713D0A776AD35041F6285C9F72245441B81E850B64D3504166666636722454419A9999D960D35041295C8FB2722454417B14AEF75FD35041C3F5287C7324544152B81E855FD35041A4703D8A74245441CDCCCCDC5ED35041AE47E17A7524544148E17AA45DD35041713D0A477624544185EB51785CD3504114AE473177245441A4703D0A5BD350411F85EBE17824544114AE47D15ED350411F85EBA17924544152B81ED55FD35041713D0AD77A245441EC51B8DE5FD35041EC51B83E7E245441F6285CEF5ED350413D0AD7A37F24544152B81E355ED35041A4703DFA80245441A4703D9A5DD35041AE47E1DA81245441C3F5285C5ED35041B81E85FB83245441B81E851B5AD35041F6285C7F852454415C8FC2B558D35041AE47E10A86245441CDCCCC6C57D35041000000208324544152B81EC556D3504148E17A0483245441E17A14DE54D3504185EB518883245441A4703D6A53D35041713D0A3784245441295C8F424FD35041EC51B84E842454415C8FC2C54ED35041713D0A2786245441AE47E11A4ED35041CDCCCCBC862454415C8FC2354DD35041E17A14DE86245441295C8F824CD35041B81E855B86245441666666C64BD350418FC2F55886245441B81E858B4AD35041F6285C7F892454419A9999294DD35041333333A3972454417B14AE7766D350417B14AE479B2454415C8FC2D566D350413333335396245441E17A14EE65D35041B81E85CB9224544185EB519865D35041B81E858B8C2454418FC2F59866D350415C8FC2658A24544152B81EA566D3504114AE477188245441D7A370BD66D350411F85EBD186245441F6285C1F68D3504185EB5158872454415C8FC2A568D350413D0AD7D38A245441CDCCCC8C67D3504148E17AA48D245441
+</a>
+
+<b>
+01060000000100000001030000000100000024000000ED66E3DA66D350414E571ADD8624544132780CA366D3504185AC87C6882454414435E08566D350416E1EA48E8A24544130E93AE465D35041BFD7E8E88B245441F93A989E65D35041D99895008D24544109696ABD65D35041183AE03A9024544107EEEFE765D350412F7FEA5892245441A456362566D3504135F790A293245441E2F309C366D3504131622D0A96245441E69007CD66D35041D79BE9C896245441DFC4FEBC66D35041018F1AA1972454412FAA26A366D3504172728FFD982454414F2B1C7F66D350417B3980E39A245441ED8EE69966D350411DAF16A49C245441EAD323DA66D350410C41951A9E245441B08F1A1467D350416CE932A79F24544123F4C98567D35041D42E6459A2245441716A9D336BD35041989CDC70A22454413C6C3D5E6CD3504114FA5BA19C245441FD1BC9976BD35041A410E1009B245441D506EFF56AD350410C00E02A9A24544117B19EA06AD35041B65C0C5F992454415640D2886AD3504109892BEE97245441EAA16D6F6AD3504181F1936496245441EA02C6066AD350416CFC118795245441B36F026969D35041BCA8ACB59424544185B4DB3068D3504134535D17932454419560D80468D35041BAC9385F92245441454912E667D35041C69CD82891245441A1D0B3C167D3504101DC09BA8F24544165BBD49367D35041DE7A64EB8D245441F4BD233268D35041F9A565FC8B2454411FD40BA268D350418D8534BB8A24544164DC8B6968D35041DD336C448924544186103F2068D35041AF0D335E87245441ED66E3DA66D350414E571ADD86245441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>419312 - 68202
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000200000001030000000300000013000000B81E856B58D35041D7A370FD7A245441F6285C4F59D350410AD7A37079245441AE47E17A5AD350415C8FC2B5772454417B14AE575BD350418FC2F5D876245441AE47E1CA5CD350417B14AEC775245441E17A148E5DD35041B81E852B75245441AE47E14A5ED35041A4703D1A7424544114AE47515ED3504114AE47717324544185EB51985DD350410AD7A3307324544114AE47115AD350411F85EB517424544185EB517853D35041C3F5281C78245441B81E857B4DD3504148E17A847B245441000000E04DD3504185EB51087C2454413D0AD73351D350417B14AEB77C24544114AE479153D35041333333337D2454419A99999955D35041E17A146E7D24544152B81EC556D3504152B81EE57C2454411F85EBA157D350411F85EB217C245441B81E856B58D35041D7A370FD7A24544107000000666666565AD350417B14AE27762454413D0AD7F359D35041C3F5288C75245441F6285CFF59D350417B14AE5775245441CDCCCC2C5AD35041C3F5283C75245441EC51B85E5AD3504185EB514875245441295C8FC25AD35041333333E375245441666666565AD350417B14AE277624544106000000AE47E18A53D350415C8FC2657B245441D7A3707D56D35041CDCCCC0C7A2454413333331357D35041CDCCCC8C7B245441713D0AF754D35041333333637C2454418FC2F5F853D35041A4703D8A7C245441AE47E18A53D350415C8FC2657B24544101030000000100000033000000CDCCCC8C67D3504148E17AA48D2454413333331368D35041000000F0922454419A9999696AD35041A4703D0A96245441713D0AA76AD35041295C8FC2992454413D0AD7736CD350413D0AD7239C245441295C8F6271D350419A9999D99C2454419A9999F96ED350415C8FC29590245441D7A3708D6ED35041713D0A078C245441E17A14AE6BD35041EC51B8CE8624544148E17A5469D3504185EB5128832454417B14AE5769D35041B81E850B7A245441713D0A776AD35041F6285C9F72245441B81E850B64D3504166666636722454419A9999D960D35041295C8FB2722454417B14AEF75FD35041C3F5287C7324544152B81E855FD35041A4703D8A74245441CDCCCCDC5ED35041AE47E17A7524544148E17AA45DD35041713D0A477624544185EB51785CD3504114AE473177245441A4703D0A5BD350411F85EBE17824544114AE47D15ED350411F85EBA17924544152B81ED55FD35041713D0AD77A245441EC51B8DE5FD35041EC51B83E7E245441F6285CEF5ED350413D0AD7A37F24544152B81E355ED35041A4703DFA80245441A4703D9A5DD35041AE47E1DA81245441C3F5285C5ED35041B81E85FB83245441B81E851B5AD35041F6285C7F852454415C8FC2B558D35041AE47E10A86245441CDCCCC6C57D35041000000208324544152B81EC556D3504148E17A0483245441E17A14DE54D3504185EB518883245441A4703D6A53D35041713D0A3784245441295C8F424FD35041EC51B84E842454415C8FC2C54ED35041713D0A2786245441AE47E11A4ED35041CDCCCCBC862454415C8FC2354DD35041E17A14DE86245441295C8F824CD35041B81E855B86245441666666C64BD350418FC2F55886245441B81E858B4AD35041F6285C7F892454419A9999294DD35041333333A3972454417B14AE7766D350417B14AE479B2454415C8FC2D566D350413333335396245441E17A14EE65D35041B81E85CB9224544185EB519865D35041B81E858B8C2454418FC2F59866D350415C8FC2658A24544152B81EA566D3504114AE477188245441D7A370BD66D350411F85EBD186245441F6285C1F68D3504185EB5158872454415C8FC2A568D350413D0AD7D38A245441CDCCCC8C67D3504148E17AA48D245441
+</a>
+
+<b>
+01060000000100000001030000000100000024000000ED66E3DA66D350414E571ADD8624544132780CA366D3504185AC87C6882454414435E08566D350416E1EA48E8A24544130E93AE465D35041BFD7E8E88B245441F93A989E65D35041D99895008D24544109696ABD65D35041183AE03A9024544107EEEFE765D350412F7FEA5892245441A456362566D3504135F790A293245441E2F309C366D3504131622D0A96245441E69007CD66D35041D79BE9C896245441DFC4FEBC66D35041018F1AA1972454412FAA26A366D3504172728FFD982454414F2B1C7F66D350417B3980E39A245441ED8EE69966D350411DAF16A49C245441EAD323DA66D350410C41951A9E245441B08F1A1467D350416CE932A79F24544123F4C98567D35041D42E6459A2245441716A9D336BD35041989CDC70A22454413C6C3D5E6CD3504114FA5BA19C245441FD1BC9976BD35041A410E1009B245441D506EFF56AD350410C00E02A9A24544117B19EA06AD35041B65C0C5F992454415640D2886AD3504109892BEE97245441EAA16D6F6AD3504181F1936496245441EA02C6066AD350416CFC118795245441B36F026969D35041BCA8ACB59424544185B4DB3068D3504134535D17932454419560D80468D35041BAC9385F92245441454912E667D35041C69CD82891245441A1D0B3C167D3504101DC09BA8F24544165BBD49367D35041DE7A64EB8D245441F4BD233268D35041F9A565FC8B2454411FD40BA268D350418D8534BB8A24544164DC8B6968D35041DD336C448924544186103F2068D35041AF0D335E87245441ED66E3DA66D350414E571ADD86245441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>462059 - 5241514
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000002200000085EB516853F05041E17A140E06FE544114AE47F154F050413D0AD75303FE54415C8FC2355BF05041C3F5282CF7FD54417B14AEF76AF05041B81E856BE9FD54411F85EBE16EF05041E17A148EE1FD54413D0AD7B372F050419A9999A9DCFD54411F85EB4176F050419A999939D6FD54410000005076F050419A999929D5FD54413D0AD76375F05041AE47E1DAD4FD54410000009072F0504152B81EC5D4FD54418FC2F56870F05041AE47E12AD5FD5441B81E854B6CF0504152B81EA5D6FD5441CDCCCC7C6AF05041295C8F62D7FD54411F85EB8163F05041713D0A97DAFD54417B14AE2761F05041295C8F42DBFD54413D0AD7D35EF0504185EB5168DCFD5441D7A3701D5DF05041E17A14AEDCFD544185EB51D85AF05041AE47E13ADDFD5441CDCCCCEC5AF05041AE47E1BADDFD5441F6285C7F5BF050413D0AD7E3E1FD5441CDCCCC5C54F05041D7A3705DE3FD54417B14AEA742F05041713D0AD7E7FD54413D0AD75341F0504114AE4721E8FD54410000005041F050419A9999E9EBFD5441AE47E16A40F05041EC51B89EF1FD5441666666C63FF05041AE47E12AF4FD54411F85EB913EF050413D0AD7C3FDFD5441666666263EF050410000005000FE5441333333433EF05041A4703DEA02FE54411F85EB913EF050415C8FC26504FE54415C8FC2853FF05041713D0AE704FE54411F85EB5142F05041713D0A2705FE5441CDCCCC3C4EF05041333333D305FE544185EB516853F05041E17A140E06FE5441
+</a>
+
+<b>
+0106000000010000000103000000010000001A0000008968804376F05041B4E40B1BD6FD5441A4564F4476F050415FE80C51D5FD54410AD7A36075F0504100000010D5FD54418FC2F58873F0504133333313D5FD54410AD7A33070F050411F85EBA1D5FD5441C3F5284C6EF05041F6285C3FD6FD5441E17A14AE63F0504148E17AE4DAFD54418FC2F5785EF05041CDCCCC7CDCFD54410D16EFE85AF05041B1DEC544DDFD54413EE51A895BF05041230F0AE6E1FD54411F127EBE51F05041357A56FEE3FD5441710CB74D41F050411D149E17E8FD54417C5CFEFC40F050418190F0FAEDFD5441684A027C3FF050415C79627BF6FD5441308802E63EF0504111321626FBFD544109C3BE2C3EF05041BB78832900FE5441FE5C59403EF0504121E249A802FE544190B3979C3EF050413C1E6B6B04FE5441CF51A07C3FF05041AAE921EE04FE544185EB516853F05041E17A140E06FE544176DCB20B57F050413BA8A53FFFFD54415C8FC2355BF05041C3F5282CF7FD54412BC26A196BF050412E8DBE27E9FD544107EEA1076FF050419481C75DE1FD54414F969A1B73F050416F89B3EDDBFD54418968804376F05041B4E40B1BD6FD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>508987 - 1606794
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000003E000000F6285C6F66635041F6285C0F5F2A5541295C8FB263635041295C8F525E2A55410AD7A3305F6350418FC2F5C85B2A5541B81E854B5A635041B81E85DB5A2A554152B81EA559635041B81E85BB5A2A55411F85EB31586350411F85EB615A2A55411F85EB514F63504114AE4721582A55417B14AEC74C635041A4703D0A582A5541E17A14EE4663504152B81EC55B2A5541EC51B81E4663504185EB51085B2A55411F85EBA1476350411F85EBB1552A5541CDCCCC6C47635041000000F0502A5541C3F5285C49635041B81E859B4F2A554185EB51F84B635041EC51B82E4F2A55413D0AD79353635041666666864E2A5541000000905A635041CDCCCC6C4D2A55410AD7A3F05A6350413D0AD7134A2A5541EC51B88E47635041666666F64D2A554185EB5198466350415C8FC2354E2A5541295C8F9245635041AE47E1DA4A2A554185EB515844635041A4703D1A4B2A55419A9999E93C635041333333334C2A5541B81E850B38635041666666164D2A55415C8FC265336350411F85EBD14E2A5541C3F528EC3163504185EB51A84F2A5541000000103163504185EB5188502A55417B14AEB73063504114AE47B1512A5541000000E030635041E17A14AE522A5541F6285C2F31635041713D0AA7542A5541B81E857B31635041713D0AF7562A5541295C8F42326350411F85EBF1572A55418FC2F5D833635041295C8FF2592A5541295C8F5236635041666666D65B2A55410000000037635041666666465C2A5541333333C33A635041A4703DBA5E2A5541000000303E6350410AD7A370602A5541B81E85EB3F635041EC51B84E612A5541C3F5287C416350419A9999E9612A5541CDCCCC7C436350415C8FC2B5622A5541AE47E11A4963504185EB5198642A55419A9999F94C635041CDCCCCFC652A55411F85EB914F6350410AD7A330672A55419A99991953635041AE47E10A692A554152B81E456263504148E17AF4712A5541B81E850B66635041C3F5282C742A5541F6285C4F6B63504114AE47A1762A5541C3F528AC79635041EC51B83E7B2A5541B81E854B7963504185EB51586B2A5541F6285CEF6A635041333333C3692A5541B81E85EB67635041CDCCCCEC692A55419A9999896563504185EB5128692A5541295C8F22636350411F85EB61682A5541CDCCCC9C6063504166666636662A55417B14AEB767635041AE47E19A662A55411F85EB216B635041AE47E1CA662A55410AD7A31075635041A4703DFA672A554185EB519874635041EC51B80E5F2A5541713D0A977463504152B81EF55E2A55410AD7A360736350415C8FC2955F2A5541333333537063504148E17AF45E2A554114AE47616B6350419A9999D95E2A5541F6285C6F66635041F6285C0F5F2A5541
+</a>
+
+<b>
+01060000000100000001030000000100000011000000FF7FEC62486350419DBDDDCB4D2A5541C57160984C635041B130E7F34C2A55417A87CCBE4D63504138B8E3B84C2A5541C19FC8A651635041733C74F04B2A5541BAF7F079546350419461815F4B2A55410AD7A3F05A6350413D0AD7134A2A5541B3468FF05A6350410A648D144A2A55412ACF76F35A635041C3ABF8134A2A554114AE47215B6350410AD7A360482A55415C8FC2855A63504152B81E35442A554148E17AF456635041E17A143E462A55417B14AE6753635041B81E85AB472A55417B14AE374F635041713D0AE7482A5541FCAA6B9645635041FC168CE74A2A554185EB5198466350415C8FC2354E2A5541EC51B88E47635041666666F64D2A5541FF7FEC62486350419DBDDDCB4D2A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>508987 - 3270319
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000003E000000F6285C6F66635041F6285C0F5F2A5541295C8FB263635041295C8F525E2A55410AD7A3305F6350418FC2F5C85B2A5541B81E854B5A635041B81E85DB5A2A554152B81EA559635041B81E85BB5A2A55411F85EB31586350411F85EB615A2A55411F85EB514F63504114AE4721582A55417B14AEC74C635041A4703D0A582A5541E17A14EE4663504152B81EC55B2A5541EC51B81E4663504185EB51085B2A55411F85EBA1476350411F85EBB1552A5541CDCCCC6C47635041000000F0502A5541C3F5285C49635041B81E859B4F2A554185EB51F84B635041EC51B82E4F2A55413D0AD79353635041666666864E2A5541000000905A635041CDCCCC6C4D2A55410AD7A3F05A6350413D0AD7134A2A5541EC51B88E47635041666666F64D2A554185EB5198466350415C8FC2354E2A5541295C8F9245635041AE47E1DA4A2A554185EB515844635041A4703D1A4B2A55419A9999E93C635041333333334C2A5541B81E850B38635041666666164D2A55415C8FC265336350411F85EBD14E2A5541C3F528EC3163504185EB51A84F2A5541000000103163504185EB5188502A55417B14AEB73063504114AE47B1512A5541000000E030635041E17A14AE522A5541F6285C2F31635041713D0AA7542A5541B81E857B31635041713D0AF7562A5541295C8F42326350411F85EBF1572A55418FC2F5D833635041295C8FF2592A5541295C8F5236635041666666D65B2A55410000000037635041666666465C2A5541333333C33A635041A4703DBA5E2A5541000000303E6350410AD7A370602A5541B81E85EB3F635041EC51B84E612A5541C3F5287C416350419A9999E9612A5541CDCCCC7C436350415C8FC2B5622A5541AE47E11A4963504185EB5198642A55419A9999F94C635041CDCCCCFC652A55411F85EB914F6350410AD7A330672A55419A99991953635041AE47E10A692A554152B81E456263504148E17AF4712A5541B81E850B66635041C3F5282C742A5541F6285C4F6B63504114AE47A1762A5541C3F528AC79635041EC51B83E7B2A5541B81E854B7963504185EB51586B2A5541F6285CEF6A635041333333C3692A5541B81E85EB67635041CDCCCCEC692A55419A9999896563504185EB5128692A5541295C8F22636350411F85EB61682A5541CDCCCC9C6063504166666636662A55417B14AEB767635041AE47E19A662A55411F85EB216B635041AE47E1CA662A55410AD7A31075635041A4703DFA672A554185EB519874635041EC51B80E5F2A5541713D0A977463504152B81EF55E2A55410AD7A360736350415C8FC2955F2A5541333333537063504148E17AF45E2A554114AE47616B6350419A9999D95E2A5541F6285C6F66635041F6285C0F5F2A5541
+</a>
+
+<b>
+01060000000100000001030000000100000011000000FF7FEC62486350419DBDDDCB4D2A5541C57160984C635041B130E7F34C2A55417A87CCBE4D63504138B8E3B84C2A5541C19FC8A651635041733C74F04B2A5541BAF7F079546350419461815F4B2A55410AD7A3F05A6350413D0AD7134A2A5541B3468FF05A6350410A648D144A2A55412ACF76F35A635041C3ABF8134A2A554114AE47215B6350410AD7A360482A55415C8FC2855A63504152B81E35442A554148E17AF456635041E17A143E462A55417B14AE6753635041B81E85AB472A55417B14AE374F635041713D0AE7482A5541FCAA6B9645635041FC168CE74A2A554185EB5198466350415C8FC2354E2A5541EC51B88E47635041666666F64D2A5541FF7FEC62486350419DBDDDCB4D2A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>508994 - 1607062
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000008000000D7A3703DD2605041F6285CCFF42A55419A999969D86050418FC2F5B8C62A55415C8FC245D66050419A999979C62A55410AD7A3D0D46050410AD7A3D0C72A55415C8FC2E5D0605041EC51B80EE52A5541AE47E17AC8605041295C8FD2F42A55410AD7A3E0C7605041E17A14CEF62A5541D7A3703DD2605041F6285CCFF42A5541
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000572F7F73D4605041B929D94CE42A5541BADB2830D3605041CA5F8C13E32A55411459DB2FD3605041F0C7D210E32A554168E3F306D3605041EBA4AFA0E12A5541BA7662F8D2605041CBD2921DE12A5541F4DAF8C6D2605041756426B7E02A554191F410C0D1605041DD9AB9B0DE2A55417794F765D16050410C20B551E12A55415C8FC2E5D0605041EC51B80EE52A5541AE47E17AC8605041295C8FD2F42A55410AD7A3E0C7605041E17A14CEF62A5541D7A3703DD2605041F6285CCFF42A5541572F7F73D4605041B929D94CE42A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>508994 - 3318542
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000008000000D7A3703DD2605041F6285CCFF42A55419A999969D86050418FC2F5B8C62A55415C8FC245D66050419A999979C62A55410AD7A3D0D46050410AD7A3D0C72A55415C8FC2E5D0605041EC51B80EE52A5541AE47E17AC8605041295C8FD2F42A55410AD7A3E0C7605041E17A14CEF62A5541D7A3703DD2605041F6285CCFF42A5541
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000572F7F73D4605041B929D94CE42A5541BADB2830D3605041CA5F8C13E32A55411459DB2FD3605041F0C7D210E32A554168E3F306D3605041EBA4AFA0E12A5541BA7662F8D2605041CBD2921DE12A5541F4DAF8C6D2605041756426B7E02A554191F410C0D1605041DD9AB9B0DE2A55417794F765D16050410C20B551E12A55415C8FC2E5D0605041EC51B80EE52A5541AE47E17AC8605041295C8FD2F42A55410AD7A3E0C7605041E17A14CEF62A5541D7A3703DD2605041F6285CCFF42A5541572F7F73D4605041B929D94CE42A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>398796 - 2984513
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+010600000001000000010300000001000000050000008FC2F538661C51418FC2F5382367544114AE4771661C5141CDCCCCBC20675441EC51B8CE231C514114AE47A11667544148E17AA4231C514166666606196754418FC2F538661C51418FC2F53823675441
+</a>
+
+<b>
+010600000001000000010300000001000000090000003ACF7B0D231C5141D76A2FC51D6754419DE3E7E13C1C51413F10EECD2167544141B40215571C5141A4B38FE525675441B202E8C7651C51410D54B92E2867544154556438661C5141ABF64D3F23675441BCF4CD7C561C5141F94F00D0206754413D4048BF3D1C51413FE1F2051D675441E5BB2773231C514140D393FE186754413ACF7B0D231C5141D76A2FC51D675441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>399023 - 960015
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+010600000001000000010300000001000000090000000AD7A3E075215141D7A370FDBA6F54410AD7A38088215141713D0A47C66F544185EB51A893215141E17A149EB16F544185EB51B89E215141D7A3701D9D6F5441713D0A178A2151419A999989926F5441A4703DAA8521514148E17A44906F54410AD7A3107B21514185EB51E8A36F54416666666670215141AE47E1AAB76F54410AD7A3E075215141D7A370FDBA6F5441
+</a>
+
+<b>
+01060000000100000001030000000100000007000000666666B6992151415C8FC2B5D06F5441B81E859BB02151419A999949A66F5441D7A370BDAB215141AE47E1CAA36F5441ED71D1D59E215141328D912C9D6F544108D0786C88215141CD3CD13AC66F54417B14AE0795215141F6285CDFCD6F5441666666B6992151415C8FC2B5D06F5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>399047 - 3374563
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000020000000103000000010000000D0000005C8FC285232151413D0AD79349705441C3F5285C28215141AE47E1BA3F705441A4703D5A292151415C8FC2B53D705441000000E028215141000000903D705441713D0A77EA205141333333532A7054415C8FC265E9205141EC51B82E2E7054417B14AE17E72051413D0AD7B33470544148E17A14FD205141E17A148E3B705441B81E850B0D215141713D0A3740705441F6285CBF15215141000000F042705441CDCCCCFC1A2151415C8FC2F5447054411F85EB211D21514185EB51E8457054415C8FC285232151413D0AD793497054410103000000010000001A000000EC51B89EE1205141B81E85EB467054410AD7A320EA2051419A99995949705441B81E85CBEF20514185EB51F84A705441E17A14AEF520514185EB51C84C705441CDCCCC9CFB20514148E17A844E705441C3F5283CFD205141D7A370FD4E705441F6285CDF10215141EC51B8DE54705441A4703DDA1521514152B81E1557705441EC51B8DE1A215141F6285C4F59705441C3F528BC1C2151415C8FC21556705441000000501F215141333333735170544152B81E3523215141333333334A705441000000E01C21514152B81E65467054410AD7A3C01A21514114AE476145705441D7A370AD152151411F85EB71437054417B14AE770D215141C3F528DC40705441CDCCCCDCFC205141713D0A573C705441000000F0E82051410AD7A34036705441A4703DDAE720514185EB51D8387054418FC2F568E7205141D7A3708D3A70544100000030E72051417B14AE273E705441EC51B89EE6205141CDCCCCCC3F70544152B81E35E6205141295C8FA2417054410AD7A3C0E4205141CDCCCC6C427054418FC2F5B8E22051415C8FC2F541705441EC51B89EE1205141B81E85EB46705441
+</a>
+
+<b>
+0106000000010000000103000000010000003C000000E29FA3CF12215141A69934BB55705441FBEA4B15112151416ECAAEF6547054410E995BDF10215141D826B8DE54705441C3F5283CFD205141D7A370FD4E705441E296CB9CFB20514138247D844E705441E3B715AEF52051413A0E53C84C705441E2B884CBEF205141575B52F84A7054412695E17AE82051411580717D6870544193C4D673EB2051419BBB48A16870544138BF21D4ED20514142BB7B8664705441E9E6097FEE205141D656AA5A647054419FD644AAEF205141A8D7D40164705441F939C8E3EF205141FB6AE72A647054414DDFA5D0F6205141E4FCC73C63705441B0F18D9201215141DE61EAD1617054414FA86F5D07215141B709B7EE607054412244E80B30215141CC87357482705441FA30969F322151419112965F84705441352AAEC1352151419893080387705441B9EBD9B639215141BE64E9FA897054413919EA963D215141038638478D705441E82A84E0412151416363DAD29070544162C478AB452151419F5CF2F4937054410142F7DF49215141F9A5786B97705441713D0A4751215141295C8F829D705441E25007F8522151419D0C71689B705441B274720D52215141D560B5439B705441276A679B50215141B856BD509970544102C118A84D2151411897CB749870544182F0762E46215141011F72CE90705441B07E228A4121514181C075E78C705441223B2D523F215141588E4EB88A705441C56D57D53E215141AB30683D8A705441E5B40AC73E21514158D562378A705441452492B03E21514167B3EC2D8A7054418B64F88B3C215141200854098970544129B002403B2151413962CE7088705441A4C896AC3821514179C9E23886705441637427DD35215141E0B86FA2847054419A42E522342151414D66DBC2837054412028D8DB332151412A45028F8370544164854FE0332151418FC1AD8983705441EC14ABA933215141E87FC15A837054411AB2CFBC3F2151412BAADB617570544119A8B1AC4C215141598CB6608070544143FB5CBB4C215141D84B2E6D80705441FA2651D94C2151416DACA3868070544153F19AA65D2151415D746ACE8E705441CDCCCC5C5E2151417B14AE678D705441CCF233CF222151411808023A5B705441C3F528BC1C2151415C8FC21556705441524AC67A1B21514192C58141587054417DB4B2E71A2151417AF6055259705441414546DF1A2151412BB2664E59705441EC51B8DE1A215141F6285C4F597054414ECADE881A215141C7513F2959705441F082102919215141208AF891587054418F1E7DDC1621514181BFC48757705441A4703DDA1521514152B81E1557705441E29FA3CF12215141A69934BB55705441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>45552 - 365909
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000300000001030000000100000048000000E339DA5D30DE50414D878498B2F754416ADF7B9A31DE50417973CC88B0F754416C5193D92FDE50416E48292AB3F75441FEBC829331DE504101B418E4B4F754415EF1B7F531DE50419F1F089EB6F7544141444FF933DE5041433BE549B7F75441248CE80A32DE5041AE31047FB6F754414DBBD59E31DE504186A2BDE9B4F75441C7E3051032DE5041046E027CB6F754418EB9859A33DE5041334CB910B7F754417D289DEE33DE5041746AA827B7F75441A7B1246336DE5041F3FDADCEB7F7544155A0C87438DE504197583F9EB8F75441AA1B66563ADE50414BB57D83B8F75441B81BB8F939DE5041A0D23F34B8F7544196BE125837DE504110937636B6F754417FB8E13535DE5041015A11AAB3F75441B0C5117434DE50410E14F4C7B2F75441CD17473A34DE50416F4F46D0B1F75441170E96C133DE504120A936F4AFF754413C4D644535DE50413D61AD0EA9F754419774DE4835DE504130C5F44BA8F75441642E7C3835DE504109BD82E3A6F754414B7E554F35DE50419AA5EAE1A6F754411AE3984F35DE504163982CD3A6F75441DDE304F236DE5041C5D68EB4A6F75441455014CF3BDE5041EB91B558A6F75441BD33DD9641DE5041D6C9A0BFA5F7544100611EF044DE504149FB14ACA4F75441E3852EDA47DE504169E5CC13A4F754418209B20C48DE5041842D5E05A4F75441EB755BA449DE504113C9341DA4F7544173D007CD49DE5041A84B7ED8A3F754419F0F47D349DE50417852BBDEA3F754417A26CEA049DE5041CD8348C0A0F7544113E96C4648DE50418EC64166A1F75441C83D9DE847DE5041953D26E8A1F75441FE7FA8172DDE50414FE471D89DF754416974458B2BDE50412F3050899DF75441F4D4A6A729DE5041AD90D6D79CF75441C3F5282C27DE5041000000E09BF754412560592A27DE504104075DE59BF754410003091229DE5041F1D9EEA09CF7544157A4E13227DE50414CC518F19BF75441DF0BBEE325DE5041DF163A4EA0F75441D44F5ACF25DE5041F3047743A0F7544114B39EC725DE5041F242FA5DA0F75441E1E7485929DE50411DE7B514A1F754415302C34927DE5041ADFE789EA0F75441A673D9E829DE50418E76012AA1F75441739AA3C72CDE50412096E8EBA1F75441FDF96E782DDE5041FD65F220A2F75441C7E06F7B2ADE504147A3BE55A1F75441627168582ADE504108B2E44DA1F7544175615CAF2CDE504180615CFFA1F75441276AEB8F2FDE5041441754DCA2F75441F35B1B8730DE50417122B818A3F75441831D492630DE50410CD7B3EEA2F75441F24A205E30DE5041AD6474FFA2F75441377B2F5832DE50418F5A427CA3F75441F4A3CACB33DE50411378D96EA4F75441F4A3CACB33DE50416311CF83A4F7544138ADCA4933DE5041C9D1644BA4F754410CAA34C833DE5041FCCFD0AEA4F7544195C1DDBA33DE5041889BF6EEA5F75441F4A3CACB33DE5041BCD7161DA5F75441F4A3CACB33DE50410BAB25A0A6F75441B64B8C0032DE5041627DCDDFAFF754415BFAA9F831DE5041EBE560EFAFF754415EF1B7F531DE50417858F2FFAFF75441652C1EDF31DE5041EEFFD821B0F75441E339DA5D30DE50414D878498B2F754410103000000010000000400000017DB194326DE504188279DB69EF7544129A3882127DE5041A9F378FF9BF754413970F79026DE50413E71A5AB9DF7544117DB194326DE504188279DB69EF754410103000000010000000700000071DF494333DE5041815B9248A4F7544138ADCA4933DE5041C9D1644BA4F75441EFAE975232DE50415F22FA88A3F75441F35B1B8730DE50417122B818A3F754418D3249D630DE5041BD7A143BA3F75441E8BF078932DE504113CD4BB9A3F7544171DF494333DE5041815B9248A4F75441
+</a>
+
+<b>
+0106000000010000000103000000010000002E000000914C03BB47DE5041824E0E34A4F75441049101F344DE50410C1D5EC7A4F75441E406B09741DE5041106D70D5A5F754416E4829DA3DDE50417FEE3250A6F754413921385839DE5041C4D5DA99A6F75441642E7C3835DE504109BD82E3A6F754417F7B095135DE5041FC5CA7FFA8F75441CB129F8C34DE50414781138CACF754410CAA34C833DE5041680B65E7AFF75441B0C5117434DE50410E14F4C7B2F7544157CEA05437DE50412F9E4523B6F7544133714A663ADE504167251289B8F754416B6B407B38DE504181729FA1B8F754414E31012E36DE5041B2BCA7C4B7F7544141444FF933DE5041433BE549B7F754415EF1B7F531DE50419F1F089EB6F75441FEBC829331DE504101B418E4B4F754416C5193D92FDE50416E48292AB3F754415EF1B7F531DE50417858F2FFAFF75441125A22BA32DE504178CB1BAFABF75441FC5CA7AF33DE5041190A10FCA6F754410CAA34C833DE5041FCCFD0AEA4F75441E8BF078932DE504113CD4BB9A3F75441276AEB8F2FDE5041441754DCA2F7544175615CAF2CDE504180615CFFA1F75441134075182ADE5041C1F8F13AA1F7544114B39EC725DE5041F242FA5DA0F754413970F79026DE50413E71A5AB9DF75441D7A3709D21DE50415C8FC255ACF754415C8FC2D51EDE504185EB5148ACF75441000000301DDE5041D7A370EDB2F7544148E17AE422DE504114AE47C1B6F7544185EB51F827DE5041D7A3703DB8F754410000008030DE504185EB5128B7F75441D7A370ED33DE50413D0AD723B8F75441F6285CBF3ADE504148E17A34BAF754410AD7A3D03CDE5041000000C0BAF75441E17A140E40DE50411F85EBA1BBF75441713D0A6750DE504152B81E15BEF75441713D0AB751DE5041D7A3705DB6F7544152B81E2552DE5041C3F5284CB0F754415C8FC2E550DE5041AE47E12AACF75441AE47E10A4FDE504148E17A14A9F754410B0A3C054ADE5041569C7C0FA4F754411C3779CF49DE5041A1D35333A4F75441914C03BB47DE5041824E0E34A4F75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>45552 - 1527257
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000300000001030000000100000048000000E339DA5D30DE50414D878498B2F754416ADF7B9A31DE50417973CC88B0F754416C5193D92FDE50416E48292AB3F75441FEBC829331DE504101B418E4B4F754415EF1B7F531DE50419F1F089EB6F7544141444FF933DE5041433BE549B7F75441248CE80A32DE5041AE31047FB6F754414DBBD59E31DE504186A2BDE9B4F75441C7E3051032DE5041046E027CB6F754418EB9859A33DE5041334CB910B7F754417D289DEE33DE5041746AA827B7F75441A7B1246336DE5041F3FDADCEB7F7544155A0C87438DE504197583F9EB8F75441AA1B66563ADE50414BB57D83B8F75441B81BB8F939DE5041A0D23F34B8F7544196BE125837DE504110937636B6F754417FB8E13535DE5041015A11AAB3F75441B0C5117434DE50410E14F4C7B2F75441CD17473A34DE50416F4F46D0B1F75441170E96C133DE504120A936F4AFF754413C4D644535DE50413D61AD0EA9F754419774DE4835DE504130C5F44BA8F75441642E7C3835DE504109BD82E3A6F754414B7E554F35DE50419AA5EAE1A6F754411AE3984F35DE504163982CD3A6F75441DDE304F236DE5041C5D68EB4A6F75441455014CF3BDE5041EB91B558A6F75441BD33DD9641DE5041D6C9A0BFA5F7544100611EF044DE504149FB14ACA4F75441E3852EDA47DE504169E5CC13A4F754418209B20C48DE5041842D5E05A4F75441EB755BA449DE504113C9341DA4F7544173D007CD49DE5041A84B7ED8A3F754419F0F47D349DE50417852BBDEA3F754417A26CEA049DE5041CD8348C0A0F7544113E96C4648DE50418EC64166A1F75441C83D9DE847DE5041953D26E8A1F75441FE7FA8172DDE50414FE471D89DF754416974458B2BDE50412F3050899DF75441F4D4A6A729DE5041AD90D6D79CF75441C3F5282C27DE5041000000E09BF754412560592A27DE504104075DE59BF754410003091229DE5041F1D9EEA09CF7544157A4E13227DE50414CC518F19BF75441DF0BBEE325DE5041DF163A4EA0F75441D44F5ACF25DE5041F3047743A0F7544114B39EC725DE5041F242FA5DA0F75441E1E7485929DE50411DE7B514A1F754415302C34927DE5041ADFE789EA0F75441A673D9E829DE50418E76012AA1F75441739AA3C72CDE50412096E8EBA1F75441FDF96E782DDE5041FD65F220A2F75441C7E06F7B2ADE504147A3BE55A1F75441627168582ADE504108B2E44DA1F7544175615CAF2CDE504180615CFFA1F75441276AEB8F2FDE5041441754DCA2F75441F35B1B8730DE50417122B818A3F75441831D492630DE50410CD7B3EEA2F75441F24A205E30DE5041AD6474FFA2F75441377B2F5832DE50418F5A427CA3F75441F4A3CACB33DE50411378D96EA4F75441F4A3CACB33DE50416311CF83A4F7544138ADCA4933DE5041C9D1644BA4F754410CAA34C833DE5041FCCFD0AEA4F7544195C1DDBA33DE5041889BF6EEA5F75441F4A3CACB33DE5041BCD7161DA5F75441F4A3CACB33DE50410BAB25A0A6F75441B64B8C0032DE5041627DCDDFAFF754415BFAA9F831DE5041EBE560EFAFF754415EF1B7F531DE50417858F2FFAFF75441652C1EDF31DE5041EEFFD821B0F75441E339DA5D30DE50414D878498B2F754410103000000010000000400000017DB194326DE504188279DB69EF7544129A3882127DE5041A9F378FF9BF754413970F79026DE50413E71A5AB9DF7544117DB194326DE504188279DB69EF754410103000000010000000700000071DF494333DE5041815B9248A4F7544138ADCA4933DE5041C9D1644BA4F75441EFAE975232DE50415F22FA88A3F75441F35B1B8730DE50417122B818A3F754418D3249D630DE5041BD7A143BA3F75441E8BF078932DE504113CD4BB9A3F7544171DF494333DE5041815B9248A4F75441
+</a>
+
+<b>
+0106000000010000000103000000010000002E000000914C03BB47DE5041824E0E34A4F75441049101F344DE50410C1D5EC7A4F75441E406B09741DE5041106D70D5A5F754416E4829DA3DDE50417FEE3250A6F754413921385839DE5041C4D5DA99A6F75441642E7C3835DE504109BD82E3A6F754417F7B095135DE5041FC5CA7FFA8F75441CB129F8C34DE50414781138CACF754410CAA34C833DE5041680B65E7AFF75441B0C5117434DE50410E14F4C7B2F7544157CEA05437DE50412F9E4523B6F7544133714A663ADE504167251289B8F754416B6B407B38DE504181729FA1B8F754414E31012E36DE5041B2BCA7C4B7F7544141444FF933DE5041433BE549B7F754415EF1B7F531DE50419F1F089EB6F75441FEBC829331DE504101B418E4B4F754416C5193D92FDE50416E48292AB3F754415EF1B7F531DE50417858F2FFAFF75441125A22BA32DE504178CB1BAFABF75441FC5CA7AF33DE5041190A10FCA6F754410CAA34C833DE5041FCCFD0AEA4F75441E8BF078932DE504113CD4BB9A3F75441276AEB8F2FDE5041441754DCA2F7544175615CAF2CDE504180615CFFA1F75441134075182ADE5041C1F8F13AA1F7544114B39EC725DE5041F242FA5DA0F75441D2EFCDA825DE50412438785EA0F75441D7A3709D21DE50415C8FC255ACF754415C8FC2D51EDE504185EB5148ACF75441000000301DDE5041D7A370EDB2F7544148E17AE422DE504114AE47C1B6F7544185EB51F827DE5041D7A3703DB8F754410000008030DE504185EB5128B7F75441D7A370ED33DE50413D0AD723B8F75441F6285CBF3ADE504148E17A34BAF754410AD7A3D03CDE5041000000C0BAF75441E17A140E40DE50411F85EBA1BBF75441713D0A6750DE504152B81E15BEF75441713D0AB751DE5041D7A3705DB6F7544152B81E2552DE5041C3F5284CB0F754415C8FC2E550DE5041AE47E12AACF75441AE47E10A4FDE504148E17A14A9F75441070A3C054ADE5041539C7C0FA4F75441193779CF49DE50419CD35333A4F75441914C03BB47DE5041824E0E34A4F75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>45552 - 4200663
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000300000001030000000100000048000000E339DA5D30DE50414D878498B2F754416ADF7B9A31DE50417973CC88B0F754416C5193D92FDE50416E48292AB3F75441FEBC829331DE504101B418E4B4F754415EF1B7F531DE50419F1F089EB6F7544141444FF933DE5041433BE549B7F75441248CE80A32DE5041AE31047FB6F754414DBBD59E31DE504186A2BDE9B4F75441C7E3051032DE5041046E027CB6F754418EB9859A33DE5041334CB910B7F754417D289DEE33DE5041746AA827B7F75441A7B1246336DE5041F3FDADCEB7F7544155A0C87438DE504197583F9EB8F75441AA1B66563ADE50414BB57D83B8F75441B81BB8F939DE5041A0D23F34B8F7544196BE125837DE504110937636B6F754417FB8E13535DE5041015A11AAB3F75441B0C5117434DE50410E14F4C7B2F75441CD17473A34DE50416F4F46D0B1F75441170E96C133DE504120A936F4AFF754413C4D644535DE50413D61AD0EA9F754419774DE4835DE504130C5F44BA8F75441642E7C3835DE504109BD82E3A6F754414B7E554F35DE50419AA5EAE1A6F754411AE3984F35DE504163982CD3A6F75441DDE304F236DE5041C5D68EB4A6F75441455014CF3BDE5041EB91B558A6F75441BD33DD9641DE5041D6C9A0BFA5F7544100611EF044DE504149FB14ACA4F75441E3852EDA47DE504169E5CC13A4F754418209B20C48DE5041842D5E05A4F75441EB755BA449DE504113C9341DA4F7544173D007CD49DE5041A84B7ED8A3F754419F0F47D349DE50417852BBDEA3F754417A26CEA049DE5041CD8348C0A0F7544113E96C4648DE50418EC64166A1F75441C83D9DE847DE5041953D26E8A1F75441FE7FA8172DDE50414FE471D89DF754416974458B2BDE50412F3050899DF75441F4D4A6A729DE5041AD90D6D79CF75441C3F5282C27DE5041000000E09BF754412560592A27DE504104075DE59BF754410003091229DE5041F1D9EEA09CF7544157A4E13227DE50414CC518F19BF75441DF0BBEE325DE5041DF163A4EA0F75441D44F5ACF25DE5041F3047743A0F7544114B39EC725DE5041F242FA5DA0F75441E1E7485929DE50411DE7B514A1F754415302C34927DE5041ADFE789EA0F75441A673D9E829DE50418E76012AA1F75441739AA3C72CDE50412096E8EBA1F75441FDF96E782DDE5041FD65F220A2F75441C7E06F7B2ADE504147A3BE55A1F75441627168582ADE504108B2E44DA1F7544175615CAF2CDE504180615CFFA1F75441276AEB8F2FDE5041441754DCA2F75441F35B1B8730DE50417122B818A3F75441831D492630DE50410CD7B3EEA2F75441F24A205E30DE5041AD6474FFA2F75441377B2F5832DE50418F5A427CA3F75441F4A3CACB33DE50411378D96EA4F75441F4A3CACB33DE50416311CF83A4F7544138ADCA4933DE5041C9D1644BA4F754410CAA34C833DE5041FCCFD0AEA4F7544195C1DDBA33DE5041889BF6EEA5F75441F4A3CACB33DE5041BCD7161DA5F75441F4A3CACB33DE50410BAB25A0A6F75441B64B8C0032DE5041627DCDDFAFF754415BFAA9F831DE5041EBE560EFAFF754415EF1B7F531DE50417858F2FFAFF75441652C1EDF31DE5041EEFFD821B0F75441E339DA5D30DE50414D878498B2F754410103000000010000000400000017DB194326DE504188279DB69EF7544129A3882127DE5041A9F378FF9BF754413970F79026DE50413E71A5AB9DF7544117DB194326DE504188279DB69EF754410103000000010000000700000071DF494333DE5041815B9248A4F7544138ADCA4933DE5041C9D1644BA4F75441EFAE975232DE50415F22FA88A3F75441F35B1B8730DE50417122B818A3F754418D3249D630DE5041BD7A143BA3F75441E8BF078932DE504113CD4BB9A3F7544171DF494333DE5041815B9248A4F75441
+</a>
+
+<b>
+0106000000010000000103000000010000002E000000914C03BB47DE5041824E0E34A4F75441049101F344DE50410C1D5EC7A4F75441E406B09741DE5041106D70D5A5F754416E4829DA3DDE50417FEE3250A6F754413921385839DE5041C4D5DA99A6F75441642E7C3835DE504109BD82E3A6F754417F7B095135DE5041FC5CA7FFA8F75441CB129F8C34DE50414781138CACF754410CAA34C833DE5041680B65E7AFF75441B0C5117434DE50410E14F4C7B2F7544157CEA05437DE50412F9E4523B6F7544133714A663ADE504167251289B8F754416B6B407B38DE504181729FA1B8F754414E31012E36DE5041B2BCA7C4B7F7544141444FF933DE5041433BE549B7F754415EF1B7F531DE50419F1F089EB6F75441FEBC829331DE504101B418E4B4F754416C5193D92FDE50416E48292AB3F754415EF1B7F531DE50417858F2FFAFF75441125A22BA32DE504178CB1BAFABF75441FC5CA7AF33DE5041190A10FCA6F754410CAA34C833DE5041FCCFD0AEA4F75441E8BF078932DE504113CD4BB9A3F75441276AEB8F2FDE5041441754DCA2F7544175615CAF2CDE504180615CFFA1F75441134075182ADE5041C1F8F13AA1F7544114B39EC725DE5041F242FA5DA0F754413970F79026DE50413E71A5AB9DF75441D7A3709D21DE50415C8FC255ACF754415C8FC2D51EDE504185EB5148ACF75441000000301DDE5041D7A370EDB2F7544148E17AE422DE504114AE47C1B6F7544185EB51F827DE5041D7A3703DB8F754410000008030DE504185EB5128B7F75441D7A370ED33DE50413D0AD723B8F75441F6285CBF3ADE504148E17A34BAF754410AD7A3D03CDE5041000000C0BAF75441E17A140E40DE50411F85EBA1BBF75441713D0A6750DE504152B81E15BEF75441713D0AB751DE5041D7A3705DB6F7544152B81E2552DE5041C3F5284CB0F754415C8FC2E550DE5041AE47E12AACF75441AE47E10A4FDE504148E17A14A9F75441070A3C054ADE5041539C7C0FA4F75441193779CF49DE50419CD35333A4F75441914C03BB47DE5041824E0E34A4F75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>399599 - 4070820
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000007000000000000F0E43A5141666666C6FEAD544166666676E23A5141A4703D5A20AE5441AE47E10AE03A5141C3F5282C41AE5441AE47E18AEF3A51417B14AEA742AE5441EC51B8FEF13A51413D0AD76321AE544133333383F43A5141B81E853BFFAD5441000000F0E43A5141666666C6FEAD5441
+</a>
+
+<b>
+0106000000010000000103000000010000000A000000000000F0E43A5141666666C6FEAD544165584496E33A5141B83FD81811AE544160E2A4BCE23A5141E51143A11CAE5441FA32BD12E23A5141660CD7A125AE5441632DE77AE13A514163A409AD2DAE5441AE47E10AE03A5141C3F5282C41AE5441AE47E18AEF3A51417B14AEA742AE5441EC51B8FEF13A51413D0AD76321AE544133333383F43A5141B81E853BFFAD5441000000F0E43A5141666666C6FEAD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>420037 - 3038563
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000F0000000AD7A3C08B1A5141C3F5286CCB4A5441AE47E1CA911A5141E17A147EC94A54411F85EB11981A5141CDCCCC7CC74A5441E17A145E9E1A51419A999979C54A54413D0AD7B3A41A514133333373C34A5441A4703D0AAB1A5141CDCCCC6CC14A544152B81E65B11A514152B81E65BF4A544152B81ED5B71A514166666656BD4A544114AE47B1BD1A5141713D0A77BB4A54411F85EB81C91A51410AD7A3B0B74A5441C3F528ACC21A51418FC2F538A44A5441D7A3709D791A514152B81ED5BB4A54415C8FC2E57E1A51417B14AE87CF4A54413D0AD7237F1A514133333373CF4A54410AD7A3C08B1A5141C3F5286CCB4A5441
+</a>
+
+<b>
+01060000000100000001030000000100000009000000AE47E18A741A5141713D0AE7A84A54414896DB227F1A51414F278673CF4A544191069F139D1A5141D48334E3C54A5441B96A2109BD1A5141EA35C5ACBB4A5441BF24FA7BC91A5141CCA4B69FB74A5441C3F528ACC21A51418FC2F538A44A5441EC51B82EBC1A5141000000C0914A5441CDCCCC7C981A51418FC2F5489D4A5441AE47E18A741A5141713D0AE7A84A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>971413 - 394123
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000025000000295C8F4297BC50418FC2F5682DE85441666666C68DBC5041F6285C2F29E854412F7B89608DBC50411EC156F628E85441E39C4CD68CBC50418DADE5CA28E8544169C8D9D08ABC5041D9615A6E30E854410A2069FE88BC5041B5EE45EF36E85441F7E8B04A87BC5041C298BB0936E85441F6285C3F86BC504152B81E6535E85441A4703D8A7FBC5041CDCCCCEC4EE8544148E17A2486BC5041A4703D2A50E854410AD7A37082BC50413D0AD7E359E854411F85EB218ABC504152B81E055DE854413333335390BC5041A4703D7A5EE85441EC51B8AE9ABC50413D0AD7735EE85441000000D0A2BC50415C8FC2255FE854415C8FC2A5C7BC504152B81E456BE85441E17A14BECABC5041713D0AB76AE854415C8FC225CBBC50413333337369E854413D0AD753CDBC50411F85EBA162E8544185EB5168CEBC50415C8FC2A55DE8544185EB5108CFBC504148E17AC45AE854415C8FC215D0BC5041E17A143E55E854415C8FC205D5BC50413333337342E85441B81E857BD7BC5041000000403BE854417B14AE37D6BC5041C3F5283C3AE85441B81E85FBBABC5041000000502EE85441A4703D2AB9BC50419A9999692DE85441B81E85BBB0BC50411F85EB814DE8544100000050C4BC50417B14AE3750E854418FC2F548C1BC5041295C8FE25BE85441D7A3707DBABC50418FC2F5F85AE85441B81E85EBAEBC5041CDCCCC1C56E85441CDCCCC5C9FBC50413D0AD7534FE8544133333313A2BC5041EC51B8FE44E8544180B7462193BC504112DB9D6E3CE85441AE47E1DA94BC50410AD7A39036E85441295C8F4297BC50418FC2F5682DE85441
+</a>
+
+<b>
+0106000000010000000103000000010000003C000000F829701A86BC504134B19D4450E85441A6E9FBAF85BC50416C6FE09851E85441ACB45CAE84BC5041BC683E2B54E85441A9C9E55F83BC504144B4676F57E854412D18851E83BC5041185D201B58E854410AD7A37082BC50413D0AD7E359E854412442C87283BC5041181EE04C5AE85441310AE9A783BC504121237E625AE854413E209DAF84BC5041A37DCACD5AE854418CBD78B689BC5041E59F57C75CE85441D5CE0DAA8EBC50414DE32C165EE854416DC3AAEF8EBC5041CF528F265EE85441D07D18C28FBC50413B6416585EE85441BF420BD29ABC50413B6416585EE854418142BBCE9FBC5041A798FFE35EE85441000000D0A2BC50415C8FC2255FE854415C8FC2A5C7BC504152B81E456BE854419A7AEB96CABC504127F00FBE6AE8544175F78CBECABC5041A9E791B56AE854415C8FC225CBBC50413333337369E854413C39EB36CBBC5041290D8A3D69E854412E3FEC2DC2BC5041CFA6DFE566E85441869D948EB7BC5041D6F0A1FD63E85441E53E20CCA8BC504156D125125FE85441BC3A2C9799BC50416666AA4159E8544165FB33C08FBC50416DECADC854E85441523638628ABC5041FDDCEF5252E854414AF1A55786BC50417B99435B50E85441FA3AF53486BC504179E7272950E85441A2778D4D84BC50414271D3C14FE85441B445948481BC50417A106DEB4DE854417D44E1C783BC5041BE94DFFF45E8544128DB7A0787BC50414C4B70783DE8544197D2672E9FBC5041EBDD466F49E85441FDC2A9B89CBC5041BD50A17A50E85441B09E05FAA1BC50413977BFD352E8544183BFBEB2AABC5041E3BB1C4B56E85441C3DA12CBB9BC50419F3DF8FE5BE85441AA20AD0FC1BC50414D5C371D5DE85441FDDC8C65C1BC5041A05458E25BE854414C01254AC1BC5041C5B3FEDD5BE854418FC2F548C1BC5041295C8FE25BE85441D7A3707DBABC50418FC2F5F85AE85441B81E85EBAEBC5041CDCCCC1C56E85441CDCCCC5C9FBC50413D0AD7534FE854419C04060FA2BC5041C710A10E45E85441461C5B2788BC5041B60FFB7D36E85441F6E8B04A87BC5041BD98BB0936E8544127FC8CB886BC504188AFBEAF35E85441F8781B3F86BC504175A3766B35E85441812BB4B285BC504128DE7B7C37E85441FA23BFAF85BC50415143BD8737E854417C80BE8C7FBC50416ACC44E34EE8544169E4EF8A7FBC5041E39325EA4EE854419C99496F80BC50418B1ED1174FE854418487CDE080BC5041DDCB222D4FE85441638E13E582BC50414A96188E4FE854418AB8AC6F84BC50411B6234D84FE8544148E17A2486BC5041A4703D2A50E85441F829701A86BC504134B19D4450E85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>423029 - 194893
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001700000048E17A74BB0E514148E17A24D0F754419A9999E9BF0E5141EC51B83ECAF75441D7A3703DBE0E5141F6285CAFC8F754418FC2F588BA0E514114AE4751C5F754419A999949B70E51410AD7A360C2F7544114AE47E1B40E5141D7A3701DC0F75441C3F528CCB10E51410AD7A340BDF75441C3F5288CAF0E514114AE4761BBF75441713D0A57AE0E5141B81E858BBAF754411F85EB41AB0E51411F85EB71B8F754419A999919A80E51413D0AD7B3B6F7544148E17AC4A60E514114AE4761B8F75441A4703DDAA50E514114AE47F1B9F754419A999989A50E514148E17A54BBF7544114AE47C1A50E5141A4703DBABCF75441A4703DCAA70E5141295C8FB2BEF7544185EB5118AB0E5141C3F5282CC0F7544100000060AD0E51419A9999D9C1F75441D7A3702DB00E514185EB51F8C4F75441D7A370FDB50E5141D7A370CDCBF75441000000B0B80E51418FC2F5D8CEF75441A4703D5ABA0E5141EC51B80ED1F7544148E17A74BB0E514148E17A24D0F75441
+</a>
+
+<b>
+0106000000010000000103000000010000002800000038EF9AA8A60E51411F61E190B8F75441E5751E9BA60E514156FFE8A7B8F7544163B9A399A60E51412BBF6FAAB8F75441DC02B682A60E5141E82997D1B8F7544198081D7FA60E51410EDFBBD7B8F754413A631A6FA60E5141DBEC12F3B8F75441BD47C76BA60E5141AA51C0F8B8F7544140CD3DDAA50E51410C5747F1B9F75441990E5FC2A50E514161766A5ABAF754419A999989A50E514148E17A54BBF75441C1E978C1AB0E5141C5C725A7BFF754417B7071E8AB0E5141919A38DBBFF75441295C8F02AC0E51417B14AEE7BFF75441F5CD052CAC0E5141C6A4FD0CC0F75441167C62B0AC0E514186D01884C0F754412278B6E1AD0E514149C3E197C1F75441D5A10712AE0E5141EF1264CBC1F754414864C614B10E514104C4EA01C5F75441C5DEF0B6B60E5141BE90E50DCBF754417B9BE580B90E514170E93B0CCEF7544148E17A74BB0E514148E17A24D0F75441704117E9BF0E5141B2C5643FCAF754412C6898E9BF0E51410B35B73ECAF75441D7A3703DBE0E5141F6285CAFC8F754418FC2F588BA0E514114AE4751C5F7544175524414B90E51416464E0FFC3F75441CED49849B70E5141CC56A460C2F75441B08B47E1B40E51417641711DC0F75441B4D027CCB10E51416DBFA340BDF7544143F6ECB6B00E5141BC5DEB59BCF75441C3F5288CAF0E514114AE4761BBF7544159EE79C2AE0E51414E3CD0D5BAF7544166B80957AE0E5141F03F858BBAF754419061BC2DAD0E51410B1FFAC0B9F754411F85EB41AB0E51411F85EB71B8F7544157F5AA2EAA0E5141BAE604DAB7F754417A1B9919A80E514195FBD7B3B6F75441B0B97AC4A60E5141BCF14761B8F75441747FAFA8A60E5141A843BE90B8F7544138EF9AA8A60E51411F61E190B8F75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>400748 - 3079198
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000062000000333333D3050351413D0AD7F378F75441F6285CDF06035141713D0A3777F75441C3F5286C0703514114AE478175F754410000009007035141EC51B83E74F75441295C8F920703514148E17AF472F75441000000800703514185EB517871F75441666666F60603514148E17A546DF7544114AE4731060351415C8FC29567F75441E17A14EE05035141EC51B86E65F754419A9999C9050351417B14AEF763F754419A9999C90503514114AE47E162F754410AD7A3E0050351416666663661F75441CDCCCCFC050351415C8FC2655EF75441EC51B83E060351417B14AEF759F7544114AE4791060351413333333356F75441A4703DCA060351419A9999C952F7544114AE4721070351419A9999894FF754411F85EBF107035141295C8F624BF75441333333B308035141C3F528EC47F7544148E17AC4090351413D0AD7A344F7544185EB51080B0351418FC2F59841F75441D7A370AD0C035141A4703D4A3DF754410AD7A3D00D03514185EB51883AF75441EC51B86E0F0351417B14AE5736F75441A4703DCA0F0351413333339335F754418FC2F56810035141D7A3708D34F7544152B81EA511035141713D0AA732F7544152B81E35140351419A9999392FF7544152B81EF5160351410AD7A3A02BF75441F6285C9F1A035141C3F5280C26F75441000000401C03514148E17A6423F75441AE47E17A1D035141713D0AA721F75441B81E853B1E035141713D0A1721F75441C3F5283C20035141E17A148E1FF7544148E17A5422035141D7A370DD1DF75441E17A142E2403514152B81E751CF7544148E17A5426035141C3F528CC1AF7544148E17AC420035141CDCCCC8C16F75441CDCCCC9C0F03514152B81ED51FF7544185EB51E80A03514185EB51A822F75441EC51B8CE020351413D0AD78324F75441EC51B8BEF2025141F6285C6F23F7544166666616E80251413333336322F7544148E17A34E1025141CDCCCC2C21F75441F6285C8FDD025141D7A3705D20F75441C3F5287CD6025141C3F5284C1FF75441295C8F42D30251418FC2F5A81FF7544114AE4731D00251417B14AE0720F754413D0AD793CD0251411F85EBC120F75441A4703DDACB025141D7A3704D21F7544148E17AF4C7025141D7A3707D22F75441000000F0C0025141295C8FC222F75441D7A3700DBA025141AE47E15A22F75441713D0A77B5025141C3F528BC20F7544152B81EF5B00251418FC2F5681DF7544100000010B1025141EC51B87E1EF754415C8FC245B102514114AE47E11FF754411F85EB91B1025141A4703DDA20F75441EC51B8FEB102514185EB51C822F75441D7A3704DB30251417B14AE0724F7544152B81ED5B6025141333333532AF75441B81E852BBA025141C3F5280C2FF75441EC51B8BEBC0251417B14AEE731F754410AD7A310C10251416666668633F7544148E17A64C402514185EB51F832F75441295C8FF2C70251415C8FC25534F7544148E17AE4C80251418FC2F53836F754418FC2F538C8025141713D0AC73CF75441AE47E14ACE0251416666663640F754419A999919CF025141295C8F523EF7544152B81E65D1025141000000303EF75441E17A14EED6025141EC51B8CE3FF7544166666626E902514114AE474149F7544114AE4741EC02514185EB51784AF7544148E17AF4EE0251410AD7A3A04CF75441A4703DFAF002514185EB516850F754410AD7A380F4025141B81E851B53F7544148E17A44F8025141B81E857B56F75441EC51B8BEFE025141C3F5284C52F75441C3F5289CFE0251416666663656F75441C3F5289CFE025141D7A370FD59F7544114AE47E1FE025141B81E856B5CF754413D0AD703FF0251413D0AD7635FF754410AD7A3B0FF0251418FC2F53862F7544185EB5118000351411F85EB6164F7544185EB5118000351410AD7A30066F75441333333D3FF025141F6285C9F67F754418FC2F548FF025141CDCCCCDC6AF75441D7A370FDFC025141E17A142E6FF75441F6285C7FFD025141AE47E18A70F7544133333383FF0251417B14AED778F7544114AE4711000351415C8FC20582F7544185EB514800035141F6285C3F84F75441D7A3708D010351413D0AD77381F75441A4703D6A020351413D0AD7337FF7544185EB513803035141333333337DF75441E17A144E04035141B81E854B7BF75441333333D3050351413D0AD7F378F75441
+</a>
+
+<b>
+0106000000010000000103000000010000000F000000A75D891F14035141B9F94B641DF754410CC5F25E1E0351416C8BC7D817F754417650B6811D035141A51F130615F7544106D888E61C035141B60D4B5B12F75441CD1BF2981C035141BB6FFEA00FF75441AB77646A1C035141CB5D36F60CF75441FA4B04D71C035141683E584B08F754413E941F341D03514118A29A5A02F7544198F443B01D035141F8CAD70CFEF65441485886BF170351419E6AB390FDF65441C9BEEBAF1503514110ABFEAF03F75441A1F08CB7120351419E2D24B80CF75441D382523B1003514162D7F7A814F754412DE376B710035141A0BD5FC017F75441A75D891F14035141B9F94B641DF75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>401167 - 1606630
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000C0000003D0AD733E561504152B81EF5B0295541AE47E10AE76150419A9999F9B32955410AD7A360E8615041F6285C3FB42955419A99999908625041EC51B80E9D295541A4703DBA02625041000000E09C29554152B81E3500625041713D0AE79C29554133333393F561504148E17A049D295541C3F5281CF1615041666666B69D29554166666636EC61504148E17AE49E2955419A9999A9E8615041C3F5281CA02955415C8FC255E6615041295C8F72AB2955413D0AD733E561504152B81EF5B0295541
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000446AAD4D006250419CA2C5E69C2955411D116A24FA615041396A8855A029554113C6A342F86150410B730BFD9C29554133333393F561504148E17A049D295541C3F5281CF1615041666666B69D29554166666636EC61504148E17AE49E2955419A9999A9E8615041C3F5281CA02955415C8FC255E6615041295C8F72AB2955413D0AD733E561504152B81EF5B0295541AE47E10AE76150419A9999F9B32955410AD7A360E8615041F6285C3FB42955419A99999908625041EC51B80E9D295541A4703DBA02625041000000E09C295541446AAD4D006250419CA2C5E69C295541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>401167 - 3148390
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000C0000003D0AD733E561504152B81EF5B0295541AE47E10AE76150419A9999F9B32955410AD7A360E8615041F6285C3FB42955419A99999908625041EC51B80E9D295541A4703DBA02625041000000E09C29554152B81E3500625041713D0AE79C29554133333393F561504148E17A049D295541C3F5281CF1615041666666B69D29554166666636EC61504148E17AE49E2955419A9999A9E8615041C3F5281CA02955415C8FC255E6615041295C8F72AB2955413D0AD733E561504152B81EF5B0295541
+</a>
+
+<b>
+0106000000010000000103000000010000000500000013C6A342F86150410B730BFD9C2955411D116A24FA615041396A8855A0295541446AAD4D006250419CA2C5E69C29554152B81E3500625041713D0AE79C29554113C6A342F86150410B730BFD9C295541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>401167 - 3408798
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000C0000003D0AD733E561504152B81EF5B0295541AE47E10AE76150419A9999F9B32955410AD7A360E8615041F6285C3FB42955419A99999908625041EC51B80E9D295541A4703DBA02625041000000E09C29554152B81E3500625041713D0AE79C29554133333393F561504148E17A049D295541C3F5281CF1615041666666B69D29554166666636EC61504148E17AE49E2955419A9999A9E8615041C3F5281CA02955415C8FC255E6615041295C8F72AB2955413D0AD733E561504152B81EF5B0295541
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000446AAD4D006250419CA2C5E69C2955411D116A24FA615041396A8855A029554113C6A342F86150410B730BFD9C29554133333393F561504148E17A049D295541C3F5281CF1615041666666B69D29554166666636EC61504148E17AE49E2955419A9999A9E8615041C3F5281CA02955415C8FC255E6615041295C8F72AB2955413D0AD733E561504152B81EF5B0295541AE47E10AE76150419A9999F9B32955410AD7A360E8615041F6285C3FB42955419A99999908625041EC51B80E9D295541A4703DBA02625041000000E09C295541446AAD4D006250419CA2C5E69C295541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>401167 - 3409349
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000C0000003D0AD733E561504152B81EF5B0295541AE47E10AE76150419A9999F9B32955410AD7A360E8615041F6285C3FB42955419A99999908625041EC51B80E9D295541A4703DBA02625041000000E09C29554152B81E3500625041713D0AE79C29554133333393F561504148E17A049D295541C3F5281CF1615041666666B69D29554166666636EC61504148E17AE49E2955419A9999A9E8615041C3F5281CA02955415C8FC255E6615041295C8F72AB2955413D0AD733E561504152B81EF5B0295541
+</a>
+
+<b>
+0106000000010000000103000000010000000500000013C6A342F86150410B730BFD9C2955411D116A24FA615041396A8855A0295541446AAD4D006250419CA2C5E69C29554152B81E3500625041713D0AE79C29554113C6A342F86150410B730BFD9C295541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>960487 - 960495
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000021000000DD872898FD585141C82D91567BBB54410AD7A380FC585141333333137CBB5441713D0AE7FD58514114AE47D17FBB54417B14AED7FF585141CDCCCC7C82BB5441295C8FB2015951411F85EBA183BB54411F85EB3105595141CDCCCC8C85BB544148E17AB40759514148E17AB486BB544152B81E9507595141CDCCCC5C85BB54413D0AD7430B595141D7A370ED84BB5441713D0A870B5951410AD7A34086BB5441AE47E15A115951419A99999984BB5441F6285C5F1A59514114AE47C181BB54413D0AD7631D595141AE47E1BA7FBB5441666666E622595141295C8FB276BB54415C8FC2D525595141D7A370DD73BB5441B81E85EB28595141EC51B86E72BB5441E17A143E2A59514114AE47D171BB544148E17A74205951418FC2F5486ABB544185EB51F81E59514148E17A2469BB5441AE47E17A225951418FC2F5F861BB54418FC2F5781F5951417B14AE1758BB5441295C8F821E595141A4703D2A56BB5441A161EDD91A595141B44D8B1757BB544117235AFF165951419C62EDDF60BB54413BCE9C9613595141DC47D88166BB544167366183115951410BB3BF7869BB544103A6334A0F595141C91699956CBB544116D7723609595141F3C7214173BB5441259BA6C70C595141B267E9B276BB54416D53674006595141C80596C47BBB54418A2D0CB302595141474A303078BB5441470A48C4FF585141B1CC4F5C7ABB5441DD872898FD585141C82D91567BBB5441
+</a>
+
+<b>
+01060000000200000001030000000100000042000000DD898464F2585141B656351A5ABB54411FFF4804F4585141EB75F4635BBB54418988F5D0F558514184FE91085DBB544187244FD1F65851416007A1F25DBB5441D3896F2EFA585141A86E532C60BB54413ECA7A3DFB585141E14F98D060BB5441705E3751FC585141D944B57761BB5441D9D98774FE5851414D01A21E63BB5441BDBA0294FF5851415AC6C6FC63BB5441355A94CBFF585141B0CD3C4264BB54412EE9A9FA0059514167C017BD65BB544173615A5B01595141BE56F43566BB54410498182A025951413AD1D9AD67BB54419A0FC0FC02595141EDC1DB2C69BB544104D6253303595141D32EA4A96ABB544147F9956E03595141AB25B5496CBB5441221CFC9A03595141575BE5406EBB544154D72DB803595141E1A4C38B6FBB5441F5E26BE003595141AE28D85371BB5441F5E26BE003595141F58D518B72BB5441F5E26BE003595141F78C356374BB5441F5E26BE003595141CC8CDBB174BB544116D7723609595141F3C7214173BB5441F73734F90B59514186C16C3970BB54415863FD600D5951415FB789AE6EBB544174AB1F100F5951412D9A57D56CBB544134A0F6C10F5951415285EEED6BBB5441E756D6F8105951415852B53A6ABB54411C8D9866125951415280273468BB54416E464AD712595141269C299367BB54419AD67FAF145951416B5BC5B164BB54411278BD441659514120243E1462BB5441985475C51759514140D10AE95EBB54414476071C19595141C77B70835BBB5441B827A6DC195951417A2F7B9A59BB5441A161EDD91A595141B44D8B1757BB544187D39E2B1B595141A14A2C6055BB54417171B3271A59514139A03AC354BB544179ED295419595141CDD5549E53BB54419525A59B18595141AE59D29852BB544100A9DB2F18595141FDB59E8151BB54419E7C4B5B17595141A10A045B4FBB544173E4A6F61559514174BB98904DBB5441E8EB879F14595141753B8DA04CBB5441A643917213595141ACF4FFCD4BBB5441D3733DB0115951419CE276B14ABB5441296E94B60C5951416544400749BB544124B32E6208595141CC37579447BB54415969F272065951413AE49DEE46BB54413FC36BEA0359514166A2981546BB54412AAA51B401595141E664285845BB5441710C9DDCFF58514117CF4EBA44BB5441662C1B34FE585141208D402C44BB5441E0E6D167FC5851416439399243BB5441504DFE5CFB585141BB7A521346BB5441BBB8D924F95851416C2AB84A4BBB544180BBDF8AF7585141B1B6DCA54EBB544161AB0F99F658514168D3626850BB5441439B3FA7F558514120F0E82A52BB54412E553BB4F4585141EA47ADEF53BB5441D7A3707DF45851415C8FC25554BB5441256F1A2AF3585141442BD3F053BB5441DF27D7A9F15851417F9D5DAA55BB544107294D83EF585141819C418257BB54418D12FE21F05851411FC3604F58BB5441DD898464F2585141B656351A5ABB54410103000000010000000400000085D55CCB03595141EA3C38D574BB5441C3B3DB2C035951415F9A61DF75BB544185EE1AC4035951413DC282FC74BB544185D55CCB03595141EA3C38D574BB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>894883 - 3333084
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000002000000010300000001000000210000008FC2F528056A5141F6285CAFDCAC54413D0AD773046A514133333343DCAC544148E17AA4FC6951419A9999E9E6AC54415C8FC235FD695141A4703D2AE7AC5441C3F528BC056A51417B14AEF7EAAC5441666666F6056A51411F85EB11EBAC54413D0AD7F30A6A51413D0AD733EDAC544148E17AE40D6A5141000000B0EEAC54415C8FC2A5116A51413D0AD763F0AC5441EC51B89E126A51410AD7A3A0F0AC54418FC2F578146A5141C3F5287CF1AC544152B81E15156A51411F85EBF1F1AC5441B81E85AB156A514100000000F1AC5441CDCCCC3C166A5141F6285C3FF0AC5441CDCCCCCC166A5141AE47E12AEFAC5441713D0A57176A51411F85EB51EEAC544100000010186A51417B14AE77EDAC5441F6285C9F186A514152B81EA5ECAC54415C8FC265196A5141AE47E19AEBAC5441A4703DFA196A514114AE47C1EAAC54419A9999891A6A5141333333B3E9AC54415C8FC2451B6A514148E17AC4E8AC5441295C8FD21B6A5141E17A14DEE7AC5441000000301C6A51417B14AE17E7AC5441A4703D1A1D6A514185EB51D8E5AC5441A4703D7A1A6A51411F85EB81E5AC54418FC2F558186A514152B81EE5E5AC544148E17A04156A5141C3F5280CE5AC5441666666F6126A514114AE47B1E3AC5441B81E855B116A5141F6285C8FE2AC54411F85EB310F6A514114AE4791E2AC544152B81EE50B6A51415C8FC2B5E0AC54418FC2F528056A5141F6285CAFDCAC54410103000000010000006A00000085EB5198436A514152B81E25DFAC5441CDCCCC6C476A51415C8FC225DEAC5441E17A143E496A5141A4703D1AE1AC5441666666764F6A51415C8FC285DFAC54415C8FC275516A51413D0AD703DFAC54418FC2F5F8586A51419A9999C9DCAC5441713D0AB7606A514152B81ED5DAAC5441295C8FF25E6A514148E17A54D7AC54419A999929656A5141EC51B86ED5AC5441AE47E13A626A51413D0AD763CCAC5441C3F5285C5E6A51418FC2F5B8C3AC54410AD7A3F05A6A51410AD7A370BEAC5441F6285C3F536A5141666666E6B6AC54417B14AE57506A514152B81E05B8AC5441A4703D9A4E6A5141E17A14CEB9AC544114AE47C14D6A514152B81E15BCAC5441C3F528EC556A5141000000A0C3AC54415C8FC2954F6A51418FC2F5B8CAAC5441CDCCCC7C486A514148E17A44C3AC544185EB5198426A5141295C8F82C2AC544148E17AD43A6A514148E17A44C3AC54418FC2F558376A5141B81E85FBBEAC544166666686376A5141E17A14CEB9AC5441713D0AD7326A5141F6285C3FB7AC544114AE4741306A5141E17A145EB7AC544152B81E252E6A5141D7A3700DB9AC5441333333932B6A5141D7A3706DBFAC5441A4703D0A2A6A5141B81E85BBC4AC54418FC2F5D8296A51419A999919CDAC54419A9999F9286A5141E17A14DED2AC5441B81E851B286A5141EC51B8BED4AC5441EC51B86E276A5141D7A370FDD5AC54413D0AD7F3266A514152B81E05D7AC5441D7A3703D266A514133333333D8AC5441E17A148E256A51411F85EB91D9AC5441333333E3246A51418FC2F5F8DAAC544100000030246A5141713D0A47DCAC544148E17A94236A514100000080DDAC54415C8FC205236A5141C3F528ACDEAC5441EC51B81E226A5141B81E859BE0AC544114AE4791216A5141F6285C6FE1AC5441B81E85DB206A5141AE47E16AE2AC5441713D0A17206A514114AE4751E3AC544114AE47411F6A5141B81E855BE4AC5441666666861E6A514114AE4741E5AC54417B14AEC71D6A51415C8FC255E6AC5441333333631D6A514185EB51D8E6AC5441333333031D6A514185EB5198E7AC5441666666661C6A514114AE4751E8AC5441EC51B8CE1B6A5141CDCCCC2CE9AC5441EC51B82E1B6A514133333313EAAC54415C8FC2851A6A51413D0AD703EBAC54415C8FC2E5196A5141EC51B81EECAC544148E17A44196A5141EC51B8FEECAC5441C3F528AC186A514152B81EE5EDAC54410AD7A310186A51419A9999B9EEAC544100000080176A514133333393EFAC544185EB51E8166A5141CDCCCC6CF0AC5441EC51B86E166A51415C8FC275F1AC5441B81E85AB156A514133333363F2AC5441EC51B85E166A51417B14AE47F3AC5441AE47E12A176A51419A9999A9F4AC5441AE47E18A176A51417B14AED7F5AC5441B81E852B1A6A5141333333C3FAAC5441D7A3702D1D6A51417B14AE9700AD5441E17A14EE1E6A5141B81E850B04AD544152B81E55206A5141E17A144E07AD5441000000D0206A5141A4703D0A09AD5441A4703DEA206A51413D0AD76309AD54411F85EBA1226A5141AE47E1AA10AD5441CDCCCCCC226A5141000000A017AD544152B81ED5226A51417B14AED717AD5441B81E85FB226A5141E17A149E1AAD5441333333D3226A51410AD7A3C01CAD54418FC2F588226A51419A9999A920AD54415C8FC255246A5141B81E85DB20AD5441EC51B8BE286A5141666666C616AD54415C8FC2552D6A514185EB51480CAD544148E17AA4316A5141F6285C6F02AD54417B14AEC7356A51419A9999F9F8AC54419A999929326A5141CDCCCC6CFAAC54418FC2F5E8306A51410AD7A390FAAC5441F6285C0F306A5141EC51B89EFAAC544185EB51782F6A51411F85EBA1FAAC54419A9999C92E6A5141AE47E16AFAAC54418FC2F5B82D6A5141E17A140EFAAC5441AE47E13A2D6A5141713D0AB7F9AC54419A9999692C6A51413D0AD713F9AC544152B81E452B6A51415C8FC235F8AC54417B14AE77296A51411F85EB21F8AC5441713D0A87286A514114AE4731F8AC544114AE4791276A5141C3F5288CF8AC54417B14AEC7256A5141B81E854BF5AC5441F6285CEF236A5141AE47E1EAF1AC5441B81E854B226A51415C8FC205EFAC5441CDCCCC2C286A5141C3F5281CEBAC54419A9999792B6A514148E17A84E9AC5441AE47E18A2F6A51411F85EB31E8AC54417B14AE67366A514152B81E95E7AC5441000000303A6A5141D7A370DDE6AC54411F85EBB1396A514185EB5128E6AC544148E17AF43D6A51417B14AE77E4AC54417B14AE173E6A514152B81EC5E3AC54417B14AE27406A514148E17AA4E2AC5441713D0A173F6A5141713D0A57E0AC544185EB5198436A514152B81E25DFAC5441
+</a>
+
+<b>
+010600000001000000010300000001000000130000007686E695276A5141DF4A036D19AD544105148A1F2A6A51415F95DF9F13AD5441C9CB83972C6A514151E435FB0DAD54411AA855122E6A51413CD436990AAD5441A9BCABE62E6A5141EC40C9B308AD5441E25D03AE216A51415AE661A10CAD544148C92E0F226A51412B9B1D3D0EAD54416879F4A0226A5141677BCAA610AD544151C419B1226A5141B388712113AD544193905FB4226A5141296861A913AD5441672BE7B6226A5141A02B751214AD544100F0D7BC226A51412DC9350915AD5441E1FD3BCB226A51412A80F75E17AD544128FFC5EA226A5141FEB2446819AD5441B81E85FB226A5141E17A149E1AAD5441811ACBDE226A514139427C231CAD54418FC2F588226A51419A9999A920AD54415C8FC255246A5141B81E85DB20AD54417686E695276A5141DF4A036D19AD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>943907 - 19058
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000012000000EC51B88E80C05041713D0A873D385441A4703DAA81C05041B81E85EB353854419A99991983C050417B14AE372F385441000000C081C050416666660627385441000000C080C050410AD7A32027385441713D0A5770C05041F6285CCF28385441D7A3704D72C05041F6285CBF2D385441713D0A2773C05041C3F528CC36385441333333B372C0504148E17A343E3854419A9999796FC0504114AE47314D385441E17A146E6DC05041EC51B82E52385441E17A146E70C05041A4703D4A5A3854419A9999B977C050413D0AD7A3593854413D0AD7D379C05041666666864F3854417B14AEE77AC050417B14AE674A38544148E17AC47AC050415C8FC235473854411F85EB317DC05041713D0AF741385441EC51B88E80C05041713D0A873D385441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000C9DA110F7EC05041289BAB8E4338544157CBE34380C05041828E9F3B3E385441019A19497DC050412F4C1CF541385441544F8FC67AC0504146B76E67473854419DFD08D27AC05041D43E6D234A385441D8E59D817AC050419D0CE08C4B38544199271B9C79C05041333A4F6B4E38544153BB405779C05041E9C67FBC51385441C3033DBA77C05041D171EF8E59385441E6414D4079C05041743FA2D158385441721A02CA79C0504172F8D1504F385441B886DC0E7AC050415A47683D4E385441BA6DFF267AC050415E8241FB4D385441B06362DB7AC0504176161BA24A3854416367A3687CC05041E46B198A47385441C9DA110F7EC05041289BAB8E43385441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>943907 - 65501
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000012000000EC51B88E80C05041713D0A873D385441A4703DAA81C05041B81E85EB353854419A99991983C050417B14AE372F385441000000C081C050416666660627385441000000C080C050410AD7A32027385441713D0A5770C05041F6285CCF28385441D7A3704D72C05041F6285CBF2D385441713D0A2773C05041C3F528CC36385441333333B372C0504148E17A343E3854419A9999796FC0504114AE47314D385441E17A146E6DC05041EC51B82E52385441E17A146E70C05041A4703D4A5A3854419A9999B977C050413D0AD7A3593854413D0AD7D379C05041666666864F3854417B14AEE77AC050417B14AE674A38544148E17AC47AC050415C8FC235473854411F85EB317DC05041713D0AF741385441EC51B88E80C05041713D0A873D385441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000C9DA110F7EC05041289BAB8E4338544157CBE34380C05041828E9F3B3E385441019A19497DC050412F4C1CF541385441544F8FC67AC0504146B76E67473854419DFD08D27AC05041D43E6D234A385441D8E59D817AC050419D0CE08C4B38544199271B9C79C05041333A4F6B4E38544153BB405779C05041E9C67FBC51385441C3033DBA77C05041D171EF8E59385441E6414D4079C05041743FA2D158385441721A02CA79C0504172F8D1504F385441B886DC0E7AC050415A47683D4E385441BA6DFF267AC050415E8241FB4D385441B06362DB7AC0504176161BA24A3854416367A3687CC05041E46B198A47385441C9DA110F7EC05041289BAB8E43385441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>895052 - 2567602
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000160000003D0AD713656F51411F85EB61E3A65441A4703D2A666F5141F6285C6FE3A6544152B81E95646F5141666666D6DAA654418FC2F5A8626F514166666666D0A65441AE47E1FA5E6F5141713D0A67D0A65441B81E85FB556F5141F6285C6FD0A65441D7A3708D506F5141D7A3702DD0A654415C8FC245496F514166666686CFA654410AD7A370446F5141E17A14DECEA65441AE47E10A396F51415C8FC245CDA65441B81E854B366F5141000000F0D5A654415C8FC2C5336F5141D7A3700DDCA6544114AE47B1326F514114AE4721DEA6544166666686306F5141295C8F52E2A65441D7A370DD3C6F5141713D0A67E5A65441AE47E14A466F514100000090E7A65441000000C04B6F51411F85EB81E8A65441E17A14DE576F51417B14AEF7E9A65441D7A370DD616F5141AE47E14AEBA654417B14AE17666F5141AE47E1BAEBA65441A4703D6A656F5141A4703D2AE6A654413D0AD713656F51411F85EB61E3A65441
+</a>
+
+<b>
+010600000001000000010300000001000000640000008E85B63B5E6F51419B170E1DB6A65441F5E219FC5C6F5141C4322AB3AEA65441E300D91D5C6F51415046668BA9A654412E1177C15B6F51417E6D9EBDA7A6544126E54B0C596F51413AB86C7CA8A65441BE48AC41556F514126947667A9A654414F68C4B64C6F51419BDF95E1ABA654410EFF82EC466F5141FD80AE27ADA65441EAF493FC426F5141F1A65345ADA6544157C2030F426F51415E30952BADA654416C1DA0D2416F51416E48E7F5ACA65441A83AE0F3406F5141F6669014ADA6544190A509E33F6F51418BBB895AACA654419D3C970A3F6F5141E25D2A7BABA6544152B81ED53D6F514166666616AAA65441000000103D6F514100000080A9A654419A9999A93B6F514185EB5118A9A654419A999989396F5141295C8FD2A8A654415C8FC2C5376F51410AD7A300A9A654415C8FC2F5366F51417B14AE97A9A654413D0AD7D3346F514148E17AD4AAA654418FC2F548346F514148E17A24ABA6544185EB5138306F5141EC51B86EADA6544114AE47712E6F51413D0AD723AEA6544114AE47312D6F51418FC2F528AEA65441AE47E14A2C6F514148E17A04AEA6544148E17A542B6F514114AE4761ADA65441B81E85DB296F5141F6285C0FACA65441D7A370CD286F5141295C8F42AAA65441EC51B8FE276F51413D0AD7D3A7A6544114AE4751276F5141EC51B83EA6A65441333333D3256F51410AD7A340A5A654411F85EBE1236F5141CDCCCCCCA4A6544166666676226F51410AD7A380A4A654417B14AED7206F51415C8FC2E5A4A654419603DE731F6F514191D2CF35A5A65441333333A31E6F5141A4703D7AA5A654419A9999191D6F51417B14AE27A6A65441FBF40E791B6F51417622F9C7A6A65441B7FD807A136F514125762BFEA9A654410814184C0A6F51417CBFEC72ADA65441C31677C5066F5141CB65A7B4AEA65441F757D15C046F51410805A543AFA654416C316CD0016F5141F7B88455AFA65441984CB670FF6E51413677D528AFA654411E7271D2FC6E5141DD8BB7ABAEA65441E0362AC3FA6E5141622E6949AEA654414386FEBFF96E51416A547940AEA65441F4DF437EF86E5141727A8937AEA65441B7A4FC6EF66E5141EED7D799AEA65441217E97E2F36E51417316D3B7AFA65441E34250D3F16E5141007BDECCB0A65441348B671DF06E51414540EC52B1A65441F736E051EA6E5141837B3362B3A6544126F486FAE46E5141FE74CB44B5A654418FC2F5E8E96E51413D0AD7A3B7A65441E17A140EEF6E51417B14AEE7B9A654418FC2F5A8F26E5141EC51B87EBCA654414E4DF843F66E51411E1524EBBDA65441666666B6F66E514185EB5118BEA6544117BD11FFF76E5141B6617BABBEA6544177630588F96E5141BD2B6D5BBFA6544133333353FA6E5141666666B6BFA65441AE2A1AAEFA6E514129B97BECBFA65441D7A3709DFB6E5141AE47E17AC0A65441DD2D01E2FC6E5141403605C6C0A65441B81E852BFD6E5141713D0AD7C0A654417C84F3B7FE6E5141F91BA787C1A654418FC2F5C8FF6E514114AE4701C2A654417B14AED7016F51418FC2F588C2A65441C3F5289C036F51410AD7A3C0C2A6544133333343056F51419A999949C3A65441713D0AF7076F5141C3F528ECC3A6544148E17AF40D6F5141E17A144EC5A65441B81E856B116F514148E17A54C6A65441C3F5283C166F514185EB5168C7A65441EFD55EB01C6F51419DB84138C9A65441333333631F6F5141A4703DFAC9A65441CDCCCC3C286F514133333333CCA654412D1CB1C82A6F5141FC8AB733CCA65441ECFAC19F2B6F5141B561E033CCA65441EC51B87E2F6F514148E17A34CCA65441320953F3306F5141F294D55DCCA65441F95AE13C366F51414AC80FF4CCA65441AE47E10A396F51415C8FC245CDA6544164CA4995406F51414935E853CEA654410A8F8D51426F5141662B1492CEA654410AD7A370446F5141E17A14DECEA654415C8FC245496F514166666686CFA65441DFC026E24C6F5141689C40D9CFA654411C0E282A4F6F5141C6A3980DD0A65441AFC6E32E516F51414EA21835D0A6544191759DA0526F5141FA15A146D0A65441F3AAAF86566F51410D79DB6ED0A65441DA115A8D586F5141B0DCFB6CD0A65441BBF853375B6F5141E13C856AD0A6544185C2F5A8626F514166666666D0A65441B7214E04606F5141B88559B4C0A654415F8B069D5E6F5141C47F155CB8A654418E85B63B5E6F51419B170E1DB6A65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>895052 - 3324649
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000160000003D0AD713656F51411F85EB61E3A65441A4703D2A666F5141F6285C6FE3A6544152B81E95646F5141666666D6DAA654418FC2F5A8626F514166666666D0A65441AE47E1FA5E6F5141713D0A67D0A65441B81E85FB556F5141F6285C6FD0A65441D7A3708D506F5141D7A3702DD0A654415C8FC245496F514166666686CFA654410AD7A370446F5141E17A14DECEA65441AE47E10A396F51415C8FC245CDA65441B81E854B366F5141000000F0D5A654415C8FC2C5336F5141D7A3700DDCA6544114AE47B1326F514114AE4721DEA6544166666686306F5141295C8F52E2A65441D7A370DD3C6F5141713D0A67E5A65441AE47E14A466F514100000090E7A65441000000C04B6F51411F85EB81E8A65441E17A14DE576F51417B14AEF7E9A65441D7A370DD616F5141AE47E14AEBA654417B14AE17666F5141AE47E1BAEBA65441A4703D6A656F5141A4703D2AE6A654413D0AD713656F51411F85EB61E3A65441
+</a>
+
+<b>
+010600000001000000010300000001000000640000008E85B63B5E6F51419B170E1DB6A65441F5E219FC5C6F5141C4322AB3AEA65441E300D91D5C6F51415046668BA9A654412E1177C15B6F51417E6D9EBDA7A6544126E54B0C596F51413AB86C7CA8A65441BE48AC41556F514126947667A9A654414F68C4B64C6F51419BDF95E1ABA654410EFF82EC466F5141FD80AE27ADA65441EAF493FC426F5141F1A65345ADA6544157C2030F426F51415E30952BADA654416C1DA0D2416F51416E48E7F5ACA65441A83AE0F3406F5141F6669014ADA6544190A509E33F6F51418BBB895AACA654419D3C970A3F6F5141E25D2A7BABA6544152B81ED53D6F514166666616AAA65441000000103D6F514100000080A9A654419A9999A93B6F514185EB5118A9A654419A999989396F5141295C8FD2A8A654415C8FC2C5376F51410AD7A300A9A654415C8FC2F5366F51417B14AE97A9A654413D0AD7D3346F514148E17AD4AAA654418FC2F548346F514148E17A24ABA6544185EB5138306F5141EC51B86EADA6544114AE47712E6F51413D0AD723AEA6544114AE47312D6F51418FC2F528AEA65441AE47E14A2C6F514148E17A04AEA6544148E17A542B6F514114AE4761ADA65441B81E85DB296F5141F6285C0FACA65441D7A370CD286F5141295C8F42AAA65441EC51B8FE276F51413D0AD7D3A7A6544114AE4751276F5141EC51B83EA6A65441333333D3256F51410AD7A340A5A654411F85EBE1236F5141CDCCCCCCA4A6544166666676226F51410AD7A380A4A654417B14AED7206F51415C8FC2E5A4A654419603DE731F6F514191D2CF35A5A65441333333A31E6F5141A4703D7AA5A654419A9999191D6F51417B14AE27A6A65441FBF40E791B6F51417622F9C7A6A65441B7FD807A136F514125762BFEA9A654410814184C0A6F51417CBFEC72ADA65441C31677C5066F5141CB65A7B4AEA65441F757D15C046F51410805A543AFA654416C316CD0016F5141F7B88455AFA65441984CB670FF6E51413677D528AFA654411E7271D2FC6E5141DD8BB7ABAEA65441E0362AC3FA6E5141622E6949AEA654414386FEBFF96E51416A547940AEA65441F4DF437EF86E5141727A8937AEA65441B7A4FC6EF66E5141EED7D799AEA65441217E97E2F36E51417316D3B7AFA65441E34250D3F16E5141007BDECCB0A65441348B671DF06E51414540EC52B1A65441F736E051EA6E5141837B3362B3A6544126F486FAE46E5141FE74CB44B5A654418FC2F5E8E96E51413D0AD7A3B7A65441E17A140EEF6E51417B14AEE7B9A654418FC2F5A8F26E5141EC51B87EBCA654414E4DF843F66E51411E1524EBBDA65441666666B6F66E514185EB5118BEA6544117BD11FFF76E5141B6617BABBEA6544177630588F96E5141BD2B6D5BBFA6544133333353FA6E5141666666B6BFA65441AE2A1AAEFA6E514129B97BECBFA65441D7A3709DFB6E5141AE47E17AC0A65441DD2D01E2FC6E5141403605C6C0A65441B81E852BFD6E5141713D0AD7C0A654417C84F3B7FE6E5141F91BA787C1A654418FC2F5C8FF6E514114AE4701C2A654417B14AED7016F51418FC2F588C2A65441C3F5289C036F51410AD7A3C0C2A6544133333343056F51419A999949C3A65441713D0AF7076F5141C3F528ECC3A6544148E17AF40D6F5141E17A144EC5A65441B81E856B116F514148E17A54C6A65441C3F5283C166F514185EB5168C7A65441EFD55EB01C6F51419DB84138C9A65441333333631F6F5141A4703DFAC9A65441CDCCCC3C286F514133333333CCA654412D1CB1C82A6F5141FC8AB733CCA65441ECFAC19F2B6F5141B561E033CCA65441EC51B87E2F6F514148E17A34CCA65441320953F3306F5141F294D55DCCA65441F95AE13C366F51414AC80FF4CCA65441AE47E10A396F51415C8FC245CDA6544164CA4995406F51414935E853CEA654410A8F8D51426F5141662B1492CEA654410AD7A370446F5141E17A14DECEA654415C8FC245496F514166666686CFA65441DFC026E24C6F5141689C40D9CFA654411C0E282A4F6F5141C6A3980DD0A65441AFC6E32E516F51414EA21835D0A6544191759DA0526F5141FA15A146D0A65441F3AAAF86566F51410D79DB6ED0A65441DA115A8D586F5141B0DCFB6CD0A65441BBF853375B6F5141E13C856AD0A6544185C2F5A8626F514166666666D0A65441B7214E04606F5141B88559B4C0A654415F8B069D5E6F5141C47F155CB8A654418E85B63B5E6F51419B170E1DB6A65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>895410 - 3574466
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000038000000E17A147E577F51411F85EB71FDA55441333333F3587F514152B81EC5FDA55441F6285C5F5A7F5141E17A141EFEA554410AD7A3E05B7F5141295C8F72FEA5544185EB51985D7F5141B81E851BFFA554418FC2F5185F7F51415C8FC2C5FFA554417B14AE17617F5141EC51B87E00A65441D7A3709D617F5141000000B0FEA5544100000060617F514148E17AB4FDA55441CDCCCCEC607F5141F6285CCFFCA55441EC51B84E607F51411F85EB81FBA554410AD7A3A05F7F51413D0AD773FAA554415C8FC2255F7F5141713D0AA7F9A55441713D0A375E7F5141D7A370DDF8A55441000000605D7F5141A4703D4AF8A55441000000505C7F514133333333F7A554411F85EB715B7F514166666656F6A55441000000505A7F5141B81E855BF5A554418FC2F558597F5141CDCCCC0CF4A55441295C8F72587F51418FC2F5E8F2A5544185EB51B8577F5141F6285CBFF1A554410AD7A3E0567F5141B81E856BF0A55441D7A3703D577F5141EC51B86EF1A5544133333373557F51413D0AD753F5A5544114AE4721547F514166666666F7A55441F6285C7F527F51410AD7A360F9A554415C8FC225517F51419A999989FAA554418FC2F5184D7F51411F85EB71FAA554413D0AD7D3417F51410AD7A3A0F9A55441713D0A17377F514100000020F9A554417B14AE37317F5141F6285C5FF8A554418FC2F5C8247F514152B81E55F6A554415C8FC225227F514148E17AD4F5A55441B81E854B207F5141B81E853BF5A55441D7A3708D217F5141D7A3705DF0A55441EC51B8CE227F51418FC2F568ECA554415C8FC205257F514152B81E45E7A55441A4703DBA217F5141713D0AB7E6A554418FC2F5A81D7F51415C8FC225E6A5544185EB51C81B7F5141EC51B8EEE5A554411F85EB111B7F5141D7A3702DF2A554417B14AE871C7F51418FC2F588F3A55441295C8F121D7F5141CDCCCCECF4A55441AE47E13A1D7F514114AE4741F6A5544152B81ED5237F514100000010F7A5544152B81EC52D7F51417B14AE87F8A55441E17A144E337F5141A4703D4AF9A5544148E17A24377F5141713D0AE7F9A55441C3F5288C387F514114AE4701FAA5544114AE47C13D7F51411F85EB71FAA55441AE47E1BA417F51418FC2F5C8FAA554410AD7A3A0477F51410AD7A350FBA554410AD7A3D04C7F5141B81E85EBFBA55441D7A3703D537F51417B14AE97FCA5544185EB51D8547F5141D7A370EDFCA55441E17A147E577F51411F85EB71FDA55441
+</a>
+
+<b>
+01060000000100000001030000000100000040000000332DC408527F5141CD2E5124FAA55441CB88DB94527F5141C0503B95F9A5544160A53E03537F51415D387C24F9A554411D5A646B537F514108AC1CBAF8A55441AD387BA3537F5141C5BF8B63F8A554416DE331D5537F514177E7D116F8A5544154E7BF22547F514168FC1F9FF7A554418E9BD254557F5141D65EBEC6F5A55441CB171CC2557F5141D100131EF5A554411700DF51567F5141A05CED29F4A554410B059F47577F514183D76E6DF1A55441553A3B5D577F5141AAA6D52FF1A554411904567E577F5141FED478D1F0A554410AD7A3E0567F5141B81E856BF0A55441AA12C0DE557F5141F821F8E6EFA55441B18E4CDC4E7F514102E9B71AEDA554419FD254CE4D7F514119E19CAFECA55441B6E16F8F4D7F51415413A996ECA554418FC2F5384D7F5141AC1C5A74ECA55441F2F4F0DE4C7F5141D2E2F963ECA55441B556C551467F5141A416DF32EBA554419149259F447F51413B57CEE3EAA5544178B872EE437F5141652161D9EAA55441BC1B2DF2437F51419C0D57C4EAA55441A4703DAA437F51417B14AE67EBA55441333333F33A7F51417B14AE07EAA55441295C8F02377F51417B14AE77E9A5544133333323327F51415C8FC2C5E8A55441666666A62F7F5141713D0A67E8A5544185EB51682E7F51419A999939E8A55441B81E85BB2C7F5141C3F528FCE7A55441A4703D7A287F5141CDCCCC9CE7A554411F984D5A257F51410B3B804DE7A5544197E8402B247F5141BCE7D975E9A5544110207623237F5141A6E6C112ECA554414836CF8F227F514199943A7CEDA55441BD862D27227F51417719DD8CEEA554412F31CEE7217F51413C0C5888EFA55441E078DDA5217F514198D53293F0A554413D0AD77B207F514114AE4749F5A55441CF810D0A227F51417FA5179AF5A55441BA16A48D247F5141665EB31CF6A5544122ED2ED3267F514157AEB792F6A55441BAC225C9287F514119BF95F8F6A55441E970E0502A7F514136E11448F7A554416C385F412B7F51412B19E378F7A55441DFB189672C7F51415C9E95B4F7A5544134C729182D7F514142AA6DD8F7A5544116F455DC2D7F514123DBACF3F7A554417B14AE37317F5141F6285C5FF8A55441B34CF013377F5141BCA3CB0FF9A55441BADFABCE377F514136FC9728F9A5544183B39590387F5141390FA13DF9A55441203CC347397F514143658350F9A554414D5380773B7F5141D41CA973F9A554411F409EC53F7F5141317BDDB8F9A554419FEF29DA417F514130134EDAF9A5544117521B82447F5141E70E0005FAA554418D79C8C7457F514137427319FAA5544192A424B4477F5141DDDF5D38FAA5544178F208A44A7F5141086D9467FAA5544123D1381F4D7F5141DCF6768FFAA55441E336803B507F5141170877C1FAA55441332DC408527F5141CD2E5124FAA55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>896444 - 3141514
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000001E00000048E17AA4FD6C5141333333235A96544166666646FE6C51410AD7A3A0659654418FC2F548FD6C51417B14AE8772965441E17A142EFD6C514133333333749654417B14AEB7FB6C51411F85EB718B96544152B81E55FA6C5141D7A3709D9496544185EB5158F86C51417B14AE57A09654413D0AD793F66C5141EC51B83EA796544148E17AA4F36C514114AE4731B1965441AE47E15AF46C5141EC51B80EB29654415C8FC2D5156D5141EC51B8FEAE96544152B81ED52B6D5141CDCCCCFCAC96544148E17A44476D5141B81E857BAA965441F6285CBF656D5141295C8FB2A796544133333353666D5141AE47E1BAA696544148E17AE45D6D5141713D0AC797965441F6285C0F556D51411F85EBF185965441B81E85CB506D5141333333537A9654417B14AEF74B6D51411F85EBC16B96544152B81EA5436D514114AE476154965441295C8FA2366D5141F6285CEF309654410AD7A370346D5141A4703D3A2A965441333333F3326D5141F6285C0F22965441A4703D6A1D6D5141D7A370BD25965441C3F5283C136D51419A999979279654417B14AE97076D514152B81E7529965441D7A3701DF86C514185EB51182C96544148E17AA4F96C51419A9999C9389654413D0AD7A3FD6C51410AD7A3005A96544148E17AA4FD6C5141333333235A965441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000AE47E15AF46C5141EC51B80EB2965441F6285CBF656D5141295C8FB2A796544133333353666D5141AE47E1BAA69654419854D264656D5141E30B3014A5965441D7F9E6AA636D51413CA69304A296544173C4B227626D514164B5FC559F9654411930C5B55F6D5141869A17009B965441AD6D79B25E6D5141C1154F34999654410144F367596D5141EB82A99C8E965441145FA97F556D5141961F83A8869654418F5CF157536D51413ABE4514819654410C0C6AF4506D514168CF9DC27A9654419C0F20E5506D5141F125F6987A965441F5E2E605FD6C514167D12BC081965441143B60F9FC6C51415F64A42A829654417A4A491FFC6C51412D05D6888B9654411D913520FB6C514104B80DE091965441E46A2876FA6C5141C23A79F49496544185EB5158F86C51417B14AE57A0965441BE225B3FF66C514180120F5DA8965441F53586B5F36C5141E4BE7A2CB1965441AE47E15AF46C5141EC51B80EB2965441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>898261 - 2952727
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000031000000D7A3702DF36B5141666666D67DA15441C3F5287CFA6B51418FC2F5287FA1544148E17AD4FB6B514152B81E657EA15441A4703D7AFC6B5141AE47E1DA7CA15441AE47E1FAFB6B5141713D0A4778A15441C3F528BCFA6B5141333333B373A154419A999949FA6B51418FC2F56871A1544166666696FA6B5141F6285CDF6EA15441E17A14EEFB6B5141EC51B8BE6AA15441CDCCCC2CFD6B51417B14AE3766A154415C8FC245FD6B51415C8FC29562A15441CDCCCC2CFD6B5141666666A65FA15441666666C6FC6B51418FC2F5685DA15441E17A142EFC6B5141B81E85AB5BA1544133333363FA6B51417B14AE0759A15441EC51B85EE26B51415C8FC27542A15441333333F3DC6B5141EC51B85E3DA154419A9999A9CB6B514114AE47512DA154417B14AEC7B96B51410AD7A3C01DA15441CDCCCC1CB16B5141D7A3702D1AA154410AD7A3E0AD6B5141A4703DFA17A1544166666696AF6B5141295C8FE23DA15441C3F5282C786B5141AE47E13A09A1544148E17A14776B5141295C8FB209A15441C3F5280C776B5141B81E853B14A15441B81E850B786B5141B81E853B19A154418FC2F5087A6B514152B81E5545A1544114AE47817B6B51411F85EB8147A15441295C8F327E6B5141D7A3701D4AA154411F85EB51806B514185EB51A84BA154418FC2F5E8886B51411F85EB614EA15441F6285CEF8A6B514114AE47D14FA15441333333E38B6B5141713D0AC750A15441B81E859B8C6B51415C8FC2D551A1544133333343B36B5141A4703DBA8BA1544114AE47D1B46B51418FC2F5488DA15441A4703D1ABC6B514152B81ED591A15441F6285C6FBE6B5141A4703D5A92A15441B81E858BC16B51416666661692A1544133333303C56B51413D0AD70391A15441E17A14EEC86B51415C8FC2758FA15441B81E859BD66B51410AD7A39089A154418FC2F548DB6B51411F85EBF186A1544152B81EB5E46B51417B14AE7780A1544100000060E76B5141000000007FA154411F85EB61E96B5141333333237EA15441B81E85EBEB6B5141EC51B87E7DA15441333333D3EE6B514152B81E557DA15441D7A3702DF36B5141666666D67DA15441
+</a>
+
+<b>
+0106000000010000000103000000020000007D000000DCC05CEFA76B51414E1B189D36A1544119E9927FA36B51416BF3DF6532A1544181B75416936B5141B506E1CD22A15441597E134A866B5141EE28CDA416A15441F92B1B1D826B5141409112AD12A154418BAF15F87D6B5141AD76E5BC0EA15441C3F5282C786B5141AE47E13A09A1544148E17A14776B5141295C8FB209A15441C3F5280C776B5141B81E853B14A15441B81E850B786B5141B81E853B19A15441778403D4786B5141D45A9F962AA15441BA47FF56796B5141612D52ED35A154418FC2F5087A6B514152B81E5545A1544114AE47817B6B51411F85EB8147A15441295C8F327E6B5141D7A3701D4AA154411F85EB51806B514185EB51A84BA154415A643B87816B5141BC7493084CA154418FC2F5E8886B51411F85EB614EA15441F6285CEF8A6B514114AE47D14FA15441333333E38B6B5141713D0AC750A15441B81E859B8C6B51415C8FC2D551A154416264C2C3916B5141DB8C0B8F59A1544113F453A49A6B514194589BDA66A15441C338BD3FA16B5141B618C9BF70A1544139246DD1A66B5141F634FF1679A1544142B94D0BAB6B5141653C4B6B7FA1544133333343B36B5141A4703DBA8BA1544114AE47D1B46B51418FC2F5488DA15441B38AE7EDB56B5141B569A1FA8DA154410BDE69CFB96B5141A57BCE6690A15441A4703D1ABC6B514152B81ED591A15441F6285C6FBE6B5141A4703D5A92A15441B81E858BC16B51416666661692A1544133333303C56B51413D0AD70391A15441E17A14EEC86B51415C8FC2758FA15441B81E859BD66B51410AD7A39089A154418FC2F548DB6B51411F85EBF186A1544117DB2ED9DF6B5141FE24D3CE83A15441A384C610E16B51414FD89EF882A154413F355E9AE16B51416ABC745B82A1544127DAF1B4E16B5141A3A8C4E381A15441D122DB01E26B5141250681E581A1544139B4C80EE46B5141295C8FB280A154414E621060E46B5141E3A59B8480A154415A643BAFE46B514179E9264980A15441643BDFFFE46B5141508D971680A15441C1CAA155E56B51413BDF4FE57FA15441E17A14A6E56B51414260E5B87FA15441F6285CF7E56B514104560E857FA154413F355E4AE66B51413108AC5C7FA154411F85EB61E96B5141333333237EA15441508D9716EC6B5141AC1C5A3C7DA15441DF4F8D8FF56B5141A01A2FD579A1544100000078FB6B5141C1CAA16577A15441F0A7C693FA6B5141CFF753CB73A154414E621050FA6B51414C3789B96FA15441A06FB356FA6B5141582D09336EA154417B14AE37FC6B51415839B4A869A15441986E12BBFC6B5141295C8FDA67A15441D34D62D8FC6B5141C976BEAF67A154418D976EE2FC6B5141A8C64B7F67A15441D34D62F0FC6B5141295C8F3267A15441FED47801FD6B5141D9CEF7DB66A1544139B4C80EFD6B51414C37898166A154411B2FDD1CFD6B5141DBF97E2266A1544181954323FD6B5141B81E85C365A154414260E528FD6B5141F2D24D6A65A15441CDCCCC34FD6B51413789411065A1544181954343FD6B51411B2FDDBC64A154412731082CFD6B5141355EBA6164A154418FC2F530FD6B51411058391464A1544179E92639FD6B51410AD7A3C063A154411B2FDD3CFD6B51414260E57063A15441022B873EFD6B5141DD24062163A154417B14AE3FFD6B5141A8C64BCF62A1544189416045FD6B514121B0727862A154411B2FDD44FD6B5141EE7C3F2562A154417F6ABC44FD6B5141643BDFCF61A1544110583944FD6B514179E9267961A1544175931844FD6B514139B4C81E61A154410AD7A340FD6B5141D122DBC160A154414260E538FD6B5141B4C8766E60A154419A999931FD6B514148E17A1460A1544100000030FD6B514104560EB55FA15441A8C64B27FD6B51416ABC74535FA154411283C01AFD6B514146B6F3F55EA154414260E510FD6B51417D3F35965EA1544152B81EFDFC6B5141000000305EA15441A4703DEAFC6B5141D9CEF7CB5DA15441E7FBA9D1FC6B5141BA490C6A5DA15441F6285CB7FC6B51416ABC74135DA15441CDCCCC94FC6B51413F355EBA5CA1544123DBF96EFC6B51415839B4685CA1544185EB5148FC6B5141736891155CA154419CC42018FC6B51413BDF4FC55BA154411F85EBE9FB6B51412506816D5BA15441295C8FBAFB6B5141D122DB195BA1544189416085FB6B5141F2D24DCA5AA154414A0C0253FB6B5141AAF1D2855AA1544114AE4721FB6B5141D122DB415AA154418B6CE7F3FA6B51417F6ABCFC59A15441B29DEF07FA6B5141CDCCCCEC58A15441355EBA09F96B51413D0AD7FB57A15441FF7B2DD3F56B51411A7D0DBE54A15441629E8BAFF06B51413B2FB6E94FA15441CC83BAB8EB6B514103327C3F4BA15441E01068CAE56B5141CE8EABAC45A1544111E5B1E8DE6B5141345BAE353FA15441030A5E7BDA6B5141665706143BA15441F2AC089FD06B5141B1E406EC31A154410FEFDCFBCC6B514104BD608B2EA154418C044AB3CB6B514141E6465A2DA154410D27C7FEC96B514164B9C5DD2BA15441444CC26DC56B51417EE840E427A154411A77D569C16B5141CE1A8B6524A15441A8B53C39BD6B5141876DF3BF20A154417B14AEC7B96B51410AD7A3C01DA15441D057A91BB16B5141666EAA2C1AA15441B26C591CAF6B51413D1DF1D018A154410AD7A3E0AD6B5141A4703DFA17A154418B6CE7D3AD6B514114AE47C919A15441CFF75373AF6B5141C3F528A43DA154411D78D163A96B51412BE2FFFE37A15441997C5198A86B51410F98A23D37A15441DCC05CEFA76B51414E1B189D36A1544104000000C25D71DFA86B5141A5E409863FA15441B29DEFEFA86B5141CBA1451E40A154417FB153F4A86B5141B1A5618340A15441C25D71DFA86B5141A5E409863FA15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>898261 - 3394804
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000031000000D7A3702DF36B5141666666D67DA15441C3F5287CFA6B51418FC2F5287FA1544148E17AD4FB6B514152B81E657EA15441A4703D7AFC6B5141AE47E1DA7CA15441AE47E1FAFB6B5141713D0A4778A15441C3F528BCFA6B5141333333B373A154419A999949FA6B51418FC2F56871A1544166666696FA6B5141F6285CDF6EA15441E17A14EEFB6B5141EC51B8BE6AA15441CDCCCC2CFD6B51417B14AE3766A154415C8FC245FD6B51415C8FC29562A15441CDCCCC2CFD6B5141666666A65FA15441666666C6FC6B51418FC2F5685DA15441E17A142EFC6B5141B81E85AB5BA1544133333363FA6B51417B14AE0759A15441EC51B85EE26B51415C8FC27542A15441333333F3DC6B5141EC51B85E3DA154419A9999A9CB6B514114AE47512DA154417B14AEC7B96B51410AD7A3C01DA15441CDCCCC1CB16B5141D7A3702D1AA154410AD7A3E0AD6B5141A4703DFA17A1544166666696AF6B5141295C8FE23DA15441C3F5282C786B5141AE47E13A09A1544148E17A14776B5141295C8FB209A15441C3F5280C776B5141B81E853B14A15441B81E850B786B5141B81E853B19A154418FC2F5087A6B514152B81E5545A1544114AE47817B6B51411F85EB8147A15441295C8F327E6B5141D7A3701D4AA154411F85EB51806B514185EB51A84BA154418FC2F5E8886B51411F85EB614EA15441F6285CEF8A6B514114AE47D14FA15441333333E38B6B5141713D0AC750A15441B81E859B8C6B51415C8FC2D551A1544133333343B36B5141A4703DBA8BA1544114AE47D1B46B51418FC2F5488DA15441A4703D1ABC6B514152B81ED591A15441F6285C6FBE6B5141A4703D5A92A15441B81E858BC16B51416666661692A1544133333303C56B51413D0AD70391A15441E17A14EEC86B51415C8FC2758FA15441B81E859BD66B51410AD7A39089A154418FC2F548DB6B51411F85EBF186A1544152B81EB5E46B51417B14AE7780A1544100000060E76B5141000000007FA154411F85EB61E96B5141333333237EA15441B81E85EBEB6B5141EC51B87E7DA15441333333D3EE6B514152B81E557DA15441D7A3702DF36B5141666666D67DA15441
+</a>
+
+<b>
+0106000000010000000103000000020000007D000000DCC05CEFA76B51414E1B189D36A1544119E9927FA36B51416BF3DF6532A1544181B75416936B5141B506E1CD22A15441597E134A866B5141EE28CDA416A15441F92B1B1D826B5141409112AD12A154418BAF15F87D6B5141AD76E5BC0EA15441C3F5282C786B5141AE47E13A09A1544148E17A14776B5141295C8FB209A15441C3F5280C776B5141B81E853B14A15441B81E850B786B5141B81E853B19A15441778403D4786B5141D45A9F962AA15441BA47FF56796B5141612D52ED35A154418FC2F5087A6B514152B81E5545A1544114AE47817B6B51411F85EB8147A15441295C8F327E6B5141D7A3701D4AA154411F85EB51806B514185EB51A84BA154415A643B87816B5141BC7493084CA154418FC2F5E8886B51411F85EB614EA15441F6285CEF8A6B514114AE47D14FA15441333333E38B6B5141713D0AC750A15441B81E859B8C6B51415C8FC2D551A154416264C2C3916B5141DB8C0B8F59A1544113F453A49A6B514194589BDA66A15441C338BD3FA16B5141B618C9BF70A1544139246DD1A66B5141F634FF1679A1544142B94D0BAB6B5141653C4B6B7FA1544133333343B36B5141A4703DBA8BA1544114AE47D1B46B51418FC2F5488DA15441B38AE7EDB56B5141B569A1FA8DA154410BDE69CFB96B5141A57BCE6690A15441A4703D1ABC6B514152B81ED591A15441F6285C6FBE6B5141A4703D5A92A15441B81E858BC16B51416666661692A1544133333303C56B51413D0AD70391A15441E17A14EEC86B51415C8FC2758FA15441B81E859BD66B51410AD7A39089A154418FC2F548DB6B51411F85EBF186A1544117DB2ED9DF6B5141FE24D3CE83A15441A384C610E16B51414FD89EF882A154413F355E9AE16B51416ABC745B82A1544127DAF1B4E16B5141A3A8C4E381A15441D122DB01E26B5141250681E581A1544139B4C80EE46B5141295C8FB280A154414E621060E46B5141E3A59B8480A154415A643BAFE46B514179E9264980A15441643BDFFFE46B5141508D971680A15441C1CAA155E56B51413BDF4FE57FA15441E17A14A6E56B51414260E5B87FA15441F6285CF7E56B514104560E857FA154413F355E4AE66B51413108AC5C7FA154411F85EB61E96B5141333333237EA15441508D9716EC6B5141AC1C5A3C7DA15441DF4F8D8FF56B5141A01A2FD579A1544100000078FB6B5141C1CAA16577A15441F0A7C693FA6B5141CFF753CB73A154414E621050FA6B51414C3789B96FA15441A06FB356FA6B5141582D09336EA154417B14AE37FC6B51415839B4A869A15441986E12BBFC6B5141295C8FDA67A15441D34D62D8FC6B5141C976BEAF67A154418D976EE2FC6B5141A8C64B7F67A15441D34D62F0FC6B5141295C8F3267A15441FED47801FD6B5141D9CEF7DB66A1544139B4C80EFD6B51414C37898166A154411B2FDD1CFD6B5141DBF97E2266A1544181954323FD6B5141B81E85C365A154414260E528FD6B5141F2D24D6A65A15441CDCCCC34FD6B51413789411065A1544181954343FD6B51411B2FDDBC64A154412731082CFD6B5141355EBA6164A154418FC2F530FD6B51411058391464A1544179E92639FD6B51410AD7A3C063A154411B2FDD3CFD6B51414260E57063A15441022B873EFD6B5141DD24062163A154417B14AE3FFD6B5141A8C64BCF62A1544189416045FD6B514121B0727862A154411B2FDD44FD6B5141EE7C3F2562A154417F6ABC44FD6B5141643BDFCF61A1544110583944FD6B514179E9267961A1544175931844FD6B514139B4C81E61A154410AD7A340FD6B5141D122DBC160A154414260E538FD6B5141B4C8766E60A154419A999931FD6B514148E17A1460A1544100000030FD6B514104560EB55FA15441A8C64B27FD6B51416ABC74535FA154411283C01AFD6B514146B6F3F55EA154414260E510FD6B51417D3F35965EA1544152B81EFDFC6B5141000000305EA15441A4703DEAFC6B5141D9CEF7CB5DA15441E7FBA9D1FC6B5141BA490C6A5DA15441F6285CB7FC6B51416ABC74135DA15441CDCCCC94FC6B51413F355EBA5CA1544123DBF96EFC6B51415839B4685CA1544185EB5148FC6B5141736891155CA154419CC42018FC6B51413BDF4FC55BA154411F85EBE9FB6B51412506816D5BA15441295C8FBAFB6B5141D122DB195BA1544189416085FB6B5141F2D24DCA5AA154414A0C0253FB6B5141AAF1D2855AA1544114AE4721FB6B5141D122DB415AA154418B6CE7F3FA6B51417F6ABCFC59A15441B29DEF07FA6B5141CDCCCCEC58A15441355EBA09F96B51413D0AD7FB57A15441FF7B2DD3F56B51411A7D0DBE54A15441629E8BAFF06B51413B2FB6E94FA15441CC83BAB8EB6B514103327C3F4BA15441E01068CAE56B5141CE8EABAC45A1544111E5B1E8DE6B5141345BAE353FA15441030A5E7BDA6B5141665706143BA15441F2AC089FD06B5141B1E406EC31A154410FEFDCFBCC6B514104BD608B2EA154418C044AB3CB6B514141E6465A2DA154410D27C7FEC96B514164B9C5DD2BA15441444CC26DC56B51417EE840E427A154411A77D569C16B5141CE1A8B6524A15441A8B53C39BD6B5141876DF3BF20A154417B14AEC7B96B51410AD7A3C01DA15441D057A91BB16B5141666EAA2C1AA15441B26C591CAF6B51413D1DF1D018A154410AD7A3E0AD6B5141A4703DFA17A154418B6CE7D3AD6B514114AE47C919A15441CFF75373AF6B5141C3F528A43DA154411D78D163A96B51412BE2FFFE37A15441997C5198A86B51410F98A23D37A15441DCC05CEFA76B51414E1B189D36A1544104000000C25D71DFA86B5141A5E409863FA15441B29DEFEFA86B5141CBA1451E40A154417FB153F4A86B5141B1A5618340A15441C25D71DFA86B5141A5E409863FA15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>799215 - 162271
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000200000022000000CF261D377AFB50411CF287DB2F89544144059ACD7FFB5041D8FD55AA318954411F85EBD180FB5041EC51B83E2B89544152B81ED582FB504114AE47A12B8954413333333384FB5041A4703D9A27895441AE47E1AA82FB50413D0AD7A327895441EC51B83E7CFB5041EC51B8BE0F895441D7A3708D75FB504152B81EC50C895441713D0A876BFB50418FC2F588098954419A9999196CFB504114AE479105895441F6285C3F6FFB504100000000F6885441E17A148E6FFB50410AD7A390F08854418FC2F52872FB5041CDCCCCBCE988544114AE470177FB504166666626E488544152B81E457AFB5041713D0A17E2885441B81E85DB89FB5041AE47E12ABA8854419A99995982FB50413D0AD753BA885441A4703D9A81FB5041AE47E19ABC8854415C8FC26576FB5041A4703D5ADB8854411F85EBC16EFB504114AE4701EF8854411F85EBD165FB50413333330307895441BC58A78565FB504153317ACD078954416666668665FB5041D7A370CD078954416C7607C25FFB50413F50593A1789544141C0A99D60FB5041B5E24171178954419F59B5B660FB504144EFBE94178954419A9999B960FB50415C8FC28517895441DD1D53C060FB50413A2A688F17895441730B572161FB5041064A8B5917895441D116EF3665FB5041504476A91D8954412E22874C69FB50417DAE7A5D228954413246DCE06DFB5041FEA4DD50278954416BA5DC3773FB5041EA4158812D895441CF261D377AFB50411CF287DB2F89544108000000D7A3702D78FB50415C8FC295218954410000004074FB50419A999989218954418FC2F59870FB50415C8FC2351E895441333333F36FFB5041666666C61989544185EB514876FB5041B81E853B178954417B14AE9778FB5041666666C619895441295C8F127AFB5041C3F5289C1D895441D7A3702D78FB50415C8FC29521895441
+</a>
+
+<b>
+010600000001000000010300000001000000210000001F85EBC16EFB504114AE4701EF8854411F85EBD165FB504133333303078954417862068C65FB50419B4594BC0789544174A5D28565FB5041170778CD078954416666668665FB5041D7A370CD078954416C7607C25FFB50413E50593A178954417CF885CD5FFB5041C2F0383D17895441FDF197D866FB50410B66E6070F895441F83B2CED69FB5041F6E7CE760B89544198D48A886BFB5041747F8C7E098954419A9999196CFB504114AE479105895441EE11BD3A6FFB5041C08CDB16F6885441E83A267E6FFB5041B9C71FE0F08854419716B38B6FFB50411DB7B6BAF0885441E17A148E6FFB50410AD7A390F0885441C5CBC18B70FB5041EAC2C5F7ED885441E0EF8BFA71FB5041D73D1D03EA88544126F3231F72FB5041794C89D6E98854418FC2F52872FB5041CDCCCCBCE988544169EC18FD72FB50418D0527C8E8885441F1D874F374FB50414D0F3064E68854410DDE73EF75FB50412A103162E588544114AE470177FB504166666626E4885441EE5F608178FB5041F4770F34E388544127B56C317AFB5041D7EA6811E28854413087A74C80FB5041E88DC2A5D28854413EF7CA8984FB50415F8884CAC78854417F78EB7D89FB504154775DDDBA885441939553A589FB5041FEF3082CBA885441DC8CA08582FB504151D5E652BA88544118D240A37FFB50414CA81EFFC18854415C8FC26576FB5041A4703D5ADB8854411F85EBC16EFB504114AE4701EF885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>898997 - 3059403
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000570000007B14AEE795815141EC51B88EAF97544100000070958151410AD7A320AF975441CDCCCC5C8E8151419A999999A89754413D0AD7237E81514166666626DE975441666666867F8151410AD7A3E0DE97544152B81EF58081514185EB5198DF975441A4703DFA81815141295C8F02E09754418FC2F568838151419A999989E09754417B14AEA784815141A4703DEAE0975441CDCCCCDC8581514114AE4741E1975441EC51B82E878151411F85EBA1E1975441295C8FA2898151418FC2F558E29754413D0AD7C38A815141333333C3E2975441F6285CBF8B8151410AD7A310E3975441A4703DBA8C8151413D0AD723E397544152B81EB58D8151410AD7A3E0E2975441666666468E8151418FC2F558E2975441A4703DEA8E8151417B14AE37E19754411F85EBA18F8151417B14AE07DF975441295C8F329081514114AE47E1DC975441F6285CBF90815141B81E85FBDA975441333333739181514133333343DB975441713D0A0791815141D7A3709DDC9754419A9999B990815141B81E85ABDD975441295C8F6290815141713D0AD7DE9754415C8FC21590815141C3F528DCDF9754411F85EBD18F815141D7A370FDE097544114AE47718F815141295C8F32E29754410AD7A3108F8151410AD7A3E0E29754419A9999898E815141E17A145EE39754415C8FC2E58D81514185EB51C8E3975441F6285C1F90815141000000E0E4975441C3F5283C9281514152B81EE5E59754417B14AE67938151418FC2F558E697544152B81EE59381514100000080E697544114AE47A195815141A4703DDAE1975441F6285CBF9881514114AE4741D9975441666666669B815141D7A370DDD1975441C3F528CC9A81514185EB51D8D2975441EC51B84E9A815141F6285C2FD3975441713D0AC7998151418FC2F568D3975441CDCCCCFC98815141CDCCCCACD3975441E17A14EE97815141D7A370DDD3975441713D0A67978151410AD7A3F0D397544185EB512896815141A4703DFAD3975441E17A148E958151410AD7A320D49754419A9999E99481514148E17A64D49754415C8FC275948151417B14AEA7D4975441B81E850B94815141EC51B8FED49754417B14AE9793815141C3F5287CD59754413D0AD753938151413D0AD703D6975441713D0A07938151417B14AEA7D6975441CDCCCCCC928151411F85EB41D7975441F6285C7F92815141A4703D2AD8975441C3F5283C92815141E17A14CED8975441B81E85DB91815141CDCCCC0CDA9754416666667691815141C3F5283CDB975441333333C39081514148E17AF4DA9754413D0AD72391815141295C8FA2D9975441B81E85DB91815141C3F5287CD7975441F6285C7F92815141D7A3700DD6975441E17A148E93815141D7A3700DD49754411F85EB3194815141EC51B89ED2975441A4703DCA9481514166666656D1975441F6285C4F918151415C8FC2E5CB975441333333F3928151419A999919C7975441713D0A97938151418FC2F5A8C4975441CDCCCCFC9581514100000080C59754415C8FC2259A815141666666E6C6975441CDCCCCFC9A81514100000080C4975441295C8F629F815141E17A142EC6975441B81E858B9F8151411F85EBD1C5975441F6285C2FA0815141F6285C0FC49754411F85EBC1A0815141713D0AC7C2975441F6285C3FA181514114AE4761C19754419A9999D9A1815141295C8FC2BF975441A4703D3AA2815141CDCCCC5CBE975441D7A3704DA28151417B14AE27BD9754413D0AD743A28151418FC2F5B8BB9754413D0AD703A2815141AE47E17ABA97544152B81E75998151410AD7A3B0B69754418FC2F5D89A815141CDCCCC3CB297544133333323998151419A999959B197544148E17AE49781514185EB5198B0975441000000D096815141EC51B8EEAF975441295C8FC296815141AE47E1EAAF9754417B14AEE795815141EC51B88EAF975441
+</a>
+
+<b>
+01060000000100000001030000000100000025000000A3EC8D5A9181514140591892DB975441713D0A0791815141D7A3709DDC9754419A9999B990815141B81E85ABDD975441295C8F6290815141713D0AD7DE9754415C8FC21590815141C3F528DCDF9754411F85EBD18F815141D7A370FDE097544114AE47718F815141295C8F32E29754410AD7A3108F8151410AD7A3E0E29754419A9999898E815141E17A145EE39754415C8FC2E58D81514185EB51C8E3975441F6285C1F90815141000000E0E4975441C3F5283C9281514152B81EE5E59754417B14AE67938151418FC2F558E697544152B81EE59381514100000080E697544114AE47A195815141A4703DDAE1975441F6285CBF9881514114AE4741D9975441666666669B815141D7A370DDD1975441C3F528CC9A81514185EB51D8D2975441EC51B84E9A815141F6285C2FD3975441713D0AC7998151418FC2F568D3975441CDCCCCFC98815141CDCCCCACD3975441E17A14EE97815141D7A370DDD3975441713D0A67978151410AD7A3F0D397544185EB512896815141A4703DFAD3975441E17A148E958151410AD7A320D49754419A9999E99481514148E17A64D49754415C8FC275948151417B14AEA7D4975441B81E850B94815141EC51B8FED49754417B14AE9793815141C3F5287CD59754413D0AD753938151413D0AD703D6975441713D0A07938151417B14AEA7D6975441CDCCCCCC928151411F85EB41D7975441F6285C7F92815141A4703D2AD8975441C3F5283C92815141E17A14CED8975441B81E85DB91815141CDCCCC0CDA9754416666667691815141C3F5283CDB975441A3EC8D5A9181514140591892DB975441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>898997 - 3343688
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000570000007B14AEE795815141EC51B88EAF97544100000070958151410AD7A320AF975441CDCCCC5C8E8151419A999999A89754413D0AD7237E81514166666626DE975441666666867F8151410AD7A3E0DE97544152B81EF58081514185EB5198DF975441A4703DFA81815141295C8F02E09754418FC2F568838151419A999989E09754417B14AEA784815141A4703DEAE0975441CDCCCCDC8581514114AE4741E1975441EC51B82E878151411F85EBA1E1975441295C8FA2898151418FC2F558E29754413D0AD7C38A815141333333C3E2975441F6285CBF8B8151410AD7A310E3975441A4703DBA8C8151413D0AD723E397544152B81EB58D8151410AD7A3E0E2975441666666468E8151418FC2F558E2975441A4703DEA8E8151417B14AE37E19754411F85EBA18F8151417B14AE07DF975441295C8F329081514114AE47E1DC975441F6285CBF90815141B81E85FBDA975441333333739181514133333343DB975441713D0A0791815141D7A3709DDC9754419A9999B990815141B81E85ABDD975441295C8F6290815141713D0AD7DE9754415C8FC21590815141C3F528DCDF9754411F85EBD18F815141D7A370FDE097544114AE47718F815141295C8F32E29754410AD7A3108F8151410AD7A3E0E29754419A9999898E815141E17A145EE39754415C8FC2E58D81514185EB51C8E3975441F6285C1F90815141000000E0E4975441C3F5283C9281514152B81EE5E59754417B14AE67938151418FC2F558E697544152B81EE59381514100000080E697544114AE47A195815141A4703DDAE1975441F6285CBF9881514114AE4741D9975441666666669B815141D7A370DDD1975441C3F528CC9A81514185EB51D8D2975441EC51B84E9A815141F6285C2FD3975441713D0AC7998151418FC2F568D3975441CDCCCCFC98815141CDCCCCACD3975441E17A14EE97815141D7A370DDD3975441713D0A67978151410AD7A3F0D397544185EB512896815141A4703DFAD3975441E17A148E958151410AD7A320D49754419A9999E99481514148E17A64D49754415C8FC275948151417B14AEA7D4975441B81E850B94815141EC51B8FED49754417B14AE9793815141C3F5287CD59754413D0AD753938151413D0AD703D6975441713D0A07938151417B14AEA7D6975441CDCCCCCC928151411F85EB41D7975441F6285C7F92815141A4703D2AD8975441C3F5283C92815141E17A14CED8975441B81E85DB91815141CDCCCC0CDA9754416666667691815141C3F5283CDB975441333333C39081514148E17AF4DA9754413D0AD72391815141295C8FA2D9975441B81E85DB91815141C3F5287CD7975441F6285C7F92815141D7A3700DD6975441E17A148E93815141D7A3700DD49754411F85EB3194815141EC51B89ED2975441A4703DCA9481514166666656D1975441F6285C4F918151415C8FC2E5CB975441333333F3928151419A999919C7975441713D0A97938151418FC2F5A8C4975441CDCCCCFC9581514100000080C59754415C8FC2259A815141666666E6C6975441CDCCCCFC9A81514100000080C4975441295C8F629F815141E17A142EC6975441B81E858B9F8151411F85EBD1C5975441F6285C2FA0815141F6285C0FC49754411F85EBC1A0815141713D0AC7C2975441F6285C3FA181514114AE4761C19754419A9999D9A1815141295C8FC2BF975441A4703D3AA2815141CDCCCC5CBE975441D7A3704DA28151417B14AE27BD9754413D0AD743A28151418FC2F5B8BB9754413D0AD703A2815141AE47E17ABA97544152B81E75998151410AD7A3B0B69754418FC2F5D89A815141CDCCCC3CB297544133333323998151419A999959B197544148E17AE49781514185EB5198B0975441000000D096815141EC51B8EEAF975441295C8FC296815141AE47E1EAAF9754417B14AEE795815141EC51B88EAF975441
+</a>
+
+<b>
+01060000000100000001030000000100000025000000A3EC8D5A9181514140591892DB975441713D0A0791815141D7A3709DDC9754419A9999B990815141B81E85ABDD975441295C8F6290815141713D0AD7DE9754415C8FC21590815141C3F528DCDF9754411F85EBD18F815141D7A370FDE097544114AE47718F815141295C8F32E29754410AD7A3108F8151410AD7A3E0E29754419A9999898E815141E17A145EE39754415C8FC2E58D81514185EB51C8E3975441F6285C1F90815141000000E0E4975441C3F5283C9281514152B81EE5E59754417B14AE67938151418FC2F558E697544152B81EE59381514100000080E697544114AE47A195815141A4703DDAE1975441F6285CBF9881514114AE4741D9975441666666669B815141D7A370DDD1975441C3F528CC9A81514185EB51D8D2975441EC51B84E9A815141F6285C2FD3975441713D0AC7998151418FC2F568D3975441CDCCCCFC98815141CDCCCCACD3975441E17A14EE97815141D7A370DDD3975441713D0A67978151410AD7A3F0D397544185EB512896815141A4703DFAD3975441E17A148E958151410AD7A320D49754419A9999E99481514148E17A64D49754415C8FC275948151417B14AEA7D4975441B81E850B94815141EC51B8FED49754417B14AE9793815141C3F5287CD59754413D0AD753938151413D0AD703D6975441713D0A07938151417B14AEA7D6975441CDCCCCCC928151411F85EB41D7975441F6285C7F92815141A4703D2AD8975441C3F5283C92815141E17A14CED8975441B81E85DB91815141CDCCCC0CDA9754416666667691815141C3F5283CDB975441A3EC8D5A9181514140591892DB975441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>899053 - 1173608
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000170000009A999909DB6251413D0AD7938BA35441000000B0D0625141295C8F1296A3544100000060CF6251419A9999F996A354411F85EB11CC625141F6285CEF96A35441C3F5288CC9625141AE47E18A9AA3544148E17AF4C3625141F6285C6F9FA354413D0AD773BB625141D7A3705DA6A35441D7A3705DB2625141D7A3705DACA35441E17A147EAB6251410AD7A3A0AFA35441D7A3703DAD6251419A999969B3A3544100000040B26251413D0AD7E3B2A35441B81E857BB8625141713D0A27B0A3544185EB51C8BD625141EC51B84EACA35441B81E85BBC2625141F6285CFFA7A354413D0AD793C6625141CDCCCC8CA5A3544148E17A84CC62514185EB5188A1A35441B81E85DBCD625141D7A3708D9FA3544148E17A84D26251413D0AD7A39CA35441D7A370DDD8625141D7A3708D99A35441D7A3706DDB6251411F85EBE195A35441CDCCCC0CDE625141CDCCCC9C93A3544148E17AD4E0625141000000F091A354419A999909DB6251413D0AD7938BA35441
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000009A999909DB6251413D0AD7938BA35441000000B0D0625141295C8F1296A3544100000060CF6251419A9999F996A3544194D3E7FECB625141C2968D0A97A3544147632915CB6251410D44D65898A3544183492E5ACA62514110633E6499A354418D3B8392C8625141F49347659BA354415F13BCC5C26251414F291D66A0A354412E7D659DBB625141B3B9913BA6A35441070FEAA7B3625141C8C13E83ABA35441560FBBEDB1625141A56D7892ACA35441D9081A5DB162514191E020D7ACA35441A5C10985AB62514183FFB5AFAFA354410E2CEA6BAD6251411ECAC064B3A354419AD368E3B1625141DA137FEDB2A35441F70F25C4B762514199789577B0A354412D7184BDB8625141782929F7AFA3544185EB51C8BD625141EC51B84EACA35441B81E85BBC2625141F6285CFFA7A354413D0AD793C6625141CDCCCC8CA5A3544148E17A84CC62514185EB5188A1A35441B81E85DBCD625141D7A3708D9FA3544148E17A84D26251413D0AD7A39CA35441D7A370DDD8625141D7A3708D99A35441D7A3706DDB6251411F85EBE195A35441CDCCCC0CDE625141CDCCCC9C93A3544148E17AD4E0625141000000F091A354419A999909DB6251413D0AD7938BA35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>899053 - 3277169
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000170000009A999909DB6251413D0AD7938BA35441000000B0D0625141295C8F1296A3544100000060CF6251419A9999F996A354411F85EB11CC625141F6285CEF96A35441C3F5288CC9625141AE47E18A9AA3544148E17AF4C3625141F6285C6F9FA354413D0AD773BB625141D7A3705DA6A35441D7A3705DB2625141D7A3705DACA35441E17A147EAB6251410AD7A3A0AFA35441D7A3703DAD6251419A999969B3A3544100000040B26251413D0AD7E3B2A35441B81E857BB8625141713D0A27B0A3544185EB51C8BD625141EC51B84EACA35441B81E85BBC2625141F6285CFFA7A354413D0AD793C6625141CDCCCC8CA5A3544148E17A84CC62514185EB5188A1A35441B81E85DBCD625141D7A3708D9FA3544148E17A84D26251413D0AD7A39CA35441D7A370DDD8625141D7A3708D99A35441D7A3706DDB6251411F85EBE195A35441CDCCCC0CDE625141CDCCCC9C93A3544148E17AD4E0625141000000F091A354419A999909DB6251413D0AD7938BA35441
+</a>
+
+<b>
+0106000000010000000103000000010000001C0000009A999909DB6251413D0AD7938BA35441000000B0D0625141295C8F1296A3544100000060CF6251419A9999F996A3544194D3E7FECB625141C2968D0A97A3544147632915CB6251410D44D65898A3544183492E5ACA62514110633E6499A354418D3B8392C8625141F49347659BA354415F13BCC5C26251414F291D66A0A354412E7D659DBB625141B3B9913BA6A35441070FEAA7B3625141C8C13E83ABA35441560FBBEDB1625141A56D7892ACA35441D9081A5DB162514191E020D7ACA35441A5C10985AB62514183FFB5AFAFA354410E2CEA6BAD6251411ECAC064B3A354419AD368E3B1625141DA137FEDB2A35441F70F25C4B762514199789577B0A354412D7184BDB8625141782929F7AFA3544185EB51C8BD625141EC51B84EACA35441B81E85BBC2625141F6285CFFA7A354413D0AD793C6625141CDCCCC8CA5A3544148E17A84CC62514185EB5188A1A35441B81E85DBCD625141D7A3708D9FA3544148E17A84D26251413D0AD7A39CA35441D7A370DDD8625141D7A3708D99A35441D7A3706DDB6251411F85EBE195A35441CDCCCC0CDE625141CDCCCC9C93A3544148E17AD4E0625141000000F091A354419A999909DB6251413D0AD7938BA35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>261893 - 2943241
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000F0000008FC2F5184C6F51419A999969033954413D0AD783346F5141D7A3701D08395441B81E85FB1C6F5141E17A14CE0C395441EC51B84E116F51411F85EB210F3954411F85EBC1126F5141AE47E16A15395441CDCCCC7C116F51419A99998915395441D7A3707D0F6F5141000000D0143954415C8FC2350A6F5141C3F5288C10395441D7A370DD076F51413D0AD70311395441CDCCCC8C116F514185EB5188173954417B14AE471E6F514133333343183954413D0AD7732E6F51418FC2F5B818395441CDCCCC9C3F6F5141AE47E1DA1C39544148E17AB4476F5141E17A14CE1E3954418FC2F5184C6F51419A99996903395441
+</a>
+
+<b>
+0106000000010000000103000000020000002900000069235AD3FC6E514169F06A3613395441C1DEF14E026F5141AE5BD23810395441A98ECAFC046F514104882C8A0E395441179063BB066F51410F2BADAB0C39544162193DEB066F5141B9FE525A0E395441798933060A6F51413F2DA49510395441BF36A71C0A6F514164512A91103954415C8FC2350A6F5141C3F5288C103954412DDEB94E116F5141AC3AF2210F395441B81E85FB1C6F5141E17A14CE0C395441EDCC3D82206F5141DF2D2B1A0C39544135BE22B3396F514166D1C4140739544121D5203A436F514131126B2E05395441E38B73014C6F514181AB496E03395441F9DAB93B566F5141244F127400395441211EDF41576F5141A31B8A2700395441000000004A6F51413D0AD793FB385441E21C40E4496F5141DC2D3E9DFB385441333333C34C6F5141EC51B86EF0385441B81E853B3E6F5141AE47E1DAEC385441A01B47F7416F5141D9228C22D738544142E62BB13D6F5141E1156469D638544157C9E57B396F514156240784D8385441CD880DD72F6F51415705686DE9385441AE47E15A306F5141A4703D0AF838544111A3FAF8226F514138032DB6F93854413E9BB940196F51414F07FDECFA3854419A9999F9136F51415C8FC295FB385441EC51B83E156F51418FC2F5980439544185EB51A80B6F5141B81E850B08395441D3EE205B0A6F5141478C4379F138544171954E3E046F5141C8B963C5F3385441B1A018E4FC6E5141A93419F1FC3854413718842DFC6E5141F9FF8F7DFD3854413A0CCFD7FA6E5141F18F73F4FD385441C2A2F8F7F96E514115D95406FE385441B81E856BEF6E51413D0AD7D3FB385441F7220129F06E5141807D4F3308395441AE47E12AF06E5141295C8F520839544157F264FCF76E51419B0BA8390F39544169235AD3FC6E514169F06A361339544105000000E356BA040F6F514150A03ABD0A395441C4E820850E6F51414B8CEE9E08395441556C9FE1126F51410CB0BB9F07395441ED7E5241136F51418968219E09395441E356BA040F6F514150A03ABD0A395441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>261893 - 3810164
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000F0000008FC2F5184C6F51419A999969033954413D0AD783346F5141D7A3701D08395441B81E85FB1C6F5141E17A14CE0C395441EC51B84E116F51411F85EB210F3954411F85EBC1126F5141AE47E16A15395441CDCCCC7C116F51419A99998915395441D7A3707D0F6F5141000000D0143954415C8FC2350A6F5141C3F5288C10395441D7A370DD076F51413D0AD70311395441CDCCCC8C116F514185EB5188173954417B14AE471E6F514133333343183954413D0AD7732E6F51418FC2F5B818395441CDCCCC9C3F6F5141AE47E1DA1C39544148E17AB4476F5141E17A14CE1E3954418FC2F5184C6F51419A99996903395441
+</a>
+
+<b>
+0106000000010000000103000000020000002900000069235AD3FC6E514169F06A3613395441C1DEF14E026F5141AE5BD23810395441A98ECAFC046F514104882C8A0E395441179063BB066F51410F2BADAB0C39544162193DEB066F5141B9FE525A0E395441798933060A6F51413F2DA49510395441BF36A71C0A6F514164512A91103954415C8FC2350A6F5141C3F5288C103954412DDEB94E116F5141AC3AF2210F395441B81E85FB1C6F5141E17A14CE0C395441EDCC3D82206F5141DF2D2B1A0C39544135BE22B3396F514166D1C4140739544121D5203A436F514131126B2E05395441E38B73014C6F514181AB496E03395441F9DAB93B566F5141244F127400395441211EDF41576F5141A31B8A2700395441000000004A6F51413D0AD793FB385441E21C40E4496F5141DC2D3E9DFB385441333333C34C6F5141EC51B86EF0385441B81E853B3E6F5141AE47E1DAEC385441A01B47F7416F5141D9228C22D738544142E62BB13D6F5141E1156469D638544157C9E57B396F514156240784D8385441CD880DD72F6F51415705686DE9385441AE47E15A306F5141A4703D0AF838544111A3FAF8226F514138032DB6F93854413E9BB940196F51414F07FDECFA3854419A9999F9136F51415C8FC295FB385441EC51B83E156F51418FC2F5980439544185EB51A80B6F5141B81E850B08395441D3EE205B0A6F5141478C4379F138544171954E3E046F5141C8B963C5F3385441B1A018E4FC6E5141A93419F1FC3854413718842DFC6E5141F9FF8F7DFD3854413A0CCFD7FA6E5141F18F73F4FD385441C2A2F8F7F96E514115D95406FE385441B81E856BEF6E51413D0AD7D3FB385441F7220129F06E5141807D4F3308395441AE47E12AF06E5141295C8F520839544157F264FCF76E51419B0BA8390F39544169235AD3FC6E514169F06A361339544105000000E356BA040F6F514150A03ABD0A395441C4E820850E6F51414B8CEE9E08395441556C9FE1126F51410CB0BB9F07395441ED7E5241136F51418968219E09395441E356BA040F6F514150A03ABD0A395441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>402561 - 1290235
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000013000000295C8F32312D51419A999959F2EC54419A9999892B2D514185EB5158EFEC5441AE47E18A222D51410AD7A3C0EAEC5441CDCCCC6C0B2D5141F6285CDFD6EC544133333333062D514166666656D2EC544133333393052D514166666696D2EC544114AE47C1032D5141D7A370ADD3EC5441F6285C6FFF2C514148E17AA4D4EC54415C8FC215FB2C514133333323D5EC5441713D0A37F92C51417B14AE07D8EC544114AE47A1F92C5141F6285CAFD9EC54419A9999B9092D514114AE47C1E6EC544148E17A74112D5141C3F528ECECEC5441C3F5280C192D51413D0AD7A3F3EC5441CDCCCCDC242D51413D0AD7B3FCEC54415C8FC2C5342D51419A9999F90CED544152B81E053F2D51413D0AD743FCEC544152B81EA5392D51413D0AD773F8EC5441295C8F32312D51419A999959F2EC5441
+</a>
+
+<b>
+01060000000100000001030000000100000031000000A4703D9A3A2D5141F6285C5F20ED5441D7A3701D3E2D51417B14AE771DED544166666646432D514148E17A7419ED54413A0AE55F412D514104DA225017ED544104570901402D51416725945A16ED54410A3D8F5F3D2D51413492078914ED544113450E2B3A2D5141C5BADBE011ED5441CAE4E9A4342D5141E25801D80CED5441AE307972322D51416B09C0980AED544110FFE2A72F2D51417CCBE1BD07ED5441746C305B2B2D514120101B5803ED544135DEDBEE262D514122D7F9D1FEEC5441D53FD208252D5141D241DDE0FCEC544148007785242D51415BDCD970FCEC54416E5F7DC1212D5141F978CF51FAEC544185C7FA27202D5141A7D5B317F9EC5441078E57471D2D5141C643ADE2F6EC5441F5D3D9BB192D514127CD992AF4EC5441779F4F65182D5141EE363810F3EC5441D989F84D162D5141E0299336F1EC5441F3F47BE7142D5141FEF066F9EFEC54410414970D132D514186431F56EEEC54413D8C9F95112D514145CF7B09EDEC54418B835DFC0D2D5141E25E9027EAEC544166C937270A2D51418C87BD18E7EC5441026143BC072D514177DAAB23E5EC54418835974A052D5141387E9727E3EC54413D93D4DBFE2C5141D49C55EEDDEC5441E17A52F5FB2C514174CB6093DBEC5441F9BD83ADF92C5141D08F4BB9D9EC5441D7A3700DFA2C514114AE4741DBEC54417B14AEC7FC2C5141C3F5286CE5EC54418FC2F5C8FF2C5141F6285CEFF0EC54419A9999F9F22C514166666686FEEC54411F85EB210B2D51413333330310ED54413F336FCB0C2D5141ABC4A7820EED5441000000A00F2D514185EB51380AED54417B14AEE7122D51419A9999E90CED5441B81E85EB152D5141D7A3707D10ED544148E17AA41A2D5141CDCCCCEC16ED544148E17AE41E2D5141EC51B8FE1DED5441AE47E12A1E2D51415C8FC2551EED54415C8FC2651F2D5141E17A146E22ED54419A999929212D51410AD7A35028ED544152B81EA5262D5141713D0AC72AED5441666666462E2D5141666666E629ED5441AE47E18A352D5141AE47E19A26ED5441CDCCCC4C382D5141713D0A4722ED5441A4703D9A3A2D5141F6285C5F20ED5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>402561 - 3427508
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000013000000295C8F32312D51419A999959F2EC54419A9999892B2D514185EB5158EFEC5441AE47E18A222D51410AD7A3C0EAEC5441CDCCCC6C0B2D5141F6285CDFD6EC544133333333062D514166666656D2EC544133333393052D514166666696D2EC544114AE47C1032D5141D7A370ADD3EC5441F6285C6FFF2C514148E17AA4D4EC54415C8FC215FB2C514133333323D5EC5441713D0A37F92C51417B14AE07D8EC544114AE47A1F92C5141F6285CAFD9EC54419A9999B9092D514114AE47C1E6EC544148E17A74112D5141C3F528ECECEC5441C3F5280C192D51413D0AD7A3F3EC5441CDCCCCDC242D51413D0AD7B3FCEC54415C8FC2C5342D51419A9999F90CED544152B81E053F2D51413D0AD743FCEC544152B81EA5392D51413D0AD773F8EC5441295C8F32312D51419A999959F2EC5441
+</a>
+
+<b>
+01060000000100000001030000000100000031000000A4703D9A3A2D5141F6285C5F20ED5441D7A3701D3E2D51417B14AE771DED544166666646432D514148E17A7419ED54413A0AE55F412D514104DA225017ED544104570901402D51416725945A16ED54410A3D8F5F3D2D51413492078914ED544113450E2B3A2D5141C5BADBE011ED5441CAE4E9A4342D5141E25801D80CED5441AE307972322D51416B09C0980AED544110FFE2A72F2D51417CCBE1BD07ED5441746C305B2B2D514120101B5803ED544135DEDBEE262D514122D7F9D1FEEC5441D53FD208252D5141D241DDE0FCEC544148007785242D51415BDCD970FCEC54416E5F7DC1212D5141F978CF51FAEC544185C7FA27202D5141A7D5B317F9EC5441078E57471D2D5141C643ADE2F6EC5441F5D3D9BB192D514127CD992AF4EC5441779F4F65182D5141EE363810F3EC5441D989F84D162D5141E0299336F1EC5441F3F47BE7142D5141FEF066F9EFEC54410414970D132D514186431F56EEEC54413D8C9F95112D514145CF7B09EDEC54418B835DFC0D2D5141E25E9027EAEC544166C937270A2D51418C87BD18E7EC5441026143BC072D514177DAAB23E5EC54418835974A052D5141387E9727E3EC54413D93D4DBFE2C5141D49C55EEDDEC5441E17A52F5FB2C514174CB6093DBEC5441F9BD83ADF92C5141D08F4BB9D9EC5441D7A3700DFA2C514114AE4741DBEC54417B14AEC7FC2C5141C3F5286CE5EC54418FC2F5C8FF2C5141F6285CEFF0EC54419A9999F9F22C514166666686FEEC54411F85EB210B2D51413333330310ED54413F336FCB0C2D5141ABC4A7820EED5441000000A00F2D514185EB51380AED54417B14AEE7122D51419A9999E90CED5441B81E85EB152D5141D7A3707D10ED544148E17AA41A2D5141CDCCCCEC16ED544148E17AE41E2D5141EC51B8FE1DED5441AE47E12A1E2D51415C8FC2551EED54415C8FC2651F2D5141E17A146E22ED54419A999929212D51410AD7A35028ED544152B81EA5262D5141713D0AC72AED5441666666462E2D5141666666E629ED5441AE47E18A352D5141AE47E19A26ED5441CDCCCC4C382D5141713D0A4722ED5441A4703D9A3A2D5141F6285C5F20ED5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>402561 - 28250
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000013000000295C8F32312D51419A999959F2EC54419A9999892B2D514185EB5158EFEC5441AE47E18A222D51410AD7A3C0EAEC5441CDCCCC6C0B2D5141F6285CDFD6EC544133333333062D514166666656D2EC544133333393052D514166666696D2EC544114AE47C1032D5141D7A370ADD3EC5441F6285C6FFF2C514148E17AA4D4EC54415C8FC215FB2C514133333323D5EC5441713D0A37F92C51417B14AE07D8EC544114AE47A1F92C5141F6285CAFD9EC54419A9999B9092D514114AE47C1E6EC544148E17A74112D5141C3F528ECECEC5441C3F5280C192D51413D0AD7A3F3EC5441CDCCCCDC242D51413D0AD7B3FCEC54415C8FC2C5342D51419A9999F90CED544152B81E053F2D51413D0AD743FCEC544152B81EA5392D51413D0AD773F8EC5441295C8F32312D51419A999959F2EC5441
+</a>
+
+<b>
+01060000000100000001030000000100000025000000D7A3700DFA2C514114AE4741DBEC5441E17A14AE082D514114AE47B1E7EC544185EB51D8102D5141E17A140EEEEC544152B81E55182D514114AE47C1F4EC54418FC2F588232D514148E17A24FDEC5441E17A14CE332D5141666666860DED5441E17A147E392D5141666666A612ED544114AE47C1402D5141713D0AB717ED544166666646432D514148E17A7419ED54413A0AE55F412D514104DA225017ED544104570901402D51416725945A16ED54410A3D8F5F3D2D51413492078914ED544113450E2B3A2D5141C5BADBE011ED5441CAE4E9A4342D5141E25801D80CED5441AE307972322D51416B09C0980AED544110FFE2A72F2D51417CCBE1BD07ED5441746C305B2B2D514120101B5803ED544135DEDBEE262D514122D7F9D1FEEC5441D53FD208252D5141D241DDE0FCEC544148007785242D51415BDCD970FCEC54416E5F7DC1212D5141F978CF51FAEC544185C7FA27202D5141A7D5B317F9EC5441078E57471D2D5141C643ADE2F6EC5441F5D3D9BB192D514127CD992AF4EC5441779F4F65182D5141EE363810F3EC5441D989F84D162D5141E0299336F1EC5441F3F47BE7142D5141FEF066F9EFEC54410414970D132D514186431F56EEEC54413D8C9F95112D514145CF7B09EDEC54418B835DFC0D2D5141E25E9027EAEC544166C937270A2D51418C87BD18E7EC5441026143BC072D514177DAAB23E5EC54418835974A052D5141387E9727E3EC54413D93D4DBFE2C5141D49C55EEDDEC5441E17A52F5FB2C514174CB6093DBEC5441F9BD83ADF92C5141D08F4BB9D9EC5441D7A3700DFA2C514114AE4741DBEC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>402561 - 71601
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000100000013000000295C8F32312D51419A999959F2EC54419A9999892B2D514185EB5158EFEC5441AE47E18A222D51410AD7A3C0EAEC5441CDCCCC6C0B2D5141F6285CDFD6EC544133333333062D514166666656D2EC544133333393052D514166666696D2EC544114AE47C1032D5141D7A370ADD3EC5441F6285C6FFF2C514148E17AA4D4EC54415C8FC215FB2C514133333323D5EC5441713D0A37F92C51417B14AE07D8EC544114AE47A1F92C5141F6285CAFD9EC54419A9999B9092D514114AE47C1E6EC544148E17A74112D5141C3F528ECECEC5441C3F5280C192D51413D0AD7A3F3EC5441CDCCCCDC242D51413D0AD7B3FCEC54415C8FC2C5342D51419A9999F90CED544152B81E053F2D51413D0AD743FCEC544152B81EA5392D51413D0AD773F8EC5441295C8F32312D51419A999959F2EC5441
+</a>
+
+<b>
+01060000000100000001030000000100000025000000D7A3700DFA2C514114AE4741DBEC5441E17A14AE082D514114AE47B1E7EC544185EB51D8102D5141E17A140EEEEC544152B81E55182D514114AE47C1F4EC54418FC2F588232D514148E17A24FDEC5441E17A14CE332D5141666666860DED5441E17A147E392D5141666666A612ED544114AE47C1402D5141713D0AB717ED544166666646432D514148E17A7419ED54413A0AE55F412D514104DA225017ED544104570901402D51416725945A16ED54410A3D8F5F3D2D51413492078914ED544113450E2B3A2D5141C5BADBE011ED5441CAE4E9A4342D5141E25801D80CED5441AE307972322D51416B09C0980AED544110FFE2A72F2D51417CCBE1BD07ED5441746C305B2B2D514120101B5803ED544135DEDBEE262D514122D7F9D1FEEC5441D53FD208252D5141D241DDE0FCEC544148007785242D51415BDCD970FCEC54416E5F7DC1212D5141F978CF51FAEC544185C7FA27202D5141A7D5B317F9EC5441078E57471D2D5141C643ADE2F6EC5441F5D3D9BB192D514127CD992AF4EC5441779F4F65182D5141EE363810F3EC5441D989F84D162D5141E0299336F1EC5441F3F47BE7142D5141FEF066F9EFEC54410414970D132D514186431F56EEEC54413D8C9F95112D514145CF7B09EDEC54418B835DFC0D2D5141E25E9027EAEC544166C937270A2D51418C87BD18E7EC5441026143BC072D514177DAAB23E5EC54418835974A052D5141387E9727E3EC54413D93D4DBFE2C5141D49C55EEDDEC5441E17A52F5FB2C514174CB6093DBEC5441F9BD83ADF92C5141D08F4BB9D9EC5441D7A3700DFA2C514114AE4741DBEC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>944087 - 5181184
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000020000000A000000A4703D7A2CC05041E17A145EC9355441295C8F0226C050419A999959C8355441A4703D9A1EC05041000000F0C635544152B81E8518C05041713D0AF710365441E17A14FE1FC05041AE47E1CA1136544148E17AF42BC05041F6285C1F13365441D7A3705D31C05041295C8FB2133654411F85EBA137C0504185EB51F8C9355441713D0AE736C0504148E17AF4C9355441A4703D7A2CC05041E17A145EC93554410B0000007B14AE1725C05041EC51B81ED8355441E17A142E24C050419A9999C9E23554410000008022C050418FC2F538F535544185EB51C821C05041F6285CFFFC355441EC51B81E20C0504152B81E1511365441F6285C8F1FC05041D7A370FD10365441CDCCCC6C21C0504133333313FA355441A4703DAA23C05041C3F5288CE0355441000000A025C0504166666666C93554413D0AD72326C0504166666696C93554417B14AE1725C05041EC51B81ED8355441
+</a>
+
+<b>
+0106000000010000000103000000010000000900000052B81E8518C05041713D0AF710365441E17A14FE1FC05041AE47E1CA1136544130E6BC7021C05041BE45111F00365441B175232426C050416EFBE15EC835544120EFFAC61EC05041C70288F8C635544166642D141EC05041E5969E4FCD355441F2DCECF61BC05041D163F70AE735544111ED6CD719C05041C03BABE10036544152B81E8518C05041713D0AF710365441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>403503 - 1970941
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000C0000001F85EBB1ED235141666666F6EBF95441B81E852BED2351410AD7A370E9F954419A999989E3235141295C8FB2EBF9544114AE4701D12351419A999959EEF954419A9999A9CB23514133333323F0F95441C3F5286CC323514148E17A24F4F95441666666B6B8235141D7A3708DF8F95441EC51B87EAF235141A4703D7AFAF95441CDCCCC9CA02351418FC2F54804FA5441CDCCCC6CAB2351413333339313FA54418FC2F568CC235141666666D6FDF954411F85EBB1ED235141666666F6EBF95441
+</a>
+
+<b>
+0106000000010000000103000000010000007C000000BCC89FA8392351413696DB28EBF954419374B1FD3623514127668772EAF95441438B9EF83523514183A09731EAF9544176F08E81302351417DC5B192E9F95441B9D7092A2E2351418BA99A4EE9F954411B98F1652223514118BA55B7E7F95441F41D7113202351414A674E62E7F954415CA0D789122351414529F17FE5F95441F3B2F8B711235141E02A6263E5F95441322E71280A2351414F4C7F46E3F95441EF1E1F8F0223514141090026E1F954414E18DA2401235141A4F9E5B6E0F95441CDFDF34600235141AC626B63E0F95441B4715475FC22514112A4A2F3DEF954410623148DFA225141B13DF43BDEF954419072E8CFF4225141D96CE631DAF9544135939925F222514109DC4A85DAF95441BACBD24AEB225141B4F526C1DBF954411F0977F3E6225141307059E8DEF95441940024A9E5225141CAD42DABE0F954410E057E12E6225141F1FC5483E2F9544199649BDDE62251418749B176E8F95441AF4B7539E7225141AD8E9327EBF9544105B4D2D4E7225141311DD0B4EFF95441F12A5FDAE72251412BB85C27F0F954414C77DCECE72251410B2903A7F2F954414F00B029E822514158F552DFFAF954418C23C1E5E8225141051700AD01FA5441CF04C214EA225141E6ADFAF805FA5441E53BB08BEB2251414DCAC8EA09FA544103B947ABED22514171E278350FFA5441B1E2D88FEE225141B788689C11FA54417A7A574FF82251415B632A2A10FA544113D89FA9FD225141AA2E501511FA54417509FA1FFF225141E272BD4210FA544116183BAA062351411BB72A700FFA5441813BEDEC0C235141779C9FB30DFA5441D7A370AD24235141AE47E1BA06FA54410AD7A3002D2351410AD7A3A006FA5441AE47E15A2D235141295C8F4208FA5441295C8F722F235141B81E857B08FA5441184E577C3A2351418F4B4FFD07FA54418FC2F5F83C235141B81E85BB08FA54415C8FC2F5412351418FC2F5280AFA54411F85EB414B2351410AD7A3600AFA5441CDCCCC4C4F2351410AD7A3D00BFA54416F0A3A3057235141D1558B3B10FA5441BB4B98AA57235141E5E33E4110FA5441D992856B592351419157582110FA544100000040672351415C8FC2250FFA5441295C8F726D23514185EB51480FFA54410000004070235141713D0A970FFA5441D7A3705D722351411F85EBD10FFA544148E17AB476235141AE47E12A11FA5441BAA5F9CF7A235141B89216BA11FA54410A48192285235141C488B62113FA5441E82D94FA86235141059F036213FA54415CD8F46A89235141A8C7FCB613FA5441C542043E8C2351412704641914FA544100417FD28C23514135A05F0714FA54419D074F698F23514196485BA813FA5441FA9D99C1902351415B8811A112FA54412B62923492235141AFAEDF8411FA5441B4BE17A892235141400DB30011FA54410EDAAEAA942351417FC0BFA30EFA54415E642EA499235141E809F5E008FA5441AC2908069C23514101AB104F07FA5441F65A4451A12351416C7608D203FA544136D83B2DA923514192F527A4FEF954415808A9EEAF235141E7B7DC62FAF95441CC1BA17BB32351417A0808A5F9F95441BB382CD5B8235141C3D4C480F8F9544106E9DA9FBF235141E140D7B4F5F95441CE0A43D3C3235141F2335EF2F3F95441BED7DF60C723514129AE4138F2F95441E1035C5FCB2351419DBE4847F0F954414539C228CD235141799700A3EFF95441EB5A346AD1235141211D954AEEF954411410539EDB235141F6BDB7D4ECF95441AC121DA5E3235141B8A11CACEBF95441BB869331E7235141D6B233D7EAF95441356FFB2EED23514167BE7A60E9F95441000000F0ED235141B81E85DBE5F95441CDCCCCDCED2351415C8FC2D5E4F9544154EB3E30EA235141CAA0EEF8E3F954418CB95C53E0235141A39B1099E4F9544154108662CB235141701E0FEDE5F954419DCDABEDC9235141BEBFB404E6F95441266E6B79C12351417797828AE6F95441B67C03B0B6235141314F3A42E6F95441F60CDDB2AE23514189CE5C0CE6F95441E47FF4EC972351417AF9ED2FE5F9544141170A6291235141AB8F99F0E4F95441842378FD8C235141DF7B649EE4F95441F1DE3C858C2351415EA360A2E4F95441B063D57B8B235141447B2D29E5F95441E1194E0F8B23514152A8DA8EE5F95441425292AE8623514128D15980EAF95441FEEAFE30862351410AA5250EEBF954418CF180EF84235141156C2A79ECF9544159C0232583235141436F4BEEEFF95441E3E4CE1382235141B8A9D80BF2F95441D8E0960B812351410FEF9ADAF2F954414A5709E87E23514190D33862F4F95441328561107E2351412D9344C4F4F95441B8292A1C7B23514159AA0E8FF5F95441BD8A7042722351413462CDE8F7F954411A68E2BE6B2351419B077064F6F954411FFDD90D6A235141C84B2F60F6F954411239548564235141EF3EEB4CF6F95441333333136023514114AE4771F5F954417466ABD55B2351414AF3B604F6F954411B4CC011592351417ADDDC64F6F954410C3CB8D35723514182C4F482F6F95441720D58D05623514146B4517EF6F954410D885414542351414E02CE71F6F954411CF0EF7951235141F42EE465F6F95441FD1A6FFE4E235141C1FA593EF6F9544136E66E6A492351410041706BF4F9544149725A57472351411D9DCABDF3F95441B0D322CE462351412B458D7DF3F95441C1DA1880422351410C04B4F8F0F954410BA4DDF93B235141DDBB6CCBEBF95441BCC89FA8392351413696DB28EBF95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>403503 - 3201137
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000000C0000001F85EBB1ED235141666666F6EBF95441B81E852BED2351410AD7A370E9F954419A999989E3235141295C8FB2EBF9544114AE4701D12351419A999959EEF954419A9999A9CB23514133333323F0F95441C3F5286CC323514148E17A24F4F95441666666B6B8235141D7A3708DF8F95441EC51B87EAF235141A4703D7AFAF95441CDCCCC9CA02351418FC2F54804FA5441CDCCCC6CAB2351413333339313FA54418FC2F568CC235141666666D6FDF954411F85EBB1ED235141666666F6EBF95441
+</a>
+
+<b>
+0106000000010000000103000000010000007C000000BCC89FA8392351413696DB28EBF954419374B1FD3623514127668772EAF95441438B9EF83523514183A09731EAF9544176F08E81302351417DC5B192E9F95441B9D7092A2E2351418BA99A4EE9F954411B98F1652223514118BA55B7E7F95441F41D7113202351414A674E62E7F954415CA0D789122351414529F17FE5F95441F3B2F8B711235141E02A6263E5F95441322E71280A2351414F4C7F46E3F95441EF1E1F8F0223514141090026E1F954414E18DA2401235141A4F9E5B6E0F95441CDFDF34600235141AC626B63E0F95441B4715475FC22514112A4A2F3DEF954410623148DFA225141B13DF43BDEF954419072E8CFF4225141D96CE631DAF9544135939925F222514109DC4A85DAF95441BACBD24AEB225141B4F526C1DBF954411F0977F3E6225141307059E8DEF95441940024A9E5225141CAD42DABE0F954410E057E12E6225141F1FC5483E2F9544199649BDDE62251418749B176E8F95441AF4B7539E7225141AD8E9327EBF9544105B4D2D4E7225141311DD0B4EFF95441F12A5FDAE72251412BB85C27F0F954414C77DCECE72251410B2903A7F2F954414F00B029E822514158F552DFFAF954418C23C1E5E8225141051700AD01FA5441CF04C214EA225141E6ADFAF805FA5441E53BB08BEB2251414DCAC8EA09FA544103B947ABED22514171E278350FFA5441B1E2D88FEE225141B788689C11FA54417A7A574FF82251415B632A2A10FA544113D89FA9FD225141AA2E501511FA54417509FA1FFF225141E272BD4210FA544116183BAA062351411BB72A700FFA5441813BEDEC0C235141779C9FB30DFA5441D7A370AD24235141AE47E1BA06FA54410AD7A3002D2351410AD7A3A006FA5441AE47E15A2D235141295C8F4208FA5441295C8F722F235141B81E857B08FA5441184E577C3A2351418F4B4FFD07FA54418FC2F5F83C235141B81E85BB08FA54415C8FC2F5412351418FC2F5280AFA54411F85EB414B2351410AD7A3600AFA5441CDCCCC4C4F2351410AD7A3D00BFA54416F0A3A3057235141D1558B3B10FA5441BB4B98AA57235141E5E33E4110FA5441D992856B592351419157582110FA544100000040672351415C8FC2250FFA5441295C8F726D23514185EB51480FFA54410000004070235141713D0A970FFA5441D7A3705D722351411F85EBD10FFA544148E17AB476235141AE47E12A11FA5441BAA5F9CF7A235141B89216BA11FA54410A48192285235141C488B62113FA5441E82D94FA86235141059F036213FA54415CD8F46A89235141A8C7FCB613FA5441C542043E8C2351412704641914FA544100417FD28C23514135A05F0714FA54419D074F698F23514196485BA813FA5441FA9D99C1902351415B8811A112FA54412B62923492235141AFAEDF8411FA5441B4BE17A892235141400DB30011FA54410EDAAEAA942351417FC0BFA30EFA54415E642EA499235141E809F5E008FA5441AC2908069C23514101AB104F07FA5441F65A4451A12351416C7608D203FA544136D83B2DA923514192F527A4FEF954415808A9EEAF235141E7B7DC62FAF95441CC1BA17BB32351417A0808A5F9F95441BB382CD5B8235141C3D4C480F8F9544106E9DA9FBF235141E140D7B4F5F95441CE0A43D3C3235141F2335EF2F3F95441BED7DF60C723514129AE4138F2F95441E1035C5FCB2351419DBE4847F0F954414539C228CD235141799700A3EFF95441EB5A346AD1235141211D954AEEF954411410539EDB235141F6BDB7D4ECF95441AC121DA5E3235141B8A11CACEBF95441BB869331E7235141D6B233D7EAF95441356FFB2EED23514167BE7A60E9F95441000000F0ED235141B81E85DBE5F95441CDCCCCDCED2351415C8FC2D5E4F9544154EB3E30EA235141CAA0EEF8E3F954418CB95C53E0235141A39B1099E4F9544154108662CB235141701E0FEDE5F954419DCDABEDC9235141BEBFB404E6F95441266E6B79C12351417797828AE6F95441B67C03B0B6235141314F3A42E6F95441F60CDDB2AE23514189CE5C0CE6F95441E47FF4EC972351417AF9ED2FE5F9544141170A6291235141AB8F99F0E4F95441842378FD8C235141DF7B649EE4F95441F1DE3C858C2351415EA360A2E4F95441B063D57B8B235141447B2D29E5F95441E1194E0F8B23514152A8DA8EE5F95441425292AE8623514128D15980EAF95441FEEAFE30862351410AA5250EEBF954418CF180EF84235141156C2A79ECF9544159C0232583235141436F4BEEEFF95441E3E4CE1382235141B8A9D80BF2F95441D8E0960B812351410FEF9ADAF2F954414A5709E87E23514190D33862F4F95441328561107E2351412D9344C4F4F95441B8292A1C7B23514159AA0E8FF5F95441BD8A7042722351413462CDE8F7F954411A68E2BE6B2351419B077064F6F954411FFDD90D6A235141C84B2F60F6F954411239548564235141EF3EEB4CF6F95441333333136023514114AE4771F5F954417466ABD55B2351414AF3B604F6F954411B4CC011592351417ADDDC64F6F954410C3CB8D35723514182C4F482F6F95441720D58D05623514146B4517EF6F954410D885414542351414E02CE71F6F954411CF0EF7951235141F42EE465F6F95441FD1A6FFE4E235141C1FA593EF6F9544136E66E6A492351410041706BF4F9544149725A57472351411D9DCABDF3F95441B0D322CE462351412B458D7DF3F95441C1DA1880422351410C04B4F8F0F954410BA4DDF93B235141DDBB6CCBEBF95441BCC89FA8392351413696DB28EBF95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>403540 - 3335992
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000002000000350000001F85EB41B00E5141000000409BE85441333333E3A70E5141713D0AC79AE8544114AE4711A00E514152B81E259AE854417B14AEA7980E5141CDCCCC1C99E854413D0AD7438C0E5141EC51B8EE96E85441B81E850B820E5141D7A370DD94E854411F85EB91780E51419A99994993E85441F6285C4F690E5141333333C391E85441C3F528EC650E5141AE47E1AA91E854417B14AE77670E51417B14AEE792E8544166666636690E5141CDCCCCCC94E85441713D0AE76C0E5141A4703D4A99E85441AE47E13A760E514148E17AC4A1E85441EC51B8BE710E5141B81E85DBA2E8544114AE4711760E51415C8FC255A9E854418FC2F578780E514114AE47F1AAE85441A4703D6A770E51419A9999F9ACE854419A999989770E514100000070AEE854415C8FC205790E51410AD7A320B1E854418FC2F5C8770E5141EC51B86EB1E85441F6285CDF770E51410AD7A380B2E85441333333137C0E514166666606C3E85441E17A14EE7E0E514133333393C3E85441000000F0900E5141333333C3C7E854419A9999E9940E514152B81EF5C7E8544152B81ED59C0E51418FC2F528C7E854419A9999799E0E5141295C8F12C6E85441B81E85AB9F0E514166666686C5E8544100000020A60E514185EB5108C8E85441D7A3706DAD0E51413D0AD753C9E8544114AE4731B00E51415C8FC245C9E8544152B81E85B30E51411F85EBF1C7E85441A4703D0AB20E5141AE47E1FAC6E854411F85EB61B60E514185EB5138C0E85441A4703DEAB40E5141A4703D8ABFE85441E17A141EB40E514148E17A24BEE854413D0AD703B50E51419A999919BBE8544100000090B60E51410AD7A340BAE85441D7A370CDB90E51413D0AD733BAE85441D7A3706DC00E51411F85EB91BCE8544152B81EF5C80E5141D7A3702DBDE85441B81E85DBCA0E5141CDCCCCECB1E8544114AE4751D20E5141EC51B86EB1E854410AD7A390D20E5141D7A3701DB0E85441B81E857BD30E51415C8FC275AAE854413D0AD743D30E5141EC51B8FEA9E854417B14AE57D40E514114AE4751A5E85441F6285C7FD40E5141295C8F22A3E85441F6285CEFD30E51411F85EB71A2E8544100000070CE0E5141000000E0A0E854415C8FC2C5C40E514152B81E659EE85441E17A14CEBD0E51418FC2F5F89CE854411F85EB41B00E5141000000409BE854410C0000008FC2F5A87B0E5141713D0A07A6E85441713D0A67800E5141713D0AE7A6E854415C8FC225820E5141D7A3704DA7E85441EC51B8FE820E514133333333A8E85441AE47E14A840E5141295C8FB2A9E8544133333363860E514148E17A74ABE8544148E17A24890E51413D0AD7D3ADE854419A999959810E514152B81E15AFE85441A4703D9A800E51419A9999C9ACE8544114AE47417F0E5141EC51B87EAAE85441F6285C8F7D0E51419A999959A8E854418FC2F5A87B0E5141713D0A07A6E85441
+</a>
+
+<b>
+0106000000010000000103000000010000004000000099F456B9C70E5141D370460CB7E85441C39D2C25CC0E514173426C49A0E854415C8FC2C5C40E514152B81E659EE85441E17A14CEBD0E51418FC2F5F89CE854411F85EB41B00E5141000000409BE854412632F9F2A70E5141DCD519C69AE85441B3CF151BA00E5141A866FD4F9AE85441DB5E6FA8980E514140CE953999E854413D0AD7438C0E5141EC51B8EE96E85441B81E850B820E5141D7A370DD94E854410A33F875780E514171A1C26C93E85441BD199D55690E5141D0993EE091E854418666AD39670E51419D58AEE891E8544190B48CFE670E5141C7A771EB92E8544148E4537A690E5141393853B194E85441ED6531506D0E51415CC7A82499E85441F69F121B760E5141DCF31152A1E854418B6A7DC2710E5141187EB646A3E854415FA48A8D760E5141661C05E6A8E8544124A88CE4780E5141711052D3AAE85441B1882211780E5141211B6EC9ACE854410C725308780E5141F2605C0FAEE854418E10FD45780E51415EB880EAB0E85441DE741986780E5141205925F0B1E85441F6285CDF770E51410AD7A380B2E85441333333137C0E514166666606C3E854412B3EFEDF7E0E5141727A7C90C3E8544149A0030D800E514135A883D1C3E85441B4B7C9D3840E5141AD3F45F2C4E854415E3FF56B8A0E514124684F3FC6E8544181D739FF900E5141356AF2C3C7E85441E00CD492940E5141DEC039EBC7E85441CDC601FE940E5141C5CFD2EFC7E8544120CE1541950E5141EB8B4FECC7E8544176E641E3960E5141CDFE33C2C7E85441286BBC2F9B0E5141541A6453C7E854414E93A7CD9C0E51419E33B629C7E8544154685F699E0E51414DDA4D1DC6E85441B81E85AB9F0E514166666686C5E85441A1C629A4A20E5141F9DBE0ADC6E85441F130DA3BA60E5141055D420DC8E8544136DA807BA90E51413FC8BDA0C8E854416E277F2FAC0E51417200751BC9E85441D7A3706DAD0E51413D0AD753C9E85441F96F45D1AF0E51414875AB47C9E8544126AA2D28B00E514152E8F045C9E85441A2166AF5B10E514151BE6191C8E8544152B81E85B30E51411F85EBF1C7E85441A4703D0AB20E5141AE47E1FAC6E85441362D3B76B30E51411D9F40C4C4E85441CF743F71B50E51414AD9F9AEC1E854411F85EB61B60E514185EB5138C0E85441A4703DEAB40E5141A4703D8ABFE85441E17A141EB40E514148E17A24BEE85441F61E27B1B40E51418741E831BCE854414B203EFFB40E51411F4E2F29BBE8544100000090B60E51410AD7A340BAE85441F3F52B73B80E514171032F39BAE8544120D9C881B90E5141F9EC0135BAE8544174B0B1B2B90E5141ECB34034BAE85441E3F29E94BC0E5141468DFC31BBE85441D7A3706DC00E51411F85EB91BCE85441B7DB289BC60E5141E69F9102BDE8544199F456B9C70E5141D370460CB7E85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>403763 - 1277859
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000002C000000B81E859BAF1251411F85EB31DCDA5441E17A142EB31251413D0AD763DFDA54410AD7A320BA1251411F85EB91DBDA544166666656C412514114AE4791D6DA5441C3F5280CC61251415C8FC225D3DA544185EB51A8C5125141000000D0D0DA5441D7A3707DC31251418FC2F578CDDA5441000000F0C5125141CDCCCC5CCEDA54413D0AD753C8125141CDCCCC5CCEDA5441000000F0C91251418FC2F538CEDA544185EB51E8C81251410AD7A3F0CBDA544152B81E75C5125141AE47E1FAC7DA5441D7A3706DC2125141CDCCCC6CC4DA544152B81E25BF125141AE47E12AC3DA544114AE4741BC1251413D0AD763C2DA5441B81E856BB61251410AD7A3A0C0DA5441A4703D2AB3125141EC51B8BEBFDA5441713D0AB7B3125141CDCCCCECC1DA5441295C8FC2B2125141E17A148EC2DA544185EB5128AC125141AE47E1EAC6DA544148E17AD48B12514152B81E95C6DA5441D7A3703D8312514166666636CADA5441713D0A677B125141A4703D5ACDDA5441AE47E15A74125141A4703DAACFDA5441B81E85EB7A125141C3F5289CD1DA54419A9999197D125141AE47E1DAD2DA544148E17A8479125141D7A370CDD4DA544152B81E6575125141B81E855BD6DA544166666606701251413D0AD723DEDA54418FC2F5386D1251413D0AD793E2DA5441C3F5289C6D12514114AE4711E5DA54415C8FC2A5701251413D0AD763E6DA54410AD7A350751251417B14AE77E6DA5441F6285CAF7A125141F6285C1FE3DA5441C3F5283C821251417B14AED7DEDA544185EB514886125141295C8F02E0DA5441A4703D8A88125141AE47E1EAEBDA5441F6285C7F8B1251418FC2F578EDDA5441B81E850B931251415C8FC215EDDA544185EB51E89A125141D7A3703DEDDA54413D0AD7F39E12514166666626ECDA5441A4703DCAA41251417B14AEC7E6DA544152B81E15AA125141E17A148EE0DA5441B81E859BAF1251411F85EB31DCDA54410103000000010000003B0000005C8FC205D11251419A9999293ADB544185EB5148CE12514185EB51E83BDB54410AD7A370D01251418FC2F5B843DB5441E17A14EED7125141713D0A9742DB544100000010DF1251418FC2F5E841DB5441B81E851BE5125141C3F5284C41DB544185EB51F8EB1251411F85EB0140DB5441295C8FB2EB12514148E17A343CDB544114AE4751F01251419A9999E93ADB54411F85EBA1F61251418FC2F5183ADB54411F85EBE1FC125141D7A370BD38DB5441F6285CDFFF125141E17A148E39DB5441000000D0031351417B14AE073ADB544148E17A6406135141713D0AA737DB5441A4703D3A081351415C8FC20536DB54415C8FC29509135141B81E85DB37DB544152B81EE50B135141EC51B8CE38DB54418FC2F5C810135141EC51B8CE38DB544152B81E4515135141F6285C0F38DB54419A9999D9171351417B14AEC733DB544114AE47911A13514185EB510833DB5441B81E851B2213514185EB510833DB5441AE47E1DA22135141D7A3702D37DB544185EB51182513514114AE47813ADB544114AE47E127135141D7A3704D3ADB5441666666E628135141D7A3702D37DB5441A4703D3A2C13514185EB512836DB5441713D0AF72F1351410AD7A39036DB5441CDCCCC2C34135141AE47E10A37DB5441F6285C9F361351415C8FC29537DB544114AE4711391351416666664635DB54418FC2F5A8381351411F85EBB132DB5441AE47E1FA37135141C3F528DC30DB54411F85EB3135135141F6285C3F30DB54415C8FC2E52F1351413D0AD70332DB5441666666962D135141EC51B8FE30DB544114AE4771291351418FC2F5E82FDB544185EB513828135141E17A149E2EDB5441713D0A7723135141C3F528BC2DDB544185EB51981F1351418FC2F5C82CDB5441B81E856B1D1351411F85EBE12ADB5441000000801A1351417B14AE9729DB54418FC2F5E813135141AE47E1FA28DB544152B81E750D135141D7A3701D29DB54418FC2F598061351411F85EB5129DB54413D0AD7E30013514114AE47112ADB5441AE47E1EAF31251415C8FC2A52CDB54419A999979EA1251413D0AD7E32EDB5441295C8F72E5125141AE47E1CA30DB5441E17A146EE4125141AE47E15A32DB544152B81EA5E112514152B81EA533DB5441AE47E19ADF1251413D0AD79333DB5441713D0AD7DD125141C3F528FC33DB54417B14AE87DB12514148E17AF435DB54415C8FC285D71251411F85EB3138DB54411F85EB51D71251413D0AD7D339DB5441C3F5287CD5125141AE47E1FA3ADB5441D7A370FDD3125141295C8F923ADB54415C8FC205D11251419A9999293ADB5441
+</a>
+
+<b>
+0106000000010000000103000000010000003600000002616D72B5125141B0885B66DDDA5441FE24A83AC112514171B92917D8DA54413AC7E7F5C312514170B9B43DD7DA5441367B3932C6125141A1517478D9DA5441AD9962F9C71251414EC66A86DDDA5441FB461253C8125141F6A77FA6DDDA5441E819A5E3C91251417DD20FBEDDDA54410F04C668CB12514106A4F3D4DDDA5441BCC019C7CF125141A9C9E3A4DADA54414CEF66AECE12514116A51C9AD9DA544105656EB6CC1251413E6322BBD7DA54417BCE9F14CC125141011E683AD4DA5441164C7CBEC8125141ECE2D18DCCDA5441B3A8D7DFC412514178BED9E4C7DA5441D110274BC2125141FADE36CBC4DA5441BA7EE8A2BE1251415C005A64C3DA5441DD7A2CF3B312514162C60A9CBFDA5441DD97D649B3125141BEBED634C2DA5441552625BFAB1251413C657B1CC7DA54413C343DC7A2125141B792FFD1C6DA54419E02777E9C125141A5BC53C1C6DA5441435359C69712514167C9CEB4C6DA544148E17AD48B12514152B81E95C6DA5441D7A3703D8312514166666636CADA544145A8299E7B125141945A7B3FCDDA5441B1892DAE741251411923EBC2CFDA5441C7FD5D0B70125141BED4C4EED0DA5441E7FD22456D1251411DCE35A2D1DA54414F849C3E6B1251417E7C3725D2DA5441618437CD68125141BF63598ED2DA5441B7AAE4DE61125141A98C729BD3DA544169DAF8F163125141A022BBA2D5DA5441565E536D64125141F9D1B9B5D5DA54416B7030F36B125141B98B9D1BD6DA5441E013687E6C125141C6D8EFA9D8DA54418BCB29F96D12514137EB179EDFDA544139F25D60701251415269DBEAE5DA5441D99A387F721251413954AC91E8DA5441804C73D173125141864FBE24EADA5441D44B55EE78125141B3278D7CEDDA5441321EBF8D821251416FF8D5F4EDDA5441E7CE9BBF8A125141D5743154EEDA544153BC72878B125141A6D0726EEEDA5441B6B04C98921251412CBBBB84EFDA5441B6C61262981251413FD2B268F0DA54414AC8BFFF9A1251412D0D82CBF0DA5441158CA881A0125141BEE8EA2EF1DA544141945346A4125141E1139E39ECDA544147A9F890A7125141C211F1E8E7DA54413CCF66CFAA12514187A69B0AE4DA54411D711D96AD12514141A70BDFE0DA544124A0D39BAF125141A0B0A4FADFDA5441E358E2AEB31251414B8C782EDEDA544102616D72B5125141B0885B66DDDA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>403763 - 3291502
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000020000000103000000010000002C000000B81E859BAF1251411F85EB31DCDA5441E17A142EB31251413D0AD763DFDA54410AD7A320BA1251411F85EB91DBDA544166666656C412514114AE4791D6DA5441C3F5280CC61251415C8FC225D3DA544185EB51A8C5125141000000D0D0DA5441D7A3707DC31251418FC2F578CDDA5441000000F0C5125141CDCCCC5CCEDA54413D0AD753C8125141CDCCCC5CCEDA5441000000F0C91251418FC2F538CEDA544185EB51E8C81251410AD7A3F0CBDA544152B81E75C5125141AE47E1FAC7DA5441D7A3706DC2125141CDCCCC6CC4DA544152B81E25BF125141AE47E12AC3DA544114AE4741BC1251413D0AD763C2DA5441B81E856BB61251410AD7A3A0C0DA5441A4703D2AB3125141EC51B8BEBFDA5441713D0AB7B3125141CDCCCCECC1DA5441295C8FC2B2125141E17A148EC2DA544185EB5128AC125141AE47E1EAC6DA544148E17AD48B12514152B81E95C6DA5441D7A3703D8312514166666636CADA5441713D0A677B125141A4703D5ACDDA5441AE47E15A74125141A4703DAACFDA5441B81E85EB7A125141C3F5289CD1DA54419A9999197D125141AE47E1DAD2DA544148E17A8479125141D7A370CDD4DA544152B81E6575125141B81E855BD6DA544166666606701251413D0AD723DEDA54418FC2F5386D1251413D0AD793E2DA5441C3F5289C6D12514114AE4711E5DA54415C8FC2A5701251413D0AD763E6DA54410AD7A350751251417B14AE77E6DA5441F6285CAF7A125141F6285C1FE3DA5441C3F5283C821251417B14AED7DEDA544185EB514886125141295C8F02E0DA5441A4703D8A88125141AE47E1EAEBDA5441F6285C7F8B1251418FC2F578EDDA5441B81E850B931251415C8FC215EDDA544185EB51E89A125141D7A3703DEDDA54413D0AD7F39E12514166666626ECDA5441A4703DCAA41251417B14AEC7E6DA544152B81E15AA125141E17A148EE0DA5441B81E859BAF1251411F85EB31DCDA54410103000000010000003B0000005C8FC205D11251419A9999293ADB544185EB5148CE12514185EB51E83BDB54410AD7A370D01251418FC2F5B843DB5441E17A14EED7125141713D0A9742DB544100000010DF1251418FC2F5E841DB5441B81E851BE5125141C3F5284C41DB544185EB51F8EB1251411F85EB0140DB5441295C8FB2EB12514148E17A343CDB544114AE4751F01251419A9999E93ADB54411F85EBA1F61251418FC2F5183ADB54411F85EBE1FC125141D7A370BD38DB5441F6285CDFFF125141E17A148E39DB5441000000D0031351417B14AE073ADB544148E17A6406135141713D0AA737DB5441A4703D3A081351415C8FC20536DB54415C8FC29509135141B81E85DB37DB544152B81EE50B135141EC51B8CE38DB54418FC2F5C810135141EC51B8CE38DB544152B81E4515135141F6285C0F38DB54419A9999D9171351417B14AEC733DB544114AE47911A13514185EB510833DB5441B81E851B2213514185EB510833DB5441AE47E1DA22135141D7A3702D37DB544185EB51182513514114AE47813ADB544114AE47E127135141D7A3704D3ADB5441666666E628135141D7A3702D37DB5441A4703D3A2C13514185EB512836DB5441713D0AF72F1351410AD7A39036DB5441CDCCCC2C34135141AE47E10A37DB5441F6285C9F361351415C8FC29537DB544114AE4711391351416666664635DB54418FC2F5A8381351411F85EBB132DB5441AE47E1FA37135141C3F528DC30DB54411F85EB3135135141F6285C3F30DB54415C8FC2E52F1351413D0AD70332DB5441666666962D135141EC51B8FE30DB544114AE4771291351418FC2F5E82FDB544185EB513828135141E17A149E2EDB5441713D0A7723135141C3F528BC2DDB544185EB51981F1351418FC2F5C82CDB5441B81E856B1D1351411F85EBE12ADB5441000000801A1351417B14AE9729DB54418FC2F5E813135141AE47E1FA28DB544152B81E750D135141D7A3701D29DB54418FC2F598061351411F85EB5129DB54413D0AD7E30013514114AE47112ADB5441AE47E1EAF31251415C8FC2A52CDB54419A999979EA1251413D0AD7E32EDB5441295C8F72E5125141AE47E1CA30DB5441E17A146EE4125141AE47E15A32DB544152B81EA5E112514152B81EA533DB5441AE47E19ADF1251413D0AD79333DB5441713D0AD7DD125141C3F528FC33DB54417B14AE87DB12514148E17AF435DB54415C8FC285D71251411F85EB3138DB54411F85EB51D71251413D0AD7D339DB5441C3F5287CD5125141AE47E1FA3ADB5441D7A370FDD3125141295C8F923ADB54415C8FC205D11251419A9999293ADB5441
+</a>
+
+<b>
+0106000000010000000103000000010000003600000002616D72B5125141B0885B66DDDA5441FE24A83AC112514171B92917D8DA54413AC7E7F5C312514170B9B43DD7DA5441367B3932C6125141A1517478D9DA5441AD9962F9C71251414EC66A86DDDA5441FB461253C8125141F6A77FA6DDDA5441E819A5E3C91251417DD20FBEDDDA54410F04C668CB12514106A4F3D4DDDA5441BCC019C7CF125141A9C9E3A4DADA54414CEF66AECE12514116A51C9AD9DA544105656EB6CC1251413E6322BBD7DA54417BCE9F14CC125141011E683AD4DA5441164C7CBEC8125141ECE2D18DCCDA5441B3A8D7DFC412514178BED9E4C7DA5441D110274BC2125141FADE36CBC4DA5441BA7EE8A2BE1251415C005A64C3DA5441DD7A2CF3B312514162C60A9CBFDA5441DD97D649B3125141BEBED634C2DA5441552625BFAB1251413C657B1CC7DA54413C343DC7A2125141B792FFD1C6DA54419E02777E9C125141A5BC53C1C6DA5441435359C69712514167C9CEB4C6DA544148E17AD48B12514152B81E95C6DA5441D7A3703D8312514166666636CADA544145A8299E7B125141945A7B3FCDDA5441B1892DAE741251411923EBC2CFDA5441C7FD5D0B70125141BED4C4EED0DA5441E7FD22456D1251411DCE35A2D1DA54414F849C3E6B1251417E7C3725D2DA5441618437CD68125141BF63598ED2DA5441B7AAE4DE61125141A98C729BD3DA544169DAF8F163125141A022BBA2D5DA5441565E536D64125141F9D1B9B5D5DA54416B7030F36B125141B98B9D1BD6DA5441E013687E6C125141C6D8EFA9D8DA54418BCB29F96D12514137EB179EDFDA544139F25D60701251415269DBEAE5DA5441D99A387F721251413954AC91E8DA5441804C73D173125141864FBE24EADA5441D44B55EE78125141B3278D7CEDDA5441321EBF8D821251416FF8D5F4EDDA5441E7CE9BBF8A125141D5743154EEDA544153BC72878B125141A6D0726EEEDA5441B6B04C98921251412CBBBB84EFDA5441B6C61262981251413FD2B268F0DA54414AC8BFFF9A1251412D0D82CBF0DA5441158CA881A0125141BEE8EA2EF1DA544141945346A4125141E1139E39ECDA544147A9F890A7125141C211F1E8E7DA54413CCF66CFAA12514187A69B0AE4DA54411D711D96AD12514141A70BDFE0DA544124A0D39BAF125141A0B0A4FADFDA5441E358E2AEB31251414B8C782EDEDA544102616D72B5125141B0885B66DDDA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>404073 - 54306
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+01060000000100000001030000000100000035000000E17A14AEAE225141666666D6EDFA54419A999949AB2251410AD7A3E0E9FA5441E17A148EA722514185EB51A8E3FA5441295C8FD2A3225141713D0AC7DDFA54411F85EBE1A0225141000000B0D8FA54415C8FC2959C2251415C8FC285D5FA54410000001098225141295C8F42D3FA54410AD7A380912251419A999939D1FA54415C8FC29589225141D7A3704DCFFA5441AE47E17A83225141D7A370EDCCFA54419A9999297E2251417B14AE57CBFA5441D7A3701D7C225141295C8F12CBFA54418FC2F5987B225141713D0AD7D0FA5441E17A147E7B225141666666F6D4FA5441295C8F927B225141D7A370ADD9FA544148E17A247C22514148E17A94DDFA5441CDCCCC5C7D225141CDCCCC0CE2FA54419A9999498022514185EB51D8E6FA54417B14AE17832251419A9999C9EAFA54418FC2F56885225141CDCCCCDCECFA54410AD7A3008A225141B81E858BEFFA54415C8FC2858C22514152B81E55F1FA54410AD7A3D08F225141E17A140EF9FA5441C3F5282C92225141B81E850B00FB544100000030932251413333330303FB54413D0AD783932251419A9999B904FB54411F85EBA1932251413D0AD76307FB54419A99994994225141713D0A9709FB544114AE473196225141AE47E14A0DFB54418FC2F598992251413333339312FB54418FC2F5E89C2251413D0AD76318FB5441EC51B84EA12251417B14AE3720FB5441666666E6A4225141D7A3703D23FB54413D0AD7F3AB225141D7A370AD23FB5441713D0A47AE22514114AE47C124FB5441713D0A77B122514185EB517824FB54419A999989B72251411F85EBD120FB5441D7A3704DBA22514114AE476122FB54411F85EB91BB2251418FC2F54823FB544185EB51B8BB225141E17A146E23FB54417B14AEC7BC2251411F85EB7124FB544114AE47D1BF22514152B81E1528FB5441C3F528CCC1225141295C8FE226FB544148E17A14C2225141D7A370AD25FB54411F85EBF1C02251416666665623FB5441295C8F92C0225141E17A144E21FB544185EB51E8C0225141D7A3708D20FB5441D7A3708DC6225141E17A148E17FB54419A999979C7225141B81E851B0FFB5441CDCCCC4CC32251419A9999F909FB544148E17A14B7225141CDCCCCBCFAFA5441E17A14BEB1225141D7A3704DF2FA5441E17A14AEAE225141666666D6EDFA5441
+</a>
+
+<b>
+01060000000100000001030000000100000085000000224CE57B7C225141A304041FCBFA54413E044E1C7C2251414A56361FCBFA5441119592197C225141447BA93DCBFA54416B02B9067C2251412024BE0FCCFA544180A031017C225141FB795C4DCCFA5441998869D17B2251414A45E261CEFA54415B6AD3CB7B22514165D524A0CEFA5441480C11977B22514102F56021D1FA54417FBA87807B225141CD6D3396D4FA544189F274887B22514196F2FB59D7FA544158D6C8947B225141AA8FABBCD9FA544104CA70AD7B225141BF487A65DAFA5441A0BEF8227C2251412235278ADDFA54419881354F7D22514150E500DBE1FA5441B69154857D22514188F73D4FE2FA54418AC17E897E2251416C03BCF9E3FA5441C91954F17F225141F2789D47E6FA5441116D84128322514130FB57C2EAFA5441901A594685225141834FCFBDECFA54417CCF7FC389225141E7B2CE67EFFA54410AD7A3008A225141B81E858BEFFA5441E87D96058A2251419B96078FEFFA5441E3D562828C225141EB0EBA52F1FA54415C8FC2858C22514152B81E55F1FA54416B63973E8D225141217FA306F3FA5441BC1F83988D2251412FE08BD9F3FA5441555C00478E225141FCC5CE72F5FA54412E2CE1008F225141C219C826F7FA5441068BFE508F2251418E76B0E2F7FA54410AD7A3D08F225141E17A140EF9FA5441D6988D89912251419DC46329FEFA544103F63FED9122514166B6FD50FFFA5441C3F5282C92225141B81E850B00FB544100000030932251413333330303FB544185BA8F4093225141EDC5CC5903FB5441ED7B27679322514110179A2304FB54413D0AD783932251419A9999B904FB5441D60F1A8F9322514149FD06B905FB544170EADAAE932251410949498F07FB54415CB2C53F94225141B8E0077609FB54415A6FBA919522514191B4C7140CFB544136A2E3D396225141F0AD26470EFB54414D85C8F797225141057FFE0B10FB54418FC2F598992251413333339312FB5441C7088AC399225141B152F2DD12FB54418FC2F5E89C2251413D0AD76318FB5441EC51B84EA12251417B14AE3720FB5441372114E8A4225141554C8B3D23FB54413D0AD7F3AB225141D7A370AD23FB54413DD6F232AE2251414E04F8B724FB5441E7756682AF2251410A4515A524FB54418DF98C59B02251413F9AD89124FB544152EF4F06B12251412631668224FB5441F0C3AF50B1225141A1CEBF7B24FB5441F76ABE87B42251411363A8A022FB54419A999989B72251411F85EBD120FB54413A315AAFB82251413257A77721FB54416D48EA1CB922514103F177B521FB5441D7A3704DBA22514114AE476122FB54411F85EB91BB2251418FC2F54823FB5441530B8FAABB2251418F08C76023FB54412E3C10B1BC2251416B78435C24FB54417B14AEC7BC2251411F85EB7124FB54410AC71930BE2251417EEF882126FB544155FA95D4BF22514179E11E1328FB5441026C9DD1C122514189693ECB26FB5441872D31DBC12251416AC84EA226FB5441D7A4F9DDC12251419C76699626FB5441F398C605C2225141A1EA1F8F25FB54410CBCE03FC1225141A9AB1FF723FB54411F85EBF1C02251416666665623FB5441819A30F0C022514167AEF54C23FB5441A1E232A9C0225141470B9BC921FB5441DA6F419DC0225141EE74708821FB5441295C8F92C0225141E17A144E21FB544185EB51E8C0225141D7A3708D20FB5441C9F17C3EC222514166F20F6C1EFB5441ABEB7B3AC32251418DA668DA1CFB54414A8A24EEC4225141567A04241AFB5441CEC1ADB4C522514124C192E718FB54411C8BDCCCC5225141F95407C118FB54412F9FD41CC6225141A91F914118FB544163B6E484C6225141D6CAB39B17FB5441A168B5C5C6225141BD65D18A15FB544110D31E06C7225141CBD2FC3C13FB544179FB1634C722514147AA099811FB5441AC34FB6FC72251413BFFB10F0FFB5441CDCCCC4CC32251419A9999F909FB5441EFBFBC9BBB2251417C6D506200FB544148E17A14B7225141CDCCCCBCFAFA5441005E0C70B622514114ABF1B8F9FA5441EEB724FDB42251417FEECA6EF7FA5441883C11AFB4225141212868F3F6FA5441A064D24AB32251413C156CC0F4FA5441FABC11B2B022514198FAB0C6F0FA544105CA67DFAE2251415780501EEEFA5441EE169556AD2251412D1C7145ECFA54411E4857F9AB2251411E6EC7ADEAFA5441641A7959AB225141C8162BF3E9FA54419A999949AB2251410AD7A3E0E9FA5441AB62A7BFAA22514139B3C2FAE8FA5441C09731A4A722514113D82BCDE3FA54412938F5DFA522514103F7B902E1FA5441CFF7AE76A522514198D7E15CE0FA5441217AA0F4A4225141AD4FFF8FDFFA54417FF53164A4225141887177ACDEFA5441295C8FD2A3225141713D0AC7DDFA54413BB11197A1225141EB419FE9D9FA5441D1A5941AA12251417C9E1812D9FA54411CFDBD49A022514198C3EC3FD8FA5441E07BDBC29D225141BBB58263D6FA5441726B135C9C22514185E8E668D5FA5441B1BF51979B2251419F267806D5FA5441764181609A22514173E9F96AD4FA5441F62EFAA599225141772DA90DD4FA5441F77081D6972251413477B930D3FA54417D699343962251415FF1BAB3D2FA54419BD8BCEB95225141F74E7B98D2FA544166A5A00F94225141D031C904D2FA544122693B659122514117E5F132D1FA5441DA5B676A8E2251412CB2B779D0FA54411134B23C8D225141993C7530D0FA54412345FA358B2251417E2881B2CFFA5441C564D1E78A22514102AC869FCFFA54415C8FC29589225141D7A3704DCFFA54410EB29C618722514135DEF871CEFA544194757C6D85225141D61369AFCDFA5441ABC08A1784225141E5AF622ACDFA5441E8E6154D8222514168C07B93CCFA54410388DD9E8022514194233F13CCFA544136CDB85B7F225141182EEDB2CBFA5441BD51A6447E225141D125BE5FCBFA5441224CE57B7C225141A304041FCBFA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>404310 - 2917974
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000004200000052B81E75272C5141D7A3708DECE85441D7A3701D282C5141A4703D0AEEE85441CDCCCCBC292C514133333313F0E854411F85EBD12C2C514148E17A84F2E8544148E17AB42C2C51410AD7A3C0F3E854418FC2F5A82E2C51415C8FC2C5F6E854410AD7A360302C514152B81E25F9E854418FC2F5F8312C51410AD7A350FBE85441CDCCCC4C332C514114AE4741FDE854417B14AEC7342C514133333373FFE854419A999959362C51419A9999B901E9544133333313382C5141295C8F1204E95441EC51B8EE392C5141C3F5286C06E95441CDCCCC0C3C2C5141295C8FC208E95441D7A3706D3E2C5141333333E30AE954417B14AE37412C51415C8FC2550DE954410AD7A340442C51417B14AEF70FE954419A9999F9472C5141CDCCCC2C13E9544152B81EF54B2C5141D7A3702D16E95441713D0A774F2C5141666666A618E9544152B81EE54F2C51410000003018E95441EC51B8FE502C5141295C8FE218E9544148E17A04522C5141A4703D2A17E9544148E17A14532C5141AE47E1FA14E95441A4703D9A532C51410AD7A31013E95441713D0A17512C5141F6285CFF11E95441C3F528DC4F2C51410000005011E95441E17A142E4E2C51411F85EB2110E954413D0AD7334C2C51411F85EBB10EE9544185EB51284A2C5141C3F5283C0DE95441713D0A47482C51417B14AEE70BE95441713D0A77462C51410AD7A3900AE9544166666676442C5141713D0AF708E95441EC51B87E422C51418FC2F55807E95441D7A3708D402C5141713D0A5705E95441A4703DDA3E2C5141295C8F8203E95441EC51B89E3C2C5141000000E000E95441CDCCCCDC3A2C5141000000A0FEE85441E17A146E392C514114AE47C1FCE854415C8FC265372C5141F6285C3FFAE854419A999909352C5141F6285C7FF7E8544185EB51E8302C5141CDCCCC8CF1E854413D0AD7632F2C51417B14AE97EFE85441E17A142E2D2C514152B81EB5F0E854418FC2F5782C2C514133333373EEE85441B81E852B2C2C5141A4703D3AE9E85441000000002C2C5141B81E85CBE5E854417B14AED72B2C5141CDCCCC9CE3E854411F85EBE12B2C5141000000D0E1E85441F6285CBF2C2C514114AE4751D8E85441C3F528DC2C2C5141A4703D6AD5E85441295C8FF22C2C514114AE47E1D3E854417B14AEF72C2C51418FC2F558D2E85441666666262C2C5141C3F5280CD1E85441AE47E19A2A2C5141CDCCCCBCCFE854410AD7A310262C5141EC51B86ECFE8544114AE4771242C514166666696D0E85441E17A145E242C514148E17AD4D4E85441EC51B84E242C5141295C8FA2D8E854411F85EB41242C51415C8FC2C5DAE8544148E17AE4242C514152B81E15DCE8544185EB5118252C51418FC2F538DEE854415C8FC225252C5141E17A14BEE1E85441CDCCCC4C252C5141295C8F72E4E854418FC2F578262C51418FC2F528EAE8544152B81E75272C5141D7A3708DECE85441
+</a>
+
+<b>
+0106000000010000000103000000010000008E000000333333D32C2C5141CDCCCCDCCEE85441652946E52C2C51414EBED5D4D0E854414184F6F62C2C51419EF7D649D2E85441C3DB4CFA2C2C5141FF88C957D2E85441C3DB4CFA2C2C5141AA0017F1D2E85441ECE593F82C2C5141CF963985D3E8544140FA21F52C2C5141BAD703D1D3E85441680469F32C2C5141F32E6C44D4E854413737CCEA2C2C514138D3F52CD5E85441DE5FE8E32C2C5141C93CDC71D5E854415A7EBDDE2C2C51410E1AF0F9D5E8544150BB67D42C2C5141056D41F0D6E8544146F811CA2C2C51418A6413F6D7E854416F0259C82C2C5141C5B96B3ED8E85441693F03BE2C2C5141E5C7D292D8E85441607CADB32C2C5141BE4757FFD8E854414833AC942C2C5141EAF11069DAE854412EEAAA752C2C51418EF53998DBE85441AA0880702C2C51411C5F20DDDBE854414F319C692C2C5141F4193F14DCE854413AABF0542C2C5141FB2DD6E9DCE8544132E89A4A2C2C5141E833066BDDE85441C28A0B2F2C2C51417F76E9BADEE854419A7EB4052C2C51416459369DE0E8544169B117FD2B2C5141C9B8D5E3E0E854410117DEEB2B2C5141A1FFCFB0E1E854417D35B3E62B2C5141DC5428F9E1E854411A13BDDE2B2C5141C1A5F92AE3E85441452B8ADC2B2C51416C05B896E3E854411A13BDDE2B2C5141AFF117C7E3E85441D10C97ED2B2C514196B90973E4E85441BA88FB032C2C51414F7E7881E5E854413E6A26092C2C51415ACB99F6E5E85441EC55980C2C2C51415C90FF2BE6E854414CF0D11D2C2C5141009848B1E7E854412BA9E0292C2C514117328B9BE8E854416DFC28472C2C5141FD9C93BDEAE85441DDAB83802C2C5141ECF24D8BEEE854410228B5B22C2C5141BA3F762BEFE85441E17A142E2D2C514152B81EB5F0E854411D30D79E2D2C514159BF3A7CF0E854419A49CC612F2C514155D2B598EFE8544142727A01312C514132A007B1F1E85441F5CB545A332C514139394D12F5E854418B52C47C342C51414BD28CB4F6E85441BB6FE90D352C5141F6686284F7E85441EAE899FA352C5141E10B3098F8E854410FF2957A372C5141BC800D59FAE85441E39BF7F1382C5141276A2928FCE85441218500133D2C514137DD536401E95441639E033F422C51411D561F1707E95441569F98A8422C51412105637B07E9544106F76844432C5141B0987BFB07E95441224768B0432C514177B5445408E954414AD5396D442C514120767FEF08E95441A6728344452C51414094B99B09E95441EF04F609462C51414F5A7C390AE9544168BECBB9462C51417449FEC10AE9544157AE0B87472C51413390BC590BE95441E2F33AFF472C5141202097B20BE954411A0FA3E5482C5141F4FFE0570CE9544168764EF8492C51415C68311A0DE9544111A797F34A2C5141D49748CD0DE95441D90CAEC14D2C51410EF51ED30FE95441627C7D37502C5141B0DCDC8211E9544152280F15512C5141A3C241FE11E95441A4703D9A532C51410AD7A31013E95441B87B14C7532C5141C138BA5311E95441998784D4532C514109A639E80CE9544140892CD0532C5141EEA839A70BE95441E8391C8E512C514148DC27BD09E95441CB31D52D4F2C5141E1C9B4ED07E95441CA02C31F4C2C5141CE19305806E95441D12B73DC492C5141E09AA2DF04E95441B5232C7C472C514117F549B902E95441981BE51B452C51418CB1DFCC00E95441AA9C57A3432C514154D0631AFFE85441BB1DCA2A422C51411DEFE767FDE854410B2F3DDA412C51412F90FB06FCE8544145F0FF58402C514134FE3596FAE85441C631717B3F2C51413BC11FC2F9E8544152B81E553F2C5141D7A3709DF9E8544148E17A14422C5141A4703DCAF4E85441D7A370ED432C5141CDCCCCECF0E85441410E88D3492C5141076B54C9F2E8544148450E564D2C51412B6987E7F3E854418FC2F5F8502C514114AE4711F5E854419C9F8953522C5141C963BAA5F5E85441027815F7532C514140376E59F6E8544152B81E55552C5141F6285CEFF6E85441CF5463D5552C5141DB77DEB6F4E854410DE1985D562C514121B02E5BF2E8544148E17AC4562C514133333393F0E854414C9F65DA562C514109596F5DF0E85441E24AAA66572C514128E45605EFE85441BBB28F1F582C51416221C43FEDE85441AE47E12A592C5141000000B0EAE85441A53B9D29592C5141F7089265EAE8544148E17A24592C51417B14AE37E9E854417B77770D592C51414D3F915EE8E854413D0AD7F3582C5141CDCCCC6CE7E85441C3B4B390582C51413D3CD33BE7E8544120C3D575522C5141330010DFE5E85441B058A0DB4F2C51417D0A3C4EE5E85441EE33BA3C4C2C514198E370A0E4E85441BE7BEE46482C51413B29C09BE3E85441B1A17CAE472C51416472CBCCE2E85441CAD74A5C452C51416ED08941E2E854413D0AD793442C5141295C8F12E2E85441AE47E15A462C5141295C8F72DBE854418289669A442C5141DDF8C71ADAE854411F526305432C51413A5052E4D8E854411F85EBA1412C51413D0AD7D3D7E854411229D513412C5141DA6B0951DBE85441045AFADD402C51414A8E4786DCE85441D5C44A4E402C514168F758BFDFE8544183F50112402C51413603DC1AE1E854410CA96821402C514144818266E4E85441E7777104402C5141227F9D57E7E85441027BB36E3F2C5141AE3F6EF2E9E85441CEBBB7BE3F2C514145AC5301EDE85441F6285CFF3F2C51415C8FC215EFE85441B4B2F7B43D2C5141A649C40DF4E854416A155CB83C2C5141A36F1634F6E8544110457D253B2C51411429C9E7F3E85441641BFEDE3A2C51416EB2FC80F3E85441666666A63A2C5141295C8F12F3E8544134B254473A2C5141B11FBB51F3E85441FF4ADBE2382C51413AC65B90F4E854417E07DA18382C51413C93A85AF4E85441189DA47E352C5141A8F77BA3F1E854413376D9D0342C5141260CD481F0E8544145F74B58332C51419318E5FFECE8544145F74B58332C51411A56ED9AE9E85441BD8A31AF332C51414ED94431E5E8544190308AD5352C5141E083B450D3E854413E8F57EE352C5141AE06D11CD2E854413DB3075D342C5141C8112581D1E854413DE30CBE332C514180BEA943D1E85441F7D39AFC302C51411E106E65D0E854416DB83ABF2F2C514100F70401D0E85441333333D32C2C5141CDCCCCDCCEE85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>404310 - 3210588
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000004200000052B81E75272C5141D7A3708DECE85441D7A3701D282C5141A4703D0AEEE85441CDCCCCBC292C514133333313F0E854411F85EBD12C2C514148E17A84F2E8544148E17AB42C2C51410AD7A3C0F3E854418FC2F5A82E2C51415C8FC2C5F6E854410AD7A360302C514152B81E25F9E854418FC2F5F8312C51410AD7A350FBE85441CDCCCC4C332C514114AE4741FDE854417B14AEC7342C514133333373FFE854419A999959362C51419A9999B901E9544133333313382C5141295C8F1204E95441EC51B8EE392C5141C3F5286C06E95441CDCCCC0C3C2C5141295C8FC208E95441D7A3706D3E2C5141333333E30AE954417B14AE37412C51415C8FC2550DE954410AD7A340442C51417B14AEF70FE954419A9999F9472C5141CDCCCC2C13E9544152B81EF54B2C5141D7A3702D16E95441713D0A774F2C5141666666A618E9544152B81EE54F2C51410000003018E95441EC51B8FE502C5141295C8FE218E9544148E17A04522C5141A4703D2A17E9544148E17A14532C5141AE47E1FA14E95441A4703D9A532C51410AD7A31013E95441713D0A17512C5141F6285CFF11E95441C3F528DC4F2C51410000005011E95441E17A142E4E2C51411F85EB2110E954413D0AD7334C2C51411F85EBB10EE9544185EB51284A2C5141C3F5283C0DE95441713D0A47482C51417B14AEE70BE95441713D0A77462C51410AD7A3900AE9544166666676442C5141713D0AF708E95441EC51B87E422C51418FC2F55807E95441D7A3708D402C5141713D0A5705E95441A4703DDA3E2C5141295C8F8203E95441EC51B89E3C2C5141000000E000E95441CDCCCCDC3A2C5141000000A0FEE85441E17A146E392C514114AE47C1FCE854415C8FC265372C5141F6285C3FFAE854419A999909352C5141F6285C7FF7E8544185EB51E8302C5141CDCCCC8CF1E854413D0AD7632F2C51417B14AE97EFE85441E17A142E2D2C514152B81EB5F0E854418FC2F5782C2C514133333373EEE85441B81E852B2C2C5141A4703D3AE9E85441000000002C2C5141B81E85CBE5E854417B14AED72B2C5141CDCCCC9CE3E854411F85EBE12B2C5141000000D0E1E85441F6285CBF2C2C514114AE4751D8E85441C3F528DC2C2C5141A4703D6AD5E85441295C8FF22C2C514114AE47E1D3E854417B14AEF72C2C51418FC2F558D2E85441666666262C2C5141C3F5280CD1E85441AE47E19A2A2C5141CDCCCCBCCFE854410AD7A310262C5141EC51B86ECFE8544114AE4771242C514166666696D0E85441E17A145E242C514148E17AD4D4E85441EC51B84E242C5141295C8FA2D8E854411F85EB41242C51415C8FC2C5DAE8544148E17AE4242C514152B81E15DCE8544185EB5118252C51418FC2F538DEE854415C8FC225252C5141E17A14BEE1E85441CDCCCC4C252C5141295C8F72E4E854418FC2F578262C51418FC2F528EAE8544152B81E75272C5141D7A3708DECE85441
+</a>
+
+<b>
+0106000000010000000103000000010000008E000000333333D32C2C5141CDCCCCDCCEE85441652946E52C2C51414EBED5D4D0E854414184F6F62C2C51419EF7D649D2E85441C3DB4CFA2C2C5141FF88C957D2E85441C3DB4CFA2C2C5141AA0017F1D2E85441ECE593F82C2C5141CF963985D3E8544140FA21F52C2C5141BAD703D1D3E85441680469F32C2C5141F32E6C44D4E854413737CCEA2C2C514138D3F52CD5E85441DE5FE8E32C2C5141C93CDC71D5E854415A7EBDDE2C2C51410E1AF0F9D5E8544150BB67D42C2C5141056D41F0D6E8544146F811CA2C2C51418A6413F6D7E854416F0259C82C2C5141C5B96B3ED8E85441693F03BE2C2C5141E5C7D292D8E85441607CADB32C2C5141BE4757FFD8E854414833AC942C2C5141EAF11069DAE854412EEAAA752C2C51418EF53998DBE85441AA0880702C2C51411C5F20DDDBE854414F319C692C2C5141F4193F14DCE854413AABF0542C2C5141FB2DD6E9DCE8544132E89A4A2C2C5141E833066BDDE85441C28A0B2F2C2C51417F76E9BADEE854419A7EB4052C2C51416459369DE0E8544169B117FD2B2C5141C9B8D5E3E0E854410117DEEB2B2C5141A1FFCFB0E1E854417D35B3E62B2C5141DC5428F9E1E854411A13BDDE2B2C5141C1A5F92AE3E85441452B8ADC2B2C51416C05B896E3E854411A13BDDE2B2C5141AFF117C7E3E85441D10C97ED2B2C514196B90973E4E85441BA88FB032C2C51414F7E7881E5E854413E6A26092C2C51415ACB99F6E5E85441EC55980C2C2C51415C90FF2BE6E854414CF0D11D2C2C5141009848B1E7E854412BA9E0292C2C514117328B9BE8E854416DFC28472C2C5141FD9C93BDEAE85441DDAB83802C2C5141ECF24D8BEEE854410228B5B22C2C5141BA3F762BEFE85441E17A142E2D2C514152B81EB5F0E854411D30D79E2D2C514159BF3A7CF0E854419A49CC612F2C514155D2B598EFE8544142727A01312C514132A007B1F1E85441F5CB545A332C514139394D12F5E854418B52C47C342C51414BD28CB4F6E85441BB6FE90D352C5141F6686284F7E85441EAE899FA352C5141E10B3098F8E854410FF2957A372C5141BC800D59FAE85441E39BF7F1382C5141276A2928FCE85441218500133D2C514137DD536401E95441639E033F422C51411D561F1707E95441569F98A8422C51412105637B07E9544106F76844432C5141B0987BFB07E95441224768B0432C514177B5445408E954414AD5396D442C514120767FEF08E95441A6728344452C51414094B99B09E95441EF04F609462C51414F5A7C390AE9544168BECBB9462C51417449FEC10AE9544157AE0B87472C51413390BC590BE95441E2F33AFF472C5141202097B20BE954411A0FA3E5482C5141F4FFE0570CE9544168764EF8492C51415C68311A0DE9544111A797F34A2C5141D49748CD0DE95441D90CAEC14D2C51410EF51ED30FE95441627C7D37502C5141B0DCDC8211E9544152280F15512C5141A3C241FE11E95441A4703D9A532C51410AD7A31013E95441B87B14C7532C5141C138BA5311E95441998784D4532C514109A639E80CE9544140892CD0532C5141EEA839A70BE95441E8391C8E512C514148DC27BD09E95441CB31D52D4F2C5141E1C9B4ED07E95441CA02C31F4C2C5141CE19305806E95441D12B73DC492C5141E09AA2DF04E95441B5232C7C472C514117F549B902E95441981BE51B452C51418CB1DFCC00E95441AA9C57A3432C514154D0631AFFE85441BB1DCA2A422C51411DEFE767FDE854410B2F3DDA412C51412F90FB06FCE8544145F0FF58402C514134FE3596FAE85441C631717B3F2C51413BC11FC2F9E8544152B81E553F2C5141D7A3709DF9E8544148E17A14422C5141A4703DCAF4E85441D7A370ED432C5141CDCCCCECF0E85441410E88D3492C5141076B54C9F2E8544148450E564D2C51412B6987E7F3E854418FC2F5F8502C514114AE4711F5E854419C9F8953522C5141C963BAA5F5E85441027815F7532C514140376E59F6E8544152B81E55552C5141F6285CEFF6E85441CF5463D5552C5141DB77DEB6F4E854410DE1985D562C514121B02E5BF2E8544148E17AC4562C514133333393F0E854414C9F65DA562C514109596F5DF0E85441E24AAA66572C514128E45605EFE85441BBB28F1F582C51416221C43FEDE85441AE47E12A592C5141000000B0EAE85441A53B9D29592C5141F7089265EAE8544148E17A24592C51417B14AE37E9E854417B77770D592C51414D3F915EE8E854413D0AD7F3582C5141CDCCCC6CE7E85441C3B4B390582C51413D3CD33BE7E8544120C3D575522C5141330010DFE5E85441B058A0DB4F2C51417D0A3C4EE5E85441EE33BA3C4C2C514198E370A0E4E85441BE7BEE46482C51413B29C09BE3E85441B1A17CAE472C51416472CBCCE2E85441CAD74A5C452C51416ED08941E2E854413D0AD793442C5141295C8F12E2E85441AE47E15A462C5141295C8F72DBE854418289669A442C5141DDF8C71ADAE854411F526305432C51413A5052E4D8E854411F85EBA1412C51413D0AD7D3D7E854411229D513412C5141DA6B0951DBE85441045AFADD402C51414A8E4786DCE85441D5C44A4E402C514168F758BFDFE8544183F50112402C51413603DC1AE1E854410CA96821402C514144818266E4E85441E7777104402C5141227F9D57E7E85441027BB36E3F2C5141AE3F6EF2E9E85441CEBBB7BE3F2C514145AC5301EDE85441F6285CFF3F2C51415C8FC215EFE85441B4B2F7B43D2C5141A649C40DF4E854416A155CB83C2C5141A36F1634F6E8544110457D253B2C51411429C9E7F3E85441641BFEDE3A2C51416EB2FC80F3E85441666666A63A2C5141295C8F12F3E8544134B254473A2C5141B11FBB51F3E85441FF4ADBE2382C51413AC65B90F4E854417E07DA18382C51413C93A85AF4E85441189DA47E352C5141A8F77BA3F1E854413376D9D0342C5141260CD481F0E8544145F74B58332C51419318E5FFECE8544145F74B58332C51411A56ED9AE9E85441BD8A31AF332C51414ED94431E5E8544190308AD5352C5141E083B450D3E854413E8F57EE352C5141AE06D11CD2E854413DB3075D342C5141C8112581D1E854413DE30CBE332C514180BEA943D1E85441F7D39AFC302C51411E106E65D0E854416DB83ABF2F2C514100F70401D0E85441333333D32C2C5141CDCCCCDCCEE85441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>405074 - 1966925
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001A000000D7A370CD482351417B14AE17BEE554417B14AEB74823514148E17A54C8E554413D0AD78348235141713D0AA7CCE554411F85EBE1472351413D0AD773D3E55441B81E858B47235141D7A3709DDAE55441AE47E17A4923514166666616DBE55441EC51B85E4C2351418FC2F528DCE554417B14AE7752235141333333D3DDE55441F6285CFF59235141E17A14DEDFE5544185EB51A85A2351419A999919DBE5544114AE47015E235141333333F3D0E55441295C8F725F235141295C8F02CBE554415C8FC295602351419A9999F9C1E554418FC2F5A861235141D7A3708DAEE5544185EB51B8612351410AD7A310A8E55441A4703D6A6C235141EC51B8BEA7E55441295C8F126D235141295C8F3299E55441EC51B8CE6C23514185EB512897E554415C8FC2E55F235141713D0AC79AE55441AE47E14A5723514114AE47319DE55441666666464A235141666666D6A0E55441E17A143E462351418FC2F5F8A1E55441000000B0462351413D0AD773A3E5544185EB51C8482351410AD7A3A0ACE554410AD7A3F04823514166666646B0E55441D7A370CD482351417B14AE17BEE55441
+</a>
+
+<b>
+0106000000010000000103000000010000009F0000007B14AE173A2351418FC2F528A5E55441B81E854B25235141D7A3709DAAE5544152B81EE5252351418FC2F5A8ADE554411F85EBE1262351410AD7A340B5E554411F85EB11272351415C8FC275B7E554411F85EB31272351413D0AD703BAE5544185EB513827235141713D0AD7BDE55441AE47E11A27235141713D0AB7C4E554418FC2F538272351411F85EBC1CEE554415C8FC2E5272351418FC2F578D6E5544114AE47E128235141B81E850BDEE5544114AE47712923514148E17A74E3E55441F6285C0F2A23514185EB5178E6E55441295C8F322B23514114AE4741E9E5544185EB51182923514100000070E9E554419A9999992A23514185EB5138ECE55441F6285C6F2D23514185EB5128F2E55441333333832F235141F6285C0FF7E5544185EB5178312351411F85EB61FCE5544185EB51C833235141D7A3701D05E65441A4703DBA342351411F85EBF10AE65441E17A145E352351413D0AD71311E65441E17A149E3523514152B81E5515E654410000009035235141B81E85BB1CE65441B81E854B3523514114AE477120E65441C3F5280C352351415C8FC2A522E65441CDCCCC6C36235141713D0A3725E65441295C8FD23823514185EB51F828E6544185EB51883C235141713D0A572FE65441A4703DEA40235141D7A3701D37E654419A999979452351411F85EB113FE65441CDCCCC8C47235141AE47E1EA42E654419A9999394A235141CDCCCCAC47E654413D0AD7534B235141713D0A574AE65441CDCCCC2C4C23514114AE47A14BE65441E17A143E4D235141EC51B89E4CE65441B81E85CB4E235141E17A142E4DE65441B81E855B52235141666666364DE654415C8FC2555423514148E17A044BE654418FC2F55854235141D7A3703D48E65441C3F5288C54235141D7A3703D46E65441713D0A67552351415C8FC27544E65441D7A370BD56235141AE47E1DA41E654411F85EBE157235141EC51B8EE3FE654413D0AD763592351415C8FC2553DE65441B81E857B5A235141C3F5285C3BE654411F85EBA15B235141CDCCCCDC39E654413D0AD7635C235141713D0AB738E654410AD7A3805D2351413333335337E65441A4703DCA602351418FC2F5F835E6544133333393632351418FC2F5B834E65441A4703DCA65235141C3F528BC33E6544114AE4771682351419A99999932E65441295C8FD2692351417B14AEE731E65441E17A14BE6A2351410AD7A37031E65441F6285C1F6C235141EC51B8BE30E6544148E17A746D235141E17A14FE2FE6544152B81E056F235141000000F02EE65441B81E858B72235141CDCCCC4C2BE65441295C8F4274235141E17A146E29E654410AD7A360772351410000000026E654418FC2F5E87B23514148E17A2422E65441E17A146E7D235141E17A14DE20E654417B14AE477F235141713D0A671FE65441295C8F2282235141F6285C5F1DE6544152B81E6585235141C3F528EC1AE654416666660688235141713D0AA718E65441CDCCCC4C89235141713D0A6717E65441333333038B2351417B14AE7715E654417B14AE678F2351418FC2F5C80FE6544114AE475190235141C3F5289C0EE65441B81E854B91235141666666060DE65441A4703D9A9223514185EB51A80AE654413D0AD783932351415C8FC28508E65441295C8F4294235141E17A140E06E65441CDCCCC1C95235141CDCCCC1C02E65441A4703D9A95235141CDCCCC4C00E654417B14AE0796235141D7A370FDFEE55441B81E853B9623514133333353FEE554410AD7A34096235141F6285CDFFDE5544185EB513896235141CDCCCC3CFDE554413D0AD7D39523514148E17A94FCE55441D7A3705D95235141713D0A17FCE55441CDCCCC9C94235141C3F5286CFBE554416666663693235141B81E857BFAE554419A999909922351415C8FC2C5F9E55441D7A370AD9023514133333303F9E55441EC51B89E8E235141A4703D2AF8E55441F6285C3F87235141A4703D1AF5E5544185EB51987F2351411F85EBD1F1E55441CDCCCCAC7B235141D7A370EDEFE5544114AE4781782351410AD7A360EEE55441AE47E18A7623514148E17A74EDE55441AE47E17A742351418FC2F568ECE55441713D0A6772235141EC51B83EEBE55441333333F36F235141B81E85FBE9E55441A4703D4A6E235141EC51B89EE8E554419A9999A96C2351413D0AD7D3E6E55441000000806B23514148E17AC4E4E55441E17A14DE6A235141D7A370BDE2E5544185EB51786A235141AE47E1FAE0E55441333333236A235141C3F5286CDEE554411F85EB116A23514152B81EE5DCE5544114AE47016A235141713D0AE7DAE554418FC2F5F869235141AE47E10AD9E5544114AE47016A235141A4703D5AD6E55441D7A3704D6A235141713D0A67D1E55441D7A370CD6A23514185EB5128CBE55441000000006B235141713D0AD7C6E5544114AE47116B2351417B14AEB7C3E55441E17A145E6B235141EC51B8CEBDE5544185EB51886B235141CDCCCCECB8E55441C3F5284C6C23514114AE4791ACE55441A4703D6A6C235141EC51B8BEA7E5544185EB51B8612351410AD7A310A8E554418FC2F5A861235141D7A3708DAEE554415C8FC295602351419A9999F9C1E55441295C8F725F235141295C8F02CBE5544114AE47015E235141333333F3D0E5544185EB51A85A2351419A999919DBE55441F6285CFF59235141E17A14DEDFE554417B14AE7752235141333333D3DDE55441EC51B85E4C2351418FC2F528DCE55441AE47E17A4923514166666616DBE55441B81E858B47235141D7A3709DDAE554415E806DC6472351411A6F49BBD5E55441D92357DC47235141F56F40EAD3E554416E8002E147235141ED342887D3E55441806E8CE147235141C806B97BD3E55441F37A38E44723514197221B5BD3E554418BF52809482351418CA4F8CDD1E55441BC0E29744823514183849C4FCDE554412A831585482351412D3B7C8CCCE5544171B397A748235141377AE0ABC9E5544137B512B948235141F332B2ACC7E55441F1E2FECC482351412FDC59F4BEE554417C291AD448235141609E307ABBE55441D90C37D6482351413147DEA5BAE5544121D021D748235141CBBFB649BAE55441C7AE01DB482351411DDC5CC4B8E55441E56BBEDC48235141C4A8C815B8E55441053104E348235141B55E739FB5E55441F7896DE848235141958BA47FB3E5544137BFACEB48235141A5B25B39B2E554417932A3EF48235141F0AB24ABB0E554413462A5EF482351415E83612FB0E55441EA3396ED48235141BEACB0FFAFE55441E98AAEEB48235141A61593D3AFE55441459A98D048235141D2D64D60ADE5544130EF79C8482351415C8542A4ACE554413F409EBB48235141A73C0369ACE55441FED544024823514178B6473DA9E5544117E7E79647235141F2221667A7E55441FD10163647235141FB2F11BFA5E554412E9E59FA46235141E74A74B9A4E55441E78F0DE1462351419091AA4AA4E55441724B30AB46235141F994D663A3E55441A8E7933F462351410CD789F8A1E554417B14AE173A2351418FC2F528A5E55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>405074 - 3820600
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001A000000D7A370CD482351417B14AE17BEE554417B14AEB74823514148E17A54C8E554413D0AD78348235141713D0AA7CCE554411F85EBE1472351413D0AD773D3E55441B81E858B47235141D7A3709DDAE55441AE47E17A4923514166666616DBE55441EC51B85E4C2351418FC2F528DCE554417B14AE7752235141333333D3DDE55441F6285CFF59235141E17A14DEDFE5544185EB51A85A2351419A999919DBE5544114AE47015E235141333333F3D0E55441295C8F725F235141295C8F02CBE554415C8FC295602351419A9999F9C1E554418FC2F5A861235141D7A3708DAEE5544185EB51B8612351410AD7A310A8E55441A4703D6A6C235141EC51B8BEA7E55441295C8F126D235141295C8F3299E55441EC51B8CE6C23514185EB512897E554415C8FC2E55F235141713D0AC79AE55441AE47E14A5723514114AE47319DE55441666666464A235141666666D6A0E55441E17A143E462351418FC2F5F8A1E55441000000B0462351413D0AD773A3E5544185EB51C8482351410AD7A3A0ACE554410AD7A3F04823514166666646B0E55441D7A370CD482351417B14AE17BEE55441
+</a>
+
+<b>
+0106000000010000000103000000010000009F0000007B14AE173A2351418FC2F528A5E55441B81E854B25235141D7A3709DAAE5544152B81EE5252351418FC2F5A8ADE554411F85EBE1262351410AD7A340B5E554411F85EB11272351415C8FC275B7E554411F85EB31272351413D0AD703BAE5544185EB513827235141713D0AD7BDE55441AE47E11A27235141713D0AB7C4E554418FC2F538272351411F85EBC1CEE554415C8FC2E5272351418FC2F578D6E5544114AE47E128235141B81E850BDEE5544114AE47712923514148E17A74E3E55441F6285C0F2A23514185EB5178E6E55441295C8F322B23514114AE4741E9E5544185EB51182923514100000070E9E554419A9999992A23514185EB5138ECE55441F6285C6F2D23514185EB5128F2E55441333333832F235141F6285C0FF7E5544185EB5178312351411F85EB61FCE5544185EB51C833235141D7A3701D05E65441A4703DBA342351411F85EBF10AE65441E17A145E352351413D0AD71311E65441E17A149E3523514152B81E5515E654410000009035235141B81E85BB1CE65441B81E854B3523514114AE477120E65441C3F5280C352351415C8FC2A522E65441CDCCCC6C36235141713D0A3725E65441295C8FD23823514185EB51F828E6544185EB51883C235141713D0A572FE65441A4703DEA40235141D7A3701D37E654419A999979452351411F85EB113FE65441CDCCCC8C47235141AE47E1EA42E654419A9999394A235141CDCCCCAC47E654413D0AD7534B235141713D0A574AE65441CDCCCC2C4C23514114AE47A14BE65441E17A143E4D235141EC51B89E4CE65441B81E85CB4E235141E17A142E4DE65441B81E855B52235141666666364DE654415C8FC2555423514148E17A044BE654418FC2F55854235141D7A3703D48E65441C3F5288C54235141D7A3703D46E65441713D0A67552351415C8FC27544E65441D7A370BD56235141AE47E1DA41E654411F85EBE157235141EC51B8EE3FE654413D0AD763592351415C8FC2553DE65441B81E857B5A235141C3F5285C3BE654411F85EBA15B235141CDCCCCDC39E654413D0AD7635C235141713D0AB738E654410AD7A3805D2351413333335337E65441A4703DCA602351418FC2F5F835E6544133333393632351418FC2F5B834E65441A4703DCA65235141C3F528BC33E6544114AE4771682351419A99999932E65441295C8FD2692351417B14AEE731E65441E17A14BE6A2351410AD7A37031E65441F6285C1F6C235141EC51B8BE30E6544148E17A746D235141E17A14FE2FE6544152B81E056F235141000000F02EE65441B81E858B72235141CDCCCC4C2BE65441295C8F4274235141E17A146E29E654410AD7A360772351410000000026E654418FC2F5E87B23514148E17A2422E65441E17A146E7D235141E17A14DE20E654417B14AE477F235141713D0A671FE65441295C8F2282235141F6285C5F1DE6544152B81E6585235141C3F528EC1AE654416666660688235141713D0AA718E65441CDCCCC4C89235141713D0A6717E65441333333038B2351417B14AE7715E654417B14AE678F2351418FC2F5C80FE6544114AE475190235141C3F5289C0EE65441B81E854B91235141666666060DE65441A4703D9A9223514185EB51A80AE654413D0AD783932351415C8FC28508E65441295C8F4294235141E17A140E06E65441CDCCCC1C95235141CDCCCC1C02E65441A4703D9A95235141CDCCCC4C00E654417B14AE0796235141D7A370FDFEE55441B81E853B9623514133333353FEE554410AD7A34096235141F6285CDFFDE5544185EB513896235141CDCCCC3CFDE554413D0AD7D39523514148E17A94FCE55441D7A3705D95235141713D0A17FCE55441CDCCCC9C94235141C3F5286CFBE554416666663693235141B81E857BFAE554419A999909922351415C8FC2C5F9E55441D7A370AD9023514133333303F9E55441EC51B89E8E235141A4703D2AF8E55441F6285C3F87235141A4703D1AF5E5544185EB51987F2351411F85EBD1F1E55441CDCCCCAC7B235141D7A370EDEFE5544114AE4781782351410AD7A360EEE55441AE47E18A7623514148E17A74EDE55441AE47E17A742351418FC2F568ECE55441713D0A6772235141EC51B83EEBE55441333333F36F235141B81E85FBE9E55441A4703D4A6E235141EC51B89EE8E554419A9999A96C2351413D0AD7D3E6E55441000000806B23514148E17AC4E4E55441E17A14DE6A235141D7A370BDE2E5544185EB51786A235141AE47E1FAE0E55441333333236A235141C3F5286CDEE554411F85EB116A23514152B81EE5DCE5544114AE47016A235141713D0AE7DAE554418FC2F5F869235141AE47E10AD9E5544114AE47016A235141A4703D5AD6E55441D7A3704D6A235141713D0A67D1E55441D7A370CD6A23514185EB5128CBE55441000000006B235141713D0AD7C6E5544114AE47116B2351417B14AEB7C3E55441E17A145E6B235141EC51B8CEBDE5544185EB51886B235141CDCCCCECB8E55441C3F5284C6C23514114AE4791ACE55441A4703D6A6C235141EC51B8BEA7E5544185EB51B8612351410AD7A310A8E554418FC2F5A861235141D7A3708DAEE554415C8FC295602351419A9999F9C1E55441295C8F725F235141295C8F02CBE5544114AE47015E235141333333F3D0E5544185EB51A85A2351419A999919DBE55441F6285CFF59235141E17A14DEDFE554417B14AE7752235141333333D3DDE55441EC51B85E4C2351418FC2F528DCE55441AE47E17A4923514166666616DBE55441B81E858B47235141D7A3709DDAE554415E806DC6472351411A6F49BBD5E55441D92357DC47235141F56F40EAD3E554416E8002E147235141ED342887D3E55441806E8CE147235141C806B97BD3E55441F37A38E44723514197221B5BD3E554418BF52809482351418CA4F8CDD1E55441BC0E29744823514183849C4FCDE554412A831585482351412D3B7C8CCCE5544171B397A748235141377AE0ABC9E5544137B512B948235141F332B2ACC7E55441F1E2FECC482351412FDC59F4BEE554417C291AD448235141609E307ABBE55441D90C37D6482351413147DEA5BAE5544121D021D748235141CBBFB649BAE55441C7AE01DB482351411DDC5CC4B8E55441E56BBEDC48235141C4A8C815B8E55441053104E348235141B55E739FB5E55441F7896DE848235141958BA47FB3E5544137BFACEB48235141A5B25B39B2E554417932A3EF48235141F0AB24ABB0E554413462A5EF482351415E83612FB0E55441EA3396ED48235141BEACB0FFAFE55441E98AAEEB48235141A61593D3AFE55441459A98D048235141D2D64D60ADE5544130EF79C8482351415C8542A4ACE554413F409EBB48235141A73C0369ACE55441FED544024823514178B6473DA9E5544117E7E79647235141F2221667A7E55441FD10163647235141FB2F11BFA5E554412E9E59FA46235141E74A74B9A4E55441E78F0DE1462351419091AA4AA4E55441724B30AB46235141F994D663A3E55441A8E7933F462351410CD789F8A1E554417B14AE173A2351418FC2F528A5E55441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>405193 - 1287131
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001A000000E17A145E291551415C8FC24559DB54417B14AE7740155141713D0A4763DB5441AE47E1AA47155141AE47E12A66DB5441295C8F124815514152B81ED564DB54419A9999494915514114AE47D160DB5441CDCCCCAC4C15514114AE47A158DB5441A4703DEA4F155141333333634EDB544114AE4721531551418FC2F5D841DB54419A9999C9541551413D0AD7833CDB544152B81EF55C155141F6285C0F2DDB54413D0AD7934C1551413333337326DB54415C8FC28546155141295C8F9223DB5441295C8FB23E155141CDCCCC8C1EDB544114AE47313A155141666666B61ADB544185EB51082F1551418FC2F54812DB5441F6285C3F1F155141E17A14BE2BDB5441295C8F922015514185EB51B82EDB54415C8FC2651D1551410AD7A37035DB5441000000301C15514152B81E0532DB54417B14AE471B1551413D0AD72334DB54418FC2F5C8131551410AD7A39048DB54413D0AD7531A155141EC51B8DE4CDB54411F85EB21181551418FC2F5D852DB54419A999949191551413333337353DB544185EB518823155141AE47E18A57DB5441E17A145E291551415C8FC24559DB5441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000539A85374F155141E982DD8327DB54419BAD2A71581551416CB4E23C2BDB54417D09269F5C15514197C1AAEC2CDB5441333333C361155141C3F5284C23DB5441AE47E1DA61155141C3F528CC22DB544148E17A245F1551415C8FC23520DB5441333333C35515514148E17A9417DB54410AD7A320451551410AD7A30009DB54411F85EB61391551415C8FC2D5FEDA5441713D0A773715514133333393FFDA5441CDCCCCEC2F155141E17A144E10DB544151CC1D142F155141715CD5CE11DB5441C87AB8113A1551417D5F919E1ADB544114AE47313A155141666666B61ADB54417ED89C4E3A1551413DF162CF1ADB54411BBEA5C23B1551414BDEA7F91BDB54415D6EA7453D1551412030F6551DDB5441295C8FB23E155141CDCCCC8C1EDB54415ECB5D4046155141C5FD046623DB5441539A85374F155141E982DD8327DB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>405193 - 3506291
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001A000000E17A145E291551415C8FC24559DB54417B14AE7740155141713D0A4763DB5441AE47E1AA47155141AE47E12A66DB5441295C8F124815514152B81ED564DB54419A9999494915514114AE47D160DB5441CDCCCCAC4C15514114AE47A158DB5441A4703DEA4F155141333333634EDB544114AE4721531551418FC2F5D841DB54419A9999C9541551413D0AD7833CDB544152B81EF55C155141F6285C0F2DDB54413D0AD7934C1551413333337326DB54415C8FC28546155141295C8F9223DB5441295C8FB23E155141CDCCCC8C1EDB544114AE47313A155141666666B61ADB544185EB51082F1551418FC2F54812DB5441F6285C3F1F155141E17A14BE2BDB5441295C8F922015514185EB51B82EDB54415C8FC2651D1551410AD7A37035DB5441000000301C15514152B81E0532DB54417B14AE471B1551413D0AD72334DB54418FC2F5C8131551410AD7A39048DB54413D0AD7531A155141EC51B8DE4CDB54411F85EB21181551418FC2F5D852DB54419A999949191551413333337353DB544185EB518823155141AE47E18A57DB5441E17A145E291551415C8FC24559DB5441
+</a>
+
+<b>
+01060000000100000001030000000100000014000000539A85374F155141E982DD8327DB54419BAD2A71581551416CB4E23C2BDB54417D09269F5C15514197C1AAEC2CDB5441333333C361155141C3F5284C23DB5441AE47E1DA61155141C3F528CC22DB544148E17A245F1551415C8FC23520DB5441333333C35515514148E17A9417DB54410AD7A320451551410AD7A30009DB54411F85EB61391551415C8FC2D5FEDA5441713D0A773715514133333393FFDA5441CDCCCCEC2F155141E17A144E10DB544151CC1D142F155141715CD5CE11DB5441C87AB8113A1551417D5F919E1ADB544114AE47313A155141666666B61ADB54417ED89C4E3A1551413DF162CF1ADB54411BBEA5C23B1551414BDEA7F91BDB54415D6EA7453D1551412030F6551DDB5441295C8FB23E155141CDCCCC8C1EDB54415ECB5D4046155141C5FD046623DB5441539A85374F155141E982DD8327DB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>406251 - 1279852
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000032000000B81E85FB430F5141AE47E1DA53EA544185EB51583E0F5141AE47E18A37EA544152B81E553C0F51410000003035EA5441EC51B8EE3A0F5141D7A3701D33EA5441CDCCCCEC390F514148E17A4431EA54418FC2F5F8380F51417B14AE872FEA544152B81E05380F51415C8FC2E52CEA544114AE4711370F51418FC2F5182AEA54411F85EB81360F5141B81E85AB25EA544185EB5148360F51416666668621EA544185EB5148360F5141B81E851B1EEA5441B81E85BB360F51410AD7A3A019EA54413D0AD783370F5141713D0A1715EA544185EB51E8370F514152B81EE511EA54418FC2F558370F51410000000011EA54410AD7A3F0340F5141E17A140E11EA544185EB51F8310F51410000000011EA54413D0AD7532E0F5141666666C610EA54417B14AEB7270F51417B14AE2710EA544185EB51081D0F51410AD7A38010EA5441C3F528DC100F5141C3F5289C11EA5441D7A3705D0C0F5141F6285CFF12EA5441CDCCCCEC070F51413D0AD70316EA5441E17A14CE010F5141713D0A471AEA544152B81E95F90E5141333333631EEA5441713D0A27F40E51410000004020EA5441E17A14CEEE0E5141CDCCCC9C21EA544185EB51F8EA0E514152B81E3522EA5441CDCCCCDCE70E51413D0AD74323EA5441713D0AE7E20E5141C3F528FC24EA5441000000D0DD0E5141295C8F9226EA544148E17AB4DA0E5141AE47E12A27EA54419A999989D60E514114AE47A127EA544185EB51E8CD0E51419A99992928EA54410AD7A3A0D50E5141D7A370DD34EA54413D0AD7D3DF0E5141295C8F0244EA5441D7A370DDE70E51410AD7A3F04BEA54419A999909EB0E5141A4703D0A4EEA54419A9999C9EF0E51410AD7A33050EA5441713D0AF7F40E5141C3F528CC51EA5441CDCCCCBC050F51413333337356EA5441AE47E10A250F5141E17A14CE5EEA544166666626260F51418FC2F5185FEA5441B81E855B260F51419A99996959EA54418FC2F5A8250F5141A4703D8A54EA5441000000602A0F5141B81E85AB54EA5441CDCCCCAC330F51411F85EB8155EA5441A4703DDA3B0F514152B81EF556EA544152B81EC5440F5141A4703DFA59EA5441B81E85FB430F5141AE47E1DA53EA5441
+</a>
+
+<b>
+0106000000010000000103000000010000002F000000AD9CC76D0C0F5141C4F950FA12EA5441B34EDB680E0F5141502ECB5D12EA5441C3F528DC100F5141C3F5289C11EA544185EB51081D0F51410AD7A38010EA54417B14AEB7270F51417B14AE2710EA54413D0AD7532E0F5141666666C610EA544185EB51F8310F51410000000011EA54410AD7A3F0340F5141E17A140E11EA54418FC2F558370F51410000000011EA544185EB51E8370F514152B81EE511EA54413D0AD783370F5141713D0A1715EA5441B81E85BB360F51410AD7A3A019EA544185EB5148360F5141B81E851B1EEA544185EB5148360F51416666668621EA54411F85EB81360F5141B81E85AB25EA544114AE4711370F51418FC2F5182AEA544152B81E05380F51415C8FC2E52CEA54418FC2F5F8380F51417B14AE872FEA5441CDCCCCEC390F514148E17A4431EA5441EC51B8EE3A0F5141D7A3701D33EA54419A9999093A0F514152B81E152FEA54411F85EBC1390F51411F85EBF12BEA5441295C8F32390F51411F85EB0126EA54410AD7A340390F5141F6285CAF20EA54413D0AD7433A0F51415C8FC2E519EA54415C8FC2753A0F5141000000F018EA544148E17A64380F51418FC2F5C818EA5441E17A149E380F514114AE479116EA5441E17A14DE3A0F5141CDCCCCEC16EA5441F6285CEF3B0F51418FC2F5A811EA54411F85EB51380F5141E17A141E11EA54415C8FC295370F5141A4703D5A10EA5441295C8FB2320F5141A4703D1A10EA5441F6285C2F2C0F5141D7A370DD0FEA544114AE47C12B0F51411F85EBE10CEA5441C3F528DC130F5141CDCCCC3C0BEA54417B14AEB7120F5141AE47E16A0CEA5441C3F5289C000F5141666666960CEA5441E1A8FF67FD0E5141EEB091411AEA5441A27D4DAEFC0E5141F3AEBAD61CEA5441783A74DFFF0E5141BC1D473E1BEA54411F3D01D6010F51416E3C85411AEA5441ED24104A040F51414B0B168C18EA5441B83B96E2060F5141D40441BD16EA544143A1B4F4080F514143301A5215EA5441180426E60A0F5141771E6AFE13EA5441AD9CC76D0C0F5141C4F950FA12EA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>406251 - 3409613
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000032000000B81E85FB430F5141AE47E1DA53EA544185EB51583E0F5141AE47E18A37EA544152B81E553C0F51410000003035EA5441EC51B8EE3A0F5141D7A3701D33EA5441CDCCCCEC390F514148E17A4431EA54418FC2F5F8380F51417B14AE872FEA544152B81E05380F51415C8FC2E52CEA544114AE4711370F51418FC2F5182AEA54411F85EB81360F5141B81E85AB25EA544185EB5148360F51416666668621EA544185EB5148360F5141B81E851B1EEA5441B81E85BB360F51410AD7A3A019EA54413D0AD783370F5141713D0A1715EA544185EB51E8370F514152B81EE511EA54418FC2F558370F51410000000011EA54410AD7A3F0340F5141E17A140E11EA544185EB51F8310F51410000000011EA54413D0AD7532E0F5141666666C610EA54417B14AEB7270F51417B14AE2710EA544185EB51081D0F51410AD7A38010EA5441C3F528DC100F5141C3F5289C11EA5441D7A3705D0C0F5141F6285CFF12EA5441CDCCCCEC070F51413D0AD70316EA5441E17A14CE010F5141713D0A471AEA544152B81E95F90E5141333333631EEA5441713D0A27F40E51410000004020EA5441E17A14CEEE0E5141CDCCCC9C21EA544185EB51F8EA0E514152B81E3522EA5441CDCCCCDCE70E51413D0AD74323EA5441713D0AE7E20E5141C3F528FC24EA5441000000D0DD0E5141295C8F9226EA544148E17AB4DA0E5141AE47E12A27EA54419A999989D60E514114AE47A127EA544185EB51E8CD0E51419A99992928EA54410AD7A3A0D50E5141D7A370DD34EA54413D0AD7D3DF0E5141295C8F0244EA5441D7A370DDE70E51410AD7A3F04BEA54419A999909EB0E5141A4703D0A4EEA54419A9999C9EF0E51410AD7A33050EA5441713D0AF7F40E5141C3F528CC51EA5441CDCCCCBC050F51413333337356EA5441AE47E10A250F5141E17A14CE5EEA544166666626260F51418FC2F5185FEA5441B81E855B260F51419A99996959EA54418FC2F5A8250F5141A4703D8A54EA5441000000602A0F5141B81E85AB54EA5441CDCCCCAC330F51411F85EB8155EA5441A4703DDA3B0F514152B81EF556EA544152B81EC5440F5141A4703DFA59EA5441B81E85FB430F5141AE47E1DA53EA5441
+</a>
+
+<b>
+0106000000010000000103000000010000002F000000AD9CC76D0C0F5141C4F950FA12EA5441B34EDB680E0F5141502ECB5D12EA5441C3F528DC100F5141C3F5289C11EA544185EB51081D0F51410AD7A38010EA54417B14AEB7270F51417B14AE2710EA54413D0AD7532E0F5141666666C610EA544185EB51F8310F51410000000011EA54410AD7A3F0340F5141E17A140E11EA54418FC2F558370F51410000000011EA544185EB51E8370F514152B81EE511EA54413D0AD783370F5141713D0A1715EA5441B81E85BB360F51410AD7A3A019EA544185EB5148360F5141B81E851B1EEA544185EB5148360F51416666668621EA54411F85EB81360F5141B81E85AB25EA544114AE4711370F51418FC2F5182AEA544152B81E05380F51415C8FC2E52CEA54418FC2F5F8380F51417B14AE872FEA5441CDCCCCEC390F514148E17A4431EA5441EC51B8EE3A0F5141D7A3701D33EA54419A9999093A0F514152B81E152FEA54411F85EBC1390F51411F85EBF12BEA5441295C8F32390F51411F85EB0126EA54410AD7A340390F5141F6285CAF20EA54413D0AD7433A0F51415C8FC2E519EA54415C8FC2753A0F5141000000F018EA544148E17A64380F51418FC2F5C818EA5441E17A149E380F514114AE479116EA5441E17A14DE3A0F5141CDCCCCEC16EA5441F6285CEF3B0F51418FC2F5A811EA54411F85EB51380F5141E17A141E11EA54415C8FC295370F5141A4703D5A10EA5441295C8FB2320F5141A4703D1A10EA5441F6285C2F2C0F5141D7A370DD0FEA544114AE47C12B0F51411F85EBE10CEA5441C3F528DC130F5141CDCCCC3C0BEA54417B14AEB7120F5141AE47E16A0CEA5441C3F5289C000F5141666666960CEA5441E1A8FF67FD0E5141EEB091411AEA5441A27D4DAEFC0E5141F3AEBAD61CEA5441783A74DFFF0E5141BC1D473E1BEA54411F3D01D6010F51416E3C85411AEA5441ED24104A040F51414B0B168C18EA5441B83B96E2060F5141D40441BD16EA544143A1B4F4080F514143301A5215EA5441180426E60A0F5141771E6AFE13EA5441AD9CC76D0C0F5141C4F950FA12EA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>406888 - 59319
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000002000000010300000001000000120000003D0AD7B364A3504148E17A34A24D5541E17A147E65A350410AD7A3F0A34D554148E17A4466A350418FC2F5A8A54D554152B81ED566A35041AE47E17AA74D554185EB51A867A350419A999929AA4D55411F85EBC163A35041D7A370CDAD4D5541E17A14DE61A350418FC2F558AE4D5541A4703D8A63A35041713D0A87B04D55410AD7A3F065A3504148E17A74B04D55413333339369A350415C8FC2B5AE4D55419A9999196DA35041333333A3AE4D5541E17A141E71A350415C8FC265AD4D5541C3F528DC6EA3504166666666A44D5541333333436CA35041666666769C4D55413D0AD74368A3504114AE47E19D4D55411F85EB3166A35041D7A370FD9D4D55419A9999D962A3504152B81E35A04D55413D0AD7B364A3504148E17A34A24D5541010300000001000000120000000AD7A3907AA350410AD7A390AC4D5541EC51B8CE7BA35041AE47E13AAD4D554148E17A7479A350418FC2F5C8A34D55413333330378A35041EC51B8DE9E4D5541E17A14DE75A3504152B81EC5994D5541295C8F5275A35041E17A14DE994D55410000006074A350418FC2F5089A4D5541295C8FD273A3504114AE47219A4D55410000007073A35041333333339A4D5541A4703DAA72A35041CDCCCC5C9A4D554152B81EE571A35041713D0A879A4D55410000000071A350417B14AEB79A4D55418FC2F58873A350410AD7A370A24D5541295C8F8275A350415C8FC215A94D5541D7A3700D77A350418FC2F5A8AE4D55411F85EB4177A350418FC2F598AE4D5541E17A14FE78A35041C3F5282CAD4D55410AD7A3907AA350410AD7A390AC4D5541
+</a>
+
+<b>
+0106000000020000000103000000010000000F000000242E227A6FA35041171205DCA64D5541944F4D7F6EA350413534D04AA34D5541F946D7426CA35041D9FE86769C4D55413D0AD74368A3504114AE47E19D4D55412A54ED3466A3504177BB47FD9D4D5541F5C98E5865A35041FD2F898D9E4D55419A9999D962A3504152B81E35A04D55413D0AD7B364A3504148E17A34A24D5541E17A147E65A350410AD7A3F0A34D554148E17A4466A350418FC2F5A8A54D554152B81ED566A35041AE47E17AA74D554185EB51A867A350419A999929AA4D55416F5D62E363A3504104EB34AEAD4D554139F1917870A3504100F4E806AB4D5541242E227A6FA35041171205DCA64D55410103000000010000000C0000008FC2F58873A350410AD7A370A24D5541635EACB173A35041F74C9FF9A24D5541295C8F8275A350415C8FC215A94D55411FBA277D76A35041F20E7A9FAC4D55410B62BDA376A350410680EE2AAD4D55418C0DC05F7BA35041DD3D8293AB4D55417A43CC3C78A35041B7DDF8A29F4D55412CD17C4D77A35041FD2BAD2E9D4D5541ABDC55DE75A35041772CBAC5994D5541958CAF0171A350415C7752B79A4D55417E978ACE71A350415EA6E02C9D4D55418FC2F58873A350410AD7A370A24D5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>407189 - 203144
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001500000014AE47D15AA55041295C8F329C4C5541AE47E11A5AA55041EC51B81E9C4C554152B81E3559A55041C3F5288CA04C55411F85EB5157A55041C3F5284CAA4C5541EC51B8AE58A550410AD7A360AA4C55418FC2F5385DA5504148E17AA4AA4C5541F6285C3F60A550419A9999A9AA4C5541333333735EA550419A999969B14C5541295C8F025DA55041295C8FE2B74C55411F85EBB15EA55041666666E6B84C5541C3F528EC5EA5504114AE47D1B84C55417B14AE375FA55041E17A14DEB84C554148E17AF45FA55041295C8F62B54C55413333331362A55041EC51B82EAC4C5541C3F5286C62A55041CDCCCCACAA4C55410000002063A5504114AE4781A64C55417B14AE2764A550417B14AEC7A14C5541B81E85DB64A55041666666D69F4C55411F85EBE160A55041E17A14DE9D4C5541CDCCCC0C5FA550413D0AD7E39C4C554114AE47D15AA55041295C8F329C4C5541
+</a>
+
+<b>
+010600000001000000010300000001000000160000000000002063A5504114AE4781A64C55417B14AE2764A550417B14AEC7A14C55412A13482D64A55041D4E730B8A14C5541DD8C648B63A55041322C56709F4C554170F2F6C861A55041D7165CEF9E4C55411F85EBE160A55041E17A14DE9D4C5541CDCCCC0C5FA550413D0AD7E39C4C554114AE47D15AA55041295C8F329C4C5541C6528D235AA5504164CCA91F9C4C5541B50CE11A5AA55041EC74B91E9C4C554174F598B559A550416C8E5C129E4C5541969EA0AB59A55041819F8B439E4C55410E3B1F3559A550412650298CA04C55411883817058A550410650C883A44C55411F85EB5157A55041C3F5284CAA4C55415CD0355F57A5504148BAF04CAA4C55412DFEDE1D5DA55041EB18E6A2AA4C55418FC2F5385DA5504148E17AA4AA4C55415BFD5B3F60A55041583D9AA9AA4C55418283286C62A550416AA8CBACAA4C5541DD0D60F362A5504155922B8AA74C55410000002063A5504114AE4781A64C5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>408198 - 59907
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000D0000003D0AD7A3AE155141D7A3707D7AE45441333333C3A71551416666668674E45441713D0A17A5155141C3F5285C76E454418FC2F518A31551410AD7A38078E454415C8FC265A2155141333333F37AE45441C3F528FCA11551419A9999797DE45441295C8F12A215514152B81E2580E45441000000B0A21551410AD7A3E082E45441713D0A27B0155141E17A143E88E45441713D0A07B6155141AE47E13A89E45441CDCCCC0CB5155141B81E850B82E45441713D0AA7B4155141E17A14AE7BE454413D0AD7A3AE155141D7A3707D7AE45441
+</a>
+
+<b>
+010600000001000000010300000001000000100000002690D811A2155141590FDBF47CE454416CB09E03A2155141EB9E3B5D7EE45441BF705F37A215514188C0AEC880E454411B60F3D4A21551415BD65CEF82E4544122FC64F4AB1551418BD6E59186E45441989E85F3AF155141CB998D2988E45441B4D42F05B6155141DE30422D89E45441CDCCCC0CB5155141B81E850B82E45441DA77C9C1B415514168425E5A7DE45441F6F19D93B4155141C35B3CAA7BE454413D0AD7A3AE155141D7A3707D7AE454419C7CCAA1AE15514119AFA97B7AE454419ACD6FC7A71551415B19138A74E45441B9672135A515514120CA7F4776E45441E9BB4C1EA3155141FFF4E57A78E454412690D811A2155141590FDBF47CE45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>408830 - 422088
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000C00000048E17A4487CE50419A9999797CC95441666666668FCE50419A9999197CC954419A99993995CE50411F85EB417BC95441EC51B83EA3CE5041CDCCCCBC7BC95441C3F5281CAFCE504114AE47217BC954418FC2F5D8AFCE5041000000B06BC954413333332395CE5041295C8FC26AC9544148E17AE495CE5041C3F5283C5CC95441AE47E1FA7CCE5041295C8F825AC95441A4703D6A82CE504114AE474169C9544152B81EB586CE5041EC51B83E77C9544148E17A4487CE50419A9999797CC95441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000052DB21D786CE5041F1C15E7C78C9544148E17A4487CE50419A9999797CC95441666666668FCE50419A9999197CC954412375FDDC90CE5041C2CC6BE37BC95441B199993995CE50410985EB417BC954411D52B83EA3CE5041ACCCCCBC7BC954417C775696A8CE504170CEC6767BC95441C3F5281CAFCE504114AE47217BC954418DC2F5D8AFCE5041240000B06BC954410C33332395CE5041565C8FC26AC954419C97CD8B95CE5041C4A729E662C9544146E17AE495CE5041E9F5283C5CC95441AE47E1FA7CCE5041295C8F825AC95441AA703D6A82CE50411BAE474169C9544162B81EB586CE50411A52B83E77C9544152DB21D786CE5041F1C15E7C78C95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>102847 - 1271851
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000002000000250000008E85D7E517555141D4CD87DC2B8D5441919A50A2145551418B73F0F02F8D54412DA7FFAC12555141A1E0E9E0328D54418F6E90881155514160B1AB3E358D5441DBDE07010F555141D511F6233A8D54414F280B890D5551410E429B963C8D54419EAE628E0C555141A84FB1713F8D544149FC4A6F0A55514180A34C4C468D54419A9999790F555141F6285C2F4A8D5441AE47E13A13555141CDCCCC8C4D8D5441B81E858B19555141C3F5282C548D5441000000D01D55514152B81EE5598D5441E17A148E235551411F85EBB1628D54419D0A7F032655514102B7CC09668D5441FE2AF7E22F5551416B046CD3778D54419F6366073155514161D9128A798D54411FD929A932555141361667077A8D54414FDE75D23655514128D52D317A8D54415C36F6053D55514128D52D317A8D5441DED779C1415551415DD9128A798D54418FC2F5C83F555141E17A14CE718D5441A4703DDA3D55514152B81ED5668D544185EB51983C55514185EB51785C8D5441A4703D5A3B55514152B81E25578D54412BB9866B55555141DF697657408D5441A4703DDA48555141CDCCCC5C2D8D54412E74B15342555141C25F271C248D5441AE47E15A3D555141295C8F621B8D5441F116E5F637555141FB1E375D108D54413F59CEB4285551417CD701761B8D5441CDF883CF23555141B0DC4D9F1F8D5441011349B52455514145D483ED208D54410628C27121555141C549478F228D54415ED972C01E555141B61EEE45248D5441B78A230F1C55514191712250268D54419ADCF0481955514112FDC57E298D54418E85D7E517555141D4CD87DC2B8D54410500000066666646155551413D0AD7134D8D54413D0AD7731755514152B81E554D8D5441B81E853B17555141AE47E17A4F8D5441B81E850B15555141A4703D4A4F8D544166666646155551413D0AD7134D8D5441
+</a>
+
+<b>
+010600000001000000010300000002000000250000008D85D7E517555141D5CD87DC2B8D54418D9A50A2145551419073F0F02F8D54412AA7FFAC12555141A4E0E9E0328D54418D6E9088115551415FB1AB3E358D5441DCDE07010F555141D511F6233A8D544152280B890D55514110429B963C8D5441A1AE628E0C555141A44FB1713F8D544148FC4A6F0A5551417CA34C4C468D54419A9999790F555141F6285C2F4A8D5441AE47E13A13555141CDCCCC8C4D8D5441B81E858B19555141C3F5282C548D5441000000D01D55514152B81EE5598D5441E17A148E235551411F85EBB1628D5441A20A7F0326555141FDB6CC09668D5441FA2AF7E22F5551416B046CD3778D5441A26366073155514161D9128A798D544122D929A9325551413A1667077A8D544154DE75D23655514125D52D317A8D54415D36F6053D55514125D52D317A8D5441DDD779C14155514161D9128A798D54418FC2F5C83F555141E17A14CE718D5441A4703DDA3D55514152B81ED5668D544185EB51983C55514185EB51785C8D5441A4703D5A3B55514152B81E25578D54412DB9866B55555141DF697657408D5441A4703DDA48555141CDCCCC5C2D8D54412C74B15342555141C05F271C248D5441AE47E15A3D555141295C8F621B8D5441F116E5F637555141FB1E375D108D54413F59CEB4285551417BD701761B8D5441C8F883CF23555141ADDC4D9F1F8D5441041349B52455514140D483ED208D54410328C27121555141C149478F228D54415CD972C01E555141B71EEE45248D5441B48A230F1C5551418F712250268D544197DCF048195551410FFDC57E298D54418D85D7E517555141D5CD87DC2B8D54410500000066666646155551413D0AD7134D8D54413D0AD7731755514152B81E554D8D5441B81E853B17555141AE47E17A4F8D5441B81E850B15555141A4703D4A4F8D544166666646155551413D0AD7134D8D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>102847 - 4024556
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000002000000250000008E85D7E517555141D4CD87DC2B8D5441919A50A2145551418B73F0F02F8D54412DA7FFAC12555141A1E0E9E0328D54418F6E90881155514160B1AB3E358D5441DBDE07010F555141D511F6233A8D54414F280B890D5551410E429B963C8D54419EAE628E0C555141A84FB1713F8D544149FC4A6F0A55514180A34C4C468D54419A9999790F555141F6285C2F4A8D5441AE47E13A13555141CDCCCC8C4D8D5441B81E858B19555141C3F5282C548D5441000000D01D55514152B81EE5598D5441E17A148E235551411F85EBB1628D54419D0A7F032655514102B7CC09668D5441FE2AF7E22F5551416B046CD3778D54419F6366073155514161D9128A798D54411FD929A932555141361667077A8D54414FDE75D23655514128D52D317A8D54415C36F6053D55514128D52D317A8D5441DED779C1415551415DD9128A798D54418FC2F5C83F555141E17A14CE718D5441A4703DDA3D55514152B81ED5668D544185EB51983C55514185EB51785C8D5441A4703D5A3B55514152B81E25578D54412BB9866B55555141DF697657408D5441A4703DDA48555141CDCCCC5C2D8D54412E74B15342555141C25F271C248D5441AE47E15A3D555141295C8F621B8D5441F116E5F637555141FB1E375D108D54413F59CEB4285551417CD701761B8D5441CDF883CF23555141B0DC4D9F1F8D5441011349B52455514145D483ED208D54410628C27121555141C549478F228D54415ED972C01E555141B61EEE45248D5441B78A230F1C55514191712250268D54419ADCF0481955514112FDC57E298D54418E85D7E517555141D4CD87DC2B8D54410500000066666646155551413D0AD7134D8D54413D0AD7731755514152B81E554D8D5441B81E853B17555141AE47E17A4F8D5441B81E850B15555141A4703D4A4F8D544166666646155551413D0AD7134D8D5441
+</a>
+
+<b>
+010600000001000000010300000002000000250000008D85D7E517555141D5CD87DC2B8D54418D9A50A2145551419073F0F02F8D54412AA7FFAC12555141A4E0E9E0328D54418D6E9088115551415FB1AB3E358D5441DCDE07010F555141D511F6233A8D544152280B890D55514110429B963C8D5441A1AE628E0C555141A44FB1713F8D544148FC4A6F0A5551417CA34C4C468D54419A9999790F555141F6285C2F4A8D5441AE47E13A13555141CDCCCC8C4D8D5441B81E858B19555141C3F5282C548D5441000000D01D55514152B81EE5598D5441E17A148E235551411F85EBB1628D5441A20A7F0326555141FDB6CC09668D5441FA2AF7E22F5551416B046CD3778D5441A26366073155514161D9128A798D544122D929A9325551413A1667077A8D544154DE75D23655514125D52D317A8D54415D36F6053D55514125D52D317A8D5441DDD779C14155514161D9128A798D54418FC2F5C83F555141E17A14CE718D5441A4703DDA3D55514152B81ED5668D544185EB51983C55514185EB51785C8D5441A4703D5A3B55514152B81E25578D54412DB9866B55555141DF697657408D5441A4703DDA48555141CDCCCC5C2D8D54412C74B15342555141C05F271C248D5441AE47E15A3D555141295C8F621B8D5441F116E5F637555141FB1E375D108D54413F59CEB4285551417BD701761B8D5441C8F883CF23555141ADDC4D9F1F8D5441041349B52455514140D483ED208D54410328C27121555141C149478F228D54415CD972C01E555141B71EEE45248D5441B48A230F1C5551418F712250268D544197DCF048195551410FFDC57E298D54418D85D7E517555141D5CD87DC2B8D54410500000066666646155551413D0AD7134D8D54413D0AD7731755514152B81E554D8D5441B81E853B17555141AE47E17A4F8D5441B81E850B15555141A4703D4A4F8D544166666646155551413D0AD7134D8D5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>66868 - 67010
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000001000000310000008FC2F55877ED5041E17A14CEA4F75441666666E674ED50419A9999D9A4F75441E17A14BE71ED50419A999989A4F754419A9999096EED5041AE47E1EAA3F7544152B81E4568ED50417B14AEF7A2F75441E17A14AE62ED50418FC2F568A2F7544152B81E555DED5041B81E851BA2F754415C8FC23556ED5041C3F5284CA2F7544148E17A0452ED5041E17A14AEA2F754415C8FC24552ED504133333313A6F75441B01BB8E852ED50411C469875A9F754417888C05653ED50412A19E453ADF7544114AE472153ED5041CDCCCC7CB1F75441C3F5285C53ED50417B14AE87B4F75441C5C9266353ED50417E77F7E2B8F75441C3F5286C53ED504100000080BEF7544140CAC98F53ED5041394949A2C3F75441C67A81A753ED5041FBB9FD3DC5F7544141AC81B954ED50411E7F225AC7F75441B81E859B55ED50417B14AE17C9F7544129220FB25AED50414FE0AE4DC7F7544151CA2B4960ED50411B467A56C5F7544177E4EFE965ED5041106D2F59C3F754413C7DAE856BED50417ED9EB5BC1F754419E0DD06973ED5041008A5F8FBEF75441F88BA39578ED5041D19DCEB9BCF7544148E17A047EED5041E17A147EBAF75441B113411185ED5041F5B9DB9EB7F75441C3F528BC8AED5041295C8F52B5F754418EFEBB868BED50413FB5A5ADB5F75441EC7565BC91ED50413E86D22DB3F754413C63BE3C95ED5041BA37D621B3F75441BBC8C1C8A0ED5041FB7E622EB2F75441C5B44CECA8ED5041131D81BFB1F754411EE453CAAAED504191E65663B1F75441F6285CBFAAED5041CDCCCCFCABF75441AE47E14A92ED50410AD7A3D0AAF754412B531B2192ED50419DED9973A9F75441C90D76B28CED5041CA11064DAAF75441EE02B0278BED5041A65BEF95AAF75441B67528F484ED504178630FCBABF7544179A988337EED504138715E75ADF754410F2DF7747AED50419E1748AEAEF754418A39573775ED50418FB46504B1F7544185EB51B86FED50411F85EB91B3F754416666663673ED5041F6285CAFAEF75441F6285C4F78ED5041F6285CCFA8F754413D0AD7637BED504185EB51B8A4F754418FC2F55877ED5041E17A14CEA4F75441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000085EB51B86FED50411F85EB91B3F75441F6285CBF79ED50419A9999E9AEF75441E17A14BE7AED504166666696AEF75441AE47E17A7EED5041E17A145EADF7544148E17A1485ED5041333333C3ABF754415C8FC2658CED504185EB5158AAF75441295C8F2292ED504100000080A9F75441000000F091ED50410AD7A3D0A7F7544185EB51D88FED5041CDCCCCFC95F754411F85EB0182ED50413D0AD76396F75441295C8F327FED50413D0AD7739DF75441EC51B8BE7DED5041713D0AD7A0F754413D0AD7637BED504185EB51B8A4F75441F6285C4F78ED5041F6285CCFA8F754416666663673ED5041F6285CAFAEF7544185EB51B86FED50411F85EB91B3F75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>66868 - 1431339
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000001000000310000008FC2F55877ED5041E17A14CEA4F75441666666E674ED50419A9999D9A4F75441E17A14BE71ED50419A999989A4F754419A9999096EED5041AE47E1EAA3F7544152B81E4568ED50417B14AEF7A2F75441E17A14AE62ED50418FC2F568A2F7544152B81E555DED5041B81E851BA2F754415C8FC23556ED5041C3F5284CA2F7544148E17A0452ED5041E17A14AEA2F754415C8FC24552ED504133333313A6F75441B01BB8E852ED50411C469875A9F754417888C05653ED50412A19E453ADF7544114AE472153ED5041CDCCCC7CB1F75441C3F5285C53ED50417B14AE87B4F75441C5C9266353ED50417E77F7E2B8F75441C3F5286C53ED504100000080BEF7544140CAC98F53ED5041394949A2C3F75441C67A81A753ED5041FBB9FD3DC5F7544141AC81B954ED50411E7F225AC7F75441B81E859B55ED50417B14AE17C9F7544129220FB25AED50414FE0AE4DC7F7544151CA2B4960ED50411B467A56C5F7544177E4EFE965ED5041106D2F59C3F754413C7DAE856BED50417ED9EB5BC1F754419E0DD06973ED5041008A5F8FBEF75441F88BA39578ED5041D19DCEB9BCF7544148E17A047EED5041E17A147EBAF75441B113411185ED5041F5B9DB9EB7F75441C3F528BC8AED5041295C8F52B5F754418EFEBB868BED50413FB5A5ADB5F75441EC7565BC91ED50413E86D22DB3F754413C63BE3C95ED5041BA37D621B3F75441BBC8C1C8A0ED5041FB7E622EB2F75441C5B44CECA8ED5041131D81BFB1F754411EE453CAAAED504191E65663B1F75441F6285CBFAAED5041CDCCCCFCABF75441AE47E14A92ED50410AD7A3D0AAF754412B531B2192ED50419DED9973A9F75441C90D76B28CED5041CA11064DAAF75441EE02B0278BED5041A65BEF95AAF75441B67528F484ED504178630FCBABF7544179A988337EED504138715E75ADF754410F2DF7747AED50419E1748AEAEF754418A39573775ED50418FB46504B1F7544185EB51B86FED50411F85EB91B3F754416666663673ED5041F6285CAFAEF75441F6285C4F78ED5041F6285CCFA8F754413D0AD7637BED504185EB51B8A4F754418FC2F55877ED5041E17A14CEA4F75441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000085EB51B86FED50411F85EB91B3F75441F6285CBF79ED50419A9999E9AEF75441E17A14BE7AED504166666696AEF75441AE47E17A7EED5041E17A145EADF7544148E17A1485ED5041333333C3ABF754415C8FC2658CED504185EB5158AAF75441295C8F2292ED504100000080A9F75441000000F091ED50410AD7A3D0A7F7544185EB51D88FED5041CDCCCCFC95F754411F85EB0182ED50413D0AD76396F75441295C8F327FED50413D0AD7739DF75441EC51B8BE7DED5041713D0AD7A0F754413D0AD7637BED504185EB51B8A4F75441F6285C4F78ED5041F6285CCFA8F754416666663673ED5041F6285CAFAEF7544185EB51B86FED50411F85EB91B3F75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>66868 - 4120200
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000001000000310000008FC2F55877ED5041E17A14CEA4F75441666666E674ED50419A9999D9A4F75441E17A14BE71ED50419A999989A4F754419A9999096EED5041AE47E1EAA3F7544152B81E4568ED50417B14AEF7A2F75441E17A14AE62ED50418FC2F568A2F7544152B81E555DED5041B81E851BA2F754415C8FC23556ED5041C3F5284CA2F7544148E17A0452ED5041E17A14AEA2F754415C8FC24552ED504133333313A6F75441B01BB8E852ED50411C469875A9F754417888C05653ED50412A19E453ADF7544114AE472153ED5041CDCCCC7CB1F75441C3F5285C53ED50417B14AE87B4F75441C5C9266353ED50417E77F7E2B8F75441C3F5286C53ED504100000080BEF7544140CAC98F53ED5041394949A2C3F75441C67A81A753ED5041FBB9FD3DC5F7544141AC81B954ED50411E7F225AC7F75441B81E859B55ED50417B14AE17C9F7544129220FB25AED50414FE0AE4DC7F7544151CA2B4960ED50411B467A56C5F7544177E4EFE965ED5041106D2F59C3F754413C7DAE856BED50417ED9EB5BC1F754419E0DD06973ED5041008A5F8FBEF75441F88BA39578ED5041D19DCEB9BCF7544148E17A047EED5041E17A147EBAF75441B113411185ED5041F5B9DB9EB7F75441C3F528BC8AED5041295C8F52B5F754418EFEBB868BED50413FB5A5ADB5F75441EC7565BC91ED50413E86D22DB3F754413C63BE3C95ED5041BA37D621B3F75441BBC8C1C8A0ED5041FB7E622EB2F75441C5B44CECA8ED5041131D81BFB1F754411EE453CAAAED504191E65663B1F75441F6285CBFAAED5041CDCCCCFCABF75441AE47E14A92ED50410AD7A3D0AAF754412B531B2192ED50419DED9973A9F75441C90D76B28CED5041CA11064DAAF75441EE02B0278BED5041A65BEF95AAF75441B67528F484ED504178630FCBABF7544179A988337EED504138715E75ADF754410F2DF7747AED50419E1748AEAEF754418A39573775ED50418FB46504B1F7544185EB51B86FED50411F85EB91B3F754416666663673ED5041F6285CAFAEF75441F6285C4F78ED5041F6285CCFA8F754413D0AD7637BED504185EB51B8A4F754418FC2F55877ED5041E17A14CEA4F75441
+</a>
+
+<b>
+0106000000010000000103000000010000001000000085EB51B86FED50411F85EB91B3F75441F6285CBF79ED50419A9999E9AEF75441E17A14BE7AED504166666696AEF75441AE47E17A7EED5041E17A145EADF7544148E17A1485ED5041333333C3ABF754415C8FC2658CED504185EB5158AAF75441295C8F2292ED504100000080A9F75441000000F091ED50410AD7A3D0A7F7544185EB51D88FED5041CDCCCCFC95F754411F85EB0182ED50413D0AD76396F75441295C8F327FED50413D0AD7739DF75441EC51B8BE7DED5041713D0AD7A0F754413D0AD7637BED504185EB51B8A4F75441F6285C4F78ED5041F6285CCFA8F754416666663673ED5041F6285CAFAEF7544185EB51B86FED50411F85EB91B3F75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>410985 - 53142
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000011000000666666F611AC5041D7A3707D134555411F85EB810FAC5041D7A3703D11455541333333B30CAC50419A9999E90E45554152B81E5509AC5041666666960C4555417B14AE1703AC50418FC2F54808455541B81E85EBF8AB504148E17A4401455541F6285C4FF8AB50418FC2F5D8004555419A999909E9AB5041D7A3709D1345554100000090F3AB5041B81E855B1B455541F6285C1FF9AB5041AE47E16A2045554152B81E5505AC50413D0AD7632B455541666666960AAC50417B14AE57304555415C8FC2450FAC504148E17AC43445554185EB51181FAC504152B81E7521455541000000B01AAC5041B81E85BB1C4555410AD7A3B014AC5041CDCCCC4C16455541666666F611AC5041D7A3707D13455541
+</a>
+
+<b>
+0106000000010000000103000000010000000A00000037CC27A5F4AB50418AA4DD590545554163E52E22EDAB5041456EE5940E4555414CA22F0DE9AB50414B85089913455541D94D6478F3AB50410333274A1B45554116BD648DF3AB50414B439A591B4555419034E91B03AC5041AF91654F084555412C109DD401AC504170B2176A07455541B81E85EBF8AB504148E17A440145554163255B55F8AB5041B8A216DD0045554137CC27A5F4AB50418AA4DD5905455541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>411091 - 299140
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000002000000010300000001000000230000005C8FC295C19F5041EC51B87E374A554148E17AE4C09F50415C8FC2F5374A5541E17A143EC09F5041B81E853B384A55419A999959BF9F504152B81E55384A5541295C8FE2BE9F504166666676384A55411F85EB81BE9F504114AE47E1384A5541B81E85DBBD9F5041F6285C1F394A5541713D0A57BD9F504148E17AD4394A55417B14AE17BD9F5041C3F5283C3A4A554152B81E75BC9F5041F6285CAF3A4A5541000000E0BB9F5041713D0A373B4A55418FC2F578BB9F50413D0AD7F33B4A554166666606BB9F5041666666063D4A554185EB51C8BA9F5041D7A3708D3D4A55417B14AE97BA9F5041E17A14CE3D4A5541C3F5284CBA9F5041EC51B82E3E4A5541666666B6B99F504114AE47113E4A5541D7A3701DB99F5041295C8FF23D4A55415C8FC255B89F5041B81E851B3E4A554152B81E15B89F504114AE47813E4A55410AD7A310B89F5041A4703D3A3F4A55415C8FC245B89F5041C3F528BC3F4A5541F6285CAFB89F5041A4703D5A404A5541D7A3702DB99F50413D0AD7E3404A5541295C8FF2B99F50419A999969414A55418FC2F548BA9F5041CDCCCC0C424A5541C3F5285CBA9F5041B81E858B424A5541333333E3C29F50418FC2F5D8434A554152B81E55C39F5041295C8FE2434A554114AE4761C39F504166666626434A5541713D0A87C39F504133333353404A554185EB5138C19F50411F85EBF13D4A5541A4703DAAC09F50410AD7A3F03A4A55418FC2F588C19F504152B81ED5394A55415C8FC295C19F5041EC51B87E374A554101030000000100000028000000F6285C2FA29F504185EB51D82E4A5541D7A3700DA39F504114AE47713F4A5541F6285CCFB99F5041295C8F82424A55413D0AD7B3B99F5041D7A370ED414A5541AE47E14AB99F5041295C8F72414A55419A999999B89F5041CDCCCCCC404A5541F6285C6FB89F504133333373404A55415C8FC215B89F504166666616404A5541713D0AA7B79F5041AE47E17A3F4A5541AE47E18AB79F50413D0AD7A33E4A55419A9999E9B79F5041295C8FE23D4A55417B14AE67B89F50417B14AE873D4A5541333333F3B89F504185EB51983D4A554152B81E55B99F5041666666763D4A55413D0AD7B3B99F5041F6285C8F3D4A554166666606BA9F5041713D0A973D4A554100000040BA9F504148E17A743D4A5541C3F5286CBA9F5041C3F5283C3D4A554133333393BA9F5041713D0AF73C4A5541A4703DFABA9F504152B81E253C4A55419A999929BB9F5041295C8F923B4A554185EB5158BB9F5041000000303B4A5541D7A370ADBB9F50410AD7A3D03A4A5541EC51B81EBC9F5041D7A3706D3A4A5541AE47E16ABC9F5041CDCCCC2C3A4A5541C3F528ACBC9F50415C8FC2E5394A5541AE47E1EABC9F504133333383394A554100000060BD9F5041CDCCCCFC384A55411F85EBF1BD9F50419A9999B9384A5541B81E852BBE9F504114AE47B1384A554114AE47B1BE9F50415C8FC225384A55410AD7A390BF9F5041F6285CFF374A5541CDCCCC3CC09F5041EC51B8EE374A5541AE47E1DAC09F5041B81E859B374A554114AE4751C19F50410AD7A350374A55415C8FC275C19F50419A999919374A5541D7A3708DC09F5041295C8F22344A554148E17A94B99F504185EB5168324A5541295C8FD2AE9F504152B81EC5304A5541F6285C2FA29F504185EB51D82E4A5541
+</a>
+
+<b>
+0106000000010000000103000000010000000F0000001D470B81A29F5041AB3C25F3344A5541FE2173CBA29F5041E88CBF79394A5541179A400BBB9F5041AA47C5FA3C4A554191666606BB9F50413B6666063D4A55416A5DD383C09F504135E2B4C83D4A55412DDE5C85C09F50418ADA5FC53D4A5541A15EDA9AC09F5041F0D07AC83D4A5541F29A08ACC09F50410C26CD973D4A5541A4703DAAC09F50410AD7A3F03A4A5541903A9195C09F5041EE6788C1394A554179A32CBEC09F5041A620AD7C384A5541DFAD47B1BE9F5041928FC225384A55417E54C31EB99F504161009F5B374A55417F893A76A29F50414D203824344A55411D470B81A29F5041AB3C25F3344A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>411122 - 359634
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000E0000001F85EBB15E9E5041000000E0854A55410AD7A3D05D9E5041B81E859B8F4A5541A4703D3A5F9E504185EB51B88F4A5541EC51B84E699E5041C3F5288C934A55417B14AED76F9E504185EB5198934A554114AE4701749E50411F85EB51994A554185EB51087C9E504133333313894A5541F6285C7F759E504152B81EF5824A5541A4703DCA719E504114AE4741844A5541713D0A07709E50413D0AD7E3814A5541666666B6669E5041295C8F02814A554114AE47C15F9E5041D7A3707D7E4A5541C3F5284C5F9E50418FC2F5E8824A55411F85EBB15E9E5041000000E0854A5541
+</a>
+
+<b>
+010600000001000000010300000001000000160000000AD7A3D05D9E5041B81E859B8F4A5541A4703D3A5F9E504185EB51B88F4A554184517F925F9E50416B3A2BD88F4A55415845ACA65F9E50419D27A2DA8F4A55412D270A8E609E5041E4FAF032904A55414A3EADB7629E50414492BAFA904A554131BB5FF7639E5041C88B186E914A55411F53ED25649E504184198D80914A5541B40EDC35669E50414FEC80258C4A5541B2A4882A6A9E504100D31556814A5541666666B6669E5041295C8F02814A5541F87965B0639E5041CBD294EB7F4A5541B2AE79AD629E504189866F8C7F4A554188B8B2D4609E50416D3932E17E4A5541D88432C8609E504175FBB6DC7E4A554193FC8CD65F9E5041441BFA877E4A55419A2929B95F9E50413AB28DCC7E4A55413DF44C7A5F9E50419B031031814A5541514D5F485F9E504136549017834A5541EF170AE55E9E504136220726854A55411E7D5FB35E9E50411E8A422D864A55410AD7A3D05D9E5041B81E859B8F4A5541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>411616 - 201714
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B00000014AE4771CCA250417B14AE879D565541D7A3707DC3A250415C8FC2458E56554114AE4781BFA25041666666D68F5655418FC2F558C8A25041000000A09F56554114AE47B1C8A25041E17A145EA056554114AE47D1D1A25041A4703DFAB3565541713D0A47D6A25041F6285C4FB356554100000000D5A25041C3F5284CB05655419A999949CFA250410AD7A380A35655418FC2F5D8CCA250411F85EB619E56554114AE4771CCA250417B14AE879D565541
+</a>
+
+<b>
+0106000000010000000103000000010000000F00000079C23AA1BFA25041274ADAC98F565541158CE3E3C0A25041A315234B8F5655410B603D22C2A2504162091DCE8E5655411D2E2EFBBEA2504113BBCB3989565541E17A143EBEA25041CDCCCC6C895655410C0FA95FBDA250413E92688789565541CDCCCC9CBCA25041EC51B89E895655413D0AD7F3BAA2504114AE47D189565541D7A3703DB9A250417B14AE478A565541E68123ABB9A2504134FF69278B5655415FE781A3C4A25041B2472C87A15655415B1C5954C8A25041320EC4979F565541EE65B1D5C5A25041B3F380239B56554114AE4781BFA25041666666D68F56554179C23AA1BFA25041274ADAC98F565541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>411635 - 55718
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+010600000001000000010300000001000000100000001F85EBC1B3AB5041713D0A27FA50554133333323A3AB50415C8FC2F502515541AE47E10AA0AB50413D0AD773045155411F85EB81ACAB504152B81E65205155419A999989C9AB5041EC51B88E135155417B14AED7DBAB5041E17A14CE125155415C8FC205DEAB5041C3F5285C1251554114AE47A10AAC5041000000B0FE5055413D0AD7830DAC504114AE4731FD505541295C8F32FFAB5041E17A14FEEB5055410AD7A3A0FEAB504148E17AE4EA50554133333333FEAB504100000080EB505541000000C0FBAB5041D7A370BDE5505541C3F5284CF5AB50419A9999C9DF5055410AD7A330D6AB5041C3F5285CEB5055411F85EBC1B3AB5041713D0A27FA505541
+</a>
+
+<b>
+0106000000010000000103000000010000005600000058E06FDD79AB5041BB035EB35A5155413D0AD7D37BAB504152B81EC55A515541B32B198E7FAB5041A40F8C7D59515541BCE38D1E80AB5041E07ADF485951554165E75A7D80AB5041378784E458515541289E39CF80AB504157D4D98D585155410E93C9B282AB50411CD2F48D565155414722BEDA82AB504133FA016056515541EB4EC33A83AB5041CC8F03FE55515541295C8F4283AB50415C8FC2F5555155413333333387AB5041000000F052515541713D0A9788AB5041F6285C9F505155413333330387AB5041B81E85DB49515541666666A687AB5041D7A3703D475155410AD7A3A089AB504148E17AF444515541295C8FC290AB5041C3F528FC3D5155416666664694AB5041EC51B85E3C515541295C8FD299AB5041713D0A273B51554185EB51789BAB50419A9999093A515541D7A3700D9CAB50415C8FC2B53751554114AE47719DAB5041EC51B81E33515541AE47E14AA3AB504152B81E752D515541E17A147EA5AB5041CDCCCC6C2A51554114AE4761A8AB504152B81E452851554100000090ABAB50418FC2F5682851554114AE47B1B1AB5041666666D62D515541713D0AA7B5AB5041F6285C0F2D515541713D0AF7BDAB5041713D0AC724515541E17A147EC0AB5041F6285CBF205155413D0AD7B3C2AB5041CDCCCC4C1A515541E17A14EEC6AB5041333333E31751554148E17A54CDAB504114AE47B118515541EC51B8FED3AB5041E17A14BE16515541E17A146EDAAB5041295C8FB2175155410AD7A320DFAB50418FC2F5481A515541333333A3E1AB504148E17A541B5155415C8FC2A5E4AB5041666666461B5155413D0AD7D3E8AB5041C3F528CC185155413D0AD7A3ECAB5041E17A148E17515541A4703DFAEEAB50417B14AEE71751554100000050F2AB5041F6285C0F1B5155415EF47A37F5AB5041E91B9E561F5155411156D5C6F5AB5041F6FC962120515541A4703D4AFAAB5041D7A3703D1F515541FF5882D2FCAB50411D01354E1C515541B81E851BFDAB50419A9999F91B515541728DC8F4FEAB5041EF22DE7F1A51554166652FBDFFAB50415916EBDF19515541713D0A5700AC504152B81E65195155414151DEC300AC5041E703F4A81751554124DF876F01AC5041C0DC56EC145155419A99999901AC50410AD7A34014515541767F626003AC504198BE8FFD0E515541B81E853B04AC504148E17A740C515541CDCCCC1C06AC5041B81E858B08515541E17A142E09AC5041333333A30451554185EB51780CAC5041B81E858B01515541A4703DAA0CAC5041CDCCCC5C015155418A6CC26D0FAC50415FCB1149FF505541DD48594B0FAC504104843F04FF5055413D0AD7830DAC504114AE4731FD50554114AE47A10AAC5041000000B0FE50554103B6D673E6AB5041D12A6BA40E5155414E24AE11DEAB5041A102255F12515541A0C83384DDAB504191AE707B125155415CB8856CDDAB504191AE707B1251554199CBC1F0DBAB50419508F6C8125155417B14AED7DBAB5041E17A14CE125155419A999989C9AB5041EC51B88E135155411F85EB81ACAB504152B81E65205155415056F606ACAB5041019CC54A2051554175B152F4ABAB504117ABEF5220515541C508074A73AB50412D1207D44B515541AE47E19A5FAB5041295C8FF25A5155414589B89E5FAB5041327618FE5A5155417B14AE5760AB50419A9999295D5155414503D6D560AB50411EF90F5C5D51554111DB052462AB504167F9A5DA5D515541D1C77F0F65AB5041A15458585D51554148E17AA467AB504152B81EE55C515541A4703DAA6BAB5041F6285C0F5B51554125654FF46DAB50416146E3205B5155419404E2A171AB504170EFF13B5B5155412DA2611C75AB50415FA307E05A51554152B81E9577AB5041EC51B89E5A51554158E06FDD79AB5041BB035EB35A515541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>411664 - 55721
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000020000000333333532EAB50415C8FC24579515541EC51B85E2FAB504114AE478177515541B81E853B33AB50419A9999D9745155418FC2F5C836AB50413D0AD78374515541E17A14BE39AB5041EC51B8EE74515541EC51B8AE3CAB5041A4703D3A755155410AD7A3E03FAB5041C3F5282C765155417B14AED740AB50410AD7A3D075515541AE47E1DA43AB504148E17AF47351554114AE475145AB5041CDCCCC0C73515541333333E345AB504114AE47B1725155411F85EBC14BAB5041C3F528FC70515541B81E851B4DAB50419A9999796F515541C3F528BC4CAB50415C8FC2356A515541EC51B81E4DAB5041333333C365515541F6285C2F4DAB5041295C8F0265515541295C8F1248AB50413D0AD75364515541AE47E1FA3BAB5041C3F528EC6A515541EC51B84E32AB50415C8FC2356F515541AE47E11A26AB5041C3F528DC7051554114AE479124AB5041E17A149E72515541EC51B85E1BAB504152B81EC57651554185EB51B81AAB50411F85EB3177515541295C8F421DAB5041EC51B84E7C5155417B14AE871DAB50419A9999E97C515541B81E851B27AB504152B81E4578515541AE47E19A27AB50410AD7A300795155413D0AD7C32BAB50410000008081515541666666F62DAB50416666660686515541AE47E19A2EAB5041B81E85FB84515541666666762EAB50416666669680515541333333532EAB50415C8FC24579515541
+</a>
+
+<b>
+0106000000010000000103000000010000003B000000EB0C31A848AB5041AB5B0BE3715155411F85EBC14BAB5041C3F528FC705155411B29D1074CAB50417897FAAD705155412281EF6F4CAB5041E736853970515541E34338934CAB50417FE70D1270515541D0EED99E4CAB5041ED530B0570515541B81E851B4DAB50419A9999796F515541D216280A4DAB5041FE842E846E51554170A5C7014DAB50416D79C80D6E515541C36FE6F04CAB5041C182331F6D515541B42944C44CAB50418DF355A86A515541AB4F89C04CAB504107DC9D736A515541C3F528BC4CAB50415C8FC2356A5155411692B6D84CAB50414D51EAEB68515541D2E483034DAB5041ADE377FD665155412132A82C4DAB5041172DDA2165515541975C6FE949AB5041DD38B39264515541BF8B131648AB504125364F5464515541AA08A1A947AB5041CD32118D64515541AE47E1FA3BAB5041C3F528EC6A515541EC51B84E32AB50415C8FC2356F5155415BE9F68026AB5041B3375BCE70515541ED2C5F1626AB5041100E5BFA705155410BE897D424AB50410D8122517251554114AE479124AB5041E17A149E72515541E8A60EF620AB50410FDCE53E74515541EC51B85E1BAB504152B81EC57651554185EB51B81AAB50411F85EB3177515541295C8F421DAB5041EC51B84E7C5155417B14AE871DAB50419A9999E97C5155412C83ED521FAB50416828FD0A7C51554144E2AFD026AB50417E1C7A47785155414204A9E626AB50415E22BE5E78515541B81E851B27AB504152B81E4578515541AE47E19A27AB50410AD7A30079515541A4AFB9822BAB50412B0AFEFA8051554183565EF62DAB50419F208FF385515541AE47E19A2EAB5041B81E85FB84515541666666762EAB50416666669680515541DF3D0C672EAB504140FAA9657D515541265781572EAB504154B2B98C7B515541265781572EAB5041436ECC2A7A515541333333532EAB50415C8FC24579515541265781572EAB5041D4697A3E795155410CC02F5C2EAB5041AC283B1E79515541086F56572FAB50413C34BF8D77515541EC51B85E2FAB504114AE478177515541B81E853B33AB50419A9999D9745155418FC2F5C836AB50413D0AD78374515541E17A14BE39AB5041EC51B8EE74515541EC51B8AE3CAB5041A4703D3A755155410AD7A3E03FAB5041C3F5282C765155413D261FA340AB50414C701CE475515541DF15548441AB5041F2C70A6675515541F25A6CAF41AB5041D0276F4B75515541AE47E1DA43AB504148E17AF47351554114AE475145AB5041CDCCCC0C73515541333333E345AB504114AE47B172515541EB0C31A848AB5041AB5B0BE371515541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>412343 - 399555
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001D000000F6285C9F2AF05041F6285C6F8338544114AE47F121F050415C8FC2C5813854419A9999890FF05041EC51B83E7E385441000000100FF05041666666C6803854419A9999F90DF05041CDCCCC7C80385441A4703DBA09F05041713D0A87903854418FC2F5F807F050418FC2F5D8953854417B14AE0704F05041295C8F829F385441713D0AB7FEEF504148E17A64AB385441CDCCCC4CFBEF5041CDCCCCACB4385441F6285CAF36F0504152B81E85C43854413D0AD70337F05041CDCCCCECC3385441EC51B87E3AF0504114AE4721B9385441EC51B85E3DF0504185EB51E8AD385441E17A14FE43F0504114AE47A1963854410AD7A37040F050419A999989953854410AD7A30040F05041A4703D3A94385441A4703D5A40F05041EC51B8DE913854410AD7A3E040F05041B81E854B903854413D0AD74340F05041F6285C5F8E385441E17A14DE3EF050419A9999F98C3854411F85EB613DF050410AD7A3308C385441F6285CEF3AF05041A4703DAA8B385441CDCCCCEC38F05041A4703D3A8B385441713D0AF737F050417B14AE878A385441713D0AA736F050411F85EBD187385441E17A144E36F050415C8FC2E585385441B81E850B36F05041333333E383385441F6285C9F2AF05041F6285C6F83385441
+</a>
+
+<b>
+010600000001000000010300000001000000220000008354A3A51BF050413276DF9080385441DD4A1FB518F050415B54A5008038544126B3BBA618F050415B54A500803854414BFAA46314F05041CDCCCC4C8C3854411758359510F05041FD84BAF8963854413B40A2EE0FF05041D8E9926B9A385441719CC5F40EF05041007905539E3854413CF35C220DF05041FD5FD5B7A6385441DA1F64342CF050417735F14CB238544124B3FE9C31F05041F8D75908A73854412F406EE533F05041DC17E908A238544100DA5E0034F050414DDCA60EA2385441F9D97E3D34F0504172D851EDA03854410075CF2540F05041712597B9A3385441E17A14FE43F0504114AE47A1963854410AD7A37040F050419A999989953854410AD7A30040F05041A4703D3A94385441A4703D5A40F05041EC51B8DE913854415BFFB6DD40F05041C6A54B54903854415BFFB6DD40F05041E9AB564290385441144FEA9440F050412B4AD65D8F3854416C1F285440F05041C41593928E38544139FB37943FF05041F219BDAF8D385441E17A14DE3EF050419A9999F98C3854411F85EB613DF050410AD7A3308C385441F6285CEF3AF05041A4703DAA8B385441CDCCCCEC38F05041A4703D3A8B385441713D0AF737F050417B14AE878A385441713D0AA736F050411F85EBD187385441E17A144E36F050415C8FC2E585385441B81E850B36F05041333333E383385441F6285C9F2AF05041F6285C6F8338544114AE47F121F050415C8FC2C5813854418354A3A51BF050413276DF9080385441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>941916 - 3114712
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000F000000E3F0BD7E2AF050412F774770A119554145BDC54D43F05041C051149CA1195541BAE85EEF41F0504192FF78229C1955410053929E42F05041C1C0DE149A1955410053929E42F05041A91711589719554191BE94514AF050412427A5B8851955413F4895074CF05041484B09897E195541A845F7FF3DF05041BD54371C6E195541A33F91323FF050413DFB66D162195541D7065DF23BF05041F7903322621955416950F49634F05041DAE1FF976019554123E6C0E733F05041B74ED14E6F195541E98759D330F05041760C6F7B7C195541BB35BE592BF050411E43AAF995195541E3F0BD7E2AF050412F774770A1195541
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000600364F233F050411E5A1E6A6E195541D30451AC33F05041CA88BF636E195541C9C7125432F05041C776CD44751955412BFF527132F05041B6078A71751955410A5F977231F050413FC44EC6791955415B805DB430F05041C0DB73937D195541B332954F2DF050413439F9D88C1955416F55E5C82BF0504180171CF49319554179FD3F992AF05041D8DF4E5BA119554130DD9FE730F05041CC78987BA11955419B4C73FF42F05041510A8A9BA1195541CFFBDF2A42F050418D42858A991955418EE272E642F05041D2C0A6E09519554181D6DB7C44F0504161FF17D392195541EE32B6784AF050417F9F80838519554121408C534BF05041DAD01B9B811955416607596846F0504108EF633C7B1955417C157CF43FF05041C01DE64F721955410E4406953EF05041A2DC1FB46F19554150E2E0713EF050417E22EFA46D1955414FE2E0713EF05041675A937C6A195541BCAD1A7B3FF050412582387762195541906AADC338F05041669BA5BB611955418A4D183F35F05041E663A52661195541910B361434F0504105AAFA926B195541600364F233F050411E5A1E6A6E195541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>941916 - 3503575
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000000F000000E3F0BD7E2AF050412F774770A119554145BDC54D43F05041C051149CA1195541BAE85EEF41F0504192FF78229C1955410053929E42F05041C1C0DE149A1955410053929E42F05041A91711589719554191BE94514AF050412427A5B8851955413F4895074CF05041484B09897E195541A845F7FF3DF05041BD54371C6E195541A33F91323FF050413DFB66D162195541D7065DF23BF05041F7903322621955416950F49634F05041DAE1FF976019554123E6C0E733F05041B74ED14E6F195541E98759D330F05041760C6F7B7C195541BB35BE592BF050411E43AAF995195541E3F0BD7E2AF050412F774770A1195541
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000600364F233F050411E5A1E6A6E195541D30451AC33F05041CA88BF636E195541C9C7125432F05041C776CD44751955412BFF527132F05041B6078A71751955410A5F977231F050413FC44EC6791955415B805DB430F05041C0DB73937D195541B332954F2DF050413439F9D88C1955416F55E5C82BF0504180171CF49319554179FD3F992AF05041D8DF4E5BA119554130DD9FE730F05041CC78987BA11955419B4C73FF42F05041510A8A9BA1195541CFFBDF2A42F050418D42858A991955418EE272E642F05041D2C0A6E09519554181D6DB7C44F0504161FF17D392195541EE32B6784AF050417F9F80838519554121408C534BF05041DAD01B9B811955416607596846F0504108EF633C7B1955417C157CF43FF05041C01DE64F721955410E4406953EF05041A2DC1FB46F19554150E2E0713EF050417E22EFA46D1955414FE2E0713EF05041675A937C6A195541BCAD1A7B3FF050412582387762195541906AADC338F05041669BA5BB611955418A4D183F35F05041E663A52661195541910B361434F0504105AAFA926B195541600364F233F050411E5A1E6A6E195541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>164313 - 164648
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000030000000103000000010000001700000052B81E05C937514185EB51681209554148E17A84C937514152B81E751209554166666676CC375141295C8FC212095541AC33776FCC3751415F8BDF4713095541EB20A09ECC3751413CD783B5120955415349DAA5CD3751414C9E9A421109554185EB5138CF37514148E17A740F095541CDCCCCCCD337514152B81EE5FF0855413D0AD793D5375141000000F0F808554185EB5188D5375141AE47E14AF508554185EB5108D237514166666606EC08554152B81EE5CF3751410AD7A340E40855415C8FC215CF3751410AD7A3D0DA0855417B14AEA7CD37514100000010D9085541C3F5286CC7375141B81E850BD70855411F85EBA1C6375141F6285CBFD9085541666666F6C4375141713D0A67E1085541C3F5283CC8375141D7A370CDE5085541D7A3704DCB375141EC51B8EEEC08554185EB5108CC3751410AD7A320F0085541713D0AE7C9375141295C8F32FF0855418FC2F5C8C83751417B14AEB70809554152B81E05C937514185EB51681209554101030000000100000004000000848FADD6CA375141FEEC63FE1D09554158B82ABEC837514173AA76E11C09554178888ABDC83751417869D2F11C095541848FADD6CA375141FEEC63FE1D09554101030000000100000006000000B24E5E0EC9375141636A080F1509554133333313C93751419A9999A91409554152B81E05C937514185EB516812095541CAD86B0DC93751419DEC86C9140955419DCB0FFCC837514175205B8F16095541B24E5E0EC9375141636A080F15095541
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000EC51B82ECD3751410AD7A3001C09554166666666CC3751411F85EBD119095541EC51B8EECB375141AE47E11A18095541C3F528DCCB3751416666667616095541CDCCCC5CCC375141EC51B8AE1409554166666676CC375141295C8FC21209554148E17A84C937514152B81E751209554152B81E05C937514185EB51681209554133333313C93751419A9999A914095541F6285CAFC83751419A9999D91C095541D7A3708DCD375141F6285C6F1F095541B81E855BCE37514152B81EC51F0955411F85EBD1CD3751417B14AEB71D095541EC51B82ECD3751410AD7A3001C095541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>164313 - 1343563
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000030000000103000000010000001700000052B81E05C937514185EB51681209554148E17A84C937514152B81E751209554166666676CC375141295C8FC212095541AC33776FCC3751415F8BDF4713095541EB20A09ECC3751413CD783B5120955415349DAA5CD3751414C9E9A421109554185EB5138CF37514148E17A740F095541CDCCCCCCD337514152B81EE5FF0855413D0AD793D5375141000000F0F808554185EB5188D5375141AE47E14AF508554185EB5108D237514166666606EC08554152B81EE5CF3751410AD7A340E40855415C8FC215CF3751410AD7A3D0DA0855417B14AEA7CD37514100000010D9085541C3F5286CC7375141B81E850BD70855411F85EBA1C6375141F6285CBFD9085541666666F6C4375141713D0A67E1085541C3F5283CC8375141D7A370CDE5085541D7A3704DCB375141EC51B8EEEC08554185EB5108CC3751410AD7A320F0085541713D0AE7C9375141295C8F32FF0855418FC2F5C8C83751417B14AEB70809554152B81E05C937514185EB51681209554101030000000100000004000000848FADD6CA375141FEEC63FE1D09554158B82ABEC837514173AA76E11C09554178888ABDC83751417869D2F11C095541848FADD6CA375141FEEC63FE1D09554101030000000100000006000000B24E5E0EC9375141636A080F1509554133333313C93751419A9999A91409554152B81E05C937514185EB516812095541CAD86B0DC93751419DEC86C9140955419DCB0FFCC837514175205B8F16095541B24E5E0EC9375141636A080F15095541
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000EC51B82ECD3751410AD7A3001C09554166666666CC3751411F85EBD119095541EC51B8EECB375141AE47E11A18095541C3F528DCCB3751416666667616095541CDCCCC5CCC375141EC51B8AE1409554166666676CC375141295C8FC21209554148E17A84C937514152B81E751209554152B81E05C937514185EB51681209554133333313C93751419A9999A914095541F6285CAFC83751419A9999D91C095541D7A3708DCD375141F6285C6F1F095541B81E855BCE37514152B81EC51F0955411F85EBD1CD3751417B14AEB71D095541EC51B82ECD3751410AD7A3001C095541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>164313 - 4066720
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000030000000103000000010000001700000052B81E05C937514185EB51681209554148E17A84C937514152B81E751209554166666676CC375141295C8FC212095541AC33776FCC3751415F8BDF4713095541EB20A09ECC3751413CD783B5120955415349DAA5CD3751414C9E9A421109554185EB5138CF37514148E17A740F095541CDCCCCCCD337514152B81EE5FF0855413D0AD793D5375141000000F0F808554185EB5188D5375141AE47E14AF508554185EB5108D237514166666606EC08554152B81EE5CF3751410AD7A340E40855415C8FC215CF3751410AD7A3D0DA0855417B14AEA7CD37514100000010D9085541C3F5286CC7375141B81E850BD70855411F85EBA1C6375141F6285CBFD9085541666666F6C4375141713D0A67E1085541C3F5283CC8375141D7A370CDE5085541D7A3704DCB375141EC51B8EEEC08554185EB5108CC3751410AD7A320F0085541713D0AE7C9375141295C8F32FF0855418FC2F5C8C83751417B14AEB70809554152B81E05C937514185EB51681209554101030000000100000004000000848FADD6CA375141FEEC63FE1D09554158B82ABEC837514173AA76E11C09554178888ABDC83751417869D2F11C095541848FADD6CA375141FEEC63FE1D09554101030000000100000006000000B24E5E0EC9375141636A080F1509554133333313C93751419A9999A91409554152B81E05C937514185EB516812095541CAD86B0DC93751419DEC86C9140955419DCB0FFCC837514175205B8F16095541B24E5E0EC9375141636A080F15095541
+</a>
+
+<b>
+0106000000010000000103000000010000000E000000EC51B82ECD3751410AD7A3001C09554166666666CC3751411F85EBD119095541EC51B8EECB375141AE47E11A18095541C3F528DCCB3751416666667616095541CDCCCC5CCC375141EC51B8AE1409554166666676CC375141295C8FC21209554148E17A84C937514152B81E751209554152B81E05C937514185EB51681209554133333313C93751419A9999A914095541F6285CAFC83751419A9999D91C095541D7A3708DCD375141F6285C6F1F095541B81E855BCE37514152B81EC51F0955411F85EBD1CD3751417B14AEB71D095541EC51B82ECD3751410AD7A3001C095541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>462290 - 3059051
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+01060000000100000001030000000100000022000000CDCCCC8CCAF05041666666F619FD5441C3F5282CC7F05041D7A3703D24FD5441C3F528ECC6F05041F6285CDF25FD54410AD7A310C7F05041713D0A5727FD5441A4703D1ACAF050411F85EB6126FD54419A999949D4F05041C3F5282C23FD544114AE4751D6F05041D7A3704D35FD5441C3F5288CD6F050416666661639FD5441C3F5288CD6F05041AE47E1CA3DFD5441713D0A27D6F05041CDCCCCCC3FFD5441666666D6D6F05041A4703DAA3FFD5441CDCCCCECDAF050415C8FC2A53EFD5441C3F528BCDCF05041E17A146E45FD5441AE47E11AE2F0504114AE47A145FD5441295C8F52E3F0504152B81EB542FD5441A4703DAAE3F05041AE47E15A3FFD54418FC2F5E8E3F05041333333533AFD5441C3F5281CE4F05041CDCCCC3C38FD5441666666B6E3F05041D7A370AD34FD5441333333C3E3F05041000000202FFD544152B81E35E4F05041CDCCCC9C2BFD5441295C8F02E4F050411F85EB9129FD5441666666B6E3F05041E17A147E24FD54419A9999A9E3F0504114AE47211FFD5441E17A145EE3F0504114AE47011AFD54415C8FC2C5E2F0504114AE477117FD544148E17AE4E0F05041713D0A470FFD544148E17AB4DFF050417B14AE570AFD5441AE47E11ADAF05041295C8FD20EFD54411F85EBD1D5F050413D0AD70311FD5441295C8F22D2F050413D0AD79313FD54419A999929CEF050411F85EBD115FD5441C3F5285CCBF05041000000D017FD5441CDCCCC8CCAF05041666666F619FD5441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000AB3BA958CCF05041AD4CE1AC25FD54410D8817ADD2F050414A0766DE16FD54419015D647D7F050417F7B2B7C16FD54417E66A7DAD8F050412BDE68760FFD544158F75A19D8F05041E37F50D90FFD54411F85EBD1D5F050413D0AD70311FD5441295C8F22D2F050413D0AD79313FD54419A999929CEF050411F85EBD115FD5441C3F5285CCBF05041000000D017FD5441CDCCCC8CCAF05041666666F619FD5441C3F5282CC7F05041D7A3703D24FD5441C3F528ECC6F05041F6285CDF25FD54410AD7A310C7F05041713D0A5727FD5441A4703D1ACAF050411F85EB6126FD5441610038DFCBF0504146AC27D325FD5441AB3BA958CCF05041AD4CE1AC25FD5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>426206 - 243967
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000002500000066666686DBAA5041713D0A2751F95441713D0A57DEAA5041F6285C9F4BF95441000000C0E0AA504114AE47E145F954413D0AD7C3E2AA5041E17A14FE3FF954415C8FC265E4AA5041E17A14FE39F95441AE47E15AE5AA5041A4703DDA33F95441C3F528DCE5AA5041B81E85CB2DF954415C8FC2D5DFAA5041E17A144E2CF9544114AE47D1C7AA5041000000D027F95441000000C0B4AA50418FC2F5F823F9544100000080B2AA50410AD7A31024F95441B81E85BBB0AA5041CDCCCCCC24F9544148E17AB4AEAA50417B14AE7726F9544114AE478186AA504185EB51F84CF95441A4703D7A84AA504152B81E854EF954411F85EBE183AA50415C8FC25550F9544114AE477183AA5041A4703D7A56F9544152B81E7589AA50415C8FC29551F95441E17A14BE93AA5041F6285CEF4AF95441F6285CFF96AA50411F85EBD148F95441CDCCCCFCA1AA5041CDCCCCBC41F95441666666B69CAA5041E17A149E4EF95441333333B398AA50417B14AE3752F95441EC51B8EE83AA50413333334364F954417B14AEC784AA5041000000C065F954413D0AD71387AA5041000000B067F954419A9999C999AA50416666660675F954419A999979B2AA5041B81E85DB86F95441CDCCCCDCB3AA5041CDCCCCBC86F95441295C8F62B5AA5041CDCCCC2C84F95441E17A148EB9AA5041A4703D3A7EF95441AE47E1BABFAA5041A4703D3A77F954413D0AD7E3C5AA504148E17A7470F954411F85EB61CBAA50415C8FC2A569F95441F6285CFFD4AA5041F6285CEF5BF9544100000060D8AA50410AD7A38056F9544166666686DBAA5041713D0A2751F95441
+</a>
+
+<b>
+010600000001000000010300000001000000100000007B14AEC784AA5041000000C065F95441FA8B6BFD86AA5041883F619367F95441776DE97C8FAA5041E273DC555DF95441C3AD269C8FAA50414D15F82F5DF9544126ABFFDF8FAA50415224ACDD5CF95441DB19BEA595AA5041734D39DD55F95441CD62111D96AA5041C9937C4C55F9544193A9009996AA5041E79028B654F954418FF0441798AA5041DB7D35C852F95441D3AE6B2C95AA50414B341C4855F9544183E906BD91AA50410869384458F95441331F85918CAA5041412239C25CF954415A026F0A89AA5041DC8CEBD25FF95441C3DB96FF83AA5041F64A4E3E64F95441EC51B8EE83AA50413333334364F954417B14AEC784AA5041000000C065F95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>426206 - 315249
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000002500000066666686DBAA5041713D0A2751F95441713D0A57DEAA5041F6285C9F4BF95441000000C0E0AA504114AE47E145F954413D0AD7C3E2AA5041E17A14FE3FF954415C8FC265E4AA5041E17A14FE39F95441AE47E15AE5AA5041A4703DDA33F95441C3F528DCE5AA5041B81E85CB2DF954415C8FC2D5DFAA5041E17A144E2CF9544114AE47D1C7AA5041000000D027F95441000000C0B4AA50418FC2F5F823F9544100000080B2AA50410AD7A31024F95441B81E85BBB0AA5041CDCCCCCC24F9544148E17AB4AEAA50417B14AE7726F9544114AE478186AA504185EB51F84CF95441A4703D7A84AA504152B81E854EF954411F85EBE183AA50415C8FC25550F9544114AE477183AA5041A4703D7A56F9544152B81E7589AA50415C8FC29551F95441E17A14BE93AA5041F6285CEF4AF95441F6285CFF96AA50411F85EBD148F95441CDCCCCFCA1AA5041CDCCCCBC41F95441666666B69CAA5041E17A149E4EF95441333333B398AA50417B14AE3752F95441EC51B8EE83AA50413333334364F954417B14AEC784AA5041000000C065F954413D0AD71387AA5041000000B067F954419A9999C999AA50416666660675F954419A999979B2AA5041B81E85DB86F95441CDCCCCDCB3AA5041CDCCCCBC86F95441295C8F62B5AA5041CDCCCC2C84F95441E17A148EB9AA5041A4703D3A7EF95441AE47E1BABFAA5041A4703D3A77F954413D0AD7E3C5AA504148E17A7470F954411F85EB61CBAA50415C8FC2A569F95441F6285CFFD4AA5041F6285CEF5BF9544100000060D8AA50410AD7A38056F9544166666686DBAA5041713D0A2751F95441
+</a>
+
+<b>
+010600000001000000010300000001000000100000007B14AEC784AA5041000000C065F95441FA8B6BFD86AA5041883F619367F95441776DE97C8FAA5041E273DC555DF95441C3AD269C8FAA50414D15F82F5DF9544126ABFFDF8FAA50415224ACDD5CF95441DB19BEA595AA5041734D39DD55F95441CD62111D96AA5041C9937C4C55F9544193A9009996AA5041E79028B654F954418FF0441798AA5041DB7D35C852F95441D3AE6B2C95AA50414B341C4855F9544183E906BD91AA50410869384458F95441331F85918CAA5041412239C25CF954415A026F0A89AA5041DC8CEBD25FF95441C3DB96FF83AA5041F64A4E3E64F95441EC51B8EE83AA50413333334364F954417B14AEC784AA5041000000C065F95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>426315 - 2983535
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A000000CDCCCC8C5D9850417B14AE373C3855419A9999E96E985041295C8F4231385541CDCCCCCC849850410AD7A3F0223855411F85EBC184985041EC51B80E2038554152B81E1582985041295C8F721A3855410AD7A3206B985041713D0A7729385541E17A14AE5A985041A4703D3A343855413D0AD7335C985041AE47E17A3A385541295C8F825C985041EC51B8BE3B385541CDCCCC8C5D9850417B14AE373C385541
+</a>
+
+<b>
+01060000000100000001030000000100000013000000CDCCCC8C5D9850417B14AE373C3855416AA24D9262985041809E650C3938554133FB5FAA66985041F313F57636385541DF36309A68985041627A0C3E353855410A3626E86B985041AB592928333855418C7E99C96D985041704751F831385541073D82546E985041EFD6A6A0313855419A9999E96E985041295C8F4231385541CDCCCCCC849850410AD7A3F0223855411F85EBC184985041EC51B80E2038554152B81E1582985041295C8F721A3855410AD7A3206B985041713D0A7729385541E17A14AE5A985041A4703D3A34385541B25B55125C985041C92885003A385541DFF08A906D985041EBE8F2972E38554100A805436E985041ADB22556303855413EA7A8215E985041AAB91CBB3A385541295C8F825C985041EC51B8BE3B385541CDCCCC8C5D9850417B14AE373C385541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>426315 - 3699392
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000A000000CDCCCC8C5D9850417B14AE373C3855419A9999E96E985041295C8F4231385541CDCCCCCC849850410AD7A3F0223855411F85EBC184985041EC51B80E2038554152B81E1582985041295C8F721A3855410AD7A3206B985041713D0A7729385541E17A14AE5A985041A4703D3A343855413D0AD7335C985041AE47E17A3A385541295C8F825C985041EC51B8BE3B385541CDCCCC8C5D9850417B14AE373C385541
+</a>
+
+<b>
+01060000000100000001030000000100000013000000CDCCCC8C5D9850417B14AE373C3855416AA24D9262985041809E650C3938554133FB5FAA66985041F313F57636385541DF36309A68985041627A0C3E353855410A3626E86B985041AB592928333855418C7E99C96D985041704751F831385541073D82546E985041EFD6A6A0313855419A9999E96E985041295C8F4231385541CDCCCCCC849850410AD7A3F0223855411F85EBC184985041EC51B80E2038554152B81E1582985041295C8F721A3855410AD7A3206B985041713D0A7729385541E17A14AE5A985041A4703D3A34385541B25B55125C985041C92885003A385541DFF08A906D985041EBE8F2972E38554100A805436E985041ADB22556303855413EA7A8215E985041AAB91CBB3A385541295C8F825C985041EC51B8BE3B385541CDCCCC8C5D9850417B14AE373C385541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>524104 - 2927826
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B00000085EB51687BBA50411F85EBC15E255441B81E852B7DBA50418FC2F5185D255441CDCCCC3C7FBA50410AD7A3205C2554419A9999597DBA50410AD7A3405B255441B81E850B66BA504114AE47017B255441000000306ABA50417B14AE677D255441CDCCCCBC6CBA50415C8FC2957A2554411F85EBB16EBA5041666666067A255441EC51B86E76BA5041D7A3702D6D255441713D0AF77ABA50419A9999C96525544185EB51687BBA50411F85EBC15E255441
+</a>
+
+<b>
+01060000000100000001030000000100000051000000F5D5EDD26FBA5041292E54B778255441C4C6B4C571BA504184378B9179255441089F0BD174BA50419D15E4CF792554418DA2407878BA504184378B917925544138F3FA7C7CBA5041507BD914792554412E3147CD7EBA50415DEA0534792554419956233682BA5041292E54B778255441348B38AC83BA5041A7D7977F772554416847EA2884BA5041A42A1F107525544110EB2BBE85BA504109F6099A732554412007D14C88BA50413A0543A771255441B27932138CBA504181455C836D255441A8B77E638EBA5041E0B6552E672554411030E25C8FBA50419CDEFE2264255441EC8FD56E91BA5041FEFC703D60255441B03644D691BA504136D26FB35B2554411B1C486186BA504170F09CE55325544151EEF4AE74BA504190E0BFD747255441DAA52F1A69BA5041024C46F43F255441A53FD31B61BA5041068E61823A255441D1D7504F58BA5041D16A11843425544158E0867245BA50417546BB9D27255441BD66BB5D3ABA504145F2CBF11F255441167EC3292FBA5041FBBF8307182554412233FCE92DBA50411774EAEA1E255441375AE7922CBA504139EC214B34255441CBBCDBF42BBA50418C03F58A3F255441D175B3042BBA5041AF91CCD14B25544113D14ABA2CBA5041D7257FA24C25544188B8DAD22DBA5041F003D8E04C25544123EDEF482FBA5041E494ABC14C255441E56E8A1C31BA5041BA9AADF44925544167C5465432BA50414206A56C462554410F6988E933BA5041DA8D41734525544105A7D43936BA504180840A99442554416D1F383337BA5041BE0270C5422554416D1F383337BA5041C7C423754025544156EE576439BA504139FF3A1E3F255441BD66BB5D3ABA5041EB6430633E255441737929123CBA5041029610323C255441737929123CBA5041CB2CE64539255441CD8260EC3CBA50413D67FDEE372554417626A2813EBA5041D5EE99F5362554411ECAE31640BA504194C3BB5936255441C76D25AC41BA5041A132E8783625544148C4E1E342BA50417BE5621B36255441A67A912D46BA504120DC2B41352554415B8DFFE147BA50412D4B5860352554419F6556ED4ABA50417BE5621B362554417BC549FF4CBA50415498DDBD3525544123698B944EBA50413ABA847F352554419BFD931C52BA50414AD6290E38255441C24A197A52BA504126361D203A25544119A7D7E450BA5041F526E4123C255441F359528750BA50411F21E2DF3E255441F359528750BA50417A2A19BA3F2554419BFD931C52BA504139FF3A1E3F2554416AEE5A0F54BA504184ECCC693D25544153BD7A4056BA50410F053D513C2554417DB7780D59BA50419A1DAD383B25544132CAE6C15ABA5041DB488BD43B255441C18FCF185CBA50411C7469703C2554419080960B5EBA504174D027DB3A25544186BEE25B60BA504129E3958F3C2554418C18D43A65BA5041604CC07B3F25544125A0704164BA504163F938EB412554410DC2170364BA5041F66B9AB145255441CF43B2D665BA5041A1BC54B649255441208B350169BA50419AA719764E255441C2193C566FBA504179B485F752255441DA15DFA26FBA5041F9E131F1542554416053DF467BBA504173B9BF4A5A2554416666668680BA50418FC2F5B85C255441246F931D81BA50416F3788E65E2554417CCB51887FBA50416575D436612554412E3147CD7EBA5041CF9AB09F642554414562279C7CBA5041DFB6552E672554417512D3B379BA504173F69BD86725544120C282CA75BA50414AA6183E6E2554416ABD7DEB70BA50412581DB4776255441F5D5EDD26FBA5041292E54B778255441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>524104 - 3733261
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B00000085EB51687BBA50411F85EBC15E255441B81E852B7DBA50418FC2F5185D255441CDCCCC3C7FBA50410AD7A3205C2554419A9999597DBA50410AD7A3405B255441B81E850B66BA504114AE47017B255441000000306ABA50417B14AE677D255441CDCCCCBC6CBA50415C8FC2957A2554411F85EBB16EBA5041666666067A255441EC51B86E76BA5041D7A3702D6D255441713D0AF77ABA50419A9999C96525544185EB51687BBA50411F85EBC15E255441
+</a>
+
+<b>
+01060000000100000001030000000100000051000000F5D5EDD26FBA5041292E54B778255441C4C6B4C571BA504184378B9179255441089F0BD174BA50419D15E4CF792554418DA2407878BA504184378B917925544138F3FA7C7CBA5041507BD914792554412E3147CD7EBA50415DEA0534792554419956233682BA5041292E54B778255441348B38AC83BA5041A7D7977F772554416847EA2884BA5041A42A1F107525544110EB2BBE85BA504109F6099A732554412007D14C88BA50413A0543A771255441B27932138CBA504181455C836D255441A8B77E638EBA5041E0B6552E672554411030E25C8FBA50419CDEFE2264255441EC8FD56E91BA5041FEFC703D60255441B03644D691BA504136D26FB35B2554411B1C486186BA504170F09CE55325544151EEF4AE74BA504190E0BFD747255441DAA52F1A69BA5041024C46F43F255441A53FD31B61BA5041068E61823A255441D1D7504F58BA5041D16A11843425544158E0867245BA50417546BB9D27255441BD66BB5D3ABA504145F2CBF11F255441167EC3292FBA5041FBBF8307182554412233FCE92DBA50411774EAEA1E255441375AE7922CBA504139EC214B34255441CBBCDBF42BBA50418C03F58A3F255441D175B3042BBA5041AF91CCD14B25544113D14ABA2CBA5041D7257FA24C25544188B8DAD22DBA5041F003D8E04C25544123EDEF482FBA5041E494ABC14C255441E56E8A1C31BA5041BA9AADF44925544167C5465432BA50414206A56C462554410F6988E933BA5041DA8D41734525544105A7D43936BA504180840A99442554416D1F383337BA5041BE0270C5422554416D1F383337BA5041C7C423754025544156EE576439BA504139FF3A1E3F255441BD66BB5D3ABA5041EB6430633E255441737929123CBA5041029610323C255441737929123CBA5041CB2CE64539255441CD8260EC3CBA50413D67FDEE372554417626A2813EBA5041D5EE99F5362554411ECAE31640BA504194C3BB5936255441C76D25AC41BA5041A132E8783625544148C4E1E342BA50417BE5621B36255441A67A912D46BA504120DC2B41352554415B8DFFE147BA50412D4B5860352554419F6556ED4ABA50417BE5621B362554417BC549FF4CBA50415498DDBD3525544123698B944EBA50413ABA847F352554419BFD931C52BA50414AD6290E38255441C24A197A52BA504126361D203A25544119A7D7E450BA5041F526E4123C255441F359528750BA50411F21E2DF3E255441F359528750BA50417A2A19BA3F2554419BFD931C52BA504139FF3A1E3F2554416AEE5A0F54BA504184ECCC693D25544153BD7A4056BA50410F053D513C2554417DB7780D59BA50419A1DAD383B25544132CAE6C15ABA5041DB488BD43B255441C18FCF185CBA50411C7469703C2554419080960B5EBA504174D027DB3A25544186BEE25B60BA504129E3958F3C2554418C18D43A65BA5041604CC07B3F25544125A0704164BA504163F938EB412554410DC2170364BA5041F66B9AB145255441CF43B2D665BA5041A1BC54B649255441208B350169BA50419AA719764E255441C2193C566FBA504179B485F752255441DA15DFA26FBA5041F9E131F1542554416053DF467BBA504173B9BF4A5A2554416666668680BA50418FC2F5B85C255441246F931D81BA50416F3788E65E2554417CCB51887FBA50416575D436612554412E3147CD7EBA5041CF9AB09F642554414562279C7CBA5041DFB6552E672554417512D3B379BA504173F69BD86725544120C282CA75BA50414AA6183E6E2554416ABD7DEB70BA50412581DB4776255441F5D5EDD26FBA5041292E54B778255441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>427751 - 54226
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000020000000C3F528BC0C4B5141333333232AB154411F85EBD1094B5141B81E85EB2DB15441295C8FB2064B5141295C8FC233B15441E17A14DE054B5141AE47E18A38B154417B14AEA7064B5141AE47E16A3EB154419A9999A9084B5141F6285C4F4AB154417B14AE570A4B51415C8FC29551B15441EC51B88E0C4B51419A9999D958B154415C8FC2650F4B51418FC2F50860B1544100000020134B514148E17A0467B15441B81E85AB174B51411F85EB716DB154413D0AD7931C4B5141A4703D9A73B154410AD7A370224B5141AE47E10A7AB15441E17A146E244B5141F6285C3F7AB15441A4703D3A224B5141E17A140E78B15441713D0A571E4B5141295C8FC253B15441F6285C6F1D4B514114AE47514BB15441CDCCCC4C1D4B5141CDCCCCAC46B1544152B81EB51C4B51417B14AE5732B15441D7A3708D1C4B5141666666062DB15441B81E859B1C4B514148E17A042CB15441333333F31C4B5141F6285C9F25B1544185EB51F81C4B51415C8FC24525B154419A9999491D4B5141713D0A571FB1544114AE4721204B51418FC2F56819B1544114AE4701214B514114AE478118B15441000000402A4B514114AE47F10EB154411F85EB51284B5141AE47E1CA0EB154417B14AEF7204B51410AD7A32016B15441EC51B80E1D4B514114AE47711AB154419A999939194B5141EC51B80E20B15441C3F528BC0C4B5141333333232AB15441
+</a>
+
+<b>
+01060000000100000001030000000100000007000000624A4FB01C4B51412BCC4D802AB15441E4DC539D1C4B5141ECC2BAE22BB154417B14AEC75B4B514152B81E0532B15441E17A146E5C4B5141000000502BB1544185EB51F81C4B51415C8FC24525B15441333333F31C4B5141F6285C9F25B15441624A4FB01C4B51412BCC4D802AB15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>427867 - 5316048
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000002A000000295C8F92E1425141B81E85BBB8A5544133333353DD425141713D0A07B9A5544152B81E35D64251418FC2F588B9A5544148E17A04D4425141D7A370FDB9A55441E17A143ED342514185EB51C8BAA554415C8FC215D3425141C3F5281CBCA554411F85EB01D34251410AD7A3C0CDA55441E17A149ED2425141CDCCCCFCE2A55441666666E6D0425141A4703DCAEFA55441A4703D5AD0425141CDCCCCDCF4A55441713D0A57CF425141C3F528CCFAA55441713D0A27CD425141EC51B8BE01A6544100000080C64251418FC2F5380DA65441333333F3C342514114AE471112A6544148E17A14C2425141A4703DEA16A6544114AE47F1C14251410000005019A6544166666606C3425141CDCCCC3C1BA6544148E17A84C642514152B81E851CA65441000000B0C742514152B81E251DA65441000000B0C7425141CDCCCCEC1DA6544185EB5198C642514148E17A041FA654411F85EB01C3425141F6285CFF20A6544148E17AB4C34251417B14AE6721A654418FC2F588C7425141666666F61FA6544100000050CA425141EC51B81E1EA654418FC2F598CE425141295C8F2216A65441F6285CDFD5425141EC51B86E0CA65441AE47E10ADE425141E17A148E04A65441AE47E12AE4425141C3F5281CFEA55441295C8FB2E8425141CDCCCC1CF8A5544152B81E45ED4251413D0AD743F0A5544133333353EF425141AE47E18AE8A55441666666B6F0425141E17A141EE6A55441F6285CFFF0425141F6285CBFE3A554411F85EB41F0425141C3F5281CE1A554417B14AEE7EE425141EC51B8CEDEA5544152B81ED5E6425141EC51B86ED4A55441295C8F52E5425141EC51B8DED1A55441AE47E13AE442514152B81EA5CEA55441C3F528FCE2425141666666D6C9A5544152B81E05E24251413D0AD783C2A55441295C8F92E1425141B81E85BBB8A55441
+</a>
+
+<b>
+0106000000010000000103000000010000006800000048E17AB4C34251417B14AE6721A65441E247CE45C74251413842B10F20A65441C0FA877FC7425141066ACCFE1FA6544100000050CA425141EC51B81E1EA65441B2657B65CC425141F7A0963C1AA65441F911602DCE42514121AC0AEB16A654417C180E96CE4251419DD32E1916A6544107F41D03D0425141163E8F3F14A65441242C091FD34251411A990F1A10A654416888D76FD542514184F772030DA6544121F4FF2BD6425141E1F2D2240CA654414B2023D5D84251411090129409A6544152DF0779DC425141EBD78A1106A654411397CAA8DE4251415627EBE703A654412579AAABE2425141502365AFFFA554418A2A113CE44251415C248606FEA5544137738232E54251419E9320BFFCA5544188EFA708E842514125A1BEFDF8A55441E320998DE8425141C755BC4DF8A55441EE974F51EA425141B012FD54F5A554419FA5D0B3EB425141033393F4F2A55441DAB14B47ED425141F0FAA93BF0A55441A83165D7EE425141A76C205CEAA5544129E4AF4EEF425141CBD2D69BE8A55441FDD41B98EF425141B9E77112E8A554414586D1A1EF425141B08A7901E8A554411E1649B4F0425141468FC621E6A5544188456FC6F04251418A3BBD98E5A55441298AC2FEF042514148A259C4E3A5544196DA7FB5F04251413A611BB8E2A554411F85EB41F0425141C3F5281CE1A554416E2B83EEEF425141D4A72A8EE0A554416B0FD868EE4251411EF4B42BDEA5544121E50A2AE84251413912E224D6A5544184B832B8E64251411296A33DD4A554414B6648A0E5425141D7FD9D62D2A554418AFC004FE54251419BF238D4D1A55441803BBDCCE44251417D35B053D0A55441FED30D5BE4425141CD8E1804CFA55441B90F672FE4425141CDF2CC78CEA55441F01F43F7E34251417F7E04A0CDA55441545A79FBE2425141B8E031D1C9A5544121934AE6E24251414F637530C9A55441BA65EC27E24251412A69EE8BC3A554418F085FFFE1425141987A2B06C2A554419F1197DDE1425141F9AC7E22BFA55441FEC62CABE1425141C638DCD2BAA55441A25EB48DE142514141D352B7B8A554410B399D1BDE42514101E71EF9B8A55441743DB619DA425141CF5EE641B9A554417375705BD6425141804B3A86B9A55441667AD5ADD4425141872D41DAB9A55441E4723412D4425141EBA696FAB9A55441C258999CD342514126ACAA67BAA55441D0413C3ED3425141421355C3BAA554419E83FE28D3425141880F0B7ABBA55441BD28EE15D34251416C7BB91ABCA55441BE31E311D34251413590B88DBFA55441A3D9A70ED3425141A6766D6DC2A55441CC8DF10CD34251419B7C2DF3C3A5544192D9AE0AD34251418BA5C8F5C5A55441A33635FFD242514110F24F54CEA554417D1636E1D2425141F87B96B5D4A554417B41F4AAD2425141E108D23FE0A554413ECE159ED2425141579F84FCE2A554413CBEFD8FD2425141DEF3D165E3A554415FA5B1E2D1425141E7849A71E8A554413F928C4CD1425141212ECED0ECA55441088BD0E9D04251419072C9B0EFA55441CCF91696D042514117384DB2F2A5544145928B70D04251415F58250EF4A5544149884D59D0425141D9124BE2F4A554417B856646D04251418E0A1851F5A55441BA5D56A5CF425141A6BC3301F9A5544177B5815ACF425141E5DBD6B7FAA5544146541335CF42514128FF0738FBA554419450D93DCD4251412E6B477601A65441FA315E28CD425141429F80BA01A6544127544B1ECD4251411618CFCD01A6544185AB47F8CA425141DE69BE8205A65441490CA7C8C7425141644CF0010BA654417A027EA0C642514151C5E6000DA6544136BD1572C5425141AD74CC390FA65441A4776483C4425141DF7850FF10A6544186557C1CC44251414953D6C211A654417E9873F1C3425141F5FACF1512A65441AA1A9089C24251414678BBBA15A6544148E17A14C2425141A4703DEA16A65441CC2C5D0EC242514115A4E15417A65441CD6ACBF7C14251411EBA68DE18A654414BB75BF1C14251417CA5A24E19A654416C4F1A30C2425141BE98B7BF19A6544166666606C3425141CDCCCC3C1BA654413EF3EACFC54251410C94D0421CA654414DD4B97AC6425141AEC389811CA65441BEB5DBAAC7425141D8925F221DA65441000000B0C7425141FECD6EE81DA654411B52DC82C7425141B27AF0191EA654410255F19EC642514171783BFF1EA654416EC9644BC6425141BFD7EF2E1FA6544136FEE9CBC442514156E9950220A654412B2EB379C34251413B6240BD20A654418529C602C34251419B5B5DFE20A6544148E17AB4C34251417B14AE6721A65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>428334 - 88539
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000010000000713D0A870661514133333363EAA05441AE47E11A0D615141EC51B86EE8A05441000000702861514114AE47A1DEA0544148E17AB4296151413D0AD733DEA0544152B81E2521615141B81E857BBEA05441AE47E15AF96051410AD7A3F0CAA05441C3F528DCF8605141E17A146EC9A0544148E17AD4E9605141CDCCCC3CCEA0544133333303EB605141000000C0D9A0544114AE47E1F260514152B81E95DAA05441AE47E1AAF6605141713D0AB7D8A0544166666696F8605141713D0A47D8A054413D0AD773FA6051415C8FC2A5D9A05441295C8F62FB605141713D0A77E8A054419A9999190561514148E17A64E5A05441713D0A870661514133333363EAA05441
+</a>
+
+<b>
+0106000000010000000103000000010000000B00000060C966602061514106C540F4BCA054415C0AF66320615141871B87FFBCA05441C3F528DCF8605141E17A146EC9A05441AE47E15AF96051410AD7A3F0CAA0544152B81E2521615141B81E857BBEA05441508B8AA32961514154978D39DEA05441B281F8A6296151413F796538DEA05441E9032AB7296151413BD0E282DEA05441666666F62B6151410AD7A370DDA05441FA120FC92261514111FE9031BCA0544160C966602061514106C540F4BCA05441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>428708 - 3612013
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000001000000010300000001000000130000001F85EBE198855141AE47E16A28AC5441CDCCCC5C9985514185EB51D829AC5441CDCCCC2C9C8551415C8FC23532AC54410AD7A350A08551417B14AE873EAC544166666666A4855141EC51B8AE4AAC5441666666F6A98551418FC2F5385BAC5441EC51B8EEAC85514148E17AF458AC54419A999949AF855141AE47E12A58AC544185EB5198B28551411F85EB1158AC5441CDCCCC5CB785514148E17AB453AC54410AD7A380B4855141C3F5286C4BAC54410AD7A3B0B185514148E17A7443AC54410AD7A360AF8551415C8FC2B53CAC5441713D0AE7AD85514152B81E9538AC544114AE4751A88551417B14AEE729AC5441E17A146EA5855141713D0A8724AC54411F85EBA1A4855141CDCCCCEC22AC544100000020A485514185EB51E821AC54411F85EBE198855141AE47E16A28AC5441
+</a>
+
+<b>
+0106000000010000000103000000010000000700000088A626E298855141520ABF6A28AC5441682E5138A485514177E8DEEA21AC5441296FDC5D9D855141EF4FC12518AC5441A4703D0A9B8551419A9999191AAC54413D0AD7D398855141EC51B83E1CAC54415C8FC2D5958551418FC2F5581FAC544188A626E298855141520ABF6A28AC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>510167 - 149100
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001E00000085EB5158A85D5141666666860DC7544114AE4761A45D5141F6285CBF16C7544152B81E959F5D51413D0AD7B313C754417B14AE179D5D51413D0AD79317C75441EC51B86E9B5D5141666666D616C7544152B81EA5955D51417B14AED718C75441EC51B8EE925D5141C3F5287C20C7544148E17A94925D51411F85EB3121C75441333333D39A5D5141E17A142E29C75441295C8F429D5D51417B14AE5729C75441F6285C7F9F5D514148E17A3422C7544100000080A65D51417B14AEE721C75441E17A14CEA85D51410AD7A3A021C754419A9999E9A95D51417B14AEF71FC7544152B81E05AB5D5141CDCCCCEC1CC754417B14AE27AE5D514152B81E3517C754418FC2F518AF5D5141AE47E13A14C75441E17A14DEB05D5141295C8F9210C75441EC51B8FEB15D5141333333130CC7544152B81E15AB5D51416666667606C754417B14AE57AA5D514152B81E0506C754417B14AEF7AC5D5141C3F528BC02C7544148E17A54BD5D514133333363F2C6544152B81EC5C75D51413D0AD783E7C65441666666C6C35D5141D7A3709DE3C654411F85EB61C25D5141713D0AA7E3C6544133333353B55D51419A999999F1C654411F85EB21A35D5141A4703D5A04C75441B81E858BA95D51418FC2F51809C7544185EB5158A85D5141666666860DC75441
+</a>
+
+<b>
+0106000000010000000103000000010000003B000000E27BC5D0AA5D5141252E956D05C754417B14AEF7AC5D5141C3F528BC02C7544148E17A54BD5D514133333363F2C65441FAE82B91C65D51416FC18BC4E8C6544152B81EC5C75D51413D0AD783E7C6544139EE3410C45D514124DD7DE5E3C65441666666C6C35D5141D7A3709DE3C65441B854CEA0C25D514106B358A5E3C654410ACD52F6C05D5141BB586B2BE5C65441CF7FA6C3C05D514156D78B61E5C654419E8603F2BF5D51413EC27841E6C65441E80CAD39BE5D51417BADD217E8C654418B0E8E25BD5D51417AB3C33EE9C65441DFE6DFEAB85D5141A5843DC3EDC6544133333353B55D51419A999999F1C65441A7860DF4B15D514150055113F5C65441C2E43BD0AA5D5141682D666FFCC65441DB8AF196A85D51415AA236BAFEC654418B526077A75D5141E6EEA1E2FFC6544133197C11A45D5141EA0C4D6303C754411F85EB21A35D5141A4703D5A04C75441B81E858BA95D51418FC2F51809C7544185EB5158A85D5141666666860DC7544126D6320BA85D5141315DC8390EC7544199B6EF61A65D514152D2EE1612C7544135AE2682A55D5141BACF731F14C75441A199AC01A55D51414F64494A15C7544114AE4761A45D5141F6285CBF16C754410C0859C3A05D51417768AA7314C754419A2ED809A05D514177F8ECFD13C7544134A2E0B69F5D51415A1C44C913C7544166C0084D9F5D5141B090052414C754417B14AE179D5D51413D0AD79317C7544102840E869B5D51417C98CDE016C75441A039713F9B5D5141A5441E1117C75441D4BF93BF9B5D5141A5441E1117C754412A22DB39995D514136E2169A17C7544136962A8A955D5141F0489F2319C75441EC51B8EE925D5141C3F5287C20C7544148E17A94925D51411F85EB3121C754415FF977C29A5D51418E52E01D29C754416FB34EBF9A5D5141B623F91529C75441C45DCF519B5D51417382873629C75441295C8F429D5D51417B14AE5729C75441F6285C7F9F5D514148E17A3422C7544100000080A65D51417B14AEE721C75441E17A14CEA85D51410AD7A3A021C754419A9999E9A95D51417B14AEF71FC7544152B81E05AB5D5141CDCCCCEC1CC754414462CB14AE5D51418810905717C754417B14AE27AE5D514152B81E3517C75441480527BDAE5D5141B4FCE95C15C754418FC2F518AF5D5141AE47E13A14C75441E68264C4AF5D51412D64A2D812C75441E17A14DEB05D5141295C8F9210C75441EC51B8FEB15D5141333333130CC7544152B81E15AB5D51416666667606C754417B14AE57AA5D514152B81E0506C75441E27BC5D0AA5D5141252E956D05C75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>510167 - 310494
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000001E00000085EB5158A85D5141666666860DC7544114AE4761A45D5141F6285CBF16C7544152B81E959F5D51413D0AD7B313C754417B14AE179D5D51413D0AD79317C75441EC51B86E9B5D5141666666D616C7544152B81EA5955D51417B14AED718C75441EC51B8EE925D5141C3F5287C20C7544148E17A94925D51411F85EB3121C75441333333D39A5D5141E17A142E29C75441295C8F429D5D51417B14AE5729C75441F6285C7F9F5D514148E17A3422C7544100000080A65D51417B14AEE721C75441E17A14CEA85D51410AD7A3A021C754419A9999E9A95D51417B14AEF71FC7544152B81E05AB5D5141CDCCCCEC1CC754417B14AE27AE5D514152B81E3517C754418FC2F518AF5D5141AE47E13A14C75441E17A14DEB05D5141295C8F9210C75441EC51B8FEB15D5141333333130CC7544152B81E15AB5D51416666667606C754417B14AE57AA5D514152B81E0506C754417B14AEF7AC5D5141C3F528BC02C7544148E17A54BD5D514133333363F2C6544152B81EC5C75D51413D0AD783E7C65441666666C6C35D5141D7A3709DE3C654411F85EB61C25D5141713D0AA7E3C6544133333353B55D51419A999999F1C654411F85EB21A35D5141A4703D5A04C75441B81E858BA95D51418FC2F51809C7544185EB5158A85D5141666666860DC75441
+</a>
+
+<b>
+0106000000010000000103000000010000003B000000E27BC5D0AA5D5141252E956D05C754417B14AEF7AC5D5141C3F528BC02C7544148E17A54BD5D514133333363F2C65441FAE82B91C65D51416FC18BC4E8C6544152B81EC5C75D51413D0AD783E7C6544139EE3410C45D514124DD7DE5E3C65441666666C6C35D5141D7A3709DE3C65441B854CEA0C25D514106B358A5E3C654410ACD52F6C05D5141BB586B2BE5C65441CF7FA6C3C05D514156D78B61E5C654419E8603F2BF5D51413EC27841E6C65441E80CAD39BE5D51417BADD217E8C654418B0E8E25BD5D51417AB3C33EE9C65441DFE6DFEAB85D5141A5843DC3EDC6544133333353B55D51419A999999F1C65441A7860DF4B15D514150055113F5C65441C2E43BD0AA5D5141682D666FFCC65441DB8AF196A85D51415AA236BAFEC654418B526077A75D5141E6EEA1E2FFC6544133197C11A45D5141EA0C4D6303C754411F85EB21A35D5141A4703D5A04C75441B81E858BA95D51418FC2F51809C7544185EB5158A85D5141666666860DC7544126D6320BA85D5141315DC8390EC7544199B6EF61A65D514152D2EE1612C7544135AE2682A55D5141BACF731F14C75441A199AC01A55D51414F64494A15C7544114AE4761A45D5141F6285CBF16C754410C0859C3A05D51417768AA7314C754419A2ED809A05D514177F8ECFD13C7544134A2E0B69F5D51415A1C44C913C7544166C0084D9F5D5141B090052414C754417B14AE179D5D51413D0AD79317C7544102840E869B5D51417C98CDE016C75441A039713F9B5D5141A5441E1117C75441D4BF93BF9B5D5141A5441E1117C754412A22DB39995D514136E2169A17C7544136962A8A955D5141F0489F2319C75441EC51B8EE925D5141C3F5287C20C7544148E17A94925D51411F85EB3121C754415FF977C29A5D51418E52E01D29C754416FB34EBF9A5D5141B623F91529C75441C45DCF519B5D51417382873629C75441295C8F429D5D51417B14AE5729C75441F6285C7F9F5D514148E17A3422C7544100000080A65D51417B14AEE721C75441E17A14CEA85D51410AD7A3A021C754419A9999E9A95D51417B14AEF71FC7544152B81E05AB5D5141CDCCCCEC1CC754414462CB14AE5D51418810905717C754417B14AE27AE5D514152B81E3517C75441480527BDAE5D5141B4FCE95C15C754418FC2F518AF5D5141AE47E13A14C75441E68264C4AF5D51412D64A2D812C75441E17A14DEB05D5141295C8F9210C75441EC51B8FEB15D5141333333130CC7544152B81E15AB5D51416666667606C754417B14AE57AA5D514152B81E0506C75441E27BC5D0AA5D5141252E956D05C75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>429293 - 3471453
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002E000000B81E85AB1A625141C3F5287C0AC354415C8FC2C51A625141713D0AF707C35441AE47E10A1B62514114AE471106C354410AD7A3A01B62514148E17A4403C3544185EB51081C625141CDCCCC9C01C354417B14AEA71C625141EC51B8DEFFC254410AD7A3B01D625141A4703DEAFDC25441295C8FD21E6251411F85EB11FCC25441A4703D0A20625141713D0A47FAC254413D0AD77321625141B81E856BF8C25441CDCCCCDC2262514148E17AD4F6C254413D0AD7B324625141295C8F12F5C25441C3F528AC27625141F6285C6FF2C2544152B81EA529625141EC51B8CEF0C2544114AE47F12A625141666666A6EFC25441A4703D5A2C625141EC51B8FEEDC2544185EB51A82D62514133333333ECC2544148E17A642F6251417B14AE37E9C254413D0AD7C32D6251410AD7A390E8C254415C8FC2C52C6251418FC2F5E8E8C254411F85EB812C625141713D0A27E8C25441000000A02C62514133333313E8C25441713D0A8729625141CDCCCC4CE0C25441EC51B8AE28625141EC51B8DEDCC254410000000026625141D7A3701DDEC254413D0AD753236251417B14AEF7DEC2544148E17AA41C625141A4703D4AE1C2544152B81E351962514133333333E2C25441EC51B8FE11625141E17A14BEE3C25441000000801162514152B81E55E2C25441C3F528CC106251413D0AD773E4C2544114AE477110625141A4703DDAE5C25441D7A3704D106251415C8FC225E7C25441666666761062514148E17A14E8C25441CDCCCC7C156251418FC2F558F4C2544148E17AC40662514148E17AA4FDC25441D7A3709D0B625141333333730AC35441D7A370DD11625141B81E850B15C3544185EB5188176251417B14AEA71EC35441B81E856B18625141EC51B8DE1BC3544133333393196251417B14AE9717C35441000000401A62514185EB51D814C3544148E17A941A62514148E17AC412C354415C8FC2A51A62514152B81E0511C3544152B81E951A625141EC51B8FE0EC35441B81E85AB1A625141C3F5287C0AC35441
+</a>
+
+<b>
+01060000000100000001030000000100000026000000CB20815F05625141779C0995F9C2544122424D0606625141B3579348FBC25441883F9289066251412D06589FFCC254410CC0DCE206625141A8834B91FDC25441914735320862514142228ABDFCC25441099F1CB309625141129E7DCAFBC254412DCA92080B625141B29BDFF2FAC25441A0C76A660C6251419D9CF615FAC25441E38D267B0D625141760A3867F9C25441EDA3510F0F625141115B0168F8C254412D6891BB10625141AAF59559F7C25441F2597467116251410B220CEDF6C254413C7CF4A813625141FFEA6180F5C25441CDCCCC7C156251418FC2F558F4C254418663AE22156251413F1DF47CF3C25441D3B1097814625141F8F35CDCF1C25441BA93E046146251411C468178F1C2544185EB51A813625141A4703D3AF0C254412F35A13B1362514180B6154DEFC2544185EB51B81162514100000000ECC254412D554E8E11625141AF056270EBC254412033881611625141A336F5D6E9C2544156E5CC17106251414FF6620CE7C25441881632050E625141168DB124E8C25441AFF0EA1E0C625141173F3426E9C2544116D2CC9D0962514142EDB579EAC25441B6A79E4B05625141523D7EC3ECC2544170FFBABC04625141CCB8C69DEBC25441397C92D30362514106AB81BEE9C25441D960E1C502625141F9CC065DEAC2544152B81E3500625141EC51B8DEEBC25441C436145101625141A70EEAB4EEC2544176B695030262514100766C7DF0C254411471618F0262514197B3EFE2F1C25441C9A1702C03625141673C9974F3C254419509A053046251418C32C3E2F6C2544121383ADF046251411E4E1546F8C25441CB20815F05625141779C0995F9C25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>429340 - 1230325
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000200000012000000F6285C1FAA8551418FC2F51841AA54415C8FC2E5A6855141B81E85CB33AA54411F85EB71A685514148E17A9432AA5441333333F3A58551411F85EB3130AA5441666666B6A485514152B81E452CAA5441333333A3A285514148E17A6425AA5441D7A3707DA18551419A99993921AA5441713D0A87A0855141C3F528BC22AA5441C3F5286C9F855141000000B024AA5441E17A143E9E855141E17A140E27AA54411F85EBE19E855141EC51B8FE28AA544166666626A08551415C8FC2B52DAA544133333373A1855141D7A3700D32AA5441295C8F52A28551416666668635AA544148E17A44A3855141333333F339AA5441E17A149EA585514152B81EF544AA5441CDCCCCBCAA85514185EB51E843AA5441F6285C1FAA8551418FC2F51841AA54410A000000CDCCCC6CA58551413D0AD7B339AA54415C8FC235A3855141B81E85BB35AA5441D7A3704DA38551415C8FC24535AA5441295C8FF2A385514185EB518834AA5441D7A3703DA585514148E17A8433AA5441CDCCCC4CA6855141CDCCCC7C34AA5441AE47E1DAA68551415C8FC22536AA54415C8FC215A785514148E17A9437AA54410AD7A370A68551411F85EB3139AA5441CDCCCC6CA58551413D0AD7B339AA5441
+</a>
+
+<b>
+0106000000010000000103000000010000002C0000001883DC5FA88551413F7330D01FAA54416485B82AA78551414A93D5331BAA544175A53737A6855141832CDD9916AA5441C323244DA58551418D63C85810AA5441D4CD7E9AA48551417D5FD8920BAA54419023E261A38551415D75FEA304AA54419850E42BA2855141C99BFC2BFEA954414857810BA185514188246527F8A9544115F56F5F9B8551410C3EC1EEF9A95441E7A527A397855141E1AF8733FBA954417B33E09F98855141BAA4427700AA5441E635FC4E998551410140A28805AA544113C78C9399855141ABA8EE130AAA54419F30AED899855141D07CB5120EAA54411C79A53E9A855141E9F23C8D12AA5441BFBDAF1B9B855141A3DE803118AA544135E791E19B8551418FEBC9421CAA5441F2F22C619C85514127F690BF1EAA5441C263E3E09C8551414F88D40121AA5441CA35E4B09D8551418B71EA7024AA5441CF7212679E8551416B52568A27AA5441441BF50EA0855141C0388E5E2DAA544146EBEE39A1855141BBA9254E31AA5441D80E7802A2855141D828604234AA54412EF70015A38551416303E41439AA5441D0E78308A8855141817281BB38AA5441FE9BB93AA98551416AF78DB63EAA544108B7D9B7A5855141815C1B9144AA5441B2859A2FA68551417843A2BD46AA544185FC4212A8855141807058D04FAA5441A0DCC653A98551418DBFBFD758AA5441295C8FD2AD855141B81E850B5BAA5441C818E2BDAF855141FFADC92E5CAA544188C30BA5B18551412139BCBB5DAA5441FD540944B385514143C4AE485FAA54416D8FF552B48551417C8779B360AA5441EFC60E20B385514199986CAB55AA5441A4D27257B2855141983656BC4EAA5441A60D069EB1855141A0869B5348AA544193B4A27CB185514173722C2C47AA54413F846627B0855141CD64375C40AA54410D5B97A0AD8551416EC58A8034AA5441D32026D7A985514107FC1A6925AA54411883DC5FA88551413F7330D01FAA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>429340 - 3535346
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+01060000000100000001030000000200000012000000F6285C1FAA8551418FC2F51841AA54415C8FC2E5A6855141B81E85CB33AA54411F85EB71A685514148E17A9432AA5441333333F3A58551411F85EB3130AA5441666666B6A485514152B81E452CAA5441333333A3A285514148E17A6425AA5441D7A3707DA18551419A99993921AA5441713D0A87A0855141C3F528BC22AA5441C3F5286C9F855141000000B024AA5441E17A143E9E855141E17A140E27AA54411F85EBE19E855141EC51B8FE28AA544166666626A08551415C8FC2B52DAA544133333373A1855141D7A3700D32AA5441295C8F52A28551416666668635AA544148E17A44A3855141333333F339AA5441E17A149EA585514152B81EF544AA5441CDCCCCBCAA85514185EB51E843AA5441F6285C1FAA8551418FC2F51841AA54410A000000CDCCCC6CA58551413D0AD7B339AA54415C8FC235A3855141B81E85BB35AA5441D7A3704DA38551415C8FC24535AA5441295C8FF2A385514185EB518834AA5441D7A3703DA585514148E17A8433AA5441CDCCCC4CA6855141CDCCCC7C34AA5441AE47E1DAA68551415C8FC22536AA54415C8FC215A785514148E17A9437AA54410AD7A370A68551411F85EB3139AA5441CDCCCC6CA58551413D0AD7B339AA5441
+</a>
+
+<b>
+0106000000010000000103000000010000002C0000001883DC5FA88551413F7330D01FAA54416485B82AA78551414A93D5331BAA544175A53737A6855141832CDD9916AA5441C323244DA58551418D63C85810AA5441D4CD7E9AA48551417D5FD8920BAA54419023E261A38551415D75FEA304AA54419850E42BA2855141C99BFC2BFEA954414857810BA185514188246527F8A9544115F56F5F9B8551410C3EC1EEF9A95441E7A527A397855141E1AF8733FBA954417B33E09F98855141BAA4427700AA5441E635FC4E998551410140A28805AA544113C78C9399855141ABA8EE130AAA54419F30AED899855141D07CB5120EAA54411C79A53E9A855141E9F23C8D12AA5441BFBDAF1B9B855141A3DE803118AA544135E791E19B8551418FEBC9421CAA5441F2F22C619C85514127F690BF1EAA5441C263E3E09C8551414F88D40121AA5441CA35E4B09D8551418B71EA7024AA5441CF7212679E8551416B52568A27AA5441441BF50EA0855141C0388E5E2DAA544146EBEE39A1855141BBA9254E31AA5441D80E7802A2855141D828604234AA54412EF70015A38551416303E41439AA5441D0E78308A8855141817281BB38AA5441FE9BB93AA98551416AF78DB63EAA544108B7D9B7A5855141815C1B9144AA5441B2859A2FA68551417843A2BD46AA544185FC4212A8855141807058D04FAA5441A0DCC653A98551418DBFBFD758AA5441295C8FD2AD855141B81E850B5BAA5441C818E2BDAF855141FFADC92E5CAA544188C30BA5B18551412139BCBB5DAA5441FD540944B385514143C4AE485FAA54416D8FF552B48551417C8779B360AA5441EFC60E20B385514199986CAB55AA5441A4D27257B2855141983656BC4EAA5441A60D069EB1855141A0869B5348AA544193B4A27CB185514173722C2C47AA54413F846627B0855141CD64375C40AA54410D5B97A0AD8551416EC58A8034AA5441D32026D7A985514107FC1A6925AA54411883DC5FA88551413F7330D01FAA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>429418 - 1264104
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000800000001F85EBB12762514148E17A7436C154415C8FC2A5256251410AD7A3D039C154410AD7A32026625141E17A149E3EC154417B14AE07256251415C8FC2D53FC154411F85EBE122625141AE47E13A40C154418FC2F5D8216251410AD7A33043C1544148E17A54196251410AD7A3C04AC1544152B81E05176251410AD7A3F04BC15441E17A14CE16625141EC51B80E4DC15441AE47E16A15625141D7A3709D4EC15441B81E85AB126251417B14AE674EC15441A4703DCA0C625141295C8F1250C15441295C8F420C6251417B14AE2751C15441EC51B81E0A62514152B81EA552C15441F6285C5F09625141D7A370DD5EC154416666663604625141AE47E1BA64C15441F6285CDF00625141295C8FF269C15441B81E85BBFF6151419A9999B96BC154413D0AD783FE6151410AD7A3C06CC1544152B81E75FD615141713D0A076FC15441295C8FA2FD61514152B81EF570C1544152B81E95FC6151417B14AED772C15441EC51B8FEF9615141AE47E1AA77C15441F6285CCFF86151411F85EB717CC154413D0AD7E3F7615141713D0AC77FC154411F85EBC1F76151413D0AD7E382C154418FC2F548F8615141B81E85AB87C154413D0AD753F8615141EC51B8DE8AC15441F6285C5FF86151411F85EBA18DC15441713D0A27F8615141AE47E12A94C154410AD7A320F9615141295C8F5298C1544148E17A44F8615141EC51B87E9CC1544148E17A24F861514166666666A2C15441F6285CDFF86151418FC2F5A8A7C1544152B81ED5FA61514166666676ACC15441333333F3FC615141F6285C3FAFC15441F6285C4FFE61514114AE4701B2C15441CDCCCC6C00625141C3F5286CB9C154419A99999904625141AE47E19AC1C1544148E17A24086251410AD7A3E0C7C154411F85EBB109625141C3F528BCC9C15441295C8F1210625141666666A6CEC1544185EB513813625141C3F528CCCCC15441A4703D3A166251410AD7A3C0CBC15441E17A146E136251417B14AE97C6C15441295C8F320F625141CDCCCCECBCC15441713D0A470A625141713D0AA7B1C1544152B81E650862514148E17A34AAC15441E17A147E06625141CDCCCCECA1C15441295C8F2205625141713D0A479AC15441C3F528DC0A625141F6285C8F99C15441C3F5288C09625141E17A144E92C154418FC2F51809625141000000508DC1544152B81E1509625141D7A3703D83C154417B14AE770962514148E17A347FC1544148E17A940A625141E17A148E78C15441713D0AF70B625141F6285C8F71C154410AD7A36012625141713D0A3773C15441F6285CCF1662514185EB516874C15441AE47E1BA1F62514114AE47216FC154411F85EBF11F6251410AD7A3006FC15441D7A3707D20625141333333B372C15441CDCCCC7C206251411F85EB0175C15441A4703D3A20625141E17A145E77C1544148E17A64236251410AD7A3B075C154415C8FC23527625141A4703DEA73C15441B81E855B2D625141295C8F6271C15441713D0AB733625141713D0AB76EC154411F85EBC13362514114AE47C16AC154411F85EB6138625141295C8F526AC15441C3F528CC386251410AD7A3A06EC15441C3F5289C3962514148E17A2475C15441000000B03A6251411F85EB217BC15441AE47E19A42625141C3F528BC79C15441C3F5280C4162514152B81E3570C154419A99999941625141295C8F0270C15441C3F528BC51625141E17A147E6BC154418FC2F51850625141E17A142E61C15441D7A3704D4962514185EB51E841C1544133333323526251411F85EBD141C15441333333E352625141000000D041C154418FC2F568556251415C8FC2F540C154413D0AD7F355625141666666C640C1544133333323576251410000006040C15441B81E858B5862514114AE47313FC15441EC51B88E5B625141000000203DC15441E17A14CE5A62514114AE47D136C15441CDCCCCBC5A6251419A99995936C15441F6285C2F596251415C8FC27536C15441EC51B84E58625141C3F5280C37C1544148E17A84576251415C8FC24537C1544114AE4781566251417B14AE3737C1544148E17AD455625141E17A14FE36C15441B81E856B54625141295C8FD236C15441713D0A7753625141E17A14FE36C1544152B81E655262514114AE47E136C15441C3F528FC506251417B14AE3737C15441F6285C4F50625141C3F5289C37C154410AD7A3B04F625141AE47E13A38C15441F6285C2F4F6251413333338338C154411F85EBF14D6251413333338338C15441A4703DAA4D625141E17A14AE38C15441666666A64C6251411F85EB2139C1544114AE47B14B6251413333331339C15441295C8F824A625141333333A339C15441C3F5289C49625141333333A339C154410AD7A350486251416666668639C1544100000030476251410000003039C15441AE47E1AA4562514114AE479138C15441F6285CEF4462514148E17AE437C154415C8FC225446251415C8FC2D537C154415C8FC20543625141E17A148E37C154410AD7A310426251418FC2F5B837C154411F85EBE1406251416666666638C15441000000D03F625141295C8FF237C15441F6285C3F3F625141AE47E13A38C154418FC2F5583E6251417B14AEE738C154413D0AD7F33D625141E17A14AE38C154418FC2F5383D625141AE47E13A38C15441EC51B86E3C625141000000A038C154419A9999793B6251410000003039C15441CDCCCCCC3A625141CDCCCCBC38C154417B14AEE739625141333333D338C154411F85EBA137625141C3F5288C39C15441A4703DEA346251413D0AD7433CC15441EC51B88E2A6251416666662639C154417B14AE6729625141EC51B86E36C154411F85EBB12762514148E17A7436C15441
+</a>
+
+<b>
+010600000001000000010300000001000000CD000000FD148F9B4A625141FF7607EA47C15441D7A3704D4962514185EB51E841C15441951D4354496251418E9F40E841C1544133333323526251411F85EBD141C15441333333E352625141000000D041C154418FC2F568556251415C8FC2F540C154413D0AD7F355625141666666C640C1544133333323576251410000006040C15441B81E858B5862514114AE47313FC15441EC51B88E5B625141000000203DC15441E17A14CE5A62514114AE47D136C15441CDCCCCBC5A6251419A99995936C15441F6285C2F596251415C8FC27536C15441EC51B84E58625141C3F5280C37C1544148E17A84576251415C8FC24537C1544114AE4781566251417B14AE3737C1544148E17AD455625141E17A14FE36C15441B81E856B54625141295C8FD236C15441713D0A7753625141E17A14FE36C1544152B81E655262514114AE47E136C15441C3F528FC506251417B14AE3737C15441F6285C4F50625141C3F5289C37C154410AD7A3B04F625141AE47E13A38C15441F6285C2F4F6251413333338338C154411F85EBF14D6251413333338338C15441A4703DAA4D625141E17A14AE38C15441666666A64C6251411F85EB2139C1544114AE47B14B6251413333331339C15441295C8F824A625141333333A339C15441C3F5289C49625141333333A339C154410AD7A350486251416666668639C1544100000030476251410000003039C15441AE47E1AA4562514114AE479138C15441F6285CEF4462514148E17AE437C154415C8FC225446251415C8FC2D537C154415C8FC20543625141E17A148E37C154410AD7A310426251418FC2F5B837C154411F85EBE1406251416666666638C15441000000D03F625141295C8FF237C15441F6285C3F3F625141AE47E13A38C154418FC2F5583E6251417B14AEE738C154413D0AD7F33D625141E17A14AE38C154418FC2F5383D625141AE47E13A38C15441EC51B86E3C625141000000A038C154419A9999793B6251410000003039C15441CDCCCCCC3A625141CDCCCCBC38C154417B14AEE739625141333333D338C154411F85EBA137625141C3F5288C39C15441A4703DEA346251413D0AD7433CC15441EC51B88E2A6251416666662639C154417B14AE6729625141EC51B86E36C154411F85EBB12762514148E17A7436C154415C8FC2A5256251410AD7A3D039C154410AD7A32026625141E17A149E3EC154417B14AE07256251415C8FC2D53FC154411F85EBE122625141AE47E13A40C154418FC2F5D8216251410AD7A33043C1544148E17A54196251410AD7A3C04AC1544152B81E05176251410AD7A3F04BC15441E17A14CE16625141EC51B80E4DC15441AE47E16A15625141D7A3709D4EC15441B81E85AB126251417B14AE674EC15441A4703DCA0C625141295C8F1250C15441295C8F420C6251417B14AE2751C15441EC51B81E0A62514152B81EA552C15441F6285C5F09625141D7A370DD5EC154416666663604625141AE47E1BA64C15441F10BAEE70162514177BCA85568C1544198F2031CFF615141B5F798BD6CC154419E518B9501625141515CA4316BC154419954782904625141C450460F6AC15441955765BD066251414BFD1CB868C15441A3462E370E6251413F9E953E66C15441E8CD5312106251418E509B7865C15441463B7BAB11625141E1306EA564C15441E8FE0D991262514115FD712164C1544137E2CD591462514169DD444E63C15441B563C4A315625141AC33B0A262C154416183F17616625141E62D811162C15441B066B137186251413E3C213161C15441D5D907621A6251418CEE266B60C154415CB798911B625141A0788E4360C154413DA3C9E01B6251414C98BB1661C15441C54FA0891A6251413C0E543E61C1544166E278F0186251411DFA848D61C1544104A31E4A17625141BFEBE46D62C15441AB63C4A3156251416C0B124163C154418B1E3B6C13625141E45E3B9864C1544170077F27116251417CC633A065C154415B1E90D50E6251410F005FB566C15441601BA3410C625141AB9524B067C15441E299ACF70A6251417DF7ED2668C15441842C855E096251415387849068C154412AED2AB807625141145FE62E69C154410BA8A18005625141B622791C6AC15441FAEC7F2103625141495CA4316BC1544181689C43FF6151415917C6906DC1544152B81E75FD615141713D0A076FC15441295C8FA2FD61514152B81EF570C1544152B81E95FC6151417B14AED772C15441EC51B8FEF9615141AE47E1AA77C15441F6285CCFF86151411F85EB717CC154413D0AD7E3F7615141713D0AC77FC154411F85EBC1F76151413D0AD7E382C154418FC2F548F8615141B81E85AB87C154413D0AD753F8615141EC51B8DE8AC15441F6285C5FF86151411F85EBA18DC15441713D0A27F8615141AE47E12A94C154410AD7A320F9615141295C8F5298C1544148E17A44F8615141EC51B87E9CC1544148E17A24F861514166666666A2C15441F6285CDFF86151418FC2F5A8A7C1544152B81ED5FA61514166666676ACC15441333333F3FC615141F6285C3FAFC15441F6285C4FFE61514114AE4701B2C15441CDCCCC6C00625141C3F5286CB9C154419A99999904625141AE47E19AC1C1544148E17A24086251410AD7A3E0C7C154411F85EBB109625141C3F528BCC9C15441295C8F1210625141666666A6CEC1544185EB513813625141C3F528CCCCC15441A4703D3A166251410AD7A3C0CBC15441E17A146E136251417B14AE97C6C15441295C8F320F625141CDCCCCECBCC15441713D0A470A625141713D0AA7B1C1544152B81E650862514148E17A34AAC15441E17A147E06625141CDCCCCECA1C154417A542E2A056251414810F9719AC15441B450703C04625141A23A295E9AC15441F76DA389036251416F878F8D99C1544198FC3C30036251414849C2F195C15441DB19707D02625141A0508EA88FC154417CA8092402625141DC03275388C154417CA80924026251417C1DF39E82C15441DB19707D02625141398BF2F67DC154410DCD094E0362514122B7BED778C15441B450703C04625141A67C571772C154414575706605625141D2C556456CC15441A3E6D6BF0562514184BE89686AC15441CB24A45B09625141F399893E69C15441D60E3EEB0B625141942823E568C154417E92A4D90C625141942823E568C154413580A4440C6251415DF589276CC15441A45BA41A0B625141155857ED70C15441B7A655F00B625141E6DC39B171C15441713D0AF70B625141F6285C8F71C154410AD7A36012625141713D0A3773C15441F6285CCF1662514185EB516874C15441AE47E1BA1F62514114AE47216FC154411F85EBF11F6251410AD7A3006FC15441D7A3707D20625141333333B372C15441CDCCCC7C206251411F85EB0175C15441A4703D3A20625141E17A145E77C1544148E17A64236251410AD7A3B075C154415C8FC23527625141A4703DEA73C15441B81E855B2D625141295C8F6271C15441713D0AB733625141713D0AB76EC154411F85EBC13362514114AE47C16AC154411F85EB6138625141295C8F526AC15441C3F528CC386251410AD7A3A06EC15441C3F5289C3962514148E17A2475C15441000000B03A6251411F85EB217BC15441AE47E19A42625141C3F528BC79C15441C3F5280C4162514152B81E3570C154419A99999941625141295C8F0270C15441C3F528BC51625141E17A147E6BC154419BB667DA4F625141F3552F0E60C15441F16FCA744E62514132B3206460C15441F70F09414B625141B2A66A7C61C154411008CCA6476251419909BFB762C1544111909D4933625141F6AB39AE69C154418BE33DED31625141032657256AC154414DC248D931625141E80C2A2C6AC154417C1209D6306251410CBD866269C15441970BB91A3062514199E6495C68C154410AA3F8B02E625141788C4AB366C15441181F4CD92D625141104C851B66C1544104C639262D625141F8DD819D65C154414A4E56662B62514171952A7364C15441B5D3B5152A625141162E73A563C1544187FED9612862514155522A5662C15441E3344E3F266251410F65646861C15441DC5ACDF5256251414C13D44C61C15441060865D524625141E1E99FBC60C15441FFEA9D9A236251418E71715560C1544101348370206251417D982ADA5FC15441111ADCAC1E62514121FCB2DF5FC15441AC35D4171D625141362671EF5FC15441EE4F2C8E1C6251418EDCCAF45FC15441ACC07F5D1C6251416F2EAFF65FC15441122DF3E01D625141239D18D45EC15441C8116591216251417111936A5CC154416C09B6A728625141909DEEBF57C15441A1FC01802B62514121B1ADDF55C15441CA86BC3A2C6251417CF8B56455C15441232BE7152E6251412FD7CB2B54C15441890D90133462514190E6748350C15441B167EC08376251412B72302A4FC15441F3D6CDC23A625141973E696C4DC15441B46608B63D625141DB501DB64CC1544131B87B1342625141769562A84BC1544146BB18CC45625141276D9DF74AC1544128DA00DB4A62514100E353074AC1544114247A0D4B6251413B0F50F649C15441FD148F9B4A625141FF7607EA47C15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>429418 - 3189466
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+010600000001000000010300000001000000800000001F85EBB12762514148E17A7436C154415C8FC2A5256251410AD7A3D039C154410AD7A32026625141E17A149E3EC154417B14AE07256251415C8FC2D53FC154411F85EBE122625141AE47E13A40C154418FC2F5D8216251410AD7A33043C1544148E17A54196251410AD7A3C04AC1544152B81E05176251410AD7A3F04BC15441E17A14CE16625141EC51B80E4DC15441AE47E16A15625141D7A3709D4EC15441B81E85AB126251417B14AE674EC15441A4703DCA0C625141295C8F1250C15441295C8F420C6251417B14AE2751C15441EC51B81E0A62514152B81EA552C15441F6285C5F09625141D7A370DD5EC154416666663604625141AE47E1BA64C15441F6285CDF00625141295C8FF269C15441B81E85BBFF6151419A9999B96BC154413D0AD783FE6151410AD7A3C06CC1544152B81E75FD615141713D0A076FC15441295C8FA2FD61514152B81EF570C1544152B81E95FC6151417B14AED772C15441EC51B8FEF9615141AE47E1AA77C15441F6285CCFF86151411F85EB717CC154413D0AD7E3F7615141713D0AC77FC154411F85EBC1F76151413D0AD7E382C154418FC2F548F8615141B81E85AB87C154413D0AD753F8615141EC51B8DE8AC15441F6285C5FF86151411F85EBA18DC15441713D0A27F8615141AE47E12A94C154410AD7A320F9615141295C8F5298C1544148E17A44F8615141EC51B87E9CC1544148E17A24F861514166666666A2C15441F6285CDFF86151418FC2F5A8A7C1544152B81ED5FA61514166666676ACC15441333333F3FC615141F6285C3FAFC15441F6285C4FFE61514114AE4701B2C15441CDCCCC6C00625141C3F5286CB9C154419A99999904625141AE47E19AC1C1544148E17A24086251410AD7A3E0C7C154411F85EBB109625141C3F528BCC9C15441295C8F1210625141666666A6CEC1544185EB513813625141C3F528CCCCC15441A4703D3A166251410AD7A3C0CBC15441E17A146E136251417B14AE97C6C15441295C8F320F625141CDCCCCECBCC15441713D0A470A625141713D0AA7B1C1544152B81E650862514148E17A34AAC15441E17A147E06625141CDCCCCECA1C15441295C8F2205625141713D0A479AC15441C3F528DC0A625141F6285C8F99C15441C3F5288C09625141E17A144E92C154418FC2F51809625141000000508DC1544152B81E1509625141D7A3703D83C154417B14AE770962514148E17A347FC1544148E17A940A625141E17A148E78C15441713D0AF70B625141F6285C8F71C154410AD7A36012625141713D0A3773C15441F6285CCF1662514185EB516874C15441AE47E1BA1F62514114AE47216FC154411F85EBF11F6251410AD7A3006FC15441D7A3707D20625141333333B372C15441CDCCCC7C206251411F85EB0175C15441A4703D3A20625141E17A145E77C1544148E17A64236251410AD7A3B075C154415C8FC23527625141A4703DEA73C15441B81E855B2D625141295C8F6271C15441713D0AB733625141713D0AB76EC154411F85EBC13362514114AE47C16AC154411F85EB6138625141295C8F526AC15441C3F528CC386251410AD7A3A06EC15441C3F5289C3962514148E17A2475C15441000000B03A6251411F85EB217BC15441AE47E19A42625141C3F528BC79C15441C3F5280C4162514152B81E3570C154419A99999941625141295C8F0270C15441C3F528BC51625141E17A147E6BC154418FC2F51850625141E17A142E61C15441D7A3704D4962514185EB51E841C1544133333323526251411F85EBD141C15441333333E352625141000000D041C154418FC2F568556251415C8FC2F540C154413D0AD7F355625141666666C640C1544133333323576251410000006040C15441B81E858B5862514114AE47313FC15441EC51B88E5B625141000000203DC15441E17A14CE5A62514114AE47D136C15441CDCCCCBC5A6251419A99995936C15441F6285C2F596251415C8FC27536C15441EC51B84E58625141C3F5280C37C1544148E17A84576251415C8FC24537C1544114AE4781566251417B14AE3737C1544148E17AD455625141E17A14FE36C15441B81E856B54625141295C8FD236C15441713D0A7753625141E17A14FE36C1544152B81E655262514114AE47E136C15441C3F528FC506251417B14AE3737C15441F6285C4F50625141C3F5289C37C154410AD7A3B04F625141AE47E13A38C15441F6285C2F4F6251413333338338C154411F85EBF14D6251413333338338C15441A4703DAA4D625141E17A14AE38C15441666666A64C6251411F85EB2139C1544114AE47B14B6251413333331339C15441295C8F824A625141333333A339C15441C3F5289C49625141333333A339C154410AD7A350486251416666668639C1544100000030476251410000003039C15441AE47E1AA4562514114AE479138C15441F6285CEF4462514148E17AE437C154415C8FC225446251415C8FC2D537C154415C8FC20543625141E17A148E37C154410AD7A310426251418FC2F5B837C154411F85EBE1406251416666666638C15441000000D03F625141295C8FF237C15441F6285C3F3F625141AE47E13A38C154418FC2F5583E6251417B14AEE738C154413D0AD7F33D625141E17A14AE38C154418FC2F5383D625141AE47E13A38C15441EC51B86E3C625141000000A038C154419A9999793B6251410000003039C15441CDCCCCCC3A625141CDCCCCBC38C154417B14AEE739625141333333D338C154411F85EBA137625141C3F5288C39C15441A4703DEA346251413D0AD7433CC15441EC51B88E2A6251416666662639C154417B14AE6729625141EC51B86E36C154411F85EBB12762514148E17A7436C15441
+</a>
+
+<b>
+010600000001000000010300000001000000CD000000FD148F9B4A625141FF7607EA47C15441D7A3704D4962514185EB51E841C15441951D4354496251418E9F40E841C1544133333323526251411F85EBD141C15441333333E352625141000000D041C154418FC2F568556251415C8FC2F540C154413D0AD7F355625141666666C640C1544133333323576251410000006040C15441B81E858B5862514114AE47313FC15441EC51B88E5B625141000000203DC15441E17A14CE5A62514114AE47D136C15441CDCCCCBC5A6251419A99995936C15441F6285C2F596251415C8FC27536C15441EC51B84E58625141C3F5280C37C1544148E17A84576251415C8FC24537C1544114AE4781566251417B14AE3737C1544148E17AD455625141E17A14FE36C15441B81E856B54625141295C8FD236C15441713D0A7753625141E17A14FE36C1544152B81E655262514114AE47E136C15441C3F528FC506251417B14AE3737C15441F6285C4F50625141C3F5289C37C154410AD7A3B04F625141AE47E13A38C15441F6285C2F4F6251413333338338C154411F85EBF14D6251413333338338C15441A4703DAA4D625141E17A14AE38C15441666666A64C6251411F85EB2139C1544114AE47B14B6251413333331339C15441295C8F824A625141333333A339C15441C3F5289C49625141333333A339C154410AD7A350486251416666668639C1544100000030476251410000003039C15441AE47E1AA4562514114AE479138C15441F6285CEF4462514148E17AE437C154415C8FC225446251415C8FC2D537C154415C8FC20543625141E17A148E37C154410AD7A310426251418FC2F5B837C154411F85EBE1406251416666666638C15441000000D03F625141295C8FF237C15441F6285C3F3F625141AE47E13A38C154418FC2F5583E6251417B14AEE738C154413D0AD7F33D625141E17A14AE38C154418FC2F5383D625141AE47E13A38C15441EC51B86E3C625141000000A038C154419A9999793B6251410000003039C15441CDCCCCCC3A625141CDCCCCBC38C154417B14AEE739625141333333D338C154411F85EBA137625141C3F5288C39C15441A4703DEA346251413D0AD7433CC15441EC51B88E2A6251416666662639C154417B14AE6729625141EC51B86E36C154411F85EBB12762514148E17A7436C154415C8FC2A5256251410AD7A3D039C154410AD7A32026625141E17A149E3EC154417B14AE07256251415C8FC2D53FC154411F85EBE122625141AE47E13A40C154418FC2F5D8216251410AD7A33043C1544148E17A54196251410AD7A3C04AC1544152B81E05176251410AD7A3F04BC15441E17A14CE16625141EC51B80E4DC15441AE47E16A15625141D7A3709D4EC15441B81E85AB126251417B14AE674EC15441A4703DCA0C625141295C8F1250C15441295C8F420C6251417B14AE2751C15441EC51B81E0A62514152B81EA552C15441F6285C5F09625141D7A370DD5EC154416666663604625141AE47E1BA64C15441F10BAEE70162514177BCA85568C1544198F2031CFF615141B5F798BD6CC154419E518B9501625141515CA4316BC154419954782904625141C450460F6AC15441955765BD066251414BFD1CB868C15441A3462E370E6251413F9E953E66C15441E8CD5312106251418E509B7865C15441463B7BAB11625141E1306EA564C15441E8FE0D991262514115FD712164C1544137E2CD591462514169DD444E63C15441B563C4A315625141AC33B0A262C154416183F17616625141E62D811162C15441B066B137186251413E3C213161C15441D5D907621A6251418CEE266B60C154415CB798911B625141A0788E4360C154413DA3C9E01B6251414C98BB1661C15441C54FA0891A6251413C0E543E61C1544166E278F0186251411DFA848D61C1544104A31E4A17625141BFEBE46D62C15441AB63C4A3156251416C0B124163C154418B1E3B6C13625141E45E3B9864C1544170077F27116251417CC633A065C154415B1E90D50E6251410F005FB566C15441601BA3410C625141AB9524B067C15441E299ACF70A6251417DF7ED2668C15441842C855E096251415387849068C154412AED2AB807625141145FE62E69C154410BA8A18005625141B622791C6AC15441FAEC7F2103625141495CA4316BC1544181689C43FF6151415917C6906DC1544152B81E75FD615141713D0A076FC15441295C8FA2FD61514152B81EF570C1544152B81E95FC6151417B14AED772C15441EC51B8FEF9615141AE47E1AA77C15441F6285CCFF86151411F85EB717CC154413D0AD7E3F7615141713D0AC77FC154411F85EBC1F76151413D0AD7E382C154418FC2F548F8615141B81E85AB87C154413D0AD753F8615141EC51B8DE8AC15441F6285C5FF86151411F85EBA18DC15441713D0A27F8615141AE47E12A94C154410AD7A320F9615141295C8F5298C1544148E17A44F8615141EC51B87E9CC1544148E17A24F861514166666666A2C15441F6285CDFF86151418FC2F5A8A7C1544152B81ED5FA61514166666676ACC15441333333F3FC615141F6285C3FAFC15441F6285C4FFE61514114AE4701B2C15441CDCCCC6C00625141C3F5286CB9C154419A99999904625141AE47E19AC1C1544148E17A24086251410AD7A3E0C7C154411F85EBB109625141C3F528BCC9C15441295C8F1210625141666666A6CEC1544185EB513813625141C3F528CCCCC15441A4703D3A166251410AD7A3C0CBC15441E17A146E136251417B14AE97C6C15441295C8F320F625141CDCCCCECBCC15441713D0A470A625141713D0AA7B1C1544152B81E650862514148E17A34AAC15441E17A147E06625141CDCCCCECA1C154417A542E2A056251414810F9719AC15441B450703C04625141A23A295E9AC15441F76DA389036251416F878F8D99C1544198FC3C30036251414849C2F195C15441DB19707D02625141A0508EA88FC154417CA8092402625141DC03275388C154417CA80924026251417C1DF39E82C15441DB19707D02625141398BF2F67DC154410DCD094E0362514122B7BED778C15441B450703C04625141A67C571772C154414575706605625141D2C556456CC15441A3E6D6BF0562514184BE89686AC15441CB24A45B09625141F399893E69C15441D60E3EEB0B625141942823E568C154417E92A4D90C625141942823E568C154413580A4440C6251415DF589276CC15441A45BA41A0B625141155857ED70C15441B7A655F00B625141E6DC39B171C15441713D0AF70B625141F6285C8F71C154410AD7A36012625141713D0A3773C15441F6285CCF1662514185EB516874C15441AE47E1BA1F62514114AE47216FC154411F85EBF11F6251410AD7A3006FC15441D7A3707D20625141333333B372C15441CDCCCC7C206251411F85EB0175C15441A4703D3A20625141E17A145E77C1544148E17A64236251410AD7A3B075C154415C8FC23527625141A4703DEA73C15441B81E855B2D625141295C8F6271C15441713D0AB733625141713D0AB76EC154411F85EBC13362514114AE47C16AC154411F85EB6138625141295C8F526AC15441C3F528CC386251410AD7A3A06EC15441C3F5289C3962514148E17A2475C15441000000B03A6251411F85EB217BC15441AE47E19A42625141C3F528BC79C15441C3F5280C4162514152B81E3570C154419A99999941625141295C8F0270C15441C3F528BC51625141E17A147E6BC154419BB667DA4F625141F3552F0E60C15441F16FCA744E62514132B3206460C15441F70F09414B625141B2A66A7C61C154411008CCA6476251419909BFB762C1544111909D4933625141F6AB39AE69C154418BE33DED31625141032657256AC154414DC248D931625141E80C2A2C6AC154417C1209D6306251410CBD866269C15441970BB91A3062514199E6495C68C154410AA3F8B02E625141788C4AB366C15441181F4CD92D625141104C851B66C1544104C639262D625141F8DD819D65C154414A4E56662B62514171952A7364C15441B5D3B5152A625141162E73A563C1544187FED9612862514155522A5662C15441E3344E3F266251410F65646861C15441DC5ACDF5256251414C13D44C61C15441060865D524625141E1E99FBC60C15441FFEA9D9A236251418E71715560C1544101348370206251417D982ADA5FC15441111ADCAC1E62514121FCB2DF5FC15441AC35D4171D625141362671EF5FC15441EE4F2C8E1C6251418EDCCAF45FC15441ACC07F5D1C6251416F2EAFF65FC15441122DF3E01D625141239D18D45EC15441C8116591216251417111936A5CC154416C09B6A728625141909DEEBF57C15441A1FC01802B62514121B1ADDF55C15441CA86BC3A2C6251417CF8B56455C15441232BE7152E6251412FD7CB2B54C15441890D90133462514190E6748350C15441B167EC08376251412B72302A4FC15441F3D6CDC23A625141973E696C4DC15441B46608B63D625141DB501DB64CC1544131B87B1342625141769562A84BC1544146BB18CC45625141276D9DF74AC1544128DA00DB4A62514100E353074AC1544114247A0D4B6251413B0F50F649C15441FD148F9B4A625141FF7607EA47C15441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>264552 - 264122
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000022000000509778EBF2155141DF81F25728885441C3F5287CF4155141B81E85BB29885441666666C6FC1551419A9999192D8854411F85EB21FD15514185EB511828885441E57D1779FD155141BEB3DC002388544108915115FD155141A72B6F9C1E885441132A2513FD155141BA875756168854412135DCB4FD155141BFCC53C70B8854418E051BDFFD1551411F82118A05885441581973E8FD155141B656E52701885441295C8FC2FD155141AE47E14AFD875441C3F528DC02165141F6285C3FFD875441000000F00716514100000060FC8754410AD7A3F00B16514166666656FB8754415C8FC2150D165141AE47E10AFB8754417B14AEB70C1651418FC2F5E8F4875441333333F30C1651410AD7A360EB8754415C8FC2D50C1651419A999999E8875441A4703D5A0C1651419A999999E687544152B81E750B16514152B81E65E4875441333333E30416514152B81E15E9875441E17A146E0016514133333343EB875441AE47E12AFD1551417B14AEA7EB8754417A9A1F82F5155141A84C7F2FEA875441B0862AB3F4155141E93AF349F187544105D19D92F41551410B2AAF02F787544102B0F730F415514177BE9FB2FA875441821DD3ACF3155141E3847C88FE875441E258A1ADF3155141A95BA81604885441378C2864F3155141FF699A8E1088544123AF1E49F3155141FACC38B218885441A923388EF31551415A82DE75208854415B22B874F21551418FC9210227885441509778EBF2155141DF81F25728885441
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000E1ED24BAF3155141A60DE604028854411C826CF4F315514113E442C3FA875441CF129602F4155141B0743800F787544181A3BF10F41551417B108365F58754419B2B4244F4155141EE742D0BF18754415F770BA4F41551412121064FEA875441F43994B4F31551412121064FEA87544100000090F315514133333333E9875441713D0AE7F0155141295C8F72E9875441713D0A57EC155141AE47E1DAE98754417B14AE67E815514148E17AB4EA875441AE47E1CAE315514152B81E55EC8754410AD7A3E0E5155141295C8FD2F287544133333373E7155141E17A140EF887544166666616E8155141000000E0F7875441CDCCCC1CE815514133333323FC875441B81E85FBE7155141F6285C1F0588544152B81EF5E715514114AE47B11488544148E17A44E7155141713D0A971488544185EB5158E71551419A9999B918885441713D0A17E7155141666666662488544114AE4731EF155141B81E859B27885441E0C0DE6AF21551411F9B07AC27885441DDDE624AF3155141B795609C188854419E625366F3155141C46937E10F885441E1ED24BAF3155141A60DE60402885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>264552 - 265321
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000022000000509778EBF2155141DF81F25728885441C3F5287CF4155141B81E85BB29885441666666C6FC1551419A9999192D8854411F85EB21FD15514185EB511828885441E57D1779FD155141BEB3DC002388544108915115FD155141A72B6F9C1E885441132A2513FD155141BA875756168854412135DCB4FD155141BFCC53C70B8854418E051BDFFD1551411F82118A05885441581973E8FD155141B656E52701885441295C8FC2FD155141AE47E14AFD875441C3F528DC02165141F6285C3FFD875441000000F00716514100000060FC8754410AD7A3F00B16514166666656FB8754415C8FC2150D165141AE47E10AFB8754417B14AEB70C1651418FC2F5E8F4875441333333F30C1651410AD7A360EB8754415C8FC2D50C1651419A999999E8875441A4703D5A0C1651419A999999E687544152B81E750B16514152B81E65E4875441333333E30416514152B81E15E9875441E17A146E0016514133333343EB875441AE47E12AFD1551417B14AEA7EB8754417A9A1F82F5155141A84C7F2FEA875441B0862AB3F4155141E93AF349F187544105D19D92F41551410B2AAF02F787544102B0F730F415514177BE9FB2FA875441821DD3ACF3155141E3847C88FE875441E258A1ADF3155141A95BA81604885441378C2864F3155141FF699A8E1088544123AF1E49F3155141FACC38B218885441A923388EF31551415A82DE75208854415B22B874F21551418FC9210227885441509778EBF2155141DF81F25728885441
+</a>
+
+<b>
+01060000000100000001030000000100000011000000295C8FC2FD155141AE47E14AFD87544148E17AF4FD1551411F85EB6102885441E17A14AEFD1551417B14AEC70C885441713D0A17FD155141D7A370DD158854418FC2F5E8FC1551413D0AD7731B885441C3F5282CFD155141CDCCCC3C208854411F85EB41FE155141713D0A772588544152B81E15031651410000009023885441EC51B8CE021651411F85EB61218854410AD7A33002165141D7A3705D1F885441666666E601165141000000101D885441000000F001165141333333F3178854418FC2F54802165141295C8FF211885441295C8F120316514152B81E55048854417B14AE27031651410AD7A3C000885441C3F528DC02165141F6285C3FFD875441295C8FC2FD155141AE47E14AFD875441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>264552 - 1053480
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000022000000509778EBF2155141DF81F25728885441C3F5287CF4155141B81E85BB29885441666666C6FC1551419A9999192D8854411F85EB21FD15514185EB511828885441E57D1779FD155141BEB3DC002388544108915115FD155141A72B6F9C1E885441132A2513FD155141BA875756168854412135DCB4FD155141BFCC53C70B8854418E051BDFFD1551411F82118A05885441581973E8FD155141B656E52701885441295C8FC2FD155141AE47E14AFD875441C3F528DC02165141F6285C3FFD875441000000F00716514100000060FC8754410AD7A3F00B16514166666656FB8754415C8FC2150D165141AE47E10AFB8754417B14AEB70C1651418FC2F5E8F4875441333333F30C1651410AD7A360EB8754415C8FC2D50C1651419A999999E8875441A4703D5A0C1651419A999999E687544152B81E750B16514152B81E65E4875441333333E30416514152B81E15E9875441E17A146E0016514133333343EB875441AE47E12AFD1551417B14AEA7EB8754417A9A1F82F5155141A84C7F2FEA875441B0862AB3F4155141E93AF349F187544105D19D92F41551410B2AAF02F787544102B0F730F415514177BE9FB2FA875441821DD3ACF3155141E3847C88FE875441E258A1ADF3155141A95BA81604885441378C2864F3155141FF699A8E1088544123AF1E49F3155141FACC38B218885441A923388EF31551415A82DE75208854415B22B874F21551418FC9210227885441509778EBF2155141DF81F25728885441
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000E1ED24BAF3155141A60DE604028854411F826CF4F315514116E442C3FA875441D1129602F4155141B1743800F787544184A3BF10F415514176108365F58754419F2B4244F4155141EE742D0BF187544162770BA4F41551412221064FEA875441F43994B4F31551412221064FEA87544100000090F315514133333333E9875441713D0AE7F0155141295C8F72E9875441713D0A57EC155141AE47E1DAE98754417B14AE67E815514148E17AB4EA875441AE47E1CAE315514152B81E55EC8754410AD7A3E0E5155141295C8FD2F287544133333373E7155141E17A140EF887544166666616E8155141000000E0F7875441CDCCCC1CE815514133333323FC875441B81E85FBE7155141F6285C1F0588544152B81EF5E715514114AE47B11488544148E17A44E7155141713D0A971488544185EB5158E71551419A9999B918885441713D0A17E7155141666666662488544114AE4731EF155141B81E859B27885441E0C0DE6AF21551411F9B07AC27885441DDDE624AF3155141B795609C188854419E625366F3155141C46937E10F885441E1ED24BAF3155141A60DE60402885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>264552 - 1053586
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000022000000509778EBF2155141DF81F25728885441C3F5287CF4155141B81E85BB29885441666666C6FC1551419A9999192D8854411F85EB21FD15514185EB511828885441E57D1779FD155141BEB3DC002388544108915115FD155141A72B6F9C1E885441132A2513FD155141BA875756168854412135DCB4FD155141BFCC53C70B8854418E051BDFFD1551411F82118A05885441581973E8FD155141B656E52701885441295C8FC2FD155141AE47E14AFD875441C3F528DC02165141F6285C3FFD875441000000F00716514100000060FC8754410AD7A3F00B16514166666656FB8754415C8FC2150D165141AE47E10AFB8754417B14AEB70C1651418FC2F5E8F4875441333333F30C1651410AD7A360EB8754415C8FC2D50C1651419A999999E8875441A4703D5A0C1651419A999999E687544152B81E750B16514152B81E65E4875441333333E30416514152B81E15E9875441E17A146E0016514133333343EB875441AE47E12AFD1551417B14AEA7EB8754417A9A1F82F5155141A84C7F2FEA875441B0862AB3F4155141E93AF349F187544105D19D92F41551410B2AAF02F787544102B0F730F415514177BE9FB2FA875441821DD3ACF3155141E3847C88FE875441E258A1ADF3155141A95BA81604885441378C2864F3155141FF699A8E1088544123AF1E49F3155141FACC38B218885441A923388EF31551415A82DE75208854415B22B874F21551418FC9210227885441509778EBF2155141DF81F25728885441
+</a>
+
+<b>
+01060000000100000001030000000100000011000000295C8FC2FD155141AE47E14AFD87544148E17AF4FD1551411F85EB6102885441E17A14AEFD1551417B14AEC70C885441713D0A17FD155141D7A370DD158854418FC2F5E8FC1551413D0AD7731B885441C3F5282CFD155141CDCCCC3C208854411F85EB41FE155141713D0A772588544152B81E15031651410000009023885441EC51B8CE021651411F85EB61218854410AD7A33002165141D7A3705D1F885441666666E601165141000000101D885441000000F001165141333333F3178854418FC2F54802165141295C8FF211885441295C8F120316514152B81E55048854417B14AE27031651410AD7A3C000885441C3F528DC02165141F6285C3FFD875441295C8FC2FD155141AE47E14AFD875441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>264552 - 3864988
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000022000000509778EBF2155141DF81F25728885441C3F5287CF4155141B81E85BB29885441666666C6FC1551419A9999192D8854411F85EB21FD15514185EB511828885441E57D1779FD155141BEB3DC002388544108915115FD155141A72B6F9C1E885441132A2513FD155141BA875756168854412135DCB4FD155141BFCC53C70B8854418E051BDFFD1551411F82118A05885441581973E8FD155141B656E52701885441295C8FC2FD155141AE47E14AFD875441C3F528DC02165141F6285C3FFD875441000000F00716514100000060FC8754410AD7A3F00B16514166666656FB8754415C8FC2150D165141AE47E10AFB8754417B14AEB70C1651418FC2F5E8F4875441333333F30C1651410AD7A360EB8754415C8FC2D50C1651419A999999E8875441A4703D5A0C1651419A999999E687544152B81E750B16514152B81E65E4875441333333E30416514152B81E15E9875441E17A146E0016514133333343EB875441AE47E12AFD1551417B14AEA7EB8754417A9A1F82F5155141A84C7F2FEA875441B0862AB3F4155141E93AF349F187544105D19D92F41551410B2AAF02F787544102B0F730F415514177BE9FB2FA875441821DD3ACF3155141E3847C88FE875441E258A1ADF3155141A95BA81604885441378C2864F3155141FF699A8E1088544123AF1E49F3155141FACC38B218885441A923388EF31551415A82DE75208854415B22B874F21551418FC9210227885441509778EBF2155141DF81F25728885441
+</a>
+
+<b>
+0106000000010000000103000000010000001A000000E1ED24BAF3155141A60DE604028854411F826CF4F315514116E442C3FA875441D1129602F4155141B1743800F787544184A3BF10F415514176108365F58754419F2B4244F4155141EE742D0BF187544162770BA4F41551412221064FEA875441F43994B4F31551412221064FEA87544100000090F315514133333333E9875441713D0AE7F0155141295C8F72E9875441713D0A57EC155141AE47E1DAE98754417B14AE67E815514148E17AB4EA875441AE47E1CAE315514152B81E55EC8754410AD7A3E0E5155141295C8FD2F287544133333373E7155141E17A140EF887544166666616E8155141000000E0F7875441CDCCCC1CE815514133333323FC875441B81E85FBE7155141F6285C1F0588544152B81EF5E715514114AE47B11488544148E17A44E7155141713D0A971488544185EB5158E71551419A9999B918885441713D0A17E7155141666666662488544114AE4731EF155141B81E859B27885441E0C0DE6AF21551411F9B07AC27885441DDDE624AF3155141B795609C188854419E625366F3155141C46937E10F885441E1ED24BAF3155141A60DE60402885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>264552 - 3865071
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000100000022000000509778EBF2155141DF81F25728885441C3F5287CF4155141B81E85BB29885441666666C6FC1551419A9999192D8854411F85EB21FD15514185EB511828885441E57D1779FD155141BEB3DC002388544108915115FD155141A72B6F9C1E885441132A2513FD155141BA875756168854412135DCB4FD155141BFCC53C70B8854418E051BDFFD1551411F82118A05885441581973E8FD155141B656E52701885441295C8FC2FD155141AE47E14AFD875441C3F528DC02165141F6285C3FFD875441000000F00716514100000060FC8754410AD7A3F00B16514166666656FB8754415C8FC2150D165141AE47E10AFB8754417B14AEB70C1651418FC2F5E8F4875441333333F30C1651410AD7A360EB8754415C8FC2D50C1651419A999999E8875441A4703D5A0C1651419A999999E687544152B81E750B16514152B81E65E4875441333333E30416514152B81E15E9875441E17A146E0016514133333343EB875441AE47E12AFD1551417B14AEA7EB8754417A9A1F82F5155141A84C7F2FEA875441B0862AB3F4155141E93AF349F187544105D19D92F41551410B2AAF02F787544102B0F730F415514177BE9FB2FA875441821DD3ACF3155141E3847C88FE875441E258A1ADF3155141A95BA81604885441378C2864F3155141FF699A8E1088544123AF1E49F3155141FACC38B218885441A923388EF31551415A82DE75208854415B22B874F21551418FC9210227885441509778EBF2155141DF81F25728885441
+</a>
+
+<b>
+01060000000100000001030000000100000011000000295C8FC2FD155141AE47E14AFD87544148E17AF4FD1551411F85EB6102885441E17A14AEFD1551417B14AEC70C885441713D0A17FD155141D7A370DD158854418FC2F5E8FC1551413D0AD7731B885441C3F5282CFD155141CDCCCC3C208854411F85EB41FE155141713D0A772588544152B81E15031651410000009023885441EC51B8CE021651411F85EB61218854410AD7A33002165141D7A3705D1F885441666666E601165141000000101D885441000000F001165141333333F3178854418FC2F54802165141295C8FF211885441295C8F120316514152B81E55048854417B14AE27031651410AD7A3C000885441C3F528DC02165141F6285C3FFD875441295C8FC2FD155141AE47E14AFD875441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>429850 - 5147451
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000060000003D0AD713BB845141D7A370BDC4AB54415C8FC2B5CD84514148E17A54A7AB544114AE47A1CC845141E17A144EA6AB54411F85EB81C4845141A4703DBAB3AB5441AE47E1BAB984514166666686C3AB54413D0AD713BB845141D7A370BDC4AB5441
+</a>
+
+<b>
+0106000000010000000103000000010000001400000032B2CA13BB845141868265BDC4AB54411F85EBF1BB845141D7A3708DC5AB54418FC2F5B8BC8451417B14AE47C6AB5441D7A3707DBE845141EC51B89EC7AB5441E8432A94CF845141C371BA72AAAB5441AA011946CE845141BF332072A9AB544195EBBDD6CD845141B9DE2216A9AB5441401ABE00CD8451419ECE3372A8AB5441F18C5601CD845141EB2D4371A8AB54415CAC6B83CA845141CA228982A6AB54412824E012C98451410EA89764A5AB5441B5E5E0E7C7845141123CA079A4AB54410AD7A350C1845141666666C6AEAB544148E17AF4BD845141CDCCCCDCB2AB5441C3F5286CBA845141CDCCCC9CB8AB54413D0AD763B88451418FC2F5A8BBAB5441C3F5286CBA8451417B14AEC7BEAB5441E17A140EB88451415C8FC215C2AB5441AE47E1BAB984514166666686C3AB544132B2CA13BB845141868265BDC4AB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>510345 - 55630
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000010000005F000000F6285C5FF86951418FC2F5F8A1D7544133333393F4695141333333E3A3D75441713D0A37F6695141CDCCCC8CA4D75441F6285C8FF76951411F85EB81A6D7544114AE4791FA6951415C8FC2D5A4D75441A4703D0AFD6951417B14AE97A4D75441E17A145EFF6951411F85EB81A5D7544114AE4731006A51413D0AD7C3A7D75441CDCCCC8CFF695141AE47E17AA9D7544166666656006A51411F85EBC1AAD75441B81E85FB016A5141295C8F62ABD75441F6285C0F036A5141295C8F02ABD754418FC2F5B8056A514148E17A74ACD754417B14AEB70A6A51419A9999D9B0D75441A4703D1A0C6A514152B81E25B4D7544114AE47C1096A5141CDCCCC6CB6D754415C8FC2250C6A514185EB51D8B8D75441AE47E1FA0C6A51417B14AE27BBD75441EC51B86E0B6A514148E17AB4BCD75441295C8F120E6A514148E17AE4BDD75441000000800D6A51419A999969C0D754413D0AD7B30F6A5141B81E854BC2D75441C3F5284C146A5141D7A370FDC3D75441F6285C7F146A5141EC51B85EC7D75441B81E856B186A514133333313CAD754413D0AD7131C6A514133333333CBD75441666666E61D6A5141E17A149ECCD7544148E17A74206A5141295C8F32CDD75441D7A3708D226A514166666656D0D754410AD7A370246A5141CDCCCC1CCFD75441000000A0286A5141295C8F52CCD75441AE47E14A2C6A514133333303CAD754415C8FC2F52F6A5141C3F5281CC8D754419A999929316A5141EC51B8BEC7D75441D7A370ED2F6A5141CDCCCCDCC6D7544114AE47B12D6A5141A4703D0AC4D7544152B81E752B6A5141E17A14CEBFD754418FC2F5C8296A5141C3F528ACBBD7544166666666286A51417B14AE37B8D75441EC51B8DE276A5141295C8F92B6D7544114AE47B1276A514152B81E65B5D75441C3F5280C266A514133333383B3D7544166666666246A5141EC51B8CEB1D75441000000D0236A5141713D0A47B0D754419A999939246A51410AD7A3B0AED75441000000D0246A5141E17A14DEACD75441EC51B8DE236A5141000000C0AAD754415C8FC275226A5141E17A14DEA8D7544148E17A84206A51417B14AE47A7D75441F6285CDF1E6A51417B14AE47A6D75441E17A14EE1C6A5141CDCCCCFCA4D75441AE47E12A1C6A5141AE47E11AA4D75441F6285CDF1C6A5141CDCCCCFCA2D75441000000D01E6A5141B81E850BA2D7544148E17A84226A5141F6285CCFA2D75441AE47E1DA256A51419A999939A4D75441AE47E11A296A5141AE47E11AA6D75441D7A370DD2A6A514114AE47C1A6D75441B81E856B2A6A514152B81E259ED75441EC51B8BE2B6A51413333337395D75441333333132F6A51415C8FC2F58AD75441D7A3706D336A5141EC51B87E80D75441CDCCCCBC2E6A5141EC51B8EE80D75441000000A0286A51410AD7A34080D75441E17A140E236A5141E17A141E80D754411F85EBC11D6A5141295C8FC27ED75441295C8F52186A51411F85EBF17DD7544100000010156A5141666666667DD754417B14AEB7106A51415C8FC2957CD754417B14AE970D6A514185EB51E87BD754415C8FC205086A514148E17AF47AD754417B14AE67036A51413D0AD7237AD75441EC51B80E006A514148E17A1479D75441295C8FA2FC69514185EB51587AD75441AE47E1AAF96951417B14AE577AD75441713D0AC7F7695141F6285CFF7AD7544100000090F56951418FC2F5687DD75441B81E856BF56951419A9999697FD754415C8FC265F6695141A4703D8A80D7544185EB51C8F9695141000000F081D75441295C8FF2FA6951413D0AD7E382D75441B81E850B026A514152B81E158FD754415C8FC2C5016A5141D7A3709D93D75441713D0A87006A5141E17A14DE95D754418FC2F548FD695141000000E097D754410AD7A390F769514152B81EC596D75441EC51B81EF1695141F6285C1F8FD75441EC51B87EEF6951419A9999598ED7544148E17A44ED6951419A9999C98ED75441E17A147EEC695141713D0AC78FD7544100000090EC695141E17A148E91D75441EC51B81EEF695141295C8F8294D75441EC51B8CEF2695141295C8FB297D7544185EB5188F76951413D0AD7E39ED75441F6285C5FF86951418FC2F5F8A1D75441
+</a>
+
+<b>
+0106000000010000000103000000010000009F000000A9494598226A5141EAEE5E4FD0D7544148E5C59A286A5141F96D0B56CCD75441000000A0286A5141295C8F52CCD75441AE47E14A2C6A514133333303CAD7544130AB8D8A2D6A514109EC5E5DC9D75441DB2D87C52E6A5141CCA1FAB9C8D754415C8FC2F52F6A5141C3F5281CC8D754419A999929316A5141EC51B8BEC7D75441D7A370ED2F6A5141CDCCCCDCC6D7544114AE47B12D6A5141A4703D0AC4D75441F8F069FA2C6A51416836BCAFC2D75441542B046C2C6A5141899DE9A1C1D7544152B81E752B6A5141E17A14CEBFD754418FC2F5C8296A5141C3F528ACBBD7544166666666286A51417B14AE37B8D75441E00308EF276A5141B3C52FC5B6D75441EC51B8DE276A5141295C8F92B6D75441BC86BBC5276A5141BF4ACCECB5D75441912251AA276A514114D1265DB5D75441E0DCAF77246A5141CD3C9CE0B1D7544166666666246A5141EC51B8CEB1D75441000000D0236A5141713D0A47B0D754419A999939246A51410AD7A3B0AED7544152B226CE246A514149BAD0E3ACD75441B47AF35B246A5141BECF5AD9ABD75441D4EB248F236A5141F403C255AAD7544131D5280E236A514143AF8CA9A9D75441AC07327F226A5141AE63ADEAA8D754411446CB02226A514169E21F80A8D754410AC2F8EC206A51414E4E139DA7D754416C92C8241F6A514154FAE171A6D75441F6285CDF1E6A51417B14AE47A6D754419629E8811D6A51417E37295FA5D75441E17A14EE1C6A5141CDCCCCFCA4D75441AE47E12A1C6A5141AE47E11AA4D75441B6D262911C6A51417EA46578A3D754411C9FFFC61C6A514180606A23A3D75441F6285CDF1C6A5141CDCCCCFCA2D75441000000D01E6A5141B81E850BA2D754413F5010BC216A5141187FFAA5A2D754411C9566E5216A5141D77F83AEA2D7544148E17A84226A5141F6285CCFA2D75441AE47E1DA256A51419A999939A4D75441119D9FFE286A5141D6E1880AA6D75441ECD67A49296A51414F15172CA6D75441C86D6EDD2A6A514106DD46C1A6D75441497FC1A82A6A5141B732EEC5A2D75441B81E856B2A6A514152B81E259ED7544107D69EA22A6A5141044989BB9CD75441524D76D82A6A5141638A365A9BD75441EC51B8BE2B6A51413333337395D75441855CEEBA2C6A51419779B25892D75441D215FE7D2E6A5141F034C9CB8CD75441333333132F6A51415C8FC2F58AD7544107BAABDC2F6A5141A4BF591189D75441949588F22F6A5141B9DBC8DC88D75441D7A3706D336A5141EC51B87E80D754413A749CE92E6A5141FA338AEA80D75441CDCCCCBC2E6A5141EC51B8EE80D75441FBFAB7732A6A51416829AC7480D7544158CB06DB266A5141464AA93580D754413C1A9741236A51417E15541F80D75441E17A140E236A5141E17A141E80D75441373F58161E6A51415EAF31D87ED75441259BE492186A51413C2691FB7DD75441295C8F52186A51411F85EBF17DD7544100000010156A5141666666667DD7544181674217136A5141BB8EB9077DD75441BB0311AB056A51413A661A8A7AD754417B14AE67036A51413D0AD7237AD7544101029C11006A5141F31A651579D7544144A194ACFF69514139EBC03879D75441295C8FA2FC69514185EB51587AD7544198980877FC6951415D8848587AD75441F6A742B6F9695141CF88B0577AD754410A6E78B5F769514136047F127BD7544147F63987F7695141080FDD447BD75441E145E7ACF6695141A43AA7327CD7544121006C8FF5695141DF8A15717DD7544119992184F5695141AB4DBF0F7ED75441EBD4C680F5695141EA3AE33E7ED754416B8FD792F569514134C3F4967FD754410AD39430F6695141DCA3E64C80D75441125A35CCF66951413C3189B480D75441C27191B5F9695141A71E42E881D7544185EB51C8F9695141000000F081D75441295C8FF2FA6951413D0AD7E382D75441B81E850B026A514152B81E158FD754413D9694EE016A5141300E79F690D754415C8FC2C5016A5141D7A3709D93D75441C4BBB5AC016A514175F6C2CA93D75441713D0A87006A5141E17A14DE95D754414665196A006A51419773FFEF95D754418FC2F548FD695141000000E097D7544175D1CE14FD6951413ED7ECD597D7544175268205FC6951411ED983A197D754410AD7A390F769514152B81EC596D7544121859961F2695141C06F7B9E90D754411ADC3A2FF16951414248F3328FD754414BEBFAFCEF69514130449F958ED7544178F25C2EEF6951413CFE61698ED7544174E083C1ED69514190C20AB18ED75441BBC2CADDEC6951416D8DC64C8FD75441D43DB3DAEC69514182A7B9508FD75441A147A7D0EC695141C5208F5D8FD75441BE116282EC6951416B0C8BC18FD7544161E2E584EC695141BA0A2B7490D7544100000090EC695141E17A148E91D75441EC51B81EEF695141295C8F8294D75441EC51B8CEF2695141295C8FB297D75441D923BBD2F26951418368AAB897D7544169E9F019F56951410CE270309BD7544185EB5188F76951413D0AD7E39ED754417FA5469BF769514121D066299FD75441F6285C5FF86951418FC2F5F8A1D75441E25CB038F86951416805760CA2D754415F481899F46951416FD094E5A3D75441713D0A37F6695141CDCCCC8CA4D75441F6285C8FF76951411F85EB81A6D7544114AE4791FA6951415C8FC2D5A4D754416522A5D8FA6951416DB6C2CEA4D754411C6D3BE7FC6951416D101D9BA4D75441A4703D0AFD6951417B14AE97A4D75441E17A145EFF6951411F85EB81A5D7544114AE4731006A51413D0AD7C3A7D7544162B4392A006A5141BAA8ABD6A7D754414C8EEF90FF69514137D19681A9D754418024E74D006A5141E2C422B4AAD75441EA7FFF12026A51419E94635AABD75441F6285C0F036A5141295C8F02ABD754414AB2B114036A5141D1777405ABD754418FC2F5B8056A514148E17A74ACD75441C874C2BC056A51415DBCD277ACD75441A7492C9E076A514165BE681FAED754417B14AEB70A6A51419A9999D9B0D75441E32B54D20A6A514132C6FF18B1D7544186FC63E60A6A51417A31BA48B1D75441A4703D1A0C6A514152B81E25B4D7544114AE47C1096A5141CDCCCC6CB6D754415C8FC2250C6A514185EB51D8B8D75441AE47E1FA0C6A51417B14AE27BBD75441C30745DB0C6A51411D675747BBD75441EC51B86E0B6A514148E17AB4BCD75441295C8F120E6A514148E17AE4BDD754415BB9D50D0E6A5141216447F9BDD75441000000800D6A51419A999969C0D7544152BA2CC20F6A5141A4CACE50C2D75441C3F5284C146A5141D7A370FDC3D75441777A084E146A51411A80181DC4D7544195244981146A51415B490C60C7D75441304A0687166A5141F02516C5C8D75441E9E55678186A5141FDA12417CAD754413D0AD7131C6A514133333333CBD75441036944201C6A51415B99DD3CCBD754411071BFF81D6A51416CBC3EA2CCD75441039694E51E6A514161E801D8CCD7544148E17A74206A5141295C8F32CDD754412D3ACD3A216A51413B99735BCED75441A9494598226A5141EAEE5E4FD0D75441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>430060 - 1229604
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002B00000085EB5178156E51416666666690BA5441C3F5284C166E5141B81E857B8FBA54413D0AD7F3176E51413D0AD7638FBA54418FC2F548196E5141295C8F928FBA5441AE47E1CA196E51410000002090BA5441713D0A171C6E5141F6285C6F8FBA5441666666D61D6E514114AE47118FBA5441713D0AF7206E51415C8FC2058FBA544133333323246E514185EB510890BA5441CDCCCC6C256E514185EB51E890BA544166666696276E514114AE471193BA54411F85EBD12B6E51419A9999098FBA54411F85EB112D6E5141713D0A278EBA5441713D0A972D6E51417B14AE078CBA5441295C8FE2226E5141333333A386BA544133333363246E5141713D0A977EBA54419A999939206E514152B81E557EBA544185EB51E81B6E514114AE47E17EBA5441A4703DAA1A6E51418FC2F56881BA54417B14AE571A6E5141713D0A1785BA5441F6285C1F1B6E51413333337386BA544148E17AD4176E51413333334386BA5441F6285C8F116E5141F6285CAF83BA5441C3F5281C0B6E51415C8FC2B581BA5441295C8FA20D6E5141333333238DBA5441666666C60F6E51410AD7A3E096BA5441C3F5283C126E5141C3F528FCA1BA54415C8FC2B5146E51418FC2F5B8A0BA5441000000301F6E51410AD7A3109BBA5441C3F5281C236E514152B81E5597BA5441E17A14CE226E514152B81E5596BA54410AD7A340226E5141F6285CDF95BA544152B81E751C6E5141D7A3708D95BA544114AE47811C6E5141CDCCCCFC93BA5441CDCCCCFC1A6E51419A9999D993BA5441CDCCCCFC1A6E5141C3F528BC91BA5441C3F5286C196E514148E17AA491BA5441C3F5286C196E51413D0AD76393BA544166666646186E5141EC51B87E94BA5441EC51B84E176E51415C8FC29594BA544152B81E05166E5141CDCCCCFC93BA544185EB5178156E5141B81E859B92BA544185EB5178156E51416666666690BA5441
+</a>
+
+<b>
+0106000000010000000103000000010000002A00000085EB5178156E51416666666690BA5441C3F5284C166E5141B81E857B8FBA54413D0AD7F3176E51413D0AD7638FBA54418FC2F548196E5141295C8F928FBA5441AE47E1CA196E51410000002090BA5441713D0A171C6E5141F6285C6F8FBA5441666666D61D6E514114AE47118FBA5441713D0AF7206E51415C8FC2058FBA544133333323246E514185EB510890BA5441CDCCCC6C256E514185EB51E890BA544166666696276E514114AE471193BA54411F85EBD12B6E51419A9999098FBA54411F85EB112D6E5141713D0A278EBA5441713D0A972D6E51417B14AE078CBA5441295C8FE2226E5141333333A386BA544133333363246E5141713D0A977EBA544170574E68206E5141E46202587EBA54414CFD33DA1C6E5141A25F9BC27EBA544155BB107A1A6E5141354003FB7EBA5441439A1D2B196E51413A95889482BA544100B662D9176E51419221B43586BA5441BC087045106E5141A956564A83BA5441C3F5281C0B6E51415C8FC2B581BA5441295C8FA20D6E5141333333238DBA5441666666C60F6E51410AD7A3E096BA5441C3F5283C126E5141C3F528FCA1BA54415C8FC2B5146E51418FC2F5B8A0BA5441000000301F6E51410AD7A3109BBA5441C3F5281C236E514152B81E5597BA5441E17A14CE226E514152B81E5596BA54410AD7A340226E5141F6285CDF95BA544152B81E751C6E5141D7A3708D95BA544114AE47811C6E5141CDCCCCFC93BA5441CDCCCCFC1A6E51419A9999D993BA5441CDCCCCFC1A6E5141C3F528BC91BA5441C3F5286C196E514148E17AA491BA5441C3F5286C196E51413D0AD76393BA544166666646186E5141EC51B87E94BA5441EC51B84E176E51415C8FC29594BA544152B81E05166E5141CDCCCCFC93BA544185EB5178156E5141B81E859B92BA544185EB5178156E51416666666690BA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>430060 - 3390601
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000002B00000085EB5178156E51416666666690BA5441C3F5284C166E5141B81E857B8FBA54413D0AD7F3176E51413D0AD7638FBA54418FC2F548196E5141295C8F928FBA5441AE47E1CA196E51410000002090BA5441713D0A171C6E5141F6285C6F8FBA5441666666D61D6E514114AE47118FBA5441713D0AF7206E51415C8FC2058FBA544133333323246E514185EB510890BA5441CDCCCC6C256E514185EB51E890BA544166666696276E514114AE471193BA54411F85EBD12B6E51419A9999098FBA54411F85EB112D6E5141713D0A278EBA5441713D0A972D6E51417B14AE078CBA5441295C8FE2226E5141333333A386BA544133333363246E5141713D0A977EBA54419A999939206E514152B81E557EBA544185EB51E81B6E514114AE47E17EBA5441A4703DAA1A6E51418FC2F56881BA54417B14AE571A6E5141713D0A1785BA5441F6285C1F1B6E51413333337386BA544148E17AD4176E51413333334386BA5441F6285C8F116E5141F6285CAF83BA5441C3F5281C0B6E51415C8FC2B581BA5441295C8FA20D6E5141333333238DBA5441666666C60F6E51410AD7A3E096BA5441C3F5283C126E5141C3F528FCA1BA54415C8FC2B5146E51418FC2F5B8A0BA5441000000301F6E51410AD7A3109BBA5441C3F5281C236E514152B81E5597BA5441E17A14CE226E514152B81E5596BA54410AD7A340226E5141F6285CDF95BA544152B81E751C6E5141D7A3708D95BA544114AE47811C6E5141CDCCCCFC93BA5441CDCCCCFC1A6E51419A9999D993BA5441CDCCCCFC1A6E5141C3F528BC91BA5441C3F5286C196E514148E17AA491BA5441C3F5286C196E51413D0AD76393BA544166666646186E5141EC51B87E94BA5441EC51B84E176E51415C8FC29594BA544152B81E05166E5141CDCCCCFC93BA544185EB5178156E5141B81E859B92BA544185EB5178156E51416666666690BA5441
+</a>
+
+<b>
+0106000000010000000103000000010000002A00000085EB5178156E51416666666690BA5441C3F5284C166E5141B81E857B8FBA54413D0AD7F3176E51413D0AD7638FBA54418FC2F548196E5141295C8F928FBA5441AE47E1CA196E51410000002090BA5441713D0A171C6E5141F6285C6F8FBA5441666666D61D6E514114AE47118FBA5441713D0AF7206E51415C8FC2058FBA544133333323246E514185EB510890BA5441CDCCCC6C256E514185EB51E890BA544166666696276E514114AE471193BA54411F85EBD12B6E51419A9999098FBA54411F85EB112D6E5141713D0A278EBA5441713D0A972D6E51417B14AE078CBA5441295C8FE2226E5141333333A386BA544133333363246E5141713D0A977EBA544170574E68206E5141E46202587EBA54414CFD33DA1C6E5141A25F9BC27EBA544155BB107A1A6E5141354003FB7EBA5441439A1D2B196E51413A95889482BA544100B662D9176E51419221B43586BA5441BC087045106E5141A956564A83BA5441C3F5281C0B6E51415C8FC2B581BA5441295C8FA20D6E5141333333238DBA5441666666C60F6E51410AD7A3E096BA5441C3F5283C126E5141C3F528FCA1BA54415C8FC2B5146E51418FC2F5B8A0BA5441000000301F6E51410AD7A3109BBA5441C3F5281C236E514152B81E5597BA5441E17A14CE226E514152B81E5596BA54410AD7A340226E5141F6285CDF95BA544152B81E751C6E5141D7A3708D95BA544114AE47811C6E5141CDCCCCFC93BA5441CDCCCCFC1A6E51419A9999D993BA5441CDCCCCFC1A6E5141C3F528BC91BA5441C3F5286C196E514148E17AA491BA5441C3F5286C196E51413D0AD76393BA544166666646186E5141EC51B87E94BA5441EC51B84E176E51415C8FC29594BA544152B81E05166E5141CDCCCCFC93BA544185EB5178156E5141B81E859B92BA544185EB5178156E51416666666690BA5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>430858 - 264038
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000001000000290000005C8FC2B5954751413D0AD783AE835441B81E85FBA4475141713D0A97A98354410AD7A380A9475141E17A144EA983544148E17A44B247514185EB51B8A88354411F85EB11C94751417B14AE87A183544185EB5108D24751419A999919A083544185EB51B8DC475141EC51B8AE9F835441F6285C9FE8475141D7A3700D9C835441F6285C0FEA4751419A9999299A835441E17A149EE74751419A9999698583544185EB51B8E24751413333339373835441713D0A87DE475141F6285CBF64835441713D0AE7D7475141000000F04D835441E17A148ED6475141AE47E16A49835441AE47E14AD64751419A99998948835441B81E853BCF475141B81E85BB4C835441713D0A77C8475141333333A35283544152B81E65C1475141E17A14CE5A83544166666646BC475141713D0AD75F8354418FC2F548B54751411F85EB0166835441CDCCCCBCAC4751418FC2F5586C835441666666A6A247514114AE4771728354417B14AE27A2475141B81E853B74835441000000E0A5475141000000207C83544152B81ED5A7475141D7A3705D7B835441D7A3709DAA475141E17A140E81835441D7A3705DAF475141713D0AC77F8354410AD7A340B147514185EB51A886835441C3F528FCA64751411F85EB118A835441A4703D9AA34751413D0AD72381835441F6285C1FA2475141333333D37D835441AE47E1BAA34751411F85EB117A8354419A999939A1475141EC51B8CE74835441B81E858B9F47514114AE4751748354411F85EB719C475141A4703D2A768354417B14AE877C475141EC51B89E888354411F85EB717B4751418FC2F5A88A8354415C8FC2E58B4751415C8FC2E5AA835441333333838D4751413D0AD7D3AC8354411F85EBC1904751413D0AD783AE8354415C8FC2B5954751413D0AD783AE835441
+</a>
+
+<b>
+0106000000010000000103000000010000000A00000067159449C047514113669E4CA48354416C63B0A5C14751413193DADEA38354415EADF1DDBB4751411FEA3ED78683544127C590A2B3475141B032CD6989835441411F6A37A9475141E91BB5248D8354417C09D971A8475141EE379AAC92835441977D898FAC47514144AF090EA9835441370318DEAC475141BC8F9514A983544148E17A44B247514185EB51B8A883544167159449C047514113669E4CA4835441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>431121 - 205513
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000900000048E17A54144F51415C8FC2855C84544114AE4751144F5141295C8FC25B845441C3F5284C114F51411F85EB81598454417B14AE37034F5141AE47E12A6F845441D7A3706D074F5141CDCCCCDC708454418FC2F508014F514148E17AB47A84544100000020034F51413D0AD7B37B845441EC51B8AE0B4F514114AE47316C84544148E17A54144F51415C8FC2855C845441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000ABED85B9014F5141A568A0A4798454417A19706D074F5141D7A1CDDC708454414E7BAD37034F51410B82E22A6F845441ADB4809CFE4E51417678BB41768454413D0AD703F94E5141EC51B8DE7E8454417D3E7F8FF74E51417301BC467E845441FD7CA3E0F64E51410C435CFF7D845441A2F3D6C3F54E5141B49534E37D8454418D50C355F54E5141CAAFF6987E845441F5987BB2F44E51419F58BE547F8454413D0AD7F3F34E51410000003080845441B81E85DBF24E51411F85EBB1818454415F87CDC8F24E5141290424EF81845441697ECCBCF24E514162D2671682845441479664FCF14E5141279FDF69838454414CCD1E15F14E51411C60EB0185845441913FD692F34E5141EF1A81C48584544100000040FC4E5141A4703D6A8884544100000020034F51413D0AD7B37B845441834B6482014F5141A5A26FEE7A8454416F63F508014F5141EE1D7BB47A845441ABED85B9014F5141A568A0A479845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>431121 - 265341
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000000900000048E17A54144F51415C8FC2855C84544114AE4751144F5141295C8FC25B845441C3F5284C114F51411F85EB81598454417B14AE37034F5141AE47E12A6F845441D7A3706D074F5141CDCCCCDC708454418FC2F508014F514148E17AB47A84544100000020034F51413D0AD7B37B845441EC51B8AE0B4F514114AE47316C84544148E17A54144F51415C8FC2855C845441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000ABED85B9014F5141A568A0A4798454417A19706D074F5141D7A1CDDC708454414E7BAD37034F51410B82E22A6F845441ADB4809CFE4E51417678BB41768454413D0AD703F94E5141EC51B8DE7E8454417D3E7F8FF74E51417301BC467E845441FD7CA3E0F64E51410C435CFF7D845441A2F3D6C3F54E5141B49534E37D8454418D50C355F54E5141CAAFF6987E845441F5987BB2F44E51419F58BE547F8454413D0AD7F3F34E51410000003080845441B81E85DBF24E51411F85EBB1818454415F87CDC8F24E5141290424EF81845441697ECCBCF24E514162D2671682845441479664FCF14E5141279FDF69838454414CCD1E15F14E51411C60EB0185845441913FD692F34E5141EF1A81C48584544100000040FC4E5141A4703D6A8884544100000020034F51413D0AD7B37B845441834B6482014F5141A5A26FEE7A8454416F63F508014F5141EE1D7BB47A845441ABED85B9014F5141A568A0A479845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>431122 - 205497
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000002100000048E17AF4FA4E5141CDCCCCCC5184544100000050F94E5141295C8FE2518454413D0AD723F84E5141713D0AC75184544114AE4751F74E51419A9999C951845441713D0AD7F64E51411F85EB81518454411F85EBD1F54E514152B81E8551845441AE47E14AF34E5141D7A3707D51845441E17A14FEF04E514152B81EA5518454419A9999D9EF4E51411F85EBB1518454410AD7A3A0EE4E51415C8FC225528454410AD7A380ED4E5141C3F5288C528454417B14AEE7EC4E5141D7A3707D5284544185EB5178E74E5141713D0A775C845441E17A14FEE54E5141E17A14DE5E8454418FC2F5A8E04E51410AD7A35067845441E17A149EE04E5141B81E85AB698454411F85EB41E04E5141295C8F726C8454417B14AEF7D94E5141000000E071845441D7A3706DD34E51417B14AE777984544152B81E65D04E5141333333B37D845441CDCCCCACD54E5141E17A14AE87845441CDCCCC0CD74E5141CDCCCC0C898454411F85EB11D84E51411F85EB118A8454415C8FC2B5E04E5141713D0A878F8454419A999949E14E514148E17AE48F8454413D0AD7C3EA4E5141C3F5284C7E8454415C8FC235F64E514148E17A3469845441EC51B88EF04E5141295C8FE264845441CDCCCC5CF14E5141CDCCCC8C638454417B14AEE7F44E5141333333535E845441000000A0F74E51417B14AE275A845441CDCCCC6CFD4E514148E17AD45184544148E17AF4FA4E5141CDCCCCCC51845441
+</a>
+
+<b>
+0106000000010000000103000000010000002F00000072ABAB00E74E51410643494885845441072CD6C3EA4E51416B79294C7E8454419616C235F64E5141FB847A3469845441A5E2B78EF04E5141EE488EE26484544139C1CC5CF14E51417A0ACC8C6384544136CFACE7F44E5141879434535E845441A999FF9FF74E5141D007AE275A845441AFC4CB6CFD4E51419F937BD451845441F48B1C3FFC4E514121D6D0D05184544148E17AF4FA4E5141CDCCCCCC5184544100000050F94E5141295C8FE2518454413D0AD723F84E5141713D0AC7518454416FB4A4E3F74E5141AF0CD2C751845441E2EE4751F74E5141C8989AC951845441687A09D7F64E5141C721EC8151845441BEBF827DF64E514168650483518454411F85EBD1F54E514152B81E8551845441FBE85BAFF34E5141FFF3A17E518454412974E24AF34E51418FDE707D518454413D5C15FEF04E51411CE11FA551845441AADD0F07F04E5141CC2FEEAF518454419A9999D9EF4E51411F85EBB1518454410AD7A3A0EE4E51415C8FC225528454410AD7A380ED4E5141C3F5288C528454417B14AEE7EC4E5141D7A3707D5284544185EB5178E74E5141713D0A775C845441E17A14FEE54E5141E17A14DE5E845441860430C2E34E51415AA90B68628454413B0FF6A8E04E5141D1ABA450678454416414159EE04E51413E2B84AB69845441F79FEB41E04E5141A3B78F726C8454412E06E8BFDB4E5141AC1F5556708454417B14AEF7D94E5141000000E071845441C81E15A8D84E51418D2A9B657384544177C0716DD34E51411E20AF7779845441146958DCD14E5141E8387EA77B84544152B81E65D04E5141333333B37D845441821217FFD24E51417504FC9D82845441BC0ECDACD54E51412A3113AE87845441E1CBCC0CD74E51410DF6CB0C8984544125EBEC11D84E51415215EC118A845441E1706979DB4E51410AFC66388C8454415C8FC2B5E04E5141713D0A878F845441A8DBF502E14E51412C54D5B78F845441FEC79949E14E5141288B7AE48F8454411B6B5F3FE64E5141A5E224AF8684544172ABAB00E74E51410643494885845441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>431180 - 969329
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000100000001030000000100000047000000F6285C4FE3425141B81E853B119654419A9999B9EC4251413D0AD7830A965441A4703DDAEE425141E17A142E0996544166666646F4425141713D0AD70396544185EB5138F8425141C3F5288CFF955441D7A3709DFA4251419A9999C9FA9554418FC2F528FD42514185EB51A8F59554419A99994900435141B81E859BEE955441000000600243514152B81E85EB955441666666B606435141EC51B84EE7955441295C8FC20B43514185EB5178E49554417B14AE570D435141333333B3E3955441B81E851B11435141713D0AA7E59554410AD7A380124351415C8FC205E49554410AD7A37014435141713D0A77E1955441295C8FC21543514185EB51E8DE9554418FC2F57818435141713D0A57DB955441AE47E17A194351419A9999D9D7955441AE47E1CA1B435141A4703DEAD2955441E17A149E1B4351419A999969D0955441000000301D4351417B14AE57CC95544148E17AA41E4351418FC2F518C89554413D0AD7831F435141C3F5286CC595544152B81E751F4351410AD7A3B0C295544148E17AA41E4351415C8FC215BF9554411F85EBF11D435141D7A3702DBC955441CDCCCC8C1C43514152B81E15B59554410AD7A3801B43514152B81E65AE95544114AE47A11A4351418FC2F588AC955441295C8FE218435141B81E858BAB9554410AD7A34016435141C3F5283CAB955441333333230D435141E17A141EAD955441B81E85CB01435141E17A14FEAE955441CDCCCC1CF7425141C3F5288CB09554411F85EB81F04251419A999999B1955441713D0A17E1425141000000D0B2955441AE47E17AD642514133333303B39554413D0AD7A3CB42514133333343B39554415C8FC285C04251410AD7A390B3955441713D0A07B5425141F6285CBFB3955441666666B6A94251418FC2F518B4955441000000609D4251413D0AD793B59554415C8FC22591425141C3F5285CB795544185EB51088F425141AE47E1AAB7955441D7A370DD8E42514148E17AC4C395544152B81E758C42514152B81EF5CE95544152B81ED58A425141D7A3708DD49554419A9999298042514152B81E45D59554418FC2F5F874425141713D0A77D595544152B81E057342514148E17A34D5955441A4703D5A704251410AD7A3D0D49554419A9999496F42514185EB5108D6955441B81E859B7142514114AE4741E795544114AE4761744251415C8FC235F8955441E17A144E814251413D0AD713F8955441B81E854B8F425141F6285CEFF7955441D7A3706D9D425141AE47E1CAF795544166666606A9425141CDCCCC0CF79554410AD7A300B342514100000080F5955441713D0AF7BC42514166666626F2955441333333F3C1425141CDCCCCECF095544185EB5128CF425141AE47E1BAF0955441E17A14CED5425141E17A148EF09554413D0AD793D8425141B81E854BF1955441C3F5288CDA4251413D0AD773FC9554410AD7A390DB425141666666860296544185EB51B8DC42514148E17A94069654413D0AD733DF425141713D0A570C965441AE47E12AE0425141295C8F520E965441CDCCCC6CE1425141CDCCCC7C0F965441F6285C4FE3425141B81E853B11965441
+</a>
+
+<b>
+01060000000100000001030000000100000037000000CFD2EEC8814251410DB19612F89554414894BB2C7A4251412EE69B33F89554419C8AA66F74425141658C068AF8955441A2A17B2979425141BCA84FC01696544194793B337C42514114BF2E7928965441B8819AD57C42514171CB296F309654419CAFB4EE7F425141A995AAA8349654413972E5B389425141352CEE9C33965441BB033A8E98425141AB8CE3C432965441D55CD936A542514120EDD8EC319654418169A332B1425141E9466E96319654415F7B5E4BB14251413F17DDFB3096544100000050B142514148E17AA430965441E3DBB76FB1425141027CAE1830965441EFB578DFB14251413629395E2D965441D0456120B2425141D4D10A0E2D965441D7A3702DB242514148E17AD42C9654417B75E437B44251413DE286782A965441C53A03BEB4425141F157D9D229965441F54EBFD3B442514127F55BC429965441333333F3B4425141000000A029965441028B7555B5425141C877E26D29965441112083C4B642514114BF2E7928965441F9931C1FBC425141E31BA0F72596544185EB5108C24251413D0AD7F322965441AE47E10ACB425141666666461E965441A242A70BD0425141BFF67E501B96544199CB6197D04251416FC684F81A965441FD65214AD6425141A5CE2897179654414F35C0B5DB425141FC9A902214965441BC47BB91DE425141A4F2FAD811965441A0967643E1425141584EF69E0F965441520321C8DF4251411DC77AF90D965441AC10E1C4DE4251419A3B909C0B965441602B61BEDC42514178D185B706965441435A32DBDB42514110C2278C039654410AD7A390DB4251416666668602965441C3F5288CDA4251413D0AD773FC9554413D0AD793D8425141B81E854BF19554415C5A3F91D64251413DED2BC2F0955441D788A1A7D5425141514A3C9BF0955441F3D82194CF4251416D9D71C6F0955441163DC2FBC742514189F0A6F1F0955441CE7374DFC142514189F0A6F1F09554418EBA7AA0BF42514131EAF17EF195544103F842CEB94251410C7C914EF3955441275CE335B2425141C6ADE601F69554419C39475CAA425141FC7AB0D7F695544166666606A9425141CDCCCC0CF7955441128544A0A7425141E77EBA23F79554411A2B8483A2425141DBECFBB1F795544160B027459E42514150C411BDF7955441D7A3706D9D425141AE47E1CAF7955441B81E854B8F425141F6285CEFF7955441CFD2EEC8814251410DB19612F8955441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>431185 - 1269386
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000002B0000008FC2F59872435141F6285CDF9E955441EC51B81E784351411F85EB119C955441B81E850B7E43514133333363989554418FC2F56883435141000000A0949554410AD7A340874351416666660693955441333333038743514185EB5118879554415C8FC2C58643514152B81EE585955441AE47E1BA85435141C3F5282C85955441000000108443514148E17A2484955441E17A14DE8043514185EB517884955441AE47E13A7A435141295C8F8285955441CDCCCCDC7343514114AE478187955441333333D366435141D7A3706D8D955441EC51B84E604351410000006090955441666666D658435141AE47E1DA93955441CDCCCC9C4F43514152B81E1598955441CDCCCCFC4443514185EB51D89C955441666666363A43514185EB51D8A195544152B81ED52D435141E17A145EA69554410AD7A39023435141CDCCCCFCA89554415C8FC2D51F4351410AD7A370AA955441CDCCCCFC1E4351415C8FC2D5AD95544114AE470120435141EC51B8FEB195544148E17AF4224351419A9999E9B595544100000040284351419A999919B49554418FC2F5082B43514148E17AA4B3955441F6285C3F2E435141D7A3704DB29554411F85EB1133435141666666B6AF9554411F85EBD136435141C3F5286CAD955441EC51B8AE3A435141295C8F12AB955441333333C341435141E17A14FEA6955441666666F6444351410AD7A310A5955441E17A146E47435141713D0A37A3955441295C8F524A435141EC51B83EA0955441000000404C435141333333039F955441F6285CDF4E4351415C8FC2959D9554415C8FC2155A4351413D0AD703989554413333332359435141D7A3701DA1955441A4703D8A5B435141CDCCCCCCA8955441D7A370DD61435141A4703D7AA695544114AE47A169435141CDCCCCACA3955441F6285C4F6B4351418FC2F508A39554418FC2F59872435141F6285CDF9E955441
+</a>
+
+<b>
+0106000000010000000103000000010000004C000000B35211E5864351418FF7A63C93955441A7A13693844351418B00CF239495544164F81C57834351412B1D84AC94955441F93D76987F43514119A1D24C97955441F393B0BA7C4351414BE08B3499955441122AEA447843514173672EFA9B9554412B92A4637243514188D82AFF9E955441C6A11C406B4351411CA9BF07A3955441EC51B83E66435141D7A3704DA5955441CDCCCC0C5B435141E17A14CEA8955441B81E852B59435141713D0A37A195544114AE478159435141D7A370DD9D9554415C8FC2155A4351413D0AD70398955441D01B9F2553435141ACBF2A769B9554412151BE554F4351411976F35A9D95544193EE360C4D4351412F510A949E955441D29BFF0D4C4351413B252C239F955441645936124B435141AE012CC49F955441295C8F524A435141EC51B83EA0955441FEF4515E474351413F1CDB42A3955441D84CEB8C45435141CBECC99FA4955441B050F58D4443514185C18C4FA59554416F17591B4343514134DBC82EA695544104F1F3873F43514176F34547A8955441EC51B8AE3A435141295C8F12AB9554419866F0C636435141E89DDD72AD955441D507F45733435141630EA28BAF9554413130F98D2E435141C32C3823B29554413B98F7652C435141CCE3E612B3955441CEA541DD2A43514197C8A8ABB395544100000040284351419A999919B49554410AD7A31021435141F6285C8FB6955441E17A14DE2243514114AE4741C095544148E17A342B43514152B81EF5BE955441713D0A1736435141AE47E12ABE9554418FC2F5E83A435141B81E850BBD955441C3F5284C43435141E17A148EB8955441A4703D0A49435141D7A370DDB395544114AE47E14B4351419A999969B2955441F6285CEF534351411F85EB51AE955441CDCCCC0C5643514166666656B39554415C8FC2B5564351417B14AE47B995544185EB51084A43514114AE4781BD9554410AD7A3504143514166666636C095544152B81EA53A435141713D0A67C1955441295C8F72334351411F85EB31C2955441A4703D2A35435141C3F5289CC795544148E17A143743514185EB5108CC955441D7A370BD37435141AE47E18ACE9554416666663637435141CDCCCC2CD2955441713D0A173643514152B81E25D5955441295C8F9234435141C3F528FCD7955441F6285C8F3C435141713D0A77D69554417B14AED748435141F6285C8FD39554411F85EBF1524351413D0AD763D09554410AD7A3005B435141295C8FF2CD955441A4703D8A5E43514133333343DE955441D7A3700D9143514100000060C79554417B14AEE79F435141F6285C0FC0955441B81E856B9E435141B81E853BBD955441F6285C6F9D435141A4703D3ABA9554410AD7A3609C435141F6285C5FB79554415C8FC2559C43514133333343B49554411F85EB119C4351413D0AD7D3B0955441C458533C9B43514147955B3BAE955441A03E9D089B4351412CB41EEBAD955441365900049A435141ADFE9966AC9554413547EA8698435141568F7C1FAB9554419638E48F9343514118238781A6955441BE08A3EB924351417E0D70F2A5955441A57FE6AC9043514112D5FB42A2955441A4703DAA8E435141A4703DEA9E955441ED5A15F38C435141FEC5E9889C955441FD4156F089435141AA3A5F399895544184BFA88E88435141D669F18592955441B35211E5864351418FF7A63C93955441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>431185 - 3424705
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000010000000103000000010000002B0000008FC2F59872435141F6285CDF9E955441EC51B81E784351411F85EB119C955441B81E850B7E43514133333363989554418FC2F56883435141000000A0949554410AD7A340874351416666660693955441333333038743514185EB5118879554415C8FC2C58643514152B81EE585955441AE47E1BA85435141C3F5282C85955441000000108443514148E17A2484955441E17A14DE8043514185EB517884955441AE47E13A7A435141295C8F8285955441CDCCCCDC7343514114AE478187955441333333D366435141D7A3706D8D955441EC51B84E604351410000006090955441666666D658435141AE47E1DA93955441CDCCCC9C4F43514152B81E1598955441CDCCCCFC4443514185EB51D89C955441666666363A43514185EB51D8A195544152B81ED52D435141E17A145EA69554410AD7A39023435141CDCCCCFCA89554415C8FC2D51F4351410AD7A370AA955441CDCCCCFC1E4351415C8FC2D5AD95544114AE470120435141EC51B8FEB195544148E17AF4224351419A9999E9B595544100000040284351419A999919B49554418FC2F5082B43514148E17AA4B3955441F6285C3F2E435141D7A3704DB29554411F85EB1133435141666666B6AF9554411F85EBD136435141C3F5286CAD955441EC51B8AE3A435141295C8F12AB955441333333C341435141E17A14FEA6955441666666F6444351410AD7A310A5955441E17A146E47435141713D0A37A3955441295C8F524A435141EC51B83EA0955441000000404C435141333333039F955441F6285CDF4E4351415C8FC2959D9554415C8FC2155A4351413D0AD703989554413333332359435141D7A3701DA1955441A4703D8A5B435141CDCCCCCCA8955441D7A370DD61435141A4703D7AA695544114AE47A169435141CDCCCCACA3955441F6285C4F6B4351418FC2F508A39554418FC2F59872435141F6285CDF9E955441
+</a>
+
+<b>
+0106000000010000000103000000010000004C000000B35211E5864351418FF7A63C93955441A7A13693844351418B00CF239495544164F81C57834351412B1D84AC94955441F93D76987F43514119A1D24C97955441F393B0BA7C4351414BE08B3499955441122AEA447843514173672EFA9B9554412B92A4637243514188D82AFF9E955441C6A11C406B4351411CA9BF07A3955441EC51B83E66435141D7A3704DA5955441CDCCCC0C5B435141E17A14CEA8955441B81E852B59435141713D0A37A195544114AE478159435141D7A370DD9D9554415C8FC2155A4351413D0AD70398955441D01B9F2553435141ACBF2A769B9554412151BE554F4351411976F35A9D95544193EE360C4D4351412F510A949E955441D29BFF0D4C4351413B252C239F955441645936124B435141AE012CC49F955441295C8F524A435141EC51B83EA0955441FEF4515E474351413F1CDB42A3955441D84CEB8C45435141CBECC99FA4955441B050F58D4443514185C18C4FA59554416F17591B4343514134DBC82EA695544104F1F3873F43514176F34547A8955441EC51B8AE3A435141295C8F12AB9554419866F0C636435141E89DDD72AD955441D507F45733435141630EA28BAF9554413130F98D2E435141C32C3823B29554413B98F7652C435141CCE3E612B3955441CEA541DD2A43514197C8A8ABB395544100000040284351419A999919B49554410AD7A31021435141F6285C8FB6955441E17A14DE2243514114AE4741C095544148E17A342B43514152B81EF5BE955441713D0A1736435141AE47E12ABE9554418FC2F5E83A435141B81E850BBD955441C3F5284C43435141E17A148EB8955441A4703D0A49435141D7A370DDB395544114AE47E14B4351419A999969B2955441F6285CEF534351411F85EB51AE955441CDCCCC0C5643514166666656B39554415C8FC2B5564351417B14AE47B995544185EB51084A43514114AE4781BD9554410AD7A3504143514166666636C095544152B81EA53A435141713D0A67C1955441295C8F72334351411F85EB31C2955441A4703D2A35435141C3F5289CC795544148E17A143743514185EB5108CC955441D7A370BD37435141AE47E18ACE9554416666663637435141CDCCCC2CD2955441713D0A173643514152B81E25D5955441295C8F9234435141C3F528FCD7955441F6285C8F3C435141713D0A77D69554417B14AED748435141F6285C8FD39554411F85EBF1524351413D0AD763D09554410AD7A3005B435141295C8FF2CD955441A4703D8A5E43514133333343DE955441D7A3700D9143514100000060C79554417B14AEE79F435141F6285C0FC0955441B81E856B9E435141B81E853BBD955441F6285C6F9D435141A4703D3ABA9554410AD7A3609C435141F6285C5FB79554415C8FC2559C43514133333343B49554411F85EB119C4351413D0AD7D3B0955441C458533C9B43514147955B3BAE955441A03E9D089B4351412CB41EEBAD955441365900049A435141ADFE9966AC9554413547EA8698435141568F7C1FAB9554419638E48F9343514118238781A6955441BE08A3EB924351417E0D70F2A5955441A57FE6AC9043514112D5FB42A2955441A4703DAA8E435141A4703DEA9E955441ED5A15F38C435141FEC5E9889C955441FD4156F089435141AA3A5F399895544184BFA88E88435141D669F18592955441B35211E5864351418FF7A63C93955441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>431628 - 407546
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000001A000000EC51B8DE4E4D51410AD7A34092835441666666762A4D514133333383828354410AD7A3E0304D51413D0AD70376835441A4703D3A2E4D5141CDCCCC3C74835441AE47E10A2B4D5141F6285CDF7A8354419A9999B9294D51418FC2F5887D83544166666606264D5141A4703D6A8083544114AE47C1224D5141CDCCCC6C818354418FC2F5881E4D514133333313808354413D0AD7131D4D51417B14AEE781835441E17A148E1A4D514114AE47E18083544114AE47710C4D5141AE47E16A95835441713D0AF7124D5141B81E856B988354410AD7A380154D51413D0AD7F3998354415C8FC295184D5141E17A149E9B835441EC51B87E1C4D5141CDCCCC6C9D835441C3F5280C224D51416666660693835441A4703DEA2A4D5141295C8F7296835441295C8F22384D5141CDCCCCEC9B83544152B81EF5384D5141D7A3704D9C835441C3F528DC3B4D5141713D0A77998354419A9999693C4D5141713D0A2799835441C3F5284C3D4D5141E17A140E9983544152B81E05474D5141000000309A83544114AE47D14A4D5141E17A147E99835441EC51B8DE4E4D51410AD7A34092835441
+</a>
+
+<b>
+010600000001000000010300000001000000160000000C53DE6E304D51417E48DCBB98835441295C8F22384D5141CDCCCCEC9B8354414B3E687F384D514139EC69179C8354418B321FF5384D5141558C6F4D9C8354417D5005C6394D5141DBAB37819B835441C3F528DC3B4D5141713D0A7799835441DF71C2253C4D5141A54A694D99835441B3CE99693C4D5141D81E092799835441E7AAD3CF3C4D5141D318C71B99835441C3F5284C3D4D5141E17A140E9983544152B81E05474D5141000000309A835441E35F690A494D5141C5EA53D199835441ECE446D14A4D5141E8D3137E99835441BC0C5C774D4D51416AEAA7C294835441EAF3B7DE4E4D5141FD7EA44092835441F18E76A83A4D5141A148A98389835441165066762A4D5141698232838283544170CE6776294D51418CEF326384835441C3F5280C224D514166666606938354418998E47A254D514104458E5994835441A52E3CEA2A4D5141811B8E72968354410C53DE6E304D51417E48DCBB98835441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>963296 - 962790
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -4 </desc>
+<a>
+0106000000010000000103000000010000003C000000B0B1FBE965D15041E6FFC8358C365541AA71B5DC65D150419812C5458C365541613CA8D965D15041A82EC4438C365541A51FB9B665D150419FFD988E8E365541495D70F965D150411576592A92365541059675C36CD150413739351AA6365541FCB2484B71D15041954E2FE3B0365541C36FCB2874D15041B0AB6DA8B4365541B440ADAC80D150418975A8ADBE365541549049C581D15041CB8C175FBE365541AAF30B4787D15041BC0B30FBB8365541AFDBE0948DD15041F3EE4389B3365541BDF9E55A95D150413FDF9326AE3655410DD8BC639BD150410D250DEFA936554195FECBAAA2D1504114555220A63655418E392199A9D15041114D2F88A3365541D8778F32BDD15041F2CB25B89D365541A02B13ABC3D150416299B52C9B365541E57BD048CAD15041C7D82B3699365541CCC6F3F6CCD15041E9BF9086983655412B5BED1CCBD15041B9763A449736554104DA18E4C8D150413B29EEEE953655411D329E00C6D150418D924B5793365541858E1930C3D15041AFB2527D8F36554102DEB226C0D1504153850D4E8A36554158AC77E4BAD15041E164AA57853655412CCAD598B2D15041780CC96A7F365541193E6CC8ABD1504106EC65747A3655419AF4B9B5A1D15041D141421F73365541B34E8C739AD150418A071BB76D36554100571CC991D1504113849D0C673655419600887D87D1504183AAE7E65E365541A69425D37CD150411DB76D4F563655418278B8EF77D150410F8E1E3351365541E571196B73D15041B360D9034C365541C723157560D15041CEB6117F4D365541C0C6E1A451D15041BD260E6C4F3655412B6DE9BC4BD15041ECBCEEB047365541E4D60C4C48D150415520E550493655410326D2F142D15041A12D94454A3655411AC8144D43D15041608AB9E14A365541F09FF24F43D15041849D01E14A365541D6BCAFEA43D15041CA1D76E64B365541EDE49F3745D15041EA9D83F24D3655417281BFEB46D15041AEFA1D0950365541DA0203C248D1504155A6F80852365541472BEB054BD15041C2CEE04C5436554105D7A0005ED150410205645368365541D8587C9161D15041E3ACB73A6B365541D8AF1D716AD15041A4F644E071365541B488CACA73D1504131F4D86E78365541D4F90D1874D1504148F9BCA5783655412A8B83E473D150412710F80179365541FC327DF873D1504199AC3C1079365541799C5E7973D15041706AB3C17936554171CBC00C73D15041563111847A36554149E6A95E70D150415C4A24177E365541F312ADF965D15041A25FFC998C36554162F2CAFD65D15041AD0B89438C365541B0B1FBE965D15041E6FFC8358C365541
+</a>
+
+<b>
+01060000000100000001030000000200000026000000F512ADF965D15041A45FFC998C365541FC327DF873D1504198AC3C1079365541C43FA87668D15041024812D87036554105D7A0005ED150410005645368365541452BEB054BD15041C6CEE04C54365541E576E7CA45D15041661ADD114F365541EF9FF24F43D15041899D01E14A365541E17A148E40D150411F85EB914B3655410000005040D150418FC2F5684C3655415C8FC21541D150411F85EB01513655417B14AE6742D150419A9999595536554114AE479141D15041A4703DAA573655417B14AEB73AD15041CDCCCC4C5B365541BEAA87BA38D1504147A6337F5B365541F5A98E1E36D15041C38E02205C365541C4FE3D6134D1504150B041555D3655419858F48E33D15041815B92125F3655419C5DFB7934D15041A483CA6A66365541A162026535D15041C6D056AB6A36554152B81E0537D15041AE47E1EA6E365541295C8FF238D1504152B81E65713655418FC2F5F83BD150415C8FC2D57436554185EB51283ED1504166666626773655411F85EB8140D1504148E17A047936554148E17A2443D1504114AE47C1793655416AAA567747D15041506853157A365541E76DD12F4BD15041402FE38079365541C8D69C1E4DD15041E0B3ED1D79365541295C8F1250D15041AE47E13A7A3655412B0DF19B54D15041C826C7E27C3655416CF1B1ED56D15041050681497E3655414226143359D15041F1A2B5E17F365541246A8B395ED15041224E069F8136554152B81E055ED15041B81E85CB82365541BD3C15D75BD15041DBC7664685365541F594E31C5CD15041BCB82D688536554163F2CAFD65D15041A80B89438C365541F512ADF965D15041A45FFC998C365541110000003D0AD7D359D150417B14AEE778365541F6285C1F58D15041666666A677365541F6285C3F57D15041C3F5287C76365541A4703DAA56D150411F85EBC1743655411F85EBB152D15041B81E855B7236554114AE47E155D15041EC51B83E723655418FC2F5A858D15041B81E850B7236554148E17A645DD150415C8FC20572365541CDCCCC9C5FD15041295C8F42713655419A99991962D15041295C8F72723655417B14AE0764D150413D0AD783723655417B14AE5764D15041A4703D5A74365541C3F5283C62D1504148E17AC475365541A4703D8A61D15041E17A147E77365541D7A3703D60D1504185EB51187A36554148E17AD45CD150418FC2F5D8793655413D0AD7D359D150417B14AEE778365541
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>432302 - 3074835
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000042000000CDCCCCAC18535141B81E85FB9B5654417B14AE7721535141666666869E5654413D0AD7F32B53514148E17A34A1565441295C8F723653514100000060A4565441F6285C2F415351410AD7A340A756544152B81EB54153514133333363A5565441A4703D3A4253514152B81E85A356544152B81E1543535141D7A3704D9F565441F6285CEF435351417B14AEE79A565441B81E857B44535141F6285C1F96565441A4703DAA4453514100000060935654418FC2F588445351410AD7A3F0905654413D0AD743445351410AD7A300895654411F85EB515353514148E17A648756544148E17AD4635351416666661687565441333333B36B53514185EB51288756544185EB51D86853514100000080775654413D0AD7C3655351418FC2F5986656544148E17A84625351418FC2F5C854565441F6285C9F5B5351411F85EB3155565441C3F5281C58535141CDCCCCFC55565441AE47E10A545351413D0AD733575654413D0AD72351535141A4703D3A58565441D7A370FD4D5351417B14AE4759565441D7A3700D4853514152B81E855A565441295C8FD245535141CDCCCCAC5A56544152B81E653D535141B81E859B5B565441EC51B84E385351415C8FC2155C56544185EB512834535141A4703DAA5C565441F6285CDF335351417B14AEF75B565441713D0A972E535141000000E05C565441EC51B8CE24535141E17A148E5E5654415C8FC22524535141EC51B82E6F565441A4703D8A235351418FC2F5E8745654413D0AD733235351419A99991978565441713D0AF72C53514152B81ED578565441B81E859B2C53514148E17AB480565441D7A3703D2C535141A4703D8A8656544152B81ED52B53514152B81ED58856544185EB51C82D5351417B14AE478856544152B81EC52F535141CDCCCC2C875654410AD7A380315351411F85EBC1855654417B14AE8735535141F6285CDF8156544133333393355351411F85EB017F5654410000006036535141CDCCCC0C7F56544152B81E7537535141B81E850B775654418FC2F5983E535141666666367556544114AE47B13F535141713D0AD77756544148E17A7443535141D7A3701D83565441F6285CCF4353514114AE47B18556544185EB513832535141F6285C7F8656544185EB515830535141333333038856544148E17A242E5351411F85EB4189565441000000902B5351410AD7A3008A565441EC51B82E2853514114AE478189565441E17A140E25535141AE47E1EA88565441A4703D7A22535141F6285CAF885654415C8FC2352053514152B81EA588565441000000001F535141713D0AD7885654413D0AD7D31D53514133333363895654417B14AEF71C535141333333038A565441B81E857B1B535141713D0AA78B565441F6285CBF18535141F6285C8F8F565441333333B3155351413D0AD75394565441F6285C1F125351413D0AD7239A565441CDCCCCAC18535141B81E85FB9B565441
+</a>
+
+<b>
+010600000001000000010300000001000000070000009CA35DE55753514119B8E7CC5556544114AE47E152535141000000D02156544122862528485351413FE75E01235654411BE602714D535141D55CFB44595654410DAC1D4453535141D445087A57565441E4044B8753535141B5224F62575654419CA35DE55753514119B8E7CC55565441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>432302 - 3364861
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+01060000000100000001030000000100000042000000CDCCCCAC18535141B81E85FB9B5654417B14AE7721535141666666869E5654413D0AD7F32B53514148E17A34A1565441295C8F723653514100000060A4565441F6285C2F415351410AD7A340A756544152B81EB54153514133333363A5565441A4703D3A4253514152B81E85A356544152B81E1543535141D7A3704D9F565441F6285CEF435351417B14AEE79A565441B81E857B44535141F6285C1F96565441A4703DAA4453514100000060935654418FC2F588445351410AD7A3F0905654413D0AD743445351410AD7A300895654411F85EB515353514148E17A648756544148E17AD4635351416666661687565441333333B36B53514185EB51288756544185EB51D86853514100000080775654413D0AD7C3655351418FC2F5986656544148E17A84625351418FC2F5C854565441F6285C9F5B5351411F85EB3155565441C3F5281C58535141CDCCCCFC55565441AE47E10A545351413D0AD733575654413D0AD72351535141A4703D3A58565441D7A370FD4D5351417B14AE4759565441D7A3700D4853514152B81E855A565441295C8FD245535141CDCCCCAC5A56544152B81E653D535141B81E859B5B565441EC51B84E385351415C8FC2155C56544185EB512834535141A4703DAA5C565441F6285CDF335351417B14AEF75B565441713D0A972E535141000000E05C565441EC51B8CE24535141E17A148E5E5654415C8FC22524535141EC51B82E6F565441A4703D8A235351418FC2F5E8745654413D0AD733235351419A99991978565441713D0AF72C53514152B81ED578565441B81E859B2C53514148E17AB480565441D7A3703D2C535141A4703D8A8656544152B81ED52B53514152B81ED58856544185EB51C82D5351417B14AE478856544152B81EC52F535141CDCCCC2C875654410AD7A380315351411F85EBC1855654417B14AE8735535141F6285CDF8156544133333393355351411F85EB017F5654410000006036535141CDCCCC0C7F56544152B81E7537535141B81E850B775654418FC2F5983E535141666666367556544114AE47B13F535141713D0AD77756544148E17A7443535141D7A3701D83565441F6285CCF4353514114AE47B18556544185EB513832535141F6285C7F8656544185EB515830535141333333038856544148E17A242E5351411F85EB4189565441000000902B5351410AD7A3008A565441EC51B82E2853514114AE478189565441E17A140E25535141AE47E1EA88565441A4703D7A22535141F6285CAF885654415C8FC2352053514152B81EA588565441000000001F535141713D0AD7885654413D0AD7D31D53514133333363895654417B14AEF71C535141333333038A565441B81E857B1B535141713D0AA78B565441F6285CBF18535141F6285C8F8F565441333333B3155351413D0AD75394565441F6285C1F125351413D0AD7239A565441CDCCCCAC18535141B81E85FB9B565441
+</a>
+
+<b>
+010600000001000000010300000001000000070000009CA35DE55753514119B8E7CC5556544114AE47E152535141000000D02156544122862528485351413FE75E01235654411BE602714D535141D55CFB44595654410DAC1D4453535141D445087A57565441E4044B8753535141B5224F62575654419CA35DE55753514119B8E7CC55565441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>432655 - 340787
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000110000001F85EB615C4751413D0AD7D3A051544152B81EF55547514152B81EA59E5154418FC2F53849475141A4703D4A9B515441C3F5282C47475141EC51B8AE9A51544114AE47B1414751419A9999B99E515441A4703DEA4547514114AE4701A451544152B81E9550475141295C8F32AF51544185EB512854475141F6285CCFAD515441B81E851B57475141AE47E16AAC5154415C8FC225584751411F85EBE1AB51544148E17AA45D475141333333F3B0515441CDCCCC1C60475141A4703D0AAD515441D7A370FD6347514114AE4731A651544114AE479164475141C3F5282CA5515441F6285C0F6347514148E17A24A4515441CDCCCC9C5F475141C3F5284CA25154411F85EB615C4751413D0AD7D3A0515441
+</a>
+
+<b>
+01060000000100000001030000000100000019000000CDCCCC9C5F475141C3F5284CA251544138516ABB5E475141C2E0349CA35154418B6A4B265E475141521BBA70A45154410850AC375D4751417C8494BAA551544105E42D7D5C475141AD3360BCA6515441C3CFED3C5B475141C491C86BA8515441192030815A47514102D69A55A9515441D1794C70594751419F4D79A9AA515441D7A370AD58475141C3F5289CAB51544108F1E780584751417A78CBC0AB5154414FC15A2858475141020696E0AB51544148E17AA45D475141333333F3B05154412E22CAFD5F4751412151543BAD5154419782DB286147514170A7DC30AB51544142559B1362475141F0FC4D92A9515441207FECFF624751415292FAF0A751544177851983634751412AE95309A7515441D16E0AAC63475141291107C1A651544104923E26644751419CB935E9A55154415B3AE24364475141E525DCB4A551544114AE479164475141C3F5282CA5515441369B500E6347514174B1EB23A451544118C1504B62475141BA1090BBA3515441704D9EDD61475141032BDB80A3515441CDCCCC9C5F475141C3F5284CA2515441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>433151 - 42456
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000AC000000E17A14FE515E51419A999949CC4154415C8FC2354E5E51417B14AEE7C74154418FC2F5284D5E5141B81E85BBC5415441666666264C5E514100000000C3415441CDCCCCBC4B5E51410AD7A320C1415441000000404B5E5141AE47E1BABE415441333333F34A5E514185EB51C8BC415441666666A64A5E5141295C8FF2BA415441666666A64A5E5141295C8FD2B94154419A9999B94A5E51419A9999E9B7415441000000E04A5E5141D7A370BDB5415441666666664B5E514152B81EE5B2415441000000004C5E51415C8FC275B041544185EB5148485E51418FC2F528B341544133333313465E5141666666F6B341544152B81E95425E5141D7A3703DB641544114AE4771375E5141D7A3706DBD415441CDCCCCFC335E5141F6285CEFBF4154418FC2F5E8305E5141000000F0C24154411F85EBB12E5E5141295C8F52C54154410AD7A3002D5E51417B14AE67C7415441A4703DBA285E5141C3F528DCCC4154417B14AEE7275E5141F6285C1FCE41544133333373265E51411F85EBD1CF41544148E17A94245E5141CDCCCCBCD14154419A9999F9225E5141E17A141ED341544100000050215E514148E17A94D44154418FC2F5881E5E514148E17A44D641544148E17AF41B5E5141C3F528CCD741544185EB51D8195E5141AE47E1DAD841544166666626165E5141AE47E16ADA415441295C8F32115E5141B81E857BDC415441D7A3703D095E51419A9999E9DE4154413D0AD773095E5141AE47E1DAE04154410AD7A3100D5E5141D7A370ADE741544166666676145E514185EB51C8F54154413D0AD7B3255E5141333333D3EA4154410AD7A390365E5141B81E851BE0415441C3F5283C3F5E51419A999929EC41544148E17AB4455E5141B81E85BBF5415441666666B64D5E514148E17A9401425441C3F528DC4F5E51417B14AE770342544114AE47D1535E51418FC2F51807425441AE47E13A565E5141C3F528AC0A425441E17A14EE565E514152B81EB50B42544166666626595E51416666663610425441000000205B5E51418FC2F53810425441D7A3705D5E5E5141713D0A47104254411F85EB31605E5141B81E859B10425441C3F5283C635E514114AE4731114254415C8FC2E5655E51419A999929124254411F85EBA1685E51413D0AD783134254410AD7A3006B5E5141C3F5281C154254413D0AD7336C5E51418FC2F538164254413D0AD7636D5E5141F6285C5F174254417B14AE176F5E5141AE47E1BA184254417B14AE97705E5141713D0A271A425441D7A370AD715E5141D7A370DD1A425441CDCCCCCC725E5141A4703D2A1B4254419A999969745E5141A4703D5A1B425441295C8F92755E5141D7A3703D1B425441EC51B88E775E5141713D0AB71A4254410AD7A3807A5E514100000000194254419A9999797D5E5141713D0AD71642544114AE4751815E51410AD7A350144254413D0AD7D3845E51418FC2F51812425441CDCCCCAC885E5141E17A148E0F425441E17A146E8D5E51411F85EBD10C4254419A9999E9905E5141295C8F220B42544185EB5108955E5141333333A3094254410AD7A360995E51419A99997908425441F6285CEF9C5E51413D0AD7C3074254411F85EB91A05E5141713D0A17074254410AD7A3D0A35E5141713D0A8706425441E17A14DEA25E514148E17A0404425441295C8F52A25E51419A999929024254411F85EB31A15E514133333373FE4154413D0AD793A05E5141E17A14DEFB4154417B14AE07A05E514133333393F9415441000000609F5E5141713D0A07F74154415C8FC2A59E5E5141F6285CEFF34154413D0AD7B39D5E514114AE4791EF4154413D0AD7439D5E5141C3F5286CED415441000000F09C5E514114AE4721EB415441C3F5289C9C5E514148E17A74E9415441713D0A779C5E51419A999909E84154415C8FC2359C5E5141B81E85FBE64154419A9999199C5E5141713D0A87E54154419A9999199C5E5141A4703D4AE441544185EB51489C5E514166666686E3415441EC51B8AE9C5E5141713D0A37E241544114AE47319D5E5141AE47E18AE041544114AE47A19D5E51415C8FC285DF4154417B14AE079E5E5141C3F528ECDD4154418FC2F5489E5E5141E17A14DEDC415441333333939E5E5141000000D0DB4154419A9999F99E5E51415C8FC235DA415441713D0A579F5E5141EC51B81ED9415441666666C69F5E5141713D0A97D7415441B81E855BA05E5141713D0A97D541544148E17AD4A05E51418FC2F518D441544133333303A15E514133333343D3415441D7A3709DA25E51413D0AD7A3CE4154411F85EB31A35E514133333313CD415441A4703D9AA35E5141A4703D8ACB4154417B14AED7A15E5141713D0AB7CA4154418FC2F5789E5E5141AE47E14AC9415441666666C69B5E514148E17A04C84154417B14AE97985E51411F85EB11C6415441EC51B85E955E514133333343C3415441666666C6915E514114AE4771BF41544148E17AB48E5E5141F6285C9FBB41544114AE47C18C5E5141000000A0B8415441D7A3706D8B5E51418FC2F508B5415441F6285C9F8A5E5141E17A149EB2415441B81E85BB8A5E51418FC2F548B1415441333333538B5E514148E17AD4AF41544114AE47A18E5E514114AE4711AB415441D7A370BD8E5E5141AE47E12AAA4154417B14AE678E5E514152B81E45A94154417B14AE078E5E514152B81E85A841544148E17A648D5E514152B81EF5A7415441B81E853B8C5E5141F6285C3FA74154415C8FC2058A5E5141295C8F92A6415441000000B0865E5141295C8F32A6415441000000907E5E5141F6285CBFA54154418FC2F5B8755E51418FC2F5F8A54154417B14AE37705E5141295C8F62A6415441333333436A5E5141F6285C0FA74154417B14AE17655E514152B81E25A8415441CDCCCC1C605E51417B14AE47AA415441EC51B82E595E5141666666F6AE415441A4703DCA535E5141B81E853BB341544148E17AC4515E514148E17AC4B4415441B81E85DB4F5E5141D7A370DDB641544185EB51A84E5E5141CDCCCC1CB9415441F6285C3F4E5E5141C3F5289CBA415441C3F528FC4D5E5141EC51B88EBC415441C3F5282C4E5E51417B14AED7BE415441EC51B8FE4E5E51413D0AD733C1415441EC51B81E505E5141CDCCCC7CC341544148E17A24525E514152B81EA5C7415441D7A3703D545E5141713D0A57CA415441713D0A175E5E5141333333F3D541544185EB5158645E5141AE47E18ADC415441AE47E15A655E5141AE47E14ADD4154413D0AD7E3665E51417B14AE37DD4154410AD7A320685E514148E17A54DD415441CDCCCCFC685E5141E17A14BEDD415441CDCCCCEC695E5141A4703D2ADF415441AE47E1EA6F5E5141295C8F82ED415441EC51B82E6D5E51411F85EB01EF4154418FC2F5E86B5E51411F85EB91EF4154419A9999D9695E5141AE47E12AF041544114AE47E1655E514114AE47E1F0415441333333835F5E51410AD7A300F2415441333333F35E5E5141AE47E17AF1415441713D0A775E5E514148E17A94F0415441713D0A475E5E5141B81E856BEF415441D7A3706D5E5E514185EB5108EE415441666666D65E5E51419A9999C9EB415441000000705F5E5141D7A370DDE841544166666626605E5141AE47E12AE6415441295C8F92615E51418FC2F518E3415441295C8F82625E514100000060E1415441EC51B8CE625E51419A999979E04154417B14AE07635E5141F6285C6FDF41544185EB51D8625E5141713D0AE7DE415441295C8F52625E514148E17AB4DD415441713D0A875D5E5141295C8F62D8415441000000E0545E5141EC51B8FECF415441E17A14FE515E51419A999949CC415441
+</a>
+
+<b>
+0106000000010000000103000000010000004A000000C3249DB99F5E5141DBD84AD4D7415441160E45F89D5E5141F0E34859DE4154415C2C51F49D5E5141391A8864DE415441ADADADED9D5E51410EDA6B77DE4154414E5440D89D5E514188E263B4DE41544156A584D09D5E5141D9437BD1DE4154415B8FABC89D5E51414E0A33E8DE41544114AE47A19D5E51415C8FC285DF4154411C3C19549D5E5141B2F6B339E041544127EA1AF99C5E514128BB1943E1415441EC51B8AE9C5E5141713D0A37E241544138A5677E9C5E51413EA645D5E2415441EFDE403A9C5E51411CF37BD2E3415441B0986A1E9C5E51414523E939E44154413AC1061E9C5E5141DC2B56F6E44154419A9999199C5E5141A361CC43E54154419A9999199C5E5141DF3BCC85E54154419CA3CA249C5E514162D861D5E5415441C1C9F6249C5E51412DCB9BD6E5415441F2C017709C5E51416E8CDBECE7415441713D0A779C5E51419A999909E8415441E406CB7E9C5E5141549A6455E8415441C6B05AC39C5E5141C86EF03CEA415441000000F09C5E514114AE4721EB415441F6760F369D5E5141D0EEB30BED4154417E1C8D369D5E5141E5D5140EED415441ED9D70B09D5E514108D3C55CEF415441BAC95ECD9D5E5141D044F9E8EF41544118D923EA9D5E514154D4EE6EF04154410BE618859E5E514176206758F34154413D0228879E5E5141B244EB61F3415441659D55879E5E5141B30BBE62F3415441148E09889E5E514186ACFD65F34154412521D0909E5E51419984F48AF3415441D2723F989E5E51413E8745AAF3415441DE7593DB9E5E51410FB3DDC5F44154414C900F9C9F5E5141709EA2F0F74154417B14AE07A05E514133333393F941544104F8D975A05E514169EF8260FB415441E6EE0EAAA05E5141C8C0EE36FC4154414166C66FA15E51415D864126FF415441E59A2387A15E5141371B0A7FFF415441403A10B5A15E5141EDAD352100425441D5D170FFA15E51413AF0721301425441EBBF9CD1A25E514146D4F4BF034254415BB97C05A35E51411169DF6C044254410D8EFB4DA35E5141632CEB2C054254411B0E4D67A35E5141CC29FD6F0542544169A8D58BA35E5141387427BC054254413DB80BC6A35E5141813F833506425441834579E4A35E514196E4F27406425441ADFCEEE5A35E5141A603FE770642544146FC968BA45E514175AEE846064254416327DB04A35E51416BF5CF58004254418889E137A25E51411BB1811EFD41544145B74131A15E51410B02D210F941544108E38CCA9F5E51415C4CDCC2F34154417A0FDF839E5E51410FC9774EEE415441E23F5BFD9D5E5141EF233121EC415441423D3F7D9D5E514159DCBF46E841544161A15A109D5E5141B39663CCE4415441A473FA169E5E5141E7B52905E1415441A0AEE6909F5E51418D0142F7DB4154417C4CE05DA05E5141B0264750D9415441A7E9D20AA15E51417119BBCFD6415441605A73FEA25E51411D5B6AE1CF415441ED2D2145A45E51412D10D666CB4154419EEDEEB9A35E514170E48B3ACB415441CE8341B5A35E514173F8DE48CB415441CE1631B0A35E514141466158CB415441B55B813EA35E5141C7183107CD4154411057505EA25E51414FF21D6ECF4154418383A217A15E5141DD06F74ED3415441C3249DB99F5E5141DBD84AD4D7415441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>433151 - 76942
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000AC000000E17A14FE515E51419A999949CC4154415C8FC2354E5E51417B14AEE7C74154418FC2F5284D5E5141B81E85BBC5415441666666264C5E514100000000C3415441CDCCCCBC4B5E51410AD7A320C1415441000000404B5E5141AE47E1BABE415441333333F34A5E514185EB51C8BC415441666666A64A5E5141295C8FF2BA415441666666A64A5E5141295C8FD2B94154419A9999B94A5E51419A9999E9B7415441000000E04A5E5141D7A370BDB5415441666666664B5E514152B81EE5B2415441000000004C5E51415C8FC275B041544185EB5148485E51418FC2F528B341544133333313465E5141666666F6B341544152B81E95425E5141D7A3703DB641544114AE4771375E5141D7A3706DBD415441CDCCCCFC335E5141F6285CEFBF4154418FC2F5E8305E5141000000F0C24154411F85EBB12E5E5141295C8F52C54154410AD7A3002D5E51417B14AE67C7415441A4703DBA285E5141C3F528DCCC4154417B14AEE7275E5141F6285C1FCE41544133333373265E51411F85EBD1CF41544148E17A94245E5141CDCCCCBCD14154419A9999F9225E5141E17A141ED341544100000050215E514148E17A94D44154418FC2F5881E5E514148E17A44D641544148E17AF41B5E5141C3F528CCD741544185EB51D8195E5141AE47E1DAD841544166666626165E5141AE47E16ADA415441295C8F32115E5141B81E857BDC415441D7A3703D095E51419A9999E9DE4154413D0AD773095E5141AE47E1DAE04154410AD7A3100D5E5141D7A370ADE741544166666676145E514185EB51C8F54154413D0AD7B3255E5141333333D3EA4154410AD7A390365E5141B81E851BE0415441C3F5283C3F5E51419A999929EC41544148E17AB4455E5141B81E85BBF5415441666666B64D5E514148E17A9401425441C3F528DC4F5E51417B14AE770342544114AE47D1535E51418FC2F51807425441AE47E13A565E5141C3F528AC0A425441E17A14EE565E514152B81EB50B42544166666626595E51416666663610425441000000205B5E51418FC2F53810425441D7A3705D5E5E5141713D0A47104254411F85EB31605E5141B81E859B10425441C3F5283C635E514114AE4731114254415C8FC2E5655E51419A999929124254411F85EBA1685E51413D0AD783134254410AD7A3006B5E5141C3F5281C154254413D0AD7336C5E51418FC2F538164254413D0AD7636D5E5141F6285C5F174254417B14AE176F5E5141AE47E1BA184254417B14AE97705E5141713D0A271A425441D7A370AD715E5141D7A370DD1A425441CDCCCCCC725E5141A4703D2A1B4254419A999969745E5141A4703D5A1B425441295C8F92755E5141D7A3703D1B425441EC51B88E775E5141713D0AB71A4254410AD7A3807A5E514100000000194254419A9999797D5E5141713D0AD71642544114AE4751815E51410AD7A350144254413D0AD7D3845E51418FC2F51812425441CDCCCCAC885E5141E17A148E0F425441E17A146E8D5E51411F85EBD10C4254419A9999E9905E5141295C8F220B42544185EB5108955E5141333333A3094254410AD7A360995E51419A99997908425441F6285CEF9C5E51413D0AD7C3074254411F85EB91A05E5141713D0A17074254410AD7A3D0A35E5141713D0A8706425441E17A14DEA25E514148E17A0404425441295C8F52A25E51419A999929024254411F85EB31A15E514133333373FE4154413D0AD793A05E5141E17A14DEFB4154417B14AE07A05E514133333393F9415441000000609F5E5141713D0A07F74154415C8FC2A59E5E5141F6285CEFF34154413D0AD7B39D5E514114AE4791EF4154413D0AD7439D5E5141C3F5286CED415441000000F09C5E514114AE4721EB415441C3F5289C9C5E514148E17A74E9415441713D0A779C5E51419A999909E84154415C8FC2359C5E5141B81E85FBE64154419A9999199C5E5141713D0A87E54154419A9999199C5E5141A4703D4AE441544185EB51489C5E514166666686E3415441EC51B8AE9C5E5141713D0A37E241544114AE47319D5E5141AE47E18AE041544114AE47A19D5E51415C8FC285DF4154417B14AE079E5E5141C3F528ECDD4154418FC2F5489E5E5141E17A14DEDC415441333333939E5E5141000000D0DB4154419A9999F99E5E51415C8FC235DA415441713D0A579F5E5141EC51B81ED9415441666666C69F5E5141713D0A97D7415441B81E855BA05E5141713D0A97D541544148E17AD4A05E51418FC2F518D441544133333303A15E514133333343D3415441D7A3709DA25E51413D0AD7A3CE4154411F85EB31A35E514133333313CD415441A4703D9AA35E5141A4703D8ACB4154417B14AED7A15E5141713D0AB7CA4154418FC2F5789E5E5141AE47E14AC9415441666666C69B5E514148E17A04C84154417B14AE97985E51411F85EB11C6415441EC51B85E955E514133333343C3415441666666C6915E514114AE4771BF41544148E17AB48E5E5141F6285C9FBB41544114AE47C18C5E5141000000A0B8415441D7A3706D8B5E51418FC2F508B5415441F6285C9F8A5E5141E17A149EB2415441B81E85BB8A5E51418FC2F548B1415441333333538B5E514148E17AD4AF41544114AE47A18E5E514114AE4711AB415441D7A370BD8E5E5141AE47E12AAA4154417B14AE678E5E514152B81E45A94154417B14AE078E5E514152B81E85A841544148E17A648D5E514152B81EF5A7415441B81E853B8C5E5141F6285C3FA74154415C8FC2058A5E5141295C8F92A6415441000000B0865E5141295C8F32A6415441000000907E5E5141F6285CBFA54154418FC2F5B8755E51418FC2F5F8A54154417B14AE37705E5141295C8F62A6415441333333436A5E5141F6285C0FA74154417B14AE17655E514152B81E25A8415441CDCCCC1C605E51417B14AE47AA415441EC51B82E595E5141666666F6AE415441A4703DCA535E5141B81E853BB341544148E17AC4515E514148E17AC4B4415441B81E85DB4F5E5141D7A370DDB641544185EB51A84E5E5141CDCCCC1CB9415441F6285C3F4E5E5141C3F5289CBA415441C3F528FC4D5E5141EC51B88EBC415441C3F5282C4E5E51417B14AED7BE415441EC51B8FE4E5E51413D0AD733C1415441EC51B81E505E5141CDCCCC7CC341544148E17A24525E514152B81EA5C7415441D7A3703D545E5141713D0A57CA415441713D0A175E5E5141333333F3D541544185EB5158645E5141AE47E18ADC415441AE47E15A655E5141AE47E14ADD4154413D0AD7E3665E51417B14AE37DD4154410AD7A320685E514148E17A54DD415441CDCCCCFC685E5141E17A14BEDD415441CDCCCCEC695E5141A4703D2ADF415441AE47E1EA6F5E5141295C8F82ED415441EC51B82E6D5E51411F85EB01EF4154418FC2F5E86B5E51411F85EB91EF4154419A9999D9695E5141AE47E12AF041544114AE47E1655E514114AE47E1F0415441333333835F5E51410AD7A300F2415441333333F35E5E5141AE47E17AF1415441713D0A775E5E514148E17A94F0415441713D0A475E5E5141B81E856BEF415441D7A3706D5E5E514185EB5108EE415441666666D65E5E51419A9999C9EB415441000000705F5E5141D7A370DDE841544166666626605E5141AE47E12AE6415441295C8F92615E51418FC2F518E3415441295C8F82625E514100000060E1415441EC51B8CE625E51419A999979E04154417B14AE07635E5141F6285C6FDF41544185EB51D8625E5141713D0AE7DE415441295C8F52625E514148E17AB4DD415441713D0A875D5E5141295C8F62D8415441000000E0545E5141EC51B8FECF415441E17A14FE515E51419A999949CC415441
+</a>
+
+<b>
+0106000000010000000103000000010000004A000000C3249DB99F5E5141DBD84AD4D7415441160E45F89D5E5141F0E34859DE4154415C2C51F49D5E5141391A8864DE415441ADADADED9D5E51410EDA6B77DE4154414E5440D89D5E514188E263B4DE41544156A584D09D5E5141D9437BD1DE4154415B8FABC89D5E51414E0A33E8DE41544114AE47A19D5E51415C8FC285DF4154411C3C19549D5E5141B2F6B339E041544127EA1AF99C5E514128BB1943E1415441EC51B8AE9C5E5141713D0A37E241544138A5677E9C5E51413EA645D5E2415441EFDE403A9C5E51411CF37BD2E3415441B0986A1E9C5E51414523E939E44154413AC1061E9C5E5141DC2B56F6E44154419A9999199C5E5141A361CC43E54154419A9999199C5E5141DF3BCC85E54154419CA3CA249C5E514162D861D5E5415441C1C9F6249C5E51412DCB9BD6E5415441F2C017709C5E51416E8CDBECE7415441713D0A779C5E51419A999909E8415441E406CB7E9C5E5141549A6455E8415441C6B05AC39C5E5141C86EF03CEA415441000000F09C5E514114AE4721EB415441F6760F369D5E5141D0EEB30BED4154417E1C8D369D5E5141E5D5140EED415441ED9D70B09D5E514108D3C55CEF415441BAC95ECD9D5E5141D044F9E8EF41544118D923EA9D5E514154D4EE6EF04154410BE618859E5E514176206758F34154413D0228879E5E5141B244EB61F3415441659D55879E5E5141B30BBE62F3415441148E09889E5E514186ACFD65F34154412521D0909E5E51419984F48AF3415441D2723F989E5E51413E8745AAF3415441DE7593DB9E5E51410FB3DDC5F44154414C900F9C9F5E5141709EA2F0F74154417B14AE07A05E514133333393F941544104F8D975A05E514169EF8260FB415441E6EE0EAAA05E5141C8C0EE36FC4154414166C66FA15E51415D864126FF415441E59A2387A15E5141371B0A7FFF415441403A10B5A15E5141EDAD352100425441D5D170FFA15E51413AF0721301425441EBBF9CD1A25E514146D4F4BF034254415BB97C05A35E51411169DF6C044254410D8EFB4DA35E5141632CEB2C054254411B0E4D67A35E5141CC29FD6F0542544169A8D58BA35E5141387427BC054254413DB80BC6A35E5141813F833506425441834579E4A35E514196E4F27406425441ADFCEEE5A35E5141A603FE770642544146FC968BA45E514175AEE846064254416327DB04A35E51416BF5CF58004254418889E137A25E51411BB1811EFD41544145B74131A15E51410B02D210F941544108E38CCA9F5E51415C4CDCC2F34154417A0FDF839E5E51410FC9774EEE415441E23F5BFD9D5E5141EF233121EC415441423D3F7D9D5E514159DCBF46E841544161A15A109D5E5141B39663CCE4415441A473FA169E5E5141E7B52905E1415441A0AEE6909F5E51418D0142F7DB4154417C4CE05DA05E5141B0264750D9415441A7E9D20AA15E51417119BBCFD6415441605A73FEA25E51411D5B6AE1CF415441ED2D2145A45E51412D10D666CB4154419EEDEEB9A35E514170E48B3ACB415441CE8341B5A35E514173F8DE48CB415441CE1631B0A35E514141466158CB415441B55B813EA35E5141C7183107CD4154411057505EA25E51414FF21D6ECF4154418383A217A15E5141DD06F74ED3415441C3249DB99F5E5141DBD84AD4D7415441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>510683 - 1301192
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000002A00000014AE47F1E651514114AE474151DC54417B14AEB7E75151411F85EB0150DC5441F6285C6FEA5151419A9999A94EDC544114AE47C1EC515141D7A370BD4DDC5441CDCCCC9CEF5151413D0AD7934ADC5441C3F5287CF2515141E17A14BE4DDC5441CDCCCC5CF7515141E17A14EE4DDC5441D7A3706DFA515141D7A370CD4DDC544100000020FE5151410AD7A3504DDC5441CDCCCC5CFA515141AE47E12A45DC54410AD7A320F6515141EC51B8FE3BDC5441333333B3EB5151417B14AE7740DC54410AD7A3C0E35151411F85EB1148DC544185EB5168D65151415C8FC2354CDC544152B81E05DE5151413D0AD79361DC5441000000E0E0515141B81E858B60DC5441666666D6E25151415C8FC2D55FDC544185EB5128E95151418FC2F5385DDC544148E17A94EA5151413D0AD7E35CDC544152B81EF5ED5151419A9999C95BDC54411F85EBB1F0515141295C8F025ADC5441F6285CEFF2515141333333F357DC5441F6285CBFF9515141295C8FF268DC544148E17A24FB51514114AE471166DC544152B81EC5FC5151419A99995963DC5441AE47E1DAFF515141295C8F625EDC54418FC2F5180152514148E17A345CDC5441E17A144E0252514152B81E3559DC544148E17AE4025251416666660656DC54413D0AD783035251418FC2F5E84FDC544185EB51C803525141E17A141E4DDC54417B14AE87FE515141666666264EDC5441F6285C8FFA515141B81E85CB4EDC544100000060F7515141F6285C1F4FDC5441CDCCCCFCF3515141C3F528FC4EDC5441C3F528ECF351514114AE47B14FDC5441F6285CBFF2515141B81E85FB53DC54411F85EB01F15151416666668656DC5441295C8F12EA515141A4703D5A5CDC5441A4703DAAE6515141B81E85DB58DC5441713D0AE7E3515141713D0A7752DC544114AE47F1E651514114AE474151DC5441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000E0B67AB0EC5151413AB2C5E75CDC544114ACF0CCEC5151416DC214BD5CDC5441336C7CCEEC515141FD636FBB5CDC544146BC3FA2EC51514104F3013D5CDC544185EB5128E95151418FC2F5385DDC5441666666D6E25151415C8FC2D55FDC544156788BE3DD5151410510993561DC54415B9DE04DE8515141941FFA717EDC5441EC51B8DEEC51514185EB51D87CDC5441713D0A17F45151415C8FC2B579DC5441CDCCCC5CF55151415C8FC22579DC54412506CC6AF65151419757E43278DC5441908E4057F65151411BA908FB77DC544156161B40F6515141CB4C5A4F78DC5441D41804D3EC515141A7F0CECE5CDC5441E0B67AB0EC5151413AB2C5E75CDC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>510683 - 3567531
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+0106000000010000000103000000010000002A00000014AE47F1E651514114AE474151DC54417B14AEB7E75151411F85EB0150DC5441F6285C6FEA5151419A9999A94EDC544114AE47C1EC515141D7A370BD4DDC5441CDCCCC9CEF5151413D0AD7934ADC5441C3F5287CF2515141E17A14BE4DDC5441CDCCCC5CF7515141E17A14EE4DDC5441D7A3706DFA515141D7A370CD4DDC544100000020FE5151410AD7A3504DDC5441CDCCCC5CFA515141AE47E12A45DC54410AD7A320F6515141EC51B8FE3BDC5441333333B3EB5151417B14AE7740DC54410AD7A3C0E35151411F85EB1148DC544185EB5168D65151415C8FC2354CDC544152B81E05DE5151413D0AD79361DC5441000000E0E0515141B81E858B60DC5441666666D6E25151415C8FC2D55FDC544185EB5128E95151418FC2F5385DDC544148E17A94EA5151413D0AD7E35CDC544152B81EF5ED5151419A9999C95BDC54411F85EBB1F0515141295C8F025ADC5441F6285CEFF2515141333333F357DC5441F6285CBFF9515141295C8FF268DC544148E17A24FB51514114AE471166DC544152B81EC5FC5151419A99995963DC5441AE47E1DAFF515141295C8F625EDC54418FC2F5180152514148E17A345CDC5441E17A144E0252514152B81E3559DC544148E17AE4025251416666660656DC54413D0AD783035251418FC2F5E84FDC544185EB51C803525141E17A141E4DDC54417B14AE87FE515141666666264EDC5441F6285C8FFA515141B81E85CB4EDC544100000060F7515141F6285C1F4FDC5441CDCCCCFCF3515141C3F528FC4EDC5441C3F528ECF351514114AE47B14FDC5441F6285CBFF2515141B81E85FB53DC54411F85EB01F15151416666668656DC5441295C8F12EA515141A4703D5A5CDC5441A4703DAAE6515141B81E85DB58DC5441713D0AE7E3515141713D0A7752DC544114AE47F1E651514114AE474151DC5441
+</a>
+
+<b>
+01060000000100000001030000000100000010000000E0B67AB0EC5151413AB2C5E75CDC544114ACF0CCEC5151416DC214BD5CDC5441336C7CCEEC515141FD636FBB5CDC544146BC3FA2EC51514104F3013D5CDC544185EB5128E95151418FC2F5385DDC5441666666D6E25151415C8FC2D55FDC544156788BE3DD5151410510993561DC54415B9DE04DE8515141941FFA717EDC5441EC51B8DEEC51514185EB51D87CDC5441713D0A17F45151415C8FC2B579DC5441CDCCCC5CF55151415C8FC22579DC54412506CC6AF65151419757E43278DC5441908E4057F65151411BA908FB77DC544156161B40F6515141CB4C5A4F78DC5441D41804D3EC515141A7F0CECE5CDC5441E0B67AB0EC5151413AB2C5E75CDC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>326336 - 107084
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000200000038000000AE47E1CA912251411F85EB013FBB544114AE4741AD225141F6285C4F44BB5441A7FE10D9AE225141515B426D3DBB5441B01773B6B222514113B90A952CBB5441796D7706B42251412FBCA5D727BB5441A60B880EB9225141F811AA2729BB54419A999989C6225141333333732CBB5441713D0AA7CF2251413D0AD7332EBB544149B4F4D4CF225141D5FB4A562DBB54419D816BECCC225141AB23F59F2CBB5441185506ABCA22514188EF02082CBB54412FD92287C622514160BBE44B2BBB544179870FAAC32251413BE3BAB92ABB5441FB1BD931BD225141DCBC791F29BB5441E04BDAB5B52251410C98921727BB54411DCD7F72B2225141CB7ACC5626BB5441666666F6A9225141295C8F9223BB5441295C8F8298225141EC51B82E1EBB5441B81E852B97225141333333A31DBB54410AD7A37094225141A4703DEA1BBB54419A9999199422514148E17A341CBB54415C8FC2A5902251410AD7A3C01ABB544114AE474188225141295C8F5218BB5441C3F528BC8422514185EB514817BB54415C8FC2C57D225141EC51B8DE15BB5441A4703D2A79225141295C8F5215BB54415C8FC2157622514148E17A3415BB5441295C8FA2752251411F85EB0119BB5441A4703D3A74225141295C8FF21BBB5441333333A370225141333333231CBB5441A4703D5A6F22514152B81EE51DBB5441A4703D1A67225141295C8F921DBB5441C3F528AC65225141AE47E1DA22BB54411F85EB41652251418FC2F55825BB54419A999979662251410000002028BB54413D0AD723672251411F85EBA12ABB544114AE4731672251419A9999F92DBB5441D7A3705D672251410AD7A3202FBB5441CDCCCC9C682251415C8FC24535BB544152B81EE5682251419A99999936BB5441E17A14EE69225141AE47E19A3CBB544152B81EA56A225141A4703DDA42BB54411F85EBB16B225141666666F649BB54417B14AEA76C225141666666A650BB54419A99993972225141E17A149E4FBB5441CDCCCC6C75225141000000604FBB54410000003077225141F6285C7F4FBB5441A4703D9A7B22514152B81EA54FBB5441A4703D9A832251419A99997950BB54419A9999F98722514185EB51E850BB5441295C8FE28A22514152B81E2551BB5441F6285C9F91225141A4703D6A51BB5441AE47E15A9222514148E17A8448BB54417B14AE679222514148E17AD445BB544152B81E4592225141B81E85DB43BB5441AE47E1CA912251411F85EB013FBB544106000000713D0AE784225141D7A370ED25BB54419A999959842251410000002027BB5441AE47E10A82225141713D0A6728BB5441EC51B85E7F2251410000004028BB5441CDCCCC3C812251411F85EB4125BB5441713D0AE784225141D7A370ED25BB5441
+</a>
+
+<b>
+0106000000010000000103000000020000002E0000003AA59FB671225141258E9F141CBB5441B983CB217322514176B1200423BB54419943D476652251416EB32F1B24BB54411F85EB41652251418FC2F55825BB54419A999979662251410000002028BB54413D0AD723672251411F85EBA12ABB544114AE4731672251419A9999F92DBB5441CDCCCC9C682251415C8FC24535BB544152B81EE5682251419A99999936BB5441E17A14EE69225141AE47E19A3CBB544152B81EA56A225141A4703DDA42BB54411F85EBB16B225141666666F649BB54417B14AEA76C225141666666A650BB54419A99993972225141E17A149E4FBB5441CDCCCC6C75225141000000604FBB54410000003077225141F6285C7F4FBB5441A4703D9A7B22514152B81EA54FBB5441A4703D9A832251419A99997950BB54419A9999F98722514185EB51E850BB5441295C8FE28A22514152B81E2551BB5441F6285C9F91225141A4703D6A51BB5441AE47E15A9222514148E17A8448BB54417B14AE679222514148E17AD445BB544152B81E4592225141B81E85DB43BB5441AE47E1CA912251411F85EB013FBB544114AE4741AD225141F6285C4F44BB5441AF1773B6B222514117B90A952CBB5441756D7706B422514132BCA5D727BB54415C529CE3AA225141D97FF6B824BB5441ED35167AA92251413476744024BB5441A022FD749F225141B47F541721BB5441C728D1ED9A225141C795C2C41FBB54415D48F042982251413FB5B2EA1EBB544132948D9496225141876C7F551EBB544109E3657394225141BA82ED021DBB544117A7EFE393225141ACAB5FA11CBB54419A9999199422514148E17A341CBB54415C8FC2A5902251410AD7A3C01ABB544114AE474188225141295C8F5218BB5441C3F528BC8422514185EB514817BB54415C8FC2C57D225141EC51B8DE15BB5441A4703D2A79225141295C8F5215BB5441A94B4648792251411771CDBB18BB5441D3E5856C76225141D1FBAF641DBB5441A4703D3A74225141295C8FF21BBB54413AA59FB671225141258E9F141CBB544106000000713D0AE784225141D7A370ED25BB54419A999959842251410000002027BB5441AE47E10A82225141713D0A6728BB5441EC51B85E7F2251410000004028BB5441CDCCCC3C812251411F85EB4125BB5441713D0AE784225141D7A370ED25BB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>326336 - 385359
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+01060000000100000001030000000200000038000000AE47E1CA912251411F85EB013FBB544114AE4741AD225141F6285C4F44BB5441A7FE10D9AE225141515B426D3DBB5441B01773B6B222514113B90A952CBB5441796D7706B42251412FBCA5D727BB5441A60B880EB9225141F811AA2729BB54419A999989C6225141333333732CBB5441713D0AA7CF2251413D0AD7332EBB544149B4F4D4CF225141D5FB4A562DBB54419D816BECCC225141AB23F59F2CBB5441185506ABCA22514188EF02082CBB54412FD92287C622514160BBE44B2BBB544179870FAAC32251413BE3BAB92ABB5441FB1BD931BD225141DCBC791F29BB5441E04BDAB5B52251410C98921727BB54411DCD7F72B2225141CB7ACC5626BB5441666666F6A9225141295C8F9223BB5441295C8F8298225141EC51B82E1EBB5441B81E852B97225141333333A31DBB54410AD7A37094225141A4703DEA1BBB54419A9999199422514148E17A341CBB54415C8FC2A5902251410AD7A3C01ABB544114AE474188225141295C8F5218BB5441C3F528BC8422514185EB514817BB54415C8FC2C57D225141EC51B8DE15BB5441A4703D2A79225141295C8F5215BB54415C8FC2157622514148E17A3415BB5441295C8FA2752251411F85EB0119BB5441A4703D3A74225141295C8FF21BBB5441333333A370225141333333231CBB5441A4703D5A6F22514152B81EE51DBB5441A4703D1A67225141295C8F921DBB5441C3F528AC65225141AE47E1DA22BB54411F85EB41652251418FC2F55825BB54419A999979662251410000002028BB54413D0AD723672251411F85EBA12ABB544114AE4731672251419A9999F92DBB5441D7A3705D672251410AD7A3202FBB5441CDCCCC9C682251415C8FC24535BB544152B81EE5682251419A99999936BB5441E17A14EE69225141AE47E19A3CBB544152B81EA56A225141A4703DDA42BB54411F85EBB16B225141666666F649BB54417B14AEA76C225141666666A650BB54419A99993972225141E17A149E4FBB5441CDCCCC6C75225141000000604FBB54410000003077225141F6285C7F4FBB5441A4703D9A7B22514152B81EA54FBB5441A4703D9A832251419A99997950BB54419A9999F98722514185EB51E850BB5441295C8FE28A22514152B81E2551BB5441F6285C9F91225141A4703D6A51BB5441AE47E15A9222514148E17A8448BB54417B14AE679222514148E17AD445BB544152B81E4592225141B81E85DB43BB5441AE47E1CA912251411F85EB013FBB544106000000713D0AE784225141D7A370ED25BB54419A999959842251410000002027BB5441AE47E10A82225141713D0A6728BB5441EC51B85E7F2251410000004028BB5441CDCCCC3C812251411F85EB4125BB5441713D0AE784225141D7A370ED25BB5441
+</a>
+
+<b>
+0106000000010000000103000000020000002E0000003AA59FB671225141258E9F141CBB5441B983CB217322514176B1200423BB54419943D476652251416EB32F1B24BB54411F85EB41652251418FC2F55825BB54419A999979662251410000002028BB54413D0AD723672251411F85EBA12ABB544114AE4731672251419A9999F92DBB5441CDCCCC9C682251415C8FC24535BB544152B81EE5682251419A99999936BB5441E17A14EE69225141AE47E19A3CBB544152B81EA56A225141A4703DDA42BB54411F85EBB16B225141666666F649BB54417B14AEA76C225141666666A650BB54419A99993972225141E17A149E4FBB5441CDCCCC6C75225141000000604FBB54410000003077225141F6285C7F4FBB5441A4703D9A7B22514152B81EA54FBB5441A4703D9A832251419A99997950BB54419A9999F98722514185EB51E850BB5441295C8FE28A22514152B81E2551BB5441F6285C9F91225141A4703D6A51BB5441AE47E15A9222514148E17A8448BB54417B14AE679222514148E17AD445BB544152B81E4592225141B81E85DB43BB5441AE47E1CA912251411F85EB013FBB544114AE4741AD225141F6285C4F44BB5441AF1773B6B222514117B90A952CBB5441756D7706B422514132BCA5D727BB54415C529CE3AA225141D97FF6B824BB5441ED35167AA92251413476744024BB5441A022FD749F225141B47F541721BB5441C728D1ED9A225141C795C2C41FBB54415D48F042982251413FB5B2EA1EBB544132948D9496225141876C7F551EBB544109E3657394225141BA82ED021DBB544117A7EFE393225141ACAB5FA11CBB54419A9999199422514148E17A341CBB54415C8FC2A5902251410AD7A3C01ABB544114AE474188225141295C8F5218BB5441C3F528BC8422514185EB514817BB54415C8FC2C57D225141EC51B8DE15BB5441A4703D2A79225141295C8F5215BB5441A94B4648792251411771CDBB18BB5441D3E5856C76225141D1FBAF641DBB5441A4703D3A74225141295C8FF21BBB54413AA59FB671225141258E9F141CBB544106000000713D0AE784225141D7A370ED25BB54419A999959842251410000002027BB5441AE47E10A82225141713D0A6728BB5441EC51B85E7F2251410000004028BB5441CDCCCC3C812251411F85EB4125BB5441713D0AE784225141D7A370ED25BB5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>753383 - 35258
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000020000001500000085EB51F82CB650410AD7A3F02CD654413333336332B65041D7A370FD2AD654410000006040B6504185EB517826D6544185EB519841B65041713D0A7722D6544114AE47E141B6504152B81E251ED6544148E17AE406B65041C3F528BC0DD65441000000F005B6504114AE474137D654415C8FC2E503B65041EC51B88E37D654410AD7A3C004B650413D0AD7230DD65441C3F528DC03B6504148E17AE40CD654413333335301B65041000000300CD65441A4703D5AFBB55041666666160ED6544185EB51A8FAB550411F85EB013ED65441D7A370AD00B650417B14AE073DD65441AE47E12A03B65041F6285C8F3CD65441C3F528BC1CB65041F6285CBF37D65441333333432CB65041666666E633D654419A9999792CB6504114AE47D131D65441713D0AD72AB65041C3F5284C30D65441AE47E16A24B65041EC51B80E30D6544185EB51F82CB650410AD7A3F02CD654410C000000333333731DB650410000006029D65441713D0A671BB65041713D0A972AD6544152B81E9519B6504114AE47D12AD654411F85EB7118B6504148E17AD429D65441AE47E14A18B65041AE47E18A28D654410AD7A32019B650410AD7A34027D65441EC51B8FE1CB650410AD7A33026D65441AE47E10A1FB650417B14AE4725D65441B81E857B20B65041B81E855B25D654411F85EBB121B65041D7A3702D27D65441D7A3703D21B65041B81E85EB28D65441333333731DB650410000006029D65441
+</a>
+
+<b>
+01060000000100000001030000000100000008000000000000F005B6504114AE474137D65441DA4ED6FB06B65041EF69EEC20DD654412795CBBA04B650414B7069220DD65441735C7CA204B65041B7F6D2FB12D6544156108A6C04B650418D282B701DD654415C8FC2E503B65041EC51B88E37D65441A026CDC404B65041A17EA56D37D65441000000F005B6504114AE474137D65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>753383 - 73542
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000020000001500000085EB51F82CB650410AD7A3F02CD654413333336332B65041D7A370FD2AD654410000006040B6504185EB517826D6544185EB519841B65041713D0A7722D6544114AE47E141B6504152B81E251ED6544148E17AE406B65041C3F528BC0DD65441000000F005B6504114AE474137D654415C8FC2E503B65041EC51B88E37D654410AD7A3C004B650413D0AD7230DD65441C3F528DC03B6504148E17AE40CD654413333335301B65041000000300CD65441A4703D5AFBB55041666666160ED6544185EB51A8FAB550411F85EB013ED65441D7A370AD00B650417B14AE073DD65441AE47E12A03B65041F6285C8F3CD65441C3F528BC1CB65041F6285CBF37D65441333333432CB65041666666E633D654419A9999792CB6504114AE47D131D65441713D0AD72AB65041C3F5284C30D65441AE47E16A24B65041EC51B80E30D6544185EB51F82CB650410AD7A3F02CD654410C000000333333731DB650410000006029D65441713D0A671BB65041713D0A972AD6544152B81E9519B6504114AE47D12AD654411F85EB7118B6504148E17AD429D65441AE47E14A18B65041AE47E18A28D654410AD7A32019B650410AD7A34027D65441EC51B8FE1CB650410AD7A33026D65441AE47E10A1FB650417B14AE4725D65441B81E857B20B65041B81E855B25D654411F85EBB121B65041D7A3702D27D65441D7A3703D21B65041B81E85EB28D65441333333731DB650410000006029D65441
+</a>
+
+<b>
+01060000000100000001030000000100000008000000000000F005B6504114AE474137D65441DA4ED6FB06B65041EF69EEC20DD654412795CBBA04B650414B7069220DD65441735C7CA204B65041B7F6D2FB12D6544156108A6C04B650418D282B701DD654415C8FC2E503B65041EC51B88E37D65441A026CDC404B65041A17EA56D37D65441000000F005B6504114AE474137D65441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>476297 - 348619
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000001000000200000005C8FC24508FA50411F85EB21B8CC54411F85EB6104FA5041A4703D8ABACC54419A999919FFF950411F85EB61BDCC5441D7A3705DFEF9504148E17AF4BDCC54413D0AD733FBF95041713D0AA7C1CC5441E17A148EF6F950418FC2F558C9CC544133333363F2F950411F85EB11CFCC54413D0AD743F0F95041295C8F52D1CC54410AD7A3F0EDF95041E17A145ED3CC544152B81EB5EBF95041713D0A07D5CC54417B14AE97EBF95041A4703D5AD6CC54419A999979F3F9504148E17AB4DECC54419A999979F9F95041295C8F42E1CC544148E17A84FCF950415C8FC275E1CC54410000003003FA504152B81EA5DECC5441AE47E19A06FA504114AE4781DECC54417B14AE670EFA504133333313DACC54415C8FC29516FA50417B14AE87D9CC5441000000C01DFA50417B14AE27DACC5441F6285CAF22FA5041333333B3CFCC54415C8FC2652EFA50419A9999E9BACC544185EB51A830FA5041666666E6B6CC54413D0AD7D332FA5041CDCCCC4CB0CC544148E17AC433FA5041D7A3706DA8CC5441000000E034FA50411F85EB91A0CC54415C8FC2A52CFA5041CDCCCC7CA5CC5441F6285C4F20FA504185EB5168ACCC5441F6285C7F1CFA5041F6285C8FA7CC5441713D0AF715FA5041E17A144EAACC54419A9999C911FA5041EC51B8DEADCC5441D7A3700D0EFA504114AE47E1B2CC54415C8FC24508FA50411F85EB21B8CC5441
+</a>
+
+<b>
+0106000000010000000103000000010000000E0000000D68B1D234FA5041CD81528CA1CC5441CAAF95FB2AFA50418A5F2BA6A7CC544188F7792421FA504149111BC4ACCC5441386CD96920FA504109D5CD2EACCC54414BDBBAA81FFA5041B3FA4E94ABCC54415EEF023D1BFA5041C50AEF0AA8CC54410D68B1EC15FA504169382335AACC54415EAB456F14FA50417046689CABCC5441C8DCABEE11FA5041C01ACEF7ADCC544186D915782EFA504175814390BACC5441EAB70CE330FA5041289F98CDB6CC5441FB0FDFDA32FA50413116FC4EB0CC5441666666A433FA5041C50AEF0AA8CC54410D68B1D234FA5041CD81528CA1CC5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>571749 - 571021
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000300000001030000000100000010000000F6285CEF8C595141A4703D2AE0875441000000008F5951410AD7A340DB875441713D0AA785595141C3F528CCCD87544152B81E158559514114AE4741CB875441295C8F32835951417B14AEB7CB8754410AD7A3207D5951419A999919CC87544152B81E557B5951413D0AD733CD875441B81E85FB775951415C8FC245D487544185EB51F873595141E17A148EE2875441F6285CBF6E5951411F85EB71F1875441A4703DBA6C5951411F85EB61F88754418F843E0D7359514185D06ACAFC875441D7A370BD76595141295C8F52F6875441CDCCCCCC7F595141F6285CDFE38754413D0AD79385595141B81E85ABD8875441F6285CEF8C595141A4703D2AE087544101030000000100000007000000B39CCF0F89595141FB023E41FC875441B81E850B87595141295C8FB2008854413D0AD79382595141C3F5286C0A88544156D3DE617E59514190D18F8C138854416FB096098659514155E8E97B03885441B5BE1F1C89595141FB023E41FC875441B39CCF0F89595141FB023E41FC87544101030000000100000004000000333333A37D595141B81E853BFB8754414E21B8957C5951413930EB14FB875441F606D6637D595141403522CCFB875441333333A37D595141B81E853BFB875441
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000B81E850B87595141295C8FB2008854413D0AD7038A5951417B14AE27FA875441A4703D8A8559514133333343F88754413333336383595141F6285C0FFC875441EC51B80E825951410AD7A360FB875441CDCCCC2C81595141C3F528ECFA875441333333A37D595141B81E853BFB875441CDCCCC1C7A595141713D0A4703885441A4703D2A745951415C8FC2151188544152B81EE570595141B81E856B1A885441713D0A7770595141295C8F521B885441F6285C5F68595141CDCCCC8C178854419A9999B95E595141713D0A471488544148E17A545D595141AE47E1DA14885441C3F528AC5C595141E17A142E16885441F6285CFF56595141295C8FC22288544152B81E0555595141B81E858B268854417B14AEE74F595141CDCCCC1C2F885441A4703D3A3F595141AE47E18A45885441D7A3705D3559514166666616538854416666667632595141D7A3706D56885441E17A14AE485951415C8FC20567885441F6285C3F5D595141713D0AD74C885441B81E85CB64595141AE47E17A41885441CDCCCC5C68595141000000A03C88544148E17A346D59514152B81EF53388544152B81E356F59514152B81E65308854415C8FC2C5785951410AD7A3601F885441AE47E18A7A595141713D0AE71B8854413D0AD79382595141C3F5286C0A885441B81E850B87595141295C8FB200885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>571749 - 1274582
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000300000001030000000100000010000000F6285CEF8C595141A4703D2AE0875441000000008F5951410AD7A340DB875441713D0AA785595141C3F528CCCD87544152B81E158559514114AE4741CB875441295C8F32835951417B14AEB7CB8754410AD7A3207D5951419A999919CC87544152B81E557B5951413D0AD733CD875441B81E85FB775951415C8FC245D487544185EB51F873595141E17A148EE2875441F6285CBF6E5951411F85EB71F1875441A4703DBA6C5951411F85EB61F88754418F843E0D7359514185D06ACAFC875441D7A370BD76595141295C8F52F6875441CDCCCCCC7F595141F6285CDFE38754413D0AD79385595141B81E85ABD8875441F6285CEF8C595141A4703D2AE087544101030000000100000007000000B39CCF0F89595141FB023E41FC875441B81E850B87595141295C8FB2008854413D0AD79382595141C3F5286C0A88544156D3DE617E59514190D18F8C138854416FB096098659514155E8E97B03885441B5BE1F1C89595141FB023E41FC875441B39CCF0F89595141FB023E41FC87544101030000000100000004000000333333A37D595141B81E853BFB8754414E21B8957C5951413930EB14FB875441F606D6637D595141403522CCFB875441333333A37D595141B81E853BFB875441
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000B81E850B87595141295C8FB2008854413D0AD7038A5951417B14AE27FA875441A4703D8A8559514133333343F88754413333336383595141F6285C0FFC875441EC51B80E825951410AD7A360FB875441CDCCCC2C81595141C3F528ECFA875441333333A37D595141B81E853BFB875441CDCCCC1C7A595141713D0A4703885441A4703D2A745951415C8FC2151188544152B81EE570595141B81E856B1A885441713D0A7770595141295C8F521B885441F6285C5F68595141CDCCCC8C178854419A9999B95E595141713D0A471488544148E17A545D595141AE47E1DA14885441C3F528AC5C595141E17A142E16885441F6285CFF56595141295C8FC22288544152B81E0555595141B81E858B268854417B14AEE74F595141CDCCCC1C2F885441A4703D3A3F595141AE47E18A45885441D7A3705D3559514166666616538854416666667632595141D7A3706D56885441E17A14AE485951415C8FC20567885441F6285C3F5D595141713D0AD74C885441B81E85CB64595141AE47E17A41885441CDCCCC5C68595141000000A03C88544148E17A346D59514152B81EF53388544152B81E356F59514152B81E65308854415C8FC2C5785951410AD7A3601F885441AE47E18A7A595141713D0AE71B8854413D0AD79382595141C3F5286C0A885441B81E850B87595141295C8FB200885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>571749 - 4026759
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+01060000000300000001030000000100000010000000F6285CEF8C595141A4703D2AE0875441000000008F5951410AD7A340DB875441713D0AA785595141C3F528CCCD87544152B81E158559514114AE4741CB875441295C8F32835951417B14AEB7CB8754410AD7A3207D5951419A999919CC87544152B81E557B5951413D0AD733CD875441B81E85FB775951415C8FC245D487544185EB51F873595141E17A148EE2875441F6285CBF6E5951411F85EB71F1875441A4703DBA6C5951411F85EB61F88754418F843E0D7359514185D06ACAFC875441D7A370BD76595141295C8F52F6875441CDCCCCCC7F595141F6285CDFE38754413D0AD79385595141B81E85ABD8875441F6285CEF8C595141A4703D2AE087544101030000000100000007000000B39CCF0F89595141FB023E41FC875441B81E850B87595141295C8FB2008854413D0AD79382595141C3F5286C0A88544156D3DE617E59514190D18F8C138854416FB096098659514155E8E97B03885441B5BE1F1C89595141FB023E41FC875441B39CCF0F89595141FB023E41FC87544101030000000100000004000000333333A37D595141B81E853BFB8754414E21B8957C5951413930EB14FB875441F606D6637D595141403522CCFB875441333333A37D595141B81E853BFB875441
+</a>
+
+<b>
+0106000000010000000103000000010000001F000000B81E850B87595141295C8FB2008854413D0AD7038A5951417B14AE27FA875441A4703D8A8559514133333343F88754413333336383595141F6285C0FFC875441EC51B80E825951410AD7A360FB875441CDCCCC2C81595141C3F528ECFA875441333333A37D595141B81E853BFB875441CDCCCC1C7A595141713D0A4703885441A4703D2A745951415C8FC2151188544152B81EE570595141B81E856B1A885441713D0A7770595141295C8F521B885441F6285C5F68595141CDCCCC8C178854419A9999B95E595141713D0A471488544148E17A545D595141AE47E1DA14885441C3F528AC5C595141E17A142E16885441F6285CFF56595141295C8FC22288544152B81E0555595141B81E858B268854417B14AEE74F595141CDCCCC1C2F885441A4703D3A3F595141AE47E18A45885441D7A3705D3559514166666616538854416666667632595141D7A3706D56885441E17A14AE485951415C8FC20567885441F6285C3F5D595141713D0AD74C885441B81E85CB64595141AE47E17A41885441CDCCCC5C68595141000000A03C88544148E17A346D59514152B81EF53388544152B81E356F59514152B81E65308854415C8FC2C5785951410AD7A3601F885441AE47E18A7A595141713D0AE71B8854413D0AD79382595141C3F5286C0A885441B81E850B87595141295C8FB200885441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>910243 - 1877594
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000024000000E17A145EF696504152B81E854A1A5441713D0A17FF96504114AE4701531A5441F6285C4F07975041D7A370FD5A1A5441AE47E17A0F975041E17A14EE621A54410AD7A37018975041295C8FA26B1A5441713D0A2723975041C3F5280C761A5441F6285C3F2E975041AE47E12A7F1A5441295C8F9234975041EC51B85E841A54417B14AE673C975041CDCCCC9C791A544185EB5198439750410AD7A3B0701A54418FC2F528479750418FC2F5586C1A544114AE47513397504185EB5108631A54411F85EB5128975041E17A149E5C1A5441CDCCCC4C2297504133333383571A5441B81E853B1B9750415C8FC295531A5441C3F528FC12975041E17A14BE4E1A54419A9999F90F975041C3F5286C4A1A5441713D0A370A975041666666F6421A544114AE47C102975041AE47E13A381A54417B14AE87009750419A999999321A5441F6285C7FFE9650419A999909281A544166666636FD965041295C8FE2271A54419A999909FB96504148E17A54271A5441EC51B8DEF8965041713D0A77261A544185EB5178F796504152B81EB5251A5441E17A142EF6965041295C8FC2241A544133333313F5965041333333E3241A54410AD7A3F0F3965041666666A6251A544152B81E25F396504114AE47E1261A5441A4703D8AF29650411F85EBB1281A5441E17A141EF19650411F85EB412F1A54417B14AE87EF9650417B14AEF7301A5441666666D6EA9650411F85EB91331A544148E17AE4EE96504148E17AA43B1A5441295C8FB2F29650417B14AE37431A5441E17A145EF696504152B81E854A1A5441
+</a>
+
+<b>
+0106000000010000000103000000020000003C010000BDE6EBAFF196504183D2FE78201A544148E17A44F1965041E17A14FE1F1A5441CDCCCC1CEE965041333333431D1A544133333313EB965041AE47E1DA1A1A5441713D0AA7E29650415C8FC245201A5441A4703DBADA96504100000080161A544114AE47C1D596504100000000041A544100000040D696504148E17A94091A54411F85EBC1D5965041CDCCCC6C151A5441B81E85CBD496504185EB5188201A5441AE47E1DAD5965041C3F5287C211A5441295C8FE2D696504166666606241A54418FC2F5D8D79650419A999999261A5441333333A3D8965041E17A14EE291A5441B81E855BD9965041CDCCCCFC2C1A544133333363DA965041713D0A872F1A5441295C8FB2DA965041F6285C9F311A5441F6285C3FDB9650415C8FC255341A5441000000F0DA965041000000D0351A544152B81EC5D996504148E17AD4361A5441EC51B84ED99650417B14AEB7391A5441666666D6D89650417B14AEA73B1A544133333363D8965041CDCCCCAC3C1A54415C8FC255D89650418FC2F5283D1A544185EB51B8D8965041AE47E1BA3F1A544152B81E25D9965041CDCCCC8C401A54417B14AE97DF965041C3F5286C3F1A544152B81E65E09650417B14AE173F1A5441EC51B83EE1965041A4703D9A3E1A5441A4703DCAE1965041AE47E1FA3D1A5441B81E856BE3965041000000503B1A5441666666E6E3965041713D0AE7381A5441A4703D1AE5965041CDCCCCBC361A5441E17A14AEE6965041AE47E1EA341A544166666666E896504100000010341A5441F6285CBFEA9650417B14AEF7311A544185EB51A8EB9650415C8FC265311A544152B81EE5EE965041CDCCCCEC2F1A5441EC51B80EF0965041000000602E1A5441B81E85BBF096504185EB51A82C1A5441A4703DBAF196504133333343281A5441295C8F52F29650415C8FC285261A5441C3F5283CF39650417B14AE17251A5441B81E859BF49650411F85EB01241A54410AD7A300F59650413D0AD783231A5441E054DA4CF3965041A2417605221A544148E17A84F4965041AE47E1BA211A544133333313F696504100000070231A54418FC2F5D8F7965041D7A370BD241A544114AE4731F99650410AD7A380251A544171BB831BF9965041833E4D8F261A5441EC51B8DEF8965041713D0A77261A544185EB5178F796504152B81EB5251A5441E17A142EF6965041295C8FC2241A544133333313F5965041333333E3241A54410AD7A3F0F3965041666666A6251A544152B81E25F396504114AE47E1261A5441A4703D8AF29650411F85EBB1281A5441E17A141EF19650411F85EB412F1A54417B14AE87EF9650417B14AEF7301A5441666666D6EA9650411F85EB91331A544148E17AE4EE96504148E17AA43B1A5441295C8FB2F29650417B14AE37431A5441E17A145EF696504152B81E854A1A5441713D0A17FF96504114AE4701531A5441F6285C4F07975041D7A370FD5A1A5441AE47E17A0F975041E17A14EE621A54410AD7A37018975041295C8FA26B1A5441713D0A2723975041C3F5280C761A5441F6285C3F2E975041AE47E12A7F1A5441295C8F9234975041EC51B85E841A54417B14AE673C975041CDCCCC9C791A544185EB5198439750410AD7A3B0701A54418FC2F528479750418FC2F5586C1A544114AE47513397504185EB5108631A54411F85EB5128975041E17A149E5C1A5441CDCCCC4C2297504133333383571A5441B81E853B1B9750415C8FC295531A5441C3F528FC12975041E17A14BE4E1A54419A9999F90F975041C3F5286C4A1A5441713D0A370A975041666666F6421A544114AE47C102975041AE47E13A381A54417B14AE87009750419A999999321A5441F6285C7FFE9650419A999909281A544166666636FD965041295C8FE2271A54419A999909FB96504148E17A54271A544150AE1681FA965041D15B001E271A5441A4703D5AFB9650410AD7A360261A5441A4703D3AFD965041C3F528DC261A5441EC51B89EFF965041AE47E10A271A544148E17A44009750419A999989261A54417B14AE77FE965041295C8F02211A5441B81E854BFD965041000000D01D1A54410AD7A300FC965041A4703D8A1A1A544133333373F9965041713D0A97141A544148E17A44F7965041F6285C9F0F1A5441EC51B89EF5965041A4703D1A0C1A544184BCCE47F096504104488B31011A5441E515C16FF19650411962359B001A5441AE47E1CAF6965041C3F5288C0B1A544114AE4771F8965041A4703D1A0F1A5441295C8FA2FA965041CDCCCC0C141A54411F85EB31FD965041666666061A1A544100000090FD9650410AD7A3F01A1A5441A4703D8AFD96504100000020191A5441C3F5283CFD96504185EB51A8161A54418FC2F5A8FC965041AE47E1EA141A54418FC2F558FD965041B81E85AB141A5441295C8FA2FD9650418FC2F578151A544133333313FE965041EC51B89E161A5441CDCCCC5CFE9650410AD7A350191A5441A4703D9AFE9650413D0AD7831D1A544185EB51B8FF96504152B81EA5201A5441713D0A4702975041A4703D3A281A5441A4703D2A039750415C8FC2152A1A54419A999929049750413D0AD7A32B1A5441F6285C2F05975041713D0AC72C1A54413D0AD773069750413D0AD7C32D1A544185EB517807975041713D0A672E1A5441A4703D7A089750417B14AEC72E1A5441F6285C8F09975041C3F5280C2F1A5441666666960A9750413D0AD7132F1A5441E17A14BE0B9750415C8FC2052F1A5441000000400D975041AE47E18A2E1A5441A4703D1A0F97504185EB51A82D1A54415C8FC295109750419A9999D92C1A54411F85EB4115975041B81E85AB291A544148E17A9417975041D7A370AD271A544185EB51D8199750417B14AE87251A5441D7A370DD1B975041333333F3231A5441B81E85AB1D975041C3F528BC221A5441AE47E14A1E975041713D0A27221A5441AE47E14A1E97504185EB5128211A54415C8FC2651D9750410AD7A3D01F1A5441B81E859B1B975041A4703DBA1D1A544114AE47111A975041A4703DCA1B1A5441A4703D3A18975041295C8F321A1A54415C8FC2D51697504114AE4701191A5441F6285CBF1497504100000090171A54411F85EB4113975041CDCCCCAC151A5441AE47E16A11975041295C8FA2131A54413D0AD7930F975041A4703D0A131A54419A9999C90D97504166666646121A5441666666E60B9750410AD7A3C0101A5441CDCCCC9C0997504114AE4741101A5441E17A146E06975041295C8F820F1A544114AE477104975041E17A141E0E1A5441295C8FB203975041CDCCCC1C0F1A5441E17A141E039750410AD7A390101A54415C8FC23501975041295C8F72111A54418FC2F538FF965041713D0AA7101A5441F6285CEFFD96504148E17A840E1A5441A4703D7AFE965041D7A3706D0C1A5441C3F5282CFF9650418FC2F5080B1A5441000000E0FE965041D7A3703D0A1A5441E17A14EEFD9650415C8FC2E5081A54411F85EB31FB96504100000050061A54419A999969F8965041D7A370AD031A5441E17A142EF5965041295C8F72001A544100D46424F496504160345C3BFF195441B81E85FBF4965041E17A14CEFE1954410AD7A310F9965041AE47E1FA021A5441A4703D0AFC965041E17A149E051A544148E17A14FE96504185EB5168071A5441C3F5282CFF965041E17A148E071A5441D7A3708D029750415C8FC2C5041A5441CDCCCC7C05975041F6285C6F021A5441333333930797504185EB5198001A54416666667609975041F6285C3F001A5441B81E859B0A975041C3F5284C001A5441295C8F320C975041E17A140EFF195441CDCCCCFC0D9750418FC2F558001A5441333333F310975041333333F3011A5441B81E851B13975041A4703DBA031A544114AE47E11797504148E17AE4091A54413D0AD7231697504152B81E950B1A5441295C8FE216975041E17A141E0E1A54418FC2F508179750417B14AE27101A5441333333D318975041AE47E14A121A5441B81E85AB1997504185EB5148141A5441F6285C5F199750415C8FC2F5171A5441295C8F1219975041E17A14CE181A54413333339318975041D7A3704D191A54418FC2F5681B975041CDCCCC3C1C1A5441A4703DDA1C975041D7A370ED1D1A54410AD7A3F01E9750413D0AD7C31F1A5441EC51B80E209750418FC2F508211A5441295C8FC221975041B81E851B211A544148E17AA4279750413D0AD773201A5441AE47E17A27975041D7A3703D1E1A5441EC51B82E2597504133333353191A54413D0AD7631F975041AE47E1EA0F1A54419A999909189750419A9999F9031A544166666626139750415C8FC215FC19544148E17A6412975041F6285C9FFA1954410AD7A30010975041713D0AC7F61954418FC2F5780F975041C3F5289CF4195441C3F5284C0F975041D7A370ADF1195441E17A145E0F9750410AD7A3A0ED195441713D0A770F9750417B14AE57EB195441D7A370DD0F975041666666D6E7195441EC51B84E10975041AE47E1DAE4195441A4703DEA0B9750417B14AE17E2195441713D0AE708975041EC51B81EE019544185EB51280697504114AE4751DE195441AE47E10A0397504148E17A24DC19544133333343FF9650415C8FC245D9195441D7A370EDFB9650413D0AD793D61954410AD7A3E0F896504114AE4701D4195441B81E854BF59650419A999909D11954418FC2F5B8F296504114AE47E1CE1954417B14AE17F1965041D7A370CDCD195441295C8FE2F0965041A4703DAACD195441AE47E1EAED965041C3F5288CCB195441F6285C8FEA9650418FC2F5D8C819544152B81EB5DA96504152B81EF5BC195441A4703D9ADC965041EC51B85EB919544152B81EB5DD96504114AE4711B6195441713D0AD7DA96504152B81EA5B5195441E17A144ED996504185EB5178B71954418FC2F508D896504166666626B9195441A4703DAAD79650418FC2F508BB195441C3F5282CD8965041666666A6BC195441000000C0D8965041CDCCCCBCBD195441E17A14DED996504133333383BF1954417B14AEF7DD96504152B81E45C519544114AE47E1DE965041D7A370CDC6195441F6285CDFDF965041C3F528CCC81954413D0AD7F3E1965041C3F5287CCD1954417B14AE77E49650411F85EB81D31954415C8FC2E5E596504152B81E65D719544133333373E6965041E17A147ED9195441295C8FB2E696504100000070DB195441AE47E1BAE696504152B81EE5E2195441B81E85DBE69650411F85EB01E5195441CDCCCC2CE7965041333333C3E6195441AE47E10AE89650413D0AD713EA195441E17A143EEA9650410AD7A340EE1954411F85EB21EC96504114AE4721F21954415C8FC2C5ED965041666666F6F419544100000090EF9650411F85EBF1F71954411F85EB71F29650419A9999B9FB195441CD63ECEDF196504169D1AC96FC195441295C8F02F0965041B81E853BFA19544114AE4751ED96504133333323F81954417B14AEF7EE96504100000090FB195441D514EF93F0965041433328DAFE1954413AAFE2C8EF965041F9C93B2E001A54410AD7A330EE965041C3F528ECFC195441EC51B88EED96504133333323FD19544133333313ED965041295C8F22FC195441D7A3706DED9650418FC2F558FB19544166666626EC96504185EB51B8F8195441713D0A87EA9650419A999929F519544100000070E9965041EC51B86EF219544100000040E8965041CDCCCC3CEF19544185EB5128E796504148E17AD4EB195441F6285CDFE5965041D7A3700DE71954410AD7A390E5965041EC51B81EE5195441C3F5286CE5965041E17A14DEE2195441A4703D6AE59650418FC2F598DB195441C3F5282CE596504185EB51A8D919544148E17AA4E4965041C3F528BCD7195441D7A3704DE396504133333313D4195441D7A370BDE0965041E17A14FECD1954410AD7A3B0DE965041713D0A57C91954419A999929DE96504148E17A54C8195441A4703DBADD965041E17A147EC7195441295C8FD2DC9650419A9999F9C5195441F6285CBFD89650419A999939C0195441EC51B88ED7965041C3F5284CBE195441F6285CAFD696504185EB5178BC195441D7A3703DD6965041333333E3BA195441F6285CCFD6965041D7A3709DB819544185EB51C8D7965041E17A14FEB6195441C3F5287CD6965041AE47E1DAB5195441B81E85DBD19650415C8FC2F5B1195441E17A145ECE9650413D0AD7C3AC195441A4703D0ACB96504185EB5138A819544148E17AF4C7965041666666D6A31954410AD7A370C59650415C8FC2D5A01954417B14AE07C2965041B81E85AB9D195441C3F5281CBF965041713D0AF79B195441C3F5289CBD965041CDCCCC0C9E1954410AD7A360BD9650419A9999A99F19544148E17A64BD965041B81E857BA119544185EB51B8BD965041EC51B81EA3195441E17A141EBE9650410AD7A380A4195441A4703DBABE965041D7A370EDA519544152B81E55C0965041B81E85EBA819544133333313C1965041B81E851BAA195441333333F3C1965041295C8F72AB195441D7A370BDC49650419A9999B9AF195441EC51B8AEC59650419A999909B11954418FC2F5A8C69650410AD7A370B2195441333333B3C99650418FC2F5E8B519544148E17A64CC965041295C8FE2B919544148E17A44CE9650413D0AD7C3BE19544166666606D0965041CDCCCCCCCA19544152B81E95D1965041B81E85DBD9195441C3F528FCD29650419A999999E51954418FC2F5D8D39650411F85EBD1EC19544152B81E45D5965041B81E854BFE195441C3F5283CDA9650413D0AD7E3061A54417B14AE27E2965041713D0A77101A5441000000F0E3965041CDCCCCEC101A5441E17A143EE696504114AE4781101A54410AD7A300E7965041D7A3705D101A5441C3F5288CE99650415C8FC2E50F1A54410AD7A330EB965041AE47E19A0F1A54418FC2F598F0965041B81E854B171A544148E17A44EE965041CDCCCCCC181A5441AE47E12AEC965041713D0A271A1A54410AD7A3E0EE965041A4703D8A1C1A5441C3F528ECF19650413D0AD7631F1A5441BDE6EBAFF196504183D2FE78201A54410900000066666646079750415C8FC2851E1A5441000000D009975041EC51B8DE1E1A54419A9999D90B975041666666061E1A54413D0AD7630D97504114AE4781211A5441AE47E1DA0A975041295C8FF2221A54418FC2F5F80797504152B81E35211A5441AE47E14A0497504114AE47911F1A544152B81E2504975041333333131E1A544166666646079750415C8FC2851E1A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>910243 - 3776167
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+01060000000100000001030000000100000024000000E17A145EF696504152B81E854A1A5441713D0A17FF96504114AE4701531A5441F6285C4F07975041D7A370FD5A1A5441AE47E17A0F975041E17A14EE621A54410AD7A37018975041295C8FA26B1A5441713D0A2723975041C3F5280C761A5441F6285C3F2E975041AE47E12A7F1A5441295C8F9234975041EC51B85E841A54417B14AE673C975041CDCCCC9C791A544185EB5198439750410AD7A3B0701A54418FC2F528479750418FC2F5586C1A544114AE47513397504185EB5108631A54411F85EB5128975041E17A149E5C1A5441CDCCCC4C2297504133333383571A5441B81E853B1B9750415C8FC295531A5441C3F528FC12975041E17A14BE4E1A54419A9999F90F975041C3F5286C4A1A5441713D0A370A975041666666F6421A544114AE47C102975041AE47E13A381A54417B14AE87009750419A999999321A5441F6285C7FFE9650419A999909281A544166666636FD965041295C8FE2271A54419A999909FB96504148E17A54271A5441EC51B8DEF8965041713D0A77261A544185EB5178F796504152B81EB5251A5441E17A142EF6965041295C8FC2241A544133333313F5965041333333E3241A54410AD7A3F0F3965041666666A6251A544152B81E25F396504114AE47E1261A5441A4703D8AF29650411F85EBB1281A5441E17A141EF19650411F85EB412F1A54417B14AE87EF9650417B14AEF7301A5441666666D6EA9650411F85EB91331A544148E17AE4EE96504148E17AA43B1A5441295C8FB2F29650417B14AE37431A5441E17A145EF696504152B81E854A1A5441
+</a>
+
+<b>
+0106000000010000000103000000020000003C010000BDE6EBAFF196504183D2FE78201A544148E17A44F1965041E17A14FE1F1A5441CDCCCC1CEE965041333333431D1A544133333313EB965041AE47E1DA1A1A5441713D0AA7E29650415C8FC245201A5441A4703DBADA96504100000080161A544114AE47C1D596504100000000041A544100000040D696504148E17A94091A54411F85EBC1D5965041CDCCCC6C151A5441B81E85CBD496504185EB5188201A5441AE47E1DAD5965041C3F5287C211A5441295C8FE2D696504166666606241A54418FC2F5D8D79650419A999999261A5441333333A3D8965041E17A14EE291A5441B81E855BD9965041CDCCCCFC2C1A544133333363DA965041713D0A872F1A5441295C8FB2DA965041F6285C9F311A5441F6285C3FDB9650415C8FC255341A5441000000F0DA965041000000D0351A544152B81EC5D996504148E17AD4361A5441EC51B84ED99650417B14AEB7391A5441666666D6D89650417B14AEA73B1A544133333363D8965041CDCCCCAC3C1A54415C8FC255D89650418FC2F5283D1A544185EB51B8D8965041AE47E1BA3F1A544152B81E25D9965041CDCCCC8C401A54417B14AE97DF965041C3F5286C3F1A544152B81E65E09650417B14AE173F1A5441EC51B83EE1965041A4703D9A3E1A5441A4703DCAE1965041AE47E1FA3D1A5441B81E856BE3965041000000503B1A5441666666E6E3965041713D0AE7381A5441A4703D1AE5965041CDCCCCBC361A5441E17A14AEE6965041AE47E1EA341A544166666666E896504100000010341A5441F6285CBFEA9650417B14AEF7311A544185EB51A8EB9650415C8FC265311A544152B81EE5EE965041CDCCCCEC2F1A5441EC51B80EF0965041000000602E1A5441B81E85BBF096504185EB51A82C1A5441A4703DBAF196504133333343281A5441295C8F52F29650415C8FC285261A5441C3F5283CF39650417B14AE17251A5441B81E859BF49650411F85EB01241A54410AD7A300F59650413D0AD783231A5441E054DA4CF3965041A2417605221A544148E17A84F4965041AE47E1BA211A544133333313F696504100000070231A54418FC2F5D8F7965041D7A370BD241A544114AE4731F99650410AD7A380251A544171BB831BF9965041833E4D8F261A5441EC51B8DEF8965041713D0A77261A544185EB5178F796504152B81EB5251A5441E17A142EF6965041295C8FC2241A544133333313F5965041333333E3241A54410AD7A3F0F3965041666666A6251A544152B81E25F396504114AE47E1261A5441A4703D8AF29650411F85EBB1281A5441E17A141EF19650411F85EB412F1A54417B14AE87EF9650417B14AEF7301A5441666666D6EA9650411F85EB91331A544148E17AE4EE96504148E17AA43B1A5441295C8FB2F29650417B14AE37431A5441E17A145EF696504152B81E854A1A5441713D0A17FF96504114AE4701531A5441F6285C4F07975041D7A370FD5A1A5441AE47E17A0F975041E17A14EE621A54410AD7A37018975041295C8FA26B1A5441713D0A2723975041C3F5280C761A5441F6285C3F2E975041AE47E12A7F1A5441295C8F9234975041EC51B85E841A54417B14AE673C975041CDCCCC9C791A544185EB5198439750410AD7A3B0701A54418FC2F528479750418FC2F5586C1A544114AE47513397504185EB5108631A54411F85EB5128975041E17A149E5C1A5441CDCCCC4C2297504133333383571A5441B81E853B1B9750415C8FC295531A5441C3F528FC12975041E17A14BE4E1A54419A9999F90F975041C3F5286C4A1A5441713D0A370A975041666666F6421A544114AE47C102975041AE47E13A381A54417B14AE87009750419A999999321A5441F6285C7FFE9650419A999909281A544166666636FD965041295C8FE2271A54419A999909FB96504148E17A54271A544150AE1681FA965041D15B001E271A5441A4703D5AFB9650410AD7A360261A5441A4703D3AFD965041C3F528DC261A5441EC51B89EFF965041AE47E10A271A544148E17A44009750419A999989261A54417B14AE77FE965041295C8F02211A5441B81E854BFD965041000000D01D1A54410AD7A300FC965041A4703D8A1A1A544133333373F9965041713D0A97141A544148E17A44F7965041F6285C9F0F1A5441EC51B89EF5965041A4703D1A0C1A544184BCCE47F096504104488B31011A5441E515C16FF19650411962359B001A5441AE47E1CAF6965041C3F5288C0B1A544114AE4771F8965041A4703D1A0F1A5441295C8FA2FA965041CDCCCC0C141A54411F85EB31FD965041666666061A1A544100000090FD9650410AD7A3F01A1A5441A4703D8AFD96504100000020191A5441C3F5283CFD96504185EB51A8161A54418FC2F5A8FC965041AE47E1EA141A54418FC2F558FD965041B81E85AB141A5441295C8FA2FD9650418FC2F578151A544133333313FE965041EC51B89E161A5441CDCCCC5CFE9650410AD7A350191A5441A4703D9AFE9650413D0AD7831D1A544185EB51B8FF96504152B81EA5201A5441713D0A4702975041A4703D3A281A5441A4703D2A039750415C8FC2152A1A54419A999929049750413D0AD7A32B1A5441F6285C2F05975041713D0AC72C1A54413D0AD773069750413D0AD7C32D1A544185EB517807975041713D0A672E1A5441A4703D7A089750417B14AEC72E1A5441F6285C8F09975041C3F5280C2F1A5441666666960A9750413D0AD7132F1A5441E17A14BE0B9750415C8FC2052F1A5441000000400D975041AE47E18A2E1A5441A4703D1A0F97504185EB51A82D1A54415C8FC295109750419A9999D92C1A54411F85EB4115975041B81E85AB291A544148E17A9417975041D7A370AD271A544185EB51D8199750417B14AE87251A5441D7A370DD1B975041333333F3231A5441B81E85AB1D975041C3F528BC221A5441AE47E14A1E975041713D0A27221A5441AE47E14A1E97504185EB5128211A54415C8FC2651D9750410AD7A3D01F1A5441B81E859B1B975041A4703DBA1D1A544114AE47111A975041A4703DCA1B1A5441A4703D3A18975041295C8F321A1A54415C8FC2D51697504114AE4701191A5441F6285CBF1497504100000090171A54411F85EB4113975041CDCCCCAC151A5441AE47E16A11975041295C8FA2131A54413D0AD7930F975041A4703D0A131A54419A9999C90D97504166666646121A5441666666E60B9750410AD7A3C0101A5441CDCCCC9C0997504114AE4741101A5441E17A146E06975041295C8F820F1A544114AE477104975041E17A141E0E1A5441295C8FB203975041CDCCCC1C0F1A5441E17A141E039750410AD7A390101A54415C8FC23501975041295C8F72111A54418FC2F538FF965041713D0AA7101A5441F6285CEFFD96504148E17A840E1A5441A4703D7AFE965041D7A3706D0C1A5441C3F5282CFF9650418FC2F5080B1A5441000000E0FE965041D7A3703D0A1A5441E17A14EEFD9650415C8FC2E5081A54411F85EB31FB96504100000050061A54419A999969F8965041D7A370AD031A5441E17A142EF5965041295C8F72001A544100D46424F496504160345C3BFF195441B81E85FBF4965041E17A14CEFE1954410AD7A310F9965041AE47E1FA021A5441A4703D0AFC965041E17A149E051A544148E17A14FE96504185EB5168071A5441C3F5282CFF965041E17A148E071A5441D7A3708D029750415C8FC2C5041A5441CDCCCC7C05975041F6285C6F021A5441333333930797504185EB5198001A54416666667609975041F6285C3F001A5441B81E859B0A975041C3F5284C001A5441295C8F320C975041E17A140EFF195441CDCCCCFC0D9750418FC2F558001A5441333333F310975041333333F3011A5441B81E851B13975041A4703DBA031A544114AE47E11797504148E17AE4091A54413D0AD7231697504152B81E950B1A5441295C8FE216975041E17A141E0E1A54418FC2F508179750417B14AE27101A5441333333D318975041AE47E14A121A5441B81E85AB1997504185EB5148141A5441F6285C5F199750415C8FC2F5171A5441295C8F1219975041E17A14CE181A54413333339318975041D7A3704D191A54418FC2F5681B975041CDCCCC3C1C1A5441A4703DDA1C975041D7A370ED1D1A54410AD7A3F01E9750413D0AD7C31F1A5441EC51B80E209750418FC2F508211A5441295C8FC221975041B81E851B211A544148E17AA4279750413D0AD773201A5441AE47E17A27975041D7A3703D1E1A5441EC51B82E2597504133333353191A54413D0AD7631F975041AE47E1EA0F1A54419A999909189750419A9999F9031A544166666626139750415C8FC215FC19544148E17A6412975041F6285C9FFA1954410AD7A30010975041713D0AC7F61954418FC2F5780F975041C3F5289CF4195441C3F5284C0F975041D7A370ADF1195441E17A145E0F9750410AD7A3A0ED195441713D0A770F9750417B14AE57EB195441D7A370DD0F975041666666D6E7195441EC51B84E10975041AE47E1DAE4195441A4703DEA0B9750417B14AE17E2195441713D0AE708975041EC51B81EE019544185EB51280697504114AE4751DE195441AE47E10A0397504148E17A24DC19544133333343FF9650415C8FC245D9195441D7A370EDFB9650413D0AD793D61954410AD7A3E0F896504114AE4701D4195441B81E854BF59650419A999909D11954418FC2F5B8F296504114AE47E1CE1954417B14AE17F1965041D7A370CDCD195441295C8FE2F0965041A4703DAACD195441AE47E1EAED965041C3F5288CCB195441F6285C8FEA9650418FC2F5D8C819544152B81EB5DA96504152B81EF5BC195441A4703D9ADC965041EC51B85EB919544152B81EB5DD96504114AE4711B6195441713D0AD7DA96504152B81EA5B5195441E17A144ED996504185EB5178B71954418FC2F508D896504166666626B9195441A4703DAAD79650418FC2F508BB195441C3F5282CD8965041666666A6BC195441000000C0D8965041CDCCCCBCBD195441E17A14DED996504133333383BF1954417B14AEF7DD96504152B81E45C519544114AE47E1DE965041D7A370CDC6195441F6285CDFDF965041C3F528CCC81954413D0AD7F3E1965041C3F5287CCD1954417B14AE77E49650411F85EB81D31954415C8FC2E5E596504152B81E65D719544133333373E6965041E17A147ED9195441295C8FB2E696504100000070DB195441AE47E1BAE696504152B81EE5E2195441B81E85DBE69650411F85EB01E5195441CDCCCC2CE7965041333333C3E6195441AE47E10AE89650413D0AD713EA195441E17A143EEA9650410AD7A340EE1954411F85EB21EC96504114AE4721F21954415C8FC2C5ED965041666666F6F419544100000090EF9650411F85EBF1F71954411F85EB71F29650419A9999B9FB195441CD63ECEDF196504169D1AC96FC195441295C8F02F0965041B81E853BFA19544114AE4751ED96504133333323F81954417B14AEF7EE96504100000090FB195441D514EF93F0965041433328DAFE1954413AAFE2C8EF965041F9C93B2E001A54410AD7A330EE965041C3F528ECFC195441EC51B88EED96504133333323FD19544133333313ED965041295C8F22FC195441D7A3706DED9650418FC2F558FB19544166666626EC96504185EB51B8F8195441713D0A87EA9650419A999929F519544100000070E9965041EC51B86EF219544100000040E8965041CDCCCC3CEF19544185EB5128E796504148E17AD4EB195441F6285CDFE5965041D7A3700DE71954410AD7A390E5965041EC51B81EE5195441C3F5286CE5965041E17A14DEE2195441A4703D6AE59650418FC2F598DB195441C3F5282CE596504185EB51A8D919544148E17AA4E4965041C3F528BCD7195441D7A3704DE396504133333313D4195441D7A370BDE0965041E17A14FECD1954410AD7A3B0DE965041713D0A57C91954419A999929DE96504148E17A54C8195441A4703DBADD965041E17A147EC7195441295C8FD2DC9650419A9999F9C5195441F6285CBFD89650419A999939C0195441EC51B88ED7965041C3F5284CBE195441F6285CAFD696504185EB5178BC195441D7A3703DD6965041333333E3BA195441F6285CCFD6965041D7A3709DB819544185EB51C8D7965041E17A14FEB6195441C3F5287CD6965041AE47E1DAB5195441B81E85DBD19650415C8FC2F5B1195441E17A145ECE9650413D0AD7C3AC195441A4703D0ACB96504185EB5138A819544148E17AF4C7965041666666D6A31954410AD7A370C59650415C8FC2D5A01954417B14AE07C2965041B81E85AB9D195441C3F5281CBF965041713D0AF79B195441C3F5289CBD965041CDCCCC0C9E1954410AD7A360BD9650419A9999A99F19544148E17A64BD965041B81E857BA119544185EB51B8BD965041EC51B81EA3195441E17A141EBE9650410AD7A380A4195441A4703DBABE965041D7A370EDA519544152B81E55C0965041B81E85EBA819544133333313C1965041B81E851BAA195441333333F3C1965041295C8F72AB195441D7A370BDC49650419A9999B9AF195441EC51B8AEC59650419A999909B11954418FC2F5A8C69650410AD7A370B2195441333333B3C99650418FC2F5E8B519544148E17A64CC965041295C8FE2B919544148E17A44CE9650413D0AD7C3BE19544166666606D0965041CDCCCCCCCA19544152B81E95D1965041B81E85DBD9195441C3F528FCD29650419A999999E51954418FC2F5D8D39650411F85EBD1EC19544152B81E45D5965041B81E854BFE195441C3F5283CDA9650413D0AD7E3061A54417B14AE27E2965041713D0A77101A5441000000F0E3965041CDCCCCEC101A5441E17A143EE696504114AE4781101A54410AD7A300E7965041D7A3705D101A5441C3F5288CE99650415C8FC2E50F1A54410AD7A330EB965041AE47E19A0F1A54418FC2F598F0965041B81E854B171A544148E17A44EE965041CDCCCCCC181A5441AE47E12AEC965041713D0A271A1A54410AD7A3E0EE965041A4703D8A1C1A5441C3F528ECF19650413D0AD7631F1A5441BDE6EBAFF196504183D2FE78201A54410900000066666646079750415C8FC2851E1A5441000000D009975041EC51B8DE1E1A54419A9999D90B975041666666061E1A54413D0AD7630D97504114AE4781211A5441AE47E1DA0A975041295C8FF2221A54418FC2F5F80797504152B81E35211A5441AE47E14A0497504114AE47911F1A544152B81E2504975041333333131E1A544166666646079750415C8FC2851E1A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>910256 - 1877611
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000020000002100000000000020799A50410AD7A3308C1A5441B81E85FB7B9A5041AE47E1BA891A544152B81EC57C9A5041EC51B88E861A544152B81E357E9A5041CDCCCC5C821A5441000000407F9A5041000000007C1A5441B81E854B819A50410AD7A360761A544133333333839A5041713D0AC7711A544148E17AB4849A5041AE47E17A6A1A544114AE4751879A5041713D0A97651A54419A999929829A5041CDCCCCAC601A5441A4703DBA7D9A50411F85EBC15E1A544100000060779A50417B14AED7591A5441B81E85DB749A5041E17A14CE541A54415C8FC275729A50419A9999D9501A54417B14AE076F9A504100000050501A544114AE47E16B9A5041E17A141E4F1A5441D7A370ED6A9A5041713D0A97541A544185EB5178689A5041D7A3706D591A5441B81E852B669A5041295C8FF25D1A54415C8FC2B5639A5041B81E854B641A54419A999999629A5041AE47E16A681A544114AE4771639A5041A4703D9A6A1A5441CDCCCC1C629A5041E17A14BE6D1A54419A999959669A50411F85EBD16E1A5441B81E85AB679A5041C3F5284C721A5441CDCCCCFC689A5041A4703D6A751A5441C3F5287C6C9A504185EB5128771A5441713D0AB76C9A504114AE47517B1A5441EC51B83E6D9A5041666666F6811A5441EC51B84E6D9A50419A999969891A5441EC51B89E719A5041666666468A1A5441A4703DFA749A5041E17A14FE8A1A544100000020799A50410AD7A3308C1A544105000000E17A144E729A5041F6285CBF701A544114AE4761719A5041EC51B82E6C1A544133333393759A5041E17A14BE6D1A544114AE4731769A50417B14AEE7701A5441E17A144E729A5041F6285CBF701A5441
+</a>
+
+<b>
+0106000000050000000103000000010000005F00000063B75782579A504153B8B144531A5441C3F528DC559A50418FC2F5F84F1A5441F6285CBF549A5041C3F528BC4E1A544152B81E75519A5041D7A370BD4D1A544114AE47E14D9A50419A999989491A5441666666D6489A5041E17A141E491A544166666626469A5041EC51B8FE411A54417B14AE97449A5041F6285C0F3E1A544152B81E05419A50411F85EBD13F1A5441B81E856B3D9A5041F6285C3F411A54410AD7A3903B9A5041CDCCCC1C421A544166666636399A5041D7A370ED411A5441D7A3707D369A5041EC51B85E411A544148E17AB4339A50410AD7A3C0401A5441EC51B85E2E9A5041CDCCCC6C401A544185EB51C82A9A504114AE47613F1A5441F6285CFF2A9A5041C3F528EC3D1A5441AE47E1CA279A5041F6285C8F3D1A5441A4703D9A219A5041F6285CEF3C1A5441AE47E1EA1D9A5041F6285CAF3C1A5441AE47E1DA199A5041F6285C7F3B1A5441B81E85BB169A5041F6285C0F3B1A5441B81E854B159A5041F6285CAF3B1A5441B81E85AB149A5041F6285CCF3C1A5441B81E85AB149A5041EC51B87E401A5441B81E85FB149A5041EC51B88E431A5441B81E85BB149A5041E17A149E451A5441B81E85FB129A5041E17A143E471A5441C3F528EC109A5041E17A140E491A54418E3A17E80F9A50419A9215CA491A5441C3F5288C0E9A5041D7A370CD4A1A5441C3F5286C0C9A5041D7A3704D4C1A5441CDCCCCBC0B9A5041D7A3708D4D1A5441CDCCCCEC0B9A5041D7A370DD4F1A5441C3F5283C0C9A5041CDCCCCFC511A5441C3F5288C109A5041CDCCCC9C521A5441B81E851B129A504148E17AE4511A544133333373159A50413D0AD713521A544114AE4721169A5041295C8FA2521A54411F85EBC1159A50419A9999F9551A54418FC2F568139A504148E17A44561A5441000000E0119A5041EC51B8EE561A544148E17AE4109A5041EC51B80E591A5441000000700F9A50413D0AD7535A1A54410AD7A340139A5041D7A3700D5F1A5441333333E3169A5041EC51B8DE601A544185EB51281A9A50413D0AD723631A5441666666561E9A50417B14AE97661A5441713D0A27229A5041C3F5280C681A5441E17A143E269A5041EC51B8AE671A5441C3F5286C279A50418FC2F568691A5441A4703D9A299A50418FC2F5686A1A5441CDCCCC3C2D9A5041713D0A976C1A5441AE47E1CA309A5041EC51B86E6F1A5441000000B0349A504185EB51686E1A5441D7A370FD399A5041C3F5286C711A5441000000003C9A50413D0AD7A3721A5441B81E850B3D9A50413D0AD743711A54411F85EB413E9A5041A4703DCA6E1A5441E17A148E3E9A5041F6285C9F6B1A5441CDCCCC5C3E9A5041666666D6691A5441000000403D9A5041A4703D6A681A5441666666C63A9A5041EC51B8AE681A544100000060359A50410AD7A3E0661A54417B14AE272E9A504152B81E65651A54411F85EB112A9A5041295C8F52641A54410AD7A3F0279A504114AE47A1631A544100000020239A504152B81EC5611A54419A999959239A5041713D0AF7601A54415C8FC2C5229A504166666676591A54418FC2F518229A5041713D0AF7501A54413D0AD7E3219A5041E17A141E4E1A5441C3F5285C299A5041E17A141E4C1A5441666666962E9A504114AE47014B1A5441CDCCCC3C329A50419A9999794A1A5441A4703D9A339A5041000000804A1A544114AE47B1349A5041000000B04A1A54417B14AE17399A5041D7A370BD4B1A5441713D0A273B9A5041CDCCCCDC4C1A54417B14AEE73C9A5041D7A370DD4E1A54417B14AE473D9A5041CDCCCC4C511A54417B14AE473D9A5041CDCCCC1C541A5441713D0AD73E9A5041CDCCCC5C551A5441713D0AB7409A5041CDCCCC4C561A5441713D0A67439A5041C3F5281C571A544166666616479A5041C3F5288C571A54415C8FC2854B9A5041C3F5289C581A544152B81E95529A5041EC51B81E5A1A5441C3F528FC559A5041CDCCCCDC5A1A54415C8FC285589A5041C3F5281C5B1A5441295C8F92599A5041F6285CEF591A544133333363599A50417B14AED7561A54419214EA52589A50413C9FE5D1541A5441B6268982579A5041AE32F548531A544163B75782579A504153B8B144531A5441010300000001000000220000003E7FD3B50F9A5041AC6129FC481A544178A29E43109A504101BA539B481A5441C3F528CC109A5041E17A143E481A54419A999969129A504148E17AD4461A54413D0AD753139A5041C3F5287C451A54411F85EB31149A5041A4703DCA431A5441B81E852B149A5041B81E855B421A5441CDCCCC0C149A5041EC51B8AE3F1A5441B81E852B149A5041A4703D4A3C1A54410AD7A320159A50415C8FC2C53A1A5441295C8FC2169A50418FC2F5683A1A5441AE47E1AA189A50413D0AD7B33A1A54411F85EB211A9A50419A9999C93A1A544114AE47911B9A5041E17A149E3A1A5441295C8F821B9A50410AD7A3B0391A5441333333D3179A5041F6285CDF381A5441B81E854B139A504185EB5148381A5441295C8FD20E9A504152B81ED5371A54419A9999090A9A504166666686371A54418FC2F5B8049A5041295C8F32381A5441AE47E10A059A504152B81E95391A5441D7A3703D059A5041AE47E1BA3B1A54417B14AED7029A50415C8FC2A53D1A5441D7A370ED009A5041C3F5287C3E1A5441A4703D2AFF995041000000F0421A54410AD7A320FF99504100000000461A5441E17A148E029A5041EC51B81E4A1A544185EB5198059A5041713D0A374D1A5441295C8F72099A5041EC51B82E4F1A5441000000400B9A50413D0AD7934F1A5441D7A3700D0B9A5041295C8FA24D1A5441CDCCCC7C0B9A5041D7A370CD4B1A5441C3F5283C0E9A5041E17A14FE491A54413E7FD3B50F9A5041AC6129FC481A5441010300000002000000110000008FBF5618689A504189227C5A561A5441E17A14DE689A5041AE47E1BA541A544185EB51386B9A50415C8FC2454D1A5441713D0A37689A5041B81E854B4A1A5441CDCCCC3C629A50415C8FC275451A54411F85EB415C9A5041CDCCCC6C441A5441AE47E18A559A50418FC2F548421A5441B81E85DB569A5041295C8F02451A54417B14AE97589A504152B81ED54A1A54417B14AEA75A9A5041C3F5283C511A5441000000D05B9A504185EB5108551A54415C8FC2E55C9A50419A999949581A5441000000905E9A5041666666165C1A54418FC2F558619A5041CDCCCC6C5D1A5441EC51B8DE619A5041B81E857B5B1A54418FC2F568659A50419A9999695C1A54418FBF5618689A504189227C5A561A544105000000295C8FF25D9A504148E17A044E1A544152B81E055E9A504152B81ED54A1A5441AE47E11A629A5041CDCCCC0C4B1A54413D0AD7E3619A5041D7A3700D4E1A5441295C8FF25D9A504148E17A044E1A544101030000000200000023000000B7B44FFD699A50419F7DB96F561A544185EB5178689A5041D7A3706D591A5441B81E852B669A5041295C8FF25D1A54415C8FC2B5639A5041B81E854B641A54419A999999629A5041AE47E16A681A544114AE4771639A5041A4703D9A6A1A5441CDCCCC1C629A5041E17A14BE6D1A54419A999959669A50411F85EBD16E1A5441B81E85AB679A5041C3F5284C721A5441CDCCCCFC689A5041A4703D6A751A5441C3F5287C6C9A504185EB5128771A5441713D0AB76C9A504114AE47517B1A5441EC51B83E6D9A5041666666F6811A5441EC51B84E6D9A50419A999969891A5441EC51B89E719A5041666666468A1A5441A4703DFA749A5041E17A14FE8A1A544100000020799A50410AD7A3308C1A5441B81E85FB7B9A5041AE47E1BA891A544152B81EC57C9A5041EC51B88E861A544152B81E357E9A5041CDCCCC5C821A5441000000407F9A5041000000007C1A5441B81E854B819A50410AD7A360761A544133333333839A5041713D0AC7711A544148E17AB4849A5041AE47E17A6A1A544114AE4751879A5041713D0A97651A54419A999929829A5041CDCCCCAC601A5441A4703DBA7D9A50411F85EBC15E1A544100000060779A50417B14AED7591A5441B81E85DB749A5041E17A14CE541A54415C8FC275729A50419A9999D9501A54417B14AE076F9A504100000050501A544114AE47E16B9A5041E17A141E4F1A5441D7A370ED6A9A5041713D0A97541A54412690954A6A9A50418A9E9DD7551A5441B7B44FFD699A50419F7DB96F561A544105000000E17A144E729A5041F6285CBF701A544114AE4761719A5041EC51B82E6C1A544133333393759A5041E17A14BE6D1A544114AE4731769A50417B14AEE7701A5441E17A144E729A5041F6285CBF701A544101030000000100000005000000945E641D689A504133CAB45A561A5441130BD61D689A50414F2DE859561A5441F1D80A1C689A50413A48D359561A54418FBF5618689A504189227C5A561A5441945E641D689A504133CAB45A561A5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>435144 - 390546
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+0106000000010000000103000000010000001F00000048E17AF4AAAF5041B81E85CB81E254419A9999F9AAAF5041A4703DCA75E254418FC2F5F8A9AF5041295C8FC274E254413333339394AF5041EC51B82E74E2544185EB51789CAF504114AE4731B1E25441D7A3707D9DAF50413D0AD713B9E25441713D0A679EAF504133333303B9E254418FC2F5989FAF50413D0AD773BEE254418FC2F558A1AF50415C8FC2F5BDE2544100000090A1AF504133333383BEE25441D7A3703DA3AF50417B14AEF7BDE2544152B81E05A4AF50419A999939BDE2544185EB5158A5AF50411F85EB11BDE2544185EB5148A6AF5041D7A3709DBDE2544100000010A7AF504152B81E05BFE2544114AE47E1A7AF50417B14AE97C1E254419A999949ACAF504166666676C0E25441666666A6AAAF504148E17A74BAE25441E17A149EABAF50415C8FC285B9E25441295C8FC2A8AF504114AE4781AFE25441C3F5287CA8AF5041B81E858BAEE254413D0AD7E3A1AF5041295C8FF2AFE25441A4703D3AA1AF504148E17AA4ACE254418FC2F538A0AF50411F85EBB1A6E25441E17A14EE9EAF5041C3F5286C9AE254415C8FC2C59CAF50411F85EBF18CE2544114AE47319BAF5041AE47E11A81E254415C8FC2B5A0AF504152B81EA580E25441AE47E16AA4AF5041295C8FC280E254419A999969A8AF50410AD7A33081E2544148E17AF4AAAF5041B81E85CB81E25441
+</a>
+
+<b>
+01060000000100000001030000000100000016000000BA65850BA0AF50410B537802A5E2544135E4BE209FAF50412E263D4D9CE25441CF15D5AC9EAF504106F891D498E25441F13D5C799EAF5041F9AF089397E2544171E7061A9EAF5041D7F0D9AB97E25441F82F3D5D9DAF5041C799CFCF97E25441FD4DC2F7A0AF50418E17A78BB0E25441A0C499F8A0AF5041206E8A90B0E25441EAF306FAA0AF50419CA0A896B0E25441ABCAD9FBA0AF50415896AB9CB0E254419A4810FEA0AF50411DB88CA2B0E254416CDE22FEA0AF504102BDB5A2B0E2544156ED8CB6A1AF5041028B8877B0E25441704BEFB5A1AF504169144871B0E25441AF55A102A2AF5041C6BC727BB0E25441499DF1E4A1AF5041754453F2AFE254413D0AD7E3A1AF5041295C8FF2AFE25441E75069D5A1AF50414D8E94AAAFE25441A99C5248A1AF5041B88AE21EADE25441295F65B7A0AF5041C925289EA9E254418FC2F538A0AF50411F85EBB1A6E25441BA65850BA0AF50410B537802A5E25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>435156 - 2907374
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000001000000250000007B14AE27ACB45041F6285C3F6BE45441EC51B87EB0B45041295C8FA26EE45441AE47E1FAB1B450415C8FC27572E45441C3F5289CB4B450418FC2F5186EE454410AD7A3D0B6B45041AE47E14A6AE4544152B81EE5B8B45041A4703DAA6BE454418FC2F5D8BFB450415C8FC2B56FE45441C3F528BCC1B450418FC2F55873E45441F6285C1FC6B4504185EB51F87BE45441A4703D6ABDB450410AD7A38084E4544148E17A34BDB450417B14AE878FE4544152B81ED5BDB450415C8FC2959EE45441EC51B85EBEB45041EC51B87EA0E454411F85EB61C4B450417B14AE37A3E454415C8FC2E5C9B450413D0AD723A5E4544152B81ED5CDB450411F85EB01A6E45441EC51B82ED2B45041CDCCCCBCA5E454411F85EB51D7B45041295C8FE2A2E454413D0AD703DBB45041E17A144E9DE45441A4703DEAE0B45041666666F68BE454415C8FC2F5E3B4504114AE476186E454415C8FC2C5EFB450416666666674E454419A9999C9EEB45041A4703DAA73E454411F85EB01F3B45041C3F5288C6BE454415C8FC295EDB45041EC51B87E68E4544114AE4791EAB45041E17A142E60E454415C8FC285E1B450416666662664E45441C3F528DCDCB45041CDCCCC5C5CE45441C3F528ECD5B45041F6285CCF5CE454411F85EBB1D3B45041713D0A0757E45441F6285C9FD1B4504185EB519851E45441EC51B8BEBBB450410AD7A3E056E454415C8FC2D5A8B450411F85EB715BE454410AD7A360A7B45041CDCCCCCC5BE45441B81E85DBA7B450415C8FC2155FE45441B81E85DBA9B45041A4703DBA66E454417B14AE27ACB45041F6285C3F6BE45441
+</a>
+
+<b>
+01060000000100000001030000000100000025000000AF97BEADB6B45041E51C7D676AE454412EF895E4B8B45041933EFEA76BE45441665C53E3B8B45041412238A96BE4544152B81EE5B8B45041A4703DAA6BE4544166666646C4B450419A99994972E4544103451613C6B450417D953ABC7BE454411D967621C6B450414BA31DF57BE45441833720A3C6B4504142C68C927CE4544197758422C7B45041B72688A37DE454413468F68DC8B45041BDBC195A80E454412A582888CAB45041B86A38EE82E4544168C6A417CEB45041EB807EB986E454413DEA1331D0B45041F6BBEF6388E45441553433FAD2B45041CC8FC8998AE45441D2D62C30D4B450411FF2BD8F8BE45441C0DDC226DBB450417F6C2F1691E45441055A1BA4DEB45041C8B186A592E454415F9B7228DFB4504125C8852091E45441D44D3425E0B45041C76A91398EE454414DBB3CA0E0B45041AC9AECCF8CE454419A4AFCEAE0B45041798108F58BE454411029B252E1B45041F5BEE5368BE45441F366605BE2B450417F4DA65189E454415C8FC2F5E3B4504114AE476186E45441086A6C41E7B45041E23E205D81E4544121715FBDE8B45041E281CC1A7FE4544105BD53D1EFB45041E6FAC85474E45441046F90E7EEB450413F862C9E73E45441218E160FF3B450416593179B6BE454417D2C14A9EDB45041CDC4DBAC68E45441788E15D5EAB4504110F0F90F60E454415C8FC285E1B450416666662664E4544136351428DDB45041D64E777D5CE4544149F7489AD7B45041987290955CE45441C09B8E9BD7B45041C012B99E5CE45441703C63C1B8B4504194F3681B5DE45441AF97BEADB6B45041E51C7D676AE45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>435156 - 2948513
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000250000007B14AE27ACB45041F6285C3F6BE45441EC51B87EB0B45041295C8FA26EE45441AE47E1FAB1B450415C8FC27572E45441C3F5289CB4B450418FC2F5186EE454410AD7A3D0B6B45041AE47E14A6AE4544152B81EE5B8B45041A4703DAA6BE454418FC2F5D8BFB450415C8FC2B56FE45441C3F528BCC1B450418FC2F55873E45441F6285C1FC6B4504185EB51F87BE45441A4703D6ABDB450410AD7A38084E4544148E17A34BDB450417B14AE878FE4544152B81ED5BDB450415C8FC2959EE45441EC51B85EBEB45041EC51B87EA0E454411F85EB61C4B450417B14AE37A3E454415C8FC2E5C9B450413D0AD723A5E4544152B81ED5CDB450411F85EB01A6E45441EC51B82ED2B45041CDCCCCBCA5E454411F85EB51D7B45041295C8FE2A2E454413D0AD703DBB45041E17A144E9DE45441A4703DEAE0B45041666666F68BE454415C8FC2F5E3B4504114AE476186E454415C8FC2C5EFB450416666666674E454419A9999C9EEB45041A4703DAA73E454411F85EB01F3B45041C3F5288C6BE454415C8FC295EDB45041EC51B87E68E4544114AE4791EAB45041E17A142E60E454415C8FC285E1B450416666662664E45441C3F528DCDCB45041CDCCCC5C5CE45441C3F528ECD5B45041F6285CCF5CE454411F85EBB1D3B45041713D0A0757E45441F6285C9FD1B4504185EB519851E45441EC51B8BEBBB450410AD7A3E056E454415C8FC2D5A8B450411F85EB715BE454410AD7A360A7B45041CDCCCCCC5BE45441B81E85DBA7B450415C8FC2155FE45441B81E85DBA9B45041A4703DBA66E454417B14AE27ACB45041F6285C3F6BE45441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000EC51B85EBEB45041EC51B87EA0E454411F85EB61C4B450417B14AE37A3E454415C8FC2E5C9B450413D0AD723A5E4544152B81ED5CDB450411F85EB01A6E45441EC51B82ED2B45041CDCCCCBCA5E454411F85EB51D7B45041295C8FE2A2E454413D0AD703DBB45041E17A144E9DE45441055A1BA4DEB45041C8B186A592E45441C0DDC226DBB450417F6C2F1691E45441D2D62C30D4B450411FF2BD8F8BE45441553433FAD2B45041CC8FC8998AE4544169C6A417CEB45041EC807EB986E454412F582888CAB45041BE6A38EE82E454413568F68DC8B45041BFBC195A80E4544199758422C7B45041BA2688A37DE45441F719731AC6B45041F6B621FD7BE45441325406BCC4B45041FF8D83547DE4544107BAE163C2B45041646D98A07FE4544145E07921C0B45041F76260D781E45441A952081BBEB45041848D66D383E454417B403169BDB45041BAE8A6B784E4544177EBD341BDB45041EACFC2CA8CE45441AC426F7DBDB450410F65025E96E45441567F93C7BDB450414ED8D0509DE45441529437D4BDB45041CF0619809EE45441658C841EBEB45041B02CBE9B9FE45441EC51B85EBEB45041EC51B87EA0E45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>435156 - 3811664
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 2 </desc>
+<a>
+010600000001000000010300000001000000250000007B14AE27ACB45041F6285C3F6BE45441EC51B87EB0B45041295C8FA26EE45441AE47E1FAB1B450415C8FC27572E45441C3F5289CB4B450418FC2F5186EE454410AD7A3D0B6B45041AE47E14A6AE4544152B81EE5B8B45041A4703DAA6BE454418FC2F5D8BFB450415C8FC2B56FE45441C3F528BCC1B450418FC2F55873E45441F6285C1FC6B4504185EB51F87BE45441A4703D6ABDB450410AD7A38084E4544148E17A34BDB450417B14AE878FE4544152B81ED5BDB450415C8FC2959EE45441EC51B85EBEB45041EC51B87EA0E454411F85EB61C4B450417B14AE37A3E454415C8FC2E5C9B450413D0AD723A5E4544152B81ED5CDB450411F85EB01A6E45441EC51B82ED2B45041CDCCCCBCA5E454411F85EB51D7B45041295C8FE2A2E454413D0AD703DBB45041E17A144E9DE45441A4703DEAE0B45041666666F68BE454415C8FC2F5E3B4504114AE476186E454415C8FC2C5EFB450416666666674E454419A9999C9EEB45041A4703DAA73E454411F85EB01F3B45041C3F5288C6BE454415C8FC295EDB45041EC51B87E68E4544114AE4791EAB45041E17A142E60E454415C8FC285E1B450416666662664E45441C3F528DCDCB45041CDCCCC5C5CE45441C3F528ECD5B45041F6285CCF5CE454411F85EBB1D3B45041713D0A0757E45441F6285C9FD1B4504185EB519851E45441EC51B8BEBBB450410AD7A3E056E454415C8FC2D5A8B450411F85EB715BE454410AD7A360A7B45041CDCCCCCC5BE45441B81E85DBA7B450415C8FC2155FE45441B81E85DBA9B45041A4703DBA66E454417B14AE27ACB45041F6285C3F6BE45441
+</a>
+
+<b>
+0106000000010000000103000000010000001B000000EC51B85EBEB45041EC51B87EA0E454411F85EB61C4B450417B14AE37A3E454415C8FC2E5C9B450413D0AD723A5E4544152B81ED5CDB450411F85EB01A6E45441EC51B82ED2B45041CDCCCCBCA5E454411F85EB51D7B45041295C8FE2A2E454413D0AD703DBB45041E17A144E9DE45441055A1BA4DEB45041C8B186A592E45441C0DDC226DBB450417F6C2F1691E45441D2D62C30D4B450411FF2BD8F8BE45441553433FAD2B45041CC8FC8998AE4544169C6A417CEB45041EC807EB986E454412F582888CAB45041BE6A38EE82E454413568F68DC8B45041BFBC195A80E4544199758422C7B45041BA2688A37DE45441F719731AC6B45041F6B621FD7BE45441325406BCC4B45041FF8D83547DE4544107BAE163C2B45041646D98A07FE4544145E07921C0B45041F76260D781E45441A952081BBEB45041848D66D383E454417B403169BDB45041BAE8A6B784E4544177EBD341BDB45041EACFC2CA8CE45441AC426F7DBDB450410F65025E96E45441567F93C7BDB450414ED8D0509DE45441529437D4BDB45041CF0619809EE45441658C841EBEB45041B02CBE9B9FE45441EC51B85EBEB45041EC51B87EA0E45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>435156 - 3811700
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 4 </desc>
+<a>
+010600000001000000010300000001000000250000007B14AE27ACB45041F6285C3F6BE45441EC51B87EB0B45041295C8FA26EE45441AE47E1FAB1B450415C8FC27572E45441C3F5289CB4B450418FC2F5186EE454410AD7A3D0B6B45041AE47E14A6AE4544152B81EE5B8B45041A4703DAA6BE454418FC2F5D8BFB450415C8FC2B56FE45441C3F528BCC1B450418FC2F55873E45441F6285C1FC6B4504185EB51F87BE45441A4703D6ABDB450410AD7A38084E4544148E17A34BDB450417B14AE878FE4544152B81ED5BDB450415C8FC2959EE45441EC51B85EBEB45041EC51B87EA0E454411F85EB61C4B450417B14AE37A3E454415C8FC2E5C9B450413D0AD723A5E4544152B81ED5CDB450411F85EB01A6E45441EC51B82ED2B45041CDCCCCBCA5E454411F85EB51D7B45041295C8FE2A2E454413D0AD703DBB45041E17A144E9DE45441A4703DEAE0B45041666666F68BE454415C8FC2F5E3B4504114AE476186E454415C8FC2C5EFB450416666666674E454419A9999C9EEB45041A4703DAA73E454411F85EB01F3B45041C3F5288C6BE454415C8FC295EDB45041EC51B87E68E4544114AE4791EAB45041E17A142E60E454415C8FC285E1B450416666662664E45441C3F528DCDCB45041CDCCCC5C5CE45441C3F528ECD5B45041F6285CCF5CE454411F85EBB1D3B45041713D0A0757E45441F6285C9FD1B4504185EB519851E45441EC51B8BEBBB450410AD7A3E056E454415C8FC2D5A8B450411F85EB715BE454410AD7A360A7B45041CDCCCCCC5BE45441B81E85DBA7B450415C8FC2155FE45441B81E85DBA9B45041A4703DBA66E454417B14AE27ACB45041F6285C3F6BE45441
+</a>
+
+<b>
+01060000000100000001030000000100000025000000AF97BEADB6B45041E51C7D676AE454412EF895E4B8B45041933EFEA76BE45441665C53E3B8B45041412238A96BE4544152B81EE5B8B45041A4703DAA6BE4544166666646C4B450419A99994972E4544103451613C6B450417D953ABC7BE454411D967621C6B450414BA31DF57BE45441833720A3C6B4504142C68C927CE4544197758422C7B45041B72688A37DE454413468F68DC8B45041BDBC195A80E454412A582888CAB45041B86A38EE82E4544168C6A417CEB45041EB807EB986E454413DEA1331D0B45041F6BBEF6388E45441553433FAD2B45041CC8FC8998AE45441D2D62C30D4B450411FF2BD8F8BE45441C0DDC226DBB450417F6C2F1691E45441055A1BA4DEB45041C8B186A592E454415F9B7228DFB4504125C8852091E45441D44D3425E0B45041C76A91398EE454414DBB3CA0E0B45041AC9AECCF8CE454419A4AFCEAE0B45041798108F58BE454411029B252E1B45041F5BEE5368BE45441F366605BE2B450417F4DA65189E454415C8FC2F5E3B4504114AE476186E45441086A6C41E7B45041E23E205D81E4544121715FBDE8B45041E281CC1A7FE4544105BD53D1EFB45041E6FAC85474E45441046F90E7EEB450413F862C9E73E45441218E160FF3B450416593179B6BE454417D2C14A9EDB45041CDC4DBAC68E45441788E15D5EAB4504110F0F90F60E454415C8FC285E1B450416666662664E4544136351428DDB45041D64E777D5CE4544149F7489AD7B45041987290955CE45441C09B8E9BD7B45041C012B99E5CE45441703C63C1B8B4504194F3681B5DE45441AF97BEADB6B45041E51C7D676AE45441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>435191 - 205097
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000002000000010300000001000000060000005C8FC265D8AF50417B14AEF73FE35441295C8F22D8AF50417B14AE7733E35441713D0A67C0AF50418FC2F5E835E3544114AE47B1C0AF50410AD7A36042E354415C8FC295D6AF504114AE478140E354415C8FC265D8AF50417B14AEF73FE354410103000000010000000C000000AE47E1EACEAF5041713D0A77F0E2544148E17AB4CEAF504152B81E75E7E25441713D0A67D6AF504133333323E5E254413D0AD763D6AF50410AD7A3A0E4E254417B14AE87BEAF50415C8FC2A5E5E254413D0AD7E3BEAF50411F85EB21F5E25441A4703DAAC0AF504185EB51F8F4E254413D0AD7D3C4AF504185EB5188F4E254410AD7A390C7AF50418FC2F5D8F3E25441C3F5288CCAAF50419A9999B9F2E2544166666696CDAF5041A4703D2AF1E25441AE47E1EACEAF5041713D0A77F0E25441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000580DD388BEAF5041246EFCD6E5E25441801636E3BEAF50410658E006F5E254411DA545D6C2AF50413FD1E0BDF4E25441D8C6DB01C7AF5041FC1EB0FCF3E2544120D929BFC9AF5041D8BFC006F3E25441F97F48D4CBAF5041AD923811F2E25441877A6796CDAF50414FDF3C2AF1E25441C9DDB1D4CEAF5041B367B782F0E25441152115EACEAF504127A63C55F0E2544148E17AB4CEAF504152B81E75E7E2544187020267D6AF504137AE3523E5E25441B3F94865D6AF50413B3499DBE4E25441580DD388BEAF5041246EFCD6E5E25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>435245 - 2988182
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000002000000150000005C8FC29508B450415C8FC215F5E354419A99997902B45041AE47E12AF3E35441D7A370BDF9B35041666666B6F6E354418FC2F538E9B3504133333343F7E35441A4703D1AE2B35041C3F5281CF8E3544114AE4741E1B35041E17A14FEF8E354410AD7A3C0E0B3504152B81ED5FCE354411F85EBC1E0B35041AE47E1DA05E454415C8FC265E1B35041E17A143E08E45441AE47E14AEBB35041E17A144E09E4544152B81E45F4B3504185EB51080CE45441666666E6FAB35041A4703D6A07E45441EC51B86EFEB350410AD7A3900AE454415C8FC27503B45041AE47E15A08E45441EC51B81E0CB45041333333C305E45441EC51B8CE13B4504114AE47B101E45441EC51B8CE18B45041D7A3705DFEE35441C3F5289C1AB450410AD7A370FCE35441B81E856B15B45041713D0A47F9E35441C3F5280C0FB45041666666A6F6E354415C8FC29508B450415C8FC215F5E354411000000014AE4741F2B350418FC2F5F809E45441F6285C6FEEB35041AE47E13A09E45441E17A145EEDB3504185EB518808E45441A4703DFAECB35041AE47E14A07E454413D0AD793EDB35041295C8F4205E45441E17A14CEEFB350413D0AD74303E454419A999929F3B350419A99991902E45441C3F5280CF6B350413333330302E45441C3F528ACF7B350410AD7A3F002E454411F85EBF1F9B350410000009005E45441D7A3702DFAB35041F6285C8F06E45441B81E85ABF8B35041713D0A4708E45441E17A14BEF6B350410000007009E454418FC2F5F8F4B350413D0AD7630AE454411F85EB81F3B3504114AE47310AE4544114AE4741F2B350418FC2F5F809E45441
+</a>
+
+<b>
+0106000000010000000103000000010000001D00000072FEE4E0F9B350415DD5E1D3FFE35441F0643F08F9B35041316A8A87F7E354416E95D6F3F8B35041986216BEF6E35441B0675664EDB35041CF985622F7E354418CB4DE17EBB3504141FBC932F7E35441681E208BE9B350412DCC7640F7E354418FC2F538E9B3504133333343F7E35441EE8FBFD3E6B350415C18F18BF7E3544117EDA2A8E3B350414F0FBDECF7E35441A4703D1AE2B35041C3F5281CF8E35441CB6975CCE1B35041F54F276DF8E354413BCCDC3FE1B35041CF8CE908F9E35441CA382F3DE1B350410594601DF9E35441531D9232E1B35041F0247C6EF9E3544109A126E8E0B3504167AE7CA3FBE3544185B5DDC2E0B3504151E61BC4FCE354413800E6C0E0B3504190FB79A7FEE354416FE049C1E0B350416CEE7B6701E45441FF79B5C5E0B35041EC01A64002E45441536870FEE0B350418BD7634102E45441F16908C7E1B35041E3E3D12D02E454416943B610E2B3504139C16D2802E45441008F89DBE5B35041AA3013D001E4544160308786E7B350416266429E01E45441ED295A4EEBB35041FF66D63F01E45441FBAA81D5EFB350419717A4E700E454417EE2C2E4F9B350418E66FCFCFFE35441B0D728E0F9B350419430F4D3FFE3544172FEE4E0F9B350415DD5E1D3FFE35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>435245 - 3426131
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+010600000001000000010300000002000000150000005C8FC29508B450415C8FC215F5E354419A99997902B45041AE47E12AF3E35441D7A370BDF9B35041666666B6F6E354418FC2F538E9B3504133333343F7E35441A4703D1AE2B35041C3F5281CF8E3544114AE4741E1B35041E17A14FEF8E354410AD7A3C0E0B3504152B81ED5FCE354411F85EBC1E0B35041AE47E1DA05E454415C8FC265E1B35041E17A143E08E45441AE47E14AEBB35041E17A144E09E4544152B81E45F4B3504185EB51080CE45441666666E6FAB35041A4703D6A07E45441EC51B86EFEB350410AD7A3900AE454415C8FC27503B45041AE47E15A08E45441EC51B81E0CB45041333333C305E45441EC51B8CE13B4504114AE47B101E45441EC51B8CE18B45041D7A3705DFEE35441C3F5289C1AB450410AD7A370FCE35441B81E856B15B45041713D0A47F9E35441C3F5280C0FB45041666666A6F6E354415C8FC29508B450415C8FC215F5E354411000000014AE4741F2B350418FC2F5F809E45441F6285C6FEEB35041AE47E13A09E45441E17A145EEDB3504185EB518808E45441A4703DFAECB35041AE47E14A07E454413D0AD793EDB35041295C8F4205E45441E17A14CEEFB350413D0AD74303E454419A999929F3B350419A99991902E45441C3F5280CF6B350413333330302E45441C3F528ACF7B350410AD7A3F002E454411F85EBF1F9B350410000009005E45441D7A3702DFAB35041F6285C8F06E45441B81E85ABF8B35041713D0A4708E45441E17A14BEF6B350410000007009E454418FC2F5F8F4B350413D0AD7630AE454411F85EB81F3B3504114AE47310AE4544114AE4741F2B350418FC2F5F809E45441
+</a>
+
+<b>
+0106000000010000000103000000010000001D00000072FEE4E0F9B350415DD5E1D3FFE35441F0643F08F9B35041316A8A87F7E354416E95D6F3F8B35041986216BEF6E35441B0675664EDB35041CF985622F7E354418CB4DE17EBB3504141FBC932F7E35441681E208BE9B350412DCC7640F7E354418FC2F538E9B3504133333343F7E35441EE8FBFD3E6B350415C18F18BF7E3544117EDA2A8E3B350414F0FBDECF7E35441A4703D1AE2B35041C3F5281CF8E35441CB6975CCE1B35041F54F276DF8E354413BCCDC3FE1B35041CF8CE908F9E35441CA382F3DE1B350410594601DF9E35441531D9232E1B35041F0247C6EF9E3544109A126E8E0B3504167AE7CA3FBE3544185B5DDC2E0B3504151E61BC4FCE354413800E6C0E0B3504190FB79A7FEE354416FE049C1E0B350416CEE7B6701E45441FF79B5C5E0B35041EC01A64002E45441536870FEE0B350418BD7634102E45441F16908C7E1B35041E3E3D12D02E454416943B610E2B3504139C16D2802E45441008F89DBE5B35041AA3013D001E4544160308786E7B350416266429E01E45441ED295A4EEBB35041FF66D63F01E45441FBAA81D5EFB350419717A4E700E454417EE2C2E4F9B350418E66FCFCFFE35441B0D728E0F9B350419430F4D3FFE3544172FEE4E0F9B350415DD5E1D3FFE35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>435253 - 246839
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000006000000295C8FD25DAF50416666661666E25441AE47E14A59AF50411F85EBC164E254418FC2F5B859AF5041EC51B89E6FE2544152B81E355AAF5041E17A14BE7AE254419A9999F95EAF5041C3F528FC77E25441295C8FD25DAF50416666661666E25441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000295C8FD25DAF50416666661666E25441E6C5FA625CAF504144A27AAA65E25441AF47E14A59AF50413F85EBC164E2544180DCF24A59AF504128A7A7C364E25441AA81034B59AF5041D7214CC564E25441C63818A659AF5041655226C26DE2544134159C3C5AAF5041777CBFB97AE254412C3424665AAF50419FEAB9A17AE2544139D238265BAF504194B3A0327AE254418E0943455BAF504191A5AC207AE254419A9999F95EAF5041C3F528FC77E25441EFEF22DA5EAF504178D08D1376E25441295C8FD25DAF50416666661666E25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>435253 - 366894
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -5 </desc>
+<a>
+01060000000100000001030000000100000006000000295C8FD25DAF50416666661666E25441AE47E14A59AF50411F85EBC164E254418FC2F5B859AF5041EC51B89E6FE2544152B81E355AAF5041E17A14BE7AE254419A9999F95EAF5041C3F528FC77E25441295C8FD25DAF50416666661666E25441
+</a>
+
+<b>
+0106000000010000000103000000010000000D000000295C8FD25DAF50416666661666E25441E6C5FA625CAF504144A27AAA65E25441AF47E14A59AF50413F85EBC164E2544180DCF24A59AF504128A7A7C364E25441AA81034B59AF5041D7214CC564E25441C63818A659AF5041655226C26DE2544134159C3C5AAF5041777CBFB97AE254412C3424665AAF50419FEAB9A17AE2544139D238265BAF504194B3A0327AE254418E0943455BAF504191A5AC207AE254419A9999F95EAF5041C3F528FC77E25441EFEF22DA5EAF504178D08D1376E25441295C8FD25DAF50416666661666E25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>435297 - 2949163
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000002000000010300000001000000130000009A9999B919B25041666666562FE25441C3F5289C1DB250410AD7A3103CE25441713D0A771FB2504152B81EB542E254410AD7A3C021B250411F85EB714DE254413D0AD7E321B25041D7A3701D4FE254411F85EB5122B25041CDCCCC5C54E2544148E17A3421B25041B81E856B60E254411F85EBC122B25041C3F528DC60E254415C8FC25523B2504152B81EF55BE25441C3F528AC23B250419A9999B956E25441F6285CBF23B25041AE47E1FA51E254415C8FC25523B250413D0AD7234EE25441E17A146E22B2504185EB511849E25441CDCCCCBC20B250417B14AE4742E254413D0AD7231EB25041B81E852B39E254417B14AED71BB25041D7A370AD31E25441EC51B8BE18B25041C3F528DC27E254410AD7A38017B25041D7A3700D28E254419A9999B919B25041666666562FE254410103000000010000000E0000007B14AE976EB25041AE47E17A4EE25441000000A069B25041B81E853B5FE254417B14AEC767B2504152B81E8565E2544152B81EB565B25041F6285CBF6CE2544114AE47B164B25041C3F5286C6FE25441A4703DFA63B25041D7A370ED70E2544185EB51F862B250417B14AEF771E25441EC51B89E66B2504148E17A6471E25441D7A3700D6EB2504152B81E355FE254417B14AE9780B25041000000B033E2544185EB512878B25041F6285C0F30E2544185EB519875B25041713D0AC737E254417B14AEB771B250419A99992944E254417B14AE976EB25041AE47E17A4EE25441
+</a>
+
+<b>
+0106000000010000000103000000010000001D0000008BE9C8701DB25041E1F397E336E254414B6645601BB250416B77F93230E2544180C205F21AB2504116E18AD52EE254413144D20B1AB2504126B38B962BE25441F46CAA0019B2504144DF25D227E2544168AF688317B250416049A20F28E254419A9999B919B25041666666562FE2544116270AD81AB25041BC44CB0033E254417061AA0C1CB25041A21ADFF336E25441C3F5289C1DB250410AD7A3103CE254415EFCEDE81DB25041B19F8A233DE25441713D0A771FB2504152B81EB542E25441531E0C9A1FB25041F3AD715943E254414BDB7B1F20B25041FB1DCBCB45E254410AD7A3C021B250411F85EB714DE25441C1838D2522B2504192835D3F52E254411F85EB5122B25041CDCCCC5C54E25441782F492722B250416056D72956E254417350B5CF21B25041C69CE5DC59E25441A442F68D21B250411CF8DEA35CE2544148E17A3421B25041B81E856B60E25441846C02C622B2504140A759DD60E254415C8FC25523B2504152B81EF55BE2544183A938AC23B25041F7B5466156E2544152F9FAAC23B25041BB31481C52E25441B0D37A2823B25041E1DF87384DE254410D66FB5621B25041C9E8B1CD44E2544153B1BD261FB25041E1D58AB73CE254418BE9C8701DB25041E1F397E336E25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>435297 - 3299938
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 3 </desc>
+<a>
+010600000002000000010300000001000000130000009A9999B919B25041666666562FE25441C3F5289C1DB250410AD7A3103CE25441713D0A771FB2504152B81EB542E254410AD7A3C021B250411F85EB714DE254413D0AD7E321B25041D7A3701D4FE254411F85EB5122B25041CDCCCC5C54E2544148E17A3421B25041B81E856B60E254411F85EBC122B25041C3F528DC60E254415C8FC25523B2504152B81EF55BE25441C3F528AC23B250419A9999B956E25441F6285CBF23B25041AE47E1FA51E254415C8FC25523B250413D0AD7234EE25441E17A146E22B2504185EB511849E25441CDCCCCBC20B250417B14AE4742E254413D0AD7231EB25041B81E852B39E254417B14AED71BB25041D7A370AD31E25441EC51B8BE18B25041C3F528DC27E254410AD7A38017B25041D7A3700D28E254419A9999B919B25041666666562FE254410103000000010000000E0000007B14AE976EB25041AE47E17A4EE25441000000A069B25041B81E853B5FE254417B14AEC767B2504152B81E8565E2544152B81EB565B25041F6285CBF6CE2544114AE47B164B25041C3F5286C6FE25441A4703DFA63B25041D7A370ED70E2544185EB51F862B250417B14AEF771E25441EC51B89E66B2504148E17A6471E25441D7A3700D6EB2504152B81E355FE254417B14AE9780B25041000000B033E2544185EB512878B25041F6285C0F30E2544185EB519875B25041713D0AC737E254417B14AEB771B250419A99992944E254417B14AE976EB25041AE47E17A4EE25441
+</a>
+
+<b>
+0106000000010000000103000000010000001D0000008BE9C8701DB25041E1F397E336E254414B6645601BB250416B77F93230E2544180C205F21AB2504116E18AD52EE254413144D20B1AB2504126B38B962BE25441F46CAA0019B2504144DF25D227E2544168AF688317B250416049A20F28E254419A9999B919B25041666666562FE2544116270AD81AB25041BC44CB0033E254417061AA0C1CB25041A21ADFF336E25441C3F5289C1DB250410AD7A3103CE254415EFCEDE81DB25041B19F8A233DE25441713D0A771FB2504152B81EB542E25441531E0C9A1FB25041F3AD715943E254414BDB7B1F20B25041FB1DCBCB45E254410AD7A3C021B250411F85EB714DE25441C1838D2522B2504192835D3F52E254411F85EB5122B25041CDCCCC5C54E25441782F492722B250416056D72956E254417350B5CF21B25041C69CE5DC59E25441A442F68D21B250411CF8DEA35CE2544148E17A3421B25041B81E856B60E25441846C02C622B2504140A759DD60E254415C8FC25523B2504152B81EF55BE2544183A938AC23B25041F7B5466156E2544152F9FAAC23B25041BB31481C52E25441B0D37A2823B25041E1DF87384DE254410D66FB5621B25041C9E8B1CD44E2544153B1BD261FB25041E1D58AB73CE254418BE9C8701DB25041E1F397E336E25441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>517090 - 1441513
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E0000000AD7A370E9E750413333338355FE544185EB51F8CCE75041000000A064FE544185EB5198D7E750411F85EB0171FE5441D7A370DDDBE75041EC51B85E76FE5441E17A148EE0E75041713D0AB77CFE5441CDCCCCDCE1E75041295C8F027CFE5441295C8F22E1E75041713D0A977AFE5441EC51B8BEDEE750413D0AD70377FE5441B81E85EBDEE750411F85EB2176FE5441B81E85EBECE75041AE47E1AA6EFE544133333353F7E75041CDCCCCDC68FE54419A9999D9FBE750419A9999E96DFE5441AE47E1EAFDE750417B14AEC76CFE54410AD7A370E9E750413333338355FE5441
+</a>
+
+<b>
+0106000000010000000103000000010000003300000057A8726BE9E75041DBC1C69155FE5441D881C40CE0E75041630D73875AFE5441DA50E4A0DEE750412A0827485BFE5441560E2D12DCE75041AE47E1A25CFE5441049370B3D9E750419F343DF45DFE5441358AD7ABD6E750412E2F7DA35FFE5441A7BD751AD4E750419D1E021161FE5441C4DD4694D0E75041817AA40663FE5441E5D02243CDE7504139B4C8DE64FE544185EB5198D7E750411F85EB0171FE544151460B9FD8E750413CB8B03372FE54417A3938ECD9E75041658D48EE73FE54414CAA2E6BDBE75041CEFE40DC75FE54416AE5D4D4DBE75041D9FA6B6676FE54418A9FB447DCE750418852A7FC76FE5441A547C527DEE7504135397B7079FE54416891ED24E1E7504179E926597DFE54414A0C022BE2E75041A69BC4C07CFE5441FCAEE3DAE0E75041D44A0BB87AFE5441F2D24D62DDE75041448B6C5775FE5441E4885AB4E0E750411BC1C67F73FE5441A68D688DECE75041DD5161F06CFE54417B14AED7F6E75041BA490C4A67FE5441E92631E0FCE75041D9CEF70B6EFE544133FD31FAFDE75041FF856ADC6CFE5441ADAFAB83FDE75041E68C0C586CFE5441038AB948FDE750415B34CE106CFE544146304618FDE75041E0E3A3D76BFE5441DA2D2AE6FCE7504128019B9D6BFE5441B784816BFCE75041921CDD1C6BFE54415FF262A0FBE750410FCD67486AFE54417157B16BFAE7504144033D0969FE544181DCAD63F9E75041101FBAF767FE5441F3B4A3C1F8E7504110ADDB4F67FE5441C3D43B13F8E750416E05368466FE54418BCC2614F6E750417945532F64FE544120DDA4CBF4E750417076AAAF62FE5441249B7645F4E750414146F51262FE54413B05529EF3E750419C14C14F61FE5441AC305722F3E75041F9BDF5BE60FE5441B5DA9273F2E7504156C788F55FFE5441E3A7DEE9F1E75041D15920575FFE54413BE64B7CF1E75041481D14D95EFE5441079BB7B1EEE75041E0A10FA35BFE544198F754C4EDE75041D705FC915AFE5441A1B2C8F4ECE7504171393BA359FE544134CD3643ECE750418CA7F6D658FE5441BE0CBA43EBE75041412F10B157FE54413DEA1281EAE7504122DA24D156FE5441B1C155BBE9E75041EDB6ACED55FE544157A8726BE9E75041DBC1C69155FE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>517090 - 3827314
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000E0000000AD7A370E9E750413333338355FE544185EB51F8CCE75041000000A064FE544185EB5198D7E750411F85EB0171FE5441D7A370DDDBE75041EC51B85E76FE5441E17A148EE0E75041713D0AB77CFE5441CDCCCCDCE1E75041295C8F027CFE5441295C8F22E1E75041713D0A977AFE5441EC51B8BEDEE750413D0AD70377FE5441B81E85EBDEE750411F85EB2176FE5441B81E85EBECE75041AE47E1AA6EFE544133333353F7E75041CDCCCCDC68FE54419A9999D9FBE750419A9999E96DFE5441AE47E1EAFDE750417B14AEC76CFE54410AD7A370E9E750413333338355FE5441
+</a>
+
+<b>
+0106000000010000000103000000010000003300000057A8726BE9E75041DBC1C69155FE5441D881C40CE0E75041630D73875AFE5441DA50E4A0DEE750412A0827485BFE5441560E2D12DCE75041AE47E1A25CFE5441049370B3D9E750419F343DF45DFE5441358AD7ABD6E750412E2F7DA35FFE5441A7BD751AD4E750419D1E021161FE5441C4DD4694D0E75041817AA40663FE5441E5D02243CDE7504139B4C8DE64FE544185EB5198D7E750411F85EB0171FE544151460B9FD8E750413CB8B03372FE54417A3938ECD9E75041658D48EE73FE54414CAA2E6BDBE75041CEFE40DC75FE54416AE5D4D4DBE75041D9FA6B6676FE54418A9FB447DCE750418852A7FC76FE5441A547C527DEE7504135397B7079FE54416891ED24E1E7504179E926597DFE54414A0C022BE2E75041A69BC4C07CFE5441FCAEE3DAE0E75041D44A0BB87AFE5441F2D24D62DDE75041448B6C5775FE5441E4885AB4E0E750411BC1C67F73FE5441A68D688DECE75041DD5161F06CFE54417B14AED7F6E75041BA490C4A67FE5441E92631E0FCE75041D9CEF70B6EFE544133FD31FAFDE75041FF856ADC6CFE5441ADAFAB83FDE75041E68C0C586CFE5441038AB948FDE750415B34CE106CFE544146304618FDE75041E0E3A3D76BFE5441DA2D2AE6FCE7504128019B9D6BFE5441B784816BFCE75041921CDD1C6BFE54415FF262A0FBE750410FCD67486AFE54417157B16BFAE7504144033D0969FE544181DCAD63F9E75041101FBAF767FE5441F3B4A3C1F8E7504110ADDB4F67FE5441C3D43B13F8E750416E05368466FE54418BCC2614F6E750417945532F64FE544120DDA4CBF4E750417076AAAF62FE5441249B7645F4E750414146F51262FE54413B05529EF3E750419C14C14F61FE5441AC305722F3E75041F9BDF5BE60FE5441B5DA9273F2E7504156C788F55FFE5441E3A7DEE9F1E75041D15920575FFE54413BE64B7CF1E75041481D14D95EFE5441079BB7B1EEE75041E0A10FA35BFE544198F754C4EDE75041D705FC915AFE5441A1B2C8F4ECE7504171393BA359FE544134CD3643ECE750418CA7F6D658FE5441BE0CBA43EBE75041412F10B157FE54413DEA1281EAE7504122DA24D156FE5441B1C155BBE9E75041EDB6ACED55FE544157A8726BE9E75041DBC1C69155FE5441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>463445 - 243671
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000030000005501000048E17A34D7EF5041713D0AE78BA9544185EB51E8D4EF5041AE47E16A8FA9544185EB5108D3EF5041F6285C9F8EA9544148E17A64D1EF5041AE47E14A8EA95441CDCCCC8CD0EF5041333333638EA954410AD7A360CFEF5041333333338EA9544185EB5188CEEF5041F6285C9F8EA9544148E17AA4CDEF5041713D0A0790A9544185EB5178CCEF5041F6285CEF8FA9544185EB51A8CCEF5041713D0AC78DA95441CDCCCCFCCCEF5041F6285CDF8AA95441CDCCCCFCCCEF5041333333F388A9544185EB51D8CCEF5041333333D387A9544148E17A24CCEF5041B81E855B87A954410AD7A310CBEF5041F6285C0F88A9544148E17A74CAEF50413333338389A95441CDCCCCCCC9EF5041333333C38BA9544148E17AC4C8EF5041713D0AF78DA9544148E17AC4C5EF5041AE47E17A91A9544185EB5118C6EF5041713D0AB791A95441CDCCCC9CC6EF5041AE47E1FA92A954410AD7A380C7EF5041F6285C3F94A954410AD7A310C8EF5041713D0AB794A954410AD7A310C8EF50413333335395A954410AD7A380C7EF5041AE47E12A96A95441CDCCCCDCC5EF5041713D0AF796A954410AD7A340C5EF5041F6285C4F96A95441CDCCCC2CC4EF5041713D0A9796A9544148E17AB4C3EF5041F6285C6F97A9544148E17AC4C2EF5041713D0A1798A9544185EB5128C2EF50413333337399A95441CDCCCC1CC2EF5041713D0AA79BA95441CDCCCC8CC1EF5041F6285CAF9CA954410AD7A310C2EF5041333333F39DA95441CDCCCCBCC1EF5041AE47E18A9FA9544185EB51D8C0EF5041333333C3A0A954410AD7A3C0C0EF504133333303A9A954413D0AD7F3C2EF504114AE4741ADA95441CDCCCC2CC4EF5041F6285C8FADA9544185EB51F8C4EF5041713D0A87ACA9544148E17A64C5EF504133333363A9A9544185EB5158C5EF504133333313A8A9544166666676C6EF50411F85EBF1A6A954410AD7A3C0C6EF5041333333E3A7A95441CDCCCC2CC7EF5041AE47E1CAAAA9544185EB5198C7EF504133333373ABA9544148E17A14C7EF5041713D0A57ACA95441CDCCCCFCC6EF5041F6285CFFACA954410AD7A300C9EF5041333333F3AFA95441CDCCCCBCCAEF5041AE47E16AB0A9544185EB5118CCEF5041333333F3AFA9544185EB5148CCEF5041AE47E1AAAFA954410AD7A360CFEF5041F6285CEFB0A9544148E17AE4D2EF504133333343B4A954410AD7A3B0D3EF5041713D0AD7B6A954410AD7A350D3EF5041AE47E1AAB8A9544148E17AC4D1EF5041AE47E17AB8A9544185EB5178CFEF5041713D0AB7B8A954410AD7A300CFEF5041F6285CEFB9A95441CDCCCC2CD0EF5041AE47E14ABBA9544185EB5188D1EF5041AE47E1AABBA954410AD7A380D3EF5041AE47E18ABDA954410AD7A310D4EF5041AE47E1DABEA95441CDCCCCFCD5EF5041AE47E1EAC0A9544148E17AF4D7EF5041713D0A57C1A95441CDCCCC8CD9EF504133333323C2A954410AD7A360DBEF5041713D0A87C1A9544185EB5138DCEF5041F6285C7FC0A95441CDCCCCACDDEF5041AE47E15AC0A95441CDCCCC7CE0EF5041AE47E19ABFA9544148E17AF4E0EF5041F6285C0FBEA9544185EB51E8E0EF5041F6285CEFBCA954410AD7A3B0DFEF5041713D0AB7BBA9544148E17A04E0EF5041713D0A67BAA9544148E17AC4E0EF5041713D0A77B9A9544185EB5168E2EF5041AE47E10AB9A95441CDCCCC1CE3EF5041F6285C2FB9A95441C3F528ACE3EF5041B81E859BB9A954410AD7A330E4EF5041F6285CAFBAA95441C3F5280CE4EF5041713D0A47BCA954410AD7A3B0E2EF5041B81E857BBEA95441C3F5281CE3EF5041B81E859BBFA9544185EB51C8E2EF5041F6285CDFC0A954410AD7A310E0EF5041F6285CCFC4A9544148E17A04DDEF5041B81E852BC6A9544148E17A54DBEF5041F6285CCFC7A95441000000F0D9EF5041B81E85DBC8A95441713D0A87D8EF5041EC51B81ECAA95441C3F528ACD7EF5041B81E850BCBA9544185EB5118D6EF50410AD7A300CCA95441F6285C5FD2EF504152B81E35D1A95441C3F5280CDBEF5041713D0A27CAA954410AD7A3E0DCEF5041B81E851BCAA954410AD7A300DEEF5041713D0A07C9A9544185EB5168DFEF5041B81E853BC8A9544185EB5158E0EF5041B81E85EBC6A95441C3F5280CE1EF504133333323C5A954410AD7A350E2EF5041713D0AC7C3A9544148E17AF4E3EF5041713D0A67C3A95441C3F5288CE5EF5041713D0A67C3A954415C8FC275E7EF5041295C8FE2C1A95441B81E853BEEEF504152B81E35BEA95441295C8FB2F2EF5041AE47E17ABAA95441713D0A37F5EF50410AD7A360B8A954410AD7A320F7EF504185EB51C8B6A9544185EB5178FAEF50419A999939B3A954410AD7A38000F05041F6285C5FADA95441C3F5283CFFEF5041713D0AF7ABA9544185EB5188FEEF5041713D0A17ADA9544185EB51A8FCEF5041B81E853BADA9544148E17AC4FBEF5041B81E85CBADA95441C3F5285CFAEF504133333333AFA954410AD7A330F9EF5041F6285C0FB2A954410AD7A380F7EF5041713D0AB7B2A954410AD7A330F6EF5041F6285CFFB2A9544148E17A74F7EF5041F6285CFFAFA9544185EB51B8F8EF5041333333A3AEA95441C3F528BCFAEF5041713D0AF7ABA9544148E17A24FCEF5041F6285CDFA8A9544100000060FDEF5041C3F528ECA7A9544152B81E05FEEF504152B81E35A8A954418FC2F51800F0504100000020A9A95441C3F5285C00F05041B81E85FBAAA9544148E17A9401F05041F6285C0FACA954419A99994903F0504185EB5188AAA95441D7A3701D07F0504166666686A6A95441AE47E1EA08F0504114AE47F1A3A95441EC51B87E0CF0504114AE47D19EA954410AD7A3700DF05041713D0AC79CA9544148E17A840BF05041B81E85BB9CA9544148E17AE4F6EF5041B81E852B93A9544185EB5188F5EF5041B81E852B93A95441C3F5285CF4EF5041713D0A2794A9544148E17AF4F2EF5041333333C397A95441C3F5285CF1EF5041B81E851B9AA954410AD7A370EFEF5041B81E85CB9EA954410AD7A320EEEF5041713D0A27A0A954410AD7A3B0EBEF5041713D0A47A1A95441C3F5288CE8EF5041B81E85CBA1A9544185EB51D8E4EF5041713D0A77A1A954410AD7A3E0E4EF5041D7A370ADA0A95441EC51B84EE6EF50419A9999C9A0A95441B81E858BE8EF50411F85EB01A1A95441333333A3EAEF5041000000C0A0A95441D7A3702DECEF504133333333A0A954418FC2F588EDEF50411F85EB519FA9544152B81EB5EEEF50413D0AD7E39DA954410AD7A310F0EF50411F85EBE19AA9544152B81E75F1EF50418FC2F58898A95441AE47E13AF2EF5041EC51B8FE96A954410AD7A320F4EF5041F6285CBF92A95441D7A3706DF5EF5041EC51B83E8EA95441CDCCCC2CF7EF5041F6285CAF84A9544148E17A04F8EF5041333333937CA954410AD7A370F8EF5041B81E853B71A954410AD7A3A0F8EF5041F6285CEF68A9544185EB5108FAEF5041333333D35DA954410AD7A310FBEF5041B81E855B51A9544185EB51E8FBEF5041F6285C8F3EA9544148E17A84FCEF5041713D0A5737A95441CDCCCC5CFDEF5041B81E85EB33A954410AD7A3A0FEEF5041F6285CDF30A9544185EB51E801F05041F6285C5F2CA9544185EB515804F05041F6285CCF28A9544185EB513806F05041B81E85BB24A9544148E17AF407F05041333333F31FA954410AD7A36008F05041713D0AE71CA95441CDCCCC9C08F050413333336319A95441CDCCCC9C08F05041B81E852B15A9544185EB518807F05041B81E855B12A9544185EB517805F05041B81E852B0FA9544185EB51C803F05041B81E857B16A9544148E17A3401F05041F6285CEF1AA954410AD7A330FFEF5041713D0A171DA95441CDCCCC9CFFEF5041713D0A371EA95441CDCCCC4CFEEF50413333337321A954410AD7A3E0FDEF5041F6285C2F23A9544185EB5118FFEF5041B81E852B24A9544185EB519800F05041F6285CAF24A954410AD7A3E000F050413333333325A9544148E17AA400F05041713D0A7726A9544148E17AD4FDEF5041B81E85FB26A954410AD7A390FCEF5041B81E851B28A95441CDCCCCACFBEF5041B81E851B2BA954410AD7A370FBEF5041713D0A072DA9544148E17AA4FAEF5041B81E854B2EA9544148E17A44FAEF5041F6285C4F30A95441CDCCCCECF7EF50413333334333A954410AD7A390F6EF5041713D0AD735A95441CDCCCC9CF3EF5041F6285C4F39A954410AD7A370F2EF5041B81E85EB39A9544185EB5168F1EF5041F6285C2F3BA95441CDCCCCCCF0EF5041713D0A973CA9544185EB51F8EEEF5041713D0AD73EA9544185EB51C8EEEF5041F6285C5F41A95441CDCCCC7CEFEF5041B81E858B42A95441CDCCCC7CEFEF5041F6285CEF44A9544148E17AA4EEEF5041B81E851B46A9544185EB5148EDEF5041B81E850B47A9544185EB51B8ECEF5041F6285CAF48A954410AD7A3A0ECEF5041333333234AA9544148E17A54EDEF5041713D0AD74AA9544148E17A44EEEF5041333333934CA9544148E17A44EEEF5041713D0A474DA95441CDCCCCCCEDEF5041B81E858B4EA9544148E17AE4EDEF5041F6285C9F4FA95441CDCCCCCCEDEF5041333333D351A954410AD7A3F0EDEF5041713D0A5752A95441CDCCCCCCEDEF50413333331354A9544148E17AF4ECEF50413333333355A954410AD7A350EBEF50413333330355A9544148E17AB4EAEF5041B81E85CB53A95441CDCCCC6CEAEF5041333333D351A95441CDCCCC9CEAEF5041713D0A7750A9544185EB5158E9EF5041713D0AE74FA9544185EB5108E8EF5041333333F34FA9544185EB51A8E4EF5041F6285C1F51A95441CDCCCCDCE3EF5041333333D351A9544185EB5108E2EF5041713D0A8752A9544148E17A34E0EF50413333331354A9544185EB5148E1EF5041B81E854B55A954410AD7A300E4EF50413333334354A9544185EB5138E5EF5041B81E852B54A95441CDCCCCECE5EF5041713D0A8755A9544185EB5158E3EF50413333331357A9544148E17A14E2EF5041B81E855B57A9544185EB51B8E0EF5041B81E851B58A954410AD7A330DEEF5041713D0A9757A95441CDCCCCBCD9EF5041333333D357A9544148E17A74D6EF5041F6285CCF58A9544185EB5108D3EF5041F6285C8F56A954410AD7A3C0D2EF5041713D0A9757A9544148E17A74D3EF5041F6285C4F5AA9544148E17A94D4EF5041333333A35AA954410AD7A380D6EF5041333333235CA954410AD7A370D7EF5041B81E856B5CA9544148E17AC4D7EF5041B81E852B5DA9544148E17A44D9EF5041B81E85BB5DA9544148E17A34DAEF50413333337360A9544148E17A94DAEF5041B81E851B61A9544185EB51B8DAEF5041713D0AD762A9544185EB5138DCEF5041B81E853B65A95441CDCCCCACDDEF5041713D0A7765A9544148E17A64DDEF5041B81E854B64A954410AD7A390DEEF5041713D0A0763A95441CDCCCCECDFEF5041B81E85CB62A9544185EB5168E2EF5041B81E85CB62A9544148E17A94E3EF50413333331363A9544148E17A64E6EF50413333332362A954410AD7A3C0E7EF50413333338362A9544185EB5198E8EF5041F6285CDF63A9544148E17A14E8EF50413333338365A954410AD7A330E7EF5041F6285C7F66A95441CDCCCCDCE6EF5041713D0AE767A95441CDCCCC5CE8EF5041B81E859B68A95441CDCCCCBCE8EF5041F6285C5F6BA9544185EB51F8E8EF5041713D0AB770A95441CDCCCC8CE8EF5041B81E853B74A95441CDCCCC3CE7EF5041B81E856B74A954410AD7A340E6EF5041713D0A8773A9544185EB51F8E5EF5041713D0A0772A9544185EB51B8E6EF5041333333C370A954410AD7A360E7EF5041713D0AD76BA9544148E17AC4E6EF5041B81E854B6AA9544148E17A14E5EF5041333333D369A9544148E17AF4E3EF5041713D0A0769A95441CDCCCCECE2EF5041F6285CBF68A9544148E17A44E2EF5041F6285C6F67A9544148E17A54E1EF5041713D0A1768A954410AD7A340E0EF5041713D0A9769A9544185EB5138DFEF5041F6285C6F6AA954410AD7A3F0DEEF5041713D0A376CA9544148E17AD4DFEF5041713D0A976FA9544148E17A04E0EF5041F6285CFF70A9544148E17A74DFEF5041F6285C1F72A9544148E17AA4DFEF50413333336373A954410AD7A320DFEF5041713D0A5776A95441CDCCCC3CDEEF5041F6285C9F76A95441CDCCCC7CDDEF5041713D0A8776A9544185EB51C8DCEF5041B81E856B77A954410AD7A3C0DBEF5041F6285CBF77A95441CDCCCC7CDAEF5041333333D378A9544185EB5138D9EF5041713D0A8779A95441CDCCCCCCD8EF5041B81E858B7BA954410AD7A370D7EF5041F6285C3F7CA95441CDCCCC8CD6EF5041F6285CEF7DA95441CDCCCC6CD5EF5041B81E85CB7DA9544148E17AD4D3EF5041F6285CEF7DA954410AD7A360D2EF5041713D0AA77DA9544185EB5188D1EF5041333333537DA9544185EB5198D0EF5041B81E857B7CA9544148E17A64CEEF5041F6285CAF7BA9544185EB51F8CDEF5041B81E85AB7CA95441CDCCCC7CCEEF5041F6285CBF7DA954410AD7A3A0CEEF5041333333937FA9544148E17AD4CDEF5041B81E85FB80A954410AD7A350CDEF5041B81E85DB82A9544185EB5148CCEF5041713D0A9784A954410AD7A390CCEF5041713D0A7786A9544148E17A14CDEF5041F6285C8F86A9544185EB5178CFEF5041B81E854B85A95441CDCCCC5CD0EF5041B81E858B84A9544185EB5188D1EF5041333333F385A9544185EB51C8D0EF5041B81E85FB86A95441CDCCCC9CCFEF50413333337387A95441CDCCCC6CCFEF5041F6285C9F88A9544185EB51A8CFEF5041F6285CAF8AA9544148E17A24D2EF5041333333938BA9544185EB5138D3EF5041F6285C6F8BA954410AD7A310D4EF5041B81E850B8CA9544185EB5188D4EF5041B81E85AB8BA9544148E17A24D5EF5041B81E858B8AA9544148E17AF4D4EF5041713D0A1789A9544185EB51C8D6EF50413333334387A95441CDCCCCACD7EF50413333334387A95441CDCCCCFCD8EF5041B81E85FB86A95441CDCCCC1CDAEF5041713D0AE785A9544148E17A24DBEF5041B81E851B85A9544185EB5178DBEF50413333334384A9544185EB5118DBEF5041713D0A1783A95441CDCCCC9CDBEF5041333333A381A9544148E17AA4DCEF5041713D0A7780A95441CDCCCCFCDBEF5041713D0A077EA954410AD7A320DCEF5041F6285CFF7CA9544148E17A94DDEF5041B81E85AB7CA9544185EB51C8DFEF50413333335380A954410AD7A340E0EF5041B81E851B82A95441CDCCCC1CE0EF5041713D0A0784A954410AD7A380DFEF50413333333385A9544185EB5118DEEF5041333333D384A954410AD7A380DCEF5041B81E857B85A95441CDCCCC6CDBEF5041B81E859B86A954410AD7A3A0DAEF5041713D0A4789A9544185EB51E8DAEF5041B81E856B89A9544148E17A74DCEF5041333333F388A9544185EB5108DFEF5041333333B389A954410AD7A3C0DEEF5041333333D38AA9544148E17AA4DCEF5041F6285CCF8BA9544185EB5118DBEF5041B81E853B8CA95441CDCCCC3CD8EF5041713D0A878BA9544148E17A34D7EF5041713D0AE78BA9544116000000F6285C8FF8EF5041666666869DA9544185EB51C8F8EF50410AD7A3B09DA95441A4703D3AFAEF5041D7A370CD9DA9544185EB5108FBEF5041295C8FA29CA95441D7A3705DFCEF504148E17A149DA954417B14AE47FBEF5041666666869EA95441B81E85EBFAEF50410AD7A330A0A9544148E17AA4F9EF50411F85EB61A1A9544185EB5188FAEF50418FC2F528A3A95441F6285C8FFBEF50413D0AD753A4A95441D7A3701DFBEF5041A4703DDAA5A9544185EB51C8F9EF504114AE4721A6A95441C3F5282CF6EF50418FC2F5A8A4A954418FC2F5C8F4EF504166666676A7A954413D0AD773F4EF504133333393A7A954417B14AE57F3EF5041C3F528CCA6A954418FC2F588F4EF50411F85EB21A5A9544100000050F5EF504100000070A3A95441E17A145EF6EF50417B14AEF7A1A9544114AE47C1F6EF5041CDCCCC4CA0A95441333333B3F7EF50419A9999699EA95441F6285C8FF8EF5041666666869DA954411C000000CDCCCC5CD0EF5041333333A3AEA9544148E17AF4D1EF5041F6285C7FAEA95441B81E850BD2EF50415C8FC285ADA9544185EB51F8D0EF5041F6285CCFACA9544148E17A14D0EF5041AE47E18AABA95441CDCCCC5CD0EF5041713D0AE7A9A9544148E17A04D1EF5041F6285CAFA8A9544148E17AA4D0EF5041F6285C8FA7A95441CDCCCCDCD1EF5041713D0AE7A6A9544148E17AE4D2EF5041333333B3A7A95441CDCCCCDCD4EF5041713D0AA7A7A954410AD7A3B0D9EF5041AE47E1AAA9A95441CDCCCC4CDAEF5041713D0AA7AAA9544148E17A44D9EF504133333343ABA954410AD7A3A0D7EF5041F6285C4FABA9544185EB5198D6EF5041713D0A27ACA9544148E17AA4D6EF5041F6285C5FADA9544148E17A14D3EF5041713D0AA7ADA95441CDCCCC1CD4EF5041AE47E1EAAEA9544148E17A24D5EF5041713D0A87AFA9544185EB5178D5EF5041AE47E19AB0A9544185EB5108D6EF5041F6285C7FB1A9544148E17AB4D5EF5041AE47E17AB2A9544185EB5168D3EF504133333303B2A95441CDCCCC3CD2EF5041713D0A27B2A9544148E17AE4CFEF5041333333B3B0A9544148E17AE4CFEF5041AE47E17AAFA95441CDCCCC5CD0EF5041333333A3AEA95441
+</a>
+
+<b>
+0106000000010000000103000000010000007502000048E17AA4DCEF5041713D0A7780A954410FF1FB49DCEF5041986545267FA95441CDCCCCFCDBEF5041713D0A077EA95441C466B1FEDBEF504147F51CF97DA9544122DE3CEBDBEF5041C2D24AAB7DA954419F997B14DCEF50418A5ACD587DA954410AD7A320DCEF5041F6285CFF7CA954419F6B5745DCEF504110B515F77CA9544189E8FA49DCEF504119BBCEED7CA9544191F917D8DCEF5041B2B0108F7CA95441B4073566DDEF5041B2B0108F7CA954412DEC7C81DDEF5041985CCDAF7CA9544148E17A94DDEF5041B81E85AB7CA954416F8166CFDDEF504114104C0D7DA95441923EEB3FDFEF5041D2F484C77EA9544170833BBEDFEF5041E2C0754280A9544185EB51C8DFEF50413333335380A95441C511A9D6DFEF5041BB3A968980A954414367848BE0EF5041A95FF17A82A95441A260255CE0EF504175858AC683A95441BF1C64AADFEF50415DF0F2E284A954410AD7A380DFEF50413333333385A9544188206F79DFEF5041A3B6473185A9544133454A6FDFEF504112AF824185A95441A2A9E7C0DEEF5041E1B51D0085A9544185EB5118DEEF5041333333D384A95441C31C00CEDCEF50414B79945B85A95441E6F2B8A8DCEF5041B2B5E17085A9544181D7DDBBDBEF5041C2D71B8D86A954411ACD1F5DDBEF504186EC974A87A95441B3C261FEDAEF50415C12319688A95441B47DC0B3DAEF5041FA3FC45089A95441FAE69EDBDAEF50418D950E6589A95441B3C261FEDAEF50412B27AD5389A95441578ED336DBEF50412B27AD5389A9544169E4E5F5DBEF5041431AA51989A9544189E8FA49DCEF5041231690C588A95441EE03D636DDEF504164234E2489A954412B342DE1DEEF5041CB2D0C8389A95441923EEB3FDFEF50413238CAE189A954414DB617CDDEEF504106C92AA18AA954410AD7A3C0DEEF5041333333D38AA9544148E17AA4DCEF5041F6285CCF8BA9544185EB5118DBEF5041B81E853B8CA95441F1116DD7DAEF50416069822B8CA95441E4ADE540DAEF5041347D9D498CA95441181E49BBD9EF5041561268E58BA95441CDCCCC3CD8EF5041713D0A878BA9544148E17A34D7EF5041713D0AE78BA95441A7931B21D6EF504132AF568C8DA95441001022E3D4EF50417EE04B9E8FA95441D2010555D4EF504117D68D3F8FA9544165F35059D3EF504124D0B3C18EA9544112279D44D3EF5041DAB2ECB88EA95441132F962AD3EF50419399E3AD8EA954414D47178ED2EF504155DFC3868EA9544193E64BA0D1EF5041FD8EEA568EA95441808D3972D0EF50416EBE11828EA95441C1C34B54D0EF50412D072A5A8EA954410AD7A360CFEF5041333333338EA954417733D5D6CEEF5041FD841A788EA954414D5DE2C7CEEF50416EBE11828EA95441DE4107DBCDEF50411FE7AACD8FA954413D9AD2C8CDEF50411FE7AACD8FA9544148E17AA4CDEF5041713D0A0790A9544185EB5178CCEF5041F6285CEF8FA954412D196E8FCCEF5041F8AA70E58EA954412D196E8FCCEF5041ECB653238EA954412D196E8FCCEF50413C8EBAD78CA95441A822CDBECCEF5041425A04FE8AA954416F262CEECCEF50415C12319688A95441114BEAEFCCEF5041685B7A8D88A9544185EB51D8CCEF5041333333D387A9544148E17A24CCEF5041B81E855B87A95441AAE29325CBEF5041448FB50188A9544142CA2F0ECBEF5041BAA3331588A9544189273EE8CAEF50413A3D8D6F88A95441795281C4CAEF50416AF5A5C488A95441CDDAF956CAEF5041DB4F469F8AA95441F7B4600BC9EF5041ABA995C48DA95441C3F5654DC8EF5041946790828EA954412AE4A034C7EF5041C15E88CB8FA95441FAFDB714C6EF504195F1DD1C91A954410EB134FAC5EF5041626D6EA191A9544185EB5118C6EF5041713D0AB791A954415B131E8FC6EF504197106FD992A954411B6D8DA3C6EF5041EF40FAF292A95441648B6890C7EF50419F69933E94A95441787D4A9CC7EF5041054E575694A954410AD7A310C8EF5041713D0AB794A954410AD7A310C8EF504188030A3F95A954418799851EC8EF5041CA88CD5A95A954413A05B978C7EF504139A4A84796A9544104E67E5CC6EF504107B9240597A954416F9D671AC6EF50414E3315D996A95441CDCCCCDCC5EF5041713D0AF796A954410AD7A340C5EF5041F6285C4F96A95441AA02CC1FC5EF50417606E55796A95441A4A70A24C4EF504141B5C5D596A9544126A2F4F4C3EF50412BEC70FB96A9544148E17AB4C3EF5041F6285C6F97A95441E82AD1E5C2EF5041249EBFFF97A95441CAEFDEACC2EF5041DE42AD4B98A9544185EB5128C2EF50413333337399A954418629C427C2EF5041EE744D8E99A95441EB6D544AC2EF50415A2DF0E79AA95441DEBF761EC2EF504124619A559BA95441CDCCCC1CC2EF5041713D0AA79BA95441200AE2E0C1EF5041116305159CA95441BE5F37BCC1EF5041F46705F19CA95441C8C613D5C1EF50410038E5609DA954410AD7A310C2EF5041333333F39DA95441E374A303C2EF50412DC86B329EA95441256AF51AC2EF504131985C9B9EA9544131F5CFD4C1EF504187231E169FA95441CDCCCCBCC1EF5041AE47E18A9FA95441D7C9084AC1EF50413231C227A0A95441F02EB7D5C0EF504189E67CABA1A954418477F9D4C0EF5041988F95EDA1A954411548BBFEC0EF50416D1EA43BA3A9544157AACFCEC0EF504117654813A4A95441694B00CDC0EF5041CE0FB8B4A4A954413C4791C7C0EF5041C9AD5799A6A9544159445CCFC0EF50411F8C10EFA6A9544159445CCFC0EF5041FDC2C6C8A8A954411D59D88CC1EF504174EFBE43AAA954412D7B12A9C2EF5041D52D337CACA95441C293ED95C3EF504144490E69ADA95441DD154B4AC4EF504144490E69ADA954418AE45F5AC4EF5041739D2B54ADA9544126AFC882C4EF5041163BF1DAACA9544108278CEFC4EF5041B6E96E92ACA9544185EB51F8C4EF5041713D0A87ACA9544148E17A64C5EF504133333363A9A9544185EB5158C5EF504133333313A8A95441E6A0BAB7C5EF5041D248B9B2A7A9544164DF1F2DC6EF50411F8C10EFA6A9544140C16253C6EF5041FB6D5315A7A9544166666676C6EF50411F85EBF1A6A95441B74FC9B1C6EF504167FBECB2A7A95441D3FAFA19C7EF5041FDC2C6C8A8A95441D3FAFA19C7EF5041D4E85F14AAA954417619224EC7EF504105F50FFFAAA9544185EB5198C7EF504133333373ABA95441F3875D75C7EF5041FA679BAFABA954413A05B978C7EF5041E11BB7BEABA95441D3FAFA19C7EF5041163BF1DAACA95441472E7F66C7EF5041DFBC3B9AADA9544150BA75CAC8EF50412FDFCFA3AFA954417D574A3FCAEF5041879B9F2FB0A954418C79845BCBEF5041879B9F2FB0A95441BFD7532BCCEF504159E08FD6AFA9544185EB5148CCEF5041AE47E1AAAFA9544164529D6DCCEF5041E83D27BAAFA95441589F1DA7CCEF50417F8A82A1AFA9544195CF7451CEEF5041879B9F2FB0A9544128F96CCCCFEF50412FB31BEDB0A9544136E9B6B5D1EF504129965B12B3A95441AD8AAC24D2EF50413A537034B2A954410C3BAFE3CFEF5041CA262DBBB0A954410C3BAFE3CFEF5041D0D06479AFA95441E854D1FACFEF5041B7A6D652AFA95441CDCCCC5CD0EF5041333333A3AEA95441DFE99C64D0EF5041A85D83A2AEA95441F501D668D0EF5041068B799BAEA954419882EEF4D1EF50411180777AAEA95441781825FED1EF50416A28A816AEA95441A9D96203D2EF50413D458EBDADA9544154842373D1EF504108846738ADA95441A04F301AD1EF504185D0CEE5ACA9544185EB51F8D0EF5041F6285CCFACA954410F0328E6D0EF5041A2F57DB5ACA954416DA3CBD7D0EF5041B32E28A8ACA95441E43D1848D0EF5041872F63D4ABA9544148E17A14D0EF5041AE47E18AABA95441D1C8D414D0EF5041605BD788ABA9544110ECF804D0EF504125677871ABA95441F1508C47D0EF50418F3D35F8A9A95441507D7369D0EF5041B23B86CFA9A95441640497BAD0EF5041C48FB438A9A95441E58C57F5D0EF5041368A7FCBA8A95441705415F9D0EF50410C7685C1A8A95441A1AF01BCD0EF50410294F0D5A7A9544148E17AA4D0EF5041F6285C8FA7A95441891B9CEED0EF5041C3AD6867A7A95441F308E8CBD1EF5041921C34CEA6A95441C861B00DD3EF5041A942EE95A7A954413D0AB8DFD4EF504115D106A1A7A95441CE9CA0FED7EF504152079ECCA8A95441AA57FC82D9EF5041179C3F89A9A954415F94E196D9EF50416AD520A0A9A954410AD7A3B0D9EF5041AE47E1AAA9A95441FE7D3ED9D9EF5041501672ECA9A95441999AE760DAEF5041EF927488AAA95441819DE544DAEF50414C4B479AAAA95441CDCCCC4CDAEF5041713D0AA7AAA9544148E17A44D9EF504133333343ABA95441EB35C6B1D7EF5041A11DDD4EABA9544151D1E163D7EF5041E3F0EF80ABA95441D0958E9BD6EF5041B4106624ACA95441D0958E9BD6EF504102DA2D7AACA9544148E17AA4D6EF5041F6285C5FADA954412EED972FD5EF504118E6AA7CADA95441CB12FA2ED3EF50413D458EBDADA954416D6239BFD3EF5041D92BE658AEA95441C2B7784FD4EF5041129E56FFAEA95441874C1A0CD5EF5041CC1F1B58AFA9544106AA561AD5EF5041DFAC0881AFA9544148E17A24D5EF5041713D0A87AFA95441811F415CD5EF5041E6BF8A3EB0A954414CCEDE64D5EF504199165057B0A9544112638021D6EF504127DEFF8DB1A954419AC18AB2D5EF5041AD431C82B2A954417888F386D4EF50416301BA55B2A954415B09D33DD3EF50415DF24808B2A954410AB4BDCDD2EF50414956B215B2A954410A60A472D2EF50415FEC9820B2A95441FB6A7B0ED2EF5041C81A206BB3A95441E0DA8560D2EF5041662648C6B3A9544148E17AE4D2EF504133333343B4A954410A427FF7D2EF50416D2E8680B4A95441725C1B21D3EF5041632846FFB4A95441F6D320B4D3EF5041C8EC6AB6B6A954416738DCAED3EF504149B049D1B6A954410AD7A3B0D3EF5041713D0AD7B6A95441EACC656FD3EF50419BD8FC14B8A9544139607A50D3EF50411596B2B2B8A954416EB9A513D3EF50419F6C7DA3B8A9544172FE300AD2EF504159925383B8A954414907E771D1EF504159925383B8A95441F4F0FB87D0EF504103B8409BB8A9544128F96CCCCFEF50411596B2B2B8A9544159E4F00ECFEF504111B94BFEB9A954413FFAAD13CFEF5041E9596705BAA954418864142CD0EF5041C5C60B4ABBA954419F256547D1EF504188E54379BBA95441E171E183D1EF50412B56A7A9BBA9544185EB5188D1EF5041AE47E1AABBA954419FB7A397D1EF50417FF475B9BBA954410E414034D2EF504126FDBF36BCA954413EF178BDD2EF5041BBC21FD1BCA954410AD7A380D3EF5041AE47E18ABDA954416D619E9CD3EF5041EADF29CCBDA954417A6D38AFD3EF5041632D17E1BDA95441ADF8E74BD4EF50412646761ABFA95441D0E82BDCD4EF5041FAA93BB5BFA95441B89D8F59D5EF5041C46B8B19C0A954418E7F8037D6EF504117527CF7C0A9544165638E59D7EF5041AE90C535C1A9544193E562C1D7EF5041AE90C535C1A95441300F5B3CD9EF50417CA541F3C1A95441F323D7F9D9EF50417CA541F3C1A95441FEA9A683DAEF504132C3CDD0C1A954410AD7A360DBEF5041713D0A87C1A95441B6BDDBA5DBEF5041A4BD6A32C1A95441D25A8DD3DBEF50416D8307D7C0A95441E9B2B704DCEF5041615772BEC0A9544185EB5138DCEF5041F6285C7FC0A95441CDCCCCACDDEF5041AE47E15AC0A954410361CDC9DEEF50412820E10EC0A9544183C8F986DFEF50413764CDBABFA95441C310A28DE0EF5041D2F63F63BFA9544148E17AF4E0EF5041F6285C0FBEA9544185EB51E8E0EF5041F6285CEFBCA954410AD7A3B0DFEF5041713D0AB7BBA954414ACC58B6DFEF504171412BA0BBA954414ACC58B6DFEF5041FBDD851ABBA95441A373EAF8DFEF5041488D6295BAA9544148E17A04E0EF5041713D0A67BAA9544172CA2040E0EF5041FCD97A1CBAA95441F3E3D473E0EF50414AB5ECCEB9A9544107528388E0EF504182B0FFC1B9A9544148E17AC4E0EF5041713D0A77B9A9544184A47F2AE1EF504118FDC15CB9A954415F10CDEEE1EF5041DB9911E2B8A95441532249ACE2EF50417CA07011B9A9544177DCAE9DE4EF5041042FA52EB5A954413EE5DEAEEDEF504105CF1275A0A95441D2A66A76EBEF504115F14C91A1A95441E50AB2EDE9EF504115F14C91A1A95441C3F5288CE8EF5041B81E85CBA1A95441DA067212E8EF5041DBF4ABC0A1A954415D248205E7EF5041DBF4ABC0A1A9544109864F2DE6EF5041F3A06E95A1A9544185EB51D8E4EF5041713D0A77A1A95441C0F430D9E4EF50419AE7ED61A1A954417EA8F8C3E2EF50419AE7ED61A1A95441DC5CC62CE0EF5041DBF4ABC0A1A95441BC1852F4DDEF5041840C287EA2A954411ACD1F5DDBEF5041752FC1C9A3A95441B27D8E96D8EF5041B35F1874A5A95441AA6C7108D8EF5041AB4EFBE5A4A95441C4249EA0D5EF504126585A15A5A954412AEA8897D3EF5041E44A9CB6A4A95441EFA8145FD1EF5041E44A9CB6A4A95441B3BD901CD2EF50410E25036BA3A954411AC84E7BD2EF5041840C287EA2A95441F7B931EDD1EF50419AE7ED61A1A954415EC4EF4BD2EF5041CBD271A4A0A954415BD50CDAD2EF504100ADD8589FA95441E8DCCA38D3EF5041CA8D9E3C9EA95441CAF0E7C6D3EF5041FC78227F9DA95441D2010555D4EF5041F46705F19CA95441C7138112D5EF50418D5D47929CA95441671AE041D5EF5041E734AE469BA9544108213F71D5EF5041521CD3599AA954416F2BFDCFD5EF504142FA983D99A954411CB96A46D6EF504177D4FFF197A954411CB96A46D6EF504100A8077796A9544183C328A5D6EF5041CA88CD5A95A9544124CA87D4D6EF50415E5CD5DF93A9544124CA87D4D6EF5041283D9BC392A9544152D8A462D7EF50417F251F0692A9544193E562C1D7EF50415C17027891A9544193E562C1D7EF5041EDFB268B90A9544193E562C1D7EF504117D68D3F8FA95441FAEF2020D8EF504167ADF4F38DA954418C19199BD9EF5041439FD7658DA95441A44C7045DBEF5041ABA995C48DA95441D39F603BDEEF5041ECB653238EA954417CB7DCF8DEEF5041ECB653238EA954411D030F90E1EF50416EBE11828EA95441015CFF85E4EF504117D68D3F8FA954410590B55FE6EF5041DED9EC6E8FA9544115B2EF7BE7EF5041DED9EC6E8FA954419FCACA68E8EF504117D68D3F8FA954414FF363B4E9EF50410FC570B18EA95441C61F5C2FEBEF504117D68D3F8FA95441B842F57AECEF504150D22E108FA95441CF754C25EEEF5041B0CBCFE08EA95441629F44A0EFEF504150D22E108FA954410AB7C05DF0EF5041E5EA09FD8FA9544179D29B4AF1EF504187363C9492A954416BF53496F2EF5041283D9BC392A95441AC02F3F4F2EF50417D9B78368DA95441CCDFF131F6EF50415C6DCB7471A95441193283F8F8EF5041FF539A7056A954415473F730FBEF50417E2C4CDE3AA954416495314DFCEF5041ABF0C42230A9544165DA04B5FEEF50414EE135E226A95441F6BE29C8FDEF504114E5941127A95441C170C5A1FDEF5041E5E09D2827A95441EEEC74C2FCEF5041737137EF27A95441228873EEFBEF5041254CA2952AA954413A03EF8DFBEF50418167B4172CA954410AD7A370FBEF5041713D0A072DA95441C6FAF63DFBEF5041468C94572DA95441ED6839D2FAEF504180D18A062FA9544172E2EA51FAEF504170DE270730A9544148E17A44FAEF5041F6285C4F30A95441A8D13007FAEF504101009C9C30A954417E4D5EE5F9EF5041530841E030A95441A5B54E85F9EF5041599F504031A954417BD4D646F8EF504174D0B6D132A954410A1049DCF7EF5041BC57D2A633A95441D4F00EC0F6EF50419A8E888035A95441E925D9BAF6EF504133CC0B8735A954410AD7A390F6EF5041713D0AD735A954419B3DB810F5EF50411684409A37A954412A94BF9AF3EF50411200546339A95441F540E75EF2EF5041A92940013AA95441200EE9E1F1EF50414BC4639A3AA95441B71AF575F1EF50413FD3A61E3BA9544188488D03F1EF50411B5644593CA954416A14AED8F0EF5041967F907B3CA95441CDCCCCCCF0EF5041713D0A973CA9544117806677EFEF5041732ACB3A3EA95441E30D78FAEEEF50415EA8D51F3FA95441798AFAE7EEEF50413CBFC1B33FA95441C8A22ED4EEEF5041494024BF40A9544143632F21EFEF5041874427F341A95441CDCCCC7CEFEF5041B81E858B42A95441CDCCCC7CEFEF5041BE350AA042A95441B222F4B7EFEF5041D619A10243A95441B222F4B7EFEF5041A23F3A4E44A95441CDCCCC7CEFEF50411608ADBA44A95441CDCCCC7CEFEF5041F6285CEF44A954416A489C06EFEF5041C1505B9345A954418703BA9BEEEF5041467A4F5746A95441DC23CF7FEDEF50412DEB44E546A9544185EB5148EDEF5041B81E850B47A95441B7871213EDEF5041C731C4A647A954411F4DB3D9ECEF5041F8E7BB0A4AA954412F6FEDF5EDEF50412B1813B54BA95441527D0A84EEEF50413B3A4DD14CA9544183524937EEEF50415993CF6A4DA95441CDCCCCCCEDEF5041B81E858B4EA9544148E17AE4EDEF5041F6285C9F4FA9544191F0EBE3EDEF50412EAFA7AC4FA954412F6FEDF5EDEF504112A5B98450A954412F6FEDF5EDEF5041E6DB6F5E52A954412F6FEDF5EDEF50415D0868D953A95441B359C2CDEDEF50411121500754A95441CDCCCCCCEDEF50413333331354A9544148E17AF4ECEF50413333333355A95441092476CBECEF50417DA8822E55A95441584954AAECEF5041D434605455A95441E92D79BDEBEF5041D434605455A9544199BB7393EBEF5041F1ACD60A55A954410AD7A350EBEF50413333330355A9544148E17AB4EAEF5041B81E85CB53A95441CDCCCC6CEAEF5041333333D351A95441CDCCCC9CEAEF5041713D0A7750A95441D5BA3FC1E9EF50415A299B1550A95441492E04ECE8EF5041D0A5F5EA4FA9544185EB5108E8EF5041333333F34FA954418CFF1F89E7EF5041EC73631F50A954410590B55FE6EF5041B3AB18B450A954416970FF49E4EF50410B25B57251A95441CDCCCCDCE3EF5041333333D351A9544185EB5108E2EF5041713D0A8752A95441FD632E4EE0EF504185C46FFD53A9544152DD7544E0EF5041230CC70854A95441B6F85031E1EF5041332E012555A95441DDA2E4F8E1EF50414C5E7E0855A95441B3B07C6FE2EF504166D379DB54A95441BDD6C9E9E2EF5041D8020DAD54A954419C402499E3EF5041C412263854A954417077DA72E5EF5041230CC70854A954413E8C5630E6EF5041D434605455A95441BCDAE1EBE5EF504144D8458555A95441CDCCCCECE5EF5041713D0A8755A95441A91EA3D7E5EF504158CCBB9355A954416866BDE4E4EF504138503B4156A95441E1310C69E4EF50410AC49D6F56A9544185EB5158E3EF50413333331357A954417C2FD29EE2EF50411B2BA03C57A95441F0F4F101E1EF50413C84F11A58A9544103935DB9E0EF50413C84F11A58A9544185EB51B8E0EF5041B81E851B58A95441994D80B5E0EF50413C84F11A58A9544152DD7544E0EF50413C84F11A58A95441038F56F1DEEF5041419D74BE57A954410AD7A330DEEF5041713D0A9757A95441E17EF7DDD9EF5041141173D157A95441E64C1EAFD9EF504176374ED757A95441A17E7FA5D8EF50418909032758A9544107212E5DD8EF5041FA74B63C58A9544183C328A5D6EF5041AB9FCC0759A95441BC581DECD5EF50415823B67558A9544156E046C7D4EF50413E1E32B557A954412F43D50CD3EF5041D1B2539256A95441D155BCF1D2EF50410765B7FE56A95441D155BCF1D2EF50413C84F11A58A954414B2CA77FD3EF5041B5D29C525AA95441CB0BAC8AD3EF5041B502D2555AA9544119DB8D91D3EF50419AE4D2575AA95441A87B553DD4EF504118CCC4825AA9544165EB8656D4EF504174302A915AA9544148E17A94D4EF5041333333A35AA954418992A6E7D4EF50412EB417E45AA954417EA1EE88D5EF5041E6E040405BA95441FCB39ED0D5EF504139F7DC995BA954410AD7A380D6EF5041333333235CA954410AD7A370D7EF5041B81E856B5CA95441E46271B6D7EF5041BEBE5F0B5DA9544193E562C1D7EF5041BA17F7195DA95441C9049DDDD8EF50412122B5785DA954419B2FD7FFD8EF504117BCC7A15DA9544148E17A44D9EF5041B81E85BB5DA95441AE03D165D9EF504117BB261C5EA954412D2078CAD9EF50413144EF945EA9544135319558DAEF5041CB7E049E60A954413D40E45EDAEF504154CA8FBD60A9544148E17A94DAEF5041B81E851B61A95441F42D12ACDAEF50418C73753F62A954412DB8D9D2DAEF5041FC285B0163A954415C5CC672DBEF5041AA7B6F0064A95441CAA3F21CDCEF50411182DC0F65A95441A06F0991DCEF5041EB074C3E65A954414367199FDDEF5041EB074C3E65A9544148E17A64DDEF5041B81E854B64A954417AD53D02DEEF504127E0F9A063A954410C9C010CDEEF5041B9D7F49363A95441AACE2011DEEF5041BD1FE29063A954410AD7A390DEEF5041713D0A0763A954410CC5375FDFEF5041CF6BB9E362A95441B1D61615E0EF50416FB919A762A954411D030F90E1EF50416FB919A762A9544126F92746E2EF5041B81E85CB62A9544185EB5168E2EF5041B81E85CB62A954413C496518E3EF5041F36291F562A95441FC39C569E3EF5041B1C6D70563A95441C75F5EB5E4EF50416FB919A762A954410590B55FE6EF504142ABFC1862A95441D0B54EABE7EF504108AF5B4862A95441E0D788C7E8EF5041B9D7F49363A954419FCACA68E8EF504171FEEC0E65A9544174AB904CE7EF5041883144B966A95441918419DFE6EF504177982CDD67A95441CDCCCCDCE6EF5041713D0AE767A95441CDCCCC5CE8EF5041B81E859B68A95441771D3884E8EF5041FFBF2BBE69A95441E0D788C7E8EF5041A1A96ECB6AA95441E0D788C7E8EF5041A90E06566CA9544185EB51F8E8EF5041713D0AB770A95441D5233BF5E8EF5041D605E9D070A95441A7DBE7F6E8EF5041545CAEE670A95441E0D788C7E8EF504106CA1A9A74A95441D0B54EABE7EF504165C3BB6A74A95441A01BC798E7EF50419A5C615E74A95441CDCCCC3CE7EF5041B81E856B74A954410AD7A340E6EF5041713D0A8773A9544158FBFB0FE6EF50419EF0B08472A954419E85F700E6EF5041CB88A66172A95441ECEB1407E6EF50412FBC6B5572A9544185EB51F8E5EF5041713D0A0772A954415D2A259DE6EF50410BED08F170A954416C9A73BEE6EF5041AC44322970A95441671CECE9E6EF504154C1D74F6FA954410AD7A360E7EF5041713D0AD76BA9544148E17AC4E6EF5041B81E854B6AA95441699E68E7E5EF5041F991F20D6AA95441367B39A2E5EF5041F991F20D6AA954417835566DE5EF504199C0F2EB69A9544148E17A14E5EF5041333333D369A9544148E17AF4E3EF5041713D0A0769A95441CDCCCCECE2EF5041F6285CBF68A9544184FECA49E2EF50418437F77967A95441F0F4F101E1EF50418265FA9268A95441B1D61615E0EF5041F991F20D6AA954414ACC58B6DFEF5041F991F20D6AA9544142BB3B28DFEF5041A9BA8B596BA9544142BB3B28DFEF50419ADD24A56CA9544183C8F986DFEF50410AF9FF916DA954418336D2B1DFEF5041E2E39B136FA9544148E17AD4DFEF5041713D0A976FA954413787B1F4DFEF50413814DB8870A95441565367FDDFEF5041B3554FB770A954411C7861FCDFEF50418EC18FC270A9544148E17A04E0EF5041F6285CFF70A954419A55D3F3DFEF50415240AB2071A954419A4F08CEDFEF50414D9064C072A954419A4F08CEDFEF50415DB29EDC73A95441923EEB3FDFEF504198F3121576A95441607F8C2ADFEF5041BB8E3B1E76A954410AD7A320DFEF5041713D0A5776A95441CDCCCC3CDEEF5041F6285C9F76A9544185BDBF0BDEEF50415F99259976A95441BC1852F4DDEF5041A00430A376A95441E6F2B8A8DCEF50410F200B9077A9544181D7DDBBDBEF50411731281E78A95441242B09F3DAEF5041EF3F7D6E78A95441CDCCCC7CDAEF5041333333D378A95441AB240D3DDAEF5041843788F678A95441DD9CC8B2D9EF50410854C16979A9544119884CF5D8EF50417F80B9E47AA95441AF5974ECD8EF5041202377F37AA95441CDCCCCCCD8EF5041B81E858B7BA954416DBF7676D8EF504119CE1DB87BA9544111772F67D8EF5041EE9B94D17BA954410DC12859D7EF50418795E16B7CA95441A9729B0BD7EF504186CAECFE7CA95441744D37ECD6EF504188D6A9DA7DA954419D2CB797D6EF504188D6A9DA7DA95441CDCCCC8CD6EF5041F6285CEF7DA9544193FF7CE6D5EF504188D6A9DA7DA95441CEE745C0D4EF504188D6A9DA7DA9544148E17AD4D3EF5041F6285CEF7DA95441AE10116AD3EF504188D6A9DA7DA95441E8DCCA38D3EF504188D6A9DA7DA95441B265B303D3EF5041E009C1C67DA954410AD7A360D2EF5041713D0AA77DA9544185EB5188D1EF5041333333537DA95441BD6AD4F5D0EF504169D98DCF7CA95441B989DA42D0EF5041F6ACB15F7CA95441FADC2C51CFEF5041F18B10057CA95441D6B4D6C6CEEF5041897CF9D27BA95441454CC539CEEF5041B2B0108F7CA95441E6522469CEEF504153B76FBE7CA95441E6522469CEEF504199E96D967DA95441CDCCCC7CCEEF5041F6285CBF7DA95441DF37658ACEEF5041500CD4707EA95441096141F7CEEF50415FFC42267FA95441EF067791CEEF5041F377FBAD7FA95441B5061A3BCEEF5041EB6D674680A954416DF095BACDEF5041039DCB5981A954410AD7A350CDEF5041B81E85DB82A9544185EB5148CCEF5041713D0A9784A95441536F096FCCEF504173A1029885A9544118264EADCCEF50419BE8537C86A9544148E17A14CDEF5041F6285C8F86A95441CE9180B5CEEF50415E85A2B285A954414A6EFF55CFEF50414BAB231285A95441B989DA42D0EF50417D96A75484A954414EA2B52FD1EF504112AF824185A95441F7B931EDD1EF504153BC40A085A95441EFA8145FD1EF5041FCD3BC5D86A95441F987C808D1EF50417C86C6A286A9544185EB51C8D0EF5041B81E85FB86A9544107CABA6DD0EF50415EA9B71F87A9544111725E85CFEF50415401140888A95441C8B87B6FCFEF504133D229B788A954416ECDDA83CFEF504125A2E06B89A9544172F8C397CFEF50415872811C8AA95441080B1DDFCFEF504168F5FBC28AA954416401DBF4CFEF5041E166C5CA8AA954415E40AA17D0EF50416BF43CD78AA95441889E5600D1EF5041425A04FE8AA954411AC84E7BD2EF5041FE5D632D8BA95441CC5A2426D3EF5041B1CCB8718BA9544185EB5138D3EF5041F6285C6F8BA95441CA0B3F56D3EF504152ADF6848BA9544163E62968D3EF50413F6B218C8BA9544182D88C42D4EF5041572F7CE38BA95441967BF165D4EF5041544B18C78BA9544145C0D574D4EF5041355326BB8BA95441B693D1AFD4EF50417F92AC628BA9544115DA8CB2D4EF50410BEDA25D8BA95441D5B9EFB4D4EF504163503C598BA95441C7138112D5EF50419A4288408AA95441C7138112D5EF5041732107008AA9544148E17AF4D4EF5041713D0A1789A95441610BBA72D6EF50415713CB9887A95441F943D8BCD6EF504129E2D9EB86A954414362B3A9D7EF5041E5E5381B87A9544178B89809D9EF50417A3C3CEF86A9544152550E92D9EF5041D2F73B6C86A95441E4ADE540DAEF504153BC40A085A954411077CDDEDAEF50415DD54C5185A95441E7C4AB0DDBEF5041AC01202D85A954410072C02EDBEF5041A670040185A9544185EB5178DBEF50413333334384A9544185EB5118DBEF5041713D0A1783A954411ACD1F5DDBEF5041B93EEC5582A954411ACD1F5DDBEF5041A14ED4EC81A9544181D7DDBBDBEF5041F936582F81A954416D328366DCEF5041E8A794BD80A9544148E17AA4DCEF5041713D0A7780A95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>463445 - 271326
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -3 </desc>
+<a>
+0106000000010000000103000000030000005501000048E17A34D7EF5041713D0AE78BA9544185EB51E8D4EF5041AE47E16A8FA9544185EB5108D3EF5041F6285C9F8EA9544148E17A64D1EF5041AE47E14A8EA95441CDCCCC8CD0EF5041333333638EA954410AD7A360CFEF5041333333338EA9544185EB5188CEEF5041F6285C9F8EA9544148E17AA4CDEF5041713D0A0790A9544185EB5178CCEF5041F6285CEF8FA9544185EB51A8CCEF5041713D0AC78DA95441CDCCCCFCCCEF5041F6285CDF8AA95441CDCCCCFCCCEF5041333333F388A9544185EB51D8CCEF5041333333D387A9544148E17A24CCEF5041B81E855B87A954410AD7A310CBEF5041F6285C0F88A9544148E17A74CAEF50413333338389A95441CDCCCCCCC9EF5041333333C38BA9544148E17AC4C8EF5041713D0AF78DA9544148E17AC4C5EF5041AE47E17A91A9544185EB5118C6EF5041713D0AB791A95441CDCCCC9CC6EF5041AE47E1FA92A954410AD7A380C7EF5041F6285C3F94A954410AD7A310C8EF5041713D0AB794A954410AD7A310C8EF50413333335395A954410AD7A380C7EF5041AE47E12A96A95441CDCCCCDCC5EF5041713D0AF796A954410AD7A340C5EF5041F6285C4F96A95441CDCCCC2CC4EF5041713D0A9796A9544148E17AB4C3EF5041F6285C6F97A9544148E17AC4C2EF5041713D0A1798A9544185EB5128C2EF50413333337399A95441CDCCCC1CC2EF5041713D0AA79BA95441CDCCCC8CC1EF5041F6285CAF9CA954410AD7A310C2EF5041333333F39DA95441CDCCCCBCC1EF5041AE47E18A9FA9544185EB51D8C0EF5041333333C3A0A954410AD7A3C0C0EF504133333303A9A954413D0AD7F3C2EF504114AE4741ADA95441CDCCCC2CC4EF5041F6285C8FADA9544185EB51F8C4EF5041713D0A87ACA9544148E17A64C5EF504133333363A9A9544185EB5158C5EF504133333313A8A9544166666676C6EF50411F85EBF1A6A954410AD7A3C0C6EF5041333333E3A7A95441CDCCCC2CC7EF5041AE47E1CAAAA9544185EB5198C7EF504133333373ABA9544148E17A14C7EF5041713D0A57ACA95441CDCCCCFCC6EF5041F6285CFFACA954410AD7A300C9EF5041333333F3AFA95441CDCCCCBCCAEF5041AE47E16AB0A9544185EB5118CCEF5041333333F3AFA9544185EB5148CCEF5041AE47E1AAAFA954410AD7A360CFEF5041F6285CEFB0A9544148E17AE4D2EF504133333343B4A954410AD7A3B0D3EF5041713D0AD7B6A954410AD7A350D3EF5041AE47E1AAB8A9544148E17AC4D1EF5041AE47E17AB8A9544185EB5178CFEF5041713D0AB7B8A954410AD7A300CFEF5041F6285CEFB9A95441CDCCCC2CD0EF5041AE47E14ABBA9544185EB5188D1EF5041AE47E1AABBA954410AD7A380D3EF5041AE47E18ABDA954410AD7A310D4EF5041AE47E1DABEA95441CDCCCCFCD5EF5041AE47E1EAC0A9544148E17AF4D7EF5041713D0A57C1A95441CDCCCC8CD9EF504133333323C2A954410AD7A360DBEF5041713D0A87C1A9544185EB5138DCEF5041F6285C7FC0A95441CDCCCCACDDEF5041AE47E15AC0A95441CDCCCC7CE0EF5041AE47E19ABFA9544148E17AF4E0EF5041F6285C0FBEA9544185EB51E8E0EF5041F6285CEFBCA954410AD7A3B0DFEF5041713D0AB7BBA9544148E17A04E0EF5041713D0A67BAA9544148E17AC4E0EF5041713D0A77B9A9544185EB5168E2EF5041AE47E10AB9A95441CDCCCC1CE3EF5041F6285C2FB9A95441C3F528ACE3EF5041B81E859BB9A954410AD7A330E4EF5041F6285CAFBAA95441C3F5280CE4EF5041713D0A47BCA954410AD7A3B0E2EF5041B81E857BBEA95441C3F5281CE3EF5041B81E859BBFA9544185EB51C8E2EF5041F6285CDFC0A954410AD7A310E0EF5041F6285CCFC4A9544148E17A04DDEF5041B81E852BC6A9544148E17A54DBEF5041F6285CCFC7A95441000000F0D9EF5041B81E85DBC8A95441713D0A87D8EF5041EC51B81ECAA95441C3F528ACD7EF5041B81E850BCBA9544185EB5118D6EF50410AD7A300CCA95441F6285C5FD2EF504152B81E35D1A95441C3F5280CDBEF5041713D0A27CAA954410AD7A3E0DCEF5041B81E851BCAA954410AD7A300DEEF5041713D0A07C9A9544185EB5168DFEF5041B81E853BC8A9544185EB5158E0EF5041B81E85EBC6A95441C3F5280CE1EF504133333323C5A954410AD7A350E2EF5041713D0AC7C3A9544148E17AF4E3EF5041713D0A67C3A95441C3F5288CE5EF5041713D0A67C3A954415C8FC275E7EF5041295C8FE2C1A95441B81E853BEEEF504152B81E35BEA95441295C8FB2F2EF5041AE47E17ABAA95441713D0A37F5EF50410AD7A360B8A954410AD7A320F7EF504185EB51C8B6A9544185EB5178FAEF50419A999939B3A954410AD7A38000F05041F6285C5FADA95441C3F5283CFFEF5041713D0AF7ABA9544185EB5188FEEF5041713D0A17ADA9544185EB51A8FCEF5041B81E853BADA9544148E17AC4FBEF5041B81E85CBADA95441C3F5285CFAEF504133333333AFA954410AD7A330F9EF5041F6285C0FB2A954410AD7A380F7EF5041713D0AB7B2A954410AD7A330F6EF5041F6285CFFB2A9544148E17A74F7EF5041F6285CFFAFA9544185EB51B8F8EF5041333333A3AEA95441C3F528BCFAEF5041713D0AF7ABA9544148E17A24FCEF5041F6285CDFA8A9544100000060FDEF5041C3F528ECA7A9544152B81E05FEEF504152B81E35A8A954418FC2F51800F0504100000020A9A95441C3F5285C00F05041B81E85FBAAA9544148E17A9401F05041F6285C0FACA954419A99994903F0504185EB5188AAA95441D7A3701D07F0504166666686A6A95441AE47E1EA08F0504114AE47F1A3A95441EC51B87E0CF0504114AE47D19EA954410AD7A3700DF05041713D0AC79CA9544148E17A840BF05041B81E85BB9CA9544148E17AE4F6EF5041B81E852B93A9544185EB5188F5EF5041B81E852B93A95441C3F5285CF4EF5041713D0A2794A9544148E17AF4F2EF5041333333C397A95441C3F5285CF1EF5041B81E851B9AA954410AD7A370EFEF5041B81E85CB9EA954410AD7A320EEEF5041713D0A27A0A954410AD7A3B0EBEF5041713D0A47A1A95441C3F5288CE8EF5041B81E85CBA1A9544185EB51D8E4EF5041713D0A77A1A954410AD7A3E0E4EF5041D7A370ADA0A95441EC51B84EE6EF50419A9999C9A0A95441B81E858BE8EF50411F85EB01A1A95441333333A3EAEF5041000000C0A0A95441D7A3702DECEF504133333333A0A954418FC2F588EDEF50411F85EB519FA9544152B81EB5EEEF50413D0AD7E39DA954410AD7A310F0EF50411F85EBE19AA9544152B81E75F1EF50418FC2F58898A95441AE47E13AF2EF5041EC51B8FE96A954410AD7A320F4EF5041F6285CBF92A95441D7A3706DF5EF5041EC51B83E8EA95441CDCCCC2CF7EF5041F6285CAF84A9544148E17A04F8EF5041333333937CA954410AD7A370F8EF5041B81E853B71A954410AD7A3A0F8EF5041F6285CEF68A9544185EB5108FAEF5041333333D35DA954410AD7A310FBEF5041B81E855B51A9544185EB51E8FBEF5041F6285C8F3EA9544148E17A84FCEF5041713D0A5737A95441CDCCCC5CFDEF5041B81E85EB33A954410AD7A3A0FEEF5041F6285CDF30A9544185EB51E801F05041F6285C5F2CA9544185EB515804F05041F6285CCF28A9544185EB513806F05041B81E85BB24A9544148E17AF407F05041333333F31FA954410AD7A36008F05041713D0AE71CA95441CDCCCC9C08F050413333336319A95441CDCCCC9C08F05041B81E852B15A9544185EB518807F05041B81E855B12A9544185EB517805F05041B81E852B0FA9544185EB51C803F05041B81E857B16A9544148E17A3401F05041F6285CEF1AA954410AD7A330FFEF5041713D0A171DA95441CDCCCC9CFFEF5041713D0A371EA95441CDCCCC4CFEEF50413333337321A954410AD7A3E0FDEF5041F6285C2F23A9544185EB5118FFEF5041B81E852B24A9544185EB519800F05041F6285CAF24A954410AD7A3E000F050413333333325A9544148E17AA400F05041713D0A7726A9544148E17AD4FDEF5041B81E85FB26A954410AD7A390FCEF5041B81E851B28A95441CDCCCCACFBEF5041B81E851B2BA954410AD7A370FBEF5041713D0A072DA9544148E17AA4FAEF5041B81E854B2EA9544148E17A44FAEF5041F6285C4F30A95441CDCCCCECF7EF50413333334333A954410AD7A390F6EF5041713D0AD735A95441CDCCCC9CF3EF5041F6285C4F39A954410AD7A370F2EF5041B81E85EB39A9544185EB5168F1EF5041F6285C2F3BA95441CDCCCCCCF0EF5041713D0A973CA9544185EB51F8EEEF5041713D0AD73EA9544185EB51C8EEEF5041F6285C5F41A95441CDCCCC7CEFEF5041B81E858B42A95441CDCCCC7CEFEF5041F6285CEF44A9544148E17AA4EEEF5041B81E851B46A9544185EB5148EDEF5041B81E850B47A9544185EB51B8ECEF5041F6285CAF48A954410AD7A3A0ECEF5041333333234AA9544148E17A54EDEF5041713D0AD74AA9544148E17A44EEEF5041333333934CA9544148E17A44EEEF5041713D0A474DA95441CDCCCCCCEDEF5041B81E858B4EA9544148E17AE4EDEF5041F6285C9F4FA95441CDCCCCCCEDEF5041333333D351A954410AD7A3F0EDEF5041713D0A5752A95441CDCCCCCCEDEF50413333331354A9544148E17AF4ECEF50413333333355A954410AD7A350EBEF50413333330355A9544148E17AB4EAEF5041B81E85CB53A95441CDCCCC6CEAEF5041333333D351A95441CDCCCC9CEAEF5041713D0A7750A9544185EB5158E9EF5041713D0AE74FA9544185EB5108E8EF5041333333F34FA9544185EB51A8E4EF5041F6285C1F51A95441CDCCCCDCE3EF5041333333D351A9544185EB5108E2EF5041713D0A8752A9544148E17A34E0EF50413333331354A9544185EB5148E1EF5041B81E854B55A954410AD7A300E4EF50413333334354A9544185EB5138E5EF5041B81E852B54A95441CDCCCCECE5EF5041713D0A8755A9544185EB5158E3EF50413333331357A9544148E17A14E2EF5041B81E855B57A9544185EB51B8E0EF5041B81E851B58A954410AD7A330DEEF5041713D0A9757A95441CDCCCCBCD9EF5041333333D357A9544148E17A74D6EF5041F6285CCF58A9544185EB5108D3EF5041F6285C8F56A954410AD7A3C0D2EF5041713D0A9757A9544148E17A74D3EF5041F6285C4F5AA9544148E17A94D4EF5041333333A35AA954410AD7A380D6EF5041333333235CA954410AD7A370D7EF5041B81E856B5CA9544148E17AC4D7EF5041B81E852B5DA9544148E17A44D9EF5041B81E85BB5DA9544148E17A34DAEF50413333337360A9544148E17A94DAEF5041B81E851B61A9544185EB51B8DAEF5041713D0AD762A9544185EB5138DCEF5041B81E853B65A95441CDCCCCACDDEF5041713D0A7765A9544148E17A64DDEF5041B81E854B64A954410AD7A390DEEF5041713D0A0763A95441CDCCCCECDFEF5041B81E85CB62A9544185EB5168E2EF5041B81E85CB62A9544148E17A94E3EF50413333331363A9544148E17A64E6EF50413333332362A954410AD7A3C0E7EF50413333338362A9544185EB5198E8EF5041F6285CDF63A9544148E17A14E8EF50413333338365A954410AD7A330E7EF5041F6285C7F66A95441CDCCCCDCE6EF5041713D0AE767A95441CDCCCC5CE8EF5041B81E859B68A95441CDCCCCBCE8EF5041F6285C5F6BA9544185EB51F8E8EF5041713D0AB770A95441CDCCCC8CE8EF5041B81E853B74A95441CDCCCC3CE7EF5041B81E856B74A954410AD7A340E6EF5041713D0A8773A9544185EB51F8E5EF5041713D0A0772A9544185EB51B8E6EF5041333333C370A954410AD7A360E7EF5041713D0AD76BA9544148E17AC4E6EF5041B81E854B6AA9544148E17A14E5EF5041333333D369A9544148E17AF4E3EF5041713D0A0769A95441CDCCCCECE2EF5041F6285CBF68A9544148E17A44E2EF5041F6285C6F67A9544148E17A54E1EF5041713D0A1768A954410AD7A340E0EF5041713D0A9769A9544185EB5138DFEF5041F6285C6F6AA954410AD7A3F0DEEF5041713D0A376CA9544148E17AD4DFEF5041713D0A976FA9544148E17A04E0EF5041F6285CFF70A9544148E17A74DFEF5041F6285C1F72A9544148E17AA4DFEF50413333336373A954410AD7A320DFEF5041713D0A5776A95441CDCCCC3CDEEF5041F6285C9F76A95441CDCCCC7CDDEF5041713D0A8776A9544185EB51C8DCEF5041B81E856B77A954410AD7A3C0DBEF5041F6285CBF77A95441CDCCCC7CDAEF5041333333D378A9544185EB5138D9EF5041713D0A8779A95441CDCCCCCCD8EF5041B81E858B7BA954410AD7A370D7EF5041F6285C3F7CA95441CDCCCC8CD6EF5041F6285CEF7DA95441CDCCCC6CD5EF5041B81E85CB7DA9544148E17AD4D3EF5041F6285CEF7DA954410AD7A360D2EF5041713D0AA77DA9544185EB5188D1EF5041333333537DA9544185EB5198D0EF5041B81E857B7CA9544148E17A64CEEF5041F6285CAF7BA9544185EB51F8CDEF5041B81E85AB7CA95441CDCCCC7CCEEF5041F6285CBF7DA954410AD7A3A0CEEF5041333333937FA9544148E17AD4CDEF5041B81E85FB80A954410AD7A350CDEF5041B81E85DB82A9544185EB5148CCEF5041713D0A9784A954410AD7A390CCEF5041713D0A7786A9544148E17A14CDEF5041F6285C8F86A9544185EB5178CFEF5041B81E854B85A95441CDCCCC5CD0EF5041B81E858B84A9544185EB5188D1EF5041333333F385A9544185EB51C8D0EF5041B81E85FB86A95441CDCCCC9CCFEF50413333337387A95441CDCCCC6CCFEF5041F6285C9F88A9544185EB51A8CFEF5041F6285CAF8AA9544148E17A24D2EF5041333333938BA9544185EB5138D3EF5041F6285C6F8BA954410AD7A310D4EF5041B81E850B8CA9544185EB5188D4EF5041B81E85AB8BA9544148E17A24D5EF5041B81E858B8AA9544148E17AF4D4EF5041713D0A1789A9544185EB51C8D6EF50413333334387A95441CDCCCCACD7EF50413333334387A95441CDCCCCFCD8EF5041B81E85FB86A95441CDCCCC1CDAEF5041713D0AE785A9544148E17A24DBEF5041B81E851B85A9544185EB5178DBEF50413333334384A9544185EB5118DBEF5041713D0A1783A95441CDCCCC9CDBEF5041333333A381A9544148E17AA4DCEF5041713D0A7780A95441CDCCCCFCDBEF5041713D0A077EA954410AD7A320DCEF5041F6285CFF7CA9544148E17A94DDEF5041B81E85AB7CA9544185EB51C8DFEF50413333335380A954410AD7A340E0EF5041B81E851B82A95441CDCCCC1CE0EF5041713D0A0784A954410AD7A380DFEF50413333333385A9544185EB5118DEEF5041333333D384A954410AD7A380DCEF5041B81E857B85A95441CDCCCC6CDBEF5041B81E859B86A954410AD7A3A0DAEF5041713D0A4789A9544185EB51E8DAEF5041B81E856B89A9544148E17A74DCEF5041333333F388A9544185EB5108DFEF5041333333B389A954410AD7A3C0DEEF5041333333D38AA9544148E17AA4DCEF5041F6285CCF8BA9544185EB5118DBEF5041B81E853B8CA95441CDCCCC3CD8EF5041713D0A878BA9544148E17A34D7EF5041713D0AE78BA9544116000000F6285C8FF8EF5041666666869DA9544185EB51C8F8EF50410AD7A3B09DA95441A4703D3AFAEF5041D7A370CD9DA9544185EB5108FBEF5041295C8FA29CA95441D7A3705DFCEF504148E17A149DA954417B14AE47FBEF5041666666869EA95441B81E85EBFAEF50410AD7A330A0A9544148E17AA4F9EF50411F85EB61A1A9544185EB5188FAEF50418FC2F528A3A95441F6285C8FFBEF50413D0AD753A4A95441D7A3701DFBEF5041A4703DDAA5A9544185EB51C8F9EF504114AE4721A6A95441C3F5282CF6EF50418FC2F5A8A4A954418FC2F5C8F4EF504166666676A7A954413D0AD773F4EF504133333393A7A954417B14AE57F3EF5041C3F528CCA6A954418FC2F588F4EF50411F85EB21A5A9544100000050F5EF504100000070A3A95441E17A145EF6EF50417B14AEF7A1A9544114AE47C1F6EF5041CDCCCC4CA0A95441333333B3F7EF50419A9999699EA95441F6285C8FF8EF5041666666869DA954411C000000CDCCCC5CD0EF5041333333A3AEA9544148E17AF4D1EF5041F6285C7FAEA95441B81E850BD2EF50415C8FC285ADA9544185EB51F8D0EF5041F6285CCFACA9544148E17A14D0EF5041AE47E18AABA95441CDCCCC5CD0EF5041713D0AE7A9A9544148E17A04D1EF5041F6285CAFA8A9544148E17AA4D0EF5041F6285C8FA7A95441CDCCCCDCD1EF5041713D0AE7A6A9544148E17AE4D2EF5041333333B3A7A95441CDCCCCDCD4EF5041713D0AA7A7A954410AD7A3B0D9EF5041AE47E1AAA9A95441CDCCCC4CDAEF5041713D0AA7AAA9544148E17A44D9EF504133333343ABA954410AD7A3A0D7EF5041F6285C4FABA9544185EB5198D6EF5041713D0A27ACA9544148E17AA4D6EF5041F6285C5FADA9544148E17A14D3EF5041713D0AA7ADA95441CDCCCC1CD4EF5041AE47E1EAAEA9544148E17A24D5EF5041713D0A87AFA9544185EB5178D5EF5041AE47E19AB0A9544185EB5108D6EF5041F6285C7FB1A9544148E17AB4D5EF5041AE47E17AB2A9544185EB5168D3EF504133333303B2A95441CDCCCC3CD2EF5041713D0A27B2A9544148E17AE4CFEF5041333333B3B0A9544148E17AE4CFEF5041AE47E17AAFA95441CDCCCC5CD0EF5041333333A3AEA95441
+</a>
+
+<b>
+0106000000010000000103000000010000007502000048E17AA4DCEF5041713D0A7780A954410FF1FB49DCEF5041986545267FA95441CDCCCCFCDBEF5041713D0A077EA95441C466B1FEDBEF504147F51CF97DA9544122DE3CEBDBEF5041C2D24AAB7DA954419F997B14DCEF50418A5ACD587DA954410AD7A320DCEF5041F6285CFF7CA954419F6B5745DCEF504110B515F77CA9544189E8FA49DCEF504119BBCEED7CA9544191F917D8DCEF5041B2B0108F7CA95441B4073566DDEF5041B2B0108F7CA954412DEC7C81DDEF5041985CCDAF7CA9544148E17A94DDEF5041B81E85AB7CA954416F8166CFDDEF504114104C0D7DA95441923EEB3FDFEF5041D2F484C77EA9544170833BBEDFEF5041E2C0754280A9544185EB51C8DFEF50413333335380A95441C511A9D6DFEF5041BB3A968980A954414367848BE0EF5041A95FF17A82A95441A260255CE0EF504175858AC683A95441BF1C64AADFEF50415DF0F2E284A954410AD7A380DFEF50413333333385A9544188206F79DFEF5041A3B6473185A9544133454A6FDFEF504112AF824185A95441A2A9E7C0DEEF5041E1B51D0085A9544185EB5118DEEF5041333333D384A95441C31C00CEDCEF50414B79945B85A95441E6F2B8A8DCEF5041B2B5E17085A9544181D7DDBBDBEF5041C2D71B8D86A954411ACD1F5DDBEF504186EC974A87A95441B3C261FEDAEF50415C12319688A95441B47DC0B3DAEF5041FA3FC45089A95441FAE69EDBDAEF50418D950E6589A95441B3C261FEDAEF50412B27AD5389A95441578ED336DBEF50412B27AD5389A9544169E4E5F5DBEF5041431AA51989A9544189E8FA49DCEF5041231690C588A95441EE03D636DDEF504164234E2489A954412B342DE1DEEF5041CB2D0C8389A95441923EEB3FDFEF50413238CAE189A954414DB617CDDEEF504106C92AA18AA954410AD7A3C0DEEF5041333333D38AA9544148E17AA4DCEF5041F6285CCF8BA9544185EB5118DBEF5041B81E853B8CA95441F1116DD7DAEF50416069822B8CA95441E4ADE540DAEF5041347D9D498CA95441181E49BBD9EF5041561268E58BA95441CDCCCC3CD8EF5041713D0A878BA9544148E17A34D7EF5041713D0AE78BA95441A7931B21D6EF504132AF568C8DA95441001022E3D4EF50417EE04B9E8FA95441D2010555D4EF504117D68D3F8FA9544165F35059D3EF504124D0B3C18EA9544112279D44D3EF5041DAB2ECB88EA95441132F962AD3EF50419399E3AD8EA954414D47178ED2EF504155DFC3868EA9544193E64BA0D1EF5041FD8EEA568EA95441808D3972D0EF50416EBE11828EA95441C1C34B54D0EF50412D072A5A8EA954410AD7A360CFEF5041333333338EA954417733D5D6CEEF5041FD841A788EA954414D5DE2C7CEEF50416EBE11828EA95441DE4107DBCDEF50411FE7AACD8FA954413D9AD2C8CDEF50411FE7AACD8FA9544148E17AA4CDEF5041713D0A0790A9544185EB5178CCEF5041F6285CEF8FA954412D196E8FCCEF5041F8AA70E58EA954412D196E8FCCEF5041ECB653238EA954412D196E8FCCEF50413C8EBAD78CA95441A822CDBECCEF5041425A04FE8AA954416F262CEECCEF50415C12319688A95441114BEAEFCCEF5041685B7A8D88A9544185EB51D8CCEF5041333333D387A9544148E17A24CCEF5041B81E855B87A95441AAE29325CBEF5041448FB50188A9544142CA2F0ECBEF5041BAA3331588A9544189273EE8CAEF50413A3D8D6F88A95441795281C4CAEF50416AF5A5C488A95441CDDAF956CAEF5041DB4F469F8AA95441F7B4600BC9EF5041ABA995C48DA95441C3F5654DC8EF5041946790828EA954412AE4A034C7EF5041C15E88CB8FA95441FAFDB714C6EF504195F1DD1C91A954410EB134FAC5EF5041626D6EA191A9544185EB5118C6EF5041713D0AB791A954415B131E8FC6EF504197106FD992A954411B6D8DA3C6EF5041EF40FAF292A95441648B6890C7EF50419F69933E94A95441787D4A9CC7EF5041054E575694A954410AD7A310C8EF5041713D0AB794A954410AD7A310C8EF504188030A3F95A954418799851EC8EF5041CA88CD5A95A954413A05B978C7EF504139A4A84796A9544104E67E5CC6EF504107B9240597A954416F9D671AC6EF50414E3315D996A95441CDCCCCDCC5EF5041713D0AF796A954410AD7A340C5EF5041F6285C4F96A95441AA02CC1FC5EF50417606E55796A95441A4A70A24C4EF504141B5C5D596A9544126A2F4F4C3EF50412BEC70FB96A9544148E17AB4C3EF5041F6285C6F97A95441E82AD1E5C2EF5041249EBFFF97A95441CAEFDEACC2EF5041DE42AD4B98A9544185EB5128C2EF50413333337399A954418629C427C2EF5041EE744D8E99A95441EB6D544AC2EF50415A2DF0E79AA95441DEBF761EC2EF504124619A559BA95441CDCCCC1CC2EF5041713D0AA79BA95441200AE2E0C1EF5041116305159CA95441BE5F37BCC1EF5041F46705F19CA95441C8C613D5C1EF50410038E5609DA954410AD7A310C2EF5041333333F39DA95441E374A303C2EF50412DC86B329EA95441256AF51AC2EF504131985C9B9EA9544131F5CFD4C1EF504187231E169FA95441CDCCCCBCC1EF5041AE47E18A9FA95441D7C9084AC1EF50413231C227A0A95441F02EB7D5C0EF504189E67CABA1A954418477F9D4C0EF5041988F95EDA1A954411548BBFEC0EF50416D1EA43BA3A9544157AACFCEC0EF504117654813A4A95441694B00CDC0EF5041CE0FB8B4A4A954413C4791C7C0EF5041C9AD5799A6A9544159445CCFC0EF50411F8C10EFA6A9544159445CCFC0EF5041FDC2C6C8A8A954411D59D88CC1EF504174EFBE43AAA954412D7B12A9C2EF5041D52D337CACA95441C293ED95C3EF504144490E69ADA95441DD154B4AC4EF504144490E69ADA954418AE45F5AC4EF5041739D2B54ADA9544126AFC882C4EF5041163BF1DAACA9544108278CEFC4EF5041B6E96E92ACA9544185EB51F8C4EF5041713D0A87ACA9544148E17A64C5EF504133333363A9A9544185EB5158C5EF504133333313A8A95441E6A0BAB7C5EF5041D248B9B2A7A9544164DF1F2DC6EF50411F8C10EFA6A9544140C16253C6EF5041FB6D5315A7A9544166666676C6EF50411F85EBF1A6A95441B74FC9B1C6EF504167FBECB2A7A95441D3FAFA19C7EF5041FDC2C6C8A8A95441D3FAFA19C7EF5041D4E85F14AAA954417619224EC7EF504105F50FFFAAA9544185EB5198C7EF504133333373ABA95441F3875D75C7EF5041FA679BAFABA954413A05B978C7EF5041E11BB7BEABA95441D3FAFA19C7EF5041163BF1DAACA95441472E7F66C7EF5041DFBC3B9AADA9544150BA75CAC8EF50412FDFCFA3AFA954417D574A3FCAEF5041879B9F2FB0A954418C79845BCBEF5041879B9F2FB0A95441BFD7532BCCEF504159E08FD6AFA9544185EB5148CCEF5041AE47E1AAAFA9544164529D6DCCEF5041E83D27BAAFA95441589F1DA7CCEF50417F8A82A1AFA9544195CF7451CEEF5041879B9F2FB0A9544128F96CCCCFEF50412FB31BEDB0A9544136E9B6B5D1EF504129965B12B3A95441AD8AAC24D2EF50413A537034B2A954410C3BAFE3CFEF5041CA262DBBB0A954410C3BAFE3CFEF5041D0D06479AFA95441E854D1FACFEF5041B7A6D652AFA95441CDCCCC5CD0EF5041333333A3AEA95441DFE99C64D0EF5041A85D83A2AEA95441F501D668D0EF5041068B799BAEA954419882EEF4D1EF50411180777AAEA95441781825FED1EF50416A28A816AEA95441A9D96203D2EF50413D458EBDADA9544154842373D1EF504108846738ADA95441A04F301AD1EF504185D0CEE5ACA9544185EB51F8D0EF5041F6285CCFACA954410F0328E6D0EF5041A2F57DB5ACA954416DA3CBD7D0EF5041B32E28A8ACA95441E43D1848D0EF5041872F63D4ABA9544148E17A14D0EF5041AE47E18AABA95441D1C8D414D0EF5041605BD788ABA9544110ECF804D0EF504125677871ABA95441F1508C47D0EF50418F3D35F8A9A95441507D7369D0EF5041B23B86CFA9A95441640497BAD0EF5041C48FB438A9A95441E58C57F5D0EF5041368A7FCBA8A95441705415F9D0EF50410C7685C1A8A95441A1AF01BCD0EF50410294F0D5A7A9544148E17AA4D0EF5041F6285C8FA7A95441891B9CEED0EF5041C3AD6867A7A95441F308E8CBD1EF5041921C34CEA6A95441C861B00DD3EF5041A942EE95A7A954413D0AB8DFD4EF504115D106A1A7A95441CE9CA0FED7EF504152079ECCA8A95441AA57FC82D9EF5041179C3F89A9A954415F94E196D9EF50416AD520A0A9A954410AD7A3B0D9EF5041AE47E1AAA9A95441FE7D3ED9D9EF5041501672ECA9A95441999AE760DAEF5041EF927488AAA95441819DE544DAEF50414C4B479AAAA95441CDCCCC4CDAEF5041713D0AA7AAA9544148E17A44D9EF504133333343ABA95441EB35C6B1D7EF5041A11DDD4EABA9544151D1E163D7EF5041E3F0EF80ABA95441D0958E9BD6EF5041B4106624ACA95441D0958E9BD6EF504102DA2D7AACA9544148E17AA4D6EF5041F6285C5FADA954412EED972FD5EF504118E6AA7CADA95441CB12FA2ED3EF50413D458EBDADA954416D6239BFD3EF5041D92BE658AEA95441C2B7784FD4EF5041129E56FFAEA95441874C1A0CD5EF5041CC1F1B58AFA9544106AA561AD5EF5041DFAC0881AFA9544148E17A24D5EF5041713D0A87AFA95441811F415CD5EF5041E6BF8A3EB0A954414CCEDE64D5EF504199165057B0A9544112638021D6EF504127DEFF8DB1A954419AC18AB2D5EF5041AD431C82B2A954417888F386D4EF50416301BA55B2A954415B09D33DD3EF50415DF24808B2A954410AB4BDCDD2EF50414956B215B2A954410A60A472D2EF50415FEC9820B2A95441FB6A7B0ED2EF5041C81A206BB3A95441E0DA8560D2EF5041662648C6B3A9544148E17AE4D2EF504133333343B4A954410A427FF7D2EF50416D2E8680B4A95441725C1B21D3EF5041632846FFB4A95441F6D320B4D3EF5041C8EC6AB6B6A954416738DCAED3EF504149B049D1B6A954410AD7A3B0D3EF5041713D0AD7B6A95441EACC656FD3EF50419BD8FC14B8A9544139607A50D3EF50411596B2B2B8A954416EB9A513D3EF50419F6C7DA3B8A9544172FE300AD2EF504159925383B8A954414907E771D1EF504159925383B8A95441F4F0FB87D0EF504103B8409BB8A9544128F96CCCCFEF50411596B2B2B8A9544159E4F00ECFEF504111B94BFEB9A954413FFAAD13CFEF5041E9596705BAA954418864142CD0EF5041C5C60B4ABBA954419F256547D1EF504188E54379BBA95441E171E183D1EF50412B56A7A9BBA9544185EB5188D1EF5041AE47E1AABBA954419FB7A397D1EF50417FF475B9BBA954410E414034D2EF504126FDBF36BCA954413EF178BDD2EF5041BBC21FD1BCA954410AD7A380D3EF5041AE47E18ABDA954416D619E9CD3EF5041EADF29CCBDA954417A6D38AFD3EF5041632D17E1BDA95441ADF8E74BD4EF50412646761ABFA95441D0E82BDCD4EF5041FAA93BB5BFA95441B89D8F59D5EF5041C46B8B19C0A954418E7F8037D6EF504117527CF7C0A9544165638E59D7EF5041AE90C535C1A9544193E562C1D7EF5041AE90C535C1A95441300F5B3CD9EF50417CA541F3C1A95441F323D7F9D9EF50417CA541F3C1A95441FEA9A683DAEF504132C3CDD0C1A954410AD7A360DBEF5041713D0A87C1A95441B6BDDBA5DBEF5041A4BD6A32C1A95441D25A8DD3DBEF50416D8307D7C0A95441E9B2B704DCEF5041615772BEC0A9544185EB5138DCEF5041F6285C7FC0A95441CDCCCCACDDEF5041AE47E15AC0A954410361CDC9DEEF50412820E10EC0A9544183C8F986DFEF50413764CDBABFA95441C310A28DE0EF5041D2F63F63BFA9544148E17AF4E0EF5041F6285C0FBEA9544185EB51E8E0EF5041F6285CEFBCA954410AD7A3B0DFEF5041713D0AB7BBA954414ACC58B6DFEF504171412BA0BBA954414ACC58B6DFEF5041FBDD851ABBA95441A373EAF8DFEF5041488D6295BAA9544148E17A04E0EF5041713D0A67BAA9544172CA2040E0EF5041FCD97A1CBAA95441F3E3D473E0EF50414AB5ECCEB9A9544107528388E0EF504182B0FFC1B9A9544148E17AC4E0EF5041713D0A77B9A9544184A47F2AE1EF504118FDC15CB9A954415F10CDEEE1EF5041DB9911E2B8A95441532249ACE2EF50417CA07011B9A9544177DCAE9DE4EF5041042FA52EB5A954413EE5DEAEEDEF504105CF1275A0A95441D2A66A76EBEF504115F14C91A1A95441E50AB2EDE9EF504115F14C91A1A95441C3F5288CE8EF5041B81E85CBA1A95441DA067212E8EF5041DBF4ABC0A1A954415D248205E7EF5041DBF4ABC0A1A9544109864F2DE6EF5041F3A06E95A1A9544185EB51D8E4EF5041713D0A77A1A95441C0F430D9E4EF50419AE7ED61A1A954417EA8F8C3E2EF50419AE7ED61A1A95441DC5CC62CE0EF5041DBF4ABC0A1A95441BC1852F4DDEF5041840C287EA2A954411ACD1F5DDBEF5041752FC1C9A3A95441B27D8E96D8EF5041B35F1874A5A95441AA6C7108D8EF5041AB4EFBE5A4A95441C4249EA0D5EF504126585A15A5A954412AEA8897D3EF5041E44A9CB6A4A95441EFA8145FD1EF5041E44A9CB6A4A95441B3BD901CD2EF50410E25036BA3A954411AC84E7BD2EF5041840C287EA2A95441F7B931EDD1EF50419AE7ED61A1A954415EC4EF4BD2EF5041CBD271A4A0A954415BD50CDAD2EF504100ADD8589FA95441E8DCCA38D3EF5041CA8D9E3C9EA95441CAF0E7C6D3EF5041FC78227F9DA95441D2010555D4EF5041F46705F19CA95441C7138112D5EF50418D5D47929CA95441671AE041D5EF5041E734AE469BA9544108213F71D5EF5041521CD3599AA954416F2BFDCFD5EF504142FA983D99A954411CB96A46D6EF504177D4FFF197A954411CB96A46D6EF504100A8077796A9544183C328A5D6EF5041CA88CD5A95A9544124CA87D4D6EF50415E5CD5DF93A9544124CA87D4D6EF5041283D9BC392A9544152D8A462D7EF50417F251F0692A9544193E562C1D7EF50415C17027891A9544193E562C1D7EF5041EDFB268B90A9544193E562C1D7EF504117D68D3F8FA95441FAEF2020D8EF504167ADF4F38DA954418C19199BD9EF5041439FD7658DA95441A44C7045DBEF5041ABA995C48DA95441D39F603BDEEF5041ECB653238EA954417CB7DCF8DEEF5041ECB653238EA954411D030F90E1EF50416EBE11828EA95441015CFF85E4EF504117D68D3F8FA954410590B55FE6EF5041DED9EC6E8FA9544115B2EF7BE7EF5041DED9EC6E8FA954419FCACA68E8EF504117D68D3F8FA954414FF363B4E9EF50410FC570B18EA95441C61F5C2FEBEF504117D68D3F8FA95441B842F57AECEF504150D22E108FA95441CF754C25EEEF5041B0CBCFE08EA95441629F44A0EFEF504150D22E108FA954410AB7C05DF0EF5041E5EA09FD8FA9544179D29B4AF1EF504187363C9492A954416BF53496F2EF5041283D9BC392A95441AC02F3F4F2EF50417D9B78368DA95441CCDFF131F6EF50415C6DCB7471A95441193283F8F8EF5041FF539A7056A954415473F730FBEF50417E2C4CDE3AA954416495314DFCEF5041ABF0C42230A9544165DA04B5FEEF50414EE135E226A95441F6BE29C8FDEF504114E5941127A95441C170C5A1FDEF5041E5E09D2827A95441EEEC74C2FCEF5041737137EF27A95441228873EEFBEF5041254CA2952AA954413A03EF8DFBEF50418167B4172CA954410AD7A370FBEF5041713D0A072DA95441C6FAF63DFBEF5041468C94572DA95441ED6839D2FAEF504180D18A062FA9544172E2EA51FAEF504170DE270730A9544148E17A44FAEF5041F6285C4F30A95441A8D13007FAEF504101009C9C30A954417E4D5EE5F9EF5041530841E030A95441A5B54E85F9EF5041599F504031A954417BD4D646F8EF504174D0B6D132A954410A1049DCF7EF5041BC57D2A633A95441D4F00EC0F6EF50419A8E888035A95441E925D9BAF6EF504133CC0B8735A954410AD7A390F6EF5041713D0AD735A954419B3DB810F5EF50411684409A37A954412A94BF9AF3EF50411200546339A95441F540E75EF2EF5041A92940013AA95441200EE9E1F1EF50414BC4639A3AA95441B71AF575F1EF50413FD3A61E3BA9544188488D03F1EF50411B5644593CA954416A14AED8F0EF5041967F907B3CA95441CDCCCCCCF0EF5041713D0A973CA9544117806677EFEF5041732ACB3A3EA95441E30D78FAEEEF50415EA8D51F3FA95441798AFAE7EEEF50413CBFC1B33FA95441C8A22ED4EEEF5041494024BF40A9544143632F21EFEF5041874427F341A95441CDCCCC7CEFEF5041B81E858B42A95441CDCCCC7CEFEF5041BE350AA042A95441B222F4B7EFEF5041D619A10243A95441B222F4B7EFEF5041A23F3A4E44A95441CDCCCC7CEFEF50411608ADBA44A95441CDCCCC7CEFEF5041F6285CEF44A954416A489C06EFEF5041C1505B9345A954418703BA9BEEEF5041467A4F5746A95441DC23CF7FEDEF50412DEB44E546A9544185EB5148EDEF5041B81E850B47A95441B7871213EDEF5041C731C4A647A954411F4DB3D9ECEF5041F8E7BB0A4AA954412F6FEDF5EDEF50412B1813B54BA95441527D0A84EEEF50413B3A4DD14CA9544183524937EEEF50415993CF6A4DA95441CDCCCCCCEDEF5041B81E858B4EA9544148E17AE4EDEF5041F6285C9F4FA9544191F0EBE3EDEF50412EAFA7AC4FA954412F6FEDF5EDEF504112A5B98450A954412F6FEDF5EDEF5041E6DB6F5E52A954412F6FEDF5EDEF50415D0868D953A95441B359C2CDEDEF50411121500754A95441CDCCCCCCEDEF50413333331354A9544148E17AF4ECEF50413333333355A95441092476CBECEF50417DA8822E55A95441584954AAECEF5041D434605455A95441E92D79BDEBEF5041D434605455A9544199BB7393EBEF5041F1ACD60A55A954410AD7A350EBEF50413333330355A9544148E17AB4EAEF5041B81E85CB53A95441CDCCCC6CEAEF5041333333D351A95441CDCCCC9CEAEF5041713D0A7750A95441D5BA3FC1E9EF50415A299B1550A95441492E04ECE8EF5041D0A5F5EA4FA9544185EB5108E8EF5041333333F34FA954418CFF1F89E7EF5041EC73631F50A954410590B55FE6EF5041B3AB18B450A954416970FF49E4EF50410B25B57251A95441CDCCCCDCE3EF5041333333D351A9544185EB5108E2EF5041713D0A8752A95441FD632E4EE0EF504185C46FFD53A9544152DD7544E0EF5041230CC70854A95441B6F85031E1EF5041332E012555A95441DDA2E4F8E1EF50414C5E7E0855A95441B3B07C6FE2EF504166D379DB54A95441BDD6C9E9E2EF5041D8020DAD54A954419C402499E3EF5041C412263854A954417077DA72E5EF5041230CC70854A954413E8C5630E6EF5041D434605455A95441BCDAE1EBE5EF504144D8458555A95441CDCCCCECE5EF5041713D0A8755A95441A91EA3D7E5EF504158CCBB9355A954416866BDE4E4EF504138503B4156A95441E1310C69E4EF50410AC49D6F56A9544185EB5158E3EF50413333331357A954417C2FD29EE2EF50411B2BA03C57A95441F0F4F101E1EF50413C84F11A58A9544103935DB9E0EF50413C84F11A58A9544185EB51B8E0EF5041B81E851B58A95441994D80B5E0EF50413C84F11A58A9544152DD7544E0EF50413C84F11A58A95441038F56F1DEEF5041419D74BE57A954410AD7A330DEEF5041713D0A9757A95441E17EF7DDD9EF5041141173D157A95441E64C1EAFD9EF504176374ED757A95441A17E7FA5D8EF50418909032758A9544107212E5DD8EF5041FA74B63C58A9544183C328A5D6EF5041AB9FCC0759A95441BC581DECD5EF50415823B67558A9544156E046C7D4EF50413E1E32B557A954412F43D50CD3EF5041D1B2539256A95441D155BCF1D2EF50410765B7FE56A95441D155BCF1D2EF50413C84F11A58A954414B2CA77FD3EF5041B5D29C525AA95441CB0BAC8AD3EF5041B502D2555AA9544119DB8D91D3EF50419AE4D2575AA95441A87B553DD4EF504118CCC4825AA9544165EB8656D4EF504174302A915AA9544148E17A94D4EF5041333333A35AA954418992A6E7D4EF50412EB417E45AA954417EA1EE88D5EF5041E6E040405BA95441FCB39ED0D5EF504139F7DC995BA954410AD7A380D6EF5041333333235CA954410AD7A370D7EF5041B81E856B5CA95441E46271B6D7EF5041BEBE5F0B5DA9544193E562C1D7EF5041BA17F7195DA95441C9049DDDD8EF50412122B5785DA954419B2FD7FFD8EF504117BCC7A15DA9544148E17A44D9EF5041B81E85BB5DA95441AE03D165D9EF504117BB261C5EA954412D2078CAD9EF50413144EF945EA9544135319558DAEF5041CB7E049E60A954413D40E45EDAEF504154CA8FBD60A9544148E17A94DAEF5041B81E851B61A95441F42D12ACDAEF50418C73753F62A954412DB8D9D2DAEF5041FC285B0163A954415C5CC672DBEF5041AA7B6F0064A95441CAA3F21CDCEF50411182DC0F65A95441A06F0991DCEF5041EB074C3E65A954414367199FDDEF5041EB074C3E65A9544148E17A64DDEF5041B81E854B64A954417AD53D02DEEF504127E0F9A063A954410C9C010CDEEF5041B9D7F49363A95441AACE2011DEEF5041BD1FE29063A954410AD7A390DEEF5041713D0A0763A954410CC5375FDFEF5041CF6BB9E362A95441B1D61615E0EF50416FB919A762A954411D030F90E1EF50416FB919A762A9544126F92746E2EF5041B81E85CB62A9544185EB5168E2EF5041B81E85CB62A954413C496518E3EF5041F36291F562A95441FC39C569E3EF5041B1C6D70563A95441C75F5EB5E4EF50416FB919A762A954410590B55FE6EF504142ABFC1862A95441D0B54EABE7EF504108AF5B4862A95441E0D788C7E8EF5041B9D7F49363A954419FCACA68E8EF504171FEEC0E65A9544174AB904CE7EF5041883144B966A95441918419DFE6EF504177982CDD67A95441CDCCCCDCE6EF5041713D0AE767A95441CDCCCC5CE8EF5041B81E859B68A95441771D3884E8EF5041FFBF2BBE69A95441E0D788C7E8EF5041A1A96ECB6AA95441E0D788C7E8EF5041A90E06566CA9544185EB51F8E8EF5041713D0AB770A95441D5233BF5E8EF5041D605E9D070A95441A7DBE7F6E8EF5041545CAEE670A95441E0D788C7E8EF504106CA1A9A74A95441D0B54EABE7EF504165C3BB6A74A95441A01BC798E7EF50419A5C615E74A95441CDCCCC3CE7EF5041B81E856B74A954410AD7A340E6EF5041713D0A8773A9544158FBFB0FE6EF50419EF0B08472A954419E85F700E6EF5041CB88A66172A95441ECEB1407E6EF50412FBC6B5572A9544185EB51F8E5EF5041713D0A0772A954415D2A259DE6EF50410BED08F170A954416C9A73BEE6EF5041AC44322970A95441671CECE9E6EF504154C1D74F6FA954410AD7A360E7EF5041713D0AD76BA9544148E17AC4E6EF5041B81E854B6AA95441699E68E7E5EF5041F991F20D6AA95441367B39A2E5EF5041F991F20D6AA954417835566DE5EF504199C0F2EB69A9544148E17A14E5EF5041333333D369A9544148E17AF4E3EF5041713D0A0769A95441CDCCCCECE2EF5041F6285CBF68A9544184FECA49E2EF50418437F77967A95441F0F4F101E1EF50418265FA9268A95441B1D61615E0EF5041F991F20D6AA954414ACC58B6DFEF5041F991F20D6AA9544142BB3B28DFEF5041A9BA8B596BA9544142BB3B28DFEF50419ADD24A56CA9544183C8F986DFEF50410AF9FF916DA954418336D2B1DFEF5041E2E39B136FA9544148E17AD4DFEF5041713D0A976FA954413787B1F4DFEF50413814DB8870A95441565367FDDFEF5041B3554FB770A954411C7861FCDFEF50418EC18FC270A9544148E17A04E0EF5041F6285CFF70A954419A55D3F3DFEF50415240AB2071A954419A4F08CEDFEF50414D9064C072A954419A4F08CEDFEF50415DB29EDC73A95441923EEB3FDFEF504198F3121576A95441607F8C2ADFEF5041BB8E3B1E76A954410AD7A320DFEF5041713D0A5776A95441CDCCCC3CDEEF5041F6285C9F76A9544185BDBF0BDEEF50415F99259976A95441BC1852F4DDEF5041A00430A376A95441E6F2B8A8DCEF50410F200B9077A9544181D7DDBBDBEF50411731281E78A95441242B09F3DAEF5041EF3F7D6E78A95441CDCCCC7CDAEF5041333333D378A95441AB240D3DDAEF5041843788F678A95441DD9CC8B2D9EF50410854C16979A9544119884CF5D8EF50417F80B9E47AA95441AF5974ECD8EF5041202377F37AA95441CDCCCCCCD8EF5041B81E858B7BA954416DBF7676D8EF504119CE1DB87BA9544111772F67D8EF5041EE9B94D17BA954410DC12859D7EF50418795E16B7CA95441A9729B0BD7EF504186CAECFE7CA95441744D37ECD6EF504188D6A9DA7DA954419D2CB797D6EF504188D6A9DA7DA95441CDCCCC8CD6EF5041F6285CEF7DA9544193FF7CE6D5EF504188D6A9DA7DA95441CEE745C0D4EF504188D6A9DA7DA9544148E17AD4D3EF5041F6285CEF7DA95441AE10116AD3EF504188D6A9DA7DA95441E8DCCA38D3EF504188D6A9DA7DA95441B265B303D3EF5041E009C1C67DA954410AD7A360D2EF5041713D0AA77DA9544185EB5188D1EF5041333333537DA95441BD6AD4F5D0EF504169D98DCF7CA95441B989DA42D0EF5041F6ACB15F7CA95441FADC2C51CFEF5041F18B10057CA95441D6B4D6C6CEEF5041897CF9D27BA95441454CC539CEEF5041B2B0108F7CA95441E6522469CEEF504153B76FBE7CA95441E6522469CEEF504199E96D967DA95441CDCCCC7CCEEF5041F6285CBF7DA95441DF37658ACEEF5041500CD4707EA95441096141F7CEEF50415FFC42267FA95441EF067791CEEF5041F377FBAD7FA95441B5061A3BCEEF5041EB6D674680A954416DF095BACDEF5041039DCB5981A954410AD7A350CDEF5041B81E85DB82A9544185EB5148CCEF5041713D0A9784A95441536F096FCCEF504173A1029885A9544118264EADCCEF50419BE8537C86A9544148E17A14CDEF5041F6285C8F86A95441CE9180B5CEEF50415E85A2B285A954414A6EFF55CFEF50414BAB231285A95441B989DA42D0EF50417D96A75484A954414EA2B52FD1EF504112AF824185A95441F7B931EDD1EF504153BC40A085A95441EFA8145FD1EF5041FCD3BC5D86A95441F987C808D1EF50417C86C6A286A9544185EB51C8D0EF5041B81E85FB86A9544107CABA6DD0EF50415EA9B71F87A9544111725E85CFEF50415401140888A95441C8B87B6FCFEF504133D229B788A954416ECDDA83CFEF504125A2E06B89A9544172F8C397CFEF50415872811C8AA95441080B1DDFCFEF504168F5FBC28AA954416401DBF4CFEF5041E166C5CA8AA954415E40AA17D0EF50416BF43CD78AA95441889E5600D1EF5041425A04FE8AA954411AC84E7BD2EF5041FE5D632D8BA95441CC5A2426D3EF5041B1CCB8718BA9544185EB5138D3EF5041F6285C6F8BA95441CA0B3F56D3EF504152ADF6848BA9544163E62968D3EF50413F6B218C8BA9544182D88C42D4EF5041572F7CE38BA95441967BF165D4EF5041544B18C78BA9544145C0D574D4EF5041355326BB8BA95441B693D1AFD4EF50417F92AC628BA9544115DA8CB2D4EF50410BEDA25D8BA95441D5B9EFB4D4EF504163503C598BA95441C7138112D5EF50419A4288408AA95441C7138112D5EF5041732107008AA9544148E17AF4D4EF5041713D0A1789A95441610BBA72D6EF50415713CB9887A95441F943D8BCD6EF504129E2D9EB86A954414362B3A9D7EF5041E5E5381B87A9544178B89809D9EF50417A3C3CEF86A9544152550E92D9EF5041D2F73B6C86A95441E4ADE540DAEF504153BC40A085A954411077CDDEDAEF50415DD54C5185A95441E7C4AB0DDBEF5041AC01202D85A954410072C02EDBEF5041A670040185A9544185EB5178DBEF50413333334384A9544185EB5118DBEF5041713D0A1783A954411ACD1F5DDBEF5041B93EEC5582A954411ACD1F5DDBEF5041A14ED4EC81A9544181D7DDBBDBEF5041F936582F81A954416D328366DCEF5041E8A794BD80A9544148E17AA4DCEF5041713D0A7780A95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>463568 - 1022765
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B0000005C8FC2E5ADF350417B14AE073AA35441295C8FC2AAF35041A4703D1A25A3544114AE47C1A2F350413333335327A35441C3F5289CA8F350417B14AEE74FA35441D7A3709DA6F3504148E17A1450A35441333333C3A6F35041295C8F1251A3544166666696ADF35041713D0A977EA3544114AE47F1B7F35041CDCCCC0C7DA3544148E17A04AFF35041295C8F8241A3544166666646AEF35041B81E858B3CA354415C8FC2E5ADF350417B14AE073AA35441
+</a>
+
+<b>
+010600000001000000010300000001000000180000006A970705AFF3504127113A8641A35441886A5A7FAFF350416776FC6F41A35441E8025669C0F350419276DA263FA35441DE829EFBC0F3504125909F7E3FA35441ACE81836C9F35041B425DD4377A35441BB4A40B6C9F35041E7E9BC677AA35441A4703DEAC9F35041000000607AA35441A4703DAAE5F35041EC51B83E76A35441AE47E16AEAF350418FC2F58875A3544100000070E7F35041666666A661A35441C3F5289CE4F35041A4703DCA4EA35441666666A6E0F35041E17A145E34A35441EC51B88EDFF350415C8FC2152DA35441B480A35BDFF35041BA08B4BF2BA35441542344B4CAF350413A49054A2EA35441284ABBEFCBF3504111B8F5DD36A354417771DA33C1F350412C57246438A3544189C1E974C0F3504118E0FF0832A354419003025CC0F35041C47A88CD30A354419155F194B9F35041B32A798C31A3544160D1C0C6B9F350415B8D25E932A354412657BC1AADF35041C8D27BBD34A3544148E17A04AFF35041295C8F8241A354416A970705AFF3504127113A8641A35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>463568 - 3384606
+abs( area(A) - difference(A,B) - intersection(A,B) ) = -2 </desc>
+<a>
+0106000000010000000103000000010000000B0000005C8FC2E5ADF350417B14AE073AA35441295C8FC2AAF35041A4703D1A25A3544114AE47C1A2F350413333335327A35441C3F5289CA8F350417B14AEE74FA35441D7A3709DA6F3504148E17A1450A35441333333C3A6F35041295C8F1251A3544166666696ADF35041713D0A977EA3544114AE47F1B7F35041CDCCCC0C7DA3544148E17A04AFF35041295C8F8241A3544166666646AEF35041B81E858B3CA354415C8FC2E5ADF350417B14AE073AA35441
+</a>
+
+<b>
+010600000001000000010300000001000000180000006A970705AFF3504127113A8641A35441886A5A7FAFF350416776FC6F41A35441E8025669C0F350419276DA263FA35441DE829EFBC0F3504125909F7E3FA35441ACE81836C9F35041B425DD4377A35441BB4A40B6C9F35041E7E9BC677AA35441A4703DEAC9F35041000000607AA35441A4703DAAE5F35041EC51B83E76A35441AE47E16AEAF350418FC2F58875A3544100000070E7F35041666666A661A35441C3F5289CE4F35041A4703DCA4EA35441666666A6E0F35041E17A145E34A35441EC51B88EDFF350415C8FC2152DA35441B480A35BDFF35041BA08B4BF2BA35441542344B4CAF350413A49054A2EA35441284ABBEFCBF3504111B8F5DD36A354417771DA33C1F350412C57246438A3544189C1E974C0F3504118E0FF0832A354419003025CC0F35041C47A88CD30A354419155F194B9F35041B32A798C31A3544160D1C0C6B9F350415B8D25E932A354412657BC1AADF35041C8D27BBD34A3544148E17A04AFF35041295C8F8241A354416A970705AFF3504127113A8641A35441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>463640 - 243750
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000070000000103000000010000000800000048E17A4439F05041713D0A27BBA95441C3F5284C34F05041713D0A67BAA9544148E17AD430F0504133333383BFA9544148E17A0434F05041B81E859BC5A95441A4703D1A35F05041E17A148EC4A954410AD7A3003BF05041B81E858BBDA954410AD7A3D03AF05041F6285CCFBBA9544148E17A4439F05041713D0A27BBA954410103000000020000002D000000B81E855B39F050419A9999B9B9A95441D7A3703D3BF05041B81E857BBAA95441D7A3706D3EF05041F6285CCFB7A954418FC2F5183FF050411F85EB01B6A954417B14AE2741F050410AD7A300B4A95441AE47E18A42F05041CDCCCC7CB3A9544148E17A144BF05041333333A3A8A9544148E17AD44CF05041333333C3A7A95441295C8F9255F05041CDCCCC8C9CA954411F85EB6156F0504148E17A7499A95441A4703D8A56F050417B14AED797A95441E17A14FE55F050413D0AD74391A9544148E17A2455F0504152B81E1589A954410000001055F050418FC2F54886A954417B14AE6755F050419A99994984A95441E17A14CE55F05041E17A14AE82A954413333330357F05041F6285C9F80A95441713D0A4756F050419A99992981A95441333333D353F05041B81E850B85A954410AD7A32052F050419A99998986A9544152B81E5549F05041295C8FC28CA9544114AE47113EF05041B81E85FB92A954413D0AD7E335F05041AE47E13A98A954410AD7A36031F050411F85EB019CA954419A9999192FF05041EC51B81E9FA954415C8FC2052EF0504114AE47D1A0A9544152B81EE52EF05041333333F3A1A95441000000202EF050419A999949A3A954418FC2F5382CF05041F6285C2FA3A95441666666862AF05041E17A143EA5A9544152B81ED52AF05041F6285C5FA6A954418FC2F5382CF05041D7A3701DA6A95441C3F528BC2CF050411F85EB11A8A954417B14AE5729F050418FC2F5D8AAA9544185EB510829F050411F85EBF1A8A9544148E17A7428F0504148E17A34A8A954418FC2F5F826F05041A4703D3AAAA9544114AE479125F0504166666626ACA95441CDCCCC3C24F050417B14AEF7ADA95441F6285C4F22F05041A4703D9AB0A954413D0AD7F323F050415C8FC2B5B2A9544114AE47A129F05041D7A3705DB6A95441666666062DF05041A4703DFAB7A954411F85EBF12FF05041000000B0B8A95441B81E855B39F050419A9999B9B9A95441150000006666668633F050419A999939B1A954411F85EB5133F050415C8FC295B1A95441AE47E1BA33F0504185EB5148B3A95441B81E85DB32F05041F6285C2FB5A95441D7A3708D34F05041A4703D9AB7A9544185EB51E832F050415C8FC245B8A95441C3F528AC31F05041666666F6B7A95441B81E85FB31F05041D7A370CDB5A954415C8FC25530F05041CDCCCC1CB6A954418FC2F5682FF05041713D0A57B5A95441000000202EF05041EC51B89EB4A954417B14AE672DF05041B81E853BB3A954410AD7A3D02DF0504133333383B2A954415C8FC2452CF05041F6285CFFB1A95441D7A3708D2BF050418FC2F5A8B0A95441CDCCCCDC2BF050417B14AEA7AEA95441CDCCCC2C2EF050418FC2F5E8AEA9544114AE47412FF050417B14AEC7ADA95441C3F5288C32F05041EC51B8CEAEA95441B81E85DB32F0504185EB5118B0A954416666668633F050419A999939B1A9544101030000000100000039000000C3F5285CFDEF5041F6285CCFD0A9544148E17A94FEEF5041F6285CFFD0A95441C3F5281C01F05041F6285CCFD0A9544185EB513803F05041333333A3D2A954417B14AEB70DF05041F6285C0FD5A95441E17A142E11F05041A4703DDACDA95441295C8FE214F05041D7A370EDC2A954418FC2F54818F05041CDCCCCDCBBA954418FC2F57819F05041C3F5281CBAA95441CDCCCCAC1AF050415C8FC255B8A9544148E17A341CF050415C8FC275B6A95441666666361FF0504148E17AC4B2A9544148E17AA420F0504114AE4721B1A954419A99994921F0504148E17A64B0A954419A9999A920F05041000000B0AEA95441A4703D5A1FF05041C3F5280CABA954413D0AD7B31DF0504152B81E75A6A95441295C8F3219F05041F6285C5F94A95441C3F5281C18F050419A99993991A954410AD7A3D016F05041F6285CCF8BA954410AD7A35015F05041F6285CCF8BA954410AD7A3D010F05041713D0AE797A9544148E17A240EF05041B81E85CB9EA9544185EB51C80CF05041B81E856BA1A9544148E17AC40AF05041333333B3A4A95441C3F528EC06F05041F6285C7FA8A9544148E17A8402F05041B81E85DBACA954410AD7A32003F05041713D0A37AEA954410AD7A3D001F05041713D0A87AFA9544185EB516800F0504133333323B0A954417B14AEF7FEEF5041F6285CFFAFA9544185EB51F8FCEF50415C8FC2F5B1A954417B14AEF7FAEF5041CDCCCCECB3A95441C3F5285CF7EF5041713D0A27B8A9544185EB5198F4EF5041F6285C0FBBA9544148E17A54F0EF504133333363BEA954410AD7A3D0ECEF5041B81E85BBC0A954410AD7A3B0E8EF5041B81E855BC3A954410AD7A3D0E3EF5041713D0AF7C6A9544148E17AC4E0EF5041713D0A37C9A95441E17A145EDEEF504185EB51A8CAA9544148E17A54E0EF5041C3F5283CCDA954410AD7A370E0EF5041713D0A97CCA95441C3F5283CE1EF5041F6285CEFCBA95441C3F5286CE1EF5041B81E85EBC9A954410AD7A3B0E2EF5041713D0A77C8A95441C3F528DCE3EF5041B81E85DBC7A954410AD7A360E4EF5041F6285CCFC7A95441C3F528FCE4EF5041713D0A77C8A9544148E17A74E8EF5041B81E85BBC9A954410AD7A310E9EF5041B81E859BCBA9544185EB51B8E9EF5041F6285C1FCCA9544114AE4711E9EF50417B14AEB7CCA95441A4703D7AEDEF504114AE4761CDA9544185EB5148F9EF5041713D0A27D0A9544185EB5198FAEF5041713D0A97CFA95441C3F5285CFDEF5041F6285CCFD0A954410103000000010000002400000014AE476152F05041C3F5282CC3A95441B81E851B55F05041713D0AE7C0A9544148E17AC456F05041D7A3705DBFA9544114AE47F157F05041295C8FD2BDA954413D0AD7E353F0504114AE4721BCA95441F6285CCF4AF05041F6285CDFBCA954410AD7A3B048F0504133333373BDA95441CDCCCC8C48F05041713D0A77BCA954417B14AE974AF0504100000010BCA95441CDCCCC0C4EF05041F6285C7FBAA9544185EB511850F05041F6285C4FB7A9544148E17A744EF05041333333F3B5A9544148E17A4451F05041AE47E11AB2A9544148E17AB456F05041713D0AF7AEA9544148E17A1460F05041AE47E18AABA95441EC51B82E65F0504152B81EC5A6A954413D0AD72368F050410AD7A340A4A9544148E17AD46FF05041713D0AB79AA954418FC2F5086DF050419A9999D998A954410AD7A38066F05041F6285C6F9DA954417B14AEE75DF050410AD7A320A2A95441713D0A074DF05041666666D6A9A954413333336342F050413D0AD793B6A95441F6285C9F3CF05041AE47E19ABDA95441E17A14DE3BF05041E17A148EBEA954410000000031F05041F6285C1FCCA954410AD7A33033F05041EC51B86ECBA95441E17A14BE35F050417B14AEE7CAA95441CDCCCC0C38F05041F6285C6FCAA9544185EB51683CF05041AE47E15AC6A954410AD7A3D043F0504133333303C4A95441AE47E13A47F050413D0AD7A3C7A95441713D0A174AF05041666666D6C6A9544185EB51E84DF05041666666E6C4A954410AD7A3D051F050417B14AEB7C2A9544114AE476152F05041C3F5282CC3A9544101030000000100000067000000CDCCCC6CE1EF5041F6285C7FE4A95441CDCCCCFCE4EF5041F6285CBFE6A9544185EB5108E5EF5041AE47E10AE9A9544148E17A84E7EF504133333333EBA954410AD7A3E0E8EF5041AE47E1EAEDA954410AD7A3B0E8EF5041AE47E11AEEA954410AD7A310E6EF5041AE47E11AEEA954410AD7A310E6EF5041F6285CCFEEA9544185EB51C8E2EF5041333333D3F0A9544152B81EC5D7EF5041666666A6EBA95441713D0AB7D6EF504114AE47A1EDA9544114AE47C1D5EF50411F85EB31EFA9544148E17A84DBEF5041713D0A47F2A954410AD7A340DDEF5041AE47E17AF1A9544148E17A54E1EF5041F6285CDFF3A954417B14AE07E1EF504166666606F5A954410AD7A360E1EF504133333353F8A954410AD7A380DFEF5041F6285C7FF9A9544148E17A84DBEF5041F6285C9FF7A95441CDCCCC2CD9EF504133333363FAA95441CDCCCC0CD2EF5041F6285C6FF7A9544148E17A84D2EF5041713D0A57FAA95441CDCCCCCCD5EF5041F6285C5F01AA544148E17A84D6EF50418FC2F57805AA544148E17AE4D6EF50415C8FC2D509AA54410AD7A350D7EF504114AE47110DAA5441000000F0D8EF50419A9999E90AAA5441A4703DAADCEF504148E17AA408AA54415C8FC275DFEF5041000000F006AA5441295C8F02E6EF5041C3F5289C01AA544152B81EE5E7EF5041CDCCCCECFFA95441D7A3707DEAEF5041A4703D9AFDA954417B14AE17EDEF504133333343FBA9544185EB51A8EDEF5041F6285C6FFAA95441CDCCCCBCE2EF5041F6285C9FF4A9544148E17AE4E1EF5041F6285CEFF2A954410AD7A3A0E3EF5041713D0A87F1A95441CDCCCCDCEFEF5041713D0A27F7A9544148E17AA4F0EF5041295C8F32F6A954417B14AEE7F1EF504148E17A64F4A95441AE47E12AF3EF5041713D0A97F2A95441B81E852BF4EF50418FC2F528F1A954417B14AE97F5EF50415C8FC2C5EFA954411F85EB01F7EF50413D0AD763EEA954413D0AD773F9EF50410AD7A300ECA954418FC2F538FBEF5041C3F528BCEAA954417B14AEE7FCEF50418FC2F588E9A95441D7A3706DFEEF50411F85EB71E8A954413D0AD7F3FFEF5041AE47E15AE7A9544185EB514801F050417B14AE67E6A95441AE47E19A02F050415C8FC275E5A95441CDCCCCBC03F05041666666A6E4A95441E17A143E05F05041A4703D9AE3A95441F6285C2F06F05041E17A144EE2A95441B81E858B07F05041E17A146EE0A954410AD7A3F008F05041AE47E1BADEA95441000000F00AF05041333333C3DBA9544148E17A040DF0504133333353D7A9544148E17A24FCEF5041AE47E11AD3A954413D0AD753F9EF5041A4703D3AD2A95441CDCCCCCCF3EF5041AE47E1AAD0A954410AD7A3B0EEEF5041333333D3CFA9544148E17AA4EEEF5041713D0A37CFA954410AD7A310ECEF5041713D0A37CFA954410AD7A310E6EF5041333333D3D2A954411F85EB41E3EF5041EC51B85ED6A9544148E17A24EAEF5041713D0A77DAA95441E17A14AEF0EF50419A999989DDA954419A999969F1EF504133333333DCA9544148E17AB4F3EF5041F6285CFFD9A9544185EB51D8F0EF504133333393D6A9544185EB5128F2EF5041713D0A67D5A9544148E17A74F4EF5041F6285C0FD6A9544148E17AD4F4EF5041713D0A37D5A9544185EB51E8F2EF5041AE47E16AD4A95441713D0A97F3EF5041295C8F52D3A95441CDCCCCDCF5EF5041AE47E18AD2A9544185EB510800F05041F6285CBFD7A954416666668602F05041295C8F02DBA9544185EB5188FEEF504133333393DCA954410AD7A380FDEF5041713D0AC7DBA9544148E17AF4FBEF5041F6285CCFDCA95441CDCCCC4CFDEF50415C8FC255DFA954410AD7A3D0F8EF5041F6285C6FE5A954410AD7A360F6EF504166666636E4A9544185EB5138F1EF504133333373E7A95441CDCCCC4CEFEF5041F6285CCFE5A9544185EB5148F0EF5041F6285CEFE3A9544148E17AD4EEEF5041713D0A27E2A9544148E17AB4EAEF5041713D0A17E3A95441CDCCCC6CE7EF5041F6285C5FE3A95441CDCCCCFCE4EF5041F6285C4FE1A95441CDCCCC0CE7EF5041AE47E15ADEA9544148E17AB4E4EF5041713D0A57DCA9544185EB51B8E3EF5041713D0A87D9A95441713D0A97E1EF50419A999949D9A954413D0AD7B3E0EF5041666666D6DAA95441333333F3DFEF504166666626DCA95441A4703D0ADFEF5041D7A370BDDDA95441D7A3701DDEEF5041AE47E15ADFA95441CDCCCC0CDEEF5041713D0A77E0A9544185EB5158E0EF5041713D0AC7E1A95441CDCCCC6CE1EF5041F6285C7FE4A95441010300000001000000390000003333330308F05041E17A146EF6A954415C8FC2850BF05041E17A14CEF3A9544152B81E850FF0504148E17AD4F0A9544185EB51F812F05041713D0A37EDA954413333335319F050419A9999D9E6A9544152B81EA519F050410AD7A370E6A954411F85EB511FF050419A999949DFA954419A99994921F0504148E17A54E1A9544148E17A0422F05041713D0A37DEA9544185EB518822F05041713D0AC7DBA9544148E17AD421F0504133333313D8A95441AE47E12A25F05041CDCCCCECD4A95441713D0AC725F05041666666D6D1A9544148E17A6426F050419A9999B9CEA95441713D0AF728F05041000000F0CEA95441B81E859B29F050410AD7A3C0C9A95441C3F5285C2AF05041713D0AC7C6A9544148E17AE426F05041F6285CAFC6A9544148E17A2426F05041B81E856BC5A954418FC2F5682BF05041666666D6C3A95441AE47E1BA2BF050419A999959C3A95441713D0A272DF05041D7A3702DC1A95441EC51B8FE2DF050410AD7A340C0A95441C3F5282C33F0504133333343BAA95441C3F528BC2DF05041F6285C8FB9A9544148E17A042BF05041B81E85ABB8A954410AD7A30026F05041713D0AE7B5A954415C8FC22525F05041B81E851BB5A95441713D0AE720F0504148E17A54B5A954410AD7A3D01FF05041F6285C2FB6A954410AD7A3E018F05041B81E85DBC4A9544148E17A6416F05041713D0AF7C9A9544148E17AF413F05041713D0A17D1A95441C3F5285C12F05041F6285CEFD4A9544148E17A140FF05041713D0A17DAA954410AD7A3200CF05041F6285C0FDFA9544148E17A6407F05041713D0AC7E4A954410AD7A3B006F05041F6285C4FE4A9544148E17A4409F05041F6285CAFE1A9544148E17AC40AF05041713D0AB7DFA9544148E17A540EF0504133333323DAA9544148E17A340DF05041F6285C9FD9A9544185EB51D80BF05041295C8F62DCA954419A99990906F05041A4703D5AE4A954413D0AD723FAEF504152B81ED5ECA95441C3F5283CF9EF5041333333A3EDA9544185EB5178F9EF5041F6285CCFEEA95441C3F5283CF6EF5041713D0AE7F1A954413D0AD703F5EF5041713D0AC7F1A95441C3F5286CF3EF504133333303F4A954410AD7A350F4EF5041B81E850BF5A95441C3F5284CF2EF5041713D0A57FAA95441C3F5281CF2EF5041713D0AA7FBA954415C8FC285F9EF5041000000A002AA5441295C8F42FDEF504133333353FFA95441A4703D5A03F05041E17A14EEF9A954413333330308F05041E17A146EF6A9544101030000000100000015000000713D0A97D8EF5041B81E858B0CAA5441E17A143ED9EF504148E17A0414AA5441713D0A77DCEF5041000000601AAA5441C3F5281CE0EF5041F6285CDF20AA544185EB5188E6EF5041F6285CBF1CAA5441C3F5282CE5EF5041F6285CCF1BAA544185EB51C8E2EF5041F6285CCF1BAA54410AD7A310E3EF5041B81E855B1AAA54410AD7A390E4EF5041713D0A071AAA544185EB5158E6EF5041333333D31AAA5441C3F528FCE7EF5041F6285C9F18AA544185EB51B8E9EF50413333334317AA5441C3F5287CE6EF5041B81E85FB13AA544148E17A84E3EF504185EB517810AA544185EB5128E9EF5041F6285CEF07AA5441C3F5287CE6EF50413333338304AA54410AD7A360E1EF5041713D0A770AAA544148E17A14DFEF5041B81E859B0AAA544148E17AC4DDEF50413333330309AA5441F6285CDFDAEF504148E17AA40AAA5441713D0A97D8EF5041B81E858B0CAA5441
+</a>
+
+<b>
+0106000000010000000103000000010000007200000085EB51B8E9EF5041F6285C1FCCA95441561519B5E9EF5041564F4C22CCA95441E91E40BFE9EF5041116CC140CCA95441F88C405FEDEF5041C991D0FFCCA95441EE45A9B2F9EF5041B21677F9CFA9544185EB5198FAEF5041713D0A97CFA9544117FD49A8FAEF50416204169ECFA95441BA3351CEFAEF504188EEDF8ECFA9544191938DFAFBEF504125775817D0A95441EDA3721AFDEF504157A75DB2D0A95441C3F5285CFDEF5041F6285CCFD0A9544148E17A94FEEF5041F6285CFFD0A95441BD66A7A7FFEF50411D78F7EAD0A954413E8A062300F05041DD9C67D6D0A954418D9BF73301F05041554E1CBBD0A95441DDACE84402F0504195C27695D1A9544122BED95503F050415C851C8BD2A95441426E719C0CF0504179F649C8D4A954417E6AF09F0EF05041EC5FE42BD3A954410AC9A00C0FF050412C7DA549D2A95441EE64EAC410F0504108062BDACDA954411E3CAE6811F0504169E348B8CBA95441EE64EAC410F050416CAC48E8C9A95441797C35100FF050415C0FB2B1C9A9544182E2CB760DF05041F4FA9303CAA95441FD5C808B0BF05041D4C06696C9A95441B6B125E108F05041C423D05FC9A95441A9DD8EDA06F050416CAC48E8C9A954419109F8D304F0504104982A3ACAA95441FDE615B202F0504104982A3ACAA95441F5AF15E200F0504180B7DFBECDA95441662ACAF6FEEF5041905476F5CDA9544169F3C926FDEF5041C991D0FFCCA9544169F3C926FDEF5041116CC140CCA95441A1302431FCEF5041F4FA9303CAA954419AF92361FAEF50416CAC48E8C9A9544125116FACF8EF5041C423D05FC9A95441E59C14D2F7EF50414C721B7BC9A95441B98E505EF5EF5041F4FA9303CAA95441D1917DFBF3EF5041F4FA9303CAA95441EA94AA98F2EF5041F4FA9303CAA95441CA5A7D2BF2EF5041954C0CBCC8A954412DD204A3F1EF50413001EE3DC7A9544195E62251F1EF5041D05266F6C5A954411D356E6CF1EF504128CAED6DC5A95441326F9BD9F1EF5041516AB141C4A9544152A9C846F2EF5041A9E138B9C3A9544181808CEAF2EF50410159C030C3A95441C1F4E6C4F3EF5041CCE46556C2A95441697D5F4DF4EF504114BF5697C1A954416117C9E6F5EF50415C9947D8C0A954417D88F623F8EF50412CC28334C0A9544185BFF6F3F9EF504185390BACBFA9544181F6F6C3FBEF50411C25EDFDBFA9544131B66F1CFEEF5041FDEABF90BFA95441F5AF15E200F0504165FFDD3EBFA954410D84ACE802F0504145C5B0D1BEA95441CA4652DE03F05041A83C3849BEA954413992705C05F0504140281A9BBEA95441C917BC4707F0504120EEEC2DBEA954419DAEF8430AF0504100B4BFC0BDA954419AE5F8130CF05041F016298ABDA9544162A89E090DF05041D0DCFB1CBDA95441AEF08FEA0FF0504118B7EC5DBCA95441A68AF98311F05041B0A2CEAFBCA954410270819B14F05041488EB001BDA95441E106BE9717F05041B0A2CEAFBCA95441992CCD5618F050414157B031BBA95441B143254105F05041645ADDCEB9A95441F5AF15E200F05041A96BCEDFBAA95441A1302431FCEF5041E8DF28BABBA9544125116FACF8EF5041786574A5BDA954410BEF9758F0EF5041DC9EFD5FBEA9544148E17A54F0EF504133333363BEA95441083C7CC9EFEF5041E2D5EDBFBEA95441D58913C2EEEF50410C8856C7BFA9544176DB8B7AEDEF50413C5F1A6BC0A95441861FE217EDEF5041E29DFD8BC0A954410AD7A3D0ECEF5041B81E85BBC0A95441F307A397EBEF5041242EB482C1A95441596A5E3DEBEF5041245CEDCDC1A9544190BFC979EAEF5041C08A9B38C2A954410AD7A3B0E8EF5041B81E855BC3A95441C628331FE4EF50411EDDE7BCC6A95441518E5DFDE3EF504120645707C7A954417B1957CFE3EF5041D9E7FFF7C6A9544148E17AC4E0EF5041713D0A37C9A9544177113B69DFEF5041AE53C007CAA95441FD0E6C4CDFEF504104982A3ACAA954419FBC73E3DEEF504168662858CAA9544145A18C9BDEEF504194D65F83CAA95441C4D11142E0EF504131A6EEADCCA954418194B737E1EF50417980DFEECBA95441A9F2EE3CE1EF50413E730CE7CBA954417248A149E1EF5041AF2E9A5ECBA9544186C09961E1EF50414E98FF5CCAA9544109E30253E1EF50416CAC48E8C9A9544191314E6EE1EF5041D4C06696C9A95441B16B7BDBE1EF50412C38EE0DC9A95441D1A5A848E2EF504185AF7585C8A9544131543090E3EF504155D8B1E1C7A95441D9DCA818E4EF5041BDECCF8FC7A95441806521A1E4EF5041DD26FDFCC7A95441153F8005E5EF5041D7B6737AC8A954415E07727BE7EF504117E08D60C9A954416599F4D3E7EF50414C721B7BC9A95441248F3A2FE8EF5041E76D39A2C9A9544148E17A74E8EF5041B81E85BBC9A95441081B2376E8EF504192179DC0C9A954411DBF0393E8EF5041E45DFDCCC9A95441C4477C1BE9EF504154A91B4BCBA9544162D0F4A3E9EF50417980DFEECBA954411F5CA0B2E9EF5041B123E21ACCA9544185EB51B8E9EF5041F6285C1FCCA95441
+</b>
+<test><op name="intersection" arg1='A' arg2='B'>GEOMETRYCOLLECTION EMPTY</op></test>
+</case>
+
+
+ <case><desc>463640 - 340557
+abs( area(A) - difference(A,B) - intersection(A,B) ) = 5 </desc>
+<a>
+0106000000070000000103000000010000000800000048E17A4439F05041713D0A27BBA95441C3F5284C34F05041713D0A67BAA9544148E17AD430F0504133333383BFA9544148E17A0434F05041B81E859BC5A95441A4703D1A35F05041E17A148EC4A954410AD7A3003BF05041B81E858BBDA954410AD7A3D03AF05041F6285CCFBBA9544148E17A4439F05041713D0A27BBA954410103000000020000002D000000B81E855B39F050419A9999B9B9A95441D7A3703D3BF05041B81E857BBAA95441D7A3706D3EF05041F6285CCFB7A954418FC2F5183FF050411F85EB01B6A954417B14AE2741F050410AD7A300B4A95441AE47E18A42F05041CDCCCC7CB3A9544148E17A144BF05041333333A3A8A9544148E17AD44CF05041333333C3A7A95441295C8F9255F05041CDCCCC8C9CA954411F85EB6156F0504148E17A7499A95441A4703D8A56F050417B14AED797A95441E17A14FE55F050413D0AD74391A9544148E17A2455F0504152B81E1589A954410000001055F050418FC2F54886A954417B14AE6755F050419A99994984A95441E17A14CE55F05041E17A14AE82A954413333330357F05041F6285C9F80A95441713D0A4756F050419A99992981A95441333333D353F05041B81E850B85A954410AD7A32052F050419A99998986A9544152B81E5549F05041295C8FC28CA9544114AE47113EF05041B81E85FB92A954413D0AD7E335F05041AE47E13A98A954410AD7A36031F050411F85EB019CA954419A9999192FF05041EC51B81E9FA954415C8FC2052EF0504114AE47D1A0A9544152B81EE52EF05041333333F3A1A95441000000202EF050419A999949A3A954418FC2F5382CF05041F6285C2FA3A95441666666862AF05041E17A143EA5A9544152B81ED52AF05041F6285C5FA6A954418FC2F5382CF05041D7A3701DA6A95441C3F528BC2CF050411F85EB11A8A954417B14AE5729F050418FC2F5D8AAA9544185EB510829F050411F85EBF1A8A9544148E17A7428F0504148E17A34A8A954418FC2F5F826F05041A4703D3AAAA9544114AE479125F0504166666626ACA95441CDCCCC3C24F050417B14AEF7ADA95441F6285C4F22F05041A4703D9AB0A954413D0AD7F323F050415C8FC2B5B2A9544114AE47A129F05041D7A3705DB6A95441666666062DF05041A4703DFAB7A954411F85EBF12FF05041000000B0B8A95441B81E855B39F050419A9999B9B9A95441150000006666668633F050419A999939B1A954411F85EB5133F050415C8FC295B1A95441AE47E1BA33F0504185EB5148B3A95441B81E85DB32F05041F6285C2FB5A95441D7A3708D34F05041A4703D9AB7A9544185EB51E832F050415C8FC245B8A95441C3F528AC31F05041666666F6B7A95441B81E85FB31F05041D7A370CDB5A954415C8FC25530F05041CDCCCC1CB6A954418FC2F5682FF05041713D0A57B5A95441000000202EF05041EC51B89EB4A954417B14AE672DF05041B81E853BB3A954410AD7A3D02DF0504133333383B2A954415C8FC2452CF05041F6285CFFB1A95441D7A3708D2BF050418FC2F5A8B0A95441CDCCCCDC2BF050417B14AEA7AEA95441CDCCCC2C2EF050418FC2F5E8AEA9544114AE47412FF050417B14AEC7ADA95441C3F5288C32F05041EC51B8CEAEA95441B81E85DB32F0504185EB5118B0A954416666668633F050419A999939B1A9544101030000000100000039000000C3F5285CFDEF5041F6285CCFD0A9544148E17A94FEEF5041F6285CFFD0A95441C3F5281C01F05041F6285CCFD0A9544185EB513803F05041333333A3D2A954417B14AEB70DF05041F6285C0FD5A95441E17A142E11F05041A4703DDACDA95441295C8FE214F05041D7A370EDC2A954418FC2F54818F05041CDCCCCDCBBA954418FC2F57819F05041C3F5281CBAA95441CDCCCCAC1AF050415C8FC255B8A9544148E17A341CF050415C8FC275B6A95441666666361FF0504148E17AC4B2A9544148E17AA420F0504114AE4721B1A954419A99994921F0504148E17A64B0A954419A9999A920F05041000000B0AEA95441A4703D5A1FF05041C3F5280CABA954413D0AD7B31DF0504152B81E75A6A95441295C8F3219F05041F6285C5F94A95441C3F5281C18F050419A99993991A954410AD7A3D016F05041F6285CCF8BA954410AD7A35015F05041F6285CCF8BA954410AD7A3D010F05041713D0AE797A9544148E17A240EF05041B81E85CB9EA9544185EB51C80CF05041B81E856BA1A9544148E17AC40AF05041333333B3A4A95441C3F528EC06F05041F6285C7FA8A9544148E17A8402F05041B81E85DBACA954410AD7A32003F05041713D0A37AEA954410AD7A3D001F05041713D0A87AFA9544185EB516800F0504133333323B0A954417B14AEF7FEEF5041F6285CFFAFA9544185EB51F8FCEF50415C8FC2F5B1A954417B14AEF7FAEF5041CDCCCCECB3A95441C3F5285CF7EF5041713D0A27B8A9544185EB5198F4EF5041F6285C0FBBA9544148E17A54F0EF504133333363BEA954410AD7A3D0ECEF5041B81E85BBC0A954410AD7A3B0E8EF5041B81E855BC3A954410AD7A3D0E3EF5041713D0AF7C6A9544148E17AC4E0EF5041713D0A37C9A95441E17A145EDEEF504185EB51A8CAA9544148E17A54E0EF5041C3F5283CCDA954410AD7A370E0EF5041713D0A97CCA95441C3F5283CE1EF5041F6285CEFCBA95441C3F5286CE1EF5041B81E85EBC9A954410AD7A3B0E2EF5041713D0A77C8A95441C3F528DCE3EF5041B81E85DBC7A954410AD7A360E4EF5041F6285CCFC7A95441C3F528FCE4EF5041713D0A77C8A9544148E17A74E8EF5041B81E85BBC9A954410AD7A310E9EF5041B81E859BCBA9544185EB51B8E9EF5041F6285C1FCCA9544114AE4711E9EF50417B14AEB7CCA95441A4703D7AEDEF504114AE4761CDA9544185EB5148F9EF5041713D0A27D0A9544185EB5198FAEF5041713D0A97CFA95441C3F5285CFDEF5041F6285CCFD0A954410103000000010000002400000014AE476152F05041C3F5282CC3A95441B81E851B55F05041713D0AE7C0A9544148E17AC456F05041D7A3705DBFA9544114AE47F157F05041295C8FD2BDA954413D0AD7E353F0504114AE4721BCA95441F6285CCF4AF05041F6285CDFBCA954410AD7A3B048F0504133333373BDA95441CDCCCC8C48F05041713D0A77BCA954417B14AE974AF0504100000010BCA95441CDCCCC0C4EF05041F6285C7FBAA9544185EB511850F05041F6285C4FB7A9544148E17A744EF05041333333F3B5A9544148E17A4451F05041AE47E11AB2A9544148E17AB456F05041713D0AF7AEA9544148E17A1460F05041AE47E18AABA95441EC51B82E65F0504152B81EC5A6A954413D0AD72368F050410AD7A340A4A9544148E17AD46FF05041713D0AB79AA954418FC2F5086DF050419A9999D998A954410AD7A38066F05041F6285C6F9DA954417B14AEE75DF050410AD7A320A2A95441713D0A074DF05041666666D6A9A954413333336342F050413D0AD793B6A95441F6285C9F3CF05041AE47E19ABDA95441E17A14DE3BF05041E17A148EBEA954410000000031F05041F6285C1FCCA954410AD7A33033F05041EC51B86ECBA95441E17A14BE35F050417B14AEE7CAA95441CDCCCC0C38F05041F6285C6FCAA9544185EB51683CF05041AE47E15AC6A954410AD7A3D043F0504133333303C4A95441AE47E13A47F050413D0AD7A3C7A95441713D0A174AF05041666666D6C6A9544185EB51E84DF05041666666E6C4A954410AD7A3D051F050417B14AEB7C2A9544114AE476152F05041C3F5282CC3A9544101030000000100000067000000CDCCCC6CE1EF5041F6285C7FE4A95441CDCCCCFCE4EF5041F6285CBFE6A9544185EB5108E5EF5041AE47E10AE9A9544148E17A84E7EF504133333333EBA954410AD7A3E0E8EF5041AE47E1EAEDA954410AD7A3B0E8EF5041AE47E11AEEA954410AD7A310E6EF5041AE47E11AEEA954410AD7A310E6EF5041F6285CCFEEA9544185EB51C8E2EF5041333333D3F0A9544152B81EC5D7EF5041666666A6EBA95441713D0AB7D6EF504114AE47A1EDA9544114AE47C1D5EF50411F85EB31EFA9544148E17A84DBEF5041713D0A47F2A954410AD7A340DDEF5041AE47E17AF1A9544148E17A54E1EF5041F6285CDFF3A954417B14AE07E1EF504166666606F5A954410AD7A360E1EF504133333353F8A954410AD7A380DFEF5041F6285C7FF9A9544148E17A84DBEF5041F6285C9FF7A95441CDCCCC2CD9EF504133333363FAA95441CDCCCC0CD2EF5041F6285C6FF7A9544148E17A84D2EF5041713D0A57FAA95441CDCCCCCCD5EF5041F6285C5F01AA544148E17A84D6EF50418FC2F57805AA544148E17AE4D6EF50415C8FC2D509AA54410AD7A350D7EF504114AE47110DAA5441000000F0D8EF50419A9999E90AAA5441A4703DAADCEF504148E17AA408AA54415C8FC275DFEF5041000000F006AA5441295C8F02E6EF5041C3F5289C01AA544152B81EE5E7EF5041CDCCCCECFFA95441D7A3707DEAEF5041A4703D9AFDA954417B14AE17EDEF504133333343FBA9544185EB51A8EDEF5041F6285C6FFAA95441CDCCCCBCE2EF5041F6285C9FF4A9544148E17AE4E1EF5041F6285CEFF2A954410AD7A3A0E3EF5041713D0A87F1A95441CDCCCCDCEFEF5041713D0A27F7A9544148E17AA4F0EF5041295C8F32F6A954417B14AEE7F1EF504148E17A64F4A95441AE47E12AF3EF5041713D0A97F2A95441B81E852BF4EF50418FC2F528F1A954417B14AE97F5EF50415C8FC2C5EFA954411F85EB01F7EF50413D0AD763EEA954413D0AD773F9EF50410AD7A300ECA954418FC2F538FBEF5041C3F528BCEAA954417B14AEE7FCEF50418FC2F588E9A95441D7A3706DFEEF50411F85EB71E8A954413D0AD7F3FFEF5041AE47E15AE7A9544185EB514801F050417B14AE67E6A95441AE47E19A02F050415C8FC275E5A95441CDCCCCBC03F05041666666A6E4A95441E17A143E05F05041A4703D9AE3A95441F6285C2F06F05041E17A144EE2A95441B81E858B07F05041E17A146EE0A954410AD7A3F008F05041AE47E1BADEA95441000000F00AF05041333333C3DBA9544148E17A040DF0504133333353D7A9544148E17A24FCEF5041AE47E11AD3A954413D0AD753F9EF5041A4703D3AD2A95441CDCCCCCCF3EF5041AE47E1AAD0A954410AD7A3B0EEEF5041333333D3CFA9544148E17AA4EEEF5041713D0A37CFA954410AD7A310ECEF5041713D0A37CFA954410AD7A310E6EF5041333333D3D2A954411F85EB41E3EF5041EC51B85ED6A9544148E17A24EAEF5041713D0A77DAA95441E17A14AEF0EF50419A999989DDA954419A999969F1EF504133333333DCA9544148E17AB4F3EF5041F6285CFFD9A9544185EB51D8F0EF504133333393D6A9544185EB5128F2EF5041713D0A67D5A9544148E17A74F4EF5041F6285C0FD6A9544148E17AD4F4EF5041713D0A37D5A9544185EB51E8F2EF5041AE47E16AD4A95441713D0A97F3EF5041295C8F52D3A95441CDCCCCDCF5EF5041AE47E18AD2A9544185EB510800F05041F6285CBFD7A9544166